[SCM] jigsaw packaging branch, master, updated. 482b51da720200eb1d0a7ef24dc8a9758c368927

Guillaume Mazoyer respawneral at gmail.com
Sat Oct 8 12:23:46 UTC 2011


The following commit has been merged in the master branch:
commit 482b51da720200eb1d0a7ef24dc8a9758c368927
Author: Mandy Chung <mandy.chung at oracle.com>
Date:   Sat Oct 8 13:32:42 2011 +0200

    Sync with upstream Jigsaw repository.

diff --git a/.hg/cache/branchheads b/.hg/cache/branchheads
index bd5aef1..bd1daf9 100644
--- a/.hg/cache/branchheads
+++ b/.hg/cache/branchheads
@@ -1,2 +1,2 @@
-50c6783c57480b4fd02504e0d58e5083dbf82142 364
-50c6783c57480b4fd02504e0d58e5083dbf82142 default
+3ca12a409ec831a17d5e2d3331686b001d71f780 399
+3ca12a409ec831a17d5e2d3331686b001d71f780 default
diff --git a/.hg/dirstate b/.hg/dirstate
index 209e2be..49a90e2 100644
Binary files a/.hg/dirstate and b/.hg/dirstate differ
diff --git a/.hg/store/00changelog.i b/.hg/store/00changelog.i
index d5b2dc5..b339ffa 100644
Binary files a/.hg/store/00changelog.i and b/.hg/store/00changelog.i differ
diff --git a/.hg/store/00manifest.i b/.hg/store/00manifest.i
index a3a95a4..9edbbc0 100644
Binary files a/.hg/store/00manifest.i and b/.hg/store/00manifest.i differ
diff --git a/.hg/store/data/_makefile.i b/.hg/store/data/_makefile.i
index e66e449..b4aa44a 100644
Binary files a/.hg/store/data/_makefile.i and b/.hg/store/data/_makefile.i differ
diff --git a/.hg/store/data/_r_e_a_d_m_e-builds.html.i b/.hg/store/data/_r_e_a_d_m_e-builds.html.i
index ce88349..a0384a5 100644
Binary files a/.hg/store/data/_r_e_a_d_m_e-builds.html.i and b/.hg/store/data/_r_e_a_d_m_e-builds.html.i differ
diff --git a/.hg/store/data/_r_e_a_d_m_e.i b/.hg/store/data/_r_e_a_d_m_e.i
index 6d0b854..a031796 100644
Binary files a/.hg/store/data/_r_e_a_d_m_e.i and b/.hg/store/data/_r_e_a_d_m_e.i differ
diff --git a/.hg/store/data/make/jdk-rules.gmk.i b/.hg/store/data/make/jdk-rules.gmk.i
index 8e53e1e..3e4d901 100644
Binary files a/.hg/store/data/make/jdk-rules.gmk.i and b/.hg/store/data/make/jdk-rules.gmk.i differ
diff --git a/.hg/store/data/make/jprt.gmk.i b/.hg/store/data/make/jprt.gmk.i
index 97e5381..a8b3d28 100644
Binary files a/.hg/store/data/make/jprt.gmk.i and b/.hg/store/data/make/jprt.gmk.i differ
diff --git a/.hg/store/data/make/jprt.properties.i b/.hg/store/data/make/jprt.properties.i
index 06401ec..b9d8637 100644
Binary files a/.hg/store/data/make/jprt.properties.i and b/.hg/store/data/make/jprt.properties.i differ
diff --git a/.hg/store/data/~2ehgtags.i b/.hg/store/data/~2ehgtags.i
index 4240d52..2e75a97 100644
Binary files a/.hg/store/data/~2ehgtags.i and b/.hg/store/data/~2ehgtags.i differ
diff --git a/.hg/store/undo b/.hg/store/undo
index 04c8da8..f12f787 100644
Binary files a/.hg/store/undo and b/.hg/store/undo differ
diff --git a/jdk/.hg/undo.bookmarks b/.hg/undo.bookmarks
similarity index 100%
copy from jdk/.hg/undo.bookmarks
copy to .hg/undo.bookmarks
diff --git a/.hg/undo.desc b/.hg/undo.desc
index 33091ab..61b9310 100644
--- a/.hg/undo.desc
+++ b/.hg/undo.desc
@@ -1,3 +1,3 @@
-377
+383
 pull
 http://hg.openjdk.java.net/jigsaw/jigsaw
diff --git a/.hg/undo.dirstate b/.hg/undo.dirstate
index 24a7a71..209e2be 100644
Binary files a/.hg/undo.dirstate and b/.hg/undo.dirstate differ
diff --git a/.hgtags b/.hgtags
index c21575d..c6d0af4 100644
--- a/.hgtags
+++ b/.hgtags
@@ -129,3 +129,10 @@ cfbbdb77eac0397b03eb99ee2e07ea00e0a7b81e jdk7-b142
 2d38c2a79c144c30cd04d143d83ee7ec6af40771 jdk7-b146
 d91364304d7c4ecd34caffdba2b840aeb0d10b51 jdk7-b147
 f42e3d9394b40a423d345b8da22687b5462e5f25 jdk8-b01
+69f592185747226a9c765a9fe139c1d34d616f9c jdk8-b02
+587bb549dff83131b65f40aa51864f69562f34a7 jdk8-b03
+0b66a233bfb9ba2ebda1e5cdfdb0373d6c1e3c69 jdk8-b04
+b910aac18c772b823b1f7da03e2c6528725cc6de jdk8-b05
+28cf2aec4dd7c3c75efc1c15078522467c781a6d jdk8-b06
+0db7ae9f2b1017124c779bccd016c976928859a0 jdk8-b07
+fb1bc13260d76447e269e843859eb593fe2a8ab2 jdk8-b08
diff --git a/Makefile b/Makefile
index f36ebe5..b448040 100644
--- a/Makefile
+++ b/Makefile
@@ -44,9 +44,9 @@ OUTPUTDIR_BASENAME-fastdebug = $(ORIG_OUTPUTDIR_BASENAME)-fastdebug
 REL_JDK_OUTPUTDIR = ../$(OUTPUTDIR_BASENAME-$(DEBUG_NAME))
 
 # The created jdk image directory (legacy or module image)
-JDK_IMAGE_DIRNAME = j2sdk-image
-ifdef BUILD_MODULES
-  JDK_IMAGE_DIRNAME=jdk-module-image
+JDK_IMAGE_DIRNAME=jdk-module-image
+ifdef BUILD_LEGACY
+  JDK_IMAGE_DIRNAME = j2sdk-image
 endif
 
 JDK_IMAGE_DIR     = $(OUTPUTDIR)/$(JDK_IMAGE_DIRNAME)
@@ -303,25 +303,6 @@ dev-clobber:
 	$(MAKE) DEV_ONLY=true clobber
 
 #
-# modules builds
-#
-
-ifndef BUILD_MODULES
-MODULES_BUILD_ARGUMENT = BUILD_MODULES=all
-else
-MODULES_BUILD_ARGUMENT = BUILD_MODULES=$(BUILD_MODULES)
-endif
-
-modules: modules-build
-
-modules-build:
-	$(MAKE) $(MODULES_BUILD_ARGUMENT) all
-modules-sanity:
-	$(MAKE) $(MODULES_BUILD_ARGUMENT) sanity
-modules-clobber:
-	$(MAKE) $(MODULES_BUILD_ARGUMENT) clobber
-
-#
 # Quick jdk verification build
 #
 jdk_only:
@@ -371,7 +352,7 @@ help: intro_help target_help variable_help notes_help examples_help
 # Intro help message
 intro_help:
 	@$(ECHO) "\
-Makefile for the JDK builds (all the JDK). \n\
+Makefile for the modular JDK builds (all the JDK). \n\
 "
 
 # Target help
@@ -379,7 +360,6 @@ target_help:
 	@$(ECHO) "\
 --- Common Targets ---  \n\
 all               -- build the core JDK (default target) \n\
-modules           -- build the JDK module images\n\
 help              -- Print out help information \n\
 check             -- Check make variable values for correctness \n\
 sanity            -- Perform detailed sanity checks on system and settings \n\
diff --git a/README b/README
index db7346b..45b71d2 100644
--- a/README
+++ b/README
@@ -9,11 +9,14 @@ README:
   will be needed.
 
   This one root repository can be obtained with something like:
-    hg clone http://hg.openjdk.java.net/jdk7/jdk7 openjdk7
-  To make sure you have all the nested repositories, you can run:
-    cd openjdk7 && sh ./get_source.sh
-  (This is identical to using the Mercurial Forest Extension command 
-   'hg fclone http://hg.openjdk.java.net/jdk7/jdk7 openjdk7').
+
+    hg clone http://hg.openjdk.java.net/jdk8/jdk8 openjdk8
+  
+  To make sure you have all the nested repositories, you can run the
+  get_source.sh script located in the same respository as this file:
+
+    cd openjdk8 && sh ./get_source.sh
+
   People unfamiliar with Mercurial should read the first few chapters of
   the Mercurial book: http://hgbook.red-bean.com/read/
 
@@ -22,7 +25,7 @@ README:
 Simple Build Instructions:
   
   0. Get the necessary system software/packages installed on your system, see
-     http://hg.openjdk.java.net/jdk7/build/raw-file/tip/README-builds.html
+     http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html
 
   1. If you don't have a jdk6 installed, download and install a JDK 6 from
      http://java.sun.com/javase/downloads/index.jsp
diff --git a/README-builds.html b/README-builds.html
index 87b7cd8..1761534 100644
--- a/README-builds.html
+++ b/README-builds.html
@@ -126,38 +126,15 @@
             <a href="http://openjdk.java.net/guide/repositories.html#installConfig">
                 Developer Guide: Installing and Configuring Mercurial</a>
             section for more information.
-            The Forest Extension is not part of the Mercurial install,
-            and is optional,
-            but can be obtained with the following commands:
-            <blockquote>
-                <tt>
-                    hg clone https://bitbucket.org/pmezard/hgforest-crew/overview/ <i>YourHgForest</i>
-                </tt>
-            </blockquote>
-            Once you have the file <tt>forest.py</tt>, you need to add these
-            lines to your <tt>${HOME}/.hgrc</tt> file:
-            <blockquote>
-                <tt>
-                    [extensions]
-                    <br>forest = <i>YourHgForest</i>/forest.py
-                </tt>
-            </blockquote>
 
             <!-- ------------------------------------------------------ -->
             <h3><a name="get_source">Getting the Source</a></h3>
             <blockquote>
                 To get the entire set of OpenJDK Mercurial repositories
-                using the Forest Extension:
-                <blockquote>
-                    <tt>
-                        hg fclone http://hg.openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
-                    </tt>
-                </blockquote>
-                To get the entire set of OpenJDK Mercurial repositories
-                without using the Forest Extension:
+                use the script <code>get_source.sh</code> located in the root repository:
                 <blockquote>
                     <tt>
-                        hg clone http://hg.openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
+                        hg clone http://hg.openjdk.java.net/jdk8/jdk8 <i>YourOpenJDK</i>
                         <br>cd <i>YourOpenJDK</i>
                         <br>sh ./get_source.sh
                     </tt>
@@ -172,9 +149,6 @@
                         <br>sh ./make/scripts/hgforest.sh pull -u
                     </tt>
                 </blockquote>
-                You may find this script <tt>make/scripts/hgforest.sh</tt> faster
-                than the <tt>hg</tt> forest commands provided by the
-                Forest Extension.
             </blockquote>
 
         </blockquote>
@@ -558,7 +532,7 @@
                     understood that this is not ideal for the open source community.
                     It is possible this process could change in the future.
                     <br>
-                    <b>NOTE:</b> The <a href="http://download.java.net/openjdk/jdk7/">
+                    <b>NOTE:</b> The <a href="http://download.java.net/openjdk/jdk8/">
                         Complete OpenJDK Source Bundles</a> <u>will</u> contain the JAXP and
                     JAX-WS sources.
                 </p>
@@ -578,7 +552,7 @@
                         </li>
                         <li>
                             The OpenJDK team copies this new bundle into shared
-                            area (e.g. <tt>/java/devtools/share/jdk7-drops</tt>).
+                            area (e.g. <tt>/java/devtools/share/jdk8-drops</tt>).
                             Older bundles are never deleted so we retain the history.
                         </li>
                         <li>
@@ -1726,7 +1700,7 @@
                     The location of any source drop bundles
                     (see <a href="#drops">Managing the Source Drops</a>).
                     The default will be
-                    <tt>$(ALT_JDK_DEVTOOLS_PATH)/share/jdk7-drops</tt>.
+                    <tt>$(ALT_JDK_DEVTOOLS_PATH)/share/jdk8-drops</tt>.
                 </dd>
                 <dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt>
                 <dd>
@@ -1931,7 +1905,7 @@
                             PATH, INCLUDE, LIB, LIBPATH, and WINDOWSSDKDIR
                             variables set in your shell environment.
                             These bat files are not easy to use from a shell environment.
-                            However, there is a script placed in the root jdk7 repository called
+                            However, there is a script placed in the root jdk8 repository called
                             vsvars.sh that can help, it should only be done once in a shell
                             that will be doing the build, e.g.<br>
                             <tt>sh ./make/scripts/vsvars.sh -v10 > settings<br>
diff --git a/corba/.hg/cache/branchheads b/corba/.hg/cache/branchheads
index 4a2fd7d..8535165 100644
--- a/corba/.hg/cache/branchheads
+++ b/corba/.hg/cache/branchheads
@@ -1,2 +1,2 @@
-df5c4208ab66e423a6f1d3f4bf93420fb085ae50 300
-df5c4208ab66e423a6f1d3f4bf93420fb085ae50 default
+ea83b73f6983a3081875f3ccf57df394c5b7c344 326
+ea83b73f6983a3081875f3ccf57df394c5b7c344 default
diff --git a/corba/.hg/dirstate b/corba/.hg/dirstate
index 3f88c70..0f48489 100644
Binary files a/corba/.hg/dirstate and b/corba/.hg/dirstate differ
diff --git a/corba/.hg/store/00changelog.i b/corba/.hg/store/00changelog.i
index 3bad6c3..739d61a 100644
Binary files a/corba/.hg/store/00changelog.i and b/corba/.hg/store/00changelog.i differ
diff --git a/corba/.hg/store/00manifest.d b/corba/.hg/store/00manifest.d
index f5a066d..f659c89 100644
Binary files a/corba/.hg/store/00manifest.d and b/corba/.hg/store/00manifest.d differ
diff --git a/corba/.hg/store/00manifest.i b/corba/.hg/store/00manifest.i
index 93f0ebf..a27fd2f 100644
Binary files a/corba/.hg/store/00manifest.i and b/corba/.hg/store/00manifest.i differ
diff --git a/corba/.hg/store/data/~2ehgtags.i b/corba/.hg/store/data/~2ehgtags.i
index 62035ae..4817a05 100644
Binary files a/corba/.hg/store/data/~2ehgtags.i and b/corba/.hg/store/data/~2ehgtags.i differ
diff --git a/corba/.hg/store/undo b/corba/.hg/store/undo
index b9cb2ed..be685b4 100644
Binary files a/corba/.hg/store/undo and b/corba/.hg/store/undo differ
diff --git a/jdk/.hg/undo.bookmarks b/corba/.hg/undo.bookmarks
similarity index 100%
copy from jdk/.hg/undo.bookmarks
copy to corba/.hg/undo.bookmarks
diff --git a/corba/.hg/undo.desc b/corba/.hg/undo.desc
index a83c94a..1a0c757 100644
--- a/corba/.hg/undo.desc
+++ b/corba/.hg/undo.desc
@@ -1,3 +1,3 @@
-315
+318
 pull
 http://hg.openjdk.java.net/jigsaw/jigsaw/corba
diff --git a/corba/.hg/undo.dirstate b/corba/.hg/undo.dirstate
index ec9bcbd..3f88c70 100644
Binary files a/corba/.hg/undo.dirstate and b/corba/.hg/undo.dirstate differ
diff --git a/corba/.hgtags b/corba/.hgtags
index 7a529a0..89819b5 100644
--- a/corba/.hgtags
+++ b/corba/.hgtags
@@ -129,3 +129,10 @@ a2f340a048c88d10cbedc0504f5cf03d39925a40 jdk7-b142
 770227a4087e4e401fe87ccd19738440111c3948 jdk7-b146
 73323cb3396260d93e0ab731fd2d431096ceed0f jdk7-b147
 949fb60ca830364571e7c4c9964e6b351ca929ec jdk8-b01
+ed8d94519a87b4adac270c3eec9134ff1f62bff5 jdk8-b02
+cd0da00694fbce642db9be936d3e4909a71d911d jdk8-b03
+60a68d688e24473cf84dedd1e60901a61ab82555 jdk8-b04
+cc1b599b986a37cb57de4584c5e58169766ca535 jdk8-b05
+45c43dde7ba7f176333a51a98f086275478836fa jdk8-b06
+3d61f0856f349e2163bf98146465dab3b7437f63 jdk8-b07
+0d52b1c87aa8fdea7fdc9c4126ea58f95ca6b351 jdk8-b08
diff --git a/hotspot/.hg/cache/branchheads b/hotspot/.hg/cache/branchheads
index b3b622b..40dee89 100644
--- a/hotspot/.hg/cache/branchheads
+++ b/hotspot/.hg/cache/branchheads
@@ -1,2 +1,2 @@
-738c72d9e3895a28fe349ad7d348d6c8d4cdd156 2534
-738c72d9e3895a28fe349ad7d348d6c8d4cdd156 default
+19c31a07e45edf76746d09a1100fcb20194054b2 2778
+19c31a07e45edf76746d09a1100fcb20194054b2 default
diff --git a/hotspot/.hg/dirstate b/hotspot/.hg/dirstate
index 556ad91..77c959c 100644
Binary files a/hotspot/.hg/dirstate and b/hotspot/.hg/dirstate differ
diff --git a/hotspot/.hg/store/00changelog.d b/hotspot/.hg/store/00changelog.d
index 7d9f198..384747e 100644
Binary files a/hotspot/.hg/store/00changelog.d and b/hotspot/.hg/store/00changelog.d differ
diff --git a/hotspot/.hg/store/00changelog.i b/hotspot/.hg/store/00changelog.i
index 48a9cca..a12e99c 100644
Binary files a/hotspot/.hg/store/00changelog.i and b/hotspot/.hg/store/00changelog.i differ
diff --git a/hotspot/.hg/store/00manifest.d b/hotspot/.hg/store/00manifest.d
index c6cfd5b..8955f95 100644
Binary files a/hotspot/.hg/store/00manifest.d and b/hotspot/.hg/store/00manifest.d differ
diff --git a/hotspot/.hg/store/00manifest.i b/hotspot/.hg/store/00manifest.i
index dd8d7a4..8810b00 100644
Binary files a/hotspot/.hg/store/00manifest.i and b/hotspot/.hg/store/00manifest.i differ
diff --git a/hotspot/.hg/store/data/_t_h_i_r_d___p_a_r_t_y___r_e_a_d_m_e.i b/hotspot/.hg/store/data/_t_h_i_r_d___p_a_r_t_y___r_e_a_d_m_e.i
index 25c6467..821f08e 100644
Binary files a/hotspot/.hg/store/data/_t_h_i_r_d___p_a_r_t_y___r_e_a_d_m_e.i and b/hotspot/.hg/store/data/_t_h_i_r_d___p_a_r_t_y___r_e_a_d_m_e.i differ
diff --git a/hotspot/.hg/store/data/agent/make/_makefile.i b/hotspot/.hg/store/data/agent/make/_makefile.i
index 0e89ee4..66bd094 100644
Binary files a/hotspot/.hg/store/data/agent/make/_makefile.i and b/hotspot/.hg/store/data/agent/make/_makefile.i differ
diff --git a/hotspot/.hg/store/data/agent/make/saenv.sh.i b/hotspot/.hg/store/data/agent/make/saenv.sh.i
index 9d63df9..72ee916 100644
Binary files a/hotspot/.hg/store/data/agent/make/saenv.sh.i and b/hotspot/.hg/store/data/agent/make/saenv.sh.i differ
diff --git a/hotspot/.hg/store/data/agent/make/saenv64.sh.i b/hotspot/.hg/store/data/agent/make/saenv64.sh.i
index bd54462..7496a6a 100644
Binary files a/hotspot/.hg/store/data/agent/make/saenv64.sh.i and b/hotspot/.hg/store/data/agent/make/saenv64.sh.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/_bsd_debugger_local.c.i b/hotspot/.hg/store/data/agent/src/os/bsd/_bsd_debugger_local.c.i
new file mode 100644
index 0000000..cf78623
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/_bsd_debugger_local.c.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/_makefile.i b/hotspot/.hg/store/data/agent/src/os/bsd/_makefile.i
new file mode 100644
index 0000000..88e5eae
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/_makefile.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/_stub_debugger_local.c.i b/hotspot/.hg/store/data/agent/src/os/bsd/_stub_debugger_local.c.i
new file mode 100644
index 0000000..a800c4d
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/_stub_debugger_local.c.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/elfmacros.h.i b/hotspot/.hg/store/data/agent/src/os/bsd/elfmacros.h.i
new file mode 100644
index 0000000..a28f90e
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/elfmacros.h.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/libproc.h.i b/hotspot/.hg/store/data/agent/src/os/bsd/libproc.h.i
new file mode 100644
index 0000000..cca7b30
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/libproc.h.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/libproc__impl.c.i b/hotspot/.hg/store/data/agent/src/os/bsd/libproc__impl.c.i
new file mode 100644
index 0000000..bfb089d
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/libproc__impl.c.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/libproc__impl.h.i b/hotspot/.hg/store/data/agent/src/os/bsd/libproc__impl.h.i
new file mode 100644
index 0000000..a0beac1
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/libproc__impl.h.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/mapfile.i b/hotspot/.hg/store/data/agent/src/os/bsd/mapfile.i
new file mode 100644
index 0000000..2577658
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/mapfile.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/ps__core.c.i b/hotspot/.hg/store/data/agent/src/os/bsd/ps__core.c.i
new file mode 100644
index 0000000..6c4d2fd
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/ps__core.c.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/ps__proc.c.i b/hotspot/.hg/store/data/agent/src/os/bsd/ps__proc.c.i
new file mode 100644
index 0000000..f31731e
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/ps__proc.c.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/salibelf.c.i b/hotspot/.hg/store/data/agent/src/os/bsd/salibelf.c.i
new file mode 100644
index 0000000..6bc1135
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/salibelf.c.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/salibelf.h.i b/hotspot/.hg/store/data/agent/src/os/bsd/salibelf.h.i
new file mode 100644
index 0000000..d9c11ba
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/salibelf.h.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/symtab.c.i b/hotspot/.hg/store/data/agent/src/os/bsd/symtab.c.i
new file mode 100644
index 0000000..f6fb988
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/symtab.c.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/symtab.h.i b/hotspot/.hg/store/data/agent/src/os/bsd/symtab.h.i
new file mode 100644
index 0000000..37a0a07
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/symtab.h.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/bsd/test.c.i b/hotspot/.hg/store/data/agent/src/os/bsd/test.c.i
new file mode 100644
index 0000000..bdbe6f5
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/os/bsd/test.c.i differ
diff --git a/hotspot/.hg/store/data/agent/src/os/solaris/_makefile.i b/hotspot/.hg/store/data/agent/src/os/solaris/_makefile.i
index 686920a..871e157 100644
Binary files a/hotspot/.hg/store/data/agent/src/os/solaris/_makefile.i and b/hotspot/.hg/store/data/agent/src/os/solaris/_makefile.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_bsd_vtbl_access.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_bsd_vtbl_access.java.i
new file mode 100644
index 0000000..e0b34ee
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_bsd_vtbl_access.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_c_l_h_s_d_b.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_c_l_h_s_d_b.java.i
index 021e81e..4ca25f0 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_c_l_h_s_d_b.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_c_l_h_s_d_b.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_command_processor.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_command_processor.java.i
index 5c92efa..aaf2edf 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_command_processor.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_command_processor.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_debug_server.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_debug_server.java.i
index 387c5ef..dace28b 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_debug_server.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_debug_server.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_h_s_d_b.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_h_s_d_b.java.i
index 4ccb4eb..4803a4e 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_h_s_d_b.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_h_s_d_b.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_hot_spot_agent.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_hot_spot_agent.java.i
index c175370..475c4c0 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_hot_spot_agent.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_hot_spot_agent.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_hot_spot_type_data_base.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_hot_spot_type_data_base.java.i
index 94bd3bc..b7c7285 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_hot_spot_type_data_base.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_hot_spot_type_data_base.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_test_debugger.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_test_debugger.java.i
index 2c984dc..83d3344 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_test_debugger.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/_test_debugger.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/bugspot/_bug_spot.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/bugspot/_bug_spot.java.i
index 69dc48a..1f7cffd 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/bugspot/_bug_spot.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/bugspot/_bug_spot.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/bugspot/_bug_spot_agent.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/bugspot/_bug_spot_agent.java.i
index c3332c5..cf64754 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/bugspot/_bug_spot_agent.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/bugspot/_bug_spot_agent.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_array_klass.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_array_klass.java.i
new file mode 100644
index 0000000..055e4fb
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_array_klass.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_array_klass_klass.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_array_klass_klass.java.i
new file mode 100644
index 0000000..2e9af40
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_array_klass_klass.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_constant.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_constant.java.i
new file mode 100644
index 0000000..6f1253d
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_constant.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_env.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_env.java.i
new file mode 100644
index 0000000..a59ca1a
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_env.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_field.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_field.java.i
new file mode 100644
index 0000000..e45cd9b
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_field.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_instance.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_instance.java.i
new file mode 100644
index 0000000..e30af73
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_instance.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_instance_klass.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_instance_klass.java.i
new file mode 100644
index 0000000..d85f6ff
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_instance_klass.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_instance_klass_klass.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_instance_klass_klass.java.i
new file mode 100644
index 0000000..28b724f
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_instance_klass_klass.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_klass.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_klass.java.i
new file mode 100644
index 0000000..213cef2
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_klass.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_klass_klass.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_klass_klass.java.i
new file mode 100644
index 0000000..9669cd0
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_klass_klass.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_method.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_method.java.i
new file mode 100644
index 0000000..b13279a
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_method.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_method_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_method_data.java.i
new file mode 100644
index 0000000..2498b48
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_method_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_method_klass.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_method_klass.java.i
new file mode 100644
index 0000000..179f53e
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_method_klass.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_obj_array_klass.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_obj_array_klass.java.i
new file mode 100644
index 0000000..ea0aac9
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_obj_array_klass.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_obj_array_klass_klass.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_obj_array_klass_klass.java.i
new file mode 100644
index 0000000..009dc28
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_obj_array_klass_klass.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_object.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_object.java.i
new file mode 100644
index 0000000..7a70e24
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_object.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_object_factory.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_object_factory.java.i
new file mode 100644
index 0000000..e1aa358
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_object_factory.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_receiver_type_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_receiver_type_data.java.i
new file mode 100644
index 0000000..9ed6ff8
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_receiver_type_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_symbol.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_symbol.java.i
new file mode 100644
index 0000000..b16e6e2
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_symbol.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_type.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_type.java.i
new file mode 100644
index 0000000..e55babb
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_type.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_type_array_klass.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_type_array_klass.java.i
new file mode 100644
index 0000000..9e6baf6
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_type_array_klass.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_type_array_klass_klass.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_type_array_klass_klass.java.i
new file mode 100644
index 0000000..525a658
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_type_array_klass_klass.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_virtual_call_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_virtual_call_data.java.i
new file mode 100644
index 0000000..98d2806
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ci/ci_virtual_call_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_code_blob.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_code_blob.java.i
index 29f4a60..5b80fb2 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_code_blob.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_code_blob.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_code_cache.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_code_cache.java.i
index 86e9015..af938d7 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_code_cache.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_code_cache.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_method_handles_adapter_blob.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_method_handles_adapter_blob.java.i
new file mode 100644
index 0000000..f45a912
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_method_handles_adapter_blob.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_n_method.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_n_method.java.i
index 7dd8061..5f88fa2 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_n_method.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_n_method.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_p_c_desc.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_p_c_desc.java.i
index 2503458..0f982e3 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_p_c_desc.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_p_c_desc.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_ricochet_blob.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_ricochet_blob.java.i
index 7ed028a..a1d18a4 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_ricochet_blob.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_ricochet_blob.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_runtime_stub.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_runtime_stub.java.i
index 894c0d9..27aaa00 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_runtime_stub.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/code/_runtime_stub.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/compiler/_compile_task.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/compiler/_compile_task.java.i
new file mode 100644
index 0000000..f07a1f0
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/compiler/_compile_task.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/compiler/_oop_map_set.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/compiler/_oop_map_set.java.i
index bac94ba..00e5280 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/compiler/_oop_map_set.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/compiler/_oop_map_set.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/_address_exception.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/_address_exception.java.i
index c39aca9..1a4fe2d 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/_address_exception.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/_address_exception.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_address.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_address.java.i
new file mode 100644
index 0000000..e3d7c05
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_address.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_c_debugger.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_c_debugger.java.i
new file mode 100644
index 0000000..b94ef7c
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_c_debugger.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_debugger.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_debugger.java.i
new file mode 100644
index 0000000..bf0697a
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_debugger.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_debugger_local.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_debugger_local.java.i
new file mode 100644
index 0000000..7a315de
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_debugger_local.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_oop_handle.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_oop_handle.java.i
new file mode 100644
index 0000000..1f0f4c7
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_oop_handle.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_thread.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_thread.java.i
new file mode 100644
index 0000000..f25d7b6
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_thread.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_thread_context_factory.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_thread_context_factory.java.i
new file mode 100644
index 0000000..a45bac1
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_bsd_thread_context_factory.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_shared_object.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_shared_object.java.i
new file mode 100644
index 0000000..921fa86
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/_shared_object.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/_bsd_a_m_d64_c_frame.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/_bsd_a_m_d64_c_frame.java.i
new file mode 100644
index 0000000..f8aa7ba
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/_bsd_a_m_d64_c_frame.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/_bsd_a_m_d64_thread_context.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/_bsd_a_m_d64_thread_context.java.i
new file mode 100644
index 0000000..b84ce46
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/_bsd_a_m_d64_thread_context.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/_bsd_x86_c_frame.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/_bsd_x86_c_frame.java.i
new file mode 100644
index 0000000..6227341
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/_bsd_x86_c_frame.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/_bsd_x86_thread_context.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/_bsd_x86_thread_context.java.i
new file mode 100644
index 0000000..4991b2f
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/_bsd_x86_thread_context.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode.java.i
index 53603fa..dbe23d7 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_load_constant.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_load_constant.java.i
index eb1e82a..06f02c9 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_load_constant.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_load_constant.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_stream.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_stream.java.i
index 696d1ac..9cb227b 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_stream.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_stream.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_wideable.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_wideable.java.i
index 953d0f3..914ceb7 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_wideable.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_wideable.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_with_c_p_index.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_with_c_p_index.java.i
index e62d735..52ba609 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_with_c_p_index.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecode_with_c_p_index.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecodes.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecodes.java.i
index d7a13dc..402fb19 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecodes.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/interpreter/_bytecodes.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_reference_type_impl.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_reference_type_impl.java.i
index a6fc92b..be5df58 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_reference_type_impl.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_reference_type_impl.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_s_a_debug_server.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_s_a_debug_server.java.i
index f8b59fb..d0b59b6 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_s_a_debug_server.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_s_a_debug_server.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_stack_frame_impl.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_stack_frame_impl.java.i
index 01b5b4a..30d1b5e 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_stack_frame_impl.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_stack_frame_impl.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_virtual_machine_impl.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_virtual_machine_impl.java.i
index 905b7ff..7f43bf8 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_virtual_machine_impl.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/jdi/_virtual_machine_impl.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/memory/_system_dictionary.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/memory/_system_dictionary.java.i
index c7419d7..683f89f 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/memory/_system_dictionary.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/memory/_system_dictionary.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_array_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_array_data.java.i
new file mode 100644
index 0000000..f09b286
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_array_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_bit_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_bit_data.java.i
new file mode 100644
index 0000000..3275305
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_bit_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_branch_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_branch_data.java.i
new file mode 100644
index 0000000..1155968
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_branch_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_c_int_field.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_c_int_field.java.i
index 2d305fd..538ee24 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_c_int_field.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_c_int_field.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_const_method.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_const_method.java.i
index fdafec8..85f8e10 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_const_method.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_const_method.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_constant_pool.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_constant_pool.java.i
index bad590b..97c40ea 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_constant_pool.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_constant_pool.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_constant_pool_cache.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_constant_pool_cache.java.i
index 20fa20a..e7627d6 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_constant_pool_cache.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_constant_pool_cache.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_counter_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_counter_data.java.i
new file mode 100644
index 0000000..340b94c
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_counter_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_data_layout.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_data_layout.java.i
new file mode 100644
index 0000000..73fda7c
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_data_layout.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_field.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_field.java.i
index 587283f..bc69ce0 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_field.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_field.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_field_type.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_field_type.java.i
index 4b39cfb..05f8254 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_field_type.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_field_type.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_generate_oop_map.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_generate_oop_map.java.i
index 2edfca9..5e0cc87 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_generate_oop_map.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_generate_oop_map.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_instance_klass.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_instance_klass.java.i
index 2140d3e..5eea3ba 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_instance_klass.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_instance_klass.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_jump_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_jump_data.java.i
new file mode 100644
index 0000000..d4e709f
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_jump_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_method.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_method.java.i
index 6c560d6..c9bd2e0 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_method.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_method.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_method_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_method_data.java.i
index a99eede..098deea 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_method_data.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_method_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_multi_branch_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_multi_branch_data.java.i
new file mode 100644
index 0000000..140b61e
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_multi_branch_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_oop_utilities.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_oop_utilities.java.i
index 8f45b8c..041c0cd 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_oop_utilities.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_oop_utilities.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_profile_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_profile_data.java.i
new file mode 100644
index 0000000..8447490
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_profile_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_receiver_type_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_receiver_type_data.java.i
new file mode 100644
index 0000000..ce238b1
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_receiver_type_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_ret_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_ret_data.java.i
new file mode 100644
index 0000000..841d84f
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_ret_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_type_array.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_type_array.java.i
index b552272..ced5ae0 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_type_array.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_type_array.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_virtual_call_data.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_virtual_call_data.java.i
new file mode 100644
index 0000000..2994d5a
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/_virtual_call_data.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/java__lang___class.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/java__lang___class.java.i
index 94de117..dadd8ac 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/java__lang___class.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/oops/java__lang___class.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_block.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_block.java.i
new file mode 100644
index 0000000..39d330e
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_block.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_block___array.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_block___array.java.i
new file mode 100644
index 0000000..624afec
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_block___array.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_block___list.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_block___list.java.i
new file mode 100644
index 0000000..88d466f
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_block___list.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_dynamic_java_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_dynamic_java_node.java.i
new file mode 100644
index 0000000..ec8aecd
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_dynamic_java_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_java_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_java_node.java.i
new file mode 100644
index 0000000..7cd76f8
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_java_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_node.java.i
new file mode 100644
index 0000000..5215dc4
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_runtime_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_runtime_node.java.i
new file mode 100644
index 0000000..fe5427d
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_runtime_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_static_java_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_static_java_node.java.i
new file mode 100644
index 0000000..3c246d4
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_call_static_java_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_compile.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_compile.java.i
new file mode 100644
index 0000000..7bad5d5
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_compile.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_halt_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_halt_node.java.i
new file mode 100644
index 0000000..34285cf
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_halt_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_inline_tree.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_inline_tree.java.i
new file mode 100644
index 0000000..50234f1
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_inline_tree.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_j_v_m_state.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_j_v_m_state.java.i
new file mode 100644
index 0000000..8bf98ec
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_j_v_m_state.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_loop_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_loop_node.java.i
new file mode 100644
index 0000000..a902cf8
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_loop_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_call_java_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_call_java_node.java.i
new file mode 100644
index 0000000..704649d
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_call_java_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_call_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_call_node.java.i
new file mode 100644
index 0000000..bf4c5ca
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_call_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_call_runtime_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_call_runtime_node.java.i
new file mode 100644
index 0000000..4df3600
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_call_runtime_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_call_static_java_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_call_static_java_node.java.i
new file mode 100644
index 0000000..27afc3d
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_call_static_java_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_if_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_if_node.java.i
new file mode 100644
index 0000000..e59687f
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_if_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_node.java.i
new file mode 100644
index 0000000..28e152e
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_return_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_return_node.java.i
new file mode 100644
index 0000000..ea6511e
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_return_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_safe_point_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_safe_point_node.java.i
new file mode 100644
index 0000000..44cbe0e
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_mach_safe_point_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_multi_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_multi_node.java.i
new file mode 100644
index 0000000..da2b3bb
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_multi_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_node.java.i
new file mode 100644
index 0000000..5509da5
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_node___array.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_node___array.java.i
new file mode 100644
index 0000000..67859e4
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_node___array.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_node___list.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_node___list.java.i
new file mode 100644
index 0000000..3c2be1d
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_node___list.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_phase.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_phase.java.i
new file mode 100644
index 0000000..7253763
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_phase.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_phase_c_f_g.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_phase_c_f_g.java.i
new file mode 100644
index 0000000..f465884
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_phase_c_f_g.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_phase_reg_alloc.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_phase_reg_alloc.java.i
new file mode 100644
index 0000000..8f42946
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_phase_reg_alloc.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_phi_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_phi_node.java.i
new file mode 100644
index 0000000..738cfd0
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_phi_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_proj_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_proj_node.java.i
new file mode 100644
index 0000000..54345b0
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_proj_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_region_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_region_node.java.i
new file mode 100644
index 0000000..d5e5c33
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_region_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_root_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_root_node.java.i
new file mode 100644
index 0000000..d11da42
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_root_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_safe_point_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_safe_point_node.java.i
new file mode 100644
index 0000000..ed303d7
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_safe_point_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_type_node.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_type_node.java.i
new file mode 100644
index 0000000..0172783
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/opto/_type_node.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/prims/_jvmti_export.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/prims/_jvmti_export.java.i
new file mode 100644
index 0000000..945d421
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/prims/_jvmti_export.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_compiled_v_frame.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_compiled_v_frame.java.i
index ab22e86..0f64b5c 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_compiled_v_frame.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_compiled_v_frame.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_compiler_thread.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_compiler_thread.java.i
index a95a8ec..4778175 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_compiler_thread.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_compiler_thread.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_frame.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_frame.java.i
index 6dfc45f..5123f9f 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_frame.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_frame.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_instance_constructor.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_instance_constructor.java.i
new file mode 100644
index 0000000..00b172a
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_instance_constructor.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_java_v_frame.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_java_v_frame.java.i
index 2dadbb8..dd88f81 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_java_v_frame.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_java_v_frame.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_stack_value.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_stack_value.java.i
index c57cfda..f7ca467 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_stack_value.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_stack_value.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_static_base_constructor.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_static_base_constructor.java.i
new file mode 100644
index 0000000..2a6e24f
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_static_base_constructor.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_threads.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_threads.java.i
index b989f14..54aba98 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_threads.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_threads.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_v_frame.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_v_frame.java.i
index b3b7265..75e2b42 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_v_frame.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_v_frame.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_v_m.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_v_m.java.i
index 04835d0..9e5c64c 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_v_m.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_v_m.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_virtual_base_constructor.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_virtual_base_constructor.java.i
new file mode 100644
index 0000000..ebf5283
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_virtual_base_constructor.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_virtual_constructor.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_virtual_constructor.java.i
index 496226c..0d586a5 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_virtual_constructor.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/_virtual_constructor.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/_a_m_d64_current_frame_guess.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/_a_m_d64_current_frame_guess.java.i
index f0bde4f..4e73382 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/_a_m_d64_current_frame_guess.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/_a_m_d64_current_frame_guess.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd/_bsd_signals.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd/_bsd_signals.java.i
new file mode 100644
index 0000000..47eaa24
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd/_bsd_signals.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd__amd64/_bsd_a_m_d64_java_thread_p_d_access.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd__amd64/_bsd_a_m_d64_java_thread_p_d_access.java.i
new file mode 100644
index 0000000..cb9165f
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd__amd64/_bsd_a_m_d64_java_thread_p_d_access.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd__x86/_bsd_signals.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd__x86/_bsd_signals.java.i
new file mode 100644
index 0000000..774c6c6
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd__x86/_bsd_signals.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd__x86/_bsd_x86_java_thread_p_d_access.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd__x86/_bsd_x86_java_thread_p_d_access.java.i
new file mode 100644
index 0000000..05127c6
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd__x86/_bsd_x86_java_thread_p_d_access.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/linux__amd64/_linux_a_m_d64_java_thread_p_d_access.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/linux__amd64/_linux_a_m_d64_java_thread_p_d_access.java.i
index c9b06d3..ecc027f 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/linux__amd64/_linux_a_m_d64_java_thread_p_d_access.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/linux__amd64/_linux_a_m_d64_java_thread_p_d_access.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/solaris__amd64/_solaris_a_m_d64_java_thread_p_d_access.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/solaris__amd64/_solaris_a_m_d64_java_thread_p_d_access.java.i
index ee981f5..021a218 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/solaris__amd64/_solaris_a_m_d64_java_thread_p_d_access.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/solaris__amd64/_solaris_a_m_d64_java_thread_p_d_access.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/_s_p_a_r_c_frame.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/_s_p_a_r_c_frame.java.i
index 59cf08a..89aea69 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/_s_p_a_r_c_frame.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/_s_p_a_r_c_frame.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/_s_p_a_r_c_ricochet_frame.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/_s_p_a_r_c_ricochet_frame.java.i
new file mode 100644
index 0000000..46ba7ca
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/_s_p_a_r_c_ricochet_frame.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/vm_symbols.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/vm_symbols.java.i
new file mode 100644
index 0000000..9efd323
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/vm_symbols.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32__amd64/_win32_a_m_d64_java_thread_p_d_access.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32__amd64/_win32_a_m_d64_java_thread_p_d_access.java.i
index 91489fe..0c40cde 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32__amd64/_win32_a_m_d64_java_thread_p_d_access.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32__amd64/_win32_a_m_d64_java_thread_p_d_access.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32__x86/_win32_x86_java_thread_p_d_access.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32__x86/_win32_x86_java_thread_p_d_access.java.i
index f045a8e..4037bd8 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32__x86/_win32_x86_java_thread_p_d_access.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32__x86/_win32_x86_java_thread_p_d_access.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/_x86_frame.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/_x86_frame.java.i
index c8de13f..3264820 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/_x86_frame.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/_x86_frame.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/_x86_ricochet_frame.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/_x86_ricochet_frame.java.i
new file mode 100644
index 0000000..94ed982
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/_x86_ricochet_frame.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/_class_dump.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/_class_dump.java.i
index dcb549d..21a80bd 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/_class_dump.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/_class_dump.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/_class_writer.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/_class_writer.java.i
index 0f1da21..a20ee01 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/_class_writer.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/_class_writer.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/tools/soql/_s_o_q_l.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/tools/soql/_s_o_q_l.java.i
index 1222235..3e072dc 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/tools/soql/_s_o_q_l.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/tools/soql/_s_o_q_l.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/types/_type_data_base.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/types/_type_data_base.java.i
index ab1c1c1..3d535bf 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/types/_type_data_base.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/types/_type_data_base.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/types/basic/_basic_type_data_base.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/types/basic/_basic_type_data_base.java.i
index 3d2d75d..d533b07 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/types/basic/_basic_type_data_base.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/types/basic/_basic_type_data_base.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ui/_command_processor_panel.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ui/_command_processor_panel.java.i
index e75c76d..8c0639b 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ui/_command_processor_panel.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ui/_command_processor_panel.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/_h_t_m_l_generator.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/_h_t_m_l_generator.java.i
index 4545d9b..9d709b5 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/_h_t_m_l_generator.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/_h_t_m_l_generator.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_constant_tag.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_constant_tag.java.i
index b7fd167..ba3b0da 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_constant_tag.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_constant_tag.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_generic_growable_array.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_generic_growable_array.java.i
new file mode 100644
index 0000000..2be411e
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_generic_growable_array.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_growable_array.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_growable_array.java.i
new file mode 100644
index 0000000..259fe3c
Binary files /dev/null and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_growable_array.java.i differ
diff --git a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_platform_info.java.i b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_platform_info.java.i
index 4e04ffc..f384847 100644
Binary files a/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_platform_info.java.i and b/hotspot/.hg/store/data/agent/src/share/classes/sun/jvm/hotspot/utilities/_platform_info.java.i differ
diff --git a/hotspot/.hg/store/data/agent/test/jdi/sasanity.sh.i b/hotspot/.hg/store/data/agent/test/jdi/sasanity.sh.i
index e669f71..635ba4e 100644
Binary files a/hotspot/.hg/store/data/agent/test/jdi/sasanity.sh.i and b/hotspot/.hg/store/data/agent/test/jdi/sasanity.sh.i differ
diff --git a/hotspot/.hg/store/data/make/_makefile.i b/hotspot/.hg/store/data/make/_makefile.i
index 4ba4bfa..3cfe310 100644
Binary files a/hotspot/.hg/store/data/make/_makefile.i and b/hotspot/.hg/store/data/make/_makefile.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/_makefile.i b/hotspot/.hg/store/data/make/bsd/_makefile.i
new file mode 100644
index 0000000..b143108
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/_makefile.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/_r_e_a_d_m_e.i b/hotspot/.hg/store/data/make/bsd/_r_e_a_d_m_e.i
new file mode 100644
index 0000000..70694dd
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/_r_e_a_d_m_e.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/adlc__updater.i b/hotspot/.hg/store/data/make/bsd/adlc__updater.i
new file mode 100644
index 0000000..7d08faf
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/adlc__updater.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/build.sh.i b/hotspot/.hg/store/data/make/bsd/build.sh.i
new file mode 100644
index 0000000..ed5716a
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/build.sh.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/adjust-mflags.sh.i b/hotspot/.hg/store/data/make/bsd/makefiles/adjust-mflags.sh.i
new file mode 100644
index 0000000..0e51a44
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/adjust-mflags.sh.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/adlc.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/adlc.make.i
new file mode 100644
index 0000000..cd97807
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/adlc.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/amd64.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/amd64.make.i
new file mode 100644
index 0000000..a2aab41
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/amd64.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/arm.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/arm.make.i
new file mode 100644
index 0000000..4051599
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/arm.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/build__vm__def.sh.i b/hotspot/.hg/store/data/make/bsd/makefiles/build__vm__def.sh.i
new file mode 100644
index 0000000..d8e5e9a
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/build__vm__def.sh.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/buildtree.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/buildtree.make.i
new file mode 100644
index 0000000..51e88c2
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/buildtree.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/compiler1.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/compiler1.make.i
new file mode 100644
index 0000000..9a12c2c
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/compiler1.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/compiler2.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/compiler2.make.i
new file mode 100644
index 0000000..dca2e45
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/compiler2.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/core.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/core.make.i
new file mode 100644
index 0000000..42da6ab
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/core.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/cscope.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/cscope.make.i
new file mode 100644
index 0000000..6f8292e
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/cscope.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/debug.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/debug.make.i
new file mode 100644
index 0000000..a9381eb
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/debug.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/defs.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/defs.make.i
new file mode 100644
index 0000000..3595e0d
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/defs.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/dtrace.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/dtrace.make.i
new file mode 100644
index 0000000..84e0140
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/dtrace.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/fastdebug.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/fastdebug.make.i
new file mode 100644
index 0000000..10e0d35
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/fastdebug.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/gcc.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/gcc.make.i
new file mode 100644
index 0000000..97ff349
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/gcc.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/hp.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/hp.make.i
new file mode 100644
index 0000000..5b4d5d6
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/hp.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/hp1.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/hp1.make.i
new file mode 100644
index 0000000..c8c8634
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/hp1.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/i486.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/i486.make.i
new file mode 100644
index 0000000..4bc4a7c
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/i486.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/ia64.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/ia64.make.i
new file mode 100644
index 0000000..684829c
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/ia64.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/jsig.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/jsig.make.i
new file mode 100644
index 0000000..33a8f36
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/jsig.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/jvmg.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/jvmg.make.i
new file mode 100644
index 0000000..cfff6ad
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/jvmg.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/jvmti.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/jvmti.make.i
new file mode 100644
index 0000000..1b4df48
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/jvmti.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/launcher.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/launcher.make.i
new file mode 100644
index 0000000..9c4daef
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/launcher.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/mapfile-vers-debug.i b/hotspot/.hg/store/data/make/bsd/makefiles/mapfile-vers-debug.i
new file mode 100644
index 0000000..b8d3366
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/mapfile-vers-debug.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/mapfile-vers-jsig.i b/hotspot/.hg/store/data/make/bsd/makefiles/mapfile-vers-jsig.i
new file mode 100644
index 0000000..fce4691
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/mapfile-vers-jsig.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/mapfile-vers-product.i b/hotspot/.hg/store/data/make/bsd/makefiles/mapfile-vers-product.i
new file mode 100644
index 0000000..090624f
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/mapfile-vers-product.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/optimized.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/optimized.make.i
new file mode 100644
index 0000000..9b363bd
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/optimized.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/ppc.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/ppc.make.i
new file mode 100644
index 0000000..f749ada
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/ppc.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/product.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/product.make.i
new file mode 100644
index 0000000..4ddd182
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/product.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/profiled.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/profiled.make.i
new file mode 100644
index 0000000..1ec8f64
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/profiled.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/rules.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/rules.make.i
new file mode 100644
index 0000000..3e7734c
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/rules.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/sa.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/sa.make.i
new file mode 100644
index 0000000..c4146d0
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/sa.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/saproc.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/saproc.make.i
new file mode 100644
index 0000000..0787b14
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/saproc.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/shark.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/shark.make.i
new file mode 100644
index 0000000..316dfdb
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/shark.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/sparc.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/sparc.make.i
new file mode 100644
index 0000000..13059f7
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/sparc.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/sparc_works.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/sparc_works.make.i
new file mode 100644
index 0000000..d60fb45
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/sparc_works.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/sparcv9.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/sparcv9.make.i
new file mode 100644
index 0000000..e9c61f5
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/sparcv9.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/tiered.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/tiered.make.i
new file mode 100644
index 0000000..1a42646
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/tiered.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/top.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/top.make.i
new file mode 100644
index 0000000..c646ca6
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/top.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/vm.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/vm.make.i
new file mode 100644
index 0000000..eb92e32
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/vm.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/zero.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/zero.make.i
new file mode 100644
index 0000000..cc5e687
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/zero.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/makefiles/zeroshark.make.i b/hotspot/.hg/store/data/make/bsd/makefiles/zeroshark.make.i
new file mode 100644
index 0000000..507cfc5
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/makefiles/zeroshark.make.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/platform__amd64.i b/hotspot/.hg/store/data/make/bsd/platform__amd64.i
new file mode 100644
index 0000000..8015dfb
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/platform__amd64.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/platform__amd64.suncc.i b/hotspot/.hg/store/data/make/bsd/platform__amd64.suncc.i
new file mode 100644
index 0000000..bc08f03
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/platform__amd64.suncc.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/platform__i486.i b/hotspot/.hg/store/data/make/bsd/platform__i486.i
new file mode 100644
index 0000000..16e0c71
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/platform__i486.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/platform__i486.suncc.i b/hotspot/.hg/store/data/make/bsd/platform__i486.suncc.i
new file mode 100644
index 0000000..6254605
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/platform__i486.suncc.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/platform__ia64.i b/hotspot/.hg/store/data/make/bsd/platform__ia64.i
new file mode 100644
index 0000000..4ed05fe
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/platform__ia64.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/platform__sparc.i b/hotspot/.hg/store/data/make/bsd/platform__sparc.i
new file mode 100644
index 0000000..a7b9fe6
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/platform__sparc.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/platform__sparcv9.i b/hotspot/.hg/store/data/make/bsd/platform__sparcv9.i
new file mode 100644
index 0000000..18227e6
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/platform__sparcv9.i differ
diff --git a/hotspot/.hg/store/data/make/bsd/platform__zero.in.i b/hotspot/.hg/store/data/make/bsd/platform__zero.in.i
new file mode 100644
index 0000000..bbe0bc0
Binary files /dev/null and b/hotspot/.hg/store/data/make/bsd/platform__zero.in.i differ
diff --git a/hotspot/.hg/store/data/make/cscope.make.i b/hotspot/.hg/store/data/make/cscope.make.i
index 8a6f8ed..296ce7c 100644
Binary files a/hotspot/.hg/store/data/make/cscope.make.i and b/hotspot/.hg/store/data/make/cscope.make.i differ
diff --git a/hotspot/.hg/store/data/make/defs.make.i b/hotspot/.hg/store/data/make/defs.make.i
index 76b306f..dd8a94b 100644
Binary files a/hotspot/.hg/store/data/make/defs.make.i and b/hotspot/.hg/store/data/make/defs.make.i differ
diff --git a/hotspot/.hg/store/data/make/hotspot__version.i b/hotspot/.hg/store/data/make/hotspot__version.i
index 6ac1eaa..bcee8a9 100644
Binary files a/hotspot/.hg/store/data/make/hotspot__version.i and b/hotspot/.hg/store/data/make/hotspot__version.i differ
diff --git a/hotspot/.hg/store/data/make/jprt.gmk.i b/hotspot/.hg/store/data/make/jprt.gmk.i
index 0ab60a0..9bfb12b 100644
Binary files a/hotspot/.hg/store/data/make/jprt.gmk.i and b/hotspot/.hg/store/data/make/jprt.gmk.i differ
diff --git a/hotspot/.hg/store/data/make/linux/_makefile.i b/hotspot/.hg/store/data/make/linux/_makefile.i
index d3a40bd..a636b6d 100644
Binary files a/hotspot/.hg/store/data/make/linux/_makefile.i and b/hotspot/.hg/store/data/make/linux/_makefile.i differ
diff --git a/hotspot/.hg/store/data/make/linux/build.sh.i b/hotspot/.hg/store/data/make/linux/build.sh.i
index d85cb77..3f7ac00 100644
Binary files a/hotspot/.hg/store/data/make/linux/build.sh.i and b/hotspot/.hg/store/data/make/linux/build.sh.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/arm.make.i b/hotspot/.hg/store/data/make/linux/makefiles/arm.make.i
index f773bee..044763f 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/arm.make.i and b/hotspot/.hg/store/data/make/linux/makefiles/arm.make.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/build__vm__def.sh.i b/hotspot/.hg/store/data/make/linux/makefiles/build__vm__def.sh.i
index 78a2c64..c3d801a 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/build__vm__def.sh.i and b/hotspot/.hg/store/data/make/linux/makefiles/build__vm__def.sh.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/buildtree.make.i b/hotspot/.hg/store/data/make/linux/makefiles/buildtree.make.i
index 9af3b02..2e4f537 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/buildtree.make.i and b/hotspot/.hg/store/data/make/linux/makefiles/buildtree.make.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/defs.make.i b/hotspot/.hg/store/data/make/linux/makefiles/defs.make.i
index d69d4e1..af14582 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/defs.make.i and b/hotspot/.hg/store/data/make/linux/makefiles/defs.make.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/gcc.make.i b/hotspot/.hg/store/data/make/linux/makefiles/gcc.make.i
index 3e721f9..de44581 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/gcc.make.i and b/hotspot/.hg/store/data/make/linux/makefiles/gcc.make.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/jsig.make.i b/hotspot/.hg/store/data/make/linux/makefiles/jsig.make.i
index 1ecb20e..ca0cd4c 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/jsig.make.i and b/hotspot/.hg/store/data/make/linux/makefiles/jsig.make.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/mapfile-vers-debug.i b/hotspot/.hg/store/data/make/linux/makefiles/mapfile-vers-debug.i
index dd19939..e98f716 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/mapfile-vers-debug.i and b/hotspot/.hg/store/data/make/linux/makefiles/mapfile-vers-debug.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/mapfile-vers-product.i b/hotspot/.hg/store/data/make/linux/makefiles/mapfile-vers-product.i
index 9015cfa..124130f 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/mapfile-vers-product.i and b/hotspot/.hg/store/data/make/linux/makefiles/mapfile-vers-product.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/ppc.make.i b/hotspot/.hg/store/data/make/linux/makefiles/ppc.make.i
index 9638885..e0c2fda 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/ppc.make.i and b/hotspot/.hg/store/data/make/linux/makefiles/ppc.make.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/product.make.i b/hotspot/.hg/store/data/make/linux/makefiles/product.make.i
index 2ec4350..e6fe164 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/product.make.i and b/hotspot/.hg/store/data/make/linux/makefiles/product.make.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/sa.make.i b/hotspot/.hg/store/data/make/linux/makefiles/sa.make.i
index 9130f4e..dcb6703 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/sa.make.i and b/hotspot/.hg/store/data/make/linux/makefiles/sa.make.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/saproc.make.i b/hotspot/.hg/store/data/make/linux/makefiles/saproc.make.i
index 3dfa935..62783d3 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/saproc.make.i and b/hotspot/.hg/store/data/make/linux/makefiles/saproc.make.i differ
diff --git a/hotspot/.hg/store/data/make/linux/makefiles/vm.make.i b/hotspot/.hg/store/data/make/linux/makefiles/vm.make.i
index 4e44aaf..3049d19 100644
Binary files a/hotspot/.hg/store/data/make/linux/makefiles/vm.make.i and b/hotspot/.hg/store/data/make/linux/makefiles/vm.make.i differ
diff --git a/hotspot/.hg/store/data/make/sa.files.i b/hotspot/.hg/store/data/make/sa.files.i
index 23542eb..dacc7b0 100644
Binary files a/hotspot/.hg/store/data/make/sa.files.i and b/hotspot/.hg/store/data/make/sa.files.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/_makefile.i b/hotspot/.hg/store/data/make/solaris/_makefile.i
index 5356ffb..a9b1193 100644
Binary files a/hotspot/.hg/store/data/make/solaris/_makefile.i and b/hotspot/.hg/store/data/make/solaris/_makefile.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/build__vm__def.sh.i b/hotspot/.hg/store/data/make/solaris/makefiles/build__vm__def.sh.i
new file mode 100644
index 0000000..26fd244
Binary files /dev/null and b/hotspot/.hg/store/data/make/solaris/makefiles/build__vm__def.sh.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/buildtree.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/buildtree.make.i
index 6f69b42..5d4ac84 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/buildtree.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/buildtree.make.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/debug.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/debug.make.i
index b3a224d..c5ed893 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/debug.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/debug.make.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/defs.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/defs.make.i
index 83bdd50..cf2455c 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/defs.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/defs.make.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/dtrace.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/dtrace.make.i
index eef6214..1d3ea34 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/dtrace.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/dtrace.make.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/fastdebug.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/fastdebug.make.i
index d56c2fc..216908b 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/fastdebug.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/fastdebug.make.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/jsig.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/jsig.make.i
index d8b62bc..6521e87 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/jsig.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/jsig.make.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/jvmg.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/jvmg.make.i
index 322973e..3dc25f1 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/jvmg.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/jvmg.make.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/mapfile-vers.i b/hotspot/.hg/store/data/make/solaris/makefiles/mapfile-vers.i
index 217e241..a88ba91 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/mapfile-vers.i and b/hotspot/.hg/store/data/make/solaris/makefiles/mapfile-vers.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/optimized.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/optimized.make.i
index fe4a006..510f728 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/optimized.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/optimized.make.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/product.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/product.make.i
index 5a34bd5..20fcb5b 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/product.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/product.make.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/sa.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/sa.make.i
index 8731751..7c3daf2 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/sa.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/sa.make.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/saproc.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/saproc.make.i
index d8bb07c..fcf0a9c 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/saproc.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/saproc.make.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/sparc_works.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/sparc_works.make.i
index 8115809..b8e19c1 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/sparc_works.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/sparc_works.make.i differ
diff --git a/hotspot/.hg/store/data/make/solaris/makefiles/vm.make.i b/hotspot/.hg/store/data/make/solaris/makefiles/vm.make.i
index 1b4ad2c..0b7b3cd 100644
Binary files a/hotspot/.hg/store/data/make/solaris/makefiles/vm.make.i and b/hotspot/.hg/store/data/make/solaris/makefiles/vm.make.i differ
diff --git a/hotspot/.hg/store/data/make/windows/makefiles/compile.make.i b/hotspot/.hg/store/data/make/windows/makefiles/compile.make.i
index aba5552..93aea6c 100644
Binary files a/hotspot/.hg/store/data/make/windows/makefiles/compile.make.i and b/hotspot/.hg/store/data/make/windows/makefiles/compile.make.i differ
diff --git a/hotspot/.hg/store/data/make/windows/makefiles/defs.make.i b/hotspot/.hg/store/data/make/windows/makefiles/defs.make.i
index 0acb90f..3452a9a 100644
Binary files a/hotspot/.hg/store/data/make/windows/makefiles/defs.make.i and b/hotspot/.hg/store/data/make/windows/makefiles/defs.make.i differ
diff --git a/hotspot/.hg/store/data/make/windows/makefiles/sa.make.i b/hotspot/.hg/store/data/make/windows/makefiles/sa.make.i
index f581e74..9d509e6 100644
Binary files a/hotspot/.hg/store/data/make/windows/makefiles/sa.make.i and b/hotspot/.hg/store/data/make/windows/makefiles/sa.make.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/assembler__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/assembler__sparc.cpp.i
index 9ab2e4b..614f16c 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/assembler__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/assembler__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/assembler__sparc.hpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/assembler__sparc.hpp.i
index 343943d..ee9fc44 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/assembler__sparc.hpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/assembler__sparc.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/assembler__sparc.inline.hpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/assembler__sparc.inline.hpp.i
index 5da1cc9..40775e6 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/assembler__sparc.inline.hpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/assembler__sparc.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___code_stubs__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___code_stubs__sparc.cpp.i
index 7f9a52b..17a14e6 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___code_stubs__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___code_stubs__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___l_i_r_assembler__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___l_i_r_assembler__sparc.cpp.i
index 0e1e641..8185e6b 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___l_i_r_assembler__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___l_i_r_assembler__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___l_i_r_generator__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___l_i_r_generator__sparc.cpp.i
index f8d6304..c696432 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___l_i_r_generator__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___l_i_r_generator__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___macro_assembler__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___macro_assembler__sparc.cpp.i
index ee0be39..7be23d6 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___macro_assembler__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___macro_assembler__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___runtime1__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___runtime1__sparc.cpp.i
index ddcf74f..699908b 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___runtime1__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/c1___runtime1__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/copy__sparc.hpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/copy__sparc.hpp.i
index 4567bc3..5d3cabd 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/copy__sparc.hpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/copy__sparc.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/cpp_interpreter__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/cpp_interpreter__sparc.cpp.i
index edb857e..ae546ea 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/cpp_interpreter__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/cpp_interpreter__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/frame__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/frame__sparc.cpp.i
index 2d0dce1..921eae7 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/frame__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/frame__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/frame__sparc.hpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/frame__sparc.hpp.i
index 9bf07ba..678491f 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/frame__sparc.hpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/frame__sparc.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/interp__masm__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/interp__masm__sparc.cpp.i
index eaa1cdb..a124f67 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/interp__masm__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/interp__masm__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/interp__masm__sparc.hpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/interp__masm__sparc.hpp.i
index 8303215..acbbe94 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/interp__masm__sparc.hpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/interp__masm__sparc.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/interpreter__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/interpreter__sparc.cpp.i
index 66f5a6e..43ef093 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/interpreter__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/interpreter__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/method_handles__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/method_handles__sparc.cpp.i
index ffb23f5..7f7cab4 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/method_handles__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/method_handles__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/shared_runtime__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/shared_runtime__sparc.cpp.i
index 825a707..90d9c0f 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/shared_runtime__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/shared_runtime__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/sparc.ad.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/sparc.ad.i
index d064d14..b89c3fb 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/sparc.ad.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/sparc.ad.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/stub_generator__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/stub_generator__sparc.cpp.i
index 747ad95..43f1f74 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/stub_generator__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/stub_generator__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/template_interpreter__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/template_interpreter__sparc.cpp.i
index 7fddd36..9d37d12 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/template_interpreter__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/template_interpreter__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/template_table__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/template_table__sparc.cpp.i
index 515fbd8..d65c1f5 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/template_table__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/template_table__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/vm__version__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/vm__version__sparc.cpp.i
index 13fe792..00ae964 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/vm__version__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/vm__version__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/vm__version__sparc.hpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/vm__version__sparc.hpp.i
index 0514704..7ab964d 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/vm__version__sparc.hpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/vm__version__sparc.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/sparc/vm/vtable_stubs__sparc.cpp.i b/hotspot/.hg/store/data/src/cpu/sparc/vm/vtable_stubs__sparc.cpp.i
index 39a25c2..4c76272 100644
Binary files a/hotspot/.hg/store/data/src/cpu/sparc/vm/vtable_stubs__sparc.cpp.i and b/hotspot/.hg/store/data/src/cpu/sparc/vm/vtable_stubs__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/assembler__x86.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/assembler__x86.cpp.i
index 0f0dcbf..b3ba328 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/assembler__x86.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/assembler__x86.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/assembler__x86.hpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/assembler__x86.hpp.i
index e0df484..ddedbaf 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/assembler__x86.hpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/assembler__x86.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/bytes__x86.hpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/bytes__x86.hpp.i
index 8e2e039..9f86a56 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/bytes__x86.hpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/bytes__x86.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/c1___l_i_r_assembler__x86.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/c1___l_i_r_assembler__x86.cpp.i
index 9d492d6..380d56f 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/c1___l_i_r_assembler__x86.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/c1___l_i_r_assembler__x86.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/c1___l_i_r_assembler__x86.hpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/c1___l_i_r_assembler__x86.hpp.i
index 4d60533..e4d10f9 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/c1___l_i_r_assembler__x86.hpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/c1___l_i_r_assembler__x86.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/c1___l_i_r_generator__x86.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/c1___l_i_r_generator__x86.cpp.i
index f8616c0..6ef5a62 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/c1___l_i_r_generator__x86.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/c1___l_i_r_generator__x86.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/c1___runtime1__x86.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/c1___runtime1__x86.cpp.i
index 0a498c9..0c44cb7 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/c1___runtime1__x86.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/c1___runtime1__x86.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/copy__x86.hpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/copy__x86.hpp.i
index b969d0e..b021588 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/copy__x86.hpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/copy__x86.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/frame__x86.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/frame__x86.cpp.i
index 3ead680..c51c9f9 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/frame__x86.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/frame__x86.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/globals__x86.hpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/globals__x86.hpp.i
index b8f2a8a..e06e5da 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/globals__x86.hpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/globals__x86.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__32.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__32.cpp.i
index 9fbae20..ec552b8 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__32.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__32.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__32.hpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__32.hpp.i
index c6774c0..903f3b8 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__32.hpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__32.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__64.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__64.cpp.i
index 56ee516..38fd03c 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__64.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__64.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__64.hpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__64.hpp.i
index 1b628bb..ca58879 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__64.hpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/interp__masm__x86__64.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/jni__x86.h.i b/hotspot/.hg/store/data/src/cpu/x86/vm/jni__x86.h.i
index 1d8cb2a..d611c5e 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/jni__x86.h.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/jni__x86.h.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/method_handles__x86.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/method_handles__x86.cpp.i
index 2a001d8..06dd762 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/method_handles__x86.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/method_handles__x86.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/method_handles__x86.hpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/method_handles__x86.hpp.i
index 7094964..411087b 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/method_handles__x86.hpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/method_handles__x86.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/shared_runtime__x86__32.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/shared_runtime__x86__32.cpp.i
index eb13669..2d969fe 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/shared_runtime__x86__32.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/shared_runtime__x86__32.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/shared_runtime__x86__64.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/shared_runtime__x86__64.cpp.i
index c7580af..c8612b1 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/shared_runtime__x86__64.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/shared_runtime__x86__64.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/stub_generator__x86__32.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/stub_generator__x86__32.cpp.i
index 9828966..748cfef 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/stub_generator__x86__32.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/stub_generator__x86__32.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/stub_generator__x86__64.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/stub_generator__x86__64.cpp.i
index daf23b1..71556f5 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/stub_generator__x86__64.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/stub_generator__x86__64.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/stub_routines__x86__32.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/stub_routines__x86__32.cpp.i
index 57ebd49..fed2744 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/stub_routines__x86__32.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/stub_routines__x86__32.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/stub_routines__x86__64.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/stub_routines__x86__64.cpp.i
index 45940f6..1c37347 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/stub_routines__x86__64.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/stub_routines__x86__64.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/template_table__x86__32.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/template_table__x86__32.cpp.i
index 3834d84..7ceaf50 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/template_table__x86__32.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/template_table__x86__32.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/template_table__x86__64.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/template_table__x86__64.cpp.i
index e3483f4..12c1166 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/template_table__x86__64.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/template_table__x86__64.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/vm__version__x86.cpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/vm__version__x86.cpp.i
index b429633..df71c1c 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/vm__version__x86.cpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/vm__version__x86.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/vm__version__x86.hpp.i b/hotspot/.hg/store/data/src/cpu/x86/vm/vm__version__x86.hpp.i
index ffbd6b3..f289857 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/vm__version__x86.hpp.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/vm__version__x86.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/x86__32.ad.i b/hotspot/.hg/store/data/src/cpu/x86/vm/x86__32.ad.i
index 58cf8a3..4644869 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/x86__32.ad.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/x86__32.ad.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/x86/vm/x86__64.ad.i b/hotspot/.hg/store/data/src/cpu/x86/vm/x86__64.ad.i
index 570b76b..593026a 100644
Binary files a/hotspot/.hg/store/data/src/cpu/x86/vm/x86__64.ad.i and b/hotspot/.hg/store/data/src/cpu/x86/vm/x86__64.ad.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/zero/vm/bytes__zero.hpp.i b/hotspot/.hg/store/data/src/cpu/zero/vm/bytes__zero.hpp.i
index 8d44728..0e5eb2e 100644
Binary files a/hotspot/.hg/store/data/src/cpu/zero/vm/bytes__zero.hpp.i and b/hotspot/.hg/store/data/src/cpu/zero/vm/bytes__zero.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/zero/vm/frame__zero.cpp.i b/hotspot/.hg/store/data/src/cpu/zero/vm/frame__zero.cpp.i
index b028259..ae96c89 100644
Binary files a/hotspot/.hg/store/data/src/cpu/zero/vm/frame__zero.cpp.i and b/hotspot/.hg/store/data/src/cpu/zero/vm/frame__zero.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/zero/vm/globals__zero.hpp.i b/hotspot/.hg/store/data/src/cpu/zero/vm/globals__zero.hpp.i
index b589865..5bdc5e1 100644
Binary files a/hotspot/.hg/store/data/src/cpu/zero/vm/globals__zero.hpp.i and b/hotspot/.hg/store/data/src/cpu/zero/vm/globals__zero.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/zero/vm/interp__masm__zero.cpp.i b/hotspot/.hg/store/data/src/cpu/zero/vm/interp__masm__zero.cpp.i
index dfbfc2f..6a3daaf 100644
Binary files a/hotspot/.hg/store/data/src/cpu/zero/vm/interp__masm__zero.cpp.i and b/hotspot/.hg/store/data/src/cpu/zero/vm/interp__masm__zero.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/zero/vm/method_handles__zero.hpp.i b/hotspot/.hg/store/data/src/cpu/zero/vm/method_handles__zero.hpp.i
new file mode 100644
index 0000000..042330f
Binary files /dev/null and b/hotspot/.hg/store/data/src/cpu/zero/vm/method_handles__zero.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/zero/vm/shared_runtime__zero.cpp.i b/hotspot/.hg/store/data/src/cpu/zero/vm/shared_runtime__zero.cpp.i
index 3754784..364aa54 100644
Binary files a/hotspot/.hg/store/data/src/cpu/zero/vm/shared_runtime__zero.cpp.i and b/hotspot/.hg/store/data/src/cpu/zero/vm/shared_runtime__zero.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/zero/vm/stack__zero.cpp.i b/hotspot/.hg/store/data/src/cpu/zero/vm/stack__zero.cpp.i
index 7070e29..c514c14 100644
Binary files a/hotspot/.hg/store/data/src/cpu/zero/vm/stack__zero.cpp.i and b/hotspot/.hg/store/data/src/cpu/zero/vm/stack__zero.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/zero/vm/stub_generator__zero.cpp.i b/hotspot/.hg/store/data/src/cpu/zero/vm/stub_generator__zero.cpp.i
index d0b1598..6502102 100644
Binary files a/hotspot/.hg/store/data/src/cpu/zero/vm/stub_generator__zero.cpp.i and b/hotspot/.hg/store/data/src/cpu/zero/vm/stub_generator__zero.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/zero/vm/stub_routines__zero.cpp.i b/hotspot/.hg/store/data/src/cpu/zero/vm/stub_routines__zero.cpp.i
index ef119c7..7568382 100644
Binary files a/hotspot/.hg/store/data/src/cpu/zero/vm/stub_routines__zero.cpp.i and b/hotspot/.hg/store/data/src/cpu/zero/vm/stub_routines__zero.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/cpu/zero/vm/vm__version__zero.cpp.i b/hotspot/.hg/store/data/src/cpu/zero/vm/vm__version__zero.cpp.i
index 9f17442..3a336dd 100644
Binary files a/hotspot/.hg/store/data/src/cpu/zero/vm/vm__version__zero.cpp.i and b/hotspot/.hg/store/data/src/cpu/zero/vm/vm__version__zero.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/attach_listener__bsd.cpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/attach_listener__bsd.cpp.i
new file mode 100644
index 0000000..aa02958
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/attach_listener__bsd.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/c1__globals__bsd.hpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/c1__globals__bsd.hpp.i
new file mode 100644
index 0000000..039a6bc
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/c1__globals__bsd.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/c2__globals__bsd.hpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/c2__globals__bsd.hpp.i
new file mode 100644
index 0000000..c5dde31
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/c2__globals__bsd.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/chaitin__bsd.cpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/chaitin__bsd.cpp.i
new file mode 100644
index 0000000..7f8c506
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/chaitin__bsd.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/decoder__bsd.cpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/decoder__bsd.cpp.i
new file mode 100644
index 0000000..7571f8d
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/decoder__bsd.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/dtrace_j_s_d_t__bsd.cpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/dtrace_j_s_d_t__bsd.cpp.i
new file mode 100644
index 0000000..b9e26c5
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/dtrace_j_s_d_t__bsd.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/globals__bsd.hpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/globals__bsd.hpp.i
new file mode 100644
index 0000000..cc973ee
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/globals__bsd.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/interface_support__bsd.hpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/interface_support__bsd.hpp.i
new file mode 100644
index 0000000..28b4d17
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/interface_support__bsd.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/jsig.c.i b/hotspot/.hg/store/data/src/os/bsd/vm/jsig.c.i
new file mode 100644
index 0000000..cada7c8
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/jsig.c.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/jvm__bsd.cpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/jvm__bsd.cpp.i
new file mode 100644
index 0000000..b3dd3cb
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/jvm__bsd.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/jvm__bsd.h.i b/hotspot/.hg/store/data/src/os/bsd/vm/jvm__bsd.h.i
new file mode 100644
index 0000000..9ab8e3e
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/jvm__bsd.h.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/mutex__bsd.cpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/mutex__bsd.cpp.i
new file mode 100644
index 0000000..74c33dd
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/mutex__bsd.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/mutex__bsd.inline.hpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/mutex__bsd.inline.hpp.i
new file mode 100644
index 0000000..fbf90e9
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/mutex__bsd.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/os__bsd.cpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/os__bsd.cpp.i
new file mode 100644
index 0000000..df6cb86
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/os__bsd.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/os__bsd.hpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/os__bsd.hpp.i
new file mode 100644
index 0000000..a8e67e8
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/os__bsd.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/os__bsd.inline.hpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/os__bsd.inline.hpp.i
new file mode 100644
index 0000000..52d85b4
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/os__bsd.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/os__share__bsd.hpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/os__share__bsd.hpp.i
new file mode 100644
index 0000000..e4ad5a0
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/os__share__bsd.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/os_thread__bsd.cpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/os_thread__bsd.cpp.i
new file mode 100644
index 0000000..54d1c94
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/os_thread__bsd.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/os_thread__bsd.hpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/os_thread__bsd.hpp.i
new file mode 100644
index 0000000..1354597
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/os_thread__bsd.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/perf_memory__bsd.cpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/perf_memory__bsd.cpp.i
new file mode 100644
index 0000000..63d5460
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/perf_memory__bsd.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/stub_routines__bsd.cpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/stub_routines__bsd.cpp.i
new file mode 100644
index 0000000..284291b
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/stub_routines__bsd.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/thread__bsd.inline.hpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/thread__bsd.inline.hpp.i
new file mode 100644
index 0000000..442b886
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/thread__bsd.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/thread_critical__bsd.cpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/thread_critical__bsd.cpp.i
new file mode 100644
index 0000000..4828cb3
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/thread_critical__bsd.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/bsd/vm/vm_error__bsd.cpp.i b/hotspot/.hg/store/data/src/os/bsd/vm/vm_error__bsd.cpp.i
new file mode 100644
index 0000000..68d64b7
Binary files /dev/null and b/hotspot/.hg/store/data/src/os/bsd/vm/vm_error__bsd.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/linux/vm/os__linux.cpp.i b/hotspot/.hg/store/data/src/os/linux/vm/os__linux.cpp.i
index b325993..cd66b95 100644
Binary files a/hotspot/.hg/store/data/src/os/linux/vm/os__linux.cpp.i and b/hotspot/.hg/store/data/src/os/linux/vm/os__linux.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/linux/vm/os__linux.hpp.i b/hotspot/.hg/store/data/src/os/linux/vm/os__linux.hpp.i
index 75e1d5d..6202b70 100644
Binary files a/hotspot/.hg/store/data/src/os/linux/vm/os__linux.hpp.i and b/hotspot/.hg/store/data/src/os/linux/vm/os__linux.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/posix/launcher/java__md.c.i b/hotspot/.hg/store/data/src/os/posix/launcher/java__md.c.i
index 6441718..7216848 100644
Binary files a/hotspot/.hg/store/data/src/os/posix/launcher/java__md.c.i and b/hotspot/.hg/store/data/src/os/posix/launcher/java__md.c.i differ
diff --git a/hotspot/.hg/store/data/src/os/posix/launcher/launcher.script.i b/hotspot/.hg/store/data/src/os/posix/launcher/launcher.script.i
index 0435740..7901ec2 100644
Binary files a/hotspot/.hg/store/data/src/os/posix/launcher/launcher.script.i and b/hotspot/.hg/store/data/src/os/posix/launcher/launcher.script.i differ
diff --git a/hotspot/.hg/store/data/src/os/solaris/vm/os__solaris.cpp.i b/hotspot/.hg/store/data/src/os/solaris/vm/os__solaris.cpp.i
index 03dd841..a56a14a 100644
Binary files a/hotspot/.hg/store/data/src/os/solaris/vm/os__solaris.cpp.i and b/hotspot/.hg/store/data/src/os/solaris/vm/os__solaris.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/windows/vm/decoder__windows.cpp.i b/hotspot/.hg/store/data/src/os/windows/vm/decoder__windows.cpp.i
index 5d00f1f..e81c2c3 100644
Binary files a/hotspot/.hg/store/data/src/os/windows/vm/decoder__windows.cpp.i and b/hotspot/.hg/store/data/src/os/windows/vm/decoder__windows.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/windows/vm/jvm__windows.h.i b/hotspot/.hg/store/data/src/os/windows/vm/jvm__windows.h.i
index ccecba9..5dbdbd3 100644
Binary files a/hotspot/.hg/store/data/src/os/windows/vm/jvm__windows.h.i and b/hotspot/.hg/store/data/src/os/windows/vm/jvm__windows.h.i differ
diff --git a/hotspot/.hg/store/data/src/os/windows/vm/os__windows.cpp.i b/hotspot/.hg/store/data/src/os/windows/vm/os__windows.cpp.i
index c156139..e33c09d 100644
Binary files a/hotspot/.hg/store/data/src/os/windows/vm/os__windows.cpp.i and b/hotspot/.hg/store/data/src/os/windows/vm/os__windows.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os/windows/vm/os__windows.hpp.i b/hotspot/.hg/store/data/src/os/windows/vm/os__windows.hpp.i
index 95c4d1b..56fe30a 100644
Binary files a/hotspot/.hg/store/data/src/os/windows/vm/os__windows.hpp.i and b/hotspot/.hg/store/data/src/os/windows/vm/os__windows.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/assembler__bsd__x86.cpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/assembler__bsd__x86.cpp.i
new file mode 100644
index 0000000..d476039
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/assembler__bsd__x86.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/atomic__bsd__x86.inline.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/atomic__bsd__x86.inline.hpp.i
new file mode 100644
index 0000000..8216423
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/atomic__bsd__x86.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bsd__x86__32.ad.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bsd__x86__32.ad.i
new file mode 100644
index 0000000..7accbbe
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bsd__x86__32.ad.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bsd__x86__32.s.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bsd__x86__32.s.i
new file mode 100644
index 0000000..290cad8
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bsd__x86__32.s.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bsd__x86__64.ad.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bsd__x86__64.ad.i
new file mode 100644
index 0000000..f3ea081
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bsd__x86__64.ad.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bsd__x86__64.s.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bsd__x86__64.s.i
new file mode 100644
index 0000000..3be19e6
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bsd__x86__64.s.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bytes__bsd__x86.inline.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bytes__bsd__x86.inline.hpp.i
new file mode 100644
index 0000000..49432bb
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/bytes__bsd__x86.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/copy__bsd__x86.inline.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/copy__bsd__x86.inline.hpp.i
new file mode 100644
index 0000000..b106516
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/copy__bsd__x86.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/globals__bsd__x86.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/globals__bsd__x86.hpp.i
new file mode 100644
index 0000000..66233b9
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/globals__bsd__x86.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/order_access__bsd__x86.inline.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/order_access__bsd__x86.inline.hpp.i
new file mode 100644
index 0000000..10319ad
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/order_access__bsd__x86.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/os__bsd__x86.cpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/os__bsd__x86.cpp.i
new file mode 100644
index 0000000..201db20
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/os__bsd__x86.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/os__bsd__x86.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/os__bsd__x86.hpp.i
new file mode 100644
index 0000000..c1ac042
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/os__bsd__x86.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/prefetch__bsd__x86.inline.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/prefetch__bsd__x86.inline.hpp.i
new file mode 100644
index 0000000..55a247d
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/prefetch__bsd__x86.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/thread__bsd__x86.cpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/thread__bsd__x86.cpp.i
new file mode 100644
index 0000000..abb75f0
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/thread__bsd__x86.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/thread__bsd__x86.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/thread__bsd__x86.hpp.i
new file mode 100644
index 0000000..0aa7ba2
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/thread__bsd__x86.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/thread_l_s__bsd__x86.cpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/thread_l_s__bsd__x86.cpp.i
new file mode 100644
index 0000000..2d4dd10
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/thread_l_s__bsd__x86.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/thread_l_s__bsd__x86.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/thread_l_s__bsd__x86.hpp.i
new file mode 100644
index 0000000..978241c
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/thread_l_s__bsd__x86.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/vm__version__bsd__x86.cpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/vm__version__bsd__x86.cpp.i
new file mode 100644
index 0000000..e37a44b
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/vm__version__bsd__x86.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/vm_structs__bsd__x86.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/vm_structs__bsd__x86.hpp.i
new file mode 100644
index 0000000..98ef22f
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__x86/vm/vm_structs__bsd__x86.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/assembler__bsd__zero.cpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/assembler__bsd__zero.cpp.i
new file mode 100644
index 0000000..52e6951
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/assembler__bsd__zero.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/atomic__bsd__zero.inline.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/atomic__bsd__zero.inline.hpp.i
new file mode 100644
index 0000000..97211b1
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/atomic__bsd__zero.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/bytes__bsd__zero.inline.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/bytes__bsd__zero.inline.hpp.i
new file mode 100644
index 0000000..b273eb0
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/bytes__bsd__zero.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/globals__bsd__zero.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/globals__bsd__zero.hpp.i
new file mode 100644
index 0000000..8940c1b
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/globals__bsd__zero.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/order_access__bsd__zero.inline.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/order_access__bsd__zero.inline.hpp.i
new file mode 100644
index 0000000..73682b1
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/order_access__bsd__zero.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/os__bsd__zero.cpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/os__bsd__zero.cpp.i
new file mode 100644
index 0000000..4031942
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/os__bsd__zero.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/os__bsd__zero.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/os__bsd__zero.hpp.i
new file mode 100644
index 0000000..54056b8
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/os__bsd__zero.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/prefetch__bsd__zero.inline.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/prefetch__bsd__zero.inline.hpp.i
new file mode 100644
index 0000000..a3a91f0
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/prefetch__bsd__zero.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/thread__bsd__zero.cpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/thread__bsd__zero.cpp.i
new file mode 100644
index 0000000..39550d0
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/thread__bsd__zero.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/thread__bsd__zero.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/thread__bsd__zero.hpp.i
new file mode 100644
index 0000000..3db006f
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/thread__bsd__zero.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/thread_l_s__bsd__zero.cpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/thread_l_s__bsd__zero.cpp.i
new file mode 100644
index 0000000..32aaadf
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/thread_l_s__bsd__zero.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/thread_l_s__bsd__zero.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/thread_l_s__bsd__zero.hpp.i
new file mode 100644
index 0000000..88a34ba
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/thread_l_s__bsd__zero.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/vm__version__bsd__zero.cpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/vm__version__bsd__zero.cpp.i
new file mode 100644
index 0000000..c61fcdc
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/vm__version__bsd__zero.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/vm_structs__bsd__zero.hpp.i b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/vm_structs__bsd__zero.hpp.i
new file mode 100644
index 0000000..f955c59
Binary files /dev/null and b/hotspot/.hg/store/data/src/os__cpu/bsd__zero/vm/vm_structs__bsd__zero.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/linux__x86/vm/linux__x86__32.ad.i b/hotspot/.hg/store/data/src/os__cpu/linux__x86/vm/linux__x86__32.ad.i
index fbf5354..17cb285 100644
Binary files a/hotspot/.hg/store/data/src/os__cpu/linux__x86/vm/linux__x86__32.ad.i and b/hotspot/.hg/store/data/src/os__cpu/linux__x86/vm/linux__x86__32.ad.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/linux__x86/vm/linux__x86__64.ad.i b/hotspot/.hg/store/data/src/os__cpu/linux__x86/vm/linux__x86__64.ad.i
index 0de75fc..a787b61 100644
Binary files a/hotspot/.hg/store/data/src/os__cpu/linux__x86/vm/linux__x86__64.ad.i and b/hotspot/.hg/store/data/src/os__cpu/linux__x86/vm/linux__x86__64.ad.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/linux__zero/vm/globals__linux__zero.hpp.i b/hotspot/.hg/store/data/src/os__cpu/linux__zero/vm/globals__linux__zero.hpp.i
index fee271a..fd33161 100644
Binary files a/hotspot/.hg/store/data/src/os__cpu/linux__zero/vm/globals__linux__zero.hpp.i and b/hotspot/.hg/store/data/src/os__cpu/linux__zero/vm/globals__linux__zero.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/solaris__sparc/vm/vm__version__solaris__sparc.cpp.i b/hotspot/.hg/store/data/src/os__cpu/solaris__sparc/vm/vm__version__solaris__sparc.cpp.i
index 3c56e9d..b579dc3 100644
Binary files a/hotspot/.hg/store/data/src/os__cpu/solaris__sparc/vm/vm__version__solaris__sparc.cpp.i and b/hotspot/.hg/store/data/src/os__cpu/solaris__sparc/vm/vm__version__solaris__sparc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/solaris__x86/vm/solaris__x86__32.ad.i b/hotspot/.hg/store/data/src/os__cpu/solaris__x86/vm/solaris__x86__32.ad.i
index eb8a8b4..c772f0c 100644
Binary files a/hotspot/.hg/store/data/src/os__cpu/solaris__x86/vm/solaris__x86__32.ad.i and b/hotspot/.hg/store/data/src/os__cpu/solaris__x86/vm/solaris__x86__32.ad.i differ
diff --git a/hotspot/.hg/store/data/src/os__cpu/solaris__x86/vm/solaris__x86__64.ad.i b/hotspot/.hg/store/data/src/os__cpu/solaris__x86/vm/solaris__x86__64.ad.i
index c1bdd15..49a2bb6 100644
Binary files a/hotspot/.hg/store/data/src/os__cpu/solaris__x86/vm/solaris__x86__64.ad.i and b/hotspot/.hg/store/data/src/os__cpu/solaris__x86/vm/solaris__x86__64.ad.i differ
diff --git a/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_call_site.java.i b/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_call_site.java.i
index 86085f4..e69be54 100644
Binary files a/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_call_site.java.i and b/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_call_site.java.i differ
diff --git a/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_log_compilation.java.i b/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_log_compilation.java.i
index e234acc..a6630b8 100644
Binary files a/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_log_compilation.java.i and b/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_log_compilation.java.i differ
diff --git a/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_log_parser.java.i b/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_log_parser.java.i
index b5fca99..d14183f 100644
Binary files a/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_log_parser.java.i and b/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_log_parser.java.i differ
diff --git a/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_phase.java.i b/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_phase.java.i
index 9e4be37..954fa33 100644
Binary files a/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_phase.java.i and b/hotspot/.hg/store/data/src/share/tools/_log_compilation/src/com/sun/hotspot/tools/compiler/_phase.java.i differ
diff --git a/hotspot/.hg/store/data/src/share/tools/_project_creator/_win_gamma_platform_v_c10.java.i b/hotspot/.hg/store/data/src/share/tools/_project_creator/_win_gamma_platform_v_c10.java.i
index ddbfc21..c523671 100644
Binary files a/hotspot/.hg/store/data/src/share/tools/_project_creator/_win_gamma_platform_v_c10.java.i and b/hotspot/.hg/store/data/src/share/tools/_project_creator/_win_gamma_platform_v_c10.java.i differ
diff --git a/hotspot/.hg/store/data/src/share/tools/hsdis/_r_e_a_d_m_e.i b/hotspot/.hg/store/data/src/share/tools/hsdis/_r_e_a_d_m_e.i
index 8095dff..85adb6f 100644
Binary files a/hotspot/.hg/store/data/src/share/tools/hsdis/_r_e_a_d_m_e.i and b/hotspot/.hg/store/data/src/share/tools/hsdis/_r_e_a_d_m_e.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/adlc/adlc.hpp.i b/hotspot/.hg/store/data/src/share/vm/adlc/adlc.hpp.i
index e0a27cb..e781790 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/adlc/adlc.hpp.i and b/hotspot/.hg/store/data/src/share/vm/adlc/adlc.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/adlc/adlparse.cpp.i b/hotspot/.hg/store/data/src/share/vm/adlc/adlparse.cpp.i
index 41eb699..0027eb7 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/adlc/adlparse.cpp.i and b/hotspot/.hg/store/data/src/share/vm/adlc/adlparse.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/adlc/arch_desc.cpp.i b/hotspot/.hg/store/data/src/share/vm/adlc/arch_desc.cpp.i
index c697a5f..0517fc9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/adlc/arch_desc.cpp.i and b/hotspot/.hg/store/data/src/share/vm/adlc/arch_desc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/adlc/formssel.cpp.i b/hotspot/.hg/store/data/src/share/vm/adlc/formssel.cpp.i
index e3862ae..f9797d1 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/adlc/formssel.cpp.i and b/hotspot/.hg/store/data/src/share/vm/adlc/formssel.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/adlc/formssel.hpp.i b/hotspot/.hg/store/data/src/share/vm/adlc/formssel.hpp.i
index 79b5507..7ec439e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/adlc/formssel.hpp.i and b/hotspot/.hg/store/data/src/share/vm/adlc/formssel.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/adlc/output__c.cpp.i b/hotspot/.hg/store/data/src/share/vm/adlc/output__c.cpp.i
index 173df95..fc6c729 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/adlc/output__c.cpp.i and b/hotspot/.hg/store/data/src/share/vm/adlc/output__c.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/adlc/output__h.cpp.i b/hotspot/.hg/store/data/src/share/vm/adlc/output__h.cpp.i
index df2bea7..2a2332d 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/adlc/output__h.cpp.i and b/hotspot/.hg/store/data/src/share/vm/adlc/output__h.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___compilation.cpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___compilation.cpp.i
index 334b590..c46096a 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___compilation.cpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___compilation.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___graph_builder.cpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___graph_builder.cpp.i
index 38fcc1b..22ce91e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___graph_builder.cpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___graph_builder.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___graph_builder.hpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___graph_builder.hpp.i
index 590c015..11afce2 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___graph_builder.hpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___graph_builder.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___instruction.cpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___instruction.cpp.i
index 42d4d9f..2f019ce 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___instruction.cpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___instruction.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___instruction.hpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___instruction.hpp.i
index d44cc56..9c36b86 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___instruction.hpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___instruction.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r.cpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r.cpp.i
index 07c215a..d0d4c17 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r.cpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r.hpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r.hpp.i
index f7fe3f2..bda01ce 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r.hpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r_assembler.cpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r_assembler.cpp.i
index 7f58502..6c0a6e1 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r_assembler.cpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r_assembler.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r_assembler.hpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r_assembler.hpp.i
index 3aea0b2..9e2879b 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r_assembler.hpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r_assembler.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r_generator.cpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r_generator.cpp.i
index c73e81f..95d8318 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r_generator.cpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___l_i_r_generator.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___linear_scan.cpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___linear_scan.cpp.i
index 8d59eef..9d529b3 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___linear_scan.cpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___linear_scan.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___linear_scan.hpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___linear_scan.hpp.i
index 726ad32..a9cb18d 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___linear_scan.hpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___linear_scan.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___runtime1.cpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___runtime1.cpp.i
index 330ee15..e97f716 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___runtime1.cpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___runtime1.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1___runtime1.hpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1___runtime1.hpp.i
index 5987cb5..522bed3 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1___runtime1.hpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1___runtime1.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/c1/c1__globals.hpp.i b/hotspot/.hg/store/data/src/share/vm/c1/c1__globals.hpp.i
index f88160b..cc77fff 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/c1/c1__globals.hpp.i and b/hotspot/.hg/store/data/src/share/vm/c1/c1__globals.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_array_klass.hpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_array_klass.hpp.i
index d2ea393..3a94b20 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_array_klass.hpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_array_klass.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_call_profile.hpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_call_profile.hpp.i
index bf16f9f..d366d00 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_call_profile.hpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_call_profile.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_call_site.cpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_call_site.cpp.i
index 7fe0ef2..1c38641 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_call_site.cpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_call_site.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_call_site.hpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_call_site.hpp.i
index dd706ef..cd06858 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_call_site.hpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_call_site.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_class_list.hpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_class_list.hpp.i
index a851545..b0d1e7e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_class_list.hpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_class_list.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_constant.hpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_constant.hpp.i
index 0345c72..469657b 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_constant.hpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_constant.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_env.cpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_env.cpp.i
index 3b8171a..e0dda77 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_env.cpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_env.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_env.hpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_env.hpp.i
index 8668563..1486695 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_env.hpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_env.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_field.hpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_field.hpp.i
index e482985..1001170 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_field.hpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_field.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_instance_klass.cpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_instance_klass.cpp.i
index 07455c3..290b1d4 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_instance_klass.cpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_instance_klass.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_method.cpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_method.cpp.i
index 1d20dd6..fac630c 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_method.cpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_method.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_method.hpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_method.hpp.i
index a4f1e96..bf85faa 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_method.hpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_method.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_method_handle.cpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_method_handle.cpp.i
index 306dc4f..d501788 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_method_handle.cpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_method_handle.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_method_handle.hpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_method_handle.hpp.i
index 44bcacc..54775a4 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_method_handle.hpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_method_handle.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_object.cpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_object.cpp.i
index 38b1f37..80e11bb 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_object.cpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_object.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_object_factory.hpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_object_factory.hpp.i
index cc21b90..d6e8f5c 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_object_factory.hpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_object_factory.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/ci/ci_streams.hpp.i b/hotspot/.hg/store/data/src/share/vm/ci/ci_streams.hpp.i
index c2cd888..de78055 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/ci/ci_streams.hpp.i and b/hotspot/.hg/store/data/src/share/vm/ci/ci_streams.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/classfile/class_file_parser.cpp.i b/hotspot/.hg/store/data/src/share/vm/classfile/class_file_parser.cpp.i
index 931a91d..5e7d052 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/classfile/class_file_parser.cpp.i and b/hotspot/.hg/store/data/src/share/vm/classfile/class_file_parser.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/classfile/class_file_parser.hpp.i b/hotspot/.hg/store/data/src/share/vm/classfile/class_file_parser.hpp.i
index 507dfe6..014b7bd 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/classfile/class_file_parser.hpp.i and b/hotspot/.hg/store/data/src/share/vm/classfile/class_file_parser.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/classfile/class_loader.cpp.i b/hotspot/.hg/store/data/src/share/vm/classfile/class_loader.cpp.i
index 6da01c7..4d4987e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/classfile/class_loader.cpp.i and b/hotspot/.hg/store/data/src/share/vm/classfile/class_loader.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/classfile/java_classes.cpp.i b/hotspot/.hg/store/data/src/share/vm/classfile/java_classes.cpp.i
index 3a15006..516559a 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/classfile/java_classes.cpp.i and b/hotspot/.hg/store/data/src/share/vm/classfile/java_classes.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/classfile/java_classes.hpp.i b/hotspot/.hg/store/data/src/share/vm/classfile/java_classes.hpp.i
index c18e83b..9ad2433 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/classfile/java_classes.hpp.i and b/hotspot/.hg/store/data/src/share/vm/classfile/java_classes.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/classfile/system_dictionary.cpp.i b/hotspot/.hg/store/data/src/share/vm/classfile/system_dictionary.cpp.i
index e97bbd9..4a57db9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/classfile/system_dictionary.cpp.i and b/hotspot/.hg/store/data/src/share/vm/classfile/system_dictionary.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/classfile/system_dictionary.hpp.i b/hotspot/.hg/store/data/src/share/vm/classfile/system_dictionary.hpp.i
index eb97acd..deac44c 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/classfile/system_dictionary.hpp.i and b/hotspot/.hg/store/data/src/share/vm/classfile/system_dictionary.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/classfile/vm_symbols.hpp.i b/hotspot/.hg/store/data/src/share/vm/classfile/vm_symbols.hpp.i
index a1a45e0..b9c8693 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/classfile/vm_symbols.hpp.i and b/hotspot/.hg/store/data/src/share/vm/classfile/vm_symbols.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/code/dependencies.cpp.i b/hotspot/.hg/store/data/src/share/vm/code/dependencies.cpp.i
index bd45b84..bc096ec 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/code/dependencies.cpp.i and b/hotspot/.hg/store/data/src/share/vm/code/dependencies.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/code/dependencies.hpp.i b/hotspot/.hg/store/data/src/share/vm/code/dependencies.hpp.i
index aca7178..da77e18 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/code/dependencies.hpp.i and b/hotspot/.hg/store/data/src/share/vm/code/dependencies.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/code/nmethod.cpp.i b/hotspot/.hg/store/data/src/share/vm/code/nmethod.cpp.i
index 4cf1ca1..a9e3e07 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/code/nmethod.cpp.i and b/hotspot/.hg/store/data/src/share/vm/code/nmethod.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/code/nmethod.hpp.i b/hotspot/.hg/store/data/src/share/vm/code/nmethod.hpp.i
index 204cc0c..f60fb30 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/code/nmethod.hpp.i and b/hotspot/.hg/store/data/src/share/vm/code/nmethod.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/code/pc_desc.cpp.i b/hotspot/.hg/store/data/src/share/vm/code/pc_desc.cpp.i
index a80fc45..3bdaae8 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/code/pc_desc.cpp.i and b/hotspot/.hg/store/data/src/share/vm/code/pc_desc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/code/pc_desc.hpp.i b/hotspot/.hg/store/data/src/share/vm/code/pc_desc.hpp.i
index 00f1a9e..7758367 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/code/pc_desc.hpp.i and b/hotspot/.hg/store/data/src/share/vm/code/pc_desc.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/code/stubs.hpp.i b/hotspot/.hg/store/data/src/share/vm/code/stubs.hpp.i
index 812f836..0235dea 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/code/stubs.hpp.i and b/hotspot/.hg/store/data/src/share/vm/code/stubs.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/compiler/compile_broker.hpp.i b/hotspot/.hg/store/data/src/share/vm/compiler/compile_broker.hpp.i
index 22eabf8..21cb5f0 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/compiler/compile_broker.hpp.i and b/hotspot/.hg/store/data/src/share/vm/compiler/compile_broker.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/compiler/disassembler.hpp.i b/hotspot/.hg/store/data/src/share/vm/compiler/disassembler.hpp.i
index 5208b8a..2f34507 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/compiler/disassembler.hpp.i and b/hotspot/.hg/store/data/src/share/vm/compiler/disassembler.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/cms_adaptive_size_policy.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/cms_adaptive_size_policy.cpp.i
index 5cf0479..acc7c8a 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/cms_adaptive_size_policy.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/cms_adaptive_size_policy.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/cms_collector_policy.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/cms_collector_policy.cpp.i
index d2a5460..699a248 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/cms_collector_policy.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/cms_collector_policy.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/concurrent_mark_sweep_generation.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/concurrent_mark_sweep_generation.cpp.i
index 529540d..a9d93f5 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/concurrent_mark_sweep_generation.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/concurrent_mark_sweep_generation.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/concurrent_mark_sweep_generation.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/concurrent_mark_sweep_generation.hpp.i
index 2abc39f..bd2c0b7 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/concurrent_mark_sweep_generation.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/concurrent_mark_sweep_generation.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/concurrent_mark_sweep_thread.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/concurrent_mark_sweep_thread.hpp.i
index f0ab89c..5e32360 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/concurrent_mark_sweep_thread.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/concurrent_mark_sweep_thread.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/free_block_dictionary.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/free_block_dictionary.cpp.i
index 47a245f..052f7f0 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/free_block_dictionary.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/concurrent_mark_sweep/free_block_dictionary.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/collection_set_chooser.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/collection_set_chooser.cpp.i
index 3965e12..2648df5 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/collection_set_chooser.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/collection_set_chooser.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_g1_refine_thread.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_g1_refine_thread.cpp.i
index 0c00971..a41c7f0 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_g1_refine_thread.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_g1_refine_thread.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_mark.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_mark.cpp.i
index 754fc83..116794a 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_mark.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_mark.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_mark.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_mark.hpp.i
index b625f35..40b79e9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_mark.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_mark.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_mark_thread.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_mark_thread.cpp.i
index 5410f3e..a85b52f 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_mark_thread.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/concurrent_mark_thread.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/dirty_card_queue.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/dirty_card_queue.cpp.i
index d895cba..969c625 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/dirty_card_queue.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/dirty_card_queue.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1__globals.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1__globals.hpp.i
index ac66303..d2fce40 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1__globals.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1__globals.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1__specialized__oop__closures.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1__specialized__oop__closures.hpp.i
index bdba6f5..9805537 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1__specialized__oop__closures.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1__specialized__oop__closures.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_alloc_region.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_alloc_region.cpp.i
index 7809871..3bdfaa0 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_alloc_region.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_alloc_region.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_alloc_region.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_alloc_region.hpp.i
index 295ccde..f98fefe 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_alloc_region.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_alloc_region.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.cpp.d b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.cpp.d
new file mode 100644
index 0000000..51ca870
Binary files /dev/null and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.cpp.d differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.cpp.i
index 9e2556b..2922ec9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.hpp.i
index a28e1bc..6d4c061 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.inline.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.inline.hpp.i
index 18ae64c..aeb0c92 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.inline.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collected_heap.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collector_policy.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collector_policy.cpp.i
index 5a39c6e..565a007 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collector_policy.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collector_policy.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collector_policy.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collector_policy.hpp.i
index 2393609..ed9b48f 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collector_policy.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_collector_policy.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_ergo_verbose.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_ergo_verbose.cpp.i
new file mode 100644
index 0000000..2ab7f8a
Binary files /dev/null and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_ergo_verbose.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_ergo_verbose.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_ergo_verbose.hpp.i
new file mode 100644
index 0000000..992d0d6
Binary files /dev/null and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_ergo_verbose.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_m_m_u_tracker.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_m_m_u_tracker.cpp.i
index f22e841..4f67ef9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_m_m_u_tracker.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_m_m_u_tracker.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_oop_closures.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_oop_closures.hpp.i
index f410075..03a2e3a 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_oop_closures.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_oop_closures.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_s_a_t_b_card_table_mod_ref_b_s.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_s_a_t_b_card_table_mod_ref_b_s.cpp.i
index 8216429..4367e03 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_s_a_t_b_card_table_mod_ref_b_s.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/g1_s_a_t_b_card_table_mod_ref_b_s.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/heap_region.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/heap_region.cpp.i
index 6ff6d46..fe27788 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/heap_region.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/heap_region.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/heap_region.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/heap_region.hpp.i
index a40f8e8..815b592 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/heap_region.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/heap_region.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/heap_region_rem_set.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/heap_region_rem_set.cpp.i
index 18fffb4..9079486 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/heap_region_rem_set.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/heap_region_rem_set.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/ptr_queue.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/ptr_queue.cpp.i
index ebb8aea..e238327 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/ptr_queue.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/ptr_queue.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/vm__operations__g1.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/vm__operations__g1.cpp.i
index a477707..6a7b0a4 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/vm__operations__g1.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/g1/vm__operations__g1.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/par_new/par_card_table_mod_ref_b_s.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/par_new/par_card_table_mod_ref_b_s.cpp.i
index 865e03f..9db6d7f 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/par_new/par_card_table_mod_ref_b_s.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/par_new/par_card_table_mod_ref_b_s.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/par_mark_bit_map.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/par_mark_bit_map.cpp.i
index 53f4a46..de15499 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/par_mark_bit_map.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/par_mark_bit_map.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/parallel_scavenge_heap.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/parallel_scavenge_heap.cpp.i
index c177d04..649117e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/parallel_scavenge_heap.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/parallel_scavenge_heap.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/pc_tasks.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/pc_tasks.cpp.i
index 290ad05..a6e8af2 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/pc_tasks.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/pc_tasks.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/pc_tasks.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/pc_tasks.hpp.i
index c0bb16b..ae48b88 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/pc_tasks.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/pc_tasks.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_mark_sweep.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_mark_sweep.cpp.i
index 7bc0d00..d2e2ee4 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_mark_sweep.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_mark_sweep.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_parallel_compact.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_parallel_compact.cpp.i
index 34dc220..1c502b1 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_parallel_compact.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_parallel_compact.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_tasks.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_tasks.cpp.i
index b89afe4..4e2aa0c 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_tasks.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_tasks.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_virtualspace.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_virtualspace.cpp.i
index 4e3dfbd..06c93ad 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_virtualspace.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/parallel_scavenge/ps_virtualspace.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__implementation/shared/mutable_n_u_m_a_space.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__implementation/shared/mutable_n_u_m_a_space.cpp.i
index 189821e..b5fcc36 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__implementation/shared/mutable_n_u_m_a_space.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__implementation/shared/mutable_n_u_m_a_space.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__interface/collected_heap.cpp.i b/hotspot/.hg/store/data/src/share/vm/gc__interface/collected_heap.cpp.i
index f4c8e38..b083aab 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__interface/collected_heap.cpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__interface/collected_heap.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__interface/collected_heap.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__interface/collected_heap.hpp.i
index f6c648e..6d5d983 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__interface/collected_heap.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__interface/collected_heap.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/gc__interface/collected_heap.inline.hpp.i b/hotspot/.hg/store/data/src/share/vm/gc__interface/collected_heap.inline.hpp.i
index d2c5d49..ff2b645 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/gc__interface/collected_heap.inline.hpp.i and b/hotspot/.hg/store/data/src/share/vm/gc__interface/collected_heap.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/interpreter/abstract_interpreter.hpp.i b/hotspot/.hg/store/data/src/share/vm/interpreter/abstract_interpreter.hpp.i
index 7bff8d9..69eff1e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/interpreter/abstract_interpreter.hpp.i and b/hotspot/.hg/store/data/src/share/vm/interpreter/abstract_interpreter.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/interpreter/bytecode_interpreter.cpp.i b/hotspot/.hg/store/data/src/share/vm/interpreter/bytecode_interpreter.cpp.i
index 668c82a..eda5327 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/interpreter/bytecode_interpreter.cpp.i and b/hotspot/.hg/store/data/src/share/vm/interpreter/bytecode_interpreter.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/interpreter/bytecode_tracer.cpp.i b/hotspot/.hg/store/data/src/share/vm/interpreter/bytecode_tracer.cpp.i
index cc1ad7c..e2e6b13 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/interpreter/bytecode_tracer.cpp.i and b/hotspot/.hg/store/data/src/share/vm/interpreter/bytecode_tracer.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/interpreter/bytecodes.hpp.i b/hotspot/.hg/store/data/src/share/vm/interpreter/bytecodes.hpp.i
index eecd6b0..3235c0b 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/interpreter/bytecodes.hpp.i and b/hotspot/.hg/store/data/src/share/vm/interpreter/bytecodes.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/interpreter/interpreter_runtime.cpp.i b/hotspot/.hg/store/data/src/share/vm/interpreter/interpreter_runtime.cpp.i
index 13dc01e..6c9a191 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/interpreter/interpreter_runtime.cpp.i and b/hotspot/.hg/store/data/src/share/vm/interpreter/interpreter_runtime.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/interpreter/interpreter_runtime.hpp.i b/hotspot/.hg/store/data/src/share/vm/interpreter/interpreter_runtime.hpp.i
index 9c8ba15..b3ad63e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/interpreter/interpreter_runtime.hpp.i and b/hotspot/.hg/store/data/src/share/vm/interpreter/interpreter_runtime.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/interpreter/link_resolver.cpp.i b/hotspot/.hg/store/data/src/share/vm/interpreter/link_resolver.cpp.i
index a80f3fb..d85a92f 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/interpreter/link_resolver.cpp.i and b/hotspot/.hg/store/data/src/share/vm/interpreter/link_resolver.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/interpreter/template_table.hpp.i b/hotspot/.hg/store/data/src/share/vm/interpreter/template_table.hpp.i
index 4f961bf..7e7be36 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/interpreter/template_table.hpp.i and b/hotspot/.hg/store/data/src/share/vm/interpreter/template_table.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/allocation.cpp.i b/hotspot/.hg/store/data/src/share/vm/memory/allocation.cpp.i
index 65a973f..61d287f 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/allocation.cpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/allocation.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/allocation.hpp.i b/hotspot/.hg/store/data/src/share/vm/memory/allocation.hpp.i
index 5fea745..c91ef50 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/allocation.hpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/allocation.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/collector_policy.cpp.i b/hotspot/.hg/store/data/src/share/vm/memory/collector_policy.cpp.i
index 9ae7574..7d38cd5 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/collector_policy.cpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/collector_policy.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/def_new_generation.cpp.i b/hotspot/.hg/store/data/src/share/vm/memory/def_new_generation.cpp.i
index 6164eb6..8637d35 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/def_new_generation.cpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/def_new_generation.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/gc_locker.hpp.i b/hotspot/.hg/store/data/src/share/vm/memory/gc_locker.hpp.i
index f97e89f..19653c9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/gc_locker.hpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/gc_locker.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/gen_collected_heap.cpp.i b/hotspot/.hg/store/data/src/share/vm/memory/gen_collected_heap.cpp.i
index b398f76..8cfc67b 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/gen_collected_heap.cpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/gen_collected_heap.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/gen_mark_sweep.cpp.i b/hotspot/.hg/store/data/src/share/vm/memory/gen_mark_sweep.cpp.i
index 94bda9c..57f6624 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/gen_mark_sweep.cpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/gen_mark_sweep.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/oop_factory.cpp.i b/hotspot/.hg/store/data/src/share/vm/memory/oop_factory.cpp.i
index 35f969a..84088c8 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/oop_factory.cpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/oop_factory.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/oop_factory.hpp.i b/hotspot/.hg/store/data/src/share/vm/memory/oop_factory.hpp.i
index 37a4b47..fccfdef 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/oop_factory.hpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/oop_factory.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/reference_processor.cpp.i b/hotspot/.hg/store/data/src/share/vm/memory/reference_processor.cpp.i
index 54498a3..0a0ef2e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/reference_processor.cpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/reference_processor.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/reference_processor.hpp.i b/hotspot/.hg/store/data/src/share/vm/memory/reference_processor.hpp.i
index a9e73a4..3d60518 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/reference_processor.hpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/reference_processor.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/resource_area.cpp.i b/hotspot/.hg/store/data/src/share/vm/memory/resource_area.cpp.i
index 7069dff..ce4529e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/resource_area.cpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/resource_area.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/resource_area.hpp.i b/hotspot/.hg/store/data/src/share/vm/memory/resource_area.hpp.i
index 165f332..bf14e95 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/resource_area.hpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/resource_area.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/shared_heap.cpp.i b/hotspot/.hg/store/data/src/share/vm/memory/shared_heap.cpp.i
index cc88597..77e0477 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/shared_heap.cpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/shared_heap.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/space.hpp.i b/hotspot/.hg/store/data/src/share/vm/memory/space.hpp.i
index 4410934..879651e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/space.hpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/space.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/thread_local_alloc_buffer.cpp.i b/hotspot/.hg/store/data/src/share/vm/memory/thread_local_alloc_buffer.cpp.i
index 994de92..337d687 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/thread_local_alloc_buffer.cpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/thread_local_alloc_buffer.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/thread_local_alloc_buffer.hpp.i b/hotspot/.hg/store/data/src/share/vm/memory/thread_local_alloc_buffer.hpp.i
index ad3d2a9..16875e0 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/thread_local_alloc_buffer.hpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/thread_local_alloc_buffer.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/universe.cpp.i b/hotspot/.hg/store/data/src/share/vm/memory/universe.cpp.i
index 78b057c..4914188 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/universe.cpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/universe.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/memory/universe.hpp.i b/hotspot/.hg/store/data/src/share/vm/memory/universe.hpp.i
index 5492da1..8d87347 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/memory/universe.hpp.i and b/hotspot/.hg/store/data/src/share/vm/memory/universe.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/const_method_klass.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/const_method_klass.cpp.i
index 084fc0e..33dd1ec 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/const_method_klass.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/const_method_klass.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/constant_pool_klass.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/constant_pool_klass.cpp.i
index 3b76647..3db8c6d 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/constant_pool_klass.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/constant_pool_klass.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/constant_pool_oop.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/constant_pool_oop.cpp.i
index 1e71a69..2375e21 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/constant_pool_oop.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/constant_pool_oop.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/cp_cache_klass.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/cp_cache_klass.cpp.i
index 6039a97..72152dd 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/cp_cache_klass.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/cp_cache_klass.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/cp_cache_oop.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/cp_cache_oop.cpp.i
index 27e76a0..c866db2 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/cp_cache_oop.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/cp_cache_oop.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/field_info.hpp.i b/hotspot/.hg/store/data/src/share/vm/oops/field_info.hpp.i
new file mode 100644
index 0000000..8966a51
Binary files /dev/null and b/hotspot/.hg/store/data/src/share/vm/oops/field_info.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/field_streams.hpp.i b/hotspot/.hg/store/data/src/share/vm/oops/field_streams.hpp.i
new file mode 100644
index 0000000..48eb3b5
Binary files /dev/null and b/hotspot/.hg/store/data/src/share/vm/oops/field_streams.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/generate_oop_map.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/generate_oop_map.cpp.i
index c77ad9b..62d7e1a 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/generate_oop_map.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/generate_oop_map.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/instance_klass.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/instance_klass.cpp.i
index a6e72b3..6b19659 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/instance_klass.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/instance_klass.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/instance_klass.hpp.i b/hotspot/.hg/store/data/src/share/vm/oops/instance_klass.hpp.i
index 3367b01..dc9c303 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/instance_klass.hpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/instance_klass.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/instance_klass_klass.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/instance_klass_klass.cpp.i
index 5e74d2c..a902061 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/instance_klass_klass.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/instance_klass_klass.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/instance_ref_klass.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/instance_ref_klass.cpp.i
index f9ff790..a3f240c 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/instance_ref_klass.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/instance_ref_klass.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/klass_oop.hpp.i b/hotspot/.hg/store/data/src/share/vm/oops/klass_oop.hpp.i
index 1d32bd6..6c49584 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/klass_oop.hpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/klass_oop.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/mark_oop.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/mark_oop.cpp.i
index f7da6c8..3124a54 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/mark_oop.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/mark_oop.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/method_data_oop.hpp.i b/hotspot/.hg/store/data/src/share/vm/oops/method_data_oop.hpp.i
index c26affb..e5b7b39 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/method_data_oop.hpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/method_data_oop.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/method_oop.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/method_oop.cpp.i
index 291a90d..50965dd 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/method_oop.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/method_oop.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/oop.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/oop.cpp.i
index d043f5a..ad60742 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/oop.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/oop.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/oop.hpp.i b/hotspot/.hg/store/data/src/share/vm/oops/oop.hpp.i
index 2c57cac..955e331 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/oop.hpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/oop.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/oop.inline.hpp.i b/hotspot/.hg/store/data/src/share/vm/oops/oop.inline.hpp.i
index 1fc5ff6..45cbd2d 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/oop.inline.hpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/oop.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/oops_hierarchy.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/oops_hierarchy.cpp.i
index ebfaf83..87fbeb5 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/oops_hierarchy.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/oops_hierarchy.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/type_array_klass.cpp.i b/hotspot/.hg/store/data/src/share/vm/oops/type_array_klass.cpp.i
index 56e6907..c2b1ffb 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/type_array_klass.cpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/type_array_klass.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/type_array_klass.hpp.i b/hotspot/.hg/store/data/src/share/vm/oops/type_array_klass.hpp.i
index a31b3ee..90e9ec4 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/type_array_klass.hpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/type_array_klass.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/oops/type_array_oop.hpp.i b/hotspot/.hg/store/data/src/share/vm/oops/type_array_oop.hpp.i
index 76fcb2e..0456c7a 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/oops/type_array_oop.hpp.i and b/hotspot/.hg/store/data/src/share/vm/oops/type_array_oop.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/block.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/block.cpp.i
index 3c52438..53ccc59 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/block.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/block.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/block.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/block.hpp.i
index 348cdd6..2242874 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/block.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/block.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/bytecode_info.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/bytecode_info.cpp.i
index 5e66a36..dbec344 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/bytecode_info.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/bytecode_info.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/c2__globals.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/c2__globals.hpp.i
index 3dc45b6..ab9daa6 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/c2__globals.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/c2__globals.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/call_generator.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/call_generator.cpp.i
index 4547d37..dd72bc8 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/call_generator.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/call_generator.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/call_generator.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/call_generator.hpp.i
index e77a83b..ce06af4 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/call_generator.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/call_generator.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/callnode.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/callnode.hpp.i
index 41d90ed..c55abc8 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/callnode.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/callnode.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/cfgnode.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/cfgnode.cpp.i
index 113eb40..7b59839 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/cfgnode.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/cfgnode.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/cfgnode.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/cfgnode.hpp.i
index a2d3182..115212e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/cfgnode.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/cfgnode.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/chaitin.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/chaitin.hpp.i
index df6d56d..0e57b21 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/chaitin.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/chaitin.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/classes.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/classes.hpp.i
index 6ebe8eb..a81abc9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/classes.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/classes.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/coalesce.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/coalesce.cpp.i
index e2f1760..ba3eb6e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/coalesce.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/coalesce.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/compile.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/compile.cpp.i
index d94ceab..fb8566c 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/compile.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/compile.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/compile.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/compile.hpp.i
index 9463c7c..e39d9fb 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/compile.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/compile.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/connode.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/connode.hpp.i
index 3a1d83b..608e2c2 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/connode.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/connode.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/do_call.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/do_call.cpp.i
index 6c58d75..3fbb13d 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/do_call.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/do_call.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/gcm.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/gcm.cpp.i
index f317062..da58013 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/gcm.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/gcm.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/graph_kit.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/graph_kit.cpp.i
index e2f18db..e3e5992 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/graph_kit.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/graph_kit.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/ideal_graph_printer.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/ideal_graph_printer.cpp.i
index c150987..8f26ae4 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/ideal_graph_printer.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/ideal_graph_printer.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/ideal_graph_printer.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/ideal_graph_printer.hpp.i
index 50617e7..ee6d0a8 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/ideal_graph_printer.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/ideal_graph_printer.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/ifnode.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/ifnode.cpp.i
index 30ef8e6..6ecf688 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/ifnode.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/ifnode.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/lcm.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/lcm.cpp.i
index 02956a6..0686689 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/lcm.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/lcm.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/library__call.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/library__call.cpp.i
index 52c72f9..7ba3afa 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/library__call.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/library__call.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/loop_predicate.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/loop_predicate.cpp.i
index aa2facb..25f88f9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/loop_predicate.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/loop_predicate.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/loop_transform.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/loop_transform.cpp.i
index 1b998b6..2df3a21 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/loop_transform.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/loop_transform.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/loop_unswitch.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/loop_unswitch.cpp.i
index 7e4f0af..392813b 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/loop_unswitch.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/loop_unswitch.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/loopnode.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/loopnode.cpp.i
index 38268bb..4508e35 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/loopnode.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/loopnode.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/loopnode.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/loopnode.hpp.i
index 50108f0..0c591eb 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/loopnode.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/loopnode.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/loopopts.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/loopopts.cpp.i
index 0afb9bb..dc7c1d4 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/loopopts.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/loopopts.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/machnode.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/machnode.cpp.i
index 4607df8..885ead8 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/machnode.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/machnode.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/machnode.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/machnode.hpp.i
index e5a0234..065a134 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/machnode.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/machnode.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/macro.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/macro.cpp.i
index ee42bce..f3f3014 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/macro.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/macro.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/matcher.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/matcher.cpp.i
index c578440..bd83980 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/matcher.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/matcher.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/matcher.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/matcher.hpp.i
index 6ba9348..43b66d9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/matcher.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/matcher.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/memnode.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/memnode.cpp.i
index 005f3a4..69f319f 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/memnode.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/memnode.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/memnode.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/memnode.hpp.i
index 38cae30..c32a9ea 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/memnode.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/memnode.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/mulnode.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/mulnode.cpp.i
index 16ea46e..aca10a9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/mulnode.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/mulnode.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/mulnode.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/mulnode.hpp.i
index cf08d6f..a48d48e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/mulnode.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/mulnode.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/node.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/node.hpp.i
index 5890426..80febef 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/node.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/node.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/optoreg.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/optoreg.hpp.i
index 5246120..32b49b5 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/optoreg.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/optoreg.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/output.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/output.cpp.i
index 5af1ac5..8732968 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/output.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/output.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/parse.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/parse.hpp.i
index 56de37c..347f8c2 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/parse.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/parse.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/parse2.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/parse2.cpp.i
index 644f7ce..7450e24 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/parse2.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/parse2.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/parse3.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/parse3.cpp.i
index 1ddcc21..d460851 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/parse3.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/parse3.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/phase_x.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/phase_x.cpp.i
index 3322ec5..9086a31 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/phase_x.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/phase_x.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/phase_x.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/phase_x.hpp.i
index bca0138..84b745d 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/phase_x.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/phase_x.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/postaloc.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/postaloc.cpp.i
index 90c5bd7..1bb931b 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/postaloc.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/postaloc.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/reg__split.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/reg__split.cpp.i
index 2fd9105..055856b 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/reg__split.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/reg__split.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/regalloc.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/regalloc.hpp.i
index 01750a6..36d4954 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/regalloc.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/regalloc.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/runtime.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/runtime.cpp.i
index ba1dac1..34708c2 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/runtime.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/runtime.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/runtime.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/runtime.hpp.i
index 9e620a3..f0c1f9a 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/runtime.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/runtime.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/split__if.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/split__if.cpp.i
index e6fce15..a289f85 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/split__if.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/split__if.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/superword.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/superword.cpp.i
index 9d2a844..c2d3dc2 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/superword.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/superword.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/superword.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/superword.hpp.i
index a2b4b1e..a36e6be 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/superword.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/superword.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/type.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/type.hpp.i
index 353f752..5db31fb 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/type.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/type.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/vectornode.cpp.i b/hotspot/.hg/store/data/src/share/vm/opto/vectornode.cpp.i
index 5a4a7ab..f0d2095 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/vectornode.cpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/vectornode.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/opto/vectornode.hpp.i b/hotspot/.hg/store/data/src/share/vm/opto/vectornode.hpp.i
index ec92951..6d91c93 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/opto/vectornode.hpp.i and b/hotspot/.hg/store/data/src/share/vm/opto/vectornode.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/precompiled.hpp.i b/hotspot/.hg/store/data/src/share/vm/precompiled.hpp.i
index 41883e9..4b1bd3f 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/precompiled.hpp.i and b/hotspot/.hg/store/data/src/share/vm/precompiled.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/forte.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/forte.cpp.i
index 042d406..aa61131 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/forte.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/forte.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/jni.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/jni.cpp.i
index a136d46..5cb349b 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/jni.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/jni.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/jvm.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/jvm.cpp.i
index c60da6e..7e63d45 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/jvm.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/jvm.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/jvm.h.i b/hotspot/.hg/store/data/src/share/vm/prims/jvm.h.i
index 094dec3..e12fdbf 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/jvm.h.i and b/hotspot/.hg/store/data/src/share/vm/prims/jvm.h.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_class_file_reconstituter.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_class_file_reconstituter.cpp.i
index 98a53bd..ab13e90 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_class_file_reconstituter.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_class_file_reconstituter.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_env.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_env.cpp.i
index c7da2af..1316ee1 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_env.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_env.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_env_base.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_env_base.cpp.i
index 74c0a84..b279671 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_env_base.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_env_base.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_env_base.hpp.i b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_env_base.hpp.i
index 51e8884..33818c4 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_env_base.hpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_env_base.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_export.hpp.i b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_export.hpp.i
index 52c8a35..0249c3d 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_export.hpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_export.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_impl.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_impl.cpp.i
index 0e5ad1c..7768ee5 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_impl.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_impl.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_redefine_classes.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_redefine_classes.cpp.i
index aee46a0..66279f5 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_redefine_classes.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_redefine_classes.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_tag_map.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_tag_map.cpp.i
index fef788c..da4f519 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/jvmti_tag_map.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/jvmti_tag_map.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/method_handle_walk.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/method_handle_walk.cpp.i
index 7af522f..b3df830 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/method_handle_walk.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/method_handle_walk.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/method_handle_walk.hpp.i b/hotspot/.hg/store/data/src/share/vm/prims/method_handle_walk.hpp.i
index 0e54920..5f52a48 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/method_handle_walk.hpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/method_handle_walk.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/method_handles.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/method_handles.cpp.i
index 956a9e3..bec94d4 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/method_handles.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/method_handles.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/method_handles.hpp.i b/hotspot/.hg/store/data/src/share/vm/prims/method_handles.hpp.i
index baf7244..b51551a 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/method_handles.hpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/method_handles.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/native_lookup.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/native_lookup.cpp.i
index 8d4c24b..7046473 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/native_lookup.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/native_lookup.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/prims/unsafe.cpp.i b/hotspot/.hg/store/data/src/share/vm/prims/unsafe.cpp.i
index 2befb54..c187a12 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/prims/unsafe.cpp.i and b/hotspot/.hg/store/data/src/share/vm/prims/unsafe.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/advanced_threshold_policy.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/advanced_threshold_policy.cpp.i
index d24ceee..5968831 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/advanced_threshold_policy.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/advanced_threshold_policy.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/advanced_threshold_policy.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/advanced_threshold_policy.hpp.i
index 3e18003..9cd8f8e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/advanced_threshold_policy.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/advanced_threshold_policy.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/arguments.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/arguments.cpp.i
index d0b3d56..7c133f5 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/arguments.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/arguments.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/atomic.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/atomic.cpp.i
index 84744a7..f82e9f8 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/atomic.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/atomic.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/compilation_policy.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/compilation_policy.hpp.i
index f5f9c24..b3c5da4 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/compilation_policy.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/compilation_policy.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/deoptimization.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/deoptimization.cpp.i
index 463a12a..a2dd735 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/deoptimization.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/deoptimization.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/deoptimization.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/deoptimization.hpp.i
index f547657..af22a7f 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/deoptimization.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/deoptimization.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/field_descriptor.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/field_descriptor.cpp.i
index 83d602c..9f24326 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/field_descriptor.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/field_descriptor.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/field_descriptor.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/field_descriptor.hpp.i
index 8172ec9..c3fd3dc 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/field_descriptor.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/field_descriptor.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/fprofiler.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/fprofiler.hpp.i
index f758e4a..4987888 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/fprofiler.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/fprofiler.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/frame.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/frame.hpp.i
index fb6b173..0844df7 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/frame.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/frame.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/globals.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/globals.hpp.i
index 74441ff..a9e5cf8 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/globals.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/globals.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/handles.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/handles.cpp.i
index 8051745..4d83d55 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/handles.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/handles.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/handles.inline.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/handles.inline.hpp.i
index 9ecc029..c414cbc 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/handles.inline.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/handles.inline.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/interface_support.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/interface_support.hpp.i
index a4e8292..5d179db 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/interface_support.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/interface_support.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/java.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/java.cpp.i
index eec5571..de7432f 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/java.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/java.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/java.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/java.hpp.i
index 6216796..235958d 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/java.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/java.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/java_calls.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/java_calls.cpp.i
index 5a700d2..62a1600 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/java_calls.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/java_calls.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/java_calls.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/java_calls.hpp.i
index 00dc1e8..8558153 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/java_calls.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/java_calls.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/java_frame_anchor.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/java_frame_anchor.hpp.i
index 0399821..9cb1cf7 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/java_frame_anchor.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/java_frame_anchor.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/jni_handles.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/jni_handles.cpp.i
index ca281be..e0f70a1 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/jni_handles.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/jni_handles.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/memprofiler.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/memprofiler.cpp.i
index 5d4eb9f..45c32ce 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/memprofiler.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/memprofiler.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/mutex.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/mutex.cpp.i
index 2671979..4c7012f 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/mutex.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/mutex.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/mutex_locker.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/mutex_locker.cpp.i
index 853152d..e8f4120 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/mutex_locker.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/mutex_locker.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/mutex_locker.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/mutex_locker.hpp.i
index b6b86e0..a0878bd 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/mutex_locker.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/mutex_locker.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/object_monitor.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/object_monitor.cpp.i
index 01d77a2..6224eca 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/object_monitor.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/object_monitor.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/os.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/os.cpp.i
index ecc6e03..71b2a02 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/os.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/os.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/os.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/os.hpp.i
index 625742d..efc0a98 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/os.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/os.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/os_thread.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/os_thread.hpp.i
index fe98ff0..10d6547 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/os_thread.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/os_thread.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/reflection.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/reflection.cpp.i
index 91e43d9..1dac4a3 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/reflection.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/reflection.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/reflection.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/reflection.hpp.i
index a748fe6..726a463 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/reflection.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/reflection.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/reflection_utils.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/reflection_utils.hpp.i
index 8d778ed..779d1ce 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/reflection_utils.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/reflection_utils.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/safepoint.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/safepoint.cpp.i
index c45148c..9819dc2 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/safepoint.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/safepoint.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/shared_runtime.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/shared_runtime.cpp.i
index 56ebd57..d2ba85e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/shared_runtime.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/shared_runtime.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/shared_runtime.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/shared_runtime.hpp.i
index 603d016..345c735 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/shared_runtime.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/shared_runtime.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/simple_threshold_policy.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/simple_threshold_policy.cpp.i
index bcb6d4d..5e488cd 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/simple_threshold_policy.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/simple_threshold_policy.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/simple_threshold_policy.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/simple_threshold_policy.hpp.i
index 7cdf3ed..41b6e9a 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/simple_threshold_policy.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/simple_threshold_policy.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/stub_routines.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/stub_routines.cpp.i
index 41bd956..95e70b9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/stub_routines.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/stub_routines.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/stub_routines.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/stub_routines.hpp.i
index 949ec5c..4bc848e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/stub_routines.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/stub_routines.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/synchronizer.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/synchronizer.cpp.i
index 3c1eb1d..fa396fc 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/synchronizer.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/synchronizer.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/task.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/task.cpp.i
index e92b91d..0fce5da 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/task.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/task.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/thread.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/thread.cpp.i
index db4acea..3f7f03f 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/thread.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/thread.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/thread.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/thread.hpp.i
index d743cd1..5d0a55a 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/thread.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/thread.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/thread_local_storage.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/thread_local_storage.cpp.i
index 8e7443a..bd960d7 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/thread_local_storage.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/thread_local_storage.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/thread_local_storage.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/thread_local_storage.hpp.i
index 00dbadc..5faefc7 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/thread_local_storage.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/thread_local_storage.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/timer.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/timer.cpp.i
index a3291e2..69480a5 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/timer.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/timer.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/vframe_array.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/vframe_array.hpp.i
index 84f8f4a..22b1586 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/vframe_array.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/vframe_array.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/virtualspace.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/virtualspace.cpp.i
index 9ce804f..a0e45b6 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/virtualspace.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/virtualspace.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/vm__operations.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/vm__operations.cpp.i
index a5ada66..0e9842e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/vm__operations.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/vm__operations.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/vm__version.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/vm__version.cpp.i
index 5e6da53..8d78596 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/vm__version.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/vm__version.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/vm__version.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/vm__version.hpp.i
index da0bfc5..3fdfe65 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/vm__version.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/vm__version.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/vm_structs.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/vm_structs.cpp.i
index 35db4cc..bca0174 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/vm_structs.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/vm_structs.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/vm_thread.cpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/vm_thread.cpp.i
index d608320..f0f035d 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/vm_thread.cpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/vm_thread.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/runtime/vm_thread.hpp.i b/hotspot/.hg/store/data/src/share/vm/runtime/vm_thread.hpp.i
index aac86a5..2dc8f6a 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/runtime/vm_thread.hpp.i and b/hotspot/.hg/store/data/src/share/vm/runtime/vm_thread.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/services/gc_notifier.cpp.i b/hotspot/.hg/store/data/src/share/vm/services/gc_notifier.cpp.i
index 1cd0d7b..4801330 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/services/gc_notifier.cpp.i and b/hotspot/.hg/store/data/src/share/vm/services/gc_notifier.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/shark/shark_context.hpp.i b/hotspot/.hg/store/data/src/share/vm/shark/shark_context.hpp.i
index b732a06..5f2eb00 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/shark/shark_context.hpp.i and b/hotspot/.hg/store/data/src/share/vm/shark/shark_context.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/access_flags.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/access_flags.cpp.i
index e73eccf..21f6833 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/access_flags.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/access_flags.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/access_flags.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/access_flags.hpp.i
index 5dd249c..5d8d34e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/access_flags.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/access_flags.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/array.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/array.cpp.i
index d74a386..083696b 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/array.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/array.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/bit_map.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/bit_map.cpp.i
index c585579..40fa04e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/bit_map.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/bit_map.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/debug.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/debug.cpp.i
index 226f856..c5ea4e2 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/debug.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/debug.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/decoder.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/decoder.cpp.i
index f859d2a..6c16849 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/decoder.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/decoder.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/decoder.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/decoder.hpp.i
index 8c3ca66..945d203 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/decoder.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/decoder.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/elf_file.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/elf_file.cpp.i
index e5e07bc..2394551 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/elf_file.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/elf_file.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/elf_file.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/elf_file.hpp.i
index 607eb22..43c1f2d 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/elf_file.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/elf_file.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/elf_string_table.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/elf_string_table.cpp.i
index 117347f..d715d03 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/elf_string_table.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/elf_string_table.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/elf_string_table.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/elf_string_table.hpp.i
index 6e597a3..527b755 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/elf_string_table.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/elf_string_table.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/elf_symbol_table.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/elf_symbol_table.cpp.i
index 4bc9b7b..3276573 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/elf_symbol_table.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/elf_symbol_table.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/elf_symbol_table.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/elf_symbol_table.hpp.i
index 65d26db..4e6b756 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/elf_symbol_table.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/elf_symbol_table.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/events.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/events.cpp.i
index 8eef915..314fc17 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/events.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/events.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/exceptions.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/exceptions.cpp.i
index f144a55..4dd5650 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/exceptions.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/exceptions.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/exceptions.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/exceptions.hpp.i
index e971670..9030d14 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/exceptions.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/exceptions.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions.hpp.i
index ae68e71..9205924 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions__gcc.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions__gcc.hpp.i
index 5dd611c..6e392a4 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions__gcc.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions__gcc.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions__sparc_works.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions__sparc_works.hpp.i
index 07f48b5..54c0bb9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions__sparc_works.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions__sparc_works.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions__vis_c_p_p.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions__vis_c_p_p.hpp.i
index b0949e4..1590434 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions__vis_c_p_p.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/global_definitions__vis_c_p_p.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/growable_array.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/growable_array.cpp.i
index 8504c59..d464edf 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/growable_array.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/growable_array.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/growable_array.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/growable_array.hpp.i
index 2223081..d6b538d 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/growable_array.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/growable_array.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/histogram.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/histogram.hpp.i
index 960591a..ab84a35 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/histogram.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/histogram.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/macros.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/macros.hpp.i
index cde3e5f..f35521c 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/macros.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/macros.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/ostream.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/ostream.cpp.i
index c1f426b..9b6c05e 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/ostream.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/ostream.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/preserve_exception.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/preserve_exception.hpp.i
index d812983..d1ef1d5 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/preserve_exception.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/preserve_exception.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/quick_sort.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/quick_sort.cpp.i
index f831306..77f0b90 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/quick_sort.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/quick_sort.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/taskqueue.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/taskqueue.cpp.i
index 21034f5..76f39c9 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/taskqueue.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/taskqueue.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/taskqueue.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/taskqueue.hpp.i
index 7329c01..01667f1 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/taskqueue.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/taskqueue.hpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/vm_error.cpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/vm_error.cpp.i
index f776776..76b6270 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/vm_error.cpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/vm_error.cpp.i differ
diff --git a/hotspot/.hg/store/data/src/share/vm/utilities/workgroup.hpp.i b/hotspot/.hg/store/data/src/share/vm/utilities/workgroup.hpp.i
index ef47203..0f5bb82 100644
Binary files a/hotspot/.hg/store/data/src/share/vm/utilities/workgroup.hpp.i and b/hotspot/.hg/store/data/src/share/vm/utilities/workgroup.hpp.i differ
diff --git a/hotspot/.hg/store/data/test/_makefile.i b/hotspot/.hg/store/data/test/_makefile.i
index b898437..281e144 100644
Binary files a/hotspot/.hg/store/data/test/_makefile.i and b/hotspot/.hg/store/data/test/_makefile.i differ
diff --git a/hotspot/.hg/store/data/test/compiler/5091921/_test7005594.sh.i b/hotspot/.hg/store/data/test/compiler/5091921/_test7005594.sh.i
index e896741..f69bcb9 100644
Binary files a/hotspot/.hg/store/data/test/compiler/5091921/_test7005594.sh.i and b/hotspot/.hg/store/data/test/compiler/5091921/_test7005594.sh.i differ
diff --git a/hotspot/.hg/store/data/test/compiler/7068051/_test7068051.java.i b/hotspot/.hg/store/data/test/compiler/7068051/_test7068051.java.i
new file mode 100644
index 0000000..a1e48a7
Binary files /dev/null and b/hotspot/.hg/store/data/test/compiler/7068051/_test7068051.java.i differ
diff --git a/hotspot/.hg/store/data/test/compiler/7068051/_test7068051.sh.i b/hotspot/.hg/store/data/test/compiler/7068051/_test7068051.sh.i
new file mode 100644
index 0000000..ef6b892
Binary files /dev/null and b/hotspot/.hg/store/data/test/compiler/7068051/_test7068051.sh.i differ
diff --git a/hotspot/.hg/store/data/test/compiler/7070134/_stemmer.java.i b/hotspot/.hg/store/data/test/compiler/7070134/_stemmer.java.i
new file mode 100644
index 0000000..da4cc4f
Binary files /dev/null and b/hotspot/.hg/store/data/test/compiler/7070134/_stemmer.java.i differ
diff --git a/hotspot/.hg/store/data/test/compiler/7070134/_test7070134.sh.i b/hotspot/.hg/store/data/test/compiler/7070134/_test7070134.sh.i
new file mode 100644
index 0000000..e23ccff
Binary files /dev/null and b/hotspot/.hg/store/data/test/compiler/7070134/_test7070134.sh.i differ
diff --git a/hotspot/.hg/store/data/test/compiler/7070134/words.d b/hotspot/.hg/store/data/test/compiler/7070134/words.d
new file mode 100644
index 0000000..ba048e4
Binary files /dev/null and b/hotspot/.hg/store/data/test/compiler/7070134/words.d differ
diff --git a/hotspot/.hg/store/data/test/compiler/7070134/words.i b/hotspot/.hg/store/data/test/compiler/7070134/words.i
new file mode 100644
index 0000000..86bb799
Binary files /dev/null and b/hotspot/.hg/store/data/test/compiler/7070134/words.i differ
diff --git a/hotspot/.hg/store/data/test/compiler/7082949/_test7082949.java.i b/hotspot/.hg/store/data/test/compiler/7082949/_test7082949.java.i
new file mode 100644
index 0000000..bf24cec
Binary files /dev/null and b/hotspot/.hg/store/data/test/compiler/7082949/_test7082949.java.i differ
diff --git a/hotspot/.hg/store/data/test/compiler/7088020/_test7088020.java.i b/hotspot/.hg/store/data/test/compiler/7088020/_test7088020.java.i
new file mode 100644
index 0000000..d004ccd
Binary files /dev/null and b/hotspot/.hg/store/data/test/compiler/7088020/_test7088020.java.i differ
diff --git a/hotspot/.hg/store/data/test/gc/7072527/_test_full_g_c_count.java.i b/hotspot/.hg/store/data/test/gc/7072527/_test_full_g_c_count.java.i
new file mode 100644
index 0000000..cc3dd7e
Binary files /dev/null and b/hotspot/.hg/store/data/test/gc/7072527/_test_full_g_c_count.java.i differ
diff --git a/hotspot/.hg/store/data/test/jprt.config.i b/hotspot/.hg/store/data/test/jprt.config.i
index 16ec268..79480e9 100644
Binary files a/hotspot/.hg/store/data/test/jprt.config.i and b/hotspot/.hg/store/data/test/jprt.config.i differ
diff --git a/hotspot/.hg/store/data/test/runtime/6929067/_test6929067.sh.i b/hotspot/.hg/store/data/test/runtime/6929067/_test6929067.sh.i
index 68e59a5..2e0140b 100644
Binary files a/hotspot/.hg/store/data/test/runtime/6929067/_test6929067.sh.i and b/hotspot/.hg/store/data/test/runtime/6929067/_test6929067.sh.i differ
diff --git a/hotspot/.hg/store/data/test/runtime/7020373/_test7020373.sh.i b/hotspot/.hg/store/data/test/runtime/7020373/_test7020373.sh.i
new file mode 100644
index 0000000..7e35fc7
Binary files /dev/null and b/hotspot/.hg/store/data/test/runtime/7020373/_test7020373.sh.i differ
diff --git a/hotspot/.hg/store/data/test/runtime/7051189/_xchecksig.sh.i b/hotspot/.hg/store/data/test/runtime/7051189/_xchecksig.sh.i
new file mode 100644
index 0000000..6b710ad
Binary files /dev/null and b/hotspot/.hg/store/data/test/runtime/7051189/_xchecksig.sh.i differ
diff --git a/hotspot/.hg/store/data/~2ehgtags.i b/hotspot/.hg/store/data/~2ehgtags.i
index 16181db..a67c6bc 100644
Binary files a/hotspot/.hg/store/data/~2ehgtags.i and b/hotspot/.hg/store/data/~2ehgtags.i differ
diff --git a/hotspot/.hg/store/fncache b/hotspot/.hg/store/fncache
index 714e17f..9fe4c07 100644
--- a/hotspot/.hg/store/fncache
+++ b/hotspot/.hg/store/fncache
@@ -1,26 +1,27 @@
-data/src/share/vm/memory/universe.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLoadInstruction.java.i
 data/make/windows/projectfiles/compiler2/vm.def.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/amd64/RemoteAMD64ThreadContext.java.i
 data/make/windows/platform_ia64.i
+data/test/gc/6941923/test6941923.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9IntRegisterBranchDecoder.java.i
 data/agent/src/scripts/README.i
-data/test/compiler/6636138/Test1.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/GenericGrowableArray.java.i
 data/src/cpu/zero/vm/nativeInst_zero.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/ReturnInstruction.java.i
+data/src/cpu/zero/vm/vmreg_zero.cpp.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/manifest.mf.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/memo/MemoizedByte.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FlushDecoder.java.i
 data/test/compiler/5091921/Test6897150.java.i
-data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp.i
+data/src/share/vm/opto/regalloc.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/LineNumberVisitor.java.i
-data/src/share/vm/gc_implementation/includeDB_gc_shared.i
 data/src/share/vm/shark/sharkFunction.hpp.i
-data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/layer.xml.i
-data/src/share/vm/interpreter/bytecode.cpp.i
+data/test/compiler/5091921/Test6186134.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/HideAction.java.i
 data/test/compiler/5091921/Test6850611.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MOVrInstruction.java.i
-data/src/share/vm/oops/typeArrayKlass.cpp.i
-data/src/share/vm/prims/jni.h.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/InstructionVisitor.java.i
+data/src/share/vm/utilities/quickSort.cpp.i
+data/test/Makefile.i
 data/src/cpu/x86/vm/vm_version_x86.hpp.i
 data/src/os/windows/vm/attachListener_windows.cpp.i
 data/src/share/tools/IdealGraphVisualizer/RhinoScriptEngineProxy/build.xml.i
@@ -31,27 +32,28 @@ data/agent/src/share/classes/images/toolbarButtonGraphics/general/Delete16.gif.i
 data/src/os_cpu/solaris_sparc/vm/solaris_sparc.il.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/action/ThreadInfoAction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FloatDecoder.java.i
-data/agent/src/share/classes/images/toolbarButtonGraphics/general/Zoom16.gif.i
+data/build/linux/makefiles/amd64.make.i
 data/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp.i
 data/src/cpu/x86/vm/interpreter_x86.hpp.i
-data/src/share/vm/ci/ciFlags.cpp.i
+data/src/share/vm/prims/jvmtiThreadState.hpp.i
 data/src/os/windows/vm/chaitin_windows.cpp.i
+data/src/os/bsd/vm/dtraceJSDT_bsd.cpp.i
 data/src/share/vm/interpreter/linkResolver.cpp.i
 data/agent/src/os/linux/elfmacros.h.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FloatRegisters.java.i
 data/src/os/windows/vm/osThread_windows.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/NonConcreteMethodImpl.java.i
-data/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/ProcessListPanel.java.i
 data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/CombineFilter.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSGlobalPub.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CMoveDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/SAListener.java.i
 data/src/share/tools/IdealGraphVisualizer/RhinoScriptEngineProxy/src/com/sun/hotspot/igv/rhino/Bundle.properties.i
 data/build/linux/makefiles/adjust-mflags.sh.i
-data/src/cpu/zero/vm/vmreg_zero.cpp.i
+data/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/InstructionDecoder.java.i
-data/src/cpu/zero/vm/bytecodes_zero.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteOopHandle.java.i
 data/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.hpp.i
 data/src/share/tools/IdealGraphVisualizer/branding/core/core.jar/org/netbeans/core/startup/frame.gif.i
 data/src/os/windows/vm/os_windows.cpp.i
@@ -61,9 +63,9 @@ data/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGener
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/memo/MemoizedShort.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/DoubleTreeNodeAdapter.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/x86/X86ThreadContext.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/bugspot/StackTracePanel.java.i
 data/build/windows/projectfiles/compiler1/vm.def.i
-data/src/share/vm/opto/loopPredicate.cpp.i
+data/agent/doc/ReadMe-JavaScript.text.i
 data/make/solaris/makefiles/mapfile-vers.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java.i
 data/src/os/solaris/dtrace/libjvm_db.h.i
@@ -77,26 +79,29 @@ data/agent/src/os/solaris/dbx/proc_service_2.h.i
 data/src/share/vm/services/gcNotifier.hpp.i
 data/src/cpu/x86/vm/c1_FrameMap_x86.hpp.i
 data/src/share/vm/shark/sharkStateScanner.hpp.i
-data/src/share/vm/runtime/os.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86ThreadContext.java.i
 data/src/cpu/x86/vm/bytes_x86.hpp.i
 data/src/share/vm/opto/adlcVMDeps.hpp.i
 data/test/compiler/6663854/Test6663854.java.i
 data/src/share/vm/runtime/perfData.cpp.i
 data/src/share/vm/utilities/exceptions.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/Bits.java.i
+data/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithKlass.java.i
 data/make/jprt.config.i
+data/agent/test/jdi/runjdb.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/PackageNameFilter.java.i
-data/src/share/tools/IdealGraphVisualizer/Filter/manifest.mf.i
+data/src/share/vm/code/dependencies.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadFactory.java.i
 data/src/share/vm/gc_implementation/shared/gcPolicyCounters.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FloatRegister.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/memo/MemoizedChar.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/actions/RemoveAction.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.hpp.i
-data/src/share/vm/utilities/yieldingWorkgroup.cpp.i
+data/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp.i
 data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/nbproject/project.xml.i
 data/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/layer.xml.i
-data/src/share/tools/IdealGraphVisualizer/ServerCompiler/nbproject/genfiles.properties.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DumpExports.java.i
 data/agent/make/jsdbwindbg64.bat.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/AuxWeakExternalRecord.java.i
 data/src/share/vm/classfile/resolutionErrors.hpp.i
@@ -109,47 +114,46 @@ data/src/share/tools/IdealGraphVisualizer/Layout/nbproject/genfiles.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/DeadlockDetector.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Register.java.i
 data/src/share/vm/gc_implementation/shared/gcUtil.hpp.i
-data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputBlock.java.i
-data/src/share/vm/utilities/array.hpp.i
 data/src/share/vm/c1/c1_Compiler.hpp.i
 data/src/share/tools/IdealGraphVisualizer/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties.i
 data/src/share/vm/ci/ciMethodBlocks.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/WorkerThread.java.i
-data/src/share/vm/memory/collectorPolicy.cpp.i
+data/make/windows/get_msc_ver.sh.i
 data/make/windows/projectfiles/kernel/vm.dsw.i
 data/agent/src/share/classes/com/sun/java/swing/ui/OkCancelDialog.java.i
-data/src/share/vm/opto/memnode.cpp.i
+data/src/share/tools/IdealGraphVisualizer/Layout/nbproject/suite.properties.i
 data/src/share/vm/prims/jvmtiEnvFill.java.i
 data/src/share/vm/memory/defNewGeneration.inline.hpp.i
 data/src/share/vm/utilities/bitMap.cpp.i
-data/src/share/vm/oops/oop.psgc.inline.hpp.i
+data/test/compiler/5091921/Test7020614.java.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/ControlFlowTopComponent.java.i
+data/make/bsd/platform_i486.suncc.i
 data/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.inline.hpp.i
 data/src/share/vm/runtime/threadLocalStorage.hpp.i
-data/src/share/vm/code/location.hpp.i
 data/src/os/solaris/vm/os_solaris.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9CasInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlassKlass.java.i
 data/src/share/vm/adlc/dfa.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/NotInHeapException.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/CStringTreeNodeAdapter.java.i
-data/make/solaris/makefiles/reorder_CORE_i486.i
+data/build/windows/makefiles/debug.make.i
 data/src/share/tools/IdealGraphVisualizer/Util/manifest.mf.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodKlass.java.i
 data/build/windows/projectfiles/compiler1/Makefile.i
 data/src/share/vm/gc_implementation/shared/gSpaceCounters.cpp.i
 data/src/share/vm/runtime/perfMemory.hpp.i
 data/agent/test/jdi/TestScaffold.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSSrcLnSeg.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/ArrayData.java.i
 data/src/share/vm/memory/genOopClosures.hpp.i
 data/make/solaris/makefiles/amd64.make.i
-data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/Bundle.properties.i
+data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/ChangedListener.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java.i
 data/src/share/vm/ci/ciNullObject.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java.i
 data/src/share/vm/runtime/init.hpp.i
-data/agent/src/os/win32/SwDbgSrv.dsw.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRegisterType.java.i
 data/src/share/vm/code/scopeDesc.cpp.i
-data/src/share/vm/runtime/fprofiler.hpp.i
+data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/Bundle.properties.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/nbproject/project.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCMemoryInstruction.java.i
 data/src/share/vm/oops/symbolOop.hpp.i
@@ -159,38 +163,46 @@ data/make/windows/build.make.i
 data/src/share/vm/prims/jvmtiCodeBlobEvents.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/BytecodeViewAction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/solaris_x86/SolarisX86JavaThreadPDAccess.java.i
+data/src/share/vm/oops/constantPoolOop.hpp.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Helper.java.i
 data/agent/make/jhistoproc.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/amd64/ProcAMD64ThreadFactory.java.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/FigureWidget.java.i
+data/src/share/vm/memory/genRemSet.cpp.i
 data/src/share/vm/runtime/reflectionUtils.cpp.i
+data/agent/test/jdi/serialvm.java.i
+data/src/cpu/sparc/vm/vtableStubs_sparc.cpp.i
+data/src/cpu/x86/vm/c1_LinearScan_x86.cpp.i
 data/src/share/vm/opto/memnode.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPArithmeticDecoder.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86XMMRegister.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicBaseClass.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/ia64/WindbgIA64ThreadFactory.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/ScriptObject.java.i
+data/src/share/vm/runtime/os.cpp.i
 data/build/solaris/makefiles/buildtree.make.i
 data/agent/make/index.html.i
-data/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp.i
+data/agent/src/share/classes/images/toolbarButtonGraphics/general/Open16.gif.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/JvmtiAgentThread.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/images/removeall.gif.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/SlotLayout.java.i
 data/src/share/vm/opto/phaseX.hpp.i
-data/src/cpu/x86/vm/jni_x86.h.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithCPIndex.java.i
-data/agent/make/pstackwindbg.bat.i
+data/src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp.i
 data/agent/test/libproc/Makefile.i
-data/agent/make/heapdumpproc64.sh.i
-data/src/share/vm/memory/filemap.cpp.i
+data/make/solaris/makefiles/reorder_COMPILER2_sparc.i
+data/src/share/vm/gc_implementation/g1/survRateGroup.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeMultiANewArray.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSaveInstruction.java.i
 data/src/share/vm/c1/c1_CodeStubs.hpp.i
-data/agent/src/os/linux/ps_core.c.i
+data/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/LoopNode.java.i
 data/agent/test/jdi/runsa.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/JmplDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/resources/triangle.png.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSSrcModule.java.i
 data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/ConnectionFilter.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/CellTypeStateList.java.i
-data/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp.i
+data/src/share/vm/memory/barrierSet.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcThreadFactory.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxOopHandle.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DLLCharacteristics.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugger.java.i
 data/src/share/vm/shark/sharkIntrinsics.hpp.i
@@ -202,28 +214,31 @@ data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/SectionFlags.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/CompressedLineNumberReadStream.java.i
 data/src/cpu/x86/vm/globals_x86.hpp.i
-data/src/share/vm/runtime/reflection.hpp.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/expand.gif.i
-data/src/share/vm/oops/compiledICHolderKlass.hpp.i
-data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/nbproject/project.properties.i
+data/src/share/vm/shark/sharkFunction.cpp.i
+data/src/share/tools/IdealGraphVisualizer/Settings/src/com/sun/hotspot/igv/settings/layer.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFlushInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/VoidValueImpl.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp.i
+data/agent/make/start-debug-server-windbg.bat.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheKlass.java.i
-data/src/share/vm/oops/generateOopMap.hpp.i
-data/build/solaris/makefiles/core.make.i
-data/make/windows/projectfiles/compiler2/Makefile.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethod.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86ShiftInstruction.java.i
+data/src/os/bsd/vm/os_share_bsd.hpp.i
+data/src/share/vm/runtime/extendedPC.hpp.i
+data/make/solaris/makefiles/build_vm_def.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/x86/WindbgX86Thread.java.i
+data/src/cpu/x86/vm/jniFastGetField_x86_32.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/amd64/RemoteAMD64Thread.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/JVMDIClassStatus.java.i
+data/test/compiler/7046096/Test7046096.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicVoidType.java.i
 data/test/compiler/5091921/Test7005594.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MMXRegister.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/amd64/WindbgAMD64Thread.java.i
 data/src/share/vm/adlc/arena.hpp.i
 data/src/os/windows/vm/dtraceJSDT_windows.cpp.i
 data/make/linux/platform_sparc.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/action/FindCrashesAction.java.i
-data/build/linux/makefiles/amd64.make.i
+data/src/cpu/x86/vm/icache_x86.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFHeader.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FlushwInstruction.java.i
 data/agent/make/hsdb.sh.i
@@ -231,45 +246,47 @@ data/src/share/vm/opto/escape.cpp.i
 data/src/share/vm/gc_implementation/shared/cSpaceCounters.hpp.i
 data/src/share/vm/ci/ciTypeArrayKlassKlass.cpp.i
 data/test/compiler/6896727/Test.java.i
-data/src/cpu/x86/vm/dump_x86_64.cpp.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/ExpandPredecessorsAction.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcAddress.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/types/JCharField.java.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Property.java.i
-data/src/share/vm/prims/jvmtiThreadState.hpp.i
 data/agent/src/os/solaris/proc/salibproc.h.i
+data/src/os_cpu/bsd_x86/vm/vm_version_bsd_x86.cpp.i
 data/src/share/vm/runtime/park.cpp.i
 data/src/share/vm/opto/c2_globals.cpp.i
-data/src/share/vm/runtime/relocator.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/ServiceThread.java.i
+data/src/share/tools/launcher/wildcard.h.i
 data/make/solaris/platform_sparcv9.i
 data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/DoubleClickHandler.java.i
 data/src/os_cpu/linux_x86/vm/os_linux_x86.cpp.i
-data/test/compiler/6758234/Test6758234.java.i
+data/make/bsd/makefiles/top.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/ThreadAccess.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/DictionaryEntry.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerServer.java.i
 data/test/compiler/6946040/TestCharShortByteSwap.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/MonitorValue.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/UnimpDecoder.java.i
 data/src/os/solaris/vm/decoder_solaris.cpp.i
 data/src/share/vm/prims/jvmtiHpp.xsl.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxThreadContextFactory.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/UnalignedAddressException.java.i
-data/src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp.i
+data/src/share/vm/adlc/formsopt.hpp.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/nbproject/project.properties.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxOopHandle.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/tree/AddressTreeNodeAdapter.java.i
-data/src/share/vm/shark/sharkBuilder.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFloatRegisters.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/Method.java.i
 data/agent/make/finalizerinfowindbg.bat.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegister.java.i
 data/src/cpu/sparc/vm/frame_sparc.inline.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_ia64/Win32IA64JavaThreadPDAccess.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/TypeArrayKlassKlass.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/treetable/SimpleTreeTableModel.java.i
-data/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/BlockConnectionWidget.java.i
 data/build/linux/makefiles/mapfile-vers-debug.i
+data/src/cpu/zero/vm/interpreterFrame_zero.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SegDescEnums.java.i
 data/src/share/vm/classfile/classFileStream.cpp.i
 data/build/solaris/makefiles/gcc.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/OopTreeNodeAdapter.java.i
 data/test/compiler/6716441/Tester.java.i
-data/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp.i
+data/src/share/vm/classfile/classFileStream.hpp.i
 data/src/share/vm/memory/gcLocker.inline.hpp.i
 data/test/compiler/6805724/Test6805724.java.i
 data/build/linux/platform_sparc.i
@@ -280,12 +297,11 @@ data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SpecialRegisterIns
 data/src/share/vm/asm/codeBuffer.hpp.i
 data/agent/src/share/classes/com/sun/java/swing/action/ActionManager.java.i
 data/make/linux/makefiles/mapfile-vers-jsig.i
-data/src/share/vm/runtime/safepoint.cpp.i
-data/src/share/vm/runtime/biasedLocking.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9WrprDecoder.java.i
+data/src/share/tools/IdealGraphVisualizer/RhinoScriptEngineProxy/nbproject/genfiles.properties.i
+data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/SplitFilter.java.i
 data/agent/make/jcorewindbg64.bat.i
-data/make/solaris/makefiles/mapfile-vers-debug.i
-data/src/share/vm/opto/ifnode.cpp.i
+data/src/share/vm/runtime/java.cpp.i
+data/src/os/bsd/vm/osThread_bsd.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/DebuggerBase.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/CFrame.java.i
 data/src/share/vm/gc_implementation/shared/generationCounters.hpp.i
@@ -294,48 +310,53 @@ data/agent/src/os/win32/BasicList.hpp.i
 data/src/share/vm/runtime/synchronizer.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceLoadDecoder.java.i
 data/agent/test/jdi/sagtest.java.i
+data/src/share/vm/utilities/quickSort.hpp.i
 data/src/share/vm/opto/matcher.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/ObjectReader.java.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/navigation/Down16.gif.i
 data/src/cpu/sparc/vm/interpreterRT_sparc.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCRegisterMap.java.i
-data/src/share/vm/code/compiledIC.hpp.i
+data/src/share/vm/memory/blockOffsetTable.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9WriteDecoder.java.i
 data/make/linux/makefiles/shark.make.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/ClusterOutputSlotNode.java.i
+data/src/share/vm/c1/c1_ValueMap.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/CompiledICHolder.java.i
 data/src/os_cpu/windows_x86/vm/assembler_windows_x86.cpp.i
-data/src/share/vm/shark/sharkCacheDecache.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFProgramHeader.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeGetPut.java.i
-data/src/share/vm/opto/parse.hpp.i
+data/src/os/windows/vm/interfaceSupport_windows.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java.i
-data/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp.i
-data/src/cpu/x86/vm/vmStructs_x86.hpp.i
+data/src/os/linux/vm/mutex_linux.inline.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceStoreDecoder.java.i
+data/src/share/vm/memory/resourceArea.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebugger.java.i
 data/src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp.i
-data/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp.i
 data/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/ObjectHistogram.java.i
-data/src/share/tools/IdealGraphVisualizer/NetworkConnection/src/com/sun/hotspot/igv/connection/Client.java.i
+data/src/share/vm/oops/cpCacheKlass.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64CurrentFrameGuess.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SwapDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java.i
+data/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp.i
 data/src/share/vm/runtime/stubRoutines.cpp.i
 data/src/cpu/x86/vm/debug_x86.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/FunctionType.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseCFG.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicVtblAccess.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RettDecoder.java.i
+data/src/os/bsd/vm/os_bsd.inline.hpp.i
 data/src/share/vm/gc_implementation/shared/cSpaceCounters.cpp.i
 data/make/solaris/platform_sparc.i
 data/src/cpu/sparc/vm/assembler_sparc.hpp.i
 data/src/cpu/sparc/vm/disassembler_sparc.cpp.i
 data/src/share/vm/oops/constantPoolKlass.cpp.i
+data/src/share/tools/IdealGraphVisualizer/Settings/src/com/sun/hotspot/igv/settings/ViewPanel.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicFieldWrapper.java.i
 data/agent/src/os/win32/nt4internals.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeFastIAccess0.java.i
-data/build/solaris/Queens.class.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/EnableBlockLayoutAction.java.i
-data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/removeSelfLoops.filter.i
+data/src/share/vm/opto/live.hpp.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/nbproject/suite.properties.i
 data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/FilterSetting.java.i
 data/src/share/vm/code/jvmticmlr.h.i
@@ -345,23 +366,22 @@ data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCUnimpInstruction.jav
 data/test/compiler/6916644/Test6916644.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SegDesc.java.i
 data/src/share/vm/runtime/synchronizer.hpp.i
-data/src/share/vm/gc_implementation/g1/bufferingOopClosure.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialRegisters.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/java_lang_Class.java.i
 data/agent/test/jdi/sagtarg.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/LocalSym.java.i
-data/src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp.i
 data/agent/src/share/classes/com/sun/java/swing/action/DelegateAction.java.i
 data/src/cpu/zero/vm/vm_version_zero.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/TwoOopHashtable.java.i
-data/src/share/vm/c1/c1_Instruction.hpp.i
+data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/JavaSE6ScriptEngine.java.i
 data/src/cpu/x86/vm/interp_masm_x86_64.hpp.i
-data/src/share/vm/gc_implementation/shared/coTracker.cpp.i
-data/src/share/vm/gc_implementation/parNew/vmStructs_parNew.hpp.i
-data/src/share/vm/memory/barrierSet.inline.hpp.i
+data/src/share/vm/shark/sharkIntrinsics.cpp.i
+data/src/os/windows/vm/mutex_windows.inline.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64CFrame.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/RBTree.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceSwapDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/CompiledICHolderKlass.java.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/Bundle.properties.i
-data/build/windows/makefiles/shared.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC32Bit.java.i
 data/src/cpu/x86/vm/methodHandles_x86.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java.i
 data/make/linux/makefiles/sparc.make.i
@@ -370,81 +390,75 @@ data/agent/src/share/classes/sun/jvm/hotspot/oops/ArrayKlassKlass.java.i
 data/src/share/vm/runtime/frame.cpp.i
 data/src/share/vm/gc_implementation/g1/g1OopClosures.hpp.i
 data/src/os/linux/vm/interfaceSupport_linux.hpp.i
-data/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp.i
-data/src/share/vm/memory/tenuredGeneration.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SymbolEnums.java.i
 data/build/solaris/makefiles/reorder_TIERED_amd64.i
-data/agent/src/os/solaris/proc/saproc.cpp.i
+data/agent/test/libproc/libproctest64.sh.i
 data/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaField.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/MemRegion.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/LivenessAnalysis.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Opcodes.java.i
 data/src/share/vm/compiler/oopMap.cpp.i
-data/test/compiler/7042153/Test7042153.java.i
 data/agent/src/os/win32/toolHelp.hpp.i
+data/agent/make/dumpflagswindbg.bat.i
 data/src/share/tools/IdealGraphVisualizer/View/nbproject/project.xml.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/META-INF/services/com.sun.hotspot.igv.data.services.GroupOrganizer.i
-data/src/share/vm/opto/subnode.cpp.i
+data/src/share/vm/services/attachListener.hpp.i
 data/src/share/vm/ci/ciCallProfile.hpp.i
 data/src/share/vm/interpreter/oopMapCache.hpp.i
 data/src/share/vm/code/exceptionHandlerTable.cpp.i
 data/agent/src/share/native/jvmdi/sa.dsw.i
-data/src/share/tools/IdealGraphVisualizer/View/nbproject/genfiles.properties.i
-data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/services/GroupOrganizer.java.i
+data/agent/make/dumpflagswindbg64.bat.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicType.java.i
 data/src/share/vm/oops/methodOop.hpp.i
-data/build/windows/makefiles/generated.make.i
-data/src/share/vm/memory/heapInspection.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/jdi/ValueContainer.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFPMoveInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleSpace.java.i
 data/src/share/vm/memory/genRemSet.hpp.i
 data/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp.i
-data/src/share/vm/oops/instanceMirrorKlass.hpp.i
+data/src/share/vm/c1/c1_Runtime1.hpp.i
 data/agent/src/os/linux/LinuxDebuggerLocal.c.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/ConnectorImpl.java.i
 data/src/share/vm/ci/ciStreams.hpp.i
+data/src/os/bsd/vm/vmError_bsd.cpp.i
+data/make/linux/makefiles/buildtree.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaMethod.java.i
 data/src/share/vm/prims/jvmtiGen.java.i
-data/src/share/vm/libadt/dict.hpp.i
-data/make/windows/makefiles/projectcreator.make.i
 data/src/os/solaris/vm/objectMonitor_solaris.cpp.i
 data/src/share/vm/oops/constantPoolOop.cpp.i
 data/test/runtime/6929067/invoke.c.i
 data/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.cpp.i
-data/src/share/vm/adlc/formsopt.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicNarrowOopField.java.i
 data/src/share/vm/memory/blockOffsetTable.hpp.i
-data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/ExtendedSatelliteComponent.java.i
 data/src/os/solaris/vm/thread_solaris.inline.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/LogicInstruction.java.i
-data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/actions/DiffGraphCookie.java.i
+data/agent/src/os/bsd/libproc_impl.h.i
+data/test/compiler/6973329/Test.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp.i
 data/test/compiler/6860469/Test.java.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/nbproject/platform.properties.i
 data/src/cpu/sparc/vm/stubRoutines_sparc.cpp.i
 data/src/share/vm/gc_implementation/g1/heapRegionSets.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeFastAAccess0.java.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/general/Delete24.gif.i
-data/src/share/vm/prims/jvmtiEventController.hpp.i
+data/src/share/tools/IdealGraphVisualizer/nbproject/build-impl.xml.i
 data/src/os/solaris/vm/dtraceJSDT_solaris.cpp.i
-data/src/share/vm/opto/generateOptoStub.cpp.i
 data/build/linux/makefiles/vm.make.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/PointerFinder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/c1/Runtime1.java.i
 data/agent/src/os/solaris/proc/Makefile.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCFrame.java.i
-data/src/share/vm/code/codeCache.hpp.i
+data/src/share/vm/utilities/bitMap.hpp.i
 data/src/share/vm/oops/symbol.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/ScopeValue.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethodKlass.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/PerfMemory.java.i
-data/src/share/vm/opto/cfgnode.cpp.i
+data/agent/src/os/win32/ioUtils.hpp.i
+data/make/bsd/makefiles/zero.make.i
+data/test/compiler/7048332/Test7048332.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/GlobalSym.java.i
 data/src/share/vm/memory/allocation.inline.hpp.i
 data/src/cpu/x86/vm/vm_version_x86_64.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/OSThread.java.i
 data/src/share/vm/opto/type.hpp.i
 data/src/share/vm/c1/c1_LinearScan.cpp.i
-data/src/share/vm/utilities/accessFlags.cpp.i
 data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/BasicLogEvent.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/ThreadListPanel.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/SADebugServerAttachingConnector.java.i
@@ -452,7 +466,6 @@ data/agent/src/share/classes/sun/jvm/hotspot/types/PointerType.java.i
 data/src/share/vm/services/memoryPool.hpp.i
 data/src/share/vm/opto/c2compiler.hpp.i
 data/src/share/tools/IdealGraphVisualizer/NetworkConnection/nbproject/project.properties.i
-data/src/share/vm/memory/cardTableModRefBS.cpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/predsucc.gif.i
 data/src/share/vm/utilities/xmlstream.hpp.i
 data/src/os_cpu/solaris_x86/vm/copy_solaris_x86.inline.hpp.i
@@ -463,32 +476,33 @@ data/src/cpu/x86/vm/assembler_x86_64.inline.hpp.i
 data/src/os/windows/vm/objectMonitor_windows.inline.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Settings/src/com/sun/hotspot/igv/settings/ViewOptionsCategory.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/JInternalFrameWrapper.java.i
-data/src/share/vm/classfile/vmSymbols.hpp.i
+data/agent/make/clhsdbwindbg64.bat.i
 data/src/share/tools/IdealGraphVisualizer/Settings/nbproject/project.properties.i
 data/src/share/vm/asm/codeBuffer.cpp.i
-data/src/cpu/x86/vm/stubRoutines_x86_64.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/types/CIntegerField.java.i
 data/src/share/vm/c1/c1_globals.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/SymbolKlass.java.i
 data/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/tools/FinalizerInfo.java.i
 data/src/share/vm/gc_implementation/g1/g1MarkSweep.hpp.i
 data/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp.i
 data/src/share/vm/shark/sharkValue.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MMXRegisters.java.i
 data/build/windows/jvmexp.lcf.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/FreeChunk.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/WindowsNTSubsystem.java.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp.i
 data/agent/make/bugspot.bat.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicNamedFieldIdentifier.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/Page.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/TypeImpl.java.i
 data/src/share/vm/prims/methodHandles.hpp.i
-data/src/share/vm/runtime/deoptimization.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/treetable/TreeTableModelAdapter.java.i
-data/src/share/vm/runtime/simpleThresholdPolicy.inline.hpp.i
+data/src/share/vm/runtime/reflection.hpp.i
+data/src/cpu/sparc/vm/vmreg_sparc.hpp.i
 data/src/cpu/x86/vm/vmreg_x86.hpp.i
 data/agent/src/os/linux/libproc_impl.h.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFFile.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/Win32VtblAccess.java.i
+data/src/os_cpu/bsd_zero/vm/vmStructs_bsd_zero.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSPreComp.java.i
 data/src/share/vm/c1/c1_Compiler.cpp.i
 data/src/share/vm/memory/generationSpec.hpp.i
@@ -497,9 +511,10 @@ data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeVisitor.java.i
 data/make/cscope.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/amd64/WindbgAMD64ThreadContext.java.i
 data/src/os/solaris/vm/attachListener_solaris.cpp.i
+data/make/bsd/makefiles/defs.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/amd64/RemoteAMD64ThreadFactory.java.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/removeRootInputs.filter.i
-data/src/share/vm/oops/klassKlass.hpp.i
+data/src/share/vm/utilities/elfStringTable.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/LineInfo.java.i
 data/make/linux/makefiles/vm.make.i
 data/src/share/vm/oops/cpCacheKlass.cpp.i
@@ -509,36 +524,37 @@ data/agent/make/build-pkglist.i
 data/make/solaris/makefiles/defs.make.i
 data/agent/make/heapsumwindbg64.bat.i
 data/src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp.i
-data/agent/make/build.xml.i
+data/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp.i
 data/src/share/vm/interpreter/invocationCounter.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/PageCache.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCIllegalInstruction.java.i
 data/src/share/vm/oops/methodKlass.hpp.i
-data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/combine.filter.i
+data/src/os_cpu/bsd_x86/vm/bsd_x86_32.ad.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/LivenessPathElement.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/parallelScavenge/ParallelScavengeHeap.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/ShortField.java.i
-data/src/share/vm/shark/sharkState.hpp.i
-data/src/share/vm/opto/loopTransform.cpp.i
+data/build/sa.files.i
+data/agent/src/os/bsd/Makefile.i
 data/src/cpu/sparc/vm/disassembler_sparc.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/ArrayKlass.java.i
 data/build/solaris/makefiles/tiered.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/InterpretedVFrame.java.i
 data/src/os_cpu/windows_x86/vm/os_windows_x86.cpp.i
 data/src/cpu/x86/vm/vtableStubs_x86_32.cpp.i
-data/src/share/vm/interpreter/templateTable.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/IntegerValueImpl.java.i
 data/make/solaris/platform_i486.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SethiDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/HeapDumper.java.i
-data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/services/GroupCallback.java.i
-data/build/solaris/makefiles/mapfile-vers-COMPILER1.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86JmpInstruction.java.i
+data/src/share/vm/opto/domgraph.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/StringTransferable.java.i
 data/build/windows/makefiles/fastdebug.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/CompiledVFrame.java.i
 data/agent/src/os/win32/nt4internals.hpp.i
 data/src/share/vm/runtime/vframeArray.hpp.i
 data/src/share/vm/runtime/stubRoutines.hpp.i
+data/agent/make/jsdbwindbg.bat.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java.i
 data/src/share/vm/runtime/stackValueCollection.cpp.i
 data/agent/make/start-debug-server.i
@@ -547,10 +563,8 @@ data/src/share/tools/IdealGraphVisualizer/Graph/nbproject/genfiles.properties.i
 data/src/share/vm/prims/methodComparator.hpp.i
 data/make/windows/create_obj_files.sh.i
 data/src/cpu/x86/vm/dump_x86_32.cpp.i
-data/src/share/vm/adlc/archDesc.hpp.i
-data/build/solaris/makefiles/hp1.make.i
-data/src/share/vm/code/dependencies.cpp.i
-data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/color.filter.i
+data/src/share/vm/oops/objArrayKlass.hpp.i
+data/src/share/vm/memory/oopFactory.cpp.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/build.xml.i
 data/agent/src/share/classes/com/sun/java/swing/action/FileMenu.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86DirectAddress.java.i
@@ -558,6 +572,7 @@ data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeStream.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/VMObjectFactory.java.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/CheckNodeListModel.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/TestDebugInfo.java.i
+data/make/bsd/platform_zero.in.i
 data/test/compiler/6724218/Test.java.i
 data/build/windows/cross_build.bat.i
 data/src/share/vm/oops/methodDataOop.hpp.i
@@ -565,23 +580,24 @@ data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ReadInstruction.ja
 data/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp.i
 data/make/linux/makefiles/hp1.make.i
 data/src/share/vm/opto/phase.hpp.i
-data/test/compiler/6769124/TestDeoptInt6769124.java.i
 data/src/cpu/sparc/vm/c1_globals_sparc.hpp.i
 data/src/share/vm/oops/constMethodKlass.cpp.i
 data/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50TypeLeafIndices.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/ArithmeticDecoder.java.i
+data/src/share/vm/memory/collectorPolicy.cpp.i
 data/agent/src/os/solaris/dbx/shell_imp.h.i
 data/build/windows/makefiles/top.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/DefaultScriptObject.java.i
 data/build/solaris/makefiles/mapfile-vers-debug.i
-data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/InputSlot.java.i
-data/test/compiler/5091921/Test6959129.java.i
-data/test/compiler/6910618/Test.java.i
+data/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep.i
+data/src/cpu/x86/vm/frame_x86.hpp.i
+data/src/share/vm/classfile/classFileError.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_x86/LinuxX86JavaThreadPDAccess.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/ObjectMonitor.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEMoveDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLoadDecoder.java.i
+data/src/os_cpu/bsd_x86/vm/atomic_bsd_x86.inline.hpp.i
 data/src/cpu/x86/vm/c1_FpuStackSim_x86.hpp.i
+data/test/compiler/7068051/Test7068051.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/JavaLineNumberInfo.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/LocalVariableTableElement.java.i
 data/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp.i
@@ -595,56 +611,59 @@ data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeTableswitch.jav
 data/src/share/vm/gc_implementation/shared/vmGCOperations.hpp.i
 data/agent/src/os/win32/ports.h.i
 data/src/share/vm/c1/c1_IR.hpp.i
-data/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Registers.java.i
+data/make/bsd/build.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Register.java.i
 data/src/share/vm/gc_implementation/shared/markSweep.inline.hpp.i
-data/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/Dictionary.java.i
 data/src/share/vm/runtime/memprofiler.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCStoreInstruction.java.i
 data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/Constants.java.i
 data/agent/make/permstatproc.sh.i
-data/src/share/vm/memory/blockOffsetTable.cpp.i
 data/test/compiler/6857159/Test6857159.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaVM.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/gc_interface/CollectedHeapName.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/Immediate.java.i
-data/src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp.i
+data/src/share/vm/code/oopRecorder.cpp.i
+data/make/bsd/makefiles/adlc.make.i
 data/agent/src/os/win32/Handler.hpp.i
 data/build/solaris/makefiles/jvmg.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32CDebugInfoBuilder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/RicochetBlob.java.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/Bundle.properties.i
 data/make/windows/projectfiles/compiler1/Makefile.i
-data/src/share/vm/ci/ciSymbol.hpp.i
-data/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrivilegedRegisterInstruction.java.i
+data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/actions/FilterAction.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/parallelScavenge/PSPermGen.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/LinearAllocBlock.java.i
 data/src/share/tools/IdealGraphVisualizer/Data/manifest.mf.i
 data/build/solaris/makefiles/mapfile-vers-jvm_db.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FlushwDecoder.java.i
 data/src/cpu/zero/vm/codeBuffer_zero.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCHelper.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/PointerType.java.i
+data/build/linux/makefiles/launcher.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/CheckedExceptionElement.java.i
 data/src/share/vm/services/memoryUsage.hpp.i
 data/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/ReversePtrsAnalysis.java.i
+data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/nbproject/genfiles.properties.i
+data/test/compiler/6866651/Test.java.i
 data/src/share/vm/ci/ciTypeArrayKlassKlass.hpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/psTasks.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/CompactingPermGenGen.java.i
 data/src/share/vm/utilities/globalDefinitions_gcc.hpp.i
 data/src/share/vm/c1/c1_Compilation.hpp.i
-data/src/share/vm/runtime/orderAccess.hpp.i
+data/src/share/vm/classfile/javaClasses.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/ParNewGeneration.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegisters.java.i
+data/build/solaris/makefiles/reorder_COMPILER2_i486.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/ConstantDoubleValue.java.i
 data/src/share/vm/runtime/registerMap.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/OrSelector.java.i
 data/src/share/vm/utilities/decoder.cpp.i
-data/src/share/vm/prims/jvmtiEnv.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPMoveDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV8Disassembler.java.i
-data/test/compiler/6832293/Test.java.i
-data/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/Link.java.i
+data/src/share/vm/opto/phaseX.cpp.i
 data/src/share/vm/runtime/vmStructs.hpp.i
 data/src/share/tools/IdealGraphVisualizer/nbproject/project.properties.i
 data/src/share/vm/services/threadService.hpp.i
@@ -653,24 +672,21 @@ data/agent/src/share/classes/sun/jvm/hotspot/utilities/memo/MemoizedObject.java.
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ImpdepInstruction.java.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Event.java.i
 data/agent/doc/transported_core.html.i
-data/test/compiler/6865031/Test.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/DirectAddress.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86Thread.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/CharTypeImpl.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/images/remove.gif.i
 data/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp.i
-data/src/share/tools/LogCompilation/Makefile.i
-data/src/os_cpu/solaris_x86/vm/solaris_x86_64.il.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSOffsetMap32.java.i
 data/make/solaris/makefiles/fastdebug.make.i
-data/agent/test/jdi/multivm.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/IntField.java.i
 data/src/share/vm/gc_implementation/shared/generationCounters.cpp.i
 data/src/share/vm/interpreter/interpreterGenerator.hpp.i
 data/make/windows/build.bat.i
 data/make/solaris/makefiles/product.make.i
-data/src/share/vm/opto/reg_split.cpp.i
 data/agent/make/jstackproc64.sh.i
 data/build/windows/makefiles/compile.make.i
-data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Bundle.properties.i
+data/build/solaris/platform_sparcv9.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/StandardConfiguration.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/SectionHeader.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/DeadlockDetectionPanel.java.i
@@ -678,37 +694,36 @@ data/src/os/linux/vm/os_share_linux.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/LivenessPathList.java.i
 data/src/cpu/zero/vm/interpreterGenerator_zero.hpp.i
 data/build/solaris/reorder.sh.i
+data/src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp.i
 data/make/windows/projectfiles/compiler1/vm.def.i
 data/src/os_cpu/windows_x86/vm/thread_windows_x86.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicCFrame.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLdstubInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/resources/breakpoint.png.i
-data/src/cpu/x86/vm/copy_x86.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaTypeArrayKlass.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeGoto.java.i
 data/src/os/solaris/dtrace/generateJvmOffsets.cpp.i
 data/src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPStoreInstruction.java.i
-data/src/os/linux/vm/c1_globals_linux.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/VMReg.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/x86/RemoteX86ThreadFactory.java.i
 data/src/cpu/sparc/vm/interpreterRT_sparc.cpp.i
-data/src/share/vm/gc_implementation/g1/heapRegion.cpp.i
-data/src/share/vm/gc_implementation/shared/hSpaceCounters.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallJavaNode.java.i
 data/src/share/vm/interpreter/bytecodes.hpp.i
 data/make/openjdk_distro.i
-data/src/share/vm/runtime/relocator.hpp.i
-data/src/share/tools/hsdis/README.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxThread.java.i
 data/src/cpu/sparc/vm/jniTypes_sparc.hpp.i
 data/src/cpu/sparc/vm/sparc.ad.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/ControlFlowTopComponent.form.i
-data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/actions/SaveFilterSettingsAction.java.i
+data/src/cpu/x86/vm/vmreg_x86.cpp.i
 data/src/share/vm/opto/parse1.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/RootTreeNodeAdapter.java.i
-data/src/share/vm/c1/c1_CFGPrinter.cpp.i
+data/src/share/vm/services/memoryPool.cpp.i
 data/src/share/vm/runtime/simpleThresholdPolicy.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/NamedFieldIdentifier.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxThreadFactory.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp.i
 data/src/share/tools/ProjectCreator/WinGammaPlatform.java.i
-data/src/cpu/sparc/vm/interpreter_sparc.hpp.i
 data/test/compiler/6700047/Test6700047.java.i
 data/agent/src/share/classes/META-INF/services/com.sun.jdi.connect.Connector.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/TenuredSpace.java.i
@@ -716,37 +731,39 @@ data/build/solaris/makefiles/adlc.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFSymbol.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/ObjectListPanel.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/MethodCallable.java.i
-data/make/defs.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/RBColor.java.i
+data/src/os/windows/vm/c2_globals_windows.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallNode.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFFileParser.java.i
-data/test/compiler/5091921/Test6931567.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/ContigPermSpace.java.i
-data/test/compiler/5091921/Test7020614.java.i
 data/src/share/vm/classfile/loaderConstraints.hpp.i
 data/src/cpu/x86/vm/globalDefinitions_x86.hpp.i
 data/src/share/vm/memory/space.cpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/EditorTopComponent.java.i
-data/src/share/vm/prims/jvmtiRedefineClasses.hpp.i
+data/test/compiler/7042153/Test7042153.java.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/ChangedEvent.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPArithmeticDecoder.java.i
 data/build/solaris/makefiles/cscope.make.i
 data/src/share/vm/utilities/errorReporter.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/CodeViewerPanel.java.i
 data/src/cpu/x86/vm/c2_init_x86.cpp.i
-data/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp.i
+data/src/share/vm/opto/output.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/action/JavaStackTraceAction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/MirrorImpl.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC64Bit.java.i
 data/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp.i
 data/src/cpu/zero/vm/interpreterRT_zero.hpp.i
 data/build/linux/makefiles/debug.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/resources/arrow.png.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaArrayKlass.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/DebugServer.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/JNIHandles.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/compiler/CompileTask.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/CDebugger.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugTypes.java.i
 data/src/share/tools/ProjectCreator/Macro.java.i
 data/src/share/vm/gc_implementation/shared/spaceDecorator.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java.i
-data/src/os/solaris/vm/os_solaris.inline.hpp.i
+data/src/share/vm/code/compiledIC.hpp.i
 data/src/share/vm/ci/ciKlassKlass.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/CPPExpressions.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/LoadObjectComparator.java.i
@@ -754,68 +771,77 @@ data/test/compiler/5091921/Test6985295.java.i
 data/src/share/vm/code/pcDesc.cpp.i
 data/src/share/vm/gc_implementation/g1/g1RemSet.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicMemberFunctionType.java.i
-data/src/share/vm/services/management.hpp.i
+data/src/share/vm/runtime/basicLock.cpp.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/Timing.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/HeapParametersPanel.java.i
+data/src/share/vm/code/compressedStream.cpp.i
+data/make/solaris/makefiles/saproc.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/Symbol.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/hide.gif.i
-data/src/share/vm/services/lowMemoryDetector.hpp.i
-data/src/share/vm/gc_implementation/g1/g1_globals.hpp.i
+data/src/cpu/zero/vm/frame_zero.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/action/MemoryAction.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSGlobalSym.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/ClassBrowserPanel.java.i
-data/src/share/tools/IdealGraphVisualizer/Coordinator/nbproject/suite.properties.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/SymbolLookup.java.i
 data/build/solaris/makefiles/kernel.make.i
 data/src/share/vm/adlc/main.cpp.i
-data/test/runtime/6626217/Test6626217.sh.i
+data/src/cpu/zero/vm/stack_zero.cpp.i
+data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/actions/Bundle.properties.i
 data/agent/src/os/win32/Dispatcher.cpp.i
 data/src/share/tools/IdealGraphVisualizer/NetworkConnection/nbproject/project.xml.i
+data/build/linux/makefiles/i486.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/GrowableArray.java.i
 data/src/share/tools/ProjectCreator/Util.java.i
 data/src/cpu/sparc/vm/templateTable_sparc.cpp.i
 data/src/os_cpu/solaris_x86/vm/thread_solaris_x86.hpp.i
-data/agent/src/os/win32/initWinsock.hpp.i
+data/agent/make/build.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/FlagDumper.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/tree/FieldTreeNodeAdapter.java.i
-data/src/share/vm/classfile/loaderConstraints.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java.i
+data/src/share/vm/c1/c1_InstructionPrinter.hpp.i
 data/agent/test/libproc/README.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FloatBranchDecoder.java.i
+data/agent/src/os/bsd/ps_proc.c.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/LongTreeNodeAdapter.java.i
 data/src/share/vm/opto/stringopts.hpp.i
 data/test/compiler/6849574/Test.java.i
 data/src/share/vm/gc_implementation/g1/heapRegionSet.inline.hpp.i
-data/src/share/vm/includeDB_gc_parallel.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/x86/RemoteX86Thread.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadContext.java.i
-data/build/linux/makefiles/launcher.make.i
+data/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp.i
+data/src/os_cpu/bsd_zero/vm/assembler_bsd_zero.cpp.i
 data/src/share/vm/runtime/hpi.cpp.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/images/down.gif.i
 data/src/share/tools/IdealGraphVisualizer/View/manifest.mf.i
 data/src/share/vm/code/oopRecorder.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/shared/MutableSpace.java.i
 data/src/cpu/sparc/vm/assembler_sparc.inline.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/MachIfNode.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp.i
 data/src/share/vm/runtime/sweeper.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/LocalVariableImpl.java.i
-data/src/share/vm/interpreter/cppInterpreterGenerator.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/DoubleField.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpacePrefetchDecoder.java.i
-data/src/os_cpu/windows_x86/vm/copy_windows_x86.inline.hpp.i
+data/make/windows/README.i
 data/src/os/linux/launcher/java_md.h.i
+data/make/bsd/makefiles/debug.make.i
+data/make/bsd/makefiles/sparc.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/ClassLoaderReferenceImpl.java.i
 data/src/os_cpu/solaris_x86/vm/solaris_x86_64.ad.i
 data/make/linux/platform_ppc.i
-data/src/share/vm/services/memoryService.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9DoneRetryDecoder.java.i
+data/src/share/vm/runtime/dtraceJSDT.cpp.i
 data/make/linux/platform_i486.i
 data/src/share/vm/runtime/stackValue.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/interpreter/Interpreter.java.i
-data/src/share/tools/IdealGraphVisualizer/Settings/build.xml.i
+data/src/share/vm/prims/jvmtiRedefineClasses.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/RBNode.java.i
-data/src/share/vm/ci/ciInstanceKlassKlass.cpp.i
+data/src/share/vm/memory/universe.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/BaseClass.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/SAPIDAttachingConnector.java.i
 data/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/general/Find16.gif.i
 data/src/share/vm/memory/generation.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/StoreDecoder.java.i
-data/test/compiler/6800154/Test6800154.java.i
+data/make/bsd/platform_amd64.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/sparc/LinuxSPARCThreadContext.java.i
 data/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/RandomAccessFileDataSource.java.i
@@ -823,28 +849,32 @@ data/agent/src/share/classes/images/toolbarButtonGraphics/general/New24.gif.i
 data/src/share/tools/IdealGraphVisualizer/Filter/nbproject/project.properties.i
 data/src/share/vm/gc_interface/gcCause.cpp.i
 data/src/os_cpu/solaris_x86/vm/vm_version_solaris_x86.cpp.i
-data/test/compiler/6837011/Test6837011.java.i
-data/src/share/vm/gc_implementation/shared/allocationStats.hpp.i
+data/src/share/tools/IdealGraphVisualizer/Difference/nbproject/suite.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/ShortTypeImpl.java.i
-data/src/share/vm/oops/typeArrayKlass.hpp.i
+data/src/share/vm/gc_implementation/shared/liveRange.hpp.i
+data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/RemoveSelfLoopsFilter.java.i
 data/src/share/vm/oops/objArrayOop.hpp.i
+data/make/linux/Queens.class.i
 data/src/cpu/sparc/vm/stubRoutines_sparc.hpp.i
 data/src/share/tools/IdealGraphVisualizer/nbproject/project.xml.i
-data/src/share/vm/ci/ciExceptionHandler.cpp.i
+data/src/share/vm/c1/c1_Optimizer.hpp.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/BlockWidget.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/OutlineTopComponent.form.i
-data/src/cpu/zero/vm/stubRoutines_zero.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/Inspector.java.i
+data/src/share/vm/compiler/disassembler.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50X86RegisterEnums.java.i
 data/src/os/linux/vm/os_linux.inline.hpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/SlotWidget.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicIntType.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRegister.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/TenuredGeneration.java.i
 data/src/share/tools/IdealGraphVisualizer/Settings/manifest.mf.i
 data/src/cpu/zero/vm/frame_zero.hpp.i
-data/build/solaris/makefiles/top.make.i
-data/agent/src/os/linux/proc_service.h.i
+data/test/compiler/5091921/Test6931567.java.i
+data/build/linux/Makefile.i
 data/src/share/vm/ci/ciObjectFactory.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MemoryIndirectAddress.java.i
 data/src/cpu/sparc/vm/registerMap_sparc.hpp.i
+data/make/bsd/makefiles/arm.make.i
 data/src/share/tools/IdealGraphVisualizer/nbproject/platform.properties.i
 data/src/os_cpu/windows_x86/vm/unwind_windows_x86.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCBranchInstruction.java.i
@@ -853,7 +883,7 @@ data/agent/src/share/classes/sun/jvm/hotspot/code/PCDesc.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIntelX86.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/AuxSectionDefinitionsRecord.java.i
 data/src/share/tools/IdealGraphVisualizer/Settings/nbproject/platform.properties.i
-data/agent/src/share/classes/sun/jvm/hotspot/jdi/VoidTypeImpl.java.i
+data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/ScriptEngineAbstraction.java.i
 data/build/linux/makefiles/defs.make.i
 data/src/share/vm/utilities/dtrace.hpp.i
 data/src/share/vm/oops/oop.inline2.hpp.i
@@ -861,38 +891,44 @@ data/agent/src/share/classes/sun/jvm/hotspot/runtime/StackFrameStream.java.i
 data/src/share/vm/c1/c1_FrameMap.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Util/nbproject/platform.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RegisterDecoder.java.i
+data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/images/saveall.gif.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SaveDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/Format3ADecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9MOVrDecoder.java.i
 data/build/solaris/makefiles/reorder_COMPILER1_sparcv9.i
+data/src/cpu/zero/vm/stubGenerator_zero.cpp.i
 data/src/share/vm/runtime/simpleThresholdPolicy.hpp.i
-data/build/windows/projectfiles/kernel/vm.def.i
+data/test/compiler/6865031/Test.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/livejvm/CIntegerAccessor.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/ObjectHistogramPanel.java.i
-data/src/share/vm/compiler/abstractCompiler.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/NamedFieldIdentifier.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicJCharField.java.i
 data/src/share/tools/IdealGraphVisualizer/Difference/nbproject/project.properties.i
-data/test/compiler/6863155/Test6863155.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/RetData.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/SignatureInfo.java.i
-data/src/cpu/x86/vm/codeBuffer_x86.hpp.i
+data/src/cpu/zero/vm/depChecker_zero.cpp.i
 data/src/share/vm/oops/typeArrayOop.cpp.i
 data/src/share/vm/runtime/globals_extension.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/tools/soql/JSDB.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/ThreadGroupReferenceImpl.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveInstruction.java.i
 data/agent/src/share/native/jvmdi/sa.dsp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestDebugger.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/JShortField.java.i
 data/src/share/vm/services/attachListener.cpp.i
-data/src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp.i
+data/src/share/vm/opto/locknode.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/PermStat.java.i
 data/src/os/windows/vm/globals_windows.hpp.i
 data/make/jdk6_hotspot_distro.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_amd64/Win32AMD64JavaThreadPDAccess.java.i
-data/make/solaris/makefiles/mapfile-vers-TIERED.i
+data/src/cpu/sparc/vm/methodHandles_sparc.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/Array.java.i
+data/src/share/vm/libadt/vectset.cpp.i
 data/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp.i
-data/src/share/tools/MakeDeps/MakeDeps.java.i
+data/src/share/vm/ci/ciObjArrayKlassKlass.hpp.i
 data/src/cpu/sparc/vm/nativeInst_sparc.cpp.i
-data/src/share/tools/IdealGraphVisualizer/Filter/nbproject/suite.properties.i
+data/make/solaris/makefiles/sparc.make.i
 data/src/cpu/x86/vm/assembler_x86_32.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciInstance.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/UncommonTrapBlob.java.i
 data/src/share/tools/IdealGraphVisualizer/Settings/src/com/sun/hotspot/igv/settings/ViewPanel.form.i
 data/src/cpu/zero/vm/vmreg_zero.hpp.i
@@ -900,12 +936,12 @@ data/src/share/vm/services/dtraceAttacher.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeNewArray.java.i
 data/agent/make/heapdumpwindbg64.bat.i
 data/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp.i
+data/src/cpu/x86/vm/sharedRuntime_x86_64.cpp.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/FilterTopComponentWstcref.xml.i
 data/src/share/vm/interpreter/interpreterRuntime.hpp.i
 data/src/share/vm/gc_implementation/g1/g1MonitoringSupport.hpp.i
-data/src/share/vm/memory/oopFactory.cpp.i
 data/agent/src/os/win32/windbg/sawindbg.cpp.i
-data/src/share/vm/memory/generation.hpp.i
+data/src/os/bsd/vm/attachListener_bsd.cpp.i
 data/make/windows/makefiles/makedeps.make.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/BytecodeViewTopComponent.java.i
 data/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp.i
@@ -915,42 +951,49 @@ data/src/share/vm/runtime/handles.inline.hpp.i
 data/src/share/vm/gc_implementation/g1/g1MMUTracker.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/JBooleanField.java.i
 data/build/solaris/makefiles/reorder_CORE_i486.i
-data/src/share/vm/opto/stringopts.cpp.i
+data/test/compiler/6792161/Test6792161.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java.i
 data/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp.i
+data/test/compiler/7070134/words.i
 data/src/share/vm/opto/addnode.hpp.i
-data/src/share/vm/interpreter/bytecodeInterpreter.cpp.i
+data/src/share/vm/utilities/accessFlags.cpp.i
 data/test/compiler/7041100/Test7041100.java.i
+data/src/cpu/zero/vm/methodHandles_zero.hpp.i
+data/src/share/tools/launcher/wildcard.c.i
 data/make/windows/projectfiles/compiler1/vm.dsw.i
 data/agent/make/dumpsyspropsproc64.sh.i
-data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/CheckNode.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaObjArray.java.i
 data/src/os/solaris/vm/perfMemory_solaris.cpp.i
-data/src/share/vm/services/management.cpp.i
+data/test/compiler/6795362/Test6795362.java.i
 data/src/share/vm/runtime/sharedRuntime.hpp.i
-data/src/share/vm/runtime/stackValue.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicBitType.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/MachSafePointNode.java.i
+data/src/share/tools/ProjectCreator/FileFormatException.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSLibraries.java.i
-data/build/linux/Makefile.i
+data/agent/src/os/linux/proc_service.h.i
 data/src/share/vm/gc_implementation/shared/ageTable.cpp.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp.i
-data/src/share/vm/utilities/elfFile.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/SharedObject.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/jdi/ObjectReferenceImpl.java.i
+data/make/bsd/makefiles/ia64.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FMOVrInstruction.java.i
 data/src/os/linux/vm/os_linux.hpp.i
 data/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/nbproject/suite.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/x86/ProcX86ThreadFactory.java.i
+data/make/templates/gpl-header.i
 data/agent/make/pstackwindbg64.bat.i
-data/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp.i
+data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/ClusterIngoingConnection.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java.i
 data/src/share/vm/runtime/serviceThread.hpp.i
-data/src/share/vm/memory/genRemSet.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/FieldIdentifier.java.i
-data/test/compiler/6756768/Test6756768.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/DebugEvent.java.i
 data/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java.i
 data/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp.i
 data/make/linux/makefiles/jsig.make.i
-data/src/share/vm/shark/sharkType.hpp.i
 data/src/os/linux/vm/threadCritical_linux.cpp.i
 data/agent/make/ClosureFinder.java.i
-data/make/solaris/makefiles/mapfile-vers-COMPILER1.i
+data/src/share/vm/code/debugInfoRec.hpp.i
 data/src/cpu/x86/vm/c1_FrameMap_x86.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/InstructionDecoder.java.i
 data/src/share/vm/services/gcNotifier.cpp.i
@@ -964,11 +1007,11 @@ data/make/linux/makefiles/mapfile-vers-product.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/FloatTreeNodeAdapter.java.i
 data/agent/make/jstackproc.sh.i
 data/src/share/vm/adlc/formssel.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaString.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/ia64/WindbgIA64Thread.java.i
 data/build/linux/adlc_updater.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/actions/SaveAsAction.java.i
-data/src/share/tools/MakeDeps/WinGammaPlatformVC8.java.i
-data/src/share/tools/IdealGraphVisualizer/Bytecodes/nbproject/project.xml.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/AuxBfEfRecord.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PrivilegedReadWriteDecoder.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/images/graph.gif.i
 data/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp.i
@@ -976,37 +1019,41 @@ data/agent/src/share/classes/com/sun/java/swing/action/AlignLeftAction.java.i
 data/src/share/tools/launcher/java.h.i
 data/src/os/linux/vm/thread_linux.inline.hpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/JumpData.java.i
+data/test/compiler/7044738/Test7044738.java.i
 data/src/cpu/zero/vm/disassembler_zero.hpp.i
-data/test/compiler/6663848/Tester.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/memo/MemoizedLong.java.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp.i
 data/agent/make/permstatwindbg.bat.i
 data/src/share/vm/gc_implementation/shared/ageTable.hpp.i
-data/src/share/tools/IdealGraphVisualizer/Bytecodes/manifest.mf.i
+data/test/compiler/7070134/Test7070134.sh.i
 data/src/share/tools/IdealGraphVisualizer/README.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/DLL.java.i
-data/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp.i
-data/src/share/vm/gc_implementation/includeDB_gc_parNew.i
+data/make/windows/projectfiles/tiered/vm.dsw.i
+data/src/share/vm/runtime/dtraceJSDT.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolKlass.java.i
 data/src/share/vm/runtime/sharedRuntime.cpp.i
 data/src/share/vm/prims/jvmtiLib.xsl.i
 data/src/share/vm/oops/objArrayKlass.inline.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Settings/nbproject/project.xml.i
-data/src/share/vm/memory/defNewGeneration.hpp.i
-data/src/share/vm/utilities/stack.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciField.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFPArithmeticInstruction.java.i
-data/src/share/vm/oops/arrayOop.cpp.i
 data/src/cpu/x86/vm/registerMap_x86.hpp.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/manifest.mf.i
 data/agent/make/saenv64.sh.i
 data/src/share/vm/oops/compiledICHolderKlass.cpp.i
+data/make/bsd/makefiles/mapfile-vers-jsig.i
 data/src/share/vm/classfile/placeholders.hpp.i
-data/src/os/windows/vm/c1_globals_windows.hpp.i
+data/src/share/vm/classfile/classFileParser.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicFunctionType.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/FindByQueryPanel.java.i
-data/src/share/vm/classfile/verifier.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciObjectFactory.java.i
+data/src/os/bsd/vm/mutex_bsd.inline.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/BitMap.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/EditorFactory.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SpecialRegisters.java.i
+data/src/cpu/sparc/vm/globalDefinitions_sparc.hpp.i
+data/make/linux/makefiles/fastdebug.make.i
+data/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp.i
 data/src/share/vm/c1/c1_Compilation.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SubsectionTypes.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java.i
@@ -1015,9 +1062,12 @@ data/agent/src/share/classes/images/toolbarButtonGraphics/general/History24.gif.
 data/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp.i
 data/agent/test/jdi/sagclient.java.i
 data/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp.i
+data/agent/src/os/bsd/elfmacros.h.i
 data/src/share/vm/adlc/Test/i486.ad.i
 data/src/share/vm/oops/oop.cpp.i
 data/src/cpu/sparc/vm/cppInterpreter_sparc.hpp.i
+data/make/bsd/makefiles/sa.make.i
+data/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp.i
 data/src/share/vm/ci/ciType.hpp.i
 data/build/solaris/makefiles/dtrace.make.i
 data/agent/src/scripts/start-rmiregistry.bat.i
@@ -1025,26 +1075,33 @@ data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/x86/ProcX86ThreadCont
 data/src/cpu/zero/vm/icBuffer_zero.cpp.i
 data/src/share/vm/memory/compactingPermGenGen.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/VoidType.java.i
-data/src/share/vm/services/memoryPool.cpp.i
+data/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp.i
 data/agent/src/os/solaris/Makefile.i
-data/src/share/vm/gc_implementation/g1/heapRegion.hpp.i
+data/make/bsd/makefiles/dtrace.make.i
 data/make/solaris/makefiles/vm.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeGetField.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/ConcurrentMarkSweepGeneration.java.i
-data/src/os_cpu/windows_x86/vm/assembler_windows_x86_32.cpp.i
-data/src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp.i
-data/test/compiler/6659207/Test.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassDump.java.i
+data/src/os/solaris/vm/os_solaris.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/CallRuntimeNode.java.i
+data/agent/make/pstackwindbg.bat.i
+data/test/compiler/7088020/Test7088020.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RotateInstruction.java.i
+data/src/os_cpu/bsd_x86/vm/thread_bsd_x86.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/action/HSDBActionManager.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/MachReturnNode.java.i
+data/src/share/vm/gc_interface/collectedHeap.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaHeap.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/JInfo.java.i
 data/agent/make/soqlproc64.sh.i
-data/agent/make/pstackproc.sh.i
+data/src/os/solaris/vm/os_solaris.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/action/ShowAction.java.i
 data/src/share/tools/MakeDeps/MetroWerksMacPlatform.java.i
 data/src/share/tools/IdealGraphVisualizer/Util/nbproject/project.properties.i
 data/make/linux/platform_arm.i
-data/make/solaris/makefiles/reorder_COMPILER2_sparc.i
+data/agent/make/heapdumpproc64.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/CLHSDB.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/Block.java.i
 data/make/windows/jvmexp_g.lcf.i
 data/make/Makefile.i
 data/src/cpu/zero/vm/interpreter_zero.cpp.i
@@ -1053,163 +1110,160 @@ data/agent/doc/jsdb.html.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/ConstantOopReadValue.java.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/general/History16.gif.i
 data/src/share/vm/runtime/frame.hpp.i
-data/src/share/vm/shark/sharkTopLevelBlock.hpp.i
+data/src/os_cpu/bsd_x86/vm/copy_bsd_x86.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/SpaceClosure.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86LogicInstruction.java.i
 data/build/solaris/makefiles/makedeps.make.i
 data/src/share/vm/prims/jni.cpp.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/layer.xml.i
 data/src/share/vm/memory/specialized_oop_closures.cpp.i
-data/test/compiler/6894807/Test6894807.sh.i
+data/agent/src/share/classes/sun/jvm/hotspot/prims/JvmtiExport.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/Register.java.i
 data/build/solaris/build.sh.i
 data/src/share/vm/interpreter/bytecodes.cpp.i
 data/.hgtags.i
 data/build/windows/projectfiles/core/Makefile.i
-data/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.hpp.i
-data/src/share/vm/adlc/filebuff.hpp.i
-data/make/templates/bsd-header.i
-data/src/share/vm/gc_implementation/g1/sparsePRT.cpp.i
+data/src/cpu/sparc/vm/c1_Defs_sparc.hpp.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/extendedColor.filter.i
-data/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp.i
-data/src/share/vm/gc_implementation/g1/ptrQueue.inline.hpp.i
-data/agent/src/share/classes/images/toolbarButtonGraphics/general/ZoomIn24.gif.i
+data/src/os_cpu/bsd_zero/vm/os_bsd_zero.hpp.i
+data/agent/src/os/linux/ps_core.c.i
+data/src/share/vm/services/classLoadingService.cpp.i
+data/src/share/vm/interpreter/cppInterpreterGenerator.hpp.i
+data/src/os/bsd/vm/decoder_bsd.cpp.i
 data/src/share/vm/oops/klass.inline.hpp.i
-data/test/compiler/5091921/Test6559156.java.i
 data/src/share/vm/interpreter/interpreterRuntime.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/Filter.java.i
-data/src/share/vm/memory/universe.hpp.i
 data/src/share/vm/gc_implementation/g1/g1MMUTracker.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/PermGen.java.i
 data/src/share/vm/opto/library_call.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/NoSuchSymbolException.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/cInterpreter.java.i
-data/src/share/vm/opto/idealKit.cpp.i
 data/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.i
 data/src/share/vm/oops/markOop.inline.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/ObjectVisitor.java.i
 data/src/share/vm/oops/typeArrayKlassKlass.cpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.hpp.i
-data/src/share/vm/memory/specialized_oop_closures.hpp.i
+data/make/bsd/makefiles/sparcv9.make.i
+data/src/cpu/sparc/vm/vm_version_sparc.cpp.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/split.filter.i
 data/agent/src/os/win32/Message.hpp.i
-data/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp.i
+data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/Phase.java.i
 data/build/solaris/makefiles/hp.make.i
-data/make/linux/makefiles/fastdebug.make.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFloatRegister.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/amd64/WindbgAMD64ThreadFactory.java.i
 data/src/share/vm/interpreter/templateInterpreter.hpp.i
 data/agent/src/share/classes/com/sun/java/swing/ui/TabsDlg.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/ArrayTypeImpl.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ArithmeticDecoder.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/SysPropsPanel.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/interpreter/LookupswitchPair.java.i
+data/src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/AndSelector.java.i
-data/src/share/vm/memory/barrierSet.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/CellTypeStateList.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp.i
-data/src/share/vm/utilities/bitMap.hpp.i
 data/.jcheck/conf.i
 data/test/compiler/6879902/Test6879902.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/MethodDataKlass.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSPublic.java.i
-data/src/share/vm/services/classLoadingService.cpp.i
 data/src/cpu/sparc/vm/cppInterpreter_sparc.cpp.i
-data/test/compiler/6823354/Test6823354.java.i
+data/src/share/vm/ci/ciArrayKlassKlass.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/nbproject/suite.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPInstructionDecoder.java.i
 data/src/share/vm/runtime/signature.hpp.i
-data/make/linux/makefiles/sparcv9.make.i
-data/src/share/vm/classfile/symbolTable.cpp.i
-data/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/ObjectHistogram.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/Address.java.i
+data/src/os_cpu/bsd_zero/vm/thread_bsd_zero.cpp.i
+data/src/share/vm/ci/ciField.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ObjectHistogram.java.i
 data/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/PrimitiveValueImpl.java.i
 data/src/share/vm/code/debugInfoRec.cpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/ExportCookie.java.i
+data/make/bsd/platform_sparc.i
 data/src/cpu/zero/vm/sharkFrame_zero.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ShiftDecoder.java.i
 data/agent/make/finalizerinfowindbg64.bat.i
-data/src/share/vm/utilities/histogram.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/AbstractInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/TemplateType.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/ContiguousSpace.java.i
 data/src/share/vm/shark/sharkRuntime.hpp.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/InterClusterConnection.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeInstanceOf.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/NodeFindAction.java.i
 data/build/windows/makefiles/sa.make.i
 data/src/share/tools/IdealGraphVisualizer/NetworkConnection/build.xml.i
 data/src/share/vm/utilities/histogram.hpp.i
 data/src/share/vm/interpreter/templateTable.cpp.i
-data/build/windows/makefiles/adlc.make.i
+data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/services/GroupOrganizer.java.i
 data/src/cpu/x86/vm/interpreter_x86_64.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMap.java.i
-data/src/share/vm/opto/indexSet.hpp.i
 data/make/hotspot_version.i
 data/src/share/vm/utilities/constantTag.cpp.i
-data/make/windows/makefiles/sa.make.i
+data/src/share/vm/gc_implementation/g1/survRateGroup.hpp.i
+data/src/share/vm/opto/postaloc.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/AuxFileRecord.java.i
-data/test/compiler/6689060/Test.java.i
+data/src/cpu/x86/vm/register_x86.hpp.i
 data/src/share/vm/prims/jvmtiUtil.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/ProgressiveHeapVisitor.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64Frame.java.i
 data/src/share/vm/c1/c1_ValueSet.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescription.java.i
 data/src/cpu/x86/vm/sharedRuntime_x86_32.cpp.i
+data/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp.i
 data/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp.i
 data/src/share/vm/shark/sharkBlock.hpp.i
 data/src/share/vm/runtime/statSampler.cpp.i
-data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/images/delete.gif.i
+data/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp.i
 data/src/cpu/zero/vm/entryFrame_zero.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/RMIHelper.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/ObjectVisitor.java.i
 data/src/share/vm/runtime/icache.cpp.i
-data/src/cpu/zero/vm/depChecker_zero.cpp.i
-data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/actions/RemoveFilterAction.java.i
+data/src/cpu/x86/vm/codeBuffer_x86.hpp.i
+data/src/share/vm/c1/c1_ValueType.cpp.i
 data/src/share/vm/compiler/abstractCompiler.cpp.i
 data/src/share/vm/interpreter/bytecodeStream.cpp.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/ControlFlowTopComponentWstcref.xml.i
 data/src/os_cpu/windows_x86/vm/prefetch_windows_x86.inline.hpp.i
-data/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp.i
+data/src/cpu/sparc/vm/depChecker_sparc.hpp.i
 data/agent/src/share/lib/maf-1_0.jar.i
 data/src/share/vm/oops/instanceOop.hpp.i
 data/src/share/vm/utilities/growableArray.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/MethodKlass.java.i
-data/agent/src/share/classes/com/sun/java/swing/ui/SplashScreen.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9WriteInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/tree/EnumTreeNodeAdapter.java.i
 data/agent/src/os/win32/windbg/Makefile.i
+data/agent/src/os/bsd/BsdDebuggerLocal.c.i
 data/src/share/vm/prims/nativeLookup.cpp.i
 data/src/share/vm/runtime/safepoint.hpp.i
 data/src/share/vm/runtime/timer.cpp.i
-data/build/linux/makefiles/jsig.make.i
-data/src/share/vm/oops/methodDataKlass.hpp.i
-data/src/share/vm/classfile/dictionary.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/tools/soql/JSDB.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9RdprDecoder.java.i
 data/src/cpu/x86/vm/bytecodes_x86.cpp.i
 data/src/share/vm/memory/compactPermGen.hpp.i
-data/src/share/vm/gc_implementation/g1/concurrentZFThread.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeJsr.java.i
 data/src/share/vm/gc_implementation/shared/hSpaceCounters.cpp.i
 data/src/share/vm/memory/iterator.cpp.i
 data/src/os_cpu/linux_x86/vm/copy_linux_x86.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeGotoW.java.i
 data/agent/src/share/classes/com/sun/java/swing/action/ViewMenu.java.i
-data/src/share/vm/ci/ciUtilities.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/jdi/ConcreteMethodImpl.java.i
+data/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/BytecodeNode.java.i
-data/src/share/vm/opto/chaitin.hpp.i
 data/src/share/vm/memory/allocation.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/SelectBytecodesCookie.java.i
 data/src/share/tools/IdealGraphVisualizer/Difference/nbproject/platform.properties.i
 data/src/share/tools/IdealGraphVisualizer/Layout/nbproject/build-impl.xml.i
 data/agent/test/jdi/jstack.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicDebugEvent.java.i
+data/src/share/vm/runtime/fieldDescriptor.cpp.i
 data/src/os_cpu/linux_x86/vm/thread_linux_x86.hpp.i
-data/agent/make/start-debug-server-proc64.sh.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/ScriptObject.java.i
 data/src/os/linux/vm/jvm_linux.h.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ExternalVFrame.java.i
 data/src/cpu/x86/vm/relocInfo_x86.cpp.i
 data/src/os/linux/vm/globals_linux.hpp.i
-data/src/share/vm/oops/symbol.cpp.i
+data/make/linux/makefiles/ppc.make.i
 data/src/cpu/sparc/vm/vmreg_sparc.cpp.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/text/AlignRight24.gif.i
-data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogEvent.java.i
 data/src/share/vm/oops/oop.hpp.i
-data/src/share/vm/shark/sharkFunction.cpp.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/expand.gif.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/ConnectionAnchor.java.i
 data/src/share/vm/shark/sharkState.cpp.i
 data/src/cpu/zero/vm/disassembler_zero.cpp.i
@@ -1217,15 +1271,15 @@ data/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java.i
 data/src/share/vm/oops/symbolKlass.cpp.i
 data/src/share/vm/prims/forte.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFFileParser.java.i
-data/src/share/vm/opto/superword.cpp.i
-data/src/share/vm/prims/jniFastGetField.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/ArithmeticInstruction.java.i
-data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/JavaSE6ScriptEngine.java.i
+data/src/share/vm/prims/jvm.cpp.i
+data/test/runtime/7051189/Xchecksig.sh.i
 data/src/share/vm/prims/jni_md.h.i
 data/src/share/vm/oops/methodKlass.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/SafePointNode.java.i
 data/agent/src/os/win32/Reaper.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/AddressVisitor.java.i
-data/src/share/vm/opto/locknode.cpp.i
+data/src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp.i
 data/test/compiler/6857159/Test6857159.sh.i
 data/src/share/vm/runtime/fieldType.hpp.i
 data/src/os/solaris/launcher/java_md.c.i
@@ -1233,78 +1287,82 @@ data/agent/make/jstackwindbg64.bat.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RestoreDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicArrayType.java.i
 data/src/share/vm/opto/graphKit.hpp.i
-data/src/cpu/sparc/vm/c2_globals_sparc.hpp.i
+data/src/os/posix/launcher/java_md.c.i
 data/agent/src/os/solaris/dbx/README.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicIndexableFieldIdentifier.java.i
 data/agent/make/jhistoproc64.sh.i
-data/src/share/vm/ci/ciArrayKlass.cpp.i
-data/test/compiler/6795362/Test6795362.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/code/DeoptimizationBlob.java.i
 data/src/share/vm/services/serviceUtil.hpp.i
 data/src/os_cpu/linux_x86/vm/linux_x86_32.s.i
 data/agent/src/os/win32/LockableList.hpp.i
+data/make/bsd/platform_amd64.suncc.i
 data/src/share/vm/shark/sharkInvariants.cpp.i
+data/agent/make/clhsdbproc64.sh.i
 data/agent/make/start-rmiregistry.bat.i
 data/agent/make/clhsdbproc.sh.i
 data/src/share/vm/utilities/sizes.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/ValueImpl.java.i
 data/agent/make/heapsumwindbg.bat.i
-data/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java.i
+data/src/os_cpu/bsd_x86/vm/os_bsd_x86.hpp.i
 data/src/os/solaris/vm/hpi_solaris.cpp.i
+data/src/share/vm/memory/genRemSet.inline.hpp.i
 data/make/solaris/makefiles/reorder_CORE_sparcv9.i
 data/src/share/vm/memory/heap.cpp.i
-data/src/os_cpu/solaris_x86/vm/solaris_x86_32.s.i
-data/src/share/vm/libadt/vectset.cpp.i
-data/src/share/vm/c1/c1_ValueSet.cpp.i
+data/make/solaris/makefiles/mapfile-vers-TIERED.i
+data/src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp.i
+data/src/cpu/zero/vm/templateInterpreter_zero.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/Callable.java.i
 data/build/solaris/makefiles/reorder_COMPILER1_i486.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/GraphDocument.java.i
-data/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/Vertex.java.i
-data/test/compiler/6823453/Test.java.i
 data/src/share/vm/runtime/objectMonitor.cpp.i
-data/src/share/vm/prims/jvmtiTrace.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebugger.java.i
 data/make/templates/gpl-cp-header.i
 data/src/share/vm/opto/machnode.hpp.i
 data/make/solaris/makefiles/reorder_TIERED_amd64.i
 data/agent/src/share/classes/sun/jvm/hotspot/gc_interface/CollectedHeap.java.i
 data/build/windows/projectfiles/compiler2/ADLCompiler.dsw.i
+data/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeJmp.java.i
-data/make/solaris/makefiles/reorder_COMPILER2_amd64.i
-data/src/share/vm/ci/ciObjArrayKlassKlass.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCReturnInstruction.java.i
+data/src/share/vm/runtime/globals.cpp.i
 data/src/share/vm/prims/jvmtiTrace.hpp.i
-data/build/solaris/makefiles/sparcv9.make.i
-data/src/share/vm/shark/sharkContext.hpp.i
+data/src/cpu/zero/vm/copy_zero.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/SymbolTable.java.i
 data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/nbproject/project.properties.i
-data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/SplitFilter.java.i
+data/build/windows/makefiles/jvmti.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/CMSPermGenGen.java.i
-data/src/share/vm/runtime/extendedPC.hpp.i
-data/src/share/vm/asm/assembler.hpp.i
+data/build/solaris/makefiles/core.make.i
+data/make/linux/makefiles/product.make.i
 data/src/share/vm/oops/methodOop.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLogicInstruction.java.i
 data/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/Debugger.java.i
-data/src/os_cpu/windows_x86/vm/os_windows_x86.hpp.i
+data/src/share/vm/runtime/advancedThresholdPolicy.hpp.i
 data/src/share/tools/MakeDeps/FileList.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/zoomout.gif.i
 data/src/share/vm/gc_implementation/g1/g1AllocRegion.inline.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/ObjArrayKlassKlass.java.i
+data/src/share/vm/asm/assembler.hpp.i
+data/agent/src/os/bsd/libproc.h.i
 data/src/share/vm/gc_implementation/shared/gcStats.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/SymbolFinder.java.i
 data/src/os/solaris/vm/interfaceSupport_solaris.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCNoopInstruction.java.i
 data/src/os_cpu/linux_x86/vm/thread_linux_x86.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThread.java.i
 data/src/share/vm/runtime/atomic.cpp.i
-data/src/cpu/zero/vm/cppInterpreter_zero.cpp.i
+data/agent/src/os/bsd/libproc_impl.c.i
+data/test/compiler/6775880/Test.java.i
 data/src/cpu/x86/vm/vm_version_x86_64.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd/BsdSignals.java.i
 data/agent/src/os/win32/IOBuf.hpp.i
-data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLParser.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSOffsetMap16.java.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/Bundle.properties.i
 data/src/share/vm/gc_implementation/g1/heapRegionSet.hpp.i
 data/make/linux/makefiles/launcher.make.i
 data/agent/make/dumpsyspropswindbg.bat.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/GraphNode.java.i
-data/build/solaris/makefiles/compiler2.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeStore.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/shared/ImmutableSpace.java.i
 data/build/windows/README.i
 data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/RangeSlider.java.i
@@ -1315,13 +1373,14 @@ data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Inpu
 data/agent/src/share/classes/images/toolbarButtonGraphics/general/Open24.gif.i
 data/src/share/vm/shark/sharkMemoryManager.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Instruction.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPopDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSPublicSym.java.i
 data/agent/make/saenv.sh.i
-data/src/share/vm/asm/assembler.cpp.i
 data/src/os_cpu/linux_x86/vm/linux_x86_64.s.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/x86/RemoteX86ThreadContext.java.i
 data/src/share/vm/gc_implementation/g1/concurrentMarkThread.inline.hpp.i
 data/src/share/tools/hsdis/hsdis.c.i
+data/make/bsd/makefiles/adjust-mflags.sh.i
 data/agent/make/permstatproc64.sh.i
 data/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp.i
@@ -1329,7 +1388,8 @@ data/src/os/solaris/vm/c2_globals_solaris.hpp.i
 data/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp.i
 data/src/share/vm/utilities/top.hpp.i
 data/src/share/vm/classfile/classLoader.cpp.i
-data/make/solaris/makefiles/reorder_COMPILER1_amd64.i
+data/src/os_cpu/bsd_zero/vm/vm_version_bsd_zero.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50TypeEnums.java.i
 data/src/share/vm/opto/locknode.hpp.i
 data/src/share/vm/interpreter/templateInterpreterGenerator.hpp.i
 data/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp.i
@@ -1340,104 +1400,110 @@ data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/f
 data/agent/src/share/classes/sun/jvm/hotspot/code/Stub.java.i
 data/src/share/vm/gc_implementation/g1/ptrQueue.cpp.i
 data/build/linux/makefiles/mapfile-vers-jsig.i
-data/test/compiler/5091921/Test6753639.java.i
-data/src/share/vm/ci/ciMethodHandle.cpp.i
-data/src/os/linux/vm/objectMonitor_linux.cpp.i
-data/agent/src/os/win32/Monitor.hpp.i
+data/src/share/vm/prims/privilegedStack.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSSegName.java.i
+data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp.i
+data/make/templates/bsd-header.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/CIntegerType.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgAddress.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/JNITypeParser.java.i
 data/src/share/vm/memory/referenceProcessor.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSELogicalDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Helper.java.i
+data/make/bsd/makefiles/optimized.make.i
 data/test/compiler/6795465/Test6795465.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/TrapDecoder.java.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/Parser.java.i
+data/test/runtime/6819213/TestBootNativeLibraryPath.java.i
 data/src/share/vm/gc_implementation/shared/markSweep.hpp.i
 data/src/share/vm/classfile/dictionary.hpp.i
-data/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.cpp.i
+data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputBlock.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ConstructionException.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaKlass.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/EditorCommands.java.i
 data/src/share/vm/utilities/intHisto.cpp.i
-data/make/linux/makefiles/debug.make.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRegisterType.java.i
-data/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp.i
+data/src/share/tools/LogCompilation/Makefile.i
+data/agent/src/os/win32/SwDbgSrv.dsw.i
+data/agent/src/os/linux/libproc.h.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64FloatRegisters.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/types/WrongTypeException.java.i
 data/src/share/tools/IdealGraphVisualizer/RhinoScriptEngineProxy/nbproject/build-impl.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java.i
 data/src/share/tools/IdealGraphVisualizer/Settings/src/com/sun/hotspot/igv/settings/ViewOptionsPanelController.java.i
 data/src/cpu/zero/vm/shark_globals_zero.hpp.i
-data/src/share/vm/runtime/sharedRuntimeTrig.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9ReadDecoder.java.i
 data/src/cpu/x86/vm/x86_64.ad.i
-data/src/share/vm/prims/unsafe.cpp.i
 data/src/os/linux/vm/os_linux.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallRuntimeNode.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/blocks.gif.i
 data/src/share/vm/classfile/placeholders.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicVoidType.java.i
-data/make/windows/makefiles/top.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/JVMDIClassStatus.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/Characteristics.java.i
 data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/Bundle.properties.i
-data/src/share/vm/oops/constMethodOop.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/LogicalDecoder.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/Method.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/TypeArrayKlassKlass.java.i
-data/src/share/vm/gc_implementation/g1/heapRegion.inline.hpp.i
+data/test/compiler/6909839/Test6909839.java.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/PrevDiagramAction.java.i
+data/src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFloatRegisters.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_ia64/Win32IA64JavaThreadPDAccess.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/ClosestSymbol.java.i
 data/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecode.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86RegisterMap.java.i
-data/src/os/windows/vm/objectMonitor_windows.cpp.i
-data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/remove.filter.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9WrprDecoder.java.i
+data/src/share/vm/opto/ifnode.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/types/Type.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86RicochetFrame.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java.i
 data/src/share/vm/utilities/globalDefinitions.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFProgramHeader.java.i
-data/src/os/windows/vm/interfaceSupport_windows.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceStoreDecoder.java.i
+data/src/share/vm/shark/sharkCacheDecache.hpp.i
+data/src/share/vm/opto/parse.hpp.i
+data/src/cpu/x86/vm/vmStructs_x86.hpp.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/general/Information16.gif.i
-data/build/solaris/platform_sparcv9.i
-data/test/compiler/6792161/Test6792161.java.i
+data/src/os_cpu/windows_x86/vm/os_windows_x86.hpp.i
+data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/src/com/sun/hotspot/igv/svg/Bundle.properties.i
+data/make/solaris/makefiles/mapfile-vers-jvm_dtrace.i
 data/src/share/vm/runtime/icache.hpp.i
 data/make/solaris/makefiles/launcher.make.i
-data/src/share/vm/opto/postaloc.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC32Bit.java.i
+data/build/windows/makefiles/shared.make.i
 data/src/share/tools/IdealGraphVisualizer/Data/nbproject/project.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/Bytes.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java.i
+data/make/bsd/makefiles/hp.make.i
+data/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SrcModLineNumberMap.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/jdi/ValueContainer.java.i
+data/build/windows/makefiles/generated.make.i
 data/agent/test/jdi/SASanityChecker.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/BasicObjectLock.java.i
+data/src/share/vm/opto/matcher.cpp.i
 data/src/cpu/x86/vm/assembler_x86.hpp.i
-data/test/compiler/7009231/Test7009231.java.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/nbproject/suite.properties.i
-data/test/Makefile.i
-data/agent/src/os/win32/ioUtils.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/PerfMemory.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FPop2Decoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCCallInstruction.java.i
-data/build/linux/makefiles/hp.make.i
-data/agent/make/clhsdbwindbg64.bat.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCRicochetFrame.java.i
+data/src/share/vm/classfile/vmSymbols.hpp.i
 data/src/share/vm/utilities/preserveException.hpp.i
+data/agent/src/os/bsd/mapfile.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciVirtualCallData.java.i
 data/agent/src/os/linux/mapfile.i
 data/make/solaris/makefiles/jvmti.make.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FloatBranchDecoder.java.i
+data/src/share/vm/oops/klassKlass.hpp.i
 data/src/os/solaris/launcher/java.c.i
 data/test/compiler/6769124/TestArrayCopy6769124.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/CallDynamicJavaNode.java.i
+data/agent/src/share/classes/com/sun/java/swing/action/SaveAsAction.java.i
 data/src/share/vm/opto/phase.cpp.i
 data/src/share/vm/runtime/objectMonitor.hpp.i
-data/src/share/vm/services/heapDumper.cpp.i
+data/src/os/linux/vm/dtraceJSDT_linux.cpp.i
 data/src/share/vm/c1/c1_Runtime1.cpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/EditorTopComponent.form.i
+data/src/share/vm/services/heapDumper.hpp.i
 data/build/linux/makefiles/sparcWorks.make.i
-data/src/os/posix/launcher/java_md.h.i
 data/src/cpu/zero/vm/bytes_zero.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/Operand.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86IllegalInstruction.java.i
 data/src/share/vm/opto/buildOopMap.cpp.i
-data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/images/add.gif.i
-data/agent/src/share/classes/com/sun/java/swing/ui/CommonToolBar.java.i
-data/test/runtime/6626217/IFace.java.i
+data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogEvent.java.i
 data/src/share/vm/opto/rootnode.cpp.i
 data/src/share/vm/opto/cfgnode.hpp.i
-data/src/share/vm/utilities/copy.cpp.i
 data/src/share/vm/prims/jvmtiAgentThread.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionTwosComplement.java.i
 data/src/share/vm/utilities/globalDefinitions_visCPP.hpp.i
@@ -1445,133 +1511,142 @@ data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicGlobalSym.
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/OutlineTopComponent.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp.i
 data/make/linux/makefiles/compiler1.make.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicBitType.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/IntField.java.i
+data/src/os_cpu/solaris_x86/vm/solaris_x86_64.il.i
+data/agent/test/jdi/multivm.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicCDebugInfoDataBase.java.i
 data/test/runtime/6626217/bug_21227.java.i
-data/build/windows/build_vm_def.sh.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/VMReg.java.i
+data/src/share/vm/ci/ciInstanceKlassKlass.cpp.i
+data/src/os/linux/vm/c1_globals_linux.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/DLL.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxThread.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/types/Field.java.i
-data/agent/src/share/classes/images/toolbarButtonGraphics/general/Help16.gif.i
+data/src/share/vm/runtime/relocator.hpp.i
+data/src/share/vm/memory/cardTableModRefBS.cpp.i
+data/src/share/vm/services/management.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CallDecoder.java.i
 data/src/share/vm/gc_implementation/g1/concurrentZFThread.hpp.i
 data/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp.i
-data/src/share/tools/IdealGraphVisualizer/NetworkConnection/nbproject/genfiles.properties.i
+data/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/CodeCache.java.i
-data/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp.i
-data/src/share/vm/code/compressedStream.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/StackValueCollection.java.i
-data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/build.xml.i
+data/src/share/vm/runtime/relocator.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/jdi/VMModifiers.java.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp.i
 data/src/cpu/zero/vm/templateTable_zero.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SymbolIterator.java.i
-data/src/share/vm/prims/jvmtiRedefineClasses.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/JVMState.java.i
 data/src/share/vm/utilities/elfFile.hpp.i
 data/src/share/vm/oops/klassKlass.cpp.i
 data/src/os/solaris/dtrace/hs_private.d.i
 data/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp.i
 data/src/share/tools/IdealGraphVisualizer/NetworkConnection/manifest.mf.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThreadContextFactory.java.i
 data/make/jprt.properties.i
 data/src/share/vm/gc_implementation/shared/vmGCOperations.cpp.i
-data/make/windows/projectfiles/tiered/vm.def.i
-data/src/share/vm/oops/klass.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MOVccInstruction.java.i
+data/src/share/vm/prims/forte.cpp.i
 data/src/cpu/x86/vm/templateInterpreter_x86_64.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SaveDecoder.java.i
+data/src/share/vm/gc_implementation/includeDB_gc_parNew.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/sparc/SPARCThreadContext.java.i
-data/src/share/vm/utilities/workgroup.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/NamedFieldIdentifier.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/ObjectHistogramPanel.java.i
 data/agent/make/README.txt.i
+data/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapStream.java.i
+data/make/bsd/makefiles/jvmti.make.i
 data/test/runtime/6626217/Loader2.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/Array.java.i
-data/make/solaris/makefiles/sparc.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_amd64/Win32AMD64JavaThreadPDAccess.java.i
+data/src/share/tools/IdealGraphVisualizer/Filter/nbproject/suite.properties.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/InstanceConstructor.java.i
 data/src/share/vm/opto/output.hpp.i
 data/src/share/vm/c1/c1_IR.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSSegName.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciType.java.i
+data/src/share/vm/opto/stringopts.cpp.i
 data/build/solaris/makefiles/mapfile-vers-jvm_dtrace.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SpecialStoreDecoder.java.i
 data/src/cpu/x86/vm/nativeInst_x86.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegisterAddress.java.i
 data/src/share/vm/ci/ciObject.cpp.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/images/plus.gif.i
-data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/ClusterIngoingConnection.java.i
-data/make/linux/makefiles/rules.make.i
+data/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp.i
+data/test/compiler/6756768/Test6756768.java.i
 data/build/windows/projectfiles/core/vm.def.i
 data/src/share/vm/ci/ciInstanceKlass.cpp.i
 data/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/CallJavaNode.java.i
 data/src/cpu/zero/vm/assembler_zero.cpp.i
 data/test/compiler/6837094/Test.java.i
-data/src/share/vm/memory/heapInspection.hpp.i
-data/make/windows/projectfiles/tiered/vm.dsw.i
+data/src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp.i
+data/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp.i
+data/make/bsd/makefiles/vm.make.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/matchingFlags.filter.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ReturnInstruction.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceLdstubDecoder.java.i
 data/src/share/vm/opto/node.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/ThreadInfoPanel.java.i
-data/src/share/vm/ci/ciFlags.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapGXLWriter.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RegisterIndirectAddress.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/parallelScavenge/PSYoungGen.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/images/diff.gif.i
-data/src/share/vm/runtime/globals.cpp.i
 data/src/share/vm/runtime/mutexLocker.hpp.i
-data/build/solaris/makefiles/fastdebug.make.i
+data/agent/src/share/classes/com/sun/java/swing/action/SaveAction.java.i
 data/agent/make/jhistowindbg.bat.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/CompressedWriteStream.java.i
 data/agent/src/share/classes/com/sun/java/swing/action/AlignRightAction.java.i
-data/test/compiler/5091921/Test6196102.java.i
-data/test/compiler/6987555/Test6987555.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/jdi/ClassTypeImpl.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/vmSymbols.java.i
 data/src/share/vm/memory/defNewGeneration.cpp.i
 data/src/share/vm/classfile/systemDictionary.cpp.i
 data/src/share/vm/gc_interface/collectedHeap.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/SignatureIterator.java.i
+data/src/share/vm/runtime/orderAccess.hpp.i
+data/agent/src/os/win32/Monitor.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/Sym.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/amd64/WindbgAMD64ThreadFactory.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/interpreter/LookupswitchPair.java.i
-data/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFloatRegister.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ArithmeticDecoder.java.i
+data/agent/src/share/classes/images/toolbarButtonGraphics/text/AlignCenter16.gif.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_x86/Win32X86JavaThreadPDAccess.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/Node_List.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/Field.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/AbstractInstruction.java.i
+data/src/share/vm/utilities/histogram.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/EdenSpace.java.i
 data/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/BadOopTreeNodeAdapter.java.i
 data/src/share/tools/IdealGraphVisualizer/Settings/src/com/sun/hotspot/igv/settings/settings.gif.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/BooleanField.java.i
-data/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp.i
+data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/images/delete.gif.i
 data/build/solaris/makefiles/debug.make.i
-data/src/cpu/sparc/vm/depChecker_sparc.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSFileIndex.java.i
+data/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp.i
+data/src/share/vm/opto/bytecodeInfo.cpp.i
 data/src/share/vm/runtime/rframe.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/AssertionFailure.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/action/FindClassesAction.java.i
+data/src/share/vm/classfile/dictionary.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseRegAlloc.java.i
 data/src/share/vm/memory/compactingPermGenGen.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCAtomicLoadStoreInstruction.java.i
 data/make/solaris/makefiles/rules.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/OopMapForCacheEntry.java.i
-data/make/linux/makefiles/ppc.make.i
+data/src/share/vm/oops/symbol.cpp.i
 data/make/linux/platform_sparcv9.i
 data/src/share/vm/gc_implementation/shared/immutableSpace.hpp.i
 data/src/share/vm/compiler/compileLog.cpp.i
 data/src/share/vm/opto/graphKit.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/code/DeoptimizationBlob.java.i
+data/src/share/vm/ci/ciArrayKlass.cpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.hpp.i
-data/make/windows/projectfiles/tiered/Makefile.i
 data/src/share/tools/IdealGraphVisualizer/Data/nbproject/build-impl.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/CMSBitMap.java.i
-data/build/linux/README.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCReturnInstruction.java.i
-data/src/cpu/sparc/vm/interpreter_sparc.cpp.i
-data/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp.i
+data/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp.i
+data/make/solaris/makefiles/reorder_COMPILER2_amd64.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/action/InspectAction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/Hashtable.java.i
-data/test/compiler/6775880/Test.java.i
-data/build/solaris/makefiles/mapfile-vers-CORE.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSOffsetMap16.java.i
+data/agent/src/os/win32/README-commands.txt.i
+data/src/cpu/zero/vm/cppInterpreter_zero.cpp.i
+data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLParser.java.i
 data/src/share/tools/IdealGraphVisualizer/RhinoScriptEngineProxy/src/META-INF/services/com.sun.hotspot.igv.filter.ScriptEngineAbstraction.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/amd64/ProcAMD64ThreadContext.java.i
-data/src/share/vm/oops/klassVtable.cpp.i
+data/make/windows/projectfiles/core/vm.def.i
 data/test/compiler/6895383/Test.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgAddress.java.i
-data/src/share/vm/opto/escape.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/CallNode.java.i
+data/make/solaris/makefiles/reorder_TIERED_i486.i
+data/test/compiler/7068051/Test7068051.sh.i
+data/src/share/tools/IdealGraphVisualizer/Bytecodes/manifest.mf.i
+data/src/share/vm/gc_implementation/shared/gSpaceCounters.hpp.i
 data/make/solaris/makefiles/reorder_COMPILER2_sparcv9.i
-data/src/share/vm/c1/c1_Canonicalizer.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFormat3AInstruction.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/nbproject/genfiles.properties.i
 data/src/share/vm/ci/ciUtilities.hpp.i
 data/src/share/vm/utilities/workgroup.hpp.i
@@ -1589,38 +1664,41 @@ data/agent/src/share/classes/sun/jvm/hotspot/asm/PCRelativeAddress.java.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp.i
 data/src/share/vm/memory/space.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/x86/LinuxX86CFrame.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/Generation.java.i
+data/src/os/posix/launcher/java_md.h.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/images/link.gif.i
-data/src/share/vm/prims/jvmtiEnvThreadState.hpp.i
+data/src/share/vm/utilities/copy.cpp.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentGCThread.cpp.i
 data/agent/src/os/solaris/proc/saproc_audit.cpp.i
 data/src/share/vm/opto/loopopts.cpp.i
 data/build/linux/makefiles/profiled.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdX86JavaThreadPDAccess.java.i
 data/src/share/tools/IdealGraphVisualizer/Util/build.xml.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterIndirectAddress.java.i
-data/src/share/vm/runtime/advancedThresholdPolicy.cpp.i
-data/src/share/vm/runtime/vframeArray.cpp.i
+data/build/windows/projectfiles/kernel/vm.def.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/CompoundType.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/JSnap.java.i
-data/src/share/vm/classfile/classFileParser.cpp.i
+data/src/share/vm/ci/ciObjectFactory.hpp.i
 data/test/compiler/6826736/Test.java.i
+data/make/bsd/makefiles/build_vm_def.sh.i
 data/agent/src/os/win32/Monitor.cpp.i
-data/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp.i
+data/src/cpu/x86/vm/vm_version_x86_32.hpp.i
 data/src/share/vm/includeDB_compiler1.i
-data/src/share/vm/utilities/utf8.hpp.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/actions/Bundle.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/soql/SOQL.java.i
-data/src/share/vm/gc_implementation/shared/gSpaceCounters.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCArithmeticInstruction.java.i
+data/src/share/vm/opto/escape.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaObject.java.i
 data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/FilterChainProvider.java.i
+data/build/solaris/makefiles/reorder_TIERED_sparc.i
 data/src/share/vm/opto/regmask.hpp.i
+data/src/os/bsd/vm/osThread_bsd.cpp.i
 data/make/linux/makefiles/tiered.make.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp.i
-data/src/share/tools/MakeDeps/WinGammaPlatformVC6.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRettInstruction.java.i
 data/src/share/vm/opto/mulnode.hpp.i
 data/make/linux/makefiles/zeroshark.make.i
+data/make/solaris/makefiles/dtrace.make.i
 data/src/cpu/x86/vm/assembler_x86_32.hpp.i
 data/src/share/vm/utilities/macros.hpp.i
-data/src/share/vm/gc_implementation/shared/gcStats.hpp.i
 data/agent/src/os/win32/Dispatcher.hpp.i
 data/agent/make/pmapproc64.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9IntegerBranchDecoder.java.i
@@ -1629,160 +1707,164 @@ data/src/share/vm/runtime/thread.hpp.i
 data/build/solaris/makefiles/launcher.make.i
 data/src/share/vm/ci/ciInstance.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9ShiftDecoder.java.i
-data/src/share/vm/code/debugInfoRec.hpp.i
 data/src/share/vm/gc_implementation/g1/satbQueue.cpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/MultiConnectionWidget.java.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/OldHierarchicalLayoutManager.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/SDE.java.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/search.gif.i
-data/agent/test/jdi/jstack64.sh.i
+data/src/share/vm/utilities/workgroup.cpp.i
+data/build/solaris/makefiles/sparcv9.make.i
 data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/DoubleClickAction.java.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/general/Save24.gif.i
-data/make/solaris/makefiles/cscope.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/FloatType.java.i
 data/make/solaris/makefiles/reorder_TIERED_sparc.i
 data/src/share/tools/IdealGraphVisualizer/Difference/nbproject/genfiles.properties.i
 data/make/closed.make.i
 data/agent/src/scripts/start-debug-server64.sh.i
 data/make/solaris/platform_sparcv9.gcc.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/table/SortHeaderMouseAdapter.java.i
 data/src/share/vm/utilities/hashtable.inline.hpp.i
 data/build/linux/makefiles/tiered.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/solaris_amd64/SolarisAMD64JavaThreadPDAccess.java.i
 data/make/windows/makefiles/vm.make.i
 data/src/cpu/x86/vm/c2_globals_x86.hpp.i
-data/src/share/vm/oops/methodDataKlass.cpp.i
+data/src/os/solaris/dtrace/jvm_dtrace.h.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/LazyType.java.i
 data/agent/src/os/linux/symtab.c.i
 data/make/solaris/makefiles/makedeps.make.i
 data/test/compiler/7024475/Test7024475.java.i
 data/src/share/vm/code/icBuffer.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/customLeftWsmode.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/StackTraceEntry.java.i
-data/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/memo/MemoizedFloat.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/CPUHelper.java.i
+data/make/solaris/makefiles/debug.make.i
 data/src/share/tools/IdealGraphVisualizer/Filter/nbproject/platform.properties.i
 data/make/windows/makefiles/jvmti.make.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/overview.gif.i
+data/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/ColorFilter.java.i
 data/build/solaris/makefiles/vm.make.i
 data/src/share/vm/shark/sharkBlock.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeDisassembler.java.i
-data/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp.i
+data/src/share/vm/shark/sharkBuilder.hpp.i
 data/src/share/vm/runtime/monitorChunk.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ObjectSynchronizer.java.i
 data/src/cpu/x86/vm/assembler_x86.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/EnumType.java.i
-data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/AbstractFilter.java.i
+data/src/share/vm/c1/c1_ValueSet.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ConcurrentLocksPrinter.java.i
+data/src/os_cpu/bsd_x86/vm/bsd_x86_64.s.i
 data/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/LayoutGraph.java.i
 data/build/linux/makefiles/cscope.make.i
 data/src/share/vm/runtime/handles.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Graph/nbproject/build-impl.xml.i
-data/src/share/vm/runtime/java.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassFilter.java.i
+data/agent/src/os/bsd/salibelf.c.i
 data/make/solaris/makefiles/reorder_COMPILER2_i486.i
-data/src/share/vm/shark/sharkIntrinsics.cpp.i
+data/build/linux/makefiles/makedeps.make.i
 data/src/share/vm/services/classLoadingService.hpp.i
-data/test/compiler/6539464/Test.java.i
-data/make/solaris/makefiles/tiered.make.i
+data/build/windows/makefiles/defs.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicJFloatField.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadFactory.java.i
 data/src/cpu/x86/vm/c1_FpuStackSim_x86.cpp.i
 data/agent/make/jdbcore64.sh.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/text/AlignLeft24.gif.i
-data/agent/src/share/classes/sun/jvm/hotspot/code/AdapterBlob.java.i
-data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/Bundle.properties.i
+data/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp.i
+data/src/share/vm/prims/jvmtiGetLoadedClasses.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicFloatType.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PrefetchDecoder.java.i
+data/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp.i
 data/src/share/tools/IdealGraphVisualizer/build.xml.i
 data/test/compiler/6431242/Test.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/DebuggerConsolePanel.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeIf.java.i
 data/src/share/vm/utilities/sizes.cpp.i
-data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/NMethod.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/images/import.gif.i
-data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/Method.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlassKlass.java.i
 data/src/share/vm/prims/perf.cpp.i
 data/make/windows/makefiles/fastdebug.make.i
 data/src/cpu/zero/vm/sharedRuntime_zero.cpp.i
 data/src/share/vm/runtime/arguments.cpp.i
-data/src/share/vm/prims/jvmtiEventController.inline.hpp.i
+data/src/cpu/x86/vm/vm_version_x86.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/CustomFilter.java.i
-data/build/solaris/platform_i486.gcc.i
+data/agent/make/pstackproc.sh.i
+data/agent/src/os/bsd/StubDebuggerLocal.c.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/FloatTypeImpl.java.i
 data/src/share/vm/libadt/vectset.hpp.i
-data/agent/doc/hsdb.html.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java.i
 data/src/share/vm/services/memoryManager.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFHeader.java.i
 data/agent/test/jdi/sagdoit.java.i
-data/src/share/vm/prims/forte.cpp.i
 data/src/share/vm/prims/jvmtiExport.cpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicJLongField.java.i
 data/src/share/vm/opto/node.cpp.i
-data/src/share/vm/opto/c2_globals.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/Compile.java.i
 data/src/cpu/sparc/vm/vmreg_sparc.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/livejvm/CStringAccessor.java.i
 data/src/share/vm/runtime/sharedRuntimeTrans.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/AuxFunctionDefinitionRecord.java.i
-data/src/share/tools/IdealGraphVisualizer/Settings/src/com/sun/hotspot/igv/settings/Bundle.properties.i
+data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/combine.filter.i
+data/src/share/vm/c1/c1_ValueStack.cpp.i
 data/src/cpu/x86/vm/interp_masm_x86_32.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCShiftInstruction.java.i
+data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/actions/RemoveFilterAction.java.i
 data/src/share/vm/opto/regalloc.hpp.i
 data/build/solaris/makefiles/sa.make.i
 data/agent/src/os/win32/procList.hpp.i
 data/src/share/vm/ci/ciStreams.cpp.i
 data/test/runtime/6929067/T.java.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/CheckListView.java.i
-data/test/compiler/6661247/Test.java.i
 data/src/share/vm/oops/markOop.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerClient.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicJIntField.java.i
 data/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp.i
 data/src/cpu/x86/vm/stubRoutines_x86_32.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/actions/RemoveAllAction.java.i
-data/test/compiler/5091921/Test6992759.java.i
+data/test/compiler/6603011/Test.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFSectionHeader.java.i
 data/src/cpu/x86/vm/icache_x86.cpp.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/build.xml.i
 data/test/compiler/6799693/Test.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/RuntimeStub.java.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/development/Server24.gif.i
+data/test/compiler/6912517/Test.java.i
 data/src/os/windows/vm/decoder_windows.cpp.i
+data/src/share/vm/memory/cardTableRS.cpp.i
 data/agent/src/share/classes/com/sun/java/swing/ui/OkCancelButtonPanel.java.i
 data/src/cpu/sparc/vm/interp_masm_sparc.hpp.i
-data/src/share/vm/ci/ciTypeArray.hpp.i
 data/src/share/vm/gc_implementation/shared/markSweep.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9BranchInstruction.java.i
-data/src/share/vm/utilities/hashtable.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SavedInstruction.java.i
 data/make/linux/makefiles/cscope.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/UnsupportedPlatformException.java.i
 data/build/windows/projectfiles/compiler2/ADLCompiler.dsp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/AccessFlags.java.i
 data/src/share/vm/opto/c2compiler.cpp.i
-data/build/windows/platform_i486.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/Generation.java.i
 data/agent/src/os/win32/SwDbgSrv.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodePutField.java.i
 data/src/cpu/x86/vm/c1_Defs_x86.hpp.i
 data/src/share/vm/c1/c1_LinearScan.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_amd64/BsdAMD64JavaThreadPDAccess.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSSegMap.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/BooleanValueImpl.java.i
 data/test/compiler/6958485/Test.java.i
 data/src/share/tools/IdealGraphVisualizer/branding/core/core.jar/org/netbeans/core/startup/splash.gif.i
-data/test/compiler/5091921/Test6186134.java.i
-data/src/share/vm/runtime/fprofiler.cpp.i
 data/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp.i
 data/src/os/windows/vm/thread_windows.inline.hpp.i
 data/src/share/tools/ProjectCreator/WinGammaPlatformVC7.java.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/build.xml.i
-data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/SuccessorSelector.java.i
+data/src/share/vm/utilities/constantTag.hpp.i
 data/agent/src/share/classes/com/sun/java/swing/action/CancelAction.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/RobustOopDeterminator.java.i
-data/agent/src/os/linux/salibelf.c.i
+data/src/share/tools/IdealGraphVisualizer/Filter/manifest.mf.i
+data/make/bsd/makefiles/sparcWorks.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveStoreInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/ConditionalJmpDecoder.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/Block_Array.java.i
 data/test/compiler/6741738/Tester.java.i
 data/src/share/vm/ci/ciMethod.hpp.i
-data/src/share/tools/IdealGraphVisualizer/Coordinator/nbproject/platform.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64RegisterMap.java.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Properties.java.i
+data/make/windows/platform_i486.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/navigation/Up16.gif.i
 data/make/solaris/Makefile.i
 data/src/share/tools/IdealGraphVisualizer/RhinoScriptEngineProxy/src/com/sun/hotspot/igv/rhino/RhinoScriptEngine.java.i
@@ -1790,27 +1872,29 @@ data/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapValue.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/GRPDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/treetable/JTreeTable.java.i
 data/agent/src/share/classes/com/sun/java/swing/ui/WizardDlg.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdCDebugger.java.i
 data/src/os/linux/vm/perfMemory_linux.cpp.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/nbproject/build-impl.xml.i
 data/test/TEST.ROOT.i
 data/src/share/vm/gc_implementation/g1/heapRegionSets.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86GeneralInstruction.java.i
-data/src/os_cpu/windows_x86/vm/bytes_windows_x86.inline.hpp.i
+data/src/share/vm/opto/reg_split.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/BranchDecoder.java.i
-data/build/windows/makefiles/jvmti.make.i
+data/src/share/vm/memory/generation.hpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/export.gif.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/ImmediateOrRegister.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFFile.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/dummy/DummyOopHandle.java.i
 data/src/share/vm/c1/c1_MacroAssembler.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java.i
 data/src/cpu/zero/vm/vm_version_zero.cpp.i
 data/src/share/vm/includeDB_jvmti.i
-data/agent/src/share/classes/com/sun/java/swing/action/AlignCenterAction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/posix/POSIXSignals.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlass.java.i
 data/src/os_cpu/windows_x86/vm/threadLS_windows_x86.cpp.i
 data/src/share/vm/ci/ciConstantPoolCache.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/MoveInstruction.java.i
-data/src/share/vm/runtime/dtraceJSDT.hpp.i
+data/src/share/vm/shark/sharkBuilder.cpp.i
 data/src/share/vm/oops/markOop.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/IntType.java.i
 data/agent/make/jstackwindbg.bat.i
@@ -1820,33 +1904,35 @@ data/src/cpu/sparc/vm/depChecker_sparc.cpp.i
 data/src/share/tools/IdealGraphVisualizer/RhinoScriptEngineProxy/nbproject/project.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/CallInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/JNIid.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialStoreDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/SimpleTreeModel.java.i
-data/src/share/vm/ci/ciTypeFlow.hpp.i
-data/make/solaris/platform_sparc.gcc.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64ThreadContext.java.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/overview.gif.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxAddress.java.i
 data/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp.i
 data/src/share/vm/code/vmreg.hpp.i
-data/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp.i
+data/make/solaris/makefiles/mapfile-vers-jsig.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/ShowAllAction.java.i
 data/src/os/solaris/dtrace/hotspot_jni.d.i
 data/src/share/vm/prims/methodComparator.cpp.i
 data/src/share/vm/opto/idealGraphPrinter.hpp.i
 data/make/solaris/makefiles/sa.make.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/DataSource.java.i
+data/make/linux/makefiles/rules.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/ProcessInfo.java.i
 data/src/share/tools/IdealGraphVisualizer/View/build.xml.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/FilterTopComponent.form.i
-data/src/share/vm/gc_implementation/parNew/asParNewGeneration.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebuggerLocal.java.i
 data/src/os_cpu/windows_x86/vm/assembler_windows_x86_64.cpp.i
 data/src/share/vm/opto/coalesce.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/amd64/ProcAMD64Thread.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/GenerationIsInClosure.java.i
+data/make/windows/makefiles/shared.make.i
 data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Source.java.i
-data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/Bundle.properties.i
-data/test/runtime/6888954/vmerrors.sh.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPInstruction.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/ObjArrayKlass.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/BadAddressTreeNodeAdapter.java.i
 data/src/share/vm/prims/jniFastGetField.cpp.i
-data/src/share/vm/utilities/array.cpp.i
+data/src/share/vm/oops/oop.pcgc.inline.hpp.i
 data/agent/make/build-filelist.i
 data/src/cpu/sparc/vm/bytecodes_sparc.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/nbproject/genfiles.properties.i
@@ -1858,73 +1944,84 @@ data/agent/src/share/classes/sun/jvm/hotspot/asm/MemoryInstruction.java.i
 data/src/share/vm/prims/jvmtiExport.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/services/Scheduler.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFSymbolConstants.java.i
+data/test/compiler/6956668/Test6956668.java.i
 data/src/cpu/x86/vm/templateTable_x86_32.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/Instance.java.i
-data/src/share/vm/c1/c1_FpuStackSim.hpp.i
+data/src/share/vm/gc_implementation/shared/allocationStats.hpp.i
+data/src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp.i
 data/src/share/vm/memory/generationSpec.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/VMFlagsPanel.java.i
 data/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp.i
+data/make/bsd/makefiles/compiler2.make.i
 data/agent/make/start-rmiregistry.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/sparc/ProcSPARCThread.java.i
-data/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/livejvm/Event.java.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp.i
 data/make/windows/projectfiles/common/Makefile.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MemoryInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaCallWrapper.java.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLWriter.java.i
-data/src/share/tools/IdealGraphVisualizer/View/nbproject/project.properties.i
-data/src/share/vm/opto/block.cpp.i
+data/src/os_cpu/bsd_x86/vm/prefetch_bsd_x86.inline.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9RegisterBranchDecoder.java.i
+data/src/share/tools/IdealGraphVisualizer/FilterWindow/nbproject/project.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Instruction.java.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Bundle.properties.i
 data/make/solaris/makefiles/sparcWorks.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/table/TableModelComparator.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/jdi/MonitorInfoImpl.java.i
 data/src/share/vm/opto/split_if.cpp.i
 data/src/os/solaris/vm/hpi_solaris.hpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp.i
-data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/ScriptEngineAbstraction.java.i
+data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/RangeSliderModel.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/FreeList.java.i
 data/src/share/tools/ProjectCreator/WinGammaPlatformVC9.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialLoadDecoder.java.i
 data/test/compiler/5091921/Test6905845.java.i
+data/src/share/vm/oops/klassOop.hpp.i
 data/src/cpu/zero/vm/interp_masm_zero.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/Arithmetic.java.i
-data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/META-INF/services/com.sun.hotspot.igv.data.services.Scheduler.i
-data/src/share/vm/oops/cpCacheKlass.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethod.java.i
+data/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp.i
+data/build/solaris/makefiles/mapfile-vers-CORE.i
 data/src/share/vm/gc_implementation/g1/ptrQueue.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/IntegerEnum.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/jdi/ClassTypeImpl.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/TypeVisitor.java.i
+data/make/windows/projectfiles/tiered/Makefile.i
+data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/layer.xml.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/PointerFinder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SymbolTypes.java.i
-data/src/share/vm/runtime/dtraceJSDT.cpp.i
+data/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp.i
 data/src/share/vm/c1/c1_CFGPrinter.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/sparc/RemoteSPARCThreadContext.java.i
-data/agent/make/pmapwindbg64.bat.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/BitMapClosure.java.i
 data/src/os_cpu/linux_x86/vm/linux_x86_32.ad.i
-data/agent/src/share/classes/sun/jvm/hotspot/jdi/DoubleTypeImpl.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/JFrameWrapper.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/code/StubQueue.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/Threads.java.i
 data/src/cpu/x86/vm/javaFrameAnchor_x86.hpp.i
-data/src/share/tools/IdealGraphVisualizer/ControlFlow/nbproject/platform.properties.i
 data/build/windows/makefiles/rules.make.i
 data/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_64.cpp.i
-data/build/solaris/makefiles/reorder_COMPILER2_sparc.i
+data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/Method.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/HotSpotSolarisVtblAccess.java.i
 data/make/linux/makefiles/optimized.make.i
-data/src/share/vm/ci/ciInstance.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/LoaderConstraintTable.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciKlass.java.i
 data/src/share/vm/gc_implementation/g1/g1_globals.cpp.i
+data/make/bsd/makefiles/buildtree.make.i
 data/make/linux/README.i
+data/src/cpu/x86/vm/depChecker_x86.hpp.i
+data/src/os_cpu/bsd_x86/vm/orderAccess_bsd_x86.inline.hpp.i
 data/agent/src/scripts/start-rmiregistry64.sh.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/GenCollectedHeap.java.i
+data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/AbstractFilter.java.i
 data/agent/src/share/classes/com/sun/java/swing/action/OpenAction.java.i
 data/src/cpu/sparc/vm/codeBuffer_sparc.hpp.i
 data/src/share/vm/oops/instanceKlassKlass.hpp.i
-data/src/share/vm/ci/ciCPCache.cpp.i
+data/src/share/vm/code/codeCache.hpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.i
 data/agent/test/jdi/multivm.sh.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/LivenessPathElement.java.i
+data/agent/test/jdi/jstack64.sh.i
+data/src/os_cpu/bsd_zero/vm/prefetch_bsd_zero.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/JDoubleField.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/DefaultHeapVisitor.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialStoreInstruction.java.i
-data/src/share/vm/shark/sharkConstant.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/ShiftDecoder.java.i
 data/src/share/vm/opto/vectornode.cpp.i
 data/test/compiler/6814842/Test6814842.java.i
@@ -1932,53 +2029,57 @@ data/src/share/vm/libadt/dict.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/sparc/ProcSPARCThreadContext.java.i
 data/agent/make/clhsdbwindbg.bat.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/AnnotatedMemoryPanel.java.i
-data/src/share/vm/runtime/unhandledOops.hpp.i
 data/src/share/vm/runtime/task.hpp.i
 data/agent/make/jdbproc.sh.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/CheckRenderer.java.i
 data/src/os/solaris/vm/os_share_solaris.hpp.i
 data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/nbproject/suite.properties.i
-data/src/share/vm/classfile/javaAssertions.cpp.i
+data/src/share/tools/ProjectCreator/DirectoryTree.java.i
 data/src/share/vm/oops/objArrayOop.cpp.i
 data/make/linux/build.sh.i
 data/src/share/vm/runtime/vm_operations.hpp.i
 data/agent/doc/clhsdb.html.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/BaseIndexScaleDispAddress.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ReadDecoder.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaScriptEngine.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SpecialRegisters.java.i
 data/agent/make/hsdbwindbg.bat.i
 data/src/os_cpu/solaris_sparc/vm/solaris_sparc.s.i
-data/src/share/vm/asm/assembler.inline.hpp.i
+data/src/share/vm/prims/jvmtiEnvThreadState.hpp.i
 data/build/solaris/makefiles/reorder_COMPILER2_amd64.i
 data/src/share/vm/oops/instanceRefKlass.hpp.i
+data/src/share/tools/IdealGraphVisualizer/View/src/META-INF/services/com.sun.hotspot.igv.data.services.GraphViewer.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/DoubleValueImpl.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCIndirectCallInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/VariablePanel.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegisters.java.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/images/minus.gif.i
 data/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/BranchInstruction.java.i
+data/make/windows/makefiles/sa.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/CardGeneration.java.i
 data/src/share/tools/IdealGraphVisualizer/Graph/manifest.mf.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp.i
-data/src/share/vm/c1/c1_FrameMap.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdOopHandle.java.i
+data/src/share/vm/prims/jvmtiClassFileReconstituter.hpp.i
 data/src/cpu/x86/vm/templateTable_x86_64.cpp.i
-data/src/share/tools/IdealGraphVisualizer/Filter/src/META-INF/services/com.sun.hotspot.igv.filter.ScriptEngineAbstraction.i
 data/agent/src/os/win32/Buffer.hpp.i
 data/src/share/tools/IdealGraphVisualizer/NetworkConnection/nbproject/build-impl.xml.i
 data/make/solaris/makefiles/hp.make.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp.i
 data/test/compiler/6711100/Test.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgThreadFactory.java.i
+data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java.i
 data/src/share/vm/opto/callGenerator.cpp.i
-data/make/windows/projectfiles/tiered/ADLCompiler.dsw.i
-data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Connection.java.i
+data/src/share/tools/IdealGraphVisualizer/Settings/src/com/sun/hotspot/igv/settings/Settings.java.i
 data/agent/src/os/win32/SwDbgSub.dsp.i
 data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Figure.java.i
 data/src/share/vm/code/pcDesc.hpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.cpp.i
 data/src/share/tools/MakeDeps/BuildConfig.java.i
+data/make/bsd/makefiles/amd64.make.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/general/Information24.gif.i
 data/src/cpu/zero/vm/icache_zero.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdAddress.java.i
 data/make/solaris/makefiles/reorder_COMPILER1_sparcv9.i
+data/src/os_cpu/bsd_x86/vm/bytes_bsd_x86.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/CodeCacheVisitor.java.i
 data/src/share/vm/ci/ciCallSite.hpp.i
 data/src/share/vm/runtime/virtualspace.cpp.i
@@ -1988,45 +2089,44 @@ data/agent/src/share/classes/sun/jvm/hotspot/runtime/StackValue.java.i
 data/src/os/windows/vm/hpi_windows.cpp.i
 data/src/cpu/x86/vm/interpreterGenerator_x86.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/HeapBlock.java.i
-data/agent/make/dumpsyspropsproc.sh.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9CasInstruction.java.i
 data/agent/make/jsdbproc.sh.i
 data/src/os_cpu/windows_x86/vm/windows_x86_32.ad.i
-data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/CallSite.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/CTypeTreeNodeAdapter.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/BreakpointInfo.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/TypeIndicators.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgCDebugInfoBuilder.java.i
-data/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Bundle.properties.i
+data/test/compiler/5091921/Test6992759.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/ia64/LinuxIA64ThreadContext.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicJDoubleField.java.i
-data/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9InstructionFactory.java.i
-data/src/cpu/zero/vm/register_definitions_zero.cpp.i
-data/src/share/vm/runtime/vmThread.hpp.i
+data/src/share/vm/gc_implementation/parNew/asParNewGeneration.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/HeapPrinter.java.i
 data/src/share/vm/runtime/vframe_hp.hpp.i
 data/test/compiler/6892265/Test.java.i
-data/test/compiler/6663621/IVTest.java.i
+data/src/cpu/zero/vm/globals_zero.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWideable.java.i
 data/src/share/vm/runtime/reflectionCompat.hpp.i
 data/src/cpu/x86/vm/stubRoutines_x86_32.hpp.i
-data/src/share/tools/IdealGraphVisualizer/ServerCompiler/manifest.mf.i
-data/src/share/vm/ci/ciObjArray.hpp.i
+data/src/share/vm/interpreter/bytecodeInterpreter.cpp.i
+data/src/share/vm/ci/ciCallSite.cpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp.i
 data/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp.i
-data/src/share/vm/opto/live.hpp.i
 data/src/os/linux/vm/osThread_linux.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaThreadFactory.java.i
-data/src/share/vm/prims/hpi_imported.h.i
+data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/layer.xml.i
+data/src/cpu/sparc/vm/register_definitions_sparc.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpot.java.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/services/GraphViewer.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Opcodes.java.i
-data/test/compiler/6757316/Test6757316.java.i
-data/src/share/vm/ci/ciKlass.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/AddressException.java.i
+data/src/cpu/x86/vm/assembler_x86_32.inline.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/code/AdapterBlob.java.i
 data/src/cpu/zero/vm/nativeInst_zero.cpp.i
 data/src/share/vm/utilities/taskqueue.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/FieldIdentifier.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciKlassKlass.java.i
 data/src/share/vm/code/debugInfo.cpp.i
-data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/images/structured.gif.i
+data/src/share/vm/memory/defNewGeneration.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/ExportDirectoryTable.java.i
-data/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.i
+data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/actions/NewFilterAction.java.i
 data/src/share/vm/memory/sharedHeap.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/AddressOps.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/PerfDataPrologue.java.i
@@ -2034,153 +2134,157 @@ data/src/share/vm/runtime/jfieldIDWorkaround.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Data/nbproject/project.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgOopHandle.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLoadInstruction.java.i
+data/src/share/vm/memory/universe.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/ExtendedPanAction.java.i
 data/src/share/vm/c1/c1_Instruction.cpp.i
-data/build/linux/makefiles/makedeps.make.i
+data/src/share/vm/prims/jni.h.i
 data/src/share/vm/memory/genMarkSweep.cpp.i
-data/src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp.i
+data/src/share/vm/runtime/javaCalls.hpp.i
 data/src/share/vm/memory/referencePolicy.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/bugspot/StackTracePanel.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/x86/X86ThreadContext.java.i
 data/src/share/vm/oops/constMethodOop.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/RemoveInputsFilter.java.i
 data/make/solaris/makefiles/mapfile-vers-nonproduct.i
 data/src/cpu/zero/vm/entry_zero.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapStream.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/Bits.java.i
 data/src/share/vm/ci/ciKlassKlass.hpp.i
-data/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DumpExports.java.i
+data/src/share/vm/utilities/yieldingWorkgroup.cpp.i
+data/src/share/tools/IdealGraphVisualizer/ServerCompiler/nbproject/genfiles.properties.i
+data/src/os_cpu/bsd_zero/vm/bytes_bsd_zero.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/ia64/WindbgIA64ThreadContext.java.i
-data/src/share/tools/IdealGraphVisualizer/Layout/nbproject/suite.properties.i
+data/src/share/vm/opto/memnode.cpp.i
 data/src/os/solaris/vm/globals_solaris.hpp.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/nbproject/project.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SegInfo.java.i
 data/src/share/vm/memory/gcLocker.cpp.i
 data/src/share/vm/includeDB_shark.i
-data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/ChangedListener.java.i
-data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/Bundle.properties.i
+data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/Bundle.properties.i
+data/src/share/vm/runtime/fprofiler.hpp.i
 data/agent/src/share/classes/com/sun/java/swing/action/ExitAction.java.i
 data/src/share/vm/gc_interface/gcCause.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/AddressDataSource.java.i
 data/src/share/vm/c1/c1_LIRGenerator.hpp.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/NextDiagramAction.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxOopHandle.java.i
+data/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp.i
 data/src/cpu/zero/vm/stubRoutines_zero.cpp.i
-data/src/share/vm/gc_implementation/shared/isGCActiveMark.hpp.i
+data/make/windows/projectfiles/compiler2/vm.dsw.i
+data/src/share/vm/adlc/filebuff.cpp.i
+data/test/compiler/7047069/Test7047069.java.i
+data/make/bsd/makefiles/saproc.make.i
+data/src/share/vm/oops/generateOopMap.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/OopField.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/RotateDecoder.java.i
-data/src/cpu/x86/vm/icache_x86.hpp.i
+data/src/share/vm/gc_implementation/shared/hSpaceCounters.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/Editor.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcAddress.java.i
+data/src/cpu/x86/vm/dump_x86_64.cpp.i
 data/src/share/vm/runtime/serviceThread.cpp.i
 data/make/linux/adlc_updater.i
 data/build/windows/build.make.i
-data/src/os/windows/vm/vtune_windows.cpp.i
+data/src/os/windows/vm/hpi_windows.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/table/SortHeaderCellRenderer.java.i
-data/src/share/vm/services/psMemoryPool.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/Type.java.i
-data/src/share/tools/IdealGraphVisualizer/RhinoScriptEngineProxy/nbproject/genfiles.properties.i
-data/agent/make/marks_notes.html.i
+data/src/share/vm/runtime/safepoint.cpp.i
+data/make/solaris/makefiles/mapfile-vers-debug.i
 data/make/solaris/makefiles/reorder_CORE_amd64.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/ConstantLongValue.java.i
-data/src/share/vm/runtime/signature.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/memo/MemoizedInt.java.i
 data/src/share/vm/code/exceptionHandlerTable.hpp.i
 data/src/os_cpu/solaris_x86/vm/solaris_x86_64.s.i
 data/src/share/vm/interpreter/rewriter.cpp.i
 data/src/share/vm/opto/loopnode.cpp.i
+data/src/share/vm/oops/fieldInfo.hpp.i
 data/agent/make/pstackproc64.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RetryInstruction.java.i
-data/src/share/vm/prims/jniCheck.cpp.i
+data/src/share/tools/ProjectCreator/ProjectCreator.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/ProcImageClassLoader.java.i
-data/test/compiler/6778657/Test.java.i
+data/make/solaris/makefiles/reorder_COMPILER1_sparc.i
 data/src/share/vm/interpreter/bytecodeInterpreterWithChecks.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/OffsetClosure.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/java_lang_Class.java.i
+data/agent/make/jcoreproc64.sh.i
+data/src/share/vm/gc_implementation/g1/bufferingOopClosure.hpp.i
 data/src/share/vm/ci/ciSignature.hpp.i
 data/src/share/vm/ci/ciTypeArray.cpp.i
 data/src/share/vm/includeDB_compiler2.i
 data/src/share/vm/oops/symbolKlass.hpp.i
 data/src/cpu/zero/vm/register_zero.hpp.i
-data/src/share/vm/runtime/javaCalls.hpp.i
-data/agent/make/dumpflagswindbg64.bat.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSethiInstruction.java.i
+data/src/share/tools/IdealGraphVisualizer/View/nbproject/genfiles.properties.i
+data/make/windows/create.bat.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/InterpreterCodelet.java.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/Node.java.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/nbproject/project.xml.i
-data/src/share/vm/prims/jvmtiEnter.xsl.i
+data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicField.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/Bundle.properties.i
 data/src/share/vm/memory/space.inline.hpp.i
 data/src/share/tools/IdealGraphVisualizer/nbproject/genfiles.properties.i
+data/agent/src/share/classes/sun/jvm/hotspot/code/MethodHandlesAdapterBlob.java.i
 data/src/share/vm/ci/ciKlass.cpp.i
 data/src/share/vm/opto/vectornode.hpp.i
 data/agent/test/jdi/TargetAdapter.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodePutStatic.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86BranchInstruction.java.i
 data/src/share/vm/interpreter/bytecodeStream.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/types/CIntegerField.java.i
-data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/ClusterInputSlotNode.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/WindowsNTSubsystem.java.i
-data/agent/src/share/classes/com/sun/java/swing/action/NextAction.java.i
-data/src/share/vm/oops/constantPoolOop.hpp.i
+data/src/cpu/x86/vm/stubRoutines_x86_64.hpp.i
+data/src/share/tools/ProjectCreator/BuildConfig.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/FreeChunk.java.i
+data/src/share/vm/compiler/compilerOracle.cpp.i
+data/test/compiler/6758234/Test6758234.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicJBooleanField.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FMOVrDecoder.java.i
-data/build/sa.files.i
+data/src/share/vm/shark/sharkState.hpp.i
 data/src/os/windows/vm/mutex_windows.cpp.i
-data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/layer.xml.i
+data/src/share/tools/IdealGraphVisualizer/ServerCompiler/manifest.mf.i
 data/src/share/tools/IdealGraphVisualizer/Data/nbproject/suite.properties.i
-data/src/share/vm/memory/cardTableRS.hpp.i
-data/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlass.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFRelocation.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LoadDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/Thread.java.i
-data/src/share/vm/utilities/preserveException.cpp.i
-data/make/linux/makefiles/top.make.i
-data/src/cpu/x86/vm/frame_x86.hpp.i
-data/src/share/vm/classfile/classFileError.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPMoveDecoder.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/TwoOopHashtable.java.i
+data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/InputSlot.java.i
+data/test/compiler/6910618/Test.java.i
+data/test/compiler/5091921/Test6959129.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterIndirectAddress.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/CounterData.java.i
 data/agent/make/finalizerinfoproc.sh.i
 data/src/share/tools/IdealGraphVisualizer/branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties.i
-data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/actions/FilterAction.java.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/ExportAction.java.i
-data/agent/test/jdi/runjdb.sh.i
+data/src/share/vm/ci/ciSymbol.hpp.i
+data/make/linux/makefiles/compiler2.make.i
+data/src/os/linux/vm/objectMonitor_linux.cpp.i
 data/src/share/vm/opto/parse2.cpp.i
 data/src/share/vm/code/debugInfo.hpp.i
 data/agent/test/jdi/README.jjh.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/VMVersionMismatchException.java.i
-data/src/share/vm/opto/phaseX.cpp.i
-data/src/share/vm/c1/c1_ValueStack.hpp.i
+data/test/compiler/6832293/Test.java.i
 data/src/share/vm/memory/heap.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFException.java.i
 data/src/share/tools/IdealGraphVisualizer/Filter/nbproject/project.xml.i
-data/src/share/vm/runtime/threadLocalStorage.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/SignatureIterator.java.i
 data/src/cpu/sparc/vm/register_sparc.hpp.i
-data/src/cpu/x86/vm/vmreg_x86.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSethiInstruction.java.i
+data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/actions/SaveFilterSettingsAction.java.i
+data/src/share/vm/c1/c1_CFGPrinter.cpp.i
 data/src/cpu/zero/vm/dump_zero.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Settings/nbproject/build-impl.xml.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/RBColor.java.i
-data/make/solaris/makefiles/kernel.make.i
+data/make/defs.make.i
+data/make/linux/makefiles/defs.make.i
 data/src/share/tools/IdealGraphVisualizer/Data/nbproject/genfiles.properties.i
-data/src/share/vm/runtime/mutexLocker.cpp.i
-data/test/compiler/6603011/Test.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/RawHeapVisitor.java.i
+data/build/solaris/platform_i486.gcc.i
+data/src/os_cpu/solaris_x86/vm/solaris_x86_32.s.i
+data/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputMethod.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/Symbol.java.i
-data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/actions/Bundle.properties.i
-data/agent/src/share/classes/sun/jvm/hotspot/livejvm/BreakpointEvent.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/HeapParametersPanel.java.i
+data/test/runtime/6626217/Test6626217.sh.i
+data/agent/src/os/win32/initWinsock.hpp.i
 data/src/share/vm/runtime/vmThread.cpp.i
-data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/MakeNotEntrantEvent.java.i
+data/src/share/vm/runtime/biasedLocking.hpp.i
 data/src/share/vm/prims/jvmtiH.xsl.i
 data/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialLoadStoreDecoder.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/IndexableFieldIdentifier.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/amd64/AMD64CFrame.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/CMSCollector.java.i
 data/src/share/vm/code/location.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/WriteDecoder.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java.i
 data/src/share/vm/shark/sharkMemoryManager.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRegister.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicIntType.java.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp.i
 data/src/share/vm/services/runtimeService.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualSpace.java.i
@@ -2192,47 +2296,48 @@ data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCMoveInstruction.java
 data/src/share/vm/gc_implementation/g1/concurrentMark.cpp.i
 data/src/share/vm/prims/jvm.h.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/TypeDataBase.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeCheckCast.java.i
-data/src/cpu/x86/vm/assembler_x86_32.inline.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FMOVccInstruction.java.i
+data/src/share/tools/IdealGraphVisualizer/Settings/src/com/sun/hotspot/igv/settings/Bundle.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_sparc/LinuxSPARCJavaThreadPDAccess.java.i
-data/src/share/tools/IdealGraphVisualizer/Settings/src/com/sun/hotspot/igv/settings/layer.xml.i
+data/src/share/tools/MakeDeps/MakeDeps.java.i
 data/src/share/vm/code/icBuffer.hpp.i
+data/src/cpu/sparc/vm/c2_init_sparc.cpp.i
 data/agent/src/share/classes/com/sun/java/swing/ui/StatusBar.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicCompoundType.java.i
 data/src/os/windows/vm/threadCritical_windows.cpp.i
 data/build/solaris/makefiles/mapfile-vers.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/LowMemoryDetectorThread.java.i
-data/src/share/tools/ProjectCreator/FileFormatException.java.i
+data/src/share/vm/runtime/stackValue.hpp.i
 data/agent/make/dumpsyspropswindbg64.bat.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/OutlineTopComponentSettings.xml.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/ClusterEdge.java.i
-data/test/compiler/6973329/Test.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/x86/WindbgX86ThreadFactory.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/jdi/MonitorInfoImpl.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/tools/SysPropsDumper.java.i
+data/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp.i
+data/make/solaris/makefiles/mapfile-vers-COMPILER1.i
 data/src/share/vm/prims/jniCheck.hpp.i
 data/src/share/vm/ci/ciObjArrayKlass.cpp.i
 data/src/share/vm/runtime/vframe.hpp.i
 data/test/compiler/6726999/Test.java.i
 data/src/os/linux/vm/objectMonitor_linux.inline.hpp.i
+data/agent/src/share/classes/com/sun/java/swing/ui/ToggleActionPropertyChangeListener.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/layer.xml.i
 data/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/HaltNode.java.i
 data/src/share/vm/c1/c1_ValueMap.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RestoredInstruction.java.i
-data/src/share/vm/memory/blockOffsetTable.inline.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SavedRestoredDecoder.java.i
 data/test/compiler/5091921/Test5091921.java.i
-data/src/share/tools/IdealGraphVisualizer/Settings/nbproject/genfiles.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/VtblAccess.java.i
-data/src/share/vm/libadt/set.hpp.i
-data/test/compiler/6795161/Test.java.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/images/bytecode.gif.i
+data/src/share/vm/oops/instanceKlass.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciReceiverTypeData.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/memo/MemoizedDouble.java.i
 data/build/windows/projectfiles/compiler1/vm.dsw.i
-data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/Phase.java.i
+data/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/JVMDebugger.java.i
 data/src/cpu/zero/vm/stack_zero.inline.hpp.i
-data/src/share/vm/ci/ciArrayKlassKlass.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/Address.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualBaseConstructor.java.i
+data/test/compiler/6823354/Test6823354.java.i
+data/make/linux/makefiles/sparcv9.make.i
 data/src/share/vm/prims/jvmtiRawMonitor.hpp.i
 data/build/windows/projectfiles/tiered/Makefile.i
 data/src/share/vm/ci/ciMethodKlass.cpp.i
@@ -2241,14 +2346,15 @@ data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cp
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaFactoryImpl.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DataDirectory.java.i
 data/src/cpu/zero/vm/templateTable_zero.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSaveInstruction.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java.i
+data/test/compiler/6837011/Test6837011.java.i
+data/agent/src/share/classes/com/sun/java/swing/ui/SplashScreen.java.i
 data/src/os/solaris/dtrace/libjvm_db.c.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/PlaceholderTable.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCShiftInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapGraphWriter.java.i
 data/src/share/vm/memory/gcLocker.hpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp.i
+data/src/os/solaris/vm/osThread_solaris.hpp.i
 data/src/cpu/zero/vm/jniTypes_zero.hpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp.i
 data/build/linux/platform_i486.suncc.i
@@ -2261,25 +2367,27 @@ data/src/cpu/sparc/vm/templateInterpreter_sparc.hpp.i
 data/src/os/linux/vm/jvm_linux.cpp.i
 data/src/share/vm/ci/ciInstanceKlass.hpp.i
 data/agent/make/permstatwindbg64.bat.i
-data/agent/test/libproc/libproctest64.sh.i
+data/src/share/vm/runtime/osThread.cpp.i
 data/src/share/vm/utilities/errorReporter.hpp.i
 data/build/solaris/makefiles/reorder_CORE_sparcv9.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/PredSuccAction.java.i
 data/src/share/vm/ci/ciObjArrayKlass.hpp.i
 data/src/share/vm/includeDB_zero.i
-data/src/share/vm/compiler/compileLog.hpp.i
+data/src/share/vm/memory/threadLocalAllocBuffer.cpp.i
+data/src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp.i
 data/src/share/vm/classfile/verifier.hpp.i
-data/src/share/vm/prims/privilegedStack.hpp.i
+data/test/compiler/5091921/Test6753639.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegister.java.i
 data/src/share/vm/prims/jvmtiEnv.xsl.i
+data/make/bsd/makefiles/hp1.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaThreadState.java.i
-data/agent/src/os/linux/libproc.h.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9ReadDecoder.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/types/Type.java.i
+data/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp.i
+data/src/share/vm/runtime/sharedRuntimeTrig.cpp.i
+data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/remove.filter.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCDisassembler.java.i
-data/src/share/vm/opto/lcm.cpp.i
 data/src/cpu/sparc/vm/register_sparc.cpp.i
 data/src/cpu/zero/vm/cppInterpreter_zero.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaScriptEngine.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/HeapSummary.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/AddressDataSource.java.i
@@ -2287,189 +2395,207 @@ data/build/solaris/makefiles/compiler1.make.i
 data/make/solaris/makefiles/reorder_COMPILER1_i486.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9MOVccDecoder.java.i
 data/src/os/solaris/vm/mutex_solaris.inline.hpp.i
-data/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp.i
-data/src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/jdi/IntegerTypeImpl.java.i
+data/src/share/tools/IdealGraphVisualizer/NetworkConnection/nbproject/genfiles.properties.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/nbproject/build-impl.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/ArrayReferenceImpl.java.i
+data/agent/src/share/classes/com/sun/java/swing/action/HelpMenu.java.i
 data/agent/test/jdi/TargetListener.java.i
 data/build/windows/platform_amd64.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapGXLWriter.java.i
+data/src/share/vm/ci/ciFlags.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/OutputSlot.java.i
 data/src/share/vm/ci/ciEnv.cpp.i
 data/src/share/vm/opto/doCall.cpp.i
-data/test/compiler/6930043/Test6930043.java.i
-data/agent/src/share/classes/images/toolbarButtonGraphics/text/AlignCenter16.gif.i
+data/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp.i
 data/build/linux/makefiles/saproc.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Register.java.i
 data/src/share/vm/opto/macro.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/tools/JMap.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/action/FindClassesAction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/LongValueImpl.java.i
-data/src/share/vm/ci/ciMethod.cpp.i
 data/src/share/tools/MakeDeps/Platform.java.i
-data/test/runtime/6626217/many_loader1.java.foo.i
-data/src/share/vm/oops/klassVtable.hpp.i
+data/make/bsd/makefiles/mapfile-vers-debug.i
 data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Slot.java.i
-data/make/solaris/makefiles/mapfile-vers-jvm_db.i
+data/test/compiler/6894807/Test6894807.sh.i
 data/src/os/linux/vm/vmError_linux.cpp.i
 data/src/share/vm/classfile/javaClasses.hpp.i
-data/test/runtime/6929067/Test6929067.sh.i
-data/make/solaris/makefiles/hp1.make.i
+data/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/Vertex.java.i
+data/make/bsd/makefiles/ppc.make.i
 data/src/share/tools/ProjectCreator/ArgsParser.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/tree/FloatTreeNodeAdapter.java.i
+data/make/windows/projectfiles/compiler2/Makefile.i
 data/src/share/tools/MakeDeps/Macro.java.i
 data/src/share/vm/compiler/methodLiveness.cpp.i
-data/test/compiler/6935535/Test.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaFactory.java.i
+data/src/share/vm/code/codeBlob.hpp.i
 data/agent/test/jdi/TEST.ROOT.i
 data/src/share/vm/includeDB_features.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9IlltrapInstruction.java.i
 data/src/share/vm/interpreter/cppInterpreter.hpp.i
 data/src/os_cpu/windows_x86/vm/windows_x86_64.ad.i
-data/test/compiler/6880034/Test6880034.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32ThreadContext.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/actions/RemoveCookie.java.i
-data/build/windows/makefiles/defs.make.i
+data/make/solaris/makefiles/tiered.make.i
 data/src/share/vm/utilities/events.cpp.i
 data/make/solaris/makefiles/i486.make.i
 data/make/windows/projectfiles/compiler2/ADLCompiler.dsw.i
-data/src/cpu/x86/vm/vm_version_x86.cpp.i
+data/src/share/vm/prims/jvmtiEventController.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/ia64/IA64ThreadContext.java.i
-data/src/share/vm/runtime/jniHandles.hpp.i
+data/src/cpu/zero/vm/jni_zero.h.i
 data/src/share/tools/IdealGraphVisualizer/Data/build.xml.i
 data/agent/make/jdbcore.sh.i
 data/build/windows/projectfiles/core/vm.dsw.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCReadInstruction.java.i
-data/agent/src/os/win32/Buffer.cpp.i
+data/src/share/vm/c1/c1_GraphBuilder.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Registers.java.i
 data/src/share/vm/memory/modRefBarrierSet.hpp.i
 data/test/compiler/7029152/Test.java.i
-data/src/share/vm/services/attachListener.hpp.i
 data/make/linux/makefiles/build_vm_def.sh.i
-data/src/os/windows/launcher/java_md.h.i
+data/src/share/tools/IdealGraphVisualizer/Coordinator/nbproject/platform.properties.i
 data/src/os_cpu/linux_x86/vm/os_linux_x86.hpp.i
 data/src/share/vm/prims/jvmtiImpl.cpp.i
 data/src/share/vm/opto/opcodes.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/IntervalTree.java.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/customRightTopWsmode.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorBranchDecoder.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPInstruction.java.i
+data/src/share/vm/gc_implementation/g1/g1HRPrinter.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterPart.java.i
+data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/Bundle.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86ThreadContext.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/JavaStackTracePanel.java.i
-data/make/linux/platform_i486.suncc.i
-data/agent/src/share/classes/sun/jvm/hotspot/livejvm/Event.java.i
+data/make/windows/makefiles/top.make.i
+data/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java.i
-data/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/tools/StackTrace.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/BitMapClosure.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/code/StubQueue.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/StaticBaseConstructor.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/BsdVtblAccess.java.i
+data/src/share/vm/oops/methodDataKlass.cpp.i
+data/src/share/vm/opto/superword.cpp.i
+data/agent/make/pmapwindbg64.bat.i
+data/agent/src/share/classes/sun/jvm/hotspot/jdi/DoubleTypeImpl.java.i
 data/src/share/vm/services/jmm.h.i
 data/make/linux/makefiles/sa.make.i
 data/make/linux/makefiles/arm.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/StreamMonitor.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/PerfDataEntry.java.i
-data/src/share/tools/ProjectCreator/DirectoryTree.java.i
+data/src/share/vm/classfile/javaAssertions.cpp.i
 data/src/share/vm/runtime/reflectionUtils.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/CDebugInfoDataBase.java.i
 data/src/share/tools/IdealGraphVisualizer/Difference/nbproject/build-impl.xml.i
-data/src/cpu/sparc/vm/c2_init_sparc.cpp.i
+data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Connection.java.i
 data/src/share/vm/memory/allocationStats.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceMirrorKlass.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SirInstruction.java.i
+data/agent/make/dumpsyspropsproc.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicLineNumberMapping.java.i
 data/src/share/vm/services/runtimeService.cpp.i
-data/src/cpu/zero/vm/globals_zero.hpp.i
-data/src/share/vm/oops/cpCacheOop.hpp.i
+data/test/compiler/6663621/IVTest.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/HeapVisitor.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/actions/SaveAllAction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/FieldTreeNodeAdapter.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntryConstants.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/LongField.java.i
 data/make/windows/makefiles/rules.make.i
 data/src/share/vm/utilities/elfStringTable.hpp.i
 data/src/os_cpu/windows_x86/vm/orderAccess_windows_x86.inline.hpp.i
 data/build/solaris/makefiles/reorder_COMPILER1_sparc.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/ExtendedSatelliteComponent.java.i
-data/src/os/windows/vm/hpi_windows.hpp.i
+data/src/os/windows/vm/vtune_windows.cpp.i
+data/test/compiler/6990212/Test6990212.java.i
 data/src/share/vm/memory/serialize.cpp.i
-data/src/share/tools/ProjectCreator/ProjectCreator.java.i
+data/src/share/vm/prims/jniCheck.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Layout/build.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterDirectAddress.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/JVMTIThreadState.java.i
 data/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp.i
-data/agent/test/jdi/serialvm.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LoadDecoder.java.i
+data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/SuccessorSelector.java.i
+data/src/share/vm/memory/cardTableRS.hpp.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/search.gif.i
 data/src/os/linux/vm/osThread_linux.cpp.i
 data/src/share/vm/gc_implementation/shared/gcOverheadReporter.hpp.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/ControlFlowAction.java.i
 data/src/share/vm/ci/ciField.cpp.i
 data/test/compiler/7002666/Test7002666.java.i
-data/src/share/vm/shark/sharkContext.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/CompoundTypeKind.java.i
 data/test/compiler/5091921/Test6890943.java.i
 data/src/os/windows/vm/os_windows.inline.hpp.i
 data/src/share/vm/precompiled.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SavedRestoredDecoder.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/PhiNode.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RestoredInstruction.java.i
 data/build/solaris/makefiles/mapfile-vers-COMPILER2.i
+data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/difference.filter.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64FloatRegister.java.i
+data/src/share/vm/oops/instanceOop.cpp.i
 data/src/share/vm/opto/callnode.cpp.i
 data/src/share/vm/runtime/prefetch.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebuggerLocal.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/sparc/ProcSPARCThreadFactory.java.i
-data/src/share/vm/memory/threadLocalAllocBuffer.cpp.i
+data/src/share/vm/runtime/mutexLocker.cpp.i
+data/src/share/vm/gc_implementation/g1/ptrQueue.inline.hpp.i
 data/src/share/vm/runtime/jniHandles.cpp.i
-data/agent/make/dumpflagswindbg.bat.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/ResolveListener.java.i
+data/make/bsd/makefiles/rules.make.i
+data/agent/src/share/classes/images/toolbarButtonGraphics/general/ZoomIn24.gif.i
+data/src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/nbproject/build-impl.xml.i
-data/src/share/vm/gc_implementation/shared/coTracker.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java.i
 data/src/share/vm/runtime/timer.hpp.i
 data/src/share/vm/opto/callGenerator.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeFastAAccess0.java.i
-data/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.cpp.i
+data/src/share/vm/interpreter/bytecode.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/TypeComponentImpl.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/FunctionSym.java.i
+data/agent/src/os/win32/Buffer.cpp.i
 data/agent/make/soqlproc.sh.i
 data/src/cpu/zero/vm/stack_zero.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/MachNode.java.i
+data/src/os/bsd/vm/threadCritical_bsd.cpp.i
 data/src/share/vm/shark/sharkStack.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/HeapVisitor.java.i
+data/src/share/vm/oops/cpCacheOop.hpp.i
 data/src/share/vm/adlc/adlparse.cpp.i
-data/agent/doc/ReadMe-JavaScript.text.i
+data/make/windows/projectfiles/tiered/ADLCompiler.dsw.i
 data/src/share/vm/adlc/adlc.hpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/extract.gif.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/sparc/RemoteSPARCThreadFactory.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicField.java.i
+data/test/compiler/6863155/Test6863155.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/ResolveListener.java.i
+data/src/share/vm/runtime/osThread.hpp.i
 data/src/share/vm/runtime/perfMemory.cpp.i
+data/src/share/vm/ci/ciFlags.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/InputLexer.java.i
+data/build/windows/projectfiles/tiered/ADLCompiler.dsp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/ProcessControl.java.i
 data/agent/src/os/linux/Makefile.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/ClusterNode.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaClass.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicField.java.i
+data/src/cpu/sparc/vm/vm_version_sparc.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeRet.java.i
 data/test/compiler/5091921/input6890943.txt.i
-data/agent/src/os/win32/isNT4.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SirInstruction.java.i
 data/src/share/tools/MakeDeps/FileName.java.i
 data/src/cpu/zero/vm/interpreter_zero.hpp.i
 data/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicJShortField.java.i
 data/make/windows/makefiles/sanity.make.i
 data/src/share/vm/shark/sharkCompiler.cpp.i
-data/src/share/tools/IdealGraphVisualizer/View/nbproject/build-impl.xml.i
+data/agent/src/share/classes/sun/jvm/hotspot/bugspot/RegisterPanel.java.i
+data/build/solaris/platform_i486.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputBlockEdge.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/zoomin.gif.i
 data/make/solaris/makefiles/compiler2.make.i
 data/test/compiler/6646020/Tester.java.i
+data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/services/GroupReceiver.java.i
 data/src/share/tools/IdealGraphVisualizer/Util/nbproject/genfiles.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/SAPanel.java.i
-data/src/share/vm/gc_implementation/shared/liveRange.hpp.i
-data/src/share/vm/opto/callnode.hpp.i
+data/build/windows/platform_i486.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/CodeHeap.java.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/ServerCompilerScheduler.java.i
 data/src/share/tools/IdealGraphVisualizer/Layout/nbproject/platform.properties.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/StandardGroupOrganizer.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/FloatValueImpl.java.i
-data/src/share/vm/shark/sharkNativeWrapper.cpp.i
+data/src/share/vm/utilities/copy.hpp.i
 data/src/share/vm/runtime/interfaceSupport.hpp.i
 data/src/cpu/zero/vm/relocInfo_zero.cpp.i
 data/src/cpu/zero/vm/bytecodes_zero.cpp.i
 data/src/cpu/x86/vm/c1_Runtime1_x86.cpp.i
+data/agent/src/os/win32/isNT4.hpp.i
 data/src/share/vm/ci/ciObjArrayKlassKlass.cpp.i
-data/src/share/tools/MakeDeps/UnixPlatform.java.i
+data/src/cpu/zero/vm/relocInfo_zero.hpp.i
+data/src/os/bsd/vm/chaitin_bsd.cpp.i
 data/src/cpu/zero/vm/fakeStubFrame_zero.hpp.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/JavaGroupOrganizer.java.i
 data/make/windows/makefiles/defs.make.i
@@ -2477,6 +2603,7 @@ data/src/share/tools/launcher/java.c.i
 data/src/os/solaris/launcher/java_md.h.i
 data/src/share/vm/shark/sharkInvariants.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/GenerationSpec.java.i
+data/src/os/linux/vm/chaitin_linux.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/images/method.gif.i
 data/src/share/vm/gc_implementation/shared/mutableSpace.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/Arguments.java.i
@@ -2488,41 +2615,43 @@ data/make/solaris/makefiles/core.make.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/general/SaveAs24.gif.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/nbproject/platform.properties.i
-data/src/share/vm/shark/sharkInliner.cpp.i
+data/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.d
+data/agent/src/share/classes/sun/jvm/hotspot/tools/JMap.java.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp.i
 data/src/share/tools/IdealGraphVisualizer/NetworkConnection/src/com/sun/hotspot/igv/connection/Bundle.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCArgument.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/JLongField.java.i
-data/src/cpu/sparc/vm/relocInfo_sparc.cpp.i
+data/src/share/vm/runtime/threadLocalStorage.cpp.i
 data/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp.i
 data/src/share/vm/runtime/vtune.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FMOVccDecoder.java.i
 data/agent/src/os/solaris/dbx/Makefile.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/HashtableBucket.java.i
+data/agent/src/share/classes/com/sun/java/swing/action/NextAction.java.i
 data/src/share/vm/interpreter/bytecodeHistogram.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Disassembler.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FloatBranchDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/PackageScanner.java.i
-data/src/share/vm/services/g1MemoryPool.hpp.i
-data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/services/GroupReceiver.java.i
+data/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp.i
+data/src/share/tools/IdealGraphVisualizer/Filter/src/META-INF/services/com.sun.hotspot.igv.filter.ScriptEngineAbstraction.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadStore.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/OopHandle.java.i
-data/src/share/tools/IdealGraphVisualizer/ControlFlow/manifest.mf.i
-data/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp.i
+data/src/share/vm/shark/sharkTopLevelBlock.hpp.i
+data/src/os_cpu/windows_x86/vm/threadLS_windows_x86.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLookupswitch.java.i
 data/src/share/vm/gc_implementation/shared/spaceCounters.hpp.i
-data/src/os/windows/vm/c2_globals_windows.hpp.i
+data/src/share/vm/gc_implementation/g1/heapRegion.inline.hpp.i
 data/src/share/vm/opto/live.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/SafepointBlob.java.i
 data/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp.i
-data/make/linux/platform_zero.in.i
-data/make/windows/projectfiles/core/vm.dsw.i
-data/build/solaris/platform_sparc.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86InstructionFactoryImpl.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/JmpDecoder.java.i
+data/agent/src/share/classes/images/toolbarButtonGraphics/general/Zoom16.gif.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/LoadObject.java.i
-data/src/share/vm/compiler/compilerOracle.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/BufferBlob.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/InvocableCallable.java.i
 data/test/compiler/6636138/Test2.java.i
 data/build/solaris/makefiles/reorder_CORE_amd64.i
+data/src/os/windows/vm/jvm_windows.h.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V8FPop2Decoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/UnknownOopException.java.i
 data/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp.i
@@ -2532,59 +2661,67 @@ data/agent/src/share/classes/sun/jvm/hotspot/ui/treetable/TreeTableModel.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceStoreDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9InstructionFactoryImpl.java.i
 data/src/share/tools/IdealGraphVisualizer/Layout/nbproject/project.properties.i
-data/src/share/vm/utilities/constantTag.hpp.i
 data/src/share/vm/memory/genMarkSweep.hpp.i
-data/src/share/tools/IdealGraphVisualizer/Difference/manifest.mf.i
+data/src/os/windows/vm/perfMemory_windows.cpp.i
+data/build/linux/build.sh.i
 data/src/share/vm/oops/instanceRefKlass.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/JByteField.java.i
+data/src/share/vm/code/nmethod.hpp.i
 data/src/share/vm/adlc/archDesc.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/PCFinder.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/dummy/DummyAddress.java.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/development/Server16.gif.i
-data/src/cpu/zero/vm/javaFrameAnchor_zero.hpp.i
+data/src/share/vm/utilities/utf8.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LdstubDecoder.java.i
-data/src/share/vm/runtime/fieldDescriptor.cpp.i
-data/build/solaris/makefiles/reorder_COMPILER2_i486.i
+data/test/compiler/6823453/Test.java.i
+data/agent/src/os/linux/salibelf.c.i
 data/src/share/vm/oops/instanceMirrorKlass.cpp.i
 data/test/compiler/6579789/Test6579789.java.i
-data/agent/src/share/classes/images/toolbarButtonGraphics/general/Save16.gif.i
+data/agent/make/Makefile.i
+data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/images/add.gif.i
 data/make/windows/makefiles/product.make.i
+data/make/bsd/makefiles/zeroshark.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/StubRoutines.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp.i
 data/src/os/windows/vm/version.rc.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/BlockWidget.java.i
 data/build/windows/build.bat.i
 data/src/os_cpu/linux_x86/vm/assembler_linux_x86_32.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/TypeNode.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSList.java.i
-data/src/share/vm/runtime/handles.cpp.i
+data/src/share/vm/adlc/formsopt.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/StackTrace.java.i
-data/src/share/vm/prims/nativeLookup.hpp.i
+data/test/runtime/6626217/IFace.java.i
 data/test/compiler/6875866/Test.java.i
 data/src/share/vm/runtime/vm_version.hpp.i
 data/src/cpu/zero/vm/assembler_zero.inline.hpp.i
-data/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp.i
+data/test/compiler/6880034/Test6880034.java.i
 data/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.hpp.i
 data/make/linux/makefiles/mapfile-vers-debug.i
-data/src/share/tools/IdealGraphVisualizer/Bytecodes/build.xml.i
 data/build/linux/makefiles/hp1.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapVisitor.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/FieldImpl.java.i
 data/src/os/solaris/vm/chaitin_solaris.cpp.i
 data/agent/make/saenv.bat.i
 data/build/windows/projectfiles/tiered/ADLCompiler.dsw.i
-data/src/os/linux/vm/c2_globals_linux.hpp.i
+data/make/bsd/makefiles/launcher.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/RTLOperations.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/SysPropsPanel.java.i
 data/agent/make/finalizerinfoproc64.sh.i
 data/test/compiler/5091921/Test7005594.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCJmplInstruction.java.i
-data/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp.i
+data/src/os/bsd/vm/mutex_bsd.cpp.i
+data/agent/test/jdi/serialvm.sh.i
 data/agent/test/libproc/LibprocClient.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/OopPrinter.java.i
-data/build/solaris/makefiles/adjust-mflags.sh.i
+data/test/compiler/6378821/Test6378821.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/DoubleType.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/DebugInfoReadStream.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeJsrW.java.i
+data/agent/src/share/classes/images/toolbarButtonGraphics/text/AlignRight16.gif.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/actions/MoveFilterUpAction.java.i
-data/src/share/vm/utilities/bitMap.inline.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/MonitorInfo.java.i
+data/test/compiler/6932496/Test6932496.java.i
+data/build/linux/makefiles/hp.make.i
+data/src/share/vm/gc_implementation/shared/isGCActiveMark.hpp.i
 data/src/share/vm/gc_implementation/shared/gcOverheadReporter.cpp.i
 data/test/compiler/6910605/Test.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCStbarInstruction.java.i
@@ -2592,36 +2729,37 @@ data/src/cpu/zero/vm/interpreterRT_zero.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp.i
 data/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp.i
-data/build/linux/makefiles/compiler1.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/BaseLineInfo.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciSymbol.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaThread.java.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/DiagramConnectionWidget.java.i
-data/src/share/vm/opto/connode.hpp.i
-data/src/share/vm/prims/jvmtiGetLoadedClasses.hpp.i
+data/src/share/vm/opto/block.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/IndirectAddress.java.i
+data/make/bsd/makefiles/cscope.make.i
+data/src/cpu/sparc/vm/frame_sparc.cpp.i
 data/src/share/vm/runtime/orderAccess.cpp.i
-data/test/compiler/6589834/Test_ia32.java.i
+data/build/windows/build_vm_def.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/SOQLEngine.java.i
+data/make/bsd/makefiles/gcc.make.i
 data/build/solaris/makefiles/profiled.make.i
 data/test/compiler/6843752/Test.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/nbproject/project.xml.i
-data/agent/make/soqlwindbg64.bat.i
-data/agent/src/scripts/start-debug-server.sh.i
+data/agent/src/share/classes/images/toolbarButtonGraphics/general/Help16.gif.i
+data/src/share/vm/gc_implementation/g1/heapRegion.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/table/SortableTableModel.java.i
 data/agent/test/libproc/LibprocTest.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp.i
-data/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp.i
+data/src/share/vm/utilities/stack.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86CallInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/CharField.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlassKlass.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstructionFactory.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/MethodImpl.java.i
-data/src/share/vm/prims/jvmtiExtensions.hpp.i
+data/src/share/vm/services/threadService.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSModule.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/TestParser.java.i
-data/src/share/vm/utilities/copy.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/types/Field.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/FrameWrapper.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicOopField.java.i
 data/make/solaris/Queens.class.i
-data/src/share/vm/runtime/frame.inline.hpp.i
 data/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/PreferenceConstants.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/FindInCodeCachePanel.java.i
@@ -2632,15 +2770,14 @@ data/agent/src/share/classes/sun/jvm/hotspot/code/ConstantIntValue.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/PointerLocation.java.i
 data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/ColorIcon.java.i
 data/src/cpu/sparc/vm/bytes_sparc.hpp.i
-data/src/share/vm/compiler/compileBroker.hpp.i
+data/src/share/tools/MakeDeps/MacroDefinitions.java.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp.i
 data/build/solaris/platform_amd64.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/DefaultObjectVisitor.java.i
 data/build/solaris/makefiles/reorder_COMPILER2_sparcv9.i
 data/src/share/vm/runtime/atomic.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/amd64/LinuxAMD64CFrame.java.i
-data/src/share/vm/c1/c1_GraphBuilder.cpp.i
-data/src/os/solaris/dtrace/generateJvmOffsets.h.i
+data/test/compiler/6769124/TestDeoptInt6769124.java.i
+data/src/share/vm/runtime/vframeArray.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/ScopeDesc.java.i
 data/build/windows/projectfiles/compiler2/Makefile.i
 data/src/share/tools/MakeDeps/Database.java.i
@@ -2649,9 +2786,9 @@ data/agent/src/share/classes/sun/jvm/hotspot/memory/ProtectionDomainEntry.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FPop1Decoder.java.i
 data/src/share/vm/memory/genOopClosures.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/tree/LongTreeNodeAdapter.java.i
-data/src/share/vm/adlc/formsopt.cpp.i
+data/src/os_cpu/windows_x86/vm/bytes_windows_x86.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/BasicType.java.i
-data/src/cpu/zero/vm/jni_zero.h.i
+data/src/share/tools/IdealGraphVisualizer/Settings/build.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/DebuggerException.java.i
 data/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.cpp.i
 data/build/linux/platform_amd64.i
@@ -2659,8 +2796,8 @@ data/src/share/vm/shark/sharkConstant.cpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/FindPanel.java.i
 data/build/solaris/platform_sparc.gcc.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/CIntField.java.i
-data/src/share/tools/MakeDeps/WinGammaPlatform.java.i
-data/src/share/tools/IdealGraphVisualizer/Graph/nbproject/project.xml.i
+data/src/share/vm/ci/ciMethodKlass.hpp.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/DiagramConnectionWidget.java.i
 data/make/solaris/makefiles/reorder_CORE_sparc.i
 data/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/ByteField.java.i
@@ -2670,77 +2807,81 @@ data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEArithmeticDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgCDebugger.java.i
 data/src/share/vm/opto/divnode.cpp.i
 data/src/share/vm/interpreter/linkResolver.hpp.i
-data/src/share/vm/opto/mulnode.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSMap.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoad.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/SimpleTreeGroupNode.java.i
-data/make/altsrc.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicJByteField.java.i
 data/agent/src/share/classes/com/sun/java/swing/action/ApplyAction.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/GraphViewerImplementation.java.i
-data/build/solaris/makefiles/reorder_CORE_sparc.i
-data/src/cpu/x86/vm/templateTable_x86_64.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRegisterIndirectAddress.java.i
+data/test/runtime/6626217/many_loader1.java.foo.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/ReceiverTypeData.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/build.xml.i
 data/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp.i
 data/src/share/vm/prims/jvm_misc.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/LazyBlockSym.java.i
 data/src/share/vm/opto/addnode.cpp.i
+data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/src/com/sun/hotspot/igv/svg/layer.xml.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciObject.java.i
 data/src/share/vm/opto/loopnode.hpp.i
 data/make/linux/makefiles/sparcWorks.make.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/SAEditorPane.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/x86/ProcX86Thread.java.i
 data/agent/src/os/solaris/dbx/helloWorld.cpp.i
 data/src/share/vm/memory/permGen.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/amd64/AMD64ThreadContext.java.i
 data/src/os/solaris/dtrace/hotspot.d.i
-data/src/share/vm/ci/compilerInterface.hpp.i
 data/build/linux/makefiles/jvmti.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50ReservedTypes.java.i
 data/agent/make/pmapproc.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/ShortValueImpl.java.i
-data/src/share/vm/classfile/symbolTable.hpp.i
+data/src/cpu/x86/vm/nativeInst_x86.hpp.i
 data/src/share/vm/memory/oopFactory.hpp.i
 data/src/share/vm/interpreter/oopMapCache.cpp.i
 data/.hgignore.i
+data/src/share/vm/gc_implementation/g1/satbQueue.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/LineNumberTableElement.java.i
-data/src/share/vm/memory/collectorPolicy.hpp.i
 data/build/solaris/makefiles/amd64.make.i
-data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/JFrameWrapper.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/ReturnInstruction.java.i
 data/src/share/vm/code/vmreg.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCOpcodes.java.i
 data/src/share/tools/ProjectCreator/WinGammaPlatformVC8.java.i
 data/src/share/tools/IdealGraphVisualizer/Difference/nbproject/project.xml.i
-data/make/windows/projectfiles/compiler2/vm.dsw.i
+data/agent/src/share/classes/com/sun/java/swing/action/AlignCenterAction.java.i
+data/src/share/tools/MakeDeps/WinGammaPlatformVC8.java.i
 data/src/share/vm/prims/jvmtiImpl.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteOopHandle.java.i
-data/test/compiler/5091921/Test6890943.sh.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcThreadFactory.java.i
+data/src/cpu/zero/vm/bytecodes_zero.hpp.i
+data/make/solaris/platform_amd64.i
+data/src/share/vm/gc_implementation/g1/sparsePRT.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/SourceCodePanel.java.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/text/AlignLeft16.gif.i
 data/src/share/vm/interpreter/bytecodeInterpreter.hpp.i
 data/src/share/vm/opto/divnode.hpp.i
 data/src/share/vm/runtime/javaCalls.cpp.i
+data/make/solaris/makefiles/buildtree.make.i
 data/src/cpu/zero/vm/register_zero.cpp.i
 data/src/share/vm/opto/ifg.cpp.i
 data/src/share/vm/runtime/aprofiler.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaInstance.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlass.java.i
 data/src/os/windows/vm/jvm_windows.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeANewArray.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86XMMRegister.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPArithmeticDecoder.java.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/MethodNode.java.i
 data/src/cpu/sparc/vm/debug_sparc.cpp.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp.i
-data/src/share/vm/gc_implementation/g1/survRateGroup.cpp.i
-data/src/share/vm/gc_implementation/g1/satbQueue.hpp.i
+data/src/share/vm/memory/filemap.cpp.i
+data/src/share/vm/oops/oop.psgc.inline.hpp.i
 data/src/share/vm/utilities/ostream.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java.i
 data/src/share/tools/IdealGraphVisualizer/RhinoScriptEngineProxy/manifest.mf.i
 data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/nbproject/build-impl.xml.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MMXRegister.java.i
 data/test/compiler/7017746/Test.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/types/JCharField.java.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/ExpandPredecessorsAction.java.i
+data/agent/src/share/classes/images/toolbarButtonGraphics/general/Save16.gif.i
 data/src/share/tools/IdealGraphVisualizer/RhinoScriptEngineProxy/src/com/sun/hotspot/igv/rhino/layer.xml.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputEdge.java.i
 data/agent/src/os/linux/test.c.i
@@ -2750,59 +2891,57 @@ data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/Boun
 data/build/solaris/adlc_updater.i
 data/src/share/vm/utilities/events.hpp.i
 data/src/cpu/sparc/vm/methodHandles_sparc.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorDecoder.java.i
-data/test/compiler/6855215/Test6855215.java.i
+data/build/windows/makefiles/adlc.make.i
 data/LICENSE.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/nbproject/project.xml.i
 data/src/share/vm/ci/ciTypeArrayKlass.cpp.i
-data/src/share/vm/memory/resourceArea.hpp.i
-data/src/cpu/zero/vm/copy_zero.hpp.i
+data/test/compiler/6757316/Test6757316.java.i
+data/src/share/tools/IdealGraphVisualizer/NetworkConnection/src/com/sun/hotspot/igv/connection/Client.java.i
 data/src/share/vm/ci/bcEscapeAnalyzer.cpp.i
-data/src/share/vm/gc_implementation/g1/g1AllocRegion.cpp.i
 data/src/os_cpu/linux_zero/vm/os_linux_zero.hpp.i
 data/src/os_cpu/windows_x86/vm/globals_windows_x86.hpp.i
+data/src/os/bsd/vm/globals_bsd.hpp.i
 data/src/share/vm/classfile/verificationType.cpp.i
-data/src/os/windows/vm/mutex_windows.inline.hpp.i
+data/src/share/vm/memory/barrierSet.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/StoreInstruction.java.i
 data/make/solaris/makefiles/sparcv9.make.i
 data/src/share/vm/compiler/compileBroker.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPopDecoder.java.i
+data/agent/src/os/solaris/proc/saproc.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/VirtualCallData.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicRefType.java.i
 data/src/share/vm/runtime/compilationPolicy.hpp.i
 data/src/os/solaris/vm/stubRoutines_solaris.cpp.i
 data/src/share/vm/opto/coalesce.hpp.i
 data/src/share/vm/shark/shark_globals.hpp.i
 data/src/share/tools/launcher/jli_util.h.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/OverviewAction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86ArithmeticInstruction.java.i
-data/src/share/vm/gc_implementation/shared/spaceDecorator.hpp.i
+data/src/share/vm/opto/cfgnode.cpp.i
 data/src/cpu/x86/vm/register_x86.cpp.i
 data/test/compiler/6894807/IsInstanceTest.java.i
+data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/FilterChainProviderImplementation.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicBlockSym.java.i
-data/src/share/vm/classfile/classFileParser.hpp.i
-data/src/cpu/sparc/vm/vmreg_sparc.hpp.i
+data/test/compiler/6539464/Test.java.i
+data/src/share/vm/runtime/simpleThresholdPolicy.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/EditableAtEndDocument.java.i
-data/test/compiler/6885584/Test6885584.java.i
 data/build/windows/projectfiles/compiler2/vm.dsw.i
-data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/OutlineTopComponentWstcref.xml.i
+data/src/share/vm/opto/block.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicPointerType.java.i
-data/agent/make/Makefile.i
+data/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/BlockConnectionWidget.java.i
 data/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeInvoke.java.i
-data/src/share/vm/memory/allocation.hpp.i
-data/make/linux/Queens.class.i
+data/src/share/vm/prims/jvmtiTrace.cpp.i
 data/src/os/solaris/vm/objectMonitor_solaris.hpp.i
-data/src/share/vm/Xusage.txt.i
 data/src/share/vm/prims/jvmtiTagMap.cpp.i
 data/src/share/vm/code/compressedStream.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/nbproject/build-impl.xml.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/LinearAllocBlock.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrivilegedRegisterInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/JNIHandleBlock.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86ShiftInstruction.java.i
-data/src/share/vm/classfile/javaClasses.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSSymbolBase.java.i
-data/src/share/vm/ci/ciType.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/SharedHeap.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcCFrame.java.i
+data/make/solaris/platform_sparc.gcc.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/PlaceholderTable.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegisters.java.i
+data/src/share/vm/prims/jvmtiEnv.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFException.java.i
 data/src/share/vm/oops/compiledICHolderOop.cpp.i
 data/src/share/vm/prims/methodHandles.cpp.i
 data/src/share/vm/memory/tenuredGeneration.hpp.i
@@ -2810,7 +2949,7 @@ data/agent/src/share/classes/sun/jvm/hotspot/utilities/MessageQueueBackend.java.
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/SAJDIClassLoader.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/DummySymbolFinder.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/CTypeTreeNodeAdapter.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/HashtableBucket.java.i
 data/src/share/vm/classfile/stackMapTable.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Disassembler.java.i
 data/build/test/Queens.java.i
@@ -2818,39 +2957,46 @@ data/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp.i
 data/src/cpu/x86/vm/assembler_x86.inline.hpp.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/Graph.java.i
 data/make/sa.files.i
+data/src/os/bsd/vm/jvm_bsd.h.i
 data/src/share/vm/shark/sharkCodeBuffer.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/LogicalDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxCDebugger.java.i
 data/src/share/vm/gc_implementation/g1/g1RemSet.cpp.i
 data/src/share/vm/runtime/javaFrameAnchor.hpp.i
-data/make/linux/makefiles/amd64.make.i
+data/src/share/vm/gc_implementation/parNew/vmStructs_parNew.hpp.i
 data/agent/src/os/win32/SwDbgSrv.dsp.i
-data/src/share/vm/runtime/mutex.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/action/MemoryAction.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSGlobalSym.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/treetable/TreeTableModelAdapter.java.i
+data/src/share/vm/gc_implementation/g1/g1_globals.hpp.i
+data/src/share/tools/IdealGraphVisualizer/Settings/nbproject/genfiles.properties.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/ChangedEventProvider.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/Node_Array.java.i
 data/src/share/tools/IdealGraphVisualizer/Layout/manifest.mf.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/SharedObject.java.i
+data/src/share/vm/classfile/loaderConstraints.cpp.i
+data/src/share/vm/c1/c1_Instruction.hpp.i
 data/src/cpu/x86/vm/templateInterpreter_x86.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/interpreter/Interpreter.java.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/HierarchicalGraphLayout.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/NativeSignatureIterator.java.i
 data/src/share/vm/prims/jvmtiCodeBlobEvents.hpp.i
-data/make/windows/README.i
+data/src/cpu/sparc/vm/nativeInst_sparc.hpp.i
+data/src/os_cpu/windows_x86/vm/copy_windows_x86.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FloatGRPDecoder.java.i
+data/src/cpu/zero/vm/interp_masm_zero.cpp.i
 data/src/cpu/x86/vm/runtime_x86_64.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugDirectoryEntry.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaArray.java.i
-data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/RemoveSelfLoopsFilter.java.i
+data/src/share/vm/oops/typeArrayKlass.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/livejvm/ExceptionEvent.java.i
-data/src/share/vm/c1/c1_Optimizer.hpp.i
+data/src/share/vm/ci/ciExceptionHandler.cpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/EditorInputGraphProvider.java.i
 data/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp.i
 data/build/windows/jvmexp_g.lcf.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SubsectionDirectory.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/table/SortHeaderMouseAdapter.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/livejvm/BreakpointEvent.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/jdi/VoidTypeImpl.java.i
+data/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.hpp.i
 data/test/runtime/6925573/SortMethodsTest.java.i
-data/src/cpu/zero/vm/stubGenerator_zero.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicJCharField.java.i
+data/src/share/tools/IdealGraphVisualizer/ControlFlow/manifest.mf.i
+data/src/share/vm/compiler/abstractCompiler.hpp.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/HierarchicalLayoutManager.java.i
 data/agent/make/hsdb.bat.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/Edge.java.i
@@ -2865,18 +3011,17 @@ data/agent/src/share/classes/sun/jvm/hotspot/types/JIntField.java.i
 data/src/cpu/x86/vm/stubGenerator_x86_64.cpp.i
 data/src/share/vm/c1/c1_Defs.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/parallelScavenge/PSOldGen.java.i
-data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64JavaCallWrapper.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp.i
-data/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp.i
-data/src/share/vm/compiler/disassembler.cpp.i
+data/src/share/vm/c1/c1_FpuStackSim.hpp.i
+data/src/share/vm/shark/sharkType.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/OopVisitor.java.i
 data/src/share/vm/shark/sharkValue.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/MaskFillerForNative.java.i
 data/src/os/solaris/vm/objectMonitor_solaris.inline.hpp.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/ClusterOutgoingConnection.java.i
 data/src/os_cpu/solaris_sparc/vm/prefetch_solaris_sparc.inline.hpp.i
-data/src/share/vm/services/threadService.cpp.i
+data/test/compiler/6663848/Tester.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50Subsection.java.i
 data/src/share/vm/code/relocInfo.cpp.i
 data/src/share/vm/shark/sharkTopLevelBlock.cpp.i
@@ -2885,17 +3030,20 @@ data/agent/src/share/classes/sun/jvm/hotspot/jdi/CharValueImpl.java.i
 data/src/share/vm/runtime/arguments.hpp.i
 data/src/share/vm/memory/allocationStats.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/sparc/RemoteSPARCThread.java.i
+data/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java.i
 data/src/share/vm/runtime/init.cpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.cpp.i
+data/src/cpu/sparc/vm/relocInfo_sparc.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/ArrayType.java.i
-data/src/os/solaris/vm/os_solaris.hpp.i
+data/src/os_cpu/windows_x86/vm/assembler_windows_x86_32.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialLoadInstruction.java.i
-data/src/share/vm/opto/parseHelper.cpp.i
+data/test/compiler/6659207/Test.java.i
 data/build/windows/projectfiles/compiler2/vm.def.i
 data/src/share/vm/c1/c1_Canonicalizer.cpp.i
+data/src/share/vm/gc_implementation/g1/g1ErgoVerbose.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/Assert.java.i
 data/src/cpu/x86/vm/bytecodeInterpreter_x86.hpp.i
-data/src/cpu/x86/vm/runtime_x86_32.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SubsectionDirectory.java.i
 data/src/share/vm/compiler/compilerOracle.hpp.i
 data/src/share/tools/MakeDeps/FileFormatException.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/CVAttributes.java.i
@@ -2906,252 +3054,268 @@ data/src/share/vm/runtime/vm_version.cpp.i
 data/agent/src/share/native/jvmdi/sa.cpp.i
 data/src/share/vm/adlc/arena.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java.i
-data/src/share/vm/ci/ciField.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxOopHandle.java.i
+data/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp.i
+data/test/compiler/6930043/Test6930043.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MembarInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/action/FindAction.java.i
 data/src/os_cpu/solaris_x86/vm/solaris_x86_32.il.i
 data/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SrcModFileDesc.java.i
-data/build/linux/makefiles/i486.make.i
-data/src/share/vm/c1/c1_ValueType.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/DataSource.java.i
+data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/BoundedZoomAction.java.i
 data/src/share/vm/runtime/aprofiler.cpp.i
 data/src/share/vm/gc_implementation/shared/spaceCounters.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicEnumType.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstruction.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeJsr.java.i
-data/src/share/vm/adlc/filebuff.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/JNIHandles.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50X86RegisterEnums.java.i
-data/src/share/vm/c1/c1_ValueStack.cpp.i
+data/src/share/vm/gc_implementation/g1/concurrentZFThread.cpp.i
+data/src/share/vm/ci/ciUtilities.cpp.i
+data/src/share/vm/shark/sharkContext.cpp.i
+data/src/share/vm/services/psMemoryPool.hpp.i
+data/src/share/vm/oops/arrayOop.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/FindInHeapPanel.java.i
 data/src/share/tools/hsdis/hsdis.h.i
 data/src/share/tools/LogCompilation/manifest.mf.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFSymbol.java.i
+data/src/os_cpu/bsd_x86/vm/thread_bsd_x86.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SpecialLoadDecoder.java.i
 data/src/cpu/sparc/vm/copy_sparc.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64Frame.java.i
-data/src/share/vm/utilities/elfStringTable.cpp.i
-data/src/os_cpu/linux_x86/vm/assembler_linux_x86_64.cpp.i
+data/src/share/vm/runtime/stubCodeGenerator.cpp.i
 data/agent/make/start-debug-server-proc.sh.i
+data/make/bsd/platform_sparcv9.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFHashTable.java.i
+data/make/bsd/makefiles/core.make.i
 data/build/linux/makefiles/jvmg.make.i
-data/build/linux/build.sh.i
-data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeStore.java.i
-data/src/share/vm/utilities/accessFlags.hpp.i
+data/src/share/vm/opto/chaitin.hpp.i
+data/build/solaris/makefiles/compiler2.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/Interval.java.i
-data/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/Port.java.i
 data/src/share/vm/adlc/dict2.hpp.i
 data/src/cpu/x86/vm/disassembler_x86.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50TypeEnums.java.i
+data/make/solaris/makefiles/reorder_COMPILER1_amd64.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/layer.xml.i
 data/agent/src/os/win32/toolHelp.cpp.i
 data/make/pic.make.i
 data/src/share/vm/oops/instanceKlass.hpp.i
-data/src/share/tools/MakeDeps/DirectoryTree.java.i
+data/src/share/vm/ci/ciMethodHandle.cpp.i
 data/agent/src/share/lib/jlfgr-1_0.jar.i
-data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.cpp.i
-data/src/share/vm/gc_implementation/shared/allocationStats.cpp.i
+data/test/compiler/6478991/NullCheckTest.java.i
+data/make/linux/makefiles/hp.make.i
 data/build/solaris/makefiles/i486.make.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/PrevDiagramAction.java.i
-data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/nbproject/genfiles.properties.i
-data/src/cpu/zero/vm/stack_zero.cpp.i
+data/src/share/vm/oops/constMethodOop.hpp.i
+data/src/os/windows/vm/objectMonitor_windows.cpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/next_diagram.png.i
-data/src/share/vm/utilities/hashtable.hpp.i
+data/src/share/vm/oops/arrayKlass.hpp.i
 data/src/cpu/sparc/vm/templateInterpreter_sparc.cpp.i
 data/src/share/vm/ci/ciMethodData.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/AddressField.java.i
 data/agent/doc/index.html.i
 data/src/share/vm/c1/c1_LIRAssembler.hpp.i
-data/build/linux/makefiles/dtrace.make.i
+data/build/solaris/Queens.class.i
 data/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp.i
 data/test/compiler/6756768/Test6756768_2.java.i
-data/src/os/posix/vm/os_posix.cpp.i
-data/src/share/vm/gc_implementation/parNew/parOopClosures.hpp.i
-data/test/compiler/6378821/Test6378821.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/CharTreeNodeAdapter.java.i
+data/agent/src/os/solaris/proc/libproc.h.i
+data/src/share/vm/oops/klass.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86RegisterMap.java.i
+data/test/compiler/6855215/Test6855215.java.i
 data/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp.i
 data/src/share/vm/memory/dump.cpp.i
 data/make/windows/jvmexp.lcf.i
 data/src/share/vm/opto/compile.cpp.i
-data/src/os/linux/vm/mutex_linux.inline.hpp.i
+data/src/share/vm/ci/ciTypeFlow.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/HighPrecisionJScrollBar.java.i
 data/src/share/vm/utilities/utf8.cpp.i
 data/src/share/vm/c1/c1_LIR.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86PCRelativeAddress.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/action/InspectAction.java.i
-data/test/compiler/6714694/Tester.java.i
+data/make/bsd/makefiles/fastdebug.make.i
+data/src/cpu/sparc/vm/interpreter_sparc.cpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFormat3AInstruction.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/RootNode.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/Address.java.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputNode.java.i
 data/src/share/vm/interpreter/templateInterpreter.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Difference/build.xml.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/CompoundType.java.i
+data/src/share/vm/runtime/advancedThresholdPolicy.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/FloatField.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicLineNumberInfo.java.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/general/About16.gif.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/LongTypeImpl.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/META-INF/services/com.sun.hotspot.igv.data.services.GroupOrganizer.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRettInstruction.java.i
+data/src/share/tools/MakeDeps/WinGammaPlatformVC6.java.i
 data/src/os/solaris/vm/vtune_solaris.cpp.i
 data/src/os/linux/vm/jsig.c.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/MemoryPanel.java.i
-data/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/FloatType.java.i
-data/src/share/tools/launcher/jli_util.c.i
-data/src/cpu/sparc/vm/c1_Defs_sparc.hpp.i
+data/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp.i
+data/src/share/vm/oops/methodDataKlass.hpp.i
+data/make/solaris/makefiles/cscope.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPArithmeticInstruction.java.i
 data/src/cpu/x86/vm/stubRoutines_x86_64.cpp.i
 data/agent/src/os/win32/serverLists.cpp.i
 data/src/share/vm/adlc/forms.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/CMSPermGen.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/RegisterMap.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/LogicInstruction.java.i
+data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/Bundle.properties.i
 data/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp.i
 data/src/share/tools/MakeDeps/WinGammaPlatformVC7.java.i
 data/build/windows/projectfiles/kernel/Makefile.i
 data/src/cpu/x86/vm/stubGenerator_x86_32.cpp.i
 data/src/share/vm/adlc/output_h.cpp.i
+data/agent/src/os/bsd/test.c.i
+data/agent/src/share/classes/sun/jvm/hotspot/tools/Tool.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/PrimitiveTypeImpl.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFSectionHeader.java.i
+data/agent/src/share/classes/com/sun/java/swing/ui/CommonToolBar.java.i
 data/agent/src/share/classes/com/sun/java/swing/action/FinishAction.java.i
 data/test/compiler/6921969/TestMultiplyLongHiZero.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/UnsupportedPlatformException.java.i
-data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/RangeSliderModel.java.i
+data/src/cpu/x86/vm/runtime_x86_32.cpp.i
+data/test/compiler/6800154/Test6800154.java.i
+data/make/bsd/platform_i486.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/nbproject/project.properties.i
+data/build/linux/makefiles/jsig.make.i
 data/src/share/vm/utilities/defaultStream.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/MultiNode.java.i
 data/test/compiler/6852078/Test6852078.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/BlockSym.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86GeneralInstruction.java.i
 data/make/windows/projectfiles/tiered/ADLCompiler.dsp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/dummy/DummyOopHandle.java.i
+data/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp.i
 data/src/share/vm/ci/ciArrayKlass.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/AddressDataSource.java.i
-data/src/share/vm/utilities/stack.inline.hpp.i
+data/agent/src/share/classes/com/sun/java/swing/ui/CommonUI.java.i
 data/src/share/vm/opto/optoreg.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Graph/nbproject/platform.properties.i
 data/agent/make/jcoreproc.sh.i
+data/src/share/vm/oops/fieldStreams.hpp.i
 data/build/solaris/makefiles/reorder_TIERED_i486.i
-data/src/share/vm/oops/oop.pcgc.inline.hpp.i
+data/src/share/vm/utilities/array.cpp.i
 data/src/share/vm/classfile/classLoader.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdSignals.java.i
 data/test/compiler/7009359/Test7009359.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9RegisterBranchDecoder.java.i
+data/src/share/tools/IdealGraphVisualizer/View/nbproject/project.properties.i
 data/src/share/vm/gc_interface/collectedHeap.inline.hpp.i
 data/src/share/vm/memory/memRegion.cpp.i
 data/src/share/tools/hsdis/hsdis-demo.c.i
 data/src/share/vm/interpreter/bytecodeTracer.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/Characteristics.java.i
+data/test/compiler/6885584/Test6885584.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Registers.java.i
+data/test/compiler/7070134/Stemmer.java.i
 data/src/cpu/zero/vm/assembler_zero.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/HashtableEntry.java.i
 data/src/os/solaris/launcher/java.h.i
 data/agent/src/os/linux/symtab.h.i
 data/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp.i
 data/src/cpu/sparc/vm/icache_sparc.hpp.i
-data/src/share/vm/opto/classes.cpp.i
-data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/BytecodeViewTopComponent.form.i
+data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/ClusterInputSlotNode.java.i
 data/src/share/vm/ci/ciArray.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciConstant.java.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/SelectBytecodesAction.java.i
-data/make/windows/platform_i486.i
+data/src/share/vm/includeDB_gc_parallel.i
 data/src/share/vm/runtime/basicLock.hpp.i
 data/src/share/vm/runtime/virtualspace.hpp.i
-data/build/linux/makefiles/gcc.make.i
+data/src/share/vm/asm/assembler.cpp.i
+data/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentGCThread.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/CallDecoder.java.i
 data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/EditFilterDialog.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/ia64/LinuxIA64ThreadContext.java.i
-data/src/share/vm/runtime/osThread.hpp.i
+data/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Bundle.properties.i
+data/src/share/vm/runtime/vmThread.hpp.i
+data/make/linux/makefiles/amd64.make.i
 data/src/share/vm/gc_implementation/includeDB_gc_g1.i
+data/build/windows/projectfiles/kernel/vm.dsw.i
 data/src/share/vm/ci/ciClassList.hpp.i
 data/src/share/tools/ProjectCreator/DirectoryTreeNode.java.i
-data/src/share/vm/c1/c1_Runtime1.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Opcodes.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/jdi/LocationImpl.java.i
-data/src/os_cpu/windows_x86/vm/threadLS_windows_x86.hpp.i
+data/src/share/vm/ci/ciType.cpp.i
+data/src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp.i
+data/src/share/tools/hsdis/README.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/Node.java.i
 data/src/share/vm/utilities/growableArray.cpp.i
 data/src/os_cpu/windows_x86/vm/thread_windows_x86.hpp.i
 data/src/share/vm/code/codeBlob.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/MonitorCacheDumpPanel.java.i
 data/src/cpu/x86/vm/templateInterpreterGenerator_x86.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/memo/MemoizedInt.java.i
+data/src/share/vm/runtime/signature.cpp.i
 data/src/share/vm/utilities/decoder.hpp.i
 data/src/share/vm/memory/genCollectedHeap.hpp.i
+data/make/windows/cross_build.bat.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/WatcherThread.java.i
-data/src/share/vm/ci/ciCPCache.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/sparc/ProcSPARCThreadFactory.java.i
+data/src/share/vm/gc_implementation/shared/gcStats.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/LoaderConstraintEntry.java.i
 data/make/scm.make.i
 data/src/share/vm/oops/constantPoolKlass.hpp.i
+data/test/compiler/7082949/Test7082949.java.i
 data/src/share/vm/services/memoryManager.cpp.i
 data/src/share/vm/classfile/stackMapTableFormat.hpp.i
-data/make/linux/makefiles/defs.make.i
+data/make/solaris/makefiles/kernel.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicDoubleType.java.i
 data/src/share/vm/memory/memRegion.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/amd64/AMD64CFrame.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/IndexableFieldIdentifier.java.i
 data/src/share/tools/IdealGraphVisualizer/RhinoScriptEngineProxy/nbproject/suite.properties.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/ObjArray.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FMOVccInstruction.java.i
-data/src/share/vm/ci/ciMethodHandle.hpp.i
-data/test/compiler/6932496/Test6932496.java.i
+data/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeCheckCast.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/ProjNode.java.i
 data/src/os_cpu/solaris_sparc/vm/solaris_sparc.ad.i
-data/src/share/vm/opto/superword.hpp.i
+data/src/cpu/zero/vm/javaFrameAnchor_zero.hpp.i
+data/make/bsd/makefiles/jvmg.make.i
 data/src/share/vm/utilities/globalDefinitions.cpp.i
 data/src/os/linux/launcher/java.h.i
 data/src/cpu/zero/vm/vmreg_zero.inline.hpp.i
+data/make/bsd/makefiles/jsig.make.i
 data/src/share/tools/hsdis/Makefile.i
-data/src/share/vm/prims/jvmtiEventController.cpp.i
+data/test/gc/7072527/TestFullGCCount.java.i
 data/src/cpu/x86/vm/methodHandles_x86.hpp.i
 data/src/cpu/x86/vm/register_definitions_x86.cpp.i
+data/make/bsd/platform_ia64.i
 data/src/share/vm/memory/genCollectedHeap.cpp.i
 data/make/linux/makefiles/jvmti.make.i
-data/src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp.i
+data/src/share/vm/compiler/compileLog.hpp.i
 data/src/os/linux/vm/decoder_linux.cpp.i
 data/src/cpu/sparc/vm/sharedRuntime_sparc.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/FieldType.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/jdi/IntegerTypeImpl.java.i
+data/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp.i
 data/src/share/vm/prims/jvmtiThreadState.inline.hpp.i
 data/src/share/vm/interpreter/interpreter.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSSrcModule.java.i
+data/src/cpu/sparc/vm/interpreter_sparc.hpp.i
 data/agent/src/os/linux/libproc_impl.c.i
 data/src/os/windows/vm/stubRoutines_windows.cpp.i
 data/build/solaris/makefiles/sparcWorks.make.i
 data/src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp.i
 data/agent/src/os/win32/ioUtils.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/KlassKlass.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterPart.java.i
+data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/build.xml.i
 data/src/share/vm/shark/llvmHeaders.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ReadWriteDecoder.java.i
 data/build/solaris/makefiles/optimized.make.i
-data/src/share/vm/opto/domgraph.cpp.i
 data/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_32.cpp.i
 data/agent/make/hsdbwindbg64.bat.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/LivenessPath.java.i
+data/agent/src/os/win32/libInfo.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/BranchDecoder.java.i
-data/src/share/vm/libadt/port.cpp.i
+data/src/os/windows/vm/osThread_windows.hpp.i
 data/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp.i
-data/src/cpu/x86/vm/depChecker_x86.hpp.i
+data/test/compiler/6935535/Test.java.i
 data/agent/make/jcorewindbg.bat.i
-data/make/windows/projectfiles/core/Makefile.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstIterator.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFP2RegisterInstruction.java.i
-data/src/share/tools/IdealGraphVisualizer/ControlFlow/nbproject/genfiles.properties.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCArithmeticInstruction.java.i
+data/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/FunctionSym.java.i
+data/src/os_cpu/bsd_zero/vm/threadLS_bsd_zero.hpp.i
 data/build/solaris/makefiles/saproc.make.i
 data/make/solaris/makefiles/gcc.make.i
 data/src/share/vm/runtime/os.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/BitMap.java.i
-data/src/cpu/x86/vm/sharedRuntime_x86_64.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFFile.java.i
+data/make/windows/makefiles/projectcreator.make.i
+data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/actions/DiffGraphCookie.java.i
+data/src/cpu/x86/vm/jni_x86.h.i
 data/src/share/vm/ci/ciInstanceKlassKlass.hpp.i
-data/src/share/vm/runtime/basicLock.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcCFrame.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/MappedByteBufferDataSource.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/LazyType.java.i
+data/src/share/vm/shark/sharkNativeWrapper.cpp.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/removeSafepointInputs.filter.i
 data/agent/make/start-debug-server-windbg64.bat.i
 data/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp.i
 data/test/compiler/6712835/Test6712835.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FMOVccDecoder.java.i
+data/src/share/tools/IdealGraphVisualizer/ControlFlow/nbproject/platform.properties.i
 data/src/share/vm/oops/arrayKlassKlass.hpp.i
 data/agent/src/os/win32/isNT4.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86InstructionFactoryImpl.java.i
+data/make/linux/platform_zero.in.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcOopHandle.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/MapScriptObject.java.i
-data/src/os/solaris/vm/osThread_solaris.hpp.i
+data/src/share/tools/IdealGraphVisualizer/Difference/manifest.mf.i
 data/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/tree/ObjectTreeNodeAdapter.java.i
 data/src/share/vm/opto/parse3.cpp.i
@@ -3160,46 +3324,48 @@ data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RegisterBranchInst
 data/src/cpu/x86/vm/c1_LinearScan_x86.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/IndexableFieldIdentifier.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicSym.java.i
-data/agent/src/share/classes/images/toolbarButtonGraphics/text/AlignRight16.gif.i
+data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeJsrW.java.i
 data/src/share/vm/services/lowMemoryDetector.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/CardGeneration.java.i
+data/build/linux/makefiles/compiler1.make.i
 data/src/share/vm/runtime/reflection.cpp.i
+data/make/bsd/makefiles/shark.make.i
 data/src/os/windows/vm/vmError_windows.cpp.i
 data/src/cpu/sparc/vm/assembler_sparc.cpp.i
 data/src/share/vm/shark/sharkCacheDecache.cpp.i
-data/agent/make/jsdbwindbg.bat.i
-data/src/share/tools/MakeDeps/MacroDefinitions.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/ObjectVisitor.java.i
-data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCompilation.java.i
-data/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/HeapPrinter.java.i
+data/src/share/vm/c1/c1_Canonicalizer.hpp.i
+data/src/share/vm/compiler/compileBroker.hpp.i
+data/src/share/vm/opto/subnode.cpp.i
+data/build/windows/makefiles/vm.make.i
+data/src/share/vm/ci/ciCPCache.cpp.i
+data/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.i
 data/src/share/vm/c1/c1_LIRAssembler.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicLocalSym.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java.i
+data/make/altsrc.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/StringTable.java.i
 data/src/share/vm/ci/ciEnv.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/x86/ProcX86Thread.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/SAEditorPane.java.i
 data/src/share/vm/prims/jvmtiEnter.hpp.i
 data/build/windows/projectfiles/tiered/vm.dsw.i
-data/make/solaris/platform_amd64.i
+data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/OutlineTopComponentWstcref.xml.i
 data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/UncommonTrapEvent.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodData.java.i
 data/src/cpu/x86/vm/interpreterRT_x86.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/NarrowOopField.java.i
-data/make/solaris/makefiles/dtrace.make.i
-data/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp.i
+data/src/share/vm/utilities/elfFile.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/AuxFunctionDefinitionRecord.java.i
 data/src/share/vm/classfile/verificationType.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js.i
-data/src/share/vm/oops/objArrayKlass.hpp.i
+data/src/os_cpu/bsd_x86/vm/threadLS_bsd_x86.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/manifest.mf.i
-data/agent/src/share/classes/sun/jvm/hotspot/jdi/ObjectReferenceImpl.java.i
-data/src/share/vm/utilities/intHisto.hpp.i
+data/src/share/vm/memory/blockOffsetTable.inline.hpp.i
 data/build/linux/makefiles/fastdebug.make.i
 data/src/share/vm/opto/macro.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Helper.java.i
+data/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/actions/OutlineAction.java.i
-data/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp.i
+data/build/solaris/makefiles/hp1.make.i
+data/src/os_cpu/bsd_zero/vm/orderAccess_bsd_zero.inline.hpp.i
 data/src/os/solaris/dtrace/generateJvmOffsetsMain.c.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialRegisters.java.i
+data/src/cpu/sparc/vm/c2_globals_sparc.hpp.i
 data/src/share/vm/runtime/vm_operations.cpp.i
 data/agent/make/pmapwindbg.bat.i
 data/agent/src/share/classes/com/sun/java/swing/action/AboutAction.java.i
@@ -3208,153 +3374,170 @@ data/src/share/vm/shark/sharkRuntime.cpp.i
 data/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp.i
 data/src/share/vm/prims/jvmtiEnvBase.cpp.i
 data/src/share/vm/adlc/forms.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/tools/FinalizerInfo.java.i
+data/agent/src/os/bsd/ps_core.c.i
+data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/nbproject/project.properties.i
 data/build/linux/makefiles/rules.make.i
 data/src/share/vm/gc_implementation/g1/g1RemSet.inline.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/MarkBits.java.i
-data/src/cpu/sparc/vm/icBuffer_sparc.cpp.i
+data/src/share/vm/memory/allocation.hpp.i
+data/agent/src/os/win32/procList.cpp.i
 data/src/share/vm/oops/methodDataOop.cpp.i
-data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/BoundedZoomAction.java.i
-data/src/share/tools/MakeDeps/DirectoryTreeNode.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/UnimpDecoder.java.i
+data/src/share/vm/prims/nativeLookup.hpp.i
+data/src/share/vm/opto/parseHelper.cpp.i
+data/src/share/vm/prims/jvmtiEventController.cpp.i
 data/test/compiler/6796786/Test6796786.java.i
 data/src/share/vm/utilities/debug.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Layout/nbproject/project.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/LoadInstruction.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/LoaderConstraintTable.java.i
-data/make/linux/makefiles/hp.make.i
-data/src/share/vm/oops/arrayKlass.hpp.i
+data/test/compiler/6795161/Test.java.i
+data/src/share/vm/gc_implementation/shared/allocationStats.cpp.i
+data/src/share/vm/utilities/hashtable.hpp.i
 data/test/compiler/6863420/Test.java.i
 data/src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp.i
 data/src/cpu/x86/vm/vmreg_x86.inline.hpp.i
-data/make/solaris/makefiles/debug.make.i
-data/src/os/windows/vm/perfMemory_windows.cpp.i
-data/agent/make/dumpflagsproc64.sh.i
+data/src/share/vm/utilities/array.hpp.i
+data/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/Port.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/MemoryPanel.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPLoadInstruction.java.i
-data/src/cpu/sparc/vm/globalDefinitions_sparc.hpp.i
-data/src/share/vm/services/psMemoryPool.cpp.i
+data/test/compiler/6589834/Test_ia32.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java.i
 data/src/share/vm/ci/ciMethodData.hpp.i
-data/src/share/vm/gc_implementation/shared/mutableSpace.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50TypeIterator.java.i
-data/agent/src/share/classes/com/sun/java/swing/ui/CommonUI.java.i
+data/src/share/vm/opto/lcm.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/BlockSym.java.i
+data/src/share/vm/utilities/stack.inline.hpp.i
 data/src/share/vm/opto/multnode.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/Field.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/BasicTypeSize.java.i
+data/src/share/vm/gc_implementation/g1/g1HRPrinter.hpp.i
+data/build/linux/makefiles/gcc.make.i
 data/src/os/windows/vm/objectMonitor_windows.hpp.i
 data/make/solaris/makefiles/jvmg.make.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/services/InputGraphProvider.java.i
-data/src/share/vm/memory/watermark.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/code/Location.java.i
 data/src/share/vm/memory/permGen.cpp.i
-data/src/os/linux/vm/chaitin_linux.cpp.i
+data/src/share/vm/runtime/deoptimization.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Graph/build.xml.i
-data/make/windows/cross_build.bat.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethod.java.i
+data/src/share/vm/classfile/symbolTable.cpp.i
 data/agent/make/jhistowindbg64.bat.i
 data/build/windows/makefiles/sanity.make.i
 data/agent/src/os/win32/SwDbgSub.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Group.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/Annotation.java.i
-data/src/os/windows/vm/osThread_windows.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstIterator.java.i
+data/src/share/vm/libadt/port.cpp.i
+data/make/windows/projectfiles/core/Makefile.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86InstructionFactory.java.i
 data/build/windows/create.bat.i
 data/test/compiler/6991596/Test6991596.java.i
 data/src/share/vm/code/nmethod.cpp.i
 data/src/share/vm/includeDB_gc.i
-data/build/windows/makefiles/vm.make.i
+data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCompilation.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/JStack.java.i
-data/src/share/vm/runtime/osThread.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9WrprInstruction.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/LineWidget.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadFactory.java.i
+data/src/share/tools/launcher/jli_util.c.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/ExpandSuccessorsAction.java.i
 data/build/solaris/platform_amd64.gcc.i
 data/agent/src/share/classes/sun/jvm/hotspot/livejvm/ServiceabilityAgentJVMDIModule.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/RevPtrsTreeNodeAdapter.java.i
-data/agent/src/os/win32/procList.cpp.i
+data/src/cpu/sparc/vm/icBuffer_sparc.cpp.i
+data/agent/test/libproc/libproctest.sh.i
 data/src/os/linux/launcher/java_md.c.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/MultiBranchData.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/InputSlotWidget.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/code/Location.java.i
+data/src/share/vm/memory/watermark.hpp.i
 data/src/share/vm/memory/restore.cpp.i
-data/src/share/vm/code/codeBlob.hpp.i
-data/agent/src/os/win32/README-commands.txt.i
-data/src/share/vm/code/relocInfo.hpp.i
+data/src/share/vm/services/management.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/IntegerEnum.java.i
+data/src/share/vm/prims/jvmtiEnter.xsl.i
 data/build/solaris/makefiles/rules.make.i
-data/src/share/vm/code/scopeDesc.hpp.i
+data/src/share/vm/oops/compiledICHolderKlass.hpp.i
 data/src/os/solaris/vm/jvm_solaris.h.i
-data/agent/src/share/classes/sun/jvm/hotspot/code/CompressedStream.java.i
+data/src/share/vm/code/scopeDesc.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86JavaCallWrapper.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/RegionNode.java.i
 data/agent/src/scripts/start-rmiregistry.sh.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEShiftDecoder.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/BasicHashtable.java.i
+data/src/cpu/zero/vm/frame_zero.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/x86/LinuxX86ThreadContext.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSwapInstruction.java.i
 data/src/share/tools/ProjectCreator/MacroDefinitions.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramScene.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/treetable/AbstractTreeTableModel.java.i
 data/build/linux/platform_amd64.suncc.i
-data/src/cpu/zero/vm/interpreterFrame_zero.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorDecoder.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/code/CompressedStream.java.i
+data/src/os/bsd/vm/c1_globals_bsd.hpp.i
 data/src/os/solaris/vm/jvm_solaris.cpp.i
 data/src/share/vm/opto/multnode.hpp.i
+data/src/share/vm/opto/superword.hpp.i
 data/test/runtime/6626217/You_Have_Been_P0wned.java.i
 data/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.i
+data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/manifest.mf.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/ReversePtrs.java.i
 data/src/share/vm/ci/ciConstantPoolCache.cpp.i
 data/test/compiler/6877254/Test.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/CellTypeState.java.i
 data/src/share/vm/ci/ciMethodBlocks.hpp.i
+data/src/os/linux/vm/c2_globals_linux.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/Bundle.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSGlobalTypes.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RdprInstruction.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/DefaultOopVisitor.java.i
+data/agent/make/marks_notes.html.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/SharedObject.java.i
 data/src/share/vm/prims/jvmtiClassFileReconstituter.cpp.i
 data/make/linux/makefiles/ia64.make.i
 data/src/share/vm/memory/iterator.hpp.i
 data/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9DoneInstruction.java.i
-data/make/solaris/adlc_updater.i
+data/make/bsd/makefiles/i486.make.i
+data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/NMethod.java.i
 data/src/cpu/x86/vm/depChecker_x86.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaThreadPDAccess.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/ClassObjectReferenceImpl.java.i
 data/src/share/vm/code/codeCache.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/SOQLException.java.i
 data/src/os_cpu/solaris_x86/vm/solaris_x86_32.ad.i
-data/src/share/vm/opto/bytecodeInfo.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9InstructionDecoder.java.i
-data/src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp.i
+data/src/share/vm/gc_implementation/includeDB_gc_shared.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/SimpleTreeNode.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThread.java.i
 data/src/share/vm/interpreter/bytecode.hpp.i
-data/src/cpu/zero/vm/jniFastGetField_zero.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/ArithmeticDecoder.java.i
 data/src/os_cpu/solaris_x86/vm/bytes_solaris_x86.inline.hpp.i
 data/src/cpu/x86/vm/assembler_x86_64.hpp.i
 data/src/share/vm/classfile/resolutionErrors.cpp.i
 data/test/compiler/5091921/Test6935022.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32OopHandle.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/code/LocationValue.java.i
+data/src/share/vm/shark/sharkConstant.hpp.i
 data/src/cpu/sparc/vm/icache_sparc.cpp.i
 data/src/share/vm/shark/sharkStack.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/StackFrameImpl.java.i
+data/src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp.i
 data/build/windows/projectfiles/common/Makefile.i
 data/test/compiler/5091921/output6890943.txt.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/CompressedReadStream.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/images/structure.gif.i
 data/src/cpu/sparc/vm/stubGenerator_sparc.cpp.i
+data/make/jprt.gmk.i
 data/src/share/vm/libadt/set.cpp.i
 data/make/windows/makefiles/adlc.make.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/general/New16.gif.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64CurrentFrameGuess.java.i
-data/src/cpu/zero/vm/vtableStubs_zero.cpp.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/ExtendedPanAction.java.i
 data/src/share/vm/prims/evmCompat.cpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/ZoomInAction.java.i
 data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/RemoveFilter.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/CompactingPermGen.java.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/FigureWidget.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ThreadLocalAllocBuffer.java.i
-data/src/cpu/sparc/vm/templateTable_sparc.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/types/OopField.java.i
 data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/src/com/sun/hotspot/igv/svg/BatikSVG.java.i
 data/src/share/vm/runtime/memprofiler.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeSipush.java.i
 data/src/cpu/x86/vm/bytecodes_x86.hpp.i
+data/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp.i
 data/make/linux/makefiles/makedeps.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_ia64/LinuxIA64JavaThreadPDAccess.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteThread.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/jdi/ByteTypeImpl.java.i
+data/build/solaris/platform_sparcv9.gcc.i
+data/build/solaris/makefiles/reorder_COMPILER2_sparc.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/solaris_sparc/SolarisSPARCJavaThreadPDAccess.java.i
 data/make/linux/platform_ia64.i
 data/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp.i
@@ -3363,16 +3546,16 @@ data/make/linux/makefiles/i486.make.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/images/save.gif.i
 data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/MatcherSelector.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/DebuggerUtilities.java.i
-data/src/share/vm/shark/sharkBuilder.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/RefType.java.i
 data/src/share/vm/runtime/interfaceSupport.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/SADebugServer.java.i
 data/src/share/vm/memory/universe.inline.hpp.i
 data/src/share/vm/oops/oopsHierarchy.cpp.i
+data/agent/src/os/bsd/symtab.h.i
 data/src/cpu/x86/vm/vm_version_x86_32.cpp.i
 data/src/os_cpu/linux_zero/vm/os_linux_zero.cpp.i
 data/src/share/vm/c1/c1_InstructionPrinter.cpp.i
-data/make/README.i
+data/test/compiler/5091921/Test6196102.java.i
 data/src/os_cpu/windows_x86/vm/atomic_windows_x86.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86CondJmpInstruction.java.i
 data/src/share/vm/c1/c1_LIR.cpp.i
@@ -3380,11 +3563,15 @@ data/agent/src/share/classes/sun/jvm/hotspot/jdi/ByteValueImpl.java.i
 data/test/compiler/6851282/Test.java.i
 data/src/share/vm/ci/ciTypeFlow.cpp.i
 data/src/share/vm/opto/compile.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteThreadFactory.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/elf/ELFStringTable.java.i
 data/src/share/vm/memory/sharedHeap.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/x86/WindbgX86ThreadContext.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebugger.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/BasicTypeSize.java.i
+data/make/bsd/adlc_updater.i
+data/src/share/vm/gc_implementation/shared/gcPolicyCounters.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/JFloatField.java.i
-data/src/os/posix/launcher/java_md.c.i
+data/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp.i
 data/THIRD_PARTY_README.i
 data/agent/src/share/classes/sun/jvm/hotspot/HSDB.java.i
 data/make/solaris/makefiles/reorder_TIERED_sparcv9.i
@@ -3392,16 +3579,16 @@ data/agent/src/share/classes/sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.j
 data/src/os/linux/vm/vtune_linux.cpp.i
 data/src/share/vm/ci/ciTypeArrayKlass.hpp.i
 data/build/solaris/makefiles/mapfile-vers-TIERED.i
-data/src/share/vm/memory/barrierSet.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogram.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Helper.java.i
+data/build/solaris/makefiles/top.make.i
 data/make/linux/platform_amd64.i
 data/src/cpu/sparc/vm/bytecodes_sparc.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COMDATSelectionTypes.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/BitType.java.i
-data/make/solaris/platform_amd64.gcc.i
-data/src/cpu/zero/vm/templateInterpreter_zero.cpp.i
-data/src/share/vm/utilities/vmError.hpp.i
-data/make/solaris/makefiles/reorder_TIERED_i486.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/BitType.java.i
+data/make/solaris/platform_amd64.gcc.i
+data/src/share/vm/utilities/accessFlags.hpp.i
+data/agent/src/scripts/start-debug-server.sh.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/MonitorInfo.java.i
 data/test/compiler/6695810/Test.java.i
 data/test/compiler/6711117/Test.java.i
 data/src/os/solaris/vm/osThread_solaris.cpp.i
@@ -3411,112 +3598,121 @@ data/agent/src/share/classes/sun/jvm/hotspot/memory/OffsetTableContigSpace.java.
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/ReadResult.java.i
 data/src/share/vm/adlc/formssel.cpp.i
 data/src/share/vm/runtime/vmStructs.cpp.i
-data/src/share/tools/MakeDeps/WinGammaPlatformVC9.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/BasicHashtableEntry.java.i
+data/src/share/vm/c1/c1_ValueStack.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/GenCollectedHeap.java.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/ControlFlowTopComponentSettings.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/posix/DSO.java.i
-data/test/runtime/6626217/many_loader2.java.foo.i
+data/make/windows/makefiles/launcher.make.i
+data/build/solaris/platform_sparc.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/build.xml.i
-data/src/share/vm/opto/regalloc.cpp.i
+data/src/share/vm/services/heapDumper.cpp.i
 data/src/os/linux/vm/hpi_linux.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/InstructionVisitor.java.i
-data/src/share/vm/opto/classes.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/Block_List.java.i
+data/src/share/vm/services/memoryService.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/OptionalHeaderWindowsSpecificFields.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RdprInstruction.java.i
 data/src/share/vm/classfile/stackMapFrame.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/layer.xml.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/OutputSlotWidget.java.i
 data/src/cpu/x86/vm/interpreterRT_x86_32.cpp.i
 data/src/cpu/x86/vm/interp_masm_x86_32.hpp.i
-data/make/windows/makefiles/shared.make.i
+data/src/share/vm/utilities/preserveException.cpp.i
 data/src/share/vm/c1/c1_Optimizer.cpp.i
 data/build/solaris/makefiles/jvmti.make.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FloatRegister.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/DefaultOopVisitor.java.i
 data/src/share/vm/runtime/jniPeriodicChecker.cpp.i
 data/src/cpu/sparc/vm/frame_sparc.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V8FPop1Decoder.java.i
-data/build/windows/makefiles/debug.make.i
+data/make/solaris/makefiles/reorder_CORE_i486.i
 data/src/os/solaris/dtrace/jhelper.d.i
 data/src/share/vm/shark/shark_globals.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeBipush.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/MemoryInstructionDecoder.java.i
+data/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp.i
 data/build/linux/makefiles/mapfile-vers-product.i
 data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/PropertiesSheet.java.i
 data/src/os/windows/launcher/java_md.c.i
 data/src/share/vm/memory/classify.cpp.i
 data/build/solaris/makefiles/jsig.make.i
-data/make/solaris/makefiles/mapfile-vers-jvm_dtrace.i
-data/agent/src/share/classes/images/toolbarButtonGraphics/general/Open16.gif.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/SlotLayout.java.i
-data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/FilterChainProviderImplementation.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/SharedHeap.java.i
+data/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/MarkBits.java.i
+data/src/share/vm/ci/ciTypeArray.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/GenerationFactory.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/RawHeapVisitor.java.i
 data/src/share/tools/IdealGraphVisualizer/Util/nbproject/suite.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicFunctionSym.java.i
 data/src/share/vm/adlc/output_c.cpp.i
 data/make/solaris/platform_i486.gcc.i
-data/agent/make/start-debug-server-windbg.bat.i
+data/agent/src/share/classes/sun/jvm/hotspot/tools/SysPropsDumper.java.i
 data/src/os_cpu/linux_sparc/vm/linux_sparc.s.i
-data/src/share/vm/runtime/vframe.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicPointerType.java.i
+data/make/linux/platform_i486.suncc.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64RegisterMap.java.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/META-INF/services/com.sun.hotspot.igv.filter.FilterChainProvider.i
 data/src/share/vm/runtime/fieldType.cpp.i
 data/make/solaris/makefiles/top.make.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramViewModel.java.i
 data/agent/src/os/win32/initWinsock.cpp.i
 data/src/share/vm/shark/sharkEntry.hpp.i
 data/src/share/vm/services/g1MemoryPool.cpp.i
-data/src/share/vm/classfile/classFileStream.hpp.i
+data/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/PMap.java.i
-data/make/solaris/makefiles/adlc.make.i
 data/src/share/vm/classfile/stackMapFrame.cpp.i
 data/src/share/vm/c1/c1_ValueType.hpp.i
 data/src/os/linux/launcher/java.c.i
-data/agent/make/jdbproc64.sh.i
-data/agent/src/os/linux/ps_proc.c.i
+data/src/share/vm/ci/ciKlass.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSSymbolBase.java.i
 data/make/windows/build_vm_def.sh.i
-data/src/share/tools/IdealGraphVisualizer/Filter/build.xml.i
+data/make/solaris/makefiles/hp1.make.i
+data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/removeSelfLoops.filter.i
+data/src/os_cpu/bsd_zero/vm/threadLS_bsd_zero.cpp.i
 data/src/share/vm/shark/llvmValue.hpp.i
 data/src/share/vm/interpreter/cppInterpreter.cpp.i
 data/make/linux/makefiles/zero.make.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/ServiceThread.java.i
-data/src/share/vm/oops/instanceKlass.cpp.i
-data/src/cpu/x86/vm/vm_version_x86_32.hpp.i
+data/src/share/vm/gc_implementation/shared/coTracker.cpp.i
+data/make/solaris/adlc_updater.i
+data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/MakeNotEntrantEvent.java.i
 data/src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp.i
-data/agent/test/jdi/VMConnection.java.i
 data/src/share/vm/adlc/dict2.cpp.i
 data/src/share/vm/oops/arrayKlass.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/ExceptionBlob.java.i
-data/src/share/tools/IdealGraphVisualizer/FilterWindow/nbproject/project.properties.i
-data/make/linux/makefiles/buildtree.make.i
-data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/FolderNode.java.i
+data/src/share/vm/oops/instanceMirrorKlass.hpp.i
+data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/BytecodeViewTopComponent.form.i
+data/src/share/vm/libadt/dict.hpp.i
 data/src/cpu/x86/vm/jniTypes_x86.hpp.i
-data/src/share/tools/IdealGraphVisualizer/nbproject/build-impl.xml.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/BitData.java.i
+data/src/share/vm/prims/jvmtiEventController.hpp.i
 data/src/share/vm/runtime/vframe_hp.cpp.i
 data/agent/make/mkinstall.i
 data/test/compiler/6901572/Test.java.i
-data/src/share/vm/utilities/vmError.cpp.i
 data/test/compiler/6797305/Test6797305.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/TypeArray.java.i
-data/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveLoadInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/VMObject.java.i
 data/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/BooleanTypeImpl.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86JmpInstruction.java.i
-data/make/windows/get_msc_ver.sh.i
-data/test/compiler/6912517/Test.java.i
-data/src/share/vm/runtime/stubCodeGenerator.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/ThreadProxy.java.i
+data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/services/GroupCallback.java.i
+data/agent/src/os/bsd/salibelf.h.i
+data/src/share/vm/adlc/archDesc.hpp.i
+data/agent/make/dumpflagsproc64.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualConstructor.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/Main.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEMoveDecoder.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/ObjectMonitor.java.i
+data/src/os/bsd/vm/os_bsd.hpp.i
 data/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionAMD64.java.i
-data/src/share/vm/code/nmethod.hpp.i
+data/src/share/vm/gc_implementation/g1/heapRegion.cpp.i
 data/test/compiler/5057225/Test5057225.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Registers.java.i
+data/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/GraphCountGroupOrganizer.java.i
 data/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp.i
 data/src/share/tools/IdealGraphVisualizer/NetworkConnection/src/com/sun/hotspot/igv/connection/Server.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/parallelScavenge/PSPermGen.java.i
+data/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/InterfaceTypeImpl.java.i
 data/agent/src/os/win32/serverLists.hpp.i
-data/test/compiler/6866651/Test.java.i
+data/src/share/tools/MakeDeps/DirectoryTreeNode.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/FindPanel.java.i
 data/build/linux/makefiles/buildtree.make.i
 data/make/linux/makefiles/profiled.make.i
@@ -3524,65 +3720,70 @@ data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ByteCodeRewriter.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicCIntegerField.java.i
 data/make/linux/makefiles/gcc.make.i
 data/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/MonitorCacheDumpPanel.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaTypeArrayKlass.java.i
+data/src/share/vm/gc_implementation/parNew/parOopClosures.hpp.i
+data/src/cpu/x86/vm/copy_x86.hpp.i
 data/src/cpu/x86/vm/templateInterpreter_x86_32.cpp.i
-data/src/share/vm/runtime/globals.hpp.i
+data/agent/src/share/classes/images/toolbarButtonGraphics/general/About24.gif.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/Printer.java.i
 data/src/cpu/zero/vm/methodHandles_zero.cpp.i
-data/src/share/vm/memory/cardTableRS.cpp.i
+data/test/compiler/6987555/Test6987555.java.i
 data/src/share/vm/prims/jvmtiRedefineClassesTrace.hpp.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/FilterTopComponent.java.i
 data/src/cpu/x86/vm/relocInfo_x86.hpp.i
-data/src/share/vm/opto/matcher.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java.i
+data/src/share/vm/services/lowMemoryDetector.hpp.i
+data/src/share/tools/IdealGraphVisualizer/Coordinator/nbproject/suite.properties.i
 data/src/share/vm/code/vtableStubs.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/LinuxVtblAccess.java.i
-data/src/share/vm/c1/c1_InstructionPrinter.hpp.i
+data/agent/make/soqlwindbg64.bat.i
+data/agent/make/jdbproc64.sh.i
 data/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/MutationException.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassDump.java.i
-data/src/share/tools/IdealGraphVisualizer/Settings/src/com/sun/hotspot/igv/settings/ViewPanel.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/sparc/DbxSPARCThreadContext.java.i
+data/test/compiler/6636138/Test1.java.i
 data/make/linux/Makefile.i
 data/src/share/vm/oops/oopsHierarchy.hpp.i
-data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/linestyle.filter.i
-data/src/share/tools/ProjectCreator/BuildConfig.java.i
+data/src/share/vm/memory/tenuredGeneration.cpp.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/nbproject/suite.properties.i
 data/src/os/posix/launcher/launcher.script.i
 data/src/share/vm/oops/generateOopMap.cpp.i
 data/src/share/vm/oops/symbolOop.cpp.i
-data/src/share/tools/IdealGraphVisualizer/Difference/nbproject/suite.properties.i
+data/src/share/vm/utilities/bitMap.inline.hpp.i
 data/src/share/vm/interpreter/bytecodeTracer.hpp.i
 data/src/share/vm/ci/ciSymbol.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/Inspector.java.i
+data/src/cpu/zero/vm/stubRoutines_zero.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSTypes.java.i
 data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Block.java.i
-data/src/share/tools/launcher/wildcard.h.i
+data/src/share/vm/utilities/hashtable.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaTypeArray.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebugger.java.i
 data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/EditFilterDialog.form.i
+data/src/os_cpu/bsd_zero/vm/thread_bsd_zero.hpp.i
+data/src/os/bsd/vm/jvm_bsd.cpp.i
 data/src/share/vm/gc_implementation/shared/immutableSpace.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java.i
+data/src/share/vm/services/psMemoryPool.cpp.i
 data/test/gc/6581734/Test6581734.java.i
-data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/src/com/sun/hotspot/igv/svg/Bundle.properties.i
+data/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp.i
 data/src/share/vm/classfile/systemDictionary.hpp.i
-data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/difference.filter.i
-data/src/share/vm/code/oopRecorder.cpp.i
-data/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp.i
+data/src/share/vm/oops/typeArrayKlass.cpp.i
+data/src/share/vm/prims/jvmtiRedefineClasses.cpp.i
+data/src/os_cpu/bsd_zero/vm/globals_bsd_zero.hpp.i
 data/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaObjArray.java.i
-data/src/cpu/sparc/vm/vtableStubs_sparc.cpp.i
+data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/CheckNode.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32OopHandle.java.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/general/ZoomIn16.gif.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/DebugEvent.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50TypeIterator.java.i
 data/src/share/vm/runtime/biasedLocking.cpp.i
 data/src/share/vm/runtime/fieldDescriptor.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaString.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/AuxBfEfRecord.java.i
+data/src/share/vm/runtime/vframe.cpp.i
+data/src/share/tools/IdealGraphVisualizer/Bytecodes/nbproject/project.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/AccessControl.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/IntervalNode.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLdstubInstruction.java.i
-data/src/share/tools/launcher/wildcard.c.i
+data/src/share/vm/runtime/frame.inline.hpp.i
+data/src/share/vm/opto/idealKit.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlassKlass.java.i
 data/agent/src/scripts/start-debug-server.bat.i
-data/make/templates/gpl-header.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciEnv.java.i
+data/src/os/windows/vm/c1_globals_windows.hpp.i
 data/test/compiler/6968348/Test6968348.java.i
 data/agent/src/os/win32/Makefile.i
 data/src/share/vm/oops/klassOop.cpp.i
@@ -3590,206 +3791,228 @@ data/agent/src/share/classes/sun/jvm/hotspot/interpreter/OopMapCacheEntry.java.i
 data/src/share/tools/IdealGraphVisualizer/NetworkConnection/src/META-INF/services/com.sun.hotspot.igv.data.services.GroupReceiver.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebugger.java.i
 data/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/Bundle.properties.i
-data/src/share/vm/prims/jvm.cpp.i
+data/src/share/vm/asm/assembler.inline.hpp.i
 data/src/share/tools/IdealGraphVisualizer/View/src/META-INF/services/com.sun.hotspot.igv.data.services.InputGraphProvider.i
 data/src/share/vm/memory/referencePolicy.cpp.i
 data/src/share/vm/opto/opcodes.cpp.i
 data/src/share/vm/gc_implementation/g1/sparsePRT.hpp.i
+data/src/os/bsd/vm/c2_globals_bsd.hpp.i
 data/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp.i
-data/src/cpu/sparc/vm/vm_version_sparc.cpp.i
+data/src/share/vm/memory/specialized_oop_closures.hpp.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/actions/RemoveFilterSettingsAction.java.i
 data/src/cpu/sparc/vm/globals_sparc.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLdstubDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcCDebugger.java.i
 data/src/cpu/zero/vm/icache_zero.hpp.i
-data/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeInstanceOf.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/TestParser.java.i
 data/agent/make/hsdbproc.sh.i
-data/src/share/vm/oops/instanceOop.cpp.i
-data/src/cpu/x86/vm/register_x86.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Register.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/jdi/ConcreteMethodImpl.java.i
+data/src/share/vm/opto/indexSet.hpp.i
+data/test/compiler/6689060/Test.java.i
+data/src/share/vm/c1/c1_FrameMap.hpp.i
+data/src/share/vm/opto/callnode.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/sparc/RemoteSPARCThreadFactory.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/BooleanTreeNodeAdapter.java.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/nbproject/build-impl.xml.i
 data/src/share/vm/utilities/debug.hpp.i
 data/src/share/vm/prims/jvmtiThreadState.cpp.i
 data/test/jprt.config.i
-data/agent/src/share/classes/com/sun/java/swing/ui/ToggleActionPropertyChangeListener.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/Disassembler.java.i
+data/src/share/vm/code/relocInfo.hpp.i
+data/agent/make/start-debug-server-proc64.sh.i
+data/make/bsd/makefiles/mapfile-vers-product.i
+data/test/compiler/5091921/Test6559156.java.i
 data/src/share/vm/prims/jvmti.xml.i
 data/src/cpu/zero/vm/depChecker_zero.hpp.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramViewModel.java.i
+data/src/share/vm/prims/jniFastGetField.hpp.i
 data/agent/test/jdi/runjpda.sh.i
-data/src/share/tools/LogCompilation/README.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIA64.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/CMSPermGen.java.i
 data/src/cpu/x86/vm/icBuffer_x86.cpp.i
-data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/images/saveall.gif.i
-data/agent/make/clhsdbproc64.sh.i
+data/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/BranchInstruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/TestHelloWorld.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.cpp.i
 data/build/linux/makefiles/core.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallStaticJavaNode.java.i
 data/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/LayoutManager.java.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/memory/SymbolTable.java.i
+data/src/share/vm/shark/sharkContext.hpp.i
 data/src/share/vm/opto/runtime.hpp.i
-data/make/linux/makefiles/product.make.i
+data/src/share/vm/classfile/verifier.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceSwapDecoder.java.i
-data/src/share/vm/opto/runtime.cpp.i
 data/src/share/vm/utilities/yieldingWorkgroup.hpp.i
+data/src/os/bsd/vm/jsig.c.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeNew.java.i
 data/src/share/tools/IdealGraphVisualizer/View/nbproject/suite.properties.i
-data/src/share/vm/gc_implementation/g1/survRateGroup.hpp.i
+data/make/solaris/makefiles/mapfile-vers-jvm_db.i
+data/src/share/vm/utilities/vmError.cpp.i
 data/src/share/vm/adlc/Doc/Syntax.doc.i
 data/src/share/vm/shark/sharkInliner.hpp.i
 data/src/share/vm/compiler/methodLiveness.hpp.i
 data/src/share/vm/prims/jvmtiTagMap.hpp.i
 data/test/gc/6845368/bigobj.java.d
-data/test/runtime/6819213/TestBootNativeLibraryPath.java.i
+data/make/linux/makefiles/top.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CCBranchDecoder.java.i
 data/test/gc/6845368/bigobj.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FlushDecoder.java.i
+data/make/linux/makefiles/debug.make.i
 data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/ExtendedSelectAction.java.i
 data/src/share/vm/compiler/oopMap.hpp.i
-data/test/compiler/6909839/Test6909839.java.i
+data/src/cpu/zero/vm/vtableStubs_zero.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Filter/nbproject/genfiles.properties.i
-data/make/solaris/makefiles/saproc.make.i
+data/src/share/vm/utilities/intHisto.hpp.i
 data/src/share/vm/prims/jvmtiExtensions.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntry.java.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/nbproject/build-impl.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64JavaCallWrapper.java.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/nbproject/project.xml.i
 data/src/share/vm/prims/jvmtiGetLoadedClasses.cpp.i
 data/src/cpu/x86/vm/disassembler_x86.hpp.i
 data/src/share/vm/gc_implementation/shared/collectorCounters.cpp.i
-data/src/share/vm/prims/jvmtiClassFileReconstituter.hpp.i
-data/src/share/vm/services/heapDumper.hpp.i
+data/agent/src/os/linux/ps_proc.c.i
 data/src/cpu/x86/vm/interpreter_x86_32.cpp.i
-data/src/share/vm/memory/threadLocalAllocBuffer.inline.hpp.i
+data/src/os/bsd/vm/perfMemory_bsd.cpp.i
+data/build/linux/makefiles/optimized.make.i
 data/src/share/vm/code/stubs.hpp.i
+data/agent/src/os/bsd/symtab.c.i
 data/src/share/vm/utilities/elfSymbolTable.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/jdi/VMModifiers.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/StackValueCollection.java.i
 data/src/share/vm/utilities/xmlstream.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MOVccInstruction.java.i
-data/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp.i
+data/make/windows/projectfiles/tiered/vm.def.i
+data/src/share/vm/adlc/filebuff.hpp.i
 data/src/share/vm/prims/jvmtiEnvBase.hpp.i
-data/src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceLdstubDecoder.java.i
+data/src/share/vm/memory/heapInspection.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ReturnInstruction.java.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/nbproject/genfiles.properties.i
-data/agent/src/share/classes/com/sun/java/swing/action/SaveAction.java.i
+data/build/solaris/makefiles/fastdebug.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ArgumentSizeComputer.java.i
 data/src/os/linux/vm/hpi_linux.hpp.i
 data/src/share/vm/prims/privilegedStack.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC64Bit.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/PointerType.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSFileIndex.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/DebugInformationRecorder.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/BasicCDebugInfoDataBase.java.i
+data/build/linux/README.i
 data/src/os_cpu/linux_x86/vm/linux_x86_64.ad.i
-data/make/windows/projectfiles/core/vm.def.i
+data/src/share/vm/oops/klassVtable.cpp.i
 data/build/linux/platform_i486.i
 data/src/os_cpu/windows_x86/vm/vm_version_windows_x86.cpp.i
+data/build/linux/makefiles/dtrace.make.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/actions/DiffGraphAction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/amd64/LinuxAMD64ThreadContext.java.i
 data/src/share/vm/runtime/compilationPolicy.cpp.i
-data/src/share/vm/ci/ciObjectFactory.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassFilter.java.i
+data/src/share/vm/classfile/classFileParser.cpp.i
+data/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp.i
 data/agent/src/share/classes/com/sun/java/swing/action/ActionUtilities.java.i
 data/build/linux/makefiles/top.make.i
+data/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge.i
 data/agent/src/os/solaris/proc/mapfile.i
 data/make/linux/makefiles/adlc.make.i
 data/agent/make/saenv64.bat.i
 data/src/share/vm/oops/instanceKlassKlass.cpp.i
 data/make/solaris/makefiles/jsig.make.i
-data/build/windows/projectfiles/kernel/vm.dsw.i
+data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/META-INF/services/com.sun.hotspot.igv.data.services.Scheduler.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/SignatureConverter.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/memo/MemoizedFloat.java.i
+data/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Filter/nbproject/build-impl.xml.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlass.java.i
 data/src/share/vm/ci/bcEscapeAnalyzer.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSStaticSym.java.i
 data/test/compiler/5091921/Test6357214.java.i
 data/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp.i
 data/test/runtime/6981737/Test6981737.java.i
 data/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/types/WrongTypeException.java.i
+data/agent/doc/hsdb.html.i
 data/src/share/vm/compiler/disassemblerEnv.hpp.i
-data/make/jprt.gmk.i
+data/src/share/vm/opto/c2_globals.hpp.i
 data/src/share/vm/runtime/park.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/FindObjectByType.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/UnmappedAddressException.java.i
 data/make/linux/makefiles/core.make.i
-data/src/share/tools/IdealGraphVisualizer/Settings/src/com/sun/hotspot/igv/settings/Settings.java.i
-data/src/share/vm/memory/genRemSet.inline.hpp.i
+data/src/share/vm/runtime/handles.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50WrongNumericTypeException.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntryConstants.java.i
+data/make/bsd/Makefile.i
+data/src/share/tools/IdealGraphVisualizer/Bytecodes/build.xml.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/register.filter.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/Mark.java.i
 data/test/runtime/6626217/from_loader2.java.i
+data/make/hotspot_distro.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/sparc/LinuxSPARCCFrame.java.i
 data/src/share/tools/IdealGraphVisualizer/NetworkConnection/nbproject/suite.properties.i
-data/src/cpu/zero/vm/frame_zero.inline.hpp.i
+data/test/compiler/6661247/Test.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteAddress.java.i
 data/test/compiler/6769124/TestUnalignedLoad6769124.java.i
 data/src/share/vm/shark/sharkCompiler.hpp.i
 data/src/share/tools/IdealGraphVisualizer/ServerCompiler/nbproject/project.properties.i
-data/make/solaris/makefiles/mapfile-vers-jsig.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/amd64/LinuxAMD64CFrame.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ConditionFlags.java.i
-data/src/cpu/zero/vm/globalDefinitions_zero.hpp.i
-data/src/share/vm/runtime/advancedThresholdPolicy.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/oops/ObjArrayKlass.java.i
+data/src/share/vm/ci/compilerInterface.hpp.i
+data/test/runtime/6888954/vmerrors.sh.i
 data/src/share/vm/prims/jvmtiUtil.cpp.i
 data/src/os/windows/vm/os_share_windows.hpp.i
 data/agent/src/share/classes/com/sun/java/swing/action/OkAction.java.i
-data/make/linux/makefiles/saproc.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstructionFactoryImpl.java.i
+data/src/os/solaris/dtrace/generateJvmOffsets.h.i
 data/src/share/vm/c1/c1_globals.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/basic/CompoundTypeKind.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/TypeVisitor.java.i
-data/test/compiler/6982370/Test6982370.java.i
-data/src/cpu/x86/vm/jniFastGetField_x86_32.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeIf.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/jdi/ByteTypeImpl.java.i
+data/src/share/vm/ci/ciInstance.cpp.i
 data/src/share/vm/c1/c1_Defs.hpp.i
 data/make/solaris/makefiles/mapfile-vers-COMPILER2.i
 data/build/solaris/makefiles/defs.make.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFRelocation.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/RTLOperations.java.i
+data/src/share/vm/runtime/unhandledOops.hpp.i
+data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/ExtendedSatelliteComponent.java.i
 data/src/share/vm/interpreter/abstractInterpreter.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PopcInstruction.java.i
-data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/nbproject/genfiles.properties.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/ThreadProxy.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/jdi/LocationImpl.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgThreadFactory.java.i
 data/agent/src/os/win32/libInfo.cpp.i
+data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/helper.js.i
 data/src/os/solaris/vm/jsig.c.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CMoveDecoder.java.i
+data/src/cpu/zero/vm/globalDefinitions_zero.hpp.i
+data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/CallSite.java.i
 data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Selector.java.i
-data/src/share/vm/ci/ciCallSite.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpot.java.i
+data/src/share/vm/ci/ciObjArray.hpp.i
+data/src/cpu/sparc/vm/dump_sparc.cpp.i
+data/src/share/vm/prims/hpi_imported.h.i
 data/src/share/vm/memory/filemap.hpp.i
 data/src/share/vm/ci/ciExceptionHandler.hpp.i
 data/build/linux/makefiles/adlc.make.i
-data/agent/src/os/win32/README.txt.i
-data/src/os/solaris/dtrace/jvm_dtrace.h.i
+data/src/share/vm/opto/loopPredicate.cpp.i
+data/test/runtime/7020373/Test7020373.sh.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/ObjArrayKlassKlass.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRestoreInstruction.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/DataLayout.java.i
 data/make/windows/projectfiles/kernel/Makefile.i
-data/make/solaris/makefiles/reorder_COMPILER1_sparc.i
+data/src/share/vm/prims/jvmtiEnvThreadState.cpp.i
+data/test/compiler/6778657/Test.java.i
 data/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp.i
-data/make/solaris/makefiles/buildtree.make.i
+data/src/share/vm/runtime/fprofiler.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/NameFilter.java.i
 data/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FloatDecoder.java.i
 data/test/compiler/6942326/Test.java.i
-data/make/linux/makefiles/compiler2.make.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/ExportAction.java.i
+data/src/os_cpu/bsd_x86/vm/bsd_x86_64.ad.i
 data/agent/test/jdi/sasanity.sh.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86CurrentFrameGuess.java.i
 data/agent/src/share/classes/images/toolbarButtonGraphics/general/Help24.gif.i
 data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Diagram.java.i
 data/src/share/vm/services/memoryService.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/bugspot/tree/DoubleTreeNodeAdapter.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/Disassembler.java.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/nbproject/platform.properties.i
 data/src/share/tools/IdealGraphVisualizer/View/nbproject/platform.properties.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/JavaThreadsPanel.java.i
+data/src/share/vm/runtime/sweeper.cpp.i
 data/make/windows/projectfiles/compiler2/ADLCompiler.dsp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/OneContigSpaceCardGeneration.java.i
+data/src/os/bsd/vm/thread_bsd.inline.hpp.i
 data/src/share/vm/classfile/vmSymbols.cpp.i
 data/src/share/vm/opto/indexSet.cpp.i
 data/src/cpu/x86/vm/cppInterpreter_x86.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/InvertSelector.java.i
 data/make/windows/platform_amd64.i
-data/src/cpu/sparc/vm/vm_version_sparc.hpp.i
-data/src/share/vm/ci/ciObjArray.cpp.i
+data/src/os_cpu/linux_x86/vm/assembler_linux_x86_64.cpp.i
+data/test/compiler/6982370/Test6982370.java.i
 data/src/share/vm/utilities/elfSymbolTable.hpp.i
 data/src/cpu/sparc/vm/c1_LinearScan_sparc.cpp.i
 data/build/linux/Queens.class.i
@@ -3799,77 +4022,81 @@ data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LogicDecoder.java.i
 data/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Pair.java.i
 data/src/cpu/x86/vm/c1_CodeStubs_x86.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheEntry.java.i
+data/src/os_cpu/bsd_x86/vm/threadLS_bsd_x86.hpp.i
 data/src/share/vm/memory/cardTableModRefBS.hpp.i
-data/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.hpp.i
-data/agent/src/share/classes/com/sun/java/swing/action/SaveAsAction.java.i
+data/src/share/vm/runtime/jniHandles.hpp.i
+data/src/os/windows/launcher/java_md.h.i
 data/src/share/vm/gc_implementation/includeDB_gc_serial.i
 data/src/share/tools/IdealGraphVisualizer/RhinoScriptEngineProxy/nbproject/project.xml.i
 data/src/share/vm/runtime/objectMonitor.inline.hpp.i
 data/src/share/vm/gc_implementation/shared/gcUtil.cpp.i
 data/src/share/vm/opto/loopUnswitch.cpp.i
-data/src/share/vm/c1/c1_ValueMap.cpp.i
+data/test/compiler/7009231/Test7009231.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/code/VMRegImpl.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java.i
+data/src/share/vm/gc_implementation/shared/coTracker.hpp.i
+data/make/bsd/makefiles/compiler1.make.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/ProfileData.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/DefNewGeneration.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/TypeArrayKlass.java.i
 data/test/compiler/6891750/Test6891750.java.i
-data/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp.i
 data/src/cpu/x86/vm/jniFastGetField_x86_64.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/bugspot/RegisterPanel.java.i
+data/src/share/tools/IdealGraphVisualizer/View/nbproject/build-impl.xml.i
+data/src/os/bsd/vm/stubRoutines_bsd.cpp.i
+data/src/os_cpu/bsd_x86/vm/assembler_bsd_x86.cpp.i
 data/src/cpu/x86/vm/frame_x86.cpp.i
 data/make/windows/projectfiles/kernel/vm.def.i
-data/src/cpu/zero/vm/relocInfo_zero.hpp.i
+data/src/share/tools/MakeDeps/UnixPlatform.java.i
+data/src/share/tools/IdealGraphVisualizer/Util/nbproject/build-impl.xml.i
 data/agent/make/hsdbproc64.sh.i
-data/src/cpu/zero/vm/frame_zero.cpp.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/Bundle.properties.i
+data/src/share/vm/code/location.hpp.i
+data/src/share/vm/runtime/mutex.hpp.i
 data/src/share/vm/runtime/jniPeriodicChecker.hpp.i
-data/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/JmpDecoder.java.i
+data/src/share/vm/services/g1MemoryPool.hpp.i
+data/make/windows/projectfiles/core/vm.dsw.i
 data/agent/src/share/classes/sun/jvm/hotspot/jdi/SACoreAttachingConnector.java.i
 data/src/share/vm/opto/chaitin.cpp.i
 data/build/solaris/makefiles/product.make.i
 data/agent/src/os/solaris/dbx/README-commands.txt.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/HistoryComboBox.java.i
 data/src/share/vm/gc_implementation/g1/g1MonitoringSupport.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/dummy/DummyAddress.java.i
-data/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java.i
+data/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Bundle.properties.i
+data/src/share/vm/ci/ciMethodHandle.hpp.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/memory/Space.java.i
-data/src/share/vm/ci/ciMethodKlass.hpp.i
 data/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp.i
 data/src/share/vm/asm/register.hpp.i
-data/src/cpu/sparc/vm/frame_sparc.cpp.i
+data/make/README.i
 data/src/os/solaris/vm/vmError_solaris.cpp.i
 data/src/share/vm/oops/oop.inline.hpp.i
-data/agent/test/jdi/serialvm.sh.i
-data/agent/src/share/classes/sun/jvm/hotspot/code/LocationValue.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicPointerType.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/x86/DbxX86Thread.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/IndirectAddress.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaTypeArray.java.i
+data/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp.i
+data/build/solaris/makefiles/adjust-mflags.sh.i
+data/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/Link.java.i
+data/build/solaris/makefiles/mapfile-vers-COMPILER1.i
+data/src/share/tools/IdealGraphVisualizer/Graph/nbproject/project.xml.i
+data/src/share/vm/opto/connode.hpp.i
+data/src/share/vm/gc_implementation/g1/g1AllocRegion.cpp.i
 data/src/share/vm/opto/machnode.cpp.i
-data/src/share/vm/gc_implementation/shared/collectorCounters.hpp.i
-data/src/share/vm/opto/output.cpp.i
+data/src/share/vm/prims/jvmtiExtensions.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/cdbg/LineNumberInfo.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/InlineTree.java.i
 data/src/share/vm/ci/ciSymbolKlass.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogramElement.java.i
 data/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/ContextAction.java.i
 data/src/share/vm/runtime/task.cpp.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/images/folder.gif.i
-data/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCIndirectCallInstruction.java.i
+data/src/share/tools/MakeDeps/WinGammaPlatform.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/tools/StackTrace.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPStoreDecoder.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRegisterIndirectAddress.java.i
+data/build/solaris/makefiles/reorder_CORE_sparc.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_x86/LinuxSignals.java.i
-data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/src/com/sun/hotspot/igv/svg/layer.xml.i
+data/agent/src/share/classes/sun/jvm/hotspot/memory/CompactingPermGen.java.i
 data/src/cpu/sparc/vm/runtime_sparc.cpp.i
-data/src/cpu/x86/vm/nativeInst_x86.hpp.i
+data/src/share/vm/classfile/symbolTable.hpp.i
 data/make/windows/makefiles/debug.make.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/OverviewAction.java.i
+data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp.i
 data/src/share/vm/c1/c1_LIRGenerator.cpp.i
 data/src/cpu/x86/vm/cppInterpreter_x86.cpp.i
-data/src/cpu/sparc/vm/interp_masm_sparc.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/jdi/ThreadReferenceImpl.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/MachineTypes.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/RTLDataTypes.java.i
 data/src/share/vm/opto/gcm.cpp.i
@@ -3884,38 +4111,44 @@ data/src/share/vm/libadt/port.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/HelloWorld.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/Instruction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java.i
+data/src/cpu/zero/vm/jniFastGetField_zero.cpp.i
 data/src/os/linux/vm/attachListener_linux.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/RegisterMap.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/ObjArray.java.i
 data/src/share/vm/memory/classify.hpp.i
 data/build/solaris/makefiles/sparc.make.i
 data/src/cpu/sparc/vm/relocInfo_sparc.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/code/SingletonBlob.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/LongHashMap.java.i
+data/src/share/vm/interpreter/templateTable.hpp.i
+data/src/cpu/zero/vm/register_definitions_zero.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicAddressFieldWrapper.java.i
 data/src/share/vm/opto/type.cpp.i
 data/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp.i
 data/src/os_cpu/solaris_x86/vm/os_solaris_x86.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/ui/FindInHeapPanel.java.i
+data/test/compiler/7052494/Test7052494.java.i
+data/agent/src/os/win32/README.txt.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50SSSymbols.java.i
+data/make/bsd/makefiles/profiled.make.i
 data/src/os/solaris/vm/c1_globals_solaris.hpp.i
 data/src/os/linux/vm/mutex_linux.cpp.i
 data/src/os/linux/vm/stubRoutines_linux.cpp.i
-data/src/cpu/x86/vm/c1_LinearScan_x86.cpp.i
-data/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/helper.js.i
-data/src/os/linux/vm/dtraceJSDT_linux.cpp.i
+data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.cpp.i
+data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/nbproject/genfiles.properties.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/x86/WindbgX86ThreadContext.java.i
 data/src/share/tools/MakeDeps/Util.java.i
-data/agent/src/os/solaris/proc/libproc.h.i
+data/src/os/posix/vm/os_posix.cpp.i
+data/src/share/vm/ci/ciObjArray.cpp.i
 data/build/windows/makefiles/product.make.i
 data/test/runtime/6878713/Test6878713.sh.i
 data/src/share/vm/classfile/javaAssertions.hpp.i
-data/src/share/vm/utilities/numberSeq.cpp.i
-data/src/share/vm/oops/objArrayKlassKlass.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFException.java.i
 data/src/share/vm/oops/typeArrayOop.hpp.i
 data/src/share/vm/includeDB_core.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgCDebugInfoBuilder.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp.i
-data/build/solaris/platform_sparcv9.gcc.i
+data/src/share/vm/oops/klassVtable.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/BytecodeViewTopComponentSettings.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/ui/MemoryViewer.java.i
-data/src/cpu/sparc/vm/register_definitions_sparc.cpp.i
+data/src/share/vm/opto/loopTransform.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCTrapInstruction.java.i
 data/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/BytecodeViewTopComponentWstcref.xml.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/MessageQueue.java.i
@@ -3925,17 +4158,19 @@ data/src/share/vm/utilities/exceptions.hpp.i
 data/src/share/vm/code/vtableStubs.cpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp.i
 data/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp.i
-data/agent/src/os/win32/libInfo.hpp.i
-data/agent/test/libproc/libproctest.sh.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9WrprInstruction.java.i
-data/src/cpu/x86/vm/templateTable_x86_32.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/LivenessPath.java.i
+data/src/share/vm/ci/ciMethod.cpp.i
+data/src/share/tools/IdealGraphVisualizer/ControlFlow/nbproject/genfiles.properties.i
+data/build/solaris/makefiles/mapfile-vers-nonproduct.i
 data/src/share/vm/prims/methodHandleWalk.hpp.i
 data/src/share/tools/IdealGraphVisualizer/Settings/nbproject/suite.properties.i
 data/src/share/vm/ci/ciConstant.cpp.i
 data/src/cpu/zero/vm/vmStructs_zero.hpp.i
+data/agent/src/os/win32/IOBuf.cpp.i
+data/src/os/bsd/vm/os_bsd.cpp.i
 data/agent/src/share/classes/com/sun/java/swing/action/BackAction.java.i
 data/src/share/vm/oops/klassPS.hpp.i
-data/src/os/windows/vm/jvm_windows.h.i
+data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/color.filter.i
 data/src/share/vm/ci/ciArray.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/livejvm/JNIHandleAccessor.java.i
 data/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp.i
@@ -3946,41 +4181,53 @@ data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/co
 data/src/share/vm/oops/objArrayKlassKlass.cpp.i
 data/src/os_cpu/linux_x86/vm/threadLS_linux_x86.cpp.i
 data/test/compiler/6855164/Test.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlassKlass.java.i
 data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCleanupReader.java.i
 data/README.i
-data/agent/src/share/classes/sun/jvm/hotspot/utilities/BasicHashtable.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEShiftDecoder.java.i
 data/test/runtime/6878713/testcase.jar.i
 data/src/share/vm/gc_implementation/g1/concurrentMark.hpp.i
+data/src/share/vm/gc_implementation/shared/mutableSpace.cpp.i
 data/src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp.i
+data/make/bsd/makefiles/tiered.make.i
+data/src/cpu/x86/vm/templateTable_x86_64.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrivilegedRegisters.java.i
-data/make/windows/create.bat.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/LongHashMap.java.i
+data/src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp.i
 data/agent/make/grantAll.policy.i
 data/test/compiler/6646019/Test.java.i
+data/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp.i
+data/src/os_cpu/bsd_x86/vm/bsd_x86_32.s.i
 data/src/share/tools/MakeDeps/ArgsParser.java.i
 data/src/share/vm/oops/cpCacheOop.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/types/OopField.java.i
+data/src/cpu/sparc/vm/templateTable_sparc.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/CallStaticJavaNode.java.i
 data/src/share/vm/opto/rootnode.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaThreadFactory.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrefetchInstruction.java.i
 data/agent/make/dumpflagsproc.sh.i
-data/build/solaris/makefiles/reorder_TIERED_sparc.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteThreadFactory.java.i
-data/src/share/vm/gc_implementation/shared/gcPolicyCounters.hpp.i
-data/agent/make/jcoreproc64.sh.i
+data/agent/src/share/classes/sun/jvm/hotspot/opto/Phase.java.i
+data/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp.i
+data/src/share/vm/utilities/numberSeq.cpp.i
+data/src/share/vm/memory/barrierSet.hpp.i
+data/src/share/vm/Xusage.txt.i
 data/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp.i
 data/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp.i
-data/src/share/vm/runtime/sweeper.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RotateInstruction.java.i
-data/src/share/vm/oops/klassOop.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogram.java.i
+data/src/share/vm/opto/mulnode.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/oops/BranchData.java.i
+data/src/share/vm/opto/classes.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9BranchDecoder.java.i
 data/src/share/vm/shark/sharkStateScanner.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/MemoryInstructionDecoder.java.i
+data/src/share/tools/MakeDeps/DirectoryTree.java.i
 data/src/share/vm/interpreter/interpreter.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86Frame.java.i
+data/src/os/bsd/vm/interfaceSupport_bsd.hpp.i
 data/src/share/vm/runtime/java.hpp.i
 data/make/test/Queens.java.i
 data/src/share/vm/services/dtraceAttacher.hpp.i
 data/src/share/tools/IdealGraphVisualizer/NetworkConnection/src/com/sun/hotspot/igv/connection/layer.xml.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/dummy/DummyDebugger.java.i
+data/src/share/tools/IdealGraphVisualizer/Filter/build.xml.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/MouseOverAction.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/ZoomOutAction.java.i
 data/src/share/vm/ci/ciConstant.hpp.i
@@ -3990,44 +4237,49 @@ data/src/os/linux/vm/objectMonitor_linux.hpp.i
 data/src/share/vm/prims/methodHandleWalk.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/runtime/ResultTypeFinder.java.i
 data/src/share/vm/runtime/perfData.hpp.i
-data/agent/src/share/classes/images/toolbarButtonGraphics/general/About24.gif.i
+data/src/share/vm/runtime/globals.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/ui/tree/CharTreeNodeAdapter.java.i
 data/src/share/vm/oops/arrayOop.hpp.i
+data/test/compiler/7070134/words.d
 data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPLoadDecoder.java.i
 data/make/solaris/makefiles/compiler1.make.i
 data/src/share/vm/code/dependencies.hpp.i
+data/make/bsd/makefiles/product.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaFrame.java.i
+data/src/share/vm/utilities/vmError.hpp.i
 data/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/tools/Tool.java.i
+data/src/share/vm/memory/heapInspection.cpp.i
 data/src/cpu/zero/vm/templateInterpreter_zero.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIA64.java.i
-data/src/share/tools/IdealGraphVisualizer/BatikSVGProxy/manifest.mf.i
-data/src/cpu/sparc/vm/jni_sparc.h.i
+data/src/share/tools/LogCompilation/README.i
+data/src/share/vm/memory/collectorPolicy.hpp.i
+data/src/share/vm/opto/runtime.cpp.i
 data/src/cpu/sparc/vm/templateInterpreterGenerator_sparc.hpp.i
-data/src/share/vm/runtime/threadCritical.hpp.i
+data/src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/filters/linestyle.filter.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/AddressException.java.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/images/up.gif.i
-data/build/linux/makefiles/optimized.make.i
+data/src/share/vm/memory/threadLocalAllocBuffer.inline.hpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86CFrame.java.i
 data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/images/prev_diagram.png.i
 data/src/share/vm/classfile/stackMapTable.hpp.i
-data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/ExtractAction.java.i
 data/src/share/vm/oops/arrayKlassKlass.cpp.i
 data/src/share/vm/runtime/thread.cpp.i
 data/build/windows/projectfiles/tiered/vm.def.i
 data/agent/src/share/classes/com/sun/java/swing/ui/CommonMenuBar.java.i
 data/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp.i
-data/make/hotspot_distro.i
+data/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp.i
 data/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/HierarchicalClusterLayoutManager.java.i
-data/build/solaris/platform_i486.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/NextDiagramAction.java.i
 data/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp.i
 data/test/compiler/6772683/InterruptedTest.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstructionFactoryImpl.java.i
+data/make/linux/makefiles/saproc.make.i
 data/src/share/vm/memory/generation.inline.hpp.i
-data/src/cpu/sparc/vm/dump_sparc.cpp.i
+data/src/share/vm/ci/ciCPCache.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/SALauncherLoader.java.i
-data/src/share/vm/gc_interface/collectedHeap.cpp.i
+data/test/compiler/6714694/Tester.java.i
 data/src/share/vm/opto/idealKit.hpp.i
 data/src/share/vm/memory/resourceArea.cpp.i
 data/src/share/vm/ci/ciNullObject.cpp.i
-data/src/share/vm/prims/jvmtiEnvThreadState.cpp.i
+data/src/share/vm/prims/unsafe.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicCIntegerType.java.i
 data/build/windows/makefiles/makedeps.make.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapProgressThunk.java.i
@@ -4035,78 +4287,66 @@ data/src/share/vm/asm/register.cpp.i
 data/src/cpu/x86/vm/frame_x86.inline.hpp.i
 data/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/Compilation.java.i
 data/src/share/vm/ci/ciSymbolKlass.hpp.i
-data/make/windows/makefiles/launcher.make.i
+data/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp.i
+data/agent/make/heapsumproc.sh.i
 data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/FilterTopComponentSettings.xml.i
 data/src/share/vm/interpreter/rewriter.hpp.i
 data/src/cpu/x86/vm/c1_globals_x86.hpp.i
-data/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/Cluster.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/runtime/linux/LinuxSignals.java.i
 data/src/share/tools/IdealGraphVisualizer/Data/nbproject/platform.properties.i
-data/src/share/tools/IdealGraphVisualizer/View/src/META-INF/services/com.sun.hotspot.igv.data.services.GraphViewer.i
-data/src/share/tools/IdealGraphVisualizer/Util/nbproject/build-impl.xml.i
+data/src/share/vm/opto/generateOptoStub.cpp.i
+data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/images/structured.gif.i
 data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/actions/ImportAction.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/gc_implementation/parallelScavenge/PSYoungGen.java.i
+data/agent/test/jdi/VMConnection.java.i
 data/test/compiler/6910484/Test.java.i
+data/make/bsd/README.i
 data/make/windows/makefiles/compile.make.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLdstubDecoder.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/jdi/ThreadReferenceImpl.java.i
+data/src/share/vm/shark/sharkInliner.cpp.i
+data/src/cpu/sparc/vm/interp_masm_sparc.cpp.i
 data/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp.i
-data/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep.i
+data/src/share/vm/opto/classes.cpp.i
 data/src/cpu/x86/vm/interpreterRT_x86_64.cpp.i
-data/src/share/tools/IdealGraphVisualizer/FilterWindow/src/com/sun/hotspot/igv/filterwindow/actions/NewFilterAction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/AuxSymbolRecord.java.i
 data/src/share/vm/runtime/stubCodeGenerator.hpp.i
 data/test/compiler/6833129/Test.java.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32LDTEntry.java.i
+data/agent/src/share/classes/sun/jvm/hotspot/code/SingletonBlob.java.i
+data/test/runtime/6929067/Test6929067.sh.i
 data/src/share/vm/runtime/unhandledOops.cpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFException.java.i
+data/src/share/vm/oops/objArrayKlassKlass.hpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PopcDecoder.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaObjArrayKlass.java.i
-data/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentGCThread.hpp.i
+data/test/runtime/6626217/many_loader2.java.foo.i
 data/src/share/tools/ProjectCreator/WinGammaPlatformVC6.java.i
-data/build/solaris/makefiles/mapfile-vers-nonproduct.i
-data/agent/src/os/win32/IOBuf.cpp.i
+data/src/cpu/x86/vm/templateTable_x86_32.cpp.i
+data/src/share/tools/MakeDeps/WinGammaPlatformVC9.java.i
 data/src/share/vm/opto/subnode.hpp.i
 data/make/windows/makefiles/generated.make.i
-data/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp.i
+data/agent/src/share/classes/sun/jvm/hotspot/utilities/BasicHashtableEntry.java.i
+data/src/share/vm/gc_implementation/shared/collectorCounters.hpp.i
 data/agent/src/os/win32/Reaper.cpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialStoreDecoder.java.i
-data/src/cpu/zero/vm/interp_masm_zero.cpp.i
+data/src/share/vm/libadt/set.hpp.i
+data/test/compiler/5091921/Test6890943.sh.i
 data/agent/make/jsdbproc64.sh.i
 data/src/share/vm/oops/klass.cpp.i
 data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50MemberAttributes.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeIinc.java.i
 data/src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp.i
-data/agent/src/share/classes/com/sun/java/swing/action/HelpMenu.java.i
-data/src/share/vm/opto/block.hpp.i
+data/src/cpu/sparc/vm/jni_sparc.h.i
+data/agent/src/share/classes/sun/jvm/hotspot/debugger/dummy/DummyDebugger.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass.java.i
-data/agent/make/soqlwindbg.bat.i
+data/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/actions/ExtractAction.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCWriteInstruction.java.i
 data/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp.i
 data/src/share/vm/gc_implementation/parallelScavenge/prefetchQueue.hpp.i
-data/agent/make/heapsumproc.sh.i
-data/agent/src/share/classes/sun/jvm/hotspot/runtime/linux/LinuxSignals.java.i
+data/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/FolderNode.java.i
+data/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/Cluster.java.i
 data/agent/src/share/classes/sun/jvm/hotspot/utilities/memo/MemoizedBoolean.java.i
-data/src/cpu/sparc/vm/nativeInst_sparc.hpp.i
+data/src/share/vm/runtime/threadCritical.hpp.i
 data/src/share/vm/runtime/monitorChunk.hpp.i
-data/build/windows/projectfiles/tiered/ADLCompiler.dsp.i
+data/make/solaris/makefiles/adlc.make.i
 data/build/solaris/makefiles/mapfile-vers-jsig.i
 data/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32ThreadContext.java.i
+data/agent/make/soqlwindbg.bat.i
 data/src/share/vm/utilities/numberSeq.hpp.i
-data/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveLoadInstruction.java.i
-data/src/cpu/sparc/vm/methodHandles_sparc.hpp.i
-data/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp.i
-data/src/share/vm/gc_implementation/g1/g1HRPrinter.cpp.i
-data/src/share/vm/gc_implementation/g1/g1HRPrinter.hpp.i
-data/src/share/vm/utilities/quickSort.cpp.i
-data/src/share/vm/utilities/quickSort.hpp.i
-data/test/compiler/6478991/NullCheckTest.java.i
-data/test/compiler/6956668/Test6956668.java.i
-data/test/compiler/6990212/Test6990212.java.i
-data/test/compiler/7044738/Test7044738.java.i
-data/test/compiler/7046096/Test7046096.java.i
-data/test/compiler/7047069/Test7047069.java.i
-data/test/compiler/7048332/Test7048332.java.i
-data/test/compiler/7052494/Test7052494.java.i
-data/test/gc/6941923/test6941923.sh.i
+data/src/share/vm/gc_implementation/shared/spaceDecorator.hpp.i
diff --git a/hotspot/.hg/store/undo b/hotspot/.hg/store/undo
index 4cc67b3..718c907 100644
Binary files a/hotspot/.hg/store/undo and b/hotspot/.hg/store/undo differ
diff --git a/jdk/.hg/undo.bookmarks b/hotspot/.hg/undo.bookmarks
similarity index 100%
copy from jdk/.hg/undo.bookmarks
copy to hotspot/.hg/undo.bookmarks
diff --git a/hotspot/.hg/undo.desc b/hotspot/.hg/undo.desc
index 499e4e4..9db92fd 100644
--- a/hotspot/.hg/undo.desc
+++ b/hotspot/.hg/undo.desc
@@ -1,3 +1,3 @@
-2619
+2621
 pull
 http://hg.openjdk.java.net/jigsaw/jigsaw/hotspot
diff --git a/hotspot/.hg/undo.dirstate b/hotspot/.hg/undo.dirstate
index 3f2517a..556ad91 100644
Binary files a/hotspot/.hg/undo.dirstate and b/hotspot/.hg/undo.dirstate differ
diff --git a/hotspot/.hgtags b/hotspot/.hgtags
index 7364a6b..d39a5b8 100644
--- a/hotspot/.hgtags
+++ b/hotspot/.hgtags
@@ -183,3 +183,17 @@ c149193c768b8b7233da4c3a3fdc0756b975848e hs21-b13
 c149193c768b8b7233da4c3a3fdc0756b975848e jdk7-b143
 fe189d4a44e9e8f0c7d78fcbd1c63701745752ca jdk7-b144
 0cc8a70952c368e06de2adab1f2649a408f5e577 jdk8-b01
+31e253c1da429124bb87570ab095d9bc89850d0a jdk8-b02
+3a2fb61165dfc72e398179a2796d740c8da5b8c0 jdk8-b03
+0fa3ace511fe98fe948e751531f3e2b7c60c8376 jdk8-b04
+dce7d24674f4d0bed00de24f00119057fdce7cfb jdk8-b05
+0db80d8e77fccddf5e6fa49963226b54ac7d0f62 jdk8-b06
+3f0cf875af83f55ec5e1a5cea80455315f9322a2 jdk8-b07
+3a2fb61165dfc72e6de2adab1f2649a408f5e577 hs22-b01
+7c29742c41b44fb0cd5a13c7ac8834f3f2ca649e hs22-b02
+3a2fb61165dfc72e398179a2796d740c8da5b8c0 hs22-b03
+ce9bde819dcba4a5d2822229d9183e69c74326ca hs22-b04
+513a84dd0f8b56dc0836b4e0bdd5dd0a778fc634 hs22-b05
+650d15d8f37255d3b805aa00c5bd1c30984b203d hs22-b06
+da883b9e6d3788057f9577e72712998ed82c9b7e hs23-b01
+49ed7eacfd16616166ff066493143889741097af jdk8-b08
diff --git a/hotspot/THIRD_PARTY_README b/hotspot/THIRD_PARTY_README
index db47234..ee5463a 100644
--- a/hotspot/THIRD_PARTY_README
+++ b/hotspot/THIRD_PARTY_README
@@ -1,38 +1,12 @@
 DO NOT TRANSLATE OR LOCALIZE.
+-----------------------------
 
-%% This notice is provided with respect to Thai dictionary for text breaking, which may be included with this software: 
+%% This notice is provided with respect to ASM Bytecode Manipulation 
+Framework v3.1, which is included with JRE 7, JDK 7, and OpenJDK 7.
 
---- begin of LICENSE file ---
+--- begin of LICENSE ---
 
-Copyright (C) 1982 The Royal Institute, Thai Royal Government.
-
-Copyright (C) 1998 National Electronics and Computer Technology Center,
- National Science and Technology Development Agency,
- Ministry of Science Technology and Environment,
- Thai Royal Government.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without
-limitation the rights to use, copy, modify, merge, publish, distribute,
-sublicense, and/or sell copies of the Software, and to permit persons to
-whom the Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-USE OR OTHER DEALINGS IN THE SOFTWARE.
-
---- end of LICENSE file ---
-%% This notice is provided with respect to ASM, which may be included with this software: 
-Copyright (c) 2000-2007 INRIA, France Telecom
+Copyright (c) 2000-2005 INRIA, France Telecom
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -61,655 +35,1024 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 THE POSSIBILITY OF SUCH DAMAGE.
-%% This notice is provided with respect to zlib 1.1.3, which may be included with this software:   
 
-Acknowledgments:
+--- end of LICENSE ---
 
-  The deflate format used by zlib was defined by Phil Katz. The deflate
-  and zlib specifications were written by L. Peter Deutsch. Thanks to all the
-  people who reported problems and suggested various improvements in zlib;
-  they are too numerous to cite here.
+--------------------------------------------------------------------------------
 
-Copyright notice:
+%% This notice is provided with respect to CodeViewer 1.0, which is included 
+with JDK 7.
 
- (C) 1995-1998 Jean-loup Gailly and Mark Adler
+--- begin of LICENSE ---
 
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
+Copyright 1999 by CoolServlets.com.
 
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
+Any errors or suggested improvements to this class can be reported as
+instructed on CoolServlets.com. We hope you enjoy this program... your
+comments will encourage further development!  This software is distributed
+under the terms of the BSD License.  Redistribution and use in source and
+binary forms, with or without modification, are permitted provided that the
+following conditions are met:
 
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
 
-  Jean-loup Gailly        Mark Adler
-  jloup at gzip.org          madler at alumni.caltech.edu
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
 
-If you use the zlib library in a product, we would appreciate *not*
-receiving lengthy legal documents to sign. The sources are provided
-for free but without warranty of any kind.  The library has been
-entirely written by Jean-loup Gailly and Mark Adler; it does not
-include third-party code.
-
-If you redistribute modified sources, we would appreciate that you include
-in the file ChangeLog history information documenting your changes.
-
-%% This notice is provided with respect to W3C (DTD for XML Signatures), which may be included with this software: 
-W3C® SOFTWARE NOTICE AND LICENSE
-Copyright © 1994-2002 World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/
-This W3C work (including software, documents, or other related items) is being provided by the copyright holders under the following license. By obtaining, using and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions:
-Permission to use, copy, modify, and distribute this software and its documentation, with or without modification,  for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the software and documentation or portions thereof, including modifications, that you make:
-1.The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. 
-2.Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, a short notice of the following form (hypertext is preferred, text is permitted) should be used within the body of any redistributed or derivative code: "Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/" 
-3.Notice of any changes or modifications to the W3C files, including the date changes were made. (We recommend you provide URIs to the location from which the code is derived.) 
-THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
-COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
-The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software without specific, written prior permission. Title to copyright in this software and any associated documentation will at all times remain with copyright holders.
-____________________________________
-This formulation of W3C's notice and license became active on August 14 1998 so as to improve compatibility with GPL. This version ensures that W3C software licensing terms are no more restrictive than GPL and consequently W3C software may be distributed in GPL packages. See the older formulation for the policy prior to this date. Please see our Copyright FAQ for common questions about using materials from our site, including specific terms and conditions for packages like libwww, Amaya, and Jigsaw. Other questions about this notice can be directed to site-policy at w3.org.
- 
-%% This notice is provided with respect to jscheme.jar, which may be included with this software: 
-Software License Agreement
-Copyright © 1998-2002 by Peter Norvig. 
-Permission is granted to anyone to use this software, in source or object code form, on any computer system, and to modify, compile, decompile, run, and redistribute it to anyone else, subject to the following restrictions: 
-1.The author makes no warranty of any kind, either expressed or implied, about the suitability of this software for any purpose.
-2.The author accepts no liability of any kind for damages or other consequences of the use of this software, even if they arise from defects in the software.
-3.The origin of this software must not be misrepresented, either by explicit claim or by omission.
-4.Altered versions must be plainly marked as such, and must not be misrepresented as being the original software. Altered versions may be distributed in packages under other licenses (such as the GNU license). 
-If you find this software useful, it would be nice if you let me (peter at norvig.com) know about it, and nicer still if you send me modifications that you are willing to share. However, you are not required to do so.
-
-
-%% This notice is provided with respect to PC/SC Lite for Suse Linux v. 1.1.1, which may be included with this software: 
-
-Copyright (c) 1999-2004 David Corcoran 
-All rights reserved.
+Neither name of CoolServlets.com nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
 
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
+THIS SOFTWARE IS PROVIDED BY COOLSERVLETS.COM AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
 
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
 
-Changes to this license can be made only by the copyright author with 
-explicit written consent.
+--- end of LICENSE ---
 
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-------------------------------------------------------------------------------
 
+%% This notice is provided with respect to Cryptix AES 3.2.0, which is
+included with JRE 7, JDK 7, and OpenJDK 7.
 
-%% This notice is provided with respect to IAIK PKCS Wrapper, which may be included with this software: 
+--- begin of LICENSE ---
 
-Copyright (c) 2002 Graz University of Technology. All rights reserved.
-Redistribution and use in source and binary forms, with or without modification,are permitted provided that the following conditions are met:
+Cryptix General License
 
+Copyright (c) 1995-2005 The Cryptix Foundation Limited.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+  1. Redistributions of source code must retain the copyright notice,
+     this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in
+     the documentation and/or other materials provided with the
+     distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE CRYPTIX FOUNDATION LIMITED AND
+CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--- end of LICENSE ---
 
-1. Redistributions of source code must retain the above copyright notice, this   list of conditions and the following disclaimer.
+-------------------------------------------------------------------------------
 
-2. Redistributions in binary form must reproduce the above copyright notice,   this list of conditions and the following disclaimer in the documentation   and/or other materials provided with the distribution.
+%% This notice is provided with respect to CUP Parser Generator for 
+Java 0.10k, which is included with JRE 7, JDK 7, and OpenJDK 7.
 
-3. The end-user documentation included with the redistribution, if any, must   include the following acknowledgment:
+--- begin of LICENSE ---
 
-   "This product includes software developed by IAIK of Graz University of    Technology."
+Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian
 
-   Alternately, this acknowledgment may appear in the software itself, if and   wherever such third-party acknowledgments normally appear.
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both the
+copyright notice and this permission notice and warranty disclaimer appear in
+supporting documentation, and that the names of the authors or their
+employers not be used in advertising or publicity pertaining to distribution of
+the software without specific, written prior permission.
 
-4. The names "Graz University of Technology" and "IAIK of Graz University of   Technology" must not be used to endorse or promote products derived from this   software without prior written permission.
+The authors and their employers disclaim all warranties with regard to
+this software, including all implied warranties of merchantability and fitness.
+In no event shall the authors or their employers be liable for any special,
+indirect or consequential damages or any damages whatsoever resulting from
+loss of use, data or profits, whether in an action of contract, negligence or
+other tortious action, arising out of or in connection with the use or
+performance of this software.
 
-5. Products derived from this software may not be called "IAIK PKCS Wrapper",   nor may "IAIK" appear in their name, without prior written permission of   Graz University of Technology.
+--- end of LICENSE ---
 
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE LICENSOR BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
-OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
+-------------------------------------------------------------------------------
 
-%% This notice is provided with respect to Document Object Model (DOM) v. Level 3, which may be included with this software: 
+%% This notice is provided with respect to Document Object Model (DOM) Level 2
+& 3, which is included with JRE 7, JDK 7, and OpenJDK 7.
 
-W3Cýý SOFTWARE NOTICE AND LICENSE
+--- begin of LICENSE ---
+
+W3C SOFTWARE NOTICE AND LICENSE
 
 http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
 
-This work (and included software, documentation such as READMEs, or other related items) is being
-provided by the copyright holders under the following license. By obtaining, using and/or copying this work, you
-(the licensee) agree that you have read, understood, and will comply with the following terms and conditions.
-
-Permission to copy, modify, and distribute this software and its documentation, with or without modification, for
-any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies
-of the software and documentation or portions thereof, including modifications:
-   1.The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. 
-   2.Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the
-     W3C Software Short Notice should be included (hypertext is preferred, text is permitted) within the body
-     of any redistributed or derivative code. 
-   3.Notice of any changes or modifications to the files, including the date changes were made. (We
-     recommend you provide URIs to the location from which the code is derived.) 
-THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKENO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO,
-WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THEUSE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
-
-COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL ORCONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
-The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the
-software without specific, written prior permission. Title to copyright in this software and any associated
-documentation will at all times remain with copyright holders.
+This work (and included software, documentation such as READMEs, or other
+related items) is being provided by the copyright holders under the following
+license. By obtaining, using and/or copying this work, you (the licensee)
+agree that you have read, understood, and will comply with the following terms
+and conditions.
+
+Permission to copy, modify, and distribute this software and its
+documentation, with or without modification, for any purpose and without fee
+or royalty is hereby granted, provided that you include the following on ALL
+copies of the software and documentation or portions thereof, including
+modifications:
+
+   1.The full text of this NOTICE in a location viewable to users of the
+   redistributed or derivative work.
+
+   2.Any pre-existing intellectual property disclaimers, notices, or terms and
+   conditions. If none exist, the W3C Software Short Notice should be included
+   (hypertext is preferred, text is permitted) within the body of any
+   redistributed or derivative code.
+
+   3.Notice of any changes or modifications to the files, including the date
+   changes were made. (We recommend you provide URIs to the location from
+   which the code is derived.)
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
+MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
+PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY
+THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL
+OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
+DOCUMENTATION.  The name and trademarks of copyright holders may NOT be used
+in advertising or publicity pertaining to the software without specific,
+written prior permission. Title to copyright in this software and any
+associated documentation will at all times remain with copyright holders.
 
 ____________________________________
 
-This formulation of W3C's notice and license became active on December 31 2002. This version removes the
-copyright ownership notice such that this license can be used with materials other than those owned by the
-W3C, reflects that ERCIM is now a host of the W3C, includes references to this specific dated version of the
-license, and removes the ambiguous grant of "use". Otherwise, this version is the same as the previous
-version and is written so as to preserve the Free Software Foundation's assessment of GPL compatibility and
-OSI's certification under the Open Source Definition. Please see our Copyright FAQ for common questions
-about using materials from our site, including specific terms and conditions for packages like libwww, Amaya,
-and Jigsaw. Other questions about this notice can be directed to 
+This formulation of W3C's notice and license became active on December 31
+2002. This version removes the copyright ownership notice such that this
+license can be used with materials other than those owned by the W3C, reflects
+that ERCIM is now a host of the W3C, includes references to this specific
+dated version of the license, and removes the ambiguous grant of "use".
+Otherwise, this version is the same as the previous version and is written so
+as to preserve the Free Software Foundation's assessment of GPL compatibility
+and OSI's certification under the Open Source Definition. Please see our
+Copyright FAQ for common questions about using materials from our site,
+including specific terms and conditions for packages like libwww, Amaya, and
+Jigsaw. Other questions about this notice can be directed to
 site-policy at w3.org.
 
-%% This notice is provided with respect to Xalan, Xerces, which may be included with this software: 
-
-/*
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 1999-2003 The Apache Software Foundation.  All rights  * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.  *
- * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:  
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself, *    if and wherever such third-party acknowledgments normally appear. *
- * 4. The names "Xerces" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written 
- *    permission, please contact apache at apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ==================================================================== *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 1999, International
- * Business Machines, Inc., http://www.ibm.com.  For more
- * information on the Apache Software Foundation, please see
- * 
-
-%% This notice is provided with respect to JavaScript, which may be included with this software: 
-
-AMENDMENTS 
-The Netscape Public License Version 1.1 ("NPL") consists of the Mozilla Public License Version 1.1 with the following Amendments, including Exhibit A-Netscape Public License.  Files identified with "Exhibit A-Netscape Public License" are governed by the Netscape Public License Version 1.1. 
-Additional Terms applicable to the Netscape Public License. 
-I. Effect. 
-These additional terms described in this Netscape Public License -- Amendments shall apply to the Mozilla Communicator client code and to all Covered Code under this License. 
-II. ''Netscape's Branded Code'' means Covered Code that Netscape distributes and/or permits others to distribute under one or more trademark(s) which are controlled by Netscape but which are not licensed for use under this License. 
-III. Netscape and logo. 
-This License does not grant any rights to use the trademarks "Netscape'', the "Netscape N and horizon'' logo or the "Netscape lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript", "Smart Browsing" even if such marks are included in the Original Code or Modifications. 
-IV. Inability to Comply Due to Contractual Obligation. 
-Prior to licensing the Original Code under this License, Netscape has licensed third party code for use in Netscape's Branded Code. To the extent that Netscape is limited contractually from making such third party code available under this License, Netscape may choose to reintegrate such code into Covered Code without being required to distribute such code in Source Code form, even if such code would otherwise be considered ''Modifications'' under this License. 
-V. Use of Modifications and Covered Code by Initial Developer. 
-V.1. In General. 
-The obligations of Section 3 apply to Netscape, except to the extent specified in this Amendment, Section V.2 and V.3. 
-V.2. Other Products. 
-Netscape may include Covered Code in products other than the Netscape's Branded Code which are released by Netscape during the two (2) years following the release date of the Original Code, without such additional products becoming subject to the terms of this License, and may license such additional products on different terms from those contained in this License. 
-V.3. Alternative Licensing. 
-Netscape may license the Source Code of Netscape's Branded Code, including Modifications incorporated therein, without such Netscape Branded Code becoming subject to the terms of this License, and may license such Netscape Branded Code on different terms from those contained in this License. 
- 
-VI. Litigation. 
-Notwithstanding the limitations of Section 11 above, the provisions regarding litigation in Section 11(a), (b) and (c) of the License shall apply to all disputes relating to this License.
-
-EXHIBIT A-Netscape Public License. 
-  
-''The contents of this file are subject to the Netscape Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/NPL/ 
-Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. 
-The Original Code is Mozilla Communicator client code, released March 31, 1998. 
-The Initial Developer of the Original Code is Netscape Communications Corporation. Portions created by Netscape are Copyright (C) 1998-1999 Netscape Communications Corporation. All Rights Reserved. 
-Contributor(s): ______________________________________.
-  
-Alternatively, the contents of this file may be used under the terms of the _____ license (the  "[___] License"), in which case the provisions of [______] License are applicable  instead of those above.  If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the NPL, indicate your decision by deleting  the provisions above and replace  them with the notice and other provisions required by the [___] License.  If you do not delete the provisions above, a recipient may use your version of this file under either the NPL or the [___] License."
-
-MOZILLA PUBLIC LICENSE 
-Version 1.1 
-
-1. Definitions. 
-1.0.1. "Commercial Use" means distribution or otherwise making the Covered Code available to a third party. 
-1.1. ''Contributor'' means each entity that creates or contributes to the creation of Modifications. 
-1.2. ''Contributor Version'' means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. 
-1.3. ''Covered Code'' means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. 
-1.4. ''Electronic Distribution Mechanism'' means a mechanism generally accepted in the software development community for the electronic transfer of data. 
-1.5. ''Executable'' means Covered Code in any form other than Source Code. 
-1.6. ''Initial Developer'' means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. 
-1.7. ''Larger Work'' means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. 
-1.8. ''License'' means this document. 
-1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. 
-1.9. ''Modifications'' means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: 
-A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. 
-B. Any new file that contains any part of the Original Code or previous Modifications. 
- 
-1.10. ''Original Code'' means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. 
-1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation,  method, process, and apparatus claims, in any patent Licensable by grantor. 
-1.11. ''Source Code'' means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. 
-1.12. "You'' (or "Your")  means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You'' includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control'' means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
-2. Source Code License. 
-2.1. The Initial Developer Grant. 
-The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: 
-(a)  under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and 
-(b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). 
- 
-(c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. 
-(d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code;  or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. 
- 
-2.2. Contributor Grant. 
-Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license 
-  
-(a)  under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and 
-(b) under Patent Claims infringed by the making, using, or selling of  Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of  Modifications made by that Contributor with its Contributor Version (or portions of such combination). 
-(c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. 
-(d)    Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2)  separate from the Contributor Version;  3)  for infringements caused by: i) third party modifications of Contributor Version or ii)  the combination of Modifications made by that Contributor with other software  (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor.
-
-3. Distribution Obligations. 
-3.1. Application of License. 
-The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. 
-3.2. Availability of Source Code. 
-Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. 
-3.3. Description of Modifications. 
-You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. 
-3.4. Intellectual Property Matters 
-(a) Third Party Claims. 
-If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL'' which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. 
-(b) Contributor APIs. 
-If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. 
- 
-          (c)    Representations. 
-Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License.
-
-3.5. Required Notices. 
-You must duplicate the notice in Exhibit A in each file of the Source Code.  If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice.  If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A.  You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code.  You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. 
-3.6. Distribution of Executable Versions. 
-You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. 
-3.7. Larger Works. 
-You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code.
-4. Inability to Comply Due to Statute or Regulation. 
-If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.
-5. Application of this License. 
-This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code.
-6. Versions of the License. 
-6.1. New Versions. 
-Netscape Communications Corporation (''Netscape'') may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. 
-6.2. Effect of New Versions. 
-Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License. 
-6.3. Derivative Works. 
-If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", ''NPL'' or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.)
-7. DISCLAIMER OF WARRANTY. 
-COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-8. TERMINATION. 
-8.1.  This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. 
-8.2.  If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant")  alleging that: 
-(a)  such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i)  agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant.  If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. 
-(b)  any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. 
-8.3.  If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. 
-8.4.  In the event of termination under Sections 8.1 or 8.2 above,  all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination.
-9. LIMITATION OF LIABILITY. 
-UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-10. U.S. GOVERNMENT END USERS. 
-The Covered Code is a ''commercial item,'' as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer software'' and ''commercial computer software documentation,'' as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein.
-11. MISCELLANEOUS. 
-This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License.
-12. RESPONSIBILITY FOR CLAIMS. 
-As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.
-13. MULTIPLE-LICENSED CODE. 
-Initial Developer may designate portions of the Covered Code as "Multiple-Licensed".  "Multiple-Licensed" means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the NPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A.
-
-EXHIBIT A -Mozilla Public License. 
-``The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at 
-http://www.mozilla.org/MPL/ 
-Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
-ANY KIND, either express or implied. See the License for the specific language governing rights and 
-limitations under the License. 
-The Original Code is ______________________________________. 
-The Initial Developer of the Original Code is ________________________. Portions created by 
- ______________________ are Copyright (C) ______ _______________________. All Rights 
-Reserved. 
-Contributor(s): ______________________________________. 
-Alternatively, the contents of this file may be used under the terms of the _____ license (the  "[___] License"), in which case the provisions of [______] License are applicable  instead of those above.  If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the MPL, indicate your decision by deleting  the provisions above and replace  them with the notice and other provisions required by the [___] License.  If you do not delete the provisions above, a recipient may use your version of this file under either the MPL or the [___] License." 
-[NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] 
-
-%% This notice is provided with respect to Mesa 3-D graphics library v. 5, which may be included with this software: 
-
-Copyright (c) 2007 The Khronos Group Inc. 
-
-Permission is hereby granted, free of charge, to any person obtaining a 
-copy of this software and/or associated documentation files (the 
-"Materials"), to deal in the Materials without restriction, including 
-without limitation the rights to use, copy, modify, merge, publish, 
-distribute, sublicense, and/or sell copies of the Materials, and to 
-permit persons to whom the Materials are furnished to do so, subject to 
-the following conditions: 
-
-The above copyright notice and this permission notice shall be included 
-in all copies or substantial portions of the Materials. 
-
-THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 
-MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 
-
-%% This notice is provided with respect to Byte Code Engineering Library (BCEL), which may be included with this software: 
-
-                     Apache Software License 
-
-                     /*
-====================================================================                      * The Apache Software License, Version 1.1
-                      *
-                      * Copyright (c) 2001 The Apache Software Foundation.  Allrights
-                      * reserved.
-                      *
-                      * Redistribution and use in source and binary forms, withor without
-                      * modification, are permitted provided that the followingconditions
-                      * are met:
-                      *
-                      * 1. Redistributions of source code must retain the abovecopyright
-                      *    notice, this list of conditions and the followingdisclaimer.
-                      *
-                      * 2. Redistributions in binary form must reproduce theabove copyright
-                      *    notice, this list of conditions and the followingdisclaimer in
-                      *    the documentation and/or other materials providedwith the
-                      *    distribution.
-                      *
-                      * 3. The end-user documentation included with theredistribution,
-                      *    if any, must include the following acknowledgment:                      *       "This product includes software developed by the                      *        Apache Software Foundation
-(http://www.apache.org/)."
-                      *    Alternately, this acknowledgment may appear in thesoftware itself,
-                      *    if and wherever such third-party acknowledgmentsnormally appear.
-                      *
-                      * 4. The names "Apache" and "Apache Software Foundation"and 
-                      *    "Apache BCEL" must not be used to endorse or promoteproducts 
-                      *    derived from this software without prior writtenpermission. For 
-                      *    written permission, please contact apache at apache.org.                      *
-                      * 5. Products derived from this software may not be called"Apache",
-                      *    "Apache BCEL", nor may "Apache" appear in their name,without 
-                      *    prior written permission of the Apache SoftwareFoundation.
-                      *
-                      * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED ORIMPLIED
-                      * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES
-                      * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSEARE
-                      * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWAREFOUNDATION OR
-                      * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,INCIDENTAL,
-                      * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,BUT NOT
-                      * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF
-                      * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVERCAUSED AND
-                      * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY,
-                      * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING INANY WAY OUT
-                      * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF
-                      * SUCH DAMAGE.
-                      *
-====================================================================                      *
-                      * This software consists of voluntary contributions madeby many
-                      * individuals on behalf of the Apache Software
-Foundation.  For more
-                      * information on the Apache Software Foundation, pleasesee
-                      * .
-                      */
-
-%% This notice is provided with respect to Regexp, Regular Expression Package, which may be included with this software: 
-
-The Apache Software License, Version 1.1
-Copyright (c) 2001 The Apache Software Foundation.  All rights
-reserved.
-Redistribution and use in source and binary forms, with or without modification,are permitted provided that the following conditions are met:
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Elliptic Curve Cryptography, which 
+is included with JRE 7, JDK 7, and OpenJDK 7.
+
+You are receiving a copy of the Elliptic Curve Cryptography library in source
+form with the JDK 7 source distribution and object code in the JRE 7 & JDK 7
+runtime.
+
+The terms of the Oracle license do NOT apply to the Elliptic Curve
+Cryptography library program; it is licensed under the following license,
+separately from the Oracle programs you receive. If you do not wish to install
+this program, you may delete the library named libsunec.so (on Solaris and
+Linux systems) or sunec.dll (on Windows systems) from the JRE bin directory
+reserved for native libraries.
+
+--- begin of LICENSE ---
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to FontConfig 2.5, which is 
+included with JRE 7, JDK 7, and OpenJDK 7 source distributions on
+Linux and Solaris.
+
+--- begin of LICENSE ---
+
+Copyright © 2001,2003 Keith Packard
 
-1. Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that the
+above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and that
+the name of Keith Packard not be used in advertising or publicity pertaining
+to distribution of the software without specific, written prior permission.
+Keith Packard makes no representations about the suitability of this software
+for any purpose.  It is provided "as is" without express or implied warranty.
 
-2. Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in
-the documentation and/or other materials provided with the
-distribution.
-
-3. The end-user documentation included with the redistribution,
-if any, must include the following acknowledgment:
-"This product includes software developed by the
-Apache Software Foundation (http://www.apache.org/)."
-Alternately, this acknowledgment may appear in the software itself,
-if and wherever such third-party acknowledgments normally appear.
-
-4. The names "Apache" and "Apache Software Foundation" and 
-"Apache Turbine" must not be used to endorse or promote products 
-derived from this software without prior written permission. For 
-written permission, please contact apache at apache.org.
-
-5. Products derived from this software may not be called "Apache",
-"Apache Turbine", nor may "Apache" appear in their name, without 
-prior written permission of the Apache Software Foundation.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
-ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-                                                             
-====================================================================
-This software consists of voluntary contributions made by many
-individuals on behalf of the Apache Software Foundation.  For more
-information on the Apache Software Foundation, please see
-                                                             
-http://www.apache.org.
-
-%% This notice is provided with respect to CUP Parser Generator for Java, which may be included with this software: 
-
-CUP Parser Generator Copyright Notice, License, and Disclaimer
-
-Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian 
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted, provided thatthe above copyright notice appear in all copies and that both the copyrightnotice and this permission notice and warranty disclaimer appear in
-supporting documentation, and that the names of the authors or their employersnot be used in advertising or publicity pertaining to distribution of
-the software without specific, written prior permission. 
+KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL KEITH
+PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+--- end of LICENSE ---
 
-The authors and their employers disclaim all warranties with regard to thissoftware, including all implied warranties of merchantability and
-fitness. In no event shall the authors or their employers be liable for anyspecial, indirect or consequential damages or any damages whatsoever
-resulting from loss of use, data or profits, whether in an action of contract,negligence or other tortious action, arising out of or in connection withthe use or performance of this software. 
+-------------------------------------------------------------------------------
 
-%% This notice is provided with respect to SAX v. 2.0.1, which may be included with this software: 
+%% This notice is provided with respect to IAIK PKCS#11 Wrapper, 
+which is included with JRE 7, JDK 7, and OpenJDK 7.
 
-Copyright Status
+--- begin of LICENSE ---
 
-                         SAX is free!
+IAIK PKCS#11 Wrapper License
 
-                         In fact, it's not possible to own a license to SAX, since it's been placed in the public
-                         domain. 
+Copyright (c) 2002 Graz University of Technology. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
 
-                         No Warranty
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
 
-                         Because SAX is released to the public domain, there is no warranty for the design or for
-                         the software implementation, to the extent permitted by applicable law. Except when
-                         otherwise stated in writing the copyright holders and/or other parties provide SAX "as is"
-                         without warranty of any kind, either expressed or implied, including, but not limited to, the
-                         implied warranties of merchantability and fitness for a particular purpose. The entire risk as
-                         to the quality and performance of SAX is with you. Should SAX prove defective, you
-                         assume the cost of all necessary servicing, repair or correction.
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
 
-                         In no event unless required by applicable law or agreed to in writing will any copyright
-                         holder, or any other party who may modify and/or redistribute SAX, be liable to you for
-                         damages, including any general, special, incidental or consequential damages arising out of
-                         the use or inability to use SAX (including but not limited to loss of data or data being
-                         rendered inaccurate or losses sustained by you or third parties or a failure of the SAX to
-                         operate with any other programs), even if such holder or other party has been advised of
-                         the possibility of such damages.
+3. The end-user documentation included with the redistribution, if any, must
+   include the following acknowledgment:
 
-                         Copyright Disclaimers 
+   "This product includes software developed by IAIK of Graz University of
+    Technology."
 
-                         This page includes statements to that effect by David Megginson, who would have been
-                         able to claim copyright for the original work. 
-                         SAX 1.0 
+   Alternately, this acknowledgment may appear in the software itself, if and
+   wherever such third-party acknowledgments normally appear.
 
-                         Version 1.0 of the Simple API for XML (SAX), created collectively by the membership of
-                         the XML-DEV mailing list, is hereby released into the public domain.
+4. The names "Graz University of Technology" and "IAIK of Graz University of
+   Technology" must not be used to endorse or promote products derived from this
+   software without prior written permission.
 
-                         No one owns SAX: you may use it freely in both commercial and non-commercial
-                         applications, bundle it with your software distribution, include it on a CD-ROM, list the
-                         source code in a book, mirror the documentation at your own web site, or use it in any
-                         other way you see fit.
+5. Products derived from this software may not be called "IAIK PKCS Wrapper",
+   nor may "IAIK" appear in their name, without prior written permission of
+   Graz University of Technology.
 
-                         David Megginson, sax at megginson.com
-                         1998-05-11
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+LICENSOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
 
-                         SAX 2.0 
+--- end of LICENSE ---
 
-                         I hereby abandon any property rights to SAX 2.0 (the Simple API for XML), and release
-                         all of the SAX 2.0 source code, compiled code, and documentation contained in this
-                         distribution into the Public Domain. SAX comes with NO WARRANTY or guarantee of
-                         fitness for any purpose.
+-------------------------------------------------------------------------------
 
-                         David Megginson, david at megginson.com
-                         2000-05-05
+%% This notice is provided with respect to ICU4C 4.0.1 and ICU4J 4.4, which 
+is included with JRE 7, JDK 7, and OpenJDK 7.
 
-%% This notice is provided with respect to Cryptix, which may be included with this software: 
+--- begin of LICENSE ---
 
-Cryptix General License
+Copyright (c) 1995-2010 International Business Machines Corporation and others 
 
-Copyright © 1995-2003 The Cryptix Foundation Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions aremet:
+All rights reserved. 
 
-   1.Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer.    2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the     documentation and/or other materials provided with the distribution. 
-THIS SOFTWARE IS PROVIDED BY THE CRYPTIX FOUNDATION LIMITED AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS ORIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FORA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BELIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOTLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OFTHE POSSIBILITY OF SUCH DAMAGE.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, and/or sell copies of the
+Software, and to permit persons to whom the Software is furnished to do so,
+provided that the above copyright notice(s) and this permission notice appear
+in all copies of the Software and that both the above copyright notice(s) and
+this permission notice appear in supporting documentation.
 
-%% This notice is provided with respect to X Window System, which may be included with this software: 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
+NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE
+LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization of the copyright holder.
+All trademarks and registered trademarks mentioned herein are the property of
+their respective owners.
 
-Copyright  The Open Group
+--- end of LICENSE ---
 
-Permission to use, copy, modify, distribute, and sell this software and itsdocumentation for any purpose is hereby granted without fee, provided that theabove copyright notice appear in all copies and that both that copyright noticeand this permission notice appear in supporting documentation.
+-------------------------------------------------------------------------------
 
-The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software.
+%% This notice is provided with respect to IJG JPEG 6b, which is 
+included with JRE 7, JDK 7, and OpenJDK 7.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESSFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE OPEN GROUPBE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OFCONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THESOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--- begin of LICENSE ---
+
+This software is copyright (C) 1991-1998, Thomas G. Lane.
+All Rights Reserved except as specified below.
 
-Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group.
+Permission is hereby granted to use, copy, modify, and distribute this
+software (or portions thereof) for any purpose, without fee, subject to these
+conditions:
+(1) If any part of the source code for this software is distributed, then this
+README file must be included, with this copyright and no-warranty notice
+unaltered; and any additions, deletions, or changes to the original files
+must be clearly indicated in accompanying documentation.
+(2) If only executable code is distributed, then the accompanying
+documentation must state that "this software is based in part on the work of
+the Independent JPEG Group".
+(3) Permission for use of this software is granted only if the user accepts
+full responsibility for any undesirable consequences; the authors accept
+NO LIABILITY for damages of any kind.
 
-Portions also covered by other licenses as noted in the above URL.
+These conditions apply to any software derived from or based on the IJG code,
+not just to the unmodified library.  If you use our work, you ought to
+acknowledge us.
 
-%% This notice is provided with respect to Retroweaver, which may be included with this software: 
+Permission is NOT granted for the use of any IJG author's name or company name
+in advertising or publicity relating to this software or products derived from
+it.  This software may be referred to only as "the Independent JPEG Group's
+software".
 
-Copyright (c) February 2004, Toby Reyelts
-All rights reserved.
+We specifically permit and encourage the use of this software as the basis of
+commercial products, provided that all warranty or liability claims are
+assumed by the product vendor.
 
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+--- end of LICENSE ---
 
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
-Neither the name of Toby Reyelts nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. 
+--------------------------------------------------------------------------------
 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY, 
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+%% This notice is provided with respect to JOpt-Simple v3.0,  which is 
+included with JRE 7, JDK 7, and OpenJDK 7.
 
-%% This notice is provided with respect to stripper, which may be included with this software: 
+--- begin of LICENSE ---
+
+ Copyright (c) 2004-2009 Paul R. Holser, Jr.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+--- end of LICENSE ---
+
+--------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Kerberos functionality, which 
+which is included with JRE 7, JDK 7, and OpenJDK 7.
+
+--- begin of LICENSE ---
+
+ (C) Copyright IBM Corp. 1999 All Rights Reserved.
+ Copyright 1997 The Open Group Research Institute. All rights reserved.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Kerberos functionality from 
+FundsXpress, INC., which is included with JRE 7, JDK 7, and OpenJDK 7.
+
+--- begin of LICENSE ---
+
+ Copyright (C) 1998 by the FundsXpress, INC.
 
-Stripper : debug information stripper
- Copyright (c) 2003 Kohsuke Kawaguchi
  All rights reserved.
 
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the    documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holders nor the names of its
-    contributors may be used to endorse or promote products derived from    this software without specific prior written permission.
+ Export of this software from the United States of America may require
+ a specific license from the United States Government.  It is the
+ responsibility of any person or organization contemplating export to
+ obtain such a license before exporting.
+
+ WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
+ distribute this software and its documentation for any purpose and
+ without fee is hereby granted, provided that the above copyright
+ notice appear in all copies and that both that copyright notice and
+ this permission notice appear in supporting documentation, and that
+ the name of FundsXpress. not be used in advertising or publicity pertaining
+ to distribution of the software without specific, written prior
+ permission.  FundsXpress makes no representations about the suitability of
+ this software for any purpose.  It is provided "as is" without express
+ or implied warranty.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-%% This notice is provided with respect to libpng official PNG reference library, which may be included with this software: 
+--- end of LICENSE ---
 
-This copy of the libpng notices is provided for your convenience.  In case ofany discrepancy between this copy and the notices in the file png.h that isincluded in the libpng distribution, the latter shall prevail.
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Kronos OpenGL headers, which is 
+included with JDK 7 and OpenJDK 7 source distributions.
+
+--- begin of LICENSE ---
+
+ Copyright (c) 2007 The Khronos Group Inc.
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and/or associated documentation files (the "Materials"), to
+ deal in the Materials without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Materials, and to permit persons to whom the Materials are
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Materials.
+
+ THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE
+ MATERIALS.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% Portions Copyright Eastman Kodak Company 1992
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to libpng 1.2.18, which is 
+included with JRE 7, JDK 7, and OpenJDK 7.
+
+--- begin of LICENSE ---
+
+This copy of the libpng notices is provided for your convenience.  In case of
+any discrepancy between this copy and the notices in the file png.h that is
+included in the libpng distribution, the latter shall prevail.
 
 COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
 
-If you modify libpng you may insert additional notices immediately followingthis sentence.
+If you modify libpng you may insert additional notices immediately following
+this sentence.
+
+libpng versions 1.2.6, August 15, 2004, through 1.2.18, May 15, 2007, are
+Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are
+distributed according to the same disclaimer and license as libpng-1.2.5
+with the following individual added to the list of Contributing Authors
 
-libpng version 1.2.6, December 3, 2004, is
-Copyright (c) 2004 Glenn Randers-Pehrson, and is
-distributed according to the same disclaimer and license as libpng-1.2.5with the following individual added to the list of Contributing Authors
    Cosmin Truta
 
-libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, areCopyright (c) 2000-2002 Glenn Randers-Pehrson, and are
-distributed according to the same disclaimer and license as libpng-1.0.6with the following individuals added to the list of Contributing Authors
+libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are
+Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
+distributed according to the same disclaimer and license as libpng-1.0.6
+with the following individuals added to the list of Contributing Authors
+
    Simon-Pierre Cadieux
    Eric S. Raymond
    Gilles Vollant
 
 and with the following additions to the disclaimer:
 
-   There is no warranty against interference with your enjoyment of the   library or against infringement.  There is no warranty that our
-   efforts or the library will fulfill any of your particular purposes   or needs.  This library is provided with all faults, and the entire   risk of satisfactory quality, performance, accuracy, and effort is with   the user.
+   There is no warranty against interference with your enjoyment of the
+   library or against infringement.  There is no warranty that our
+   efforts or the library will fulfill any of your particular purposes
+   or needs.  This library is provided with all faults, and the entire
+   risk of satisfactory quality, performance, accuracy, and effort is with
+   the user.
+
+libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
+Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are
+distributed according to the same disclaimer and license as libpng-0.96,
+with the following individuals added to the list of Contributing Authors:
 
-libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, areCopyright (c) 1998, 1999 Glenn Randers-Pehrson, and are
-distributed according to the same disclaimer and license as libpng-0.96,with the following individuals added to the list of Contributing Authors:
    Tom Lane
    Glenn Randers-Pehrson
    Willem van Schaik
 
 libpng versions 0.89, June 1996, through 0.96, May 1997, are
 Copyright (c) 1996, 1997 Andreas Dilger
-Distributed according to the same disclaimer and license as libpng-0.88,with the following individuals added to the list of Contributing Authors:
+Distributed according to the same disclaimer and license as libpng-0.88,
+with the following individuals added to the list of Contributing Authors:
+
    John Bowler
    Kevin Bracey
    Sam Bushell
@@ -720,7 +1063,8 @@ Distributed according to the same disclaimer and license as libpng-0.88,with the
 libpng versions 0.5, May 1995, through 0.88, January 1996, are
 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
 
-For the purposes of this copyright and license, "Contributing Authors"is defined as the following set of individuals:
+For the purposes of this copyright and license, "Contributing Authors"
+is defined as the following set of individuals:
 
    Andreas Dilger
    Dave Martindale
@@ -728,12 +1072,17 @@ For the purposes of this copyright and license, "Contributing Authors"is defined
    Paul Schmidt
    Tim Wegner
 
-The PNG Reference Library is supplied "AS IS".  The Contributing Authorsand Group 42, Inc. disclaim all warranties, expressed or implied,
-including, without limitation, the warranties of merchantability and offitness for any purpose.  The Contributing Authors and Group 42, Inc.
-assume no liability for direct, indirect, incidental, special, exemplary,or consequential damages, which may result from the use of the PNG
+The PNG Reference Library is supplied "AS IS".  The Contributing Authors
+and Group 42, Inc. disclaim all warranties, expressed or implied,
+including, without limitation, the warranties of merchantability and of
+fitness for any purpose.  The Contributing Authors and Group 42, Inc.
+assume no liability for direct, indirect, incidental, special, exemplary,
+or consequential damages, which may result from the use of the PNG
 Reference Library, even if advised of the possibility of such damage.
 
-Permission is hereby granted to use, copy, modify, and distribute thissource code, or portions hereof, for any purpose, without fee, subjectto the following restrictions:
+Permission is hereby granted to use, copy, modify, and distribute this
+source code, or portions hereof, for any purpose, without fee, subject
+to the following restrictions:
 
 1. The origin of this source code must not be misrepresented.
 
@@ -743,306 +1092,1259 @@ Permission is hereby granted to use, copy, modify, and distribute thissource cod
 3. This Copyright notice may not be removed or altered from any
    source or altered source distribution.
 
-The Contributing Authors and Group 42, Inc. specifically permit, withoutfee, and encourage the use of this source code as a component to
-supporting the PNG file format in commercial products.  If you use thissource code in a product, acknowledgment is not required but would be
+The Contributing Authors and Group 42, Inc. specifically permit, without
+fee, and encourage the use of this source code as a component to
+supporting the PNG file format in commercial products.  If you use this
+source code in a product, acknowledgment is not required but would be
 appreciated.
 
 
-A "png_get_copyright" function is available, for convenient use in "about"boxes and the like:
+A "png_get_copyright" function is available, for convenient use in "about"
+boxes and the like:
 
    printf("%s",png_get_copyright(NULL));
 
 Also, the PNG logo (in PNG format, of course) is supplied in the
 files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
 
-Libpng is OSI Certified Open Source Software.  OSI Certified Open Source is acertification mark of the Open Source Initiative.
+Libpng is OSI Certified Open Source Software.  OSI Certified Open Source is a
+certification mark of the Open Source Initiative.
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-December 3, 2004
+May 15, 2007
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to libungif 4.1.3, which is 
+included with JRE 7, JDK 7, and OpenJDK 7.
 
-%% This notice is provided with respect to Libungif - An uncompressed GIF library, which may be included with this software: 
+--- begin of LICENSE ---
 
 The GIFLIB distribution is Copyright (c) 1997  Eric S. Raymond
 
-Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software is
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:
 
-The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INTHE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
 
-%% This notice is provided with respect to XML Resolver library, Xalan J2, and StAX API, which may be included with this software: 
+--- end of LICENSE ---
 
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
+-------------------------------------------------------------------------------
 
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+%% This notice is provided with respect to Little CMS 2.0, which is 
+included with OpenJDK 7.
 
-   1. Definitions.
+--- begin of LICENSE ---
 
-      "License" shall mean the terms and conditions for use, reproduction,      and distribution as defined by Sections 1 through 9 of this document.
-      "Licensor" shall mean the copyright owner or entity authorized by      the copyright owner that is granting the License.
+Little CMS
+Copyright (c) 1998-2010 Marti Maria Saguer
 
-      "Legal Entity" shall mean the union of the acting entity and all      other entities that control, are controlled by, or are under common      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the      outstanding shares, or (iii) beneficial ownership of such entity.
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
 
-      "Source" form shall mean the preferred form for making modifications,      including but not limited to software source code, documentation      source, and configuration files.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
 
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
 
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
+--- end of LICENSE ---
 
-      "Derivative Works" shall mean any work, whether in Source or Object      form, that is based on (or derived from) the Work and for which the      editorial revisions, annotations, elaborations, or other modifications      represent, as a whole, an original work of authorship. For the purposes      of this License, Derivative Works shall not include works that remain      separable from, or merely link (or bind by name) to the interfaces of,      the Work and Derivative Works thereof.
+-------------------------------------------------------------------------------
 
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner      or by an individual or Legal Entity authorized to submit on behalf of      the copyright owner. For the purposes of this definition, "submitted"      means any form of electronic, verbal, or written communication sent      to the Licensor or its representatives, including but not limited to      communication on electronic mailing lists, source code control systems,      and issue tracking systems that are managed by, or on behalf of, the      Licensor for the purpose of discussing and improving the Work, but      excluding communication that is conspicuously marked or otherwise      designated in writing by the copyright owner as "Not a Contribution."
-      "Contributor" shall mean Licensor and any individual or Legal Entity      on behalf of whom a Contribution has been received by Licensor and      subsequently incorporated within the Work.
+%% Lucida is a registered trademark or trademark of Bigelow & Holmes in the
+U.S. and other countries.
 
-   2. Grant of Copyright License. Subject to the terms and conditions of      this License, each Contributor hereby grants to You a perpetual,      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the      Work and such Derivative Works in Source or Object form.
+-------------------------------------------------------------------------------
 
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,      use, offer to sell, sell, import, and otherwise transfer the Work,      where such license applies only to those patent claims licensable      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)      with the Work to which such Contribution(s) was submitted. If You      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work      or a Contribution incorporated within the Work constitutes direct      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
+%% This notice is provided with respect to Mesa 3D Graphics Library v4.1,
+which is included with JRE 7, JDK 7, and OpenJDK 7 source distributions.
 
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
+--- begin of LICENSE ---
 
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
+ Mesa 3-D graphics library
+ Version:  4.1
 
-      (b) You must cause any modified files to carry prominent notices          stating that You changed the files; and
+ Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
 
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
 
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must          include a readable copy of the attribution notices contained          within such NOTICE file, excluding those notices that do not          pertain to any part of the Derivative Works, in at least one          of the following places: within a NOTICE text file distributed          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside          or as an addendum to the NOTICE text from the Work, provided          that such additional attribution notices cannot be construed          as modifying the License.
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
 
-      You may add Your own copyright statement to Your modifications and      may provide additional or different license terms and conditions      for use, reproduction, or distribution of Your modifications, or      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with      the conditions stated in this License.
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-   5. Submission of Contributions. Unless You explicitly state otherwise,      any Contribution intentionally submitted for inclusion in the Work      by You to the Licensor shall be under the terms and conditions of      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify      the terms of any separate license agreement you may have executed      with Licensor regarding such Contributions.
+--- end of LICENSE ---
 
-   6. Trademarks. This License does not grant permission to use the trade      names, trademarks, service marks, or product names of the Licensor,      except as required for reasonable and customary use in describing the      origin of the Work and reproducing the content of the NOTICE file.
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the      appropriateness of using or redistributing the Work and assume any      risks associated with Your exercise of permissions under this License.
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly      negligent acts) or agreed to in writing, shall any Contributor be      liable to You for damages, including any direct, indirect, special,      incidental, or consequential damages of any character arising as a      result of this License or out of the use or inability to use the      Work (including but not limited to damages for loss of goodwill,      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
+-------------------------------------------------------------------------------
 
-   9. Accepting Warranty or Additional Liability. While redistributing      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,      or other liability obligations and/or rights consistent with this      License. However, in accepting such obligations, You may act only      on Your own behalf and on Your sole responsibility, not on behalf      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason      of your accepting any such warranty or additional liability.
+%% This notice is provided with respect to PC/SC Lite for Suse Linux v.1.1.1,
+which is included with JRE 7, JDK 7, and OpenJDK 7 on Linux and Solaris.
 
-   END OF TERMS AND CONDITIONS
+--- begin of LICENSE ---
 
-   APPENDIX: How to apply the Apache License to your work.
+Copyright (c) 1999-2004 David Corcoran <corcoran at linuxnet.com>
+Copyright (c) 1999-2004 Ludovic Rousseau <ludovic.rousseau (at) free.fr>
+All rights reserved.
 
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
 
-   Copyright [yyyy] [name of copyright owner]
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement:
+     This product includes software developed by: 
+      David Corcoran <corcoran at linuxnet.com>
+      http://www.linuxnet.com (MUSCLE)
+4. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
 
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
+Changes to this license can be made only by the copyright author with 
+explicit written consent.
 
-       http://www.apache.org/licenses/LICENSE-2.0
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-   Unless required by applicable law or agreed to in writing, software   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   See the License for the specific language governing permissions and   limitations under the License.
+--- end of LICENSE ---
 
-%% Some Portions licensed from IBM are available at: 
-http://www.ibm.com/software/globalization/icu/
+-------------------------------------------------------------------------------
 
-%% This notice is provided with respect to ICU4J, ICU 1.8.1 and later, which may be included with this software: 
+%% This notice is provided with respect to Relax NG Object/Parser v.20050510,
+which is included with JRE 7, JDK 7, and OpenJDK 7.
 
-ICU License - ICU 1.8.1 and later COPYRIGHT AND PERMISSION NOTICE Cop
-yright (c)
-1995-2003 International Business Machines Corporation and others All rightsreserved. Permission is hereby granted, free of charge, to any person obtaininga copy of this software and associated documentation files (the "Software"), todeal in the Software without restriction, including without limitation therights to use, copy, modify, merge, publish, distribute, and/or sell copies ofthe Software, and to permit persons to whom the Software is furnished to do so,provided that the above copyright notice(s) and this permission notice appear inall copies of the Software and that both the above copyright notice(s) and thispermission notice appear in supporting documentation. THE SOFTWARE IS PROVIDED"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOTLIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSEAND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHTHOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY C
- LAIM, OR ANYSPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTINGFROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCEOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE ORPERFORMANCE OF THIS SOFTWARE. Except as contained in this notice, the name of acopyright holder shall not be used in advertising or otherwise to promote thesale, use or other dealings in this Software without prior written authorizationof the copyright holder.
+--- begin of LICENSE ---
 
-%% This notice is provided with respect to Jing, which may be included with this software: 
+Copyright (c) Kohsuke Kawaguchi
 
-Jing Copying Conditions
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions: The above copyright
+notice and this permission notice shall be included in all copies or
+substantial portions of the Software.
 
-Copyright (c) 2001-2003 Thai Open Source Software Center Ltd
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to RelaxNGCC v1.12, which is 
+included with JRE 7, JDK 7, and OpenJDK 7.
+
+--- begin of LICENSE ---
+
+Copyright (c) 2000-2003 Daisuke Okajima and Kohsuke Kawaguchi.  
 All rights reserved.
 
-Redistribution and use in source and binary forms, with or without modification,are permitted provided that the following conditions are met:
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
 
-    * Redistributions of source code must retain the above copyright notice,this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright notice,this list of conditions and the following disclaimer in the documentation and/orother materials provided with the distribution.
-    * Neither the name of the Thai Open Source Software Center Ltd nor the namesof its contributors may be used to endorse or promote products derived from thissoftware without specific prior written permission.
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ANDANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ONANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+3. The end-user documentation included with the redistribution, if any, must
+   include the following acknowledgment:
 
-%% This notice is provided with respect to RELAX NG Object Model/Parser, which may be included with this software: 
+    "This product includes software developed by Daisuke Okajima
+    and Kohsuke Kawaguchi (http://relaxngcc.sf.net/)."
 
+Alternately, this acknowledgment may appear in the software itself, if and
+wherever such third-party acknowledgments normally appear.
 
-The MIT License
+4. The names of the copyright holders must not be used to endorse or promote
+   products derived from this software without prior written permission. For
+   written permission, please contact the copyright holders.
 
-Copyright (c)  
+5. Products derived from this software may not be called "RELAXNGCC", nor may
+  "RELAXNGCC" appear in their name, without prior written permission of the
+  copyright holders.
 
-Permission is hereby granted, free of charge, to any person obtaining a copy ofthis software and associated documentation files (the "Software"), to deal inthe Software without restriction, including without limitation the rights touse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies ofthe Software, and to permit persons to whom the Software is furnished to do so,subject to the following conditions:
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL THE APACHE
+SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--- end of LICENSE ---
 
-The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software.
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Mozilla Rhino v1.7R3, which 
+is included with JRE 7, JDK 7, and OpenJDK 7
+
+--- begin of LICENSE ---
+
+                          MOZILLA PUBLIC LICENSE
+                                Version 1.1
+
+                              ---------------
+
+1. Definitions.
+
+     1.0.1. "Commercial Use" means distribution or otherwise making the
+     Covered Code available to a third party.
+
+     1.1. "Contributor" means each entity that creates or contributes to
+     the creation of Modifications.
+
+     1.2. "Contributor Version" means the combination of the Original
+     Code, prior Modifications used by a Contributor, and the Modifications
+     made by that particular Contributor.
+
+     1.3. "Covered Code" means the Original Code or Modifications or the
+     combination of the Original Code and Modifications, in each case
+     including portions thereof.
+
+     1.4. "Electronic Distribution Mechanism" means a mechanism generally
+     accepted in the software development community for the electronic
+     transfer of data.
+
+     1.5. "Executable" means Covered Code in any form other than Source
+     Code.
+
+     1.6. "Initial Developer" means the individual or entity identified
+     as the Initial Developer in the Source Code notice required by Exhibit
+     A.
+
+     1.7. "Larger Work" means a work which combines Covered Code or
+     portions thereof with code not governed by the terms of this License.
+
+     1.8. "License" means this document.
+
+     1.8.1. "Licensable" means having the right to grant, to the maximum
+     extent possible, whether at the time of the initial grant or
+     subsequently acquired, any and all of the rights conveyed herein.
+
+     1.9. "Modifications" means any addition to or deletion from the
+     substance or structure of either the Original Code or any previous
+     Modifications. When Covered Code is released as a series of files, a
+     Modification is:
+          A. Any addition to or deletion from the contents of a file
+          containing Original Code or previous Modifications.
+
+          B. Any new file that contains any part of the Original Code or
+          previous Modifications.
+
+     1.10. "Original Code" means Source Code of computer software code
+     which is described in the Source Code notice required by Exhibit A as
+     Original Code, and which, at the time of its release under this
+     License is not already Covered Code governed by this License.
+
+     1.10.1. "Patent Claims" means any patent claim(s), now owned or
+     hereafter acquired, including without limitation,  method, process,
+     and apparatus claims, in any patent Licensable by grantor.
+
+     1.11. "Source Code" means the preferred form of the Covered Code for
+     making modifications to it, including all modules it contains, plus
+     any associated interface definition files, scripts used to control
+     compilation and installation of an Executable, or source code
+     differential comparisons against either the Original Code or another
+     well known, available Covered Code of the Contributor's choice. The
+     Source Code can be in a compressed or archival form, provided the
+     appropriate decompression or de-archiving software is widely available
+     for no charge.
+
+     1.12. "You" (or "Your")  means an individual or a legal entity
+     exercising rights under, and complying with all of the terms of, this
+     License or a future version of this License issued under Section 6.1.
+     For legal entities, "You" includes any entity which controls, is
+     controlled by, or is under common control with You. For purposes of
+     this definition, "control" means (a) the power, direct or indirect,
+     to cause the direction or management of such entity, whether by
+     contract or otherwise, or (b) ownership of more than fifty percent
+     (50%) of the outstanding shares or beneficial ownership of such
+     entity.
+
+2. Source Code License.
+
+     2.1. The Initial Developer Grant.
+     The Initial Developer hereby grants You a world-wide, royalty-free,
+     non-exclusive license, subject to third party intellectual property
+     claims:
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Initial Developer to use, reproduce,
+          modify, display, perform, sublicense and distribute the Original
+          Code (or portions thereof) with or without Modifications, and/or
+          as part of a Larger Work; and
+
+          (b) under Patents Claims infringed by the making, using or
+          selling of Original Code, to make, have made, use, practice,
+          sell, and offer for sale, and/or otherwise dispose of the
+          Original Code (or portions thereof).
+
+          (c) the licenses granted in this Section 2.1(a) and (b) are
+          effective on the date Initial Developer first distributes
+          Original Code under the terms of this License.
+
+          (d) Notwithstanding Section 2.1(b) above, no patent license is
+          granted: 1) for code that You delete from the Original Code; 2)
+          separate from the Original Code;  or 3) for infringements caused
+          by: i) the modification of the Original Code or ii) the
+          combination of the Original Code with other software or devices.
+
+     2.2. Contributor Grant.
+     Subject to third party intellectual property claims, each Contributor
+     hereby grants You a world-wide, royalty-free, non-exclusive license
+
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Contributor, to use, reproduce, modify,
+          display, perform, sublicense and distribute the Modifications
+          created by such Contributor (or portions thereof) either on an
+          unmodified basis, with other Modifications, as Covered Code
+          and/or as part of a Larger Work; and
+
+          (b) under Patent Claims infringed by the making, using, or
+          selling of  Modifications made by that Contributor either alone
+          and/or in combination with its Contributor Version (or portions
+          of such combination), to make, use, sell, offer for sale, have
+          made, and/or otherwise dispose of: 1) Modifications made by that
+          Contributor (or portions thereof); and 2) the combination of
+          Modifications made by that Contributor with its Contributor
+          Version (or portions of such combination).
+
+          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+          effective on the date Contributor first makes Commercial Use of
+          the Covered Code.
+
+          (d)    Notwithstanding Section 2.2(b) above, no patent license is
+          granted: 1) for any code that Contributor has deleted from the
+          Contributor Version; 2)  separate from the Contributor Version;
+          3)  for infringements caused by: i) third party modifications of
+          Contributor Version or ii)  the combination of Modifications made
+          by that Contributor with other software  (except as part of the
+          Contributor Version) or other devices; or 4) under Patent Claims
+          infringed by Covered Code in the absence of Modifications made by
+          that Contributor.
+
+3. Distribution Obligations.
+
+     3.1. Application of License.
+     The Modifications which You create or to which You contribute are
+     governed by the terms of this License, including without limitation
+     Section 2.2. The Source Code version of Covered Code may be
+     distributed only under the terms of this License or a future version
+     of this License released under Section 6.1, and You must include a
+     copy of this License with every copy of the Source Code You
+     distribute. You may not offer or impose any terms on any Source Code
+     version that alters or restricts the applicable version of this
+     License or the recipients' rights hereunder. However, You may include
+     an additional document offering the additional rights described in
+     Section 3.5.
+
+     3.2. Availability of Source Code.
+     Any Modification which You create or to which You contribute must be
+     made available in Source Code form under the terms of this License
+     either on the same media as an Executable version or via an accepted
+     Electronic Distribution Mechanism to anyone to whom you made an
+     Executable version available; and if made available via Electronic
+     Distribution Mechanism, must remain available for at least twelve (12)
+     months after the date it initially became available, or at least six
+     (6) months after a subsequent version of that particular Modification
+     has been made available to such recipients. You are responsible for
+     ensuring that the Source Code version remains available even if the
+     Electronic Distribution Mechanism is maintained by a third party.
+
+     3.3. Description of Modifications.
+     You must cause all Covered Code to which You contribute to contain a
+     file documenting the changes You made to create that Covered Code and
+     the date of any change. You must include a prominent statement that
+     the Modification is derived, directly or indirectly, from Original
+     Code provided by the Initial Developer and including the name of the
+     Initial Developer in (a) the Source Code, and (b) in any notice in an
+     Executable version or related documentation in which You describe the
+     origin or ownership of the Covered Code.
+
+     3.4. Intellectual Property Matters
+          (a) Third Party Claims.
+          If Contributor has knowledge that a license under a third party's
+          intellectual property rights is required to exercise the rights
+          granted by such Contributor under Sections 2.1 or 2.2,
+          Contributor must include a text file with the Source Code
+          distribution titled "LEGAL" which describes the claim and the
+          party making the claim in sufficient detail that a recipient will
+          know whom to contact. If Contributor obtains such knowledge after
+          the Modification is made available as described in Section 3.2,
+          Contributor shall promptly modify the LEGAL file in all copies
+          Contributor makes available thereafter and shall take other steps
+          (such as notifying appropriate mailing lists or newsgroups)
+          reasonably calculated to inform those who received the Covered
+          Code that new knowledge has been obtained.
+
+          (b) Contributor APIs.
+          If Contributor's Modifications include an application programming
+          interface and Contributor has knowledge of patent licenses which
+          are reasonably necessary to implement that API, Contributor must
+          also include this information in the LEGAL file.
+
+               (c)    Representations.
+          Contributor represents that, except as disclosed pursuant to
+          Section 3.4(a) above, Contributor believes that Contributor's
+          Modifications are Contributor's original creation(s) and/or
+          Contributor has sufficient rights to grant the rights conveyed by
+          this License.
+
+     3.5. Required Notices.
+     You must duplicate the notice in Exhibit A in each file of the Source
+     Code.  If it is not possible to put such notice in a particular Source
+     Code file due to its structure, then You must include such notice in a
+     location (such as a relevant directory) where a user would be likely
+     to look for such a notice.  If You created one or more Modification(s)
+     You may add your name as a Contributor to the notice described in
+     Exhibit A.  You must also duplicate this License in any documentation
+     for the Source Code where You describe recipients' rights or ownership
+     rights relating to Covered Code.  You may choose to offer, and to
+     charge a fee for, warranty, support, indemnity or liability
+     obligations to one or more recipients of Covered Code. However, You
+     may do so only on Your own behalf, and not on behalf of the Initial
+     Developer or any Contributor. You must make it absolutely clear than
+     any such warranty, support, indemnity or liability obligation is
+     offered by You alone, and You hereby agree to indemnify the Initial
+     Developer and every Contributor for any liability incurred by the
+     Initial Developer or such Contributor as a result of warranty,
+     support, indemnity or liability terms You offer.
+
+     3.6. Distribution of Executable Versions.
+     You may distribute Covered Code in Executable form only if the
+     requirements of Section 3.1-3.5 have been met for that Covered Code,
+     and if You include a notice stating that the Source Code version of
+     the Covered Code is available under the terms of this License,
+     including a description of how and where You have fulfilled the
+     obligations of Section 3.2. The notice must be conspicuously included
+     in any notice in an Executable version, related documentation or
+     collateral in which You describe recipients' rights relating to the
+     Covered Code. You may distribute the Executable version of Covered
+     Code or ownership rights under a license of Your choice, which may
+     contain terms different from this License, provided that You are in
+     compliance with the terms of this License and that the license for the
+     Executable version does not attempt to limit or alter the recipient's
+     rights in the Source Code version from the rights set forth in this
+     License. If You distribute the Executable version under a different
+     license You must make it absolutely clear that any terms which differ
+     from this License are offered by You alone, not by the Initial
+     Developer or any Contributor. You hereby agree to indemnify the
+     Initial Developer and every Contributor for any liability incurred by
+     the Initial Developer or such Contributor as a result of any such
+     terms You offer.
+
+     3.7. Larger Works.
+     You may create a Larger Work by combining Covered Code with other code
+     not governed by the terms of this License and distribute the Larger
+     Work as a single product. In such a case, You must make sure the
+     requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+     If it is impossible for You to comply with any of the terms of this
+     License with respect to some or all of the Covered Code due to
+     statute, judicial order, or regulation then You must: (a) comply with
+     the terms of this License to the maximum extent possible; and (b)
+     describe the limitations and the code they affect. Such description
+     must be included in the LEGAL file described in Section 3.4 and must
+     be included with all distributions of the Source Code. Except to the
+     extent prohibited by statute or regulation, such description must be
+     sufficiently detailed for a recipient of ordinary skill to be able to
+     understand it.
+
+5. Application of this License.
+
+     This License applies to code to which the Initial Developer has
+     attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+     6.1. New Versions.
+     Netscape Communications Corporation ("Netscape") may publish revised
+     and/or new versions of the License from time to time. Each version
+     will be given a distinguishing version number.
+
+     6.2. Effect of New Versions.
+     Once Covered Code has been published under a particular version of the
+     License, You may always continue to use it under the terms of that
+     version. You may also choose to use such Covered Code under the terms
+     of any subsequent version of the License published by Netscape. No one
+     other than Netscape has the right to modify the terms applicable to
+     Covered Code created under this License.
+
+     6.3. Derivative Works.
+     If You create or use a modified version of this License (which you may
+     only do in order to apply it to code which is not already Covered Code
+     governed by this License), You must (a) rename Your license so that
+     the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+     "MPL", "NPL" or any confusingly similar phrase do not appear in your
+     license (except to note that your license differs from this License)
+     and (b) otherwise make it clear that Your version of the license
+     contains terms which differ from the Mozilla Public License and
+     Netscape Public License. (Filling in the name of the Initial
+     Developer, Original Code or Contributor in the notice described in
+     Exhibit A shall not of themselves be deemed to be modifications of
+     this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+     8.1.  This License and the rights granted hereunder will terminate
+     automatically if You fail to comply with terms herein and fail to cure
+     such breach within 30 days of becoming aware of the breach. All
+     sublicenses to the Covered Code which are properly granted shall
+     survive any termination of this License. Provisions which, by their
+     nature, must remain in effect beyond the termination of this License
+     shall survive.
+
+     8.2.  If You initiate litigation by asserting a patent infringement
+     claim (excluding declatory judgment actions) against Initial Developer
+     or a Contributor (the Initial Developer or Contributor against whom
+     You file such action is referred to as "Participant")  alleging that:
+
+     (a)  such Participant's Contributor Version directly or indirectly
+     infringes any patent, then any and all rights granted by such
+     Participant to You under Sections 2.1 and/or 2.2 of this License
+     shall, upon 60 days notice from Participant terminate prospectively,
+     unless if within 60 days after receipt of notice You either: (i)
+     agree in writing to pay Participant a mutually agreeable reasonable
+     royalty for Your past and future use of Modifications made by such
+     Participant, or (ii) withdraw Your litigation claim with respect to
+     the Contributor Version against such Participant.  If within 60 days
+     of notice, a reasonable royalty and payment arrangement are not
+     mutually agreed upon in writing by the parties or the litigation claim
+     is not withdrawn, the rights granted by Participant to You under
+     Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+     the 60 day notice period specified above.
+
+     (b)  any software, hardware, or device, other than such Participant's
+     Contributor Version, directly or indirectly infringes any patent, then
+     any rights granted to You by such Participant under Sections 2.1(b)
+     and 2.2(b) are revoked effective as of the date You first made, used,
+     sold, distributed, or had made, Modifications made by that
+     Participant.
+
+     8.3.  If You assert a patent infringement claim against Participant
+     alleging that such Participant's Contributor Version directly or
+     indirectly infringes any patent where such claim is resolved (such as
+     by license or settlement) prior to the initiation of patent
+     infringement litigation, then the reasonable value of the licenses
+     granted by such Participant under Sections 2.1 or 2.2 shall be taken
+     into account in determining the amount or value of any payment or
+     license.
+
+     8.4.  In the event of termination under Sections 8.1 or 8.2 above,
+     all end user license agreements (excluding distributors and resellers)
+     which have been validly granted by You or any distributor hereunder
+     prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+     ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+     THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+     The Covered Code is a "commercial item," as that term is defined in
+     48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+     software" and "commercial computer software documentation," as such
+     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+     all U.S. Government End Users acquire Covered Code with only those
+     rights set forth herein.
+
+11. MISCELLANEOUS.
+
+     This License represents the complete agreement concerning subject
+     matter hereof. If any provision of this License is held to be
+     unenforceable, such provision shall be reformed only to the extent
+     necessary to make it enforceable. This License shall be governed by
+     California law provisions (except to the extent applicable law, if
+     any, provides otherwise), excluding its conflict-of-law provisions.
+     With respect to disputes in which at least one party is a citizen of,
+     or an entity chartered or registered to do business in the United
+     States of America, any litigation relating to this License shall be
+     subject to the jurisdiction of the Federal Courts of the Northern
+     District of California, with venue lying in Santa Clara County,
+     California, with the losing party responsible for costs, including
+     without limitation, court costs and reasonable attorneys' fees and
+     expenses. The application of the United Nations Convention on
+     Contracts for the International Sale of Goods is expressly excluded.
+     Any law or regulation which provides that the language of a contract
+     shall be construed against the drafter shall not apply to this
+     License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+     As between Initial Developer and the Contributors, each party is
+     responsible for claims and damages arising, directly or indirectly,
+     out of its utilization of rights under this License and You agree to
+     work with Initial Developer and Contributors to distribute such
+     responsibility on an equitable basis. Nothing herein is intended or
+     shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+     Initial Developer may designate portions of the Covered Code as
+     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
+     Developer permits you to utilize portions of the Covered Code under
+     Your choice of the NPL or the alternative licenses, if any, specified
+     by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A - Mozilla Public License.
+
+     ``The contents of this file are subject to the Mozilla Public License
+     Version 1.1 (the "License"); you may not use this file except in
+     compliance with the License. You may obtain a copy of the License at
+     http://www.mozilla.org/MPL/
+
+     Software distributed under the License is distributed on an "AS IS"
+     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+     License for the specific language governing rights and limitations
+     under the License.
+
+     The Original Code is ______________________________________.
+
+     The Initial Developer of the Original Code is ________________________.
+     Portions created by ______________________ are Copyright (C) ______
+     _______________________. All Rights Reserved.
+
+     Contributor(s): ______________________________________.
+
+     Alternatively, the contents of this file may be used under the terms
+     of the _____ license (the  "[___] License"), in which case the
+     provisions of [______] License are applicable instead of those
+     above.  If you wish to allow use of your version of this file only
+     under the terms of the [____] License and not to allow others to use
+     your version of this file under the MPL, indicate your decision by
+     deleting  the provisions above and replace  them with the notice and
+     other provisions required by the [___] License.  If you do not delete
+     the provisions above, a recipient may use your version of this file
+     under either the MPL or the [___] License."
+
+     [NOTE: The text of this Exhibit A may differ slightly from the text of
+     the notices in the Source Code files of the Original Code. You should
+     use the text of this Exhibit A rather than the text found in the
+     Original Code Source Code for Your Modifications.]
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to SAX 2.0.1, which is included 
+with JRE 7, JDK 7, and OpenJDK 7.
+
+--- begin of LICENSE ---
+
+ SAX is free!
+
+ In fact, it's not possible to own a license to SAX, since it's been placed in
+ the public domain.
+
+ No Warranty
+
+ Because SAX is released to the public domain, there is no warranty for the
+ design or for the software implementation, to the extent permitted by
+ applicable law. Except when otherwise stated in writing the copyright holders
+ and/or other parties provide SAX "as is" without warranty of any kind, either
+ expressed or implied, including, but not limited to, the implied warranties
+ of merchantability and fitness for a particular purpose. The entire risk as
+ to the quality and performance of SAX is with you. Should SAX prove
+ defective, you assume the cost of all necessary servicing, repair or
+ correction.
+
+ In no event unless required by applicable law or agreed to in writing will
+ any copyright holder, or any other party who may modify and/or redistribute
+ SAX, be liable to you for damages, including any general, special, incidental
+ or consequential damages arising out of the use or inability to use SAX
+ (including but not limited to loss of data or data being rendered inaccurate
+ or losses sustained by you or third parties or a failure of the SAX to
+ operate with any other programs), even if such holder or other party has been
+ advised of the possibility of such damages.
+
+ Copyright Disclaimers 
+
+ This page includes statements to that effect by David Megginson, who would
+ have been able to claim copyright for the original work.  SAX 1.0
+
+ Version 1.0 of the Simple API for XML (SAX), created collectively by the
+ membership of the XML-DEV mailing list, is hereby released into the public
+ domain.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESSFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS ORCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHERIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR INCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ No one owns SAX: you may use it freely in both commercial and non-commercial
+ applications, bundle it with your software distribution, include it on a
+ CD-ROM, list the source code in a book, mirror the documentation at your own
+ web site, or use it in any other way you see fit.
 
-%% This notice is provided with respect to XFree86-VidMode Extension, which may be included with this software: 
+ David Megginson, sax at megginson.com
+ 1998-05-11
 
-Version 1.1 of XFree86 ProjectLicence.
+ SAX 2.0 
 
-    Copyright (C) 1994-2004 The XFree86 Project, Inc.    All rights reserved.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to deal inthe Software without restriction, including without limitation the rights touse, copy, modify, merge, publish, distribute, sublicence, and/or sell copies ofthe Software, and to permit persons to whom the Software is furnished to do so,subject to the following conditions:
-
-       1. Redistributions of source code must retain the above copyright notice,this list of conditions, and the following disclaimer.
-       2. Redistributions in binary form must reproduce the above copyrightnotice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution, and in thesame place and form as other copyright, license and disclaimer information.       3. The end-user documentation included with the redistribution, if any,must include the following acknowledgment: "This product includes softwaredeveloped by The XFree86 Project, Inc (http://www.xfree86.org/) and itscontributors", in the same place and form as other third-party acknowledgments.Alternately, this acknowledgment may appear in the software itself, in the sameform and location as other such third-party acknowledgments.
-       4. Except as contained in this notice, the name of The XFree86 Project,Inc shall not be used in advertising or otherwise to promote the sale, use orother dealings in this Software without prior written authorization from TheXFree86 Project, Inc.
-
-    THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ANDFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE XFREE86PROJECT, INC OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ORBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER INCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISINGIN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITYOF SUCH DAMAGE.
-
-%% This notice is provided with respect to XML Security, which may be included with this software: 
-
-  The Apache Software License,
-                                       Version 1.1
-
-
-                                                                                 PDF
-
-
-                                       Copyright (C) 2002 The Apache SoftwareFoundation.
-                                       All rights reserved. Redistribution anduse in
-                                       source and binary forms, with or withoutmodifica-
-                                       tion, are permitted provided that thefollowing
-                                       conditions are met: 1. Redistributions ofsource
-                                       code must retain the above copyrightnotice, this
-                                       list of conditions and the followingdisclaimer.
-                                       2. Redistributions in binary form mustreproduce
-                                       the above copyright notice, this list of                                       conditions and the following disclaimerin the
-                                       documentation and/or other materialsprovided with
-                                       the distribution. 3. The end-userdocumentation
-                                       included with the redistribution, if any,must
-                                       include the following acknowledgment:"This
-                                       product includes software developed bythe Apache
-                                       Software Foundation
-(http://www.apache.org/)."
-                                       Alternately, this acknowledgment mayappear in the
-                                       software itself, if and wherever suchthird-party
-                                       acknowledgments normally appear. 4. Thenames
-                                       "Apache Forrest" and "Apache SoftwareFoundation"
-                                       must not be used to endorse or promoteproducts
-                                       derived from this software without priorwritten
-                                       permission. For written permission,please contact
-                                       apache at apache.org. 5. Products derivedfrom this
-                                       software may not be called "Apache", normay
-                                       "Apache" appear in their name, withoutprior
-                                       written permission of the Apache Software                                       Foundation. THIS SOFTWARE IS PROVIDED``AS IS''
-                                       AND ANY EXPRESSED OR IMPLIED WARRANTIES,                                       INCLUDING, BUT NOT LIMITED TO, THEIMPLIED
-                                       WARRANTIES OF MERCHANTABILITY AND FITNESSFOR A
-                                       PARTICULAR PURPOSE ARE DISCLAIMED. IN NOEVENT
-                                       SHALL THE APACHE SOFTWARE FOUNDATION ORITS
-                                       CONTRIBUTORS BE LIABLE FOR ANY DIRECT,INDIRECT,
-                                       INCIDENTAL, SPECIAL, EXEMPLARY, ORCONSEQUENTIAL
-                                       DAMAGES (INCLU- DING, BUT NOT LIMITED TO,                                       PROCUREMENT OF SUBSTITUTE GOODS ORSERVICES; LOSS
-                                       OF USE, DATA, OR PROFITS; OR BUSINESS                                       INTERRUPTION) HOWEVER CAUSED AND ON ANYTHEORY OF
-                                       LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY,
-                                       OR TORT (INCLUDING NEGLIGENCE OROTHERWISE)
-                                       ARISING IN ANY WAY OUT OF THE USE OF THIS                                       SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF
-                                       SUCH DAMAGE. This software consists ofvoluntary
-                                       contributions made by many individuals onbehalf
-                                       of the Apache Software Foundation. Formore
-                                       information on the Apache SoftwareFoundation,
-                                       please see .
-
-%% This notice is provided with respect to Independent JPEG Group's software (libjpeg), which may be included with this software: 
-
-In plain English:
-
-1. We don't promise that this software works.  (But if you find any bugs,
-   please let us know!)
-2. You can use this software for whatever you want.  You don't have to pay us.
-3. You may not pretend that you wrote this software.  If you use it in a program, you must acknowledge somewhere in your documentation that you've used the IJG code.
-
-In legalese:
-
-The authors make NO WARRANTY or representation, either express or implied, with respect to this software, its quality, accuracy, merchantability, or fitness for a particular purpose.  This software is provided "AS IS", and you, its user, assume the entire risk as to its quality and accuracy.
+ I hereby abandon any property rights to SAX 2.0 (the Simple API for XML), and
+ release all of the SAX 2.0 source code, compiled code, and documentation
+ contained in this distribution into the Public Domain. SAX comes with NO
+ WARRANTY or guarantee of fitness for any purpose.
 
-This software is copyright (C) 1991-1998, Thomas G. Lane.
-All Rights Reserved except as specified below.
+ David Megginson, david at megginson.com
+ 2000-05-05
 
-Permission is hereby granted to use, copy, modify, and distribute this software (or portions thereof) for any purpose, without fee, subject to these conditions:
+--- end of LICENSE ---
 
-(1) If any part of the source code for this software is distributed, then this
-README file must be included, with this copyright and no-warranty notice unaltered; and any additions, deletions, or changes to the original files must be clearly indicated in accompanying documentation.
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to SoftFloat version 2b, which is 
+included with JRE 7, JDK 7, and OpenJDK 7 on Linux/ARM.
+
+--- begin of LICENSE ---
+
+Use of any of this software is governed by the terms of the license below:
+
+SoftFloat was written by me, John R. Hauser. This work was made possible in 
+part by the International Computer Science Institute, located at Suite 600, 
+1947 Center Street, Berkeley, California 94704. Funding was partially 
+provided by the National Science Foundation under grant MIP-9311980. The 
+original version of this code was written as part of a project to build 
+a fixed-point vector processor in collaboration with the University of 
+California at Berkeley, overseen by Profs. Nelson Morgan and John Wawrzynek. 
+
+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort 
+has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT 
+TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO 
+PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL 
+LOSSES, COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO 
+FURTHERMORE EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER 
+SCIENCE INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, 
+COSTS, OR OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE 
+SOFTWARE. 
+
+Derivative works are acceptable, even for commercial purposes, provided 
+that the minimal documentation requirements stated in the source code are 
+satisfied. 
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% Portions licensed from Taligent, Inc.
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Thai Dictionary, which is 
+included with JRE 7, JDK 7, and OpenJDK 7.
+
+--- begin of LICENSE ---
+
+Copyright (C) 1982 The Royal Institute, Thai Royal Government.
+
+Copyright (C) 1998 National Electronics and Computer Technology Center,
+National Science and Technology Development Agency,
+Ministry of Science Technology and Environment,
+Thai Royal Government.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Unicode 6.0.0, CLDR v1.4.1, & CLDR
+v1.9, which is included with JRE 7, JDK 7, and OpenJDK 7.
+
+--- begin of LICENSE ---
+
+Unicode Terms of Use
+
+For the general privacy policy governing access to this site, see the Unicode
+Privacy Policy. For trademark usage, see the Unicode® Consortium Name and
+Trademark Usage Policy.
+
+A. Unicode Copyright.
+   1. Copyright © 1991-2011 Unicode, Inc. All rights reserved.
+
+   2. Certain documents and files on this website contain a legend indicating
+      that "Modification is permitted." Any person is hereby authorized,
+      without fee, to modify such documents and files to create derivative
+      works conforming to the Unicode® Standard, subject to Terms and
+      Conditions herein.
+
+    3. Any person is hereby authorized, without fee, to view, use, reproduce,
+       and distribute all documents and files solely for informational
+       purposes in the creation of products supporting the Unicode Standard,
+       subject to the Terms and Conditions herein.
+
+    4. Further specifications of rights and restrictions pertaining to the use
+       of the particular set of data files known as the "Unicode Character
+       Database" can be found in Exhibit 1.
+
+    5. Each version of the Unicode Standard has further specifications of
+       rights and restrictions of use. For the book editions (Unicode 5.0 and
+       earlier), these are found on the back of the title page. The online
+       code charts carry specific restrictions. All other files, including
+       online documentation of the core specification for Unicode 6.0 and
+       later, are covered under these general Terms of Use.
+
+    6. No license is granted to "mirror" the Unicode website where a fee is
+       charged for access to the "mirror" site.
+
+    7. Modification is not permitted with respect to this document. All copies
+       of this document must be verbatim.
+
+B. Restricted Rights Legend. Any technical data or software which is licensed
+   to the United States of America, its agencies and/or instrumentalities
+   under this Agreement is commercial technical data or commercial computer
+   software developed exclusively at private expense as defined in FAR 2.101,
+   or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use,
+   duplication, or disclosure by the Government is subject to restrictions as
+   set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov
+   1995) and this Agreement. For Software, in accordance with FAR 12-212 or
+   DFARS 227-7202, as applicable, use, duplication or disclosure by the
+   Government is subject to the restrictions set forth in this Agreement.
+
+C. Warranties and Disclaimers.
+   1. This publication and/or website may include technical or typographical
+      errors or other inaccuracies . Changes are periodically added to the
+      information herein; these changes will be incorporated in new editions
+      of the publication and/or website. Unicode may make improvements and/or
+      changes in the product(s) and/or program(s) described in this
+      publication and/or website at any time.
+
+    2. If this file has been purchased on magnetic or optical media from
+       Unicode, Inc. the sole and exclusive remedy for any claim will be
+       exchange of the defective media within ninety (90) days of original
+       purchase.
+
+    3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR SOFTWARE IS
+       PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED,
+       OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF
+       MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
+       UNICODE AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR
+       OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH
+       ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE.
+
+D. Waiver of Damages. In no event shall Unicode or its licensors be liable for
+   any special, incidental, indirect or consequential damages of any kind, or
+   any damages whatsoever, whether or not Unicode was advised of the
+   possibility of the damage, including, without limitation, those resulting
+   from the following: loss of use, data or profits, in connection with the
+   use, modification or distribution of this information or its derivatives.
+
+E.Trademarks & Logos.
+   1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode,
+      Inc.  “The Unicode Consortium” and “Unicode, Inc.” are trade names of
+      Unicode, Inc.  Use of the information and materials found on this
+      website indicates your acknowledgement of Unicode, Inc.’s exclusive
+      worldwide rights in the Unicode Word Mark, the Unicode Logo, and the
+      Unicode trade names.
+
+   2. The Unicode Consortium Name and Trademark Usage Policy (“Trademark
+      Policy”) are incorporated herein by reference and you agree to abide by
+      the provisions of the Trademark Policy, which may be changed from time
+      to time in the sole discretion of Unicode, Inc.
+
+   3. All third party trademarks referenced herein are the property of their
+      respective owners.
+
+Miscellaneous.
+   1. Jurisdiction and Venue. This server is operated from a location in the
+      State of California, United States of America. Unicode makes no
+      representation that the materials are appropriate for use in other
+      locations. If you access this server from other locations, you are
+      responsible for compliance with local laws. This Agreement, all use of
+      this site and any claims and damages resulting from use of this site are
+      governed solely by the laws of the State of California without regard to
+      any principles which would apply the laws of a different jurisdiction.
+      The user agrees that any disputes regarding this site shall be resolved
+      solely in the courts located in Santa Clara County, California. The user
+      agrees said courts have personal jurisdiction and agree to waive any
+      right to transfer the dispute to any other forum.
+
+   2. Modification by Unicode.  Unicode shall have the right to modify this
+      Agreement at any time by posting it to this site. The user may not
+      assign any part of this Agreement without Unicode’s prior written
+      consent.
+
+   3. Taxes. The user agrees to pay any taxes arising from access to this
+      website or use of the information herein, except for those based on
+      Unicode’s net income.
+
+   4. Severability.  If any provision of this Agreement is declared invalid or
+      unenforceable, the remaining provisions of this Agreement shall remain
+      in effect.
+
+   5. Entire Agreement. This Agreement constitutes the entire agreement
+      between the parties.
+
+EXHIBIT 1
+UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+
+Unicode Data Files include all data files under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
+http://www.unicode.org/cldr/data/. Unicode Data Files do not include PDF
+online code charts under the directory http://www.unicode.org/Public/.
+Software includes any source code published in the Unicode Standard or under
+the directories http://www.unicode.org/Public/,
+http://www.unicode.org/reports/, and http://www.unicode.org/cldr/data/.
+
+NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING,
+INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA
+FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO
+BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT
+AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR
+SOFTWARE.
+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright © 1991-2011 Unicode, Inc. All rights reserved. Distributed under the
+Terms of Use in http://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the Unicode data files and any associated documentation (the "Data Files")
+or Unicode software and any associated documentation (the "Software") to deal
+in the Data Files or Software without restriction, including without
+limitation the rights to use, copy, modify, merge, publish, distribute, and/or
+sell copies of the Data Files or Software, and to permit persons to whom the
+Data Files or Software are furnished to do so, provided that (a) the above
+copyright notice(s) and this permission notice appear with all copies of the
+Data Files or Software, (b) both the above copyright notice(s) and this
+permission notice appear in associated documentation, and (c) there is clear
+notice in each modified Data File or in the Software as well as in the
+documentation associated with the Data File(s) or Software that the data or
+software has been modified.
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
+PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE
+DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in these Data Files or Software without prior written authorization of the
+copyright holder.
+
+Unicode and the Unicode logo are trademarks of Unicode, Inc. in the United
+States and other countries. All third party trademarks referenced herein are
+the property of their respective owners.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to UPX v3.01, which is included 
+with JRE 7 on Windows.
+
+--- begin of LICENSE ---
+
+Use of any of this software is governed by the terms of the license below:
+
+
+                 ooooo     ooo ooooooooo.   ooooooo  ooooo
+                 `888'     `8' `888   `Y88.  `8888    d8'
+                  888       8   888   .d88'    Y888..8P
+                  888       8   888ooo88P'      `8888'
+                  888       8   888            .8PY888.
+                  `88.    .8'   888           d8'  `888b
+                    `YbodP'    o888o        o888o  o88888o
+
+
+                    The Ultimate Packer for eXecutables
+          Copyright (c) 1996-2000 Markus Oberhumer & Laszlo Molnar
+               http://wildsau.idv.uni-linz.ac.at/mfx/upx.html
+                          http://www.nexus.hu/upx
+                            http://upx.tsx.org
 
-(2) If only executable code is distributed, then the accompanying documentation must state that "this software is based in part on the work of the Independent JPEG Group".
 
-(3) Permission for use of this software is granted only if the user accepts full responsibility for any undesirable consequences; the authors accept NO LIABILITY for damages of any kind.
+PLEASE CAREFULLY READ THIS LICENSE AGREEMENT, ESPECIALLY IF YOU PLAN
+TO MODIFY THE UPX SOURCE CODE OR USE A MODIFIED UPX VERSION.
 
-These conditions apply to any software derived from or based on the IJG code, not just to the unmodified library.  If you use our work, you ought to acknowledge us.
 
-Permission is NOT granted for the use of any IJG author's name or company name in advertising or publicity relating to this software or products derived from it.  This software may be referred to only as "the Independent JPEG Group's software".
+ABSTRACT
+========
 
-We specifically permit and encourage the use of this software as the basis of commercial products, provided that all warranty or liability claims are assumed by the product vendor.
+   UPX and UCL are copyrighted software distributed under the terms
+   of the GNU General Public License (hereinafter the "GPL").
 
-ansi2knr.c is included in this distribution by permission of L. Peter Deutsch, sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA. ansi2knr.c is NOT covered by the above copyright and conditions, but instead by the usual distribution terms of the Free Software Foundation; principally, that you must include source code if you redistribute it.  (See the file ansi2knr.c for full details.)  However, since ansi2knr.c is not needed as part of any program generated from the IJG code, this does not limit you more than the foregoing paragraphs do.
+   The stub which is imbedded in each UPX compressed program is part
+   of UPX and UCL, and contains code that is under our copyright. The
+   terms of the GNU General Public License still apply as compressing
+   a program is a special form of linking with our stub.
 
-The Unix configuration script "configure" was produced with GNU Autoconf. It is copyright by the Free Software Foundation but is freely distributable. The same holds for its supporting scripts (config.guess, config.sub, ltconfig, ltmain.sh).  Another support script, install-sh, is copyright by M.I.T. but is also freely distributable.
+   As a special exception we grant the free usage of UPX for all
+   executables, including commercial programs.
+   See below for details and restrictions.
 
-It appears that the arithmetic coding option of the JPEG spec is covered by patents owned by IBM, AT&T, and Mitsubishi.  Hence arithmetic coding cannot legally be used without obtaining one or more licenses.  For this reason, support for arithmetic coding has been removed from the free JPEG software. (Since arithmetic coding provides only a marginal gain over the unpatented Huffman mode, it is unlikely that very many implementations will support it.) So far as we are aware, there are no patent restrictions on the remaining code.
 
-The IJG distribution formerly included code to read and write GIF files. To avoid entanglement with the Unisys LZW patent, GIF reading support has been removed altogether, and the GIF writer has been simplified to produce "uncompressed GIFs".  This technique does not use the LZW algorithm; the resulting GIF files are larger than usual, but are readable by all standard GIF decoders.
+COPYRIGHT
+=========
 
-We are required to state that
-    "The Graphics Interchange Format(c) is the Copyright property of
-    CompuServe Incorporated.  GIF(sm) is a Service Mark property of
-    CompuServe Incorporated."
+   UPX and UCL are copyrighted software. All rights remain with the authors.
+
+   UPX is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer
+   UPX is Copyright (C) 1996-2000 Laszlo Molnar
+
+   UCL is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer
+
+
+GNU GENERAL PUBLIC LICENSE
+==========================
+
+   UPX and the UCL library are free software; you can redistribute them
+   and/or modify them under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of
+   the License, or (at your option) any later version.
+
+   UPX and UCL are distributed in the hope that they will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.
+
+
+SPECIAL EXCEPTION FOR COMPRESSED EXECUTABLES
+============================================
+
+   The stub which is imbedded in each UPX compressed program is part
+   of UPX and UCL, and contains code that is under our copyright. The
+   terms of the GNU General Public License still apply as compressing
+   a program is a special form of linking with our stub.
+
+   Hereby Markus F.X.J. Oberhumer and Laszlo Molnar grant you special
+   permission to freely use and distribute all UPX compressed programs
+   (including commercial ones), subject to the following restrictions:
+
+   1. You must compress your program with a completely unmodified UPX
+      version; either with our precompiled version, or (at your option)
+      with a self compiled version of the unmodified UPX sources as
+      distributed by us.
+   2. This also implies that the UPX stub must be completely unmodfied, i.e.
+      the stub imbedded in your compressed program must be byte-identical
+      to the stub that is produced by the official unmodified UPX version.
+   3. The decompressor and any other code from the stub must exclusively get
+      used by the unmodified UPX stub for decompressing your program at
+      program startup. No portion of the stub may get read, copied,
+      called or otherwise get used or accessed by your program.
+
+
+ANNOTATIONS
+===========
+
+  - You can use a modified UPX version or modified UPX stub only for
+    programs that are compatible with the GNU General Public License.
+
+  - We grant you special permission to freely use and distribute all UPX
+    compressed programs. But any modification of the UPX stub (such as,
+    but not limited to, removing our copyright string or making your
+    program non-decompressible) will immediately revoke your right to
+    use and distribute a UPX compressed program.
+
+  - UPX is not a software protection tool; by requiring that you use
+    the unmodified UPX version for your proprietary programs we
+    make sure that any user can decompress your program. This protects
+    both you and your users as nobody can hide malicious code -
+    any program that cannot be decompressed is highly suspicious
+    by definition.
+
+  - You can integrate all or part of UPX and UCL into projects that
+    are compatible with the GNU GPL, but obviously you cannot grant
+    any special exceptions beyond the GPL for our code in your project.
+
+  - We want to actively support manufacturers of virus scanners and
+    similar security software. Please contact us if you would like to
+    incorporate parts of UPX or UCL into such a product.
+
+
+
+Markus F.X.J. Oberhumer                   Laszlo Molnar
+markus.oberhumer at jk.uni-linz.ac.at        ml1050 at cdata.tvnet.hu
+
+Linz, Austria, 25 Feb 2000
+
+Additional License(s)
+
+The UPX license file is at http://upx.sourceforge.net/upx-license.html.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Xfree86-VidMode Extension 1.0,
+which is included with JRE 7, JDK 7, and OpenJDK 7 on Linux and Solaris.
+
+--- begin of LICENSE ---
+
+Version 1.1 of XFree86 ProjectLicence.
+
+Copyright (C) 1994-2004 The XFree86 Project, Inc.    All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicence, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so,subject to the following conditions:
+
+   1. Redistributions of source code must retain the above copyright
+   notice,this list of conditions, and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution, and in the same place
+   and form as other copyright, license and disclaimer information.
+
+   3. The end-user documentation included with the redistribution, if any,must
+   include the following acknowledgment: "This product includes
+   software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and
+   its contributors", in the same place and form as other third-party
+   acknowledgments. Alternately, this acknowledgment may appear in the software
+   itself, in the same form and location as other such third-party
+   acknowledgments.
+
+    4. Except as contained in this notice, the name of The XFree86 Project,Inc
+    shall not be used in advertising or otherwise to promote the sale, use
+    or other dealings in this Software without prior written authorization from
+    The XFree86 Project, Inc.
+
+    THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+    WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+    EVENT SHALL THE XFREE86 PROJECT, INC OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+    (INCLUDING, BUT NOT LIMITED TO,PROCUREMENT OF SUBSTITUTE GOODS OR
+    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+    DAMAGE.  
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to X Window System 6.8.2, which is 
+included with JRE 7, JDK 7, and OpenJDK 7 on Linux and Solaris.
+
+--- begin of LICENSE ---
+
+          Licenses
+The X.Org Foundation March 2004
+
+1. Introduction
+
+The X.org Foundation X Window System distribution is a compilation of code and
+documentation from many sources. This document is intended primarily as a
+guide to the licenses used in the distribution: you must check each file
+and/or package for precise redistribution terms. None-the-less, this summary
+may be useful to many users. No software incorporating the XFree86 1.1 license
+has been incorporated.
+
+This document is based on the compilation from XFree86.
 
-%% This notice is provided with respect to X Resize and Rotate (Xrandr) Extension, which may be included with this software: 
 2. XFree86 License
 
 XFree86 code without an explicit copyright is covered by the following
@@ -1050,567 +2352,1034 @@ copyright/license:
 
 Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved.
 
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
+
+3. Other Licenses
+
+Portions of code are covered by the following licenses/copyrights. See
+individual files for the copyright dates.
+
+3.1. X/MIT Copyrights
+
+3.1.1. X Consortium
+
+Copyright (C) <date> X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
 
 The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.
 
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86
-PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X
+CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-Except as contained in this notice, the name of the XFree86 Project shall not be
+Except as contained in this notice, the name of the X Consortium shall not be
 used in advertising or otherwise to promote the sale, use or other dealings in
-this Software without prior written authorization from the XFree86 Project.
+this Software without prior written authorization from the X Consortium.
 
-%% This notice is provided with respect to fontconfig, which may be included with this software: 
-Id: COPYING,v 1.3 2003/04/04 20:17:40 keithp Exp $
-Copyright 2001,2003 Keith Packard
+X Window System is a trademark of X Consortium, Inc.
 
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of Keith Packard not be used in
-advertising or publicity pertaining to distribution of the software without
-specific, written prior permission.  Keith Packard makes no
-representations about the suitability of this software for any purpose.  It
-is provided "as is" without express or implied warranty.
-
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-%% This notice is provided with respect to XFree86, which may be included with this software: 
-Copyright (C) 1994-2002 The XFree86 Project, Inc. All Rights Reserved.
+3.1.2. The Open Group
 
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated
-documentation files (the "Software"), to deal in the Software without
-restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to the
-following conditions:
+Copyright <date> The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that the
+above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
 
 The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the
-Software.
+copies or substantial portions of the Software.
 
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT
-NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
-PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-Except as contained in this notice, the name of the XFree86 Project shall not be
-used in advertising or otherwise
-to promote the sale, use or other dealings in this Software without prior
-written authorization from the XFree86
-Project.
-%% This notice is provided with respect to Fast Infoset, which may be included with this software: 
-* Fast Infoset ver. 0.1 software ("Software") 
-* 
-* Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
-* 
-* Software is licensed under the Apache License, Version 2.0 (the "License"); 
-* you may not use this file except in compliance with the License. You may 
-* obtain a copy of the License at: 
- * 
- * http://www.apache.org/licenses/LICENSE-2.0 
- * 
- * Unless required by applicable law or agreed to in writing, software 
-* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
-* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 
-* License for the specific language governing permissions and limitations. 
-* 
-* Oracle supports and benefits from the global community of open source 
-* developers, and thanks the community for its important contributions and 
-* open standards-based technology, which Oracle has adopted into many of its 
-* products. 
-* 
-* Please note that portions of Software may be provided with notices and 
-* open source licenses from such communities and third parties that govern the 
-* use of those portions, and any licenses granted hereunder do not alter any 
-* rights and obligations you may have under such open source licenses, 
-* however, the disclaimer of warranty and limitation of liability provisions 
-* in this License will apply to all Software in this distribution. 
-* 
-* You acknowledge that the Software is not designed, licensed or intended 
-* for use in the design, construction, operation or maintenance of any nuclear 
-* facility. 
-* 
-* Apache License 
-* Version 2.0, January 2004 
-* http://www.apache.org/licenses/ 
-* 
-*/ 
-/* 
-* ==================================================================== 
-* 
-* This code is subject to the freebxml License, Version 1.1 
-* 
-* Copyright (c) 2001 - 2005 freebxml.org. All rights reserved. 
-* 
-* $Header: /cvs/fi/FastInfoset/src/com/sun/xml/internal/fastinfoset/AbstractResourceBundle.java,v 1.2 
-*  ==================================================================== 
-*/ 
-%% This notice is provided with respect to Kerberos, which may be included with this software: 
-
-/* 
- * Copyright (C) 1998 by the FundsXpress, INC. 
- * 
- * All rights reserved. 
- * 
- * Export of this software from the United States of America may require 
- * a specific license from the United States Government.  It is the 
- * responsibility of any person or organization contemplating export to 
- * obtain such a license before exporting. 
- * 
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and 
- * distribute this software and its documentation for any purpose and 
- * without fee is hereby granted, provided that the above copyright 
- * notice appear in all copies and that both that copyright notice and 
- * this permission notice appear in supporting documentation, and that 
- * the name of FundsXpress. not be used in advertising or publicity pertaining 
- * to distribution of the software without specific, written prior 
- * permission. FundsXpress makes no representations about the suitability of 
- * this software for any purpose. It is provided "as is" without express 
- * or implied warranty. 
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 
- */ 
-
-%% This notice is provided with respect to Unicode's CLDR data repository, which may be included with this software: 
-
- Unicode Copyright
-
-    For the general privacy policy governing access to this site, see the 
-Unicode Privacy Policy. For trademark usage, see the the Unicode Consortium
-Trademarks and Logo Policy.
-    Notice to End User: Terms of Use
-    Carefully read the following legal agreement ("Agreement"). Use or copying
-of the software and/or codes provided with this agreement (The "Software")
-constitutes your acceptance of these terms
-
-       1. Unicode Copyright.
-             1. Copyright © 1991-2005 Unicode, Inc. All rights reserved.
-             2. Certain documents and files on this website contain a legend
-indicating that "Modification is permitted." Any person is hereby authorized,
-without fee, to modify such documents and files to create derivative works
-conforming to the Unicode® Standard, subject to Terms and Conditions herein.
-             3. Any person is hereby authorized, without fee, to view, use,
-reproduce, and distribute all documents and files solely for informational
-purposes in the creation of products supporting the Unicode Standard, subject to
-the Terms and Conditions herein.
-             4. Further specifications of rights and restrictions pertaining to
-the use of the particular set of data files known as the "Unicode Character
-Database" can be found in Exhibit 1.
-             5. Further specifications of rights and restrictions pertaining to
-the use of the particular set of files that constitute the online edition of The
-Unicode Standard, Version 4.0, may be found in V4.0 online edition.
-             6. No license is granted to "mirror" the Unicode website where a
-fee is charged for access to the "mirror" site.
-             7. Modification is not permitted with respect to this document. All
-copies of this document must be verbatim.
-       2. Restricted Rights Legend. Any technical data or software which is
-licensed to the United States of America, its agencies and/or instrumentalities
-under this Agreement is commercial technical data or commercial computer
-software developed exclusively at private expense as defined in FAR 2.101, or
-DFARS 252.227-7014 (June 1995), as applicable. For technical data, use,
-duplication, or disclosure by the Government is subject to restrictions as set
-forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and
-this Agreement. For Software, in accordance with FAR 12-212 or DFARS 227-7202,
-as applicable, use, duplication or disclosure by the Government is subject to
-the restrictions set forth in this Agreement.
-       3. Warranties and Disclaimers.
-             1. This publication and/or website may include technical or
-typographical errors or other inaccuracies . Changes are periodically added to
-the information herein; these changes will be incorporated in new editions of
-the publication and/or website. Unicode may make improvements and/or changes in
-the product(s) and/or program(s) described in this publication and/or website at
-any time.
-             2. If this file has been purchased on magnetic or optical media
-from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange
-of the defective media within ninety (90) days of original purchase.
-             3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR
-SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS,
-IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE
-AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS
-PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED
-TO THIS PUBLICATION OR THE UNICODE WEBSITE.
-       4. Waiver of Damages. In no event shall Unicode or its licensors be
-liable for any special, incidental, indirect or consequential damages of any
-kind, or any damages whatsoever, whether or not Unicode was advised of the
-possibility of the damage, including, without limitation, those resulting from
-the following: loss of use, data or profits, in connection with the use,
-modification or distribution of this information or its derivatives.
-       5. Trademarks.
-             1. Unicode and the Unicode logo are registered trademarks of
-Unicode, Inc. 
-             2. This site contains product names and corporate names of other
-companies. All product names and company names and logos mentioned herein are
-the trademarks or registered trademarks of their respective owners. Other
-products and corporate names mentioned herein which are trademarks of a third
-party are used only for explanation and for the owners' benefit and with no
-intent to infringe.
-             3. Use of third party products or information referred to herein is
-at the user's risk.
-       6. Miscellaneous.
-             1. Jurisdiction and Venue. This server is operated from a location
-in the State of California, United States of America. Unicode makes no
-representation that the materials are appropriate for use in other locations. If
-you access this server from other locations, you are responsible for compliance
-with local laws. This Agreement, all use of this site and any claims and damages
-resulting from use of this site are governed solely by the laws of the State of
-California without regard to any principles which would apply the laws of a
-different jurisdiction. The user agrees that any disputes regarding this site
-shall be resolved solely in the courts located in Santa Clara County,
-California. The user agrees said courts have personal jurisdiction and agree to
-waive any right to transfer the dispute to any other forum.
-             2. Modification by Unicode Unicode shall have the right to modify
-this Agreement at any time by posting it to this site. The user may not assign
-any part of this Agreement without Unicode's prior written consent.
-             3. Taxes. The user agrees to pay any taxes arising from access to
-this website or use of the information herein, except for those based on
-Unicode's net income.
-             4. Severability.  If any provision of this Agreement is declared
-invalid or unenforceable, the remaining provisions of this Agreement shall
-remain in effect.
-             5. Entire Agreement. This Agreement constitutes the entire
-agreement between the parties. 
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings in
+this Software without prior written authorization from The Open Group.  3.2.
+Berkeley-based copyrights:
 
-EXHIBIT 1
-UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+o
+3.2.1. General
 
-    Unicode Data Files include all data files under the directories
-http://www.unicode.org/Public/ and http://www.unicode.org/reports/. Unicode
-Software includes any source code under the directories
-http://www.unicode.org/Public/ and http://www.unicode.org/reports/.
-
-    NOTICE TO USER: Carefully read the following legal agreement. BY
-DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES
-("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND
-AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU
-DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES
-OR SOFTWARE.
-
-    COPYRIGHT AND PERMISSION NOTICE
-
-    Copyright Ã?Â,Ã,© 1991-2004 Unicode, Inc. All rights reserved. Distributed under
-the Terms of Use in http://www.unicode.org/copyright.html.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-of the Unicode data files and associated documentation (the "Data Files") or
-Unicode software and associated documentation (the "Software") to deal in the
-Data Files or Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, and/or sell copies of
-the Data Files or Software, and to permit persons to whom the Data Files or
-Software are furnished to do so, provided that (a) the above copyright notice(s)
-and this permission notice appear with all copies of the Data Files or Software,
-(b) both the above copyright notice(s) and this permission notice appear in
-associated documentation, and (c) there is clear notice in each modified Data
-File or in the Software as well as in the documentation associated with the Data
-File(s) or Software that the data or software has been modified.
-
-    THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
-PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
-NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
-DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
 
-    Except as contained in this notice, the name of a copyright holder shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in these Data Files or Software without prior written authorization of the
-copyright holder.
+   1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
 
-    Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be
-registered in some jurisdictions. All other trademarks and registered trademarks
-mentioned herein are the property of their respective owners.
-%% This notice is provided with respect to RSA PKCS#11 Header Files & Specification, which may be included with this software: 
-
-/* 
- * Copyright (C) 1998 by the FundsXpress, INC. 
- * 
- * All rights reserved. 
- * 
- * Export of this software from the United States of America may require 
- * a specific license from the United States Government.  It is the 
- * responsibility of any person or organization contemplating export to 
- * obtain such a license before exporting. 
- * 
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and 
- * distribute this software and its documentation for any purpose and 
- * without fee is hereby granted, provided that the above copyright 
- * notice appear in all copies and that both that copyright notice and 
- * this permission notice appear in supporting documentation, and that 
- * the name of FundsXpress. not be used in advertising or publicity pertaining 
- * to distribution of the software without specific, written prior 
- * permission.  FundsXpress makes no representations about the suitability of 
- * this software for any purpose.  It is provided "as is" without express 
- * or implied warranty. 
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 
- */ 
-
-%% This notice is provided with respect to certain files/code which may included in the implementation of AWT within the software: 
-
-****************************************************** 
-BEGIN  src/solaris/native/sun/awt/HPkeysym.h 
-Copyright 1987, 1998  The Open Group 
-
-All Rights Reserved. 
-
-The above copyright notice and this permission notice shall be included 
-in all copies or substantial portions of the Software. 
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR 
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 
-OTHER DEALINGS IN THE SOFTWARE. 
-
-Except as contained in this notice, the name of The Open Group shall 
-not be used in advertising or otherwise to promote the sale, use or 
-other dealings in this Software without prior written authorization 
-from The Open Group. 
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, 
-
-All Rights Reserved 
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that 
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Hewlett Packard 
-or Digital not be 
-used in advertising or publicity pertaining to distribution of the 
-software without specific, written prior permission. 
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 
-SOFTWARE. 
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   3. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.  3.2.2. UCB/LBL
+
+Copyright (c) 1993 The Regents of the University of California. All rights
+reserved.
+
+This software was developed by the Computer Systems Engineering group at
+Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to
+Berkeley.
+
+All advertising materials mentioning features or use of this software must
+display the following acknowledgement: This product includes software
+developed by the University of California, Lawrence Berkeley Laboratory.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement: This product includes software
+   developed by the University of California, Berkeley and its contributors.
+
+   4. Neither the name of the University nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  3.2.3. The
+NetBSD Foundation, Inc.
+
+Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved.
+
+This code is derived from software contributed to The NetBSD Foundation by Ben
+Collver <collver1 at attbi.com>
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement: This product includes software
+   developed by the NetBSD Foundation, Inc. and its contributors.
+
+   4. Neither the name of The NetBSD Foundation nor the names of its
+   contributors may be used to endorse or promote products derived from this
+   software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS ``AS
+IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  3.2.4. Theodore
+Ts'o.
+
+Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All rights
+reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+   and the entire permission notice in its entirety, including the disclaimer
+   of warranties.
+
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   3. he name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.  3.2.5. Theo de Raadt and Damien Miller
+
+Copyright (c) 1995,1999 Theo de Raadt. All rights reserved. Copyright (c)
+2001-2002 Damien Miller. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.  3.2.6. Todd C. Miller
+
+Copyright (c) 1998 Todd C. Miller <Todd.Miller at courtesan.com>
+
+Permission to use, copy, modify, and distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  3.2.7. Thomas
+Winischhofer
+
+Copyright (C) 2001-2004 Thomas Winischhofer
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   3. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.  3.3. NVIDIA Corp
+
+Copyright (c) 1996 NVIDIA, Corp. All rights reserved.
+
+NOTICE TO USER: The source code is copyrighted under U.S. and international
+laws. NVIDIA, Corp. of Sunnyvale, California owns the copyright and as design
+patents pending on the design and interface of the NV chips. Users and
+possessors of this source code are hereby granted a nonexclusive, royalty-free
+copyright and design patent license to use this code in individual and
+commercial software.
+
+Any use of this source code must include, in the user documentation and
+internal comments to the code, notices to the end user as follows:
+
+Copyright (c) 1996 NVIDIA, Corp. NVIDIA design patents pending in the U.S. and
+foreign countries.
+
+NVIDIA, CORP. MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE
+CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
+WARRANTY OF ANY KIND. NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA, CORP. BE LIABLE
+FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.  3.4. GLX Public
+License
+
+GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License")
+
+Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby
+grants permission to Recipient (defined below), under Recipient's copyrights
+in the Original Software (defined below), to use, copy, modify, merge,
+publish, distribute, sublicense and/or sell copies of Subject Software
+(defined below), and to permit persons to whom the Subject Software is
+furnished in accordance with this License to do the same, subject to all of
+the following terms and conditions, which Recipient accepts by engaging in any
+such use, copying, modifying, merging, publishing, distributing, sublicensing
+or selling:
+
+1. Definitions.
+
+    (a) "Original Software" means source code of computer software code which
+    is described in Exhibit A as Original Software.
+
+    (b) "Modifications" means any addition to or deletion from the substance
+    or structure of either the Original Software or any previous
+    Modifications. When Subject Software is released as a series of files, a
+    Modification means (i) any addition to or deletion from the contents of a
+    file containing Original Software or previous Modifications and (ii) any
+    new file that contains any part of the Original Code or previous
+    Modifications.
+
+    (c) "Subject Software" means the Original Software or Modifications or the
+    combination of the Original Software and Modifications, or portions of any
+    of the foregoing.
+
+    (d) "Recipient" means an individual or a legal entity exercising rights
+    under, and complying with all of the terms of, this License. For legal
+    entities, "Recipient" includes any entity which controls, is controlled
+    by, or is under common control with Recipient. For purposes of this
+    definition, "control" of an entity means (a) the power, direct or
+    indirect, to direct or manage such entity, or (b) ownership of fifty
+    percent (50%) or more of the outstanding shares or beneficial ownership of
+    such entity.
+
+2. Redistribution of Source Code Subject to These Terms. Redistributions of
+Subject Software in source code form must retain the notice set forth in
+Exhibit A, below, in every file. A copy of this License must be included in
+any documentation for such Subject Software where the recipients' rights
+relating to Subject Software are described. Recipient may distribute the
+source code version of Subject Software under a license of Recipient's choice,
+which may contain terms different from this License, provided that (i)
+Recipient is in compliance with the terms of this License, and (ii) the
+license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13 of
+this License, which terms may not be modified or superseded by any other terms
+of such license. If Recipient distributes the source code version under a
+different license Recipient must make it absolutely clear that any terms which
+differ from this License are offered by Recipient alone, not by SGI. Recipient
+hereby agrees to indemnify SGI for any liability incurred by SGI as a result
+of any such terms Recipient offers.
+
+3. Redistribution in Executable Form. The notice set forth in Exhibit A must
+be conspicuously included in any notice in an executable version of Subject
+Software, related documentation or collateral in which Recipient describes the
+user's rights relating to the Subject Software. Recipient may distribute the
+executable version of Subject Software under a license of Recipient's choice,
+which may contain terms different from this License, provided that (i)
+Recipient is in compliance with the terms of this License, and (ii) the
+license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of
+this License, which terms may not be modified or superseded by any other terms
+of such license. If Recipient distributes the executable version under a
+different license Recipient must make it absolutely clear that any terms which
+differ from this License are offered by Recipient alone, not by SGI. Recipient
+hereby agrees to indemnify SGI for any liability incurred by SGI as a result
+of any such terms Recipient offers.
+
+4. Termination. This License and the rights granted hereunder will terminate
+automatically if Recipient fails to comply with terms herein and fails to cure
+such breach within 30 days of the breach. Any sublicense to the Subject
+Software which is properly granted shall survive any termination of this
+License absent termination by the terms of such sublicense. Provisions which,
+by their nature, must remain in effect beyond the termination of this License
+shall survive.
+
+5. No Trademark Rights. This License does not grant any rights to use any
+trade name, trademark or service mark whatsoever. No trade name, trademark or
+service mark of SGI may be used to endorse or promote products derived from
+the Subject Software without prior written permission of SGI.
+
+6. No Other Rights. This License does not grant any rights with respect to the
+OpenGL API or to any software or hardware implementation thereof or to any
+other software whatsoever, nor shall any other rights or licenses not
+expressly granted hereunder arise by implication, estoppel or otherwise with
+respect to the Subject Software. Title to and ownership of the Original
+Software at all times remains with SGI. All rights in the Original Software
+not expressly granted under this License are reserved.
+
+7. Compliance with Laws; Non-Infringement. Recipient shall comply with all
+applicable laws and regulations in connection with use and distribution of the
+Subject Software, including but not limited to, all export and import control
+laws and regulations of the U.S. government and other countries. Recipient may
+not distribute Subject Software that (i) in any way infringes (directly or
+contributorily) the rights (including patent, copyright, trade secret,
+trademark or other intellectual property rights of any kind) of any other
+person or entity or (ii) breaches any representation or warranty, express,
+implied or statutory, which under any applicable law it might be deemed to
+have been distributed.
+
+8. Claims of Infringement. If Recipient at any time has knowledge of any one
+or more third party claims that reproduction, modification, use, distribution,
+import or sale of Subject Software (including particular functionality or code
+incorporated in Subject Software) infringes the third party's intellectual
+property rights, Recipient must place in a well-identified web page bearing
+the title "LEGAL" a description of each such claim and a description of the
+party making each such claim in sufficient detail that a user of the Subject
+Software will know whom to contact regarding the claim. Also, upon gaining
+such knowledge of any such claim, Recipient must conspicuously include the URL
+for such web page in the Exhibit A notice required under Sections 2 and 3,
+above, and in the text of any related documentation, license agreement or
+collateral in which Recipient describes end user's rights relating to the
+Subject Software. If Recipient obtains such knowledge after it makes Subject
+Software available to any other person or entity, Recipient shall take other
+steps (such as notifying appropriate mailing lists or newsgroups) reasonably
+calculated to inform those who received the Subject Software that new
+knowledge has been obtained.
+
+9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS,
+MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO
+RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
+PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY
+SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
+HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
+WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY),
+CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK
+STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
+THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY
+TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO
+THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT
+ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT.
+
+11. Indemnity. Recipient shall be solely responsible for damages arising,
+directly or indirectly, out of its utilization of rights under this License.
+Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc. from
+and against any loss, liability, damages, costs or expenses (including the
+payment of reasonable attorneys fees) arising out of Recipient's use,
+modification, reproduction and distribution of the Subject Software or out of
+any representation or warranty made by Recipient.
+
+12. U.S. Government End Users. The Subject Software is a "commercial item"
+consisting of "commercial computer software" as such terms are defined in
+title 48 of the Code of Federal Regulations and all U.S. Government End Users
+acquire only the rights set forth in this License and are subject to the terms
+of this License.
+
+13. Miscellaneous. This License represents the complete agreement concerning
+subject matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed so as to achieve as nearly as
+possible the same economic effect as the original provision and the remainder
+of this License will remain in effect. This License shall be governed by and
+construed in accordance with the laws of the United States and the State of
+California as applied to agreements entered into and to be performed entirely
+within California between California residents. Any litigation relating to
+this License shall be subject to the exclusive jurisdiction of the Federal
+Courts of the Northern District of California (or, absent subject matter
+jurisdiction in such courts, the courts of the State of California), with
+venue lying exclusively in Santa Clara County, California, with the losing
+party responsible for costs, including without limitation, court costs and
+reasonable attorneys fees and expenses. The application of the United Nations
+Convention on Contracts for the International Sale of Goods is expressly
+excluded. Any law or regulation which provides that the language of a contract
+shall be construed against the drafter shall not apply to this License.
+
+Exhibit A
+
+The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and 13
+of the GLX Public License Version 1.0 (the "License"). You may not use this
+file except in compliance with those sections of the License. You may obtain a
+copy of the License at Silicon Graphics, Inc., attn: Legal Services, 2011 N.
+Shoreline Blvd., Mountain View, CA 94043 or at
+http://www.sgi.com/software/opensource/glx/license.html.
+
+Software distributed under the License is distributed on an "AS IS" basis. ALL
+WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON-
+INFRINGEMENT. See the License for the specific language governing rights and
+limitations under the License.
+
+The Original Software is GLX version 1.2 source code, released February, 1999.
+The developer of the Original Software is Silicon Graphics, Inc. Those
+portions of the Subject Software created by Silicon Graphics, Inc. are
+Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.  3.5. CID
+Font Code Public License
+
+CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License")
+
+Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI")
+hereby grants permission to Recipient (defined below), under SGI's copyrights
+in the Original Software (defined below), to use, copy, modify, merge,
+publish, distribute, sublicense and/or sell copies of Subject Software
+(defined below) in both source code and executable form, and to permit persons
+to whom the Subject Software is furnished in accordance with this License to
+do the same, subject to all of the following terms and conditions, which
+Recipient accepts by engaging in any such use, copying, modifying, merging,
+publication, distributing, sublicensing or selling:
+
+1. Definitions.
+
+    a. "Original Software" means source code of computer software code that is
+    described in Exhibit A as Original Software.
+
+    b. "Modifications" means any addition to or deletion from the substance or
+    structure of either the Original Software or any previous Modifications.
+    When Subject Software is released as a series of files, a Modification
+    means (i) any addition to or deletion from the contents of a file
+    containing Original Software or previous Modifications and (ii) any new
+    file that contains any part of the Original Code or previous
+    Modifications.
+
+    c. "Subject Software" means the Original Software or Modifications or the
+    combination of the Original Software and Modifications, or portions of any
+    of the foregoing.
+
+    d. "Recipient" means an individual or a legal entity exercising rights
+    under the terms of this License. For legal entities, "Recipient" includes
+    any entity that controls, is controlled by, or is under common control
+    with Recipient. For purposes of this definition, "control" of an entity
+    means (i) the power, direct or indirect, to direct or manage such entity,
+    or (ii) ownership of fifty percent (50%) or more of the outstanding shares
+    or beneficial ownership of such entity.
+
+    e. "Required Notice" means the notice set forth in Exhibit A to this
+    License.
+
+    f. "Accompanying Technology" means any software or other technology that
+    is not a Modification and that is distributed or made publicly available
+    by Recipient with the Subject Software. Separate software files that do
+    not contain any Original Software or any previous Modification shall not
+    be deemed a Modification, even if such software files are aggregated as
+    part of a product, or in any medium of storage, with any file that does
+    contain Original Software or any previous Modification.
+
+2. License Terms. All distribution of the Subject Software must be made
+subject to the terms of this License. A copy of this License and the Required
+Notice must be included in any documentation for Subject Software where
+Recipient's rights relating to Subject Software and/or any Accompanying
+Technology are described. Distributions of Subject Software in source code
+form must also include the Required Notice in every file distributed. In
+addition, a ReadMe file entitled "Important Legal Notice" must be distributed
+with each distribution of one or more files that incorporate Subject Software.
+That file must be included with distributions made in both source code and
+executable form. A copy of the License and the Required Notice must be
+included in that file. Recipient may distribute Accompanying Technology under
+a license of Recipient's choice, which may contain terms different from this
+License, provided that (i) Recipient is in compliance with the terms of this
+License, (ii) such other license terms do not modify or supersede the terms of
+this License as applicable to the Subject Software, (iii) Recipient hereby
+indemnifies SGI for any liability incurred by SGI as a result of the
+distribution of Accompanying Technology or the use of other license terms.
+
+3. Termination. This License and the rights granted hereunder will terminate
+automatically if Recipient fails to comply with terms herein and fails to cure
+such breach within 30 days of the breach. Any sublicense to the Subject
+Software that is properly granted shall survive any termination of this
+License absent termination by the terms of such sublicense. Provisions which,
+by their nature, must remain in effect beyond the termination of this License
+shall survive.
+
+4. Trademark Rights. This License does not grant any rights to use any trade
+name, trademark or service mark whatsoever. No trade name, trademark or
+service mark of SGI may be used to endorse or promote products derived from or
+incorporating any Subject Software without prior written permission of SGI.
+
+5. No Other Rights. No rights or licenses not expressly granted hereunder
+shall arise by implication, estoppel or otherwise. Title to and ownership of
+the Original Software at all times remains with SGI. All rights in the
+Original Software not expressly granted under this License are reserved.
+
+6. Compliance with Laws; Non-Infringement. Recipient shall comply with all
+applicable laws and regulations in connection with use and distribution of the
+Subject Software, including but not limited to, all export and import control
+laws and regulations of the U.S. government and other countries. Recipient may
+not distribute Subject Software that (i) in any way infringes (directly or
+contributorily) the rights (including patent, copyright, trade secret,
+trademark or other intellectual property rights of any kind) of any other
+person or entity, or (ii) breaches any representation or warranty, express,
+implied or statutory, which under any applicable law it might be deemed to
+have been distributed.
+
+7. Claims of Infringement. If Recipient at any time has knowledge of any one
+or more third party claims that reproduction, modification, use, distribution,
+import or sale of Subject Software (including particular functionality or code
+incorporated in Subject Software) infringes the third party's intellectual
+property rights, Recipient must place in a well-identified web page bearing
+the title "LEGAL" a description of each such claim and a description of the
+party making each such claim in sufficient detail that a user of the Subject
+Software will know whom to contact regarding the claim. Also, upon gaining
+such knowledge of any such claim, Recipient must conspicuously include the URL
+for such web page in the Required Notice, and in the text of any related
+documentation, license agreement or collateral in which Recipient describes
+end user's rights relating to the Subject Software. If Recipient obtains such
+knowledge after it makes Subject Software available to any other person or
+entity, Recipient shall take other steps (such as notifying appropriate
+mailing lists or newsgroups) reasonably calculated to provide such knowledge
+to those who received the Subject Software.
+
+8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS,
+MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO
+RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
+PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY
+SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
+HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
+WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY),
+CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT
+ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND
+LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED.
+
+10. Indemnity. Recipient shall be solely responsible for damages arising,
+directly or indirectly, out of its utilization of rights under this License.
+Recipient will defend, indemnify and hold SGI and its successors and assigns
+harmless from and against any loss, liability, damages, costs or expenses
+(including the payment of reasonable attorneys fees) arising out of
+(Recipient's use, modification, reproduction and distribution of the Subject
+Software or out of any representation or warranty made by Recipient.
+
+11. U.S. Government End Users. The Subject Software is a "commercial item"
+consisting of "commercial computer software" as such terms are defined in
+title 48 of the Code of Federal Regulations and all U.S. Government End Users
+acquire only the rights set forth in this License and are subject to the terms
+of this License.
+
+12. Miscellaneous. This License represents the complete agreement concerning
+subject matter hereof. If any provision of this License is held to be
+unenforceable by any judicial or administrative authority having proper
+jurisdiction with respect thereto, such provision shall be reformed so as to
+achieve as nearly as possible the same economic effect as the original
+provision and the remainder of this License will remain in effect. This
+License shall be governed by and construed in accordance with the laws of the
+United States and the State of California as applied to agreements entered
+into and to be performed entirely within California between California
+residents. Any litigation relating to this License shall be subject to the
+exclusive jurisdiction of the Federal Courts of the Northern District of
+California (or, absent subject matter jurisdiction in such courts, the courts
+of the State of California), with venue lying exclusively in Santa Clara
+County, California, with the losing party responsible for costs, including
+without limitation, court costs and reasonable attorneys fees and expenses.
+The application of the United Nations Convention on Contracts for the
+International Sale of Goods is expressly excluded. Any law or regulation that
+provides that the language of a contract shall be construed against the
+drafter shall not apply to this License.
+
+Exhibit A
+
+Copyright (c) 1994-1999 Silicon Graphics, Inc.
+
+The contents of this file are subject to the CID Font Code Public License
+Version 1.0 (the "License"). You may not use this file except in compliance
+with the License. You may obtain a copy of the License at Silicon Graphics,
+Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043
+or at http://www.sgi.com/software/opensource/cid/license.html
+
+Software distributed under the License is distributed on an "AS IS" basis. ALL
+WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF
+NON-INFRINGEMENT. See the License for the specific language governing rights
+and limitations under the License.
+
+The Original Software (as defined in the License) is CID font code that was
+developed by Silicon Graphics, Inc. Those portions of the Subject Software (as
+defined in the License) that were created by Silicon Graphics, Inc. are
+Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved.
+
+[NOTE: When using this text in connection with Subject Software delivered
+solely in object code form, Recipient may replace the words "this file" with
+"this software" in both the first and second sentences.] 3.6. Bitstream Vera
+Fonts Copyright
+
+The fonts have a generous copyright, allowing derivative works (as long as
+"Bitstream" or "Vera" are not in the names), and full redistribution (so long
+as they are not *sold* by themselves). They can be be bundled, redistributed
+and sold with any software.
+
+The fonts are distributed under the following copyright:
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a
+trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated documentation
+files (the "Font Software"), to reproduce and distribute the Font Software,
+including without limitation the rights to use, copy, merge, publish,
+distribute, and/or sell copies of the Font Software, and to permit persons to
+whom the Font Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright and trademark notices and this permission notice shall be
+included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular the
+designs of glyphs or characters in the Fonts may be modified and additional
+glyphs or characters may be added to the Fonts, only if the fonts are renamed
+to names not containing either the words "Bitstream" or the word "Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream Vera"
+names.
+
+The Font Software may be sold as part of a larger software package but no copy
+of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL,
+SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO
+USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome Foundation,
+and Bitstream Inc., shall not be used in advertising or otherwise to promote
+the sale, use or other dealings in this Font Software without prior written
+authorization from the Gnome Foundation or Bitstream Inc., respectively. For
+further information, contact: fonts at gnome dot org.  3.7. Bigelow & Holmes
+Inc and URW++ GmbH Luxi font license
+
+Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction
+code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a
+registered trademark of Bigelow & Holmes Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of these Fonts and associated documentation files (the "Font Software"), to
+deal in the Font Software, including without limitation the rights to use,
+copy, merge, publish, distribute, sublicense, and/or sell copies of the Font
+Software, and to permit persons to whom the Font Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice shall be
+included in all copies of one or more of the Font Software.
+
+The Font Software may not be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may not be modified nor may
+additional glyphs or characters be added to the Fonts. This License becomes
+null and void when the Fonts or Font Software have been modified.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++
+GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY
+GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT
+SOFTWARE.
+
+Except as contained in this notice, the names of Bigelow & Holmes Inc. and
+URW++ GmbH. shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in this Font Software without prior written
+authorization from Bigelow & Holmes Inc. and URW++ GmbH.
+
+For further information, contact:
+
+info at urwpp.de or design at bigelowandholmes.com
+
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to zlib v1.2.3, which is included 
+with JRE 7, JDK 7, and OpenJDK 7
+
+--- begin of LICENSE ---
+
+  version 1.2.3, July 18th, 2005
+
+  Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+
+  Jean-loup Gailly        Mark Adler
+  jloup at gzip.org          madler at alumni.caltech.edu
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to the following which is 
+included with JRE 7, JDK 7, and OpenJDK 7, except where noted:
+
+  Apache Derby 10.8.1.2        [included with JDK 7 only]
+  Apache Jakarta BCEL 5.2 
+  Apache Jakarta Regexp 1.4 
+  Apache Santuario XMLSec-Java 1.4.2
+  Apache Xalan-Java 2.7.1 
+  Apache Xerces2 Java 2.10.0 
+  Apache XML Resolver 1.1 
+
+
+--- begin of LICENSE ---
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
 
-HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD 
-TO THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
-PURPOSE.  Hewlett-Packard shall not be liable for errors 
-contained herein or direct, indirect, special, incidental or 
-consequential damages in connection with the furnishing, 
-performance, or use of this material. 
-
-END  src/solaris/native/sun/awt/HPkeysym.h 
-****************************************************** 
-****************************************************** 
-BEGIN src/solaris/native/sun/awt/Xrandr.h 
-/* 
- * $XFree86: xc/lib/Xrandr/Xrandr.h,v 1.9 2002/09/29 23:39:44 keithp Exp $ 
- * 
- * Copyright © 2000 Compaq Computer Corporation, Inc. 
- * Copyright © 2002 Hewlett-Packard Company, Inc. 
- * 
- * Permission to use, copy, modify, distribute, and sell this software and its 
- * documentation for any purpose is hereby granted without fee, provided that 
- * the above copyright notice appear in all copies and that both that 
- * copyright notice and this permission notice appear in supporting 
- * documentation, and that the name of Compaq not be used in advertising or 
- * publicity pertaining to distribution of the software without specific, 
- * written prior permission.  HP makes no representations about the 
- * suitability of this software for any purpose.  It is provided "as is" 
- * without express or implied warranty. 
- * 
- * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL COMPAQ 
- * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
- * 
- * Author:  Jim Gettys, HP Labs, HP. 
- */ 
-
-
-END src/solaris/native/sun/awt/Xrandr.h 
-****************************************************** 
-BEGIN src/solaris/native/sun/awt/extutil.h 
-/* 
- * $Xorg: extutil.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ 
- * 
-Copyright 1989, 1998  The Open Group 
-
-All Rights Reserved. 
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE 
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
-
-Except as contained in this notice, the name of The Open Group shall not be 
-used in advertising or otherwise to promote the sale, use or other dealings 
-in this Software without prior written authorization from The Open Group. 
- * 
- * Author:  Jim Fulton, MIT The Open Group 
- * 
- *                     Xlib Extension-Writing Utilities 
- * 
- * This package contains utilities for writing the client API for various 
- * protocol extensions.  THESE INTERFACES ARE NOT PART OF THE X STANDARD AND 
- * ARE SUBJECT TO CHANGE! 
- */ 
-/* $XFree86: xc/include/extensions/extutil.h,v 1.5 2001/01/17 17:53:20 dawes Exp $ */ 
-
-END src/solaris/native/sun/awt/extutil.h 
-****************************************************** 
-BEGIN   src/solaris/native/sun/awt/fontconfig.h 
-/* 
- * $RCSId: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.30 2002/09/26 00:17:27 
-keithp Exp $ 
- * 
- * Copyright © 2001 Keith Packard 
- * 
- * Permission to use, copy, modify, distribute, and sell this software and its 
- * documentation for any purpose is hereby granted without fee, provided that 
- * the above copyright notice appear in all copies and that both that 
- * copyright notice and this permission notice appear in supporting 
- * documentation, and that the name of Keith Packard not be used in 
- * advertising or publicity pertaining to distribution of the software without 
- * specific, written prior permission.  Keith Packard makes no 
- * representations about the suitability of this software for any purpose.  It 
- * is provided "as is" without express or implied warranty. 
- * 
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO 
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR 
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
- * PERFORMANCE OF THIS SOFTWARE. 
-
-END   src/solaris/native/sun/awt/fontconfig.h 
-****************************************************** 
-BEGIN src/solaris/native/sun/awt/list.c 
-AND  src/solaris/native/sun/awt/list.h 
-AND src/solaris/native/sun/awt/multiVis.c 
-AND  src/solaris/native/sun/awt/multiVis.h 
-AND  src/solaris/native/sun/awt/wsutils.h 
-
-Copyright (c) 1994 Hewlett-Packard Co. 
-Copyright (c) 1996  X Consortium 
-
-Permission is hereby granted, free of charge, to any person obtaining 
-a copy of this software and associated documentation files (the 
-"Software"), to deal in the Software without restriction, including 
-without limitation the rights to use, copy, modify, merge, publish, 
-distribute, sublicense, and sell copies of the Software, and to 
-permit persons to whom the Software is furnished to do so, subject to 
-the following conditions: 
-
-The above copyright notice and this permission notice shall be included 
-in all copies or substantial portions of the Software. 
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
-IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR 
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 
-OTHER DEALINGS IN THE SOFTWARE. 
-
-Except as contained in this notice, the name of the X Consortium shall 
-not be used in advertising or otherwise to promote the sale, use or 
-other dealings in this Software without prior written authorization 
-from the X Consortium. 
-
-END src/solaris/native/sun/awt/list.c 
-AND  src/solaris/native/sun/awt/list.h 
-AND src/solaris/native/sun/awt/multiVis.c 
-AND  src/solaris/native/sun/awt/multiVis.h 
-AND  src/solaris/native/sun/awt/wsutils.h 
-
-***************************************************************** 
-BEGIN src/solaris/native/sun/awt/randr.h 
-
- * 
- * Copyright © 2000, Compaq Computer Corporation, 
- * Copyright © 2002, Hewlett Packard, Inc. 
- * 
- * Permission to use, copy, modify, distribute, and sell this software and its 
- * documentation for any purpose is hereby granted without fee, provided that 
- * the above copyright notice appear in all copies and that both that 
- * copyright notice and this permission notice appear in supporting 
- * documentation, and that the name of Compaq or HP not be used in advertising 
- * or publicity pertaining to distribution of the software without specific, 
- * written prior permission.  HP makes no representations about the 
- * suitability of this software for any purpose.  It is provided "as is" 
- * without express or implied warranty. 
- * 
- * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL HP 
- * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
- * 
- * Author:  Jim Gettys, HP Labs, Hewlett-Packard, Inc. 
-
-END src/solaris/native/sun/awt/randr.h 
-***************************************************** 
-
-BEGIN src/solaris/native/sun/java2d/opengl/J2D_GL/glx.h 
- * Mesa 3-D graphics library 
- * Version:  4.1 
- * 
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved. 
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a 
- * copy of this software and associated documentation files (the "Software"), 
- * to deal in the Software without restriction, including without limitation 
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- * and/or sell copies of the Software, and to permit persons to whom the 
- * Software is furnished to do so, subject to the following conditions: 
- * 
- * The above copyright notice and this permission notice shall be included 
- * in all copies or substantial portions of the Software. 
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
-
-END src/solaris/native/sun/java2d/opengl/J2D_GL/glx.h 
diff --git a/hotspot/agent/make/Makefile b/hotspot/agent/make/Makefile
index c1c8dda..981d2c8 100644
--- a/hotspot/agent/make/Makefile
+++ b/hotspot/agent/make/Makefile
@@ -48,17 +48,18 @@ sun.jvm.hotspot.asm.x86 \
 sun.jvm.hotspot.bugspot \
 sun.jvm.hotspot.bugspot.tree \
 sun.jvm.hotspot.c1 \
+sun.jvm.hotspot.ci \
 sun.jvm.hotspot.code \
 sun.jvm.hotspot.compiler \
 sun.jvm.hotspot.debugger \
 sun.jvm.hotspot.debugger.amd64 \
+sun.jvm.hotspot.debugger.bsd \
+sun.jvm.hotspot.debugger.bsd.amd64 \
+sun.jvm.hotspot.debugger.bsd.x86 \
 sun.jvm.hotspot.debugger.cdbg \
 sun.jvm.hotspot.debugger.cdbg.basic \
 sun.jvm.hotspot.debugger.cdbg.basic.amd64 \
 sun.jvm.hotspot.debugger.cdbg.basic.x86 \
-sun.jvm.hotspot.debugger.dbx \
-sun.jvm.hotspot.debugger.dbx.sparc \
-sun.jvm.hotspot.debugger.dbx.x86 \
 sun.jvm.hotspot.debugger.dummy \
 sun.jvm.hotspot.debugger.ia64 \
 sun.jvm.hotspot.debugger.linux \
@@ -76,7 +77,6 @@ sun.jvm.hotspot.debugger.remote.amd64 \
 sun.jvm.hotspot.debugger.remote.sparc \
 sun.jvm.hotspot.debugger.remote.x86 \
 sun.jvm.hotspot.debugger.sparc \
-sun.jvm.hotspot.debugger.win32 \
 sun.jvm.hotspot.debugger.win32.coff \
 sun.jvm.hotspot.debugger.windbg \
 sun.jvm.hotspot.debugger.windbg.amd64 \
@@ -91,9 +91,14 @@ sun.jvm.hotspot.interpreter \
 sun.jvm.hotspot.jdi \
 sun.jvm.hotspot.livejvm \
 sun.jvm.hotspot.memory \
+sun.jvm.hotspot.opto \
 sun.jvm.hotspot.oops \
+sun.jvm.hotspot.prims \
 sun.jvm.hotspot.runtime \
 sun.jvm.hotspot.runtime.amd64 \
+sun.jvm.hotspot.runtime.bsd \
+sun.jvm.hotspot.runtime.bsd_amd64 \
+sun.jvm.hotspot.runtime.bsd_x86 \
 sun.jvm.hotspot.runtime.ia64 \
 sun.jvm.hotspot.runtime.linux \
 sun.jvm.hotspot.runtime.linux_amd64 \
@@ -139,17 +144,18 @@ sun/jvm/hotspot/asm/x86/*.java \
 sun/jvm/hotspot/bugspot/*.java \
 sun/jvm/hotspot/bugspot/tree/*.java \
 sun/jvm/hotspot/c1/*.java \
+sun/jvm/hotspot/ci/*.java \
 sun/jvm/hotspot/code/*.java \
 sun/jvm/hotspot/compiler/*.java \
 sun/jvm/hotspot/debugger/*.java \
 sun/jvm/hotspot/debugger/amd64/*.java \
+sun/jvm/hotspot/debugger/bsd/*.java \
+sun/jvm/hotspot/debugger/bsd/amd64/*.java \
+sun/jvm/hotspot/debugger/bsd/x86/*.java \
 sun/jvm/hotspot/debugger/cdbg/*.java \
 sun/jvm/hotspot/debugger/cdbg/basic/*.java \
 sun/jvm/hotspot/debugger/cdbg/basic/amd64/*.java \
 sun/jvm/hotspot/debugger/cdbg/basic/x86/*.java \
-sun/jvm/hotspot/debugger/dbx/*.java \
-sun/jvm/hotspot/debugger/dbx/sparc/*.java \
-sun/jvm/hotspot/debugger/dbx/x86/*.java \
 sun/jvm/hotspot/debugger/dummy/*.java \
 sun/jvm/hotspot/debugger/ia64/*.java \
 sun/jvm/hotspot/debugger/linux/*.java \
@@ -165,7 +171,6 @@ sun/jvm/hotspot/debugger/remote/amd64/*.java \
 sun/jvm/hotspot/debugger/remote/sparc/*.java \
 sun/jvm/hotspot/debugger/remote/x86/*.java \
 sun/jvm/hotspot/debugger/sparc/*.java \
-sun/jvm/hotspot/debugger/win32/*.java \
 sun/jvm/hotspot/debugger/win32/coff/*.java \
 sun/jvm/hotspot/debugger/windbg/*.java \
 sun/jvm/hotspot/debugger/windbg/ia64/*.java \
@@ -176,8 +181,13 @@ sun/jvm/hotspot/jdi/*.java \
 sun/jvm/hotspot/livejvm/*.java \
 sun/jvm/hotspot/memory/*.java \
 sun/jvm/hotspot/oops/*.java \
+sun/jvm/hotspot/opto/*.java \
+sun/jvm/hotspot/prims/*.java \
 sun/jvm/hotspot/runtime/*.java \
 sun/jvm/hotspot/runtime/amd64/*.java \
+sun/jvm/hotspot/runtime/bsd/*.java \
+sun/jvm/hotspot/runtime/bsd_amd64/*.java \
+sun/jvm/hotspot/runtime/bsd_x86/*.java \
 sun/jvm/hotspot/runtime/ia64/*.java \
 sun/jvm/hotspot/runtime/linux/*.java \
 sun/jvm/hotspot/runtime/linux_amd64/*.java \
diff --git a/hotspot/agent/make/saenv.sh b/hotspot/agent/make/saenv.sh
index b41a311..81c2d15 100644
--- a/hotspot/agent/make/saenv.sh
+++ b/hotspot/agent/make/saenv.sh
@@ -70,6 +70,14 @@ fi
 
 SA_CLASSPATH=$STARTDIR/../build/classes:$STARTDIR/../src/share/lib/js.jar:$STARTDIR/sa.jar:$STARTDIR/lib/js.jar
 
+if [ ! -z "$SA_TYPEDB" ]; then
+  if [ ! -f $SA_TYPEDB ]; then
+    echo "$SA_TYPEDB is unreadable"
+    exit 1
+  fi
+  OPTIONS="-Dsun.jvm.hotspot.typedb=$SA_TYPEDB ${OPTIONS}"
+fi
+
 OPTIONS="-Djava.system.class.loader=sun.jvm.hotspot.SALauncherLoader ${OPTIONS}"
 
 SA_JAVA_CMD="$SA_PREFIX_CMD $SA_JAVA -showversion ${OPTIONS} -cp $SA_CLASSPATH $SA_OPTIONS"
diff --git a/hotspot/agent/make/saenv64.sh b/hotspot/agent/make/saenv64.sh
index 98d5885..c00dc0d 100644
--- a/hotspot/agent/make/saenv64.sh
+++ b/hotspot/agent/make/saenv64.sh
@@ -67,6 +67,14 @@ fi
 
 SA_CLASSPATH=$STARTDIR/../build/classes:$STARTDIR/../src/share/lib/js.jar:$STARTDIR/sa.jar::$STARTDIR/lib/js.jar
 
+if [ ! -z "$SA_TYPEDB" ]; then
+  if [ ! -f $SA_TYPEDB ]; then
+    echo "$SA_TYPEDB is unreadable"
+    exit 1
+  fi
+  OPTIONS="-Dsun.jvm.hotspot.typedb=$SA_TYPEDB ${OPTIONS}"
+fi
+
 OPTIONS="-Djava.system.class.loader=sun.jvm.hotspot.SALauncherLoader ${OPTIONS}"
 
 SA_JAVA_CMD="$SA_PREFIX_CMD $SA_JAVA -d64 -showversion ${OPTIONS} -cp $SA_CLASSPATH $SA_OPTIONS"
diff --git a/hotspot/agent/src/os/bsd/BsdDebuggerLocal.c b/hotspot/agent/src/os/bsd/BsdDebuggerLocal.c
new file mode 100644
index 0000000..85b07f7
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/BsdDebuggerLocal.c
@@ -0,0 +1,413 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include <stdlib.h>
+#include <jni.h>
+#include "libproc.h"
+
+#if defined(x86_64) && !defined(amd64)
+#define amd64 1
+#endif
+
+#ifdef i386
+#include "sun_jvm_hotspot_debugger_x86_X86ThreadContext.h"
+#endif
+
+#ifdef amd64
+#include "sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext.h"
+#endif
+
+#if defined(sparc) || defined(sparcv9)
+#include "sun_jvm_hotspot_debugger_sparc_SPARCThreadContext.h"
+#endif
+
+static jfieldID p_ps_prochandle_ID = 0;
+static jfieldID threadList_ID = 0;
+static jfieldID loadObjectList_ID = 0;
+
+static jmethodID createClosestSymbol_ID = 0;
+static jmethodID createLoadObject_ID = 0;
+static jmethodID getThreadForThreadId_ID = 0;
+static jmethodID listAdd_ID = 0;
+
+#define CHECK_EXCEPTION_(value) if ((*env)->ExceptionOccurred(env)) { return value; }
+#define CHECK_EXCEPTION if ((*env)->ExceptionOccurred(env)) { return;}
+#define THROW_NEW_DEBUGGER_EXCEPTION_(str, value) { throw_new_debugger_exception(env, str); return value; }
+#define THROW_NEW_DEBUGGER_EXCEPTION(str) { throw_new_debugger_exception(env, str); return;}
+
+static void throw_new_debugger_exception(JNIEnv* env, const char* errMsg) {
+  (*env)->ThrowNew(env, (*env)->FindClass(env, "sun/jvm/hotspot/debugger/DebuggerException"), errMsg);
+}
+
+static struct ps_prochandle* get_proc_handle(JNIEnv* env, jobject this_obj) {
+  jlong ptr = (*env)->GetLongField(env, this_obj, p_ps_prochandle_ID);
+  return (struct ps_prochandle*)(intptr_t)ptr;
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    init0
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_init0
+  (JNIEnv *env, jclass cls) {
+  jclass listClass;
+
+  if (init_libproc(getenv("LIBSAPROC_DEBUG") != NULL) != true) {
+     THROW_NEW_DEBUGGER_EXCEPTION("can't initialize libproc");
+  }
+
+  // fields we use
+  p_ps_prochandle_ID = (*env)->GetFieldID(env, cls, "p_ps_prochandle", "J");
+  CHECK_EXCEPTION;
+  threadList_ID = (*env)->GetFieldID(env, cls, "threadList", "Ljava/util/List;");
+  CHECK_EXCEPTION;
+  loadObjectList_ID = (*env)->GetFieldID(env, cls, "loadObjectList", "Ljava/util/List;");
+  CHECK_EXCEPTION;
+
+  // methods we use
+  createClosestSymbol_ID = (*env)->GetMethodID(env, cls, "createClosestSymbol",
+                    "(Ljava/lang/String;J)Lsun/jvm/hotspot/debugger/cdbg/ClosestSymbol;");
+  CHECK_EXCEPTION;
+  createLoadObject_ID = (*env)->GetMethodID(env, cls, "createLoadObject",
+                    "(Ljava/lang/String;JJ)Lsun/jvm/hotspot/debugger/cdbg/LoadObject;");
+  CHECK_EXCEPTION;
+  getThreadForThreadId_ID = (*env)->GetMethodID(env, cls, "getThreadForThreadId",
+                                                     "(J)Lsun/jvm/hotspot/debugger/ThreadProxy;");
+  CHECK_EXCEPTION;
+  // java.util.List method we call
+  listClass = (*env)->FindClass(env, "java/util/List");
+  CHECK_EXCEPTION;
+  listAdd_ID = (*env)->GetMethodID(env, listClass, "add", "(Ljava/lang/Object;)Z");
+  CHECK_EXCEPTION;
+}
+
+JNIEXPORT jint JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getAddressSize
+  (JNIEnv *env, jclass cls)
+{
+#ifdef _LP64
+ return 8;
+#else
+ return 4;
+#endif
+
+}
+
+
+static void fillThreadsAndLoadObjects(JNIEnv* env, jobject this_obj, struct ps_prochandle* ph) {
+  int n = 0, i = 0;
+
+  // add threads
+  n = get_num_threads(ph);
+  for (i = 0; i < n; i++) {
+    jobject thread;
+    jobject threadList;
+    lwpid_t lwpid;
+
+    lwpid = get_lwp_id(ph, i);
+    thread = (*env)->CallObjectMethod(env, this_obj, getThreadForThreadId_ID,
+                                      (jlong)lwpid);
+    CHECK_EXCEPTION;
+    threadList = (*env)->GetObjectField(env, this_obj, threadList_ID);
+    CHECK_EXCEPTION;
+    (*env)->CallBooleanMethod(env, threadList, listAdd_ID, thread);
+    CHECK_EXCEPTION;
+  }
+
+  // add load objects
+  n = get_num_libs(ph);
+  for (i = 0; i < n; i++) {
+     uintptr_t base;
+     const char* name;
+     jobject loadObject;
+     jobject loadObjectList;
+
+     base = get_lib_base(ph, i);
+     name = get_lib_name(ph, i);
+     loadObject = (*env)->CallObjectMethod(env, this_obj, createLoadObject_ID,
+                                   (*env)->NewStringUTF(env, name), (jlong)0, (jlong)base);
+     CHECK_EXCEPTION;
+     loadObjectList = (*env)->GetObjectField(env, this_obj, loadObjectList_ID);
+     CHECK_EXCEPTION;
+     (*env)->CallBooleanMethod(env, loadObjectList, listAdd_ID, loadObject);
+     CHECK_EXCEPTION;
+  }
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    attach0
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__I
+  (JNIEnv *env, jobject this_obj, jint jpid) {
+
+  struct ps_prochandle* ph;
+  if ( (ph = Pgrab(jpid)) == NULL) {
+    THROW_NEW_DEBUGGER_EXCEPTION("Can't attach to the process");
+  }
+  (*env)->SetLongField(env, this_obj, p_ps_prochandle_ID, (jlong)(intptr_t)ph);
+  fillThreadsAndLoadObjects(env, this_obj, ph);
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    attach0
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__Ljava_lang_String_2Ljava_lang_String_2
+  (JNIEnv *env, jobject this_obj, jstring execName, jstring coreName) {
+  const char *execName_cstr;
+  const char *coreName_cstr;
+  jboolean isCopy;
+  struct ps_prochandle* ph;
+
+  execName_cstr = (*env)->GetStringUTFChars(env, execName, &isCopy);
+  CHECK_EXCEPTION;
+  coreName_cstr = (*env)->GetStringUTFChars(env, coreName, &isCopy);
+  CHECK_EXCEPTION;
+
+  if ( (ph = Pgrab_core(execName_cstr, coreName_cstr)) == NULL) {
+    (*env)->ReleaseStringUTFChars(env, execName, execName_cstr);
+    (*env)->ReleaseStringUTFChars(env, coreName, coreName_cstr);
+    THROW_NEW_DEBUGGER_EXCEPTION("Can't attach to the core file");
+  }
+  (*env)->SetLongField(env, this_obj, p_ps_prochandle_ID, (jlong)(intptr_t)ph);
+  (*env)->ReleaseStringUTFChars(env, execName, execName_cstr);
+  (*env)->ReleaseStringUTFChars(env, coreName, coreName_cstr);
+  fillThreadsAndLoadObjects(env, this_obj, ph);
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    detach0
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_detach0
+  (JNIEnv *env, jobject this_obj) {
+  struct ps_prochandle* ph = get_proc_handle(env, this_obj);
+  if (ph != NULL) {
+     Prelease(ph);
+  }
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    lookupByName0
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)J
+ */
+JNIEXPORT jlong JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByName0
+  (JNIEnv *env, jobject this_obj, jstring objectName, jstring symbolName) {
+  const char *objectName_cstr, *symbolName_cstr;
+  jlong addr;
+  jboolean isCopy;
+  struct ps_prochandle* ph = get_proc_handle(env, this_obj);
+
+  objectName_cstr = NULL;
+  if (objectName != NULL) {
+    objectName_cstr = (*env)->GetStringUTFChars(env, objectName, &isCopy);
+    CHECK_EXCEPTION_(0);
+  }
+  symbolName_cstr = (*env)->GetStringUTFChars(env, symbolName, &isCopy);
+  CHECK_EXCEPTION_(0);
+
+  addr = (jlong) lookup_symbol(ph, objectName_cstr, symbolName_cstr);
+
+  if (objectName_cstr != NULL) {
+    (*env)->ReleaseStringUTFChars(env, objectName, objectName_cstr);
+  }
+  (*env)->ReleaseStringUTFChars(env, symbolName, symbolName_cstr);
+  return addr;
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    lookupByAddress0
+ * Signature: (J)Lsun/jvm/hotspot/debugger/cdbg/ClosestSymbol;
+ */
+JNIEXPORT jobject JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByAddress0
+  (JNIEnv *env, jobject this_obj, jlong addr) {
+  uintptr_t offset;
+  const char* sym = NULL;
+
+  struct ps_prochandle* ph = get_proc_handle(env, this_obj);
+  sym = symbol_for_pc(ph, (uintptr_t) addr, &offset);
+  if (sym == NULL) return 0;
+  return (*env)->CallObjectMethod(env, this_obj, createClosestSymbol_ID,
+                          (*env)->NewStringUTF(env, sym), (jlong)offset);
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    readBytesFromProcess0
+ * Signature: (JJ)Lsun/jvm/hotspot/debugger/ReadResult;
+ */
+JNIEXPORT jbyteArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_readBytesFromProcess0
+  (JNIEnv *env, jobject this_obj, jlong addr, jlong numBytes) {
+
+  jboolean isCopy;
+  jbyteArray array;
+  jbyte *bufPtr;
+  ps_err_e err;
+
+  array = (*env)->NewByteArray(env, numBytes);
+  CHECK_EXCEPTION_(0);
+  bufPtr = (*env)->GetByteArrayElements(env, array, &isCopy);
+  CHECK_EXCEPTION_(0);
+
+  err = ps_pread(get_proc_handle(env, this_obj), (psaddr_t) (uintptr_t)addr, bufPtr, numBytes);
+  (*env)->ReleaseByteArrayElements(env, array, bufPtr, 0);
+  return (err == PS_OK)? array : 0;
+}
+
+JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getThreadIntegerRegisterSet0
+  (JNIEnv *env, jobject this_obj, jint lwp_id) {
+
+  struct reg gregs;
+  jboolean isCopy;
+  jlongArray array;
+  jlong *regs;
+
+  struct ps_prochandle* ph = get_proc_handle(env, this_obj);
+  if (get_lwp_regs(ph, lwp_id, &gregs) != true) {
+     THROW_NEW_DEBUGGER_EXCEPTION_("get_thread_regs failed for a lwp", 0);
+  }
+
+#undef NPRGREG
+#ifdef i386
+#define NPRGREG sun_jvm_hotspot_debugger_x86_X86ThreadContext_NPRGREG
+#endif
+#ifdef ia64
+#define NPRGREG IA64_REG_COUNT
+#endif
+#ifdef amd64
+#define NPRGREG sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_NPRGREG
+#endif
+#if defined(sparc) || defined(sparcv9)
+#define NPRGREG sun_jvm_hotspot_debugger_sparc_SPARCThreadContext_NPRGREG
+#endif
+
+  array = (*env)->NewLongArray(env, NPRGREG);
+  CHECK_EXCEPTION_(0);
+  regs = (*env)->GetLongArrayElements(env, array, &isCopy);
+
+#undef REG_INDEX
+
+#ifdef i386
+#define REG_INDEX(reg) sun_jvm_hotspot_debugger_x86_X86ThreadContext_##reg
+
+  regs[REG_INDEX(GS)]  = (uintptr_t) gregs.r_gs;
+  regs[REG_INDEX(FS)]  = (uintptr_t) gregs.r_fs;
+  regs[REG_INDEX(ES)]  = (uintptr_t) gregs.r_es;
+  regs[REG_INDEX(DS)]  = (uintptr_t) gregs.r_ds;
+  regs[REG_INDEX(EDI)] = (uintptr_t) gregs.r_edi;
+  regs[REG_INDEX(ESI)] = (uintptr_t) gregs.r_esi;
+  regs[REG_INDEX(FP)] = (uintptr_t) gregs.r_ebp;
+  regs[REG_INDEX(SP)] = (uintptr_t) gregs.r_isp;
+  regs[REG_INDEX(EBX)] = (uintptr_t) gregs.r_ebx;
+  regs[REG_INDEX(EDX)] = (uintptr_t) gregs.r_edx;
+  regs[REG_INDEX(ECX)] = (uintptr_t) gregs.r_ecx;
+  regs[REG_INDEX(EAX)] = (uintptr_t) gregs.r_eax;
+  regs[REG_INDEX(PC)] = (uintptr_t) gregs.r_eip;
+  regs[REG_INDEX(CS)]  = (uintptr_t) gregs.r_cs;
+  regs[REG_INDEX(SS)]  = (uintptr_t) gregs.r_ss;
+
+#endif /* i386 */
+
+#if ia64
+  regs = (*env)->GetLongArrayElements(env, array, &isCopy);
+  int i;
+  for (i = 0; i < NPRGREG; i++ ) {
+    regs[i] = 0xDEADDEAD;
+  }
+#endif /* ia64 */
+
+#ifdef amd64
+#define REG_INDEX(reg) sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_##reg
+
+  regs[REG_INDEX(R15)] = gregs.r_r15;
+  regs[REG_INDEX(R14)] = gregs.r_r14;
+  regs[REG_INDEX(R13)] = gregs.r_r13;
+  regs[REG_INDEX(R12)] = gregs.r_r12;
+  regs[REG_INDEX(RBP)] = gregs.r_rbp;
+  regs[REG_INDEX(RBX)] = gregs.r_rbx;
+  regs[REG_INDEX(R11)] = gregs.r_r11;
+  regs[REG_INDEX(R10)] = gregs.r_r10;
+  regs[REG_INDEX(R9)] = gregs.r_r9;
+  regs[REG_INDEX(R8)] = gregs.r_r8;
+  regs[REG_INDEX(RAX)] = gregs.r_rax;
+  regs[REG_INDEX(RCX)] = gregs.r_rcx;
+  regs[REG_INDEX(RDX)] = gregs.r_rdx;
+  regs[REG_INDEX(RSI)] = gregs.r_rsi;
+  regs[REG_INDEX(RDI)] = gregs.r_rdi;
+  regs[REG_INDEX(RIP)] = gregs.r_rip;
+  regs[REG_INDEX(CS)] = gregs.r_cs;
+  regs[REG_INDEX(RSP)] = gregs.r_rsp;
+  regs[REG_INDEX(SS)] = gregs.r_ss;
+//  regs[REG_INDEX(FSBASE)] = gregs.fs_base;
+//  regs[REG_INDEX(GSBASE)] = gregs.gs_base;
+//  regs[REG_INDEX(DS)] = gregs.ds;
+//  regs[REG_INDEX(ES)] = gregs.es;
+//  regs[REG_INDEX(FS)] = gregs.fs;
+//  regs[REG_INDEX(GS)] = gregs.gs;
+
+#endif /* amd64 */
+
+#if defined(sparc) || defined(sparcv9)
+
+#define REG_INDEX(reg) sun_jvm_hotspot_debugger_sparc_SPARCThreadContext_##reg
+
+#ifdef _LP64
+  regs[REG_INDEX(R_PSR)] = gregs.tstate;
+  regs[REG_INDEX(R_PC)]  = gregs.tpc;
+  regs[REG_INDEX(R_nPC)] = gregs.tnpc;
+  regs[REG_INDEX(R_Y)]   = gregs.y;
+#else
+  regs[REG_INDEX(R_PSR)] = gregs.psr;
+  regs[REG_INDEX(R_PC)]  = gregs.pc;
+  regs[REG_INDEX(R_nPC)] = gregs.npc;
+  regs[REG_INDEX(R_Y)]   = gregs.y;
+#endif
+  regs[REG_INDEX(R_G0)]  =            0 ;
+  regs[REG_INDEX(R_G1)]  = gregs.u_regs[0];
+  regs[REG_INDEX(R_G2)]  = gregs.u_regs[1];
+  regs[REG_INDEX(R_G3)]  = gregs.u_regs[2];
+  regs[REG_INDEX(R_G4)]  = gregs.u_regs[3];
+  regs[REG_INDEX(R_G5)]  = gregs.u_regs[4];
+  regs[REG_INDEX(R_G6)]  = gregs.u_regs[5];
+  regs[REG_INDEX(R_G7)]  = gregs.u_regs[6];
+  regs[REG_INDEX(R_O0)]  = gregs.u_regs[7];
+  regs[REG_INDEX(R_O1)]  = gregs.u_regs[8];
+  regs[REG_INDEX(R_O2)]  = gregs.u_regs[ 9];
+  regs[REG_INDEX(R_O3)]  = gregs.u_regs[10];
+  regs[REG_INDEX(R_O4)]  = gregs.u_regs[11];
+  regs[REG_INDEX(R_O5)]  = gregs.u_regs[12];
+  regs[REG_INDEX(R_O6)]  = gregs.u_regs[13];
+  regs[REG_INDEX(R_O7)]  = gregs.u_regs[14];
+#endif /* sparc */
+
+
+  (*env)->ReleaseLongArrayElements(env, array, regs, JNI_COMMIT);
+  return array;
+}
diff --git a/hotspot/agent/src/os/bsd/Makefile b/hotspot/agent/src/os/bsd/Makefile
new file mode 100644
index 0000000..65909bd
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/Makefile
@@ -0,0 +1,78 @@
+#
+# Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+ARCH := $(shell if ([ `uname -m` = "ia64" ])  ; then echo ia64 ; elif ([ `uname -m` = "amd64" ]) ; then echo amd64; elif ([ `uname -m` = "sparc64" ]) ; then echo sparc; else echo i386 ; fi )
+GCC      = gcc
+
+JAVAH    = ${JAVA_HOME}/bin/javah
+
+SOURCES  = salibelf.c   \
+        symtab.c        \
+	libproc_impl.c  \
+	ps_proc.c       \
+	ps_core.c       \
+	hsearch_r.c     \
+	BsdDebuggerLocal.c
+
+INCLUDES = -I${JAVA_HOME}/include -I${JAVA_HOME}/include/$(shell uname -s | tr "[:upper:]" "[:lower:]")
+
+OBJS     = $(SOURCES:.c=.o)
+
+LIBS     = -lutil -lthread_db
+
+CFLAGS   = -c -fPIC -g -Wall -D_ALLBSD_SOURCE -D_GNU_SOURCE -D$(ARCH) $(INCLUDES)
+
+LIBSA = $(ARCH)/libsaproc.so
+
+all: $(LIBSA)
+
+BsdDebuggerLocal.o: BsdDebuggerLocal.c
+	$(JAVAH) -jni -classpath ../../../../../build/bsd-i586/hotspot/outputdir/bsd_i486_compiler2/generated/saclasses  \
+		sun.jvm.hotspot.debugger.x86.X86ThreadContext \
+		sun.jvm.hotspot.debugger.amd64.AMD64ThreadContext
+	$(GCC) $(CFLAGS) $<
+
+.c.obj:
+	$(GCC) $(CFLAGS)
+
+ifndef LDNOMAP
+  LFLAGS_LIBSA = -Xlinker --version-script=mapfile
+endif
+
+$(LIBSA): $(OBJS) mapfile
+	if [ ! -d $(ARCH) ] ; then mkdir $(ARCH) ; fi
+	$(GCC) -shared $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
+
+test.o: $(LIBSA) test.c
+	$(GCC) -c -o test.o -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) test.c
+
+test: test.o
+	$(GCC) -o test test.o -L$(ARCH) -lsaproc $(LIBS)
+
+clean:
+	rm -f $(LIBSA)
+	rm -f $(OBJS)
+	rm -f test.o
+	-rmdir $(ARCH)
+
diff --git a/hotspot/agent/src/os/bsd/StubDebuggerLocal.c b/hotspot/agent/src/os/bsd/StubDebuggerLocal.c
new file mode 100644
index 0000000..bce0bab
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/StubDebuggerLocal.c
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include <stdlib.h>
+#include <jni.h>
+
+#define CHECK_EXCEPTION_(value) if ((*env)->ExceptionOccurred(env)) { return value; }
+#define CHECK_EXCEPTION if ((*env)->ExceptionOccurred(env)) { return;}
+#define THROW_NEW_DEBUGGER_EXCEPTION_(str, value) { throw_new_debugger_exception(env, str); return value; }
+#define THROW_NEW_DEBUGGER_EXCEPTION(str) { throw_new_debugger_exception(env, str); return;}
+
+static void throw_new_debugger_exception(JNIEnv* env, const char* errMsg) {
+  (*env)->ThrowNew(env, (*env)->FindClass(env, "sun/jvm/hotspot/debugger/DebuggerException"), errMsg);
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    init0
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_init0
+  (JNIEnv *env, jclass cls) {
+}
+
+JNIEXPORT jint JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getAddressSize
+  (JNIEnv *env, jclass cls)
+{
+#ifdef _LP64
+ return 8;
+#else
+ return 4;
+#endif
+
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    attach0
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__I
+  (JNIEnv *env, jobject this_obj, jint jpid) {
+
+  THROW_NEW_DEBUGGER_EXCEPTION("Can't attach to the process");
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    attach0
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__Ljava_lang_String_2Ljava_lang_String_2
+  (JNIEnv *env, jobject this_obj, jstring execName, jstring coreName) {
+  THROW_NEW_DEBUGGER_EXCEPTION("Can't attach to the core file");
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    detach0
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_detach0
+  (JNIEnv *env, jobject this_obj) {
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    lookupByName0
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)J
+ */
+JNIEXPORT jlong JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByName0
+  (JNIEnv *env, jobject this_obj, jstring objectName, jstring symbolName) {
+  return 0;
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    lookupByAddress0
+ * Signature: (J)Lsun/jvm/hotspot/debugger/cdbg/ClosestSymbol;
+ */
+JNIEXPORT jobject JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByAddress0
+  (JNIEnv *env, jobject this_obj, jlong addr) {
+  return 0;
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
+ * Method:    readBytesFromProcess0
+ * Signature: (JJ)Lsun/jvm/hotspot/debugger/ReadResult;
+ */
+JNIEXPORT jbyteArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_readBytesFromProcess0
+  (JNIEnv *env, jobject this_obj, jlong addr, jlong numBytes) {
+  return 0;
+}
+
+JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getThreadIntegerRegisterSet0
+  (JNIEnv *env, jobject this_obj, jint lwp_id) {
+  return 0;
+}
diff --git a/hotspot/agent/src/os/bsd/elfmacros.h b/hotspot/agent/src/os/bsd/elfmacros.h
new file mode 100644
index 0000000..0d089c2
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/elfmacros.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef _ELFMACROS_H_
+#define _ELFMACROS_H_
+
+#define ELF_NHDR        Elf_Note
+
+#if defined(_LP64)
+#define ELF_EHDR        Elf64_Ehdr
+#define ELF_SHDR        Elf64_Shdr
+#define ELF_PHDR        Elf64_Phdr
+#define ELF_SYM         Elf64_Sym
+#define ELF_DYN         Elf64_Dyn
+#define ELF_ADDR        Elf64_Addr
+
+#ifndef ELF_ST_TYPE
+#define ELF_ST_TYPE     ELF64_ST_TYPE
+#endif
+
+#else
+
+#define ELF_EHDR        Elf32_Ehdr
+#define ELF_SHDR        Elf32_Shdr
+#define ELF_PHDR        Elf32_Phdr
+#define ELF_SYM         Elf32_Sym
+#define ELF_DYN         Elf32_Dyn
+#define ELF_ADDR        Elf32_Addr
+
+#ifndef ELF_ST_TYPE
+#define ELF_ST_TYPE     ELF32_ST_TYPE
+#endif
+
+#endif
+
+
+#endif /* _ELFMACROS_H_ */
diff --git a/hotspot/agent/src/os/bsd/libproc.h b/hotspot/agent/src/os/bsd/libproc.h
new file mode 100644
index 0000000..74bb84c
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/libproc.h
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef _LIBPROC_H_
+#define _LIBPROC_H_
+
+#include <unistd.h>
+#include <stdint.h>
+#include <machine/reg.h>
+#include <proc_service.h>
+
+#if defined(sparc) || defined(sparcv9)
+/*
+  If _LP64 is defined ptrace.h should be taken from /usr/include/asm-sparc64
+  otherwise it should be from /usr/include/asm-sparc
+  These two files define pt_regs structure differently
+*/
+#ifdef _LP64
+#include "asm-sparc64/ptrace.h"
+#else
+#include "asm-sparc/ptrace.h"
+#endif
+
+#endif //sparc or sparcv9
+
+/************************************************************************************
+
+0. This is very minimal subset of Solaris libproc just enough for current application.
+Please note that the bulk of the functionality is from proc_service interface. This
+adds Pgrab__ and some missing stuff. We hide the difference b/w live process and core
+file by this interface.
+
+1. pthread_id is unique. We store this in OSThread::_pthread_id in JVM code.
+
+2. All threads see the same pid when they call getpid().
+We used to save the result of ::getpid() call in OSThread::_thread_id.
+Because gettid returns actual pid of thread (lwp id), this is
+unique again. We therefore use OSThread::_thread_id as unique identifier.
+
+3. There is a unique LWP id under both thread libraries. libthread_db  maps pthread_id
+to its underlying lwp_id under both the thread libraries. thread_info.lwp_id stores
+lwp_id of the thread. The lwp id is nothing but the actual pid of clone'd processes. But
+unfortunately libthread_db does not work very well for core dumps. So, we get pthread_id
+only for processes. For core dumps, we don't use libthread_db at all (like gdb).
+
+4. ptrace operates on this LWP id under both the thread libraries. When we say 'pid' for
+ptrace call, we refer to lwp_id of the thread.
+
+5. for core file, we parse ELF files and read data from them. For processes we  use
+combination of ptrace and /proc calls.
+
+*************************************************************************************/
+
+// This C bool type must be int for compatibility with BSD calls and
+// it would be a mistake to equivalence it to C++ bool on many platforms
+
+typedef int bool;
+#define true  1
+#define false 0
+
+struct ps_prochandle;
+
+// attach to a process
+struct ps_prochandle* Pgrab(pid_t pid);
+
+// attach to a core dump
+struct ps_prochandle* Pgrab_core(const char* execfile, const char* corefile);
+
+// release a process or core
+void Prelease(struct ps_prochandle* ph);
+
+// functions not directly available in Solaris libproc
+
+// initialize libproc (call this only once per app)
+// pass true to make library verbose
+bool init_libproc(bool verbose);
+
+// get number of threads
+int get_num_threads(struct ps_prochandle* ph);
+
+// get lwp_id of n'th thread
+lwpid_t get_lwp_id(struct ps_prochandle* ph, int index);
+
+// get regs for a given lwp
+bool get_lwp_regs(struct ps_prochandle* ph, lwpid_t lid, struct reg* regs);
+
+// get number of shared objects
+int get_num_libs(struct ps_prochandle* ph);
+
+// get name of n'th lib
+const char* get_lib_name(struct ps_prochandle* ph, int index);
+
+// get base of lib
+uintptr_t get_lib_base(struct ps_prochandle* ph, int index);
+
+// returns true if given library is found in lib list
+bool find_lib(struct ps_prochandle* ph, const char *lib_name);
+
+// symbol lookup
+uintptr_t lookup_symbol(struct ps_prochandle* ph,  const char* object_name,
+                       const char* sym_name);
+
+// address->nearest symbol lookup. return NULL for no symbol
+const char* symbol_for_pc(struct ps_prochandle* ph, uintptr_t addr, uintptr_t* poffset);
+
+#endif //__LIBPROC_H_
diff --git a/hotspot/agent/src/os/bsd/libproc_impl.c b/hotspot/agent/src/os/bsd/libproc_impl.c
new file mode 100644
index 0000000..4f2d282
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/libproc_impl.c
@@ -0,0 +1,452 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <thread_db.h>
+#include "libproc_impl.h"
+
+static const char* alt_root = NULL;
+static int alt_root_len = -1;
+
+#define SA_ALTROOT "SA_ALTROOT"
+
+static void init_alt_root() {
+   if (alt_root_len == -1) {
+      alt_root = getenv(SA_ALTROOT);
+      if (alt_root) {
+         alt_root_len = strlen(alt_root);
+      } else {
+         alt_root_len = 0;
+      }
+   }
+}
+
+int pathmap_open(const char* name) {
+   int fd;
+   char alt_path[PATH_MAX + 1];
+
+   init_alt_root();
+   fd = open(name, O_RDONLY);
+   if (fd >= 0) {
+      return fd;
+   }
+
+   if (alt_root_len > 0) {
+      strcpy(alt_path, alt_root);
+      strcat(alt_path, name);
+      fd = open(alt_path, O_RDONLY);
+      if (fd >= 0) {
+         print_debug("path %s substituted for %s\n", alt_path, name);
+         return fd;
+      }
+
+      if (strrchr(name, '/')) {
+         strcpy(alt_path, alt_root);
+         strcat(alt_path, strrchr(name, '/'));
+         fd = open(alt_path, O_RDONLY);
+         if (fd >= 0) {
+            print_debug("path %s substituted for %s\n", alt_path, name);
+            return fd;
+         }
+      }
+   }
+
+   return -1;
+}
+
+static bool _libsaproc_debug;
+
+void print_debug(const char* format,...) {
+   if (_libsaproc_debug) {
+     va_list alist;
+
+     va_start(alist, format);
+     fputs("libsaproc DEBUG: ", stderr);
+     vfprintf(stderr, format, alist);
+     va_end(alist);
+   }
+}
+
+bool is_debug() {
+   return _libsaproc_debug;
+}
+
+// initialize libproc
+bool init_libproc(bool debug) {
+   // init debug mode
+   _libsaproc_debug = debug;
+
+   // initialize the thread_db library
+   if (td_init() != TD_OK) {
+     print_debug("libthread_db's td_init failed\n");
+     return false;
+   }
+
+   return true;
+}
+
+static void destroy_lib_info(struct ps_prochandle* ph) {
+   lib_info* lib = ph->libs;
+   while (lib) {
+     lib_info *next = lib->next;
+     if (lib->symtab) {
+        destroy_symtab(lib->symtab);
+     }
+     free(lib);
+     lib = next;
+   }
+}
+
+static void destroy_thread_info(struct ps_prochandle* ph) {
+   thread_info* thr = ph->threads;
+   while (thr) {
+     thread_info *next = thr->next;
+     free(thr);
+     thr = next;
+   }
+}
+
+// ps_prochandle cleanup
+
+// ps_prochandle cleanup
+void Prelease(struct ps_prochandle* ph) {
+   // do the "derived class" clean-up first
+   ph->ops->release(ph);
+   destroy_lib_info(ph);
+   destroy_thread_info(ph);
+   free(ph);
+}
+
+lib_info* add_lib_info(struct ps_prochandle* ph, const char* libname, uintptr_t base) {
+   return add_lib_info_fd(ph, libname, -1, base);
+}
+
+lib_info* add_lib_info_fd(struct ps_prochandle* ph, const char* libname, int fd, uintptr_t base) {
+   lib_info* newlib;
+
+   if ( (newlib = (lib_info*) calloc(1, sizeof(struct lib_info))) == NULL) {
+      print_debug("can't allocate memory for lib_info\n");
+      return NULL;
+   }
+
+   strncpy(newlib->name, libname, sizeof(newlib->name));
+   newlib->base = base;
+
+   if (fd == -1) {
+      if ( (newlib->fd = pathmap_open(newlib->name)) < 0) {
+         print_debug("can't open shared object %s\n", newlib->name);
+         free(newlib);
+         return NULL;
+      }
+   } else {
+      newlib->fd = fd;
+   }
+
+   // check whether we have got an ELF file. /proc/<pid>/map
+   // gives out all file mappings and not just shared objects
+   if (is_elf_file(newlib->fd) == false) {
+      close(newlib->fd);
+      free(newlib);
+      return NULL;
+   }
+
+   newlib->symtab = build_symtab(newlib->fd);
+   if (newlib->symtab == NULL) {
+      print_debug("symbol table build failed for %s\n", newlib->name);
+   }
+   else {
+      print_debug("built symbol table for %s\n", newlib->name);
+   }
+
+   // even if symbol table building fails, we add the lib_info.
+   // This is because we may need to read from the ELF file for core file
+   // address read functionality. lookup_symbol checks for NULL symtab.
+   if (ph->libs) {
+      ph->lib_tail->next = newlib;
+      ph->lib_tail = newlib;
+   }  else {
+      ph->libs = ph->lib_tail = newlib;
+   }
+   ph->num_libs++;
+
+   return newlib;
+}
+
+// lookup for a specific symbol
+uintptr_t lookup_symbol(struct ps_prochandle* ph,  const char* object_name,
+                       const char* sym_name) {
+   // ignore object_name. search in all libraries
+   // FIXME: what should we do with object_name?? The library names are obtained
+   // by parsing /proc/<pid>/maps, which may not be the same as object_name.
+   // What we need is a utility to map object_name to real file name, something
+   // dlopen() does by looking at LD_LIBRARY_PATH and /etc/ld.so.cache. For
+   // now, we just ignore object_name and do a global search for the symbol.
+
+   lib_info* lib = ph->libs;
+   while (lib) {
+      if (lib->symtab) {
+         uintptr_t res = search_symbol(lib->symtab, lib->base, sym_name, NULL);
+         if (res) return res;
+      }
+      lib = lib->next;
+   }
+
+   print_debug("lookup failed for symbol '%s' in obj '%s'\n",
+                          sym_name, object_name);
+   return (uintptr_t) NULL;
+}
+
+
+const char* symbol_for_pc(struct ps_prochandle* ph, uintptr_t addr, uintptr_t* poffset) {
+   const char* res = NULL;
+   lib_info* lib = ph->libs;
+   while (lib) {
+      if (lib->symtab && addr >= lib->base) {
+         res = nearest_symbol(lib->symtab, addr - lib->base, poffset);
+         if (res) return res;
+      }
+      lib = lib->next;
+   }
+   return NULL;
+}
+
+// add a thread to ps_prochandle
+thread_info* add_thread_info(struct ps_prochandle* ph, pthread_t pthread_id, lwpid_t lwp_id) {
+   thread_info* newthr;
+   if ( (newthr = (thread_info*) calloc(1, sizeof(thread_info))) == NULL) {
+      print_debug("can't allocate memory for thread_info\n");
+      return NULL;
+   }
+
+   // initialize thread info
+   newthr->pthread_id = pthread_id;
+   newthr->lwp_id = lwp_id;
+
+   // add new thread to the list
+   newthr->next = ph->threads;
+   ph->threads = newthr;
+   ph->num_threads++;
+   return newthr;
+}
+
+
+// struct used for client data from thread_db callback
+struct thread_db_client_data {
+   struct ps_prochandle* ph;
+   thread_info_callback callback;
+};
+
+// callback function for libthread_db
+static int thread_db_callback(const td_thrhandle_t *th_p, void *data) {
+  struct thread_db_client_data* ptr = (struct thread_db_client_data*) data;
+  td_thrinfo_t ti;
+  td_err_e err;
+
+  memset(&ti, 0, sizeof(ti));
+  err = td_thr_get_info(th_p, &ti);
+  if (err != TD_OK) {
+    print_debug("libthread_db : td_thr_get_info failed, can't get thread info\n");
+    return err;
+  }
+
+  print_debug("thread_db : pthread %d (lwp %d)\n", ti.ti_tid, ti.ti_lid);
+
+  if (ptr->callback(ptr->ph, (pthread_t)ti.ti_tid, ti.ti_lid) != true)
+    return TD_ERR;
+
+  return TD_OK;
+}
+
+// read thread_info using libthread_db
+bool read_thread_info(struct ps_prochandle* ph, thread_info_callback cb) {
+  struct thread_db_client_data mydata;
+  td_thragent_t* thread_agent = NULL;
+  if (td_ta_new(ph, &thread_agent) != TD_OK) {
+     print_debug("can't create libthread_db agent\n");
+     return false;
+  }
+
+  mydata.ph = ph;
+  mydata.callback = cb;
+
+  // we use libthread_db iterator to iterate thru list of threads.
+  if (td_ta_thr_iter(thread_agent, thread_db_callback, &mydata,
+                 TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY,
+                 TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS) != TD_OK) {
+     td_ta_delete(thread_agent);
+     return false;
+  }
+
+  // delete thread agent
+  td_ta_delete(thread_agent);
+  return true;
+}
+
+
+// get number of threads
+int get_num_threads(struct ps_prochandle* ph) {
+   return ph->num_threads;
+}
+
+// get lwp_id of n'th thread
+lwpid_t get_lwp_id(struct ps_prochandle* ph, int index) {
+   int count = 0;
+   thread_info* thr = ph->threads;
+   while (thr) {
+      if (count == index) {
+         return thr->lwp_id;
+      }
+      count++;
+      thr = thr->next;
+   }
+   return -1;
+}
+
+// get regs for a given lwp
+bool get_lwp_regs(struct ps_prochandle* ph, lwpid_t lwp_id, struct reg* regs) {
+  return ph->ops->get_lwp_regs(ph, lwp_id, regs);
+}
+
+// get number of shared objects
+int get_num_libs(struct ps_prochandle* ph) {
+   return ph->num_libs;
+}
+
+// get name of n'th solib
+const char* get_lib_name(struct ps_prochandle* ph, int index) {
+   int count = 0;
+   lib_info* lib = ph->libs;
+   while (lib) {
+      if (count == index) {
+         return lib->name;
+      }
+      count++;
+      lib = lib->next;
+   }
+   return NULL;
+}
+
+// get base address of a lib
+uintptr_t get_lib_base(struct ps_prochandle* ph, int index) {
+   int count = 0;
+   lib_info* lib = ph->libs;
+   while (lib) {
+      if (count == index) {
+         return lib->base;
+      }
+      count++;
+      lib = lib->next;
+   }
+   return (uintptr_t)NULL;
+}
+
+bool find_lib(struct ps_prochandle* ph, const char *lib_name) {
+  lib_info *p = ph->libs;
+  while (p) {
+    if (strcmp(p->name, lib_name) == 0) {
+      return true;
+    }
+    p = p->next;
+  }
+  return false;
+}
+
+//--------------------------------------------------------------------------
+// proc service functions
+
+// ps_pglobal_lookup() looks up the symbol sym_name in the symbol table
+// of the load object object_name in the target process identified by ph.
+// It returns the symbol's value as an address in the target process in
+// *sym_addr.
+
+ps_err_e ps_pglobal_lookup(struct ps_prochandle *ph, const char *object_name,
+                    const char *sym_name, psaddr_t *sym_addr) {
+  *sym_addr = (psaddr_t) lookup_symbol(ph, object_name, sym_name);
+  return (*sym_addr ? PS_OK : PS_NOSYM);
+}
+
+// read "size" bytes info "buf" from address "addr"
+ps_err_e ps_pread(struct ps_prochandle *ph, psaddr_t  addr,
+                  void *buf, size_t size) {
+  return ph->ops->p_pread(ph, (uintptr_t) addr, buf, size)? PS_OK: PS_ERR;
+}
+
+// write "size" bytes of data to debuggee at address "addr"
+ps_err_e ps_pwrite(struct ps_prochandle *ph, psaddr_t addr,
+                   const void *buf, size_t size) {
+  return ph->ops->p_pwrite(ph, (uintptr_t)addr, buf, size)? PS_OK: PS_ERR;
+}
+
+// fill in ptrace_lwpinfo for lid
+ps_err_e ps_linfo(struct ps_prochandle *ph, lwpid_t lwp_id, void *linfo) {
+  return ph->ops->get_lwp_info(ph, lwp_id, linfo)? PS_OK: PS_ERR;
+}
+
+// needed for when libthread_db is compiled with TD_DEBUG defined
+void
+ps_plog (const char *format, ...)
+{
+  va_list alist;
+
+  va_start(alist, format);
+  vfprintf(stderr, format, alist);
+  va_end(alist);
+}
+
+// ------------------------------------------------------------------------
+// Functions below this point are not yet implemented. They are here only
+// to make the linker happy.
+
+ps_err_e ps_lsetfpregs(struct ps_prochandle *ph, lwpid_t lid, const prfpregset_t *fpregs) {
+  print_debug("ps_lsetfpregs not implemented\n");
+  return PS_OK;
+}
+
+ps_err_e ps_lsetregs(struct ps_prochandle *ph, lwpid_t lid, const prgregset_t gregset) {
+  print_debug("ps_lsetregs not implemented\n");
+  return PS_OK;
+}
+
+ps_err_e  ps_lgetfpregs(struct  ps_prochandle  *ph,  lwpid_t lid, prfpregset_t *fpregs) {
+  print_debug("ps_lgetfpregs not implemented\n");
+  return PS_OK;
+}
+
+ps_err_e ps_lgetregs(struct ps_prochandle *ph, lwpid_t lid, prgregset_t gregset) {
+  print_debug("ps_lgetfpregs not implemented\n");
+  return PS_OK;
+}
+
+ps_err_e ps_lstop(struct ps_prochandle *ph, lwpid_t lid) {
+  print_debug("ps_lstop not implemented\n");
+  return PS_OK;
+}
+
+ps_err_e ps_pcontinue(struct ps_prochandle *ph) {
+  print_debug("ps_pcontinue not implemented\n");
+  return PS_OK;
+}
diff --git a/hotspot/agent/src/os/bsd/libproc_impl.h b/hotspot/agent/src/os/bsd/libproc_impl.h
new file mode 100644
index 0000000..8b9d233
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/libproc_impl.h
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef _LIBPROC_IMPL_H_
+#define _LIBPROC_IMPL_H_
+
+#include <unistd.h>
+#include <limits.h>
+#include "libproc.h"
+#include "symtab.h"
+
+// data structures in this file mimic those of Solaris 8.0 - libproc's Pcontrol.h
+
+#define BUF_SIZE     (PATH_MAX + NAME_MAX + 1)
+
+// list of shared objects
+typedef struct lib_info {
+  char             name[BUF_SIZE];
+  uintptr_t        base;
+  struct symtab*   symtab;
+  int              fd;        // file descriptor for lib
+  struct lib_info* next;
+} lib_info;
+
+// list of threads
+typedef struct thread_info {
+   lwpid_t                  lwp_id;
+   pthread_t                pthread_id; // not used cores, always -1
+   struct reg               regs;       // not for process, core uses for caching regset
+   struct thread_info*      next;
+} thread_info;
+
+// list of virtual memory maps
+typedef struct map_info {
+   int              fd;       // file descriptor
+   off_t            offset;   // file offset of this mapping
+   uintptr_t        vaddr;    // starting virtual address
+   size_t           memsz;    // size of the mapping
+   struct map_info* next;
+} map_info;
+
+// vtable for ps_prochandle
+typedef struct ps_prochandle_ops {
+   // "derived class" clean-up
+   void (*release)(struct ps_prochandle* ph);
+   // read from debuggee
+   bool (*p_pread)(struct ps_prochandle *ph,
+            uintptr_t addr, char *buf, size_t size);
+   // write into debuggee
+   bool (*p_pwrite)(struct ps_prochandle *ph,
+            uintptr_t addr, const char *buf , size_t size);
+   // get integer regset of a thread
+   bool (*get_lwp_regs)(struct ps_prochandle* ph, lwpid_t lwp_id, struct reg* regs);
+   // get info on thread
+   bool (*get_lwp_info)(struct ps_prochandle *ph, lwpid_t lwp_id, void *linfo);
+} ps_prochandle_ops;
+
+// the ps_prochandle
+
+struct core_data {
+   int                core_fd;   // file descriptor of core file
+   int                exec_fd;   // file descriptor of exec file
+   int                interp_fd; // file descriptor of interpreter (ld-elf.so.1)
+   // part of the class sharing workaround
+   int                classes_jsa_fd; // file descriptor of class share archive
+   uintptr_t          dynamic_addr;  // address of dynamic section of a.out
+   uintptr_t          ld_base_addr;  // base address of ld.so
+   size_t             num_maps;  // number of maps.
+   map_info*          maps;      // maps in a linked list
+   // part of the class sharing workaround
+   map_info*          class_share_maps;// class share maps in a linked list
+   map_info**         map_array; // sorted (by vaddr) array of map_info pointers
+};
+
+struct ps_prochandle {
+   ps_prochandle_ops* ops;       // vtable ptr
+   pid_t              pid;
+   int                num_libs;
+   lib_info*          libs;      // head of lib list
+   lib_info*          lib_tail;  // tail of lib list - to append at the end
+   int                num_threads;
+   thread_info*       threads;   // head of thread list
+   struct core_data*  core;      // data only used for core dumps, NULL for process
+};
+
+int pathmap_open(const char* name);
+
+void print_debug(const char* format,...);
+bool is_debug();
+
+typedef bool (*thread_info_callback)(struct ps_prochandle* ph, pthread_t pid, lwpid_t lwpid);
+
+// reads thread info using libthread_db and calls above callback for each thread
+bool read_thread_info(struct ps_prochandle* ph, thread_info_callback cb);
+
+// adds a new shared object to lib list, returns NULL on failure
+lib_info* add_lib_info(struct ps_prochandle* ph, const char* libname, uintptr_t base);
+
+// adds a new shared object to lib list, supply open lib file descriptor as well
+lib_info* add_lib_info_fd(struct ps_prochandle* ph, const char* libname, int fd,
+                          uintptr_t base);
+
+// adds a new thread to threads list, returns NULL on failure
+thread_info* add_thread_info(struct ps_prochandle* ph, pthread_t pthread_id, lwpid_t lwp_id);
+
+// a test for ELF signature without using libelf
+bool is_elf_file(int fd);
+
+#endif //_LIBPROC_IMPL_H_
diff --git a/hotspot/agent/src/os/bsd/mapfile b/hotspot/agent/src/os/bsd/mapfile
new file mode 100644
index 0000000..36b4334
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/mapfile
@@ -0,0 +1,66 @@
+#
+
+#
+# Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+        global:
+
+		# native methods of BsdDebuggerLocal class
+		Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_init0;
+		Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getAddressSize;
+		Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__I;
+		Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__Ljava_lang_String_2Ljava_lang_String_2;
+		Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_detach0;
+		Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByName0;
+		Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByAddress0;
+		Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_readBytesFromProcess0;
+		Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getThreadIntegerRegisterSet0;
+	
+		# proc_service.h functions - to be used by libthread_db
+		ps_getpid;
+		ps_pglobal_lookup;
+		ps_pread;
+		ps_pwrite;
+		ps_lsetfpregs;
+		ps_lsetregs;
+		ps_lgetfpregs;
+		ps_lgetregs;
+		ps_lcontinue;
+		ps_lgetxmmregs;
+		ps_lsetxmmregs;
+		ps_lstop;
+		ps_linfo;
+
+                # used by attach test program
+                init_libproc;
+                Pgrab;
+                Pgrab_core;
+                Prelease;
+	
+	local:
+		*;
+};
diff --git a/hotspot/agent/src/os/bsd/ps_core.c b/hotspot/agent/src/os/bsd/ps_core.c
new file mode 100644
index 0000000..4e2049b
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/ps_core.c
@@ -0,0 +1,1023 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include <jni.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <elf.h>
+#include <link.h>
+#include "libproc_impl.h"
+#include "salibelf.h"
+
+// This file has the libproc implementation to read core files.
+// For live processes, refer to ps_proc.c. Portions of this is adapted
+// /modelled after Solaris libproc.so (in particular Pcore.c)
+
+//----------------------------------------------------------------------
+// ps_prochandle cleanup helper functions
+
+// close all file descriptors
+static void close_elf_files(struct ps_prochandle* ph) {
+   lib_info* lib = NULL;
+
+   // close core file descriptor
+   if (ph->core->core_fd >= 0)
+     close(ph->core->core_fd);
+
+   // close exec file descriptor
+   if (ph->core->exec_fd >= 0)
+     close(ph->core->exec_fd);
+
+   // close interp file descriptor
+   if (ph->core->interp_fd >= 0)
+     close(ph->core->interp_fd);
+
+   // close class share archive file
+   if (ph->core->classes_jsa_fd >= 0)
+     close(ph->core->classes_jsa_fd);
+
+   // close all library file descriptors
+   lib = ph->libs;
+   while (lib) {
+      int fd = lib->fd;
+      if (fd >= 0 && fd != ph->core->exec_fd) close(fd);
+      lib = lib->next;
+   }
+}
+
+// clean all map_info stuff
+static void destroy_map_info(struct ps_prochandle* ph) {
+  map_info* map = ph->core->maps;
+  while (map) {
+     map_info* next = map->next;
+     free(map);
+     map = next;
+  }
+
+  if (ph->core->map_array) {
+     free(ph->core->map_array);
+  }
+
+  // Part of the class sharing workaround
+  map = ph->core->class_share_maps;
+  while (map) {
+     map_info* next = map->next;
+     free(map);
+     map = next;
+  }
+}
+
+// ps_prochandle operations
+static void core_release(struct ps_prochandle* ph) {
+   if (ph->core) {
+      close_elf_files(ph);
+      destroy_map_info(ph);
+      free(ph->core);
+   }
+}
+
+static map_info* allocate_init_map(int fd, off_t offset, uintptr_t vaddr, size_t memsz) {
+   map_info* map;
+   if ( (map = (map_info*) calloc(1, sizeof(map_info))) == NULL) {
+      print_debug("can't allocate memory for map_info\n");
+      return NULL;
+   }
+
+   // initialize map
+   map->fd     = fd;
+   map->offset = offset;
+   map->vaddr  = vaddr;
+   map->memsz  = memsz;
+   return map;
+}
+
+// add map info with given fd, offset, vaddr and memsz
+static map_info* add_map_info(struct ps_prochandle* ph, int fd, off_t offset,
+                             uintptr_t vaddr, size_t memsz) {
+   map_info* map;
+   if ((map = allocate_init_map(fd, offset, vaddr, memsz)) == NULL) {
+      return NULL;
+   }
+
+   // add this to map list
+   map->next  = ph->core->maps;
+   ph->core->maps   = map;
+   ph->core->num_maps++;
+
+   return map;
+}
+
+// Part of the class sharing workaround
+static map_info* add_class_share_map_info(struct ps_prochandle* ph, off_t offset,
+                             uintptr_t vaddr, size_t memsz) {
+   map_info* map;
+   if ((map = allocate_init_map(ph->core->classes_jsa_fd,
+                                offset, vaddr, memsz)) == NULL) {
+      return NULL;
+   }
+
+   map->next = ph->core->class_share_maps;
+   ph->core->class_share_maps = map;
+   return map;
+}
+
+// Return the map_info for the given virtual address.  We keep a sorted
+// array of pointers in ph->map_array, so we can binary search.
+static map_info* core_lookup(struct ps_prochandle *ph, uintptr_t addr)
+{
+   int mid, lo = 0, hi = ph->core->num_maps - 1;
+   map_info *mp;
+
+   while (hi - lo > 1) {
+     mid = (lo + hi) / 2;
+      if (addr >= ph->core->map_array[mid]->vaddr)
+         lo = mid;
+      else
+         hi = mid;
+   }
+
+   if (addr < ph->core->map_array[hi]->vaddr)
+      mp = ph->core->map_array[lo];
+   else
+      mp = ph->core->map_array[hi];
+
+   if (addr >= mp->vaddr && addr < mp->vaddr + mp->memsz)
+      return (mp);
+
+
+   // Part of the class sharing workaround
+   // Unfortunately, we have no way of detecting -Xshare state.
+   // Check out the share maps atlast, if we don't find anywhere.
+   // This is done this way so to avoid reading share pages
+   // ahead of other normal maps. For eg. with -Xshare:off we don't
+   // want to prefer class sharing data to data from core.
+   mp = ph->core->class_share_maps;
+   if (mp) {
+      print_debug("can't locate map_info at 0x%lx, trying class share maps\n",
+             addr);
+   }
+   while (mp) {
+      if (addr >= mp->vaddr && addr < mp->vaddr + mp->memsz) {
+         print_debug("located map_info at 0x%lx from class share maps\n",
+                  addr);
+         return (mp);
+      }
+      mp = mp->next;
+   }
+
+   print_debug("can't locate map_info at 0x%lx\n", addr);
+   return (NULL);
+}
+
+//---------------------------------------------------------------
+// Part of the class sharing workaround:
+//
+// With class sharing, pages are mapped from classes[_g].jsa file.
+// The read-only class sharing pages are mapped as MAP_SHARED,
+// PROT_READ pages. These pages are not dumped into core dump.
+// With this workaround, these pages are read from classes[_g].jsa.
+
+// FIXME: !HACK ALERT!
+// The format of sharing achive file header is needed to read shared heap
+// file mappings. For now, I am hard coding portion of FileMapHeader here.
+// Refer to filemap.hpp.
+
+// FileMapHeader describes the shared space data in the file to be
+// mapped.  This structure gets written to a file.  It is not a class,
+// so that the compilers don't add any compiler-private data to it.
+
+// Refer to CompactingPermGenGen::n_regions in compactingPermGenGen.hpp
+#define NUM_SHARED_MAPS 4
+
+// Refer to FileMapInfo::_current_version in filemap.hpp
+#define CURRENT_ARCHIVE_VERSION 1
+
+struct FileMapHeader {
+  int   _magic;              // identify file type.
+  int   _version;            // (from enum, above.)
+  size_t _alignment;         // how shared archive should be aligned
+
+  struct space_info {
+    int    _file_offset;     // sizeof(this) rounded to vm page size
+    char*  _base;            // copy-on-write base address
+    size_t _capacity;        // for validity checking
+    size_t _used;            // for setting space top on read
+
+    // 4991491 NOTICE These are C++ bool's in filemap.hpp and must match up with
+    // the C type matching the C++ bool type on any given platform. For
+    // Hotspot on BSD we assume the corresponding C type is char but
+    // licensees on BSD versions may need to adjust the type of these fields.
+    char   _read_only;       // read only space?
+    char   _allow_exec;      // executable code in space?
+
+  } _space[NUM_SHARED_MAPS]; // was _space[CompactingPermGenGen::n_regions];
+
+  // Ignore the rest of the FileMapHeader. We don't need those fields here.
+};
+
+static bool read_jboolean(struct ps_prochandle* ph, uintptr_t addr, jboolean* pvalue) {
+   jboolean i;
+   if (ps_pread(ph, (psaddr_t) addr, &i, sizeof(i)) == PS_OK) {
+      *pvalue = i;
+      return true;
+   } else {
+      return false;
+   }
+}
+
+static bool read_pointer(struct ps_prochandle* ph, uintptr_t addr, uintptr_t* pvalue) {
+   uintptr_t uip;
+   if (ps_pread(ph, (psaddr_t) addr, &uip, sizeof(uip)) == PS_OK) {
+      *pvalue = uip;
+      return true;
+   } else {
+      return false;
+   }
+}
+
+// used to read strings from debuggee
+static bool read_string(struct ps_prochandle* ph, uintptr_t addr, char* buf, size_t size) {
+   size_t i = 0;
+   char  c = ' ';
+
+   while (c != '\0') {
+     if (ps_pread(ph, (psaddr_t) addr, &c, sizeof(char)) != PS_OK)
+         return false;
+      if (i < size - 1)
+         buf[i] = c;
+      else // smaller buffer
+         return false;
+      i++; addr++;
+   }
+
+   buf[i] = '\0';
+   return true;
+}
+
+#define USE_SHARED_SPACES_SYM "UseSharedSpaces"
+// mangled name of Arguments::SharedArchivePath
+#define SHARED_ARCHIVE_PATH_SYM "_ZN9Arguments17SharedArchivePathE"
+
+static bool init_classsharing_workaround(struct ps_prochandle* ph) {
+   lib_info* lib = ph->libs;
+   while (lib != NULL) {
+      // we are iterating over shared objects from the core dump. look for
+      // libjvm[_g].so.
+      const char *jvm_name = 0;
+      if ((jvm_name = strstr(lib->name, "/libjvm.so")) != 0 ||
+          (jvm_name = strstr(lib->name, "/libjvm_g.so")) != 0) {
+         char classes_jsa[PATH_MAX];
+         struct FileMapHeader header;
+         size_t n = 0;
+         int fd = -1, m = 0;
+         uintptr_t base = 0, useSharedSpacesAddr = 0;
+         uintptr_t sharedArchivePathAddrAddr = 0, sharedArchivePathAddr = 0;
+         jboolean useSharedSpaces = 0;
+
+         memset(classes_jsa, 0, sizeof(classes_jsa));
+         jvm_name = lib->name;
+         useSharedSpacesAddr = lookup_symbol(ph, jvm_name, USE_SHARED_SPACES_SYM);
+         if (useSharedSpacesAddr == 0) {
+            print_debug("can't lookup 'UseSharedSpaces' flag\n");
+            return false;
+         }
+
+         // Hotspot vm types are not exported to build this library. So
+         // using equivalent type jboolean to read the value of
+         // UseSharedSpaces which is same as hotspot type "bool".
+         if (read_jboolean(ph, useSharedSpacesAddr, &useSharedSpaces) != true) {
+            print_debug("can't read the value of 'UseSharedSpaces' flag\n");
+            return false;
+         }
+
+         if ((int)useSharedSpaces == 0) {
+            print_debug("UseSharedSpaces is false, assuming -Xshare:off!\n");
+            return true;
+         }
+
+         sharedArchivePathAddrAddr = lookup_symbol(ph, jvm_name, SHARED_ARCHIVE_PATH_SYM);
+         if (sharedArchivePathAddrAddr == 0) {
+            print_debug("can't lookup shared archive path symbol\n");
+            return false;
+         }
+
+         if (read_pointer(ph, sharedArchivePathAddrAddr, &sharedArchivePathAddr) != true) {
+            print_debug("can't read shared archive path pointer\n");
+            return false;
+         }
+
+         if (read_string(ph, sharedArchivePathAddr, classes_jsa, sizeof(classes_jsa)) != true) {
+            print_debug("can't read shared archive path value\n");
+            return false;
+         }
+
+         print_debug("looking for %s\n", classes_jsa);
+         // open the class sharing archive file
+         fd = pathmap_open(classes_jsa);
+         if (fd < 0) {
+            print_debug("can't open %s!\n", classes_jsa);
+            ph->core->classes_jsa_fd = -1;
+            return false;
+         } else {
+            print_debug("opened %s\n", classes_jsa);
+         }
+
+         // read FileMapHeader from the file
+         memset(&header, 0, sizeof(struct FileMapHeader));
+         if ((n = read(fd, &header, sizeof(struct FileMapHeader)))
+              != sizeof(struct FileMapHeader)) {
+            print_debug("can't read shared archive file map header from %s\n", classes_jsa);
+            close(fd);
+            return false;
+         }
+
+         // check file magic
+         if (header._magic != 0xf00baba2) {
+            print_debug("%s has bad shared archive file magic number 0x%x, expecing 0xf00baba2\n",
+                        classes_jsa, header._magic);
+            close(fd);
+            return false;
+         }
+
+         // check version
+         if (header._version != CURRENT_ARCHIVE_VERSION) {
+            print_debug("%s has wrong shared archive file version %d, expecting %d\n",
+                        classes_jsa, header._version, CURRENT_ARCHIVE_VERSION);
+            close(fd);
+            return false;
+         }
+
+         ph->core->classes_jsa_fd = fd;
+         // add read-only maps from classes[_g].jsa to the list of maps
+         for (m = 0; m < NUM_SHARED_MAPS; m++) {
+            if (header._space[m]._read_only) {
+               base = (uintptr_t) header._space[m]._base;
+               // no need to worry about the fractional pages at-the-end.
+               // possible fractional pages are handled by core_read_data.
+               add_class_share_map_info(ph, (off_t) header._space[m]._file_offset,
+                         base, (size_t) header._space[m]._used);
+               print_debug("added a share archive map at 0x%lx\n", base);
+            }
+         }
+         return true;
+      }
+      lib = lib->next;
+   }
+   return true;
+}
+
+
+//---------------------------------------------------------------------------
+// functions to handle map_info
+
+// Order mappings based on virtual address.  We use this function as the
+// callback for sorting the array of map_info pointers.
+static int core_cmp_mapping(const void *lhsp, const void *rhsp)
+{
+   const map_info *lhs = *((const map_info **)lhsp);
+   const map_info *rhs = *((const map_info **)rhsp);
+
+   if (lhs->vaddr == rhs->vaddr)
+      return (0);
+
+   return (lhs->vaddr < rhs->vaddr ? -1 : 1);
+}
+
+// we sort map_info by starting virtual address so that we can do
+// binary search to read from an address.
+static bool sort_map_array(struct ps_prochandle* ph) {
+   size_t num_maps = ph->core->num_maps;
+   map_info* map = ph->core->maps;
+   int i = 0;
+
+   // allocate map_array
+   map_info** array;
+   if ( (array = (map_info**) malloc(sizeof(map_info*) * num_maps)) == NULL) {
+      print_debug("can't allocate memory for map array\n");
+      return false;
+   }
+
+   // add maps to array
+   while (map) {
+      array[i] = map;
+      i++;
+      map = map->next;
+   }
+
+   // sort is called twice. If this is second time, clear map array
+   if (ph->core->map_array) free(ph->core->map_array);
+   ph->core->map_array = array;
+   // sort the map_info array by base virtual address.
+   qsort(ph->core->map_array, ph->core->num_maps, sizeof (map_info*),
+            core_cmp_mapping);
+
+   // print map
+   if (is_debug()) {
+      int j = 0;
+      print_debug("---- sorted virtual address map ----\n");
+      for (j = 0; j < ph->core->num_maps; j++) {
+        print_debug("base = 0x%lx\tsize = %d\n", ph->core->map_array[j]->vaddr,
+                                         ph->core->map_array[j]->memsz);
+      }
+   }
+
+   return true;
+}
+
+#ifndef MIN
+#define MIN(x, y) (((x) < (y))? (x): (y))
+#endif
+
+static bool core_read_data(struct ps_prochandle* ph, uintptr_t addr, char *buf, size_t size) {
+   ssize_t resid = size;
+   int page_size=sysconf(_SC_PAGE_SIZE);
+   while (resid != 0) {
+      map_info *mp = core_lookup(ph, addr);
+      uintptr_t mapoff;
+      ssize_t len, rem;
+      off_t off;
+      int fd;
+
+      if (mp == NULL)
+         break;  /* No mapping for this address */
+
+      fd = mp->fd;
+      mapoff = addr - mp->vaddr;
+      len = MIN(resid, mp->memsz - mapoff);
+      off = mp->offset + mapoff;
+
+      if ((len = pread(fd, buf, len, off)) <= 0)
+         break;
+
+      resid -= len;
+      addr += len;
+      buf = (char *)buf + len;
+
+      // mappings always start at page boundary. But, may end in fractional
+      // page. fill zeros for possible fractional page at the end of a mapping.
+      rem = mp->memsz % page_size;
+      if (rem > 0) {
+         rem = page_size - rem;
+         len = MIN(resid, rem);
+         resid -= len;
+         addr += len;
+         // we are not assuming 'buf' to be zero initialized.
+         memset(buf, 0, len);
+         buf += len;
+      }
+   }
+
+   if (resid) {
+      print_debug("core read failed for %d byte(s) @ 0x%lx (%d more bytes)\n",
+              size, addr, resid);
+      return false;
+   } else {
+      return true;
+   }
+}
+
+// null implementation for write
+static bool core_write_data(struct ps_prochandle* ph,
+                             uintptr_t addr, const char *buf , size_t size) {
+   return false;
+}
+
+static bool core_get_lwp_regs(struct ps_prochandle* ph, lwpid_t lwp_id,
+                          struct reg* regs) {
+   // for core we have cached the lwp regs from NOTE section
+   thread_info* thr = ph->threads;
+   while (thr) {
+     if (thr->lwp_id == lwp_id) {
+       memcpy(regs, &thr->regs, sizeof(struct reg));
+       return true;
+     }
+     thr = thr->next;
+   }
+   return false;
+}
+
+static bool core_get_lwp_info(struct ps_prochandle *ph, lwpid_t lwp_id, void *linfo) {
+   print_debug("core_get_lwp_info not implemented\n");
+   return false;
+}
+
+static ps_prochandle_ops core_ops = {
+   .release=  core_release,
+   .p_pread=  core_read_data,
+   .p_pwrite= core_write_data,
+   .get_lwp_regs= core_get_lwp_regs,
+   .get_lwp_info= core_get_lwp_info
+};
+
+// read regs and create thread from NT_PRSTATUS entries from core file
+static bool core_handle_prstatus(struct ps_prochandle* ph, const char* buf, size_t nbytes) {
+   // we have to read prstatus_t from buf
+   // assert(nbytes == sizeof(prstaus_t), "size mismatch on prstatus_t");
+   prstatus_t* prstat = (prstatus_t*) buf;
+   thread_info* newthr;
+   print_debug("got integer regset for lwp %d\n", prstat->pr_pid);
+   // we set pthread_t to -1 for core dump
+   if((newthr = add_thread_info(ph, (pthread_t) -1,  prstat->pr_pid)) == NULL)
+      return false;
+
+   // copy regs
+   memcpy(&newthr->regs, &prstat->pr_reg, sizeof(struct reg));
+
+   if (is_debug()) {
+      print_debug("integer regset\n");
+#ifdef i386
+      // print the regset
+      print_debug("\teax = 0x%x\n", newthr->regs.r_eax);
+      print_debug("\tebx = 0x%x\n", newthr->regs.r_ebx);
+      print_debug("\tecx = 0x%x\n", newthr->regs.r_ecx);
+      print_debug("\tedx = 0x%x\n", newthr->regs.r_edx);
+      print_debug("\tesp = 0x%x\n", newthr->regs.r_esp);
+      print_debug("\tebp = 0x%x\n", newthr->regs.r_ebp);
+      print_debug("\tesi = 0x%x\n", newthr->regs.r_esi);
+      print_debug("\tedi = 0x%x\n", newthr->regs.r_edi);
+      print_debug("\teip = 0x%x\n", newthr->regs.r_eip);
+#endif
+
+#if defined(amd64) || defined(x86_64)
+      // print the regset
+      print_debug("\tr15 = 0x%lx\n", newthr->regs.r_r15);
+      print_debug("\tr14 = 0x%lx\n", newthr->regs.r_r14);
+      print_debug("\tr13 = 0x%lx\n", newthr->regs.r_r13);
+      print_debug("\tr12 = 0x%lx\n", newthr->regs.r_r12);
+      print_debug("\trbp = 0x%lx\n", newthr->regs.r_rbp);
+      print_debug("\trbx = 0x%lx\n", newthr->regs.r_rbx);
+      print_debug("\tr11 = 0x%lx\n", newthr->regs.r_r11);
+      print_debug("\tr10 = 0x%lx\n", newthr->regs.r_r10);
+      print_debug("\tr9 = 0x%lx\n", newthr->regs.r_r9);
+      print_debug("\tr8 = 0x%lx\n", newthr->regs.r_r8);
+      print_debug("\trax = 0x%lx\n", newthr->regs.r_rax);
+      print_debug("\trcx = 0x%lx\n", newthr->regs.r_rcx);
+      print_debug("\trdx = 0x%lx\n", newthr->regs.r_rdx);
+      print_debug("\trsi = 0x%lx\n", newthr->regs.r_rsi);
+      print_debug("\trdi = 0x%lx\n", newthr->regs.r_rdi);
+      //print_debug("\torig_rax = 0x%lx\n", newthr->regs.orig_rax);
+      print_debug("\trip = 0x%lx\n", newthr->regs.r_rip);
+      print_debug("\tcs = 0x%lx\n", newthr->regs.r_cs);
+      //print_debug("\teflags = 0x%lx\n", newthr->regs.eflags);
+      print_debug("\trsp = 0x%lx\n", newthr->regs.r_rsp);
+      print_debug("\tss = 0x%lx\n", newthr->regs.r_ss);
+      //print_debug("\tfs_base = 0x%lx\n", newthr->regs.fs_base);
+      //print_debug("\tgs_base = 0x%lx\n", newthr->regs.gs_base);
+      //print_debug("\tds = 0x%lx\n", newthr->regs.ds);
+      //print_debug("\tes = 0x%lx\n", newthr->regs.es);
+      //print_debug("\tfs = 0x%lx\n", newthr->regs.fs);
+      //print_debug("\tgs = 0x%lx\n", newthr->regs.gs);
+#endif
+   }
+
+   return true;
+}
+
+#define ROUNDUP(x, y)  ((((x)+((y)-1))/(y))*(y))
+
+// read NT_PRSTATUS entries from core NOTE segment
+static bool core_handle_note(struct ps_prochandle* ph, ELF_PHDR* note_phdr) {
+   char* buf = NULL;
+   char* p = NULL;
+   size_t size = note_phdr->p_filesz;
+
+   // we are interested in just prstatus entries. we will ignore the rest.
+   // Advance the seek pointer to the start of the PT_NOTE data
+   if (lseek(ph->core->core_fd, note_phdr->p_offset, SEEK_SET) == (off_t)-1) {
+      print_debug("failed to lseek to PT_NOTE data\n");
+      return false;
+   }
+
+   // Now process the PT_NOTE structures.  Each one is preceded by
+   // an Elf{32/64}_Nhdr structure describing its type and size.
+   if ( (buf = (char*) malloc(size)) == NULL) {
+      print_debug("can't allocate memory for reading core notes\n");
+      goto err;
+   }
+
+   // read notes into buffer
+   if (read(ph->core->core_fd, buf, size) != size) {
+      print_debug("failed to read notes, core file must have been truncated\n");
+      goto err;
+   }
+
+   p = buf;
+   while (p < buf + size) {
+      ELF_NHDR* notep = (ELF_NHDR*) p;
+      char* descdata  = p + sizeof(ELF_NHDR) + ROUNDUP(notep->n_namesz, 4);
+      print_debug("Note header with n_type = %d and n_descsz = %u\n",
+                                   notep->n_type, notep->n_descsz);
+
+      if (notep->n_type == NT_PRSTATUS) {
+         if (core_handle_prstatus(ph, descdata, notep->n_descsz) != true)
+            return false;
+      }
+      p = descdata + ROUNDUP(notep->n_descsz, 4);
+   }
+
+   free(buf);
+   return true;
+
+err:
+   if (buf) free(buf);
+   return false;
+}
+
+// read all segments from core file
+static bool read_core_segments(struct ps_prochandle* ph, ELF_EHDR* core_ehdr) {
+   int i = 0;
+   ELF_PHDR* phbuf = NULL;
+   ELF_PHDR* core_php = NULL;
+
+   if ((phbuf =  read_program_header_table(ph->core->core_fd, core_ehdr)) == NULL)
+      return false;
+
+   /*
+    * Now iterate through the program headers in the core file.
+    * We're interested in two types of Phdrs: PT_NOTE (which
+    * contains a set of saved /proc structures), and PT_LOAD (which
+    * represents a memory mapping from the process's address space).
+    *
+    * Difference b/w Solaris PT_NOTE and BSD PT_NOTE:
+    *
+    *     In Solaris there are two PT_NOTE segments the first PT_NOTE (if present)
+    *     contains /proc structs in the pre-2.6 unstructured /proc format. the last
+    *     PT_NOTE has data in new /proc format.
+    *
+    *     In Solaris, there is only one pstatus (process status). pstatus contains
+    *     integer register set among other stuff. For each LWP, we have one lwpstatus
+    *     entry that has integer regset for that LWP.
+    *
+    *     Linux threads are actually 'clone'd processes. To support core analysis
+    *     of "multithreaded" process, Linux creates more than one pstatus (called
+    *     "prstatus") entry in PT_NOTE. Each prstatus entry has integer regset for one
+    *     "thread". Please refer to Linux kernel src file 'fs/binfmt_elf.c', in particular
+    *     function "elf_core_dump".
+    */
+
+    for (core_php = phbuf, i = 0; i < core_ehdr->e_phnum; i++) {
+      switch (core_php->p_type) {
+         case PT_NOTE:
+            if (core_handle_note(ph, core_php) != true) goto err;
+            break;
+
+         case PT_LOAD: {
+            if (core_php->p_filesz != 0) {
+               if (add_map_info(ph, ph->core->core_fd, core_php->p_offset,
+                  core_php->p_vaddr, core_php->p_filesz) == NULL) goto err;
+            }
+            break;
+         }
+      }
+
+      core_php++;
+   }
+
+   free(phbuf);
+   return true;
+err:
+   free(phbuf);
+   return false;
+}
+
+// read segments of a shared object
+static bool read_lib_segments(struct ps_prochandle* ph, int lib_fd, ELF_EHDR* lib_ehdr, uintptr_t lib_base) {
+   int i = 0;
+   ELF_PHDR* phbuf;
+   ELF_PHDR* lib_php = NULL;
+
+   if ((phbuf = read_program_header_table(lib_fd, lib_ehdr)) == NULL)
+      return false;
+
+   // we want to process only PT_LOAD segments that are not writable.
+   // i.e., text segments. The read/write/exec (data) segments would
+   // have been already added from core file segments.
+   for (lib_php = phbuf, i = 0; i < lib_ehdr->e_phnum; i++) {
+      if ((lib_php->p_type == PT_LOAD) && !(lib_php->p_flags & PF_W) && (lib_php->p_filesz != 0)) {
+         if (add_map_info(ph, lib_fd, lib_php->p_offset, lib_php->p_vaddr + lib_base, lib_php->p_filesz) == NULL)
+            goto err;
+      }
+      lib_php++;
+   }
+
+   free(phbuf);
+   return true;
+err:
+   free(phbuf);
+   return false;
+}
+
+// process segments from interpreter (ld-elf.so.1)
+static bool read_interp_segments(struct ps_prochandle* ph) {
+   ELF_EHDR interp_ehdr;
+
+   if (read_elf_header(ph->core->interp_fd, &interp_ehdr) != true) {
+       print_debug("interpreter is not a valid ELF file\n");
+       return false;
+   }
+
+   if (read_lib_segments(ph, ph->core->interp_fd, &interp_ehdr, ph->core->ld_base_addr) != true) {
+       print_debug("can't read segments of interpreter\n");
+       return false;
+   }
+
+   return true;
+}
+
+// process segments of a a.out
+static bool read_exec_segments(struct ps_prochandle* ph, ELF_EHDR* exec_ehdr) {
+   int i = 0;
+   ELF_PHDR* phbuf = NULL;
+   ELF_PHDR* exec_php = NULL;
+
+   if ((phbuf = read_program_header_table(ph->core->exec_fd, exec_ehdr)) == NULL)
+      return false;
+
+   for (exec_php = phbuf, i = 0; i < exec_ehdr->e_phnum; i++) {
+      switch (exec_php->p_type) {
+
+         // add mappings for PT_LOAD segments
+         case PT_LOAD: {
+            // add only non-writable segments of non-zero filesz
+            if (!(exec_php->p_flags & PF_W) && exec_php->p_filesz != 0) {
+               if (add_map_info(ph, ph->core->exec_fd, exec_php->p_offset, exec_php->p_vaddr, exec_php->p_filesz) == NULL) goto err;
+            }
+            break;
+         }
+
+         // read the interpreter and it's segments
+         case PT_INTERP: {
+            char interp_name[BUF_SIZE];
+
+            pread(ph->core->exec_fd, interp_name, MIN(exec_php->p_filesz, BUF_SIZE), exec_php->p_offset);
+            print_debug("ELF interpreter %s\n", interp_name);
+            // read interpreter segments as well
+            if ((ph->core->interp_fd = pathmap_open(interp_name)) < 0) {
+               print_debug("can't open runtime loader\n");
+               goto err;
+            }
+            break;
+         }
+
+         // from PT_DYNAMIC we want to read address of first link_map addr
+         case PT_DYNAMIC: {
+            ph->core->dynamic_addr = exec_php->p_vaddr;
+            print_debug("address of _DYNAMIC is 0x%lx\n", ph->core->dynamic_addr);
+            break;
+         }
+
+      } // switch
+      exec_php++;
+   } // for
+
+   free(phbuf);
+   return true;
+err:
+   free(phbuf);
+   return false;
+}
+
+
+#define FIRST_LINK_MAP_OFFSET offsetof(struct r_debug,  r_map)
+#define LD_BASE_OFFSET        offsetof(struct r_debug,  r_ldbase)
+#define LINK_MAP_ADDR_OFFSET  offsetof(struct link_map, l_addr)
+#define LINK_MAP_NAME_OFFSET  offsetof(struct link_map, l_name)
+#define LINK_MAP_NEXT_OFFSET  offsetof(struct link_map, l_next)
+
+// read shared library info from runtime linker's data structures.
+// This work is done by librtlb_db in Solaris
+static bool read_shared_lib_info(struct ps_prochandle* ph) {
+   uintptr_t addr = ph->core->dynamic_addr;
+   uintptr_t debug_base;
+   uintptr_t first_link_map_addr;
+   uintptr_t ld_base_addr;
+   uintptr_t link_map_addr;
+   uintptr_t lib_base_diff;
+   uintptr_t lib_base;
+   uintptr_t lib_name_addr;
+   char lib_name[BUF_SIZE];
+   ELF_DYN dyn;
+   ELF_EHDR elf_ehdr;
+   int lib_fd;
+
+   // _DYNAMIC has information of the form
+   //         [tag] [data] [tag] [data] .....
+   // Both tag and data are pointer sized.
+   // We look for dynamic info with DT_DEBUG. This has shared object info.
+   // refer to struct r_debug in link.h
+
+   dyn.d_tag = DT_NULL;
+   while (dyn.d_tag != DT_DEBUG) {
+      if (ps_pread(ph, (psaddr_t) addr, &dyn, sizeof(ELF_DYN)) != PS_OK) {
+         print_debug("can't read debug info from _DYNAMIC\n");
+         return false;
+      }
+      addr += sizeof(ELF_DYN);
+   }
+
+   // we have got Dyn entry with DT_DEBUG
+   debug_base = dyn.d_un.d_ptr;
+   // at debug_base we have struct r_debug. This has first link map in r_map field
+   if (ps_pread(ph, (psaddr_t) debug_base + FIRST_LINK_MAP_OFFSET,
+                 &first_link_map_addr, sizeof(uintptr_t)) != PS_OK) {
+      print_debug("can't read first link map address\n");
+      return false;
+   }
+
+   // read ld_base address from struct r_debug
+   // XXX: There is no r_ldbase member on BSD
+/*
+   if (ps_pread(ph, (psaddr_t) debug_base + LD_BASE_OFFSET, &ld_base_addr,
+                 sizeof(uintptr_t)) != PS_OK) {
+      print_debug("can't read ld base address\n");
+      return false;
+   }
+   ph->core->ld_base_addr = ld_base_addr;
+*/
+   ph->core->ld_base_addr = 0;
+
+   print_debug("interpreter base address is 0x%lx\n", ld_base_addr);
+
+   // now read segments from interp (i.e ld-elf.so.1)
+   if (read_interp_segments(ph) != true)
+      return false;
+
+   // after adding interpreter (ld.so) mappings sort again
+   if (sort_map_array(ph) != true)
+      return false;
+
+   print_debug("first link map is at 0x%lx\n", first_link_map_addr);
+
+   link_map_addr = first_link_map_addr;
+   while (link_map_addr != 0) {
+      // read library base address of the .so. Note that even though <sys/link.h> calls
+      // link_map->l_addr as "base address",  this is * not * really base virtual
+      // address of the shared object. This is actually the difference b/w the virtual
+      // address mentioned in shared object and the actual virtual base where runtime
+      // linker loaded it. We use "base diff" in read_lib_segments call below.
+
+      if (ps_pread(ph, (psaddr_t) link_map_addr + LINK_MAP_ADDR_OFFSET,
+                   &lib_base_diff, sizeof(uintptr_t)) != PS_OK) {
+         print_debug("can't read shared object base address diff\n");
+         return false;
+      }
+
+      // read address of the name
+      if (ps_pread(ph, (psaddr_t) link_map_addr + LINK_MAP_NAME_OFFSET,
+                    &lib_name_addr, sizeof(uintptr_t)) != PS_OK) {
+         print_debug("can't read address of shared object name\n");
+         return false;
+      }
+
+      // read name of the shared object
+      if (read_string(ph, (uintptr_t) lib_name_addr, lib_name, sizeof(lib_name)) != true) {
+         print_debug("can't read shared object name\n");
+         return false;
+      }
+
+      if (lib_name[0] != '\0') {
+         // ignore empty lib names
+         lib_fd = pathmap_open(lib_name);
+
+         if (lib_fd < 0) {
+            print_debug("can't open shared object %s\n", lib_name);
+            // continue with other libraries...
+         } else {
+            if (read_elf_header(lib_fd, &elf_ehdr)) {
+               lib_base = lib_base_diff + find_base_address(lib_fd, &elf_ehdr);
+               print_debug("reading library %s @ 0x%lx [ 0x%lx ]\n",
+                           lib_name, lib_base, lib_base_diff);
+               // while adding library mappings we need to use "base difference".
+               if (! read_lib_segments(ph, lib_fd, &elf_ehdr, lib_base_diff)) {
+                  print_debug("can't read shared object's segments\n");
+                  close(lib_fd);
+                  return false;
+               }
+               add_lib_info_fd(ph, lib_name, lib_fd, lib_base);
+               // Map info is added for the library (lib_name) so
+               // we need to re-sort it before calling the p_pdread.
+               if (sort_map_array(ph) != true)
+                  return false;
+            } else {
+               print_debug("can't read ELF header for shared object %s\n", lib_name);
+               close(lib_fd);
+               // continue with other libraries...
+            }
+         }
+      }
+
+      // read next link_map address
+      if (ps_pread(ph, (psaddr_t) link_map_addr + LINK_MAP_NEXT_OFFSET,
+                        &link_map_addr, sizeof(uintptr_t)) != PS_OK) {
+         print_debug("can't read next link in link_map\n");
+         return false;
+      }
+   }
+
+   return true;
+}
+
+// the one and only one exposed stuff from this file
+struct ps_prochandle* Pgrab_core(const char* exec_file, const char* core_file) {
+   ELF_EHDR core_ehdr;
+   ELF_EHDR exec_ehdr;
+
+   struct ps_prochandle* ph = (struct ps_prochandle*) calloc(1, sizeof(struct ps_prochandle));
+   if (ph == NULL) {
+      print_debug("can't allocate ps_prochandle\n");
+      return NULL;
+   }
+
+   if ((ph->core = (struct core_data*) calloc(1, sizeof(struct core_data))) == NULL) {
+      free(ph);
+      print_debug("can't allocate ps_prochandle\n");
+      return NULL;
+   }
+
+   // initialize ph
+   ph->ops = &core_ops;
+   ph->core->core_fd   = -1;
+   ph->core->exec_fd   = -1;
+   ph->core->interp_fd = -1;
+
+   // open the core file
+   if ((ph->core->core_fd = open(core_file, O_RDONLY)) < 0) {
+      print_debug("can't open core file\n");
+      goto err;
+   }
+
+   // read core file ELF header
+   if (read_elf_header(ph->core->core_fd, &core_ehdr) != true || core_ehdr.e_type != ET_CORE) {
+      print_debug("core file is not a valid ELF ET_CORE file\n");
+      goto err;
+   }
+
+   if ((ph->core->exec_fd = open(exec_file, O_RDONLY)) < 0) {
+      print_debug("can't open executable file\n");
+      goto err;
+   }
+
+   if (read_elf_header(ph->core->exec_fd, &exec_ehdr) != true || exec_ehdr.e_type != ET_EXEC) {
+      print_debug("executable file is not a valid ELF ET_EXEC file\n");
+      goto err;
+   }
+
+   // process core file segments
+   if (read_core_segments(ph, &core_ehdr) != true)
+      goto err;
+
+   // process exec file segments
+   if (read_exec_segments(ph, &exec_ehdr) != true)
+      goto err;
+
+   // exec file is also treated like a shared object for symbol search
+   if (add_lib_info_fd(ph, exec_file, ph->core->exec_fd,
+                       (uintptr_t)0 + find_base_address(ph->core->exec_fd, &exec_ehdr)) == NULL)
+      goto err;
+
+   // allocate and sort maps into map_array, we need to do this
+   // here because read_shared_lib_info needs to read from debuggee
+   // address space
+   if (sort_map_array(ph) != true)
+      goto err;
+
+   if (read_shared_lib_info(ph) != true)
+      goto err;
+
+   // sort again because we have added more mappings from shared objects
+   if (sort_map_array(ph) != true)
+      goto err;
+
+   if (init_classsharing_workaround(ph) != true)
+      goto err;
+
+   return ph;
+
+err:
+   Prelease(ph);
+   return NULL;
+}
diff --git a/hotspot/agent/src/os/bsd/ps_proc.c b/hotspot/agent/src/os/bsd/ps_proc.c
new file mode 100644
index 0000000..f8957c0
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/ps_proc.c
@@ -0,0 +1,444 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <sys/ptrace.h>
+#include <sys/param.h>
+#include <sys/user.h>
+#include <elf.h>
+#include <sys/elf_common.h>
+#include <sys/link_elf.h>
+#include <libutil.h>
+#include "libproc_impl.h"
+#include "elfmacros.h"
+
+// This file has the libproc implementation specific to live process
+// For core files, refer to ps_core.c
+
+static inline uintptr_t align(uintptr_t ptr, size_t size) {
+  return (ptr & ~(size - 1));
+}
+
+// ---------------------------------------------
+// ptrace functions
+// ---------------------------------------------
+
+// read "size" bytes of data from "addr" within the target process.
+// unlike the standard ptrace() function, process_read_data() can handle
+// unaligned address - alignment check, if required, should be done
+// before calling process_read_data.
+
+static bool process_read_data(struct ps_prochandle* ph, uintptr_t addr, char *buf, size_t size) {
+  int rslt;
+  size_t i, words;
+  uintptr_t end_addr = addr + size;
+  uintptr_t aligned_addr = align(addr, sizeof(int));
+
+  if (aligned_addr != addr) {
+    char *ptr = (char *)&rslt;
+    errno = 0;
+    rslt = ptrace(PT_READ_D, ph->pid, (caddr_t) aligned_addr, 0);
+    if (errno) {
+      print_debug("ptrace(PT_READ_D, ..) failed for %d bytes @ %lx\n", size, addr);
+      return false;
+    }
+    for (; aligned_addr != addr; aligned_addr++, ptr++);
+    for (; ((intptr_t)aligned_addr % sizeof(int)) && aligned_addr < end_addr;
+        aligned_addr++)
+       *(buf++) = *(ptr++);
+  }
+
+  words = (end_addr - aligned_addr) / sizeof(int);
+
+  // assert((intptr_t)aligned_addr % sizeof(int) == 0);
+  for (i = 0; i < words; i++) {
+    errno = 0;
+    rslt = ptrace(PT_READ_D, ph->pid, (caddr_t) aligned_addr, 0);
+    if (errno) {
+      print_debug("ptrace(PT_READ_D, ..) failed for %d bytes @ %lx\n", size, addr);
+      return false;
+    }
+    *(int *)buf = rslt;
+    buf += sizeof(int);
+    aligned_addr += sizeof(int);
+  }
+
+  if (aligned_addr != end_addr) {
+    char *ptr = (char *)&rslt;
+    errno = 0;
+    rslt = ptrace(PT_READ_D, ph->pid, (caddr_t) aligned_addr, 0);
+    if (errno) {
+      print_debug("ptrace(PT_READ_D, ..) failed for %d bytes @ %lx\n", size, addr);
+      return false;
+    }
+    for (; aligned_addr != end_addr; aligned_addr++)
+       *(buf++) = *(ptr++);
+  }
+  return true;
+}
+
+// null implementation for write
+static bool process_write_data(struct ps_prochandle* ph,
+                             uintptr_t addr, const char *buf , size_t size) {
+  return false;
+}
+
+// "user" should be a pointer to a reg
+static bool process_get_lwp_regs(struct ps_prochandle* ph, pid_t pid, struct reg *user) {
+  // we have already attached to all thread 'pid's, just use ptrace call
+  // to get regset now. Note that we don't cache regset upfront for processes.
+ if (ptrace(PT_GETREGS, pid, (caddr_t) user, 0) < 0) {
+   print_debug("ptrace(PTRACE_GETREGS, ...) failed for lwp %d\n", pid);
+   return false;
+ }
+ return true;
+}
+
+// fill in ptrace_lwpinfo for lid
+static bool process_get_lwp_info(struct ps_prochandle *ph, lwpid_t lwp_id, void *linfo) {
+  errno = 0;
+  ptrace(PT_LWPINFO, lwp_id, linfo, sizeof(struct ptrace_lwpinfo));
+
+  return (errno == 0)? true: false;
+}
+
+// attach to a process/thread specified by "pid"
+static bool ptrace_attach(pid_t pid) {
+  if (ptrace(PT_ATTACH, pid, NULL, 0) < 0) {
+    print_debug("ptrace(PTRACE_ATTACH, ..) failed for %d\n", pid);
+    return false;
+  } else {
+    int ret;
+    int status;
+    do {
+      // Wait for debuggee to stop.
+      ret = waitpid(pid, &status, 0);
+      if (ret >= 0) {
+        if (WIFSTOPPED(status)) {
+          // Debuggee stopped.
+          return true;
+        } else {
+          print_debug("waitpid(): Child process exited/terminated (status = 0x%x)\n", status);
+          return false;
+        }
+      } else {
+        switch (errno) {
+          case EINTR:
+            continue;
+            break;
+          case ECHILD:
+            print_debug("waitpid() failed. Child process pid (%d) does not exist \n", pid);
+            break;
+          case EINVAL:
+            print_debug("waitpid() failed. Invalid options argument.\n");
+            break;
+          default:
+            print_debug("waitpid() failed. Unexpected error %d\n",errno);
+        }
+        return false;
+      }
+    } while(true);
+  }
+}
+
+// -------------------------------------------------------
+// functions for obtaining library information
+// -------------------------------------------------------
+
+// callback for read_thread_info
+static bool add_new_thread(struct ps_prochandle* ph, pthread_t pthread_id, lwpid_t lwp_id) {
+  return add_thread_info(ph, pthread_id, lwp_id) != NULL;
+}
+
+#if defined(__FreeBSD__) && __FreeBSD_version < 701000
+/*
+ * TEXT_START_ADDR from binutils/ld/emulparams/<arch_spec>.sh
+ * Not the most robust but good enough.
+ */
+
+#if defined(amd64) || defined(x86_64)
+#define TEXT_START_ADDR 0x400000
+#elif defined(i386)
+#define TEXT_START_ADDR 0x8048000
+#else
+#error TEXT_START_ADDR not defined
+#endif
+
+#define BUF_SIZE (PATH_MAX + NAME_MAX + 1)
+
+uintptr_t linkmap_addr(struct ps_prochandle *ph) {
+  uintptr_t ehdr_addr, phdr_addr, dyn_addr, dmap_addr, lmap_addr;
+  ELF_EHDR ehdr;
+  ELF_PHDR *phdrs, *phdr;
+  ELF_DYN *dyns, *dyn;
+  struct r_debug dmap;
+  unsigned long hdrs_size;
+  unsigned int i;
+
+  /* read ELF_EHDR at TEXT_START_ADDR and validate */
+
+  ehdr_addr = (uintptr_t)TEXT_START_ADDR;
+
+  if (process_read_data(ph, ehdr_addr, (char *)&ehdr, sizeof(ehdr)) != true) {
+    print_debug("process_read_data failed for ehdr_addr %p\n", ehdr_addr);
+    return (0);
+  }
+
+  if (!IS_ELF(ehdr) ||
+        ehdr.e_ident[EI_CLASS] != ELF_TARG_CLASS ||
+        ehdr.e_ident[EI_DATA] != ELF_TARG_DATA ||
+        ehdr.e_ident[EI_VERSION] != EV_CURRENT ||
+        ehdr.e_phentsize != sizeof(ELF_PHDR) ||
+        ehdr.e_version != ELF_TARG_VER ||
+        ehdr.e_machine != ELF_TARG_MACH) {
+    print_debug("not an ELF_EHDR at %p\n", ehdr_addr);
+    return (0);
+  }
+
+  /* allocate space for all ELF_PHDR's and read */
+
+  phdr_addr = ehdr_addr + ehdr.e_phoff;
+  hdrs_size = ehdr.e_phnum * sizeof(ELF_PHDR);
+
+  if ((phdrs = malloc(hdrs_size)) == NULL)
+    return (0);
+
+  if (process_read_data(ph, phdr_addr, (char *)phdrs, hdrs_size) != true) {
+    print_debug("process_read_data failed for phdr_addr %p\n", phdr_addr);
+    return (0);
+  }
+
+  /* find PT_DYNAMIC section */
+
+  for (i = 0, phdr = phdrs; i < ehdr.e_phnum; i++, phdr++) {
+    if (phdr->p_type == PT_DYNAMIC)
+      break;
+  }
+
+  if (i >= ehdr.e_phnum) {
+    print_debug("PT_DYNAMIC section not found!\n");
+    free(phdrs);
+    return (0);
+  }
+
+  /* allocate space and read in ELF_DYN headers */
+
+  dyn_addr = phdr->p_vaddr;
+  hdrs_size = phdr->p_memsz;
+  free(phdrs);
+
+  if ((dyns = malloc(hdrs_size)) == NULL)
+    return (0);
+
+  if (process_read_data(ph, dyn_addr, (char *)dyns, hdrs_size) != true) {
+    print_debug("process_read_data failed for dyn_addr %p\n", dyn_addr);
+    free(dyns);
+    return (0);
+  }
+
+  /* find DT_DEBUG */
+
+  dyn = dyns;
+  while (dyn->d_tag != DT_DEBUG && dyn->d_tag != DT_NULL) {
+    dyn++;
+  }
+
+  if (dyn->d_tag != DT_DEBUG) {
+    print_debug("failed to find DT_DEBUG\n");
+    free(dyns);
+    return (0);
+  }
+
+  /* read struct r_debug into dmap */
+
+  dmap_addr = (uintptr_t)dyn->d_un.d_ptr;
+  free(dyns);
+
+  if (process_read_data(ph, dmap_addr, (char *)&dmap, sizeof(dmap)) != true) {
+    print_debug("process_read_data failed for dmap_addr %p\n", dmap_addr);
+    return (0);
+  }
+
+  lmap_addr = (uintptr_t)dmap.r_map;
+
+  return (lmap_addr);
+}
+#endif // __FreeBSD__ && __FreeBSD_version < 701000
+
+static bool read_lib_info(struct ps_prochandle* ph) {
+#if defined(__FreeBSD__) && __FreeBSD_version >= 701000
+  struct kinfo_vmentry *freep, *kve;
+  int i, cnt;
+
+  freep = kinfo_getvmmap(ph->pid, &cnt);
+  if (freep == NULL) {
+      print_debug("can't get vm map for pid\n", ph->pid);
+      return false;
+  }
+
+  for (i = 0; i < cnt; i++) {
+    kve = &freep[i];
+    if ((kve->kve_flags & KVME_FLAG_COW) &&
+        kve->kve_path != NULL &&
+        strlen(kve->kve_path) > 0) {
+
+      if (find_lib(ph, kve->kve_path) == false) {
+        lib_info* lib;
+        if ((lib = add_lib_info(ph, kve->kve_path,
+                                (uintptr_t) kve->kve_start)) == NULL)
+          continue; // ignore, add_lib_info prints error
+
+        // we don't need to keep the library open, symtab is already
+        // built. Only for core dump we need to keep the fd open.
+        close(lib->fd);
+        lib->fd = -1;
+      }
+    }
+  }
+
+  free(freep);
+
+  return true;
+#else
+  char *l_name;
+  struct link_map *lmap;
+  uintptr_t lmap_addr;
+
+  if ((l_name = malloc(BUF_SIZE)) == NULL)
+    return false;
+
+  if ((lmap = malloc(sizeof(*lmap))) == NULL) {
+    free(l_name);
+    return false;
+  }
+
+  lmap_addr = linkmap_addr(ph);
+
+  if (lmap_addr == 0) {
+    free(l_name);
+    free(lmap);
+    return false;
+  }
+
+  do {
+    if (process_read_data(ph, lmap_addr, (char *)lmap, sizeof(*lmap)) != true) {
+      print_debug("process_read_data failed for lmap_addr %p\n", lmap_addr);
+      free (l_name);
+      free (lmap);
+      return false;
+    }
+
+    if (process_read_data(ph, (uintptr_t)lmap->l_name, l_name,
+        BUF_SIZE) != true) {
+      print_debug("process_read_data failed for lmap->l_name %p\n",
+          lmap->l_name);
+      free (l_name);
+      free (lmap);
+      return false;
+    }
+
+    if (find_lib(ph, l_name) == false) {
+      lib_info* lib;
+      if ((lib = add_lib_info(ph, l_name,
+                              (uintptr_t) lmap->l_addr)) == NULL)
+        continue; // ignore, add_lib_info prints error
+
+      // we don't need to keep the library open, symtab is already
+      // built. Only for core dump we need to keep the fd open.
+      close(lib->fd);
+      lib->fd = -1;
+    }
+    lmap_addr = (uintptr_t)lmap->l_next;
+  } while (lmap->l_next != NULL);
+
+  free (l_name);
+  free (lmap);
+
+  return true;
+#endif
+}
+
+// detach a given pid
+static bool ptrace_detach(pid_t pid) {
+  if (pid && ptrace(PT_DETACH, pid, (caddr_t)1, 0) < 0) {
+    print_debug("ptrace(PTRACE_DETACH, ..) failed for %d\n", pid);
+    return false;
+  } else {
+    return true;
+  }
+}
+
+static void process_cleanup(struct ps_prochandle* ph) {
+  ptrace_detach(ph->pid);
+}
+
+static ps_prochandle_ops process_ops = {
+  .release=  process_cleanup,
+  .p_pread=  process_read_data,
+  .p_pwrite= process_write_data,
+  .get_lwp_regs= process_get_lwp_regs,
+  .get_lwp_info= process_get_lwp_info
+};
+
+// attach to the process. One and only one exposed stuff
+struct ps_prochandle* Pgrab(pid_t pid) {
+  struct ps_prochandle* ph = NULL;
+  thread_info* thr = NULL;
+
+  if ( (ph = (struct ps_prochandle*) calloc(1, sizeof(struct ps_prochandle))) == NULL) {
+     print_debug("can't allocate memory for ps_prochandle\n");
+     return NULL;
+  }
+
+  if (ptrace_attach(pid) != true) {
+     free(ph);
+     return NULL;
+  }
+
+  // initialize ps_prochandle
+  ph->pid = pid;
+
+  // initialize vtable
+  ph->ops = &process_ops;
+
+  // read library info and symbol tables, must do this before attaching threads,
+  // as the symbols in the pthread library will be used to figure out
+  // the list of threads within the same process.
+  if (read_lib_info(ph) != true) {
+     ptrace_detach(pid);
+     free(ph);
+     return NULL;
+  }
+
+  // read thread info
+  read_thread_info(ph, add_new_thread);
+
+  return ph;
+}
diff --git a/hotspot/agent/src/os/bsd/salibelf.c b/hotspot/agent/src/os/bsd/salibelf.c
new file mode 100644
index 0000000..4c860a0
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/salibelf.c
@@ -0,0 +1,126 @@
+/*
+ * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "salibelf.h"
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+
+extern void print_debug(const char*,...);
+
+// ELF file parsing helpers. Note that we do *not* use libelf here.
+int read_elf_header(int fd, ELF_EHDR* ehdr) {
+   if (pread(fd, ehdr, sizeof (ELF_EHDR), 0) != sizeof (ELF_EHDR) ||
+            memcmp(&ehdr->e_ident[EI_MAG0], ELFMAG, SELFMAG) != 0 ||
+            ehdr->e_version != EV_CURRENT) {
+        return 0;
+   }
+   return 1;
+}
+
+bool is_elf_file(int fd) {
+   ELF_EHDR ehdr;
+   return read_elf_header(fd, &ehdr);
+}
+
+// read program header table of an ELF file
+ELF_PHDR* read_program_header_table(int fd, ELF_EHDR* hdr) {
+   ELF_PHDR* phbuf = 0;
+   // allocate memory for program header table
+   size_t nbytes = hdr->e_phnum * hdr->e_phentsize;
+
+   if ((phbuf = (ELF_PHDR*) malloc(nbytes)) == NULL) {
+      print_debug("can't allocate memory for reading program header table\n");
+      return NULL;
+   }
+
+   if (pread(fd, phbuf, nbytes, hdr->e_phoff) != nbytes) {
+      print_debug("ELF file is truncated! can't read program header table\n");
+      free(phbuf);
+      return NULL;
+   }
+
+   return phbuf;
+}
+
+// read section header table of an ELF file
+ELF_SHDR* read_section_header_table(int fd, ELF_EHDR* hdr) {
+   ELF_SHDR* shbuf = 0;
+   // allocate memory for section header table
+   size_t nbytes = hdr->e_shnum * hdr->e_shentsize;
+
+   if ((shbuf = (ELF_SHDR*) malloc(nbytes)) == NULL) {
+      print_debug("can't allocate memory for reading section header table\n");
+      return NULL;
+   }
+
+   if (pread(fd, shbuf, nbytes, hdr->e_shoff) != nbytes) {
+      print_debug("ELF file is truncated! can't read section header table\n");
+      free(shbuf);
+      return NULL;
+   }
+
+   return shbuf;
+}
+
+// read a particular section's data
+void* read_section_data(int fd, ELF_EHDR* ehdr, ELF_SHDR* shdr) {
+  void *buf = NULL;
+  if (shdr->sh_type == SHT_NOBITS || shdr->sh_size == 0) {
+     return buf;
+  }
+  if ((buf = calloc(shdr->sh_size, 1)) == NULL) {
+     print_debug("can't allocate memory for reading section data\n");
+     return NULL;
+  }
+  if (pread(fd, buf, shdr->sh_size, shdr->sh_offset) != shdr->sh_size) {
+     free(buf);
+     print_debug("section data read failed\n");
+     return NULL;
+  }
+  return buf;
+}
+
+uintptr_t find_base_address(int fd, ELF_EHDR* ehdr) {
+  uintptr_t baseaddr = (uintptr_t)-1;
+  int cnt;
+  ELF_PHDR *phbuf, *phdr;
+
+  // read program header table
+  if ((phbuf = read_program_header_table(fd, ehdr)) == NULL) {
+    goto quit;
+  }
+
+  // the base address of a shared object is the lowest vaddr of
+  // its loadable segments (PT_LOAD)
+  for (phdr = phbuf, cnt = 0; cnt < ehdr->e_phnum; cnt++, phdr++) {
+    if (phdr->p_type == PT_LOAD && phdr->p_vaddr < baseaddr) {
+      baseaddr = phdr->p_vaddr;
+    }
+  }
+
+quit:
+  if (phbuf) free(phbuf);
+  return baseaddr;
+}
diff --git a/hotspot/agent/src/os/linux/salibelf.h b/hotspot/agent/src/os/bsd/salibelf.h
similarity index 100%
copy from hotspot/agent/src/os/linux/salibelf.h
copy to hotspot/agent/src/os/bsd/salibelf.h
diff --git a/hotspot/agent/src/os/bsd/symtab.c b/hotspot/agent/src/os/bsd/symtab.c
new file mode 100644
index 0000000..0362cf0
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/symtab.c
@@ -0,0 +1,239 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include <unistd.h>
+#include <search.h>
+#include <stdlib.h>
+#include <string.h>
+#include <db.h>
+#include <fcntl.h>
+#include "symtab.h"
+#include "salibelf.h"
+
+
+// ----------------------------------------------------
+// functions for symbol lookups
+// ----------------------------------------------------
+
+struct elf_section {
+  ELF_SHDR   *c_shdr;
+  void       *c_data;
+};
+
+struct elf_symbol {
+  char *name;
+  uintptr_t offset;
+  uintptr_t size;
+};
+
+typedef struct symtab {
+  char *strs;
+  size_t num_symbols;
+  struct elf_symbol *symbols;
+  DB* hash_table;
+} symtab_t;
+
+// read symbol table from given fd.
+struct symtab* build_symtab(int fd) {
+  ELF_EHDR ehdr;
+  struct symtab* symtab = NULL;
+
+  // Reading of elf header
+  struct elf_section *scn_cache = NULL;
+  int cnt = 0;
+  ELF_SHDR* shbuf = NULL;
+  ELF_SHDR* cursct = NULL;
+  ELF_PHDR* phbuf = NULL;
+  int symtab_found = 0;
+  int dynsym_found = 0;
+  uint32_t symsection = SHT_SYMTAB;
+
+  uintptr_t baseaddr = (uintptr_t)-1;
+
+  lseek(fd, (off_t)0L, SEEK_SET);
+  if (! read_elf_header(fd, &ehdr)) {
+    // not an elf
+    return NULL;
+  }
+
+  // read ELF header
+  if ((shbuf = read_section_header_table(fd, &ehdr)) == NULL) {
+    goto quit;
+  }
+
+  baseaddr = find_base_address(fd, &ehdr);
+
+  scn_cache = calloc(ehdr.e_shnum, sizeof(*scn_cache));
+  if (scn_cache == NULL) {
+    goto quit;
+  }
+
+  for (cursct = shbuf, cnt = 0; cnt < ehdr.e_shnum; cnt++) {
+    scn_cache[cnt].c_shdr = cursct;
+    if (cursct->sh_type == SHT_SYMTAB ||
+        cursct->sh_type == SHT_STRTAB ||
+        cursct->sh_type == SHT_DYNSYM) {
+      if ( (scn_cache[cnt].c_data = read_section_data(fd, &ehdr, cursct)) == NULL) {
+         goto quit;
+      }
+    }
+
+    if (cursct->sh_type == SHT_SYMTAB)
+       symtab_found++;
+
+    if (cursct->sh_type == SHT_DYNSYM)
+       dynsym_found++;
+
+    cursct++;
+  }
+
+  if (!symtab_found && dynsym_found)
+     symsection = SHT_DYNSYM;
+
+  for (cnt = 1; cnt < ehdr.e_shnum; cnt++) {
+    ELF_SHDR *shdr = scn_cache[cnt].c_shdr;
+
+    if (shdr->sh_type == symsection) {
+      ELF_SYM  *syms;
+      int j, n, rslt;
+      size_t size;
+
+      // FIXME: there could be multiple data buffers associated with the
+      // same ELF section. Here we can handle only one buffer. See man page
+      // for elf_getdata on Solaris.
+
+      // guarantee(symtab == NULL, "multiple symtab");
+      symtab = calloc(1, sizeof(*symtab));
+      if (symtab == NULL) {
+         goto quit;
+      }
+      // the symbol table
+      syms = (ELF_SYM *)scn_cache[cnt].c_data;
+
+      // number of symbols
+      n = shdr->sh_size / shdr->sh_entsize;
+
+      // create hash table, we use berkeley db to
+      // manipulate the hash table.
+      symtab->hash_table = dbopen(NULL, O_CREAT | O_RDWR, 0600, DB_HASH, NULL);
+      // guarantee(symtab->hash_table, "unexpected failure: dbopen");
+
+      // shdr->sh_link points to the section that contains the actual strings
+      // for symbol names. the st_name field in ELF_SYM is just the
+      // string table index. we make a copy of the string table so the
+      // strings will not be destroyed by elf_end.
+      size = scn_cache[shdr->sh_link].c_shdr->sh_size;
+      symtab->strs = malloc(size);
+      memcpy(symtab->strs, scn_cache[shdr->sh_link].c_data, size);
+
+      // allocate memory for storing symbol offset and size;
+      symtab->num_symbols = n;
+      symtab->symbols = calloc(n , sizeof(*symtab->symbols));
+
+      // copy symbols info our symtab and enter them info the hash table
+      for (j = 0; j < n; j++, syms++) {
+        DBT key, value;
+        char *sym_name = symtab->strs + syms->st_name;
+
+        // skip non-object and non-function symbols
+        int st_type = ELF_ST_TYPE(syms->st_info);
+        if ( st_type != STT_FUNC && st_type != STT_OBJECT)
+           continue;
+        // skip empty strings and undefined symbols
+        if (*sym_name == '\0' || syms->st_shndx == SHN_UNDEF) continue;
+
+        symtab->symbols[j].name   = sym_name;
+        symtab->symbols[j].offset = syms->st_value - baseaddr;
+        symtab->symbols[j].size   = syms->st_size;
+
+        key.data = sym_name;
+        key.size = strlen(sym_name) + 1;
+        value.data = &(symtab->symbols[j]);
+        value.size = sizeof(void *);
+        (*symtab->hash_table->put)(symtab->hash_table, &key, &value, 0);
+      }
+    }
+  }
+
+quit:
+  if (shbuf) free(shbuf);
+  if (phbuf) free(phbuf);
+  if (scn_cache) {
+    for (cnt = 0; cnt < ehdr.e_shnum; cnt++) {
+      if (scn_cache[cnt].c_data != NULL) {
+        free(scn_cache[cnt].c_data);
+      }
+    }
+    free(scn_cache);
+  }
+  return symtab;
+}
+
+void destroy_symtab(struct symtab* symtab) {
+  if (!symtab) return;
+  if (symtab->strs) free(symtab->strs);
+  if (symtab->symbols) free(symtab->symbols);
+  if (symtab->hash_table) {
+    symtab->hash_table->close(symtab->hash_table);
+  }
+  free(symtab);
+}
+
+uintptr_t search_symbol(struct symtab* symtab, uintptr_t base,
+                      const char *sym_name, int *sym_size) {
+  DBT key, value;
+  int ret;
+
+  // library does not have symbol table
+  if (!symtab || !symtab->hash_table)
+     return 0;
+
+  key.data = (char*)(uintptr_t)sym_name;
+  key.size = strlen(sym_name) + 1;
+  ret = (*symtab->hash_table->get)(symtab->hash_table, &key, &value, 0);
+  if (ret == 0) {
+    struct elf_symbol *sym = value.data;
+    uintptr_t rslt = (uintptr_t) ((char*)base + sym->offset);
+    if (sym_size) *sym_size = sym->size;
+    return rslt;
+  }
+
+quit:
+  return 0;
+}
+
+const char* nearest_symbol(struct symtab* symtab, uintptr_t offset,
+                           uintptr_t* poffset) {
+  int n = 0;
+  if (!symtab) return NULL;
+  for (; n < symtab->num_symbols; n++) {
+     struct elf_symbol* sym = &(symtab->symbols[n]);
+     if (sym->name != NULL &&
+         offset >= sym->offset && offset < sym->offset + sym->size) {
+        if (poffset) *poffset = (offset - sym->offset);
+        return sym->name;
+     }
+  }
+  return NULL;
+}
diff --git a/hotspot/agent/src/os/bsd/symtab.h b/hotspot/agent/src/os/bsd/symtab.h
new file mode 100644
index 0000000..9b7eef7
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/symtab.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef _SYMTAB_H_
+#define _SYMTAB_H_
+
+#include <stdint.h>
+
+// interface to manage ELF symbol tables
+
+struct symtab;
+
+// build symbol table for a given ELF file descriptor
+struct symtab* build_symtab(int fd);
+
+// destroy the symbol table
+void destroy_symtab(struct symtab* symtab);
+
+// search for symbol in the given symbol table. Adds offset
+// to the base uintptr_t supplied. Returns NULL if not found.
+uintptr_t search_symbol(struct symtab* symtab, uintptr_t base,
+                      const char *sym_name, int *sym_size);
+
+// look for nearest symbol for a given offset (not address - base
+// subtraction done by caller
+const char* nearest_symbol(struct symtab* symtab, uintptr_t offset,
+                      uintptr_t* poffset);
+
+#endif /*_SYMTAB_H_*/
diff --git a/hotspot/agent/src/os/bsd/test.c b/hotspot/agent/src/os/bsd/test.c
new file mode 100644
index 0000000..3659542
--- /dev/null
+++ b/hotspot/agent/src/os/bsd/test.c
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "libproc.h"
+
+int main(int argc, char** argv) {
+   struct ps_prochandle* ph;
+
+   init_libproc(true);
+   switch (argc) {
+      case 2: {
+         // process
+         ph = Pgrab(atoi(argv[1]));
+         break;
+      }
+
+      case 3: {
+        // core
+        ph = Pgrab_core(argv[1], argv[2]);
+        break;
+      }
+
+      default: {
+        fprintf(stderr, "usage %s <pid> or %s <exec file> <core file>\n", argv[0], argv[0]);
+        return 1;
+      }
+   }
+
+   if (ph) {
+      Prelease(ph);
+      return 0;
+   } else {
+      printf("can't connect to debuggee\n");
+      return 1;
+   }
+}
diff --git a/hotspot/agent/src/os/solaris/Makefile b/hotspot/agent/src/os/solaris/Makefile
index f1bb0b3..0e964bf 100644
--- a/hotspot/agent/src/os/solaris/Makefile
+++ b/hotspot/agent/src/os/solaris/Makefile
@@ -24,9 +24,7 @@
 
 
 all:
-	cd dbx; $(MAKE) all
 	cd proc; $(MAKE) all
 
 clean:
-	cd dbx; $(MAKE) clean
 	cd proc; $(MAKE) clean
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/BsdVtblAccess.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/BsdVtblAccess.java
new file mode 100644
index 0000000..ed68875
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/BsdVtblAccess.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot;
+
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.types.basic.*;
+
+public class BsdVtblAccess extends BasicVtblAccess {
+  private String vt;
+
+  public BsdVtblAccess(SymbolLookup symbolLookup,
+                         String[] dllNames) {
+    super(symbolLookup, dllNames);
+
+    if (symbolLookup.lookup("libjvm.so", "__vt_10JavaThread") != null ||
+        symbolLookup.lookup("libjvm_g.so", "__vt_10JavaThread") != null) {
+       // old C++ ABI
+       vt = "__vt_";
+    } else {
+       // new C++ ABI
+       vt = "_ZTV";
+    }
+  }
+
+  protected String vtblSymbolForType(Type type) {
+    return vt + type.getName().length() + type;
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/CLHSDB.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/CLHSDB.java
index 1594818..5071235 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/CLHSDB.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/CLHSDB.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -170,6 +170,7 @@ public class CLHSDB {
             final String errMsg = formatMessage(e.getMessage(), 80);
             System.err.println("Unable to connect to process ID " + pid + ":\n\n" + errMsg);
             agent.detach();
+            e.printStackTrace();
             return;
         }
     }
@@ -191,6 +192,7 @@ public class CLHSDB {
             final String errMsg = formatMessage(e.getMessage(), 80);
             System.err.println("Unable to open core file\n" + corePath + ":\n\n" + errMsg);
             agent.detach();
+            e.printStackTrace();
             return;
         }
     }
@@ -209,6 +211,7 @@ public class CLHSDB {
             final String errMsg = formatMessage(e.getMessage(), 80);
             System.err.println("Unable to connect to machine \"" + remoteMachineName + "\":\n\n" + errMsg);
             agent.detach();
+            e.printStackTrace();
             return;
         }
     }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java
index 96cfe83..8c5f2a6 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java
@@ -40,6 +40,8 @@ import sun.jvm.hotspot.debugger.*;
 import sun.jvm.hotspot.interpreter.*;
 import sun.jvm.hotspot.memory.*;
 import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.opto.*;
+import sun.jvm.hotspot.ci.*;
 import sun.jvm.hotspot.runtime.*;
 import sun.jvm.hotspot.utilities.*;
 import sun.jvm.hotspot.utilities.soql.*;
@@ -48,6 +50,8 @@ import sun.jvm.hotspot.ui.tree.*;
 import sun.jvm.hotspot.tools.*;
 import sun.jvm.hotspot.tools.ObjectHistogram;
 import sun.jvm.hotspot.tools.StackTrace;
+import sun.jvm.hotspot.tools.jcore.ClassDump;
+import sun.jvm.hotspot.tools.jcore.ClassFilter;
 
 public class CommandProcessor {
     public abstract static class DebuggerInterface {
@@ -59,6 +63,27 @@ public class CommandProcessor {
         public abstract void reattach();
     }
 
+    public static class BootFilter implements ClassFilter {
+        public boolean canInclude(InstanceKlass kls) {
+            return kls.getClassLoader() == null;
+        }
+    }
+
+    public static class NonBootFilter implements ClassFilter {
+        private HashMap emitted = new HashMap();
+        public boolean canInclude(InstanceKlass kls) {
+            if (kls.getClassLoader() == null) return false;
+            if (emitted.get(kls.getName()) != null) {
+                // Since multiple class loaders are being shoved
+                // together duplicate classes are a possibilty.  For
+                // now just ignore them.
+                return false;
+            }
+            emitted.put(kls.getName(), kls);
+            return true;
+        }
+    }
+
     static class Tokens {
         final String input;
         int i;
@@ -258,9 +283,14 @@ public class CommandProcessor {
     }
 
     void dumpFields(Type type) {
+        dumpFields(type, true);
+    }
+
+    void dumpFields(Type type, boolean allowStatic) {
         Iterator i = type.getFields();
         while (i.hasNext()) {
             Field f = (Field) i.next();
+            if (!allowStatic && f.isStatic()) continue;
             out.print("field ");
             quote(type.getName());
             out.print(" ");
@@ -458,13 +488,18 @@ public class CommandProcessor {
                     });
             }
         },
-        new Command("flags", "flags [ flag ]", false) {
+        new Command("flags", "flags [ flag | -nd ]", false) {
             public void doit(Tokens t) {
                 int tokens = t.countTokens();
                 if (tokens != 0 && tokens != 1) {
                     usage();
                 } else {
                     String name = tokens > 0 ? t.nextToken() : null;
+                    boolean nonDefault = false;
+                    if (name != null && name.equals("-nd")) {
+                        name = null;
+                        nonDefault = true;
+                    }
 
                     VM.Flag[] flags = VM.getVM().getCommandLineFlags();
                     if (flags == null) {
@@ -474,7 +509,12 @@ public class CommandProcessor {
                         for (int f = 0; f < flags.length; f++) {
                             VM.Flag flag = flags[f];
                             if (name == null || flag.getName().equals(name)) {
-                                out.println(flag.getName() + " = " + flag.getValue());
+
+                                if (nonDefault && flag.getOrigin() == 0) {
+                                    // only print flags which aren't their defaults
+                                    continue;
+                                }
+                                out.println(flag.getName() + " = " + flag.getValue() + " " + flag.getOrigin());
                                 printed = true;
                             }
                         }
@@ -586,6 +626,158 @@ public class CommandProcessor {
                 }
             }
         },
+        new Command("printmdo", "printmdo [ -a | expression ]", false) {
+            // Print every MDO in the heap or the one referenced by expression.
+            public void doit(Tokens t) {
+                if (t.countTokens() != 1) {
+                    usage();
+                } else {
+                    String s = t.nextToken();
+                    if (s.equals("-a")) {
+                        HeapVisitor iterator = new DefaultHeapVisitor() {
+                                public boolean doObj(Oop obj) {
+                                    if (obj instanceof MethodData) {
+                                        Method m = ((MethodData)obj).getMethod();
+                                        out.println("MethodData " + obj.getHandle() + " for " +
+                                                    "method " + m.getMethodHolder().getName().asString() + "." +
+                                                    m.getName().asString() +
+                                                    m.getSignature().asString() + "@" + m.getHandle());
+                                        ((MethodData)obj).printDataOn(out);
+                                    }
+                                    return false;
+                                }
+                            };
+                        VM.getVM().getObjectHeap().iteratePerm(iterator);
+                    } else {
+                        Address a = VM.getVM().getDebugger().parseAddress(s);
+                        OopHandle handle = a.addOffsetToAsOopHandle(0);
+                        MethodData mdo = (MethodData)VM.getVM().getObjectHeap().newOop(handle);
+                        mdo.printDataOn(out);
+                    }
+                }
+            }
+        },
+        new Command("dumpideal", "dumpideal { -a | id }", false) {
+            // Do a full dump of the nodes reachabile from root in each compiler thread.
+            public void doit(Tokens t) {
+                if (t.countTokens() != 1) {
+                    usage();
+                } else {
+                    String name = t.nextToken();
+                    boolean all = name.equals("-a");
+                    Threads threads = VM.getVM().getThreads();
+                    for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
+                        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+                        thread.printThreadIDOn(new PrintStream(bos));
+                        if (all || bos.toString().equals(name)) {
+                          if (thread instanceof CompilerThread) {
+                            CompilerThread ct = (CompilerThread)thread;
+                            out.println(ct);
+                            ciEnv env = ct.env();
+                            if (env != null) {
+                              Compile c = env.compilerData();
+                              c.root().dump(9999, out);
+                            } else {
+                              out.println("  not compiling");
+                            }
+                          }
+                        }
+                    }
+                }
+            }
+        },
+        new Command("dumpcfg", "dumpcfg { -a | id }", false) {
+            // Dump the PhaseCFG for every compiler thread that has one live.
+            public void doit(Tokens t) {
+                if (t.countTokens() != 1) {
+                    usage();
+                } else {
+                    String name = t.nextToken();
+                    boolean all = name.equals("-a");
+                    Threads threads = VM.getVM().getThreads();
+                    for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
+                        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+                        thread.printThreadIDOn(new PrintStream(bos));
+                        if (all || bos.toString().equals(name)) {
+                          if (thread instanceof CompilerThread) {
+                            CompilerThread ct = (CompilerThread)thread;
+                            out.println(ct);
+                            ciEnv env = ct.env();
+                            if (env != null) {
+                              Compile c = env.compilerData();
+                              c.cfg().dump(out);
+                            }
+                          }
+                        }
+                    }
+                }
+            }
+        },
+        new Command("dumpilt", "dumpilt { -a | id }", false) {
+            // dumps the InlineTree of a C2 compile
+            public void doit(Tokens t) {
+                if (t.countTokens() != 1) {
+                    usage();
+                } else {
+                    String name = t.nextToken();
+                    boolean all = name.equals("-a");
+                    Threads threads = VM.getVM().getThreads();
+                    for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
+                        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+                        thread.printThreadIDOn(new PrintStream(bos));
+                        if (all || bos.toString().equals(name)) {
+                            if (thread instanceof CompilerThread) {
+                                CompilerThread ct = (CompilerThread)thread;
+                                ciEnv env = ct.env();
+                                if (env != null) {
+                                    Compile c = env.compilerData();
+                                    InlineTree ilt = c.ilt();
+                                    if (ilt != null) {
+                                        ilt.print(out);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        },
+        new Command("vmstructsdump", "vmstructsdump", false) {
+            public void doit(Tokens t) {
+                if (t.countTokens() != 0) {
+                    usage();
+                    return;
+                }
+
+                // Dump a copy of the type database in a form that can
+                // be read back.
+                Iterator i = agent.getTypeDataBase().getTypes();
+                // Make sure the types are emitted in an order than can be read back in
+                HashSet emitted = new HashSet();
+                Stack pending = new Stack();
+                while (i.hasNext()) {
+                    Type n = (Type)i.next();
+                    if (emitted.contains(n.getName())) {
+                        continue;
+                    }
+
+                    while (n != null && !emitted.contains(n.getName())) {
+                        pending.push(n);
+                        n = n.getSuperclass();
+                    }
+                    while (!pending.empty()) {
+                        n = (Type)pending.pop();
+                        dumpType(n);
+                        emitted.add(n.getName());
+                    }
+                }
+                i = agent.getTypeDataBase().getTypes();
+                while (i.hasNext()) {
+                    dumpFields((Type)i.next(), false);
+                }
+            }
+        },
+
         new Command("inspect", "inspect expression", false) {
             public void doit(Tokens t) {
                 if (t.countTokens() != 1) {
@@ -760,6 +952,50 @@ public class CommandProcessor {
                 }
             }
         },
+        new Command("intConstant", "intConstant [ name [ value ] ]", true) {
+            public void doit(Tokens t) {
+                if (t.countTokens() != 1 && t.countTokens() != 0 && t.countTokens() != 2) {
+                    usage();
+                    return;
+                }
+                HotSpotTypeDataBase db = (HotSpotTypeDataBase)agent.getTypeDataBase();
+                if (t.countTokens() == 1) {
+                    out.println("intConstant " + name + " " + db.lookupIntConstant(name));
+                } else if (t.countTokens() == 0) {
+                    Iterator i = db.getIntConstants();
+                    while (i.hasNext()) {
+                        String name = (String)i.next();
+                        out.println("intConstant " + name + " " + db.lookupIntConstant(name));
+                    }
+                } else if (t.countTokens() == 2) {
+                    String name = t.nextToken();
+                    Integer value = Integer.valueOf(t.nextToken());
+                    db.addIntConstant(name, value);
+                }
+            }
+        },
+        new Command("longConstant", "longConstant [ name [ value ] ]", true) {
+            public void doit(Tokens t) {
+                if (t.countTokens() != 1 && t.countTokens() != 0 && t.countTokens() != 2) {
+                    usage();
+                    return;
+                }
+                HotSpotTypeDataBase db = (HotSpotTypeDataBase)agent.getTypeDataBase();
+                if (t.countTokens() == 1) {
+                    out.println("longConstant " + name + " " + db.lookupLongConstant(name));
+                } else if (t.countTokens() == 0) {
+                    Iterator i = db.getLongConstants();
+                    while (i.hasNext()) {
+                        String name = (String)i.next();
+                        out.println("longConstant " + name + " " + db.lookupLongConstant(name));
+                    }
+                } else if (t.countTokens() == 2) {
+                    String name = t.nextToken();
+                    Long value = Long.valueOf(t.nextToken());
+                    db.addLongConstant(name, value);
+                }
+            }
+        },
         new Command("field", "field [ type [ name fieldtype isStatic offset address ] ]", true) {
             public void doit(Tokens t) {
                 if (t.countTokens() != 1 && t.countTokens() != 0 && t.countTokens() != 6) {
@@ -1311,13 +1547,13 @@ public class CommandProcessor {
                 return;
             }
 
-            executeCommand(ln);
+            executeCommand(ln, prompt);
         }
     }
 
     static Pattern historyPattern = Pattern.compile("((!\\*)|(!\\$)|(!!-?)|(!-?[0-9][0-9]*)|(![a-zA-Z][^ ]*))");
 
-    public void executeCommand(String ln) {
+    public void executeCommand(String ln, boolean putInHistory) {
         if (ln.indexOf('!') != -1) {
             int size = history.size();
             if (size == 0) {
@@ -1406,7 +1642,7 @@ public class CommandProcessor {
         Tokens t = new Tokens(ln);
         if (t.hasMoreTokens()) {
             boolean error = false;
-            history.add(ln);
+            if (putInHistory) history.add(ln);
             int len = t.countTokens();
             if (len > 2) {
                 String r = t.at(len - 2);
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/DebugServer.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/DebugServer.java
index 3a5e91a..cb5d21b 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/DebugServer.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/DebugServer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 package sun.jvm.hotspot;
 
 import sun.jvm.hotspot.debugger.*;
-import sun.jvm.hotspot.debugger.dbx.*;
 import sun.jvm.hotspot.runtime.*;
 import sun.jvm.hotspot.oops.*;
 
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HSDB.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HSDB.java
index 5e7e4fb..d48c160 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HSDB.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HSDB.java
@@ -1740,7 +1740,7 @@ public class HSDB implements ObjectHistogramPanel.Listener, SAListener {
       else if (f.isCompiledFrame())    { tty.print("compiled"); }
       else if (f.isEntryFrame())       { tty.print("entry"); }
       else if (f.isNativeFrame())      { tty.print("native"); }
-      else if (f.isGlueFrame())        { tty.print("glue"); }
+      else if (f.isRuntimeFrame())     { tty.print("runtime"); }
       else { tty.print("external"); }
       tty.print(" frame with PC = " + f.getPC() + ", SP = " + f.getSP() + ", FP = " + f.getFP());
       if (f.isSignalHandlerFrameDbg()) {
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java
index fddbe3a..233bc17 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,10 +28,9 @@ import java.io.PrintStream;
 import java.net.*;
 import java.rmi.*;
 import sun.jvm.hotspot.debugger.*;
-import sun.jvm.hotspot.debugger.dbx.*;
+import sun.jvm.hotspot.debugger.bsd.*;
 import sun.jvm.hotspot.debugger.proc.*;
 import sun.jvm.hotspot.debugger.remote.*;
-import sun.jvm.hotspot.debugger.win32.*;
 import sun.jvm.hotspot.debugger.windbg.*;
 import sun.jvm.hotspot.debugger.linux.*;
 import sun.jvm.hotspot.memory.*;
@@ -337,6 +336,8 @@ public class HotSpotAgent {
                 setupDebuggerWin32();
             } else if (os.equals("linux")) {
                 setupDebuggerLinux();
+            } else if (os.equals("bsd")) {
+                setupDebuggerBsd();
             } else {
                 // Add support for more operating systems here
                 throw new DebuggerException("Operating system " + os + " not yet supported");
@@ -392,6 +393,10 @@ public class HotSpotAgent {
                 db = new HotSpotTypeDataBase(machDesc,
                 new LinuxVtblAccess(debugger, jvmLibNames),
                 debugger, jvmLibNames);
+            } else if (os.equals("bsd")) {
+                db = new HotSpotTypeDataBase(machDesc,
+                new BsdVtblAccess(debugger, jvmLibNames),
+                debugger, jvmLibNames);
             } else {
                 throw new DebuggerException("OS \"" + os + "\" not yet supported (no VtblAccess yet)");
             }
@@ -436,113 +441,35 @@ public class HotSpotAgent {
 
     private void setupDebuggerSolaris() {
         setupJVMLibNamesSolaris();
-        if(System.getProperty("sun.jvm.hotspot.debugger.useProcDebugger") != null) {
-            ProcDebuggerLocal dbg = new ProcDebuggerLocal(null, true);
-            debugger = dbg;
-            attachDebugger();
-
-            // Set up CPU-dependent stuff
-            if (cpu.equals("x86")) {
-                machDesc = new MachineDescriptionIntelX86();
-            } else if (cpu.equals("sparc")) {
-                int addressSize = dbg.getRemoteProcessAddressSize();
-                if (addressSize == -1) {
-                    throw new DebuggerException("Error occurred while trying to determine the remote process's " +
-                    "address size");
-                }
-
-                if (addressSize == 32) {
-                    machDesc = new MachineDescriptionSPARC32Bit();
-                } else if (addressSize == 64) {
-                    machDesc = new MachineDescriptionSPARC64Bit();
-                } else {
-                    throw new DebuggerException("Address size " + addressSize + " is not supported on SPARC");
-                }
-            } else if (cpu.equals("amd64")) {
-                machDesc = new MachineDescriptionAMD64();
-            } else {
-                throw new DebuggerException("Solaris only supported on sparc/sparcv9/x86/amd64");
-            }
-
-            dbg.setMachineDescription(machDesc);
-            return;
+        ProcDebuggerLocal dbg = new ProcDebuggerLocal(null, true);
+        debugger = dbg;
+        attachDebugger();
 
-        } else {
-            String dbxPathName;
-            String dbxPathPrefix;
-            String dbxSvcAgentDSOPathName;
-            String dbxSvcAgentDSOPathPrefix;
-            String[] dbxSvcAgentDSOPathNames = null;
-
-            // use path names/prefixes specified on command
-            dbxPathName = System.getProperty("dbxPathName");
-            if (dbxPathName == null) {
-                dbxPathPrefix = System.getProperty("dbxPathPrefix");
-                if (dbxPathPrefix == null) {
-                    dbxPathPrefix = defaultDbxPathPrefix;
-                }
-                dbxPathName = dbxPathPrefix + fileSep + os + fileSep + cpu + fileSep + "bin" + fileSep + "dbx";
+        // Set up CPU-dependent stuff
+        if (cpu.equals("x86")) {
+            machDesc = new MachineDescriptionIntelX86();
+        } else if (cpu.equals("sparc")) {
+            int addressSize = dbg.getRemoteProcessAddressSize();
+            if (addressSize == -1) {
+                throw new DebuggerException("Error occurred while trying to determine the remote process's " +
+                                            "address size");
             }
 
-            dbxSvcAgentDSOPathName = System.getProperty("dbxSvcAgentDSOPathName");
-            if (dbxSvcAgentDSOPathName != null) {
-                dbxSvcAgentDSOPathNames = new String[] { dbxSvcAgentDSOPathName } ;
+            if (addressSize == 32) {
+                machDesc = new MachineDescriptionSPARC32Bit();
+            } else if (addressSize == 64) {
+                machDesc = new MachineDescriptionSPARC64Bit();
             } else {
-                dbxSvcAgentDSOPathPrefix = System.getProperty("dbxSvcAgentDSOPathPrefix");
-                if (dbxSvcAgentDSOPathPrefix == null) {
-                    dbxSvcAgentDSOPathPrefix = defaultDbxSvcAgentDSOPathPrefix;
-                }
-                if (cpu.equals("sparc")) {
-                    dbxSvcAgentDSOPathNames = new String[] {
-                        // FIXME: bad hack for SPARC v9. This is necessary because
-                        // there are two dbx executables on SPARC, one for v8 and one
-                        // for v9, and it isn't obvious how to tell the two apart
-                        // using the dbx command line. See
-                        // DbxDebuggerLocal.importDbxModule().
-                        dbxSvcAgentDSOPathPrefix + fileSep + os + fileSep + cpu + "v9" + fileSep + "lib" +
-                        fileSep + "libsvc_agent_dbx.so",
-                        dbxSvcAgentDSOPathPrefix + fileSep + os + fileSep + cpu + fileSep + "lib" +
-                        fileSep + "libsvc_agent_dbx.so",
-                    };
-                } else {
-                    dbxSvcAgentDSOPathNames = new String[] {
-                        dbxSvcAgentDSOPathPrefix + fileSep + os + fileSep + cpu + fileSep + "lib" +
-                        fileSep + "libsvc_agent_dbx.so"
-                    };
-                }
+                throw new DebuggerException("Address size " + addressSize + " is not supported on SPARC");
             }
-
-            // Note we do not use a cache for the local debugger in server
-            // mode; it's taken care of on the client side
-            DbxDebuggerLocal dbg = new DbxDebuggerLocal(null, dbxPathName, dbxSvcAgentDSOPathNames, !isServer);
-            debugger = dbg;
-
-            attachDebugger();
-
-            // Set up CPU-dependent stuff
-            if (cpu.equals("x86")) {
-                machDesc = new MachineDescriptionIntelX86();
-            } else if (cpu.equals("sparc")) {
-                int addressSize = dbg.getRemoteProcessAddressSize();
-                if (addressSize == -1) {
-                    throw new DebuggerException("Error occurred while trying to determine the remote process's " +
-                    "address size. It's possible that the Serviceability Agent's dbx module failed to " +
-                    "initialize. Examine the standard output and standard error streams from the dbx " +
-                    "process for more information.");
-                }
-
-                if (addressSize == 32) {
-                    machDesc = new MachineDescriptionSPARC32Bit();
-                } else if (addressSize == 64) {
-                    machDesc = new MachineDescriptionSPARC64Bit();
-                } else {
-                    throw new DebuggerException("Address size " + addressSize + " is not supported on SPARC");
-                }
-            }
-
-            dbg.setMachineDescription(machDesc);
-
+        } else if (cpu.equals("amd64")) {
+            machDesc = new MachineDescriptionAMD64();
+        } else {
+            throw new DebuggerException("Solaris only supported on sparc/sparcv9/x86/amd64");
         }
+
+        dbg.setMachineDescription(machDesc);
+        return;
     }
 
     private void connectRemoteDebugger() throws DebuggerException {
@@ -557,6 +484,8 @@ public class HotSpotAgent {
             setupJVMLibNamesWin32();
         } else if (os.equals("linux")) {
             setupJVMLibNamesLinux();
+        } else if (os.equals("bsd")) {
+            setupJVMLibNamesBsd();
         } else {
             throw new RuntimeException("Unknown OS type");
         }
@@ -589,11 +518,7 @@ public class HotSpotAgent {
         // mode; it will be taken care of on the client side (once remote
         // debugging is implemented).
 
-        if (System.getProperty("sun.jvm.hotspot.debugger.useWindbgDebugger") != null) {
-            debugger = new WindbgDebuggerLocal(machDesc, !isServer);
-        } else {
-            debugger = new Win32DebuggerLocal(machDesc, !isServer);
-        }
+        debugger = new WindbgDebuggerLocal(machDesc, !isServer);
 
         attachDebugger();
 
@@ -638,6 +563,31 @@ public class HotSpotAgent {
         jvmLibNames = new String[] { "libjvm.so", "libjvm_g.so" };
     }
 
+    //
+    // BSD
+    //
+
+    private void setupDebuggerBsd() {
+        setupJVMLibNamesBsd();
+
+        if (cpu.equals("x86")) {
+            machDesc = new MachineDescriptionIntelX86();
+        } else if (cpu.equals("amd64")) {
+            machDesc = new MachineDescriptionAMD64();
+        } else {
+            throw new DebuggerException("BSD only supported on x86/amd64");
+        }
+
+        BsdDebuggerLocal dbg = new BsdDebuggerLocal(machDesc, !isServer);
+        debugger = dbg;
+
+        attachDebugger();
+    }
+
+    private void setupJVMLibNamesBsd() {
+        jvmLibNames = new String[] { "libjvm.so", "libjvm_g.so" };
+    }
+
     /** Convenience routine which should be called by per-platform
       debugger setup. Should not be called when startupMode is
       REMOTE_MODE. */
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java
index fd35915..fd9ff62 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java
@@ -87,6 +87,7 @@ public class HotSpotTypeDataBase extends BasicTypeDataBase {
     readVMStructs();
     readVMIntConstants();
     readVMLongConstants();
+    readExternalDefinitions();
   }
 
   public Type lookupType(String cTypeName, boolean throwException) {
@@ -98,9 +99,9 @@ public class HotSpotTypeDataBase extends BasicTypeDataBase {
         fieldType = (BasicType)lookupType(cTypeName.substring(0, cTypeName.length() - 6), false);
     }
     if (fieldType == null) {
-      if (cTypeName.startsWith("GrowableArray<") && cTypeName.endsWith(">*")) {
+      if (cTypeName.startsWith("GrowableArray<") && cTypeName.endsWith(">")) {
         String ttype = cTypeName.substring("GrowableArray<".length(),
-                                            cTypeName.length() - 2);
+                                            cTypeName.length() - 1);
         Type templateType = lookupType(ttype, false);
         if (templateType == null && typeNameIsPointerType(ttype)) {
           templateType = recursiveCreateBasicPointerType(ttype);
@@ -108,7 +109,21 @@ public class HotSpotTypeDataBase extends BasicTypeDataBase {
         if (templateType == null) {
           lookupOrFail(ttype);
         }
-        fieldType = recursiveCreateBasicPointerType(cTypeName);
+
+        BasicType basicTargetType = createBasicType(cTypeName, false, false, false);
+
+        // transfer fields from GenericGrowableArray to template instance
+        BasicType generic = lookupOrFail("GenericGrowableArray");
+        BasicType specific = lookupOrFail("GrowableArray<int>");
+        basicTargetType.setSize(specific.getSize());
+        Iterator fields = generic.getFields();
+        while (fields.hasNext()) {
+          Field f = (Field)fields.next();
+          basicTargetType.addField(internalCreateField(basicTargetType, f.getName(),
+                                                       f.getType(), f.isStatic(),
+                                                       f.getOffset(), null));
+        }
+        fieldType = basicTargetType;
       }
     }
     if (fieldType == null && typeNameIsPointerType(cTypeName)) {
@@ -208,6 +223,156 @@ public class HotSpotTypeDataBase extends BasicTypeDataBase {
     return type;
   }
 
+  private void readExternalDefinitions() {
+    String file = System.getProperty("sun.jvm.hotspot.typedb");
+    if (file != null) {
+      System.out.println("Reading " + file);
+      BufferedReader in = null;
+      try {
+        StreamTokenizer t = new StreamTokenizer(in = new BufferedReader(new InputStreamReader(new FileInputStream(file))));
+        t.resetSyntax();
+        t.wordChars('\u0000','\uFFFF');
+        t.whitespaceChars(' ', ' ');
+        t.whitespaceChars('\n', '\n');
+        t.whitespaceChars('\r', '\r');
+        t.quoteChar('\"');
+        t.eolIsSignificant(true);
+        while (t.nextToken() != StreamTokenizer.TT_EOF) {
+          if (t.ttype == StreamTokenizer.TT_EOL) {
+            continue;
+          }
+
+          if (t.sval.equals("field")) {
+            t.nextToken();
+            BasicType containingType = (BasicType)lookupType(t.sval);
+            t.nextToken();
+            String fieldName = t.sval;
+
+            // The field's Type must already be in the database -- no exceptions
+            t.nextToken();
+            Type fieldType = lookupType(t.sval);
+            t.nextToken();
+            boolean isStatic = Boolean.valueOf(t.sval).booleanValue();
+            t.nextToken();
+            long offset = Long.parseLong(t.sval);
+            t.nextToken();
+            Address staticAddress = null;
+            if (isStatic) {
+              throw new InternalError("static fields not supported");
+            }
+
+            // check to see if the field already exists
+            Iterator i = containingType.getFields();
+            boolean defined = false;
+            while (i.hasNext()) {
+              Field f = (Field) i.next();
+              if (f.getName().equals(fieldName)) {
+                if (f.isStatic() != isStatic) {
+                  throw new RuntimeException("static/nonstatic mismatch: " + fieldName);
+                }
+                if (!isStatic) {
+                  if (f.getOffset() != offset) {
+                    throw new RuntimeException("bad redefinition of field offset: " + fieldName);
+                  }
+                } else {
+                  if (!f.getStaticFieldAddress().equals(staticAddress)) {
+                    throw new RuntimeException("bad redefinition of field location: " + fieldName);
+                  }
+                }
+                if (f.getType() != fieldType) {
+                  System.out.println(fieldType);
+                  System.out.println(f.getType());
+                  throw new RuntimeException("bad redefinition of field type: " + fieldName);
+                }
+                defined = true;
+                break;
+              }
+            }
+
+            if (!defined) {
+              // Create field by type
+              createField(containingType,
+                          fieldName, fieldType,
+                          isStatic,
+                          offset,
+                          staticAddress);
+            }
+          } else if (t.sval.equals("type")) {
+            t.nextToken();
+            String typeName = t.sval;
+            t.nextToken();
+            String superclassName = t.sval;
+            if (superclassName.equals("null")) {
+              superclassName = null;
+            }
+            t.nextToken();
+            boolean isOop = Boolean.valueOf(t.sval).booleanValue();
+            t.nextToken();
+            boolean isInteger = Boolean.valueOf(t.sval).booleanValue();
+            t.nextToken();
+            boolean isUnsigned = Boolean.valueOf(t.sval).booleanValue();
+            t.nextToken();
+            long size = Long.parseLong(t.sval);
+
+            BasicType type = null;
+            try {
+              type = (BasicType)lookupType(typeName);
+            } catch (RuntimeException e) {
+            }
+            if (type != null) {
+              if (type.isOopType() != isOop) {
+                throw new RuntimeException("oop mismatch in type definition: " + typeName);
+              }
+              if (type.isCIntegerType() != isInteger) {
+                throw new RuntimeException("integer type mismatch in type definition: " + typeName);
+              }
+              if (type.isCIntegerType() && (((CIntegerType)type).isUnsigned()) != isUnsigned) {
+                throw new RuntimeException("unsigned mismatch in type definition: " + typeName);
+              }
+              if (type.getSuperclass() == null) {
+                if (superclassName != null) {
+                  if (type.getSize() == -1) {
+                    type.setSuperclass(lookupType(superclassName));
+                  } else {
+                    throw new RuntimeException("unexpected superclass in type definition: " + typeName);
+                  }
+                }
+              } else {
+                if (superclassName == null) {
+                  throw new RuntimeException("missing superclass in type definition: " + typeName);
+                }
+                if (!type.getSuperclass().getName().equals(superclassName)) {
+                  throw new RuntimeException("incorrect superclass in type definition: " + typeName);
+                }
+              }
+              if (type.getSize() != size) {
+                if (type.getSize() == -1 || type.getSize() == 0) {
+                  type.setSize(size);
+                } else {
+                  throw new RuntimeException("size mismatch in type definition: " + typeName + ": " + type.getSize() + " != " + size);
+                }
+              }
+            }
+
+            if (lookupType(typeName, false) == null) {
+              // Create type
+              createType(typeName, superclassName, isOop, isInteger, isUnsigned, size);
+            }
+          } else {
+            throw new InternalError("\"" + t.sval + "\"");
+          }
+        }
+      } catch (IOException ioe) {
+        ioe.printStackTrace();
+      } finally {
+        try {
+          in.close();
+        } catch (Exception e) {
+        }
+      }
+    }
+  }
+
   private void readVMStructs() {
     // Get the variables we need in order to traverse the VMStructEntry[]
     long structEntryTypeNameOffset;
@@ -504,20 +669,6 @@ public class HotSpotTypeDataBase extends BasicTypeDataBase {
           BasicType basicTargetType = createBasicType(targetTypeName, false, true, true);
           basicTargetType.setSize(1);
           targetType = basicTargetType;
-        } else if (targetTypeName.startsWith("GrowableArray<")) {
-          BasicType basicTargetType = createBasicType(targetTypeName, false, false, false);
-
-          // transfer fields from GenericGrowableArray to template instance
-          BasicType generic = lookupOrFail("GenericGrowableArray");
-          basicTargetType.setSize(generic.getSize());
-          Iterator fields = generic.getFields();
-          while (fields.hasNext()) {
-              Field f = (Field)fields.next();
-              basicTargetType.addField(internalCreateField(basicTargetType, f.getName(),
-                                                           f.getType(), f.isStatic(),
-                                                           f.getOffset(), null));
-          }
-          targetType = basicTargetType;
         } else {
           if (DEBUG) {
             System.err.println("WARNING: missing target type \"" + targetTypeName + "\" for pointer type \"" + typeName + "\"");
@@ -572,7 +723,7 @@ public class HotSpotTypeDataBase extends BasicTypeDataBase {
 
         // Classes are created with a size of UNINITIALIZED_SIZE.
         // Set size if necessary.
-        if (curType.getSize() == UNINITIALIZED_SIZE) {
+        if (curType.getSize() == UNINITIALIZED_SIZE || curType.getSize() == 0) {
             curType.setSize(size);
         } else {
             if (curType.getSize() != size) {
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java
index 5798a40..a0b0a99 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,18 +25,12 @@
 package sun.jvm.hotspot;
 
 import sun.jvm.hotspot.debugger.*;
-import sun.jvm.hotspot.debugger.dbx.*;
+import sun.jvm.hotspot.debugger.proc.*;
 
 // A test of the debugger backend. This should be used to connect to
 // the helloWorld.cpp program.
 
 public class TestDebugger {
-  // FIXME: make these configurable, i.e., via a dotfile
-  private static final String dbxPathName               = "/export/home/kbr/ws/dbx_61/dev/Derived-sparcv9-S2./src/dbx/dbx";
-  private static final String[] dbxSvcAgentDSOPathNames =
-    new String[] {
-      "/export/home/kbr/main/sa_baseline/src/os/solaris/agent/libsvc_agent_dbx.so"
-    };
 
   private static void usage() {
     System.out.println("usage: java TestDebugger [pid]");
@@ -58,8 +52,7 @@ public class TestDebugger {
         usage();
       }
 
-      JVMDebugger debugger = new DbxDebuggerLocal(new MachineDescriptionSPARC64Bit(),
-                                                  dbxPathName, dbxSvcAgentDSOPathNames, true);
+      JVMDebugger debugger = new ProcDebuggerLocal(null, true);
 
       try {
         debugger.attach(pid);
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpot.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpot.java
index f925206..668fba7 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpot.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpot.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,7 +34,7 @@ import javax.swing.filechooser.*;
 import sun.jvm.hotspot.debugger.*;
 import sun.jvm.hotspot.debugger.cdbg.*;
 import sun.jvm.hotspot.debugger.posix.*;
-import sun.jvm.hotspot.debugger.win32.*;
+import sun.jvm.hotspot.debugger.windbg.*;
 import sun.jvm.hotspot.livejvm.*;
 import sun.jvm.hotspot.memory.*;
 import sun.jvm.hotspot.oops.*;
@@ -604,7 +604,7 @@ public class BugSpot extends JPanel {
           throw new DebuggerException("Unsupported CPU \"" + cpu + "\" for Windows");
         }
 
-        localDebugger = new Win32DebuggerLocal(new MachineDescriptionIntelX86(), true);
+        localDebugger = new WindbgDebuggerLocal(new MachineDescriptionIntelX86(), true);
       } else if (os.equals("linux")) {
         if (!cpu.equals("x86")) {
           throw new DebuggerException("Unsupported CPU \"" + cpu + "\" for Linux");
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java
index 84071dc..bb0a444 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,10 +29,9 @@ import java.net.*;
 import java.rmi.*;
 import sun.jvm.hotspot.*;
 import sun.jvm.hotspot.debugger.*;
-import sun.jvm.hotspot.debugger.dbx.*;
+import sun.jvm.hotspot.debugger.bsd.*;
 import sun.jvm.hotspot.debugger.proc.*;
 import sun.jvm.hotspot.debugger.cdbg.*;
-import sun.jvm.hotspot.debugger.win32.*;
 import sun.jvm.hotspot.debugger.windbg.*;
 import sun.jvm.hotspot.debugger.linux.*;
 import sun.jvm.hotspot.debugger.sparc.*;
@@ -516,6 +515,8 @@ public class BugSpotAgent {
                 setupDebuggerWin32();
             } else if (os.equals("linux")) {
                 setupDebuggerLinux();
+            } else if (os.equals("bsd")) {
+                setupDebuggerBsd();
             } else {
                 // Add support for more operating systems here
                 throw new DebuggerException("Operating system " + os + " not yet supported");
@@ -567,6 +568,9 @@ public class BugSpotAgent {
             } else if (os.equals("linux")) {
                 db = new HotSpotTypeDataBase(machDesc, new LinuxVtblAccess(debugger, jvmLibNames),
                 debugger, jvmLibNames);
+            } else if (os.equals("bsd")) {
+                db = new HotSpotTypeDataBase(machDesc, new BsdVtblAccess(debugger, jvmLibNames),
+                debugger, jvmLibNames);
             } else {
                 throw new DebuggerException("OS \"" + os + "\" not yet supported (no VtblAccess implemented yet)");
             }
@@ -627,104 +631,33 @@ public class BugSpotAgent {
 
     private void setupDebuggerSolaris() {
         setupJVMLibNamesSolaris();
-        String prop = System.getProperty("sun.jvm.hotspot.debugger.useProcDebugger");
-        if (prop != null && !prop.equals("false")) {
-            ProcDebuggerLocal dbg = new ProcDebuggerLocal(null, true);
-            debugger = dbg;
-            attachDebugger();
-
-            // Set up CPU-dependent stuff
-            if (cpu.equals("x86")) {
-                machDesc = new MachineDescriptionIntelX86();
-            } else if (cpu.equals("sparc")) {
-                int addressSize = dbg.getRemoteProcessAddressSize();
-                if (addressSize == -1) {
-                    throw new DebuggerException("Error occurred while trying to determine the remote process's address size");
-                }
-
-                if (addressSize == 32) {
-                    machDesc = new MachineDescriptionSPARC32Bit();
-                } else if (addressSize == 64) {
-                    machDesc = new MachineDescriptionSPARC64Bit();
-                } else {
-                    throw new DebuggerException("Address size " + addressSize + " is not supported on SPARC");
-                }
-            } else if (cpu.equals("amd64")) {
-                machDesc = new MachineDescriptionAMD64();
-            } else {
-                throw new DebuggerException("Solaris only supported on sparc/sparcv9/x86/amd64");
-            }
+        ProcDebuggerLocal dbg = new ProcDebuggerLocal(null, true);
+        debugger = dbg;
+        attachDebugger();
 
-            dbg.setMachineDescription(machDesc);
-            return;
-        } else {
-            String dbxPathName;
-            String dbxPathPrefix;
-            String dbxSvcAgentDSOPathName;
-            String dbxSvcAgentDSOPathPrefix;
-            String[] dbxSvcAgentDSOPathNames = null;
-
-            // use path names/prefixes specified on command
-            dbxPathName = System.getProperty("dbxPathName");
-            if (dbxPathName == null) {
-                dbxPathPrefix = System.getProperty("dbxPathPrefix");
-                if (dbxPathPrefix == null) {
-                    dbxPathPrefix = defaultDbxPathPrefix;
-                }
-                dbxPathName = dbxPathPrefix + fileSep + os + fileSep + cpu + fileSep + "bin" + fileSep + "dbx";
+        // Set up CPU-dependent stuff
+        if (cpu.equals("x86")) {
+            machDesc = new MachineDescriptionIntelX86();
+        } else if (cpu.equals("sparc")) {
+            int addressSize = dbg.getRemoteProcessAddressSize();
+            if (addressSize == -1) {
+                throw new DebuggerException("Error occurred while trying to determine the remote process's address size");
             }
 
-            dbxSvcAgentDSOPathName = System.getProperty("dbxSvcAgentDSOPathName");
-            if (dbxSvcAgentDSOPathName != null) {
-                dbxSvcAgentDSOPathNames = new String[] { dbxSvcAgentDSOPathName } ;
+            if (addressSize == 32) {
+                machDesc = new MachineDescriptionSPARC32Bit();
+            } else if (addressSize == 64) {
+                machDesc = new MachineDescriptionSPARC64Bit();
             } else {
-                dbxSvcAgentDSOPathPrefix = System.getProperty("dbxSvcAgentDSOPathPrefix");
-                if (dbxSvcAgentDSOPathPrefix == null) {
-                    dbxSvcAgentDSOPathPrefix = defaultDbxSvcAgentDSOPathPrefix;
-                }
-                if (cpu.equals("sparc")) {
-                    dbxSvcAgentDSOPathNames = new String[] {
-                        // FIXME: bad hack for SPARC v9. This is necessary because
-                        // there are two dbx executables on SPARC, one for v8 and one
-                        // for v9, and it isn't obvious how to tell the two apart
-                        // using the dbx command line. See
-                        // DbxDebuggerLocal.importDbxModule().
-                        dbxSvcAgentDSOPathPrefix + fileSep + os + fileSep + cpu + "v9" + fileSep + "lib" + fileSep + "libsvc_agent_dbx.so",
-                        dbxSvcAgentDSOPathPrefix + fileSep + os + fileSep + cpu + fileSep + "lib" + fileSep + "libsvc_agent_dbx.so",
-                    };
-                } else {
-                    dbxSvcAgentDSOPathNames = new String[] {
-                        dbxSvcAgentDSOPathPrefix + fileSep + os + fileSep + cpu + fileSep + "lib" + fileSep + "libsvc_agent_dbx.so"
-                    };
-                }
-            }
-            // Note we do not use a cache for the local debugger in server
-            // mode; it's taken care of on the client side
-            DbxDebuggerLocal dbg = new DbxDebuggerLocal(null, dbxPathName, dbxSvcAgentDSOPathNames, !isServer);
-            debugger = dbg;
-
-            attachDebugger();
-
-            // Set up CPU-dependent stuff
-            if (cpu.equals("x86")) {
-                machDesc = new MachineDescriptionIntelX86();
-            } else if (cpu.equals("sparc")) {
-                int addressSize = dbg.getRemoteProcessAddressSize();
-                if (addressSize == -1) {
-                    throw new DebuggerException("Error occurred while trying to determine the remote process's address size. It's possible that the Serviceability Agent's dbx module failed to initialize. Examine the standard output and standard error streams from the dbx process for more information.");
-                }
-
-                if (addressSize == 32) {
-                    machDesc = new MachineDescriptionSPARC32Bit();
-                } else if (addressSize == 64) {
-                    machDesc = new MachineDescriptionSPARC64Bit();
-                } else {
-                    throw new DebuggerException("Address size " + addressSize + " is not supported on SPARC");
-                }
+                throw new DebuggerException("Address size " + addressSize + " is not supported on SPARC");
             }
-
-            dbg.setMachineDescription(machDesc);
+        } else if (cpu.equals("amd64")) {
+            machDesc = new MachineDescriptionAMD64();
+        } else {
+            throw new DebuggerException("Solaris only supported on sparc/sparcv9/x86/amd64");
         }
+
+        dbg.setMachineDescription(machDesc);
     }
 
     private void connectRemoteDebugger() throws DebuggerException {
@@ -739,6 +672,8 @@ public class BugSpotAgent {
             setupJVMLibNamesWin32();
         } else if (os.equals("linux")) {
             setupJVMLibNamesLinux();
+        } else if (os.equals("bsd")) {
+            setupJVMLibNamesBsd();
         } else {
             throw new RuntimeException("Unknown OS type");
         }
@@ -772,11 +707,7 @@ public class BugSpotAgent {
         // mode; it will be taken care of on the client side (once remote
         // debugging is implemented).
 
-        if (System.getProperty("sun.jvm.hotspot.debugger.useWindbgDebugger") != null) {
-            debugger = new WindbgDebuggerLocal(machDesc, !isServer);
-        } else {
-            debugger = new Win32DebuggerLocal(machDesc, !isServer);
-        }
+        debugger = new WindbgDebuggerLocal(machDesc, !isServer);
 
         attachDebugger();
     }
@@ -822,6 +753,34 @@ public class BugSpotAgent {
         setupJVMLibNamesSolaris();
     }
 
+    //
+    // BSD
+    //
+
+    private void setupDebuggerBsd() {
+        setupJVMLibNamesBsd();
+
+        if (cpu.equals("x86")) {
+            machDesc = new MachineDescriptionIntelX86();
+        } else if (cpu.equals("amd64")) {
+            machDesc = new MachineDescriptionAMD64();
+        } else {
+            throw new DebuggerException("Bsd only supported on x86/amd64");
+        }
+
+        // Note we do not use a cache for the local debugger in server
+        // mode; it will be taken care of on the client side (once remote
+        // debugging is implemented).
+
+        debugger = new BsdDebuggerLocal(machDesc, !isServer);
+        attachDebugger();
+    }
+
+    private void setupJVMLibNamesBsd() {
+        // same as solaris
+        setupJVMLibNamesSolaris();
+    }
+
     /** Convenience routine which should be called by per-platform
       debugger setup. Should not be called when startupMode is
       REMOTE_MODE. */
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlass.java
new file mode 100644
index 0000000..1be16ea
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlass.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciArrayKlass extends ciKlass {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciArrayKlass");
+    dimensionField = new IntField(type.getJIntField("_dimension"), 0);
+  }
+
+  private static IntField dimensionField;
+
+  public ciArrayKlass(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlassKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlassKlass.java
new file mode 100644
index 0000000..d188105
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciArrayKlassKlass.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciArrayKlassKlass extends ciKlassKlass {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciArrayKlassKlass");
+  }
+
+
+  public ciArrayKlassKlass(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciConstant.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciConstant.java
new file mode 100644
index 0000000..ab69f43
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciConstant.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciConstant extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciConstant");
+    valueObjectField = type.getAddressField("_value._object");
+    valueDoubleField = type.getJDoubleField("_value._double");
+    valueFloatField = type.getJFloatField("_value._float");
+    valueLongField = type.getJLongField("_value._long");
+    valueIntField = type.getJIntField("_value._int");
+    typeField = new CIntField(type.getCIntegerField("_type"), 0);
+  }
+
+  private static AddressField valueObjectField;
+  private static JDoubleField valueDoubleField;
+  private static JFloatField valueFloatField;
+  private static JLongField valueLongField;
+  private static JIntField valueIntField;
+  private static CIntField typeField;
+
+  public ciConstant(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciEnv.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciEnv.java
new file mode 100644
index 0000000..eb48eed
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciEnv.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.opto.*;
+import sun.jvm.hotspot.compiler.CompileTask;
+import sun.jvm.hotspot.prims.JvmtiExport;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.GrowableArray;
+
+public class ciEnv extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciEnv");
+    dependenciesField = type.getAddressField("_dependencies");
+    factoryField = type.getAddressField("_factory");
+    compilerDataField = type.getAddressField("_compiler_data");
+    taskField = type.getAddressField("_task");
+    systemDictionaryModificationCounterField = new CIntField(type.getCIntegerField("_system_dictionary_modification_counter"), 0);
+  }
+
+  private static AddressField dependenciesField;
+  private static AddressField factoryField;
+  private static AddressField compilerDataField;
+  private static AddressField taskField;
+  private static CIntField systemDictionaryModificationCounterField;
+
+  public ciEnv(Address addr) {
+    super(addr);
+  }
+
+  public Compile compilerData() {
+    return new Compile(compilerDataField.getValue(this.getAddress()));
+  }
+
+  public ciObjectFactory factory() {
+    return new ciObjectFactory(factoryField.getValue(this.getAddress()));
+  }
+
+  public CompileTask task() {
+    return new CompileTask(taskField.getValue(this.getAddress()));
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciField.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciField.java
new file mode 100644
index 0000000..80b1b33
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciField.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciField extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciField");
+    constantValueField = type.getAddressField("_constant_value");
+    isConstantField = type.getAddressField("_is_constant");
+    offsetField = new CIntField(type.getCIntegerField("_offset"), 0);
+    signatureField = type.getAddressField("_signature");
+    nameField = type.getAddressField("_name");
+    holderField = type.getAddressField("_holder");
+  }
+
+  private static AddressField constantValueField;
+  private static AddressField isConstantField;
+  private static CIntField offsetField;
+  private static AddressField signatureField;
+  private static AddressField nameField;
+  private static AddressField holderField;
+
+  public ciField(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciInstance.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciInstance.java
new file mode 100644
index 0000000..6a59cab
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciInstance.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciInstance extends ciObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciInstance");
+  }
+
+
+  public ciInstance(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlass.java
new file mode 100644
index 0000000..df498c1
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlass.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.memory.SystemDictionary;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.Type;
+import sun.jvm.hotspot.types.TypeDataBase;
+import sun.jvm.hotspot.types.WrongTypeException;
+
+public class ciInstanceKlass extends ciKlass {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciInstanceKlass");
+    initStateField = new CIntField(type.getCIntegerField("_init_state"), 0);
+    isSharedField = new CIntField(type.getCIntegerField("_is_shared"), 0);
+    CLASS_STATE_LINKED = db.lookupIntConstant("instanceKlass::linked").intValue();
+    CLASS_STATE_FULLY_INITIALIZED = db.lookupIntConstant("instanceKlass::fully_initialized").intValue();
+  }
+
+  private static CIntField initStateField;
+  private static CIntField isSharedField;
+  private static int CLASS_STATE_LINKED;
+  private static int CLASS_STATE_FULLY_INITIALIZED;
+
+  public ciInstanceKlass(Address addr) {
+    super(addr);
+  }
+
+  public int initState() {
+    int initState = (int)initStateField.getValue(getAddress());
+    if (isShared() && initState < CLASS_STATE_LINKED) {
+      InstanceKlass ik = (InstanceKlass)getOop();
+      initState = ik.getInitStateAsInt();
+    }
+    return initState;
+  }
+
+  public boolean isShared() {
+    return isSharedField.getValue(getAddress()) != 0;
+  }
+
+  public boolean isLinked() {
+    return initState() >= CLASS_STATE_LINKED;
+  }
+
+  public boolean isInitialized() {
+    return initState() == CLASS_STATE_FULLY_INITIALIZED;
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlassKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlassKlass.java
new file mode 100644
index 0000000..b20f036
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciInstanceKlassKlass.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciInstanceKlassKlass extends ciKlassKlass {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciInstanceKlassKlass");
+  }
+
+
+  public ciInstanceKlassKlass(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciKlass.java
new file mode 100644
index 0000000..fc92044
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciKlass.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciKlass extends ciType {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciKlass");
+    nameField = type.getAddressField("_name");
+  }
+
+  private static AddressField nameField;
+
+  public String name() {
+    ciSymbol sym = new ciSymbol(nameField.getValue(getAddress()));
+    return sym.asUtf88();
+  }
+
+  public ciKlass(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciKlassKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciKlassKlass.java
new file mode 100644
index 0000000..f8d4db1
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciKlassKlass.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciKlassKlass extends ciKlass {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciKlassKlass");
+  }
+
+
+  public ciKlassKlass(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethod.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethod.java
new file mode 100644
index 0000000..c0ae576
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethod.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.code.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciMethod extends ciObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciMethod");
+    interpreterThrowoutCountField = new CIntField(type.getCIntegerField("_interpreter_throwout_count"), 0);
+    interpreterInvocationCountField = new CIntField(type.getCIntegerField("_interpreter_invocation_count"), 0);
+    try {
+        // XXX
+        instructionsSizeField = new CIntField(type.getCIntegerField("_instructions_size"), 0);
+    } catch (Exception e) {
+    }
+  }
+
+  private static CIntField interpreterThrowoutCountField;
+  private static CIntField interpreterInvocationCountField;
+  private static CIntField instructionsSizeField;
+
+  public ciMethod(Address addr) {
+    super(addr);
+  }
+
+  public Method method() {
+    return (Method)getOop();
+  }
+
+  public int interpreterThrowoutCount() {
+    return (int) interpreterThrowoutCountField.getValue(getAddress());
+  }
+
+  public int interpreterInvocationCount() {
+    return (int) interpreterInvocationCountField.getValue(getAddress());
+  }
+
+  public int instructionsSize() {
+    if (instructionsSizeField == null) {
+      // XXX
+      Method method = (Method)getOop();
+      NMethod nm = method.getNativeMethod();
+      if (nm != null) return (int)nm.codeEnd().minus(nm.getVerifiedEntryPoint());
+      return 0;
+    }
+    return (int) instructionsSizeField.getValue(getAddress());
+  }
+
+  public void printShortName(PrintStream st) {
+    Method method = (Method)getOop();
+    st.printf(" %s::%s", method.getMethodHolder().getName().asString().replace('/', '.'),
+              method.getName().asString());
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodData.java
new file mode 100644
index 0000000..ca5628d
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodData.java
@@ -0,0 +1,177 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciMethodData extends ciObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciMethodData");
+    origField = type.getAddressField("_orig");
+    currentMileageField = new CIntField(type.getCIntegerField("_current_mileage"), 0);
+    argReturnedField = new CIntField(type.getCIntegerField("_arg_returned"), 0);
+    argStackField = new CIntField(type.getCIntegerField("_arg_stack"), 0);
+    argLocalField = new CIntField(type.getCIntegerField("_arg_local"), 0);
+    eflagsField = new CIntField(type.getCIntegerField("_eflags"), 0);
+    hintDiField = new CIntField(type.getCIntegerField("_hint_di"), 0);
+    currentMileageField = new CIntField(type.getCIntegerField("_current_mileage"), 0);
+    dataField = type.getAddressField("_data");
+    extraDataSizeField = new CIntField(type.getCIntegerField("_extra_data_size"), 0);
+    dataSizeField = new CIntField(type.getCIntegerField("_data_size"), 0);
+    stateField = new CIntField(type.getCIntegerField("_state"), 0);
+    sizeofMethodDataOopDesc = (int)db.lookupType("methodDataOopDesc").getSize();;
+  }
+
+  private static AddressField origField;
+  private static CIntField currentMileageField;
+  private static CIntField argReturnedField;
+  private static CIntField argStackField;
+  private static CIntField argLocalField;
+  private static CIntField eflagsField;
+  private static CIntField hintDiField;
+  private static AddressField dataField;
+  private static CIntField extraDataSizeField;
+  private static CIntField dataSizeField;
+  private static CIntField stateField;
+  private static int sizeofMethodDataOopDesc;
+
+  public ciMethodData(Address addr) {
+    super(addr);
+  }
+
+  private byte[] fetchDataAt(Address base, long size) {
+    byte[] result = new byte[(int)size];
+    for (int i = 0; i < size; i++) {
+      result[i] = base.getJByteAt(i);
+    }
+    return result;
+  }
+
+  public byte[] orig() {
+    // fetch the orig methodDataOopDesc data between header and dataSize
+    Address base = getAddress().addOffsetTo(origField.getOffset());
+    byte[] result = new byte[MethodData.sizeofMethodDataOopDesc];
+    for (int i = 0; i < MethodData.sizeofMethodDataOopDesc; i++) {
+      result[i] = base.getJByteAt(i);
+    }
+    return result;
+  }
+
+  public  long[] data() {
+    // Read the data as an array of intptr_t elements
+    Address base = dataField.getValue(getAddress());
+    int elements = dataSize() / MethodData.cellSize;
+    long[] result = new long[elements];
+    for (int i = 0; i < elements; i++) {
+      Address value = base.getAddressAt(i * MethodData.cellSize);
+      if (value != null) {
+        result[i] = value.minus(null);
+      }
+    }
+    return result;
+  }
+
+  int dataSize() {
+    return (int)dataSizeField.getValue(getAddress());
+  }
+
+  int state() {
+    return (int)stateField.getValue(getAddress());
+  }
+
+  int currentMileage() {
+    return (int)currentMileageField.getValue(getAddress());
+  }
+
+  boolean outOfBounds(int dataIndex) {
+    return dataIndex >= dataSize();
+  }
+
+  ProfileData dataAt(int dataIndex) {
+    if (outOfBounds(dataIndex)) {
+      return null;
+    }
+    DataLayout dataLayout = new DataLayout(dataField.getValue(getAddress()), dataIndex);
+
+    switch (dataLayout.tag()) {
+    case DataLayout.noTag:
+    default:
+      throw new InternalError();
+    case DataLayout.bitDataTag:
+      return new BitData(dataLayout);
+    case DataLayout.counterDataTag:
+      return new CounterData(dataLayout);
+    case DataLayout.jumpDataTag:
+      return new JumpData(dataLayout);
+    case DataLayout.receiverTypeDataTag:
+      return new ciReceiverTypeData(dataLayout);
+    case DataLayout.virtualCallDataTag:
+      return new ciVirtualCallData(dataLayout);
+    case DataLayout.retDataTag:
+      return new RetData(dataLayout);
+    case DataLayout.branchDataTag:
+      return new BranchData(dataLayout);
+    case DataLayout.multiBranchDataTag:
+      return new MultiBranchData(dataLayout);
+    }
+  }
+
+  int dpToDi(int dp) {
+    return dp;
+  }
+
+  int firstDi() { return 0; }
+  ProfileData firstData() { return dataAt(firstDi()); }
+  ProfileData nextData(ProfileData current) {
+    int currentIndex = dpToDi(current.dp());
+    int nextIndex = currentIndex + current.sizeInBytes();
+    return dataAt(nextIndex);
+  }
+  boolean isValid(ProfileData current) { return current != null; }
+
+  public void printDataOn(PrintStream st) {
+    ProfileData data = firstData();
+    for ( ; isValid(data); data = nextData(data)) {
+      st.print(dpToDi(data.dp()));
+      st.print(" ");
+      // st->fillTo(6);
+      data.printDataOn(st);
+    }
+  }
+
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodKlass.java
new file mode 100644
index 0000000..918de77
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodKlass.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciMethodKlass extends ciKlass {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciMethodKlass");
+  }
+
+
+  public ciMethodKlass(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlass.java
new file mode 100644
index 0000000..c412dee
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlass.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciObjArrayKlass extends ciArrayKlass {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciObjArrayKlass");
+    elementKlassField = type.getAddressField("_element_klass");
+    baseElementKlassField = type.getAddressField("_base_element_klass");
+  }
+
+  private static AddressField elementKlassField;
+  private static AddressField baseElementKlassField;
+
+  public ciObjArrayKlass(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlassKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlassKlass.java
new file mode 100644
index 0000000..98078b0
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciObjArrayKlassKlass.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciObjArrayKlassKlass extends ciArrayKlassKlass {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciObjArrayKlassKlass");
+  }
+
+
+  public ciObjArrayKlassKlass(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciObject.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciObject.java
new file mode 100644
index 0000000..efd33d9
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciObject.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciObject extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciObject");
+    identField = new CIntField(type.getCIntegerField("_ident"), 0);
+    klassField = type.getAddressField("_klass");
+    handleField = type.getAddressField("_handle");
+  }
+
+  private static CIntField identField;
+  private static AddressField klassField;
+  private static AddressField handleField;
+
+  public Oop getOop() {
+    OopHandle oh =  handleField.getValue(getAddress()).getOopHandleAt(0);
+    return VM.getVM().getObjectHeap().newOop(oh);
+  }
+
+  public ciObject(Address addr) {
+    super(addr);
+  }
+
+  public void printOn(PrintStream out) {
+    getOop().printValueOn(out);
+    out.println();
+  }
+
+  public String toString() {
+    return getOop().toString();
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciObjectFactory.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciObjectFactory.java
new file mode 100644
index 0000000..23f074b
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciObjectFactory.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.lang.reflect.Constructor;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.utilities.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciObjectFactory extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciObjectFactory");
+    unloadedMethodsField = type.getAddressField("_unloaded_methods");
+    ciObjectsField = type.getAddressField("_ci_objects");
+    symbolsField = type.getAddressField("_symbols");
+
+    ciObjectConstructor = new VirtualBaseConstructor<ciObject>(db, db.lookupType("ciObject"), "sun.jvm.hotspot.ci", ciObject.class);
+    ciSymbolConstructor = new VirtualBaseConstructor<ciSymbol>(db, db.lookupType("ciSymbol"), "sun.jvm.hotspot.ci", ciSymbol.class);
+  }
+
+  private static AddressField unloadedMethodsField;
+  private static AddressField ciObjectsField;
+  private static AddressField symbolsField;
+
+  private static VirtualBaseConstructor<ciObject> ciObjectConstructor;
+  private static VirtualBaseConstructor<ciSymbol> ciSymbolConstructor;
+
+  public static ciObject get(Address addr) {
+    if (addr == null) return null;
+
+    return (ciObject)ciObjectConstructor.instantiateWrapperFor(addr);
+  }
+
+  public GrowableArray<ciObject> objects() {
+    return GrowableArray.create(ciObjectsField.getValue(getAddress()), ciObjectConstructor);
+  }
+
+  public GrowableArray<ciSymbol> symbols() {
+    return GrowableArray.create(symbolsField.getValue(getAddress()), ciSymbolConstructor);
+  }
+
+  public ciObjectFactory(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciReceiverTypeData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciReceiverTypeData.java
new file mode 100644
index 0000000..f391f5d
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciReceiverTypeData.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciReceiverTypeData extends ReceiverTypeData {
+  public ciReceiverTypeData(DataLayout data) {
+    super(data);
+  }
+
+  public Klass receiver(int row) {
+      throw new InternalError("should not call");
+  }
+
+  public ciKlass receiverAt(int row) {
+    //assert((uint)row < rowLimit(), "oob");
+    ciObject recv = ciObjectFactory.get(addressAt(receiverCellIndex(row)));
+    if (recv != null && !(recv instanceof ciKlass)) {
+      System.err.println(recv);
+    }
+    //assert(recv == NULL || recv->isKlass(), "wrong type");
+    return (ciKlass)recv;
+  }
+
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciSymbol.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciSymbol.java
new file mode 100644
index 0000000..3023e25
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciSymbol.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciSymbol extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type = db.lookupType("ciSymbol");
+    identField = type.getCIntegerField("_ident");
+    symbolField = type.getAddressField("_symbol");
+  }
+
+  private static AddressField symbolField;
+  private static CIntegerField identField;
+
+  public String asUtf88() {
+    Symbol sym = Symbol.create(symbolField.getValue(getAddress()));
+    return sym.asString();
+  }
+
+  public ciSymbol(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciType.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciType.java
new file mode 100644
index 0000000..5f6d773
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciType.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciType extends ciObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciType");
+    basicTypeField = new CIntField(type.getCIntegerField("_basic_type"), 0);
+  }
+
+  private static CIntField basicTypeField;
+
+  public ciType(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlass.java
new file mode 100644
index 0000000..cc02817
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlass.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciTypeArrayKlass extends ciArrayKlass {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciTypeArrayKlass");
+  }
+
+  public ciTypeArrayKlass(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlassKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlassKlass.java
new file mode 100644
index 0000000..4432e1f
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciTypeArrayKlassKlass.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciTypeArrayKlassKlass extends ciArrayKlassKlass {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ciTypeArrayKlassKlass");
+  }
+
+
+  public ciTypeArrayKlassKlass(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciVirtualCallData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciVirtualCallData.java
new file mode 100644
index 0000000..37c4f85
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciVirtualCallData.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.ci;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ciVirtualCallData extends VirtualCallData {
+  public ciVirtualCallData(DataLayout data) {
+    super(data);
+  }
+
+  public Klass receiver(int row) {
+      throw new InternalError("should not call");
+  }
+
+  public ciKlass receiverAt(int row) {
+    //assert((uint)row < rowLimit(), "oob");
+    ciObject recv = ciObjectFactory.get(addressAt(receiverCellIndex(row)));
+    if (recv != null && !(recv instanceof ciKlass)) {
+      System.err.println(recv);
+    }
+    //assert(recv == NULL || recv->isKlass(), "wrong type");
+    return (ciKlass)recv;
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java
index 7ed801e..a9bc598 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java
@@ -102,6 +102,11 @@ public class CodeBlob extends VMObject {
   /** On-Stack Replacement method */
   public boolean isOSRMethod()          { return false; }
 
+  public NMethod asNMethodOrNull() {
+    if (isNMethod()) return (NMethod)this;
+    return null;
+  }
+
   // Boundaries
   public Address headerBegin() {
     return addr;
@@ -195,7 +200,7 @@ public class CodeBlob extends VMObject {
   }
 
   // Returns true, if the next frame is responsible for GC'ing oops passed as arguments
-  public boolean callerMustGCArguments(JavaThread thread) { return false; }
+  public boolean callerMustGCArguments() { return false; }
 
   public String getName() {
     return CStringUtilities.getString(nameField.getValue(addr));
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/CodeCache.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/CodeCache.java
index bf7a12f..6d0dd0f 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/CodeCache.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/CodeCache.java
@@ -59,6 +59,7 @@ public class CodeCache {
     virtualConstructor.addMapping("RuntimeStub", RuntimeStub.class);
     virtualConstructor.addMapping("RicochetBlob", RicochetBlob.class);
     virtualConstructor.addMapping("AdapterBlob", AdapterBlob.class);
+    virtualConstructor.addMapping("MethodHandlesAdapterBlob", MethodHandlesAdapterBlob.class);
     virtualConstructor.addMapping("SafepointBlob", SafepointBlob.class);
     virtualConstructor.addMapping("DeoptimizationBlob", DeoptimizationBlob.class);
     if (VM.getVM().isServerCompiler()) {
@@ -126,6 +127,10 @@ public class CodeCache {
       Assert.that(result.blobContains(start) || result.blobContains(start.addOffsetTo(8)),
                                                                     "found wrong CodeBlob");
     }
+    if (result.isRicochetBlob()) {
+      // This should probably be done for other SingletonBlobs
+      return VM.getVM().ricochetBlob();
+    }
     return result;
   }
 
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/MethodHandlesAdapterBlob.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/MethodHandlesAdapterBlob.java
new file mode 100644
index 0000000..3b265e1
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/MethodHandlesAdapterBlob.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.code;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+
+public class MethodHandlesAdapterBlob extends AdapterBlob {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static void initialize(TypeDataBase db) {
+    Type type = db.lookupType("MethodHandlesAdapterBlob");
+
+    // FIXME: add any needed fields
+  }
+
+  public MethodHandlesAdapterBlob(Address addr) {
+    super(addr);
+  }
+
+  public boolean isMethodHandlesAdapterBlob() {
+    return true;
+  }
+
+  public String getName() {
+    return "MethodHandlesAdapterBlob: " + super.getName();
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java
index 80da843..47503e1 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -46,6 +46,7 @@ public class NMethod extends CodeBlob {
   /** Offsets for different nmethod parts */
   private static CIntegerField exceptionOffsetField;
   private static CIntegerField deoptOffsetField;
+  private static CIntegerField deoptMhOffsetField;
   private static CIntegerField origPCOffsetField;
   private static CIntegerField stubOffsetField;
   private static CIntegerField oopsOffsetField;
@@ -95,6 +96,7 @@ public class NMethod extends CodeBlob {
 
     exceptionOffsetField        = type.getCIntegerField("_exception_offset");
     deoptOffsetField            = type.getCIntegerField("_deoptimize_offset");
+    deoptMhOffsetField          = type.getCIntegerField("_deoptimize_mh_offset");
     origPCOffsetField           = type.getCIntegerField("_orig_pc_offset");
     stubOffsetField             = type.getCIntegerField("_stub_offset");
     oopsOffsetField             = type.getCIntegerField("_oops_offset");
@@ -136,10 +138,11 @@ public class NMethod extends CodeBlob {
   /** Boundaries for different parts */
   public Address constantsBegin()       { return contentBegin();                                     }
   public Address constantsEnd()         { return getEntryPoint();                                    }
-  public Address instsBegin()           { return codeBegin();                                       }
+  public Address instsBegin()           { return codeBegin();                                        }
   public Address instsEnd()             { return headerBegin().addOffsetTo(getStubOffset());         }
   public Address exceptionBegin()       { return headerBegin().addOffsetTo(getExceptionOffset());    }
-  public Address deoptBegin()           { return headerBegin().addOffsetTo(getDeoptOffset());        }
+  public Address deoptHandlerBegin()    { return headerBegin().addOffsetTo(getDeoptOffset());        }
+  public Address deoptMhHandlerBegin()  { return headerBegin().addOffsetTo(getDeoptMhOffset());      }
   public Address stubBegin()            { return headerBegin().addOffsetTo(getStubOffset());         }
   public Address stubEnd()              { return headerBegin().addOffsetTo(getOopsOffset());         }
   public Address oopsBegin()            { return headerBegin().addOffsetTo(getOopsOffset());         }
@@ -187,6 +190,8 @@ public class NMethod extends CodeBlob {
   public boolean handlerTableContains(Address addr) { return handlerTableBegin().lessThanOrEqual(addr) && handlerTableEnd().greaterThan(addr); }
   public boolean nulChkTableContains (Address addr) { return nulChkTableBegin() .lessThanOrEqual(addr) && nulChkTableEnd() .greaterThan(addr); }
 
+  public int getOopsLength() { return (int) (oopsSize() / VM.getVM().getOopSize()); }
+
   /** Entry points */
   public Address getEntryPoint()         { return entryPointField.getValue(addr);         }
   public Address getVerifiedEntryPoint() { return verifiedEntryPointField.getValue(addr); }
@@ -195,7 +200,7 @@ public class NMethod extends CodeBlob {
   public OopHandle getOopAt(int index) {
     if (index == 0) return null;
     if (Assert.ASSERTS_ENABLED) {
-      Assert.that(index > 0 && index <= oopsSize(), "must be a valid non-zero index");
+      Assert.that(index > 0 && index <= getOopsLength(), "must be a valid non-zero index");
     }
     return oopsBegin().getOopHandleAt((index - 1) * VM.getVM().getOopSize());
   }
@@ -250,6 +255,22 @@ public class NMethod extends CodeBlob {
     return (int) scavengeRootStateField.getValue(addr);
   }
 
+  // MethodHandle
+  public boolean isMethodHandleReturn(Address returnPc) {
+    // Hard to read a bit fields from Java and it's only there for performance
+    // so just go directly to the PCDesc
+    // if (!hasMethodHandleInvokes())  return false;
+    PCDesc pd = getPCDescAt(returnPc);
+    if (pd == null)
+      return false;
+    return pd.isMethodHandleInvoke();
+  }
+
+  // Deopt
+  // Return true is the PC is one would expect if the frame is being deopted.
+  public boolean isDeoptPc      (Address pc) { return isDeoptEntry(pc) || isDeoptMhEntry(pc); }
+  public boolean isDeoptEntry   (Address pc) { return pc == deoptHandlerBegin(); }
+  public boolean isDeoptMhEntry (Address pc) { return pc == deoptMhHandlerBegin(); }
 
   /** Tells whether frames described by this nmethod can be
       deoptimized. Note: native wrappers cannot be deoptimized. */
@@ -388,6 +409,7 @@ public class NMethod extends CodeBlob {
   private int getEntryBCI()           { return (int) entryBCIField          .getValue(addr); }
   private int getExceptionOffset()    { return (int) exceptionOffsetField   .getValue(addr); }
   private int getDeoptOffset()        { return (int) deoptOffsetField       .getValue(addr); }
+  private int getDeoptMhOffset()      { return (int) deoptMhOffsetField     .getValue(addr); }
   private int getStubOffset()         { return (int) stubOffsetField        .getValue(addr); }
   private int getOopsOffset()         { return (int) oopsOffsetField        .getValue(addr); }
   private int getScopesDataOffset()   { return (int) scopesDataOffsetField  .getValue(addr); }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/PCDesc.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/PCDesc.java
index c6bf5d7..1584610 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/PCDesc.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/PCDesc.java
@@ -38,6 +38,9 @@ public class PCDesc extends VMObject {
   private static CIntegerField scopeDecodeOffsetField;
   private static CIntegerField objDecodeOffsetField;
   private static CIntegerField pcFlagsField;
+  private static int reexecuteMask;
+  private static int isMethodHandleInvokeMask;
+  private static int returnOopMask;
 
   static {
     VM.registerVMInitializedObserver(new Observer() {
@@ -54,6 +57,10 @@ public class PCDesc extends VMObject {
     scopeDecodeOffsetField = type.getCIntegerField("_scope_decode_offset");
     objDecodeOffsetField   = type.getCIntegerField("_obj_decode_offset");
     pcFlagsField           = type.getCIntegerField("_flags");
+
+    reexecuteMask            = db.lookupIntConstant("PcDesc::PCDESC_reexecute");
+    isMethodHandleInvokeMask = db.lookupIntConstant("PcDesc::PCDESC_is_method_handle_invoke");
+    returnOopMask            = db.lookupIntConstant("PcDesc::PCDESC_return_oop");
   }
 
   public PCDesc(Address addr) {
@@ -81,7 +88,12 @@ public class PCDesc extends VMObject {
 
   public boolean getReexecute() {
     int flags = (int)pcFlagsField.getValue(addr);
-    return ((flags & 0x1)== 1); //first is the reexecute bit
+    return (flags & reexecuteMask) != 0;
+  }
+
+  public boolean isMethodHandleInvoke() {
+    int flags = (int)pcFlagsField.getValue(addr);
+    return (flags & isMethodHandleInvokeMask) != 0;
   }
 
   public void print(NMethod code) {
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/RicochetBlob.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/RicochetBlob.java
index 3f7dd76..0fa8518 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/RicochetBlob.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/RicochetBlob.java
@@ -41,11 +41,15 @@ public class RicochetBlob extends SingletonBlob {
   }
 
   private static void initialize(TypeDataBase db) {
-    // Type type = db.lookupType("RicochetBlob");
+    Type type = db.lookupType("RicochetBlob");
 
-    // FIXME: add any needed fields
+    bounceOffsetField                = type.getCIntegerField("_bounce_offset");
+    exceptionOffsetField             = type.getCIntegerField("_exception_offset");
   }
 
+  private static CIntegerField bounceOffsetField;
+  private static CIntegerField exceptionOffsetField;
+
   public RicochetBlob(Address addr) {
     super(addr);
   }
@@ -53,4 +57,14 @@ public class RicochetBlob extends SingletonBlob {
   public boolean isRicochetBlob() {
     return true;
   }
+
+  public Address bounceAddr() {
+    return codeBegin().addOffsetTo(bounceOffsetField.getValue(addr));
+  }
+
+  public boolean returnsToBounceAddr(Address pc) {
+    Address bouncePc = bounceAddr();
+    return (pc.equals(bouncePc) || pc.addOffsetTo(Frame.pcReturnOffset()).equals(bouncePc));
+  }
+
 }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/RuntimeStub.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/RuntimeStub.java
index 86f471b..fd0d72a 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/RuntimeStub.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/RuntimeStub.java
@@ -30,6 +30,8 @@ import sun.jvm.hotspot.runtime.*;
 import sun.jvm.hotspot.types.*;
 
 public class RuntimeStub extends CodeBlob {
+  private static CIntegerField callerMustGCArgumentsField;
+
   static {
     VM.registerVMInitializedObserver(new Observer() {
         public void update(Observable o, Object data) {
@@ -40,6 +42,7 @@ public class RuntimeStub extends CodeBlob {
 
   private static void initialize(TypeDataBase db) {
     Type type = db.lookupType("RuntimeStub");
+    callerMustGCArgumentsField                = type.getCIntegerField("_caller_must_gc_arguments");
 
     // FIXME: add any needed fields
   }
@@ -52,6 +55,11 @@ public class RuntimeStub extends CodeBlob {
     return true;
   }
 
+  public boolean callerMustGCArguments() {
+    return callerMustGCArgumentsField.getValue(addr) != 0;
+  }
+
+
   public String getName() {
     return "RuntimeStub: " + super.getName();
   }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/CompileTask.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/CompileTask.java
new file mode 100644
index 0000000..12779a4
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/CompileTask.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.compiler;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.opto.*;
+import sun.jvm.hotspot.prims.JvmtiExport;
+import sun.jvm.hotspot.types.*;
+
+public class CompileTask extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("CompileTask");
+    methodField = type.getAddressField("_method");
+    osrBciField = new CIntField(type.getCIntegerField("_osr_bci"), 0);
+  }
+
+  private static AddressField methodField;
+  private static CIntField osrBciField;
+
+  public CompileTask(Address addr) {
+    super(addr);
+  }
+
+  public Method method() {
+    OopHandle oh =  methodField.getValue(getAddress()).getOopHandleAt(0);
+    return (Method)VM.getVM().getObjectHeap().newOop(oh);
+  }
+
+  public int osrBci() {
+    return (int)osrBciField.getValue(getAddress());
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java
index 3e88578..9433cf6 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java
@@ -246,7 +246,7 @@ public class OopMapSet extends VMObject {
     }
 
     // Check if caller must update oop argument
-    regMap.setIncludeArgumentOops(cb.callerMustGCArguments(regMap.getThread()));
+    regMap.setIncludeArgumentOops(cb.callerMustGCArguments());
 
     int nofCallee = 0;
     Address[] locs = new Address[2 * REG_COUNT + 1];
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/AddressException.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/AddressException.java
index 3d3ea75..e45fb49 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/AddressException.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/AddressException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,4 +39,8 @@ public class AddressException extends RuntimeException {
   public long getAddress() {
     return addr;
   }
+
+  public String getMessage() {
+    return Long.toHexString(addr);
+  }
 }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdAddress.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdAddress.java
new file mode 100644
index 0000000..de707f0
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdAddress.java
@@ -0,0 +1,399 @@
+/*
+ * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.bsd;
+
+import sun.jvm.hotspot.debugger.*;
+
+class BsdAddress implements Address {
+    protected BsdDebugger debugger;
+    protected long addr;
+
+    BsdAddress(BsdDebugger debugger, long addr) {
+        this.debugger = debugger;
+        this.addr = addr;
+    }
+
+    //
+    // Basic Java routines
+    //
+
+    public boolean equals(Object arg) {
+        if (arg == null) {
+            return false;
+        }
+
+        if (!(arg instanceof BsdAddress)) {
+            return false;
+        }
+
+        return (addr == ((BsdAddress) arg).addr);
+    }
+
+    public int hashCode() {
+        // FIXME: suggestions on a better hash code?
+        return (int) addr;
+    }
+
+    public String toString() {
+        return debugger.addressValueToString(addr);
+    }
+
+    //
+    // C/C++-related routines
+    //
+
+    public long getCIntegerAt(long offset, long numBytes, boolean isUnsigned)
+            throws UnalignedAddressException, UnmappedAddressException {
+        return debugger.readCInteger(addr + offset, numBytes, isUnsigned);
+    }
+
+    public Address getAddressAt(long offset)
+            throws UnalignedAddressException, UnmappedAddressException {
+        return debugger.readAddress(addr + offset);
+    }
+
+    public Address getCompOopAddressAt(long offset)
+            throws UnalignedAddressException, UnmappedAddressException {
+        return debugger.readCompOopAddress(addr + offset);
+    }
+
+    //
+    // Java-related routines
+    //
+
+  public boolean getJBooleanAt(long offset) throws UnalignedAddressException, UnmappedAddressException {
+    return debugger.readJBoolean(addr + offset);
+  }
+
+  public byte getJByteAt(long offset) throws UnalignedAddressException, UnmappedAddressException {
+    return debugger.readJByte(addr + offset);
+  }
+
+  public char getJCharAt(long offset) throws UnalignedAddressException, UnmappedAddressException {
+    return debugger.readJChar(addr + offset);
+  }
+
+  public double getJDoubleAt(long offset) throws UnalignedAddressException, UnmappedAddressException {
+    return debugger.readJDouble(addr + offset);
+  }
+
+  public float getJFloatAt(long offset) throws UnalignedAddressException, UnmappedAddressException {
+    return debugger.readJFloat(addr + offset);
+  }
+
+  public int getJIntAt(long offset) throws UnalignedAddressException, UnmappedAddressException {
+    return debugger.readJInt(addr + offset);
+  }
+
+  public long getJLongAt(long offset) throws UnalignedAddressException, UnmappedAddressException {
+    return debugger.readJLong(addr + offset);
+  }
+
+  public short getJShortAt(long offset) throws UnalignedAddressException, UnmappedAddressException {
+    return debugger.readJShort(addr + offset);
+  }
+
+  public OopHandle getOopHandleAt(long offset)
+    throws UnalignedAddressException, UnmappedAddressException, NotInHeapException {
+    return debugger.readOopHandle(addr + offset);
+  }
+
+  public OopHandle getCompOopHandleAt(long offset)
+    throws UnalignedAddressException, UnmappedAddressException, NotInHeapException {
+    return debugger.readCompOopHandle(addr + offset);
+  }
+
+  // Mutators -- not implemented for now (FIXME)
+  public void setCIntegerAt(long offset, long numBytes, long value) {
+    throw new DebuggerException("Unimplemented");
+  }
+  public void setAddressAt(long offset, Address value) {
+    throw new DebuggerException("Unimplemented");
+  }
+  public void       setJBooleanAt      (long offset, boolean value)
+    throws UnmappedAddressException, UnalignedAddressException {
+    throw new DebuggerException("Unimplemented");
+  }
+  public void       setJByteAt         (long offset, byte value)
+    throws UnmappedAddressException, UnalignedAddressException {
+    throw new DebuggerException("Unimplemented");
+  }
+  public void       setJCharAt         (long offset, char value)
+    throws UnmappedAddressException, UnalignedAddressException {
+    throw new DebuggerException("Unimplemented");
+  }
+  public void       setJDoubleAt       (long offset, double value)
+    throws UnmappedAddressException, UnalignedAddressException {
+    throw new DebuggerException("Unimplemented");
+  }
+  public void       setJFloatAt        (long offset, float value)
+    throws UnmappedAddressException, UnalignedAddressException {
+    throw new DebuggerException("Unimplemented");
+  }
+  public void       setJIntAt          (long offset, int value)
+    throws UnmappedAddressException, UnalignedAddressException {
+    throw new DebuggerException("Unimplemented");
+  }
+  public void       setJLongAt         (long offset, long value)
+    throws UnmappedAddressException, UnalignedAddressException {
+    throw new DebuggerException("Unimplemented");
+  }
+  public void       setJShortAt        (long offset, short value)
+    throws UnmappedAddressException, UnalignedAddressException {
+    throw new DebuggerException("Unimplemented");
+  }
+  public void       setOopHandleAt     (long offset, OopHandle value)
+    throws UnmappedAddressException, UnalignedAddressException {
+    throw new DebuggerException("Unimplemented");
+  }
+
+  //
+  // Arithmetic operations -- necessary evil.
+  //
+
+  public Address    addOffsetTo       (long offset) throws UnsupportedOperationException {
+    long value = addr + offset;
+    if (value == 0) {
+      return null;
+    }
+    return new BsdAddress(debugger, value);
+  }
+
+  public OopHandle  addOffsetToAsOopHandle(long offset) throws UnsupportedOperationException {
+    long value = addr + offset;
+    if (value == 0) {
+      return null;
+    }
+    return new BsdOopHandle(debugger, value);
+  }
+
+  /** (FIXME: any signed/unsigned issues? Should this work for
+      OopHandles?) */
+  public long       minus(Address arg) {
+    if (arg == null) {
+      return addr;
+    }
+    return addr - ((BsdAddress) arg).addr;
+  }
+
+  // Two's complement representation.
+  // All negative numbers are larger than positive numbers.
+  // Numbers with the same sign can be compared normally.
+  // Test harness is below in main().
+
+  public boolean    lessThan          (Address a) {
+    if (a == null) {
+      return false;
+    }
+    BsdAddress arg = (BsdAddress) a;
+    if ((addr >= 0) && (arg.addr < 0)) {
+      return true;
+    }
+    if ((addr < 0) && (arg.addr >= 0)) {
+      return false;
+    }
+    return (addr < arg.addr);
+  }
+
+  public boolean    lessThanOrEqual   (Address a) {
+    if (a == null) {
+      return false;
+    }
+    BsdAddress arg = (BsdAddress) a;
+    if ((addr >= 0) && (arg.addr < 0)) {
+      return true;
+    }
+    if ((addr < 0) && (arg.addr >= 0)) {
+      return false;
+    }
+    return (addr <= arg.addr);
+  }
+
+  public boolean    greaterThan       (Address a) {
+    if (a == null) {
+      return true;
+    }
+    BsdAddress arg = (BsdAddress) a;
+    if ((addr >= 0) && (arg.addr < 0)) {
+      return false;
+    }
+    if ((addr < 0) && (arg.addr >= 0)) {
+      return true;
+    }
+    return (addr > arg.addr);
+  }
+
+  public boolean    greaterThanOrEqual(Address a) {
+    if (a == null) {
+      return true;
+    }
+    BsdAddress arg = (BsdAddress) a;
+    if ((addr >= 0) && (arg.addr < 0)) {
+      return false;
+    }
+    if ((addr < 0) && (arg.addr >= 0)) {
+      return true;
+    }
+    return (addr >= arg.addr);
+  }
+
+  public Address    andWithMask(long mask) throws UnsupportedOperationException {
+    long value = addr & mask;
+    if (value == 0) {
+      return null;
+    }
+    return new BsdAddress(debugger, value);
+  }
+
+  public Address    orWithMask(long mask) throws UnsupportedOperationException {
+    long value = addr | mask;
+    if (value == 0) {
+      return null;
+    }
+    return new BsdAddress(debugger, value);
+  }
+
+  public Address    xorWithMask(long mask) throws UnsupportedOperationException {
+    long value = addr ^ mask;
+    if (value == 0) {
+      return null;
+    }
+    return new BsdAddress(debugger, value);
+  }
+
+
+  //--------------------------------------------------------------------------------
+  // Internals only below this point
+  //
+
+  long getValue() {
+    return addr;
+  }
+
+
+  private static void check(boolean arg, String failMessage) {
+    if (!arg) {
+      System.err.println(failMessage + ": FAILED");
+      System.exit(1);
+    }
+  }
+
+  // Test harness
+  public static void main(String[] args) {
+    // p/n indicates whether the interior address is really positive
+    // or negative. In unsigned terms, p1 < p2 < n1 < n2.
+
+    BsdAddress p1 = new BsdAddress(null, 0x7FFFFFFFFFFFFFF0L);
+    BsdAddress p2 = (BsdAddress) p1.addOffsetTo(10);
+    BsdAddress n1 = (BsdAddress) p2.addOffsetTo(10);
+    BsdAddress n2 = (BsdAddress) n1.addOffsetTo(10);
+
+    // lessThan positive tests
+    check(p1.lessThan(p2), "lessThan 1");
+    check(p1.lessThan(n1), "lessThan 2");
+    check(p1.lessThan(n2), "lessThan 3");
+    check(p2.lessThan(n1), "lessThan 4");
+    check(p2.lessThan(n2), "lessThan 5");
+    check(n1.lessThan(n2), "lessThan 6");
+
+    // lessThan negative tests
+    check(!p1.lessThan(p1), "lessThan 7");
+    check(!p2.lessThan(p2), "lessThan 8");
+    check(!n1.lessThan(n1), "lessThan 9");
+    check(!n2.lessThan(n2), "lessThan 10");
+
+    check(!p2.lessThan(p1), "lessThan 11");
+    check(!n1.lessThan(p1), "lessThan 12");
+    check(!n2.lessThan(p1), "lessThan 13");
+    check(!n1.lessThan(p2), "lessThan 14");
+    check(!n2.lessThan(p2), "lessThan 15");
+    check(!n2.lessThan(n1), "lessThan 16");
+
+    // lessThanOrEqual positive tests
+    check(p1.lessThanOrEqual(p1), "lessThanOrEqual 1");
+    check(p2.lessThanOrEqual(p2), "lessThanOrEqual 2");
+    check(n1.lessThanOrEqual(n1), "lessThanOrEqual 3");
+    check(n2.lessThanOrEqual(n2), "lessThanOrEqual 4");
+
+    check(p1.lessThanOrEqual(p2), "lessThanOrEqual 5");
+    check(p1.lessThanOrEqual(n1), "lessThanOrEqual 6");
+    check(p1.lessThanOrEqual(n2), "lessThanOrEqual 7");
+    check(p2.lessThanOrEqual(n1), "lessThanOrEqual 8");
+    check(p2.lessThanOrEqual(n2), "lessThanOrEqual 9");
+    check(n1.lessThanOrEqual(n2), "lessThanOrEqual 10");
+
+    // lessThanOrEqual negative tests
+    check(!p2.lessThanOrEqual(p1), "lessThanOrEqual 11");
+    check(!n1.lessThanOrEqual(p1), "lessThanOrEqual 12");
+    check(!n2.lessThanOrEqual(p1), "lessThanOrEqual 13");
+    check(!n1.lessThanOrEqual(p2), "lessThanOrEqual 14");
+    check(!n2.lessThanOrEqual(p2), "lessThanOrEqual 15");
+    check(!n2.lessThanOrEqual(n1), "lessThanOrEqual 16");
+
+    // greaterThan positive tests
+    check(n2.greaterThan(p1), "greaterThan 1");
+    check(n2.greaterThan(p2), "greaterThan 2");
+    check(n2.greaterThan(n1), "greaterThan 3");
+    check(n1.greaterThan(p1), "greaterThan 4");
+    check(n1.greaterThan(p2), "greaterThan 5");
+    check(p2.greaterThan(p1), "greaterThan 6");
+
+    // greaterThan negative tests
+    check(!p1.greaterThan(p1), "greaterThan 7");
+    check(!p2.greaterThan(p2), "greaterThan 8");
+    check(!n1.greaterThan(n1), "greaterThan 9");
+    check(!n2.greaterThan(n2), "greaterThan 10");
+
+    check(!p1.greaterThan(n2), "greaterThan 11");
+    check(!p2.greaterThan(n2), "greaterThan 12");
+    check(!n1.greaterThan(n2), "greaterThan 13");
+    check(!p1.greaterThan(n1), "greaterThan 14");
+    check(!p2.greaterThan(n1), "greaterThan 15");
+    check(!p1.greaterThan(p2), "greaterThan 16");
+
+    // greaterThanOrEqual positive tests
+    check(p1.greaterThanOrEqual(p1), "greaterThanOrEqual 1");
+    check(p2.greaterThanOrEqual(p2), "greaterThanOrEqual 2");
+    check(n1.greaterThanOrEqual(n1), "greaterThanOrEqual 3");
+    check(n2.greaterThanOrEqual(n2), "greaterThanOrEqual 4");
+
+    check(n2.greaterThanOrEqual(p1), "greaterThanOrEqual 5");
+    check(n2.greaterThanOrEqual(p2), "greaterThanOrEqual 6");
+    check(n2.greaterThanOrEqual(n1), "greaterThanOrEqual 7");
+    check(n1.greaterThanOrEqual(p1), "greaterThanOrEqual 8");
+    check(n1.greaterThanOrEqual(p2), "greaterThanOrEqual 9");
+    check(p2.greaterThanOrEqual(p1), "greaterThanOrEqual 10");
+
+    // greaterThanOrEqual negative tests
+    check(!p1.greaterThanOrEqual(n2), "greaterThanOrEqual 11");
+    check(!p2.greaterThanOrEqual(n2), "greaterThanOrEqual 12");
+    check(!n1.greaterThanOrEqual(n2), "greaterThanOrEqual 13");
+    check(!p1.greaterThanOrEqual(n1), "greaterThanOrEqual 14");
+    check(!p2.greaterThanOrEqual(n1), "greaterThanOrEqual 15");
+    check(!p1.greaterThanOrEqual(p2), "greaterThanOrEqual 16");
+
+    System.err.println("BsdAddress: all tests passed successfully.");
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdCDebugger.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdCDebugger.java
new file mode 100644
index 0000000..92f7bbf
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdCDebugger.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.bsd;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.cdbg.*;
+import sun.jvm.hotspot.debugger.x86.*;
+import sun.jvm.hotspot.debugger.amd64.*;
+import sun.jvm.hotspot.debugger.bsd.x86.*;
+import sun.jvm.hotspot.debugger.bsd.amd64.*;
+import sun.jvm.hotspot.utilities.*;
+
+class BsdCDebugger implements CDebugger {
+  private BsdDebugger dbg;
+
+  BsdCDebugger(BsdDebugger dbg) {
+    this.dbg = dbg;
+  }
+
+  public List getThreadList() throws DebuggerException {
+    return dbg.getThreadList();
+  }
+
+  public List/*<LoadObject>*/ getLoadObjectList() throws DebuggerException {
+    return dbg.getLoadObjectList();
+  }
+
+  public LoadObject loadObjectContainingPC(Address pc) throws DebuggerException {
+    if (pc == null) {
+      return null;
+    }
+    List objs = getLoadObjectList();
+    Object[] arr = objs.toArray();
+    // load objects are sorted by base address, do binary search
+    int mid  = -1;
+    int low  = 0;
+    int high = arr.length - 1;
+
+    while (low <= high) {
+       mid = (low + high) >> 1;
+       LoadObject midVal = (LoadObject) arr[mid];
+       long cmp = pc.minus(midVal.getBase());
+       if (cmp < 0) {
+          high = mid - 1;
+       } else if (cmp > 0) {
+          long size = midVal.getSize();
+          if (cmp >= size) {
+             low = mid + 1;
+          } else {
+             return (LoadObject) arr[mid];
+          }
+       } else { // match found
+          return (LoadObject) arr[mid];
+       }
+    }
+    // no match found.
+    return null;
+  }
+
+  public CFrame topFrameForThread(ThreadProxy thread) throws DebuggerException {
+    String cpu = dbg.getCPU();
+    if (cpu.equals("x86")) {
+       X86ThreadContext context = (X86ThreadContext) thread.getContext();
+       Address ebp = context.getRegisterAsAddress(X86ThreadContext.EBP);
+       if (ebp == null) return null;
+       Address pc  = context.getRegisterAsAddress(X86ThreadContext.EIP);
+       if (pc == null) return null;
+       return new BsdX86CFrame(dbg, ebp, pc);
+    } else if (cpu.equals("amd64")) {
+       AMD64ThreadContext context = (AMD64ThreadContext) thread.getContext();
+       Address rbp = context.getRegisterAsAddress(AMD64ThreadContext.RBP);
+       if (rbp == null) return null;
+       Address pc  = context.getRegisterAsAddress(AMD64ThreadContext.RIP);
+       if (pc == null) return null;
+       return new BsdAMD64CFrame(dbg, rbp, pc);
+    } else {
+       throw new DebuggerException(cpu + " is not yet supported");
+    }
+  }
+
+  public String getNameOfFile(String fileName) {
+    return new File(fileName).getName();
+  }
+
+  public ProcessControl getProcessControl() throws DebuggerException {
+    // FIXME: after stabs parser
+    return null;
+  }
+
+  public boolean canDemangle() {
+    return false;
+  }
+
+  public String demangle(String sym) {
+    throw new UnsupportedOperationException();
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebugger.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebugger.java
new file mode 100644
index 0000000..a708a75
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebugger.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.bsd;
+
+import java.util.List;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.cdbg.*;
+
+/** An extension of the JVMDebugger interface with a few additions to
+    support 32-bit vs. 64-bit debugging as well as features required
+    by the architecture-specific subpackages. */
+
+public interface BsdDebugger extends JVMDebugger {
+  public String       addressValueToString(long address) throws DebuggerException;
+  public boolean      readJBoolean(long address) throws DebuggerException;
+  public byte         readJByte(long address) throws DebuggerException;
+  public char         readJChar(long address) throws DebuggerException;
+  public double       readJDouble(long address) throws DebuggerException;
+  public float        readJFloat(long address) throws DebuggerException;
+  public int          readJInt(long address) throws DebuggerException;
+  public long         readJLong(long address) throws DebuggerException;
+  public short        readJShort(long address) throws DebuggerException;
+  public long         readCInteger(long address, long numBytes, boolean isUnsigned)
+    throws DebuggerException;
+  public BsdAddress readAddress(long address) throws DebuggerException;
+  public BsdAddress readCompOopAddress(long address) throws DebuggerException;
+  public BsdOopHandle readOopHandle(long address) throws DebuggerException;
+  public BsdOopHandle readCompOopHandle(long address) throws DebuggerException;
+  public long[]       getThreadIntegerRegisterSet(int lwp_id) throws DebuggerException;
+  public long         getAddressValue(Address addr) throws DebuggerException;
+  public Address      newAddress(long value) throws DebuggerException;
+
+  // For BsdCDebugger
+  public List         getThreadList();
+  public List         getLoadObjectList();
+  public ClosestSymbol lookup(long address);
+
+  // NOTE: this interface implicitly contains the following methods:
+  // From the Debugger interface via JVMDebugger
+  //   public void attach(int processID) throws DebuggerException;
+  //   public void attach(String executableName, String coreFileName) throws DebuggerException;
+  //   public boolean detach();
+  //   public Address parseAddress(String addressString) throws NumberFormatException;
+  //   public String getOS();
+  //   public String getCPU();
+  // From the SymbolLookup interface via Debugger and JVMDebugger
+  //   public Address lookup(String objectName, String symbol);
+  //   public OopHandle lookupOop(String objectName, String symbol);
+  // From the JVMDebugger interface
+  //   public void configureJavaPrimitiveTypeSizes(long jbooleanSize,
+  //                                               long jbyteSize,
+  //                                               long jcharSize,
+  //                                               long jdoubleSize,
+  //                                               long jfloatSize,
+  //                                               long jintSize,
+  //                                               long jlongSize,
+  //                                               long jshortSize);
+  // From the ThreadAccess interface via Debugger and JVMDebugger
+  //   public ThreadProxy getThreadForIdentifierAddress(Address addr);
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebuggerLocal.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebuggerLocal.java
new file mode 100644
index 0000000..ce508e6
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebuggerLocal.java
@@ -0,0 +1,595 @@
+/*
+ * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.bsd;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.x86.*;
+import sun.jvm.hotspot.debugger.cdbg.*;
+import sun.jvm.hotspot.utilities.*;
+import java.lang.reflect.*;
+
+/** <P> An implementation of the JVMDebugger interface. The basic debug
+    facilities are implemented through ptrace interface in the JNI code
+    (libsaproc.so). Library maps and symbol table management are done in
+    JNI. </P>
+
+    <P> <B>NOTE</B> that since we have the notion of fetching "Java
+    primitive types" from the remote process (which might have
+    different sizes than we expect) we have a bootstrapping
+    problem. We need to know the sizes of these types before we can
+    fetch them. The current implementation solves this problem by
+    requiring that it be configured with these type sizes before they
+    can be fetched. The readJ(Type) routines here will throw a
+    RuntimeException if they are called before the debugger is
+    configured with the Java primitive type sizes. </P> */
+
+public class BsdDebuggerLocal extends DebuggerBase implements BsdDebugger {
+    private boolean useGCC32ABI;
+    private boolean attached;
+    private long    p_ps_prochandle; // native debugger handle
+    private boolean isCore;
+
+    // CDebugger support
+    private BsdCDebugger cdbg;
+
+    // threadList and loadObjectList are filled by attach0 method
+    private List threadList;
+    private List loadObjectList;
+
+    // called by native method lookupByAddress0
+    private ClosestSymbol createClosestSymbol(String name, long offset) {
+       return new ClosestSymbol(name, offset);
+    }
+
+    // called by native method attach0
+    private LoadObject createLoadObject(String fileName, long textsize,
+                                        long base) {
+       File f = new File(fileName);
+       Address baseAddr = newAddress(base);
+       return new SharedObject(this, fileName, f.length(), baseAddr);
+    }
+
+    // native methods
+
+    private native static void init0()
+                                throws DebuggerException;
+    private native void attach0(int pid)
+                                throws DebuggerException;
+    private native void attach0(String execName, String coreName)
+                                throws DebuggerException;
+    private native void detach0()
+                                throws DebuggerException;
+    private native long lookupByName0(String objectName, String symbol)
+                                throws DebuggerException;
+    private native ClosestSymbol lookupByAddress0(long address)
+                                throws DebuggerException;
+    private native long[] getThreadIntegerRegisterSet0(int lwp_id)
+                                throws DebuggerException;
+    private native byte[] readBytesFromProcess0(long address, long numBytes)
+                                throws DebuggerException;
+    public native static int  getAddressSize() ;
+
+    // Note on Bsd threads are really processes. When target process is
+    // attached by a serviceability agent thread, only that thread can do
+    // ptrace operations on the target. This is because from kernel's point
+    // view, other threads are just separate processes and they are not
+    // attached to the target. When they attempt to make ptrace calls,
+    // an ESRCH error will be returned as kernel believes target is not
+    // being traced by the caller.
+    // To work around the problem, we use a worker thread here to handle
+    // all JNI functions that are making ptrace calls.
+
+    interface WorkerThreadTask {
+       public void doit(BsdDebuggerLocal debugger) throws DebuggerException;
+    }
+
+    class BsdDebuggerLocalWorkerThread extends Thread {
+       BsdDebuggerLocal debugger;
+       WorkerThreadTask task;
+       DebuggerException lastException;
+
+       public BsdDebuggerLocalWorkerThread(BsdDebuggerLocal debugger) {
+         this.debugger = debugger;
+         setDaemon(true);
+       }
+
+       public void run() {
+          synchronized (workerThread) {
+             for (;;) {
+                if (task != null) {
+                   lastException = null;
+                   try {
+                      task.doit(debugger);
+                   } catch (DebuggerException exp) {
+                      lastException = exp;
+                   }
+                   task = null;
+                   workerThread.notifyAll();
+                }
+
+                try {
+                   workerThread.wait();
+                } catch (InterruptedException x) {}
+             }
+          }
+       }
+
+       public WorkerThreadTask execute(WorkerThreadTask task) throws DebuggerException {
+          synchronized (workerThread) {
+             this.task = task;
+             workerThread.notifyAll();
+             while (this.task != null) {
+                try {
+                   workerThread.wait();
+                } catch (InterruptedException x) {}
+             }
+             if (lastException != null) {
+                throw new DebuggerException(lastException);
+             } else {
+                return task;
+             }
+          }
+       }
+    }
+
+    private BsdDebuggerLocalWorkerThread workerThread = null;
+
+    //----------------------------------------------------------------------
+    // Implementation of Debugger interface
+    //
+
+    /** <P> machDesc may not be null. </P>
+
+    <P> useCache should be set to true if debugging is being done
+    locally, and to false if the debugger is being created for the
+    purpose of supporting remote debugging. </P> */
+    public BsdDebuggerLocal(MachineDescription machDesc,
+                              boolean useCache) throws DebuggerException {
+        this.machDesc = machDesc;
+        utils = new DebuggerUtilities(machDesc.getAddressSize(),
+                                      machDesc.isBigEndian()) {
+           public void checkAlignment(long address, long alignment) {
+             // Need to override default checkAlignment because we need to
+             // relax alignment constraints on Bsd/x86
+             if ( (address % alignment != 0)
+                &&(alignment != 8 || address % 4 != 0)) {
+                throw new UnalignedAddressException(
+                        "Trying to read at address: "
+                      + addressValueToString(address)
+                      + " with alignment: " + alignment,
+                        address);
+             }
+           }
+        };
+
+        if (useCache) {
+            // FIXME: re-test necessity of cache on Bsd, where data
+            // fetching is faster
+            // Cache portion of the remote process's address space.
+            // Fetching data over the socket connection to dbx is slow.
+            // Might be faster if we were using a binary protocol to talk to
+            // dbx, but would have to test. For now, this cache works best
+            // if it covers the entire heap of the remote process. FIXME: at
+            // least should make this tunable from the outside, i.e., via
+            // the UI. This is a cache of 4096 4K pages, or 16 MB. The page
+            // size must be adjusted to be the hardware's page size.
+            // (FIXME: should pick this up from the debugger.)
+            if (getCPU().equals("ia64")) {
+              initCache(16384, parseCacheNumPagesProperty(1024));
+            } else {
+              initCache(4096, parseCacheNumPagesProperty(4096));
+            }
+        }
+
+        workerThread = new BsdDebuggerLocalWorkerThread(this);
+        workerThread.start();
+    }
+
+    /** From the Debugger interface via JVMDebugger */
+    public boolean hasProcessList() throws DebuggerException {
+        return false;
+    }
+
+    /** From the Debugger interface via JVMDebugger */
+    public List getProcessList() throws DebuggerException {
+        throw new DebuggerException("getProcessList not implemented yet");
+    }
+
+    private void checkAttached() throws DebuggerException {
+        if (attached) {
+            if (isCore) {
+                throw new DebuggerException("attached to a core dump already");
+            } else {
+                throw new DebuggerException("attached to a process already");
+            }
+        }
+    }
+
+    private void requireAttach() {
+        if (! attached) {
+            throw new RuntimeException("not attached to a process or a core!");
+        }
+    }
+
+    /* called from attach methods */
+    private void findABIVersion() throws DebuggerException {
+        if (lookupByName0("libjvm.so", "__vt_10JavaThread") != 0 ||
+            lookupByName0("libjvm_g.so", "__vt_10JavaThread") != 0) {
+            // old C++ ABI
+            useGCC32ABI = false;
+        } else {
+            // new C++ ABI
+            useGCC32ABI = true;
+        }
+    }
+
+    /** From the Debugger interface via JVMDebugger */
+    public synchronized void attach(int processID) throws DebuggerException {
+        checkAttached();
+        threadList = new ArrayList();
+        loadObjectList = new ArrayList();
+        class AttachTask implements WorkerThreadTask {
+           int pid;
+           public void doit(BsdDebuggerLocal debugger) {
+              debugger.attach0(pid);
+              debugger.attached = true;
+              debugger.isCore = false;
+              findABIVersion();
+           }
+        }
+
+        AttachTask task = new AttachTask();
+        task.pid = processID;
+        workerThread.execute(task);
+    }
+
+    /** From the Debugger interface via JVMDebugger */
+    public synchronized void attach(String execName, String coreName) {
+        checkAttached();
+        threadList = new ArrayList();
+        loadObjectList = new ArrayList();
+        attach0(execName, coreName);
+        attached = true;
+        isCore = true;
+        findABIVersion();
+    }
+
+    /** From the Debugger interface via JVMDebugger */
+    public synchronized boolean detach() {
+        if (!attached) {
+            return false;
+        }
+
+        threadList = null;
+        loadObjectList = null;
+
+        if (isCore) {
+            detach0();
+            attached = false;
+            return true;
+        } else {
+            class DetachTask implements WorkerThreadTask {
+                boolean result = false;
+
+                public void doit(BsdDebuggerLocal debugger) {
+                    debugger.detach0();
+                    debugger.attached = false;
+                    result = true;
+                }
+            }
+
+            DetachTask task = new DetachTask();
+            workerThread.execute(task);
+            return task.result;
+        }
+    }
+
+    /** From the Debugger interface via JVMDebugger */
+    public Address parseAddress(String addressString)
+            throws NumberFormatException {
+        long addr = utils.scanAddress(addressString);
+        if (addr == 0) {
+            return null;
+        }
+        return new BsdAddress(this, addr);
+    }
+
+    /** From the Debugger interface via JVMDebugger */
+    public String getOS() {
+        return PlatformInfo.getOS();
+    }
+
+    /** From the Debugger interface via JVMDebugger */
+    public String getCPU() {
+        return PlatformInfo.getCPU();
+    }
+
+    public boolean hasConsole() throws DebuggerException {
+        return false;
+    }
+
+    public String consoleExecuteCommand(String cmd) throws DebuggerException {
+        throw new DebuggerException("No debugger console available on Bsd");
+    }
+
+    public String getConsolePrompt() throws DebuggerException {
+        return null;
+    }
+
+    /* called from lookup */
+    private long handleGCC32ABI(long addr, String symbol) throws DebuggerException {
+        if (useGCC32ABI && symbol.startsWith("_ZTV")) {
+            return addr + (2 * machDesc.getAddressSize());
+        } else {
+            return addr;
+        }
+    }
+
+    /** From the SymbolLookup interface via Debugger and JVMDebugger */
+    public synchronized Address lookup(String objectName, String symbol) {
+        requireAttach();
+        if (!attached) {
+            return null;
+        }
+
+        if (isCore) {
+            long addr = lookupByName0(objectName, symbol);
+            return (addr == 0)? null : new BsdAddress(this, handleGCC32ABI(addr, symbol));
+        } else {
+            class LookupByNameTask implements WorkerThreadTask {
+                String objectName, symbol;
+                Address result;
+
+                public void doit(BsdDebuggerLocal debugger) {
+                    long addr = debugger.lookupByName0(objectName, symbol);
+                    result = (addr == 0 ? null : new BsdAddress(debugger, handleGCC32ABI(addr, symbol)));
+                }
+            }
+
+            LookupByNameTask task = new LookupByNameTask();
+            task.objectName = objectName;
+            task.symbol = symbol;
+            workerThread.execute(task);
+            return task.result;
+        }
+    }
+
+    /** From the SymbolLookup interface via Debugger and JVMDebugger */
+    public synchronized OopHandle lookupOop(String objectName, String symbol) {
+        Address addr = lookup(objectName, symbol);
+        if (addr == null) {
+            return null;
+        }
+        return addr.addOffsetToAsOopHandle(0);
+    }
+
+    /** From the Debugger interface */
+    public MachineDescription getMachineDescription() {
+        return machDesc;
+    }
+
+    //----------------------------------------------------------------------
+    // Implementation of ThreadAccess interface
+    //
+
+    /** From the ThreadAccess interface via Debugger and JVMDebugger */
+    public ThreadProxy getThreadForIdentifierAddress(Address addr) {
+        return new BsdThread(this, addr);
+    }
+
+    /** From the ThreadAccess interface via Debugger and JVMDebugger */
+    public ThreadProxy getThreadForThreadId(long id) {
+        return new BsdThread(this, id);
+    }
+
+    //----------------------------------------------------------------------
+    // Internal routines (for implementation of BsdAddress).
+    // These must not be called until the MachineDescription has been set up.
+    //
+
+    /** From the BsdDebugger interface */
+    public String addressValueToString(long address) {
+        return utils.addressValueToString(address);
+    }
+
+    /** From the BsdDebugger interface */
+    public BsdAddress readAddress(long address)
+            throws UnmappedAddressException, UnalignedAddressException {
+        long value = readAddressValue(address);
+        return (value == 0 ? null : new BsdAddress(this, value));
+    }
+    public BsdAddress readCompOopAddress(long address)
+            throws UnmappedAddressException, UnalignedAddressException {
+        long value = readCompOopAddressValue(address);
+        return (value == 0 ? null : new BsdAddress(this, value));
+    }
+
+    /** From the BsdDebugger interface */
+    public BsdOopHandle readOopHandle(long address)
+            throws UnmappedAddressException, UnalignedAddressException,
+                NotInHeapException {
+        long value = readAddressValue(address);
+        return (value == 0 ? null : new BsdOopHandle(this, value));
+    }
+    public BsdOopHandle readCompOopHandle(long address)
+            throws UnmappedAddressException, UnalignedAddressException,
+                NotInHeapException {
+        long value = readCompOopAddressValue(address);
+        return (value == 0 ? null : new BsdOopHandle(this, value));
+    }
+
+    //----------------------------------------------------------------------
+    // Thread context access
+    //
+
+    public synchronized long[] getThreadIntegerRegisterSet(int lwp_id)
+                                            throws DebuggerException {
+        requireAttach();
+        if (isCore) {
+            return getThreadIntegerRegisterSet0(lwp_id);
+        } else {
+            class GetThreadIntegerRegisterSetTask implements WorkerThreadTask {
+                int lwp_id;
+                long[] result;
+                public void doit(BsdDebuggerLocal debugger) {
+                    result = debugger.getThreadIntegerRegisterSet0(lwp_id);
+                }
+            }
+
+            GetThreadIntegerRegisterSetTask task = new GetThreadIntegerRegisterSetTask();
+            task.lwp_id = lwp_id;
+            workerThread.execute(task);
+            return task.result;
+        }
+    }
+
+    /** Need to override this to relax alignment checks on x86. */
+    public long readCInteger(long address, long numBytes, boolean isUnsigned)
+        throws UnmappedAddressException, UnalignedAddressException {
+        // Only slightly relaxed semantics -- this is a hack, but is
+        // necessary on x86 where it seems the compiler is
+        // putting some global 64-bit data on 32-bit boundaries
+        if (numBytes == 8) {
+            utils.checkAlignment(address, 4);
+        } else {
+            utils.checkAlignment(address, numBytes);
+        }
+        byte[] data = readBytes(address, numBytes);
+        return utils.dataToCInteger(data, isUnsigned);
+    }
+
+    // Overridden from DebuggerBase because we need to relax alignment
+    // constraints on x86
+    public long readJLong(long address)
+        throws UnmappedAddressException, UnalignedAddressException {
+        utils.checkAlignment(address, jintSize);
+        byte[] data = readBytes(address, jlongSize);
+        return utils.dataToJLong(data, jlongSize);
+    }
+
+    //----------------------------------------------------------------------
+    // Address access. Can not be package private, but should only be
+    // accessed by the architecture-specific subpackages.
+
+    /** From the BsdDebugger interface */
+    public long getAddressValue(Address addr) {
+      if (addr == null) return 0;
+      return ((BsdAddress) addr).getValue();
+    }
+
+    /** From the BsdDebugger interface */
+    public Address newAddress(long value) {
+      if (value == 0) return null;
+      return new BsdAddress(this, value);
+    }
+
+    /** From the BsdCDebugger interface */
+    public List/*<ThreadProxy>*/ getThreadList() {
+      requireAttach();
+      return threadList;
+    }
+
+    /** From the BsdCDebugger interface */
+    public List/*<LoadObject>*/ getLoadObjectList() {
+      requireAttach();
+      return loadObjectList;
+    }
+
+    /** From the BsdCDebugger interface */
+    public synchronized ClosestSymbol lookup(long addr) {
+       requireAttach();
+       if (isCore) {
+          return lookupByAddress0(addr);
+       } else {
+          class LookupByAddressTask implements WorkerThreadTask {
+             long addr;
+             ClosestSymbol result;
+
+             public void doit(BsdDebuggerLocal debugger) {
+                 result = debugger.lookupByAddress0(addr);
+             }
+          }
+
+          LookupByAddressTask task = new LookupByAddressTask();
+          task.addr = addr;
+          workerThread.execute(task);
+          return task.result;
+       }
+    }
+
+    public CDebugger getCDebugger() {
+      if (cdbg == null) {
+         String cpu = getCPU();
+         if (cpu.equals("ia64") ) {
+            // IA-64 is not supported because of stack-walking issues
+            return null;
+         }
+         cdbg = new BsdCDebugger(this);
+      }
+      return cdbg;
+    }
+
+    /** This reads bytes from the remote process. */
+    public synchronized ReadResult readBytesFromProcess(long address,
+            long numBytes) throws UnmappedAddressException, DebuggerException {
+        requireAttach();
+        if (isCore) {
+            byte[] res = readBytesFromProcess0(address, numBytes);
+            return (res != null)? new ReadResult(res) : new ReadResult(address);
+        } else {
+            class ReadBytesFromProcessTask implements WorkerThreadTask {
+                long address, numBytes;
+                ReadResult result;
+                public void doit(BsdDebuggerLocal debugger) {
+                    byte[] res = debugger.readBytesFromProcess0(address, numBytes);
+                    if (res != null)
+                        result = new ReadResult(res);
+                    else
+                        result = new ReadResult(address);
+                }
+            }
+
+            ReadBytesFromProcessTask task = new ReadBytesFromProcessTask();
+            task.address = address;
+            task.numBytes = numBytes;
+            workerThread.execute(task);
+            return task.result;
+        }
+    }
+
+    public void writeBytesToProcess(long address, long numBytes, byte[] data)
+        throws UnmappedAddressException, DebuggerException {
+        // FIXME
+        throw new DebuggerException("Unimplemented");
+    }
+
+    static {
+        System.loadLibrary("saproc");
+        init0();
+    }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdOopHandle.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdOopHandle.java
new file mode 100644
index 0000000..9df0e2f
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdOopHandle.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.bsd;
+
+import sun.jvm.hotspot.debugger.*;
+
+class BsdOopHandle extends BsdAddress implements OopHandle {
+  BsdOopHandle(BsdDebugger debugger, long addr) {
+    super(debugger, addr);
+  }
+
+  public boolean equals(Object arg) {
+    if (arg == null) {
+      return false;
+    }
+
+    if (!(arg instanceof BsdOopHandle)) {
+      return false;
+    }
+
+    return (addr == ((BsdAddress) arg).addr);
+  }
+
+  public Address    addOffsetTo       (long offset) throws UnsupportedOperationException {
+    throw new UnsupportedOperationException("addOffsetTo not applicable to OopHandles (interior object pointers not allowed)");
+  }
+
+  public Address    andWithMask(long mask) throws UnsupportedOperationException {
+    throw new UnsupportedOperationException("andWithMask not applicable to OopHandles (i.e., anything but C addresses)");
+  }
+
+  public Address    orWithMask(long mask) throws UnsupportedOperationException {
+    throw new UnsupportedOperationException("orWithMask not applicable to OopHandles (i.e., anything but C addresses)");
+  }
+
+  public Address    xorWithMask(long mask) throws UnsupportedOperationException {
+    throw new UnsupportedOperationException("xorWithMask not applicable to OopHandles (i.e., anything but C addresses)");
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThread.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThread.java
new file mode 100644
index 0000000..b7c507c
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThread.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.bsd;
+
+import sun.jvm.hotspot.debugger.*;
+
+class BsdThread implements ThreadProxy {
+    private BsdDebugger debugger;
+    private int           lwp_id;
+
+    /** The address argument must be the address of the _thread_id in the
+        OSThread. It's value is result ::gettid() call. */
+    BsdThread(BsdDebugger debugger, Address addr) {
+        this.debugger = debugger;
+        // FIXME: size of data fetched here should be configurable.
+        // However, making it so would produce a dependency on the "types"
+        // package from the debugger package, which is not desired.
+        this.lwp_id = (int) addr.getCIntegerAt(0, 4, true);
+    }
+
+    BsdThread(BsdDebugger debugger, long id) {
+        this.debugger = debugger;
+        this.lwp_id = (int) id;
+    }
+
+    public boolean equals(Object obj) {
+        if ((obj == null) || !(obj instanceof BsdThread)) {
+            return false;
+        }
+
+        return (((BsdThread) obj).lwp_id == lwp_id);
+    }
+
+    public int hashCode() {
+        return lwp_id;
+    }
+
+    public String toString() {
+        return Integer.toString(lwp_id);
+    }
+
+    public ThreadContext getContext() throws IllegalThreadStateException {
+        long[] data = debugger.getThreadIntegerRegisterSet(lwp_id);
+        ThreadContext context = BsdThreadContextFactory.createThreadContext(debugger);
+        for (int i = 0; i < data.length; i++) {
+            context.setRegister(i, data[i]);
+        }
+        return context;
+    }
+
+    public boolean canSetContext() throws DebuggerException {
+        return false;
+    }
+
+    public void setContext(ThreadContext context)
+      throws IllegalThreadStateException, DebuggerException {
+        throw new DebuggerException("Unimplemented");
+    }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThreadContextFactory.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThreadContextFactory.java
new file mode 100644
index 0000000..8c13ada
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThreadContextFactory.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.bsd;
+
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.bsd.amd64.*;
+import sun.jvm.hotspot.debugger.bsd.x86.*;
+
+class BsdThreadContextFactory {
+   static ThreadContext createThreadContext(BsdDebugger dbg) {
+      String cpu = dbg.getCPU();
+      if (cpu.equals("x86")) {
+         return new BsdX86ThreadContext(dbg);
+      } else if (cpu.equals("amd64")) {
+         return new BsdAMD64ThreadContext(dbg);
+      } else {
+         throw new RuntimeException("cpu " + cpu + " is not yet supported");
+      }
+   }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/SharedObject.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/SharedObject.java
new file mode 100644
index 0000000..2f72f7d
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/SharedObject.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.bsd;
+
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.cdbg.*;
+import sun.jvm.hotspot.debugger.posix.*;
+
+/** A Object can represent either a .so or an a.out file. */
+
+class SharedObject extends DSO {
+  SharedObject(BsdDebugger dbg, String filename, long size, Address relocation) {
+    super(filename, size, relocation);
+    this.dbg     = dbg;
+  }
+
+  protected Address newAddress(long address) {
+    return dbg.newAddress(address);
+  }
+
+  protected long getAddressValue(Address addr) {
+    return dbg.getAddressValue(addr);
+  }
+
+  private BsdDebugger   dbg;
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64CFrame.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64CFrame.java
new file mode 100644
index 0000000..b27a539
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64CFrame.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.bsd.amd64;
+
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.bsd.*;
+import sun.jvm.hotspot.debugger.cdbg.*;
+import sun.jvm.hotspot.debugger.cdbg.basic.*;
+
+final public class BsdAMD64CFrame extends BasicCFrame {
+   public BsdAMD64CFrame(BsdDebugger dbg, Address rbp, Address rip) {
+      super(dbg.getCDebugger());
+      this.rbp = rbp;
+      this.rip = rip;
+      this.dbg = dbg;
+   }
+
+   // override base class impl to avoid ELF parsing
+   public ClosestSymbol closestSymbolToPC() {
+      // try native lookup in debugger.
+      return dbg.lookup(dbg.getAddressValue(pc()));
+   }
+
+   public Address pc() {
+      return rip;
+   }
+
+   public Address localVariableBase() {
+      return rbp;
+   }
+
+   public CFrame sender() {
+      if (rbp == null) {
+        return null;
+      }
+
+      Address nextRBP = rbp.getAddressAt( 0 * ADDRESS_SIZE);
+      if (nextRBP == null) {
+        return null;
+      }
+      Address nextPC  = rbp.getAddressAt( 1 * ADDRESS_SIZE);
+      if (nextPC == null) {
+        return null;
+      }
+      return new BsdAMD64CFrame(dbg, nextRBP, nextPC);
+   }
+
+   // package/class internals only
+   private static final int ADDRESS_SIZE = 8;
+   private Address rip;
+   private Address rbp;
+   private BsdDebugger dbg;
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64ThreadContext.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64ThreadContext.java
new file mode 100644
index 0000000..a9ebf83
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/amd64/BsdAMD64ThreadContext.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.bsd.amd64;
+
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.amd64.*;
+import sun.jvm.hotspot.debugger.bsd.*;
+
+public class BsdAMD64ThreadContext extends AMD64ThreadContext {
+  private BsdDebugger debugger;
+
+  public BsdAMD64ThreadContext(BsdDebugger debugger) {
+    super();
+    this.debugger = debugger;
+  }
+
+  public void setRegisterAsAddress(int index, Address value) {
+    setRegister(index, debugger.getAddressValue(value));
+  }
+
+  public Address getRegisterAsAddress(int index) {
+    return debugger.newAddress(getRegister(index));
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86CFrame.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86CFrame.java
new file mode 100644
index 0000000..40292b9
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86CFrame.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.bsd.x86;
+
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.bsd.*;
+import sun.jvm.hotspot.debugger.cdbg.*;
+import sun.jvm.hotspot.debugger.cdbg.basic.*;
+
+final public class BsdX86CFrame extends BasicCFrame {
+   // package/class internals only
+   public BsdX86CFrame(BsdDebugger dbg, Address ebp, Address pc) {
+      super(dbg.getCDebugger());
+      this.ebp = ebp;
+      this.pc = pc;
+      this.dbg = dbg;
+   }
+
+   // override base class impl to avoid ELF parsing
+   public ClosestSymbol closestSymbolToPC() {
+      // try native lookup in debugger.
+      return dbg.lookup(dbg.getAddressValue(pc()));
+   }
+
+   public Address pc() {
+      return pc;
+   }
+
+   public Address localVariableBase() {
+      return ebp;
+   }
+
+   public CFrame sender() {
+      if (ebp == null) {
+        return null;
+      }
+
+      Address nextEBP = ebp.getAddressAt( 0 * ADDRESS_SIZE);
+      if (nextEBP == null) {
+        return null;
+      }
+      Address nextPC  = ebp.getAddressAt( 1 * ADDRESS_SIZE);
+      if (nextPC == null) {
+        return null;
+      }
+      return new BsdX86CFrame(dbg, nextEBP, nextPC);
+   }
+
+   private static final int ADDRESS_SIZE = 4;
+   private Address pc;
+   private Address ebp;
+   private BsdDebugger dbg;
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86ThreadContext.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86ThreadContext.java
new file mode 100644
index 0000000..8eaca2b
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86ThreadContext.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.debugger.bsd.x86;
+
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.x86.*;
+import sun.jvm.hotspot.debugger.bsd.*;
+
+public class BsdX86ThreadContext extends X86ThreadContext {
+  private BsdDebugger debugger;
+
+  public BsdX86ThreadContext(BsdDebugger debugger) {
+    super();
+    this.debugger = debugger;
+  }
+
+  public void setRegisterAsAddress(int index, Address value) {
+    setRegister(index, debugger.getAddressValue(value));
+  }
+
+  public Address getRegisterAsAddress(int index) {
+    return debugger.newAddress(getRegister(index));
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecode.java
index 87c7a54..57f676a 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecode.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecode.java
@@ -26,6 +26,7 @@ package sun.jvm.hotspot.interpreter;
 
 import sun.jvm.hotspot.oops.*;
 import sun.jvm.hotspot.utilities.*;
+import sun.jvm.hotspot.runtime.VM;
 
 public class Bytecode {
   Method method;
@@ -45,6 +46,23 @@ public class Bytecode {
     return Bits.roundTo(bci + offset, jintSize) - bci;
   }
 
+  public int     getIndexU1()               { return method.getBytecodeOrBPAt(bci() + 1) & 0xFF; }
+  public int     getIndexU2(int bc, boolean isWide) {
+    if (can_use_native_byte_order(bc, isWide)) {
+      return method.getNativeShortArg(bci() + (isWide ? 2 : 1)) & 0xFFFF;
+    }
+    return method.getBytecodeShortArg(bci() + (isWide ? 2 : 1)) & 0xFFFF;
+  }
+  public int     getIndexU4()               { return method.getNativeIntArg(bci() + 1); }
+  public boolean hasIndexU4()               { return code() == Bytecodes._invokedynamic; }
+
+  public int     getIndexU1Cpcache()        { return method.getBytecodeOrBPAt(bci() + 1) & 0xFF; }
+  public int     getIndexU2Cpcache()        { return method.getNativeShortArg(bci() + 1) & 0xFFFF; }
+
+  static boolean can_use_native_byte_order(int bc, boolean is_wide) {
+    return (VM.getVM().isBigEndian() || Bytecodes.native_byte_order(bc /*, is_wide*/));
+  }
+
   int javaSignedWordAt(int offset) {
     return method.getBytecodeIntArg(bci + offset);
   }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java
index d1f9f70..2c27e3d 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java
@@ -28,29 +28,25 @@ import sun.jvm.hotspot.oops.*;
 import sun.jvm.hotspot.runtime.*;
 import sun.jvm.hotspot.utilities.*;
 
-public class BytecodeLoadConstant extends BytecodeWithCPIndex {
+public class BytecodeLoadConstant extends Bytecode {
   BytecodeLoadConstant(Method method, int bci) {
     super(method, bci);
   }
 
   public boolean hasCacheIndex() {
     // normal ldc uses CP index, but fast_aldc uses swapped CP cache index
-    return javaCode() != code();
+    return code() >= Bytecodes.number_of_java_codes;
   }
 
-  public int index() {
-    int i = javaCode() == Bytecodes._ldc ?
-                 (int) (0xFF & javaByteAt(1))
-               : (int) (0xFFFF & javaShortAt(1));
-    if (hasCacheIndex()) {
-      return (0xFFFF & VM.getVM().getBytes().swapShort((short) i));
-    } else {
-      return i;
-    }
+  int rawIndex() {
+    if (javaCode() == Bytecodes._ldc)
+      return getIndexU1();
+    else
+      return getIndexU2(code(), false);
   }
 
   public int poolIndex() {
-    int i = index();
+    int i = rawIndex();
     if (hasCacheIndex()) {
       ConstantPoolCache cpCache = method().getConstants().getCache();
       return cpCache.getEntryAt(i).getConstantPoolIndex();
@@ -61,12 +57,18 @@ public class BytecodeLoadConstant extends BytecodeWithCPIndex {
 
   public int cacheIndex() {
     if (hasCacheIndex()) {
-      return index();
+      return rawIndex();
     } else {
       return -1;  // no cache index
     }
   }
 
+  public BasicType resultType() {
+    int index = poolIndex();
+    ConstantTag tag = method().getConstants().getTagAt(index);
+    return tag.basicType();
+  }
+
   private Oop getCachedConstant() {
     int i = cacheIndex();
     if (i >= 0) {
@@ -88,7 +90,7 @@ public class BytecodeLoadConstant extends BytecodeWithCPIndex {
            jcode == Bytecodes._ldc2_w;
     if (! codeOk) return false;
 
-    ConstantTag ctag = method().getConstants().getTagAt(index());
+    ConstantTag ctag = method().getConstants().getTagAt(poolIndex());
     if (jcode == Bytecodes._ldc2_w) {
        // has to be double or long
        return (ctag.isDouble() || ctag.isLong()) ? true: false;
@@ -107,7 +109,7 @@ public class BytecodeLoadConstant extends BytecodeWithCPIndex {
        return false;
     }
 
-    ConstantTag ctag = method().getConstants().getTagAt(index());
+    ConstantTag ctag = method().getConstants().getTagAt(poolIndex());
     return ctag.isKlass() || ctag.isUnresolvedKlass();
   }
 
@@ -120,7 +122,7 @@ public class BytecodeLoadConstant extends BytecodeWithCPIndex {
     // We just look at the object at the corresponding index and
     // decide based on the oop type.
     ConstantPool cpool = method().getConstants();
-    int cpIndex = index();
+    int cpIndex = poolIndex();
     ConstantPool.CPSlot oop = cpool.getSlotAt(cpIndex);
     if (oop.isOop()) {
       return (Klass) oop.getOop();
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeStream.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeStream.java
index 20e475b..6084b35 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeStream.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeStream.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -130,7 +130,13 @@ public class BytecodeStream {
   public int     getIndex()           { return (isWide())
                                           ? (_method.getBytecodeShortArg(bci() + 2) & 0xFFFF)
                                           : (_method.getBytecodeOrBPAt(bci() + 1) & 0xFF); }
-  public int     getIndexBig()        { return _method.getBytecodeShortArg(bci() + 1); }
+  public int     getIndexU1()         { return _method.getBytecodeOrBPAt(bci() + 1) & 0xFF; }
+  public int     getIndexU2()         { return _method.getBytecodeShortArg(bci() + 1) & 0xFFFF; }
+  public int     getIndexU4()         { return _method.getNativeIntArg(bci() + 1); }
+  public boolean hasIndexU4()         { return code() == Bytecodes._invokedynamic; }
+
+  public int     getIndexU1Cpcache()         { return _method.getBytecodeOrBPAt(bci() + 1) & 0xFF; }
+  public int     getIndexU2Cpcache()         { return _method.getNativeShortArg(bci() + 1) & 0xFFFF; }
 
   // Fetch at absolute BCI (for manual parsing of certain bytecodes)
   public int     codeAt(int bci) {
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWideable.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWideable.java
index b646873..30df125 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWideable.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWideable.java
@@ -38,7 +38,6 @@ public abstract class BytecodeWideable extends Bytecode {
 
   // the local variable index
   public int getLocalVarIndex() {
-    return (isWide()) ? (int) (0xFFFF & javaShortAt(1))
-            : (int) (0xFF & javaByteAt(1));
+    return (isWide()) ? getIndexU2(code(), true) : getIndexU1();
   }
 }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithCPIndex.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithCPIndex.java
index fc0730f..319558f 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithCPIndex.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithCPIndex.java
@@ -35,7 +35,7 @@ public abstract class BytecodeWithCPIndex extends Bytecode {
   }
 
   // the constant pool index for this bytecode
-  public int index() { return 0xFFFF & javaShortAt(1); }
+  public int index() { return getIndexU2(code(), false); }
 
   public int getSecondaryIndex() {
      throw new IllegalArgumentException("must be invokedynamic");
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java
index 1306dc4..5e5acc1 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java
@@ -276,6 +276,34 @@ public class Bytecodes {
 
   public static final int number_of_codes       = 233;
 
+  // Flag bits derived from format strings, can_trap, can_rewrite, etc.:
+  // semantic flags:
+  static final int  _bc_can_trap      = 1<<0;     // bytecode execution can trap or block
+  static final int  _bc_can_rewrite   = 1<<1;     // bytecode execution has an alternate form
+
+  // format bits (determined only by the format string):
+  static final int  _fmt_has_c        = 1<<2;     // constant, such as sipush "bcc"
+  static final int  _fmt_has_j        = 1<<3;     // constant pool cache index, such as getfield "bjj"
+  static final int  _fmt_has_k        = 1<<4;     // constant pool index, such as ldc "bk"
+  static final int  _fmt_has_i        = 1<<5;     // local index, such as iload
+  static final int  _fmt_has_o        = 1<<6;     // offset, such as ifeq
+  static final int  _fmt_has_nbo      = 1<<7;     // contains native-order field(s)
+  static final int  _fmt_has_u2       = 1<<8;     // contains double-byte field(s)
+  static final int  _fmt_has_u4       = 1<<9;     // contains quad-byte field
+  static final int  _fmt_not_variable = 1<<10;    // not of variable length (simple or wide)
+  static final int  _fmt_not_simple   = 1<<11;    // either wide or variable length
+  static final int  _all_fmt_bits     = (_fmt_not_simple*2 - _fmt_has_c);
+
+  // Example derived format syndromes:
+  static final int  _fmt_b      = _fmt_not_variable;
+  static final int  _fmt_bc     = _fmt_b | _fmt_has_c;
+  static final int  _fmt_bi     = _fmt_b | _fmt_has_i;
+  static final int  _fmt_bkk    = _fmt_b | _fmt_has_k | _fmt_has_u2;
+  static final int  _fmt_bJJ    = _fmt_b | _fmt_has_j | _fmt_has_u2 | _fmt_has_nbo;
+  static final int  _fmt_bo2    = _fmt_b | _fmt_has_o | _fmt_has_u2;
+  static final int  _fmt_bo4    = _fmt_b | _fmt_has_o | _fmt_has_u4;
+
+
   public static int specialLengthAt(Method method, int bci) {
     int code = codeAt(method, bci);
     switch (code) {
@@ -337,18 +365,20 @@ public class Bytecodes {
   //   static Code       non_breakpoint_code_at(address bcp, methodOop method = null);
 
   // Bytecode attributes
-  public static boolean   isDefined    (int code) { return 0 <= code && code < number_of_codes && _format[code] != null; }
-  public static boolean   wideIsDefined(int code) { return isDefined(code) && _wide_format[code] != null; }
+  public static boolean   isDefined    (int code) { return 0 <= code && code < number_of_codes && flags(code, false) != 0; }
+  public static boolean   wideIsDefined(int code) { return isDefined(code) && flags(code, true) != 0; }
   public static String    name         (int code) { check(code);      return _name          [code]; }
   public static String    format       (int code) { check(code);      return _format        [code]; }
   public static String    wideFormat   (int code) { wideCheck(code);  return _wide_format   [code]; }
   public static int       resultType   (int code) { check(code);      return _result_type   [code]; }
   public static int       depth        (int code) { check(code);      return _depth         [code]; }
-  public static int       lengthFor    (int code) { check(code);      return _length        [code]; }
-  public static boolean   canTrap      (int code) { check(code);      return _can_trap      [code]; }
+  public static int       lengthFor    (int code) { check(code);      return _lengths       [code] & 0xF; }
+  public static int       wideLengthFor(int code) { check(code);      return _lengths       [code] >> 4; }
+  public static boolean   canTrap      (int code) { check(code);      return has_all_flags(code, _bc_can_trap, false); }
   public static int       javaCode     (int code) { check(code);      return _java_code     [code]; }
-  public static boolean   canRewrite   (int code) { check(code);      return _can_rewrite   [code]; }
-  public static int       wideLengthFor(int code) { wideCheck(code);  return wideFormat(code).length(); }
+  public static boolean   canRewrite   (int code) { check(code);      return has_all_flags(code, _bc_can_rewrite, false); }
+  public static boolean   native_byte_order(int code)  { check(code);      return has_all_flags(code, _fmt_has_nbo, false); }
+  public static boolean   uses_cp_cache  (int code)    { check(code);      return has_all_flags(code, _fmt_has_j, false); }
   public static int       lengthAt     (Method method, int bci) { int l = lengthFor(codeAt(method, bci)); return l > 0 ? l : specialLengthAt(method, bci); }
   public static int       javaLengthAt (Method method, int bci) { int l = lengthFor(javaCode(codeAt(method, bci))); return l > 0 ? l : specialLengthAt(method, bci); }
   public static boolean   isJavaCode   (int code) { return 0 <= code && code < number_of_java_codes; }
@@ -362,6 +392,92 @@ public class Bytecodes {
   public static boolean   isZeroConst  (int code) { return (code == _aconst_null || code == _iconst_0
                                                                                  || code == _fconst_0 || code == _dconst_0); }
 
+  static int         flags          (int code, boolean is_wide) {
+    assert code == (code & 0xff) : "must be a byte";
+    return _flags[code + (is_wide ? 256 : 0)];
+  }
+  static int         format_bits    (int code, boolean is_wide) { return flags(code, is_wide) & _all_fmt_bits; }
+  static boolean     has_all_flags  (int code, int test_flags, boolean is_wide) {
+    return (flags(code, is_wide) & test_flags) == test_flags;
+  }
+
+  static char compute_flags(String format) {
+    return compute_flags(format, 0);
+  }
+  static char compute_flags(String format, int more_flags) {
+    if (format == null)  return 0;  // not even more_flags
+    int flags = more_flags;
+    int fp = 0;
+    if (format.length() == 0) {
+      flags |= _fmt_not_simple; // but variable
+    } else {
+      switch (format.charAt(fp)) {
+      case 'b':
+        flags |= _fmt_not_variable;  // but simple
+        ++fp;  // skip 'b'
+        break;
+      case 'w':
+        flags |= _fmt_not_variable | _fmt_not_simple;
+        ++fp;  // skip 'w'
+      assert(format.charAt(fp) == 'b') : "wide format must start with 'wb'";
+        ++fp;  // skip 'b'
+        break;
+      }
+    }
+
+    boolean has_nbo = false, has_jbo = false;
+    int has_size = 0;
+    while (fp < format.length()) {
+      int this_flag = 0;
+      char fc = format.charAt(fp++);
+      switch (fc) {
+      case '_': continue;         // ignore these
+
+      case 'j': this_flag = _fmt_has_j; has_jbo = true; break;
+      case 'k': this_flag = _fmt_has_k; has_jbo = true; break;
+      case 'i': this_flag = _fmt_has_i; has_jbo = true; break;
+      case 'c': this_flag = _fmt_has_c; has_jbo = true; break;
+      case 'o': this_flag = _fmt_has_o; has_jbo = true; break;
+
+        // uppercase versions mark native byte order (from Rewriter)
+        // actually, only the 'J' case happens currently
+      case 'J': this_flag = _fmt_has_j; has_nbo = true; break;
+      case 'K': this_flag = _fmt_has_k; has_nbo = true; break;
+      case 'I': this_flag = _fmt_has_i; has_nbo = true; break;
+      case 'C': this_flag = _fmt_has_c; has_nbo = true; break;
+      case 'O': this_flag = _fmt_has_o; has_nbo = true; break;
+      default:  assert false : "bad char in format";
+      }
+
+      flags |= this_flag;
+
+      assert !(has_jbo && has_nbo) : "mixed byte orders in format";
+      if (has_nbo)
+        flags |= _fmt_has_nbo;
+
+      int this_size = 1;
+      if (fp < format.length() && format.charAt(fp) == fc) {
+        // advance beyond run of the same characters
+        this_size = 2;
+        while (fp  + 1 < format.length() && format.charAt(++fp) == fc)  this_size++;
+        switch (this_size) {
+        case 2: flags |= _fmt_has_u2; break;
+        case 4: flags |= _fmt_has_u4; break;
+        default: assert false : "bad rep count in format";
+        }
+      }
+      assert has_size == 0 ||                     // no field yet
+        this_size == has_size ||             // same size
+        this_size < has_size && fp == format.length() : // last field can be short
+             "mixed field sizes in format";
+      has_size = this_size;
+    }
+
+    assert flags == (char)flags : "change _format_flags";
+    return (char)flags;
+  }
+
+
   //----------------------------------------------------------------------
   // Internals only below this point
   //
@@ -371,10 +487,9 @@ public class Bytecodes {
   private static String[]    _wide_format;
   private static int[]       _result_type;
   private static byte[]      _depth;
-  private static byte[]      _length;
-  private static boolean[]   _can_trap;
+  private static byte[]      _lengths;
   private static int[]       _java_code;
-  private static boolean[]   _can_rewrite;
+  private static char[]      _flags;
 
   static {
     _name           = new String [number_of_codes];
@@ -382,10 +497,9 @@ public class Bytecodes {
     _wide_format    = new String [number_of_codes];
     _result_type    = new int    [number_of_codes]; // See BasicType.java
     _depth          = new byte   [number_of_codes];
-    _length         = new byte   [number_of_codes];
-    _can_trap       = new boolean[number_of_codes];
+    _lengths        = new byte   [number_of_codes];
     _java_code      = new int    [number_of_codes];
-    _can_rewrite    = new boolean[number_of_codes];
+    _flags          = new char[256 * 2]; // all second page for wide formats
 
     // In case we want to fetch this information from the VM in the
     // future
@@ -712,18 +826,19 @@ public class Bytecodes {
     if (Assert.ASSERTS_ENABLED) {
       Assert.that(wide_format == null || format != null, "short form must exist if there's a wide form");
     }
+    int len  = (format      != null ? format.length()      : 0);
+    int wlen = (wide_format != null ? wide_format.length() : 0);
     _name          [code] = name;
-    _format        [code] = format;
-    _wide_format   [code] = wide_format;
     _result_type   [code] = result_type;
     _depth         [code] = (byte) depth;
-    _can_trap      [code] = can_trap;
-    _length        [code] = (byte) (format != null ? format.length() : 0);
+    _lengths       [code] = (byte)((wlen << 4) | (len & 0xF));
     _java_code     [code] = java_code;
-    if (java_code != code) {
-      _can_rewrite[java_code] = true;
-    } else {
-      _can_rewrite[java_code] = false;
-    }
+    _format        [code] = format;
+    _wide_format   [code] = wide_format;
+    int bc_flags = 0;
+    if (can_trap)           bc_flags |= _bc_can_trap;
+    if (java_code != code)  bc_flags |= _bc_can_rewrite;
+    _flags[code+0*256] = compute_flags(format,      bc_flags);
+    _flags[code+1*256] = compute_flags(wide_format, bc_flags);
   }
 }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java
index 811075d..d28bca1 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java
@@ -28,11 +28,13 @@ import java.io.*;
 
 import com.sun.jdi.*;
 
+import sun.jvm.hotspot.memory.SystemDictionary;
 import sun.jvm.hotspot.oops.Instance;
 import sun.jvm.hotspot.oops.InstanceKlass;
 import sun.jvm.hotspot.oops.ArrayKlass;
 import sun.jvm.hotspot.oops.JVMDIClassStatus;
 import sun.jvm.hotspot.oops.Klass;
+import sun.jvm.hotspot.oops.ObjArray;
 import sun.jvm.hotspot.oops.Oop;
 import sun.jvm.hotspot.oops.Symbol;
 import sun.jvm.hotspot.oops.DefaultHeapVisitor;
@@ -53,6 +55,7 @@ implements ReferenceType {
     private SoftReference methodsCache;
     private SoftReference allMethodsCache;
     private SoftReference nestedTypesCache;
+    private SoftReference methodInvokesCache;
 
     /* to mark when no info available */
     static final SDE NO_SDE_INFO_MARK = new SDE();
@@ -82,6 +85,27 @@ implements ReferenceType {
                 return method;
             }
         }
+        if (ref.getMethodHolder().equals(SystemDictionary.getMethodHandleKlass())) {
+          // invoke methods are generated as needed, so make mirrors as needed
+          List mis = null;
+          if (methodInvokesCache == null) {
+            mis = new ArrayList();
+            methodInvokesCache = new SoftReference(mis);
+          } else {
+            mis = (List)methodInvokesCache.get();
+          }
+          it = mis.iterator();
+          while (it.hasNext()) {
+            MethodImpl method = (MethodImpl)it.next();
+            if (ref.equals(method.ref())) {
+              return method;
+            }
+          }
+
+          MethodImpl method = MethodImpl.createMethodImpl(vm, this, ref);
+          mis.add(method);
+          return method;
+        }
         throw new IllegalArgumentException("Invalid method id: " + ref);
     }
 
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/SADebugServer.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/SADebugServer.java
index df1fb81..df5cf24 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/SADebugServer.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/SADebugServer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -51,14 +51,6 @@ public final class SADebugServer {
          usage();
       }
 
-      // By default, SA agent classes prefer dbx debugger to proc debugger
-      // and Windows process debugger to windbg debugger. SA expects
-      // special properties to be set to choose other debuggers. For SA/JDI,
-      // we choose proc, windbg debuggers instead of the defaults.
-
-      System.setProperty("sun.jvm.hotspot.debugger.useProcDebugger", "true");
-      System.setProperty("sun.jvm.hotspot.debugger.useWindbgDebugger", "true");
-
       // delegate to the actual SA debug server.
       sun.jvm.hotspot.DebugServer.main(args);
    }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/StackFrameImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/StackFrameImpl.java
index 8ef0aa1..69461d3 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/StackFrameImpl.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/StackFrameImpl.java
@@ -123,6 +123,9 @@ public class StackFrameImpl extends MirrorImpl
                 Assert.that(values.size() > 0, "this is missing");
             }
             // 'this' at index 0.
+            if (values.get(0).getType() == BasicType.getTConflict()) {
+              return null;
+            }
             OopHandle handle = values.oopHandleAt(0);
             ObjectHeap heap = vm.saObjectHeap();
             thisObject = vm.objectMirror(heap.newOop(handle));
@@ -210,6 +213,8 @@ public class StackFrameImpl extends MirrorImpl
         validateStackFrame();
         StackValueCollection values = saFrame.getLocals();
         MethodImpl mmm = (MethodImpl)location.method();
+        if (mmm.isNative())
+            return null;
         List argSigs = mmm.argumentSignatures();
         int count = argSigs.size();
         List res = new ArrayList(0);
@@ -231,34 +236,67 @@ public class StackFrameImpl extends MirrorImpl
         ValueImpl valueImpl = null;
         OopHandle handle = null;
         ObjectHeap heap = vm.saObjectHeap();
-        if (variableType == BasicType.T_BOOLEAN) {
+        if (values.get(ss).getType() == BasicType.getTConflict()) {
+          // Dead locals, so just represent them as a zero of the appropriate type
+          if (variableType == BasicType.T_BOOLEAN) {
+            valueImpl = (BooleanValueImpl) vm.mirrorOf(false);
+          } else if (variableType == BasicType.T_CHAR) {
+            valueImpl = (CharValueImpl) vm.mirrorOf((char)0);
+          } else if (variableType == BasicType.T_FLOAT) {
+            valueImpl = (FloatValueImpl) vm.mirrorOf((float)0);
+          } else if (variableType == BasicType.T_DOUBLE) {
+            valueImpl = (DoubleValueImpl) vm.mirrorOf((double)0);
+          } else if (variableType == BasicType.T_BYTE) {
+            valueImpl = (ByteValueImpl) vm.mirrorOf((byte)0);
+          } else if (variableType == BasicType.T_SHORT) {
+            valueImpl = (ShortValueImpl) vm.mirrorOf((short)0);
+          } else if (variableType == BasicType.T_INT) {
+            valueImpl = (IntegerValueImpl) vm.mirrorOf((int)0);
+          } else if (variableType == BasicType.T_LONG) {
+            valueImpl = (LongValueImpl) vm.mirrorOf((long)0);
+          } else if (variableType == BasicType.T_OBJECT) {
+            // we may have an [Ljava/lang/Object; - i.e., Object[] with the
+            // elements themselves may be arrays because every array is an Object.
+            handle = null;
+            valueImpl = (ObjectReferenceImpl) vm.objectMirror(heap.newOop(handle));
+          } else if (variableType == BasicType.T_ARRAY) {
+            handle = null;
+            valueImpl = vm.arrayMirror((Array)heap.newOop(handle));
+          } else if (variableType == BasicType.T_VOID) {
+            valueImpl = new VoidValueImpl(vm);
+          } else {
+            throw new RuntimeException("Should not read here");
+          }
+        } else {
+          if (variableType == BasicType.T_BOOLEAN) {
             valueImpl = (BooleanValueImpl) vm.mirrorOf(values.booleanAt(ss));
-        } else if (variableType == BasicType.T_CHAR) {
+          } else if (variableType == BasicType.T_CHAR) {
             valueImpl = (CharValueImpl) vm.mirrorOf(values.charAt(ss));
-        } else if (variableType == BasicType.T_FLOAT) {
+          } else if (variableType == BasicType.T_FLOAT) {
             valueImpl = (FloatValueImpl) vm.mirrorOf(values.floatAt(ss));
-        } else if (variableType == BasicType.T_DOUBLE) {
+          } else if (variableType == BasicType.T_DOUBLE) {
             valueImpl = (DoubleValueImpl) vm.mirrorOf(values.doubleAt(ss));
-        } else if (variableType == BasicType.T_BYTE) {
+          } else if (variableType == BasicType.T_BYTE) {
             valueImpl = (ByteValueImpl) vm.mirrorOf(values.byteAt(ss));
-        } else if (variableType == BasicType.T_SHORT) {
+          } else if (variableType == BasicType.T_SHORT) {
             valueImpl = (ShortValueImpl) vm.mirrorOf(values.shortAt(ss));
-        } else if (variableType == BasicType.T_INT) {
+          } else if (variableType == BasicType.T_INT) {
             valueImpl = (IntegerValueImpl) vm.mirrorOf(values.intAt(ss));
-        } else if (variableType == BasicType.T_LONG) {
+          } else if (variableType == BasicType.T_LONG) {
             valueImpl = (LongValueImpl) vm.mirrorOf(values.longAt(ss));
-        } else if (variableType == BasicType.T_OBJECT) {
+          } else if (variableType == BasicType.T_OBJECT) {
             // we may have an [Ljava/lang/Object; - i.e., Object[] with the
             // elements themselves may be arrays because every array is an Object.
             handle = values.oopHandleAt(ss);
             valueImpl = (ObjectReferenceImpl) vm.objectMirror(heap.newOop(handle));
-        } else if (variableType == BasicType.T_ARRAY) {
+          } else if (variableType == BasicType.T_ARRAY) {
             handle = values.oopHandleAt(ss);
             valueImpl = vm.arrayMirror((Array)heap.newOop(handle));
-        } else if (variableType == BasicType.T_VOID) {
+          } else if (variableType == BasicType.T_VOID) {
             valueImpl = new VoidValueImpl(vm);
-        } else {
+          } else {
             throw new RuntimeException("Should not read here");
+          }
         }
 
         return valueImpl;
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java
index d6e4e61..4cbc144 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java
@@ -263,14 +263,6 @@ public class VirtualMachineImpl extends MirrorImpl implements PathSearchingVirtu
                                             this.hashCode() + "]");
 
         ((com.sun.tools.jdi.VirtualMachineManagerImpl)mgr).addVirtualMachine(this);
-
-        // By default SA agent classes prefer dbx debugger to proc debugger
-        // and Windows process debugger to windbg debugger. SA expects
-        // special properties to be set to choose other debuggers. We will set
-        // those here before attaching to SA agent.
-
-        System.setProperty("sun.jvm.hotspot.debugger.useProcDebugger", "true");
-        System.setProperty("sun.jvm.hotspot.debugger.useWindbgDebugger", "true");
     }
 
     // we reflectively use newly spec'ed class because our ALT_BOOTDIR
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java
index f8bb01a..c999ff1 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java
@@ -44,6 +44,7 @@ public class SystemDictionary {
   private static sun.jvm.hotspot.types.OopField systemKlassField;
   private static sun.jvm.hotspot.types.OopField threadKlassField;
   private static sun.jvm.hotspot.types.OopField threadGroupKlassField;
+  private static sun.jvm.hotspot.types.OopField methodHandleKlassField;
 
   static {
     VM.registerVMInitializedObserver(new Observer() {
@@ -69,6 +70,7 @@ public class SystemDictionary {
     systemKlassField = type.getOopField(WK_KLASS("System_klass"));
     threadKlassField = type.getOopField(WK_KLASS("Thread_klass"));
     threadGroupKlassField = type.getOopField(WK_KLASS("ThreadGroup_klass"));
+    methodHandleKlassField = type.getOopField(WK_KLASS("MethodHandle_klass"));
   }
 
   // This WK functions must follow the definitions in systemDictionary.hpp:
@@ -127,6 +129,10 @@ public class SystemDictionary {
     return (InstanceKlass) newOop(systemKlassField.getValue());
   }
 
+  public static InstanceKlass getMethodHandleKlass() {
+    return (InstanceKlass) newOop(methodHandleKlassField.getValue());
+  }
+
   public InstanceKlass getAbstractOwnableSynchronizerKlass() {
     return (InstanceKlass) find("java/util/concurrent/locks/AbstractOwnableSynchronizer",
                                 null, null);
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ArrayData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ArrayData.java
new file mode 100644
index 0000000..4a92692
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ArrayData.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+
+package sun.jvm.hotspot.oops;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+// ArrayData
+//
+// A ArrayData is a base class for accessing profiling data which does
+// not have a statically known size.  It consists of an array length
+// and an array start.
+abstract class ArrayData extends ProfileData {
+
+  static final int arrayLenOffSet = 0;
+  static final int arrayStartOffSet = 1;
+
+  int arrayUintAt(int index) {
+    int aindex = index + arrayStartOffSet;
+    return uintAt(aindex);
+  }
+  int arrayIntAt(int index) {
+    int aindex = index + arrayStartOffSet;
+    return intAt(aindex);
+  }
+  Oop arrayOopAt(int index) {
+    int aindex = index + arrayStartOffSet;
+    return oopAt(aindex);
+  }
+
+  // Code generation support for subclasses.
+  static int arrayElementOffset(int index) {
+    return cellOffset(arrayStartOffSet + index);
+  }
+
+  ArrayData(DataLayout layout) {
+    super(layout);
+  }
+
+  static int staticCellCount() {
+    return -1;
+  }
+
+  int arrayLen() {
+    return intAt(arrayLenOffSet);
+  }
+
+  public int cellCount() {
+    return arrayLen() + 1;
+  }
+
+  // Code generation support
+  static int arrayLenOffset() {
+    return cellOffset(arrayLenOffSet);
+  }
+  static int arrayStartOffset() {
+    return cellOffset(arrayStartOffSet);
+  }
+
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/BitData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/BitData.java
new file mode 100644
index 0000000..80902b0
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/BitData.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.oops;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+// BitData
+//
+// A BitData holds a flag or two in its header.
+public class BitData extends ProfileData {
+
+  // nullSeen:
+  //  saw a null operand (cast/aastore/instanceof)
+  static final int nullSeenFlag              = DataLayout.firstFlag + 0;
+  static final int bitCellCount = 0;
+
+  public BitData(DataLayout layout) {
+    super(layout);
+  }
+
+  static int staticCellCount() {
+    return bitCellCount;
+  }
+
+  public int cellCount() {
+    return staticCellCount();
+  }
+
+  // Accessor
+
+  // The nullSeen flag bit is specially known to the interpreter.
+  // Consulting it allows the compiler to avoid setting up nullCheck traps.
+  boolean nullSeen()     { return flagAt(nullSeenFlag); }
+
+  // Code generation support
+  // static int nullSeenByteConstant() {
+  //   return flagNumberToByteConstant(nullSeenFlag);
+  // }
+
+  static int bitDataSize() {
+    return cellOffset(bitCellCount);
+  }
+
+  public void printDataOn(PrintStream st) {
+    printShared(st, "BitData");
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/BranchData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/BranchData.java
new file mode 100644
index 0000000..a80382f
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/BranchData.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+
+package sun.jvm.hotspot.oops;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+// BranchData
+//
+// A BranchData is used to access profiling data for a two-way branch.
+// It consists of taken and notTaken counts as well as a data displacement
+// for the taken case.
+public class BranchData extends JumpData {
+
+  static final int notTakenOffSet = jumpCellCount;
+  static final int branchCellCount = notTakenOffSet + 1;
+
+  public BranchData(DataLayout layout) {
+    super(layout);
+    //assert(layout.tag() == DataLayout.branchDataTag, "wrong type");
+  }
+
+  static int staticCellCount() {
+    return branchCellCount;
+  }
+
+  public int cellCount() {
+    return staticCellCount();
+  }
+
+  // Direct accessor
+  int notTaken() {
+    return uintAt(notTakenOffSet);
+  }
+
+  // Code generation support
+  static int notTakenOffset() {
+    return cellOffset(notTakenOffSet);
+  }
+  static int branchDataSize() {
+    return cellOffset(branchCellCount);
+  }
+
+  public void printDataOn(PrintStream st) {
+    printShared(st, "BranchData");
+    st.println("taken(" + taken() + ") displacement(" + displacement() + ")");
+    tab(st);
+    st.println("not taken(" + notTaken() + ")");
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/CIntField.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/CIntField.java
index 91d2807..1cb99ad 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/CIntField.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/CIntField.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,6 +41,9 @@ public class CIntField extends Field {
   public long getValue(Oop obj) {
     return obj.getHandle().getCIntegerAt(getOffset(), size, isUnsigned);
   }
+  public long getValue(Address addr) {
+    return addr.getCIntegerAt(getOffset(), size, isUnsigned);
+  }
   public void setValue(Oop obj, long value) throws MutationException {
     // Fix this: set* missing in Address
   }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethod.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethod.java
index 51285d3..5346d49 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethod.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethod.java
@@ -164,6 +164,18 @@ public class ConstMethod extends Oop {
     return (short) ((hi << 8) | lo);
   }
 
+  /** Fetches a 16-bit native ordered value from the
+      bytecode stream */
+  public short getNativeShortArg(int bci) {
+    int hi = getBytecodeOrBPAt(bci);
+    int lo = getBytecodeOrBPAt(bci + 1);
+    if (VM.getVM().isBigEndian()) {
+        return (short) ((hi << 8) | lo);
+    } else {
+        return (short) ((lo << 8) | hi);
+    }
+  }
+
   /** Fetches a 32-bit big-endian ("Java ordered") value from the
       bytecode stream */
   public int getBytecodeIntArg(int bci) {
@@ -175,6 +187,21 @@ public class ConstMethod extends Oop {
     return (b4 << 24) | (b3 << 16) | (b2 << 8) | b1;
   }
 
+  /** Fetches a 32-bit native ordered value from the
+      bytecode stream */
+  public int getNativeIntArg(int bci) {
+    int b4 = getBytecodeOrBPAt(bci);
+    int b3 = getBytecodeOrBPAt(bci + 1);
+    int b2 = getBytecodeOrBPAt(bci + 2);
+    int b1 = getBytecodeOrBPAt(bci + 3);
+
+    if (VM.getVM().isBigEndian()) {
+        return (b4 << 24) | (b3 << 16) | (b2 << 8) | b1;
+    } else {
+        return (b1 << 24) | (b2 << 16) | (b3 << 8) | b4;
+    }
+  }
+
   public byte[] getByteCode() {
      byte[] bc = new byte[ (int) getCodeSize() ];
      for( int i=0; i < bc.length; i++ )
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java
index f297e32..5752eae 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java
@@ -212,13 +212,60 @@ public class ConstantPool extends Oop implements ClassConstants {
   }
 
   public Symbol getNameRefAt(int which) {
-    int nameIndex = getNameAndTypeAt(getNameAndTypeRefIndexAt(which))[0];
-    return getSymbolAt(nameIndex);
+    return implGetNameRefAt(which, false);
+  }
+
+  private Symbol implGetNameRefAt(int which, boolean uncached) {
+    int signatureIndex = getNameRefIndexAt(implNameAndTypeRefIndexAt(which, uncached));
+    return getSymbolAt(signatureIndex);
   }
 
   public Symbol getSignatureRefAt(int which) {
-    int sigIndex = getNameAndTypeAt(getNameAndTypeRefIndexAt(which))[1];
-    return getSymbolAt(sigIndex);
+    return implGetSignatureRefAt(which, false);
+  }
+
+  private Symbol implGetSignatureRefAt(int which, boolean uncached) {
+    int signatureIndex = getSignatureRefIndexAt(implNameAndTypeRefIndexAt(which, uncached));
+    return getSymbolAt(signatureIndex);
+  }
+
+
+  private int implNameAndTypeRefIndexAt(int which, boolean uncached) {
+    int i = which;
+    if (!uncached && getCache() != null) {
+      if (ConstantPoolCache.isSecondaryIndex(which)) {
+        // Invokedynamic index.
+        int pool_index = getCache().getMainEntryAt(which).getConstantPoolIndex();
+        pool_index = invokeDynamicNameAndTypeRefIndexAt(pool_index);
+        // assert(tagAt(pool_index).isNameAndType(), "");
+        return pool_index;
+      }
+      // change byte-ordering and go via cache
+      i = remapInstructionOperandFromCache(which);
+    } else {
+      if (getTagAt(which).isInvokeDynamic()) {
+        int pool_index = invokeDynamicNameAndTypeRefIndexAt(which);
+        // assert(tag_at(pool_index).is_name_and_type(), "");
+        return pool_index;
+      }
+    }
+    // assert(tag_at(i).is_field_or_method(), "Corrupted constant pool");
+    // assert(!tag_at(i).is_invoke_dynamic(), "Must be handled above");
+    int ref_index = getIntAt(i);
+    return extractHighShortFromInt(ref_index);
+  }
+
+  private int remapInstructionOperandFromCache(int operand) {
+    int cpc_index = operand;
+    // DEBUG_ONLY(cpc_index -= CPCACHE_INDEX_TAG);
+    // assert((int)(u2)cpc_index == cpc_index, "clean u2");
+    int member_index = getCache().getEntryAt(cpc_index).getConstantPoolIndex();
+    return member_index;
+  }
+
+  int invokeDynamicNameAndTypeRefIndexAt(int which) {
+    // assert(tag_at(which).is_invoke_dynamic(), "Corrupted constant pool");
+    return extractHighShortFromInt(getIntAt(which));
   }
 
   // returns null, if not resolved.
@@ -253,15 +300,7 @@ public class ConstantPool extends Oop implements ClassConstants {
   }
 
   public int getNameAndTypeRefIndexAt(int index) {
-    int refIndex = getFieldOrMethodAt(index);
-    if (DEBUG) {
-      System.err.println("ConstantPool.getNameAndTypeRefIndexAt(" + index + "): refIndex = " + refIndex);
-    }
-    int i = extractHighShortFromInt(refIndex);
-    if (DEBUG) {
-      System.err.println("ConstantPool.getNameAndTypeRefIndexAt(" + index + "): result = " + i);
-    }
-    return i;
+    return implNameAndTypeRefIndexAt(index, false);
   }
 
   /** Lookup for entries consisting of (name_index, signature_index) */
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java
index 47a3fac..df14416 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -72,9 +72,7 @@ public class ConstantPoolCache extends Oop {
   }
 
   public ConstantPoolCacheEntry getEntryAt(int i) {
-    if (Assert.ASSERTS_ENABLED) {
-      Assert.that(0 <= i && i < getLength(), "index out of bounds");
-    }
+    if (i < 0 || i >= getLength()) throw new IndexOutOfBoundsException(i + " " + getLength());
     return new ConstantPoolCacheEntry(this, i);
   }
 
@@ -84,21 +82,27 @@ public class ConstantPoolCache extends Oop {
 
   // secondary entries hold invokedynamic call site bindings
   public ConstantPoolCacheEntry getSecondaryEntryAt(int i) {
-    ConstantPoolCacheEntry e = new ConstantPoolCacheEntry(this, decodeSecondaryIndex(i));
+    int rawIndex = i;
+    if (isSecondaryIndex(i)) {
+      rawIndex = decodeSecondaryIndex(i);
+    }
+    ConstantPoolCacheEntry e = getEntryAt(rawIndex);
     if (Assert.ASSERTS_ENABLED) {
-      Assert.that(e.isSecondaryEntry(), "must be a secondary entry");
+      Assert.that(e.isSecondaryEntry(), "must be a secondary entry:" + rawIndex);
     }
     return e;
   }
 
   public ConstantPoolCacheEntry getMainEntryAt(int i) {
+    int primaryIndex = i;
     if (isSecondaryIndex(i)) {
       // run through an extra level of indirection:
-      i = getSecondaryEntryAt(i).getMainEntryIndex();
+      int rawIndex = decodeSecondaryIndex(i);
+      primaryIndex = getEntryAt(rawIndex).getMainEntryIndex();
     }
-    ConstantPoolCacheEntry e = new ConstantPoolCacheEntry(this, i);
+    ConstantPoolCacheEntry e = getEntryAt(primaryIndex);
     if (Assert.ASSERTS_ENABLED) {
-      Assert.that(!e.isSecondaryEntry(), "must not be a secondary entry");
+      Assert.that(!e.isSecondaryEntry(), "must not be a secondary entry:" + primaryIndex);
     }
     return e;
   }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/CounterData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/CounterData.java
new file mode 100644
index 0000000..41b3dd2
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/CounterData.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+
+package sun.jvm.hotspot.oops;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+// CounterData
+//
+// A CounterData corresponds to a simple counter.
+public class CounterData extends BitData {
+
+  static final int countOff = 0;
+  static final int counterCellCount = 1;
+
+  public CounterData(DataLayout layout) {
+    super(layout);
+  }
+
+  static int staticCellCount() {
+    return counterCellCount;
+  }
+
+  public int cellCount() {
+    return staticCellCount();
+  }
+
+  // Direct accessor
+  int count() {
+    return uintAt(countOff);
+  }
+
+  // Code generation support
+  static int countOffset() {
+    return cellOffset(countOff);
+  }
+  static int counterDataSize() {
+    return cellOffset(counterCellCount);
+  }
+
+  public void printDataOn(PrintStream st) {
+    printShared(st, "CounterData");
+    st.println("count(" + count() + ")");
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/DataLayout.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/DataLayout.java
new file mode 100644
index 0000000..1a63eae
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/DataLayout.java
@@ -0,0 +1,206 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+
+package sun.jvm.hotspot.oops;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+public class DataLayout {
+  public static final int noTag = 0;
+  public static final int bitDataTag = 1;
+  public static final int counterDataTag = 2;
+  public static final int jumpDataTag= 3;
+  public static final int receiverTypeDataTag = 4;
+  public static final int virtualCallDataTag = 5;
+  public static final int retDataTag = 6;
+  public static final int branchDataTag = 7;
+  public static final int multiBranchDataTag = 8;
+
+  // The _struct._flags word is formatted as [trapState:4 | flags:4].
+  // The trap state breaks down further as [recompile:1 | reason:3].
+  // This further breakdown is defined in deoptimization.cpp.
+  // See Deoptimization.trapStateReason for an assert that
+  // trapBits is big enough to hold reasons < reasonRecordedLimit.
+  //
+  // The trapState is collected only if ProfileTraps is true.
+  public static final int trapBits = 1+3;  // 3: enough to distinguish [0..reasonRecordedLimit].
+  public static final int trapShift = 8 - trapBits;
+  public static final int trapMask = Bits.rightNBits(trapBits);
+  public static final int trapMaskInPlace = (trapMask << trapShift);
+  public static final int flagLimit = trapShift;
+  public static final int flagMask = Bits.rightNBits(flagLimit);
+  public static final int firstFlag = 0;
+
+  private Address data;
+
+  private int offset;
+
+  private boolean handlized;
+
+  public DataLayout(MethodData d, int o) {
+    data = d.getHandle();
+    offset = o;
+  }
+
+  public DataLayout(Address d, int o) {
+    data = d;
+    offset = o;
+    handlized = true;
+  }
+
+  public int dp() { return offset; }
+
+  private int getU11(int at) {
+    return data.getJByteAt(offset + at) & 0xff;
+  }
+
+  private int getU22(int at) {
+    return data.getJShortAt(offset + at) & 0xffff;
+  }
+
+  int cellAt(int index) {
+    // Cells are intptr_t sized but only contain ints as raw values
+    return (int)data.getCIntegerAt(offset + cellOffset(index), MethodData.cellSize, false);
+  }
+
+  Oop oopAt(int index) {
+    OopHandle handle;
+    if (handlized) {
+      throw new InternalError("unsupported");
+    }
+    handle = data.getOopHandleAt(offset + cellOffset(index));
+    return VM.getVM().getObjectHeap().newOop(handle);
+  }
+
+  public Address addressAt(int index) {
+    OopHandle handle;
+    if (handlized) {
+      return data.getAddressAt(offset + cellOffset(index));
+    } else {
+      return data.getOopHandleAt(offset + cellOffset(index));
+    }
+  }
+
+  // Every data layout begins with a header.  This header
+  // contains a tag, which is used to indicate the size/layout
+  // of the data, 4 bits of flags, which can be used in any way,
+  // 4 bits of trap history (none/one reason/many reasons),
+  // and a bci, which is used to tie this piece of data to a
+  // specific bci in the bytecodes.
+  // union {
+  //   intptrT _bits;
+  //   struct {
+  //     u1 _tag;
+  //     u1 _flags;
+  //     u2 _bci;
+  //   } _struct;
+  // } _header;
+
+  // Some types of data layouts need a length field.
+  static boolean needsArrayLen(int tag) {
+    return (tag == multiBranchDataTag);
+  }
+
+  public static final int counterIncrement = 1;
+
+  // Size computation
+  static int headerSizeInBytes() {
+    return MethodData.cellSize;
+  }
+  static int headerSizeInCells() {
+    return 1;
+  }
+
+  static int computeSizeInBytes(int cellCount) {
+    return headerSizeInBytes() + cellCount * MethodData.cellSize;
+  }
+
+  // Initialization
+  // void initialize(int tag, int bci, int cellCount);
+
+  // Accessors
+  public int tag() {
+    return getU11(0);
+  }
+
+  // Return a few bits of trap state.  Range is [0..trapMask].
+  // The state tells if traps with zero, one, or many reasons have occurred.
+  // It also tells whether zero or many recompilations have occurred.
+  // The associated trap histogram in the MDO itself tells whether
+  // traps are common or not.  If a BCI shows that a trap X has
+  // occurred, and the MDO shows N occurrences of X, we make the
+  // simplifying assumption that all N occurrences can be blamed
+  // on that BCI.
+  int trapState() {
+    return (flags() >> trapShift) & trapMask;
+  }
+
+  int flags() {
+    return getU11(1);
+  }
+
+  int bci() {
+    return getU22(2);
+  }
+
+  boolean flagAt(int flagNumber) {
+    // assert(flagNumber < flagLimit, "oob");
+    return (flags() & (0x1 << flagNumber)) != 0;
+  }
+
+  // Low-level support for code generation.
+  static int headerOffset() {
+    return 0;
+  }
+  static int tagOffset() {
+    return 0;
+  }
+  static int flagsOffset() {
+    return 1;
+  }
+  static int bciOffset() {
+    return 2;
+  }
+  public static int cellOffset(int index) {
+    return MethodData.cellSize + index * MethodData.cellSize;
+  }
+  // // Return a value which, when or-ed as a byte into _flags, sets the flag.
+  // static int flagNumberToByteConstant(int flagNumber) {
+  //   assert(0 <= flagNumber && flagNumber < flagLimit, "oob");
+  //   DataLayout temp; temp.setHeader(0);
+  //   temp.setFlagAt(flagNumber);
+  //   return temp._header._struct._flags;
+  // }
+  // // Return a value which, when or-ed as a word into _header, sets the flag.
+  // static intptrT flagMaskToHeaderMask(int byteConstant) {
+  //   DataLayout temp; temp.setHeader(0);
+  //   temp._header._struct._flags = byteConstant;
+  //   return temp._header._bits;
+  // }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Field.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Field.java
index fc29a39..6c3130c 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Field.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Field.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,28 +39,20 @@ public class Field {
 
   /** Constructor for fields that are named in an InstanceKlass's
       fields array (i.e., named, non-VM fields) */
-  Field(InstanceKlass holder, int fieldArrayIndex) {
+  Field(InstanceKlass holder, int fieldIndex) {
     this.holder = holder;
-    this.fieldArrayIndex = fieldArrayIndex;
-
-    ConstantPool cp      = holder.getConstants();
-    TypeArray fields     = holder.getFields();
-    short access         = fields.getShortAt(fieldArrayIndex + InstanceKlass.ACCESS_FLAGS_OFFSET);
-    short nameIndex      = fields.getShortAt(fieldArrayIndex + InstanceKlass.NAME_INDEX_OFFSET);
-    short signatureIndex = fields.getShortAt(fieldArrayIndex + InstanceKlass.SIGNATURE_INDEX_OFFSET);
-    offset               = VM.getVM().buildIntFromShorts(fields.getShortAt(fieldArrayIndex + InstanceKlass.LOW_OFFSET),
-                                                         fields.getShortAt(fieldArrayIndex + InstanceKlass.HIGH_OFFSET));
-    short genericSignatureIndex = fields.getShortAt(fieldArrayIndex + InstanceKlass.GENERIC_SIGNATURE_INDEX_OFFSET);
-    Symbol name = cp.getSymbolAt(nameIndex);
+    this.fieldIndex = fieldIndex;
+
+    offset               = holder.getFieldOffset(fieldIndex);
+    genericSignature     = holder.getFieldGenericSignature(fieldIndex);
+
+    Symbol name          = holder.getFieldName(fieldIndex);
     id          = new NamedFieldIdentifier(name.asString());
-    signature   = cp.getSymbolAt(signatureIndex);
-    if (genericSignatureIndex != 0)  {
-       genericSignature = cp.getSymbolAt(genericSignatureIndex);
-    } else {
-       genericSignature = null;
-    }
 
+    signature            = holder.getFieldSignature(fieldIndex);
     fieldType   = new FieldType(signature);
+
+    short access         = holder.getFieldAccessFlags(fieldIndex);
     accessFlags = new AccessFlags(access);
   }
 
@@ -73,7 +65,7 @@ public class Field {
   private Symbol          signature;
   private Symbol          genericSignature;
   private AccessFlags     accessFlags;
-  private int             fieldArrayIndex;
+  private int             fieldIndex;
 
   /** Returns the byte offset of the field within the object or klass */
   public long getOffset() { return offset; }
@@ -101,8 +93,8 @@ public class Field {
   /** (Named, non-VM fields only) Returns the index in the fields
       TypeArray for this field. Equivalent to the "index" in the VM's
       fieldDescriptors. */
-  public int getFieldArrayIndex() {
-    return fieldArrayIndex;
+  public int getFieldIndex() {
+    return fieldIndex;
   }
 
   /** (Named, non-VM fields only) Retrieves the access flags. */
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/FieldType.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/FieldType.java
index 2f340b0..b7a3766 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/FieldType.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/FieldType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,6 +67,8 @@ public class FieldType {
   public boolean isObject()  { return first == 'L'; }
   public boolean isArray()   { return first == '['; }
 
+  public Symbol getSignature() { return signature; }
+
   public static class ArrayInfo {
     private int dimension;
     private int elementBasicType; // See BasicType.java
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java
index 30f3497..f25493d 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java
@@ -569,10 +569,10 @@ public class GenerateOopMap {
       case Bytecodes._invokedynamic:
         // FIXME: print signature of referenced method (need more
         // accessors in ConstantPool and ConstantPoolCache)
-        int idx = currentBC.getIndexBig();
+        int idx = currentBC.hasIndexU4() ? currentBC.getIndexU4() : currentBC.getIndexU2();
         tty.print(" idx " + idx);
         /*
-          int idx = currentBC.getIndexBig();
+          int idx = currentBC.getIndexU2();
           ConstantPool cp       = method().getConstants();
           int nameAndTypeIdx    = cp.name_and_type_ref_index_at(idx);
           int signatureIdx      = cp.signature_ref_index_at(nameAndTypeIdx);
@@ -609,10 +609,10 @@ public class GenerateOopMap {
       case Bytecodes._invokedynamic:
         // FIXME: print signature of referenced method (need more
         // accessors in ConstantPool and ConstantPoolCache)
-        int idx = currentBC.getIndexBig();
+        int idx = currentBC.hasIndexU4() ? currentBC.getIndexU4() : currentBC.getIndexU2();
         tty.print(" idx " + idx);
         /*
-          int idx = currentBC.getIndexBig();
+          int idx = currentBC.getIndexU2();
           constantPoolOop cp    = method().constants();
           int nameAndTypeIdx    = cp.name_and_type_ref_index_at(idx);
           int signatureIdx      = cp.signature_ref_index_at(nameAndTypeIdx);
@@ -1118,7 +1118,8 @@ public class GenerateOopMap {
       current instruction, starting in the current state. */
   void  interp1                             (BytecodeStream itr) {
     if (DEBUG) {
-      System.err.println(" - bci " + itr.bci());
+      System.err.println(" - bci " + itr.bci() + " " + itr.code());
+      printCurrentState(System.err, itr, false);
     }
 
     //    if (TraceNewOopMapGeneration) {
@@ -1179,8 +1180,8 @@ public class GenerateOopMap {
 
     case Bytecodes._ldc2_w:            ppush(vvCTS);               break;
 
-    case Bytecodes._ldc:               doLdc(itr.getIndex(), itr.bci());    break;
-    case Bytecodes._ldc_w:             doLdc(itr.getIndexBig(), itr.bci());break;
+    case Bytecodes._ldc:               doLdc(itr.bci());           break;
+    case Bytecodes._ldc_w:             doLdc(itr.bci());           break;
 
     case Bytecodes._iload:
     case Bytecodes._fload:             ppload(vCTS, itr.getIndex()); break;
@@ -1372,18 +1373,16 @@ public class GenerateOopMap {
     case Bytecodes._jsr:               doJsr(itr.dest());          break;
     case Bytecodes._jsr_w:             doJsr(itr.dest_w());        break;
 
-    case Bytecodes._getstatic:         doField(true,  true,
-                                               itr.getIndexBig(),
-                                               itr.bci()); break;
-    case Bytecodes._putstatic:         doField(false, true,  itr.getIndexBig(), itr.bci()); break;
-    case Bytecodes._getfield:          doField(true,  false, itr.getIndexBig(), itr.bci()); break;
-    case Bytecodes._putfield:          doField(false, false, itr.getIndexBig(), itr.bci()); break;
+    case Bytecodes._getstatic:         doField(true,  true,  itr.getIndexU2Cpcache(), itr.bci()); break;
+    case Bytecodes._putstatic:         doField(false, true,  itr.getIndexU2Cpcache(), itr.bci()); break;
+    case Bytecodes._getfield:          doField(true,  false, itr.getIndexU2Cpcache(), itr.bci()); break;
+    case Bytecodes._putfield:          doField(false, false, itr.getIndexU2Cpcache(), itr.bci()); break;
 
     case Bytecodes._invokevirtual:
-    case Bytecodes._invokespecial:     doMethod(false, false, itr.getIndexBig(), itr.bci()); break;
-    case Bytecodes._invokestatic:      doMethod(true,  false, itr.getIndexBig(), itr.bci()); break;
-    case Bytecodes._invokedynamic:     doMethod(false, true,  itr.getIndexBig(), itr.bci()); break;
-    case Bytecodes._invokeinterface:   doMethod(false, true,  itr.getIndexBig(), itr.bci()); break;
+    case Bytecodes._invokespecial:     doMethod(false, false, itr.getIndexU2Cpcache(), itr.bci()); break;
+    case Bytecodes._invokestatic:      doMethod(true,  false, itr.getIndexU2Cpcache(), itr.bci()); break;
+    case Bytecodes._invokedynamic:     doMethod(true,  false, itr.getIndexU4(),        itr.bci()); break;
+    case Bytecodes._invokeinterface:   doMethod(false,  true, itr.getIndexU2Cpcache(), itr.bci()); break;
     case Bytecodes._newarray:
     case Bytecodes._anewarray:         ppNewRef(vCTS, itr.bci()); break;
     case Bytecodes._checkcast:         doCheckcast(); break;
@@ -1665,13 +1664,11 @@ public class GenerateOopMap {
     }
   }
 
-  void  doLdc                               (int idx, int bci) {
+  void  doLdc                               (int bci) {
+    BytecodeLoadConstant ldc = BytecodeLoadConstant.at(_method, bci);
     ConstantPool  cp  = method().getConstants();
-    ConstantTag   tag = cp.getTagAt(idx);
-    CellTypeState cts = (tag.isString() || tag.isUnresolvedString() ||
-                         tag.isKlass() || tag.isUnresolvedKlass())
-                          ? CellTypeState.makeLineRef(bci)
-                          : valCTS;
+    BasicType     bt = ldc.resultType();
+    CellTypeState cts = (bt == BasicType.T_OBJECT) ? CellTypeState.makeLineRef(bci) : valCTS;
     ppush1(cts);
   }
 
@@ -1729,15 +1726,7 @@ public class GenerateOopMap {
   void  doMethod                            (boolean is_static, boolean is_interface, int idx, int bci) {
     // Dig up signature for field in constant pool
     ConstantPool cp       = _method.getConstants();
-    int nameAndTypeIdx    = cp.getTagAt(idx).isNameAndType() ? idx : cp.getNameAndTypeRefIndexAt(idx);
-    int signatureIdx      = cp.getSignatureRefIndexAt(nameAndTypeIdx);
-    Symbol signature      = cp.getSymbolAt(signatureIdx);
-
-    if (DEBUG) {
-      System.err.println("doMethod: signature = " + signature.asString() + ", idx = " + idx +
-                         ", nameAndTypeIdx = " + nameAndTypeIdx + ", signatureIdx = " + signatureIdx +
-                         ", bci = " + bci);
-    }
+    Symbol signature      = cp.getSignatureRefAt(idx);
 
     // Parse method signature
     CellTypeStateList out = new CellTypeStateList(4);
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java
index b1d6741..87de970 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java
@@ -44,14 +44,14 @@ public class InstanceKlass extends Klass {
   }
 
   // field offset constants
-  public static int ACCESS_FLAGS_OFFSET;
-  public static int NAME_INDEX_OFFSET;
-  public static int SIGNATURE_INDEX_OFFSET;
-  public static int INITVAL_INDEX_OFFSET;
-  public static int LOW_OFFSET;
-  public static int HIGH_OFFSET;
-  public static int GENERIC_SIGNATURE_INDEX_OFFSET;
-  public static int NEXT_OFFSET;
+  private static int ACCESS_FLAGS_OFFSET;
+  private static int NAME_INDEX_OFFSET;
+  private static int SIGNATURE_INDEX_OFFSET;
+  private static int INITVAL_INDEX_OFFSET;
+  private static int LOW_OFFSET;
+  private static int HIGH_OFFSET;
+  private static int GENERIC_SIGNATURE_INDEX_OFFSET;
+  private static int FIELD_SLOTS;
   public static int IMPLEMENTORS_LIMIT;
 
   // ClassState constants
@@ -78,6 +78,7 @@ public class InstanceKlass extends Klass {
       implementors[i]    = new OopField(type.getOopField("_implementors[0]"), arrayOffset);
     }
     fields               = new OopField(type.getOopField("_fields"), Oop.getHeaderSize());
+    javaFieldsCount      = new CIntField(type.getCIntegerField("_java_fields_count"), Oop.getHeaderSize());
     constants            = new OopField(type.getOopField("_constants"), Oop.getHeaderSize());
     classLoader          = new OopField(type.getOopField("_class_loader"), Oop.getHeaderSize());
     protectionDomain     = new OopField(type.getOopField("_protection_domain"), Oop.getHeaderSize());
@@ -100,14 +101,14 @@ public class InstanceKlass extends Klass {
     headerSize           = alignObjectOffset(Oop.getHeaderSize() + type.getSize());
 
     // read field offset constants
-    ACCESS_FLAGS_OFFSET = db.lookupIntConstant("instanceKlass::access_flags_offset").intValue();
-    NAME_INDEX_OFFSET = db.lookupIntConstant("instanceKlass::name_index_offset").intValue();
-    SIGNATURE_INDEX_OFFSET = db.lookupIntConstant("instanceKlass::signature_index_offset").intValue();
-    INITVAL_INDEX_OFFSET = db.lookupIntConstant("instanceKlass::initval_index_offset").intValue();
-    LOW_OFFSET = db.lookupIntConstant("instanceKlass::low_offset").intValue();
-    HIGH_OFFSET = db.lookupIntConstant("instanceKlass::high_offset").intValue();
-    GENERIC_SIGNATURE_INDEX_OFFSET = db.lookupIntConstant("instanceKlass::generic_signature_offset").intValue();
-    NEXT_OFFSET = db.lookupIntConstant("instanceKlass::next_offset").intValue();
+    ACCESS_FLAGS_OFFSET            = db.lookupIntConstant("FieldInfo::access_flags_offset").intValue();
+    NAME_INDEX_OFFSET              = db.lookupIntConstant("FieldInfo::name_index_offset").intValue();
+    SIGNATURE_INDEX_OFFSET         = db.lookupIntConstant("FieldInfo::signature_index_offset").intValue();
+    INITVAL_INDEX_OFFSET           = db.lookupIntConstant("FieldInfo::initval_index_offset").intValue();
+    LOW_OFFSET                     = db.lookupIntConstant("FieldInfo::low_offset").intValue();
+    HIGH_OFFSET                    = db.lookupIntConstant("FieldInfo::high_offset").intValue();
+    GENERIC_SIGNATURE_INDEX_OFFSET = db.lookupIntConstant("FieldInfo::generic_signature_offset").intValue();
+    FIELD_SLOTS                    = db.lookupIntConstant("FieldInfo::field_slots").intValue();
     // read ClassState constants
     CLASS_STATE_UNPARSABLE_BY_GC = db.lookupIntConstant("instanceKlass::unparsable_by_gc").intValue();
     CLASS_STATE_ALLOCATED = db.lookupIntConstant("instanceKlass::allocated").intValue();
@@ -121,6 +122,13 @@ public class InstanceKlass extends Klass {
 
   InstanceKlass(OopHandle handle, ObjectHeap heap) {
     super(handle, heap);
+    if (getJavaFieldsCount() != getAllFieldsCount()) {
+      // Exercise the injected field logic
+      for (int i = getJavaFieldsCount(); i < getAllFieldsCount(); i++) {
+        getFieldName(i);
+        getFieldSignature(i);
+      }
+    }
   }
 
   private static OopField  arrayKlasses;
@@ -131,6 +139,7 @@ public class InstanceKlass extends Klass {
   private static CIntField nofImplementors;
   private static OopField[] implementors;
   private static OopField  fields;
+  private static CIntField javaFieldsCount;
   private static OopField  constants;
   private static OopField  classLoader;
   private static OopField  protectionDomain;
@@ -172,7 +181,7 @@ public class InstanceKlass extends Klass {
      private String value;
   }
 
-  private int  getInitStateAsInt() { return (int) initState.getValue(this); }
+  public int  getInitStateAsInt() { return (int) initState.getValue(this); }
   public ClassState getInitState() {
      int state = getInitStateAsInt();
      if (state == CLASS_STATE_UNPARSABLE_BY_GC) {
@@ -247,6 +256,61 @@ public class InstanceKlass extends Klass {
 
   public static long getHeaderSize() { return headerSize; }
 
+  public short getFieldAccessFlags(int index) {
+    return getFields().getShortAt(index * FIELD_SLOTS + ACCESS_FLAGS_OFFSET);
+  }
+
+  public short getFieldNameIndex(int index) {
+    if (index >= getJavaFieldsCount()) throw new IndexOutOfBoundsException("not a Java field;");
+    return getFields().getShortAt(index * FIELD_SLOTS + NAME_INDEX_OFFSET);
+  }
+
+  public Symbol getFieldName(int index) {
+    int nameIndex = getFields().getShortAt(index * FIELD_SLOTS + NAME_INDEX_OFFSET);
+    if (index < getJavaFieldsCount()) {
+      return getConstants().getSymbolAt(nameIndex);
+    } else {
+      return vmSymbols.symbolAt(nameIndex);
+    }
+  }
+
+  public short getFieldSignatureIndex(int index) {
+    if (index >= getJavaFieldsCount()) throw new IndexOutOfBoundsException("not a Java field;");
+    return getFields().getShortAt(index * FIELD_SLOTS + SIGNATURE_INDEX_OFFSET);
+  }
+
+  public Symbol getFieldSignature(int index) {
+    int signatureIndex = getFields().getShortAt(index * FIELD_SLOTS + SIGNATURE_INDEX_OFFSET);
+    if (index < getJavaFieldsCount()) {
+      return getConstants().getSymbolAt(signatureIndex);
+    } else {
+      return vmSymbols.symbolAt(signatureIndex);
+    }
+  }
+
+  public short getFieldGenericSignatureIndex(int index) {
+    return getFields().getShortAt(index * FIELD_SLOTS + GENERIC_SIGNATURE_INDEX_OFFSET);
+  }
+
+  public Symbol getFieldGenericSignature(int index) {
+    short genericSignatureIndex = getFieldGenericSignatureIndex(index);
+    if (genericSignatureIndex != 0)  {
+      return getConstants().getSymbolAt(genericSignatureIndex);
+    }
+    return null;
+  }
+
+  public short getFieldInitialValueIndex(int index) {
+    if (index >= getJavaFieldsCount()) throw new IndexOutOfBoundsException("not a Java field;");
+    return getFields().getShortAt(index * FIELD_SLOTS + INITVAL_INDEX_OFFSET);
+  }
+
+  public int getFieldOffset(int index) {
+    TypeArray fields = getFields();
+    return VM.getVM().buildIntFromShorts(fields.getShortAt(index * FIELD_SLOTS + LOW_OFFSET),
+                                         fields.getShortAt(index * FIELD_SLOTS + HIGH_OFFSET));
+  }
+
   // Accessors for declared fields
   public Klass     getArrayKlasses()        { return (Klass)        arrayKlasses.getValue(this); }
   public ObjArray  getMethods()             { return (ObjArray)     methods.getValue(this); }
@@ -257,6 +321,8 @@ public class InstanceKlass extends Klass {
   public Klass     getImplementor()         { return (Klass)        implementors[0].getValue(this); }
   public Klass     getImplementor(int i)    { return (Klass)        implementors[i].getValue(this); }
   public TypeArray getFields()              { return (TypeArray)    fields.getValue(this); }
+  public int       getJavaFieldsCount()     { return                (int) javaFieldsCount.getValue(this); }
+  public int       getAllFieldsCount()      { return                (int)getFields().getLength() / FIELD_SLOTS; }
   public ConstantPool getConstants()        { return (ConstantPool) constants.getValue(this); }
   public Oop       getClassLoader()         { return                classLoader.getValue(this); }
   public Oop       getProtectionDomain()    { return                protectionDomain.getValue(this); }
@@ -479,12 +545,10 @@ public class InstanceKlass extends Klass {
   }
 
   void iterateStaticFieldsInternal(OopVisitor visitor) {
-    TypeArray fields = getFields();
-    int length = (int) fields.getLength();
-    for (int index = 0; index < length; index += NEXT_OFFSET) {
-      short accessFlags    = fields.getShortAt(index + ACCESS_FLAGS_OFFSET);
-      short signatureIndex = fields.getShortAt(index + SIGNATURE_INDEX_OFFSET);
-      FieldType   type   = new FieldType(getConstants().getSymbolAt(signatureIndex));
+    int length = getJavaFieldsCount();
+    for (int index = 0; index < length; index++) {
+      short accessFlags    = getFieldAccessFlags(index);
+      FieldType   type   = new FieldType(getFieldSignature(index));
       AccessFlags access = new AccessFlags(accessFlags);
       if (access.isStatic()) {
         visitField(visitor, type, index);
@@ -496,18 +560,24 @@ public class InstanceKlass extends Klass {
     return getSuper();
   }
 
+  public static class StaticField {
+    public AccessFlags flags;
+    public Field field;
+
+    StaticField(Field field, AccessFlags flags) {
+      this.field = field;
+      this.flags = flags;
+    }
+  }
+
   public void iterateNonStaticFields(OopVisitor visitor, Oop obj) {
     if (getSuper() != null) {
       ((InstanceKlass) getSuper()).iterateNonStaticFields(visitor, obj);
     }
-    TypeArray fields = getFields();
-
-    int length = (int) fields.getLength();
-    for (int index = 0; index < length; index += NEXT_OFFSET) {
-      short accessFlags    = fields.getShortAt(index + ACCESS_FLAGS_OFFSET);
-      short signatureIndex = fields.getShortAt(index + SIGNATURE_INDEX_OFFSET);
-
-      FieldType   type   = new FieldType(getConstants().getSymbolAt(signatureIndex));
+    int length = getJavaFieldsCount();
+    for (int index = 0; index < length; index++) {
+      short accessFlags    = getFieldAccessFlags(index);
+      FieldType   type   = new FieldType(getFieldSignature(index));
       AccessFlags access = new AccessFlags(accessFlags);
       if (!access.isStatic()) {
         visitField(visitor, type, index);
@@ -517,14 +587,10 @@ public class InstanceKlass extends Klass {
 
   /** Field access by name. */
   public Field findLocalField(Symbol name, Symbol sig) {
-    TypeArray fields = getFields();
-    int n = (int) fields.getLength();
-    ConstantPool cp = getConstants();
-    for (int i = 0; i < n; i += NEXT_OFFSET) {
-      int nameIndex = fields.getShortAt(i + NAME_INDEX_OFFSET);
-      int sigIndex  = fields.getShortAt(i + SIGNATURE_INDEX_OFFSET);
-      Symbol f_name = cp.getSymbolAt(nameIndex);
-      Symbol f_sig  = cp.getSymbolAt(sigIndex);
+    int length = getJavaFieldsCount();
+    for (int i = 0; i < length; i++) {
+      Symbol f_name = getFieldName(i);
+      Symbol f_sig  = getFieldSignature(i);
       if (name.equals(f_name) && sig.equals(f_sig)) {
         return newField(i);
       }
@@ -599,8 +665,8 @@ public class InstanceKlass extends Klass {
 
   /** Get field by its index in the fields array. Only designed for
       use in a debugging system. */
-  public Field getFieldByIndex(int fieldArrayIndex) {
-    return newField(fieldArrayIndex);
+  public Field getFieldByIndex(int fieldIndex) {
+    return newField(fieldIndex);
   }
 
 
@@ -611,11 +677,9 @@ public class InstanceKlass extends Klass {
     public List getImmediateFields() {
         // A list of Fields for each field declared in this class/interface,
         // not including inherited fields.
-        TypeArray fields = getFields();
-
-        int length = (int) fields.getLength();
-        List immediateFields = new ArrayList(length / NEXT_OFFSET);
-        for (int index = 0; index < length; index += NEXT_OFFSET) {
+        int length = getJavaFieldsCount();
+        List immediateFields = new ArrayList(length);
+        for (int index = 0; index < length; index++) {
             immediateFields.add(getFieldByIndex(index));
         }
 
@@ -802,9 +866,7 @@ public class InstanceKlass extends Klass {
 
   // Creates new field from index in fields TypeArray
   private Field newField(int index) {
-    TypeArray fields = getFields();
-    short signatureIndex = fields.getShortAt(index + SIGNATURE_INDEX_OFFSET);
-    FieldType type = new FieldType(getConstants().getSymbolAt(signatureIndex));
+    FieldType type = new FieldType(getFieldSignature(index));
     if (type.isOop()) {
      if (VM.getVM().isCompressedOopsEnabled()) {
         return new NarrowOopField(this, index);
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/JumpData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/JumpData.java
new file mode 100644
index 0000000..b7921c5
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/JumpData.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+
+package sun.jvm.hotspot.oops;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+// JumpData
+//
+// A JumpData is used to access profiling information for a direct
+// branch.  It is a counter, used for counting the number of branches,
+// plus a data displacement, used for realigning the data pointer to
+// the corresponding target bci.
+public class JumpData extends ProfileData {
+  static final int   takenOffSet = 0;
+  static final int     displacementOffSet = 1;
+  static final int     jumpCellCount = 2;
+
+  public JumpData(DataLayout layout) {
+    super(layout);
+    //assert(layout.tag() == DataLayout.jumpDataTag ||
+    //       layout.tag() == DataLayout.branchDataTag, "wrong type");
+  }
+
+  static int staticCellCount() {
+    return jumpCellCount;
+  }
+
+  public int cellCount() {
+    return staticCellCount();
+  }
+
+  // Direct accessor
+  int taken() {
+    return uintAt(takenOffSet);
+  }
+
+  int displacement() {
+    return intAt(displacementOffSet);
+  }
+
+  // Code generation support
+  static int takenOffset() {
+    return cellOffset(takenOffSet);
+  }
+
+  static int displacementOffset() {
+    return cellOffset(displacementOffSet);
+  }
+
+  public void printDataOn(PrintStream st) {
+    printShared(st, "JumpData");
+    st.println("taken(" + taken() + ") displacement(" + displacement() + ")");
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Method.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Method.java
index 3a40619..d42115b 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Method.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Method.java
@@ -49,6 +49,7 @@ public class Method extends Oop {
     Type type                  = db.lookupType("methodOopDesc");
     constMethod                = new OopField(type.getOopField("_constMethod"), 0);
     constants                  = new OopField(type.getOopField("_constants"), 0);
+    methodData                 = new OopField(type.getOopField("_method_data"), 0);
     methodSize                 = new CIntField(type.getCIntegerField("_method_size"), 0);
     maxStack                   = new CIntField(type.getCIntegerField("_max_stack"), 0);
     maxLocals                  = new CIntField(type.getCIntegerField("_max_locals"), 0);
@@ -58,9 +59,13 @@ public class Method extends Oop {
     vtableIndex                = new CIntField(type.getCIntegerField("_vtable_index"), 0);
     if (!VM.getVM().isCore()) {
       invocationCounter        = new CIntField(type.getCIntegerField("_invocation_counter"), 0);
+      backedgeCounter          = new CIntField(type.getCIntegerField("_backedge_counter"), 0);
     }
     bytecodeOffset = type.getSize();
 
+    interpreterThrowoutCountField = new CIntField(type.getCIntegerField("_interpreter_throwout_count"), 0);
+    interpreterInvocationCountField = new CIntField(type.getCIntegerField("_interpreter_invocation_count"), 0);
+
     /*
     interpreterEntry           = type.getAddressField("_interpreter_entry");
     fromCompiledCodeEntryPoint = type.getAddressField("_from_compiled_code_entry_point");
@@ -79,6 +84,7 @@ public class Method extends Oop {
   // Fields
   private static OopField  constMethod;
   private static OopField  constants;
+  private static OopField  methodData;
   private static CIntField methodSize;
   private static CIntField maxStack;
   private static CIntField maxLocals;
@@ -86,10 +92,14 @@ public class Method extends Oop {
   private static CIntField accessFlags;
   private static CIntField vtableIndex;
   private static CIntField invocationCounter;
+  private static CIntField backedgeCounter;
   private static long      bytecodeOffset;
 
   private static AddressField       code;
 
+  private static CIntField interpreterThrowoutCountField;
+  private static CIntField interpreterInvocationCountField;
+
   // constant method names - <init>, <clinit>
   // Initialized lazily to avoid initialization ordering dependencies between Method and SymbolTable
   private static Symbol objectInitializerName;
@@ -116,6 +126,7 @@ public class Method extends Oop {
   // Accessors for declared fields
   public ConstMethod  getConstMethod()                { return (ConstMethod)  constMethod.getValue(this);       }
   public ConstantPool getConstants()                  { return (ConstantPool) constants.getValue(this);         }
+  public MethodData   getMethodData()                 { return (MethodData) methodData.getValue(this);          }
   public TypeArray    getExceptionTable()             { return getConstMethod().getExceptionTable();            }
   /** WARNING: this is in words, not useful in this system; use getObjectSize() instead */
   public long         getMethodSize()                 { return                methodSize.getValue(this);        }
@@ -134,6 +145,12 @@ public class Method extends Oop {
     }
     return invocationCounter.getValue(this);
   }
+  public long         getBackedgeCounter()          {
+    if (Assert.ASSERTS_ENABLED) {
+      Assert.that(!VM.getVM().isCore(), "must not be used in core build");
+    }
+    return backedgeCounter.getValue(this);
+  }
 
   // get associated compiled native method, if available, else return null.
   public NMethod getNativeMethod() {
@@ -180,12 +197,24 @@ public class Method extends Oop {
     return getConstMethod().getBytecodeShortArg(bci);
   }
 
+  /** Fetches a 16-bit native ordered value from the
+      bytecode stream */
+  public short getNativeShortArg(int bci) {
+    return getConstMethod().getNativeShortArg(bci);
+  }
+
   /** Fetches a 32-bit big-endian ("Java ordered") value from the
       bytecode stream */
   public int getBytecodeIntArg(int bci) {
     return getConstMethod().getBytecodeIntArg(bci);
   }
 
+  /** Fetches a 32-bit native ordered value from the
+      bytecode stream */
+  public int getNativeIntArg(int bci) {
+    return getConstMethod().getNativeIntArg(bci);
+  }
+
   public byte[] getByteCode() {
     return getConstMethod().getByteCode();
   }
@@ -321,4 +350,11 @@ public class Method extends Oop {
     buf.append(")");
     return buf.toString().replace('/', '.');
   }
+  public int interpreterThrowoutCount() {
+    return (int) interpreterThrowoutCountField.getValue(getHandle());
+  }
+
+  public int interpreterInvocationCount() {
+    return (int) interpreterInvocationCountField.getValue(getHandle());
+  }
 }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java
index 53dad60..83c36b6 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,6 +34,92 @@ import sun.jvm.hotspot.utilities.*;
 // A MethodData provides interpreter profiling information
 
 public class MethodData extends Oop {
+  static int TypeProfileWidth = 2;
+  static int BciProfileWidth = 2;
+  static int CompileThreshold;
+
+  static int Reason_many;                 // indicates presence of several reasons
+  static int Reason_none;                 // indicates absence of a relevant deopt.
+  static int Reason_LIMIT;
+  static int Reason_RECORDED_LIMIT;       // some are not recorded per bc
+
+  private static String[] trapReasonName;
+
+  static String trapReasonName(int reason) {
+    if (reason == Reason_many)  return "many";
+    if (reason < Reason_LIMIT)
+      return trapReasonName[reason];
+    return "reason" + reason;
+  }
+
+
+  static int trapStateReason(int trapState) {
+    // This assert provides the link between the width of DataLayout.trapBits
+    // and the encoding of "recorded" reasons.  It ensures there are enough
+    // bits to store all needed reasons in the per-BCI MDO profile.
+    // assert(dsReasonMask >= reasonRecordedLimit, "enough bits");
+    int recompileBit = (trapState & dsRecompileBit);
+    trapState -= recompileBit;
+    if (trapState == dsReasonMask) {
+      return Reason_many;
+    } else {
+      // assert((int)reasonNone == 0, "state=0 => Reason_none");
+      return trapState;
+    }
+  }
+
+
+  static final int dsReasonMask   = DataLayout.trapMask >> 1;
+  static final int dsRecompileBit = DataLayout.trapMask - dsReasonMask;
+
+  static boolean trapStateIsRecompiled(int trapState) {
+    return (trapState & dsRecompileBit) != 0;
+  }
+
+  static boolean reasonIsRecordedPerBytecode(int reason) {
+    return reason > Reason_none && reason < Reason_RECORDED_LIMIT;
+  }
+  static int trapStateAddReason(int trapState, int reason) {
+    // assert(reasonIsRecordedPerBytecode((DeoptReason)reason) || reason == reasonMany, "valid reason");
+    int recompileBit = (trapState & dsRecompileBit);
+    trapState -= recompileBit;
+    if (trapState == dsReasonMask) {
+      return trapState + recompileBit;     // already at state lattice bottom
+    } else if (trapState == reason) {
+      return trapState + recompileBit;     // the condition is already true
+    } else if (trapState == 0) {
+      return reason + recompileBit;          // no condition has yet been true
+    } else {
+      return dsReasonMask + recompileBit;  // fall to state lattice bottom
+    }
+  }
+  static int trapStateSetRecompiled(int trapState, boolean z) {
+    if (z)  return trapState |  dsRecompileBit;
+    else    return trapState & ~dsRecompileBit;
+  }
+
+  static String formatTrapState(int trapState) {
+    int reason      = trapStateReason(trapState);
+    boolean     recompFlag = trapStateIsRecompiled(trapState);
+    // Re-encode the state from its decoded components.
+    int decodedState = 0;
+    if (reasonIsRecordedPerBytecode(reason) || reason == Reason_many)
+      decodedState = trapStateAddReason(decodedState, reason);
+    if (recompFlag)
+      decodedState = trapStateSetRecompiled(decodedState, recompFlag);
+    // If the state re-encodes properly, format it symbolically.
+    // Because this routine is used for debugging and diagnostics,
+    // be robust even if the state is a strange value.
+    if (decodedState != trapState) {
+      // Random buggy state that doesn't decode??
+      return "#" + trapState;
+    } else {
+      return trapReasonName(reason) + (recompFlag ? " recompiled" : "");
+    }
+  }
+
+
+
   static {
     VM.registerVMInitializedObserver(new Observer() {
         public void update(Observable o, Object data) {
@@ -48,7 +134,58 @@ public class MethodData extends Oop {
 
     size           = new CIntField(type.getCIntegerField("_size"), 0);
     method         = new OopField(type.getOopField("_method"), 0);
-    // FIXME: add more fields and accessors
+
+    VM.Flag[] flags = VM.getVM().getCommandLineFlags();
+    for (int f = 0; f < flags.length; f++) {
+      VM.Flag flag = flags[f];
+      if (flag.getName().equals("TypeProfileWidth")) {
+        TypeProfileWidth = (int)flag.getIntx();
+      } else if (flag.getName().equals("BciProfileWidth")) {
+        BciProfileWidth = (int)flag.getIntx();
+      } else if (flag.getName().equals("CompileThreshold")) {
+        CompileThreshold = (int)flag.getIntx();
+      }
+    }
+
+    cellSize = (int)VM.getVM().getAddressSize();
+
+    dataSize     = new CIntField(type.getCIntegerField("_data_size"), 0);
+    data         = type.getAddressField("_data[0]");
+
+    sizeofMethodDataOopDesc = (int)type.getSize();;
+
+    Reason_many            = db.lookupIntConstant("Deoptimization::Reason_many").intValue();
+    Reason_none            = db.lookupIntConstant("Deoptimization::Reason_none").intValue();
+    Reason_LIMIT           = db.lookupIntConstant("Deoptimization::Reason_LIMIT").intValue();
+    Reason_RECORDED_LIMIT  = db.lookupIntConstant("Deoptimization::Reason_RECORDED_LIMIT").intValue();
+
+    trapReasonName = new String[Reason_LIMIT];
+
+    // Find Deopt reasons
+    Iterator i = db.getIntConstants();
+    String prefix = "Deoptimization::Reason_";
+    while (i.hasNext()) {
+      String name = (String)i.next();
+      if (name.startsWith(prefix)) {
+        // Strip prefix
+        if (!name.endsWith("Reason_many") &&
+            !name.endsWith("Reason_LIMIT") &&
+            !name.endsWith("Reason_RECORDED_LIMIT")) {
+          String trimmed = name.substring(prefix.length());
+          int value = db.lookupIntConstant(name).intValue();
+          if (trapReasonName[value] != null) {
+            throw new InternalError("duplicate reasons: " + trapReasonName[value] + " " + trimmed);
+          }
+          trapReasonName[value] = trimmed;
+        }
+      }
+    }
+    for (int index = 0; index < trapReasonName.length; index++) {
+      if (trapReasonName[index] == null) {
+        throw new InternalError("missing reason for " + index);
+      }
+      System.out.println(trapReasonName[index]);
+    }
   }
 
   MethodData(OopHandle handle, ObjectHeap heap) {
@@ -60,6 +197,11 @@ public class MethodData extends Oop {
   private static long baseOffset;
   private static CIntField size;
   private static OopField  method;
+  private static CIntField dataSize;
+  private static AddressField data;
+
+  public static int sizeofMethodDataOopDesc;
+  public static int cellSize;
 
   public long getObjectSize() {
     return alignObjectSize(size.getValue(this));
@@ -81,4 +223,119 @@ public class MethodData extends Oop {
       visitor.doCInt(size, true);
     }
   }
+
+  int dataSize() {
+    if (dataSize == null) {
+      return 0;
+    } else {
+      return (int)dataSize.getValue(this);
+    }
+  }
+
+  boolean outOfBounds(int dataIndex) {
+    return dataIndex >= dataSize();
+  }
+
+  ProfileData dataAt(int dataIndex) {
+    if (outOfBounds(dataIndex)) {
+      return null;
+    }
+    DataLayout dataLayout = new DataLayout(this, dataIndex + (int)data.getOffset());
+
+    switch (dataLayout.tag()) {
+    case DataLayout.noTag:
+    default:
+      throw new InternalError(dataIndex + " " + dataSize() + " " + dataLayout.tag());
+    case DataLayout.bitDataTag:
+      return new BitData(dataLayout);
+    case DataLayout.counterDataTag:
+      return new CounterData(dataLayout);
+    case DataLayout.jumpDataTag:
+      return new JumpData(dataLayout);
+    case DataLayout.receiverTypeDataTag:
+      return new ReceiverTypeData(dataLayout);
+    case DataLayout.virtualCallDataTag:
+      return new VirtualCallData(dataLayout);
+    case DataLayout.retDataTag:
+      return new RetData(dataLayout);
+    case DataLayout.branchDataTag:
+      return new BranchData(dataLayout);
+    case DataLayout.multiBranchDataTag:
+      return new MultiBranchData(dataLayout);
+    }
+  }
+
+  int dpToDi(int dp) {
+    // this in an offset from the base of the MDO, so convert to offset into _data
+    return dp - (int)data.getOffset();
+  }
+
+  int firstDi() { return 0; }
+  public ProfileData firstData() { return dataAt(firstDi()); }
+  public ProfileData nextData(ProfileData current) {
+    int currentIndex = dpToDi(current.dp());
+    int nextIndex = currentIndex + current.sizeInBytes();
+    return dataAt(nextIndex);
+  }
+  boolean isValid(ProfileData current) { return current != null; }
+
+  public void printDataOn(PrintStream st) {
+    ProfileData data = firstData();
+    for ( ; isValid(data); data = nextData(data)) {
+      st.print(dpToDi(data.dp()));
+      st.print(" ");
+      // st->fillTo(6);
+      data.printDataOn(st);
+    }
+  }
+
+  private byte[] fetchDataAt(Address base, long offset, long size) {
+    byte[] result = new byte[(int)size];
+    for (int i = 0; i < size; i++) {
+      result[i] = base.getJByteAt(offset + i);
+    }
+    return result;
+  }
+
+  public byte[] orig() {
+    // fetch the orig methodDataOopDesc data between header and dataSize
+    return fetchDataAt(this.getHandle(), 0, sizeofMethodDataOopDesc);
+  }
+
+  public long[] data() {
+    // Read the data as an array of intptr_t elements
+    OopHandle base = getHandle();
+    long offset = data.getOffset();
+    int elements = dataSize() / cellSize;
+    long[] result = new long[elements];
+    for (int i = 0; i < elements; i++) {
+      Address value = base.getAddressAt(offset + i * MethodData.cellSize);
+      if (value != null) {
+        result[i] = value.minus(null);
+      }
+    }
+    return result;
+  }
+
+  // Get a measure of how much mileage the method has on it.
+  int mileageOf(Method method) {
+    long mileage = 0;
+    int iic = method.interpreterInvocationCount();
+    if (mileage < iic)  mileage = iic;
+
+    long ic = method.getInvocationCounter();
+    long bc = method.getBackedgeCounter();
+
+    long icval = ic >> 3;
+    if ((ic & 4) != 0) icval += CompileThreshold;
+    if (mileage < icval)  mileage = icval;
+    long bcval = bc >> 3;
+    if ((bc & 4) != 0) bcval += CompileThreshold;
+    if (mileage < bcval)  mileage = bcval;
+    return (int)mileage;
+  }
+
+  public int currentMileage() {
+    return 20000;
+  }
 }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/MultiBranchData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/MultiBranchData.java
new file mode 100644
index 0000000..565d493
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/MultiBranchData.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+
+package sun.jvm.hotspot.oops;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+// MultiBranchData
+//
+// A MultiBranchData is used to access profiling information for
+// a multi-way branch (*switch bytecodes).  It consists of a series
+// of (count, displacement) pairs, which count the number of times each
+// case was taken and specify the data displacment for each branch target.
+public class MultiBranchData extends ArrayData {
+  static final int   defaultCountOffSet = 0;
+  static final int     defaultDisaplacementOffSet = 1;
+  static final int     caseArrayStart = 2;
+  static final int   relativeCountOffSet = 0;
+  static final int     relativeDisplacementOffSet = 1;
+  static final int     perCaseCellCount = 2;
+
+  public MultiBranchData(DataLayout layout) {
+    super(layout);
+    //assert(layout.tag() == DataLayout.multiBranchDataTag, "wrong type");
+  }
+
+  // static int computeCellCount(BytecodeStream stream);
+
+  int numberOfCases() {
+    int alen = arrayLen() - 2; // get rid of default case here.
+    //assert(alen % perCaseCellCount == 0, "must be even");
+    return (alen / perCaseCellCount);
+  }
+
+  int defaultCount() {
+    return arrayUintAt(defaultCountOffSet);
+  }
+  int defaultDisplacement() {
+    return arrayIntAt(defaultDisaplacementOffSet);
+  }
+
+  int countAt(int index) {
+    return arrayUintAt(caseArrayStart +
+                         index * perCaseCellCount +
+                         relativeCountOffSet);
+  }
+  int displacementAt(int index) {
+    return arrayIntAt(caseArrayStart +
+                        index * perCaseCellCount +
+                        relativeDisplacementOffSet);
+  }
+
+  // Code generation support
+  static int defaultCountOffset() {
+    return arrayElementOffset(defaultCountOffSet);
+  }
+  static int defaultDisplacementOffset() {
+    return arrayElementOffset(defaultDisaplacementOffSet);
+  }
+  static int caseCountOffset(int index) {
+    return caseArrayOffset() +
+      (perCaseSize() * index) +
+      relativeCountOffset();
+  }
+  static int caseArrayOffset() {
+    return arrayElementOffset(caseArrayStart);
+  }
+  static int perCaseSize() {
+    return (perCaseCellCount) * MethodData.cellSize;
+  }
+  static int relativeCountOffset() {
+    return (relativeCountOffSet) * MethodData.cellSize;
+  }
+  static int relativeDisplacementOffset() {
+    return (relativeDisplacementOffSet) * MethodData.cellSize;
+  }
+
+  public void printDataOn(PrintStream st) {
+    printShared(st, "MultiBranchData");
+    st.println("default_count(" + defaultCount() + ") displacement(" + defaultDisplacement() + ")");
+    int cases = numberOfCases();
+    for (int i = 0; i < cases; i++) {
+      tab(st);
+      st.println("count(" + countAt(i) + ") displacement(" + displacementAt(i) + ")");
+    }
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java
index e6887b1..edd8a80 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java
@@ -112,6 +112,32 @@ public class OopUtilities implements /* imports */ JVMTIThreadState {
     return buf.toString();
   }
 
+  public static String escapeString(String s) {
+    StringBuilder sb = null;
+    for (int index = 0; index < s.length(); index++) {
+      char value = s.charAt(index);
+      if (value >= 32 && value < 127 || value == '\'' || value == '\\') {
+        if (sb != null) {
+          sb.append(value);
+        }
+      } else {
+        if (sb == null) {
+          sb = new StringBuilder(s.length() * 2);
+          sb.append(s, 0, index);
+        }
+        sb.append("\\u");
+        if (value < 0x10) sb.append("000");
+        else if (value < 0x100) sb.append("00");
+        else if (value < 0x1000) sb.append("0");
+        sb.append(Integer.toHexString(value));
+      }
+    }
+    if (sb != null) {
+      return sb.toString();
+    }
+    return s;
+  }
+
   public static String stringOopToString(Oop stringOop) {
     if (offsetField == null) {
       InstanceKlass k = (InstanceKlass) stringOop.getKlass();
@@ -129,6 +155,10 @@ public class OopUtilities implements /* imports */ JVMTIThreadState {
                              countField.getValue(stringOop));
   }
 
+  public static String stringOopToEscapedString(Oop stringOop) {
+    return escapeString(stringOopToString(stringOop));
+  }
+
   private static void initThreadGroupFields() {
     if (threadGroupParentField == null) {
       SystemDictionary sysDict = VM.getVM().getSystemDictionary();
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ProfileData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ProfileData.java
new file mode 100644
index 0000000..24b62e4
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ProfileData.java
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.oops;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+public abstract class ProfileData {
+  // This is a pointer to a section of profiling data.
+  private DataLayout _data;
+
+  public DataLayout data() { return _data; }
+
+  // How many cells are in this?
+  public abstract int cellCount();
+
+
+  // Return the size of this data.
+  public int sizeInBytes() {
+    return DataLayout.computeSizeInBytes(cellCount());
+  }
+
+  public int dp() {
+    return data().dp();
+  }
+
+  // Low-level accessors for underlying data
+  int intptrAt(int index) {
+    //assert(0 <= index && index < cellCount(), "oob");
+    return data().cellAt(index);
+  }
+  int intAt(int index) {
+    return (int)intptrAt(index);
+  }
+  int uintAt(int index) {
+    return (int)intptrAt(index);
+  }
+  Oop oopAt(int index) {
+    return data().oopAt(index);
+  }
+
+  public Address addressAt(int index) {
+    return data().addressAt(index);
+  }
+
+  boolean flagAt(int flagNumber) {
+    return data().flagAt(flagNumber);
+  }
+
+  // two convenient imports for use by subclasses:
+  public static int cellOffset(int index) {
+    return DataLayout.cellOffset(index);
+  }
+
+  public ProfileData(DataLayout data) {
+    _data = data;
+  }
+
+  // Constructor for invalid ProfileData.
+  ProfileData() {
+    _data = null;
+  }
+
+  int bci() {
+    return data().bci();
+  }
+
+  int trapState() {
+    return data().trapState();
+  }
+  public abstract void printDataOn(PrintStream st);
+
+  void tab(PrintStream st) {
+    st.print("\t");
+  }
+
+  void printShared(PrintStream st, String name) {
+    st.print("bci: " + bci());
+    // st.fillTo(tabWidthOne);
+    st.print(" " +  name + " ");
+    tab(st);
+    int trap = trapState();
+    if (trap != 0) {
+      st.print("trap(" + MethodData.formatTrapState(trap) + ") ");
+    }
+    int flags = data().flags();
+    if (flags != 0)
+      st.print("flags(" + flags + ") ");
+  }
+
+  public String toString() {
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    PrintStream ps = new PrintStream(baos);
+    try {
+      printDataOn(ps);
+    } finally {
+      ps.close();
+    }
+    return baos.toString();
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ReceiverTypeData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ReceiverTypeData.java
new file mode 100644
index 0000000..c6a7ac8
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ReceiverTypeData.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+
+package sun.jvm.hotspot.oops;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+// ReceiverTypeData
+//
+// A ReceiverTypeData is used to access profiling information about a
+// dynamic type check.  It consists of a counter which counts the total times
+// that the check is reached, and a series of (Klass, count) pairs
+// which are used to store a type profile for the receiver of the check.
+public class ReceiverTypeData extends CounterData {
+  static final int   receiver0Offset = counterCellCount;
+  static final int     count0Offset = receiver0Offset + 1;
+  static final int     receiverTypeRowCellCount = (count0Offset + 1) - receiver0Offset;
+
+  public ReceiverTypeData(DataLayout layout) {
+    super(layout);
+    //assert(layout.tag() == DataLayout.receiverTypeDataTag ||
+    //       layout.tag() == DataLayout.virtualCallDataTag, "wrong type");
+  }
+
+  boolean isReceivertypedata() { return true; }
+
+  static int staticCellCount() {
+    return counterCellCount + MethodData.TypeProfileWidth * receiverTypeRowCellCount;
+  }
+
+  public int cellCount() {
+    return staticCellCount();
+  }
+
+  // Direct accessors
+  public static int rowLimit() {
+    return MethodData.TypeProfileWidth;
+  }
+  public static int receiverCellIndex(int row) {
+    return receiver0Offset + row * receiverTypeRowCellCount;
+  }
+  public static int receiverCountCellIndex(int row) {
+    return count0Offset + row * receiverTypeRowCellCount;
+  }
+
+  // Get the receiver at row.  The 'unchecked' version is needed by parallel old
+  // gc; it does not assert the receiver is a klass.  During compaction of the
+  // perm gen, the klass may already have moved, so the isKlass() predicate
+  // would fail.  The 'normal' version should be used whenever possible.
+  Klass receiverUnchecked(int row) {
+    //assert(row < rowLimit(), "oob");
+    Oop recv = oopAt(receiverCellIndex(row));
+    return (Klass)recv;
+  }
+
+  public Klass receiver(int row) {
+    Klass recv = receiverUnchecked(row);
+    //assert(recv == NULL || ((oop)recv).isKlass(), "wrong type");
+    return recv;
+  }
+
+  public int receiverCount(int row) {
+    //assert(row < rowLimit(), "oob");
+    return uintAt(receiverCountCellIndex(row));
+  }
+
+  // Code generation support
+  static int receiverOffset(int row) {
+    return cellOffset(receiverCellIndex(row));
+  }
+  static int receiverCountOffset(int row) {
+    return cellOffset(receiverCountCellIndex(row));
+  }
+  static int receiverTypeDataSize() {
+    return cellOffset(staticCellCount());
+  }
+
+  void printReceiverDataOn(PrintStream st) {
+    int row;
+    int entries = 0;
+    for (row = 0; row < rowLimit(); row++) {
+      if (receiver(row) != null)  entries++;
+    }
+    st.println("count(" + count() + ") entries(" + entries + ")");
+    for (row = 0; row < rowLimit(); row++) {
+      if (receiver(row) != null) {
+        tab(st);
+        receiver(row).printValueOn(st);
+        st.println("(" + receiverCount(row) + ")");
+      }
+    }
+  }
+  public void printDataOn(PrintStream st) {
+    printShared(st, "ReceiverTypeData");
+    printReceiverDataOn(st);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/RetData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/RetData.java
new file mode 100644
index 0000000..374623b
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/RetData.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.oops;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+// RetData
+//
+// A RetData is used to access profiling information for a ret bytecode.
+// It is composed of a count of the number of times that the ret has
+// been executed, followed by a series of triples of the form
+// (bci, count, di) which count the number of times that some bci was the
+// target of the ret and cache a corresponding data displacement.
+public class RetData extends CounterData {
+
+  static final int   bci0Offset = counterCellCount;
+  static final int     count0Offset = bci0Offset + 1;
+  static final int     displacement0Offset = count0Offset + 1;
+  static final int     retRowCellCount = (displacement0Offset + 1) - bci0Offset;
+
+  public RetData(DataLayout layout) {
+    super(layout);
+    //assert(layout.tag() == DataLayout.retDataTag, "wrong type");
+  }
+
+  static final int noBci = -1; // value of bci when bci1/2 are not in use.
+
+  static int staticCellCount() {
+    return counterCellCount + MethodData.BciProfileWidth * retRowCellCount;
+  }
+
+  public int cellCount() {
+    return staticCellCount();
+  }
+
+  static int rowLimit() {
+    return MethodData.BciProfileWidth;
+  }
+  static int bciCellIndex(int row) {
+    return bci0Offset + row * retRowCellCount;
+  }
+  static int bciCountCellIndex(int row) {
+    return count0Offset + row * retRowCellCount;
+  }
+  static int bciDisplacementCellIndex(int row) {
+    return displacement0Offset + row * retRowCellCount;
+  }
+
+  // Direct accessors
+  int bci(int row) {
+    return intAt(bciCellIndex(row));
+  }
+  int bciCount(int row) {
+    return uintAt(bciCountCellIndex(row));
+  }
+  int bciDisplacement(int row) {
+    return intAt(bciDisplacementCellIndex(row));
+  }
+
+  // Code generation support
+  static int bciOffset(int row) {
+    return cellOffset(bciCellIndex(row));
+  }
+  static int bciCountOffset(int row) {
+    return cellOffset(bciCountCellIndex(row));
+  }
+  static int bciDisplacementOffset(int row) {
+    return cellOffset(bciDisplacementCellIndex(row));
+  }
+
+  public void printDataOn(PrintStream st) {
+    printShared(st, "RetData");
+    int row;
+    int entries = 0;
+    for (row = 0; row < rowLimit(); row++) {
+      if (bci(row) != noBci)  entries++;
+    }
+    st.println("count(" + count() + ") entries(" + entries + ")");
+    for (row = 0; row < rowLimit(); row++) {
+      if (bci(row) != noBci) {
+        tab(st);
+        st.println(" bci(" + bci(row) + ": count(" + bciCount(row) + ") displacement(" + bciDisplacement(row) + "))");
+      }
+    }
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/TypeArray.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/TypeArray.java
index f7f5244..900b111 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/TypeArray.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/TypeArray.java
@@ -53,6 +53,9 @@ public class TypeArray extends Array {
   public boolean isTypeArray()         { return true; }
 
   public byte getByteAt(long index) {
+    if (index < 0 || index >= getLength()) {
+      throw new ArrayIndexOutOfBoundsException(index + " " + getLength());
+    }
     long offset = baseOffsetInBytes(BasicType.T_BYTE) + index * getHeap().getByteSize();
     return getHandle().getJByteAt(offset);
   }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/VirtualCallData.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/VirtualCallData.java
new file mode 100644
index 0000000..a1eed08
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/VirtualCallData.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+
+package sun.jvm.hotspot.oops;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+// VirtualCallData
+//
+// A VirtualCallData is used to access profiling information about a
+// call.  For now, it has nothing more than a ReceiverTypeData.
+public class VirtualCallData extends ReceiverTypeData {
+  public VirtualCallData(DataLayout layout) {
+    super(layout);
+    //assert(layout.tag() == DataLayout.virtualCallDataTag, "wrong type");
+  }
+
+  static int staticCellCount() {
+    // At this point we could add more profile state, e.g., for arguments.
+    // But for now it's the same size as the base record type.
+    return ReceiverTypeData.staticCellCount();
+  }
+
+  public int cellCount() {
+    return staticCellCount();
+  }
+
+  // Direct accessors
+  static int virtualCallDataSize() {
+    return cellOffset(staticCellCount());
+  }
+
+  public void printDataOn(PrintStream st) {
+    printShared(st, "VirtualCallData");
+    printReceiverDataOn(st);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/java_lang_Class.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/java_lang_Class.java
index b91eab3..9f2dbb3 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/java_lang_Class.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/java_lang_Class.java
@@ -55,13 +55,13 @@ public class java_lang_Class {
     // klass and oop_size are HotSpot magic fields and hence we can't
     // find them from InstanceKlass for java.lang.Class.
     Type jlc = db.lookupType("java_lang_Class");
-    int klassOffset = (int) jlc.getCIntegerField("klass_offset").getValue();
+    int klassOffset = (int) jlc.getCIntegerField("_klass_offset").getValue();
     if (VM.getVM().isCompressedOopsEnabled()) {
       klassField = new NarrowOopField(new NamedFieldIdentifier("klass"), klassOffset, true);
     } else {
       klassField = new OopField(new NamedFieldIdentifier("klass"), klassOffset, true);
     }
-    int oopSizeOffset = (int) jlc.getCIntegerField("oop_size_offset").getValue();
+    int oopSizeOffset = (int) jlc.getCIntegerField("_oop_size_offset").getValue();
     oopSizeField = new IntField(new NamedFieldIdentifier("oop_size"), oopSizeOffset, true);
   }
 
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Block.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Block.java
new file mode 100644
index 0000000..106713f
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Block.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import java.io.PrintStream;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class Block extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("Block");
+    nodesField = type.getAddressField("_nodes");
+    succsField = type.getAddressField("_succs");
+    numSuccsField = new CIntField(type.getCIntegerField("_num_succs"), 0);
+    preOrderField = new CIntField(type.getCIntegerField("_pre_order"), 0);
+    domDepthField = new CIntField(type.getCIntegerField("_dom_depth"), 0);
+    idomField = type.getAddressField("_idom");
+    freqField = type.getJFloatField("_freq");
+  }
+
+  private static AddressField nodesField;
+  private static AddressField succsField;
+  private static CIntField numSuccsField;
+  private static CIntField preOrderField;
+  private static CIntField domDepthField;
+  private static AddressField idomField;
+  private static JFloatField freqField;
+
+  public Block(Address addr) {
+    super(addr);
+  }
+
+  public int preOrder() {
+    return (int)preOrderField.getValue(getAddress());
+  }
+
+  public float freq() {
+    return (float)freqField.getValue(getAddress());
+  }
+
+  public Node_List nodes() {
+    return new Node_List(getAddress().addOffsetTo(nodesField.getOffset()));
+  }
+
+  public void dump(PrintStream out) {
+    out.print("B" + preOrder());
+    out.print(" Freq: " + freq());
+    out.println();
+    Node_List nl = nodes();
+    int cnt = nl.size();
+    for( int i=0; i<cnt; i++ )
+      nl.at(i).dump(out);
+    out.print("\n");
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Block_Array.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Block_Array.java
new file mode 100644
index 0000000..b219ca7
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Block_Array.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class Block_Array extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("Block_Array");
+    sizeField = new CIntField(type.getCIntegerField("_size"), 0);
+    blocksField = type.getAddressField("_blocks");
+    arenaField = type.getAddressField("_arena");
+  }
+
+  private static CIntField sizeField;
+  private static AddressField blocksField;
+  private static AddressField arenaField;
+
+  public Block_Array(Address addr) {
+    super(addr);
+  }
+
+  public int Max() {
+    return (int) sizeField.getValue(getAddress());
+  }
+
+  public Block at(int i) {
+    return new Block(blocksField.getValue(getAddress()).getAddressAt(i * (int)VM.getVM().getAddressSize()));
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Block_List.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Block_List.java
new file mode 100644
index 0000000..8945334
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Block_List.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class Block_List extends Block_Array {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("Block_List");
+    cntField = new CIntField(type.getCIntegerField("_cnt"), 0);
+  }
+
+  private static CIntField cntField;
+
+  public Block_List(Address addr) {
+    super(addr);
+  }
+
+  public int size() {
+    return (int) cntField.getValue(getAddress());
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallDynamicJavaNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallDynamicJavaNode.java
new file mode 100644
index 0000000..ca68643
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallDynamicJavaNode.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class CallDynamicJavaNode extends CallJavaNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("CallDynamicJavaNode");
+  }
+
+
+  public CallDynamicJavaNode(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallJavaNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallJavaNode.java
new file mode 100644
index 0000000..94a5e99
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallJavaNode.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import java.io.*;
+import sun.jvm.hotspot.code.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.ci.*;
+import sun.jvm.hotspot.types.*;
+
+public class CallJavaNode extends CallNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("CallJavaNode");
+    methodField = type.getAddressField("_method");
+  }
+
+  private static AddressField methodField;
+
+  public CallJavaNode(Address addr) {
+    super(addr);
+  }
+
+  public ciMethod method() {
+    return (ciMethod) ciObjectFactory.get(methodField.getValue(getAddress()));
+  }
+
+  public void dumpSpec(PrintStream out) {
+    if (method() !=  null) {
+      out.print(" " + method().method().externalNameAndSignature());
+    }
+    super.dumpSpec(out);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallNode.java
new file mode 100644
index 0000000..5634917
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallNode.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class CallNode extends SafePointNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("CallNode");
+    entryPointField = type.getAddressField("_entry_point");
+  }
+
+  private static AddressField entryPointField;
+
+  public Address entryPoint() {
+    return entryPointField.getValue(getAddress());
+  }
+
+  public CallNode(Address addr) {
+    super(addr);
+  }
+
+  public void dumpSpec(PrintStream out) {
+    out.print(" ");
+    // tf()->dumpOn(st);
+    // if (_cnt != countUnknown)  st->print(" C=%f",_cnt);
+    JVMState jvms = jvms();
+    if (jvms != null)  jvms.dumpSpec(out);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallRuntimeNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallRuntimeNode.java
new file mode 100644
index 0000000..7f730ef
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallRuntimeNode.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.utilities.CStringUtilities;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class CallRuntimeNode extends CallNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("CallRuntimeNode");
+    nameField    = type.getAddressField("_name");
+  }
+
+  static private AddressField nameField;
+
+  public String name() {
+    return CStringUtilities.getString(nameField.getValue(getAddress()));
+  }
+
+  public CallRuntimeNode(Address addr) {
+    super(addr);
+  }
+
+  public void dumpSpec(PrintStream out) {
+    out.print(" #");
+    out.print(name());
+    super.dumpSpec(out);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallStaticJavaNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallStaticJavaNode.java
new file mode 100644
index 0000000..47ff13f
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/CallStaticJavaNode.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.utilities.CStringUtilities;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class CallStaticJavaNode extends CallJavaNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("CallStaticJavaNode");
+    nameField    = type.getAddressField("_name");
+  }
+
+  static private AddressField nameField;
+
+  public String name() {
+    return CStringUtilities.getString(nameField.getValue(getAddress()));
+  }
+
+  public CallStaticJavaNode(Address addr) {
+    super(addr);
+  }
+
+  public void dumpSpec(PrintStream out) {
+    out.print(" Static ");
+    String name = name();
+    if (name != null) {
+      out.print(name);
+      // int trapReq = uncommonTrapRequest();
+      // if (trapReq != 0) {
+      //   char buf[100];
+      //   st->print("(%s)",
+      //             Deoptimization::formatTrapRequest(buf, sizeof(buf),
+      //                                                 trapReq));
+      // }
+      out.print(" ");
+    }
+    super.dumpSpec(out);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Compile.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Compile.java
new file mode 100644
index 0000000..31aacd5
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Compile.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.ci.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class Compile extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("Compile");
+    rootField = type.getAddressField("_root");
+    uniqueField = new CIntField(type.getCIntegerField("_unique"), 0);
+    entryBciField = new CIntField(type.getCIntegerField("_entry_bci"), 0);
+    topField = type.getAddressField("_top");
+    cfgField = type.getAddressField("_cfg");
+    regallocField = type.getAddressField("_regalloc");
+    methodField = type.getAddressField("_method");
+    iltField = type.getAddressField("_ilt");
+  }
+
+  private static AddressField rootField;
+  private static CIntField uniqueField;
+  private static CIntField entryBciField;
+  private static AddressField topField;
+  private static AddressField cfgField;
+  private static AddressField regallocField;
+  private static AddressField methodField;
+  private static AddressField iltField;
+
+  public Compile(Address addr) {
+    super(addr);
+  }
+
+  public Node root() {
+    return new RootNode(rootField.getValue(this.getAddress()));
+  }
+
+  public int entryBci() {
+    return (int)entryBciField.getValue(getAddress());
+  }
+
+  public ciMethod method() {
+    return (ciMethod) ciObjectFactory.get(methodField.getValue(getAddress()));
+  }
+
+  public PhaseCFG cfg() {
+    Address a = cfgField.getValue(this.getAddress());
+    if (a != null) {
+      return new PhaseCFG(a);
+    }
+    return null;
+  }
+
+  public InlineTree ilt() {
+    Address a = iltField.getValue(this.getAddress());
+    if (a != null) {
+      return new InlineTree(a);
+    }
+    return null;
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/HaltNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/HaltNode.java
new file mode 100644
index 0000000..ea8ef89
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/HaltNode.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class HaltNode extends Node {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("HaltNode");
+  }
+
+
+  public HaltNode(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/InlineTree.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/InlineTree.java
new file mode 100644
index 0000000..0a0f6fe
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/InlineTree.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import java.io.PrintStream;
+import sun.jvm.hotspot.ci.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.utilities.GrowableArray;
+import sun.jvm.hotspot.types.*;
+
+public class InlineTree extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("InlineTree");
+    callerJvmsField = type.getAddressField("_caller_jvms");
+    methodField = type.getAddressField("_method");
+    callerTreeField = type.getAddressField("_caller_tree");
+    subtreesField = type.getAddressField("_subtrees");
+  }
+
+  private static AddressField callerJvmsField;
+  private static AddressField methodField;
+  private static AddressField callerTreeField;
+  private static AddressField subtreesField;
+
+  private static StaticBaseConstructor inlineTreeConstructor = new StaticBaseConstructor<InlineTree>(InlineTree.class);
+
+  public InlineTree(Address addr) {
+    super(addr);
+  }
+
+  public InlineTree callerTree() {
+    Address addr = callerTreeField.getValue(getAddress());
+    if (addr == null) return null;
+
+    return new InlineTree(addr);
+  }
+
+  public ciMethod method() {
+    return (ciMethod) ciObjectFactory.get(methodField.getValue(getAddress()));
+  }
+
+  public JVMState callerJvms() {
+    return JVMState.create(callerJvmsField.getValue(getAddress()));
+  }
+
+  public int callerBci() {
+    JVMState jvms = callerJvms();
+    return (jvms != null) ? jvms.bci() : -1;
+  }
+
+  public GrowableArray<InlineTree> subtrees() {
+    Address addr = getAddress().addOffsetTo(subtreesField.getOffset());
+
+    return GrowableArray.create(addr, inlineTreeConstructor);
+  }
+
+  public void printImpl(PrintStream st, int indent) {
+    for (int i = 0; i < indent; i++) st.print(" ");
+    st.printf(" @ %d ", callerBci());
+    method().printShortName(st);
+    st.println();
+
+    GrowableArray<InlineTree> subt = subtrees();
+    for (int i = 0 ; i < subt.length(); i++) {
+      subt.at(i).printImpl(st, indent + 2);
+    }
+  }
+  public void print(PrintStream st) {
+    printImpl(st, 2);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/JVMState.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/JVMState.java
new file mode 100644
index 0000000..40147a1
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/JVMState.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.ci.*;
+import sun.jvm.hotspot.types.*;
+
+public class JVMState extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("JVMState");
+    mapField = type.getAddressField("_map");
+    methodField = type.getAddressField("_method");
+    bciField = new CIntField(type.getCIntegerField("_bci"), 0);
+    spField = new CIntField(type.getCIntegerField("_sp"), 0);
+    endoffField = new CIntField(type.getCIntegerField("_endoff"), 0);
+    try {
+        scloffField = new CIntField(type.getCIntegerField("_scloff"), 0);
+    } catch (Exception e) {
+    }
+    monoffField = new CIntField(type.getCIntegerField("_monoff"), 0);
+    stkoffField = new CIntField(type.getCIntegerField("_stkoff"), 0);
+    locoffField = new CIntField(type.getCIntegerField("_locoff"), 0);
+    depthField = new CIntField(type.getCIntegerField("_depth"), 0);
+    callerField = type.getAddressField("_caller");
+  }
+
+  private static AddressField mapField;
+  private static AddressField methodField;
+  private static CIntField bciField;
+  private static CIntField spField;
+  private static CIntField endoffField;
+  private static CIntField scloffField;
+  private static CIntField monoffField;
+  private static CIntField stkoffField;
+  private static CIntField locoffField;
+  private static CIntField depthField;
+  private static AddressField callerField;
+
+  public static JVMState create(Address addr) {
+    if (addr == null) return null;
+    return new JVMState(addr);
+  }
+
+  public JVMState(Address addr) {
+    super(addr);
+  }
+
+  public ciMethod method() {
+    return (ciMethod) ciObjectFactory.get(methodField.getValue(getAddress()));
+  }
+
+  public int bci() {
+    return (int)bciField.getValue(getAddress());
+  }
+
+  public JVMState caller() {
+    return create(callerField.getValue(getAddress()));
+  }
+
+  public void dumpSpec(PrintStream out) {
+    ciMethod m = method();
+    if (m != null) {
+      Method meth = m.method();
+      out.print(" " + meth.getMethodHolder().getName().asString().replace('/', '.') + "::" +
+                meth.getName().asString() + " @ bci:" + bci());
+    } else {
+      out.print(" runtime stub");
+    }
+    if (caller() != null)  caller().dumpSpec(out);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/LoopNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/LoopNode.java
new file mode 100644
index 0000000..c62ad08
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/LoopNode.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class LoopNode extends RegionNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("LoopNode");
+  }
+
+
+  public LoopNode(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallJavaNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallJavaNode.java
new file mode 100644
index 0000000..5d22719
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallJavaNode.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import java.io.PrintStream;
+import sun.jvm.hotspot.ci.ciMethod;
+import sun.jvm.hotspot.ci.ciObjectFactory;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class MachCallJavaNode extends MachCallNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("MachCallJavaNode");
+    methodField = type.getAddressField("_method");
+    bciField = new CIntField(type.getCIntegerField("_bci"), 0);
+  }
+
+  private static AddressField methodField;
+  private static CIntField bciField;
+
+  public ciMethod method() {
+    return (ciMethod) ciObjectFactory.get(methodField.getValue(getAddress()));
+  }
+
+  public MachCallJavaNode(Address addr) {
+    super(addr);
+  }
+
+  public void dumpSpec(PrintStream st) {
+    ciMethod m = method();
+    if (m != null) {
+      m.printShortName(st);
+      st.print(" ");
+    }
+    super.dumpSpec(st);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallNode.java
new file mode 100644
index 0000000..7f3691e
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallNode.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import java.io.PrintStream;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class MachCallNode extends MachSafePointNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("MachCallNode");
+  }
+
+  public MachCallNode(Address addr) {
+    super(addr);
+  }
+
+  public void dumpSpec(PrintStream st) {
+      st.print("# ");
+      // tf()->dump_on(st);
+      // if (_cnt != COUNT_UNKNOWN)  st->print(" C=%f",_cnt);
+      if (jvms() != null)  jvms().dumpSpec(st);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallRuntimeNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallRuntimeNode.java
new file mode 100644
index 0000000..9a6655f
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallRuntimeNode.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import java.io.PrintStream;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.CStringUtilities;
+
+public class MachCallRuntimeNode extends MachCallJavaNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("MachCallRuntimeNode");
+    nameField    = type.getAddressField("_name");
+  }
+
+  private static AddressField nameField;
+
+  public String name() {
+    return CStringUtilities.getString(nameField.getValue(getAddress()));
+  }
+
+  public MachCallRuntimeNode(Address addr) {
+    super(addr);
+  }
+
+  public void dumpSpec(PrintStream out) {
+    out.printf("%s ", name());
+    super.dumpSpec(out);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallStaticJavaNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallStaticJavaNode.java
new file mode 100644
index 0000000..4668acb
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachCallStaticJavaNode.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import java.io.PrintStream;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.CStringUtilities;
+
+public class MachCallStaticJavaNode extends MachCallJavaNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("MachCallStaticJavaNode");
+    nameField    = type.getAddressField("_name");
+  }
+
+  private static AddressField nameField;
+
+  public String name() {
+    return CStringUtilities.getString(nameField.getValue(getAddress()));
+  }
+
+  public MachCallStaticJavaNode(Address addr) {
+    super(addr);
+  }
+
+  public void dumpSpec(PrintStream st) {
+    st.print("Static ");
+    String n = name();
+    if (n != null) {
+      st.printf("wrapper for: %s", n);
+      // dump_trap_args(st);
+      st.print(" ");
+    }
+    super.dumpSpec(st);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachIfNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachIfNode.java
new file mode 100644
index 0000000..dc47e13
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachIfNode.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import java.io.PrintStream;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class MachIfNode extends MachNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("MachIfNode");
+    probField = type.getJFloatField("_prob");
+    fcntField = type.getJFloatField("_fcnt");
+  }
+
+  private static JFloatField probField;
+  private static JFloatField fcntField;
+
+  float prob() {
+    return probField.getValue(getAddress());
+  }
+
+  float cnt() {
+    return fcntField.getValue(getAddress());
+  }
+
+  public MachIfNode(Address addr) {
+    super(addr);
+  }
+
+  public void dumpSpec(PrintStream out) {
+    out.print("P=" + prob() + ", C=" + cnt());
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachNode.java
new file mode 100644
index 0000000..c59ef7a
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachNode.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class MachNode extends Node {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("MachNode");
+  }
+
+  public MachNode(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachReturnNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachReturnNode.java
new file mode 100644
index 0000000..a9bd39a
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachReturnNode.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class MachReturnNode extends MachNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("MachReturnNode");
+  }
+
+  public MachReturnNode(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachSafePointNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachSafePointNode.java
new file mode 100644
index 0000000..630f269
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MachSafePointNode.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import java.io.PrintStream;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class MachSafePointNode extends MachReturnNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("MachSafePointNode");
+    jvmsField = type.getAddressField("_jvms");
+    jvmadjField = new CIntField(type.getCIntegerField("_jvmadj"), 0);
+  }
+
+  private static AddressField jvmsField;
+  private static CIntField jvmadjField;
+
+  public MachSafePointNode(Address addr) {
+    super(addr);
+  }
+
+  public JVMState jvms() {
+    return JVMState.create(jvmsField.getValue(getAddress()));
+  }
+
+  public void dumpSpec(PrintStream out) {
+    try {
+      JVMState jvms = jvms();
+      if (jvms != null) out.print(" !");
+      if (jvms == null) out.print("empty jvms");
+      while (jvms != null) {
+        Method m = jvms.method().method();
+        int bci = jvms.bci();
+        out.print(" " + m.getMethodHolder().getName().asString().replace('/', '.') + "::" + m.getName().asString() + " @ bci:" + bci);
+        jvms = jvms.caller();
+      }
+    } catch (Exception e) {
+      out.print(e);
+    }
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MultiNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MultiNode.java
new file mode 100644
index 0000000..69d666e
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/MultiNode.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class MultiNode extends Node {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("MultiNode");
+  }
+
+
+  public MultiNode(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Node.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Node.java
new file mode 100644
index 0000000..e393383
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Node.java
@@ -0,0 +1,269 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.io.*;
+import java.lang.reflect.Constructor;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class Node extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("Node");
+    outmaxField = new CIntField(type.getCIntegerField("_outmax"), 0);
+    outcntField = new CIntField(type.getCIntegerField("_outcnt"), 0);
+    maxField = new CIntField(type.getCIntegerField("_max"), 0);
+    cntField = new CIntField(type.getCIntegerField("_cnt"), 0);
+    idxField = new CIntField(type.getCIntegerField("_idx"), 0);
+    outField = type.getAddressField("_out");
+    inField = type.getAddressField("_in");
+
+    nodeType = db.lookupType("Node");
+
+    virtualConstructor = new VirtualBaseConstructor(db, nodeType, "sun.jvm.hotspot.opto", Node.class);
+  }
+
+  private static CIntField outmaxField;
+  private static CIntField outcntField;
+  private static CIntField maxField;
+  private static CIntField cntField;
+  private static CIntField idxField;
+  private static AddressField outField;
+  private static AddressField inField;
+
+  private static VirtualBaseConstructor virtualConstructor;
+
+  private static Type nodeType;
+
+  static HashMap nodes = new HashMap();
+
+  static HashMap constructors = new HashMap();
+
+  static abstract class Instantiator {
+    abstract Node create(Address addr);
+  }
+
+  static public Node create(Address addr) {
+    if (addr == null) return null;
+    Node result = (Node)nodes.get(addr);
+    if (result == null) {
+      result = (Node)virtualConstructor.instantiateWrapperFor(addr);
+      nodes.put(addr, result);
+    }
+    return result;
+  }
+
+  public Node(Address addr) {
+    super(addr);
+  }
+
+  public int outcnt() {
+    return (int)outcntField.getValue(this.getAddress());
+  }
+
+  public int req() {
+    return (int)cntField.getValue(this.getAddress());
+  }
+
+  public int len() {
+    return (int)maxField.getValue(this.getAddress());
+  }
+
+  public int idx() {
+    return (int)idxField.getValue(this.getAddress());
+  }
+
+  private Node[] _out;
+  private Node[] _in;
+
+  public Node rawOut(int i) {
+    if (_out == null) {
+      int addressSize = (int)VM.getVM().getAddressSize();
+      _out = new Node[outcnt()];
+      Address ptr = outField.getValue(this.getAddress());
+      for (int j = 0; j < outcnt(); j++) {
+        _out[j] = Node.create(ptr.getAddressAt(j * addressSize));
+      }
+    }
+    return _out[i];
+  }
+
+  public Node in(int i) {
+    if (_in == null) {
+      int addressSize = (int)VM.getVM().getAddressSize();
+      _in = new Node[len()];
+      Address ptr = inField.getValue(this.getAddress());
+      for (int j = 0; j < len(); j++) {
+        _in[j] = Node.create(ptr.getAddressAt(j * addressSize));
+      }
+    }
+    return _in[i];
+  }
+
+  public ArrayList collect(int d, boolean onlyCtrl) {
+    int depth = Math.abs(d);
+    ArrayList nstack = new ArrayList();
+    BitSet set = new BitSet();
+
+    nstack.add(this);
+    set.set(idx());
+    int begin = 0;
+    int end = 0;
+    for (int i = 0; i < depth; i++) {
+      end = nstack.size();
+      for(int j = begin; j < end; j++) {
+        Node tp  = (Node)nstack.get(j);
+        int limit = d > 0 ? tp.len() : tp.outcnt();
+        for(int k = 0; k < limit; k++) {
+          Node n = d > 0 ? tp.in(k) : tp.rawOut(k);
+
+          // if (NotANode(n))  continue;
+          if (n == null) continue;
+          // do not recurse through top or the root (would reach unrelated stuff)
+          // if (n.isRoot() || n.isTop())  continue;
+          // if (onlyCtrl && !n.isCfg()) continue;
+
+          if (!set.get(n.idx())) {
+            nstack.add(n);
+            set.set(n.idx());
+          }
+        }
+      }
+      begin = end;
+    }
+    return nstack;
+  }
+
+  protected void dumpNodes(Node s, int d, boolean onlyCtrl, PrintStream out) {
+    if (s == null) return;
+
+    ArrayList nstack = s.collect(d, onlyCtrl);
+    int end = nstack.size();
+    if (d > 0) {
+      for(int j = end-1; j >= 0; j--) {
+        ((Node)nstack.get(j)).dump(out);
+      }
+    } else {
+      for(int j = 0; j < end; j++) {
+        ((Node)nstack.get(j)).dump(out);
+      }
+    }
+  }
+
+  public void dump(int depth, PrintStream out) {
+    dumpNodes(this, depth, false, out);
+  }
+
+  public String Name() {
+    Type t = VM.getVM().getTypeDataBase().findDynamicTypeForAddress(getAddress(), nodeType);
+    String name = null;
+    if (t != null) {
+        name = t.toString();
+    } else {
+        Class c = getClass();
+        if (c == Node.class) {
+            // couldn't identify class type
+            return "UnknownNode<" + getAddress().getAddressAt(0) + ">";
+        }
+        name = getClass().getName();
+        if (name.startsWith("sun.jvm.hotspot.opto.")) {
+            name = name.substring("sun.jvm.hotspot.opto.".length());
+        }
+    }
+    if (name.endsWith("Node")) {
+        return name.substring(0, name.length() - 4);
+    }
+    return name;
+  }
+
+  public void dump(PrintStream out) {
+    out.print(" ");
+    out.print(idx());
+    out.print("\t");
+    out.print(Name());
+    out.print("\t=== ");
+    int i = 0;
+    for (i = 0; i < req(); i++) {
+      Node n = in(i);
+      if (n != null) {
+        out.print(' ');
+        out.print(in(i).idx());
+      } else {
+        out.print("_");
+      }
+      out.print(" ");
+    }
+    if (len() != req()) {
+      int prec = 0;
+      for (; i < len(); i++) {
+        Node n = in(i);
+        if (n != null) {
+          if (prec++ == 0) {
+            out.print("| ");
+          }
+          out.print(in(i).idx());
+        }
+        out.print(" ");
+      }
+    }
+    dumpOut(out);
+    dumpSpec(out);
+    out.println();
+  }
+
+  void dumpOut(PrintStream out) {
+    // Delimit the output edges
+    out.print(" [[");
+    // Dump the output edges
+    for (int i = 0; i < outcnt(); i++) {    // For all outputs
+      Node u = rawOut(i);
+      if (u == null) {
+        out.print("_ ");
+      // } else if (NotANode(u)) {
+      //   out.print("NotANode ");
+      } else {
+        // out.print("%c%d ", Compile::current()->nodeArena()->contains(u) ? ' ' : 'o', u->_idx);
+        out.print(' ');
+        out.print(u.idx());
+        out.print(' ');
+      }
+    }
+    out.print("]] ");
+  }
+
+  public void dumpSpec(PrintStream out) {
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Node_Array.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Node_Array.java
new file mode 100644
index 0000000..c4a2734
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Node_Array.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class Node_Array extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("Node_Array");
+    maxField = new CIntField(type.getCIntegerField("_max"), 0);
+    nodesField = type.getAddressField("_nodes");
+    aField = type.getAddressField("_a");
+  }
+
+  private static CIntField maxField;
+  private static AddressField nodesField;
+  private static AddressField aField;
+
+  public Node_Array(Address addr) {
+    super(addr);
+  }
+
+  public int Size() {
+    return (int) maxField.getValue(getAddress());
+  }
+
+  public Node at(int i) {
+    return Node.create(nodesField.getValue(getAddress()).getAddressAt(i * (int)VM.getVM().getAddressSize()));
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Node_List.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Node_List.java
new file mode 100644
index 0000000..0828bf5
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Node_List.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class Node_List extends Node_Array {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("Node_List");
+    cntField = new CIntField(type.getCIntegerField("_cnt"), 0);
+  }
+
+  private static CIntField cntField;
+
+  public Node_List(Address addr) {
+    super(addr);
+  }
+
+  public int size() {
+    return (int) cntField.getValue(getAddress());
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Phase.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Phase.java
new file mode 100644
index 0000000..5c010b0
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/Phase.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class Phase extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("Phase");
+  }
+
+
+  public Phase(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseCFG.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseCFG.java
new file mode 100644
index 0000000..986214f
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseCFG.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import java.io.PrintStream;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class PhaseCFG extends Phase {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("PhaseCFG");
+    numBlocksField = new CIntField(type.getCIntegerField("_num_blocks"), 0);
+    blocksField = type.getAddressField("_blocks");
+    bbsField = type.getAddressField("_bbs");
+    brootField = type.getAddressField("_broot");
+  }
+
+  private static CIntField numBlocksField;
+  private static AddressField blocksField;
+  private static AddressField bbsField;
+  private static AddressField brootField;
+
+  public PhaseCFG(Address addr) {
+    super(addr);
+  }
+
+  public void dump(PrintStream out) {
+    int addressSize = (int)VM.getVM().getAddressSize();
+    int numBlocks = (int)numBlocksField.getValue(getAddress());
+    Block_List blocks = new Block_List(getAddress().addOffsetTo(blocksField.getOffset()));
+    int offset = 0;
+    for (int i  = 0; i < numBlocks; i++) {
+      blocks.at(i).dump(out);
+    }
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseRegAlloc.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseRegAlloc.java
new file mode 100644
index 0000000..c51d952
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseRegAlloc.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class PhaseRegAlloc extends Phase {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("PhaseRegAlloc");
+    nodeRegsField = type.getAddressField("_node_regs");
+    nodeRegsMaxIndexField = new CIntField(type.getCIntegerField("_node_regs_max_index"), 0);
+    framesizeField = new CIntField(type.getCIntegerField("_framesize"), 0);
+    maxRegField = new CIntField(type.getCIntegerField("_max_reg"), 0);
+  }
+
+  private static AddressField nodeRegsField;
+  private static CIntField nodeRegsMaxIndexField;
+  private static CIntField framesizeField;
+  private static CIntField maxRegField;
+
+  public PhaseRegAlloc(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/PhiNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/PhiNode.java
new file mode 100644
index 0000000..6565e03
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/PhiNode.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class PhiNode extends TypeNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("PhiNode");
+  }
+
+
+  public PhiNode(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/ProjNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/ProjNode.java
new file mode 100644
index 0000000..6f3e9d4
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/ProjNode.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class ProjNode extends Node {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("ProjNode");
+  }
+
+
+  public ProjNode(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/RegionNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/RegionNode.java
new file mode 100644
index 0000000..5aa7763
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/RegionNode.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class RegionNode extends Node {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("RegionNode");
+  }
+
+
+  public RegionNode(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/RootNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/RootNode.java
new file mode 100644
index 0000000..9a050da
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/RootNode.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class RootNode extends LoopNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("RootNode");
+  }
+
+
+  public RootNode(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/SafePointNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/SafePointNode.java
new file mode 100644
index 0000000..5158592
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/SafePointNode.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.io.PrintStream;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class SafePointNode extends MultiNode {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("SafePointNode");
+    jvmsField = type.getAddressField("_jvms");
+  }
+
+  private static AddressField jvmsField;
+
+  public SafePointNode(Address addr) {
+    super(addr);
+  }
+
+  public JVMState jvms() {
+    return JVMState.create(jvmsField.getValue(getAddress()));
+  }
+
+  public void dumpSpec(PrintStream out) {
+    JVMState jvms = jvms();
+    if (jvms != null) out.print(" !");
+    while (jvms != null) {
+      Method m = jvms.method().method();
+      int bci = jvms.bci();
+      out.print(" " + m.getMethodHolder().getName().asString().replace('/', '.') + "::" + m.getName().asString() + " @ bci:" + bci);
+      jvms = jvms.caller();
+    }
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/TypeNode.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/TypeNode.java
new file mode 100644
index 0000000..33e423a
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/TypeNode.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.opto;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class TypeNode extends Node {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("TypeNode");
+  }
+
+
+  public TypeNode(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/prims/JvmtiExport.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/prims/JvmtiExport.java
new file mode 100644
index 0000000..83602a3
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/prims/JvmtiExport.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.prims;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class JvmtiExport {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("JvmtiExport");
+    // XXX
+    // canAccessLocalVariables =    type.getCIntegerField("_can_access_local_variables");
+    // canHotswapOrPostBreakpoint = type.getCIntegerField("_can_hotswap_or_post_breakpoint");
+    // canPostOnExceptions =        type.getCIntegerField("_can_post_on_exceptions");
+  }
+
+  private static CIntegerField canAccessLocalVariables;
+  private static CIntegerField canHotswapOrPostBreakpoint;
+  private static CIntegerField canPostOnExceptions;
+
+  public static boolean canAccessLocalVariables() {
+    // return canAccessLocalVariables.getValue() != 0;
+    return false;
+  }
+  public static boolean canHotswapOrPostBreakpoint() {
+    // return canHotswapOrPostBreakpoint.getValue() != 0;
+    return false;
+  }
+  public static boolean canPostOnExceptions() {
+    // return canPostOnExceptions.getValue() != 0;
+    return false;
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/CompiledVFrame.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/CompiledVFrame.java
index d0d9674..ba42e8d 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/CompiledVFrame.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/CompiledVFrame.java
@@ -93,6 +93,8 @@ public class CompiledVFrame extends JavaVFrame {
   }
 
   public StackValueCollection getLocals() {
+    if (getScope() == null)
+      return new StackValueCollection();
     List scvList = getScope().getLocals();
     if (scvList == null)
       return new StackValueCollection();
@@ -108,6 +110,8 @@ public class CompiledVFrame extends JavaVFrame {
   }
 
   public StackValueCollection getExpressions() {
+    if (getScope() == null)
+      return new StackValueCollection();
     List scvList = getScope().getExpressions();
     if (scvList == null)
       return new StackValueCollection();
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/CompilerThread.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/CompilerThread.java
index 7c8defc..7a28c66 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/CompilerThread.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/CompilerThread.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,10 +25,40 @@
 package sun.jvm.hotspot.runtime;
 
 import java.io.*;
+import java.util.*;
 import sun.jvm.hotspot.debugger.*;
 import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.ci.*;
 
 public class CompilerThread extends JavaThread {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static AddressField _env_field;
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("CompilerThread");
+
+    _env_field = type.getAddressField("_env");
+  }
+
+  private ciEnv _env;
+
+  public synchronized ciEnv env() {
+    if (_env == null) {
+      Address v = _env_field.getValue(this.getAddress());
+      if (v != null) {
+        _env = new ciEnv(v);
+      }
+    }
+    return _env;
+  }
+
   public CompilerThread(Address addr) {
     super(addr);
   }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java
index 3b99ec2..70eace5 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java
@@ -33,6 +33,7 @@ import sun.jvm.hotspot.c1.*;
 import sun.jvm.hotspot.debugger.*;
 import sun.jvm.hotspot.interpreter.*;
 import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.runtime.sparc.SPARCFrame;
 import sun.jvm.hotspot.types.*;
 import sun.jvm.hotspot.utilities.*;
 
@@ -74,11 +75,19 @@ public abstract class Frame implements Cloneable {
   /** Size of constMethodOopDesc for computing BCI from BCP (FIXME: hack) */
   private static long    constMethodOopDescSize;
 
+  private static int pcReturnOffset;
+
+  public static int pcReturnOffset() {
+    return pcReturnOffset;
+  }
+
   private static synchronized void initialize(TypeDataBase db) {
     Type constMethodOopType = db.lookupType("constMethodOopDesc");
     // FIXME: not sure whether alignment here is correct or how to
     // force it (round up to address size?)
     constMethodOopDescSize = constMethodOopType.getSize();
+
+    pcReturnOffset = db.lookupIntConstant("frame::pc_return_offset").intValue();
   }
 
   protected int bcpToBci(Address bcp, ConstMethod cm) {
@@ -106,6 +115,10 @@ public abstract class Frame implements Cloneable {
   public void    setPC(Address newpc) { pc = newpc; }
   public boolean isDeoptimized()      { return deoptimized; }
 
+  public CodeBlob cb() {
+    return VM.getVM().getCodeCache().findBlob(getPC());
+  }
+
   public abstract Address getSP();
   public abstract Address getID();
   public abstract Address getFP();
@@ -134,6 +147,12 @@ public abstract class Frame implements Cloneable {
     }
   }
 
+  public boolean isRicochetFrame() {
+    CodeBlob cb = VM.getVM().getCodeCache().findBlob(getPC());
+    RicochetBlob rcb = VM.getVM().ricochetBlob();
+    return (cb == rcb && rcb != null && rcb.returnsToBounceAddr(getPC()));
+  }
+
   public boolean isCompiledFrame() {
     if (Assert.ASSERTS_ENABLED) {
       Assert.that(!VM.getVM().isCore(), "noncore builds only");
@@ -142,7 +161,7 @@ public abstract class Frame implements Cloneable {
     return (cb != null && cb.isJavaMethod());
   }
 
-  public boolean isGlueFrame() {
+  public boolean isRuntimeFrame() {
     if (Assert.ASSERTS_ENABLED) {
       Assert.that(!VM.getVM().isCore(), "noncore builds only");
     }
@@ -197,7 +216,8 @@ public abstract class Frame implements Cloneable {
   public Frame realSender(RegisterMap map) {
     if (!VM.getVM().isCore()) {
       Frame result = sender(map);
-      while (result.isGlueFrame()) {
+      while (result.isRuntimeFrame() ||
+             result.isRicochetFrame()) {
         result = result.sender(map);
       }
       return result;
@@ -611,6 +631,9 @@ public abstract class Frame implements Cloneable {
     if (Assert.ASSERTS_ENABLED) {
       Assert.that(cb != null, "sanity check");
     }
+    if (cb == VM.getVM().ricochetBlob()) {
+      oopsRicochetDo(oopVisitor, regMap);
+    }
     if (cb.getOopMaps() != null) {
       OopMapSet.oopsDo(this, cb, regMap, oopVisitor, VM.getVM().isDebugging());
 
@@ -627,6 +650,10 @@ public abstract class Frame implements Cloneable {
     //    }
   }
 
+  private void oopsRicochetDo      (AddressVisitor oopVisitor, RegisterMap regMap) {
+    // XXX Empty for now
+  }
+
   // FIXME: implement the above routines, plus add
   // oops_interpreted_arguments_do and oops_compiled_arguments_do
 }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/InstanceConstructor.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/InstanceConstructor.java
new file mode 100644
index 0000000..725dfda
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/InstanceConstructor.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.runtime;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.cdbg.CDebugger;
+import sun.jvm.hotspot.debugger.cdbg.ClosestSymbol;
+import sun.jvm.hotspot.debugger.cdbg.LoadObject;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.HotSpotTypeDataBase;
+
+/** Given a pointer to some memory return an appropriate wrapper.
+ Various subclasses provide different mechanisms for identifying the
+ appropriate wrapper. */
+
+abstract public class InstanceConstructor<T> {
+  /** Instantiate the most-precisely typed wrapper object available
+      for the type of the given Address. If no type in the mapping
+      matched the type of the Address, throws a WrongTypeException.
+      Returns null for a null address (similar behavior to
+      VMObjectFactory). */
+  abstract public T instantiateWrapperFor(Address addr) throws WrongTypeException;
+
+  protected WrongTypeException newWrongTypeException(Address addr) {
+    String message = "No suitable match for type of address " + addr;
+    CDebugger cdbg = VM.getVM().getDebugger().getCDebugger();
+    if (cdbg != null) {
+      // Most common case: V-table pointer is the first field
+      Address vtblPtr = addr.getAddressAt(0);
+      LoadObject lo = cdbg.loadObjectContainingPC(vtblPtr);
+      if (lo != null) {
+        ClosestSymbol symbol = lo.closestSymbolToPC(vtblPtr);
+        if (symbol != null) {
+          message += " (nearest symbol is " + symbol.getName() + ")";
+        }
+      }
+    }
+
+    return new WrongTypeException(message);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaVFrame.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaVFrame.java
index 63108f7..a45cbc3 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaVFrame.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaVFrame.java
@@ -128,14 +128,14 @@ public abstract class JavaVFrame extends VFrame {
       }
 
       // dynamic part - we just compare the frame pointer
-      if (! getFrame().getFP().equals(other.getFrame().getFP())) {
+      if (! getFrame().equals(other.getFrame())) {
           return false;
       }
       return true;
   }
 
   public int hashCode() {
-      return getMethod().hashCode() ^ getBCI() ^ getFrame().getFP().hashCode();
+      return getMethod().hashCode() ^ getBCI() ^ getFrame().hashCode();
   }
 
   /** Structural compare */
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/StackValue.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/StackValue.java
index 78ba738..5cc5f94 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/StackValue.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/StackValue.java
@@ -100,7 +100,7 @@ public class StackValue {
 
   public int hashCode() {
     if (type == BasicType.getTObject()) {
-      return handleValue.hashCode();
+      return handleValue != null ? handleValue.hashCode() : 5;
     } else {
       // Returns 0 for conflict type
       return (int) integerValue;
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/StaticBaseConstructor.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/StaticBaseConstructor.java
new file mode 100644
index 0000000..c45f524
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/StaticBaseConstructor.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.runtime;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.cdbg.CDebugger;
+import sun.jvm.hotspot.debugger.cdbg.ClosestSymbol;
+import sun.jvm.hotspot.debugger.cdbg.LoadObject;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.HotSpotTypeDataBase;
+
+/** Instantiate wrappers for statically typed instances. */
+
+public class StaticBaseConstructor<T> extends InstanceConstructor {
+  private Class staticType;
+
+  public StaticBaseConstructor(Class<T> t) {
+    staticType = t;
+  }
+
+  /** Instantiate a wrapper using staticType */
+  public VMObject instantiateWrapperFor(Address addr) throws WrongTypeException {
+    if (addr == null) {
+      return null;
+    }
+
+    return (VMObject) VMObjectFactory.newObject(staticType, addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Threads.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Threads.java
index d90d08b..44ce898 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Threads.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Threads.java
@@ -37,6 +37,8 @@ import sun.jvm.hotspot.runtime.linux_x86.LinuxX86JavaThreadPDAccess;
 import sun.jvm.hotspot.runtime.linux_ia64.LinuxIA64JavaThreadPDAccess;
 import sun.jvm.hotspot.runtime.linux_amd64.LinuxAMD64JavaThreadPDAccess;
 import sun.jvm.hotspot.runtime.linux_sparc.LinuxSPARCJavaThreadPDAccess;
+import sun.jvm.hotspot.runtime.bsd_x86.BsdX86JavaThreadPDAccess;
+import sun.jvm.hotspot.runtime.bsd_amd64.BsdAMD64JavaThreadPDAccess;
 import sun.jvm.hotspot.utilities.*;
 
 public class Threads {
@@ -90,7 +92,12 @@ public class Threads {
             } else if (cpu.equals("sparc")) {
                 access = new LinuxSPARCJavaThreadPDAccess();
             }
-
+        } else if (os.equals("bsd")) {
+            if (cpu.equals("x86")) {
+                access = new BsdX86JavaThreadPDAccess();
+            } else if (cpu.equals("amd64")) {
+                access = new BsdAMD64JavaThreadPDAccess();
+            }
         }
 
         if (access == null) {
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VFrame.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VFrame.java
index 98591fd..ea1ec19 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VFrame.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VFrame.java
@@ -77,7 +77,7 @@ public class VFrame {
           return new CompiledVFrame(f, regMap, thread, scope, mayBeImprecise);
         }
 
-        if (f.isGlueFrame()) {
+        if (f.isRuntimeFrame()) {
           // This is a conversion frame. Skip this frame and try again.
           RegisterMap tempMap = regMap.copy();
           Frame s = f.sender(tempMap);
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java
index 4d333ba..5a96a8e 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java
@@ -30,6 +30,7 @@ import java.util.*;
 import java.util.regex.*;
 import sun.jvm.hotspot.code.*;
 import sun.jvm.hotspot.c1.*;
+import sun.jvm.hotspot.code.*;
 import sun.jvm.hotspot.debugger.*;
 import sun.jvm.hotspot.interpreter.*;
 import sun.jvm.hotspot.memory.*;
@@ -85,6 +86,9 @@ public class VM {
   private Interpreter  interpreter;
   private StubRoutines stubRoutines;
   private Bytes        bytes;
+
+  private RicochetBlob ricochetBlob;
+
   /** Flags indicating whether we are attached to a core, C1, or C2 build */
   private boolean      usingClientCompiler;
   private boolean      usingServerCompiler;
@@ -131,12 +135,14 @@ public class VM {
      private String name;
      private Address addr;
      private String kind;
+     private int origin;
 
-     private Flag(String type, String name, Address addr, String kind) {
+     private Flag(String type, String name, Address addr, String kind, int origin) {
         this.type = type;
         this.name = name;
         this.addr = addr;
         this.kind = kind;
+        this.origin = origin;
      }
 
      public String getType() {
@@ -155,6 +161,10 @@ public class VM {
         return kind;
      }
 
+     public int getOrigin() {
+        return origin;
+     }
+
      public boolean isBool() {
         return type.equals("bool");
      }
@@ -300,7 +310,7 @@ public class VM {
         usingServerCompiler = false;
       } else {
         // Determine whether C2 is present
-        if (type.getField("_interpreter_invocation_count", false, false) != null) {
+        if (db.lookupType("Matcher", false) != null) {
           usingServerCompiler = true;
         } else {
           usingClientCompiler = true;
@@ -618,6 +628,18 @@ public class VM {
     return stubRoutines;
   }
 
+  public RicochetBlob ricochetBlob() {
+    if (ricochetBlob == null) {
+      Type ricochetType  = db.lookupType("SharedRuntime");
+      AddressField ricochetBlobAddress = ricochetType.getAddressField("_ricochet_blob");
+      Address addr = ricochetBlobAddress.getValue();
+      if (addr != null) {
+        ricochetBlob = new RicochetBlob(addr);
+      }
+    }
+    return ricochetBlob;
+  }
+
   public VMRegImpl getVMRegImplInfo() {
     if (vmregImpl == null) {
       vmregImpl = new VMRegImpl();
@@ -788,42 +810,40 @@ public class VM {
   private void readCommandLineFlags() {
     // get command line flags
     TypeDataBase db = getTypeDataBase();
-    try {
-       Type flagType = db.lookupType("Flag");
-       int numFlags = (int) flagType.getCIntegerField("numFlags").getValue();
-       // NOTE: last flag contains null values.
-       commandLineFlags = new Flag[numFlags - 1];
-
-       Address flagAddr = flagType.getAddressField("flags").getValue();
-
-       AddressField typeFld = flagType.getAddressField("type");
-       AddressField nameFld = flagType.getAddressField("name");
-       AddressField addrFld = flagType.getAddressField("addr");
-       AddressField kindFld = flagType.getAddressField("kind");
-
-       long flagSize = flagType.getSize(); // sizeof(Flag)
-
-       // NOTE: last flag contains null values.
-       for (int f = 0; f < numFlags - 1; f++) {
-          String type = CStringUtilities.getString(typeFld.getValue(flagAddr));
-          String name = CStringUtilities.getString(nameFld.getValue(flagAddr));
-          Address addr = addrFld.getValue(flagAddr);
-          String kind = CStringUtilities.getString(kindFld.getValue(flagAddr));
-          commandLineFlags[f] = new Flag(type, name, addr, kind);
-          flagAddr = flagAddr.addOffsetTo(flagSize);
-       }
-
-       // sort flags by name
-       Arrays.sort(commandLineFlags, new Comparator() {
-                                        public int compare(Object o1, Object o2) {
-                                           Flag f1 = (Flag) o1;
-                                           Flag f2 = (Flag) o2;
-                                           return f1.getName().compareTo(f2.getName());
-                                        }
-                                     });
-    } catch (Exception exp) {
-       // ignore. may be older version. command line flags not available.
-    }
+    Type flagType = db.lookupType("Flag");
+    int numFlags = (int) flagType.getCIntegerField("numFlags").getValue();
+    // NOTE: last flag contains null values.
+    commandLineFlags = new Flag[numFlags - 1];
+
+    Address flagAddr = flagType.getAddressField("flags").getValue();
+
+    AddressField typeFld = flagType.getAddressField("type");
+    AddressField nameFld = flagType.getAddressField("name");
+    AddressField addrFld = flagType.getAddressField("addr");
+    AddressField kindFld = flagType.getAddressField("kind");
+    CIntField originFld = new CIntField(flagType.getCIntegerField("origin"), 0);
+
+    long flagSize = flagType.getSize(); // sizeof(Flag)
+
+    // NOTE: last flag contains null values.
+    for (int f = 0; f < numFlags - 1; f++) {
+      String type = CStringUtilities.getString(typeFld.getValue(flagAddr));
+      String name = CStringUtilities.getString(nameFld.getValue(flagAddr));
+      Address addr = addrFld.getValue(flagAddr);
+      String kind = CStringUtilities.getString(kindFld.getValue(flagAddr));
+      int origin = (int)originFld.getValue(flagAddr);
+      commandLineFlags[f] = new Flag(type, name, addr, kind, origin);
+      flagAddr = flagAddr.addOffsetTo(flagSize);
+    }
+
+    // sort flags by name
+    Arrays.sort(commandLineFlags, new Comparator() {
+        public int compare(Object o1, Object o2) {
+          Flag f1 = (Flag) o1;
+          Flag f2 = (Flag) o2;
+          return f1.getName().compareTo(f2.getName());
+        }
+      });
   }
 
   public String getSystemProperty(String key) {
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualBaseConstructor.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualBaseConstructor.java
new file mode 100644
index 0000000..a73ce12
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualBaseConstructor.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.runtime;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.cdbg.CDebugger;
+import sun.jvm.hotspot.debugger.cdbg.ClosestSymbol;
+import sun.jvm.hotspot.debugger.cdbg.LoadObject;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.HotSpotTypeDataBase;
+
+/** This provides a factory to create instances where the base virtual
+ * type is know and the expected subclasses are within a particular
+ * package. */
+
+public class VirtualBaseConstructor<T> extends InstanceConstructor {
+  private TypeDataBase db;
+  private HashMap      map; // Map<String, Class>
+  private Type         baseType;
+  private Class        unknownTypeHandler;
+
+  public VirtualBaseConstructor(TypeDataBase db, Type baseType, String packageName, Class unknownTypeHandler) {
+    this.db = (HotSpotTypeDataBase)db;
+    map     = new HashMap();
+    this.baseType = baseType;
+    this.unknownTypeHandler = unknownTypeHandler;
+    // Try to find mirror types for each of the types.  If there isn't
+    // a direct mirror then try to find an instantiable superclass and
+    // treat it as that.
+    for (Iterator iter = db.getTypes(); iter.hasNext(); ) {
+      Type t = (Type) iter.next();
+      Type superType = t;
+      while (superType != null && superType != baseType) {
+        superType = superType.getSuperclass();
+      }
+      if (superType == baseType) {
+        superType = t;
+        Class c = null;
+        while (c == null && superType != null) {
+          try {
+            c = Class.forName(packageName + "." + superType.getName());
+          } catch (Exception e) {
+          }
+          if (c == null) superType = superType.getSuperclass();
+        }
+        if (c == null) {
+          c = unknownTypeHandler;
+        }
+        map.put(t.getName(), c);
+      }
+    }
+  }
+
+  /** Instantiate the most-precisely typed wrapper object available
+      for the type of the given Address. If no type in the mapping
+      matched the type of the Address, throws a WrongTypeException.
+      Returns null for a null address (similar behavior to
+      VMObjectFactory). */
+  public VMObject instantiateWrapperFor(Address addr) throws WrongTypeException {
+    if (addr == null) {
+      return null;
+    }
+
+    Type type = db.findDynamicTypeForAddress(addr, baseType);
+    if (type != null) {
+        return (VMObject) VMObjectFactory.newObject((Class) map.get(type.getName()), addr);
+    } else if (unknownTypeHandler != null) {
+        return (VMObject) VMObjectFactory.newObject(unknownTypeHandler, addr);
+    }
+
+    throw newWrongTypeException(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualConstructor.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualConstructor.java
index 4e45a3c..acca167 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualConstructor.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualConstructor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@ package sun.jvm.hotspot.runtime;
 
 import java.util.*;
 import sun.jvm.hotspot.debugger.*;
-import sun.jvm.hotspot.debugger.cdbg.*;
 import sun.jvm.hotspot.types.*;
 
 /** This class provides generalized "virtual constructor"
@@ -39,7 +38,7 @@ import sun.jvm.hotspot.types.*;
     type "DefNewGeneration" to class
     sun.jvm.hotspot.memory.DefNewGeneration has been set up. */
 
-public class VirtualConstructor {
+public class VirtualConstructor extends InstanceConstructor<VMObject> {
   private TypeDataBase db;
   private Map          map; // Map<String, Class>
 
@@ -78,20 +77,6 @@ public class VirtualConstructor {
       }
     }
 
-    String message = "No suitable match for type of address " + addr;
-    CDebugger cdbg = VM.getVM().getDebugger().getCDebugger();
-    if (cdbg != null) {
-      // Most common case: V-table pointer is the first field
-      Address vtblPtr = addr.getAddressAt(0);
-      LoadObject lo = cdbg.loadObjectContainingPC(vtblPtr);
-      if (lo != null) {
-        ClosestSymbol symbol = lo.closestSymbolToPC(vtblPtr);
-        if (symbol != null) {
-          message += " (nearest symbol is " + symbol.getName() + ")";
-        }
-      }
-    }
-
-    throw new WrongTypeException(message);
+    throw newWrongTypeException(addr);
   }
 }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64CurrentFrameGuess.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64CurrentFrameGuess.java
index c5e4e63..6acf0d9 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64CurrentFrameGuess.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64CurrentFrameGuess.java
@@ -29,6 +29,7 @@ import sun.jvm.hotspot.debugger.amd64.*;
 import sun.jvm.hotspot.code.*;
 import sun.jvm.hotspot.interpreter.*;
 import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.runtime.x86.*;
 
 /** <P> Should be able to be used on all amd64 platforms we support
     (Linux/amd64) to implement JavaThread's
@@ -123,7 +124,7 @@ public class AMD64CurrentFrameGuess {
              offset += vm.getAddressSize()) {
           try {
             Address curSP = sp.addOffsetTo(offset);
-            Frame frame = new AMD64Frame(curSP, null, pc);
+            Frame frame = new X86Frame(curSP, null, pc);
             RegisterMap map = thread.newRegisterMap(false);
             while (frame != null) {
               if (frame.isEntryFrame() && frame.entryFrameIsFirst()) {
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd/BsdSignals.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd/BsdSignals.java
new file mode 100644
index 0000000..6887c47
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd/BsdSignals.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.runtime.bsd;
+
+public class BsdSignals {
+  private static String[] signalNames = {
+    "",           /* No signal 0 */
+    "SIGHUP",     /* hangup */
+    "SIGINT",     /* interrupt */
+    "SIGQUIT",    /* quit */
+    "SIGILL",     /* illegal instr. (not reset when caught) */
+    "SIGTRAP",    /* trace trap (not reset when caught) */
+    "SIGABRT",    /* abort() */
+    "SIGEMT",     /* EMT instruction */
+    "SIGFPE",     /* floating point exception */
+    "SIGKILL",    /* kill (cannot be caught or ignored) */
+    "SIGBUS",     /* bus error */
+    "SIGSEGV",    /* segmentation violation */
+    "SIGSYS",     /* non-existent system call invoked */
+    "SIGPIPE",    /* write on a pipe with no one to read it */
+    "SIGALRM",    /* alarm clock */
+    "SIGTERM",    /* software termination signal from kill */
+    "SIGURG",     /* urgent condition on IO channel */
+    "SIGSTOP",    /* sendable stop signal not from tty */
+    "SIGTSTP",    /* stop signal from tty */
+    "SIGCONT",    /* continue a stopped process */
+    "SIGCHLD",    /* to parent on child stop or exit */
+    "SIGTTIN",    /* to readers pgrp upon background tty read */
+    "SIGTTOU",    /* like TTIN if (tp->t_local&LTOSTOP) */
+    "SIGIO",      /* input/output possible signal */
+    "SIGXCPU",    /* exceeded CPU time limit */
+    "SIGXFSZ",    /* exceeded file size limit */
+    "SIGVTALRM",  /* virtual time alarm */
+    "SIGPROF",    /* profiling time alarm */
+    "SIGWINCH",   /* window size changes */
+    "SIGINFO",    /* information request */
+    "SIGUSR1",    /* user defined signal 1 */
+    "SIGUSR2"     /* user defined signal 2 */
+  };
+
+  public static String getSignalName(int sigNum) {
+    if ((sigNum <= 0) || (sigNum >= signalNames.length)) {
+      // Probably best to fail in a non-destructive way
+      return "<Error: Illegal signal number " + sigNum + ">";
+    }
+    return signalNames[sigNum];
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_amd64/BsdAMD64JavaThreadPDAccess.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_amd64/BsdAMD64JavaThreadPDAccess.java
new file mode 100644
index 0000000..c0de138
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_amd64/BsdAMD64JavaThreadPDAccess.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.runtime.bsd_amd64;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.amd64.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.runtime.amd64.*;
+import sun.jvm.hotspot.runtime.x86.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+public class BsdAMD64JavaThreadPDAccess implements JavaThreadPDAccess {
+  private static AddressField  lastJavaFPField;
+  private static AddressField  osThreadField;
+
+  // Field from OSThread
+  private static CIntegerField osThreadThreadIDField;
+
+  // This is currently unneeded but is being kept in case we change
+  // the currentFrameGuess algorithm
+  private static final long GUESS_SCAN_RANGE = 128 * 1024;
+
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) {
+    Type type = db.lookupType("JavaThread");
+    osThreadField           = type.getAddressField("_osthread");
+
+    Type anchorType = db.lookupType("JavaFrameAnchor");
+    lastJavaFPField         = anchorType.getAddressField("_last_Java_fp");
+
+    Type osThreadType = db.lookupType("OSThread");
+    osThreadThreadIDField   = osThreadType.getCIntegerField("_thread_id");
+  }
+
+  public    Address getLastJavaFP(Address addr) {
+    return lastJavaFPField.getValue(addr.addOffsetTo(sun.jvm.hotspot.runtime.JavaThread.getAnchorField().getOffset()));
+  }
+
+  public    Address getLastJavaPC(Address addr) {
+    return null;
+  }
+
+  public    Address getBaseOfStackPointer(Address addr) {
+    return null;
+  }
+
+  public    Frame getLastFramePD(JavaThread thread, Address addr) {
+    Address fp = thread.getLastJavaFP();
+    if (fp == null) {
+      return null; // no information
+    }
+    return new X86Frame(thread.getLastJavaSP(), fp);
+  }
+
+  public    RegisterMap newRegisterMap(JavaThread thread, boolean updateMap) {
+    return new X86RegisterMap(thread, updateMap);
+  }
+
+  public    Frame getCurrentFrameGuess(JavaThread thread, Address addr) {
+    ThreadProxy t = getThreadProxy(addr);
+    AMD64ThreadContext context = (AMD64ThreadContext) t.getContext();
+    AMD64CurrentFrameGuess guesser = new AMD64CurrentFrameGuess(context, thread);
+    if (!guesser.run(GUESS_SCAN_RANGE)) {
+      return null;
+    }
+    if (guesser.getPC() == null) {
+      return new X86Frame(guesser.getSP(), guesser.getFP());
+    } else {
+      return new X86Frame(guesser.getSP(), guesser.getFP(), guesser.getPC());
+    }
+  }
+
+  public    void printThreadIDOn(Address addr, PrintStream tty) {
+    tty.print(getThreadProxy(addr));
+  }
+
+  public    void printInfoOn(Address threadAddr, PrintStream tty) {
+    tty.print("Thread id: ");
+    printThreadIDOn(threadAddr, tty);
+//    tty.println("\nPostJavaState: " + getPostJavaState(threadAddr));
+  }
+
+  public    Address getLastSP(Address addr) {
+    ThreadProxy t = getThreadProxy(addr);
+    AMD64ThreadContext context = (AMD64ThreadContext) t.getContext();
+    return context.getRegisterAsAddress(AMD64ThreadContext.RSP);
+  }
+
+  public    ThreadProxy getThreadProxy(Address addr) {
+    // Addr is the address of the JavaThread.
+    // Fetch the OSThread (for now and for simplicity, not making a
+    // separate "OSThread" class in this package)
+    Address osThreadAddr = osThreadField.getValue(addr);
+    // Get the address of the _thread_id from the OSThread
+    Address threadIdAddr = osThreadAddr.addOffsetTo(osThreadThreadIDField.getOffset());
+
+    JVMDebugger debugger = VM.getVM().getDebugger();
+    return debugger.getThreadForIdentifierAddress(threadIdAddr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdSignals.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdSignals.java
new file mode 100644
index 0000000..703a097
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdSignals.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.runtime.bsd_x86;
+
+public class BsdSignals {
+  private static String[] signalNames = {
+    "",           /* No signal 0 */
+    "SIGHUP",     /* hangup */
+    "SIGINT",     /* interrupt */
+    "SIGQUIT",    /* quit */
+    "SIGILL",     /* illegal instr. (not reset when caught) */
+    "SIGTRAP",    /* trace trap (not reset when caught) */
+    "SIGABRT",    /* abort() */
+    "SIGEMT",     /* EMT instruction */
+    "SIGFPE",     /* floating point exception */
+    "SIGKILL",    /* kill (cannot be caught or ignored) */
+    "SIGBUS",     /* bus error */
+    "SIGSEGV",    /* segmentation violation */
+    "SIGSYS",     /* non-existent system call invoked */
+    "SIGPIPE",    /* write on a pipe with no one to read it */
+    "SIGALRM",    /* alarm clock */
+    "SIGTERM",    /* software termination signal from kill */
+    "SIGURG",     /* urgent condition on IO channel */
+    "SIGSTOP",    /* sendable stop signal not from tty */
+    "SIGTSTP",    /* stop signal from tty */
+    "SIGCONT",    /* continue a stopped process */
+    "SIGCHLD",    /* to parent on child stop or exit */
+    "SIGTTIN",    /* to readers pgrp upon background tty read */
+    "SIGTTOU",    /* like TTIN if (tp->t_local&LTOSTOP) */
+    "SIGIO",      /* input/output possible signal */
+    "SIGXCPU",    /* exceeded CPU time limit */
+    "SIGXFSZ",    /* exceeded file size limit */
+    "SIGVTALRM",  /* virtual time alarm */
+    "SIGPROF",    /* profiling time alarm */
+    "SIGWINCH",   /* window size changes */
+    "SIGINFO",    /* information request */
+    "SIGUSR1",    /* user defined signal 1 */
+    "SIGUSR2"     /* user defined signal 2 */
+  };
+
+  public static String getSignalName(int sigNum) {
+    if ((sigNum <= 0) || (sigNum >= signalNames.length)) {
+      // Probably best to fail in a non-destructive way
+      return "<Error: Illegal signal number " + sigNum + ">";
+    }
+    return signalNames[sigNum];
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdX86JavaThreadPDAccess.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdX86JavaThreadPDAccess.java
new file mode 100644
index 0000000..a32f0be
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdX86JavaThreadPDAccess.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.runtime.bsd_x86;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.debugger.x86.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.runtime.x86.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+public class BsdX86JavaThreadPDAccess implements JavaThreadPDAccess {
+  private static AddressField  lastJavaFPField;
+  private static AddressField  osThreadField;
+
+  // Field from OSThread
+  private static CIntegerField osThreadThreadIDField;
+
+  // This is currently unneeded but is being kept in case we change
+  // the currentFrameGuess algorithm
+  private static final long GUESS_SCAN_RANGE = 128 * 1024;
+
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) {
+    Type type = db.lookupType("JavaThread");
+    osThreadField           = type.getAddressField("_osthread");
+
+    Type anchorType = db.lookupType("JavaFrameAnchor");
+    lastJavaFPField         = anchorType.getAddressField("_last_Java_fp");
+
+    Type osThreadType = db.lookupType("OSThread");
+    osThreadThreadIDField   = osThreadType.getCIntegerField("_thread_id");
+  }
+
+  public    Address getLastJavaFP(Address addr) {
+    return lastJavaFPField.getValue(addr.addOffsetTo(sun.jvm.hotspot.runtime.JavaThread.getAnchorField().getOffset()));
+  }
+
+  public    Address getLastJavaPC(Address addr) {
+    return null;
+  }
+
+  public    Address getBaseOfStackPointer(Address addr) {
+    return null;
+  }
+
+  public    Frame getLastFramePD(JavaThread thread, Address addr) {
+    Address fp = thread.getLastJavaFP();
+    if (fp == null) {
+      return null; // no information
+    }
+    return new X86Frame(thread.getLastJavaSP(), fp);
+  }
+
+  public    RegisterMap newRegisterMap(JavaThread thread, boolean updateMap) {
+    return new X86RegisterMap(thread, updateMap);
+  }
+
+  public    Frame getCurrentFrameGuess(JavaThread thread, Address addr) {
+    ThreadProxy t = getThreadProxy(addr);
+    X86ThreadContext context = (X86ThreadContext) t.getContext();
+    X86CurrentFrameGuess guesser = new X86CurrentFrameGuess(context, thread);
+    if (!guesser.run(GUESS_SCAN_RANGE)) {
+      return null;
+    }
+    if (guesser.getPC() == null) {
+      return new X86Frame(guesser.getSP(), guesser.getFP());
+    } else {
+      return new X86Frame(guesser.getSP(), guesser.getFP(), guesser.getPC());
+    }
+  }
+
+  public    void printThreadIDOn(Address addr, PrintStream tty) {
+    tty.print(getThreadProxy(addr));
+  }
+
+  public    void printInfoOn(Address threadAddr, PrintStream tty) {
+    tty.print("Thread id: ");
+    printThreadIDOn(threadAddr, tty);
+//    tty.println("\nPostJavaState: " + getPostJavaState(threadAddr));
+  }
+
+  public    Address getLastSP(Address addr) {
+    ThreadProxy t = getThreadProxy(addr);
+    X86ThreadContext context = (X86ThreadContext) t.getContext();
+    return context.getRegisterAsAddress(X86ThreadContext.ESP);
+  }
+
+  public    ThreadProxy getThreadProxy(Address addr) {
+    // Addr is the address of the JavaThread.
+    // Fetch the OSThread (for now and for simplicity, not making a
+    // separate "OSThread" class in this package)
+    Address osThreadAddr = osThreadField.getValue(addr);
+    // Get the address of the _thread_id from the OSThread
+    Address threadIdAddr = osThreadAddr.addOffsetTo(osThreadThreadIDField.getOffset());
+
+    JVMDebugger debugger = VM.getVM().getDebugger();
+    return debugger.getThreadForIdentifierAddress(threadIdAddr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_amd64/LinuxAMD64JavaThreadPDAccess.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_amd64/LinuxAMD64JavaThreadPDAccess.java
index ea025da..89fcb12 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_amd64/LinuxAMD64JavaThreadPDAccess.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_amd64/LinuxAMD64JavaThreadPDAccess.java
@@ -30,6 +30,7 @@ import sun.jvm.hotspot.debugger.*;
 import sun.jvm.hotspot.debugger.amd64.*;
 import sun.jvm.hotspot.runtime.*;
 import sun.jvm.hotspot.runtime.amd64.*;
+import sun.jvm.hotspot.runtime.x86.*;
 import sun.jvm.hotspot.types.*;
 import sun.jvm.hotspot.utilities.*;
 
@@ -80,11 +81,11 @@ public class LinuxAMD64JavaThreadPDAccess implements JavaThreadPDAccess {
     if (fp == null) {
       return null; // no information
     }
-    return new AMD64Frame(thread.getLastJavaSP(), fp);
+    return new X86Frame(thread.getLastJavaSP(), fp);
   }
 
   public    RegisterMap newRegisterMap(JavaThread thread, boolean updateMap) {
-    return new AMD64RegisterMap(thread, updateMap);
+    return new X86RegisterMap(thread, updateMap);
   }
 
   public    Frame getCurrentFrameGuess(JavaThread thread, Address addr) {
@@ -95,9 +96,9 @@ public class LinuxAMD64JavaThreadPDAccess implements JavaThreadPDAccess {
       return null;
     }
     if (guesser.getPC() == null) {
-      return new AMD64Frame(guesser.getSP(), guesser.getFP());
+      return new X86Frame(guesser.getSP(), guesser.getFP());
     } else {
-      return new AMD64Frame(guesser.getSP(), guesser.getFP(), guesser.getPC());
+      return new X86Frame(guesser.getSP(), guesser.getFP(), guesser.getPC());
     }
   }
 
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/solaris_amd64/SolarisAMD64JavaThreadPDAccess.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/solaris_amd64/SolarisAMD64JavaThreadPDAccess.java
index d3c307c..6891040 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/solaris_amd64/SolarisAMD64JavaThreadPDAccess.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/solaris_amd64/SolarisAMD64JavaThreadPDAccess.java
@@ -30,6 +30,7 @@ import sun.jvm.hotspot.debugger.*;
 import sun.jvm.hotspot.debugger.amd64.*;
 import sun.jvm.hotspot.runtime.*;
 import sun.jvm.hotspot.runtime.amd64.*;
+import sun.jvm.hotspot.runtime.x86.*;
 import sun.jvm.hotspot.types.*;
 import sun.jvm.hotspot.utilities.*;
 
@@ -84,14 +85,14 @@ public class SolarisAMD64JavaThreadPDAccess implements JavaThreadPDAccess {
         }
         Address pc =  thread.getLastJavaPC();
         if ( pc != null ) {
-            return new AMD64Frame(thread.getLastJavaSP(), fp, pc);
+            return new X86Frame(thread.getLastJavaSP(), fp, pc);
         } else {
-            return new AMD64Frame(thread.getLastJavaSP(), fp);
+            return new X86Frame(thread.getLastJavaSP(), fp);
         }
     }
 
     public RegisterMap newRegisterMap(JavaThread thread, boolean updateMap) {
-        return new AMD64RegisterMap(thread, updateMap);
+        return new X86RegisterMap(thread, updateMap);
     }
 
     public Frame getCurrentFrameGuess(JavaThread thread, Address addr) {
@@ -102,9 +103,9 @@ public class SolarisAMD64JavaThreadPDAccess implements JavaThreadPDAccess {
             return null;
         }
         if (guesser.getPC() == null) {
-            return new AMD64Frame(guesser.getSP(), guesser.getFP());
+            return new X86Frame(guesser.getSP(), guesser.getFP());
         } else {
-            return new AMD64Frame(guesser.getSP(), guesser.getFP(), guesser.getPC());
+            return new X86Frame(guesser.getSP(), guesser.getFP(), guesser.getPC());
         }
     }
 
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCFrame.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCFrame.java
index 5523f35..3d55dab 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCFrame.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCFrame.java
@@ -236,7 +236,7 @@ public class SPARCFrame extends Frame {
       CodeBlob cb = VM.getVM().getCodeCache().findBlob(pc);
       if (cb != null && cb.isJavaMethod()) {
         NMethod nm = (NMethod) cb;
-        if (pc.equals(nm.deoptBegin())) {
+        if (pc.equals(nm.deoptHandlerBegin())) {
           // adjust pc if frame is deoptimized.
           pc = this.getUnextendedSP().getAddressAt(nm.origPCOffset());
           deoptimized = true;
@@ -559,49 +559,46 @@ public class SPARCFrame extends Frame {
       }
     }
 
-    if (!VM.getVM().isCore()) {
-      // Note:  The version of this operation on any platform with callee-save
-      //        registers must update the register map (if not null).
-      //        In order to do this correctly, the various subtypes of
-      //        of frame (interpreted, compiled, glue, native),
-      //        must be distinguished.  There is no need on SPARC for
-      //        such distinctions, because all callee-save registers are
-      //        preserved for all frames via SPARC-specific mechanisms.
-      //
-      //        *** HOWEVER, *** if and when we make any floating-point
-      //        registers callee-saved, then we will have to copy over
-      //        the RegisterMap update logic from the Intel code.
-
-
-      // The constructor of the sender must know whether this frame is interpreted so it can set the
-      // sender's _interpreter_sp_adjustment field.
-      if (VM.getVM().getInterpreter().contains(pc)) {
-        isInterpreted = true;
-        map.makeIntegerRegsUnsaved();
+    // Note:  The version of this operation on any platform with callee-save
+    //        registers must update the register map (if not null).
+    //        In order to do this correctly, the various subtypes of
+    //        of frame (interpreted, compiled, glue, native),
+    //        must be distinguished.  There is no need on SPARC for
+    //        such distinctions, because all callee-save registers are
+    //        preserved for all frames via SPARC-specific mechanisms.
+    //
+    //        *** HOWEVER, *** if and when we make any floating-point
+    //        registers callee-saved, then we will have to copy over
+    //        the RegisterMap update logic from the Intel code.
+
+    if (isRicochetFrame()) return senderForRicochetFrame(map);
+
+    // The constructor of the sender must know whether this frame is interpreted so it can set the
+    // sender's _interpreter_sp_adjustment field.
+    if (VM.getVM().getInterpreter().contains(pc)) {
+      isInterpreted = true;
+      map.makeIntegerRegsUnsaved();
+      map.shiftWindow(sp, youngerSP);
+    } else {
+      // Find a CodeBlob containing this frame's pc or elide the lookup and use the
+      // supplied blob which is already known to be associated with this frame.
+      cb = VM.getVM().getCodeCache().findBlob(pc);
+      if (cb != null) {
+        // Update the location of all implicitly saved registers
+        // as the address of these registers in the register save
+        // area (for %o registers we use the address of the %i
+        // register in the next younger frame)
         map.shiftWindow(sp, youngerSP);
-      } else {
-        // Find a CodeBlob containing this frame's pc or elide the lookup and use the
-        // supplied blob which is already known to be associated with this frame.
-        cb = VM.getVM().getCodeCache().findBlob(pc);
-        if (cb != null) {
-
-          if (cb.callerMustGCArguments(map.getThread())) {
+        if (map.getUpdateMap()) {
+          if (cb.callerMustGCArguments()) {
             map.setIncludeArgumentOops(true);
           }
-
-          // Update the location of all implicitly saved registers
-          // as the address of these registers in the register save
-          // area (for %o registers we use the address of the %i
-          // register in the next younger frame)
-          map.shiftWindow(sp, youngerSP);
-          if (map.getUpdateMap()) {
-            if (cb.getOopMaps() != null) {
-              OopMapSet.updateRegisterMap(this, cb, map, VM.getVM().isDebugging());
-            }
+          if (cb.getOopMaps() != null) {
+            OopMapSet.updateRegisterMap(this, cb, map, VM.getVM().isDebugging());
           }
         }
       }
-    } // #ifndef CORE
+    }
 
     return new SPARCFrame(biasSP(sp), biasSP(youngerSP), isInterpreted);
   }
@@ -948,6 +945,20 @@ public class SPARCFrame extends Frame {
   }
 
 
+  private Frame senderForRicochetFrame(SPARCRegisterMap map) {
+    if (DEBUG) {
+      System.out.println("senderForRicochetFrame");
+    }
+    //RicochetFrame* f = RicochetFrame::from_frame(fr);
+    // Cf. is_interpreted_frame path of frame::sender
+    Address youngerSP = getSP();
+    Address sp        = getSenderSP();
+    map.makeIntegerRegsUnsaved();
+    map.shiftWindow(sp, youngerSP);
+    boolean thisFrameAdjustedStack = true;  // I5_savedSP is live in this RF
+    return new SPARCFrame(sp, youngerSP, thisFrameAdjustedStack);
+  }
+
   private Frame senderForEntryFrame(RegisterMap regMap) {
     SPARCRegisterMap map = (SPARCRegisterMap) regMap;
 
@@ -965,10 +976,8 @@ public class SPARCFrame extends Frame {
     Address lastJavaPC = jcw.getLastJavaPC();
     map.clear();
 
-    if (!VM.getVM().isCore()) {
-      map.makeIntegerRegsUnsaved();
-      map.shiftWindow(lastJavaSP, null);
-    }
+    map.makeIntegerRegsUnsaved();
+    map.shiftWindow(lastJavaSP, null);
 
     if (Assert.ASSERTS_ENABLED) {
       Assert.that(map.getIncludeArgumentOops(), "should be set by clear");
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCRicochetFrame.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCRicochetFrame.java
new file mode 100644
index 0000000..57fa927
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/sparc/SPARCRicochetFrame.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.runtime.sparc;
+
+import java.util.*;
+import sun.jvm.hotspot.asm.sparc.SPARCRegister;
+import sun.jvm.hotspot.asm.sparc.SPARCRegisters;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+
+public class SPARCRicochetFrame {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private SPARCFrame frame;
+
+  private static void initialize(TypeDataBase db) {
+    // Type type = db.lookupType("MethodHandles::RicochetFrame");
+
+  }
+
+  static SPARCRicochetFrame fromFrame(SPARCFrame f) {
+    return new SPARCRicochetFrame(f);
+  }
+
+  private SPARCRicochetFrame(SPARCFrame f) {
+    frame = f;
+  }
+
+  private Address registerValue(SPARCRegister reg) {
+    return frame.getSP().addOffsetTo(reg.spOffsetInSavedWindow()).getAddressAt(0);
+  }
+
+  public Address savedArgsBase() {
+    return registerValue(SPARCRegisters.L4);
+  }
+  public Address exactSenderSP() {
+    return registerValue(SPARCRegisters.I5);
+  }
+  public Address senderLink() {
+    return frame.getSenderSP();
+  }
+  public Address senderPC() {
+    return frame.getSenderPC();
+  }
+  public Address extendedSenderSP() {
+    return savedArgsBase();
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/vmSymbols.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/vmSymbols.java
new file mode 100644
index 0000000..650f612
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/vmSymbols.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.runtime;
+
+import java.io.*;
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.memory.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+import sun.jvm.hotspot.utilities.*;
+
+
+public class vmSymbols {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static Address symbolsAddress;
+  private static int FIRST_SID;
+  private static int SID_LIMIT;
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type            = db.lookupType("vmSymbols");
+    symbolsAddress       = type.getAddressField("_symbols[0]").getStaticFieldAddress();
+    FIRST_SID            = db.lookupIntConstant("vmSymbols::FIRST_SID");
+    SID_LIMIT            = db.lookupIntConstant("vmSymbols::SID_LIMIT");
+  }
+
+  public static Symbol symbolAt(int id) {
+    if (id < FIRST_SID || id >= SID_LIMIT) throw new IndexOutOfBoundsException("bad SID " + id);
+    return Symbol.create(symbolsAddress.getAddressAt(id * VM.getVM().getAddressSize()));
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_amd64/Win32AMD64JavaThreadPDAccess.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_amd64/Win32AMD64JavaThreadPDAccess.java
index 76a686f..e18dd4f 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_amd64/Win32AMD64JavaThreadPDAccess.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_amd64/Win32AMD64JavaThreadPDAccess.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,10 +27,10 @@ package sun.jvm.hotspot.runtime.win32_amd64;
 import java.io.*;
 import java.util.*;
 import sun.jvm.hotspot.debugger.*;
-import sun.jvm.hotspot.debugger.win32.*;
 import sun.jvm.hotspot.debugger.amd64.*;
 import sun.jvm.hotspot.runtime.*;
 import sun.jvm.hotspot.runtime.amd64.*;
+import sun.jvm.hotspot.runtime.x86.*;
 import sun.jvm.hotspot.types.*;
 import sun.jvm.hotspot.utilities.*;
 
@@ -86,14 +86,14 @@ public class Win32AMD64JavaThreadPDAccess implements JavaThreadPDAccess {
     }
     Address pc =  thread.getLastJavaPC();
     if ( pc != null ) {
-      return new AMD64Frame(thread.getLastJavaSP(), fp, pc);
+      return new X86Frame(thread.getLastJavaSP(), fp, pc);
     } else {
-      return new AMD64Frame(thread.getLastJavaSP(), fp);
+      return new X86Frame(thread.getLastJavaSP(), fp);
     }
   }
 
   public RegisterMap newRegisterMap(JavaThread thread, boolean updateMap) {
-    return new AMD64RegisterMap(thread, updateMap);
+    return new X86RegisterMap(thread, updateMap);
   }
 
   public Frame getCurrentFrameGuess(JavaThread thread, Address addr) {
@@ -104,9 +104,9 @@ public class Win32AMD64JavaThreadPDAccess implements JavaThreadPDAccess {
       return null;
     }
     if (guesser.getPC() == null) {
-      return new AMD64Frame(guesser.getSP(), guesser.getFP());
+      return new X86Frame(guesser.getSP(), guesser.getFP());
     } else {
-      return new AMD64Frame(guesser.getSP(), guesser.getFP(), guesser.getPC());
+      return new X86Frame(guesser.getSP(), guesser.getFP(), guesser.getPC());
     }
   }
 
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_x86/Win32X86JavaThreadPDAccess.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_x86/Win32X86JavaThreadPDAccess.java
index 0a038e9..dff6615 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_x86/Win32X86JavaThreadPDAccess.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_x86/Win32X86JavaThreadPDAccess.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@ package sun.jvm.hotspot.runtime.win32_x86;
 import java.io.*;
 import java.util.*;
 import sun.jvm.hotspot.debugger.*;
-import sun.jvm.hotspot.debugger.win32.*;
 import sun.jvm.hotspot.debugger.x86.*;
 import sun.jvm.hotspot.runtime.*;
 import sun.jvm.hotspot.runtime.x86.*;
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86Frame.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86Frame.java
index f824218..41ef832 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86Frame.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86Frame.java
@@ -25,7 +25,6 @@
 package sun.jvm.hotspot.runtime.x86;
 
 import java.util.*;
-import sun.jvm.hotspot.asm.x86.*;
 import sun.jvm.hotspot.code.*;
 import sun.jvm.hotspot.compiler.*;
 import sun.jvm.hotspot.debugger.*;
@@ -62,11 +61,13 @@ public class X86Frame extends Frame {
   private static       int INTERPRETER_FRAME_MONITOR_BLOCK_BOTTOM_OFFSET;
 
   // Entry frames
-  private static final int ENTRY_FRAME_CALL_WRAPPER_OFFSET   =  2;
+  private static       int ENTRY_FRAME_CALL_WRAPPER_OFFSET;
 
   // Native frames
   private static final int NATIVE_FRAME_INITIAL_PARAM_OFFSET =  2;
 
+  private static VMReg rbp;
+
   static {
     VM.registerVMInitializedObserver(new Observer() {
         public void update(Observable o, Object data) {
@@ -76,19 +77,23 @@ public class X86Frame extends Frame {
   }
 
   private static synchronized void initialize(TypeDataBase db) {
-    if (VM.getVM().isCore()) {
-      INTERPRETER_FRAME_CACHE_OFFSET = INTERPRETER_FRAME_METHOD_OFFSET - 1;
-    } else {
-      INTERPRETER_FRAME_MDX_OFFSET   = INTERPRETER_FRAME_METHOD_OFFSET - 1;
-      INTERPRETER_FRAME_CACHE_OFFSET = INTERPRETER_FRAME_MDX_OFFSET - 1;
-    }
+    INTERPRETER_FRAME_MDX_OFFSET                  = INTERPRETER_FRAME_METHOD_OFFSET - 1;
+    INTERPRETER_FRAME_CACHE_OFFSET                = INTERPRETER_FRAME_MDX_OFFSET - 1;
     INTERPRETER_FRAME_LOCALS_OFFSET               = INTERPRETER_FRAME_CACHE_OFFSET - 1;
     INTERPRETER_FRAME_BCX_OFFSET                  = INTERPRETER_FRAME_LOCALS_OFFSET - 1;
     INTERPRETER_FRAME_INITIAL_SP_OFFSET           = INTERPRETER_FRAME_BCX_OFFSET - 1;
     INTERPRETER_FRAME_MONITOR_BLOCK_TOP_OFFSET    = INTERPRETER_FRAME_INITIAL_SP_OFFSET;
     INTERPRETER_FRAME_MONITOR_BLOCK_BOTTOM_OFFSET = INTERPRETER_FRAME_INITIAL_SP_OFFSET;
+
+    ENTRY_FRAME_CALL_WRAPPER_OFFSET = db.lookupIntConstant("frame::entry_frame_call_wrapper_offset");
+    if (VM.getVM().getAddressSize() == 4) {
+      rbp = new VMReg(5);
+    } else {
+      rbp = new VMReg(5 << 1);
+    }
   }
 
+
   // an additional field beyond sp and pc:
   Address raw_fp; // frame pointer
   private Address raw_unextendedSP;
@@ -102,7 +107,7 @@ public class X86Frame extends Frame {
       CodeBlob cb = VM.getVM().getCodeCache().findBlob(pc);
       if (cb != null && cb.isJavaMethod()) {
         NMethod nm = (NMethod) cb;
-        if (pc.equals(nm.deoptBegin())) {
+        if (pc.equals(nm.deoptHandlerBegin())) {
           if (Assert.ASSERTS_ENABLED) {
             Assert.that(this.getUnextendedSP() != null, "null SP in Java frame");
           }
@@ -119,6 +124,7 @@ public class X86Frame extends Frame {
     this.raw_unextendedSP = raw_sp;
     this.raw_fp = raw_fp;
     this.pc = pc;
+    adjustUnextendedSP();
 
     // Frame must be fully constructed before this call
     adjustForDeopt();
@@ -134,6 +140,7 @@ public class X86Frame extends Frame {
     this.raw_unextendedSP = raw_sp;
     this.raw_fp = raw_fp;
     this.pc = raw_sp.getAddressAt(-1 * VM.getVM().getAddressSize());
+    adjustUnextendedSP();
 
     // Frame must be fully constructed before this call
     adjustForDeopt();
@@ -144,24 +151,18 @@ public class X86Frame extends Frame {
     }
   }
 
-  // This constructor should really take the unextended SP as an arg
-  // but then the constructor is ambiguous with constructor that takes
-  // a PC so take an int and convert it.
-  public X86Frame(Address raw_sp, Address raw_fp, long extension) {
+  public X86Frame(Address raw_sp, Address raw_unextendedSp, Address raw_fp, Address pc) {
     this.raw_sp = raw_sp;
-    if (raw_sp == null) {
-      this.raw_unextendedSP = null;
-    } else {
-      this.raw_unextendedSP = raw_sp.addOffsetTo(extension);
-    }
+    this.raw_unextendedSP = raw_unextendedSp;
     this.raw_fp = raw_fp;
-    this.pc = raw_sp.getAddressAt(-1 * VM.getVM().getAddressSize());
+    this.pc = pc;
+    adjustUnextendedSP();
 
     // Frame must be fully constructed before this call
     adjustForDeopt();
 
     if (DEBUG) {
-      System.out.println("X86Frame(sp, fp): " + this);
+      System.out.println("X86Frame(sp, unextendedSP, fp, pc): " + this);
       dumpStack();
     }
 
@@ -172,7 +173,6 @@ public class X86Frame extends Frame {
     frame.raw_sp = raw_sp;
     frame.raw_unextendedSP = raw_unextendedSP;
     frame.raw_fp = raw_fp;
-    frame.raw_fp = raw_fp;
     frame.pc = pc;
     frame.deoptimized = deoptimized;
     return frame;
@@ -269,19 +269,18 @@ public class X86Frame extends Frame {
 
     if (isEntryFrame())       return senderForEntryFrame(map);
     if (isInterpretedFrame()) return senderForInterpreterFrame(map);
+    if (isRicochetFrame())    return senderForRicochetFrame(map);
 
-    if (!VM.getVM().isCore()) {
-      if(cb == null) {
-        cb = VM.getVM().getCodeCache().findBlob(getPC());
-      } else {
-        if (Assert.ASSERTS_ENABLED) {
-          Assert.that(cb.equals(VM.getVM().getCodeCache().findBlob(getPC())), "Must be the same");
-        }
+    if(cb == null) {
+      cb = VM.getVM().getCodeCache().findBlob(getPC());
+    } else {
+      if (Assert.ASSERTS_ENABLED) {
+        Assert.that(cb.equals(VM.getVM().getCodeCache().findBlob(getPC())), "Must be the same");
       }
+    }
 
-      if (cb != null) {
-         return senderForCompiledFrame(map, cb);
-      }
+    if (cb != null) {
+      return senderForCompiledFrame(map, cb);
     }
 
     // Must be native-compiled frame, i.e. the marshaling code for native
@@ -289,7 +288,20 @@ public class X86Frame extends Frame {
     return new X86Frame(getSenderSP(), getLink(), getSenderPC());
   }
 
+  private Frame senderForRicochetFrame(X86RegisterMap map) {
+    if (DEBUG) {
+      System.out.println("senderForRicochetFrame");
+    }
+    X86RicochetFrame f = X86RicochetFrame.fromFrame(this);
+    if (map.getUpdateMap())
+      updateMapWithSavedLink(map, f.senderLinkAddress());
+    return new X86Frame(f.extendedSenderSP(), f.exactSenderSP(), f.senderLink(), f.senderPC());
+  }
+
   private Frame senderForEntryFrame(X86RegisterMap map) {
+    if (DEBUG) {
+      System.out.println("senderForEntryFrame");
+    }
     if (Assert.ASSERTS_ENABLED) {
       Assert.that(map != null, "map must be set");
     }
@@ -313,7 +325,37 @@ public class X86Frame extends Frame {
     return fr;
   }
 
+  //------------------------------------------------------------------------------
+  // frame::adjust_unextended_sp
+  private void adjustUnextendedSP() {
+    // If we are returning to a compiled MethodHandle call site, the
+    // saved_fp will in fact be a saved value of the unextended SP.  The
+    // simplest way to tell whether we are returning to such a call site
+    // is as follows:
+
+    CodeBlob cb = cb();
+    NMethod senderNm = (cb == null) ? null : cb.asNMethodOrNull();
+    if (senderNm != null) {
+      // If the sender PC is a deoptimization point, get the original
+      // PC.  For MethodHandle call site the unextended_sp is stored in
+      // saved_fp.
+      if (senderNm.isDeoptMhEntry(getPC())) {
+        // DEBUG_ONLY(verifyDeoptMhOriginalPc(senderNm, getFP()));
+        raw_unextendedSP = getFP();
+      }
+      else if (senderNm.isDeoptEntry(getPC())) {
+        // DEBUG_ONLY(verifyDeoptOriginalPc(senderNm, raw_unextendedSp));
+      }
+      else if (senderNm.isMethodHandleReturn(getPC())) {
+        raw_unextendedSP = getFP();
+      }
+    }
+  }
+
   private Frame senderForInterpreterFrame(X86RegisterMap map) {
+    if (DEBUG) {
+      System.out.println("senderForInterpreterFrame");
+    }
     Address unextendedSP = addressOfStackSlot(INTERPRETER_FRAME_SENDER_SP_OFFSET).getAddressAt(0);
     Address sp = addressOfStackSlot(SENDER_SP_OFFSET);
     // We do not need to update the callee-save register mapping because above
@@ -323,10 +365,21 @@ public class X86Frame extends Frame {
     // However c2 no longer uses callee save register for java calls so there
     // are no callee register to find.
 
-    return new X86Frame(sp, getLink(), unextendedSP.minus(sp));
+    if (map.getUpdateMap())
+      updateMapWithSavedLink(map, addressOfStackSlot(LINK_OFFSET));
+
+    return new X86Frame(sp, unextendedSP, getLink(), getSenderPC());
+  }
+
+  private void updateMapWithSavedLink(RegisterMap map, Address savedFPAddr) {
+    map.setLocation(rbp, savedFPAddr);
   }
 
   private Frame senderForCompiledFrame(X86RegisterMap map, CodeBlob cb) {
+    if (DEBUG) {
+      System.out.println("senderForCompiledFrame");
+    }
+
     //
     // NOTE: some of this code is (unfortunately) duplicated in X86CurrentFrameGuess
     //
@@ -336,41 +389,35 @@ public class X86Frame extends Frame {
     }
 
     // frame owned by optimizing compiler
-    Address        sender_sp = null;
-
-    if (VM.getVM().isClientCompiler()) {
-      sender_sp        = addressOfStackSlot(SENDER_SP_OFFSET);
-    } else {
-      if (Assert.ASSERTS_ENABLED) {
-        Assert.that(cb.getFrameSize() >= 0, "Compiled by Compiler1: do not use");
-      }
-      sender_sp = getUnextendedSP().addOffsetTo(cb.getFrameSize());
+    if (Assert.ASSERTS_ENABLED) {
+        Assert.that(cb.getFrameSize() >= 0, "must have non-zero frame size");
     }
+    Address senderSP = getUnextendedSP().addOffsetTo(cb.getFrameSize());
 
     // On Intel the return_address is always the word on the stack
-    Address sender_pc = sender_sp.getAddressAt(-1 * VM.getVM().getAddressSize());
+    Address senderPC = senderSP.getAddressAt(-1 * VM.getVM().getAddressSize());
 
-    if (map.getUpdateMap() && cb.getOopMaps() != null) {
-      OopMapSet.updateRegisterMap(this, cb, map, true);
-    }
+    // This is the saved value of EBP which may or may not really be an FP.
+    // It is only an FP if the sender is an interpreter frame (or C1?).
+    Address savedFPAddr = senderSP.addOffsetTo(- SENDER_SP_OFFSET * VM.getVM().getAddressSize());
 
-    if (VM.getVM().isClientCompiler()) {
-      // Move this here for C1 and collecting oops in arguments (According to Rene)
-      map.setIncludeArgumentOops(cb.callerMustGCArguments(map.getThread()));
-    }
+    if (map.getUpdateMap()) {
+      // Tell GC to use argument oopmaps for some runtime stubs that need it.
+      // For C1, the runtime stub might not have oop maps, so set this flag
+      // outside of update_register_map.
+      map.setIncludeArgumentOops(cb.callerMustGCArguments());
 
-    Address saved_fp = null;
-    if (VM.getVM().isClientCompiler()) {
-      saved_fp = getFP().getAddressAt(0);
-    } else if (VM.getVM().isServerCompiler() &&
-               (VM.getVM().getInterpreter().contains(sender_pc) ||
-               VM.getVM().getStubRoutines().returnsToCallStub(sender_pc))) {
-      // C2 prologue saves EBP in the usual place.
-      // however only use it if the sender had link infomration in it.
-      saved_fp = sender_sp.getAddressAt(-2 * VM.getVM().getAddressSize());
+      if (cb.getOopMaps() != null) {
+        OopMapSet.updateRegisterMap(this, cb, map, true);
+      }
+
+      // Since the prolog does the save and restore of EBP there is no oopmap
+      // for it so we must fill in its location as if there was an oopmap entry
+      // since if our caller was compiled code there could be live jvm state in it.
+      updateMapWithSavedLink(map, savedFPAddr);
     }
 
-    return new X86Frame(sender_sp, saved_fp, sender_pc);
+    return new X86Frame(senderSP, savedFPAddr.getAddressAt(0), senderPC);
   }
 
   protected boolean hasSenderPD() {
@@ -403,14 +450,6 @@ public class X86Frame extends Frame {
 
   public Address getSenderSP()     { return addressOfStackSlot(SENDER_SP_OFFSET); }
 
-  public Address compiledArgumentToLocationPD(VMReg reg, RegisterMap regMap, int argSize) {
-    if (VM.getVM().isCore() || VM.getVM().isClientCompiler()) {
-      throw new RuntimeException("Should not reach here");
-    }
-
-    return oopMapRegToLocation(reg, regMap);
-  }
-
   public Address addressOfInterpreterFrameLocals() {
     return addressOfStackSlot(INTERPRETER_FRAME_LOCALS_OFFSET);
   }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86RicochetFrame.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86RicochetFrame.java
new file mode 100644
index 0000000..5d73ac9
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86RicochetFrame.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+package sun.jvm.hotspot.runtime.x86;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.types.*;
+
+public class X86RicochetFrame extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static void initialize(TypeDataBase db) {
+    Type type = db.lookupType("MethodHandles::RicochetFrame");
+
+    senderLinkField    = type.getAddressField("_sender_link");
+    savedArgsBaseField = type.getAddressField("_saved_args_base");
+    exactSenderSPField = type.getAddressField("_exact_sender_sp");
+    senderPCField      = type.getAddressField("_sender_pc");
+  }
+
+  private static AddressField senderLinkField;
+  private static AddressField savedArgsBaseField;
+  private static AddressField exactSenderSPField;
+  private static AddressField senderPCField;
+
+  static X86RicochetFrame fromFrame(X86Frame f) {
+    return new X86RicochetFrame(f.getFP().addOffsetTo(- senderLinkField.getOffset()));
+  }
+
+  private X86RicochetFrame(Address addr) {
+    super(addr);
+  }
+
+  public Address senderLink() {
+    return senderLinkField.getValue(addr);
+  }
+  public Address senderLinkAddress() {
+    return addr.addOffsetTo(senderLinkField.getOffset());
+  }
+  public Address savedArgsBase() {
+    return savedArgsBaseField.getValue(addr);
+  }
+  public Address extendedSenderSP() {
+    return savedArgsBase();
+  }
+  public Address exactSenderSP() {
+    return exactSenderSPField.getValue(addr);
+  }
+  public Address senderPC() {
+    return senderPCField.getValue(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassDump.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassDump.java
index efa37e6..34ccc10 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassDump.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassDump.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,9 @@
 package sun.jvm.hotspot.tools.jcore;
 
 import java.io.*;
+import java.util.jar.JarOutputStream;
+import java.util.jar.JarEntry;
+import java.util.jar.Manifest;
 import sun.jvm.hotspot.memory.*;
 import sun.jvm.hotspot.oops.*;
 import sun.jvm.hotspot.debugger.*;
@@ -34,26 +37,32 @@ import sun.jvm.hotspot.tools.*;
 public class ClassDump extends Tool {
     private ClassFilter classFilter;
     private String      outputDirectory;
+    private JarOutputStream jarStream;
 
-    public void run() {
-        // Ready to go with the database...
-        try {
-
-            // load class filters
+    public void setClassFilter(ClassFilter cf) {
+        classFilter = cf;
+    }
 
-            String filterClassName = System.getProperty("sun.jvm.hotspot.tools.jcore.filter");
-            if (filterClassName != null) {
-                try {
-                    Class filterClass = Class.forName(filterClassName);
-                    classFilter = (ClassFilter) filterClass.newInstance();
-                } catch(Exception exp) {
-                    System.err.println("Warning: Can not create class filter!");
-                }
+    public void setOutputDirectory(String od) {
+        outputDirectory = od;
+        if (jarStream != null) {
+            try {
+                jarStream.close();
+            } catch (IOException ioe) {
+                ioe.printStackTrace();
             }
+        }
+        jarStream = null;
+    }
 
-            outputDirectory = System.getProperty("sun.jvm.hotspot.tools.jcore.outputDir");
-            if (outputDirectory == null)
-                outputDirectory = ".";
+    public void setJarOutput(String jarFileName) throws IOException {
+        jarStream = new JarOutputStream(new FileOutputStream(jarFileName), new Manifest());
+        outputDirectory = null;
+    }
+
+    public void run() {
+        // Ready to go with the database...
+        try {
 
             // walk through the system dictionary
             SystemDictionary dict = VM.getVM().getSystemDictionary();
@@ -75,6 +84,14 @@ public class ClassDump extends Tool {
                                + Long.toHexString(e.getAddress()));
             e.printStackTrace();
         }
+        if (jarStream != null) {
+            try {
+                jarStream.close();
+            } catch (IOException ioe) {
+                ioe.printStackTrace();
+            }
+            jarStream = null;
+        }
     }
 
     public String getName() {
@@ -88,26 +105,33 @@ public class ClassDump extends Tool {
 
         String klassName = kls.getName().asString();
         klassName = klassName.replace('/', File.separatorChar);
-        int index = klassName.lastIndexOf(File.separatorChar);
-        File dir = null;
-        if (index != -1) {
-            String dirName = klassName.substring(0, index);
-            dir =  new File(outputDirectory,  dirName);
-        } else {
-            dir = new File(outputDirectory);
-        }
-
-        dir.mkdirs();
-        File f = new File(dir, klassName.substring(klassName.lastIndexOf(File.separatorChar) + 1)
-                          + ".class");
         try {
-            f.createNewFile();
-            OutputStream os = new BufferedOutputStream(new FileOutputStream(f));
+            OutputStream os = null;
+            if (jarStream != null) {
+                jarStream.putNextEntry(new JarEntry(klassName + ".class"));
+                os = jarStream;
+            } else {
+                int index = klassName.lastIndexOf(File.separatorChar);
+                File dir = null;
+                if (index != -1) {
+                    String dirName = klassName.substring(0, index);
+                    dir = new File(outputDirectory,  dirName);
+                } else {
+                    dir = new File(outputDirectory);
+                }
+
+                dir.mkdirs();
+                File f = new File(dir, klassName.substring(index + 1) + ".class");
+                f.createNewFile();
+                os = new BufferedOutputStream(new FileOutputStream(f));
+            }
             try {
                 ClassWriter cw = new ClassWriter(kls, os);
                 cw.write();
             } finally {
-                os.close();
+                if (os != jarStream) {
+                    os.close();
+                }
             }
         } catch(IOException exp) {
             exp.printStackTrace();
@@ -115,7 +139,26 @@ public class ClassDump extends Tool {
     }
 
     public static void main(String[] args) {
+        // load class filters
+        ClassFilter classFilter = null;
+        String filterClassName = System.getProperty("sun.jvm.hotspot.tools.jcore.filter");
+        if (filterClassName != null) {
+            try {
+                Class filterClass = Class.forName(filterClassName);
+                classFilter = (ClassFilter) filterClass.newInstance();
+            } catch(Exception exp) {
+                System.err.println("Warning: Can not create class filter!");
+            }
+        }
+
+        String outputDirectory = System.getProperty("sun.jvm.hotspot.tools.jcore.outputDir");
+        if (outputDirectory == null)
+            outputDirectory = ".";
+
+
         ClassDump cd = new ClassDump();
+        cd.setClassFilter(classFilter);
+        cd.setOutputDirectory(outputDirectory);
         cd.start(args);
         cd.stop();
     }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java
index 91739ef..f4e3d7c 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java
@@ -379,23 +379,21 @@ public class ClassWriter implements /* imports */ ClassConstants
     }
 
     protected void writeFields() throws IOException {
-        TypeArray fields = klass.getFields();
-        final int length = (int) fields.getLength();
+        final int length = klass.getJavaFieldsCount();
 
         // write number of fields
-        dos.writeShort((short) (length / InstanceKlass.NEXT_OFFSET) );
+        dos.writeShort((short) length);
 
-        if (DEBUG) debugMessage("number of fields = "
-                                + length/InstanceKlass.NEXT_OFFSET);
+        if (DEBUG) debugMessage("number of fields = " + length);
 
-        for (int index = 0; index < length; index += InstanceKlass.NEXT_OFFSET) {
-            short accessFlags    = fields.getShortAt(index + InstanceKlass.ACCESS_FLAGS_OFFSET);
+        for (int index = 0; index < length; index++) {
+            short accessFlags    = klass.getFieldAccessFlags(index);
             dos.writeShort(accessFlags & (short) JVM_RECOGNIZED_FIELD_MODIFIERS);
 
-            short nameIndex    = fields.getShortAt(index + InstanceKlass.NAME_INDEX_OFFSET);
+            short nameIndex    = klass.getFieldNameIndex(index);
             dos.writeShort(nameIndex);
 
-            short signatureIndex = fields.getShortAt(index + InstanceKlass.SIGNATURE_INDEX_OFFSET);
+            short signatureIndex = klass.getFieldSignatureIndex(index);
             dos.writeShort(signatureIndex);
             if (DEBUG) debugMessage("\tfield name = " + nameIndex + ", signature = " + signatureIndex);
 
@@ -404,11 +402,11 @@ public class ClassWriter implements /* imports */ ClassConstants
             if (hasSyn)
                 fieldAttributeCount++;
 
-            short initvalIndex = fields.getShortAt(index + InstanceKlass.INITVAL_INDEX_OFFSET);
+            short initvalIndex = klass.getFieldInitialValueIndex(index);
             if (initvalIndex != 0)
                 fieldAttributeCount++;
 
-            short genSigIndex = fields.getShortAt(index + InstanceKlass.GENERIC_SIGNATURE_INDEX_OFFSET);
+            short genSigIndex = klass.getFieldGenericSignatureIndex(index);
             if (genSigIndex != 0)
                 fieldAttributeCount++;
 
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/soql/SOQL.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/soql/SOQL.java
index e197635..77537dd 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/soql/SOQL.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/soql/SOQL.java
@@ -150,16 +150,13 @@ public class SOQL extends Tool {
             }
 
             // list immediate fields only
-            TypeArray fields = klass.getFields();
-            int numFields = (int) fields.getLength();
+            int numFields = klass.getJavaFieldsCount();
             ConstantPool cp = klass.getConstants();
             out.println("fields");
             if (numFields != 0) {
-               for (int f = 0; f < numFields; f += InstanceKlass.NEXT_OFFSET) {
-                 int nameIndex = fields.getShortAt(f + InstanceKlass.NAME_INDEX_OFFSET);
-                 int sigIndex  = fields.getShortAt(f + InstanceKlass.SIGNATURE_INDEX_OFFSET);
-                 Symbol f_name = cp.getSymbolAt(nameIndex);
-                 Symbol f_sig  = cp.getSymbolAt(sigIndex);
+              for (int f = 0; f < numFields; f++){
+                 Symbol f_name = klass.getFieldName(f);
+                 Symbol f_sig  = klass.getFieldSignature(f);
                  StringBuffer sigBuf = new StringBuffer();
                  new SignatureConverter(f_sig, sigBuf).dispatchField();
                  out.print('\t');
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/TypeDataBase.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/TypeDataBase.java
index 76c145c..6eb9e37 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/TypeDataBase.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/TypeDataBase.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -120,6 +120,11 @@ public interface TypeDataBase {
       found. */
   public Type guessTypeForAddress(Address addr);
 
+  /** Helper routine for guessing the most derived type of a
+      polymorphic C++ object. Requires a baseType that must be virtual
+      so that lookup can be performed without false positives */
+  public Type findDynamicTypeForAddress(Address addr, Type baseType);
+
   /** Returns an Iterator over the Types in the database. */
   public Iterator getTypes();
 
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java
index 92b0301..f88335c 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -150,6 +150,19 @@ public class BasicTypeDataBase implements TypeDataBase {
     return VM.getVM().getOopSize();
   }
 
+  static HashMap typeToVtbl = new HashMap();
+
+  private Address vtblForType(Type type) {
+    Address vtblAddr = (Address)typeToVtbl.get(type);
+    if (vtblAddr == null) {
+      vtblAddr = vtblAccess.getVtblForType(type);
+      if (vtblAddr != null) {
+        typeToVtbl.put(type, vtblAddr);
+      }
+    }
+    return vtblAddr;
+  }
+
   public boolean addressTypeIsEqualToType(Address addr, Type type) {
     if (addr == null) {
       return false;
@@ -158,7 +171,7 @@ public class BasicTypeDataBase implements TypeDataBase {
     // This implementation should be suitably platform-independent; we
     // search nearby memory for the vtbl value of the given type.
 
-    Address vtblAddr = vtblAccess.getVtblForType(type);
+    Address vtblAddr = vtblForType(type);
 
     if (vtblAddr == null) {
       // Type was not polymorphic, or an error occurred during lookup
@@ -251,6 +264,78 @@ public class BasicTypeDataBase implements TypeDataBase {
     return false;
   }
 
+  public Type findDynamicTypeForAddress(Address addr, Type baseType) {
+    // This implementation should be suitably platform-independent; we
+    // search nearby memory for the vtbl value of the given type.
+
+    if (vtblForType(baseType) == null) {
+      // Type was not polymorphic which is an error of some sort
+      throw new InternalError(baseType + " does not appear to be polymorphic");
+    }
+
+    // This is a more restricted version of guessTypeForAddress since
+    // that function has some limitations since it doesn't really know
+    // where in the hierarchy a virtual type starts and just poking
+    // around in memory is likely to trip over some vtable address,
+    // resulting in false positives.  Eventually all uses should
+    // switch to this logic but in the interests of stability it will
+    // be separate for the moment.
+
+    // Assuming that the base type is truly the first polymorphic type
+    // then the vtbl for all subclasss should be at several defined
+    // locations so only those locations will be checked.  It's also
+    // required that the caller knows that the static type is at least
+    // baseType.  See the notes in guessTypeForAddress for the logic of
+    // the locations searched.
+
+    Address loc1 = addr.getAddressAt(0);
+    Address loc2 = null;
+    Address loc3 = null;
+    long offset2 = baseType.getSize();
+    // I don't think this should be misaligned under any
+    // circumstances, but I'm not sure (FIXME: also not sure which
+    // way to go here, up or down -- assuming down)
+    offset2 = offset2 - (offset2 % getAddressSize()) - getAddressSize();
+    if (offset2 > 0) {
+      loc2 = addr.getAddressAt(offset2);
+    }
+    long offset3 = offset2 - getAddressSize();
+    if (offset3 > 0) {
+      loc3 = addr.getAddressAt(offset3);
+    }
+
+    Type loc2Match = null;
+    Type loc3Match = null;
+    for (Iterator iter = getTypes(); iter.hasNext(); ) {
+      Type type = (Type) iter.next();
+      Type superClass = type;
+      while (superClass != baseType && superClass != null) {
+        superClass = superClass.getSuperclass();
+      }
+      if (superClass == null) continue;
+      Address vtblAddr = vtblForType(type);
+      if (vtblAddr == null) {
+        // This occurs sometimes for intermediate types that are never
+        // instantiated.
+        if (DEBUG) {
+          System.err.println("null vtbl for " + type);
+        }
+        continue;
+      }
+      // Prefer loc1 match
+      if (vtblAddr.equals(loc1)) return type;
+      if (loc2 != null && loc2Match == null && vtblAddr.equals(loc2)) {
+          loc2Match = type;
+      }
+      if (loc3 != null && loc3Match == null && vtblAddr.equals(loc3)) {
+          loc3Match = type;
+      }
+    }
+    if (loc2Match != null) return loc2Match;
+    if (loc3Match != null) return loc3Match;
+    return null;
+  }
+
   public Type guessTypeForAddress(Address addr) {
     for (Iterator iter = getTypes(); iter.hasNext(); ) {
       Type t = (Type) iter.next();
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java
index 1dd159a..8b4acae 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -88,7 +88,7 @@ public class CommandProcessorPanel extends JPanel {
                                     public void run() {
                                         beginUpdate();
                                         try {
-                                            commands.executeCommand(ln);
+                                            commands.executeCommand(ln, true);
                                             commands.printPrompt();
                                             Document d = editor.getDocument();
                                             try {
@@ -149,7 +149,7 @@ public class CommandProcessorPanel extends JPanel {
     public void clear() {
         EditableAtEndDocument d = (EditableAtEndDocument) editor.getDocument();
         d.clear();
-        commands.executeCommand("");
+        commands.executeCommand("", false);
         setMark();
         editor.requestFocus();
     }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java
index 8e3cbb7..210bed7 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java
@@ -1116,20 +1116,15 @@ public class HTMLGenerator implements /* imports */ ClassConstants {
                 InstanceKlass kls = (InstanceKlass) obj;
                 buf.append(" " + kls.getName().asString() + "={");
                 int flen = ov.fieldsSize();
-
-                TypeArray klfields = kls.getFields();
-                int klen = (int) klfields.getLength();
-
-                ConstantPool cp = kls.getConstants();
+                int klen = kls.getJavaFieldsCount();
                 int findex = 0;
-                for (int index = 0; index < klen; index += kls.NEXT_OFFSET) {
-                    int accsFlags = klfields.getShortAt(index + kls.ACCESS_FLAGS_OFFSET);
-                    int nameIndex = klfields.getShortAt(index + kls.NAME_INDEX_OFFSET);
+                for (int index = 0; index < klen; index++) {
+                    int accsFlags = kls.getFieldAccessFlags(index);
+                    Symbol f_name = kls.getFieldName(index);
                     AccessFlags access = new AccessFlags(accsFlags);
                     if (!access.isStatic()) {
                         ScopeValue svf = ov.getFieldAt(findex++);
                         String    fstr = scopeValueAsString(sd, svf);
-                        Symbol f_name  = cp.getSymbolAt(nameIndex);
                         buf.append(" [" + f_name.asString() + " :"+ index + "]=(#" + fstr + ")");
                     }
                 }
@@ -1819,13 +1814,11 @@ public class HTMLGenerator implements /* imports */ ClassConstants {
 
    protected String genHTMLListForFields(InstanceKlass klass) {
       Formatter buf = new Formatter(genHTML);
-      TypeArray fields = klass.getFields();
-      int numFields = (int) fields.getLength();
-      ConstantPool cp = klass.getConstants();
+      int numFields = klass.getJavaFieldsCount();
       if (numFields != 0) {
          buf.h3("Fields");
          buf.beginList();
-         for (int f = 0; f < numFields; f += InstanceKlass.NEXT_OFFSET) {
+         for (int f = 0; f < numFields; f++) {
            sun.jvm.hotspot.oops.Field field = klass.getFieldByIndex(f);
            String f_name = ((NamedFieldIdentifier)field.getID()).getName();
            Symbol f_sig  = field.getSignature();
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java
index 60a2172..df200bc 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,31 +24,33 @@
 
 package sun.jvm.hotspot.utilities;
 
+import sun.jvm.hotspot.runtime.BasicType;
+
 public class ConstantTag {
   // These replicated from the VM to save space
-  private static int JVM_CONSTANT_Utf8                    = 1;
-  private static int JVM_CONSTANT_Unicode                 = 2; // unused
-  private static int JVM_CONSTANT_Integer                 = 3;
-  private static int JVM_CONSTANT_Float                   = 4;
-  private static int JVM_CONSTANT_Long                    = 5;
-  private static int JVM_CONSTANT_Double                  = 6;
-  private static int JVM_CONSTANT_Class                   = 7;
-  private static int JVM_CONSTANT_String                  = 8;
-  private static int JVM_CONSTANT_Fieldref                = 9;
-  private static int JVM_CONSTANT_Methodref               = 10;
-  private static int JVM_CONSTANT_InterfaceMethodref      = 11;
-  private static int JVM_CONSTANT_NameAndType             = 12;
-  private static int JVM_CONSTANT_MethodHandle            = 15;  // JSR 292
-  private static int JVM_CONSTANT_MethodType              = 16;  // JSR 292
-  //      static int JVM_CONSTANT_(unused)                = 17;  // JSR 292 early drafts only
-  private static int JVM_CONSTANT_InvokeDynamic           = 18;  // JSR 292
-  private static int JVM_CONSTANT_Invalid                 = 0;   // For bad value initialization
-  private static int JVM_CONSTANT_UnresolvedClass         = 100; // Temporary tag until actual use
-  private static int JVM_CONSTANT_ClassIndex              = 101; // Temporary tag while constructing constant pool
-  private static int JVM_CONSTANT_UnresolvedString        = 102; // Temporary tag until actual use
-  private static int JVM_CONSTANT_StringIndex             = 103; // Temporary tag while constructing constant pool
-  private static int JVM_CONSTANT_UnresolvedClassInError  = 104; // Resolution failed
-  private static int JVM_CONSTANT_Object                  = 105; // Required for BoundMethodHandle arguments.
+  private static final int JVM_CONSTANT_Utf8                    = 1;
+  private static final int JVM_CONSTANT_Unicode                 = 2; // unused
+  private static final int JVM_CONSTANT_Integer                 = 3;
+  private static final int JVM_CONSTANT_Float                   = 4;
+  private static final int JVM_CONSTANT_Long                    = 5;
+  private static final int JVM_CONSTANT_Double                  = 6;
+  private static final int JVM_CONSTANT_Class                   = 7;
+  private static final int JVM_CONSTANT_String                  = 8;
+  private static final int JVM_CONSTANT_Fieldref                = 9;
+  private static final int JVM_CONSTANT_Methodref               = 10;
+  private static final int JVM_CONSTANT_InterfaceMethodref      = 11;
+  private static final int JVM_CONSTANT_NameAndType             = 12;
+  private static final int JVM_CONSTANT_MethodHandle            = 15;  // JSR 292
+  private static final int JVM_CONSTANT_MethodType              = 16;  // JSR 292
+  //      static final int JVM_CONSTANT_(unused)                = 17;  // JSR 292 early drafts only
+  private static final int JVM_CONSTANT_InvokeDynamic           = 18;  // JSR 292
+  private static final int JVM_CONSTANT_Invalid                 = 0;   // For bad value initialization
+  private static final int JVM_CONSTANT_UnresolvedClass         = 100; // Temporary tag until actual use
+  private static final int JVM_CONSTANT_ClassIndex              = 101; // Temporary tag while constructing constant pool
+  private static final int JVM_CONSTANT_UnresolvedString        = 102; // Temporary tag until actual use
+  private static final int JVM_CONSTANT_StringIndex             = 103; // Temporary tag while constructing constant pool
+  private static final int JVM_CONSTANT_UnresolvedClassInError  = 104; // Resolution failed
+  private static final int JVM_CONSTANT_Object                  = 105; // Required for BoundMethodHandle arguments.
 
   // JVM_CONSTANT_MethodHandle subtypes //FIXME: connect these to data structure
   private static int JVM_REF_getField                = 1;
@@ -99,4 +101,31 @@ public class ConstantTag {
   public boolean isKlassReference()   { return isKlassIndex() || isUnresolvedKlass(); }
   public boolean isFieldOrMethod()    { return isField() || isMethod() || isInterfaceMethod(); }
   public boolean isSymbol()           { return isUtf8(); }
+
+  public BasicType basicType() {
+    switch (tag) {
+    case JVM_CONSTANT_Integer :
+      return BasicType.T_INT;
+    case JVM_CONSTANT_Float :
+      return BasicType.T_FLOAT;
+    case JVM_CONSTANT_Long :
+      return BasicType.T_LONG;
+    case JVM_CONSTANT_Double :
+      return BasicType.T_DOUBLE;
+
+    case JVM_CONSTANT_Class :
+    case JVM_CONSTANT_String :
+    case JVM_CONSTANT_UnresolvedClass :
+    case JVM_CONSTANT_UnresolvedClassInError :
+    case JVM_CONSTANT_ClassIndex :
+    case JVM_CONSTANT_UnresolvedString :
+    case JVM_CONSTANT_StringIndex :
+    case JVM_CONSTANT_MethodHandle :
+    case JVM_CONSTANT_MethodType :
+    case JVM_CONSTANT_Object :
+      return BasicType.T_OBJECT;
+    default:
+      throw new InternalError("unexpected tag: " + tag);
+    }
+  }
 }
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/GenericGrowableArray.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/GenericGrowableArray.java
new file mode 100644
index 0000000..a0fcac8
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/GenericGrowableArray.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.utilities;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class GenericGrowableArray extends VMObject {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("GenericGrowableArray");
+    _arena_field = type.getAddressField("_arena");
+    _max_field = new CIntField(type.getCIntegerField("_max"), 0);
+    _len_field = new CIntField(type.getCIntegerField("_len"), 0);
+  }
+
+  private static AddressField _arena_field;
+  private static CIntField _max_field;
+  private static CIntField _len_field;
+
+  public int max() {
+    return (int)_max_field.getValue(getAddress());
+  }
+
+  public int length() {
+    return (int)_len_field.getValue(getAddress());
+  }
+
+  public GenericGrowableArray(Address addr) {
+    super(addr);
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/GrowableArray.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/GrowableArray.java
new file mode 100644
index 0000000..4a6f1af
--- /dev/null
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/GrowableArray.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+package sun.jvm.hotspot.utilities;
+
+import java.util.*;
+import sun.jvm.hotspot.debugger.*;
+import sun.jvm.hotspot.runtime.*;
+import sun.jvm.hotspot.oops.*;
+import sun.jvm.hotspot.types.*;
+
+public class GrowableArray<T> extends GenericGrowableArray {
+  static {
+    VM.registerVMInitializedObserver(new Observer() {
+        public void update(Observable o, Object data) {
+          initialize(VM.getVM().getTypeDataBase());
+        }
+      });
+  }
+
+  private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
+    Type type      = db.lookupType("GrowableArray<int>");
+    dataField = type.getAddressField("_data");
+  }
+
+  private static AddressField dataField;
+
+  private InstanceConstructor<T> virtualConstructor;
+
+  public static <S> GrowableArray<S> create(Address addr, InstanceConstructor<S> v) {
+    if (addr == null) return null;
+    return new GrowableArray<S>(addr, v);
+  }
+
+  public T at(int i) {
+    if (i < 0 || i >= length()) throw new ArrayIndexOutOfBoundsException(i);
+    Address data = dataField.getValue(getAddress());
+    Address addr = data.getAddressAt(i * VM.getVM().getAddressSize());
+    if (addr == null) return null;
+    return (T) virtualConstructor.instantiateWrapperFor(addr);
+  }
+
+  private GrowableArray(Address addr, InstanceConstructor<T> v) {
+    super(addr);
+    virtualConstructor = v;
+  }
+}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java
index 5e749b3..baec86b 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java
@@ -37,6 +37,14 @@ public class PlatformInfo {
       return "solaris";
     } else if (os.equals("Linux")) {
       return "linux";
+    } else if (os.equals("FreeBSD")) {
+      return "bsd";
+    } else if (os.equals("NetBSD")) {
+      return "bsd";
+    } else if (os.equals("OpenBSD")) {
+      return "bsd";
+    } else if (os.equals("Darwin")) {
+      return "bsd";
     } else if (os.startsWith("Windows")) {
       return "win32";
     } else {
diff --git a/hotspot/agent/test/jdi/sasanity.sh b/hotspot/agent/test/jdi/sasanity.sh
index 4b033fa..19580aa 100644
--- a/hotspot/agent/test/jdi/sasanity.sh
+++ b/hotspot/agent/test/jdi/sasanity.sh
@@ -76,5 +76,5 @@ while [ ! -s $tmp ] ; do
   sleep 2
 done
 
-$jdk/bin/java -showversion ${OPTIONS} -classpath $javacp SASanityChecker $pid
+$jdk/bin/java -showversion ${OPTIONS} -classpath $javacp $* SASanityChecker $pid
 kill -9 $pid
diff --git a/hotspot/make/Makefile b/hotspot/make/Makefile
index 64f9f0b..325ca89 100644
--- a/hotspot/make/Makefile
+++ b/hotspot/make/Makefile
@@ -323,28 +323,42 @@ endif
 ifneq ($(OSNAME),windows)
   ifeq ($(ZERO_BUILD), true)
     ifeq ($(SHARK_BUILD), true)
-$(EXPORT_JRE_LIB_ARCH_DIR)/%.so: $(SHARK_DIR)/%.so
+$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(SHARK_DIR)/%.$(LIBRARY_SUFFIX)
 	$(install-file)
-$(EXPORT_SERVER_DIR)/%.so:       $(SHARK_DIR)/%.so
+$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX):       $(SHARK_DIR)/%.$(LIBRARY_SUFFIX)
 	$(install-file)
     else
-$(EXPORT_JRE_LIB_ARCH_DIR)/%.so: $(ZERO_DIR)/%.so
+$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(ZERO_DIR)/%.$(LIBRARY_SUFFIX)
 	$(install-file)
-$(EXPORT_SERVER_DIR)/%.so:       $(ZERO_DIR)/%.so
+$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX):       $(ZERO_DIR)/%.$(LIBRARY_SUFFIX)
 	$(install-file)
     endif
   else
-$(EXPORT_JRE_LIB_ARCH_DIR)/%.so: $(C1_DIR)/%.so
+$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(C1_DIR)/%.$(LIBRARY_SUFFIX)
 	$(install-file)
-$(EXPORT_JRE_LIB_ARCH_DIR)/%.so: $(C2_DIR)/%.so
+$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(C2_DIR)/%.$(LIBRARY_SUFFIX)
 	$(install-file)
-$(EXPORT_CLIENT_DIR)/%.so:       $(C1_DIR)/%.so
+$(EXPORT_CLIENT_DIR)/%.$(LIBRARY_SUFFIX):       $(C1_DIR)/%.$(LIBRARY_SUFFIX)
 	$(install-file)
-$(EXPORT_CLIENT_DIR)/64/%.so:    $(C1_DIR)/%.so
+$(EXPORT_CLIENT_DIR)/64/%.$(LIBRARY_SUFFIX):    $(C1_DIR)/%.$(LIBRARY_SUFFIX)
 	$(install-file)
-$(EXPORT_SERVER_DIR)/%.so:       $(C2_DIR)/%.so
+$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX):       $(C2_DIR)/%.$(LIBRARY_SUFFIX)
 	$(install-file)
-$(EXPORT_SERVER_DIR)/64/%.so:    $(C2_DIR)/%.so
+$(EXPORT_SERVER_DIR)/64/%.$(LIBRARY_SUFFIX):    $(C2_DIR)/%.$(LIBRARY_SUFFIX)
+	$(install-file)
+
+# Debug info for shared library
+$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(C1_DIR)/%.debuginfo
+	$(install-file)
+$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(C2_DIR)/%.debuginfo
+	$(install-file)
+$(EXPORT_CLIENT_DIR)/%.debuginfo:       $(C1_DIR)/%.debuginfo
+	$(install-file)
+$(EXPORT_CLIENT_DIR)/64/%.debuginfo:    $(C1_DIR)/%.debuginfo
+	$(install-file)
+$(EXPORT_SERVER_DIR)/%.debuginfo:       $(C2_DIR)/%.debuginfo
+	$(install-file)
+$(EXPORT_SERVER_DIR)/64/%.debuginfo:    $(C2_DIR)/%.debuginfo
 	$(install-file)
   endif
 endif
diff --git a/hotspot/make/bsd/Makefile b/hotspot/make/bsd/Makefile
new file mode 100644
index 0000000..cef9d7c
--- /dev/null
+++ b/hotspot/make/bsd/Makefile
@@ -0,0 +1,371 @@
+#
+# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+#
+
+# This makefile creates a build tree and lights off a build.
+# You can go back into the build tree and perform rebuilds or
+# incremental builds as desired. Be sure to reestablish
+# environment variable settings for LD_LIBRARY_PATH and JAVA_HOME.
+
+# The make process now relies on java and javac. These can be
+# specified either implicitly on the PATH, by setting the
+# (JDK-inherited) ALT_BOOTDIR environment variable to full path to a
+# JDK in which bin/java and bin/javac are present and working (e.g.,
+# /usr/local/java/jdk1.3/solaris), or via the (JDK-inherited)
+# default BOOTDIR path value. Note that one of ALT_BOOTDIR
+# or BOOTDIR has to be set. We do *not* search javac, javah, rmic etc.
+# from the PATH.
+#
+# One can set ALT_BOOTDIR or BOOTDIR to point to a jdk that runs on
+# an architecture that differs from the target architecture, as long
+# as the bootstrap jdk runs under the same flavor of OS as the target
+# (i.e., if the target is linux, point to a jdk that runs on a linux
+# box).  In order to use such a bootstrap jdk, set the make variable
+# REMOTE to the desired remote command mechanism, e.g.,
+#
+#    make REMOTE="rsh -l me myotherlinuxbox"
+
+# Along with VM, Serviceability Agent (SA) is built for SA/JDI binding.
+# JDI binding on SA produces two binaries:
+#  1. sa-jdi.jar       - This is build before building libjvm[_g].so
+#                        Please refer to ./makefiles/sa.make
+#  2. libsa[_g].so     - Native library for SA - This is built after
+#                        libjsig[_g].so (signal interposition library)
+#                        Please refer to ./makefiles/vm.make
+# If $(GAMMADIR)/agent dir is not present, SA components are not built.
+
+ifeq ($(GAMMADIR),)
+include ../../make/defs.make
+else
+include $(GAMMADIR)/make/defs.make
+endif
+include $(GAMMADIR)/make/$(OSNAME)/makefiles/rules.make
+
+ifndef CC_INTERP
+  ifndef FORCE_TIERED
+    FORCE_TIERED=1
+  endif
+endif
+
+ifdef LP64
+  ifeq ("$(filter $(LP64_ARCH),$(BUILDARCH))","")
+    _JUNK_ := $(shell echo >&2 \
+       $(OSNAME) $(ARCH) "*** ERROR: this platform does not support 64-bit compilers!")
+	@exit 1
+  endif
+endif
+
+# we need to set up LP64 correctly to satisfy sanity checks in adlc
+ifneq ("$(filter $(LP64_ARCH),$(BUILDARCH))","")
+  MFLAGS += " LP64=1 "
+endif
+
+# pass USE_SUNCC further, through MFLAGS
+ifdef USE_SUNCC
+  MFLAGS += " USE_SUNCC=1 "
+endif
+
+# The following renders pathnames in generated Makefiles valid on
+# machines other than the machine containing the build tree.
+#
+# For example, let's say my build tree lives on /files12 on
+# exact.east.sun.com.  This logic will cause GAMMADIR to begin with
+# /net/exact/files12/...
+#
+# We only do this on SunOS variants, for a couple of reasons:
+#  * It is extremely rare that source trees exist on other systems
+#  * It has been claimed that the Linux automounter is flakey, so
+#    changing GAMMADIR in a way that exercises the automounter could
+#    prove to be a source of unreliability in the build process.
+# Obviously, this Makefile is only relevant on SunOS boxes to begin
+# with, but the SunOS conditionalization will make it easier to
+# combine Makefiles in the future (assuming we ever do that).
+
+ifeq ($(OSNAME),solaris)
+
+  #   prepend current directory to relative pathnames.
+  NEW_GAMMADIR :=                                    \
+    $(shell echo $(GAMMADIR) |                       \
+      sed -e "s=^\([^/].*\)=$(shell pwd)/\1="        \
+     )
+  unexport NEW_GAMMADIR
+
+  # If NEW_GAMMADIR doesn't already start with "/net/":
+  ifeq ($(strip $(filter /net/%,$(NEW_GAMMADIR))),)
+    #   prepend /net/$(HOST)
+    #   remove /net/$(HOST) if name already began with /home/
+    #   remove /net/$(HOST) if name already began with /java/
+    #   remove /net/$(HOST) if name already began with /lab/
+    NEW_GAMMADIR :=                                     \
+         $(shell echo $(NEW_GAMMADIR) |                 \
+                 sed -e "s=^\(.*\)=/net/$(HOST)\1="     \
+                     -e "s=^/net/$(HOST)/home/=/home/=" \
+                     -e "s=^/net/$(HOST)/java/=/java/=" \
+                     -e "s=^/net/$(HOST)/lab/=/lab/="   \
+          )
+    # Don't use the new value for GAMMADIR unless a file with the new
+    # name actually exists.
+    ifneq ($(wildcard $(NEW_GAMMADIR)),)
+      GAMMADIR := $(NEW_GAMMADIR)
+    endif
+  endif
+
+endif
+
+# BUILDARCH is set to "zero" for Zero builds.  VARIANTARCH
+# is used to give the build directories meaningful names.
+VARIANTARCH = $(subst i386,i486,$(ZERO_LIBARCH))
+
+# There is a (semi-) regular correspondence between make targets and actions:
+#
+#       Target          Tree Type       Build Dir
+#
+#       debug           compiler2       <os>_<arch>_compiler2/debug
+#       fastdebug       compiler2       <os>_<arch>_compiler2/fastdebug
+#       jvmg            compiler2       <os>_<arch>_compiler2/jvmg
+#       optimized       compiler2       <os>_<arch>_compiler2/optimized
+#       profiled        compiler2       <os>_<arch>_compiler2/profiled
+#       product         compiler2       <os>_<arch>_compiler2/product
+#
+#       debug1          compiler1       <os>_<arch>_compiler1/debug
+#       fastdebug1      compiler1       <os>_<arch>_compiler1/fastdebug
+#       jvmg1           compiler1       <os>_<arch>_compiler1/jvmg
+#       optimized1      compiler1       <os>_<arch>_compiler1/optimized
+#       profiled1       compiler1       <os>_<arch>_compiler1/profiled
+#       product1        compiler1       <os>_<arch>_compiler1/product
+#
+#       debugcore       core            <os>_<arch>_core/debug
+#       fastdebugcore   core            <os>_<arch>_core/fastdebug
+#       jvmgcore        core            <os>_<arch>_core/jvmg
+#       optimizedcore   core            <os>_<arch>_core/optimized
+#       profiledcore    core            <os>_<arch>_core/profiled
+#       productcore     core            <os>_<arch>_core/product
+#
+#       debugzero       zero            <os>_<arch>_zero/debug
+#       fastdebugzero   zero            <os>_<arch>_zero/fastdebug
+#       jvmgzero        zero            <os>_<arch>_zero/jvmg
+#       optimizedzero   zero            <os>_<arch>_zero/optimized
+#       profiledzero    zero            <os>_<arch>_zero/profiled
+#       productzero     zero            <os>_<arch>_zero/product
+#
+#       debugshark      shark           <os>_<arch>_shark/debug
+#       fastdebugshark  shark           <os>_<arch>_shark/fastdebug
+#       jvmgshark       shark           <os>_<arch>_shark/jvmg
+#       optimizedshark  shark           <os>_<arch>_shark/optimized
+#       profiledshark   shark           <os>_<arch>_shark/profiled
+#       productshark    shark           <os>_<arch>_shark/product
+#
+# What you get with each target:
+#
+# debug*     - "thin" libjvm_g - debug info linked into the gamma_g launcher
+# fastdebug* - optimized compile, but with asserts enabled
+# jvmg*      - "fat" libjvm_g - debug info linked into libjvm_g.so
+# optimized* - optimized compile, no asserts
+# profiled*  - gprof
+# product*   - the shippable thing:  optimized compile, no asserts, -DPRODUCT
+
+# This target list needs to be coordinated with the usage message
+# in the build.sh script:
+TARGETS           = debug jvmg fastdebug optimized profiled product
+
+ifeq ($(ZERO_BUILD), true)
+  SUBDIR_DOCS     = $(OSNAME)_$(VARIANTARCH)_docs
+else
+  SUBDIR_DOCS     = $(OSNAME)_$(BUILDARCH)_docs
+endif
+SUBDIRS_C1        = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler1/,$(TARGETS))
+SUBDIRS_C2        = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS))
+SUBDIRS_TIERED    = $(addprefix $(OSNAME)_$(BUILDARCH)_tiered/,$(TARGETS))
+SUBDIRS_CORE      = $(addprefix $(OSNAME)_$(BUILDARCH)_core/,$(TARGETS))
+SUBDIRS_ZERO      = $(addprefix $(OSNAME)_$(VARIANTARCH)_zero/,$(TARGETS))
+SUBDIRS_SHARK     = $(addprefix $(OSNAME)_$(VARIANTARCH)_shark/,$(TARGETS))
+
+TARGETS_C2        = $(TARGETS)
+TARGETS_C1        = $(addsuffix 1,$(TARGETS))
+TARGETS_TIERED    = $(addsuffix tiered,$(TARGETS))
+TARGETS_CORE      = $(addsuffix core,$(TARGETS))
+TARGETS_ZERO      = $(addsuffix zero,$(TARGETS))
+TARGETS_SHARK     = $(addsuffix shark,$(TARGETS))
+
+BUILDTREE_MAKE    = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make
+BUILDTREE_VARS    = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH)
+BUILDTREE_VARS   += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
+
+BUILDTREE         = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS)
+
+#-------------------------------------------------------------------------------
+
+# Could make everything by default, but that would take a while.
+all:
+	@echo "Try '$(MAKE) <target> ...'  where <target> is one or more of"
+	@echo "  $(TARGETS_C2)"
+	@echo "  $(TARGETS_C1)"
+	@echo "  $(TARGETS_CORE)"
+	@echo "  $(TARGETS_ZERO)"
+	@echo "  $(TARGETS_SHARK)"
+
+checks: check_os_version check_j2se_version
+
+# We do not want people accidentally building on old systems (e.g. Linux 2.2.x,
+# Solaris 2.5.1, 2.6).
+# Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok.
+
+#SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7%
+DISABLE_HOTSPOT_OS_VERSION_CHECK = ok
+OS_VERSION := $(shell uname -r)
+EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION))
+
+check_os_version:
+ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),)
+	$(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1;
+endif
+
+# jvmti.make requires XSLT (J2SE 1.4.x or newer):
+XSLT_CHECK	= $(REMOTE) $(RUN.JAVAP) javax.xml.transform.TransformerFactory
+# If not found then fail fast.
+check_j2se_version:
+	$(QUIETLY) $(XSLT_CHECK) > /dev/null 2>&1; \
+	if [ $$? -ne 0 ]; then \
+	  $(REMOTE) $(RUN.JAVA) -version; \
+	  echo "*** An XSLT processor (J2SE 1.4.x or newer) is required" \
+	  "to bootstrap this build" 1>&2; \
+	  exit 1; \
+	fi
+
+$(SUBDIRS_TIERED): $(BUILDTREE_MAKE)
+	$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
+	$(BUILDTREE) VARIANT=tiered
+
+$(SUBDIRS_C2): $(BUILDTREE_MAKE)
+ifeq ($(FORCE_TIERED),1)
+	$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
+		$(BUILDTREE) VARIANT=tiered FORCE_TIERED=1
+else
+	$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
+		$(BUILDTREE) VARIANT=compiler2
+endif
+
+$(SUBDIRS_C1): $(BUILDTREE_MAKE)
+	$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
+	$(BUILDTREE) VARIANT=compiler1
+
+$(SUBDIRS_CORE): $(BUILDTREE_MAKE)
+	$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
+	$(BUILDTREE) VARIANT=core
+
+$(SUBDIRS_ZERO): $(BUILDTREE_MAKE) platform_zero
+	$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
+	$(BUILDTREE) VARIANT=zero VARIANTARCH=$(VARIANTARCH)
+
+$(SUBDIRS_SHARK): $(BUILDTREE_MAKE) platform_zero
+	$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
+	$(BUILDTREE) VARIANT=shark VARIANTARCH=$(VARIANTARCH)
+
+platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in
+	$(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+
+# Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME
+
+$(TARGETS_C2):  $(SUBDIRS_C2)
+	cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && $(MAKE) $(MFLAGS)
+	cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && ./test_gamma
+ifdef INSTALL
+	cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && $(MAKE) $(MFLAGS) install
+endif
+
+$(TARGETS_TIERED):  $(SUBDIRS_TIERED)
+	cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && $(MAKE) $(MFLAGS)
+	cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && ./test_gamma
+ifdef INSTALL
+	cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && $(MAKE) $(MFLAGS) install
+endif
+
+$(TARGETS_C1):  $(SUBDIRS_C1)
+	cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && $(MAKE) $(MFLAGS)
+	cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && ./test_gamma
+ifdef INSTALL
+	cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && $(MAKE) $(MFLAGS) install
+endif
+
+$(TARGETS_CORE):  $(SUBDIRS_CORE)
+	cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS)
+	cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && ./test_gamma
+ifdef INSTALL
+	cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) install
+endif
+
+$(TARGETS_ZERO):  $(SUBDIRS_ZERO)
+	cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS)
+	cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && ./test_gamma
+ifdef INSTALL
+	cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) install
+endif
+
+$(TARGETS_SHARK):  $(SUBDIRS_SHARK)
+	cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(MAKE) $(MFLAGS)
+	cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && ./test_gamma
+ifdef INSTALL
+	cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(MAKE) $(MFLAGS) install
+endif
+
+# Just build the tree, and nothing else:
+tree:      $(SUBDIRS_C2)
+tree1:     $(SUBDIRS_C1)
+treecore:  $(SUBDIRS_CORE)
+treezero:  $(SUBDIRS_ZERO)
+treeshark: $(SUBDIRS_SHARK)
+
+# Doc target.  This is the same for all build options.
+#     Hence create a docs directory beside ...$(ARCH)_[...]
+docs: checks
+	$(QUIETLY) mkdir -p $(SUBDIR_DOCS)
+	$(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) jvmtidocs
+
+# Synonyms for win32-like targets.
+compiler2:  jvmg product
+
+compiler1:  jvmg1 product1
+
+core: jvmgcore productcore
+
+zero: jvmgzero productzero
+
+shark: jvmgshark productshark
+
+clean_docs:
+	rm -rf $(SUBDIR_DOCS)
+
+clean_compiler1 clean_compiler2 clean_core clean_zero clean_shark:
+	rm -rf $(OSNAME)_$(BUILDARCH)_$(subst clean_,,$@)
+
+clean:  clean_compiler2 clean_compiler1 clean_core clean_zero clean_shark clean_docs
+
+include $(GAMMADIR)/make/cscope.make
+
+#-------------------------------------------------------------------------------
+
+.PHONY: $(TARGETS_C2) $(TARGETS_C1) $(TARGETS_CORE) $(TARGETS_ZERO) $(TARGETS_SHARK)
+.PHONY: tree tree1 treecore treezero treeshark
+.PHONY: all compiler1 compiler2 core zero shark
+.PHONY: clean clean_compiler1 clean_compiler2 clean_core clean_zero clean_shark docs clean_docs
+.PHONY: checks check_os_version check_j2se_version
diff --git a/hotspot/make/linux/README b/hotspot/make/bsd/README
similarity index 100%
copy from hotspot/make/linux/README
copy to hotspot/make/bsd/README
diff --git a/hotspot/make/linux/adlc_updater b/hotspot/make/bsd/adlc_updater
similarity index 100%
copy from hotspot/make/linux/adlc_updater
copy to hotspot/make/bsd/adlc_updater
diff --git a/hotspot/make/bsd/build.sh b/hotspot/make/bsd/build.sh
new file mode 100644
index 0000000..ddb07e5
--- /dev/null
+++ b/hotspot/make/bsd/build.sh
@@ -0,0 +1,95 @@
+#! /bin/sh
+#
+# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Make sure the variable JAVA_HOME is set before running this script.
+
+set -u
+
+
+if [ $# != 2 ]; then 
+    echo "Usage : $0 Build_Options Location"
+    echo "Build Options : debug or optimized or basicdebug or basic or clean"
+    echo "Location : specify any workspace which has gamma sources"
+    exit 1
+fi
+
+# Just in case:
+case ${JAVA_HOME} in
+/*) true;;
+?*) JAVA_HOME=`( cd $JAVA_HOME; pwd )`;;
+esac
+
+case `uname -m` in
+  i386|i486|i586|i686)
+    mach=i386
+    ;;
+  *)
+    echo "Unsupported machine: " `uname -m`
+    exit 1
+    ;;
+esac
+
+if [ "${JAVA_HOME}" = ""  -o  ! -d "${JAVA_HOME}" -o ! -d ${JAVA_HOME}/jre/lib/${mach} ]; then
+    echo "JAVA_HOME needs to be set to a valid JDK path"
+    echo "ksh : export JAVA_HOME=/net/tetrasparc/export/gobi/JDK1.2_fcs_V/bsd"
+    echo "csh : setenv JAVA_HOME /net/tetrasparc/export/gobi/JDK1.2_fcs_V/bsd"
+    exit 1
+fi
+
+
+LD_LIBRARY_PATH=${JAVA_HOME}/jre/lib/`uname -p`:\
+${JAVA_HOME}/jre/lib/`uname -p`/native_threads:${LD_LIBRARY_PATH-.}
+
+# This is necessary as long as we are using the old launcher
+# with the new distribution format:
+CLASSPATH=${JAVA_HOME}/jre/lib/rt.jar:${CLASSPATH-.}
+
+
+for gm in gmake gnumake
+do
+  if [ "${GNUMAKE-}" != "" ]; then break; fi
+  ($gm --version >/dev/null) 2>/dev/null && GNUMAKE=$gm
+done
+: ${GNUMAKE:?'Cannot locate the gnumake program.  Stop.'}
+
+
+echo "### ENVIRONMENT SETTINGS:"
+export JAVA_HOME		; echo "JAVA_HOME=$JAVA_HOME"
+export LD_LIBRARY_PATH		; echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
+export CLASSPATH		; echo "CLASSPATH=$CLASSPATH"
+export GNUMAKE			; echo "GNUMAKE=$GNUMAKE"
+echo "###"
+
+Build_Options=$1
+Location=$2
+
+case ${Location} in
+/*) true;;
+?*) Location=`(cd ${Location}; pwd)`;;
+esac
+
+echo \
+${GNUMAKE} -f ${Location}/make/bsd/Makefile $Build_Options GAMMADIR=${Location}
+${GNUMAKE} -f ${Location}/make/bsd/Makefile $Build_Options GAMMADIR=${Location}
diff --git a/hotspot/make/linux/makefiles/adjust-mflags.sh b/hotspot/make/bsd/makefiles/adjust-mflags.sh
similarity index 100%
copy from hotspot/make/linux/makefiles/adjust-mflags.sh
copy to hotspot/make/bsd/makefiles/adjust-mflags.sh
diff --git a/hotspot/make/linux/makefiles/adlc.make b/hotspot/make/bsd/makefiles/adlc.make
similarity index 100%
copy from hotspot/make/linux/makefiles/adlc.make
copy to hotspot/make/bsd/makefiles/adlc.make
diff --git a/hotspot/make/linux/makefiles/amd64.make b/hotspot/make/bsd/makefiles/amd64.make
similarity index 100%
copy from hotspot/make/linux/makefiles/amd64.make
copy to hotspot/make/bsd/makefiles/amd64.make
diff --git a/hotspot/make/bsd/makefiles/arm.make b/hotspot/make/bsd/makefiles/arm.make
new file mode 100644
index 0000000..e22d5c3
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/arm.make
@@ -0,0 +1,29 @@
+#
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+Obj_Files += bsd_arm.o
+
+LIBS += $(EXT_LIBS_PATH)/sflt_glibc.a 
+
+CFLAGS += -DVM_LITTLE_ENDIAN
diff --git a/hotspot/make/linux/makefiles/build_vm_def.sh b/hotspot/make/bsd/makefiles/build_vm_def.sh
similarity index 100%
copy from hotspot/make/linux/makefiles/build_vm_def.sh
copy to hotspot/make/bsd/makefiles/build_vm_def.sh
diff --git a/hotspot/make/bsd/makefiles/buildtree.make b/hotspot/make/bsd/makefiles/buildtree.make
new file mode 100644
index 0000000..a62f69a
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/buildtree.make
@@ -0,0 +1,409 @@
+#
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Usage:
+#
+# $(MAKE) -f buildtree.make SRCARCH=srcarch BUILDARCH=buildarch LIBARCH=libarch
+#         GAMMADIR=dir OS_FAMILY=os VARIANT=variant
+#
+# The macros ARCH, GAMMADIR, OS_FAMILY and VARIANT must be defined in the
+# environment or on the command-line:
+#
+# ARCH		- sparc, i486, ... HotSpot cpu and os_cpu source directory
+# BUILDARCH     - build directory
+# LIBARCH       - the corresponding directory in JDK/JRE
+# GAMMADIR	- top of workspace
+# OS_FAMILY	- operating system
+# VARIANT	- core, compiler1, compiler2, or tiered
+# HOTSPOT_RELEASE_VERSION - <major>.<minor>-b<nn> (11.0-b07)
+# HOTSPOT_BUILD_VERSION   - internal, internal-$(USER_RELEASE_SUFFIX) or empty
+# JRE_RELEASE_VERSION     - <major>.<minor>.<micro> (1.7.0)
+#
+# Builds the directory trees with makefiles plus some convenience files in
+# each directory:
+#
+# Makefile	- for "make foo"
+# flags.make	- with macro settings
+# vm.make	- to support making "$(MAKE) -v vm.make" in makefiles
+# adlc.make	- 
+# jvmti.make	- generate JVMTI bindings from the spec (JSR-163)
+# sa.make	- generate SA jar file and natives
+# env.[ck]sh	- environment settings
+# test_gamma	- script to run the Queens program
+# 
+# The makefiles are split this way so that "make foo" will run faster by not
+# having to read the dependency files for the vm.
+
+include $(GAMMADIR)/make/scm.make
+include $(GAMMADIR)/make/altsrc.make
+
+
+# 'gmake MAKE_VERBOSE=y' or 'gmake QUIETLY=' gives all the gory details.
+QUIETLY$(MAKE_VERBOSE)	= @
+
+# For now, until the compiler is less wobbly:
+TESTFLAGS	= -Xbatch -showversion
+
+ifeq ($(ZERO_BUILD), true)
+  PLATFORM_FILE = $(shell dirname $(shell dirname $(shell pwd)))/platform_zero
+else
+  ifdef USE_SUNCC
+    PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH).suncc
+  else
+    PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH)
+  endif
+endif
+
+# Allow overriding of the arch part of the directory but default
+# to BUILDARCH if nothing is specified
+ifeq ($(VARIANTARCH),)
+  VARIANTARCH=$(BUILDARCH)
+endif
+
+ifdef FORCE_TIERED
+ifeq		($(VARIANT),tiered)
+PLATFORM_DIR	= $(OS_FAMILY)_$(VARIANTARCH)_compiler2
+else
+PLATFORM_DIR	= $(OS_FAMILY)_$(VARIANTARCH)_$(VARIANT)
+endif
+else
+PLATFORM_DIR    = $(OS_FAMILY)_$(VARIANTARCH)_$(VARIANT)
+endif
+
+#
+# We do two levels of exclusion in the shared directory.
+# TOPLEVEL excludes are pruned, they are not recursively searched,
+# but lower level directories can be named without fear of collision.
+# ALWAYS excludes are excluded at any level in the directory tree.
+#
+
+ALWAYS_EXCLUDE_DIRS     = $(SCM_DIRS)
+
+ifeq		($(VARIANT),tiered)
+TOPLEVEL_EXCLUDE_DIRS	= $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name agent
+else
+ifeq		($(VARIANT),compiler2)
+TOPLEVEL_EXCLUDE_DIRS	= $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name c1 -o -name agent
+else
+# compiler1 and core use the same exclude list
+TOPLEVEL_EXCLUDE_DIRS	= $(ALWAYS_EXCLUDE_DIRS) -o -name adlc -o -name opto -o -name libadt -o -name agent
+endif
+endif
+
+# Get things from the platform file.
+COMPILER	= $(shell sed -n 's/^compiler[ 	]*=[ 	]*//p' $(PLATFORM_FILE))
+
+SIMPLE_DIRS	= \
+	$(PLATFORM_DIR)/generated/dependencies \
+	$(PLATFORM_DIR)/generated/adfiles \
+	$(PLATFORM_DIR)/generated/jvmtifiles
+
+TARGETS      = debug fastdebug jvmg optimized product profiled
+SUBMAKE_DIRS = $(addprefix $(PLATFORM_DIR)/,$(TARGETS))
+
+# For dependencies and recursive makes.
+BUILDTREE_MAKE	= $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
+
+BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make sa.make \
+        env.sh env.csh jdkpath.sh .dbxrc test_gamma
+
+BUILDTREE_VARS	= GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
+	SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
+
+# Define variables to be set in flags.make.
+# Default values are set in make/defs.make.
+ifeq ($(HOTSPOT_BUILD_VERSION),)
+  HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)
+else
+  HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)
+endif
+# Set BUILD_USER from system-dependent hints:  $LOGNAME, $(whoami)
+ifndef HOTSPOT_BUILD_USER
+  HOTSPOT_BUILD_USER := $(shell echo $$LOGNAME)
+endif
+ifndef HOTSPOT_BUILD_USER
+  HOTSPOT_BUILD_USER := $(shell whoami)
+endif
+# Define HOTSPOT_VM_DISTRO based on settings in make/openjdk_distro
+# or make/hotspot_distro.
+ifndef HOTSPOT_VM_DISTRO
+  ifeq ($(call if-has-altsrc,$(HS_COMMON_SRC)/,true,false),true)
+    include $(GAMMADIR)/make/hotspot_distro
+  else
+    include $(GAMMADIR)/make/openjdk_distro
+  endif
+endif
+
+BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HS_BUILD_VER) HOTSPOT_BUILD_VERSION=  JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
+
+BUILDTREE	= \
+	$(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_TARGETS) $(BUILDTREE_VARS)
+
+BUILDTREE_COMMENT	= echo "\# Generated by $(BUILDTREE_MAKE)"
+
+all:  $(SUBMAKE_DIRS)
+
+# Run make in each subdirectory recursively.
+$(SUBMAKE_DIRS): $(SIMPLE_DIRS) FORCE
+	$(QUIETLY) [ -d $@ ] || { mkdir -p $@; }
+	$(QUIETLY) cd $@ && $(BUILDTREE) TARGET=$(@F)
+	$(QUIETLY) touch $@
+
+$(SIMPLE_DIRS):
+	$(QUIETLY) mkdir -p $@
+
+# Convenience macro which takes a source relative path, applies $(1) to the
+# absolute path, and then replaces $(GAMMADIR) in the result with a 
+# literal "$(GAMMADIR)/" suitable for inclusion in a Makefile.  
+gamma-path=$(subst $(GAMMADIR),\$$(GAMMADIR),$(call $(1),$(HS_COMMON_SRC)/$(2)))
+
+flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
+	@echo Creating $@ ...
+	$(QUIETLY) ( \
+	$(BUILDTREE_COMMENT); \
+	echo; \
+	echo "Platform_file = $(PLATFORM_FILE)" | sed 's|$(GAMMADIR)|$$(GAMMADIR)|'; \
+	sed -n '/=/s/^ */Platform_/p' < $(PLATFORM_FILE); \
+	echo; \
+	echo "GAMMADIR = $(GAMMADIR)"; \
+	echo "SYSDEFS = \$$(Platform_sysdefs)"; \
+	echo "SRCARCH = $(SRCARCH)"; \
+	echo "BUILDARCH = $(BUILDARCH)"; \
+	echo "LIBARCH = $(LIBARCH)"; \
+	echo "TARGET = $(TARGET)"; \
+	echo "HS_BUILD_VER = $(HS_BUILD_VER)"; \
+	echo "JRE_RELEASE_VER = $(JRE_RELEASE_VERSION)"; \
+	echo "SA_BUILD_VERSION = $(HS_BUILD_VER)"; \
+	echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \
+	echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
+	echo; \
+	echo "# Used for platform dispatching"; \
+	echo "TARGET_DEFINES  = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \
+	echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \
+	echo "TARGET_DEFINES += -DTARGET_ARCH_MODEL_\$$(Platform_arch_model)"; \
+	echo "TARGET_DEFINES += -DTARGET_OS_ARCH_\$$(Platform_os_arch)"; \
+	echo "TARGET_DEFINES += -DTARGET_OS_ARCH_MODEL_\$$(Platform_os_arch_model)"; \
+	echo "TARGET_DEFINES += -DTARGET_COMPILER_\$$(Platform_compiler)"; \
+	echo "CFLAGS += \$$(TARGET_DEFINES)"; \
+	echo; \
+	echo "Src_Dirs_V = \\"; \
+	sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \
+	echo "$(call gamma-path,altsrc,cpu/$(SRCARCH)/vm) \\"; \
+	echo "$(call gamma-path,commonsrc,cpu/$(SRCARCH)/vm) \\"; \
+	echo "$(call gamma-path,altsrc,os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm) \\"; \
+	echo "$(call gamma-path,commonsrc,os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm) \\"; \
+	echo "$(call gamma-path,altsrc,os/$(OS_FAMILY)/vm) \\"; \
+	echo "$(call gamma-path,commonsrc,os/$(OS_FAMILY)/vm) \\"; \
+	echo "$(call gamma-path,altsrc,os/posix/vm) \\"; \
+	echo "$(call gamma-path,commonsrc,os/posix/vm)"; \
+	echo; \
+	echo "Src_Dirs_I = \\"; \
+	echo "$(call gamma-path,altsrc,share/vm/prims) \\"; \
+	echo "$(call gamma-path,commonsrc,share/vm/prims) \\"; \
+	echo "$(call gamma-path,altsrc,share/vm) \\"; \
+	echo "$(call gamma-path,commonsrc,share/vm) \\"; \
+	echo "$(call gamma-path,altsrc,cpu/$(SRCARCH)/vm) \\"; \
+	echo "$(call gamma-path,commonsrc,cpu/$(SRCARCH)/vm) \\"; \
+	echo "$(call gamma-path,altsrc,os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm) \\"; \
+	echo "$(call gamma-path,commonsrc,os_cpu/$(OS_FAMILY)_$(SRCARCH)/vm) \\"; \
+	echo "$(call gamma-path,altsrc,os/$(OS_FAMILY)/vm) \\"; \
+	echo "$(call gamma-path,commonsrc,os/$(OS_FAMILY)/vm) \\"; \
+	echo "$(call gamma-path,altsrc,os/posix/vm) \\"; \
+	echo "$(call gamma-path,commonsrc,os/posix/vm)"; \
+	[ -n "$(CFLAGS_BROWSE)" ] && \
+	    echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \
+	[ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \
+	    echo && \
+	    echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
+	    echo "SYSDEFS += \$$(HOTSPOT_EXTRA_SYSDEFS)"; \
+	echo; \
+	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(VARIANT).make"; \
+	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(COMPILER).make"; \
+	) > $@
+
+flags_vm.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
+	@echo Creating $@ ...
+	$(QUIETLY) ( \
+	$(BUILDTREE_COMMENT); \
+	echo; \
+	[ "$(TARGET)" = profiled ] && \
+	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/optimized.make"; \
+	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(TARGET).make"; \
+	) > $@
+
+../shared_dirs.lst:  $(BUILDTREE_MAKE) $(GAMMADIR)/src/share/vm
+	@echo Creating directory list $@
+	$(QUIETLY) if [ -d $(HS_ALT_SRC)/share/vm ]; then \
+          find $(HS_ALT_SRC)/share/vm/* -prune \
+	  -type d \! \( $(TOPLEVEL_EXCLUDE_DIRS) \) -exec find {} \
+          \( $(ALWAYS_EXCLUDE_DIRS) \) -prune -o -type d -print \; > $@; \
+        fi;
+	$(QUIETLY) find $(HS_COMMON_SRC)/share/vm/* -prune \
+	-type d \! \( $(TOPLEVEL_EXCLUDE_DIRS) \) -exec find {} \
+        \( $(ALWAYS_EXCLUDE_DIRS) \) -prune -o -type d -print \; >> $@
+
+Makefile: $(BUILDTREE_MAKE)
+	@echo Creating $@ ...
+	$(QUIETLY) ( \
+	$(BUILDTREE_COMMENT); \
+	echo; \
+	echo include flags.make; \
+	echo; \
+	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/top.make"; \
+	) > $@
+
+vm.make: $(BUILDTREE_MAKE)
+	@echo Creating $@ ...
+	$(QUIETLY) ( \
+	$(BUILDTREE_COMMENT); \
+	echo; \
+	echo include flags.make; \
+	echo include flags_vm.make; \
+	echo; \
+	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
+	) > $@
+
+adlc.make: $(BUILDTREE_MAKE)
+	@echo Creating $@ ...
+	$(QUIETLY) ( \
+	$(BUILDTREE_COMMENT); \
+	echo; \
+	echo include flags.make; \
+	echo; \
+	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
+	) > $@
+
+jvmti.make: $(BUILDTREE_MAKE)
+	@echo Creating $@ ...
+	$(QUIETLY) ( \
+	$(BUILDTREE_COMMENT); \
+	echo; \
+	echo include flags.make; \
+	echo; \
+	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
+	) > $@
+
+sa.make: $(BUILDTREE_MAKE)
+	@echo Creating $@ ...
+	$(QUIETLY) ( \
+	$(BUILDTREE_COMMENT); \
+	echo; \
+	echo include flags.make; \
+	echo; \
+	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
+	) > $@
+
+env.sh: $(BUILDTREE_MAKE)
+	@echo Creating $@ ...
+	$(QUIETLY) ( \
+	$(BUILDTREE_COMMENT); \
+	[ -n "$$JAVA_HOME" ] && { echo ": \$${JAVA_HOME:=$${JAVA_HOME}}"; }; \
+	{ \
+	echo "LD_LIBRARY_PATH=.:$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \
+	echo "DYLD_LIBRARY_PATH=.:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \
+	echo "CLASSPATH=$${CLASSPATH:+$$CLASSPATH:}.:\$${JAVA_HOME}/jre/lib/rt.jar:\$${JAVA_HOME}/jre/lib/i18n.jar"; \
+	} | sed s:$${JAVA_HOME:--------}:\$${JAVA_HOME}:g; \
+	echo "HOTSPOT_BUILD_USER=\"$${LOGNAME:-$$USER} in `basename $(GAMMADIR)`\""; \
+	echo "export JAVA_HOME LD_LIBRARY_PATH DYLD_LIBRARY_PATH CLASSPATH HOTSPOT_BUILD_USER"; \
+	) > $@
+
+env.csh: env.sh
+	@echo Creating $@ ...
+	$(QUIETLY) ( \
+	$(BUILDTREE_COMMENT); \
+	[ -n "$$JAVA_HOME" ] && \
+	{ echo "if (! \$$?JAVA_HOME) setenv JAVA_HOME \"$$JAVA_HOME\""; }; \
+	sed -n 's/^\([A-Za-z_][A-Za-z0-9_]*\)=/setenv \1 /p' $?; \
+	) > $@
+
+jdkpath.sh: $(BUILDTREE_MAKE)
+	@echo Creating $@ ...
+	$(QUIETLY) ( \
+	$(BUILDTREE_COMMENT); \
+	echo "JDK=${JAVA_HOME}"; \
+	) > $@	   
+
+.dbxrc:  $(BUILDTREE_MAKE)
+	@echo Creating $@ ...
+	$(QUIETLY) ( \
+	echo "echo '# Loading $(PLATFORM_DIR)/$(TARGET)/.dbxrc'"; \
+	echo "if [ -f \"\$${HOTSPOT_DBXWARE}\" ]"; \
+	echo "then"; \
+	echo "	source \"\$${HOTSPOT_DBXWARE}\""; \
+	echo "elif [ -f \"\$$HOME/.dbxrc\" ]"; \
+	echo "then"; \
+	echo "	source \"\$$HOME/.dbxrc\""; \
+	echo "fi"; \
+	) > $@
+
+# Skip the test for product builds (which only work when installed in a JDK), to
+# avoid exiting with an error and causing make to halt.
+NO_TEST_MSG	= \
+	echo "$@:  skipping the test--this build must be tested in a JDK."
+
+NO_JAVA_HOME_MSG	= \
+	echo "JAVA_HOME must be set to run this test."
+
+DATA_MODE = $(DATA_MODE/$(BUILDARCH))
+JAVA_FLAG = $(JAVA_FLAG/$(DATA_MODE))
+
+DATA_MODE/i486    = 32
+DATA_MODE/sparc   = 32
+DATA_MODE/sparcv9 = 64
+DATA_MODE/amd64   = 64
+DATA_MODE/ia64    = 64
+DATA_MODE/zero    = $(ARCH_DATA_MODEL)
+
+JAVA_FLAG/32 = -d32
+JAVA_FLAG/64 = -d64
+
+WRONG_DATA_MODE_MSG = \
+	echo "JAVA_HOME must point to $(DATA_MODE)bit JDK."
+
+CROSS_COMPILING_MSG = \
+	echo "Cross compiling for ARCH $(CROSS_COMPILE_ARCH), skipping gamma run."
+
+test_gamma:  $(BUILDTREE_MAKE) $(GAMMADIR)/make/test/Queens.java
+	@echo Creating $@ ...
+	$(QUIETLY) ( \
+	echo '#!/bin/sh'; \
+	$(BUILDTREE_COMMENT); \
+	echo '. ./env.sh'; \
+	echo "exit 0;"; \
+	echo "if [ \"$(CROSS_COMPILE_ARCH)\" != \"\" ]; then { $(CROSS_COMPILING_MSG); exit 0; }; fi"; \
+	echo "if [ -z \$$JAVA_HOME ]; then { $(NO_JAVA_HOME_MSG); exit 0; }; fi"; \
+	echo "if ! \$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion 2>&1 > /dev/null"; \
+	echo "then"; \
+	echo "  $(WRONG_DATA_MODE_MSG); exit 0;"; \
+	echo "fi"; \
+	echo "rm -f Queens.class"; \
+	echo "\$${JAVA_HOME}/bin/javac -d . $(GAMMADIR)/make/test/Queens.java"; \
+	echo '[ -f gamma_g ] && { gamma=gamma_g; }'; \
+	echo './$${gamma:-gamma} $(TESTFLAGS) Queens < /dev/null'; \
+	) > $@
+	$(QUIETLY) chmod +x $@
+
+FORCE:
+
+.PHONY:  all FORCE
diff --git a/hotspot/make/linux/makefiles/compiler1.make b/hotspot/make/bsd/makefiles/compiler1.make
similarity index 100%
copy from hotspot/make/linux/makefiles/compiler1.make
copy to hotspot/make/bsd/makefiles/compiler1.make
diff --git a/hotspot/make/linux/makefiles/compiler2.make b/hotspot/make/bsd/makefiles/compiler2.make
similarity index 100%
copy from hotspot/make/linux/makefiles/compiler2.make
copy to hotspot/make/bsd/makefiles/compiler2.make
diff --git a/hotspot/make/linux/makefiles/core.make b/hotspot/make/bsd/makefiles/core.make
similarity index 100%
copy from hotspot/make/linux/makefiles/core.make
copy to hotspot/make/bsd/makefiles/core.make
diff --git a/hotspot/make/bsd/makefiles/cscope.make b/hotspot/make/bsd/makefiles/cscope.make
new file mode 100644
index 0000000..7a12b3b
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/cscope.make
@@ -0,0 +1,160 @@
+#
+# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+#
+# The cscope.out file is made in the current directory and spans the entire
+# source tree.
+#
+# Things to note:
+#	1. We use relative names for cscope.
+#	2. We *don't* remove the old cscope.out file, because cscope is smart
+#	   enough to only build what has changed.  It can be confused, however,
+#	   if files are renamed or removed, so it may be necessary to manually
+#	   remove cscope.out if a lot of reorganization has occurred.
+#
+
+include $(GAMMADIR)/make/scm.make
+
+NAWK	= awk
+RM	= rm -f
+HG	= hg
+CS_TOP	= ../..
+
+CSDIRS	= $(CS_TOP)/src $(CS_TOP)/build
+CSINCS	= $(CSDIRS:%=-I%)
+
+CSCOPE		= cscope
+CSCOPE_FLAGS	= -b
+
+# Allow .java files to be added from the environment (CSCLASSES=yes).
+ifdef	CSCLASSES
+ADDCLASSES=	-o -name '*.java'
+endif
+
+# Adding CClassHeaders also pushes the file count of a full workspace up about
+# 200 files (these files also don't exist in a new workspace, and thus will
+# cause the recreation of the database as they get created, which might seem
+# a little confusing).  Thus allow these files to be added from the environment
+# (CSHEADERS=yes).
+ifndef	CSHEADERS
+RMCCHEADERS=	-o -name CClassHeaders
+endif
+
+# Use CS_GENERATED=x to include auto-generated files in the build directories.
+ifdef	CS_GENERATED
+CS_ADD_GENERATED	= -o -name '*.incl'
+else
+CS_PRUNE_GENERATED	= -o -name '${OS}_*_core' -o -name '${OS}_*_compiler?'
+endif
+
+# OS-specific files for other systems are excluded by default.  Use CS_OS=yes
+# to include platform-specific files for other platforms.
+ifndef	CS_OS
+CS_OS		= linux macos solaris win32 bsd
+CS_PRUNE_OS	= $(patsubst %,-o -name '*%*',$(filter-out ${OS},${CS_OS}))
+endif
+
+# Processor-specific files for other processors are excluded by default.  Use
+# CS_CPU=x to include platform-specific files for other platforms.
+ifndef	CS_CPU
+CS_CPU		= i486 sparc amd64 ia64
+CS_PRUNE_CPU	= $(patsubst %,-o -name '*%*',$(filter-out ${SRCARCH},${CS_CPU}))
+endif
+
+# What files should we include?  A simple rule might be just those files under
+# SCCS control, however this would miss files we create like the opcodes and
+# CClassHeaders.  The following attempts to find everything that is *useful*.
+# (.del files are created by sccsrm, demo directories contain many .java files
+# that probably aren't useful for development, and the pkgarchive may contain
+# duplicates of files within the source hierarchy).
+
+# Directories to exclude.
+CS_PRUNE_STD	= $(SCM_DIRS) \
+		  -o -name '.del-*' \
+		  -o -name '*demo' \
+		  -o -name pkgarchive
+
+CS_PRUNE	= $(CS_PRUNE_STD) \
+		  $(CS_PRUNE_OS) \
+		  $(CS_PRUNE_CPU) \
+		  $(CS_PRUNE_GENERATED) \
+		  $(RMCCHEADERS)
+
+# File names to include.
+CSFILENAMES	= -name '*.[ch]pp' \
+		  -o -name '*.[Ccshlxy]' \
+		  $(CS_ADD_GENERATED) \
+		  -o -name '*.il' \
+		  -o -name '*.cc' \
+		  -o -name '*[Mm]akefile*' \
+		  -o -name '*.gmk' \
+		  -o -name '*.make' \
+		  -o -name '*.ad' \
+		  $(ADDCLASSES)
+
+.PRECIOUS:	cscope.out
+
+cscope cscope.out: cscope.files FORCE
+	$(CSCOPE) $(CSCOPE_FLAGS)
+
+# The .raw file is reordered here in an attempt to make cscope display the most
+# relevant files first.
+cscope.files: .cscope.files.raw
+	echo "$(CSINCS)" > $@
+	-egrep -v "\.java|\/make\/"	$< >> $@
+	-fgrep ".java"			$< >> $@
+	-fgrep "/make/"		$< >> $@
+
+.cscope.files.raw:  .nametable.files
+	-find $(CSDIRS) -type d \( $(CS_PRUNE) \) -prune -o \
+	    -type f \( $(CSFILENAMES) \) -print > $@
+
+cscope.clean:  nametable.clean
+	-$(RM) cscope.out cscope.files .cscope.files.raw
+
+TAGS:  cscope.files FORCE
+	egrep -v '^-|^$$' $< | etags --members -
+
+TAGS.clean:  nametable.clean
+	-$(RM) TAGS
+
+# .nametable.files and .nametable.files.tmp are used to determine if any files
+# were added to/deleted from/renamed in the workspace.  If not, then there's
+# normally no need to rebuild the cscope database. To force a rebuild of
+# the cscope database: gmake nametable.clean.
+.nametable.files:  .nametable.files.tmp
+	( cmp -s $@ $< ) || ( cp $< $@ )
+	-$(RM) $<
+
+# `hg status' is slightly faster than `hg fstatus'. Both are
+# quite a bit slower on an NFS mounted file system, so this is
+# really geared towards repos on local file systems.
+.nametable.files.tmp:
+	-$(HG) fstatus -acmn > $@
+nametable.clean:
+	-$(RM) .nametable.files .nametable.files.tmp
+
+FORCE:
+
+.PHONY:		cscope cscope.clean TAGS.clean nametable.clean FORCE
diff --git a/hotspot/make/bsd/makefiles/debug.make b/hotspot/make/bsd/makefiles/debug.make
new file mode 100644
index 0000000..f0aec17
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/debug.make
@@ -0,0 +1,44 @@
+#
+# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Sets make macros for making debug version of VM
+
+# Compiler specific DEBUG_CFLAGS are passed in from gcc.make, sparcWorks.make
+DEBUG_CFLAGS/DEFAULT= $(DEBUG_CFLAGS)
+DEBUG_CFLAGS/BYFILE = $(DEBUG_CFLAGS/$@)$(DEBUG_CFLAGS/DEFAULT$(DEBUG_CFLAGS/$@))
+CFLAGS += $(DEBUG_CFLAGS/BYFILE)
+
+# Linker mapfile
+MAPFILE = $(GAMMADIR)/make/bsd/makefiles/mapfile-vers-debug
+
+_JUNK_ := $(shell echo -e >&2 ""\
+ "----------------------------------------------------------------------\n" \
+ "WARNING: 'make debug' is deprecated. It will be removed in the future.\n" \
+ "Please use 'make jvmg' to build debug JVM.                            \n" \
+ "----------------------------------------------------------------------\n")
+
+G_SUFFIX = _g
+VERSION = debug
+SYSDEFS += -DASSERT -DDEBUG
+PICFLAGS = DEFAULT
diff --git a/hotspot/make/bsd/makefiles/defs.make b/hotspot/make/bsd/makefiles/defs.make
new file mode 100644
index 0000000..7911365
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/defs.make
@@ -0,0 +1,170 @@
+#
+# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# The common definitions for hotspot bsd builds.
+# Include the top level defs.make under make directory instead of this one.
+# This file is included into make/defs.make.
+
+SLASH_JAVA ?= /java
+
+# Need PLATFORM (os-arch combo names) for jdk and hotspot, plus libarch name
+ARCH:=$(shell uname -m)
+PATH_SEP = :
+ifeq ($(LP64), 1)
+  ARCH_DATA_MODEL ?= 64
+else
+  ARCH_DATA_MODEL ?= 32
+endif
+
+# zero
+ifeq ($(ZERO_BUILD), true)
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    MAKE_ARGS      += LP64=1
+  endif
+  PLATFORM         = bsd-zero
+  VM_PLATFORM      = bsd_$(subst i386,i486,$(ZERO_LIBARCH))
+  HS_ARCH          = zero
+  ARCH             = zero
+endif
+
+# ia64
+ifeq ($(ARCH), ia64)
+  ARCH_DATA_MODEL = 64
+  MAKE_ARGS      += LP64=1
+  PLATFORM        = bsd-ia64
+  VM_PLATFORM     = bsd_ia64
+  HS_ARCH         = ia64
+endif
+
+# sparc
+ifeq ($(ARCH), sparc64)
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    ARCH_DATA_MODEL  = 64
+    MAKE_ARGS        += LP64=1
+    PLATFORM         = bsd-sparcv9
+    VM_PLATFORM      = bsd_sparcv9
+  else
+    ARCH_DATA_MODEL  = 32
+    PLATFORM         = bsd-sparc
+    VM_PLATFORM      = bsd_sparc
+  endif
+  HS_ARCH            = sparc
+endif
+
+# amd64
+ifneq (,$(findstring $(ARCH), amd64 x86_64))
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    ARCH_DATA_MODEL = 64
+    MAKE_ARGS       += LP64=1
+    PLATFORM        = bsd-amd64
+    VM_PLATFORM     = bsd_amd64
+    HS_ARCH         = x86
+  else
+    ARCH_DATA_MODEL = 32
+    PLATFORM        = bsd-i586
+    VM_PLATFORM     = bsd_i486
+    HS_ARCH         = x86
+    # We have to reset ARCH to i386 since SRCARCH relies on it
+    ARCH            = i386   
+  endif
+endif
+
+# i386
+ifeq ($(ARCH), i386)
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    ARCH_DATA_MODEL = 64
+    MAKE_ARGS       += LP64=1
+    PLATFORM        = bsd-amd64
+    VM_PLATFORM     = bsd_amd64
+    HS_ARCH         = x86
+    # We have to reset ARCH to amd64 since SRCARCH relies on it
+    ARCH            = amd64
+  else
+    ARCH_DATA_MODEL  = 32
+    PLATFORM         = bsd-i586
+    VM_PLATFORM      = bsd_i486
+    HS_ARCH          = x86
+  endif
+endif
+
+# ARM
+ifeq ($(ARCH), arm)
+  ARCH_DATA_MODEL  = 32
+  PLATFORM         = bsd-arm
+  VM_PLATFORM      = bsd_arm
+  HS_ARCH          = arm
+endif
+
+# PPC
+ifeq ($(ARCH), ppc)
+  ARCH_DATA_MODEL  = 32
+  PLATFORM         = bsd-ppc
+  VM_PLATFORM      = bsd_ppc
+  HS_ARCH          = ppc
+endif
+
+JDK_INCLUDE_SUBDIR=bsd
+
+# Library suffix
+OS_VENDOR:=$(shell uname -s)
+ifeq ($(OS_VENDOR),Darwin)
+  LIBRARY_SUFFIX=dylib
+else
+  LIBRARY_SUFFIX=so
+endif
+
+# FIXUP: The subdirectory for a debug build is NOT the same on all platforms
+VM_DEBUG=jvmg
+
+EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
+
+# client and server subdirectories have symbolic links to ../libjsig.so
+EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
+EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
+
+ifndef BUILD_CLIENT_ONLY
+EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
+EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
+endif
+
+ifneq ($(ZERO_BUILD), true)
+  ifeq ($(ARCH_DATA_MODEL), 32)
+    EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
+    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
+    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
+  endif
+endif
+
+# Serviceability Binaries
+# No SA Support for PPC, IA64, ARM or zero
+ADD_SA_BINARIES/x86   = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
+                        $(EXPORT_LIB_DIR)/sa-jdi.jar
+ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
+                        $(EXPORT_LIB_DIR)/sa-jdi.jar
+ADD_SA_BINARIES/ppc   =
+ADD_SA_BINARIES/ia64  =
+ADD_SA_BINARIES/arm   =
+ADD_SA_BINARIES/zero  =
+
+EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))
diff --git a/hotspot/make/bsd/makefiles/dtrace.make b/hotspot/make/bsd/makefiles/dtrace.make
new file mode 100644
index 0000000..6ee23a3
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/dtrace.make
@@ -0,0 +1,27 @@
+#
+# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Bsd does not build jvm_db
+LIBJVM_DB =
+
diff --git a/hotspot/make/bsd/makefiles/fastdebug.make b/hotspot/make/bsd/makefiles/fastdebug.make
new file mode 100644
index 0000000..c550d9b
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/fastdebug.make
@@ -0,0 +1,64 @@
+#
+# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Sets make macros for making debug version of VM
+
+# Compiler specific OPT_CFLAGS are passed in from gcc.make, sparcWorks.make
+OPT_CFLAGS/DEFAULT= $(OPT_CFLAGS)
+OPT_CFLAGS/BYFILE = $(OPT_CFLAGS/$@)$(OPT_CFLAGS/DEFAULT$(OPT_CFLAGS/$@))
+
+# (OPT_CFLAGS/SLOWER is also available, to alter compilation of buggy files)
+
+ifeq ($(BUILDARCH), ia64)
+  # Bug in GCC, causes hang.  -O1 will override the -O3 specified earlier
+  OPT_CFLAGS/callGenerator.o += -O1
+  OPT_CFLAGS/ciTypeFlow.o += -O1
+  OPT_CFLAGS/compile.o += -O1
+  OPT_CFLAGS/concurrentMarkSweepGeneration.o += -O1
+  OPT_CFLAGS/doCall.o += -O1
+  OPT_CFLAGS/generateOopMap.o += -O1
+  OPT_CFLAGS/generateOptoStub.o += -O1
+  OPT_CFLAGS/graphKit.o += -O1
+  OPT_CFLAGS/instanceKlass.o += -O1
+  OPT_CFLAGS/interpreterRT_ia64.o += -O1
+  OPT_CFLAGS/output.o += -O1
+  OPT_CFLAGS/parse1.o += -O1
+  OPT_CFLAGS/runtime.o += -O1
+  OPT_CFLAGS/synchronizer.o += -O1
+endif
+
+
+# If you set HOTSPARC_GENERIC=yes, you disable all OPT_CFLAGS settings
+CFLAGS$(HOTSPARC_GENERIC) += $(OPT_CFLAGS/BYFILE)
+
+# Set the environment variable HOTSPARC_GENERIC to "true"
+# to inhibit the effect of the previous line on CFLAGS.
+
+# Linker mapfile
+MAPFILE = $(GAMMADIR)/make/bsd/makefiles/mapfile-vers-debug
+
+G_SUFFIX = _g
+VERSION = optimized
+SYSDEFS += -DASSERT -DFASTDEBUG
+PICFLAGS = DEFAULT
diff --git a/hotspot/make/bsd/makefiles/gcc.make b/hotspot/make/bsd/makefiles/gcc.make
new file mode 100644
index 0000000..3b340dc
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/gcc.make
@@ -0,0 +1,267 @@
+#
+# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+OS_VENDOR = $(shell uname -s)
+
+#------------------------------------------------------------------------
+# CC, CPP & AS
+
+# When cross-compiling the ALT_COMPILER_PATH points
+# to the cross-compilation toolset
+ifdef CROSS_COMPILE_ARCH
+CXX = $(ALT_COMPILER_PATH)/g++
+CPP = $(ALT_COMPILER_PATH)/g++
+CC  = $(ALT_COMPILER_PATH)/gcc
+HOSTCPP = g++
+HOSTCC  = gcc
+else
+CXX ?= g++
+CPP = $(CXX)
+CC  ?= gcc
+HOSTCPP = $(CPP)
+HOSTCC  = $(CPP)
+endif
+
+AS   = $(CC) -c -x assembler-with-cpp
+
+# -dumpversion in gcc-2.91 shows "egcs-2.91.66". In later version, it only
+# prints the numbers (e.g. "2.95", "3.2.1")
+CC_VER_MAJOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f1)
+CC_VER_MINOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2)
+
+# check for precompiled headers support
+ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0"
+# Allow the user to turn off precompiled headers from the command line.
+ifneq ($(USE_PRECOMPILED_HEADER),0)
+USE_PRECOMPILED_HEADER=1
+PRECOMPILED_HEADER_DIR=.
+PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled.hpp
+PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.gch
+endif
+endif
+
+
+#------------------------------------------------------------------------
+# Compiler flags
+
+# position-independent code
+PICFLAG = -fPIC
+
+VM_PICFLAG/LIBJVM = $(PICFLAG)
+VM_PICFLAG/AOUT   =
+VM_PICFLAG        = $(VM_PICFLAG/$(LINK_INTO))
+
+ifeq ($(ZERO_BUILD), true)
+CFLAGS += $(LIBFFI_CFLAGS)
+endif
+ifeq ($(SHARK_BUILD), true)
+CFLAGS += $(LLVM_CFLAGS)
+endif
+CFLAGS += $(VM_PICFLAG)
+CFLAGS += -fno-rtti
+CFLAGS += -fno-exceptions
+CFLAGS += -pthread
+CFLAGS += -fcheck-new
+# version 4 and above support fvisibility=hidden (matches jni_x86.h file)
+# except 4.1.2 gives pointless warnings that can't be disabled (afaik)
+ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \) \& \( $(CC_VER_MINOR) \>= 3 \) \))" "0"
+CFLAGS += -fvisibility=hidden
+endif
+
+ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
+ARCHFLAG/i486    = -m32 -march=i586
+ARCHFLAG/amd64   = -m64
+ARCHFLAG/ia64    =
+ARCHFLAG/sparc   = -m32 -mcpu=v9
+ARCHFLAG/sparcv9 = -m64 -mcpu=v9
+ARCHFLAG/zero    = $(ZERO_ARCHFLAG)
+
+# Darwin-specific build flags
+ifeq ($(OS_VENDOR), Darwin)
+  # Ineffecient 16-byte stack re-alignment on Darwin/IA32
+  ARCHFLAG/i486 += -mstackrealign
+endif
+
+CFLAGS     += $(ARCHFLAG)
+AOUT_FLAGS += $(ARCHFLAG)
+LFLAGS     += $(ARCHFLAG)
+ASFLAGS    += $(ARCHFLAG)
+
+ifdef E500V2
+CFLAGS += -DE500V2
+endif
+
+# Use C++ Interpreter
+ifdef CC_INTERP
+  CFLAGS += -DCC_INTERP
+endif
+
+# Build for embedded targets
+ifdef JAVASE_EMBEDDED
+  CFLAGS += -DJAVASE_EMBEDDED
+endif
+
+# Keep temporary files (.ii, .s)
+ifdef NEED_ASM
+  CFLAGS += -save-temps
+else
+  CFLAGS += -pipe
+endif
+
+# Compiler warnings are treated as errors
+WARNINGS_ARE_ERRORS = -Werror
+
+# Except for a few acceptable ones
+# Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit
+# conversions which might affect the values. To avoid that, we need to turn
+# it off explicitly. 
+ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \) \& \( $(CC_VER_MINOR) \>= 3 \) \))" "0"
+ACCEPTABLE_WARNINGS = -Wpointer-arith -Wsign-compare
+else
+ACCEPTABLE_WARNINGS = -Wpointer-arith -Wconversion -Wsign-compare
+endif
+
+CFLAGS_WARN/DEFAULT = $(WARNINGS_ARE_ERRORS) $(ACCEPTABLE_WARNINGS)
+# Special cases
+CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@)) 
+# XXXDARWIN: for _dyld_bind_fully_image_containing_address
+ifeq ($(OS_VENDOR), Darwin)
+  CFLAGS_WARN/os_bsd.o = $(CFLAGS_WARN/DEFAULT) -Wno-deprecated-declarations
+endif
+
+
+# The flags to use for an Optimized g++ build
+OPT_CFLAGS += -O3
+
+# Hotspot uses very unstrict aliasing turn this optimization off
+OPT_CFLAGS += -fno-strict-aliasing
+
+# The gcc compiler segv's on ia64 when compiling bytecodeInterpreter.cpp 
+# if we use expensive-optimizations
+ifeq ($(BUILDARCH), ia64)
+OPT_CFLAGS += -fno-expensive-optimizations
+endif
+
+OPT_CFLAGS/NOOPT=-O0
+
+# 6835796. Problem in GCC 4.3.0 with mulnode.o optimized compilation. 
+ifneq "$(shell expr \( \( $(CC_VER_MAJOR) = 4 \) \& \( $(CC_VER_MINOR) = 3 \) \))" "0"
+OPT_CFLAGS/mulnode.o += -O0
+endif
+
+# Flags for generating make dependency flags.
+ifneq ("${CC_VER_MAJOR}", "2")
+DEPFLAGS = -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d)
+endif
+
+# -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
+ifneq ($(USE_PRECOMPILED_HEADER),1)
+CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
+endif
+
+#------------------------------------------------------------------------
+# Linker flags
+
+# statically link libstdc++.so, work with gcc but ignored by g++
+STATIC_STDCXX = -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
+
+# statically link libgcc and/or libgcc_s, libgcc does not exist before gcc-3.x.
+ifneq ("${CC_VER_MAJOR}", "2")
+STATIC_LIBGCC += -static-libgcc
+endif
+
+ifeq ($(BUILDARCH), ia64)
+LFLAGS += -Wl,-relax
+endif
+
+# Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file.
+MAPFLAG = -Xlinker --version-script=FILENAME
+
+#
+# Shared Library
+#
+ifeq ($(OS_VENDOR), Darwin)
+  # Standard linker flags
+  LFLAGS +=
+
+  # Darwin doesn't use ELF and doesn't support version scripts
+  LDNOMAP = true
+
+  # Use $(SONAMEFLAG:SONAME=soname) to specify the intrinsic name of a shared obj
+  SONAMEFLAG =
+
+  # Build shared library
+  SHARED_FLAG = -dynamiclib $(VM_PICFLAG)
+
+  # Keep symbols even they are not used
+  #AOUT_FLAGS += -Xlinker -export-dynamic
+else
+  # Enable linker optimization
+  LFLAGS += -Xlinker -O1
+
+  # Use $(SONAMEFLAG:SONAME=soname) to specify the intrinsic name of a shared obj
+  SONAMEFLAG = -Xlinker -soname=SONAME
+
+  # Build shared library
+  SHARED_FLAG = -shared $(VM_PICFLAG)
+
+  # Keep symbols even they are not used
+  AOUT_FLAGS += -Xlinker -export-dynamic
+endif
+
+#------------------------------------------------------------------------
+# Debug flags
+
+# Use the stabs format for debugging information (this is the default
+# on gcc-2.91). It's good enough, has all the information about line
+# numbers and local variables, and libjvm_g.so is only about 16M.
+# Change this back to "-g" if you want the most expressive format.
+# (warning: that could easily inflate libjvm_g.so to 150M!)
+# Note: The Itanium gcc compiler crashes when using -gstabs.
+DEBUG_CFLAGS/ia64  = -g
+DEBUG_CFLAGS/amd64 = -g
+DEBUG_CFLAGS/arm   = -g
+DEBUG_CFLAGS/ppc   = -g
+DEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH))
+ifeq ($(DEBUG_CFLAGS/$(BUILDARCH)),)
+DEBUG_CFLAGS += -gstabs
+endif
+
+# DEBUG_BINARIES overrides everything, use full -g debug information
+ifeq ($(DEBUG_BINARIES), true)
+  DEBUG_CFLAGS = -g
+  CFLAGS += $(DEBUG_CFLAGS)
+endif
+
+# If we are building HEADLESS, pass on to VM
+# so it can set the java.awt.headless property
+ifdef HEADLESS
+CFLAGS += -DHEADLESS
+endif
+
+# We are building Embedded for a small device
+# favor code space over speed
+ifdef MINIMIZE_RAM_USAGE
+CFLAGS += -DMINIMIZE_RAM_USAGE
+endif
diff --git a/hotspot/make/linux/makefiles/hp.make b/hotspot/make/bsd/makefiles/hp.make
similarity index 100%
copy from hotspot/make/linux/makefiles/hp.make
copy to hotspot/make/bsd/makefiles/hp.make
diff --git a/hotspot/make/linux/makefiles/hp1.make b/hotspot/make/bsd/makefiles/hp1.make
similarity index 100%
copy from hotspot/make/linux/makefiles/hp1.make
copy to hotspot/make/bsd/makefiles/hp1.make
diff --git a/hotspot/make/linux/makefiles/i486.make b/hotspot/make/bsd/makefiles/i486.make
similarity index 100%
copy from hotspot/make/linux/makefiles/i486.make
copy to hotspot/make/bsd/makefiles/i486.make
diff --git a/hotspot/make/linux/makefiles/ia64.make b/hotspot/make/bsd/makefiles/ia64.make
similarity index 100%
copy from hotspot/make/linux/makefiles/ia64.make
copy to hotspot/make/bsd/makefiles/ia64.make
diff --git a/hotspot/make/bsd/makefiles/jsig.make b/hotspot/make/bsd/makefiles/jsig.make
new file mode 100644
index 0000000..80be208
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/jsig.make
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Rules to build signal interposition library, used by vm.make
+
+# libjsig[_g].so: signal interposition library
+JSIG   = jsig
+JSIG_G = $(JSIG)$(G_SUFFIX)
+
+ifeq ($(OS_VENDOR), Darwin)
+  LIBJSIG   = lib$(JSIG).dylib
+  LIBJSIG_G = lib$(JSIG_G).dylib
+else
+  LIBJSIG   = lib$(JSIG).so
+  LIBJSIG_G = lib$(JSIG_G).so
+endif
+
+JSIGSRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/vm
+
+DEST_JSIG  = $(JDK_LIBDIR)/$(LIBJSIG)
+
+LIBJSIG_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jsig
+
+# On Bsd we really dont want a mapfile, as this library is small 
+# and preloaded using LD_PRELOAD, making functions private will 
+# cause problems with interposing. See CR: 6466665
+# LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
+
+LFLAGS_JSIG += -D_GNU_SOURCE -pthread $(LDFLAGS_HASH_STYLE)
+
+# DEBUG_BINARIES overrides everything, use full -g debug information
+ifeq ($(DEBUG_BINARIES), true)
+  JSIG_DEBUG_CFLAGS = -g
+endif
+
+$(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
+	@echo Making signal interposition lib...
+	$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
+                         $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $<
+	$(QUIETLY) [ -f $(LIBJSIG_G) ] || { ln -s $@ $(LIBJSIG_G); }
+
+install_jsig: $(LIBJSIG)
+	@echo "Copying $(LIBJSIG) to $(DEST_JSIG)"
+	$(QUIETLY) cp -f $(LIBJSIG) $(DEST_JSIG) && echo "Done"
+
+.PHONY: install_jsig
diff --git a/hotspot/make/bsd/makefiles/jvmg.make b/hotspot/make/bsd/makefiles/jvmg.make
new file mode 100644
index 0000000..8c56368
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/jvmg.make
@@ -0,0 +1,41 @@
+#
+# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Sets make macros for making debug version of VM
+
+# Compiler specific DEBUG_CFLAGS are passed in from gcc.make, sparcWorks.make
+DEBUG_CFLAGS/DEFAULT= $(DEBUG_CFLAGS)
+DEBUG_CFLAGS/BYFILE = $(DEBUG_CFLAGS/$@)$(DEBUG_CFLAGS/DEFAULT$(DEBUG_CFLAGS/$@))
+CFLAGS += $(DEBUG_CFLAGS/BYFILE)
+
+# Set the environment variable HOTSPARC_GENERIC to "true"
+# to inhibit the effect of the previous line on CFLAGS.
+
+# Linker mapfile
+MAPFILE = $(GAMMADIR)/make/bsd/makefiles/mapfile-vers-debug
+
+G_SUFFIX = _g
+VERSION = debug
+SYSDEFS += -DASSERT -DDEBUG
+PICFLAGS = DEFAULT
diff --git a/hotspot/make/bsd/makefiles/jvmti.make b/hotspot/make/bsd/makefiles/jvmti.make
new file mode 100644
index 0000000..ee3cc1e
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/jvmti.make
@@ -0,0 +1,117 @@
+#
+# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# This makefile (jvmti.make) is included from the jvmti.make in the
+# build directories.
+#
+# It knows how to build and run the tools to generate jvmti.
+
+include $(GAMMADIR)/make/bsd/makefiles/rules.make
+
+# #########################################################################
+
+TOPDIR      = $(shell echo `pwd`)
+GENERATED   = $(TOPDIR)/../generated
+JvmtiOutDir = $(GENERATED)/jvmtifiles
+
+JvmtiSrcDir = $(GAMMADIR)/src/share/vm/prims
+InterpreterSrcDir = $(GAMMADIR)/src/share/vm/interpreter
+
+# set VPATH so make knows where to look for source files
+Src_Dirs_V += $(JvmtiSrcDir)
+VPATH += $(Src_Dirs_V:%=%:)
+
+JvmtiGeneratedNames = \
+        jvmtiEnv.hpp \
+        jvmtiEnter.cpp \
+        jvmtiEnterTrace.cpp \
+        jvmtiEnvRecommended.cpp \
+        bytecodeInterpreterWithChecks.cpp \
+        jvmti.h \
+
+JvmtiEnvFillSource = $(JvmtiSrcDir)/jvmtiEnvFill.java
+JvmtiEnvFillClass = $(JvmtiOutDir)/jvmtiEnvFill.class
+
+JvmtiGenSource = $(JvmtiSrcDir)/jvmtiGen.java
+JvmtiGenClass = $(JvmtiOutDir)/jvmtiGen.class
+
+JvmtiGeneratedFiles = $(JvmtiGeneratedNames:%=$(JvmtiOutDir)/%)
+
+XSLT = $(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiGen
+
+.PHONY: all jvmtidocs clean cleanall
+
+# #########################################################################
+
+all: $(JvmtiGeneratedFiles)
+
+both = $(JvmtiGenClass) $(JvmtiSrcDir)/jvmti.xml $(JvmtiSrcDir)/jvmtiLib.xsl
+
+$(JvmtiGenClass): $(JvmtiGenSource)
+	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiGenSource)
+
+$(JvmtiEnvFillClass): $(JvmtiEnvFillSource)
+	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiEnvFillSource)
+
+$(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl
+	@echo Generating $@
+	$(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnter.xsl -OUT $(JvmtiOutDir)/jvmtiEnter.cpp -PARAM interface jvmti
+
+$(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp: $(JvmtiGenClass) $(InterpreterSrcDir)/bytecodeInterpreter.cpp $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl
+	@echo Generating $@
+	$(XSLT) -IN $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml -XSL $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl -OUT $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp 
+
+$(JvmtiOutDir)/jvmtiEnterTrace.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl
+	@echo Generating $@
+	$(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnter.xsl -OUT $(JvmtiOutDir)/jvmtiEnterTrace.cpp -PARAM interface jvmti -PARAM trace Trace
+
+$(JvmtiOutDir)/jvmtiEnvRecommended.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnv.xsl $(JvmtiSrcDir)/jvmtiEnv.cpp $(JvmtiEnvFillClass)
+	@echo Generating $@
+	$(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnv.xsl -OUT $(JvmtiOutDir)/jvmtiEnvStub.cpp
+	$(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiEnvFill $(JvmtiSrcDir)/jvmtiEnv.cpp $(JvmtiOutDir)/jvmtiEnvStub.cpp $(JvmtiOutDir)/jvmtiEnvRecommended.cpp
+
+$(JvmtiOutDir)/jvmtiEnv.hpp: $(both) $(JvmtiSrcDir)/jvmtiHpp.xsl
+	@echo Generating $@
+	$(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiHpp.xsl -OUT $(JvmtiOutDir)/jvmtiEnv.hpp
+
+$(JvmtiOutDir)/jvmti.h: $(both) $(JvmtiSrcDir)/jvmtiH.xsl
+	@echo Generating $@
+	$(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiH.xsl -OUT $(JvmtiOutDir)/jvmti.h
+
+jvmtidocs:  $(JvmtiOutDir)/jvmti.html 
+
+$(JvmtiOutDir)/jvmti.html: $(both) $(JvmtiSrcDir)/jvmti.xsl
+	@echo Generating $@
+	$(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmti.xsl -OUT $(JvmtiOutDir)/jvmti.html
+
+# #########################################################################
+
+clean :
+	rm $(JvmtiGenClass) $(JvmtiEnvFillClass) $(JvmtiGeneratedFiles)
+
+cleanall :
+	rm $(JvmtiGenClass) $(JvmtiEnvFillClass) $(JvmtiGeneratedFiles)
+
+# #########################################################################
+
diff --git a/hotspot/make/bsd/makefiles/launcher.make b/hotspot/make/bsd/makefiles/launcher.make
new file mode 100644
index 0000000..b405fbc
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/launcher.make
@@ -0,0 +1,93 @@
+#
+# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Rules to build gamma launcher, used by vm.make
+
+
+LAUNCHER_SCRIPT = hotspot
+LAUNCHER   = gamma
+
+LAUNCHERDIR   := $(GAMMADIR)/src/os/posix/launcher
+LAUNCHERDIR_SHARE := $(GAMMADIR)/src/share/tools/launcher
+LAUNCHERFLAGS := $(ARCHFLAG) \
+                -I$(LAUNCHERDIR) -I$(GAMMADIR)/src/share/vm/prims \
+                -I$(LAUNCHERDIR_SHARE) \
+                -DFULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
+                -DJDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \
+                -DJDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \
+                -DARCH=\"$(LIBARCH)\" \
+                -DGAMMA \
+                -DLAUNCHER_TYPE=\"gamma\" \
+                -DLINK_INTO_$(LINK_INTO) \
+                $(TARGET_DEFINES)
+
+ifeq ($(LINK_INTO),AOUT)
+  LAUNCHER.o                 = launcher.o $(JVM_OBJ_FILES)
+  LAUNCHER_MAPFILE           = mapfile_reorder
+  LFLAGS_LAUNCHER$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LAUNCHER_MAPFILE))
+  LFLAGS_LAUNCHER           += $(SONAMEFLAG:SONAME=$(LIBJVM)) $(STATIC_LIBGCC)
+  LIBS_LAUNCHER             += $(STATIC_STDCXX) $(LIBS)
+else
+  LAUNCHER.o                 = launcher.o
+  LFLAGS_LAUNCHER           += -L`pwd`
+  LIBS_LAUNCHER             += -l$(JVM) $(LIBS)
+endif
+
+LINK_LAUNCHER = $(LINK.c)
+
+LINK_LAUNCHER/PRE_HOOK  = $(LINK_LIB.CC/PRE_HOOK)
+LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/POST_HOOK)
+
+LAUNCHER_OUT = launcher
+
+SUFFIXES += .d
+
+SOURCES := $(shell find $(LAUNCHERDIR) -name "*.c")
+SOURCES_SHARE := $(shell find $(LAUNCHERDIR_SHARE) -name "*.c")
+
+OBJS := $(patsubst $(LAUNCHERDIR)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES)) $(patsubst $(LAUNCHERDIR_SHARE)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES_SHARE))
+
+DEPFILES := $(patsubst %.o,%.d,$(OBJS))
+-include $(DEPFILES)
+
+$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
+	$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
+	$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
+
+$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
+	$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
+	$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
+
+$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
+	$(QUIETLY) echo Linking launcher...
+	$(QUIETLY) $(LINK_LAUNCHER/PRE_HOOK)
+	$(QUIETLY) $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(OBJS) $(LIBS_LAUNCHER)
+	$(QUIETLY) $(LINK_LAUNCHER/POST_HOOK)
+
+$(LAUNCHER): $(LAUNCHER_SCRIPT)
+
+$(LAUNCHER_SCRIPT): $(LAUNCHERDIR)/launcher.script
+	$(QUIETLY) sed -e 's/@@LIBARCH@@/$(LIBARCH)/g' $< > $@
+	$(QUIETLY) chmod +x $@
+
diff --git a/hotspot/make/bsd/makefiles/mapfile-vers-debug b/hotspot/make/bsd/makefiles/mapfile-vers-debug
new file mode 100644
index 0000000..9a2d42f
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/mapfile-vers-debug
@@ -0,0 +1,291 @@
+#
+# @(#)mapfile-vers-debug	1.18 07/10/25 16:47:35
+#
+
+#
+# Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+        global:
+                # JNI
+                JNI_CreateJavaVM;
+                JNI_GetCreatedJavaVMs;
+                JNI_GetDefaultJavaVMInitArgs;
+
+                # JVM
+                JVM_Accept;
+                JVM_ActiveProcessorCount;
+                JVM_AllocateNewArray;
+                JVM_AllocateNewObject;
+                JVM_ArrayCopy;
+                JVM_AssertionStatusDirectives;
+                JVM_Available;
+                JVM_Bind;
+                JVM_ClassDepth;
+                JVM_ClassLoaderDepth;
+                JVM_Clone;
+                JVM_Close;
+                JVM_CX8Field;
+                JVM_CompileClass;
+                JVM_CompileClasses;
+                JVM_CompilerCommand;
+                JVM_Connect;
+                JVM_ConstantPoolGetClassAt;
+                JVM_ConstantPoolGetClassAtIfLoaded;
+                JVM_ConstantPoolGetDoubleAt;
+                JVM_ConstantPoolGetFieldAt;
+                JVM_ConstantPoolGetFieldAtIfLoaded;
+                JVM_ConstantPoolGetFloatAt;
+                JVM_ConstantPoolGetIntAt;
+                JVM_ConstantPoolGetLongAt;
+                JVM_ConstantPoolGetMethodAt;
+                JVM_ConstantPoolGetMethodAtIfLoaded;
+                JVM_ConstantPoolGetMemberRefInfoAt;
+                JVM_ConstantPoolGetSize;
+                JVM_ConstantPoolGetStringAt;
+                JVM_ConstantPoolGetUTF8At;
+                JVM_CountStackFrames;
+                JVM_CurrentClassLoader;
+                JVM_CurrentLoadedClass;
+                JVM_CurrentThread;
+                JVM_CurrentTimeMillis;
+                JVM_DefineClass;
+                JVM_DefineClassWithSource;
+                JVM_DefineClassWithSourceCond;
+                JVM_DesiredAssertionStatus;
+                JVM_DisableCompiler;
+                JVM_DoPrivileged;
+                JVM_DTraceGetVersion;
+                JVM_DTraceActivate;
+                JVM_DTraceIsProbeEnabled;
+                JVM_DTraceIsSupported;
+                JVM_DTraceDispose;
+                JVM_DumpAllStacks;
+                JVM_DumpThreads;
+                JVM_EnableCompiler;
+                JVM_Exit;
+                JVM_FillInStackTrace;
+                JVM_FindClassFromClass;
+                JVM_FindClassFromClassLoader;
+                JVM_FindClassFromBootLoader;
+                JVM_FindLibraryEntry;
+                JVM_FindLoadedClass;
+                JVM_FindPrimitiveClass;
+                JVM_FindSignal;
+                JVM_FreeMemory;
+                JVM_GC;
+                JVM_GetAllThreads;
+                JVM_GetArrayElement;
+                JVM_GetArrayLength;
+                JVM_GetCPClassNameUTF;
+                JVM_GetCPFieldClassNameUTF;
+                JVM_GetCPFieldModifiers;
+                JVM_GetCPFieldNameUTF;
+                JVM_GetCPFieldSignatureUTF;
+                JVM_GetCPMethodClassNameUTF;
+                JVM_GetCPMethodModifiers;
+                JVM_GetCPMethodNameUTF;
+                JVM_GetCPMethodSignatureUTF;
+                JVM_GetCallerClass;
+                JVM_GetClassAccessFlags;
+                JVM_GetClassAnnotations;
+                JVM_GetClassCPEntriesCount;
+                JVM_GetClassCPTypes;
+                JVM_GetClassConstantPool;
+                JVM_GetClassContext;
+                JVM_GetClassDeclaredConstructors;
+                JVM_GetClassDeclaredFields;
+                JVM_GetClassDeclaredMethods;
+                JVM_GetClassFieldsCount;
+                JVM_GetClassInterfaces;
+                JVM_GetClassLoader;
+                JVM_GetClassMethodsCount;
+                JVM_GetClassModifiers;
+                JVM_GetClassName;
+                JVM_GetClassNameUTF;
+		JVM_GetClassSignature;
+                JVM_GetClassSigners;
+                JVM_GetComponentType;
+                JVM_GetDeclaredClasses;
+                JVM_GetDeclaringClass;
+                JVM_GetEnclosingMethodInfo;
+                JVM_GetFieldAnnotations;
+                JVM_GetFieldIxModifiers;
+                JVM_GetHostName;
+                JVM_GetInheritedAccessControlContext;
+                JVM_GetInterfaceVersion;
+                JVM_GetLastErrorString;
+                JVM_GetManagement;
+                JVM_GetMethodAnnotations;
+                JVM_GetMethodDefaultAnnotationValue;
+                JVM_GetMethodIxArgsSize;
+                JVM_GetMethodIxByteCode;
+                JVM_GetMethodIxByteCodeLength;
+                JVM_GetMethodIxExceptionIndexes;
+                JVM_GetMethodIxExceptionTableEntry;
+                JVM_GetMethodIxExceptionTableLength;
+                JVM_GetMethodIxExceptionsCount;
+                JVM_GetMethodIxLocalsCount;
+                JVM_GetMethodIxMaxStack;
+                JVM_GetMethodIxModifiers;
+                JVM_GetMethodIxNameUTF;
+                JVM_GetMethodIxSignatureUTF;
+                JVM_GetMethodParameterAnnotations;
+                JVM_GetPrimitiveArrayElement;
+                JVM_GetProtectionDomain;
+                JVM_GetSockName;
+                JVM_GetSockOpt;
+                JVM_GetStackAccessControlContext;
+                JVM_GetStackTraceDepth;
+                JVM_GetStackTraceElement;
+                JVM_GetSystemPackage;
+                JVM_GetSystemPackages;
+                JVM_GetThreadStateNames;
+                JVM_GetThreadStateValues;
+                JVM_GetVersionInfo;
+                JVM_Halt;
+                JVM_HoldsLock;
+                JVM_IHashCode;
+                JVM_InitAgentProperties;
+                JVM_InitProperties;
+                JVM_InitializeCompiler;
+                JVM_InitializeSocketLibrary;
+                JVM_InternString;
+                JVM_Interrupt;
+                JVM_InvokeMethod;
+                JVM_IsArrayClass;
+                JVM_IsConstructorIx;
+                JVM_IsInterface;
+                JVM_IsInterrupted;
+                JVM_IsNaN;
+                JVM_IsPrimitiveClass;
+                JVM_IsSameClassPackage;
+                JVM_IsSilentCompiler;
+                JVM_IsSupportedJNIVersion;
+                JVM_IsThreadAlive;
+                JVM_LatestUserDefinedLoader;
+                JVM_Listen;
+                JVM_LoadClass0;
+                JVM_LoadLibrary;
+                JVM_Lseek;
+                JVM_MaxObjectInspectionAge;
+                JVM_MaxMemory;
+                JVM_MonitorNotify;
+                JVM_MonitorNotifyAll;
+                JVM_MonitorWait;
+                JVM_NanoTime;
+                JVM_NativePath;
+                JVM_NewArray;
+                JVM_NewInstanceFromConstructor;
+                JVM_NewMultiArray;
+                JVM_OnExit;
+                JVM_Open;
+                JVM_PrintStackTrace;
+                JVM_RaiseSignal;
+                JVM_RawMonitorCreate;
+                JVM_RawMonitorDestroy;
+                JVM_RawMonitorEnter;
+                JVM_RawMonitorExit;
+                JVM_Read;
+                JVM_Recv;
+                JVM_RecvFrom;
+                JVM_RegisterSignal;
+                JVM_ReleaseUTF;
+                JVM_ResolveClass;
+                JVM_ResumeThread;
+                JVM_Send;
+                JVM_SendTo;
+                JVM_SetArrayElement;
+                JVM_SetClassSigners;
+                JVM_SetLength;
+                JVM_SetPrimitiveArrayElement;
+                JVM_SetProtectionDomain;
+                JVM_SetSockOpt;
+                JVM_SetThreadPriority;
+                JVM_Sleep;
+                JVM_Socket;
+                JVM_SocketAvailable;
+                JVM_SocketClose;
+                JVM_SocketShutdown;
+                JVM_StartThread;
+                JVM_StopThread;
+                JVM_SuspendThread;
+                JVM_SupportsCX8;
+                JVM_Sync;
+                JVM_Timeout;
+                JVM_TotalMemory;
+                JVM_TraceInstructions;
+                JVM_TraceMethodCalls;
+                JVM_UnloadLibrary;
+                JVM_Write;
+                JVM_Yield;
+                JVM_handle_bsd_signal;
+
+                # Old reflection routines
+                # These do not need to be present in the product build in JDK 1.4
+                # but their code has not been removed yet because there will not
+                # be a substantial code savings until JVM_InvokeMethod and
+                # JVM_NewInstanceFromConstructor can also be removed; see
+                # reflectionCompat.hpp.
+                JVM_GetClassConstructor;
+                JVM_GetClassConstructors;
+                JVM_GetClassField;
+                JVM_GetClassFields;
+                JVM_GetClassMethod;
+                JVM_GetClassMethods;
+                JVM_GetField;
+                JVM_GetPrimitiveField;
+                JVM_NewInstance;
+                JVM_SetField;
+                JVM_SetPrimitiveField;
+
+                # debug JVM
+                JVM_AccessVMBooleanFlag;
+                JVM_AccessVMIntFlag;
+                JVM_VMBreakPoint;
+
+                # miscellaneous functions
+                jio_fprintf;
+                jio_printf;
+                jio_snprintf;
+                jio_vfprintf;
+                jio_vsnprintf;
+                fork1;
+                numa_warn;
+                numa_error;
+
+                # Needed because there is no JVM interface for this.
+                sysThreadAvailableStackWithSlack;
+
+                # This is for Forte Analyzer profiling support.
+                AsyncGetCallTrace;
+
+		# INSERT VTABLE SYMBOLS HERE
+
+        local:
+                *;
+};
+
diff --git a/hotspot/make/linux/makefiles/mapfile-vers-jsig b/hotspot/make/bsd/makefiles/mapfile-vers-jsig
similarity index 100%
copy from hotspot/make/linux/makefiles/mapfile-vers-jsig
copy to hotspot/make/bsd/makefiles/mapfile-vers-jsig
diff --git a/hotspot/make/bsd/makefiles/mapfile-vers-product b/hotspot/make/bsd/makefiles/mapfile-vers-product
new file mode 100644
index 0000000..7a5d7c7
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/mapfile-vers-product
@@ -0,0 +1,286 @@
+#
+# @(#)mapfile-vers-product	1.19 08/02/12 10:56:37
+#
+
+#
+# Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Define public interface.
+
+SUNWprivate_1.1 {
+        global:
+                # JNI
+                JNI_CreateJavaVM;
+                JNI_GetCreatedJavaVMs;
+                JNI_GetDefaultJavaVMInitArgs;
+
+                # JVM
+                JVM_Accept;
+                JVM_ActiveProcessorCount;
+                JVM_AllocateNewArray;
+                JVM_AllocateNewObject;
+                JVM_ArrayCopy;
+                JVM_AssertionStatusDirectives;
+                JVM_Available;
+                JVM_Bind;
+                JVM_ClassDepth;
+                JVM_ClassLoaderDepth;
+                JVM_Clone;
+                JVM_Close;
+                JVM_CX8Field;
+                JVM_CompileClass;
+                JVM_CompileClasses;
+                JVM_CompilerCommand;
+                JVM_Connect;
+                JVM_ConstantPoolGetClassAt;
+                JVM_ConstantPoolGetClassAtIfLoaded;
+                JVM_ConstantPoolGetDoubleAt;
+                JVM_ConstantPoolGetFieldAt;
+                JVM_ConstantPoolGetFieldAtIfLoaded;
+                JVM_ConstantPoolGetFloatAt;
+                JVM_ConstantPoolGetIntAt;
+                JVM_ConstantPoolGetLongAt;
+                JVM_ConstantPoolGetMethodAt;
+                JVM_ConstantPoolGetMethodAtIfLoaded;
+                JVM_ConstantPoolGetMemberRefInfoAt;
+                JVM_ConstantPoolGetSize;
+                JVM_ConstantPoolGetStringAt;
+                JVM_ConstantPoolGetUTF8At;
+                JVM_CountStackFrames;
+                JVM_CurrentClassLoader;
+                JVM_CurrentLoadedClass;
+                JVM_CurrentThread;
+                JVM_CurrentTimeMillis;
+                JVM_DefineClass;
+                JVM_DefineClassWithSource;
+                JVM_DefineClassWithSourceCond;
+                JVM_DesiredAssertionStatus;
+                JVM_DisableCompiler;
+                JVM_DoPrivileged;
+                JVM_DTraceGetVersion;
+                JVM_DTraceActivate;
+                JVM_DTraceIsProbeEnabled;
+                JVM_DTraceIsSupported;
+                JVM_DTraceDispose;
+                JVM_DumpAllStacks;
+                JVM_DumpThreads;
+                JVM_EnableCompiler;
+                JVM_Exit;
+                JVM_FillInStackTrace;
+                JVM_FindClassFromClass;
+                JVM_FindClassFromClassLoader;
+                JVM_FindClassFromBootLoader;
+                JVM_FindLibraryEntry;
+                JVM_FindLoadedClass;
+                JVM_FindPrimitiveClass;
+                JVM_FindSignal;
+                JVM_FreeMemory;
+                JVM_GC;
+                JVM_GetAllThreads;
+                JVM_GetArrayElement;
+                JVM_GetArrayLength;
+                JVM_GetCPClassNameUTF;
+                JVM_GetCPFieldClassNameUTF;
+                JVM_GetCPFieldModifiers;
+                JVM_GetCPFieldNameUTF;
+                JVM_GetCPFieldSignatureUTF;
+                JVM_GetCPMethodClassNameUTF;
+                JVM_GetCPMethodModifiers;
+                JVM_GetCPMethodNameUTF;
+                JVM_GetCPMethodSignatureUTF;
+                JVM_GetCallerClass;
+                JVM_GetClassAccessFlags;
+                JVM_GetClassAnnotations;
+                JVM_GetClassCPEntriesCount;
+                JVM_GetClassCPTypes;
+                JVM_GetClassConstantPool;
+                JVM_GetClassContext;
+                JVM_GetClassDeclaredConstructors;
+                JVM_GetClassDeclaredFields;
+                JVM_GetClassDeclaredMethods;
+                JVM_GetClassFieldsCount;
+                JVM_GetClassInterfaces;
+                JVM_GetClassLoader;
+                JVM_GetClassMethodsCount;
+                JVM_GetClassModifiers;
+                JVM_GetClassName;
+                JVM_GetClassNameUTF;
+                JVM_GetClassSignature;
+                JVM_GetClassSigners;
+                JVM_GetComponentType;
+                JVM_GetDeclaredClasses;
+                JVM_GetDeclaringClass;
+                JVM_GetEnclosingMethodInfo;
+                JVM_GetFieldAnnotations;
+                JVM_GetFieldIxModifiers;
+                JVM_GetHostName;
+                JVM_GetInheritedAccessControlContext;
+                JVM_GetInterfaceVersion;
+                JVM_GetLastErrorString;
+                JVM_GetManagement;
+                JVM_GetMethodAnnotations;
+                JVM_GetMethodDefaultAnnotationValue;
+                JVM_GetMethodIxArgsSize;
+                JVM_GetMethodIxByteCode;
+                JVM_GetMethodIxByteCodeLength;
+                JVM_GetMethodIxExceptionIndexes;
+                JVM_GetMethodIxExceptionTableEntry;
+                JVM_GetMethodIxExceptionTableLength;
+                JVM_GetMethodIxExceptionsCount;
+                JVM_GetMethodIxLocalsCount;
+                JVM_GetMethodIxMaxStack;
+                JVM_GetMethodIxModifiers;
+                JVM_GetMethodIxNameUTF;
+                JVM_GetMethodIxSignatureUTF;
+                JVM_GetMethodParameterAnnotations;
+                JVM_GetPrimitiveArrayElement;
+                JVM_GetProtectionDomain;
+                JVM_GetSockName;
+                JVM_GetSockOpt;
+                JVM_GetStackAccessControlContext;
+                JVM_GetStackTraceDepth;
+                JVM_GetStackTraceElement;
+                JVM_GetSystemPackage;
+                JVM_GetSystemPackages;
+                JVM_GetThreadStateNames;
+                JVM_GetThreadStateValues;
+                JVM_GetVersionInfo;
+                JVM_Halt;
+                JVM_HoldsLock;
+                JVM_IHashCode;
+                JVM_InitAgentProperties;
+                JVM_InitProperties;
+                JVM_InitializeCompiler;
+                JVM_InitializeSocketLibrary;
+                JVM_InternString;
+                JVM_Interrupt;
+                JVM_InvokeMethod;
+                JVM_IsArrayClass;
+                JVM_IsConstructorIx;
+                JVM_IsInterface;
+                JVM_IsInterrupted;
+                JVM_IsNaN;
+                JVM_IsPrimitiveClass;
+                JVM_IsSameClassPackage;
+                JVM_IsSilentCompiler;
+                JVM_IsSupportedJNIVersion;
+                JVM_IsThreadAlive;
+                JVM_LatestUserDefinedLoader;
+                JVM_Listen;
+                JVM_LoadClass0;
+                JVM_LoadLibrary;
+                JVM_Lseek;
+                JVM_MaxObjectInspectionAge;
+                JVM_MaxMemory;
+                JVM_MonitorNotify;
+                JVM_MonitorNotifyAll;
+                JVM_MonitorWait;
+                JVM_NanoTime;
+                JVM_NativePath;
+                JVM_NewArray;
+                JVM_NewInstanceFromConstructor;
+                JVM_NewMultiArray;
+                JVM_OnExit;
+                JVM_Open;
+                JVM_PrintStackTrace;
+                JVM_RaiseSignal;
+                JVM_RawMonitorCreate;
+                JVM_RawMonitorDestroy;
+                JVM_RawMonitorEnter;
+                JVM_RawMonitorExit;
+                JVM_Read;
+                JVM_Recv;
+                JVM_RecvFrom;
+                JVM_RegisterSignal;
+                JVM_ReleaseUTF;
+                JVM_ResolveClass;
+                JVM_ResumeThread;
+                JVM_Send;
+                JVM_SendTo;
+                JVM_SetArrayElement;
+                JVM_SetClassSigners;
+                JVM_SetLength;
+                JVM_SetPrimitiveArrayElement;
+                JVM_SetProtectionDomain;
+                JVM_SetSockOpt;
+                JVM_SetThreadPriority;
+                JVM_Sleep;
+                JVM_Socket;
+                JVM_SocketAvailable;
+                JVM_SocketClose;
+                JVM_SocketShutdown;
+                JVM_StartThread;
+                JVM_StopThread;
+                JVM_SuspendThread;
+                JVM_SupportsCX8;
+                JVM_Sync;
+                JVM_Timeout;
+                JVM_TotalMemory;
+                JVM_TraceInstructions;
+                JVM_TraceMethodCalls;
+                JVM_UnloadLibrary;
+                JVM_Write;
+                JVM_Yield;
+                JVM_handle_bsd_signal;
+
+                # Old reflection routines
+                # These do not need to be present in the product build in JDK 1.4
+                # but their code has not been removed yet because there will not
+                # be a substantial code savings until JVM_InvokeMethod and
+                # JVM_NewInstanceFromConstructor can also be removed; see
+                # reflectionCompat.hpp.
+                JVM_GetClassConstructor;
+                JVM_GetClassConstructors;
+                JVM_GetClassField;
+                JVM_GetClassFields;
+                JVM_GetClassMethod;
+                JVM_GetClassMethods;
+                JVM_GetField;
+                JVM_GetPrimitiveField;
+                JVM_NewInstance;
+                JVM_SetField;
+                JVM_SetPrimitiveField;
+
+                # miscellaneous functions
+                jio_fprintf;
+                jio_printf;
+                jio_snprintf;
+                jio_vfprintf;
+                jio_vsnprintf;
+                fork1;
+                numa_warn;
+                numa_error;
+
+                # Needed because there is no JVM interface for this.
+                sysThreadAvailableStackWithSlack;
+
+                # This is for Forte Analyzer profiling support.
+                AsyncGetCallTrace;
+
+		# INSERT VTABLE SYMBOLS HERE
+
+        local:
+                *;
+};
+
diff --git a/hotspot/make/bsd/makefiles/optimized.make b/hotspot/make/bsd/makefiles/optimized.make
new file mode 100644
index 0000000..6090c97
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/optimized.make
@@ -0,0 +1,44 @@
+#
+# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Sets make macros for making optimized version of Gamma VM
+# (This is the "product", not the "release" version.)
+
+# Compiler specific OPT_CFLAGS are passed in from gcc.make, sparcWorks.make
+OPT_CFLAGS/DEFAULT= $(OPT_CFLAGS)
+OPT_CFLAGS/BYFILE = $(OPT_CFLAGS/$@)$(OPT_CFLAGS/DEFAULT$(OPT_CFLAGS/$@))
+
+# (OPT_CFLAGS/SLOWER is also available, to alter compilation of buggy files)
+
+# If you set HOTSPARC_GENERIC=yes, you disable all OPT_CFLAGS settings
+CFLAGS$(HOTSPARC_GENERIC) += $(OPT_CFLAGS/BYFILE)
+
+# Set the environment variable HOTSPARC_GENERIC to "true"
+# to inhibit the effect of the previous line on CFLAGS.
+
+# Linker mapfile
+MAPFILE = $(GAMMADIR)/make/bsd/makefiles/mapfile-vers-debug
+
+G_SUFFIX =
+VERSION = optimized
diff --git a/hotspot/make/bsd/makefiles/ppc.make b/hotspot/make/bsd/makefiles/ppc.make
new file mode 100644
index 0000000..92957f9
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/ppc.make
@@ -0,0 +1,30 @@
+#
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+
+# Must also specify if CPU is big endian
+CFLAGS += -DVM_BIG_ENDIAN
+
diff --git a/hotspot/make/bsd/makefiles/product.make b/hotspot/make/bsd/makefiles/product.make
new file mode 100644
index 0000000..1b8acbb
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/product.make
@@ -0,0 +1,58 @@
+#
+# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Sets make macros for making optimized version of Gamma VM
+# (This is the "product", not the "release" version.)
+
+# Compiler specific OPT_CFLAGS are passed in from gcc.make, sparcWorks.make
+OPT_CFLAGS/DEFAULT= $(OPT_CFLAGS)
+OPT_CFLAGS/BYFILE = $(OPT_CFLAGS/$@)$(OPT_CFLAGS/DEFAULT$(OPT_CFLAGS/$@))
+
+# (OPT_CFLAGS/SLOWER is also available, to alter compilation of buggy files)
+
+# If you set HOTSPARC_GENERIC=yes, you disable all OPT_CFLAGS settings
+CFLAGS$(HOTSPARC_GENERIC) += $(OPT_CFLAGS/BYFILE)
+
+# Set the environment variable HOTSPARC_GENERIC to "true"
+# to inhibit the effect of the previous line on CFLAGS.
+
+# Linker mapfile
+MAPFILE = $(GAMMADIR)/make/bsd/makefiles/mapfile-vers-product
+
+G_SUFFIX =
+SYSDEFS += -DPRODUCT
+VERSION = optimized
+
+# use -g to strip library as -x will discard its symbol table; -x is fine for
+# executables.
+ifdef CROSS_COMPILE_ARCH
+  STRIP = $(ALT_COMPILER_PATH)/strip
+else
+  STRIP = strip
+endif
+STRIP_LIBJVM = $(STRIP) -g $@ || exit 1;
+STRIP_AOUT   = $(STRIP) -x $@ || exit 1;
+
+# Don't strip in VM build; JDK build will strip libraries later
+# LINK_LIB.CC/POST_HOOK += $(STRIP_$(LINK_INTO))
diff --git a/hotspot/make/linux/makefiles/profiled.make b/hotspot/make/bsd/makefiles/profiled.make
similarity index 100%
copy from hotspot/make/linux/makefiles/profiled.make
copy to hotspot/make/bsd/makefiles/profiled.make
diff --git a/hotspot/make/linux/makefiles/rules.make b/hotspot/make/bsd/makefiles/rules.make
similarity index 100%
copy from hotspot/make/linux/makefiles/rules.make
copy to hotspot/make/bsd/makefiles/rules.make
diff --git a/hotspot/make/bsd/makefiles/sa.make b/hotspot/make/bsd/makefiles/sa.make
new file mode 100644
index 0000000..4e6a00e
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/sa.make
@@ -0,0 +1,121 @@
+#
+# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# This makefile (sa.make) is included from the sa.make in the
+# build directories.
+
+# This makefile is used to build Serviceability Agent java code
+# and generate JNI header file for native methods.
+
+include $(GAMMADIR)/make/bsd/makefiles/rules.make
+
+AGENT_DIR = $(GAMMADIR)/agent
+
+include $(GAMMADIR)/make/sa.files
+
+TOPDIR    = $(shell echo `pwd`)
+GENERATED = $(TOPDIR)/../generated
+
+# tools.jar is needed by the JDI - SA binding
+SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
+
+# TODO: if it's a modules image, check if SA module is installed.
+MODULELIB_PATH= $(BOOT_JAVA_HOME)/lib/modules
+
+# gnumake 3.78.1 does not accept the *s that
+# are in AGENT_FILES1 and AGENT_FILES2, so use the shell to expand them
+AGENT_FILES1 := $(shell /bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES1))
+AGENT_FILES2 := $(shell /bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES2))
+
+AGENT_FILES1_LIST := $(GENERATED)/agent1.classes.list
+AGENT_FILES2_LIST := $(GENERATED)/agent2.classes.list
+
+SA_CLASSDIR = $(GENERATED)/saclasses
+
+SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)"
+
+SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties
+
+# if $(AGENT_DIR) does not exist, we don't build SA
+# also, we don't build SA on Itanium, PowerPC, ARM or zero.
+
+all: 
+	if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" \
+             -a "$(SRCARCH)" != "arm" \
+             -a "$(SRCARCH)" != "ppc" \
+             -a "$(SRCARCH)" != "zero" ] ; then \
+	   $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
+	fi
+
+$(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
+	$(QUIETLY) echo "Making $@"
+	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
+	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
+	  exit 1; \
+	fi
+	$(QUIETLY) if [ ! -f $(SA_CLASSPATH) -a ! -d $(MODULELIB_PATH) ] ; then \
+	  echo "Missing $(SA_CLASSPATH) file. Use 1.6.0 or later version of JDK";\
+	  echo ""; \
+	  exit 1; \
+	fi
+	$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
+	  mkdir -p $(SA_CLASSDIR);        \
+	fi
+	
+# Note: When indented, make tries to execute the '$(shell' comment.
+# In some environments, cmd processors have limited line length.
+# To prevent the javac invocation in the next block from using
+# a very long cmd line, we use javac's @file-list option. We
+# generate the file lists using make's built-in 'foreach' control
+# flow which also avoids cmd processor line length issues. Since
+# the 'foreach' is done as part of make's macro expansion phase,
+# the initialization of the lists is also done in the same phase
+# using '$(shell rm ...' instead of using the more traditional
+# 'rm ...' rule.
+	$(shell rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST))
+	$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
+	$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
+	
+	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
+	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
+	
+	$(QUIETLY) $(REMOTE) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
+	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
+	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
+	$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql
+	$(QUIETLY) mkdir -p $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
+	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/*
+	$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/
+	$(QUIETLY) cp -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)/
+	$(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(SA_CLASSDIR)/ .
+	$(QUIETLY) $(REMOTE) $(RUN.JAR) uf $@ -C $(AGENT_SRC_DIR) META-INF/services/com.sun.jdi.connect.Connector
+	$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.x86.X86ThreadContext
+	$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.ia64.IA64ThreadContext
+	$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.amd64.AMD64ThreadContext
+	$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.sparc.SPARCThreadContext
+
+clean:
+	rm -rf $(SA_CLASSDIR)
+	rm -rf $(GENERATED)/sa-jdi.jar
+	rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST)
diff --git a/hotspot/make/bsd/makefiles/saproc.make b/hotspot/make/bsd/makefiles/saproc.make
new file mode 100644
index 0000000..6303b1b
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/saproc.make
@@ -0,0 +1,107 @@
+#
+# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Rules to build serviceability agent library, used by vm.make
+
+# libsaproc[_g].so: serviceability agent
+SAPROC   = saproc
+SAPROC_G = $(SAPROC)$(G_SUFFIX)
+
+ifeq ($(OS_VENDOR), Darwin)
+  LIBSAPROC   = lib$(SAPROC).dylib
+  LIBSAPROC_G = lib$(SAPROC_G).dylib
+else
+  LIBSAPROC   = lib$(SAPROC).so
+  LIBSAPROC_G = lib$(SAPROC_G).so
+endif
+
+AGENT_DIR = $(GAMMADIR)/agent
+
+SASRCDIR = $(AGENT_DIR)/src/os/$(Platform_os_family)
+
+# disable building saproc until hsearch_r license issues are resolved
+#ifeq ($(OS_VENDOR), FreeBSD)
+#SASRCFILES = $(SASRCDIR)/salibelf.c                   \
+#             $(SASRCDIR)/symtab.c                     \
+#             $(SASRCDIR)/libproc_impl.c               \
+#             $(SASRCDIR)/ps_proc.c                    \
+#             $(SASRCDIR)/ps_core.c                    \
+#             $(SASRCDIR)/hsearch_r.c                  \
+#             $(SASRCDIR)/BsdDebuggerLocal.c
+#SALIBS = -lutil -lthread_db
+#else
+SASRCFILES = $(SASRCDIR)/StubDebuggerLocal.c
+SALIBS = 
+#endif
+
+SAMAPFILE = $(SASRCDIR)/mapfile
+
+DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC)
+
+# DEBUG_BINARIES overrides everything, use full -g debug information
+ifeq ($(DEBUG_BINARIES), true)
+  SA_DEBUG_CFLAGS = -g
+endif
+
+# if $(AGENT_DIR) does not exist, we don't build SA
+# also, we don't build SA on Itanium, PPC, ARM or zero.
+
+ifneq ($(wildcard $(AGENT_DIR)),)
+ifneq ($(filter-out ia64 arm ppc zero,$(SRCARCH)),)
+  BUILDLIBSAPROC = $(LIBSAPROC)
+endif
+endif
+
+
+ifneq ($(OS_VENDOR), Darwin)
+SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE))
+endif
+SA_LFLAGS += $(LDFLAGS_HASH_STYLE)
+
+$(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
+	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
+	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
+	  exit 1; \
+	fi
+	@echo Making SA debugger back-end...
+	$(QUIETLY) $(CC) -D$(BUILDARCH) -D_GNU_SOURCE                   \
+                   $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG)     \
+	           -I$(SASRCDIR)                                        \
+	           -I$(GENERATED)                                       \
+	           -I$(BOOT_JAVA_HOME)/include                          \
+	           -I$(BOOT_JAVA_HOME)/include/$(shell uname -s | tr "[:upper:]" "[:lower:]") \
+	           $(SASRCFILES)                                        \
+	           $(SA_LFLAGS)                                         \
+	           $(SA_DEBUG_CFLAGS)                                   \
+	           -o $@                                                \
+	           $(SALIBS)
+	$(QUIETLY) [ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); }
+
+install_saproc: $(BUILDLIBSAPROC)
+	$(QUIETLY) if [ -e $(LIBSAPROC) ] ; then             \
+	  echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)";     \
+	  cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done";  \
+	fi
+
+.PHONY: install_saproc
diff --git a/hotspot/make/linux/makefiles/shark.make b/hotspot/make/bsd/makefiles/shark.make
similarity index 100%
copy from hotspot/make/linux/makefiles/shark.make
copy to hotspot/make/bsd/makefiles/shark.make
diff --git a/hotspot/make/linux/makefiles/sparc.make b/hotspot/make/bsd/makefiles/sparc.make
similarity index 100%
copy from hotspot/make/linux/makefiles/sparc.make
copy to hotspot/make/bsd/makefiles/sparc.make
diff --git a/hotspot/make/linux/makefiles/sparcWorks.make b/hotspot/make/bsd/makefiles/sparcWorks.make
similarity index 100%
copy from hotspot/make/linux/makefiles/sparcWorks.make
copy to hotspot/make/bsd/makefiles/sparcWorks.make
diff --git a/hotspot/make/linux/makefiles/sparcv9.make b/hotspot/make/bsd/makefiles/sparcv9.make
similarity index 100%
copy from hotspot/make/linux/makefiles/sparcv9.make
copy to hotspot/make/bsd/makefiles/sparcv9.make
diff --git a/hotspot/make/linux/makefiles/tiered.make b/hotspot/make/bsd/makefiles/tiered.make
similarity index 100%
copy from hotspot/make/linux/makefiles/tiered.make
copy to hotspot/make/bsd/makefiles/tiered.make
diff --git a/hotspot/make/linux/makefiles/top.make b/hotspot/make/bsd/makefiles/top.make
similarity index 100%
copy from hotspot/make/linux/makefiles/top.make
copy to hotspot/make/bsd/makefiles/top.make
diff --git a/hotspot/make/bsd/makefiles/vm.make b/hotspot/make/bsd/makefiles/vm.make
new file mode 100644
index 0000000..bced094
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/vm.make
@@ -0,0 +1,329 @@
+#
+# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
+#
+
+# Rules to build JVM and related libraries, included from vm.make in the build
+# directory.
+
+# Common build rules.
+MAKEFILES_DIR=$(GAMMADIR)/make/$(Platform_os_family)/makefiles
+include $(MAKEFILES_DIR)/rules.make
+include $(GAMMADIR)/make/altsrc.make
+
+default: build
+
+#----------------------------------------------------------------------
+# Defs
+
+GENERATED     = ../generated
+DEP_DIR       = $(GENERATED)/dependencies
+
+# reads the generated files defining the set of .o's and the .o .h dependencies
+-include $(DEP_DIR)/*.d
+
+# read machine-specific adjustments (%%% should do this via buildtree.make?)
+ifeq ($(ZERO_BUILD), true)
+  include $(MAKEFILES_DIR)/zeroshark.make
+else
+  include $(MAKEFILES_DIR)/$(BUILDARCH).make
+endif
+
+# set VPATH so make knows where to look for source files
+# Src_Dirs_V is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm
+# The adfiles directory contains ad_<arch>.[ch]pp.
+# The jvmtifiles directory contains jvmti*.[ch]pp
+Src_Dirs_V += $(GENERATED)/adfiles $(GENERATED)/jvmtifiles
+VPATH += $(Src_Dirs_V:%=%:)
+
+# set INCLUDES for C preprocessor.
+Src_Dirs_I += $(GENERATED)
+# The order is important for the precompiled headers to work.
+INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%)
+
+ifeq (${VERSION}, debug)
+  SYMFLAG = -g
+else
+  SYMFLAG =
+endif
+
+# HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined 
+# in $(GAMMADIR)/make/defs.make
+ifeq ($(HOTSPOT_BUILD_VERSION),)
+  BUILD_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HOTSPOT_RELEASE_VERSION)\""
+else
+  BUILD_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)\""
+endif
+
+# The following variables are defined in the generated flags.make file.
+BUILD_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HS_BUILD_VER)\""
+JRE_VERSION   = -DJRE_RELEASE_VERSION="\"$(JRE_RELEASE_VER)\""
+HS_LIB_ARCH   = -DHOTSPOT_LIB_ARCH=\"$(LIBARCH)\"
+BUILD_TARGET  = -DHOTSPOT_BUILD_TARGET="\"$(TARGET)\""
+BUILD_USER    = -DHOTSPOT_BUILD_USER="\"$(HOTSPOT_BUILD_USER)\""
+VM_DISTRO     = -DHOTSPOT_VM_DISTRO="\"$(HOTSPOT_VM_DISTRO)\""
+
+CPPFLAGS =           \
+  ${SYSDEFS}         \
+  ${INCLUDES}        \
+  ${BUILD_VERSION}   \
+  ${BUILD_TARGET}    \
+  ${BUILD_USER}      \
+  ${HS_LIB_ARCH}     \
+  ${JRE_VERSION}     \
+  ${VM_DISTRO}
+
+ifdef DEFAULT_LIBPATH
+CPPFLAGS += -DDEFAULT_LIBPATH="\"$(DEFAULT_LIBPATH)\""
+endif
+
+# CFLAGS_WARN holds compiler options to suppress/enable warnings.
+CFLAGS += $(CFLAGS_WARN/BYFILE)
+
+# Do not use C++ exception handling
+CFLAGS += $(CFLAGS/NOEX)
+
+# Extra flags from gnumake's invocation or environment
+CFLAGS += $(EXTRA_CFLAGS)
+LFLAGS += $(EXTRA_CFLAGS)
+
+# Don't set excutable bit on stack segment
+# the same could be done by separate execstack command
+ifneq ($(OS_VENDOR), Darwin)
+LFLAGS += -Xlinker -z -Xlinker noexecstack
+endif
+
+LIBS += -lm -pthread
+
+# By default, link the *.o into the library, not the executable.
+LINK_INTO$(LINK_INTO) = LIBJVM
+
+JDK_LIBDIR = $(JAVA_HOME)/jre/lib/$(LIBARCH)
+
+#----------------------------------------------------------------------
+# jvm_db & dtrace
+include $(MAKEFILES_DIR)/dtrace.make
+
+#----------------------------------------------------------------------
+# JVM
+
+JVM    = jvm
+ifeq ($(OS_VENDOR), Darwin)
+  LIBJVM   = lib$(JVM).dylib
+  LIBJVM_G = lib$(JVM)$(G_SUFFIX).dylib
+  CFLAGS  += -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE
+else
+  LIBJVM   = lib$(JVM).so
+  LIBJVM_G = lib$(JVM)$(G_SUFFIX).so
+endif
+
+SPECIAL_PATHS:=adlc c1 gc_implementation opto shark libadt
+
+SOURCE_PATHS=\
+  $(shell find $(HS_COMMON_SRC)/share/vm/* -type d \! \
+      \( -name DUMMY $(foreach dir,$(SPECIAL_PATHS),-o -name $(dir)) \))
+SOURCE_PATHS+=$(HS_COMMON_SRC)/os/$(Platform_os_family)/vm
+SOURCE_PATHS+=$(HS_COMMON_SRC)/os/posix/vm
+SOURCE_PATHS+=$(HS_COMMON_SRC)/cpu/$(Platform_arch)/vm
+SOURCE_PATHS+=$(HS_COMMON_SRC)/os_cpu/$(Platform_os_arch)/vm
+
+CORE_PATHS=$(foreach path,$(SOURCE_PATHS),$(call altsrc,$(path)) $(path))
+CORE_PATHS+=$(GENERATED)/jvmtifiles
+
+COMPILER1_PATHS := $(call altsrc,$(HS_COMMON_SRC)/share/vm/c1)
+COMPILER1_PATHS += $(HS_COMMON_SRC)/share/vm/c1
+
+COMPILER2_PATHS := $(call altsrc,$(HS_COMMON_SRC)/share/vm/opto)
+COMPILER2_PATHS += $(call altsrc,$(HS_COMMON_SRC)/share/vm/libadt)
+COMPILER2_PATHS += $(HS_COMMON_SRC)/share/vm/opto
+COMPILER2_PATHS += $(HS_COMMON_SRC)/share/vm/libadt
+COMPILER2_PATHS += $(GENERATED)/adfiles
+
+SHARK_PATHS := $(GAMMADIR)/src/share/vm/shark
+
+# Include dirs per type.
+Src_Dirs/CORE      := $(CORE_PATHS)
+Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS)
+Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS)
+Src_Dirs/TIERED    := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS)
+Src_Dirs/ZERO      := $(CORE_PATHS)
+Src_Dirs/SHARK     := $(CORE_PATHS) $(SHARK_PATHS)
+Src_Dirs := $(Src_Dirs/$(TYPE))
+
+COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin\* c2_\* runtime_\*
+COMPILER1_SPECIFIC_FILES := c1_\*
+SHARK_SPECIFIC_FILES     := shark
+ZERO_SPECIFIC_FILES      := zero
+
+# Always exclude these.
+Src_Files_EXCLUDE := jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp
+
+# Exclude per type.
+Src_Files_EXCLUDE/CORE      := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
+Src_Files_EXCLUDE/COMPILER1 := $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
+Src_Files_EXCLUDE/COMPILER2 := $(COMPILER1_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES)
+Src_Files_EXCLUDE/TIERED    := $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES)
+Src_Files_EXCLUDE/ZERO      := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
+Src_Files_EXCLUDE/SHARK     := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES)
+
+Src_Files_EXCLUDE +=  $(Src_Files_EXCLUDE/$(TYPE))
+
+# Special handling of arch model.
+ifeq ($(Platform_arch_model), x86_32)
+Src_Files_EXCLUDE += \*x86_64\*
+endif
+ifeq ($(Platform_arch_model), x86_64)
+Src_Files_EXCLUDE += \*x86_32\*
+endif
+
+# Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE.
+define findsrc
+	$(notdir $(shell find $(1)/. ! -name . -prune \
+		-a \( -name \*.c -o -name \*.cpp -o -name \*.s \) \
+		-a ! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \)))
+endef
+
+Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e)))
+
+Obj_Files = $(sort $(addsuffix .o,$(basename $(Src_Files))))
+
+JVM_OBJ_FILES = $(Obj_Files)
+
+vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
+
+mapfile : $(MAPFILE) vm.def
+	rm -f $@
+	awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE")	\
+                 { system ("cat vm.def"); }		\
+               else					\
+                 { print $$0 }				\
+             }' > $@ < $(MAPFILE)
+
+mapfile_reorder : mapfile $(REORDERFILE)
+	rm -f $@
+	cat $^ > $@
+
+vm.def: $(Res_Files) $(Obj_Files)
+	sh $(GAMMADIR)/make/bsd/makefiles/build_vm_def.sh *.o > $@
+
+STATIC_CXX = false
+
+ifeq ($(LINK_INTO),AOUT)
+  LIBJVM.o                 =
+  LIBJVM_MAPFILE           =
+  LIBS_VM                  = $(LIBS)
+else
+  LIBJVM.o                 = $(JVM_OBJ_FILES)
+  LIBJVM_MAPFILE$(LDNOMAP) = mapfile_reorder
+  LFLAGS_VM$(LDNOMAP)      += $(MAPFLAG:FILENAME=$(LIBJVM_MAPFILE))
+  LFLAGS_VM                += $(SONAMEFLAG:SONAME=$(LIBJVM))
+
+  ifeq ($(OS_VENDOR), Darwin)
+    LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/.
+    LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/..
+    LFLAGS_VM += -Xlinker -install_name -Xlinker @rpath/$(@F)
+  endif
+
+  # JVM is statically linked with libgcc[_s] and libstdc++; this is needed to
+  # get around library dependency and compatibility issues. Must use gcc not
+  # g++ to link.
+  ifeq ($(STATIC_CXX), true)
+    LFLAGS_VM              += $(STATIC_LIBGCC)
+    LIBS_VM                += $(STATIC_STDCXX)
+    LINK_VM                = $(LINK_LIB.c)
+  else
+    LINK_VM                = $(LINK_LIB.CC)
+  endif
+
+  LIBS_VM                  += $(LIBS)
+endif
+ifeq ($(ZERO_BUILD), true)
+  LIBS_VM += $(LIBFFI_LIBS)
+endif
+ifeq ($(SHARK_BUILD), true)
+  LFLAGS_VM += $(LLVM_LDFLAGS)
+  LIBS_VM   += $(LLVM_LIBS)
+endif
+
+
+# rule for building precompiled header
+$(PRECOMPILED_HEADER):
+	$(QUIETLY) echo Generating precompiled header $@
+	$(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)
+	$(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE)
+
+# making the library:
+
+ifneq ($(JVM_BASE_ADDR),)
+# By default shared library is linked at base address == 0. Modify the
+# linker script if JVM prefers a different base location. It can also be
+# implemented with 'prelink -r'. But 'prelink' is not (yet) available on
+# our build platform (AS-2.1).
+LD_SCRIPT = libjvm.so.lds
+$(LD_SCRIPT): $(LIBJVM_MAPFILE)
+	$(QUIETLY) {                                                \
+	  rm -rf $@;                                                \
+	  $(LINK_VM) -Wl,--verbose $(LFLAGS_VM) 2>&1             |  \
+	    sed -e '/^======/,/^======/!d'                          \
+		-e '/^======/d'                                     \
+		-e 's/0\( + SIZEOF_HEADERS\)/$(JVM_BASE_ADDR)\1/'   \
+		> $@;                                               \
+	}
+LD_SCRIPT_FLAG = -Wl,-T,$(LD_SCRIPT)
+endif
+
+$(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
+	$(QUIETLY) {                                                    \
+	    echo Linking vm...;                                         \
+	    $(LINK_LIB.CC/PRE_HOOK)                                     \
+	    $(LINK_VM) $(LD_SCRIPT_FLAG)                                \
+		       $(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM);       \
+	    $(LINK_LIB.CC/POST_HOOK)                                    \
+	    rm -f $@.1; ln -s $@ $@.1;                                  \
+	    [ -f $(LIBJVM_G) ] || { ln -s $@ $(LIBJVM_G); ln -s $@.1 $(LIBJVM_G).1; }; \
+	}
+
+DEST_JVM = $(JDK_LIBDIR)/$(VM_SUBDIR)/$(LIBJVM)
+
+install_jvm: $(LIBJVM)
+	@echo "Copying $(LIBJVM) to $(DEST_JVM)"
+	$(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done"
+
+#----------------------------------------------------------------------
+# Other files
+
+# Gamma launcher
+include $(MAKEFILES_DIR)/launcher.make
+
+# Signal interposition library
+include $(MAKEFILES_DIR)/jsig.make
+
+# Serviceability agent
+include $(MAKEFILES_DIR)/saproc.make
+
+#----------------------------------------------------------------------
+
+build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC)
+
+install: install_jvm install_jsig install_saproc
+
+.PHONY: default build install install_jvm
diff --git a/hotspot/make/linux/makefiles/zero.make b/hotspot/make/bsd/makefiles/zero.make
similarity index 100%
copy from hotspot/make/linux/makefiles/zero.make
copy to hotspot/make/bsd/makefiles/zero.make
diff --git a/hotspot/make/bsd/makefiles/zeroshark.make b/hotspot/make/bsd/makefiles/zeroshark.make
new file mode 100644
index 0000000..12c4198
--- /dev/null
+++ b/hotspot/make/bsd/makefiles/zeroshark.make
@@ -0,0 +1,62 @@
+#
+# Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+# Copyright 2007, 2008 Red Hat, Inc.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+#
+
+# Setup common to Zero (non-Shark) and Shark versions of VM
+
+# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
+OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
+
+# Specify that the CPU is little endian, if necessary
+ifeq ($(ZERO_ENDIANNESS), little)
+  CFLAGS += -DVM_LITTLE_ENDIAN
+endif
+
+# Specify that the CPU is 64 bit, if necessary
+ifeq ($(ARCH_DATA_MODEL), 64)
+  CFLAGS += -D_LP64=1
+endif
+
+# Specify the path to the FFI headers
+ifdef ALT_PACKAGE_PATH
+  PACKAGE_PATH = $(ALT_PACKAGE_PATH)
+else
+  ifeq ($(OS_VENDOR),Apple)
+    PACKAGE_PATH = /opt/local
+  else
+    ifeq ($(OS_VENDOR),NetBSD)
+      PACKAGE_PATH = /usr/pkg
+      LIBS += -Wl,-R${PACKAGE_PATH}/lib
+    else
+      PACKAGE_PATH = /usr/local
+    endif
+  endif
+endif
+
+CFLAGS += -I$(PACKAGE_PATH)/include
+LIBS += -L$(PACKAGE_PATH)/lib -lffi
+
+OPT_CFLAGS/compactingPermGenGen.o = -O1
diff --git a/hotspot/make/bsd/platform_amd64 b/hotspot/make/bsd/platform_amd64
new file mode 100644
index 0000000..51b2b1c
--- /dev/null
+++ b/hotspot/make/bsd/platform_amd64
@@ -0,0 +1,15 @@
+os_family = bsd
+
+arch = x86
+
+arch_model = x86_64
+
+os_arch = bsd_x86
+
+os_arch_model = bsd_x86_64
+
+lib_arch = amd64
+
+compiler = gcc
+
+sysdefs = -D_ALLBSD_SOURCE -D_GNU_SOURCE -DAMD64
diff --git a/hotspot/make/bsd/platform_amd64.suncc b/hotspot/make/bsd/platform_amd64.suncc
new file mode 100644
index 0000000..68e0cc3
--- /dev/null
+++ b/hotspot/make/bsd/platform_amd64.suncc
@@ -0,0 +1,17 @@
+os_family = bsd
+
+arch = x86
+
+arch_model = x86_64
+
+os_arch = bsd_x86
+
+os_arch_model = bsd_x86_64
+
+lib_arch = amd64
+
+compiler = sparcWorks
+
+gnu_dis_arch = amd64
+
+sysdefs = -D_ALLBSD_SOURCE -DSPARC_WORKS -D_GNU_SOURCE -DAMD64
diff --git a/hotspot/make/bsd/platform_i486 b/hotspot/make/bsd/platform_i486
new file mode 100644
index 0000000..2f77e79
--- /dev/null
+++ b/hotspot/make/bsd/platform_i486
@@ -0,0 +1,15 @@
+os_family = bsd
+
+arch = x86
+
+arch_model = x86_32
+
+os_arch = bsd_x86
+
+os_arch_model = bsd_x86_32
+
+lib_arch = i386
+
+compiler = gcc
+
+sysdefs = -D_ALLBSD_SOURCE -D_GNU_SOURCE -DIA32
diff --git a/hotspot/make/bsd/platform_i486.suncc b/hotspot/make/bsd/platform_i486.suncc
new file mode 100644
index 0000000..5b203cd
--- /dev/null
+++ b/hotspot/make/bsd/platform_i486.suncc
@@ -0,0 +1,17 @@
+os_family = bsd
+
+arch = x86
+
+arch_model = x86_32
+
+os_arch = bsd_x86
+
+os_arch_model = bsd_x86_32
+
+lib_arch = i386
+
+compiler = sparcWorks
+
+gnu_dis_arch = i386
+
+sysdefs = -D_ALLBSD_SOURCE -DSPARC_WORKS -D_GNU_SOURCE -DIA32
diff --git a/hotspot/make/bsd/platform_ia64 b/hotspot/make/bsd/platform_ia64
new file mode 100644
index 0000000..00b9f33
--- /dev/null
+++ b/hotspot/make/bsd/platform_ia64
@@ -0,0 +1,15 @@
+os_family = bsd
+
+arch = ia64
+
+os_arch = bsd_ia64
+
+lib_arch = ia64
+
+compiler = gcc
+
+gnu_dis_arch = ia64
+
+sysdefs = -D_ALLBSD_SOURCE -D_GNU_SOURCE -DIA64 -DCC_INTERP
+
+mark_style = alignment
diff --git a/hotspot/make/bsd/platform_sparc b/hotspot/make/bsd/platform_sparc
new file mode 100644
index 0000000..04772ad
--- /dev/null
+++ b/hotspot/make/bsd/platform_sparc
@@ -0,0 +1,15 @@
+os_family = bsd
+
+arch = sparc
+
+arch_model = sparc
+
+os_arch = bsd_sparc
+
+os_arch_model = bsd_sparc
+
+lib_arch = sparc
+
+compiler = gcc
+
+sysdefs = -D_ALLBSD_SOURCE -D_GNU_SOURCE -DSPARC
diff --git a/hotspot/make/bsd/platform_sparcv9 b/hotspot/make/bsd/platform_sparcv9
new file mode 100644
index 0000000..89e51c5
--- /dev/null
+++ b/hotspot/make/bsd/platform_sparcv9
@@ -0,0 +1,15 @@
+os_family = bsd
+
+arch = sparc
+
+arch_model = sparc
+
+os_arch = bsd_sparc
+
+os_arch_model = bsd_sparc
+
+lib_arch = sparcv9
+
+compiler = gcc
+
+sysdefs = -D_ALLBSD_SOURCE -D_GNU_SOURCE -DSPARC
diff --git a/hotspot/make/bsd/platform_zero.in b/hotspot/make/bsd/platform_zero.in
new file mode 100644
index 0000000..f6729c2
--- /dev/null
+++ b/hotspot/make/bsd/platform_zero.in
@@ -0,0 +1,17 @@
+os_family = bsd
+
+arch = zero
+
+arch_model = zero
+
+os_arch = bsd_zero
+
+os_arch_model = bsd_zero
+
+lib_arch = zero
+
+compiler = gcc
+
+gnu_dis_arch = zero
+
+sysdefs = -D_ALLBSD_SOURCE -D_GNU_SOURCE -DCC_INTERP -DZERO -D at ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
diff --git a/hotspot/make/cscope.make b/hotspot/make/cscope.make
index 17c3aa3..c38b7a5 100644
--- a/hotspot/make/cscope.make
+++ b/hotspot/make/cscope.make
@@ -63,7 +63,7 @@ CS_PRUNE_GENERATED	= -o -name '${OSNAME}_*_core' -o \
 # space-separated list of identifiers to include only those systems.
 ifdef	CS_OS
 CS_PRUNE_OS	= $(patsubst %,-o -name '*%*',\
-		    $(filter-out ${CS_OS},linux macos solaris windows))
+		    $(filter-out ${CS_OS},bsd linux macos solaris windows))
 endif
 
 # CPU-specific files for all processors are included by default.  Set CS_CPU 
diff --git a/hotspot/make/defs.make b/hotspot/make/defs.make
index fe6c4a2..44f873d 100644
--- a/hotspot/make/defs.make
+++ b/hotspot/make/defs.make
@@ -118,13 +118,23 @@ endif
 # Windows should have OS predefined
 ifeq ($(OS),)
   OS   := $(shell uname -s)
+  ifneq ($(findstring BSD,$(OS)),)
+    OS=bsd
+  endif
+  ifeq ($(OS), Darwin)
+    OS=bsd
+  endif
   HOST := $(shell uname -n)
 endif
 
-# If not SunOS and not Linux, assume Windows
+# If not SunOS, not Linux and not BSD, assume Windows
 ifneq ($(OS), Linux)
   ifneq ($(OS), SunOS)
-    OSNAME=windows
+    ifneq ($(OS), bsd)
+      OSNAME=windows
+    else
+      OSNAME=bsd
+    endif
   else
     OSNAME=solaris
   endif
diff --git a/hotspot/make/hotspot_version b/hotspot/make/hotspot_version
index 2a3983d..f5de8cd 100644
--- a/hotspot/make/hotspot_version
+++ b/hotspot/make/hotspot_version
@@ -33,7 +33,7 @@
 # Don't put quotes (fail windows build).
 HOTSPOT_VM_COPYRIGHT=Copyright 2011
 
-HS_MAJOR_VER=22
+HS_MAJOR_VER=23
 HS_MINOR_VER=0
 HS_BUILD_NUMBER=01
 
diff --git a/hotspot/make/jprt.gmk b/hotspot/make/jprt.gmk
index 00ee6a2..aded081 100644
--- a/hotspot/make/jprt.gmk
+++ b/hotspot/make/jprt.gmk
@@ -34,13 +34,13 @@ else
 endif
 
 jprt_build_productEmb:
-	$(MAKE) JAVASE_EMBEDDED=true jprt_build_product
+	$(MAKE) JAVASE_EMBEDDED=true MINIMIZE_RAM_USAGE=true jprt_build_product
 
 jprt_build_debugEmb:
-	$(MAKE) JAVASE_EMBEDDED=true jprt_build_debug
+	$(MAKE) JAVASE_EMBEDDED=true MINIMIZE_RAM_USAGE=true jprt_build_debug
 
 jprt_build_fastdebugEmb:
-	$(MAKE) JAVASE_EMBEDDED=true jprt_build_fastdebug
+	$(MAKE) JAVASE_EMBEDDED=true MINIMIZE_RAM_USAGE=true jprt_build_fastdebug
 
 jprt_build_productOpen:
 	$(MAKE) OPENJDK=true jprt_build_product
diff --git a/hotspot/make/linux/Makefile b/hotspot/make/linux/Makefile
index fa1f56d..22dcd53 100644
--- a/hotspot/make/linux/Makefile
+++ b/hotspot/make/linux/Makefile
@@ -210,6 +210,7 @@ TARGETS_SHARK     = $(addsuffix shark,$(TARGETS))
 BUILDTREE_MAKE    = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make
 BUILDTREE_VARS    = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH)
 BUILDTREE_VARS   += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
+BUILDTREE_VARS   += OBJCOPY=$(OBJCOPY) STRIP_POLICY=$(STRIP_POLICY)
 
 BUILDTREE         = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS)
 
@@ -230,7 +231,7 @@ checks: check_os_version check_j2se_version
 # Solaris 2.5.1, 2.6).
 # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok.
 
-SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7%
+SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3%
 OS_VERSION := $(shell uname -r)
 EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION))
 
diff --git a/hotspot/make/linux/build.sh b/hotspot/make/linux/build.sh
index f46b8df..79844c5 100644
--- a/hotspot/make/linux/build.sh
+++ b/hotspot/make/linux/build.sh
@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -45,6 +45,9 @@ case `uname -m` in
   i386|i486|i586|i686)
     mach=i386
     ;;
+  x86_64)
+    mach=amd64
+    ;;
   *)
     echo "Unsupported machine: " `uname -m`
     exit 1
diff --git a/hotspot/make/linux/makefiles/arm.make b/hotspot/make/linux/makefiles/arm.make
index e210303..6d7079e 100644
--- a/hotspot/make/linux/makefiles/arm.make
+++ b/hotspot/make/linux/makefiles/arm.make
@@ -1,6 +1,25 @@
 #
 # Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
-# ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
 #
 
 Obj_Files += linux_arm.o
diff --git a/hotspot/make/linux/makefiles/build_vm_def.sh b/hotspot/make/linux/makefiles/build_vm_def.sh
index fb9a0d5..ea81ff6 100644
--- a/hotspot/make/linux/makefiles/build_vm_def.sh
+++ b/hotspot/make/linux/makefiles/build_vm_def.sh
@@ -7,6 +7,10 @@ else
 NM=nm
 fi
 
-$NM --defined-only $* | awk '
-   { if ($3 ~ /^_ZTV/ || $3 ~ /^gHotSpotVM/) print "\t" $3 ";" }
-   '
+$NM --defined-only $* \
+    | awk '{
+              if ($3 ~ /^_ZTV/ || $3 ~ /^gHotSpotVM/) print "\t" $3 ";"
+              if ($3 ~ /^UseSharedSpaces$/) print "\t" $3 ";"
+              if ($3 ~ /^_ZN9Arguments17SharedArchivePathE$/) print "\t" $3 ";"
+          }' \
+    | sort -u
diff --git a/hotspot/make/linux/makefiles/buildtree.make b/hotspot/make/linux/makefiles/buildtree.make
index becd974..f8a1e885 100644
--- a/hotspot/make/linux/makefiles/buildtree.make
+++ b/hotspot/make/linux/makefiles/buildtree.make
@@ -233,6 +233,10 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
 	echo "$(call gamma-path,commonsrc,os/posix/vm)"; \
 	[ -n "$(CFLAGS_BROWSE)" ] && \
 	    echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \
+	[ -n "$(OBJCOPY)" ] && \
+	    echo && echo "OBJCOPY = $(OBJCOPY)"; \
+	[ -n "$(STRIP_POLICY)" ] && \
+	    echo && echo "STRIP_POLICY = $(STRIP_POLICY)"; \
 	[ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \
 	    echo && \
 	    echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
diff --git a/hotspot/make/linux/makefiles/defs.make b/hotspot/make/linux/makefiles/defs.make
index 88329a6..df5b8e4 100644
--- a/hotspot/make/linux/makefiles/defs.make
+++ b/hotspot/make/linux/makefiles/defs.make
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -114,36 +114,113 @@ ifeq ($(ARCH), ppc)
   HS_ARCH          = ppc
 endif
 
+# determine if HotSpot is being built in JDK6 or earlier version
+JDK6_OR_EARLIER=0
+ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
+  # if the longer variable names (newer build style) are set, then check those
+  ifeq "$(shell expr \( $(JDK_MAJOR_VERSION) = 1 \& $(JDK_MINOR_VERSION) \< 7 \))" "1"
+    JDK6_OR_EARLIER=1
+  endif
+else
+  # the longer variables aren't set so check the shorter variable names
+  ifeq "$(shell expr \( '$(JDK_MAJOR_VER)' = 1 \& '$(JDK_MINOR_VER)' \< 7 \))" "1"
+    JDK6_OR_EARLIER=1
+  endif
+endif
+
+ifeq ($(JDK6_OR_EARLIER),0)
+  # Full Debug Symbols is supported on JDK7 or newer
+
+  # Default OBJCOPY comes from GNU Binutils on Linux:
+  DEF_OBJCOPY=/usr/bin/objcopy
+  ifdef CROSS_COMPILE_ARCH
+    # don't try to generate .debuginfo files when cross compiling
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
+        "skipping .debuginfo generation.")
+    OBJCOPY=
+  else
+    OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
+    ifneq ($(ALT_OBJCOPY),)
+      _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
+      # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
+      OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
+    endif
+  endif
+  
+  ifeq ($(OBJCOPY),)
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
+  else
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
+  
+    # Library stripping policies for .debuginfo configs:
+    #   all_strip - strips everything from the library
+    #   min_strip - strips most stuff from the library; leaves minimum symbols
+    #   no_strip  - does not strip the library at all
+    #
+    # Oracle security policy requires "all_strip". A waiver was granted on
+    # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
+    #
+    DEF_STRIP_POLICY="min_strip"
+    ifeq ($(ALT_STRIP_POLICY),)
+      STRIP_POLICY=$(DEF_STRIP_POLICY)
+    else
+      STRIP_POLICY=$(ALT_STRIP_POLICY)
+    endif
+  
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
+  endif
+endif
+
 JDK_INCLUDE_SUBDIR=linux
 
+# Library suffix
+LIBRARY_SUFFIX=so
+
 # FIXUP: The subdirectory for a debug build is NOT the same on all platforms
 VM_DEBUG=jvmg
 
 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
 
 # client and server subdirectories have symbolic links to ../libjsig.so
-EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.so
+EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
+ifneq ($(OBJCOPY),)
+  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
+endif
 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
+EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
 
 ifndef BUILD_CLIENT_ONLY
 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
-EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.so
+EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
+  ifneq ($(OBJCOPY),)
+    EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
+  endif
 endif
 
 ifneq ($(ZERO_BUILD), true)
   ifeq ($(ARCH_DATA_MODEL), 32)
-    EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
     EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
-    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.so 
+    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
+    ifneq ($(OBJCOPY),)
+      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
+    endif
   endif
 endif
 
 # Serviceability Binaries
 # No SA Support for PPC, IA64, ARM or zero
-ADD_SA_BINARIES/x86   = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so \
+ADD_SA_BINARIES/x86   = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
                         $(EXPORT_LIB_DIR)/sa-jdi.jar 
-ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so \
+ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
                         $(EXPORT_LIB_DIR)/sa-jdi.jar 
+ifneq ($(OBJCOPY),)
+  ADD_SA_BINARIES/x86   += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
+  ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
+endif
 ADD_SA_BINARIES/ppc   = 
 ADD_SA_BINARIES/ia64  = 
 ADD_SA_BINARIES/arm   = 
diff --git a/hotspot/make/linux/makefiles/gcc.make b/hotspot/make/linux/makefiles/gcc.make
index fa9e29c..e36cec6 100644
--- a/hotspot/make/linux/makefiles/gcc.make
+++ b/hotspot/make/linux/makefiles/gcc.make
@@ -225,6 +225,26 @@ ifeq ($(DEBUG_CFLAGS/$(BUILDARCH)),)
 DEBUG_CFLAGS += -gstabs
 endif
 
+ifneq ($(OBJCOPY),)
+  FASTDEBUG_CFLAGS/ia64  = -g
+  FASTDEBUG_CFLAGS/amd64 = -g
+  FASTDEBUG_CFLAGS/arm   = -g
+  FASTDEBUG_CFLAGS/ppc   = -g
+  FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH))
+  ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),)
+    FASTDEBUG_CFLAGS += -gstabs
+  endif
+
+  OPT_CFLAGS/ia64  = -g
+  OPT_CFLAGS/amd64 = -g
+  OPT_CFLAGS/arm   = -g
+  OPT_CFLAGS/ppc   = -g
+  OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH))
+  ifeq ($(OPT_CFLAGS/$(BUILDARCH)),)
+    OPT_CFLAGS += -gstabs
+  endif
+endif
+
 # DEBUG_BINARIES overrides everything, use full -g debug information
 ifeq ($(DEBUG_BINARIES), true)
   DEBUG_CFLAGS = -g
@@ -242,3 +262,9 @@ endif
 ifdef MINIMIZE_RAM_USAGE
 CFLAGS += -DMINIMIZE_RAM_USAGE
 endif
+
+ifdef CROSS_COMPILE_ARCH
+  STRIP = $(ALT_COMPILER_PATH)/strip
+else
+  STRIP = strip
+endif
diff --git a/hotspot/make/linux/makefiles/jsig.make b/hotspot/make/linux/makefiles/jsig.make
index 18f65d9..9408e49 100644
--- a/hotspot/make/linux/makefiles/jsig.make
+++ b/hotspot/make/linux/makefiles/jsig.make
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -31,9 +31,13 @@ LIBJSIG = lib$(JSIG).so
 JSIG_G    = $(JSIG)$(G_SUFFIX)
 LIBJSIG_G = lib$(JSIG_G).so
 
+LIBJSIG_DEBUGINFO   = lib$(JSIG).debuginfo
+LIBJSIG_G_DEBUGINFO = lib$(JSIG_G).debuginfo
+
 JSIGSRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/vm
 
-DEST_JSIG  = $(JDK_LIBDIR)/$(LIBJSIG)
+DEST_JSIG           = $(JDK_LIBDIR)/$(LIBJSIG)
+DEST_JSIG_DEBUGINFO = $(JDK_LIBDIR)/$(LIBJSIG_DEBUGINFO)
 
 LIBJSIG_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jsig
 
@@ -54,9 +58,24 @@ $(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
 	$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
                          $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $< -ldl
 	$(QUIETLY) [ -f $(LIBJSIG_G) ] || { ln -s $@ $(LIBJSIG_G); }
+ifneq ($(OBJCOPY),)
+	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
+  ifeq ($(STRIP_POLICY),all_strip)
+	$(QUIETLY) $(STRIP) $@
+  else
+    ifeq ($(STRIP_POLICY),min_strip)
+	$(QUIETLY) $(STRIP) -g $@
+    # implied else here is no stripping at all
+    endif
+  endif
+	[ -f $(LIBJSIG_G_DEBUGINFO) ] || { ln -s $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO); }
+endif
 
 install_jsig: $(LIBJSIG)
 	@echo "Copying $(LIBJSIG) to $(DEST_JSIG)"
+	$(QUIETLY) test -f $(LIBJSIG_DEBUGINFO) && \
+	    cp -f $(LIBJSIG_DEBUGINFO) $(DEST_JSIG_DEBUGINFO)
 	$(QUIETLY) cp -f $(LIBJSIG) $(DEST_JSIG) && echo "Done"
 
 .PHONY: install_jsig
diff --git a/hotspot/make/linux/makefiles/mapfile-vers-debug b/hotspot/make/linux/makefiles/mapfile-vers-debug
index 7592f7d..3f4e85f 100644
--- a/hotspot/make/linux/makefiles/mapfile-vers-debug
+++ b/hotspot/make/linux/makefiles/mapfile-vers-debug
@@ -245,24 +245,6 @@ SUNWprivate_1.1 {
                 JVM_Yield;
                 JVM_handle_linux_signal;
 
-                # Old reflection routines
-                # These do not need to be present in the product build in JDK 1.4
-                # but their code has not been removed yet because there will not
-                # be a substantial code savings until JVM_InvokeMethod and
-                # JVM_NewInstanceFromConstructor can also be removed; see
-                # reflectionCompat.hpp.
-                JVM_GetClassConstructor;
-                JVM_GetClassConstructors;
-                JVM_GetClassField;
-                JVM_GetClassFields;
-                JVM_GetClassMethod;
-                JVM_GetClassMethods;
-                JVM_GetField;
-                JVM_GetPrimitiveField;
-                JVM_NewInstance;
-                JVM_SetField;
-                JVM_SetPrimitiveField;
-
                 # debug JVM
                 JVM_AccessVMBooleanFlag;
                 JVM_AccessVMIntFlag;
diff --git a/hotspot/make/linux/makefiles/mapfile-vers-product b/hotspot/make/linux/makefiles/mapfile-vers-product
index 451a4cd..43bc964 100644
--- a/hotspot/make/linux/makefiles/mapfile-vers-product
+++ b/hotspot/make/linux/makefiles/mapfile-vers-product
@@ -245,24 +245,6 @@ SUNWprivate_1.1 {
                 JVM_Yield;
                 JVM_handle_linux_signal;
 
-                # Old reflection routines
-                # These do not need to be present in the product build in JDK 1.4
-                # but their code has not been removed yet because there will not
-                # be a substantial code savings until JVM_InvokeMethod and
-                # JVM_NewInstanceFromConstructor can also be removed; see
-                # reflectionCompat.hpp.
-                JVM_GetClassConstructor;
-                JVM_GetClassConstructors;
-                JVM_GetClassField;
-                JVM_GetClassFields;
-                JVM_GetClassMethod;
-                JVM_GetClassMethods;
-                JVM_GetField;
-                JVM_GetPrimitiveField;
-                JVM_NewInstance;
-                JVM_SetField;
-                JVM_SetPrimitiveField;
-
                 # miscellaneous functions
                 jio_fprintf;
                 jio_printf;
diff --git a/hotspot/make/linux/makefiles/ppc.make b/hotspot/make/linux/makefiles/ppc.make
index a3a19bc..92957f9 100644
--- a/hotspot/make/linux/makefiles/ppc.make
+++ b/hotspot/make/linux/makefiles/ppc.make
@@ -1,6 +1,25 @@
 #
 # Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
-# ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#  
 #
 
 # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
diff --git a/hotspot/make/linux/makefiles/product.make b/hotspot/make/linux/makefiles/product.make
index 379685f..981a9be 100644
--- a/hotspot/make/linux/makefiles/product.make
+++ b/hotspot/make/linux/makefiles/product.make
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -46,13 +46,10 @@ VERSION = optimized
 
 # use -g to strip library as -x will discard its symbol table; -x is fine for
 # executables.
-ifdef CROSS_COMPILE_ARCH
-  STRIP = $(ALT_COMPILER_PATH)/strip
-else
-  STRIP = strip
-endif
+# Note: these macros are not used in .debuginfo configs
 STRIP_LIBJVM = $(STRIP) -g $@ || exit 1;
 STRIP_AOUT   = $(STRIP) -x $@ || exit 1;
 
-# Don't strip in VM build; JDK build will strip libraries later
+# If we can create .debuginfo files, then the VM is stripped in vm.make
+# and this macro is not used.
 # LINK_LIB.CC/POST_HOOK += $(STRIP_$(LINK_INTO))
diff --git a/hotspot/make/linux/makefiles/sa.make b/hotspot/make/linux/makefiles/sa.make
index 37a53b8..ede5761 100644
--- a/hotspot/make/linux/makefiles/sa.make
+++ b/hotspot/make/linux/makefiles/sa.make
@@ -43,13 +43,7 @@ SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
 # TODO: if it's a modules image, check if SA module is installed.
 MODULELIB_PATH= $(BOOT_JAVA_HOME)/lib/modules
 
-# gnumake 3.78.1 does not accept the *s that
-# are in AGENT_FILES1 and AGENT_FILES2, so use the shell to expand them
-AGENT_FILES1 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES1))
-AGENT_FILES2 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES2))
-
-AGENT_FILES1_LIST := $(GENERATED)/agent1.classes.list
-AGENT_FILES2_LIST := $(GENERATED)/agent2.classes.list
+AGENT_FILES_LIST := $(GENERATED)/agent.classes.list
 
 SA_CLASSDIR = $(GENERATED)/saclasses
 
@@ -68,7 +62,7 @@ all:
 	   $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
 	fi
 
-$(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
+$(GENERATED)/sa-jdi.jar: $(AGENT_FILES)
 	$(QUIETLY) echo "Making $@"
 	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
 	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
@@ -82,7 +76,6 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
 	$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
 	  mkdir -p $(SA_CLASSDIR);        \
 	fi
-	
 # Note: When indented, make tries to execute the '$(shell' comment.
 # In some environments, cmd processors have limited line length.
 # To prevent the javac invocation in the next block from using
@@ -93,13 +86,12 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
 # the initialization of the lists is also done in the same phase
 # using '$(shell rm ...' instead of using the more traditional
 # 'rm ...' rule.
-	$(shell rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST))
-	$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
-	$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
-	
-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
-	
+	$(shell rm -rf $(AGENT_FILES_LIST))
+# gnumake 3.78.1 does not accept the *'s that
+# are in AGENT_FILES, so use the shell to expand them.
+# Be extra carefull to not produce too long command lines in the shell!
+	$(foreach file,$(AGENT_FILES),$(shell ls -1 $(file) >> $(AGENT_FILES_LIST)))
+	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES_LIST)
 	$(QUIETLY) $(REMOTE) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
 	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
 	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
@@ -118,4 +110,4 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
 clean:
 	rm -rf $(SA_CLASSDIR)
 	rm -rf $(GENERATED)/sa-jdi.jar
-	rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST)
+	rm -rf $(AGENT_FILES_LIST)
diff --git a/hotspot/make/linux/makefiles/saproc.make b/hotspot/make/linux/makefiles/saproc.make
index 68ec237..4bca453 100644
--- a/hotspot/make/linux/makefiles/saproc.make
+++ b/hotspot/make/linux/makefiles/saproc.make
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -32,6 +32,9 @@ LIBSAPROC = lib$(SAPROC).so
 SAPROC_G = $(SAPROC)$(G_SUFFIX)
 LIBSAPROC_G = lib$(SAPROC_G).so
 
+LIBSAPROC_DEBUGINFO   = lib$(SAPROC).debuginfo
+LIBSAPROC_G_DEBUGINFO = lib$(SAPROC_G).debuginfo
+
 AGENT_DIR = $(GAMMADIR)/agent
 
 SASRCDIR = $(AGENT_DIR)/src/os/$(Platform_os_family)
@@ -45,7 +48,8 @@ SASRCFILES = $(SASRCDIR)/salibelf.c                   \
 
 SAMAPFILE = $(SASRCDIR)/mapfile
 
-DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC)
+DEST_SAPROC           = $(JDK_LIBDIR)/$(LIBSAPROC)
+DEST_SAPROC_DEBUGINFO = $(JDK_LIBDIR)/$(LIBSAPROC_DEBUGINFO)
 
 # DEBUG_BINARIES overrides everything, use full -g debug information
 ifeq ($(DEBUG_BINARIES), true)
@@ -82,10 +86,25 @@ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
 	           -o $@                                                \
 	           -lthread_db
 	$(QUIETLY) [ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); }
+ifneq ($(OBJCOPY),)
+	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO)
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
+  ifeq ($(STRIP_POLICY),all_strip)
+	$(QUIETLY) $(STRIP) $@
+  else
+    ifeq ($(STRIP_POLICY),min_strip)
+	$(QUIETLY) $(STRIP) -g $@
+    # implied else here is no stripping at all
+    endif
+  endif
+	[ -f $(LIBSAPROC_G_DEBUGINFO) ] || { ln -s $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO); }
+endif
 
 install_saproc: $(BUILDLIBSAPROC)
 	$(QUIETLY) if [ -e $(LIBSAPROC) ] ; then             \
 	  echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)";     \
+	  test -f $(LIBSAPROC_DEBUGINFO) &&                  \
+	    cp -f $(LIBSAPROC_DEBUGINFO) $(DEST_SAPROC_DEBUGINFO); \
 	  cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done";  \
 	fi
 
diff --git a/hotspot/make/linux/makefiles/vm.make b/hotspot/make/linux/makefiles/vm.make
index 83c51b1..d406782 100644
--- a/hotspot/make/linux/makefiles/vm.make
+++ b/hotspot/make/linux/makefiles/vm.make
@@ -60,10 +60,16 @@ Src_Dirs_I += $(GENERATED)
 # The order is important for the precompiled headers to work.
 INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%)
 
-ifeq (${VERSION}, debug)
+# SYMFLAG is used by {jsig,saproc}.make
+ifneq ($(OBJCOPY),)
+  # always build with debug info when we can create .debuginfo files
   SYMFLAG = -g
 else
-  SYMFLAG =
+  ifeq (${VERSION}, debug)
+    SYMFLAG = -g
+  else
+    SYMFLAG =
+  endif
 endif
 
 # HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined 
@@ -124,6 +130,9 @@ JVM      = jvm
 LIBJVM   = lib$(JVM).so
 LIBJVM_G = lib$(JVM)$(G_SUFFIX).so
 
+LIBJVM_DEBUGINFO   = lib$(JVM).debuginfo
+LIBJVM_G_DEBUGINFO = lib$(JVM)$(G_SUFFIX).debuginfo
+
 SPECIAL_PATHS:=adlc c1 gc_implementation opto shark libadt
 
 SOURCE_PATHS=\
@@ -307,11 +316,30 @@ $(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
 	      fi                                                        \
             fi 								\
 	}
+ifeq ($(CROSS_COMPILE_ARCH),)
+  ifneq ($(OBJCOPY),)
+	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
+    ifeq ($(STRIP_POLICY),all_strip)
+	$(QUIETLY) $(STRIP) $@
+    else
+      ifeq ($(STRIP_POLICY),min_strip)
+	$(QUIETLY) $(STRIP) -g $@
+      # implied else here is no stripping at all
+      endif
+    endif
+	$(QUIETLY) [ -f $(LIBJVM_G_DEBUGINFO) ] || ln -s $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO)
+  endif
+endif
 
-DEST_JVM = $(JDK_LIBDIR)/$(VM_SUBDIR)/$(LIBJVM)
+DEST_SUBDIR        = $(JDK_LIBDIR)/$(VM_SUBDIR)
+DEST_JVM           = $(DEST_SUBDIR)/$(LIBJVM)
+DEST_JVM_DEBUGINFO = $(DEST_SUBDIR)/$(LIBJVM_DEBUGINFO)
 
 install_jvm: $(LIBJVM)
 	@echo "Copying $(LIBJVM) to $(DEST_JVM)"
+	$(QUIETLY) test -f $(LIBJVM_DEBUGINFO) && \
+	    cp -f $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO)
 	$(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done"
 
 #----------------------------------------------------------------------
diff --git a/hotspot/make/sa.files b/hotspot/make/sa.files
index dd9a0fd..4836c96 100644
--- a/hotspot/make/sa.files
+++ b/hotspot/make/sa.files
@@ -36,7 +36,7 @@ AGENT_SRC_DIR = $(AGENT_DIR)/src/share/classes
 # Splitted the set of files into two sets because on linux plaform
 # listing or compiling all the files results in 'Argument list too long' error.
 
-AGENT_FILES1 = \
+AGENT_FILES = \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/amd64/*.java \
@@ -46,17 +46,18 @@ $(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/x86/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/bugspot/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/bugspot/tree/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/c1/*.java \
+$(AGENT_SRC_DIR)/sun/jvm/hotspot/ci/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/code/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/compiler/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/amd64/*.java \
+$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/bsd/*.java \
+$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/bsd/amd64/*.java \
+$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/bsd/x86/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/cdbg/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/cdbg/basic/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/cdbg/basic/x86/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/cdbg/basic/amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/dbx/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/dbx/sparc/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/dbx/x86/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/dummy/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/ia64/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/linux/*.java \
@@ -75,7 +76,6 @@ $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/remote/amd64/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/remote/sparc/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/remote/x86/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/sparc/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/win32/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/win32/coff/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/windbg/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/windbg/amd64/*.java \
@@ -89,12 +89,14 @@ $(AGENT_SRC_DIR)/sun/jvm/hotspot/interpreter/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/jdi/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/livejvm/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/memory/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/oops/*.java 
-
-
-AGENT_FILES2 = \
+$(AGENT_SRC_DIR)/sun/jvm/hotspot/oops/*.java \
+$(AGENT_SRC_DIR)/sun/jvm/hotspot/opto/*.java \
+$(AGENT_SRC_DIR)/sun/jvm/hotspot/prims/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/amd64/*.java \
+$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/bsd/*.java \
+$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/bsd_amd64/*.java \
+$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/bsd_x86/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/ia64/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/linux/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/linux_amd64/*.java \
@@ -106,9 +108,6 @@ $(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/solaris_amd64/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/solaris_sparc/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/solaris_x86/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/sparc/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/win32_amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/win32_ia64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/win32_x86/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/x86/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/tools/*.java \
 $(AGENT_SRC_DIR)/sun/jvm/hotspot/tools/jcore/*.java \
diff --git a/hotspot/make/solaris/Makefile b/hotspot/make/solaris/Makefile
index b3af851..e1f32c4 100644
--- a/hotspot/make/solaris/Makefile
+++ b/hotspot/make/solaris/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -168,6 +168,7 @@ TARGETS_KERNEL    = $(addsuffix kernel,$(TARGETS))
 BUILDTREE_MAKE    = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make
 BUILDTREE_VARS    = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) ARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH)
 BUILDTREE_VARS   += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
+BUILDTREE_VARS   += OBJCOPY=$(OBJCOPY) STRIP_POLICY=$(STRIP_POLICY)
 
 BUILDTREE         = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS)
 
diff --git a/hotspot/make/solaris/makefiles/build_vm_def.sh b/hotspot/make/solaris/makefiles/build_vm_def.sh
new file mode 100644
index 0000000..7f86953
--- /dev/null
+++ b/hotspot/make/solaris/makefiles/build_vm_def.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+/usr/ccs/bin/nm -p $* \
+    | awk '{
+          if ($2 == "U") next
+          if ($3 ~ /^__1c.*__vtbl_$/ || $3 ~ /^gHotSpotVM/) print "\t" $3 ";"
+          if ($3 ~ /^UseSharedSpaces$/) print "\t" $3 ";"
+          if ($3 ~ /^__1cJArgumentsRSharedArchivePath_$/) print "\t" $3 ";"
+          }' \
+    | sort -u
diff --git a/hotspot/make/solaris/makefiles/buildtree.make b/hotspot/make/solaris/makefiles/buildtree.make
index 591ae3c..30e03be 100644
--- a/hotspot/make/solaris/makefiles/buildtree.make
+++ b/hotspot/make/solaris/makefiles/buildtree.make
@@ -226,6 +226,10 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
 	echo "$(call gamma-path,commonsrc,os/posix/vm)"; \
 	[ -n "$(CFLAGS_BROWSE)" ] && \
 	    echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \
+	[ -n "$(OBJCOPY)" ] && \
+	    echo && echo "OBJCOPY = $(OBJCOPY)"; \
+	[ -n "$(STRIP_POLICY)" ] && \
+	    echo && echo "STRIP_POLICY = $(STRIP_POLICY)"; \
 	[ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \
 	    echo && \
 	    echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
diff --git a/hotspot/make/solaris/makefiles/debug.make b/hotspot/make/solaris/makefiles/debug.make
index 57b6a11..60dc21b 100644
--- a/hotspot/make/solaris/makefiles/debug.make
+++ b/hotspot/make/solaris/makefiles/debug.make
@@ -41,8 +41,7 @@ CFLAGS += $(DEBUG_CFLAGS/BYFILE)
 
 # Linker mapfiles
 MAPFILE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers \
-          $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-debug \
-          $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-nonproduct
+          $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-debug
 
 # This mapfile is only needed when compiling with dtrace support, 
 # and mustn't be otherwise.
diff --git a/hotspot/make/solaris/makefiles/defs.make b/hotspot/make/solaris/makefiles/defs.make
index 6fc5964..f4b6ea3 100644
--- a/hotspot/make/solaris/makefiles/defs.make
+++ b/hotspot/make/solaris/makefiles/defs.make
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -59,36 +59,135 @@ else
   endif
 endif
 
+# determine if HotSpot is being built in JDK6 or earlier version
+JDK6_OR_EARLIER=0
+ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
+  # if the longer variable names (newer build style) are set, then check those
+  ifeq "$(shell expr \( $(JDK_MAJOR_VERSION) = 1 \& $(JDK_MINOR_VERSION) \< 7 \))" "1"
+    JDK6_OR_EARLIER=1
+  endif
+else
+  # the longer variables aren't set so check the shorter variable names
+  ifeq "$(shell expr \( '$(JDK_MAJOR_VER)' = 1 \& '$(JDK_MINOR_VER)' \< 7 \))" "1"
+    JDK6_OR_EARLIER=1
+  endif
+endif
+
+ifeq ($(JDK6_OR_EARLIER),0)
+  # Full Debug Symbols is supported on JDK7 or newer
+
+ifdef ENABLE_FULL_DEBUG_SYMBOLS
+  # Only check for Full Debug Symbols support on Solaris if it is
+  # specifically enabled. Hopefully, it can be enabled by default
+  # once the .debuginfo size issues are worked out.
+  
+  # Default OBJCOPY comes from the SUNWbinutils package:
+  DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
+  ifeq ($(VM_PLATFORM),solaris_amd64)
+    # On Solaris AMD64/X64, gobjcopy is not happy and fails:
+    #
+    # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
+    # BFD: stKPaiop: Not enough room for program headers, try linking with -N
+    # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
+    # BFD: stKPaiop: Not enough room for program headers, try linking with -N
+    # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
+    # BFD: stKPaiop: Not enough room for program headers, try linking with -N
+    # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
+    OBJCOPY=
+  else
+    OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
+    ifneq ($(ALT_OBJCOPY),)
+      _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
+      # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
+      OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
+    endif
+  endif
+endif
+  
+  ifeq ($(OBJCOPY),)
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
+  else
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
+  
+    # Library stripping policies for .debuginfo configs:
+    #   all_strip - strips everything from the library
+    #   min_strip - strips most stuff from the library; leaves minimum symbols
+    #   no_strip  - does not strip the library at all
+    #
+    # Oracle security policy requires "all_strip". A waiver was granted on
+    # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
+    #
+    DEF_STRIP_POLICY="min_strip"
+    ifeq ($(ALT_STRIP_POLICY),)
+      STRIP_POLICY=$(DEF_STRIP_POLICY)
+    else
+      STRIP_POLICY=$(ALT_STRIP_POLICY)
+    endif
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
+  endif
+endif
+
 JDK_INCLUDE_SUBDIR=solaris
 
+# Library suffix
+LIBRARY_SUFFIX=so
+
 # FIXUP: The subdirectory for a debug build is NOT the same on all platforms
 VM_DEBUG=jvmg
 
 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
 
-# client and server subdirectories have symbolic links to ../libjsig.so
-EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.so
+# client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX)
+EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
+ifneq ($(OBJCOPY),)
+  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
+endif
 
 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
+EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
+
 ifneq ($(BUILD_CLIENT_ONLY),true)
 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
-EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.so
-EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.so
-EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.so
+EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
+EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
+EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
+  ifneq ($(OBJCOPY),)
+    EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
+    EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo
+    EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo
+  endif
 endif
 ifeq ($(ARCH_DATA_MODEL), 32)
-  EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
-  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.so 
-  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.so 
-  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.so
-  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.so
-  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.so
+  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) 
+  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.$(LIBRARY_SUFFIX) 
+  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
+  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
+  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
+  ifneq ($(OBJCOPY),)
+    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
+    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo
+    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo
+    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo
+    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo
+  endif
   ifneq ($(BUILD_CLIENT_ONLY), true)
-    EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.so
-    EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.so
+    EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
+    EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
+    ifneq ($(OBJCOPY),)
+      EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.debuginfo
+      EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.debuginfo
+    endif
   endif
 endif
 
-EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so
+EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX)
+ifneq ($(OBJCOPY),)
+  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
+endif
 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar 
diff --git a/hotspot/make/solaris/makefiles/dtrace.make b/hotspot/make/solaris/makefiles/dtrace.make
index 8b75085..c7cc159 100644
--- a/hotspot/make/solaris/makefiles/dtrace.make
+++ b/hotspot/make/solaris/makefiles/dtrace.make
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -41,10 +41,16 @@ JVM_DB = libjvm_db
 LIBJVM_DB = libjvm_db.so
 LIBJVM_DB_G = libjvm$(G_SUFFIX)_db.so
 
+LIBJVM_DB_DEBUGINFO = libjvm_db.debuginfo
+LIBJVM_DB_G_DEBUGINFO = libjvm$(G_SUFFIX)_db.debuginfo
+
 JVM_DTRACE = jvm_dtrace
 LIBJVM_DTRACE = libjvm_dtrace.so
 LIBJVM_DTRACE_G = libjvm$(G_SUFFIX)_dtrace.so
 
+LIBJVM_DTRACE_DEBUGINFO = libjvm_dtrace.debuginfo
+LIBJVM_DTRACE_G_DEBUGINFO = libjvm$(G_SUFFIX)_dtrace.debuginfo
+
 JVMOFFS = JvmOffsets
 JVMOFFS.o = $(JVMOFFS).o
 GENOFFS = generate$(JVMOFFS)
@@ -89,12 +95,30 @@ XLIBJVM_DB_G = 64/$(LIBJVM_DB_G)
 XLIBJVM_DTRACE = 64/$(LIBJVM_DTRACE)
 XLIBJVM_DTRACE_G = 64/$(LIBJVM_DTRACE_G)
 
+XLIBJVM_DB_DEBUGINFO = 64/$(LIBJVM_DB_DEBUGINFO)
+XLIBJVM_DB_G_DEBUGINFO = 64/$(LIBJVM_DB_G_DEBUGINFO)
+XLIBJVM_DTRACE_DEBUGINFO = 64/$(LIBJVM_DTRACE_DEBUGINFO)
+XLIBJVM_DTRACE_G_DEBUGINFO = 64/$(LIBJVM_DTRACE_G_DEBUGINFO)
+
 $(XLIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS).h $(LIBJVM_DB_MAPFILE)
 	@echo Making $@
 	$(QUIETLY) mkdir -p 64/ ; \
 	$(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. -I$(GENERATED) \
 		$(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc
 	[ -f $(XLIBJVM_DB_G) ] || { ln -s $(LIBJVM_DB) $(XLIBJVM_DB_G); }
+ifneq ($(OBJCOPY),)
+	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DB_DEBUGINFO)
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(XLIBJVM_DB_DEBUGINFO) $@
+  ifeq ($(STRIP_POLICY),all_strip)
+	$(QUIETLY) $(STRIP) $@
+  else
+    ifeq ($(STRIP_POLICY),min_strip)
+	$(QUIETLY) $(STRIP) -x $@
+    # implied else here is no stripping at all
+    endif
+  endif
+	[ -f $(XLIBJVM_DB_G_DEBUGINFO) ] || { ln -s $(LIBJVM_DB_DEBUGINFO) $(XLIBJVM_DB_G_DEBUGINFO); }
+endif
 
 $(XLIBJVM_DTRACE): $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
 	@echo Making $@
@@ -102,6 +126,19 @@ $(XLIBJVM_DTRACE): $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(DTRACE_SRCDIR)/$(JVM_DTRAC
 	$(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. \
 		$(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor
 	[ -f $(XLIBJVM_DTRACE_G) ] || { ln -s $(LIBJVM_DTRACE) $(XLIBJVM_DTRACE_G); }
+ifneq ($(OBJCOPY),)
+	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DTRACE_DEBUGINFO)
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(XLIBJVM_DTRACE_DEBUGINFO) $@
+  ifeq ($(STRIP_POLICY),all_strip)
+	$(QUIETLY) $(STRIP) $@
+  else
+    ifeq ($(STRIP_POLICY),min_strip)
+	$(QUIETLY) $(STRIP) -x $@
+    # implied else here is no stripping at all
+    endif
+  endif
+	[ -f $(XLIBJVM_DTRACE_G_DEBUGINFO) ] || { ln -s $(LIBJVM_DTRACE_DEBUGINFO) $(XLIBJVM_DTRACE_G_DEBUGINFO); }
+endif
 
 endif # ifneq ("${ISA}","${BUILDARCH}")
 
@@ -148,12 +185,38 @@ $(LIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS.o) $(XLIBJVM_DB) $(LIBJVM_D
 	$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. -I$(GENERATED) \
 		$(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc
 	[ -f $(LIBJVM_DB_G) ] || { ln -s $@ $(LIBJVM_DB_G); }
+ifneq ($(OBJCOPY),)
+	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DB_DEBUGINFO)
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $@
+  ifeq ($(STRIP_POLICY),all_strip)
+	$(QUIETLY) $(STRIP) $@
+  else
+    ifeq ($(STRIP_POLICY),min_strip)
+	$(QUIETLY) $(STRIP) -x $@
+    # implied else here is no stripping at all
+    endif
+  endif
+	[ -f $(LIBJVM_DB_G_DEBUGINFO) ] || { ln -s $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB_G_DEBUGINFO); }
+endif
 
 $(LIBJVM_DTRACE): $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(XLIBJVM_DTRACE) $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
 	@echo Making $@
 	$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I.  \
 		$(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor
 	[ -f $(LIBJVM_DTRACE_G) ] || { ln -s $@ $(LIBJVM_DTRACE_G); }
+ifneq ($(OBJCOPY),)
+	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DTRACE_DEBUGINFO)
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $@
+  ifeq ($(STRIP_POLICY),all_strip)
+	$(QUIETLY) $(STRIP) $@
+  else
+    ifeq ($(STRIP_POLICY),min_strip)
+	$(QUIETLY) $(STRIP) -x $@
+    # implied else here is no stripping at all
+    endif
+  endif
+	[ -f $(LIBJVM_DTRACE_G_DEBUGINFO) ] || { ln -s $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE_G_DEBUGINFO); }
+endif
 
 $(DTRACE).d: $(DTRACE_SRCDIR)/hotspot.d $(DTRACE_SRCDIR)/hotspot_jni.d \
              $(DTRACE_SRCDIR)/hs_private.d $(DTRACE_SRCDIR)/jhelper.d
diff --git a/hotspot/make/solaris/makefiles/fastdebug.make b/hotspot/make/solaris/makefiles/fastdebug.make
index 1a033f0..2841055 100644
--- a/hotspot/make/solaris/makefiles/fastdebug.make
+++ b/hotspot/make/solaris/makefiles/fastdebug.make
@@ -107,8 +107,7 @@ CFLAGS += $(DEBUG_CFLAGS/BYFILE)
 
 # Linker mapfiles
 MAPFILE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers \
-	  $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-debug \
-	  $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-nonproduct
+	  $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-debug
 
 # This mapfile is only needed when compiling with dtrace support, 
 # and mustn't be otherwise.
diff --git a/hotspot/make/solaris/makefiles/jsig.make b/hotspot/make/solaris/makefiles/jsig.make
index 0fadae7..9002077 100644
--- a/hotspot/make/solaris/makefiles/jsig.make
+++ b/hotspot/make/solaris/makefiles/jsig.make
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -31,9 +31,13 @@ LIBJSIG   = lib$(JSIG).so
 JSIG_G    = $(JSIG)$(G_SUFFIX)
 LIBJSIG_G = lib$(JSIG_G).so
 
+LIBJSIG_DEBUGINFO   = lib$(JSIG).debuginfo
+LIBJSIG_G_DEBUGINFO = lib$(JSIG_G).debuginfo
+
 JSIGSRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/vm
 
-DEST_JSIG  = $(JDK_LIBDIR)/$(LIBJSIG)
+DEST_JSIG           = $(JDK_LIBDIR)/$(LIBJSIG)
+DEST_JSIG_DEBUGINFO = $(JDK_LIBDIR)/$(LIBJSIG_DEBUGINFO)
 
 LIBJSIG_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jsig
 
@@ -50,9 +54,24 @@ $(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
 	$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
                          $(LFLAGS_JSIG) -o $@ $< -ldl
 	[ -f $(LIBJSIG_G) ] || { ln -s $@ $(LIBJSIG_G); }
+ifneq ($(OBJCOPY),)
+	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
+  ifeq ($(STRIP_POLICY),all_strip)
+	$(QUIETLY) $(STRIP) $@
+  else
+    ifeq ($(STRIP_POLICY),min_strip)
+	$(QUIETLY) $(STRIP) -x $@
+    # implied else here is no stripping at all
+    endif
+  endif
+	[ -f $(LIBJSIG_G_DEBUGINFO) ] || { ln -s $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO); }
+endif
 
 install_jsig: $(LIBJSIG)
 	@echo "Copying $(LIBJSIG) to $(DEST_JSIG)"
+	$(QUIETLY) test -f $(LIBJSIG_DEBUGINFO) && \
+	    cp -f $(LIBJSIG_DEBUGINFO) $(DEST_JSIG_DEBUGINFO)
 	$(QUIETLY) cp -f $(LIBJSIG) $(DEST_JSIG) && echo "Done"
 
 .PHONY: install_jsig
diff --git a/hotspot/make/solaris/makefiles/jvmg.make b/hotspot/make/solaris/makefiles/jvmg.make
index a5cc37f..8e1db86 100644
--- a/hotspot/make/solaris/makefiles/jvmg.make
+++ b/hotspot/make/solaris/makefiles/jvmg.make
@@ -44,8 +44,7 @@ CFLAGS += $(DEBUG_CFLAGS/BYFILE)
 
 # Linker mapfiles
 MAPFILE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers \
-          $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-debug \
-          $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-nonproduct
+          $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-debug
 
 # This mapfile is only needed when compiling with dtrace support,
 # and mustn't be otherwise.
diff --git a/hotspot/make/solaris/makefiles/mapfile-vers b/hotspot/make/solaris/makefiles/mapfile-vers
index 49e9401..a073502 100644
--- a/hotspot/make/solaris/makefiles/mapfile-vers
+++ b/hotspot/make/solaris/makefiles/mapfile-vers
@@ -3,7 +3,7 @@
 #
 
 #
-# Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -257,6 +257,9 @@ SUNWprivate_1.1 {
 
 		# This is for Forte Analyzer profiling support.
 		AsyncGetCallTrace;
+
+		# INSERT VTABLE SYMBOLS HERE
+
         local:
                 *;
 };
diff --git a/hotspot/make/solaris/makefiles/optimized.make b/hotspot/make/solaris/makefiles/optimized.make
index 563bd4c..6919578 100644
--- a/hotspot/make/solaris/makefiles/optimized.make
+++ b/hotspot/make/solaris/makefiles/optimized.make
@@ -48,9 +48,7 @@ endif # Platform_compiler == sparcWorks
 CFLAGS$(HOTSPARC_GENERIC) += $(OPT_CFLAGS/BYFILE)
 
 # Linker mapfiles
-# NOTE: inclusion of nonproduct mapfile not necessary; read it for details
-MAPFILE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers \
-          $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-nonproduct
+MAPFILE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers
 
 # This mapfile is only needed when compiling with dtrace support, 
 # and mustn't be otherwise.
diff --git a/hotspot/make/solaris/makefiles/product.make b/hotspot/make/solaris/makefiles/product.make
index e6ebeea..300b70d 100644
--- a/hotspot/make/solaris/makefiles/product.make
+++ b/hotspot/make/solaris/makefiles/product.make
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -58,13 +58,9 @@ CFLAGS$(HOTSPARC_GENERIC) += $(OPT_CFLAGS/BYFILE)
 # to inhibit the effect of the previous line on CFLAGS.
 
 # Linker mapfiles
-# NOTE: inclusion of nonproduct mapfile not necessary; read it for details
-ifdef USE_GCC
 MAPFILE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers
-else
-MAPFILE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers \
-          $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-nonproduct
 
+ifndef USE_GCC
 # This mapfile is only needed when compiling with dtrace support, 
 # and mustn't be otherwise.
 MAPFILE_DTRACE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-$(TYPE)
@@ -72,7 +68,8 @@ MAPFILE_DTRACE = $(GAMMADIR)/make/solaris/makefiles/mapfile-vers-$(TYPE)
 REORDERFILE = $(GAMMADIR)/make/solaris/makefiles/reorder_$(TYPE)_$(BUILDARCH)
 endif
 
-# Don't strip in VM build; JDK build will strip libraries later
+# If we can create .debuginfo files, then the VM is stripped in vm.make
+# and this macro is not used.
 # LINK_LIB.CC/POST_HOOK += $(STRIP_LIB.CC/POST_HOOK)
 
 G_SUFFIX =
diff --git a/hotspot/make/solaris/makefiles/sa.make b/hotspot/make/solaris/makefiles/sa.make
index d510443..ec27f56 100644
--- a/hotspot/make/solaris/makefiles/sa.make
+++ b/hotspot/make/solaris/makefiles/sa.make
@@ -39,13 +39,7 @@ SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
 # TODO: if it's a modules image, check if SA module is installed.
 MODULELIB_PATH= $(BOOT_JAVA_HOME)/lib/modules
 
-# gnumake 3.78.1 does not accept the *s that
-# are in AGENT_FILES1 and AGENT_FILES2, so use the shell to expand them
-AGENT_FILES1 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES1))
-AGENT_FILES2 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES2))
-
-AGENT_FILES1_LIST := $(GENERATED)/agent1.classes.list
-AGENT_FILES2_LIST := $(GENERATED)/agent2.classes.list
+AGENT_FILES_LIST := $(GENERATED)/agent.classes.list
 
 SA_CLASSDIR = $(GENERATED)/saclasses
 
@@ -59,7 +53,7 @@ all:
 	   $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
 	fi
 
-$(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
+$(GENERATED)/sa-jdi.jar: $(AGENT_FILES)
 	$(QUIETLY) echo "Making $@";
 	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
 	   echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
@@ -73,7 +67,6 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
 	$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
 	  mkdir -p $(SA_CLASSDIR);        \
 	fi
-	
 # Note: When indented, make tries to execute the '$(shell' comment.
 # In some environments, cmd processors have limited line length.
 # To prevent the javac invocation in the next block from using
@@ -84,13 +77,12 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
 # the initialization of the lists is also done in the same phase
 # using '$(shell rm ...' instead of using the more traditional
 # 'rm ...' rule.
-	$(shell rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST))
-	$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
-	$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
-	
-	$(QUIETLY) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
-	$(QUIETLY) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
-	
+	$(shell rm -rf $(AGENT_FILES_LIST))
+# gnumake 3.78.1 does not accept the *'s that
+# are in AGENT_FILES, so use the shell to expand them.
+# Be extra carefull to not produce too long command lines in the shell!
+	$(foreach file,$(AGENT_FILES),$(shell ls -1 $(file) >> $(AGENT_FILES_LIST)))
+	$(QUIETLY) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES_LIST)
 	$(QUIETLY) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
 	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
 	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
@@ -106,4 +98,4 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
 clean:
 	rm -rf $(SA_CLASSDIR)
 	rm -rf $(GENERATED)/sa-jdi.jar
-	rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST)
+	rm -rf $(AGENT_FILES_LIST)
diff --git a/hotspot/make/solaris/makefiles/saproc.make b/hotspot/make/solaris/makefiles/saproc.make
index 027faaa..389ed9d 100644
--- a/hotspot/make/solaris/makefiles/saproc.make
+++ b/hotspot/make/solaris/makefiles/saproc.make
@@ -32,6 +32,9 @@ LIBSAPROC = lib$(SAPROC).so
 SAPROC_G = $(SAPROC)$(G_SUFFIX)
 LIBSAPROC_G = lib$(SAPROC_G).so
 
+LIBSAPROC_DEBUGINFO   = lib$(SAPROC).debuginfo
+LIBSAPROC_G_DEBUGINFO = lib$(SAPROC_G).debuginfo
+
 AGENT_DIR = $(GAMMADIR)/agent
 
 SASRCDIR = $(AGENT_DIR)/src/os/$(Platform_os_family)/proc
@@ -40,7 +43,8 @@ SASRCFILES = $(SASRCDIR)/saproc.cpp
 
 SAMAPFILE = $(SASRCDIR)/mapfile
 
-DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC)
+DEST_SAPROC           = $(JDK_LIBDIR)/$(LIBSAPROC)
+DEST_SAPROC_DEBUGINFO = $(JDK_LIBDIR)/$(LIBSAPROC_DEBUGINFO)
 
 # if $(AGENT_DIR) does not exist, we don't build SA
 
@@ -72,9 +76,9 @@ $(shell uname -r -v \
           -e '/^[0-4]\. /b' \
           -e '/^5\.[0-9] /b' \
           -e '/^5\.10 /b' \
-          -e '/ snv_[0-9][0-9]$/b' \
-          -e '/ snv_[01][0-4][0-9]$/b' \
-          -e '/ snv_15[0-8]$/b' \
+          -e '/ snv_[0-9][0-9]$$/b' \
+          -e '/ snv_[01][0-4][0-9]$$/b' \
+          -e '/ snv_15[0-8]$$/b' \
           -e 's/.*/-DSOLARIS_11_B159_OR_LATER/' \
           -e 'p' \
           )
@@ -101,10 +105,25 @@ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
 	           -o $@                                                \
 	           -ldl -ldemangle -lthread -lc
 	[ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); }
+ifneq ($(OBJCOPY),)
+	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO)
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
+  ifeq ($(STRIP_POLICY),all_strip)
+	$(QUIETLY) $(STRIP) $@
+  else
+    ifeq ($(STRIP_POLICY),min_strip)
+	$(QUIETLY) $(STRIP) -x $@
+    # implied else here is no stripping at all
+    endif
+  endif
+	[ -f $(LIBSAPROC_G_DEBUGINFO) ] || { ln -s $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO); }
+endif
 
 install_saproc: $(BULDLIBSAPROC)
 	$(QUIETLY) if [ -f $(LIBSAPROC) ] ; then             \
 	  echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)";     \
+	  test -f $(LIBSAPROC_DEBUGINFO) &&             \
+	    cp -f $(LIBSAPROC_DEBUGINFO) $(DEST_SAPROC_DEBUGINFO); \
 	  cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done";  \
 	fi
 
diff --git a/hotspot/make/solaris/makefiles/sparcWorks.make b/hotspot/make/solaris/makefiles/sparcWorks.make
index 18a892e..67a22a2 100644
--- a/hotspot/make/solaris/makefiles/sparcWorks.make
+++ b/hotspot/make/solaris/makefiles/sparcWorks.make
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -148,6 +148,9 @@ endif
 # -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
 CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
 
+# Compiler warnings are treated as errors
+CFLAGS_WARN = -xwe
+
 ################################################
 # Begin current (>=5.9) Forte compiler options #
 #################################################
@@ -478,9 +481,18 @@ CFLAGS += -DCC_INTERP
 endif
 
 # Flags for Debugging
+# The -g0 setting allows the C++ frontend to inline, which is a big win.
+# The -xs setting disables 'lazy debug info' which puts everything in
+# the .so instead of requiring the '.o' files.
+ifneq ($(OBJCOPY),)
+  OPT_CFLAGS += -g0 -xs
+endif
 DEBUG_CFLAGS = -g
 FASTDEBUG_CFLAGS = -g0
-# The -g0 setting allows the C++ frontend to inline, which is a big win.
+ifneq ($(OBJCOPY),)
+  DEBUG_CFLAGS += -xs
+  FASTDEBUG_CFLAGS += -xs
+endif
 
 # Special global options for SS12
 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
@@ -499,6 +511,9 @@ endif
 # data using a unique globalization prefix. Instead force the use of
 # a static globalization prefix based on the source filepath so the
 # objects from two identical compilations are the same.
+# EXTRA_CFLAGS only covers vm_version.cpp for some reason
+#EXTRA_CFLAGS += -Qoption ccfe -xglobalstatic
+#OPT_CFLAGS += -Qoption ccfe -xglobalstatic
 #DEBUG_CFLAGS += -Qoption ccfe -xglobalstatic
 #FASTDEBUG_CFLAGS += -Qoption ccfe -xglobalstatic
 
@@ -559,6 +574,8 @@ LINK_LIB.CC/POST_HOOK += $(MCS) -c $@ || exit 1;
 # since the hook must terminate itself as a valid command.)
 
 # Also, strip debug and line number information (worth about 1.7Mb).
+# If we can create .debuginfo files, then the VM is stripped in vm.make
+# and this macro is not used.
 STRIP_LIB.CC/POST_HOOK = $(STRIP) -x $@ || exit 1;
 # STRIP_LIB.CC/POST_HOOK is incorporated into LINK_LIB.CC/POST_HOOK
 # in certain configurations, such as product.make.  Other configurations,
diff --git a/hotspot/make/solaris/makefiles/vm.make b/hotspot/make/solaris/makefiles/vm.make
index 5db3dae..7b950af 100644
--- a/hotspot/make/solaris/makefiles/vm.make
+++ b/hotspot/make/solaris/makefiles/vm.make
@@ -55,10 +55,17 @@ VPATH += $(Src_Dirs_V:%=%:)
 Src_Dirs_I += $(GENERATED)
 INCLUDES += $(Src_Dirs_I:%=-I%)
 
-ifeq (${VERSION}, debug)
-  SYMFLAG = -g
+# SYMFLAG is used by {dtrace,jsig,saproc}.make.
+ifneq ($(OBJCOPY),)
+  # always build with debug info when we can create .debuginfo files
+  # and disable 'lazy debug info' so the .so has everything.
+  SYMFLAG = -g -xs
 else
-  SYMFLAG =
+  ifeq (${VERSION}, debug)
+    SYMFLAG = -g
+  else
+    SYMFLAG =
+  endif
 endif
 
 # The following variables are defined in the generated flags.make file.
@@ -140,6 +147,9 @@ JVM      = jvm
 LIBJVM   = lib$(JVM).so
 LIBJVM_G = lib$(JVM)$(G_SUFFIX).so
 
+LIBJVM_DEBUGINFO   = lib$(JVM).debuginfo
+LIBJVM_G_DEBUGINFO = lib$(JVM)$(G_SUFFIX).debuginfo
+
 SPECIAL_PATHS:=adlc c1 dist gc_implementation opto shark libadt
 
 SOURCE_PATHS=\
@@ -212,14 +222,24 @@ JVM_OBJ_FILES = $(Obj_Files) $(DTRACE_OBJS)
 
 vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
 
-mapfile : $(MAPFILE) $(MAPFILE_DTRACE_OPT)
+mapfile : $(MAPFILE) $(MAPFILE_DTRACE_OPT) vm.def
 	rm -f $@
-	cat $^ > $@
+	cat $(MAPFILE) $(MAPFILE_DTRACE_OPT) \
+	    | $(NAWK) '{                                         \
+	              if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") {  \
+	                  system ("cat vm.def");                 \
+	              } else {                                   \
+	                  print $$0;                             \
+	              }                                          \
+	          }' > $@
 
 mapfile_reorder : mapfile $(MAPFILE_DTRACE_OPT) $(REORDERFILE)
 	rm -f $@
 	cat $^ > $@
 
+vm.def: $(Obj_Files)
+	sh $(GAMMADIR)/make/solaris/makefiles/build_vm_def.sh *.o > $@
+
 ifeq ($(LINK_INTO),AOUT)
   LIBJVM.o                 =
   LIBJVM_MAPFILE           =
@@ -255,13 +275,30 @@ ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),)
 	$(QUIETLY) rm -f $@.1 && ln -s $@ $@.1
 	$(QUIETLY) [ -f $(LIBJVM_G) ] || ln -s $@ $(LIBJVM_G)
 	$(QUIETLY) [ -f $(LIBJVM_G).1 ] || ln -s $@.1 $(LIBJVM_G).1
+ifneq ($(OBJCOPY),)
+	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
+  ifeq ($(STRIP_POLICY),all_strip)
+	$(QUIETLY) $(STRIP) $@
+  else
+    ifeq ($(STRIP_POLICY),min_strip)
+	$(QUIETLY) $(STRIP) -x $@
+    # implied else here is no stripping at all
+    endif
+  endif
+	$(QUIETLY) [ -f $(LIBJVM_G_DEBUGINFO) ] || ln -s $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO)
+endif
 endif # filter -sbfast -xsbfast
 
 
-DEST_JVM = $(JDK_LIBDIR)/$(VM_SUBDIR)/$(LIBJVM)
+DEST_SUBDIR        = $(JDK_LIBDIR)/$(VM_SUBDIR)
+DEST_JVM           = $(DEST_SUBDIR)/$(LIBJVM)
+DEST_JVM_DEBUGINFO = $(DEST_SUBDIR)/$(LIBJVM_DEBUGINFO)
 
 install_jvm: $(LIBJVM)
 	@echo "Copying $(LIBJVM) to $(DEST_JVM)"
+	$(QUIETLY) test -f $(LIBJVM_DEBUGINFO) && \
+	    cp -f $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO)
 	$(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done"
 
 #----------------------------------------------------------------------
diff --git a/hotspot/make/windows/makefiles/compile.make b/hotspot/make/windows/makefiles/compile.make
index 75851e2..8cc5677 100644
--- a/hotspot/make/windows/makefiles/compile.make
+++ b/hotspot/make/windows/makefiles/compile.make
@@ -81,7 +81,6 @@ CPP=ARCH_ERROR
 !endif
 
 CPP_FLAGS=$(CPP_FLAGS) /D "WIN32" /D "_WINDOWS"
-
 # Must specify this for sharedRuntimeTrig.cpp
 CPP_FLAGS=$(CPP_FLAGS) /D "VM_LITTLE_ENDIAN"
 
@@ -232,6 +231,11 @@ LINK_FLAGS= $(LINK_FLAGS) kernel32.lib user32.lib gdi32.lib winspool.lib \
  uuid.lib Wsock32.lib winmm.lib /nologo /machine:$(MACHINE) /opt:REF \
  /opt:ICF,8 /map /debug
 
+
+!if $(MSC_VER) >= 1600 
+LINK_FLAGS= $(LINK_FLAGS) psapi.lib
+!endif
+
 # Resource compiler settings
 RC=rc.exe
 RC_FLAGS=/D "HS_VER=$(HS_VER)" \
diff --git a/hotspot/make/windows/makefiles/defs.make b/hotspot/make/windows/makefiles/defs.make
index ded87af..c1be7d2 100644
--- a/hotspot/make/windows/makefiles/defs.make
+++ b/hotspot/make/windows/makefiles/defs.make
@@ -109,6 +109,9 @@ endif
 
 JDK_INCLUDE_SUBDIR=win32
 
+# Library suffix
+LIBRARY_SUFFIX=dll
+
 # HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined
 # and added to MAKE_ARGS list in $(GAMMADIR)/make/defs.make.
 
@@ -171,27 +174,28 @@ ifeq ($(BUILD_WIN_SA), 1)
 endif
 
 EXPORT_SERVER_DIR = $(EXPORT_JRE_BIN_DIR)/server
+EXPORT_CLIENT_DIR = $(EXPORT_JRE_BIN_DIR)/client
+EXPORT_KERNEL_DIR = $(EXPORT_JRE_BIN_DIR)/kernel
+
 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
-EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.dll
+EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.$(LIBRARY_SUFFIX)
 EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.pdb
 EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.map
 EXPORT_LIST += $(EXPORT_LIB_DIR)/jvm.lib
 ifeq ($(ARCH_DATA_MODEL), 32)
-  EXPORT_CLIENT_DIR = $(EXPORT_JRE_BIN_DIR)/client
   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
-  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.dll
+  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.$(LIBRARY_SUFFIX)
   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.pdb
   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.map
   # kernel vm
-  EXPORT_KERNEL_DIR = $(EXPORT_JRE_BIN_DIR)/kernel
   EXPORT_LIST += $(EXPORT_KERNEL_DIR)/Xusage.txt
-  EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.dll
+  EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.$(LIBRARY_SUFFIX)
   EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.pdb
   EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.map
 endif
 
 ifeq ($(BUILD_WIN_SA), 1)
-  EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.dll
+  EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.$(LIBRARY_SUFFIX)
   EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.pdb
   EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.map
   EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
diff --git a/hotspot/make/windows/makefiles/sa.make b/hotspot/make/windows/makefiles/sa.make
index 85072ec..ac59711 100644
--- a/hotspot/make/windows/makefiles/sa.make
+++ b/hotspot/make/windows/makefiles/sa.make
@@ -52,12 +52,11 @@ default::  $(GENERATED)\sa-jdi.jar
 # Remove the space between $(SA_BUILD_VERSION_PROP) and > below as it adds a white space
 # at the end of SA version string and causes a version mismatch with the target VM version.
 
-$(GENERATED)\sa-jdi.jar: $(AGENT_FILES1:/=\) $(AGENT_FILES2:/=\)
+$(GENERATED)\sa-jdi.jar: $(AGENT_FILES:/=\)
 	@if not exist $(SA_CLASSDIR) mkdir $(SA_CLASSDIR)
 	@echo ...Building sa-jdi.jar
 	@echo ...$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -d $(SA_CLASSDIR) ....
-	@$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\)
-	@$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\)
+	@$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES:/=\)
 	$(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
 	$(QUIETLY) echo $(SA_BUILD_VERSION_PROP)> $(SA_PROPERTIES)
 	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
@@ -66,7 +65,7 @@ $(GENERATED)\sa-jdi.jar: $(AGENT_FILES1:/=\) $(AGENT_FILES2:/=\)
 	$(QUIETLY) mkdir $(SA_CLASSDIR)\sun\jvm\hotspot\ui\resources
 	$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
 	$(QUIETLY) cp -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)
-	$(RUN_JAR) cf $@ -C saclasses .
+	$(RUN_JAR) cf $@ -C $(SA_CLASSDIR) .
 	$(RUN_JAR) uf $@ -C $(AGENT_SRC_DIR:/=\) META-INF\services\com.sun.jdi.connect.Connector
 	$(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal
 	$(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.x86.X86ThreadContext 
diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp
index 14f7f6c..8fe1155 100644
--- a/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp
@@ -100,12 +100,19 @@ void Assembler::print_instruction(int inst) {
   case call_op:    s = "call"; break;
   case branch_op:
     switch (inv_op2(inst)) {
-      case bpr_op2:    s = "bpr";  break;
       case fb_op2:     s = "fb";   break;
       case fbp_op2:    s = "fbp";  break;
       case br_op2:     s = "br";   break;
       case bp_op2:     s = "bp";   break;
       case cb_op2:     s = "cb";   break;
+      case bpr_op2: {
+        if (is_cbcond(inst)) {
+          s = is_cxb(inst) ? "cxb" : "cwb";
+        } else {
+          s = "bpr";
+        }
+        break;
+      }
       default:         s = "????"; break;
     }
   }
@@ -127,12 +134,21 @@ int Assembler::patched_branch(int dest_pos, int inst, int inst_pos) {
   case call_op:    m = wdisp(word_aligned_ones, 0, 30);  v = wdisp(dest_pos, inst_pos, 30); break;
   case branch_op:
     switch (inv_op2(inst)) {
-      case bpr_op2:    m = wdisp16(word_aligned_ones, 0);      v = wdisp16(dest_pos, inst_pos);     break;
       case fbp_op2:    m = wdisp(  word_aligned_ones, 0, 19);  v = wdisp(  dest_pos, inst_pos, 19); break;
       case bp_op2:     m = wdisp(  word_aligned_ones, 0, 19);  v = wdisp(  dest_pos, inst_pos, 19); break;
       case fb_op2:     m = wdisp(  word_aligned_ones, 0, 22);  v = wdisp(  dest_pos, inst_pos, 22); break;
       case br_op2:     m = wdisp(  word_aligned_ones, 0, 22);  v = wdisp(  dest_pos, inst_pos, 22); break;
       case cb_op2:     m = wdisp(  word_aligned_ones, 0, 22);  v = wdisp(  dest_pos, inst_pos, 22); break;
+      case bpr_op2: {
+        if (is_cbcond(inst)) {
+          m = wdisp10(word_aligned_ones, 0);
+          v = wdisp10(dest_pos, inst_pos);
+        } else {
+          m = wdisp16(word_aligned_ones, 0);
+          v = wdisp16(dest_pos, inst_pos);
+        }
+        break;
+      }
       default: ShouldNotReachHere();
     }
   }
@@ -149,12 +165,19 @@ int Assembler::branch_destination(int inst, int pos) {
   case call_op:        r = inv_wdisp(inst, pos, 30);  break;
   case branch_op:
     switch (inv_op2(inst)) {
-      case bpr_op2:    r = inv_wdisp16(inst, pos);    break;
       case fbp_op2:    r = inv_wdisp(  inst, pos, 19);  break;
       case bp_op2:     r = inv_wdisp(  inst, pos, 19);  break;
       case fb_op2:     r = inv_wdisp(  inst, pos, 22);  break;
       case br_op2:     r = inv_wdisp(  inst, pos, 22);  break;
       case cb_op2:     r = inv_wdisp(  inst, pos, 22);  break;
+      case bpr_op2: {
+        if (is_cbcond(inst)) {
+          r = inv_wdisp10(inst, pos);
+        } else {
+          r = inv_wdisp16(inst, pos);
+        }
+        break;
+      }
       default: ShouldNotReachHere();
     }
   }
@@ -968,13 +991,7 @@ void MacroAssembler::set_last_Java_frame(Register last_java_sp, Register last_Ja
   Label PcOk;
   save_frame(0);                // to avoid clobbering O0
   ld_ptr(pc_addr, L0);
-  tst(L0);
-#ifdef _LP64
-  brx(Assembler::zero, false, Assembler::pt, PcOk);
-#else
-  br(Assembler::zero, false, Assembler::pt, PcOk);
-#endif // _LP64
-  delayed() -> nop();
+  br_null_short(L0, Assembler::pt, PcOk);
   stop("last_Java_pc not zeroed before leaving Java");
   bind(PcOk);
 
@@ -1003,7 +1020,7 @@ void MacroAssembler::set_last_Java_frame(Register last_java_sp, Register last_Ja
   Label StackOk;
   andcc(last_java_sp, 0x01, G0);
   br(Assembler::notZero, false, Assembler::pt, StackOk);
-  delayed() -> nop();
+  delayed()->nop();
   stop("Stack Not Biased in set_last_Java_frame");
   bind(StackOk);
 #endif // ASSERT
@@ -1099,8 +1116,7 @@ void MacroAssembler::check_and_forward_exception(Register scratch_reg)
 
   Address exception_addr(G2_thread, Thread::pending_exception_offset());
   ld_ptr(exception_addr, scratch_reg);
-  br_null(scratch_reg,false,pt,L);
-  delayed()->nop();
+  br_null_short(scratch_reg, pt, L);
   // we use O7 linkage so that forward_exception_entry has the issuing PC
   call(StubRoutines::forward_exception_entry(), relocInfo::runtime_call_type);
   delayed()->nop();
@@ -1778,7 +1794,8 @@ void MacroAssembler::_verify_oop(Register reg, const char* msg, const char * fil
   mov(reg,O0); // Move arg into O0; arg might be in O7 which is about to be crushed
   stx(O7,SP,frame::register_save_words*wordSize+STACK_BIAS+7*8);
 
-  set((intptr_t)real_msg, O1);
+  // Size of set() should stay the same
+  patchable_set((intptr_t)real_msg, O1);
   // Load address to call to into O7
   load_ptr_contents(a, O7);
   // Register call to verify_oop_subroutine
@@ -1815,7 +1832,8 @@ void MacroAssembler::_verify_oop_addr(Address addr, const char* msg, const char
   ld_ptr(addr.base(), addr.disp() + 8*8, O0); // Load arg into O0; arg might be in O7 which is about to be crushed
   stx(O7,SP,frame::register_save_words*wordSize+STACK_BIAS+7*8);
 
-  set((intptr_t)real_msg, O1);
+  // Size of set() should stay the same
+  patchable_set((intptr_t)real_msg, O1);
   // Load address to call to into O7
   load_ptr_contents(a, O7);
   // Register call to verify_oop_subroutine
@@ -1874,14 +1892,11 @@ void MacroAssembler::verify_oop_subroutine() {
 
   // assert((obj & oop_mask) == oop_bits);
   and3(O0_obj, O2_mask, O4_temp);
-  cmp(O4_temp, O3_bits);
-  brx(notEqual, false, pn, null_or_fail);
-  delayed()->nop();
+  cmp_and_brx_short(O4_temp, O3_bits, notEqual, pn, null_or_fail);
 
   if ((NULL_WORD & Universe::verify_oop_mask()) == Universe::verify_oop_bits()) {
     // the null_or_fail case is useless; must test for null separately
-    br_null(O0_obj, false, pn, succeed);
-    delayed()->nop();
+    br_null_short(O0_obj, pn, succeed);
   }
 
   // Check the klassOop of this object for being in the right area of memory.
@@ -1893,9 +1908,7 @@ void MacroAssembler::verify_oop_subroutine() {
   if( Universe::verify_klass_bits() != Universe::verify_oop_bits() )
     set(Universe::verify_klass_bits(), O3_bits);
   and3(O0_obj, O2_mask, O4_temp);
-  cmp(O4_temp, O3_bits);
-  brx(notEqual, false, pn, fail);
-  delayed()->nop();
+  cmp_and_brx_short(O4_temp, O3_bits, notEqual, pn, fail);
   // Check the klass's klass
   load_klass(O0_obj, O0_obj);
   and3(O0_obj, O2_mask, O4_temp);
@@ -1965,7 +1978,8 @@ void MacroAssembler::stop(const char* msg) {
     save_frame(::round_to(sizeof(RegistersForDebugging) / BytesPerWord, 2));
 
     // stop_subroutine expects message pointer in I1.
-    set((intptr_t)msg, O1);
+    // Size of set() should stay the same
+    patchable_set((intptr_t)msg, O1);
 
     // factor long stop-sequence into subroutine to save space
     assert(StubRoutines::Sparc::stop_subroutine_entry_address(), "hasn't been generated yet");
@@ -1987,7 +2001,8 @@ void MacroAssembler::warn(const char* msg) {
   save_frame(::round_to(sizeof(RegistersForDebugging) / BytesPerWord, 2));
   RegistersForDebugging::save_registers(this);
   mov(O0, L0);
-  set((intptr_t)msg, O0);
+  // Size of set() should stay the same
+  patchable_set((intptr_t)msg, O0);
   call( CAST_FROM_FN_PTR(address, warning) );
   delayed()->nop();
 //  ret();
@@ -2122,13 +2137,12 @@ Assembler::RCondition cond2rcond(Assembler::Condition c) {
   return Assembler::rc_z;
 }
 
-// compares register with zero and branches.  NOT FOR USE WITH 64-bit POINTERS
-void MacroAssembler::br_zero( Condition c, bool a, Predict p, Register s1, Label& L) {
+// compares (32 bit) register with zero and branches.  NOT FOR USE WITH 64-bit POINTERS
+void MacroAssembler::cmp_zero_and_br(Condition c, Register s1, Label& L, bool a, Predict p) {
   tst(s1);
   br (c, a, p, L);
 }
 
-
 // Compares a pointer register with zero and branches on null.
 // Does a test & branch on 32-bit systems and a register-branch on 64-bit.
 void MacroAssembler::br_null( Register s1, bool a, Predict p, Label& L ) {
@@ -2151,27 +2165,91 @@ void MacroAssembler::br_notnull( Register s1, bool a, Predict p, Label& L ) {
 #endif
 }
 
-void MacroAssembler::br_on_reg_cond( RCondition rc, bool a, Predict p,
-                                     Register s1, address d,
-                                     relocInfo::relocType rt ) {
-  if (VM_Version::v9_instructions_work()) {
-    bpr(rc, a, p, s1, d, rt);
+// Compare registers and branch with nop in delay slot or cbcond without delay slot.
+
+// Compare integer (32 bit) values (icc only).
+void MacroAssembler::cmp_and_br_short(Register s1, Register s2, Condition c,
+                                      Predict p, Label& L) {
+  assert_not_delayed();
+  if (use_cbcond(L)) {
+    Assembler::cbcond(c, icc, s1, s2, L);
   } else {
-    tst(s1);
-    br(reg_cond_to_cc_cond(rc), a, p, d, rt);
+    cmp(s1, s2);
+    br(c, false, p, L);
+    delayed()->nop();
   }
 }
 
-void MacroAssembler::br_on_reg_cond( RCondition rc, bool a, Predict p,
-                                     Register s1, Label& L ) {
-  if (VM_Version::v9_instructions_work()) {
-    bpr(rc, a, p, s1, L);
+// Compare integer (32 bit) values (icc only).
+void MacroAssembler::cmp_and_br_short(Register s1, int simm13a, Condition c,
+                                      Predict p, Label& L) {
+  assert_not_delayed();
+  if (is_simm(simm13a,5) && use_cbcond(L)) {
+    Assembler::cbcond(c, icc, s1, simm13a, L);
+  } else {
+    cmp(s1, simm13a);
+    br(c, false, p, L);
+    delayed()->nop();
+  }
+}
+
+// Branch that tests xcc in LP64 and icc in !LP64
+void MacroAssembler::cmp_and_brx_short(Register s1, Register s2, Condition c,
+                                       Predict p, Label& L) {
+  assert_not_delayed();
+  if (use_cbcond(L)) {
+    Assembler::cbcond(c, ptr_cc, s1, s2, L);
+  } else {
+    cmp(s1, s2);
+    brx(c, false, p, L);
+    delayed()->nop();
+  }
+}
+
+// Branch that tests xcc in LP64 and icc in !LP64
+void MacroAssembler::cmp_and_brx_short(Register s1, int simm13a, Condition c,
+                                       Predict p, Label& L) {
+  assert_not_delayed();
+  if (is_simm(simm13a,5) && use_cbcond(L)) {
+    Assembler::cbcond(c, ptr_cc, s1, simm13a, L);
   } else {
-    tst(s1);
-    br(reg_cond_to_cc_cond(rc), a, p, L);
+    cmp(s1, simm13a);
+    brx(c, false, p, L);
+    delayed()->nop();
   }
 }
 
+// Short branch version for compares a pointer with zero.
+
+void MacroAssembler::br_null_short(Register s1, Predict p, Label& L) {
+  assert_not_delayed();
+  if (use_cbcond(L)) {
+    Assembler::cbcond(zero, ptr_cc, s1, 0, L);
+    return;
+  }
+  br_null(s1, false, p, L);
+  delayed()->nop();
+}
+
+void MacroAssembler::br_notnull_short(Register s1, Predict p, Label& L) {
+  assert_not_delayed();
+  if (use_cbcond(L)) {
+    Assembler::cbcond(notZero, ptr_cc, s1, 0, L);
+    return;
+  }
+  br_notnull(s1, false, p, L);
+  delayed()->nop();
+}
+
+// Unconditional short branch
+void MacroAssembler::ba_short(Label& L) {
+  if (use_cbcond(L)) {
+    Assembler::cbcond(equal, icc, G0, G0, L);
+    return;
+  }
+  br(always, false, pt, L);
+  delayed()->nop();
+}
 
 // instruction sequences factored across compiler & interpreter
 
@@ -2197,11 +2275,9 @@ void MacroAssembler::lcmp( Register Ra_hi, Register Ra_low,
   // since that triplet is reached only after finding the high halves differ.
 
   if (VM_Version::v9_instructions_work()) {
-
-                                    mov  (                     -1, Rresult);
-    ba( false, done );  delayed()-> movcc(greater, false, icc,  1, Rresult);
-  }
-  else {
+    mov(-1, Rresult);
+    ba(done);  delayed()-> movcc(greater, false, icc,  1, Rresult);
+  } else {
     br(less,    true, pt, done); delayed()-> set(-1, Rresult);
     br(greater, true, pt, done); delayed()-> set( 1, Rresult);
   }
@@ -2212,9 +2288,8 @@ void MacroAssembler::lcmp( Register Ra_hi, Register Ra_low,
     mov(                               -1, Rresult);
     movcc(equal,           false, icc,  0, Rresult);
     movcc(greaterUnsigned, false, icc,  1, Rresult);
-  }
-  else {
-                                                    set(-1, Rresult);
+  } else {
+    set(-1, Rresult);
     br(equal,           true, pt, done); delayed()->set( 0, Rresult);
     br(greaterUnsigned, true, pt, done); delayed()->set( 1, Rresult);
   }
@@ -2250,11 +2325,10 @@ void MacroAssembler::lshl( Register Rin_high,  Register Rin_low,
   // This code can be optimized to use the 64 bit shifts in V9.
   // Here we use the 32 bit shifts.
 
-  and3( Rcount,         0x3f,           Rcount);     // take least significant 6 bits
-  subcc(Rcount,         31,             Ralt_count);
+  and3( Rcount, 0x3f, Rcount);     // take least significant 6 bits
+  subcc(Rcount,   31, Ralt_count);
   br(greater, true, pn, big_shift);
-  delayed()->
-  dec(Ralt_count);
+  delayed()->dec(Ralt_count);
 
   // shift < 32 bits, Ralt_count = Rcount-31
 
@@ -2263,28 +2337,27 @@ void MacroAssembler::lshl( Register Rin_high,  Register Rin_low,
   // more to take care of the special (rare) case where count is zero
   // (shifting by 32 would not work).
 
-  neg(  Ralt_count                                 );
+  neg(Ralt_count);
 
   // The order of the next two instructions is critical in the case where
   // Rin and Rout are the same and should not be reversed.
 
-  srl(  Rin_low,        Ralt_count,     Rxfer_bits ); // shift right by 31-count
+  srl(Rin_low, Ralt_count, Rxfer_bits); // shift right by 31-count
   if (Rcount != Rout_low) {
-    sll(        Rin_low,        Rcount,         Rout_low   ); // low half
+    sll(Rin_low, Rcount, Rout_low); // low half
   }
-  sll(  Rin_high,       Rcount,         Rout_high  );
+  sll(Rin_high, Rcount, Rout_high);
   if (Rcount == Rout_low) {
-    sll(        Rin_low,        Rcount,         Rout_low   ); // low half
+    sll(Rin_low, Rcount, Rout_low); // low half
   }
-  srl(  Rxfer_bits,     1,              Rxfer_bits ); // shift right by one more
-  ba (false, done);
-  delayed()->
-  or3(  Rout_high,      Rxfer_bits,     Rout_high);   // new hi value: or in shifted old hi part and xfer from low
+  srl(Rxfer_bits, 1, Rxfer_bits ); // shift right by one more
+  ba(done);
+  delayed()->or3(Rout_high, Rxfer_bits, Rout_high);   // new hi value: or in shifted old hi part and xfer from low
 
   // shift >= 32 bits, Ralt_count = Rcount-32
   bind(big_shift);
-  sll(  Rin_low,        Ralt_count,     Rout_high  );
-  clr(  Rout_low                                   );
+  sll(Rin_low, Ralt_count, Rout_high  );
+  clr(Rout_low);
 
   bind(done);
 }
@@ -2313,8 +2386,8 @@ void MacroAssembler::lshr( Register Rin_high,  Register Rin_low,
   // This code can be optimized to use the 64 bit shifts in V9.
   // Here we use the 32 bit shifts.
 
-  and3( Rcount,         0x3f,           Rcount);     // take least significant 6 bits
-  subcc(Rcount,         31,             Ralt_count);
+  and3( Rcount, 0x3f, Rcount);     // take least significant 6 bits
+  subcc(Rcount,   31, Ralt_count);
   br(greater, true, pn, big_shift);
   delayed()->dec(Ralt_count);
 
@@ -2325,29 +2398,28 @@ void MacroAssembler::lshr( Register Rin_high,  Register Rin_low,
   // more to take care of the special (rare) case where count is zero
   // (shifting by 32 would not work).
 
-  neg(  Ralt_count                                  );
+  neg(Ralt_count);
   if (Rcount != Rout_low) {
-    srl(        Rin_low,        Rcount,         Rout_low    );
+    srl(Rin_low, Rcount, Rout_low);
   }
 
   // The order of the next two instructions is critical in the case where
   // Rin and Rout are the same and should not be reversed.
 
-  sll(  Rin_high,       Ralt_count,     Rxfer_bits  ); // shift left by 31-count
-  sra(  Rin_high,       Rcount,         Rout_high   ); // high half
-  sll(  Rxfer_bits,     1,              Rxfer_bits  ); // shift left by one more
+  sll(Rin_high, Ralt_count, Rxfer_bits); // shift left by 31-count
+  sra(Rin_high,     Rcount, Rout_high ); // high half
+  sll(Rxfer_bits,        1, Rxfer_bits); // shift left by one more
   if (Rcount == Rout_low) {
-    srl(        Rin_low,        Rcount,         Rout_low    );
+    srl(Rin_low, Rcount, Rout_low);
   }
-  ba (false, done);
-  delayed()->
-  or3(  Rout_low,       Rxfer_bits,     Rout_low    ); // new low value: or shifted old low part and xfer from high
+  ba(done);
+  delayed()->or3(Rout_low, Rxfer_bits, Rout_low); // new low value: or shifted old low part and xfer from high
 
   // shift >= 32 bits, Ralt_count = Rcount-32
   bind(big_shift);
 
-  sra(  Rin_high,       Ralt_count,     Rout_low    );
-  sra(  Rin_high,       31,             Rout_high   ); // sign into hi
+  sra(Rin_high, Ralt_count, Rout_low);
+  sra(Rin_high,         31, Rout_high); // sign into hi
 
   bind( done );
 }
@@ -2377,8 +2449,8 @@ void MacroAssembler::lushr( Register Rin_high,  Register Rin_low,
   // This code can be optimized to use the 64 bit shifts in V9.
   // Here we use the 32 bit shifts.
 
-  and3( Rcount,         0x3f,           Rcount);     // take least significant 6 bits
-  subcc(Rcount,         31,             Ralt_count);
+  and3( Rcount, 0x3f, Rcount);     // take least significant 6 bits
+  subcc(Rcount,   31, Ralt_count);
   br(greater, true, pn, big_shift);
   delayed()->dec(Ralt_count);
 
@@ -2389,29 +2461,28 @@ void MacroAssembler::lushr( Register Rin_high,  Register Rin_low,
   // more to take care of the special (rare) case where count is zero
   // (shifting by 32 would not work).
 
-  neg(  Ralt_count                                  );
+  neg(Ralt_count);
   if (Rcount != Rout_low) {
-    srl(        Rin_low,        Rcount,         Rout_low    );
+    srl(Rin_low, Rcount, Rout_low);
   }
 
   // The order of the next two instructions is critical in the case where
   // Rin and Rout are the same and should not be reversed.
 
-  sll(  Rin_high,       Ralt_count,     Rxfer_bits  ); // shift left by 31-count
-  srl(  Rin_high,       Rcount,         Rout_high   ); // high half
-  sll(  Rxfer_bits,     1,              Rxfer_bits  ); // shift left by one more
+  sll(Rin_high, Ralt_count, Rxfer_bits); // shift left by 31-count
+  srl(Rin_high,     Rcount, Rout_high ); // high half
+  sll(Rxfer_bits,        1, Rxfer_bits); // shift left by one more
   if (Rcount == Rout_low) {
-    srl(        Rin_low,        Rcount,         Rout_low    );
+    srl(Rin_low, Rcount, Rout_low);
   }
-  ba (false, done);
-  delayed()->
-  or3(  Rout_low,       Rxfer_bits,     Rout_low    ); // new low value: or shifted old low part and xfer from high
+  ba(done);
+  delayed()->or3(Rout_low, Rxfer_bits, Rout_low); // new low value: or shifted old low part and xfer from high
 
   // shift >= 32 bits, Ralt_count = Rcount-32
   bind(big_shift);
 
-  srl(  Rin_high,       Ralt_count,     Rout_low    );
-  clr(  Rout_high                                   );
+  srl(Rin_high, Ralt_count, Rout_low);
+  clr(Rout_high);
 
   bind( done );
 }
@@ -2419,7 +2490,7 @@ void MacroAssembler::lushr( Register Rin_high,  Register Rin_low,
 #ifdef _LP64
 void MacroAssembler::lcmp( Register Ra, Register Rb, Register Rresult) {
   cmp(Ra, Rb);
-  mov(                       -1, Rresult);
+  mov(-1, Rresult);
   movcc(equal,   false, xcc,  0, Rresult);
   movcc(greater, false, xcc,  1, Rresult);
 }
@@ -2459,14 +2530,14 @@ void MacroAssembler::float_cmp( bool is_float, int unordered_result,
 
   if (VM_Version::v9_instructions_work()) {
 
-    mov(                   -1, Rresult );
-    movcc( eq, true, fcc0,  0, Rresult );
-    movcc( gt, true, fcc0,  1, Rresult );
+    mov(-1, Rresult);
+    movcc(eq, true, fcc0, 0, Rresult);
+    movcc(gt, true, fcc0, 1, Rresult);
 
   } else {
     Label done;
 
-                                         set( -1, Rresult );
+    set( -1, Rresult );
     //fb(lt, true, pn, done); delayed()->set( -1, Rresult );
     fb( eq, true, pn, done);  delayed()->set(  0, Rresult );
     fb( gt, true, pn, done);  delayed()->set(  1, Rresult );
@@ -2668,9 +2739,7 @@ void MacroAssembler::cas_under_lock(Register top_ptr_reg, Register top_reg, Regi
     set(StubRoutines::Sparc::locked, lock_reg);
 
     bind(retry_get_lock);
-    cmp(yield_reg, V8AtomicOperationUnderLockSpinCount);
-    br(Assembler::less, false, Assembler::pt, dont_yield);
-    delayed()->nop();
+    cmp_and_br_short(yield_reg, V8AtomicOperationUnderLockSpinCount, Assembler::less, Assembler::pt, dont_yield);
 
     if(use_call_vm) {
       Untested("Need to verify global reg consistancy");
@@ -2700,9 +2769,7 @@ void MacroAssembler::cas_under_lock(Register top_ptr_reg, Register top_reg, Regi
 
     // yes, got lock.  do we have the same top?
     ld(top_ptr_reg_after_save, 0, value_reg);
-    cmp(value_reg, top_reg_after_save);
-    br(Assembler::notEqual, false, Assembler::pn, not_same);
-    delayed()->nop();
+    cmp_and_br_short(value_reg, top_reg_after_save, Assembler::notEqual, Assembler::pn, not_same);
 
     // yes, same top.
     st(ptr_reg_after_save, top_ptr_reg_after_save, 0);
@@ -2952,8 +3019,7 @@ void MacroAssembler::check_klass_subtype(Register sub_klass,
 
   // on success:
   restore();
-  ba(false, L_success);
-  delayed()->nop();
+  ba_short(L_success);
 
   // on failure:
   bind(L_pop_to_failure);
@@ -2969,8 +3035,7 @@ void MacroAssembler::check_klass_subtype_fast_path(Register sub_klass,
                                                    Label* L_success,
                                                    Label* L_failure,
                                                    Label* L_slow_path,
-                                        RegisterOrConstant super_check_offset,
-                                        Register instanceof_hack) {
+                                        RegisterOrConstant super_check_offset) {
   int sc_offset = (klassOopDesc::header_size() * HeapWordSize +
                    Klass::secondary_super_cache_offset_in_bytes());
   int sco_offset = (klassOopDesc::header_size() * HeapWordSize +
@@ -2993,29 +3058,10 @@ void MacroAssembler::check_klass_subtype_fast_path(Register sub_klass,
   if (L_success == NULL)   { L_success   = &L_fallthrough; label_nulls++; }
   if (L_failure == NULL)   { L_failure   = &L_fallthrough; label_nulls++; }
   if (L_slow_path == NULL) { L_slow_path = &L_fallthrough; label_nulls++; }
-  assert(label_nulls <= 1 || instanceof_hack != noreg ||
+  assert(label_nulls <= 1 ||
          (L_slow_path == &L_fallthrough && label_nulls <= 2 && !need_slow_path),
          "at most one NULL in the batch, usually");
 
-  // Support for the instanceof hack, which uses delay slots to
-  // set a destination register to zero or one.
-  bool do_bool_sets = (instanceof_hack != noreg);
-#define BOOL_SET(bool_value)                            \
-  if (do_bool_sets && bool_value >= 0)                  \
-    set(bool_value, instanceof_hack)
-#define DELAYED_BOOL_SET(bool_value)                    \
-  if (do_bool_sets && bool_value >= 0)                  \
-    delayed()->set(bool_value, instanceof_hack);        \
-  else delayed()->nop()
-  // Hacked ba(), which may only be used just before L_fallthrough.
-#define FINAL_JUMP(label, bool_value)                   \
-  if (&(label) == &L_fallthrough) {                     \
-    BOOL_SET(bool_value);                               \
-  } else {                                              \
-    ba((do_bool_sets && bool_value >= 0), label);       \
-    DELAYED_BOOL_SET(bool_value);                       \
-  }
-
   // If the pointers are equal, we are done (e.g., String[] elements).
   // This self-check enables sharing of secondary supertype arrays among
   // non-primary types such as array-of-interface.  Otherwise, each such
@@ -3024,8 +3070,8 @@ void MacroAssembler::check_klass_subtype_fast_path(Register sub_klass,
   // type checks are in fact trivially successful in this manner,
   // so we get a nicely predicted branch right at the start of the check.
   cmp(super_klass, sub_klass);
-  brx(Assembler::equal, do_bool_sets, Assembler::pn, *L_success);
-  DELAYED_BOOL_SET(1);
+  brx(Assembler::equal, false, Assembler::pn, *L_success);
+  delayed()->nop();
 
   // Check the supertype display:
   if (must_load_sco) {
@@ -3049,50 +3095,49 @@ void MacroAssembler::check_klass_subtype_fast_path(Register sub_klass,
   // So if it was a primary super, we can just fail immediately.
   // Otherwise, it's the slow path for us (no success at this point).
 
+  // Hacked ba(), which may only be used just before L_fallthrough.
+#define FINAL_JUMP(label)            \
+  if (&(label) != &L_fallthrough) {  \
+    ba(label);  delayed()->nop();    \
+  }
+
   if (super_check_offset.is_register()) {
-    brx(Assembler::equal, do_bool_sets, Assembler::pn, *L_success);
-    delayed(); if (do_bool_sets)  BOOL_SET(1);
-    // if !do_bool_sets, sneak the next cmp into the delay slot:
-    cmp(super_check_offset.as_register(), sc_offset);
+    brx(Assembler::equal, false, Assembler::pn, *L_success);
+    delayed()->cmp(super_check_offset.as_register(), sc_offset);
 
     if (L_failure == &L_fallthrough) {
-      brx(Assembler::equal, do_bool_sets, Assembler::pt, *L_slow_path);
+      brx(Assembler::equal, false, Assembler::pt, *L_slow_path);
       delayed()->nop();
-      BOOL_SET(0);  // fallthrough on failure
     } else {
-      brx(Assembler::notEqual, do_bool_sets, Assembler::pn, *L_failure);
-      DELAYED_BOOL_SET(0);
-      FINAL_JUMP(*L_slow_path, -1);  // -1 => vanilla delay slot
+      brx(Assembler::notEqual, false, Assembler::pn, *L_failure);
+      delayed()->nop();
+      FINAL_JUMP(*L_slow_path);
     }
   } else if (super_check_offset.as_constant() == sc_offset) {
     // Need a slow path; fast failure is impossible.
     if (L_slow_path == &L_fallthrough) {
-      brx(Assembler::equal, do_bool_sets, Assembler::pt, *L_success);
-      DELAYED_BOOL_SET(1);
+      brx(Assembler::equal, false, Assembler::pt, *L_success);
+      delayed()->nop();
     } else {
       brx(Assembler::notEqual, false, Assembler::pn, *L_slow_path);
       delayed()->nop();
-      FINAL_JUMP(*L_success, 1);
+      FINAL_JUMP(*L_success);
     }
   } else {
     // No slow path; it's a fast decision.
     if (L_failure == &L_fallthrough) {
-      brx(Assembler::equal, do_bool_sets, Assembler::pt, *L_success);
-      DELAYED_BOOL_SET(1);
-      BOOL_SET(0);
+      brx(Assembler::equal, false, Assembler::pt, *L_success);
+      delayed()->nop();
     } else {
-      brx(Assembler::notEqual, do_bool_sets, Assembler::pn, *L_failure);
-      DELAYED_BOOL_SET(0);
-      FINAL_JUMP(*L_success, 1);
+      brx(Assembler::notEqual, false, Assembler::pn, *L_failure);
+      delayed()->nop();
+      FINAL_JUMP(*L_success);
     }
   }
 
   bind(L_fallthrough);
 
-#undef final_jump
-#undef bool_set
-#undef DELAYED_BOOL_SET
-#undef final_jump
+#undef FINAL_JUMP
 }
 
 
@@ -3185,7 +3230,7 @@ void MacroAssembler::check_klass_subtype_slow_path(Register sub_klass,
   st_ptr(super_klass, sub_klass, sc_offset);
 
   if (L_success != &L_fallthrough) {
-    ba(false, *L_success);
+    ba(*L_success);
     delayed()->nop();
   }
 
@@ -3200,9 +3245,7 @@ void MacroAssembler::check_method_handle_type(Register mtype_reg, Register mh_re
   // compare method type against that of the receiver
   RegisterOrConstant mhtype_offset = delayed_value(java_lang_invoke_MethodHandle::type_offset_in_bytes, temp_reg);
   load_heap_oop(mh_reg, mhtype_offset, temp_reg);
-  cmp(temp_reg, mtype_reg);
-  br(Assembler::notEqual, false, Assembler::pn, wrong_method_type);
-  delayed()->nop();
+  cmp_and_brx_short(temp_reg, mtype_reg, Assembler::notEqual, Assembler::pn, wrong_method_type);
 }
 
 
@@ -3214,15 +3257,10 @@ void MacroAssembler::load_method_handle_vmslots(Register vmslots_reg, Register m
                                                 Register temp_reg) {
   assert_different_registers(vmslots_reg, mh_reg, temp_reg);
   // load mh.type.form.vmslots
-  if (java_lang_invoke_MethodHandle::vmslots_offset_in_bytes() != 0) {
-    // hoist vmslots into every mh to avoid dependent load chain
-    ld(           Address(mh_reg,    delayed_value(java_lang_invoke_MethodHandle::vmslots_offset_in_bytes, temp_reg)),   vmslots_reg);
-  } else {
-    Register temp2_reg = vmslots_reg;
-    load_heap_oop(Address(mh_reg,    delayed_value(java_lang_invoke_MethodHandle::type_offset_in_bytes, temp_reg)),      temp2_reg);
-    load_heap_oop(Address(temp2_reg, delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes, temp_reg)),        temp2_reg);
-    ld(           Address(temp2_reg, delayed_value(java_lang_invoke_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
-  }
+  Register temp2_reg = vmslots_reg;
+  load_heap_oop(Address(mh_reg,    delayed_value(java_lang_invoke_MethodHandle::type_offset_in_bytes, temp_reg)),      temp2_reg);
+  load_heap_oop(Address(temp2_reg, delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes, temp_reg)),        temp2_reg);
+  ld(           Address(temp2_reg, delayed_value(java_lang_invoke_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
 }
 
 
@@ -3295,9 +3333,7 @@ void MacroAssembler::biased_locking_enter(Register obj_reg, Register mark_reg,
   // pointers to allow age to be placed into low bits
   assert(markOopDesc::age_shift == markOopDesc::lock_bits + markOopDesc::biased_lock_bits, "biased locking makes assumptions about bit layout");
   and3(mark_reg, markOopDesc::biased_lock_mask_in_place, temp_reg);
-  cmp(temp_reg, markOopDesc::biased_lock_pattern);
-  brx(Assembler::notEqual, false, Assembler::pn, cas_label);
-  delayed()->nop();
+  cmp_and_brx_short(temp_reg, markOopDesc::biased_lock_pattern, Assembler::notEqual, Assembler::pn, cas_label);
 
   load_klass(obj_reg, temp_reg);
   ld_ptr(Address(temp_reg, Klass::prototype_header_offset_in_bytes() + klassOopDesc::klass_part_offset_in_bytes()), temp_reg);
@@ -3364,8 +3400,7 @@ void MacroAssembler::biased_locking_enter(Register obj_reg, Register mark_reg,
     brx(Assembler::notEqual, true, Assembler::pn, *slow_case);
     delayed()->nop();
   }
-  br(Assembler::always, false, Assembler::pt, done);
-  delayed()->nop();
+  ba_short(done);
 
   bind(try_rebias);
   // At this point we know the epoch has expired, meaning that the
@@ -3393,8 +3428,7 @@ void MacroAssembler::biased_locking_enter(Register obj_reg, Register mark_reg,
     brx(Assembler::notEqual, true, Assembler::pn, *slow_case);
     delayed()->nop();
   }
-  br(Assembler::always, false, Assembler::pt, done);
-  delayed()->nop();
+  ba_short(done);
 
   bind(try_revoke_bias);
   // The prototype mark in the klass doesn't have the bias bit set any
@@ -3445,7 +3479,7 @@ void MacroAssembler::biased_locking_exit (Address mark_addr, Register temp_reg,
 // Solaris/SPARC's "as".  Another apt name would be cas_ptr()
 
 void MacroAssembler::casn (Register addr_reg, Register cmp_reg, Register set_reg ) {
-  casx_under_lock (addr_reg, cmp_reg, set_reg, (address)StubRoutines::Sparc::atomic_memory_operation_lock_addr()) ;
+  casx_under_lock (addr_reg, cmp_reg, set_reg, (address)StubRoutines::Sparc::atomic_memory_operation_lock_addr());
 }
 
 
@@ -3486,9 +3520,9 @@ void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark,
    }
 
    if (EmitSync & 1) {
-     mov    (3, Rscratch) ;
-     st_ptr (Rscratch, Rbox, BasicLock::displaced_header_offset_in_bytes());
-     cmp    (SP, G0) ;
+     mov(3, Rscratch);
+     st_ptr(Rscratch, Rbox, BasicLock::displaced_header_offset_in_bytes());
+     cmp(SP, G0);
      return ;
    }
 
@@ -3529,7 +3563,7 @@ void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark,
      assert(os::vm_page_size() > 0xfff, "page size too small - change the constant");
      andcc(Rscratch, 0xfffff003, Rscratch);
      st_ptr(Rscratch, Rbox, BasicLock::displaced_header_offset_in_bytes());
-     bind (done) ;
+     bind (done);
      return ;
    }
 
@@ -3538,7 +3572,7 @@ void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark,
    if (EmitSync & 256) {
       Label IsInflated ;
 
-      ld_ptr (mark_addr, Rmark);           // fetch obj->mark
+      ld_ptr(mark_addr, Rmark);           // fetch obj->mark
       // Triage: biased, stack-locked, neutral, inflated
       if (try_bias) {
         biased_locking_enter(Roop, Rmark, Rscratch, done, NULL, counters);
@@ -3549,49 +3583,49 @@ void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark,
       // Store mark into displaced mark field in the on-stack basic-lock "box"
       // Critically, this must happen before the CAS
       // Maximize the ST-CAS distance to minimize the ST-before-CAS penalty.
-      st_ptr (Rmark, Rbox, BasicLock::displaced_header_offset_in_bytes());
-      andcc  (Rmark, 2, G0) ;
-      brx    (Assembler::notZero, false, Assembler::pn, IsInflated) ;
-      delayed() ->
+      st_ptr(Rmark, Rbox, BasicLock::displaced_header_offset_in_bytes());
+      andcc(Rmark, 2, G0);
+      brx(Assembler::notZero, false, Assembler::pn, IsInflated);
+      delayed()->
 
       // Try stack-lock acquisition.
       // Beware: the 1st instruction is in a delay slot
-      mov    (Rbox,  Rscratch);
-      or3    (Rmark, markOopDesc::unlocked_value, Rmark);
-      assert (mark_addr.disp() == 0, "cas must take a zero displacement");
-      casn   (mark_addr.base(), Rmark, Rscratch) ;
-      cmp    (Rmark, Rscratch);
-      brx    (Assembler::equal, false, Assembler::pt, done);
+      mov(Rbox,  Rscratch);
+      or3(Rmark, markOopDesc::unlocked_value, Rmark);
+      assert(mark_addr.disp() == 0, "cas must take a zero displacement");
+      casn(mark_addr.base(), Rmark, Rscratch);
+      cmp(Rmark, Rscratch);
+      brx(Assembler::equal, false, Assembler::pt, done);
       delayed()->sub(Rscratch, SP, Rscratch);
 
       // Stack-lock attempt failed - check for recursive stack-lock.
       // See the comments below about how we might remove this case.
 #ifdef _LP64
-      sub    (Rscratch, STACK_BIAS, Rscratch);
+      sub(Rscratch, STACK_BIAS, Rscratch);
 #endif
       assert(os::vm_page_size() > 0xfff, "page size too small - change the constant");
-      andcc  (Rscratch, 0xfffff003, Rscratch);
-      br     (Assembler::always, false, Assembler::pt, done) ;
-      delayed()-> st_ptr (Rscratch, Rbox, BasicLock::displaced_header_offset_in_bytes());
+      andcc(Rscratch, 0xfffff003, Rscratch);
+      br(Assembler::always, false, Assembler::pt, done);
+      delayed()-> st_ptr(Rscratch, Rbox, BasicLock::displaced_header_offset_in_bytes());
 
-      bind   (IsInflated) ;
+      bind(IsInflated);
       if (EmitSync & 64) {
          // If m->owner != null goto IsLocked
          // Pessimistic form: Test-and-CAS vs CAS
          // The optimistic form avoids RTS->RTO cache line upgrades.
-         ld_ptr (Rmark, ObjectMonitor::owner_offset_in_bytes() - 2, Rscratch);
-         andcc  (Rscratch, Rscratch, G0) ;
-         brx    (Assembler::notZero, false, Assembler::pn, done) ;
-         delayed()->nop() ;
+         ld_ptr(Rmark, ObjectMonitor::owner_offset_in_bytes() - 2, Rscratch);
+         andcc(Rscratch, Rscratch, G0);
+         brx(Assembler::notZero, false, Assembler::pn, done);
+         delayed()->nop();
          // m->owner == null : it's unlocked.
       }
 
       // Try to CAS m->owner from null to Self
       // Invariant: if we acquire the lock then _recursions should be 0.
-      add    (Rmark, ObjectMonitor::owner_offset_in_bytes()-2, Rmark) ;
-      mov    (G2_thread, Rscratch) ;
-      casn   (Rmark, G0, Rscratch) ;
-      cmp    (Rscratch, G0) ;
+      add(Rmark, ObjectMonitor::owner_offset_in_bytes()-2, Rmark);
+      mov(G2_thread, Rscratch);
+      casn(Rmark, G0, Rscratch);
+      cmp(Rscratch, G0);
       // Intentional fall-through into done
    } else {
       // Aggressively avoid the Store-before-CAS penalty
@@ -3599,9 +3633,9 @@ void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark,
       Label IsInflated, Recursive ;
 
 // Anticipate CAS -- Avoid RTS->RTO upgrade
-// prefetch (mark_addr, Assembler::severalWritesAndPossiblyReads) ;
+// prefetch (mark_addr, Assembler::severalWritesAndPossiblyReads);
 
-      ld_ptr (mark_addr, Rmark);           // fetch obj->mark
+      ld_ptr(mark_addr, Rmark);           // fetch obj->mark
       // Triage: biased, stack-locked, neutral, inflated
 
       if (try_bias) {
@@ -3609,8 +3643,8 @@ void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark,
         // Invariant: if control reaches this point in the emitted stream
         // then Rmark has not been modified.
       }
-      andcc  (Rmark, 2, G0) ;
-      brx    (Assembler::notZero, false, Assembler::pn, IsInflated) ;
+      andcc(Rmark, 2, G0);
+      brx(Assembler::notZero, false, Assembler::pn, IsInflated);
       delayed()->                         // Beware - dangling delay-slot
 
       // Try stack-lock acquisition.
@@ -3620,23 +3654,21 @@ void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark,
       //   ST obj->mark = box    -- overwrite transient 0 value
       // This presumes TSO, of course.
 
-      mov    (0, Rscratch) ;
-      or3    (Rmark, markOopDesc::unlocked_value, Rmark);
-      assert (mark_addr.disp() == 0, "cas must take a zero displacement");
-      casn   (mark_addr.base(), Rmark, Rscratch) ;
-// prefetch (mark_addr, Assembler::severalWritesAndPossiblyReads) ;
-      cmp    (Rscratch, Rmark) ;
-      brx    (Assembler::notZero, false, Assembler::pn, Recursive) ;
-      delayed() ->
-        st_ptr (Rmark, Rbox, BasicLock::displaced_header_offset_in_bytes());
+      mov(0, Rscratch);
+      or3(Rmark, markOopDesc::unlocked_value, Rmark);
+      assert(mark_addr.disp() == 0, "cas must take a zero displacement");
+      casn(mark_addr.base(), Rmark, Rscratch);
+// prefetch (mark_addr, Assembler::severalWritesAndPossiblyReads);
+      cmp(Rscratch, Rmark);
+      brx(Assembler::notZero, false, Assembler::pn, Recursive);
+      delayed()->st_ptr(Rmark, Rbox, BasicLock::displaced_header_offset_in_bytes());
       if (counters != NULL) {
         cond_inc(Assembler::equal, (address) counters->fast_path_entry_count_addr(), Rmark, Rscratch);
       }
-      br     (Assembler::always, false, Assembler::pt, done);
-      delayed() ->
-        st_ptr (Rbox, mark_addr) ;
+      ba(done);
+      delayed()->st_ptr(Rbox, mark_addr);
 
-      bind   (Recursive) ;
+      bind(Recursive);
       // Stack-lock attempt failed - check for recursive stack-lock.
       // Tests show that we can remove the recursive case with no impact
       // on refworkload 0.83.  If we need to reduce the size of the code
@@ -3653,49 +3685,48 @@ void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark,
 
       // RScratch contains the fetched obj->mark value from the failed CASN.
 #ifdef _LP64
-      sub    (Rscratch, STACK_BIAS, Rscratch);
+      sub(Rscratch, STACK_BIAS, Rscratch);
 #endif
       sub(Rscratch, SP, Rscratch);
       assert(os::vm_page_size() > 0xfff, "page size too small - change the constant");
-      andcc  (Rscratch, 0xfffff003, Rscratch);
+      andcc(Rscratch, 0xfffff003, Rscratch);
       if (counters != NULL) {
         // Accounting needs the Rscratch register
-        st_ptr (Rscratch, Rbox, BasicLock::displaced_header_offset_in_bytes());
+        st_ptr(Rscratch, Rbox, BasicLock::displaced_header_offset_in_bytes());
         cond_inc(Assembler::equal, (address) counters->fast_path_entry_count_addr(), Rmark, Rscratch);
-        br     (Assembler::always, false, Assembler::pt, done) ;
-        delayed()->nop() ;
+        ba_short(done);
       } else {
-        br     (Assembler::always, false, Assembler::pt, done) ;
-        delayed()-> st_ptr (Rscratch, Rbox, BasicLock::displaced_header_offset_in_bytes());
+        ba(done);
+        delayed()->st_ptr(Rscratch, Rbox, BasicLock::displaced_header_offset_in_bytes());
       }
 
-      bind   (IsInflated) ;
+      bind   (IsInflated);
       if (EmitSync & 64) {
          // If m->owner != null goto IsLocked
          // Test-and-CAS vs CAS
          // Pessimistic form avoids futile (doomed) CAS attempts
          // The optimistic form avoids RTS->RTO cache line upgrades.
-         ld_ptr (Rmark, ObjectMonitor::owner_offset_in_bytes() - 2, Rscratch);
-         andcc  (Rscratch, Rscratch, G0) ;
-         brx    (Assembler::notZero, false, Assembler::pn, done) ;
-         delayed()->nop() ;
+         ld_ptr(Rmark, ObjectMonitor::owner_offset_in_bytes() - 2, Rscratch);
+         andcc(Rscratch, Rscratch, G0);
+         brx(Assembler::notZero, false, Assembler::pn, done);
+         delayed()->nop();
          // m->owner == null : it's unlocked.
       }
 
       // Try to CAS m->owner from null to Self
       // Invariant: if we acquire the lock then _recursions should be 0.
-      add    (Rmark, ObjectMonitor::owner_offset_in_bytes()-2, Rmark) ;
-      mov    (G2_thread, Rscratch) ;
-      casn   (Rmark, G0, Rscratch) ;
-      cmp    (Rscratch, G0) ;
+      add(Rmark, ObjectMonitor::owner_offset_in_bytes()-2, Rmark);
+      mov(G2_thread, Rscratch);
+      casn(Rmark, G0, Rscratch);
+      cmp(Rscratch, G0);
       // ST box->displaced_header = NonZero.
       // Any non-zero value suffices:
       //    unused_mark(), G2_thread, RBox, RScratch, rsp, etc.
-      st_ptr (Rbox, Rbox, BasicLock::displaced_header_offset_in_bytes());
+      st_ptr(Rbox, Rbox, BasicLock::displaced_header_offset_in_bytes());
       // Intentional fall-through into done
    }
 
-   bind   (done) ;
+   bind   (done);
 }
 
 void MacroAssembler::compiler_unlock_object(Register Roop, Register Rmark,
@@ -3706,7 +3737,7 @@ void MacroAssembler::compiler_unlock_object(Register Roop, Register Rmark,
    Label done ;
 
    if (EmitSync & 4) {
-     cmp  (SP, G0) ;
+     cmp(SP, G0);
      return ;
    }
 
@@ -3717,18 +3748,16 @@ void MacroAssembler::compiler_unlock_object(Register Roop, Register Rmark,
 
      // Test first if it is a fast recursive unlock
      ld_ptr(Rbox, BasicLock::displaced_header_offset_in_bytes(), Rmark);
-     cmp(Rmark, G0);
-     brx(Assembler::equal, false, Assembler::pt, done);
-     delayed()->nop();
+     br_null_short(Rmark, Assembler::pt, done);
 
      // Check if it is still a light weight lock, this is is true if we see
      // the stack address of the basicLock in the markOop of the object
      assert(mark_addr.disp() == 0, "cas must take a zero displacement");
      casx_under_lock(mark_addr.base(), Rbox, Rmark,
        (address)StubRoutines::Sparc::atomic_memory_operation_lock_addr());
-     br (Assembler::always, false, Assembler::pt, done);
+     ba(done);
      delayed()->cmp(Rbox, Rmark);
-     bind (done) ;
+     bind(done);
      return ;
    }
 
@@ -3743,14 +3772,14 @@ void MacroAssembler::compiler_unlock_object(Register Roop, Register Rmark,
       biased_locking_exit(mark_addr, Rscratch, done);
    }
 
-   ld_ptr (Roop, oopDesc::mark_offset_in_bytes(), Rmark) ;
-   ld_ptr (Rbox, BasicLock::displaced_header_offset_in_bytes(), Rscratch);
-   andcc  (Rscratch, Rscratch, G0);
-   brx    (Assembler::zero, false, Assembler::pn, done);
-   delayed()-> nop() ;      // consider: relocate fetch of mark, above, into this DS
-   andcc  (Rmark, 2, G0) ;
-   brx    (Assembler::zero, false, Assembler::pt, LStacked) ;
-   delayed()-> nop() ;
+   ld_ptr(Roop, oopDesc::mark_offset_in_bytes(), Rmark);
+   ld_ptr(Rbox, BasicLock::displaced_header_offset_in_bytes(), Rscratch);
+   andcc(Rscratch, Rscratch, G0);
+   brx(Assembler::zero, false, Assembler::pn, done);
+   delayed()->nop();      // consider: relocate fetch of mark, above, into this DS
+   andcc(Rmark, 2, G0);
+   brx(Assembler::zero, false, Assembler::pt, LStacked);
+   delayed()->nop();
 
    // It's inflated
    // Conceptually we need a #loadstore|#storestore "release" MEMBAR before
@@ -3761,48 +3790,45 @@ void MacroAssembler::compiler_unlock_object(Register Roop, Register Rmark,
    // Note that we use 1-0 locking by default for the inflated case.  We
    // close the resultant (and rare) race by having contented threads in
    // monitorenter periodically poll _owner.
-   ld_ptr (Rmark, ObjectMonitor::owner_offset_in_bytes() - 2, Rscratch);
-   ld_ptr (Rmark, ObjectMonitor::recursions_offset_in_bytes() - 2, Rbox);
-   xor3   (Rscratch, G2_thread, Rscratch) ;
-   orcc   (Rbox, Rscratch, Rbox) ;
-   brx    (Assembler::notZero, false, Assembler::pn, done) ;
+   ld_ptr(Rmark, ObjectMonitor::owner_offset_in_bytes() - 2, Rscratch);
+   ld_ptr(Rmark, ObjectMonitor::recursions_offset_in_bytes() - 2, Rbox);
+   xor3(Rscratch, G2_thread, Rscratch);
+   orcc(Rbox, Rscratch, Rbox);
+   brx(Assembler::notZero, false, Assembler::pn, done);
    delayed()->
-   ld_ptr (Rmark, ObjectMonitor::EntryList_offset_in_bytes() - 2, Rscratch);
-   ld_ptr (Rmark, ObjectMonitor::cxq_offset_in_bytes() - 2, Rbox);
-   orcc   (Rbox, Rscratch, G0) ;
+   ld_ptr(Rmark, ObjectMonitor::EntryList_offset_in_bytes() - 2, Rscratch);
+   ld_ptr(Rmark, ObjectMonitor::cxq_offset_in_bytes() - 2, Rbox);
+   orcc(Rbox, Rscratch, G0);
    if (EmitSync & 65536) {
       Label LSucc ;
-      brx    (Assembler::notZero, false, Assembler::pn, LSucc) ;
-      delayed()->nop() ;
-      br     (Assembler::always, false, Assembler::pt, done) ;
-      delayed()->
-      st_ptr (G0, Rmark, ObjectMonitor::owner_offset_in_bytes() - 2);
-
-      bind   (LSucc) ;
-      st_ptr (G0, Rmark, ObjectMonitor::owner_offset_in_bytes() - 2);
-      if (os::is_MP()) { membar (StoreLoad) ; }
-      ld_ptr (Rmark, ObjectMonitor::succ_offset_in_bytes() - 2, Rscratch);
-      andcc  (Rscratch, Rscratch, G0) ;
-      brx    (Assembler::notZero, false, Assembler::pt, done) ;
-      delayed()-> andcc (G0, G0, G0) ;
-      add    (Rmark, ObjectMonitor::owner_offset_in_bytes()-2, Rmark) ;
-      mov    (G2_thread, Rscratch) ;
-      casn   (Rmark, G0, Rscratch) ;
-      cmp    (Rscratch, G0) ;
+      brx(Assembler::notZero, false, Assembler::pn, LSucc);
+      delayed()->nop();
+      ba(done);
+      delayed()->st_ptr(G0, Rmark, ObjectMonitor::owner_offset_in_bytes() - 2);
+
+      bind(LSucc);
+      st_ptr(G0, Rmark, ObjectMonitor::owner_offset_in_bytes() - 2);
+      if (os::is_MP()) { membar (StoreLoad); }
+      ld_ptr(Rmark, ObjectMonitor::succ_offset_in_bytes() - 2, Rscratch);
+      andcc(Rscratch, Rscratch, G0);
+      brx(Assembler::notZero, false, Assembler::pt, done);
+      delayed()->andcc(G0, G0, G0);
+      add(Rmark, ObjectMonitor::owner_offset_in_bytes()-2, Rmark);
+      mov(G2_thread, Rscratch);
+      casn(Rmark, G0, Rscratch);
       // invert icc.zf and goto done
-      brx    (Assembler::notZero, false, Assembler::pt, done) ;
-      delayed() -> cmp (G0, G0) ;
-      br     (Assembler::always, false, Assembler::pt, done);
-      delayed() -> cmp (G0, 1) ;
+      br_notnull(Rscratch, false, Assembler::pt, done);
+      delayed()->cmp(G0, G0);
+      ba(done);
+      delayed()->cmp(G0, 1);
    } else {
-      brx    (Assembler::notZero, false, Assembler::pn, done) ;
-      delayed()->nop() ;
-      br     (Assembler::always, false, Assembler::pt, done) ;
-      delayed()->
-      st_ptr (G0, Rmark, ObjectMonitor::owner_offset_in_bytes() - 2);
+      brx(Assembler::notZero, false, Assembler::pn, done);
+      delayed()->nop();
+      ba(done);
+      delayed()->st_ptr(G0, Rmark, ObjectMonitor::owner_offset_in_bytes() - 2);
    }
 
-   bind   (LStacked) ;
+   bind   (LStacked);
    // Consider: we could replace the expensive CAS in the exit
    // path with a simple ST of the displaced mark value fetched from
    // the on-stack basiclock box.  That admits a race where a thread T2
@@ -3831,11 +3857,11 @@ void MacroAssembler::compiler_unlock_object(Register Roop, Register Rmark,
    // A prototype implementation showed excellent results, although
    // the scavenger and timeout code was rather involved.
 
-   casn   (mark_addr.base(), Rbox, Rscratch) ;
-   cmp    (Rbox, Rscratch);
+   casn(mark_addr.base(), Rbox, Rscratch);
+   cmp(Rbox, Rscratch);
    // Intentional fall through into done ...
 
-   bind   (done) ;
+   bind(done);
 }
 
 
@@ -3891,9 +3917,7 @@ void MacroAssembler::verify_tlab() {
     ld_ptr(G2_thread, in_bytes(JavaThread::tlab_top_offset()), t1);
     ld_ptr(G2_thread, in_bytes(JavaThread::tlab_start_offset()), t2);
     or3(t1, t2, t3);
-    cmp(t1, t2);
-    br(Assembler::greaterEqual, false, Assembler::pn, next);
-    delayed()->nop();
+    cmp_and_br_short(t1, t2, Assembler::greaterEqual, Assembler::pn, next);
     stop("assert(top >= start)");
     should_not_reach_here();
 
@@ -3901,17 +3925,13 @@ void MacroAssembler::verify_tlab() {
     ld_ptr(G2_thread, in_bytes(JavaThread::tlab_top_offset()), t1);
     ld_ptr(G2_thread, in_bytes(JavaThread::tlab_end_offset()), t2);
     or3(t3, t2, t3);
-    cmp(t1, t2);
-    br(Assembler::lessEqual, false, Assembler::pn, next2);
-    delayed()->nop();
+    cmp_and_br_short(t1, t2, Assembler::lessEqual, Assembler::pn, next2);
     stop("assert(top <= end)");
     should_not_reach_here();
 
     bind(next2);
     and3(t3, MinObjAlignmentInBytesMask, t3);
-    cmp(t3, 0);
-    br(Assembler::lessEqual, false, Assembler::pn, ok);
-    delayed()->nop();
+    cmp_and_br_short(t3, 0, Assembler::lessEqual, Assembler::pn, ok);
     stop("assert(aligned)");
     should_not_reach_here();
 
@@ -3937,8 +3957,7 @@ void MacroAssembler::eden_allocate(
 
   if (CMSIncrementalMode || !Universe::heap()->supports_inline_contig_alloc()) {
     // No allocation in the shared eden.
-    br(Assembler::always, false, Assembler::pt, slow_case);
-    delayed()->nop();
+    ba_short(slow_case);
   } else {
     // get eden boundaries
     // note: we need both top & top_addr!
@@ -4072,8 +4091,7 @@ void MacroAssembler::tlab_refill(Label& retry, Label& try_eden, Label& slow_case
 
   if (CMSIncrementalMode || !Universe::heap()->supports_inline_contig_alloc()) {
     // No allocation in the shared eden.
-    br(Assembler::always, false, Assembler::pt, slow_case);
-    delayed()->nop();
+    ba_short(slow_case);
   }
 
   ld_ptr(G2_thread, in_bytes(JavaThread::tlab_top_offset()), top);
@@ -4098,8 +4116,7 @@ void MacroAssembler::tlab_refill(Label& retry, Label& try_eden, Label& slow_case
     add(t2, 1, t2);
     stw(t2, G2_thread, in_bytes(JavaThread::tlab_slow_allocations_offset()));
   }
-  br(Assembler::always, false, Assembler::pt, try_eden);
-  delayed()->nop();
+  ba_short(try_eden);
 
   bind(discard_tlab);
   if (TLABStats) {
@@ -4115,8 +4132,7 @@ void MacroAssembler::tlab_refill(Label& retry, Label& try_eden, Label& slow_case
 
   // if tlab is currently allocated (top or end != null) then
   // fill [top, end + alignment_reserve) with array object
-  br_null(top, false, Assembler::pn, do_refill);
-  delayed()->nop();
+  br_null_short(top, Assembler::pn, do_refill);
 
   set((intptr_t)markOopDesc::prototype()->copy_set_hash(0x2), t2);
   st_ptr(t2, top, oopDesc::mark_offset_in_bytes()); // set up the mark word
@@ -4151,9 +4167,7 @@ void MacroAssembler::tlab_refill(Label& retry, Label& try_eden, Label& slow_case
     Label ok;
     ld_ptr(G2_thread, in_bytes(JavaThread::tlab_size_offset()), t2);
     sll_ptr(t2, LogHeapWordSize, t2);
-    cmp(t1, t2);
-    br(Assembler::equal, false, Assembler::pt, ok);
-    delayed()->nop();
+    cmp_and_br_short(t1, t2, Assembler::equal, Assembler::pt, ok);
     stop("assert(t1 == tlab_size)");
     should_not_reach_here();
 
@@ -4164,8 +4178,7 @@ void MacroAssembler::tlab_refill(Label& retry, Label& try_eden, Label& slow_case
   sub(top, ThreadLocalAllocBuffer::alignment_reserve_in_bytes(), top);
   st_ptr(top, G2_thread, in_bytes(JavaThread::tlab_end_offset()));
   verify_tlab();
-  br(Assembler::always, false, Assembler::pt, retry);
-  delayed()->nop();
+  ba_short(retry);
 }
 
 void MacroAssembler::incr_allocated_bytes(RegisterOrConstant size_in_bytes,
@@ -4290,77 +4303,89 @@ static void generate_satb_log_enqueue(bool with_frame) {
   BufferBlob* bb = BufferBlob::create("enqueue_with_frame", EnqueueCodeSize);
   CodeBuffer buf(bb);
   MacroAssembler masm(&buf);
-  address start = masm.pc();
+
+#define __ masm.
+
+  address start = __ pc();
   Register pre_val;
 
   Label refill, restart;
   if (with_frame) {
-    masm.save_frame(0);
+    __ save_frame(0);
     pre_val = I0;  // Was O0 before the save.
   } else {
     pre_val = O0;
   }
+
   int satb_q_index_byte_offset =
     in_bytes(JavaThread::satb_mark_queue_offset() +
              PtrQueue::byte_offset_of_index());
+
   int satb_q_buf_byte_offset =
     in_bytes(JavaThread::satb_mark_queue_offset() +
              PtrQueue::byte_offset_of_buf());
+
   assert(in_bytes(PtrQueue::byte_width_of_index()) == sizeof(intptr_t) &&
          in_bytes(PtrQueue::byte_width_of_buf()) == sizeof(intptr_t),
          "check sizes in assembly below");
 
-  masm.bind(restart);
-  masm.ld_ptr(G2_thread, satb_q_index_byte_offset, L0);
+  __ bind(restart);
+
+  // Load the index into the SATB buffer. PtrQueue::_index is a size_t
+  // so ld_ptr is appropriate.
+  __ ld_ptr(G2_thread, satb_q_index_byte_offset, L0);
 
-  masm.br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pn, L0, refill);
-  // If the branch is taken, no harm in executing this in the delay slot.
-  masm.delayed()->ld_ptr(G2_thread, satb_q_buf_byte_offset, L1);
-  masm.sub(L0, oopSize, L0);
+  // index == 0?
+  __ cmp_and_brx_short(L0, G0, Assembler::equal, Assembler::pn, refill);
 
-  masm.st_ptr(pre_val, L1, L0);  // [_buf + index] := I0
+  __ ld_ptr(G2_thread, satb_q_buf_byte_offset, L1);
+  __ sub(L0, oopSize, L0);
+
+  __ st_ptr(pre_val, L1, L0);  // [_buf + index] := I0
   if (!with_frame) {
     // Use return-from-leaf
-    masm.retl();
-    masm.delayed()->st_ptr(L0, G2_thread, satb_q_index_byte_offset);
+    __ retl();
+    __ delayed()->st_ptr(L0, G2_thread, satb_q_index_byte_offset);
   } else {
     // Not delayed.
-    masm.st_ptr(L0, G2_thread, satb_q_index_byte_offset);
+    __ st_ptr(L0, G2_thread, satb_q_index_byte_offset);
   }
   if (with_frame) {
-    masm.ret();
-    masm.delayed()->restore();
+    __ ret();
+    __ delayed()->restore();
   }
-  masm.bind(refill);
+  __ bind(refill);
 
   address handle_zero =
     CAST_FROM_FN_PTR(address,
                      &SATBMarkQueueSet::handle_zero_index_for_thread);
   // This should be rare enough that we can afford to save all the
   // scratch registers that the calling context might be using.
-  masm.mov(G1_scratch, L0);
-  masm.mov(G3_scratch, L1);
-  masm.mov(G4, L2);
+  __ mov(G1_scratch, L0);
+  __ mov(G3_scratch, L1);
+  __ mov(G4, L2);
   // We need the value of O0 above (for the write into the buffer), so we
   // save and restore it.
-  masm.mov(O0, L3);
+  __ mov(O0, L3);
   // Since the call will overwrite O7, we save and restore that, as well.
-  masm.mov(O7, L4);
-  masm.call_VM_leaf(L5, handle_zero, G2_thread);
-  masm.mov(L0, G1_scratch);
-  masm.mov(L1, G3_scratch);
-  masm.mov(L2, G4);
-  masm.mov(L3, O0);
-  masm.br(Assembler::always, /*annul*/false, Assembler::pt, restart);
-  masm.delayed()->mov(L4, O7);
+  __ mov(O7, L4);
+  __ call_VM_leaf(L5, handle_zero, G2_thread);
+  __ mov(L0, G1_scratch);
+  __ mov(L1, G3_scratch);
+  __ mov(L2, G4);
+  __ mov(L3, O0);
+  __ br(Assembler::always, /*annul*/false, Assembler::pt, restart);
+  __ delayed()->mov(L4, O7);
 
   if (with_frame) {
     satb_log_enqueue_with_frame = start;
-    satb_log_enqueue_with_frame_end = masm.pc();
+    satb_log_enqueue_with_frame_end = __ pc();
   } else {
     satb_log_enqueue_frameless = start;
-    satb_log_enqueue_frameless_end = masm.pc();
+    satb_log_enqueue_frameless_end = __ pc();
   }
+
+#undef __
 }
 
 static inline void generate_satb_log_enqueue_if_necessary(bool with_frame) {
@@ -4424,9 +4449,8 @@ void MacroAssembler::g1_write_barrier_pre(Register obj,
          tmp);
   }
 
-  // Check on whether to annul.
-  br_on_reg_cond(rc_z, /*annul*/false, Assembler::pt, tmp, filtered);
-  delayed() -> nop();
+  // Is marking active?
+  cmp_and_br_short(tmp, G0, Assembler::equal, Assembler::pt, filtered);
 
   // Do we need to load the previous value?
   if (obj != noreg) {
@@ -4448,9 +4472,7 @@ void MacroAssembler::g1_write_barrier_pre(Register obj,
   assert(pre_val != noreg, "must have a real register");
 
   // Is the previous value null?
-  // Check on whether to annul.
-  br_on_reg_cond(rc_z, /*annul*/false, Assembler::pt, pre_val, filtered);
-  delayed() -> nop();
+  cmp_and_brx_short(pre_val, G0, Assembler::equal, Assembler::pt, filtered);
 
   // OK, it's not filtered, so we'll need to call enqueue.  In the normal
   // case, pre_val will be a scratch G-reg, but there are some cases in
@@ -4477,39 +4499,6 @@ void MacroAssembler::g1_write_barrier_pre(Register obj,
   bind(filtered);
 }
 
-static jint num_ct_writes = 0;
-static jint num_ct_writes_filtered_in_hr = 0;
-static jint num_ct_writes_filtered_null = 0;
-static G1CollectedHeap* g1 = NULL;
-
-static Thread* count_ct_writes(void* filter_val, void* new_val) {
-  Atomic::inc(&num_ct_writes);
-  if (filter_val == NULL) {
-    Atomic::inc(&num_ct_writes_filtered_in_hr);
-  } else if (new_val == NULL) {
-    Atomic::inc(&num_ct_writes_filtered_null);
-  } else {
-    if (g1 == NULL) {
-      g1 = G1CollectedHeap::heap();
-    }
-  }
-  if ((num_ct_writes % 1000000) == 0) {
-    jint num_ct_writes_filtered =
-      num_ct_writes_filtered_in_hr +
-      num_ct_writes_filtered_null;
-
-    tty->print_cr("%d potential CT writes: %5.2f%% filtered\n"
-                  "   (%5.2f%% intra-HR, %5.2f%% null).",
-                  num_ct_writes,
-                  100.0*(float)num_ct_writes_filtered/(float)num_ct_writes,
-                  100.0*(float)num_ct_writes_filtered_in_hr/
-                  (float)num_ct_writes,
-                  100.0*(float)num_ct_writes_filtered_null/
-                  (float)num_ct_writes);
-  }
-  return Thread::current();
-}
-
 static address dirty_card_log_enqueue = 0;
 static u_char* dirty_card_log_enqueue_end = 0;
 
@@ -4518,79 +4507,88 @@ static void generate_dirty_card_log_enqueue(jbyte* byte_map_base) {
   BufferBlob* bb = BufferBlob::create("dirty_card_enqueue", EnqueueCodeSize*2);
   CodeBuffer buf(bb);
   MacroAssembler masm(&buf);
-  address start = masm.pc();
+#define __ masm.
+  address start = __ pc();
 
   Label not_already_dirty, restart, refill;
 
 #ifdef _LP64
-  masm.srlx(O0, CardTableModRefBS::card_shift, O0);
+  __ srlx(O0, CardTableModRefBS::card_shift, O0);
 #else
-  masm.srl(O0, CardTableModRefBS::card_shift, O0);
+  __ srl(O0, CardTableModRefBS::card_shift, O0);
 #endif
   AddressLiteral addrlit(byte_map_base);
-  masm.set(addrlit, O1); // O1 := <card table base>
-  masm.ldub(O0, O1, O2); // O2 := [O0 + O1]
+  __ set(addrlit, O1); // O1 := <card table base>
+  __ ldub(O0, O1, O2); // O2 := [O0 + O1]
 
-  masm.br_on_reg_cond(Assembler::rc_nz, /*annul*/false, Assembler::pt,
-                      O2, not_already_dirty);
-  // Get O1 + O2 into a reg by itself -- useful in the take-the-branch
-  // case, harmless if not.
-  masm.delayed()->add(O0, O1, O3);
+  assert(CardTableModRefBS::dirty_card_val() == 0, "otherwise check this code");
+  __ cmp_and_br_short(O2, G0, Assembler::notEqual, Assembler::pt, not_already_dirty);
 
   // We didn't take the branch, so we're already dirty: return.
   // Use return-from-leaf
-  masm.retl();
-  masm.delayed()->nop();
+  __ retl();
+  __ delayed()->nop();
 
   // Not dirty.
-  masm.bind(not_already_dirty);
+  __ bind(not_already_dirty);
+
+  // Get O0 + O1 into a reg by itself
+  __ add(O0, O1, O3);
+
   // First, dirty it.
-  masm.stb(G0, O3, G0);  // [cardPtr] := 0  (i.e., dirty).
+  __ stb(G0, O3, G0);  // [cardPtr] := 0  (i.e., dirty).
+
   int dirty_card_q_index_byte_offset =
     in_bytes(JavaThread::dirty_card_queue_offset() +
              PtrQueue::byte_offset_of_index());
   int dirty_card_q_buf_byte_offset =
     in_bytes(JavaThread::dirty_card_queue_offset() +
              PtrQueue::byte_offset_of_buf());
-  masm.bind(restart);
-  masm.ld_ptr(G2_thread, dirty_card_q_index_byte_offset, L0);
+  __ bind(restart);
+
+  // Load the index into the update buffer. PtrQueue::_index is
+  // a size_t so ld_ptr is appropriate here.
+  __ ld_ptr(G2_thread, dirty_card_q_index_byte_offset, L0);
 
-  masm.br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pn,
-                      L0, refill);
-  // If the branch is taken, no harm in executing this in the delay slot.
-  masm.delayed()->ld_ptr(G2_thread, dirty_card_q_buf_byte_offset, L1);
-  masm.sub(L0, oopSize, L0);
+  // index == 0?
+  __ cmp_and_brx_short(L0, G0, Assembler::equal, Assembler::pn, refill);
 
-  masm.st_ptr(O3, L1, L0);  // [_buf + index] := I0
+  __ ld_ptr(G2_thread, dirty_card_q_buf_byte_offset, L1);
+  __ sub(L0, oopSize, L0);
+
+  __ st_ptr(O3, L1, L0);  // [_buf + index] := I0
   // Use return-from-leaf
-  masm.retl();
-  masm.delayed()->st_ptr(L0, G2_thread, dirty_card_q_index_byte_offset);
+  __ retl();
+  __ delayed()->st_ptr(L0, G2_thread, dirty_card_q_index_byte_offset);
 
-  masm.bind(refill);
+  __ bind(refill);
   address handle_zero =
     CAST_FROM_FN_PTR(address,
                      &DirtyCardQueueSet::handle_zero_index_for_thread);
   // This should be rare enough that we can afford to save all the
   // scratch registers that the calling context might be using.
-  masm.mov(G1_scratch, L3);
-  masm.mov(G3_scratch, L5);
+  __ mov(G1_scratch, L3);
+  __ mov(G3_scratch, L5);
   // We need the value of O3 above (for the write into the buffer), so we
   // save and restore it.
-  masm.mov(O3, L6);
+  __ mov(O3, L6);
   // Since the call will overwrite O7, we save and restore that, as well.
-  masm.mov(O7, L4);
+  __ mov(O7, L4);
 
-  masm.call_VM_leaf(L7_thread_cache, handle_zero, G2_thread);
-  masm.mov(L3, G1_scratch);
-  masm.mov(L5, G3_scratch);
-  masm.mov(L6, O3);
-  masm.br(Assembler::always, /*annul*/false, Assembler::pt, restart);
-  masm.delayed()->mov(L4, O7);
+  __ call_VM_leaf(L7_thread_cache, handle_zero, G2_thread);
+  __ mov(L3, G1_scratch);
+  __ mov(L5, G3_scratch);
+  __ mov(L6, O3);
+  __ br(Assembler::always, /*annul*/false, Assembler::pt, restart);
+  __ delayed()->mov(L4, O7);
 
   dirty_card_log_enqueue = start;
-  dirty_card_log_enqueue_end = masm.pc();
+  dirty_card_log_enqueue_end = __ pc();
   // XXX Should have a guarantee here about not going off the end!
   // Does it already do so?  Do an experiment...
+
+#undef __
+
 }
 
 static inline void
@@ -4618,6 +4616,7 @@ void MacroAssembler::g1_write_barrier_post(Register store_addr, Register new_val
   G1SATBCardTableModRefBS* bs = (G1SATBCardTableModRefBS*) Universe::heap()->barrier_set();
   assert(bs->kind() == BarrierSet::G1SATBCT ||
          bs->kind() == BarrierSet::G1SATBCTLogging, "wrong barrier");
+
   if (G1RSBarrierRegionFilter) {
     xor3(store_addr, new_val, tmp);
 #ifdef _LP64
@@ -4626,33 +4625,8 @@ void MacroAssembler::g1_write_barrier_post(Register store_addr, Register new_val
     srl(tmp, HeapRegion::LogOfHRGrainBytes, tmp);
 #endif
 
-    if (G1PrintCTFilterStats) {
-      guarantee(tmp->is_global(), "Or stats won't work...");
-      // This is a sleazy hack: I'm temporarily hijacking G2, which I
-      // promise to restore.
-      mov(new_val, G2);
-      save_frame(0);
-      mov(tmp, O0);
-      mov(G2, O1);
-      // Save G-regs that target may use.
-      mov(G1, L1);
-      mov(G2, L2);
-      mov(G3, L3);
-      mov(G4, L4);
-      mov(G5, L5);
-      call(CAST_FROM_FN_PTR(address, &count_ct_writes));
-      delayed()->nop();
-      mov(O0, G2);
-      // Restore G-regs that target may have used.
-      mov(L1, G1);
-      mov(L3, G3);
-      mov(L4, G4);
-      mov(L5, G5);
-      restore(G0, G0, G0);
-    }
-    // XXX Should I predict this taken or not?  Does it mattern?
-    br_on_reg_cond(rc_z, /*annul*/false, Assembler::pt, tmp, filtered);
-    delayed()->nop();
+    // XXX Should I predict this taken or not?  Does it matter?
+    cmp_and_brx_short(tmp, G0, Assembler::equal, Assembler::pt, filtered);
   }
 
   // If the "store_addr" register is an "in" or "local" register, move it to
@@ -4677,7 +4651,6 @@ void MacroAssembler::g1_write_barrier_post(Register store_addr, Register new_val
   restore();
 
   bind(filtered);
-
 }
 
 #endif  // SERIALGC
@@ -4903,7 +4876,7 @@ void MacroAssembler::char_arrays_equals(Register ary1, Register ary2,
   delayed()->mov(G0, result);     // not equal
 
   // only one char ?
-  br_on_reg_cond(rc_z, true, Assembler::pn, limit, Ldone);
+  cmp_zero_and_br(zero, limit, Ldone, true, Assembler::pn);
   delayed()->add(G0, 1, result); // zero-length arrays are equal
 
   // word by word compare, dont't need alignment check
@@ -4927,3 +4900,64 @@ void MacroAssembler::char_arrays_equals(Register ary1, Register ary2,
   // Caller should set it:
   // add(G0, 1, result); // equals
 }
+
+// Use BIS for zeroing (count is in bytes).
+void MacroAssembler::bis_zeroing(Register to, Register count, Register temp, Label& Ldone) {
+  assert(UseBlockZeroing && VM_Version::has_block_zeroing(), "only works with BIS zeroing");
+  Register end = count;
+  int cache_line_size = VM_Version::prefetch_data_size();
+  // Minimum count when BIS zeroing can be used since
+  // it needs membar which is expensive.
+  int block_zero_size  = MAX2(cache_line_size*3, (int)BlockZeroingLowLimit);
+
+  Label small_loop;
+  // Check if count is negative (dead code) or zero.
+  // Note, count uses 64bit in 64 bit VM.
+  cmp_and_brx_short(count, 0, Assembler::lessEqual, Assembler::pn, Ldone);
+
+  // Use BIS zeroing only for big arrays since it requires membar.
+  if (Assembler::is_simm13(block_zero_size)) { // < 4096
+    cmp(count, block_zero_size);
+  } else {
+    set(block_zero_size, temp);
+    cmp(count, temp);
+  }
+  br(Assembler::lessUnsigned, false, Assembler::pt, small_loop);
+  delayed()->add(to, count, end);
+
+  // Note: size is >= three (32 bytes) cache lines.
+
+  // Clean the beginning of space up to next cache line.
+  for (int offs = 0; offs < cache_line_size; offs += 8) {
+    stx(G0, to, offs);
+  }
+
+  // align to next cache line
+  add(to, cache_line_size, to);
+  and3(to, -cache_line_size, to);
+
+  // Note: size left >= two (32 bytes) cache lines.
+
+  // BIS should not be used to zero tail (64 bytes)
+  // to avoid zeroing a header of the following object.
+  sub(end, (cache_line_size*2)-8, end);
+
+  Label bis_loop;
+  bind(bis_loop);
+  stxa(G0, to, G0, Assembler::ASI_ST_BLKINIT_PRIMARY);
+  add(to, cache_line_size, to);
+  cmp_and_brx_short(to, end, Assembler::lessUnsigned, Assembler::pt, bis_loop);
+
+  // BIS needs membar.
+  membar(Assembler::StoreLoad);
+
+  add(end, (cache_line_size*2)-8, end); // restore end
+  cmp_and_brx_short(to, end, Assembler::greaterEqualUnsigned, Assembler::pn, Ldone);
+
+  // Clean the tail.
+  bind(small_loop);
+  stx(G0, to, 0);
+  add(to, 8, to);
+  cmp_and_brx_short(to, end, Assembler::lessUnsigned, Assembler::pt, small_loop);
+  nop(); // Separate short branches
+}
diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp
index 30cff57..14a6b62 100644
--- a/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp
@@ -761,7 +761,7 @@ class Assembler : public AbstractAssembler  {
     mwtos_opf   = 0x119
   };
 
-  enum RCondition {  rc_z = 1,  rc_lez = 2,  rc_lz = 3, rc_nz = 5, rc_gz = 6, rc_gez = 7  };
+  enum RCondition {  rc_z = 1,  rc_lez = 2,  rc_lz = 3, rc_nz = 5, rc_gz = 6, rc_gez = 7, rc_last = rc_gez  };
 
   enum Condition {
      // for FBfcc & FBPfcc instruction
@@ -866,9 +866,18 @@ class Assembler : public AbstractAssembler  {
     return is_simm(d, nbits + 2);
   }
 
+  address target_distance(Label& L) {
+    // Assembler::target(L) should be called only when
+    // a branch instruction is emitted since non-bound
+    // labels record current pc() as a branch address.
+    if (L.is_bound()) return target(L);
+    // Return current address for non-bound labels.
+    return pc();
+  }
+
   // test if label is in simm16 range in words (wdisp16).
   bool is_in_wdisp16_range(Label& L) {
-    return is_in_wdisp_range(target(L), pc(), 16);
+    return is_in_wdisp_range(target_distance(L), pc(), 16);
   }
   // test if the distance between two addresses fits in simm30 range in words
   static bool is_in_wdisp30_range(address a, address b) {
@@ -876,8 +885,13 @@ class Assembler : public AbstractAssembler  {
   }
 
   enum ASIs { // page 72, v9
-    ASI_PRIMARY        = 0x80,
-    ASI_PRIMARY_LITTLE = 0x88
+    ASI_PRIMARY            = 0x80,
+    ASI_PRIMARY_NOFAULT    = 0x82,
+    ASI_PRIMARY_LITTLE     = 0x88,
+    // Block initializing store
+    ASI_ST_BLKINIT_PRIMARY = 0xE2,
+    // Most-Recently-Used (MRU) BIS variant
+    ASI_ST_BLKINIT_MRU_PRIMARY = 0xF2
     // add more from book as needed
   };
 
@@ -975,6 +989,20 @@ class Assembler : public AbstractAssembler  {
   static int sx(       int         i)  { return  u_field(i,             12, 12); } // shift x=1 means 64-bit
   static int opf(      int         x)  { return  u_field(x,             13,  5); }
 
+  static bool is_cbcond( int x ) {
+    return (VM_Version::has_cbcond() && (inv_cond(x) > rc_last) &&
+            inv_op(x) == branch_op && inv_op2(x) == bpr_op2);
+  }
+  static bool is_cxb( int x ) {
+    assert(is_cbcond(x), "wrong instruction");
+    return (x & (1<<21)) != 0;
+  }
+  static int cond_cbcond( int         x)  { return  u_field((((x & 8)<<1) + 8 + (x & 7)), 29, 25); }
+  static int inv_cond_cbcond(int      x)  {
+    assert(is_cbcond(x), "wrong instruction");
+    return inv_u_field(x, 27, 25) | (inv_u_field(x, 29, 29)<<3);
+  }
+
   static int opf_cc(   CC          c, bool useFloat ) { return u_field((useFloat ? 0 : 4) + c, 13, 11); }
   static int mov_cc(   CC          c, bool useFloat ) { return u_field(useFloat ? 0 : 1,  18, 18) | u_field(c, 12, 11); }
 
@@ -1026,6 +1054,26 @@ class Assembler : public AbstractAssembler  {
     return r;
   }
 
+  // compute inverse of wdisp10
+  static intptr_t inv_wdisp10(int x, intptr_t pos) {
+    assert(is_cbcond(x), "wrong instruction");
+    int lo = inv_u_field(x, 12, 5);
+    int hi = (x >> 19) & 3;
+    if (hi >= 2) hi |= ~1;
+    return (((hi << 8) | lo) << 2) + pos;
+  }
+
+  // word offset for cbcond, 8 bits at [B12,B5], 2 bits at [B20,B19]
+  static int wdisp10(intptr_t x, intptr_t off) {
+    assert(VM_Version::has_cbcond(), "This CPU does not have CBCOND instruction");
+    intptr_t xx = x - off;
+    assert_signed_word_disp_range(xx, 10);
+    int r =  ( ( (xx >>  2   ) & ((1 << 8) - 1) ) <<  5 )
+           | ( ( (xx >> (2+8)) & 3              ) << 19 );
+    // Have to fake cbcond instruction to pass assert in inv_wdisp10()
+    assert(inv_wdisp10((r | op(branch_op) | cond_cbcond(rc_last+1) | op2(bpr_op2)), off) == x,  "inverse is not inverse");
+    return r;
+  }
 
   // word displacement in low-order nbits bits
 
@@ -1138,7 +1186,26 @@ class Assembler : public AbstractAssembler  {
 #endif
   }
 
+  // cbcond instruction should not be generated one after an other
+  bool cbcond_before() {
+    if (offset() == 0) return false; // it is first instruction
+    int x = *(int*)(intptr_t(pc()) - 4); // previous instruction
+    return is_cbcond(x);
+  }
+
+  void no_cbcond_before() {
+    assert(offset() == 0 || !cbcond_before(), "cbcond should not follow an other cbcond");
+  }
+
 public:
+
+  bool use_cbcond(Label& L) {
+    if (!UseCBCond || cbcond_before()) return false;
+    intptr_t x = intptr_t(target_distance(L)) - intptr_t(pc());
+    assert( (x & 3) == 0, "not word aligned");
+    return is_simm(x, 12);
+  }
+
   // Tells assembler you know that next instruction is delayed
   Assembler* delayed() {
 #ifdef CHECK_DELAY
@@ -1181,10 +1248,15 @@ public:
   void addccc( Register s1, Register s2, Register d ) { emit_long( op(arith_op) | rd(d) | op3(addc_op3 | cc_bit_op3) | rs1(s1) | rs2(s2) ); }
   void addccc( Register s1, int simm13a, Register d ) { emit_long( op(arith_op) | rd(d) | op3(addc_op3 | cc_bit_op3) | rs1(s1) | immed(true) | simm(simm13a, 13) ); }
 
+
   // pp 136
 
-  inline void bpr( RCondition c, bool a, Predict p, Register s1, address d, relocInfo::relocType rt = relocInfo::none );
-  inline void bpr( RCondition c, bool a, Predict p, Register s1, Label& L);
+  inline void bpr(RCondition c, bool a, Predict p, Register s1, address d, relocInfo::relocType rt = relocInfo::none);
+  inline void bpr(RCondition c, bool a, Predict p, Register s1, Label& L);
+
+  // compare and branch
+  inline void cbcond(Condition c, CC cc, Register s1, Register s2, Label& L);
+  inline void cbcond(Condition c, CC cc, Register s1, int simm5, Label& L);
 
  protected: // use MacroAssembler::br instead
 
@@ -1198,8 +1270,6 @@ public:
   inline void fbp( Condition c, bool a, CC cc, Predict p, address d, relocInfo::relocType rt = relocInfo::none );
   inline void fbp( Condition c, bool a, CC cc, Predict p, Label& L );
 
- public:
-
   // pp 144
 
   inline void br( Condition c, bool a, address d, relocInfo::relocType rt = relocInfo::none );
@@ -1220,6 +1290,8 @@ public:
   inline void call( address d,  relocInfo::relocType rt = relocInfo::runtime_call_type );
   inline void call( Label& L,   relocInfo::relocType rt = relocInfo::runtime_call_type );
 
+ public:
+
   // pp 150
 
   // These instructions compare the contents of s2 with the contents of
@@ -1715,9 +1787,12 @@ public:
                                                                            rs1(s) |
                                                                            op3(wrreg_op3) |
                                                                            u_field(2, 29, 25) |
-                                                                           u_field(1, 13, 13) |
+                                                                           immed(true) |
                                                                            simm(simm13a, 13)); }
-  inline void wrasi(  Register d) { v9_only(); emit_long( op(arith_op) | rs1(d) | op3(wrreg_op3) | u_field(3, 29, 25)); }
+  inline void wrasi(Register d) { v9_only(); emit_long( op(arith_op) | rs1(d) | op3(wrreg_op3) | u_field(3, 29, 25)); }
+  // wrasi(d, imm) stores (d xor imm) to asi
+  inline void wrasi(Register d, int simm13a) { v9_only(); emit_long( op(arith_op) | rs1(d) | op3(wrreg_op3) |
+                                               u_field(3, 29, 25) | immed(true) | simm(simm13a, 13)); }
   inline void wrfprs( Register d) { v9_only(); emit_long( op(arith_op) | rs1(d) | op3(wrreg_op3) | u_field(6, 29, 25)); }
 
 
@@ -1862,18 +1937,32 @@ class MacroAssembler: public Assembler {
   inline void fb( Condition c, bool a, Predict p, address d, relocInfo::relocType rt = relocInfo::none );
   inline void fb( Condition c, bool a, Predict p, Label& L );
 
-  // compares register with zero and branches (V9 and V8 instructions)
-  void br_zero( Condition c, bool a, Predict p, Register s1, Label& L);
+  // compares register with zero (32 bit) and branches (V9 and V8 instructions)
+  void cmp_zero_and_br( Condition c, Register s1, Label& L, bool a = false, Predict p = pn );
   // Compares a pointer register with zero and branches on (not)null.
   // Does a test & branch on 32-bit systems and a register-branch on 64-bit.
   void br_null   ( Register s1, bool a, Predict p, Label& L );
   void br_notnull( Register s1, bool a, Predict p, Label& L );
 
-  // These versions will do the most efficient thing on v8 and v9.  Perhaps
-  // this is what the routine above was meant to do, but it didn't (and
-  // didn't cover both target address kinds.)
-  void br_on_reg_cond( RCondition c, bool a, Predict p, Register s1, address d, relocInfo::relocType rt = relocInfo::none );
-  void br_on_reg_cond( RCondition c, bool a, Predict p, Register s1, Label& L);
+  //
+  // Compare registers and branch with nop in delay slot or cbcond without delay slot.
+  //
+  // ATTENTION: use these instructions with caution because cbcond instruction
+  //            has very short distance: 512 instructions (2Kbyte).
+
+  // Compare integer (32 bit) values (icc only).
+  void cmp_and_br_short(Register s1, Register s2, Condition c, Predict p, Label& L);
+  void cmp_and_br_short(Register s1, int simm13a, Condition c, Predict p, Label& L);
+  // Platform depending version for pointer compare (icc on !LP64 and xcc on LP64).
+  void cmp_and_brx_short(Register s1, Register s2, Condition c, Predict p, Label& L);
+  void cmp_and_brx_short(Register s1, int simm13a, Condition c, Predict p, Label& L);
+
+  // Short branch version for compares a pointer pwith zero.
+  void br_null_short   ( Register s1, Predict p, Label& L );
+  void br_notnull_short( Register s1, Predict p, Label& L );
+
+  // unconditional short branch
+  void ba_short(Label& L);
 
   inline void bp( Condition c, bool a, CC cc, Predict p, address d, relocInfo::relocType rt = relocInfo::none );
   inline void bp( Condition c, bool a, CC cc, Predict p, Label& L );
@@ -1882,8 +1971,8 @@ class MacroAssembler: public Assembler {
   inline void brx( Condition c, bool a, Predict p, address d, relocInfo::relocType rt = relocInfo::none );
   inline void brx( Condition c, bool a, Predict p, Label& L );
 
-  // unconditional short branch
-  inline void ba( bool a, Label& L );
+  // unconditional branch
+  inline void ba( Label& L );
 
   // Branch that tests fp condition codes
   inline void fbp( Condition c, bool a, CC cc, Predict p, address d, relocInfo::relocType rt = relocInfo::none );
@@ -2167,7 +2256,6 @@ public:
 
   inline void stbool(Register d, const Address& a) { stb(d, a); }
   inline void ldbool(const Address& a, Register d) { ldsb(a, d); }
-  inline void tstbool( Register s ) { tst(s); }
   inline void movbool( bool boolconst, Register d) { mov( (int) boolconst, d); }
 
   // klass oop manipulations if compressed
@@ -2469,8 +2557,7 @@ public:
                                      Label* L_success,
                                      Label* L_failure,
                                      Label* L_slow_path,
-                RegisterOrConstant super_check_offset = RegisterOrConstant(-1),
-                Register instanceof_hack = noreg);
+                RegisterOrConstant super_check_offset = RegisterOrConstant(-1));
 
   // The rest of the type check; must be wired to a corresponding fast path.
   // It does not repeat the fast path logic, so don't use it standalone.
@@ -2542,6 +2629,8 @@ public:
   void char_arrays_equals(Register ary1, Register ary2,
                           Register limit, Register result,
                           Register chr1, Register chr2, Label& Ldone);
+  // Use BIS for zeroing
+  void bis_zeroing(Register to, Register count, Register temp, Label& Ldone);
 
 #undef VIRTUAL
 
diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp
index 164152a..bbacbe9 100644
--- a/hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp
+++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp
@@ -80,32 +80,36 @@ inline void Assembler::add(Register s1, Register s2, Register d )
 inline void Assembler::add(Register s1, int simm13a, Register d, relocInfo::relocType rtype ) { emit_data( op(arith_op) | rd(d) | op3(add_op3) | rs1(s1) | immed(true) | simm(simm13a, 13), rtype ); }
 inline void Assembler::add(Register s1, int simm13a, Register d, RelocationHolder const& rspec ) { emit_data( op(arith_op) | rd(d) | op3(add_op3) | rs1(s1) | immed(true) | simm(simm13a, 13), rspec ); }
 
-inline void Assembler::bpr( RCondition c, bool a, Predict p, Register s1, address d, relocInfo::relocType rt ) { v9_only();  emit_data( op(branch_op) | annul(a) | cond(c) | op2(bpr_op2) | wdisp16(intptr_t(d), intptr_t(pc())) | predict(p) | rs1(s1), rt);  has_delay_slot(); }
+inline void Assembler::bpr( RCondition c, bool a, Predict p, Register s1, address d, relocInfo::relocType rt ) { v9_only();  cti();  emit_data( op(branch_op) | annul(a) | cond(c) | op2(bpr_op2) | wdisp16(intptr_t(d), intptr_t(pc())) | predict(p) | rs1(s1), rt);  has_delay_slot(); }
 inline void Assembler::bpr( RCondition c, bool a, Predict p, Register s1, Label& L) { bpr( c, a, p, s1, target(L)); }
 
-inline void Assembler::fb( Condition c, bool a, address d, relocInfo::relocType rt ) { v9_dep();  emit_data( op(branch_op) | annul(a) | cond(c) | op2(fb_op2) | wdisp(intptr_t(d), intptr_t(pc()), 22), rt);  has_delay_slot(); }
+inline void Assembler::fb( Condition c, bool a, address d, relocInfo::relocType rt ) { v9_dep();  cti();  emit_data( op(branch_op) | annul(a) | cond(c) | op2(fb_op2) | wdisp(intptr_t(d), intptr_t(pc()), 22), rt);  has_delay_slot(); }
 inline void Assembler::fb( Condition c, bool a, Label& L ) { fb(c, a, target(L)); }
 
-inline void Assembler::fbp( Condition c, bool a, CC cc, Predict p, address d, relocInfo::relocType rt ) { v9_only();  emit_data( op(branch_op) | annul(a) | cond(c) | op2(fbp_op2) | branchcc(cc) | predict(p) | wdisp(intptr_t(d), intptr_t(pc()), 19), rt);  has_delay_slot(); }
+inline void Assembler::fbp( Condition c, bool a, CC cc, Predict p, address d, relocInfo::relocType rt ) { v9_only();  cti();  emit_data( op(branch_op) | annul(a) | cond(c) | op2(fbp_op2) | branchcc(cc) | predict(p) | wdisp(intptr_t(d), intptr_t(pc()), 19), rt);  has_delay_slot(); }
 inline void Assembler::fbp( Condition c, bool a, CC cc, Predict p, Label& L ) { fbp(c, a, cc, p, target(L)); }
 
-inline void Assembler::cb( Condition c, bool a, address d, relocInfo::relocType rt ) { v8_only();  emit_data( op(branch_op) | annul(a) | cond(c) | op2(cb_op2) | wdisp(intptr_t(d), intptr_t(pc()), 22), rt);  has_delay_slot(); }
+inline void Assembler::cb( Condition c, bool a, address d, relocInfo::relocType rt ) { v8_only();  cti();  emit_data( op(branch_op) | annul(a) | cond(c) | op2(cb_op2) | wdisp(intptr_t(d), intptr_t(pc()), 22), rt);  has_delay_slot(); }
 inline void Assembler::cb( Condition c, bool a, Label& L ) { cb(c, a, target(L)); }
 
-inline void Assembler::br( Condition c, bool a, address d, relocInfo::relocType rt ) { v9_dep();   emit_data( op(branch_op) | annul(a) | cond(c) | op2(br_op2) | wdisp(intptr_t(d), intptr_t(pc()), 22), rt);  has_delay_slot(); }
+inline void Assembler::br( Condition c, bool a, address d, relocInfo::relocType rt ) { v9_dep();  cti();   emit_data( op(branch_op) | annul(a) | cond(c) | op2(br_op2) | wdisp(intptr_t(d), intptr_t(pc()), 22), rt);  has_delay_slot(); }
 inline void Assembler::br( Condition c, bool a, Label& L ) { br(c, a, target(L)); }
 
-inline void Assembler::bp( Condition c, bool a, CC cc, Predict p, address d, relocInfo::relocType rt ) { v9_only();  emit_data( op(branch_op) | annul(a) | cond(c) | op2(bp_op2) | branchcc(cc) | predict(p) | wdisp(intptr_t(d), intptr_t(pc()), 19), rt);  has_delay_slot(); }
+inline void Assembler::bp( Condition c, bool a, CC cc, Predict p, address d, relocInfo::relocType rt ) { v9_only();  cti();  emit_data( op(branch_op) | annul(a) | cond(c) | op2(bp_op2) | branchcc(cc) | predict(p) | wdisp(intptr_t(d), intptr_t(pc()), 19), rt);  has_delay_slot(); }
 inline void Assembler::bp( Condition c, bool a, CC cc, Predict p, Label& L ) { bp(c, a, cc, p, target(L)); }
 
-inline void Assembler::call( address d,  relocInfo::relocType rt ) { emit_data( op(call_op) | wdisp(intptr_t(d), intptr_t(pc()), 30), rt);  has_delay_slot(); assert(rt != relocInfo::virtual_call_type, "must use virtual_call_Relocation::spec"); }
+// compare and branch
+inline void Assembler::cbcond(Condition c, CC cc, Register s1, Register s2, Label& L) { cti();  no_cbcond_before();  emit_data(op(branch_op) | cond_cbcond(c) | op2(bpr_op2) | branchcc(cc) | wdisp10(intptr_t(target(L)), intptr_t(pc())) | rs1(s1) | rs2(s2)); }
+inline void Assembler::cbcond(Condition c, CC cc, Register s1, int simm5, Label& L)   { cti();  no_cbcond_before();  emit_data(op(branch_op) | cond_cbcond(c) | op2(bpr_op2) | branchcc(cc) | wdisp10(intptr_t(target(L)), intptr_t(pc())) | rs1(s1) | immed(true) | simm(simm5, 5)); }
+
+inline void Assembler::call( address d,  relocInfo::relocType rt ) { cti();  emit_data( op(call_op) | wdisp(intptr_t(d), intptr_t(pc()), 30), rt);  has_delay_slot(); assert(rt != relocInfo::virtual_call_type, "must use virtual_call_Relocation::spec"); }
 inline void Assembler::call( Label& L,   relocInfo::relocType rt ) { call( target(L), rt); }
 
 inline void Assembler::flush( Register s1, Register s2) { emit_long( op(arith_op) | op3(flush_op3) | rs1(s1) | rs2(s2)); }
 inline void Assembler::flush( Register s1, int simm13a) { emit_data( op(arith_op) | op3(flush_op3) | rs1(s1) | immed(true) | simm(simm13a, 13)); }
 
-inline void Assembler::jmpl( Register s1, Register s2, Register d                          ) { emit_long( op(arith_op) | rd(d) | op3(jmpl_op3) | rs1(s1) | rs2(s2));  has_delay_slot(); }
-inline void Assembler::jmpl( Register s1, int simm13a, Register d, RelocationHolder const& rspec ) { emit_data( op(arith_op) | rd(d) | op3(jmpl_op3) | rs1(s1) | immed(true) | simm(simm13a, 13), rspec);  has_delay_slot(); }
+inline void Assembler::jmpl( Register s1, Register s2, Register d ) { cti();  emit_long( op(arith_op) | rd(d) | op3(jmpl_op3) | rs1(s1) | rs2(s2));  has_delay_slot(); }
+inline void Assembler::jmpl( Register s1, int simm13a, Register d, RelocationHolder const& rspec ) { cti();  emit_data( op(arith_op) | rd(d) | op3(jmpl_op3) | rs1(s1) | immed(true) | simm(simm13a, 13), rspec);  has_delay_slot(); }
 
 inline void Assembler::ldf(FloatRegisterImpl::Width w, Register s1, RegisterOrConstant s2, FloatRegister d) {
   if (s2.is_register()) ldf(w, s1, s2.as_register(), d);
@@ -240,8 +244,8 @@ inline void Assembler::prefetch(Register s1, int simm13a, PrefetchFcn f) { v9_on
 inline void Assembler::prefetch(const Address& a, PrefetchFcn f, int offset) { v9_only(); relocate(a.rspec(offset)); prefetch(a.base(), a.disp() + offset, f); }
 
 
-inline void Assembler::rett( Register s1, Register s2                         ) { emit_long( op(arith_op) | op3(rett_op3) | rs1(s1) | rs2(s2));  has_delay_slot(); }
-inline void Assembler::rett( Register s1, int simm13a, relocInfo::relocType rt) { emit_data( op(arith_op) | op3(rett_op3) | rs1(s1) | immed(true) | simm(simm13a, 13), rt);  has_delay_slot(); }
+inline void Assembler::rett( Register s1, Register s2                         ) { cti();  emit_long( op(arith_op) | op3(rett_op3) | rs1(s1) | rs2(s2));  has_delay_slot(); }
+inline void Assembler::rett( Register s1, int simm13a, relocInfo::relocType rt) { cti();  emit_data( op(arith_op) | op3(rett_op3) | rs1(s1) | immed(true) | simm(simm13a, 13), rt);  has_delay_slot(); }
 
 inline void Assembler::sethi( int imm22a, Register d, RelocationHolder const& rspec ) { emit_data( op(branch_op) | rd(d) | op2(sethi_op2) | hi22(imm22a), rspec); }
 
@@ -557,8 +561,8 @@ inline void MacroAssembler::brx( Condition c, bool a, Predict p, Label& L ) {
   brx(c, a, p, target(L));
 }
 
-inline void MacroAssembler::ba( bool a, Label& L ) {
-  br(always, a, pt, L);
+inline void MacroAssembler::ba( Label& L ) {
+  br(always, false, pt, L);
 }
 
 // Warning: V9 only functions
diff --git a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
index 73d808a..e155153 100644
--- a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
@@ -303,9 +303,7 @@ void PatchingStub::emit_code(LIR_Assembler* ce) {
     assert(_oop_index >= 0, "must have oop index");
     __ load_heap_oop(_obj, java_lang_Class::klass_offset_in_bytes(), G3);
     __ ld_ptr(G3, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc), G3);
-    __ cmp(G2_thread, G3);
-    __ br(Assembler::notEqual, false, Assembler::pn, call_patch);
-    __ delayed()->nop();
+    __ cmp_and_brx_short(G2_thread, G3, Assembler::notEqual, Assembler::pn, call_patch);
 
     // load_klass patches may execute the patched code before it's
     // copied back into place so we need to jump back into the main
@@ -423,8 +421,7 @@ void G1PreBarrierStub::emit_code(LIR_Assembler* ce) {
   }
 
   if (__ is_in_wdisp16_range(_continuation)) {
-    __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
-                      pre_val_reg, _continuation);
+    __ br_null(pre_val_reg, /*annul*/false, Assembler::pt, _continuation);
   } else {
     __ cmp(pre_val_reg, G0);
     __ brx(Assembler::equal, false, Assembler::pn, _continuation);
@@ -460,8 +457,7 @@ void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) {
     // The original src operand was not a constant.
     // Generate src == null?
     if (__ is_in_wdisp16_range(_continuation)) {
-      __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
-                        src_reg, _continuation);
+      __ br_null(src_reg, /*annul*/false, Assembler::pt, _continuation);
     } else {
       __ cmp(src_reg, G0);
       __ brx(Assembler::equal, false, Assembler::pt, _continuation);
@@ -478,13 +474,9 @@ void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) {
   Address ref_type_adr(tmp_reg, instanceKlass::reference_type_offset_in_bytes() + sizeof(oopDesc));
   __ ld(ref_type_adr, tmp_reg);
 
-  if (__ is_in_wdisp16_range(_continuation)) {
-    __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
-                      tmp_reg, _continuation);
-  } else {
-    __ cmp(tmp_reg, G0);
-    __ brx(Assembler::equal, false, Assembler::pt, _continuation);
-  }
+  // _reference_type field is of type ReferenceType (enum)
+  assert(REF_NONE == 0, "check this code");
+  __ cmp_zero_and_br(Assembler::equal, tmp_reg, _continuation, /*annul*/false, Assembler::pt);
   __ delayed()->nop();
 
   // Is marking active?
@@ -500,13 +492,8 @@ void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) {
     assert(in_bytes(PtrQueue::byte_width_of_active()) == 1, "Assumption");
     __ ldsb(in_progress, tmp_reg);
   }
-  if (__ is_in_wdisp16_range(_continuation)) {
-    __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
-                      tmp_reg, _continuation);
-  } else {
-    __ cmp(tmp_reg, G0);
-    __ brx(Assembler::equal, false, Assembler::pt, _continuation);
-  }
+
+  __ cmp_zero_and_br(Assembler::equal, tmp_reg, _continuation, /*annul*/false, Assembler::pt);
   __ delayed()->nop();
 
   // val == null?
@@ -514,8 +501,7 @@ void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) {
   Register val_reg = val()->as_register();
 
   if (__ is_in_wdisp16_range(_continuation)) {
-    __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
-                      val_reg, _continuation);
+    __ br_null(val_reg, /*annul*/false, Assembler::pt, _continuation);
   } else {
     __ cmp(val_reg, G0);
     __ brx(Assembler::equal, false, Assembler::pt, _continuation);
@@ -544,9 +530,9 @@ void G1PostBarrierStub::emit_code(LIR_Assembler* ce) {
   assert(new_val()->is_register(), "Precondition.");
   Register addr_reg = addr()->as_pointer_register();
   Register new_val_reg = new_val()->as_register();
+
   if (__ is_in_wdisp16_range(_continuation)) {
-    __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
-                      new_val_reg, _continuation);
+    __ br_null(new_val_reg, /*annul*/false, Assembler::pt, _continuation);
   } else {
     __ cmp(new_val_reg, G0);
     __ brx(Assembler::equal, false, Assembler::pn, _continuation);
diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
index b450437..7a8b555 100644
--- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
@@ -142,11 +142,6 @@ LIR_Opr LIR_Assembler::receiverOpr() {
 }
 
 
-LIR_Opr LIR_Assembler::incomingReceiverOpr() {
-  return FrameMap::I0_oop_opr;
-}
-
-
 LIR_Opr LIR_Assembler::osrBufferPointer() {
   return FrameMap::I0_opr;
 }
@@ -217,9 +212,7 @@ void LIR_Assembler::osr_entry() {
       {
         Label L;
         __ ld_ptr(OSR_buf, slot_offset + 1*BytesPerWord, O7);
-        __ cmp(G0, O7);
-        __ br(Assembler::notEqual, false, Assembler::pt, L);
-        __ delayed()->nop();
+        __ cmp_and_br_short(O7, G0, Assembler::notEqual, Assembler::pt, L);
         __ stop("locked object is NULL");
         __ bind(L);
       }
@@ -2096,10 +2089,10 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
       __ xor3(O0, -1, tmp);
       __ sub(length, tmp, length);
       __ add(src_pos, tmp, src_pos);
-      __ br_zero(Assembler::less, false, Assembler::pn, O0, *stub->entry());
+      __ cmp_zero_and_br(Assembler::less, O0, *stub->entry());
       __ delayed()->add(dst_pos, tmp, dst_pos);
     } else {
-      __ br_zero(Assembler::less, false, Assembler::pn, O0, *stub->entry());
+      __ cmp_zero_and_br(Assembler::less, O0, *stub->entry());
       __ delayed()->nop();
     }
     __ bind(*stub->continuation());
@@ -2123,22 +2116,19 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
 
   if (flags & LIR_OpArrayCopy::src_pos_positive_check) {
     // test src_pos register
-    __ tst(src_pos);
-    __ br(Assembler::less, false, Assembler::pn, *stub->entry());
+    __ cmp_zero_and_br(Assembler::less, src_pos, *stub->entry());
     __ delayed()->nop();
   }
 
   if (flags & LIR_OpArrayCopy::dst_pos_positive_check) {
     // test dst_pos register
-    __ tst(dst_pos);
-    __ br(Assembler::less, false, Assembler::pn, *stub->entry());
+    __ cmp_zero_and_br(Assembler::less, dst_pos, *stub->entry());
     __ delayed()->nop();
   }
 
   if (flags & LIR_OpArrayCopy::length_positive_check) {
     // make sure length isn't negative
-    __ tst(length);
-    __ br(Assembler::less, false, Assembler::pn, *stub->entry());
+    __ cmp_zero_and_br(Assembler::less, length, *stub->entry());
     __ delayed()->nop();
   }
 
@@ -2261,8 +2251,7 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
 #ifndef PRODUCT
         if (PrintC1Statistics) {
           Label failed;
-          __ br_notnull(O0, false, Assembler::pn,  failed);
-          __ delayed()->nop();
+          __ br_notnull_short(O0, Assembler::pn, failed);
           __ inc_counter((address)&Runtime1::_arraycopy_checkcast_cnt, G1, G3);
           __ bind(failed);
         }
@@ -2314,9 +2303,7 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
         __ br(Assembler::notEqual, false, Assembler::pn, halt);
         // load the raw value of the src klass.
         __ delayed()->lduw(src, oopDesc::klass_offset_in_bytes(), tmp2);
-        __ cmp(tmp, tmp2);
-        __ br(Assembler::equal, false, Assembler::pn, known_ok);
-        __ delayed()->nop();
+        __ cmp_and_br_short(tmp, tmp2, Assembler::equal, Assembler::pn, known_ok);
       } else {
         __ cmp(tmp, tmp2);
         __ br(Assembler::equal, false, Assembler::pn, known_ok);
@@ -2330,9 +2317,7 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
         __ cmp(tmp, tmp2);
         __ brx(Assembler::notEqual, false, Assembler::pn, halt);
         __ delayed()->ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp2);
-        __ cmp(tmp, tmp2);
-        __ brx(Assembler::equal, false, Assembler::pn, known_ok);
-        __ delayed()->nop();
+        __ cmp_and_brx_short(tmp, tmp2, Assembler::equal, Assembler::pn, known_ok);
       } else {
         __ cmp(tmp, tmp2);
         __ brx(Assembler::equal, false, Assembler::pn, known_ok);
@@ -2530,15 +2515,13 @@ void LIR_Assembler::type_profile_helper(Register mdo, int mdo_offset_bias,
                           mdo_offset_bias);
     __ ld_ptr(receiver_addr, tmp1);
     __ verify_oop(tmp1);
-    __ cmp(recv, tmp1);
-    __ brx(Assembler::notEqual, false, Assembler::pt, next_test);
-    __ delayed()->nop();
+    __ cmp_and_brx_short(recv, tmp1, Assembler::notEqual, Assembler::pt, next_test);
     Address data_addr(mdo, md->byte_offset_of_slot(data, ReceiverTypeData::receiver_count_offset(i)) -
                       mdo_offset_bias);
     __ ld_ptr(data_addr, tmp1);
     __ add(tmp1, DataLayout::counter_increment, tmp1);
     __ st_ptr(tmp1, data_addr);
-    __ ba(false, *update_done);
+    __ ba(*update_done);
     __ delayed()->nop();
     __ bind(next_test);
   }
@@ -2549,13 +2532,12 @@ void LIR_Assembler::type_profile_helper(Register mdo, int mdo_offset_bias,
     Address recv_addr(mdo, md->byte_offset_of_slot(data, ReceiverTypeData::receiver_offset(i)) -
                       mdo_offset_bias);
     __ ld_ptr(recv_addr, tmp1);
-    __ br_notnull(tmp1, false, Assembler::pt, next_test);
-    __ delayed()->nop();
+    __ br_notnull_short(tmp1, Assembler::pt, next_test);
     __ st_ptr(recv, recv_addr);
     __ set(DataLayout::counter_increment, tmp1);
     __ st_ptr(tmp1, mdo, md->byte_offset_of_slot(data, ReceiverTypeData::receiver_count_offset(i)) -
               mdo_offset_bias);
-    __ ba(false, *update_done);
+    __ ba(*update_done);
     __ delayed()->nop();
     __ bind(next_test);
   }
@@ -2601,8 +2583,7 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
     setup_md_access(method, op->profiled_bci(), md, data, mdo_offset_bias);
 
     Label not_null;
-    __ br_notnull(obj, false, Assembler::pn, not_null);
-    __ delayed()->nop();
+    __ br_notnull_short(obj, Assembler::pn, not_null);
     Register mdo      = k_RInfo;
     Register data_val = Rtmp1;
     jobject2reg(md->constant_encoding(), mdo);
@@ -2614,7 +2595,7 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
     __ ldub(flags_addr, data_val);
     __ or3(data_val, BitData::null_seen_byte_constant(), data_val);
     __ stb(data_val, flags_addr);
-    __ ba(false, *obj_is_null);
+    __ ba(*obj_is_null);
     __ delayed()->nop();
     __ bind(not_null);
   } else {
@@ -2682,7 +2663,7 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
     __ load_klass(obj, recv);
     type_profile_helper(mdo, mdo_offset_bias, md, data, recv, tmp1, success);
     // Jump over the failure case
-    __ ba(false, *success);
+    __ ba(*success);
     __ delayed()->nop();
     // Cast failure case
     __ bind(profile_cast_failure);
@@ -2695,10 +2676,10 @@ void LIR_Assembler::emit_typecheck_helper(LIR_OpTypeCheck *op, Label* success, L
     __ ld_ptr(data_addr, tmp1);
     __ sub(tmp1, DataLayout::counter_increment, tmp1);
     __ st_ptr(tmp1, data_addr);
-    __ ba(false, *failure);
+    __ ba(*failure);
     __ delayed()->nop();
   }
-  __ ba(false, *success);
+  __ ba(*success);
   __ delayed()->nop();
 }
 
@@ -2728,8 +2709,7 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
 
     if (op->should_profile()) {
       Label not_null;
-      __ br_notnull(value, false, Assembler::pn, not_null);
-      __ delayed()->nop();
+      __ br_notnull_short(value, Assembler::pn, not_null);
       Register mdo      = k_RInfo;
       Register data_val = Rtmp1;
       jobject2reg(md->constant_encoding(), mdo);
@@ -2741,12 +2721,10 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
       __ ldub(flags_addr, data_val);
       __ or3(data_val, BitData::null_seen_byte_constant(), data_val);
       __ stb(data_val, flags_addr);
-      __ ba(false, done);
-      __ delayed()->nop();
+      __ ba_short(done);
       __ bind(not_null);
     } else {
-      __ br_null(value, false, Assembler::pn, done);
-      __ delayed()->nop();
+      __ br_null_short(value, Assembler::pn, done);
     }
     add_debug_info_for_null_check_here(op->info_for_exception());
     __ load_klass(array, k_RInfo);
@@ -2777,8 +2755,7 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
       }
       __ load_klass(value, recv);
       type_profile_helper(mdo, mdo_offset_bias, md, data, recv, tmp1, &done);
-      __ ba(false, done);
-      __ delayed()->nop();
+      __ ba_short(done);
       // Cast failure case
       __ bind(profile_cast_failure);
       jobject2reg(md->constant_encoding(), mdo);
@@ -2790,7 +2767,7 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
       __ ld_ptr(data_addr, tmp1);
       __ sub(tmp1, DataLayout::counter_increment, tmp1);
       __ st_ptr(tmp1, data_addr);
-      __ ba(false, *stub->entry());
+      __ ba(*stub->entry());
       __ delayed()->nop();
     }
     __ bind(done);
@@ -2808,8 +2785,7 @@ void LIR_Assembler::emit_opTypeCheck(LIR_OpTypeCheck* op) {
     emit_typecheck_helper(op, &success, &failure, &failure);
     __ bind(failure);
     __ set(0, dst);
-    __ ba(false, done);
-    __ delayed()->nop();
+    __ ba_short(done);
     __ bind(success);
     __ set(1, dst);
     __ bind(done);
diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
index 7b60789..abf3ab9 100644
--- a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
@@ -328,7 +328,8 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
   bool use_length = x->length() != NULL;
   bool obj_store = x->elt_type() == T_ARRAY || x->elt_type() == T_OBJECT;
   bool needs_store_check = obj_store && (x->value()->as_Constant() == NULL ||
-                                         !get_jobject_constant(x->value())->is_null_object());
+                                         !get_jobject_constant(x->value())->is_null_object() ||
+                                         x->should_profile());
 
   LIRItem array(x->array(), this);
   LIRItem index(x->index(), this);
@@ -382,7 +383,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
     LIR_Opr tmp3 = FrameMap::G5_opr;
 
     CodeEmitInfo* store_check_info = new CodeEmitInfo(range_check_info);
-    __ store_check(value.result(), array.result(), tmp1, tmp2, tmp3, store_check_info);
+    __ store_check(value.result(), array.result(), tmp1, tmp2, tmp3, store_check_info, x->profiled_method(), x->profiled_bci());
   }
 
   if (obj_store) {
diff --git a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp
index 35e70e9..4372225 100644
--- a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp
@@ -41,9 +41,7 @@ void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) {
   // Note: needs more testing of out-of-line vs. inline slow case
   verify_oop(receiver);
   load_klass(receiver, temp_reg);
-  cmp(temp_reg, iCache);
-  brx(Assembler::equal, true, Assembler::pt, L);
-  delayed()->nop();
+  cmp_and_brx_short(temp_reg, iCache, Assembler::equal, Assembler::pt, L);
   AddressLiteral ic_miss(SharedRuntime::get_ic_miss_stub());
   jump_to(ic_miss, temp_reg);
   delayed()->nop();
@@ -142,8 +140,7 @@ void C1_MacroAssembler::unlock_object(Register Rmark, Register Roop, Register Rb
   }
   // Test first it it is a fast recursive unlock
   ld_ptr(Rbox, BasicLock::displaced_header_offset_in_bytes(), Rmark);
-  br_null(Rmark, false, Assembler::pt, done);
-  delayed()->nop();
+  br_null_short(Rmark, Assembler::pt, done);
   if (!UseBiasedLocking) {
     // load object
     ld_ptr(Rbox, BasicObjectLock::obj_offset_in_bytes(), Roop);
@@ -231,7 +228,7 @@ void C1_MacroAssembler::allocate_object(
   if (!is_simm13(obj_size * wordSize)) {
     // would need to use extra register to load
     // object size => go the slow case for now
-    br(Assembler::always, false, Assembler::pt, slow_case);
+    ba(slow_case);
     delayed()->nop();
     return;
   }
@@ -257,12 +254,10 @@ void C1_MacroAssembler::initialize_object(
     Label ok;
     ld(klass, klassOopDesc::header_size() * HeapWordSize + Klass::layout_helper_offset_in_bytes(), t1);
     if (var_size_in_bytes != noreg) {
-      cmp(t1, var_size_in_bytes);
+      cmp_and_brx_short(t1, var_size_in_bytes, Assembler::equal, Assembler::pt, ok);
     } else {
-      cmp(t1, con_size_in_bytes);
+      cmp_and_brx_short(t1, con_size_in_bytes, Assembler::equal, Assembler::pt, ok);
     }
-    brx(Assembler::equal, false, Assembler::pt, ok);
-    delayed()->nop();
     stop("bad size in initialize_object");
     should_not_reach_here();
 
@@ -387,8 +382,7 @@ void C1_MacroAssembler::verify_stack_oop(int stack_offset) {
 
 void C1_MacroAssembler::verify_not_null_oop(Register r) {
   Label not_null;
-  br_notnull(r, false, Assembler::pt, not_null);
-  delayed()->nop();
+  br_notnull_short(r, Assembler::pt, not_null);
   stop("non-null oop required");
   bind(not_null);
   if (!VerifyOops) return;
diff --git a/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
index 6256ae1..23bf235 100644
--- a/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
@@ -71,8 +71,7 @@ int StubAssembler::call_RT(Register oop_result1, Register oop_result2, address e
   { Label L;
     Address exception_addr(G2_thread, Thread::pending_exception_offset());
     ld_ptr(exception_addr, Gtemp);
-    br_null(Gtemp, false, pt, L);
-    delayed()->nop();
+    br_null_short(Gtemp, pt, L);
     Address vm_result_addr(G2_thread, JavaThread::vm_result_offset());
     st_ptr(G0, vm_result_addr);
     Address vm_result_addr_2(G2_thread, JavaThread::vm_result_2_offset());
@@ -333,9 +332,7 @@ OopMapSet* Runtime1::generate_patching(StubAssembler* sasm, address target) {
   assert(deopt_blob != NULL, "deoptimization blob must have been created");
 
   Label no_deopt;
-  __ tst(O0);
-  __ brx(Assembler::equal, false, Assembler::pt, no_deopt);
-  __ delayed()->nop();
+  __ br_null_short(O0, Assembler::pt, no_deopt);
 
   // return to the deoptimization handler entry for unpacking and rexecute
   // if we simply returned the we'd deopt as if any call we patched had just
@@ -402,18 +399,15 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
           if (id == fast_new_instance_init_check_id) {
             // make sure the klass is initialized
             __ ld(G5_klass, instanceKlass::init_state_offset_in_bytes() + sizeof(oopDesc), G3_t1);
-            __ cmp(G3_t1, instanceKlass::fully_initialized);
-            __ br(Assembler::notEqual, false, Assembler::pn, slow_path);
-            __ delayed()->nop();
+            __ cmp_and_br_short(G3_t1, instanceKlass::fully_initialized, Assembler::notEqual, Assembler::pn, slow_path);
           }
 #ifdef ASSERT
           // assert object can be fast path allocated
           {
             Label ok, not_ok;
           __ ld(G5_klass, Klass::layout_helper_offset_in_bytes() + sizeof(oopDesc), G1_obj_size);
-          __ cmp(G1_obj_size, 0);  // make sure it's an instance (LH > 0)
-          __ br(Assembler::lessEqual, false, Assembler::pn, not_ok);
-          __ delayed()->nop();
+          // make sure it's an instance (LH > 0)
+          __ cmp_and_br_short(G1_obj_size, 0, Assembler::lessEqual, Assembler::pn, not_ok);
           __ btst(Klass::_lh_instance_slow_path_bit, G1_obj_size);
           __ br(Assembler::zero, false, Assembler::pn, ok);
           __ delayed()->nop();
@@ -501,9 +495,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
           int tag = ((id == new_type_array_id)
                      ? Klass::_lh_array_tag_type_value
                      : Klass::_lh_array_tag_obj_value);
-          __ cmp(G3_t1, tag);
-          __ brx(Assembler::equal, false, Assembler::pt, ok);
-          __ delayed()->nop();
+          __ cmp_and_brx_short(G3_t1, tag, Assembler::equal, Assembler::pt, ok);
           __ stop("assert(is an array klass)");
           __ should_not_reach_here();
           __ bind(ok);
@@ -519,9 +511,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
 
           // check that array length is small enough for fast path
           __ set(C1_MacroAssembler::max_array_allocation_length, G3_t1);
-          __ cmp(G4_length, G3_t1);
-          __ br(Assembler::greaterUnsigned, false, Assembler::pn, slow_path);
-          __ delayed()->nop();
+          __ cmp_and_br_short(G4_length, G3_t1, Assembler::greaterUnsigned, Assembler::pn, slow_path);
 
           // if we got here then the TLAB allocation failed, so try
           // refilling the TLAB or allocating directly from eden.
@@ -792,13 +782,6 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
       }
       break;
 
-    case jvmti_exception_throw_id:
-      { // Oexception : exception
-        __ set_info("jvmti_exception_throw", dont_gc_arguments);
-        oop_maps = generate_stub_call(sasm, noreg, CAST_FROM_FN_PTR(address, Runtime1::post_jvmti_exception_throw), I0);
-      }
-      break;
-
     case dtrace_object_alloc_id:
       { // O0: object
         __ set_info("dtrace_object_alloc", dont_gc_arguments);
@@ -844,14 +827,16 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
         int satb_q_buf_byte_offset =
           in_bytes(JavaThread::satb_mark_queue_offset() +
                    PtrQueue::byte_offset_of_buf());
+
         __ bind(restart);
+        // Load the index into the SATB buffer. PtrQueue::_index is a
+        // size_t so ld_ptr is appropriate
         __ ld_ptr(G2_thread, satb_q_index_byte_offset, tmp);
 
-        __ br_on_reg_cond(Assembler::rc_z, /*annul*/false,
-                          Assembler::pn, tmp, refill);
+        // index == 0?
+        __ cmp_and_brx_short(tmp, G0, Assembler::equal, Assembler::pn, refill);
 
-        // If the branch is taken, no harm in executing this in the delay slot.
-        __ delayed()->ld_ptr(G2_thread, satb_q_buf_byte_offset, tmp2);
+        __ ld_ptr(G2_thread, satb_q_buf_byte_offset, tmp2);
         __ sub(tmp, oopSize, tmp);
 
         __ st_ptr(pre_val, tmp2, tmp);  // [_buf + index] := <address_of_card>
@@ -911,11 +896,8 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
         __ set(rs, cardtable);         // cardtable := <card table base>
         __ ldub(addr, cardtable, tmp); // tmp := [addr + cardtable]
 
-        __ br_on_reg_cond(Assembler::rc_nz, /*annul*/false, Assembler::pt,
-                          tmp, not_already_dirty);
-        // Get cardtable + tmp into a reg by itself -- useful in the take-the-branch
-        // case, harmless if not.
-        __ delayed()->add(addr, cardtable, tmp2);
+        assert(CardTableModRefBS::dirty_card_val() == 0, "otherwise check this code");
+        __ cmp_and_br_short(tmp, G0, Assembler::notEqual, Assembler::pt, not_already_dirty);
 
         // We didn't take the branch, so we're already dirty: return.
         // Use return-from-leaf
@@ -924,6 +906,10 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
 
         // Not dirty.
         __ bind(not_already_dirty);
+
+        // Get cardtable + tmp into a reg by itself
+        __ add(addr, cardtable, tmp2);
+
         // First, dirty it.
         __ stb(G0, tmp2, 0);  // [cardPtr] := 0  (i.e., dirty).
 
@@ -939,13 +925,17 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
         int dirty_card_q_buf_byte_offset =
           in_bytes(JavaThread::dirty_card_queue_offset() +
                    PtrQueue::byte_offset_of_buf());
+
         __ bind(restart);
+
+        // Get the index into the update buffer. PtrQueue::_index is
+        // a size_t so ld_ptr is appropriate here.
         __ ld_ptr(G2_thread, dirty_card_q_index_byte_offset, tmp3);
 
-        __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pn,
-                          tmp3, refill);
-        // If the branch is taken, no harm in executing this in the delay slot.
-        __ delayed()->ld_ptr(G2_thread, dirty_card_q_buf_byte_offset, tmp4);
+        // index == 0?
+        __ cmp_and_brx_short(tmp3, G0, Assembler::equal,  Assembler::pn, refill);
+
+        __ ld_ptr(G2_thread, dirty_card_q_buf_byte_offset, tmp4);
         __ sub(tmp3, oopSize, tmp3);
 
         __ st_ptr(tmp2, tmp4, tmp3);  // [_buf + index] := <address_of_card>
diff --git a/hotspot/src/cpu/sparc/vm/copy_sparc.hpp b/hotspot/src/cpu/sparc/vm/copy_sparc.hpp
index 0267d25..176ed04 100644
--- a/hotspot/src/cpu/sparc/vm/copy_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/copy_sparc.hpp
@@ -156,9 +156,16 @@ static void pd_fill_to_words(HeapWord* tohw, size_t count, juint value) {
 #endif // _LP64
 }
 
+typedef void (*_zero_Fn)(HeapWord* to, size_t count);
+
 static void pd_fill_to_aligned_words(HeapWord* tohw, size_t count, juint value) {
   assert(MinObjAlignmentInBytes >= BytesPerLong, "need alternate implementation");
 
+  if (value == 0 && UseBlockZeroing &&
+      (count > (BlockZeroingLowLimit >> LogHeapWordSize))) {
+   // Call it only when block zeroing is used
+   ((_zero_Fn)StubRoutines::zero_aligned_words())(tohw, count);
+  } else {
    julong* to = (julong*)tohw;
    julong  v  = ((julong)value << 32) | value;
    // If count is odd, odd will be equal to 1 on 32-bit platform
@@ -176,6 +183,7 @@ static void pd_fill_to_aligned_words(HeapWord* tohw, size_t count, juint value)
      *((juint*)to) = value;
 
    }
+  }
 }
 
 static void pd_fill_to_bytes(void* to, size_t count, jubyte value) {
diff --git a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp
index 46d7d27..2c2a93f 100644
--- a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp
@@ -544,7 +544,7 @@ address InterpreterGenerator::generate_accessor_entry(void) {
 
     // Generate regular method entry
     __ bind(slow_path);
-    __ ba(false, fast_accessor_slow_entry_path);
+    __ ba(fast_accessor_slow_entry_path);
     __ delayed()->nop();
     return entry;
   }
@@ -719,8 +719,7 @@ address InterpreterGenerator::generate_native_entry(bool synchronized) {
 
     Address exception_addr(G2_thread, 0, in_bytes(Thread::pending_exception_offset()));
     __ ld_ptr(exception_addr, G3_scratch);
-    __ br_notnull(G3_scratch, false, Assembler::pn, pending_exception_present);
-    __ delayed()->nop();
+    __ br_notnull_short(G3_scratch, Assembler::pn, pending_exception_present);
     __ ld_ptr(Address(G5_method, 0, in_bytes(methodOopDesc::signature_handler_offset())), G3_scratch);
     __ bind(L);
   }
@@ -1292,7 +1291,7 @@ void CppInterpreterGenerator::generate_deopt_handling() {
   deopt_frame_manager_return_atos  = __ pc();
 
   // O0/O1 live
-  __ ba(false, return_from_deopt_common);
+  __ ba(return_from_deopt_common);
   __ delayed()->set(AbstractInterpreter::BasicType_as_index(T_OBJECT), L3_scratch);    // Result stub address array index
 
 
@@ -1300,14 +1299,14 @@ void CppInterpreterGenerator::generate_deopt_handling() {
   deopt_frame_manager_return_btos  = __ pc();
 
   // O0/O1 live
-  __ ba(false, return_from_deopt_common);
+  __ ba(return_from_deopt_common);
   __ delayed()->set(AbstractInterpreter::BasicType_as_index(T_BOOLEAN), L3_scratch);    // Result stub address array index
 
   // deopt needs to jump to here to enter the interpreter (return a result)
   deopt_frame_manager_return_itos  = __ pc();
 
   // O0/O1 live
-  __ ba(false, return_from_deopt_common);
+  __ ba(return_from_deopt_common);
   __ delayed()->set(AbstractInterpreter::BasicType_as_index(T_INT), L3_scratch);    // Result stub address array index
 
   // deopt needs to jump to here to enter the interpreter (return a result)
@@ -1327,21 +1326,21 @@ void CppInterpreterGenerator::generate_deopt_handling() {
   __ srlx(G1,32,O0);
 #endif /* !_LP64 && COMPILER2 */
   // O0/O1 live
-  __ ba(false, return_from_deopt_common);
+  __ ba(return_from_deopt_common);
   __ delayed()->set(AbstractInterpreter::BasicType_as_index(T_LONG), L3_scratch);    // Result stub address array index
 
   // deopt needs to jump to here to enter the interpreter (return a result)
 
   deopt_frame_manager_return_ftos  = __ pc();
   // O0/O1 live
-  __ ba(false, return_from_deopt_common);
+  __ ba(return_from_deopt_common);
   __ delayed()->set(AbstractInterpreter::BasicType_as_index(T_FLOAT), L3_scratch);    // Result stub address array index
 
   // deopt needs to jump to here to enter the interpreter (return a result)
   deopt_frame_manager_return_dtos  = __ pc();
 
   // O0/O1 live
-  __ ba(false, return_from_deopt_common);
+  __ ba(return_from_deopt_common);
   __ delayed()->set(AbstractInterpreter::BasicType_as_index(T_DOUBLE), L3_scratch);    // Result stub address array index
 
   // deopt needs to jump to here to enter the interpreter (return a result)
@@ -1398,7 +1397,7 @@ void CppInterpreterGenerator::generate_more_monitors() {
   __ ld_ptr(STATE(_stack), L1_scratch);                // Get current stack top
   __ sub(L1_scratch, entry_size, L1_scratch);
   __ st_ptr(L1_scratch, STATE(_stack));
-  __ ba(false, entry);
+  __ ba(entry);
   __ delayed()->add(L1_scratch, wordSize, L1_scratch);        // first real entry (undo prepush)
 
   // 2. move expression stack
@@ -1651,7 +1650,7 @@ address InterpreterGenerator::generate_normal_entry(bool synchronized) {
 
   __ set((int)BytecodeInterpreter::got_monitors, L1_scratch);
   VALIDATE_STATE(G3_scratch, 5);
-  __ ba(false, call_interpreter);
+  __ ba(call_interpreter);
   __ delayed()->st(L1_scratch, STATE(_msg));
 
   // uncommon trap needs to jump to here to enter the interpreter (re-execute current bytecode)
@@ -1659,7 +1658,7 @@ address InterpreterGenerator::generate_normal_entry(bool synchronized) {
 
   // QQQ what message do we send
 
-  __ ba(false, call_interpreter);
+  __ ba(call_interpreter);
   __ delayed()->ld_ptr(STATE(_frame_bottom), SP);                  // restore to full stack frame
 
   //=============================================================================
@@ -1675,7 +1674,7 @@ address InterpreterGenerator::generate_normal_entry(bool synchronized) {
   // ready to resume the interpreter
 
   __ set((int)BytecodeInterpreter::deopt_resume, L1_scratch);
-  __ ba(false, call_interpreter);
+  __ ba(call_interpreter);
   __ delayed()->st(L1_scratch, STATE(_msg));
 
   // Current frame has caught an exception we need to dispatch to the
@@ -1763,7 +1762,7 @@ address InterpreterGenerator::generate_normal_entry(bool synchronized) {
 
   // L1_scratch points to top of stack (prepushed)
 
-  __ ba(false, resume_interpreter);
+  __ ba(resume_interpreter);
   __ delayed()->mov(L1_scratch, O1);
 
   // An exception is being caught on return to a vanilla interpreter frame.
@@ -1773,7 +1772,7 @@ address InterpreterGenerator::generate_normal_entry(bool synchronized) {
 
   __ ld_ptr(STATE(_frame_bottom), SP);                             // restore to full stack frame
   __ ld_ptr(STATE(_stack_base), O1);                               // empty java expression stack
-  __ ba(false, resume_interpreter);
+  __ ba(resume_interpreter);
   __ delayed()->sub(O1, wordSize, O1);                             // account for prepush
 
   // Return from interpreted method we return result appropriate to the caller (i.e. "recursive"
@@ -1852,7 +1851,7 @@ address InterpreterGenerator::generate_normal_entry(bool synchronized) {
 
   __ set((int)BytecodeInterpreter::method_resume, L1_scratch);
   __ st(L1_scratch, STATE(_msg));
-  __ ba(false, call_interpreter_2);
+  __ ba(call_interpreter_2);
   __ delayed()->st_ptr(O1, STATE(_stack));
 
 
@@ -1867,8 +1866,8 @@ address InterpreterGenerator::generate_normal_entry(bool synchronized) {
     __ cmp(Gtmp1, O7);                                                // returning to interpreter?
     __ brx(Assembler::equal, true, Assembler::pt, re_dispatch);       // yep
     __ delayed()->nop();
-    __ ba(false, re_dispatch);
-    __ delayed()->mov(G0, prevState);                                   // initial entry
+    __ ba(re_dispatch);
+    __ delayed()->mov(G0, prevState);                                 // initial entry
 
   }
 
@@ -2031,8 +2030,8 @@ address InterpreterGenerator::generate_normal_entry(bool synchronized) {
   __ brx(Assembler::zero, false, Assembler::pt, unwind_and_forward);
   __ delayed()->nop();
 
-  __ ld_ptr(STATE(_locals), O1);                                   // get result of popping callee's args
-  __ ba(false, unwind_recursive_activation);
+  __ ld_ptr(STATE(_locals), O1); // get result of popping callee's args
+  __ ba(unwind_recursive_activation);
   __ delayed()->nop();
 
   interpreter_frame_manager = entry_point;
diff --git a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp
index edac2b3..83fd371 100644
--- a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp
@@ -839,3 +839,9 @@ void frame::describe_pd(FrameValues& values, int frame_no) {
 }
 
 #endif
+
+intptr_t *frame::initial_deoptimization_info() {
+  // unused... but returns fp() to minimize changes introduced by 7087445
+  return fp();
+}
+
diff --git a/hotspot/src/cpu/sparc/vm/frame_sparc.hpp b/hotspot/src/cpu/sparc/vm/frame_sparc.hpp
index ed30d40..fb0eee6 100644
--- a/hotspot/src/cpu/sparc/vm/frame_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/frame_sparc.hpp
@@ -259,13 +259,8 @@
   };
 #endif /* CC_INTERP */
 
-  // the compiler frame has many of the same fields as the interpreter frame
-  // %%%%% factor out declarations of the shared fields
   enum compiler_frame_fixed_locals {
-       compiler_frame_d_scratch_fp_offset          = -2,
-       compiler_frame_vm_locals_fp_offset          = -2, // should be same as above
-
-       compiler_frame_vm_local_words = -compiler_frame_vm_locals_fp_offset
+       compiler_frame_vm_locals_fp_offset          = -2
   };
 
  private:
@@ -283,9 +278,6 @@
 
   inline void interpreter_frame_set_tos_address(intptr_t* x);
 
-
-  // %%%%% Another idea: instead of defining 3 fns per item, just define one returning a ref
-
   // monitors:
 
   // next two fns read and write Lmonitors value,
@@ -298,22 +290,8 @@
     return ((interpreterState)sp_at(interpreter_state_ptr_offset));
   }
 
-
 #endif /* CC_INTERP */
 
-
-
- // Compiled frames
-
  public:
-  // Tells if this register can hold 64 bits on V9 (really, V8+).
-  static bool holds_a_doubleword(Register reg) {
-#ifdef _LP64
-    //    return true;
-    return reg->is_out() || reg->is_global();
-#else
-    return reg->is_out() || reg->is_global();
-#endif
-  }
 
 #endif // CPU_SPARC_VM_FRAME_SPARC_HPP
diff --git a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp
index 58c4c94..8e3b919 100644
--- a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp
@@ -236,17 +236,13 @@ void InterpreterMacroAssembler::check_and_handle_earlyret(Register scratch_reg)
     Label L;
     Register thr_state = G3_scratch;
     ld_ptr(G2_thread, JavaThread::jvmti_thread_state_offset(), thr_state);
-    tst(thr_state);
-    br(zero, false, pt, L); // if (thread->jvmti_thread_state() == NULL) exit;
-    delayed()->nop();
+    br_null_short(thr_state, pt, L); // if (thread->jvmti_thread_state() == NULL) exit;
 
     // Initiate earlyret handling only if it is not already being processed.
     // If the flag has the earlyret_processing bit set, it means that this code
     // is called *during* earlyret handling - we don't want to reenter.
     ld(thr_state, JvmtiThreadState::earlyret_state_offset(), G4_scratch);
-    cmp(G4_scratch, JvmtiThreadState::earlyret_pending);
-    br(Assembler::notEqual, false, pt, L);
-    delayed()->nop();
+    cmp_and_br_short(G4_scratch, JvmtiThreadState::earlyret_pending, Assembler::notEqual, pt, L);
 
     // Call Interpreter::remove_activation_early_entry() to get the address of the
     // same-named entrypoint in the generated interpreter code
@@ -566,9 +562,7 @@ void InterpreterMacroAssembler::verify_sp(Register Rsp, Register Rtemp) {
 #ifdef _LP64
   sub(Rtemp, STACK_BIAS, Rtemp);  // Bias Rtemp before cmp to FP
 #endif
-  cmp(Rtemp, FP);
-  brx(Assembler::greaterUnsigned, false, Assembler::pn, Bad);
-  delayed()->nop();
+  cmp_and_brx_short(Rtemp, FP, Assembler::greaterUnsigned, Assembler::pn, Bad);
 
   // Saved SP must not be ridiculously below current SP.
   size_t maxstack = MAX2(JavaThread::stack_size_at_create(), (size_t) 4*K*K);
@@ -577,12 +571,9 @@ void InterpreterMacroAssembler::verify_sp(Register Rsp, Register Rtemp) {
 #ifdef _LP64
   add(Rtemp, STACK_BIAS, Rtemp);  // Unbias Rtemp before cmp to Rsp
 #endif
-  cmp(Rsp, Rtemp);
-  brx(Assembler::lessUnsigned, false, Assembler::pn, Bad);
-  delayed()->nop();
+  cmp_and_brx_short(Rsp, Rtemp, Assembler::lessUnsigned, Assembler::pn, Bad);
 
-  br(Assembler::always, false, Assembler::pn, OK);
-  delayed()->nop();
+  ba_short(OK);
 
   bind(Bad);
   stop("on return to interpreted call, restored SP is corrupted");
@@ -630,8 +621,7 @@ void InterpreterMacroAssembler::call_from_interpreter(Register target, Register
 
     const Address interp_only(G2_thread, JavaThread::interp_only_mode_offset());
     ld(interp_only, scratch);
-    tst(scratch);
-    br(Assembler::notZero, true, Assembler::pn, skip_compiled_code);
+    cmp_zero_and_br(Assembler::notZero, scratch, skip_compiled_code, true, Assembler::pn);
     delayed()->ld_ptr(G5_method, in_bytes(methodOopDesc::interpreter_entry_offset()), target);
     bind(skip_compiled_code);
   }
@@ -641,8 +631,7 @@ void InterpreterMacroAssembler::call_from_interpreter(Register target, Register
 #ifdef ASSERT
   {
     Label ok;
-    br_notnull(target, false, Assembler::pt, ok);
-    delayed()->nop();
+    br_notnull_short(target, Assembler::pt, ok);
     stop("null entry point");
     bind(ok);
   }
@@ -769,6 +758,20 @@ void InterpreterMacroAssembler::get_cache_and_index_at_bcp(Register cache, Regis
 }
 
 
+void InterpreterMacroAssembler::get_cache_and_index_and_bytecode_at_bcp(Register cache,
+                                                                        Register temp,
+                                                                        Register bytecode,
+                                                                        int byte_no,
+                                                                        int bcp_offset,
+                                                                        size_t index_size) {
+  get_cache_and_index_at_bcp(cache, temp, bcp_offset, index_size);
+  ld_ptr(cache, constantPoolCacheOopDesc::base_offset() + ConstantPoolCacheEntry::indices_offset(), bytecode);
+  const int shift_count = (1 + byte_no) * BitsPerByte;
+  srl( bytecode, shift_count, bytecode);
+  and3(bytecode,        0xFF, bytecode);
+}
+
+
 void InterpreterMacroAssembler::get_cache_entry_pointer_at_bcp(Register cache, Register tmp,
                                                                int bcp_offset, size_t index_size) {
   assert(bcp_offset > 0, "bcp is still pointing to start of bytecode");
@@ -982,8 +985,7 @@ void InterpreterMacroAssembler::unlock_if_synchronized_method(TosState state,
 
   // Don't unlock anything if the _do_not_unlock_if_synchronized flag
   // is set.
-  tstbool(G1_scratch);
-  br(Assembler::notZero, false, pn, no_unlock);
+  cmp_zero_and_br(Assembler::notZero, G1_scratch, no_unlock);
   delayed()->nop();
 
   // BasicObjectLock will be first in list, since this is a synchronized method. However, need
@@ -997,8 +999,7 @@ void InterpreterMacroAssembler::unlock_if_synchronized_method(TosState state,
   add( top_most_monitor(), O1 );
 
   ld_ptr(O1, BasicObjectLock::obj_offset_in_bytes(), G3_scratch);
-  br_notnull(G3_scratch, false, pt, unlock);
-  delayed()->nop();
+  br_notnull_short(G3_scratch, pt, unlock);
 
   if (throw_monitor_exception) {
     // Entry already unlocked need to throw an exception
@@ -1011,8 +1012,7 @@ void InterpreterMacroAssembler::unlock_if_synchronized_method(TosState state,
     if (install_monitor_exception) {
       MacroAssembler::call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::new_illegal_monitor_state_exception));
     }
-    ba(false, unlocked);
-    delayed()->nop();
+    ba_short(unlocked);
   }
 
   bind(unlock);
@@ -1037,15 +1037,13 @@ void InterpreterMacroAssembler::unlock_if_synchronized_method(TosState state,
     add(top_most_monitor(), Rmptr, delta);
     { Label L;
       // ensure that Rmptr starts out above (or at) Rlimit
-      cmp(Rmptr, Rlimit);
-      brx(Assembler::greaterEqualUnsigned, false, pn, L);
-      delayed()->nop();
+      cmp_and_brx_short(Rmptr, Rlimit, Assembler::greaterEqualUnsigned, pn, L);
       stop("monitor stack has negative size");
       bind(L);
     }
     #endif
     bind(restart);
-    ba(false, entry);
+    ba(entry);
     delayed()->
     add(top_most_monitor(), Rmptr, delta);      // points to current entry, starting with bottom-most entry
 
@@ -1061,8 +1059,7 @@ void InterpreterMacroAssembler::unlock_if_synchronized_method(TosState state,
       if (install_monitor_exception) {
         MacroAssembler::call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::new_illegal_monitor_state_exception));
       }
-      ba(false, restart);
-      delayed()->nop();
+      ba_short(restart);
     }
 
     bind(loop);
@@ -1073,9 +1070,7 @@ void InterpreterMacroAssembler::unlock_if_synchronized_method(TosState state,
     #ifdef ASSERT
     { Label L;
       // ensure that Rmptr has not somehow stepped below Rlimit
-      cmp(Rmptr, Rlimit);
-      brx(Assembler::greaterEqualUnsigned, false, pn, L);
-      delayed()->nop();
+      cmp_and_brx_short(Rmptr, Rlimit, Assembler::greaterEqualUnsigned, pn, L);
       stop("ran off the end of the monitor stack");
       bind(L);
     }
@@ -1196,9 +1191,7 @@ void InterpreterMacroAssembler::lock_object(Register lock_reg, Register Object)
       (address)StubRoutines::Sparc::atomic_memory_operation_lock_addr());
 
     // if the compare and exchange succeeded we are done (we saw an unlocked object)
-    cmp(mark_reg, temp_reg);
-    brx(Assembler::equal, true, Assembler::pt, done);
-    delayed()->nop();
+    cmp_and_brx_short(mark_reg, temp_reg, Assembler::equal, Assembler::pt, done);
 
     // We did not see an unlocked object so try the fast recursive case
 
@@ -1324,13 +1317,7 @@ void InterpreterMacroAssembler::set_method_data_pointer_for_bcp() {
 
 void InterpreterMacroAssembler::test_method_data_pointer(Label& zero_continue) {
   assert(ProfileInterpreter, "must be profiling interpreter");
-#ifdef _LP64
-  bpr(Assembler::rc_z, false, Assembler::pn, ImethodDataPtr, zero_continue);
-#else
-  tst(ImethodDataPtr);
-  br(Assembler::zero, false, Assembler::pn, zero_continue);
-#endif
-  delayed()->nop();
+  br_null_short(ImethodDataPtr, Assembler::pn, zero_continue);
 }
 
 void InterpreterMacroAssembler::verify_method_data_pointer() {
@@ -1376,31 +1363,18 @@ void InterpreterMacroAssembler::test_invocation_counter_for_mdp(Register invocat
   Label done;
 
   // if no method data exists, and the counter is high enough, make one
-#ifdef _LP64
-  bpr(Assembler::rc_nz, false, Assembler::pn, ImethodDataPtr, done);
-#else
-  tst(ImethodDataPtr);
-  br(Assembler::notZero, false, Assembler::pn, done);
-#endif
+  br_notnull_short(ImethodDataPtr, Assembler::pn, done);
 
   // Test to see if we should create a method data oop
   AddressLiteral profile_limit((address) &InvocationCounter::InterpreterProfileLimit);
-#ifdef _LP64
-  delayed()->nop();
   sethi(profile_limit, Rtmp);
-#else
-  delayed()->sethi(profile_limit, Rtmp);
-#endif
   ld(Rtmp, profile_limit.low10(), Rtmp);
-  cmp(invocation_count, Rtmp);
-  br(Assembler::lessUnsigned, false, Assembler::pn, profile_continue);
-  delayed()->nop();
+  cmp_and_br_short(invocation_count, Rtmp, Assembler::lessUnsigned, Assembler::pn, profile_continue);
 
   // Build it now.
   call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::profile_method));
   set_method_data_pointer_for_bcp();
-  ba(false, profile_continue);
-  delayed()->nop();
+  ba_short(profile_continue);
   bind(done);
 }
 
@@ -1632,13 +1606,10 @@ void InterpreterMacroAssembler::profile_virtual_call(Register receiver,
     Label skip_receiver_profile;
     if (receiver_can_be_null) {
       Label not_null;
-      tst(receiver);
-      brx(Assembler::notZero, false, Assembler::pt, not_null);
-      delayed()->nop();
+      br_notnull_short(receiver, Assembler::pt, not_null);
       // We are making a call.  Increment the count for null receiver.
       increment_mdp_data_at(in_bytes(CounterData::count_offset()), scratch);
-      ba(false, skip_receiver_profile);
-      delayed()->nop();
+      ba_short(skip_receiver_profile);
       bind(not_null);
     }
 
@@ -1682,8 +1653,7 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper(
     // The receiver is receiver[n].  Increment count[n].
     int count_offset = in_bytes(VirtualCallData::receiver_count_offset(row));
     increment_mdp_data_at(count_offset, scratch);
-    ba(false, done);
-    delayed()->nop();
+    ba_short(done);
     bind(next_test);
 
     if (test_for_null_also) {
@@ -1697,8 +1667,7 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper(
           // Receiver did not match any saved receiver and there is no empty row for it.
           // Increment total counter to indicate polymorphic case.
           increment_mdp_data_at(in_bytes(CounterData::count_offset()), scratch);
-          ba(false, done);
-          delayed()->nop();
+          ba_short(done);
           bind(found_null);
         } else {
           brx(Assembler::notZero, false, Assembler::pt, done);
@@ -1729,8 +1698,7 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper(
   mov(DataLayout::counter_increment, scratch);
   set_mdp_data_at(count_offset, scratch);
   if (start_row > 0) {
-    ba(false, done);
-    delayed()->nop();
+    ba_short(done);
   }
 }
 
@@ -1772,8 +1740,7 @@ void InterpreterMacroAssembler::profile_ret(TosState state,
 
       // The method data pointer needs to be updated to reflect the new target.
       update_mdp_by_offset(in_bytes(RetData::bci_displacement_offset(row)), scratch);
-      ba(false, profile_continue);
-      delayed()->nop();
+      ba_short(profile_continue);
       bind(next_test);
     }
 
@@ -1922,8 +1889,8 @@ void InterpreterMacroAssembler::add_monitor_to_stack( bool stack_is_empty,
 
     // untested("monitor stack expansion");
     compute_stack_base(Rtemp);
-    ba( false, start_copying );
-    delayed()->cmp( Rtemp, Rlimit); // done? duplicated below
+    ba(start_copying);
+    delayed()->cmp(Rtemp, Rlimit); // done? duplicated below
 
     // note: must copy from low memory upwards
     // On entry to loop,
@@ -2010,9 +1977,7 @@ void InterpreterMacroAssembler::check_for_regarea_stomp(Register Rindex, int off
   // untested("reg area corruption");
   add(Rindex, offset, Rscratch);
   add(Rlimit, 64 + STACK_BIAS, Rscratch1);
-  cmp(Rscratch, Rscratch1);
-  brx(Assembler::greaterEqualUnsigned, false, pn, L);
-  delayed()->nop();
+  cmp_and_brx_short(Rscratch, Rscratch1, Assembler::greaterEqualUnsigned, pn, L);
   stop("regsave area is being clobbered");
   bind(L);
 }
@@ -2174,9 +2139,7 @@ void InterpreterMacroAssembler::test_backedge_count_for_osr( Register backedge_c
 
   AddressLiteral limit(&InvocationCounter::InterpreterBackwardBranchLimit);
   load_contents(limit, Rtmp);
-  cmp(backedge_count, Rtmp);
-  br(Assembler::lessUnsigned, false, Assembler::pt, did_not_overflow);
-  delayed()->nop();
+  cmp_and_br_short(backedge_count, Rtmp, Assembler::lessUnsigned, Assembler::pt, did_not_overflow);
 
   // When ProfileInterpreter is on, the backedge_count comes from the
   // methodDataOop, which value does not get reset on the call to
@@ -2196,15 +2159,11 @@ void InterpreterMacroAssembler::test_backedge_count_for_osr( Register backedge_c
 
   // Was an OSR adapter generated?
   // O0 = osr nmethod
-  tst(O0);
-  brx(Assembler::zero, false, Assembler::pn, overflow_with_error);
-  delayed()->nop();
+  br_null_short(O0, Assembler::pn, overflow_with_error);
 
   // Has the nmethod been invalidated already?
   ld(O0, nmethod::entry_bci_offset(), O2);
-  cmp(O2, InvalidOSREntryBci);
-  br(Assembler::equal, false, Assembler::pn, overflow_with_error);
-  delayed()->nop();
+  cmp_and_br_short(O2, InvalidOSREntryBci, Assembler::equal, Assembler::pn, overflow_with_error);
 
   // migrate the interpreter frame off of the stack
 
@@ -2270,8 +2229,7 @@ void InterpreterMacroAssembler::verify_oop_or_return_address(Register reg, Regis
   mov(reg, Rtmp);
   const int log2_bytecode_size_limit = 16;
   srl(Rtmp, log2_bytecode_size_limit, Rtmp);
-  br_notnull( Rtmp, false, pt, test );
-  delayed()->nop();
+  br_notnull_short( Rtmp, pt, test );
 
   // %%% should use call_VM_leaf here?
   save_frame_and_mov(0, Lmethod, O0, reg, O1);
@@ -2320,9 +2278,7 @@ void InterpreterMacroAssembler::notify_method_entry() {
     Register temp_reg = O5;
     const Address interp_only(G2_thread, JavaThread::interp_only_mode_offset());
     ld(interp_only, temp_reg);
-    tst(temp_reg);
-    br(zero, false, pt, L);
-    delayed()->nop();
+    cmp_and_br_short(temp_reg, 0, equal, pt, L);
     call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::post_method_entry));
     bind(L);
   }
@@ -2372,9 +2328,7 @@ void InterpreterMacroAssembler::notify_method_exit(bool is_native_method,
     Register temp_reg = O5;
     const Address interp_only(G2_thread, JavaThread::interp_only_mode_offset());
     ld(interp_only, temp_reg);
-    tst(temp_reg);
-    br(zero, false, pt, L);
-    delayed()->nop();
+    cmp_and_br_short(temp_reg, 0, equal, pt, L);
 
     // Note: frame::interpreter_frame_result has a dependency on how the
     // method result is saved across the call to post_method_exit. For
diff --git a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp
index be3840c..8e05e9a 100644
--- a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp
@@ -189,6 +189,7 @@ class InterpreterMacroAssembler: public MacroAssembler {
                                   setCCOrNot should_set_CC = dont_set_CC );
 
   void get_cache_and_index_at_bcp(Register cache, Register tmp, int bcp_offset, size_t index_size = sizeof(u2));
+  void get_cache_and_index_and_bytecode_at_bcp(Register cache, Register temp, Register bytecode, int byte_no, int bcp_offset, size_t index_size = sizeof(u2));
   void get_cache_entry_pointer_at_bcp(Register cache, Register tmp, int bcp_offset, size_t index_size = sizeof(u2));
   void get_cache_index_at_bcp(Register cache, Register tmp, int bcp_offset, size_t index_size = sizeof(u2));
 
diff --git a/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp
index 774c3b6..5471ebc 100644
--- a/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp
@@ -191,22 +191,19 @@ address AbstractInterpreterGenerator::generate_slow_signature_handler() {
     // Optimization, see if there are any more args and get out prior to checking
     // all 16 float registers.  My guess is that this is rare.
     // If is_register is false, then we are done the first six integer args.
-      __ tst(G4_scratch);
-      __ brx(Assembler::zero, false, Assembler::pt, done);
-      __ delayed()->nop();
-
+      __ br_null_short(G4_scratch, Assembler::pt, done);
     }
-    __ ba(false, NextArg);
+    __ ba(NextArg);
     __ delayed()->srl( G4_scratch, 2, G4_scratch );
 
     __ bind(LoadFloatArg);
     __ ldf( FloatRegisterImpl::S, a, ldarg.as_float_register(), 4);
-    __ ba(false, NextArg);
+    __ ba(NextArg);
     __ delayed()->srl( G4_scratch, 2, G4_scratch );
 
     __ bind(LoadDoubleArg);
     __ ldf( FloatRegisterImpl::D, a, ldarg.as_double_register() );
-    __ ba(false, NextArg);
+    __ ba(NextArg);
     __ delayed()->srl( G4_scratch, 2, G4_scratch );
 
     __ bind(NextArg);
@@ -234,8 +231,7 @@ void InterpreterGenerator::generate_counter_overflow(Label& Lcontinue) {
   __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::frequency_counter_overflow), O2, O2, true);
   // returns verified_entry_point or NULL
   // we ignore it in any case
-  __ ba(false, Lcontinue);
-  __ delayed()->nop();
+  __ ba_short(Lcontinue);
 
 }
 
diff --git a/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp b/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp
index 3df5a8e..14030c0 100644
--- a/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp
@@ -287,9 +287,7 @@ void MethodHandles::RicochetFrame::verify_clean(MacroAssembler* _masm) {
   BLOCK_COMMENT("verify_clean {");
   // Magic numbers must check out:
   __ set((int32_t) MAGIC_NUMBER_1, O7_temp);
-  __ cmp(O7_temp, L0_magic_number_1);
-  __ br(Assembler::equal, false, Assembler::pt, L_ok_1);
-  __ delayed()->nop();
+  __ cmp_and_br_short(O7_temp, L0_magic_number_1, Assembler::equal, Assembler::pt, L_ok_1);
   __ stop("damaged ricochet frame: MAGIC_NUMBER_1 not found");
 
   __ BIND(L_ok_1);
@@ -301,9 +299,7 @@ void MethodHandles::RicochetFrame::verify_clean(MacroAssembler* _masm) {
 #else
   Register FP_temp = FP;
 #endif
-  __ cmp(L4_saved_args_base, FP_temp);
-  __ br(Assembler::greaterEqualUnsigned, false, Assembler::pt, L_ok_2);
-  __ delayed()->nop();
+  __ cmp_and_brx_short(L4_saved_args_base, FP_temp, Assembler::greaterEqualUnsigned, Assembler::pt, L_ok_2);
   __ stop("damaged ricochet frame: L4 < FP");
 
   __ BIND(L_ok_2);
@@ -316,15 +312,11 @@ void MethodHandles::RicochetFrame::verify_clean(MacroAssembler* _masm) {
 
   __ BIND(L_ok_3);
   extract_conversion_dest_type(_masm, L5_conversion, O7_temp);
-  __ cmp(O7_temp, T_VOID);
-  __ br(Assembler::equal, false, Assembler::pt, L_ok_4);
-  __ delayed()->nop();
+  __ cmp_and_br_short(O7_temp, T_VOID, Assembler::equal, Assembler::pt, L_ok_4);
   extract_conversion_vminfo(_masm, L5_conversion, O5_temp);
   __ ld_ptr(L4_saved_args_base, __ argument_offset(O5_temp, O5_temp), O7_temp);
   assert(__ is_simm13(RETURN_VALUE_PLACEHOLDER), "must be simm13");
-  __ cmp(O7_temp, (int32_t) RETURN_VALUE_PLACEHOLDER);
-  __ brx(Assembler::equal, false, Assembler::pt, L_ok_4);
-  __ delayed()->nop();
+  __ cmp_and_brx_short(O7_temp, (int32_t) RETURN_VALUE_PLACEHOLDER, Assembler::equal, Assembler::pt, L_ok_4);
   __ stop("damaged ricochet frame: RETURN_VALUE_PLACEHOLDER not found");
   __ BIND(L_ok_4);
   BLOCK_COMMENT("} verify_clean");
@@ -363,9 +355,7 @@ void MethodHandles::load_stack_move(MacroAssembler* _masm,
   if (VerifyMethodHandles) {
     Label L_ok, L_bad;
     int32_t stack_move_limit = 0x0800;  // extra-large
-    __ cmp(stack_move_reg, stack_move_limit);
-    __ br(Assembler::greaterEqual, false, Assembler::pn, L_bad);
-    __ delayed()->nop();
+    __ cmp_and_br_short(stack_move_reg, stack_move_limit, Assembler::greaterEqual, Assembler::pn, L_bad);
     __ cmp(stack_move_reg, -stack_move_limit);
     __ br(Assembler::greater, false, Assembler::pt, L_ok);
     __ delayed()->nop();
@@ -401,13 +391,9 @@ void MethodHandles::verify_argslot(MacroAssembler* _masm, Register argslot_reg,
   // Verify that argslot lies within (Gargs, FP].
   Label L_ok, L_bad;
   BLOCK_COMMENT("verify_argslot {");
+  __ cmp_and_brx_short(Gargs, argslot_reg, Assembler::greaterUnsigned, Assembler::pn, L_bad);
   __ add(FP, STACK_BIAS, temp_reg);  // STACK_BIAS is zero on !_LP64
-  __ cmp(argslot_reg, temp_reg);
-  __ brx(Assembler::greaterUnsigned, false, Assembler::pn, L_bad);
-  __ delayed()->nop();
-  __ cmp(Gargs, argslot_reg);
-  __ brx(Assembler::lessEqualUnsigned, false, Assembler::pt, L_ok);
-  __ delayed()->nop();
+  __ cmp_and_brx_short(argslot_reg, temp_reg, Assembler::lessEqualUnsigned, Assembler::pt, L_ok);
   __ BIND(L_bad);
   __ stop(error_message);
   __ BIND(L_ok);
@@ -434,14 +420,10 @@ void MethodHandles::verify_argslots(MacroAssembler* _masm,
   }
   __ add(arg_slot_base_reg, __ argument_offset(arg_slots, temp_reg), temp_reg);
   __ add(FP, STACK_BIAS, temp2_reg);  // STACK_BIAS is zero on !_LP64
-  __ cmp(temp_reg, temp2_reg);
-  __ brx(Assembler::greaterUnsigned, false, Assembler::pn, L_bad);
-  __ delayed()->nop();
+  __ cmp_and_brx_short(temp_reg, temp2_reg, Assembler::greaterUnsigned, Assembler::pn, L_bad);
   // Gargs points to the first word so adjust by BytesPerWord
   __ add(arg_slot_base_reg, BytesPerWord, temp_reg);
-  __ cmp(Gargs, temp_reg);
-  __ brx(Assembler::lessEqualUnsigned, false, Assembler::pt, L_ok);
-  __ delayed()->nop();
+  __ cmp_and_brx_short(Gargs, temp_reg, Assembler::lessEqualUnsigned, Assembler::pt, L_ok);
   __ BIND(L_bad);
   __ stop(error_message);
   __ BIND(L_ok);
@@ -502,21 +484,16 @@ void MethodHandles::verify_klass(MacroAssembler* _masm,
   Label L_ok, L_bad;
   BLOCK_COMMENT("verify_klass {");
   __ verify_oop(obj_reg);
-  __ br_null(obj_reg, false, Assembler::pn, L_bad);
-  __ delayed()->nop();
+  __ br_null_short(obj_reg, Assembler::pn, L_bad);
   __ load_klass(obj_reg, temp_reg);
   __ set(ExternalAddress(klass_addr), temp2_reg);
   __ ld_ptr(Address(temp2_reg, 0), temp2_reg);
-  __ cmp(temp_reg, temp2_reg);
-  __ brx(Assembler::equal, false, Assembler::pt, L_ok);
-  __ delayed()->nop();
+  __ cmp_and_brx_short(temp_reg, temp2_reg, Assembler::equal, Assembler::pt, L_ok);
   intptr_t super_check_offset = klass->super_check_offset();
   __ ld_ptr(Address(temp_reg, super_check_offset), temp_reg);
   __ set(ExternalAddress(klass_addr), temp2_reg);
   __ ld_ptr(Address(temp2_reg, 0), temp2_reg);
-  __ cmp(temp_reg, temp2_reg);
-  __ brx(Assembler::equal, false, Assembler::pt, L_ok);
-  __ delayed()->nop();
+  __ cmp_and_brx_short(temp_reg, temp2_reg, Assembler::equal, Assembler::pt, L_ok);
   __ BIND(L_bad);
   __ stop(error_message);
   __ BIND(L_ok);
@@ -671,9 +648,7 @@ static RegisterOrConstant adjust_SP_and_Gargs_down_by_slots(MacroAssembler* _mas
 #ifdef ASSERT
     {
       Label L_ok;
-      __ cmp(arg_slots.as_register(), 0);
-      __ br(Assembler::greaterEqual, false, Assembler::pt, L_ok);
-      __ delayed()->nop();
+      __ cmp_and_br_short(arg_slots.as_register(), 0, Assembler::greaterEqual, Assembler::pt, L_ok);
       __ stop("negative arg_slots");
       __ bind(L_ok);
     }
@@ -748,9 +723,7 @@ void MethodHandles::insert_arg_slots(MacroAssembler* _masm,
     __ ld_ptr(           Address(temp_reg, 0     ), temp2_reg);
     __ st_ptr(temp2_reg, Address(temp_reg, offset)           );
     __ add(temp_reg, wordSize, temp_reg);
-    __ cmp(temp_reg, argslot_reg);
-    __ brx(Assembler::lessUnsigned, false, Assembler::pt, loop);
-    __ delayed()->nop();  // FILLME
+    __ cmp_and_brx_short(temp_reg, argslot_reg, Assembler::lessUnsigned, Assembler::pt, loop);
   }
 
   // Now move the argslot down, to point to the opened-up space.
@@ -797,9 +770,7 @@ void MethodHandles::remove_arg_slots(MacroAssembler* _masm,
     __ ld_ptr(           Address(temp_reg, 0     ), temp2_reg);
     __ st_ptr(temp2_reg, Address(temp_reg, offset)           );
     __ sub(temp_reg, wordSize, temp_reg);
-    __ cmp(temp_reg, Gargs);
-    __ brx(Assembler::greaterEqualUnsigned, false, Assembler::pt, L_loop);
-    __ delayed()->nop();  // FILLME
+    __ cmp_and_brx_short(temp_reg, Gargs, Assembler::greaterEqualUnsigned, Assembler::pt, L_loop);
   }
 
   // And adjust the argslot address to point at the deletion point.
@@ -848,8 +819,7 @@ void MethodHandles::push_arg_slots(MacroAssembler* _masm,
     __ delayed()->nop();
     __ ld_ptr(          Address(argslot_reg, 0), temp_reg);
     __ st_ptr(temp_reg, Address(Gargs,       0));
-    __ ba(false, L_break);
-    __ delayed()->nop();  // FILLME
+    __ ba_short(L_break);
     __ BIND(L_plural);
 
     // Loop for 2 or more:
@@ -863,9 +833,7 @@ void MethodHandles::push_arg_slots(MacroAssembler* _masm,
     __ sub(Gargs,   wordSize, Gargs  );
     __ ld_ptr(           Address(top_reg, 0), temp2_reg);
     __ st_ptr(temp2_reg, Address(Gargs,   0));
-    __ cmp(top_reg, argslot_reg);
-    __ brx(Assembler::greaterUnsigned, false, Assembler::pt, L_loop);
-    __ delayed()->nop();  // FILLME
+    __ cmp_and_brx_short(top_reg, argslot_reg, Assembler::greaterUnsigned, Assembler::pt, L_loop);
     __ BIND(L_break);
   }
   BLOCK_COMMENT("} push_arg_slots");
@@ -897,17 +865,13 @@ void MethodHandles::move_arg_slots_up(MacroAssembler* _masm,
       __ br(Assembler::lessEqual, false, Assembler::pn, L_bad);
       __ delayed()->nop();
     }
-    __ cmp(bottom_reg, top_reg);
-    __ brx(Assembler::lessUnsigned, false, Assembler::pt, L_ok);
-    __ delayed()->nop();
+    __ cmp_and_brx_short(bottom_reg, top_reg, Assembler::lessUnsigned, Assembler::pt, L_ok);
     __ BIND(L_bad);
     __ stop("valid bounds (copy up)");
     __ BIND(L_ok);
   }
 #endif
-  __ cmp(bottom_reg, top_reg);
-  __ brx(Assembler::greaterEqualUnsigned, false, Assembler::pn, L_break);
-  __ delayed()->nop();
+  __ cmp_and_brx_short(bottom_reg, top_reg, Assembler::greaterEqualUnsigned, Assembler::pn, L_break);
   // work top down to bottom, copying contiguous data upwards
   // In pseudo-code:
   //   while (--top >= bottom) *(top + distance) = *(top + 0);
@@ -916,9 +880,7 @@ void MethodHandles::move_arg_slots_up(MacroAssembler* _masm,
   __ sub(top_reg, wordSize, top_reg);
   __ ld_ptr(           Address(top_reg, 0     ), temp2_reg);
   __ st_ptr(temp2_reg, Address(top_reg, offset)           );
-  __ cmp(top_reg, bottom_reg);
-  __ brx(Assembler::greaterUnsigned, false, Assembler::pt, L_loop);
-  __ delayed()->nop();  // FILLME
+  __ cmp_and_brx_short(top_reg, bottom_reg, Assembler::greaterUnsigned, Assembler::pt, L_loop);
   assert(Interpreter::stackElementSize == wordSize, "else change loop");
   __ BIND(L_break);
   BLOCK_COMMENT("} move_arg_slots_up");
@@ -951,17 +913,13 @@ void MethodHandles::move_arg_slots_down(MacroAssembler* _masm,
       __ br(Assembler::greaterEqual, false, Assembler::pn, L_bad);
       __ delayed()->nop();
     }
-    __ cmp(bottom_reg, top_reg);
-    __ brx(Assembler::lessUnsigned, false, Assembler::pt, L_ok);
-    __ delayed()->nop();
+    __ cmp_and_brx_short(bottom_reg, top_reg, Assembler::lessUnsigned, Assembler::pt, L_ok);
     __ BIND(L_bad);
     __ stop("valid bounds (copy down)");
     __ BIND(L_ok);
   }
 #endif
-  __ cmp(bottom_reg, top_reg);
-  __ brx(Assembler::greaterEqualUnsigned, false, Assembler::pn, L_break);
-  __ delayed()->nop();
+  __ cmp_and_brx_short(bottom_reg, top_reg, Assembler::greaterEqualUnsigned, Assembler::pn, L_break);
   // work bottom up to top, copying contiguous data downwards
   // In pseudo-code:
   //   while (bottom < top) *(bottom - distance) = *(bottom + 0), bottom++;
@@ -970,9 +928,7 @@ void MethodHandles::move_arg_slots_down(MacroAssembler* _masm,
   __ ld_ptr(           Address(bottom_reg, 0     ), temp2_reg);
   __ st_ptr(temp2_reg, Address(bottom_reg, offset)           );
   __ add(bottom_reg, wordSize, bottom_reg);
-  __ cmp(bottom_reg, top_reg);
-  __ brx(Assembler::lessUnsigned, false, Assembler::pt, L_loop);
-  __ delayed()->nop();  // FILLME
+  __ cmp_and_brx_short(bottom_reg, top_reg, Assembler::lessUnsigned, Assembler::pt, L_loop);
   assert(Interpreter::stackElementSize == wordSize, "else change loop");
   __ BIND(L_break);
   BLOCK_COMMENT("} move_arg_slots_down");
@@ -1170,7 +1126,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
 
       adjust_SP_and_Gargs_down_by_slots(_masm, 3, noreg, noreg);
 
-      __ st_ptr(O0_code,     __ argument_address(constant(2), noreg, 0));
+      __ st    (O0_code,     __ argument_address(constant(2), noreg, 0));
       __ st_ptr(O1_actual,   __ argument_address(constant(1), noreg, 0));
       __ st_ptr(O2_required, __ argument_address(constant(0), noreg, 0));
       jump_from_method_handle(_masm, G5_method, O1_scratch, O2_scratch);
@@ -1306,6 +1262,15 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
     }
     break;
 
+  case _adapter_opt_profiling:
+    if (java_lang_invoke_CountingMethodHandle::vmcount_offset_in_bytes() != 0) {
+      Address G3_mh_vmcount(G3_method_handle, java_lang_invoke_CountingMethodHandle::vmcount_offset_in_bytes());
+      __ ld(G3_mh_vmcount, O1_scratch);
+      __ add(O1_scratch, 1, O1_scratch);
+      __ st(O1_scratch, G3_mh_vmcount);
+    }
+    // fall through
+
   case _adapter_retype_only:
   case _adapter_retype_raw:
     // Immediately jump to the next MH layer:
@@ -1329,9 +1294,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
 
       Label L_done;
       __ ld_ptr(vmarg, O2_scratch);
-      __ tst(O2_scratch);
-      __ brx(Assembler::zero, false, Assembler::pn, L_done);  // No cast if null.
-      __ delayed()->nop();
+      __ br_null_short(O2_scratch, Assembler::pn, L_done);  // No cast if null.
       __ load_klass(O2_scratch, O2_scratch);
 
       // Live at this point:
@@ -1436,8 +1399,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
 
       // this path is taken for int->byte, int->short
       __ sra(O1_scratch, G5_vminfo, O1_scratch);
-      __ ba(false, done);
-      __ delayed()->nop();
+      __ ba_short(done);
 
       __ bind(zero_extend);
       // this is taken for int->char
@@ -1860,9 +1822,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
           BLOCK_COMMENT("verify collect_count_constant {");
           __ load_method_handle_vmslots(O3_scratch, G3_method_handle, O2_scratch);
           Label L_count_ok;
-          __ cmp(O3_scratch, collect_count_constant);
-          __ br(Assembler::equal, false, Assembler::pt, L_count_ok);
-          __ delayed()->nop();
+          __ cmp_and_br_short(O3_scratch, collect_count_constant, Assembler::equal, Assembler::pt, L_count_ok);
           __ stop("bad vminfo in AMH.conv");
           __ BIND(L_count_ok);
           BLOCK_COMMENT("} verify collect_count_constant");
@@ -1909,9 +1869,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
           BLOCK_COMMENT("verify dest_slot_constant {");
           extract_conversion_vminfo(_masm, RicochetFrame::L5_conversion, O3_scratch);
           Label L_vminfo_ok;
-          __ cmp(O3_scratch, dest_slot_constant);
-          __ br(Assembler::equal, false, Assembler::pt, L_vminfo_ok);
-          __ delayed()->nop();
+          __ cmp_and_br_short(O3_scratch, dest_slot_constant, Assembler::equal, Assembler::pt, L_vminfo_ok);
           __ stop("bad vminfo in AMH.conv");
           __ BIND(L_vminfo_ok);
           BLOCK_COMMENT("} verify dest_slot_constant");
@@ -1951,14 +1909,10 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
       // If there are variable parameters, use dynamic checks to skip around the whole mess.
       Label L_done;
       if (keep3_count.is_register()) {
-        __ tst(keep3_count.as_register());
-        __ br(Assembler::zero, false, Assembler::pn, L_done);
-        __ delayed()->nop();
+        __ cmp_and_br_short(keep3_count.as_register(), 0, Assembler::equal, Assembler::pn, L_done);
       }
       if (close_count.is_register()) {
-        __ cmp(close_count.as_register(), open_count);
-        __ br(Assembler::equal, false, Assembler::pn, L_done);
-        __ delayed()->nop();
+        __ cmp_and_br_short(close_count.as_register(), open_count, Assembler::equal, Assembler::pn, L_done);
       }
 
       if (move_keep3 && fix_arg_base) {
@@ -1999,8 +1953,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
         }
 
         if (emit_guard) {
-          __ ba(false, L_done);  // assumes emit_move_up is true also
-          __ delayed()->nop();
+          __ ba_short(L_done);  // assumes emit_move_up is true also
           __ BIND(L_move_up);
         }
 
@@ -2133,8 +2086,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
 
 #ifdef ASSERT
       { Label L_ok;
-        __ br_notnull(O7_temp, false, Assembler::pt, L_ok);
-        __ delayed()->nop();
+        __ br_notnull_short(O7_temp, Assembler::pt, L_ok);
         __ stop("bad method handle return");
         __ BIND(L_ok);
       }
@@ -2192,11 +2144,10 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
         Label L_skip;
         if (length_constant < 0) {
           load_conversion_vminfo(_masm, G3_amh_conversion, O3_scratch);
-          __ br_zero(Assembler::notZero, false, Assembler::pn, O3_scratch, L_skip);
-          __ delayed()->nop();
+          __ cmp_zero_and_br(Assembler::notZero, O3_scratch, L_skip);
+          __ delayed()->nop(); // to avoid back-to-back cbcond instructions
         }
-        __ br_null(O1_array, false, Assembler::pn, L_array_is_empty);
-        __ delayed()->nop();
+        __ br_null_short(O1_array, Assembler::pn, L_array_is_empty);
         __ BIND(L_skip);
       }
       __ null_check(O1_array, oopDesc::klass_offset_in_bytes());
@@ -2210,8 +2161,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
       Label L_ok_array_klass, L_bad_array_klass, L_bad_array_length;
       __ check_klass_subtype(O2_array_klass, O3_klass, O4_scratch, G5_scratch, L_ok_array_klass);
       // If we get here, the type check failed!
-      __ ba(false, L_bad_array_klass);
-      __ delayed()->nop();
+      __ ba_short(L_bad_array_klass);
       __ BIND(L_ok_array_klass);
 
       // Check length.
@@ -2247,8 +2197,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
         __ BIND(L_array_is_empty);
         remove_arg_slots(_masm, -stack_move_unit() * array_slots,
                          O0_argslot, O1_scratch, O2_scratch, O3_scratch);
-        __ ba(false, L_args_done);  // no spreading to do
-        __ delayed()->nop();
+        __ ba_short(L_args_done);  // no spreading to do
         __ BIND(L_insert_arg_space);
         // come here in the usual case, stack_move < 0 (2 or more spread arguments)
         // Live: O1_array, O2_argslot_limit, O3_stack_move
@@ -2289,9 +2238,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
                        Address(O1_source, 0), Address(O4_fill_ptr, 0),
                        O2_scratch);  // must be an even register for !_LP64 long moves (uses O2/O3)
         __ add(O1_source, type2aelembytes(elem_type), O1_source);
-        __ cmp(O4_fill_ptr, O0_argslot);
-        __ brx(Assembler::greaterUnsigned, false, Assembler::pt, L_loop);
-        __ delayed()->nop();  // FILLME
+        __ cmp_and_brx_short(O4_fill_ptr, O0_argslot, Assembler::greaterUnsigned, Assembler::pt, L_loop);
       } else if (length_constant == 0) {
         // nothing to copy
       } else {
diff --git a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp
index 277ff70..cb9e429 100644
--- a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp
@@ -600,7 +600,7 @@ class AdapterGenerator {
 void AdapterGenerator::patch_callers_callsite() {
   Label L;
   __ ld_ptr(G5_method, in_bytes(methodOopDesc::code_offset()), G3_scratch);
-  __ br_null(G3_scratch, false, __ pt, L);
+  __ br_null(G3_scratch, false, Assembler::pt, L);
   // Schedule the branch target address early.
   __ delayed()->ld_ptr(G5_method, in_bytes(methodOopDesc::interpreter_entry_offset()), G3_scratch);
   // Call into the VM to patch the caller, then jump to compiled callee
@@ -1127,8 +1127,7 @@ void AdapterGenerator::gen_i2c_adapter(
       Label loop;
       __ bind(loop);
       __ sub(L0, 1, L0);
-      __ br_null(L0, false, Assembler::pt, loop);
-      __ delayed()->nop();
+      __ br_null_short(L0, Assembler::pt, loop);
 
       __ restore();
     }
@@ -1202,7 +1201,7 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm
     // the call site corrected.
     __ ld_ptr(G5_method, in_bytes(methodOopDesc::code_offset()), G3_scratch);
     __ bind(ok2);
-    __ br_null(G3_scratch, false, __ pt, skip_fixup);
+    __ br_null(G3_scratch, false, Assembler::pt, skip_fixup);
     __ delayed()->ld_ptr(G5_method, in_bytes(methodOopDesc::interpreter_entry_offset()), G3_scratch);
     __ jump_to(ic_miss, G3_scratch);
     __ delayed()->nop();
@@ -1779,9 +1778,7 @@ nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
     AddressLiteral ic_miss(SharedRuntime::get_ic_miss_stub());
     __ verify_oop(O0);
     __ load_klass(O0, temp_reg);
-    __ cmp(temp_reg, G5_inline_cache_reg);
-    __ brx(Assembler::equal, true, Assembler::pt, L);
-    __ delayed()->nop();
+    __ cmp_and_brx_short(temp_reg, G5_inline_cache_reg, Assembler::equal, Assembler::pt, L);
 
     __ jump_to(ic_miss, temp_reg);
     __ delayed()->nop();
@@ -2182,8 +2179,7 @@ nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
 #ifdef ASSERT
     { Label L;
     __ ld_ptr(G2_thread, in_bytes(Thread::pending_exception_offset()), O0);
-    __ br_null(O0, false, Assembler::pt, L);
-    __ delayed()->nop();
+    __ br_null_short(O0, Assembler::pt, L);
     __ stop("no pending exception allowed on exit from IR::monitorenter");
     __ bind(L);
     }
@@ -2298,9 +2294,7 @@ nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
     Address suspend_state(G2_thread, JavaThread::suspend_flags_offset());
     __ br(Assembler::notEqual, false, Assembler::pn, L);
     __ delayed()->ld(suspend_state, G3_scratch);
-    __ cmp(G3_scratch, 0);
-    __ br(Assembler::equal, false, Assembler::pt, no_block);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G3_scratch, 0, Assembler::equal, Assembler::pt, no_block);
     __ bind(L);
 
     // Block.  Save any potential method result value before the operation and
@@ -2328,9 +2322,7 @@ nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
 
   Label no_reguard;
   __ ld(G2_thread, JavaThread::stack_guard_state_offset(), G3_scratch);
-  __ cmp(G3_scratch, JavaThread::stack_guard_yellow_disabled);
-  __ br(Assembler::notEqual, false, Assembler::pt, no_reguard);
-  __ delayed()->nop();
+  __ cmp_and_br_short(G3_scratch, JavaThread::stack_guard_yellow_disabled, Assembler::notEqual, Assembler::pt, no_reguard);
 
     save_native_result(masm, ret_type, stack_slots);
   __ call(CAST_FROM_FN_PTR(address, SharedRuntime::reguard_yellow_pages));
@@ -2382,8 +2374,7 @@ nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
 #ifdef ASSERT
     { Label L;
     __ ld_ptr(G2_thread, in_bytes(Thread::pending_exception_offset()), O0);
-    __ br_null(O0, false, Assembler::pt, L);
-    __ delayed()->nop();
+    __ br_null_short(O0, Assembler::pt, L);
     __ stop("no pending exception allowed on exit from IR::monitorexit");
     __ bind(L);
     }
@@ -2639,9 +2630,7 @@ nmethod *SharedRuntime::generate_dtrace_nmethod(
     AddressLiteral ic_miss(SharedRuntime::get_ic_miss_stub());
     __ verify_oop(O0);
     __ ld_ptr(O0, oopDesc::klass_offset_in_bytes(), temp_reg);
-    __ cmp(temp_reg, G5_inline_cache_reg);
-    __ brx(Assembler::equal, true, Assembler::pt, L);
-    __ delayed()->nop();
+    __ cmp_and_brx_short(temp_reg, G5_inline_cache_reg, Assembler::equal, Assembler::pt, L);
 
     __ jump_to(ic_miss, temp_reg);
     __ delayed()->nop();
@@ -3143,8 +3132,7 @@ static void make_new_frames(MacroAssembler* masm, bool deopt) {
 
   gen_new_frame(masm, deopt);        // allocate an interpreter frame
 
-  __ tst(O4array_size);
-  __ br(Assembler::notZero, false, Assembler::pn, loop);
+  __ cmp_zero_and_br(Assembler::notZero, O4array_size, loop);
   __ delayed()->add(O3array, wordSize, O3array);
   __ ld_ptr(G3pcs, 0, O7);                      // load final frame new pc
 
@@ -3221,7 +3209,7 @@ void SharedRuntime::generate_deopt_blob() {
   // pc is now in O7. Return values are still in the expected places
 
   map = RegisterSaver::save_live_registers(masm, 0, &frame_size_words);
-  __ ba(false, cont);
+  __ ba(cont);
   __ delayed()->mov(Deoptimization::Unpack_deopt, L0deopt_mode);
 
   int exception_offset = __ offset() - start;
@@ -3256,8 +3244,7 @@ void SharedRuntime::generate_deopt_blob() {
     // verify that there is really an exception oop in exception_oop
     Label has_exception;
     __ ld_ptr(G2_thread, JavaThread::exception_oop_offset(), Oexception);
-    __ br_notnull(Oexception, false, Assembler::pt, has_exception);
-    __ delayed()-> nop();
+    __ br_notnull_short(Oexception, Assembler::pt, has_exception);
     __ stop("no exception in thread");
     __ bind(has_exception);
 
@@ -3265,14 +3252,13 @@ void SharedRuntime::generate_deopt_blob() {
     Label no_pending_exception;
     Address exception_addr(G2_thread, Thread::pending_exception_offset());
     __ ld_ptr(exception_addr, Oexception);
-    __ br_null(Oexception, false, Assembler::pt, no_pending_exception);
-    __ delayed()->nop();
+    __ br_null_short(Oexception, Assembler::pt, no_pending_exception);
     __ stop("must not have pending exception here");
     __ bind(no_pending_exception);
   }
 #endif
 
-  __ ba(false, cont);
+  __ ba(cont);
   __ delayed()->mov(Deoptimization::Unpack_exception, L0deopt_mode);;
 
   //
@@ -3313,9 +3299,7 @@ void SharedRuntime::generate_deopt_blob() {
   RegisterSaver::restore_result_registers(masm);
 
   Label noException;
-  __ cmp(G4deopt_mode, Deoptimization::Unpack_exception);   // Was exception pending?
-  __ br(Assembler::notEqual, false, Assembler::pt, noException);
-  __ delayed()->nop();
+  __ cmp_and_br_short(G4deopt_mode, Deoptimization::Unpack_exception, Assembler::notEqual, Assembler::pt, noException);
 
   // Move the pending exception from exception_oop to Oexception so
   // the pending exception will be picked up the interpreter.
@@ -3359,9 +3343,7 @@ void SharedRuntime::generate_deopt_blob() {
   // In 32 bit, C2 returns longs in G1 so restore the saved G1 into
   // I0/I1 if the return value is long.
   Label not_long;
-  __ cmp(O0,T_LONG);
-  __ br(Assembler::notEqual, false, Assembler::pt, not_long);
-  __ delayed()->nop();
+  __ cmp_and_br_short(O0,T_LONG, Assembler::notEqual, Assembler::pt, not_long);
   __ ldd(saved_Greturn1_addr,I0);
   __ bind(not_long);
 #endif
@@ -3534,9 +3516,7 @@ SafepointBlob* SharedRuntime::generate_handler_blob(address call_ptr, bool cause
   Label pending;
 
   __ ld_ptr(G2_thread, in_bytes(Thread::pending_exception_offset()), O1);
-  __ tst(O1);
-  __ brx(Assembler::notEqual, true, Assembler::pn, pending);
-  __ delayed()->nop();
+  __ br_notnull_short(O1, Assembler::pn, pending);
 
   RegisterSaver::restore_live_registers(masm);
 
@@ -3623,9 +3603,7 @@ RuntimeStub* SharedRuntime::generate_resolve_blob(address destination, const cha
   Label pending;
 
   __ ld_ptr(G2_thread, in_bytes(Thread::pending_exception_offset()), O1);
-  __ tst(O1);
-  __ brx(Assembler::notEqual, true, Assembler::pn, pending);
-  __ delayed()->nop();
+  __ br_notnull_short(O1, Assembler::pn, pending);
 
   // get the returned methodOop
 
diff --git a/hotspot/src/cpu/sparc/vm/sparc.ad b/hotspot/src/cpu/sparc/vm/sparc.ad
index ff28539..d7bf2d8 100644
--- a/hotspot/src/cpu/sparc/vm/sparc.ad
+++ b/hotspot/src/cpu/sparc/vm/sparc.ad
@@ -460,6 +460,8 @@ source_hpp %{
 // Must be visible to the DFA in dfa_sparc.cpp
 extern bool can_branch_register( Node *bol, Node *cmp );
 
+extern bool use_block_zeroing(Node* count);
+
 // Macros to extract hi & lo halves from a long pair.
 // G0 is not part of any long pair, so assert on that.
 // Prevents accidentally using G1 instead of G0.
@@ -471,9 +473,6 @@ extern bool can_branch_register( Node *bol, Node *cmp );
 source %{
 #define __ _masm.
 
-// Block initializing store
-#define ASI_BLK_INIT_QUAD_LDD_P    0xE2
-
 // tertiary op of a LoadP or StoreP encoding
 #define REGP_OP true
 
@@ -524,6 +523,12 @@ bool can_branch_register( Node *bol, Node *cmp ) {
   return false;
 }
 
+bool use_block_zeroing(Node* count) {
+  // Use BIS for zeroing if count is not constant
+  // or it is >= BlockZeroingLowLimit.
+  return UseBlockZeroing && (count->find_intptr_t_con(BlockZeroingLowLimit) >= BlockZeroingLowLimit);
+}
+
 // ****************************************************************************
 
 // REQUIRED FUNCTIONALITY
@@ -835,6 +840,7 @@ void emit_form3_mem_reg(CodeBuffer &cbuf, const MachNode* n, int primary, int te
           !(n->ideal_Opcode()==Op_ConvI2D   && ld_op==Op_LoadF) &&
           !(n->ideal_Opcode()==Op_PrefetchRead  && ld_op==Op_LoadI) &&
           !(n->ideal_Opcode()==Op_PrefetchWrite && ld_op==Op_LoadI) &&
+          !(n->ideal_Opcode()==Op_PrefetchAllocation && ld_op==Op_LoadI) &&
           !(n->ideal_Opcode()==Op_Load2I    && ld_op==Op_LoadD) &&
           !(n->ideal_Opcode()==Op_Load4C    && ld_op==Op_LoadD) &&
           !(n->ideal_Opcode()==Op_Load4S    && ld_op==Op_LoadD) &&
@@ -1693,7 +1699,6 @@ void MachUEPNode::format( PhaseRegAlloc *ra_, outputStream *st ) const {
 
 void MachUEPNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
   MacroAssembler _masm(&cbuf);
-  Label L;
   Register G5_ic_reg  = reg_to_register_object(Matcher::inline_cache_reg_encode());
   Register temp_reg   = G3;
   assert( G5_ic_reg != temp_reg, "conflicting registers" );
@@ -1835,8 +1840,10 @@ const bool Matcher::convL2FSupported(void) {
 //
 // NOTE: If the platform does not provide any short branch variants, then
 //       this method should return false for offset 0.
-bool Matcher::is_short_branch_offset(int rule, int offset) {
-  return false;
+bool Matcher::is_short_branch_offset(int rule, int br_size, int offset) {
+  // The passed offset is relative to address of the branch.
+  // Don't need to adjust the offset.
+  return UseCBCond && Assembler::is_simm(offset, 12);
 }
 
 const bool Matcher::isSimpleConstant64(jlong value) {
@@ -2315,60 +2322,23 @@ encode %{
     __ delayed()->nop();
   %}
 
-  enc_class enc_bp( Label labl, cmpOp cmp, flagsReg cc ) %{
+  enc_class enc_bp( label labl, cmpOp cmp, flagsReg cc ) %{
     MacroAssembler _masm(&cbuf);
-    Label &L = *($labl$$label);
+    Label* L = $labl$$label;
     Assembler::Predict predict_taken =
-      cbuf.is_backward_branch(L) ? Assembler::pt : Assembler::pn;
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
 
-    __ bp( (Assembler::Condition)($cmp$$cmpcode), false, Assembler::icc, predict_taken, L);
+    __ bp( (Assembler::Condition)($cmp$$cmpcode), false, Assembler::icc, predict_taken, *L);
     __ delayed()->nop();
   %}
 
-  enc_class enc_bpl( Label labl, cmpOp cmp, flagsRegL cc ) %{
+  enc_class enc_bpr( label labl, cmpOp_reg cmp, iRegI op1 ) %{
     MacroAssembler _masm(&cbuf);
-    Label &L = *($labl$$label);
+    Label* L = $labl$$label;
     Assembler::Predict predict_taken =
-      cbuf.is_backward_branch(L) ? Assembler::pt : Assembler::pn;
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
 
-    __ bp( (Assembler::Condition)($cmp$$cmpcode), false, Assembler::xcc, predict_taken, L);
-    __ delayed()->nop();
-  %}
-
-  enc_class enc_bpx( Label labl, cmpOp cmp, flagsRegP cc ) %{
-    MacroAssembler _masm(&cbuf);
-    Label &L = *($labl$$label);
-    Assembler::Predict predict_taken =
-      cbuf.is_backward_branch(L) ? Assembler::pt : Assembler::pn;
-
-    __ bp( (Assembler::Condition)($cmp$$cmpcode), false, Assembler::ptr_cc, predict_taken, L);
-    __ delayed()->nop();
-  %}
-
-  enc_class enc_fbp( Label labl, cmpOpF cmp, flagsRegF cc ) %{
-    MacroAssembler _masm(&cbuf);
-    Label &L = *($labl$$label);
-    Assembler::Predict predict_taken =
-      cbuf.is_backward_branch(L) ? Assembler::pt : Assembler::pn;
-
-    __ fbp( (Assembler::Condition)($cmp$$cmpcode), false, (Assembler::CC)($cc$$reg), predict_taken, L);
-    __ delayed()->nop();
-  %}
-
-  enc_class enc_ba( Label labl ) %{
-    MacroAssembler _masm(&cbuf);
-    Label &L = *($labl$$label);
-    __ ba(false, L);
-    __ delayed()->nop();
-  %}
-
-  enc_class enc_bpr( Label labl, cmpOp_reg cmp, iRegI op1 ) %{
-    MacroAssembler _masm(&cbuf);
-    Label &L = *$labl$$label;
-    Assembler::Predict predict_taken =
-      cbuf.is_backward_branch(L) ? Assembler::pt : Assembler::pn;
-
-    __ bpr( (Assembler::RCondition)($cmp$$cmpcode), false, predict_taken, as_Register($op1$$reg), L);
+    __ bpr( (Assembler::RCondition)($cmp$$cmpcode), false, predict_taken, as_Register($op1$$reg), *L);
     __ delayed()->nop();
   %}
 
@@ -2849,25 +2819,6 @@ enc_class Fast_Unlock(iRegP oop, iRegP box, o7RegP scratch, iRegP scratch2) %{
     __ float_cmp( $primary, -1, Fsrc1, Fsrc2, Rdst);
   %}
 
-  // Compiler ensures base is doubleword aligned and cnt is count of doublewords
-  enc_class enc_Clear_Array(iRegX cnt, iRegP base, iRegX temp) %{
-    MacroAssembler _masm(&cbuf);
-    Register    nof_bytes_arg   = reg_to_register_object($cnt$$reg);
-    Register    nof_bytes_tmp    = reg_to_register_object($temp$$reg);
-    Register    base_pointer_arg = reg_to_register_object($base$$reg);
-
-    Label loop;
-    __ mov(nof_bytes_arg, nof_bytes_tmp);
-
-    // Loop and clear, walking backwards through the array.
-    // nof_bytes_tmp (if >0) is always the number of bytes to zero
-    __ bind(loop);
-    __ deccc(nof_bytes_tmp, 8);
-    __ br(Assembler::greaterEqual, true, Assembler::pt, loop);
-    __ delayed()-> stx(G0, base_pointer_arg, nof_bytes_tmp);
-    // %%%% this mini-loop must not cross a cache boundary!
-  %}
-
 
   enc_class enc_String_Compare(o0RegP str1, o1RegP str2, g3RegI cnt1, g4RegI cnt2, notemp_iRegI result) %{
     Label Ldone, Lloop;
@@ -2986,7 +2937,7 @@ enc_class enc_String_Equals(o0RegP str1, o1RegP str2, g3RegI cnt, notemp_iRegI r
     __ brx(Assembler::equal, true, Assembler::pn, Ldone);
     __ delayed()->add(G0, 1, result_reg);
 
-    __ br_on_reg_cond(Assembler::rc_z, true, Assembler::pn, cnt_reg, Ldone);
+    __ cmp_zero_and_br(Assembler::zero, cnt_reg, Ldone, true, Assembler::pn);
     __ delayed()->add(G0, 1, result_reg); // count == 0
 
     //rename registers
@@ -3006,7 +2957,7 @@ enc_class enc_String_Equals(o0RegP str1, o1RegP str2, g3RegI cnt, notemp_iRegI r
     // Compare char[] arrays aligned to 4 bytes.
     __ char_arrays_equals(str1_reg, str2_reg, limit_reg, result_reg,
                           chr1_reg, chr2_reg, Ldone);
-    __ ba(false,Ldone);
+    __ ba(Ldone);
     __ delayed()->add(G0, 1, result_reg);
 
     // char by char compare
@@ -3065,7 +3016,7 @@ enc_class enc_Array_Equals(o0RegP ary1, o1RegP ary2, g3RegP tmp1, notemp_iRegI r
     __ br(Assembler::notEqual, true, Assembler::pn, Ldone);
     __ delayed()->mov(G0, result_reg);     // not equal
 
-    __ br_on_reg_cond(Assembler::rc_z, true, Assembler::pn, tmp1_reg, Ldone);
+    __ cmp_zero_and_br(Assembler::zero, tmp1_reg, Ldone, true, Assembler::pn);
     __ delayed()->add(G0, 1, result_reg); // zero-length arrays are equal
 
     // load array addresses
@@ -3352,10 +3303,10 @@ op_attrib op_cost(1);          // Required cost attribute
 
 //----------Instruction Attributes---------------------------------------------
 ins_attrib ins_cost(DEFAULT_COST); // Required cost attribute
-ins_attrib ins_size(32);       // Required size attribute (in bits)
-ins_attrib ins_pc_relative(0); // Required PC Relative flag
-ins_attrib ins_short_branch(0); // Required flag: is this instruction a
-                                // non-matching short branch variant of some
+ins_attrib ins_size(32);           // Required size attribute (in bits)
+ins_attrib ins_avoid_back_to_back(0); // instruction should not be generated back to back
+ins_attrib ins_short_branch(0);    // Required flag: is this instruction a
+                                   // non-matching short branch variant of some
                                                             // long branch?
 
 //----------OPERANDS-----------------------------------------------------------
@@ -3441,6 +3392,15 @@ operand immI11() %{
   interface(CONST_INTER);
 %}
 
+// Integer Immediate: 5-bit
+operand immI5() %{
+  predicate(Assembler::is_simm(n->get_int(), 5));
+  match(ConI);
+  op_cost(0);
+  format %{ %}
+  interface(CONST_INTER);
+%}
+
 // Integer Immediate: 0-bit
 operand immI0() %{
   predicate(n->get_int() == 0);
@@ -3664,6 +3624,15 @@ operand immL0() %{
   interface(CONST_INTER);
 %}
 
+// Integer Immediate: 5-bit
+operand immL5() %{
+  predicate(n->get_long() == (int)n->get_long() && Assembler::is_simm((int)n->get_long(), 5));
+  match(ConL);
+  op_cost(0);
+  format %{ %}
+  interface(CONST_INTER);
+%}
+
 // Long Immediate: 13-bit
 operand immL13() %{
   predicate((-4096L < n->get_long()) && (n->get_long() <= 4095L));
@@ -5196,6 +5165,42 @@ pipe_class br_reg(Universe br, cmpOp cmp, iRegI op1, label labl) %{
     MS  : R;
 %}
 
+// Compare and branch
+pipe_class cmp_br_reg_reg(Universe br, cmpOp cmp, iRegI src1, iRegI src2, label labl, flagsReg cr) %{
+    instruction_count(2); has_delay_slot;
+    cr    : E(write);
+    src1  : R(read);
+    src2  : R(read);
+    IALU  : R;
+    BR    : R;
+%}
+
+// Compare and branch
+pipe_class cmp_br_reg_imm(Universe br, cmpOp cmp, iRegI src1, immI13 src2, label labl, flagsReg cr) %{
+    instruction_count(2); has_delay_slot;
+    cr    : E(write);
+    src1  : R(read);
+    IALU  : R;
+    BR    : R;
+%}
+
+// Compare and branch using cbcond
+pipe_class cbcond_reg_reg(Universe br, cmpOp cmp, iRegI src1, iRegI src2, label labl) %{
+    single_instruction;
+    src1  : E(read);
+    src2  : E(read);
+    IALU  : R;
+    BR    : R;
+%}
+
+// Compare and branch using cbcond
+pipe_class cbcond_reg_imm(Universe br, cmpOp cmp, iRegI src1, immI5 src2, label labl) %{
+    single_instruction;
+    src1  : E(read);
+    IALU  : R;
+    BR    : R;
+%}
+
 pipe_class br_fcc(Universe br, cmpOpF cc, flagsReg cr, label labl) %{
     single_instruction_with_delay_slot;
     cr    : E(read);
@@ -6251,6 +6256,7 @@ instruct loadConD(regD dst, immD con, o7RegI tmp) %{
 instruct prefetchr( memory mem ) %{
   match( PrefetchRead mem );
   ins_cost(MEMORY_REF_COST);
+  size(4);
 
   format %{ "PREFETCH $mem,0\t! Prefetch read-many" %}
   opcode(Assembler::prefetch_op3);
@@ -6259,9 +6265,9 @@ instruct prefetchr( memory mem ) %{
 %}
 
 instruct prefetchw( memory mem ) %{
-  predicate(AllocatePrefetchStyle != 3 );
   match( PrefetchWrite mem );
   ins_cost(MEMORY_REF_COST);
+  size(4);
 
   format %{ "PREFETCH $mem,2\t! Prefetch write-many (and read)" %}
   opcode(Assembler::prefetch_op3);
@@ -6269,24 +6275,62 @@ instruct prefetchw( memory mem ) %{
   ins_pipe(iload_mem);
 %}
 
-// Use BIS instruction to prefetch.
-instruct prefetchw_bis( memory mem ) %{
-  predicate(AllocatePrefetchStyle == 3);
-  match( PrefetchWrite mem );
+// Prefetch instructions for allocation.
+
+instruct prefetchAlloc( memory mem ) %{
+  predicate(AllocatePrefetchInstr == 0);
+  match( PrefetchAllocation mem );
+  ins_cost(MEMORY_REF_COST);
+  size(4);
+
+  format %{ "PREFETCH $mem,2\t! Prefetch allocation" %}
+  opcode(Assembler::prefetch_op3);
+  ins_encode( form3_mem_prefetch_write( mem ) );
+  ins_pipe(iload_mem);
+%}
+
+// Use BIS instruction to prefetch for allocation.
+// Could fault, need space at the end of TLAB.
+instruct prefetchAlloc_bis( iRegP dst ) %{
+  predicate(AllocatePrefetchInstr == 1);
+  match( PrefetchAllocation dst );
   ins_cost(MEMORY_REF_COST);
+  size(4);
 
-  format %{ "STXA   G0,$mem\t! // Block initializing store" %}
+  format %{ "STXA   [$dst]\t! // Prefetch allocation using BIS" %}
   ins_encode %{
-     Register base = as_Register($mem$$base);
-     int disp = $mem$$disp;
-     if (disp != 0) {
-       __ add(base, AllocatePrefetchStepSize, base);
-     }
-     __ stxa(G0, base, G0, ASI_BLK_INIT_QUAD_LDD_P);
+    __ stxa(G0, $dst$$Register, G0, Assembler::ASI_ST_BLKINIT_PRIMARY);
   %}
   ins_pipe(istore_mem_reg);
 %}
 
+// Next code is used for finding next cache line address to prefetch.
+#ifndef _LP64
+instruct cacheLineAdr( iRegP dst, iRegP src, immI13 mask ) %{
+  match(Set dst (CastX2P (AndI (CastP2X src) mask)));
+  ins_cost(DEFAULT_COST);
+  size(4);
+
+  format %{ "AND    $src,$mask,$dst\t! next cache line address" %}
+  ins_encode %{
+    __ and3($src$$Register, $mask$$constant, $dst$$Register);
+  %}
+  ins_pipe(ialu_reg_imm);
+%}
+#else
+instruct cacheLineAdr( iRegP dst, iRegP src, immL13 mask ) %{
+  match(Set dst (CastX2P (AndL (CastP2X src) mask)));
+  ins_cost(DEFAULT_COST);
+  size(4);
+
+  format %{ "AND    $src,$mask,$dst\t! next cache line address" %}
+  ins_encode %{
+    __ and3($src$$Register, $mask$$constant, $dst$$Register);
+  %}
+  ins_pipe(ialu_reg_imm);
+%}
+#endif
+
 //----------Store Instructions-------------------------------------------------
 // Store Byte
 instruct storeB(memory mem, iRegI src) %{
@@ -6644,8 +6688,7 @@ instruct membar_acquire() %{
 %}
 
 instruct membar_acquire_lock() %{
-  match(MemBarAcquire);
-  predicate(Matcher::prior_fast_lock(n));
+  match(MemBarAcquireLock);
   ins_cost(0);
 
   size(0);
@@ -6665,8 +6708,7 @@ instruct membar_release() %{
 %}
 
 instruct membar_release_lock() %{
-  match(MemBarRelease);
-  predicate(Matcher::post_fast_unlock(n));
+  match(MemBarReleaseLock);
   ins_cost(0);
 
   size(0);
@@ -9220,7 +9262,6 @@ instruct jumpXtnd(iRegX switch_val, o7RegI table) %{
     __ jmp(label_reg, G0);
     __ delayed()->nop();
   %}
-  ins_pc_relative(1);
   ins_pipe(ialu_reg_reg);
 %}
 
@@ -9232,13 +9273,33 @@ instruct branch(label labl) %{
   size(8);
   ins_cost(BRANCH_COST);
   format %{ "BA     $labl" %}
-  // Prim = bits 24-22, Secnd = bits 31-30, Tert = cond
-  opcode(Assembler::br_op2, Assembler::branch_op, Assembler::always);
-  ins_encode( enc_ba( labl ) );
-  ins_pc_relative(1);
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ ba(*L);
+    __ delayed()->nop();
+  %}
   ins_pipe(br);
 %}
 
+// Direct Branch, short with no delay slot
+instruct branch_short(label labl) %{
+  match(Goto);
+  predicate(UseCBCond);
+  effect(USE labl);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+  format %{ "BA     $labl\t! short branch" %}
+  ins_encode %{ 
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ ba_short(*L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_imm);
+%}
+
 // Conditional Direct Branch
 instruct branchCon(cmpOp cmp, flagsReg icc, label labl) %{
   match(If cmp icc);
@@ -9249,61 +9310,17 @@ instruct branchCon(cmpOp cmp, flagsReg icc, label labl) %{
   format %{ "BP$cmp   $icc,$labl" %}
   // Prim = bits 24-22, Secnd = bits 31-30
   ins_encode( enc_bp( labl, cmp, icc ) );
-  ins_pc_relative(1);
   ins_pipe(br_cc);
 %}
 
-// Branch-on-register tests all 64 bits.  We assume that values
-// in 64-bit registers always remains zero or sign extended
-// unless our code munges the high bits.  Interrupts can chop
-// the high order bits to zero or sign at any time.
-instruct branchCon_regI(cmpOp_reg cmp, iRegI op1, immI0 zero, label labl) %{
-  match(If cmp (CmpI op1 zero));
-  predicate(can_branch_register(_kids[0]->_leaf, _kids[1]->_leaf));
-  effect(USE labl);
-
-  size(8);
-  ins_cost(BRANCH_COST);
-  format %{ "BR$cmp   $op1,$labl" %}
-  ins_encode( enc_bpr( labl, cmp, op1 ) );
-  ins_pc_relative(1);
-  ins_pipe(br_reg);
-%}
-
-instruct branchCon_regP(cmpOp_reg cmp, iRegP op1, immP0 null, label labl) %{
-  match(If cmp (CmpP op1 null));
-  predicate(can_branch_register(_kids[0]->_leaf, _kids[1]->_leaf));
-  effect(USE labl);
-
-  size(8);
-  ins_cost(BRANCH_COST);
-  format %{ "BR$cmp   $op1,$labl" %}
-  ins_encode( enc_bpr( labl, cmp, op1 ) );
-  ins_pc_relative(1);
-  ins_pipe(br_reg);
-%}
-
-instruct branchCon_regL(cmpOp_reg cmp, iRegL op1, immL0 zero, label labl) %{
-  match(If cmp (CmpL op1 zero));
-  predicate(can_branch_register(_kids[0]->_leaf, _kids[1]->_leaf));
-  effect(USE labl);
-
-  size(8);
-  ins_cost(BRANCH_COST);
-  format %{ "BR$cmp   $op1,$labl" %}
-  ins_encode( enc_bpr( labl, cmp, op1 ) );
-  ins_pc_relative(1);
-  ins_pipe(br_reg);
-%}
-
 instruct branchConU(cmpOpU cmp, flagsRegU icc, label labl) %{
   match(If cmp icc);
   effect(USE labl);
 
+  ins_cost(BRANCH_COST);
   format %{ "BP$cmp  $icc,$labl" %}
   // Prim = bits 24-22, Secnd = bits 31-30
   ins_encode( enc_bp( labl, cmp, icc ) );
-  ins_pc_relative(1);
   ins_pipe(br_cc);
 %}
 
@@ -9314,9 +9331,14 @@ instruct branchConP(cmpOpP cmp, flagsRegP pcc, label labl) %{
   size(8);
   ins_cost(BRANCH_COST);
   format %{ "BP$cmp  $pcc,$labl" %}
-  // Prim = bits 24-22, Secnd = bits 31-30
-  ins_encode( enc_bpx( labl, cmp, pcc ) );
-  ins_pc_relative(1);
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+
+    __ bp( (Assembler::Condition)($cmp$$cmpcode), false, Assembler::ptr_cc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
   ins_pipe(br_cc);
 %}
 
@@ -9327,9 +9349,14 @@ instruct branchConF(cmpOpF cmp, flagsRegF fcc, label labl) %{
   size(8);
   ins_cost(BRANCH_COST);
   format %{ "FBP$cmp $fcc,$labl" %}
-  // Prim = bits 24-22, Secnd = bits 31-30
-  ins_encode( enc_fbp( labl, cmp, fcc ) );
-  ins_pc_relative(1);
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+
+    __ fbp( (Assembler::Condition)($cmp$$cmpcode), false, (Assembler::CC)($fcc$$reg), predict_taken, *L);
+    __ delayed()->nop();
+  %}
   ins_pipe(br_fcc);
 %}
 
@@ -9342,7 +9369,6 @@ instruct branchLoopEnd(cmpOp cmp, flagsReg icc, label labl) %{
   format %{ "BP$cmp   $icc,$labl\t! Loop end" %}
   // Prim = bits 24-22, Secnd = bits 31-30
   ins_encode( enc_bp( labl, cmp, icc ) );
-  ins_pc_relative(1);
   ins_pipe(br_cc);
 %}
 
@@ -9355,10 +9381,509 @@ instruct branchLoopEndU(cmpOpU cmp, flagsRegU icc, label labl) %{
   format %{ "BP$cmp  $icc,$labl\t! Loop end" %}
   // Prim = bits 24-22, Secnd = bits 31-30
   ins_encode( enc_bp( labl, cmp, icc ) );
-  ins_pc_relative(1);
   ins_pipe(br_cc);
 %}
 
+// Compare and branch instructions
+instruct cmpI_reg_branch(cmpOp cmp, iRegI op1, iRegI op2, label labl, flagsReg icc) %{
+  match(If cmp (CmpI op1 op2));
+  effect(USE labl, KILL icc);
+
+  size(12);
+  ins_cost(BRANCH_COST);
+  format %{ "CMP    $op1,$op2\t! int\n\t"
+            "BP$cmp   $labl" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+    __ cmp($op1$$Register, $op2$$Register);
+    __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::icc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
+  ins_pipe(cmp_br_reg_reg);
+%}
+
+instruct cmpI_imm_branch(cmpOp cmp, iRegI op1, immI5 op2, label labl, flagsReg icc) %{
+  match(If cmp (CmpI op1 op2));
+  effect(USE labl, KILL icc);
+
+  size(12);
+  ins_cost(BRANCH_COST);
+  format %{ "CMP    $op1,$op2\t! int\n\t"
+            "BP$cmp   $labl" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+    __ cmp($op1$$Register, $op2$$constant);
+    __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::icc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
+  ins_pipe(cmp_br_reg_imm);
+%}
+
+instruct cmpU_reg_branch(cmpOpU cmp, iRegI op1, iRegI op2, label labl, flagsRegU icc) %{
+  match(If cmp (CmpU op1 op2));
+  effect(USE labl, KILL icc);
+
+  size(12);
+  ins_cost(BRANCH_COST);
+  format %{ "CMP    $op1,$op2\t! unsigned\n\t"
+            "BP$cmp  $labl" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+    __ cmp($op1$$Register, $op2$$Register);
+    __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::icc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
+  ins_pipe(cmp_br_reg_reg);
+%}
+
+instruct cmpU_imm_branch(cmpOpU cmp, iRegI op1, immI5 op2, label labl, flagsRegU icc) %{
+  match(If cmp (CmpU op1 op2));
+  effect(USE labl, KILL icc);
+
+  size(12);
+  ins_cost(BRANCH_COST);
+  format %{ "CMP    $op1,$op2\t! unsigned\n\t"
+            "BP$cmp  $labl" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+    __ cmp($op1$$Register, $op2$$constant);
+    __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::icc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
+  ins_pipe(cmp_br_reg_imm);
+%}
+
+instruct cmpL_reg_branch(cmpOp cmp, iRegL op1, iRegL op2, label labl, flagsRegL xcc) %{
+  match(If cmp (CmpL op1 op2));
+  effect(USE labl, KILL xcc);
+
+  size(12);
+  ins_cost(BRANCH_COST);
+  format %{ "CMP    $op1,$op2\t! long\n\t"
+            "BP$cmp   $labl" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+    __ cmp($op1$$Register, $op2$$Register);
+    __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::xcc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
+  ins_pipe(cmp_br_reg_reg);
+%}
+
+instruct cmpL_imm_branch(cmpOp cmp, iRegL op1, immL5 op2, label labl, flagsRegL xcc) %{
+  match(If cmp (CmpL op1 op2));
+  effect(USE labl, KILL xcc);
+
+  size(12);
+  ins_cost(BRANCH_COST);
+  format %{ "CMP    $op1,$op2\t! long\n\t"
+            "BP$cmp   $labl" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+    __ cmp($op1$$Register, $op2$$constant);
+    __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::xcc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
+  ins_pipe(cmp_br_reg_imm);
+%}
+
+// Compare Pointers and branch
+instruct cmpP_reg_branch(cmpOpP cmp, iRegP op1, iRegP op2, label labl, flagsRegP pcc) %{
+  match(If cmp (CmpP op1 op2));
+  effect(USE labl, KILL pcc);
+
+  size(12);
+  ins_cost(BRANCH_COST);
+  format %{ "CMP    $op1,$op2\t! ptr\n\t"
+            "B$cmp   $labl" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+    __ cmp($op1$$Register, $op2$$Register);
+    __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::ptr_cc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
+  ins_pipe(cmp_br_reg_reg);
+%}
+
+instruct cmpP_null_branch(cmpOpP cmp, iRegP op1, immP0 null, label labl, flagsRegP pcc) %{
+  match(If cmp (CmpP op1 null));
+  effect(USE labl, KILL pcc);
+
+  size(12);
+  ins_cost(BRANCH_COST);
+  format %{ "CMP    $op1,0\t! ptr\n\t"
+            "B$cmp   $labl" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+    __ cmp($op1$$Register, G0);
+    // bpr() is not used here since it has shorter distance.
+    __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::ptr_cc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
+  ins_pipe(cmp_br_reg_reg);
+%}
+
+instruct cmpN_reg_branch(cmpOp cmp, iRegN op1, iRegN op2, label labl, flagsReg icc) %{
+  match(If cmp (CmpN op1 op2));
+  effect(USE labl, KILL icc);
+
+  size(12);
+  ins_cost(BRANCH_COST);
+  format %{ "CMP    $op1,$op2\t! compressed ptr\n\t"
+            "BP$cmp   $labl" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+    __ cmp($op1$$Register, $op2$$Register);
+    __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::icc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
+  ins_pipe(cmp_br_reg_reg);
+%}
+
+instruct cmpN_null_branch(cmpOp cmp, iRegN op1, immN0 null, label labl, flagsReg icc) %{
+  match(If cmp (CmpN op1 null));
+  effect(USE labl, KILL icc);
+
+  size(12);
+  ins_cost(BRANCH_COST);
+  format %{ "CMP    $op1,0\t! compressed ptr\n\t"
+            "BP$cmp   $labl" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+    __ cmp($op1$$Register, G0);
+    __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::icc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
+  ins_pipe(cmp_br_reg_reg);
+%}
+
+// Loop back branch
+instruct cmpI_reg_branchLoopEnd(cmpOp cmp, iRegI op1, iRegI op2, label labl, flagsReg icc) %{
+  match(CountedLoopEnd cmp (CmpI op1 op2));
+  effect(USE labl, KILL icc);
+
+  size(12);
+  ins_cost(BRANCH_COST);
+  format %{ "CMP    $op1,$op2\t! int\n\t"
+            "BP$cmp   $labl\t! Loop end" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+    __ cmp($op1$$Register, $op2$$Register);
+    __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::icc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
+  ins_pipe(cmp_br_reg_reg);
+%}
+
+instruct cmpI_imm_branchLoopEnd(cmpOp cmp, iRegI op1, immI5 op2, label labl, flagsReg icc) %{
+  match(CountedLoopEnd cmp (CmpI op1 op2));
+  effect(USE labl, KILL icc);
+
+  size(12);
+  ins_cost(BRANCH_COST);
+  format %{ "CMP    $op1,$op2\t! int\n\t"
+            "BP$cmp   $labl\t! Loop end" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+    __ cmp($op1$$Register, $op2$$constant);
+    __ bp((Assembler::Condition)($cmp$$cmpcode), false, Assembler::icc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
+  ins_pipe(cmp_br_reg_imm);
+%}
+
+// Short compare and branch instructions
+instruct cmpI_reg_branch_short(cmpOp cmp, iRegI op1, iRegI op2, label labl, flagsReg icc) %{
+  match(If cmp (CmpI op1 op2));
+  predicate(UseCBCond);
+  effect(USE labl, KILL icc);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+  format %{ "CWB$cmp  $op1,$op2,$labl\t! int" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::icc, $op1$$Register, $op2$$Register, *L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_reg);
+%}
+
+instruct cmpI_imm_branch_short(cmpOp cmp, iRegI op1, immI5 op2, label labl, flagsReg icc) %{
+  match(If cmp (CmpI op1 op2));
+  predicate(UseCBCond);
+  effect(USE labl, KILL icc);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+  format %{ "CWB$cmp  $op1,$op2,$labl\t! int" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::icc, $op1$$Register, $op2$$constant, *L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_imm);
+%}
+
+instruct cmpU_reg_branch_short(cmpOpU cmp, iRegI op1, iRegI op2, label labl, flagsRegU icc) %{
+  match(If cmp (CmpU op1 op2));
+  predicate(UseCBCond);
+  effect(USE labl, KILL icc);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+  format %{ "CWB$cmp $op1,$op2,$labl\t! unsigned" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::icc, $op1$$Register, $op2$$Register, *L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_reg);
+%}
+
+instruct cmpU_imm_branch_short(cmpOpU cmp, iRegI op1, immI5 op2, label labl, flagsRegU icc) %{
+  match(If cmp (CmpU op1 op2));
+  predicate(UseCBCond);
+  effect(USE labl, KILL icc);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+  format %{ "CWB$cmp $op1,$op2,$labl\t! unsigned" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::icc, $op1$$Register, $op2$$constant, *L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_imm);
+%}
+
+instruct cmpL_reg_branch_short(cmpOp cmp, iRegL op1, iRegL op2, label labl, flagsRegL xcc) %{
+  match(If cmp (CmpL op1 op2));
+  predicate(UseCBCond);
+  effect(USE labl, KILL xcc);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+  format %{ "CXB$cmp  $op1,$op2,$labl\t! long" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::xcc, $op1$$Register, $op2$$Register, *L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_reg);
+%}
+
+instruct cmpL_imm_branch_short(cmpOp cmp, iRegL op1, immL5 op2, label labl, flagsRegL xcc) %{
+  match(If cmp (CmpL op1 op2));
+  predicate(UseCBCond);
+  effect(USE labl, KILL xcc);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+  format %{ "CXB$cmp  $op1,$op2,$labl\t! long" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::xcc, $op1$$Register, $op2$$constant, *L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_imm);
+%}
+
+// Compare Pointers and branch
+instruct cmpP_reg_branch_short(cmpOpP cmp, iRegP op1, iRegP op2, label labl, flagsRegP pcc) %{
+  match(If cmp (CmpP op1 op2));
+  predicate(UseCBCond);
+  effect(USE labl, KILL pcc);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+#ifdef _LP64
+  format %{ "CXB$cmp $op1,$op2,$labl\t! ptr" %}
+#else
+  format %{ "CWB$cmp $op1,$op2,$labl\t! ptr" %}
+#endif
+  ins_encode %{
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::ptr_cc, $op1$$Register, $op2$$Register, *L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_reg);
+%}
+
+instruct cmpP_null_branch_short(cmpOpP cmp, iRegP op1, immP0 null, label labl, flagsRegP pcc) %{
+  match(If cmp (CmpP op1 null));
+  predicate(UseCBCond);
+  effect(USE labl, KILL pcc);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+#ifdef _LP64
+  format %{ "CXB$cmp $op1,0,$labl\t! ptr" %}
+#else
+  format %{ "CWB$cmp $op1,0,$labl\t! ptr" %}
+#endif
+  ins_encode %{
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::ptr_cc, $op1$$Register, G0, *L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_reg);
+%}
+
+instruct cmpN_reg_branch_short(cmpOp cmp, iRegN op1, iRegN op2, label labl, flagsReg icc) %{
+  match(If cmp (CmpN op1 op2));
+  predicate(UseCBCond);
+  effect(USE labl, KILL icc);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+  format %{ "CWB$cmp  $op1,op2,$labl\t! compressed ptr" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::icc, $op1$$Register, $op2$$Register, *L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_reg);
+%}
+
+instruct cmpN_null_branch_short(cmpOp cmp, iRegN op1, immN0 null, label labl, flagsReg icc) %{
+  match(If cmp (CmpN op1 null));
+  predicate(UseCBCond);
+  effect(USE labl, KILL icc);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+  format %{ "CWB$cmp  $op1,0,$labl\t! compressed ptr" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::icc, $op1$$Register, G0, *L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_reg);
+%}
+
+// Loop back branch
+instruct cmpI_reg_branchLoopEnd_short(cmpOp cmp, iRegI op1, iRegI op2, label labl, flagsReg icc) %{
+  match(CountedLoopEnd cmp (CmpI op1 op2));
+  predicate(UseCBCond);
+  effect(USE labl, KILL icc);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+  format %{ "CWB$cmp  $op1,$op2,$labl\t! Loop end" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::icc, $op1$$Register, $op2$$Register, *L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_reg);
+%}
+
+instruct cmpI_imm_branchLoopEnd_short(cmpOp cmp, iRegI op1, immI5 op2, label labl, flagsReg icc) %{
+  match(CountedLoopEnd cmp (CmpI op1 op2));
+  predicate(UseCBCond);
+  effect(USE labl, KILL icc);
+
+  size(4);
+  ins_cost(BRANCH_COST);
+  format %{ "CWB$cmp  $op1,$op2,$labl\t! Loop end" %}
+  ins_encode %{
+    Label* L = $labl$$label;
+    assert(__ use_cbcond(*L), "back to back cbcond");
+    __ cbcond((Assembler::Condition)($cmp$$cmpcode), Assembler::icc, $op1$$Register, $op2$$constant, *L);
+  %}
+  ins_short_branch(1);
+  ins_avoid_back_to_back(1);
+  ins_pipe(cbcond_reg_imm);
+%}
+
+// Branch-on-register tests all 64 bits.  We assume that values
+// in 64-bit registers always remains zero or sign extended
+// unless our code munges the high bits.  Interrupts can chop
+// the high order bits to zero or sign at any time.
+instruct branchCon_regI(cmpOp_reg cmp, iRegI op1, immI0 zero, label labl) %{
+  match(If cmp (CmpI op1 zero));
+  predicate(can_branch_register(_kids[0]->_leaf, _kids[1]->_leaf));
+  effect(USE labl);
+
+  size(8);
+  ins_cost(BRANCH_COST);
+  format %{ "BR$cmp   $op1,$labl" %}
+  ins_encode( enc_bpr( labl, cmp, op1 ) );
+  ins_pipe(br_reg);
+%}
+
+instruct branchCon_regP(cmpOp_reg cmp, iRegP op1, immP0 null, label labl) %{
+  match(If cmp (CmpP op1 null));
+  predicate(can_branch_register(_kids[0]->_leaf, _kids[1]->_leaf));
+  effect(USE labl);
+
+  size(8);
+  ins_cost(BRANCH_COST);
+  format %{ "BR$cmp   $op1,$labl" %}
+  ins_encode( enc_bpr( labl, cmp, op1 ) );
+  ins_pipe(br_reg);
+%}
+
+instruct branchCon_regL(cmpOp_reg cmp, iRegL op1, immL0 zero, label labl) %{
+  match(If cmp (CmpL op1 zero));
+  predicate(can_branch_register(_kids[0]->_leaf, _kids[1]->_leaf));
+  effect(USE labl);
+
+  size(8);
+  ins_cost(BRANCH_COST);
+  format %{ "BR$cmp   $op1,$labl" %}
+  ins_encode( enc_bpr( labl, cmp, op1 ) );
+  ins_pipe(br_reg);
+%}
+
+
 // ============================================================================
 // Long Compare
 //
@@ -9387,9 +9912,14 @@ instruct branchCon_long(cmpOp cmp, flagsRegL xcc, label labl) %{
   size(8);
   ins_cost(BRANCH_COST);
   format %{ "BP$cmp   $xcc,$labl" %}
-  // Prim = bits 24-22, Secnd = bits 31-30
-  ins_encode( enc_bpl( labl, cmp, xcc ) );
-  ins_pc_relative(1);
+  ins_encode %{
+    Label* L = $labl$$label;
+    Assembler::Predict predict_taken =
+      cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn;
+
+    __ bp( (Assembler::Condition)($cmp$$cmpcode), false, Assembler::xcc, predict_taken, *L);
+    __ delayed()->nop();
+  %}
   ins_pipe(br_cc);
 %}
 
@@ -9517,7 +10047,6 @@ instruct CallStaticJavaDirect( method meth ) %{
   ins_cost(CALL_COST);
   format %{ "CALL,static  ; NOP ==> " %}
   ins_encode( Java_Static_Call( meth ), call_epilog );
-  ins_pc_relative(1);
   ins_pipe(simple_call);
 %}
 
@@ -9527,11 +10056,10 @@ instruct CallStaticJavaHandle(method meth, l7RegP l7_mh_SP_save) %{
   predicate(((CallStaticJavaNode*)n)->is_method_handle_invoke());
   effect(USE meth, KILL l7_mh_SP_save);
 
-  size(8);
+  size(16);
   ins_cost(CALL_COST);
   format %{ "CALL,static/MethodHandle" %}
   ins_encode(preserve_SP, Java_Static_Call(meth), restore_SP, call_epilog);
-  ins_pc_relative(1);
   ins_pipe(simple_call);
 %}
 
@@ -9544,7 +10072,6 @@ instruct CallDynamicJavaDirect( method meth ) %{
   format %{ "SET    (empty),R_G5\n\t"
             "CALL,dynamic  ; NOP ==> " %}
   ins_encode( Java_Dynamic_Call( meth ), call_epilog );
-  ins_pc_relative(1);
   ins_pipe(call);
 %}
 
@@ -9556,7 +10083,6 @@ instruct CallRuntimeDirect(method meth, l7RegP l7) %{
   format %{ "CALL,runtime" %}
   ins_encode( Java_To_Runtime( meth ),
               call_epilog, adjust_long_from_native_call );
-  ins_pc_relative(1);
   ins_pipe(simple_call);
 %}
 
@@ -9569,7 +10095,6 @@ instruct CallLeafDirect(method meth, l7RegP l7) %{
   ins_encode( Java_To_Runtime( meth ),
               call_epilog,
               adjust_long_from_native_call );
-  ins_pc_relative(1);
   ins_pipe(simple_call);
 %}
 
@@ -9582,7 +10107,6 @@ instruct CallLeafNoFPDirect(method meth, l7RegP l7) %{
   ins_encode( Java_To_Runtime( meth ),
               call_epilog,
               adjust_long_from_native_call );
-  ins_pc_relative(1);
   ins_pipe(simple_call);
 %}
 
@@ -9707,7 +10231,6 @@ instruct cmpFastLock(flagsRegP pcc, iRegP object, iRegP box, iRegP scratch2, o7R
   effect(KILL scratch, TEMP scratch2);
   ins_cost(100);
 
-  size(4*112);       // conservative overestimation ...
   format %{ "FASTLOCK  $object, $box; KILL $scratch, $scratch2, $box" %}
   ins_encode( Fast_Lock(object, box, scratch, scratch2) );
   ins_pipe(long_memory_op);
@@ -9719,15 +10242,14 @@ instruct cmpFastUnlock(flagsRegP pcc, iRegP object, iRegP box, iRegP scratch2, o
   effect(KILL scratch, TEMP scratch2);
   ins_cost(100);
 
-  size(4*120);       // conservative overestimation ...
   format %{ "FASTUNLOCK  $object, $box; KILL $scratch, $scratch2, $box" %}
   ins_encode( Fast_Unlock(object, box, scratch, scratch2) );
   ins_pipe(long_memory_op);
 %}
 
-// Count and Base registers are fixed because the allocator cannot
-// kill unknown registers.  The encodings are generic.
+// The encodings are generic.
 instruct clear_array(iRegX cnt, iRegP base, iRegX temp, Universe dummy, flagsReg ccr) %{
+  predicate(!use_block_zeroing(n->in(2)) );
   match(Set dummy (ClearArray cnt base));
   effect(TEMP temp, KILL ccr);
   ins_cost(300);
@@ -9735,7 +10257,71 @@ instruct clear_array(iRegX cnt, iRegP base, iRegX temp, Universe dummy, flagsReg
     "loop:   SUBcc  $temp,8,$temp\t! Count down a dword of bytes\n"
     "        BRge   loop\t\t! Clearing loop\n"
     "        STX    G0,[$base+$temp]\t! delay slot" %}
-  ins_encode( enc_Clear_Array(cnt, base, temp) );
+
+  ins_encode %{
+    // Compiler ensures base is doubleword aligned and cnt is count of doublewords
+    Register nof_bytes_arg    = $cnt$$Register;
+    Register nof_bytes_tmp    = $temp$$Register;
+    Register base_pointer_arg = $base$$Register;
+
+    Label loop;
+    __ mov(nof_bytes_arg, nof_bytes_tmp);
+
+    // Loop and clear, walking backwards through the array.
+    // nof_bytes_tmp (if >0) is always the number of bytes to zero
+    __ bind(loop);
+    __ deccc(nof_bytes_tmp, 8);
+    __ br(Assembler::greaterEqual, true, Assembler::pt, loop);
+    __ delayed()-> stx(G0, base_pointer_arg, nof_bytes_tmp);
+    // %%%% this mini-loop must not cross a cache boundary!
+  %}
+  ins_pipe(long_memory_op);
+%}
+
+instruct clear_array_bis(g1RegX cnt, o0RegP base, Universe dummy, flagsReg ccr) %{
+  predicate(use_block_zeroing(n->in(2)));
+  match(Set dummy (ClearArray cnt base));
+  effect(USE_KILL cnt, USE_KILL base, KILL ccr);
+  ins_cost(300);
+  format %{ "CLEAR  [$base, $cnt]\t! ClearArray" %}
+
+  ins_encode %{
+
+    assert(MinObjAlignmentInBytes >= BytesPerLong, "need alternate implementation");
+    Register to    = $base$$Register;
+    Register count = $cnt$$Register;
+
+    Label Ldone;
+    __ nop(); // Separate short branches
+    // Use BIS for zeroing (temp is not used).
+    __ bis_zeroing(to, count, G0, Ldone);
+    __ bind(Ldone);
+
+  %}
+  ins_pipe(long_memory_op);
+%}
+
+instruct clear_array_bis_2(g1RegX cnt, o0RegP base, iRegX tmp, Universe dummy, flagsReg ccr) %{
+  predicate(use_block_zeroing(n->in(2)) && !Assembler::is_simm13((int)BlockZeroingLowLimit));
+  match(Set dummy (ClearArray cnt base));
+  effect(TEMP tmp, USE_KILL cnt, USE_KILL base, KILL ccr);
+  ins_cost(300);
+  format %{ "CLEAR  [$base, $cnt]\t! ClearArray" %}
+
+  ins_encode %{
+
+    assert(MinObjAlignmentInBytes >= BytesPerLong, "need alternate implementation");
+    Register to    = $base$$Register;
+    Register count = $cnt$$Register;
+    Register temp  = $tmp$$Register;
+
+    Label Ldone;
+    __ nop(); // Separate short branches
+    // Use BIS for zeroing
+    __ bis_zeroing(to, count, temp, Ldone);
+    __ bind(Ldone);
+
+  %}
   ins_pipe(long_memory_op);
 %}
 
diff --git a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp
index 69ed909..9415c7b 100644
--- a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp
@@ -150,8 +150,7 @@ class StubGenerator: public StubCodeGenerator {
     { const Register t = G3_scratch;
       Label L;
       __ ld_ptr(G2_thread, in_bytes(Thread::pending_exception_offset()), t);
-      __ br_null(t, false, Assembler::pt, L);
-      __ delayed()->nop();
+      __ br_null_short(t, Assembler::pt, L);
       __ stop("StubRoutines::call_stub: entered with pending exception");
       __ bind(L);
     }
@@ -207,8 +206,7 @@ class StubGenerator: public StubCodeGenerator {
       Label exit;
       __ ld_ptr(parameter_size.as_in().as_address(), cnt);      // parameter counter
       __ add( FP, STACK_BIAS, dst );
-      __ tst(cnt);
-      __ br(Assembler::zero, false, Assembler::pn, exit);
+      __ cmp_zero_and_br(Assembler::zero, cnt, exit);
       __ delayed()->sub(dst, BytesPerWord, dst);                 // setup Lentry_args
 
       // copy parameters if any
@@ -282,20 +280,20 @@ class StubGenerator: public StubCodeGenerator {
       __ delayed()->restore();
 
       __ BIND(is_object);
-      __ ba(false, exit);
+      __ ba(exit);
       __ delayed()->st_ptr(O0, addr, G0);
 
       __ BIND(is_float);
-      __ ba(false, exit);
+      __ ba(exit);
       __ delayed()->stf(FloatRegisterImpl::S, F0, addr, G0);
 
       __ BIND(is_double);
-      __ ba(false, exit);
+      __ ba(exit);
       __ delayed()->stf(FloatRegisterImpl::D, F0, addr, G0);
 
       __ BIND(is_long);
 #ifdef _LP64
-      __ ba(false, exit);
+      __ ba(exit);
       __ delayed()->st_long(O0, addr, G0);      // store entire long
 #else
 #if defined(COMPILER2)
@@ -307,11 +305,11 @@ class StubGenerator: public StubCodeGenerator {
   // do this here. Unfortunately if we did a rethrow we'd see an machepilog node
   // first which would move g1 -> O0/O1 and destroy the exception we were throwing.
 
-      __ ba(false, exit);
+      __ ba(exit);
       __ delayed()->stx(G1, addr, G0);  // store entire long
 #else
       __ st(O1, addr, BytesPerInt);
-      __ ba(false, exit);
+      __ ba(exit);
       __ delayed()->st(O0, addr, G0);
 #endif /* COMPILER2 */
 #endif /* _LP64 */
@@ -382,8 +380,7 @@ class StubGenerator: public StubCodeGenerator {
     // make sure that this code is only executed if there is a pending exception
     { Label L;
       __ ld_ptr(exception_addr, Gtemp);
-      __ br_notnull(Gtemp, false, Assembler::pt, L);
-      __ delayed()->nop();
+      __ br_notnull_short(Gtemp, Assembler::pt, L);
       __ stop("StubRoutines::forward exception: no pending exception (1)");
       __ bind(L);
     }
@@ -406,8 +403,7 @@ class StubGenerator: public StubCodeGenerator {
 #ifdef ASSERT
     // make sure exception is set
     { Label L;
-      __ br_notnull(Oexception, false, Assembler::pt, L);
-      __ delayed()->nop();
+      __ br_notnull_short(Oexception, Assembler::pt, L);
       __ stop("StubRoutines::forward exception: no pending exception (2)");
       __ bind(L);
     }
@@ -440,7 +436,7 @@ class StubGenerator: public StubCodeGenerator {
 #undef __
 #define __ masm->
 
-  address generate_throw_exception(const char* name, address runtime_entry, bool restore_saved_exception_pc,
+  address generate_throw_exception(const char* name, address runtime_entry,
                                    Register arg1 = noreg, Register arg2 = noreg) {
 #ifdef ASSERT
     int insts_size = VerifyThread ? 1 * K : 600;
@@ -466,11 +462,6 @@ class StubGenerator: public StubCodeGenerator {
 
     int frame_complete = __ offset();
 
-    if (restore_saved_exception_pc) {
-      __ ld_ptr(G2_thread, JavaThread::saved_exception_pc_offset(), I7);
-      __ sub(I7, frame::pc_return_offset, I7);
-    }
-
     // Note that we always have a runtime stub frame on the top of stack by this point
     Register last_java_sp = SP;
     // 64-bit last_java_sp is biased!
@@ -501,8 +492,7 @@ class StubGenerator: public StubCodeGenerator {
     Address exception_addr(G2_thread, Thread::pending_exception_offset());
     Register scratch_reg = Gtemp;
     __ ld_ptr(exception_addr, scratch_reg);
-    __ br_notnull(scratch_reg, false, Assembler::pt, L);
-    __ delayed()->nop();
+    __ br_notnull_short(scratch_reg, Assembler::pt, L);
     __ should_not_reach_here();
     __ bind(L);
 #endif // ASSERT
@@ -614,9 +604,7 @@ class StubGenerator: public StubCodeGenerator {
     __ mov(G0,yield_reg);
 
     __ BIND(retry);
-    __ cmp(yield_reg, V8AtomicOperationUnderLockSpinCount);
-    __ br(Assembler::less, false, Assembler::pt, dontyield);
-    __ delayed()->nop();
+    __ cmp_and_br_short(yield_reg, V8AtomicOperationUnderLockSpinCount, Assembler::less, Assembler::pt, dontyield);
 
     // This code can only be called from inside the VM, this
     // stub is only invoked from Atomic::add().  We do not
@@ -676,9 +664,7 @@ class StubGenerator: public StubCodeGenerator {
       // try to replace O2 with O3
       __ cas_under_lock(O1, O2, O3,
       (address)StubRoutines::Sparc::atomic_memory_operation_lock_addr(),false);
-      __ cmp(O2, O3);
-      __ br(Assembler::notEqual, false, Assembler::pn, retry);
-      __ delayed()->nop();
+      __ cmp_and_br_short(O2, O3, Assembler::notEqual, Assembler::pn, retry);
 
       __ retl(false);
       __ delayed()->mov(O2, O0);  // report previous value to caller
@@ -798,11 +784,9 @@ class StubGenerator: public StubCodeGenerator {
       __ BIND(retry);
 
       __ lduw(O1, 0, O2);
-      __ add(O0,   O2, O3);
-      __ cas(O1,   O2, O3);
-      __ cmp(      O2, O3);
-      __ br(Assembler::notEqual, false, Assembler::pn, retry);
-      __ delayed()->nop();
+      __ add(O0, O2, O3);
+      __ cas(O1, O2, O3);
+      __ cmp_and_br_short(O2, O3, Assembler::notEqual, Assembler::pn, retry);
       __ retl(false);
       __ delayed()->add(O0, O2, O0); // note that cas made O2==O3
     } else {
@@ -1135,6 +1119,126 @@ class StubGenerator: public StubCodeGenerator {
     }
   }
 
+  //
+  // Generate main code for disjoint arraycopy
+  //
+  typedef void (StubGenerator::*CopyLoopFunc)(Register from, Register to, Register count, int count_dec,
+                                              Label& L_loop, bool use_prefetch, bool use_bis);
+
+  void disjoint_copy_core(Register from, Register to, Register count, int log2_elem_size,
+                          int iter_size, CopyLoopFunc copy_loop_func) {
+    Label L_copy;
+
+    assert(log2_elem_size <= 3, "the following code should be changed");
+    int count_dec = 16>>log2_elem_size;
+
+    int prefetch_dist = MAX2(ArraycopySrcPrefetchDistance, ArraycopyDstPrefetchDistance);
+    assert(prefetch_dist < 4096, "invalid value");
+    prefetch_dist = (prefetch_dist + (iter_size-1)) & (-iter_size); // round up to one iteration copy size
+    int prefetch_count = (prefetch_dist >> log2_elem_size); // elements count
+
+    if (UseBlockCopy) {
+      Label L_block_copy, L_block_copy_prefetch, L_skip_block_copy;
+
+      // 64 bytes tail + bytes copied in one loop iteration
+      int tail_size = 64 + iter_size;
+      int block_copy_count = (MAX2(tail_size, (int)BlockCopyLowLimit)) >> log2_elem_size;
+      // Use BIS copy only for big arrays since it requires membar.
+      __ set(block_copy_count, O4);
+      __ cmp_and_br_short(count, O4, Assembler::lessUnsigned, Assembler::pt, L_skip_block_copy);
+      // This code is for disjoint source and destination:
+      //   to <= from || to >= from+count
+      // but BIS will stomp over 'from' if (to > from-tail_size && to <= from)
+      __ sub(from, to, O4);
+      __ srax(O4, 4, O4); // divide by 16 since following short branch have only 5 bits for imm.
+      __ cmp_and_br_short(O4, (tail_size>>4), Assembler::lessEqualUnsigned, Assembler::pn, L_skip_block_copy);
+
+      __ wrasi(G0, Assembler::ASI_ST_BLKINIT_PRIMARY);
+      // BIS should not be used to copy tail (64 bytes+iter_size)
+      // to avoid zeroing of following values.
+      __ sub(count, (tail_size>>log2_elem_size), count); // count is still positive >= 0
+
+      if (prefetch_count > 0) { // rounded up to one iteration count
+        // Do prefetching only if copy size is bigger
+        // than prefetch distance.
+        __ set(prefetch_count, O4);
+        __ cmp_and_brx_short(count, O4, Assembler::less, Assembler::pt, L_block_copy);
+        __ sub(count, prefetch_count, count);
+
+        (this->*copy_loop_func)(from, to, count, count_dec, L_block_copy_prefetch, true, true);
+        __ add(count, prefetch_count, count); // restore count
+
+      } // prefetch_count > 0
+
+      (this->*copy_loop_func)(from, to, count, count_dec, L_block_copy, false, true);
+      __ add(count, (tail_size>>log2_elem_size), count); // restore count
+
+      __ wrasi(G0, Assembler::ASI_PRIMARY_NOFAULT);
+      // BIS needs membar.
+      __ membar(Assembler::StoreLoad);
+      // Copy tail
+      __ ba_short(L_copy);
+
+      __ BIND(L_skip_block_copy);
+    } // UseBlockCopy
+
+    if (prefetch_count > 0) { // rounded up to one iteration count
+      // Do prefetching only if copy size is bigger
+      // than prefetch distance.
+      __ set(prefetch_count, O4);
+      __ cmp_and_brx_short(count, O4, Assembler::lessUnsigned, Assembler::pt, L_copy);
+      __ sub(count, prefetch_count, count);
+
+      Label L_copy_prefetch;
+      (this->*copy_loop_func)(from, to, count, count_dec, L_copy_prefetch, true, false);
+      __ add(count, prefetch_count, count); // restore count
+
+    } // prefetch_count > 0
+
+    (this->*copy_loop_func)(from, to, count, count_dec, L_copy, false, false);
+  }
+
+
+
+  //
+  // Helper methods for copy_16_bytes_forward_with_shift()
+  //
+  void copy_16_bytes_shift_loop(Register from, Register to, Register count, int count_dec,
+                                Label& L_loop, bool use_prefetch, bool use_bis) {
+
+    const Register left_shift  = G1; // left  shift bit counter
+    const Register right_shift = G5; // right shift bit counter
+
+    __ align(OptoLoopAlignment);
+    __ BIND(L_loop);
+    if (use_prefetch) {
+      if (ArraycopySrcPrefetchDistance > 0) {
+        __ prefetch(from, ArraycopySrcPrefetchDistance, Assembler::severalReads);
+      }
+      if (ArraycopyDstPrefetchDistance > 0) {
+        __ prefetch(to, ArraycopyDstPrefetchDistance, Assembler::severalWritesAndPossiblyReads);
+      }
+    }
+    __ ldx(from, 0, O4);
+    __ ldx(from, 8, G4);
+    __ inc(to, 16);
+    __ inc(from, 16);
+    __ deccc(count, count_dec); // Can we do next iteration after this one?
+    __ srlx(O4, right_shift, G3);
+    __ bset(G3, O3);
+    __ sllx(O4, left_shift,  O4);
+    __ srlx(G4, right_shift, G3);
+    __ bset(G3, O4);
+    if (use_bis) {
+      __ stxa(O3, to, -16);
+      __ stxa(O4, to, -8);
+    } else {
+      __ stx(O3, to, -16);
+      __ stx(O4, to, -8);
+    }
+    __ brx(Assembler::greaterEqual, false, Assembler::pt, L_loop);
+    __ delayed()->sllx(G4, left_shift,  O3);
+  }
 
   // Copy big chunks forward with shift
   //
@@ -1146,64 +1250,51 @@ class StubGenerator: public StubCodeGenerator {
   //   L_copy_bytes - copy exit label
   //
   void copy_16_bytes_forward_with_shift(Register from, Register to,
-                     Register count, int count_dec, Label& L_copy_bytes) {
-    Label L_loop, L_aligned_copy, L_copy_last_bytes;
+                     Register count, int log2_elem_size, Label& L_copy_bytes) {
+    Label L_aligned_copy, L_copy_last_bytes;
+    assert(log2_elem_size <= 3, "the following code should be changed");
+    int count_dec = 16>>log2_elem_size;
 
     // if both arrays have the same alignment mod 8, do 8 bytes aligned copy
-      __ andcc(from, 7, G1); // misaligned bytes
-      __ br(Assembler::zero, false, Assembler::pt, L_aligned_copy);
-      __ delayed()->nop();
+    __ andcc(from, 7, G1); // misaligned bytes
+    __ br(Assembler::zero, false, Assembler::pt, L_aligned_copy);
+    __ delayed()->nop();
 
     const Register left_shift  = G1; // left  shift bit counter
     const Register right_shift = G5; // right shift bit counter
 
-      __ sll(G1, LogBitsPerByte, left_shift);
-      __ mov(64, right_shift);
-      __ sub(right_shift, left_shift, right_shift);
+    __ sll(G1, LogBitsPerByte, left_shift);
+    __ mov(64, right_shift);
+    __ sub(right_shift, left_shift, right_shift);
 
     //
     // Load 2 aligned 8-bytes chunks and use one from previous iteration
     // to form 2 aligned 8-bytes chunks to store.
     //
-      __ deccc(count, count_dec); // Pre-decrement 'count'
-      __ andn(from, 7, from);     // Align address
-      __ ldx(from, 0, O3);
-      __ inc(from, 8);
-      __ align(OptoLoopAlignment);
-    __ BIND(L_loop);
-      __ ldx(from, 0, O4);
-      __ deccc(count, count_dec); // Can we do next iteration after this one?
-      __ ldx(from, 8, G4);
-      __ inc(to, 16);
-      __ inc(from, 16);
-      __ sllx(O3, left_shift,  O3);
-      __ srlx(O4, right_shift, G3);
-      __ bset(G3, O3);
-      __ stx(O3, to, -16);
-      __ sllx(O4, left_shift,  O4);
-      __ srlx(G4, right_shift, G3);
-      __ bset(G3, O4);
-      __ stx(O4, to, -8);
-      __ brx(Assembler::greaterEqual, false, Assembler::pt, L_loop);
-      __ delayed()->mov(G4, O3);
-
-      __ inccc(count, count_dec>>1 ); // + 8 bytes
-      __ brx(Assembler::negative, true, Assembler::pn, L_copy_last_bytes);
-      __ delayed()->inc(count, count_dec>>1); // restore 'count'
-
-      // copy 8 bytes, part of them already loaded in O3
-      __ ldx(from, 0, O4);
-      __ inc(to, 8);
-      __ inc(from, 8);
-      __ sllx(O3, left_shift,  O3);
-      __ srlx(O4, right_shift, G3);
-      __ bset(O3, G3);
-      __ stx(G3, to, -8);
+    __ dec(count, count_dec);   // Pre-decrement 'count'
+    __ andn(from, 7, from);     // Align address
+    __ ldx(from, 0, O3);
+    __ inc(from, 8);
+    __ sllx(O3, left_shift,  O3);
+
+    disjoint_copy_core(from, to, count, log2_elem_size, 16, copy_16_bytes_shift_loop);
+
+    __ inccc(count, count_dec>>1 ); // + 8 bytes
+    __ brx(Assembler::negative, true, Assembler::pn, L_copy_last_bytes);
+    __ delayed()->inc(count, count_dec>>1); // restore 'count'
+
+    // copy 8 bytes, part of them already loaded in O3
+    __ ldx(from, 0, O4);
+    __ inc(to, 8);
+    __ inc(from, 8);
+    __ srlx(O4, right_shift, G3);
+    __ bset(O3, G3);
+    __ stx(G3, to, -8);
 
     __ BIND(L_copy_last_bytes);
-      __ srl(right_shift, LogBitsPerByte, right_shift); // misaligned bytes
-      __ br(Assembler::always, false, Assembler::pt, L_copy_bytes);
-      __ delayed()->sub(from, right_shift, from);       // restore address
+    __ srl(right_shift, LogBitsPerByte, right_shift); // misaligned bytes
+    __ br(Assembler::always, false, Assembler::pt, L_copy_bytes);
+    __ delayed()->sub(from, right_shift, from);       // restore address
 
     __ BIND(L_aligned_copy);
   }
@@ -1359,7 +1450,7 @@ class StubGenerator: public StubCodeGenerator {
       // The compare above (count >= 23) guarantes 'count' >= 16 bytes.
       // Also jump over aligned copy after the copy with shift completed.
 
-      copy_16_bytes_forward_with_shift(from, to, count, 16, L_copy_byte);
+      copy_16_bytes_forward_with_shift(from, to, count, 0, L_copy_byte);
     }
 
     // Both array are 8 bytes aligned, copy 16 bytes at a time
@@ -1370,8 +1461,7 @@ class StubGenerator: public StubCodeGenerator {
 
     // copy tailing bytes
     __ BIND(L_copy_byte);
-      __ br_zero(Assembler::zero, false, Assembler::pt, count, L_exit);
-      __ delayed()->nop();
+      __ cmp_and_br_short(count, 0, Assembler::equal, Assembler::pt, L_exit);
       __ align(OptoLoopAlignment);
     __ BIND(L_copy_byte_loop);
       __ ldub(from, offset, O3);
@@ -1482,8 +1572,7 @@ class StubGenerator: public StubCodeGenerator {
 
     // copy 1 element (2 bytes) at a time
     __ BIND(L_copy_byte);
-      __ br_zero(Assembler::zero, false, Assembler::pt, count, L_exit);
-      __ delayed()->nop();
+      __ cmp_and_br_short(count, 0, Assembler::equal, Assembler::pt, L_exit);
       __ align(OptoLoopAlignment);
     __ BIND(L_copy_byte_loop);
       __ dec(end_from);
@@ -1589,7 +1678,7 @@ class StubGenerator: public StubCodeGenerator {
       // The compare above (count >= 11) guarantes 'count' >= 16 bytes.
       // Also jump over aligned copy after the copy with shift completed.
 
-      copy_16_bytes_forward_with_shift(from, to, count, 8, L_copy_2_bytes);
+      copy_16_bytes_forward_with_shift(from, to, count, 1, L_copy_2_bytes);
     }
 
     // Both array are 8 bytes aligned, copy 16 bytes at a time
@@ -1600,8 +1689,7 @@ class StubGenerator: public StubCodeGenerator {
 
     // copy 1 element at a time
     __ BIND(L_copy_2_bytes);
-      __ br_zero(Assembler::zero, false, Assembler::pt, count, L_exit);
-      __ delayed()->nop();
+      __ cmp_and_br_short(count, 0, Assembler::equal, Assembler::pt, L_exit);
       __ align(OptoLoopAlignment);
     __ BIND(L_copy_2_bytes_loop);
       __ lduh(from, offset, O3);
@@ -1946,8 +2034,7 @@ class StubGenerator: public StubCodeGenerator {
 
     // copy 1 element (2 bytes) at a time
     __ BIND(L_copy_2_bytes);
-      __ br_zero(Assembler::zero, false, Assembler::pt, count, L_exit);
-      __ delayed()->nop();
+      __ cmp_and_br_short(count, 0, Assembler::equal, Assembler::pt, L_exit);
     __ BIND(L_copy_2_bytes_loop);
       __ dec(end_from, 2);
       __ dec(end_to, 2);
@@ -1965,6 +2052,45 @@ class StubGenerator: public StubCodeGenerator {
   }
 
   //
+  // Helper methods for generate_disjoint_int_copy_core()
+  //
+  void copy_16_bytes_loop(Register from, Register to, Register count, int count_dec,
+                          Label& L_loop, bool use_prefetch, bool use_bis) {
+
+    __ align(OptoLoopAlignment);
+    __ BIND(L_loop);
+    if (use_prefetch) {
+      if (ArraycopySrcPrefetchDistance > 0) {
+        __ prefetch(from, ArraycopySrcPrefetchDistance, Assembler::severalReads);
+      }
+      if (ArraycopyDstPrefetchDistance > 0) {
+        __ prefetch(to, ArraycopyDstPrefetchDistance, Assembler::severalWritesAndPossiblyReads);
+      }
+    }
+    __ ldx(from, 4, O4);
+    __ ldx(from, 12, G4);
+    __ inc(to, 16);
+    __ inc(from, 16);
+    __ deccc(count, 4); // Can we do next iteration after this one?
+
+    __ srlx(O4, 32, G3);
+    __ bset(G3, O3);
+    __ sllx(O4, 32, O4);
+    __ srlx(G4, 32, G3);
+    __ bset(G3, O4);
+    if (use_bis) {
+      __ stxa(O3, to, -16);
+      __ stxa(O4, to, -8);
+    } else {
+      __ stx(O3, to, -16);
+      __ stx(O4, to, -8);
+    }
+    __ brx(Assembler::greaterEqual, false, Assembler::pt, L_loop);
+    __ delayed()->sllx(G4, 32,  O3);
+
+  }
+
+  //
   //  Generate core code for disjoint int copy (and oop copy on 32-bit).
   //  If "aligned" is true, the "from" and "to" addresses are assumed
   //  to be heapword aligned.
@@ -1977,7 +2103,7 @@ class StubGenerator: public StubCodeGenerator {
   void generate_disjoint_int_copy_core(bool aligned) {
 
     Label L_skip_alignment, L_aligned_copy;
-    Label L_copy_16_bytes,  L_copy_4_bytes, L_copy_4_bytes_loop, L_exit;
+    Label L_copy_4_bytes, L_copy_4_bytes_loop, L_exit;
 
     const Register from      = O0;   // source array address
     const Register to        = O1;   // destination array address
@@ -2028,30 +2154,16 @@ class StubGenerator: public StubCodeGenerator {
 
     // copy with shift 4 elements (16 bytes) at a time
       __ dec(count, 4);   // The cmp at the beginning guaranty count >= 4
+      __ sllx(O3, 32,  O3);
 
-      __ align(OptoLoopAlignment);
-    __ BIND(L_copy_16_bytes);
-      __ ldx(from, 4, O4);
-      __ deccc(count, 4); // Can we do next iteration after this one?
-      __ ldx(from, 12, G4);
-      __ inc(to, 16);
-      __ inc(from, 16);
-      __ sllx(O3, 32, O3);
-      __ srlx(O4, 32, G3);
-      __ bset(G3, O3);
-      __ stx(O3, to, -16);
-      __ sllx(O4, 32, O4);
-      __ srlx(G4, 32, G3);
-      __ bset(G3, O4);
-      __ stx(O4, to, -8);
-      __ brx(Assembler::greaterEqual, false, Assembler::pt, L_copy_16_bytes);
-      __ delayed()->mov(G4, O3);
+      disjoint_copy_core(from, to, count, 2, 16, copy_16_bytes_loop);
 
       __ br(Assembler::always, false, Assembler::pt, L_copy_4_bytes);
       __ delayed()->inc(count, 4); // restore 'count'
 
     __ BIND(L_aligned_copy);
-    }
+    } // !aligned
+
     // copy 4 elements (16 bytes) at a time
       __ and3(count, 1, G4); // Save
       __ srl(count, 1, count);
@@ -2060,8 +2172,7 @@ class StubGenerator: public StubCodeGenerator {
 
     // copy 1 element at a time
     __ BIND(L_copy_4_bytes);
-      __ br_zero(Assembler::zero, false, Assembler::pt, count, L_exit);
-      __ delayed()->nop();
+      __ cmp_and_br_short(count, 0, Assembler::equal, Assembler::pt, L_exit);
     __ BIND(L_copy_4_bytes_loop);
       __ ld(from, offset, O3);
       __ deccc(count);
@@ -2193,8 +2304,7 @@ class StubGenerator: public StubCodeGenerator {
 
     // copy 1 element (4 bytes) at a time
     __ BIND(L_copy_4_bytes);
-      __ br_zero(Assembler::zero, false, Assembler::pt, count, L_exit);
-      __ delayed()->nop();
+      __ cmp_and_br_short(count, 0, Assembler::equal, Assembler::pt, L_exit);
     __ BIND(L_copy_4_bytes_loop);
       __ dec(end_from, 4);
       __ dec(end_to, 4);
@@ -2240,6 +2350,38 @@ class StubGenerator: public StubCodeGenerator {
   }
 
   //
+  // Helper methods for generate_disjoint_long_copy_core()
+  //
+  void copy_64_bytes_loop(Register from, Register to, Register count, int count_dec,
+                          Label& L_loop, bool use_prefetch, bool use_bis) {
+    __ align(OptoLoopAlignment);
+    __ BIND(L_loop);
+    for (int off = 0; off < 64; off += 16) {
+      if (use_prefetch && (off & 31) == 0) {
+        if (ArraycopySrcPrefetchDistance > 0) {
+          __ prefetch(from, ArraycopySrcPrefetchDistance+off, Assembler::severalReads);
+        }
+        if (ArraycopyDstPrefetchDistance > 0) {
+          __ prefetch(to, ArraycopyDstPrefetchDistance+off, Assembler::severalWritesAndPossiblyReads);
+        }
+      }
+      __ ldx(from,  off+0, O4);
+      __ ldx(from,  off+8, O5);
+      if (use_bis) {
+        __ stxa(O4, to,  off+0);
+        __ stxa(O5, to,  off+8);
+      } else {
+        __ stx(O4, to,  off+0);
+        __ stx(O5, to,  off+8);
+      }
+    }
+    __ deccc(count, 8);
+    __ inc(from, 64);
+    __ brx(Assembler::greaterEqual, false, Assembler::pt, L_loop);
+    __ delayed()->inc(to, 64);
+  }
+
+  //
   //  Generate core code for disjoint long copy (and oop copy on 64-bit).
   //  "aligned" is ignored, because we must make the stronger
   //  assumption that both addresses are always 64-bit aligned.
@@ -2278,38 +2420,28 @@ class StubGenerator: public StubCodeGenerator {
     const Register offset0 = O4;  // element offset
     const Register offset8 = O5;  // next element offset
 
-      __ deccc(count, 2);
-      __ mov(G0, offset0);   // offset from start of arrays (0)
-      __ brx(Assembler::negative, false, Assembler::pn, L_copy_8_bytes );
-      __ delayed()->add(offset0, 8, offset8);
+    __ deccc(count, 2);
+    __ mov(G0, offset0);   // offset from start of arrays (0)
+    __ brx(Assembler::negative, false, Assembler::pn, L_copy_8_bytes );
+    __ delayed()->add(offset0, 8, offset8);
 
     // Copy by 64 bytes chunks
-    Label L_copy_64_bytes;
+
     const Register from64 = O3;  // source address
     const Register to64   = G3;  // destination address
-      __ subcc(count, 6, O3);
-      __ brx(Assembler::negative, false, Assembler::pt, L_copy_16_bytes );
-      __ delayed()->mov(to,   to64);
-      // Now we can use O4(offset0), O5(offset8) as temps
-      __ mov(O3, count);
-      __ mov(from, from64);
+    __ subcc(count, 6, O3);
+    __ brx(Assembler::negative, false, Assembler::pt, L_copy_16_bytes );
+    __ delayed()->mov(to,   to64);
+    // Now we can use O4(offset0), O5(offset8) as temps
+    __ mov(O3, count);
+    // count >= 0 (original count - 8)
+    __ mov(from, from64);
 
-      __ align(OptoLoopAlignment);
-    __ BIND(L_copy_64_bytes);
-      for( int off = 0; off < 64; off += 16 ) {
-        __ ldx(from64,  off+0, O4);
-        __ ldx(from64,  off+8, O5);
-        __ stx(O4, to64,  off+0);
-        __ stx(O5, to64,  off+8);
-      }
-      __ deccc(count, 8);
-      __ inc(from64, 64);
-      __ brx(Assembler::greaterEqual, false, Assembler::pt, L_copy_64_bytes);
-      __ delayed()->inc(to64, 64);
+    disjoint_copy_core(from64, to64, count, 3, 64, copy_64_bytes_loop);
 
       // Restore O4(offset0), O5(offset8)
       __ sub(from64, from, offset0);
-      __ inccc(count, 6);
+      __ inccc(count, 6); // restore count
       __ brx(Assembler::negative, false, Assembler::pn, L_copy_8_bytes );
       __ delayed()->add(offset0, 8, offset8);
 
@@ -2576,7 +2708,7 @@ class StubGenerator: public StubCodeGenerator {
                                      super_klass->after_save(),
                                      L0, L1, L2, L4,
                                      NULL, &L_pop_to_miss);
-    __ ba(false, L_success);
+    __ ba(L_success);
     __ delayed()->restore();
 
     __ bind(L_pop_to_miss);
@@ -2673,8 +2805,7 @@ class StubGenerator: public StubCodeGenerator {
     // ======== loop entry is here ========
     __ BIND(load_element);
     __ load_heap_oop(O0_from, O5_offset, G3_oop);  // load the oop
-    __ br_null(G3_oop, true, Assembler::pt, store_element);
-    __ delayed()->nop();
+    __ br_null_short(G3_oop, Assembler::pt, store_element);
 
     __ load_klass(G3_oop, G4_klass); // query the object klass
 
@@ -2896,8 +3027,7 @@ class StubGenerator: public StubCodeGenerator {
     //  assert(src->klass() != NULL);
     BLOCK_COMMENT("assert klasses not null");
     { Label L_a, L_b;
-      __ br_notnull(G3_src_klass, false, Assembler::pt, L_b); // it is broken if klass is NULL
-      __ delayed()->nop();
+      __ br_notnull_short(G3_src_klass, Assembler::pt, L_b); // it is broken if klass is NULL
       __ bind(L_a);
       __ stop("broken null klass");
       __ bind(L_b);
@@ -2937,9 +3067,7 @@ class StubGenerator: public StubCodeGenerator {
     }
 
     //  if (src->klass() != dst->klass()) return -1;
-    __ cmp(G3_src_klass, G4_dst_klass);
-    __ brx(Assembler::notEqual, false, Assembler::pn, L_failed);
-    __ delayed()->nop();
+    __ cmp_and_brx_short(G3_src_klass, G4_dst_klass, Assembler::notEqual, Assembler::pn, L_failed);
 
     //  if (!src->is_Array()) return -1;
     __ cmp(G5_lh, Klass::_lh_neutral_value); // < 0
@@ -3007,9 +3135,7 @@ class StubGenerator: public StubCodeGenerator {
     __ delayed()->signx(length, count); // length
 #ifdef ASSERT
     { Label L;
-      __ cmp(G3_elsize, LogBytesPerLong);
-      __ br(Assembler::equal, false, Assembler::pt, L);
-      __ delayed()->nop();
+      __ cmp_and_br_short(G3_elsize, LogBytesPerLong, Assembler::equal, Assembler::pt, L);
       __ stop("must be long copy, but elsize is wrong");
       __ bind(L);
     }
@@ -3092,6 +3218,34 @@ class StubGenerator: public StubCodeGenerator {
     return start;
   }
 
+  //
+  //  Generate stub for heap zeroing.
+  //  "to" address is aligned to jlong (8 bytes).
+  //
+  // Arguments for generated stub:
+  //      to:    O0
+  //      count: O1 treated as signed (count of HeapWord)
+  //             count could be 0
+  //
+  address generate_zero_aligned_words(const char* name) {
+    __ align(CodeEntryAlignment);
+    StubCodeMark mark(this, "StubRoutines", name);
+    address start = __ pc();
+
+    const Register to    = O0;   // source array address
+    const Register count = O1;   // HeapWords count
+    const Register temp  = O2;   // scratch
+
+    Label Ldone;
+    __ sllx(count, LogHeapWordSize, count); // to bytes count
+    // Use BIS for zeroing
+    __ bis_zeroing(to, count, temp, Ldone);
+    __ bind(Ldone);
+    __ retl();
+    __ delayed()->nop();
+    return start;
+}
+
   void generate_arraycopy_stubs() {
     address entry;
     address entry_jbyte_arraycopy;
@@ -3218,6 +3372,10 @@ class StubGenerator: public StubCodeGenerator {
     StubRoutines::_arrayof_jbyte_fill = generate_fill(T_BYTE, true, "arrayof_jbyte_fill");
     StubRoutines::_arrayof_jshort_fill = generate_fill(T_SHORT, true, "arrayof_jshort_fill");
     StubRoutines::_arrayof_jint_fill = generate_fill(T_INT, true, "arrayof_jint_fill");
+
+    if (UseBlockZeroing) {
+      StubRoutines::_zero_aligned_words = generate_zero_aligned_words("zero_aligned_words");
+    }
   }
 
   void generate_initial() {
@@ -3255,7 +3413,7 @@ class StubGenerator: public StubCodeGenerator {
     StubRoutines::_throw_WrongMethodTypeException_entry =
       generate_throw_exception("WrongMethodTypeException throw_exception",
                                CAST_FROM_FN_PTR(address, SharedRuntime::throw_WrongMethodTypeException),
-                               false, G5_method_type, G3_method_handle);
+                               G5_method_type, G3_method_handle);
   }
 
 
@@ -3266,12 +3424,10 @@ class StubGenerator: public StubCodeGenerator {
     // UseZeroBaseCompressedOops which is defined after heap initialization.
     StubRoutines::Sparc::_partial_subtype_check                = generate_partial_subtype_check();
     // These entry points require SharedInfo::stack0 to be set up in non-core builds
-    StubRoutines::_throw_AbstractMethodError_entry         = generate_throw_exception("AbstractMethodError throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError),  false);
-    StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError),  false);
-    StubRoutines::_throw_ArithmeticException_entry         = generate_throw_exception("ArithmeticException throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_ArithmeticException),  true);
-    StubRoutines::_throw_NullPointerException_entry        = generate_throw_exception("NullPointerException throw_exception",         CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException), true);
-    StubRoutines::_throw_NullPointerException_at_call_entry= generate_throw_exception("NullPointerException at call throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException_at_call), false);
-    StubRoutines::_throw_StackOverflowError_entry          = generate_throw_exception("StackOverflowError throw_exception",           CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError),   false);
+    StubRoutines::_throw_AbstractMethodError_entry         = generate_throw_exception("AbstractMethodError throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError));
+    StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError));
+    StubRoutines::_throw_NullPointerException_at_call_entry= generate_throw_exception("NullPointerException at call throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException_at_call));
+    StubRoutines::_throw_StackOverflowError_entry          = generate_throw_exception("StackOverflowError throw_exception",           CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError));
 
     StubRoutines::_handler_for_unsafe_access_entry =
       generate_handler_for_unsafe_access();
diff --git a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp
index 99b980c..8ec7d06 100644
--- a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp
@@ -190,9 +190,7 @@ address TemplateInterpreterGenerator::generate_return_entry_for(TosState state,
   const Register size  = G1_scratch;
   if (EnableInvokeDynamic) {
     __ ldub(Address(Lbcp, 0), G1_scratch);  // Load current bytecode.
-    __ cmp(G1_scratch, Bytecodes::_invokedynamic);
-    __ br(Assembler::equal, false, Assembler::pn, L_giant_index);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G1_scratch, Bytecodes::_invokedynamic, Assembler::equal, Assembler::pn, L_giant_index);
   }
   __ get_cache_and_index_at_bcp(cache, G1_scratch, 1);
   __ bind(L_got_cache);
@@ -207,8 +205,7 @@ address TemplateInterpreterGenerator::generate_return_entry_for(TosState state,
   if (EnableInvokeDynamic) {
     __ bind(L_giant_index);
     __ get_cache_and_index_at_bcp(cache, G1_scratch, 1, sizeof(u4));
-    __ ba(false, L_got_cache);
-    __ delayed()->nop();
+    __ ba_short(L_got_cache);
   }
 
   return entry;
@@ -221,9 +218,7 @@ address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, i
   { Label L;
     Address exception_addr(G2_thread, Thread::pending_exception_offset());
     __ ld_ptr(exception_addr, Gtemp);  // Load pending exception.
-    __ tst(Gtemp);
-    __ brx(Assembler::equal, false, Assembler::pt, L);
-    __ delayed()->nop();
+    __ br_null_short(Gtemp, Assembler::pt, L);
     __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_pending_exception));
     __ should_not_reach_here();
     __ bind(L);
@@ -304,8 +299,7 @@ void InterpreterGenerator::generate_counter_incr(Label* overflow, Label* profile
     if (ProfileInterpreter) {
       // If no method data exists, go to profile_continue.
       __ ld_ptr(Lmethod, methodOopDesc::method_data_offset(), G4_scratch);
-      __ br_null(G4_scratch, false, Assembler::pn, no_mdo);
-      __ delayed()->nop();
+      __ br_null_short(G4_scratch, Assembler::pn, no_mdo);
       // Increment counter
       Address mdo_invocation_counter(G4_scratch,
                                      in_bytes(methodDataOopDesc::invocation_counter_offset()) +
@@ -313,8 +307,7 @@ void InterpreterGenerator::generate_counter_incr(Label* overflow, Label* profile
       __ increment_mask_and_jump(mdo_invocation_counter, increment, mask,
                                  G3_scratch, Lscratch,
                                  Assembler::zero, overflow);
-      __ ba(false, done);
-      __ delayed()->nop();
+      __ ba_short(done);
     }
 
     // Increment counter in methodOop
@@ -340,9 +333,7 @@ void InterpreterGenerator::generate_counter_incr(Label* overflow, Label* profile
       // Test to see if we should create a method data oop
       AddressLiteral profile_limit((address)&InvocationCounter::InterpreterProfileLimit);
       __ load_contents(profile_limit, G3_scratch);
-      __ cmp(O0, G3_scratch);
-      __ br(Assembler::lessUnsigned, false, Assembler::pn, *profile_method_continue);
-      __ delayed()->nop();
+      __ cmp_and_br_short(O0, G3_scratch, Assembler::lessUnsigned, Assembler::pn, *profile_method_continue);
 
       // if no method data exists, go to profile_method
       __ test_method_data_pointer(*profile_method);
@@ -351,7 +342,7 @@ void InterpreterGenerator::generate_counter_incr(Label* overflow, Label* profile
     AddressLiteral invocation_limit((address)&InvocationCounter::InterpreterInvocationLimit);
     __ load_contents(invocation_limit, G3_scratch);
     __ cmp(O0, G3_scratch);
-    __ br(Assembler::greaterEqualUnsigned, false, Assembler::pn, *overflow);
+    __ br(Assembler::greaterEqualUnsigned, false, Assembler::pn, *overflow); // Far distance
     __ delayed()->nop();
   }
 
@@ -410,19 +401,14 @@ void TemplateInterpreterGenerator::generate_stack_overflow_check(Register Rframe
 
   assert_different_registers(Rframe_size, Rscratch, Rscratch2);
 
-  __ set( page_size,   Rscratch );
-  __ cmp( Rframe_size, Rscratch );
-
-  __ br( Assembler::lessEqual, false, Assembler::pt, after_frame_check );
-  __ delayed()->nop();
+  __ set(page_size, Rscratch);
+  __ cmp_and_br_short(Rframe_size, Rscratch, Assembler::lessEqual, Assembler::pt, after_frame_check);
 
   // get the stack base, and in debug, verify it is non-zero
   __ ld_ptr( G2_thread, Thread::stack_base_offset(), Rscratch );
 #ifdef ASSERT
   Label base_not_zero;
-  __ cmp( Rscratch, G0 );
-  __ brx( Assembler::notEqual, false, Assembler::pn, base_not_zero );
-  __ delayed()->nop();
+  __ br_notnull_short(Rscratch, Assembler::pn, base_not_zero);
   __ stop("stack base is zero in generate_stack_overflow_check");
   __ bind(base_not_zero);
 #endif
@@ -432,9 +418,7 @@ void TemplateInterpreterGenerator::generate_stack_overflow_check(Register Rframe
   __ ld_ptr( G2_thread, Thread::stack_size_offset(), Rscratch2 );
 #ifdef ASSERT
   Label size_not_zero;
-  __ cmp( Rscratch2, G0 );
-  __ brx( Assembler::notEqual, false, Assembler::pn, size_not_zero );
-  __ delayed()->nop();
+  __ br_notnull_short(Rscratch2, Assembler::pn, size_not_zero);
   __ stop("stack size is zero in generate_stack_overflow_check");
   __ bind(size_not_zero);
 #endif
@@ -450,9 +434,7 @@ void TemplateInterpreterGenerator::generate_stack_overflow_check(Register Rframe
 
   // the frame is greater than one page in size, so check against
   // the bottom of the stack
-  __ cmp( SP, Rscratch );
-  __ brx( Assembler::greater, false, Assembler::pt, after_frame_check );
-  __ delayed()->nop();
+  __ cmp_and_brx_short(SP, Rscratch, Assembler::greater, Assembler::pt, after_frame_check);
 
   // Save the return address as the exception pc
   __ st_ptr(O7, saved_exception_pc);
@@ -624,9 +606,7 @@ address InterpreterGenerator::generate_empty_entry(void) {
     // If we need a safepoint check, generate full interpreter entry.
     AddressLiteral sync_state(SafepointSynchronize::address_of_state());
     __ set(sync_state, G3_scratch);
-    __ cmp(G3_scratch, SafepointSynchronize::_not_synchronized);
-    __ br(Assembler::notEqual, false, Assembler::pn, slow_path);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G3_scratch, SafepointSynchronize::_not_synchronized, Assembler::notEqual, Assembler::pn, slow_path);
 
     // Code: _return
     __ retl();
@@ -664,14 +644,12 @@ address InterpreterGenerator::generate_accessor_entry(void) {
     AddressLiteral sync_state(SafepointSynchronize::address_of_state());
     __ load_contents(sync_state, G3_scratch);
     __ cmp(G3_scratch, SafepointSynchronize::_not_synchronized);
-    __ br(Assembler::notEqual, false, Assembler::pn, slow_path);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G3_scratch, SafepointSynchronize::_not_synchronized, Assembler::notEqual, Assembler::pn, slow_path);
 
     // Check if local 0 != NULL
     __ ld_ptr(Gargs, G0, Otos_i ); // get local 0
-    __ tst(Otos_i);  // check if local 0 == NULL and go the slow path
-    __ brx(Assembler::zero, false, Assembler::pn, slow_path);
-    __ delayed()->nop();
+    // check if local 0 == NULL and go the slow path
+    __ br_null_short(Otos_i, Assembler::pn, slow_path);
 
 
     // read first instruction word and extract bytecode @ 1 and index @ 2
@@ -697,9 +675,7 @@ address InterpreterGenerator::generate_accessor_entry(void) {
     __ ld_ptr(G3_scratch, cp_base_offset + ConstantPoolCacheEntry::indices_offset(), G1_scratch);
     __ srl(G1_scratch, 2*BitsPerByte, G1_scratch);
     __ and3(G1_scratch, 0xFF, G1_scratch);
-    __ cmp(G1_scratch, Bytecodes::_getfield);
-    __ br(Assembler::notEqual, false, Assembler::pn, slow_path);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G1_scratch, Bytecodes::_getfield, Assembler::notEqual, Assembler::pn, slow_path);
 
     // Get the type and return field offset from the constant pool cache
     __ ld_ptr(G3_scratch, cp_base_offset + ConstantPoolCacheEntry::flags_offset(), G1_scratch);
@@ -787,9 +763,8 @@ address InterpreterGenerator::generate_Reference_get_entry(void) {
     // Check if local 0 != NULL
     // If the receiver is null then it is OK to jump to the slow path.
     __ ld_ptr(Gargs, G0, Otos_i ); // get local 0
-    __ tst(Otos_i);  // check if local 0 == NULL and go the slow path
-    __ brx(Assembler::zero, false, Assembler::pn, slow_path);
-    __ delayed()->nop();
+    // check if local 0 == NULL and go the slow path
+    __ cmp_and_brx_short(Otos_i, 0, Assembler::equal, Assembler::pn, slow_path);
 
 
     // Load the value of the referent field.
@@ -952,9 +927,7 @@ address InterpreterGenerator::generate_native_entry(bool synchronized) {
   { Label L;
     Address signature_handler(Lmethod, methodOopDesc::signature_handler_offset());
     __ ld_ptr(signature_handler, G3_scratch);
-    __ tst(G3_scratch);
-    __ brx(Assembler::notZero, false, Assembler::pt, L);
-    __ delayed()->nop();
+    __ br_notnull_short(G3_scratch, Assembler::pt, L);
     __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::prepare_native_call), Lmethod);
     __ ld_ptr(signature_handler, G3_scratch);
     __ bind(L);
@@ -1019,9 +992,7 @@ address InterpreterGenerator::generate_native_entry(bool synchronized) {
 #ifdef ASSERT
     if (!PrintSignatureHandlers)  // do not dirty the output with this
     { Label L;
-      __ tst(O1);
-      __ brx(Assembler::notZero, false, Assembler::pt, L);
-      __ delayed()->nop();
+      __ br_notnull_short(O1, Assembler::pt, L);
       __ stop("mirror is missing");
       __ bind(L);
     }
@@ -1038,9 +1009,7 @@ address InterpreterGenerator::generate_native_entry(bool synchronized) {
 
 #ifdef ASSERT
   { Label L;
-    __ tst(O0);
-    __ brx(Assembler::notZero, false, Assembler::pt, L);
-    __ delayed()->nop();
+    __ br_notnull_short(O0, Assembler::pt, L);
     __ stop("native entry point is missing");
     __ bind(L);
   }
@@ -1079,9 +1048,7 @@ address InterpreterGenerator::generate_native_entry(bool synchronized) {
 #ifdef ASSERT
   { Label L;
     __ ld(thread_state, G3_scratch);
-    __ cmp(G3_scratch, _thread_in_Java);
-    __ br(Assembler::equal, false, Assembler::pt, L);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G3_scratch, _thread_in_Java, Assembler::equal, Assembler::pt, L);
     __ stop("Wrong thread state in native stub");
     __ bind(L);
   }
@@ -1134,9 +1101,7 @@ address InterpreterGenerator::generate_native_entry(bool synchronized) {
     Label L;
     __ br(Assembler::notEqual, false, Assembler::pn, L);
     __ delayed()->ld(G2_thread, JavaThread::suspend_flags_offset(), G3_scratch);
-    __ cmp(G3_scratch, 0);
-    __ br(Assembler::equal, false, Assembler::pt, no_block);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G3_scratch, 0, Assembler::equal, Assembler::pt, no_block);
     __ bind(L);
 
     // Block.  Save any potential method result value before the operation and
@@ -1185,9 +1150,7 @@ address InterpreterGenerator::generate_native_entry(bool synchronized) {
     Label no_oop, store_result;
 
     __ set((intptr_t)AbstractInterpreter::result_handler(T_OBJECT), G3_scratch);
-    __ cmp(G3_scratch, Lscratch);
-    __ brx(Assembler::notEqual, false, Assembler::pt, no_oop);
-    __ delayed()->nop();
+    __ cmp_and_brx_short(G3_scratch, Lscratch, Assembler::notEqual, Assembler::pt, no_oop);
     __ addcc(G0, O0, O0);
     __ brx(Assembler::notZero, true, Assembler::pt, store_result);     // if result is not NULL:
     __ delayed()->ld_ptr(O0, 0, O0);                                   // unbox it
@@ -1206,9 +1169,7 @@ address InterpreterGenerator::generate_native_entry(bool synchronized) {
   { Label L;
     Address exception_addr(G2_thread, Thread::pending_exception_offset());
     __ ld_ptr(exception_addr, Gtemp);
-    __ tst(Gtemp);
-    __ brx(Assembler::equal, false, Assembler::pt, L);
-    __ delayed()->nop();
+    __ br_null_short(Gtemp, Assembler::pt, L);
     // Note: This could be handled more efficiently since we know that the native
     //       method doesn't have an exception handler. We could directly return
     //       to the exception handler for the caller.
@@ -1245,9 +1206,7 @@ address InterpreterGenerator::generate_native_entry(bool synchronized) {
 #ifdef ASSERT
   {
     Label ok;
-    __ cmp(I5_savedSP, FP);
-    __ brx(Assembler::greaterEqualUnsigned, false, Assembler::pt, ok);
-    __ delayed()->nop();
+    __ cmp_and_brx_short(I5_savedSP, FP, Assembler::greaterEqualUnsigned, Assembler::pt, ok);
     __ stop("bad I5_savedSP value");
     __ should_not_reach_here();
     __ bind(ok);
@@ -1429,8 +1388,7 @@ address InterpreterGenerator::generate_normal_entry(bool synchronized) {
 
       __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::profile_method));
       __ set_method_data_pointer_for_bcp();
-      __ ba(false, profile_method_continue);
-      __ delayed()->nop();
+      __ ba_short(profile_method_continue);
     }
 
     // handle invocation counter overflow
@@ -1856,9 +1814,7 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
     // adapter frames in C2.
     Label caller_not_deoptimized;
     __ call_VM_leaf(L7_thread_cache, CAST_FROM_FN_PTR(address, InterpreterRuntime::interpreter_contains), I7);
-    __ tst(O0);
-    __ brx(Assembler::notEqual, false, Assembler::pt, caller_not_deoptimized);
-    __ delayed()->nop();
+    __ br_notnull_short(O0, Assembler::pt, caller_not_deoptimized);
 
     const Register Gtmp1 = G3_scratch;
     const Register Gtmp2 = G1_scratch;
@@ -1992,10 +1948,10 @@ address TemplateInterpreterGenerator::generate_earlyret_entry_for(TosState state
 void TemplateInterpreterGenerator::set_vtos_entry_points(Template* t, address& bep, address& cep, address& sep, address& aep, address& iep, address& lep, address& fep, address& dep, address& vep) {
   assert(t->is_valid() && t->tos_in() == vtos, "illegal template");
   Label L;
-  aep = __ pc(); __ push_ptr(); __ ba(false, L); __ delayed()->nop();
-  fep = __ pc(); __ push_f();   __ ba(false, L); __ delayed()->nop();
-  dep = __ pc(); __ push_d();   __ ba(false, L); __ delayed()->nop();
-  lep = __ pc(); __ push_l();   __ ba(false, L); __ delayed()->nop();
+  aep = __ pc(); __ push_ptr(); __ ba_short(L);
+  fep = __ pc(); __ push_f();   __ ba_short(L);
+  dep = __ pc(); __ push_d();   __ ba_short(L);
+  lep = __ pc(); __ push_l();   __ ba_short(L);
   iep = __ pc(); __ push_i();
   bep = cep = sep = iep;                        // there aren't any
   vep = __ pc(); __ bind(L);                    // fall through
diff --git a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp
index 82acec5..850dbe6 100644
--- a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp
@@ -149,39 +149,68 @@ Address TemplateTable::at_bcp(int offset) {
 }
 
 
-void TemplateTable::patch_bytecode(Bytecodes::Code bc, Register Rbyte_code,
-                                   Register Rscratch,
-                                   bool load_bc_into_scratch /*=true*/) {
+void TemplateTable::patch_bytecode(Bytecodes::Code bc, Register bc_reg,
+                                   Register temp_reg, bool load_bc_into_bc_reg/*=true*/,
+                                   int byte_no) {
   // With sharing on, may need to test methodOop flag.
-  if (!RewriteBytecodes) return;
-  if (load_bc_into_scratch) __ set(bc, Rbyte_code);
-  Label patch_done;
+  if (!RewriteBytecodes)  return;
+  Label L_patch_done;
+
+  switch (bc) {
+  case Bytecodes::_fast_aputfield:
+  case Bytecodes::_fast_bputfield:
+  case Bytecodes::_fast_cputfield:
+  case Bytecodes::_fast_dputfield:
+  case Bytecodes::_fast_fputfield:
+  case Bytecodes::_fast_iputfield:
+  case Bytecodes::_fast_lputfield:
+  case Bytecodes::_fast_sputfield:
+    {
+      // We skip bytecode quickening for putfield instructions when
+      // the put_code written to the constant pool cache is zero.
+      // This is required so that every execution of this instruction
+      // calls out to InterpreterRuntime::resolve_get_put to do
+      // additional, required work.
+      assert(byte_no == f1_byte || byte_no == f2_byte, "byte_no out of range");
+      assert(load_bc_into_bc_reg, "we use bc_reg as temp");
+      __ get_cache_and_index_and_bytecode_at_bcp(bc_reg, temp_reg, temp_reg, byte_no, 1);
+      __ set(bc, bc_reg);
+      __ cmp_and_br_short(temp_reg, 0, Assembler::equal, Assembler::pn, L_patch_done);  // don't patch
+    }
+    break;
+  default:
+    assert(byte_no == -1, "sanity");
+    if (load_bc_into_bc_reg) {
+      __ set(bc, bc_reg);
+    }
+  }
+
   if (JvmtiExport::can_post_breakpoint()) {
-    Label fast_patch;
-    __ ldub(at_bcp(0), Rscratch);
-    __ cmp(Rscratch, Bytecodes::_breakpoint);
-    __ br(Assembler::notEqual, false, Assembler::pt, fast_patch);
-    __ delayed()->nop();  // don't bother to hoist the stb here
+    Label L_fast_patch;
+    __ ldub(at_bcp(0), temp_reg);
+    __ cmp_and_br_short(temp_reg, Bytecodes::_breakpoint, Assembler::notEqual, Assembler::pt, L_fast_patch);
     // perform the quickening, slowly, in the bowels of the breakpoint table
-    __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::set_original_bytecode_at), Lmethod, Lbcp, Rbyte_code);
-    __ ba(false, patch_done);
-    __ delayed()->nop();
-    __ bind(fast_patch);
+    __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::set_original_bytecode_at), Lmethod, Lbcp, bc_reg);
+    __ ba_short(L_patch_done);
+    __ bind(L_fast_patch);
   }
+
 #ifdef ASSERT
   Bytecodes::Code orig_bytecode =  Bytecodes::java_code(bc);
-  Label okay;
-  __ ldub(at_bcp(0), Rscratch);
-  __ cmp(Rscratch, orig_bytecode);
-  __ br(Assembler::equal, false, Assembler::pt, okay);
-  __ delayed() ->cmp(Rscratch, Rbyte_code);
-  __ br(Assembler::equal, false, Assembler::pt, okay);
+  Label L_okay;
+  __ ldub(at_bcp(0), temp_reg);
+  __ cmp(temp_reg, orig_bytecode);
+  __ br(Assembler::equal, false, Assembler::pt, L_okay);
+  __ delayed()->cmp(temp_reg, bc_reg);
+  __ br(Assembler::equal, false, Assembler::pt, L_okay);
   __ delayed()->nop();
-  __ stop("Rewriting wrong bytecode location");
-  __ bind(okay);
+  __ stop("patching the wrong bytecode");
+  __ bind(L_okay);
 #endif
-  __ stb(Rbyte_code, at_bcp(0));
-  __ bind(patch_done);
+
+  // patch bytecode
+  __ stb(bc_reg, at_bcp(0));
+  __ bind(L_patch_done);
 }
 
 //----------------------------------------------------------------------------------------------------
@@ -281,17 +310,14 @@ void TemplateTable::ldc(bool wide) {
   // get type from tags
   __ add(O2, tags_offset, O2);
   __ ldub(O2, O1, O2);
-  __ cmp(O2, JVM_CONSTANT_UnresolvedString);    // unresolved string? If so, must resolve
-  __ brx(Assembler::equal, true, Assembler::pt, call_ldc);
-  __ delayed()->nop();
+  // unresolved string? If so, must resolve
+  __ cmp_and_brx_short(O2, JVM_CONSTANT_UnresolvedString, Assembler::equal, Assembler::pt, call_ldc);
 
-  __ cmp(O2, JVM_CONSTANT_UnresolvedClass);     // unresolved class? If so, must resolve
-  __ brx(Assembler::equal, true, Assembler::pt, call_ldc);
-  __ delayed()->nop();
+  // unresolved class? If so, must resolve
+  __ cmp_and_brx_short(O2, JVM_CONSTANT_UnresolvedClass, Assembler::equal, Assembler::pt, call_ldc);
 
-  __ cmp(O2, JVM_CONSTANT_UnresolvedClassInError);     // unresolved class in error state
-  __ brx(Assembler::equal, true, Assembler::pn, call_ldc);
-  __ delayed()->nop();
+  // unresolved class in error state
+  __ cmp_and_brx_short(O2, JVM_CONSTANT_UnresolvedClassInError, Assembler::equal, Assembler::pn, call_ldc);
 
   __ cmp(O2, JVM_CONSTANT_Class);      // need to call vm to get java mirror of the class
   __ brx(Assembler::notEqual, true, Assembler::pt, notClass);
@@ -301,8 +327,7 @@ void TemplateTable::ldc(bool wide) {
   __ set(wide, O1);
   call_VM(Otos_i, CAST_FROM_FN_PTR(address, InterpreterRuntime::ldc), O1);
   __ push(atos);
-  __ ba(false, exit);
-  __ delayed()->nop();
+  __ ba_short(exit);
 
   __ bind(notClass);
  // __ add(O0, base_offset, O0);
@@ -312,8 +337,7 @@ void TemplateTable::ldc(bool wide) {
   __ delayed()->cmp(O2, JVM_CONSTANT_String);
   __ ld(O0, O1, Otos_i);
   __ push(itos);
-  __ ba(false, exit);
-  __ delayed()->nop();
+  __ ba_short(exit);
 
   __ bind(notInt);
  // __ cmp(O2, JVM_CONSTANT_String);
@@ -325,8 +349,7 @@ void TemplateTable::ldc(bool wide) {
   __ ld_ptr(O0, O1, Otos_i);
   __ verify_oop(Otos_i);
   __ push(atos);
-  __ ba(false, exit);
-  __ delayed()->nop();
+  __ ba_short(exit);
 
   __ bind(notString);
  // __ ldf(FloatRegisterImpl::S, O0, O1, Ftos_f);
@@ -365,9 +388,7 @@ void TemplateTable::fast_aldc(bool wide) {
   __ load_klass(Otos_i, Rcon_klass);
   AddressLiteral array_klass_addr((address)Universe::systemObjArrayKlassObj_addr());
   __ load_contents(array_klass_addr, Rarray_klass);
-  __ cmp(Rarray_klass, Rcon_klass);
-  __ brx(Assembler::notEqual, false, Assembler::pt, L_done);
-  __ delayed()->nop();
+  __ cmp_and_brx_short(Rarray_klass, Rcon_klass, Assembler::notEqual, Assembler::pt, L_done);
   __ ld(Address(Otos_i, arrayOopDesc::length_offset_in_bytes()), Rcon_klass);
   __ tst(Rcon_klass);
   __ brx(Assembler::zero, true, Assembler::pt, L_done);
@@ -397,9 +418,7 @@ void TemplateTable::ldc2_w() {
   __ sll(O1, LogBytesPerWord, O1);
   __ add(O0, O1, G3_scratch);
 
-  __ cmp(O2, JVM_CONSTANT_Double);
-  __ brx(Assembler::notEqual, false, Assembler::pt, Long);
-  __ delayed()->nop();
+  __ cmp_and_brx_short(O2, JVM_CONSTANT_Double, Assembler::notEqual, Assembler::pt, Long);
   // A double can be placed at word-aligned locations in the constant pool.
   // Check out Conversions.java for an example.
   // Also constantPoolOopDesc::header_size() is 20, which makes it very difficult
@@ -413,8 +432,7 @@ void TemplateTable::ldc2_w() {
          f->successor());
 #endif
   __ push(dtos);
-  __ ba(false, exit);
-  __ delayed()->nop();
+  __ ba_short(exit);
 
   __ bind(Long);
 #ifdef _LP64
@@ -453,9 +471,7 @@ void TemplateTable::iload() {
     // last two iloads in a pair.  Comparing against fast_iload means that
     // the next bytecode is neither an iload or a caload, and therefore
     // an iload pair.
-    __ cmp(G3_scratch, (int)Bytecodes::_iload);
-    __ br(Assembler::equal, false, Assembler::pn, done);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G3_scratch, (int)Bytecodes::_iload, Assembler::equal, Assembler::pn, done);
 
     __ cmp(G3_scratch, (int)Bytecodes::_fast_iload);
     __ br(Assembler::equal, false, Assembler::pn, rewrite);
@@ -697,9 +713,7 @@ void TemplateTable::aload_0() {
     aload(0);
 
     // if _getfield then wait with rewrite
-    __ cmp(G3_scratch, (int)Bytecodes::_getfield);
-    __ br(Assembler::equal, false, Assembler::pn, done);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G3_scratch, (int)Bytecodes::_getfield, Assembler::equal, Assembler::pn, done);
 
     // if _igetfield then rewrite to _fast_iaccess_0
     assert(Bytecodes::java_code(Bytecodes::_fast_iaccess_0) == Bytecodes::_aload_0, "adjust fast bytecode def");
@@ -867,8 +881,7 @@ void TemplateTable::aastore() {
   __ index_check_without_pop(O3, O2, UseCompressedOops ? 2 : LogBytesPerWord, G3_scratch, O1);
 
   // do array store check - check for NULL value first
-  __ br_null( Otos_i, false, Assembler::pn, is_null );
-  __ delayed()->nop();
+  __ br_null_short( Otos_i, Assembler::pn, is_null );
 
   __ load_klass(O3, O4); // get array klass
   __ load_klass(Otos_i, O5); // get value klass
@@ -899,7 +912,7 @@ void TemplateTable::aastore() {
   __ bind(store_ok);
   do_oop_store(_masm, O1, noreg, arrayOopDesc::base_offset_in_bytes(T_OBJECT), Otos_i, G3_scratch, _bs->kind(), true);
 
-  __ ba(false,done);
+  __ ba(done);
   __ delayed()->inc(Lesp, 3* Interpreter::stackElementSize); // adj sp (pops array, index and value)
 
   __ bind(is_null);
@@ -1633,16 +1646,14 @@ void TemplateTable::branch(bool is_jsr, bool is_wide) {
       if (ProfileInterpreter) {
         // If no method data exists, go to profile_continue.
         __ ld_ptr(Lmethod, methodOopDesc::method_data_offset(), G4_scratch);
-        __ br_null(G4_scratch, false, Assembler::pn, Lno_mdo);
-        __ delayed()->nop();
+        __ br_null_short(G4_scratch, Assembler::pn, Lno_mdo);
 
         // Increment backedge counter in the MDO
         Address mdo_backedge_counter(G4_scratch, in_bytes(methodDataOopDesc::backedge_counter_offset()) +
                                                  in_bytes(InvocationCounter::counter_offset()));
         __ increment_mask_and_jump(mdo_backedge_counter, increment, mask, G3_scratch, Lscratch,
                                    Assembler::notZero, &Lforward);
-        __ ba(false, Loverflow);
-        __ delayed()->nop();
+        __ ba_short(Loverflow);
       }
 
       // If there's no MDO, increment counter in methodOop
@@ -1658,14 +1669,11 @@ void TemplateTable::branch(bool is_jsr, bool is_wide) {
 
       // Was an OSR adapter generated?
       // O0 = osr nmethod
-      __ br_null(O0, false, Assembler::pn, Lforward);
-      __ delayed()->nop();
+      __ br_null_short(O0, Assembler::pn, Lforward);
 
       // Has the nmethod been invalidated already?
       __ ld(O0, nmethod::entry_bci_offset(), O2);
-      __ cmp(O2, InvalidOSREntryBci);
-      __ br(Assembler::equal, false, Assembler::pn, Lforward);
-      __ delayed()->nop();
+      __ cmp_and_br_short(O2, InvalidOSREntryBci, Assembler::equal, Assembler::pn, Lforward);
 
       // migrate the interpreter frame off of the stack
 
@@ -1830,7 +1838,7 @@ void TemplateTable::tableswitch() {
   __ profile_switch_case(O2, O3, G3_scratch, G4_scratch);
   __ sll(O2, LogBytesPerInt, O2);
   __ add(O2, 3 * BytesPerInt, O2);
-  __ ba(false, continue_execution);
+  __ ba(continue_execution);
   __ delayed()->ld(O1, O2, O2);
   // handle default
   __ bind(default_case);
@@ -1858,7 +1866,7 @@ void TemplateTable::fast_linearswitch() {
   __ ld(O1, BytesPerInt, O2);
   __ sll(O2, LogBytesPerInt + 1, O2); // in word-pairs
   __ add(O1, 2 * BytesPerInt, O3); // set first pair addr
-  __ ba(false, loop_entry);
+  __ ba(loop_entry);
   __ delayed()->add(O3, O2, O2); // counter now points past last pair
 
   // table search
@@ -1877,8 +1885,7 @@ void TemplateTable::fast_linearswitch() {
   __ ld(O1, 0, O4); // get default offset
   if (ProfileInterpreter) {
     __ profile_switch_default(O3);
-    __ ba(false, continue_execution);
-    __ delayed()->nop();
+    __ ba_short(continue_execution);
   }
 
   // entry found -> get offset
@@ -1944,7 +1951,7 @@ void TemplateTable::fast_binaryswitch() {
 
   // and start
   Label entry;
-  __ ba(false, entry);
+  __ ba(entry);
   __ delayed()->ld( Rarray, -BytesPerInt, Rj);
   // (Rj is already in the native byte-ordering.)
 
@@ -2002,8 +2009,7 @@ void TemplateTable::fast_binaryswitch() {
   // (Rj is already in the native byte-ordering.)
 
   if (ProfileInterpreter) {
-    __ ba(false, continue_execution);
-    __ delayed()->nop();
+    __ ba_short(continue_execution);
   }
 
   __ bind(default_case); // fall through (if not profiling)
@@ -2087,12 +2093,12 @@ void TemplateTable::resolve_cache_and_index(int byte_no,
   // Depends on cpCacheOop layout!
   Label resolved;
 
-  __ get_cache_and_index_at_bcp(Rcache, index, 1, index_size);
   if (byte_no == f1_oop) {
     // We are resolved if the f1 field contains a non-null object (CallSite, etc.)
     // This kind of CP cache entry does not need to match the flags byte, because
     // there is a 1-1 relation between bytecode type and CP entry type.
     assert_different_registers(result, Rcache);
+    __ get_cache_and_index_at_bcp(Rcache, index, 1, index_size);
     __ ld_ptr(Rcache, constantPoolCacheOopDesc::base_offset() +
               ConstantPoolCacheEntry::f1_offset(), result);
     __ tst(result);
@@ -2101,15 +2107,9 @@ void TemplateTable::resolve_cache_and_index(int byte_no,
   } else {
     assert(byte_no == f1_byte || byte_no == f2_byte, "byte_no out of range");
     assert(result == noreg, "");  //else change code for setting result
-    const int shift_count = (1 + byte_no)*BitsPerByte;
-
-    __ ld_ptr(Rcache, constantPoolCacheOopDesc::base_offset() +
-              ConstantPoolCacheEntry::indices_offset(), Lbyte_code);
-
-    __ srl(  Lbyte_code, shift_count, Lbyte_code );
-    __ and3( Lbyte_code,        0xFF, Lbyte_code );
-    __ cmp(  Lbyte_code, (int)bytecode());
-    __ br(   Assembler::equal, false, Assembler::pt, resolved);
+    __ get_cache_and_index_and_bytecode_at_bcp(Rcache, index, Lbyte_code, byte_no, 1, index_size);
+    __ cmp(Lbyte_code, (int) bytecode());  // have we resolved this bytecode?
+    __ br(Assembler::equal, false, Assembler::pt, resolved);
     __ delayed()->set((int)bytecode(), O1);
   }
 
@@ -2216,9 +2216,7 @@ void TemplateTable::jvmti_post_field_access(Register Rcache,
     assert_different_registers(Rcache, index, G1_scratch);
     AddressLiteral get_field_access_count_addr(JvmtiExport::get_field_access_count_addr());
     __ load_contents(get_field_access_count_addr, G1_scratch);
-    __ tst(G1_scratch);
-    __ br(Assembler::zero, false, Assembler::pt, Label1);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G1_scratch, 0, Assembler::equal, Assembler::pt, Label1);
 
     __ add(Rcache, in_bytes(cp_base_offset), Rcache);
 
@@ -2298,7 +2296,7 @@ void TemplateTable::getfield_or_static(int byte_no, bool is_static) {
   if (!is_static) {
     patch_bytecode(Bytecodes::_fast_agetfield, G3_scratch, G4_scratch);
   }
-  __ ba(false, checkVolatile);
+  __ ba(checkVolatile);
   __ delayed()->tst(Lscratch);
 
   __ bind(notObj);
@@ -2313,7 +2311,7 @@ void TemplateTable::getfield_or_static(int byte_no, bool is_static) {
   if (!is_static) {
     patch_bytecode(Bytecodes::_fast_igetfield, G3_scratch, G4_scratch);
   }
-  __ ba(false, checkVolatile);
+  __ ba(checkVolatile);
   __ delayed()->tst(Lscratch);
 
   __ bind(notInt);
@@ -2329,7 +2327,7 @@ void TemplateTable::getfield_or_static(int byte_no, bool is_static) {
   if (!is_static) {
     patch_bytecode(Bytecodes::_fast_lgetfield, G3_scratch, G4_scratch);
   }
-  __ ba(false, checkVolatile);
+  __ ba(checkVolatile);
   __ delayed()->tst(Lscratch);
 
   __ bind(notLong);
@@ -2344,7 +2342,7 @@ void TemplateTable::getfield_or_static(int byte_no, bool is_static) {
   if (!is_static) {
     patch_bytecode(Bytecodes::_fast_bgetfield, G3_scratch, G4_scratch);
   }
-  __ ba(false, checkVolatile);
+  __ ba(checkVolatile);
   __ delayed()->tst(Lscratch);
 
   __ bind(notByte);
@@ -2359,7 +2357,7 @@ void TemplateTable::getfield_or_static(int byte_no, bool is_static) {
   if (!is_static) {
     patch_bytecode(Bytecodes::_fast_cgetfield, G3_scratch, G4_scratch);
   }
-  __ ba(false, checkVolatile);
+  __ ba(checkVolatile);
   __ delayed()->tst(Lscratch);
 
   __ bind(notChar);
@@ -2374,7 +2372,7 @@ void TemplateTable::getfield_or_static(int byte_no, bool is_static) {
   if (!is_static) {
     patch_bytecode(Bytecodes::_fast_sgetfield, G3_scratch, G4_scratch);
   }
-  __ ba(false, checkVolatile);
+  __ ba(checkVolatile);
   __ delayed()->tst(Lscratch);
 
   __ bind(notShort);
@@ -2390,7 +2388,7 @@ void TemplateTable::getfield_or_static(int byte_no, bool is_static) {
   if (!is_static) {
     patch_bytecode(Bytecodes::_fast_fgetfield, G3_scratch, G4_scratch);
   }
-  __ ba(false, checkVolatile);
+  __ ba(checkVolatile);
   __ delayed()->tst(Lscratch);
 
   __ bind(notFloat);
@@ -2499,9 +2497,7 @@ void TemplateTable::jvmti_post_fast_field_mod() {
     Label done;
     AddressLiteral get_field_modification_count_addr(JvmtiExport::get_field_modification_count_addr());
     __ load_contents(get_field_modification_count_addr, G4_scratch);
-    __ tst(G4_scratch);
-    __ br(Assembler::zero, false, Assembler::pt, done);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G4_scratch, 0, Assembler::equal, Assembler::pt, done);
     __ pop_ptr(G4_scratch);     // copy the object pointer from tos
     __ verify_oop(G4_scratch);
     __ push_ptr(G4_scratch);    // put the object pointer back on tos
@@ -2552,9 +2548,7 @@ void TemplateTable::jvmti_post_field_mod(Register Rcache, Register index, bool i
     assert_different_registers(Rcache, index, G1_scratch);
     AddressLiteral get_field_modification_count_addr(JvmtiExport::get_field_modification_count_addr());
     __ load_contents(get_field_modification_count_addr, G1_scratch);
-    __ tst(G1_scratch);
-    __ br(Assembler::zero, false, Assembler::pt, Label1);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G1_scratch, 0, Assembler::zero, Assembler::pt, Label1);
 
     // The Rcache and index registers have been already set.
     // This allows to eliminate this call but the Rcache and index
@@ -2584,8 +2578,7 @@ void TemplateTable::jvmti_post_field_mod(Register Rcache, Register index, bool i
       __ br(Assembler::equal, false, Assembler::pt, two_word);
       __ delayed()->nop();
       __ inc(G4_scratch, Interpreter::expr_offset_in_bytes(1));
-      __ br(Assembler::always, false, Assembler::pt, valsizeknown);
-      __ delayed()->nop();
+      __ ba_short(valsizeknown);
       __ bind(two_word);
 
       __ inc(G4_scratch, Interpreter::expr_offset_in_bytes(2));
@@ -2636,9 +2629,7 @@ void TemplateTable::putfield_or_static(int byte_no, bool is_static) {
     __ and3(Rflags, Lscratch, Lscratch);
 
     if (__ membar_has_effect(read_bits)) {
-      __ tst(Lscratch);
-      __ br(Assembler::zero, false, Assembler::pt, notVolatile);
-      __ delayed()->nop();
+      __ cmp_and_br_short(Lscratch, 0, Assembler::equal, Assembler::pt, notVolatile);
       volatile_barrier(read_bits);
       __ bind(notVolatile);
     }
@@ -2653,150 +2644,162 @@ void TemplateTable::putfield_or_static(int byte_no, bool is_static) {
 
   if (is_static) {
     // putstatic with object type most likely, check that first
-    __ cmp(Rflags, atos );
+    __ cmp(Rflags, atos);
     __ br(Assembler::notEqual, false, Assembler::pt, notObj);
-    __ delayed() ->cmp(Rflags, itos );
+    __ delayed()->cmp(Rflags, itos);
 
     // atos
-    __ pop_ptr();
-    __ verify_oop(Otos_i);
-
-    do_oop_store(_masm, Rclass, Roffset, 0, Otos_i, G1_scratch, _bs->kind(), false);
-
-    __ ba(false, checkVolatile);
-    __ delayed()->tst(Lscratch);
+    {
+      __ pop_ptr();
+      __ verify_oop(Otos_i);
+      do_oop_store(_masm, Rclass, Roffset, 0, Otos_i, G1_scratch, _bs->kind(), false);
+      __ ba(checkVolatile);
+      __ delayed()->tst(Lscratch);
+    }
 
     __ bind(notObj);
-
-    // cmp(Rflags, itos );
+    // cmp(Rflags, itos);
     __ br(Assembler::notEqual, false, Assembler::pt, notInt);
-    __ delayed() ->cmp(Rflags, btos );
+    __ delayed()->cmp(Rflags, btos);
 
     // itos
-    __ pop_i();
-    __ st(Otos_i, Rclass, Roffset);
-    __ ba(false, checkVolatile);
-    __ delayed()->tst(Lscratch);
+    {
+      __ pop_i();
+      __ st(Otos_i, Rclass, Roffset);
+      __ ba(checkVolatile);
+      __ delayed()->tst(Lscratch);
+    }
 
     __ bind(notInt);
-
   } else {
     // putfield with int type most likely, check that first
-    __ cmp(Rflags, itos );
+    __ cmp(Rflags, itos);
     __ br(Assembler::notEqual, false, Assembler::pt, notInt);
-    __ delayed() ->cmp(Rflags, atos );
+    __ delayed()->cmp(Rflags, atos);
 
     // itos
-    __ pop_i();
-    pop_and_check_object(Rclass);
-    __ st(Otos_i, Rclass, Roffset);
-    patch_bytecode(Bytecodes::_fast_iputfield, G3_scratch, G4_scratch);
-    __ ba(false, checkVolatile);
-    __ delayed()->tst(Lscratch);
+    {
+      __ pop_i();
+      pop_and_check_object(Rclass);
+      __ st(Otos_i, Rclass, Roffset);
+      patch_bytecode(Bytecodes::_fast_iputfield, G3_scratch, G4_scratch, true, byte_no);
+      __ ba(checkVolatile);
+      __ delayed()->tst(Lscratch);
+    }
 
     __ bind(notInt);
-    // cmp(Rflags, atos );
+    // cmp(Rflags, atos);
     __ br(Assembler::notEqual, false, Assembler::pt, notObj);
-    __ delayed() ->cmp(Rflags, btos );
+    __ delayed()->cmp(Rflags, btos);
 
     // atos
-    __ pop_ptr();
-    pop_and_check_object(Rclass);
-    __ verify_oop(Otos_i);
-
-    do_oop_store(_masm, Rclass, Roffset, 0, Otos_i, G1_scratch, _bs->kind(), false);
-
-    patch_bytecode(Bytecodes::_fast_aputfield, G3_scratch, G4_scratch);
-    __ ba(false, checkVolatile);
-    __ delayed()->tst(Lscratch);
+    {
+      __ pop_ptr();
+      pop_and_check_object(Rclass);
+      __ verify_oop(Otos_i);
+      do_oop_store(_masm, Rclass, Roffset, 0, Otos_i, G1_scratch, _bs->kind(), false);
+      patch_bytecode(Bytecodes::_fast_aputfield, G3_scratch, G4_scratch, true, byte_no);
+      __ ba(checkVolatile);
+      __ delayed()->tst(Lscratch);
+    }
 
     __ bind(notObj);
   }
 
-  // cmp(Rflags, btos );
+  // cmp(Rflags, btos);
   __ br(Assembler::notEqual, false, Assembler::pt, notByte);
-  __ delayed() ->cmp(Rflags, ltos );
+  __ delayed()->cmp(Rflags, ltos);
 
   // btos
-  __ pop_i();
-  if (!is_static) pop_and_check_object(Rclass);
-  __ stb(Otos_i, Rclass, Roffset);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_bputfield, G3_scratch, G4_scratch);
+  {
+    __ pop_i();
+    if (!is_static) pop_and_check_object(Rclass);
+    __ stb(Otos_i, Rclass, Roffset);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_bputfield, G3_scratch, G4_scratch, true, byte_no);
+    }
+    __ ba(checkVolatile);
+    __ delayed()->tst(Lscratch);
   }
-  __ ba(false, checkVolatile);
-  __ delayed()->tst(Lscratch);
 
   __ bind(notByte);
-
-  // cmp(Rflags, ltos );
+  // cmp(Rflags, ltos);
   __ br(Assembler::notEqual, false, Assembler::pt, notLong);
-  __ delayed() ->cmp(Rflags, ctos );
+  __ delayed()->cmp(Rflags, ctos);
 
   // ltos
-  __ pop_l();
-  if (!is_static) pop_and_check_object(Rclass);
-  __ st_long(Otos_l, Rclass, Roffset);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_lputfield, G3_scratch, G4_scratch);
+  {
+    __ pop_l();
+    if (!is_static) pop_and_check_object(Rclass);
+    __ st_long(Otos_l, Rclass, Roffset);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_lputfield, G3_scratch, G4_scratch, true, byte_no);
+    }
+    __ ba(checkVolatile);
+    __ delayed()->tst(Lscratch);
   }
-  __ ba(false, checkVolatile);
-  __ delayed()->tst(Lscratch);
 
   __ bind(notLong);
-
-  // cmp(Rflags, ctos );
+  // cmp(Rflags, ctos);
   __ br(Assembler::notEqual, false, Assembler::pt, notChar);
-  __ delayed() ->cmp(Rflags, stos );
+  __ delayed()->cmp(Rflags, stos);
 
   // ctos (char)
-  __ pop_i();
-  if (!is_static) pop_and_check_object(Rclass);
-  __ sth(Otos_i, Rclass, Roffset);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_cputfield, G3_scratch, G4_scratch);
+  {
+    __ pop_i();
+    if (!is_static) pop_and_check_object(Rclass);
+    __ sth(Otos_i, Rclass, Roffset);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_cputfield, G3_scratch, G4_scratch, true, byte_no);
+    }
+    __ ba(checkVolatile);
+    __ delayed()->tst(Lscratch);
   }
-  __ ba(false, checkVolatile);
-  __ delayed()->tst(Lscratch);
 
   __ bind(notChar);
-  // cmp(Rflags, stos );
+  // cmp(Rflags, stos);
   __ br(Assembler::notEqual, false, Assembler::pt, notShort);
-  __ delayed() ->cmp(Rflags, ftos );
+  __ delayed()->cmp(Rflags, ftos);
 
-  // stos (char)
-  __ pop_i();
-  if (!is_static) pop_and_check_object(Rclass);
-  __ sth(Otos_i, Rclass, Roffset);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_sputfield, G3_scratch, G4_scratch);
+  // stos (short)
+  {
+    __ pop_i();
+    if (!is_static) pop_and_check_object(Rclass);
+    __ sth(Otos_i, Rclass, Roffset);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_sputfield, G3_scratch, G4_scratch, true, byte_no);
+    }
+    __ ba(checkVolatile);
+    __ delayed()->tst(Lscratch);
   }
-  __ ba(false, checkVolatile);
-  __ delayed()->tst(Lscratch);
 
   __ bind(notShort);
-  // cmp(Rflags, ftos );
+  // cmp(Rflags, ftos);
   __ br(Assembler::notZero, false, Assembler::pt, notFloat);
   __ delayed()->nop();
 
   // ftos
-  __ pop_f();
-  if (!is_static) pop_and_check_object(Rclass);
-  __ stf(FloatRegisterImpl::S, Ftos_f, Rclass, Roffset);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_fputfield, G3_scratch, G4_scratch);
+  {
+    __ pop_f();
+    if (!is_static) pop_and_check_object(Rclass);
+    __ stf(FloatRegisterImpl::S, Ftos_f, Rclass, Roffset);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_fputfield, G3_scratch, G4_scratch, true, byte_no);
+    }
+    __ ba(checkVolatile);
+    __ delayed()->tst(Lscratch);
   }
-  __ ba(false, checkVolatile);
-  __ delayed()->tst(Lscratch);
 
   __ bind(notFloat);
 
   // dtos
-  __ pop_d();
-  if (!is_static) pop_and_check_object(Rclass);
-  __ stf(FloatRegisterImpl::D, Ftos_d, Rclass, Roffset);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_dputfield, G3_scratch, G4_scratch);
+  {
+    __ pop_d();
+    if (!is_static) pop_and_check_object(Rclass);
+    __ stf(FloatRegisterImpl::D, Ftos_d, Rclass, Roffset);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_dputfield, G3_scratch, G4_scratch, true, byte_no);
+    }
   }
 
   __ bind(checkVolatile);
@@ -2833,9 +2836,7 @@ void TemplateTable::fast_storefield(TosState state) {
     __ set((1 << ConstantPoolCacheEntry::volatileField), Lscratch);
     __ and3(Rflags, Lscratch, Lscratch);
     if (__ membar_has_effect(read_bits)) {
-      __ tst(Lscratch);
-      __ br(Assembler::zero, false, Assembler::pt, notVolatile);
-      __ delayed()->nop();
+      __ cmp_and_br_short(Lscratch, 0, Assembler::equal, Assembler::pt, notVolatile);
       volatile_barrier(read_bits);
       __ bind(notVolatile);
     }
@@ -2864,9 +2865,7 @@ void TemplateTable::fast_storefield(TosState state) {
   }
 
   if (__ membar_has_effect(write_bits)) {
-    __ tst(Lscratch);
-    __ br(Assembler::zero, false, Assembler::pt, exit);
-    __ delayed()->nop();
+    __ cmp_and_br_short(Lscratch, 0, Assembler::equal, Assembler::pt, exit);
     volatile_barrier(Assembler::StoreLoad);
     __ bind(exit);
   }
@@ -3226,8 +3225,7 @@ void TemplateTable::invokeinterface(int byte_no) {
     // the VM should throw IncompatibleClassChangeError.  linkResolver checks
     // this too but that's only if the entry isn't already resolved, so we
     // need to check again.
-    __ br_notnull( Rtemp, false, Assembler::pt, ok);
-    __ delayed()->nop();
+    __ br_notnull_short( Rtemp, Assembler::pt, ok);
     call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_IncompatibleClassChangeError));
     __ should_not_reach_here();
     __ bind(ok);
@@ -3251,9 +3249,7 @@ void TemplateTable::invokeinterface(int byte_no) {
   // Check for abstract method error.
   {
     Label ok;
-    __ tst(G5_method);
-    __ brx(Assembler::notZero, false, Assembler::pt, ok);
-    __ delayed()->nop();
+    __ br_notnull_short(G5_method, Assembler::pt, ok);
     call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError));
     __ should_not_reach_here();
     __ bind(ok);
@@ -3378,7 +3374,7 @@ void TemplateTable::_new() {
 
   if(UseTLAB) {
     Register RoldTopValue = RallocatedObject;
-    Register RtopAddr = G3_scratch, RtlabWasteLimitValue = G3_scratch;
+    Register RtlabWasteLimitValue = G3_scratch;
     Register RnewTopValue = G1_scratch;
     Register RendValue = Rscratch;
     Register RfreeValue = RnewTopValue;
@@ -3408,17 +3404,14 @@ void TemplateTable::_new() {
 #else
       __ srl(RfreeValue, LogHeapWordSize, RfreeValue);
 #endif
-      __ cmp(RtlabWasteLimitValue, RfreeValue);
-      __ brx(Assembler::greaterEqualUnsigned, false, Assembler::pt, slow_case); // tlab waste is small
-      __ delayed()->nop();
+      __ cmp_and_brx_short(RtlabWasteLimitValue, RfreeValue, Assembler::greaterEqualUnsigned, Assembler::pt, slow_case); // tlab waste is small
 
       // increment waste limit to prevent getting stuck on this slow path
       __ add(RtlabWasteLimitValue, ThreadLocalAllocBuffer::refill_waste_limit_increment(), RtlabWasteLimitValue);
       __ st_ptr(RtlabWasteLimitValue, G2_thread, in_bytes(JavaThread::tlab_refill_waste_limit_offset()));
     } else {
       // No allocation in the shared eden.
-      __ br(Assembler::always, false, Assembler::pt, slow_case);
-      __ delayed()->nop();
+      __ ba_short(slow_case);
     }
   }
 
@@ -3440,18 +3433,14 @@ void TemplateTable::_new() {
 
     // RnewTopValue contains the top address after the new object
     // has been allocated.
-    __ cmp(RnewTopValue, RendValue);
-    __ brx(Assembler::greaterUnsigned, false, Assembler::pn, slow_case);
-    __ delayed()->nop();
+    __ cmp_and_brx_short(RnewTopValue, RendValue, Assembler::greaterUnsigned, Assembler::pn, slow_case);
 
     __ casx_under_lock(RtopAddr, RoldTopValue, RnewTopValue,
       VM_Version::v9_instructions_work() ? NULL :
       (address)StubRoutines::Sparc::atomic_memory_operation_lock_addr());
 
     // if someone beat us on the allocation, try again, otherwise continue
-    __ cmp(RoldTopValue, RnewTopValue);
-    __ brx(Assembler::notEqual, false, Assembler::pn, retry);
-    __ delayed()->nop();
+    __ cmp_and_brx_short(RoldTopValue, RnewTopValue, Assembler::notEqual, Assembler::pn, retry);
 
     // bump total bytes allocated by this thread
     // RoldTopValue and RtopAddr are dead, so can use G1 and G3
@@ -3466,7 +3455,11 @@ void TemplateTable::_new() {
     __ delayed()->add(RallocatedObject, sizeof(oopDesc), G3_scratch);
 
     // initialize remaining object fields
-    { Label loop;
+    if (UseBlockZeroing) {
+      // Use BIS for zeroing
+      __ bis_zeroing(G3_scratch, Roffset, G1_scratch, initialize_header);
+    } else {
+      Label loop;
       __ subcc(Roffset, wordSize, Roffset);
       __ bind(loop);
       //__ subcc(Roffset, wordSize, Roffset);      // executed above loop or in delay slot
@@ -3474,8 +3467,7 @@ void TemplateTable::_new() {
       __ br(Assembler::notEqual, false, Assembler::pt, loop);
       __ delayed()->subcc(Roffset, wordSize, Roffset);
     }
-    __ br(Assembler::always, false, Assembler::pt, initialize_header);
-    __ delayed()->nop();
+    __ ba_short(initialize_header);
   }
 
   // slow case
@@ -3485,8 +3477,7 @@ void TemplateTable::_new() {
 
   call_VM(Otos_i, CAST_FROM_FN_PTR(address, InterpreterRuntime::_new), O1, O2);
 
-  __ ba(false, done);
-  __ delayed()->nop();
+  __ ba_short(done);
 
   // Initialize the header: mark, klass
   __ bind(initialize_header);
@@ -3550,8 +3541,7 @@ void TemplateTable::checkcast() {
   Register RspecifiedKlass = O4;
 
   // Check for casting a NULL
-  __ br_null(Otos_i, false, Assembler::pn, is_null);
-  __ delayed()->nop();
+  __ br_null_short(Otos_i, Assembler::pn, is_null);
 
   // Get value klass in RobjKlass
   __ load_klass(Otos_i, RobjKlass); // get value klass
@@ -3571,8 +3561,7 @@ void TemplateTable::checkcast() {
   call_VM(RspecifiedKlass, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc) );
   __ pop_ptr(Otos_i, G3_scratch); // restore receiver
 
-  __ br(Assembler::always, false, Assembler::pt, resolved);
-  __ delayed()->nop();
+  __ ba_short(resolved);
 
   // Extract target class from constant pool
   __ bind(quicked);
@@ -3591,8 +3580,7 @@ void TemplateTable::checkcast() {
   __ bind(cast_ok);
 
   if (ProfileInterpreter) {
-    __ ba(false, done);
-    __ delayed()->nop();
+    __ ba_short(done);
   }
   __ bind(is_null);
   __ profile_null_seen(G3_scratch);
@@ -3608,8 +3596,7 @@ void TemplateTable::instanceof() {
   Register RspecifiedKlass = O4;
 
   // Check for casting a NULL
-  __ br_null(Otos_i, false, Assembler::pt, is_null);
-  __ delayed()->nop();
+  __ br_null_short(Otos_i, Assembler::pt, is_null);
 
   // Get value klass in RobjKlass
   __ load_klass(Otos_i, RobjKlass); // get value klass
@@ -3629,9 +3616,7 @@ void TemplateTable::instanceof() {
   call_VM(RspecifiedKlass, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc) );
   __ pop_ptr(Otos_i, G3_scratch); // restore receiver
 
-  __ br(Assembler::always, false, Assembler::pt, resolved);
-  __ delayed()->nop();
-
+  __ ba_short(resolved);
 
   // Extract target class from constant pool
   __ bind(quicked);
@@ -3649,8 +3634,7 @@ void TemplateTable::instanceof() {
   __ clr( Otos_i );
 
   if (ProfileInterpreter) {
-    __ ba(false, done);
-    __ delayed()->nop();
+    __ ba_short(done);
   }
   __ bind(is_null);
   __ profile_null_seen(G3_scratch);
@@ -3724,7 +3708,7 @@ void TemplateTable::monitorenter() {
   {
     Label entry, loop, exit;
     __ add( __ top_most_monitor(), O2 ); // last one to check
-    __ ba( false, entry );
+    __ ba( entry );
     __ delayed()->mov( Lmonitors, O3 ); // first one to check
 
 
@@ -3757,8 +3741,7 @@ void TemplateTable::monitorenter() {
   { Label allocated;
 
     // found free slot?
-    __ br_notnull(O1, false, Assembler::pn, allocated);
-    __ delayed()->nop();
+    __ br_notnull_short(O1, Assembler::pn, allocated);
 
     __ add_monitor_to_stack( false, O2, O3 );
     __ mov(Lmonitors, O1);
@@ -3791,7 +3774,7 @@ void TemplateTable::monitorexit() {
 
   { Label entry, loop, found;
     __ add( __ top_most_monitor(), O2 ); // last one to check
-    __ ba(false, entry );
+    __ ba(entry);
     // use Lscratch to hold monitor elem to check, start with most recent monitor,
     // By using a local it survives the call to the C routine.
     __ delayed()->mov( Lmonitors, Lscratch );
diff --git a/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp b/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp
index c45ccaa..e1429c6 100644
--- a/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp
@@ -44,24 +44,58 @@ void VM_Version::initialize() {
   PrefetchScanIntervalInBytes = prefetch_scan_interval_in_bytes();
   PrefetchFieldsAhead         = prefetch_fields_ahead();
 
+  assert(0 <= AllocatePrefetchInstr && AllocatePrefetchInstr <= 1, "invalid value");
+  if( AllocatePrefetchInstr < 0 ) AllocatePrefetchInstr = 0;
+  if( AllocatePrefetchInstr > 1 ) AllocatePrefetchInstr = 0;
+
   // Allocation prefetch settings
-  intx cache_line_size = L1_data_cache_line_size();
+  intx cache_line_size = prefetch_data_size();
   if( cache_line_size > AllocatePrefetchStepSize )
     AllocatePrefetchStepSize = cache_line_size;
-  if( FLAG_IS_DEFAULT(AllocatePrefetchLines) )
-    AllocatePrefetchLines = 3; // Optimistic value
-  assert( AllocatePrefetchLines > 0, "invalid value");
-  if( AllocatePrefetchLines < 1 ) // set valid value in product VM
-    AllocatePrefetchLines = 1; // Conservative value
+
+  assert(AllocatePrefetchLines > 0, "invalid value");
+  if( AllocatePrefetchLines < 1 )     // set valid value in product VM
+    AllocatePrefetchLines = 3;
+  assert(AllocateInstancePrefetchLines > 0, "invalid value");
+  if( AllocateInstancePrefetchLines < 1 ) // set valid value in product VM
+    AllocateInstancePrefetchLines = 1;
 
   AllocatePrefetchDistance = allocate_prefetch_distance();
   AllocatePrefetchStyle    = allocate_prefetch_style();
 
-  assert(AllocatePrefetchDistance % AllocatePrefetchStepSize == 0, "invalid value");
+  assert((AllocatePrefetchDistance % AllocatePrefetchStepSize) == 0 &&
+         (AllocatePrefetchDistance > 0), "invalid value");
+  if ((AllocatePrefetchDistance % AllocatePrefetchStepSize) != 0 ||
+      (AllocatePrefetchDistance <= 0)) {
+    AllocatePrefetchDistance = AllocatePrefetchStepSize;
+  }
+
+  if (AllocatePrefetchStyle == 3 && !has_blk_init()) {
+    warning("BIS instructions are not available on this CPU");
+    FLAG_SET_DEFAULT(AllocatePrefetchStyle, 1);
+  }
+
+  if (has_v9()) {
+    assert(ArraycopySrcPrefetchDistance < 4096, "invalid value");
+    if (ArraycopySrcPrefetchDistance >= 4096)
+      ArraycopySrcPrefetchDistance = 4064;
+    assert(ArraycopyDstPrefetchDistance < 4096, "invalid value");
+    if (ArraycopyDstPrefetchDistance >= 4096)
+      ArraycopyDstPrefetchDistance = 4064;
+  } else {
+    if (ArraycopySrcPrefetchDistance > 0) {
+      warning("prefetch instructions are not available on this CPU");
+      FLAG_SET_DEFAULT(ArraycopySrcPrefetchDistance, 0);
+    }
+    if (ArraycopyDstPrefetchDistance > 0) {
+      warning("prefetch instructions are not available on this CPU");
+      FLAG_SET_DEFAULT(ArraycopyDstPrefetchDistance, 0);
+    }
+  }
 
   UseSSE = 0; // Only on x86 and x64
 
-  _supports_cx8               = has_v9();
+  _supports_cx8 = has_v9();
 
   if (is_niagara()) {
     // Indirect branch is the same cost as direct
@@ -94,19 +128,42 @@ void VM_Version::initialize() {
       FLAG_SET_DEFAULT(InteriorEntryAlignment, 4);
     }
     if (is_niagara_plus()) {
-      if (has_blk_init() && AllocatePrefetchStyle > 0 &&
-          FLAG_IS_DEFAULT(AllocatePrefetchStyle)) {
-        // Use BIS instruction for allocation prefetch.
-        FLAG_SET_DEFAULT(AllocatePrefetchStyle, 3);
+      if (has_blk_init() && UseTLAB &&
+          FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
+        // Use BIS instruction for TLAB allocation prefetch.
+        FLAG_SET_ERGO(intx, AllocatePrefetchInstr, 1);
+        if (FLAG_IS_DEFAULT(AllocatePrefetchStyle)) {
+          FLAG_SET_ERGO(intx, AllocatePrefetchStyle, 3);
+        }
         if (FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
-          // Use smaller prefetch distance on N2 with BIS
+          // Use smaller prefetch distance with BIS
           FLAG_SET_DEFAULT(AllocatePrefetchDistance, 64);
         }
       }
+      if (is_T4()) {
+        // Double number of prefetched cache lines on T4
+        // since L2 cache line size is smaller (32 bytes).
+        if (FLAG_IS_DEFAULT(AllocatePrefetchLines)) {
+          FLAG_SET_ERGO(intx, AllocatePrefetchLines, AllocatePrefetchLines*2);
+        }
+        if (FLAG_IS_DEFAULT(AllocateInstancePrefetchLines)) {
+          FLAG_SET_ERGO(intx, AllocateInstancePrefetchLines, AllocateInstancePrefetchLines*2);
+        }
+      }
       if (AllocatePrefetchStyle != 3 && FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
         // Use different prefetch distance without BIS
         FLAG_SET_DEFAULT(AllocatePrefetchDistance, 256);
       }
+      if (AllocatePrefetchInstr == 1) {
+        // Need a space at the end of TLAB for BIS since it
+        // will fault when accessing memory outside of heap.
+
+        // +1 for rounding up to next cache line, +1 to be safe
+        int lines = AllocatePrefetchLines + 2;
+        int step_size = AllocatePrefetchStepSize;
+        int distance = AllocatePrefetchDistance;
+        _reserve_for_allocation_prefetch = (distance + step_size*lines)/(int)HeapWordSize;
+      }
     }
 #endif
   }
@@ -116,27 +173,69 @@ void VM_Version::initialize() {
     if (FLAG_IS_DEFAULT(UsePopCountInstruction)) {
       FLAG_SET_DEFAULT(UsePopCountInstruction, true);
     }
+  } else if (UsePopCountInstruction) {
+    warning("POPC instruction is not available on this CPU");
+    FLAG_SET_DEFAULT(UsePopCountInstruction, false);
+  }
+
+  // T4 and newer Sparc cpus have new compare and branch instruction.
+  if (has_cbcond()) {
+    if (FLAG_IS_DEFAULT(UseCBCond)) {
+      FLAG_SET_DEFAULT(UseCBCond, true);
+    }
+  } else if (UseCBCond) {
+    warning("CBCOND instruction is not available on this CPU");
+    FLAG_SET_DEFAULT(UseCBCond, false);
+  }
+
+  assert(BlockZeroingLowLimit > 0, "invalid value");
+  if (has_block_zeroing()) {
+    if (FLAG_IS_DEFAULT(UseBlockZeroing)) {
+      FLAG_SET_DEFAULT(UseBlockZeroing, true);
+    }
+  } else if (UseBlockZeroing) {
+    warning("BIS zeroing instructions are not available on this CPU");
+    FLAG_SET_DEFAULT(UseBlockZeroing, false);
+  }
+
+  assert(BlockCopyLowLimit > 0, "invalid value");
+  if (has_block_zeroing()) { // has_blk_init() && is_T4(): core's local L2 cache
+    if (FLAG_IS_DEFAULT(UseBlockCopy)) {
+      FLAG_SET_DEFAULT(UseBlockCopy, true);
+    }
+  } else if (UseBlockCopy) {
+    warning("BIS instructions are not available or expensive on this CPU");
+    FLAG_SET_DEFAULT(UseBlockCopy, false);
   }
 
 #ifdef COMPILER2
+  // T4 and newer Sparc cpus have fast RDPC.
+  if (has_fast_rdpc() && FLAG_IS_DEFAULT(UseRDPCForConstantTableBase)) {
+//    FLAG_SET_DEFAULT(UseRDPCForConstantTableBase, true);
+  }
+
   // Currently not supported anywhere.
   FLAG_SET_DEFAULT(UseFPUForSpilling, false);
+
+  assert((InteriorEntryAlignment % relocInfo::addr_unit()) == 0, "alignment is not a multiple of NOP size");
 #endif
 
+  assert((CodeEntryAlignment % relocInfo::addr_unit()) == 0, "alignment is not a multiple of NOP size");
+  assert((OptoLoopAlignment % relocInfo::addr_unit()) == 0, "alignment is not a multiple of NOP size");
+
   char buf[512];
-  jio_snprintf(buf, sizeof(buf), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
-               (has_v8() ? ", has_v8" : ""),
-               (has_v9() ? ", has_v9" : ""),
+  jio_snprintf(buf, sizeof(buf), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
+               (has_v9() ? ", v9" : (has_v8() ? ", v8" : "")),
                (has_hardware_popc() ? ", popc" : ""),
-               (has_vis1() ? ", has_vis1" : ""),
-               (has_vis2() ? ", has_vis2" : ""),
-               (has_vis3() ? ", has_vis3" : ""),
-               (has_blk_init() ? ", has_blk_init" : ""),
-               (is_ultra3() ? ", is_ultra3" : ""),
-               (is_sun4v() ? ", is_sun4v" : ""),
-               (is_niagara() ? ", is_niagara" : ""),
-               (is_niagara_plus() ? ", is_niagara_plus" : ""),
-               (is_sparc64() ? ", is_sparc64" : ""),
+               (has_vis1() ? ", vis1" : ""),
+               (has_vis2() ? ", vis2" : ""),
+               (has_vis3() ? ", vis3" : ""),
+               (has_blk_init() ? ", blk_init" : ""),
+               (has_cbcond() ? ", cbcond" : ""),
+               (is_ultra3() ? ", ultra3" : ""),
+               (is_sun4v() ? ", sun4v" : ""),
+               (is_niagara_plus() ? ", niagara_plus" : (is_niagara() ? ", niagara" : "")),
+               (is_sparc64() ? ", sparc64" : ""),
                (!has_hardware_mul32() ? ", no-mul32" : ""),
                (!has_hardware_div32() ? ", no-div32" : ""),
                (!has_hardware_fsmuld() ? ", no-fsmuld" : ""));
@@ -158,14 +257,20 @@ void VM_Version::initialize() {
 
 #ifndef PRODUCT
   if (PrintMiscellaneous && Verbose) {
-    tty->print("Allocation: ");
+    tty->print("Allocation");
     if (AllocatePrefetchStyle <= 0) {
-      tty->print_cr("no prefetching");
+      tty->print_cr(": no prefetching");
     } else {
+      tty->print(" prefetching: ");
+      if (AllocatePrefetchInstr == 0) {
+          tty->print("PREFETCH");
+      } else if (AllocatePrefetchInstr == 1) {
+          tty->print("BIS");
+      }
       if (AllocatePrefetchLines > 1) {
-        tty->print_cr("PREFETCH %d, %d lines of size %d bytes", AllocatePrefetchDistance, AllocatePrefetchLines, AllocatePrefetchStepSize);
+        tty->print_cr(" at distance %d, %d lines of %d bytes", AllocatePrefetchDistance, AllocatePrefetchLines, AllocatePrefetchStepSize);
       } else {
-        tty->print_cr("PREFETCH %d, one line", AllocatePrefetchDistance);
+        tty->print_cr(" at distance %d, one line of %d bytes", AllocatePrefetchDistance, AllocatePrefetchStepSize);
       }
     }
     if (PrefetchCopyIntervalInBytes > 0) {
diff --git a/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp b/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp
index c83d2de..db3343b 100644
--- a/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp
+++ b/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp
@@ -31,44 +31,46 @@
 class VM_Version: public Abstract_VM_Version {
 protected:
   enum Feature_Flag {
-    v8_instructions    = 0,
-    hardware_mul32     = 1,
-    hardware_div32     = 2,
-    hardware_fsmuld    = 3,
-    hardware_popc      = 4,
-    v9_instructions    = 5,
-    vis1_instructions  = 6,
-    vis2_instructions  = 7,
-    sun4v_instructions = 8,
+    v8_instructions      = 0,
+    hardware_mul32       = 1,
+    hardware_div32       = 2,
+    hardware_fsmuld      = 3,
+    hardware_popc        = 4,
+    v9_instructions      = 5,
+    vis1_instructions    = 6,
+    vis2_instructions    = 7,
+    sun4v_instructions   = 8,
     blk_init_instructions = 9,
-    fmaf_instructions  = 10,
-    fmau_instructions  = 11,
-    vis3_instructions  = 12,
-    sparc64_family     = 13,
-    T_family           = 14,
-    T1_model           = 15
+    fmaf_instructions    = 10,
+    fmau_instructions    = 11,
+    vis3_instructions    = 12,
+    sparc64_family       = 13,
+    T_family             = 14,
+    T1_model             = 15,
+    cbcond_instructions  = 16
   };
 
   enum Feature_Flag_Set {
     unknown_m           = 0,
     all_features_m      = -1,
 
-    v8_instructions_m   = 1 << v8_instructions,
-    hardware_mul32_m    = 1 << hardware_mul32,
-    hardware_div32_m    = 1 << hardware_div32,
-    hardware_fsmuld_m   = 1 << hardware_fsmuld,
-    hardware_popc_m     = 1 << hardware_popc,
-    v9_instructions_m   = 1 << v9_instructions,
-    vis1_instructions_m = 1 << vis1_instructions,
-    vis2_instructions_m = 1 << vis2_instructions,
-    sun4v_m             = 1 << sun4v_instructions,
+    v8_instructions_m       = 1 << v8_instructions,
+    hardware_mul32_m        = 1 << hardware_mul32,
+    hardware_div32_m        = 1 << hardware_div32,
+    hardware_fsmuld_m       = 1 << hardware_fsmuld,
+    hardware_popc_m         = 1 << hardware_popc,
+    v9_instructions_m       = 1 << v9_instructions,
+    vis1_instructions_m     = 1 << vis1_instructions,
+    vis2_instructions_m     = 1 << vis2_instructions,
+    sun4v_m                 = 1 << sun4v_instructions,
     blk_init_instructions_m = 1 << blk_init_instructions,
-    fmaf_instructions_m = 1 << fmaf_instructions,
-    fmau_instructions_m = 1 << fmau_instructions,
-    vis3_instructions_m = 1 << vis3_instructions,
-    sparc64_family_m    = 1 << sparc64_family,
-    T_family_m          = 1 << T_family,
-    T1_model_m          = 1 << T1_model,
+    fmaf_instructions_m     = 1 << fmaf_instructions,
+    fmau_instructions_m     = 1 << fmau_instructions,
+    vis3_instructions_m     = 1 << vis3_instructions,
+    sparc64_family_m        = 1 << sparc64_family,
+    T_family_m              = 1 << T_family,
+    T1_model_m              = 1 << T1_model,
+    cbcond_instructions_m   = 1 << cbcond_instructions,
 
     generic_v8_m        = v8_instructions_m | hardware_mul32_m | hardware_div32_m | hardware_fsmuld_m,
     generic_v9_m        = generic_v8_m | v9_instructions_m,
@@ -111,25 +113,35 @@ public:
   static bool has_vis2()                { return (_features & vis2_instructions_m) != 0; }
   static bool has_vis3()                { return (_features & vis3_instructions_m) != 0; }
   static bool has_blk_init()            { return (_features & blk_init_instructions_m) != 0; }
+  static bool has_cbcond()              { return (_features & cbcond_instructions_m) != 0; }
 
   static bool supports_compare_and_exchange()
                                         { return has_v9(); }
 
-  static bool is_ultra3()               { return (_features & ultra3_m) == ultra3_m; }
-  static bool is_sun4v()                { return (_features & sun4v_m) != 0; }
   // Returns true if the platform is in the niagara line (T series)
   // and newer than the niagara1.
   static bool is_niagara_plus()         { return is_T_family(_features) && !is_T1_model(_features); }
+  static bool is_T4()                   { return is_T_family(_features) && has_cbcond(); }
+
   // Fujitsu SPARC64
   static bool is_sparc64()              { return (_features & sparc64_family_m) != 0; }
 
+  static bool is_sun4v()                { return (_features & sun4v_m) != 0; }
+  static bool is_ultra3()               { return (_features & ultra3_m) == ultra3_m && !is_sun4v() && !is_sparc64(); }
+
   static bool has_fast_fxtof()          { return is_niagara() || is_sparc64() || has_v9() && !is_ultra3(); }
   static bool has_fast_idiv()           { return is_niagara_plus() || is_sparc64(); }
 
+  // T4 and newer Sparc have fast RDPC instruction.
+  static bool has_fast_rdpc()           { return is_T4(); }
+
+  // On T4 and newer Sparc BIS to the beginning of cache line always zeros it.
+  static bool has_block_zeroing()       { return has_blk_init() && is_T4(); }
+
   static const char* cpu_features()     { return _features_str; }
 
-  static intx L1_data_cache_line_size()  {
-    return 64;  // default prefetch block size on sparc
+  static intx prefetch_data_size()  {
+    return is_T4() ? 32 : 64;  // default prefetch block size on sparc
   }
 
   // Prefetch
diff --git a/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp b/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp
index 9c04021..4e71250 100644
--- a/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp
+++ b/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp
@@ -76,9 +76,7 @@ VtableStub* VtableStubs::create_vtable_stub(int vtable_index) {
     Label L;
     // check offset vs vtable length
     __ ld(G3_scratch, instanceKlass::vtable_length_offset()*wordSize, G5);
-    __ cmp(G5, vtable_index*vtableEntry::size());
-    __ br(Assembler::greaterUnsigned, false, Assembler::pt, L);
-    __ delayed()->nop();
+    __ cmp_and_br_short(G5, vtable_index*vtableEntry::size(), Assembler::greaterUnsigned, Assembler::pt, L);
     __ set(vtable_index, O2);
     __ call_VM(noreg, CAST_FROM_FN_PTR(address, bad_compiled_vtable_index), O0, O2);
     __ bind(L);
@@ -95,8 +93,7 @@ VtableStub* VtableStubs::create_vtable_stub(int vtable_index) {
 #ifndef PRODUCT
   if (DebugVtables) {
     Label L;
-    __ br_notnull(G5_method, false, Assembler::pt, L);
-    __ delayed()->nop();
+    __ br_notnull_short(G5_method, Assembler::pt, L);
     __ stop("Vtable entry is ZERO");
     __ bind(L);
   }
@@ -177,8 +174,7 @@ VtableStub* VtableStubs::create_itable_stub(int itable_index) {
 #ifndef PRODUCT
   if (DebugVtables) {
     Label L01;
-    __ bpr(Assembler::rc_nz, false, Assembler::pt, L5_method, L01);
-    __ delayed()->nop();
+    __ br_notnull_short(L5_method, Assembler::pt, L01);
     __ stop("methodOop is null");
     __ bind(L01);
     __ verify_oop(L5_method);
diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.cpp b/hotspot/src/cpu/x86/vm/assembler_x86.cpp
index 0e21a52..d57a55f 100644
--- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp
@@ -1339,9 +1339,8 @@ void Assembler::incl(Address dst) {
   emit_operand(rax, dst);
 }
 
-void Assembler::jcc(Condition cc, Label& L, relocInfo::relocType rtype) {
+void Assembler::jcc(Condition cc, Label& L, bool maybe_short) {
   InstructionMark im(this);
-  relocate(rtype);
   assert((0 <= cc) && (cc < 16), "illegal cc");
   if (L.is_bound()) {
     address dst = target(L);
@@ -1350,7 +1349,7 @@ void Assembler::jcc(Condition cc, Label& L, relocInfo::relocType rtype) {
     const int short_size = 2;
     const int long_size = 6;
     intptr_t offs = (intptr_t)dst - (intptr_t)_code_pos;
-    if (rtype == relocInfo::none && is8bit(offs - short_size)) {
+    if (maybe_short && is8bit(offs - short_size)) {
       // 0111 tttn #8-bit disp
       emit_byte(0x70 | cc);
       emit_byte((offs - short_size) & 0xFF);
@@ -1399,7 +1398,7 @@ void Assembler::jmp(Address adr) {
   emit_operand(rsp, adr);
 }
 
-void Assembler::jmp(Label& L, relocInfo::relocType rtype) {
+void Assembler::jmp(Label& L, bool maybe_short) {
   if (L.is_bound()) {
     address entry = target(L);
     assert(entry != NULL, "jmp most probably wrong");
@@ -1407,7 +1406,7 @@ void Assembler::jmp(Label& L, relocInfo::relocType rtype) {
     const int short_size = 2;
     const int long_size = 5;
     intptr_t offs = entry - _code_pos;
-    if (rtype == relocInfo::none && is8bit(offs - short_size)) {
+    if (maybe_short && is8bit(offs - short_size)) {
       emit_byte(0xEB);
       emit_byte((offs - short_size) & 0xFF);
     } else {
@@ -1420,7 +1419,6 @@ void Assembler::jmp(Label& L, relocInfo::relocType rtype) {
     // the forward jump will not run beyond 256 bytes, use jmpb to
     // force an 8-bit displacement.
     InstructionMark im(this);
-    relocate(rtype);
     L.add_patch_at(code(), locator());
     emit_byte(0xE9);
     emit_long(0);
@@ -2309,7 +2307,7 @@ void Assembler::prefetch_prefix(Address src) {
 }
 
 void Assembler::prefetchnta(Address src) {
-  NOT_LP64(assert(VM_Version::supports_sse2(), "must support"));
+  NOT_LP64(assert(VM_Version::supports_sse(), "must support"));
   InstructionMark im(this);
   prefetch_prefix(src);
   emit_byte(0x18);
@@ -2317,7 +2315,7 @@ void Assembler::prefetchnta(Address src) {
 }
 
 void Assembler::prefetchr(Address src) {
-  NOT_LP64(assert(VM_Version::supports_3dnow_prefetch(), "must support"));
+  assert(VM_Version::supports_3dnow_prefetch(), "must support");
   InstructionMark im(this);
   prefetch_prefix(src);
   emit_byte(0x0D);
@@ -2349,7 +2347,7 @@ void Assembler::prefetcht2(Address src) {
 }
 
 void Assembler::prefetchw(Address src) {
-  NOT_LP64(assert(VM_Version::supports_3dnow_prefetch(), "must support"));
+  assert(VM_Version::supports_3dnow_prefetch(), "must support");
   InstructionMark im(this);
   prefetch_prefix(src);
   emit_byte(0x0D);
@@ -3674,7 +3672,7 @@ void Assembler::prefix(Address adr, Register reg, bool byteinst) {
     } else {
       if (adr.index_needs_rex()) {
         prefix(REX_X);
-      } else if (reg->encoding() >= 4 ) {
+      } else if (byteinst && reg->encoding() >= 4 ) {
         prefix(REX);
       }
     }
@@ -8006,15 +8004,10 @@ void MacroAssembler::load_method_handle_vmslots(Register vmslots_reg, Register m
                                                 Register temp_reg) {
   assert_different_registers(vmslots_reg, mh_reg, temp_reg);
   // load mh.type.form.vmslots
-  if (java_lang_invoke_MethodHandle::vmslots_offset_in_bytes() != 0) {
-    // hoist vmslots into every mh to avoid dependent load chain
-    movl(vmslots_reg, Address(mh_reg, delayed_value(java_lang_invoke_MethodHandle::vmslots_offset_in_bytes, temp_reg)));
-  } else {
-    Register temp2_reg = vmslots_reg;
-    load_heap_oop(temp2_reg, Address(mh_reg,    delayed_value(java_lang_invoke_MethodHandle::type_offset_in_bytes, temp_reg)));
-    load_heap_oop(temp2_reg, Address(temp2_reg, delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes, temp_reg)));
-    movl(vmslots_reg, Address(temp2_reg, delayed_value(java_lang_invoke_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)));
-  }
+  Register temp2_reg = vmslots_reg;
+  load_heap_oop(temp2_reg, Address(mh_reg,    delayed_value(java_lang_invoke_MethodHandle::type_offset_in_bytes, temp_reg)));
+  load_heap_oop(temp2_reg, Address(temp2_reg, delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes, temp_reg)));
+  movl(vmslots_reg, Address(temp2_reg, delayed_value(java_lang_invoke_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)));
 }
 
 
diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.hpp b/hotspot/src/cpu/x86/vm/assembler_x86.hpp
index f07291c..d3553e7 100644
--- a/hotspot/src/cpu/x86/vm/assembler_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.hpp
@@ -1065,8 +1065,7 @@ private:
   // Note: The same Label can be used for forward and backward branches
   // but it may be bound only once.
 
-  void jcc(Condition cc, Label& L,
-           relocInfo::relocType rtype = relocInfo::none);
+  void jcc(Condition cc, Label& L, bool maybe_short = true);
 
   // Conditional jump to a 8-bit offset to L.
   // WARNING: be very careful using this for forward jumps.  If the label is
@@ -1077,7 +1076,7 @@ private:
   void jmp(Address entry);    // pc <- entry
 
   // Label operations & relative jumps (PPUM Appendix D)
-  void jmp(Label& L, relocInfo::relocType rtype = relocInfo::none);   // unconditional jump to L
+  void jmp(Label& L, bool maybe_short = true);   // unconditional jump to L
 
   void jmp(Register entry); // pc <- entry
 
diff --git a/hotspot/src/cpu/x86/vm/bytes_x86.hpp b/hotspot/src/cpu/x86/vm/bytes_x86.hpp
index ac096dc..9f939a3 100644
--- a/hotspot/src/cpu/x86/vm/bytes_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/bytes_x86.hpp
@@ -81,6 +81,9 @@ class Bytes: AllStatic {
 #ifdef TARGET_OS_ARCH_windows_x86
 # include "bytes_windows_x86.inline.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "bytes_bsd_x86.inline.hpp"
+#endif
 
 
 #endif // CPU_X86_VM_BYTES_X86_HPP
diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
index 982d33d..dbdd708 100644
--- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
@@ -129,10 +129,6 @@ LIR_Opr LIR_Assembler::receiverOpr() {
   return FrameMap::receiver_opr;
 }
 
-LIR_Opr LIR_Assembler::incomingReceiverOpr() {
-  return receiverOpr();
-}
-
 LIR_Opr LIR_Assembler::osrBufferPointer() {
   return FrameMap::as_pointer_opr(receiverOpr()->as_register());
 }
@@ -371,55 +367,6 @@ void LIR_Assembler::jobject2reg_with_patching(Register reg, CodeEmitInfo* info)
 }
 
 
-void LIR_Assembler::monitorexit(LIR_Opr obj_opr, LIR_Opr lock_opr, Register new_hdr, int monitor_no, Register exception) {
-  if (exception->is_valid()) {
-    // preserve exception
-    // note: the monitor_exit runtime call is a leaf routine
-    //       and cannot block => no GC can happen
-    // The slow case (MonitorAccessStub) uses the first two stack slots
-    // ([esp+0] and [esp+4]), therefore we store the exception at [esp+8]
-    __ movptr (Address(rsp, 2*wordSize), exception);
-  }
-
-  Register obj_reg  = obj_opr->as_register();
-  Register lock_reg = lock_opr->as_register();
-
-  // setup registers (lock_reg must be rax, for lock_object)
-  assert(obj_reg != SYNC_header && lock_reg != SYNC_header, "rax, must be available here");
-  Register hdr = lock_reg;
-  assert(new_hdr == SYNC_header, "wrong register");
-  lock_reg = new_hdr;
-  // compute pointer to BasicLock
-  Address lock_addr = frame_map()->address_for_monitor_lock(monitor_no);
-  __ lea(lock_reg, lock_addr);
-  // unlock object
-  MonitorAccessStub* slow_case = new MonitorExitStub(lock_opr, true, monitor_no);
-  // _slow_case_stubs->append(slow_case);
-  // temporary fix: must be created after exceptionhandler, therefore as call stub
-  _slow_case_stubs->append(slow_case);
-  if (UseFastLocking) {
-    // try inlined fast unlocking first, revert to slow locking if it fails
-    // note: lock_reg points to the displaced header since the displaced header offset is 0!
-    assert(BasicLock::displaced_header_offset_in_bytes() == 0, "lock_reg must point to the displaced header");
-    __ unlock_object(hdr, obj_reg, lock_reg, *slow_case->entry());
-  } else {
-    // always do slow unlocking
-    // note: the slow unlocking code could be inlined here, however if we use
-    //       slow unlocking, speed doesn't matter anyway and this solution is
-    //       simpler and requires less duplicated code - additionally, the
-    //       slow unlocking code is the same in either case which simplifies
-    //       debugging
-    __ jmp(*slow_case->entry());
-  }
-  // done
-  __ bind(*slow_case->continuation());
-
-  if (exception->is_valid()) {
-    // restore exception
-    __ movptr (exception, Address(rsp, 2 * wordSize));
-  }
-}
-
 // This specifies the rsp decrement needed to build the frame
 int LIR_Assembler::initial_frame_size_in_bytes() {
   // if rounding, must let FrameMap know!
@@ -480,8 +427,8 @@ int LIR_Assembler::emit_unwind_handler() {
   // Fetch the exception from TLS and clear out exception related thread state
   __ get_thread(rsi);
   __ movptr(rax, Address(rsi, JavaThread::exception_oop_offset()));
-  __ movptr(Address(rsi, JavaThread::exception_oop_offset()), (int32_t)NULL_WORD);
-  __ movptr(Address(rsi, JavaThread::exception_pc_offset()), (int32_t)NULL_WORD);
+  __ movptr(Address(rsi, JavaThread::exception_oop_offset()), (intptr_t)NULL_WORD);
+  __ movptr(Address(rsi, JavaThread::exception_pc_offset()), (intptr_t)NULL_WORD);
 
   __ bind(_unwind_handler_entry);
   __ verify_not_null_oop(rax);
diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp
index daccb39..6ed3510 100644
--- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp
@@ -29,8 +29,6 @@
 
   Address::ScaleFactor array_element_size(BasicType type) const;
 
-  void monitorexit(LIR_Opr obj_opr, LIR_Opr lock_opr, Register new_hdr, int monitor_no, Register exception);
-
   void arith_fpu_implementation(LIR_Code code, int left_index, int right_index, int dest_index, bool pop_fpu_stack);
 
   // helper functions which checks for overflow and sets bailout if it
diff --git a/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
index c71590a..1ff91ca 100644
--- a/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
@@ -267,7 +267,8 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
   bool use_length = x->length() != NULL;
   bool obj_store = x->elt_type() == T_ARRAY || x->elt_type() == T_OBJECT;
   bool needs_store_check = obj_store && (x->value()->as_Constant() == NULL ||
-                                         !get_jobject_constant(x->value())->is_null_object());
+                                         !get_jobject_constant(x->value())->is_null_object() ||
+                                         x->should_profile());
 
   LIRItem array(x->array(), this);
   LIRItem index(x->index(), this);
@@ -321,7 +322,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
     LIR_Opr tmp3 = new_register(objectType);
 
     CodeEmitInfo* store_check_info = new CodeEmitInfo(range_check_info);
-    __ store_check(value.result(), array.result(), tmp1, tmp2, tmp3, store_check_info);
+    __ store_check(value.result(), array.result(), tmp1, tmp2, tmp3, store_check_info, x->profiled_method(), x->profiled_bci());
   }
 
   if (obj_store) {
diff --git a/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp b/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp
index 055bb93..9ad2e58 100644
--- a/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp
@@ -1465,19 +1465,6 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
       }
       break;
 
-    case jvmti_exception_throw_id:
-      { // rax,: exception oop
-        StubFrame f(sasm, "jvmti_exception_throw", dont_gc_arguments);
-        // Preserve all registers across this potentially blocking call
-        const int num_rt_args = 2;  // thread, exception oop
-        OopMap* map = save_live_registers(sasm, num_rt_args);
-        int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, Runtime1::post_jvmti_exception_throw), rax);
-        oop_maps = new OopMapSet();
-        oop_maps->add_gc_map(call_offset, map);
-        restore_live_registers(sasm);
-      }
-      break;
-
     case dtrace_object_alloc_id:
       { // rax,: object
         StubFrame f(sasm, "dtrace_object_alloc", dont_gc_arguments);
diff --git a/hotspot/src/cpu/x86/vm/copy_x86.hpp b/hotspot/src/cpu/x86/vm/copy_x86.hpp
index dbadb0e..d5c6d5e 100644
--- a/hotspot/src/cpu/x86/vm/copy_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/copy_x86.hpp
@@ -37,6 +37,9 @@
 #ifdef TARGET_OS_ARCH_windows_x86
 # include "copy_windows_x86.inline.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "copy_bsd_x86.inline.hpp"
+#endif
 
 
 static void pd_fill_to_words(HeapWord* tohw, size_t count, juint value) {
diff --git a/hotspot/src/cpu/x86/vm/frame_x86.cpp b/hotspot/src/cpu/x86/vm/frame_x86.cpp
index 2170595..3d82d06 100644
--- a/hotspot/src/cpu/x86/vm/frame_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/frame_x86.cpp
@@ -666,3 +666,9 @@ void frame::describe_pd(FrameValues& values, int frame_no) {
 
 }
 #endif
+
+intptr_t *frame::initial_deoptimization_info() {
+  // used to reset the saved FP
+  return fp();
+}
+
diff --git a/hotspot/src/cpu/x86/vm/globals_x86.hpp b/hotspot/src/cpu/x86/vm/globals_x86.hpp
index 8b79f8e..d40f559 100644
--- a/hotspot/src/cpu/x86/vm/globals_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/globals_x86.hpp
@@ -70,7 +70,11 @@ define_pd_global(intx, PreInflateSpin,           10);
 define_pd_global(bool, RewriteBytecodes,     true);
 define_pd_global(bool, RewriteFrequentPairs, true);
 
+#ifdef _ALLBSD_SOURCE
+define_pd_global(bool, UseMembar,            true);
+#else
 define_pd_global(bool, UseMembar,            false);
+#endif
 
 // GC Ergo Flags
 define_pd_global(intx, CMSYoungGenPerWorker, 64*M);  // default max size of CMS young gen, per GC worker thread
diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp
index a97d913..f06d54e 100644
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp
@@ -45,6 +45,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 
 // Implementation of InterpreterMacroAssembler
@@ -233,7 +236,7 @@ void InterpreterMacroAssembler::get_cache_index_at_bcp(Register reg, int bcp_off
 
 void InterpreterMacroAssembler::get_cache_and_index_at_bcp(Register cache, Register index,
                                                            int bcp_offset, size_t index_size) {
-  assert(cache != index, "must use different registers");
+  assert_different_registers(cache, index);
   get_cache_index_at_bcp(index, bcp_offset, index_size);
   movptr(cache, Address(rbp, frame::interpreter_frame_cache_offset * wordSize));
   assert(sizeof(ConstantPoolCacheEntry) == 4*wordSize, "adjust code below");
@@ -241,6 +244,20 @@ void InterpreterMacroAssembler::get_cache_and_index_at_bcp(Register cache, Regis
 }
 
 
+void InterpreterMacroAssembler::get_cache_and_index_and_bytecode_at_bcp(Register cache,
+                                                                        Register index,
+                                                                        Register bytecode,
+                                                                        int byte_no,
+                                                                        int bcp_offset,
+                                                                        size_t index_size) {
+  get_cache_and_index_at_bcp(cache, index, bcp_offset, index_size);
+  movptr(bytecode, Address(cache, index, Address::times_ptr, constantPoolCacheOopDesc::base_offset() + ConstantPoolCacheEntry::indices_offset()));
+  const int shift_count = (1 + byte_no) * BitsPerByte;
+  shrptr(bytecode, shift_count);
+  andptr(bytecode, 0xFF);
+}
+
+
 void InterpreterMacroAssembler::get_cache_entry_pointer_at_bcp(Register cache, Register tmp,
                                                                int bcp_offset, size_t index_size) {
   assert(cache != tmp, "must use different register");
@@ -1144,7 +1161,7 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper(
   int recvr_offset = in_bytes(VirtualCallData::receiver_offset(start_row));
   set_mdp_data_at(mdp, recvr_offset, receiver);
   int count_offset = in_bytes(VirtualCallData::receiver_count_offset(start_row));
-  movptr(reg2, (int32_t)DataLayout::counter_increment);
+  movptr(reg2, (intptr_t)DataLayout::counter_increment);
   set_mdp_data_at(mdp, count_offset, reg2);
   if (start_row > 0) {
     jmp(done);
@@ -1287,7 +1304,7 @@ void InterpreterMacroAssembler::profile_switch_case(Register index, Register mdp
     test_method_data_pointer(mdp, profile_continue);
 
     // Build the base (index * per_case_size_in_bytes()) + case_array_offset_in_bytes()
-    movptr(reg2, (int32_t)in_bytes(MultiBranchData::per_case_size()));
+    movptr(reg2, (intptr_t)in_bytes(MultiBranchData::per_case_size()));
     // index is positive and so should have correct value if this code were
     // used on 64bits
     imulptr(index, reg2);
diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp
index d08f0fd..97f1da4 100644
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp
@@ -83,6 +83,7 @@ class InterpreterMacroAssembler: public MacroAssembler {
   }
   void get_unsigned_2_byte_index_at_bcp(Register reg, int bcp_offset);
   void get_cache_and_index_at_bcp(Register cache, Register index, int bcp_offset, size_t index_size = sizeof(u2));
+  void get_cache_and_index_and_bytecode_at_bcp(Register cache, Register index, Register bytecode, int byte_no, int bcp_offset, size_t index_size = sizeof(u2));
   void get_cache_entry_pointer_at_bcp(Register cache, Register tmp, int bcp_offset, size_t index_size = sizeof(u2));
   void get_cache_index_at_bcp(Register index, int bcp_offset, size_t index_size = sizeof(u2));
 
diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp
index cee2705..e418436 100644
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp
@@ -45,6 +45,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 
 // Implementation of InterpreterMacroAssembler
@@ -233,7 +236,7 @@ void InterpreterMacroAssembler::get_cache_and_index_at_bcp(Register cache,
                                                            Register index,
                                                            int bcp_offset,
                                                            size_t index_size) {
-  assert(cache != index, "must use different registers");
+  assert_different_registers(cache, index);
   get_cache_index_at_bcp(index, bcp_offset, index_size);
   movptr(cache, Address(rbp, frame::interpreter_frame_cache_offset * wordSize));
   assert(sizeof(ConstantPoolCacheEntry) == 4 * wordSize, "adjust code below");
@@ -242,6 +245,22 @@ void InterpreterMacroAssembler::get_cache_and_index_at_bcp(Register cache,
 }
 
 
+void InterpreterMacroAssembler::get_cache_and_index_and_bytecode_at_bcp(Register cache,
+                                                                        Register index,
+                                                                        Register bytecode,
+                                                                        int byte_no,
+                                                                        int bcp_offset,
+                                                                        size_t index_size) {
+  get_cache_and_index_at_bcp(cache, index, bcp_offset, index_size);
+  // We use a 32-bit load here since the layout of 64-bit words on
+  // little-endian machines allow us that.
+  movl(bytecode, Address(cache, index, Address::times_ptr, constantPoolCacheOopDesc::base_offset() + ConstantPoolCacheEntry::indices_offset()));
+  const int shift_count = (1 + byte_no) * BitsPerByte;
+  shrl(bytecode, shift_count);
+  andl(bytecode, 0xFF);
+}
+
+
 void InterpreterMacroAssembler::get_cache_entry_pointer_at_bcp(Register cache,
                                                                Register tmp,
                                                                int bcp_offset,
diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp
index b203abc..cb17e01 100644
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp
@@ -100,13 +100,11 @@ class InterpreterMacroAssembler: public MacroAssembler {
   }
 
   void get_unsigned_2_byte_index_at_bcp(Register reg, int bcp_offset);
-  void get_cache_and_index_at_bcp(Register cache, Register index,
-                                  int bcp_offset, size_t index_size = sizeof(u2));
-  void get_cache_entry_pointer_at_bcp(Register cache, Register tmp,
-                                      int bcp_offset, size_t index_size = sizeof(u2));
+  void get_cache_and_index_at_bcp(Register cache, Register index, int bcp_offset, size_t index_size = sizeof(u2));
+  void get_cache_and_index_and_bytecode_at_bcp(Register cache, Register index, Register bytecode, int byte_no, int bcp_offset, size_t index_size = sizeof(u2));
+  void get_cache_entry_pointer_at_bcp(Register cache, Register tmp, int bcp_offset, size_t index_size = sizeof(u2));
   void get_cache_index_at_bcp(Register index, int bcp_offset, size_t index_size = sizeof(u2));
 
-
   void pop_ptr(Register r = rax);
   void pop_i(Register r = rax);
   void pop_l(Register r = rax);
diff --git a/hotspot/src/cpu/x86/vm/jni_x86.h b/hotspot/src/cpu/x86/vm/jni_x86.h
index d06bb5c..d1b37b9 100644
--- a/hotspot/src/cpu/x86/vm/jni_x86.h
+++ b/hotspot/src/cpu/x86/vm/jni_x86.h
@@ -26,7 +26,7 @@
 #ifndef _JAVASOFT_JNI_MD_H_
 #define _JAVASOFT_JNI_MD_H_
 
-#if defined(SOLARIS) || defined(LINUX)
+#if defined(SOLARIS) || defined(LINUX) || defined(_ALLBSD_SOURCE)
 
 #if defined(__GNUC__) && (__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ > 2)
   #define JNIEXPORT     __attribute__((visibility("default")))
diff --git a/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp b/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp
index 30b62c9..dd741fd 100644
--- a/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp
@@ -624,6 +624,11 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
 
   // error path for invokeExact (only)
   __ bind(invoke_exact_error_path);
+  // ensure that the top of stack is properly aligned.
+  __ mov(rdi, rsp);
+  __ andptr(rsp, -StackAlignmentInBytes); // Align the stack for the ABI
+  __ pushptr(Address(rdi, 0));  // Pick up the return address
+
   // Stub wants expected type in rax and the actual type in rcx
   __ jump(ExternalAddress(StubRoutines::throw_WrongMethodTypeException_entry()));
 
@@ -1192,11 +1197,11 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
       const int jobject_oop_offset = 0;
       __ movptr(rbx_method, Address(rbx_method, jobject_oop_offset));  // dereference the jobject
 
-      __ movptr(rsi, rsp);
+      __ movptr(saved_last_sp, rsp);
       __ subptr(rsp, 3 * wordSize);
       __ push(rax_pc);         // restore caller PC
 
-      __ movptr(__ argument_address(constant(2)), rarg0_code);
+      __ movl  (__ argument_address(constant(2)), rarg0_code);
       __ movptr(__ argument_address(constant(1)), rarg1_actual);
       __ movptr(__ argument_address(constant(0)), rarg2_required);
       jump_from_method_handle(_masm, rbx_method, rax);
@@ -1343,6 +1348,13 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
     }
     break;
 
+  case _adapter_opt_profiling:
+    if (java_lang_invoke_CountingMethodHandle::vmcount_offset_in_bytes() != 0) {
+      Address rcx_mh_vmcount(rcx_recv, java_lang_invoke_CountingMethodHandle::vmcount_offset_in_bytes());
+      __ incrementl(rcx_mh_vmcount);
+    }
+    // fall through
+
   case _adapter_retype_only:
   case _adapter_retype_raw:
     // immediately jump to the next MH layer:
diff --git a/hotspot/src/cpu/x86/vm/methodHandles_x86.hpp b/hotspot/src/cpu/x86/vm/methodHandles_x86.hpp
index c4ed0b7..bf85c33 100644
--- a/hotspot/src/cpu/x86/vm/methodHandles_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/methodHandles_x86.hpp
@@ -110,6 +110,7 @@ public:
 
 class RicochetFrame {
   friend class MethodHandles;
+  friend class VMStructs;
 
  private:
   intptr_t* _continuation;          // what to do when control gets back here
diff --git a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp
index f21ed39..9b43aba 100644
--- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp
@@ -2471,7 +2471,7 @@ void SharedRuntime::generate_deopt_blob() {
   __ movl(counter, rbx);
 
   // Pick up the initial fp we should save
-  __ movptr(rbp, Address(rdi, Deoptimization::UnrollBlock::initial_fp_offset_in_bytes()));
+  __ movptr(rbp, Address(rdi, Deoptimization::UnrollBlock::initial_info_offset_in_bytes()));
 
   // Now adjust the caller's stack to make up for the extra locals
   // but record the original sp so that we can save it in the skeletal interpreter
@@ -2691,7 +2691,7 @@ void SharedRuntime::generate_uncommon_trap_blob() {
   __ movl(counter, rbx);
 
   // Pick up the initial fp we should save
-  __ movptr(rbp, Address(rdi, Deoptimization::UnrollBlock::initial_fp_offset_in_bytes()));
+  __ movptr(rbp, Address(rdi, Deoptimization::UnrollBlock::initial_info_offset_in_bytes()));
 
   // Now adjust the caller's stack to make up for the extra locals
   // but record the original sp so that we can save it in the skeletal interpreter
diff --git a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp
index 06b3d8d..effb3ce 100644
--- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp
@@ -2730,7 +2730,7 @@ void SharedRuntime::generate_deopt_blob() {
   __ movl(rdx, Address(rdi, Deoptimization::UnrollBlock::number_of_frames_offset_in_bytes()));
 
   // Pick up the initial fp we should save
-  __ movptr(rbp, Address(rdi, Deoptimization::UnrollBlock::initial_fp_offset_in_bytes()));
+  __ movptr(rbp, Address(rdi, Deoptimization::UnrollBlock::initial_info_offset_in_bytes()));
 
   // Now adjust the caller's stack to make up for the extra locals
   // but record the original sp so that we can save it in the skeletal interpreter
@@ -2922,7 +2922,7 @@ void SharedRuntime::generate_uncommon_trap_blob() {
   // Pick up the initial fp we should save
   __ movptr(rbp,
             Address(rdi,
-                    Deoptimization::UnrollBlock::initial_fp_offset_in_bytes()));
+                    Deoptimization::UnrollBlock::initial_info_offset_in_bytes()));
 
   // Now adjust the caller's stack to make up for the extra locals but
   // record the original sp so that we can save it in the skeletal
diff --git a/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp b/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp
index c0a6ec3..fb85fff 100644
--- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp
@@ -47,6 +47,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 #ifdef COMPILER2
 #include "opto/runtime.hpp"
 #endif
@@ -2187,7 +2190,7 @@ class StubGenerator: public StubCodeGenerator {
   // either at call sites or otherwise assume that stack unwinding will be initiated,
   // so caller saved registers were assumed volatile in the compiler.
   address generate_throw_exception(const char* name, address runtime_entry,
-                                   bool restore_saved_exception_pc, Register arg1 = noreg, Register arg2 = noreg) {
+                                   Register arg1 = noreg, Register arg2 = noreg) {
 
     int insts_size = 256;
     int locs_size  = 32;
@@ -2204,10 +2207,6 @@ class StubGenerator: public StubCodeGenerator {
     // differently than the real call_VM
     Register java_thread = rbx;
     __ get_thread(java_thread);
-    if (restore_saved_exception_pc) {
-      __ movptr(rax, Address(java_thread, in_bytes(JavaThread::saved_exception_pc_offset())));
-      __ push(rax);
-    }
 
     __ enter(); // required for proper stackwalking of RuntimeStub frame
 
@@ -2323,7 +2322,7 @@ class StubGenerator: public StubCodeGenerator {
     StubRoutines::_throw_WrongMethodTypeException_entry =
       generate_throw_exception("WrongMethodTypeException throw_exception",
                                CAST_FROM_FN_PTR(address, SharedRuntime::throw_WrongMethodTypeException),
-                               false, rax, rcx);
+                               rax, rcx);
   }
 
 
@@ -2332,12 +2331,10 @@ class StubGenerator: public StubCodeGenerator {
 
     // These entry points require SharedInfo::stack0 to be set up in non-core builds
     // and need to be relocatable, so they each fabricate a RuntimeStub internally.
-    StubRoutines::_throw_AbstractMethodError_entry         = generate_throw_exception("AbstractMethodError throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError),  false);
-    StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError),  false);
-    StubRoutines::_throw_ArithmeticException_entry         = generate_throw_exception("ArithmeticException throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_ArithmeticException),  true);
-    StubRoutines::_throw_NullPointerException_entry        = generate_throw_exception("NullPointerException throw_exception",         CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException), true);
-    StubRoutines::_throw_NullPointerException_at_call_entry= generate_throw_exception("NullPointerException at call throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException_at_call), false);
-    StubRoutines::_throw_StackOverflowError_entry          = generate_throw_exception("StackOverflowError throw_exception",           CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError),   false);
+    StubRoutines::_throw_AbstractMethodError_entry         = generate_throw_exception("AbstractMethodError throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError));
+    StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError));
+    StubRoutines::_throw_NullPointerException_at_call_entry= generate_throw_exception("NullPointerException at call throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException_at_call));
+    StubRoutines::_throw_StackOverflowError_entry          = generate_throw_exception("StackOverflowError throw_exception",           CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError));
 
     //------------------------------------------------------------------------------------------------------------------------
     // entry points that are platform specific
diff --git a/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp b/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp
index 095412b..53d9431 100644
--- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp
@@ -47,6 +47,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 #ifdef COMPILER2
 #include "opto/runtime.hpp"
 #endif
@@ -935,6 +938,8 @@ class StubGenerator: public StubCodeGenerator {
     __ pusha();                       // push registers
     Address next_pc(rsp, RegisterImpl::number_of_registers * BytesPerWord);
 
+    // FIXME: this probably needs alignment logic
+
     __ subptr(rsp, frame::arg_reg_save_area_bytes);
     BLOCK_COMMENT("call handle_unsafe_access");
     __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, handle_unsafe_access)));
@@ -2934,7 +2939,6 @@ class StubGenerator: public StubCodeGenerator {
   // caller saved registers were assumed volatile in the compiler.
   address generate_throw_exception(const char* name,
                                    address runtime_entry,
-                                   bool restore_saved_exception_pc,
                                    Register arg1 = noreg,
                                    Register arg2 = noreg) {
     // Information about frame layout at time of blocking runtime call.
@@ -2962,12 +2966,6 @@ class StubGenerator: public StubCodeGenerator {
     // which has the ability to fetch the return PC out of
     // thread-local storage and also sets up last_Java_sp slightly
     // differently than the real call_VM
-    if (restore_saved_exception_pc) {
-      __ movptr(rax,
-                Address(r15_thread,
-                        in_bytes(JavaThread::saved_exception_pc_offset())));
-      __ push(rax);
-    }
 
     __ enter(); // required for proper stackwalking of RuntimeStub frame
 
@@ -3068,7 +3066,7 @@ class StubGenerator: public StubCodeGenerator {
     StubRoutines::_throw_WrongMethodTypeException_entry =
       generate_throw_exception("WrongMethodTypeException throw_exception",
                                CAST_FROM_FN_PTR(address, SharedRuntime::throw_WrongMethodTypeException),
-                               false, rax, rcx);
+                               rax, rcx);
   }
 
   void generate_all() {
@@ -3081,43 +3079,25 @@ class StubGenerator: public StubCodeGenerator {
       generate_throw_exception("AbstractMethodError throw_exception",
                                CAST_FROM_FN_PTR(address,
                                                 SharedRuntime::
-                                                throw_AbstractMethodError),
-                               false);
+                                                throw_AbstractMethodError));
 
     StubRoutines::_throw_IncompatibleClassChangeError_entry =
       generate_throw_exception("IncompatibleClassChangeError throw_exception",
                                CAST_FROM_FN_PTR(address,
                                                 SharedRuntime::
-                                                throw_IncompatibleClassChangeError),
-                               false);
-
-    StubRoutines::_throw_ArithmeticException_entry =
-      generate_throw_exception("ArithmeticException throw_exception",
-                               CAST_FROM_FN_PTR(address,
-                                                SharedRuntime::
-                                                throw_ArithmeticException),
-                               true);
-
-    StubRoutines::_throw_NullPointerException_entry =
-      generate_throw_exception("NullPointerException throw_exception",
-                               CAST_FROM_FN_PTR(address,
-                                                SharedRuntime::
-                                                throw_NullPointerException),
-                               true);
+                                                throw_IncompatibleClassChangeError));
 
     StubRoutines::_throw_NullPointerException_at_call_entry =
       generate_throw_exception("NullPointerException at call throw_exception",
                                CAST_FROM_FN_PTR(address,
                                                 SharedRuntime::
-                                                throw_NullPointerException_at_call),
-                               false);
+                                                throw_NullPointerException_at_call));
 
     StubRoutines::_throw_StackOverflowError_entry =
       generate_throw_exception("StackOverflowError throw_exception",
                                CAST_FROM_FN_PTR(address,
                                                 SharedRuntime::
-                                                throw_StackOverflowError),
-                               false);
+                                                throw_StackOverflowError));
 
     // entry points that are platform specific
     StubRoutines::x86::_f2i_fixup = generate_f2i_fixup();
diff --git a/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp b/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp
index dfdab6f..6ec4121 100644
--- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // Implementation of the platform-specific part of StubRoutines - for
 // a description of how to extend it, see the stubRoutines.hpp file.
diff --git a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp
index caab63b..182872b 100644
--- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // Implementation of the platform-specific part of StubRoutines - for
 // a description of how to extend it, see the stubRoutines.hpp file.
diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp
index 01bd472..65e65ef 100644
--- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp
@@ -202,45 +202,74 @@ Address TemplateTable::at_bcp(int offset) {
 }
 
 
-void TemplateTable::patch_bytecode(Bytecodes::Code bytecode, Register bc,
-                                   Register scratch,
-                                   bool load_bc_into_scratch/*=true*/) {
-
-  if (!RewriteBytecodes) return;
-  // the pair bytecodes have already done the load.
-  if (load_bc_into_scratch) {
-    __ movl(bc, bytecode);
+void TemplateTable::patch_bytecode(Bytecodes::Code bc, Register bc_reg,
+                                   Register temp_reg, bool load_bc_into_bc_reg/*=true*/,
+                                   int byte_no) {
+  if (!RewriteBytecodes)  return;
+  Label L_patch_done;
+
+  switch (bc) {
+  case Bytecodes::_fast_aputfield:
+  case Bytecodes::_fast_bputfield:
+  case Bytecodes::_fast_cputfield:
+  case Bytecodes::_fast_dputfield:
+  case Bytecodes::_fast_fputfield:
+  case Bytecodes::_fast_iputfield:
+  case Bytecodes::_fast_lputfield:
+  case Bytecodes::_fast_sputfield:
+    {
+      // We skip bytecode quickening for putfield instructions when
+      // the put_code written to the constant pool cache is zero.
+      // This is required so that every execution of this instruction
+      // calls out to InterpreterRuntime::resolve_get_put to do
+      // additional, required work.
+      assert(byte_no == f1_byte || byte_no == f2_byte, "byte_no out of range");
+      assert(load_bc_into_bc_reg, "we use bc_reg as temp");
+      __ get_cache_and_index_and_bytecode_at_bcp(bc_reg, temp_reg, temp_reg, byte_no, 1);
+      __ movl(bc_reg, bc);
+      __ cmpl(temp_reg, (int) 0);
+      __ jcc(Assembler::zero, L_patch_done);  // don't patch
+    }
+    break;
+  default:
+    assert(byte_no == -1, "sanity");
+    // the pair bytecodes have already done the load.
+    if (load_bc_into_bc_reg) {
+      __ movl(bc_reg, bc);
+    }
   }
-  Label patch_done;
+
   if (JvmtiExport::can_post_breakpoint()) {
-    Label fast_patch;
+    Label L_fast_patch;
     // if a breakpoint is present we can't rewrite the stream directly
-    __ movzbl(scratch, at_bcp(0));
-    __ cmpl(scratch, Bytecodes::_breakpoint);
-    __ jcc(Assembler::notEqual, fast_patch);
-    __ get_method(scratch);
+    __ movzbl(temp_reg, at_bcp(0));
+    __ cmpl(temp_reg, Bytecodes::_breakpoint);
+    __ jcc(Assembler::notEqual, L_fast_patch);
+    __ get_method(temp_reg);
     // Let breakpoint table handling rewrite to quicker bytecode
-    __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::set_original_bytecode_at), scratch, rsi, bc);
+    __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::set_original_bytecode_at), temp_reg, rsi, bc_reg);
 #ifndef ASSERT
-    __ jmpb(patch_done);
+    __ jmpb(L_patch_done);
 #else
-    __ jmp(patch_done);
+    __ jmp(L_patch_done);
 #endif
-    __ bind(fast_patch);
+    __ bind(L_fast_patch);
   }
+
 #ifdef ASSERT
-  Label okay;
-  __ load_unsigned_byte(scratch, at_bcp(0));
-  __ cmpl(scratch, (int)Bytecodes::java_code(bytecode));
-  __ jccb(Assembler::equal, okay);
-  __ cmpl(scratch, bc);
-  __ jcc(Assembler::equal, okay);
+  Label L_okay;
+  __ load_unsigned_byte(temp_reg, at_bcp(0));
+  __ cmpl(temp_reg, (int)Bytecodes::java_code(bc));
+  __ jccb(Assembler::equal, L_okay);
+  __ cmpl(temp_reg, bc_reg);
+  __ jcc(Assembler::equal, L_okay);
   __ stop("patching the wrong bytecode");
-  __ bind(okay);
+  __ bind(L_okay);
 #endif
+
   // patch bytecode
-  __ movb(at_bcp(0), bc);
-  __ bind(patch_done);
+  __ movb(at_bcp(0), bc_reg);
+  __ bind(L_patch_done);
 }
 
 //----------------------------------------------------------------------------------------------------
@@ -2060,24 +2089,20 @@ void TemplateTable::resolve_cache_and_index(int byte_no,
   assert_different_registers(result, Rcache, index, temp);
 
   Label resolved;
-  __ get_cache_and_index_at_bcp(Rcache, index, 1, index_size);
   if (byte_no == f1_oop) {
     // We are resolved if the f1 field contains a non-null object (CallSite, etc.)
     // This kind of CP cache entry does not need to match the flags byte, because
     // there is a 1-1 relation between bytecode type and CP entry type.
     assert(result != noreg, ""); //else do cmpptr(Address(...), (int32_t) NULL_WORD)
+    __ get_cache_and_index_at_bcp(Rcache, index, 1, index_size);
     __ movptr(result, Address(Rcache, index, Address::times_ptr, constantPoolCacheOopDesc::base_offset() + ConstantPoolCacheEntry::f1_offset()));
     __ testptr(result, result);
     __ jcc(Assembler::notEqual, resolved);
   } else {
     assert(byte_no == f1_byte || byte_no == f2_byte, "byte_no out of range");
     assert(result == noreg, "");  //else change code for setting result
-    const int shift_count = (1 + byte_no)*BitsPerByte;
-    __ movl(temp, Address(Rcache, index, Address::times_4, constantPoolCacheOopDesc::base_offset() + ConstantPoolCacheEntry::indices_offset()));
-    __ shrl(temp, shift_count);
-    // have we resolved this bytecode?
-    __ andl(temp, 0xFF);
-    __ cmpl(temp, (int)bytecode());
+    __ get_cache_and_index_and_bytecode_at_bcp(Rcache, index, temp, byte_no, 1, index_size);
+    __ cmpl(temp, (int) bytecode());  // have we resolved this bytecode?
     __ jcc(Assembler::equal, resolved);
   }
 
@@ -2453,138 +2478,153 @@ void TemplateTable::putfield_or_static(int byte_no, bool is_static) {
 
   __ shrl(flags, ConstantPoolCacheEntry::tosBits);
   assert(btos == 0, "change code, btos != 0");
-  // btos
   __ andl(flags, 0x0f);
   __ jcc(Assembler::notZero, notByte);
 
-  __ pop(btos);
-  if (!is_static) pop_and_check_object(obj);
-  __ movb(lo, rax );
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_bputfield, rcx, rbx);
+  // btos
+  {
+    __ pop(btos);
+    if (!is_static) pop_and_check_object(obj);
+    __ movb(lo, rax);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_bputfield, rcx, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
   __ bind(notByte);
-  // itos
-  __ cmpl(flags, itos );
+  __ cmpl(flags, itos);
   __ jcc(Assembler::notEqual, notInt);
 
-  __ pop(itos);
-  if (!is_static) pop_and_check_object(obj);
-
-  __ movl(lo, rax );
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_iputfield, rcx, rbx);
+  // itos
+  {
+    __ pop(itos);
+    if (!is_static) pop_and_check_object(obj);
+    __ movl(lo, rax);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_iputfield, rcx, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
   __ bind(notInt);
-  // atos
-  __ cmpl(flags, atos );
+  __ cmpl(flags, atos);
   __ jcc(Assembler::notEqual, notObj);
 
-  __ pop(atos);
-  if (!is_static) pop_and_check_object(obj);
-
-  do_oop_store(_masm, lo, rax, _bs->kind(), false);
-
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_aputfield, rcx, rbx);
+  // atos
+  {
+    __ pop(atos);
+    if (!is_static) pop_and_check_object(obj);
+    do_oop_store(_masm, lo, rax, _bs->kind(), false);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_aputfield, rcx, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
 
-  __ jmp(Done);
-
   __ bind(notObj);
-  // ctos
-  __ cmpl(flags, ctos );
+  __ cmpl(flags, ctos);
   __ jcc(Assembler::notEqual, notChar);
 
-  __ pop(ctos);
-  if (!is_static) pop_and_check_object(obj);
-  __ movw(lo, rax );
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_cputfield, rcx, rbx);
+  // ctos
+  {
+    __ pop(ctos);
+    if (!is_static) pop_and_check_object(obj);
+    __ movw(lo, rax);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_cputfield, rcx, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
   __ bind(notChar);
-  // stos
-  __ cmpl(flags, stos );
+  __ cmpl(flags, stos);
   __ jcc(Assembler::notEqual, notShort);
 
-  __ pop(stos);
-  if (!is_static) pop_and_check_object(obj);
-  __ movw(lo, rax );
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_sputfield, rcx, rbx);
+  // stos
+  {
+    __ pop(stos);
+    if (!is_static) pop_and_check_object(obj);
+    __ movw(lo, rax);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_sputfield, rcx, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
   __ bind(notShort);
-  // ltos
-  __ cmpl(flags, ltos );
+  __ cmpl(flags, ltos);
   __ jcc(Assembler::notEqual, notLong);
 
-  Label notVolatileLong;
-  __ testl(rdx, rdx);
-  __ jcc(Assembler::zero, notVolatileLong);
-
-  __ pop(ltos);  // overwrites rdx, do this after testing volatile.
-  if (!is_static) pop_and_check_object(obj);
-
-  // Replace with real volatile test
-  __ push(rdx);
-  __ push(rax);                 // Must update atomically with FIST
-  __ fild_d(Address(rsp,0));    // So load into FPU register
-  __ fistp_d(lo);               // and put into memory atomically
-  __ addptr(rsp, 2*wordSize);
-  // volatile_barrier();
-  volatile_barrier(Assembler::Membar_mask_bits(Assembler::StoreLoad |
-                                               Assembler::StoreStore));
-  // Don't rewrite volatile version
-  __ jmp(notVolatile);
-
-  __ bind(notVolatileLong);
-
-  __ pop(ltos);  // overwrites rdx
-  if (!is_static) pop_and_check_object(obj);
-  NOT_LP64(__ movptr(hi, rdx));
-  __ movptr(lo, rax);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_lputfield, rcx, rbx);
+  // ltos
+  {
+    Label notVolatileLong;
+    __ testl(rdx, rdx);
+    __ jcc(Assembler::zero, notVolatileLong);
+
+    __ pop(ltos);  // overwrites rdx, do this after testing volatile.
+    if (!is_static) pop_and_check_object(obj);
+
+    // Replace with real volatile test
+    __ push(rdx);
+    __ push(rax);                 // Must update atomically with FIST
+    __ fild_d(Address(rsp,0));    // So load into FPU register
+    __ fistp_d(lo);               // and put into memory atomically
+    __ addptr(rsp, 2*wordSize);
+    // volatile_barrier();
+    volatile_barrier(Assembler::Membar_mask_bits(Assembler::StoreLoad |
+                                                 Assembler::StoreStore));
+    // Don't rewrite volatile version
+    __ jmp(notVolatile);
+
+    __ bind(notVolatileLong);
+
+    __ pop(ltos);  // overwrites rdx
+    if (!is_static) pop_and_check_object(obj);
+    NOT_LP64(__ movptr(hi, rdx));
+    __ movptr(lo, rax);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_lputfield, rcx, rbx, true, byte_no);
+    }
+    __ jmp(notVolatile);
   }
-  __ jmp(notVolatile);
 
   __ bind(notLong);
-  // ftos
-  __ cmpl(flags, ftos );
+  __ cmpl(flags, ftos);
   __ jcc(Assembler::notEqual, notFloat);
 
-  __ pop(ftos);
-  if (!is_static) pop_and_check_object(obj);
-  __ fstp_s(lo);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_fputfield, rcx, rbx);
+  // ftos
+  {
+    __ pop(ftos);
+    if (!is_static) pop_and_check_object(obj);
+    __ fstp_s(lo);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_fputfield, rcx, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
   __ bind(notFloat);
-  // dtos
-  __ cmpl(flags, dtos );
+#ifdef ASSERT
+  __ cmpl(flags, dtos);
   __ jcc(Assembler::notEqual, notDouble);
+#endif
 
-  __ pop(dtos);
-  if (!is_static) pop_and_check_object(obj);
-  __ fstp_d(lo);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_dputfield, rcx, rbx);
+  // dtos
+  {
+    __ pop(dtos);
+    if (!is_static) pop_and_check_object(obj);
+    __ fstp_d(lo);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_dputfield, rcx, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
+#ifdef ASSERT
   __ bind(notDouble);
-
   __ stop("Bad state");
+#endif
 
   __ bind(Done);
 
diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp
index a88bcb7..818fb44 100644
--- a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp
@@ -203,46 +203,74 @@ Address TemplateTable::at_bcp(int offset) {
   return Address(r13, offset);
 }
 
-void TemplateTable::patch_bytecode(Bytecodes::Code bytecode, Register bc,
-                                   Register scratch,
-                                   bool load_bc_into_scratch/*=true*/) {
-  if (!RewriteBytecodes) {
-    return;
-  }
-  // the pair bytecodes have already done the load.
-  if (load_bc_into_scratch) {
-    __ movl(bc, bytecode);
+void TemplateTable::patch_bytecode(Bytecodes::Code bc, Register bc_reg,
+                                   Register temp_reg, bool load_bc_into_bc_reg/*=true*/,
+                                   int byte_no) {
+  if (!RewriteBytecodes)  return;
+  Label L_patch_done;
+
+  switch (bc) {
+  case Bytecodes::_fast_aputfield:
+  case Bytecodes::_fast_bputfield:
+  case Bytecodes::_fast_cputfield:
+  case Bytecodes::_fast_dputfield:
+  case Bytecodes::_fast_fputfield:
+  case Bytecodes::_fast_iputfield:
+  case Bytecodes::_fast_lputfield:
+  case Bytecodes::_fast_sputfield:
+    {
+      // We skip bytecode quickening for putfield instructions when
+      // the put_code written to the constant pool cache is zero.
+      // This is required so that every execution of this instruction
+      // calls out to InterpreterRuntime::resolve_get_put to do
+      // additional, required work.
+      assert(byte_no == f1_byte || byte_no == f2_byte, "byte_no out of range");
+      assert(load_bc_into_bc_reg, "we use bc_reg as temp");
+      __ get_cache_and_index_and_bytecode_at_bcp(temp_reg, bc_reg, temp_reg, byte_no, 1);
+      __ movl(bc_reg, bc);
+      __ cmpl(temp_reg, (int) 0);
+      __ jcc(Assembler::zero, L_patch_done);  // don't patch
+    }
+    break;
+  default:
+    assert(byte_no == -1, "sanity");
+    // the pair bytecodes have already done the load.
+    if (load_bc_into_bc_reg) {
+      __ movl(bc_reg, bc);
+    }
   }
-  Label patch_done;
+
   if (JvmtiExport::can_post_breakpoint()) {
-    Label fast_patch;
+    Label L_fast_patch;
     // if a breakpoint is present we can't rewrite the stream directly
-    __ movzbl(scratch, at_bcp(0));
-    __ cmpl(scratch, Bytecodes::_breakpoint);
-    __ jcc(Assembler::notEqual, fast_patch);
-    __ get_method(scratch);
+    __ movzbl(temp_reg, at_bcp(0));
+    __ cmpl(temp_reg, Bytecodes::_breakpoint);
+    __ jcc(Assembler::notEqual, L_fast_patch);
+    __ get_method(temp_reg);
     // Let breakpoint table handling rewrite to quicker bytecode
-    __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::set_original_bytecode_at), scratch, r13, bc);
+    __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::set_original_bytecode_at), temp_reg, r13, bc_reg);
 #ifndef ASSERT
-    __ jmpb(patch_done);
+    __ jmpb(L_patch_done);
 #else
-    __ jmp(patch_done);
+    __ jmp(L_patch_done);
 #endif
-    __ bind(fast_patch);
+    __ bind(L_fast_patch);
   }
+
 #ifdef ASSERT
-  Label okay;
-  __ load_unsigned_byte(scratch, at_bcp(0));
-  __ cmpl(scratch, (int) Bytecodes::java_code(bytecode));
-  __ jcc(Assembler::equal, okay);
-  __ cmpl(scratch, bc);
-  __ jcc(Assembler::equal, okay);
+  Label L_okay;
+  __ load_unsigned_byte(temp_reg, at_bcp(0));
+  __ cmpl(temp_reg, (int) Bytecodes::java_code(bc));
+  __ jcc(Assembler::equal, L_okay);
+  __ cmpl(temp_reg, bc_reg);
+  __ jcc(Assembler::equal, L_okay);
   __ stop("patching the wrong bytecode");
-  __ bind(okay);
+  __ bind(L_okay);
 #endif
+
   // patch bytecode
-  __ movb(at_bcp(0), bc);
-  __ bind(patch_done);
+  __ movb(at_bcp(0), bc_reg);
+  __ bind(L_patch_done);
 }
 
 
@@ -2098,24 +2126,20 @@ void TemplateTable::resolve_cache_and_index(int byte_no,
   assert_different_registers(result, Rcache, index, temp);
 
   Label resolved;
-  __ get_cache_and_index_at_bcp(Rcache, index, 1, index_size);
   if (byte_no == f1_oop) {
     // We are resolved if the f1 field contains a non-null object (CallSite, etc.)
     // This kind of CP cache entry does not need to match the flags byte, because
     // there is a 1-1 relation between bytecode type and CP entry type.
     assert(result != noreg, ""); //else do cmpptr(Address(...), (int32_t) NULL_WORD)
+    __ get_cache_and_index_at_bcp(Rcache, index, 1, index_size);
     __ movptr(result, Address(Rcache, index, Address::times_ptr, constantPoolCacheOopDesc::base_offset() + ConstantPoolCacheEntry::f1_offset()));
     __ testptr(result, result);
     __ jcc(Assembler::notEqual, resolved);
   } else {
     assert(byte_no == f1_byte || byte_no == f2_byte, "byte_no out of range");
     assert(result == noreg, "");  //else change code for setting result
-    const int shift_count = (1 + byte_no) * BitsPerByte;
-    __ movl(temp, Address(Rcache, index, Address::times_ptr, constantPoolCacheOopDesc::base_offset() + ConstantPoolCacheEntry::indices_offset()));
-    __ shrl(temp, shift_count);
-    // have we resolved this bytecode?
-    __ andl(temp, 0xFF);
-    __ cmpl(temp, (int) bytecode());
+    __ get_cache_and_index_and_bytecode_at_bcp(Rcache, index, temp, byte_no, 1, index_size);
+    __ cmpl(temp, (int) bytecode());  // have we resolved this bytecode?
     __ jcc(Assembler::equal, resolved);
   }
 
@@ -2507,101 +2531,123 @@ void TemplateTable::putfield_or_static(int byte_no, bool is_static) {
   assert(btos == 0, "change code, btos != 0");
   __ andl(flags, 0x0f);
   __ jcc(Assembler::notZero, notByte);
+
   // btos
-  __ pop(btos);
-  if (!is_static) pop_and_check_object(obj);
-  __ movb(field, rax);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_bputfield, bc, rbx);
+  {
+    __ pop(btos);
+    if (!is_static) pop_and_check_object(obj);
+    __ movb(field, rax);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_bputfield, bc, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
   __ bind(notByte);
   __ cmpl(flags, atos);
   __ jcc(Assembler::notEqual, notObj);
-  // atos
-  __ pop(atos);
-  if (!is_static) pop_and_check_object(obj);
 
-  // Store into the field
-  do_oop_store(_masm, field, rax, _bs->kind(), false);
-
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_aputfield, bc, rbx);
+  // atos
+  {
+    __ pop(atos);
+    if (!is_static) pop_and_check_object(obj);
+    // Store into the field
+    do_oop_store(_masm, field, rax, _bs->kind(), false);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_aputfield, bc, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
   __ bind(notObj);
   __ cmpl(flags, itos);
   __ jcc(Assembler::notEqual, notInt);
+
   // itos
-  __ pop(itos);
-  if (!is_static) pop_and_check_object(obj);
-  __ movl(field, rax);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_iputfield, bc, rbx);
+  {
+    __ pop(itos);
+    if (!is_static) pop_and_check_object(obj);
+    __ movl(field, rax);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_iputfield, bc, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
   __ bind(notInt);
   __ cmpl(flags, ctos);
   __ jcc(Assembler::notEqual, notChar);
+
   // ctos
-  __ pop(ctos);
-  if (!is_static) pop_and_check_object(obj);
-  __ movw(field, rax);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_cputfield, bc, rbx);
+  {
+    __ pop(ctos);
+    if (!is_static) pop_and_check_object(obj);
+    __ movw(field, rax);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_cputfield, bc, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
   __ bind(notChar);
   __ cmpl(flags, stos);
   __ jcc(Assembler::notEqual, notShort);
+
   // stos
-  __ pop(stos);
-  if (!is_static) pop_and_check_object(obj);
-  __ movw(field, rax);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_sputfield, bc, rbx);
+  {
+    __ pop(stos);
+    if (!is_static) pop_and_check_object(obj);
+    __ movw(field, rax);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_sputfield, bc, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
   __ bind(notShort);
   __ cmpl(flags, ltos);
   __ jcc(Assembler::notEqual, notLong);
+
   // ltos
-  __ pop(ltos);
-  if (!is_static) pop_and_check_object(obj);
-  __ movq(field, rax);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_lputfield, bc, rbx);
+  {
+    __ pop(ltos);
+    if (!is_static) pop_and_check_object(obj);
+    __ movq(field, rax);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_lputfield, bc, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
   __ bind(notLong);
   __ cmpl(flags, ftos);
   __ jcc(Assembler::notEqual, notFloat);
+
   // ftos
-  __ pop(ftos);
-  if (!is_static) pop_and_check_object(obj);
-  __ movflt(field, xmm0);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_fputfield, bc, rbx);
+  {
+    __ pop(ftos);
+    if (!is_static) pop_and_check_object(obj);
+    __ movflt(field, xmm0);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_fputfield, bc, rbx, true, byte_no);
+    }
+    __ jmp(Done);
   }
-  __ jmp(Done);
 
   __ bind(notFloat);
 #ifdef ASSERT
   __ cmpl(flags, dtos);
   __ jcc(Assembler::notEqual, notDouble);
 #endif
+
   // dtos
-  __ pop(dtos);
-  if (!is_static) pop_and_check_object(obj);
-  __ movdbl(field, xmm0);
-  if (!is_static) {
-    patch_bytecode(Bytecodes::_fast_dputfield, bc, rbx);
+  {
+    __ pop(dtos);
+    if (!is_static) pop_and_check_object(obj);
+    __ movdbl(field, xmm0);
+    if (!is_static) {
+      patch_bytecode(Bytecodes::_fast_dputfield, bc, rbx, true, byte_no);
+    }
   }
 
 #ifdef ASSERT
@@ -2612,12 +2658,12 @@ void TemplateTable::putfield_or_static(int byte_no, bool is_static) {
 #endif
 
   __ bind(Done);
+
   // Check for volatile store
   __ testl(rdx, rdx);
   __ jcc(Assembler::zero, notVolatile);
   volatile_barrier(Assembler::Membar_mask_bits(Assembler::StoreLoad |
                                                Assembler::StoreStore));
-
   __ bind(notVolatile);
 }
 
diff --git a/hotspot/src/cpu/x86/vm/vm_version_x86.cpp b/hotspot/src/cpu/x86/vm/vm_version_x86.cpp
index 4303441..7a8ee72 100644
--- a/hotspot/src/cpu/x86/vm/vm_version_x86.cpp
+++ b/hotspot/src/cpu/x86/vm/vm_version_x86.cpp
@@ -37,6 +37,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 
 int VM_Version::_cpu;
@@ -557,14 +560,16 @@ void VM_Version::get_processor_features() {
   if( !supports_sse() && supports_3dnow_prefetch() ) AllocatePrefetchInstr = 3;
 
   // Allocation prefetch settings
-  intx cache_line_size = L1_data_cache_line_size();
+  intx cache_line_size = prefetch_data_size();
   if( cache_line_size > AllocatePrefetchStepSize )
     AllocatePrefetchStepSize = cache_line_size;
-  if( FLAG_IS_DEFAULT(AllocatePrefetchLines) )
-    AllocatePrefetchLines = 3; // Optimistic value
+
   assert(AllocatePrefetchLines > 0, "invalid value");
-  if( AllocatePrefetchLines < 1 ) // set valid value in product VM
-    AllocatePrefetchLines = 1; // Conservative value
+  if( AllocatePrefetchLines < 1 )     // set valid value in product VM
+    AllocatePrefetchLines = 3;
+  assert(AllocateInstancePrefetchLines > 0, "invalid value");
+  if( AllocateInstancePrefetchLines < 1 ) // set valid value in product VM
+    AllocateInstancePrefetchLines = 1;
 
   AllocatePrefetchDistance = allocate_prefetch_distance();
   AllocatePrefetchStyle    = allocate_prefetch_style();
@@ -601,10 +606,11 @@ void VM_Version::get_processor_features() {
     tty->print_cr("Logical CPUs per core: %u",
                   logical_processors_per_package());
     tty->print_cr("UseSSE=%d",UseSSE);
-    tty->print("Allocation: ");
+    tty->print("Allocation");
     if (AllocatePrefetchStyle <= 0 || UseSSE == 0 && !supports_3dnow_prefetch()) {
-      tty->print_cr("no prefetching");
+      tty->print_cr(": no prefetching");
     } else {
+      tty->print(" prefetching: ");
       if (UseSSE == 0 && supports_3dnow_prefetch()) {
         tty->print("PREFETCHW");
       } else if (UseSSE >= 1) {
@@ -619,9 +625,9 @@ void VM_Version::get_processor_features() {
         }
       }
       if (AllocatePrefetchLines > 1) {
-        tty->print_cr(" %d, %d lines with step %d bytes", AllocatePrefetchDistance, AllocatePrefetchLines, AllocatePrefetchStepSize);
+        tty->print_cr(" at distance %d, %d lines of %d bytes", AllocatePrefetchDistance, AllocatePrefetchLines, AllocatePrefetchStepSize);
       } else {
-        tty->print_cr(" %d, one line", AllocatePrefetchDistance);
+        tty->print_cr(" at distance %d, one line of %d bytes", AllocatePrefetchDistance, AllocatePrefetchStepSize);
       }
     }
 
diff --git a/hotspot/src/cpu/x86/vm/vm_version_x86.hpp b/hotspot/src/cpu/x86/vm/vm_version_x86.hpp
index 47f5db9..47d81e0 100644
--- a/hotspot/src/cpu/x86/vm/vm_version_x86.hpp
+++ b/hotspot/src/cpu/x86/vm/vm_version_x86.hpp
@@ -419,7 +419,7 @@ public:
     return result;
   }
 
-  static intx L1_data_cache_line_size()  {
+  static intx prefetch_data_size()  {
     intx result = 0;
     if (is_intel()) {
       result = (_cpuid_info.dcp_cpuid4_ebx.bits.L1_line_size + 1);
diff --git a/hotspot/src/cpu/x86/vm/x86_32.ad b/hotspot/src/cpu/x86/vm/x86_32.ad
index bfa9e28..b403752 100644
--- a/hotspot/src/cpu/x86/vm/x86_32.ad
+++ b/hotspot/src/cpu/x86/vm/x86_32.ad
@@ -1369,7 +1369,12 @@ const uint Matcher::vector_ideal_reg(void) {
 //
 // NOTE: If the platform does not provide any short branch variants, then
 //       this method should return false for offset 0.
-bool Matcher::is_short_branch_offset(int rule, int offset) {
+bool Matcher::is_short_branch_offset(int rule, int br_size, int offset) {
+  // The passed offset is relative to address of the branch.
+  // On 86 a branch displacement is calculated relative to address
+  // of a next instruction.
+  offset -= br_size;
+
   // the short version of jmpConUCF2 contains multiple branches,
   // making the reach slightly less
   if (rule == jmpConUCF2_rule)
@@ -1713,18 +1718,6 @@ encode %{
     else                               emit_d32(cbuf,con);
   %}
 
-  enc_class Lbl (label labl) %{ // JMP, CALL
-    Label *l = $labl$$label;
-    emit_d32(cbuf, l ? (l->loc_pos() - (cbuf.insts_size()+4)) : 0);
-  %}
-
-  enc_class LblShort (label labl) %{ // JMP, CALL
-    Label *l = $labl$$label;
-    int disp = l ? (l->loc_pos() - (cbuf.insts_size()+1)) : 0;
-    assert(-128 <= disp && disp <= 127, "Displacement too large for short jmp");
-    emit_d8(cbuf, disp);
-  %}
-
   enc_class OpcSReg (eRegI dst) %{    // BSWAP
     emit_cc(cbuf, $secondary, $dst$$reg );
   %}
@@ -1747,21 +1740,6 @@ encode %{
     emit_rm(cbuf, 0x3, $secondary, $div$$reg );
   %}
 
-  enc_class Jcc (cmpOp cop, label labl) %{    // JCC
-    Label *l = $labl$$label;
-    $$$emit8$primary;
-    emit_cc(cbuf, $secondary, $cop$$cmpcode);
-    emit_d32(cbuf, l ? (l->loc_pos() - (cbuf.insts_size()+4)) : 0);
-  %}
-
-  enc_class JccShort (cmpOp cop, label labl) %{    // JCC
-    Label *l = $labl$$label;
-    emit_cc(cbuf, $primary, $cop$$cmpcode);
-    int disp = l ? (l->loc_pos() - (cbuf.insts_size()+1)) : 0;
-    assert(-128 <= disp && disp <= 127, "Displacement too large for short jmp");
-    emit_d8(cbuf, disp);
-  %}
-
   enc_class enc_cmov(cmpOp cop ) %{ // CMOV
     $$$emit8$primary;
     emit_cc(cbuf, $secondary, $cop$$cmpcode);
@@ -4496,7 +4474,6 @@ op_attrib op_cost(0);        // Required cost attribute
 //----------Instruction Attributes---------------------------------------------
 ins_attrib ins_cost(100);       // Required cost attribute
 ins_attrib ins_size(8);         // Required size attribute (in bits)
-ins_attrib ins_pc_relative(0);  // Required PC Relative flag
 ins_attrib ins_short_branch(0); // Required flag: is this instruction a
                                 // non-matching short branch variant of some
                                                             // long branch?
@@ -7348,8 +7325,9 @@ instruct prefetchr( memory mem ) %{
   ins_cost(100);
 
   format %{ "PREFETCHR $mem\t! Prefetch into level 1 cache for read" %}
-  opcode(0x0F, 0x0d);     /* Opcode 0F 0d /0 */
-  ins_encode(OpcP, OpcS, RMopc_Mem(0x00,mem));
+  ins_encode %{
+    __ prefetchr($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
@@ -7359,8 +7337,9 @@ instruct prefetchrNTA( memory mem ) %{
   ins_cost(100);
 
   format %{ "PREFETCHNTA $mem\t! Prefetch into non-temporal cache for read" %}
-  opcode(0x0F, 0x18);     /* Opcode 0F 18 /0 */
-  ins_encode(OpcP, OpcS, RMopc_Mem(0x00,mem));
+  ins_encode %{
+    __ prefetchnta($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
@@ -7370,8 +7349,9 @@ instruct prefetchrT0( memory mem ) %{
   ins_cost(100);
 
   format %{ "PREFETCHT0 $mem\t! Prefetch into L1 and L2 caches for read" %}
-  opcode(0x0F, 0x18);     /* Opcode 0F 18 /1 */
-  ins_encode(OpcP, OpcS, RMopc_Mem(0x01,mem));
+  ins_encode %{
+    __ prefetcht0($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
@@ -7381,8 +7361,9 @@ instruct prefetchrT2( memory mem ) %{
   ins_cost(100);
 
   format %{ "PREFETCHT2 $mem\t! Prefetch into L2 cache for read" %}
-  opcode(0x0F, 0x18);     /* Opcode 0F 18 /3 */
-  ins_encode(OpcP, OpcS, RMopc_Mem(0x03,mem));
+  ins_encode %{
+    __ prefetcht2($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
@@ -7397,46 +7378,86 @@ instruct prefetchw0( memory mem ) %{
 %}
 
 instruct prefetchw( memory mem ) %{
-  predicate(UseSSE==0 && VM_Version::supports_3dnow_prefetch() || AllocatePrefetchInstr==3);
+  predicate(UseSSE==0 && VM_Version::supports_3dnow_prefetch());
   match( PrefetchWrite mem );
   ins_cost(100);
 
   format %{ "PREFETCHW $mem\t! Prefetch into L1 cache and mark modified" %}
-  opcode(0x0F, 0x0D);     /* Opcode 0F 0D /1 */
-  ins_encode(OpcP, OpcS, RMopc_Mem(0x01,mem));
+  ins_encode %{
+    __ prefetchw($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
 instruct prefetchwNTA( memory mem ) %{
-  predicate(UseSSE>=1 && AllocatePrefetchInstr==0);
+  predicate(UseSSE>=1);
   match(PrefetchWrite mem);
   ins_cost(100);
 
   format %{ "PREFETCHNTA $mem\t! Prefetch into non-temporal cache for write" %}
-  opcode(0x0F, 0x18);     /* Opcode 0F 18 /0 */
-  ins_encode(OpcP, OpcS, RMopc_Mem(0x00,mem));
+  ins_encode %{
+    __ prefetchnta($mem$$Address);
+  %}
+  ins_pipe(ialu_mem);
+%}
+
+// Prefetch instructions for allocation.
+
+instruct prefetchAlloc0( memory mem ) %{
+  predicate(UseSSE==0 && AllocatePrefetchInstr!=3);
+  match(PrefetchAllocation mem);
+  ins_cost(0);
+  size(0);
+  format %{ "Prefetch allocation (non-SSE is empty encoding)" %}
+  ins_encode();
+  ins_pipe(empty);
+%}
+
+instruct prefetchAlloc( memory mem ) %{
+  predicate(AllocatePrefetchInstr==3);
+  match( PrefetchAllocation mem );
+  ins_cost(100);
+
+  format %{ "PREFETCHW $mem\t! Prefetch allocation into L1 cache and mark modified" %}
+  ins_encode %{
+    __ prefetchw($mem$$Address);
+  %}
+  ins_pipe(ialu_mem);
+%}
+
+instruct prefetchAllocNTA( memory mem ) %{
+  predicate(UseSSE>=1 && AllocatePrefetchInstr==0);
+  match(PrefetchAllocation mem);
+  ins_cost(100);
+
+  format %{ "PREFETCHNTA $mem\t! Prefetch allocation into non-temporal cache for write" %}
+  ins_encode %{
+    __ prefetchnta($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
-instruct prefetchwT0( memory mem ) %{
+instruct prefetchAllocT0( memory mem ) %{
   predicate(UseSSE>=1 && AllocatePrefetchInstr==1);
-  match(PrefetchWrite mem);
+  match(PrefetchAllocation mem);
   ins_cost(100);
 
-  format %{ "PREFETCHT0 $mem\t! Prefetch into L1 and L2 caches for write" %}
-  opcode(0x0F, 0x18);     /* Opcode 0F 18 /1 */
-  ins_encode(OpcP, OpcS, RMopc_Mem(0x01,mem));
+  format %{ "PREFETCHT0 $mem\t! Prefetch allocation into L1 and L2 caches for write" %}
+  ins_encode %{
+    __ prefetcht0($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
-instruct prefetchwT2( memory mem ) %{
+instruct prefetchAllocT2( memory mem ) %{
   predicate(UseSSE>=1 && AllocatePrefetchInstr==2);
-  match(PrefetchWrite mem);
+  match(PrefetchAllocation mem);
   ins_cost(100);
 
-  format %{ "PREFETCHT2 $mem\t! Prefetch into L2 cache for write" %}
-  opcode(0x0F, 0x18);     /* Opcode 0F 18 /3 */
-  ins_encode(OpcP, OpcS, RMopc_Mem(0x03,mem));
+  format %{ "PREFETCHT2 $mem\t! Prefetch allocation into L2 cache for write" %}
+  ins_encode %{
+    __ prefetcht2($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
@@ -7806,8 +7827,7 @@ instruct membar_acquire() %{
 %}
 
 instruct membar_acquire_lock() %{
-  match(MemBarAcquire);
-  predicate(Matcher::prior_fast_lock(n));
+  match(MemBarAcquireLock);
   ins_cost(0);
 
   size(0);
@@ -7827,8 +7847,7 @@ instruct membar_release() %{
 %}
 
 instruct membar_release_lock() %{
-  match(MemBarRelease);
-  predicate(Matcher::post_fast_unlock(n));
+  match(MemBarReleaseLock);
   ins_cost(0);
 
   size(0);
@@ -13047,7 +13066,6 @@ instruct jumpXtnd(eRegI switch_val) %{
     Address index(noreg, $switch_val$$Register, Address::times_1);
     __ jump(ArrayAddress($constantaddress, index));
   %}
-  ins_pc_relative(1);
   ins_pipe(pipe_jmp);
 %}
 
@@ -13059,10 +13077,11 @@ instruct jmpDir(label labl) %{
   ins_cost(300);
   format %{ "JMP    $labl" %}
   size(5);
-  opcode(0xE9);
-  ins_encode( OpcP, Lbl( labl ) );
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jmp(*L, false); // Always long jump
+  %}
   ins_pipe( pipe_jmp );
-  ins_pc_relative(1);
 %}
 
 // Jump Direct Conditional - Label defines a relative address from Jcc+1
@@ -13073,10 +13092,11 @@ instruct jmpCon(cmpOp cop, eFlagsReg cr, label labl) %{
   ins_cost(300);
   format %{ "J$cop    $labl" %}
   size(6);
-  opcode(0x0F, 0x80);
-  ins_encode( Jcc( cop, labl) );
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false); // Always long jump
+  %}
   ins_pipe( pipe_jcc );
-  ins_pc_relative(1);
 %}
 
 // Jump Direct Conditional - Label defines a relative address from Jcc+1
@@ -13087,10 +13107,11 @@ instruct jmpLoopEnd(cmpOp cop, eFlagsReg cr, label labl) %{
   ins_cost(300);
   format %{ "J$cop    $labl\t# Loop end" %}
   size(6);
-  opcode(0x0F, 0x80);
-  ins_encode( Jcc( cop, labl) );
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false); // Always long jump
+  %}
   ins_pipe( pipe_jcc );
-  ins_pc_relative(1);
 %}
 
 // Jump Direct Conditional - Label defines a relative address from Jcc+1
@@ -13101,10 +13122,11 @@ instruct jmpLoopEndU(cmpOpU cop, eFlagsRegU cmp, label labl) %{
   ins_cost(300);
   format %{ "J$cop,u  $labl\t# Loop end" %}
   size(6);
-  opcode(0x0F, 0x80);
-  ins_encode( Jcc( cop, labl) );
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false); // Always long jump
+  %}
   ins_pipe( pipe_jcc );
-  ins_pc_relative(1);
 %}
 
 instruct jmpLoopEndUCF(cmpOpUCF cop, eFlagsRegUCF cmp, label labl) %{
@@ -13114,10 +13136,11 @@ instruct jmpLoopEndUCF(cmpOpUCF cop, eFlagsRegUCF cmp, label labl) %{
   ins_cost(200);
   format %{ "J$cop,u  $labl\t# Loop end" %}
   size(6);
-  opcode(0x0F, 0x80);
-  ins_encode( Jcc( cop, labl) );
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false); // Always long jump
+  %}
   ins_pipe( pipe_jcc );
-  ins_pc_relative(1);
 %}
 
 // Jump Direct Conditional - using unsigned comparison
@@ -13128,10 +13151,11 @@ instruct jmpConU(cmpOpU cop, eFlagsRegU cmp, label labl) %{
   ins_cost(300);
   format %{ "J$cop,u  $labl" %}
   size(6);
-  opcode(0x0F, 0x80);
-  ins_encode(Jcc(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false); // Always long jump
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
 %}
 
 instruct jmpConUCF(cmpOpUCF cop, eFlagsRegUCF cmp, label labl) %{
@@ -13141,10 +13165,11 @@ instruct jmpConUCF(cmpOpUCF cop, eFlagsRegUCF cmp, label labl) %{
   ins_cost(200);
   format %{ "J$cop,u  $labl" %}
   size(6);
-  opcode(0x0F, 0x80);
-  ins_encode(Jcc(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false); // Always long jump
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
 %}
 
 instruct jmpConUCF2(cmpOpUCF2 cop, eFlagsRegUCF cmp, label labl) %{
@@ -13162,31 +13187,21 @@ instruct jmpConUCF2(cmpOpUCF2 cop, eFlagsRegUCF cmp, label labl) %{
       $$emit$$"done:"
     }
   %}
-  size(12);
-  opcode(0x0F, 0x80);
   ins_encode %{
     Label* l = $labl$$label;
-    $$$emit8$primary;
-    emit_cc(cbuf, $secondary, Assembler::parity);
-    int parity_disp = -1;
-    bool ok = false;
     if ($cop$$cmpcode == Assembler::notEqual) {
-       // the two jumps 6 bytes apart so the jump distances are too
-       parity_disp = l ? (l->loc_pos() - (cbuf.insts_size() + 4)) : 0;
+      __ jcc(Assembler::parity, *l, false);
+      __ jcc(Assembler::notEqual, *l, false);
     } else if ($cop$$cmpcode == Assembler::equal) {
-       parity_disp = 6;
-       ok = true;
+      Label done;
+      __ jccb(Assembler::parity, done);
+      __ jcc(Assembler::equal, *l, false);
+      __ bind(done);
     } else {
        ShouldNotReachHere();
     }
-    emit_d32(cbuf, parity_disp);
-    $$$emit8$primary;
-    emit_cc(cbuf, $secondary, $cop$$cmpcode);
-    int disp = l ? (l->loc_pos() - (cbuf.insts_size() + 4)) : 0;
-    emit_d32(cbuf, disp);
   %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
 %}
 
 // ============================================================================
@@ -13251,10 +13266,11 @@ instruct jmpDir_short(label labl) %{
   ins_cost(300);
   format %{ "JMP,s  $labl" %}
   size(2);
-  opcode(0xEB);
-  ins_encode( OpcP, LblShort( labl ) );
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jmpb(*L);
+  %}
   ins_pipe( pipe_jmp );
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -13266,10 +13282,11 @@ instruct jmpCon_short(cmpOp cop, eFlagsReg cr, label labl) %{
   ins_cost(300);
   format %{ "J$cop,s  $labl" %}
   size(2);
-  opcode(0x70);
-  ins_encode( JccShort( cop, labl) );
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jccb((Assembler::Condition)($cop$$cmpcode), *L);
+  %}
   ins_pipe( pipe_jcc );
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -13281,10 +13298,11 @@ instruct jmpLoopEnd_short(cmpOp cop, eFlagsReg cr, label labl) %{
   ins_cost(300);
   format %{ "J$cop,s  $labl\t# Loop end" %}
   size(2);
-  opcode(0x70);
-  ins_encode( JccShort( cop, labl) );
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jccb((Assembler::Condition)($cop$$cmpcode), *L);
+  %}
   ins_pipe( pipe_jcc );
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -13296,10 +13314,11 @@ instruct jmpLoopEndU_short(cmpOpU cop, eFlagsRegU cmp, label labl) %{
   ins_cost(300);
   format %{ "J$cop,us $labl\t# Loop end" %}
   size(2);
-  opcode(0x70);
-  ins_encode( JccShort( cop, labl) );
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jccb((Assembler::Condition)($cop$$cmpcode), *L);
+  %}
   ins_pipe( pipe_jcc );
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -13310,10 +13329,11 @@ instruct jmpLoopEndUCF_short(cmpOpUCF cop, eFlagsRegUCF cmp, label labl) %{
   ins_cost(300);
   format %{ "J$cop,us $labl\t# Loop end" %}
   size(2);
-  opcode(0x70);
-  ins_encode( JccShort( cop, labl) );
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jccb((Assembler::Condition)($cop$$cmpcode), *L);
+  %}
   ins_pipe( pipe_jcc );
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -13325,10 +13345,11 @@ instruct jmpConU_short(cmpOpU cop, eFlagsRegU cmp, label labl) %{
   ins_cost(300);
   format %{ "J$cop,us $labl" %}
   size(2);
-  opcode(0x70);
-  ins_encode( JccShort( cop, labl) );
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jccb((Assembler::Condition)($cop$$cmpcode), *L);
+  %}
   ins_pipe( pipe_jcc );
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -13339,10 +13360,11 @@ instruct jmpConUCF_short(cmpOpUCF cop, eFlagsRegUCF cmp, label labl) %{
   ins_cost(300);
   format %{ "J$cop,us $labl" %}
   size(2);
-  opcode(0x70);
-  ins_encode( JccShort( cop, labl) );
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jccb((Assembler::Condition)($cop$$cmpcode), *L);
+  %}
   ins_pipe( pipe_jcc );
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -13362,27 +13384,21 @@ instruct jmpConUCF2_short(cmpOpUCF2 cop, eFlagsRegUCF cmp, label labl) %{
     }
   %}
   size(4);
-  opcode(0x70);
   ins_encode %{
     Label* l = $labl$$label;
-    emit_cc(cbuf, $primary, Assembler::parity);
-    int parity_disp = -1;
     if ($cop$$cmpcode == Assembler::notEqual) {
-      parity_disp = l ? (l->loc_pos() - (cbuf.insts_size() + 1)) : 0;
+      __ jccb(Assembler::parity, *l);
+      __ jccb(Assembler::notEqual, *l);
     } else if ($cop$$cmpcode == Assembler::equal) {
-      parity_disp = 2;
+      Label done;
+      __ jccb(Assembler::parity, done);
+      __ jccb(Assembler::equal, *l);
+      __ bind(done);
     } else {
-      ShouldNotReachHere();
+       ShouldNotReachHere();
     }
-    emit_d8(cbuf, parity_disp);
-    emit_cc(cbuf, $primary, $cop$$cmpcode);
-    int disp = l ? (l->loc_pos() - (cbuf.insts_size() + 1)) : 0;
-    emit_d8(cbuf, disp);
-    assert(-128 <= disp && disp <= 127, "Displacement too large for short jmp");
-    assert(-128 <= parity_disp && parity_disp <= 127, "Displacement too large for short jmp");
   %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -13855,7 +13871,6 @@ instruct CallStaticJavaDirect(method meth) %{
               call_epilog,
               post_call_FPU );
   ins_pipe( pipe_slow );
-  ins_pc_relative(1);
   ins_alignment(4);
 %}
 
@@ -13879,7 +13894,6 @@ instruct CallStaticJavaHandle(method meth, eBPRegP ebp_mh_SP_save) %{
               call_epilog,
               post_call_FPU );
   ins_pipe( pipe_slow );
-  ins_pc_relative(1);
   ins_alignment(4);
 %}
 
@@ -13899,7 +13913,6 @@ instruct CallDynamicJavaDirect(method meth) %{
               call_epilog,
               post_call_FPU );
   ins_pipe( pipe_slow );
-  ins_pc_relative(1);
   ins_alignment(4);
 %}
 
@@ -13917,7 +13930,6 @@ instruct CallRuntimeDirect(method meth) %{
               Java_To_Runtime( meth ),
               post_call_FPU );
   ins_pipe( pipe_slow );
-  ins_pc_relative(1);
 %}
 
 // Call runtime without safepoint
@@ -13933,7 +13945,6 @@ instruct CallLeafDirect(method meth) %{
               Java_To_Runtime( meth ),
               Verify_FPU_For_Leaf, post_call_FPU );
   ins_pipe( pipe_slow );
-  ins_pc_relative(1);
 %}
 
 instruct CallLeafNoFPDirect(method meth) %{
@@ -13945,7 +13956,6 @@ instruct CallLeafNoFPDirect(method meth) %{
   opcode(0xE8); /* E8 cd */
   ins_encode(Java_To_Runtime(meth));
   ins_pipe( pipe_slow );
-  ins_pc_relative(1);
 %}
 
 
@@ -14024,7 +14034,6 @@ instruct cmpFastLock( eFlagsReg cr, eRegP object, eRegP box, eAXRegI tmp, eRegP
   format %{ "FASTLOCK $object, $box KILLS $tmp,$scr" %}
   ins_encode( Fast_Lock(object,box,tmp,scr) );
   ins_pipe( pipe_slow );
-  ins_pc_relative(1);
 %}
 
 instruct cmpFastUnlock( eFlagsReg cr, eRegP object, eAXRegP box, eRegP tmp ) %{
@@ -14034,7 +14043,6 @@ instruct cmpFastUnlock( eFlagsReg cr, eRegP object, eAXRegP box, eRegP tmp ) %{
   format %{ "FASTUNLOCK $object, $box, $tmp" %}
   ins_encode( Fast_Unlock(object,box,tmp) );
   ins_pipe( pipe_slow );
-  ins_pc_relative(1);
 %}
 
 
diff --git a/hotspot/src/cpu/x86/vm/x86_64.ad b/hotspot/src/cpu/x86/vm/x86_64.ad
index 9612d4f..4f6fa3c 100644
--- a/hotspot/src/cpu/x86/vm/x86_64.ad
+++ b/hotspot/src/cpu/x86/vm/x86_64.ad
@@ -1966,7 +1966,12 @@ const uint Matcher::vector_ideal_reg(void) {
 //
 // NOTE: If the platform does not provide any short branch variants, then
 //       this method should return false for offset 0.
-bool Matcher::is_short_branch_offset(int rule, int offset) {
+bool Matcher::is_short_branch_offset(int rule, int br_size, int offset) {
+  // The passed offset is relative to address of the branch.
+  // On 86 a branch displacement is calculated relative to address
+  // of a next instruction.
+  offset -= br_size;
+
   // the short version of jmpConUCF2 contains multiple branches,
   // making the reach slightly less
   if (rule == jmpConUCF2_rule)
@@ -2426,22 +2431,6 @@ encode %{
     }
   %}
 
-  enc_class Lbl(label labl)
-  %{
-    // JMP, CALL
-    Label* l = $labl$$label;
-    emit_d32(cbuf, l ? (l->loc_pos() - (cbuf.insts_size() + 4)) : 0);
-  %}
-
-  enc_class LblShort(label labl)
-  %{
-    // JMP, CALL
-    Label* l = $labl$$label;
-    int disp = l ? (l->loc_pos() - (cbuf.insts_size() + 1)) : 0;
-    assert(-128 <= disp && disp <= 127, "Displacement too large for short jmp");
-    emit_d8(cbuf, disp);
-  %}
-
   enc_class opc2_reg(rRegI dst)
   %{
     // BSWAP
@@ -2460,25 +2449,6 @@ encode %{
     emit_rm(cbuf, 0x3, $secondary, $div$$reg & 7);
   %}
 
-  enc_class Jcc(cmpOp cop, label labl)
-  %{
-    // JCC
-    Label* l = $labl$$label;
-    $$$emit8$primary;
-    emit_cc(cbuf, $secondary, $cop$$cmpcode);
-    emit_d32(cbuf, l ? (l->loc_pos() - (cbuf.insts_size() + 4)) : 0);
-  %}
-
-  enc_class JccShort (cmpOp cop, label labl)
-  %{
-  // JCC
-    Label *l = $labl$$label;
-    emit_cc(cbuf, $primary, $cop$$cmpcode);
-    int disp = l ? (l->loc_pos() - (cbuf.insts_size() + 1)) : 0;
-    assert(-128 <= disp && disp <= 127, "Displacement too large for short jmp");
-    emit_d8(cbuf, disp);
-  %}
-
   enc_class enc_cmov(cmpOp cop)
   %{
     // CMOV
@@ -4013,7 +3983,6 @@ op_attrib op_cost(0);        // Required cost attribute
 //----------Instruction Attributes---------------------------------------------
 ins_attrib ins_cost(100);       // Required cost attribute
 ins_attrib ins_size(8);         // Required size attribute (in bits)
-ins_attrib ins_pc_relative(0);  // Required PC Relative flag
 ins_attrib ins_short_branch(0); // Required flag: is this instruction
                                 // a non-matching short branch variant
                                 // of some long branch?
@@ -6648,8 +6617,9 @@ instruct prefetchr( memory mem ) %{
   ins_cost(125);
 
   format %{ "PREFETCHR $mem\t# Prefetch into level 1 cache" %}
-  opcode(0x0F, 0x0D);     /* Opcode 0F 0D /0 */
-  ins_encode(REX_mem(mem), OpcP, OpcS, RM_opc_mem(0x00, mem));
+  ins_encode %{
+    __ prefetchr($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
@@ -6659,8 +6629,9 @@ instruct prefetchrNTA( memory mem ) %{
   ins_cost(125);
 
   format %{ "PREFETCHNTA $mem\t# Prefetch into non-temporal cache for read" %}
-  opcode(0x0F, 0x18);     /* Opcode 0F 18 /0 */
-  ins_encode(REX_mem(mem), OpcP, OpcS, RM_opc_mem(0x00, mem));
+  ins_encode %{
+    __ prefetchnta($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
@@ -6670,8 +6641,9 @@ instruct prefetchrT0( memory mem ) %{
   ins_cost(125);
 
   format %{ "PREFETCHT0 $mem\t# prefetch into L1 and L2 caches for read" %}
-  opcode(0x0F, 0x18); /* Opcode 0F 18 /1 */
-  ins_encode(REX_mem(mem), OpcP, OpcS, RM_opc_mem(0x01, mem));
+  ins_encode %{
+    __ prefetcht0($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
@@ -6681,52 +6653,70 @@ instruct prefetchrT2( memory mem ) %{
   ins_cost(125);
 
   format %{ "PREFETCHT2 $mem\t# prefetch into L2 caches for read" %}
-  opcode(0x0F, 0x18); /* Opcode 0F 18 /3 */
-  ins_encode(REX_mem(mem), OpcP, OpcS, RM_opc_mem(0x03, mem));
+  ins_encode %{
+    __ prefetcht2($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
-instruct prefetchw( memory mem ) %{
-  predicate(AllocatePrefetchInstr==3);
+instruct prefetchwNTA( memory mem ) %{
   match(PrefetchWrite mem);
   ins_cost(125);
 
-  format %{ "PREFETCHW $mem\t# Prefetch into level 1 cache and mark modified" %}
-  opcode(0x0F, 0x0D);     /* Opcode 0F 0D /1 */
-  ins_encode(REX_mem(mem), OpcP, OpcS, RM_opc_mem(0x01, mem));
+  format %{ "PREFETCHNTA $mem\t# Prefetch to non-temporal cache for write" %}
+  ins_encode %{
+    __ prefetchnta($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
-instruct prefetchwNTA( memory mem ) %{
+// Prefetch instructions for allocation.
+
+instruct prefetchAlloc( memory mem ) %{
+  predicate(AllocatePrefetchInstr==3);
+  match(PrefetchAllocation mem);
+  ins_cost(125);
+
+  format %{ "PREFETCHW $mem\t# Prefetch allocation into level 1 cache and mark modified" %}
+  ins_encode %{
+    __ prefetchw($mem$$Address);
+  %}
+  ins_pipe(ialu_mem);
+%}
+
+instruct prefetchAllocNTA( memory mem ) %{
   predicate(AllocatePrefetchInstr==0);
-  match(PrefetchWrite mem);
+  match(PrefetchAllocation mem);
   ins_cost(125);
 
-  format %{ "PREFETCHNTA $mem\t# Prefetch to non-temporal cache for write" %}
-  opcode(0x0F, 0x18);     /* Opcode 0F 18 /0 */
-  ins_encode(REX_mem(mem), OpcP, OpcS, RM_opc_mem(0x00, mem));
+  format %{ "PREFETCHNTA $mem\t# Prefetch allocation to non-temporal cache for write" %}
+  ins_encode %{
+    __ prefetchnta($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
-instruct prefetchwT0( memory mem ) %{
+instruct prefetchAllocT0( memory mem ) %{
   predicate(AllocatePrefetchInstr==1);
-  match(PrefetchWrite mem);
+  match(PrefetchAllocation mem);
   ins_cost(125);
 
-  format %{ "PREFETCHT0 $mem\t# Prefetch to level 1 and 2 caches for write" %}
-  opcode(0x0F, 0x18);     /* Opcode 0F 18 /1 */
-  ins_encode(REX_mem(mem), OpcP, OpcS, RM_opc_mem(0x01, mem));
+  format %{ "PREFETCHT0 $mem\t# Prefetch allocation to level 1 and 2 caches for write" %}
+  ins_encode %{
+    __ prefetcht0($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
-instruct prefetchwT2( memory mem ) %{
+instruct prefetchAllocT2( memory mem ) %{
   predicate(AllocatePrefetchInstr==2);
-  match(PrefetchWrite mem);
+  match(PrefetchAllocation mem);
   ins_cost(125);
 
-  format %{ "PREFETCHT2 $mem\t# Prefetch to level 2 cache for write" %}
-  opcode(0x0F, 0x18);     /* Opcode 0F 18 /3 */
-  ins_encode(REX_mem(mem), OpcP, OpcS, RM_opc_mem(0x03, mem));
+  format %{ "PREFETCHT2 $mem\t# Prefetch allocation to level 2 cache for write" %}
+  ins_encode %{
+    __ prefetcht2($mem$$Address);
+  %}
   ins_pipe(ialu_mem);
 %}
 
@@ -7376,8 +7366,7 @@ instruct membar_acquire()
 
 instruct membar_acquire_lock()
 %{
-  match(MemBarAcquire);
-  predicate(Matcher::prior_fast_lock(n));
+  match(MemBarAcquireLock);
   ins_cost(0);
 
   size(0);
@@ -7399,8 +7388,7 @@ instruct membar_release()
 
 instruct membar_release_lock()
 %{
-  match(MemBarRelease);
-  predicate(Matcher::post_fast_unlock(n));
+  match(MemBarReleaseLock);
   ins_cost(0);
 
   size(0);
@@ -7547,7 +7535,6 @@ instruct jumpXtnd_offset(rRegL switch_val, immI2 shift, rRegI dest) %{
     __ jmp(dispatch);
   %}
   ins_pipe(pipe_jmp);
-  ins_pc_relative(1);
 %}
 
 instruct jumpXtnd_addr(rRegL switch_val, immI2 shift, immL32 offset, rRegI dest) %{
@@ -7568,7 +7555,6 @@ instruct jumpXtnd_addr(rRegL switch_val, immI2 shift, immL32 offset, rRegI dest)
     __ jmp(dispatch);
   %}
   ins_pipe(pipe_jmp);
-  ins_pc_relative(1);
 %}
 
 instruct jumpXtnd(rRegL switch_val, rRegI dest) %{
@@ -7589,7 +7575,6 @@ instruct jumpXtnd(rRegL switch_val, rRegI dest) %{
     __ jmp(dispatch);
   %}
   ins_pipe(pipe_jmp);
-  ins_pc_relative(1);
 %}
 
 // Conditional move
@@ -12017,10 +12002,11 @@ instruct jmpDir(label labl)
   ins_cost(300);
   format %{ "jmp     $labl" %}
   size(5);
-  opcode(0xE9);
-  ins_encode(OpcP, Lbl(labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jmp(*L, false); // Always long jump
+  %}
   ins_pipe(pipe_jmp);
-  ins_pc_relative(1);
 %}
 
 // Jump Direct Conditional - Label defines a relative address from Jcc+1
@@ -12032,10 +12018,11 @@ instruct jmpCon(cmpOp cop, rFlagsReg cr, label labl)
   ins_cost(300);
   format %{ "j$cop     $labl" %}
   size(6);
-  opcode(0x0F, 0x80);
-  ins_encode(Jcc(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false); // Always long jump
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
 %}
 
 // Jump Direct Conditional - Label defines a relative address from Jcc+1
@@ -12047,10 +12034,11 @@ instruct jmpLoopEnd(cmpOp cop, rFlagsReg cr, label labl)
   ins_cost(300);
   format %{ "j$cop     $labl\t# loop end" %}
   size(6);
-  opcode(0x0F, 0x80);
-  ins_encode(Jcc(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false); // Always long jump
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
 %}
 
 // Jump Direct Conditional - Label defines a relative address from Jcc+1
@@ -12061,10 +12049,11 @@ instruct jmpLoopEndU(cmpOpU cop, rFlagsRegU cmp, label labl) %{
   ins_cost(300);
   format %{ "j$cop,u   $labl\t# loop end" %}
   size(6);
-  opcode(0x0F, 0x80);
-  ins_encode(Jcc(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false); // Always long jump
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
 %}
 
 instruct jmpLoopEndUCF(cmpOpUCF cop, rFlagsRegUCF cmp, label labl) %{
@@ -12074,10 +12063,11 @@ instruct jmpLoopEndUCF(cmpOpUCF cop, rFlagsRegUCF cmp, label labl) %{
   ins_cost(200);
   format %{ "j$cop,u   $labl\t# loop end" %}
   size(6);
-  opcode(0x0F, 0x80);
-  ins_encode(Jcc(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false); // Always long jump
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
 %}
 
 // Jump Direct Conditional - using unsigned comparison
@@ -12088,10 +12078,11 @@ instruct jmpConU(cmpOpU cop, rFlagsRegU cmp, label labl) %{
   ins_cost(300);
   format %{ "j$cop,u  $labl" %}
   size(6);
-  opcode(0x0F, 0x80);
-  ins_encode(Jcc(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false); // Always long jump
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
 %}
 
 instruct jmpConUCF(cmpOpUCF cop, rFlagsRegUCF cmp, label labl) %{
@@ -12101,10 +12092,11 @@ instruct jmpConUCF(cmpOpUCF cop, rFlagsRegUCF cmp, label labl) %{
   ins_cost(200);
   format %{ "j$cop,u  $labl" %}
   size(6);
-  opcode(0x0F, 0x80);
-  ins_encode(Jcc(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false); // Always long jump
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
 %}
 
 instruct jmpConUCF2(cmpOpUCF2 cop, rFlagsRegUCF cmp, label labl) %{
@@ -12122,29 +12114,21 @@ instruct jmpConUCF2(cmpOpUCF2 cop, rFlagsRegUCF cmp, label labl) %{
       $$emit$$"done:"
     }
   %}
-  size(12);
-  opcode(0x0F, 0x80);
   ins_encode %{
     Label* l = $labl$$label;
-    $$$emit8$primary;
-    emit_cc(cbuf, $secondary, Assembler::parity);
-    int parity_disp = -1;
     if ($cop$$cmpcode == Assembler::notEqual) {
-       // the two jumps 6 bytes apart so the jump distances are too
-       parity_disp = l ? (l->loc_pos() - (cbuf.insts_size() + 4)) : 0;
+      __ jcc(Assembler::parity, *l, false);
+      __ jcc(Assembler::notEqual, *l, false);
     } else if ($cop$$cmpcode == Assembler::equal) {
-       parity_disp = 6;
+      Label done;
+      __ jccb(Assembler::parity, done);
+      __ jcc(Assembler::equal, *l, false);
+      __ bind(done);
     } else {
        ShouldNotReachHere();
     }
-    emit_d32(cbuf, parity_disp);
-    $$$emit8$primary;
-    emit_cc(cbuf, $secondary, $cop$$cmpcode);
-    int disp = l ? (l->loc_pos() - (cbuf.insts_size() + 4)) : 0;
-    emit_d32(cbuf, disp);
   %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
 %}
 
 // ============================================================================
@@ -12218,10 +12202,11 @@ instruct jmpDir_short(label labl) %{
   ins_cost(300);
   format %{ "jmp,s   $labl" %}
   size(2);
-  opcode(0xEB);
-  ins_encode(OpcP, LblShort(labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jmpb(*L);
+  %}
   ins_pipe(pipe_jmp);
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -12233,10 +12218,11 @@ instruct jmpCon_short(cmpOp cop, rFlagsReg cr, label labl) %{
   ins_cost(300);
   format %{ "j$cop,s   $labl" %}
   size(2);
-  opcode(0x70);
-  ins_encode(JccShort(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jccb((Assembler::Condition)($cop$$cmpcode), *L);
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -12248,10 +12234,11 @@ instruct jmpLoopEnd_short(cmpOp cop, rFlagsReg cr, label labl) %{
   ins_cost(300);
   format %{ "j$cop,s   $labl\t# loop end" %}
   size(2);
-  opcode(0x70);
-  ins_encode(JccShort(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jccb((Assembler::Condition)($cop$$cmpcode), *L);
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -12263,10 +12250,11 @@ instruct jmpLoopEndU_short(cmpOpU cop, rFlagsRegU cmp, label labl) %{
   ins_cost(300);
   format %{ "j$cop,us  $labl\t# loop end" %}
   size(2);
-  opcode(0x70);
-  ins_encode(JccShort(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jccb((Assembler::Condition)($cop$$cmpcode), *L);
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -12277,10 +12265,11 @@ instruct jmpLoopEndUCF_short(cmpOpUCF cop, rFlagsRegUCF cmp, label labl) %{
   ins_cost(300);
   format %{ "j$cop,us  $labl\t# loop end" %}
   size(2);
-  opcode(0x70);
-  ins_encode(JccShort(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jccb((Assembler::Condition)($cop$$cmpcode), *L);
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -12292,10 +12281,11 @@ instruct jmpConU_short(cmpOpU cop, rFlagsRegU cmp, label labl) %{
   ins_cost(300);
   format %{ "j$cop,us  $labl" %}
   size(2);
-  opcode(0x70);
-  ins_encode(JccShort(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jccb((Assembler::Condition)($cop$$cmpcode), *L);
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -12306,10 +12296,11 @@ instruct jmpConUCF_short(cmpOpUCF cop, rFlagsRegUCF cmp, label labl) %{
   ins_cost(300);
   format %{ "j$cop,us  $labl" %}
   size(2);
-  opcode(0x70);
-  ins_encode(JccShort(cop, labl));
+  ins_encode %{
+    Label* L = $labl$$label;
+    __ jccb((Assembler::Condition)($cop$$cmpcode), *L);
+  %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -12329,27 +12320,21 @@ instruct jmpConUCF2_short(cmpOpUCF2 cop, rFlagsRegUCF cmp, label labl) %{
     }
   %}
   size(4);
-  opcode(0x70);
   ins_encode %{
     Label* l = $labl$$label;
-    emit_cc(cbuf, $primary, Assembler::parity);
-    int parity_disp = -1;
     if ($cop$$cmpcode == Assembler::notEqual) {
-      parity_disp = l ? (l->loc_pos() - (cbuf.insts_size() + 1)) : 0;
+      __ jccb(Assembler::parity, *l);
+      __ jccb(Assembler::notEqual, *l);
     } else if ($cop$$cmpcode == Assembler::equal) {
-      parity_disp = 2;
+      Label done;
+      __ jccb(Assembler::parity, done);
+      __ jccb(Assembler::equal, *l);
+      __ bind(done);
     } else {
-      ShouldNotReachHere();
+       ShouldNotReachHere();
     }
-    emit_d8(cbuf, parity_disp);
-    emit_cc(cbuf, $primary, $cop$$cmpcode);
-    int disp = l ? (l->loc_pos() - (cbuf.insts_size() + 1)) : 0;
-    emit_d8(cbuf, disp);
-    assert(-128 <= disp && disp <= 127, "Displacement too large for short jmp");
-    assert(-128 <= parity_disp && parity_disp <= 127, "Displacement too large for short jmp");
   %}
   ins_pipe(pipe_jcc);
-  ins_pc_relative(1);
   ins_short_branch(1);
 %}
 
@@ -12366,7 +12351,6 @@ instruct cmpFastLock(rFlagsReg cr,
   format %{ "fastlock $object,$box,$tmp,$scr" %}
   ins_encode(Fast_Lock(object, box, tmp, scr));
   ins_pipe(pipe_slow);
-  ins_pc_relative(1);
 %}
 
 instruct cmpFastUnlock(rFlagsReg cr,
@@ -12379,7 +12363,6 @@ instruct cmpFastUnlock(rFlagsReg cr,
   format %{ "fastunlock $object, $box, $tmp" %}
   ins_encode(Fast_Unlock(object, box, tmp));
   ins_pipe(pipe_slow);
-  ins_pc_relative(1);
 %}
 
 
@@ -12432,7 +12415,6 @@ instruct CallStaticJavaDirect(method meth) %{
   opcode(0xE8); /* E8 cd */
   ins_encode(Java_Static_Call(meth), call_epilog);
   ins_pipe(pipe_slow);
-  ins_pc_relative(1);
   ins_alignment(4);
 %}
 
@@ -12454,7 +12436,6 @@ instruct CallStaticJavaHandle(method meth, rbp_RegP rbp_mh_SP_save) %{
              restore_SP,
              call_epilog);
   ins_pipe(pipe_slow);
-  ins_pc_relative(1);
   ins_alignment(4);
 %}
 
@@ -12472,7 +12453,6 @@ instruct CallDynamicJavaDirect(method meth)
   opcode(0xE8); /* E8 cd */
   ins_encode(Java_Dynamic_Call(meth), call_epilog);
   ins_pipe(pipe_slow);
-  ins_pc_relative(1);
   ins_alignment(4);
 %}
 
@@ -12487,7 +12467,6 @@ instruct CallRuntimeDirect(method meth)
   opcode(0xE8); /* E8 cd */
   ins_encode(Java_To_Runtime(meth));
   ins_pipe(pipe_slow);
-  ins_pc_relative(1);
 %}
 
 // Call runtime without safepoint
@@ -12501,7 +12480,6 @@ instruct CallLeafDirect(method meth)
   opcode(0xE8); /* E8 cd */
   ins_encode(Java_To_Runtime(meth));
   ins_pipe(pipe_slow);
-  ins_pc_relative(1);
 %}
 
 // Call runtime without safepoint
@@ -12515,7 +12493,6 @@ instruct CallLeafNoFPDirect(method meth)
   opcode(0xE8); /* E8 cd */
   ins_encode(Java_To_Runtime(meth));
   ins_pipe(pipe_slow);
-  ins_pc_relative(1);
 %}
 
 // Return Instruction
diff --git a/hotspot/src/cpu/zero/vm/bytes_zero.hpp b/hotspot/src/cpu/zero/vm/bytes_zero.hpp
index 39caaea..be2e09a 100644
--- a/hotspot/src/cpu/zero/vm/bytes_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/bytes_zero.hpp
@@ -168,6 +168,9 @@ class Bytes: AllStatic {
 #ifdef TARGET_OS_ARCH_linux_zero
 # include "bytes_linux_zero.inline.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "bytes_bsd_zero.inline.hpp"
+#endif
 
 #endif // VM_LITTLE_ENDIAN
 
diff --git a/hotspot/src/cpu/zero/vm/frame_zero.cpp b/hotspot/src/cpu/zero/vm/frame_zero.cpp
index a1e5ea6..35b6e52 100644
--- a/hotspot/src/cpu/zero/vm/frame_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/frame_zero.cpp
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
+ * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -417,3 +417,17 @@ void ZeroFrame::identify_vp_word(int       frame_index,
     return;
   }
 }
+
+#ifdef ASSERT
+
+void frame::describe_pd(FrameValues& values, int frame_no) {
+
+}
+
+#endif
+
+intptr_t *frame::initial_deoptimization_info() {
+  // unused... but returns fp() to minimize changes introduced by 7087445
+  return fp();
+}
+
diff --git a/hotspot/src/cpu/zero/vm/globals_zero.hpp b/hotspot/src/cpu/zero/vm/globals_zero.hpp
index c45f1f5..6754e69 100644
--- a/hotspot/src/cpu/zero/vm/globals_zero.hpp
+++ b/hotspot/src/cpu/zero/vm/globals_zero.hpp
@@ -52,7 +52,11 @@ define_pd_global(intx,  StackShadowPages,     5 LP64_ONLY(+1) DEBUG_ONLY(+3));
 define_pd_global(bool,  RewriteBytecodes,     true);
 define_pd_global(bool,  RewriteFrequentPairs, true);
 
+#ifdef _ALLBSD_SOURCE
+define_pd_global(bool,  UseMembar,            true);
+#else
 define_pd_global(bool,  UseMembar,            false);
+#endif
 
 // GC Ergo Flags
 define_pd_global(intx, CMSYoungGenPerWorker, 16*M);  // default max size of CMS young gen, per GC worker thread
diff --git a/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp b/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp
index 8b470eb..a85431b 100644
--- a/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp
@@ -40,5 +40,8 @@
 #ifdef TARGET_OS_FAMILY_linux
 # include "thread_linux.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // This file is intentionally empty
diff --git a/hotspot/src/cpu/zero/vm/methodHandles_zero.hpp b/hotspot/src/cpu/zero/vm/methodHandles_zero.hpp
new file mode 100644
index 0000000..84da099
--- /dev/null
+++ b/hotspot/src/cpu/zero/vm/methodHandles_zero.hpp
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2011 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+
+// Adapters
+enum /* platform_dependent_constants */ {
+  adapter_code_size = 0
+};
+
+#define TARGET_ARCH_NYI_6939861 1
+// ..#ifdef TARGET_ARCH_NYI_6939861
+// ..  // Here are some backward compatible declarations until the 6939861 ports are updated.
+// ..  #define _adapter_flyby    (_EK_LIMIT + 10)
+// ..  #define _adapter_ricochet (_EK_LIMIT + 11)
+// ..  #define _adapter_opt_spread_1    _adapter_opt_spread_1_ref
+// ..  #define _adapter_opt_spread_more _adapter_opt_spread_ref
+// ..  enum {
+// ..    _INSERT_NO_MASK   = -1,
+// ..    _INSERT_REF_MASK  = 0,
+// ..    _INSERT_INT_MASK  = 1,
+// ..    _INSERT_LONG_MASK = 3
+// ..  };
+// ..  static void get_ek_bound_mh_info(EntryKind ek, BasicType& arg_type, int& arg_mask, int& arg_slots) {
+// ..    arg_type = ek_bound_mh_arg_type(ek);
+// ..    arg_mask = 0;
+// ..    arg_slots = type2size[arg_type];;
+// ..  }
+// ..  static void get_ek_adapter_opt_swap_rot_info(EntryKind ek, int& swap_bytes, int& rotate) {
+// ..    int swap_slots = ek_adapter_opt_swap_slots(ek);
+// ..    rotate = ek_adapter_opt_swap_mode(ek);
+// ..    swap_bytes = swap_slots * Interpreter::stackElementSize;
+// ..  }
+// ..  static int get_ek_adapter_opt_spread_info(EntryKind ek) {
+// ..    return ek_adapter_opt_spread_count(ek);
+// ..  }
+// ..
+// ..  static void insert_arg_slots(MacroAssembler* _masm,
+// ..                               RegisterOrConstant arg_slots,
+// ..                               int arg_mask,
+// ..                               Register argslot_reg,
+// ..                               Register temp_reg, Register temp2_reg, Register temp3_reg = noreg);
+// ..
+// ..  static void remove_arg_slots(MacroAssembler* _masm,
+// ..                               RegisterOrConstant arg_slots,
+// ..                               Register argslot_reg,
+// ..                               Register temp_reg, Register temp2_reg, Register temp3_reg = noreg);
+// ..
+// ..  static void trace_method_handle(MacroAssembler* _masm, const char* adaptername) PRODUCT_RETURN;
+// ..#endif //TARGET_ARCH_NYI_6939861
diff --git a/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp b/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp
index 6e7643a..29d0ed1 100644
--- a/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp
@@ -46,14 +46,6 @@
 #include "shark/sharkCompiler.hpp"
 #endif
 
-DeoptimizationBlob *SharedRuntime::_deopt_blob;
-SafepointBlob      *SharedRuntime::_polling_page_safepoint_handler_blob;
-SafepointBlob      *SharedRuntime::_polling_page_return_handler_blob;
-RuntimeStub        *SharedRuntime::_wrong_method_blob;
-RuntimeStub        *SharedRuntime::_ic_miss_blob;
-RuntimeStub        *SharedRuntime::_resolve_opt_virtual_call_blob;
-RuntimeStub        *SharedRuntime::_resolve_virtual_call_blob;
-RuntimeStub        *SharedRuntime::_resolve_static_call_blob;
 
 int SharedRuntime::java_calling_convention(const BasicType *sig_bt,
                                            VMRegPair *regs,
@@ -114,22 +106,22 @@ static SafepointBlob* generate_empty_safepoint_blob() {
   return SafepointBlob::create(&buffer, NULL, 0);
 }
 
-void SharedRuntime::generate_stubs() {
-  _wrong_method_blob =
-    generate_empty_runtime_stub("wrong_method_stub");
-  _ic_miss_blob =
-    generate_empty_runtime_stub("ic_miss_stub");
-  _resolve_opt_virtual_call_blob =
-    generate_empty_runtime_stub("resolve_opt_virtual_call");
-  _resolve_virtual_call_blob =
-    generate_empty_runtime_stub("resolve_virtual_call");
-  _resolve_static_call_blob =
-    generate_empty_runtime_stub("resolve_static_call");
+static DeoptimizationBlob* generate_empty_deopt_blob() {
+  CodeBuffer buffer("handler_blob", 0, 0);
+  return DeoptimizationBlob::create(&buffer, NULL, 0, 0, 0, 0);
+}
+
+
+void SharedRuntime::generate_deopt_blob() {
+  _deopt_blob = generate_empty_deopt_blob();
+}
+
+SafepointBlob* SharedRuntime::generate_handler_blob(address call_ptr, bool cause_return) {
+  return generate_empty_safepoint_blob();
+}
 
-  _polling_page_safepoint_handler_blob =
-    generate_empty_safepoint_blob();
-  _polling_page_return_handler_blob =
-    generate_empty_safepoint_blob();
+RuntimeStub* SharedRuntime::generate_resolve_blob(address destination, const char* name) {
+  return generate_empty_runtime_stub("resolve_blob");
 }
 
 int SharedRuntime::c_calling_convention(const BasicType *sig_bt,
diff --git a/hotspot/src/cpu/zero/vm/stack_zero.cpp b/hotspot/src/cpu/zero/vm/stack_zero.cpp
index f1b31cc..33b0551 100644
--- a/hotspot/src/cpu/zero/vm/stack_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/stack_zero.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -69,7 +69,8 @@ void ZeroStack::handle_overflow(TRAPS) {
     break;
 
   case _thread_in_vm:
-    Exceptions::throw_stack_overflow_exception(thread, __FILE__, __LINE__);
+    Exceptions::throw_stack_overflow_exception(thread, __FILE__, __LINE__,
+                                               methodHandle());
     break;
 
   default:
diff --git a/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp b/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp
index 77d23a4..4142e02 100644
--- a/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp
@@ -43,6 +43,9 @@
 #ifdef TARGET_OS_FAMILY_linux
 # include "thread_linux.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 #ifdef COMPILER2
 #include "opto/runtime.hpp"
 #endif
@@ -215,12 +218,6 @@ class StubGenerator: public StubCodeGenerator {
     StubRoutines::_throw_AbstractMethodError_entry =
       ShouldNotCallThisStub();
 
-    StubRoutines::_throw_ArithmeticException_entry =
-      ShouldNotCallThisStub();
-
-    StubRoutines::_throw_NullPointerException_entry =
-      ShouldNotCallThisStub();
-
     StubRoutines::_throw_NullPointerException_at_call_entry =
       ShouldNotCallThisStub();
 
diff --git a/hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp b/hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp
index 96df53e..8b21dde 100644
--- a/hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp
@@ -30,3 +30,6 @@
 #ifdef TARGET_OS_FAMILY_linux
 # include "thread_linux.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
diff --git a/hotspot/src/cpu/zero/vm/vm_version_zero.cpp b/hotspot/src/cpu/zero/vm/vm_version_zero.cpp
index 87ff88b..391e29d 100644
--- a/hotspot/src/cpu/zero/vm/vm_version_zero.cpp
+++ b/hotspot/src/cpu/zero/vm/vm_version_zero.cpp
@@ -32,5 +32,8 @@
 #ifdef TARGET_OS_FAMILY_linux
 # include "os_linux.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 // This file is intentionally empty
diff --git a/hotspot/src/os/bsd/vm/attachListener_bsd.cpp b/hotspot/src/os/bsd/vm/attachListener_bsd.cpp
new file mode 100644
index 0000000..f742470
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/attachListener_bsd.cpp
@@ -0,0 +1,520 @@
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/os.hpp"
+#include "services/attachListener.hpp"
+#include "services/dtraceAttacher.hpp"
+
+#include <unistd.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <sys/stat.h>
+
+#ifndef UNIX_PATH_MAX
+#define UNIX_PATH_MAX   sizeof(((struct sockaddr_un *)0)->sun_path)
+#endif
+
+// The attach mechanism on Bsd uses a UNIX domain socket. An attach listener
+// thread is created at startup or is created on-demand via a signal from
+// the client tool. The attach listener creates a socket and binds it to a file
+// in the filesystem. The attach listener then acts as a simple (single-
+// threaded) server - it waits for a client to connect, reads the request,
+// executes it, and returns the response to the client via the socket
+// connection.
+//
+// As the socket is a UNIX domain socket it means that only clients on the
+// local machine can connect. In addition there are two other aspects to
+// the security:
+// 1. The well known file that the socket is bound to has permission 400
+// 2. When a client connect, the SO_PEERCRED socket option is used to
+//    obtain the credentials of client. We check that the effective uid
+//    of the client matches this process.
+
+// forward reference
+class BsdAttachOperation;
+
+class BsdAttachListener: AllStatic {
+ private:
+  // the path to which we bind the UNIX domain socket
+  static char _path[UNIX_PATH_MAX];
+  static bool _has_path;
+
+  // the file descriptor for the listening socket
+  static int _listener;
+
+  static void set_path(char* path) {
+    if (path == NULL) {
+      _has_path = false;
+    } else {
+      strncpy(_path, path, UNIX_PATH_MAX);
+      _path[UNIX_PATH_MAX-1] = '\0';
+      _has_path = true;
+    }
+  }
+
+  static void set_listener(int s)               { _listener = s; }
+
+  // reads a request from the given connected socket
+  static BsdAttachOperation* read_request(int s);
+
+ public:
+  enum {
+    ATTACH_PROTOCOL_VER = 1                     // protocol version
+  };
+  enum {
+    ATTACH_ERROR_BADVERSION     = 101           // error codes
+  };
+
+  // initialize the listener, returns 0 if okay
+  static int init();
+
+  static char* path()                   { return _path; }
+  static bool has_path()                { return _has_path; }
+  static int listener()                 { return _listener; }
+
+  // write the given buffer to a socket
+  static int write_fully(int s, char* buf, int len);
+
+  static BsdAttachOperation* dequeue();
+};
+
+class BsdAttachOperation: public AttachOperation {
+ private:
+  // the connection to the client
+  int _socket;
+
+ public:
+  void complete(jint res, bufferedStream* st);
+
+  void set_socket(int s)                                { _socket = s; }
+  int socket() const                                    { return _socket; }
+
+  BsdAttachOperation(char* name) : AttachOperation(name) {
+    set_socket(-1);
+  }
+};
+
+// statics
+char BsdAttachListener::_path[UNIX_PATH_MAX];
+bool BsdAttachListener::_has_path;
+int BsdAttachListener::_listener = -1;
+
+// Supporting class to help split a buffer into individual components
+class ArgumentIterator : public StackObj {
+ private:
+  char* _pos;
+  char* _end;
+ public:
+  ArgumentIterator(char* arg_buffer, size_t arg_size) {
+    _pos = arg_buffer;
+    _end = _pos + arg_size - 1;
+  }
+  char* next() {
+    if (*_pos == '\0') {
+      return NULL;
+    }
+    char* res = _pos;
+    char* next_pos = strchr(_pos, '\0');
+    if (next_pos < _end)  {
+      next_pos++;
+    }
+    _pos = next_pos;
+    return res;
+  }
+};
+
+
+// atexit hook to stop listener and unlink the file that it is
+// bound too.
+extern "C" {
+  static void listener_cleanup() {
+    static int cleanup_done;
+    if (!cleanup_done) {
+      cleanup_done = 1;
+      int s = BsdAttachListener::listener();
+      if (s != -1) {
+        ::close(s);
+      }
+      if (BsdAttachListener::has_path()) {
+        ::unlink(BsdAttachListener::path());
+      }
+    }
+  }
+}
+
+// Initialization - create a listener socket and bind it to a file
+
+int BsdAttachListener::init() {
+  char path[UNIX_PATH_MAX];          // socket file
+  char initial_path[UNIX_PATH_MAX];  // socket file during setup
+  int listener;                      // listener socket (file descriptor)
+
+  // register function to cleanup
+  ::atexit(listener_cleanup);
+
+  int n = snprintf(path, UNIX_PATH_MAX, "%s/.java_pid%d",
+                   os::get_temp_directory(), os::current_process_id());
+  if (n < (int)UNIX_PATH_MAX) {
+    n = snprintf(initial_path, UNIX_PATH_MAX, "%s.tmp", path);
+  }
+  if (n >= (int)UNIX_PATH_MAX) {
+    return -1;
+  }
+
+  // create the listener socket
+  listener = ::socket(PF_UNIX, SOCK_STREAM, 0);
+  if (listener == -1) {
+    return -1;
+  }
+
+  // bind socket
+  struct sockaddr_un addr;
+  addr.sun_family = AF_UNIX;
+  strcpy(addr.sun_path, initial_path);
+  ::unlink(initial_path);
+  int res = ::bind(listener, (struct sockaddr*)&addr, sizeof(addr));
+  if (res == -1) {
+    RESTARTABLE(::close(listener), res);
+    return -1;
+  }
+
+  // put in listen mode, set permissions, and rename into place
+  res = ::listen(listener, 5);
+  if (res == 0) {
+      RESTARTABLE(::chmod(initial_path, S_IREAD|S_IWRITE), res);
+      if (res == 0) {
+          res = ::rename(initial_path, path);
+      }
+  }
+  if (res == -1) {
+    RESTARTABLE(::close(listener), res);
+    ::unlink(initial_path);
+    return -1;
+  }
+  set_path(path);
+  set_listener(listener);
+
+  return 0;
+}
+
+// Given a socket that is connected to a peer we read the request and
+// create an AttachOperation. As the socket is blocking there is potential
+// for a denial-of-service if the peer does not response. However this happens
+// after the peer credentials have been checked and in the worst case it just
+// means that the attach listener thread is blocked.
+//
+BsdAttachOperation* BsdAttachListener::read_request(int s) {
+  char ver_str[8];
+  sprintf(ver_str, "%d", ATTACH_PROTOCOL_VER);
+
+  // The request is a sequence of strings so we first figure out the
+  // expected count and the maximum possible length of the request.
+  // The request is:
+  //   <ver>0<cmd>0<arg>0<arg>0<arg>0
+  // where <ver> is the protocol version (1), <cmd> is the command
+  // name ("load", "datadump", ...), and <arg> is an argument
+  int expected_str_count = 2 + AttachOperation::arg_count_max;
+  const int max_len = (sizeof(ver_str) + 1) + (AttachOperation::name_length_max + 1) +
+    AttachOperation::arg_count_max*(AttachOperation::arg_length_max + 1);
+
+  char buf[max_len];
+  int str_count = 0;
+
+  // Read until all (expected) strings have been read, the buffer is
+  // full, or EOF.
+
+  int off = 0;
+  int left = max_len;
+
+  do {
+    int n;
+    RESTARTABLE(read(s, buf+off, left), n);
+    if (n == -1) {
+      return NULL;      // reset by peer or other error
+    }
+    if (n == 0) {
+      break;
+    }
+    for (int i=0; i<n; i++) {
+      if (buf[off+i] == 0) {
+        // EOS found
+        str_count++;
+
+        // The first string is <ver> so check it now to
+        // check for protocol mis-match
+        if (str_count == 1) {
+          if ((strlen(buf) != strlen(ver_str)) ||
+              (atoi(buf) != ATTACH_PROTOCOL_VER)) {
+            char msg[32];
+            sprintf(msg, "%d\n", ATTACH_ERROR_BADVERSION);
+            write_fully(s, msg, strlen(msg));
+            return NULL;
+          }
+        }
+      }
+    }
+    off += n;
+    left -= n;
+  } while (left > 0 && str_count < expected_str_count);
+
+  if (str_count != expected_str_count) {
+    return NULL;        // incomplete request
+  }
+
+  // parse request
+
+  ArgumentIterator args(buf, (max_len)-left);
+
+  // version already checked
+  char* v = args.next();
+
+  char* name = args.next();
+  if (name == NULL || strlen(name) > AttachOperation::name_length_max) {
+    return NULL;
+  }
+
+  BsdAttachOperation* op = new BsdAttachOperation(name);
+
+  for (int i=0; i<AttachOperation::arg_count_max; i++) {
+    char* arg = args.next();
+    if (arg == NULL) {
+      op->set_arg(i, NULL);
+    } else {
+      if (strlen(arg) > AttachOperation::arg_length_max) {
+        delete op;
+        return NULL;
+      }
+      op->set_arg(i, arg);
+    }
+  }
+
+  op->set_socket(s);
+  return op;
+}
+
+
+// Dequeue an operation
+//
+// In the Bsd implementation there is only a single operation and clients
+// cannot queue commands (except at the socket level).
+//
+BsdAttachOperation* BsdAttachListener::dequeue() {
+  for (;;) {
+    int s;
+
+    // wait for client to connect
+    struct sockaddr addr;
+    socklen_t len = sizeof(addr);
+    RESTARTABLE(::accept(listener(), &addr, &len), s);
+    if (s == -1) {
+      return NULL;      // log a warning?
+    }
+
+    // get the credentials of the peer and check the effective uid/guid
+    // - check with jeff on this.
+#ifdef _ALLBSD_SOURCE
+    uid_t puid;
+    gid_t pgid;
+    if (::getpeereid(s, &puid, &pgid) != 0) {
+      int res;
+      RESTARTABLE(::close(s), res);
+      continue;
+    }
+#else
+    struct ucred cred_info;
+    socklen_t optlen = sizeof(cred_info);
+    if (::getsockopt(s, SOL_SOCKET, SO_PEERCRED, (void*)&cred_info, &optlen) == -1) {
+      int res;
+      RESTARTABLE(::close(s), res);
+      continue;
+    }
+    uid_t puid = cred_info.uid;
+    gid_t pgid = cred_info.gid;
+#endif
+    uid_t euid = geteuid();
+    gid_t egid = getegid();
+
+    if (puid != euid || pgid != egid) {
+      int res;
+      RESTARTABLE(::close(s), res);
+      continue;
+    }
+
+    // peer credential look okay so we read the request
+    BsdAttachOperation* op = read_request(s);
+    if (op == NULL) {
+      int res;
+      RESTARTABLE(::close(s), res);
+      continue;
+    } else {
+      return op;
+    }
+  }
+}
+
+// write the given buffer to the socket
+int BsdAttachListener::write_fully(int s, char* buf, int len) {
+  do {
+    int n = ::write(s, buf, len);
+    if (n == -1) {
+      if (errno != EINTR) return -1;
+    } else {
+      buf += n;
+      len -= n;
+    }
+  }
+  while (len > 0);
+  return 0;
+}
+
+// Complete an operation by sending the operation result and any result
+// output to the client. At this time the socket is in blocking mode so
+// potentially we can block if there is a lot of data and the client is
+// non-responsive. For most operations this is a non-issue because the
+// default send buffer is sufficient to buffer everything. In the future
+// if there are operations that involves a very big reply then it the
+// socket could be made non-blocking and a timeout could be used.
+
+void BsdAttachOperation::complete(jint result, bufferedStream* st) {
+  JavaThread* thread = JavaThread::current();
+  ThreadBlockInVM tbivm(thread);
+
+  thread->set_suspend_equivalent();
+  // cleared by handle_special_suspend_equivalent_condition() or
+  // java_suspend_self() via check_and_wait_while_suspended()
+
+  // write operation result
+  char msg[32];
+  sprintf(msg, "%d\n", result);
+  int rc = BsdAttachListener::write_fully(this->socket(), msg, strlen(msg));
+
+  // write any result data
+  if (rc == 0) {
+    BsdAttachListener::write_fully(this->socket(), (char*) st->base(), st->size());
+    ::shutdown(this->socket(), 2);
+  }
+
+  // done
+  RESTARTABLE(::close(this->socket()), rc);
+
+  // were we externally suspended while we were waiting?
+  thread->check_and_wait_while_suspended();
+
+  delete this;
+}
+
+
+// AttachListener functions
+
+AttachOperation* AttachListener::dequeue() {
+  JavaThread* thread = JavaThread::current();
+  ThreadBlockInVM tbivm(thread);
+
+  thread->set_suspend_equivalent();
+  // cleared by handle_special_suspend_equivalent_condition() or
+  // java_suspend_self() via check_and_wait_while_suspended()
+
+  AttachOperation* op = BsdAttachListener::dequeue();
+
+  // were we externally suspended while we were waiting?
+  thread->check_and_wait_while_suspended();
+
+  return op;
+}
+
+int AttachListener::pd_init() {
+  JavaThread* thread = JavaThread::current();
+  ThreadBlockInVM tbivm(thread);
+
+  thread->set_suspend_equivalent();
+  // cleared by handle_special_suspend_equivalent_condition() or
+  // java_suspend_self() via check_and_wait_while_suspended()
+
+  int ret_code = BsdAttachListener::init();
+
+  // were we externally suspended while we were waiting?
+  thread->check_and_wait_while_suspended();
+
+  return ret_code;
+}
+
+// Attach Listener is started lazily except in the case when
+// +ReduseSignalUsage is used
+bool AttachListener::init_at_startup() {
+  if (ReduceSignalUsage) {
+    return true;
+  } else {
+    return false;
+  }
+}
+
+// If the file .attach_pid<pid> exists in the working directory
+// or /tmp then this is the trigger to start the attach mechanism
+bool AttachListener::is_init_trigger() {
+  if (init_at_startup() || is_initialized()) {
+    return false;               // initialized at startup or already initialized
+  }
+  char path[PATH_MAX + 1];
+  int ret;
+  struct stat st;
+
+  snprintf(path, PATH_MAX + 1, "%s/.attach_pid%d",
+           os::get_temp_directory(), os::current_process_id());
+  RESTARTABLE(::stat(path, &st), ret);
+  if (ret == 0) {
+    // simple check to avoid starting the attach mechanism when
+    // a bogus user creates the file
+    if (st.st_uid == geteuid()) {
+      init();
+      return true;
+    }
+  }
+  return false;
+}
+
+// if VM aborts then remove listener
+void AttachListener::abort() {
+  listener_cleanup();
+}
+
+void AttachListener::pd_data_dump() {
+  os::signal_notify(SIGQUIT);
+}
+
+AttachOperationFunctionInfo* AttachListener::pd_find_operation(const char* n) {
+  return NULL;
+}
+
+jint AttachListener::pd_set_flag(AttachOperation* op, outputStream* out) {
+  out->print_cr("flag '%s' cannot be changed", op->arg(0));
+  return JNI_ERR;
+}
+
+void AttachListener::pd_detachall() {
+  // do nothing for now
+}
diff --git a/hotspot/src/os/bsd/vm/c1_globals_bsd.hpp b/hotspot/src/os/bsd/vm/c1_globals_bsd.hpp
new file mode 100644
index 0000000..27e26af
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/c1_globals_bsd.hpp
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_BSD_VM_C1_GLOBALS_BSD_HPP
+#define OS_BSD_VM_C1_GLOBALS_BSD_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
+//
+// Sets the default values for operating system dependent flags used by the
+// client compiler. (see c1_globals.hpp)
+//
+
+#endif // OS_BSD_VM_C1_GLOBALS_BSD_HPP
diff --git a/hotspot/src/os/bsd/vm/c2_globals_bsd.hpp b/hotspot/src/os/bsd/vm/c2_globals_bsd.hpp
new file mode 100644
index 0000000..21737f1
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/c2_globals_bsd.hpp
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_BSD_VM_C2_GLOBALS_BSD_HPP
+#define OS_BSD_VM_C2_GLOBALS_BSD_HPP
+
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/macros.hpp"
+
+//
+// Sets the default values for operating system dependent flags used by the
+// server compiler. (see c2_globals.hpp)
+//
+
+#endif // OS_BSD_VM_C2_GLOBALS_BSD_HPP
diff --git a/hotspot/src/os/linux/vm/chaitin_linux.cpp b/hotspot/src/os/bsd/vm/chaitin_bsd.cpp
similarity index 100%
copy from hotspot/src/os/linux/vm/chaitin_linux.cpp
copy to hotspot/src/os/bsd/vm/chaitin_bsd.cpp
diff --git a/hotspot/src/os/bsd/vm/decoder_bsd.cpp b/hotspot/src/os/bsd/vm/decoder_bsd.cpp
new file mode 100644
index 0000000..dd95929
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/decoder_bsd.cpp
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "prims/jvm.h"
+#include "utilities/decoder.hpp"
+
+#include <cxxabi.h>
+
+#ifdef __APPLE__
+
+void Decoder::initialize() {
+  _initialized = true;
+}
+
+void Decoder::uninitialize() {
+  _initialized = false;
+}
+
+bool Decoder::can_decode_C_frame_in_vm() {
+  return false;
+}
+
+Decoder::decoder_status Decoder::decode(address addr, const char* filepath, char *buf, int buflen, int *offset) {
+  return symbol_not_found;
+}
+
+
+#endif
+
+bool Decoder::demangle(const char* symbol, char *buf, int buflen) {
+  int   status;
+  char* result;
+  size_t size = (size_t)buflen;
+
+  // Don't pass buf to __cxa_demangle. In case of the 'buf' is too small,
+  // __cxa_demangle will call system "realloc" for additional memory, which
+  // may use different malloc/realloc mechanism that allocates 'buf'.
+  if ((result = abi::__cxa_demangle(symbol, NULL, NULL, &status)) != NULL) {
+    jio_snprintf(buf, buflen, "%s", result);
+      // call c library's free
+      ::free(result);
+      return true;
+  }
+  return false;
+}
diff --git a/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp b/hotspot/src/os/bsd/vm/dtraceJSDT_bsd.cpp
similarity index 100%
copy from hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp
copy to hotspot/src/os/bsd/vm/dtraceJSDT_bsd.cpp
diff --git a/hotspot/src/os/bsd/vm/globals_bsd.hpp b/hotspot/src/os/bsd/vm/globals_bsd.hpp
new file mode 100644
index 0000000..213f470
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/globals_bsd.hpp
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_BSD_VM_GLOBALS_BSD_HPP
+#define OS_BSD_VM_GLOBALS_BSD_HPP
+
+//
+// Defines Bsd specific flags. They are not available on other platforms.
+//
+#define RUNTIME_OS_FLAGS(develop, develop_pd, product, product_pd, diagnostic, notproduct) \
+  product(bool, UseOprofile, false,                                     \
+        "enable support for Oprofile profiler")                         \
+                                                                        \
+  product(bool, UseBsdPosixThreadCPUClocks, true,                     \
+          "enable fast Bsd Posix clocks where available")             \
+/*  NB: The default value of UseBsdPosixThreadCPUClocks may be        \
+    overridden in Arguments::parse_each_vm_init_arg.  */                \
+                                                                        \
+  product(bool, UseHugeTLBFS, false,                                    \
+          "Use MAP_HUGETLB for large pages")                            \
+                                                                        \
+  product(bool, UseSHM, false,                                          \
+          "Use SYSV shared memory for large pages")
+
+//
+// Defines Bsd-specific default values. The flags are available on all
+// platforms, but they may have different default values on other platforms.
+//
+define_pd_global(bool, UseLargePages, false);
+define_pd_global(bool, UseLargePagesIndividualAllocation, false);
+define_pd_global(bool, UseOSErrorReporting, false);
+define_pd_global(bool, UseThreadPriorities, true) ;
+
+#endif // OS_BSD_VM_GLOBALS_BSD_HPP
diff --git a/hotspot/src/os/bsd/vm/interfaceSupport_bsd.hpp b/hotspot/src/os/bsd/vm/interfaceSupport_bsd.hpp
new file mode 100644
index 0000000..795bf4d
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/interfaceSupport_bsd.hpp
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_BSD_VM_INTERFACESUPPORT_BSD_HPP
+#define OS_BSD_VM_INTERFACESUPPORT_BSD_HPP
+
+// Contains inlined functions for class InterfaceSupport
+
+static inline void serialize_memory(JavaThread *thread) {
+  os::write_memory_serialize_page(thread);
+}
+
+#endif // OS_BSD_VM_INTERFACESUPPORT_BSD_HPP
diff --git a/hotspot/src/os/bsd/vm/jsig.c b/hotspot/src/os/bsd/vm/jsig.c
new file mode 100644
index 0000000..a8d98a0
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/jsig.c
@@ -0,0 +1,225 @@
+/*
+ * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+/* CopyrightVersion 1.2 */
+
+/* This is a special library that should be loaded before libc &
+ * libthread to interpose the signal handler installation functions:
+ * sigaction(), signal(), sigset().
+ * Used for signal-chaining. See RFE 4381843.
+ */
+
+#include <signal.h>
+#include <dlfcn.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+
+#define MAXSIGNUM 32
+#define MASK(sig) ((unsigned int)1 << sig)
+
+static struct sigaction sact[MAXSIGNUM]; /* saved signal handlers */
+static unsigned int jvmsigs = 0; /* signals used by jvm */
+
+/* used to synchronize the installation of signal handlers */
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+static pthread_t tid = 0;
+
+typedef void (*sa_handler_t)(int);
+typedef void (*sa_sigaction_t)(int, siginfo_t *, void *);
+typedef sa_handler_t (*signal_t)(int, sa_handler_t);
+typedef int (*sigaction_t)(int, const struct sigaction *, struct sigaction *);
+
+static signal_t os_signal = 0; /* os's version of signal()/sigset() */
+static sigaction_t os_sigaction = 0; /* os's version of sigaction() */
+
+static bool jvm_signal_installing = false;
+static bool jvm_signal_installed = false;
+
+static void signal_lock() {
+  pthread_mutex_lock(&mutex);
+  /* When the jvm is installing its set of signal handlers, threads
+   * other than the jvm thread should wait */
+  if (jvm_signal_installing) {
+    if (tid != pthread_self()) {
+      pthread_cond_wait(&cond, &mutex);
+    }
+  }
+}
+
+static void signal_unlock() {
+  pthread_mutex_unlock(&mutex);
+}
+
+static sa_handler_t call_os_signal(int sig, sa_handler_t disp,
+                                   bool is_sigset) {
+  if (os_signal == NULL) {
+    if (!is_sigset) {
+      os_signal = (signal_t)dlsym(RTLD_NEXT, "signal");
+    } else {
+      os_signal = (signal_t)dlsym(RTLD_NEXT, "sigset");
+    }
+    if (os_signal == NULL) {
+      printf("%s\n", dlerror());
+      exit(0);
+    }
+  }
+  return (*os_signal)(sig, disp);
+}
+
+static void save_signal_handler(int sig, sa_handler_t disp) {
+  sigset_t set;
+  sact[sig].sa_handler = disp;
+  sigemptyset(&set);
+  sact[sig].sa_mask = set;
+  sact[sig].sa_flags = 0;
+}
+
+static sa_handler_t set_signal(int sig, sa_handler_t disp, bool is_sigset) {
+  sa_handler_t oldhandler;
+  bool sigused;
+
+  signal_lock();
+
+  sigused = (MASK(sig) & jvmsigs) != 0;
+  if (jvm_signal_installed && sigused) {
+    /* jvm has installed its signal handler for this signal. */
+    /* Save the handler. Don't really install it. */
+    oldhandler = sact[sig].sa_handler;
+    save_signal_handler(sig, disp);
+
+    signal_unlock();
+    return oldhandler;
+  } else if (jvm_signal_installing) {
+    /* jvm is installing its signal handlers. Install the new
+     * handlers and save the old ones. jvm uses sigaction().
+     * Leave the piece here just in case. */
+    oldhandler = call_os_signal(sig, disp, is_sigset);
+    save_signal_handler(sig, oldhandler);
+
+    /* Record the signals used by jvm */
+    jvmsigs |= MASK(sig);
+
+    signal_unlock();
+    return oldhandler;
+  } else {
+    /* jvm has no relation with this signal (yet). Install the
+     * the handler. */
+    oldhandler = call_os_signal(sig, disp, is_sigset);
+
+    signal_unlock();
+    return oldhandler;
+  }
+}
+
+sa_handler_t signal(int sig, sa_handler_t disp) {
+  return set_signal(sig, disp, false);
+}
+
+sa_handler_t sigset(int sig, sa_handler_t disp) {
+  printf("sigset() is not supported by BSD");
+  exit(0);
+ }
+
+static int call_os_sigaction(int sig, const struct sigaction  *act,
+                             struct sigaction *oact) {
+  if (os_sigaction == NULL) {
+    os_sigaction = (sigaction_t)dlsym(RTLD_NEXT, "sigaction");
+    if (os_sigaction == NULL) {
+      printf("%s\n", dlerror());
+      exit(0);
+    }
+  }
+  return (*os_sigaction)(sig, act, oact);
+}
+
+int sigaction(int sig, const struct sigaction *act, struct sigaction *oact) {
+  int res;
+  bool sigused;
+  struct sigaction oldAct;
+
+  signal_lock();
+
+  sigused = (MASK(sig) & jvmsigs) != 0;
+  if (jvm_signal_installed && sigused) {
+    /* jvm has installed its signal handler for this signal. */
+    /* Save the handler. Don't really install it. */
+    if (oact != NULL) {
+      *oact = sact[sig];
+    }
+    if (act != NULL) {
+      sact[sig] = *act;
+    }
+
+    signal_unlock();
+    return 0;
+  } else if (jvm_signal_installing) {
+    /* jvm is installing its signal handlers. Install the new
+     * handlers and save the old ones. */
+    res = call_os_sigaction(sig, act, &oldAct);
+    sact[sig] = oldAct;
+    if (oact != NULL) {
+      *oact = oldAct;
+    }
+
+    /* Record the signals used by jvm */
+    jvmsigs |= MASK(sig);
+
+    signal_unlock();
+    return res;
+  } else {
+    /* jvm has no relation with this signal (yet). Install the
+     * the handler. */
+    res = call_os_sigaction(sig, act, oact);
+
+    signal_unlock();
+    return res;
+  }
+}
+
+/* The three functions for the jvm to call into */
+void JVM_begin_signal_setting() {
+  signal_lock();
+  jvm_signal_installing = true;
+  tid = pthread_self();
+  signal_unlock();
+}
+
+void JVM_end_signal_setting() {
+  signal_lock();
+  jvm_signal_installed = true;
+  jvm_signal_installing = false;
+  pthread_cond_broadcast(&cond);
+  signal_unlock();
+}
+
+struct sigaction *JVM_get_signal_action(int sig) {
+  /* Does race condition make sense here? */
+  if ((MASK(sig) & jvmsigs) != 0) {
+    return &sact[sig];
+  }
+  return NULL;
+}
diff --git a/hotspot/src/os/bsd/vm/jvm_bsd.cpp b/hotspot/src/os/bsd/vm/jvm_bsd.cpp
new file mode 100644
index 0000000..a828631
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/jvm_bsd.cpp
@@ -0,0 +1,192 @@
+/*
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "prims/jvm.h"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/osThread.hpp"
+
+#include <signal.h>
+
+
+// sun.misc.Signal ///////////////////////////////////////////////////////////
+// Signal code is mostly copied from classic vm, signals_md.c   1.4 98/08/23
+/*
+ * This function is included primarily as a debugging aid. If Java is
+ * running in a console window, then pressing <CTRL-\\> will cause
+ * the current state of all active threads and monitors to be written
+ * to the console window.
+ */
+
+JVM_ENTRY_NO_ENV(void*, JVM_RegisterSignal(jint sig, void* handler))
+  // Copied from classic vm
+  // signals_md.c       1.4 98/08/23
+  void* newHandler = handler == (void *)2
+                   ? os::user_handler()
+                   : handler;
+  switch (sig) {
+    /* The following are already used by the VM. */
+    case INTERRUPT_SIGNAL:
+    case SIGFPE:
+    case SIGILL:
+    case SIGSEGV:
+
+    /* The following signal is used by the VM to dump thread stacks unless
+       ReduceSignalUsage is set, in which case the user is allowed to set
+       his own _native_ handler for this signal; thus, in either case,
+       we do not allow JVM_RegisterSignal to change the handler. */
+    case BREAK_SIGNAL:
+      return (void *)-1;
+
+    /* The following signals are used for Shutdown Hooks support. However, if
+       ReduceSignalUsage (-Xrs) is set, Shutdown Hooks must be invoked via
+       System.exit(), Java is not allowed to use these signals, and the the
+       user is allowed to set his own _native_ handler for these signals and
+       invoke System.exit() as needed. Terminator.setup() is avoiding
+       registration of these signals when -Xrs is present.
+       - If the HUP signal is ignored (from the nohup) command, then Java
+         is not allowed to use this signal.
+     */
+
+    case SHUTDOWN1_SIGNAL:
+    case SHUTDOWN2_SIGNAL:
+    case SHUTDOWN3_SIGNAL:
+      if (ReduceSignalUsage) return (void*)-1;
+      if (os::Bsd::is_sig_ignored(sig)) return (void*)1;
+  }
+
+  void* oldHandler = os::signal(sig, newHandler);
+  if (oldHandler == os::user_handler()) {
+      return (void *)2;
+  } else {
+      return oldHandler;
+  }
+JVM_END
+
+
+JVM_ENTRY_NO_ENV(jboolean, JVM_RaiseSignal(jint sig))
+  if (ReduceSignalUsage) {
+    // do not allow SHUTDOWN1_SIGNAL,SHUTDOWN2_SIGNAL,SHUTDOWN3_SIGNAL,
+    // BREAK_SIGNAL to be raised when ReduceSignalUsage is set, since
+    // no handler for them is actually registered in JVM or via
+    // JVM_RegisterSignal.
+    if (sig == SHUTDOWN1_SIGNAL || sig == SHUTDOWN2_SIGNAL ||
+        sig == SHUTDOWN3_SIGNAL || sig == BREAK_SIGNAL) {
+      return JNI_FALSE;
+    }
+  }
+  else if ((sig == SHUTDOWN1_SIGNAL || sig == SHUTDOWN2_SIGNAL ||
+            sig == SHUTDOWN3_SIGNAL) && os::Bsd::is_sig_ignored(sig)) {
+    // do not allow SHUTDOWN1_SIGNAL to be raised when SHUTDOWN1_SIGNAL
+    // is ignored, since no handler for them is actually registered in JVM
+    // or via JVM_RegisterSignal.
+    // This also applies for SHUTDOWN2_SIGNAL and SHUTDOWN3_SIGNAL
+    return JNI_FALSE;
+  }
+
+  os::signal_raise(sig);
+  return JNI_TRUE;
+JVM_END
+
+/*
+  All the defined signal names for Bsd.
+
+  NOTE that not all of these names are accepted by our Java implementation
+
+  Via an existing claim by the VM, sigaction restrictions, or
+  the "rules of Unix" some of these names will be rejected at runtime.
+  For example the VM sets up to handle USR1, sigaction returns EINVAL for
+  STOP, and Bsd simply doesn't allow catching of KILL.
+
+  Here are the names currently accepted by a user of sun.misc.Signal with
+  1.4.1 (ignoring potential interaction with use of chaining, etc):
+
+    HUP, INT, TRAP, ABRT, IOT, BUS, USR2, PIPE, ALRM, TERM, STKFLT,
+    CLD, CHLD, CONT, TSTP, TTIN, TTOU, URG, XCPU, XFSZ, VTALRM, PROF,
+    WINCH, POLL, IO, PWR, SYS
+
+*/
+
+struct siglabel {
+  const char *name;
+  int   number;
+};
+
+struct siglabel siglabels[] = {
+  /* derived from /usr/include/bits/signum.h on RH7.2 */
+   "HUP",       SIGHUP,         /* Hangup (POSIX).  */
+  "INT",        SIGINT,         /* Interrupt (ANSI).  */
+  "QUIT",       SIGQUIT,        /* Quit (POSIX).  */
+  "ILL",        SIGILL,         /* Illegal instruction (ANSI).  */
+  "TRAP",       SIGTRAP,        /* Trace trap (POSIX).  */
+  "ABRT",       SIGABRT,        /* Abort (ANSI).  */
+  "EMT",        SIGEMT,         /* EMT trap  */
+  "FPE",        SIGFPE,         /* Floating-point exception (ANSI).  */
+  "KILL",       SIGKILL,        /* Kill, unblockable (POSIX).  */
+  "BUS",        SIGBUS,         /* BUS error (4.2 BSD).  */
+  "SEGV",       SIGSEGV,        /* Segmentation violation (ANSI).  */
+  "SYS",        SIGSYS,         /* Bad system call. Only on some Bsden! */
+  "PIPE",       SIGPIPE,        /* Broken pipe (POSIX).  */
+  "ALRM",       SIGALRM,        /* Alarm clock (POSIX).  */
+  "TERM",       SIGTERM,        /* Termination (ANSI).  */
+  "URG",        SIGURG,         /* Urgent condition on socket (4.2 BSD).  */
+  "STOP",       SIGSTOP,        /* Stop, unblockable (POSIX).  */
+  "TSTP",       SIGTSTP,        /* Keyboard stop (POSIX).  */
+  "CONT",       SIGCONT,        /* Continue (POSIX).  */
+  "CHLD",       SIGCHLD,        /* Child status has changed (POSIX).  */
+  "TTIN",       SIGTTIN,        /* Background read from tty (POSIX).  */
+  "TTOU",       SIGTTOU,        /* Background write to tty (POSIX).  */
+  "IO",         SIGIO,          /* I/O now possible (4.2 BSD).  */
+  "XCPU",       SIGXCPU,        /* CPU limit exceeded (4.2 BSD).  */
+  "XFSZ",       SIGXFSZ,        /* File size limit exceeded (4.2 BSD).  */
+  "VTALRM",     SIGVTALRM,      /* Virtual alarm clock (4.2 BSD).  */
+  "PROF",       SIGPROF,        /* Profiling alarm clock (4.2 BSD).  */
+  "WINCH",      SIGWINCH,       /* Window size change (4.3 BSD, Sun).  */
+  "INFO",       SIGINFO,        /* Information request.  */
+  "USR1",       SIGUSR1,        /* User-defined signal 1 (POSIX).  */
+  "USR2",       SIGUSR2         /* User-defined signal 2 (POSIX).  */
+  };
+
+JVM_ENTRY_NO_ENV(jint, JVM_FindSignal(const char *name))
+
+  /* find and return the named signal's number */
+
+  for(uint i=0; i<ARRAY_SIZE(siglabels); i++)
+    if(!strcmp(name, siglabels[i].name))
+      return siglabels[i].number;
+
+  return -1;
+
+JVM_END
+
+// used by os::exception_name()
+extern bool signal_name(int signo, char* buf, size_t len) {
+  for(uint i = 0; i < ARRAY_SIZE(siglabels); i++) {
+    if (signo == siglabels[i].number) {
+      jio_snprintf(buf, len, "SIG%s", siglabels[i].name);
+      return true;
+    }
+  }
+  return false;
+}
diff --git a/hotspot/src/os/bsd/vm/jvm_bsd.h b/hotspot/src/os/bsd/vm/jvm_bsd.h
new file mode 100644
index 0000000..971d98a
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/jvm_bsd.h
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_BSD_VM_JVM_BSD_H
+#define OS_BSD_VM_JVM_BSD_H
+
+/*
+// HotSpot integration note:
+//
+// This is derived from the JDK classic file:
+// "$JDK/src/solaris/javavm/export/jvm_md.h":15 (ver. 1.10 98/04/22)
+// All local includes have been commented out.
+*/
+
+
+#ifndef JVM_MD_H
+#define JVM_MD_H
+
+/*
+ * This file is currently collecting system-specific dregs for the
+ * JNI conversion, which should be sorted out later.
+ */
+
+#include <dirent.h>             /* For DIR */
+#include <sys/param.h>          /* For MAXPATHLEN */
+#include <unistd.h>             /* For F_OK, R_OK, W_OK */
+
+#define JNI_ONLOAD_SYMBOLS      {"JNI_OnLoad"}
+#define JNI_ONUNLOAD_SYMBOLS    {"JNI_OnUnload"}
+#define JVM_ONLOAD_SYMBOLS      {"JVM_OnLoad"}
+#define AGENT_ONLOAD_SYMBOLS    {"Agent_OnLoad"}
+#define AGENT_ONUNLOAD_SYMBOLS  {"Agent_OnUnload"}
+#define AGENT_ONATTACH_SYMBOLS  {"Agent_OnAttach"}
+
+#define JNI_LIB_PREFIX "lib"
+#ifdef __APPLE__
+#define JNI_LIB_SUFFIX ".dylib"
+#else
+#define JNI_LIB_SUFFIX ".so"
+#endif
+
+// Hack: MAXPATHLEN is 4095 on some Bsd and 4096 on others. This may
+//       cause problems if JVM and the rest of JDK are built on different
+//       Bsd releases. Here we define JVM_MAXPATHLEN to be MAXPATHLEN + 1,
+//       so buffers declared in VM are always >= 4096.
+#define JVM_MAXPATHLEN MAXPATHLEN + 1
+
+#define JVM_R_OK    R_OK
+#define JVM_W_OK    W_OK
+#define JVM_X_OK    X_OK
+#define JVM_F_OK    F_OK
+
+/*
+ * File I/O
+ */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+
+/* O Flags */
+
+#define JVM_O_RDONLY     O_RDONLY
+#define JVM_O_WRONLY     O_WRONLY
+#define JVM_O_RDWR       O_RDWR
+#define JVM_O_O_APPEND   O_APPEND
+#define JVM_O_EXCL       O_EXCL
+#define JVM_O_CREAT      O_CREAT
+
+/* Signal definitions */
+
+#define BREAK_SIGNAL     SIGQUIT           /* Thread dumping support.    */
+#define INTERRUPT_SIGNAL SIGUSR1           /* Interruptible I/O support. */
+#define SHUTDOWN1_SIGNAL SIGHUP            /* Shutdown Hooks support.    */
+#define SHUTDOWN2_SIGNAL SIGINT
+#define SHUTDOWN3_SIGNAL SIGTERM
+
+#ifndef SIGRTMIN
+#ifdef __OpenBSD__
+#define SIGRTMIN        1
+#else
+#define SIGRTMIN        33
+#endif
+#endif
+#ifndef SIGRTMAX
+#ifdef __OpenBSD__
+#define SIGRTMAX        31
+#else
+#define SIGRTMAX        63
+#endif
+#endif
+#endif /* JVM_MD_H */
+
+// Reconciliation History
+// jvm_solaris.h        1.6 99/06/22 16:38:47
+// End
+
+#endif // OS_BSD_VM_JVM_BSD_H
diff --git a/hotspot/src/os/bsd/vm/mutex_bsd.cpp b/hotspot/src/os/bsd/vm/mutex_bsd.cpp
new file mode 100644
index 0000000..f39482e
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/mutex_bsd.cpp
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "mutex_bsd.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/mutex.hpp"
+#include "thread_bsd.inline.hpp"
+#include "utilities/events.hpp"
+
+// put OS-includes here
+# include <signal.h>
diff --git a/hotspot/src/os/bsd/vm/mutex_bsd.inline.hpp b/hotspot/src/os/bsd/vm/mutex_bsd.inline.hpp
new file mode 100644
index 0000000..f75267f
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/mutex_bsd.inline.hpp
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_BSD_VM_MUTEX_BSD_INLINE_HPP
+#define OS_BSD_VM_MUTEX_BSD_INLINE_HPP
+
+#include "os_bsd.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "thread_bsd.inline.hpp"
+
+
+// Reconciliation History
+// mutex_solaris.inline.hpp     1.5 99/06/22 16:38:49
+// End
+
+#endif // OS_BSD_VM_MUTEX_BSD_INLINE_HPP
diff --git a/hotspot/src/os/bsd/vm/osThread_bsd.cpp b/hotspot/src/os/bsd/vm/osThread_bsd.cpp
new file mode 100644
index 0000000..efac803
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/osThread_bsd.cpp
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+// no precompiled headers
+#include "runtime/atomic.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/os.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/safepoint.hpp"
+#include "runtime/vmThread.hpp"
+#ifdef TARGET_ARCH_x86
+# include "assembler_x86.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_sparc
+# include "assembler_sparc.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_zero
+# include "assembler_zero.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_arm
+# include "assembler_arm.inline.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "assembler_ppc.inline.hpp"
+#endif
+
+
+void OSThread::pd_initialize() {
+  assert(this != NULL, "check");
+  _thread_id        = NULL;
+  _pthread_id       = NULL;
+  _siginfo = NULL;
+  _ucontext = NULL;
+  _expanding_stack = 0;
+  _alt_sig_stack = NULL;
+
+  sigemptyset(&_caller_sigmask);
+
+  _startThread_lock = new Monitor(Mutex::event, "startThread_lock", true);
+  assert(_startThread_lock !=NULL, "check");
+}
+
+void OSThread::pd_destroy() {
+  delete _startThread_lock;
+}
diff --git a/hotspot/src/os/bsd/vm/osThread_bsd.hpp b/hotspot/src/os/bsd/vm/osThread_bsd.hpp
new file mode 100644
index 0000000..82dd34f
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/osThread_bsd.hpp
@@ -0,0 +1,165 @@
+/*
+ * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_BSD_VM_OSTHREAD_BSD_HPP
+#define OS_BSD_VM_OSTHREAD_BSD_HPP
+
+ private:
+  int _thread_type;
+
+ public:
+
+  int thread_type() const {
+    return _thread_type;
+  }
+  void set_thread_type(int type) {
+    _thread_type = type;
+  }
+
+ private:
+
+#ifdef _ALLBSD_SOURCE
+  // _thread_id and _pthread_id are the same on BSD
+  // keep both to minimize code divergence in os_bsd.cpp
+  pthread_t _thread_id;
+  pthread_t _pthread_id;
+#else
+  // _thread_id is kernel thread id (similar to LWP id on Solaris). Each
+  // thread has a unique thread_id (BsdThreads or NPTL). It can be used
+  // to access /proc.
+  pid_t     _thread_id;
+
+  // _pthread_id is the pthread id, which is used by library calls
+  // (e.g. pthread_kill).
+  pthread_t _pthread_id;
+#endif
+
+  sigset_t _caller_sigmask; // Caller's signal mask
+
+ public:
+
+  // Methods to save/restore caller's signal mask
+  sigset_t  caller_sigmask() const       { return _caller_sigmask; }
+  void    set_caller_sigmask(sigset_t sigmask)  { _caller_sigmask = sigmask; }
+
+#ifdef _ALLBSD_SOURCE
+  pthread_t thread_id() const {
+    return _thread_id;
+  }
+#else
+  pid_t thread_id() const {
+    return _thread_id;
+  }
+#endif
+#ifndef PRODUCT
+  // Used for debugging, return a unique integer for each thread.
+  intptr_t thread_identifier() const   { return (intptr_t)_pthread_id; }
+#endif
+#ifdef ASSERT
+  // We expect no reposition failures so kill vm if we get one.
+  //
+  bool valid_reposition_failure() {
+    return false;
+  }
+#endif // ASSERT
+#ifdef _ALLBSD_SOURCE
+  void set_thread_id(pthread_t id) {
+    _thread_id = id;
+  }
+#else
+  void set_thread_id(pid_t id) {
+    _thread_id = id;
+  }
+#endif
+  pthread_t pthread_id() const {
+    return _pthread_id;
+  }
+  void set_pthread_id(pthread_t tid) {
+    _pthread_id = tid;
+  }
+
+  // ***************************************************************
+  // suspension support.
+  // ***************************************************************
+
+public:
+  // flags that support signal based suspend/resume on Bsd are in a
+  // separate class to avoid confusion with many flags in OSThread that
+  // are used by VM level suspend/resume.
+  os::Bsd::SuspendResume sr;
+
+  // _ucontext and _siginfo are used by SR_handler() to save thread context,
+  // and they will later be used to walk the stack or reposition thread PC.
+  // If the thread is not suspended in SR_handler() (e.g. self suspend),
+  // the value in _ucontext is meaningless, so we must use the last Java
+  // frame information as the frame. This will mean that for threads
+  // that are parked on a mutex the profiler (and safepoint mechanism)
+  // will see the thread as if it were still in the Java frame. This
+  // not a problem for the profiler since the Java frame is a close
+  // enough result. For the safepoint mechanism when the give it the
+  // Java frame we are not at a point where the safepoint needs the
+  // frame to that accurate (like for a compiled safepoint) since we
+  // should be in a place where we are native and will block ourselves
+  // if we transition.
+private:
+  void* _siginfo;
+  ucontext_t* _ucontext;
+  int _expanding_stack;                 /* non zero if manually expanding stack */
+  address _alt_sig_stack;               /* address of base of alternate signal stack */
+
+public:
+  void* siginfo() const                   { return _siginfo;  }
+  void set_siginfo(void* ptr)             { _siginfo = ptr;   }
+  ucontext_t* ucontext() const            { return _ucontext; }
+  void set_ucontext(ucontext_t* ptr)      { _ucontext = ptr;  }
+  void set_expanding_stack(void)          { _expanding_stack = 1;  }
+  void clear_expanding_stack(void)        { _expanding_stack = 0;  }
+  int  expanding_stack(void)              { return _expanding_stack;  }
+
+  void set_alt_sig_stack(address val)     { _alt_sig_stack = val; }
+  address alt_sig_stack(void)             { return _alt_sig_stack; }
+
+private:
+  Monitor* _startThread_lock;     // sync parent and child in thread creation
+
+public:
+
+  Monitor* startThread_lock() const {
+    return _startThread_lock;
+  }
+
+  // ***************************************************************
+  // Platform dependent initialization and cleanup
+  // ***************************************************************
+
+private:
+
+  void pd_initialize();
+  void pd_destroy();
+
+// Reconciliation History
+// osThread_solaris.hpp 1.24 99/08/27 13:11:54
+// End
+
+#endif // OS_BSD_VM_OSTHREAD_BSD_HPP
diff --git a/hotspot/src/os/bsd/vm/os_bsd.cpp b/hotspot/src/os/bsd/vm/os_bsd.cpp
new file mode 100644
index 0000000..b783de6
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/os_bsd.cpp
@@ -0,0 +1,5709 @@
+/*
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+// no precompiled headers
+#include "classfile/classLoader.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "compiler/compileBroker.hpp"
+#include "interpreter/interpreter.hpp"
+#include "jvm_bsd.h"
+#include "memory/allocation.inline.hpp"
+#include "memory/filemap.hpp"
+#include "mutex_bsd.inline.hpp"
+#include "oops/oop.inline.hpp"
+#include "os_share_bsd.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm.h"
+#include "prims/jvm_misc.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/extendedPC.hpp"
+#include "runtime/globals.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/java.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/objectMonitor.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/perfMemory.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/statSampler.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/threadCritical.hpp"
+#include "runtime/timer.hpp"
+#include "services/attachListener.hpp"
+#include "services/runtimeService.hpp"
+#include "thread_bsd.inline.hpp"
+#include "utilities/decoder.hpp"
+#include "utilities/defaultStream.hpp"
+#include "utilities/events.hpp"
+#include "utilities/growableArray.hpp"
+#include "utilities/vmError.hpp"
+#ifdef TARGET_ARCH_x86
+# include "assembler_x86.inline.hpp"
+# include "nativeInst_x86.hpp"
+#endif
+#ifdef TARGET_ARCH_sparc
+# include "assembler_sparc.inline.hpp"
+# include "nativeInst_sparc.hpp"
+#endif
+#ifdef TARGET_ARCH_zero
+# include "assembler_zero.inline.hpp"
+# include "nativeInst_zero.hpp"
+#endif
+#ifdef TARGET_ARCH_arm
+# include "assembler_arm.inline.hpp"
+# include "nativeInst_arm.hpp"
+#endif
+#ifdef TARGET_ARCH_ppc
+# include "assembler_ppc.inline.hpp"
+# include "nativeInst_ppc.hpp"
+#endif
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
+
+// put OS-includes here
+# include <sys/types.h>
+# include <sys/mman.h>
+# include <sys/stat.h>
+# include <sys/select.h>
+# include <pthread.h>
+# include <signal.h>
+# include <errno.h>
+# include <dlfcn.h>
+# include <stdio.h>
+# include <unistd.h>
+# include <sys/resource.h>
+# include <pthread.h>
+# include <sys/stat.h>
+# include <sys/time.h>
+# include <sys/times.h>
+# include <sys/utsname.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <time.h>
+# include <pwd.h>
+# include <poll.h>
+# include <semaphore.h>
+# include <fcntl.h>
+# include <string.h>
+#ifdef _ALLBSD_SOURCE
+# include <sys/param.h>
+# include <sys/sysctl.h>
+#else
+# include <syscall.h>
+# include <sys/sysinfo.h>
+# include <gnu/libc-version.h>
+#endif
+# include <sys/ipc.h>
+# include <sys/shm.h>
+#ifndef __APPLE__
+# include <link.h>
+#endif
+# include <stdint.h>
+# include <inttypes.h>
+# include <sys/ioctl.h>
+
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+# include <elf.h>
+#endif
+
+#ifdef __APPLE__
+#include <mach/mach.h> // semaphore_* API
+#include <mach-o/dyld.h>
+#endif
+
+#ifndef MAP_ANONYMOUS
+#define MAP_ANONYMOUS MAP_ANON
+#endif
+
+#define MAX_PATH    (2 * K)
+
+// for timer info max values which include all bits
+#define ALL_64_BITS CONST64(0xFFFFFFFFFFFFFFFF)
+#define SEC_IN_NANOSECS  1000000000LL
+
+#define LARGEPAGES_BIT (1 << 6)
+////////////////////////////////////////////////////////////////////////////////
+// global variables
+julong os::Bsd::_physical_memory = 0;
+
+#ifndef _ALLBSD_SOURCE
+address   os::Bsd::_initial_thread_stack_bottom = NULL;
+uintptr_t os::Bsd::_initial_thread_stack_size   = 0;
+#endif
+
+int (*os::Bsd::_clock_gettime)(clockid_t, struct timespec *) = NULL;
+#ifndef _ALLBSD_SOURCE
+int (*os::Bsd::_pthread_getcpuclockid)(pthread_t, clockid_t *) = NULL;
+Mutex* os::Bsd::_createThread_lock = NULL;
+#endif
+pthread_t os::Bsd::_main_thread;
+int os::Bsd::_page_size = -1;
+#ifndef _ALLBSD_SOURCE
+bool os::Bsd::_is_floating_stack = false;
+bool os::Bsd::_is_NPTL = false;
+bool os::Bsd::_supports_fast_thread_cpu_time = false;
+const char * os::Bsd::_glibc_version = NULL;
+const char * os::Bsd::_libpthread_version = NULL;
+#endif
+
+static jlong initial_time_count=0;
+
+static int clock_tics_per_sec = 100;
+
+// For diagnostics to print a message once. see run_periodic_checks
+static sigset_t check_signal_done;
+static bool check_signals = true;;
+
+static pid_t _initial_pid = 0;
+
+/* Signal number used to suspend/resume a thread */
+
+/* do not use any signal number less than SIGSEGV, see 4355769 */
+static int SR_signum = SIGUSR2;
+sigset_t SR_sigset;
+
+
+////////////////////////////////////////////////////////////////////////////////
+// utility functions
+
+static int SR_initialize();
+static int SR_finalize();
+
+julong os::available_memory() {
+  return Bsd::available_memory();
+}
+
+julong os::Bsd::available_memory() {
+#ifdef _ALLBSD_SOURCE
+  // XXXBSD: this is just a stopgap implementation
+  return physical_memory() >> 2;
+#else
+  // values in struct sysinfo are "unsigned long"
+  struct sysinfo si;
+  sysinfo(&si);
+
+  return (julong)si.freeram * si.mem_unit;
+#endif
+}
+
+julong os::physical_memory() {
+  return Bsd::physical_memory();
+}
+
+julong os::allocatable_physical_memory(julong size) {
+#ifdef _LP64
+  return size;
+#else
+  julong result = MIN2(size, (julong)3800*M);
+   if (!is_allocatable(result)) {
+     // See comments under solaris for alignment considerations
+     julong reasonable_size = (julong)2*G - 2 * os::vm_page_size();
+     result =  MIN2(size, reasonable_size);
+   }
+   return result;
+#endif // _LP64
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// environment support
+
+bool os::getenv(const char* name, char* buf, int len) {
+  const char* val = ::getenv(name);
+  if (val != NULL && strlen(val) < (size_t)len) {
+    strcpy(buf, val);
+    return true;
+  }
+  if (len > 0) buf[0] = 0;  // return a null string
+  return false;
+}
+
+
+// Return true if user is running as root.
+
+bool os::have_special_privileges() {
+  static bool init = false;
+  static bool privileges = false;
+  if (!init) {
+    privileges = (getuid() != geteuid()) || (getgid() != getegid());
+    init = true;
+  }
+  return privileges;
+}
+
+
+#ifndef _ALLBSD_SOURCE
+#ifndef SYS_gettid
+// i386: 224, ia64: 1105, amd64: 186, sparc 143
+#ifdef __ia64__
+#define SYS_gettid 1105
+#elif __i386__
+#define SYS_gettid 224
+#elif __amd64__
+#define SYS_gettid 186
+#elif __sparc__
+#define SYS_gettid 143
+#else
+#error define gettid for the arch
+#endif
+#endif
+#endif
+
+// Cpu architecture string
+#if   defined(ZERO)
+static char cpu_arch[] = ZERO_LIBARCH;
+#elif defined(IA64)
+static char cpu_arch[] = "ia64";
+#elif defined(IA32)
+static char cpu_arch[] = "i386";
+#elif defined(AMD64)
+static char cpu_arch[] = "amd64";
+#elif defined(ARM)
+static char cpu_arch[] = "arm";
+#elif defined(PPC)
+static char cpu_arch[] = "ppc";
+#elif defined(SPARC)
+#  ifdef _LP64
+static char cpu_arch[] = "sparcv9";
+#  else
+static char cpu_arch[] = "sparc";
+#  endif
+#else
+#error Add appropriate cpu_arch setting
+#endif
+
+
+#ifndef _ALLBSD_SOURCE
+// pid_t gettid()
+//
+// Returns the kernel thread id of the currently running thread. Kernel
+// thread id is used to access /proc.
+//
+// (Note that getpid() on BsdThreads returns kernel thread id too; but
+// on NPTL, it returns the same pid for all threads, as required by POSIX.)
+//
+pid_t os::Bsd::gettid() {
+  int rslt = syscall(SYS_gettid);
+  if (rslt == -1) {
+     // old kernel, no NPTL support
+     return getpid();
+  } else {
+     return (pid_t)rslt;
+  }
+}
+
+// Most versions of bsd have a bug where the number of processors are
+// determined by looking at the /proc file system.  In a chroot environment,
+// the system call returns 1.  This causes the VM to act as if it is
+// a single processor and elide locking (see is_MP() call).
+static bool unsafe_chroot_detected = false;
+static const char *unstable_chroot_error = "/proc file system not found.\n"
+                     "Java may be unstable running multithreaded in a chroot "
+                     "environment on Bsd when /proc filesystem is not mounted.";
+#endif
+
+#ifdef _ALLBSD_SOURCE
+void os::Bsd::initialize_system_info() {
+  int mib[2];
+  size_t len;
+  int cpu_val;
+  u_long mem_val;
+
+  /* get processors count via hw.ncpus sysctl */
+  mib[0] = CTL_HW;
+  mib[1] = HW_NCPU;
+  len = sizeof(cpu_val);
+  if (sysctl(mib, 2, &cpu_val, &len, NULL, 0) != -1 && cpu_val >= 1) {
+       set_processor_count(cpu_val);
+  }
+  else {
+       set_processor_count(1);   // fallback
+  }
+
+  /* get physical memory via hw.usermem sysctl (hw.usermem is used
+   * instead of hw.physmem because we need size of allocatable memory
+   */
+  mib[0] = CTL_HW;
+  mib[1] = HW_USERMEM;
+  len = sizeof(mem_val);
+  if (sysctl(mib, 2, &mem_val, &len, NULL, 0) != -1)
+       _physical_memory = mem_val;
+  else
+       _physical_memory = 256*1024*1024;       // fallback (XXXBSD?)
+
+#ifdef __OpenBSD__
+  {
+       // limit _physical_memory memory view on OpenBSD since
+       // datasize rlimit restricts us anyway.
+       struct rlimit limits;
+       getrlimit(RLIMIT_DATA, &limits);
+       _physical_memory = MIN2(_physical_memory, (julong)limits.rlim_cur);
+  }
+#endif
+}
+#else
+void os::Bsd::initialize_system_info() {
+  set_processor_count(sysconf(_SC_NPROCESSORS_CONF));
+  if (processor_count() == 1) {
+    pid_t pid = os::Bsd::gettid();
+    char fname[32];
+    jio_snprintf(fname, sizeof(fname), "/proc/%d", pid);
+    FILE *fp = fopen(fname, "r");
+    if (fp == NULL) {
+      unsafe_chroot_detected = true;
+    } else {
+      fclose(fp);
+    }
+  }
+  _physical_memory = (julong)sysconf(_SC_PHYS_PAGES) * (julong)sysconf(_SC_PAGESIZE);
+  assert(processor_count() > 0, "bsd error");
+}
+#endif
+
+void os::init_system_properties_values() {
+//  char arch[12];
+//  sysinfo(SI_ARCHITECTURE, arch, sizeof(arch));
+
+  // The next steps are taken in the product version:
+  //
+  // Obtain the JAVA_HOME value from the location of libjvm[_g].so.
+  // This library should be located at:
+  // <JAVA_HOME>/jre/lib/<arch>/{client|server}/libjvm[_g].so.
+  //
+  // If "/jre/lib/" appears at the right place in the path, then we
+  // assume libjvm[_g].so is installed in a JDK and we use this path.
+  //
+  // Otherwise exit with message: "Could not create the Java virtual machine."
+  //
+  // The following extra steps are taken in the debugging version:
+  //
+  // If "/jre/lib/" does NOT appear at the right place in the path
+  // instead of exit check for $JAVA_HOME environment variable.
+  //
+  // If it is defined and we are able to locate $JAVA_HOME/jre/lib/<arch>,
+  // then we append a fake suffix "hotspot/libjvm[_g].so" to this path so
+  // it looks like libjvm[_g].so is installed there
+  // <JAVA_HOME>/jre/lib/<arch>/hotspot/libjvm[_g].so.
+  //
+  // Otherwise exit.
+  //
+  // Important note: if the location of libjvm.so changes this
+  // code needs to be changed accordingly.
+
+  // The next few definitions allow the code to be verbatim:
+#define malloc(n) (char*)NEW_C_HEAP_ARRAY(char, (n))
+#define getenv(n) ::getenv(n)
+
+/*
+ * See ld(1):
+ *      The linker uses the following search paths to locate required
+ *      shared libraries:
+ *        1: ...
+ *        ...
+ *        7: The default directories, normally /lib and /usr/lib.
+ */
+#ifndef DEFAULT_LIBPATH
+#define DEFAULT_LIBPATH "/lib:/usr/lib"
+#endif
+
+#define EXTENSIONS_DIR  "/lib/ext"
+#define ENDORSED_DIR    "/lib/endorsed"
+#define REG_DIR         "/usr/java/packages"
+
+  {
+    /* sysclasspath, java_home, dll_dir */
+    {
+        char *home_path;
+        char *dll_path;
+        char *pslash;
+        char buf[MAXPATHLEN];
+        os::jvm_path(buf, sizeof(buf));
+
+        // Found the full path to libjvm.so.
+        // Now cut the path to <java_home>/jre if we can.
+        *(strrchr(buf, '/')) = '\0';  /* get rid of /libjvm.so */
+        pslash = strrchr(buf, '/');
+        if (pslash != NULL)
+            *pslash = '\0';           /* get rid of /{client|server|hotspot} */
+        dll_path = malloc(strlen(buf) + 1);
+        if (dll_path == NULL)
+            return;
+        strcpy(dll_path, buf);
+        Arguments::set_dll_dir(dll_path);
+
+        if (pslash != NULL) {
+            pslash = strrchr(buf, '/');
+            if (pslash != NULL) {
+                *pslash = '\0';       /* get rid of /<arch> */
+                pslash = strrchr(buf, '/');
+                if (pslash != NULL)
+                    *pslash = '\0';   /* get rid of /lib */
+            }
+        }
+
+        home_path = malloc(strlen(buf) + 1);
+        if (home_path == NULL)
+            return;
+        strcpy(home_path, buf);
+        Arguments::set_java_home(home_path);
+
+        if (!set_boot_path('/', ':'))
+            return;
+    }
+
+    /*
+     * Where to look for native libraries
+     *
+     * Note: Due to a legacy implementation, most of the library path
+     * is set in the launcher.  This was to accomodate linking restrictions
+     * on legacy Bsd implementations (which are no longer supported).
+     * Eventually, all the library path setting will be done here.
+     *
+     * However, to prevent the proliferation of improperly built native
+     * libraries, the new path component /usr/java/packages is added here.
+     * Eventually, all the library path setting will be done here.
+     */
+    {
+        char *ld_library_path;
+
+        /*
+         * Construct the invariant part of ld_library_path. Note that the
+         * space for the colon and the trailing null are provided by the
+         * nulls included by the sizeof operator (so actually we allocate
+         * a byte more than necessary).
+         */
+        ld_library_path = (char *) malloc(sizeof(REG_DIR) + sizeof("/lib/") +
+            strlen(cpu_arch) + sizeof(DEFAULT_LIBPATH));
+        sprintf(ld_library_path, REG_DIR "/lib/%s:" DEFAULT_LIBPATH, cpu_arch);
+
+        /*
+         * Get the user setting of LD_LIBRARY_PATH, and prepended it.  It
+         * should always exist (until the legacy problem cited above is
+         * addressed).
+         */
+#ifdef __APPLE__
+        char *v = getenv("DYLD_LIBRARY_PATH");
+#else
+        char *v = getenv("LD_LIBRARY_PATH");
+#endif
+        if (v != NULL) {
+            char *t = ld_library_path;
+            /* That's +1 for the colon and +1 for the trailing '\0' */
+            ld_library_path = (char *) malloc(strlen(v) + 1 + strlen(t) + 1);
+            sprintf(ld_library_path, "%s:%s", v, t);
+        }
+        Arguments::set_library_path(ld_library_path);
+    }
+
+    /*
+     * Extensions directories.
+     *
+     * Note that the space for the colon and the trailing null are provided
+     * by the nulls included by the sizeof operator (so actually one byte more
+     * than necessary is allocated).
+     */
+    {
+        char *buf = malloc(strlen(Arguments::get_java_home()) +
+            sizeof(EXTENSIONS_DIR) + sizeof(REG_DIR) + sizeof(EXTENSIONS_DIR));
+        sprintf(buf, "%s" EXTENSIONS_DIR ":" REG_DIR EXTENSIONS_DIR,
+            Arguments::get_java_home());
+        Arguments::set_ext_dirs(buf);
+    }
+
+    /* Endorsed standards default directory. */
+    {
+        char * buf;
+        buf = malloc(strlen(Arguments::get_java_home()) + sizeof(ENDORSED_DIR));
+        sprintf(buf, "%s" ENDORSED_DIR, Arguments::get_java_home());
+        Arguments::set_endorsed_dirs(buf);
+    }
+  }
+
+#undef malloc
+#undef getenv
+#undef EXTENSIONS_DIR
+#undef ENDORSED_DIR
+
+  // Done
+  return;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// breakpoint support
+
+void os::breakpoint() {
+  BREAKPOINT;
+}
+
+extern "C" void breakpoint() {
+  // use debugger to set breakpoint here
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// signal support
+
+debug_only(static bool signal_sets_initialized = false);
+static sigset_t unblocked_sigs, vm_sigs, allowdebug_blocked_sigs;
+
+bool os::Bsd::is_sig_ignored(int sig) {
+      struct sigaction oact;
+      sigaction(sig, (struct sigaction*)NULL, &oact);
+      void* ohlr = oact.sa_sigaction ? CAST_FROM_FN_PTR(void*,  oact.sa_sigaction)
+                                     : CAST_FROM_FN_PTR(void*,  oact.sa_handler);
+      if (ohlr == CAST_FROM_FN_PTR(void*, SIG_IGN))
+           return true;
+      else
+           return false;
+}
+
+void os::Bsd::signal_sets_init() {
+  // Should also have an assertion stating we are still single-threaded.
+  assert(!signal_sets_initialized, "Already initialized");
+  // Fill in signals that are necessarily unblocked for all threads in
+  // the VM. Currently, we unblock the following signals:
+  // SHUTDOWN{1,2,3}_SIGNAL: for shutdown hooks support (unless over-ridden
+  //                         by -Xrs (=ReduceSignalUsage));
+  // BREAK_SIGNAL which is unblocked only by the VM thread and blocked by all
+  // other threads. The "ReduceSignalUsage" boolean tells us not to alter
+  // the dispositions or masks wrt these signals.
+  // Programs embedding the VM that want to use the above signals for their
+  // own purposes must, at this time, use the "-Xrs" option to prevent
+  // interference with shutdown hooks and BREAK_SIGNAL thread dumping.
+  // (See bug 4345157, and other related bugs).
+  // In reality, though, unblocking these signals is really a nop, since
+  // these signals are not blocked by default.
+  sigemptyset(&unblocked_sigs);
+  sigemptyset(&allowdebug_blocked_sigs);
+  sigaddset(&unblocked_sigs, SIGILL);
+  sigaddset(&unblocked_sigs, SIGSEGV);
+  sigaddset(&unblocked_sigs, SIGBUS);
+  sigaddset(&unblocked_sigs, SIGFPE);
+  sigaddset(&unblocked_sigs, SR_signum);
+
+  if (!ReduceSignalUsage) {
+   if (!os::Bsd::is_sig_ignored(SHUTDOWN1_SIGNAL)) {
+      sigaddset(&unblocked_sigs, SHUTDOWN1_SIGNAL);
+      sigaddset(&allowdebug_blocked_sigs, SHUTDOWN1_SIGNAL);
+   }
+   if (!os::Bsd::is_sig_ignored(SHUTDOWN2_SIGNAL)) {
+      sigaddset(&unblocked_sigs, SHUTDOWN2_SIGNAL);
+      sigaddset(&allowdebug_blocked_sigs, SHUTDOWN2_SIGNAL);
+   }
+   if (!os::Bsd::is_sig_ignored(SHUTDOWN3_SIGNAL)) {
+      sigaddset(&unblocked_sigs, SHUTDOWN3_SIGNAL);
+      sigaddset(&allowdebug_blocked_sigs, SHUTDOWN3_SIGNAL);
+   }
+  }
+  // Fill in signals that are blocked by all but the VM thread.
+  sigemptyset(&vm_sigs);
+  if (!ReduceSignalUsage)
+    sigaddset(&vm_sigs, BREAK_SIGNAL);
+  debug_only(signal_sets_initialized = true);
+
+}
+
+// These are signals that are unblocked while a thread is running Java.
+// (For some reason, they get blocked by default.)
+sigset_t* os::Bsd::unblocked_signals() {
+  assert(signal_sets_initialized, "Not initialized");
+  return &unblocked_sigs;
+}
+
+// These are the signals that are blocked while a (non-VM) thread is
+// running Java. Only the VM thread handles these signals.
+sigset_t* os::Bsd::vm_signals() {
+  assert(signal_sets_initialized, "Not initialized");
+  return &vm_sigs;
+}
+
+// These are signals that are blocked during cond_wait to allow debugger in
+sigset_t* os::Bsd::allowdebug_blocked_signals() {
+  assert(signal_sets_initialized, "Not initialized");
+  return &allowdebug_blocked_sigs;
+}
+
+void os::Bsd::hotspot_sigmask(Thread* thread) {
+
+  //Save caller's signal mask before setting VM signal mask
+  sigset_t caller_sigmask;
+  pthread_sigmask(SIG_BLOCK, NULL, &caller_sigmask);
+
+  OSThread* osthread = thread->osthread();
+  osthread->set_caller_sigmask(caller_sigmask);
+
+  pthread_sigmask(SIG_UNBLOCK, os::Bsd::unblocked_signals(), NULL);
+
+  if (!ReduceSignalUsage) {
+    if (thread->is_VM_thread()) {
+      // Only the VM thread handles BREAK_SIGNAL ...
+      pthread_sigmask(SIG_UNBLOCK, vm_signals(), NULL);
+    } else {
+      // ... all other threads block BREAK_SIGNAL
+      pthread_sigmask(SIG_BLOCK, vm_signals(), NULL);
+    }
+  }
+}
+
+#ifndef _ALLBSD_SOURCE
+//////////////////////////////////////////////////////////////////////////////
+// detecting pthread library
+
+void os::Bsd::libpthread_init() {
+  // Save glibc and pthread version strings. Note that _CS_GNU_LIBC_VERSION
+  // and _CS_GNU_LIBPTHREAD_VERSION are supported in glibc >= 2.3.2. Use a
+  // generic name for earlier versions.
+  // Define macros here so we can build HotSpot on old systems.
+# ifndef _CS_GNU_LIBC_VERSION
+# define _CS_GNU_LIBC_VERSION 2
+# endif
+# ifndef _CS_GNU_LIBPTHREAD_VERSION
+# define _CS_GNU_LIBPTHREAD_VERSION 3
+# endif
+
+  size_t n = confstr(_CS_GNU_LIBC_VERSION, NULL, 0);
+  if (n > 0) {
+     char *str = (char *)malloc(n);
+     confstr(_CS_GNU_LIBC_VERSION, str, n);
+     os::Bsd::set_glibc_version(str);
+  } else {
+     // _CS_GNU_LIBC_VERSION is not supported, try gnu_get_libc_version()
+     static char _gnu_libc_version[32];
+     jio_snprintf(_gnu_libc_version, sizeof(_gnu_libc_version),
+              "glibc %s %s", gnu_get_libc_version(), gnu_get_libc_release());
+     os::Bsd::set_glibc_version(_gnu_libc_version);
+  }
+
+  n = confstr(_CS_GNU_LIBPTHREAD_VERSION, NULL, 0);
+  if (n > 0) {
+     char *str = (char *)malloc(n);
+     confstr(_CS_GNU_LIBPTHREAD_VERSION, str, n);
+     // Vanilla RH-9 (glibc 2.3.2) has a bug that confstr() always tells
+     // us "NPTL-0.29" even we are running with BsdThreads. Check if this
+     // is the case. BsdThreads has a hard limit on max number of threads.
+     // So sysconf(_SC_THREAD_THREADS_MAX) will return a positive value.
+     // On the other hand, NPTL does not have such a limit, sysconf()
+     // will return -1 and errno is not changed. Check if it is really NPTL.
+     if (strcmp(os::Bsd::glibc_version(), "glibc 2.3.2") == 0 &&
+         strstr(str, "NPTL") &&
+         sysconf(_SC_THREAD_THREADS_MAX) > 0) {
+       free(str);
+       os::Bsd::set_libpthread_version("bsdthreads");
+     } else {
+       os::Bsd::set_libpthread_version(str);
+     }
+  } else {
+    // glibc before 2.3.2 only has BsdThreads.
+    os::Bsd::set_libpthread_version("bsdthreads");
+  }
+
+  if (strstr(libpthread_version(), "NPTL")) {
+     os::Bsd::set_is_NPTL();
+  } else {
+     os::Bsd::set_is_BsdThreads();
+  }
+
+  // BsdThreads have two flavors: floating-stack mode, which allows variable
+  // stack size; and fixed-stack mode. NPTL is always floating-stack.
+  if (os::Bsd::is_NPTL() || os::Bsd::supports_variable_stack_size()) {
+     os::Bsd::set_is_floating_stack();
+  }
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// thread stack
+
+// Force Bsd kernel to expand current thread stack. If "bottom" is close
+// to the stack guard, caller should block all signals.
+//
+// MAP_GROWSDOWN:
+//   A special mmap() flag that is used to implement thread stacks. It tells
+//   kernel that the memory region should extend downwards when needed. This
+//   allows early versions of BsdThreads to only mmap the first few pages
+//   when creating a new thread. Bsd kernel will automatically expand thread
+//   stack as needed (on page faults).
+//
+//   However, because the memory region of a MAP_GROWSDOWN stack can grow on
+//   demand, if a page fault happens outside an already mapped MAP_GROWSDOWN
+//   region, it's hard to tell if the fault is due to a legitimate stack
+//   access or because of reading/writing non-exist memory (e.g. buffer
+//   overrun). As a rule, if the fault happens below current stack pointer,
+//   Bsd kernel does not expand stack, instead a SIGSEGV is sent to the
+//   application (see Bsd kernel fault.c).
+//
+//   This Bsd feature can cause SIGSEGV when VM bangs thread stack for
+//   stack overflow detection.
+//
+//   Newer version of BsdThreads (since glibc-2.2, or, RH-7.x) and NPTL do
+//   not use this flag. However, the stack of initial thread is not created
+//   by pthread, it is still MAP_GROWSDOWN. Also it's possible (though
+//   unlikely) that user code can create a thread with MAP_GROWSDOWN stack
+//   and then attach the thread to JVM.
+//
+// To get around the problem and allow stack banging on Bsd, we need to
+// manually expand thread stack after receiving the SIGSEGV.
+//
+// There are two ways to expand thread stack to address "bottom", we used
+// both of them in JVM before 1.5:
+//   1. adjust stack pointer first so that it is below "bottom", and then
+//      touch "bottom"
+//   2. mmap() the page in question
+//
+// Now alternate signal stack is gone, it's harder to use 2. For instance,
+// if current sp is already near the lower end of page 101, and we need to
+// call mmap() to map page 100, it is possible that part of the mmap() frame
+// will be placed in page 100. When page 100 is mapped, it is zero-filled.
+// That will destroy the mmap() frame and cause VM to crash.
+//
+// The following code works by adjusting sp first, then accessing the "bottom"
+// page to force a page fault. Bsd kernel will then automatically expand the
+// stack mapping.
+//
+// _expand_stack_to() assumes its frame size is less than page size, which
+// should always be true if the function is not inlined.
+
+#if __GNUC__ < 3    // gcc 2.x does not support noinline attribute
+#define NOINLINE
+#else
+#define NOINLINE __attribute__ ((noinline))
+#endif
+
+static void _expand_stack_to(address bottom) NOINLINE;
+
+static void _expand_stack_to(address bottom) {
+  address sp;
+  size_t size;
+  volatile char *p;
+
+  // Adjust bottom to point to the largest address within the same page, it
+  // gives us a one-page buffer if alloca() allocates slightly more memory.
+  bottom = (address)align_size_down((uintptr_t)bottom, os::Bsd::page_size());
+  bottom += os::Bsd::page_size() - 1;
+
+  // sp might be slightly above current stack pointer; if that's the case, we
+  // will alloca() a little more space than necessary, which is OK. Don't use
+  // os::current_stack_pointer(), as its result can be slightly below current
+  // stack pointer, causing us to not alloca enough to reach "bottom".
+  sp = (address)&sp;
+
+  if (sp > bottom) {
+    size = sp - bottom;
+    p = (volatile char *)alloca(size);
+    assert(p != NULL && p <= (volatile char *)bottom, "alloca problem?");
+    p[0] = '\0';
+  }
+}
+
+bool os::Bsd::manually_expand_stack(JavaThread * t, address addr) {
+  assert(t!=NULL, "just checking");
+  assert(t->osthread()->expanding_stack(), "expand should be set");
+  assert(t->stack_base() != NULL, "stack_base was not initialized");
+
+  if (addr <  t->stack_base() && addr >= t->stack_yellow_zone_base()) {
+    sigset_t mask_all, old_sigset;
+    sigfillset(&mask_all);
+    pthread_sigmask(SIG_SETMASK, &mask_all, &old_sigset);
+    _expand_stack_to(addr);
+    pthread_sigmask(SIG_SETMASK, &old_sigset, NULL);
+    return true;
+  }
+  return false;
+}
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+// create new thread
+
+static address highest_vm_reserved_address();
+
+// check if it's safe to start a new thread
+static bool _thread_safety_check(Thread* thread) {
+#ifdef _ALLBSD_SOURCE
+    return true;
+#else
+  if (os::Bsd::is_BsdThreads() && !os::Bsd::is_floating_stack()) {
+    // Fixed stack BsdThreads (SuSE Bsd/x86, and some versions of Redhat)
+    //   Heap is mmap'ed at lower end of memory space. Thread stacks are
+    //   allocated (MAP_FIXED) from high address space. Every thread stack
+    //   occupies a fixed size slot (usually 2Mbytes, but user can change
+    //   it to other values if they rebuild BsdThreads).
+    //
+    // Problem with MAP_FIXED is that mmap() can still succeed even part of
+    // the memory region has already been mmap'ed. That means if we have too
+    // many threads and/or very large heap, eventually thread stack will
+    // collide with heap.
+    //
+    // Here we try to prevent heap/stack collision by comparing current
+    // stack bottom with the highest address that has been mmap'ed by JVM
+    // plus a safety margin for memory maps created by native code.
+    //
+    // This feature can be disabled by setting ThreadSafetyMargin to 0
+    //
+    if (ThreadSafetyMargin > 0) {
+      address stack_bottom = os::current_stack_base() - os::current_stack_size();
+
+      // not safe if our stack extends below the safety margin
+      return stack_bottom - ThreadSafetyMargin >= highest_vm_reserved_address();
+    } else {
+      return true;
+    }
+  } else {
+    // Floating stack BsdThreads or NPTL:
+    //   Unlike fixed stack BsdThreads, thread stacks are not MAP_FIXED. When
+    //   there's not enough space left, pthread_create() will fail. If we come
+    //   here, that means enough space has been reserved for stack.
+    return true;
+  }
+#endif
+}
+
+// Thread start routine for all newly created threads
+static void *java_start(Thread *thread) {
+  // Try to randomize the cache line index of hot stack frames.
+  // This helps when threads of the same stack traces evict each other's
+  // cache lines. The threads can be either from the same JVM instance, or
+  // from different JVM instances. The benefit is especially true for
+  // processors with hyperthreading technology.
+  static int counter = 0;
+  int pid = os::current_process_id();
+  alloca(((pid ^ counter++) & 7) * 128);
+
+  ThreadLocalStorage::set_thread(thread);
+
+  OSThread* osthread = thread->osthread();
+  Monitor* sync = osthread->startThread_lock();
+
+  // non floating stack BsdThreads needs extra check, see above
+  if (!_thread_safety_check(thread)) {
+    // notify parent thread
+    MutexLockerEx ml(sync, Mutex::_no_safepoint_check_flag);
+    osthread->set_state(ZOMBIE);
+    sync->notify_all();
+    return NULL;
+  }
+
+#ifdef _ALLBSD_SOURCE
+  // thread_id is pthread_id on BSD
+  osthread->set_thread_id(::pthread_self());
+#else
+  // thread_id is kernel thread id (similar to Solaris LWP id)
+  osthread->set_thread_id(os::Bsd::gettid());
+
+  if (UseNUMA) {
+    int lgrp_id = os::numa_get_group_id();
+    if (lgrp_id != -1) {
+      thread->set_lgrp_id(lgrp_id);
+    }
+  }
+#endif
+  // initialize signal mask for this thread
+  os::Bsd::hotspot_sigmask(thread);
+
+  // initialize floating point control register
+  os::Bsd::init_thread_fpu_state();
+
+  // handshaking with parent thread
+  {
+    MutexLockerEx ml(sync, Mutex::_no_safepoint_check_flag);
+
+    // notify parent thread
+    osthread->set_state(INITIALIZED);
+    sync->notify_all();
+
+    // wait until os::start_thread()
+    while (osthread->get_state() == INITIALIZED) {
+      sync->wait(Mutex::_no_safepoint_check_flag);
+    }
+  }
+
+  // call one more level start routine
+  thread->run();
+
+  return 0;
+}
+
+bool os::create_thread(Thread* thread, ThreadType thr_type, size_t stack_size) {
+  assert(thread->osthread() == NULL, "caller responsible");
+
+  // Allocate the OSThread object
+  OSThread* osthread = new OSThread(NULL, NULL);
+  if (osthread == NULL) {
+    return false;
+  }
+
+  // set the correct thread state
+  osthread->set_thread_type(thr_type);
+
+  // Initial state is ALLOCATED but not INITIALIZED
+  osthread->set_state(ALLOCATED);
+
+  thread->set_osthread(osthread);
+
+  // init thread attributes
+  pthread_attr_t attr;
+  pthread_attr_init(&attr);
+  pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+
+  // stack size
+  if (os::Bsd::supports_variable_stack_size()) {
+    // calculate stack size if it's not specified by caller
+    if (stack_size == 0) {
+      stack_size = os::Bsd::default_stack_size(thr_type);
+
+      switch (thr_type) {
+      case os::java_thread:
+        // Java threads use ThreadStackSize which default value can be
+        // changed with the flag -Xss
+        assert (JavaThread::stack_size_at_create() > 0, "this should be set");
+        stack_size = JavaThread::stack_size_at_create();
+        break;
+      case os::compiler_thread:
+        if (CompilerThreadStackSize > 0) {
+          stack_size = (size_t)(CompilerThreadStackSize * K);
+          break;
+        } // else fall through:
+          // use VMThreadStackSize if CompilerThreadStackSize is not defined
+      case os::vm_thread:
+      case os::pgc_thread:
+      case os::cgc_thread:
+      case os::watcher_thread:
+        if (VMThreadStackSize > 0) stack_size = (size_t)(VMThreadStackSize * K);
+        break;
+      }
+    }
+
+    stack_size = MAX2(stack_size, os::Bsd::min_stack_allowed);
+    pthread_attr_setstacksize(&attr, stack_size);
+  } else {
+    // let pthread_create() pick the default value.
+  }
+
+#ifndef _ALLBSD_SOURCE
+  // glibc guard page
+  pthread_attr_setguardsize(&attr, os::Bsd::default_guard_size(thr_type));
+#endif
+
+  ThreadState state;
+
+  {
+
+#ifndef _ALLBSD_SOURCE
+    // Serialize thread creation if we are running with fixed stack BsdThreads
+    bool lock = os::Bsd::is_BsdThreads() && !os::Bsd::is_floating_stack();
+    if (lock) {
+      os::Bsd::createThread_lock()->lock_without_safepoint_check();
+    }
+#endif
+
+    pthread_t tid;
+    int ret = pthread_create(&tid, &attr, (void* (*)(void*)) java_start, thread);
+
+    pthread_attr_destroy(&attr);
+
+    if (ret != 0) {
+      if (PrintMiscellaneous && (Verbose || WizardMode)) {
+        perror("pthread_create()");
+      }
+      // Need to clean up stuff we've allocated so far
+      thread->set_osthread(NULL);
+      delete osthread;
+#ifndef _ALLBSD_SOURCE
+      if (lock) os::Bsd::createThread_lock()->unlock();
+#endif
+      return false;
+    }
+
+    // Store pthread info into the OSThread
+    osthread->set_pthread_id(tid);
+
+    // Wait until child thread is either initialized or aborted
+    {
+      Monitor* sync_with_child = osthread->startThread_lock();
+      MutexLockerEx ml(sync_with_child, Mutex::_no_safepoint_check_flag);
+      while ((state = osthread->get_state()) == ALLOCATED) {
+        sync_with_child->wait(Mutex::_no_safepoint_check_flag);
+      }
+    }
+
+#ifndef _ALLBSD_SOURCE
+    if (lock) {
+      os::Bsd::createThread_lock()->unlock();
+    }
+#endif
+  }
+
+  // Aborted due to thread limit being reached
+  if (state == ZOMBIE) {
+      thread->set_osthread(NULL);
+      delete osthread;
+      return false;
+  }
+
+  // The thread is returned suspended (in state INITIALIZED),
+  // and is started higher up in the call chain
+  assert(state == INITIALIZED, "race condition");
+  return true;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// attach existing thread
+
+// bootstrap the main thread
+bool os::create_main_thread(JavaThread* thread) {
+  assert(os::Bsd::_main_thread == pthread_self(), "should be called inside main thread");
+  return create_attached_thread(thread);
+}
+
+bool os::create_attached_thread(JavaThread* thread) {
+#ifdef ASSERT
+    thread->verify_not_published();
+#endif
+
+  // Allocate the OSThread object
+  OSThread* osthread = new OSThread(NULL, NULL);
+
+  if (osthread == NULL) {
+    return false;
+  }
+
+  // Store pthread info into the OSThread
+#ifdef _ALLBSD_SOURCE
+  osthread->set_thread_id(::pthread_self());
+#else
+  osthread->set_thread_id(os::Bsd::gettid());
+#endif
+  osthread->set_pthread_id(::pthread_self());
+
+  // initialize floating point control register
+  os::Bsd::init_thread_fpu_state();
+
+  // Initial thread state is RUNNABLE
+  osthread->set_state(RUNNABLE);
+
+  thread->set_osthread(osthread);
+
+#ifndef _ALLBSD_SOURCE
+  if (UseNUMA) {
+    int lgrp_id = os::numa_get_group_id();
+    if (lgrp_id != -1) {
+      thread->set_lgrp_id(lgrp_id);
+    }
+  }
+
+  if (os::Bsd::is_initial_thread()) {
+    // If current thread is initial thread, its stack is mapped on demand,
+    // see notes about MAP_GROWSDOWN. Here we try to force kernel to map
+    // the entire stack region to avoid SEGV in stack banging.
+    // It is also useful to get around the heap-stack-gap problem on SuSE
+    // kernel (see 4821821 for details). We first expand stack to the top
+    // of yellow zone, then enable stack yellow zone (order is significant,
+    // enabling yellow zone first will crash JVM on SuSE Bsd), so there
+    // is no gap between the last two virtual memory regions.
+
+    JavaThread *jt = (JavaThread *)thread;
+    address addr = jt->stack_yellow_zone_base();
+    assert(addr != NULL, "initialization problem?");
+    assert(jt->stack_available(addr) > 0, "stack guard should not be enabled");
+
+    osthread->set_expanding_stack();
+    os::Bsd::manually_expand_stack(jt, addr);
+    osthread->clear_expanding_stack();
+  }
+#endif
+
+  // initialize signal mask for this thread
+  // and save the caller's signal mask
+  os::Bsd::hotspot_sigmask(thread);
+
+  return true;
+}
+
+void os::pd_start_thread(Thread* thread) {
+  OSThread * osthread = thread->osthread();
+  assert(osthread->get_state() != INITIALIZED, "just checking");
+  Monitor* sync_with_child = osthread->startThread_lock();
+  MutexLockerEx ml(sync_with_child, Mutex::_no_safepoint_check_flag);
+  sync_with_child->notify();
+}
+
+// Free Bsd resources related to the OSThread
+void os::free_thread(OSThread* osthread) {
+  assert(osthread != NULL, "osthread not set");
+
+  if (Thread::current()->osthread() == osthread) {
+    // Restore caller's signal mask
+    sigset_t sigmask = osthread->caller_sigmask();
+    pthread_sigmask(SIG_SETMASK, &sigmask, NULL);
+   }
+
+  delete osthread;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// thread local storage
+
+int os::allocate_thread_local_storage() {
+  pthread_key_t key;
+  int rslt = pthread_key_create(&key, NULL);
+  assert(rslt == 0, "cannot allocate thread local storage");
+  return (int)key;
+}
+
+// Note: This is currently not used by VM, as we don't destroy TLS key
+// on VM exit.
+void os::free_thread_local_storage(int index) {
+  int rslt = pthread_key_delete((pthread_key_t)index);
+  assert(rslt == 0, "invalid index");
+}
+
+void os::thread_local_storage_at_put(int index, void* value) {
+  int rslt = pthread_setspecific((pthread_key_t)index, value);
+  assert(rslt == 0, "pthread_setspecific failed");
+}
+
+extern "C" Thread* get_thread() {
+  return ThreadLocalStorage::thread();
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// initial thread
+
+#ifndef _ALLBSD_SOURCE
+// Check if current thread is the initial thread, similar to Solaris thr_main.
+bool os::Bsd::is_initial_thread(void) {
+  char dummy;
+  // If called before init complete, thread stack bottom will be null.
+  // Can be called if fatal error occurs before initialization.
+  if (initial_thread_stack_bottom() == NULL) return false;
+  assert(initial_thread_stack_bottom() != NULL &&
+         initial_thread_stack_size()   != 0,
+         "os::init did not locate initial thread's stack region");
+  if ((address)&dummy >= initial_thread_stack_bottom() &&
+      (address)&dummy < initial_thread_stack_bottom() + initial_thread_stack_size())
+       return true;
+  else return false;
+}
+
+// Find the virtual memory area that contains addr
+static bool find_vma(address addr, address* vma_low, address* vma_high) {
+  FILE *fp = fopen("/proc/self/maps", "r");
+  if (fp) {
+    address low, high;
+    while (!feof(fp)) {
+      if (fscanf(fp, "%p-%p", &low, &high) == 2) {
+        if (low <= addr && addr < high) {
+           if (vma_low)  *vma_low  = low;
+           if (vma_high) *vma_high = high;
+           fclose (fp);
+           return true;
+        }
+      }
+      for (;;) {
+        int ch = fgetc(fp);
+        if (ch == EOF || ch == (int)'\n') break;
+      }
+    }
+    fclose(fp);
+  }
+  return false;
+}
+
+// Locate initial thread stack. This special handling of initial thread stack
+// is needed because pthread_getattr_np() on most (all?) Bsd distros returns
+// bogus value for initial thread.
+void os::Bsd::capture_initial_stack(size_t max_size) {
+  // stack size is the easy part, get it from RLIMIT_STACK
+  size_t stack_size;
+  struct rlimit rlim;
+  getrlimit(RLIMIT_STACK, &rlim);
+  stack_size = rlim.rlim_cur;
+
+  // 6308388: a bug in ld.so will relocate its own .data section to the
+  //   lower end of primordial stack; reduce ulimit -s value a little bit
+  //   so we won't install guard page on ld.so's data section.
+  stack_size -= 2 * page_size();
+
+  // 4441425: avoid crash with "unlimited" stack size on SuSE 7.1 or Redhat
+  //   7.1, in both cases we will get 2G in return value.
+  // 4466587: glibc 2.2.x compiled w/o "--enable-kernel=2.4.0" (RH 7.0,
+  //   SuSE 7.2, Debian) can not handle alternate signal stack correctly
+  //   for initial thread if its stack size exceeds 6M. Cap it at 2M,
+  //   in case other parts in glibc still assumes 2M max stack size.
+  // FIXME: alt signal stack is gone, maybe we can relax this constraint?
+#ifndef IA64
+  if (stack_size > 2 * K * K) stack_size = 2 * K * K;
+#else
+  // Problem still exists RH7.2 (IA64 anyway) but 2MB is a little small
+  if (stack_size > 4 * K * K) stack_size = 4 * K * K;
+#endif
+
+  // Try to figure out where the stack base (top) is. This is harder.
+  //
+  // When an application is started, glibc saves the initial stack pointer in
+  // a global variable "__libc_stack_end", which is then used by system
+  // libraries. __libc_stack_end should be pretty close to stack top. The
+  // variable is available since the very early days. However, because it is
+  // a private interface, it could disappear in the future.
+  //
+  // Bsd kernel saves start_stack information in /proc/<pid>/stat. Similar
+  // to __libc_stack_end, it is very close to stack top, but isn't the real
+  // stack top. Note that /proc may not exist if VM is running as a chroot
+  // program, so reading /proc/<pid>/stat could fail. Also the contents of
+  // /proc/<pid>/stat could change in the future (though unlikely).
+  //
+  // We try __libc_stack_end first. If that doesn't work, look for
+  // /proc/<pid>/stat. If neither of them works, we use current stack pointer
+  // as a hint, which should work well in most cases.
+
+  uintptr_t stack_start;
+
+  // try __libc_stack_end first
+  uintptr_t *p = (uintptr_t *)dlsym(RTLD_DEFAULT, "__libc_stack_end");
+  if (p && *p) {
+    stack_start = *p;
+  } else {
+    // see if we can get the start_stack field from /proc/self/stat
+    FILE *fp;
+    int pid;
+    char state;
+    int ppid;
+    int pgrp;
+    int session;
+    int nr;
+    int tpgrp;
+    unsigned long flags;
+    unsigned long minflt;
+    unsigned long cminflt;
+    unsigned long majflt;
+    unsigned long cmajflt;
+    unsigned long utime;
+    unsigned long stime;
+    long cutime;
+    long cstime;
+    long prio;
+    long nice;
+    long junk;
+    long it_real;
+    uintptr_t start;
+    uintptr_t vsize;
+    intptr_t rss;
+    uintptr_t rsslim;
+    uintptr_t scodes;
+    uintptr_t ecode;
+    int i;
+
+    // Figure what the primordial thread stack base is. Code is inspired
+    // by email from Hans Boehm. /proc/self/stat begins with current pid,
+    // followed by command name surrounded by parentheses, state, etc.
+    char stat[2048];
+    int statlen;
+
+    fp = fopen("/proc/self/stat", "r");
+    if (fp) {
+      statlen = fread(stat, 1, 2047, fp);
+      stat[statlen] = '\0';
+      fclose(fp);
+
+      // Skip pid and the command string. Note that we could be dealing with
+      // weird command names, e.g. user could decide to rename java launcher
+      // to "java 1.4.2 :)", then the stat file would look like
+      //                1234 (java 1.4.2 :)) R ... ...
+      // We don't really need to know the command string, just find the last
+      // occurrence of ")" and then start parsing from there. See bug 4726580.
+      char * s = strrchr(stat, ')');
+
+      i = 0;
+      if (s) {
+        // Skip blank chars
+        do s++; while (isspace(*s));
+
+#define _UFM UINTX_FORMAT
+#define _DFM INTX_FORMAT
+
+        /*                                     1   1   1   1   1   1   1   1   1   1   2   2    2    2    2    2    2    2    2 */
+        /*              3  4  5  6  7  8   9   0   1   2   3   4   5   6   7   8   9   0   1    2    3    4    5    6    7    8 */
+        i = sscanf(s, "%c %d %d %d %d %d %lu %lu %lu %lu %lu %lu %lu %ld %ld %ld %ld %ld %ld " _UFM _UFM _DFM _UFM _UFM _UFM _UFM,
+             &state,          /* 3  %c  */
+             &ppid,           /* 4  %d  */
+             &pgrp,           /* 5  %d  */
+             &session,        /* 6  %d  */
+             &nr,             /* 7  %d  */
+             &tpgrp,          /* 8  %d  */
+             &flags,          /* 9  %lu  */
+             &minflt,         /* 10 %lu  */
+             &cminflt,        /* 11 %lu  */
+             &majflt,         /* 12 %lu  */
+             &cmajflt,        /* 13 %lu  */
+             &utime,          /* 14 %lu  */
+             &stime,          /* 15 %lu  */
+             &cutime,         /* 16 %ld  */
+             &cstime,         /* 17 %ld  */
+             &prio,           /* 18 %ld  */
+             &nice,           /* 19 %ld  */
+             &junk,           /* 20 %ld  */
+             &it_real,        /* 21 %ld  */
+             &start,          /* 22 UINTX_FORMAT */
+             &vsize,          /* 23 UINTX_FORMAT */
+             &rss,            /* 24 INTX_FORMAT  */
+             &rsslim,         /* 25 UINTX_FORMAT */
+             &scodes,         /* 26 UINTX_FORMAT */
+             &ecode,          /* 27 UINTX_FORMAT */
+             &stack_start);   /* 28 UINTX_FORMAT */
+      }
+
+#undef _UFM
+#undef _DFM
+
+      if (i != 28 - 2) {
+         assert(false, "Bad conversion from /proc/self/stat");
+         // product mode - assume we are the initial thread, good luck in the
+         // embedded case.
+         warning("Can't detect initial thread stack location - bad conversion");
+         stack_start = (uintptr_t) &rlim;
+      }
+    } else {
+      // For some reason we can't open /proc/self/stat (for example, running on
+      // FreeBSD with a Bsd emulator, or inside chroot), this should work for
+      // most cases, so don't abort:
+      warning("Can't detect initial thread stack location - no /proc/self/stat");
+      stack_start = (uintptr_t) &rlim;
+    }
+  }
+
+  // Now we have a pointer (stack_start) very close to the stack top, the
+  // next thing to do is to figure out the exact location of stack top. We
+  // can find out the virtual memory area that contains stack_start by
+  // reading /proc/self/maps, it should be the last vma in /proc/self/maps,
+  // and its upper limit is the real stack top. (again, this would fail if
+  // running inside chroot, because /proc may not exist.)
+
+  uintptr_t stack_top;
+  address low, high;
+  if (find_vma((address)stack_start, &low, &high)) {
+    // success, "high" is the true stack top. (ignore "low", because initial
+    // thread stack grows on demand, its real bottom is high - RLIMIT_STACK.)
+    stack_top = (uintptr_t)high;
+  } else {
+    // failed, likely because /proc/self/maps does not exist
+    warning("Can't detect initial thread stack location - find_vma failed");
+    // best effort: stack_start is normally within a few pages below the real
+    // stack top, use it as stack top, and reduce stack size so we won't put
+    // guard page outside stack.
+    stack_top = stack_start;
+    stack_size -= 16 * page_size();
+  }
+
+  // stack_top could be partially down the page so align it
+  stack_top = align_size_up(stack_top, page_size());
+
+  if (max_size && stack_size > max_size) {
+     _initial_thread_stack_size = max_size;
+  } else {
+     _initial_thread_stack_size = stack_size;
+  }
+
+  _initial_thread_stack_size = align_size_down(_initial_thread_stack_size, page_size());
+  _initial_thread_stack_bottom = (address)stack_top - _initial_thread_stack_size;
+}
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// time support
+
+// Time since start-up in seconds to a fine granularity.
+// Used by VMSelfDestructTimer and the MemProfiler.
+double os::elapsedTime() {
+
+  return (double)(os::elapsed_counter()) * 0.000001;
+}
+
+jlong os::elapsed_counter() {
+  timeval time;
+  int status = gettimeofday(&time, NULL);
+  return jlong(time.tv_sec) * 1000 * 1000 + jlong(time.tv_usec) - initial_time_count;
+}
+
+jlong os::elapsed_frequency() {
+  return (1000 * 1000);
+}
+
+// XXX: For now, code this as if BSD does not support vtime.
+bool os::supports_vtime() { return false; }
+bool os::enable_vtime()   { return false; }
+bool os::vtime_enabled()  { return false; }
+double os::elapsedVTime() {
+  // better than nothing, but not much
+  return elapsedTime();
+}
+
+jlong os::javaTimeMillis() {
+  timeval time;
+  int status = gettimeofday(&time, NULL);
+  assert(status != -1, "bsd error");
+  return jlong(time.tv_sec) * 1000  +  jlong(time.tv_usec / 1000);
+}
+
+#ifndef CLOCK_MONOTONIC
+#define CLOCK_MONOTONIC (1)
+#endif
+
+#ifdef __APPLE__
+void os::Bsd::clock_init() {
+        // XXXDARWIN: Investigate replacement monotonic clock
+}
+#elif defined(_ALLBSD_SOURCE)
+void os::Bsd::clock_init() {
+  struct timespec res;
+  struct timespec tp;
+  if (::clock_getres(CLOCK_MONOTONIC, &res) == 0 &&
+      ::clock_gettime(CLOCK_MONOTONIC, &tp)  == 0) {
+    // yes, monotonic clock is supported
+    _clock_gettime = ::clock_gettime;
+  }
+}
+#else
+void os::Bsd::clock_init() {
+  // we do dlopen's in this particular order due to bug in bsd
+  // dynamical loader (see 6348968) leading to crash on exit
+  void* handle = dlopen("librt.so.1", RTLD_LAZY);
+  if (handle == NULL) {
+    handle = dlopen("librt.so", RTLD_LAZY);
+  }
+
+  if (handle) {
+    int (*clock_getres_func)(clockid_t, struct timespec*) =
+           (int(*)(clockid_t, struct timespec*))dlsym(handle, "clock_getres");
+    int (*clock_gettime_func)(clockid_t, struct timespec*) =
+           (int(*)(clockid_t, struct timespec*))dlsym(handle, "clock_gettime");
+    if (clock_getres_func && clock_gettime_func) {
+      // See if monotonic clock is supported by the kernel. Note that some
+      // early implementations simply return kernel jiffies (updated every
+      // 1/100 or 1/1000 second). It would be bad to use such a low res clock
+      // for nano time (though the monotonic property is still nice to have).
+      // It's fixed in newer kernels, however clock_getres() still returns
+      // 1/HZ. We check if clock_getres() works, but will ignore its reported
+      // resolution for now. Hopefully as people move to new kernels, this
+      // won't be a problem.
+      struct timespec res;
+      struct timespec tp;
+      if (clock_getres_func (CLOCK_MONOTONIC, &res) == 0 &&
+          clock_gettime_func(CLOCK_MONOTONIC, &tp)  == 0) {
+        // yes, monotonic clock is supported
+        _clock_gettime = clock_gettime_func;
+      } else {
+        // close librt if there is no monotonic clock
+        dlclose(handle);
+      }
+    }
+  }
+}
+#endif
+
+#ifndef _ALLBSD_SOURCE
+#ifndef SYS_clock_getres
+
+#if defined(IA32) || defined(AMD64)
+#define SYS_clock_getres IA32_ONLY(266)  AMD64_ONLY(229)
+#define sys_clock_getres(x,y)  ::syscall(SYS_clock_getres, x, y)
+#else
+#warning "SYS_clock_getres not defined for this platform, disabling fast_thread_cpu_time"
+#define sys_clock_getres(x,y)  -1
+#endif
+
+#else
+#define sys_clock_getres(x,y)  ::syscall(SYS_clock_getres, x, y)
+#endif
+
+void os::Bsd::fast_thread_clock_init() {
+  if (!UseBsdPosixThreadCPUClocks) {
+    return;
+  }
+  clockid_t clockid;
+  struct timespec tp;
+  int (*pthread_getcpuclockid_func)(pthread_t, clockid_t *) =
+      (int(*)(pthread_t, clockid_t *)) dlsym(RTLD_DEFAULT, "pthread_getcpuclockid");
+
+  // Switch to using fast clocks for thread cpu time if
+  // the sys_clock_getres() returns 0 error code.
+  // Note, that some kernels may support the current thread
+  // clock (CLOCK_THREAD_CPUTIME_ID) but not the clocks
+  // returned by the pthread_getcpuclockid().
+  // If the fast Posix clocks are supported then the sys_clock_getres()
+  // must return at least tp.tv_sec == 0 which means a resolution
+  // better than 1 sec. This is extra check for reliability.
+
+  if(pthread_getcpuclockid_func &&
+     pthread_getcpuclockid_func(_main_thread, &clockid) == 0 &&
+     sys_clock_getres(clockid, &tp) == 0 && tp.tv_sec == 0) {
+
+    _supports_fast_thread_cpu_time = true;
+    _pthread_getcpuclockid = pthread_getcpuclockid_func;
+  }
+}
+#endif
+
+jlong os::javaTimeNanos() {
+  if (Bsd::supports_monotonic_clock()) {
+    struct timespec tp;
+    int status = Bsd::clock_gettime(CLOCK_MONOTONIC, &tp);
+    assert(status == 0, "gettime error");
+    jlong result = jlong(tp.tv_sec) * (1000 * 1000 * 1000) + jlong(tp.tv_nsec);
+    return result;
+  } else {
+    timeval time;
+    int status = gettimeofday(&time, NULL);
+    assert(status != -1, "bsd error");
+    jlong usecs = jlong(time.tv_sec) * (1000 * 1000) + jlong(time.tv_usec);
+    return 1000 * usecs;
+  }
+}
+
+void os::javaTimeNanos_info(jvmtiTimerInfo *info_ptr) {
+  if (Bsd::supports_monotonic_clock()) {
+    info_ptr->max_value = ALL_64_BITS;
+
+    // CLOCK_MONOTONIC - amount of time since some arbitrary point in the past
+    info_ptr->may_skip_backward = false;      // not subject to resetting or drifting
+    info_ptr->may_skip_forward = false;       // not subject to resetting or drifting
+  } else {
+    // gettimeofday - based on time in seconds since the Epoch thus does not wrap
+    info_ptr->max_value = ALL_64_BITS;
+
+    // gettimeofday is a real time clock so it skips
+    info_ptr->may_skip_backward = true;
+    info_ptr->may_skip_forward = true;
+  }
+
+  info_ptr->kind = JVMTI_TIMER_ELAPSED;                // elapsed not CPU time
+}
+
+// Return the real, user, and system times in seconds from an
+// arbitrary fixed point in the past.
+bool os::getTimesSecs(double* process_real_time,
+                      double* process_user_time,
+                      double* process_system_time) {
+  struct tms ticks;
+  clock_t real_ticks = times(&ticks);
+
+  if (real_ticks == (clock_t) (-1)) {
+    return false;
+  } else {
+    double ticks_per_second = (double) clock_tics_per_sec;
+    *process_user_time = ((double) ticks.tms_utime) / ticks_per_second;
+    *process_system_time = ((double) ticks.tms_stime) / ticks_per_second;
+    *process_real_time = ((double) real_ticks) / ticks_per_second;
+
+    return true;
+  }
+}
+
+
+char * os::local_time_string(char *buf, size_t buflen) {
+  struct tm t;
+  time_t long_time;
+  time(&long_time);
+  localtime_r(&long_time, &t);
+  jio_snprintf(buf, buflen, "%d-%02d-%02d %02d:%02d:%02d",
+               t.tm_year + 1900, t.tm_mon + 1, t.tm_mday,
+               t.tm_hour, t.tm_min, t.tm_sec);
+  return buf;
+}
+
+struct tm* os::localtime_pd(const time_t* clock, struct tm*  res) {
+  return localtime_r(clock, res);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// runtime exit support
+
+// Note: os::shutdown() might be called very early during initialization, or
+// called from signal handler. Before adding something to os::shutdown(), make
+// sure it is async-safe and can handle partially initialized VM.
+void os::shutdown() {
+
+  // allow PerfMemory to attempt cleanup of any persistent resources
+  perfMemory_exit();
+
+  // needs to remove object in file system
+  AttachListener::abort();
+
+  // flush buffered output, finish log files
+  ostream_abort();
+
+  // Check for abort hook
+  abort_hook_t abort_hook = Arguments::abort_hook();
+  if (abort_hook != NULL) {
+    abort_hook();
+  }
+
+}
+
+// Note: os::abort() might be called very early during initialization, or
+// called from signal handler. Before adding something to os::abort(), make
+// sure it is async-safe and can handle partially initialized VM.
+void os::abort(bool dump_core) {
+  os::shutdown();
+  if (dump_core) {
+#ifndef PRODUCT
+    fdStream out(defaultStream::output_fd());
+    out.print_raw("Current thread is ");
+    char buf[16];
+    jio_snprintf(buf, sizeof(buf), UINTX_FORMAT, os::current_thread_id());
+    out.print_raw_cr(buf);
+    out.print_raw_cr("Dumping core ...");
+#endif
+    ::abort(); // dump core
+  }
+
+  ::exit(1);
+}
+
+// Die immediately, no exit hook, no abort hook, no cleanup.
+void os::die() {
+  // _exit() on BsdThreads only kills current thread
+  ::abort();
+}
+
+// unused on bsd for now.
+void os::set_error_file(const char *logfile) {}
+
+
+// This method is a copy of JDK's sysGetLastErrorString
+// from src/solaris/hpi/src/system_md.c
+
+size_t os::lasterror(char *buf, size_t len) {
+
+  if (errno == 0)  return 0;
+
+  const char *s = ::strerror(errno);
+  size_t n = ::strlen(s);
+  if (n >= len) {
+    n = len - 1;
+  }
+  ::strncpy(buf, s, n);
+  buf[n] = '\0';
+  return n;
+}
+
+intx os::current_thread_id() { return (intx)pthread_self(); }
+int os::current_process_id() {
+
+  // Under the old bsd thread library, bsd gives each thread
+  // its own process id. Because of this each thread will return
+  // a different pid if this method were to return the result
+  // of getpid(2). Bsd provides no api that returns the pid
+  // of the launcher thread for the vm. This implementation
+  // returns a unique pid, the pid of the launcher thread
+  // that starts the vm 'process'.
+
+  // Under the NPTL, getpid() returns the same pid as the
+  // launcher thread rather than a unique pid per thread.
+  // Use gettid() if you want the old pre NPTL behaviour.
+
+  // if you are looking for the result of a call to getpid() that
+  // returns a unique pid for the calling thread, then look at the
+  // OSThread::thread_id() method in osThread_bsd.hpp file
+
+  return (int)(_initial_pid ? _initial_pid : getpid());
+}
+
+// DLL functions
+
+#define JNI_LIB_PREFIX "lib"
+#ifdef __APPLE__
+#define JNI_LIB_SUFFIX ".dylib"
+#else
+#define JNI_LIB_SUFFIX ".so"
+#endif
+
+const char* os::dll_file_extension() { return JNI_LIB_SUFFIX; }
+
+// This must be hard coded because it's the system's temporary
+// directory not the java application's temp directory, ala java.io.tmpdir.
+const char* os::get_temp_directory() { return "/tmp"; }
+
+static bool file_exists(const char* filename) {
+  struct stat statbuf;
+  if (filename == NULL || strlen(filename) == 0) {
+    return false;
+  }
+  return os::stat(filename, &statbuf) == 0;
+}
+
+void os::dll_build_name(char* buffer, size_t buflen,
+                        const char* pname, const char* fname) {
+  // Copied from libhpi
+  const size_t pnamelen = pname ? strlen(pname) : 0;
+
+  // Quietly truncate on buffer overflow.  Should be an error.
+  if (pnamelen + strlen(fname) + strlen(JNI_LIB_PREFIX) + strlen(JNI_LIB_SUFFIX) + 2 > buflen) {
+      *buffer = '\0';
+      return;
+  }
+
+  if (pnamelen == 0) {
+    snprintf(buffer, buflen, JNI_LIB_PREFIX "%s" JNI_LIB_SUFFIX, fname);
+  } else if (strchr(pname, *os::path_separator()) != NULL) {
+    int n;
+    char** pelements = split_path(pname, &n);
+    for (int i = 0 ; i < n ; i++) {
+      // Really shouldn't be NULL, but check can't hurt
+      if (pelements[i] == NULL || strlen(pelements[i]) == 0) {
+        continue; // skip the empty path values
+      }
+      snprintf(buffer, buflen, "%s/" JNI_LIB_PREFIX "%s" JNI_LIB_SUFFIX,
+          pelements[i], fname);
+      if (file_exists(buffer)) {
+        break;
+      }
+    }
+    // release the storage
+    for (int i = 0 ; i < n ; i++) {
+      if (pelements[i] != NULL) {
+        FREE_C_HEAP_ARRAY(char, pelements[i]);
+      }
+    }
+    if (pelements != NULL) {
+      FREE_C_HEAP_ARRAY(char*, pelements);
+    }
+  } else {
+    snprintf(buffer, buflen, "%s/" JNI_LIB_PREFIX "%s" JNI_LIB_SUFFIX, pname, fname);
+  }
+}
+
+const char* os::get_current_directory(char *buf, int buflen) {
+  return getcwd(buf, buflen);
+}
+
+// check if addr is inside libjvm[_g].so
+bool os::address_is_in_vm(address addr) {
+  static address libjvm_base_addr;
+  Dl_info dlinfo;
+
+  if (libjvm_base_addr == NULL) {
+    dladdr(CAST_FROM_FN_PTR(void *, os::address_is_in_vm), &dlinfo);
+    libjvm_base_addr = (address)dlinfo.dli_fbase;
+    assert(libjvm_base_addr !=NULL, "Cannot obtain base address for libjvm");
+  }
+
+  if (dladdr((void *)addr, &dlinfo)) {
+    if (libjvm_base_addr == (address)dlinfo.dli_fbase) return true;
+  }
+
+  return false;
+}
+
+bool os::dll_address_to_function_name(address addr, char *buf,
+                                      int buflen, int *offset) {
+  Dl_info dlinfo;
+
+  if (dladdr((void*)addr, &dlinfo) && dlinfo.dli_sname != NULL) {
+    if (buf != NULL) {
+      if(!Decoder::demangle(dlinfo.dli_sname, buf, buflen)) {
+        jio_snprintf(buf, buflen, "%s", dlinfo.dli_sname);
+      }
+    }
+    if (offset != NULL) *offset = addr - (address)dlinfo.dli_saddr;
+    return true;
+  } else if (dlinfo.dli_fname != NULL && dlinfo.dli_fbase != 0) {
+    if (Decoder::decode((address)(addr - (address)dlinfo.dli_fbase),
+       dlinfo.dli_fname, buf, buflen, offset) == Decoder::no_error) {
+       return true;
+    }
+  }
+
+  if (buf != NULL) buf[0] = '\0';
+  if (offset != NULL) *offset = -1;
+  return false;
+}
+
+#ifdef _ALLBSD_SOURCE
+// ported from solaris version
+bool os::dll_address_to_library_name(address addr, char* buf,
+                                     int buflen, int* offset) {
+  Dl_info dlinfo;
+
+  if (dladdr((void*)addr, &dlinfo)){
+     if (buf) jio_snprintf(buf, buflen, "%s", dlinfo.dli_fname);
+     if (offset) *offset = addr - (address)dlinfo.dli_fbase;
+     return true;
+  } else {
+     if (buf) buf[0] = '\0';
+     if (offset) *offset = -1;
+     return false;
+  }
+}
+#else
+struct _address_to_library_name {
+  address addr;          // input : memory address
+  size_t  buflen;        //         size of fname
+  char*   fname;         // output: library name
+  address base;          //         library base addr
+};
+
+static int address_to_library_name_callback(struct dl_phdr_info *info,
+                                            size_t size, void *data) {
+  int i;
+  bool found = false;
+  address libbase = NULL;
+  struct _address_to_library_name * d = (struct _address_to_library_name *)data;
+
+  // iterate through all loadable segments
+  for (i = 0; i < info->dlpi_phnum; i++) {
+    address segbase = (address)(info->dlpi_addr + info->dlpi_phdr[i].p_vaddr);
+    if (info->dlpi_phdr[i].p_type == PT_LOAD) {
+      // base address of a library is the lowest address of its loaded
+      // segments.
+      if (libbase == NULL || libbase > segbase) {
+        libbase = segbase;
+      }
+      // see if 'addr' is within current segment
+      if (segbase <= d->addr &&
+          d->addr < segbase + info->dlpi_phdr[i].p_memsz) {
+        found = true;
+      }
+    }
+  }
+
+  // dlpi_name is NULL or empty if the ELF file is executable, return 0
+  // so dll_address_to_library_name() can fall through to use dladdr() which
+  // can figure out executable name from argv[0].
+  if (found && info->dlpi_name && info->dlpi_name[0]) {
+    d->base = libbase;
+    if (d->fname) {
+      jio_snprintf(d->fname, d->buflen, "%s", info->dlpi_name);
+    }
+    return 1;
+  }
+  return 0;
+}
+
+bool os::dll_address_to_library_name(address addr, char* buf,
+                                     int buflen, int* offset) {
+  Dl_info dlinfo;
+  struct _address_to_library_name data;
+
+  // There is a bug in old glibc dladdr() implementation that it could resolve
+  // to wrong library name if the .so file has a base address != NULL. Here
+  // we iterate through the program headers of all loaded libraries to find
+  // out which library 'addr' really belongs to. This workaround can be
+  // removed once the minimum requirement for glibc is moved to 2.3.x.
+  data.addr = addr;
+  data.fname = buf;
+  data.buflen = buflen;
+  data.base = NULL;
+  int rslt = dl_iterate_phdr(address_to_library_name_callback, (void *)&data);
+
+  if (rslt) {
+     // buf already contains library name
+     if (offset) *offset = addr - data.base;
+     return true;
+  } else if (dladdr((void*)addr, &dlinfo)){
+     if (buf) jio_snprintf(buf, buflen, "%s", dlinfo.dli_fname);
+     if (offset) *offset = addr - (address)dlinfo.dli_fbase;
+     return true;
+  } else {
+     if (buf) buf[0] = '\0';
+     if (offset) *offset = -1;
+     return false;
+  }
+}
+#endif
+
+  // Loads .dll/.so and
+  // in case of error it checks if .dll/.so was built for the
+  // same architecture as Hotspot is running on
+
+#ifdef __APPLE__
+void * os::dll_load(const char *filename, char *ebuf, int ebuflen) {
+  void * result= ::dlopen(filename, RTLD_LAZY);
+  if (result != NULL) {
+    // Successful loading
+    return result;
+  }
+
+  // Read system error message into ebuf
+  ::strncpy(ebuf, ::dlerror(), ebuflen-1);
+  ebuf[ebuflen-1]='\0';
+
+  return NULL;
+}
+#else
+void * os::dll_load(const char *filename, char *ebuf, int ebuflen)
+{
+  void * result= ::dlopen(filename, RTLD_LAZY);
+  if (result != NULL) {
+    // Successful loading
+    return result;
+  }
+
+  Elf32_Ehdr elf_head;
+
+  // Read system error message into ebuf
+  // It may or may not be overwritten below
+  ::strncpy(ebuf, ::dlerror(), ebuflen-1);
+  ebuf[ebuflen-1]='\0';
+  int diag_msg_max_length=ebuflen-strlen(ebuf);
+  char* diag_msg_buf=ebuf+strlen(ebuf);
+
+  if (diag_msg_max_length==0) {
+    // No more space in ebuf for additional diagnostics message
+    return NULL;
+  }
+
+
+  int file_descriptor= ::open(filename, O_RDONLY | O_NONBLOCK);
+
+  if (file_descriptor < 0) {
+    // Can't open library, report dlerror() message
+    return NULL;
+  }
+
+  bool failed_to_read_elf_head=
+    (sizeof(elf_head)!=
+        (::read(file_descriptor, &elf_head,sizeof(elf_head)))) ;
+
+  ::close(file_descriptor);
+  if (failed_to_read_elf_head) {
+    // file i/o error - report dlerror() msg
+    return NULL;
+  }
+
+  typedef struct {
+    Elf32_Half  code;         // Actual value as defined in elf.h
+    Elf32_Half  compat_class; // Compatibility of archs at VM's sense
+    char        elf_class;    // 32 or 64 bit
+    char        endianess;    // MSB or LSB
+    char*       name;         // String representation
+  } arch_t;
+
+  #ifndef EM_486
+  #define EM_486          6               /* Intel 80486 */
+  #endif
+
+  #ifndef EM_MIPS_RS3_LE
+  #define EM_MIPS_RS3_LE  10              /* MIPS */
+  #endif
+
+  #ifndef EM_PPC64
+  #define EM_PPC64        21              /* PowerPC64 */
+  #endif
+
+  #ifndef EM_S390
+  #define EM_S390         22              /* IBM System/390 */
+  #endif
+
+  #ifndef EM_IA_64
+  #define EM_IA_64        50              /* HP/Intel IA-64 */
+  #endif
+
+  #ifndef EM_X86_64
+  #define EM_X86_64       62              /* AMD x86-64 */
+  #endif
+
+  static const arch_t arch_array[]={
+    {EM_386,         EM_386,     ELFCLASS32, ELFDATA2LSB, (char*)"IA 32"},
+    {EM_486,         EM_386,     ELFCLASS32, ELFDATA2LSB, (char*)"IA 32"},
+    {EM_IA_64,       EM_IA_64,   ELFCLASS64, ELFDATA2LSB, (char*)"IA 64"},
+    {EM_X86_64,      EM_X86_64,  ELFCLASS64, ELFDATA2LSB, (char*)"AMD 64"},
+    {EM_SPARC,       EM_SPARC,   ELFCLASS32, ELFDATA2MSB, (char*)"Sparc 32"},
+    {EM_SPARC32PLUS, EM_SPARC,   ELFCLASS32, ELFDATA2MSB, (char*)"Sparc 32"},
+    {EM_SPARCV9,     EM_SPARCV9, ELFCLASS64, ELFDATA2MSB, (char*)"Sparc v9 64"},
+    {EM_PPC,         EM_PPC,     ELFCLASS32, ELFDATA2MSB, (char*)"Power PC 32"},
+    {EM_PPC64,       EM_PPC64,   ELFCLASS64, ELFDATA2MSB, (char*)"Power PC 64"},
+    {EM_ARM,         EM_ARM,     ELFCLASS32,   ELFDATA2LSB, (char*)"ARM"},
+    {EM_S390,        EM_S390,    ELFCLASSNONE, ELFDATA2MSB, (char*)"IBM System/390"},
+    {EM_ALPHA,       EM_ALPHA,   ELFCLASS64, ELFDATA2LSB, (char*)"Alpha"},
+    {EM_MIPS_RS3_LE, EM_MIPS_RS3_LE, ELFCLASS32, ELFDATA2LSB, (char*)"MIPSel"},
+    {EM_MIPS,        EM_MIPS,    ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"},
+    {EM_PARISC,      EM_PARISC,  ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"},
+    {EM_68K,         EM_68K,     ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}
+  };
+
+  #if  (defined IA32)
+    static  Elf32_Half running_arch_code=EM_386;
+  #elif   (defined AMD64)
+    static  Elf32_Half running_arch_code=EM_X86_64;
+  #elif  (defined IA64)
+    static  Elf32_Half running_arch_code=EM_IA_64;
+  #elif  (defined __sparc) && (defined _LP64)
+    static  Elf32_Half running_arch_code=EM_SPARCV9;
+  #elif  (defined __sparc) && (!defined _LP64)
+    static  Elf32_Half running_arch_code=EM_SPARC;
+  #elif  (defined __powerpc64__)
+    static  Elf32_Half running_arch_code=EM_PPC64;
+  #elif  (defined __powerpc__)
+    static  Elf32_Half running_arch_code=EM_PPC;
+  #elif  (defined ARM)
+    static  Elf32_Half running_arch_code=EM_ARM;
+  #elif  (defined S390)
+    static  Elf32_Half running_arch_code=EM_S390;
+  #elif  (defined ALPHA)
+    static  Elf32_Half running_arch_code=EM_ALPHA;
+  #elif  (defined MIPSEL)
+    static  Elf32_Half running_arch_code=EM_MIPS_RS3_LE;
+  #elif  (defined PARISC)
+    static  Elf32_Half running_arch_code=EM_PARISC;
+  #elif  (defined MIPS)
+    static  Elf32_Half running_arch_code=EM_MIPS;
+  #elif  (defined M68K)
+    static  Elf32_Half running_arch_code=EM_68K;
+  #else
+    #error Method os::dll_load requires that one of following is defined:\
+         IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K
+  #endif
+
+  // Identify compatability class for VM's architecture and library's architecture
+  // Obtain string descriptions for architectures
+
+  arch_t lib_arch={elf_head.e_machine,0,elf_head.e_ident[EI_CLASS], elf_head.e_ident[EI_DATA], NULL};
+  int running_arch_index=-1;
+
+  for (unsigned int i=0 ; i < ARRAY_SIZE(arch_array) ; i++ ) {
+    if (running_arch_code == arch_array[i].code) {
+      running_arch_index    = i;
+    }
+    if (lib_arch.code == arch_array[i].code) {
+      lib_arch.compat_class = arch_array[i].compat_class;
+      lib_arch.name         = arch_array[i].name;
+    }
+  }
+
+  assert(running_arch_index != -1,
+    "Didn't find running architecture code (running_arch_code) in arch_array");
+  if (running_arch_index == -1) {
+    // Even though running architecture detection failed
+    // we may still continue with reporting dlerror() message
+    return NULL;
+  }
+
+  if (lib_arch.endianess != arch_array[running_arch_index].endianess) {
+    ::snprintf(diag_msg_buf, diag_msg_max_length-1," (Possible cause: endianness mismatch)");
+    return NULL;
+  }
+
+#ifndef S390
+  if (lib_arch.elf_class != arch_array[running_arch_index].elf_class) {
+    ::snprintf(diag_msg_buf, diag_msg_max_length-1," (Possible cause: architecture word width mismatch)");
+    return NULL;
+  }
+#endif // !S390
+
+  if (lib_arch.compat_class != arch_array[running_arch_index].compat_class) {
+    if ( lib_arch.name!=NULL ) {
+      ::snprintf(diag_msg_buf, diag_msg_max_length-1,
+        " (Possible cause: can't load %s-bit .so on a %s-bit platform)",
+        lib_arch.name, arch_array[running_arch_index].name);
+    } else {
+      ::snprintf(diag_msg_buf, diag_msg_max_length-1,
+      " (Possible cause: can't load this .so (machine code=0x%x) on a %s-bit platform)",
+        lib_arch.code,
+        arch_array[running_arch_index].name);
+    }
+  }
+
+  return NULL;
+}
+#endif /* !__APPLE__ */
+
+// XXX: Do we need a lock around this as per Linux?
+void* os::dll_lookup(void* handle, const char* name) {
+  return dlsym(handle, name);
+}
+
+
+static bool _print_ascii_file(const char* filename, outputStream* st) {
+  int fd = ::open(filename, O_RDONLY);
+  if (fd == -1) {
+     return false;
+  }
+
+  char buf[32];
+  int bytes;
+  while ((bytes = ::read(fd, buf, sizeof(buf))) > 0) {
+    st->print_raw(buf, bytes);
+  }
+
+  ::close(fd);
+
+  return true;
+}
+
+void os::print_dll_info(outputStream *st) {
+   st->print_cr("Dynamic libraries:");
+#ifdef _ALLBSD_SOURCE
+#ifdef RTLD_DI_LINKMAP
+    Dl_info dli;
+    void *handle;
+    Link_map *map;
+    Link_map *p;
+
+    if (!dladdr(CAST_FROM_FN_PTR(void *, os::print_dll_info), &dli)) {
+        st->print_cr("Error: Cannot print dynamic libraries.");
+        return;
+    }
+    handle = dlopen(dli.dli_fname, RTLD_LAZY);
+    if (handle == NULL) {
+        st->print_cr("Error: Cannot print dynamic libraries.");
+        return;
+    }
+    dlinfo(handle, RTLD_DI_LINKMAP, &map);
+    if (map == NULL) {
+        st->print_cr("Error: Cannot print dynamic libraries.");
+        return;
+    }
+
+    while (map->l_prev != NULL)
+        map = map->l_prev;
+
+    while (map != NULL) {
+        st->print_cr(PTR_FORMAT " \t%s", map->l_addr, map->l_name);
+        map = map->l_next;
+    }
+
+    dlclose(handle);
+#elif defined(__APPLE__)
+    uint32_t count;
+    uint32_t i;
+
+    count = _dyld_image_count();
+    for (i = 1; i < count; i++) {
+        const char *name = _dyld_get_image_name(i);
+        intptr_t slide = _dyld_get_image_vmaddr_slide(i);
+        st->print_cr(PTR_FORMAT " \t%s", slide, name);
+    }
+#else
+   st->print_cr("Error: Cannot print dynamic libraries.");
+#endif
+#else
+   char fname[32];
+   pid_t pid = os::Bsd::gettid();
+
+   jio_snprintf(fname, sizeof(fname), "/proc/%d/maps", pid);
+
+   if (!_print_ascii_file(fname, st)) {
+     st->print("Can not get library information for pid = %d\n", pid);
+   }
+#endif
+}
+
+
+void os::print_os_info(outputStream* st) {
+  st->print("OS:");
+
+  // Try to identify popular distros.
+  // Most Bsd distributions have /etc/XXX-release file, which contains
+  // the OS version string. Some have more than one /etc/XXX-release file
+  // (e.g. Mandrake has both /etc/mandrake-release and /etc/redhat-release.),
+  // so the order is important.
+  if (!_print_ascii_file("/etc/mandrake-release", st) &&
+      !_print_ascii_file("/etc/sun-release", st) &&
+      !_print_ascii_file("/etc/redhat-release", st) &&
+      !_print_ascii_file("/etc/SuSE-release", st) &&
+      !_print_ascii_file("/etc/turbobsd-release", st) &&
+      !_print_ascii_file("/etc/gentoo-release", st) &&
+      !_print_ascii_file("/etc/debian_version", st) &&
+      !_print_ascii_file("/etc/ltib-release", st) &&
+      !_print_ascii_file("/etc/angstrom-version", st)) {
+      st->print("Bsd");
+  }
+  st->cr();
+
+  // kernel
+  st->print("uname:");
+  struct utsname name;
+  uname(&name);
+  st->print(name.sysname); st->print(" ");
+  st->print(name.release); st->print(" ");
+  st->print(name.version); st->print(" ");
+  st->print(name.machine);
+  st->cr();
+
+#ifndef _ALLBSD_SOURCE
+  // Print warning if unsafe chroot environment detected
+  if (unsafe_chroot_detected) {
+    st->print("WARNING!! ");
+    st->print_cr(unstable_chroot_error);
+  }
+
+  // libc, pthread
+  st->print("libc:");
+  st->print(os::Bsd::glibc_version()); st->print(" ");
+  st->print(os::Bsd::libpthread_version()); st->print(" ");
+  if (os::Bsd::is_BsdThreads()) {
+     st->print("(%s stack)", os::Bsd::is_floating_stack() ? "floating" : "fixed");
+  }
+  st->cr();
+#endif
+
+  // rlimit
+  st->print("rlimit:");
+  struct rlimit rlim;
+
+  st->print(" STACK ");
+  getrlimit(RLIMIT_STACK, &rlim);
+  if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
+  else st->print("%uk", rlim.rlim_cur >> 10);
+
+  st->print(", CORE ");
+  getrlimit(RLIMIT_CORE, &rlim);
+  if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
+  else st->print("%uk", rlim.rlim_cur >> 10);
+
+  st->print(", NPROC ");
+  getrlimit(RLIMIT_NPROC, &rlim);
+  if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
+  else st->print("%d", rlim.rlim_cur);
+
+  st->print(", NOFILE ");
+  getrlimit(RLIMIT_NOFILE, &rlim);
+  if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
+  else st->print("%d", rlim.rlim_cur);
+
+#ifndef _ALLBSD_SOURCE
+  st->print(", AS ");
+  getrlimit(RLIMIT_AS, &rlim);
+  if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
+  else st->print("%uk", rlim.rlim_cur >> 10);
+  st->cr();
+
+  // load average
+  st->print("load average:");
+  double loadavg[3];
+  os::loadavg(loadavg, 3);
+  st->print("%0.02f %0.02f %0.02f", loadavg[0], loadavg[1], loadavg[2]);
+  st->cr();
+#endif
+}
+
+void os::pd_print_cpu_info(outputStream* st) {
+  // Nothing to do for now.
+}
+
+void os::print_memory_info(outputStream* st) {
+
+  st->print("Memory:");
+  st->print(" %dk page", os::vm_page_size()>>10);
+
+#ifndef _ALLBSD_SOURCE
+  // values in struct sysinfo are "unsigned long"
+  struct sysinfo si;
+  sysinfo(&si);
+#endif
+
+  st->print(", physical " UINT64_FORMAT "k",
+            os::physical_memory() >> 10);
+  st->print("(" UINT64_FORMAT "k free)",
+            os::available_memory() >> 10);
+#ifndef _ALLBSD_SOURCE
+  st->print(", swap " UINT64_FORMAT "k",
+            ((jlong)si.totalswap * si.mem_unit) >> 10);
+  st->print("(" UINT64_FORMAT "k free)",
+            ((jlong)si.freeswap * si.mem_unit) >> 10);
+#endif
+  st->cr();
+
+  // meminfo
+  st->print("\n/proc/meminfo:\n");
+  _print_ascii_file("/proc/meminfo", st);
+  st->cr();
+}
+
+// Taken from /usr/include/bits/siginfo.h  Supposed to be architecture specific
+// but they're the same for all the bsd arch that we support
+// and they're the same for solaris but there's no common place to put this.
+const char *ill_names[] = { "ILL0", "ILL_ILLOPC", "ILL_ILLOPN", "ILL_ILLADR",
+                          "ILL_ILLTRP", "ILL_PRVOPC", "ILL_PRVREG",
+                          "ILL_COPROC", "ILL_BADSTK" };
+
+const char *fpe_names[] = { "FPE0", "FPE_INTDIV", "FPE_INTOVF", "FPE_FLTDIV",
+                          "FPE_FLTOVF", "FPE_FLTUND", "FPE_FLTRES",
+                          "FPE_FLTINV", "FPE_FLTSUB", "FPE_FLTDEN" };
+
+const char *segv_names[] = { "SEGV0", "SEGV_MAPERR", "SEGV_ACCERR" };
+
+const char *bus_names[] = { "BUS0", "BUS_ADRALN", "BUS_ADRERR", "BUS_OBJERR" };
+
+void os::print_siginfo(outputStream* st, void* siginfo) {
+  st->print("siginfo:");
+
+  const int buflen = 100;
+  char buf[buflen];
+  siginfo_t *si = (siginfo_t*)siginfo;
+  st->print("si_signo=%s: ", os::exception_name(si->si_signo, buf, buflen));
+  if (si->si_errno != 0 && strerror_r(si->si_errno, buf, buflen) == 0) {
+    st->print("si_errno=%s", buf);
+  } else {
+    st->print("si_errno=%d", si->si_errno);
+  }
+  const int c = si->si_code;
+  assert(c > 0, "unexpected si_code");
+  switch (si->si_signo) {
+  case SIGILL:
+    st->print(", si_code=%d (%s)", c, c > 8 ? "" : ill_names[c]);
+    st->print(", si_addr=" PTR_FORMAT, si->si_addr);
+    break;
+  case SIGFPE:
+    st->print(", si_code=%d (%s)", c, c > 9 ? "" : fpe_names[c]);
+    st->print(", si_addr=" PTR_FORMAT, si->si_addr);
+    break;
+  case SIGSEGV:
+    st->print(", si_code=%d (%s)", c, c > 2 ? "" : segv_names[c]);
+    st->print(", si_addr=" PTR_FORMAT, si->si_addr);
+    break;
+  case SIGBUS:
+    st->print(", si_code=%d (%s)", c, c > 3 ? "" : bus_names[c]);
+    st->print(", si_addr=" PTR_FORMAT, si->si_addr);
+    break;
+  default:
+    st->print(", si_code=%d", si->si_code);
+    // no si_addr
+  }
+
+  if ((si->si_signo == SIGBUS || si->si_signo == SIGSEGV) &&
+      UseSharedSpaces) {
+    FileMapInfo* mapinfo = FileMapInfo::current_info();
+    if (mapinfo->is_in_shared_space(si->si_addr)) {
+      st->print("\n\nError accessing class data sharing archive."   \
+                " Mapped file inaccessible during execution, "      \
+                " possible disk/network problem.");
+    }
+  }
+  st->cr();
+}
+
+
+static void print_signal_handler(outputStream* st, int sig,
+                                 char* buf, size_t buflen);
+
+void os::print_signal_handlers(outputStream* st, char* buf, size_t buflen) {
+  st->print_cr("Signal Handlers:");
+  print_signal_handler(st, SIGSEGV, buf, buflen);
+  print_signal_handler(st, SIGBUS , buf, buflen);
+  print_signal_handler(st, SIGFPE , buf, buflen);
+  print_signal_handler(st, SIGPIPE, buf, buflen);
+  print_signal_handler(st, SIGXFSZ, buf, buflen);
+  print_signal_handler(st, SIGILL , buf, buflen);
+  print_signal_handler(st, INTERRUPT_SIGNAL, buf, buflen);
+  print_signal_handler(st, SR_signum, buf, buflen);
+  print_signal_handler(st, SHUTDOWN1_SIGNAL, buf, buflen);
+  print_signal_handler(st, SHUTDOWN2_SIGNAL , buf, buflen);
+  print_signal_handler(st, SHUTDOWN3_SIGNAL , buf, buflen);
+  print_signal_handler(st, BREAK_SIGNAL, buf, buflen);
+}
+
+static char saved_jvm_path[MAXPATHLEN] = {0};
+
+// Find the full path to the current module, libjvm.so or libjvm_g.so
+void os::jvm_path(char *buf, jint buflen) {
+  // Error checking.
+  if (buflen < MAXPATHLEN) {
+    assert(false, "must use a large-enough buffer");
+    buf[0] = '\0';
+    return;
+  }
+  // Lazy resolve the path to current module.
+  if (saved_jvm_path[0] != 0) {
+    strcpy(buf, saved_jvm_path);
+    return;
+  }
+
+  char dli_fname[MAXPATHLEN];
+  bool ret = dll_address_to_library_name(
+                CAST_FROM_FN_PTR(address, os::jvm_path),
+                dli_fname, sizeof(dli_fname), NULL);
+  assert(ret != 0, "cannot locate libjvm");
+  char *rp = realpath(dli_fname, buf);
+  if (rp == NULL)
+    return;
+
+  if (Arguments::created_by_gamma_launcher()) {
+    // Support for the gamma launcher.  Typical value for buf is
+    // "<JAVA_HOME>/jre/lib/<arch>/<vmtype>/libjvm.so".  If "/jre/lib/" appears at
+    // the right place in the string, then assume we are installed in a JDK and
+    // we're done.  Otherwise, check for a JAVA_HOME environment variable and fix
+    // up the path so it looks like libjvm.so is installed there (append a
+    // fake suffix hotspot/libjvm.so).
+    const char *p = buf + strlen(buf) - 1;
+    for (int count = 0; p > buf && count < 5; ++count) {
+      for (--p; p > buf && *p != '/'; --p)
+        /* empty */ ;
+    }
+
+    if (strncmp(p, "/jre/lib/", 9) != 0) {
+      // Look for JAVA_HOME in the environment.
+      char* java_home_var = ::getenv("JAVA_HOME");
+      if (java_home_var != NULL && java_home_var[0] != 0) {
+        char* jrelib_p;
+        int len;
+
+        // Check the current module name "libjvm.so" or "libjvm_g.so".
+        p = strrchr(buf, '/');
+        assert(strstr(p, "/libjvm") == p, "invalid library name");
+        p = strstr(p, "_g") ? "_g" : "";
+
+        rp = realpath(java_home_var, buf);
+        if (rp == NULL)
+          return;
+
+        // determine if this is a legacy image or modules image
+        // modules image doesn't have "jre" subdirectory
+        len = strlen(buf);
+        jrelib_p = buf + len;
+        snprintf(jrelib_p, buflen-len, "/jre/lib/%s", cpu_arch);
+        if (0 != access(buf, F_OK)) {
+          snprintf(jrelib_p, buflen-len, "/lib/%s", cpu_arch);
+        }
+
+        if (0 == access(buf, F_OK)) {
+          // Use current module name "libjvm[_g].so" instead of
+          // "libjvm"debug_only("_g")".so" since for fastdebug version
+          // we should have "libjvm.so" but debug_only("_g") adds "_g"!
+          len = strlen(buf);
+          snprintf(buf + len, buflen-len, "/hotspot/libjvm%s.so", p);
+        } else {
+          // Go back to path of .so
+          rp = realpath(dli_fname, buf);
+          if (rp == NULL)
+            return;
+        }
+      }
+    }
+  }
+
+  strcpy(saved_jvm_path, buf);
+}
+
+void os::print_jni_name_prefix_on(outputStream* st, int args_size) {
+  // no prefix required, not even "_"
+}
+
+void os::print_jni_name_suffix_on(outputStream* st, int args_size) {
+  // no suffix required
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// sun.misc.Signal support
+
+static volatile jint sigint_count = 0;
+
+static void
+UserHandler(int sig, void *siginfo, void *context) {
+  // 4511530 - sem_post is serialized and handled by the manager thread. When
+  // the program is interrupted by Ctrl-C, SIGINT is sent to every thread. We
+  // don't want to flood the manager thread with sem_post requests.
+  if (sig == SIGINT && Atomic::add(1, &sigint_count) > 1)
+      return;
+
+  // Ctrl-C is pressed during error reporting, likely because the error
+  // handler fails to abort. Let VM die immediately.
+  if (sig == SIGINT && is_error_reported()) {
+     os::die();
+  }
+
+  os::signal_notify(sig);
+}
+
+void* os::user_handler() {
+  return CAST_FROM_FN_PTR(void*, UserHandler);
+}
+
+extern "C" {
+  typedef void (*sa_handler_t)(int);
+  typedef void (*sa_sigaction_t)(int, siginfo_t *, void *);
+}
+
+void* os::signal(int signal_number, void* handler) {
+  struct sigaction sigAct, oldSigAct;
+
+  sigfillset(&(sigAct.sa_mask));
+  sigAct.sa_flags   = SA_RESTART|SA_SIGINFO;
+  sigAct.sa_handler = CAST_TO_FN_PTR(sa_handler_t, handler);
+
+  if (sigaction(signal_number, &sigAct, &oldSigAct)) {
+    // -1 means registration failed
+    return (void *)-1;
+  }
+
+  return CAST_FROM_FN_PTR(void*, oldSigAct.sa_handler);
+}
+
+void os::signal_raise(int signal_number) {
+  ::raise(signal_number);
+}
+
+/*
+ * The following code is moved from os.cpp for making this
+ * code platform specific, which it is by its very nature.
+ */
+
+// Will be modified when max signal is changed to be dynamic
+int os::sigexitnum_pd() {
+  return NSIG;
+}
+
+// a counter for each possible signal value
+static volatile jint pending_signals[NSIG+1] = { 0 };
+
+// Bsd(POSIX) specific hand shaking semaphore.
+#ifdef __APPLE__
+static semaphore_t sig_sem;
+#define SEM_INIT(sem, value)    semaphore_create(mach_task_self(), &sem, SYNC_POLICY_FIFO, value)
+#define SEM_WAIT(sem)           semaphore_wait(sem);
+#define SEM_POST(sem)           semaphore_signal(sem);
+#else
+static sem_t sig_sem;
+#define SEM_INIT(sem, value)    sem_init(&sem, 0, value)
+#define SEM_WAIT(sem)           sem_wait(&sem);
+#define SEM_POST(sem)           sem_post(&sem);
+#endif
+
+void os::signal_init_pd() {
+  // Initialize signal structures
+  ::memset((void*)pending_signals, 0, sizeof(pending_signals));
+
+  // Initialize signal semaphore
+  ::SEM_INIT(sig_sem, 0);
+}
+
+void os::signal_notify(int sig) {
+  Atomic::inc(&pending_signals[sig]);
+  ::SEM_POST(sig_sem);
+}
+
+static int check_pending_signals(bool wait) {
+  Atomic::store(0, &sigint_count);
+  for (;;) {
+    for (int i = 0; i < NSIG + 1; i++) {
+      jint n = pending_signals[i];
+      if (n > 0 && n == Atomic::cmpxchg(n - 1, &pending_signals[i], n)) {
+        return i;
+      }
+    }
+    if (!wait) {
+      return -1;
+    }
+    JavaThread *thread = JavaThread::current();
+    ThreadBlockInVM tbivm(thread);
+
+    bool threadIsSuspended;
+    do {
+      thread->set_suspend_equivalent();
+      // cleared by handle_special_suspend_equivalent_condition() or java_suspend_self()
+      ::SEM_WAIT(sig_sem);
+
+      // were we externally suspended while we were waiting?
+      threadIsSuspended = thread->handle_special_suspend_equivalent_condition();
+      if (threadIsSuspended) {
+        //
+        // The semaphore has been incremented, but while we were waiting
+        // another thread suspended us. We don't want to continue running
+        // while suspended because that would surprise the thread that
+        // suspended us.
+        //
+        ::SEM_POST(sig_sem);
+
+        thread->java_suspend_self();
+      }
+    } while (threadIsSuspended);
+  }
+}
+
+int os::signal_lookup() {
+  return check_pending_signals(false);
+}
+
+int os::signal_wait() {
+  return check_pending_signals(true);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Virtual Memory
+
+int os::vm_page_size() {
+  // Seems redundant as all get out
+  assert(os::Bsd::page_size() != -1, "must call os::init");
+  return os::Bsd::page_size();
+}
+
+// Solaris allocates memory by pages.
+int os::vm_allocation_granularity() {
+  assert(os::Bsd::page_size() != -1, "must call os::init");
+  return os::Bsd::page_size();
+}
+
+// Rationale behind this function:
+//  current (Mon Apr 25 20:12:18 MSD 2005) oprofile drops samples without executable
+//  mapping for address (see lookup_dcookie() in the kernel module), thus we cannot get
+//  samples for JITted code. Here we create private executable mapping over the code cache
+//  and then we can use standard (well, almost, as mapping can change) way to provide
+//  info for the reporting script by storing timestamp and location of symbol
+void bsd_wrap_code(char* base, size_t size) {
+  static volatile jint cnt = 0;
+
+  if (!UseOprofile) {
+    return;
+  }
+
+  char buf[PATH_MAX + 1];
+  int num = Atomic::add(1, &cnt);
+
+  snprintf(buf, PATH_MAX + 1, "%s/hs-vm-%d-%d",
+           os::get_temp_directory(), os::current_process_id(), num);
+  unlink(buf);
+
+  int fd = ::open(buf, O_CREAT | O_RDWR, S_IRWXU);
+
+  if (fd != -1) {
+    off_t rv = ::lseek(fd, size-2, SEEK_SET);
+    if (rv != (off_t)-1) {
+      if (::write(fd, "", 1) == 1) {
+        mmap(base, size,
+             PROT_READ|PROT_WRITE|PROT_EXEC,
+             MAP_PRIVATE|MAP_FIXED|MAP_NORESERVE, fd, 0);
+      }
+    }
+    ::close(fd);
+    unlink(buf);
+  }
+}
+
+// NOTE: Bsd kernel does not really reserve the pages for us.
+//       All it does is to check if there are enough free pages
+//       left at the time of mmap(). This could be a potential
+//       problem.
+bool os::commit_memory(char* addr, size_t size, bool exec) {
+  int prot = exec ? PROT_READ|PROT_WRITE|PROT_EXEC : PROT_READ|PROT_WRITE;
+#ifdef __OpenBSD__
+  // XXX: Work-around mmap/MAP_FIXED bug temporarily on OpenBSD
+  return ::mprotect(addr, size, prot) == 0;
+#else
+  uintptr_t res = (uintptr_t) ::mmap(addr, size, prot,
+                                   MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0);
+  return res != (uintptr_t) MAP_FAILED;
+#endif
+}
+
+#ifndef _ALLBSD_SOURCE
+// Define MAP_HUGETLB here so we can build HotSpot on old systems.
+#ifndef MAP_HUGETLB
+#define MAP_HUGETLB 0x40000
+#endif
+
+// Define MADV_HUGEPAGE here so we can build HotSpot on old systems.
+#ifndef MADV_HUGEPAGE
+#define MADV_HUGEPAGE 14
+#endif
+#endif
+
+bool os::commit_memory(char* addr, size_t size, size_t alignment_hint,
+                       bool exec) {
+#ifndef _ALLBSD_SOURCE
+  if (UseHugeTLBFS && alignment_hint > (size_t)vm_page_size()) {
+    int prot = exec ? PROT_READ|PROT_WRITE|PROT_EXEC : PROT_READ|PROT_WRITE;
+    uintptr_t res =
+      (uintptr_t) ::mmap(addr, size, prot,
+                         MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_HUGETLB,
+                         -1, 0);
+    return res != (uintptr_t) MAP_FAILED;
+  }
+#endif
+
+  return commit_memory(addr, size, exec);
+}
+
+void os::realign_memory(char *addr, size_t bytes, size_t alignment_hint) {
+#ifndef _ALLBSD_SOURCE
+  if (UseHugeTLBFS && alignment_hint > (size_t)vm_page_size()) {
+    // We don't check the return value: madvise(MADV_HUGEPAGE) may not
+    // be supported or the memory may already be backed by huge pages.
+    ::madvise(addr, bytes, MADV_HUGEPAGE);
+  }
+#endif
+}
+
+void os::free_memory(char *addr, size_t bytes) {
+  ::madvise(addr, bytes, MADV_DONTNEED);
+}
+
+void os::numa_make_global(char *addr, size_t bytes) {
+}
+
+void os::numa_make_local(char *addr, size_t bytes, int lgrp_hint) {
+}
+
+bool os::numa_topology_changed()   { return false; }
+
+size_t os::numa_get_groups_num() {
+  return 1;
+}
+
+int os::numa_get_group_id() {
+  return 0;
+}
+
+size_t os::numa_get_leaf_groups(int *ids, size_t size) {
+  if (size > 0) {
+    ids[0] = 0;
+    return 1;
+  }
+  return 0;
+}
+
+bool os::get_page_info(char *start, page_info* info) {
+  return false;
+}
+
+char *os::scan_pages(char *start, char* end, page_info* page_expected, page_info* page_found) {
+  return end;
+}
+
+#ifndef _ALLBSD_SOURCE
+// Something to do with the numa-aware allocator needs these symbols
+extern "C" JNIEXPORT void numa_warn(int number, char *where, ...) { }
+extern "C" JNIEXPORT void numa_error(char *where) { }
+extern "C" JNIEXPORT int fork1() { return fork(); }
+
+
+// If we are running with libnuma version > 2, then we should
+// be trying to use symbols with versions 1.1
+// If we are running with earlier version, which did not have symbol versions,
+// we should use the base version.
+void* os::Bsd::libnuma_dlsym(void* handle, const char *name) {
+  void *f = dlvsym(handle, name, "libnuma_1.1");
+  if (f == NULL) {
+    f = dlsym(handle, name);
+  }
+  return f;
+}
+
+bool os::Bsd::libnuma_init() {
+  // sched_getcpu() should be in libc.
+  set_sched_getcpu(CAST_TO_FN_PTR(sched_getcpu_func_t,
+                                  dlsym(RTLD_DEFAULT, "sched_getcpu")));
+
+  if (sched_getcpu() != -1) { // Does it work?
+    void *handle = dlopen("libnuma.so.1", RTLD_LAZY);
+    if (handle != NULL) {
+      set_numa_node_to_cpus(CAST_TO_FN_PTR(numa_node_to_cpus_func_t,
+                                           libnuma_dlsym(handle, "numa_node_to_cpus")));
+      set_numa_max_node(CAST_TO_FN_PTR(numa_max_node_func_t,
+                                       libnuma_dlsym(handle, "numa_max_node")));
+      set_numa_available(CAST_TO_FN_PTR(numa_available_func_t,
+                                        libnuma_dlsym(handle, "numa_available")));
+      set_numa_tonode_memory(CAST_TO_FN_PTR(numa_tonode_memory_func_t,
+                                            libnuma_dlsym(handle, "numa_tonode_memory")));
+      set_numa_interleave_memory(CAST_TO_FN_PTR(numa_interleave_memory_func_t,
+                                            libnuma_dlsym(handle, "numa_interleave_memory")));
+
+
+      if (numa_available() != -1) {
+        set_numa_all_nodes((unsigned long*)libnuma_dlsym(handle, "numa_all_nodes"));
+        // Create a cpu -> node mapping
+        _cpu_to_node = new (ResourceObj::C_HEAP) GrowableArray<int>(0, true);
+        rebuild_cpu_to_node_map();
+        return true;
+      }
+    }
+  }
+  return false;
+}
+
+// rebuild_cpu_to_node_map() constructs a table mapping cpud id to node id.
+// The table is later used in get_node_by_cpu().
+void os::Bsd::rebuild_cpu_to_node_map() {
+  const size_t NCPUS = 32768; // Since the buffer size computation is very obscure
+                              // in libnuma (possible values are starting from 16,
+                              // and continuing up with every other power of 2, but less
+                              // than the maximum number of CPUs supported by kernel), and
+                              // is a subject to change (in libnuma version 2 the requirements
+                              // are more reasonable) we'll just hardcode the number they use
+                              // in the library.
+  const size_t BitsPerCLong = sizeof(long) * CHAR_BIT;
+
+  size_t cpu_num = os::active_processor_count();
+  size_t cpu_map_size = NCPUS / BitsPerCLong;
+  size_t cpu_map_valid_size =
+    MIN2((cpu_num + BitsPerCLong - 1) / BitsPerCLong, cpu_map_size);
+
+  cpu_to_node()->clear();
+  cpu_to_node()->at_grow(cpu_num - 1);
+  size_t node_num = numa_get_groups_num();
+
+  unsigned long *cpu_map = NEW_C_HEAP_ARRAY(unsigned long, cpu_map_size);
+  for (size_t i = 0; i < node_num; i++) {
+    if (numa_node_to_cpus(i, cpu_map, cpu_map_size * sizeof(unsigned long)) != -1) {
+      for (size_t j = 0; j < cpu_map_valid_size; j++) {
+        if (cpu_map[j] != 0) {
+          for (size_t k = 0; k < BitsPerCLong; k++) {
+            if (cpu_map[j] & (1UL << k)) {
+              cpu_to_node()->at_put(j * BitsPerCLong + k, i);
+            }
+          }
+        }
+      }
+    }
+  }
+  FREE_C_HEAP_ARRAY(unsigned long, cpu_map);
+}
+
+int os::Bsd::get_node_by_cpu(int cpu_id) {
+  if (cpu_to_node() != NULL && cpu_id >= 0 && cpu_id < cpu_to_node()->length()) {
+    return cpu_to_node()->at(cpu_id);
+  }
+  return -1;
+}
+
+GrowableArray<int>* os::Bsd::_cpu_to_node;
+os::Bsd::sched_getcpu_func_t os::Bsd::_sched_getcpu;
+os::Bsd::numa_node_to_cpus_func_t os::Bsd::_numa_node_to_cpus;
+os::Bsd::numa_max_node_func_t os::Bsd::_numa_max_node;
+os::Bsd::numa_available_func_t os::Bsd::_numa_available;
+os::Bsd::numa_tonode_memory_func_t os::Bsd::_numa_tonode_memory;
+os::Bsd::numa_interleave_memory_func_t os::Bsd::_numa_interleave_memory;
+unsigned long* os::Bsd::_numa_all_nodes;
+#endif
+
+bool os::uncommit_memory(char* addr, size_t size) {
+#ifdef __OpenBSD__
+  // XXX: Work-around mmap/MAP_FIXED bug temporarily on OpenBSD
+  return ::mprotect(addr, size, PROT_NONE) == 0;
+#else
+  uintptr_t res = (uintptr_t) ::mmap(addr, size, PROT_NONE,
+                MAP_PRIVATE|MAP_FIXED|MAP_NORESERVE|MAP_ANONYMOUS, -1, 0);
+  return res  != (uintptr_t) MAP_FAILED;
+#endif
+}
+
+bool os::create_stack_guard_pages(char* addr, size_t size) {
+  return os::commit_memory(addr, size);
+}
+
+// If this is a growable mapping, remove the guard pages entirely by
+// munmap()ping them.  If not, just call uncommit_memory().
+bool os::remove_stack_guard_pages(char* addr, size_t size) {
+  return os::uncommit_memory(addr, size);
+}
+
+static address _highest_vm_reserved_address = NULL;
+
+// If 'fixed' is true, anon_mmap() will attempt to reserve anonymous memory
+// at 'requested_addr'. If there are existing memory mappings at the same
+// location, however, they will be overwritten. If 'fixed' is false,
+// 'requested_addr' is only treated as a hint, the return value may or
+// may not start from the requested address. Unlike Bsd mmap(), this
+// function returns NULL to indicate failure.
+static char* anon_mmap(char* requested_addr, size_t bytes, bool fixed) {
+  char * addr;
+  int flags;
+
+  flags = MAP_PRIVATE | MAP_NORESERVE | MAP_ANONYMOUS;
+  if (fixed) {
+    assert((uintptr_t)requested_addr % os::Bsd::page_size() == 0, "unaligned address");
+    flags |= MAP_FIXED;
+  }
+
+  // Map uncommitted pages PROT_READ and PROT_WRITE, change access
+  // to PROT_EXEC if executable when we commit the page.
+  addr = (char*)::mmap(requested_addr, bytes, PROT_READ|PROT_WRITE,
+                       flags, -1, 0);
+
+  if (addr != MAP_FAILED) {
+    // anon_mmap() should only get called during VM initialization,
+    // don't need lock (actually we can skip locking even it can be called
+    // from multiple threads, because _highest_vm_reserved_address is just a
+    // hint about the upper limit of non-stack memory regions.)
+    if ((address)addr + bytes > _highest_vm_reserved_address) {
+      _highest_vm_reserved_address = (address)addr + bytes;
+    }
+  }
+
+  return addr == MAP_FAILED ? NULL : addr;
+}
+
+// Don't update _highest_vm_reserved_address, because there might be memory
+// regions above addr + size. If so, releasing a memory region only creates
+// a hole in the address space, it doesn't help prevent heap-stack collision.
+//
+static int anon_munmap(char * addr, size_t size) {
+  return ::munmap(addr, size) == 0;
+}
+
+char* os::reserve_memory(size_t bytes, char* requested_addr,
+                         size_t alignment_hint) {
+  return anon_mmap(requested_addr, bytes, (requested_addr != NULL));
+}
+
+bool os::release_memory(char* addr, size_t size) {
+  return anon_munmap(addr, size);
+}
+
+static address highest_vm_reserved_address() {
+  return _highest_vm_reserved_address;
+}
+
+static bool bsd_mprotect(char* addr, size_t size, int prot) {
+  // Bsd wants the mprotect address argument to be page aligned.
+  char* bottom = (char*)align_size_down((intptr_t)addr, os::Bsd::page_size());
+
+  // According to SUSv3, mprotect() should only be used with mappings
+  // established by mmap(), and mmap() always maps whole pages. Unaligned
+  // 'addr' likely indicates problem in the VM (e.g. trying to change
+  // protection of malloc'ed or statically allocated memory). Check the
+  // caller if you hit this assert.
+  assert(addr == bottom, "sanity check");
+
+  size = align_size_up(pointer_delta(addr, bottom, 1) + size, os::Bsd::page_size());
+  return ::mprotect(bottom, size, prot) == 0;
+}
+
+// Set protections specified
+bool os::protect_memory(char* addr, size_t bytes, ProtType prot,
+                        bool is_committed) {
+  unsigned int p = 0;
+  switch (prot) {
+  case MEM_PROT_NONE: p = PROT_NONE; break;
+  case MEM_PROT_READ: p = PROT_READ; break;
+  case MEM_PROT_RW:   p = PROT_READ|PROT_WRITE; break;
+  case MEM_PROT_RWX:  p = PROT_READ|PROT_WRITE|PROT_EXEC; break;
+  default:
+    ShouldNotReachHere();
+  }
+  // is_committed is unused.
+  return bsd_mprotect(addr, bytes, p);
+}
+
+bool os::guard_memory(char* addr, size_t size) {
+  return bsd_mprotect(addr, size, PROT_NONE);
+}
+
+bool os::unguard_memory(char* addr, size_t size) {
+  return bsd_mprotect(addr, size, PROT_READ|PROT_WRITE);
+}
+
+bool os::Bsd::hugetlbfs_sanity_check(bool warn, size_t page_size) {
+  bool result = false;
+#ifndef _ALLBSD_SOURCE
+  void *p = mmap (NULL, page_size, PROT_READ|PROT_WRITE,
+                  MAP_ANONYMOUS|MAP_PRIVATE|MAP_HUGETLB,
+                  -1, 0);
+
+  if (p != (void *) -1) {
+    // We don't know if this really is a huge page or not.
+    FILE *fp = fopen("/proc/self/maps", "r");
+    if (fp) {
+      while (!feof(fp)) {
+        char chars[257];
+        long x = 0;
+        if (fgets(chars, sizeof(chars), fp)) {
+          if (sscanf(chars, "%lx-%*x", &x) == 1
+              && x == (long)p) {
+            if (strstr (chars, "hugepage")) {
+              result = true;
+              break;
+            }
+          }
+        }
+      }
+      fclose(fp);
+    }
+    munmap (p, page_size);
+    if (result)
+      return true;
+  }
+
+  if (warn) {
+    warning("HugeTLBFS is not supported by the operating system.");
+  }
+#endif
+
+  return result;
+}
+
+/*
+* Set the coredump_filter bits to include largepages in core dump (bit 6)
+*
+* From the coredump_filter documentation:
+*
+* - (bit 0) anonymous private memory
+* - (bit 1) anonymous shared memory
+* - (bit 2) file-backed private memory
+* - (bit 3) file-backed shared memory
+* - (bit 4) ELF header pages in file-backed private memory areas (it is
+*           effective only if the bit 2 is cleared)
+* - (bit 5) hugetlb private memory
+* - (bit 6) hugetlb shared memory
+*/
+static void set_coredump_filter(void) {
+  FILE *f;
+  long cdm;
+
+  if ((f = fopen("/proc/self/coredump_filter", "r+")) == NULL) {
+    return;
+  }
+
+  if (fscanf(f, "%lx", &cdm) != 1) {
+    fclose(f);
+    return;
+  }
+
+  rewind(f);
+
+  if ((cdm & LARGEPAGES_BIT) == 0) {
+    cdm |= LARGEPAGES_BIT;
+    fprintf(f, "%#lx", cdm);
+  }
+
+  fclose(f);
+}
+
+// Large page support
+
+static size_t _large_page_size = 0;
+
+void os::large_page_init() {
+#ifndef _ALLBSD_SOURCE
+  if (!UseLargePages) {
+    UseHugeTLBFS = false;
+    UseSHM = false;
+    return;
+  }
+
+  if (FLAG_IS_DEFAULT(UseHugeTLBFS) && FLAG_IS_DEFAULT(UseSHM)) {
+    // If UseLargePages is specified on the command line try both methods,
+    // if it's default, then try only HugeTLBFS.
+    if (FLAG_IS_DEFAULT(UseLargePages)) {
+      UseHugeTLBFS = true;
+    } else {
+      UseHugeTLBFS = UseSHM = true;
+    }
+  }
+
+  if (LargePageSizeInBytes) {
+    _large_page_size = LargePageSizeInBytes;
+  } else {
+    // large_page_size on Bsd is used to round up heap size. x86 uses either
+    // 2M or 4M page, depending on whether PAE (Physical Address Extensions)
+    // mode is enabled. AMD64/EM64T uses 2M page in 64bit mode. IA64 can use
+    // page as large as 256M.
+    //
+    // Here we try to figure out page size by parsing /proc/meminfo and looking
+    // for a line with the following format:
+    //    Hugepagesize:     2048 kB
+    //
+    // If we can't determine the value (e.g. /proc is not mounted, or the text
+    // format has been changed), we'll use the largest page size supported by
+    // the processor.
+
+#ifndef ZERO
+    _large_page_size = IA32_ONLY(4 * M) AMD64_ONLY(2 * M) IA64_ONLY(256 * M) SPARC_ONLY(4 * M)
+                       ARM_ONLY(2 * M) PPC_ONLY(4 * M);
+#endif // ZERO
+
+    FILE *fp = fopen("/proc/meminfo", "r");
+    if (fp) {
+      while (!feof(fp)) {
+        int x = 0;
+        char buf[16];
+        if (fscanf(fp, "Hugepagesize: %d", &x) == 1) {
+          if (x && fgets(buf, sizeof(buf), fp) && strcmp(buf, " kB\n") == 0) {
+            _large_page_size = x * K;
+            break;
+          }
+        } else {
+          // skip to next line
+          for (;;) {
+            int ch = fgetc(fp);
+            if (ch == EOF || ch == (int)'\n') break;
+          }
+        }
+      }
+      fclose(fp);
+    }
+  }
+
+  // print a warning if any large page related flag is specified on command line
+  bool warn_on_failure = !FLAG_IS_DEFAULT(UseHugeTLBFS);
+
+  const size_t default_page_size = (size_t)Bsd::page_size();
+  if (_large_page_size > default_page_size) {
+    _page_sizes[0] = _large_page_size;
+    _page_sizes[1] = default_page_size;
+    _page_sizes[2] = 0;
+  }
+  UseHugeTLBFS = UseHugeTLBFS &&
+                 Bsd::hugetlbfs_sanity_check(warn_on_failure, _large_page_size);
+
+  if (UseHugeTLBFS)
+    UseSHM = false;
+
+  UseLargePages = UseHugeTLBFS || UseSHM;
+
+  set_coredump_filter();
+#endif
+}
+
+#ifndef _ALLBSD_SOURCE
+#ifndef SHM_HUGETLB
+#define SHM_HUGETLB 04000
+#endif
+#endif
+
+char* os::reserve_memory_special(size_t bytes, char* req_addr, bool exec) {
+  // "exec" is passed in but not used.  Creating the shared image for
+  // the code cache doesn't have an SHM_X executable permission to check.
+  assert(UseLargePages && UseSHM, "only for SHM large pages");
+
+  key_t key = IPC_PRIVATE;
+  char *addr;
+
+  bool warn_on_failure = UseLargePages &&
+                        (!FLAG_IS_DEFAULT(UseLargePages) ||
+                         !FLAG_IS_DEFAULT(LargePageSizeInBytes)
+                        );
+  char msg[128];
+
+  // Create a large shared memory region to attach to based on size.
+  // Currently, size is the total size of the heap
+#ifndef _ALLBSD_SOURCE
+  int shmid = shmget(key, bytes, SHM_HUGETLB|IPC_CREAT|SHM_R|SHM_W);
+#else
+  int shmid = shmget(key, bytes, IPC_CREAT|SHM_R|SHM_W);
+#endif
+  if (shmid == -1) {
+     // Possible reasons for shmget failure:
+     // 1. shmmax is too small for Java heap.
+     //    > check shmmax value: cat /proc/sys/kernel/shmmax
+     //    > increase shmmax value: echo "0xffffffff" > /proc/sys/kernel/shmmax
+     // 2. not enough large page memory.
+     //    > check available large pages: cat /proc/meminfo
+     //    > increase amount of large pages:
+     //          echo new_value > /proc/sys/vm/nr_hugepages
+     //      Note 1: different Bsd may use different name for this property,
+     //            e.g. on Redhat AS-3 it is "hugetlb_pool".
+     //      Note 2: it's possible there's enough physical memory available but
+     //            they are so fragmented after a long run that they can't
+     //            coalesce into large pages. Try to reserve large pages when
+     //            the system is still "fresh".
+     if (warn_on_failure) {
+       jio_snprintf(msg, sizeof(msg), "Failed to reserve shared memory (errno = %d).", errno);
+       warning(msg);
+     }
+     return NULL;
+  }
+
+  // attach to the region
+  addr = (char*)shmat(shmid, req_addr, 0);
+  int err = errno;
+
+  // Remove shmid. If shmat() is successful, the actual shared memory segment
+  // will be deleted when it's detached by shmdt() or when the process
+  // terminates. If shmat() is not successful this will remove the shared
+  // segment immediately.
+  shmctl(shmid, IPC_RMID, NULL);
+
+  if ((intptr_t)addr == -1) {
+     if (warn_on_failure) {
+       jio_snprintf(msg, sizeof(msg), "Failed to attach shared memory (errno = %d).", err);
+       warning(msg);
+     }
+     return NULL;
+  }
+
+  return addr;
+}
+
+bool os::release_memory_special(char* base, size_t bytes) {
+  // detaching the SHM segment will also delete it, see reserve_memory_special()
+  int rslt = shmdt(base);
+  return rslt == 0;
+}
+
+size_t os::large_page_size() {
+  return _large_page_size;
+}
+
+// HugeTLBFS allows application to commit large page memory on demand;
+// with SysV SHM the entire memory region must be allocated as shared
+// memory.
+bool os::can_commit_large_page_memory() {
+  return UseHugeTLBFS;
+}
+
+bool os::can_execute_large_page_memory() {
+  return UseHugeTLBFS;
+}
+
+// Reserve memory at an arbitrary address, only if that area is
+// available (and not reserved for something else).
+
+char* os::attempt_reserve_memory_at(size_t bytes, char* requested_addr) {
+  const int max_tries = 10;
+  char* base[max_tries];
+  size_t size[max_tries];
+  const size_t gap = 0x000000;
+
+  // Assert only that the size is a multiple of the page size, since
+  // that's all that mmap requires, and since that's all we really know
+  // about at this low abstraction level.  If we need higher alignment,
+  // we can either pass an alignment to this method or verify alignment
+  // in one of the methods further up the call chain.  See bug 5044738.
+  assert(bytes % os::vm_page_size() == 0, "reserving unexpected size block");
+
+  // Repeatedly allocate blocks until the block is allocated at the
+  // right spot. Give up after max_tries. Note that reserve_memory() will
+  // automatically update _highest_vm_reserved_address if the call is
+  // successful. The variable tracks the highest memory address every reserved
+  // by JVM. It is used to detect heap-stack collision if running with
+  // fixed-stack BsdThreads. Because here we may attempt to reserve more
+  // space than needed, it could confuse the collision detecting code. To
+  // solve the problem, save current _highest_vm_reserved_address and
+  // calculate the correct value before return.
+  address old_highest = _highest_vm_reserved_address;
+
+  // Bsd mmap allows caller to pass an address as hint; give it a try first,
+  // if kernel honors the hint then we can return immediately.
+  char * addr = anon_mmap(requested_addr, bytes, false);
+  if (addr == requested_addr) {
+     return requested_addr;
+  }
+
+  if (addr != NULL) {
+     // mmap() is successful but it fails to reserve at the requested address
+     anon_munmap(addr, bytes);
+  }
+
+  int i;
+  for (i = 0; i < max_tries; ++i) {
+    base[i] = reserve_memory(bytes);
+
+    if (base[i] != NULL) {
+      // Is this the block we wanted?
+      if (base[i] == requested_addr) {
+        size[i] = bytes;
+        break;
+      }
+
+      // Does this overlap the block we wanted? Give back the overlapped
+      // parts and try again.
+
+      size_t top_overlap = requested_addr + (bytes + gap) - base[i];
+      if (top_overlap >= 0 && top_overlap < bytes) {
+        unmap_memory(base[i], top_overlap);
+        base[i] += top_overlap;
+        size[i] = bytes - top_overlap;
+      } else {
+        size_t bottom_overlap = base[i] + bytes - requested_addr;
+        if (bottom_overlap >= 0 && bottom_overlap < bytes) {
+          unmap_memory(requested_addr, bottom_overlap);
+          size[i] = bytes - bottom_overlap;
+        } else {
+          size[i] = bytes;
+        }
+      }
+    }
+  }
+
+  // Give back the unused reserved pieces.
+
+  for (int j = 0; j < i; ++j) {
+    if (base[j] != NULL) {
+      unmap_memory(base[j], size[j]);
+    }
+  }
+
+  if (i < max_tries) {
+    _highest_vm_reserved_address = MAX2(old_highest, (address)requested_addr + bytes);
+    return requested_addr;
+  } else {
+    _highest_vm_reserved_address = old_highest;
+    return NULL;
+  }
+}
+
+size_t os::read(int fd, void *buf, unsigned int nBytes) {
+  RESTARTABLE_RETURN_INT(::read(fd, buf, nBytes));
+}
+
+// TODO-FIXME: reconcile Solaris' os::sleep with the bsd variation.
+// Solaris uses poll(), bsd uses park().
+// Poll() is likely a better choice, assuming that Thread.interrupt()
+// generates a SIGUSRx signal. Note that SIGUSR1 can interfere with
+// SIGSEGV, see 4355769.
+
+const int NANOSECS_PER_MILLISECS = 1000000;
+
+int os::sleep(Thread* thread, jlong millis, bool interruptible) {
+  assert(thread == Thread::current(),  "thread consistency check");
+
+  ParkEvent * const slp = thread->_SleepEvent ;
+  slp->reset() ;
+  OrderAccess::fence() ;
+
+  if (interruptible) {
+    jlong prevtime = javaTimeNanos();
+
+    for (;;) {
+      if (os::is_interrupted(thread, true)) {
+        return OS_INTRPT;
+      }
+
+      jlong newtime = javaTimeNanos();
+
+      if (newtime - prevtime < 0) {
+        // time moving backwards, should only happen if no monotonic clock
+        // not a guarantee() because JVM should not abort on kernel/glibc bugs
+        assert(!Bsd::supports_monotonic_clock(), "time moving backwards");
+      } else {
+        millis -= (newtime - prevtime) / NANOSECS_PER_MILLISECS;
+      }
+
+      if(millis <= 0) {
+        return OS_OK;
+      }
+
+      prevtime = newtime;
+
+      {
+        assert(thread->is_Java_thread(), "sanity check");
+        JavaThread *jt = (JavaThread *) thread;
+        ThreadBlockInVM tbivm(jt);
+        OSThreadWaitState osts(jt->osthread(), false /* not Object.wait() */);
+
+        jt->set_suspend_equivalent();
+        // cleared by handle_special_suspend_equivalent_condition() or
+        // java_suspend_self() via check_and_wait_while_suspended()
+
+        slp->park(millis);
+
+        // were we externally suspended while we were waiting?
+        jt->check_and_wait_while_suspended();
+      }
+    }
+  } else {
+    OSThreadWaitState osts(thread->osthread(), false /* not Object.wait() */);
+    jlong prevtime = javaTimeNanos();
+
+    for (;;) {
+      // It'd be nice to avoid the back-to-back javaTimeNanos() calls on
+      // the 1st iteration ...
+      jlong newtime = javaTimeNanos();
+
+      if (newtime - prevtime < 0) {
+        // time moving backwards, should only happen if no monotonic clock
+        // not a guarantee() because JVM should not abort on kernel/glibc bugs
+        assert(!Bsd::supports_monotonic_clock(), "time moving backwards");
+      } else {
+        millis -= (newtime - prevtime) / NANOSECS_PER_MILLISECS;
+      }
+
+      if(millis <= 0) break ;
+
+      prevtime = newtime;
+      slp->park(millis);
+    }
+    return OS_OK ;
+  }
+}
+
+int os::naked_sleep() {
+  // %% make the sleep time an integer flag. for now use 1 millisec.
+  return os::sleep(Thread::current(), 1, false);
+}
+
+// Sleep forever; naked call to OS-specific sleep; use with CAUTION
+void os::infinite_sleep() {
+  while (true) {    // sleep forever ...
+    ::sleep(100);   // ... 100 seconds at a time
+  }
+}
+
+// Used to convert frequent JVM_Yield() to nops
+bool os::dont_yield() {
+  return DontYieldALot;
+}
+
+void os::yield() {
+  sched_yield();
+}
+
+os::YieldResult os::NakedYield() { sched_yield(); return os::YIELD_UNKNOWN ;}
+
+void os::yield_all(int attempts) {
+  // Yields to all threads, including threads with lower priorities
+  // Threads on Bsd are all with same priority. The Solaris style
+  // os::yield_all() with nanosleep(1ms) is not necessary.
+  sched_yield();
+}
+
+// Called from the tight loops to possibly influence time-sharing heuristics
+void os::loop_breaker(int attempts) {
+  os::yield_all(attempts);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// thread priority support
+
+// Note: Normal Bsd applications are run with SCHED_OTHER policy. SCHED_OTHER
+// only supports dynamic priority, static priority must be zero. For real-time
+// applications, Bsd supports SCHED_RR which allows static priority (1-99).
+// However, for large multi-threaded applications, SCHED_RR is not only slower
+// than SCHED_OTHER, but also very unstable (my volano tests hang hard 4 out
+// of 5 runs - Sep 2005).
+//
+// The following code actually changes the niceness of kernel-thread/LWP. It
+// has an assumption that setpriority() only modifies one kernel-thread/LWP,
+// not the entire user process, and user level threads are 1:1 mapped to kernel
+// threads. It has always been the case, but could change in the future. For
+// this reason, the code should not be used as default (ThreadPriorityPolicy=0).
+// It is only used when ThreadPriorityPolicy=1 and requires root privilege.
+
+#if defined(_ALLBSD_SOURCE) && !defined(__APPLE__)
+int os::java_to_os_priority[MaxPriority + 1] = {
+  19,              // 0 Entry should never be used
+
+   0,              // 1 MinPriority
+   3,              // 2
+   6,              // 3
+
+   10,              // 4
+   15,              // 5 NormPriority
+   18,              // 6
+
+   21,              // 7
+   25,              // 8
+   28,              // 9 NearMaxPriority
+
+   31              // 10 MaxPriority
+};
+#elif defined(__APPLE__)
+/* Using Mach high-level priority assignments */
+int os::java_to_os_priority[MaxPriority + 1] = {
+   0,              // 0 Entry should never be used (MINPRI_USER)
+
+  27,              // 1 MinPriority
+  28,              // 2
+  29,              // 3
+
+  30,              // 4
+  31,              // 5 NormPriority (BASEPRI_DEFAULT)
+  32,              // 6
+
+  33,              // 7
+  34,              // 8
+  35,              // 9 NearMaxPriority
+
+  36               // 10 MaxPriority
+};
+#else
+int os::java_to_os_priority[MaxPriority + 1] = {
+  19,              // 0 Entry should never be used
+
+   4,              // 1 MinPriority
+   3,              // 2
+   2,              // 3
+
+   1,              // 4
+   0,              // 5 NormPriority
+  -1,              // 6
+
+  -2,              // 7
+  -3,              // 8
+  -4,              // 9 NearMaxPriority
+
+  -5               // 10 MaxPriority
+};
+#endif
+
+static int prio_init() {
+  if (ThreadPriorityPolicy == 1) {
+    // Only root can raise thread priority. Don't allow ThreadPriorityPolicy=1
+    // if effective uid is not root. Perhaps, a more elegant way of doing
+    // this is to test CAP_SYS_NICE capability, but that will require libcap.so
+    if (geteuid() != 0) {
+      if (!FLAG_IS_DEFAULT(ThreadPriorityPolicy)) {
+        warning("-XX:ThreadPriorityPolicy requires root privilege on Bsd");
+      }
+      ThreadPriorityPolicy = 0;
+    }
+  }
+  return 0;
+}
+
+OSReturn os::set_native_priority(Thread* thread, int newpri) {
+  if ( !UseThreadPriorities || ThreadPriorityPolicy == 0 ) return OS_OK;
+
+#ifdef __OpenBSD__
+  // OpenBSD pthread_setprio starves low priority threads
+  return OS_OK;
+#elif defined(__FreeBSD__)
+  int ret = pthread_setprio(thread->osthread()->pthread_id(), newpri);
+#elif defined(__APPLE__) || defined(__NetBSD__)
+  struct sched_param sp;
+  int policy;
+  pthread_t self = pthread_self();
+
+  if (pthread_getschedparam(self, &policy, &sp) != 0)
+    return OS_ERR;
+
+  sp.sched_priority = newpri;
+  if (pthread_setschedparam(self, policy, &sp) != 0)
+    return OS_ERR;
+
+  return OS_OK;
+#else
+  int ret = setpriority(PRIO_PROCESS, thread->osthread()->thread_id(), newpri);
+  return (ret == 0) ? OS_OK : OS_ERR;
+#endif
+}
+
+OSReturn os::get_native_priority(const Thread* const thread, int *priority_ptr) {
+  if ( !UseThreadPriorities || ThreadPriorityPolicy == 0 ) {
+    *priority_ptr = java_to_os_priority[NormPriority];
+    return OS_OK;
+  }
+
+  errno = 0;
+#if defined(__OpenBSD__) || defined(__FreeBSD__)
+  *priority_ptr = pthread_getprio(thread->osthread()->pthread_id());
+#elif defined(__APPLE__) || defined(__NetBSD__)
+  int policy;
+  struct sched_param sp;
+
+  pthread_getschedparam(pthread_self(), &policy, &sp);
+  *priority_ptr = sp.sched_priority;
+#else
+  *priority_ptr = getpriority(PRIO_PROCESS, thread->osthread()->thread_id());
+#endif
+  return (*priority_ptr != -1 || errno == 0 ? OS_OK : OS_ERR);
+}
+
+// Hint to the underlying OS that a task switch would not be good.
+// Void return because it's a hint and can fail.
+void os::hint_no_preempt() {}
+
+////////////////////////////////////////////////////////////////////////////////
+// suspend/resume support
+
+//  the low-level signal-based suspend/resume support is a remnant from the
+//  old VM-suspension that used to be for java-suspension, safepoints etc,
+//  within hotspot. Now there is a single use-case for this:
+//    - calling get_thread_pc() on the VMThread by the flat-profiler task
+//      that runs in the watcher thread.
+//  The remaining code is greatly simplified from the more general suspension
+//  code that used to be used.
+//
+//  The protocol is quite simple:
+//  - suspend:
+//      - sends a signal to the target thread
+//      - polls the suspend state of the osthread using a yield loop
+//      - target thread signal handler (SR_handler) sets suspend state
+//        and blocks in sigsuspend until continued
+//  - resume:
+//      - sets target osthread state to continue
+//      - sends signal to end the sigsuspend loop in the SR_handler
+//
+//  Note that the SR_lock plays no role in this suspend/resume protocol.
+//
+
+static void resume_clear_context(OSThread *osthread) {
+  osthread->set_ucontext(NULL);
+  osthread->set_siginfo(NULL);
+
+  // notify the suspend action is completed, we have now resumed
+  osthread->sr.clear_suspended();
+}
+
+static void suspend_save_context(OSThread *osthread, siginfo_t* siginfo, ucontext_t* context) {
+  osthread->set_ucontext(context);
+  osthread->set_siginfo(siginfo);
+}
+
+//
+// Handler function invoked when a thread's execution is suspended or
+// resumed. We have to be careful that only async-safe functions are
+// called here (Note: most pthread functions are not async safe and
+// should be avoided.)
+//
+// Note: sigwait() is a more natural fit than sigsuspend() from an
+// interface point of view, but sigwait() prevents the signal hander
+// from being run. libpthread would get very confused by not having
+// its signal handlers run and prevents sigwait()'s use with the
+// mutex granting granting signal.
+//
+// Currently only ever called on the VMThread
+//
+static void SR_handler(int sig, siginfo_t* siginfo, ucontext_t* context) {
+  // Save and restore errno to avoid confusing native code with EINTR
+  // after sigsuspend.
+  int old_errno = errno;
+
+  Thread* thread = Thread::current();
+  OSThread* osthread = thread->osthread();
+  assert(thread->is_VM_thread(), "Must be VMThread");
+  // read current suspend action
+  int action = osthread->sr.suspend_action();
+  if (action == SR_SUSPEND) {
+    suspend_save_context(osthread, siginfo, context);
+
+    // Notify the suspend action is about to be completed. do_suspend()
+    // waits until SR_SUSPENDED is set and then returns. We will wait
+    // here for a resume signal and that completes the suspend-other
+    // action. do_suspend/do_resume is always called as a pair from
+    // the same thread - so there are no races
+
+    // notify the caller
+    osthread->sr.set_suspended();
+
+    sigset_t suspend_set;  // signals for sigsuspend()
+
+    // get current set of blocked signals and unblock resume signal
+    pthread_sigmask(SIG_BLOCK, NULL, &suspend_set);
+    sigdelset(&suspend_set, SR_signum);
+
+    // wait here until we are resumed
+    do {
+      sigsuspend(&suspend_set);
+      // ignore all returns until we get a resume signal
+    } while (osthread->sr.suspend_action() != SR_CONTINUE);
+
+    resume_clear_context(osthread);
+
+  } else {
+    assert(action == SR_CONTINUE, "unexpected sr action");
+    // nothing special to do - just leave the handler
+  }
+
+  errno = old_errno;
+}
+
+
+static int SR_initialize() {
+  struct sigaction act;
+  char *s;
+  /* Get signal number to use for suspend/resume */
+  if ((s = ::getenv("_JAVA_SR_SIGNUM")) != 0) {
+    int sig = ::strtol(s, 0, 10);
+    if (sig > 0 || sig < NSIG) {
+        SR_signum = sig;
+    }
+  }
+
+  assert(SR_signum > SIGSEGV && SR_signum > SIGBUS,
+        "SR_signum must be greater than max(SIGSEGV, SIGBUS), see 4355769");
+
+  sigemptyset(&SR_sigset);
+  sigaddset(&SR_sigset, SR_signum);
+
+  /* Set up signal handler for suspend/resume */
+  act.sa_flags = SA_RESTART|SA_SIGINFO;
+  act.sa_handler = (void (*)(int)) SR_handler;
+
+  // SR_signum is blocked by default.
+  // 4528190 - We also need to block pthread restart signal (32 on all
+  // supported Bsd platforms). Note that BsdThreads need to block
+  // this signal for all threads to work properly. So we don't have
+  // to use hard-coded signal number when setting up the mask.
+  pthread_sigmask(SIG_BLOCK, NULL, &act.sa_mask);
+
+  if (sigaction(SR_signum, &act, 0) == -1) {
+    return -1;
+  }
+
+  // Save signal flag
+  os::Bsd::set_our_sigflags(SR_signum, act.sa_flags);
+  return 0;
+}
+
+static int SR_finalize() {
+  return 0;
+}
+
+
+// returns true on success and false on error - really an error is fatal
+// but this seems the normal response to library errors
+static bool do_suspend(OSThread* osthread) {
+  // mark as suspended and send signal
+  osthread->sr.set_suspend_action(SR_SUSPEND);
+  int status = pthread_kill(osthread->pthread_id(), SR_signum);
+  assert_status(status == 0, status, "pthread_kill");
+
+  // check status and wait until notified of suspension
+  if (status == 0) {
+    for (int i = 0; !osthread->sr.is_suspended(); i++) {
+      os::yield_all(i);
+    }
+    osthread->sr.set_suspend_action(SR_NONE);
+    return true;
+  }
+  else {
+    osthread->sr.set_suspend_action(SR_NONE);
+    return false;
+  }
+}
+
+static void do_resume(OSThread* osthread) {
+  assert(osthread->sr.is_suspended(), "thread should be suspended");
+  osthread->sr.set_suspend_action(SR_CONTINUE);
+
+  int status = pthread_kill(osthread->pthread_id(), SR_signum);
+  assert_status(status == 0, status, "pthread_kill");
+  // check status and wait unit notified of resumption
+  if (status == 0) {
+    for (int i = 0; osthread->sr.is_suspended(); i++) {
+      os::yield_all(i);
+    }
+  }
+  osthread->sr.set_suspend_action(SR_NONE);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// interrupt support
+
+void os::interrupt(Thread* thread) {
+  assert(Thread::current() == thread || Threads_lock->owned_by_self(),
+    "possibility of dangling Thread pointer");
+
+  OSThread* osthread = thread->osthread();
+
+  if (!osthread->interrupted()) {
+    osthread->set_interrupted(true);
+    // More than one thread can get here with the same value of osthread,
+    // resulting in multiple notifications.  We do, however, want the store
+    // to interrupted() to be visible to other threads before we execute unpark().
+    OrderAccess::fence();
+    ParkEvent * const slp = thread->_SleepEvent ;
+    if (slp != NULL) slp->unpark() ;
+  }
+
+  // For JSR166. Unpark even if interrupt status already was set
+  if (thread->is_Java_thread())
+    ((JavaThread*)thread)->parker()->unpark();
+
+  ParkEvent * ev = thread->_ParkEvent ;
+  if (ev != NULL) ev->unpark() ;
+
+}
+
+bool os::is_interrupted(Thread* thread, bool clear_interrupted) {
+  assert(Thread::current() == thread || Threads_lock->owned_by_self(),
+    "possibility of dangling Thread pointer");
+
+  OSThread* osthread = thread->osthread();
+
+  bool interrupted = osthread->interrupted();
+
+  if (interrupted && clear_interrupted) {
+    osthread->set_interrupted(false);
+    // consider thread->_SleepEvent->reset() ... optional optimization
+  }
+
+  return interrupted;
+}
+
+///////////////////////////////////////////////////////////////////////////////////
+// signal handling (except suspend/resume)
+
+// This routine may be used by user applications as a "hook" to catch signals.
+// The user-defined signal handler must pass unrecognized signals to this
+// routine, and if it returns true (non-zero), then the signal handler must
+// return immediately.  If the flag "abort_if_unrecognized" is true, then this
+// routine will never retun false (zero), but instead will execute a VM panic
+// routine kill the process.
+//
+// If this routine returns false, it is OK to call it again.  This allows
+// the user-defined signal handler to perform checks either before or after
+// the VM performs its own checks.  Naturally, the user code would be making
+// a serious error if it tried to handle an exception (such as a null check
+// or breakpoint) that the VM was generating for its own correct operation.
+//
+// This routine may recognize any of the following kinds of signals:
+//    SIGBUS, SIGSEGV, SIGILL, SIGFPE, SIGQUIT, SIGPIPE, SIGXFSZ, SIGUSR1.
+// It should be consulted by handlers for any of those signals.
+//
+// The caller of this routine must pass in the three arguments supplied
+// to the function referred to in the "sa_sigaction" (not the "sa_handler")
+// field of the structure passed to sigaction().  This routine assumes that
+// the sa_flags field passed to sigaction() includes SA_SIGINFO and SA_RESTART.
+//
+// Note that the VM will print warnings if it detects conflicting signal
+// handlers, unless invoked with the option "-XX:+AllowUserSignalHandlers".
+//
+extern "C" JNIEXPORT int
+JVM_handle_bsd_signal(int signo, siginfo_t* siginfo,
+                        void* ucontext, int abort_if_unrecognized);
+
+void signalHandler(int sig, siginfo_t* info, void* uc) {
+  assert(info != NULL && uc != NULL, "it must be old kernel");
+  JVM_handle_bsd_signal(sig, info, uc, true);
+}
+
+
+// This boolean allows users to forward their own non-matching signals
+// to JVM_handle_bsd_signal, harmlessly.
+bool os::Bsd::signal_handlers_are_installed = false;
+
+// For signal-chaining
+struct sigaction os::Bsd::sigact[MAXSIGNUM];
+unsigned int os::Bsd::sigs = 0;
+bool os::Bsd::libjsig_is_loaded = false;
+typedef struct sigaction *(*get_signal_t)(int);
+get_signal_t os::Bsd::get_signal_action = NULL;
+
+struct sigaction* os::Bsd::get_chained_signal_action(int sig) {
+  struct sigaction *actp = NULL;
+
+  if (libjsig_is_loaded) {
+    // Retrieve the old signal handler from libjsig
+    actp = (*get_signal_action)(sig);
+  }
+  if (actp == NULL) {
+    // Retrieve the preinstalled signal handler from jvm
+    actp = get_preinstalled_handler(sig);
+  }
+
+  return actp;
+}
+
+static bool call_chained_handler(struct sigaction *actp, int sig,
+                                 siginfo_t *siginfo, void *context) {
+  // Call the old signal handler
+  if (actp->sa_handler == SIG_DFL) {
+    // It's more reasonable to let jvm treat it as an unexpected exception
+    // instead of taking the default action.
+    return false;
+  } else if (actp->sa_handler != SIG_IGN) {
+    if ((actp->sa_flags & SA_NODEFER) == 0) {
+      // automaticlly block the signal
+      sigaddset(&(actp->sa_mask), sig);
+    }
+
+    sa_handler_t hand;
+    sa_sigaction_t sa;
+    bool siginfo_flag_set = (actp->sa_flags & SA_SIGINFO) != 0;
+    // retrieve the chained handler
+    if (siginfo_flag_set) {
+      sa = actp->sa_sigaction;
+    } else {
+      hand = actp->sa_handler;
+    }
+
+    if ((actp->sa_flags & SA_RESETHAND) != 0) {
+      actp->sa_handler = SIG_DFL;
+    }
+
+    // try to honor the signal mask
+    sigset_t oset;
+    pthread_sigmask(SIG_SETMASK, &(actp->sa_mask), &oset);
+
+    // call into the chained handler
+    if (siginfo_flag_set) {
+      (*sa)(sig, siginfo, context);
+    } else {
+      (*hand)(sig);
+    }
+
+    // restore the signal mask
+    pthread_sigmask(SIG_SETMASK, &oset, 0);
+  }
+  // Tell jvm's signal handler the signal is taken care of.
+  return true;
+}
+
+bool os::Bsd::chained_handler(int sig, siginfo_t* siginfo, void* context) {
+  bool chained = false;
+  // signal-chaining
+  if (UseSignalChaining) {
+    struct sigaction *actp = get_chained_signal_action(sig);
+    if (actp != NULL) {
+      chained = call_chained_handler(actp, sig, siginfo, context);
+    }
+  }
+  return chained;
+}
+
+struct sigaction* os::Bsd::get_preinstalled_handler(int sig) {
+  if ((( (unsigned int)1 << sig ) & sigs) != 0) {
+    return &sigact[sig];
+  }
+  return NULL;
+}
+
+void os::Bsd::save_preinstalled_handler(int sig, struct sigaction& oldAct) {
+  assert(sig > 0 && sig < MAXSIGNUM, "vm signal out of expected range");
+  sigact[sig] = oldAct;
+  sigs |= (unsigned int)1 << sig;
+}
+
+// for diagnostic
+int os::Bsd::sigflags[MAXSIGNUM];
+
+int os::Bsd::get_our_sigflags(int sig) {
+  assert(sig > 0 && sig < MAXSIGNUM, "vm signal out of expected range");
+  return sigflags[sig];
+}
+
+void os::Bsd::set_our_sigflags(int sig, int flags) {
+  assert(sig > 0 && sig < MAXSIGNUM, "vm signal out of expected range");
+  sigflags[sig] = flags;
+}
+
+void os::Bsd::set_signal_handler(int sig, bool set_installed) {
+  // Check for overwrite.
+  struct sigaction oldAct;
+  sigaction(sig, (struct sigaction*)NULL, &oldAct);
+
+  void* oldhand = oldAct.sa_sigaction
+                ? CAST_FROM_FN_PTR(void*,  oldAct.sa_sigaction)
+                : CAST_FROM_FN_PTR(void*,  oldAct.sa_handler);
+  if (oldhand != CAST_FROM_FN_PTR(void*, SIG_DFL) &&
+      oldhand != CAST_FROM_FN_PTR(void*, SIG_IGN) &&
+      oldhand != CAST_FROM_FN_PTR(void*, (sa_sigaction_t)signalHandler)) {
+    if (AllowUserSignalHandlers || !set_installed) {
+      // Do not overwrite; user takes responsibility to forward to us.
+      return;
+    } else if (UseSignalChaining) {
+      // save the old handler in jvm
+      save_preinstalled_handler(sig, oldAct);
+      // libjsig also interposes the sigaction() call below and saves the
+      // old sigaction on it own.
+    } else {
+      fatal(err_msg("Encountered unexpected pre-existing sigaction handler "
+                    "%#lx for signal %d.", (long)oldhand, sig));
+    }
+  }
+
+  struct sigaction sigAct;
+  sigfillset(&(sigAct.sa_mask));
+  sigAct.sa_handler = SIG_DFL;
+  if (!set_installed) {
+    sigAct.sa_flags = SA_SIGINFO|SA_RESTART;
+  } else {
+    sigAct.sa_sigaction = signalHandler;
+    sigAct.sa_flags = SA_SIGINFO|SA_RESTART;
+  }
+  // Save flags, which are set by ours
+  assert(sig > 0 && sig < MAXSIGNUM, "vm signal out of expected range");
+  sigflags[sig] = sigAct.sa_flags;
+
+  int ret = sigaction(sig, &sigAct, &oldAct);
+  assert(ret == 0, "check");
+
+  void* oldhand2  = oldAct.sa_sigaction
+                  ? CAST_FROM_FN_PTR(void*, oldAct.sa_sigaction)
+                  : CAST_FROM_FN_PTR(void*, oldAct.sa_handler);
+  assert(oldhand2 == oldhand, "no concurrent signal handler installation");
+}
+
+// install signal handlers for signals that HotSpot needs to
+// handle in order to support Java-level exception handling.
+
+void os::Bsd::install_signal_handlers() {
+  if (!signal_handlers_are_installed) {
+    signal_handlers_are_installed = true;
+
+    // signal-chaining
+    typedef void (*signal_setting_t)();
+    signal_setting_t begin_signal_setting = NULL;
+    signal_setting_t end_signal_setting = NULL;
+    begin_signal_setting = CAST_TO_FN_PTR(signal_setting_t,
+                             dlsym(RTLD_DEFAULT, "JVM_begin_signal_setting"));
+    if (begin_signal_setting != NULL) {
+      end_signal_setting = CAST_TO_FN_PTR(signal_setting_t,
+                             dlsym(RTLD_DEFAULT, "JVM_end_signal_setting"));
+      get_signal_action = CAST_TO_FN_PTR(get_signal_t,
+                            dlsym(RTLD_DEFAULT, "JVM_get_signal_action"));
+      libjsig_is_loaded = true;
+      assert(UseSignalChaining, "should enable signal-chaining");
+    }
+    if (libjsig_is_loaded) {
+      // Tell libjsig jvm is setting signal handlers
+      (*begin_signal_setting)();
+    }
+
+    set_signal_handler(SIGSEGV, true);
+    set_signal_handler(SIGPIPE, true);
+    set_signal_handler(SIGBUS, true);
+    set_signal_handler(SIGILL, true);
+    set_signal_handler(SIGFPE, true);
+    set_signal_handler(SIGXFSZ, true);
+
+#if defined(__APPLE__)
+    // In Mac OS X 10.4, CrashReporter will write a crash log for all 'fatal' signals, including
+    // signals caught and handled by the JVM. To work around this, we reset the mach task
+    // signal handler that's placed on our process by CrashReporter. This disables
+    // CrashReporter-based reporting.
+    //
+    // This work-around is not necessary for 10.5+, as CrashReporter no longer intercedes
+    // on caught fatal signals.
+    //
+    // Additionally, gdb installs both standard BSD signal handlers, and mach exception
+    // handlers. By replacing the existing task exception handler, we disable gdb's mach
+    // exception handling, while leaving the standard BSD signal handlers functional.
+    kern_return_t kr;
+    kr = task_set_exception_ports(mach_task_self(),
+        EXC_MASK_BAD_ACCESS | EXC_MASK_ARITHMETIC,
+        MACH_PORT_NULL,
+        EXCEPTION_STATE_IDENTITY,
+        MACHINE_THREAD_STATE);
+
+    assert(kr == KERN_SUCCESS, "could not set mach task signal handler");
+#endif
+
+    if (libjsig_is_loaded) {
+      // Tell libjsig jvm finishes setting signal handlers
+      (*end_signal_setting)();
+    }
+
+    // We don't activate signal checker if libjsig is in place, we trust ourselves
+    // and if UserSignalHandler is installed all bets are off
+    if (CheckJNICalls) {
+      if (libjsig_is_loaded) {
+        tty->print_cr("Info: libjsig is activated, all active signal checking is disabled");
+        check_signals = false;
+      }
+      if (AllowUserSignalHandlers) {
+        tty->print_cr("Info: AllowUserSignalHandlers is activated, all active signal checking is disabled");
+        check_signals = false;
+      }
+    }
+  }
+}
+
+#ifndef _ALLBSD_SOURCE
+// This is the fastest way to get thread cpu time on Bsd.
+// Returns cpu time (user+sys) for any thread, not only for current.
+// POSIX compliant clocks are implemented in the kernels 2.6.16+.
+// It might work on 2.6.10+ with a special kernel/glibc patch.
+// For reference, please, see IEEE Std 1003.1-2004:
+//   http://www.unix.org/single_unix_specification
+
+jlong os::Bsd::fast_thread_cpu_time(clockid_t clockid) {
+  struct timespec tp;
+  int rc = os::Bsd::clock_gettime(clockid, &tp);
+  assert(rc == 0, "clock_gettime is expected to return 0 code");
+
+  return (tp.tv_sec * SEC_IN_NANOSECS) + tp.tv_nsec;
+}
+#endif
+
+/////
+// glibc on Bsd platform uses non-documented flag
+// to indicate, that some special sort of signal
+// trampoline is used.
+// We will never set this flag, and we should
+// ignore this flag in our diagnostic
+#ifdef SIGNIFICANT_SIGNAL_MASK
+#undef SIGNIFICANT_SIGNAL_MASK
+#endif
+#define SIGNIFICANT_SIGNAL_MASK (~0x04000000)
+
+static const char* get_signal_handler_name(address handler,
+                                           char* buf, int buflen) {
+  int offset;
+  bool found = os::dll_address_to_library_name(handler, buf, buflen, &offset);
+  if (found) {
+    // skip directory names
+    const char *p1, *p2;
+    p1 = buf;
+    size_t len = strlen(os::file_separator());
+    while ((p2 = strstr(p1, os::file_separator())) != NULL) p1 = p2 + len;
+    jio_snprintf(buf, buflen, "%s+0x%x", p1, offset);
+  } else {
+    jio_snprintf(buf, buflen, PTR_FORMAT, handler);
+  }
+  return buf;
+}
+
+static void print_signal_handler(outputStream* st, int sig,
+                                 char* buf, size_t buflen) {
+  struct sigaction sa;
+
+  sigaction(sig, NULL, &sa);
+
+  // See comment for SIGNIFICANT_SIGNAL_MASK define
+  sa.sa_flags &= SIGNIFICANT_SIGNAL_MASK;
+
+  st->print("%s: ", os::exception_name(sig, buf, buflen));
+
+  address handler = (sa.sa_flags & SA_SIGINFO)
+    ? CAST_FROM_FN_PTR(address, sa.sa_sigaction)
+    : CAST_FROM_FN_PTR(address, sa.sa_handler);
+
+  if (handler == CAST_FROM_FN_PTR(address, SIG_DFL)) {
+    st->print("SIG_DFL");
+  } else if (handler == CAST_FROM_FN_PTR(address, SIG_IGN)) {
+    st->print("SIG_IGN");
+  } else {
+    st->print("[%s]", get_signal_handler_name(handler, buf, buflen));
+  }
+
+  st->print(", sa_mask[0]=" PTR32_FORMAT, *(uint32_t*)&sa.sa_mask);
+
+  address rh = VMError::get_resetted_sighandler(sig);
+  // May be, handler was resetted by VMError?
+  if(rh != NULL) {
+    handler = rh;
+    sa.sa_flags = VMError::get_resetted_sigflags(sig) & SIGNIFICANT_SIGNAL_MASK;
+  }
+
+  st->print(", sa_flags="   PTR32_FORMAT, sa.sa_flags);
+
+  // Check: is it our handler?
+  if(handler == CAST_FROM_FN_PTR(address, (sa_sigaction_t)signalHandler) ||
+     handler == CAST_FROM_FN_PTR(address, (sa_sigaction_t)SR_handler)) {
+    // It is our signal handler
+    // check for flags, reset system-used one!
+    if((int)sa.sa_flags != os::Bsd::get_our_sigflags(sig)) {
+      st->print(
+                ", flags was changed from " PTR32_FORMAT ", consider using jsig library",
+                os::Bsd::get_our_sigflags(sig));
+    }
+  }
+  st->cr();
+}
+
+
+#define DO_SIGNAL_CHECK(sig) \
+  if (!sigismember(&check_signal_done, sig)) \
+    os::Bsd::check_signal_handler(sig)
+
+// This method is a periodic task to check for misbehaving JNI applications
+// under CheckJNI, we can add any periodic checks here
+
+void os::run_periodic_checks() {
+
+  if (check_signals == false) return;
+
+  // SEGV and BUS if overridden could potentially prevent
+  // generation of hs*.log in the event of a crash, debugging
+  // such a case can be very challenging, so we absolutely
+  // check the following for a good measure:
+  DO_SIGNAL_CHECK(SIGSEGV);
+  DO_SIGNAL_CHECK(SIGILL);
+  DO_SIGNAL_CHECK(SIGFPE);
+  DO_SIGNAL_CHECK(SIGBUS);
+  DO_SIGNAL_CHECK(SIGPIPE);
+  DO_SIGNAL_CHECK(SIGXFSZ);
+
+
+  // ReduceSignalUsage allows the user to override these handlers
+  // see comments at the very top and jvm_solaris.h
+  if (!ReduceSignalUsage) {
+    DO_SIGNAL_CHECK(SHUTDOWN1_SIGNAL);
+    DO_SIGNAL_CHECK(SHUTDOWN2_SIGNAL);
+    DO_SIGNAL_CHECK(SHUTDOWN3_SIGNAL);
+    DO_SIGNAL_CHECK(BREAK_SIGNAL);
+  }
+
+  DO_SIGNAL_CHECK(SR_signum);
+  DO_SIGNAL_CHECK(INTERRUPT_SIGNAL);
+}
+
+typedef int (*os_sigaction_t)(int, const struct sigaction *, struct sigaction *);
+
+static os_sigaction_t os_sigaction = NULL;
+
+void os::Bsd::check_signal_handler(int sig) {
+  char buf[O_BUFLEN];
+  address jvmHandler = NULL;
+
+
+  struct sigaction act;
+  if (os_sigaction == NULL) {
+    // only trust the default sigaction, in case it has been interposed
+    os_sigaction = (os_sigaction_t)dlsym(RTLD_DEFAULT, "sigaction");
+    if (os_sigaction == NULL) return;
+  }
+
+  os_sigaction(sig, (struct sigaction*)NULL, &act);
+
+
+  act.sa_flags &= SIGNIFICANT_SIGNAL_MASK;
+
+  address thisHandler = (act.sa_flags & SA_SIGINFO)
+    ? CAST_FROM_FN_PTR(address, act.sa_sigaction)
+    : CAST_FROM_FN_PTR(address, act.sa_handler) ;
+
+
+  switch(sig) {
+  case SIGSEGV:
+  case SIGBUS:
+  case SIGFPE:
+  case SIGPIPE:
+  case SIGILL:
+  case SIGXFSZ:
+    jvmHandler = CAST_FROM_FN_PTR(address, (sa_sigaction_t)signalHandler);
+    break;
+
+  case SHUTDOWN1_SIGNAL:
+  case SHUTDOWN2_SIGNAL:
+  case SHUTDOWN3_SIGNAL:
+  case BREAK_SIGNAL:
+    jvmHandler = (address)user_handler();
+    break;
+
+  case INTERRUPT_SIGNAL:
+    jvmHandler = CAST_FROM_FN_PTR(address, SIG_DFL);
+    break;
+
+  default:
+    if (sig == SR_signum) {
+      jvmHandler = CAST_FROM_FN_PTR(address, (sa_sigaction_t)SR_handler);
+    } else {
+      return;
+    }
+    break;
+  }
+
+  if (thisHandler != jvmHandler) {
+    tty->print("Warning: %s handler ", exception_name(sig, buf, O_BUFLEN));
+    tty->print("expected:%s", get_signal_handler_name(jvmHandler, buf, O_BUFLEN));
+    tty->print_cr("  found:%s", get_signal_handler_name(thisHandler, buf, O_BUFLEN));
+    // No need to check this sig any longer
+    sigaddset(&check_signal_done, sig);
+  } else if(os::Bsd::get_our_sigflags(sig) != 0 && (int)act.sa_flags != os::Bsd::get_our_sigflags(sig)) {
+    tty->print("Warning: %s handler flags ", exception_name(sig, buf, O_BUFLEN));
+    tty->print("expected:" PTR32_FORMAT, os::Bsd::get_our_sigflags(sig));
+    tty->print_cr("  found:" PTR32_FORMAT, act.sa_flags);
+    // No need to check this sig any longer
+    sigaddset(&check_signal_done, sig);
+  }
+
+  // Dump all the signal
+  if (sigismember(&check_signal_done, sig)) {
+    print_signal_handlers(tty, buf, O_BUFLEN);
+  }
+}
+
+extern void report_error(char* file_name, int line_no, char* title, char* format, ...);
+
+extern bool signal_name(int signo, char* buf, size_t len);
+
+const char* os::exception_name(int exception_code, char* buf, size_t size) {
+  if (0 < exception_code && exception_code <= SIGRTMAX) {
+    // signal
+    if (!signal_name(exception_code, buf, size)) {
+      jio_snprintf(buf, size, "SIG%d", exception_code);
+    }
+    return buf;
+  } else {
+    return NULL;
+  }
+}
+
+// this is called _before_ the most of global arguments have been parsed
+void os::init(void) {
+  char dummy;   /* used to get a guess on initial stack address */
+//  first_hrtime = gethrtime();
+
+  // With BsdThreads the JavaMain thread pid (primordial thread)
+  // is different than the pid of the java launcher thread.
+  // So, on Bsd, the launcher thread pid is passed to the VM
+  // via the sun.java.launcher.pid property.
+  // Use this property instead of getpid() if it was correctly passed.
+  // See bug 6351349.
+  pid_t java_launcher_pid = (pid_t) Arguments::sun_java_launcher_pid();
+
+  _initial_pid = (java_launcher_pid > 0) ? java_launcher_pid : getpid();
+
+  clock_tics_per_sec = CLK_TCK;
+
+  init_random(1234567);
+
+  ThreadCritical::initialize();
+
+  Bsd::set_page_size(getpagesize());
+  if (Bsd::page_size() == -1) {
+    fatal(err_msg("os_bsd.cpp: os::init: sysconf failed (%s)",
+                  strerror(errno)));
+  }
+  init_page_sizes((size_t) Bsd::page_size());
+
+  Bsd::initialize_system_info();
+
+  // main_thread points to the aboriginal thread
+  Bsd::_main_thread = pthread_self();
+
+  Bsd::clock_init();
+  initial_time_count = os::elapsed_counter();
+
+#ifdef __APPLE__
+  // XXXDARWIN
+  // Work around the unaligned VM callbacks in hotspot's
+  // sharedRuntime. The callbacks don't use SSE2 instructions, and work on
+  // Linux, Solaris, and FreeBSD. On Mac OS X, dyld (rightly so) enforces
+  // alignment when doing symbol lookup. To work around this, we force early
+  // binding of all symbols now, thus binding when alignment is known-good.
+  _dyld_bind_fully_image_containing_address((const void *) &os::init);
+#endif
+}
+
+// To install functions for atexit system call
+extern "C" {
+  static void perfMemory_exit_helper() {
+    perfMemory_exit();
+  }
+}
+
+// this is called _after_ the global arguments have been parsed
+jint os::init_2(void)
+{
+#ifndef _ALLBSD_SOURCE
+  Bsd::fast_thread_clock_init();
+#endif
+
+  // Allocate a single page and mark it as readable for safepoint polling
+  address polling_page = (address) ::mmap(NULL, Bsd::page_size(), PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+  guarantee( polling_page != MAP_FAILED, "os::init_2: failed to allocate polling page" );
+
+  os::set_polling_page( polling_page );
+
+#ifndef PRODUCT
+  if(Verbose && PrintMiscellaneous)
+    tty->print("[SafePoint Polling address: " INTPTR_FORMAT "]\n", (intptr_t)polling_page);
+#endif
+
+  if (!UseMembar) {
+    address mem_serialize_page = (address) ::mmap(NULL, Bsd::page_size(), PROT_READ | PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+    guarantee( mem_serialize_page != NULL, "mmap Failed for memory serialize page");
+    os::set_memory_serialize_page( mem_serialize_page );
+
+#ifndef PRODUCT
+    if(Verbose && PrintMiscellaneous)
+      tty->print("[Memory Serialize  Page address: " INTPTR_FORMAT "]\n", (intptr_t)mem_serialize_page);
+#endif
+  }
+
+  os::large_page_init();
+
+  // initialize suspend/resume support - must do this before signal_sets_init()
+  if (SR_initialize() != 0) {
+    perror("SR_initialize failed");
+    return JNI_ERR;
+  }
+
+  Bsd::signal_sets_init();
+  Bsd::install_signal_handlers();
+
+  // Check minimum allowable stack size for thread creation and to initialize
+  // the java system classes, including StackOverflowError - depends on page
+  // size.  Add a page for compiler2 recursion in main thread.
+  // Add in 2*BytesPerWord times page size to account for VM stack during
+  // class initialization depending on 32 or 64 bit VM.
+  os::Bsd::min_stack_allowed = MAX2(os::Bsd::min_stack_allowed,
+            (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
+                    2*BytesPerWord COMPILER2_PRESENT(+1)) * Bsd::page_size());
+
+  size_t threadStackSizeInBytes = ThreadStackSize * K;
+  if (threadStackSizeInBytes != 0 &&
+      threadStackSizeInBytes < os::Bsd::min_stack_allowed) {
+        tty->print_cr("\nThe stack size specified is too small, "
+                      "Specify at least %dk",
+                      os::Bsd::min_stack_allowed/ K);
+        return JNI_ERR;
+  }
+
+  // Make the stack size a multiple of the page size so that
+  // the yellow/red zones can be guarded.
+  JavaThread::set_stack_size_at_create(round_to(threadStackSizeInBytes,
+        vm_page_size()));
+
+#ifndef _ALLBSD_SOURCE
+  Bsd::capture_initial_stack(JavaThread::stack_size_at_create());
+
+  Bsd::libpthread_init();
+  if (PrintMiscellaneous && (Verbose || WizardMode)) {
+     tty->print_cr("[HotSpot is running with %s, %s(%s)]\n",
+          Bsd::glibc_version(), Bsd::libpthread_version(),
+          Bsd::is_floating_stack() ? "floating stack" : "fixed stack");
+  }
+
+  if (UseNUMA) {
+    if (!Bsd::libnuma_init()) {
+      UseNUMA = false;
+    } else {
+      if ((Bsd::numa_max_node() < 1)) {
+        // There's only one node(they start from 0), disable NUMA.
+        UseNUMA = false;
+      }
+    }
+    // With SHM large pages we cannot uncommit a page, so there's not way
+    // we can make the adaptive lgrp chunk resizing work. If the user specified
+    // both UseNUMA and UseLargePages (or UseSHM) on the command line - warn and
+    // disable adaptive resizing.
+    if (UseNUMA && UseLargePages && UseSHM) {
+      if (!FLAG_IS_DEFAULT(UseNUMA)) {
+        if (FLAG_IS_DEFAULT(UseLargePages) && FLAG_IS_DEFAULT(UseSHM)) {
+          UseLargePages = false;
+        } else {
+          warning("UseNUMA is not fully compatible with SHM large pages, disabling adaptive resizing");
+          UseAdaptiveSizePolicy = false;
+          UseAdaptiveNUMAChunkSizing = false;
+        }
+      } else {
+        UseNUMA = false;
+      }
+    }
+    if (!UseNUMA && ForceNUMA) {
+      UseNUMA = true;
+    }
+  }
+#endif
+
+  if (MaxFDLimit) {
+    // set the number of file descriptors to max. print out error
+    // if getrlimit/setrlimit fails but continue regardless.
+    struct rlimit nbr_files;
+    int status = getrlimit(RLIMIT_NOFILE, &nbr_files);
+    if (status != 0) {
+      if (PrintMiscellaneous && (Verbose || WizardMode))
+        perror("os::init_2 getrlimit failed");
+    } else {
+      nbr_files.rlim_cur = nbr_files.rlim_max;
+
+#ifdef __APPLE__
+      // Darwin returns RLIM_INFINITY for rlim_max, but fails with EINVAL if
+      // you attempt to use RLIM_INFINITY. As per setrlimit(2), OPEN_MAX must
+      // be used instead
+      nbr_files.rlim_cur = MIN(OPEN_MAX, nbr_files.rlim_cur);
+#endif
+
+      status = setrlimit(RLIMIT_NOFILE, &nbr_files);
+      if (status != 0) {
+        if (PrintMiscellaneous && (Verbose || WizardMode))
+          perror("os::init_2 setrlimit failed");
+      }
+    }
+  }
+
+#ifndef _ALLBSD_SOURCE
+  // Initialize lock used to serialize thread creation (see os::create_thread)
+  Bsd::set_createThread_lock(new Mutex(Mutex::leaf, "createThread_lock", false));
+#endif
+
+  // at-exit methods are called in the reverse order of their registration.
+  // atexit functions are called on return from main or as a result of a
+  // call to exit(3C). There can be only 32 of these functions registered
+  // and atexit() does not set errno.
+
+  if (PerfAllowAtExitRegistration) {
+    // only register atexit functions if PerfAllowAtExitRegistration is set.
+    // atexit functions can be delayed until process exit time, which
+    // can be problematic for embedded VM situations. Embedded VMs should
+    // call DestroyJavaVM() to assure that VM resources are released.
+
+    // note: perfMemory_exit_helper atexit function may be removed in
+    // the future if the appropriate cleanup code can be added to the
+    // VM_Exit VMOperation's doit method.
+    if (atexit(perfMemory_exit_helper) != 0) {
+      warning("os::init2 atexit(perfMemory_exit_helper) failed");
+    }
+  }
+
+  // initialize thread priority policy
+  prio_init();
+
+  return JNI_OK;
+}
+
+// this is called at the end of vm_initialization
+void os::init_3(void) { }
+
+// Mark the polling page as unreadable
+void os::make_polling_page_unreadable(void) {
+  if( !guard_memory((char*)_polling_page, Bsd::page_size()) )
+    fatal("Could not disable polling page");
+};
+
+// Mark the polling page as readable
+void os::make_polling_page_readable(void) {
+  if( !bsd_mprotect((char *)_polling_page, Bsd::page_size(), PROT_READ)) {
+    fatal("Could not enable polling page");
+  }
+};
+
+int os::active_processor_count() {
+#ifdef _ALLBSD_SOURCE
+  return _processor_count;
+#else
+  // Bsd doesn't yet have a (official) notion of processor sets,
+  // so just return the number of online processors.
+  int online_cpus = ::sysconf(_SC_NPROCESSORS_ONLN);
+  assert(online_cpus > 0 && online_cpus <= processor_count(), "sanity check");
+  return online_cpus;
+#endif
+}
+
+bool os::distribute_processes(uint length, uint* distribution) {
+  // Not yet implemented.
+  return false;
+}
+
+bool os::bind_to_processor(uint processor_id) {
+  // Not yet implemented.
+  return false;
+}
+
+///
+
+// Suspends the target using the signal mechanism and then grabs the PC before
+// resuming the target. Used by the flat-profiler only
+ExtendedPC os::get_thread_pc(Thread* thread) {
+  // Make sure that it is called by the watcher for the VMThread
+  assert(Thread::current()->is_Watcher_thread(), "Must be watcher");
+  assert(thread->is_VM_thread(), "Can only be called for VMThread");
+
+  ExtendedPC epc;
+
+  OSThread* osthread = thread->osthread();
+  if (do_suspend(osthread)) {
+    if (osthread->ucontext() != NULL) {
+      epc = os::Bsd::ucontext_get_pc(osthread->ucontext());
+    } else {
+      // NULL context is unexpected, double-check this is the VMThread
+      guarantee(thread->is_VM_thread(), "can only be called for VMThread");
+    }
+    do_resume(osthread);
+  }
+  // failure means pthread_kill failed for some reason - arguably this is
+  // a fatal problem, but such problems are ignored elsewhere
+
+  return epc;
+}
+
+int os::Bsd::safe_cond_timedwait(pthread_cond_t *_cond, pthread_mutex_t *_mutex, const struct timespec *_abstime)
+{
+#ifdef _ALLBSD_SOURCE
+  return pthread_cond_timedwait(_cond, _mutex, _abstime);
+#else
+   if (is_NPTL()) {
+      return pthread_cond_timedwait(_cond, _mutex, _abstime);
+   } else {
+#ifndef IA64
+      // 6292965: BsdThreads pthread_cond_timedwait() resets FPU control
+      // word back to default 64bit precision if condvar is signaled. Java
+      // wants 53bit precision.  Save and restore current value.
+      int fpu = get_fpu_control_word();
+#endif // IA64
+      int status = pthread_cond_timedwait(_cond, _mutex, _abstime);
+#ifndef IA64
+      set_fpu_control_word(fpu);
+#endif // IA64
+      return status;
+   }
+#endif
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// debug support
+
+static address same_page(address x, address y) {
+  int page_bits = -os::vm_page_size();
+  if ((intptr_t(x) & page_bits) == (intptr_t(y) & page_bits))
+    return x;
+  else if (x > y)
+    return (address)(intptr_t(y) | ~page_bits) + 1;
+  else
+    return (address)(intptr_t(y) & page_bits);
+}
+
+bool os::find(address addr, outputStream* st) {
+  Dl_info dlinfo;
+  memset(&dlinfo, 0, sizeof(dlinfo));
+  if (dladdr(addr, &dlinfo)) {
+    st->print(PTR_FORMAT ": ", addr);
+    if (dlinfo.dli_sname != NULL) {
+      st->print("%s+%#x", dlinfo.dli_sname,
+                 addr - (intptr_t)dlinfo.dli_saddr);
+    } else if (dlinfo.dli_fname) {
+      st->print("<offset %#x>", addr - (intptr_t)dlinfo.dli_fbase);
+    } else {
+      st->print("<absolute address>");
+    }
+    if (dlinfo.dli_fname) {
+      st->print(" in %s", dlinfo.dli_fname);
+    }
+    if (dlinfo.dli_fbase) {
+      st->print(" at " PTR_FORMAT, dlinfo.dli_fbase);
+    }
+    st->cr();
+
+    if (Verbose) {
+      // decode some bytes around the PC
+      address begin = same_page(addr-40, addr);
+      address end   = same_page(addr+40, addr);
+      address       lowest = (address) dlinfo.dli_sname;
+      if (!lowest)  lowest = (address) dlinfo.dli_fbase;
+      if (begin < lowest)  begin = lowest;
+      Dl_info dlinfo2;
+      if (dladdr(end, &dlinfo2) && dlinfo2.dli_saddr != dlinfo.dli_saddr
+          && end > dlinfo2.dli_saddr && dlinfo2.dli_saddr > begin)
+        end = (address) dlinfo2.dli_saddr;
+      Disassembler::decode(begin, end, st);
+    }
+    return true;
+  }
+  return false;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// misc
+
+// This does not do anything on Bsd. This is basically a hook for being
+// able to use structured exception handling (thread-local exception filters)
+// on, e.g., Win32.
+void
+os::os_exception_wrapper(java_call_t f, JavaValue* value, methodHandle* method,
+                         JavaCallArguments* args, Thread* thread) {
+  f(value, method, args, thread);
+}
+
+void os::print_statistics() {
+}
+
+int os::message_box(const char* title, const char* message) {
+  int i;
+  fdStream err(defaultStream::error_fd());
+  for (i = 0; i < 78; i++) err.print_raw("=");
+  err.cr();
+  err.print_raw_cr(title);
+  for (i = 0; i < 78; i++) err.print_raw("-");
+  err.cr();
+  err.print_raw_cr(message);
+  for (i = 0; i < 78; i++) err.print_raw("=");
+  err.cr();
+
+  char buf[16];
+  // Prevent process from exiting upon "read error" without consuming all CPU
+  while (::read(0, buf, sizeof(buf)) <= 0) { ::sleep(100); }
+
+  return buf[0] == 'y' || buf[0] == 'Y';
+}
+
+int os::stat(const char *path, struct stat *sbuf) {
+  char pathbuf[MAX_PATH];
+  if (strlen(path) > MAX_PATH - 1) {
+    errno = ENAMETOOLONG;
+    return -1;
+  }
+  os::native_path(strcpy(pathbuf, path));
+  return ::stat(pathbuf, sbuf);
+}
+
+bool os::check_heap(bool force) {
+  return true;
+}
+
+int local_vsnprintf(char* buf, size_t count, const char* format, va_list args) {
+  return ::vsnprintf(buf, count, format, args);
+}
+
+// Is a (classpath) directory empty?
+bool os::dir_is_empty(const char* path) {
+  DIR *dir = NULL;
+  struct dirent *ptr;
+
+  dir = opendir(path);
+  if (dir == NULL) return true;
+
+  /* Scan the directory */
+  bool result = true;
+  char buf[sizeof(struct dirent) + MAX_PATH];
+  while (result && (ptr = ::readdir(dir)) != NULL) {
+    if (strcmp(ptr->d_name, ".") != 0 && strcmp(ptr->d_name, "..") != 0) {
+      result = false;
+    }
+  }
+  closedir(dir);
+  return result;
+}
+
+// This code originates from JDK's sysOpen and open64_w
+// from src/solaris/hpi/src/system_md.c
+
+#ifndef O_DELETE
+#define O_DELETE 0x10000
+#endif
+
+// Open a file. Unlink the file immediately after open returns
+// if the specified oflag has the O_DELETE flag set.
+// O_DELETE is used only in j2se/src/share/native/java/util/zip/ZipFile.c
+
+int os::open(const char *path, int oflag, int mode) {
+
+  if (strlen(path) > MAX_PATH - 1) {
+    errno = ENAMETOOLONG;
+    return -1;
+  }
+  int fd;
+  int o_delete = (oflag & O_DELETE);
+  oflag = oflag & ~O_DELETE;
+
+  fd = ::open(path, oflag, mode);
+  if (fd == -1) return -1;
+
+  //If the open succeeded, the file might still be a directory
+  {
+    struct stat buf;
+    int ret = ::fstat(fd, &buf);
+    int st_mode = buf.st_mode;
+
+    if (ret != -1) {
+      if ((st_mode & S_IFMT) == S_IFDIR) {
+        errno = EISDIR;
+        ::close(fd);
+        return -1;
+      }
+    } else {
+      ::close(fd);
+      return -1;
+    }
+  }
+
+    /*
+     * All file descriptors that are opened in the JVM and not
+     * specifically destined for a subprocess should have the
+     * close-on-exec flag set.  If we don't set it, then careless 3rd
+     * party native code might fork and exec without closing all
+     * appropriate file descriptors (e.g. as we do in closeDescriptors in
+     * UNIXProcess.c), and this in turn might:
+     *
+     * - cause end-of-file to fail to be detected on some file
+     *   descriptors, resulting in mysterious hangs, or
+     *
+     * - might cause an fopen in the subprocess to fail on a system
+     *   suffering from bug 1085341.
+     *
+     * (Yes, the default setting of the close-on-exec flag is a Unix
+     * design flaw)
+     *
+     * See:
+     * 1085341: 32-bit stdio routines should support file descriptors >255
+     * 4843136: (process) pipe file descriptor from Runtime.exec not being closed
+     * 6339493: (process) Runtime.exec does not close all file descriptors on Solaris 9
+     */
+#ifdef FD_CLOEXEC
+    {
+        int flags = ::fcntl(fd, F_GETFD);
+        if (flags != -1)
+            ::fcntl(fd, F_SETFD, flags | FD_CLOEXEC);
+    }
+#endif
+
+  if (o_delete != 0) {
+    ::unlink(path);
+  }
+  return fd;
+}
+
+
+// create binary file, rewriting existing file if required
+int os::create_binary_file(const char* path, bool rewrite_existing) {
+  int oflags = O_WRONLY | O_CREAT;
+  if (!rewrite_existing) {
+    oflags |= O_EXCL;
+  }
+  return ::open(path, oflags, S_IREAD | S_IWRITE);
+}
+
+// return current position of file pointer
+jlong os::current_file_offset(int fd) {
+  return (jlong)::lseek(fd, (off_t)0, SEEK_CUR);
+}
+
+// move file pointer to the specified offset
+jlong os::seek_to_file_offset(int fd, jlong offset) {
+  return (jlong)::lseek(fd, (off_t)offset, SEEK_SET);
+}
+
+// This code originates from JDK's sysAvailable
+// from src/solaris/hpi/src/native_threads/src/sys_api_td.c
+
+int os::available(int fd, jlong *bytes) {
+  jlong cur, end;
+  int mode;
+  struct stat buf;
+
+  if (::fstat(fd, &buf) >= 0) {
+    mode = buf.st_mode;
+    if (S_ISCHR(mode) || S_ISFIFO(mode) || S_ISSOCK(mode)) {
+      /*
+      * XXX: is the following call interruptible? If so, this might
+      * need to go through the INTERRUPT_IO() wrapper as for other
+      * blocking, interruptible calls in this file.
+      */
+      int n;
+      if (::ioctl(fd, FIONREAD, &n) >= 0) {
+        *bytes = n;
+        return 1;
+      }
+    }
+  }
+  if ((cur = ::lseek(fd, 0L, SEEK_CUR)) == -1) {
+    return 0;
+  } else if ((end = ::lseek(fd, 0L, SEEK_END)) == -1) {
+    return 0;
+  } else if (::lseek(fd, cur, SEEK_SET) == -1) {
+    return 0;
+  }
+  *bytes = end - cur;
+  return 1;
+}
+
+int os::socket_available(int fd, jint *pbytes) {
+   if (fd < 0)
+     return OS_OK;
+
+   int ret;
+
+   RESTARTABLE(::ioctl(fd, FIONREAD, pbytes), ret);
+
+   //%% note ioctl can return 0 when successful, JVM_SocketAvailable
+   // is expected to return 0 on failure and 1 on success to the jdk.
+
+   return (ret == OS_ERR) ? 0 : 1;
+}
+
+// Map a block of memory.
+char* os::map_memory(int fd, const char* file_name, size_t file_offset,
+                     char *addr, size_t bytes, bool read_only,
+                     bool allow_exec) {
+  int prot;
+  int flags;
+
+  if (read_only) {
+    prot = PROT_READ;
+    flags = MAP_SHARED;
+  } else {
+    prot = PROT_READ | PROT_WRITE;
+    flags = MAP_PRIVATE;
+  }
+
+  if (allow_exec) {
+    prot |= PROT_EXEC;
+  }
+
+  if (addr != NULL) {
+    flags |= MAP_FIXED;
+  }
+
+  char* mapped_address = (char*)mmap(addr, (size_t)bytes, prot, flags,
+                                     fd, file_offset);
+  if (mapped_address == MAP_FAILED) {
+    return NULL;
+  }
+  return mapped_address;
+}
+
+
+// Remap a block of memory.
+char* os::remap_memory(int fd, const char* file_name, size_t file_offset,
+                       char *addr, size_t bytes, bool read_only,
+                       bool allow_exec) {
+  // same as map_memory() on this OS
+  return os::map_memory(fd, file_name, file_offset, addr, bytes, read_only,
+                        allow_exec);
+}
+
+
+// Unmap a block of memory.
+bool os::unmap_memory(char* addr, size_t bytes) {
+  return munmap(addr, bytes) == 0;
+}
+
+#ifndef _ALLBSD_SOURCE
+static jlong slow_thread_cpu_time(Thread *thread, bool user_sys_cpu_time);
+
+static clockid_t thread_cpu_clockid(Thread* thread) {
+  pthread_t tid = thread->osthread()->pthread_id();
+  clockid_t clockid;
+
+  // Get thread clockid
+  int rc = os::Bsd::pthread_getcpuclockid(tid, &clockid);
+  assert(rc == 0, "pthread_getcpuclockid is expected to return 0 code");
+  return clockid;
+}
+#endif
+
+// current_thread_cpu_time(bool) and thread_cpu_time(Thread*, bool)
+// are used by JVM M&M and JVMTI to get user+sys or user CPU time
+// of a thread.
+//
+// current_thread_cpu_time() and thread_cpu_time(Thread*) returns
+// the fast estimate available on the platform.
+
+jlong os::current_thread_cpu_time() {
+#ifdef __APPLE__
+  return os::thread_cpu_time(Thread::current(), true /* user + sys */);
+#elif !defined(_ALLBSD_SOURCE)
+  if (os::Bsd::supports_fast_thread_cpu_time()) {
+    return os::Bsd::fast_thread_cpu_time(CLOCK_THREAD_CPUTIME_ID);
+  } else {
+    // return user + sys since the cost is the same
+    return slow_thread_cpu_time(Thread::current(), true /* user + sys */);
+  }
+#endif
+}
+
+jlong os::thread_cpu_time(Thread* thread) {
+#ifndef _ALLBSD_SOURCE
+  // consistent with what current_thread_cpu_time() returns
+  if (os::Bsd::supports_fast_thread_cpu_time()) {
+    return os::Bsd::fast_thread_cpu_time(thread_cpu_clockid(thread));
+  } else {
+    return slow_thread_cpu_time(thread, true /* user + sys */);
+  }
+#endif
+}
+
+jlong os::current_thread_cpu_time(bool user_sys_cpu_time) {
+#ifdef __APPLE__
+  return os::thread_cpu_time(Thread::current(), user_sys_cpu_time);
+#elif !defined(_ALLBSD_SOURCE)
+  if (user_sys_cpu_time && os::Bsd::supports_fast_thread_cpu_time()) {
+    return os::Bsd::fast_thread_cpu_time(CLOCK_THREAD_CPUTIME_ID);
+  } else {
+    return slow_thread_cpu_time(Thread::current(), user_sys_cpu_time);
+  }
+#endif
+}
+
+jlong os::thread_cpu_time(Thread *thread, bool user_sys_cpu_time) {
+#ifdef __APPLE__
+  struct thread_basic_info tinfo;
+  mach_msg_type_number_t tcount = THREAD_INFO_MAX;
+  kern_return_t kr;
+  mach_port_t mach_thread;
+
+  mach_thread = pthread_mach_thread_np(thread->osthread()->thread_id());
+  kr = thread_info(mach_thread, THREAD_BASIC_INFO, (thread_info_t)&tinfo, &tcount);
+  if (kr != KERN_SUCCESS)
+    return -1;
+
+  if (user_sys_cpu_time) {
+    jlong nanos;
+    nanos = ((jlong) tinfo.system_time.seconds + tinfo.user_time.seconds) * (jlong)1000000000;
+    nanos += ((jlong) tinfo.system_time.microseconds + (jlong) tinfo.user_time.microseconds) * (jlong)1000;
+    return nanos;
+  } else {
+    return ((jlong)tinfo.user_time.seconds * 1000000000) + ((jlong)tinfo.user_time.microseconds * (jlong)1000);
+  }
+#elif !defined(_ALLBSD_SOURCE)
+  if (user_sys_cpu_time && os::Bsd::supports_fast_thread_cpu_time()) {
+    return os::Bsd::fast_thread_cpu_time(thread_cpu_clockid(thread));
+  } else {
+    return slow_thread_cpu_time(thread, user_sys_cpu_time);
+  }
+#endif
+}
+
+#ifndef _ALLBSD_SOURCE
+//
+//  -1 on error.
+//
+
+static jlong slow_thread_cpu_time(Thread *thread, bool user_sys_cpu_time) {
+  static bool proc_pid_cpu_avail = true;
+  static bool proc_task_unchecked = true;
+  static const char *proc_stat_path = "/proc/%d/stat";
+  pid_t  tid = thread->osthread()->thread_id();
+  int i;
+  char *s;
+  char stat[2048];
+  int statlen;
+  char proc_name[64];
+  int count;
+  long sys_time, user_time;
+  char string[64];
+  char cdummy;
+  int idummy;
+  long ldummy;
+  FILE *fp;
+
+  // We first try accessing /proc/<pid>/cpu since this is faster to
+  // process.  If this file is not present (bsd kernels 2.5 and above)
+  // then we open /proc/<pid>/stat.
+  if ( proc_pid_cpu_avail ) {
+    sprintf(proc_name, "/proc/%d/cpu", tid);
+    fp =  fopen(proc_name, "r");
+    if ( fp != NULL ) {
+      count = fscanf( fp, "%s %lu %lu\n", string, &user_time, &sys_time);
+      fclose(fp);
+      if ( count != 3 ) return -1;
+
+      if (user_sys_cpu_time) {
+        return ((jlong)sys_time + (jlong)user_time) * (1000000000 / clock_tics_per_sec);
+      } else {
+        return (jlong)user_time * (1000000000 / clock_tics_per_sec);
+      }
+    }
+    else proc_pid_cpu_avail = false;
+  }
+
+  // The /proc/<tid>/stat aggregates per-process usage on
+  // new Bsd kernels 2.6+ where NPTL is supported.
+  // The /proc/self/task/<tid>/stat still has the per-thread usage.
+  // See bug 6328462.
+  // There can be no directory /proc/self/task on kernels 2.4 with NPTL
+  // and possibly in some other cases, so we check its availability.
+  if (proc_task_unchecked && os::Bsd::is_NPTL()) {
+    // This is executed only once
+    proc_task_unchecked = false;
+    fp = fopen("/proc/self/task", "r");
+    if (fp != NULL) {
+      proc_stat_path = "/proc/self/task/%d/stat";
+      fclose(fp);
+    }
+  }
+
+  sprintf(proc_name, proc_stat_path, tid);
+  fp = fopen(proc_name, "r");
+  if ( fp == NULL ) return -1;
+  statlen = fread(stat, 1, 2047, fp);
+  stat[statlen] = '\0';
+  fclose(fp);
+
+  // Skip pid and the command string. Note that we could be dealing with
+  // weird command names, e.g. user could decide to rename java launcher
+  // to "java 1.4.2 :)", then the stat file would look like
+  //                1234 (java 1.4.2 :)) R ... ...
+  // We don't really need to know the command string, just find the last
+  // occurrence of ")" and then start parsing from there. See bug 4726580.
+  s = strrchr(stat, ')');
+  i = 0;
+  if (s == NULL ) return -1;
+
+  // Skip blank chars
+  do s++; while (isspace(*s));
+
+  count = sscanf(s,"%c %d %d %d %d %d %lu %lu %lu %lu %lu %lu %lu",
+                 &cdummy, &idummy, &idummy, &idummy, &idummy, &idummy,
+                 &ldummy, &ldummy, &ldummy, &ldummy, &ldummy,
+                 &user_time, &sys_time);
+  if ( count != 13 ) return -1;
+  if (user_sys_cpu_time) {
+    return ((jlong)sys_time + (jlong)user_time) * (1000000000 / clock_tics_per_sec);
+  } else {
+    return (jlong)user_time * (1000000000 / clock_tics_per_sec);
+  }
+}
+#endif
+
+void os::current_thread_cpu_time_info(jvmtiTimerInfo *info_ptr) {
+  info_ptr->max_value = ALL_64_BITS;       // will not wrap in less than 64 bits
+  info_ptr->may_skip_backward = false;     // elapsed time not wall time
+  info_ptr->may_skip_forward = false;      // elapsed time not wall time
+  info_ptr->kind = JVMTI_TIMER_TOTAL_CPU;  // user+system time is returned
+}
+
+void os::thread_cpu_time_info(jvmtiTimerInfo *info_ptr) {
+  info_ptr->max_value = ALL_64_BITS;       // will not wrap in less than 64 bits
+  info_ptr->may_skip_backward = false;     // elapsed time not wall time
+  info_ptr->may_skip_forward = false;      // elapsed time not wall time
+  info_ptr->kind = JVMTI_TIMER_TOTAL_CPU;  // user+system time is returned
+}
+
+bool os::is_thread_cpu_time_supported() {
+#ifdef __APPLE__
+  return true;
+#elif defined(_ALLBSD_SOURCE)
+  return false;
+#else
+  return true;
+#endif
+}
+
+// System loadavg support.  Returns -1 if load average cannot be obtained.
+// Bsd doesn't yet have a (official) notion of processor sets,
+// so just return the system wide load average.
+int os::loadavg(double loadavg[], int nelem) {
+  return ::getloadavg(loadavg, nelem);
+}
+
+void os::pause() {
+  char filename[MAX_PATH];
+  if (PauseAtStartupFile && PauseAtStartupFile[0]) {
+    jio_snprintf(filename, MAX_PATH, PauseAtStartupFile);
+  } else {
+    jio_snprintf(filename, MAX_PATH, "./vm.paused.%d", current_process_id());
+  }
+
+  int fd = ::open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666);
+  if (fd != -1) {
+    struct stat buf;
+    ::close(fd);
+    while (::stat(filename, &buf) == 0) {
+      (void)::poll(NULL, 0, 100);
+    }
+  } else {
+    jio_fprintf(stderr,
+      "Could not open pause file '%s', continuing immediately.\n", filename);
+  }
+}
+
+
+// Refer to the comments in os_solaris.cpp park-unpark.
+//
+// Beware -- Some versions of NPTL embody a flaw where pthread_cond_timedwait() can
+// hang indefinitely.  For instance NPTL 0.60 on 2.4.21-4ELsmp is vulnerable.
+// For specifics regarding the bug see GLIBC BUGID 261237 :
+//    http://www.mail-archive.com/debian-glibc@lists.debian.org/msg10837.html.
+// Briefly, pthread_cond_timedwait() calls with an expiry time that's not in the future
+// will either hang or corrupt the condvar, resulting in subsequent hangs if the condvar
+// is used.  (The simple C test-case provided in the GLIBC bug report manifests the
+// hang).  The JVM is vulernable via sleep(), Object.wait(timo), LockSupport.parkNanos()
+// and monitorenter when we're using 1-0 locking.  All those operations may result in
+// calls to pthread_cond_timedwait().  Using LD_ASSUME_KERNEL to use an older version
+// of libpthread avoids the problem, but isn't practical.
+//
+// Possible remedies:
+//
+// 1.   Establish a minimum relative wait time.  50 to 100 msecs seems to work.
+//      This is palliative and probabilistic, however.  If the thread is preempted
+//      between the call to compute_abstime() and pthread_cond_timedwait(), more
+//      than the minimum period may have passed, and the abstime may be stale (in the
+//      past) resultin in a hang.   Using this technique reduces the odds of a hang
+//      but the JVM is still vulnerable, particularly on heavily loaded systems.
+//
+// 2.   Modify park-unpark to use per-thread (per ParkEvent) pipe-pairs instead
+//      of the usual flag-condvar-mutex idiom.  The write side of the pipe is set
+//      NDELAY. unpark() reduces to write(), park() reduces to read() and park(timo)
+//      reduces to poll()+read().  This works well, but consumes 2 FDs per extant
+//      thread.
+//
+// 3.   Embargo pthread_cond_timedwait() and implement a native "chron" thread
+//      that manages timeouts.  We'd emulate pthread_cond_timedwait() by enqueuing
+//      a timeout request to the chron thread and then blocking via pthread_cond_wait().
+//      This also works well.  In fact it avoids kernel-level scalability impediments
+//      on certain platforms that don't handle lots of active pthread_cond_timedwait()
+//      timers in a graceful fashion.
+//
+// 4.   When the abstime value is in the past it appears that control returns
+//      correctly from pthread_cond_timedwait(), but the condvar is left corrupt.
+//      Subsequent timedwait/wait calls may hang indefinitely.  Given that, we
+//      can avoid the problem by reinitializing the condvar -- by cond_destroy()
+//      followed by cond_init() -- after all calls to pthread_cond_timedwait().
+//      It may be possible to avoid reinitialization by checking the return
+//      value from pthread_cond_timedwait().  In addition to reinitializing the
+//      condvar we must establish the invariant that cond_signal() is only called
+//      within critical sections protected by the adjunct mutex.  This prevents
+//      cond_signal() from "seeing" a condvar that's in the midst of being
+//      reinitialized or that is corrupt.  Sadly, this invariant obviates the
+//      desirable signal-after-unlock optimization that avoids futile context switching.
+//
+//      I'm also concerned that some versions of NTPL might allocate an auxilliary
+//      structure when a condvar is used or initialized.  cond_destroy()  would
+//      release the helper structure.  Our reinitialize-after-timedwait fix
+//      put excessive stress on malloc/free and locks protecting the c-heap.
+//
+// We currently use (4).  See the WorkAroundNTPLTimedWaitHang flag.
+// It may be possible to refine (4) by checking the kernel and NTPL verisons
+// and only enabling the work-around for vulnerable environments.
+
+// utility to compute the abstime argument to timedwait:
+// millis is the relative timeout time
+// abstime will be the absolute timeout time
+// TODO: replace compute_abstime() with unpackTime()
+
+static struct timespec* compute_abstime(struct timespec* abstime, jlong millis) {
+  if (millis < 0)  millis = 0;
+  struct timeval now;
+  int status = gettimeofday(&now, NULL);
+  assert(status == 0, "gettimeofday");
+  jlong seconds = millis / 1000;
+  millis %= 1000;
+  if (seconds > 50000000) { // see man cond_timedwait(3T)
+    seconds = 50000000;
+  }
+  abstime->tv_sec = now.tv_sec  + seconds;
+  long       usec = now.tv_usec + millis * 1000;
+  if (usec >= 1000000) {
+    abstime->tv_sec += 1;
+    usec -= 1000000;
+  }
+  abstime->tv_nsec = usec * 1000;
+  return abstime;
+}
+
+
+// Test-and-clear _Event, always leaves _Event set to 0, returns immediately.
+// Conceptually TryPark() should be equivalent to park(0).
+
+int os::PlatformEvent::TryPark() {
+  for (;;) {
+    const int v = _Event ;
+    guarantee ((v == 0) || (v == 1), "invariant") ;
+    if (Atomic::cmpxchg (0, &_Event, v) == v) return v  ;
+  }
+}
+
+void os::PlatformEvent::park() {       // AKA "down()"
+  // Invariant: Only the thread associated with the Event/PlatformEvent
+  // may call park().
+  // TODO: assert that _Assoc != NULL or _Assoc == Self
+  int v ;
+  for (;;) {
+      v = _Event ;
+      if (Atomic::cmpxchg (v-1, &_Event, v) == v) break ;
+  }
+  guarantee (v >= 0, "invariant") ;
+  if (v == 0) {
+     // Do this the hard way by blocking ...
+     int status = pthread_mutex_lock(_mutex);
+     assert_status(status == 0, status, "mutex_lock");
+     guarantee (_nParked == 0, "invariant") ;
+     ++ _nParked ;
+     while (_Event < 0) {
+        status = pthread_cond_wait(_cond, _mutex);
+        // for some reason, under 2.7 lwp_cond_wait() may return ETIME ...
+        // Treat this the same as if the wait was interrupted
+        if (status == ETIMEDOUT) { status = EINTR; }
+        assert_status(status == 0 || status == EINTR, status, "cond_wait");
+     }
+     -- _nParked ;
+
+    // In theory we could move the ST of 0 into _Event past the unlock(),
+    // but then we'd need a MEMBAR after the ST.
+    _Event = 0 ;
+     status = pthread_mutex_unlock(_mutex);
+     assert_status(status == 0, status, "mutex_unlock");
+  }
+  guarantee (_Event >= 0, "invariant") ;
+}
+
+int os::PlatformEvent::park(jlong millis) {
+  guarantee (_nParked == 0, "invariant") ;
+
+  int v ;
+  for (;;) {
+      v = _Event ;
+      if (Atomic::cmpxchg (v-1, &_Event, v) == v) break ;
+  }
+  guarantee (v >= 0, "invariant") ;
+  if (v != 0) return OS_OK ;
+
+  // We do this the hard way, by blocking the thread.
+  // Consider enforcing a minimum timeout value.
+  struct timespec abst;
+  compute_abstime(&abst, millis);
+
+  int ret = OS_TIMEOUT;
+  int status = pthread_mutex_lock(_mutex);
+  assert_status(status == 0, status, "mutex_lock");
+  guarantee (_nParked == 0, "invariant") ;
+  ++_nParked ;
+
+  // Object.wait(timo) will return because of
+  // (a) notification
+  // (b) timeout
+  // (c) thread.interrupt
+  //
+  // Thread.interrupt and object.notify{All} both call Event::set.
+  // That is, we treat thread.interrupt as a special case of notification.
+  // The underlying Solaris implementation, cond_timedwait, admits
+  // spurious/premature wakeups, but the JLS/JVM spec prevents the
+  // JVM from making those visible to Java code.  As such, we must
+  // filter out spurious wakeups.  We assume all ETIME returns are valid.
+  //
+  // TODO: properly differentiate simultaneous notify+interrupt.
+  // In that case, we should propagate the notify to another waiter.
+
+  while (_Event < 0) {
+    status = os::Bsd::safe_cond_timedwait(_cond, _mutex, &abst);
+    if (status != 0 && WorkAroundNPTLTimedWaitHang) {
+      pthread_cond_destroy (_cond);
+      pthread_cond_init (_cond, NULL) ;
+    }
+    assert_status(status == 0 || status == EINTR ||
+                  status == ETIMEDOUT,
+                  status, "cond_timedwait");
+    if (!FilterSpuriousWakeups) break ;                 // previous semantics
+    if (status == ETIMEDOUT) break ;
+    // We consume and ignore EINTR and spurious wakeups.
+  }
+  --_nParked ;
+  if (_Event >= 0) {
+     ret = OS_OK;
+  }
+  _Event = 0 ;
+  status = pthread_mutex_unlock(_mutex);
+  assert_status(status == 0, status, "mutex_unlock");
+  assert (_nParked == 0, "invariant") ;
+  return ret;
+}
+
+void os::PlatformEvent::unpark() {
+  int v, AnyWaiters ;
+  for (;;) {
+      v = _Event ;
+      if (v > 0) {
+         // The LD of _Event could have reordered or be satisfied
+         // by a read-aside from this processor's write buffer.
+         // To avoid problems execute a barrier and then
+         // ratify the value.
+         OrderAccess::fence() ;
+         if (_Event == v) return ;
+         continue ;
+      }
+      if (Atomic::cmpxchg (v+1, &_Event, v) == v) break ;
+  }
+  if (v < 0) {
+     // Wait for the thread associated with the event to vacate
+     int status = pthread_mutex_lock(_mutex);
+     assert_status(status == 0, status, "mutex_lock");
+     AnyWaiters = _nParked ;
+     assert (AnyWaiters == 0 || AnyWaiters == 1, "invariant") ;
+     if (AnyWaiters != 0 && WorkAroundNPTLTimedWaitHang) {
+        AnyWaiters = 0 ;
+        pthread_cond_signal (_cond);
+     }
+     status = pthread_mutex_unlock(_mutex);
+     assert_status(status == 0, status, "mutex_unlock");
+     if (AnyWaiters != 0) {
+        status = pthread_cond_signal(_cond);
+        assert_status(status == 0, status, "cond_signal");
+     }
+  }
+
+  // Note that we signal() _after dropping the lock for "immortal" Events.
+  // This is safe and avoids a common class of  futile wakeups.  In rare
+  // circumstances this can cause a thread to return prematurely from
+  // cond_{timed}wait() but the spurious wakeup is benign and the victim will
+  // simply re-test the condition and re-park itself.
+}
+
+
+// JSR166
+// -------------------------------------------------------
+
+/*
+ * The solaris and bsd implementations of park/unpark are fairly
+ * conservative for now, but can be improved. They currently use a
+ * mutex/condvar pair, plus a a count.
+ * Park decrements count if > 0, else does a condvar wait.  Unpark
+ * sets count to 1 and signals condvar.  Only one thread ever waits
+ * on the condvar. Contention seen when trying to park implies that someone
+ * is unparking you, so don't wait. And spurious returns are fine, so there
+ * is no need to track notifications.
+ */
+
+
+#define NANOSECS_PER_SEC 1000000000
+#define NANOSECS_PER_MILLISEC 1000000
+#define MAX_SECS 100000000
+/*
+ * This code is common to bsd and solaris and will be moved to a
+ * common place in dolphin.
+ *
+ * The passed in time value is either a relative time in nanoseconds
+ * or an absolute time in milliseconds. Either way it has to be unpacked
+ * into suitable seconds and nanoseconds components and stored in the
+ * given timespec structure.
+ * Given time is a 64-bit value and the time_t used in the timespec is only
+ * a signed-32-bit value (except on 64-bit Bsd) we have to watch for
+ * overflow if times way in the future are given. Further on Solaris versions
+ * prior to 10 there is a restriction (see cond_timedwait) that the specified
+ * number of seconds, in abstime, is less than current_time  + 100,000,000.
+ * As it will be 28 years before "now + 100000000" will overflow we can
+ * ignore overflow and just impose a hard-limit on seconds using the value
+ * of "now + 100,000,000". This places a limit on the timeout of about 3.17
+ * years from "now".
+ */
+
+static void unpackTime(struct timespec* absTime, bool isAbsolute, jlong time) {
+  assert (time > 0, "convertTime");
+
+  struct timeval now;
+  int status = gettimeofday(&now, NULL);
+  assert(status == 0, "gettimeofday");
+
+  time_t max_secs = now.tv_sec + MAX_SECS;
+
+  if (isAbsolute) {
+    jlong secs = time / 1000;
+    if (secs > max_secs) {
+      absTime->tv_sec = max_secs;
+    }
+    else {
+      absTime->tv_sec = secs;
+    }
+    absTime->tv_nsec = (time % 1000) * NANOSECS_PER_MILLISEC;
+  }
+  else {
+    jlong secs = time / NANOSECS_PER_SEC;
+    if (secs >= MAX_SECS) {
+      absTime->tv_sec = max_secs;
+      absTime->tv_nsec = 0;
+    }
+    else {
+      absTime->tv_sec = now.tv_sec + secs;
+      absTime->tv_nsec = (time % NANOSECS_PER_SEC) + now.tv_usec*1000;
+      if (absTime->tv_nsec >= NANOSECS_PER_SEC) {
+        absTime->tv_nsec -= NANOSECS_PER_SEC;
+        ++absTime->tv_sec; // note: this must be <= max_secs
+      }
+    }
+  }
+  assert(absTime->tv_sec >= 0, "tv_sec < 0");
+  assert(absTime->tv_sec <= max_secs, "tv_sec > max_secs");
+  assert(absTime->tv_nsec >= 0, "tv_nsec < 0");
+  assert(absTime->tv_nsec < NANOSECS_PER_SEC, "tv_nsec >= nanos_per_sec");
+}
+
+void Parker::park(bool isAbsolute, jlong time) {
+  // Optional fast-path check:
+  // Return immediately if a permit is available.
+  if (_counter > 0) {
+      _counter = 0 ;
+      OrderAccess::fence();
+      return ;
+  }
+
+  Thread* thread = Thread::current();
+  assert(thread->is_Java_thread(), "Must be JavaThread");
+  JavaThread *jt = (JavaThread *)thread;
+
+  // Optional optimization -- avoid state transitions if there's an interrupt pending.
+  // Check interrupt before trying to wait
+  if (Thread::is_interrupted(thread, false)) {
+    return;
+  }
+
+  // Next, demultiplex/decode time arguments
+  struct timespec absTime;
+  if (time < 0 || (isAbsolute && time == 0) ) { // don't wait at all
+    return;
+  }
+  if (time > 0) {
+    unpackTime(&absTime, isAbsolute, time);
+  }
+
+
+  // Enter safepoint region
+  // Beware of deadlocks such as 6317397.
+  // The per-thread Parker:: mutex is a classic leaf-lock.
+  // In particular a thread must never block on the Threads_lock while
+  // holding the Parker:: mutex.  If safepoints are pending both the
+  // the ThreadBlockInVM() CTOR and DTOR may grab Threads_lock.
+  ThreadBlockInVM tbivm(jt);
+
+  // Don't wait if cannot get lock since interference arises from
+  // unblocking.  Also. check interrupt before trying wait
+  if (Thread::is_interrupted(thread, false) || pthread_mutex_trylock(_mutex) != 0) {
+    return;
+  }
+
+  int status ;
+  if (_counter > 0)  { // no wait needed
+    _counter = 0;
+    status = pthread_mutex_unlock(_mutex);
+    assert (status == 0, "invariant") ;
+    OrderAccess::fence();
+    return;
+  }
+
+#ifdef ASSERT
+  // Don't catch signals while blocked; let the running threads have the signals.
+  // (This allows a debugger to break into the running thread.)
+  sigset_t oldsigs;
+  sigset_t* allowdebug_blocked = os::Bsd::allowdebug_blocked_signals();
+  pthread_sigmask(SIG_BLOCK, allowdebug_blocked, &oldsigs);
+#endif
+
+  OSThreadWaitState osts(thread->osthread(), false /* not Object.wait() */);
+  jt->set_suspend_equivalent();
+  // cleared by handle_special_suspend_equivalent_condition() or java_suspend_self()
+
+  if (time == 0) {
+    status = pthread_cond_wait (_cond, _mutex) ;
+  } else {
+    status = os::Bsd::safe_cond_timedwait (_cond, _mutex, &absTime) ;
+    if (status != 0 && WorkAroundNPTLTimedWaitHang) {
+      pthread_cond_destroy (_cond) ;
+      pthread_cond_init    (_cond, NULL);
+    }
+  }
+  assert_status(status == 0 || status == EINTR ||
+                status == ETIMEDOUT,
+                status, "cond_timedwait");
+
+#ifdef ASSERT
+  pthread_sigmask(SIG_SETMASK, &oldsigs, NULL);
+#endif
+
+  _counter = 0 ;
+  status = pthread_mutex_unlock(_mutex) ;
+  assert_status(status == 0, status, "invariant") ;
+  // If externally suspended while waiting, re-suspend
+  if (jt->handle_special_suspend_equivalent_condition()) {
+    jt->java_suspend_self();
+  }
+
+  OrderAccess::fence();
+}
+
+void Parker::unpark() {
+  int s, status ;
+  status = pthread_mutex_lock(_mutex);
+  assert (status == 0, "invariant") ;
+  s = _counter;
+  _counter = 1;
+  if (s < 1) {
+     if (WorkAroundNPTLTimedWaitHang) {
+        status = pthread_cond_signal (_cond) ;
+        assert (status == 0, "invariant") ;
+        status = pthread_mutex_unlock(_mutex);
+        assert (status == 0, "invariant") ;
+     } else {
+        status = pthread_mutex_unlock(_mutex);
+        assert (status == 0, "invariant") ;
+        status = pthread_cond_signal (_cond) ;
+        assert (status == 0, "invariant") ;
+     }
+  } else {
+    pthread_mutex_unlock(_mutex);
+    assert (status == 0, "invariant") ;
+  }
+}
+
+
+/* Darwin has no "environ" in a dynamic library. */
+#ifdef __APPLE__
+#include <crt_externs.h>
+#define environ (*_NSGetEnviron())
+#else
+extern char** environ;
+#endif
+
+// Run the specified command in a separate process. Return its exit value,
+// or -1 on failure (e.g. can't fork a new process).
+// Unlike system(), this function can be called from signal handler. It
+// doesn't block SIGINT et al.
+int os::fork_and_exec(char* cmd) {
+  const char * argv[4] = {"sh", "-c", cmd, NULL};
+
+  // fork() in BsdThreads/NPTL is not async-safe. It needs to run
+  // pthread_atfork handlers and reset pthread library. All we need is a
+  // separate process to execve. Make a direct syscall to fork process.
+  // On IA64 there's no fork syscall, we have to use fork() and hope for
+  // the best...
+  pid_t pid = fork();
+
+  if (pid < 0) {
+    // fork failed
+    return -1;
+
+  } else if (pid == 0) {
+    // child process
+
+    // execve() in BsdThreads will call pthread_kill_other_threads_np()
+    // first to kill every thread on the thread list. Because this list is
+    // not reset by fork() (see notes above), execve() will instead kill
+    // every thread in the parent process. We know this is the only thread
+    // in the new process, so make a system call directly.
+    // IA64 should use normal execve() from glibc to match the glibc fork()
+    // above.
+    execve("/bin/sh", (char* const*)argv, environ);
+
+    // execve failed
+    _exit(-1);
+
+  } else  {
+    // copied from J2SE ..._waitForProcessExit() in UNIXProcess_md.c; we don't
+    // care about the actual exit code, for now.
+
+    int status;
+
+    // Wait for the child process to exit.  This returns immediately if
+    // the child has already exited. */
+    while (waitpid(pid, &status, 0) < 0) {
+        switch (errno) {
+        case ECHILD: return 0;
+        case EINTR: break;
+        default: return -1;
+        }
+    }
+
+    if (WIFEXITED(status)) {
+       // The child exited normally; get its exit code.
+       return WEXITSTATUS(status);
+    } else if (WIFSIGNALED(status)) {
+       // The child exited because of a signal
+       // The best value to return is 0x80 + signal number,
+       // because that is what all Unix shells do, and because
+       // it allows callers to distinguish between process exit and
+       // process death by signal.
+       return 0x80 + WTERMSIG(status);
+    } else {
+       // Unknown exit code; pass it through
+       return status;
+    }
+  }
+}
+
+// is_headless_jre()
+//
+// Test for the existence of libmawt in motif21 or xawt directories
+// in order to report if we are running in a headless jre
+//
+bool os::is_headless_jre() {
+    struct stat statbuf;
+    char buf[MAXPATHLEN];
+    char libmawtpath[MAXPATHLEN];
+    const char *xawtstr  = "/xawt/libmawt.so";
+    const char *motifstr = "/motif21/libmawt.so";
+    char *p;
+
+    // Get path to libjvm.so
+    os::jvm_path(buf, sizeof(buf));
+
+    // Get rid of libjvm.so
+    p = strrchr(buf, '/');
+    if (p == NULL) return false;
+    else *p = '\0';
+
+    // Get rid of client or server
+    p = strrchr(buf, '/');
+    if (p == NULL) return false;
+    else *p = '\0';
+
+    // check xawt/libmawt.so
+    strcpy(libmawtpath, buf);
+    strcat(libmawtpath, xawtstr);
+    if (::stat(libmawtpath, &statbuf) == 0) return false;
+
+    // check motif21/libmawt.so
+    strcpy(libmawtpath, buf);
+    strcat(libmawtpath, motifstr);
+    if (::stat(libmawtpath, &statbuf) == 0) return false;
+
+    return true;
+}
diff --git a/hotspot/src/os/bsd/vm/os_bsd.hpp b/hotspot/src/os/bsd/vm/os_bsd.hpp
new file mode 100644
index 0000000..271d1e2
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/os_bsd.hpp
@@ -0,0 +1,368 @@
+/*
+ * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_BSD_VM_OS_BSD_HPP
+#define OS_BSD_VM_OS_BSD_HPP
+
+// Bsd_OS defines the interface to Bsd operating systems
+
+/* pthread_getattr_np comes with BsdThreads-0.9-7 on RedHat 7.1 */
+typedef int (*pthread_getattr_func_type) (pthread_t, pthread_attr_t *);
+
+#ifdef __APPLE__
+// Mac OS X doesn't support clock_gettime. Stub out the type, it is
+// unused
+typedef int clockid_t;
+#endif
+
+class Bsd {
+  friend class os;
+
+  // For signal-chaining
+#define MAXSIGNUM 32
+  static struct sigaction sigact[MAXSIGNUM]; // saved preinstalled sigactions
+  static unsigned int sigs;             // mask of signals that have
+                                        // preinstalled signal handlers
+  static bool libjsig_is_loaded;        // libjsig that interposes sigaction(),
+                                        // __sigaction(), signal() is loaded
+  static struct sigaction *(*get_signal_action)(int);
+  static struct sigaction *get_preinstalled_handler(int);
+  static void save_preinstalled_handler(int, struct sigaction&);
+
+  static void check_signal_handler(int sig);
+
+  // For signal flags diagnostics
+  static int sigflags[MAXSIGNUM];
+
+  static int (*_clock_gettime)(clockid_t, struct timespec *);
+#ifndef _ALLBSD_SOURCE
+  static int (*_pthread_getcpuclockid)(pthread_t, clockid_t *);
+
+  static address   _initial_thread_stack_bottom;
+  static uintptr_t _initial_thread_stack_size;
+
+  static const char *_glibc_version;
+  static const char *_libpthread_version;
+
+  static bool _is_floating_stack;
+  static bool _is_NPTL;
+  static bool _supports_fast_thread_cpu_time;
+#endif
+
+  static GrowableArray<int>* _cpu_to_node;
+
+ protected:
+
+  static julong _physical_memory;
+  static pthread_t _main_thread;
+#ifndef _ALLBSD_SOURCE
+  static Mutex* _createThread_lock;
+#endif
+  static int _page_size;
+
+  static julong available_memory();
+  static julong physical_memory() { return _physical_memory; }
+  static void initialize_system_info();
+
+#ifndef _ALLBSD_SOURCE
+  static void set_glibc_version(const char *s)      { _glibc_version = s; }
+  static void set_libpthread_version(const char *s) { _libpthread_version = s; }
+#endif
+
+  static bool supports_variable_stack_size();
+
+#ifndef _ALLBSD_SOURCE
+  static void set_is_NPTL()                   { _is_NPTL = true;  }
+  static void set_is_BsdThreads()           { _is_NPTL = false; }
+  static void set_is_floating_stack()         { _is_floating_stack = true; }
+#endif
+
+  static void rebuild_cpu_to_node_map();
+  static GrowableArray<int>* cpu_to_node()    { return _cpu_to_node; }
+
+  static bool hugetlbfs_sanity_check(bool warn, size_t page_size);
+
+ public:
+
+  static void init_thread_fpu_state();
+#ifndef _ALLBSD_SOURCE
+  static int  get_fpu_control_word();
+  static void set_fpu_control_word(int fpu_control);
+#endif
+  static pthread_t main_thread(void)                                { return _main_thread; }
+
+#ifndef _ALLBSD_SOURCE
+  // returns kernel thread id (similar to LWP id on Solaris), which can be
+  // used to access /proc
+  static pid_t gettid();
+  static void set_createThread_lock(Mutex* lk)                      { _createThread_lock = lk; }
+  static Mutex* createThread_lock(void)                             { return _createThread_lock; }
+#endif
+  static void hotspot_sigmask(Thread* thread);
+
+#ifndef _ALLBSD_SOURCE
+  static address   initial_thread_stack_bottom(void)                { return _initial_thread_stack_bottom; }
+  static uintptr_t initial_thread_stack_size(void)                  { return _initial_thread_stack_size; }
+#endif
+  static bool is_initial_thread(void);
+
+  static int page_size(void)                                        { return _page_size; }
+  static void set_page_size(int val)                                { _page_size = val; }
+
+  static address   ucontext_get_pc(ucontext_t* uc);
+  static intptr_t* ucontext_get_sp(ucontext_t* uc);
+  static intptr_t* ucontext_get_fp(ucontext_t* uc);
+
+  // For Analyzer Forte AsyncGetCallTrace profiling support:
+  //
+  // This interface should be declared in os_bsd_i486.hpp, but
+  // that file provides extensions to the os class and not the
+  // Bsd class.
+  static ExtendedPC fetch_frame_from_ucontext(Thread* thread, ucontext_t* uc,
+    intptr_t** ret_sp, intptr_t** ret_fp);
+
+  // This boolean allows users to forward their own non-matching signals
+  // to JVM_handle_bsd_signal, harmlessly.
+  static bool signal_handlers_are_installed;
+
+  static int get_our_sigflags(int);
+  static void set_our_sigflags(int, int);
+  static void signal_sets_init();
+  static void install_signal_handlers();
+  static void set_signal_handler(int, bool);
+  static bool is_sig_ignored(int sig);
+
+  static sigset_t* unblocked_signals();
+  static sigset_t* vm_signals();
+  static sigset_t* allowdebug_blocked_signals();
+
+  // For signal-chaining
+  static struct sigaction *get_chained_signal_action(int sig);
+  static bool chained_handler(int sig, siginfo_t* siginfo, void* context);
+
+#ifndef _ALLBSD_SOURCE
+  // GNU libc and libpthread version strings
+  static const char *glibc_version()          { return _glibc_version; }
+  static const char *libpthread_version()     { return _libpthread_version; }
+
+  // NPTL or BsdThreads?
+  static bool is_BsdThreads()               { return !_is_NPTL; }
+  static bool is_NPTL()                       { return _is_NPTL;  }
+
+  // NPTL is always floating stack. BsdThreads could be using floating
+  // stack or fixed stack.
+  static bool is_floating_stack()             { return _is_floating_stack; }
+
+  static void libpthread_init();
+  static bool libnuma_init();
+  static void* libnuma_dlsym(void* handle, const char* name);
+#endif
+  // Minimum stack size a thread can be created with (allowing
+  // the VM to completely create the thread and enter user code)
+  static size_t min_stack_allowed;
+
+  // Return default stack size or guard size for the specified thread type
+  static size_t default_stack_size(os::ThreadType thr_type);
+  static size_t default_guard_size(os::ThreadType thr_type);
+
+#ifndef _ALLBSD_SOURCE
+  static void capture_initial_stack(size_t max_size);
+
+  // Stack overflow handling
+  static bool manually_expand_stack(JavaThread * t, address addr);
+  static int max_register_window_saves_before_flushing();
+#endif
+
+  // Real-time clock functions
+  static void clock_init(void);
+
+#ifndef _ALLBSD_SOURCE
+  // fast POSIX clocks support
+  static void fast_thread_clock_init(void);
+#endif
+
+  static bool supports_monotonic_clock() {
+    return _clock_gettime != NULL;
+  }
+
+  static int clock_gettime(clockid_t clock_id, struct timespec *tp) {
+    return _clock_gettime ? _clock_gettime(clock_id, tp) : -1;
+  }
+
+#ifndef _ALLBSD_SOURCE
+  static int pthread_getcpuclockid(pthread_t tid, clockid_t *clock_id) {
+    return _pthread_getcpuclockid ? _pthread_getcpuclockid(tid, clock_id) : -1;
+  }
+
+  static bool supports_fast_thread_cpu_time() {
+    return _supports_fast_thread_cpu_time;
+  }
+
+  static jlong fast_thread_cpu_time(clockid_t clockid);
+#endif
+
+  // Stack repair handling
+
+  // none present
+
+  // BsdThreads work-around for 6292965
+  static int safe_cond_timedwait(pthread_cond_t *_cond, pthread_mutex_t *_mutex, const struct timespec *_abstime);
+
+
+  // Bsd suspend/resume support - this helper is a shadow of its former
+  // self now that low-level suspension is barely used, and old workarounds
+  // for BsdThreads are no longer needed.
+  class SuspendResume {
+  private:
+    volatile int _suspend_action;
+    // values for suspend_action:
+    #define SR_NONE               (0x00)
+    #define SR_SUSPEND            (0x01)  // suspend request
+    #define SR_CONTINUE           (0x02)  // resume request
+
+    volatile jint _state;
+    // values for _state: + SR_NONE
+    #define SR_SUSPENDED          (0x20)
+  public:
+    SuspendResume() { _suspend_action = SR_NONE; _state = SR_NONE; }
+
+    int suspend_action() const     { return _suspend_action; }
+    void set_suspend_action(int x) { _suspend_action = x;    }
+
+    // atomic updates for _state
+    void set_suspended()           {
+      jint temp, temp2;
+      do {
+        temp = _state;
+        temp2 = Atomic::cmpxchg(temp | SR_SUSPENDED, &_state, temp);
+      } while (temp2 != temp);
+    }
+    void clear_suspended()        {
+      jint temp, temp2;
+      do {
+        temp = _state;
+        temp2 = Atomic::cmpxchg(temp & ~SR_SUSPENDED, &_state, temp);
+      } while (temp2 != temp);
+    }
+    bool is_suspended()            { return _state & SR_SUSPENDED;       }
+
+    #undef SR_SUSPENDED
+  };
+
+private:
+  typedef int (*sched_getcpu_func_t)(void);
+  typedef int (*numa_node_to_cpus_func_t)(int node, unsigned long *buffer, int bufferlen);
+  typedef int (*numa_max_node_func_t)(void);
+  typedef int (*numa_available_func_t)(void);
+  typedef int (*numa_tonode_memory_func_t)(void *start, size_t size, int node);
+  typedef void (*numa_interleave_memory_func_t)(void *start, size_t size, unsigned long *nodemask);
+
+  static sched_getcpu_func_t _sched_getcpu;
+  static numa_node_to_cpus_func_t _numa_node_to_cpus;
+  static numa_max_node_func_t _numa_max_node;
+  static numa_available_func_t _numa_available;
+  static numa_tonode_memory_func_t _numa_tonode_memory;
+  static numa_interleave_memory_func_t _numa_interleave_memory;
+  static unsigned long* _numa_all_nodes;
+
+  static void set_sched_getcpu(sched_getcpu_func_t func) { _sched_getcpu = func; }
+  static void set_numa_node_to_cpus(numa_node_to_cpus_func_t func) { _numa_node_to_cpus = func; }
+  static void set_numa_max_node(numa_max_node_func_t func) { _numa_max_node = func; }
+  static void set_numa_available(numa_available_func_t func) { _numa_available = func; }
+  static void set_numa_tonode_memory(numa_tonode_memory_func_t func) { _numa_tonode_memory = func; }
+  static void set_numa_interleave_memory(numa_interleave_memory_func_t func) { _numa_interleave_memory = func; }
+  static void set_numa_all_nodes(unsigned long* ptr) { _numa_all_nodes = ptr; }
+public:
+  static int sched_getcpu()  { return _sched_getcpu != NULL ? _sched_getcpu() : -1; }
+  static int numa_node_to_cpus(int node, unsigned long *buffer, int bufferlen) {
+    return _numa_node_to_cpus != NULL ? _numa_node_to_cpus(node, buffer, bufferlen) : -1;
+  }
+  static int numa_max_node() { return _numa_max_node != NULL ? _numa_max_node() : -1; }
+  static int numa_available() { return _numa_available != NULL ? _numa_available() : -1; }
+  static int numa_tonode_memory(void *start, size_t size, int node) {
+    return _numa_tonode_memory != NULL ? _numa_tonode_memory(start, size, node) : -1;
+  }
+  static void numa_interleave_memory(void *start, size_t size) {
+    if (_numa_interleave_memory != NULL && _numa_all_nodes != NULL) {
+      _numa_interleave_memory(start, size, _numa_all_nodes);
+    }
+  }
+  static int get_node_by_cpu(int cpu_id);
+};
+
+
+class PlatformEvent : public CHeapObj {
+  private:
+    double CachePad [4] ;   // increase odds that _mutex is sole occupant of cache line
+    volatile int _Event ;
+    volatile int _nParked ;
+    pthread_mutex_t _mutex  [1] ;
+    pthread_cond_t  _cond   [1] ;
+    double PostPad  [2] ;
+    Thread * _Assoc ;
+
+  public:       // TODO-FIXME: make dtor private
+    ~PlatformEvent() { guarantee (0, "invariant") ; }
+
+  public:
+    PlatformEvent() {
+      int status;
+      status = pthread_cond_init (_cond, NULL);
+      assert_status(status == 0, status, "cond_init");
+      status = pthread_mutex_init (_mutex, NULL);
+      assert_status(status == 0, status, "mutex_init");
+      _Event   = 0 ;
+      _nParked = 0 ;
+      _Assoc   = NULL ;
+    }
+
+    // Use caution with reset() and fired() -- they may require MEMBARs
+    void reset() { _Event = 0 ; }
+    int  fired() { return _Event; }
+    void park () ;
+    void unpark () ;
+    int  TryPark () ;
+    int  park (jlong millis) ;
+    void SetAssociation (Thread * a) { _Assoc = a ; }
+} ;
+
+class PlatformParker : public CHeapObj {
+  protected:
+    pthread_mutex_t _mutex [1] ;
+    pthread_cond_t  _cond  [1] ;
+
+  public:       // TODO-FIXME: make dtor private
+    ~PlatformParker() { guarantee (0, "invariant") ; }
+
+  public:
+    PlatformParker() {
+      int status;
+      status = pthread_cond_init (_cond, NULL);
+      assert_status(status == 0, status, "cond_init");
+      status = pthread_mutex_init (_mutex, NULL);
+      assert_status(status == 0, status, "mutex_init");
+    }
+} ;
+
+#endif // OS_BSD_VM_OS_BSD_HPP
diff --git a/hotspot/src/os/bsd/vm/os_bsd.inline.hpp b/hotspot/src/os/bsd/vm/os_bsd.inline.hpp
new file mode 100644
index 0000000..731a7e6
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/os_bsd.inline.hpp
@@ -0,0 +1,302 @@
+/*
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_BSD_VM_OS_BSD_INLINE_HPP
+#define OS_BSD_VM_OS_BSD_INLINE_HPP
+
+#include "runtime/atomic.hpp"
+#include "runtime/os.hpp"
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "atomic_bsd_x86.inline.hpp"
+# include "orderAccess_bsd_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "atomic_bsd_zero.inline.hpp"
+# include "orderAccess_bsd_zero.inline.hpp"
+#endif
+
+// System includes
+
+#include <unistd.h>
+#include <sys/socket.h>
+#include <sys/poll.h>
+#include <netdb.h>
+
+inline void* os::thread_local_storage_at(int index) {
+  return pthread_getspecific((pthread_key_t)index);
+}
+
+inline const char* os::file_separator() {
+  return "/";
+}
+
+inline const char* os::line_separator() {
+  return "\n";
+}
+
+inline const char* os::path_separator() {
+  return ":";
+}
+
+inline const char* os::jlong_format_specifier() {
+  return "%lld";
+}
+
+inline const char* os::julong_format_specifier() {
+  return "%llu";
+}
+
+// File names are case-sensitive on windows only
+inline int os::file_name_strcmp(const char* s1, const char* s2) {
+  return strcmp(s1, s2);
+}
+
+inline bool os::obsolete_option(const JavaVMOption *option) {
+  return false;
+}
+
+inline bool os::uses_stack_guard_pages() {
+  return true;
+}
+
+inline bool os::allocate_stack_guard_pages() {
+  assert(uses_stack_guard_pages(), "sanity check");
+#if !defined(__FreeBSD__) || __FreeBSD__ < 5
+  // Since FreeBSD 4 uses malloc() for allocating the thread stack
+  // there is no need to do anything extra to allocate the guard pages
+  return false;
+#else
+  // FreeBSD 5+ uses mmap MAP_STACK for allocating the thread stacks.
+  // Must 'allocate' them or guard pages are ignored.
+  return true;
+#endif
+}
+
+
+// On Bsd, reservations are made on a page by page basis, nothing to do.
+inline void os::split_reserved_memory(char *base, size_t size,
+                                      size_t split, bool realloc) {
+}
+
+
+// Bang the shadow pages if they need to be touched to be mapped.
+inline void os::bang_stack_shadow_pages() {
+}
+
+inline void os::dll_unload(void *lib) {
+  ::dlclose(lib);
+}
+
+inline const int os::default_file_open_flags() { return 0;}
+
+inline DIR* os::opendir(const char* dirname)
+{
+  assert(dirname != NULL, "just checking");
+  return ::opendir(dirname);
+}
+
+inline int os::readdir_buf_size(const char *path)
+{
+  return NAME_MAX + sizeof(dirent) + 1;
+}
+
+inline jlong os::lseek(int fd, jlong offset, int whence) {
+  return (jlong) ::lseek(fd, offset, whence);
+}
+
+inline int os::fsync(int fd) {
+  return ::fsync(fd);
+}
+
+inline char* os::native_path(char *path) {
+  return path;
+}
+
+inline int os::ftruncate(int fd, jlong length) {
+  return ::ftruncate(fd, length);
+}
+
+inline struct dirent* os::readdir(DIR* dirp, dirent *dbuf)
+{
+  dirent* p;
+  int status;
+  assert(dirp != NULL, "just checking");
+
+  // NOTE: Bsd readdir_r (on RH 6.2 and 7.2 at least) is NOT like the POSIX
+  // version. Here is the doc for this function:
+  // http://www.gnu.org/manual/glibc-2.2.3/html_node/libc_262.html
+
+  if((status = ::readdir_r(dirp, dbuf, &p)) != 0) {
+    errno = status;
+    return NULL;
+  } else
+    return p;
+}
+
+inline int os::closedir(DIR *dirp) {
+  assert(dirp != NULL, "argument is NULL");
+  return ::closedir(dirp);
+}
+
+// macros for restartable system calls
+
+#define RESTARTABLE(_cmd, _result) do { \
+    _result = _cmd; \
+  } while(((int)_result == OS_ERR) && (errno == EINTR))
+
+#define RESTARTABLE_RETURN_INT(_cmd) do { \
+  int _result; \
+  RESTARTABLE(_cmd, _result); \
+  return _result; \
+} while(false)
+
+inline bool os::numa_has_static_binding()   { return true; }
+inline bool os::numa_has_group_homing()     { return false;  }
+
+inline size_t os::restartable_read(int fd, void *buf, unsigned int nBytes) {
+  size_t res;
+  RESTARTABLE( (size_t) ::read(fd, buf, (size_t) nBytes), res);
+  return res;
+}
+
+inline size_t os::write(int fd, const void *buf, unsigned int nBytes) {
+  size_t res;
+  RESTARTABLE((size_t) ::write(fd, buf, (size_t) nBytes), res);
+  return res;
+}
+
+inline int os::close(int fd) {
+  RESTARTABLE_RETURN_INT(::close(fd));
+}
+
+inline int os::socket_close(int fd) {
+  RESTARTABLE_RETURN_INT(::close(fd));
+}
+
+inline int os::socket(int domain, int type, int protocol) {
+  return ::socket(domain, type, protocol);
+}
+
+inline int os::recv(int fd, char *buf, int nBytes, int flags) {
+  RESTARTABLE_RETURN_INT(::recv(fd, buf, nBytes, (unsigned int) flags));
+}
+
+inline int os::send(int fd, char *buf, int nBytes, int flags) {
+  RESTARTABLE_RETURN_INT(::send(fd, buf, nBytes, (unsigned int) flags));
+}
+
+inline int os::raw_send(int fd, char *buf, int nBytes, int flags) {
+  return os::send(fd, buf, nBytes, flags);
+}
+
+inline int os::timeout(int fd, long timeout) {
+  julong prevtime,newtime;
+  struct timeval t;
+
+  gettimeofday(&t, NULL);
+  prevtime = ((julong)t.tv_sec * 1000)  +  t.tv_usec / 1000;
+
+  for(;;) {
+    struct pollfd pfd;
+
+    pfd.fd = fd;
+    pfd.events = POLLIN | POLLERR;
+
+    int res = ::poll(&pfd, 1, timeout);
+
+    if (res == OS_ERR && errno == EINTR) {
+
+      // On Bsd any value < 0 means "forever"
+
+      if(timeout >= 0) {
+        gettimeofday(&t, NULL);
+        newtime = ((julong)t.tv_sec * 1000)  +  t.tv_usec / 1000;
+        timeout -= newtime - prevtime;
+        if(timeout <= 0)
+          return OS_OK;
+        prevtime = newtime;
+      }
+    } else
+      return res;
+  }
+}
+
+inline int os::listen(int fd, int count) {
+  return ::listen(fd, count);
+}
+
+inline int os::connect(int fd, struct sockaddr *him, int len) {
+  RESTARTABLE_RETURN_INT(::connect(fd, him, len));
+}
+
+inline int os::accept(int fd, struct sockaddr *him, int *len) {
+  // This cast is from int to unsigned int on bsd.  Since we
+  // only pass the parameter "len" around the vm and don't try to
+  // fetch it's value, this cast is safe for now. The java.net group
+  // may need and want to change this interface someday if socklen_t goes
+  // to 64 bits on some platform that we support.
+
+  // At least OpenBSD and FreeBSD can return EINTR from accept.
+  RESTARTABLE_RETURN_INT(::accept(fd, him, (socklen_t *)len));
+}
+
+inline int os::recvfrom(int fd, char *buf, int nBytes, int flags,
+                         sockaddr *from, int *fromlen) {
+  RESTARTABLE_RETURN_INT(::recvfrom(fd, buf, nBytes, (unsigned int) flags, from, (socklen_t *)fromlen));
+}
+
+inline int os::sendto(int fd, char *buf, int len, int flags,
+                        struct sockaddr *to, int tolen) {
+  RESTARTABLE_RETURN_INT(::sendto(fd, buf, len, (unsigned int) flags, to, tolen));
+}
+
+inline int os::socket_shutdown(int fd, int howto){
+  return ::shutdown(fd, howto);
+}
+
+inline int os::bind(int fd, struct sockaddr *him, int len){
+  return ::bind(fd, him, len);
+}
+
+inline int os::get_sock_name(int fd, struct sockaddr *him, int *len){
+  return ::getsockname(fd, him, (socklen_t *)len);
+}
+
+inline int os::get_host_name(char* name, int namelen){
+  return ::gethostname(name, namelen);
+}
+
+inline struct hostent*  os::get_host_by_name(char* name) {
+  return ::gethostbyname(name);
+}
+inline int os::get_sock_opt(int fd, int level, int optname,
+                             char *optval, int* optlen){
+  return ::getsockopt(fd, level, optname, optval, (socklen_t *)optlen);
+}
+
+inline int os::set_sock_opt(int fd, int level, int optname,
+                             const char *optval, int optlen){
+  return ::setsockopt(fd, level, optname, optval, optlen);
+}
+#endif // OS_BSD_VM_OS_BSD_INLINE_HPP
diff --git a/hotspot/src/os/bsd/vm/os_share_bsd.hpp b/hotspot/src/os/bsd/vm/os_share_bsd.hpp
new file mode 100644
index 0000000..5caa782
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/os_share_bsd.hpp
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_BSD_VM_OS_SHARE_BSD_HPP
+#define OS_BSD_VM_OS_SHARE_BSD_HPP
+
+// misc
+void signalHandler(int, siginfo_t*, ucontext_t*);
+void handle_unexpected_exception(Thread* thread, int sig, siginfo_t* info, address pc, address adjusted_pc);
+#ifndef PRODUCT
+void continue_with_dump(void);
+#endif
+
+#define PROCFILE_LENGTH 128
+
+#endif // OS_BSD_VM_OS_SHARE_BSD_HPP
diff --git a/hotspot/src/os/bsd/vm/perfMemory_bsd.cpp b/hotspot/src/os/bsd/vm/perfMemory_bsd.cpp
new file mode 100644
index 0000000..c93289e
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/perfMemory_bsd.cpp
@@ -0,0 +1,1041 @@
+/*
+ * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "memory/allocation.inline.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/oop.inline.hpp"
+#include "os_bsd.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/perfMemory.hpp"
+#include "utilities/exceptions.hpp"
+
+// put OS-includes here
+# include <sys/types.h>
+# include <sys/mman.h>
+# include <errno.h>
+# include <stdio.h>
+# include <unistd.h>
+# include <sys/stat.h>
+# include <signal.h>
+# include <pwd.h>
+
+static char* backing_store_file_name = NULL;  // name of the backing store
+                                              // file, if successfully created.
+
+// Standard Memory Implementation Details
+
+// create the PerfData memory region in standard memory.
+//
+static char* create_standard_memory(size_t size) {
+
+  // allocate an aligned chuck of memory
+  char* mapAddress = os::reserve_memory(size);
+
+  if (mapAddress == NULL) {
+    return NULL;
+  }
+
+  // commit memory
+  if (!os::commit_memory(mapAddress, size)) {
+    if (PrintMiscellaneous && Verbose) {
+      warning("Could not commit PerfData memory\n");
+    }
+    os::release_memory(mapAddress, size);
+    return NULL;
+  }
+
+  return mapAddress;
+}
+
+// delete the PerfData memory region
+//
+static void delete_standard_memory(char* addr, size_t size) {
+
+  // there are no persistent external resources to cleanup for standard
+  // memory. since DestroyJavaVM does not support unloading of the JVM,
+  // cleanup of the memory resource is not performed. The memory will be
+  // reclaimed by the OS upon termination of the process.
+  //
+  return;
+}
+
+// save the specified memory region to the given file
+//
+// Note: this function might be called from signal handler (by os::abort()),
+// don't allocate heap memory.
+//
+static void save_memory_to_file(char* addr, size_t size) {
+
+ const char* destfile = PerfMemory::get_perfdata_file_path();
+ assert(destfile[0] != '\0', "invalid PerfData file path");
+
+  int result;
+
+  RESTARTABLE(::open(destfile, O_CREAT|O_WRONLY|O_TRUNC, S_IREAD|S_IWRITE),
+              result);;
+  if (result == OS_ERR) {
+    if (PrintMiscellaneous && Verbose) {
+      warning("Could not create Perfdata save file: %s: %s\n",
+              destfile, strerror(errno));
+    }
+  } else {
+    int fd = result;
+
+    for (size_t remaining = size; remaining > 0;) {
+
+      RESTARTABLE(::write(fd, addr, remaining), result);
+      if (result == OS_ERR) {
+        if (PrintMiscellaneous && Verbose) {
+          warning("Could not write Perfdata save file: %s: %s\n",
+                  destfile, strerror(errno));
+        }
+        break;
+      }
+
+      remaining -= (size_t)result;
+      addr += result;
+    }
+
+    RESTARTABLE(::close(fd), result);
+    if (PrintMiscellaneous && Verbose) {
+      if (result == OS_ERR) {
+        warning("Could not close %s: %s\n", destfile, strerror(errno));
+      }
+    }
+  }
+  FREE_C_HEAP_ARRAY(char, destfile);
+}
+
+
+// Shared Memory Implementation Details
+
+// Note: the solaris and bsd shared memory implementation uses the mmap
+// interface with a backing store file to implement named shared memory.
+// Using the file system as the name space for shared memory allows a
+// common name space to be supported across a variety of platforms. It
+// also provides a name space that Java applications can deal with through
+// simple file apis.
+//
+// The solaris and bsd implementations store the backing store file in
+// a user specific temporary directory located in the /tmp file system,
+// which is always a local file system and is sometimes a RAM based file
+// system.
+
+// return the user specific temporary directory name.
+//
+// the caller is expected to free the allocated memory.
+//
+static char* get_user_tmp_dir(const char* user) {
+
+  const char* tmpdir = os::get_temp_directory();
+  const char* perfdir = PERFDATA_NAME;
+  size_t nbytes = strlen(tmpdir) + strlen(perfdir) + strlen(user) + 3;
+  char* dirname = NEW_C_HEAP_ARRAY(char, nbytes);
+
+  // construct the path name to user specific tmp directory
+  snprintf(dirname, nbytes, "%s/%s_%s", tmpdir, perfdir, user);
+
+  return dirname;
+}
+
+// convert the given file name into a process id. if the file
+// does not meet the file naming constraints, return 0.
+//
+static pid_t filename_to_pid(const char* filename) {
+
+  // a filename that doesn't begin with a digit is not a
+  // candidate for conversion.
+  //
+  if (!isdigit(*filename)) {
+    return 0;
+  }
+
+  // check if file name can be converted to an integer without
+  // any leftover characters.
+  //
+  char* remainder = NULL;
+  errno = 0;
+  pid_t pid = (pid_t)strtol(filename, &remainder, 10);
+
+  if (errno != 0) {
+    return 0;
+  }
+
+  // check for left over characters. If any, then the filename is
+  // not a candidate for conversion.
+  //
+  if (remainder != NULL && *remainder != '\0') {
+    return 0;
+  }
+
+  // successful conversion, return the pid
+  return pid;
+}
+
+
+// check if the given path is considered a secure directory for
+// the backing store files. Returns true if the directory exists
+// and is considered a secure location. Returns false if the path
+// is a symbolic link or if an error occurred.
+//
+static bool is_directory_secure(const char* path) {
+  struct stat statbuf;
+  int result = 0;
+
+  RESTARTABLE(::lstat(path, &statbuf), result);
+  if (result == OS_ERR) {
+    return false;
+  }
+
+  // the path exists, now check it's mode
+  if (S_ISLNK(statbuf.st_mode) || !S_ISDIR(statbuf.st_mode)) {
+    // the path represents a link or some non-directory file type,
+    // which is not what we expected. declare it insecure.
+    //
+    return false;
+  }
+  else {
+    // we have an existing directory, check if the permissions are safe.
+    //
+    if ((statbuf.st_mode & (S_IWGRP|S_IWOTH)) != 0) {
+      // the directory is open for writing and could be subjected
+      // to a symlnk attack. declare it insecure.
+      //
+      return false;
+    }
+  }
+  return true;
+}
+
+
+// return the user name for the given user id
+//
+// the caller is expected to free the allocated memory.
+//
+static char* get_user_name(uid_t uid) {
+
+  struct passwd pwent;
+
+  // determine the max pwbuf size from sysconf, and hardcode
+  // a default if this not available through sysconf.
+  //
+  long bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
+  if (bufsize == -1)
+    bufsize = 1024;
+
+  char* pwbuf = NEW_C_HEAP_ARRAY(char, bufsize);
+
+  // POSIX interface to getpwuid_r is used on LINUX
+  struct passwd* p;
+  int result = getpwuid_r(uid, &pwent, pwbuf, (size_t)bufsize, &p);
+
+  if (result != 0 || p == NULL || p->pw_name == NULL || *(p->pw_name) == '\0') {
+    if (PrintMiscellaneous && Verbose) {
+      if (result != 0) {
+        warning("Could not retrieve passwd entry: %s\n",
+                strerror(result));
+      }
+      else if (p == NULL) {
+        // this check is added to protect against an observed problem
+        // with getpwuid_r() on RedHat 9 where getpwuid_r returns 0,
+        // indicating success, but has p == NULL. This was observed when
+        // inserting a file descriptor exhaustion fault prior to the call
+        // getpwuid_r() call. In this case, error is set to the appropriate
+        // error condition, but this is undocumented behavior. This check
+        // is safe under any condition, but the use of errno in the output
+        // message may result in an erroneous message.
+        // Bug Id 89052 was opened with RedHat.
+        //
+        warning("Could not retrieve passwd entry: %s\n",
+                strerror(errno));
+      }
+      else {
+        warning("Could not determine user name: %s\n",
+                p->pw_name == NULL ? "pw_name = NULL" :
+                                     "pw_name zero length");
+      }
+    }
+    FREE_C_HEAP_ARRAY(char, pwbuf);
+    return NULL;
+  }
+
+  char* user_name = NEW_C_HEAP_ARRAY(char, strlen(p->pw_name) + 1);
+  strcpy(user_name, p->pw_name);
+
+  FREE_C_HEAP_ARRAY(char, pwbuf);
+  return user_name;
+}
+
+// return the name of the user that owns the process identified by vmid.
+//
+// This method uses a slow directory search algorithm to find the backing
+// store file for the specified vmid and returns the user name, as determined
+// by the user name suffix of the hsperfdata_<username> directory name.
+//
+// the caller is expected to free the allocated memory.
+//
+static char* get_user_name_slow(int vmid, TRAPS) {
+
+  // short circuit the directory search if the process doesn't even exist.
+  if (kill(vmid, 0) == OS_ERR) {
+    if (errno == ESRCH) {
+      THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
+                  "Process not found");
+    }
+    else /* EPERM */ {
+      THROW_MSG_0(vmSymbols::java_io_IOException(), strerror(errno));
+    }
+  }
+
+  // directory search
+  char* oldest_user = NULL;
+  time_t oldest_ctime = 0;
+
+  const char* tmpdirname = os::get_temp_directory();
+
+  DIR* tmpdirp = os::opendir(tmpdirname);
+
+  if (tmpdirp == NULL) {
+    return NULL;
+  }
+
+  // for each entry in the directory that matches the pattern hsperfdata_*,
+  // open the directory and check if the file for the given vmid exists.
+  // The file with the expected name and the latest creation date is used
+  // to determine the user name for the process id.
+  //
+  struct dirent* dentry;
+  char* tdbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(tmpdirname));
+  errno = 0;
+  while ((dentry = os::readdir(tmpdirp, (struct dirent *)tdbuf)) != NULL) {
+
+    // check if the directory entry is a hsperfdata file
+    if (strncmp(dentry->d_name, PERFDATA_NAME, strlen(PERFDATA_NAME)) != 0) {
+      continue;
+    }
+
+    char* usrdir_name = NEW_C_HEAP_ARRAY(char,
+                              strlen(tmpdirname) + strlen(dentry->d_name) + 2);
+    strcpy(usrdir_name, tmpdirname);
+    strcat(usrdir_name, "/");
+    strcat(usrdir_name, dentry->d_name);
+
+    DIR* subdirp = os::opendir(usrdir_name);
+
+    if (subdirp == NULL) {
+      FREE_C_HEAP_ARRAY(char, usrdir_name);
+      continue;
+    }
+
+    // Since we don't create the backing store files in directories
+    // pointed to by symbolic links, we also don't follow them when
+    // looking for the files. We check for a symbolic link after the
+    // call to opendir in order to eliminate a small window where the
+    // symlink can be exploited.
+    //
+    if (!is_directory_secure(usrdir_name)) {
+      FREE_C_HEAP_ARRAY(char, usrdir_name);
+      os::closedir(subdirp);
+      continue;
+    }
+
+    struct dirent* udentry;
+    char* udbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(usrdir_name));
+    errno = 0;
+    while ((udentry = os::readdir(subdirp, (struct dirent *)udbuf)) != NULL) {
+
+      if (filename_to_pid(udentry->d_name) == vmid) {
+        struct stat statbuf;
+        int result;
+
+        char* filename = NEW_C_HEAP_ARRAY(char,
+                            strlen(usrdir_name) + strlen(udentry->d_name) + 2);
+
+        strcpy(filename, usrdir_name);
+        strcat(filename, "/");
+        strcat(filename, udentry->d_name);
+
+        // don't follow symbolic links for the file
+        RESTARTABLE(::lstat(filename, &statbuf), result);
+        if (result == OS_ERR) {
+           FREE_C_HEAP_ARRAY(char, filename);
+           continue;
+        }
+
+        // skip over files that are not regular files.
+        if (!S_ISREG(statbuf.st_mode)) {
+          FREE_C_HEAP_ARRAY(char, filename);
+          continue;
+        }
+
+        // compare and save filename with latest creation time
+        if (statbuf.st_size > 0 && statbuf.st_ctime > oldest_ctime) {
+
+          if (statbuf.st_ctime > oldest_ctime) {
+            char* user = strchr(dentry->d_name, '_') + 1;
+
+            if (oldest_user != NULL) FREE_C_HEAP_ARRAY(char, oldest_user);
+            oldest_user = NEW_C_HEAP_ARRAY(char, strlen(user)+1);
+
+            strcpy(oldest_user, user);
+            oldest_ctime = statbuf.st_ctime;
+          }
+        }
+
+        FREE_C_HEAP_ARRAY(char, filename);
+      }
+    }
+    os::closedir(subdirp);
+    FREE_C_HEAP_ARRAY(char, udbuf);
+    FREE_C_HEAP_ARRAY(char, usrdir_name);
+  }
+  os::closedir(tmpdirp);
+  FREE_C_HEAP_ARRAY(char, tdbuf);
+
+  return(oldest_user);
+}
+
+// return the name of the user that owns the JVM indicated by the given vmid.
+//
+static char* get_user_name(int vmid, TRAPS) {
+  return get_user_name_slow(vmid, CHECK_NULL);
+}
+
+// return the file name of the backing store file for the named
+// shared memory region for the given user name and vmid.
+//
+// the caller is expected to free the allocated memory.
+//
+static char* get_sharedmem_filename(const char* dirname, int vmid) {
+
+  // add 2 for the file separator and a null terminator.
+  size_t nbytes = strlen(dirname) + UINT_CHARS + 2;
+
+  char* name = NEW_C_HEAP_ARRAY(char, nbytes);
+  snprintf(name, nbytes, "%s/%d", dirname, vmid);
+
+  return name;
+}
+
+
+// remove file
+//
+// this method removes the file specified by the given path
+//
+static void remove_file(const char* path) {
+
+  int result;
+
+  // if the file is a directory, the following unlink will fail. since
+  // we don't expect to find directories in the user temp directory, we
+  // won't try to handle this situation. even if accidentially or
+  // maliciously planted, the directory's presence won't hurt anything.
+  //
+  RESTARTABLE(::unlink(path), result);
+  if (PrintMiscellaneous && Verbose && result == OS_ERR) {
+    if (errno != ENOENT) {
+      warning("Could not unlink shared memory backing"
+              " store file %s : %s\n", path, strerror(errno));
+    }
+  }
+}
+
+
+// remove file
+//
+// this method removes the file with the given file name in the
+// named directory.
+//
+static void remove_file(const char* dirname, const char* filename) {
+
+  size_t nbytes = strlen(dirname) + strlen(filename) + 2;
+  char* path = NEW_C_HEAP_ARRAY(char, nbytes);
+
+  strcpy(path, dirname);
+  strcat(path, "/");
+  strcat(path, filename);
+
+  remove_file(path);
+
+  FREE_C_HEAP_ARRAY(char, path);
+}
+
+
+// cleanup stale shared memory resources
+//
+// This method attempts to remove all stale shared memory files in
+// the named user temporary directory. It scans the named directory
+// for files matching the pattern ^$[0-9]*$. For each file found, the
+// process id is extracted from the file name and a test is run to
+// determine if the process is alive. If the process is not alive,
+// any stale file resources are removed.
+//
+static void cleanup_sharedmem_resources(const char* dirname) {
+
+  // open the user temp directory
+  DIR* dirp = os::opendir(dirname);
+
+  if (dirp == NULL) {
+    // directory doesn't exist, so there is nothing to cleanup
+    return;
+  }
+
+  if (!is_directory_secure(dirname)) {
+    // the directory is not a secure directory
+    return;
+  }
+
+  // for each entry in the directory that matches the expected file
+  // name pattern, determine if the file resources are stale and if
+  // so, remove the file resources. Note, instrumented HotSpot processes
+  // for this user may start and/or terminate during this search and
+  // remove or create new files in this directory. The behavior of this
+  // loop under these conditions is dependent upon the implementation of
+  // opendir/readdir.
+  //
+  struct dirent* entry;
+  char* dbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(dirname));
+  errno = 0;
+  while ((entry = os::readdir(dirp, (struct dirent *)dbuf)) != NULL) {
+
+    pid_t pid = filename_to_pid(entry->d_name);
+
+    if (pid == 0) {
+
+      if (strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0) {
+
+        // attempt to remove all unexpected files, except "." and ".."
+        remove_file(dirname, entry->d_name);
+      }
+
+      errno = 0;
+      continue;
+    }
+
+    // we now have a file name that converts to a valid integer
+    // that could represent a process id . if this process id
+    // matches the current process id or the process is not running,
+    // then remove the stale file resources.
+    //
+    // process liveness is detected by sending signal number 0 to
+    // the process id (see kill(2)). if kill determines that the
+    // process does not exist, then the file resources are removed.
+    // if kill determines that that we don't have permission to
+    // signal the process, then the file resources are assumed to
+    // be stale and are removed because the resources for such a
+    // process should be in a different user specific directory.
+    //
+    if ((pid == os::current_process_id()) ||
+        (kill(pid, 0) == OS_ERR && (errno == ESRCH || errno == EPERM))) {
+
+        remove_file(dirname, entry->d_name);
+    }
+    errno = 0;
+  }
+  os::closedir(dirp);
+  FREE_C_HEAP_ARRAY(char, dbuf);
+}
+
+// make the user specific temporary directory. Returns true if
+// the directory exists and is secure upon return. Returns false
+// if the directory exists but is either a symlink, is otherwise
+// insecure, or if an error occurred.
+//
+static bool make_user_tmp_dir(const char* dirname) {
+
+  // create the directory with 0755 permissions. note that the directory
+  // will be owned by euid::egid, which may not be the same as uid::gid.
+  //
+  if (mkdir(dirname, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) == OS_ERR) {
+    if (errno == EEXIST) {
+      // The directory already exists and was probably created by another
+      // JVM instance. However, this could also be the result of a
+      // deliberate symlink. Verify that the existing directory is safe.
+      //
+      if (!is_directory_secure(dirname)) {
+        // directory is not secure
+        if (PrintMiscellaneous && Verbose) {
+          warning("%s directory is insecure\n", dirname);
+        }
+        return false;
+      }
+    }
+    else {
+      // we encountered some other failure while attempting
+      // to create the directory
+      //
+      if (PrintMiscellaneous && Verbose) {
+        warning("could not create directory %s: %s\n",
+                dirname, strerror(errno));
+      }
+      return false;
+    }
+  }
+  return true;
+}
+
+// create the shared memory file resources
+//
+// This method creates the shared memory file with the given size
+// This method also creates the user specific temporary directory, if
+// it does not yet exist.
+//
+static int create_sharedmem_resources(const char* dirname, const char* filename, size_t size) {
+
+  // make the user temporary directory
+  if (!make_user_tmp_dir(dirname)) {
+    // could not make/find the directory or the found directory
+    // was not secure
+    return -1;
+  }
+
+  int result;
+
+  RESTARTABLE(::open(filename, O_RDWR|O_CREAT|O_TRUNC, S_IREAD|S_IWRITE), result);
+  if (result == OS_ERR) {
+    if (PrintMiscellaneous && Verbose) {
+      warning("could not create file %s: %s\n", filename, strerror(errno));
+    }
+    return -1;
+  }
+
+  // save the file descriptor
+  int fd = result;
+
+  // set the file size
+  RESTARTABLE(::ftruncate(fd, (off_t)size), result);
+  if (result == OS_ERR) {
+    if (PrintMiscellaneous && Verbose) {
+      warning("could not set shared memory file size: %s\n", strerror(errno));
+    }
+    RESTARTABLE(::close(fd), result);
+    return -1;
+  }
+
+  // Verify that we have enough disk space for this file.
+  // We'll get random SIGBUS crashes on memory accesses if
+  // we don't.
+
+  for (size_t seekpos = 0; seekpos < size; seekpos += os::vm_page_size()) {
+    int zero_int = 0;
+    result = (int)os::seek_to_file_offset(fd, (jlong)(seekpos));
+    if (result == -1 ) break;
+    RESTARTABLE(::write(fd, &zero_int, 1), result);
+    if (result != 1) {
+      if (errno == ENOSPC) {
+        warning("Insufficient space for shared memory file:\n   %s\nTry using the -Djava.io.tmpdir= option to select an alternate temp location.\n", filename);
+      }
+      break;
+    }
+  }
+
+  if (result != -1) {
+    return fd;
+  } else {
+    RESTARTABLE(::close(fd), result);
+    return -1;
+  }
+}
+
+// open the shared memory file for the given user and vmid. returns
+// the file descriptor for the open file or -1 if the file could not
+// be opened.
+//
+static int open_sharedmem_file(const char* filename, int oflags, TRAPS) {
+
+  // open the file
+  int result;
+  RESTARTABLE(::open(filename, oflags), result);
+  if (result == OS_ERR) {
+    if (errno == ENOENT) {
+      THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
+                  "Process not found");
+    }
+    else if (errno == EACCES) {
+      THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
+                  "Permission denied");
+    }
+    else {
+      THROW_MSG_0(vmSymbols::java_io_IOException(), strerror(errno));
+    }
+  }
+
+  return result;
+}
+
+// create a named shared memory region. returns the address of the
+// memory region on success or NULL on failure. A return value of
+// NULL will ultimately disable the shared memory feature.
+//
+// On Solaris and Bsd, the name space for shared memory objects
+// is the file system name space.
+//
+// A monitoring application attaching to a JVM does not need to know
+// the file system name of the shared memory object. However, it may
+// be convenient for applications to discover the existence of newly
+// created and terminating JVMs by watching the file system name space
+// for files being created or removed.
+//
+static char* mmap_create_shared(size_t size) {
+
+  int result;
+  int fd;
+  char* mapAddress;
+
+  int vmid = os::current_process_id();
+
+  char* user_name = get_user_name(geteuid());
+
+  if (user_name == NULL)
+    return NULL;
+
+  char* dirname = get_user_tmp_dir(user_name);
+  char* filename = get_sharedmem_filename(dirname, vmid);
+
+  // cleanup any stale shared memory files
+  cleanup_sharedmem_resources(dirname);
+
+  assert(((size > 0) && (size % os::vm_page_size() == 0)),
+         "unexpected PerfMemory region size");
+
+  fd = create_sharedmem_resources(dirname, filename, size);
+
+  FREE_C_HEAP_ARRAY(char, user_name);
+  FREE_C_HEAP_ARRAY(char, dirname);
+
+  if (fd == -1) {
+    FREE_C_HEAP_ARRAY(char, filename);
+    return NULL;
+  }
+
+  mapAddress = (char*)::mmap((char*)0, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
+
+  // attempt to close the file - restart it if it was interrupted,
+  // but ignore other failures
+  RESTARTABLE(::close(fd), result);
+  assert(result != OS_ERR, "could not close file");
+
+  if (mapAddress == MAP_FAILED) {
+    if (PrintMiscellaneous && Verbose) {
+      warning("mmap failed -  %s\n", strerror(errno));
+    }
+    remove_file(filename);
+    FREE_C_HEAP_ARRAY(char, filename);
+    return NULL;
+  }
+
+  // save the file name for use in delete_shared_memory()
+  backing_store_file_name = filename;
+
+  // clear the shared memory region
+  (void)::memset((void*) mapAddress, 0, size);
+
+  return mapAddress;
+}
+
+// release a named shared memory region
+//
+static void unmap_shared(char* addr, size_t bytes) {
+  os::release_memory(addr, bytes);
+}
+
+// create the PerfData memory region in shared memory.
+//
+static char* create_shared_memory(size_t size) {
+
+  // create the shared memory region.
+  return mmap_create_shared(size);
+}
+
+// delete the shared PerfData memory region
+//
+static void delete_shared_memory(char* addr, size_t size) {
+
+  // cleanup the persistent shared memory resources. since DestroyJavaVM does
+  // not support unloading of the JVM, unmapping of the memory resource is
+  // not performed. The memory will be reclaimed by the OS upon termination of
+  // the process. The backing store file is deleted from the file system.
+
+  assert(!PerfDisableSharedMem, "shouldn't be here");
+
+  if (backing_store_file_name != NULL) {
+    remove_file(backing_store_file_name);
+    // Don't.. Free heap memory could deadlock os::abort() if it is called
+    // from signal handler. OS will reclaim the heap memory.
+    // FREE_C_HEAP_ARRAY(char, backing_store_file_name);
+    backing_store_file_name = NULL;
+  }
+}
+
+// return the size of the file for the given file descriptor
+// or 0 if it is not a valid size for a shared memory file
+//
+static size_t sharedmem_filesize(int fd, TRAPS) {
+
+  struct stat statbuf;
+  int result;
+
+  RESTARTABLE(::fstat(fd, &statbuf), result);
+  if (result == OS_ERR) {
+    if (PrintMiscellaneous && Verbose) {
+      warning("fstat failed: %s\n", strerror(errno));
+    }
+    THROW_MSG_0(vmSymbols::java_io_IOException(),
+                "Could not determine PerfMemory size");
+  }
+
+  if ((statbuf.st_size == 0) ||
+     ((size_t)statbuf.st_size % os::vm_page_size() != 0)) {
+    THROW_MSG_0(vmSymbols::java_lang_Exception(),
+                "Invalid PerfMemory size");
+  }
+
+  return (size_t)statbuf.st_size;
+}
+
+// attach to a named shared memory region.
+//
+static void mmap_attach_shared(const char* user, int vmid, PerfMemory::PerfMemoryMode mode, char** addr, size_t* sizep, TRAPS) {
+
+  char* mapAddress;
+  int result;
+  int fd;
+  size_t size;
+  const char* luser = NULL;
+
+  int mmap_prot;
+  int file_flags;
+
+  ResourceMark rm;
+
+  // map the high level access mode to the appropriate permission
+  // constructs for the file and the shared memory mapping.
+  if (mode == PerfMemory::PERF_MODE_RO) {
+    mmap_prot = PROT_READ;
+    file_flags = O_RDONLY;
+  }
+  else if (mode == PerfMemory::PERF_MODE_RW) {
+#ifdef LATER
+    mmap_prot = PROT_READ | PROT_WRITE;
+    file_flags = O_RDWR;
+#else
+    THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
+              "Unsupported access mode");
+#endif
+  }
+  else {
+    THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
+              "Illegal access mode");
+  }
+
+  if (user == NULL || strlen(user) == 0) {
+    luser = get_user_name(vmid, CHECK);
+  }
+  else {
+    luser = user;
+  }
+
+  if (luser == NULL) {
+    THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
+              "Could not map vmid to user Name");
+  }
+
+  char* dirname = get_user_tmp_dir(luser);
+
+  // since we don't follow symbolic links when creating the backing
+  // store file, we don't follow them when attaching either.
+  //
+  if (!is_directory_secure(dirname)) {
+    FREE_C_HEAP_ARRAY(char, dirname);
+    THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
+              "Process not found");
+  }
+
+  char* filename = get_sharedmem_filename(dirname, vmid);
+
+  // copy heap memory to resource memory. the open_sharedmem_file
+  // method below need to use the filename, but could throw an
+  // exception. using a resource array prevents the leak that
+  // would otherwise occur.
+  char* rfilename = NEW_RESOURCE_ARRAY(char, strlen(filename) + 1);
+  strcpy(rfilename, filename);
+
+  // free the c heap resources that are no longer needed
+  if (luser != user) FREE_C_HEAP_ARRAY(char, luser);
+  FREE_C_HEAP_ARRAY(char, dirname);
+  FREE_C_HEAP_ARRAY(char, filename);
+
+  // open the shared memory file for the give vmid
+  fd = open_sharedmem_file(rfilename, file_flags, CHECK);
+  assert(fd != OS_ERR, "unexpected value");
+
+  if (*sizep == 0) {
+    size = sharedmem_filesize(fd, CHECK);
+    assert(size != 0, "unexpected size");
+  }
+
+  mapAddress = (char*)::mmap((char*)0, size, mmap_prot, MAP_SHARED, fd, 0);
+
+  // attempt to close the file - restart if it gets interrupted,
+  // but ignore other failures
+  RESTARTABLE(::close(fd), result);
+  assert(result != OS_ERR, "could not close file");
+
+  if (mapAddress == MAP_FAILED) {
+    if (PrintMiscellaneous && Verbose) {
+      warning("mmap failed: %s\n", strerror(errno));
+    }
+    THROW_MSG(vmSymbols::java_lang_OutOfMemoryError(),
+              "Could not map PerfMemory");
+  }
+
+  *addr = mapAddress;
+  *sizep = size;
+
+  if (PerfTraceMemOps) {
+    tty->print("mapped " SIZE_FORMAT " bytes for vmid %d at "
+               INTPTR_FORMAT "\n", size, vmid, (void*)mapAddress);
+  }
+}
+
+
+
+
+// create the PerfData memory region
+//
+// This method creates the memory region used to store performance
+// data for the JVM. The memory may be created in standard or
+// shared memory.
+//
+void PerfMemory::create_memory_region(size_t size) {
+
+  if (PerfDisableSharedMem) {
+    // do not share the memory for the performance data.
+    _start = create_standard_memory(size);
+  }
+  else {
+    _start = create_shared_memory(size);
+    if (_start == NULL) {
+
+      // creation of the shared memory region failed, attempt
+      // to create a contiguous, non-shared memory region instead.
+      //
+      if (PrintMiscellaneous && Verbose) {
+        warning("Reverting to non-shared PerfMemory region.\n");
+      }
+      PerfDisableSharedMem = true;
+      _start = create_standard_memory(size);
+    }
+  }
+
+  if (_start != NULL) _capacity = size;
+
+}
+
+// delete the PerfData memory region
+//
+// This method deletes the memory region used to store performance
+// data for the JVM. The memory region indicated by the <address, size>
+// tuple will be inaccessible after a call to this method.
+//
+void PerfMemory::delete_memory_region() {
+
+  assert((start() != NULL && capacity() > 0), "verify proper state");
+
+  // If user specifies PerfDataSaveFile, it will save the performance data
+  // to the specified file name no matter whether PerfDataSaveToFile is specified
+  // or not. In other word, -XX:PerfDataSaveFile=.. overrides flag
+  // -XX:+PerfDataSaveToFile.
+  if (PerfDataSaveToFile || PerfDataSaveFile != NULL) {
+    save_memory_to_file(start(), capacity());
+  }
+
+  if (PerfDisableSharedMem) {
+    delete_standard_memory(start(), capacity());
+  }
+  else {
+    delete_shared_memory(start(), capacity());
+  }
+}
+
+// attach to the PerfData memory region for another JVM
+//
+// This method returns an <address, size> tuple that points to
+// a memory buffer that is kept reasonably synchronized with
+// the PerfData memory region for the indicated JVM. This
+// buffer may be kept in synchronization via shared memory
+// or some other mechanism that keeps the buffer updated.
+//
+// If the JVM chooses not to support the attachability feature,
+// this method should throw an UnsupportedOperation exception.
+//
+// This implementation utilizes named shared memory to map
+// the indicated process's PerfData memory region into this JVMs
+// address space.
+//
+void PerfMemory::attach(const char* user, int vmid, PerfMemoryMode mode, char** addrp, size_t* sizep, TRAPS) {
+
+  if (vmid == 0 || vmid == os::current_process_id()) {
+     *addrp = start();
+     *sizep = capacity();
+     return;
+  }
+
+  mmap_attach_shared(user, vmid, mode, addrp, sizep, CHECK);
+}
+
+// detach from the PerfData memory region of another JVM
+//
+// This method detaches the PerfData memory region of another
+// JVM, specified as an <address, size> tuple of a buffer
+// in this process's address space. This method may perform
+// arbitrary actions to accomplish the detachment. The memory
+// region specified by <address, size> will be inaccessible after
+// a call to this method.
+//
+// If the JVM chooses not to support the attachability feature,
+// this method should throw an UnsupportedOperation exception.
+//
+// This implementation utilizes named shared memory to detach
+// the indicated process's PerfData memory region from this
+// process's address space.
+//
+void PerfMemory::detach(char* addr, size_t bytes, TRAPS) {
+
+  assert(addr != 0, "address sanity check");
+  assert(bytes > 0, "capacity sanity check");
+
+  if (PerfMemory::contains(addr) || PerfMemory::contains(addr + bytes - 1)) {
+    // prevent accidental detachment of this process's PerfMemory region
+    return;
+  }
+
+  unmap_shared(addr, bytes);
+}
+
+char* PerfMemory::backing_store_filename() {
+  return backing_store_file_name;
+}
diff --git a/hotspot/src/os/bsd/vm/stubRoutines_bsd.cpp b/hotspot/src/os/bsd/vm/stubRoutines_bsd.cpp
new file mode 100644
index 0000000..1fa7d3a
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/stubRoutines_bsd.cpp
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "runtime/os.hpp"
+#include "runtime/stubRoutines.hpp"
diff --git a/hotspot/src/os/bsd/vm/threadCritical_bsd.cpp b/hotspot/src/os/bsd/vm/threadCritical_bsd.cpp
new file mode 100644
index 0000000..e337a5b
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/threadCritical_bsd.cpp
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "runtime/threadCritical.hpp"
+#include "thread_bsd.inline.hpp"
+
+// put OS-includes here
+# include <pthread.h>
+
+//
+// See threadCritical.hpp for details of this class.
+//
+
+static pthread_t             tc_owner = 0;
+static pthread_mutex_t       tc_mutex = PTHREAD_MUTEX_INITIALIZER;
+static int                   tc_count = 0;
+
+void ThreadCritical::initialize() {
+}
+
+void ThreadCritical::release() {
+}
+
+ThreadCritical::ThreadCritical() {
+  pthread_t self = pthread_self();
+  if (self != tc_owner) {
+    int ret = pthread_mutex_lock(&tc_mutex);
+    guarantee(ret == 0, "fatal error with pthread_mutex_lock()");
+    assert(tc_count == 0, "Lock acquired with illegal reentry count.");
+    tc_owner = self;
+  }
+  tc_count++;
+}
+
+ThreadCritical::~ThreadCritical() {
+  assert(tc_owner == pthread_self(), "must have correct owner");
+  assert(tc_count > 0, "must have correct count");
+
+  tc_count--;
+  if (tc_count == 0) {
+    tc_owner = 0;
+    int ret = pthread_mutex_unlock(&tc_mutex);
+    guarantee(ret == 0, "fatal error with pthread_mutex_unlock()");
+  }
+}
diff --git a/hotspot/src/os/bsd/vm/thread_bsd.inline.hpp b/hotspot/src/os/bsd/vm/thread_bsd.inline.hpp
new file mode 100644
index 0000000..290f477
--- /dev/null
+++ b/hotspot/src/os/bsd/vm/thread_bsd.inline.hpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_BSD_VM_THREAD_BSD_INLINE_HPP
+#define OS_BSD_VM_THREAD_BSD_INLINE_HPP
+
+#include "runtime/atomic.hpp"
+#include "runtime/prefetch.hpp"
+#include "runtime/thread.hpp"
+#include "runtime/threadLocalStorage.hpp"
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "atomic_bsd_x86.inline.hpp"
+# include "orderAccess_bsd_x86.inline.hpp"
+# include "prefetch_bsd_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "atomic_bsd_zero.inline.hpp"
+# include "orderAccess_bsd_zero.inline.hpp"
+# include "prefetch_bsd_zero.inline.hpp"
+#endif
+
+// Contains inlined functions for class Thread and ThreadLocalStorage
+
+inline void ThreadLocalStorage::pd_invalidate_all() {} // nothing to do
+
+#endif // OS_BSD_VM_THREAD_BSD_INLINE_HPP
diff --git a/hotspot/src/os/linux/vm/vmError_linux.cpp b/hotspot/src/os/bsd/vm/vmError_bsd.cpp
similarity index 100%
copy from hotspot/src/os/linux/vm/vmError_linux.cpp
copy to hotspot/src/os/bsd/vm/vmError_bsd.cpp
diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp
index 09285a3..5a50873 100644
--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++ b/hotspot/src/os/linux/vm/os_linux.cpp
@@ -22,8 +22,6 @@
  *
  */
 
-# define __STDC_FORMAT_MACROS
-
 // no precompiled headers
 #include "classfile/classLoader.hpp"
 #include "classfile/systemDictionary.hpp"
@@ -2498,7 +2496,13 @@ bool os::commit_memory(char* addr, size_t size, bool exec) {
   int prot = exec ? PROT_READ|PROT_WRITE|PROT_EXEC : PROT_READ|PROT_WRITE;
   uintptr_t res = (uintptr_t) ::mmap(addr, size, prot,
                                    MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0);
-  return res != (uintptr_t) MAP_FAILED;
+  if (res != (uintptr_t) MAP_FAILED) {
+    if (UseNUMAInterleaving) {
+      numa_make_global(addr, size);
+    }
+    return true;
+  }
+  return false;
 }
 
 // Define MAP_HUGETLB here so we can build HotSpot on old systems.
@@ -2519,10 +2523,20 @@ bool os::commit_memory(char* addr, size_t size, size_t alignment_hint,
       (uintptr_t) ::mmap(addr, size, prot,
                          MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_HUGETLB,
                          -1, 0);
-    return res != (uintptr_t) MAP_FAILED;
+    if (res != (uintptr_t) MAP_FAILED) {
+      if (UseNUMAInterleaving) {
+        numa_make_global(addr, size);
+      }
+      return true;
+    }
+    // Fall through and try to use small pages
   }
 
-  return commit_memory(addr, size, exec);
+  if (commit_memory(addr, size, exec)) {
+    realign_memory(addr, size, alignment_hint);
+    return true;
+  }
+  return false;
 }
 
 void os::realign_memory(char *addr, size_t bytes, size_t alignment_hint) {
@@ -2534,7 +2548,7 @@ void os::realign_memory(char *addr, size_t bytes, size_t alignment_hint) {
 }
 
 void os::free_memory(char *addr, size_t bytes) {
-  ::madvise(addr, bytes, MADV_DONTNEED);
+  commit_memory(addr, bytes, false);
 }
 
 void os::numa_make_global(char *addr, size_t bytes) {
@@ -2578,6 +2592,31 @@ char *os::scan_pages(char *start, char* end, page_info* page_expected, page_info
   return end;
 }
 
+
+int os::Linux::sched_getcpu_syscall(void) {
+  unsigned int cpu;
+  int retval = -1;
+
+#if defined(IA32)
+# ifndef SYS_getcpu
+# define SYS_getcpu 318
+# endif
+  retval = syscall(SYS_getcpu, &cpu, NULL, NULL);
+#elif defined(AMD64)
+// Unfortunately we have to bring all these macros here from vsyscall.h
+// to be able to compile on old linuxes.
+# define __NR_vgetcpu 2
+# define VSYSCALL_START (-10UL << 20)
+# define VSYSCALL_SIZE 1024
+# define VSYSCALL_ADDR(vsyscall_nr) (VSYSCALL_START+VSYSCALL_SIZE*(vsyscall_nr))
+  typedef long (*vgetcpu_t)(unsigned int *cpu, unsigned int *node, unsigned long *tcache);
+  vgetcpu_t vgetcpu = (vgetcpu_t)VSYSCALL_ADDR(__NR_vgetcpu);
+  retval = vgetcpu(&cpu, NULL, NULL);
+#endif
+
+  return (retval == -1) ? retval : cpu;
+}
+
 // Something to do with the numa-aware allocator needs these symbols
 extern "C" JNIEXPORT void numa_warn(int number, char *where, ...) { }
 extern "C" JNIEXPORT void numa_error(char *where) { }
@@ -2601,6 +2640,10 @@ bool os::Linux::libnuma_init() {
   set_sched_getcpu(CAST_TO_FN_PTR(sched_getcpu_func_t,
                                   dlsym(RTLD_DEFAULT, "sched_getcpu")));
 
+  // If it's not, try a direct syscall.
+  if (sched_getcpu() == -1)
+    set_sched_getcpu(CAST_TO_FN_PTR(sched_getcpu_func_t, (void*)&sched_getcpu_syscall));
+
   if (sched_getcpu() != -1) { // Does it work?
     void *handle = dlopen("libnuma.so.1", RTLD_LAZY);
     if (handle != NULL) {
@@ -3091,6 +3134,10 @@ char* os::reserve_memory_special(size_t bytes, char* req_addr, bool exec) {
      return NULL;
   }
 
+  if ((addr != NULL) && UseNUMAInterleaving) {
+    numa_make_global(addr, bytes);
+  }
+
   return addr;
 }
 
@@ -3846,14 +3893,19 @@ void os::Linux::install_signal_handlers() {
     }
 
     // We don't activate signal checker if libjsig is in place, we trust ourselves
-    // and if UserSignalHandler is installed all bets are off
+    // and if UserSignalHandler is installed all bets are off.
+    // Log that signal checking is off only if -verbose:jni is specified.
     if (CheckJNICalls) {
       if (libjsig_is_loaded) {
-        tty->print_cr("Info: libjsig is activated, all active signal checking is disabled");
+        if (PrintJNIResolving) {
+          tty->print_cr("Info: libjsig is activated, all active signal checking is disabled");
+        }
         check_signals = false;
       }
       if (AllowUserSignalHandlers) {
-        tty->print_cr("Info: AllowUserSignalHandlers is activated, all active signal checking is disabled");
+        if (PrintJNIResolving) {
+          tty->print_cr("Info: AllowUserSignalHandlers is activated, all active signal checking is disabled");
+        }
         check_signals = false;
       }
     }
diff --git a/hotspot/src/os/linux/vm/os_linux.hpp b/hotspot/src/os/linux/vm/os_linux.hpp
index c0a63fe..ec32232 100644
--- a/hotspot/src/os/linux/vm/os_linux.hpp
+++ b/hotspot/src/os/linux/vm/os_linux.hpp
@@ -263,6 +263,7 @@ private:
   static void set_numa_tonode_memory(numa_tonode_memory_func_t func) { _numa_tonode_memory = func; }
   static void set_numa_interleave_memory(numa_interleave_memory_func_t func) { _numa_interleave_memory = func; }
   static void set_numa_all_nodes(unsigned long* ptr) { _numa_all_nodes = ptr; }
+  static int sched_getcpu_syscall(void);
 public:
   static int sched_getcpu()  { return _sched_getcpu != NULL ? _sched_getcpu() : -1; }
   static int numa_node_to_cpus(int node, unsigned long *buffer, int bufferlen) {
diff --git a/hotspot/src/os/posix/launcher/java_md.c b/hotspot/src/os/posix/launcher/java_md.c
index 3ee0f20..63cee98 100644
--- a/hotspot/src/os/posix/launcher/java_md.c
+++ b/hotspot/src/os/posix/launcher/java_md.c
@@ -41,14 +41,21 @@
 #include "version_comp.h"
 #endif
 
-#ifdef __linux__
+#if defined(__linux__) || defined(_ALLBSD_SOURCE)
 #include <pthread.h>
 #else
 #include <thread.h>
 #endif
 
+#ifdef __APPLE__
+#define JVM_DLL "libjvm.dylib"
+#define JAVA_DLL "libjava.dylib"
+#define LD_LIBRARY_PATH "DYLD_LIBRARY_PATH"
+#else
 #define JVM_DLL "libjvm.so"
 #define JAVA_DLL "libjava.so"
+#define LD_LIBRARY_PATH "LD_LIBRARY_PATH"
+#endif
 
 #ifndef GAMMA   /* launcher.make defines ARCH */
 /*
@@ -423,10 +430,10 @@ CreateExecutionEnvironment(int *_argcp,
        * If not on Solaris, assume only a single LD_LIBRARY_PATH
        * variable.
        */
-      runpath = getenv("LD_LIBRARY_PATH");
+      runpath = getenv(LD_LIBRARY_PATH);
 #endif /* __sun */
 
-#ifdef __linux
+#if defined(__linux__)
       /*
        * On linux, if a binary is running as sgid or suid, glibc sets
        * LD_LIBRARY_PATH to the empty string for security purposes.  (In
@@ -442,6 +449,22 @@ CreateExecutionEnvironment(int *_argcp,
       if((getgid() != getegid()) || (getuid() != geteuid()) ) {
         return;
       }
+#elif defined(_ALLBSD_SOURCE)
+      /*
+       * On BSD, if a binary is running as sgid or suid, libc sets
+       * LD_LIBRARY_PATH to the empty string for security purposes.  (In
+       * contrast, on Solaris the LD_LIBRARY_PATH variable for a
+       * privileged binary does not lose its settings; but the dynamic
+       * linker does apply more scrutiny to the path.) The launcher uses
+       * the value of LD_LIBRARY_PATH to prevent an exec loop.
+       * Therefore, if we are running sgid or suid, this function's
+       * setting of LD_LIBRARY_PATH will be ineffective and we should
+       * return from the function now.  Getting the right libraries to
+       * be found must be handled through other mechanisms.
+       */
+      if(issetugid()) {
+        return;
+      }
 #endif
 
       /* runpath contains current effective LD_LIBRARY_PATH setting */
@@ -450,7 +473,7 @@ CreateExecutionEnvironment(int *_argcp,
       new_runpath = JLI_MemAlloc( ((runpath!=NULL)?strlen(runpath):0) +
                               2*strlen(jrepath) + 2*strlen(arch) +
                               strlen(jvmpath) + 52);
-      newpath = new_runpath + strlen("LD_LIBRARY_PATH=");
+      newpath = new_runpath + strlen(LD_LIBRARY_PATH "=");
 
 
       /*
@@ -465,7 +488,7 @@ CreateExecutionEnvironment(int *_argcp,
 
         /* jvmpath, ((running != wanted)?((wanted==64)?"/"LIBARCH64NAME:"/.."):""), */
 
-        sprintf(new_runpath, "LD_LIBRARY_PATH="
+        sprintf(new_runpath, LD_LIBRARY_PATH "="
                 "%s:"
                 "%s/lib/%s:"
                 "%s/../lib/%s",
@@ -792,7 +815,7 @@ error:
 jboolean
 GetApplicationHome(char *buf, jint bufsize)
 {
-#ifdef __linux__
+#if defined(__linux__) || defined(_ALLBSD_SOURCE)
     char *execname = GetExecname();
     if (execname) {
         strncpy(buf, execname, bufsize-1);
@@ -1175,7 +1198,7 @@ get_cpuid(uint32_t arg,
 
 #endif /* __sun && i586 */
 
-#if defined(__linux__) && defined(i586)
+#if (defined(__linux__) || defined(_ALLBSD_SOURCE)) && defined(i586)
 
 /*
  * A utility method for asking the CPU about itself.
@@ -1452,6 +1475,39 @@ linux_i586_ServerClassMachine(void) {
 
 #endif /* __linux__ && i586 */
 
+#if defined(_ALLBSD_SOURCE) && defined(i586)
+
+/* The definition of a server-class machine for bsd-i586 */
+jboolean
+bsd_i586_ServerClassMachine(void) {
+  jboolean            result            = JNI_FALSE;
+  /* How big is a server class machine? */
+  const unsigned long server_processors = 2UL;
+  const uint64_t      server_memory     = 2UL * GB;
+  /*
+   * We seem not to get our full complement of memory.
+   *     We allow some part (1/8?) of the memory to be "missing",
+   *     based on the sizes of DIMMs, and maybe graphics cards.
+   */
+  const uint64_t      missing_memory    = 256UL * MB;
+  const uint64_t      actual_memory     = physical_memory();
+
+  /* Is this a server class machine? */
+  if (actual_memory >= (server_memory - missing_memory)) {
+    const unsigned long actual_processors = physical_processors();
+    if (actual_processors >= server_processors) {
+      result = JNI_TRUE;
+    }
+  }
+  if (_launcher_debug) {
+    printf("linux_" LIBARCHNAME "_ServerClassMachine: %s\n",
+           (result == JNI_TRUE ? "true" : "false"));
+  }
+  return result;
+}
+
+#endif /* _ALLBSD_SOURCE && i586 */
+
 /* Dispatch to the platform-specific definition of "server-class" */
 jboolean
 ServerClassMachine(void) {
@@ -1466,6 +1522,8 @@ ServerClassMachine(void) {
   result = solaris_i586_ServerClassMachine();
 #elif defined(__linux__) && defined(i586)
   result = linux_i586_ServerClassMachine();
+#elif defined(_ALLBSD_SOURCE) && defined(i586)
+  result = bsd_i586_ServerClassMachine();
 #else
   if (_launcher_debug) {
     printf("ServerClassMachine: returns default value of %s\n",
@@ -1821,7 +1879,7 @@ jlong_format_specifier() {
 int
 ContinueInNewThread(int (JNICALL *continuation)(void *), jlong stack_size, void * args) {
     int rslt;
-#ifdef __linux__
+#if defined(__linux__) || defined(_ALLBSD_SOURCE)
     pthread_t tid;
     pthread_attr_t attr;
     pthread_attr_init(&attr);
diff --git a/hotspot/src/os/posix/launcher/launcher.script b/hotspot/src/os/posix/launcher/launcher.script
index 22ed66b..21bf44e 100644
--- a/hotspot/src/os/posix/launcher/launcher.script
+++ b/hotspot/src/os/posix/launcher/launcher.script
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
diff --git a/hotspot/src/os/solaris/vm/os_solaris.cpp b/hotspot/src/os/solaris/vm/os_solaris.cpp
index 3280040..fb03515 100644
--- a/hotspot/src/os/solaris/vm/os_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/os_solaris.cpp
@@ -2777,8 +2777,14 @@ int os::vm_allocation_granularity() {
 bool os::commit_memory(char* addr, size_t bytes, bool exec) {
   int prot = exec ? PROT_READ|PROT_WRITE|PROT_EXEC : PROT_READ|PROT_WRITE;
   size_t size = bytes;
-  return
-     NULL != Solaris::mmap_chunk(addr, size, MAP_PRIVATE|MAP_FIXED, prot);
+  char *res = Solaris::mmap_chunk(addr, size, MAP_PRIVATE|MAP_FIXED, prot);
+  if (res != NULL) {
+    if (UseNUMAInterleaving) {
+      numa_make_global(addr, bytes);
+    }
+    return true;
+  }
+  return false;
 }
 
 bool os::commit_memory(char* addr, size_t bytes, size_t alignment_hint,
@@ -3252,7 +3258,6 @@ bool os::unguard_memory(char* addr, size_t bytes) {
 //                                 supported Solaris versions, this combination
 //                                 is equivalent to +UseISM -UseMPSS.
 
-typedef int (*getpagesizes_func_type) (size_t[], int);
 static size_t _large_page_size = 0;
 
 bool os::Solaris::ism_sanity_check(bool warn, size_t * page_size) {
@@ -3284,23 +3289,29 @@ static void insertion_sort_descending(size_t* array, int len) {
 }
 
 bool os::Solaris::mpss_sanity_check(bool warn, size_t * page_size) {
-  getpagesizes_func_type getpagesizes_func =
-    CAST_TO_FN_PTR(getpagesizes_func_type, dlsym(RTLD_DEFAULT, "getpagesizes"));
-  if (getpagesizes_func == NULL) {
-    if (warn) {
-      warning("MPSS is not supported by the operating system.");
-    }
-    return false;
-  }
-
   const unsigned int usable_count = VM_Version::page_size_count();
   if (usable_count == 1) {
     return false;
   }
 
+  // Find the right getpagesizes interface.  When solaris 11 is the minimum
+  // build platform, getpagesizes() (without the '2') can be called directly.
+  typedef int (*gps_t)(size_t[], int);
+  gps_t gps_func = CAST_TO_FN_PTR(gps_t, dlsym(RTLD_DEFAULT, "getpagesizes2"));
+  if (gps_func == NULL) {
+    gps_func = CAST_TO_FN_PTR(gps_t, dlsym(RTLD_DEFAULT, "getpagesizes"));
+    if (gps_func == NULL) {
+      if (warn) {
+        warning("MPSS is not supported by the operating system.");
+      }
+      return false;
+    }
+  }
+
   // Fill the array of page sizes.
-  int n = getpagesizes_func(_page_sizes, page_sizes_max);
+  int n = (*gps_func)(_page_sizes, page_sizes_max);
   assert(n > 0, "Solaris bug?");
+
   if (n == page_sizes_max) {
     // Add a sentinel value (necessary only if the array was completely filled
     // since it is static (zeroed at initialization)).
@@ -3308,6 +3319,7 @@ bool os::Solaris::mpss_sanity_check(bool warn, size_t * page_size) {
     DEBUG_ONLY(warning("increase the size of the os::_page_sizes array.");)
   }
   assert(_page_sizes[n] == 0, "missing sentinel");
+  trace_page_sizes("available page sizes", _page_sizes, n);
 
   if (n == 1) return false;     // Only one page size available.
 
@@ -3337,6 +3349,7 @@ bool os::Solaris::mpss_sanity_check(bool warn, size_t * page_size) {
   }
   *page_size = _page_sizes[0];
 
+  trace_page_sizes("usable page sizes", _page_sizes, end + 1);
   return true;
 }
 
@@ -3382,12 +3395,11 @@ bool os::Solaris::set_mpss_range(caddr_t start, size_t bytes, size_t align) {
   return true;
 }
 
-char* os::reserve_memory_special(size_t bytes, char* addr, bool exec) {
+char* os::reserve_memory_special(size_t size, char* addr, bool exec) {
   // "exec" is passed in but not used.  Creating the shared image for
   // the code cache doesn't have an SHM_X executable permission to check.
   assert(UseLargePages && UseISM, "only for ISM large pages");
 
-  size_t size = bytes;
   char* retAddr = NULL;
   int shmid;
   key_t ismKey;
@@ -3429,7 +3441,9 @@ char* os::reserve_memory_special(size_t bytes, char* addr, bool exec) {
     }
     return NULL;
   }
-
+  if ((retAddr != NULL) && UseNUMAInterleaving) {
+    numa_make_global(retAddr, size);
+  }
   return retAddr;
 }
 
@@ -4578,14 +4592,19 @@ void os::Solaris::install_signal_handlers() {
   }
 
   // We don't activate signal checker if libjsig is in place, we trust ourselves
-  // and if UserSignalHandler is installed all bets are off
+  // and if UserSignalHandler is installed all bets are off.
+  // Log that signal checking is off only if -verbose:jni is specified.
   if (CheckJNICalls) {
     if (libjsig_is_loaded) {
-      tty->print_cr("Info: libjsig is activated, all active signal checking is disabled");
+      if (PrintJNIResolving) {
+        tty->print_cr("Info: libjsig is activated, all active signal checking is disabled");
+      }
       check_signals = false;
     }
     if (AllowUserSignalHandlers) {
-      tty->print_cr("Info: AllowUserSignalHandlers is activated, all active signal checking is disabled");
+      if (PrintJNIResolving) {
+        tty->print_cr("Info: AllowUserSignalHandlers is activated, all active signal checking is disabled");
+      }
       check_signals = false;
     }
   }
diff --git a/hotspot/src/os/windows/vm/decoder_windows.cpp b/hotspot/src/os/windows/vm/decoder_windows.cpp
index c4eaf35..942f3ec 100644
--- a/hotspot/src/os/windows/vm/decoder_windows.cpp
+++ b/hotspot/src/os/windows/vm/decoder_windows.cpp
@@ -24,6 +24,7 @@
 
 #include "precompiled.hpp"
 #include "prims/jvm.h"
+#include "runtime/os.hpp"
 #include "utilities/decoder.hpp"
 
 HMODULE                   Decoder::_dbghelp_handle = NULL;
@@ -35,7 +36,7 @@ void Decoder::initialize() {
   if (!_initialized) {
     _initialized = true;
 
-    HMODULE handle = ::LoadLibrary("dbghelp.dll");
+    HINSTANCE handle = os::win32::load_Windows_dll("dbghelp.dll", NULL, 0);
     if (!handle) {
       _decoder_status = helper_not_found;
         return;
diff --git a/hotspot/src/os/windows/vm/jvm_windows.h b/hotspot/src/os/windows/vm/jvm_windows.h
index 6cb292b..dda8f8b 100644
--- a/hotspot/src/os/windows/vm/jvm_windows.h
+++ b/hotspot/src/os/windows/vm/jvm_windows.h
@@ -30,10 +30,33 @@
  * JNI conversion, which should be sorted out later.
  */
 
+// JDK7 requires VS2010
+#if _MSC_VER >= 1600
+// JDK7 minimum platform requirement: Windows XP
+#if _WIN32_WINNT < 0x0501
+#undef _WIN32_WINNT
+#define _WIN32_WINNT  0x0501
+#endif
+#endif
+
 #include <windows.h>
-// #include <windef.h>
-// #include <winbase.h>
 
+#if _MSC_VER <= 1200
+// Psapi.h doesn't come with Visual Studio 6; it can be downloaded as Platform
+// SDK from Microsoft.  Here are the definitions copied from Psapi.h
+typedef struct _MODULEINFO {
+    LPVOID lpBaseOfDll;
+    DWORD SizeOfImage;
+    LPVOID EntryPoint;
+} MODULEINFO, *LPMODULEINFO;
+
+#else
+#include <Psapi.h>
+#endif
+
+
+
+#include <Tlhelp32.h>
 
 // #include "jni.h"
 
diff --git a/hotspot/src/os/windows/vm/os_windows.cpp b/hotspot/src/os/windows/vm/os_windows.cpp
index cfa48b1..9de05fa 100644
--- a/hotspot/src/os/windows/vm/os_windows.cpp
+++ b/hotspot/src/os/windows/vm/os_windows.cpp
@@ -98,7 +98,6 @@
 #include <imagehlp.h>             // For os::dll_address_to_function_name
 
 /* for enumerating dll libraries */
-#include <tlhelp32.h>
 #include <vdmdbg.h>
 
 // for timer info max values which include all bits
@@ -241,11 +240,11 @@ void os::init_system_properties_values() {
     /* Win32 library search order (See the documentation for LoadLibrary):
      *
      * 1. The directory from which application is loaded.
-     * 2. The current directory
-     * 3. The system wide Java Extensions directory (Java only)
-     * 4. System directory (GetSystemDirectory)
-     * 5. Windows directory (GetWindowsDirectory)
-     * 6. The PATH environment variable
+     * 2. The system wide Java Extensions directory (Java only)
+     * 3. System directory (GetSystemDirectory)
+     * 4. Windows directory (GetWindowsDirectory)
+     * 5. The PATH environment variable
+     * 6. The current directory
      */
 
     char *library_path;
@@ -261,8 +260,6 @@ void os::init_system_properties_values() {
     *(strrchr(tmp, '\\')) = '\0';
     strcat(library_path, tmp);
 
-    strcat(library_path, ";.");
-
     GetWindowsDirectory(tmp, sizeof(tmp));
     strcat(library_path, ";");
     strcat(library_path, tmp);
@@ -281,6 +278,8 @@ void os::init_system_properties_values() {
         strcat(library_path, path_str);
     }
 
+    strcat(library_path, ";.");
+
     Arguments::set_library_path(library_path);
     FREE_C_HEAP_ARRAY(char, library_path);
   }
@@ -939,7 +938,7 @@ void os::check_or_create_dump(void* exceptionRecord, void* contextRecord, char*
     return;
   }
 
-  dbghelp = LoadLibrary("DBGHELP.DLL");
+  dbghelp = os::win32::load_Windows_dll("DBGHELP.DLL", NULL, 0);
 
   if (dbghelp == NULL) {
     VMError::report_coredump_status("Failed to load dbghelp.dll", false);
@@ -1204,70 +1203,6 @@ const char* os::get_current_directory(char *buf, int buflen) {
 
 //-----------------------------------------------------------
 // Helper functions for fatal error handler
-
-// The following library functions are resolved dynamically at runtime:
-
-// PSAPI functions, for Windows NT, 2000, XP
-
-// psapi.h doesn't come with Visual Studio 6; it can be downloaded as Platform
-// SDK from Microsoft.  Here are the definitions copied from psapi.h
-typedef struct _MODULEINFO {
-    LPVOID lpBaseOfDll;
-    DWORD SizeOfImage;
-    LPVOID EntryPoint;
-} MODULEINFO, *LPMODULEINFO;
-
-static BOOL  (WINAPI *_EnumProcessModules)  ( HANDLE, HMODULE *, DWORD, LPDWORD );
-static DWORD (WINAPI *_GetModuleFileNameEx) ( HANDLE, HMODULE, LPTSTR, DWORD );
-static BOOL  (WINAPI *_GetModuleInformation)( HANDLE, HMODULE, LPMODULEINFO, DWORD );
-
-// ToolHelp Functions, for Windows 95, 98 and ME
-
-static HANDLE(WINAPI *_CreateToolhelp32Snapshot)(DWORD,DWORD) ;
-static BOOL  (WINAPI *_Module32First)           (HANDLE,LPMODULEENTRY32) ;
-static BOOL  (WINAPI *_Module32Next)            (HANDLE,LPMODULEENTRY32) ;
-
-bool _has_psapi;
-bool _psapi_init = false;
-bool _has_toolhelp;
-
-static bool _init_psapi() {
-  HINSTANCE psapi = LoadLibrary( "PSAPI.DLL" ) ;
-  if( psapi == NULL ) return false ;
-
-  _EnumProcessModules = CAST_TO_FN_PTR(
-      BOOL(WINAPI *)(HANDLE, HMODULE *, DWORD, LPDWORD),
-      GetProcAddress(psapi, "EnumProcessModules")) ;
-  _GetModuleFileNameEx = CAST_TO_FN_PTR(
-      DWORD (WINAPI *)(HANDLE, HMODULE, LPTSTR, DWORD),
-      GetProcAddress(psapi, "GetModuleFileNameExA"));
-  _GetModuleInformation = CAST_TO_FN_PTR(
-      BOOL (WINAPI *)(HANDLE, HMODULE, LPMODULEINFO, DWORD),
-      GetProcAddress(psapi, "GetModuleInformation"));
-
-  _has_psapi = (_EnumProcessModules && _GetModuleFileNameEx && _GetModuleInformation);
-  _psapi_init = true;
-  return _has_psapi;
-}
-
-static bool _init_toolhelp() {
-  HINSTANCE kernel32 = LoadLibrary("Kernel32.DLL") ;
-  if (kernel32 == NULL) return false ;
-
-  _CreateToolhelp32Snapshot = CAST_TO_FN_PTR(
-      HANDLE(WINAPI *)(DWORD,DWORD),
-      GetProcAddress(kernel32, "CreateToolhelp32Snapshot"));
-  _Module32First = CAST_TO_FN_PTR(
-      BOOL(WINAPI *)(HANDLE,LPMODULEENTRY32),
-      GetProcAddress(kernel32, "Module32First" ));
-  _Module32Next = CAST_TO_FN_PTR(
-      BOOL(WINAPI *)(HANDLE,LPMODULEENTRY32),
-      GetProcAddress(kernel32, "Module32Next" ));
-
-  _has_toolhelp = (_CreateToolhelp32Snapshot && _Module32First && _Module32Next);
-  return _has_toolhelp;
-}
-
 #ifdef _WIN64
 // Helper routine which returns true if address in
 // within the NTDLL address space.
@@ -1279,7 +1214,7 @@ static bool _addr_in_ntdll( address addr )
 
   hmod = GetModuleHandle("NTDLL.DLL");
   if ( hmod == NULL ) return false;
-  if ( !_GetModuleInformation( GetCurrentProcess(), hmod,
+  if ( !os::PSApiDll::GetModuleInformation( GetCurrentProcess(), hmod,
                                &minfo, sizeof(MODULEINFO)) )
     return false;
 
@@ -1318,14 +1253,16 @@ static int _enumerate_modules_winnt( int pid, EnumModulesCallbackFunc func, void
   static char filename[ MAX_PATH ];
   int         result = 0;
 
-  if (!_has_psapi && (_psapi_init || !_init_psapi())) return 0;
+  if (!os::PSApiDll::PSApiAvailable()) {
+    return 0;
+  }
 
   hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
                          FALSE, pid ) ;
   if (hProcess == NULL) return 0;
 
   DWORD size_needed;
-  if (!_EnumProcessModules(hProcess, modules,
+  if (!os::PSApiDll::EnumProcessModules(hProcess, modules,
                            sizeof(modules), &size_needed)) {
       CloseHandle( hProcess );
       return 0;
@@ -1336,13 +1273,13 @@ static int _enumerate_modules_winnt( int pid, EnumModulesCallbackFunc func, void
 
   for (int i = 0; i < MIN2(num_modules, MAX_NUM_MODULES); i++) {
     // Get Full pathname:
-    if(!_GetModuleFileNameEx(hProcess, modules[i],
+    if(!os::PSApiDll::GetModuleFileNameEx(hProcess, modules[i],
                              filename, sizeof(filename))) {
         filename[0] = '\0';
     }
 
     MODULEINFO modinfo;
-    if (!_GetModuleInformation(hProcess, modules[i],
+    if (!os::PSApiDll::GetModuleInformation(hProcess, modules[i],
                                &modinfo, sizeof(modinfo))) {
         modinfo.lpBaseOfDll = NULL;
         modinfo.SizeOfImage = 0;
@@ -1366,17 +1303,19 @@ static int _enumerate_modules_windows( int pid, EnumModulesCallbackFunc func, vo
   static MODULEENTRY32  modentry ;
   int                   result = 0;
 
-  if (!_has_toolhelp) return 0;
+  if (!os::Kernel32Dll::HelpToolsAvailable()) {
+    return 0;
+  }
 
   // Get a handle to a Toolhelp snapshot of the system
-  hSnapShot = _CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid ) ;
+  hSnapShot = os::Kernel32Dll::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid ) ;
   if( hSnapShot == INVALID_HANDLE_VALUE ) {
       return FALSE ;
   }
 
   // iterate through all modules
   modentry.dwSize = sizeof(MODULEENTRY32) ;
-  bool not_done = _Module32First( hSnapShot, &modentry ) != 0;
+  bool not_done = os::Kernel32Dll::Module32First( hSnapShot, &modentry ) != 0;
 
   while( not_done ) {
     // invoke the callback
@@ -1385,7 +1324,7 @@ static int _enumerate_modules_windows( int pid, EnumModulesCallbackFunc func, vo
     if (result) break;
 
     modentry.dwSize = sizeof(MODULEENTRY32) ;
-    not_done = _Module32Next( hSnapShot, &modentry ) != 0;
+    not_done = os::Kernel32Dll::Module32Next( hSnapShot, &modentry ) != 0;
   }
 
   CloseHandle(hSnapShot);
@@ -1631,10 +1570,6 @@ void os::print_dll_info(outputStream *st) {
    enumerate_modules(pid, _print_module, (void *)st);
 }
 
-// function pointer to Windows API "GetNativeSystemInfo".
-typedef void (WINAPI *GetNativeSystemInfo_func_type)(LPSYSTEM_INFO);
-static GetNativeSystemInfo_func_type _GetNativeSystemInfo;
-
 void os::print_os_info(outputStream* st) {
   st->print("OS:");
 
@@ -1661,17 +1596,10 @@ void os::print_os_info(outputStream* st) {
       // find out whether we are running on 64 bit processor or not.
       SYSTEM_INFO si;
       ZeroMemory(&si, sizeof(SYSTEM_INFO));
-      // Check to see if _GetNativeSystemInfo has been initialized.
-      if (_GetNativeSystemInfo == NULL) {
-        HMODULE hKernel32 = GetModuleHandle(TEXT("kernel32.dll"));
-        _GetNativeSystemInfo =
-            CAST_TO_FN_PTR(GetNativeSystemInfo_func_type,
-                           GetProcAddress(hKernel32,
-                                          "GetNativeSystemInfo"));
-        if (_GetNativeSystemInfo == NULL)
+        if (!os::Kernel32Dll::GetNativeSystemInfoAvailable()){
           GetSystemInfo(&si);
       } else {
-        _GetNativeSystemInfo(&si);
+        os::Kernel32Dll::GetNativeSystemInfo(&si);
       }
       if (os_vers == 5002) {
         if (osvi.wProductType == VER_NT_WORKSTATION &&
@@ -2683,47 +2611,65 @@ int os::vm_allocation_granularity() {
 #define MEM_LARGE_PAGES 0x20000000
 #endif
 
-// GetLargePageMinimum is only available on Windows 2003. The other functions
-// are available on NT but not on Windows 98/Me. We have to resolve them at
-// runtime.
-typedef SIZE_T (WINAPI *GetLargePageMinimum_func_type) (void);
-typedef BOOL (WINAPI *AdjustTokenPrivileges_func_type)
-             (HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD);
-typedef BOOL (WINAPI *OpenProcessToken_func_type) (HANDLE, DWORD, PHANDLE);
-typedef BOOL (WINAPI *LookupPrivilegeValue_func_type) (LPCTSTR, LPCTSTR, PLUID);
-
-static GetLargePageMinimum_func_type   _GetLargePageMinimum;
-static AdjustTokenPrivileges_func_type _AdjustTokenPrivileges;
-static OpenProcessToken_func_type      _OpenProcessToken;
-static LookupPrivilegeValue_func_type  _LookupPrivilegeValue;
-
-static HINSTANCE _kernel32;
-static HINSTANCE _advapi32;
 static HANDLE    _hProcess;
 static HANDLE    _hToken;
 
+// Container for NUMA node list info
+class NUMANodeListHolder {
+private:
+  int *_numa_used_node_list;  // allocated below
+  int _numa_used_node_count;
+
+  void free_node_list() {
+    if (_numa_used_node_list != NULL) {
+      FREE_C_HEAP_ARRAY(int, _numa_used_node_list);
+    }
+  }
+
+public:
+  NUMANodeListHolder() {
+    _numa_used_node_count = 0;
+    _numa_used_node_list = NULL;
+    // do rest of initialization in build routine (after function pointers are set up)
+  }
+
+  ~NUMANodeListHolder() {
+    free_node_list();
+  }
+
+  bool build() {
+    DWORD_PTR proc_aff_mask;
+    DWORD_PTR sys_aff_mask;
+    if (!GetProcessAffinityMask(GetCurrentProcess(), &proc_aff_mask, &sys_aff_mask)) return false;
+    ULONG highest_node_number;
+    if (!os::Kernel32Dll::GetNumaHighestNodeNumber(&highest_node_number)) return false;
+    free_node_list();
+    _numa_used_node_list = NEW_C_HEAP_ARRAY(int, highest_node_number + 1);
+    for (unsigned int i = 0; i <= highest_node_number; i++) {
+      ULONGLONG proc_mask_numa_node;
+      if (!os::Kernel32Dll::GetNumaNodeProcessorMask(i, &proc_mask_numa_node)) return false;
+      if ((proc_aff_mask & proc_mask_numa_node)!=0) {
+        _numa_used_node_list[_numa_used_node_count++] = i;
+      }
+    }
+    return (_numa_used_node_count > 1);
+  }
+
+  int get_count() {return _numa_used_node_count;}
+  int get_node_list_entry(int n) {
+    // for indexes out of range, returns -1
+    return (n < _numa_used_node_count ? _numa_used_node_list[n] : -1);
+  }
+
+} numa_node_list_holder;
+
+
+
 static size_t _large_page_size = 0;
 
 static bool resolve_functions_for_large_page_init() {
-  _kernel32 = LoadLibrary("kernel32.dll");
-  if (_kernel32 == NULL) return false;
-
-  _GetLargePageMinimum   = CAST_TO_FN_PTR(GetLargePageMinimum_func_type,
-                            GetProcAddress(_kernel32, "GetLargePageMinimum"));
-  if (_GetLargePageMinimum == NULL) return false;
-
-  _advapi32 = LoadLibrary("advapi32.dll");
-  if (_advapi32 == NULL) return false;
-
-  _AdjustTokenPrivileges = CAST_TO_FN_PTR(AdjustTokenPrivileges_func_type,
-                            GetProcAddress(_advapi32, "AdjustTokenPrivileges"));
-  _OpenProcessToken      = CAST_TO_FN_PTR(OpenProcessToken_func_type,
-                            GetProcAddress(_advapi32, "OpenProcessToken"));
-  _LookupPrivilegeValue  = CAST_TO_FN_PTR(LookupPrivilegeValue_func_type,
-                            GetProcAddress(_advapi32, "LookupPrivilegeValueA"));
-  return _AdjustTokenPrivileges != NULL &&
-         _OpenProcessToken      != NULL &&
-         _LookupPrivilegeValue  != NULL;
+  return os::Kernel32Dll::GetLargePageMinimumAvailable() &&
+    os::Advapi32Dll::AdvapiAvailable();
 }
 
 static bool request_lock_memory_privilege() {
@@ -2732,8 +2678,8 @@ static bool request_lock_memory_privilege() {
 
   LUID luid;
   if (_hProcess != NULL &&
-      _OpenProcessToken(_hProcess, TOKEN_ADJUST_PRIVILEGES, &_hToken) &&
-      _LookupPrivilegeValue(NULL, "SeLockMemoryPrivilege", &luid)) {
+      os::Advapi32Dll::OpenProcessToken(_hProcess, TOKEN_ADJUST_PRIVILEGES, &_hToken) &&
+      os::Advapi32Dll::LookupPrivilegeValue(NULL, "SeLockMemoryPrivilege", &luid)) {
 
     TOKEN_PRIVILEGES tp;
     tp.PrivilegeCount = 1;
@@ -2742,7 +2688,7 @@ static bool request_lock_memory_privilege() {
 
     // AdjustTokenPrivileges() may return TRUE even when it couldn't change the
     // privilege. Check GetLastError() too. See MSDN document.
-    if (_AdjustTokenPrivileges(_hToken, false, &tp, sizeof(tp), NULL, NULL) &&
+    if (os::Advapi32Dll::AdjustTokenPrivileges(_hToken, false, &tp, sizeof(tp), NULL, NULL) &&
         (GetLastError() == ERROR_SUCCESS)) {
       return true;
     }
@@ -2752,20 +2698,159 @@ static bool request_lock_memory_privilege() {
 }
 
 static void cleanup_after_large_page_init() {
-  _GetLargePageMinimum = NULL;
-  _AdjustTokenPrivileges = NULL;
-  _OpenProcessToken = NULL;
-  _LookupPrivilegeValue = NULL;
-  if (_kernel32) FreeLibrary(_kernel32);
-  _kernel32 = NULL;
-  if (_advapi32) FreeLibrary(_advapi32);
-  _advapi32 = NULL;
   if (_hProcess) CloseHandle(_hProcess);
   _hProcess = NULL;
   if (_hToken) CloseHandle(_hToken);
   _hToken = NULL;
 }
 
+static bool numa_interleaving_init() {
+  bool success = false;
+  bool use_numa_interleaving_specified = !FLAG_IS_DEFAULT(UseNUMAInterleaving);
+
+  // print a warning if UseNUMAInterleaving flag is specified on command line
+  bool warn_on_failure = use_numa_interleaving_specified;
+# define WARN(msg) if (warn_on_failure) { warning(msg); }
+
+  // NUMAInterleaveGranularity cannot be less than vm_allocation_granularity (or _large_page_size if using large pages)
+  size_t min_interleave_granularity = UseLargePages ? _large_page_size : os::vm_allocation_granularity();
+  NUMAInterleaveGranularity = align_size_up(NUMAInterleaveGranularity, min_interleave_granularity);
+
+  if (os::Kernel32Dll::NumaCallsAvailable()) {
+    if (numa_node_list_holder.build()) {
+      if (PrintMiscellaneous && Verbose) {
+        tty->print("NUMA UsedNodeCount=%d, namely ", numa_node_list_holder.get_count());
+        for (int i = 0; i < numa_node_list_holder.get_count(); i++) {
+          tty->print("%d ", numa_node_list_holder.get_node_list_entry(i));
+        }
+        tty->print("\n");
+      }
+      success = true;
+    } else {
+      WARN("Process does not cover multiple NUMA nodes.");
+    }
+  } else {
+    WARN("NUMA Interleaving is not supported by the operating system.");
+  }
+  if (!success) {
+    if (use_numa_interleaving_specified) WARN("...Ignoring UseNUMAInterleaving flag.");
+  }
+  return success;
+#undef WARN
+}
+
+// this routine is used whenever we need to reserve a contiguous VA range
+// but we need to make separate VirtualAlloc calls for each piece of the range
+// Reasons for doing this:
+//  * UseLargePagesIndividualAllocation was set (normally only needed on WS2003 but possible to be set otherwise)
+//  * UseNUMAInterleaving requires a separate node for each piece
+static char* allocate_pages_individually(size_t bytes, char* addr, DWORD flags, DWORD prot,
+                                         bool should_inject_error=false) {
+  char * p_buf;
+  // note: at setup time we guaranteed that NUMAInterleaveGranularity was aligned up to a page size
+  size_t page_size = UseLargePages ? _large_page_size : os::vm_allocation_granularity();
+  size_t chunk_size = UseNUMAInterleaving ? NUMAInterleaveGranularity : page_size;
+
+  // first reserve enough address space in advance since we want to be
+  // able to break a single contiguous virtual address range into multiple
+  // large page commits but WS2003 does not allow reserving large page space
+  // so we just use 4K pages for reserve, this gives us a legal contiguous
+  // address space. then we will deallocate that reservation, and re alloc
+  // using large pages
+  const size_t size_of_reserve = bytes + chunk_size;
+  if (bytes > size_of_reserve) {
+    // Overflowed.
+    return NULL;
+  }
+  p_buf = (char *) VirtualAlloc(addr,
+                                size_of_reserve,  // size of Reserve
+                                MEM_RESERVE,
+                                PAGE_READWRITE);
+  // If reservation failed, return NULL
+  if (p_buf == NULL) return NULL;
+
+  os::release_memory(p_buf, bytes + chunk_size);
+
+  // we still need to round up to a page boundary (in case we are using large pages)
+  // but not to a chunk boundary (in case InterleavingGranularity doesn't align with page size)
+  // instead we handle this in the bytes_to_rq computation below
+  p_buf = (char *) align_size_up((size_t)p_buf, page_size);
+
+  // now go through and allocate one chunk at a time until all bytes are
+  // allocated
+  size_t  bytes_remaining = bytes;
+  // An overflow of align_size_up() would have been caught above
+  // in the calculation of size_of_reserve.
+  char * next_alloc_addr = p_buf;
+  HANDLE hProc = GetCurrentProcess();
+
+#ifdef ASSERT
+  // Variable for the failure injection
+  long ran_num = os::random();
+  size_t fail_after = ran_num % bytes;
+#endif
+
+  int count=0;
+  while (bytes_remaining) {
+    // select bytes_to_rq to get to the next chunk_size boundary
+
+    size_t bytes_to_rq = MIN2(bytes_remaining, chunk_size - ((size_t)next_alloc_addr % chunk_size));
+    // Note allocate and commit
+    char * p_new;
+
+#ifdef ASSERT
+    bool inject_error_now = should_inject_error && (bytes_remaining <= fail_after);
+#else
+    const bool inject_error_now = false;
+#endif
+
+    if (inject_error_now) {
+      p_new = NULL;
+    } else {
+      if (!UseNUMAInterleaving) {
+        p_new = (char *) VirtualAlloc(next_alloc_addr,
+                                      bytes_to_rq,
+                                      flags,
+                                      prot);
+      } else {
+        // get the next node to use from the used_node_list
+        assert(numa_node_list_holder.get_count() > 0, "Multiple NUMA nodes expected");
+        DWORD node = numa_node_list_holder.get_node_list_entry(count % numa_node_list_holder.get_count());
+        p_new = (char *)os::Kernel32Dll::VirtualAllocExNuma(hProc,
+                                                            next_alloc_addr,
+                                                            bytes_to_rq,
+                                                            flags,
+                                                            prot,
+                                                            node);
+      }
+    }
+
+    if (p_new == NULL) {
+      // Free any allocated pages
+      if (next_alloc_addr > p_buf) {
+        // Some memory was committed so release it.
+        size_t bytes_to_release = bytes - bytes_remaining;
+        os::release_memory(p_buf, bytes_to_release);
+      }
+#ifdef ASSERT
+      if (should_inject_error) {
+        if (TracePageSizes && Verbose) {
+          tty->print_cr("Reserving pages individually failed.");
+        }
+      }
+#endif
+      return NULL;
+    }
+    bytes_remaining -= bytes_to_rq;
+    next_alloc_addr += bytes_to_rq;
+    count++;
+  }
+  // made it this far, success
+  return p_buf;
+}
+
+
+
 void os::large_page_init() {
   if (!UseLargePages) return;
 
@@ -2777,7 +2862,7 @@ void os::large_page_init() {
 # define WARN(msg) if (warn_on_failure) { warning(msg); }
   if (resolve_functions_for_large_page_init()) {
     if (request_lock_memory_privilege()) {
-      size_t s = _GetLargePageMinimum();
+      size_t s = os::Kernel32Dll::GetLargePageMinimum();
       if (s) {
 #if defined(IA32) || defined(AMD64)
         if (s > 4*M || LargePageSizeInBytes > 4*M) {
@@ -2835,9 +2920,30 @@ char* os::reserve_memory(size_t bytes, char* addr, size_t alignment_hint) {
   assert((size_t)addr % os::vm_allocation_granularity() == 0,
          "reserve alignment");
   assert(bytes % os::vm_allocation_granularity() == 0, "reserve block size");
-  char* res = (char*)VirtualAlloc(addr, bytes, MEM_RESERVE, PAGE_READWRITE);
+  char* res;
+  // note that if UseLargePages is on, all the areas that require interleaving
+  // will go thru reserve_memory_special rather than thru here.
+  bool use_individual = (UseNUMAInterleaving && !UseLargePages);
+  if (!use_individual) {
+    res = (char*)VirtualAlloc(addr, bytes, MEM_RESERVE, PAGE_READWRITE);
+  } else {
+    elapsedTimer reserveTimer;
+    if( Verbose && PrintMiscellaneous ) reserveTimer.start();
+    // in numa interleaving, we have to allocate pages individually
+    // (well really chunks of NUMAInterleaveGranularity size)
+    res = allocate_pages_individually(bytes, addr, MEM_RESERVE, PAGE_READWRITE);
+    if (res == NULL) {
+      warning("NUMA page allocation failed");
+    }
+    if( Verbose && PrintMiscellaneous ) {
+      reserveTimer.stop();
+      tty->print_cr("reserve_memory of %Ix bytes took %ld ms (%ld ticks)", bytes,
+                    reserveTimer.milliseconds(), reserveTimer.ticks());
+    }
+  }
   assert(res == NULL || addr == NULL || addr == res,
          "Unexpected address from reserve.");
+
   return res;
 }
 
@@ -2867,91 +2973,26 @@ bool os::can_execute_large_page_memory() {
 char* os::reserve_memory_special(size_t bytes, char* addr, bool exec) {
 
   const DWORD prot = exec ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE;
+  const DWORD flags = MEM_RESERVE | MEM_COMMIT | MEM_LARGE_PAGES;
 
-  if (UseLargePagesIndividualAllocation) {
+  // with large pages, there are two cases where we need to use Individual Allocation
+  // 1) the UseLargePagesIndividualAllocation flag is set (set by default on WS2003)
+  // 2) NUMA Interleaving is enabled, in which case we use a different node for each page
+  if (UseLargePagesIndividualAllocation || UseNUMAInterleaving) {
     if (TracePageSizes && Verbose) {
        tty->print_cr("Reserving large pages individually.");
     }
-    char * p_buf;
-    // first reserve enough address space in advance since we want to be
-    // able to break a single contiguous virtual address range into multiple
-    // large page commits but WS2003 does not allow reserving large page space
-    // so we just use 4K pages for reserve, this gives us a legal contiguous
-    // address space. then we will deallocate that reservation, and re alloc
-    // using large pages
-    const size_t size_of_reserve = bytes + _large_page_size;
-    if (bytes > size_of_reserve) {
-      // Overflowed.
-      warning("Individually allocated large pages failed, "
-        "use -XX:-UseLargePagesIndividualAllocation to turn off");
-      return NULL;
-    }
-    p_buf = (char *) VirtualAlloc(addr,
-                                 size_of_reserve,  // size of Reserve
-                                 MEM_RESERVE,
-                                 PAGE_READWRITE);
-    // If reservation failed, return NULL
-    if (p_buf == NULL) return NULL;
-
-    release_memory(p_buf, bytes + _large_page_size);
-    // round up to page boundary.  If the size_of_reserve did not
-    // overflow and the reservation did not fail, this align up
-    // should not overflow.
-    p_buf = (char *) align_size_up((size_t)p_buf, _large_page_size);
-
-    // now go through and allocate one page at a time until all bytes are
-    // allocated
-    size_t  bytes_remaining = align_size_up(bytes, _large_page_size);
-    // An overflow of align_size_up() would have been caught above
-    // in the calculation of size_of_reserve.
-    char * next_alloc_addr = p_buf;
-
-#ifdef ASSERT
-    // Variable for the failure injection
-    long ran_num = os::random();
-    size_t fail_after = ran_num % bytes;
-#endif
-
-    while (bytes_remaining) {
-      size_t bytes_to_rq = MIN2(bytes_remaining, _large_page_size);
-      // Note allocate and commit
-      char * p_new;
-
-#ifdef ASSERT
-      bool inject_error = LargePagesIndividualAllocationInjectError &&
-          (bytes_remaining <= fail_after);
-#else
-      const bool inject_error = false;
-#endif
-
-      if (inject_error) {
-        p_new = NULL;
-      } else {
-        p_new = (char *) VirtualAlloc(next_alloc_addr,
-                                    bytes_to_rq,
-                                    MEM_RESERVE | MEM_COMMIT | MEM_LARGE_PAGES,
-                                    prot);
+    char * p_buf = allocate_pages_individually(bytes, addr, flags, prot, LargePagesIndividualAllocationInjectError);
+    if (p_buf == NULL) {
+      // give an appropriate warning message
+      if (UseNUMAInterleaving) {
+        warning("NUMA large page allocation failed, UseLargePages flag ignored");
       }
-
-      if (p_new == NULL) {
-        // Free any allocated pages
-        if (next_alloc_addr > p_buf) {
-          // Some memory was committed so release it.
-          size_t bytes_to_release = bytes - bytes_remaining;
-          release_memory(p_buf, bytes_to_release);
-        }
-#ifdef ASSERT
-        if (UseLargePagesIndividualAllocation &&
-            LargePagesIndividualAllocationInjectError) {
-          if (TracePageSizes && Verbose) {
-             tty->print_cr("Reserving large pages individually failed.");
-          }
-        }
-#endif
-        return NULL;
+      if (UseLargePagesIndividualAllocation) {
+        warning("Individually allocated large pages failed, "
+                "use -XX:-UseLargePagesIndividualAllocation to turn off");
       }
-      bytes_remaining -= bytes_to_rq;
-      next_alloc_addr += bytes_to_rq;
+      return NULL;
     }
 
     return p_buf;
@@ -2980,14 +3021,43 @@ bool os::commit_memory(char* addr, size_t bytes, bool exec) {
   assert(bytes % os::vm_page_size() == 0, "commit in page-sized chunks");
   // Don't attempt to print anything if the OS call fails. We're
   // probably low on resources, so the print itself may cause crashes.
-  bool result = VirtualAlloc(addr, bytes, MEM_COMMIT, PAGE_READWRITE) != 0;
-  if (result != NULL && exec) {
-    DWORD oldprot;
-    // Windows doc says to use VirtualProtect to get execute permissions
-    return VirtualProtect(addr, bytes, PAGE_EXECUTE_READWRITE, &oldprot) != 0;
+
+  // unless we have NUMAInterleaving enabled, the range of a commit
+  // is always within a reserve covered by a single VirtualAlloc
+  // in that case we can just do a single commit for the requested size
+  if (!UseNUMAInterleaving) {
+    if (VirtualAlloc(addr, bytes, MEM_COMMIT, PAGE_READWRITE) == NULL) return false;
+    if (exec) {
+      DWORD oldprot;
+      // Windows doc says to use VirtualProtect to get execute permissions
+      if (!VirtualProtect(addr, bytes, PAGE_EXECUTE_READWRITE, &oldprot)) return false;
+    }
+    return true;
   } else {
-    return result;
+
+    // when NUMAInterleaving is enabled, the commit might cover a range that
+    // came from multiple VirtualAlloc reserves (using allocate_pages_individually).
+    // VirtualQuery can help us determine that.  The RegionSize that VirtualQuery
+    // returns represents the number of bytes that can be committed in one step.
+    size_t bytes_remaining = bytes;
+    char * next_alloc_addr = addr;
+    while (bytes_remaining > 0) {
+      MEMORY_BASIC_INFORMATION alloc_info;
+      VirtualQuery(next_alloc_addr, &alloc_info, sizeof(alloc_info));
+      size_t bytes_to_rq = MIN2(bytes_remaining, (size_t)alloc_info.RegionSize);
+      if (VirtualAlloc(next_alloc_addr, bytes_to_rq, MEM_COMMIT, PAGE_READWRITE) == NULL)
+        return false;
+      if (exec) {
+        DWORD oldprot;
+        if (!VirtualProtect(next_alloc_addr, bytes_to_rq, PAGE_EXECUTE_READWRITE, &oldprot))
+          return false;
+      }
+      bytes_remaining -= bytes_to_rq;
+      next_alloc_addr += bytes_to_rq;
+    }
   }
+  // if we made it this far, return true
+  return true;
 }
 
 bool os::commit_memory(char* addr, size_t size, size_t alignment_hint,
@@ -3061,14 +3131,21 @@ void os::free_memory(char *addr, size_t bytes)         { }
 void os::numa_make_global(char *addr, size_t bytes)    { }
 void os::numa_make_local(char *addr, size_t bytes, int lgrp_hint)    { }
 bool os::numa_topology_changed()                       { return false; }
-size_t os::numa_get_groups_num()                       { return 1; }
+size_t os::numa_get_groups_num()                       { return MAX2(numa_node_list_holder.get_count(), 1); }
 int os::numa_get_group_id()                            { return 0; }
 size_t os::numa_get_leaf_groups(int *ids, size_t size) {
-  if (size > 0) {
+  if (numa_node_list_holder.get_count() == 0 && size > 0) {
+    // Provide an answer for UMA systems
     ids[0] = 0;
     return 1;
+  } else {
+    // check for size bigger than actual groups_num
+    size = MIN2(size, numa_get_groups_num());
+    for (int i = 0; i < (int)size; i++) {
+      ids[i] = numa_node_list_holder.get_node_list_entry(i);
+    }
+    return size;
   }
-  return 0;
 }
 
 bool os::get_page_info(char *start, page_info* info) {
@@ -3190,18 +3267,10 @@ typedef BOOL (WINAPI * STTSignature)(void) ;
 os::YieldResult os::NakedYield() {
   // Use either SwitchToThread() or Sleep(0)
   // Consider passing back the return value from SwitchToThread().
-  // We use GetProcAddress() as ancient Win9X versions of windows doen't support SwitchToThread.
-  // In that case we revert to Sleep(0).
-  static volatile STTSignature stt = (STTSignature) 1 ;
-
-  if (stt == ((STTSignature) 1)) {
-    stt = (STTSignature) ::GetProcAddress (LoadLibrary ("Kernel32.dll"), "SwitchToThread") ;
-    // It's OK if threads race during initialization as the operation above is idempotent.
-  }
-  if (stt != NULL) {
-    return (*stt)() ? os::YIELD_SWITCHED : os::YIELD_NONEREADY ;
+  if (os::Kernel32Dll::SwitchToThreadAvailable()) {
+    return SwitchToThread() ? os::YIELD_SWITCHED : os::YIELD_NONEREADY ;
   } else {
-    Sleep (0) ;
+    Sleep(0);
   }
   return os::YIELD_UNKNOWN ;
 }
@@ -3425,6 +3494,44 @@ void os::win32::initialize_system_info() {
 }
 
 
+HINSTANCE os::win32::load_Windows_dll(const char* name, char *ebuf, int ebuflen) {
+  char path[MAX_PATH];
+  DWORD size;
+  DWORD pathLen = (DWORD)sizeof(path);
+  HINSTANCE result = NULL;
+
+  // only allow library name without path component
+  assert(strchr(name, '\\') == NULL, "path not allowed");
+  assert(strchr(name, ':') == NULL, "path not allowed");
+  if (strchr(name, '\\') != NULL || strchr(name, ':') != NULL) {
+    jio_snprintf(ebuf, ebuflen,
+      "Invalid parameter while calling os::win32::load_windows_dll(): cannot take path: %s", name);
+    return NULL;
+  }
+
+  // search system directory
+  if ((size = GetSystemDirectory(path, pathLen)) > 0) {
+    strcat(path, "\\");
+    strcat(path, name);
+    if ((result = (HINSTANCE)os::dll_load(path, ebuf, ebuflen)) != NULL) {
+      return result;
+    }
+  }
+
+  // try Windows directory
+  if ((size = GetWindowsDirectory(path, pathLen)) > 0) {
+    strcat(path, "\\");
+    strcat(path, name);
+    if ((result = (HINSTANCE)os::dll_load(path, ebuf, ebuflen)) != NULL) {
+      return result;
+    }
+  }
+
+  jio_snprintf(ebuf, ebuflen,
+    "os::win32::load_windows_dll() cannot load %s from system directories.", name);
+  return NULL;
+}
+
 void os::win32::setmode_streams() {
   _setmode(_fileno(stdin), _O_BINARY);
   _setmode(_fileno(stdout), _O_BINARY);
@@ -3563,7 +3670,7 @@ jint os::init_2(void) {
     if(Verbose && PrintMiscellaneous)
       tty->print("[Memory Serialize  Page address: " INTPTR_FORMAT "]\n", (intptr_t)mem_serialize_page);
 #endif
-}
+  }
 
   os::large_page_init();
 
@@ -3658,10 +3765,6 @@ jint os::init_2(void) {
     }
   }
 
-  // initialize PSAPI or ToolHelp for fatal error handler
-  if (win32::is_nt()) _init_psapi();
-  else _init_toolhelp();
-
 #ifndef _WIN64
   // Print something if NX is enabled (win32 on AMD64)
   NOT_PRODUCT(if (PrintMiscellaneous && Verbose) nx_check_protection());
@@ -3671,7 +3774,13 @@ jint os::init_2(void) {
   prio_init();
 
   if (UseNUMA && !ForceNUMA) {
-    UseNUMA = false; // Currently unsupported.
+    UseNUMA = false; // We don't fully support this yet
+  }
+
+  if (UseNUMAInterleaving) {
+    // first check whether this Windows OS supports VirtualAllocExNuma, if not ignore this flag
+    bool success = numa_interleaving_init();
+    if (!success) UseNUMAInterleaving = false;
   }
 
   return JNI_OK;
@@ -4708,12 +4817,6 @@ static int getLastErrorString(char *buf, size_t len)
 // We don't build a headless jre for Windows
 bool os::is_headless_jre() { return false; }
 
-// OS_SocketInterface
-// Not used on Windows
-
-// OS_SocketInterface
-typedef struct hostent * (PASCAL FAR *ws2_ifn_ptr_t)(...);
-ws2_ifn_ptr_t *get_host_by_name_fn = NULL;
 
 typedef CRITICAL_SECTION mutex_t;
 #define mutexInit(m)    InitializeCriticalSection(m)
@@ -4721,58 +4824,36 @@ typedef CRITICAL_SECTION mutex_t;
 #define mutexLock(m)    EnterCriticalSection(m)
 #define mutexUnlock(m)  LeaveCriticalSection(m)
 
-static bool sockfnptrs_initialized = FALSE;
+static bool sock_initialized = FALSE;
 static mutex_t sockFnTableMutex;
 
-/* is Winsock2 loaded? better to be explicit than to rely on sockfnptrs */
-static bool winsock2Available = FALSE;
-
-
-static void initSockFnTable() {
-  int (PASCAL FAR* WSAStartupPtr)(WORD, LPWSADATA);
+static void initSock() {
   WSADATA wsadata;
 
-  ::mutexInit(&sockFnTableMutex);
-  ::mutexLock(&sockFnTableMutex);
-
-  if (sockfnptrs_initialized == FALSE) {
-        HMODULE hWinsock;
-
-          /* try to load Winsock2, and if that fails, load Winsock */
-    hWinsock = ::LoadLibrary("ws2_32.dll");
-
-    if (hWinsock == NULL) {
-      jio_fprintf(stderr, "Could not load Winsock 2 (error: %d)\n",
+  if (!os::WinSock2Dll::WinSock2Available()) {
+    jio_fprintf(stderr, "Could not load Winsock 2 (error: %d)\n",
       ::GetLastError());
-      return;
-    }
-
-    /* If we loaded a DLL, then we might as well initialize it.  */
-    WSAStartupPtr = (int (PASCAL FAR *)(WORD, LPWSADATA))
-    ::GetProcAddress(hWinsock, "WSAStartup");
-
-    if (WSAStartupPtr(MAKEWORD(1,1), &wsadata) != 0) {
-        jio_fprintf(stderr, "Could not initialize Winsock\n");
-    }
-
-    get_host_by_name_fn
-        = (ws2_ifn_ptr_t*) GetProcAddress(hWinsock, "gethostbyname");
+    return;
   }
+  if (sock_initialized == TRUE) return;
 
-  assert(get_host_by_name_fn != NULL,
-    "gethostbyname function not found");
-  sockfnptrs_initialized = TRUE;
+  ::mutexInit(&sockFnTableMutex);
+  ::mutexLock(&sockFnTableMutex);
+  if (os::WinSock2Dll::WSAStartup(MAKEWORD(1,1), &wsadata) != 0) {
+      jio_fprintf(stderr, "Could not initialize Winsock\n");
+  }
+  sock_initialized = TRUE;
   ::mutexUnlock(&sockFnTableMutex);
 }
 
 struct hostent*  os::get_host_by_name(char* name) {
-  if (!sockfnptrs_initialized) {
-    initSockFnTable();
+  if (!sock_initialized) {
+    initSock();
   }
-
-  assert(sockfnptrs_initialized == TRUE && get_host_by_name_fn != NULL,
-    "sockfnptrs is not initialized or pointer to gethostbyname function is NULL");
-  return (*get_host_by_name_fn)(name);
+  if (!os::WinSock2Dll::WinSock2Available()) {
+    return NULL;
+  }
+  return (struct hostent*)os::WinSock2Dll::gethostbyname(name);
 }
 
 
@@ -4869,3 +4950,414 @@ int os::set_sock_opt(int fd, int level, int optname,
   ShouldNotReachHere();
   return 0;
 }
+
+
+// Kernel32 API
+typedef SIZE_T (WINAPI* GetLargePageMinimum_Fn)(void);
+typedef LPVOID (WINAPI *VirtualAllocExNuma_Fn) (HANDLE, LPVOID, SIZE_T, DWORD, DWORD, DWORD);
+typedef BOOL (WINAPI *GetNumaHighestNodeNumber_Fn) (PULONG);
+typedef BOOL (WINAPI *GetNumaNodeProcessorMask_Fn) (UCHAR, PULONGLONG);
+
+GetLargePageMinimum_Fn      os::Kernel32Dll::_GetLargePageMinimum = NULL;
+VirtualAllocExNuma_Fn       os::Kernel32Dll::_VirtualAllocExNuma = NULL;
+GetNumaHighestNodeNumber_Fn os::Kernel32Dll::_GetNumaHighestNodeNumber = NULL;
+GetNumaNodeProcessorMask_Fn os::Kernel32Dll::_GetNumaNodeProcessorMask = NULL;
+BOOL                        os::Kernel32Dll::initialized = FALSE;
+SIZE_T os::Kernel32Dll::GetLargePageMinimum() {
+  assert(initialized && _GetLargePageMinimum != NULL,
+    "GetLargePageMinimumAvailable() not yet called");
+  return _GetLargePageMinimum();
+}
+
+BOOL os::Kernel32Dll::GetLargePageMinimumAvailable() {
+  if (!initialized) {
+    initialize();
+  }
+  return _GetLargePageMinimum != NULL;
+}
+
+BOOL os::Kernel32Dll::NumaCallsAvailable() {
+  if (!initialized) {
+    initialize();
+  }
+  return _VirtualAllocExNuma != NULL;
+}
+
+LPVOID os::Kernel32Dll::VirtualAllocExNuma(HANDLE hProc, LPVOID addr, SIZE_T bytes, DWORD flags, DWORD prot, DWORD node) {
+  assert(initialized && _VirtualAllocExNuma != NULL,
+    "NUMACallsAvailable() not yet called");
+
+  return _VirtualAllocExNuma(hProc, addr, bytes, flags, prot, node);
+}
+
+BOOL os::Kernel32Dll::GetNumaHighestNodeNumber(PULONG ptr_highest_node_number) {
+  assert(initialized && _GetNumaHighestNodeNumber != NULL,
+    "NUMACallsAvailable() not yet called");
+
+  return _GetNumaHighestNodeNumber(ptr_highest_node_number);
+}
+
+BOOL os::Kernel32Dll::GetNumaNodeProcessorMask(UCHAR node, PULONGLONG proc_mask) {
+  assert(initialized && _GetNumaNodeProcessorMask != NULL,
+    "NUMACallsAvailable() not yet called");
+
+  return _GetNumaNodeProcessorMask(node, proc_mask);
+}
+
+
+void os::Kernel32Dll::initializeCommon() {
+  if (!initialized) {
+    HMODULE handle = ::GetModuleHandle("Kernel32.dll");
+    assert(handle != NULL, "Just check");
+    _GetLargePageMinimum = (GetLargePageMinimum_Fn)::GetProcAddress(handle, "GetLargePageMinimum");
+    _VirtualAllocExNuma = (VirtualAllocExNuma_Fn)::GetProcAddress(handle, "VirtualAllocExNuma");
+    _GetNumaHighestNodeNumber = (GetNumaHighestNodeNumber_Fn)::GetProcAddress(handle, "GetNumaHighestNodeNumber");
+    _GetNumaNodeProcessorMask = (GetNumaNodeProcessorMask_Fn)::GetProcAddress(handle, "GetNumaNodeProcessorMask");
+    initialized = TRUE;
+  }
+}
+
+
+
+#ifndef JDK6_OR_EARLIER
+
+void os::Kernel32Dll::initialize() {
+  initializeCommon();
+}
+
+
+// Kernel32 API
+inline BOOL os::Kernel32Dll::SwitchToThread() {
+  return ::SwitchToThread();
+}
+
+inline BOOL os::Kernel32Dll::SwitchToThreadAvailable() {
+  return true;
+}
+
+  // Help tools
+inline BOOL os::Kernel32Dll::HelpToolsAvailable() {
+  return true;
+}
+
+inline HANDLE os::Kernel32Dll::CreateToolhelp32Snapshot(DWORD dwFlags,DWORD th32ProcessId) {
+  return ::CreateToolhelp32Snapshot(dwFlags, th32ProcessId);
+}
+
+inline BOOL os::Kernel32Dll::Module32First(HANDLE hSnapshot,LPMODULEENTRY32 lpme) {
+  return ::Module32First(hSnapshot, lpme);
+}
+
+inline BOOL os::Kernel32Dll::Module32Next(HANDLE hSnapshot,LPMODULEENTRY32 lpme) {
+  return ::Module32Next(hSnapshot, lpme);
+}
+
+
+inline BOOL os::Kernel32Dll::GetNativeSystemInfoAvailable() {
+  return true;
+}
+
+inline void os::Kernel32Dll::GetNativeSystemInfo(LPSYSTEM_INFO lpSystemInfo) {
+  ::GetNativeSystemInfo(lpSystemInfo);
+}
+
+// PSAPI API
+inline BOOL os::PSApiDll::EnumProcessModules(HANDLE hProcess, HMODULE *lpModule, DWORD cb, LPDWORD lpcbNeeded) {
+  return ::EnumProcessModules(hProcess, lpModule, cb, lpcbNeeded);
+}
+
+inline DWORD os::PSApiDll::GetModuleFileNameEx(HANDLE hProcess, HMODULE hModule, LPTSTR lpFilename, DWORD nSize) {
+  return ::GetModuleFileNameEx(hProcess, hModule, lpFilename, nSize);
+}
+
+inline BOOL os::PSApiDll::GetModuleInformation(HANDLE hProcess, HMODULE hModule, LPMODULEINFO lpmodinfo, DWORD cb) {
+  return ::GetModuleInformation(hProcess, hModule, lpmodinfo, cb);
+}
+
+inline BOOL os::PSApiDll::PSApiAvailable() {
+  return true;
+}
+
+
+// WinSock2 API
+inline BOOL os::WinSock2Dll::WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData) {
+  return ::WSAStartup(wVersionRequested, lpWSAData);
+}
+
+inline struct hostent* os::WinSock2Dll::gethostbyname(const char *name) {
+  return ::gethostbyname(name);
+}
+
+inline BOOL os::WinSock2Dll::WinSock2Available() {
+  return true;
+}
+
+// Advapi API
+inline BOOL os::Advapi32Dll::AdjustTokenPrivileges(HANDLE TokenHandle,
+   BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength,
+   PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength) {
+     return ::AdjustTokenPrivileges(TokenHandle, DisableAllPrivileges, NewState,
+       BufferLength, PreviousState, ReturnLength);
+}
+
+inline BOOL os::Advapi32Dll::OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess,
+  PHANDLE TokenHandle) {
+    return ::OpenProcessToken(ProcessHandle, DesiredAccess, TokenHandle);
+}
+
+inline BOOL os::Advapi32Dll::LookupPrivilegeValue(LPCTSTR lpSystemName, LPCTSTR lpName, PLUID lpLuid) {
+  return ::LookupPrivilegeValue(lpSystemName, lpName, lpLuid);
+}
+
+inline BOOL os::Advapi32Dll::AdvapiAvailable() {
+  return true;
+}
+
+#else
+// Kernel32 API
+typedef BOOL (WINAPI* SwitchToThread_Fn)(void);
+typedef HANDLE (WINAPI* CreateToolhelp32Snapshot_Fn)(DWORD,DWORD);
+typedef BOOL (WINAPI* Module32First_Fn)(HANDLE,LPMODULEENTRY32);
+typedef BOOL (WINAPI* Module32Next_Fn)(HANDLE,LPMODULEENTRY32);
+typedef void (WINAPI* GetNativeSystemInfo_Fn)(LPSYSTEM_INFO);
+
+SwitchToThread_Fn           os::Kernel32Dll::_SwitchToThread = NULL;
+CreateToolhelp32Snapshot_Fn os::Kernel32Dll::_CreateToolhelp32Snapshot = NULL;
+Module32First_Fn            os::Kernel32Dll::_Module32First = NULL;
+Module32Next_Fn             os::Kernel32Dll::_Module32Next = NULL;
+GetNativeSystemInfo_Fn      os::Kernel32Dll::_GetNativeSystemInfo = NULL;
+
+
+void os::Kernel32Dll::initialize() {
+  if (!initialized) {
+    HMODULE handle = ::GetModuleHandle("Kernel32.dll");
+    assert(handle != NULL, "Just check");
+
+    _SwitchToThread = (SwitchToThread_Fn)::GetProcAddress(handle, "SwitchToThread");
+    _CreateToolhelp32Snapshot = (CreateToolhelp32Snapshot_Fn)
+      ::GetProcAddress(handle, "CreateToolhelp32Snapshot");
+    _Module32First = (Module32First_Fn)::GetProcAddress(handle, "Module32First");
+    _Module32Next = (Module32Next_Fn)::GetProcAddress(handle, "Module32Next");
+    _GetNativeSystemInfo = (GetNativeSystemInfo_Fn)::GetProcAddress(handle, "GetNativeSystemInfo");
+    initializeCommon();  // resolve the functions that always need resolving
+
+    initialized = TRUE;
+  }
+}
+
+BOOL os::Kernel32Dll::SwitchToThread() {
+  assert(initialized && _SwitchToThread != NULL,
+    "SwitchToThreadAvailable() not yet called");
+  return _SwitchToThread();
+}
+
+
+BOOL os::Kernel32Dll::SwitchToThreadAvailable() {
+  if (!initialized) {
+    initialize();
+  }
+  return _SwitchToThread != NULL;
+}
+
+// Help tools
+BOOL os::Kernel32Dll::HelpToolsAvailable() {
+  if (!initialized) {
+    initialize();
+  }
+  return _CreateToolhelp32Snapshot != NULL &&
+         _Module32First != NULL &&
+         _Module32Next != NULL;
+}
+
+HANDLE os::Kernel32Dll::CreateToolhelp32Snapshot(DWORD dwFlags,DWORD th32ProcessId) {
+  assert(initialized && _CreateToolhelp32Snapshot != NULL,
+    "HelpToolsAvailable() not yet called");
+
+  return _CreateToolhelp32Snapshot(dwFlags, th32ProcessId);
+}
+
+BOOL os::Kernel32Dll::Module32First(HANDLE hSnapshot,LPMODULEENTRY32 lpme) {
+  assert(initialized && _Module32First != NULL,
+    "HelpToolsAvailable() not yet called");
+
+  return _Module32First(hSnapshot, lpme);
+}
+
+inline BOOL os::Kernel32Dll::Module32Next(HANDLE hSnapshot,LPMODULEENTRY32 lpme) {
+  assert(initialized && _Module32Next != NULL,
+    "HelpToolsAvailable() not yet called");
+
+  return _Module32Next(hSnapshot, lpme);
+}
+
+
+BOOL os::Kernel32Dll::GetNativeSystemInfoAvailable() {
+  if (!initialized) {
+    initialize();
+  }
+  return _GetNativeSystemInfo != NULL;
+}
+
+void os::Kernel32Dll::GetNativeSystemInfo(LPSYSTEM_INFO lpSystemInfo) {
+  assert(initialized && _GetNativeSystemInfo != NULL,
+    "GetNativeSystemInfoAvailable() not yet called");
+
+  _GetNativeSystemInfo(lpSystemInfo);
+}
+
+
+
+// PSAPI API
+
+
+typedef BOOL (WINAPI *EnumProcessModules_Fn)(HANDLE, HMODULE *, DWORD, LPDWORD);
+typedef BOOL (WINAPI *GetModuleFileNameEx_Fn)(HANDLE, HMODULE, LPTSTR, DWORD);;
+typedef BOOL (WINAPI *GetModuleInformation_Fn)(HANDLE, HMODULE, LPMODULEINFO, DWORD);
+
+EnumProcessModules_Fn   os::PSApiDll::_EnumProcessModules = NULL;
+GetModuleFileNameEx_Fn  os::PSApiDll::_GetModuleFileNameEx = NULL;
+GetModuleInformation_Fn os::PSApiDll::_GetModuleInformation = NULL;
+BOOL                    os::PSApiDll::initialized = FALSE;
+
+void os::PSApiDll::initialize() {
+  if (!initialized) {
+    HMODULE handle = os::win32::load_Windows_dll("PSAPI.DLL", NULL, 0);
+    if (handle != NULL) {
+      _EnumProcessModules = (EnumProcessModules_Fn)::GetProcAddress(handle,
+        "EnumProcessModules");
+      _GetModuleFileNameEx = (GetModuleFileNameEx_Fn)::GetProcAddress(handle,
+        "GetModuleFileNameExA");
+      _GetModuleInformation = (GetModuleInformation_Fn)::GetProcAddress(handle,
+        "GetModuleInformation");
+    }
+    initialized = TRUE;
+  }
+}
+
+
+
+BOOL os::PSApiDll::EnumProcessModules(HANDLE hProcess, HMODULE *lpModule, DWORD cb, LPDWORD lpcbNeeded) {
+  assert(initialized && _EnumProcessModules != NULL,
+    "PSApiAvailable() not yet called");
+  return _EnumProcessModules(hProcess, lpModule, cb, lpcbNeeded);
+}
+
+DWORD os::PSApiDll::GetModuleFileNameEx(HANDLE hProcess, HMODULE hModule, LPTSTR lpFilename, DWORD nSize) {
+  assert(initialized && _GetModuleFileNameEx != NULL,
+    "PSApiAvailable() not yet called");
+  return _GetModuleFileNameEx(hProcess, hModule, lpFilename, nSize);
+}
+
+BOOL os::PSApiDll::GetModuleInformation(HANDLE hProcess, HMODULE hModule, LPMODULEINFO lpmodinfo, DWORD cb) {
+  assert(initialized && _GetModuleInformation != NULL,
+    "PSApiAvailable() not yet called");
+  return _GetModuleInformation(hProcess, hModule, lpmodinfo, cb);
+}
+
+BOOL os::PSApiDll::PSApiAvailable() {
+  if (!initialized) {
+    initialize();
+  }
+  return _EnumProcessModules != NULL &&
+    _GetModuleFileNameEx != NULL &&
+    _GetModuleInformation != NULL;
+}
+
+
+// WinSock2 API
+typedef int (PASCAL FAR* WSAStartup_Fn)(WORD, LPWSADATA);
+typedef struct hostent *(PASCAL FAR *gethostbyname_Fn)(...);
+
+WSAStartup_Fn    os::WinSock2Dll::_WSAStartup = NULL;
+gethostbyname_Fn os::WinSock2Dll::_gethostbyname = NULL;
+BOOL             os::WinSock2Dll::initialized = FALSE;
+
+void os::WinSock2Dll::initialize() {
+  if (!initialized) {
+    HMODULE handle = os::win32::load_Windows_dll("ws2_32.dll", NULL, 0);
+    if (handle != NULL) {
+      _WSAStartup = (WSAStartup_Fn)::GetProcAddress(handle, "WSAStartup");
+      _gethostbyname = (gethostbyname_Fn)::GetProcAddress(handle, "gethostbyname");
+    }
+    initialized = TRUE;
+  }
+}
+
+
+BOOL os::WinSock2Dll::WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData) {
+  assert(initialized && _WSAStartup != NULL,
+    "WinSock2Available() not yet called");
+  return _WSAStartup(wVersionRequested, lpWSAData);
+}
+
+struct hostent* os::WinSock2Dll::gethostbyname(const char *name) {
+  assert(initialized && _gethostbyname != NULL,
+    "WinSock2Available() not yet called");
+  return _gethostbyname(name);
+}
+
+BOOL os::WinSock2Dll::WinSock2Available() {
+  if (!initialized) {
+    initialize();
+  }
+  return _WSAStartup != NULL &&
+    _gethostbyname != NULL;
+}
+
+typedef BOOL (WINAPI *AdjustTokenPrivileges_Fn)(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD);
+typedef BOOL (WINAPI *OpenProcessToken_Fn)(HANDLE, DWORD, PHANDLE);
+typedef BOOL (WINAPI *LookupPrivilegeValue_Fn)(LPCTSTR, LPCTSTR, PLUID);
+
+AdjustTokenPrivileges_Fn os::Advapi32Dll::_AdjustTokenPrivileges = NULL;
+OpenProcessToken_Fn      os::Advapi32Dll::_OpenProcessToken = NULL;
+LookupPrivilegeValue_Fn  os::Advapi32Dll::_LookupPrivilegeValue = NULL;
+BOOL                     os::Advapi32Dll::initialized = FALSE;
+
+void os::Advapi32Dll::initialize() {
+  if (!initialized) {
+    HMODULE handle = os::win32::load_Windows_dll("advapi32.dll", NULL, 0);
+    if (handle != NULL) {
+      _AdjustTokenPrivileges = (AdjustTokenPrivileges_Fn)::GetProcAddress(handle,
+        "AdjustTokenPrivileges");
+      _OpenProcessToken = (OpenProcessToken_Fn)::GetProcAddress(handle,
+        "OpenProcessToken");
+      _LookupPrivilegeValue = (LookupPrivilegeValue_Fn)::GetProcAddress(handle,
+        "LookupPrivilegeValueA");
+    }
+    initialized = TRUE;
+  }
+}
+
+BOOL os::Advapi32Dll::AdjustTokenPrivileges(HANDLE TokenHandle,
+   BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength,
+   PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength) {
+   assert(initialized && _AdjustTokenPrivileges != NULL,
+     "AdvapiAvailable() not yet called");
+   return _AdjustTokenPrivileges(TokenHandle, DisableAllPrivileges, NewState,
+       BufferLength, PreviousState, ReturnLength);
+}
+
+BOOL os::Advapi32Dll::OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess,
+  PHANDLE TokenHandle) {
+   assert(initialized && _OpenProcessToken != NULL,
+     "AdvapiAvailable() not yet called");
+    return _OpenProcessToken(ProcessHandle, DesiredAccess, TokenHandle);
+}
+
+BOOL os::Advapi32Dll::LookupPrivilegeValue(LPCTSTR lpSystemName, LPCTSTR lpName, PLUID lpLuid) {
+   assert(initialized && _LookupPrivilegeValue != NULL,
+     "AdvapiAvailable() not yet called");
+  return _LookupPrivilegeValue(lpSystemName, lpName, lpLuid);
+}
+
+BOOL os::Advapi32Dll::AdvapiAvailable() {
+  if (!initialized) {
+    initialize();
+  }
+  return _AdjustTokenPrivileges != NULL &&
+    _OpenProcessToken != NULL &&
+    _LookupPrivilegeValue != NULL;
+}
+
+#endif
+
diff --git a/hotspot/src/os/windows/vm/os_windows.hpp b/hotspot/src/os/windows/vm/os_windows.hpp
index 5576f0b..353d595 100644
--- a/hotspot/src/os/windows/vm/os_windows.hpp
+++ b/hotspot/src/os/windows/vm/os_windows.hpp
@@ -24,7 +24,6 @@
 
 #ifndef OS_WINDOWS_VM_OS_WINDOWS_HPP
 #define OS_WINDOWS_VM_OS_WINDOWS_HPP
-
 // Win32_OS defines the interface to windows operating systems
 
 class win32 {
@@ -55,6 +54,9 @@ class win32 {
   static julong available_memory();
   static julong physical_memory() { return _physical_memory; }
 
+  // load dll from Windows system directory or Windows directory
+  static HINSTANCE load_Windows_dll(const char* name, char *ebuf, int ebuflen);
+
  public:
   // Generic interface:
 
@@ -132,4 +134,112 @@ class PlatformParker : public CHeapObj {
 
 } ;
 
+// JDK7 requires VS2010
+#if _MSC_VER < 1600
+#define JDK6_OR_EARLIER 1
+#endif
+
+
+
+class WinSock2Dll: AllStatic {
+public:
+  static BOOL WSAStartup(WORD, LPWSADATA);
+  static struct hostent* gethostbyname(const char *name);
+  static BOOL WinSock2Available();
+#ifdef JDK6_OR_EARLIER
+private:
+  static int (PASCAL FAR* _WSAStartup)(WORD, LPWSADATA);
+  static struct hostent *(PASCAL FAR *_gethostbyname)(...);
+  static BOOL initialized;
+
+  static void initialize();
+#endif
+};
+
+class Kernel32Dll: AllStatic {
+public:
+  static BOOL SwitchToThread();
+  static SIZE_T GetLargePageMinimum();
+
+  static BOOL SwitchToThreadAvailable();
+  static BOOL GetLargePageMinimumAvailable();
+
+  // Help tools
+  static BOOL HelpToolsAvailable();
+  static HANDLE CreateToolhelp32Snapshot(DWORD,DWORD);
+  static BOOL Module32First(HANDLE,LPMODULEENTRY32);
+  static BOOL Module32Next(HANDLE,LPMODULEENTRY32);
+
+  static BOOL GetNativeSystemInfoAvailable();
+  static void GetNativeSystemInfo(LPSYSTEM_INFO);
+
+  // NUMA calls
+  static BOOL NumaCallsAvailable();
+  static LPVOID VirtualAllocExNuma(HANDLE, LPVOID, SIZE_T, DWORD, DWORD, DWORD);
+  static BOOL GetNumaHighestNodeNumber(PULONG);
+  static BOOL GetNumaNodeProcessorMask(UCHAR, PULONGLONG);
+
+private:
+  // GetLargePageMinimum available on Windows Vista/Windows Server 2003
+  // and later
+  // NUMA calls available Windows Vista/WS2008 and later
+
+  static SIZE_T (WINAPI *_GetLargePageMinimum)(void);
+  static LPVOID (WINAPI *_VirtualAllocExNuma) (HANDLE, LPVOID, SIZE_T, DWORD, DWORD, DWORD);
+  static BOOL (WINAPI *_GetNumaHighestNodeNumber) (PULONG);
+  static BOOL (WINAPI *_GetNumaNodeProcessorMask) (UCHAR, PULONGLONG);
+  static BOOL initialized;
+
+  static void initialize();
+  static void initializeCommon();
+
+#ifdef JDK6_OR_EARLIER
+private:
+  static BOOL (WINAPI *_SwitchToThread)(void);
+  static HANDLE (WINAPI* _CreateToolhelp32Snapshot)(DWORD,DWORD);
+  static BOOL (WINAPI* _Module32First)(HANDLE,LPMODULEENTRY32);
+  static BOOL (WINAPI* _Module32Next)(HANDLE,LPMODULEENTRY32);
+  static void (WINAPI *_GetNativeSystemInfo)(LPSYSTEM_INFO);
+#endif
+
+};
+
+class Advapi32Dll: AllStatic {
+public:
+  static BOOL AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD);
+  static BOOL OpenProcessToken(HANDLE, DWORD, PHANDLE);
+  static BOOL LookupPrivilegeValue(LPCTSTR, LPCTSTR, PLUID);
+
+  static BOOL AdvapiAvailable();
+
+#ifdef JDK6_OR_EARLIER
+private:
+  static BOOL (WINAPI *_AdjustTokenPrivileges)(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD);
+  static BOOL (WINAPI *_OpenProcessToken)(HANDLE, DWORD, PHANDLE);
+  static BOOL (WINAPI *_LookupPrivilegeValue)(LPCTSTR, LPCTSTR, PLUID);
+  static BOOL initialized;
+
+  static void initialize();
+#endif
+};
+
+class PSApiDll: AllStatic {
+public:
+  static BOOL EnumProcessModules(HANDLE, HMODULE *, DWORD, LPDWORD);
+  static DWORD GetModuleFileNameEx(HANDLE, HMODULE, LPTSTR, DWORD);
+  static BOOL GetModuleInformation(HANDLE, HMODULE, LPMODULEINFO, DWORD);
+
+  static BOOL PSApiAvailable();
+
+#ifdef JDK6_OR_EARLIER
+private:
+  static BOOL (WINAPI *_EnumProcessModules)(HANDLE, HMODULE *, DWORD, LPDWORD);
+  static BOOL (WINAPI *_GetModuleFileNameEx)(HANDLE, HMODULE, LPTSTR, DWORD);;
+  static BOOL (WINAPI *_GetModuleInformation)(HANDLE, HMODULE, LPMODULEINFO, DWORD);
+  static BOOL initialized;
+
+  static void initialize();
+#endif
+};
+
 #endif // OS_WINDOWS_VM_OS_WINDOWS_HPP
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/assembler_bsd_x86.cpp b/hotspot/src/os_cpu/bsd_x86/vm/assembler_bsd_x86.cpp
new file mode 100644
index 0000000..5cd9410
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/assembler_bsd_x86.cpp
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "asm/assembler.hpp"
+#include "assembler_x86.inline.hpp"
+#include "runtime/os.hpp"
+#include "runtime/threadLocalStorage.hpp"
+
+#ifndef _LP64
+void MacroAssembler::int3() {
+  call(RuntimeAddress(CAST_FROM_FN_PTR(address, os::breakpoint)));
+}
+
+void MacroAssembler::get_thread(Register thread) {
+  movl(thread, rsp);
+  shrl(thread, PAGE_SHIFT);
+
+  ExternalAddress tls_base((address)ThreadLocalStorage::sp_map_addr());
+  Address index(noreg, thread, Address::times_4);
+  ArrayAddress tls(tls_base, index);
+
+  movptr(thread, tls);
+}
+#else
+void MacroAssembler::int3() {
+  call(RuntimeAddress(CAST_FROM_FN_PTR(address, os::breakpoint)));
+}
+
+void MacroAssembler::get_thread(Register thread) {
+  // call pthread_getspecific
+  // void * pthread_getspecific(pthread_key_t key);
+   if (thread != rax) {
+     push(rax);
+   }
+   push(rdi);
+   push(rsi);
+   push(rdx);
+   push(rcx);
+   push(r8);
+   push(r9);
+   push(r10);
+   // XXX
+   mov(r10, rsp);
+   andq(rsp, -16);
+   push(r10);
+   push(r11);
+
+   movl(rdi, ThreadLocalStorage::thread_index());
+   call(RuntimeAddress(CAST_FROM_FN_PTR(address, pthread_getspecific)));
+
+   pop(r11);
+   pop(rsp);
+   pop(r10);
+   pop(r9);
+   pop(r8);
+   pop(rcx);
+   pop(rdx);
+   pop(rsi);
+   pop(rdi);
+   if (thread != rax) {
+       mov(thread, rax);
+       pop(rax);
+   }
+}
+#endif
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/atomic_bsd_x86.inline.hpp b/hotspot/src/os_cpu/bsd_x86/vm/atomic_bsd_x86.inline.hpp
new file mode 100644
index 0000000..aa47196
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/atomic_bsd_x86.inline.hpp
@@ -0,0 +1,221 @@
+/*
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_X86_VM_ATOMIC_BSD_X86_INLINE_HPP
+#define OS_CPU_BSD_X86_VM_ATOMIC_BSD_X86_INLINE_HPP
+
+#include "orderAccess_bsd_x86.inline.hpp"
+#include "runtime/atomic.hpp"
+#include "runtime/os.hpp"
+#include "vm_version_x86.hpp"
+
+// Implementation of class atomic
+
+inline void Atomic::store    (jbyte    store_value, jbyte*    dest) { *dest = store_value; }
+inline void Atomic::store    (jshort   store_value, jshort*   dest) { *dest = store_value; }
+inline void Atomic::store    (jint     store_value, jint*     dest) { *dest = store_value; }
+inline void Atomic::store_ptr(intptr_t store_value, intptr_t* dest) { *dest = store_value; }
+inline void Atomic::store_ptr(void*    store_value, void*     dest) { *(void**)dest = store_value; }
+
+inline void Atomic::store    (jbyte    store_value, volatile jbyte*    dest) { *dest = store_value; }
+inline void Atomic::store    (jshort   store_value, volatile jshort*   dest) { *dest = store_value; }
+inline void Atomic::store    (jint     store_value, volatile jint*     dest) { *dest = store_value; }
+inline void Atomic::store_ptr(intptr_t store_value, volatile intptr_t* dest) { *dest = store_value; }
+inline void Atomic::store_ptr(void*    store_value, volatile void*     dest) { *(void* volatile *)dest = store_value; }
+
+
+// Adding a lock prefix to an instruction on MP machine
+#define LOCK_IF_MP(mp) "cmp $0, " #mp "; je 1f; lock; 1: "
+
+inline jint     Atomic::add    (jint     add_value, volatile jint*     dest) {
+  jint addend = add_value;
+  int mp = os::is_MP();
+  __asm__ volatile (  LOCK_IF_MP(%3) "xaddl %0,(%2)"
+                    : "=r" (addend)
+                    : "0" (addend), "r" (dest), "r" (mp)
+                    : "cc", "memory");
+  return addend + add_value;
+}
+
+inline void Atomic::inc    (volatile jint*     dest) {
+  int mp = os::is_MP();
+  __asm__ volatile (LOCK_IF_MP(%1) "addl $1,(%0)" :
+                    : "r" (dest), "r" (mp) : "cc", "memory");
+}
+
+inline void Atomic::inc_ptr(volatile void*     dest) {
+  inc_ptr((volatile intptr_t*)dest);
+}
+
+inline void Atomic::dec    (volatile jint*     dest) {
+  int mp = os::is_MP();
+  __asm__ volatile (LOCK_IF_MP(%1) "subl $1,(%0)" :
+                    : "r" (dest), "r" (mp) : "cc", "memory");
+}
+
+inline void Atomic::dec_ptr(volatile void*     dest) {
+  dec_ptr((volatile intptr_t*)dest);
+}
+
+inline jint     Atomic::xchg    (jint     exchange_value, volatile jint*     dest) {
+  __asm__ volatile (  "xchgl (%2),%0"
+                    : "=r" (exchange_value)
+                    : "0" (exchange_value), "r" (dest)
+                    : "memory");
+  return exchange_value;
+}
+
+inline void*    Atomic::xchg_ptr(void*    exchange_value, volatile void*     dest) {
+  return (void*)xchg_ptr((intptr_t)exchange_value, (volatile intptr_t*)dest);
+}
+
+
+inline jint     Atomic::cmpxchg    (jint     exchange_value, volatile jint*     dest, jint     compare_value) {
+  int mp = os::is_MP();
+  __asm__ volatile (LOCK_IF_MP(%4) "cmpxchgl %1,(%3)"
+                    : "=a" (exchange_value)
+                    : "r" (exchange_value), "a" (compare_value), "r" (dest), "r" (mp)
+                    : "cc", "memory");
+  return exchange_value;
+}
+
+#ifdef AMD64
+inline void Atomic::store    (jlong    store_value, jlong*    dest) { *dest = store_value; }
+inline void Atomic::store    (jlong    store_value, volatile jlong*    dest) { *dest = store_value; }
+
+inline intptr_t Atomic::add_ptr(intptr_t add_value, volatile intptr_t* dest) {
+  intptr_t addend = add_value;
+  bool mp = os::is_MP();
+  __asm__ __volatile__ (LOCK_IF_MP(%3) "xaddq %0,(%2)"
+                        : "=r" (addend)
+                        : "0" (addend), "r" (dest), "r" (mp)
+                        : "cc", "memory");
+  return addend + add_value;
+}
+
+inline void*    Atomic::add_ptr(intptr_t add_value, volatile void*     dest) {
+  return (void*)add_ptr(add_value, (volatile intptr_t*)dest);
+}
+
+inline void Atomic::inc_ptr(volatile intptr_t* dest) {
+  bool mp = os::is_MP();
+  __asm__ __volatile__ (LOCK_IF_MP(%1) "addq $1,(%0)"
+                        :
+                        : "r" (dest), "r" (mp)
+                        : "cc", "memory");
+}
+
+inline void Atomic::dec_ptr(volatile intptr_t* dest) {
+  bool mp = os::is_MP();
+  __asm__ __volatile__ (LOCK_IF_MP(%1) "subq $1,(%0)"
+                        :
+                        : "r" (dest), "r" (mp)
+                        : "cc", "memory");
+}
+
+inline intptr_t Atomic::xchg_ptr(intptr_t exchange_value, volatile intptr_t* dest) {
+  __asm__ __volatile__ ("xchgq (%2),%0"
+                        : "=r" (exchange_value)
+                        : "0" (exchange_value), "r" (dest)
+                        : "memory");
+  return exchange_value;
+}
+
+inline jlong    Atomic::cmpxchg    (jlong    exchange_value, volatile jlong*    dest, jlong    compare_value) {
+  bool mp = os::is_MP();
+  __asm__ __volatile__ (LOCK_IF_MP(%4) "cmpxchgq %1,(%3)"
+                        : "=a" (exchange_value)
+                        : "r" (exchange_value), "a" (compare_value), "r" (dest), "r" (mp)
+                        : "cc", "memory");
+  return exchange_value;
+}
+
+inline intptr_t Atomic::cmpxchg_ptr(intptr_t exchange_value, volatile intptr_t* dest, intptr_t compare_value) {
+  return (intptr_t)cmpxchg((jlong)exchange_value, (volatile jlong*)dest, (jlong)compare_value);
+}
+
+inline void*    Atomic::cmpxchg_ptr(void*    exchange_value, volatile void*     dest, void*    compare_value) {
+  return (void*)cmpxchg((jlong)exchange_value, (volatile jlong*)dest, (jlong)compare_value);
+}
+
+inline jlong Atomic::load(volatile jlong* src) { return *src; }
+
+#else // !AMD64
+
+inline intptr_t Atomic::add_ptr(intptr_t add_value, volatile intptr_t* dest) {
+  return (intptr_t)Atomic::add((jint)add_value, (volatile jint*)dest);
+}
+
+inline void*    Atomic::add_ptr(intptr_t add_value, volatile void*     dest) {
+  return (void*)Atomic::add((jint)add_value, (volatile jint*)dest);
+}
+
+
+inline void Atomic::inc_ptr(volatile intptr_t* dest) {
+  inc((volatile jint*)dest);
+}
+
+inline void Atomic::dec_ptr(volatile intptr_t* dest) {
+  dec((volatile jint*)dest);
+}
+
+inline intptr_t Atomic::xchg_ptr(intptr_t exchange_value, volatile intptr_t* dest) {
+  return (intptr_t)xchg((jint)exchange_value, (volatile jint*)dest);
+}
+
+extern "C" {
+  // defined in bsd_x86.s
+  jlong _Atomic_cmpxchg_long(jlong, volatile jlong*, jlong, bool);
+  void _Atomic_move_long(volatile jlong* src, volatile jlong* dst);
+}
+
+inline jlong    Atomic::cmpxchg    (jlong    exchange_value, volatile jlong*    dest, jlong    compare_value) {
+  return _Atomic_cmpxchg_long(exchange_value, dest, compare_value, os::is_MP());
+}
+
+inline intptr_t Atomic::cmpxchg_ptr(intptr_t exchange_value, volatile intptr_t* dest, intptr_t compare_value) {
+  return (intptr_t)cmpxchg((jint)exchange_value, (volatile jint*)dest, (jint)compare_value);
+}
+
+inline void*    Atomic::cmpxchg_ptr(void*    exchange_value, volatile void*     dest, void*    compare_value) {
+  return (void*)cmpxchg((jint)exchange_value, (volatile jint*)dest, (jint)compare_value);
+}
+
+inline jlong Atomic::load(volatile jlong* src) {
+  volatile jlong dest;
+  _Atomic_move_long(src, &dest);
+  return dest;
+}
+
+inline void Atomic::store(jlong store_value, jlong* dest) {
+  _Atomic_move_long((volatile jlong*)&store_value, (volatile jlong*)dest);
+}
+
+inline void Atomic::store(jlong store_value, volatile jlong* dest) {
+  _Atomic_move_long((volatile jlong*)&store_value, dest);
+}
+
+#endif // AMD64
+
+#endif // OS_CPU_BSD_X86_VM_ATOMIC_BSD_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/bsd_x86_32.ad b/hotspot/src/os_cpu/bsd_x86/vm/bsd_x86_32.ad
new file mode 100644
index 0000000..192a78f
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/bsd_x86_32.ad
@@ -0,0 +1,160 @@
+//
+// Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+//
+// This code is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License version 2 only, as
+// published by the Free Software Foundation.
+//
+// This code is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// version 2 for more details (a copy is included in the LICENSE file that
+// accompanied this code).
+//
+// You should have received a copy of the GNU General Public License version
+// 2 along with this work; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+// or visit www.oracle.com if you need additional information or have any
+// questions.
+//
+//
+
+// X86 Bsd Architecture Description File
+
+//----------OS-DEPENDENT ENCODING BLOCK-----------------------------------------------------
+// This block specifies the encoding classes used by the compiler to output
+// byte streams.  Encoding classes generate functions which are called by
+// Machine Instruction Nodes in order to generate the bit encoding of the
+// instruction.  Operands specify their base encoding interface with the
+// interface keyword.  There are currently supported four interfaces,
+// REG_INTER, CONST_INTER, MEMORY_INTER, & COND_INTER.  REG_INTER causes an
+// operand to generate a function which returns its register number when
+// queried.   CONST_INTER causes an operand to generate a function which
+// returns the value of the constant when queried.  MEMORY_INTER causes an
+// operand to generate four functions which return the Base Register, the
+// Index Register, the Scale Value, and the Offset Value of the operand when
+// queried.  COND_INTER causes an operand to generate six functions which
+// return the encoding code (ie - encoding bits for the instruction)
+// associated with each basic boolean condition for a conditional instruction.
+// Instructions specify two basic values for encoding.  They use the
+// ins_encode keyword to specify their encoding class (which must be one of
+// the class names specified in the encoding block), and they use the
+// opcode keyword to specify, in order, their primary, secondary, and
+// tertiary opcode.  Only the opcode sections which a particular instruction
+// needs for encoding need to be specified.
+encode %{
+  // Build emit functions for each basic byte or larger field in the intel
+  // encoding scheme (opcode, rm, sib, immediate), and call them from C++
+  // code in the enc_class source block.  Emit functions will live in the
+  // main source block for now.  In future, we can generalize this by
+  // adding a syntax that specifies the sizes of fields in an order,
+  // so that the adlc can build the emit functions automagically
+
+  enc_class bsd_tlsencode (eRegP dst) %{
+    Register dstReg = as_Register($dst$$reg);
+    MacroAssembler* masm = new MacroAssembler(&cbuf);
+      masm->get_thread(dstReg);
+  %}
+
+  enc_class bsd_breakpoint  %{
+    MacroAssembler* masm = new MacroAssembler(&cbuf);
+    masm->call(RuntimeAddress(CAST_FROM_FN_PTR(address, os::breakpoint)));
+  %}
+
+  enc_class call_epilog %{
+    if( VerifyStackAtCalls ) {
+      // Check that stack depth is unchanged: find majik cookie on stack
+      int framesize = ra_->reg2offset_unchecked(OptoReg::add(ra_->_matcher._old_SP,-3*VMRegImpl::slots_per_word));
+      if(framesize >= 128) {
+        emit_opcode(cbuf, 0x81); // cmp [esp+0],0xbadb1ood
+        emit_d8(cbuf,0xBC);
+        emit_d8(cbuf,0x24);
+        emit_d32(cbuf,framesize); // Find majik cookie from ESP
+        emit_d32(cbuf, 0xbadb100d);
+      }
+      else {
+        emit_opcode(cbuf, 0x81); // cmp [esp+0],0xbadb1ood
+        emit_d8(cbuf,0x7C);
+        emit_d8(cbuf,0x24);
+        emit_d8(cbuf,framesize); // Find majik cookie from ESP
+        emit_d32(cbuf, 0xbadb100d);
+      }
+      // jmp EQ around INT3
+      // QQQ TODO
+      const int jump_around = 5; // size of call to breakpoint, 1 for CC
+      emit_opcode(cbuf,0x74);
+      emit_d8(cbuf, jump_around);
+      // QQQ temporary
+      emit_break(cbuf);
+      // Die if stack mismatch
+      // emit_opcode(cbuf,0xCC);
+    }
+  %}
+
+%}
+
+// INSTRUCTIONS -- Platform dependent
+
+//----------OS and Locking Instructions----------------------------------------
+
+// This name is KNOWN by the ADLC and cannot be changed.
+// The ADLC forces a 'TypeRawPtr::BOTTOM' output type
+// for this guy.
+instruct tlsLoadP(eRegP dst, eFlagsReg cr) %{
+  match(Set dst (ThreadLocal));
+  effect(DEF dst, KILL cr);
+
+  format %{ "MOV    $dst, Thread::current()" %}
+  ins_encode( bsd_tlsencode(dst) );
+  ins_pipe( ialu_reg_fat );
+%}
+
+instruct TLS(eRegP dst) %{
+  match(Set dst (ThreadLocal));
+
+  expand %{
+    tlsLoadP(dst);
+  %}
+%}
+
+// Die now
+instruct ShouldNotReachHere( )
+%{
+  match(Halt);
+
+  // Use the following format syntax
+  format %{ "INT3   ; ShouldNotReachHere" %}
+  // QQQ TODO for now call breakpoint
+  // opcode(0xCC);
+  // ins_encode(Opc);
+  ins_encode(bsd_breakpoint);
+  ins_pipe( pipe_slow );
+%}
+
+
+
+// Platform dependent source
+
+source %{
+
+// emit an interrupt that is caught by the debugger
+void emit_break(CodeBuffer &cbuf) {
+
+  // Debugger doesn't really catch this but best we can do so far QQQ
+  MacroAssembler* masm = new MacroAssembler(&cbuf);
+  masm->call(RuntimeAddress(CAST_FROM_FN_PTR(address, os::breakpoint)));
+}
+
+void MachBreakpointNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
+  emit_break(cbuf);
+}
+
+
+uint MachBreakpointNode::size(PhaseRegAlloc *ra_) const {
+  return 5;
+}
+
+%}
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/bsd_x86_32.s b/hotspot/src/os_cpu/bsd_x86/vm/bsd_x86_32.s
new file mode 100644
index 0000000..d35b4a6
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/bsd_x86_32.s
@@ -0,0 +1,689 @@
+# 
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+# 
+
+ 
+#ifdef __APPLE__
+# Darwin uses _ prefixed global symbols
+#define SYMBOL(s) _ ## s
+#define ELF_TYPE(name, description)
+#else
+#define SYMBOL(s) s
+#define ELF_TYPE(name, description) .type name,description
+#endif
+
+	.globl SYMBOL(fixcw)
+	
+        # NOTE WELL!  The _Copy functions are called directly
+	# from server-compiler-generated code via CallLeafNoFP,
+	# which means that they *must* either not use floating
+	# point or use it in the same manner as does the server
+	# compiler.
+	
+        .globl SYMBOL(_Copy_conjoint_bytes)
+        .globl SYMBOL(_Copy_arrayof_conjoint_bytes)
+        .globl SYMBOL(_Copy_conjoint_jshorts_atomic)
+	.globl SYMBOL(_Copy_arrayof_conjoint_jshorts)
+        .globl SYMBOL(_Copy_conjoint_jints_atomic)
+        .globl SYMBOL(_Copy_arrayof_conjoint_jints)
+	.globl SYMBOL(_Copy_conjoint_jlongs_atomic)
+	.globl SYMBOL(_mmx_Copy_arrayof_conjoint_jshorts)
+
+        .globl SYMBOL(_Atomic_cmpxchg_long)
+        .globl SYMBOL(_Atomic_move_long)
+
+	.text
+
+# Support for void os::Solaris::init_thread_fpu_state() in os_solaris_i486.cpp
+# Set fpu to 53 bit precision.  This happens too early to use a stub.
+# ported from solaris_x86_32.s
+        .p2align 4,,15
+SYMBOL(fixcw):
+	pushl    $0x27f
+	fldcw    0(%esp)
+	popl     %eax
+	ret
+
+        .globl  SYMBOL(SafeFetch32), SYMBOL(Fetch32PFI), SYMBOL(Fetch32Resume)
+        .globl  SYMBOL(SafeFetchN)
+        ## TODO: avoid exposing Fetch32PFI and Fetch32Resume.
+        ## Instead, the signal handler would call a new SafeFetchTriage(FaultingEIP)
+        ## routine to vet the address.  If the address is the faulting LD then
+        ## SafeFetchTriage() would return the resume-at EIP, otherwise null.
+	ELF_TYPE(SafeFetch32, at function)
+        .p2align 4,,15
+SYMBOL(SafeFetch32):
+SYMBOL(SafeFetchN):
+         movl    0x8(%esp), %eax
+         movl    0x4(%esp), %ecx
+SYMBOL(Fetch32PFI):
+         movl    (%ecx), %eax
+SYMBOL(Fetch32Resume):
+         ret
+
+
+        .globl  SYMBOL(SpinPause)
+	ELF_TYPE(SpinPause, at function)
+        .p2align 4,,15
+SYMBOL(SpinPause):
+        rep
+        nop
+        movl    $1, %eax
+        ret
+
+        # Support for void Copy::conjoint_bytes(void* from,
+        #                                       void* to,
+        #                                       size_t count)
+        .p2align 4,,15
+	ELF_TYPE(_Copy_conjoint_bytes, at function)
+SYMBOL(_Copy_conjoint_bytes):
+        pushl    %esi
+        movl     4+12(%esp),%ecx      # count
+        pushl    %edi
+        movl     8+ 4(%esp),%esi      # from
+        movl     8+ 8(%esp),%edi      # to
+        cmpl     %esi,%edi
+        leal     -1(%esi,%ecx),%eax   # from + count - 1
+        jbe      cb_CopyRight
+        cmpl     %eax,%edi
+        jbe      cb_CopyLeft
+        # copy from low to high
+cb_CopyRight:
+        cmpl     $3,%ecx
+        jbe      5f                   # <= 3 bytes
+        # align source address at dword address boundary
+        movl     %ecx,%eax            # original count
+        movl     $4,%ecx
+        subl     %esi,%ecx
+        andl     $3,%ecx              # prefix byte count
+        jz       1f                   # no prefix
+        subl     %ecx,%eax            # byte count less prefix
+        # copy prefix
+        subl     %esi,%edi
+0:      movb     (%esi),%dl
+        movb     %dl,(%edi,%esi,1)
+        addl     $1,%esi
+        subl     $1,%ecx
+        jnz      0b
+        addl     %esi,%edi
+1:      movl     %eax,%ecx            # byte count less prefix
+        shrl     $2,%ecx              # dword count
+        jz       4f                   # no dwords to move
+        cmpl     $32,%ecx
+        jbe      2f                   # <= 32 dwords
+        # copy aligned dwords
+        rep;     smovl
+        jmp      4f
+        # copy aligned dwords
+2:      subl     %esi,%edi
+        .p2align 4,,15
+3:      movl     (%esi),%edx
+        movl     %edx,(%edi,%esi,1)
+        addl     $4,%esi
+        subl     $1,%ecx
+        jnz      3b
+        addl     %esi,%edi
+4:      movl     %eax,%ecx            # byte count less prefix
+5:      andl     $3,%ecx              # suffix byte count
+        jz       7f                   # no suffix
+        # copy suffix
+        xorl     %eax,%eax
+6:      movb     (%esi,%eax,1),%dl
+        movb     %dl,(%edi,%eax,1)
+        addl     $1,%eax
+        subl     $1,%ecx
+        jnz      6b
+7:      popl     %edi
+        popl     %esi
+        ret
+        # copy from high to low
+cb_CopyLeft:
+        std
+        leal     -4(%edi,%ecx),%edi   # to + count - 4
+        movl     %eax,%esi            # from + count - 1
+        movl     %ecx,%eax
+        subl     $3,%esi              # from + count - 4
+        cmpl     $3,%ecx
+        jbe      5f                   # <= 3 bytes
+1:      shrl     $2,%ecx              # dword count
+        jz       4f                   # no dwords to move
+        cmpl     $32,%ecx
+        ja       3f                   # > 32 dwords
+        # copy dwords, aligned or not
+        subl     %esi,%edi
+        .p2align 4,,15
+2:      movl     (%esi),%edx
+        movl     %edx,(%edi,%esi,1)
+        subl     $4,%esi
+        subl     $1,%ecx
+        jnz      2b
+        addl     %esi,%edi
+        jmp      4f
+        # copy dwords, aligned or not
+3:      rep;     smovl
+4:      movl     %eax,%ecx            # byte count
+5:      andl     $3,%ecx              # suffix byte count
+        jz       7f                   # no suffix
+        # copy suffix
+        subl     %esi,%edi
+        addl     $3,%esi
+6:      movb     (%esi),%dl
+        movb     %dl,(%edi,%esi,1)
+	subl     $1,%esi
+        subl     $1,%ecx
+        jnz      6b
+7:      cld
+        popl     %edi
+        popl     %esi
+        ret
+
+        # Support for void Copy::arrayof_conjoint_bytes(void* from,
+        #                                               void* to,
+        #                                               size_t count)
+        #
+        # Same as _Copy_conjoint_bytes, except no source alignment check.
+        .p2align 4,,15
+	ELF_TYPE(_Copy_arrayof_conjoint_bytes, at function)
+SYMBOL(_Copy_arrayof_conjoint_bytes):
+        pushl    %esi
+        movl     4+12(%esp),%ecx      # count
+        pushl    %edi
+        movl     8+ 4(%esp),%esi      # from
+        movl     8+ 8(%esp),%edi      # to
+        cmpl     %esi,%edi
+        leal     -1(%esi,%ecx),%eax   # from + count - 1
+        jbe      acb_CopyRight
+        cmpl     %eax,%edi
+        jbe      acb_CopyLeft 
+        # copy from low to high
+acb_CopyRight:
+        cmpl     $3,%ecx
+        jbe      5f
+1:      movl     %ecx,%eax
+        shrl     $2,%ecx
+        jz       4f
+        cmpl     $32,%ecx
+        ja       3f
+        # copy aligned dwords
+        subl     %esi,%edi
+        .p2align 4,,15
+2:      movl     (%esi),%edx
+        movl     %edx,(%edi,%esi,1)
+        addl     $4,%esi
+        subl     $1,%ecx
+        jnz      2b
+        addl     %esi,%edi
+        jmp      4f
+        # copy aligned dwords
+3:      rep;     smovl
+4:      movl     %eax,%ecx
+5:      andl     $3,%ecx
+        jz       7f
+        # copy suffix
+        xorl     %eax,%eax
+6:      movb     (%esi,%eax,1),%dl
+        movb     %dl,(%edi,%eax,1)
+        addl     $1,%eax
+        subl     $1,%ecx
+        jnz      6b
+7:      popl     %edi
+        popl     %esi
+        ret
+acb_CopyLeft:
+        std
+        leal     -4(%edi,%ecx),%edi   # to + count - 4
+        movl     %eax,%esi            # from + count - 1
+        movl     %ecx,%eax
+        subl     $3,%esi              # from + count - 4
+        cmpl     $3,%ecx
+        jbe      5f
+1:      shrl     $2,%ecx
+        jz       4f
+        cmpl     $32,%ecx
+        jbe      2f                   # <= 32 dwords
+        rep;     smovl
+        jmp      4f
+	.=.+8
+2:      subl     %esi,%edi
+        .p2align 4,,15
+3:      movl     (%esi),%edx
+        movl     %edx,(%edi,%esi,1)
+        subl     $4,%esi
+        subl     $1,%ecx
+        jnz      3b
+        addl     %esi,%edi
+4:      movl     %eax,%ecx
+5:      andl     $3,%ecx
+        jz       7f
+        subl     %esi,%edi
+        addl     $3,%esi
+6:      movb     (%esi),%dl
+        movb     %dl,(%edi,%esi,1)
+	subl     $1,%esi
+        subl     $1,%ecx
+        jnz      6b
+7:      cld
+        popl     %edi
+        popl     %esi
+        ret
+
+        # Support for void Copy::conjoint_jshorts_atomic(void* from,
+        #                                                void* to,
+        #                                                size_t count)
+        .p2align 4,,15
+	ELF_TYPE(_Copy_conjoint_jshorts_atomic, at function)
+SYMBOL(_Copy_conjoint_jshorts_atomic):
+        pushl    %esi
+        movl     4+12(%esp),%ecx      # count
+        pushl    %edi
+        movl     8+ 4(%esp),%esi      # from
+        movl     8+ 8(%esp),%edi      # to
+        cmpl     %esi,%edi
+        leal     -2(%esi,%ecx,2),%eax # from + count*2 - 2
+        jbe      cs_CopyRight
+        cmpl     %eax,%edi
+        jbe      cs_CopyLeft 
+        # copy from low to high
+cs_CopyRight:
+        # align source address at dword address boundary
+        movl     %esi,%eax            # original from
+        andl     $3,%eax              # either 0 or 2
+        jz       1f                   # no prefix
+        # copy prefix
+        subl     $1,%ecx
+        jl       5f                   # zero count
+        movw     (%esi),%dx
+        movw     %dx,(%edi)
+        addl     %eax,%esi            # %eax == 2
+        addl     %eax,%edi
+1:      movl     %ecx,%eax            # word count less prefix
+        sarl     %ecx                 # dword count
+        jz       4f                   # no dwords to move
+        cmpl     $32,%ecx
+        jbe      2f                   # <= 32 dwords
+        # copy aligned dwords
+        rep;     smovl
+        jmp      4f 
+        # copy aligned dwords
+2:      subl     %esi,%edi
+        .p2align 4,,15
+3:      movl     (%esi),%edx
+        movl     %edx,(%edi,%esi,1)
+        addl     $4,%esi
+        subl     $1,%ecx
+        jnz      3b
+        addl     %esi,%edi
+4:      andl     $1,%eax              # suffix count
+        jz       5f                   # no suffix
+        # copy suffix
+        movw     (%esi),%dx
+        movw     %dx,(%edi)
+5:      popl     %edi
+        popl     %esi
+        ret
+        # copy from high to low
+cs_CopyLeft:
+        std
+        leal     -4(%edi,%ecx,2),%edi # to + count*2 - 4
+        movl     %eax,%esi            # from + count*2 - 2
+        movl     %ecx,%eax
+        subl     $2,%esi              # from + count*2 - 4
+1:      sarl     %ecx                 # dword count
+        jz       4f                   # no dwords to move
+        cmpl     $32,%ecx
+        ja       3f                   # > 32 dwords
+        subl     %esi,%edi
+        .p2align 4,,15
+2:      movl     (%esi),%edx
+        movl     %edx,(%edi,%esi,1)
+        subl     $4,%esi
+        subl     $1,%ecx
+        jnz      2b
+        addl     %esi,%edi
+        jmp      4f
+3:      rep;     smovl
+4:      andl     $1,%eax              # suffix count
+        jz       5f                   # no suffix
+        # copy suffix
+        addl     $2,%esi
+        addl     $2,%edi
+        movw     (%esi),%dx
+        movw     %dx,(%edi)
+5:      cld
+        popl     %edi
+        popl     %esi
+        ret
+
+        # Support for void Copy::arrayof_conjoint_jshorts(void* from,
+        #                                                 void* to,
+        #                                                 size_t count)
+        .p2align 4,,15
+	ELF_TYPE(_Copy_arrayof_conjoint_jshorts, at function)
+SYMBOL(_Copy_arrayof_conjoint_jshorts):
+        pushl    %esi
+        movl     4+12(%esp),%ecx      # count
+        pushl    %edi
+        movl     8+ 4(%esp),%esi      # from
+        movl     8+ 8(%esp),%edi      # to
+        cmpl     %esi,%edi
+        leal     -2(%esi,%ecx,2),%eax # from + count*2 - 2
+        jbe      acs_CopyRight
+        cmpl     %eax,%edi
+        jbe      acs_CopyLeft 
+acs_CopyRight:
+        movl     %ecx,%eax            # word count
+        sarl     %ecx                 # dword count
+        jz       4f                   # no dwords to move
+        cmpl     $32,%ecx
+        jbe      2f                   # <= 32 dwords
+        # copy aligned dwords
+        rep;     smovl
+        jmp      4f 
+        # copy aligned dwords
+        .=.+5
+2:      subl     %esi,%edi 
+        .p2align 4,,15
+3:      movl     (%esi),%edx
+        movl     %edx,(%edi,%esi,1)
+        addl     $4,%esi
+        subl     $1,%ecx
+        jnz      3b
+        addl     %esi,%edi
+4:      andl     $1,%eax              # suffix count
+        jz       5f                   # no suffix
+        # copy suffix
+        movw     (%esi),%dx
+        movw     %dx,(%edi)
+5:      popl     %edi
+        popl     %esi
+        ret
+acs_CopyLeft:
+        std
+        leal     -4(%edi,%ecx,2),%edi # to + count*2 - 4
+        movl     %eax,%esi            # from + count*2 - 2
+        movl     %ecx,%eax
+        subl     $2,%esi              # from + count*2 - 4
+        sarl     %ecx                 # dword count
+        jz       4f                   # no dwords to move
+        cmpl     $32,%ecx
+        ja       3f                   # > 32 dwords
+        subl     %esi,%edi
+        .p2align 4,,15
+2:      movl     (%esi),%edx
+        movl     %edx,(%edi,%esi,1)
+        subl     $4,%esi
+        subl     $1,%ecx
+        jnz      2b
+        addl     %esi,%edi
+        jmp      4f
+3:      rep;     smovl
+4:      andl     $1,%eax              # suffix count
+        jz       5f                   # no suffix
+        # copy suffix
+        addl     $2,%esi
+        addl     $2,%edi
+        movw     (%esi),%dx
+        movw     %dx,(%edi)
+5:      cld
+        popl     %edi
+        popl     %esi
+        ret
+
+        # Support for void Copy::conjoint_jints_atomic(void* from,
+        #                                              void* to,
+        #                                              size_t count)
+        # Equivalent to
+        #   arrayof_conjoint_jints
+        .p2align 4,,15
+	ELF_TYPE(_Copy_conjoint_jints_atomic, at function)
+	ELF_TYPE(_Copy_arrayof_conjoint_jints, at function)
+SYMBOL(_Copy_conjoint_jints_atomic):
+SYMBOL(_Copy_arrayof_conjoint_jints):
+        pushl    %esi
+        movl     4+12(%esp),%ecx      # count
+        pushl    %edi
+        movl     8+ 4(%esp),%esi      # from
+        movl     8+ 8(%esp),%edi      # to
+        cmpl     %esi,%edi
+        leal     -4(%esi,%ecx,4),%eax # from + count*4 - 4
+        jbe      ci_CopyRight
+        cmpl     %eax,%edi
+        jbe      ci_CopyLeft 
+ci_CopyRight:
+        cmpl     $32,%ecx
+        jbe      2f                   # <= 32 dwords
+        rep;     smovl
+        popl     %edi
+        popl     %esi
+        ret
+        .=.+10
+2:      subl     %esi,%edi
+        jmp      4f
+        .p2align 4,,15
+3:      movl     (%esi),%edx
+        movl     %edx,(%edi,%esi,1)
+        addl     $4,%esi
+4:      subl     $1,%ecx
+        jge      3b
+        popl     %edi
+        popl     %esi
+        ret
+ci_CopyLeft:
+        std
+        leal     -4(%edi,%ecx,4),%edi # to + count*4 - 4
+        cmpl     $32,%ecx
+        ja       4f                   # > 32 dwords
+        subl     %eax,%edi            # eax == from + count*4 - 4
+        jmp      3f
+        .p2align 4,,15
+2:      movl     (%eax),%edx
+        movl     %edx,(%edi,%eax,1)
+        subl     $4,%eax
+3:      subl     $1,%ecx
+        jge      2b
+        cld
+        popl     %edi
+        popl     %esi
+        ret
+4:      movl     %eax,%esi            # from + count*4 - 4
+        rep;     smovl
+        cld
+        popl     %edi
+        popl     %esi
+        ret
+	
+        # Support for void Copy::conjoint_jlongs_atomic(jlong* from,
+        #                                               jlong* to,
+        #                                               size_t count)
+        #
+        # 32-bit
+        #
+        # count treated as signed
+        #
+        # // if (from > to) {
+        #   while (--count >= 0) {
+        #     *to++ = *from++;
+        #   }
+        # } else {
+        #   while (--count >= 0) {
+        #     to[count] = from[count];
+        #   }
+        # }
+        .p2align 4,,15
+	ELF_TYPE(_Copy_conjoint_jlongs_atomic, at function)
+SYMBOL(_Copy_conjoint_jlongs_atomic):
+        movl     4+8(%esp),%ecx       # count
+        movl     4+0(%esp),%eax       # from
+        movl     4+4(%esp),%edx       # to
+        cmpl     %eax,%edx
+        jae      cla_CopyLeft
+cla_CopyRight:
+        subl     %eax,%edx
+        jmp      2f
+        .p2align 4,,15
+1:      fildll   (%eax)
+        fistpll  (%edx,%eax,1)
+        addl     $8,%eax
+2:      subl     $1,%ecx
+        jge      1b
+        ret
+        .p2align 4,,15
+3:      fildll   (%eax,%ecx,8)
+        fistpll  (%edx,%ecx,8)
+cla_CopyLeft:
+        subl     $1,%ecx
+        jge      3b
+        ret
+
+        # Support for void Copy::arrayof_conjoint_jshorts(void* from,
+        #                                                 void* to,
+        #                                                 size_t count)
+        .p2align 4,,15
+	ELF_TYPE(_mmx_Copy_arrayof_conjoint_jshorts, at function)
+SYMBOL(_mmx_Copy_arrayof_conjoint_jshorts):
+        pushl    %esi
+        movl     4+12(%esp),%ecx
+        pushl    %edi
+        movl     8+ 4(%esp),%esi
+        movl     8+ 8(%esp),%edi
+        cmpl     %esi,%edi
+        leal     -2(%esi,%ecx,2),%eax
+        jbe      mmx_acs_CopyRight
+        cmpl     %eax,%edi
+        jbe      mmx_acs_CopyLeft
+mmx_acs_CopyRight:
+        movl     %ecx,%eax
+        sarl     %ecx
+        je       5f
+        cmpl     $33,%ecx
+        jae      3f
+1:      subl     %esi,%edi 
+        .p2align 4,,15
+2:      movl     (%esi),%edx
+        movl     %edx,(%edi,%esi,1)
+        addl     $4,%esi
+        subl     $1,%ecx
+        jnz      2b
+        addl     %esi,%edi
+        jmp      5f 
+3:      smovl # align to 8 bytes, we know we are 4 byte aligned to start
+        subl     $1,%ecx
+4:      .p2align 4,,15
+        movq     0(%esi),%mm0
+        addl     $64,%edi
+        movq     8(%esi),%mm1
+        subl     $16,%ecx
+        movq     16(%esi),%mm2
+        movq     %mm0,-64(%edi)
+        movq     24(%esi),%mm0
+        movq     %mm1,-56(%edi)
+        movq     32(%esi),%mm1
+        movq     %mm2,-48(%edi)
+        movq     40(%esi),%mm2
+        movq     %mm0,-40(%edi)
+        movq     48(%esi),%mm0
+        movq     %mm1,-32(%edi)
+        movq     56(%esi),%mm1
+        movq     %mm2,-24(%edi)
+        movq     %mm0,-16(%edi)
+        addl     $64,%esi
+        movq     %mm1,-8(%edi)
+        cmpl     $16,%ecx
+        jge      4b
+        emms
+	testl    %ecx,%ecx
+	ja       1b
+5:      andl     $1,%eax
+        je       7f
+6:      movw     (%esi),%dx
+        movw     %dx,(%edi)
+7:	popl     %edi
+        popl     %esi
+        ret
+mmx_acs_CopyLeft:
+        std
+        leal     -4(%edi,%ecx,2),%edi
+        movl     %eax,%esi
+        movl     %ecx,%eax
+        subl     $2,%esi
+        sarl     %ecx
+        je       4f
+        cmpl     $32,%ecx
+        ja       3f
+        subl     %esi,%edi
+        .p2align 4,,15
+2:      movl     (%esi),%edx
+        movl     %edx,(%edi,%esi,1)
+        subl     $4,%esi
+        subl     $1,%ecx
+        jnz      2b
+        addl     %esi,%edi
+        jmp      4f
+3:      rep;     smovl
+4:      andl     $1,%eax
+        je       6f
+        addl     $2,%esi
+        addl     $2,%edi
+5:      movw     (%esi),%dx
+        movw     %dx,(%edi)
+6:      cld
+        popl     %edi
+        popl     %esi
+        ret
+
+
+        # Support for jlong Atomic::cmpxchg(jlong exchange_value,
+        #                                   volatile jlong* dest,
+        #                                   jlong compare_value,
+        #                                   bool is_MP)
+        #
+        .p2align 4,,15
+	ELF_TYPE(_Atomic_cmpxchg_long, at function)
+SYMBOL(_Atomic_cmpxchg_long):
+                                   #  8(%esp) : return PC
+        pushl    %ebx              #  4(%esp) : old %ebx
+        pushl    %edi              #  0(%esp) : old %edi
+        movl     12(%esp), %ebx    # 12(%esp) : exchange_value (low)
+        movl     16(%esp), %ecx    # 16(%esp) : exchange_value (high)
+        movl     24(%esp), %eax    # 24(%esp) : compare_value (low)
+        movl     28(%esp), %edx    # 28(%esp) : compare_value (high)
+        movl     20(%esp), %edi    # 20(%esp) : dest
+        cmpl     $0, 32(%esp)      # 32(%esp) : is_MP
+        je       1f
+        lock
+1:      cmpxchg8b (%edi)
+        popl     %edi
+        popl     %ebx
+        ret
+
+
+        # Support for jlong Atomic::load and Atomic::store.
+        # void _Atomic_move_long(volatile jlong* src, volatile jlong* dst)
+        .p2align 4,,15
+	ELF_TYPE(_Atomic_move_long, at function)
+SYMBOL(_Atomic_move_long):
+        movl     4(%esp), %eax   # src
+        fildll    (%eax)
+        movl     8(%esp), %eax   # dest
+        fistpll   (%eax)
+        ret
+
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/bsd_x86_64.ad b/hotspot/src/os_cpu/bsd_x86/vm/bsd_x86_64.ad
new file mode 100644
index 0000000..233a1fe
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/bsd_x86_64.ad
@@ -0,0 +1,173 @@
+//
+// Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+//
+// This code is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License version 2 only, as
+// published by the Free Software Foundation.
+//
+// This code is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// version 2 for more details (a copy is included in the LICENSE file that
+// accompanied this code).
+//
+// You should have received a copy of the GNU General Public License version
+// 2 along with this work; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+// or visit www.oracle.com if you need additional information or have any
+// questions.
+//
+//
+
+// AMD64 Bsd Architecture Description File
+
+//----------OS-DEPENDENT ENCODING BLOCK----------------------------------------
+// This block specifies the encoding classes used by the compiler to
+// output byte streams.  Encoding classes generate functions which are
+// called by Machine Instruction Nodes in order to generate the bit
+// encoding of the instruction.  Operands specify their base encoding
+// interface with the interface keyword.  There are currently
+// supported four interfaces, REG_INTER, CONST_INTER, MEMORY_INTER, &
+// COND_INTER.  REG_INTER causes an operand to generate a function
+// which returns its register number when queried.  CONST_INTER causes
+// an operand to generate a function which returns the value of the
+// constant when queried.  MEMORY_INTER causes an operand to generate
+// four functions which return the Base Register, the Index Register,
+// the Scale Value, and the Offset Value of the operand when queried.
+// COND_INTER causes an operand to generate six functions which return
+// the encoding code (ie - encoding bits for the instruction)
+// associated with each basic boolean condition for a conditional
+// instruction.  Instructions specify two basic values for encoding.
+// They use the ins_encode keyword to specify their encoding class
+// (which must be one of the class names specified in the encoding
+// block), and they use the opcode keyword to specify, in order, their
+// primary, secondary, and tertiary opcode.  Only the opcode sections
+// which a particular instruction needs for encoding need to be
+// specified.
+encode %{
+  // Build emit functions for each basic byte or larger field in the intel
+  // encoding scheme (opcode, rm, sib, immediate), and call them from C++
+  // code in the enc_class source block.  Emit functions will live in the
+  // main source block for now.  In future, we can generalize this by
+  // adding a syntax that specifies the sizes of fields in an order,
+  // so that the adlc can build the emit functions automagically
+
+  enc_class Java_To_Runtime(method meth)
+  %{
+    // No relocation needed
+
+    // movq r10, <meth>
+    emit_opcode(cbuf, Assembler::REX_WB);
+    emit_opcode(cbuf, 0xB8 | (R10_enc - 8));
+    emit_d64(cbuf, (int64_t) $meth$$method);
+
+    // call (r10)
+    emit_opcode(cbuf, Assembler::REX_B);
+    emit_opcode(cbuf, 0xFF);
+    emit_opcode(cbuf, 0xD0 | (R10_enc - 8));
+  %}
+
+  enc_class bsd_breakpoint
+  %{
+    MacroAssembler* masm = new MacroAssembler(&cbuf);
+    masm->call(RuntimeAddress(CAST_FROM_FN_PTR(address, os::breakpoint)));
+  %}
+
+  enc_class call_epilog
+  %{
+    if (VerifyStackAtCalls) {
+      // Check that stack depth is unchanged: find majik cookie on stack
+      int framesize =
+        ra_->reg2offset_unchecked(OptoReg::add(ra_->_matcher._old_SP, -3*VMRegImpl::slots_per_word));
+      if (framesize) {
+        if (framesize < 0x80) {
+          emit_opcode(cbuf, Assembler::REX_W);
+          emit_opcode(cbuf, 0x81); // cmpq [rsp+0],0xbadb1ood
+          emit_d8(cbuf, 0x7C);
+          emit_d8(cbuf, 0x24);
+          emit_d8(cbuf, framesize); // Find majik cookie from ESP
+          emit_d32(cbuf, 0xbadb100d);
+        } else {
+          emit_opcode(cbuf, Assembler::REX_W);
+          emit_opcode(cbuf, 0x81); // cmpq [rsp+0],0xbadb1ood
+          emit_d8(cbuf, 0xBC);
+          emit_d8(cbuf, 0x24);
+          emit_d32(cbuf, framesize); // Find majik cookie from ESP
+          emit_d32(cbuf, 0xbadb100d);
+        }
+      }
+      // jmp EQ around INT3
+      // QQQ TODO
+      const int jump_around = 5; // size of call to breakpoint, 1 for CC
+      emit_opcode(cbuf, 0x74);
+      emit_d8(cbuf, jump_around);
+      // QQQ temporary
+      emit_break(cbuf);
+      // Die if stack mismatch
+      // emit_opcode(cbuf,0xCC);
+    }
+  %}
+
+%}
+
+// INSTRUCTIONS -- Platform dependent
+
+//----------OS and Locking Instructions----------------------------------------
+
+// This name is KNOWN by the ADLC and cannot be changed.
+// The ADLC forces a 'TypeRawPtr::BOTTOM' output type
+// for this guy.
+instruct tlsLoadP(r15_RegP dst)
+%{
+  match(Set dst (ThreadLocal));
+  effect(DEF dst);
+
+  size(0);
+  format %{ "# TLS is in R15" %}
+  ins_encode( /*empty encoding*/ );
+  ins_pipe(ialu_reg_reg);
+%}
+
+// Die now
+instruct ShouldNotReachHere()
+%{
+  match(Halt);
+
+  // Use the following format syntax
+  format %{ "int3\t# ShouldNotReachHere" %}
+  // QQQ TODO for now call breakpoint
+  // opcode(0xCC);
+  // ins_encode(Opc);
+  ins_encode(bsd_breakpoint);
+  ins_pipe(pipe_slow);
+%}
+
+
+// Platform dependent source
+
+source
+%{
+
+int MachCallRuntimeNode::ret_addr_offset() {
+  return 13; // movq r10,#addr; callq (r10)
+}
+
+// emit an interrupt that is caught by the debugger
+void emit_break(CodeBuffer& cbuf) {
+  // Debugger doesn't really catch this but best we can do so far QQQ
+  MacroAssembler* masm = new MacroAssembler(&cbuf);
+  masm->call(RuntimeAddress(CAST_FROM_FN_PTR(address, os::breakpoint)));
+}
+
+void MachBreakpointNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const {
+  emit_break(cbuf);
+}
+
+uint MachBreakpointNode::size(PhaseRegAlloc* ra_) const {
+  return 5;
+}
+
+%}
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/bsd_x86_64.s b/hotspot/src/os_cpu/bsd_x86/vm/bsd_x86_64.s
new file mode 100644
index 0000000..65d2db4
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/bsd_x86_64.s
@@ -0,0 +1,410 @@
+# 
+# Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+#ifdef __APPLE__
+# Darwin uses _ prefixed global symbols
+#define SYMBOL(s) _ ## s
+#define ELF_TYPE(name, description)
+#else
+#define SYMBOL(s) s
+#define ELF_TYPE(name, description) .type name,description
+#endif
+
+        # NOTE WELL!  The _Copy functions are called directly
+	# from server-compiler-generated code via CallLeafNoFP,
+	# which means that they *must* either not use floating
+	# point or use it in the same manner as does the server
+	# compiler.
+	
+        .globl SYMBOL(_Copy_arrayof_conjoint_bytes)
+	.globl SYMBOL(_Copy_arrayof_conjoint_jshorts)
+        .globl SYMBOL(_Copy_conjoint_jshorts_atomic)
+        .globl SYMBOL(_Copy_arrayof_conjoint_jints)
+        .globl SYMBOL(_Copy_conjoint_jints_atomic)
+        .globl SYMBOL(_Copy_arrayof_conjoint_jlongs)
+        .globl SYMBOL(_Copy_conjoint_jlongs_atomic)
+
+	.text
+
+        .globl SYMBOL(SafeFetch32), SYMBOL(Fetch32PFI), SYMBOL(Fetch32Resume)
+        .p2align 4,,15
+        ELF_TYPE(SafeFetch32, at function)
+        // Prototype: int SafeFetch32 (int * Adr, int ErrValue) 
+SYMBOL(SafeFetch32):
+        movl    %esi, %eax
+SYMBOL(Fetch32PFI):
+        movl    (%rdi), %eax
+SYMBOL(Fetch32Resume):
+        ret
+
+        .globl SYMBOL(SafeFetchN), SYMBOL(FetchNPFI), SYMBOL(FetchNResume)
+        .p2align 4,,15
+        ELF_TYPE(SafeFetchN, at function)
+        // Prototype: intptr_t SafeFetchN (intptr_t * Adr, intptr_t ErrValue) 
+SYMBOL(SafeFetchN):
+        movq    %rsi, %rax
+SYMBOL(FetchNPFI):
+        movq    (%rdi), %rax
+SYMBOL(FetchNResume):
+        ret
+
+        .globl SYMBOL(SpinPause)
+        .p2align 4,,15
+        ELF_TYPE(SpinPause, at function)
+SYMBOL(SpinPause):
+        rep
+        nop
+        movq   $1, %rax
+        ret
+
+        # Support for void Copy::arrayof_conjoint_bytes(void* from,
+        #                                               void* to,
+        #                                               size_t count)
+        # rdi - from
+        # rsi - to
+        # rdx - count, treated as ssize_t
+        #
+        .p2align 4,,15
+	ELF_TYPE(_Copy_arrayof_conjoint_bytes, at function)
+SYMBOL(_Copy_arrayof_conjoint_bytes):
+        movq     %rdx,%r8             # byte count
+        shrq     $3,%rdx              # qword count
+        cmpq     %rdi,%rsi
+        leaq     -1(%rdi,%r8,1),%rax  # from + bcount*1 - 1
+        jbe      acb_CopyRight
+        cmpq     %rax,%rsi
+        jbe      acb_CopyLeft 
+acb_CopyRight:
+        leaq     -8(%rdi,%rdx,8),%rax # from + qcount*8 - 8
+        leaq     -8(%rsi,%rdx,8),%rcx # to + qcount*8 - 8
+        negq     %rdx
+        jmp      7f
+        .p2align 4,,15
+1:      movq     8(%rax,%rdx,8),%rsi
+        movq     %rsi,8(%rcx,%rdx,8)
+        addq     $1,%rdx
+        jnz      1b
+2:      testq    $4,%r8               # check for trailing dword
+        jz       3f
+        movl     8(%rax),%esi         # copy trailing dword
+        movl     %esi,8(%rcx)
+        addq     $4,%rax
+        addq     $4,%rcx              # original %rsi is trashed, so we
+                                      #  can't use it as a base register
+3:      testq    $2,%r8               # check for trailing word
+        jz       4f
+        movw     8(%rax),%si          # copy trailing word
+        movw     %si,8(%rcx)
+        addq     $2,%rcx
+4:      testq    $1,%r8               # check for trailing byte
+        jz       5f
+        movb     -1(%rdi,%r8,1),%al   # copy trailing byte
+        movb     %al,8(%rcx)
+5:      ret
+        .p2align 4,,15
+6:      movq     -24(%rax,%rdx,8),%rsi
+        movq     %rsi,-24(%rcx,%rdx,8)
+        movq     -16(%rax,%rdx,8),%rsi
+        movq     %rsi,-16(%rcx,%rdx,8)
+        movq     -8(%rax,%rdx,8),%rsi
+        movq     %rsi,-8(%rcx,%rdx,8)
+        movq     (%rax,%rdx,8),%rsi
+        movq     %rsi,(%rcx,%rdx,8)
+7:      addq     $4,%rdx
+        jle      6b
+        subq     $4,%rdx
+        jl       1b
+        jmp      2b
+acb_CopyLeft:
+        testq    $1,%r8               # check for trailing byte
+        jz       1f
+        movb     -1(%rdi,%r8,1),%cl   # copy trailing byte
+        movb     %cl,-1(%rsi,%r8,1)
+        subq     $1,%r8               # adjust for possible trailing word
+1:      testq    $2,%r8               # check for trailing word
+        jz       2f
+        movw     -2(%rdi,%r8,1),%cx   # copy trailing word
+        movw     %cx,-2(%rsi,%r8,1)
+2:      testq    $4,%r8               # check for trailing dword
+        jz       5f
+        movl     (%rdi,%rdx,8),%ecx   # copy trailing dword
+        movl     %ecx,(%rsi,%rdx,8)
+        jmp      5f
+        .p2align 4,,15
+3:      movq     -8(%rdi,%rdx,8),%rcx
+        movq     %rcx,-8(%rsi,%rdx,8)
+        subq     $1,%rdx
+        jnz      3b
+        ret
+        .p2align 4,,15
+4:      movq     24(%rdi,%rdx,8),%rcx
+        movq     %rcx,24(%rsi,%rdx,8)
+        movq     16(%rdi,%rdx,8),%rcx
+        movq     %rcx,16(%rsi,%rdx,8)
+        movq     8(%rdi,%rdx,8),%rcx
+        movq     %rcx,8(%rsi,%rdx,8)
+        movq     (%rdi,%rdx,8),%rcx
+        movq     %rcx,(%rsi,%rdx,8)
+5:      subq     $4,%rdx
+        jge      4b
+        addq     $4,%rdx
+        jg       3b
+        ret
+
+        # Support for void Copy::arrayof_conjoint_jshorts(void* from,
+        #                                                 void* to,
+        #                                                 size_t count)
+        # Equivalent to
+        #   conjoint_jshorts_atomic
+        #
+        # If 'from' and/or 'to' are aligned on 4- or 2-byte boundaries, we
+        # let the hardware handle it.  The tow or four words within dwords
+        # or qwords that span cache line boundaries will still be loaded
+        # and stored atomically.
+        #
+        # rdi - from
+        # rsi - to
+        # rdx - count, treated as ssize_t
+        #
+        .p2align 4,,15
+	ELF_TYPE(_Copy_arrayof_conjoint_jshorts, at function)
+	ELF_TYPE(_Copy_conjoint_jshorts_atomic, at function)
+SYMBOL(_Copy_arrayof_conjoint_jshorts):
+SYMBOL(_Copy_conjoint_jshorts_atomic):
+        movq     %rdx,%r8             # word count
+        shrq     $2,%rdx              # qword count
+        cmpq     %rdi,%rsi
+        leaq     -2(%rdi,%r8,2),%rax  # from + wcount*2 - 2
+        jbe      acs_CopyRight
+        cmpq     %rax,%rsi
+        jbe      acs_CopyLeft 
+acs_CopyRight:
+        leaq     -8(%rdi,%rdx,8),%rax # from + qcount*8 - 8
+        leaq     -8(%rsi,%rdx,8),%rcx # to + qcount*8 - 8
+        negq     %rdx
+        jmp      6f
+1:      movq     8(%rax,%rdx,8),%rsi
+        movq     %rsi,8(%rcx,%rdx,8)
+        addq     $1,%rdx
+        jnz      1b
+2:      testq    $2,%r8               # check for trailing dword
+        jz       3f
+        movl     8(%rax),%esi         # copy trailing dword
+        movl     %esi,8(%rcx)
+        addq     $4,%rcx              # original %rsi is trashed, so we
+                                      #  can't use it as a base register
+3:      testq    $1,%r8               # check for trailing word
+        jz       4f
+        movw     -2(%rdi,%r8,2),%si   # copy trailing word
+        movw     %si,8(%rcx)
+4:      ret
+        .p2align 4,,15
+5:      movq     -24(%rax,%rdx,8),%rsi
+        movq     %rsi,-24(%rcx,%rdx,8)
+        movq     -16(%rax,%rdx,8),%rsi
+        movq     %rsi,-16(%rcx,%rdx,8)
+        movq     -8(%rax,%rdx,8),%rsi
+        movq     %rsi,-8(%rcx,%rdx,8)
+        movq     (%rax,%rdx,8),%rsi
+        movq     %rsi,(%rcx,%rdx,8)
+6:      addq     $4,%rdx
+        jle      5b
+        subq     $4,%rdx
+        jl       1b
+        jmp      2b
+acs_CopyLeft:
+        testq    $1,%r8               # check for trailing word
+        jz       1f
+        movw     -2(%rdi,%r8,2),%cx   # copy trailing word
+        movw     %cx,-2(%rsi,%r8,2)
+1:      testq    $2,%r8               # check for trailing dword
+        jz       4f
+        movl     (%rdi,%rdx,8),%ecx   # copy trailing dword
+        movl     %ecx,(%rsi,%rdx,8)
+        jmp      4f
+2:      movq     -8(%rdi,%rdx,8),%rcx
+        movq     %rcx,-8(%rsi,%rdx,8)
+        subq     $1,%rdx
+        jnz      2b
+        ret
+        .p2align 4,,15
+3:      movq     24(%rdi,%rdx,8),%rcx
+        movq     %rcx,24(%rsi,%rdx,8)
+        movq     16(%rdi,%rdx,8),%rcx
+        movq     %rcx,16(%rsi,%rdx,8)
+        movq     8(%rdi,%rdx,8),%rcx
+        movq     %rcx,8(%rsi,%rdx,8)
+        movq     (%rdi,%rdx,8),%rcx
+        movq     %rcx,(%rsi,%rdx,8)
+4:      subq     $4,%rdx
+        jge      3b
+        addq     $4,%rdx
+        jg       2b
+        ret
+
+        # Support for void Copy::arrayof_conjoint_jints(jint* from,
+        #                                               jint* to,
+        #                                               size_t count)
+        # Equivalent to
+        #   conjoint_jints_atomic
+        #
+        # If 'from' and/or 'to' are aligned on 4-byte boundaries, we let
+        # the hardware handle it.  The two dwords within qwords that span
+        # cache line boundaries will still be loaded and stored atomically.
+        #
+        # rdi - from
+        # rsi - to
+        # rdx - count, treated as ssize_t
+        #
+        .p2align 4,,15
+	ELF_TYPE(_Copy_arrayof_conjoint_jints, at function)
+	ELF_TYPE(_Copy_conjoint_jints_atomic, at function)
+SYMBOL(_Copy_arrayof_conjoint_jints):
+SYMBOL(_Copy_conjoint_jints_atomic):
+        movq     %rdx,%r8             # dword count
+        shrq     %rdx                 # qword count
+        cmpq     %rdi,%rsi
+        leaq     -4(%rdi,%r8,4),%rax  # from + dcount*4 - 4
+        jbe      aci_CopyRight
+        cmpq     %rax,%rsi
+        jbe      aci_CopyLeft 
+aci_CopyRight:
+        leaq     -8(%rdi,%rdx,8),%rax # from + qcount*8 - 8
+        leaq     -8(%rsi,%rdx,8),%rcx # to + qcount*8 - 8
+        negq     %rdx
+        jmp      5f
+        .p2align 4,,15
+1:      movq     8(%rax,%rdx,8),%rsi
+        movq     %rsi,8(%rcx,%rdx,8)
+        addq     $1,%rdx
+        jnz       1b
+2:      testq    $1,%r8               # check for trailing dword
+        jz       3f
+        movl     8(%rax),%esi         # copy trailing dword
+        movl     %esi,8(%rcx)
+3:      ret
+        .p2align 4,,15
+4:      movq     -24(%rax,%rdx,8),%rsi
+        movq     %rsi,-24(%rcx,%rdx,8)
+        movq     -16(%rax,%rdx,8),%rsi
+        movq     %rsi,-16(%rcx,%rdx,8)
+        movq     -8(%rax,%rdx,8),%rsi
+        movq     %rsi,-8(%rcx,%rdx,8)
+        movq     (%rax,%rdx,8),%rsi
+        movq     %rsi,(%rcx,%rdx,8)
+5:      addq     $4,%rdx
+        jle      4b
+        subq     $4,%rdx
+        jl       1b
+        jmp      2b
+aci_CopyLeft:
+        testq    $1,%r8               # check for trailing dword
+        jz       3f
+        movl     -4(%rdi,%r8,4),%ecx  # copy trailing dword
+        movl     %ecx,-4(%rsi,%r8,4)
+        jmp      3f
+1:      movq     -8(%rdi,%rdx,8),%rcx
+        movq     %rcx,-8(%rsi,%rdx,8)
+        subq     $1,%rdx
+        jnz      1b
+        ret
+        .p2align 4,,15
+2:      movq     24(%rdi,%rdx,8),%rcx
+        movq     %rcx,24(%rsi,%rdx,8)
+        movq     16(%rdi,%rdx,8),%rcx
+        movq     %rcx,16(%rsi,%rdx,8)
+        movq     8(%rdi,%rdx,8),%rcx
+        movq     %rcx,8(%rsi,%rdx,8)
+        movq     (%rdi,%rdx,8),%rcx
+        movq     %rcx,(%rsi,%rdx,8)
+3:      subq     $4,%rdx
+        jge      2b
+        addq     $4,%rdx
+        jg       1b
+        ret
+
+        # Support for void Copy::arrayof_conjoint_jlongs(jlong* from,
+        #                                                jlong* to,
+        #                                                size_t count)
+        # Equivalent to
+        #   conjoint_jlongs_atomic
+        #   arrayof_conjoint_oops
+        #   conjoint_oops_atomic
+        #
+        # rdi - from
+        # rsi - to
+        # rdx - count, treated as ssize_t
+        #
+        .p2align 4,,15
+	ELF_TYPE(_Copy_arrayof_conjoint_jlongs, at function)
+	ELF_TYPE(_Copy_conjoint_jlongs_atomic, at function)
+SYMBOL(_Copy_arrayof_conjoint_jlongs):
+SYMBOL(_Copy_conjoint_jlongs_atomic):
+        cmpq     %rdi,%rsi
+        leaq     -8(%rdi,%rdx,8),%rax # from + count*8 - 8
+        jbe      acl_CopyRight
+        cmpq     %rax,%rsi
+        jbe      acl_CopyLeft 
+acl_CopyRight:
+        leaq     -8(%rsi,%rdx,8),%rcx # to + count*8 - 8
+        negq     %rdx
+        jmp      3f
+1:      movq     8(%rax,%rdx,8),%rsi
+        movq     %rsi,8(%rcx,%rdx,8)
+        addq     $1,%rdx
+        jnz      1b
+        ret
+        .p2align 4,,15
+2:      movq     -24(%rax,%rdx,8),%rsi
+        movq     %rsi,-24(%rcx,%rdx,8)
+        movq     -16(%rax,%rdx,8),%rsi
+        movq     %rsi,-16(%rcx,%rdx,8)
+        movq     -8(%rax,%rdx,8),%rsi
+        movq     %rsi,-8(%rcx,%rdx,8)
+        movq     (%rax,%rdx,8),%rsi
+        movq     %rsi,(%rcx,%rdx,8)
+3:      addq     $4,%rdx
+        jle      2b
+        subq     $4,%rdx
+        jl       1b
+        ret
+4:      movq     -8(%rdi,%rdx,8),%rcx
+        movq     %rcx,-8(%rsi,%rdx,8)
+        subq     $1,%rdx
+        jnz      4b
+        ret
+        .p2align 4,,15
+5:      movq     24(%rdi,%rdx,8),%rcx
+        movq     %rcx,24(%rsi,%rdx,8)
+        movq     16(%rdi,%rdx,8),%rcx
+        movq     %rcx,16(%rsi,%rdx,8)
+        movq     8(%rdi,%rdx,8),%rcx
+        movq     %rcx,8(%rsi,%rdx,8)
+        movq     (%rdi,%rdx,8),%rcx
+        movq     %rcx,(%rsi,%rdx,8)
+acl_CopyLeft:
+        subq     $4,%rdx
+        jge      5b
+        addq     $4,%rdx
+        jg       4b
+        ret
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/bytes_bsd_x86.inline.hpp b/hotspot/src/os_cpu/bsd_x86/vm/bytes_bsd_x86.inline.hpp
new file mode 100644
index 0000000..4fe770a
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/bytes_bsd_x86.inline.hpp
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_X86_VM_BYTES_BSD_X86_INLINE_HPP
+#define OS_CPU_BSD_X86_VM_BYTES_BSD_X86_INLINE_HPP
+
+#ifndef _ALLBSD_SOURCE
+#include <byteswap.h>
+#endif
+
+#ifdef __APPLE__
+#include <libkern/OSByteOrder.h>
+#endif
+
+#if defined(AMD64)
+#  if defined(__APPLE__)
+#    define bswap_16(x) OSSwapInt16(x)
+#    define bswap_32(x) OSSwapInt32(x)
+#    define bswap_64(x) OSSwapInt64(x)
+#  elif defined(__OpenBSD__)
+#    define bswap_16(x) swap16(x)
+#    define bswap_32(x) swap32(x)
+#    define bswap_64(x) swap64(x)
+#  elif defined(__NetBSD__)
+#    define bswap_16(x) bswap16(x)
+#    define bswap_32(x) bswap32(x)
+#    define bswap_64(x) bswap64(x)
+#  else
+#    define bswap_16(x) __bswap16(x)
+#    define bswap_32(x) __bswap32(x)
+#    define bswap_64(x) __bswap64(x)
+#  endif
+#endif
+
+// Efficient swapping of data bytes from Java byte
+// ordering to native byte ordering and vice versa.
+inline u2   Bytes::swap_u2(u2 x) {
+#ifdef AMD64
+  return bswap_16(x);
+#else
+  u2 ret;
+  __asm__ __volatile__ (
+    "movw %0, %%ax;"
+    "xchg %%al, %%ah;"
+    "movw %%ax, %0"
+    :"=r" (ret)      // output : register 0 => ret
+    :"0"  (x)        // input  : x => register 0
+    :"ax", "0"       // clobbered registers
+  );
+  return ret;
+#endif // AMD64
+}
+
+inline u4   Bytes::swap_u4(u4 x) {
+#ifdef AMD64
+  return bswap_32(x);
+#else
+  u4 ret;
+  __asm__ __volatile__ (
+    "bswap %0"
+    :"=r" (ret)      // output : register 0 => ret
+    :"0"  (x)        // input  : x => register 0
+    :"0"             // clobbered register
+  );
+  return ret;
+#endif // AMD64
+}
+
+#ifdef AMD64
+inline u8 Bytes::swap_u8(u8 x) {
+#ifdef SPARC_WORKS
+  // workaround for SunStudio12 CR6615391
+  __asm__ __volatile__ (
+    "bswapq %0"
+    :"=r" (x)        // output : register 0 => x
+    :"0"  (x)        // input  : x => register 0
+    :"0"             // clobbered register
+  );
+  return x;
+#else
+  return bswap_64(x);
+#endif
+}
+#else
+// Helper function for swap_u8
+inline u8   Bytes::swap_u8_base(u4 x, u4 y) {
+  return (((u8)swap_u4(x))<<32) | swap_u4(y);
+}
+
+inline u8 Bytes::swap_u8(u8 x) {
+  return swap_u8_base(*(u4*)&x, *(((u4*)&x)+1));
+}
+#endif // !AMD64
+
+#endif // OS_CPU_BSD_X86_VM_BYTES_BSD_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/copy_bsd_x86.inline.hpp b/hotspot/src/os_cpu/bsd_x86/vm/copy_bsd_x86.inline.hpp
new file mode 100644
index 0000000..760c61a
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/copy_bsd_x86.inline.hpp
@@ -0,0 +1,309 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_X86_VM_COPY_BSD_X86_INLINE_HPP
+#define OS_CPU_BSD_X86_VM_COPY_BSD_X86_INLINE_HPP
+
+static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) {
+#ifdef AMD64
+  (void)memmove(to, from, count * HeapWordSize);
+#else
+  // Includes a zero-count check.
+  intx temp;
+  __asm__ volatile("        testl   %6,%6         ;"
+                   "        jz      7f            ;"
+                   "        cmpl    %4,%5         ;"
+                   "        leal    -4(%4,%6,4),%3;"
+                   "        jbe     1f            ;"
+                   "        cmpl    %7,%5         ;"
+                   "        jbe     4f            ;"
+                   "1:      cmpl    $32,%6        ;"
+                   "        ja      3f            ;"
+                   "        subl    %4,%1         ;"
+                   "2:      movl    (%4),%3       ;"
+                   "        movl    %7,(%5,%4,1)  ;"
+                   "        addl    $4,%0         ;"
+                   "        subl    $1,%2          ;"
+                   "        jnz     2b            ;"
+                   "        jmp     7f            ;"
+                   "3:      rep;    smovl         ;"
+                   "        jmp     7f            ;"
+                   "4:      cmpl    $32,%2        ;"
+                   "        movl    %7,%0         ;"
+                   "        leal    -4(%5,%6,4),%1;"
+                   "        ja      6f            ;"
+                   "        subl    %4,%1         ;"
+                   "5:      movl    (%4),%3       ;"
+                   "        movl    %7,(%5,%4,1)  ;"
+                   "        subl    $4,%0         ;"
+                   "        subl    $1,%2          ;"
+                   "        jnz     5b            ;"
+                   "        jmp     7f            ;"
+                   "6:      std                   ;"
+                   "        rep;    smovl         ;"
+                   "        cld                   ;"
+                   "7:      nop                    "
+                   : "=S" (from), "=D" (to), "=c" (count), "=r" (temp)
+                   : "0"  (from), "1"  (to), "2"  (count), "3"  (temp)
+                   : "memory", "flags");
+#endif // AMD64
+}
+
+static void pd_disjoint_words(HeapWord* from, HeapWord* to, size_t count) {
+#ifdef AMD64
+  switch (count) {
+  case 8:  to[7] = from[7];
+  case 7:  to[6] = from[6];
+  case 6:  to[5] = from[5];
+  case 5:  to[4] = from[4];
+  case 4:  to[3] = from[3];
+  case 3:  to[2] = from[2];
+  case 2:  to[1] = from[1];
+  case 1:  to[0] = from[0];
+  case 0:  break;
+  default:
+    (void)memcpy(to, from, count * HeapWordSize);
+    break;
+  }
+#else
+  // Includes a zero-count check.
+  intx temp;
+  __asm__ volatile("        testl   %6,%6       ;"
+                   "        jz      3f          ;"
+                   "        cmpl    $32,%6      ;"
+                   "        ja      2f          ;"
+                   "        subl    %4,%1       ;"
+                   "1:      movl    (%4),%3     ;"
+                   "        movl    %7,(%5,%4,1);"
+                   "        addl    $4,%0       ;"
+                   "        subl    $1,%2        ;"
+                   "        jnz     1b          ;"
+                   "        jmp     3f          ;"
+                   "2:      rep;    smovl       ;"
+                   "3:      nop                  "
+                   : "=S" (from), "=D" (to), "=c" (count), "=r" (temp)
+                   : "0"  (from), "1"  (to), "2"  (count), "3"  (temp)
+                   : "memory", "cc");
+#endif // AMD64
+}
+
+static void pd_disjoint_words_atomic(HeapWord* from, HeapWord* to, size_t count) {
+#ifdef AMD64
+  switch (count) {
+  case 8:  to[7] = from[7];
+  case 7:  to[6] = from[6];
+  case 6:  to[5] = from[5];
+  case 5:  to[4] = from[4];
+  case 4:  to[3] = from[3];
+  case 3:  to[2] = from[2];
+  case 2:  to[1] = from[1];
+  case 1:  to[0] = from[0];
+  case 0:  break;
+  default:
+    while (count-- > 0) {
+      *to++ = *from++;
+    }
+    break;
+  }
+#else
+  // pd_disjoint_words is word-atomic in this implementation.
+  pd_disjoint_words(from, to, count);
+#endif // AMD64
+}
+
+static void pd_aligned_conjoint_words(HeapWord* from, HeapWord* to, size_t count) {
+  pd_conjoint_words(from, to, count);
+}
+
+static void pd_aligned_disjoint_words(HeapWord* from, HeapWord* to, size_t count) {
+  pd_disjoint_words(from, to, count);
+}
+
+static void pd_conjoint_bytes(void* from, void* to, size_t count) {
+#ifdef AMD64
+  (void)memmove(to, from, count);
+#else
+  // Includes a zero-count check.
+  intx temp;
+  __asm__ volatile("        testl   %6,%6          ;"
+                   "        jz      13f            ;"
+                   "        cmpl    %4,%5          ;"
+                   "        leal    -1(%4,%6),%3   ;"
+                   "        jbe     1f             ;"
+                   "        cmpl    %7,%5          ;"
+                   "        jbe     8f             ;"
+                   "1:      cmpl    $3,%6          ;"
+                   "        jbe     6f             ;"
+                   "        movl    %6,%3          ;"
+                   "        movl    $4,%2          ;"
+                   "        subl    %4,%2          ;"
+                   "        andl    $3,%2          ;"
+                   "        jz      2f             ;"
+                   "        subl    %6,%3          ;"
+                   "        rep;    smovb          ;"
+                   "2:      movl    %7,%2          ;"
+                   "        shrl    $2,%2          ;"
+                   "        jz      5f             ;"
+                   "        cmpl    $32,%2         ;"
+                   "        ja      4f             ;"
+                   "        subl    %4,%1          ;"
+                   "3:      movl    (%4),%%edx     ;"
+                   "        movl    %%edx,(%5,%4,1);"
+                   "        addl    $4,%0          ;"
+                   "        subl    $1,%2           ;"
+                   "        jnz     3b             ;"
+                   "        addl    %4,%1          ;"
+                   "        jmp     5f             ;"
+                   "4:      rep;    smovl          ;"
+                   "5:      movl    %7,%2          ;"
+                   "        andl    $3,%2          ;"
+                   "        jz      13f            ;"
+                   "6:      xorl    %7,%3          ;"
+                   "7:      movb    (%4,%7,1),%%dl ;"
+                   "        movb    %%dl,(%5,%7,1) ;"
+                   "        addl    $1,%3          ;"
+                   "        subl    $1,%2           ;"
+                   "        jnz     7b             ;"
+                   "        jmp     13f            ;"
+                   "8:      std                    ;"
+                   "        cmpl    $12,%2         ;"
+                   "        ja      9f             ;"
+                   "        movl    %7,%0          ;"
+                   "        leal    -1(%6,%5),%1   ;"
+                   "        jmp     11f            ;"
+                   "9:      xchgl   %3,%2          ;"
+                   "        movl    %6,%0          ;"
+                   "        addl    $1,%2          ;"
+                   "        leal    -1(%7,%5),%1   ;"
+                   "        andl    $3,%2          ;"
+                   "        jz      10f            ;"
+                   "        subl    %6,%3          ;"
+                   "        rep;    smovb          ;"
+                   "10:     movl    %7,%2          ;"
+                   "        subl    $3,%0          ;"
+                   "        shrl    $2,%2          ;"
+                   "        subl    $3,%1          ;"
+                   "        rep;    smovl          ;"
+                   "        andl    $3,%3          ;"
+                   "        jz      12f            ;"
+                   "        movl    %7,%2          ;"
+                   "        addl    $3,%0          ;"
+                   "        addl    $3,%1          ;"
+                   "11:     rep;    smovb          ;"
+                   "12:     cld                    ;"
+                   "13:     nop                    ;"
+                   : "=S" (from), "=D" (to), "=c" (count), "=r" (temp)
+                   : "0"  (from), "1"  (to), "2"  (count), "3"  (temp)
+                   : "memory", "flags", "%edx");
+#endif // AMD64
+}
+
+static void pd_conjoint_bytes_atomic(void* from, void* to, size_t count) {
+  pd_conjoint_bytes(from, to, count);
+}
+
+static void pd_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
+  _Copy_conjoint_jshorts_atomic(from, to, count);
+}
+
+static void pd_conjoint_jints_atomic(jint* from, jint* to, size_t count) {
+#ifdef AMD64
+  _Copy_conjoint_jints_atomic(from, to, count);
+#else
+  assert(HeapWordSize == BytesPerInt, "heapwords and jints must be the same size");
+  // pd_conjoint_words is word-atomic in this implementation.
+  pd_conjoint_words((HeapWord*)from, (HeapWord*)to, count);
+#endif // AMD64
+}
+
+static void pd_conjoint_jlongs_atomic(jlong* from, jlong* to, size_t count) {
+#ifdef AMD64
+  _Copy_conjoint_jlongs_atomic(from, to, count);
+#else
+  // Guarantee use of fild/fistp or xmm regs via some asm code, because compilers won't.
+  if (from > to) {
+    while (count-- > 0) {
+      __asm__ volatile("fildll (%0); fistpll (%1)"
+                       :
+                       : "r" (from), "r" (to)
+                       : "memory" );
+      ++from;
+      ++to;
+    }
+  } else {
+    while (count-- > 0) {
+      __asm__ volatile("fildll (%0,%2,8); fistpll (%1,%2,8)"
+                       :
+                       : "r" (from), "r" (to), "r" (count)
+                       : "memory" );
+    }
+  }
+#endif // AMD64
+}
+
+static void pd_conjoint_oops_atomic(oop* from, oop* to, size_t count) {
+#ifdef AMD64
+  assert(BytesPerLong == BytesPerOop, "jlongs and oops must be the same size");
+  _Copy_conjoint_jlongs_atomic((jlong*)from, (jlong*)to, count);
+#else
+  assert(HeapWordSize == BytesPerOop, "heapwords and oops must be the same size");
+  // pd_conjoint_words is word-atomic in this implementation.
+  pd_conjoint_words((HeapWord*)from, (HeapWord*)to, count);
+#endif // AMD64
+}
+
+static void pd_arrayof_conjoint_bytes(HeapWord* from, HeapWord* to, size_t count) {
+  _Copy_arrayof_conjoint_bytes(from, to, count);
+}
+
+static void pd_arrayof_conjoint_jshorts(HeapWord* from, HeapWord* to, size_t count) {
+  _Copy_arrayof_conjoint_jshorts(from, to, count);
+}
+
+static void pd_arrayof_conjoint_jints(HeapWord* from, HeapWord* to, size_t count) {
+#ifdef AMD64
+   _Copy_arrayof_conjoint_jints(from, to, count);
+#else
+  pd_conjoint_jints_atomic((jint*)from, (jint*)to, count);
+#endif // AMD64
+}
+
+static void pd_arrayof_conjoint_jlongs(HeapWord* from, HeapWord* to, size_t count) {
+#ifdef AMD64
+  _Copy_arrayof_conjoint_jlongs(from, to, count);
+#else
+  pd_conjoint_jlongs_atomic((jlong*)from, (jlong*)to, count);
+#endif // AMD64
+}
+
+static void pd_arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count) {
+#ifdef AMD64
+  assert(BytesPerLong == BytesPerOop, "jlongs and oops must be the same size");
+  _Copy_arrayof_conjoint_jlongs(from, to, count);
+#else
+  pd_conjoint_oops_atomic((oop*)from, (oop*)to, count);
+#endif // AMD64
+}
+
+#endif // OS_CPU_BSD_X86_VM_COPY_BSD_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp b/hotspot/src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp
new file mode 100644
index 0000000..9601188
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_X86_VM_GLOBALS_BSD_X86_HPP
+#define OS_CPU_BSD_X86_VM_GLOBALS_BSD_X86_HPP
+
+//
+// Sets the default values for platform dependent flags used by the runtime system.
+// (see globals.hpp)
+//
+define_pd_global(bool, DontYieldALot,            false);
+#ifdef AMD64
+define_pd_global(intx, ThreadStackSize,          1024); // 0 => use system default
+define_pd_global(intx, VMThreadStackSize,        1024);
+#else
+// ThreadStackSize 320 allows a couple of test cases to run while
+// keeping the number of threads that can be created high.  System
+// default ThreadStackSize appears to be 512 which is too big.
+define_pd_global(intx, ThreadStackSize,          320);
+define_pd_global(intx, VMThreadStackSize,        512);
+#endif // AMD64
+
+define_pd_global(intx, CompilerThreadStackSize,  0);
+define_pd_global(intx, SurvivorRatio,            8);
+
+define_pd_global(uintx, JVMInvokeMethodSlack,    8192);
+
+// Only used on 64 bit platforms
+define_pd_global(uintx, HeapBaseMinAddress,      2*G);
+// Only used on 64 bit Windows platforms
+define_pd_global(bool, UseVectoredExceptions,    false);
+
+#endif // OS_CPU_BSD_X86_VM_GLOBALS_BSD_X86_HPP
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/orderAccess_bsd_x86.inline.hpp b/hotspot/src/os_cpu/bsd_x86/vm/orderAccess_bsd_x86.inline.hpp
new file mode 100644
index 0000000..eaecd9c
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/orderAccess_bsd_x86.inline.hpp
@@ -0,0 +1,215 @@
+/*
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_X86_VM_ORDERACCESS_BSD_X86_INLINE_HPP
+#define OS_CPU_BSD_X86_VM_ORDERACCESS_BSD_X86_INLINE_HPP
+
+#include "runtime/atomic.hpp"
+#include "runtime/orderAccess.hpp"
+#include "vm_version_x86.hpp"
+
+// Implementation of class OrderAccess.
+
+inline void OrderAccess::loadload()   { acquire(); }
+inline void OrderAccess::storestore() { release(); }
+inline void OrderAccess::loadstore()  { acquire(); }
+inline void OrderAccess::storeload()  { fence(); }
+
+inline void OrderAccess::acquire() {
+  volatile intptr_t local_dummy;
+#ifdef AMD64
+  __asm__ volatile ("movq 0(%%rsp), %0" : "=r" (local_dummy) : : "memory");
+#else
+  __asm__ volatile ("movl 0(%%esp),%0" : "=r" (local_dummy) : : "memory");
+#endif // AMD64
+}
+
+inline void OrderAccess::release() {
+  // Avoid hitting the same cache-line from
+  // different threads.
+  volatile jint local_dummy = 0;
+}
+
+inline void OrderAccess::fence() {
+  if (os::is_MP()) {
+    // always use locked addl since mfence is sometimes expensive
+#ifdef AMD64
+    __asm__ volatile ("lock; addl $0,0(%%rsp)" : : : "cc", "memory");
+#else
+    __asm__ volatile ("lock; addl $0,0(%%esp)" : : : "cc", "memory");
+#endif
+  }
+}
+
+inline jbyte    OrderAccess::load_acquire(volatile jbyte*   p) { return *p; }
+inline jshort   OrderAccess::load_acquire(volatile jshort*  p) { return *p; }
+inline jint     OrderAccess::load_acquire(volatile jint*    p) { return *p; }
+inline jlong    OrderAccess::load_acquire(volatile jlong*   p) { return Atomic::load(p); }
+inline jubyte   OrderAccess::load_acquire(volatile jubyte*  p) { return *p; }
+inline jushort  OrderAccess::load_acquire(volatile jushort* p) { return *p; }
+inline juint    OrderAccess::load_acquire(volatile juint*   p) { return *p; }
+inline julong   OrderAccess::load_acquire(volatile julong*  p) { return Atomic::load((volatile jlong*)p); }
+inline jfloat   OrderAccess::load_acquire(volatile jfloat*  p) { return *p; }
+inline jdouble  OrderAccess::load_acquire(volatile jdouble* p) { return *p; }
+
+inline intptr_t OrderAccess::load_ptr_acquire(volatile intptr_t*   p) { return *p; }
+inline void*    OrderAccess::load_ptr_acquire(volatile void*       p) { return *(void* volatile *)p; }
+inline void*    OrderAccess::load_ptr_acquire(const volatile void* p) { return *(void* const volatile *)p; }
+
+inline void     OrderAccess::release_store(volatile jbyte*   p, jbyte   v) { *p = v; }
+inline void     OrderAccess::release_store(volatile jshort*  p, jshort  v) { *p = v; }
+inline void     OrderAccess::release_store(volatile jint*    p, jint    v) { *p = v; }
+inline void     OrderAccess::release_store(volatile jlong*   p, jlong   v) { Atomic::store(v, p); }
+inline void     OrderAccess::release_store(volatile jubyte*  p, jubyte  v) { *p = v; }
+inline void     OrderAccess::release_store(volatile jushort* p, jushort v) { *p = v; }
+inline void     OrderAccess::release_store(volatile juint*   p, juint   v) { *p = v; }
+inline void     OrderAccess::release_store(volatile julong*  p, julong  v) { Atomic::store((jlong)v, (volatile jlong*)p); }
+inline void     OrderAccess::release_store(volatile jfloat*  p, jfloat  v) { *p = v; }
+inline void     OrderAccess::release_store(volatile jdouble* p, jdouble v) { *p = v; }
+
+inline void     OrderAccess::release_store_ptr(volatile intptr_t* p, intptr_t v) { *p = v; }
+inline void     OrderAccess::release_store_ptr(volatile void*     p, void*    v) { *(void* volatile *)p = v; }
+
+inline void     OrderAccess::store_fence(jbyte*  p, jbyte  v) {
+  __asm__ volatile (  "xchgb (%2),%0"
+                    : "=q" (v)
+                    : "0" (v), "r" (p)
+                    : "memory");
+}
+inline void     OrderAccess::store_fence(jshort* p, jshort v) {
+  __asm__ volatile (  "xchgw (%2),%0"
+                    : "=r" (v)
+                    : "0" (v), "r" (p)
+                    : "memory");
+}
+inline void     OrderAccess::store_fence(jint*   p, jint   v) {
+  __asm__ volatile (  "xchgl (%2),%0"
+                    : "=r" (v)
+                    : "0" (v), "r" (p)
+                    : "memory");
+}
+
+inline void     OrderAccess::store_fence(jlong*   p, jlong   v) {
+#ifdef AMD64
+  __asm__ __volatile__ ("xchgq (%2), %0"
+                        : "=r" (v)
+                        : "0" (v), "r" (p)
+                        : "memory");
+#else
+  *p = v; fence();
+#endif // AMD64
+}
+
+// AMD64 copied the bodies for the the signed version. 32bit did this. As long as the
+// compiler does the inlining this is simpler.
+inline void     OrderAccess::store_fence(jubyte*  p, jubyte  v) { store_fence((jbyte*)p,  (jbyte)v);  }
+inline void     OrderAccess::store_fence(jushort* p, jushort v) { store_fence((jshort*)p, (jshort)v); }
+inline void     OrderAccess::store_fence(juint*   p, juint   v) { store_fence((jint*)p,   (jint)v);   }
+inline void     OrderAccess::store_fence(julong*  p, julong  v) { store_fence((jlong*)p,  (jlong)v);  }
+inline void     OrderAccess::store_fence(jfloat*  p, jfloat  v) { *p = v; fence(); }
+inline void     OrderAccess::store_fence(jdouble* p, jdouble v) { *p = v; fence(); }
+
+inline void     OrderAccess::store_ptr_fence(intptr_t* p, intptr_t v) {
+#ifdef AMD64
+  __asm__ __volatile__ ("xchgq (%2), %0"
+                        : "=r" (v)
+                        : "0" (v), "r" (p)
+                        : "memory");
+#else
+  store_fence((jint*)p, (jint)v);
+#endif // AMD64
+}
+
+inline void     OrderAccess::store_ptr_fence(void**    p, void*    v) {
+#ifdef AMD64
+  __asm__ __volatile__ ("xchgq (%2), %0"
+                        : "=r" (v)
+                        : "0" (v), "r" (p)
+                        : "memory");
+#else
+  store_fence((jint*)p, (jint)v);
+#endif // AMD64
+}
+
+// Must duplicate definitions instead of calling store_fence because we don't want to cast away volatile.
+inline void     OrderAccess::release_store_fence(volatile jbyte*  p, jbyte  v) {
+  __asm__ volatile (  "xchgb (%2),%0"
+                    : "=q" (v)
+                    : "0" (v), "r" (p)
+                    : "memory");
+}
+inline void     OrderAccess::release_store_fence(volatile jshort* p, jshort v) {
+  __asm__ volatile (  "xchgw (%2),%0"
+                    : "=r" (v)
+                    : "0" (v), "r" (p)
+                    : "memory");
+}
+inline void     OrderAccess::release_store_fence(volatile jint*   p, jint   v) {
+  __asm__ volatile (  "xchgl (%2),%0"
+                    : "=r" (v)
+                    : "0" (v), "r" (p)
+                    : "memory");
+}
+
+inline void     OrderAccess::release_store_fence(volatile jlong*   p, jlong   v) {
+#ifdef AMD64
+  __asm__ __volatile__ (  "xchgq (%2), %0"
+                          : "=r" (v)
+                          : "0" (v), "r" (p)
+                          : "memory");
+#else
+  release_store(p, v); fence();
+#endif // AMD64
+}
+
+inline void     OrderAccess::release_store_fence(volatile jubyte*  p, jubyte  v) { release_store_fence((volatile jbyte*)p,  (jbyte)v);  }
+inline void     OrderAccess::release_store_fence(volatile jushort* p, jushort v) { release_store_fence((volatile jshort*)p, (jshort)v); }
+inline void     OrderAccess::release_store_fence(volatile juint*   p, juint   v) { release_store_fence((volatile jint*)p,   (jint)v);   }
+inline void     OrderAccess::release_store_fence(volatile julong*  p, julong  v) { release_store_fence((volatile jlong*)p,  (jlong)v);  }
+
+inline void     OrderAccess::release_store_fence(volatile jfloat*  p, jfloat  v) { *p = v; fence(); }
+inline void     OrderAccess::release_store_fence(volatile jdouble* p, jdouble v) { *p = v; fence(); }
+
+inline void     OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) {
+#ifdef AMD64
+  __asm__ __volatile__ (  "xchgq (%2), %0"
+                          : "=r" (v)
+                          : "0" (v), "r" (p)
+                          : "memory");
+#else
+  release_store_fence((volatile jint*)p, (jint)v);
+#endif // AMD64
+}
+inline void     OrderAccess::release_store_ptr_fence(volatile void*     p, void*    v) {
+#ifdef AMD64
+  __asm__ __volatile__ (  "xchgq (%2), %0"
+                          : "=r" (v)
+                          : "0" (v), "r" (p)
+                          : "memory");
+#else
+  release_store_fence((volatile jint*)p, (jint)v);
+#endif // AMD64
+}
+
+#endif // OS_CPU_BSD_X86_VM_ORDERACCESS_BSD_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp b/hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
new file mode 100644
index 0000000..11374ac
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
@@ -0,0 +1,1124 @@
+/*
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+// no precompiled headers
+#include "assembler_x86.inline.hpp"
+#include "classfile/classLoader.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "interpreter/interpreter.hpp"
+#include "jvm_bsd.h"
+#include "memory/allocation.inline.hpp"
+#include "mutex_bsd.inline.hpp"
+#include "nativeInst_x86.hpp"
+#include "os_share_bsd.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm.h"
+#include "prims/jvm_misc.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/extendedPC.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/java.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/timer.hpp"
+#include "thread_bsd.inline.hpp"
+#include "utilities/events.hpp"
+#include "utilities/vmError.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
+
+// put OS-includes here
+# include <sys/types.h>
+# include <sys/mman.h>
+# include <pthread.h>
+# include <signal.h>
+# include <errno.h>
+# include <dlfcn.h>
+# include <stdlib.h>
+# include <stdio.h>
+# include <unistd.h>
+# include <sys/resource.h>
+# include <pthread.h>
+# include <sys/stat.h>
+# include <sys/time.h>
+# include <sys/utsname.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <pwd.h>
+# include <poll.h>
+#ifndef __OpenBSD__
+# include <ucontext.h>
+#endif
+
+#if defined(_ALLBSD_SOURCE) && !defined(__APPLE__) && !defined(__NetBSD__)
+# include <pthread_np.h>
+#endif
+
+#ifdef AMD64
+#define SPELL_REG_SP "rsp"
+#define SPELL_REG_FP "rbp"
+#else
+#define SPELL_REG_SP "esp"
+#define SPELL_REG_FP "ebp"
+#endif // AMD64
+
+#ifdef __FreeBSD__
+# define context_trapno uc_mcontext.mc_trapno
+# ifdef AMD64
+#  define context_pc uc_mcontext.mc_rip
+#  define context_sp uc_mcontext.mc_rsp
+#  define context_fp uc_mcontext.mc_rbp
+#  define context_rip uc_mcontext.mc_rip
+#  define context_rsp uc_mcontext.mc_rsp
+#  define context_rbp uc_mcontext.mc_rbp
+#  define context_rax uc_mcontext.mc_rax
+#  define context_rbx uc_mcontext.mc_rbx
+#  define context_rcx uc_mcontext.mc_rcx
+#  define context_rdx uc_mcontext.mc_rdx
+#  define context_rsi uc_mcontext.mc_rsi
+#  define context_rdi uc_mcontext.mc_rdi
+#  define context_r8  uc_mcontext.mc_r8
+#  define context_r9  uc_mcontext.mc_r9
+#  define context_r10 uc_mcontext.mc_r10
+#  define context_r11 uc_mcontext.mc_r11
+#  define context_r12 uc_mcontext.mc_r12
+#  define context_r13 uc_mcontext.mc_r13
+#  define context_r14 uc_mcontext.mc_r14
+#  define context_r15 uc_mcontext.mc_r15
+#  define context_flags uc_mcontext.mc_flags
+#  define context_err uc_mcontext.mc_err
+# else
+#  define context_pc uc_mcontext.mc_eip
+#  define context_sp uc_mcontext.mc_esp
+#  define context_fp uc_mcontext.mc_ebp
+#  define context_eip uc_mcontext.mc_eip
+#  define context_esp uc_mcontext.mc_esp
+#  define context_eax uc_mcontext.mc_eax
+#  define context_ebx uc_mcontext.mc_ebx
+#  define context_ecx uc_mcontext.mc_ecx
+#  define context_edx uc_mcontext.mc_edx
+#  define context_ebp uc_mcontext.mc_ebp
+#  define context_esi uc_mcontext.mc_esi
+#  define context_edi uc_mcontext.mc_edi
+#  define context_eflags uc_mcontext.mc_eflags
+#  define context_trapno uc_mcontext.mc_trapno
+# endif
+#endif
+
+#ifdef __APPLE__
+# if __DARWIN_UNIX03 && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)
+  // 10.5 UNIX03 member name prefixes
+  #define DU3_PREFIX(s, m) __ ## s.__ ## m
+# else
+  #define DU3_PREFIX(s, m) s ## . ## m
+# endif
+
+# ifdef AMD64
+#  define context_pc context_rip
+#  define context_sp context_rsp
+#  define context_fp context_rbp
+#  define context_rip uc_mcontext->DU3_PREFIX(ss,rip)
+#  define context_rsp uc_mcontext->DU3_PREFIX(ss,rsp)
+#  define context_rax uc_mcontext->DU3_PREFIX(ss,rax)
+#  define context_rbx uc_mcontext->DU3_PREFIX(ss,rbx)
+#  define context_rcx uc_mcontext->DU3_PREFIX(ss,rcx)
+#  define context_rdx uc_mcontext->DU3_PREFIX(ss,rdx)
+#  define context_rbp uc_mcontext->DU3_PREFIX(ss,rbp)
+#  define context_rsi uc_mcontext->DU3_PREFIX(ss,rsi)
+#  define context_rdi uc_mcontext->DU3_PREFIX(ss,rdi)
+#  define context_r8  uc_mcontext->DU3_PREFIX(ss,r8)
+#  define context_r9  uc_mcontext->DU3_PREFIX(ss,r9)
+#  define context_r10 uc_mcontext->DU3_PREFIX(ss,r10)
+#  define context_r11 uc_mcontext->DU3_PREFIX(ss,r11)
+#  define context_r12 uc_mcontext->DU3_PREFIX(ss,r12)
+#  define context_r13 uc_mcontext->DU3_PREFIX(ss,r13)
+#  define context_r14 uc_mcontext->DU3_PREFIX(ss,r14)
+#  define context_r15 uc_mcontext->DU3_PREFIX(ss,r15)
+#  define context_flags uc_mcontext->DU3_PREFIX(ss,rflags)
+#  define context_trapno uc_mcontext->DU3_PREFIX(es,trapno)
+#  define context_err uc_mcontext->DU3_PREFIX(es,err)
+# else
+#  define context_pc context_eip
+#  define context_sp context_esp
+#  define context_fp context_ebp
+#  define context_eip uc_mcontext->DU3_PREFIX(ss,eip)
+#  define context_esp uc_mcontext->DU3_PREFIX(ss,esp)
+#  define context_eax uc_mcontext->DU3_PREFIX(ss,eax)
+#  define context_ebx uc_mcontext->DU3_PREFIX(ss,ebx)
+#  define context_ecx uc_mcontext->DU3_PREFIX(ss,ecx)
+#  define context_edx uc_mcontext->DU3_PREFIX(ss,edx)
+#  define context_ebp uc_mcontext->DU3_PREFIX(ss,ebp)
+#  define context_esi uc_mcontext->DU3_PREFIX(ss,esi)
+#  define context_edi uc_mcontext->DU3_PREFIX(ss,edi)
+#  define context_eflags uc_mcontext->DU3_PREFIX(ss,eflags)
+#  define context_trapno uc_mcontext->DU3_PREFIX(es,trapno)
+# endif
+#endif
+
+#ifdef __OpenBSD__
+# define context_trapno sc_trapno
+# ifdef AMD64
+#  define context_pc sc_rip
+#  define context_sp sc_rsp
+#  define context_fp sc_rbp
+#  define context_rip sc_rip
+#  define context_rsp sc_rsp
+#  define context_rbp sc_rbp
+#  define context_rax sc_rax
+#  define context_rbx sc_rbx
+#  define context_rcx sc_rcx
+#  define context_rdx sc_rdx
+#  define context_rsi sc_rsi
+#  define context_rdi sc_rdi
+#  define context_r8  sc_r8
+#  define context_r9  sc_r9
+#  define context_r10 sc_r10
+#  define context_r11 sc_r11
+#  define context_r12 sc_r12
+#  define context_r13 sc_r13
+#  define context_r14 sc_r14
+#  define context_r15 sc_r15
+#  define context_flags sc_rflags
+#  define context_err sc_err
+# else
+#  define context_pc sc_eip
+#  define context_sp sc_esp
+#  define context_fp sc_ebp
+#  define context_eip sc_eip
+#  define context_esp sc_esp
+#  define context_eax sc_eax
+#  define context_ebx sc_ebx
+#  define context_ecx sc_ecx
+#  define context_edx sc_edx
+#  define context_ebp sc_ebp
+#  define context_esi sc_esi
+#  define context_edi sc_edi
+#  define context_eflags sc_eflags
+#  define context_trapno sc_trapno
+# endif
+#endif
+
+#ifdef __NetBSD__
+# define context_trapno uc_mcontext.__gregs[_REG_TRAPNO]
+# ifdef AMD64
+#  define __register_t __greg_t
+#  define context_pc uc_mcontext.__gregs[_REG_RIP]
+#  define context_sp uc_mcontext.__gregs[_REG_URSP]
+#  define context_fp uc_mcontext.__gregs[_REG_RBP]
+#  define context_rip uc_mcontext.__gregs[_REG_RIP]
+#  define context_rsp uc_mcontext.__gregs[_REG_URSP]
+#  define context_rax uc_mcontext.__gregs[_REG_RAX]
+#  define context_rbx uc_mcontext.__gregs[_REG_RBX]
+#  define context_rcx uc_mcontext.__gregs[_REG_RCX]
+#  define context_rdx uc_mcontext.__gregs[_REG_RDX]
+#  define context_rbp uc_mcontext.__gregs[_REG_RBP]
+#  define context_rsi uc_mcontext.__gregs[_REG_RSI]
+#  define context_rdi uc_mcontext.__gregs[_REG_RDI]
+#  define context_r8  uc_mcontext.__gregs[_REG_R8]
+#  define context_r9  uc_mcontext.__gregs[_REG_R9]
+#  define context_r10 uc_mcontext.__gregs[_REG_R10]
+#  define context_r11 uc_mcontext.__gregs[_REG_R11]
+#  define context_r12 uc_mcontext.__gregs[_REG_R12]
+#  define context_r13 uc_mcontext.__gregs[_REG_R13]
+#  define context_r14 uc_mcontext.__gregs[_REG_R14]
+#  define context_r15 uc_mcontext.__gregs[_REG_R15]
+#  define context_flags uc_mcontext.__gregs[_REG_RFL]
+#  define context_err uc_mcontext.__gregs[_REG_ERR]
+# else
+#  define context_pc uc_mcontext.__gregs[_REG_EIP]
+#  define context_sp uc_mcontext.__gregs[_REG_UESP]
+#  define context_fp uc_mcontext.__gregs[_REG_EBP]
+#  define context_eip uc_mcontext.__gregs[_REG_EIP]
+#  define context_esp uc_mcontext.__gregs[_REG_UESP]
+#  define context_eax uc_mcontext.__gregs[_REG_EAX]
+#  define context_ebx uc_mcontext.__gregs[_REG_EBX]
+#  define context_ecx uc_mcontext.__gregs[_REG_ECX]
+#  define context_edx uc_mcontext.__gregs[_REG_EDX]
+#  define context_ebp uc_mcontext.__gregs[_REG_EBP]
+#  define context_esi uc_mcontext.__gregs[_REG_ESI]
+#  define context_edi uc_mcontext.__gregs[_REG_EDI]
+#  define context_eflags uc_mcontext.__gregs[_REG_EFL]
+#  define context_trapno uc_mcontext.__gregs[_REG_TRAPNO]
+# endif
+#endif
+
+address os::current_stack_pointer() {
+#ifdef SPARC_WORKS
+  register void *esp;
+  __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp));
+  return (address) ((char*)esp + sizeof(long)*2);
+#else
+  register void *esp __asm__ (SPELL_REG_SP);
+  return (address) esp;
+#endif
+}
+
+char* os::non_memory_address_word() {
+  // Must never look like an address returned by reserve_memory,
+  // even in its subfields (as defined by the CPU immediate fields,
+  // if the CPU splits constants across multiple instructions).
+
+  return (char*) -1;
+}
+
+void os::initialize_thread() {
+// Nothing to do.
+}
+
+address os::Bsd::ucontext_get_pc(ucontext_t * uc) {
+  return (address)uc->context_pc;
+}
+
+intptr_t* os::Bsd::ucontext_get_sp(ucontext_t * uc) {
+  return (intptr_t*)uc->context_sp;
+}
+
+intptr_t* os::Bsd::ucontext_get_fp(ucontext_t * uc) {
+  return (intptr_t*)uc->context_fp;
+}
+
+// For Forte Analyzer AsyncGetCallTrace profiling support - thread
+// is currently interrupted by SIGPROF.
+// os::Solaris::fetch_frame_from_ucontext() tries to skip nested signal
+// frames. Currently we don't do that on Bsd, so it's the same as
+// os::fetch_frame_from_context().
+ExtendedPC os::Bsd::fetch_frame_from_ucontext(Thread* thread,
+  ucontext_t* uc, intptr_t** ret_sp, intptr_t** ret_fp) {
+
+  assert(thread != NULL, "just checking");
+  assert(ret_sp != NULL, "just checking");
+  assert(ret_fp != NULL, "just checking");
+
+  return os::fetch_frame_from_context(uc, ret_sp, ret_fp);
+}
+
+ExtendedPC os::fetch_frame_from_context(void* ucVoid,
+                    intptr_t** ret_sp, intptr_t** ret_fp) {
+
+  ExtendedPC  epc;
+  ucontext_t* uc = (ucontext_t*)ucVoid;
+
+  if (uc != NULL) {
+    epc = ExtendedPC(os::Bsd::ucontext_get_pc(uc));
+    if (ret_sp) *ret_sp = os::Bsd::ucontext_get_sp(uc);
+    if (ret_fp) *ret_fp = os::Bsd::ucontext_get_fp(uc);
+  } else {
+    // construct empty ExtendedPC for return value checking
+    epc = ExtendedPC(NULL);
+    if (ret_sp) *ret_sp = (intptr_t *)NULL;
+    if (ret_fp) *ret_fp = (intptr_t *)NULL;
+  }
+
+  return epc;
+}
+
+frame os::fetch_frame_from_context(void* ucVoid) {
+  intptr_t* sp;
+  intptr_t* fp;
+  ExtendedPC epc = fetch_frame_from_context(ucVoid, &sp, &fp);
+  return frame(sp, fp, epc.pc());
+}
+
+// By default, gcc always save frame pointer (%ebp/%rbp) on stack. It may get
+// turned off by -fomit-frame-pointer,
+frame os::get_sender_for_C_frame(frame* fr) {
+  return frame(fr->sender_sp(), fr->link(), fr->sender_pc());
+}
+
+intptr_t* _get_previous_fp() {
+#ifdef SPARC_WORKS
+  register intptr_t **ebp;
+  __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp));
+#else
+  register intptr_t **ebp __asm__ (SPELL_REG_FP);
+#endif
+  return (intptr_t*) *ebp;   // we want what it points to.
+}
+
+
+frame os::current_frame() {
+  intptr_t* fp = _get_previous_fp();
+  frame myframe((intptr_t*)os::current_stack_pointer(),
+                (intptr_t*)fp,
+                CAST_FROM_FN_PTR(address, os::current_frame));
+  if (os::is_first_C_frame(&myframe)) {
+    // stack is not walkable
+    return frame(NULL, NULL, NULL);
+  } else {
+    return os::get_sender_for_C_frame(&myframe);
+  }
+}
+
+// Utility functions
+
+// From IA32 System Programming Guide
+enum {
+  trap_page_fault = 0xE
+};
+
+extern "C" void Fetch32PFI () ;
+extern "C" void Fetch32Resume () ;
+#ifdef AMD64
+extern "C" void FetchNPFI () ;
+extern "C" void FetchNResume () ;
+#endif // AMD64
+
+extern "C" JNIEXPORT int
+JVM_handle_bsd_signal(int sig,
+                        siginfo_t* info,
+                        void* ucVoid,
+                        int abort_if_unrecognized) {
+  ucontext_t* uc = (ucontext_t*) ucVoid;
+
+  Thread* t = ThreadLocalStorage::get_thread_slow();
+
+  SignalHandlerMark shm(t);
+
+  // Note: it's not uncommon that JNI code uses signal/sigset to install
+  // then restore certain signal handler (e.g. to temporarily block SIGPIPE,
+  // or have a SIGILL handler when detecting CPU type). When that happens,
+  // JVM_handle_bsd_signal() might be invoked with junk info/ucVoid. To
+  // avoid unnecessary crash when libjsig is not preloaded, try handle signals
+  // that do not require siginfo/ucontext first.
+
+  if (sig == SIGPIPE || sig == SIGXFSZ) {
+    // allow chained handler to go first
+    if (os::Bsd::chained_handler(sig, info, ucVoid)) {
+      return true;
+    } else {
+      if (PrintMiscellaneous && (WizardMode || Verbose)) {
+        char buf[64];
+        warning("Ignoring %s - see bugs 4229104 or 646499219",
+                os::exception_name(sig, buf, sizeof(buf)));
+      }
+      return true;
+    }
+  }
+
+  JavaThread* thread = NULL;
+  VMThread* vmthread = NULL;
+  if (os::Bsd::signal_handlers_are_installed) {
+    if (t != NULL ){
+      if(t->is_Java_thread()) {
+        thread = (JavaThread*)t;
+      }
+      else if(t->is_VM_thread()){
+        vmthread = (VMThread *)t;
+      }
+    }
+  }
+/*
+  NOTE: does not seem to work on bsd.
+  if (info == NULL || info->si_code <= 0 || info->si_code == SI_NOINFO) {
+    // can't decode this kind of signal
+    info = NULL;
+  } else {
+    assert(sig == info->si_signo, "bad siginfo");
+  }
+*/
+  // decide if this trap can be handled by a stub
+  address stub = NULL;
+
+  address pc          = NULL;
+
+  //%note os_trap_1
+  if (info != NULL && uc != NULL && thread != NULL) {
+    pc = (address) os::Bsd::ucontext_get_pc(uc);
+
+    if (pc == (address) Fetch32PFI) {
+       uc->context_pc = intptr_t(Fetch32Resume) ;
+       return 1 ;
+    }
+#ifdef AMD64
+    if (pc == (address) FetchNPFI) {
+       uc->context_pc = intptr_t (FetchNResume) ;
+       return 1 ;
+    }
+#endif // AMD64
+
+    // Handle ALL stack overflow variations here
+    if (sig == SIGSEGV || sig == SIGBUS) {
+      address addr = (address) info->si_addr;
+
+      // check if fault address is within thread stack
+      if (addr < thread->stack_base() &&
+          addr >= thread->stack_base() - thread->stack_size()) {
+        // stack overflow
+        if (thread->in_stack_yellow_zone(addr)) {
+          thread->disable_stack_yellow_zone();
+          if (thread->thread_state() == _thread_in_Java) {
+            // Throw a stack overflow exception.  Guard pages will be reenabled
+            // while unwinding the stack.
+            stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::STACK_OVERFLOW);
+          } else {
+            // Thread was in the vm or native code.  Return and try to finish.
+            return 1;
+          }
+        } else if (thread->in_stack_red_zone(addr)) {
+          // Fatal red zone violation.  Disable the guard pages and fall through
+          // to handle_unexpected_exception way down below.
+          thread->disable_stack_red_zone();
+          tty->print_raw_cr("An irrecoverable stack overflow has occurred.");
+#ifndef _ALLBSD_SOURCE
+        } else {
+          // Accessing stack address below sp may cause SEGV if current
+          // thread has MAP_GROWSDOWN stack. This should only happen when
+          // current thread was created by user code with MAP_GROWSDOWN flag
+          // and then attached to VM. See notes in os_bsd.cpp.
+          if (thread->osthread()->expanding_stack() == 0) {
+             thread->osthread()->set_expanding_stack();
+             if (os::Bsd::manually_expand_stack(thread, addr)) {
+               thread->osthread()->clear_expanding_stack();
+               return 1;
+             }
+             thread->osthread()->clear_expanding_stack();
+          } else {
+             fatal("recursive segv. expanding stack.");
+          }
+#endif
+        }
+      }
+    }
+
+    if (thread->thread_state() == _thread_in_Java) {
+      // Java thread running in Java code => find exception handler if any
+      // a fault inside compiled code, the interpreter, or a stub
+
+      if ((sig == SIGSEGV || sig == SIGBUS) && os::is_poll_address((address)info->si_addr)) {
+        stub = SharedRuntime::get_poll_stub(pc);
+#if defined(__APPLE__) && !defined(AMD64)
+      // 32-bit Darwin reports a SIGBUS for nearly all memory access exceptions.
+      // Catching SIGBUS here prevents the implicit SIGBUS NULL check below from
+      // being called, so only do so if the implicit NULL check is not necessary.
+      } else if (sig == SIGBUS && MacroAssembler::needs_explicit_null_check((int)info->si_addr)) {
+#else
+      } else if (sig == SIGBUS /* && info->si_code == BUS_OBJERR */) {
+#endif
+        // BugId 4454115: A read from a MappedByteBuffer can fault
+        // here if the underlying file has been truncated.
+        // Do not crash the VM in such a case.
+        CodeBlob* cb = CodeCache::find_blob_unsafe(pc);
+        nmethod* nm = cb->is_nmethod() ? (nmethod*)cb : NULL;
+        if (nm != NULL && nm->has_unsafe_access()) {
+          stub = StubRoutines::handler_for_unsafe_access();
+        }
+      }
+      else
+
+#ifdef AMD64
+      if (sig == SIGFPE  &&
+          (info->si_code == FPE_INTDIV || info->si_code == FPE_FLTDIV)) {
+        stub =
+          SharedRuntime::
+          continuation_for_implicit_exception(thread,
+                                              pc,
+                                              SharedRuntime::
+                                              IMPLICIT_DIVIDE_BY_ZERO);
+#ifdef __APPLE__
+      } else if (sig == SIGFPE && info->si_code == FPE_NOOP) {
+        int op = pc[0];
+
+        // Skip REX
+        if ((pc[0] & 0xf0) == 0x40) {
+          op = pc[1];
+        } else {
+          op = pc[0];
+        }
+
+        // Check for IDIV
+        if (op == 0xF7) {
+          stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime:: IMPLICIT_DIVIDE_BY_ZERO);
+        } else {
+          // TODO: handle more cases if we are using other x86 instructions
+          //   that can generate SIGFPE signal.
+          tty->print_cr("unknown opcode 0x%X with SIGFPE.", op);
+          fatal("please update this code.");
+        }
+#endif /* __APPLE__ */
+
+#else
+      if (sig == SIGFPE /* && info->si_code == FPE_INTDIV */) {
+        // HACK: si_code does not work on bsd 2.2.12-20!!!
+        int op = pc[0];
+        if (op == 0xDB) {
+          // FIST
+          // TODO: The encoding of D2I in i486.ad can cause an exception
+          // prior to the fist instruction if there was an invalid operation
+          // pending. We want to dismiss that exception. From the win_32
+          // side it also seems that if it really was the fist causing
+          // the exception that we do the d2i by hand with different
+          // rounding. Seems kind of weird.
+          // NOTE: that we take the exception at the NEXT floating point instruction.
+          assert(pc[0] == 0xDB, "not a FIST opcode");
+          assert(pc[1] == 0x14, "not a FIST opcode");
+          assert(pc[2] == 0x24, "not a FIST opcode");
+          return true;
+        } else if (op == 0xF7) {
+          // IDIV
+          stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_DIVIDE_BY_ZERO);
+        } else {
+          // TODO: handle more cases if we are using other x86 instructions
+          //   that can generate SIGFPE signal on bsd.
+          tty->print_cr("unknown opcode 0x%X with SIGFPE.", op);
+          fatal("please update this code.");
+        }
+#endif // AMD64
+      } else if ((sig == SIGSEGV || sig == SIGBUS) &&
+               !MacroAssembler::needs_explicit_null_check((intptr_t)info->si_addr)) {
+          // Determination of interpreter/vtable stub/compiled code null exception
+          stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL);
+      }
+    } else if (thread->thread_state() == _thread_in_vm &&
+               sig == SIGBUS && /* info->si_code == BUS_OBJERR && */
+               thread->doing_unsafe_access()) {
+        stub = StubRoutines::handler_for_unsafe_access();
+    }
+
+    // jni_fast_Get<Primitive>Field can trap at certain pc's if a GC kicks in
+    // and the heap gets shrunk before the field access.
+    if ((sig == SIGSEGV) || (sig == SIGBUS)) {
+      address addr = JNI_FastGetField::find_slowcase_pc(pc);
+      if (addr != (address)-1) {
+        stub = addr;
+      }
+    }
+
+    // Check to see if we caught the safepoint code in the
+    // process of write protecting the memory serialization page.
+    // It write enables the page immediately after protecting it
+    // so we can just return to retry the write.
+    if ((sig == SIGSEGV || sig == SIGBUS) &&
+        os::is_memory_serialize_page(thread, (address) info->si_addr)) {
+      // Block current thread until the memory serialize page permission restored.
+      os::block_on_serialize_page_trap();
+      return true;
+    }
+  }
+
+#ifndef AMD64
+  // Execution protection violation
+  //
+  // This should be kept as the last step in the triage.  We don't
+  // have a dedicated trap number for a no-execute fault, so be
+  // conservative and allow other handlers the first shot.
+  //
+  // Note: We don't test that info->si_code == SEGV_ACCERR here.
+  // this si_code is so generic that it is almost meaningless; and
+  // the si_code for this condition may change in the future.
+  // Furthermore, a false-positive should be harmless.
+  if (UnguardOnExecutionViolation > 0 &&
+      (sig == SIGSEGV || sig == SIGBUS) &&
+      uc->context_trapno == trap_page_fault) {
+    int page_size = os::vm_page_size();
+    address addr = (address) info->si_addr;
+    address pc = os::Bsd::ucontext_get_pc(uc);
+    // Make sure the pc and the faulting address are sane.
+    //
+    // If an instruction spans a page boundary, and the page containing
+    // the beginning of the instruction is executable but the following
+    // page is not, the pc and the faulting address might be slightly
+    // different - we still want to unguard the 2nd page in this case.
+    //
+    // 15 bytes seems to be a (very) safe value for max instruction size.
+    bool pc_is_near_addr =
+      (pointer_delta((void*) addr, (void*) pc, sizeof(char)) < 15);
+    bool instr_spans_page_boundary =
+      (align_size_down((intptr_t) pc ^ (intptr_t) addr,
+                       (intptr_t) page_size) > 0);
+
+    if (pc == addr || (pc_is_near_addr && instr_spans_page_boundary)) {
+      static volatile address last_addr =
+        (address) os::non_memory_address_word();
+
+      // In conservative mode, don't unguard unless the address is in the VM
+      if (addr != last_addr &&
+          (UnguardOnExecutionViolation > 1 || os::address_is_in_vm(addr))) {
+
+        // Set memory to RWX and retry
+        address page_start =
+          (address) align_size_down((intptr_t) addr, (intptr_t) page_size);
+        bool res = os::protect_memory((char*) page_start, page_size,
+                                      os::MEM_PROT_RWX);
+
+        if (PrintMiscellaneous && Verbose) {
+          char buf[256];
+          jio_snprintf(buf, sizeof(buf), "Execution protection violation "
+                       "at " INTPTR_FORMAT
+                       ", unguarding " INTPTR_FORMAT ": %s, errno=%d", addr,
+                       page_start, (res ? "success" : "failed"), errno);
+          tty->print_raw_cr(buf);
+        }
+        stub = pc;
+
+        // Set last_addr so if we fault again at the same address, we don't end
+        // up in an endless loop.
+        //
+        // There are two potential complications here.  Two threads trapping at
+        // the same address at the same time could cause one of the threads to
+        // think it already unguarded, and abort the VM.  Likely very rare.
+        //
+        // The other race involves two threads alternately trapping at
+        // different addresses and failing to unguard the page, resulting in
+        // an endless loop.  This condition is probably even more unlikely than
+        // the first.
+        //
+        // Although both cases could be avoided by using locks or thread local
+        // last_addr, these solutions are unnecessary complication: this
+        // handler is a best-effort safety net, not a complete solution.  It is
+        // disabled by default and should only be used as a workaround in case
+        // we missed any no-execute-unsafe VM code.
+
+        last_addr = addr;
+      }
+    }
+  }
+#endif // !AMD64
+
+  if (stub != NULL) {
+    // save all thread context in case we need to restore it
+    if (thread != NULL) thread->set_saved_exception_pc(pc);
+
+    uc->context_pc = (intptr_t)stub;
+    return true;
+  }
+
+  // signal-chaining
+  if (os::Bsd::chained_handler(sig, info, ucVoid)) {
+     return true;
+  }
+
+  if (!abort_if_unrecognized) {
+    // caller wants another chance, so give it to him
+    return false;
+  }
+
+  if (pc == NULL && uc != NULL) {
+    pc = os::Bsd::ucontext_get_pc(uc);
+  }
+
+  // unmask current signal
+  sigset_t newset;
+  sigemptyset(&newset);
+  sigaddset(&newset, sig);
+  sigprocmask(SIG_UNBLOCK, &newset, NULL);
+
+  VMError err(t, sig, pc, info, ucVoid);
+  err.report_and_die();
+
+  ShouldNotReachHere();
+}
+
+#ifdef _ALLBSD_SOURCE
+// From solaris_i486.s ported to bsd_i486.s
+extern "C" void fixcw();
+#endif
+
+void os::Bsd::init_thread_fpu_state(void) {
+#ifndef AMD64
+# ifdef _ALLBSD_SOURCE
+  // Set fpu to 53 bit precision. This happens too early to use a stub.
+  fixcw();
+# else
+  // set fpu to 53 bit precision
+  set_fpu_control_word(0x27f);
+# endif
+#endif // !AMD64
+}
+
+#ifndef _ALLBSD_SOURCE
+int os::Bsd::get_fpu_control_word(void) {
+#ifdef AMD64
+  return 0;
+#else
+  int fpu_control;
+  _FPU_GETCW(fpu_control);
+  return fpu_control & 0xffff;
+#endif // AMD64
+}
+
+void os::Bsd::set_fpu_control_word(int fpu_control) {
+#ifndef AMD64
+  _FPU_SETCW(fpu_control);
+#endif // !AMD64
+}
+#endif
+
+// Check that the bsd kernel version is 2.4 or higher since earlier
+// versions do not support SSE without patches.
+bool os::supports_sse() {
+#if defined(AMD64) || defined(_ALLBSD_SOURCE)
+  return true;
+#else
+  struct utsname uts;
+  if( uname(&uts) != 0 ) return false; // uname fails?
+  char *minor_string;
+  int major = strtol(uts.release,&minor_string,10);
+  int minor = strtol(minor_string+1,NULL,10);
+  bool result = (major > 2 || (major==2 && minor >= 4));
+#ifndef PRODUCT
+  if (PrintMiscellaneous && Verbose) {
+    tty->print("OS version is %d.%d, which %s support SSE/SSE2\n",
+               major,minor, result ? "DOES" : "does NOT");
+  }
+#endif
+  return result;
+#endif // AMD64
+}
+
+bool os::is_allocatable(size_t bytes) {
+#ifdef AMD64
+  // unused on amd64?
+  return true;
+#else
+
+  if (bytes < 2 * G) {
+    return true;
+  }
+
+  char* addr = reserve_memory(bytes, NULL);
+
+  if (addr != NULL) {
+    release_memory(addr, bytes);
+  }
+
+  return addr != NULL;
+#endif // AMD64
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// thread stack
+
+#ifdef AMD64
+size_t os::Bsd::min_stack_allowed  = 64 * K;
+
+// amd64: pthread on amd64 is always in floating stack mode
+bool os::Bsd::supports_variable_stack_size() {  return true; }
+#else
+size_t os::Bsd::min_stack_allowed  =  (48 DEBUG_ONLY(+4))*K;
+
+#ifdef __GNUC__
+#define GET_GS() ({int gs; __asm__ volatile("movw %%gs, %w0":"=q"(gs)); gs&0xffff;})
+#endif
+
+#ifdef _ALLBSD_SOURCE
+bool os::Bsd::supports_variable_stack_size() { return true; }
+#else
+// Test if pthread library can support variable thread stack size. BsdThreads
+// in fixed stack mode allocates 2M fixed slot for each thread. BsdThreads
+// in floating stack mode and NPTL support variable stack size.
+bool os::Bsd::supports_variable_stack_size() {
+  if (os::Bsd::is_NPTL()) {
+     // NPTL, yes
+     return true;
+
+  } else {
+    // Note: We can't control default stack size when creating a thread.
+    // If we use non-default stack size (pthread_attr_setstacksize), both
+    // floating stack and non-floating stack BsdThreads will return the
+    // same value. This makes it impossible to implement this function by
+    // detecting thread stack size directly.
+    //
+    // An alternative approach is to check %gs. Fixed-stack BsdThreads
+    // do not use %gs, so its value is 0. Floating-stack BsdThreads use
+    // %gs (either as LDT selector or GDT selector, depending on kernel)
+    // to access thread specific data.
+    //
+    // Note that %gs is a reserved glibc register since early 2001, so
+    // applications are not allowed to change its value (Ulrich Drepper from
+    // Redhat confirmed that all known offenders have been modified to use
+    // either %fs or TSD). In the worst case scenario, when VM is embedded in
+    // a native application that plays with %gs, we might see non-zero %gs
+    // even BsdThreads is running in fixed stack mode. As the result, we'll
+    // return true and skip _thread_safety_check(), so we may not be able to
+    // detect stack-heap collisions. But otherwise it's harmless.
+    //
+#ifdef __GNUC__
+    return (GET_GS() != 0);
+#else
+    return false;
+#endif
+  }
+}
+#endif
+#endif // AMD64
+
+// return default stack size for thr_type
+size_t os::Bsd::default_stack_size(os::ThreadType thr_type) {
+  // default stack size (compiler thread needs larger stack)
+#ifdef AMD64
+  size_t s = (thr_type == os::compiler_thread ? 4 * M : 1 * M);
+#else
+  size_t s = (thr_type == os::compiler_thread ? 2 * M : 512 * K);
+#endif // AMD64
+  return s;
+}
+
+size_t os::Bsd::default_guard_size(os::ThreadType thr_type) {
+  // Creating guard page is very expensive. Java thread has HotSpot
+  // guard page, only enable glibc guard page for non-Java threads.
+  return (thr_type == java_thread ? 0 : page_size());
+}
+
+// Java thread:
+//
+//   Low memory addresses
+//    +------------------------+
+//    |                        |\  JavaThread created by VM does not have glibc
+//    |    glibc guard page    | - guard, attached Java thread usually has
+//    |                        |/  1 page glibc guard.
+// P1 +------------------------+ Thread::stack_base() - Thread::stack_size()
+//    |                        |\
+//    |  HotSpot Guard Pages   | - red and yellow pages
+//    |                        |/
+//    +------------------------+ JavaThread::stack_yellow_zone_base()
+//    |                        |\
+//    |      Normal Stack      | -
+//    |                        |/
+// P2 +------------------------+ Thread::stack_base()
+//
+// Non-Java thread:
+//
+//   Low memory addresses
+//    +------------------------+
+//    |                        |\
+//    |  glibc guard page      | - usually 1 page
+//    |                        |/
+// P1 +------------------------+ Thread::stack_base() - Thread::stack_size()
+//    |                        |\
+//    |      Normal Stack      | -
+//    |                        |/
+// P2 +------------------------+ Thread::stack_base()
+//
+// ** P1 (aka bottom) and size ( P2 = P1 - size) are the address and stack size returned from
+//    pthread_attr_getstack()
+
+static void current_stack_region(address * bottom, size_t * size) {
+#ifdef __APPLE__
+  pthread_t self = pthread_self();
+  void *stacktop = pthread_get_stackaddr_np(self);
+  *size = pthread_get_stacksize_np(self);
+  *bottom = (address) stacktop - *size;
+#elif defined(__OpenBSD__)
+  stack_t ss;
+  int rslt = pthread_stackseg_np(pthread_self(), &ss);
+
+  if (rslt != 0)
+    fatal(err_msg("pthread_stackseg_np failed with err = %d", rslt));
+
+  *bottom = (address)((char *)ss.ss_sp - ss.ss_size);
+  *size   = ss.ss_size;
+#elif defined(_ALLBSD_SOURCE)
+  pthread_attr_t attr;
+
+  int rslt = pthread_attr_init(&attr);
+
+  // JVM needs to know exact stack location, abort if it fails
+  if (rslt != 0)
+    fatal(err_msg("pthread_attr_init failed with err = %d", rslt));
+
+  rslt = pthread_attr_get_np(pthread_self(), &attr);
+
+  if (rslt != 0)
+    fatal(err_msg("pthread_attr_get_np failed with err = %d", rslt));
+
+  if (pthread_attr_getstackaddr(&attr, (void **)bottom) != 0 ||
+    pthread_attr_getstacksize(&attr, size) != 0) {
+    fatal("Can not locate current stack attributes!");
+  }
+
+  pthread_attr_destroy(&attr);
+#else
+  if (os::Bsd::is_initial_thread()) {
+     // initial thread needs special handling because pthread_getattr_np()
+     // may return bogus value.
+     *bottom = os::Bsd::initial_thread_stack_bottom();
+     *size   = os::Bsd::initial_thread_stack_size();
+  } else {
+     pthread_attr_t attr;
+
+     int rslt = pthread_getattr_np(pthread_self(), &attr);
+
+     // JVM needs to know exact stack location, abort if it fails
+     if (rslt != 0) {
+       if (rslt == ENOMEM) {
+         vm_exit_out_of_memory(0, "pthread_getattr_np");
+       } else {
+         fatal(err_msg("pthread_getattr_np failed with errno = %d", rslt));
+       }
+     }
+
+     if (pthread_attr_getstack(&attr, (void **)bottom, size) != 0) {
+         fatal("Can not locate current stack attributes!");
+     }
+
+     pthread_attr_destroy(&attr);
+
+  }
+#endif
+  assert(os::current_stack_pointer() >= *bottom &&
+         os::current_stack_pointer() < *bottom + *size, "just checking");
+}
+
+address os::current_stack_base() {
+  address bottom;
+  size_t size;
+  current_stack_region(&bottom, &size);
+  return (bottom + size);
+}
+
+size_t os::current_stack_size() {
+  // stack size includes normal stack and HotSpot guard pages
+  address bottom;
+  size_t size;
+  current_stack_region(&bottom, &size);
+  return size;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// helper functions for fatal error handler
+
+void os::print_context(outputStream *st, void *context) {
+  if (context == NULL) return;
+
+  ucontext_t *uc = (ucontext_t*)context;
+  st->print_cr("Registers:");
+#ifdef AMD64
+  st->print(  "RAX=" INTPTR_FORMAT, uc->context_rax);
+  st->print(", RBX=" INTPTR_FORMAT, uc->context_rbx);
+  st->print(", RCX=" INTPTR_FORMAT, uc->context_rcx);
+  st->print(", RDX=" INTPTR_FORMAT, uc->context_rdx);
+  st->cr();
+  st->print(  "RSP=" INTPTR_FORMAT, uc->context_rsp);
+  st->print(", RBP=" INTPTR_FORMAT, uc->context_rbp);
+  st->print(", RSI=" INTPTR_FORMAT, uc->context_rsi);
+  st->print(", RDI=" INTPTR_FORMAT, uc->context_rdi);
+  st->cr();
+  st->print(  "R8 =" INTPTR_FORMAT, uc->context_r8);
+  st->print(", R9 =" INTPTR_FORMAT, uc->context_r9);
+  st->print(", R10=" INTPTR_FORMAT, uc->context_r10);
+  st->print(", R11=" INTPTR_FORMAT, uc->context_r11);
+  st->cr();
+  st->print(  "R12=" INTPTR_FORMAT, uc->context_r12);
+  st->print(", R13=" INTPTR_FORMAT, uc->context_r13);
+  st->print(", R14=" INTPTR_FORMAT, uc->context_r14);
+  st->print(", R15=" INTPTR_FORMAT, uc->context_r15);
+  st->cr();
+  st->print(  "RIP=" INTPTR_FORMAT, uc->context_rip);
+  st->print(", EFLAGS=" INTPTR_FORMAT, uc->context_flags);
+  st->print(", ERR=" INTPTR_FORMAT, uc->context_err);
+  st->cr();
+  st->print("  TRAPNO=" INTPTR_FORMAT, uc->context_trapno);
+#else
+  st->print(  "EAX=" INTPTR_FORMAT, uc->context_eax);
+  st->print(", EBX=" INTPTR_FORMAT, uc->context_ebx);
+  st->print(", ECX=" INTPTR_FORMAT, uc->context_ecx);
+  st->print(", EDX=" INTPTR_FORMAT, uc->context_edx);
+  st->cr();
+  st->print(  "ESP=" INTPTR_FORMAT, uc->context_esp);
+  st->print(", EBP=" INTPTR_FORMAT, uc->context_ebp);
+  st->print(", ESI=" INTPTR_FORMAT, uc->context_esi);
+  st->print(", EDI=" INTPTR_FORMAT, uc->context_edi);
+  st->cr();
+  st->print(  "EIP=" INTPTR_FORMAT, uc->context_eip);
+  st->print(", EFLAGS=" INTPTR_FORMAT, uc->context_eflags);
+#endif // AMD64
+  st->cr();
+  st->cr();
+
+  intptr_t *sp = (intptr_t *)os::Bsd::ucontext_get_sp(uc);
+  st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", sp);
+  print_hex_dump(st, (address)sp, (address)(sp + 8*sizeof(intptr_t)), sizeof(intptr_t));
+  st->cr();
+
+  // Note: it may be unsafe to inspect memory near pc. For example, pc may
+  // point to garbage if entry point in an nmethod is corrupted. Leave
+  // this at the end, and hope for the best.
+  address pc = os::Bsd::ucontext_get_pc(uc);
+  st->print_cr("Instructions: (pc=" PTR_FORMAT ")", pc);
+  print_hex_dump(st, pc - 32, pc + 32, sizeof(char));
+}
+
+void os::print_register_info(outputStream *st, void *context) {
+  if (context == NULL) return;
+
+  ucontext_t *uc = (ucontext_t*)context;
+
+  st->print_cr("Register to memory mapping:");
+  st->cr();
+
+  // this is horrendously verbose but the layout of the registers in the
+  // context does not match how we defined our abstract Register set, so
+  // we can't just iterate through the gregs area
+
+  // this is only for the "general purpose" registers
+
+#ifdef AMD64
+  st->print("RAX="); print_location(st, uc->context_rax);
+  st->print("RBX="); print_location(st, uc->context_rbx);
+  st->print("RCX="); print_location(st, uc->context_rcx);
+  st->print("RDX="); print_location(st, uc->context_rdx);
+  st->print("RSP="); print_location(st, uc->context_rsp);
+  st->print("RBP="); print_location(st, uc->context_rbp);
+  st->print("RSI="); print_location(st, uc->context_rsi);
+  st->print("RDI="); print_location(st, uc->context_rdi);
+  st->print("R8 ="); print_location(st, uc->context_r8);
+  st->print("R9 ="); print_location(st, uc->context_r9);
+  st->print("R10="); print_location(st, uc->context_r10);
+  st->print("R11="); print_location(st, uc->context_r11);
+  st->print("R12="); print_location(st, uc->context_r12);
+  st->print("R13="); print_location(st, uc->context_r13);
+  st->print("R14="); print_location(st, uc->context_r14);
+  st->print("R15="); print_location(st, uc->context_r15);
+#else
+  st->print("EAX="); print_location(st, uc->context_eax);
+  st->print("EBX="); print_location(st, uc->context_ebx);
+  st->print("ECX="); print_location(st, uc->context_ecx);
+  st->print("EDX="); print_location(st, uc->context_edx);
+  st->print("ESP="); print_location(st, uc->context_esp);
+  st->print("EBP="); print_location(st, uc->context_ebp);
+  st->print("ESI="); print_location(st, uc->context_esi);
+  st->print("EDI="); print_location(st, uc->context_edi);
+#endif // AMD64
+
+  st->cr();
+}
+
+void os::setup_fpu() {
+#ifndef AMD64
+  address fpu_cntrl = StubRoutines::addr_fpu_cntrl_wrd_std();
+  __asm__ volatile (  "fldcw (%0)" :
+                      : "r" (fpu_cntrl) : "memory");
+#endif // !AMD64
+}
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.hpp b/hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.hpp
new file mode 100644
index 0000000..7a4e710
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.hpp
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_X86_VM_OS_BSD_X86_HPP
+#define OS_CPU_BSD_X86_VM_OS_BSD_X86_HPP
+
+  static void setup_fpu();
+  static bool supports_sse();
+
+  static bool is_allocatable(size_t bytes);
+
+  // Used to register dynamic code cache area with the OS
+  // Note: Currently only used in 64 bit Windows implementations
+  static bool register_code_area(char *low, char *high) { return true; }
+
+#endif // OS_CPU_BSD_X86_VM_OS_BSD_X86_HPP
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/prefetch_bsd_x86.inline.hpp b/hotspot/src/os_cpu/bsd_x86/vm/prefetch_bsd_x86.inline.hpp
new file mode 100644
index 0000000..6da429b
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/prefetch_bsd_x86.inline.hpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_X86_VM_PREFETCH_BSD_X86_INLINE_HPP
+#define OS_CPU_BSD_X86_VM_PREFETCH_BSD_X86_INLINE_HPP
+
+#include "runtime/prefetch.hpp"
+
+
+inline void Prefetch::read (void *loc, intx interval) {
+#ifdef AMD64
+  __asm__ ("prefetcht0 (%0,%1,1)" : : "r" (loc), "r" (interval));
+#endif // AMD64
+}
+
+inline void Prefetch::write(void *loc, intx interval) {
+#ifdef AMD64
+
+  // Do not use the 3dnow prefetchw instruction.  It isn't supported on em64t.
+  //  __asm__ ("prefetchw (%0,%1,1)" : : "r" (loc), "r" (interval));
+  __asm__ ("prefetcht0 (%0,%1,1)" : : "r" (loc), "r" (interval));
+
+#endif // AMD64
+}
+
+#endif // OS_CPU_BSD_X86_VM_PREFETCH_BSD_X86_INLINE_HPP
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/threadLS_bsd_x86.cpp b/hotspot/src/os_cpu/bsd_x86/vm/threadLS_bsd_x86.cpp
new file mode 100644
index 0000000..3c76437
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/threadLS_bsd_x86.cpp
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "runtime/threadLocalStorage.hpp"
+#include "thread_bsd.inline.hpp"
+
+// Map stack pointer (%esp) to thread pointer for faster TLS access
+//
+// Here we use a flat table for better performance. Getting current thread
+// is down to one memory access (read _sp_map[%esp>>12]) in generated code
+// and two in runtime code (-fPIC code needs an extra load for _sp_map).
+//
+// This code assumes stack page is not shared by different threads. It works
+// in 32-bit VM when page size is 4K (or a multiple of 4K, if that matters).
+//
+// Notice that _sp_map is allocated in the bss segment, which is ZFOD
+// (zero-fill-on-demand). While it reserves 4M address space upfront,
+// actual memory pages are committed on demand.
+//
+// If an application creates and destroys a lot of threads, usually the
+// stack space freed by a thread will soon get reused by new thread
+// (this is especially true in NPTL or BsdThreads in fixed-stack mode).
+// No memory page in _sp_map is wasted.
+//
+// However, it's still possible that we might end up populating &
+// committing a large fraction of the 4M table over time, but the actual
+// amount of live data in the table could be quite small. The max wastage
+// is less than 4M bytes. If it becomes an issue, we could use madvise()
+// with MADV_DONTNEED to reclaim unused (i.e. all-zero) pages in _sp_map.
+// MADV_DONTNEED on Bsd keeps the virtual memory mapping, but zaps the
+// physical memory page (i.e. similar to MADV_FREE on Solaris).
+
+#ifndef AMD64
+Thread* ThreadLocalStorage::_sp_map[1UL << (SP_BITLENGTH - PAGE_SHIFT)];
+#endif // !AMD64
+
+void ThreadLocalStorage::generate_code_for_get_thread() {
+    // nothing we can do here for user-level thread
+}
+
+void ThreadLocalStorage::pd_init() {
+#ifndef AMD64
+  assert(align_size_down(os::vm_page_size(), PAGE_SIZE) == os::vm_page_size(),
+         "page size must be multiple of PAGE_SIZE");
+#endif // !AMD64
+}
+
+void ThreadLocalStorage::pd_set_thread(Thread* thread) {
+  os::thread_local_storage_at_put(ThreadLocalStorage::thread_index(), thread);
+
+#ifndef AMD64
+  address stack_top = os::current_stack_base();
+  size_t stack_size = os::current_stack_size();
+
+  for (address p = stack_top - stack_size; p < stack_top; p += PAGE_SIZE) {
+    // pd_set_thread() is called with non-NULL value when a new thread is
+    // created/attached, or with NULL value when a thread is about to exit.
+    // If both "thread" and the corresponding _sp_map[] entry are non-NULL,
+    // they should have the same value. Otherwise it might indicate that the
+    // stack page is shared by multiple threads. However, a more likely cause
+    // for this assertion to fail is that an attached thread exited without
+    // detaching itself from VM, which is a program error and could cause VM
+    // to crash.
+    assert(thread == NULL || _sp_map[(uintptr_t)p >> PAGE_SHIFT] == NULL ||
+           thread == _sp_map[(uintptr_t)p >> PAGE_SHIFT],
+           "thread exited without detaching from VM??");
+    _sp_map[(uintptr_t)p >> PAGE_SHIFT] = thread;
+  }
+#endif // !AMD64
+}
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/threadLS_bsd_x86.hpp b/hotspot/src/os_cpu/bsd_x86/vm/threadLS_bsd_x86.hpp
new file mode 100644
index 0000000..7fedb95
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/threadLS_bsd_x86.hpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_X86_VM_THREADLS_BSD_X86_HPP
+#define OS_CPU_BSD_X86_VM_THREADLS_BSD_X86_HPP
+
+  // Processor dependent parts of ThreadLocalStorage
+
+#ifndef AMD64
+  // map stack pointer to thread pointer - see notes in threadLS_bsd_x86.cpp
+  #define SP_BITLENGTH  32
+#ifndef PAGE_SHIFT
+  #define PAGE_SHIFT    12
+  #define PAGE_SIZE     (1UL << PAGE_SHIFT)
+#endif
+  static Thread* _sp_map[1UL << (SP_BITLENGTH - PAGE_SHIFT)];
+#endif // !AMD64
+
+public:
+
+#ifndef AMD64
+  static Thread** sp_map_addr() { return _sp_map; }
+#endif // !AMD64
+
+  static Thread* thread() {
+#ifdef AMD64
+    return (Thread*) os::thread_local_storage_at(thread_index());
+#else
+    uintptr_t sp;
+    __asm__ volatile ("movl %%esp, %0" : "=r" (sp));
+    return _sp_map[sp >> PAGE_SHIFT];
+#endif // AMD64
+  }
+
+#endif // OS_CPU_BSD_X86_VM_THREADLS_BSD_X86_HPP
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/thread_bsd_x86.cpp b/hotspot/src/os_cpu/bsd_x86/vm/thread_bsd_x86.cpp
new file mode 100644
index 0000000..e63c46e
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/thread_bsd_x86.cpp
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "runtime/frame.inline.hpp"
+#include "thread_bsd.inline.hpp"
+
+// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
+// currently interrupted by SIGPROF
+bool JavaThread::pd_get_top_frame_for_signal_handler(frame* fr_addr,
+  void* ucontext, bool isInJava) {
+
+  assert(Thread::current() == this, "caller must be current thread");
+  assert(this->is_Java_thread(), "must be JavaThread");
+
+  JavaThread* jt = (JavaThread *)this;
+
+  // If we have a last_Java_frame, then we should use it even if
+  // isInJava == true.  It should be more reliable than ucontext info.
+  if (jt->has_last_Java_frame()) {
+    *fr_addr = jt->pd_last_frame();
+    return true;
+  }
+
+  // At this point, we don't have a last_Java_frame, so
+  // we try to glean some information out of the ucontext
+  // if we were running Java code when SIGPROF came in.
+  if (isInJava) {
+    ucontext_t* uc = (ucontext_t*) ucontext;
+
+    intptr_t* ret_fp;
+    intptr_t* ret_sp;
+    ExtendedPC addr = os::Bsd::fetch_frame_from_ucontext(this, uc,
+      &ret_sp, &ret_fp);
+    if (addr.pc() == NULL || ret_sp == NULL ) {
+      // ucontext wasn't useful
+      return false;
+    }
+
+    frame ret_frame(ret_sp, ret_fp, addr.pc());
+    if (!ret_frame.safe_for_sender(jt)) {
+#ifdef COMPILER2
+      // C2 uses ebp as a general register see if NULL fp helps
+      frame ret_frame2(ret_sp, NULL, addr.pc());
+      if (!ret_frame2.safe_for_sender(jt)) {
+        // nothing else to try if the frame isn't good
+        return false;
+      }
+      ret_frame = ret_frame2;
+#else
+      // nothing else to try if the frame isn't good
+      return false;
+#endif /* COMPILER2 */
+    }
+    *fr_addr = ret_frame;
+    return true;
+  }
+
+  // nothing else to try
+  return false;
+}
+
+void JavaThread::cache_global_variables() { }
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/thread_bsd_x86.hpp b/hotspot/src/os_cpu/bsd_x86/vm/thread_bsd_x86.hpp
new file mode 100644
index 0000000..69dba9b
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/thread_bsd_x86.hpp
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_X86_VM_THREAD_BSD_X86_HPP
+#define OS_CPU_BSD_X86_VM_THREAD_BSD_X86_HPP
+
+ private:
+  void pd_initialize() {
+    _anchor.clear();
+  }
+
+  frame pd_last_frame() {
+    assert(has_last_Java_frame(), "must have last_Java_sp() when suspended");
+    if (_anchor.last_Java_pc() != NULL) {
+      return frame(_anchor.last_Java_sp(), _anchor.last_Java_fp(), _anchor.last_Java_pc());
+    } else {
+      // This will pick up pc from sp
+      return frame(_anchor.last_Java_sp(), _anchor.last_Java_fp());
+    }
+  }
+
+ public:
+  // Mutators are highly dangerous....
+  intptr_t* last_Java_fp()                       { return _anchor.last_Java_fp(); }
+  void  set_last_Java_fp(intptr_t* fp)           { _anchor.set_last_Java_fp(fp);   }
+
+  void set_base_of_stack_pointer(intptr_t* base_sp) {
+  }
+
+  static ByteSize last_Java_fp_offset()          {
+    return byte_offset_of(JavaThread, _anchor) + JavaFrameAnchor::last_Java_fp_offset();
+  }
+
+  intptr_t* base_of_stack_pointer() {
+    return NULL;
+  }
+  void record_base_of_stack_pointer() {
+  }
+
+  bool pd_get_top_frame_for_signal_handler(frame* fr_addr, void* ucontext,
+    bool isInJava);
+
+  // These routines are only used on cpu architectures that
+  // have separate register stacks (Itanium).
+  static bool register_stack_overflow() { return false; }
+  static void enable_register_stack_guard() {}
+  static void disable_register_stack_guard() {}
+
+#endif // OS_CPU_BSD_X86_VM_THREAD_BSD_X86_HPP
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp b/hotspot/src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp
new file mode 100644
index 0000000..210d5d9
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_X86_VM_VMSTRUCTS_BSD_X86_HPP
+#define OS_CPU_BSD_X86_VM_VMSTRUCTS_BSD_X86_HPP
+
+// These are the OS and CPU-specific fields, types and integer
+// constants required by the Serviceability Agent. This file is
+// referenced by vmStructs.cpp.
+
+#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \
+                                                                                                                                     \
+  /******************************/                                                                                                   \
+  /* Threads (NOTE: incomplete) */                                                                                                   \
+  /******************************/                                                                                                   \
+  nonstatic_field(OSThread,                      _thread_id,                                      pthread_t)                             \
+  nonstatic_field(OSThread,                      _pthread_id,                                     pthread_t)                         \
+  /* This must be the last entry, and must be present */                                                                             \
+  last_entry()
+
+
+#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \
+                                                                          \
+  /**********************/                                                \
+  /* Posix Thread IDs   */                                                \
+  /**********************/                                                \
+                                                                          \
+  declare_integer_type(pid_t)                                             \
+  declare_unsigned_integer_type(pthread_t)                                \
+                                                                          \
+  /* This must be the last entry, and must be present */                  \
+  last_entry()
+
+#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \
+                                                                        \
+  /* This must be the last entry, and must be present */                \
+  last_entry()
+
+#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \
+                                                                        \
+  /* This must be the last entry, and must be present */                \
+  last_entry()
+
+#endif // OS_CPU_BSD_X86_VM_VMSTRUCTS_BSD_X86_HPP
diff --git a/hotspot/src/os_cpu/bsd_x86/vm/vm_version_bsd_x86.cpp b/hotspot/src/os_cpu/bsd_x86/vm/vm_version_bsd_x86.cpp
new file mode 100644
index 0000000..d1c8c6b
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_x86/vm/vm_version_bsd_x86.cpp
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "runtime/os.hpp"
+#include "vm_version_x86.hpp"
diff --git a/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp b/hotspot/src/os_cpu/bsd_zero/vm/assembler_bsd_zero.cpp
similarity index 100%
copy from hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp
copy to hotspot/src/os_cpu/bsd_zero/vm/assembler_bsd_zero.cpp
diff --git a/hotspot/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp b/hotspot/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp
new file mode 100644
index 0000000..19027bd
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp
@@ -0,0 +1,323 @@
+/*
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2007, 2008, 2011 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_ZERO_VM_ATOMIC_BSD_ZERO_INLINE_HPP
+#define OS_CPU_BSD_ZERO_VM_ATOMIC_BSD_ZERO_INLINE_HPP
+
+#include "orderAccess_bsd_zero.inline.hpp"
+#include "runtime/atomic.hpp"
+#include "runtime/os.hpp"
+#include "vm_version_zero.hpp"
+
+// Implementation of class atomic
+
+#ifdef M68K
+
+/*
+ * __m68k_cmpxchg
+ *
+ * Atomically store newval in *ptr if *ptr is equal to oldval for user space.
+ * Returns newval on success and oldval if no exchange happened.
+ * This implementation is processor specific and works on
+ * 68020 68030 68040 and 68060.
+ *
+ * It will not work on ColdFire, 68000 and 68010 since they lack the CAS
+ * instruction.
+ * Using a kernelhelper would be better for arch complete implementation.
+ *
+ */
+
+static inline int __m68k_cmpxchg(int oldval, int newval, volatile int *ptr) {
+  int ret;
+  __asm __volatile ("cas%.l %0,%2,%1"
+                   : "=d" (ret), "+m" (*(ptr))
+                   : "d" (newval), "0" (oldval));
+  return ret;
+}
+
+/* Perform an atomic compare and swap: if the current value of `*PTR'
+   is OLDVAL, then write NEWVAL into `*PTR'.  Return the contents of
+   `*PTR' before the operation.*/
+static inline int m68k_compare_and_swap(volatile int *ptr,
+                                        int oldval,
+                                        int newval) {
+  for (;;) {
+      int prev = *ptr;
+      if (prev != oldval)
+        return prev;
+
+      if (__m68k_cmpxchg (prev, newval, ptr) == newval)
+        // Success.
+        return prev;
+
+      // We failed even though prev == oldval.  Try again.
+    }
+}
+
+/* Atomically add an int to memory.  */
+static inline int m68k_add_and_fetch(volatile int *ptr, int add_value) {
+  for (;;) {
+      // Loop until success.
+
+      int prev = *ptr;
+
+      if (__m68k_cmpxchg (prev, prev + add_value, ptr) == prev + add_value)
+        return prev + add_value;
+    }
+}
+
+/* Atomically write VALUE into `*PTR' and returns the previous
+   contents of `*PTR'.  */
+static inline int m68k_lock_test_and_set(volatile int *ptr, int newval) {
+  for (;;) {
+      // Loop until success.
+      int prev = *ptr;
+
+      if (__m68k_cmpxchg (prev, newval, ptr) == prev)
+        return prev;
+    }
+}
+#endif // M68K
+
+#ifdef ARM
+
+/*
+ * __kernel_cmpxchg
+ *
+ * Atomically store newval in *ptr if *ptr is equal to oldval for user space.
+ * Return zero if *ptr was changed or non-zero if no exchange happened.
+ * The C flag is also set if *ptr was changed to allow for assembly
+ * optimization in the calling code.
+ *
+ */
+
+typedef int (__kernel_cmpxchg_t)(int oldval, int newval, volatile int *ptr);
+#define __kernel_cmpxchg (*(__kernel_cmpxchg_t *) 0xffff0fc0)
+
+
+
+/* Perform an atomic compare and swap: if the current value of `*PTR'
+   is OLDVAL, then write NEWVAL into `*PTR'.  Return the contents of
+   `*PTR' before the operation.*/
+static inline int arm_compare_and_swap(volatile int *ptr,
+                                       int oldval,
+                                       int newval) {
+  for (;;) {
+      int prev = *ptr;
+      if (prev != oldval)
+        return prev;
+
+      if (__kernel_cmpxchg (prev, newval, ptr) == 0)
+        // Success.
+        return prev;
+
+      // We failed even though prev == oldval.  Try again.
+    }
+}
+
+/* Atomically add an int to memory.  */
+static inline int arm_add_and_fetch(volatile int *ptr, int add_value) {
+  for (;;) {
+      // Loop until a __kernel_cmpxchg succeeds.
+
+      int prev = *ptr;
+
+      if (__kernel_cmpxchg (prev, prev + add_value, ptr) == 0)
+        return prev + add_value;
+    }
+}
+
+/* Atomically write VALUE into `*PTR' and returns the previous
+   contents of `*PTR'.  */
+static inline int arm_lock_test_and_set(volatile int *ptr, int newval) {
+  for (;;) {
+      // Loop until a __kernel_cmpxchg succeeds.
+      int prev = *ptr;
+
+      if (__kernel_cmpxchg (prev, newval, ptr) == 0)
+        return prev;
+    }
+}
+#endif // ARM
+
+inline void Atomic::store(jint store_value, volatile jint* dest) {
+#if !defined(ARM) && !defined(M68K)
+  __sync_synchronize();
+#endif
+  *dest = store_value;
+}
+
+inline void Atomic::store_ptr(intptr_t store_value, intptr_t* dest) {
+#if !defined(ARM) && !defined(M68K)
+  __sync_synchronize();
+#endif
+  *dest = store_value;
+}
+
+inline jint Atomic::add(jint add_value, volatile jint* dest) {
+#ifdef ARM
+  return arm_add_and_fetch(dest, add_value);
+#else
+#ifdef M68K
+  return m68k_add_and_fetch(dest, add_value);
+#else
+  return __sync_add_and_fetch(dest, add_value);
+#endif // M68K
+#endif // ARM
+}
+
+inline intptr_t Atomic::add_ptr(intptr_t add_value, volatile intptr_t* dest) {
+#ifdef ARM
+  return arm_add_and_fetch(dest, add_value);
+#else
+#ifdef M68K
+  return m68k_add_and_fetch(dest, add_value);
+#else
+  return __sync_add_and_fetch(dest, add_value);
+#endif // M68K
+#endif // ARM
+}
+
+inline void* Atomic::add_ptr(intptr_t add_value, volatile void* dest) {
+  return (void *) add_ptr(add_value, (volatile intptr_t *) dest);
+}
+
+inline void Atomic::inc(volatile jint* dest) {
+  add(1, dest);
+}
+
+inline void Atomic::inc_ptr(volatile intptr_t* dest) {
+  add_ptr(1, dest);
+}
+
+inline void Atomic::inc_ptr(volatile void* dest) {
+  add_ptr(1, dest);
+}
+
+inline void Atomic::dec(volatile jint* dest) {
+  add(-1, dest);
+}
+
+inline void Atomic::dec_ptr(volatile intptr_t* dest) {
+  add_ptr(-1, dest);
+}
+
+inline void Atomic::dec_ptr(volatile void* dest) {
+  add_ptr(-1, dest);
+}
+
+inline jint Atomic::xchg(jint exchange_value, volatile jint* dest) {
+#ifdef ARM
+  return arm_lock_test_and_set(dest, exchange_value);
+#else
+#ifdef M68K
+  return m68k_lock_test_and_set(dest, exchange_value);
+#else
+  // __sync_lock_test_and_set is a bizarrely named atomic exchange
+  // operation.  Note that some platforms only support this with the
+  // limitation that the only valid value to store is the immediate
+  // constant 1.  There is a test for this in JNI_CreateJavaVM().
+  return __sync_lock_test_and_set (dest, exchange_value);
+#endif // M68K
+#endif // ARM
+}
+
+inline intptr_t Atomic::xchg_ptr(intptr_t exchange_value,
+                                 volatile intptr_t* dest) {
+#ifdef ARM
+  return arm_lock_test_and_set(dest, exchange_value);
+#else
+#ifdef M68K
+  return m68k_lock_test_and_set(dest, exchange_value);
+#else
+  return __sync_lock_test_and_set (dest, exchange_value);
+#endif // M68K
+#endif // ARM
+}
+
+inline void* Atomic::xchg_ptr(void* exchange_value, volatile void* dest) {
+  return (void *) xchg_ptr((intptr_t) exchange_value,
+                           (volatile intptr_t*) dest);
+}
+
+inline jint Atomic::cmpxchg(jint exchange_value,
+                            volatile jint* dest,
+                            jint compare_value) {
+#ifdef ARM
+  return arm_compare_and_swap(dest, compare_value, exchange_value);
+#else
+#ifdef M68K
+  return m68k_compare_and_swap(dest, compare_value, exchange_value);
+#else
+  return __sync_val_compare_and_swap(dest, compare_value, exchange_value);
+#endif // M68K
+#endif // ARM
+}
+
+inline jlong Atomic::cmpxchg(jlong exchange_value,
+                             volatile jlong* dest,
+                             jlong compare_value) {
+
+  return __sync_val_compare_and_swap(dest, compare_value, exchange_value);
+}
+
+inline intptr_t Atomic::cmpxchg_ptr(intptr_t exchange_value,
+                                    volatile intptr_t* dest,
+                                    intptr_t compare_value) {
+#ifdef ARM
+  return arm_compare_and_swap(dest, compare_value, exchange_value);
+#else
+#ifdef M68K
+  return m68k_compare_and_swap(dest, compare_value, exchange_value);
+#else
+  return __sync_val_compare_and_swap(dest, compare_value, exchange_value);
+#endif // M68K
+#endif // ARM
+}
+
+inline void* Atomic::cmpxchg_ptr(void* exchange_value,
+                                 volatile void* dest,
+                                 void* compare_value) {
+
+  return (void *) cmpxchg_ptr((intptr_t) exchange_value,
+                              (volatile intptr_t*) dest,
+                              (intptr_t) compare_value);
+}
+
+inline jlong Atomic::load(volatile jlong* src) {
+  volatile jlong dest;
+  os::atomic_copy64(src, &dest);
+  return dest;
+}
+
+inline void Atomic::store(jlong store_value, jlong* dest) {
+  os::atomic_copy64((volatile jlong*)&store_value, (volatile jlong*)dest);
+}
+
+inline void Atomic::store(jlong store_value, volatile jlong* dest) {
+  os::atomic_copy64((volatile jlong*)&store_value, dest);
+}
+
+#endif // OS_CPU_BSD_ZERO_VM_ATOMIC_BSD_ZERO_INLINE_HPP
diff --git a/hotspot/src/os_cpu/bsd_zero/vm/bytes_bsd_zero.inline.hpp b/hotspot/src/os_cpu/bsd_zero/vm/bytes_bsd_zero.inline.hpp
new file mode 100644
index 0000000..b8217b4
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_zero/vm/bytes_bsd_zero.inline.hpp
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_ZERO_VM_BYTES_BSD_ZERO_INLINE_HPP
+#define OS_CPU_BSD_ZERO_VM_BYTES_BSD_ZERO_INLINE_HPP
+
+// Efficient swapping of data bytes from Java byte
+// ordering to native byte ordering and vice versa.
+
+#ifdef __APPLE__
+#include <libkern/OSByteOrder.h>
+#else
+#  include <sys/endian.h>
+#endif
+
+#if defined(__APPLE__)
+#  define bswap_16(x)   OSSwapInt16(x)
+#  define bswap_32(x)   OSSwapInt32(x)
+#  define bswap_64(x)   OSSwapInt64(x)
+#elif defined(__OpenBSD__)
+#  define bswap_16(x)   swap16(x)
+#  define bswap_32(x)   swap32(x)
+#  define bswap_64(x)   swap64(x)
+#elif defined(__NetBSD__)
+#  define bswap_16(x)   bswap16(x)
+#  define bswap_32(x)   bswap32(x)
+#  define bswap_64(x)   bswap64(x)
+#else
+#  define bswap_16(x) __bswap16(x)
+#  define bswap_32(x) __bswap32(x)
+#  define bswap_64(x) __bswap64(x)
+#endif
+
+inline u2 Bytes::swap_u2(u2 x) {
+  return bswap_16(x);
+}
+
+inline u4 Bytes::swap_u4(u4 x) {
+  return bswap_32(x);
+}
+
+inline u8 Bytes::swap_u8(u8 x) {
+  return bswap_64(x);
+}
+
+#endif // OS_CPU_BSD_ZERO_VM_BYTES_BSD_ZERO_INLINE_HPP
diff --git a/hotspot/src/os_cpu/bsd_zero/vm/globals_bsd_zero.hpp b/hotspot/src/os_cpu/bsd_zero/vm/globals_bsd_zero.hpp
new file mode 100644
index 0000000..57e2759
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_zero/vm/globals_bsd_zero.hpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2007, 2008, 2010 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_ZERO_VM_GLOBALS_BSD_ZERO_HPP
+#define OS_CPU_BSD_ZERO_VM_GLOBALS_BSD_ZERO_HPP
+
+//
+// Set the default values for platform dependent flags used by the
+// runtime system.  See globals.hpp for details of what they do.
+//
+
+define_pd_global(bool,  DontYieldALot,           false);
+define_pd_global(intx,  ThreadStackSize,         1536);
+#ifdef _LP64
+define_pd_global(intx,  VMThreadStackSize,       1024);
+#else
+define_pd_global(intx,  VMThreadStackSize,       512);
+#endif // _LP64
+define_pd_global(intx,  CompilerThreadStackSize, 0);
+define_pd_global(uintx, JVMInvokeMethodSlack,    8192);
+
+define_pd_global(bool,  UseVectoredExceptions,   false);
+// Only used on 64 bit platforms
+define_pd_global(uintx, HeapBaseMinAddress,      2*G);
+
+#endif // OS_CPU_BSD_ZERO_VM_GLOBALS_BSD_ZERO_HPP
diff --git a/hotspot/src/os_cpu/bsd_zero/vm/orderAccess_bsd_zero.inline.hpp b/hotspot/src/os_cpu/bsd_zero/vm/orderAccess_bsd_zero.inline.hpp
new file mode 100644
index 0000000..7f8e78b
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_zero/vm/orderAccess_bsd_zero.inline.hpp
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2007, 2008, 2009 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_ZERO_VM_ORDERACCESS_BSD_ZERO_INLINE_HPP
+#define OS_CPU_BSD_ZERO_VM_ORDERACCESS_BSD_ZERO_INLINE_HPP
+
+#include "runtime/orderAccess.hpp"
+#include "vm_version_zero.hpp"
+
+#ifdef ARM
+
+/*
+ * ARM Kernel helper for memory barrier.
+ * Using __asm __volatile ("":::"memory") does not work reliable on ARM
+ * and gcc __sync_synchronize(); implementation does not use the kernel
+ * helper for all gcc versions so it is unreliable to use as well.
+ */
+typedef void (__kernel_dmb_t) (void);
+#define __kernel_dmb (*(__kernel_dmb_t *) 0xffff0fa0)
+
+#define FULL_MEM_BARRIER __kernel_dmb()
+#define READ_MEM_BARRIER __kernel_dmb()
+#define WRITE_MEM_BARRIER __kernel_dmb()
+
+#else // ARM
+
+#define FULL_MEM_BARRIER __sync_synchronize()
+
+#ifdef PPC
+
+#ifdef __NO_LWSYNC__
+#define READ_MEM_BARRIER __asm __volatile ("sync":::"memory")
+#define WRITE_MEM_BARRIER __asm __volatile ("sync":::"memory")
+#else
+#define READ_MEM_BARRIER __asm __volatile ("lwsync":::"memory")
+#define WRITE_MEM_BARRIER __asm __volatile ("lwsync":::"memory")
+#endif
+
+#else // PPC
+
+#define READ_MEM_BARRIER __asm __volatile ("":::"memory")
+#define WRITE_MEM_BARRIER __asm __volatile ("":::"memory")
+
+#endif // PPC
+
+#endif // ARM
+
+
+inline void OrderAccess::loadload()   { acquire(); }
+inline void OrderAccess::storestore() { release(); }
+inline void OrderAccess::loadstore()  { acquire(); }
+inline void OrderAccess::storeload()  { fence(); }
+
+inline void OrderAccess::acquire() {
+  READ_MEM_BARRIER;
+}
+
+inline void OrderAccess::release() {
+  WRITE_MEM_BARRIER;
+}
+
+inline void OrderAccess::fence() {
+  FULL_MEM_BARRIER;
+}
+
+inline jbyte    OrderAccess::load_acquire(volatile jbyte*   p) { jbyte data = *p; acquire(); return data; }
+inline jshort   OrderAccess::load_acquire(volatile jshort*  p) { jshort data = *p; acquire(); return data; }
+inline jint     OrderAccess::load_acquire(volatile jint*    p) { jint data = *p; acquire(); return data; }
+inline jlong    OrderAccess::load_acquire(volatile jlong*   p) {
+  jlong tmp;
+  os::atomic_copy64(p, &tmp);
+  acquire();
+  return tmp;
+}
+inline jubyte    OrderAccess::load_acquire(volatile jubyte*   p) { jubyte data = *p; acquire(); return data; }
+inline jushort   OrderAccess::load_acquire(volatile jushort*  p) { jushort data = *p; acquire(); return data; }
+inline juint     OrderAccess::load_acquire(volatile juint*    p) { juint data = *p; acquire(); return data; }
+inline julong   OrderAccess::load_acquire(volatile julong*  p) {
+  julong tmp;
+  os::atomic_copy64(p, &tmp);
+  acquire();
+  return tmp;
+}
+inline jfloat   OrderAccess::load_acquire(volatile jfloat*  p) { jfloat data = *p; acquire(); return data; }
+inline jdouble  OrderAccess::load_acquire(volatile jdouble* p) {
+  jdouble tmp;
+  os::atomic_copy64(p, &tmp);
+  acquire();
+  return tmp;
+}
+
+inline intptr_t OrderAccess::load_ptr_acquire(volatile intptr_t*   p) {
+  intptr_t data = *p;
+  acquire();
+  return data;
+}
+inline void*    OrderAccess::load_ptr_acquire(volatile void*       p) {
+  void *data = *(void* volatile *)p;
+  acquire();
+  return data;
+}
+inline void*    OrderAccess::load_ptr_acquire(const volatile void* p) {
+  void *data = *(void* const volatile *)p;
+  acquire();
+  return data;
+}
+
+inline void     OrderAccess::release_store(volatile jbyte*   p, jbyte   v) { release(); *p = v; }
+inline void     OrderAccess::release_store(volatile jshort*  p, jshort  v) { release(); *p = v; }
+inline void     OrderAccess::release_store(volatile jint*    p, jint    v) { release(); *p = v; }
+inline void     OrderAccess::release_store(volatile jlong*   p, jlong   v)
+{ release(); os::atomic_copy64(&v, p); }
+inline void     OrderAccess::release_store(volatile jubyte*  p, jubyte  v) { release(); *p = v; }
+inline void     OrderAccess::release_store(volatile jushort* p, jushort v) { release(); *p = v; }
+inline void     OrderAccess::release_store(volatile juint*   p, juint   v) { release(); *p = v; }
+inline void     OrderAccess::release_store(volatile julong*  p, julong  v)
+{ release(); os::atomic_copy64(&v, p); }
+inline void     OrderAccess::release_store(volatile jfloat*  p, jfloat  v) { release(); *p = v; }
+inline void     OrderAccess::release_store(volatile jdouble* p, jdouble v)
+{ release(); os::atomic_copy64(&v, p); }
+
+inline void     OrderAccess::release_store_ptr(volatile intptr_t* p, intptr_t v) { release(); *p = v; }
+inline void     OrderAccess::release_store_ptr(volatile void*     p, void*    v)
+{ release(); *(void* volatile *)p = v; }
+
+inline void     OrderAccess::store_fence(jbyte*   p, jbyte   v) { *p = v; fence(); }
+inline void     OrderAccess::store_fence(jshort*  p, jshort  v) { *p = v; fence(); }
+inline void     OrderAccess::store_fence(jint*    p, jint    v) { *p = v; fence(); }
+inline void     OrderAccess::store_fence(jlong*   p, jlong   v) { os::atomic_copy64(&v, p); fence(); }
+inline void     OrderAccess::store_fence(jubyte*  p, jubyte  v) { *p = v; fence(); }
+inline void     OrderAccess::store_fence(jushort* p, jushort v) { *p = v; fence(); }
+inline void     OrderAccess::store_fence(juint*   p, juint   v) { *p = v; fence(); }
+inline void     OrderAccess::store_fence(julong*  p, julong  v) { os::atomic_copy64(&v, p); fence(); }
+inline void     OrderAccess::store_fence(jfloat*  p, jfloat  v) { *p = v; fence(); }
+inline void     OrderAccess::store_fence(jdouble* p, jdouble v) { os::atomic_copy64(&v, p); fence(); }
+
+inline void     OrderAccess::store_ptr_fence(intptr_t* p, intptr_t v) { *p = v; fence(); }
+inline void     OrderAccess::store_ptr_fence(void**    p, void*    v) { *p = v; fence(); }
+
+inline void     OrderAccess::release_store_fence(volatile jbyte*   p, jbyte   v) { release_store(p, v); fence(); }
+inline void     OrderAccess::release_store_fence(volatile jshort*  p, jshort  v) { release_store(p, v); fence(); }
+inline void     OrderAccess::release_store_fence(volatile jint*    p, jint    v) { release_store(p, v); fence(); }
+inline void     OrderAccess::release_store_fence(volatile jlong*   p, jlong   v) { release_store(p, v); fence(); }
+inline void     OrderAccess::release_store_fence(volatile jubyte*  p, jubyte  v) { release_store(p, v); fence(); }
+inline void     OrderAccess::release_store_fence(volatile jushort* p, jushort v) { release_store(p, v); fence(); }
+inline void     OrderAccess::release_store_fence(volatile juint*   p, juint   v) { release_store(p, v); fence(); }
+inline void     OrderAccess::release_store_fence(volatile julong*  p, julong  v) { release_store(p, v); fence(); }
+inline void     OrderAccess::release_store_fence(volatile jfloat*  p, jfloat  v) { release_store(p, v); fence(); }
+inline void     OrderAccess::release_store_fence(volatile jdouble* p, jdouble v) { release_store(p, v); fence(); }
+
+inline void     OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { release_store_ptr(p, v); fence(); }
+inline void     OrderAccess::release_store_ptr_fence(volatile void*     p, void*    v) { release_store_ptr(p, v); fence(); }
+
+#endif // OS_CPU_BSD_ZERO_VM_ORDERACCESS_BSD_ZERO_INLINE_HPP
diff --git a/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp b/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
new file mode 100644
index 0000000..675ee54
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
@@ -0,0 +1,558 @@
+/*
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#if defined(_ALLBSD_SOURCE) && !defined(__APPLE__) && !defined(__NetBSD__)
+#include <pthread.h>
+# include <pthread_np.h> /* For pthread_attr_get_np */
+#endif
+
+// no precompiled headers
+#include "assembler_zero.inline.hpp"
+#include "classfile/classLoader.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "code/icBuffer.hpp"
+#include "code/vtableStubs.hpp"
+#include "interpreter/interpreter.hpp"
+#include "jvm_bsd.h"
+#include "memory/allocation.inline.hpp"
+#include "mutex_bsd.inline.hpp"
+#include "nativeInst_zero.hpp"
+#include "os_share_bsd.hpp"
+#include "prims/jniFastGetField.hpp"
+#include "prims/jvm.h"
+#include "prims/jvm_misc.hpp"
+#include "runtime/arguments.hpp"
+#include "runtime/extendedPC.hpp"
+#include "runtime/frame.inline.hpp"
+#include "runtime/interfaceSupport.hpp"
+#include "runtime/java.hpp"
+#include "runtime/javaCalls.hpp"
+#include "runtime/mutexLocker.hpp"
+#include "runtime/osThread.hpp"
+#include "runtime/sharedRuntime.hpp"
+#include "runtime/stubRoutines.hpp"
+#include "runtime/timer.hpp"
+#include "thread_bsd.inline.hpp"
+#include "utilities/events.hpp"
+#include "utilities/vmError.hpp"
+#ifdef COMPILER1
+#include "c1/c1_Runtime1.hpp"
+#endif
+#ifdef COMPILER2
+#include "opto/runtime.hpp"
+#endif
+
+address os::current_stack_pointer() {
+  address dummy = (address) &dummy;
+  return dummy;
+}
+
+frame os::get_sender_for_C_frame(frame* fr) {
+  ShouldNotCallThis();
+}
+
+frame os::current_frame() {
+  // The only thing that calls this is the stack printing code in
+  // VMError::report:
+  //   - Step 110 (printing stack bounds) uses the sp in the frame
+  //     to determine the amount of free space on the stack.  We
+  //     set the sp to a close approximation of the real value in
+  //     order to allow this step to complete.
+  //   - Step 120 (printing native stack) tries to walk the stack.
+  //     The frame we create has a NULL pc, which is ignored as an
+  //     invalid frame.
+  frame dummy = frame();
+  dummy.set_sp((intptr_t *) current_stack_pointer());
+  return dummy;
+}
+
+char* os::non_memory_address_word() {
+  // Must never look like an address returned by reserve_memory,
+  // even in its subfields (as defined by the CPU immediate fields,
+  // if the CPU splits constants across multiple instructions).
+#ifdef SPARC
+  // On SPARC, 0 != %hi(any real address), because there is no
+  // allocation in the first 1Kb of the virtual address space.
+  return (char *) 0;
+#else
+  // This is the value for x86; works pretty well for PPC too.
+  return (char *) -1;
+#endif // SPARC
+}
+
+void os::initialize_thread() {
+  // Nothing to do.
+}
+
+address os::Bsd::ucontext_get_pc(ucontext_t* uc) {
+  ShouldNotCallThis();
+}
+
+ExtendedPC os::fetch_frame_from_context(void* ucVoid,
+                                        intptr_t** ret_sp,
+                                        intptr_t** ret_fp) {
+  ShouldNotCallThis();
+}
+
+frame os::fetch_frame_from_context(void* ucVoid) {
+  ShouldNotCallThis();
+}
+
+extern "C" JNIEXPORT int
+JVM_handle_bsd_signal(int sig,
+                        siginfo_t* info,
+                        void* ucVoid,
+                        int abort_if_unrecognized) {
+  ucontext_t* uc = (ucontext_t*) ucVoid;
+
+  Thread* t = ThreadLocalStorage::get_thread_slow();
+
+  SignalHandlerMark shm(t);
+
+  // Note: it's not uncommon that JNI code uses signal/sigset to
+  // install then restore certain signal handler (e.g. to temporarily
+  // block SIGPIPE, or have a SIGILL handler when detecting CPU
+  // type). When that happens, JVM_handle_bsd_signal() might be
+  // invoked with junk info/ucVoid. To avoid unnecessary crash when
+  // libjsig is not preloaded, try handle signals that do not require
+  // siginfo/ucontext first.
+
+  if (sig == SIGPIPE || sig == SIGXFSZ) {
+    // allow chained handler to go first
+    if (os::Bsd::chained_handler(sig, info, ucVoid)) {
+      return true;
+    } else {
+      if (PrintMiscellaneous && (WizardMode || Verbose)) {
+        char buf[64];
+        warning("Ignoring %s - see bugs 4229104 or 646499219",
+                os::exception_name(sig, buf, sizeof(buf)));
+      }
+      return true;
+    }
+  }
+
+  JavaThread* thread = NULL;
+  VMThread* vmthread = NULL;
+  if (os::Bsd::signal_handlers_are_installed) {
+    if (t != NULL ){
+      if(t->is_Java_thread()) {
+        thread = (JavaThread*)t;
+      }
+      else if(t->is_VM_thread()){
+        vmthread = (VMThread *)t;
+      }
+    }
+  }
+
+  if (info != NULL && thread != NULL) {
+    // Handle ALL stack overflow variations here
+    if (sig == SIGSEGV) {
+      address addr = (address) info->si_addr;
+
+      // check if fault address is within thread stack
+      if (addr < thread->stack_base() &&
+          addr >= thread->stack_base() - thread->stack_size()) {
+        // stack overflow
+        if (thread->in_stack_yellow_zone(addr)) {
+          thread->disable_stack_yellow_zone();
+          ShouldNotCallThis();
+        }
+        else if (thread->in_stack_red_zone(addr)) {
+          thread->disable_stack_red_zone();
+          ShouldNotCallThis();
+        }
+#ifndef _ALLBSD_SOURCE
+        else {
+          // Accessing stack address below sp may cause SEGV if
+          // current thread has MAP_GROWSDOWN stack. This should
+          // only happen when current thread was created by user
+          // code with MAP_GROWSDOWN flag and then attached to VM.
+          // See notes in os_bsd.cpp.
+          if (thread->osthread()->expanding_stack() == 0) {
+            thread->osthread()->set_expanding_stack();
+            if (os::Bsd::manually_expand_stack(thread, addr)) {
+              thread->osthread()->clear_expanding_stack();
+              return true;
+            }
+            thread->osthread()->clear_expanding_stack();
+          }
+          else {
+            fatal("recursive segv. expanding stack.");
+          }
+        }
+#endif
+      }
+    }
+
+    /*if (thread->thread_state() == _thread_in_Java) {
+      ShouldNotCallThis();
+    }
+    else*/ if (thread->thread_state() == _thread_in_vm &&
+               sig == SIGBUS && thread->doing_unsafe_access()) {
+      ShouldNotCallThis();
+    }
+
+    // jni_fast_Get<Primitive>Field can trap at certain pc's if a GC
+    // kicks in and the heap gets shrunk before the field access.
+    /*if (sig == SIGSEGV || sig == SIGBUS) {
+      address addr = JNI_FastGetField::find_slowcase_pc(pc);
+      if (addr != (address)-1) {
+        stub = addr;
+      }
+    }*/
+
+    // Check to see if we caught the safepoint code in the process
+    // of write protecting the memory serialization page.  It write
+    // enables the page immediately after protecting it so we can
+    // just return to retry the write.
+    if (sig == SIGSEGV &&
+        os::is_memory_serialize_page(thread, (address) info->si_addr)) {
+      // Block current thread until permission is restored.
+      os::block_on_serialize_page_trap();
+      return true;
+    }
+  }
+
+  // signal-chaining
+  if (os::Bsd::chained_handler(sig, info, ucVoid)) {
+     return true;
+  }
+
+  if (!abort_if_unrecognized) {
+    // caller wants another chance, so give it to him
+    return false;
+  }
+
+#ifndef PRODUCT
+  if (sig == SIGSEGV) {
+    fatal("\n#"
+          "\n#    /--------------------\\"
+          "\n#    | segmentation fault |"
+          "\n#    \\---\\ /--------------/"
+          "\n#        /"
+          "\n#    [-]        |\\_/|    "
+          "\n#    (+)=C      |o o|__  "
+          "\n#    | |        =-*-=__\\ "
+          "\n#    OOO        c_c_(___)");
+  }
+#endif // !PRODUCT
+
+  const char *fmt = "caught unhandled signal %d";
+  char buf[64];
+
+  sprintf(buf, fmt, sig);
+  fatal(buf);
+}
+
+void os::Bsd::init_thread_fpu_state(void) {
+  // Nothing to do
+}
+
+#ifndef _ALLBSD_SOURCE
+int os::Bsd::get_fpu_control_word() {
+  ShouldNotCallThis();
+}
+
+void os::Bsd::set_fpu_control_word(int fpu) {
+  ShouldNotCallThis();
+}
+#endif
+
+bool os::is_allocatable(size_t bytes) {
+#ifdef _LP64
+  return true;
+#else
+  if (bytes < 2 * G) {
+    return true;
+  }
+
+  char* addr = reserve_memory(bytes, NULL);
+
+  if (addr != NULL) {
+    release_memory(addr, bytes);
+  }
+
+  return addr != NULL;
+#endif // _LP64
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// thread stack
+
+size_t os::Bsd::min_stack_allowed = 64 * K;
+
+bool os::Bsd::supports_variable_stack_size() {
+  return true;
+}
+
+size_t os::Bsd::default_stack_size(os::ThreadType thr_type) {
+#ifdef _LP64
+  size_t s = (thr_type == os::compiler_thread ? 4 * M : 1 * M);
+#else
+  size_t s = (thr_type == os::compiler_thread ? 2 * M : 512 * K);
+#endif // _LP64
+  return s;
+}
+
+size_t os::Bsd::default_guard_size(os::ThreadType thr_type) {
+  // Only enable glibc guard pages for non-Java threads
+  // (Java threads have HotSpot guard pages)
+  return (thr_type == java_thread ? 0 : page_size());
+}
+
+static void current_stack_region(address *bottom, size_t *size) {
+  address stack_bottom;
+  address stack_top;
+  size_t stack_bytes;
+
+#ifdef __APPLE__
+  pthread_t self = pthread_self();
+  stack_top = (address) pthread_get_stackaddr_np(self);
+  stack_bytes = pthread_get_stacksize_np(self);
+  stack_bottom = stack_top - stack_bytes;
+#elif defined(__OpenBSD__)
+  stack_t ss;
+  int rslt = pthread_stackseg_np(pthread_self(), &ss);
+
+  if (rslt != 0)
+    fatal(err_msg("pthread_stackseg_np failed with err = %d", rslt));
+
+  stack_top = (address) ss.ss_sp;
+  stack_bytes  = ss.ss_size;
+  stack_bottom = stack_top - stack_bytes;
+#elif defined(_ALLBSD_SOURCE)
+  pthread_attr_t attr;
+
+  int rslt = pthread_attr_init(&attr);
+
+  // JVM needs to know exact stack location, abort if it fails
+  if (rslt != 0)
+    fatal(err_msg("pthread_attr_init failed with err = %d", rslt));
+
+  rslt = pthread_attr_get_np(pthread_self(), &attr);
+
+  if (rslt != 0)
+    fatal(err_msg("pthread_attr_get_np failed with err = %d", rslt));
+
+  if (pthread_attr_getstackaddr(&attr, (void **) &stack_bottom) != 0 ||
+      pthread_attr_getstacksize(&attr, &stack_bytes) != 0) {
+    fatal("Can not locate current stack attributes!");
+  }
+
+  pthread_attr_destroy(&attr);
+
+  stack_top = stack_bottom + stack_bytes;
+#else /* Linux */
+  pthread_attr_t attr;
+  int res = pthread_getattr_np(pthread_self(), &attr);
+  if (res != 0) {
+    if (res == ENOMEM) {
+      vm_exit_out_of_memory(0, "pthread_getattr_np");
+    }
+    else {
+      fatal(err_msg("pthread_getattr_np failed with errno = %d", res));
+    }
+  }
+
+  res = pthread_attr_getstack(&attr, (void **) &stack_bottom, &stack_bytes);
+  if (res != 0) {
+    fatal(err_msg("pthread_attr_getstack failed with errno = %d", res));
+  }
+  stack_top = stack_bottom + stack_bytes;
+
+  // The block of memory returned by pthread_attr_getstack() includes
+  // guard pages where present.  We need to trim these off.
+  size_t page_bytes = os::Bsd::page_size();
+  assert(((intptr_t) stack_bottom & (page_bytes - 1)) == 0, "unaligned stack");
+
+  size_t guard_bytes;
+  res = pthread_attr_getguardsize(&attr, &guard_bytes);
+  if (res != 0) {
+    fatal(err_msg("pthread_attr_getguardsize failed with errno = %d", res));
+  }
+  int guard_pages = align_size_up(guard_bytes, page_bytes) / page_bytes;
+  assert(guard_bytes == guard_pages * page_bytes, "unaligned guard");
+
+#ifdef IA64
+  // IA64 has two stacks sharing the same area of memory, a normal
+  // stack growing downwards and a register stack growing upwards.
+  // Guard pages, if present, are in the centre.  This code splits
+  // the stack in two even without guard pages, though in theory
+  // there's nothing to stop us allocating more to the normal stack
+  // or more to the register stack if one or the other were found
+  // to grow faster.
+  int total_pages = align_size_down(stack_bytes, page_bytes) / page_bytes;
+  stack_bottom += (total_pages - guard_pages) / 2 * page_bytes;
+#endif // IA64
+
+  stack_bottom += guard_bytes;
+
+  pthread_attr_destroy(&attr);
+
+  // The initial thread has a growable stack, and the size reported
+  // by pthread_attr_getstack is the maximum size it could possibly
+  // be given what currently mapped.  This can be huge, so we cap it.
+  if (os::Bsd::is_initial_thread()) {
+    stack_bytes = stack_top - stack_bottom;
+
+    if (stack_bytes > JavaThread::stack_size_at_create())
+      stack_bytes = JavaThread::stack_size_at_create();
+
+    stack_bottom = stack_top - stack_bytes;
+  }
+#endif
+
+  assert(os::current_stack_pointer() >= stack_bottom, "should do");
+  assert(os::current_stack_pointer() < stack_top, "should do");
+
+  *bottom = stack_bottom;
+  *size = stack_top - stack_bottom;
+}
+
+address os::current_stack_base() {
+  address bottom;
+  size_t size;
+  current_stack_region(&bottom, &size);
+  return bottom + size;
+}
+
+size_t os::current_stack_size() {
+  // stack size includes normal stack and HotSpot guard pages
+  address bottom;
+  size_t size;
+  current_stack_region(&bottom, &size);
+  return size;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// helper functions for fatal error handler
+
+void os::print_context(outputStream* st, void* context) {
+  ShouldNotCallThis();
+}
+
+void os::print_register_info(outputStream *st, void *context) {
+  ShouldNotCallThis();
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// Stubs for things that would be in bsd_zero.s if it existed.
+// You probably want to disassemble these monkeys to check they're ok.
+
+extern "C" {
+  int SpinPause() {
+  }
+
+  int SafeFetch32(int *adr, int errValue) {
+    int value = errValue;
+    value = *adr;
+    return value;
+  }
+  intptr_t SafeFetchN(intptr_t *adr, intptr_t errValue) {
+    intptr_t value = errValue;
+    value = *adr;
+    return value;
+  }
+
+  void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
+    if (from > to) {
+      jshort *end = from + count;
+      while (from < end)
+        *(to++) = *(from++);
+    }
+    else if (from < to) {
+      jshort *end = from;
+      from += count - 1;
+      to   += count - 1;
+      while (from >= end)
+        *(to--) = *(from--);
+    }
+  }
+  void _Copy_conjoint_jints_atomic(jint* from, jint* to, size_t count) {
+    if (from > to) {
+      jint *end = from + count;
+      while (from < end)
+        *(to++) = *(from++);
+    }
+    else if (from < to) {
+      jint *end = from;
+      from += count - 1;
+      to   += count - 1;
+      while (from >= end)
+        *(to--) = *(from--);
+    }
+  }
+  void _Copy_conjoint_jlongs_atomic(jlong* from, jlong* to, size_t count) {
+    if (from > to) {
+      jlong *end = from + count;
+      while (from < end)
+        os::atomic_copy64(from++, to++);
+    }
+    else if (from < to) {
+      jlong *end = from;
+      from += count - 1;
+      to   += count - 1;
+      while (from >= end)
+        os::atomic_copy64(from--, to--);
+    }
+  }
+
+  void _Copy_arrayof_conjoint_bytes(HeapWord* from,
+                                    HeapWord* to,
+                                    size_t    count) {
+    memmove(to, from, count);
+  }
+  void _Copy_arrayof_conjoint_jshorts(HeapWord* from,
+                                      HeapWord* to,
+                                      size_t    count) {
+    memmove(to, from, count * 2);
+  }
+  void _Copy_arrayof_conjoint_jints(HeapWord* from,
+                                    HeapWord* to,
+                                    size_t    count) {
+    memmove(to, from, count * 4);
+  }
+  void _Copy_arrayof_conjoint_jlongs(HeapWord* from,
+                                     HeapWord* to,
+                                     size_t    count) {
+    memmove(to, from, count * 8);
+  }
+};
+
+/////////////////////////////////////////////////////////////////////////////
+// Implementations of atomic operations not supported by processors.
+//  -- http://gcc.gnu.org/onlinedocs/gcc-4.2.1/gcc/Atomic-Builtins.html
+
+#ifndef _LP64
+extern "C" {
+  long long unsigned int __sync_val_compare_and_swap_8(
+    volatile void *ptr,
+    long long unsigned int oldval,
+    long long unsigned int newval) {
+    ShouldNotCallThis();
+  }
+};
+#endif // !_LP64
diff --git a/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.hpp b/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.hpp
new file mode 100644
index 0000000..873e598
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.hpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2007, 2008, 2010 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_ZERO_VM_OS_BSD_ZERO_HPP
+#define OS_CPU_BSD_ZERO_VM_OS_BSD_ZERO_HPP
+
+  static void setup_fpu() {}
+
+  static bool is_allocatable(size_t bytes);
+
+  // Used to register dynamic code cache area with the OS
+  // Note: Currently only used in 64 bit Windows implementations
+  static bool register_code_area(char *low, char *high) { return true; }
+
+  // Atomically copy 64 bits of data
+  static void atomic_copy64(volatile void *src, volatile void *dst) {
+#if defined(PPC) && !defined(_LP64)
+    double tmp;
+    asm volatile ("lfd  %0, 0(%1)\n"
+                  "stfd %0, 0(%2)\n"
+                  : "=f"(tmp)
+                  : "b"(src), "b"(dst));
+#elif defined(S390) && !defined(_LP64)
+    double tmp;
+    asm volatile ("ld  %0, 0(%1)\n"
+                  "std %0, 0(%2)\n"
+                  : "=r"(tmp)
+                  : "a"(src), "a"(dst));
+#else
+    *(jlong *) dst = *(jlong *) src;
+#endif
+  }
+
+#endif // OS_CPU_BSD_ZERO_VM_OS_BSD_ZERO_HPP
diff --git a/hotspot/src/os_cpu/bsd_zero/vm/prefetch_bsd_zero.inline.hpp b/hotspot/src/os_cpu/bsd_zero/vm/prefetch_bsd_zero.inline.hpp
new file mode 100644
index 0000000..7c4f786
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_zero/vm/prefetch_bsd_zero.inline.hpp
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2007, 2008 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_ZERO_VM_PREFETCH_BSD_ZERO_INLINE_HPP
+#define OS_CPU_BSD_ZERO_VM_PREFETCH_BSD_ZERO_INLINE_HPP
+
+#include "runtime/prefetch.hpp"
+
+inline void Prefetch::read(void* loc, intx interval) {
+}
+
+inline void Prefetch::write(void* loc, intx interval) {
+}
+
+#endif // OS_CPU_BSD_ZERO_VM_PREFETCH_BSD_ZERO_INLINE_HPP
diff --git a/hotspot/src/os_cpu/bsd_zero/vm/threadLS_bsd_zero.cpp b/hotspot/src/os_cpu/bsd_zero/vm/threadLS_bsd_zero.cpp
new file mode 100644
index 0000000..cd6e0f7
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_zero/vm/threadLS_bsd_zero.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2007 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "runtime/threadLocalStorage.hpp"
+#include "thread_bsd.inline.hpp"
+
+void ThreadLocalStorage::generate_code_for_get_thread() {
+  // nothing to do
+}
+
+void ThreadLocalStorage::pd_init() {
+  // nothing to do
+}
+
+void ThreadLocalStorage::pd_set_thread(Thread* thread) {
+  os::thread_local_storage_at_put(ThreadLocalStorage::thread_index(), thread);
+}
diff --git a/hotspot/src/os_cpu/bsd_zero/vm/threadLS_bsd_zero.hpp b/hotspot/src/os_cpu/bsd_zero/vm/threadLS_bsd_zero.hpp
new file mode 100644
index 0000000..0360b58
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_zero/vm/threadLS_bsd_zero.hpp
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_ZERO_VM_THREADLS_BSD_ZERO_HPP
+#define OS_CPU_BSD_ZERO_VM_THREADLS_BSD_ZERO_HPP
+
+// Processor dependent parts of ThreadLocalStorage
+
+ public:
+  static Thread* thread() {
+    return (Thread*) os::thread_local_storage_at(thread_index());
+  }
+
+#endif // OS_CPU_BSD_ZERO_VM_THREADLS_BSD_ZERO_HPP
diff --git a/hotspot/src/os_cpu/bsd_zero/vm/thread_bsd_zero.cpp b/hotspot/src/os_cpu/bsd_zero/vm/thread_bsd_zero.cpp
new file mode 100644
index 0000000..eb0abaa
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_zero/vm/thread_bsd_zero.cpp
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2009, 2010 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "runtime/frame.inline.hpp"
+#include "thread_bsd.inline.hpp"
+
+void JavaThread::cache_global_variables() {
+  // nothing to do
+}
diff --git a/hotspot/src/os_cpu/bsd_zero/vm/thread_bsd_zero.hpp b/hotspot/src/os_cpu/bsd_zero/vm/thread_bsd_zero.hpp
new file mode 100644
index 0000000..12971a6
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_zero/vm/thread_bsd_zero.hpp
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_ZERO_VM_THREAD_BSD_ZERO_HPP
+#define OS_CPU_BSD_ZERO_VM_THREAD_BSD_ZERO_HPP
+
+ private:
+  ZeroStack  _zero_stack;
+  ZeroFrame* _top_zero_frame;
+
+  void pd_initialize() {
+    _top_zero_frame = NULL;
+  }
+
+ public:
+  ZeroStack *zero_stack() {
+    return &_zero_stack;
+  }
+
+ public:
+  ZeroFrame *top_zero_frame() {
+    return _top_zero_frame;
+  }
+  void push_zero_frame(ZeroFrame *frame) {
+    *(ZeroFrame **) frame = _top_zero_frame;
+    _top_zero_frame = frame;
+  }
+  void pop_zero_frame() {
+    zero_stack()->set_sp((intptr_t *) _top_zero_frame + 1);
+    _top_zero_frame = *(ZeroFrame **) _top_zero_frame;
+  }
+
+ public:
+  static ByteSize zero_stack_offset() {
+    return byte_offset_of(JavaThread, _zero_stack);
+  }
+  static ByteSize top_zero_frame_offset() {
+    return byte_offset_of(JavaThread, _top_zero_frame);
+  }
+
+ public:
+  void record_base_of_stack_pointer() {
+    assert(top_zero_frame() == NULL, "junk on stack prior to Java call");
+  }
+  void set_base_of_stack_pointer(intptr_t* base_sp) {
+    assert(base_sp == NULL, "should be");
+    assert(top_zero_frame() == NULL, "junk on stack after Java call");
+  }
+
+ public:
+  void set_last_Java_frame() {
+    set_last_Java_frame(top_zero_frame(), zero_stack()->sp());
+  }
+  void reset_last_Java_frame() {
+    frame_anchor()->zap();
+  }
+  void set_last_Java_frame(ZeroFrame* fp, intptr_t* sp) {
+    frame_anchor()->set(sp, NULL, fp);
+  }
+
+ public:
+  ZeroFrame* last_Java_fp() {
+    return frame_anchor()->last_Java_fp();
+  }
+
+ private:
+  frame pd_last_frame() {
+    assert(has_last_Java_frame(), "must have last_Java_sp() when suspended");
+    return frame(last_Java_fp(), last_Java_sp());
+  }
+
+ public:
+  static ByteSize last_Java_fp_offset() {
+    return byte_offset_of(JavaThread, _anchor) +
+      JavaFrameAnchor::last_Java_fp_offset();
+  }
+
+ public:
+  // Check for pending suspend requests and pending asynchronous
+  // exceptions.  There are separate accessors for these, but
+  // _suspend_flags is volatile so using them would be unsafe.
+  bool has_special_condition_for_native_trans() {
+    return _suspend_flags != 0;
+  }
+
+ public:
+  bool pd_get_top_frame_for_signal_handler(frame* fr_addr,
+                                           void* ucontext,
+                                           bool isInJava) {
+    ShouldNotCallThis();
+  }
+
+  // These routines are only used on cpu architectures that
+  // have separate register stacks (Itanium).
+  static bool register_stack_overflow() { return false; }
+  static void enable_register_stack_guard() {}
+  static void disable_register_stack_guard() {}
+
+#endif // OS_CPU_BSD_ZERO_VM_THREAD_BSD_ZERO_HPP
diff --git a/hotspot/src/os_cpu/bsd_zero/vm/vmStructs_bsd_zero.hpp b/hotspot/src/os_cpu/bsd_zero/vm/vmStructs_bsd_zero.hpp
new file mode 100644
index 0000000..17165cc
--- /dev/null
+++ b/hotspot/src/os_cpu/bsd_zero/vm/vmStructs_bsd_zero.hpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2007 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef OS_CPU_BSD_ZERO_VM_VMSTRUCTS_BSD_ZERO_HPP
+#define OS_CPU_BSD_ZERO_VM_VMSTRUCTS_BSD_ZERO_HPP
+
+// These are the OS and CPU-specific fields, types and integer
+// constants required by the Serviceability Agent. This file is
+// referenced by vmStructs.cpp.
+
+#define VM_STRUCTS_OS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field, last_entry) \
+  /* This must be the last entry, and must be present */                \
+  last_entry()
+
+
+#define VM_TYPES_OS_CPU(declare_type, declare_toplevel_type, declare_oop_type, declare_integer_type, declare_unsigned_integer_type, declare_c1_toplevel_type, declare_c2_type, declare_c2_toplevel_type, last_entry) \
+  /* This must be the last entry, and must be present */                \
+  last_entry()
+
+#define VM_INT_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \
+  /* This must be the last entry, and must be present */                \
+  last_entry()
+
+#define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \
+  /* This must be the last entry, and must be present */                \
+  last_entry()
+
+#endif // OS_CPU_BSD_ZERO_VM_VMSTRUCTS_BSD_ZERO_HPP
diff --git a/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp b/hotspot/src/os_cpu/bsd_zero/vm/vm_version_bsd_zero.cpp
similarity index 100%
copy from hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp
copy to hotspot/src/os_cpu/bsd_zero/vm/vm_version_bsd_zero.cpp
diff --git a/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.ad b/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.ad
index c179d08..3d8283d 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.ad
+++ b/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.ad
@@ -154,7 +154,7 @@ void MachBreakpointNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
 
 
 uint MachBreakpointNode::size(PhaseRegAlloc *ra_) const {
-  return 5;
+  return MachNode::size(ra_);
 }
 
 %}
diff --git a/hotspot/src/os_cpu/linux_x86/vm/linux_x86_64.ad b/hotspot/src/os_cpu/linux_x86/vm/linux_x86_64.ad
index e19ea02..0127df5 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/linux_x86_64.ad
+++ b/hotspot/src/os_cpu/linux_x86/vm/linux_x86_64.ad
@@ -167,7 +167,8 @@ void MachBreakpointNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const {
 }
 
 uint MachBreakpointNode::size(PhaseRegAlloc* ra_) const {
-  return 5;
+  // distance could be far and requires load and call through register
+  return MachNode::size(ra_);
 }
 
 %}
diff --git a/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp b/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
index f12bec9..d952cb7 100644
--- a/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
+++ b/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
@@ -38,7 +38,6 @@ define_pd_global(intx,  VMThreadStackSize,       1024);
 #else
 define_pd_global(intx,  VMThreadStackSize,       512);
 #endif // _LP64
-define_pd_global(intx,  SurvivorRatio,           8);
 define_pd_global(intx,  CompilerThreadStackSize, 0);
 define_pd_global(uintx, JVMInvokeMethodSlack,    8192);
 
diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp
index 31f86cf..d53de80 100644
--- a/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp
+++ b/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp
@@ -114,6 +114,11 @@ int VM_Version::platform_features(int features) {
 #endif
     if (av & AV_SPARC_VIS3)         features |= vis3_instructions_m;
 
+#ifndef AV_SPARC_CBCOND
+#define AV_SPARC_CBCOND 0x10000000  /* compare and branch instrs supported */
+#endif
+    if (av & AV_SPARC_CBCOND)       features |= cbcond_instructions_m;
+
   } else {
     // getisax(2) failed, use the old legacy code.
 #ifndef PRODUCT
diff --git a/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_32.ad b/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_32.ad
index 3e6930a..0883527 100644
--- a/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_32.ad
+++ b/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_32.ad
@@ -161,7 +161,7 @@ void MachBreakpointNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
 
 
 uint MachBreakpointNode::size(PhaseRegAlloc *ra_) const {
-  return 5;
+  return MachNode::size(ra_);
 }
 
 %}
diff --git a/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_64.ad b/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_64.ad
index 3b9c366..32a77c5 100644
--- a/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_64.ad
+++ b/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_64.ad
@@ -180,7 +180,8 @@ void MachBreakpointNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const
 
 uint MachBreakpointNode::size(PhaseRegAlloc* ra_) const
 {
-  return 5;
+  // distance could be far and requires load and call through register
+  return MachNode::size(ra_);
 }
 
 %}
diff --git a/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/CallSite.java b/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/CallSite.java
index c72d777..354b32a 100644
--- a/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/CallSite.java
+++ b/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/CallSite.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,6 +37,8 @@ public class CallSite {
     private int receiver_count;
     private String reason;
     private List<CallSite> calls;
+    private int endNodes;
+    private double timeStamp;
 
     CallSite() {
     }
@@ -93,18 +95,22 @@ public class CallSite {
         emit(stream, indent);
         String m = getMethod().getHolder().replace('/', '.') + "::" + getMethod().getName();
         if (getReason() == null) {
-            stream.println("  @ " + getBci() + " " + m + " (" + getMethod().getBytes() + " bytes)");
+            stream.print("  @ " + getBci() + " " + m + " (" + getMethod().getBytes() + " bytes)");
 
         } else {
             if (isCompat()) {
-                stream.println("  @ " + getBci() + " " + m + " " + getReason());
+                stream.print("  @ " + getBci() + " " + m + " " + getReason());
             } else {
-                stream.println("- @ " + getBci() + " " + m +
+                stream.print("- @ " + getBci() + " " + m +
                         " (" + getMethod().getBytes() + " bytes) " + getReason());
             }
         }
+        if (getEndNodes() > 0) {
+          stream.printf(" (end time: %6.4f nodes: %d)", getTimeStamp(), getEndNodes());
+        }
+        stream.println("");
         if (getReceiver() != null) {
-            emit(stream, indent + 3);
+            emit(stream, indent + 4);
             //                 stream.println("type profile " + method.holder + " -> " + receiver + " (" +
             //                                receiver_count + "/" + count + "," + (receiver_count * 100 / count) + "%)");
             stream.println("type profile " + getMethod().getHolder() + " -> " + getReceiver() + " (" +
@@ -180,4 +186,21 @@ public class CallSite {
     public static void setCompat(boolean aCompat) {
         compat = aCompat;
     }
+
+    void setEndNodes(int n) {
+        endNodes = n;
+    }
+
+    public int getEndNodes() {
+        return endNodes;
+    }
+
+    void setTimeStamp(double time) {
+        timeStamp = time;
+    }
+
+    public double getTimeStamp() {
+        return timeStamp;
+    }
+
 }
diff --git a/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCompilation.java b/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCompilation.java
index 5705888..12689b0 100644
--- a/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCompilation.java
+++ b/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCompilation.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -126,7 +126,6 @@ public class LogCompilation extends DefaultHandler implements ErrorHandler, Cons
                 maxattempts = Math.max(maxattempts,c.getAttempts());
                 elapsed += c.getElapsedTime();
                 for (Phase phase : c.getPhases()) {
-                    out.printf("\t%s %6.4f\n", phase.getName(), phase.getElapsedTime());
                     Double v = phaseTime.get(phase.getName());
                     if (v == null) {
                         v = Double.valueOf(0.0);
@@ -138,6 +137,7 @@ public class LogCompilation extends DefaultHandler implements ErrorHandler, Cons
                         v2 = Integer.valueOf(0);
                     }
                     phaseNodes.put(phase.getName(), Integer.valueOf(v2.intValue() + phase.getNodes()));
+                    out.printf("\t%s %6.4f %d %d\n", phase.getName(), phase.getElapsedTime(), phase.getStartNodes(), phase.getNodes());
                 }
             } else if (e instanceof MakeNotEntrantEvent) {
                 MakeNotEntrantEvent mne = (MakeNotEntrantEvent) e;
diff --git a/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java b/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java
index 265e92e..d864db0 100644
--- a/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java
+++ b/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -365,7 +365,7 @@ public class LogParser extends DefaultHandler implements ErrorHandler, Constants
             if (currentTrap != null) {
                 currentTrap.addJVMS(atts.getValue("method"), Integer.parseInt(atts.getValue("bci")));
             } else {
-                System.err.println("Missing uncommon_trap for jvms");
+                // Ignore <eliminate_allocation type='667'> and <eliminate_lock lock='1'>
             }
         } else if (qname.equals("nmethod")) {
             String id = makeId(atts);
@@ -391,6 +391,11 @@ public class LogParser extends DefaultHandler implements ErrorHandler, Constants
                     throw new InternalError("call site and parse don't match");
                 }
             }
+        } else if (qname.equals("parse_done")) {
+            CallSite call = scopes.pop();
+            call.setEndNodes(Integer.parseInt(search(atts, "nodes")));
+            call.setTimeStamp(Double.parseDouble(search(atts, "stamp")));
+            scopes.push(call);
         }
     }
 
diff --git a/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/Phase.java b/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/Phase.java
index 4dc50ca..b448f45 100644
--- a/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/Phase.java
+++ b/hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/Phase.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,7 @@ public class Phase extends BasicLogEvent {
     }
 
     int getNodes() {
-        return getStartNodes();
+        return getEndNodes() - getStartNodes();
     }
 
     void setEndNodes(int n) {
diff --git a/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java b/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java
index 21c951d..4a96981 100644
--- a/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java
+++ b/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java
@@ -482,7 +482,7 @@ class CompilerInterfaceVC10 extends CompilerInterface {
                 "/export:JVM_GetThreadStateNames "+
                 "/export:JVM_GetThreadStateValues "+
                 "/export:JVM_InitAgentProperties");
-        addAttr(rv, "AdditionalDependencies", "kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;Wsock32.lib;winmm.lib");
+        addAttr(rv, "AdditionalDependencies", "kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;Wsock32.lib;winmm.lib;psapi.lib");
         addAttr(rv, "OutputFile", outDll);
         addAttr(rv, "SuppressStartupBanner", "true");
         addAttr(rv, "ModuleDefinitionFile", outDir+Util.sep+"vm.def");
diff --git a/hotspot/src/share/vm/adlc/adlc.hpp b/hotspot/src/share/vm/adlc/adlc.hpp
index 0ed4b77..8d48ed6 100644
--- a/hotspot/src/share/vm/adlc/adlc.hpp
+++ b/hotspot/src/share/vm/adlc/adlc.hpp
@@ -67,9 +67,9 @@ typedef unsigned int uintptr_t;
 #endif
 #endif // _WIN32
 
-#ifdef LINUX
+#if defined(LINUX) || defined(_ALLBSD_SOURCE)
   #include <inttypes.h>
-#endif // LINUX
+#endif // LINUX || _ALLBSD_SOURCE
 
 // Macros
 #define uint32 unsigned int
diff --git a/hotspot/src/share/vm/adlc/adlparse.cpp b/hotspot/src/share/vm/adlc/adlparse.cpp
index c5381df..a730a0a 100644
--- a/hotspot/src/share/vm/adlc/adlparse.cpp
+++ b/hotspot/src/share/vm/adlc/adlparse.cpp
@@ -126,9 +126,6 @@ void ADLParser::parse() {
   if (_globalNames[AttributeForm::_ins_cost] == NULL) {
     parse_err(SEMERR, "Did not declare 'ins_cost' attribute");
   }
-  if (_globalNames[AttributeForm::_ins_pc_relative] == NULL) {
-    parse_err(SEMERR, "Did not declare 'ins_pc_relative' attribute");
-  }
   if (_globalNames[AttributeForm::_op_cost] == NULL) {
     parse_err(SEMERR, "Did not declare 'op_cost' attribute");
   }
diff --git a/hotspot/src/share/vm/adlc/archDesc.cpp b/hotspot/src/share/vm/adlc/archDesc.cpp
index e751b54..5b4c1fa 100644
--- a/hotspot/src/share/vm/adlc/archDesc.cpp
+++ b/hotspot/src/share/vm/adlc/archDesc.cpp
@@ -331,10 +331,18 @@ void ArchDesc::inspectInstructions() {
     // Find result type for match
     const char *result  = instr->reduce_result();
 
+    if ( instr->is_ideal_branch() && instr->label_position() == -1 ||
+        !instr->is_ideal_branch() && instr->label_position() != -1) {
+      syntax_err(instr->_linenum, "%s: Only branches to a label are supported\n", rootOp);
+    }
+
     Attribute *attr = instr->_attribs;
     while (attr != NULL) {
       if (strcmp(attr->_ident,"ins_short_branch") == 0 &&
           attr->int_val(*this) != 0) {
+        if (!instr->is_ideal_branch() || instr->label_position() == -1) {
+          syntax_err(instr->_linenum, "%s: Only short branch to a label is supported\n", rootOp);
+        }
         instr->set_short_branch(true);
       } else if (strcmp(attr->_ident,"ins_alignment") == 0 &&
           attr->int_val(*this) != 0) {
diff --git a/hotspot/src/share/vm/adlc/formssel.cpp b/hotspot/src/share/vm/adlc/formssel.cpp
index c659cdb..d3817ed 100644
--- a/hotspot/src/share/vm/adlc/formssel.cpp
+++ b/hotspot/src/share/vm/adlc/formssel.cpp
@@ -291,15 +291,6 @@ int InstructForm::is_tls_instruction() const {
 }
 
 
-// Return 'true' if this instruction matches an ideal 'Copy*' node
-bool InstructForm::is_ideal_unlock() const {
-  return _matrule ? _matrule->is_ideal_unlock() : false;
-}
-
-bool InstructForm::is_ideal_call_leaf() const {
-  return _matrule ? _matrule->is_ideal_call_leaf() : false;
-}
-
 // Return 'true' if this instruction matches an ideal 'If' node
 bool InstructForm::is_ideal_if() const {
   if( _matrule == NULL ) return false;
@@ -349,12 +340,11 @@ bool InstructForm::is_ideal_jump() const {
   return _matrule->is_ideal_jump();
 }
 
-// Return 'true' if instruction matches ideal 'If' | 'Goto' |
-//                    'CountedLoopEnd' | 'Jump'
+// Return 'true' if instruction matches ideal 'If' | 'Goto' | 'CountedLoopEnd'
 bool InstructForm::is_ideal_branch() const {
   if( _matrule == NULL ) return false;
 
-  return _matrule->is_ideal_if() || _matrule->is_ideal_goto() || _matrule->is_ideal_jump();
+  return _matrule->is_ideal_if() || _matrule->is_ideal_goto();
 }
 
 
@@ -392,7 +382,7 @@ bool InstructForm::is_ideal_nop() const {
 bool InstructForm::is_ideal_control() const {
   if ( ! _matrule)  return false;
 
-  return is_ideal_return() || is_ideal_branch() || is_ideal_halt();
+  return is_ideal_return() || is_ideal_branch() || _matrule->is_ideal_jump() || is_ideal_halt();
 }
 
 // Return 'true' if this instruction matches an ideal 'Call' node
@@ -633,6 +623,8 @@ bool InstructForm::is_wide_memory_kill(FormDict &globals) const {
 
   if( strcmp(_matrule->_opType,"MemBarRelease") == 0 ) return true;
   if( strcmp(_matrule->_opType,"MemBarAcquire") == 0 ) return true;
+  if( strcmp(_matrule->_opType,"MemBarReleaseLock") == 0 ) return true;
+  if( strcmp(_matrule->_opType,"MemBarAcquireLock") == 0 ) return true;
 
   return false;
 }
@@ -1094,6 +1086,9 @@ const char *InstructForm::mach_base_class(FormDict &globals)  const {
   else if (is_ideal_if()) {
     return "MachIfNode";
   }
+  else if (is_ideal_goto()) {
+    return "MachGotoNode";
+  }
   else if (is_ideal_fastlock()) {
     return "MachFastLockNode";
   }
@@ -1185,6 +1180,34 @@ bool InstructForm::check_branch_variant(ArchDesc &AD, InstructForm *short_branch
       strcmp(reduce_result(), short_branch->reduce_result()) == 0 &&
       _matrule->equivalent(AD.globalNames(), short_branch->_matrule)) {
     // The instructions are equivalent.
+
+    // Now verify that both instructions have the same parameters and
+    // the same effects. Both branch forms should have the same inputs
+    // and resulting projections to correctly replace a long branch node
+    // with corresponding short branch node during code generation.
+
+    bool different = false;
+    if (short_branch->_components.count() != _components.count()) {
+       different = true;
+    } else if (_components.count() > 0) {
+      short_branch->_components.reset();
+      _components.reset();
+      Component *comp;
+      while ((comp = _components.iter()) != NULL) {
+        Component *short_comp = short_branch->_components.iter();
+        if (short_comp == NULL ||
+            short_comp->_type != comp->_type ||
+            short_comp->_usedef != comp->_usedef) {
+          different = true;
+          break;
+        }
+      }
+      if (short_branch->_components.iter() != NULL)
+        different = true;
+    }
+    if (different) {
+      globalAD->syntax_err(short_branch->_linenum, "Instruction %s and its short form %s have different parameters\n", _ident, short_branch->_ident);
+    }
     if (AD._short_branch_debug) {
       fprintf(stderr, "Instruction %s has short form %s\n", _ident, short_branch->_ident);
     }
@@ -1202,7 +1225,7 @@ void InstructForm::rep_var_format(FILE *fp, const char *rep_var) {
   // Handle special constant table variables.
   if (strcmp(rep_var, "constanttablebase") == 0) {
     fprintf(fp, "char reg[128];  ra->dump_register(in(mach_constant_base_node_input()), reg);\n");
-    fprintf(fp, "st->print(\"%%s\");\n");
+    fprintf(fp, "    st->print(\"%%s\", reg);\n");
     return;
   }
   if (strcmp(rep_var, "constantoffset") == 0) {
@@ -2706,7 +2729,6 @@ void ConstructRule::output(FILE *fp) {
 int         AttributeForm::_insId   = 0;           // start counter at 0
 int         AttributeForm::_opId    = 0;           // start counter at 0
 const char* AttributeForm::_ins_cost = "ins_cost"; // required name
-const char* AttributeForm::_ins_pc_relative = "ins_pc_relative";
 const char* AttributeForm::_op_cost  = "op_cost";  // required name
 
 AttributeForm::AttributeForm(char *attr, int type, char *attrdef)
@@ -3368,7 +3390,9 @@ int MatchNode::needs_ideal_memory_edge(FormDict &globals) const {
     "ClearArray"
   };
   int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*);
-  if( strcmp(_opType,"PrefetchRead")==0 || strcmp(_opType,"PrefetchWrite")==0 )
+  if( strcmp(_opType,"PrefetchRead")==0 ||
+      strcmp(_opType,"PrefetchWrite")==0 ||
+      strcmp(_opType,"PrefetchAllocation")==0 )
     return 1;
   if( _lChild ) {
     const char *opType = _lChild->_opType;
@@ -3623,7 +3647,27 @@ bool MatchNode::equivalent(FormDict &globals, MatchNode *mNode2) {
   assert( mNode2->_opType, "Must have _opType");
   const Form *form  = globals[_opType];
   const Form *form2 = globals[mNode2->_opType];
-  return (form == form2);
+  if( form != form2 ) {
+    return false;
+  }
+
+  // Check that their children also match
+  if (_lChild ) {
+    if( !_lChild->equivalent(globals, mNode2->_lChild) )
+      return false;
+  } else if (mNode2->_lChild) {
+    return false; // I have NULL left child, mNode2 has non-NULL left child.
+  }
+
+  if (_rChild ) {
+    if( !_rChild->equivalent(globals, mNode2->_rChild) )
+      return false;
+  } else if (mNode2->_rChild) {
+    return false; // I have NULL right child, mNode2 has non-NULL right child.
+  }
+
+  // We've made it through the gauntlet.
+  return true;
 }
 
 //-------------------------- has_commutative_op -------------------------------
@@ -3909,19 +3953,6 @@ int MatchRule::is_expensive() const {
   return 0;
 }
 
-bool MatchRule::is_ideal_unlock() const {
-  if( !_opType ) return false;
-  return !strcmp(_opType,"Unlock") || !strcmp(_opType,"FastUnlock");
-}
-
-
-bool MatchRule::is_ideal_call_leaf() const {
-  if( !_opType ) return false;
-  return !strcmp(_opType,"CallLeaf")     ||
-         !strcmp(_opType,"CallLeafNoFP");
-}
-
-
 bool MatchRule::is_ideal_if() const {
   if( !_opType ) return false;
   return
@@ -3941,6 +3972,8 @@ bool MatchRule::is_ideal_membar() const {
   return
     !strcmp(_opType,"MemBarAcquire"  ) ||
     !strcmp(_opType,"MemBarRelease"  ) ||
+    !strcmp(_opType,"MemBarAcquireLock") ||
+    !strcmp(_opType,"MemBarReleaseLock") ||
     !strcmp(_opType,"MemBarVolatile" ) ||
     !strcmp(_opType,"MemBarCPUOrder" ) ;
 }
diff --git a/hotspot/src/share/vm/adlc/formssel.hpp b/hotspot/src/share/vm/adlc/formssel.hpp
index 88ba702..50d7a70 100644
--- a/hotspot/src/share/vm/adlc/formssel.hpp
+++ b/hotspot/src/share/vm/adlc/formssel.hpp
@@ -145,8 +145,6 @@ public:
   virtual int         is_empty_encoding() const; // _size=0 and/or _insencode empty
   virtual int         is_tls_instruction() const; // tlsLoadP rule or ideal ThreadLocal
   virtual int         is_ideal_copy() const;    // node matches ideal 'Copy*'
-  virtual bool        is_ideal_unlock() const;  // node matches ideal 'Unlock'
-  virtual bool        is_ideal_call_leaf() const; // node matches ideal 'CallLeaf'
   virtual bool        is_ideal_if()   const;    // node matches ideal 'If'
   virtual bool        is_ideal_fastlock() const; // node matches 'FastLock'
   virtual bool        is_ideal_membar() const;  // node matches ideal 'MemBarXXX'
@@ -857,7 +855,6 @@ public:
   int  type() { return id;}        // return this object's "id"
 
   static const char* _ins_cost;        // "ins_cost"
-  static const char* _ins_pc_relative; // "ins_pc_relative"
   static const char* _op_cost;         // "op_cost"
 
   void dump();                     // Debug printer
@@ -1002,8 +999,6 @@ public:
   bool       is_chain_rule(FormDict &globals) const;
   int        is_ideal_copy() const;
   int        is_expensive() const;     // node matches ideal 'CosD'
-  bool       is_ideal_unlock() const;
-  bool       is_ideal_call_leaf() const;
   bool       is_ideal_if()   const;    // node matches ideal 'If'
   bool       is_ideal_fastlock() const; // node matches ideal 'FastLock'
   bool       is_ideal_jump()   const;  // node matches ideal 'Jump'
diff --git a/hotspot/src/share/vm/adlc/output_c.cpp b/hotspot/src/share/vm/adlc/output_c.cpp
index c0ef389..493c31e 100644
--- a/hotspot/src/share/vm/adlc/output_c.cpp
+++ b/hotspot/src/share/vm/adlc/output_c.cpp
@@ -3088,12 +3088,19 @@ void ArchDesc::defineClasses(FILE *fp) {
     int label_position = instr->label_position();
     if( label_position != -1 ) {
       // Set the label
-      fprintf(fp,"void %sNode::label_set( Label& label, uint block_num ) {\n", instr->_ident);
+      fprintf(fp,"void %sNode::label_set( Label* label, uint block_num ) {\n", instr->_ident);
       fprintf(fp,"  labelOper* oper  = (labelOper*)(opnd_array(%d));\n",
               label_position );
-      fprintf(fp,"  oper->_label     = &label;\n");
+      fprintf(fp,"  oper->_label     = label;\n");
       fprintf(fp,"  oper->_block_num = block_num;\n");
       fprintf(fp,"}\n");
+      // Save the label
+      fprintf(fp,"void %sNode::save_label( Label** label, uint* block_num ) {\n", instr->_ident);
+      fprintf(fp,"  labelOper* oper  = (labelOper*)(opnd_array(%d));\n",
+              label_position );
+      fprintf(fp,"  *label = oper->_label;\n");
+      fprintf(fp,"  *block_num = oper->_block_num;\n");
+      fprintf(fp,"}\n");
     }
   }
 
diff --git a/hotspot/src/share/vm/adlc/output_h.cpp b/hotspot/src/share/vm/adlc/output_h.cpp
index 08e8ca6..9e609b8 100644
--- a/hotspot/src/share/vm/adlc/output_h.cpp
+++ b/hotspot/src/share/vm/adlc/output_h.cpp
@@ -1519,8 +1519,9 @@ void ArchDesc::declareClasses(FILE *fp) {
     // Declare Node::methods that set operand Label's contents
     int label_position = instr->label_position();
     if( label_position != -1 ) {
-      // Set the label, stored in labelOper::_branch_label
-      fprintf(fp,"  virtual void           label_set( Label& label, uint block_num );\n");
+      // Set/Save the label, stored in labelOper::_branch_label
+      fprintf(fp,"  virtual void           label_set( Label* label, uint block_num );\n");
+      fprintf(fp,"  virtual void           save_label( Label** label, uint* block_num );\n");
     }
 
     // If this instruction contains a methodOper
@@ -1536,16 +1537,16 @@ void ArchDesc::declareClasses(FILE *fp) {
     // Each instruction attribute results in a virtual call of same name.
     // The ins_cost is not handled here.
     Attribute *attr = instr->_attribs;
-    bool is_pc_relative = false;
+    bool avoid_back_to_back = false;
     while (attr != NULL) {
       if (strcmp(attr->_ident,"ins_cost") &&
-          strcmp(attr->_ident,"ins_pc_relative")) {
+          strcmp(attr->_ident,"ins_short_branch")) {
         fprintf(fp,"  int             %s() const { return %s; }\n",
                 attr->_ident, attr->_val);
       }
-      // Check value for ins_pc_relative, and if it is true (1), set the flag
-      if (!strcmp(attr->_ident,"ins_pc_relative") && attr->int_val(*this) != 0)
-        is_pc_relative = true;
+      // Check value for ins_avoid_back_to_back, and if it is true (1), set the flag
+      if (!strcmp(attr->_ident,"ins_avoid_back_to_back") && attr->int_val(*this) != 0)
+        avoid_back_to_back = true;
       attr = (Attribute *)attr->_next;
     }
 
@@ -1657,20 +1658,10 @@ void ArchDesc::declareClasses(FILE *fp) {
     fprintf(fp," _num_opnds = %d; _opnds = _opnd_array; ", instr->num_opnds());
 
     bool node_flags_set = false;
-    // flag: if this instruction matches an ideal 'Goto' node
-    if ( instr->is_ideal_goto() ) {
-      fprintf(fp,"init_flags(Flag_is_Goto");
-      node_flags_set = true;
-    }
-
     // flag: if this instruction matches an ideal 'Copy*' node
     if ( instr->is_ideal_copy() != 0 ) {
-      if ( node_flags_set ) {
-        fprintf(fp," | Flag_is_Copy");
-      } else {
-        fprintf(fp,"init_flags(Flag_is_Copy");
-        node_flags_set = true;
-      }
+      fprintf(fp,"init_flags(Flag_is_Copy");
+      node_flags_set = true;
     }
 
     // Is an instruction is a constant?  If so, get its type
@@ -1688,16 +1679,6 @@ void ArchDesc::declareClasses(FILE *fp) {
       }
     }
 
-    // flag: if instruction matches 'If' | 'Goto' | 'CountedLoopEnd | 'Jump'
-    if ( instr->is_ideal_branch() ) {
-      if ( node_flags_set ) {
-        fprintf(fp," | Flag_is_Branch");
-      } else {
-        fprintf(fp,"init_flags(Flag_is_Branch");
-        node_flags_set = true;
-      }
-    }
-
     // flag: if this instruction is cisc alternate
     if ( can_cisc_spill() && instr->is_cisc_alternate() ) {
       if ( node_flags_set ) {
@@ -1708,22 +1689,22 @@ void ArchDesc::declareClasses(FILE *fp) {
       }
     }
 
-    // flag: if this instruction is pc relative
-    if ( is_pc_relative ) {
+    // flag: if this instruction has short branch form
+    if ( instr->has_short_branch_form() ) {
       if ( node_flags_set ) {
-        fprintf(fp," | Flag_is_pc_relative");
+        fprintf(fp," | Flag_may_be_short_branch");
       } else {
-        fprintf(fp,"init_flags(Flag_is_pc_relative");
+        fprintf(fp,"init_flags(Flag_may_be_short_branch");
         node_flags_set = true;
       }
     }
 
-    // flag: if this instruction has short branch form
-    if ( instr->has_short_branch_form() ) {
+    // flag: if this instruction should not be generated back to back.
+    if ( avoid_back_to_back ) {
       if ( node_flags_set ) {
-        fprintf(fp," | Flag_may_be_short_branch");
+        fprintf(fp," | Flag_avoid_back_to_back");
       } else {
-        fprintf(fp,"init_flags(Flag_may_be_short_branch");
+        fprintf(fp,"init_flags(Flag_avoid_back_to_back");
         node_flags_set = true;
       }
     }
@@ -1743,10 +1724,6 @@ void ArchDesc::declareClasses(FILE *fp) {
       fprintf(fp,"); ");
     }
 
-    if (instr->is_ideal_unlock() || instr->is_ideal_call_leaf()) {
-      fprintf(fp,"clear_flag(Flag_is_safepoint_node); ");
-    }
-
     fprintf(fp,"}\n");
 
     // size_of, used by base class's clone to obtain the correct size.
diff --git a/hotspot/src/share/vm/c1/c1_Compilation.cpp b/hotspot/src/share/vm/c1/c1_Compilation.cpp
index 4521b0f..ab3930c 100644
--- a/hotspot/src/share/vm/c1/c1_Compilation.cpp
+++ b/hotspot/src/share/vm/c1/c1_Compilation.cpp
@@ -346,7 +346,6 @@ void Compilation::install_code(int frame_size) {
     implicit_exception_table(),
     compiler(),
     _env->comp_level(),
-    true,
     has_unsafe_access()
   );
 }
diff --git a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp
index 1a6ad3d..e103fbf 100644
--- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp
+++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp
@@ -28,8 +28,10 @@
 #include "c1/c1_Compilation.hpp"
 #include "c1/c1_GraphBuilder.hpp"
 #include "c1/c1_InstructionPrinter.hpp"
+#include "ci/ciCallSite.hpp"
 #include "ci/ciField.hpp"
 #include "ci/ciKlass.hpp"
+#include "ci/ciMethodHandle.hpp"
 #include "compiler/compileBroker.hpp"
 #include "interpreter/bytecode.hpp"
 #include "runtime/sharedRuntime.hpp"
@@ -1424,7 +1426,7 @@ void GraphBuilder::method_return(Value x) {
     // See whether this is the first return; if so, store off some
     // of the state for later examination
     if (num_returns() == 0) {
-      set_inline_cleanup_info(_block, _last, state());
+      set_inline_cleanup_info();
     }
 
     // The current bci() is in the wrong scope, so use the bci() of
@@ -1582,6 +1584,8 @@ void GraphBuilder::invoke(Bytecodes::Code code) {
     code = Bytecodes::_invokespecial;
   }
 
+  bool is_invokedynamic = code == Bytecodes::_invokedynamic;
+
   // NEEDS_CLEANUP
   // I've added the target-is_loaded() test below but I don't really understand
   // how klass->is_loaded() can be true and yet target->is_loaded() is false.
@@ -1693,26 +1697,31 @@ void GraphBuilder::invoke(Bytecodes::Code code) {
       && target->will_link(klass, callee_holder, code)) {
     // callee is known => check if we have static binding
     assert(target->is_loaded(), "callee must be known");
-    if (code == Bytecodes::_invokestatic
-     || code == Bytecodes::_invokespecial
-     || code == Bytecodes::_invokevirtual && target->is_final_method()
-    ) {
-      // static binding => check if callee is ok
-      ciMethod* inline_target = (cha_monomorphic_target != NULL)
-                                  ? cha_monomorphic_target
-                                  : target;
-      bool res = try_inline(inline_target, (cha_monomorphic_target != NULL) || (exact_target != NULL));
+    if (code == Bytecodes::_invokestatic  ||
+        code == Bytecodes::_invokespecial ||
+        code == Bytecodes::_invokevirtual && target->is_final_method() ||
+        code == Bytecodes::_invokedynamic) {
+      ciMethod* inline_target = (cha_monomorphic_target != NULL) ? cha_monomorphic_target : target;
+      bool success = false;
+      if (target->is_method_handle_invoke()) {
+        // method handle invokes
+        success = !is_invokedynamic ? for_method_handle_inline(target) : for_invokedynamic_inline(target);
+      }
+      if (!success) {
+        // static binding => check if callee is ok
+        success = try_inline(inline_target, (cha_monomorphic_target != NULL) || (exact_target != NULL));
+      }
       CHECK_BAILOUT();
 
 #ifndef PRODUCT
       // printing
-      if (PrintInlining && !res) {
+      if (PrintInlining && !success) {
         // if it was successfully inlined, then it was already printed.
-        print_inline_result(inline_target, res);
+        print_inline_result(inline_target, success);
       }
 #endif
       clear_inline_bailout();
-      if (res) {
+      if (success) {
         // Register dependence if JVMTI has either breakpoint
         // setting or hotswapping of methods capabilities since they may
         // cause deoptimization.
@@ -1740,7 +1749,6 @@ void GraphBuilder::invoke(Bytecodes::Code code) {
     code == Bytecodes::_invokespecial   ||
     code == Bytecodes::_invokevirtual   ||
     code == Bytecodes::_invokeinterface;
-  bool is_invokedynamic = code == Bytecodes::_invokedynamic;
   ValueType* result_type = as_ValueType(target->return_type());
 
   // We require the debug info to be the "state before" because
@@ -3033,9 +3041,12 @@ bool GraphBuilder::try_inline(ciMethod* callee, bool holder_known) {
   if (callee->should_exclude()) {
     // callee is excluded
     INLINE_BAILOUT("excluded by CompilerOracle")
+  } else if (callee->should_not_inline()) {
+    // callee is excluded
+    INLINE_BAILOUT("disallowed by CompilerOracle")
   } else if (!callee->can_be_compiled()) {
     // callee is not compilable (prob. has breakpoints)
-    INLINE_BAILOUT("not compilable")
+    INLINE_BAILOUT("not compilable (disabled)")
   } else if (callee->intrinsic_id() != vmIntrinsics::_none && try_inline_intrinsics(callee)) {
     // intrinsics can be native or not
     return true;
@@ -3394,7 +3405,7 @@ void GraphBuilder::fill_sync_handler(Value lock, BlockBegin* sync_handler, bool
 }
 
 
-bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) {
+bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known, BlockBegin* cont_block) {
   assert(!callee->is_native(), "callee must not be native");
   if (CompilationPolicy::policy()->should_not_inline(compilation()->env(), callee)) {
     INLINE_BAILOUT("inlining prohibited by policy");
@@ -3410,24 +3421,6 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) {
   // Proper inlining of methods with jsrs requires a little more work.
   if (callee->has_jsrs()                 ) INLINE_BAILOUT("jsrs not handled properly by inliner yet");
 
-  // now perform tests that are based on flag settings
-  if (inline_level() > MaxInlineLevel                         ) INLINE_BAILOUT("too-deep inlining");
-  if (recursive_inline_level(callee) > MaxRecursiveInlineLevel) INLINE_BAILOUT("too-deep recursive inlining");
-  if (callee->code_size() > max_inline_size()                 ) INLINE_BAILOUT("callee is too large");
-
-  // don't inline throwable methods unless the inlining tree is rooted in a throwable class
-  if (callee->name() == ciSymbol::object_initializer_name() &&
-      callee->holder()->is_subclass_of(ciEnv::current()->Throwable_klass())) {
-    // Throwable constructor call
-    IRScope* top = scope();
-    while (top->caller() != NULL) {
-      top = top->caller();
-    }
-    if (!top->method()->holder()->is_subclass_of(ciEnv::current()->Throwable_klass())) {
-      INLINE_BAILOUT("don't inline Throwable constructors");
-    }
-  }
-
   // When SSE2 is used on intel, then no special handling is needed
   // for strictfp because the enum-constant is fixed at compile time,
   // the check for UseSSE2 is needed here
@@ -3435,13 +3428,36 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) {
     INLINE_BAILOUT("caller and callee have different strict fp requirements");
   }
 
-  if (compilation()->env()->num_inlined_bytecodes() > DesiredMethodLimit) {
-    INLINE_BAILOUT("total inlining greater than DesiredMethodLimit");
-  }
-
   if (is_profiling() && !callee->ensure_method_data()) {
     INLINE_BAILOUT("mdo allocation failed");
   }
+
+  // now perform tests that are based on flag settings
+  if (callee->should_inline()) {
+    // ignore heuristic controls on inlining
+  } else {
+    if (inline_level() > MaxInlineLevel                         ) INLINE_BAILOUT("too-deep inlining");
+    if (recursive_inline_level(callee) > MaxRecursiveInlineLevel) INLINE_BAILOUT("too-deep recursive inlining");
+    if (callee->code_size_for_inlining() > max_inline_size()    ) INLINE_BAILOUT("callee is too large");
+
+    // don't inline throwable methods unless the inlining tree is rooted in a throwable class
+    if (callee->name() == ciSymbol::object_initializer_name() &&
+        callee->holder()->is_subclass_of(ciEnv::current()->Throwable_klass())) {
+      // Throwable constructor call
+      IRScope* top = scope();
+      while (top->caller() != NULL) {
+        top = top->caller();
+      }
+      if (!top->method()->holder()->is_subclass_of(ciEnv::current()->Throwable_klass())) {
+        INLINE_BAILOUT("don't inline Throwable constructors");
+      }
+    }
+
+    if (compilation()->env()->num_inlined_bytecodes() > DesiredMethodLimit) {
+      INLINE_BAILOUT("total inlining greater than DesiredMethodLimit");
+    }
+  }
+
 #ifndef PRODUCT
       // printing
   if (PrintInlining) {
@@ -3460,7 +3476,8 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) {
 
   // Insert null check if necessary
   Value recv = NULL;
-  if (code() != Bytecodes::_invokestatic) {
+  if (code() != Bytecodes::_invokestatic &&
+      code() != Bytecodes::_invokedynamic) {
     // note: null check must happen even if first instruction of callee does
     //       an implicit null check since the callee is in a different scope
     //       and we must make sure exception handling does the right thing
@@ -3488,7 +3505,7 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) {
   // fall-through of control flow, all return instructions of the
   // callee will need to be replaced by Goto's pointing to this
   // continuation point.
-  BlockBegin* cont = block_at(next_bci());
+  BlockBegin* cont = cont_block != NULL ? cont_block : block_at(next_bci());
   bool continuation_existed = true;
   if (cont == NULL) {
     cont = new BlockBegin(next_bci());
@@ -3600,27 +3617,29 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) {
   // block merging. This allows load elimination and CSE to take place
   // across multiple callee scopes if they are relatively simple, and
   // is currently essential to making inlining profitable.
-  if (   num_returns() == 1
-      && block() == orig_block
-      && block() == inline_cleanup_block()) {
-    _last = inline_cleanup_return_prev();
-    _state = inline_cleanup_state();
-  } else if (continuation_preds == cont->number_of_preds()) {
-    // Inlining caused that the instructions after the invoke in the
-    // caller are not reachable any more. So skip filling this block
-    // with instructions!
-    assert (cont == continuation(), "");
-    assert(_last && _last->as_BlockEnd(), "");
-    _skip_block = true;
-  } else {
-    // Resume parsing in continuation block unless it was already parsed.
-    // Note that if we don't change _last here, iteration in
-    // iterate_bytecodes_for_block will stop when we return.
-    if (!continuation()->is_set(BlockBegin::was_visited_flag)) {
-      // add continuation to work list instead of parsing it immediately
+  if (cont_block == NULL) {
+    if (num_returns() == 1
+        && block() == orig_block
+        && block() == inline_cleanup_block()) {
+      _last  = inline_cleanup_return_prev();
+      _state = inline_cleanup_state();
+    } else if (continuation_preds == cont->number_of_preds()) {
+      // Inlining caused that the instructions after the invoke in the
+      // caller are not reachable any more. So skip filling this block
+      // with instructions!
+      assert(cont == continuation(), "");
       assert(_last && _last->as_BlockEnd(), "");
-      scope_data()->parent()->add_to_work_list(continuation());
       _skip_block = true;
+    } else {
+      // Resume parsing in continuation block unless it was already parsed.
+      // Note that if we don't change _last here, iteration in
+      // iterate_bytecodes_for_block will stop when we return.
+      if (!continuation()->is_set(BlockBegin::was_visited_flag)) {
+        // add continuation to work list instead of parsing it immediately
+        assert(_last && _last->as_BlockEnd(), "");
+        scope_data()->parent()->add_to_work_list(continuation());
+        _skip_block = true;
+      }
     }
   }
 
@@ -3637,6 +3656,114 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) {
 }
 
 
+bool GraphBuilder::for_method_handle_inline(ciMethod* callee) {
+  assert(!callee->is_static(), "change next line");
+  int index = state()->stack_size() - (callee->arg_size_no_receiver() + 1);
+  Value receiver = state()->stack_at(index);
+
+  if (receiver->type()->is_constant()) {
+    ciMethodHandle* method_handle = receiver->type()->as_ObjectType()->constant_value()->as_method_handle();
+
+    // Set the callee to have access to the class and signature in
+    // the MethodHandleCompiler.
+    method_handle->set_callee(callee);
+    method_handle->set_caller(method());
+
+    // Get an adapter for the MethodHandle.
+    ciMethod* method_handle_adapter = method_handle->get_method_handle_adapter();
+    if (method_handle_adapter != NULL) {
+      return try_inline(method_handle_adapter, /*holder_known=*/ true);
+    }
+  } else if (receiver->as_CheckCast()) {
+    // Match MethodHandle.selectAlternative idiom
+    Phi* phi = receiver->as_CheckCast()->obj()->as_Phi();
+
+    if (phi != NULL && phi->operand_count() == 2) {
+      // Get the two MethodHandle inputs from the Phi.
+      Value op1 = phi->operand_at(0);
+      Value op2 = phi->operand_at(1);
+      ciMethodHandle* mh1 = op1->type()->as_ObjectType()->constant_value()->as_method_handle();
+      ciMethodHandle* mh2 = op2->type()->as_ObjectType()->constant_value()->as_method_handle();
+
+      // Set the callee to have access to the class and signature in
+      // the MethodHandleCompiler.
+      mh1->set_callee(callee);
+      mh1->set_caller(method());
+      mh2->set_callee(callee);
+      mh2->set_caller(method());
+
+      // Get adapters for the MethodHandles.
+      ciMethod* mh1_adapter = mh1->get_method_handle_adapter();
+      ciMethod* mh2_adapter = mh2->get_method_handle_adapter();
+
+      if (mh1_adapter != NULL && mh2_adapter != NULL) {
+        set_inline_cleanup_info();
+
+        // Build the If guard
+        BlockBegin* one = new BlockBegin(next_bci());
+        BlockBegin* two = new BlockBegin(next_bci());
+        BlockBegin* end = new BlockBegin(next_bci());
+        Instruction* iff = append(new If(phi, If::eql, false, op1, one, two, NULL, false));
+        block()->set_end(iff->as_BlockEnd());
+
+        // Connect up the states
+        one->merge(block()->end()->state());
+        two->merge(block()->end()->state());
+
+        // Save the state for the second inlinee
+        ValueStack* state_before = copy_state_before();
+
+        // Parse first adapter
+        _last = _block = one;
+        if (!try_inline_full(mh1_adapter, /*holder_known=*/ true, end)) {
+          restore_inline_cleanup_info();
+          block()->clear_end();  // remove appended iff
+          return false;
+        }
+
+        // Parse second adapter
+        _last = _block = two;
+        _state = state_before;
+        if (!try_inline_full(mh2_adapter, /*holder_known=*/ true, end)) {
+          restore_inline_cleanup_info();
+          block()->clear_end();  // remove appended iff
+          return false;
+        }
+
+        connect_to_end(end);
+        return true;
+      }
+    }
+  }
+  return false;
+}
+
+
+bool GraphBuilder::for_invokedynamic_inline(ciMethod* callee) {
+  // Get the MethodHandle from the CallSite.
+  ciCallSite*     call_site     = stream()->get_call_site();
+  ciMethodHandle* method_handle = call_site->get_target();
+
+  // Set the callee to have access to the class and signature in the
+  // MethodHandleCompiler.
+  method_handle->set_callee(callee);
+  method_handle->set_caller(method());
+
+  // Get an adapter for the MethodHandle.
+  ciMethod* method_handle_adapter = method_handle->get_invokedynamic_adapter();
+  if (method_handle_adapter != NULL) {
+    if (try_inline(method_handle_adapter, /*holder_known=*/ true)) {
+      // Add a dependence for invalidation of the optimization.
+      if (!call_site->is_constant_call_site()) {
+        dependency_recorder()->assert_call_site_target_value(call_site, method_handle);
+      }
+      return true;
+    }
+  }
+  return false;
+}
+
+
 void GraphBuilder::inline_bailout(const char* msg) {
   assert(msg != NULL, "inline bailout msg must exist");
   _inline_bailout_msg = msg;
diff --git a/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp
index b41d947..8b8800e 100644
--- a/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp
+++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -315,9 +315,17 @@ class GraphBuilder VALUE_OBJ_CLASS_SPEC {
                                ValueStack* return_state) { scope_data()->set_inline_cleanup_info(block,
                                                                                                   return_prev,
                                                                                                   return_state); }
+  void set_inline_cleanup_info() {
+    set_inline_cleanup_info(_block, _last, _state);
+  }
   BlockBegin*  inline_cleanup_block() const              { return scope_data()->inline_cleanup_block();  }
   Instruction* inline_cleanup_return_prev() const        { return scope_data()->inline_cleanup_return_prev(); }
   ValueStack*  inline_cleanup_state() const              { return scope_data()->inline_cleanup_state();  }
+  void restore_inline_cleanup_info() {
+    _block = inline_cleanup_block();
+    _last  = inline_cleanup_return_prev();
+    _state = inline_cleanup_state();
+  }
   void incr_num_returns()                                { scope_data()->incr_num_returns();             }
   int  num_returns() const                               { return scope_data()->num_returns();           }
   intx max_inline_size() const                           { return scope_data()->max_inline_size();       }
@@ -329,11 +337,15 @@ class GraphBuilder VALUE_OBJ_CLASS_SPEC {
   void fill_sync_handler(Value lock, BlockBegin* sync_handler, bool default_handler = false);
 
   // inliners
-  bool try_inline(ciMethod* callee, bool holder_known);
+  bool try_inline(           ciMethod* callee, bool holder_known);
   bool try_inline_intrinsics(ciMethod* callee);
-  bool try_inline_full      (ciMethod* callee, bool holder_known);
+  bool try_inline_full(      ciMethod* callee, bool holder_known, BlockBegin* cont_block = NULL);
   bool try_inline_jsr(int jsr_dest_bci);
 
+  // JSR 292 support
+  bool for_method_handle_inline(ciMethod* callee);
+  bool for_invokedynamic_inline(ciMethod* callee);
+
   // helpers
   void inline_bailout(const char* msg);
   BlockBegin* header_block(BlockBegin* entry, BlockBegin::Flag f, ValueStack* state);
diff --git a/hotspot/src/share/vm/c1/c1_Instruction.cpp b/hotspot/src/share/vm/c1/c1_Instruction.cpp
index 46857e1..c723193 100644
--- a/hotspot/src/share/vm/c1/c1_Instruction.cpp
+++ b/hotspot/src/share/vm/c1/c1_Instruction.cpp
@@ -514,28 +514,17 @@ Constant::CompareResult Constant::compare(Instruction::Condition cond, Value rig
 
 void BlockBegin::set_end(BlockEnd* end) {
   assert(end != NULL, "should not reset block end to NULL");
-  BlockEnd* old_end = _end;
-  if (end == old_end) {
+  if (end == _end) {
     return;
   }
-  // Must make the predecessors/successors match up with the
-  // BlockEnd's notion.
-  int i, n;
-  if (old_end != NULL) {
-    // disconnect from the old end
-    old_end->set_begin(NULL);
+  clear_end();
 
-    // disconnect this block from it's current successors
-    for (i = 0; i < _successors.length(); i++) {
-      _successors.at(i)->remove_predecessor(this);
-    }
-  }
+  // Set the new end
   _end = end;
 
   _successors.clear();
   // Now reset successors list based on BlockEnd
-  n = end->number_of_sux();
-  for (i = 0; i < n; i++) {
+  for (int i = 0; i < end->number_of_sux(); i++) {
     BlockBegin* sux = end->sux_at(i);
     _successors.append(sux);
     sux->_predecessors.append(this);
@@ -544,6 +533,22 @@ void BlockBegin::set_end(BlockEnd* end) {
 }
 
 
+void BlockBegin::clear_end() {
+  // Must make the predecessors/successors match up with the
+  // BlockEnd's notion.
+  if (_end != NULL) {
+    // disconnect from the old end
+    _end->set_begin(NULL);
+
+    // disconnect this block from it's current successors
+    for (int i = 0; i < _successors.length(); i++) {
+      _successors.at(i)->remove_predecessor(this);
+    }
+    _end = NULL;
+  }
+}
+
+
 void BlockBegin::disconnect_edge(BlockBegin* from, BlockBegin* to) {
   // disconnect any edges between from and to
 #ifndef PRODUCT
diff --git a/hotspot/src/share/vm/c1/c1_Instruction.hpp b/hotspot/src/share/vm/c1/c1_Instruction.hpp
index 719c1f2..44022c2 100644
--- a/hotspot/src/share/vm/c1/c1_Instruction.hpp
+++ b/hotspot/src/share/vm/c1/c1_Instruction.hpp
@@ -1601,6 +1601,7 @@ LEAF(BlockBegin, StateSplit)
   void set_depth_first_number(int dfn)           { _depth_first_number = dfn; }
   void set_linear_scan_number(int lsn)           { _linear_scan_number = lsn; }
   void set_end(BlockEnd* end);
+  void clear_end();
   void disconnect_from_graph();
   static void disconnect_edge(BlockBegin* from, BlockBegin* to);
   BlockBegin* insert_block_between(BlockBegin* sux);
diff --git a/hotspot/src/share/vm/c1/c1_LIR.cpp b/hotspot/src/share/vm/c1/c1_LIR.cpp
index f6e10ec..267b966 100644
--- a/hotspot/src/share/vm/c1/c1_LIR.cpp
+++ b/hotspot/src/share/vm/c1/c1_LIR.cpp
@@ -142,7 +142,8 @@ void LIR_Address::verify() const {
 #endif
 #ifdef ARM
   assert(disp() == 0 || index()->is_illegal(), "can't have both");
-  assert(-4096 < disp() && disp() < 4096, "architecture constraint");
+  // Note: offsets higher than 4096 must not be rejected here. They can
+  // be handled by the back-end or will be rejected if not.
 #endif
 #ifdef _LP64
   assert(base()->is_cpu_register(), "wrong base operand");
@@ -1393,8 +1394,15 @@ void LIR_List::instanceof(LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Op
 }
 
 
-void LIR_List::store_check(LIR_Opr object, LIR_Opr array, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, CodeEmitInfo* info_for_exception) {
-  append(new LIR_OpTypeCheck(lir_store_check, object, array, tmp1, tmp2, tmp3, info_for_exception));
+void LIR_List::store_check(LIR_Opr object, LIR_Opr array, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3,
+                           CodeEmitInfo* info_for_exception, ciMethod* profiled_method, int profiled_bci) {
+  LIR_OpTypeCheck* c = new LIR_OpTypeCheck(lir_store_check, object, array, tmp1, tmp2, tmp3, info_for_exception);
+  if (profiled_method != NULL) {
+    c->set_profiled_method(profiled_method);
+    c->set_profiled_bci(profiled_bci);
+    c->set_should_profile(true);
+  }
+  append(c);
 }
 
 
diff --git a/hotspot/src/share/vm/c1/c1_LIR.hpp b/hotspot/src/share/vm/c1/c1_LIR.hpp
index a2770e4..c440b71 100644
--- a/hotspot/src/share/vm/c1/c1_LIR.hpp
+++ b/hotspot/src/share/vm/c1/c1_LIR.hpp
@@ -2100,7 +2100,7 @@ class LIR_List: public CompilationResourceObj {
   void fpop_raw()                                { append(new LIR_Op0(lir_fpop_raw)); }
 
   void instanceof(LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, bool fast_check, CodeEmitInfo* info_for_patch, ciMethod* profiled_method, int profiled_bci);
-  void store_check(LIR_Opr object, LIR_Opr array, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, CodeEmitInfo* info_for_exception);
+  void store_check(LIR_Opr object, LIR_Opr array, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, CodeEmitInfo* info_for_exception, ciMethod* profiled_method, int profiled_bci);
 
   void checkcast (LIR_Opr result, LIR_Opr object, ciKlass* klass,
                   LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, bool fast_check,
diff --git a/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp b/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
index d3b853b..258fde2 100644
--- a/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
+++ b/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
@@ -121,7 +121,7 @@ void LIR_Assembler::append_patching_stub(PatchingStub* stub) {
 
 void LIR_Assembler::check_codespace() {
   CodeSection* cs = _masm->code_section();
-  if (cs->remaining() < (int)(1*K)) {
+  if (cs->remaining() < (int)(NOT_LP64(1*K)LP64_ONLY(2*K))) {
     BAILOUT("CodeBuffer overflow");
   }
 }
diff --git a/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp b/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp
index 857b663..14b6298 100644
--- a/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp
+++ b/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp
@@ -133,7 +133,6 @@ class LIR_Assembler: public CompilationResourceObj {
   static bool is_small_constant(LIR_Opr opr);
 
   static LIR_Opr receiverOpr();
-  static LIR_Opr incomingReceiverOpr();
   static LIR_Opr osrBufferPointer();
 
   // stubs
diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp
index 676efe3..c2c2f7c 100644
--- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp
+++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp
@@ -2970,8 +2970,8 @@ void LIRGenerator::do_ProfileInvoke(ProfileInvoke* x) {
   // accessors are also always mature.
   if (!x->inlinee()->is_accessor()) {
     CodeEmitInfo* info = state_for(x, x->state(), true);
-    // Increment invocation counter, don't notify the runtime, because we don't inline loops,
-    increment_event_counter_impl(info, x->inlinee(), 0, InvocationEntryBci, false, false);
+    // Notify the runtime very infrequently only to take care of counter overflows
+    increment_event_counter_impl(info, x->inlinee(), (1 << Tier23InlineeNotifyFreqLog) - 1, InvocationEntryBci, false, true);
   }
 }
 
diff --git a/hotspot/src/share/vm/c1/c1_LinearScan.cpp b/hotspot/src/share/vm/c1/c1_LinearScan.cpp
index ef41cfd..38ee82a 100644
--- a/hotspot/src/share/vm/c1/c1_LinearScan.cpp
+++ b/hotspot/src/share/vm/c1/c1_LinearScan.cpp
@@ -2404,7 +2404,7 @@ OopMap* LinearScan::compute_oop_map(IntervalWalker* iw, LIR_Op* op, CodeEmitInfo
       assert(!is_call_site || assigned_reg >= nof_regs || !is_caller_save(assigned_reg), "interval is in a caller-save register at a call -> register will be overwritten");
 
       VMReg name = vm_reg_for_interval(interval);
-      map->set_oop(name);
+      set_oop(map, name);
 
       // Spill optimization: when the stack value is guaranteed to be always correct,
       // then it must be added to the oop map even if the interval is currently in a register
@@ -2415,7 +2415,7 @@ OopMap* LinearScan::compute_oop_map(IntervalWalker* iw, LIR_Op* op, CodeEmitInfo
         assert(interval->canonical_spill_slot() >= LinearScan::nof_regs, "no spill slot assigned");
         assert(interval->assigned_reg() < LinearScan::nof_regs, "interval is on stack, so stack slot is registered twice");
 
-        map->set_oop(frame_map()->slot_regname(interval->canonical_spill_slot() - LinearScan::nof_regs));
+        set_oop(map, frame_map()->slot_regname(interval->canonical_spill_slot() - LinearScan::nof_regs));
       }
     }
   }
@@ -2424,7 +2424,7 @@ OopMap* LinearScan::compute_oop_map(IntervalWalker* iw, LIR_Op* op, CodeEmitInfo
   assert(info->stack() != NULL, "CodeEmitInfo must always have a stack");
   int locks_count = info->stack()->total_locks_size();
   for (int i = 0; i < locks_count; i++) {
-    map->set_oop(frame_map()->monitor_object_regname(i));
+    set_oop(map, frame_map()->monitor_object_regname(i));
   }
 
   return map;
diff --git a/hotspot/src/share/vm/c1/c1_LinearScan.hpp b/hotspot/src/share/vm/c1/c1_LinearScan.hpp
index 51789eb..133cc85 100644
--- a/hotspot/src/share/vm/c1/c1_LinearScan.hpp
+++ b/hotspot/src/share/vm/c1/c1_LinearScan.hpp
@@ -352,6 +352,13 @@ class LinearScan : public CompilationResourceObj {
 
   MonitorValue*  location_for_monitor_index(int monitor_index);
   LocationValue* location_for_name(int name, Location::Type loc_type);
+  void set_oop(OopMap* map, VMReg name) {
+    if (map->legal_vm_reg_name(name)) {
+      map->set_oop(name);
+    } else {
+      bailout("illegal oopMap register name");
+    }
+  }
 
   int append_scope_value_for_constant(LIR_Opr opr, GrowableArray<ScopeValue*>* scope_values);
   int append_scope_value_for_operand(LIR_Opr opr, GrowableArray<ScopeValue*>* scope_values);
diff --git a/hotspot/src/share/vm/c1/c1_Runtime1.cpp b/hotspot/src/share/vm/c1/c1_Runtime1.cpp
index d806b83..675d389 100644
--- a/hotspot/src/share/vm/c1/c1_Runtime1.cpp
+++ b/hotspot/src/share/vm/c1/c1_Runtime1.cpp
@@ -375,14 +375,6 @@ JRT_ENTRY(void, Runtime1::throw_array_store_exception(JavaThread* thread, oopDes
 JRT_END
 
 
-JRT_ENTRY(void, Runtime1::post_jvmti_exception_throw(JavaThread* thread))
-  if (JvmtiExport::can_post_on_exceptions()) {
-    vframeStream vfst(thread, true);
-    address bcp = vfst.method()->bcp_from(vfst.bci());
-    JvmtiExport::post_exception_throw(thread, vfst.method(), bcp, thread->exception_oop());
-  }
-JRT_END
-
 // counter_overflow() is called from within C1-compiled methods. The enclosing method is the method
 // associated with the top activation record. The inlinee (that is possibly included in the enclosing
 // method) method oop is passed as an argument. In order to do that it is embedded in the code as
diff --git a/hotspot/src/share/vm/c1/c1_Runtime1.hpp b/hotspot/src/share/vm/c1/c1_Runtime1.hpp
index 78f73bf..5499740 100644
--- a/hotspot/src/share/vm/c1/c1_Runtime1.hpp
+++ b/hotspot/src/share/vm/c1/c1_Runtime1.hpp
@@ -65,7 +65,6 @@ class StubAssembler;
   stub(monitorexit_nofpu)              /* optimized version that does not preserve fpu registers */ \
   stub(access_field_patching)        \
   stub(load_klass_patching)          \
-  stub(jvmti_exception_throw)        \
   stub(g1_pre_barrier_slow)          \
   stub(g1_post_barrier_slow)         \
   stub(fpu2long_stub)                \
@@ -141,7 +140,6 @@ class Runtime1: public AllStatic {
   static void unimplemented_entry   (JavaThread* thread, StubID id);
 
   static address exception_handler_for_pc(JavaThread* thread);
-  static void post_jvmti_exception_throw(JavaThread* thread);
 
   static void throw_range_check_exception(JavaThread* thread, int index);
   static void throw_index_exception(JavaThread* thread, int index);
diff --git a/hotspot/src/share/vm/c1/c1_globals.hpp b/hotspot/src/share/vm/c1/c1_globals.hpp
index 110371d..15f3cc1 100644
--- a/hotspot/src/share/vm/c1/c1_globals.hpp
+++ b/hotspot/src/share/vm/c1/c1_globals.hpp
@@ -47,6 +47,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "c1_globals_windows.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "c1_globals_bsd.hpp"
+#endif
 
 //
 // Defines all global flags used by the client compiler.
@@ -278,7 +281,7 @@
   product(intx, CompilationRepeat, 0,                                       \
           "Number of times to recompile method before returning result")    \
                                                                             \
-  develop(intx, NMethodSizeLimit, (32*K)*wordSize,                          \
+  develop(intx, NMethodSizeLimit, (64*K)*wordSize,                          \
           "Maximum size of a compiled method.")                             \
                                                                             \
   develop(bool, TraceFPUStack, false,                                       \
diff --git a/hotspot/src/share/vm/ci/ciArrayKlass.hpp b/hotspot/src/share/vm/ci/ciArrayKlass.hpp
index 98b0051..aae2f33 100644
--- a/hotspot/src/share/vm/ci/ciArrayKlass.hpp
+++ b/hotspot/src/share/vm/ci/ciArrayKlass.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,6 +32,7 @@
 // This class, and its subclasses represent klassOops in the
 // HotSpot virtual machine whose Klass part is an arrayKlass.
 class ciArrayKlass : public ciKlass {
+  CI_PACKAGE_ACCESS
 private:
   jint _dimension;
 
diff --git a/hotspot/src/share/vm/ci/ciCallProfile.hpp b/hotspot/src/share/vm/ci/ciCallProfile.hpp
index 438067a..0810149 100644
--- a/hotspot/src/share/vm/ci/ciCallProfile.hpp
+++ b/hotspot/src/share/vm/ci/ciCallProfile.hpp
@@ -79,6 +79,17 @@ public:
     assert(i < _limit, "out of Call Profile MorphismLimit");
     return _receiver[i];
   }
+
+  // Rescale the current profile based on the incoming scale
+  ciCallProfile rescale(double scale) {
+    assert(scale >= 0 && scale <= 1.0, "out of range");
+    ciCallProfile call = *this;
+    call._count = (int)(call._count * scale);
+    for (int i = 0; i < _morphism; i++) {
+      call._receiver_count[i] = (int)(call._receiver_count[i] * scale);
+    }
+    return call;
+  }
 };
 
 #endif // SHARE_VM_CI_CICALLPROFILE_HPP
diff --git a/hotspot/src/share/vm/ci/ciCallSite.cpp b/hotspot/src/share/vm/ci/ciCallSite.cpp
index b2118e8..794042a 100644
--- a/hotspot/src/share/vm/ci/ciCallSite.cpp
+++ b/hotspot/src/share/vm/ci/ciCallSite.cpp
@@ -28,6 +28,16 @@
 
 // ciCallSite
 
+bool ciCallSite::is_constant_call_site() {
+  return klass()->is_subclass_of(CURRENT_ENV->ConstantCallSite_klass());
+}
+bool ciCallSite::is_mutable_call_site() {
+  return klass()->is_subclass_of(CURRENT_ENV->MutableCallSite_klass());
+}
+bool ciCallSite::is_volatile_call_site() {
+  return klass()->is_subclass_of(CURRENT_ENV->VolatileCallSite_klass());
+}
+
 // ------------------------------------------------------------------
 // ciCallSite::get_target
 //
diff --git a/hotspot/src/share/vm/ci/ciCallSite.hpp b/hotspot/src/share/vm/ci/ciCallSite.hpp
index f9ad78d..063f1e3 100644
--- a/hotspot/src/share/vm/ci/ciCallSite.hpp
+++ b/hotspot/src/share/vm/ci/ciCallSite.hpp
@@ -37,6 +37,10 @@ public:
   // What kind of ciObject is this?
   bool is_call_site() const { return true; }
 
+  bool is_constant_call_site();
+  bool is_mutable_call_site();
+  bool is_volatile_call_site();
+
   // Return the target MethodHandle of this CallSite.
   ciMethodHandle* get_target() const;
 
diff --git a/hotspot/src/share/vm/ci/ciClassList.hpp b/hotspot/src/share/vm/ci/ciClassList.hpp
index bc96594..4d19439 100644
--- a/hotspot/src/share/vm/ci/ciClassList.hpp
+++ b/hotspot/src/share/vm/ci/ciClassList.hpp
@@ -77,12 +77,14 @@ class         ciTypeArrayKlassKlass;
 
 // Everyone gives access to ciObjectFactory
 #define CI_PACKAGE_ACCESS \
-friend class ciObjectFactory;
+friend class ciObjectFactory; \
+friend class VMStructs;
 
 // These are the packages that have access to ciEnv
 // Any more access must be given explicitly.
 #define CI_PACKAGE_ACCESS_TO           \
 friend class ciObjectFactory;          \
+friend class VMStructs;                \
 friend class ciCallSite;               \
 friend class ciConstantPoolCache;      \
 friend class ciField;                  \
diff --git a/hotspot/src/share/vm/ci/ciConstant.hpp b/hotspot/src/share/vm/ci/ciConstant.hpp
index f217faa..8cdc893 100644
--- a/hotspot/src/share/vm/ci/ciConstant.hpp
+++ b/hotspot/src/share/vm/ci/ciConstant.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,6 +32,7 @@
 //
 // This class represents a constant value.
 class ciConstant VALUE_OBJ_CLASS_SPEC {
+  friend class VMStructs;
 private:
   friend class ciEnv;
   friend class ciField;
@@ -46,9 +47,6 @@ private:
     ciObject* _object;
   } _value;
 
-  // Implementation of the print method.
-  void print_impl(outputStream* st);
-
 public:
 
   ciConstant() {
diff --git a/hotspot/src/share/vm/ci/ciEnv.cpp b/hotspot/src/share/vm/ci/ciEnv.cpp
index 58f1aa0..82492a0 100644
--- a/hotspot/src/share/vm/ci/ciEnv.cpp
+++ b/hotspot/src/share/vm/ci/ciEnv.cpp
@@ -884,42 +884,63 @@ bool ciEnv::system_dictionary_modification_counter_changed() {
 }
 
 // ------------------------------------------------------------------
-// ciEnv::check_for_system_dictionary_modification
-// Check for changes to the system dictionary during compilation
-// class loads, evolution, breakpoints
-void ciEnv::check_for_system_dictionary_modification(ciMethod* target) {
+// ciEnv::validate_compile_task_dependencies
+//
+// Check for changes during compilation (e.g. class loads, evolution,
+// breakpoints, call site invalidation).
+void ciEnv::validate_compile_task_dependencies(ciMethod* target) {
   if (failing())  return;  // no need for further checks
 
-  // Dependencies must be checked when the system dictionary changes.
-  // If logging is enabled all violated dependences will be recorded in
-  // the log.  In debug mode check dependencies even if the system
-  // dictionary hasn't changed to verify that no invalid dependencies
-  // were inserted.  Any violated dependences in this case are dumped to
-  // the tty.
+  // First, check non-klass dependencies as we might return early and
+  // not check klass dependencies if the system dictionary
+  // modification counter hasn't changed (see below).
+  for (Dependencies::DepStream deps(dependencies()); deps.next(); ) {
+    if (deps.is_klass_type())  continue;  // skip klass dependencies
+    klassOop witness = deps.check_dependency();
+    if (witness != NULL) {
+      record_failure("invalid non-klass dependency");
+      return;
+    }
+  }
 
+  // Klass dependencies must be checked when the system dictionary
+  // changes.  If logging is enabled all violated dependences will be
+  // recorded in the log.  In debug mode check dependencies even if
+  // the system dictionary hasn't changed to verify that no invalid
+  // dependencies were inserted.  Any violated dependences in this
+  // case are dumped to the tty.
   bool counter_changed = system_dictionary_modification_counter_changed();
-  bool test_deps = counter_changed;
-  DEBUG_ONLY(test_deps = true);
-  if (!test_deps)  return;
-
-  bool print_failures = false;
-  DEBUG_ONLY(print_failures = !counter_changed);
-
-  bool keep_going = (print_failures || xtty != NULL);
 
-  int violated = 0;
+  bool verify_deps = trueInDebug;
+  if (!counter_changed && !verify_deps)  return;
 
+  int klass_violations = 0;
   for (Dependencies::DepStream deps(dependencies()); deps.next(); ) {
+    if (!deps.is_klass_type())  continue;  // skip non-klass dependencies
     klassOop witness = deps.check_dependency();
     if (witness != NULL) {
-      ++violated;
-      if (print_failures)  deps.print_dependency(witness, /*verbose=*/ true);
-      // If there's no log and we're not sanity-checking, we're done.
-      if (!keep_going)     break;
+      klass_violations++;
+      if (!counter_changed) {
+        // Dependence failed but counter didn't change.  Log a message
+        // describing what failed and allow the assert at the end to
+        // trigger.
+        deps.print_dependency(witness);
+      } else if (xtty == NULL) {
+        // If we're not logging then a single violation is sufficient,
+        // otherwise we want to log all the dependences which were
+        // violated.
+        break;
+      }
     }
   }
 
-  if (violated != 0) {
+  if (klass_violations != 0) {
+#ifdef ASSERT
+    if (!counter_changed && !PrintCompilation) {
+      // Print out the compile task that failed
+      _task->print_line();
+    }
+#endif
     assert(counter_changed, "failed dependencies, but counter didn't change");
     record_failure("concurrent class loading");
   }
@@ -938,7 +959,6 @@ void ciEnv::register_method(ciMethod* target,
                             ImplicitExceptionTable* inc_table,
                             AbstractCompiler* compiler,
                             int comp_level,
-                            bool has_debug_info,
                             bool has_unsafe_access) {
   VM_ENTRY_MARK;
   nmethod* nm = NULL;
@@ -978,8 +998,8 @@ void ciEnv::register_method(ciMethod* target,
       // Encode the dependencies now, so we can check them right away.
       dependencies()->encode_content_bytes();
 
-      // Check for {class loads, evolution, breakpoints} during compilation
-      check_for_system_dictionary_modification(target);
+      // Check for {class loads, evolution, breakpoints, ...} during compilation
+      validate_compile_task_dependencies(target);
     }
 
     methodHandle method(THREAD, target->get_methodOop());
@@ -1033,7 +1053,6 @@ void ciEnv::register_method(ciMethod* target,
         CompileBroker::handle_full_code_cache();
       }
     } else {
-      NOT_PRODUCT(nm->set_has_debug_info(has_debug_info); )
       nm->set_has_unsafe_access(has_unsafe_access);
 
       // Record successful registration.
diff --git a/hotspot/src/share/vm/ci/ciEnv.hpp b/hotspot/src/share/vm/ci/ciEnv.hpp
index fb6647c..f5242ca 100644
--- a/hotspot/src/share/vm/ci/ciEnv.hpp
+++ b/hotspot/src/share/vm/ci/ciEnv.hpp
@@ -247,9 +247,9 @@ private:
   // Is this thread currently in the VM state?
   static bool is_in_vm();
 
-  // Helper routine for determining the validity of a compilation
-  // with respect to concurrent class loading.
-  void check_for_system_dictionary_modification(ciMethod* target);
+  // Helper routine for determining the validity of a compilation with
+  // respect to method dependencies (e.g. concurrent class loading).
+  void validate_compile_task_dependencies(ciMethod* target);
 
 public:
   enum {
@@ -317,8 +317,7 @@ public:
                        ImplicitExceptionTable*   inc_table,
                        AbstractCompiler*         compiler,
                        int                       comp_level,
-                       bool                      has_debug_info = true,
-                       bool                      has_unsafe_access = false);
+                       bool                      has_unsafe_access);
 
 
   // Access to certain well known ciObjects.
diff --git a/hotspot/src/share/vm/ci/ciField.hpp b/hotspot/src/share/vm/ci/ciField.hpp
index 6406dde..bd65abe 100644
--- a/hotspot/src/share/vm/ci/ciField.hpp
+++ b/hotspot/src/share/vm/ci/ciField.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -64,9 +64,6 @@ private:
   // shared constructor code
   void initialize_from(fieldDescriptor* fd);
 
-  // The implementation of the print method.
-  void print_impl(outputStream* st);
-
 public:
   ciFlags flags() { return _flags; }
 
@@ -178,6 +175,13 @@ public:
   bool is_volatile    () { return flags().is_volatile(); }
   bool is_transient   () { return flags().is_transient(); }
 
+  bool is_call_site_target() {
+    ciInstanceKlass* callsite_klass = CURRENT_ENV->CallSite_klass();
+    if (callsite_klass == NULL)
+      return false;
+    return (holder()->is_subclass_of(callsite_klass) && (name() == ciSymbol::target_name()));
+  }
+
   // Debugging output
   void print();
   void print_name_on(outputStream* st);
diff --git a/hotspot/src/share/vm/ci/ciInstanceKlass.cpp b/hotspot/src/share/vm/ci/ciInstanceKlass.cpp
index 35ee2b8..f10b92f 100644
--- a/hotspot/src/share/vm/ci/ciInstanceKlass.cpp
+++ b/hotspot/src/share/vm/ci/ciInstanceKlass.cpp
@@ -31,6 +31,7 @@
 #include "memory/allocation.hpp"
 #include "memory/allocation.inline.hpp"
 #include "oops/oop.inline.hpp"
+#include "oops/fieldStreams.hpp"
 #include "runtime/fieldDescriptor.hpp"
 
 // ciInstanceKlass
@@ -412,7 +413,7 @@ GrowableArray<ciField*>* ciInstanceKlass::non_static_fields() {
     VM_ENTRY_MARK;
     ciEnv* curEnv = ciEnv::current();
     instanceKlass* ik = get_instanceKlass();
-    int max_n_fields = ik->fields()->length()/instanceKlass::next_offset;
+    int max_n_fields = ik->java_fields_count();
 
     Arena* arena = curEnv->arena();
     _non_static_fields =
@@ -476,23 +477,6 @@ int ciInstanceKlass::compute_nonstatic_fields() {
   // Now sort them by offset, ascending.
   // (In principle, they could mix with superclass fields.)
   fields->sort(sort_field_by_offset);
-#ifdef ASSERT
-  int last_offset = instanceOopDesc::base_offset_in_bytes();
-  for (int i = 0; i < fields->length(); i++) {
-    ciField* field = fields->at(i);
-    int offset = field->offset_in_bytes();
-    int size   = (field->_type == NULL) ? heapOopSize : field->size_in_bytes();
-    assert(last_offset <= offset, err_msg("no field overlap: %d <= %d", last_offset, offset));
-    if (last_offset > (int)sizeof(oopDesc))
-      assert((offset - last_offset) < BytesPerLong, "no big holes");
-    // Note:  Two consecutive T_BYTE fields will be separated by wordSize-1
-    // padding bytes if one of them is declared by a superclass.
-    // This is a minor inefficiency classFileParser.cpp.
-    last_offset = offset + size;
-  }
-  assert(last_offset <= (int)instanceOopDesc::base_offset_in_bytes() + fsize, "no overflow");
-#endif
-
   _nonstatic_fields = fields;
   return flen;
 }
@@ -505,33 +489,29 @@ ciInstanceKlass::compute_nonstatic_fields_impl(GrowableArray<ciField*>*
   int flen = 0;
   GrowableArray<ciField*>* fields = NULL;
   instanceKlass* k = get_instanceKlass();
-  typeArrayOop fields_array = k->fields();
-  for (int pass = 0; pass <= 1; pass++) {
-    for (int i = 0, alen = fields_array->length(); i < alen; i += instanceKlass::next_offset) {
-      fieldDescriptor fd;
-      fd.initialize(k->as_klassOop(), i);
-      if (fd.is_static())  continue;
-      if (pass == 0) {
-        flen += 1;
-      } else {
-        ciField* field = new (arena) ciField(&fd);
-        fields->append(field);
-      }
-    }
+  for (JavaFieldStream fs(k); !fs.done(); fs.next()) {
+    if (fs.access_flags().is_static())  continue;
+    flen += 1;
+  }
 
-    // Between passes, allocate the array:
-    if (pass == 0) {
-      if (flen == 0) {
-        return NULL;  // return nothing if none are locally declared
-      }
-      if (super_fields != NULL) {
-        flen += super_fields->length();
-      }
-      fields = new (arena) GrowableArray<ciField*>(arena, flen, 0, NULL);
-      if (super_fields != NULL) {
-        fields->appendAll(super_fields);
-      }
-    }
+  // allocate the array:
+  if (flen == 0) {
+    return NULL;  // return nothing if none are locally declared
+  }
+  if (super_fields != NULL) {
+    flen += super_fields->length();
+  }
+  fields = new (arena) GrowableArray<ciField*>(arena, flen, 0, NULL);
+  if (super_fields != NULL) {
+    fields->appendAll(super_fields);
+  }
+
+  for (JavaFieldStream fs(k); !fs.done(); fs.next()) {
+    if (fs.access_flags().is_static())  continue;
+    fieldDescriptor fd;
+    fd.initialize(k->as_klassOop(), fs.index());
+    ciField* field = new (arena) ciField(&fd);
+    fields->append(field);
   }
   assert(fields->length() == flen, "sanity");
   return fields;
diff --git a/hotspot/src/share/vm/ci/ciMethod.cpp b/hotspot/src/share/vm/ci/ciMethod.cpp
index 89fb4aa..a985d5e 100644
--- a/hotspot/src/share/vm/ci/ciMethod.cpp
+++ b/hotspot/src/share/vm/ci/ciMethod.cpp
@@ -1017,6 +1017,34 @@ int ciMethod::highest_osr_comp_level() {
 }
 
 // ------------------------------------------------------------------
+// ciMethod::code_size_for_inlining
+//
+// Code size for inlining decisions.
+//
+// Don't fully count method handle adapters against inlining budgets:
+// the metric we use here is the number of call sites in the adapter
+// as they are probably the instructions which generate some code.
+int ciMethod::code_size_for_inlining() {
+  check_is_loaded();
+
+  // Method handle adapters
+  if (is_method_handle_adapter()) {
+    // Count call sites
+    int call_site_count = 0;
+    ciBytecodeStream iter(this);
+    while (iter.next() != ciBytecodeStream::EOBC()) {
+      if (Bytecodes::is_invoke(iter.cur_bc())) {
+        call_site_count++;
+      }
+    }
+    return call_site_count;
+  }
+
+  // Normal method
+  return code_size();
+}
+
+// ------------------------------------------------------------------
 // ciMethod::instructions_size
 //
 // This is a rough metric for "fat" methods, compared before inlining
diff --git a/hotspot/src/share/vm/ci/ciMethod.hpp b/hotspot/src/share/vm/ci/ciMethod.hpp
index feab1e6..db71752 100644
--- a/hotspot/src/share/vm/ci/ciMethod.hpp
+++ b/hotspot/src/share/vm/ci/ciMethod.hpp
@@ -157,6 +157,9 @@ class ciMethod : public ciObject {
   int interpreter_invocation_count() const       { check_is_loaded(); return _interpreter_invocation_count; }
   int interpreter_throwout_count() const         { check_is_loaded(); return _interpreter_throwout_count; }
 
+  // Code size for inlining decisions.
+  int code_size_for_inlining();
+
   int comp_level();
   int highest_osr_comp_level();
 
diff --git a/hotspot/src/share/vm/ci/ciMethodHandle.cpp b/hotspot/src/share/vm/ci/ciMethodHandle.cpp
index 0e73abc..b4c9161 100644
--- a/hotspot/src/share/vm/ci/ciMethodHandle.cpp
+++ b/hotspot/src/share/vm/ci/ciMethodHandle.cpp
@@ -37,7 +37,7 @@
 // ciMethodHandle::get_adapter
 //
 // Return an adapter for this MethodHandle.
-ciMethod* ciMethodHandle::get_adapter_impl(bool is_invokedynamic) const {
+ciMethod* ciMethodHandle::get_adapter_impl(bool is_invokedynamic) {
   VM_ENTRY_MARK;
   Handle h(get_oop());
   methodHandle callee(_callee->get_methodOop());
@@ -73,7 +73,7 @@ ciMethod* ciMethodHandle::get_adapter_impl(bool is_invokedynamic) const {
 // ciMethodHandle::get_adapter
 //
 // Return an adapter for this MethodHandle.
-ciMethod* ciMethodHandle::get_adapter(bool is_invokedynamic) const {
+ciMethod* ciMethodHandle::get_adapter(bool is_invokedynamic) {
   ciMethod* result = get_adapter_impl(is_invokedynamic);
   if (result) {
     // Fake up the MDO maturity.
@@ -86,11 +86,22 @@ ciMethod* ciMethodHandle::get_adapter(bool is_invokedynamic) const {
 }
 
 
+#ifndef PRODUCT
 // ------------------------------------------------------------------
-// ciMethodHandle::print_impl
+// ciMethodHandle::print_chain_impl
 //
 // Implementation of the print method.
-void ciMethodHandle::print_impl(outputStream* st) {
-  st->print(" type=");
-  get_oop()->print();
+void ciMethodHandle::print_chain_impl(outputStream* st) {
+  ASSERT_IN_VM;
+  MethodHandleChain::print(get_oop());
 }
+
+
+// ------------------------------------------------------------------
+// ciMethodHandle::print_chain
+//
+// Implementation of the print_chain method.
+void ciMethodHandle::print_chain(outputStream* st) {
+  GUARDED_VM_ENTRY(print_chain_impl(st););
+}
+#endif
diff --git a/hotspot/src/share/vm/ci/ciMethodHandle.hpp b/hotspot/src/share/vm/ci/ciMethodHandle.hpp
index b8919fe..e19d053 100644
--- a/hotspot/src/share/vm/ci/ciMethodHandle.hpp
+++ b/hotspot/src/share/vm/ci/ciMethodHandle.hpp
@@ -37,19 +37,23 @@ private:
   ciMethod*      _callee;
   ciMethod*      _caller;
   ciCallProfile  _profile;
+  ciMethod*      _method_handle_adapter;
+  ciMethod*      _invokedynamic_adapter;
 
   // Return an adapter for this MethodHandle.
-  ciMethod* get_adapter_impl(bool is_invokedynamic) const;
-  ciMethod* get_adapter(     bool is_invokedynamic) const;
+  ciMethod* get_adapter_impl(bool is_invokedynamic);
+  ciMethod* get_adapter(     bool is_invokedynamic);
 
 protected:
-  void print_impl(outputStream* st);
+  void print_chain_impl(outputStream* st) PRODUCT_RETURN;
 
 public:
   ciMethodHandle(instanceHandle h_i) :
     ciInstance(h_i),
     _callee(NULL),
-    _caller(NULL)
+    _caller(NULL),
+    _method_handle_adapter(NULL),
+    _invokedynamic_adapter(NULL)
   {}
 
   // What kind of ciObject is this?
@@ -60,10 +64,22 @@ public:
   void set_call_profile(ciCallProfile profile)  { _profile = profile; }
 
   // Return an adapter for a MethodHandle call.
-  ciMethod* get_method_handle_adapter() const { return get_adapter(false); }
+  ciMethod* get_method_handle_adapter() {
+    if (_method_handle_adapter == NULL) {
+      _method_handle_adapter = get_adapter(false);
+    }
+    return _method_handle_adapter;
+  }
 
   // Return an adapter for an invokedynamic call.
-  ciMethod* get_invokedynamic_adapter() const { return get_adapter(true);  }
+  ciMethod* get_invokedynamic_adapter() {
+    if (_invokedynamic_adapter == NULL) {
+      _invokedynamic_adapter = get_adapter(true);
+    }
+    return _invokedynamic_adapter;
+  }
+
+  void print_chain(outputStream* st = tty) PRODUCT_RETURN;
 };
 
 #endif // SHARE_VM_CI_CIMETHODHANDLE_HPP
diff --git a/hotspot/src/share/vm/ci/ciObject.cpp b/hotspot/src/share/vm/ci/ciObject.cpp
index b7dd1e5..0f96f5b 100644
--- a/hotspot/src/share/vm/ci/ciObject.cpp
+++ b/hotspot/src/share/vm/ci/ciObject.cpp
@@ -194,16 +194,26 @@ bool ciObject::can_be_constant() {
 // ciObject::should_be_constant()
 bool ciObject::should_be_constant() {
   if (ScavengeRootsInCode >= 2)  return true;  // force everybody to be a constant
-  if (!JavaObjectsInPerm && !is_null_object()) {
+  if (is_null_object()) return true;
+
+  ciEnv* env = CURRENT_ENV;
+  if (!JavaObjectsInPerm) {
     // We want Strings and Classes to be embeddable by default since
     // they used to be in the perm world.  Not all Strings used to be
     // embeddable but there's no easy way to distinguish the interned
     // from the regulars ones so just treat them all that way.
-    ciEnv* env = CURRENT_ENV;
     if (klass() == env->String_klass() || klass() == env->Class_klass()) {
       return true;
     }
   }
+  if (EnableInvokeDynamic &&
+      (klass()->is_subclass_of(env->MethodHandle_klass()) ||
+       klass()->is_subclass_of(env->CallSite_klass()))) {
+    assert(ScavengeRootsInCode >= 1, "must be");
+    // We want to treat these aggressively.
+    return true;
+  }
+
   return handle() == NULL || is_perm();
 }
 
diff --git a/hotspot/src/share/vm/ci/ciObjectFactory.hpp b/hotspot/src/share/vm/ci/ciObjectFactory.hpp
index 12185f2..6222b9f 100644
--- a/hotspot/src/share/vm/ci/ciObjectFactory.hpp
+++ b/hotspot/src/share/vm/ci/ciObjectFactory.hpp
@@ -36,6 +36,9 @@
 // which ensures that for each oop, at most one ciObject is created.
 // This invariant allows efficient implementation of ciObject.
 class ciObjectFactory : public ResourceObj {
+  friend class VMStructs;
+  friend class ciEnv;
+
 private:
   static volatile bool _initialized;
   static GrowableArray<ciObject*>* _shared_ci_objects;
diff --git a/hotspot/src/share/vm/ci/ciStreams.hpp b/hotspot/src/share/vm/ci/ciStreams.hpp
index 7ad6ef0..b03642c 100644
--- a/hotspot/src/share/vm/ci/ciStreams.hpp
+++ b/hotspot/src/share/vm/ci/ciStreams.hpp
@@ -129,7 +129,8 @@ public:
   // Return current ByteCode and increment PC to next bytecode, skipping all
   // intermediate constants.  Returns EOBC at end.
   // Expected usage:
-  //     while( (bc = iter.next()) != EOBC() ) { ... }
+  //     ciBytecodeStream iter(m);
+  //     while (iter.next() != ciBytecodeStream::EOBC()) { ... }
   Bytecodes::Code next() {
     _bc_start = _pc;                        // Capture start of bc
     if( _pc >= _end ) return EOBC();        // End-Of-Bytecodes
diff --git a/hotspot/src/share/vm/classfile/classFileParser.cpp b/hotspot/src/share/vm/classfile/classFileParser.cpp
index 4c664bd..b28b8ad 100644
--- a/hotspot/src/share/vm/classfile/classFileParser.cpp
+++ b/hotspot/src/share/vm/classfile/classFileParser.cpp
@@ -36,6 +36,7 @@
 #include "memory/oopFactory.hpp"
 #include "memory/universe.inline.hpp"
 #include "oops/constantPoolOop.hpp"
+#include "oops/fieldStreams.hpp"
 #include "oops/instanceKlass.hpp"
 #include "oops/instanceMirrorKlass.hpp"
 #include "oops/klass.inline.hpp"
@@ -991,42 +992,98 @@ enum FieldAllocationType {
   STATIC_BYTE,          // Boolean, Byte, char
   STATIC_SHORT,         // shorts
   STATIC_WORD,          // ints
-  STATIC_DOUBLE,        // long or double
-  STATIC_ALIGNED_DOUBLE,// aligned long or double
+  STATIC_DOUBLE,        // aligned long or double
   NONSTATIC_OOP,
   NONSTATIC_BYTE,
   NONSTATIC_SHORT,
   NONSTATIC_WORD,
   NONSTATIC_DOUBLE,
-  NONSTATIC_ALIGNED_DOUBLE
+  MAX_FIELD_ALLOCATION_TYPE,
+  BAD_ALLOCATION_TYPE = -1
 };
 
+static FieldAllocationType _basic_type_to_atype[2 * (T_CONFLICT + 1)] = {
+  BAD_ALLOCATION_TYPE, // 0
+  BAD_ALLOCATION_TYPE, // 1
+  BAD_ALLOCATION_TYPE, // 2
+  BAD_ALLOCATION_TYPE, // 3
+  NONSTATIC_BYTE ,     // T_BOOLEAN  =  4,
+  NONSTATIC_SHORT,     // T_CHAR     =  5,
+  NONSTATIC_WORD,      // T_FLOAT    =  6,
+  NONSTATIC_DOUBLE,    // T_DOUBLE   =  7,
+  NONSTATIC_BYTE,      // T_BYTE     =  8,
+  NONSTATIC_SHORT,     // T_SHORT    =  9,
+  NONSTATIC_WORD,      // T_INT      = 10,
+  NONSTATIC_DOUBLE,    // T_LONG     = 11,
+  NONSTATIC_OOP,       // T_OBJECT   = 12,
+  NONSTATIC_OOP,       // T_ARRAY    = 13,
+  BAD_ALLOCATION_TYPE, // T_VOID     = 14,
+  BAD_ALLOCATION_TYPE, // T_ADDRESS  = 15,
+  BAD_ALLOCATION_TYPE, // T_NARROWOOP= 16,
+  BAD_ALLOCATION_TYPE, // T_CONFLICT = 17,
+  BAD_ALLOCATION_TYPE, // 0
+  BAD_ALLOCATION_TYPE, // 1
+  BAD_ALLOCATION_TYPE, // 2
+  BAD_ALLOCATION_TYPE, // 3
+  STATIC_BYTE ,        // T_BOOLEAN  =  4,
+  STATIC_SHORT,        // T_CHAR     =  5,
+  STATIC_WORD,          // T_FLOAT    =  6,
+  STATIC_DOUBLE,       // T_DOUBLE   =  7,
+  STATIC_BYTE,         // T_BYTE     =  8,
+  STATIC_SHORT,        // T_SHORT    =  9,
+  STATIC_WORD,         // T_INT      = 10,
+  STATIC_DOUBLE,       // T_LONG     = 11,
+  STATIC_OOP,          // T_OBJECT   = 12,
+  STATIC_OOP,          // T_ARRAY    = 13,
+  BAD_ALLOCATION_TYPE, // T_VOID     = 14,
+  BAD_ALLOCATION_TYPE, // T_ADDRESS  = 15,
+  BAD_ALLOCATION_TYPE, // T_NARROWOOP= 16,
+  BAD_ALLOCATION_TYPE, // T_CONFLICT = 17,
+};
+
+static FieldAllocationType basic_type_to_atype(bool is_static, BasicType type) {
+  assert(type >= T_BOOLEAN && type < T_VOID, "only allowable values");
+  FieldAllocationType result = _basic_type_to_atype[type + (is_static ? (T_CONFLICT + 1) : 0)];
+  assert(result != BAD_ALLOCATION_TYPE, "bad type");
+  return result;
+}
+
+class FieldAllocationCount: public ResourceObj {
+ public:
+  unsigned int count[MAX_FIELD_ALLOCATION_TYPE];
 
-struct FieldAllocationCount {
-  unsigned int static_oop_count;
-  unsigned int static_byte_count;
-  unsigned int static_short_count;
-  unsigned int static_word_count;
-  unsigned int static_double_count;
-  unsigned int nonstatic_oop_count;
-  unsigned int nonstatic_byte_count;
-  unsigned int nonstatic_short_count;
-  unsigned int nonstatic_word_count;
-  unsigned int nonstatic_double_count;
+  FieldAllocationCount() {
+    for (int i = 0; i < MAX_FIELD_ALLOCATION_TYPE; i++) {
+      count[i] = 0;
+    }
+  }
+
+  FieldAllocationType update(bool is_static, BasicType type) {
+    FieldAllocationType atype = basic_type_to_atype(is_static, type);
+    count[atype]++;
+    return atype;
+  }
 };
 
-typeArrayHandle ClassFileParser::parse_fields(constantPoolHandle cp, bool is_interface,
-                                              struct FieldAllocationCount *fac,
-                                              objArrayHandle* fields_annotations, TRAPS) {
+
+typeArrayHandle ClassFileParser::parse_fields(Symbol* class_name,
+                                              constantPoolHandle cp, bool is_interface,
+                                              FieldAllocationCount *fac,
+                                              objArrayHandle* fields_annotations,
+                                              int* java_fields_count_ptr, TRAPS) {
   ClassFileStream* cfs = stream();
   typeArrayHandle nullHandle;
   cfs->guarantee_more(2, CHECK_(nullHandle));  // length
   u2 length = cfs->get_u2_fast();
+  *java_fields_count_ptr = length;
+
+  int num_injected = 0;
+  InjectedField* injected = JavaClasses::get_injected(class_name, &num_injected);
+
   // Tuples of shorts [access, name index, sig index, initial value index, byte offset, generic signature index]
-  typeArrayOop new_fields = oopFactory::new_permanent_shortArray(length*instanceKlass::next_offset, CHECK_(nullHandle));
+  typeArrayOop new_fields = oopFactory::new_permanent_shortArray((length + num_injected) * FieldInfo::field_slots, CHECK_(nullHandle));
   typeArrayHandle fields(THREAD, new_fields);
 
-  int index = 0;
   typeArrayHandle field_annotations;
   for (int n = 0; n < length; n++) {
     cfs->guarantee_more(8, CHECK_(nullHandle));  // access_flags, name_index, descriptor_index, attributes_count
@@ -1077,93 +1134,77 @@ typeArrayHandle ClassFileParser::parse_fields(constantPoolHandle cp, bool is_int
       }
     }
 
-    fields->short_at_put(index++, access_flags.as_short());
-    fields->short_at_put(index++, name_index);
-    fields->short_at_put(index++, signature_index);
-    fields->short_at_put(index++, constantvalue_index);
+    FieldInfo* field = FieldInfo::from_field_array(fields(), n);
+    field->initialize(access_flags.as_short(),
+                      name_index,
+                      signature_index,
+                      constantvalue_index,
+                      generic_signature_index,
+                      0);
 
-    // Remember how many oops we encountered and compute allocation type
     BasicType type = cp->basic_type_for_signature_at(signature_index);
-    FieldAllocationType atype;
-    if ( is_static ) {
-      switch ( type ) {
-        case  T_BOOLEAN:
-        case  T_BYTE:
-          fac->static_byte_count++;
-          atype = STATIC_BYTE;
-          break;
-        case  T_LONG:
-        case  T_DOUBLE:
-          if (Universe::field_type_should_be_aligned(type)) {
-            atype = STATIC_ALIGNED_DOUBLE;
-          } else {
-            atype = STATIC_DOUBLE;
-          }
-          fac->static_double_count++;
-          break;
-        case  T_CHAR:
-        case  T_SHORT:
-          fac->static_short_count++;
-          atype = STATIC_SHORT;
-          break;
-        case  T_FLOAT:
-        case  T_INT:
-          fac->static_word_count++;
-          atype = STATIC_WORD;
-          break;
-        case  T_ARRAY:
-        case  T_OBJECT:
-          fac->static_oop_count++;
-          atype = STATIC_OOP;
-          break;
-        case  T_ADDRESS:
-        case  T_VOID:
-        default:
-          assert(0, "bad field type");
-      }
-    } else {
-      switch ( type ) {
-        case  T_BOOLEAN:
-        case  T_BYTE:
-          fac->nonstatic_byte_count++;
-          atype = NONSTATIC_BYTE;
-          break;
-        case  T_LONG:
-        case  T_DOUBLE:
-          if (Universe::field_type_should_be_aligned(type)) {
-            atype = NONSTATIC_ALIGNED_DOUBLE;
-          } else {
-            atype = NONSTATIC_DOUBLE;
+
+    // Remember how many oops we encountered and compute allocation type
+    FieldAllocationType atype = fac->update(is_static, type);
+
+    // The correct offset is computed later (all oop fields will be located together)
+    // We temporarily store the allocation type in the offset field
+    field->set_offset(atype);
+  }
+
+  if (num_injected != 0) {
+    int index = length;
+    for (int n = 0; n < num_injected; n++) {
+      // Check for duplicates
+      if (injected[n].may_be_java) {
+        Symbol* name      = injected[n].name();
+        Symbol* signature = injected[n].signature();
+        bool duplicate = false;
+        for (int i = 0; i < length; i++) {
+          FieldInfo* f = FieldInfo::from_field_array(fields(), i);
+          if (name      == cp->symbol_at(f->name_index()) &&
+              signature == cp->symbol_at(f->signature_index())) {
+            // Symbol is desclared in Java so skip this one
+            duplicate = true;
+            break;
           }
-          fac->nonstatic_double_count++;
-          break;
-        case  T_CHAR:
-        case  T_SHORT:
-          fac->nonstatic_short_count++;
-          atype = NONSTATIC_SHORT;
-          break;
-        case  T_FLOAT:
-        case  T_INT:
-          fac->nonstatic_word_count++;
-          atype = NONSTATIC_WORD;
-          break;
-        case  T_ARRAY:
-        case  T_OBJECT:
-          fac->nonstatic_oop_count++;
-          atype = NONSTATIC_OOP;
-          break;
-        case  T_ADDRESS:
-        case  T_VOID:
-        default:
-          assert(0, "bad field type");
+        }
+        if (duplicate) {
+          // These will be removed from the field array at the end
+          continue;
+        }
       }
+
+      // Injected field
+      FieldInfo* field = FieldInfo::from_field_array(fields(), index);
+      field->initialize(JVM_ACC_FIELD_INTERNAL,
+                        injected[n].name_index,
+                        injected[n].signature_index,
+                        0,
+                        0,
+                        0);
+
+      BasicType type = FieldType::basic_type(injected[n].signature());
+
+      // Remember how many oops we encountered and compute allocation type
+      FieldAllocationType atype = fac->update(false, type);
+
+      // The correct offset is computed later (all oop fields will be located together)
+      // We temporarily store the allocation type in the offset field
+      field->set_offset(atype);
+      index++;
     }
 
-    // The correct offset is computed later (all oop fields will be located together)
-    // We temporarily store the allocation type in the offset field
-    fields->short_at_put(index++, atype);
-    fields->short_at_put(index++, 0);  // Clear out high word of byte offset
-    fields->short_at_put(index++, generic_signature_index);
+    if (index < length + num_injected) {
+      // sometimes injected fields already exist in the Java source so
+      // the fields array could be too long.  In that case trim the
+      // fields array.
+      new_fields = oopFactory::new_permanent_shortArray(index * FieldInfo::field_slots, CHECK_(nullHandle));
+      for (int i = 0; i < index * FieldInfo::field_slots; i++) {
+        new_fields->short_at_put(i, fields->short_at(i));
+      }
+      fields = new_fields;
+    }
   }
 
   if (_need_verify && length > 1) {
@@ -1175,11 +1216,9 @@ typeArrayHandle ClassFileParser::parse_fields(constantPoolHandle cp, bool is_int
     bool dup = false;
     {
       debug_only(No_Safepoint_Verifier nsv;)
-      for (int i = 0; i < length*instanceKlass::next_offset; i += instanceKlass::next_offset) {
-        int name_index = fields->ushort_at(i + instanceKlass::name_index_offset);
-        Symbol* name = cp->symbol_at(name_index);
-        int sig_index = fields->ushort_at(i + instanceKlass::signature_index_offset);
-        Symbol* sig = cp->symbol_at(sig_index);
+      for (AllFieldStream fs(fields, cp); !fs.done(); fs.next()) {
+        Symbol* name = fs.name();
+        Symbol* sig = fs.signature();
         // If no duplicates, add name/signature in hashtable names_and_sigs.
         if (!put_after_lookup(name, sig, names_and_sigs)) {
           dup = true;
@@ -2592,227 +2631,6 @@ typeArrayHandle ClassFileParser::assemble_annotations(u1* runtime_visible_annota
 }
 
 
-void ClassFileParser::java_lang_ref_Reference_fix_pre(typeArrayHandle* fields_ptr,
-  constantPoolHandle cp, FieldAllocationCount *fac_ptr, TRAPS) {
-  // This code is for compatibility with earlier jdk's that do not
-  // have the "discovered" field in java.lang.ref.Reference.  For 1.5
-  // the check for the "discovered" field should issue a warning if
-  // the field is not found.  For 1.6 this code should be issue a
-  // fatal error if the "discovered" field is not found.
-  //
-  // Increment fac.nonstatic_oop_count so that the start of the
-  // next type of non-static oops leaves room for the fake oop.
-  // Do not increment next_nonstatic_oop_offset so that the
-  // fake oop is place after the java.lang.ref.Reference oop
-  // fields.
-  //
-  // Check the fields in java.lang.ref.Reference for the "discovered"
-  // field.  If it is not present, artifically create a field for it.
-  // This allows this VM to run on early JDK where the field is not
-  // present.
-  int reference_sig_index = 0;
-  int reference_name_index = 0;
-  int reference_index = 0;
-  int extra = java_lang_ref_Reference::number_of_fake_oop_fields;
-  const int n = (*fields_ptr)()->length();
-  for (int i = 0; i < n; i += instanceKlass::next_offset ) {
-    int name_index =
-    (*fields_ptr)()->ushort_at(i + instanceKlass::name_index_offset);
-    int sig_index  =
-      (*fields_ptr)()->ushort_at(i + instanceKlass::signature_index_offset);
-    Symbol* f_name = cp->symbol_at(name_index);
-    Symbol* f_sig  = cp->symbol_at(sig_index);
-    if (f_sig == vmSymbols::reference_signature() && reference_index == 0) {
-      // Save the index for reference signature for later use.
-      // The fake discovered field does not entries in the
-      // constant pool so the index for its signature cannot
-      // be extracted from the constant pool.  It will need
-      // later, however.  It's signature is vmSymbols::reference_signature()
-      // so same an index for that signature.
-      reference_sig_index = sig_index;
-      reference_name_index = name_index;
-      reference_index = i;
-    }
-    if (f_name == vmSymbols::reference_discovered_name() &&
-      f_sig == vmSymbols::reference_signature()) {
-      // The values below are fake but will force extra
-      // non-static oop fields and a corresponding non-static
-      // oop map block to be allocated.
-      extra = 0;
-      break;
-    }
-  }
-  if (extra != 0) {
-    fac_ptr->nonstatic_oop_count += extra;
-    // Add the additional entry to "fields" so that the klass
-    // contains the "discoverd" field and the field will be initialized
-    // in instances of the object.
-    int fields_with_fix_length = (*fields_ptr)()->length() +
-      instanceKlass::next_offset;
-    typeArrayOop ff = oopFactory::new_permanent_shortArray(
-                                                fields_with_fix_length, CHECK);
-    typeArrayHandle fields_with_fix(THREAD, ff);
-
-    // Take everything from the original but the length.
-    for (int idx = 0; idx < (*fields_ptr)->length(); idx++) {
-      fields_with_fix->ushort_at_put(idx, (*fields_ptr)->ushort_at(idx));
-    }
-
-    // Add the fake field at the end.
-    int i = (*fields_ptr)->length();
-    // There is no name index for the fake "discovered" field nor
-    // signature but a signature is needed so that the field will
-    // be properly initialized.  Use one found for
-    // one of the other reference fields. Be sure the index for the
-    // name is 0.  In fieldDescriptor::initialize() the index of the
-    // name is checked.  That check is by passed for the last nonstatic
-    // oop field in a java.lang.ref.Reference which is assumed to be
-    // this artificial "discovered" field.  An assertion checks that
-    // the name index is 0.
-    assert(reference_index != 0, "Missing signature for reference");
-
-    int j;
-    for (j = 0; j < instanceKlass::next_offset; j++) {
-      fields_with_fix->ushort_at_put(i + j,
-        (*fields_ptr)->ushort_at(reference_index +j));
-    }
-    // Clear the public access flag and set the private access flag.
-    short flags;
-    flags =
-      fields_with_fix->ushort_at(i + instanceKlass::access_flags_offset);
-    assert(!(flags & JVM_RECOGNIZED_FIELD_MODIFIERS), "Unexpected access flags set");
-    flags = flags & (~JVM_ACC_PUBLIC);
-    flags = flags | JVM_ACC_PRIVATE;
-    AccessFlags access_flags;
-    access_flags.set_flags(flags);
-    assert(!access_flags.is_public(), "Failed to clear public flag");
-    assert(access_flags.is_private(), "Failed to set private flag");
-    fields_with_fix->ushort_at_put(i + instanceKlass::access_flags_offset,
-      flags);
-
-    assert(fields_with_fix->ushort_at(i + instanceKlass::name_index_offset)
-      == reference_name_index, "The fake reference name is incorrect");
-    assert(fields_with_fix->ushort_at(i + instanceKlass::signature_index_offset)
-      == reference_sig_index, "The fake reference signature is incorrect");
-    // The type of the field is stored in the low_offset entry during
-    // parsing.
-    assert(fields_with_fix->ushort_at(i + instanceKlass::low_offset) ==
-      NONSTATIC_OOP, "The fake reference type is incorrect");
-
-    // "fields" is allocated in the permanent generation.  Disgard
-    // it and let it be collected.
-    (*fields_ptr) = fields_with_fix;
-  }
-  return;
-}
-
-
-void ClassFileParser::java_lang_Class_fix_pre(int* nonstatic_field_size,
-                                              FieldAllocationCount *fac_ptr) {
-  // Add fake fields for java.lang.Class instances
-  //
-  // This is not particularly nice. We should consider adding a
-  // private transient object field at the Java level to
-  // java.lang.Class. Alternatively we could add a subclass of
-  // instanceKlass which provides an accessor and size computer for
-  // this field, but that appears to be more code than this hack.
-  //
-  // NOTE that we wedge these in at the beginning rather than the
-  // end of the object because the Class layout changed between JDK
-  // 1.3 and JDK 1.4 with the new reflection implementation; some
-  // nonstatic oop fields were added at the Java level. The offsets
-  // of these fake fields can't change between these two JDK
-  // versions because when the offsets are computed at bootstrap
-  // time we don't know yet which version of the JDK we're running in.
-
-  // The values below are fake but will force three non-static oop fields and
-  // a corresponding non-static oop map block to be allocated.
-  const int extra = java_lang_Class::number_of_fake_oop_fields;
-  fac_ptr->nonstatic_oop_count += extra;
-
-  // Reserve some leading space for fake ints
-  *nonstatic_field_size += align_size_up(java_lang_Class::hc_number_of_fake_int_fields * BytesPerInt, heapOopSize) / heapOopSize;
-}
-
-
-void ClassFileParser::java_lang_Class_fix_post(int* next_nonstatic_oop_offset_ptr) {
-  // Cause the extra fake fields in java.lang.Class to show up before
-  // the Java fields for layout compatibility between 1.3 and 1.4
-  // Incrementing next_nonstatic_oop_offset here advances the
-  // location where the real java fields are placed.
-  const int extra = java_lang_Class::number_of_fake_oop_fields;
-  (*next_nonstatic_oop_offset_ptr) += (extra * heapOopSize);
-}
-
-
-// Force MethodHandle.vmentry to be an unmanaged pointer.
-// There is no way for a classfile to express this, so we must help it.
-void ClassFileParser::java_lang_invoke_MethodHandle_fix_pre(constantPoolHandle cp,
-                                                    typeArrayHandle fields,
-                                                    FieldAllocationCount *fac_ptr,
-                                                    TRAPS) {
-  // Add fake fields for java.lang.invoke.MethodHandle instances
-  //
-  // This is not particularly nice, but since there is no way to express
-  // a native wordSize field in Java, we must do it at this level.
-
-  if (!EnableInvokeDynamic)  return;
-
-  int word_sig_index = 0;
-  const int cp_size = cp->length();
-  for (int index = 1; index < cp_size; index++) {
-    if (cp->tag_at(index).is_utf8() &&
-        cp->symbol_at(index) == vmSymbols::machine_word_signature()) {
-      word_sig_index = index;
-      break;
-    }
-  }
-
-  if (word_sig_index == 0)
-    THROW_MSG(vmSymbols::java_lang_VirtualMachineError(),
-              "missing I or J signature (for vmentry) in java.lang.invoke.MethodHandle");
-
-  // Find vmentry field and change the signature.
-  bool found_vmentry = false;
-  for (int i = 0; i < fields->length(); i += instanceKlass::next_offset) {
-    int name_index = fields->ushort_at(i + instanceKlass::name_index_offset);
-    int sig_index  = fields->ushort_at(i + instanceKlass::signature_index_offset);
-    int acc_flags  = fields->ushort_at(i + instanceKlass::access_flags_offset);
-    Symbol* f_name = cp->symbol_at(name_index);
-    Symbol* f_sig  = cp->symbol_at(sig_index);
-    if (f_name == vmSymbols::vmentry_name() && (acc_flags & JVM_ACC_STATIC) == 0) {
-      if (f_sig == vmSymbols::machine_word_signature()) {
-        // If the signature of vmentry is already changed, we're done.
-        found_vmentry = true;
-        break;
-      }
-      else if (f_sig == vmSymbols::byte_signature()) {
-        // Adjust the field type from byte to an unmanaged pointer.
-        assert(fac_ptr->nonstatic_byte_count > 0, "");
-        fac_ptr->nonstatic_byte_count -= 1;
-
-        fields->ushort_at_put(i + instanceKlass::signature_index_offset, word_sig_index);
-        assert(wordSize == longSize || wordSize == jintSize, "ILP32 or LP64");
-        if (wordSize == longSize)  fac_ptr->nonstatic_double_count += 1;
-        else                       fac_ptr->nonstatic_word_count   += 1;
-
-        FieldAllocationType atype = (FieldAllocationType) fields->ushort_at(i + instanceKlass::low_offset);
-        assert(atype == NONSTATIC_BYTE, "");
-        FieldAllocationType new_atype = (wordSize == longSize) ? NONSTATIC_DOUBLE : NONSTATIC_WORD;
-        fields->ushort_at_put(i + instanceKlass::low_offset, new_atype);
-
-        found_vmentry = true;
-        break;
-      }
-    }
-  }
-
-  if (!found_vmentry)
-    THROW_MSG(vmSymbols::java_lang_VirtualMachineError(),
-              "missing vmentry byte field in java.lang.invoke.MethodHandle");
-}
-
-
 instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name,
                                                     Handle class_loader,
                                                     Handle protection_domain,
@@ -3025,10 +2843,13 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name,
       local_interfaces = parse_interfaces(cp, itfs_len, class_loader, protection_domain, _class_name, CHECK_(nullHandle));
     }
 
+    int java_fields_count = 0;
     // Fields (offsets are filled in later)
-    struct FieldAllocationCount fac = {0,0,0,0,0,0,0,0,0,0};
+    FieldAllocationCount fac;
     objArrayHandle fields_annotations;
-    typeArrayHandle fields = parse_fields(cp, access_flags.is_interface(), &fac, &fields_annotations, CHECK_(nullHandle));
+    typeArrayHandle fields = parse_fields(class_name, cp, access_flags.is_interface(), &fac, &fields_annotations,
+                                          &java_fields_count,
+                                          CHECK_(nullHandle));
     // Methods
     bool has_final_method = false;
     AccessFlags promoted_flags;
@@ -3146,51 +2967,33 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name,
     // Calculate the starting byte offsets
     next_static_oop_offset      = instanceMirrorKlass::offset_of_static_fields();
     next_static_double_offset   = next_static_oop_offset +
-                                  (fac.static_oop_count * heapOopSize);
-    if ( fac.static_double_count &&
+                                  (fac.count[STATIC_OOP] * heapOopSize);
+    if ( fac.count[STATIC_DOUBLE] &&
          (Universe::field_type_should_be_aligned(T_DOUBLE) ||
           Universe::field_type_should_be_aligned(T_LONG)) ) {
       next_static_double_offset = align_size_up(next_static_double_offset, BytesPerLong);
     }
 
     next_static_word_offset     = next_static_double_offset +
-                                  (fac.static_double_count * BytesPerLong);
+                                  (fac.count[STATIC_DOUBLE] * BytesPerLong);
     next_static_short_offset    = next_static_word_offset +
-                                  (fac.static_word_count * BytesPerInt);
+                                  (fac.count[STATIC_WORD] * BytesPerInt);
     next_static_byte_offset     = next_static_short_offset +
-                                  (fac.static_short_count * BytesPerShort);
+                                  (fac.count[STATIC_SHORT] * BytesPerShort);
     next_static_type_offset     = align_size_up((next_static_byte_offset +
-                                  fac.static_byte_count ), wordSize );
+                                  fac.count[STATIC_BYTE] ), wordSize );
     static_field_size           = (next_static_type_offset -
                                   next_static_oop_offset) / wordSize;
 
-    // Add fake fields for java.lang.Class instances (also see below)
-    if (class_name == vmSymbols::java_lang_Class() && class_loader.is_null()) {
-      java_lang_Class_fix_pre(&nonstatic_field_size, &fac);
-    }
-
     first_nonstatic_field_offset = instanceOopDesc::base_offset_in_bytes() +
                                    nonstatic_field_size * heapOopSize;
     next_nonstatic_field_offset = first_nonstatic_field_offset;
 
-    // adjust the vmentry field declaration in java.lang.invoke.MethodHandle
-    if (EnableInvokeDynamic && class_name == vmSymbols::java_lang_invoke_MethodHandle() && class_loader.is_null()) {
-      java_lang_invoke_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle));
-    }
-
-    // Add a fake "discovered" field if it is not present
-    // for compatibility with earlier jdk's.
-    if (class_name == vmSymbols::java_lang_ref_Reference()
-      && class_loader.is_null()) {
-      java_lang_ref_Reference_fix_pre(&fields, cp, &fac, CHECK_(nullHandle));
-    }
-    // end of "discovered" field compactibility fix
-
-    unsigned int nonstatic_double_count = fac.nonstatic_double_count;
-    unsigned int nonstatic_word_count   = fac.nonstatic_word_count;
-    unsigned int nonstatic_short_count  = fac.nonstatic_short_count;
-    unsigned int nonstatic_byte_count   = fac.nonstatic_byte_count;
-    unsigned int nonstatic_oop_count    = fac.nonstatic_oop_count;
+    unsigned int nonstatic_double_count = fac.count[NONSTATIC_DOUBLE];
+    unsigned int nonstatic_word_count   = fac.count[NONSTATIC_WORD];
+    unsigned int nonstatic_short_count  = fac.count[NONSTATIC_SHORT];
+    unsigned int nonstatic_byte_count   = fac.count[NONSTATIC_BYTE];
+    unsigned int nonstatic_oop_count    = fac.count[NONSTATIC_OOP];
 
     bool super_has_nonstatic_fields =
             (super_klass() != NULL && super_klass->has_nonstatic_fields());
@@ -3210,20 +3013,7 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name,
     nonstatic_oop_counts  = NEW_RESOURCE_ARRAY_IN_THREAD(
               THREAD, unsigned int, nonstatic_oop_count + 1);
 
-    // Add fake fields for java.lang.Class instances (also see above).
-    // FieldsAllocationStyle and CompactFields values will be reset to default.
-    if(class_name == vmSymbols::java_lang_Class() && class_loader.is_null()) {
-      java_lang_Class_fix_post(&next_nonstatic_field_offset);
-      nonstatic_oop_offsets[0] = first_nonstatic_field_offset;
-      const uint fake_oop_count = (next_nonstatic_field_offset -
-                                   first_nonstatic_field_offset) / heapOopSize;
-      nonstatic_oop_counts[0] = fake_oop_count;
-      nonstatic_oop_map_count = 1;
-      nonstatic_oop_count -= fake_oop_count;
-      first_nonstatic_oop_offset = first_nonstatic_field_offset;
-    } else {
-      first_nonstatic_oop_offset = 0; // will be set for first oop field
-    }
+    first_nonstatic_oop_offset = 0; // will be set for first oop field
 
 #ifndef PRODUCT
     if( PrintCompactFieldsSavings ) {
@@ -3378,10 +3168,9 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name,
     // Iterate over fields again and compute correct offsets.
     // The field allocation type was temporarily stored in the offset slot.
     // oop fields are located before non-oop fields (static and non-static).
-    int len = fields->length();
-    for (int i = 0; i < len; i += instanceKlass::next_offset) {
+    for (AllFieldStream fs(fields, cp); !fs.done(); fs.next()) {
       int real_offset;
-      FieldAllocationType atype = (FieldAllocationType) fields->ushort_at(i + instanceKlass::low_offset);
+      FieldAllocationType atype = (FieldAllocationType) fs.offset();
       switch (atype) {
         case STATIC_OOP:
           real_offset = next_static_oop_offset;
@@ -3399,7 +3188,6 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name,
           real_offset = next_static_word_offset;
           next_static_word_offset += BytesPerInt;
           break;
-        case STATIC_ALIGNED_DOUBLE:
         case STATIC_DOUBLE:
           real_offset = next_static_double_offset;
           next_static_double_offset += BytesPerLong;
@@ -3461,7 +3249,6 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name,
             next_nonstatic_word_offset += BytesPerInt;
           }
           break;
-        case NONSTATIC_ALIGNED_DOUBLE:
         case NONSTATIC_DOUBLE:
           real_offset = next_nonstatic_double_offset;
           next_nonstatic_double_offset += BytesPerLong;
@@ -3469,8 +3256,7 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name,
         default:
           ShouldNotReachHere();
       }
-      fields->short_at_put(i + instanceKlass::low_offset,  extract_low_short_from_int(real_offset));
-      fields->short_at_put(i + instanceKlass::high_offset, extract_high_short_from_int(real_offset));
+      fs.set_offset(real_offset);
     }
 
     // Size of instances
@@ -3517,12 +3303,12 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name,
     this_klass->set_class_loader(class_loader());
     this_klass->set_nonstatic_field_size(nonstatic_field_size);
     this_klass->set_has_nonstatic_fields(has_nonstatic_fields);
-    this_klass->set_static_oop_field_count(fac.static_oop_count);
+    this_klass->set_static_oop_field_count(fac.count[STATIC_OOP]);
     cp->set_pool_holder(this_klass());
     error_handler.set_in_error(false);   // turn off error handler for cp
     this_klass->set_constants(cp());
     this_klass->set_local_interfaces(local_interfaces());
-    this_klass->set_fields(fields());
+    this_klass->set_fields(fields(), java_fields_count);
     this_klass->set_methods(methods());
     if (has_final_method) {
       this_klass->set_has_final_method();
diff --git a/hotspot/src/share/vm/classfile/classFileParser.hpp b/hotspot/src/share/vm/classfile/classFileParser.hpp
index 97ae755..8e0db56 100644
--- a/hotspot/src/share/vm/classfile/classFileParser.hpp
+++ b/hotspot/src/share/vm/classfile/classFileParser.hpp
@@ -33,6 +33,9 @@
 #include "utilities/accessFlags.hpp"
 
 class TempNewSymbol;
+class FieldAllocationCount;
+
+
 // Parser for for .class files
 //
 // The bytes describing the class file structure is read from a Stream object
@@ -84,9 +87,11 @@ class ClassFileParser VALUE_OBJ_CLASS_SPEC {
                               bool* is_synthetic_addr,
                               u2* generic_signature_index_addr,
                               typeArrayHandle* field_annotations, TRAPS);
-  typeArrayHandle parse_fields(constantPoolHandle cp, bool is_interface,
-                               struct FieldAllocationCount *fac,
-                               objArrayHandle* fields_annotations, TRAPS);
+  typeArrayHandle parse_fields(Symbol* class_name,
+                               constantPoolHandle cp, bool is_interface,
+                               FieldAllocationCount *fac,
+                               objArrayHandle* fields_annotations,
+                               int* java_fields_count_ptr, TRAPS);
 
   // Method parsing
   methodHandle parse_method(constantPoolHandle cp, bool is_interface,
@@ -150,25 +155,6 @@ class ClassFileParser VALUE_OBJ_CLASS_SPEC {
   objArrayHandle compute_transitive_interfaces(instanceKlassHandle super,
                                                objArrayHandle local_ifs, TRAPS);
 
-  // Special handling for certain classes.
-  // Add the "discovered" field to java.lang.ref.Reference if
-  // it does not exist.
-  void java_lang_ref_Reference_fix_pre(typeArrayHandle* fields_ptr,
-                                       constantPoolHandle cp,
-                                       FieldAllocationCount *fac_ptr, TRAPS);
-  // Adjust the field allocation counts for java.lang.Class to add
-  // fake fields.
-  void java_lang_Class_fix_pre(int* nonstatic_field_size,
-                               FieldAllocationCount *fac_ptr);
-  // Adjust the next_nonstatic_oop_offset to place the fake fields
-  // before any Java fields.
-  void java_lang_Class_fix_post(int* next_nonstatic_oop_offset);
-  // Adjust the field allocation counts for java.lang.invoke.MethodHandle to add
-  // a fake address (void*) field.
-  void java_lang_invoke_MethodHandle_fix_pre(constantPoolHandle cp,
-                                     typeArrayHandle fields,
-                                     FieldAllocationCount *fac_ptr, TRAPS);
-
   // Format checker methods
   void classfile_parse_error(const char* msg, TRAPS);
   void classfile_parse_error(const char* msg, int index, TRAPS);
diff --git a/hotspot/src/share/vm/classfile/classLoader.cpp b/hotspot/src/share/vm/classfile/classLoader.cpp
index 7c1bb11..47b5898 100644
--- a/hotspot/src/share/vm/classfile/classLoader.cpp
+++ b/hotspot/src/share/vm/classfile/classLoader.cpp
@@ -68,6 +68,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 
 // Entry points in zip.dll for loading zip/jar file entries
@@ -1356,13 +1359,13 @@ void ClassLoader::compile_the_world_in(char* name, Handle loader, TRAPS) {
                 _codecache_sweep_counter = 0;
               }
               // Force compilation
-              CompileBroker::compile_method(m, InvocationEntryBci, CompLevel_initial_compile,
+              CompileBroker::compile_method(m, InvocationEntryBci, CompilationPolicy::policy()->initial_compile_level(),
                                             methodHandle(), 0, "CTW", THREAD);
               if (HAS_PENDING_EXCEPTION) {
                 clear_pending_exception_if_not_oom(CHECK);
                 tty->print_cr("CompileTheWorld (%d) : Skipping method: %s", _compile_the_world_counter, m->name()->as_C_string());
               }
-              if (TieredCompilation) {
+              if (TieredCompilation && TieredStopAtLevel >= CompLevel_full_optimization) {
                 // Clobber the first compile and force second tier compilation
                 nmethod* nm = m->code();
                 if (nm != NULL) {
diff --git a/hotspot/src/share/vm/classfile/javaClasses.cpp b/hotspot/src/share/vm/classfile/javaClasses.cpp
index 684e96d..385899a 100644
--- a/hotspot/src/share/vm/classfile/javaClasses.cpp
+++ b/hotspot/src/share/vm/classfile/javaClasses.cpp
@@ -28,10 +28,12 @@
 #include "classfile/vmSymbols.hpp"
 #include "code/debugInfo.hpp"
 #include "code/pcDesc.hpp"
+#include "compiler/compilerOracle.hpp"
 #include "interpreter/interpreter.hpp"
 #include "memory/oopFactory.hpp"
 #include "memory/resourceArea.hpp"
 #include "memory/universe.inline.hpp"
+#include "oops/fieldStreams.hpp"
 #include "oops/instanceKlass.hpp"
 #include "oops/instanceMirrorKlass.hpp"
 #include "oops/klass.hpp"
@@ -56,6 +58,52 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
+
+#define INJECTED_FIELD_COMPUTE_OFFSET(klass, name, signature, may_be_java)    \
+  klass::_##name##_offset = JavaClasses::compute_injected_offset(JavaClasses::klass##_##name##_enum);
+
+#define DECLARE_INJECTED_FIELD(klass, name, signature, may_be_java)           \
+  { SystemDictionary::WK_KLASS_ENUM_NAME(klass), vmSymbols::VM_SYMBOL_ENUM_NAME(name##_name), vmSymbols::VM_SYMBOL_ENUM_NAME(signature), may_be_java },
+
+InjectedField JavaClasses::_injected_fields[] = {
+  ALL_INJECTED_FIELDS(DECLARE_INJECTED_FIELD)
+};
+
+int JavaClasses::compute_injected_offset(InjectedFieldID id) {
+  return _injected_fields[id].compute_offset();
+}
+
+
+InjectedField* JavaClasses::get_injected(Symbol* class_name, int* field_count) {
+  *field_count = 0;
+
+  vmSymbols::SID sid = vmSymbols::find_sid(class_name);
+  if (sid == vmSymbols::NO_SID) {
+    // Only well known classes can inject fields
+    return NULL;
+  }
+
+  int count = 0;
+  int start = -1;
+
+#define LOOKUP_INJECTED_FIELD(klass, name, signature, may_be_java) \
+  if (sid == vmSymbols::VM_SYMBOL_ENUM_NAME(klass)) {              \
+    count++;                                                       \
+    if (start == -1) start = klass##_##name##_enum;                \
+  }
+  ALL_INJECTED_FIELDS(LOOKUP_INJECTED_FIELD);
+#undef LOOKUP_INJECTED_FIELD
+
+  if (start != -1) {
+    *field_count = count;
+    return _injected_fields + start;
+  }
+  return NULL;
+}
+
 
 static bool find_field(instanceKlass* ik,
                        Symbol* name_symbol, Symbol* signature_symbol,
@@ -427,24 +475,19 @@ static void initialize_static_field(fieldDescriptor* fd, TRAPS) {
 }
 
 
-// During bootstrap, java.lang.Class wasn't loaded so static field
-// offsets were computed without the size added it.  Go back and
-// update all the static field offsets to included the size.
-static void fixup_static_field(fieldDescriptor* fd, TRAPS) {
-  if (fd->is_static()) {
-    int real_offset = fd->offset() + instanceMirrorKlass::offset_of_static_fields();
-    typeArrayOop fields = instanceKlass::cast(fd->field_holder())->fields();
-    fields->short_at_put(fd->index() + instanceKlass::low_offset,  extract_low_short_from_int(real_offset));
-    fields->short_at_put(fd->index() + instanceKlass::high_offset, extract_high_short_from_int(real_offset));
-  }
-}
-
 void java_lang_Class::fixup_mirror(KlassHandle k, TRAPS) {
   assert(instanceMirrorKlass::offset_of_static_fields() != 0, "must have been computed already");
 
   if (k->oop_is_instance()) {
-    // Fixup the offsets
-    instanceKlass::cast(k())->do_local_static_fields(&fixup_static_field, CHECK);
+    // During bootstrap, java.lang.Class wasn't loaded so static field
+    // offsets were computed without the size added it.  Go back and
+    // update all the static field offsets to included the size.
+    for (JavaFieldStream fs(instanceKlass::cast(k())); !fs.done(); fs.next()) {
+      if (fs.access_flags().is_static()) {
+        int real_offset = fs.offset() + instanceMirrorKlass::offset_of_static_fields();
+        fs.set_offset(real_offset);
+      }
+    }
   }
   create_mirror(k, CHECK);
 }
@@ -461,7 +504,7 @@ oop java_lang_Class::create_mirror(KlassHandle k, TRAPS) {
     // Allocate mirror (java.lang.Class instance)
     Handle mirror = instanceMirrorKlass::cast(SystemDictionary::Class_klass())->allocate_instance(k, CHECK_0);
     // Setup indirections
-    mirror->obj_field_put(klass_offset,  k());
+    mirror->obj_field_put(_klass_offset,  k());
     k->set_java_mirror(mirror());
 
     instanceMirrorKlass* mk = instanceMirrorKlass::cast(mirror->klass());
@@ -503,25 +546,22 @@ oop java_lang_Class::create_mirror(KlassHandle k, TRAPS) {
 
 
 int  java_lang_Class::oop_size(oop java_class) {
-  assert(oop_size_offset != 0, "must be set");
-  return java_class->int_field(oop_size_offset);
+  assert(_oop_size_offset != 0, "must be set");
+  return java_class->int_field(_oop_size_offset);
 }
 void java_lang_Class::set_oop_size(oop java_class, int size) {
-  assert(oop_size_offset != 0, "must be set");
-  java_class->int_field_put(oop_size_offset, size);
+  assert(_oop_size_offset != 0, "must be set");
+  java_class->int_field_put(_oop_size_offset, size);
 }
 int  java_lang_Class::static_oop_field_count(oop java_class) {
-  assert(static_oop_field_count_offset != 0, "must be set");
-  return java_class->int_field(static_oop_field_count_offset);
+  assert(_static_oop_field_count_offset != 0, "must be set");
+  return java_class->int_field(_static_oop_field_count_offset);
 }
 void java_lang_Class::set_static_oop_field_count(oop java_class, int size) {
-  assert(static_oop_field_count_offset != 0, "must be set");
-  java_class->int_field_put(static_oop_field_count_offset, size);
+  assert(_static_oop_field_count_offset != 0, "must be set");
+  java_class->int_field_put(_static_oop_field_count_offset, size);
 }
 
-
-
-
 oop java_lang_Class::create_basic_type_mirror(const char* basic_type_name, BasicType type, TRAPS) {
   // This should be improved by adding a field at the Java level or by
   // introducing a new VM klass (see comment in ClassFileParser)
@@ -541,7 +581,7 @@ oop java_lang_Class::create_basic_type_mirror(const char* basic_type_name, Basic
 klassOop java_lang_Class::as_klassOop(oop java_class) {
   //%note memory_2
   assert(java_lang_Class::is_instance(java_class), "must be a Class object");
-  klassOop k = klassOop(java_class->obj_field(klass_offset));
+  klassOop k = klassOop(java_class->obj_field(_klass_offset));
   assert(k == NULL || k->is_klass(), "type check");
   return k;
 }
@@ -597,7 +637,7 @@ Symbol* java_lang_Class::as_signature(oop java_class, bool intern_if_not_found,
 
 
 klassOop java_lang_Class::array_klass(oop java_class) {
-  klassOop k = klassOop(java_class->obj_field(array_klass_offset));
+  klassOop k = klassOop(java_class->obj_field(_array_klass_offset));
   assert(k == NULL || k->is_klass() && Klass::cast(k)->oop_is_javaArray(), "should be array klass");
   return k;
 }
@@ -605,12 +645,12 @@ klassOop java_lang_Class::array_klass(oop java_class) {
 
 void java_lang_Class::set_array_klass(oop java_class, klassOop klass) {
   assert(klass->is_klass() && Klass::cast(klass)->oop_is_javaArray(), "should be array klass");
-  java_class->obj_field_put(array_klass_offset, klass);
+  java_class->obj_field_put(_array_klass_offset, klass);
 }
 
 
 methodOop java_lang_Class::resolved_constructor(oop java_class) {
-  oop constructor = java_class->obj_field(resolved_constructor_offset);
+  oop constructor = java_class->obj_field(_resolved_constructor_offset);
   assert(constructor == NULL || constructor->is_method(), "should be method");
   return methodOop(constructor);
 }
@@ -618,21 +658,21 @@ methodOop java_lang_Class::resolved_constructor(oop java_class) {
 
 void java_lang_Class::set_resolved_constructor(oop java_class, methodOop constructor) {
   assert(constructor->is_method(), "should be method");
-  java_class->obj_field_put(resolved_constructor_offset, constructor);
+  java_class->obj_field_put(_resolved_constructor_offset, constructor);
 }
 
 
 bool java_lang_Class::is_primitive(oop java_class) {
   // should assert:
   //assert(java_lang_Class::is_instance(java_class), "must be a Class object");
-  klassOop k = klassOop(java_class->obj_field(klass_offset));
+  klassOop k = klassOop(java_class->obj_field(_klass_offset));
   return k == NULL;
 }
 
 
 BasicType java_lang_Class::primitive_type(oop java_class) {
   assert(java_lang_Class::is_primitive(java_class), "just checking");
-  klassOop ak = klassOop(java_class->obj_field(array_klass_offset));
+  klassOop ak = klassOop(java_class->obj_field(_array_klass_offset));
   BasicType type = T_VOID;
   if (ak != NULL) {
     // Note: create_basic_type_mirror above initializes ak to a non-null value.
@@ -667,34 +707,18 @@ oop java_lang_Class::primitive_mirror(BasicType t) {
 
 bool java_lang_Class::offsets_computed = false;
 int  java_lang_Class::classRedefinedCount_offset = -1;
-int  java_lang_Class::parallelCapable_offset = -1;
 
 void java_lang_Class::compute_offsets() {
   assert(!offsets_computed, "offsets should be initialized only once");
   offsets_computed = true;
 
-  klassOop k = SystemDictionary::Class_klass();
+  klassOop klass_oop = SystemDictionary::Class_klass();
   // The classRedefinedCount field is only present starting in 1.5,
   // so don't go fatal.
   compute_optional_offset(classRedefinedCount_offset,
-    k, vmSymbols::classRedefinedCount_name(), vmSymbols::int_signature());
+                          klass_oop, vmSymbols::classRedefinedCount_name(), vmSymbols::int_signature());
 
-  // The field indicating parallelCapable (parallelLockMap) is only present starting in 7,
-  klassOop k1 = SystemDictionary::ClassLoader_klass();
-  compute_optional_offset(parallelCapable_offset,
-    k1, vmSymbols::parallelCapable_name(), vmSymbols::concurrenthashmap_signature());
-}
-
-// For class loader classes, parallelCapable defined
-// based on non-null field
-// Written to by java.lang.ClassLoader, vm only reads this field, doesn't set it
-bool java_lang_Class::parallelCapable(oop class_loader) {
-  if (!JDK_Version::is_gte_jdk17x_version()
-     || parallelCapable_offset == -1) {
-     // Default for backward compatibility is false
-     return false;
-  }
-  return (class_loader->obj_field(parallelCapable_offset) != NULL);
+  CLASS_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET);
 }
 
 int java_lang_Class::classRedefinedCount(oop the_class_mirror) {
@@ -1019,6 +1043,16 @@ void java_lang_ThreadGroup::compute_offsets() {
   compute_offset(_ngroups_offset,     k, vmSymbols::ngroups_name(),     vmSymbols::int_signature());
 }
 
+oop java_lang_Throwable::unassigned_stacktrace() {
+  instanceKlass* ik = instanceKlass::cast(SystemDictionary::Throwable_klass());
+  address addr = ik->static_field_addr(static_unassigned_stacktrace_offset);
+  if (UseCompressedOops) {
+    return oopDesc::load_decode_heap_oop((narrowOop *)addr);
+  } else {
+    return oopDesc::load_decode_heap_oop((oop*)addr);
+  }
+}
+
 oop java_lang_Throwable::backtrace(oop throwable) {
   return throwable->obj_field_acquire(backtrace_offset);
 }
@@ -1044,9 +1078,13 @@ void java_lang_Throwable::set_message(oop throwable, oop value) {
 }
 
 
+void java_lang_Throwable::set_stacktrace(oop throwable, oop st_element_array) {
+  throwable->obj_field_put(stackTrace_offset, st_element_array);
+}
+
 void java_lang_Throwable::clear_stacktrace(oop throwable) {
   assert(JDK_Version::is_gte_jdk14x_version(), "should only be called in >= 1.4");
-  throwable->obj_field_put(stackTrace_offset, NULL);
+  set_stacktrace(throwable, NULL);
 }
 
 
@@ -1110,7 +1148,7 @@ char* java_lang_Throwable::print_stack_element_to_buffer(methodOop method, int b
     }
     nmethod* nm = method->code();
     if (WizardMode && nm != NULL) {
-      sprintf(buf + (int)strlen(buf), "(nmethod " PTR_FORMAT ")", (intptr_t)nm);
+      sprintf(buf + (int)strlen(buf), "(nmethod " INTPTR_FORMAT ")", (intptr_t)nm);
     }
   }
 
@@ -1340,6 +1378,7 @@ void java_lang_Throwable::fill_in_stack_trace(Handle throwable, methodHandle met
   if (JDK_Version::is_gte_jdk14x_version()) {
     // New since 1.4, clear lazily constructed Java level stacktrace if
     // refilling occurs
+    // This is unnecessary in 1.7+ but harmless
     clear_stacktrace(throwable());
   }
 
@@ -1541,6 +1580,15 @@ void java_lang_Throwable::fill_in_stack_trace_of_preallocated_backtrace(Handle t
     // Bail-out for deep stacks
     if (chunk_count >= max_chunks) break;
   }
+
+  // For Java 7+ we support the Throwable immutability protocol defined for Java 7. This support
+  // was missing in 7u0 so in 7u0 there is a workaround in the Throwable class. That workaround
+  // can be removed in a JDK using this JVM version
+  if (JDK_Version::is_gte_jdk17x_version()) {
+      java_lang_Throwable::set_stacktrace(throwable(), java_lang_Throwable::unassigned_stacktrace());
+      assert(java_lang_Throwable::unassigned_stacktrace() != NULL, "not initialized");
+  }
+
 }
 
 
@@ -2283,7 +2331,6 @@ void java_lang_ref_SoftReference::set_clock(jlong value) {
 int java_lang_invoke_MethodHandle::_type_offset;
 int java_lang_invoke_MethodHandle::_vmtarget_offset;
 int java_lang_invoke_MethodHandle::_vmentry_offset;
-int java_lang_invoke_MethodHandle::_vmslots_offset;
 
 int java_lang_invoke_MemberName::_clazz_offset;
 int java_lang_invoke_MemberName::_name_offset;
@@ -2299,36 +2346,33 @@ int java_lang_invoke_BoundMethodHandle::_vmargslot_offset;
 
 int java_lang_invoke_AdapterMethodHandle::_conversion_offset;
 
+int java_lang_invoke_CountingMethodHandle::_vmcount_offset;
+
 void java_lang_invoke_MethodHandle::compute_offsets() {
-  klassOop k = SystemDictionary::MethodHandle_klass();
-  if (k != NULL && EnableInvokeDynamic) {
+  klassOop klass_oop = SystemDictionary::MethodHandle_klass();
+  if (klass_oop != NULL && EnableInvokeDynamic) {
     bool allow_super = false;
-    compute_offset(_type_offset,      k, vmSymbols::type_name(),      vmSymbols::java_lang_invoke_MethodType_signature(), allow_super);
-    compute_offset(_vmtarget_offset,  k, vmSymbols::vmtarget_name(),  vmSymbols::object_signature(),                      allow_super);
-    compute_offset(_vmentry_offset,   k, vmSymbols::vmentry_name(),   vmSymbols::machine_word_signature(),                allow_super);
-
-    // Note:  MH.vmslots (if it is present) is a hoisted copy of MH.type.form.vmslots.
-    // It is optional pending experiments to keep or toss.
-    compute_optional_offset(_vmslots_offset, k, vmSymbols::vmslots_name(), vmSymbols::int_signature(), allow_super);
+    compute_offset(_type_offset,      klass_oop, vmSymbols::type_name(),      vmSymbols::java_lang_invoke_MethodType_signature(), allow_super);
+    METHODHANDLE_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET);
   }
 }
 
 void java_lang_invoke_MemberName::compute_offsets() {
-  klassOop k = SystemDictionary::MemberName_klass();
-  if (k != NULL && EnableInvokeDynamic) {
-    compute_offset(_clazz_offset,     k, vmSymbols::clazz_name(),     vmSymbols::class_signature());
-    compute_offset(_name_offset,      k, vmSymbols::name_name(),      vmSymbols::string_signature());
-    compute_offset(_type_offset,      k, vmSymbols::type_name(),      vmSymbols::object_signature());
-    compute_offset(_flags_offset,     k, vmSymbols::flags_name(),     vmSymbols::int_signature());
-    compute_offset(_vmtarget_offset,  k, vmSymbols::vmtarget_name(),  vmSymbols::object_signature());
-    compute_offset(_vmindex_offset,   k, vmSymbols::vmindex_name(),   vmSymbols::int_signature());
+  klassOop klass_oop = SystemDictionary::MemberName_klass();
+  if (klass_oop != NULL && EnableInvokeDynamic) {
+    compute_offset(_clazz_offset,     klass_oop, vmSymbols::clazz_name(),     vmSymbols::class_signature());
+    compute_offset(_name_offset,      klass_oop, vmSymbols::name_name(),      vmSymbols::string_signature());
+    compute_offset(_type_offset,      klass_oop, vmSymbols::type_name(),      vmSymbols::object_signature());
+    compute_offset(_flags_offset,     klass_oop, vmSymbols::flags_name(),     vmSymbols::int_signature());
+    compute_offset(_vmindex_offset,   klass_oop, vmSymbols::vmindex_name(),   vmSymbols::int_signature());
+    MEMBERNAME_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET);
   }
 }
 
 void java_lang_invoke_DirectMethodHandle::compute_offsets() {
   klassOop k = SystemDictionary::DirectMethodHandle_klass();
   if (k != NULL && EnableInvokeDynamic) {
-    compute_offset(_vmindex_offset,   k, vmSymbols::vmindex_name(),   vmSymbols::int_signature(),    true);
+    DIRECTMETHODHANDLE_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET);
   }
 }
 
@@ -2347,39 +2391,34 @@ void java_lang_invoke_AdapterMethodHandle::compute_offsets() {
   }
 }
 
-oop java_lang_invoke_MethodHandle::type(oop mh) {
-  return mh->obj_field(_type_offset);
+void java_lang_invoke_CountingMethodHandle::compute_offsets() {
+  klassOop k = SystemDictionary::CountingMethodHandle_klass();
+  if (k != NULL && EnableInvokeDynamic) {
+    compute_offset(_vmcount_offset, k, vmSymbols::vmcount_name(), vmSymbols::int_signature(), true);
+  }
 }
 
-void java_lang_invoke_MethodHandle::set_type(oop mh, oop mtype) {
-  mh->obj_field_put(_type_offset, mtype);
+int java_lang_invoke_CountingMethodHandle::vmcount(oop mh) {
+  assert(is_instance(mh), "CMH only");
+  return mh->int_field(_vmcount_offset);
 }
 
-int java_lang_invoke_MethodHandle::vmslots(oop mh) {
-  int vmslots_offset = _vmslots_offset;
-  if (vmslots_offset != 0) {
-#ifdef ASSERT
-    int x = mh->int_field(vmslots_offset);
-    int y = compute_vmslots(mh);
-    assert(x == y, "correct hoisted value");
-#endif
-    return mh->int_field(vmslots_offset);
-  } else {
-    return compute_vmslots(mh);
-  }
+void java_lang_invoke_CountingMethodHandle::set_vmcount(oop mh, int count) {
+  assert(is_instance(mh), "CMH only");
+  mh->int_field_put(_vmcount_offset, count);
 }
 
-// if MH.vmslots exists, hoist into it the value of type.form.vmslots
-void java_lang_invoke_MethodHandle::init_vmslots(oop mh) {
-  int vmslots_offset = _vmslots_offset;
-  if (vmslots_offset != 0) {
-    mh->int_field_put(vmslots_offset, compute_vmslots(mh));
-  }
+oop java_lang_invoke_MethodHandle::type(oop mh) {
+  return mh->obj_field(_type_offset);
+}
+
+void java_lang_invoke_MethodHandle::set_type(oop mh, oop mtype) {
+  mh->obj_field_put(_type_offset, mtype);
 }
 
 // fetch type.form.vmslots, which is the number of JVM stack slots
 // required to carry the arguments of this MH
-int java_lang_invoke_MethodHandle::compute_vmslots(oop mh) {
+int java_lang_invoke_MethodHandle::vmslots(oop mh) {
   oop mtype = type(mh);
   if (mtype == NULL)  return 0;  // Java code would get NPE
   oop form = java_lang_invoke_MethodType::form(mtype);
@@ -2599,6 +2638,7 @@ void java_lang_invoke_MethodTypeForm::compute_offsets() {
     compute_optional_offset(_erasedType_offset, k, vmSymbols::erasedType_name(), vmSymbols::java_lang_invoke_MethodType_signature(), true);
     compute_optional_offset(_genericInvoker_offset, k, vmSymbols::genericInvoker_name(), vmSymbols::java_lang_invoke_MethodHandle_signature(), true);
     if (_genericInvoker_offset == 0)  _genericInvoker_offset = -1;  // set to explicit "empty" value
+    METHODTYPEFORM_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET);
   }
 }
 
@@ -2650,14 +2690,17 @@ void java_lang_invoke_CallSite::compute_offsets() {
   if (k != NULL) {
     compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_lang_invoke_MethodHandle_signature());
   }
-}
-
-oop java_lang_invoke_CallSite::target(oop site) {
-  return site->obj_field(_target_offset);
-}
 
-void java_lang_invoke_CallSite::set_target(oop site, oop target) {
-  site->obj_field_put(_target_offset, target);
+  // Disallow compilation of CallSite.setTargetNormal and CallSite.setTargetVolatile
+  // (For C2:  keep this until we have throttling logic for uncommon traps.)
+  if (k != NULL) {
+    instanceKlass* ik = instanceKlass::cast(k);
+    methodOop m_normal   = ik->lookup_method(vmSymbols::setTargetNormal_name(),   vmSymbols::setTarget_signature());
+    methodOop m_volatile = ik->lookup_method(vmSymbols::setTargetVolatile_name(), vmSymbols::setTarget_signature());
+    guarantee(m_normal != NULL && m_volatile != NULL, "must exist");
+    m_normal->set_not_compilable_quietly();
+    m_volatile->set_not_compilable_quietly();
+  }
 }
 
 
@@ -2704,6 +2747,18 @@ oop java_security_AccessControlContext::create(objArrayHandle context, bool isPr
 
 
 // Support for java_lang_ClassLoader
+bool java_lang_ClassLoader::offsets_computed = false;
+int  java_lang_ClassLoader::parallelCapable_offset = -1;
+
+void java_lang_ClassLoader::compute_offsets() {
+  assert(!offsets_computed, "offsets should be initialized only once");
+  offsets_computed = true;
+
+  // The field indicating parallelCapable (parallelLockMap) is only present starting in 7,
+  klassOop k1 = SystemDictionary::ClassLoader_klass();
+  compute_optional_offset(parallelCapable_offset,
+    k1, vmSymbols::parallelCapable_name(), vmSymbols::concurrenthashmap_signature());
+}
 
 oop java_lang_ClassLoader::parent(oop loader) {
   assert(loader->is_oop(), "loader must be oop");
@@ -2711,6 +2766,18 @@ oop java_lang_ClassLoader::parent(oop loader) {
 }
 
 
+// For class loader classes, parallelCapable defined
+// based on non-null field
+// Written to by java.lang.ClassLoader, vm only reads this field, doesn't set it
+bool java_lang_ClassLoader::parallelCapable(oop class_loader) {
+  if (!JDK_Version::is_gte_jdk17x_version()
+     || parallelCapable_offset == -1) {
+     // Default for backward compatibility is false
+     return false;
+  }
+  return (class_loader->obj_field(parallelCapable_offset) != NULL);
+}
+
 bool java_lang_ClassLoader::is_trusted_loader(oop loader) {
   // Fix for 4474172; see evaluation for more details
   loader = non_reflection_class_loader(loader);
@@ -2760,16 +2827,16 @@ int java_lang_String::value_offset;
 int java_lang_String::offset_offset;
 int java_lang_String::count_offset;
 int java_lang_String::hash_offset;
-int java_lang_Class::klass_offset;
-int java_lang_Class::array_klass_offset;
-int java_lang_Class::resolved_constructor_offset;
-int java_lang_Class::number_of_fake_oop_fields;
-int java_lang_Class::oop_size_offset;
-int java_lang_Class::static_oop_field_count_offset;
+int java_lang_Class::_klass_offset;
+int java_lang_Class::_array_klass_offset;
+int java_lang_Class::_resolved_constructor_offset;
+int java_lang_Class::_oop_size_offset;
+int java_lang_Class::_static_oop_field_count_offset;
 int java_lang_Throwable::backtrace_offset;
 int java_lang_Throwable::detailMessage_offset;
 int java_lang_Throwable::cause_offset;
 int java_lang_Throwable::stackTrace_offset;
+int java_lang_Throwable::static_unassigned_stacktrace_offset;
 int java_lang_reflect_AccessibleObject::override_offset;
 int java_lang_reflect_Method::clazz_offset;
 int java_lang_reflect_Method::name_offset;
@@ -2877,20 +2944,20 @@ int java_nio_Buffer::limit_offset() {
 
 
 void java_nio_Buffer::compute_offsets() {
-  klassOop k = SystemDictionary::java_nio_Buffer_klass();
+  klassOop k = SystemDictionary::nio_Buffer_klass();
   assert(k != NULL, "must be loaded in 1.4+");
   compute_offset(_limit_offset, k, vmSymbols::limit_name(), vmSymbols::int_signature());
 }
 
 // Support for intrinsification of sun.misc.AtomicLongCSImpl.attemptUpdate
 int sun_misc_AtomicLongCSImpl::value_offset() {
-  assert(SystemDictionary::sun_misc_AtomicLongCSImpl_klass() != NULL, "can't call this");
+  assert(SystemDictionary::AtomicLongCSImpl_klass() != NULL, "can't call this");
   return _value_offset;
 }
 
 
 void sun_misc_AtomicLongCSImpl::compute_offsets() {
-  klassOop k = SystemDictionary::sun_misc_AtomicLongCSImpl_klass();
+  klassOop k = SystemDictionary::AtomicLongCSImpl_klass();
   // If this class is not present, its value field offset won't be referenced.
   if (k != NULL) {
     compute_offset(_value_offset, k, vmSymbols::value_name(), vmSymbols::long_signature());
@@ -2925,28 +2992,12 @@ void JavaClasses::compute_hard_coded_offsets() {
   java_lang_String::count_offset  = java_lang_String::offset_offset + sizeof (jint);
   java_lang_String::hash_offset   = java_lang_String::count_offset + sizeof (jint);
 
-  {
-    // Do the Class Class
-    int offset = header;
-    java_lang_Class::oop_size_offset = header;
-    offset += BytesPerInt;
-    java_lang_Class::static_oop_field_count_offset = offset;
-    offset = align_size_up(offset + BytesPerInt, x);
-    java_lang_Class::klass_offset = offset;
-    offset += x;
-    java_lang_Class::array_klass_offset = offset;
-    offset += x;
-    java_lang_Class::resolved_constructor_offset = offset;
-  }
-
-  // This is NOT an offset
-  java_lang_Class::number_of_fake_oop_fields = java_lang_Class::hc_number_of_fake_oop_fields;
-
   // Throwable Class
   java_lang_Throwable::backtrace_offset  = java_lang_Throwable::hc_backtrace_offset  * x + header;
   java_lang_Throwable::detailMessage_offset = java_lang_Throwable::hc_detailMessage_offset * x + header;
   java_lang_Throwable::cause_offset      = java_lang_Throwable::hc_cause_offset      * x + header;
   java_lang_Throwable::stackTrace_offset = java_lang_Throwable::hc_stackTrace_offset * x + header;
+  java_lang_Throwable::static_unassigned_stacktrace_offset = java_lang_Throwable::hc_static_unassigned_stacktrace_offset *  x;
 
   // java_lang_boxing_object
   java_lang_boxing_object::value_offset = java_lang_boxing_object::hc_value_offset + header;
@@ -2992,8 +3043,8 @@ void JavaClasses::compute_hard_coded_offsets() {
 
 // Compute non-hard-coded field offsets of all the classes in this file
 void JavaClasses::compute_offsets() {
-
-  java_lang_Class::compute_offsets();
+  // java_lang_Class::compute_offsets was called earlier in bootstrap
+  java_lang_ClassLoader::compute_offsets();
   java_lang_Thread::compute_offsets();
   java_lang_ThreadGroup::compute_offsets();
   if (EnableInvokeDynamic) {
@@ -3005,6 +3056,7 @@ void JavaClasses::compute_offsets() {
     java_lang_invoke_MethodType::compute_offsets();
     java_lang_invoke_MethodTypeForm::compute_offsets();
     java_lang_invoke_CallSite::compute_offsets();
+    java_lang_invoke_CountingMethodHandle::compute_offsets();
   }
   java_security_AccessControlContext::compute_offsets();
   // Initialize reflection classes. The layouts of these classes
@@ -3217,6 +3269,23 @@ void JavaClasses::check_offsets() {
 
 #endif // PRODUCT
 
+int InjectedField::compute_offset() {
+  klassOop klass_oop = klass();
+  for (AllFieldStream fs(instanceKlass::cast(klass_oop)); !fs.done(); fs.next()) {
+    if (!may_be_java && !fs.access_flags().is_internal()) {
+      // Only look at injected fields
+      continue;
+    }
+    if (fs.name() == name() && fs.signature() == signature()) {
+      return fs.offset();
+    }
+  }
+  ResourceMark rm;
+  tty->print_cr("Invalid layout of %s at %s", instanceKlass::cast(klass_oop)->external_name(), name()->as_C_string());
+  fatal("Invalid layout of preloaded class");
+  return -1;
+}
+
 void javaClasses_init() {
   JavaClasses::compute_offsets();
   JavaClasses::check_offsets();
diff --git a/hotspot/src/share/vm/classfile/javaClasses.hpp b/hotspot/src/share/vm/classfile/javaClasses.hpp
index 02c0ce9..fca9897 100644
--- a/hotspot/src/share/vm/classfile/javaClasses.hpp
+++ b/hotspot/src/share/vm/classfile/javaClasses.hpp
@@ -156,30 +156,32 @@ class java_lang_String : AllStatic {
 
 // Interface to java.lang.Class objects
 
+#define CLASS_INJECTED_FIELDS(macro)                                       \
+  macro(java_lang_Class, klass,                  object_signature,  false) \
+  macro(java_lang_Class, resolved_constructor,   object_signature,  false) \
+  macro(java_lang_Class, array_klass,            object_signature,  false) \
+  macro(java_lang_Class, oop_size,               int_signature,     false) \
+  macro(java_lang_Class, static_oop_field_count, int_signature,     false)
+
 class java_lang_Class : AllStatic {
-   friend class VMStructs;
+  friend class VMStructs;
+
  private:
   // The fake offsets are added by the class loader when java.lang.Class is loaded
 
-  enum {
-    hc_number_of_fake_oop_fields   = 3,
-    hc_number_of_fake_int_fields   = 2
-  };
+  static int _klass_offset;
+  static int _resolved_constructor_offset;
+  static int _array_klass_offset;
 
-  static int klass_offset;
-  static int resolved_constructor_offset;
-  static int array_klass_offset;
-  static int number_of_fake_oop_fields;
+  static int _oop_size_offset;
+  static int _static_oop_field_count_offset;
 
-  static int oop_size_offset;
-  static int static_oop_field_count_offset;
-
-  static void compute_offsets();
   static bool offsets_computed;
   static int classRedefinedCount_offset;
-  static int parallelCapable_offset;
 
  public:
+  static void compute_offsets();
+
   // Instance creation
   static oop  create_mirror(KlassHandle k, TRAPS);
   static void fixup_mirror(KlassHandle k, TRAPS);
@@ -209,14 +211,12 @@ class java_lang_Class : AllStatic {
   static klassOop array_klass(oop java_class);
   static void set_array_klass(oop java_class, klassOop klass);
   // compiler support for class operations
-  static int klass_offset_in_bytes() { return klass_offset; }
-  static int resolved_constructor_offset_in_bytes() { return resolved_constructor_offset; }
-  static int array_klass_offset_in_bytes() { return array_klass_offset; }
+  static int klass_offset_in_bytes()                { return _klass_offset; }
+  static int resolved_constructor_offset_in_bytes() { return _resolved_constructor_offset; }
+  static int array_klass_offset_in_bytes()          { return _array_klass_offset; }
   // Support for classRedefinedCount field
   static int classRedefinedCount(oop the_class_mirror);
   static void set_classRedefinedCount(oop the_class_mirror, int value);
-  // Support for parallelCapable field
-  static bool parallelCapable(oop the_class_mirror);
 
   static int oop_size(oop java_class);
   static void set_oop_size(oop java_class, int size);
@@ -393,6 +393,9 @@ class java_lang_Throwable: AllStatic {
     hc_cause_offset         =  2,  // New since 1.4
     hc_stackTrace_offset    =  3   // New since 1.4
   };
+  enum {
+      hc_static_unassigned_stacktrace_offset = 0  // New since 1.7
+  };
   // Trace constants
   enum {
     trace_methods_offset = 0,
@@ -406,6 +409,7 @@ class java_lang_Throwable: AllStatic {
   static int detailMessage_offset;
   static int cause_offset;
   static int stackTrace_offset;
+  static int static_unassigned_stacktrace_offset;
 
   // Printing
   static char* print_stack_element_to_buffer(methodOop method, int bci);
@@ -414,6 +418,9 @@ class java_lang_Throwable: AllStatic {
   static void clear_stacktrace(oop throwable);
   // No stack trace available
   static const char* no_stack_trace_message();
+  // Stacktrace (post JDK 1.7.0 to allow immutability protocol to be followed)
+  static void set_stacktrace(oop throwable, oop st_element_array);
+  static oop unassigned_stacktrace();
 
  public:
   // Backtrace
@@ -438,7 +445,6 @@ class java_lang_Throwable: AllStatic {
   static void allocate_backtrace(Handle throwable, TRAPS);
   // Fill in current stack trace for throwable with preallocated backtrace (no GC)
   static void fill_in_stack_trace_of_preallocated_backtrace(Handle throwable);
-
   // Fill in current stack trace, can cause GC
   static void fill_in_stack_trace(Handle throwable, methodHandle method, TRAPS);
   static void fill_in_stack_trace(Handle throwable, methodHandle method = methodHandle());
@@ -765,7 +771,7 @@ class java_lang_ref_Reference: AllStatic {
     ref->obj_field_put(referent_offset, value);
   }
   static void set_referent_raw(oop ref, oop value) {
-    ref->obj_field_raw_put(referent_offset, value);
+    ref->obj_field_put_raw(referent_offset, value);
   }
   static HeapWord* referent_addr(oop ref) {
     return ref->obj_field_addr<HeapWord>(referent_offset);
@@ -777,7 +783,7 @@ class java_lang_ref_Reference: AllStatic {
     ref->obj_field_put(next_offset, value);
   }
   static void set_next_raw(oop ref, oop value) {
-    ref->obj_field_raw_put(next_offset, value);
+    ref->obj_field_put_raw(next_offset, value);
   }
   static HeapWord* next_addr(oop ref) {
     return ref->obj_field_addr<HeapWord>(next_offset);
@@ -789,7 +795,7 @@ class java_lang_ref_Reference: AllStatic {
     ref->obj_field_put(discovered_offset, value);
   }
   static void set_discovered_raw(oop ref, oop value) {
-    ref->obj_field_raw_put(discovered_offset, value);
+    ref->obj_field_put_raw(discovered_offset, value);
   }
   static HeapWord* discovered_addr(oop ref) {
     return ref->obj_field_addr<HeapWord>(discovered_offset);
@@ -828,16 +834,19 @@ class java_lang_ref_SoftReference: public java_lang_ref_Reference {
 
 // Interface to java.lang.invoke.MethodHandle objects
 
+#define METHODHANDLE_INJECTED_FIELDS(macro)                               \
+  macro(java_lang_invoke_MethodHandle, vmentry,  intptr_signature, false) \
+  macro(java_lang_invoke_MethodHandle, vmtarget, object_signature, true)
+
 class MethodHandleEntry;
 
 class java_lang_invoke_MethodHandle: AllStatic {
   friend class JavaClasses;
 
  private:
-  static int _vmentry_offset;           // assembly code trampoline for MH
-  static int _vmtarget_offset;          // class-specific target reference
+  static int _vmentry_offset;            // assembly code trampoline for MH
+  static int _vmtarget_offset;           // class-specific target reference
   static int _type_offset;              // the MethodType of this MH
-  static int _vmslots_offset;           // OPTIONAL hoisted type.form.vmslots
 
   static void compute_offsets();
 
@@ -853,8 +862,6 @@ class java_lang_invoke_MethodHandle: AllStatic {
   static void       set_vmentry(oop mh, MethodHandleEntry* data);
 
   static int            vmslots(oop mh);
-  static void      init_vmslots(oop mh);
-  static int    compute_vmslots(oop mh);
 
   // Testers
   static bool is_subclass(klassOop klass) {
@@ -868,14 +875,15 @@ class java_lang_invoke_MethodHandle: AllStatic {
   static int type_offset_in_bytes()             { return _type_offset; }
   static int vmtarget_offset_in_bytes()         { return _vmtarget_offset; }
   static int vmentry_offset_in_bytes()          { return _vmentry_offset; }
-  static int vmslots_offset_in_bytes()          { return _vmslots_offset; }
 };
 
+#define DIRECTMETHODHANDLE_INJECTED_FIELDS(macro)                          \
+  macro(java_lang_invoke_DirectMethodHandle, vmindex, int_signature, true)
+
 class java_lang_invoke_DirectMethodHandle: public java_lang_invoke_MethodHandle {
   friend class JavaClasses;
 
  private:
-  //         _vmtarget_offset;          // method   or class      or interface
   static int _vmindex_offset;           // negative or vtable idx or itable idx
   static void compute_offsets();
 
@@ -975,9 +983,40 @@ class java_lang_invoke_AdapterMethodHandle: public java_lang_invoke_BoundMethodH
 };
 
 
+// A simple class that maintains an invocation count
+class java_lang_invoke_CountingMethodHandle: public java_lang_invoke_MethodHandle {
+  friend class JavaClasses;
+
+ private:
+  static int _vmcount_offset;
+  static void compute_offsets();
+
+ public:
+  // Accessors
+  static int            vmcount(oop mh);
+  static void       set_vmcount(oop mh, int count);
+
+  // Testers
+  static bool is_subclass(klassOop klass) {
+    return SystemDictionary::CountingMethodHandle_klass() != NULL &&
+      Klass::cast(klass)->is_subclass_of(SystemDictionary::CountingMethodHandle_klass());
+  }
+  static bool is_instance(oop obj) {
+    return obj != NULL && is_subclass(obj->klass());
+  }
+
+  // Accessors for code generation:
+  static int vmcount_offset_in_bytes()          { return _vmcount_offset; }
+};
+
+
+
 // Interface to java.lang.invoke.MemberName objects
 // (These are a private interface for Java code to query the class hierarchy.)
 
+#define MEMBERNAME_INJECTED_FIELDS(macro)                              \
+  macro(java_lang_invoke_MemberName, vmtarget, object_signature, true)
+
 class java_lang_invoke_MemberName: AllStatic {
   friend class JavaClasses;
 
@@ -1087,6 +1126,10 @@ class java_lang_invoke_MethodType: AllStatic {
   static int form_offset_in_bytes()             { return _form_offset; }
 };
 
+#define METHODTYPEFORM_INJECTED_FIELDS(macro)                              \
+  macro(java_lang_invoke_MethodTypeForm, vmslots,  int_signature,    true) \
+  macro(java_lang_invoke_MethodTypeForm, vmlayout, object_signature, true)
+
 class java_lang_invoke_MethodTypeForm: AllStatic {
   friend class JavaClasses;
 
@@ -1101,6 +1144,8 @@ class java_lang_invoke_MethodTypeForm: AllStatic {
  public:
   // Accessors
   static int            vmslots(oop mtform);
+  static void       set_vmslots(oop mtform, int vmslots);
+
   static oop            erasedType(oop mtform);
   static oop            genericInvoker(oop mtform);
 
@@ -1122,21 +1167,16 @@ class java_lang_invoke_CallSite: AllStatic {
 
 private:
   static int _target_offset;
-  static int _caller_method_offset;
-  static int _caller_bci_offset;
 
   static void compute_offsets();
 
 public:
   // Accessors
-  static oop            target(oop site);
-  static void       set_target(oop site, oop target);
+  static oop              target(         oop site)             { return site->obj_field(             _target_offset);         }
+  static void         set_target(         oop site, oop target) {        site->obj_field_put(         _target_offset, target); }
 
-  static oop            caller_method(oop site);
-  static void       set_caller_method(oop site, oop ref);
-
-  static jint           caller_bci(oop site);
-  static void       set_caller_bci(oop site, jint bci);
+  static volatile oop     target_volatile(oop site)             { return site->obj_field_volatile(    _target_offset);         }
+  static void         set_target_volatile(oop site, oop target) {        site->obj_field_put_volatile(_target_offset, target); }
 
   // Testers
   static bool is_subclass(klassOop klass) {
@@ -1148,8 +1188,6 @@ public:
 
   // Accessors for code generation:
   static int target_offset_in_bytes()           { return _target_offset; }
-  static int caller_method_offset_in_bytes()    { return _caller_method_offset; }
-  static int caller_bci_offset_in_bytes()       { return _caller_bci_offset; }
 };
 
 
@@ -1180,11 +1218,18 @@ class java_lang_ClassLoader : AllStatic {
    hc_parent_offset = 0
   };
 
+  static bool offsets_computed;
   static int parent_offset;
+  static int parallelCapable_offset;
+
+  static void compute_offsets();
 
  public:
   static oop parent(oop loader);
 
+  // Support for parallelCapable field
+  static bool parallelCapable(oop the_class_mirror);
+
   static bool is_trusted_loader(oop loader);
 
   // Fix for 4474172
@@ -1306,17 +1351,71 @@ class java_util_concurrent_locks_AbstractOwnableSynchronizer : AllStatic {
   static oop  get_owner_threadObj(oop obj);
 };
 
+// Use to declare fields that need to be injected into Java classes
+// for the JVM to use.  The name_index and signature_index are
+// declared in vmSymbols.  The may_be_java flag is used to declare
+// fields that might already exist in Java but should be injected if
+// they don't.  Otherwise the field is unconditionally injected and
+// the JVM uses the injected one.  This is to ensure that name
+// collisions don't occur.  In general may_be_java should be false
+// unless there's a good reason.
+
+class InjectedField {
+ public:
+  const SystemDictionary::WKID klass_id;
+  const vmSymbols::SID name_index;
+  const vmSymbols::SID signature_index;
+  const bool           may_be_java;
+
+
+  klassOop klass() const    { return SystemDictionary::well_known_klass(klass_id); }
+  Symbol* name() const      { return lookup_symbol(name_index); }
+  Symbol* signature() const { return lookup_symbol(signature_index); }
+
+  int compute_offset();
+
+  // Find the Symbol for this index
+  static Symbol* lookup_symbol(int symbol_index) {
+    return vmSymbols::symbol_at((vmSymbols::SID)symbol_index);
+  }
+};
+
+#define DECLARE_INJECTED_FIELD_ENUM(klass, name, signature, may_be_java) \
+  klass##_##name##_enum,
+
+#define ALL_INJECTED_FIELDS(macro)          \
+  CLASS_INJECTED_FIELDS(macro)              \
+  METHODHANDLE_INJECTED_FIELDS(macro)       \
+  DIRECTMETHODHANDLE_INJECTED_FIELDS(macro) \
+  MEMBERNAME_INJECTED_FIELDS(macro)         \
+  METHODTYPEFORM_INJECTED_FIELDS(macro)
+
 // Interface to hard-coded offset checking
 
 class JavaClasses : AllStatic {
  private:
+
+  static InjectedField _injected_fields[];
+
   static bool check_offset(const char *klass_name, int offset, const char *field_name, const char* field_sig) PRODUCT_RETURN0;
   static bool check_static_offset(const char *klass_name, int hardcoded_offset, const char *field_name, const char* field_sig) PRODUCT_RETURN0;
   static bool check_constant(const char *klass_name, int constant, const char *field_name, const char* field_sig) PRODUCT_RETURN0;
+
  public:
+  enum InjectedFieldID {
+    ALL_INJECTED_FIELDS(DECLARE_INJECTED_FIELD_ENUM)
+    MAX_enum
+  };
+
+  static int compute_injected_offset(InjectedFieldID id);
+
   static void compute_hard_coded_offsets();
   static void compute_offsets();
   static void check_offsets() PRODUCT_RETURN;
+
+  static InjectedField* get_injected(Symbol* class_name, int* field_count);
 };
 
+#undef DECLARE_INJECTED_FIELD_ENUM
+
 #endif // SHARE_VM_CLASSFILE_JAVACLASSES_HPP
diff --git a/hotspot/src/share/vm/classfile/systemDictionary.cpp b/hotspot/src/share/vm/classfile/systemDictionary.cpp
index 892adb1..1591b79 100644
--- a/hotspot/src/share/vm/classfile/systemDictionary.cpp
+++ b/hotspot/src/share/vm/classfile/systemDictionary.cpp
@@ -125,13 +125,13 @@ bool SystemDictionary::is_internal_format(Symbol* class_name) {
 bool SystemDictionary::is_parallelCapable(Handle class_loader) {
   if (UnsyncloadClass || class_loader.is_null()) return true;
   if (AlwaysLockClassLoader) return false;
-  return java_lang_Class::parallelCapable(class_loader());
+  return java_lang_ClassLoader::parallelCapable(class_loader());
 }
 // ----------------------------------------------------------------------------
 // ParallelDefineClass flag does not apply to bootclass loader
 bool SystemDictionary::is_parallelDefine(Handle class_loader) {
    if (class_loader.is_null()) return false;
-   if (AllowParallelDefineClass && java_lang_Class::parallelCapable(class_loader())) {
+   if (AllowParallelDefineClass && java_lang_ClassLoader::parallelCapable(class_loader())) {
      return true;
    }
    return false;
@@ -1290,7 +1290,7 @@ static instanceKlassHandle download_and_retry_class_load(
                                                     Symbol* class_name,
                                                     TRAPS) {
 
-  klassOop dlm = SystemDictionary::sun_jkernel_DownloadManager_klass();
+  klassOop dlm = SystemDictionary::DownloadManager_klass();
   instanceKlassHandle nk;
 
   // If download manager class isn't loaded just return.
@@ -1953,7 +1953,7 @@ void SystemDictionary::initialize_preloaded_classes(TRAPS) {
   // first do Object, String, Class
   initialize_wk_klasses_through(WK_KLASS_ENUM_NAME(Class_klass), scan, CHECK);
 
-  debug_only(instanceKlass::verify_class_klass_nonstatic_oop_maps(WK_KLASS(Class_klass)));
+  java_lang_Class::compute_offsets();
 
   // Fixup mirrors for classes loaded before java.lang.Class.
   // These calls iterate over the objects currently in the perm gen
@@ -1978,7 +1978,7 @@ void SystemDictionary::initialize_preloaded_classes(TRAPS) {
 
   // JSR 292 classes
   WKID jsr292_group_start = WK_KLASS_ENUM_NAME(MethodHandle_klass);
-  WKID jsr292_group_end   = WK_KLASS_ENUM_NAME(CallSite_klass);
+  WKID jsr292_group_end   = WK_KLASS_ENUM_NAME(VolatileCallSite_klass);
   initialize_wk_klasses_until(jsr292_group_start, scan, CHECK);
   if (EnableInvokeDynamic) {
     initialize_wk_klasses_through(jsr292_group_end, scan, CHECK);
@@ -2001,7 +2001,7 @@ void SystemDictionary::initialize_preloaded_classes(TRAPS) {
   //_box_klasses[T_ARRAY]   = WK_KLASS(object_klass);
 
 #ifdef KERNEL
-  if (sun_jkernel_DownloadManager_klass() == NULL) {
+  if (DownloadManager_klass() == NULL) {
     warning("Cannot find sun/jkernel/DownloadManager");
   }
 #endif // KERNEL
@@ -2736,7 +2736,7 @@ class ClassStatistics: AllStatic {
       class_size += ik->local_interfaces()->size();
       class_size += ik->transitive_interfaces()->size();
       // We do not have to count implementors, since we only store one!
-      class_size += ik->fields()->size();
+      class_size += ik->all_fields_count() * FieldInfo::field_slots;
     }
   }
 
diff --git a/hotspot/src/share/vm/classfile/systemDictionary.hpp b/hotspot/src/share/vm/classfile/systemDictionary.hpp
index dff9f07..528ecaf 100644
--- a/hotspot/src/share/vm/classfile/systemDictionary.hpp
+++ b/hotspot/src/share/vm/classfile/systemDictionary.hpp
@@ -133,29 +133,33 @@ class SymbolPropertyTable;
   template(reflect_Method_klass,         java_lang_reflect_Method,       Pre) \
   template(reflect_Constructor_klass,    java_lang_reflect_Constructor,  Pre) \
                                                                               \
-  /* NOTE: needed too early in bootstrapping process to have checks based on JDK version */ \
-  /* Universe::is_gte_jdk14x_version() is not set up by this point. */        \
-  /* It's okay if this turns out to be NULL in non-1.4 JDKs. */               \
-  template(reflect_MagicAccessorImpl_klass,          sun_reflect_MagicAccessorImpl,  Opt) \
-  template(reflect_MethodAccessorImpl_klass, sun_reflect_MethodAccessorImpl, Opt_Only_JDK14NewRef) \
-  template(reflect_ConstructorAccessorImpl_klass, sun_reflect_ConstructorAccessorImpl, Opt_Only_JDK14NewRef) \
-  template(reflect_DelegatingClassLoader_klass, sun_reflect_DelegatingClassLoader, Opt) \
-  template(reflect_ConstantPool_klass,  sun_reflect_ConstantPool,       Opt_Only_JDK15) \
-  template(reflect_UnsafeStaticFieldAccessorImpl_klass, sun_reflect_UnsafeStaticFieldAccessorImpl, Opt_Only_JDK15) \
+  /* NOTE: needed too early in bootstrapping process to have checks based on JDK version */                              \
+  /* Universe::is_gte_jdk14x_version() is not set up by this point. */                                                   \
+  /* It's okay if this turns out to be NULL in non-1.4 JDKs. */                                                          \
+  template(reflect_MagicAccessorImpl_klass,             sun_reflect_MagicAccessorImpl,             Opt)                  \
+  template(reflect_MethodAccessorImpl_klass,            sun_reflect_MethodAccessorImpl,            Opt_Only_JDK14NewRef) \
+  template(reflect_ConstructorAccessorImpl_klass,       sun_reflect_ConstructorAccessorImpl,       Opt_Only_JDK14NewRef) \
+  template(reflect_DelegatingClassLoader_klass,         sun_reflect_DelegatingClassLoader,         Opt)                  \
+  template(reflect_ConstantPool_klass,                  sun_reflect_ConstantPool,                  Opt_Only_JDK15)       \
+  template(reflect_UnsafeStaticFieldAccessorImpl_klass, sun_reflect_UnsafeStaticFieldAccessorImpl, Opt_Only_JDK15)       \
                                                                               \
   /* support for dynamic typing; it's OK if these are NULL in earlier JDKs */ \
-  template(MethodHandle_klass,           java_lang_invoke_MethodHandle,     Pre_JSR292) \
-  template(MemberName_klass,             java_lang_invoke_MemberName,       Pre_JSR292) \
-  template(MethodHandleNatives_klass,    java_lang_invoke_MethodHandleNatives, Pre_JSR292) \
-  template(AdapterMethodHandle_klass,    java_lang_invoke_AdapterMethodHandle, Pre_JSR292) \
-  template(BoundMethodHandle_klass,      java_lang_invoke_BoundMethodHandle, Pre_JSR292) \
-  template(DirectMethodHandle_klass,     java_lang_invoke_DirectMethodHandle, Pre_JSR292) \
-  template(MethodType_klass,             java_lang_invoke_MethodType,       Pre_JSR292) \
-  template(MethodTypeForm_klass,         java_lang_invoke_MethodTypeForm,   Pre_JSR292) \
-  template(BootstrapMethodError_klass,   java_lang_BootstrapMethodError, Pre_JSR292) \
+  template(MethodHandle_klass,             java_lang_invoke_MethodHandle,             Pre_JSR292) \
+  template(MemberName_klass,               java_lang_invoke_MemberName,               Pre_JSR292) \
+  template(MethodHandleNatives_klass,      java_lang_invoke_MethodHandleNatives,      Pre_JSR292) \
+  template(AdapterMethodHandle_klass,      java_lang_invoke_AdapterMethodHandle,      Pre_JSR292) \
+  template(BoundMethodHandle_klass,        java_lang_invoke_BoundMethodHandle,        Pre_JSR292) \
+  template(DirectMethodHandle_klass,       java_lang_invoke_DirectMethodHandle,       Pre_JSR292) \
+  template(MethodType_klass,               java_lang_invoke_MethodType,               Pre_JSR292) \
+  template(MethodTypeForm_klass,           java_lang_invoke_MethodTypeForm,           Pre_JSR292) \
+  template(BootstrapMethodError_klass,     java_lang_BootstrapMethodError,            Pre_JSR292) \
   template(WrongMethodTypeException_klass, java_lang_invoke_WrongMethodTypeException, Pre_JSR292) \
-  template(CallSite_klass,               java_lang_invoke_CallSite,         Pre_JSR292) \
-  /* Note: MethodHandle must be first, and CallSite last in group */          \
+  template(CallSite_klass,                 java_lang_invoke_CallSite,                 Pre_JSR292) \
+  template(CountingMethodHandle_klass,     java_lang_invoke_CountingMethodHandle,     Opt)        \
+  template(ConstantCallSite_klass,         java_lang_invoke_ConstantCallSite,         Pre_JSR292) \
+  template(MutableCallSite_klass,          java_lang_invoke_MutableCallSite,          Pre_JSR292) \
+  template(VolatileCallSite_klass,         java_lang_invoke_VolatileCallSite,         Pre_JSR292) \
+  /* Note: MethodHandle must be first, and VolatileCallSite last in group */  \
                                                                               \
   template(StringBuffer_klass,           java_lang_StringBuffer,         Pre) \
   template(StringBuilder_klass,          java_lang_StringBuilder,        Pre) \
@@ -164,14 +168,14 @@ class SymbolPropertyTable;
   template(StackTraceElement_klass,      java_lang_StackTraceElement,    Opt) \
   /* Universe::is_gte_jdk14x_version() is not set up by this point. */        \
   /* It's okay if this turns out to be NULL in non-1.4 JDKs. */               \
-  template(java_nio_Buffer_klass,        java_nio_Buffer,                Opt) \
+  template(nio_Buffer_klass,             java_nio_Buffer,                Opt) \
                                                                               \
   /* If this class isn't present, it won't be referenced. */                  \
-  template(sun_misc_AtomicLongCSImpl_klass, sun_misc_AtomicLongCSImpl,   Opt) \
+  template(AtomicLongCSImpl_klass,       sun_misc_AtomicLongCSImpl,   Opt)    \
                                                                               \
-  template(sun_jkernel_DownloadManager_klass, sun_jkernel_DownloadManager, Opt_Kernel) \
+  template(DownloadManager_klass,        sun_jkernel_DownloadManager, Opt_Kernel) \
                                                                               \
-  template(sun_misc_PostVMInitHook_klass, sun_misc_PostVMInitHook, Opt)       \
+  template(PostVMInitHook_klass,         sun_misc_PostVMInitHook, Opt)        \
                                                                               \
   /* Preload boxing klasses */                                                \
   template(Boolean_klass,                java_lang_Boolean,              Pre) \
@@ -195,7 +199,7 @@ class SystemDictionary : AllStatic {
   enum WKID {
     NO_WKID = 0,
 
-    #define WK_KLASS_ENUM(name, ignore_s, ignore_o) WK_KLASS_ENUM_NAME(name),
+    #define WK_KLASS_ENUM(name, symbol, ignore_o) WK_KLASS_ENUM_NAME(name), WK_KLASS_ENUM_NAME(symbol) = WK_KLASS_ENUM_NAME(name),
     WK_KLASSES_DO(WK_KLASS_ENUM)
     #undef WK_KLASS_ENUM
 
@@ -422,11 +426,16 @@ public:
   }
 
 public:
-  #define WK_KLASS_DECLARE(name, ignore_symbol, option) \
+  #define WK_KLASS_DECLARE(name, symbol, option) \
     static klassOop name() { return check_klass_##option(_well_known_klasses[WK_KLASS_ENUM_NAME(name)]); }
   WK_KLASSES_DO(WK_KLASS_DECLARE);
   #undef WK_KLASS_DECLARE
 
+  static klassOop well_known_klass(WKID id) {
+    assert(id >= (int)FIRST_WKID && id < (int)WKID_LIMIT, "oob");
+    return _well_known_klasses[id];
+  }
+
   // Local definition for direct access to the private array:
   #define WK_KLASS(name) _well_known_klasses[SystemDictionary::WK_KLASS_ENUM_NAME(name)]
 
diff --git a/hotspot/src/share/vm/classfile/vmSymbols.hpp b/hotspot/src/share/vm/classfile/vmSymbols.hpp
index 3e367d2..16652e5 100644
--- a/hotspot/src/share/vm/classfile/vmSymbols.hpp
+++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp
@@ -218,6 +218,7 @@
   template(returnType_name,                           "returnType")                               \
   template(signature_name,                            "signature")                                \
   template(slot_name,                                 "slot")                                     \
+  template(selectAlternative_name,                    "selectAlternative")                        \
                                                                                                   \
   /* Support for annotations (JDK 1.5 and above) */                                               \
                                                                                                   \
@@ -233,6 +234,9 @@
   template(java_lang_invoke_InvokeDynamic,            "java/lang/invoke/InvokeDynamic")           \
   template(java_lang_invoke_Linkage,                  "java/lang/invoke/Linkage")                 \
   template(java_lang_invoke_CallSite,                 "java/lang/invoke/CallSite")                \
+  template(java_lang_invoke_ConstantCallSite,         "java/lang/invoke/ConstantCallSite")        \
+  template(java_lang_invoke_MutableCallSite,          "java/lang/invoke/MutableCallSite")         \
+  template(java_lang_invoke_VolatileCallSite,         "java/lang/invoke/VolatileCallSite")        \
   template(java_lang_invoke_MethodHandle,             "java/lang/invoke/MethodHandle")            \
   template(java_lang_invoke_MethodType,               "java/lang/invoke/MethodType")              \
   template(java_lang_invoke_WrongMethodTypeException, "java/lang/invoke/WrongMethodTypeException") \
@@ -243,9 +247,11 @@
   template(java_lang_invoke_MethodTypeForm_signature, "Ljava/lang/invoke/MethodTypeForm;")        \
   template(java_lang_invoke_MemberName,               "java/lang/invoke/MemberName")              \
   template(java_lang_invoke_MethodHandleNatives,      "java/lang/invoke/MethodHandleNatives")     \
+  template(java_lang_invoke_MethodHandleImpl,         "java/lang/invoke/MethodHandleImpl")        \
   template(java_lang_invoke_AdapterMethodHandle,      "java/lang/invoke/AdapterMethodHandle")     \
   template(java_lang_invoke_BoundMethodHandle,        "java/lang/invoke/BoundMethodHandle")       \
   template(java_lang_invoke_DirectMethodHandle,       "java/lang/invoke/DirectMethodHandle")      \
+  template(java_lang_invoke_CountingMethodHandle,     "java/lang/invoke/CountingMethodHandle")    \
   /* internal up-calls made only by the JVM, via class sun.invoke.MethodHandleNatives: */         \
   template(findMethodHandleType_name,                 "findMethodHandleType")                     \
   template(findMethodHandleType_signature,       "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;") \
@@ -255,8 +261,12 @@
   template(linkMethodHandleConstant_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;") \
   template(makeDynamicCallSite_name,                  "makeDynamicCallSite")                      \
   template(makeDynamicCallSite_signature, "(Ljava/lang/invoke/MethodHandle;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Object;Ljava/lang/invoke/MemberName;I)Ljava/lang/invoke/CallSite;") \
-  NOT_LP64(  do_alias(machine_word_signature,         int_signature)  )                           \
-  LP64_ONLY( do_alias(machine_word_signature,         long_signature) )                           \
+  template(setTargetNormal_name,                      "setTargetNormal")                          \
+  template(setTargetVolatile_name,                    "setTargetVolatile")                        \
+  template(setTarget_signature,                       "(Ljava/lang/invoke/MethodHandle;)V")       \
+  NOT_LP64(  do_alias(intptr_signature,               int_signature)  )                           \
+  LP64_ONLY( do_alias(intptr_signature,               long_signature) )                           \
+  template(selectAlternative_signature, "(ZLjava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;") \
                                                                                                   \
   /* common method and field names */                                                             \
   template(object_initializer_name,                   "<init>")                                   \
@@ -341,6 +351,7 @@
   template(vmmethod_name,                             "vmmethod")                                 \
   template(vmtarget_name,                             "vmtarget")                                 \
   template(vmentry_name,                              "vmentry")                                  \
+  template(vmcount_name,                              "vmcount")                                  \
   template(vmslots_name,                              "vmslots")                                  \
   template(vmlayout_name,                             "vmlayout")                                 \
   template(vmindex_name,                              "vmindex")                                  \
@@ -354,6 +365,11 @@
   template(erasedType_name,                           "erasedType")                               \
   template(genericInvoker_name,                       "genericInvoker")                           \
   template(append_name,                               "append")                                   \
+  template(klass_name,                                "klass")                                    \
+  template(resolved_constructor_name,                 "resolved_constructor")                     \
+  template(array_klass_name,                          "array_klass")                              \
+  template(oop_size_name,                             "oop_size")                                 \
+  template(static_oop_field_count_name,               "static_oop_field_count")                   \
                                                                                                   \
   /* non-intrinsic name/signature pairs: */                                                       \
   template(register_method_name,                      "register")                                 \
@@ -904,6 +920,8 @@
   do_intrinsic(_invokeVarargs,            java_lang_invoke_MethodHandle, invokeVarargs_name, object_array_object_signature, F_R)  \
   do_intrinsic(_invokeDynamic,            java_lang_invoke_InvokeDynamic, star_name,         object_array_object_signature, F_SN) \
                                                                                                                         \
+  do_intrinsic(_selectAlternative,        java_lang_invoke_MethodHandleImpl, selectAlternative_name, selectAlternative_signature, F_S)  \
+                                                                                                                        \
   /* unboxing methods: */                                                                                               \
   do_intrinsic(_booleanValue,             java_lang_Boolean,      booleanValue_name, void_boolean_signature, F_R)       \
    do_name(     booleanValue_name,       "booleanValue")                                                                \
@@ -949,7 +967,8 @@
 // Class vmSymbols
 
 class vmSymbols: AllStatic {
- friend class vmIntrinsics;
+  friend class vmIntrinsics;
+  friend class VMStructs;
  public:
   // enum for figuring positions and size of array holding Symbol*s
   enum SID {
diff --git a/hotspot/src/share/vm/code/dependencies.cpp b/hotspot/src/share/vm/code/dependencies.cpp
index c152965..0a19acf 100644
--- a/hotspot/src/share/vm/code/dependencies.cpp
+++ b/hotspot/src/share/vm/code/dependencies.cpp
@@ -113,6 +113,11 @@ void Dependencies::assert_has_no_finalizable_subclasses(ciKlass* ctxk) {
   assert_common_1(no_finalizable_subclasses, ctxk);
 }
 
+void Dependencies::assert_call_site_target_value(ciCallSite* call_site, ciMethodHandle* method_handle) {
+  check_ctxk(call_site->klass());
+  assert_common_2(call_site_target_value, call_site, method_handle);
+}
+
 // Helper function.  If we are adding a new dep. under ctxk2,
 // try to find an old dep. under a broader* ctxk1.  If there is
 //
@@ -130,7 +135,7 @@ bool Dependencies::maybe_merge_ctxk(GrowableArray<ciObject*>* deps,
   }
 }
 
-void Dependencies::assert_common_1(Dependencies::DepType dept, ciObject* x) {
+void Dependencies::assert_common_1(DepType dept, ciObject* x) {
   assert(dep_args(dept) == 1, "sanity");
   log_dependency(dept, x);
   GrowableArray<ciObject*>* deps = _deps[dept];
@@ -143,21 +148,37 @@ void Dependencies::assert_common_1(Dependencies::DepType dept, ciObject* x) {
   }
 }
 
-void Dependencies::assert_common_2(Dependencies::DepType dept,
-                                   ciKlass* ctxk, ciObject* x) {
-  assert(dep_context_arg(dept) == 0, "sanity");
+void Dependencies::assert_common_2(DepType dept,
+                                   ciObject* x0, ciObject* x1) {
   assert(dep_args(dept) == 2, "sanity");
-  log_dependency(dept, ctxk, x);
+  log_dependency(dept, x0, x1);
   GrowableArray<ciObject*>* deps = _deps[dept];
 
   // see if the same (or a similar) dep is already recorded
-  if (note_dep_seen(dept, x)) {
-    // look in this bucket for redundant assertions
-    const int stride = 2;
-    for (int i = deps->length(); (i -= stride) >= 0; ) {
-      ciObject* x1 = deps->at(i+1);
-      if (x == x1) {  // same subject; check the context
-        if (maybe_merge_ctxk(deps, i+0, ctxk)) {
+  bool has_ctxk = has_explicit_context_arg(dept);
+  if (has_ctxk) {
+    assert(dep_context_arg(dept) == 0, "sanity");
+    if (note_dep_seen(dept, x1)) {
+      // look in this bucket for redundant assertions
+      const int stride = 2;
+      for (int i = deps->length(); (i -= stride) >= 0; ) {
+        ciObject* y1 = deps->at(i+1);
+        if (x1 == y1) {  // same subject; check the context
+          if (maybe_merge_ctxk(deps, i+0, x0->as_klass())) {
+            return;
+          }
+        }
+      }
+    }
+  } else {
+    assert(dep_implicit_context_arg(dept) == 0, "sanity");
+    if (note_dep_seen(dept, x0) && note_dep_seen(dept, x1)) {
+      // look in this bucket for redundant assertions
+      const int stride = 2;
+      for (int i = deps->length(); (i -= stride) >= 0; ) {
+        ciObject* y0 = deps->at(i+0);
+        ciObject* y1 = deps->at(i+1);
+        if (x0 == y0 && x1 == y1) {
           return;
         }
       }
@@ -165,11 +186,11 @@ void Dependencies::assert_common_2(Dependencies::DepType dept,
   }
 
   // append the assertion in the correct bucket:
-  deps->append(ctxk);
-  deps->append(x);
+  deps->append(x0);
+  deps->append(x1);
 }
 
-void Dependencies::assert_common_3(Dependencies::DepType dept,
+void Dependencies::assert_common_3(DepType dept,
                                    ciKlass* ctxk, ciObject* x, ciObject* x2) {
   assert(dep_context_arg(dept) == 0, "sanity");
   assert(dep_args(dept) == 3, "sanity");
@@ -341,7 +362,8 @@ const char* Dependencies::_dep_name[TYPE_LIMIT] = {
   "unique_concrete_method",
   "abstract_with_exclusive_concrete_subtypes_2",
   "exclusive_concrete_methods_2",
-  "no_finalizable_subclasses"
+  "no_finalizable_subclasses",
+  "call_site_target_value"
 };
 
 int Dependencies::_dep_args[TYPE_LIMIT] = {
@@ -354,7 +376,8 @@ int Dependencies::_dep_args[TYPE_LIMIT] = {
   2, // unique_concrete_method ctxk, m
   3, // unique_concrete_subtypes_2 ctxk, k1, k2
   3, // unique_concrete_methods_2 ctxk, m1, m2
-  1  // no_finalizable_subclasses ctxk
+  1, // no_finalizable_subclasses ctxk
+  2  // call_site_target_value call_site, method_handle
 };
 
 const char* Dependencies::dep_name(Dependencies::DepType dept) {
@@ -367,6 +390,10 @@ int Dependencies::dep_args(Dependencies::DepType dept) {
   return _dep_args[dept];
 }
 
+void Dependencies::check_valid_dependency_type(DepType dept) {
+  guarantee(FIRST_TYPE <= dept && dept < TYPE_LIMIT, err_msg("invalid dependency type: %d", (int) dept));
+}
+
 // for the sake of the compiler log, print out current dependencies:
 void Dependencies::log_all_dependencies() {
   if (log() == NULL)  return;
@@ -572,8 +599,7 @@ bool Dependencies::DepStream::next() {
     code_byte -= ctxk_bit;
     DepType dept = (DepType)code_byte;
     _type = dept;
-    guarantee((dept - FIRST_TYPE) < (TYPE_LIMIT - FIRST_TYPE),
-              "bad dependency type tag");
+    Dependencies::check_valid_dependency_type(dept);
     int stride = _dep_args[dept];
     assert(stride == dep_args(dept), "sanity");
     int skipj = -1;
@@ -601,18 +627,35 @@ oop Dependencies::DepStream::argument(int i) {
 
 klassOop Dependencies::DepStream::context_type() {
   assert(must_be_in_vm(), "raw oops here");
-  int ctxkj = dep_context_arg(_type);  // -1 if no context arg
-  if (ctxkj < 0) {
-    return NULL;           // for example, evol_method
-  } else {
-    oop k = recorded_oop_at(_xi[ctxkj]);
-    if (k != NULL) {       // context type was not compressed away
+
+  // Most dependencies have an explicit context type argument.
+  {
+    int ctxkj = dep_context_arg(_type);  // -1 if no explicit context arg
+    if (ctxkj >= 0) {
+      oop k = argument(ctxkj);
+      if (k != NULL) {       // context type was not compressed away
+        assert(k->is_klass(), "type check");
+        return (klassOop) k;
+      }
+      // recompute "default" context type
+      return ctxk_encoded_as_null(_type, argument(ctxkj+1));
+    }
+  }
+
+  // Some dependencies are using the klass of the first object
+  // argument as implicit context type (e.g. call_site_target_value).
+  {
+    int ctxkj = dep_implicit_context_arg(_type);
+    if (ctxkj >= 0) {
+      oop k = argument(ctxkj)->klass();
       assert(k->is_klass(), "type check");
       return (klassOop) k;
-    } else {               // recompute "default" context type
-      return ctxk_encoded_as_null(_type, recorded_oop_at(_xi[ctxkj+1]));
     }
   }
+
+  // And some dependencies don't have a context type at all,
+  // e.g. evol_method.
+  return NULL;
 }
 
 /// Checking dependencies:
@@ -800,11 +843,11 @@ class ClassHierarchyWalker {
                                  bool participants_hide_witnesses,
                                  bool top_level_call = true);
   // the spot-checking version:
-  klassOop find_witness_in(DepChange& changes,
+  klassOop find_witness_in(KlassDepChange& changes,
                            klassOop context_type,
                            bool participants_hide_witnesses);
  public:
-  klassOop find_witness_subtype(klassOop context_type, DepChange* changes = NULL) {
+  klassOop find_witness_subtype(klassOop context_type, KlassDepChange* changes = NULL) {
     assert(doing_subtype_search(), "must set up a subtype search");
     // When looking for unexpected concrete types,
     // do not look beneath expected ones.
@@ -817,7 +860,7 @@ class ClassHierarchyWalker {
       return find_witness_anywhere(context_type, participants_hide_witnesses);
     }
   }
-  klassOop find_witness_definer(klassOop context_type, DepChange* changes = NULL) {
+  klassOop find_witness_definer(klassOop context_type, KlassDepChange* changes = NULL) {
     assert(!doing_subtype_search(), "must set up a method definer search");
     // When looking for unexpected concrete methods,
     // look beneath expected ones, to see if there are overrides.
@@ -878,7 +921,7 @@ static bool count_find_witness_calls() {
 #endif //PRODUCT
 
 
-klassOop ClassHierarchyWalker::find_witness_in(DepChange& changes,
+klassOop ClassHierarchyWalker::find_witness_in(KlassDepChange& changes,
                                                klassOop context_type,
                                                bool participants_hide_witnesses) {
   assert(changes.involves_context(context_type), "irrelevant dependency");
@@ -1137,7 +1180,7 @@ klassOop Dependencies::check_leaf_type(klassOop ctxk) {
 // when dealing with the types of actual instances.
 klassOop Dependencies::check_abstract_with_unique_concrete_subtype(klassOop ctxk,
                                                                    klassOop conck,
-                                                                   DepChange* changes) {
+                                                                   KlassDepChange* changes) {
   ClassHierarchyWalker wf(conck);
   return wf.find_witness_subtype(ctxk, changes);
 }
@@ -1146,7 +1189,7 @@ klassOop Dependencies::check_abstract_with_unique_concrete_subtype(klassOop ctxk
 // instantiatable.  This can allow the compiler to make some paths go
 // dead, if they are gated by a test of the type.
 klassOop Dependencies::check_abstract_with_no_concrete_subtype(klassOop ctxk,
-                                                               DepChange* changes) {
+                                                               KlassDepChange* changes) {
   // Find any concrete subtype, with no participants:
   ClassHierarchyWalker wf;
   return wf.find_witness_subtype(ctxk, changes);
@@ -1156,7 +1199,7 @@ klassOop Dependencies::check_abstract_with_no_concrete_subtype(klassOop ctxk,
 // If a concrete class has no concrete subtypes, it can always be
 // exactly typed.  This allows the use of a cheaper type test.
 klassOop Dependencies::check_concrete_with_no_concrete_subtype(klassOop ctxk,
-                                                               DepChange* changes) {
+                                                               KlassDepChange* changes) {
   // Find any concrete subtype, with only the ctxk as participant:
   ClassHierarchyWalker wf(ctxk);
   return wf.find_witness_subtype(ctxk, changes);
@@ -1217,7 +1260,7 @@ klassOop Dependencies::check_abstract_with_exclusive_concrete_subtypes(
                                                 klassOop ctxk,
                                                 klassOop k1,
                                                 klassOop k2,
-                                                DepChange* changes) {
+                                                KlassDepChange* changes) {
   ClassHierarchyWalker wf;
   wf.add_participant(k1);
   wf.add_participant(k2);
@@ -1278,7 +1321,7 @@ int Dependencies::find_exclusive_concrete_subtypes(klassOop ctxk,
 // If a class (or interface) has a unique concrete method uniqm, return NULL.
 // Otherwise, return a class that contains an interfering method.
 klassOop Dependencies::check_unique_concrete_method(klassOop ctxk, methodOop uniqm,
-                                                    DepChange* changes) {
+                                                    KlassDepChange* changes) {
   // Here is a missing optimization:  If uniqm->is_final(),
   // we don't really need to search beneath it for overrides.
   // This is probably not important, since we don't use dependencies
@@ -1321,7 +1364,7 @@ methodOop Dependencies::find_unique_concrete_method(klassOop ctxk, methodOop m)
 klassOop Dependencies::check_exclusive_concrete_methods(klassOop ctxk,
                                                         methodOop m1,
                                                         methodOop m2,
-                                                        DepChange* changes) {
+                                                        KlassDepChange* changes) {
   ClassHierarchyWalker wf(m1);
   wf.add_participant(m1->method_holder());
   wf.add_participant(m2->method_holder());
@@ -1383,7 +1426,7 @@ int Dependencies::find_exclusive_concrete_methods(klassOop ctxk,
 }
 
 
-klassOop Dependencies::check_has_no_finalizable_subclasses(klassOop ctxk, DepChange* changes) {
+klassOop Dependencies::check_has_no_finalizable_subclasses(klassOop ctxk, KlassDepChange* changes) {
   Klass* search_at = ctxk->klass_part();
   if (changes != NULL)
     search_at = changes->new_type()->klass_part(); // just look at the new bit
@@ -1395,8 +1438,38 @@ klassOop Dependencies::check_has_no_finalizable_subclasses(klassOop ctxk, DepCha
 }
 
 
-klassOop Dependencies::DepStream::check_dependency_impl(DepChange* changes) {
+klassOop Dependencies::check_call_site_target_value(oop call_site, oop method_handle, CallSiteDepChange* changes) {
+  assert(call_site    ->is_a(SystemDictionary::CallSite_klass()),     "sanity");
+  assert(method_handle->is_a(SystemDictionary::MethodHandle_klass()), "sanity");
+  if (changes == NULL) {
+    // Validate all CallSites
+    if (java_lang_invoke_CallSite::target(call_site) != method_handle)
+      return call_site->klass();  // assertion failed
+  } else {
+    // Validate the given CallSite
+    if (call_site == changes->call_site() && java_lang_invoke_CallSite::target(call_site) != changes->method_handle()) {
+      assert(method_handle != changes->method_handle(), "must be");
+      return call_site->klass();  // assertion failed
+    }
+  }
+  return NULL;  // assertion still valid
+}
+
+
+void Dependencies::DepStream::trace_and_log_witness(klassOop witness) {
+  if (witness != NULL) {
+    if (TraceDependencies) {
+      print_dependency(witness, /*verbose=*/ true);
+    }
+    // The following is a no-op unless logging is enabled:
+    log_dependency(witness);
+  }
+}
+
+
+klassOop Dependencies::DepStream::check_klass_dependency(KlassDepChange* changes) {
   assert_locked_or_safepoint(Compile_lock);
+  Dependencies::check_valid_dependency_type(type());
 
   klassOop witness = NULL;
   switch (type()) {
@@ -1407,95 +1480,103 @@ klassOop Dependencies::DepStream::check_dependency_impl(DepChange* changes) {
     witness = check_leaf_type(context_type());
     break;
   case abstract_with_unique_concrete_subtype:
-    witness = check_abstract_with_unique_concrete_subtype(context_type(),
-                                                          type_argument(1),
-                                                          changes);
+    witness = check_abstract_with_unique_concrete_subtype(context_type(), type_argument(1), changes);
     break;
   case abstract_with_no_concrete_subtype:
-    witness = check_abstract_with_no_concrete_subtype(context_type(),
-                                                      changes);
+    witness = check_abstract_with_no_concrete_subtype(context_type(), changes);
     break;
   case concrete_with_no_concrete_subtype:
-    witness = check_concrete_with_no_concrete_subtype(context_type(),
-                                                      changes);
+    witness = check_concrete_with_no_concrete_subtype(context_type(), changes);
     break;
   case unique_concrete_method:
-    witness = check_unique_concrete_method(context_type(),
-                                           method_argument(1),
-                                           changes);
+    witness = check_unique_concrete_method(context_type(), method_argument(1), changes);
     break;
   case abstract_with_exclusive_concrete_subtypes_2:
-    witness = check_abstract_with_exclusive_concrete_subtypes(context_type(),
-                                                              type_argument(1),
-                                                              type_argument(2),
-                                                              changes);
+    witness = check_abstract_with_exclusive_concrete_subtypes(context_type(), type_argument(1), type_argument(2), changes);
     break;
   case exclusive_concrete_methods_2:
-    witness = check_exclusive_concrete_methods(context_type(),
-                                               method_argument(1),
-                                               method_argument(2),
-                                               changes);
+    witness = check_exclusive_concrete_methods(context_type(), method_argument(1), method_argument(2), changes);
     break;
   case no_finalizable_subclasses:
-    witness = check_has_no_finalizable_subclasses(context_type(),
-                                                  changes);
+    witness = check_has_no_finalizable_subclasses(context_type(), changes);
     break;
-          default:
+  default:
     witness = NULL;
-    ShouldNotReachHere();
     break;
   }
-  if (witness != NULL) {
-    if (TraceDependencies) {
-      print_dependency(witness, /*verbose=*/ true);
-    }
-    // The following is a no-op unless logging is enabled:
-    log_dependency(witness);
-  }
+  trace_and_log_witness(witness);
   return witness;
 }
 
 
-klassOop Dependencies::DepStream::spot_check_dependency_at(DepChange& changes) {
-  if (!changes.involves_context(context_type()))
-    // irrelevant dependency; skip it
-    return NULL;
+klassOop Dependencies::DepStream::check_call_site_dependency(CallSiteDepChange* changes) {
+  assert_locked_or_safepoint(Compile_lock);
+  Dependencies::check_valid_dependency_type(type());
 
-  return check_dependency_impl(&changes);
+  klassOop witness = NULL;
+  switch (type()) {
+  case call_site_target_value:
+    witness = check_call_site_target_value(argument(0), argument(1), changes);
+    break;
+  default:
+    witness = NULL;
+    break;
+  }
+  trace_and_log_witness(witness);
+  return witness;
 }
 
 
-void DepChange::initialize() {
-  // entire transaction must be under this lock:
-  assert_lock_strong(Compile_lock);
+klassOop Dependencies::DepStream::spot_check_dependency_at(DepChange& changes) {
+  // Handle klass dependency
+  if (changes.is_klass_change() && changes.as_klass_change()->involves_context(context_type()))
+    return check_klass_dependency(changes.as_klass_change());
 
-  // Mark all dependee and all its superclasses
-  // Mark transitive interfaces
-  for (ContextStream str(*this); str.next(); ) {
-    klassOop d = str.klass();
-    assert(!instanceKlass::cast(d)->is_marked_dependent(), "checking");
-    instanceKlass::cast(d)->set_is_marked_dependent(true);
-  }
+  // Handle CallSite dependency
+  if (changes.is_call_site_change())
+    return check_call_site_dependency(changes.as_call_site_change());
+
+  // irrelevant dependency; skip it
+  return NULL;
 }
 
-DepChange::~DepChange() {
-  // Unmark all dependee and all its superclasses
-  // Unmark transitive interfaces
+
+void DepChange::print() {
+  int nsup = 0, nint = 0;
   for (ContextStream str(*this); str.next(); ) {
-    klassOop d = str.klass();
-    instanceKlass::cast(d)->set_is_marked_dependent(false);
+    klassOop k = str.klass();
+    switch (str.change_type()) {
+    case Change_new_type:
+      tty->print_cr("  dependee = %s", instanceKlass::cast(k)->external_name());
+      break;
+    case Change_new_sub:
+      if (!WizardMode) {
+        ++nsup;
+      } else {
+        tty->print_cr("  context super = %s", instanceKlass::cast(k)->external_name());
+      }
+      break;
+    case Change_new_impl:
+      if (!WizardMode) {
+        ++nint;
+      } else {
+        tty->print_cr("  context interface = %s", instanceKlass::cast(k)->external_name());
+      }
+      break;
+    }
+  }
+  if (nsup + nint != 0) {
+    tty->print_cr("  context supers = %d, interfaces = %d", nsup, nint);
   }
 }
 
-bool DepChange::involves_context(klassOop k) {
-  if (k == NULL || !Klass::cast(k)->oop_is_instance()) {
-    return false;
-  }
-  instanceKlass* ik = instanceKlass::cast(k);
-  bool is_contained = ik->is_marked_dependent();
-  assert(is_contained == Klass::cast(new_type())->is_subtype_of(k),
-         "correct marking of potential context types");
-  return is_contained;
+void DepChange::ContextStream::start() {
+  klassOop new_type = _changes.is_klass_change() ? _changes.as_klass_change()->new_type() : (klassOop) NULL;
+  _change_type = (new_type == NULL ? NO_CHANGE : Start_Klass);
+  _klass = new_type;
+  _ti_base = NULL;
+  _ti_index = 0;
+  _ti_limit = 0;
 }
 
 bool DepChange::ContextStream::next() {
@@ -1534,35 +1615,39 @@ bool DepChange::ContextStream::next() {
   return false;
 }
 
-void DepChange::print() {
-  int nsup = 0, nint = 0;
+void KlassDepChange::initialize() {
+  // entire transaction must be under this lock:
+  assert_lock_strong(Compile_lock);
+
+  // Mark all dependee and all its superclasses
+  // Mark transitive interfaces
   for (ContextStream str(*this); str.next(); ) {
-    klassOop k = str.klass();
-    switch (str.change_type()) {
-    case Change_new_type:
-      tty->print_cr("  dependee = %s", instanceKlass::cast(k)->external_name());
-      break;
-    case Change_new_sub:
-      if (!WizardMode) {
-        ++nsup;
-      } else {
-        tty->print_cr("  context super = %s", instanceKlass::cast(k)->external_name());
-      }
-      break;
-    case Change_new_impl:
-      if (!WizardMode) {
-        ++nint;
-      } else {
-        tty->print_cr("  context interface = %s", instanceKlass::cast(k)->external_name());
-      }
-      break;
-    }
+    klassOop d = str.klass();
+    assert(!instanceKlass::cast(d)->is_marked_dependent(), "checking");
+    instanceKlass::cast(d)->set_is_marked_dependent(true);
   }
-  if (nsup + nint != 0) {
-    tty->print_cr("  context supers = %d, interfaces = %d", nsup, nint);
+}
+
+KlassDepChange::~KlassDepChange() {
+  // Unmark all dependee and all its superclasses
+  // Unmark transitive interfaces
+  for (ContextStream str(*this); str.next(); ) {
+    klassOop d = str.klass();
+    instanceKlass::cast(d)->set_is_marked_dependent(false);
   }
 }
 
+bool KlassDepChange::involves_context(klassOop k) {
+  if (k == NULL || !Klass::cast(k)->oop_is_instance()) {
+    return false;
+  }
+  instanceKlass* ik = instanceKlass::cast(k);
+  bool is_contained = ik->is_marked_dependent();
+  assert(is_contained == Klass::cast(new_type())->is_subtype_of(k),
+         "correct marking of potential context types");
+  return is_contained;
+}
+
 #ifndef PRODUCT
 void Dependencies::print_statistics() {
   if (deps_find_witness_print != 0) {
diff --git a/hotspot/src/share/vm/code/dependencies.hpp b/hotspot/src/share/vm/code/dependencies.hpp
index 770e7f7..2b8b2af 100644
--- a/hotspot/src/share/vm/code/dependencies.hpp
+++ b/hotspot/src/share/vm/code/dependencies.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,18 +25,21 @@
 #ifndef SHARE_VM_CODE_DEPENDENCIES_HPP
 #define SHARE_VM_CODE_DEPENDENCIES_HPP
 
+#include "ci/ciCallSite.hpp"
 #include "ci/ciKlass.hpp"
+#include "ci/ciMethodHandle.hpp"
+#include "classfile/systemDictionary.hpp"
 #include "code/compressedStream.hpp"
 #include "code/nmethod.hpp"
 #include "utilities/growableArray.hpp"
 
 //** Dependencies represent assertions (approximate invariants) within
-// the class hierarchy.  An example is an assertion that a given
-// method is not overridden; another example is that a type has only
-// one concrete subtype.  Compiled code which relies on such
-// assertions must be discarded if they are overturned by changes in
-// the class hierarchy.  We can think of these assertions as
-// approximate invariants, because we expect them to be overturned
+// the runtime system, e.g. class hierarchy changes.  An example is an
+// assertion that a given method is not overridden; another example is
+// that a type has only one concrete subtype.  Compiled code which
+// relies on such assertions must be discarded if they are overturned
+// by changes in the runtime system.  We can think of these assertions
+// as approximate invariants, because we expect them to be overturned
 // very infrequently.  We are willing to perform expensive recovery
 // operations when they are overturned.  The benefit, of course, is
 // performing optimistic optimizations (!) on the object code.
@@ -52,6 +55,8 @@ class OopRecorder;
 class xmlStream;
 class CompileLog;
 class DepChange;
+class   KlassDepChange;
+class   CallSiteDepChange;
 class No_Safepoint_Verifier;
 
 class Dependencies: public ResourceObj {
@@ -152,15 +157,23 @@ class Dependencies: public ResourceObj {
     // subclasses require finalization registration.
     no_finalizable_subclasses,
 
+    // This dependency asserts when the CallSite.target value changed.
+    call_site_target_value,
+
     TYPE_LIMIT
   };
   enum {
     LG2_TYPE_LIMIT = 4,  // assert(TYPE_LIMIT <= (1<<LG2_TYPE_LIMIT))
 
     // handy categorizations of dependency types:
-    all_types      = ((1<<TYPE_LIMIT)-1) & ((-1)<<FIRST_TYPE),
-    non_ctxk_types = (1<<evol_method),
-    ctxk_types     = all_types & ~non_ctxk_types,
+    all_types           = ((1 << TYPE_LIMIT) - 1) & ((-1) << FIRST_TYPE),
+
+    non_klass_types     = (1 << call_site_target_value),
+    klass_types         = all_types & ~non_klass_types,
+
+    non_ctxk_types      = (1 << evol_method),
+    implicit_ctxk_types = (1 << call_site_target_value),
+    explicit_ctxk_types = all_types & ~(non_ctxk_types | implicit_ctxk_types),
 
     max_arg_count = 3,   // current maximum number of arguments (incl. ctxk)
 
@@ -176,9 +189,16 @@ class Dependencies: public ResourceObj {
 
   static const char* dep_name(DepType dept);
   static int         dep_args(DepType dept);
-  static int  dep_context_arg(DepType dept) {
-    return dept_in_mask(dept, ctxk_types)? 0: -1;
-  }
+
+  static bool is_klass_type(           DepType dept) { return dept_in_mask(dept, klass_types        ); }
+
+  static bool has_explicit_context_arg(DepType dept) { return dept_in_mask(dept, explicit_ctxk_types); }
+  static bool has_implicit_context_arg(DepType dept) { return dept_in_mask(dept, implicit_ctxk_types); }
+
+  static int           dep_context_arg(DepType dept) { return has_explicit_context_arg(dept) ? 0 : -1; }
+  static int  dep_implicit_context_arg(DepType dept) { return has_implicit_context_arg(dept) ? 0 : -1; }
+
+  static void check_valid_dependency_type(DepType dept);
 
  private:
   // State for writing a new set of dependencies:
@@ -241,8 +261,8 @@ class Dependencies: public ResourceObj {
   }
 
   void assert_common_1(DepType dept, ciObject* x);
-  void assert_common_2(DepType dept, ciKlass* ctxk, ciObject* x);
-  void assert_common_3(DepType dept, ciKlass* ctxk, ciObject* x, ciObject* x2);
+  void assert_common_2(DepType dept, ciObject* x0, ciObject* x1);
+  void assert_common_3(DepType dept, ciKlass* ctxk, ciObject* x1, ciObject* x2);
 
  public:
   // Adding assertions to a new dependency set at compile time:
@@ -255,6 +275,7 @@ class Dependencies: public ResourceObj {
   void assert_abstract_with_exclusive_concrete_subtypes(ciKlass* ctxk, ciKlass* k1, ciKlass* k2);
   void assert_exclusive_concrete_methods(ciKlass* ctxk, ciMethod* m1, ciMethod* m2);
   void assert_has_no_finalizable_subclasses(ciKlass* ctxk);
+  void assert_call_site_target_value(ciCallSite* call_site, ciMethodHandle* method_handle);
 
   // Define whether a given method or type is concrete.
   // These methods define the term "concrete" as used in this module.
@@ -296,19 +317,19 @@ class Dependencies: public ResourceObj {
   static klassOop check_evol_method(methodOop m);
   static klassOop check_leaf_type(klassOop ctxk);
   static klassOop check_abstract_with_unique_concrete_subtype(klassOop ctxk, klassOop conck,
-                                                              DepChange* changes = NULL);
+                                                              KlassDepChange* changes = NULL);
   static klassOop check_abstract_with_no_concrete_subtype(klassOop ctxk,
-                                                          DepChange* changes = NULL);
+                                                          KlassDepChange* changes = NULL);
   static klassOop check_concrete_with_no_concrete_subtype(klassOop ctxk,
-                                                          DepChange* changes = NULL);
+                                                          KlassDepChange* changes = NULL);
   static klassOop check_unique_concrete_method(klassOop ctxk, methodOop uniqm,
-                                               DepChange* changes = NULL);
+                                               KlassDepChange* changes = NULL);
   static klassOop check_abstract_with_exclusive_concrete_subtypes(klassOop ctxk, klassOop k1, klassOop k2,
-                                                                  DepChange* changes = NULL);
+                                                                  KlassDepChange* changes = NULL);
   static klassOop check_exclusive_concrete_methods(klassOop ctxk, methodOop m1, methodOop m2,
-                                                   DepChange* changes = NULL);
-  static klassOop check_has_no_finalizable_subclasses(klassOop ctxk,
-                                                      DepChange* changes = NULL);
+                                                   KlassDepChange* changes = NULL);
+  static klassOop check_has_no_finalizable_subclasses(klassOop ctxk, KlassDepChange* changes = NULL);
+  static klassOop check_call_site_target_value(oop call_site, oop method_handle, CallSiteDepChange* changes = NULL);
   // A returned klassOop is NULL if the dependency assertion is still
   // valid.  A non-NULL klassOop is a 'witness' to the assertion
   // failure, a point in the class hierarchy where the assertion has
@@ -415,7 +436,10 @@ class Dependencies: public ResourceObj {
     inline oop recorded_oop_at(int i);
         // => _code? _code->oop_at(i): *_deps->_oop_recorder->handle_at(i)
 
-    klassOop check_dependency_impl(DepChange* changes);
+    klassOop check_klass_dependency(KlassDepChange* changes);
+    klassOop check_call_site_dependency(CallSiteDepChange* changes);
+
+    void trace_and_log_witness(klassOop witness);
 
   public:
     DepStream(Dependencies* deps)
@@ -442,6 +466,8 @@ class Dependencies: public ResourceObj {
     oop argument(int i);         // => recorded_oop_at(argument_index(i))
     klassOop context_type();
 
+    bool is_klass_type()         { return Dependencies::is_klass_type(type()); }
+
     methodOop method_argument(int i) {
       oop x = argument(i);
       assert(x->is_method(), "type");
@@ -453,10 +479,13 @@ class Dependencies: public ResourceObj {
       return (klassOop) x;
     }
 
-    // The point of the whole exercise:  Is this dep is still OK?
+    // The point of the whole exercise:  Is this dep still OK?
     klassOop check_dependency() {
-      return check_dependency_impl(NULL);
+      klassOop result = check_klass_dependency(NULL);
+      if (result != NULL)  return result;
+      return check_call_site_dependency(NULL);
     }
+
     // A lighter version:  Checks only around recent changes in a class
     // hierarchy.  (See Universe::flush_dependents_on.)
     klassOop spot_check_dependency_at(DepChange& changes);
@@ -472,13 +501,27 @@ class Dependencies: public ResourceObj {
   static void print_statistics() PRODUCT_RETURN;
 };
 
-// A class hierarchy change coming through the VM (under the Compile_lock).
-// The change is structured as a single new type with any number of supers
-// and implemented interface types.  Other than the new type, any of the
-// super types can be context types for a relevant dependency, which the
-// new type could invalidate.
+
+// Every particular DepChange is a sub-class of this class.
 class DepChange : public StackObj {
  public:
+  // What kind of DepChange is this?
+  virtual bool is_klass_change()     const { return false; }
+  virtual bool is_call_site_change() const { return false; }
+
+  // Subclass casting with assertions.
+  KlassDepChange*    as_klass_change() {
+    assert(is_klass_change(), "bad cast");
+    return (KlassDepChange*) this;
+  }
+  CallSiteDepChange* as_call_site_change() {
+    assert(is_call_site_change(), "bad cast");
+    return (CallSiteDepChange*) this;
+  }
+
+  void print();
+
+ public:
   enum ChangeType {
     NO_CHANGE = 0,              // an uninvolved klass
     Change_new_type,            // a newly loaded type
@@ -488,28 +531,6 @@ class DepChange : public StackObj {
     Start_Klass = CHANGE_LIMIT  // internal indicator for ContextStream
   };
 
- private:
-  // each change set is rooted in exactly one new type (at present):
-  KlassHandle _new_type;
-
-  void initialize();
-
- public:
-  // notes the new type, marks it and all its super-types
-  DepChange(KlassHandle new_type)
-    : _new_type(new_type)
-  {
-    initialize();
-  }
-
-  // cleans up the marks
-  ~DepChange();
-
-  klassOop new_type()                   { return _new_type(); }
-
-  // involves_context(k) is true if k is new_type or any of the super types
-  bool involves_context(klassOop k);
-
   // Usage:
   // for (DepChange::ContextStream str(changes); str.next(); ) {
   //   klassOop k = str.klass();
@@ -530,14 +551,7 @@ class DepChange : public StackObj {
     int         _ti_limit;
 
     // start at the beginning:
-    void start() {
-      klassOop new_type = _changes.new_type();
-      _change_type = (new_type == NULL ? NO_CHANGE: Start_Klass);
-      _klass = new_type;
-      _ti_base = NULL;
-      _ti_index = 0;
-      _ti_limit = 0;
-    }
+    void start();
 
    public:
     ContextStream(DepChange& changes)
@@ -555,8 +569,62 @@ class DepChange : public StackObj {
     klassOop   klass()           { return _klass; }
   };
   friend class DepChange::ContextStream;
+};
 
-  void print();
+
+// A class hierarchy change coming through the VM (under the Compile_lock).
+// The change is structured as a single new type with any number of supers
+// and implemented interface types.  Other than the new type, any of the
+// super types can be context types for a relevant dependency, which the
+// new type could invalidate.
+class KlassDepChange : public DepChange {
+ private:
+  // each change set is rooted in exactly one new type (at present):
+  KlassHandle _new_type;
+
+  void initialize();
+
+ public:
+  // notes the new type, marks it and all its super-types
+  KlassDepChange(KlassHandle new_type)
+    : _new_type(new_type)
+  {
+    initialize();
+  }
+
+  // cleans up the marks
+  ~KlassDepChange();
+
+  // What kind of DepChange is this?
+  virtual bool is_klass_change() const { return true; }
+
+  klassOop new_type() { return _new_type(); }
+
+  // involves_context(k) is true if k is new_type or any of the super types
+  bool involves_context(klassOop k);
+};
+
+
+// A CallSite has changed its target.
+class CallSiteDepChange : public DepChange {
+ private:
+  Handle _call_site;
+  Handle _method_handle;
+
+ public:
+  CallSiteDepChange(Handle call_site, Handle method_handle)
+    : _call_site(call_site),
+      _method_handle(method_handle)
+  {
+    assert(_call_site()    ->is_a(SystemDictionary::CallSite_klass()),     "must be");
+    assert(_method_handle()->is_a(SystemDictionary::MethodHandle_klass()), "must be");
+  }
+
+  // What kind of DepChange is this?
+  virtual bool is_call_site_change() const { return true; }
+
+  oop call_site()     const { return _call_site();     }
+  oop method_handle() const { return _method_handle(); }
 };
 
 #endif // SHARE_VM_CODE_DEPENDENCIES_HPP
diff --git a/hotspot/src/share/vm/code/nmethod.cpp b/hotspot/src/share/vm/code/nmethod.cpp
index 2908560..f375bdc 100644
--- a/hotspot/src/share/vm/code/nmethod.cpp
+++ b/hotspot/src/share/vm/code/nmethod.cpp
@@ -25,6 +25,7 @@
 #include "precompiled.hpp"
 #include "code/codeCache.hpp"
 #include "code/compiledIC.hpp"
+#include "code/dependencies.hpp"
 #include "code/nmethod.hpp"
 #include "code/scopeDesc.hpp"
 #include "compiler/abstractCompiler.hpp"
@@ -450,7 +451,6 @@ void nmethod::init_defaults() {
   _stack_traversal_mark       = 0;
   _unload_reported            = false;           // jvmti state
 
-  NOT_PRODUCT(_has_debug_info = false);
 #ifdef ASSERT
   _oops_are_stale             = false;
 #endif
diff --git a/hotspot/src/share/vm/code/nmethod.hpp b/hotspot/src/share/vm/code/nmethod.hpp
index ae90de6..47c5a28 100644
--- a/hotspot/src/share/vm/code/nmethod.hpp
+++ b/hotspot/src/share/vm/code/nmethod.hpp
@@ -191,8 +191,6 @@ class nmethod : public CodeBlob {
 
   jbyte _scavenge_root_state;
 
-  NOT_PRODUCT(bool _has_debug_info; )
-
   // Nmethod Flushing lock. If non-zero, then the nmethod is not removed
   // and is not made into a zombie. However, once the nmethod is made into
   // a zombie, it will be locked one final time if CompiledMethodUnload
@@ -329,11 +327,6 @@ class nmethod : public CodeBlob {
   methodOop method() const                        { return _method; }
   AbstractCompiler* compiler() const              { return _compiler; }
 
-#ifndef PRODUCT
-  bool has_debug_info() const                     { return _has_debug_info; }
-  void set_has_debug_info(bool f)                 { _has_debug_info = false; }
-#endif // NOT PRODUCT
-
   // type info
   bool is_nmethod() const                         { return true; }
   bool is_java_method() const                     { return !method()->is_native(); }
diff --git a/hotspot/src/share/vm/code/pcDesc.cpp b/hotspot/src/share/vm/code/pcDesc.cpp
index d6c3751..7ba2546 100644
--- a/hotspot/src/share/vm/code/pcDesc.cpp
+++ b/hotspot/src/share/vm/code/pcDesc.cpp
@@ -30,11 +30,10 @@
 #include "memory/resourceArea.hpp"
 
 PcDesc::PcDesc(int pc_offset, int scope_decode_offset, int obj_decode_offset) {
-  assert(sizeof(PcDescFlags) <= 4, "occupies more than a word");
   _pc_offset           = pc_offset;
   _scope_decode_offset = scope_decode_offset;
   _obj_decode_offset   = obj_decode_offset;
-  _flags.word          = 0;
+  _flags               = 0;
 }
 
 address PcDesc::real_pc(const nmethod* code) const {
@@ -44,7 +43,7 @@ address PcDesc::real_pc(const nmethod* code) const {
 void PcDesc::print(nmethod* code) {
 #ifndef PRODUCT
   ResourceMark rm;
-  tty->print_cr("PcDesc(pc=0x%lx offset=%x bits=%x):", real_pc(code), pc_offset(), _flags.bits);
+  tty->print_cr("PcDesc(pc=0x%lx offset=%x bits=%x):", real_pc(code), pc_offset(), _flags);
 
   if (scope_decode_offset() == DebugInformationRecorder::serialized_null) {
     return;
diff --git a/hotspot/src/share/vm/code/pcDesc.hpp b/hotspot/src/share/vm/code/pcDesc.hpp
index 99a6e4c..83ec921 100644
--- a/hotspot/src/share/vm/code/pcDesc.hpp
+++ b/hotspot/src/share/vm/code/pcDesc.hpp
@@ -39,15 +39,17 @@ class PcDesc VALUE_OBJ_CLASS_SPEC {
   int _scope_decode_offset; // offset for scope in nmethod
   int _obj_decode_offset;
 
-  union PcDescFlags {
-    int word;
-    struct {
-      unsigned int reexecute: 1;
-      unsigned int is_method_handle_invoke: 1;
-      unsigned int return_oop: 1;
-    } bits;
-    bool operator ==(const PcDescFlags& other) { return word == other.word; }
-  } _flags;
+  enum {
+    PCDESC_reexecute               = 1 << 0,
+    PCDESC_is_method_handle_invoke = 1 << 1,
+    PCDESC_return_oop              = 1 << 2
+  };
+
+  int _flags;
+
+  void set_flag(int mask, bool z) {
+    _flags = z ? (_flags | mask) : (_flags & ~mask);
+  }
 
  public:
   int pc_offset() const           { return _pc_offset;   }
@@ -69,8 +71,8 @@ class PcDesc VALUE_OBJ_CLASS_SPEC {
   };
 
   // Flags
-  bool     should_reexecute()              const { return _flags.bits.reexecute; }
-  void set_should_reexecute(bool z)              { _flags.bits.reexecute = z;    }
+  bool     should_reexecute()              const { return (_flags & PCDESC_reexecute) != 0; }
+  void set_should_reexecute(bool z)              { set_flag(PCDESC_reexecute, z); }
 
   // Does pd refer to the same information as pd?
   bool is_same_info(const PcDesc* pd) {
@@ -79,11 +81,11 @@ class PcDesc VALUE_OBJ_CLASS_SPEC {
       _flags == pd->_flags;
   }
 
-  bool     is_method_handle_invoke()       const { return _flags.bits.is_method_handle_invoke;     }
-  void set_is_method_handle_invoke(bool z)       {        _flags.bits.is_method_handle_invoke = z; }
+  bool     is_method_handle_invoke()       const { return (_flags & PCDESC_is_method_handle_invoke) != 0;     }
+  void set_is_method_handle_invoke(bool z)       { set_flag(PCDESC_is_method_handle_invoke, z); }
 
-  bool     return_oop()                    const { return _flags.bits.return_oop;     }
-  void set_return_oop(bool z)                    {        _flags.bits.return_oop = z; }
+  bool     return_oop()                    const { return (_flags & PCDESC_return_oop) != 0;     }
+  void set_return_oop(bool z)                    { set_flag(PCDESC_return_oop, z); }
 
   // Returns the real pc
   address real_pc(const nmethod* code) const;
diff --git a/hotspot/src/share/vm/code/stubs.hpp b/hotspot/src/share/vm/code/stubs.hpp
index ed5380f..328ad8b 100644
--- a/hotspot/src/share/vm/code/stubs.hpp
+++ b/hotspot/src/share/vm/code/stubs.hpp
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 // The classes in this file provide a simple framework for the
 // management of little pieces of machine code - or stubs -
diff --git a/hotspot/src/share/vm/compiler/compileBroker.hpp b/hotspot/src/share/vm/compiler/compileBroker.hpp
index eb571ee..7abc37e 100644
--- a/hotspot/src/share/vm/compiler/compileBroker.hpp
+++ b/hotspot/src/share/vm/compiler/compileBroker.hpp
@@ -37,6 +37,8 @@ class nmethodLocker;
 // An entry in the compile queue.  It represents a pending or current
 // compilation.
 class CompileTask : public CHeapObj {
+  friend class VMStructs;
+
  private:
   Monitor*     _lock;
   uint         _compile_id;
diff --git a/hotspot/src/share/vm/compiler/disassembler.hpp b/hotspot/src/share/vm/compiler/disassembler.hpp
index 3761540..a70b8cc 100644
--- a/hotspot/src/share/vm/compiler/disassembler.hpp
+++ b/hotspot/src/share/vm/compiler/disassembler.hpp
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 class decode_env;
 
diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp
index 5bee77e..5edd8cc 100644
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp
@@ -37,6 +37,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 elapsedTimer CMSAdaptiveSizePolicy::_concurrent_timer;
 elapsedTimer CMSAdaptiveSizePolicy::_STW_timer;
 
diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp
index cbe5953..0566f38 100644
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp
@@ -50,6 +50,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 //
 // ConcurrentMarkSweepPolicy methods
diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
index 9a2fb02..c5bd4ca 100644
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
@@ -2025,9 +2025,6 @@ void CMSCollector::do_compaction_work(bool clear_all_soft_refs) {
                                             _intra_sweep_estimate.padded_average());
   }
 
-  {
-    TraceCMSMemoryManagerStats tmms(gch->gc_cause());
-  }
   GenMarkSweep::invoke_at_safepoint(_cmsGen->level(),
     ref_processor(), clear_all_soft_refs);
   #ifdef ASSERT
@@ -9345,15 +9342,3 @@ TraceCMSMemoryManagerStats::TraceCMSMemoryManagerStats(CMSCollector::CollectorSt
   }
 }
 
-// when bailing out of cms in concurrent mode failure
-TraceCMSMemoryManagerStats::TraceCMSMemoryManagerStats(GCCause::Cause cause): TraceMemoryManagerStats() {
-  initialize(true /* fullGC */ ,
-             cause /* cause of the GC */,
-             true /* recordGCBeginTime */,
-             true /* recordPreGCUsage */,
-             true /* recordPeakUsage */,
-             true /* recordPostGCusage */,
-             true /* recordAccumulatedGCTime */,
-             true /* recordGCEndTime */,
-             true /* countCollection */ );
-}
diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp
index 89b44e8..4406774 100644
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp
@@ -1900,7 +1900,6 @@ class TraceCMSMemoryManagerStats : public TraceMemoryManagerStats {
 
  public:
   TraceCMSMemoryManagerStats(CMSCollector::CollectorState phase, GCCause::Cause cause);
-  TraceCMSMemoryManagerStats(GCCause::Cause cause);
 };
 
 
diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp
index a299c32..63e5cb4 100644
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp
@@ -36,6 +36,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 class ConcurrentMarkSweepGeneration;
 class CMSCollector;
diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp
index 1c1b3ff..1870c1f 100644
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp
@@ -33,6 +33,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 #ifndef PRODUCT
 Mutex* FreeBlockDictionary::par_lock() const {
diff --git a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp
index 7e18ec6..73d578d 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,7 @@
 #include "gc_implementation/g1/collectionSetChooser.hpp"
 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
 #include "gc_implementation/g1/g1CollectorPolicy.hpp"
+#include "gc_implementation/g1/g1ErgoVerbose.hpp"
 #include "memory/space.inline.hpp"
 
 CSetChooserCache::CSetChooserCache() {
@@ -358,6 +359,9 @@ CollectionSetChooser::getNextMarkedRegion(double time_remaining,
   if (_cache.is_empty()) {
     assert(_curMarkedIndex == _numMarkedRegions,
            "if cache is empty, list should also be empty");
+    ergo_verbose0(ErgoCSetConstruction,
+                  "stop adding old regions to CSet",
+                  ergo_format_reason("cache is empty"));
     return NULL;
   }
 
@@ -368,10 +372,23 @@ CollectionSetChooser::getNextMarkedRegion(double time_remaining,
   if (g1p->adaptive_young_list_length()) {
     if (time_remaining - predicted_time < 0.0) {
       g1h->check_if_region_is_too_expensive(predicted_time);
+      ergo_verbose2(ErgoCSetConstruction,
+                    "stop adding old regions to CSet",
+                    ergo_format_reason("predicted old region time higher than remaining time")
+                    ergo_format_ms("predicted old region time")
+                    ergo_format_ms("remaining time"),
+                    predicted_time, time_remaining);
       return NULL;
     }
   } else {
-    if (predicted_time > 2.0 * avg_prediction) {
+    double threshold = 2.0 * avg_prediction;
+    if (predicted_time > threshold) {
+      ergo_verbose2(ErgoCSetConstruction,
+                    "stop adding old regions to CSet",
+                    ergo_format_reason("predicted old region time higher than threshold")
+                    ergo_format_ms("predicted old region time")
+                    ergo_format_ms("threshold"),
+                    predicted_time, threshold);
       return NULL;
     }
   }
diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp
index 2e87ca7..ee9a1b6 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp
@@ -91,7 +91,7 @@ void ConcurrentG1RefineThread::sample_young_list_rs_lengths() {
       }
     }
 
-    g1p->check_prediction_validity();
+    g1p->revise_young_list_target_length_if_necessary();
   }
 }
 
diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
index add683c..3679002 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
@@ -28,6 +28,7 @@
 #include "gc_implementation/g1/concurrentMarkThread.inline.hpp"
 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
 #include "gc_implementation/g1/g1CollectorPolicy.hpp"
+#include "gc_implementation/g1/g1ErgoVerbose.hpp"
 #include "gc_implementation/g1/g1OopClosures.inline.hpp"
 #include "gc_implementation/g1/g1RemSet.hpp"
 #include "gc_implementation/g1/heapRegionRemSet.hpp"
@@ -801,39 +802,6 @@ void ConcurrentMark::checkpointRootsInitialPre() {
   reset();
 }
 
-class CMMarkRootsClosure: public OopsInGenClosure {
-private:
-  ConcurrentMark*  _cm;
-  G1CollectedHeap* _g1h;
-  bool             _do_barrier;
-
-public:
-  CMMarkRootsClosure(ConcurrentMark* cm,
-                     G1CollectedHeap* g1h,
-                     bool do_barrier) : _cm(cm), _g1h(g1h),
-                                        _do_barrier(do_barrier) { }
-
-  virtual void do_oop(narrowOop* p) { do_oop_work(p); }
-  virtual void do_oop(      oop* p) { do_oop_work(p); }
-
-  template <class T> void do_oop_work(T* p) {
-    T heap_oop = oopDesc::load_heap_oop(p);
-    if (!oopDesc::is_null(heap_oop)) {
-      oop obj = oopDesc::decode_heap_oop_not_null(heap_oop);
-      assert(obj->is_oop() || obj->mark() == NULL,
-             "expected an oop, possibly with mark word displaced");
-      HeapWord* addr = (HeapWord*)obj;
-      if (_g1h->is_in_g1_reserved(addr)) {
-        _cm->grayRoot(obj);
-      }
-    }
-    if (_do_barrier) {
-      assert(!_g1h->is_in_g1_reserved(p),
-             "Should be called on external roots");
-      do_barrier(p);
-    }
-  }
-};
 
 void ConcurrentMark::checkpointRootsInitialPost() {
   G1CollectedHeap*   g1h = G1CollectedHeap::heap();
@@ -868,50 +836,6 @@ void ConcurrentMark::checkpointRootsInitialPost() {
   // during it. No need to call it here.
 }
 
-// Checkpoint the roots into this generation from outside
-// this generation. [Note this initial checkpoint need only
-// be approximate -- we'll do a catch up phase subsequently.]
-void ConcurrentMark::checkpointRootsInitial() {
-  assert(SafepointSynchronize::is_at_safepoint(), "world should be stopped");
-  G1CollectedHeap* g1h = G1CollectedHeap::heap();
-
-  double start = os::elapsedTime();
-
-  G1CollectorPolicy* g1p = G1CollectedHeap::heap()->g1_policy();
-  g1p->record_concurrent_mark_init_start();
-  checkpointRootsInitialPre();
-
-  // YSR: when concurrent precleaning is in place, we'll
-  // need to clear the cached card table here
-
-  ResourceMark rm;
-  HandleMark  hm;
-
-  g1h->ensure_parsability(false);
-  g1h->perm_gen()->save_marks();
-
-  CMMarkRootsClosure notOlder(this, g1h, false);
-  CMMarkRootsClosure older(this, g1h, true);
-
-  g1h->set_marking_started();
-  g1h->rem_set()->prepare_for_younger_refs_iterate(false);
-
-  g1h->process_strong_roots(true,    // activate StrongRootsScope
-                            false,   // fake perm gen collection
-                            SharedHeap::SO_AllClasses,
-                            &notOlder, // Regular roots
-                            NULL,     // do not visit active blobs
-                            &older    // Perm Gen Roots
-                            );
-  checkpointRootsInitialPost();
-
-  // Statistics.
-  double end = os::elapsedTime();
-  _init_times.add((end - start) * 1000.0);
-
-  g1p->record_concurrent_mark_init_end();
-}
-
 /*
  * Notice that in the next two methods, we actually leave the STS
  * during the barrier sync and join it immediately afterwards. If we
@@ -1804,18 +1728,21 @@ void ConcurrentMark::cleanup() {
 
   size_t known_garbage_bytes =
     g1_par_count_task.used_bytes() - g1_par_count_task.live_bytes();
-#if 0
-  gclog_or_tty->print_cr("used %1.2lf, live %1.2lf, garbage %1.2lf",
-                         (double) g1_par_count_task.used_bytes() / (double) (1024 * 1024),
-                         (double) g1_par_count_task.live_bytes() / (double) (1024 * 1024),
-                         (double) known_garbage_bytes / (double) (1024 * 1024));
-#endif // 0
   g1p->set_known_garbage_bytes(known_garbage_bytes);
 
   size_t start_used_bytes = g1h->used();
   _at_least_one_mark_complete = true;
   g1h->set_marking_complete();
 
+  ergo_verbose4(ErgoConcCycles,
+           "finish cleanup",
+           ergo_format_byte("occupancy")
+           ergo_format_byte("capacity")
+           ergo_format_byte_perc("known garbage"),
+           start_used_bytes, g1h->capacity(),
+           known_garbage_bytes,
+           ((double) known_garbage_bytes / (double) g1h->capacity()) * 100.0);
+
   double count_end = os::elapsedTime();
   double this_final_counting_time = (count_end - start);
   if (G1PrintParCleanupStats) {
diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp
index 1b4bb03..0aca642 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp
@@ -756,9 +756,6 @@ public:
   // Clear the next marking bitmap (will be called concurrently).
   void clearNextBitmap();
 
-  // main CMS steps and related support
-  void checkpointRootsInitial();
-
   // These two do the work that needs to be done before and after the
   // initial root checkpoint. Since this checkpoint can be done at two
   // different points (i.e. an explicit pause or piggy-backed on a
diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp
index 9fbf20f..85fb9a4 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp
@@ -50,19 +50,6 @@ ConcurrentMarkThread::ConcurrentMarkThread(ConcurrentMark* cm) :
   create_and_start();
 }
 
-class CMCheckpointRootsInitialClosure: public VoidClosure {
-
-  ConcurrentMark* _cm;
-public:
-
-  CMCheckpointRootsInitialClosure(ConcurrentMark* cm) :
-    _cm(cm) {}
-
-  void do_void(){
-    _cm->checkpointRootsInitial();
-  }
-};
-
 class CMCheckpointRootsFinalClosure: public VoidClosure {
 
   ConcurrentMark* _cm;
@@ -116,27 +103,6 @@ void ConcurrentMarkThread::run() {
         gclog_or_tty->print_cr("[GC concurrent-mark-start]");
       }
 
-      if (!g1_policy->in_young_gc_mode()) {
-        // this ensures the flag is not set if we bail out of the marking
-        // cycle; normally the flag is cleared immediately after cleanup
-        g1h->set_marking_complete();
-
-        if (g1_policy->adaptive_young_list_length()) {
-          double now = os::elapsedTime();
-          double init_prediction_ms = g1_policy->predict_init_time_ms();
-          jlong sleep_time_ms = mmu_tracker->when_ms(now, init_prediction_ms);
-          os::sleep(current_thread, sleep_time_ms, false);
-        }
-
-        // We don't have to skip here if we've been asked to restart, because
-        // in the worst case we just enqueue a new VM operation to start a
-        // marking.  Note that the init operation resets has_aborted()
-        CMCheckpointRootsInitialClosure init_cl(_cm);
-        strcpy(verbose_str, "GC initial-mark");
-        VM_CGC_Operation op(&init_cl, verbose_str);
-        VMThread::execute(&op);
-      }
-
       int iter = 0;
       do {
         iter++;
diff --git a/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp
index 2a7f513..915ee25 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp
@@ -39,6 +39,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 bool DirtyCardQueue::apply_closure(CardTableEntryClosure* cl,
                                    bool consume,
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.cpp
index 5d0d916..ca31817 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.cpp
@@ -129,6 +129,7 @@ HeapWord* G1AllocRegion::new_alloc_region_and_allocate(size_t word_size,
     // region in _alloc_region. This is the reason why an active region
     // can never be empty.
     _alloc_region = new_alloc_region;
+    _count += 1;
     trace("region allocation successful");
     return result;
   } else {
@@ -139,8 +140,8 @@ HeapWord* G1AllocRegion::new_alloc_region_and_allocate(size_t word_size,
 }
 
 void G1AllocRegion::fill_in_ext_msg(ar_ext_msg* msg, const char* message) {
-  msg->append("[%s] %s b: %s r: "PTR_FORMAT" u: "SIZE_FORMAT,
-              _name, message, BOOL_TO_STR(_bot_updates),
+  msg->append("[%s] %s c: "SIZE_FORMAT" b: %s r: "PTR_FORMAT" u: "SIZE_FORMAT,
+              _name, message, _count, BOOL_TO_STR(_bot_updates),
               _alloc_region, _used_bytes_before);
 }
 
@@ -148,16 +149,34 @@ void G1AllocRegion::init() {
   trace("initializing");
   assert(_alloc_region == NULL && _used_bytes_before == 0,
          ar_ext_msg(this, "pre-condition"));
-  assert(_dummy_region != NULL, "should have been set");
+  assert(_dummy_region != NULL, ar_ext_msg(this, "should have been set"));
   _alloc_region = _dummy_region;
+  _count = 0;
   trace("initialized");
 }
 
+void G1AllocRegion::set(HeapRegion* alloc_region) {
+  trace("setting");
+  // We explicitly check that the region is not empty to make sure we
+  // maintain the "the alloc region cannot be empty" invariant.
+  assert(alloc_region != NULL && !alloc_region->is_empty(),
+         ar_ext_msg(this, "pre-condition"));
+  assert(_alloc_region == _dummy_region &&
+         _used_bytes_before == 0 && _count == 0,
+         ar_ext_msg(this, "pre-condition"));
+
+  _used_bytes_before = alloc_region->used();
+  _alloc_region = alloc_region;
+  _count += 1;
+  trace("set");
+}
+
 HeapRegion* G1AllocRegion::release() {
   trace("releasing");
   HeapRegion* alloc_region = _alloc_region;
   retire(false /* fill_up */);
-  assert(_alloc_region == _dummy_region, "post-condition of retire()");
+  assert(_alloc_region == _dummy_region,
+         ar_ext_msg(this, "post-condition of retire()"));
   _alloc_region = NULL;
   trace("released");
   return (alloc_region == _dummy_region) ? NULL : alloc_region;
@@ -196,7 +215,8 @@ void G1AllocRegion::trace(const char* str, size_t word_size, HeapWord* result) {
       jio_snprintf(rest_buffer, buffer_length, "");
     }
 
-    tty->print_cr("[%s] %s : %s %s", _name, hr_buffer, str, rest_buffer);
+    tty->print_cr("[%s] "SIZE_FORMAT" %s : %s %s",
+                  _name, _count, hr_buffer, str, rest_buffer);
   }
 }
 #endif // G1_ALLOC_REGION_TRACING
@@ -204,5 +224,5 @@ void G1AllocRegion::trace(const char* str, size_t word_size, HeapWord* result) {
 G1AllocRegion::G1AllocRegion(const char* name,
                              bool bot_updates)
   : _name(name), _bot_updates(bot_updates),
-    _alloc_region(NULL), _used_bytes_before(0) { }
+    _alloc_region(NULL), _count(0), _used_bytes_before(0) { }
 
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp
index d329d1e..caf7ff9 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp
@@ -36,7 +36,7 @@ class ar_ext_msg;
 
 // A class that holds a region that is active in satisfying allocation
 // requests, potentially issued in parallel. When the active region is
-// full it will be retired it replaced with a new one. The
+// full it will be retired and replaced with a new one. The
 // implementation assumes that fast-path allocations will be lock-free
 // and a lock will need to be taken when the active region needs to be
 // replaced.
@@ -57,13 +57,22 @@ private:
   // correct use of init() and release()).
   HeapRegion* _alloc_region;
 
+  // It keeps track of the distinct number of regions that are used
+  // for allocation in the active interval of this object, i.e.,
+  // between a call to init() and a call to release(). The count
+  // mostly includes regions that are freshly allocated, as well as
+  // the region that is re-used using the set() method. This count can
+  // be used in any heuristics that might want to bound how many
+  // distinct regions this object can used during an active interval.
+  size_t _count;
+
   // When we set up a new active region we save its used bytes in this
   // field so that, when we retire it, we can calculate how much space
   // we allocated in it.
   size_t _used_bytes_before;
 
-  // Specifies whether the allocate calls will do BOT updates or not.
-  bool _bot_updates;
+  // When true, indicates that allocate calls should do BOT updates.
+  const bool _bot_updates;
 
   // Useful for debugging and tracing.
   const char* _name;
@@ -127,6 +136,8 @@ public:
     return (_alloc_region == _dummy_region) ? NULL : _alloc_region;
   }
 
+  size_t count() { return _count; }
+
   // The following two are the building blocks for the allocation method.
 
   // First-level allocation: Should be called without holding a
@@ -153,6 +164,12 @@ public:
   // Should be called before we start using this object.
   void init();
 
+  // This can be used to set the active region to a specific
+  // region. (Use Example: we try to retain the last old GC alloc
+  // region that we've used during a GC and we can use set() to
+  // re-instate it at the beginning of the next GC.)
+  void set(HeapRegion* alloc_region);
+
   // Should be called when we want to release the active region which
   // is returned after it's been retired.
   HeapRegion* release();
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
index 1029d6c..9d62845 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
@@ -31,6 +31,7 @@
 #include "gc_implementation/g1/g1AllocRegion.inline.hpp"
 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
 #include "gc_implementation/g1/g1CollectorPolicy.hpp"
+#include "gc_implementation/g1/g1ErgoVerbose.hpp"
 #include "gc_implementation/g1/g1MarkSweep.hpp"
 #include "gc_implementation/g1/g1OopClosures.inline.hpp"
 #include "gc_implementation/g1/g1RemSet.inline.hpp"
@@ -577,6 +578,11 @@ HeapRegion* G1CollectedHeap::new_region(size_t word_size, bool do_expand) {
     res = new_region_try_secondary_free_list();
   }
   if (res == NULL && do_expand) {
+    ergo_verbose1(ErgoHeapSizing,
+                  "attempt heap expansion",
+                  ergo_format_reason("region allocation request failed")
+                  ergo_format_byte("allocation request"),
+                  word_size * HeapWordSize);
     if (expand(word_size * HeapWordSize)) {
       // Even though the heap was expanded, it might not have reached
       // the desired size. So, we cannot assume that the allocation
@@ -587,26 +593,6 @@ HeapRegion* G1CollectedHeap::new_region(size_t word_size, bool do_expand) {
   return res;
 }
 
-HeapRegion* G1CollectedHeap::new_gc_alloc_region(int purpose,
-                                                 size_t word_size) {
-  HeapRegion* alloc_region = NULL;
-  if (_gc_alloc_region_counts[purpose] < g1_policy()->max_regions(purpose)) {
-    alloc_region = new_region(word_size, true /* do_expand */);
-    if (alloc_region != NULL) {
-      if (purpose == GCAllocForSurvived) {
-        _hr_printer.alloc(alloc_region, G1HRPrinter::Survivor);
-        alloc_region->set_survivor();
-      } else {
-        _hr_printer.alloc(alloc_region, G1HRPrinter::Old);
-      }
-      ++_gc_alloc_region_counts[purpose];
-    }
-  } else {
-    g1_policy()->note_alloc_region_limit_reached(purpose);
-  }
-  return alloc_region;
-}
-
 size_t G1CollectedHeap::humongous_obj_allocate_find_first(size_t num_regions,
                                                           size_t word_size) {
   assert(isHumongous(word_size), "word_size should be humongous");
@@ -810,6 +796,11 @@ HeapWord* G1CollectedHeap::humongous_obj_allocate(size_t word_size) {
       // room available.
       assert(num_regions > fs, "earlier allocation should have succeeded");
 
+      ergo_verbose1(ErgoHeapSizing,
+                    "attempt heap expansion",
+                    ergo_format_reason("humongous allocation request failed")
+                    ergo_format_byte("allocation request"),
+                    word_size * HeapWordSize);
       if (expand((num_regions - fs) * HeapRegion::GrainBytes)) {
         // Even though the heap was expanded, it might not have
         // reached the desired size. So, we cannot assume that the
@@ -926,6 +917,8 @@ HeapWord* G1CollectedHeap::attempt_allocation_slow(size_t word_size,
 
       if (GC_locker::is_active_and_needs_gc()) {
         if (g1_policy()->can_expand_young_list()) {
+          // No need for an ergo verbose message here,
+          // can_expand_young_list() does this when it returns true.
           result = _mutator_alloc_region.attempt_allocation_force(word_size,
                                                       false /* bot_updates */);
           if (result != NULL) {
@@ -1091,12 +1084,6 @@ HeapWord* G1CollectedHeap::attempt_allocation_at_safepoint(size_t word_size,
   ShouldNotReachHere();
 }
 
-void G1CollectedHeap::abandon_gc_alloc_regions() {
-  // first, make sure that the GC alloc region list is empty (it should!)
-  assert(_gc_alloc_region_list == NULL, "invariant");
-  release_gc_alloc_regions(true /* totally */);
-}
-
 class PostMCRemSetClearClosure: public HeapRegionClosure {
   ModRefBarrierSet* _mr_bs;
 public:
@@ -1253,6 +1240,7 @@ bool G1CollectedHeap::do_collection(bool explicit_gc,
                        /* option      */ VerifyOption_G1UsePrevMarking);
 
     }
+    pre_full_gc_dump();
 
     COMPILER2_PRESENT(DerivedPointerTable::clear());
 
@@ -1289,10 +1277,8 @@ bool G1CollectedHeap::do_collection(bool explicit_gc,
     g1_policy()->clear_incremental_cset();
     g1_policy()->stop_incremental_cset_building();
 
-    if (g1_policy()->in_young_gc_mode()) {
-      empty_young_list();
-      g1_policy()->set_full_young_gcs(true);
-    }
+    empty_young_list();
+    g1_policy()->set_full_young_gcs(true);
 
     // See the comment in G1CollectedHeap::ref_processing_init() about
     // how reference processing currently works in G1.
@@ -1413,13 +1399,11 @@ bool G1CollectedHeap::do_collection(bool explicit_gc,
            || (G1DeferredRSUpdate && (dirty_card_queue_set().completed_buffers_num() == 0)), "Should not be any");
   }
 
-  if (g1_policy()->in_young_gc_mode()) {
-    _young_list->reset_sampled_info();
-    // At this point there should be no regions in the
-    // entire heap tagged as young.
-    assert( check_young_list_empty(true /* check_heap */),
-            "young list should be empty at this point");
-  }
+  _young_list->reset_sampled_info();
+  // At this point there should be no regions in the
+  // entire heap tagged as young.
+  assert( check_young_list_empty(true /* check_heap */),
+    "young list should be empty at this point");
 
   // Update the number of full collections that have been completed.
   increment_full_collections_completed(false /* concurrent */);
@@ -1431,6 +1415,7 @@ bool G1CollectedHeap::do_collection(bool explicit_gc,
     Universe::print_heap_after_gc();
   }
   g1mm()->update_counters();
+  post_full_gc_dump();
 
   return true;
 }
@@ -1505,63 +1490,34 @@ resize_if_necessary_after_full_collection(size_t word_size) {
   // we'll try to make the capacity smaller than it, not greater).
   maximum_desired_capacity =  MAX2(maximum_desired_capacity, min_heap_size);
 
-  if (PrintGC && Verbose) {
-    const double free_percentage =
-      (double) free_after_gc / (double) capacity_after_gc;
-    gclog_or_tty->print_cr("Computing new size after full GC ");
-    gclog_or_tty->print_cr("  "
-                           "  minimum_free_percentage: %6.2f",
-                           minimum_free_percentage);
-    gclog_or_tty->print_cr("  "
-                           "  maximum_free_percentage: %6.2f",
-                           maximum_free_percentage);
-    gclog_or_tty->print_cr("  "
-                           "  capacity: %6.1fK"
-                           "  minimum_desired_capacity: %6.1fK"
-                           "  maximum_desired_capacity: %6.1fK",
-                           (double) capacity_after_gc / (double) K,
-                           (double) minimum_desired_capacity / (double) K,
-                           (double) maximum_desired_capacity / (double) K);
-    gclog_or_tty->print_cr("  "
-                           "  free_after_gc: %6.1fK"
-                           "  used_after_gc: %6.1fK",
-                           (double) free_after_gc / (double) K,
-                           (double) used_after_gc / (double) K);
-    gclog_or_tty->print_cr("  "
-                           "   free_percentage: %6.2f",
-                           free_percentage);
-  }
   if (capacity_after_gc < minimum_desired_capacity) {
     // Don't expand unless it's significant
     size_t expand_bytes = minimum_desired_capacity - capacity_after_gc;
-    if (expand(expand_bytes)) {
-      if (PrintGC && Verbose) {
-        gclog_or_tty->print_cr("  "
-                               "  expanding:"
-                               "  max_heap_size: %6.1fK"
-                               "  minimum_desired_capacity: %6.1fK"
-                               "  expand_bytes: %6.1fK",
-                               (double) max_heap_size / (double) K,
-                               (double) minimum_desired_capacity / (double) K,
-                               (double) expand_bytes / (double) K);
-      }
-    }
+    ergo_verbose4(ErgoHeapSizing,
+                  "attempt heap expansion",
+                  ergo_format_reason("capacity lower than "
+                                     "min desired capacity after Full GC")
+                  ergo_format_byte("capacity")
+                  ergo_format_byte("occupancy")
+                  ergo_format_byte_perc("min desired capacity"),
+                  capacity_after_gc, used_after_gc,
+                  minimum_desired_capacity, (double) MinHeapFreeRatio);
+    expand(expand_bytes);
 
     // No expansion, now see if we want to shrink
   } else if (capacity_after_gc > maximum_desired_capacity) {
     // Capacity too large, compute shrinking size
     size_t shrink_bytes = capacity_after_gc - maximum_desired_capacity;
+    ergo_verbose4(ErgoHeapSizing,
+                  "attempt heap shrinking",
+                  ergo_format_reason("capacity higher than "
+                                     "max desired capacity after Full GC")
+                  ergo_format_byte("capacity")
+                  ergo_format_byte("occupancy")
+                  ergo_format_byte_perc("max desired capacity"),
+                  capacity_after_gc, used_after_gc,
+                  maximum_desired_capacity, (double) MaxHeapFreeRatio);
     shrink(shrink_bytes);
-    if (PrintGC && Verbose) {
-      gclog_or_tty->print_cr("  "
-                             "  shrinking:"
-                             "  min_heap_size: %6.1fK"
-                             "  maximum_desired_capacity: %6.1fK"
-                             "  shrink_bytes: %6.1fK",
-                             (double) min_heap_size / (double) K,
-                             (double) maximum_desired_capacity / (double) K,
-                             (double) shrink_bytes / (double) K);
-    }
   }
 }
 
@@ -1647,6 +1603,11 @@ HeapWord* G1CollectedHeap::expand_and_allocate(size_t word_size) {
   verify_region_sets_optional();
 
   size_t expand_bytes = MAX2(word_size * HeapWordSize, MinHeapDeltaBytes);
+  ergo_verbose1(ErgoHeapSizing,
+                "attempt heap expansion",
+                ergo_format_reason("allocation request failed")
+                ergo_format_byte("allocation request"),
+                word_size * HeapWordSize);
   if (expand(expand_bytes)) {
     _hrs.verify_optional();
     verify_region_sets_optional();
@@ -1674,11 +1635,11 @@ bool G1CollectedHeap::expand(size_t expand_bytes) {
   size_t aligned_expand_bytes = ReservedSpace::page_align_size_up(expand_bytes);
   aligned_expand_bytes = align_size_up(aligned_expand_bytes,
                                        HeapRegion::GrainBytes);
-
-  if (Verbose && PrintGC) {
-    gclog_or_tty->print("Expanding garbage-first heap from %ldK by %ldK",
-                           old_mem_size/K, aligned_expand_bytes/K);
-  }
+  ergo_verbose2(ErgoHeapSizing,
+                "expand the heap",
+                ergo_format_byte("requested expansion amount")
+                ergo_format_byte("attempted expansion amount"),
+                expand_bytes, aligned_expand_bytes);
 
   // First commit the memory.
   HeapWord* old_end = (HeapWord*) _g1_storage.high();
@@ -1721,7 +1682,11 @@ bool G1CollectedHeap::expand(size_t expand_bytes) {
       }
       assert(curr == mr.end(), "post-condition");
     }
+    g1_policy()->record_new_heap_size(n_regions());
   } else {
+    ergo_verbose0(ErgoHeapSizing,
+                  "did not expand the heap",
+                  ergo_format_reason("heap expansion operation failed"));
     // The expansion of the virtual storage space was unsuccessful.
     // Let's see if it was because we ran out of swap.
     if (G1ExitOnExpansionFailure &&
@@ -1730,13 +1695,6 @@ bool G1CollectedHeap::expand(size_t expand_bytes) {
       vm_exit_out_of_memory(aligned_expand_bytes, "G1 heap expansion");
     }
   }
-
-  if (Verbose && PrintGC) {
-    size_t new_mem_size = _g1_storage.committed_size();
-    gclog_or_tty->print_cr("...%s, expanded to %ldK",
-                           (successful ? "Successful" : "Failed"),
-                           new_mem_size/K);
-  }
   return successful;
 }
 
@@ -1750,6 +1708,13 @@ void G1CollectedHeap::shrink_helper(size_t shrink_bytes) {
   MemRegion mr = _hrs.shrink_by(aligned_shrink_bytes, &num_regions_deleted);
   HeapWord* old_end = (HeapWord*) _g1_storage.high();
   assert(mr.end() == old_end, "post-condition");
+
+  ergo_verbose3(ErgoHeapSizing,
+                "shrink the heap",
+                ergo_format_byte("requested shrinking amount")
+                ergo_format_byte("aligned shrinking amount")
+                ergo_format_byte("attempted shrinking amount"),
+                shrink_bytes, aligned_shrink_bytes, mr.byte_size());
   if (mr.byte_size() > 0) {
     if (_hr_printer.is_active()) {
       HeapWord* curr = mr.end();
@@ -1768,20 +1733,22 @@ void G1CollectedHeap::shrink_helper(size_t shrink_bytes) {
     _expansion_regions += num_regions_deleted;
     update_committed_space(old_end, new_end);
     HeapRegionRemSet::shrink_heap(n_regions());
-
-    if (Verbose && PrintGC) {
-      size_t new_mem_size = _g1_storage.committed_size();
-      gclog_or_tty->print_cr("Shrinking garbage-first heap from %ldK by %ldK to %ldK",
-                             old_mem_size/K, aligned_shrink_bytes/K,
-                             new_mem_size/K);
-    }
+    g1_policy()->record_new_heap_size(n_regions());
+  } else {
+    ergo_verbose0(ErgoHeapSizing,
+                  "did not shrink the heap",
+                  ergo_format_reason("heap shrinking operation failed"));
   }
 }
 
 void G1CollectedHeap::shrink(size_t shrink_bytes) {
   verify_region_sets_optional();
 
-  release_gc_alloc_regions(true /* totally */);
+  // We should only reach here at the end of a Full GC which means we
+  // should not not be holding to any GC alloc regions. The method
+  // below will make sure of that and do any remaining clean up.
+  abandon_gc_alloc_regions();
+
   // Instead of tearing down / rebuilding the free lists here, we
   // could instead use the remove_all_pending() method on free_list to
   // remove only the ones that we need to remove.
@@ -1821,6 +1788,7 @@ G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* policy_) :
   _free_regions_coming(false),
   _young_list(new YoungList(this)),
   _gc_time_stamp(0),
+  _retained_old_gc_alloc_region(NULL),
   _surviving_young_words(NULL),
   _full_collections_completed(0),
   _in_cset_fast_test(NULL),
@@ -1852,20 +1820,6 @@ G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* policy_) :
     _task_queues->register_queue(i, q);
   }
 
-  for (int ap = 0; ap < GCAllocPurposeCount; ++ap) {
-    _gc_alloc_regions[ap]          = NULL;
-    _gc_alloc_region_counts[ap]    = 0;
-    _retained_gc_alloc_regions[ap] = NULL;
-    // by default, we do not retain a GC alloc region for each ap;
-    // we'll override this, when appropriate, below
-    _retain_gc_alloc_region[ap]    = false;
-  }
-
-  // We will try to remember the last half-full tenured region we
-  // allocated to at the end of a collection so that we can re-use it
-  // during the next collection.
-  _retain_gc_alloc_region[GCAllocForTenured]  = true;
-
   guarantee(_task_queues != NULL, "task_queues allocation failure.");
 }
 
@@ -1901,12 +1855,27 @@ jint G1CollectedHeap::initialize() {
   PermanentGenerationSpec* pgs = collector_policy()->permanent_generation();
   // Includes the perm-gen.
 
-  const size_t total_reserved = max_byte_size + pgs->max_size();
+  // When compressed oops are enabled, the preferred heap base
+  // is calculated by subtracting the requested size from the
+  // 32Gb boundary and using the result as the base address for
+  // heap reservation. If the requested size is not aligned to
+  // HeapRegion::GrainBytes (i.e. the alignment that is passed
+  // into the ReservedHeapSpace constructor) then the actual
+  // base of the reserved heap may end up differing from the
+  // address that was requested (i.e. the preferred heap base).
+  // If this happens then we could end up using a non-optimal
+  // compressed oops mode.
+
+  // Since max_byte_size is aligned to the size of a heap region (checked
+  // above), we also need to align the perm gen size as it might not be.
+  const size_t total_reserved = max_byte_size +
+                                align_size_up(pgs->max_size(), HeapRegion::GrainBytes);
+  Universe::check_alignment(total_reserved, HeapRegion::GrainBytes, "g1 heap and perm");
+
   char* addr = Universe::preferred_heap_base(total_reserved, Universe::UnscaledNarrowOop);
 
-  ReservedSpace heap_rs(max_byte_size + pgs->max_size(),
-                        HeapRegion::GrainBytes,
-                        UseLargePages, addr);
+  ReservedHeapSpace heap_rs(total_reserved, HeapRegion::GrainBytes,
+                            UseLargePages, addr);
 
   if (UseCompressedOops) {
     if (addr != NULL && !heap_rs.is_reserved()) {
@@ -1914,14 +1883,17 @@ jint G1CollectedHeap::initialize() {
       // region is taken already, for example, by 'java' launcher.
       // Try again to reserver heap higher.
       addr = Universe::preferred_heap_base(total_reserved, Universe::ZeroBasedNarrowOop);
-      ReservedSpace heap_rs0(total_reserved, HeapRegion::GrainBytes,
-                             UseLargePages, addr);
+
+      ReservedHeapSpace heap_rs0(total_reserved, HeapRegion::GrainBytes,
+                                 UseLargePages, addr);
+
       if (addr != NULL && !heap_rs0.is_reserved()) {
         // Failed to reserve at specified address again - give up.
         addr = Universe::preferred_heap_base(total_reserved, Universe::HeapBasedNarrowOop);
         assert(addr == NULL, "");
-        ReservedSpace heap_rs1(total_reserved, HeapRegion::GrainBytes,
-                               UseLargePages, addr);
+
+        ReservedHeapSpace heap_rs1(total_reserved, HeapRegion::GrainBytes,
+                                   UseLargePages, addr);
         heap_rs = heap_rs1;
       } else {
         heap_rs = heap_rs0;
@@ -2065,8 +2037,6 @@ jint G1CollectedHeap::initialize() {
   // counts and that mechanism.
   SpecializationStats::clear();
 
-  _gc_alloc_region_list = NULL;
-
   // Do later initialization work for concurrent refinement.
   _cg1r->init();
 
@@ -2187,27 +2157,6 @@ size_t G1CollectedHeap::recalculate_used() const {
   return blk.result();
 }
 
-#ifndef PRODUCT
-class SumUsedRegionsClosure: public HeapRegionClosure {
-  size_t _num;
-public:
-  SumUsedRegionsClosure() : _num(0) {}
-  bool doHeapRegion(HeapRegion* r) {
-    if (r->continuesHumongous() || r->used() > 0 || r->is_gc_alloc_region()) {
-      _num += 1;
-    }
-    return false;
-  }
-  size_t result() { return _num; }
-};
-
-size_t G1CollectedHeap::recalculate_used_regions() const {
-  SumUsedRegionsClosure blk;
-  heap_region_iterate(&blk);
-  return blk.result();
-}
-#endif // PRODUCT
-
 size_t G1CollectedHeap::unsafe_max_alloc() {
   if (free_regions() > 0) return HeapRegion::GrainBytes;
   // otherwise, is there space in the current allocation region?
@@ -3201,12 +3150,6 @@ G1CollectedHeap::doConcurrentMark() {
   }
 }
 
-void G1CollectedHeap::do_sync_mark() {
-  _cm->checkpointRootsInitial();
-  _cm->markFromRoots();
-  _cm->checkpointRootsFinal(false);
-}
-
 // <NEW PREDICTION>
 
 double G1CollectedHeap::predict_region_elapsed_time_ms(HeapRegion *hr,
@@ -3357,11 +3300,10 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) {
 
     char verbose_str[128];
     sprintf(verbose_str, "GC pause ");
-    if (g1_policy()->in_young_gc_mode()) {
-      if (g1_policy()->full_young_gcs())
-        strcat(verbose_str, "(young)");
-      else
-        strcat(verbose_str, "(partial)");
+    if (g1_policy()->full_young_gcs()) {
+      strcat(verbose_str, "(young)");
+    } else {
+      strcat(verbose_str, "(partial)");
     }
     if (g1_policy()->during_initial_mark_pause()) {
       strcat(verbose_str, " (initial-mark)");
@@ -3390,18 +3332,15 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) {
       append_secondary_free_list_if_not_empty_with_lock();
     }
 
-    increment_gc_time_stamp();
-
-    if (g1_policy()->in_young_gc_mode()) {
-      assert(check_young_list_well_formed(),
-             "young list should be well formed");
-    }
+    assert(check_young_list_well_formed(),
+      "young list should be well formed");
 
     { // Call to jvmpi::post_class_unload_events must occur outside of active GC
       IsGCActiveMark x;
 
       gc_prologue(false);
       increment_total_collections(false /* full gc */);
+      increment_gc_time_stamp();
 
       if (VerifyBeforeGC && total_collections() >= VerifyGCStartAt) {
         HandleMark hm;  // Discard invalid handles created during verification
@@ -3454,7 +3393,7 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) {
       if (g1_policy()->during_initial_mark_pause()) {
         concurrent_mark()->checkpointRootsInitialPre();
       }
-      save_marks();
+      perm_gen()->save_marks();
 
       // We must do this before any possible evacuation that should propagate
       // marks.
@@ -3516,8 +3455,8 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) {
 
       setup_surviving_young_words();
 
-      // Set up the gc allocation regions.
-      get_gc_alloc_regions();
+      // Initialize the GC alloc regions.
+      init_gc_alloc_regions();
 
       // Actually do the work...
       evacuate_collection_set();
@@ -3535,38 +3474,35 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) {
       // evacuation pause.
       clear_cset_fast_test();
 
-      if (g1_policy()->in_young_gc_mode()) {
-        _young_list->reset_sampled_info();
+      _young_list->reset_sampled_info();
 
-        // Don't check the whole heap at this point as the
-        // GC alloc regions from this pause have been tagged
-        // as survivors and moved on to the survivor list.
-        // Survivor regions will fail the !is_young() check.
-        assert(check_young_list_empty(false /* check_heap */),
-               "young list should be empty");
+      // Don't check the whole heap at this point as the
+      // GC alloc regions from this pause have been tagged
+      // as survivors and moved on to the survivor list.
+      // Survivor regions will fail the !is_young() check.
+      assert(check_young_list_empty(false /* check_heap */),
+        "young list should be empty");
 
 #if YOUNG_LIST_VERBOSE
-        gclog_or_tty->print_cr("Before recording survivors.\nYoung List:");
-        _young_list->print();
+      gclog_or_tty->print_cr("Before recording survivors.\nYoung List:");
+      _young_list->print();
 #endif // YOUNG_LIST_VERBOSE
 
-        g1_policy()->record_survivor_regions(_young_list->survivor_length(),
-                                          _young_list->first_survivor_region(),
-                                          _young_list->last_survivor_region());
+      g1_policy()->record_survivor_regions(_young_list->survivor_length(),
+        _young_list->first_survivor_region(),
+        _young_list->last_survivor_region());
 
-        _young_list->reset_auxilary_lists();
-      }
+      _young_list->reset_auxilary_lists();
 
       if (evacuation_failed()) {
         _summary_bytes_used = recalculate_used();
       } else {
         // The "used" of the the collection set have already been subtracted
         // when they were freed.  Add in the bytes evacuated.
-        _summary_bytes_used += g1_policy()->bytes_in_to_space();
+        _summary_bytes_used += g1_policy()->bytes_copied_during_gc();
       }
 
-      if (g1_policy()->in_young_gc_mode() &&
-          g1_policy()->during_initial_mark_pause()) {
+      if (g1_policy()->during_initial_mark_pause()) {
         concurrent_mark()->checkpointRootsInitialPost();
         set_marking_started();
         // CAUTION: after the doConcurrentMark() call below,
@@ -3589,6 +3525,19 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) {
 
       init_mutator_alloc_region();
 
+      {
+        size_t expand_bytes = g1_policy()->expansion_amount();
+        if (expand_bytes > 0) {
+          size_t bytes_before = capacity();
+          if (!expand(expand_bytes)) {
+            // We failed to expand the heap so let's verify that
+            // committed/uncommitted amount match the backing store
+            assert(capacity() == _g1_storage.committed_size(), "committed size mismatch");
+            assert(max_capacity() == _g1_storage.reserved_size(), "reserved size mismatch");
+          }
+        }
+      }
+
       double end_time_sec = os::elapsedTime();
       double pause_time_ms = (end_time_sec - start_time_sec) * MILLIUNITS;
       g1_policy()->record_pause_time_ms(pause_time_ms);
@@ -3596,6 +3545,29 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) {
 
       MemoryService::track_memory_usage();
 
+      // In prepare_for_verify() below we'll need to scan the deferred
+      // update buffers to bring the RSets up-to-date if
+      // G1HRRSFlushLogBuffersOnVerify has been set. While scanning
+      // the update buffers we'll probably need to scan cards on the
+      // regions we just allocated to (i.e., the GC alloc
+      // regions). However, during the last GC we called
+      // set_saved_mark() on all the GC alloc regions, so card
+      // scanning might skip the [saved_mark_word()...top()] area of
+      // those regions (i.e., the area we allocated objects into
+      // during the last GC). But it shouldn't. Given that
+      // saved_mark_word() is conditional on whether the GC time stamp
+      // on the region is current or not, by incrementing the GC time
+      // stamp here we invalidate all the GC time stamps on all the
+      // regions and saved_mark_word() will simply return top() for
+      // all the regions. This is a nicer way of ensuring this rather
+      // than iterating over the regions and fixing them. In fact, the
+      // GC time stamp increment here also ensures that
+      // saved_mark_word() will return top() between pauses, i.e.,
+      // during concurrent refinement. So we don't need the
+      // is_gc_active() check to decided which top to use when
+      // scanning cards (see CR 7039627).
+      increment_gc_time_stamp();
+
       if (VerifyAfterGC && total_collections() >= VerifyGCStartAt) {
         HandleMark hm;  // Discard invalid handles created during verification
         gclog_or_tty->print(" VerifyAfterGC:");
@@ -3611,6 +3583,8 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) {
         size_t expand_bytes = g1_policy()->expansion_amount();
         if (expand_bytes > 0) {
           size_t bytes_before = capacity();
+          // No need for an ergo verbose message here,
+          // expansion_amount() does this when it returns a value > 0.
           if (!expand(expand_bytes)) {
             // We failed to expand the heap so let's verify that
             // committed/uncommitted amount match the backing store
@@ -3695,251 +3669,49 @@ void G1CollectedHeap::release_mutator_alloc_region() {
   assert(_mutator_alloc_region.get() == NULL, "post-condition");
 }
 
-void G1CollectedHeap::set_gc_alloc_region(int purpose, HeapRegion* r) {
-  assert(purpose >= 0 && purpose < GCAllocPurposeCount, "invalid purpose");
-  // make sure we don't call set_gc_alloc_region() multiple times on
-  // the same region
-  assert(r == NULL || !r->is_gc_alloc_region(),
-         "shouldn't already be a GC alloc region");
-  assert(r == NULL || !r->isHumongous(),
-         "humongous regions shouldn't be used as GC alloc regions");
-
-  HeapWord* original_top = NULL;
-  if (r != NULL)
-    original_top = r->top();
-
-  // We will want to record the used space in r as being there before gc.
-  // One we install it as a GC alloc region it's eligible for allocation.
-  // So record it now and use it later.
-  size_t r_used = 0;
-  if (r != NULL) {
-    r_used = r->used();
-
-    if (G1CollectedHeap::use_parallel_gc_threads()) {
-      // need to take the lock to guard against two threads calling
-      // get_gc_alloc_region concurrently (very unlikely but...)
-      MutexLockerEx x(ParGCRareEvent_lock, Mutex::_no_safepoint_check_flag);
-      r->save_marks();
-    }
-  }
-  HeapRegion* old_alloc_region = _gc_alloc_regions[purpose];
-  _gc_alloc_regions[purpose] = r;
-  if (old_alloc_region != NULL) {
-    // Replace aliases too.
-    for (int ap = 0; ap < GCAllocPurposeCount; ++ap) {
-      if (_gc_alloc_regions[ap] == old_alloc_region) {
-        _gc_alloc_regions[ap] = r;
-      }
-    }
-  }
-  if (r != NULL) {
-    push_gc_alloc_region(r);
-    if (mark_in_progress() && original_top != r->next_top_at_mark_start()) {
-      // We are using a region as a GC alloc region after it has been used
-      // as a mutator allocation region during the current marking cycle.
-      // The mutator-allocated objects are currently implicitly marked, but
-      // when we move hr->next_top_at_mark_start() forward at the the end
-      // of the GC pause, they won't be.  We therefore mark all objects in
-      // the "gap".  We do this object-by-object, since marking densely
-      // does not currently work right with marking bitmap iteration.  This
-      // means we rely on TLAB filling at the start of pauses, and no
-      // "resuscitation" of filled TLAB's.  If we want to do this, we need
-      // to fix the marking bitmap iteration.
-      HeapWord* curhw = r->next_top_at_mark_start();
-      HeapWord* t = original_top;
-
-      while (curhw < t) {
-        oop cur = (oop)curhw;
-        // We'll assume parallel for generality.  This is rare code.
-        concurrent_mark()->markAndGrayObjectIfNecessary(cur); // can't we just mark them?
-        curhw = curhw + cur->size();
-      }
-      assert(curhw == t, "Should have parsed correctly.");
-    }
-    if (G1PolicyVerbose > 1) {
-      gclog_or_tty->print("New alloc region ["PTR_FORMAT", "PTR_FORMAT", " PTR_FORMAT") "
-                          "for survivors:", r->bottom(), original_top, r->end());
-      r->print();
-    }
-    g1_policy()->record_before_bytes(r_used);
-  }
-}
-
-void G1CollectedHeap::push_gc_alloc_region(HeapRegion* hr) {
-  assert(Thread::current()->is_VM_thread() ||
-         FreeList_lock->owned_by_self(), "Precondition");
-  assert(!hr->is_gc_alloc_region() && !hr->in_collection_set(),
-         "Precondition.");
-  hr->set_is_gc_alloc_region(true);
-  hr->set_next_gc_alloc_region(_gc_alloc_region_list);
-  _gc_alloc_region_list = hr;
-}
-
-#ifdef G1_DEBUG
-class FindGCAllocRegion: public HeapRegionClosure {
-public:
-  bool doHeapRegion(HeapRegion* r) {
-    if (r->is_gc_alloc_region()) {
-      gclog_or_tty->print_cr("Region "HR_FORMAT" is still a GC alloc region",
-                             HR_FORMAT_PARAMS(r));
-    }
-    return false;
-  }
-};
-#endif // G1_DEBUG
-
-void G1CollectedHeap::forget_alloc_region_list() {
+void G1CollectedHeap::init_gc_alloc_regions() {
   assert_at_safepoint(true /* should_be_vm_thread */);
-  while (_gc_alloc_region_list != NULL) {
-    HeapRegion* r = _gc_alloc_region_list;
-    assert(r->is_gc_alloc_region(), "Invariant.");
-    // We need HeapRegion::oops_on_card_seq_iterate_careful() to work on
-    // newly allocated data in order to be able to apply deferred updates
-    // before the GC is done for verification purposes (i.e to allow
-    // G1HRRSFlushLogBuffersOnVerify). It's safe thing to do after the
-    // collection.
-    r->ContiguousSpace::set_saved_mark();
-    _gc_alloc_region_list = r->next_gc_alloc_region();
-    r->set_next_gc_alloc_region(NULL);
-    r->set_is_gc_alloc_region(false);
-    if (r->is_survivor()) {
-      if (r->is_empty()) {
-        r->set_not_young();
-      } else {
-        _young_list->add_survivor_region(r);
-      }
-    }
-  }
-#ifdef G1_DEBUG
-  FindGCAllocRegion fa;
-  heap_region_iterate(&fa);
-#endif // G1_DEBUG
-}
-
 
-bool G1CollectedHeap::check_gc_alloc_regions() {
-  // TODO: allocation regions check
-  return true;
+  _survivor_gc_alloc_region.init();
+  _old_gc_alloc_region.init();
+  HeapRegion* retained_region = _retained_old_gc_alloc_region;
+  _retained_old_gc_alloc_region = NULL;
+
+  // We will discard the current GC alloc region if:
+  // a) it's in the collection set (it can happen!),
+  // b) it's already full (no point in using it),
+  // c) it's empty (this means that it was emptied during
+  // a cleanup and it should be on the free list now), or
+  // d) it's humongous (this means that it was emptied
+  // during a cleanup and was added to the free list, but
+  // has been subseqently used to allocate a humongous
+  // object that may be less than the region size).
+  if (retained_region != NULL &&
+      !retained_region->in_collection_set() &&
+      !(retained_region->top() == retained_region->end()) &&
+      !retained_region->is_empty() &&
+      !retained_region->isHumongous()) {
+    retained_region->set_saved_mark();
+    _old_gc_alloc_region.set(retained_region);
+    _hr_printer.reuse(retained_region);
+  }
+}
+
+void G1CollectedHeap::release_gc_alloc_regions() {
+  _survivor_gc_alloc_region.release();
+  // If we have an old GC alloc region to release, we'll save it in
+  // _retained_old_gc_alloc_region. If we don't
+  // _retained_old_gc_alloc_region will become NULL. This is what we
+  // want either way so no reason to check explicitly for either
+  // condition.
+  _retained_old_gc_alloc_region = _old_gc_alloc_region.release();
 }
 
-void G1CollectedHeap::get_gc_alloc_regions() {
-  // First, let's check that the GC alloc region list is empty (it should)
-  assert(_gc_alloc_region_list == NULL, "invariant");
-
-  for (int ap = 0; ap < GCAllocPurposeCount; ++ap) {
-    assert(_gc_alloc_regions[ap] == NULL, "invariant");
-    assert(_gc_alloc_region_counts[ap] == 0, "invariant");
-
-    // Create new GC alloc regions.
-    HeapRegion* alloc_region = _retained_gc_alloc_regions[ap];
-    _retained_gc_alloc_regions[ap] = NULL;
-
-    if (alloc_region != NULL) {
-      assert(_retain_gc_alloc_region[ap], "only way to retain a GC region");
-
-      // let's make sure that the GC alloc region is not tagged as such
-      // outside a GC operation
-      assert(!alloc_region->is_gc_alloc_region(), "sanity");
-
-      if (alloc_region->in_collection_set() ||
-          alloc_region->top() == alloc_region->end() ||
-          alloc_region->top() == alloc_region->bottom() ||
-          alloc_region->isHumongous()) {
-        // we will discard the current GC alloc region if
-        // * it's in the collection set (it can happen!),
-        // * it's already full (no point in using it),
-        // * it's empty (this means that it was emptied during
-        // a cleanup and it should be on the free list now), or
-        // * it's humongous (this means that it was emptied
-        // during a cleanup and was added to the free list, but
-        // has been subseqently used to allocate a humongous
-        // object that may be less than the region size).
-
-        alloc_region = NULL;
-      }
-    }
-
-    if (alloc_region == NULL) {
-      // we will get a new GC alloc region
-      alloc_region = new_gc_alloc_region(ap, HeapRegion::GrainWords);
-    } else {
-      // the region was retained from the last collection
-      ++_gc_alloc_region_counts[ap];
-
-      _hr_printer.reuse(alloc_region);
-    }
-
-    if (alloc_region != NULL) {
-      assert(_gc_alloc_regions[ap] == NULL, "pre-condition");
-      set_gc_alloc_region(ap, alloc_region);
-    }
-
-    assert(_gc_alloc_regions[ap] == NULL ||
-           _gc_alloc_regions[ap]->is_gc_alloc_region(),
-           "the GC alloc region should be tagged as such");
-    assert(_gc_alloc_regions[ap] == NULL ||
-           _gc_alloc_regions[ap] == _gc_alloc_region_list,
-           "the GC alloc region should be the same as the GC alloc list head");
-  }
-  // Set alternative regions for allocation purposes that have reached
-  // their limit.
-  for (int ap = 0; ap < GCAllocPurposeCount; ++ap) {
-    GCAllocPurpose alt_purpose = g1_policy()->alternative_purpose(ap);
-    if (_gc_alloc_regions[ap] == NULL && alt_purpose != ap) {
-      _gc_alloc_regions[ap] = _gc_alloc_regions[alt_purpose];
-    }
-  }
-  assert(check_gc_alloc_regions(), "alloc regions messed up");
-}
-
-void G1CollectedHeap::release_gc_alloc_regions(bool totally) {
-  // We keep a separate list of all regions that have been alloc regions in
-  // the current collection pause. Forget that now. This method will
-  // untag the GC alloc regions and tear down the GC alloc region
-  // list. It's desirable that no regions are tagged as GC alloc
-  // outside GCs.
-
-  forget_alloc_region_list();
-
-  // The current alloc regions contain objs that have survived
-  // collection. Make them no longer GC alloc regions.
-  for (int ap = 0; ap < GCAllocPurposeCount; ++ap) {
-    HeapRegion* r = _gc_alloc_regions[ap];
-    _retained_gc_alloc_regions[ap] = NULL;
-    _gc_alloc_region_counts[ap] = 0;
-
-    if (r != NULL) {
-      // we retain nothing on _gc_alloc_regions between GCs
-      set_gc_alloc_region(ap, NULL);
-
-      if (r->is_empty()) {
-        // We didn't actually allocate anything in it; let's just put
-        // it back on the free list.
-        _free_list.add_as_head(r);
-      } else if (_retain_gc_alloc_region[ap] && !totally) {
-        // retain it so that we can use it at the beginning of the next GC
-        _retained_gc_alloc_regions[ap] = r;
-      }
-    }
-  }
-}
-
-#ifndef PRODUCT
-// Useful for debugging
-
-void G1CollectedHeap::print_gc_alloc_regions() {
-  gclog_or_tty->print_cr("GC alloc regions");
-  for (int ap = 0; ap < GCAllocPurposeCount; ++ap) {
-    HeapRegion* r = _gc_alloc_regions[ap];
-    if (r == NULL) {
-      gclog_or_tty->print_cr("  %2d : "PTR_FORMAT, ap, NULL);
-    } else {
-      gclog_or_tty->print_cr("  %2d : "PTR_FORMAT" "SIZE_FORMAT,
-                             ap, r->bottom(), r->used());
-    }
-  }
+void G1CollectedHeap::abandon_gc_alloc_regions() {
+  assert(_survivor_gc_alloc_region.get() == NULL, "pre-condition");
+  assert(_old_gc_alloc_region.get() == NULL, "pre-condition");
+  _retained_old_gc_alloc_region = NULL;
 }
-#endif // PRODUCT
 
 void G1CollectedHeap::init_for_evac_failure(OopsInHeapRegionClosure* cl) {
   _drain_in_progress = false;
@@ -3956,8 +3728,6 @@ void G1CollectedHeap::finalize_for_evac_failure() {
   _evac_failure_scan_stack = NULL;
 }
 
-
-
 // *** Sequential G1 Evacuation
 
 class G1IsAliveClosure: public BoolObjectClosure {
@@ -3968,13 +3738,6 @@ public:
   bool do_object_b(oop p) {
     // It is reachable if it is outside the collection set, or is inside
     // and forwarded.
-
-#ifdef G1_DEBUG
-    gclog_or_tty->print_cr("is alive "PTR_FORMAT" in CS %d forwarded %d overall %d",
-                           (void*) p, _g1->obj_in_cs(p), p->is_forwarded(),
-                           !_g1->obj_in_cs(p) || p->is_forwarded());
-#endif // G1_DEBUG
-
     return !_g1->obj_in_cs(p) || p->is_forwarded();
   }
 };
@@ -3986,20 +3749,9 @@ public:
   void do_oop(narrowOop* p) { guarantee(false, "Not needed"); }
   void do_oop(      oop* p) {
     oop obj = *p;
-#ifdef G1_DEBUG
-    if (PrintGC && Verbose) {
-      gclog_or_tty->print_cr("keep alive *"PTR_FORMAT" = "PTR_FORMAT" "PTR_FORMAT,
-                             p, (void*) obj, (void*) *p);
-    }
-#endif // G1_DEBUG
-
     if (_g1->obj_in_cs(obj)) {
       assert( obj->is_forwarded(), "invariant" );
       *p = obj->forwardee();
-#ifdef G1_DEBUG
-      gclog_or_tty->print_cr("     in CSet: moved "PTR_FORMAT" -> "PTR_FORMAT,
-                             (void*) obj, (void*) *p);
-#endif // G1_DEBUG
     }
   }
 };
@@ -4269,136 +4021,32 @@ void G1CollectedHeap::preserve_mark_if_necessary(oop obj, markOop m) {
   }
 }
 
-// *** Parallel G1 Evacuation
-
 HeapWord* G1CollectedHeap::par_allocate_during_gc(GCAllocPurpose purpose,
                                                   size_t word_size) {
-  assert(!isHumongous(word_size),
-         err_msg("we should not be seeing humongous allocation requests "
-                 "during GC, word_size = "SIZE_FORMAT, word_size));
-
-  HeapRegion* alloc_region = _gc_alloc_regions[purpose];
-  // let the caller handle alloc failure
-  if (alloc_region == NULL) return NULL;
-
-  HeapWord* block = alloc_region->par_allocate(word_size);
-  if (block == NULL) {
-    block = allocate_during_gc_slow(purpose, alloc_region, true, word_size);
-  }
-  return block;
-}
-
-void G1CollectedHeap::retire_alloc_region(HeapRegion* alloc_region,
-                                            bool par) {
-  // Another thread might have obtained alloc_region for the given
-  // purpose, and might be attempting to allocate in it, and might
-  // succeed.  Therefore, we can't do the "finalization" stuff on the
-  // region below until we're sure the last allocation has happened.
-  // We ensure this by allocating the remaining space with a garbage
-  // object.
-  if (par) par_allocate_remaining_space(alloc_region);
-  // Now we can do the post-GC stuff on the region.
-  alloc_region->note_end_of_copying();
-  g1_policy()->record_after_bytes(alloc_region->used());
-  _hr_printer.retire(alloc_region);
-}
-
-HeapWord*
-G1CollectedHeap::allocate_during_gc_slow(GCAllocPurpose purpose,
-                                         HeapRegion*    alloc_region,
-                                         bool           par,
-                                         size_t         word_size) {
-  assert(!isHumongous(word_size),
-         err_msg("we should not be seeing humongous allocation requests "
-                 "during GC, word_size = "SIZE_FORMAT, word_size));
-
-  // We need to make sure we serialize calls to this method. Given
-  // that the FreeList_lock guards accesses to the free_list anyway,
-  // and we need to potentially remove a region from it, we'll use it
-  // to protect the whole call.
-  MutexLockerEx x(FreeList_lock, Mutex::_no_safepoint_check_flag);
-
-  HeapWord* block = NULL;
-  // In the parallel case, a previous thread to obtain the lock may have
-  // already assigned a new gc_alloc_region.
-  if (alloc_region != _gc_alloc_regions[purpose]) {
-    assert(par, "But should only happen in parallel case.");
-    alloc_region = _gc_alloc_regions[purpose];
-    if (alloc_region == NULL) return NULL;
-    block = alloc_region->par_allocate(word_size);
-    if (block != NULL) return block;
-    // Otherwise, continue; this new region is empty, too.
-  }
-  assert(alloc_region != NULL, "We better have an allocation region");
-  retire_alloc_region(alloc_region, par);
-
-  if (_gc_alloc_region_counts[purpose] >= g1_policy()->max_regions(purpose)) {
-    // Cannot allocate more regions for the given purpose.
-    GCAllocPurpose alt_purpose = g1_policy()->alternative_purpose(purpose);
-    // Is there an alternative?
-    if (purpose != alt_purpose) {
-      HeapRegion* alt_region = _gc_alloc_regions[alt_purpose];
-      // Has not the alternative region been aliased?
-      if (alloc_region != alt_region && alt_region != NULL) {
-        // Try to allocate in the alternative region.
-        if (par) {
-          block = alt_region->par_allocate(word_size);
-        } else {
-          block = alt_region->allocate(word_size);
-        }
-        // Make an alias.
-        _gc_alloc_regions[purpose] = _gc_alloc_regions[alt_purpose];
-        if (block != NULL) {
-          return block;
-        }
-        retire_alloc_region(alt_region, par);
-      }
-      // Both the allocation region and the alternative one are full
-      // and aliased, replace them with a new allocation region.
-      purpose = alt_purpose;
+  if (purpose == GCAllocForSurvived) {
+    HeapWord* result = survivor_attempt_allocation(word_size);
+    if (result != NULL) {
+      return result;
     } else {
-      set_gc_alloc_region(purpose, NULL);
-      return NULL;
+      // Let's try to allocate in the old gen in case we can fit the
+      // object there.
+      return old_attempt_allocation(word_size);
     }
-  }
-
-  // Now allocate a new region for allocation.
-  alloc_region = new_gc_alloc_region(purpose, word_size);
-
-  // let the caller handle alloc failure
-  if (alloc_region != NULL) {
-
-    assert(check_gc_alloc_regions(), "alloc regions messed up");
-    assert(alloc_region->saved_mark_at_top(),
-           "Mark should have been saved already.");
-    // This must be done last: once it's installed, other regions may
-    // allocate in it (without holding the lock.)
-    set_gc_alloc_region(purpose, alloc_region);
-
-    if (par) {
-      block = alloc_region->par_allocate(word_size);
+  } else {
+    assert(purpose ==  GCAllocForTenured, "sanity");
+    HeapWord* result = old_attempt_allocation(word_size);
+    if (result != NULL) {
+      return result;
     } else {
-      block = alloc_region->allocate(word_size);
+      // Let's try to allocate in the survivors in case we can fit the
+      // object there.
+      return survivor_attempt_allocation(word_size);
     }
-    // Caller handles alloc failure.
-  } else {
-    // This sets other apis using the same old alloc region to NULL, also.
-    set_gc_alloc_region(purpose, NULL);
   }
-  return block;  // May be NULL.
-}
 
-void G1CollectedHeap::par_allocate_remaining_space(HeapRegion* r) {
-  HeapWord* block = NULL;
-  size_t free_words;
-  do {
-    free_words = r->free()/HeapWordSize;
-    // If there's too little space, no one can allocate, so we're done.
-    if (free_words < CollectedHeap::min_fill_size()) return;
-    // Otherwise, try to claim it.
-    block = r->par_allocate(free_words);
-  } while (block == NULL);
-  fill_with_object(block, free_words);
+  ShouldNotReachHere();
+  // Trying to keep some compilers happy.
+  return NULL;
 }
 
 #ifndef PRODUCT
@@ -4409,6 +4057,23 @@ bool GCLabBitMapClosure::do_bit(size_t offset) {
 }
 #endif // PRODUCT
 
+G1ParGCAllocBuffer::G1ParGCAllocBuffer(size_t gclab_word_size) :
+  ParGCAllocBuffer(gclab_word_size),
+  _should_mark_objects(false),
+  _bitmap(G1CollectedHeap::heap()->reserved_region().start(), gclab_word_size),
+  _retired(false)
+{
+  //_should_mark_objects is set to true when G1ParCopyHelper needs to
+  // mark the forwarded location of an evacuated object.
+  // We set _should_mark_objects to true if marking is active, i.e. when we
+  // need to propagate a mark, or during an initial mark pause, i.e. when we
+  // need to mark objects immediately reachable by the roots.
+  if (G1CollectedHeap::heap()->mark_in_progress() ||
+      G1CollectedHeap::heap()->g1_policy()->during_initial_mark_pause()) {
+    _should_mark_objects = true;
+  }
+}
+
 G1ParScanThreadState::G1ParScanThreadState(G1CollectedHeap* g1h, int queue_num)
   : _g1h(g1h),
     _refs(g1h->task_queue(queue_num)),
@@ -4524,12 +4189,14 @@ void G1ParScanThreadState::trim_queue() {
 
 G1ParClosureSuper::G1ParClosureSuper(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state) :
   _g1(g1), _g1_rem(_g1->g1_rem_set()), _cm(_g1->concurrent_mark()),
-  _par_scan_state(par_scan_state) { }
+  _par_scan_state(par_scan_state),
+  _during_initial_mark(_g1->g1_policy()->during_initial_mark_pause()),
+  _mark_in_progress(_g1->mark_in_progress()) { }
 
-template <class T> void G1ParCopyHelper::mark_forwardee(T* p) {
-  // This is called _after_ do_oop_work has been called, hence after
-  // the object has been relocated to its new location and *p points
-  // to its new location.
+template <class T> void G1ParCopyHelper::mark_object(T* p) {
+  // This is called from do_oop_work for objects that are not
+  // in the collection set. Objects in the collection set
+  // are marked after they have been evacuated.
 
   T heap_oop = oopDesc::load_heap_oop(p);
   if (!oopDesc::is_null(heap_oop)) {
@@ -4541,7 +4208,7 @@ template <class T> void G1ParCopyHelper::mark_forwardee(T* p) {
   }
 }
 
-oop G1ParCopyHelper::copy_to_survivor_space(oop old) {
+oop G1ParCopyHelper::copy_to_survivor_space(oop old, bool should_mark_copy) {
   size_t    word_sz = old->size();
   HeapRegion* from_region = _g1->heap_region_containing_raw(old);
   // +1 to make the -1 indexes valid...
@@ -4597,8 +4264,8 @@ oop G1ParCopyHelper::copy_to_survivor_space(oop old) {
       obj->set_mark(m);
     }
 
-    // preserve "next" mark bit
-    if (_g1->mark_in_progress() && !_g1->is_obj_ill(old)) {
+    // Mark the evacuated object or propagate "next" mark bit
+    if (should_mark_copy) {
       if (!use_local_bitmaps ||
           !_par_scan_state->alloc_buffer(alloc_purpose)->mark(obj_ptr)) {
         // if we couldn't mark it on the local bitmap (this happens when
@@ -4606,11 +4273,12 @@ oop G1ParCopyHelper::copy_to_survivor_space(oop old) {
         // the bullet and do the standard parallel mark
         _cm->markAndGrayObjectIfNecessary(obj);
       }
-#if 1
+
       if (_g1->isMarkedNext(old)) {
+        // Unmark the object's old location so that marking
+        // doesn't think the old object is alive.
         _cm->nextMarkBitMap()->parClear((HeapWord*)old);
       }
-#endif
     }
 
     size_t* surv_young_words = _par_scan_state->surviving_young_words();
@@ -4633,26 +4301,62 @@ oop G1ParCopyHelper::copy_to_survivor_space(oop old) {
   return obj;
 }
 
-template <bool do_gen_barrier, G1Barrier barrier, bool do_mark_forwardee>
+template <bool do_gen_barrier, G1Barrier barrier, bool do_mark_object>
 template <class T>
-void G1ParCopyClosure <do_gen_barrier, barrier, do_mark_forwardee>
+void G1ParCopyClosure<do_gen_barrier, barrier, do_mark_object>
 ::do_oop_work(T* p) {
   oop obj = oopDesc::load_decode_heap_oop(p);
   assert(barrier != G1BarrierRS || obj != NULL,
          "Precondition: G1BarrierRS implies obj is nonNull");
 
+  // Marking:
+  // If the object is in the collection set, then the thread
+  // that copies the object should mark, or propagate the
+  // mark to, the evacuated object.
+  // If the object is not in the collection set then we
+  // should call the mark_object() method depending on the
+  // value of the template parameter do_mark_object (which will
+  // be true for root scanning closures during an initial mark
+  // pause).
+  // The mark_object() method first checks whether the object
+  // is marked and, if not, attempts to mark the object.
+
   // here the null check is implicit in the cset_fast_test() test
   if (_g1->in_cset_fast_test(obj)) {
     if (obj->is_forwarded()) {
       oopDesc::encode_store_heap_oop(p, obj->forwardee());
+      // If we are a root scanning closure during an initial
+      // mark pause (i.e. do_mark_object will be true) then
+      // we also need to handle marking of roots in the
+      // event of an evacuation failure. In the event of an
+      // evacuation failure, the object is forwarded to itself
+      // and not copied so let's mark it here.
+      if (do_mark_object && obj->forwardee() == obj) {
+        mark_object(p);
+      }
     } else {
-      oop copy_oop = copy_to_survivor_space(obj);
+      // We need to mark the copied object if we're a root scanning
+      // closure during an initial mark pause (i.e. do_mark_object
+      // will be true), or the object is already marked and we need
+      // to propagate the mark to the evacuated copy.
+      bool should_mark_copy = do_mark_object ||
+                              _during_initial_mark ||
+                              (_mark_in_progress && !_g1->is_obj_ill(obj));
+
+      oop copy_oop = copy_to_survivor_space(obj, should_mark_copy);
       oopDesc::encode_store_heap_oop(p, copy_oop);
     }
     // When scanning the RS, we only care about objs in CS.
     if (barrier == G1BarrierRS) {
       _par_scan_state->update_rs(_from, p, _par_scan_state->queue_num());
     }
+  } else {
+    // The object is not in collection set. If we're a root scanning
+    // closure during an initial mark pause (i.e. do_mark_object will
+    // be true) then attempt to mark the object.
+    if (do_mark_object) {
+      mark_object(p);
+    }
   }
 
   if (barrier == G1BarrierEvac && obj != NULL) {
@@ -4834,6 +4538,7 @@ public:
                                   scan_perm_cl,
                                   i);
     pss.end_strong_roots();
+
     {
       double start = os::elapsedTime();
       G1ParEvacuateFollowersClosure evac(_g1h, &pss, _queues, &_terminator);
@@ -4890,17 +4595,28 @@ g1_process_strong_roots(bool collecting_perm_gen,
                        &eager_scan_code_roots,
                        &buf_scan_perm);
 
-  // Finish up any enqueued closure apps.
+  // Now the ref_processor roots.
+  if (!_process_strong_tasks->is_task_claimed(G1H_PS_refProcessor_oops_do)) {
+    // We need to treat the discovered reference lists as roots and
+    // keep entries (which are added by the marking threads) on them
+    // live until they can be processed at the end of marking.
+    ref_processor()->weak_oops_do(&buf_scan_non_heap_roots);
+  }
+
+  // Finish up any enqueued closure apps (attributed as object copy time).
   buf_scan_non_heap_roots.done();
   buf_scan_perm.done();
+
   double ext_roots_end = os::elapsedTime();
+
   g1_policy()->reset_obj_copy_time(worker_i);
-  double obj_copy_time_sec =
-    buf_scan_non_heap_roots.closure_app_seconds() +
-    buf_scan_perm.closure_app_seconds();
+  double obj_copy_time_sec = buf_scan_perm.closure_app_seconds() +
+                                buf_scan_non_heap_roots.closure_app_seconds();
   g1_policy()->record_obj_copy_time(worker_i, obj_copy_time_sec * 1000.0);
+
   double ext_root_time_ms =
     ((ext_roots_end - ext_roots_start) - obj_copy_time_sec) * 1000.0;
+
   g1_policy()->record_ext_root_scan_time(worker_i, ext_root_time_ms);
 
   // Scan strong roots in mark stack.
@@ -4910,21 +4626,11 @@ g1_process_strong_roots(bool collecting_perm_gen,
   double mark_stack_scan_ms = (os::elapsedTime() - ext_roots_end) * 1000.0;
   g1_policy()->record_mark_stack_scan_time(worker_i, mark_stack_scan_ms);
 
-  // XXX What should this be doing in the parallel case?
-  g1_policy()->record_collection_pause_end_CH_strong_roots();
   // Now scan the complement of the collection set.
   if (scan_rs != NULL) {
     g1_rem_set()->oops_into_collection_set_do(scan_rs, worker_i);
   }
-  // Finish with the ref_processor roots.
-  if (!_process_strong_tasks->is_task_claimed(G1H_PS_refProcessor_oops_do)) {
-    // We need to treat the discovered reference lists as roots and
-    // keep entries (which are added by the marking threads) on them
-    // live until they can be processed at the end of marking.
-    ref_processor()->weak_oops_do(scan_non_heap_roots);
-    ref_processor()->oops_do(scan_non_heap_roots);
-  }
-  g1_policy()->record_collection_pause_end_G1_strong_roots();
+
   _process_strong_tasks->all_tasks_completed();
 }
 
@@ -4935,24 +4641,6 @@ G1CollectedHeap::g1_process_weak_roots(OopClosure* root_closure,
   SharedHeap::process_weak_roots(root_closure, &roots_in_blobs, non_root_closure);
 }
 
-
-class SaveMarksClosure: public HeapRegionClosure {
-public:
-  bool doHeapRegion(HeapRegion* r) {
-    r->save_marks();
-    return false;
-  }
-};
-
-void G1CollectedHeap::save_marks() {
-  if (!CollectedHeap::use_parallel_gc_threads()) {
-    SaveMarksClosure sm;
-    heap_region_iterate(&sm);
-  }
-  // We do this even in the parallel case
-  perm_gen()->save_marks();
-}
-
 void G1CollectedHeap::evacuate_collection_set() {
   set_evacuation_failed(false);
 
@@ -4983,10 +4671,6 @@ void G1CollectedHeap::evacuate_collection_set() {
   double par_time = (os::elapsedTime() - start_par) * 1000.0;
   g1_policy()->record_par_time(par_time);
   set_par_threads(0);
-  // Is this the right thing to do here?  We don't save marks
-  // on individual heap regions when we allocate from
-  // them in parallel, so this seems like the correct place for this.
-  retire_all_alloc_regions();
 
   // Weak root processing.
   // Note: when JSR 292 is enabled and code blobs can contain
@@ -4997,7 +4681,7 @@ void G1CollectedHeap::evacuate_collection_set() {
     G1KeepAliveClosure keep_alive(this);
     JNIHandles::weak_oops_do(&is_alive, &keep_alive);
   }
-  release_gc_alloc_regions(false /* totally */);
+  release_gc_alloc_regions();
   g1_rem_set()->cleanup_after_oops_into_collection_set_do();
 
   concurrent_g1_refine()->clear_hot_cache();
@@ -5118,68 +4802,31 @@ void G1CollectedHeap::update_sets_after_freeing_regions(size_t pre_used,
   }
 }
 
-void G1CollectedHeap::dirtyCardsForYoungRegions(CardTableModRefBS* ct_bs, HeapRegion* list) {
-  while (list != NULL) {
-    guarantee( list->is_young(), "invariant" );
-
-    HeapWord* bottom = list->bottom();
-    HeapWord* end = list->end();
-    MemRegion mr(bottom, end);
-    ct_bs->dirty(mr);
-
-    list = list->get_next_young_region();
-  }
-}
-
-
 class G1ParCleanupCTTask : public AbstractGangTask {
   CardTableModRefBS* _ct_bs;
   G1CollectedHeap* _g1h;
   HeapRegion* volatile _su_head;
 public:
   G1ParCleanupCTTask(CardTableModRefBS* ct_bs,
-                     G1CollectedHeap* g1h,
-                     HeapRegion* survivor_list) :
+                     G1CollectedHeap* g1h) :
     AbstractGangTask("G1 Par Cleanup CT Task"),
-    _ct_bs(ct_bs),
-    _g1h(g1h),
-    _su_head(survivor_list)
-  { }
+    _ct_bs(ct_bs), _g1h(g1h) { }
 
   void work(int i) {
     HeapRegion* r;
     while (r = _g1h->pop_dirty_cards_region()) {
       clear_cards(r);
     }
-    // Redirty the cards of the survivor regions.
-    dirty_list(&this->_su_head);
   }
 
   void clear_cards(HeapRegion* r) {
-    // Cards for Survivor regions will be dirtied later.
+    // Cards of the survivors should have already been dirtied.
     if (!r->is_survivor()) {
       _ct_bs->clear(MemRegion(r->bottom(), r->end()));
     }
   }
-
-  void dirty_list(HeapRegion* volatile * head_ptr) {
-    HeapRegion* head;
-    do {
-      // Pop region off the list.
-      head = *head_ptr;
-      if (head != NULL) {
-        HeapRegion* r = (HeapRegion*)
-          Atomic::cmpxchg_ptr(head->get_next_young_region(), head_ptr, head);
-        if (r == head) {
-          assert(!r->isHumongous(), "Humongous regions shouldn't be on survivor list");
-          _ct_bs->dirty(MemRegion(r->bottom(), r->end()));
-        }
-      }
-    } while (*head_ptr != NULL);
-  }
 };
 
-
 #ifndef PRODUCT
 class G1VerifyCardTableCleanup: public HeapRegionClosure {
   G1CollectedHeap* _g1h;
@@ -5235,8 +4882,7 @@ void G1CollectedHeap::cleanUpCardTable() {
   double start = os::elapsedTime();
 
   // Iterate over the dirty cards region list.
-  G1ParCleanupCTTask cleanup_task(ct_bs, this,
-                                  _young_list->first_survivor_region());
+  G1ParCleanupCTTask cleanup_task(ct_bs, this);
 
   if (ParallelGCThreads > 0) {
     set_par_threads(workers()->total_workers());
@@ -5253,10 +4899,6 @@ void G1CollectedHeap::cleanUpCardTable() {
       }
       r->set_next_dirty_cards_region(NULL);
     }
-    // now, redirty the cards of the survivor regions
-    // (it seemed faster to do it this way, instead of iterating over
-    // all regions and then clearing / dirtying as appropriate)
-    dirtyCardsForYoungRegions(ct_bs, _young_list->first_survivor_region());
   }
 
   double elapsed = os::elapsedTime() - start;
@@ -5478,39 +5120,10 @@ bool G1CollectedHeap::check_young_list_empty(bool check_heap, bool check_sample)
 void G1CollectedHeap::empty_young_list() {
   assert(heap_lock_held_for_gc(),
               "the heap lock should already be held by or for this thread");
-  assert(g1_policy()->in_young_gc_mode(), "should be in young GC mode");
 
   _young_list->empty_list();
 }
 
-bool G1CollectedHeap::all_alloc_regions_no_allocs_since_save_marks() {
-  bool no_allocs = true;
-  for (int ap = 0; ap < GCAllocPurposeCount && no_allocs; ++ap) {
-    HeapRegion* r = _gc_alloc_regions[ap];
-    no_allocs = r == NULL || r->saved_mark_at_top();
-  }
-  return no_allocs;
-}
-
-void G1CollectedHeap::retire_all_alloc_regions() {
-  for (int ap = 0; ap < GCAllocPurposeCount; ++ap) {
-    HeapRegion* r = _gc_alloc_regions[ap];
-    if (r != NULL) {
-      // Check for aliases.
-      bool has_processed_alias = false;
-      for (int i = 0; i < ap; ++i) {
-        if (_gc_alloc_regions[i] == r) {
-          has_processed_alias = true;
-          break;
-        }
-      }
-      if (!has_processed_alias) {
-        retire_alloc_region(r, false /* par */);
-      }
-    }
-  }
-}
-
 // Done at the start of full GC.
 void G1CollectedHeap::tear_down_region_lists() {
   _free_list.remove_all();
@@ -5565,6 +5178,8 @@ bool G1CollectedHeap::is_in_closed_subset(const void* p) const {
   }
 }
 
+// Methods for the mutator alloc region
+
 HeapRegion* G1CollectedHeap::new_mutator_alloc_region(size_t word_size,
                                                       bool force) {
   assert_heap_locked_or_at_safepoint(true /* should_be_vm_thread */);
@@ -5605,6 +5220,69 @@ void MutatorAllocRegion::retire_region(HeapRegion* alloc_region,
   _g1h->retire_mutator_alloc_region(alloc_region, allocated_bytes);
 }
 
+// Methods for the GC alloc regions
+
+HeapRegion* G1CollectedHeap::new_gc_alloc_region(size_t word_size,
+                                                 size_t count,
+                                                 GCAllocPurpose ap) {
+  assert(FreeList_lock->owned_by_self(), "pre-condition");
+
+  if (count < g1_policy()->max_regions(ap)) {
+    HeapRegion* new_alloc_region = new_region(word_size,
+                                              true /* do_expand */);
+    if (new_alloc_region != NULL) {
+      // We really only need to do this for old regions given that we
+      // should never scan survivors. But it doesn't hurt to do it
+      // for survivors too.
+      new_alloc_region->set_saved_mark();
+      if (ap == GCAllocForSurvived) {
+        new_alloc_region->set_survivor();
+        _hr_printer.alloc(new_alloc_region, G1HRPrinter::Survivor);
+      } else {
+        _hr_printer.alloc(new_alloc_region, G1HRPrinter::Old);
+      }
+      return new_alloc_region;
+    } else {
+      g1_policy()->note_alloc_region_limit_reached(ap);
+    }
+  }
+  return NULL;
+}
+
+void G1CollectedHeap::retire_gc_alloc_region(HeapRegion* alloc_region,
+                                             size_t allocated_bytes,
+                                             GCAllocPurpose ap) {
+  alloc_region->note_end_of_copying();
+  g1_policy()->record_bytes_copied_during_gc(allocated_bytes);
+  if (ap == GCAllocForSurvived) {
+    young_list()->add_survivor_region(alloc_region);
+  }
+  _hr_printer.retire(alloc_region);
+}
+
+HeapRegion* SurvivorGCAllocRegion::allocate_new_region(size_t word_size,
+                                                       bool force) {
+  assert(!force, "not supported for GC alloc regions");
+  return _g1h->new_gc_alloc_region(word_size, count(), GCAllocForSurvived);
+}
+
+void SurvivorGCAllocRegion::retire_region(HeapRegion* alloc_region,
+                                          size_t allocated_bytes) {
+  _g1h->retire_gc_alloc_region(alloc_region, allocated_bytes,
+                               GCAllocForSurvived);
+}
+
+HeapRegion* OldGCAllocRegion::allocate_new_region(size_t word_size,
+                                                  bool force) {
+  assert(!force, "not supported for GC alloc regions");
+  return _g1h->new_gc_alloc_region(word_size, count(), GCAllocForTenured);
+}
+
+void OldGCAllocRegion::retire_region(HeapRegion* alloc_region,
+                                     size_t allocated_bytes) {
+  _g1h->retire_gc_alloc_region(alloc_region, allocated_bytes,
+                               GCAllocForTenured);
+}
 // Heap region set verification
 
 class VerifyRegionListsClosure : public HeapRegionClosure {
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
index 98a7df0..650e438 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
@@ -155,6 +155,24 @@ public:
     : G1AllocRegion("Mutator Alloc Region", false /* bot_updates */) { }
 };
 
+class SurvivorGCAllocRegion : public G1AllocRegion {
+protected:
+  virtual HeapRegion* allocate_new_region(size_t word_size, bool force);
+  virtual void retire_region(HeapRegion* alloc_region, size_t allocated_bytes);
+public:
+  SurvivorGCAllocRegion()
+  : G1AllocRegion("Survivor GC Alloc Region", false /* bot_updates */) { }
+};
+
+class OldGCAllocRegion : public G1AllocRegion {
+protected:
+  virtual HeapRegion* allocate_new_region(size_t word_size, bool force);
+  virtual void retire_region(HeapRegion* alloc_region, size_t allocated_bytes);
+public:
+  OldGCAllocRegion()
+  : G1AllocRegion("Old GC Alloc Region", true /* bot_updates */) { }
+};
+
 class RefineCardTableEntryClosure;
 class G1CollectedHeap : public SharedHeap {
   friend class VM_G1CollectForAllocation;
@@ -163,6 +181,8 @@ class G1CollectedHeap : public SharedHeap {
   friend class VM_G1IncCollectionPause;
   friend class VMStructs;
   friend class MutatorAllocRegion;
+  friend class SurvivorGCAllocRegion;
+  friend class OldGCAllocRegion;
 
   // Closures used in implementation.
   friend class G1ParCopyHelper;
@@ -225,30 +245,33 @@ private:
   // Alloc region used to satisfy mutator allocation requests.
   MutatorAllocRegion _mutator_alloc_region;
 
+  // Alloc region used to satisfy allocation requests by the GC for
+  // survivor objects.
+  SurvivorGCAllocRegion _survivor_gc_alloc_region;
+
+  // Alloc region used to satisfy allocation requests by the GC for
+  // old objects.
+  OldGCAllocRegion _old_gc_alloc_region;
+
+  // The last old region we allocated to during the last GC.
+  // Typically, it is not full so we should re-use it during the next GC.
+  HeapRegion* _retained_old_gc_alloc_region;
+
   // It resets the mutator alloc region before new allocations can take place.
   void init_mutator_alloc_region();
 
   // It releases the mutator alloc region.
   void release_mutator_alloc_region();
 
-  void abandon_gc_alloc_regions();
+  // It initializes the GC alloc regions at the start of a GC.
+  void init_gc_alloc_regions();
 
-  // The to-space memory regions into which objects are being copied during
-  // a GC.
-  HeapRegion* _gc_alloc_regions[GCAllocPurposeCount];
-  size_t _gc_alloc_region_counts[GCAllocPurposeCount];
-  // These are the regions, one per GCAllocPurpose, that are half-full
-  // at the end of a collection and that we want to reuse during the
-  // next collection.
-  HeapRegion* _retained_gc_alloc_regions[GCAllocPurposeCount];
-  // This specifies whether we will keep the last half-full region at
-  // the end of a collection so that it can be reused during the next
-  // collection (this is specified per GCAllocPurpose)
-  bool _retain_gc_alloc_region[GCAllocPurposeCount];
-
-  // A list of the regions that have been set to be alloc regions in the
-  // current collection.
-  HeapRegion* _gc_alloc_region_list;
+  // It releases the GC alloc regions at the end of a GC.
+  void release_gc_alloc_regions();
+
+  // It does any cleanup that needs to be done on the GC alloc regions
+  // before a Full GC.
+  void abandon_gc_alloc_regions();
 
   // Helper for monitoring and management support.
   G1MonitoringSupport* _g1mm;
@@ -256,20 +279,6 @@ private:
   // Determines PLAB size for a particular allocation purpose.
   static size_t desired_plab_sz(GCAllocPurpose purpose);
 
-  // When called by par thread, requires the FreeList_lock to be held.
-  void push_gc_alloc_region(HeapRegion* hr);
-
-  // This should only be called single-threaded.  Undeclares all GC alloc
-  // regions.
-  void forget_alloc_region_list();
-
-  // Should be used to set an alloc region, because there's other
-  // associated bookkeeping.
-  void set_gc_alloc_region(int purpose, HeapRegion* r);
-
-  // Check well-formedness of alloc region list.
-  bool check_gc_alloc_regions();
-
   // Outside of GC pauses, the number of bytes used in all regions other
   // than the current allocation region.
   size_t _summary_bytes_used;
@@ -387,14 +396,7 @@ private:
 
 protected:
 
-  // Returns "true" iff none of the gc alloc regions have any allocations
-  // since the last call to "save_marks".
-  bool all_alloc_regions_no_allocs_since_save_marks();
-  // Perform finalization stuff on all allocation regions.
-  void retire_all_alloc_regions();
-
-  // The number of regions allocated to hold humongous objects.
-  int         _num_humongous_regions;
+  // The young region list.
   YoungList*  _young_list;
 
   // The current policy object for the collector.
@@ -413,11 +415,6 @@ protected:
   // request.
   HeapRegion* new_region(size_t word_size, bool do_expand);
 
-  // Try to allocate a new region to be used for allocation by
-  // a GC thread. It will try to expand the heap if no region is
-  // available.
-  HeapRegion* new_gc_alloc_region(int purpose, size_t word_size);
-
   // Attempt to satisfy a humongous allocation request of the given
   // size by finding a contiguous set of free regions of num_regions
   // length and remove them from the master free list. Return the
@@ -525,16 +522,25 @@ protected:
   // that parallel threads might be attempting allocations.
   void par_allocate_remaining_space(HeapRegion* r);
 
-  // Retires an allocation region when it is full or at the end of a
-  // GC pause.
-  void  retire_alloc_region(HeapRegion* alloc_region, bool par);
+  // Allocation attempt during GC for a survivor object / PLAB.
+  inline HeapWord* survivor_attempt_allocation(size_t word_size);
 
-  // These two methods are the "callbacks" from the G1AllocRegion class.
+  // Allocation attempt during GC for an old object / PLAB.
+  inline HeapWord* old_attempt_allocation(size_t word_size);
 
+  // These methods are the "callbacks" from the G1AllocRegion class.
+
+  // For mutator alloc regions.
   HeapRegion* new_mutator_alloc_region(size_t word_size, bool force);
   void retire_mutator_alloc_region(HeapRegion* alloc_region,
                                    size_t allocated_bytes);
 
+  // For GC alloc regions.
+  HeapRegion* new_gc_alloc_region(size_t word_size, size_t count,
+                                  GCAllocPurpose ap);
+  void retire_gc_alloc_region(HeapRegion* alloc_region,
+                              size_t allocated_bytes, GCAllocPurpose ap);
+
   // - if explicit_gc is true, the GC is for a System.gc() or a heap
   //   inspection request and should collect the entire heap
   // - if clear_all_soft_refs is true, all soft references should be
@@ -728,9 +734,6 @@ protected:
   void g1_process_weak_roots(OopClosure* root_closure,
                              OopClosure* non_root_closure);
 
-  // Invoke "save_marks" on all heap regions.
-  void save_marks();
-
   // Frees a non-humongous region by initializing its contents and
   // adding it to the free list that's passed as a parameter (this is
   // usually a local list which will be appended to the master free
@@ -822,24 +825,6 @@ protected:
   oop handle_evacuation_failure_par(OopsInHeapRegionClosure* cl, oop obj);
   void handle_evacuation_failure_common(oop obj, markOop m);
 
-  // Ensure that the relevant gc_alloc regions are set.
-  void get_gc_alloc_regions();
-  // We're done with GC alloc regions. We are going to tear down the
-  // gc alloc list and remove the gc alloc tag from all the regions on
-  // that list. However, we will also retain the last (i.e., the one
-  // that is half-full) GC alloc region, per GCAllocPurpose, for
-  // possible reuse during the next collection, provided
-  // _retain_gc_alloc_region[] indicates that it should be the
-  // case. Said regions are kept in the _retained_gc_alloc_regions[]
-  // array. If the parameter totally is set, we will not retain any
-  // regions, irrespective of what _retain_gc_alloc_region[]
-  // indicates.
-  void release_gc_alloc_regions(bool totally);
-#ifndef PRODUCT
-  // Useful for debugging.
-  void print_gc_alloc_regions();
-#endif // !PRODUCT
-
   // Instance of the concurrent mark is_alive closure for embedding
   // into the reference processor as the is_alive_non_header. This
   // prevents unnecessary additions to the discovered lists during
@@ -948,9 +933,6 @@ public:
   // result might be a bit inaccurate.
   size_t used_unlocked() const;
   size_t recalculate_used() const;
-#ifndef PRODUCT
-  size_t recalculate_used_regions() const;
-#endif // PRODUCT
 
   // These virtual functions do the actual allocation.
   // Some heaps may offer a contiguous region for shared non-blocking
@@ -1110,9 +1092,6 @@ public:
 
   virtual bool is_in_closed_subset(const void* p) const;
 
-  // Dirty card table entries covering a list of young regions.
-  void dirtyCardsForYoungRegions(CardTableModRefBS* ct_bs, HeapRegion* list);
-
   // This resets the card table to all zeros.  It is used after
   // a collection pause which used the card table to claim cards.
   void cleanUpCardTable();
@@ -1284,16 +1263,10 @@ public:
   // in the young gen: for the SATB pre-barrier, there is no
   // pre-value that needs to be remembered; for the remembered-set
   // update logging post-barrier, we don't maintain remembered set
-  // information for young gen objects. Note that non-generational
-  // G1 does not have any "young" objects, should not elide
-  // the rs logging barrier and so should always answer false below.
-  // However, non-generational G1 (-XX:-G1Gen) appears to have
-  // bit-rotted so was not tested below.
+  // information for young gen objects.
   virtual bool can_elide_initializing_store_barrier(oop new_obj) {
     // Re 6920090, 6920109 above.
     assert(ReduceInitialCardMarksForG1, "Else cannot be here");
-    assert(G1Gen || !is_in_young(new_obj),
-           "Non-generational G1 should never return true below");
     return is_in_young(new_obj);
   }
 
@@ -1410,9 +1383,6 @@ public:
   // bitmap off to the side.
   void doConcurrentMark();
 
-  // Do a full concurrent marking, synchronously.
-  void do_sync_mark();
-
   bool isMarkedPrev(oop obj) const;
   bool isMarkedNext(oop obj) const;
 
@@ -1745,26 +1715,22 @@ public:
 class G1ParGCAllocBuffer: public ParGCAllocBuffer {
 private:
   bool        _retired;
-  bool        _during_marking;
+  bool        _should_mark_objects;
   GCLabBitMap _bitmap;
 
 public:
-  G1ParGCAllocBuffer(size_t gclab_word_size) :
-    ParGCAllocBuffer(gclab_word_size),
-    _during_marking(G1CollectedHeap::heap()->mark_in_progress()),
-    _bitmap(G1CollectedHeap::heap()->reserved_region().start(), gclab_word_size),
-    _retired(false)
-  { }
+  G1ParGCAllocBuffer(size_t gclab_word_size);
 
   inline bool mark(HeapWord* addr) {
     guarantee(use_local_bitmaps, "invariant");
-    assert(_during_marking, "invariant");
+    assert(_should_mark_objects, "invariant");
     return _bitmap.mark(addr);
   }
 
   inline void set_buf(HeapWord* buf) {
-    if (use_local_bitmaps && _during_marking)
+    if (use_local_bitmaps && _should_mark_objects) {
       _bitmap.set_buffer(buf);
+    }
     ParGCAllocBuffer::set_buf(buf);
     _retired = false;
   }
@@ -1772,7 +1738,7 @@ public:
   inline void retire(bool end_of_gc, bool retain) {
     if (_retired)
       return;
-    if (use_local_bitmaps && _during_marking) {
+    if (use_local_bitmaps && _should_mark_objects) {
       _bitmap.retire();
     }
     ParGCAllocBuffer::retire(end_of_gc, retain);
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp
index 05a42d7..ee18c4d 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp
@@ -77,6 +77,38 @@ G1CollectedHeap::attempt_allocation(size_t word_size,
   return result;
 }
 
+inline HeapWord* G1CollectedHeap::survivor_attempt_allocation(size_t
+                                                              word_size) {
+  assert(!isHumongous(word_size),
+         "we should not be seeing humongous-size allocations in this path");
+
+  HeapWord* result = _survivor_gc_alloc_region.attempt_allocation(word_size,
+                                                      false /* bot_updates */);
+  if (result == NULL) {
+    MutexLockerEx x(FreeList_lock, Mutex::_no_safepoint_check_flag);
+    result = _survivor_gc_alloc_region.attempt_allocation_locked(word_size,
+                                                      false /* bot_updates */);
+  }
+  if (result != NULL) {
+    dirty_young_block(result, word_size);
+  }
+  return result;
+}
+
+inline HeapWord* G1CollectedHeap::old_attempt_allocation(size_t word_size) {
+  assert(!isHumongous(word_size),
+         "we should not be seeing humongous-size allocations in this path");
+
+  HeapWord* result = _old_gc_alloc_region.attempt_allocation(word_size,
+                                                       true /* bot_updates */);
+  if (result == NULL) {
+    MutexLockerEx x(FreeList_lock, Mutex::_no_safepoint_check_flag);
+    result = _old_gc_alloc_region.attempt_allocation_locked(word_size,
+                                                       true /* bot_updates */);
+  }
+  return result;
+}
+
 // It dirties the cards that cover the block so that so that the post
 // write barrier never queues anything when updating objects on this
 // block. It is assumed (and in fact we assert) that the block
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp
index 4084550..d43d080 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp
@@ -28,6 +28,7 @@
 #include "gc_implementation/g1/concurrentMarkThread.inline.hpp"
 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
 #include "gc_implementation/g1/g1CollectorPolicy.hpp"
+#include "gc_implementation/g1/g1ErgoVerbose.hpp"
 #include "gc_implementation/g1/heapRegionRemSet.hpp"
 #include "gc_implementation/shared/gcPolicyCounters.hpp"
 #include "runtime/arguments.hpp"
@@ -134,13 +135,10 @@ public:
 
 G1CollectorPolicy::G1CollectorPolicy() :
   _parallel_gc_threads(G1CollectedHeap::use_parallel_gc_threads()
-    ? ParallelGCThreads : 1),
-
+                        ? ParallelGCThreads : 1),
 
   _n_pauses(0),
-  _recent_CH_strong_roots_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
-  _recent_G1_strong_roots_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
-  _recent_evac_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
+  _recent_rs_scan_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
   _recent_pause_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
   _recent_rs_sizes(new TruncatedSeq(NumPrevPausesForHeuristics)),
   _recent_gc_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
@@ -148,6 +146,7 @@ G1CollectorPolicy::G1CollectorPolicy() :
   _stop_world_start(0.0),
   _all_stop_world_times_ms(new NumberSeq()),
   _all_yield_times_ms(new NumberSeq()),
+  _using_new_ratio_calculations(false),
 
   _all_mod_union_times_ms(new NumberSeq()),
 
@@ -173,7 +172,6 @@ G1CollectorPolicy::G1CollectorPolicy() :
   _cur_aux_times_ms(new double[_aux_num]),
   _cur_aux_times_set(new bool[_aux_num]),
 
-  _concurrent_mark_init_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
   _concurrent_mark_remark_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
   _concurrent_mark_cleanup_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
 
@@ -204,7 +202,6 @@ G1CollectorPolicy::G1CollectorPolicy() :
 
   // </NEW PREDICTION>
 
-  _in_young_gc_mode(false),
   _full_young_gcs(true),
   _full_young_pause_num(0),
   _partial_young_pause_num(0),
@@ -276,15 +273,26 @@ G1CollectorPolicy::G1CollectorPolicy() :
   _recorded_survivor_tail(NULL),
   _survivors_age_table(true),
 
-  _gc_overhead_perc(0.0)
+  _gc_overhead_perc(0.0) {
 
-{
   // Set up the region size and associated fields. Given that the
   // policy is created before the heap, we have to set this up here,
   // so it's done as soon as possible.
   HeapRegion::setup_heap_region_size(Arguments::min_heap_size());
   HeapRegionRemSet::setup_remset_size();
 
+  G1ErgoVerbose::initialize();
+  if (PrintAdaptiveSizePolicy) {
+    // Currently, we only use a single switch for all the heuristics.
+    G1ErgoVerbose::set_enabled(true);
+    // Given that we don't currently have a verboseness level
+    // parameter, we'll hardcode this to high. This can be easily
+    // changed in the future.
+    G1ErgoVerbose::set_level(ErgoHigh);
+  } else {
+    G1ErgoVerbose::set_enabled(false);
+  }
+
   // Verify PLAB sizes
   const uint region_size = HeapRegion::GrainWords;
   if (YoungPLABSize > region_size || OldPLABSize > region_size) {
@@ -403,21 +411,30 @@ G1CollectorPolicy::G1CollectorPolicy() :
   _sigma = (double) G1ConfidencePercent / 100.0;
 
   // start conservatively (around 50ms is about right)
-  _concurrent_mark_init_times_ms->add(0.05);
   _concurrent_mark_remark_times_ms->add(0.05);
   _concurrent_mark_cleanup_times_ms->add(0.20);
   _tenuring_threshold = MaxTenuringThreshold;
-
-  // if G1FixedSurvivorSpaceSize is 0 which means the size is not
-  // fixed, then _max_survivor_regions will be calculated at
-  // calculate_young_list_target_length during initialization
-  _max_survivor_regions = G1FixedSurvivorSpaceSize / HeapRegion::GrainBytes;
+  // _max_survivor_regions will be calculated by
+  // update_young_list_target_length() during initialization.
+  _max_survivor_regions = 0;
 
   assert(GCTimeRatio > 0,
          "we should have set it to a default value set_g1_gc_flags() "
          "if a user set it to 0");
   _gc_overhead_perc = 100.0 * (1.0 / (1.0 + GCTimeRatio));
 
+  uintx reserve_perc = G1ReservePercent;
+  // Put an artificial ceiling on this so that it's not set to a silly value.
+  if (reserve_perc > 50) {
+    reserve_perc = 50;
+    warning("G1ReservePercent is set to a value that is too large, "
+            "it's been updated to %u", reserve_perc);
+  }
+  _reserve_factor = (double) reserve_perc / 100.0;
+  // This will be set when the heap is expanded
+  // for the first time during initialization.
+  _reserve_regions = 0;
+
   initialize_all();
 }
 
@@ -442,16 +459,15 @@ void G1CollectorPolicy::initialize_flags() {
 // ParallelScavengeHeap::initialize()). We might change this in the
 // future, but it's a good start.
 class G1YoungGenSizer : public TwoGenerationCollectorPolicy {
-  size_t size_to_region_num(size_t byte_size) {
-    return MAX2((size_t) 1, byte_size / HeapRegion::GrainBytes);
-  }
 
 public:
   G1YoungGenSizer() {
     initialize_flags();
     initialize_size_info();
   }
-
+  size_t size_to_region_num(size_t byte_size) {
+    return MAX2((size_t) 1, byte_size / HeapRegion::GrainBytes);
+  }
   size_t min_young_region_num() {
     return size_to_region_num(_min_gen0_size);
   }
@@ -463,6 +479,13 @@ public:
   }
 };
 
+void G1CollectorPolicy::update_young_list_size_using_newratio(size_t number_of_heap_regions) {
+  assert(number_of_heap_regions > 0, "Heap must be initialized");
+  size_t young_size = number_of_heap_regions / (NewRatio + 1);
+  _min_desired_young_length = young_size;
+  _max_desired_young_length = young_size;
+}
+
 void G1CollectorPolicy::init() {
   // Set aside an initial future to_space.
   _g1 = G1CollectedHeap::heap();
@@ -471,27 +494,37 @@ void G1CollectorPolicy::init() {
 
   initialize_gc_policy_counters();
 
-  if (G1Gen) {
-    _in_young_gc_mode = true;
+  G1YoungGenSizer sizer;
+  size_t initial_region_num = sizer.initial_young_region_num();
+  _min_desired_young_length = sizer.min_young_region_num();
+  _max_desired_young_length = sizer.max_young_region_num();
 
-    G1YoungGenSizer sizer;
-    size_t initial_region_num = sizer.initial_young_region_num();
-
-    if (UseAdaptiveSizePolicy) {
-      set_adaptive_young_list_length(true);
-      _young_list_fixed_length = 0;
+  if (FLAG_IS_CMDLINE(NewRatio)) {
+    if (FLAG_IS_CMDLINE(NewSize) || FLAG_IS_CMDLINE(MaxNewSize)) {
+      gclog_or_tty->print_cr("-XX:NewSize and -XX:MaxNewSize overrides -XX:NewRatio");
     } else {
-      set_adaptive_young_list_length(false);
-      _young_list_fixed_length = initial_region_num;
+      // Treat NewRatio as a fixed size that is only recalculated when the heap size changes
+      size_t heap_regions = sizer.size_to_region_num(_g1->n_regions());
+      update_young_list_size_using_newratio(heap_regions);
+      _using_new_ratio_calculations = true;
     }
-    _free_regions_at_end_of_collection = _g1->free_regions();
-    calculate_young_list_min_length();
-    guarantee( _young_list_min_length == 0, "invariant, not enough info" );
-    calculate_young_list_target_length();
+  }
+
+  // GenCollectorPolicy guarantees that min <= initial <= max.
+  // Asserting here just to state that we rely on this property.
+  assert(_min_desired_young_length <= _max_desired_young_length, "Invalid min/max young gen size values");
+  assert(initial_region_num <= _max_desired_young_length, "Initial young gen size too large");
+  assert(_min_desired_young_length <= initial_region_num, "Initial young gen size too small");
+
+  set_adaptive_young_list_length(_min_desired_young_length < _max_desired_young_length);
+  if (adaptive_young_list_length()) {
+    _young_list_fixed_length = 0;
   } else {
-     _young_list_fixed_length = 0;
-    _in_young_gc_mode = false;
+    _young_list_fixed_length = initial_region_num;
   }
+  _free_regions_at_end_of_collection = _g1->free_regions();
+  update_young_list_target_length();
+  _prev_eden_capacity = _young_list_target_length * HeapRegion::GrainBytes;
 
   // We may immediately start allocating regions and placing them on the
   // collection set list. Initialize the per-collection set info
@@ -499,236 +532,259 @@ void G1CollectorPolicy::init() {
 }
 
 // Create the jstat counters for the policy.
-void G1CollectorPolicy::initialize_gc_policy_counters()
-{
-  _gc_policy_counters = new GCPolicyCounters("GarbageFirst", 1, 2 + G1Gen);
+void G1CollectorPolicy::initialize_gc_policy_counters() {
+  _gc_policy_counters = new GCPolicyCounters("GarbageFirst", 1, 3);
 }
 
-void G1CollectorPolicy::calculate_young_list_min_length() {
-  _young_list_min_length = 0;
+bool G1CollectorPolicy::predict_will_fit(size_t young_length,
+                                         double base_time_ms,
+                                         size_t base_free_regions,
+                                         double target_pause_time_ms) {
+  if (young_length >= base_free_regions) {
+    // end condition 1: not enough space for the young regions
+    return false;
+  }
 
-  if (!adaptive_young_list_length())
-    return;
+  double accum_surv_rate = accum_yg_surv_rate_pred((int)(young_length - 1));
+  size_t bytes_to_copy =
+               (size_t) (accum_surv_rate * (double) HeapRegion::GrainBytes);
+  double copy_time_ms = predict_object_copy_time_ms(bytes_to_copy);
+  double young_other_time_ms = predict_young_other_time_ms(young_length);
+  double pause_time_ms = base_time_ms + copy_time_ms + young_other_time_ms;
+  if (pause_time_ms > target_pause_time_ms) {
+    // end condition 2: prediction is over the target pause time
+    return false;
+  }
 
-  if (_alloc_rate_ms_seq->num() > 3) {
-    double now_sec = os::elapsedTime();
-    double when_ms = _mmu_tracker->when_max_gc_sec(now_sec) * 1000.0;
-    double alloc_rate_ms = predict_alloc_rate_ms();
-    size_t min_regions = (size_t) ceil(alloc_rate_ms * when_ms);
-    size_t current_region_num = _g1->young_list()->length();
-    _young_list_min_length = min_regions + current_region_num;
+  size_t free_bytes =
+                  (base_free_regions - young_length) * HeapRegion::GrainBytes;
+  if ((2.0 * sigma()) * (double) bytes_to_copy > (double) free_bytes) {
+    // end condition 3: out-of-space (conservatively!)
+    return false;
   }
+
+  // success!
+  return true;
 }
 
-void G1CollectorPolicy::calculate_young_list_target_length() {
-  if (adaptive_young_list_length()) {
-    size_t rs_lengths = (size_t) get_new_prediction(_rs_lengths_seq);
-    calculate_young_list_target_length(rs_lengths);
-  } else {
-    if (full_young_gcs())
-      _young_list_target_length = _young_list_fixed_length;
-    else
-      _young_list_target_length = _young_list_fixed_length / 2;
-  }
-
-  // Make sure we allow the application to allocate at least one
-  // region before we need to do a collection again.
-  size_t min_length = _g1->young_list()->length() + 1;
-  _young_list_target_length = MAX2(_young_list_target_length, min_length);
-  calculate_max_gc_locker_expansion();
-  calculate_survivors_policy();
-}
-
-void G1CollectorPolicy::calculate_young_list_target_length(size_t rs_lengths) {
-  guarantee( adaptive_young_list_length(), "pre-condition" );
-  guarantee( !_in_marking_window || !_last_full_young_gc, "invariant" );
-
-  double start_time_sec = os::elapsedTime();
-  size_t min_reserve_perc = MAX2((size_t)2, (size_t)G1ReservePercent);
-  min_reserve_perc = MIN2((size_t) 50, min_reserve_perc);
-  size_t reserve_regions =
-    (size_t) ((double) min_reserve_perc * (double) _g1->n_regions() / 100.0);
-
-  if (full_young_gcs() && _free_regions_at_end_of_collection > 0) {
-    // we are in fully-young mode and there are free regions in the heap
-
-    double survivor_regions_evac_time =
-        predict_survivor_regions_evac_time();
-
-    double target_pause_time_ms = _mmu_tracker->max_gc_time() * 1000.0;
-    size_t pending_cards = (size_t) get_new_prediction(_pending_cards_seq);
-    size_t adj_rs_lengths = rs_lengths + predict_rs_length_diff();
-    size_t scanned_cards = predict_young_card_num(adj_rs_lengths);
-    double base_time_ms = predict_base_elapsed_time_ms(pending_cards, scanned_cards)
-                          + survivor_regions_evac_time;
-
-    // the result
-    size_t final_young_length = 0;
-
-    size_t init_free_regions =
-      MAX2((size_t)0, _free_regions_at_end_of_collection - reserve_regions);
-
-    // if we're still under the pause target...
-    if (base_time_ms <= target_pause_time_ms) {
-      // We make sure that the shortest young length that makes sense
-      // fits within the target pause time.
-      size_t min_young_length = 1;
-
-      if (predict_will_fit(min_young_length, base_time_ms,
-                                     init_free_regions, target_pause_time_ms)) {
-        // The shortest young length will fit within the target pause time;
-        // we'll now check whether the absolute maximum number of young
-        // regions will fit in the target pause time. If not, we'll do
-        // a binary search between min_young_length and max_young_length
-        size_t abs_max_young_length = _free_regions_at_end_of_collection - 1;
-        size_t max_young_length = abs_max_young_length;
-
-        if (max_young_length > min_young_length) {
-          // Let's check if the initial max young length will fit within the
-          // target pause. If so then there is no need to search for a maximal
-          // young length - we'll return the initial maximum
-
-          if (predict_will_fit(max_young_length, base_time_ms,
-                                init_free_regions, target_pause_time_ms)) {
-            // The maximum young length will satisfy the target pause time.
-            // We are done so set min young length to this maximum length.
-            // The code after the loop will then set final_young_length using
-            // the value cached in the minimum length.
-            min_young_length = max_young_length;
-          } else {
-            // The maximum possible number of young regions will not fit within
-            // the target pause time so let's search....
-
-            size_t diff = (max_young_length - min_young_length) / 2;
-            max_young_length = min_young_length + diff;
-
-            while (max_young_length > min_young_length) {
-              if (predict_will_fit(max_young_length, base_time_ms,
-                                        init_free_regions, target_pause_time_ms)) {
-
-                // The current max young length will fit within the target
-                // pause time. Note we do not exit the loop here. By setting
-                // min = max, and then increasing the max below means that
-                // we will continue searching for an upper bound in the
-                // range [max..max+diff]
-                min_young_length = max_young_length;
-              }
-              diff = (max_young_length - min_young_length) / 2;
-              max_young_length = min_young_length + diff;
-            }
-            // the above loop found a maximal young length that will fit
-            // within the target pause time.
-          }
-          assert(min_young_length <= abs_max_young_length, "just checking");
-        }
-        final_young_length = min_young_length;
-      }
-    }
-    // and we're done!
-
-    // we should have at least one region in the target young length
-    _young_list_target_length =
-                              final_young_length + _recorded_survivor_regions;
-
-    // let's keep an eye of how long we spend on this calculation
-    // right now, I assume that we'll print it when we need it; we
-    // should really adde it to the breakdown of a pause
-    double end_time_sec = os::elapsedTime();
-    double elapsed_time_ms = (end_time_sec - start_time_sec) * 1000.0;
-
-#ifdef TRACE_CALC_YOUNG_LENGTH
-    // leave this in for debugging, just in case
-    gclog_or_tty->print_cr("target = %1.1lf ms, young = " SIZE_FORMAT ", "
-                           "elapsed %1.2lf ms, (%s%s) " SIZE_FORMAT SIZE_FORMAT,
-                           target_pause_time_ms,
-                           _young_list_target_length
-                           elapsed_time_ms,
-                           full_young_gcs() ? "full" : "partial",
-                           during_initial_mark_pause() ? " i-m" : "",
-                           _in_marking_window,
-                           _in_marking_window_im);
-#endif // TRACE_CALC_YOUNG_LENGTH
-
-    if (_young_list_target_length < _young_list_min_length) {
-      // bummer; this means that, if we do a pause when the maximal
-      // length dictates, we'll violate the pause spacing target (the
-      // min length was calculate based on the application's current
-      // alloc rate);
-
-      // so, we have to bite the bullet, and allocate the minimum
-      // number. We'll violate our target, but we just can't meet it.
-
-#ifdef TRACE_CALC_YOUNG_LENGTH
-      // leave this in for debugging, just in case
-      gclog_or_tty->print_cr("adjusted target length from "
-                             SIZE_FORMAT " to " SIZE_FORMAT,
-                             _young_list_target_length, _young_list_min_length);
-#endif // TRACE_CALC_YOUNG_LENGTH
-
-      _young_list_target_length = _young_list_min_length;
-    }
-  } else {
-    // we are in a partially-young mode or we've run out of regions (due
-    // to evacuation failure)
+void G1CollectorPolicy::record_new_heap_size(size_t new_number_of_regions) {
+  // re-calculate the necessary reserve
+  double reserve_regions_d = (double) new_number_of_regions * _reserve_factor;
+  // We use ceiling so that if reserve_regions_d is > 0.0 (but
+  // smaller than 1.0) we'll get 1.
+  _reserve_regions = (size_t) ceil(reserve_regions_d);
 
-#ifdef TRACE_CALC_YOUNG_LENGTH
-    // leave this in for debugging, just in case
-    gclog_or_tty->print_cr("(partial) setting target to " SIZE_FORMAT
-                           _young_list_min_length);
-#endif // TRACE_CALC_YOUNG_LENGTH
-    // we'll do the pause as soon as possible by choosing the minimum
-    _young_list_target_length = _young_list_min_length;
+  if (_using_new_ratio_calculations) {
+    // -XX:NewRatio was specified so we need to update the
+    // young gen length when the heap size has changed.
+    update_young_list_size_using_newratio(new_number_of_regions);
   }
+}
 
-  _rs_lengths_prediction = rs_lengths;
+size_t G1CollectorPolicy::calculate_young_list_desired_min_length(
+                                                     size_t base_min_length) {
+  size_t desired_min_length = 0;
+  if (adaptive_young_list_length()) {
+    if (_alloc_rate_ms_seq->num() > 3) {
+      double now_sec = os::elapsedTime();
+      double when_ms = _mmu_tracker->when_max_gc_sec(now_sec) * 1000.0;
+      double alloc_rate_ms = predict_alloc_rate_ms();
+      desired_min_length = (size_t) ceil(alloc_rate_ms * when_ms);
+    } else {
+      // otherwise we don't have enough info to make the prediction
+    }
+  }
+  desired_min_length += base_min_length;
+  // make sure we don't go below any user-defined minimum bound
+  return MAX2(_min_desired_young_length, desired_min_length);
 }
 
-// This is used by: calculate_young_list_target_length(rs_length). It
-// returns true iff:
-//   the predicted pause time for the given young list will not overflow
-//   the target pause time
-// and:
-//   the predicted amount of surviving data will not overflow the
-//   the amount of free space available for survivor regions.
-//
-bool
-G1CollectorPolicy::predict_will_fit(size_t young_length,
-                                    double base_time_ms,
-                                    size_t init_free_regions,
-                                    double target_pause_time_ms) {
+size_t G1CollectorPolicy::calculate_young_list_desired_max_length() {
+  // Here, we might want to also take into account any additional
+  // constraints (i.e., user-defined minimum bound). Currently, we
+  // effectively don't set this bound.
+  return _max_desired_young_length;
+}
 
-  if (young_length >= init_free_regions)
-    // end condition 1: not enough space for the young regions
-    return false;
+void G1CollectorPolicy::update_young_list_target_length(size_t rs_lengths) {
+  if (rs_lengths == (size_t) -1) {
+    // if it's set to the default value (-1), we should predict it;
+    // otherwise, use the given value.
+    rs_lengths = (size_t) get_new_prediction(_rs_lengths_seq);
+  }
 
-  double accum_surv_rate_adj = 0.0;
-  double accum_surv_rate =
-    accum_yg_surv_rate_pred((int)(young_length - 1)) - accum_surv_rate_adj;
+  // Calculate the absolute and desired min bounds.
 
-  size_t bytes_to_copy =
-    (size_t) (accum_surv_rate * (double) HeapRegion::GrainBytes);
+  // This is how many young regions we already have (currently: the survivors).
+  size_t base_min_length = recorded_survivor_regions();
+  // This is the absolute minimum young length, which ensures that we
+  // can allocate one eden region in the worst-case.
+  size_t absolute_min_length = base_min_length + 1;
+  size_t desired_min_length =
+                     calculate_young_list_desired_min_length(base_min_length);
+  if (desired_min_length < absolute_min_length) {
+    desired_min_length = absolute_min_length;
+  }
 
-  double copy_time_ms = predict_object_copy_time_ms(bytes_to_copy);
+  // Calculate the absolute and desired max bounds.
 
-  double young_other_time_ms =
-                       predict_young_other_time_ms(young_length);
+  // We will try our best not to "eat" into the reserve.
+  size_t absolute_max_length = 0;
+  if (_free_regions_at_end_of_collection > _reserve_regions) {
+    absolute_max_length = _free_regions_at_end_of_collection - _reserve_regions;
+  }
+  size_t desired_max_length = calculate_young_list_desired_max_length();
+  if (desired_max_length > absolute_max_length) {
+    desired_max_length = absolute_max_length;
+  }
 
-  double pause_time_ms =
-                   base_time_ms + copy_time_ms + young_other_time_ms;
+  size_t young_list_target_length = 0;
+  if (adaptive_young_list_length()) {
+    if (full_young_gcs()) {
+      young_list_target_length =
+                        calculate_young_list_target_length(rs_lengths,
+                                                           base_min_length,
+                                                           desired_min_length,
+                                                           desired_max_length);
+      _rs_lengths_prediction = rs_lengths;
+    } else {
+      // Don't calculate anything and let the code below bound it to
+      // the desired_min_length, i.e., do the next GC as soon as
+      // possible to maximize how many old regions we can add to it.
+    }
+  } else {
+    if (full_young_gcs()) {
+      young_list_target_length = _young_list_fixed_length;
+    } else {
+      // A bit arbitrary: during partially-young GCs we allocate half
+      // the young regions to try to add old regions to the CSet.
+      young_list_target_length = _young_list_fixed_length / 2;
+      // We choose to accept that we might go under the desired min
+      // length given that we intentionally ask for a smaller young gen.
+      desired_min_length = absolute_min_length;
+    }
+  }
 
-  if (pause_time_ms > target_pause_time_ms)
-    // end condition 2: over the target pause time
-    return false;
+  // Make sure we don't go over the desired max length, nor under the
+  // desired min length. In case they clash, desired_min_length wins
+  // which is why that test is second.
+  if (young_list_target_length > desired_max_length) {
+    young_list_target_length = desired_max_length;
+  }
+  if (young_list_target_length < desired_min_length) {
+    young_list_target_length = desired_min_length;
+  }
 
-  size_t free_bytes =
-                 (init_free_regions - young_length) * HeapRegion::GrainBytes;
+  assert(young_list_target_length > recorded_survivor_regions(),
+         "we should be able to allocate at least one eden region");
+  assert(young_list_target_length >= absolute_min_length, "post-condition");
+  _young_list_target_length = young_list_target_length;
 
-  if ((2.0 + sigma()) * (double) bytes_to_copy > (double) free_bytes)
-    // end condition 3: out of to-space (conservatively)
-    return false;
+  update_max_gc_locker_expansion();
+}
 
-  // success!
-  return true;
+size_t
+G1CollectorPolicy::calculate_young_list_target_length(size_t rs_lengths,
+                                                   size_t base_min_length,
+                                                   size_t desired_min_length,
+                                                   size_t desired_max_length) {
+  assert(adaptive_young_list_length(), "pre-condition");
+  assert(full_young_gcs(), "only call this for fully-young GCs");
+
+  // In case some edge-condition makes the desired max length too small...
+  if (desired_max_length <= desired_min_length) {
+    return desired_min_length;
+  }
+
+  // We'll adjust min_young_length and max_young_length not to include
+  // the already allocated young regions (i.e., so they reflect the
+  // min and max eden regions we'll allocate). The base_min_length
+  // will be reflected in the predictions by the
+  // survivor_regions_evac_time prediction.
+  assert(desired_min_length > base_min_length, "invariant");
+  size_t min_young_length = desired_min_length - base_min_length;
+  assert(desired_max_length > base_min_length, "invariant");
+  size_t max_young_length = desired_max_length - base_min_length;
+
+  double target_pause_time_ms = _mmu_tracker->max_gc_time() * 1000.0;
+  double survivor_regions_evac_time = predict_survivor_regions_evac_time();
+  size_t pending_cards = (size_t) get_new_prediction(_pending_cards_seq);
+  size_t adj_rs_lengths = rs_lengths + predict_rs_length_diff();
+  size_t scanned_cards = predict_young_card_num(adj_rs_lengths);
+  double base_time_ms =
+    predict_base_elapsed_time_ms(pending_cards, scanned_cards) +
+    survivor_regions_evac_time;
+  size_t available_free_regions = _free_regions_at_end_of_collection;
+  size_t base_free_regions = 0;
+  if (available_free_regions > _reserve_regions) {
+    base_free_regions = available_free_regions - _reserve_regions;
+  }
+
+  // Here, we will make sure that the shortest young length that
+  // makes sense fits within the target pause time.
+
+  if (predict_will_fit(min_young_length, base_time_ms,
+                       base_free_regions, target_pause_time_ms)) {
+    // The shortest young length will fit into the target pause time;
+    // we'll now check whether the absolute maximum number of young
+    // regions will fit in the target pause time. If not, we'll do
+    // a binary search between min_young_length and max_young_length.
+    if (predict_will_fit(max_young_length, base_time_ms,
+                         base_free_regions, target_pause_time_ms)) {
+      // The maximum young length will fit into the target pause time.
+      // We are done so set min young length to the maximum length (as
+      // the result is assumed to be returned in min_young_length).
+      min_young_length = max_young_length;
+    } else {
+      // The maximum possible number of young regions will not fit within
+      // the target pause time so we'll search for the optimal
+      // length. The loop invariants are:
+      //
+      // min_young_length < max_young_length
+      // min_young_length is known to fit into the target pause time
+      // max_young_length is known not to fit into the target pause time
+      //
+      // Going into the loop we know the above hold as we've just
+      // checked them. Every time around the loop we check whether
+      // the middle value between min_young_length and
+      // max_young_length fits into the target pause time. If it
+      // does, it becomes the new min. If it doesn't, it becomes
+      // the new max. This way we maintain the loop invariants.
+
+      assert(min_young_length < max_young_length, "invariant");
+      size_t diff = (max_young_length - min_young_length) / 2;
+      while (diff > 0) {
+        size_t young_length = min_young_length + diff;
+        if (predict_will_fit(young_length, base_time_ms,
+                             base_free_regions, target_pause_time_ms)) {
+          min_young_length = young_length;
+        } else {
+          max_young_length = young_length;
+        }
+        assert(min_young_length <  max_young_length, "invariant");
+        diff = (max_young_length - min_young_length) / 2;
+      }
+      // The results is min_young_length which, according to the
+      // loop invariants, should fit within the target pause time.
+
+      // These are the post-conditions of the binary search above:
+      assert(min_young_length < max_young_length,
+             "otherwise we should have discovered that max_young_length "
+             "fits into the pause target and not done the binary search");
+      assert(predict_will_fit(min_young_length, base_time_ms,
+                              base_free_regions, target_pause_time_ms),
+             "min_young_length, the result of the binary search, should "
+             "fit into the pause target");
+      assert(!predict_will_fit(min_young_length + 1, base_time_ms,
+                               base_free_regions, target_pause_time_ms),
+             "min_young_length, the result of the binary search, should be "
+             "optimal, so no larger length should fit into the pause target");
+    }
+  } else {
+    // Even the minimum length doesn't fit into the pause time
+    // target, return it as the result nevertheless.
+  }
+  return base_min_length + min_young_length;
 }
 
 double G1CollectorPolicy::predict_survivor_regions_evac_time() {
@@ -741,17 +797,19 @@ double G1CollectorPolicy::predict_survivor_regions_evac_time() {
   return survivor_regions_evac_time;
 }
 
-void G1CollectorPolicy::check_prediction_validity() {
+void G1CollectorPolicy::revise_young_list_target_length_if_necessary() {
   guarantee( adaptive_young_list_length(), "should not call this otherwise" );
 
   size_t rs_lengths = _g1->young_list()->sampled_rs_lengths();
   if (rs_lengths > _rs_lengths_prediction) {
     // add 10% to avoid having to recalculate often
     size_t rs_lengths_prediction = rs_lengths * 1100 / 1000;
-    calculate_young_list_target_length(rs_lengths_prediction);
+    update_young_list_target_length(rs_lengths_prediction);
   }
 }
 
+
+
 HeapWord* G1CollectorPolicy::mem_allocate_work(size_t size,
                                                bool is_tlab,
                                                bool* gc_overhead_limit_was_exceeded) {
@@ -858,16 +916,7 @@ void G1CollectorPolicy::record_full_collection_end() {
   _free_regions_at_end_of_collection = _g1->free_regions();
   // Reset survivors SurvRateGroup.
   _survivor_surv_rate_group->reset();
-  calculate_young_list_min_length();
-  calculate_young_list_target_length();
-}
-
-void G1CollectorPolicy::record_before_bytes(size_t bytes) {
-  _bytes_in_to_space_before_gc += bytes;
-}
-
-void G1CollectorPolicy::record_after_bytes(size_t bytes) {
-  _bytes_in_to_space_after_gc += bytes;
+  update_young_list_target_length();
 }
 
 void G1CollectorPolicy::record_stop_world_start() {
@@ -879,10 +928,14 @@ void G1CollectorPolicy::record_collection_pause_start(double start_time_sec,
   if (PrintGCDetails) {
     gclog_or_tty->stamp(PrintGCTimeStamps);
     gclog_or_tty->print("[GC pause");
-    if (in_young_gc_mode())
-      gclog_or_tty->print(" (%s)", full_young_gcs() ? "young" : "partial");
+    gclog_or_tty->print(" (%s)", full_young_gcs() ? "young" : "partial");
   }
 
+  // We only need to do this here as the policy will only be applied
+  // to the GC we're about to start. so, no point is calculating this
+  // every time we calculate / recalculate the target young length.
+  update_survivors_policy();
+
   assert(_g1->used() == _g1->recalculate_used(),
          err_msg("sanity, used: "SIZE_FORMAT" recalculate_used: "SIZE_FORMAT,
                  _g1->used(), _g1->recalculate_used()));
@@ -897,9 +950,8 @@ void G1CollectorPolicy::record_collection_pause_start(double start_time_sec,
   _pending_cards = _g1->pending_card_num();
   _max_pending_cards = _g1->max_pending_card_num();
 
-  _bytes_in_to_space_before_gc = 0;
-  _bytes_in_to_space_after_gc = 0;
   _bytes_in_collection_set_before_gc = 0;
+  _bytes_copied_during_gc = 0;
 
   YoungList* young_list = _g1->young_list();
   _eden_bytes_before_gc = young_list->eden_used_bytes();
@@ -933,8 +985,7 @@ void G1CollectorPolicy::record_collection_pause_start(double start_time_sec,
   _satb_drain_time_set = false;
   _last_satb_drain_processed_buffers = -1;
 
-  if (in_young_gc_mode())
-    _last_young_gc_full = false;
+  _last_young_gc_full = false;
 
   // do that for any other surv rate groups
   _short_lived_surv_rate_group->stop_adding_regions();
@@ -947,12 +998,7 @@ void G1CollectorPolicy::record_mark_closure_time(double mark_closure_time_ms) {
   _mark_closure_time_ms = mark_closure_time_ms;
 }
 
-void G1CollectorPolicy::record_concurrent_mark_init_start() {
-  _mark_init_start_sec = os::elapsedTime();
-  guarantee(!in_young_gc_mode(), "should not do be here in young GC mode");
-}
-
-void G1CollectorPolicy::record_concurrent_mark_init_end_pre(double
+void G1CollectorPolicy::record_concurrent_mark_init_end(double
                                                    mark_init_elapsed_time_ms) {
   _during_marking = true;
   assert(!initiate_conc_mark_if_possible(), "we should have cleared it by now");
@@ -960,15 +1006,6 @@ void G1CollectorPolicy::record_concurrent_mark_init_end_pre(double
   _cur_mark_stop_world_time_ms = mark_init_elapsed_time_ms;
 }
 
-void G1CollectorPolicy::record_concurrent_mark_init_end() {
-  double end_time_sec = os::elapsedTime();
-  double elapsed_time_ms = (end_time_sec - _mark_init_start_sec) * 1000.0;
-  _concurrent_mark_init_times_ms->add(elapsed_time_ms);
-  record_concurrent_mark_init_end_pre(elapsed_time_ms);
-
-  _mmu_tracker->add_pause(_mark_init_start_sec, end_time_sec, true);
-}
-
 void G1CollectorPolicy::record_concurrent_mark_remark_start() {
   _mark_remark_start_sec = os::elapsedTime();
   _during_marking = false;
@@ -999,11 +1036,9 @@ void
 G1CollectorPolicy::
 record_concurrent_mark_cleanup_end_work1(size_t freed_bytes,
                                          size_t max_live_bytes) {
-  if (_n_marks < 2) _n_marks++;
-  if (G1PolicyVerbose > 0)
-    gclog_or_tty->print_cr("At end of marking, max_live is " SIZE_FORMAT " MB "
-                           " (of " SIZE_FORMAT " MB heap).",
-                           max_live_bytes/M, _g1->capacity()/M);
+  if (_n_marks < 2) {
+    _n_marks++;
+  }
 }
 
 // The important thing about this is that it includes "os::elapsedTime".
@@ -1017,27 +1052,15 @@ void G1CollectorPolicy::record_concurrent_mark_cleanup_end_work2() {
   _mmu_tracker->add_pause(_mark_cleanup_start_sec, end_time_sec, true);
 
   _num_markings++;
-
-  // We did a marking, so reset the "since_last_mark" variables.
-  double considerConcMarkCost = 1.0;
-  // If there are available processors, concurrent activity is free...
-  if (Threads::number_of_non_daemon_threads() * 2 <
-      os::active_processor_count()) {
-    considerConcMarkCost = 0.0;
-  }
   _n_pauses_at_mark_end = _n_pauses;
   _n_marks_since_last_pause++;
 }
 
 void
 G1CollectorPolicy::record_concurrent_mark_cleanup_completed() {
-  if (in_young_gc_mode()) {
-    _should_revert_to_full_young_gcs = false;
-    _last_full_young_gc = true;
-    _in_marking_window = false;
-    if (adaptive_young_list_length())
-      calculate_young_list_target_length();
-  }
+  _should_revert_to_full_young_gcs = false;
+  _last_full_young_gc = true;
+  _in_marking_window = false;
 }
 
 void G1CollectorPolicy::record_concurrent_pause() {
@@ -1050,18 +1073,6 @@ void G1CollectorPolicy::record_concurrent_pause() {
 void G1CollectorPolicy::record_concurrent_pause_end() {
 }
 
-void G1CollectorPolicy::record_collection_pause_end_CH_strong_roots() {
-  _cur_CH_strong_roots_end_sec = os::elapsedTime();
-  _cur_CH_strong_roots_dur_ms =
-    (_cur_CH_strong_roots_end_sec - _cur_collection_start_sec) * 1000.0;
-}
-
-void G1CollectorPolicy::record_collection_pause_end_G1_strong_roots() {
-  _cur_G1_strong_roots_end_sec = os::elapsedTime();
-  _cur_G1_strong_roots_dur_ms =
-    (_cur_G1_strong_roots_end_sec - _cur_CH_strong_roots_end_sec) * 1000.0;
-}
-
 template<class T>
 T sum_of(T* sum_arr, int start, int n, int N) {
   T sum = (T)0;
@@ -1183,7 +1194,6 @@ void G1CollectorPolicy::record_collection_pause_end() {
   double end_time_sec = os::elapsedTime();
   double elapsed_ms = _last_pause_time_ms;
   bool parallel = G1CollectedHeap::use_parallel_gc_threads();
-  double evac_ms = (end_time_sec - _cur_G1_strong_roots_end_sec) * 1000.0;
   size_t rs_size =
     _cur_collection_pause_used_regions_at_start - collection_set_size();
   size_t cur_used_bytes = _g1->used();
@@ -1199,31 +1209,46 @@ void G1CollectorPolicy::record_collection_pause_end() {
   }
 #endif // PRODUCT
 
-  if (in_young_gc_mode()) {
-    last_pause_included_initial_mark = during_initial_mark_pause();
-    if (last_pause_included_initial_mark)
-      record_concurrent_mark_init_end_pre(0.0);
+  last_pause_included_initial_mark = during_initial_mark_pause();
+  if (last_pause_included_initial_mark)
+    record_concurrent_mark_init_end(0.0);
 
-    size_t min_used_targ =
-      (_g1->capacity() / 100) * InitiatingHeapOccupancyPercent;
+  size_t marking_initiating_used_threshold =
+    (_g1->capacity() / 100) * InitiatingHeapOccupancyPercent;
 
-
-    if (!_g1->mark_in_progress() && !_last_full_young_gc) {
-      assert(!last_pause_included_initial_mark, "invariant");
-      if (cur_used_bytes > min_used_targ &&
-          cur_used_bytes > _prev_collection_pause_used_at_end_bytes) {
+  if (!_g1->mark_in_progress() && !_last_full_young_gc) {
+    assert(!last_pause_included_initial_mark, "invariant");
+    if (cur_used_bytes > marking_initiating_used_threshold) {
+      if (cur_used_bytes > _prev_collection_pause_used_at_end_bytes) {
         assert(!during_initial_mark_pause(), "we should not see this here");
 
+        ergo_verbose3(ErgoConcCycles,
+                      "request concurrent cycle initiation",
+                      ergo_format_reason("occupancy higher than threshold")
+                      ergo_format_byte("occupancy")
+                      ergo_format_byte_perc("threshold"),
+                      cur_used_bytes,
+                      marking_initiating_used_threshold,
+                      (double) InitiatingHeapOccupancyPercent);
+
         // Note: this might have already been set, if during the last
         // pause we decided to start a cycle but at the beginning of
         // this pause we decided to postpone it. That's OK.
         set_initiate_conc_mark_if_possible();
+      } else {
+        ergo_verbose2(ErgoConcCycles,
+                  "do not request concurrent cycle initiation",
+                  ergo_format_reason("occupancy lower than previous occupancy")
+                  ergo_format_byte("occupancy")
+                  ergo_format_byte("previous occupancy"),
+                  cur_used_bytes,
+                  _prev_collection_pause_used_at_end_bytes);
       }
     }
-
-    _prev_collection_pause_used_at_end_bytes = cur_used_bytes;
   }
 
+  _prev_collection_pause_used_at_end_bytes = cur_used_bytes;
+
   _mmu_tracker->add_pause(end_time_sec - elapsed_ms/1000.0,
                           end_time_sec, false);
 
@@ -1256,14 +1281,52 @@ void G1CollectorPolicy::record_collection_pause_end() {
 
   _n_pauses++;
 
+  double ext_root_scan_time = avg_value(_par_last_ext_root_scan_times_ms);
+  double mark_stack_scan_time = avg_value(_par_last_mark_stack_scan_times_ms);
+  double update_rs_time = avg_value(_par_last_update_rs_times_ms);
+  double update_rs_processed_buffers =
+    sum_of_values(_par_last_update_rs_processed_buffers);
+  double scan_rs_time = avg_value(_par_last_scan_rs_times_ms);
+  double obj_copy_time = avg_value(_par_last_obj_copy_times_ms);
+  double termination_time = avg_value(_par_last_termination_times_ms);
+
+  double parallel_known_time = update_rs_time +
+                               ext_root_scan_time +
+                               mark_stack_scan_time +
+                               scan_rs_time +
+                               obj_copy_time +
+                               termination_time;
+
+  double parallel_other_time = _cur_collection_par_time_ms - parallel_known_time;
+
+  PauseSummary* summary = _summary;
+
   if (update_stats) {
-    _recent_CH_strong_roots_times_ms->add(_cur_CH_strong_roots_dur_ms);
-    _recent_G1_strong_roots_times_ms->add(_cur_G1_strong_roots_dur_ms);
-    _recent_evac_times_ms->add(evac_ms);
+    _recent_rs_scan_times_ms->add(scan_rs_time);
     _recent_pause_times_ms->add(elapsed_ms);
-
     _recent_rs_sizes->add(rs_size);
 
+    MainBodySummary* body_summary = summary->main_body_summary();
+    guarantee(body_summary != NULL, "should not be null!");
+
+    if (_satb_drain_time_set)
+      body_summary->record_satb_drain_time_ms(_cur_satb_drain_time_ms);
+    else
+      body_summary->record_satb_drain_time_ms(0.0);
+
+    body_summary->record_ext_root_scan_time_ms(ext_root_scan_time);
+    body_summary->record_mark_stack_scan_time_ms(mark_stack_scan_time);
+    body_summary->record_update_rs_time_ms(update_rs_time);
+    body_summary->record_scan_rs_time_ms(scan_rs_time);
+    body_summary->record_obj_copy_time_ms(obj_copy_time);
+    if (parallel) {
+      body_summary->record_parallel_time_ms(_cur_collection_par_time_ms);
+      body_summary->record_clear_ct_time_ms(_cur_clear_ct_time_ms);
+      body_summary->record_termination_time_ms(termination_time);
+      body_summary->record_parallel_other_time_ms(parallel_other_time);
+    }
+    body_summary->record_mark_closure_time_ms(_mark_closure_time_ms);
+
     // We exempt parallel collection from this check because Alloc Buffer
     // fragmentation can produce negative collections.  Same with evac
     // failure.
@@ -1328,56 +1391,12 @@ void G1CollectorPolicy::record_collection_pause_end() {
     gclog_or_tty->print_cr("   Recording collection pause(%d)", _n_pauses);
   }
 
-  PauseSummary* summary = _summary;
-
-  double ext_root_scan_time = avg_value(_par_last_ext_root_scan_times_ms);
-  double mark_stack_scan_time = avg_value(_par_last_mark_stack_scan_times_ms);
-  double update_rs_time = avg_value(_par_last_update_rs_times_ms);
-  double update_rs_processed_buffers =
-    sum_of_values(_par_last_update_rs_processed_buffers);
-  double scan_rs_time = avg_value(_par_last_scan_rs_times_ms);
-  double obj_copy_time = avg_value(_par_last_obj_copy_times_ms);
-  double termination_time = avg_value(_par_last_termination_times_ms);
-
-  double parallel_other_time = _cur_collection_par_time_ms -
-    (update_rs_time + ext_root_scan_time + mark_stack_scan_time +
-     scan_rs_time + obj_copy_time + termination_time);
-  if (update_stats) {
-    MainBodySummary* body_summary = summary->main_body_summary();
-    guarantee(body_summary != NULL, "should not be null!");
-
-    if (_satb_drain_time_set)
-      body_summary->record_satb_drain_time_ms(_cur_satb_drain_time_ms);
-    else
-      body_summary->record_satb_drain_time_ms(0.0);
-    body_summary->record_ext_root_scan_time_ms(ext_root_scan_time);
-    body_summary->record_mark_stack_scan_time_ms(mark_stack_scan_time);
-    body_summary->record_update_rs_time_ms(update_rs_time);
-    body_summary->record_scan_rs_time_ms(scan_rs_time);
-    body_summary->record_obj_copy_time_ms(obj_copy_time);
-    if (parallel) {
-      body_summary->record_parallel_time_ms(_cur_collection_par_time_ms);
-      body_summary->record_clear_ct_time_ms(_cur_clear_ct_time_ms);
-      body_summary->record_termination_time_ms(termination_time);
-      body_summary->record_parallel_other_time_ms(parallel_other_time);
-    }
-    body_summary->record_mark_closure_time_ms(_mark_closure_time_ms);
-  }
-
   if (G1PolicyVerbose > 1) {
     gclog_or_tty->print_cr("      ET: %10.6f ms           (avg: %10.6f ms)\n"
-                           "        CH Strong: %10.6f ms    (avg: %10.6f ms)\n"
-                           "        G1 Strong: %10.6f ms    (avg: %10.6f ms)\n"
-                           "        Evac:      %10.6f ms    (avg: %10.6f ms)\n"
                            "       ET-RS:  %10.6f ms      (avg: %10.6f ms)\n"
                            "      |RS|: " SIZE_FORMAT,
                            elapsed_ms, recent_avg_time_for_pauses_ms(),
-                           _cur_CH_strong_roots_dur_ms, recent_avg_time_for_CH_strong_ms(),
-                           _cur_G1_strong_roots_dur_ms, recent_avg_time_for_G1_strong_ms(),
-                           evac_ms, recent_avg_time_for_evac_ms(),
-                           scan_rs_time,
-                           recent_avg_time_for_pauses_ms() -
-                           recent_avg_time_for_G1_strong_ms(),
+                           scan_rs_time, recent_avg_time_for_rs_scan_ms(),
                            rs_size);
 
     gclog_or_tty->print_cr("       Used at start: " SIZE_FORMAT"K"
@@ -1438,7 +1457,7 @@ void G1CollectorPolicy::record_collection_pause_end() {
       }
       print_par_stats(2, "GC Worker Times", _par_last_gc_worker_times_ms);
 
-      print_stats(2, "Other", parallel_other_time);
+      print_stats(2, "Parallel Other", parallel_other_time);
       print_stats(1, "Clear CT", _cur_clear_ct_time_ms);
     } else {
       print_stats(1, "Update RS", update_rs_time);
@@ -1499,24 +1518,52 @@ void G1CollectorPolicy::record_collection_pause_end() {
     new_in_marking_window_im = true;
   }
 
-  if (in_young_gc_mode()) {
-    if (_last_full_young_gc) {
-      set_full_young_gcs(false);
-      _last_full_young_gc = false;
-    }
-
-    if ( !_last_young_gc_full ) {
-      if ( _should_revert_to_full_young_gcs ||
-           _known_garbage_ratio < 0.05 ||
-           (adaptive_young_list_length() &&
-           (get_gc_eff_factor() * cur_efficiency < predict_young_gc_eff())) ) {
-        set_full_young_gcs(true);
-      }
+  if (_last_full_young_gc) {
+    ergo_verbose2(ErgoPartiallyYoungGCs,
+                  "start partially-young GCs",
+                  ergo_format_byte_perc("known garbage"),
+                  _known_garbage_bytes, _known_garbage_ratio * 100.0);
+    set_full_young_gcs(false);
+    _last_full_young_gc = false;
+  }
+
+  if ( !_last_young_gc_full ) {
+    if (_should_revert_to_full_young_gcs) {
+      ergo_verbose2(ErgoPartiallyYoungGCs,
+                    "end partially-young GCs",
+                    ergo_format_reason("partially-young GCs end requested")
+                    ergo_format_byte_perc("known garbage"),
+                    _known_garbage_bytes, _known_garbage_ratio * 100.0);
+      set_full_young_gcs(true);
+    } else if (_known_garbage_ratio < 0.05) {
+      ergo_verbose3(ErgoPartiallyYoungGCs,
+               "end partially-young GCs",
+               ergo_format_reason("known garbage percent lower than threshold")
+               ergo_format_byte_perc("known garbage")
+               ergo_format_perc("threshold"),
+               _known_garbage_bytes, _known_garbage_ratio * 100.0,
+               0.05 * 100.0);
+      set_full_young_gcs(true);
+    } else if (adaptive_young_list_length() &&
+              (get_gc_eff_factor() * cur_efficiency < predict_young_gc_eff())) {
+      ergo_verbose5(ErgoPartiallyYoungGCs,
+                    "end partially-young GCs",
+                    ergo_format_reason("current GC efficiency lower than "
+                                       "predicted fully-young GC efficiency")
+                    ergo_format_double("GC efficiency factor")
+                    ergo_format_double("current GC efficiency")
+                    ergo_format_double("predicted fully-young GC efficiency")
+                    ergo_format_byte_perc("known garbage"),
+                    get_gc_eff_factor(), cur_efficiency,
+                    predict_young_gc_eff(),
+                    _known_garbage_bytes, _known_garbage_ratio * 100.0);
+      set_full_young_gcs(true);
     }
-    _should_revert_to_full_young_gcs = false;
+  }
+  _should_revert_to_full_young_gcs = false;
 
-    if (_last_young_gc_full && !_during_marking)
-      _young_gc_eff_seq->add(cur_efficiency);
+  if (_last_young_gc_full && !_during_marking) {
+    _young_gc_eff_seq->add(cur_efficiency);
   }
 
   _short_lived_surv_rate_group->start_adding_regions();
@@ -1600,8 +1647,8 @@ void G1CollectorPolicy::record_collection_pause_end() {
 
     double survival_ratio = 0.0;
     if (_bytes_in_collection_set_before_gc > 0) {
-      survival_ratio = (double) bytes_in_to_space_during_gc() /
-        (double) _bytes_in_collection_set_before_gc;
+      survival_ratio = (double) _bytes_copied_during_gc /
+                                   (double) _bytes_in_collection_set_before_gc;
     }
 
     _pending_cards_seq->add((double) _pending_cards);
@@ -1664,8 +1711,7 @@ void G1CollectorPolicy::record_collection_pause_end() {
   _in_marking_window = new_in_marking_window;
   _in_marking_window_im = new_in_marking_window_im;
   _free_regions_at_end_of_collection = _g1->free_regions();
-  calculate_young_list_min_length();
-  calculate_young_list_target_length();
+  update_young_list_target_length();
 
   // Note that _mmu_tracker->max_gc_time() returns the time in seconds.
   double update_rs_time_goal_ms = _mmu_tracker->max_gc_time() * MILLIUNITS * G1RSetUpdatingPauseTimePercent / 100.0;
@@ -1686,20 +1732,26 @@ void G1CollectorPolicy::print_heap_transition() {
     size_t used_before_gc = _cur_collection_pause_used_at_start_bytes;
     size_t used = _g1->used();
     size_t capacity = _g1->capacity();
+    size_t eden_capacity =
+      (_young_list_target_length * HeapRegion::GrainBytes) - survivor_bytes;
 
     gclog_or_tty->print_cr(
-         "   [Eden: "EXT_SIZE_FORMAT"->"EXT_SIZE_FORMAT" "
-             "Survivors: "EXT_SIZE_FORMAT"->"EXT_SIZE_FORMAT" "
-             "Heap: "EXT_SIZE_FORMAT"("EXT_SIZE_FORMAT")->"
-                     EXT_SIZE_FORMAT"("EXT_SIZE_FORMAT")]",
-             EXT_SIZE_PARAMS(_eden_bytes_before_gc),
-               EXT_SIZE_PARAMS(eden_bytes),
-             EXT_SIZE_PARAMS(_survivor_bytes_before_gc),
-               EXT_SIZE_PARAMS(survivor_bytes),
-             EXT_SIZE_PARAMS(used_before_gc),
-             EXT_SIZE_PARAMS(_capacity_before_gc),
-               EXT_SIZE_PARAMS(used),
-               EXT_SIZE_PARAMS(capacity));
+      "   [Eden: "EXT_SIZE_FORMAT"("EXT_SIZE_FORMAT")->"EXT_SIZE_FORMAT"("EXT_SIZE_FORMAT") "
+      "Survivors: "EXT_SIZE_FORMAT"->"EXT_SIZE_FORMAT" "
+      "Heap: "EXT_SIZE_FORMAT"("EXT_SIZE_FORMAT")->"
+      EXT_SIZE_FORMAT"("EXT_SIZE_FORMAT")]",
+      EXT_SIZE_PARAMS(_eden_bytes_before_gc),
+      EXT_SIZE_PARAMS(_prev_eden_capacity),
+      EXT_SIZE_PARAMS(eden_bytes),
+      EXT_SIZE_PARAMS(eden_capacity),
+      EXT_SIZE_PARAMS(_survivor_bytes_before_gc),
+      EXT_SIZE_PARAMS(survivor_bytes),
+      EXT_SIZE_PARAMS(used_before_gc),
+      EXT_SIZE_PARAMS(_capacity_before_gc),
+      EXT_SIZE_PARAMS(used),
+      EXT_SIZE_PARAMS(capacity));
+
+    _prev_eden_capacity = eden_capacity;
   } else if (PrintGC) {
     _g1->print_size_transition(gclog_or_tty,
                                _cur_collection_pause_used_at_start_bytes,
@@ -1941,18 +1993,14 @@ void G1CollectorPolicy::check_if_region_is_too_expensive(double
   // I don't think we need to do this when in young GC mode since
   // marking will be initiated next time we hit the soft limit anyway...
   if (predicted_time_ms > _expensive_region_limit_ms) {
-    if (!in_young_gc_mode()) {
-        set_full_young_gcs(true);
-        // We might want to do something different here. However,
-        // right now we don't support the non-generational G1 mode
-        // (and in fact we are planning to remove the associated code,
-        // see CR 6814390). So, let's leave it as is and this will be
-        // removed some time in the future
-        ShouldNotReachHere();
-        set_during_initial_mark_pause();
-    } else
-      // no point in doing another partial one
-      _should_revert_to_full_young_gcs = true;
+    ergo_verbose2(ErgoPartiallyYoungGCs,
+              "request partially-young GCs end",
+              ergo_format_reason("predicted region time higher than threshold")
+              ergo_format_ms("predicted region time")
+              ergo_format_ms("threshold"),
+              predicted_time_ms, _expensive_region_limit_ms);
+    // no point in doing another partial one
+    _should_revert_to_full_young_gcs = true;
   }
 }
 
@@ -1967,38 +2015,27 @@ void G1CollectorPolicy::update_recent_gc_times(double end_time_sec,
 }
 
 double G1CollectorPolicy::recent_avg_time_for_pauses_ms() {
-  if (_recent_pause_times_ms->num() == 0) return (double) MaxGCPauseMillis;
-  else return _recent_pause_times_ms->avg();
-}
-
-double G1CollectorPolicy::recent_avg_time_for_CH_strong_ms() {
-  if (_recent_CH_strong_roots_times_ms->num() == 0)
-    return (double)MaxGCPauseMillis/3.0;
-  else return _recent_CH_strong_roots_times_ms->avg();
+  if (_recent_pause_times_ms->num() == 0) {
+    return (double) MaxGCPauseMillis;
+  }
+  return _recent_pause_times_ms->avg();
 }
 
-double G1CollectorPolicy::recent_avg_time_for_G1_strong_ms() {
-  if (_recent_G1_strong_roots_times_ms->num() == 0)
+double G1CollectorPolicy::recent_avg_time_for_rs_scan_ms() {
+  if (_recent_rs_scan_times_ms->num() == 0) {
     return (double)MaxGCPauseMillis/3.0;
-  else return _recent_G1_strong_roots_times_ms->avg();
-}
-
-double G1CollectorPolicy::recent_avg_time_for_evac_ms() {
-  if (_recent_evac_times_ms->num() == 0) return (double)MaxGCPauseMillis/3.0;
-  else return _recent_evac_times_ms->avg();
+  }
+  return _recent_rs_scan_times_ms->avg();
 }
 
 int G1CollectorPolicy::number_of_recent_gcs() {
-  assert(_recent_CH_strong_roots_times_ms->num() ==
-         _recent_G1_strong_roots_times_ms->num(), "Sequence out of sync");
-  assert(_recent_G1_strong_roots_times_ms->num() ==
-         _recent_evac_times_ms->num(), "Sequence out of sync");
-  assert(_recent_evac_times_ms->num() ==
+  assert(_recent_rs_scan_times_ms->num() ==
          _recent_pause_times_ms->num(), "Sequence out of sync");
   assert(_recent_pause_times_ms->num() ==
          _recent_CS_bytes_used_before->num(), "Sequence out of sync");
   assert(_recent_CS_bytes_used_before->num() ==
          _recent_CS_bytes_surviving->num(), "Sequence out of sync");
+
   return _recent_pause_times_ms->num();
 }
 
@@ -2071,7 +2108,9 @@ G1CollectorPolicy::conservative_avg_survival_fraction_work(double avg,
 }
 
 size_t G1CollectorPolicy::expansion_amount() {
-  if ((recent_avg_pause_time_ratio() * 100.0) > _gc_overhead_perc) {
+  double recent_gc_overhead = recent_avg_pause_time_ratio() * 100.0;
+  double threshold = _gc_overhead_perc;
+  if (recent_gc_overhead > threshold) {
     // We will double the existing space, or take
     // G1ExpandByPercentOfAvailable % of the available expansion
     // space, whichever is smaller, bounded below by a minimum
@@ -2086,20 +2125,19 @@ size_t G1CollectorPolicy::expansion_amount() {
     expand_bytes = MIN2(expand_bytes_via_pct, committed_bytes);
     expand_bytes = MAX2(expand_bytes, min_expand_bytes);
     expand_bytes = MIN2(expand_bytes, uncommitted_bytes);
-    if (G1PolicyVerbose > 1) {
-      gclog_or_tty->print("Decided to expand: ratio = %5.2f, "
-                 "committed = %d%s, uncommited = %d%s, via pct = %d%s.\n"
-                 "                   Answer = %d.\n",
-                 recent_avg_pause_time_ratio(),
-                 byte_size_in_proper_unit(committed_bytes),
-                 proper_unit_for_byte_size(committed_bytes),
-                 byte_size_in_proper_unit(uncommitted_bytes),
-                 proper_unit_for_byte_size(uncommitted_bytes),
-                 byte_size_in_proper_unit(expand_bytes_via_pct),
-                 proper_unit_for_byte_size(expand_bytes_via_pct),
-                 byte_size_in_proper_unit(expand_bytes),
-                 proper_unit_for_byte_size(expand_bytes));
-    }
+
+    ergo_verbose5(ErgoHeapSizing,
+                  "attempt heap expansion",
+                  ergo_format_reason("recent GC overhead higher than "
+                                     "threshold after GC")
+                  ergo_format_perc("recent GC overhead")
+                  ergo_format_perc("threshold")
+                  ergo_format_byte("uncommitted")
+                  ergo_format_byte_perc("calculated expansion amount"),
+                  recent_gc_overhead, threshold,
+                  uncommitted_bytes,
+                  expand_bytes_via_pct, (double) G1ExpandByPercentOfAvailable);
+
     return expand_bytes;
   } else {
     return 0;
@@ -2322,8 +2360,7 @@ void G1CollectorPolicy::print_yg_surv_rate_info() const {
 #endif // PRODUCT
 }
 
-void
-G1CollectorPolicy::update_region_num(bool young) {
+void G1CollectorPolicy::update_region_num(bool young) {
   if (young) {
     ++_region_num_young;
   } else {
@@ -2355,7 +2392,7 @@ size_t G1CollectorPolicy::max_regions(int purpose) {
   };
 }
 
-void G1CollectorPolicy::calculate_max_gc_locker_expansion() {
+void G1CollectorPolicy::update_max_gc_locker_expansion() {
   size_t expansion_region_num = 0;
   if (GCLockerEdenExpansionPercent > 0) {
     double perc = (double) GCLockerEdenExpansionPercent / 100.0;
@@ -2371,20 +2408,15 @@ void G1CollectorPolicy::calculate_max_gc_locker_expansion() {
 }
 
 // Calculates survivor space parameters.
-void G1CollectorPolicy::calculate_survivors_policy()
-{
-  if (G1FixedSurvivorSpaceSize == 0) {
-    _max_survivor_regions = _young_list_target_length / SurvivorRatio;
-  } else {
-    _max_survivor_regions = G1FixedSurvivorSpaceSize / HeapRegion::GrainBytes;
-  }
-
-  if (G1FixedTenuringThreshold) {
-    _tenuring_threshold = MaxTenuringThreshold;
-  } else {
-    _tenuring_threshold = _survivors_age_table.compute_tenuring_threshold(
+void G1CollectorPolicy::update_survivors_policy() {
+  double max_survivor_regions_d =
+                 (double) _young_list_target_length / (double) SurvivorRatio;
+  // We use ceiling so that if max_survivor_regions_d is > 0.0 (but
+  // smaller than 1.0) we'll get 1.
+  _max_survivor_regions = (size_t) ceil(max_survivor_regions_d);
+
+  _tenuring_threshold = _survivors_age_table.compute_tenuring_threshold(
         HeapRegion::GrainWords * _max_survivor_regions);
-  }
 }
 
 #ifndef PRODUCT
@@ -2409,13 +2441,23 @@ bool G1CollectorPolicy_BestRegionsFirst::assertMarkedBytesDataOK() {
 }
 #endif
 
-bool
-G1CollectorPolicy::force_initial_mark_if_outside_cycle() {
+bool G1CollectorPolicy::force_initial_mark_if_outside_cycle(
+                                                     GCCause::Cause gc_cause) {
   bool during_cycle = _g1->concurrent_mark()->cmThread()->during_cycle();
   if (!during_cycle) {
+    ergo_verbose1(ErgoConcCycles,
+                  "request concurrent cycle initiation",
+                  ergo_format_reason("requested by GC cause")
+                  ergo_format_str("GC cause"),
+                  GCCause::to_string(gc_cause));
     set_initiate_conc_mark_if_possible();
     return true;
   } else {
+    ergo_verbose1(ErgoConcCycles,
+                  "do not request concurrent cycle initiation",
+                  ergo_format_reason("concurrent cycle already in progress")
+                  ergo_format_str("GC cause"),
+                  GCCause::to_string(gc_cause));
     return false;
   }
 }
@@ -2447,6 +2489,10 @@ G1CollectorPolicy::decide_on_conc_mark_initiation() {
       // And we can now clear initiate_conc_mark_if_possible() as
       // we've already acted on it.
       clear_initiate_conc_mark_if_possible();
+
+      ergo_verbose0(ErgoConcCycles,
+                  "initiate concurrent cycle",
+                  ergo_format_reason("concurrent cycle initiation requested"));
     } else {
       // The concurrent marking thread is still finishing up the
       // previous cycle. If we start one right now the two cycles
@@ -2460,6 +2506,9 @@ G1CollectorPolicy::decide_on_conc_mark_initiation() {
       // and, if it's in a yield point, it's waiting for us to
       // finish. So, at this point we will not start a cycle and we'll
       // let the concurrent marking thread complete the last one.
+      ergo_verbose0(ErgoConcCycles,
+                    "do not initiate concurrent cycle",
+                    ergo_format_reason("concurrent cycle already in progress"));
     }
   }
 }
@@ -2659,9 +2708,7 @@ void G1CollectorPolicy::start_incremental_cset_building() {
   _inc_cset_size = 0;
   _inc_cset_bytes_used_before = 0;
 
-  if (in_young_gc_mode()) {
-    _inc_cset_young_index = 0;
-  }
+  _inc_cset_young_index = 0;
 
   _inc_cset_max_finger = 0;
   _inc_cset_recorded_young_bytes = 0;
@@ -2852,6 +2899,8 @@ G1CollectorPolicy_BestRegionsFirst::choose_collection_set(
   // Set this here - in case we're not doing young collections.
   double non_young_start_time_sec = os::elapsedTime();
 
+  YoungList* young_list = _g1->young_list();
+
   start_recording_regions();
 
   guarantee(target_pause_time_ms > 0.0,
@@ -2864,116 +2913,106 @@ G1CollectorPolicy_BestRegionsFirst::choose_collection_set(
 
   double time_remaining_ms = target_pause_time_ms - base_time_ms;
 
+  ergo_verbose3(ErgoCSetConstruction | ErgoHigh,
+                "start choosing CSet",
+                ergo_format_ms("predicted base time")
+                ergo_format_ms("remaining time")
+                ergo_format_ms("target pause time"),
+                base_time_ms, time_remaining_ms, target_pause_time_ms);
+
   // the 10% and 50% values are arbitrary...
-  if (time_remaining_ms < 0.10 * target_pause_time_ms) {
+  double threshold = 0.10 * target_pause_time_ms;
+  if (time_remaining_ms < threshold) {
+    double prev_time_remaining_ms = time_remaining_ms;
     time_remaining_ms = 0.50 * target_pause_time_ms;
     _within_target = false;
+    ergo_verbose3(ErgoCSetConstruction,
+                  "adjust remaining time",
+                  ergo_format_reason("remaining time lower than threshold")
+                  ergo_format_ms("remaining time")
+                  ergo_format_ms("threshold")
+                  ergo_format_ms("adjusted remaining time"),
+                  prev_time_remaining_ms, threshold, time_remaining_ms);
   } else {
     _within_target = true;
   }
 
-  // We figure out the number of bytes available for future to-space.
-  // For new regions without marking information, we must assume the
-  // worst-case of complete survival.  If we have marking information for a
-  // region, we can bound the amount of live data.  We can add a number of
-  // such regions, as long as the sum of the live data bounds does not
-  // exceed the available evacuation space.
-  size_t max_live_bytes = _g1->free_regions() * HeapRegion::GrainBytes;
+  size_t expansion_bytes = _g1->expansion_regions() * HeapRegion::GrainBytes;
 
-  size_t expansion_bytes =
-    _g1->expansion_regions() * HeapRegion::GrainBytes;
+  HeapRegion* hr;
+  double young_start_time_sec = os::elapsedTime();
 
   _collection_set_bytes_used_before = 0;
   _collection_set_size = 0;
+  _young_cset_length  = 0;
+  _last_young_gc_full = full_young_gcs() ? true : false;
 
-  // Adjust for expansion and slop.
-  max_live_bytes = max_live_bytes + expansion_bytes;
-
-  HeapRegion* hr;
-  if (in_young_gc_mode()) {
-    double young_start_time_sec = os::elapsedTime();
-
-    if (G1PolicyVerbose > 0) {
-      gclog_or_tty->print_cr("Adding %d young regions to the CSet",
-                    _g1->young_list()->length());
-    }
-
-    _young_cset_length  = 0;
-    _last_young_gc_full = full_young_gcs() ? true : false;
-
-    if (_last_young_gc_full)
-      ++_full_young_pause_num;
-    else
-      ++_partial_young_pause_num;
-
-    // The young list is laid with the survivor regions from the previous
-    // pause are appended to the RHS of the young list, i.e.
-    //   [Newly Young Regions ++ Survivors from last pause].
-
-    hr = _g1->young_list()->first_survivor_region();
-    while (hr != NULL) {
-      assert(hr->is_survivor(), "badly formed young list");
-      hr->set_young();
-      hr = hr->get_next_young_region();
-    }
-
-    // Clear the fields that point to the survivor list - they are
-    // all young now.
-    _g1->young_list()->clear_survivors();
-
-    if (_g1->mark_in_progress())
-      _g1->concurrent_mark()->register_collection_set_finger(_inc_cset_max_finger);
+  if (_last_young_gc_full) {
+    ++_full_young_pause_num;
+  } else {
+    ++_partial_young_pause_num;
+  }
 
-    _young_cset_length = _inc_cset_young_index;
-    _collection_set = _inc_cset_head;
-    _collection_set_size = _inc_cset_size;
-    _collection_set_bytes_used_before = _inc_cset_bytes_used_before;
+  // The young list is laid with the survivor regions from the previous
+  // pause are appended to the RHS of the young list, i.e.
+  //   [Newly Young Regions ++ Survivors from last pause].
 
-    // For young regions in the collection set, we assume the worst
-    // case of complete survival
-    max_live_bytes -= _inc_cset_size * HeapRegion::GrainBytes;
+  size_t survivor_region_num = young_list->survivor_length();
+  size_t eden_region_num = young_list->length() - survivor_region_num;
+  size_t old_region_num = 0;
+  hr = young_list->first_survivor_region();
+  while (hr != NULL) {
+    assert(hr->is_survivor(), "badly formed young list");
+    hr->set_young();
+    hr = hr->get_next_young_region();
+  }
 
-    time_remaining_ms -= _inc_cset_predicted_elapsed_time_ms;
-    predicted_pause_time_ms += _inc_cset_predicted_elapsed_time_ms;
+  // Clear the fields that point to the survivor list - they are all young now.
+  young_list->clear_survivors();
 
-    // The number of recorded young regions is the incremental
-    // collection set's current size
-    set_recorded_young_regions(_inc_cset_size);
-    set_recorded_rs_lengths(_inc_cset_recorded_rs_lengths);
-    set_recorded_young_bytes(_inc_cset_recorded_young_bytes);
+  if (_g1->mark_in_progress())
+    _g1->concurrent_mark()->register_collection_set_finger(_inc_cset_max_finger);
+
+  _young_cset_length = _inc_cset_young_index;
+  _collection_set = _inc_cset_head;
+  _collection_set_size = _inc_cset_size;
+  _collection_set_bytes_used_before = _inc_cset_bytes_used_before;
+  time_remaining_ms -= _inc_cset_predicted_elapsed_time_ms;
+  predicted_pause_time_ms += _inc_cset_predicted_elapsed_time_ms;
+
+  ergo_verbose3(ErgoCSetConstruction | ErgoHigh,
+                "add young regions to CSet",
+                ergo_format_region("eden")
+                ergo_format_region("survivors")
+                ergo_format_ms("predicted young region time"),
+                eden_region_num, survivor_region_num,
+                _inc_cset_predicted_elapsed_time_ms);
+
+  // The number of recorded young regions is the incremental
+  // collection set's current size
+  set_recorded_young_regions(_inc_cset_size);
+  set_recorded_rs_lengths(_inc_cset_recorded_rs_lengths);
+  set_recorded_young_bytes(_inc_cset_recorded_young_bytes);
 #if PREDICTIONS_VERBOSE
-    set_predicted_bytes_to_copy(_inc_cset_predicted_bytes_to_copy);
+  set_predicted_bytes_to_copy(_inc_cset_predicted_bytes_to_copy);
 #endif // PREDICTIONS_VERBOSE
 
-    if (G1PolicyVerbose > 0) {
-      gclog_or_tty->print_cr("  Added " PTR_FORMAT " Young Regions to CS.",
-                             _inc_cset_size);
-      gclog_or_tty->print_cr("    (" SIZE_FORMAT " KB left in heap.)",
-                            max_live_bytes/K);
-    }
-
-    assert(_inc_cset_size == _g1->young_list()->length(), "Invariant");
+  assert(_inc_cset_size == young_list->length(), "Invariant");
 
-    double young_end_time_sec = os::elapsedTime();
-    _recorded_young_cset_choice_time_ms =
-      (young_end_time_sec - young_start_time_sec) * 1000.0;
+  double young_end_time_sec = os::elapsedTime();
+  _recorded_young_cset_choice_time_ms =
+    (young_end_time_sec - young_start_time_sec) * 1000.0;
 
-    // We are doing young collections so reset this.
-    non_young_start_time_sec = young_end_time_sec;
-
-    // Note we can use either _collection_set_size or
-    // _young_cset_length here
-    if (_collection_set_size > 0 && _last_young_gc_full) {
-      // don't bother adding more regions...
-      goto choose_collection_set_end;
-    }
-  }
+  // We are doing young collections so reset this.
+  non_young_start_time_sec = young_end_time_sec;
 
-  if (!in_young_gc_mode() || !full_young_gcs()) {
+  if (!full_young_gcs()) {
     bool should_continue = true;
     NumberSeq seq;
     double avg_prediction = 100000000000000000.0; // something very large
 
+    size_t prev_collection_set_size = _collection_set_size;
+    double prev_predicted_pause_time_ms = predicted_pause_time_ms;
     do {
       hr = _collectionSetChooser->getNextMarkedRegion(time_remaining_ms,
                                                       avg_prediction);
@@ -2983,32 +3022,76 @@ G1CollectorPolicy_BestRegionsFirst::choose_collection_set(
         predicted_pause_time_ms += predicted_time_ms;
         add_to_collection_set(hr);
         record_non_young_cset_region(hr);
-        max_live_bytes -= MIN2(hr->max_live_bytes(), max_live_bytes);
-        if (G1PolicyVerbose > 0) {
-          gclog_or_tty->print_cr("    (" SIZE_FORMAT " KB left in heap.)",
-                        max_live_bytes/K);
-        }
         seq.add(predicted_time_ms);
         avg_prediction = seq.avg() + seq.sd();
       }
-      should_continue =
-        ( hr != NULL) &&
-        ( (adaptive_young_list_length()) ? time_remaining_ms > 0.0
-          : _collection_set_size < _young_list_fixed_length );
+
+      should_continue = true;
+      if (hr == NULL) {
+        // No need for an ergo verbose message here,
+        // getNextMarkRegion() does this when it returns NULL.
+        should_continue = false;
+      } else {
+        if (adaptive_young_list_length()) {
+          if (time_remaining_ms < 0.0) {
+            ergo_verbose1(ErgoCSetConstruction,
+                          "stop adding old regions to CSet",
+                          ergo_format_reason("remaining time is lower than 0")
+                          ergo_format_ms("remaining time"),
+                          time_remaining_ms);
+            should_continue = false;
+          }
+        } else {
+          if (_collection_set_size >= _young_list_fixed_length) {
+            ergo_verbose2(ErgoCSetConstruction,
+                          "stop adding old regions to CSet",
+                          ergo_format_reason("CSet length reached target")
+                          ergo_format_region("CSet")
+                          ergo_format_region("young target"),
+                          _collection_set_size, _young_list_fixed_length);
+            should_continue = false;
+          }
+        }
+      }
     } while (should_continue);
 
     if (!adaptive_young_list_length() &&
-        _collection_set_size < _young_list_fixed_length)
+        _collection_set_size < _young_list_fixed_length) {
+      ergo_verbose2(ErgoCSetConstruction,
+                    "request partially-young GCs end",
+                    ergo_format_reason("CSet length lower than target")
+                    ergo_format_region("CSet")
+                    ergo_format_region("young target"),
+                    _collection_set_size, _young_list_fixed_length);
       _should_revert_to_full_young_gcs  = true;
+    }
+
+    old_region_num = _collection_set_size - prev_collection_set_size;
+
+    ergo_verbose2(ErgoCSetConstruction | ErgoHigh,
+                  "add old regions to CSet",
+                  ergo_format_region("old")
+                  ergo_format_ms("predicted old region time"),
+                  old_region_num,
+                  predicted_pause_time_ms - prev_predicted_pause_time_ms);
   }
 
-choose_collection_set_end:
   stop_incremental_cset_building();
 
   count_CS_bytes_used();
 
   end_recording_regions();
 
+  ergo_verbose5(ErgoCSetConstruction,
+                "finish choosing CSet",
+                ergo_format_region("eden")
+                ergo_format_region("survivors")
+                ergo_format_region("old")
+                ergo_format_ms("predicted pause time")
+                ergo_format_ms("target pause time"),
+                eden_region_num, survivor_region_num, old_region_num,
+                predicted_pause_time_ms, target_pause_time_ms);
+
   double non_young_end_time_sec = os::elapsedTime();
   _recorded_non_young_cset_choice_time_ms =
     (non_young_end_time_sec - non_young_start_time_sec) * 1000.0;
@@ -3020,12 +3103,6 @@ void G1CollectorPolicy_BestRegionsFirst::record_full_collection_end() {
 }
 
 void G1CollectorPolicy_BestRegionsFirst::
-expand_if_possible(size_t numRegions) {
-  size_t expansion_bytes = numRegions * HeapRegion::GrainBytes;
-  _g1->expand(expansion_bytes);
-}
-
-void G1CollectorPolicy_BestRegionsFirst::
 record_collection_pause_end() {
   G1CollectorPolicy::record_collection_pause_end();
   assert(assertMarkedBytesDataOK(), "Marked regions not OK at pause end.");
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp
index c44f6bb..9dc7349 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -129,15 +129,9 @@ protected:
   jlong  _num_cc_clears;                // number of times the card count cache has been cleared
 #endif
 
-  double _cur_CH_strong_roots_end_sec;
-  double _cur_CH_strong_roots_dur_ms;
-  double _cur_G1_strong_roots_end_sec;
-  double _cur_G1_strong_roots_dur_ms;
-
   // Statistics for recent GC pauses.  See below for how indexed.
-  TruncatedSeq* _recent_CH_strong_roots_times_ms;
-  TruncatedSeq* _recent_G1_strong_roots_times_ms;
-  TruncatedSeq* _recent_evac_times_ms;
+  TruncatedSeq* _recent_rs_scan_times_ms;
+
   // These exclude marking times.
   TruncatedSeq* _recent_pause_times_ms;
   TruncatedSeq* _recent_gc_times_ms;
@@ -147,7 +141,6 @@ protected:
 
   TruncatedSeq* _recent_rs_sizes;
 
-  TruncatedSeq* _concurrent_mark_init_times_ms;
   TruncatedSeq* _concurrent_mark_remark_times_ms;
   TruncatedSeq* _concurrent_mark_cleanup_times_ms;
 
@@ -184,18 +177,15 @@ protected:
   double* _par_last_gc_worker_end_times_ms;
   double* _par_last_gc_worker_times_ms;
 
-  // indicates that we are in young GC mode
-  bool _in_young_gc_mode;
-
   // indicates whether we are in full young or partially young GC mode
   bool _full_young_gcs;
 
   // if true, then it tries to dynamically adjust the length of the
   // young list
   bool _adaptive_young_list_length;
-  size_t _young_list_min_length;
   size_t _young_list_target_length;
   size_t _young_list_fixed_length;
+  size_t _prev_eden_capacity; // used for logging
 
   // The max number of regions we can extend the eden by while the GC
   // locker is active. This should be >= _young_list_target_length;
@@ -217,6 +207,9 @@ protected:
 
   double                _gc_overhead_perc;
 
+  double _reserve_factor;
+  size_t _reserve_regions;
+
   bool during_marking() {
     return _during_marking;
   }
@@ -253,6 +246,10 @@ private:
 
   TruncatedSeq* _max_conc_overhead_seq;
 
+  bool   _using_new_ratio_calculations;
+  size_t _min_desired_young_length; // as set on the command line or default calculations
+  size_t _max_desired_young_length; // as set on the command line or default calculations
+
   size_t _recorded_young_regions;
   size_t _recorded_non_young_regions;
   size_t _recorded_region_num;
@@ -466,12 +463,6 @@ public:
   size_t predict_bytes_to_copy(HeapRegion* hr);
   double predict_region_elapsed_time_ms(HeapRegion* hr, bool young);
 
-    // for use by: calculate_young_list_target_length(rs_length)
-  bool predict_will_fit(size_t young_region_num,
-                        double base_time_ms,
-                        size_t init_free_regions,
-                        double target_pause_time_ms);
-
   void start_recording_regions();
   void record_cset_region_info(HeapRegion* hr, bool young);
   void record_non_young_cset_region(HeapRegion* hr);
@@ -503,7 +494,6 @@ public:
 
   // </NEW PREDICTION>
 
-public:
   void cset_regions_freed() {
     bool propagate = _last_young_gc_full && !_in_marking_window;
     _short_lived_surv_rate_group->all_surviving_words_recorded(propagate);
@@ -533,10 +523,6 @@ public:
     return _mmu_tracker->max_gc_time() * 1000.0;
   }
 
-  double predict_init_time_ms() {
-    return get_new_prediction(_concurrent_mark_init_times_ms);
-  }
-
   double predict_remark_time_ms() {
     return get_new_prediction(_concurrent_mark_remark_times_ms);
   }
@@ -591,13 +577,9 @@ protected:
   int _last_update_rs_processed_buffers;
   double _last_pause_time_ms;
 
-  size_t _bytes_in_to_space_before_gc;
-  size_t _bytes_in_to_space_after_gc;
-  size_t bytes_in_to_space_during_gc() {
-    return
-      _bytes_in_to_space_after_gc - _bytes_in_to_space_before_gc;
-  }
   size_t _bytes_in_collection_set_before_gc;
+  size_t _bytes_copied_during_gc;
+
   // Used to count used bytes in CS.
   friend class CountCSClosure;
 
@@ -692,17 +674,11 @@ protected:
   // The average time in ms per collection pause, averaged over recent pauses.
   double recent_avg_time_for_pauses_ms();
 
-  // The average time in ms for processing CollectedHeap strong roots, per
-  // collection pause, averaged over recent pauses.
-  double recent_avg_time_for_CH_strong_ms();
-
-  // The average time in ms for processing the G1 remembered set, per
-  // pause, averaged over recent pauses.
-  double recent_avg_time_for_G1_strong_ms();
-
-  // The average time in ms for "evacuating followers", per pause, averaged
-  // over recent pauses.
-  double recent_avg_time_for_evac_ms();
+  // The average time in ms for RS scanning, per pause, averaged
+  // over recent pauses. (Note the RS scanning time for a pause
+  // is itself an average of the RS scanning time for each worker
+  // thread.)
+  double recent_avg_time_for_rs_scan_ms();
 
   // The number of "recent" GCs recorded in the number sequences
   int number_of_recent_gcs();
@@ -792,14 +768,45 @@ protected:
   // This set of variables tracks the collector efficiency, in order to
   // determine whether we should initiate a new marking.
   double _cur_mark_stop_world_time_ms;
-  double _mark_init_start_sec;
   double _mark_remark_start_sec;
   double _mark_cleanup_start_sec;
   double _mark_closure_time_ms;
 
-  void   calculate_young_list_min_length();
-  void   calculate_young_list_target_length();
-  void   calculate_young_list_target_length(size_t rs_lengths);
+  // Update the young list target length either by setting it to the
+  // desired fixed value or by calculating it using G1's pause
+  // prediction model. If no rs_lengths parameter is passed, predict
+  // the RS lengths using the prediction model, otherwise use the
+  // given rs_lengths as the prediction.
+  void update_young_list_target_length(size_t rs_lengths = (size_t) -1);
+
+  // Calculate and return the minimum desired young list target
+  // length. This is the minimum desired young list length according
+  // to the user's inputs.
+  size_t calculate_young_list_desired_min_length(size_t base_min_length);
+
+  // Calculate and return the maximum desired young list target
+  // length. This is the maximum desired young list length according
+  // to the user's inputs.
+  size_t calculate_young_list_desired_max_length();
+
+  // Calculate and return the maximum young list target length that
+  // can fit into the pause time goal. The parameters are: rs_lengths
+  // represent the prediction of how large the young RSet lengths will
+  // be, base_min_length is the alreay existing number of regions in
+  // the young list, min_length and max_length are the desired min and
+  // max young list length according to the user's inputs.
+  size_t calculate_young_list_target_length(size_t rs_lengths,
+                                            size_t base_min_length,
+                                            size_t desired_min_length,
+                                            size_t desired_max_length);
+
+  // Check whether a given young length (young_length) fits into the
+  // given target pause time and whether the prediction for the amount
+  // of objects to be copied for the given length will fit into the
+  // given free space (expressed by base_free_regions).  It is used by
+  // calculate_young_list_target_length().
+  bool predict_will_fit(size_t young_length, double base_time_ms,
+                        size_t base_free_regions, double target_pause_time_ms);
 
 public:
 
@@ -811,20 +818,22 @@ public:
     return CollectorPolicy::G1CollectorPolicyKind;
   }
 
-  void check_prediction_validity();
+  // Check the current value of the young list RSet lengths and
+  // compare it against the last prediction. If the current value is
+  // higher, recalculate the young list target length prediction.
+  void revise_young_list_target_length_if_necessary();
 
   size_t bytes_in_collection_set() {
     return _bytes_in_collection_set_before_gc;
   }
 
-  size_t bytes_in_to_space() {
-    return bytes_in_to_space_during_gc();
-  }
-
   unsigned calc_gc_alloc_time_stamp() {
     return _all_pause_times_ms->num() + 1;
   }
 
+  // This should be called after the heap is resized.
+  void record_new_heap_size(size_t new_number_of_regions);
+
 protected:
 
   // Count the number of bytes used in the CS.
@@ -836,6 +845,8 @@ protected:
                                                 size_t max_live_bytes);
   void record_concurrent_mark_cleanup_end_work2();
 
+  void update_young_list_size_using_newratio(size_t number_of_heap_regions);
+
 public:
 
   virtual void init();
@@ -869,9 +880,7 @@ public:
                                              size_t start_used);
 
   // Must currently be called while the world is stopped.
-  virtual void record_concurrent_mark_init_start();
-  virtual void record_concurrent_mark_init_end();
-  void record_concurrent_mark_init_end_pre(double
+  void record_concurrent_mark_init_end(double
                                            mark_init_elapsed_time_ms);
 
   void record_mark_closure_time(double mark_closure_time_ms);
@@ -887,9 +896,6 @@ public:
   virtual void record_concurrent_pause();
   virtual void record_concurrent_pause_end();
 
-  virtual void record_collection_pause_end_CH_strong_roots();
-  virtual void record_collection_pause_end_G1_strong_roots();
-
   virtual void record_collection_pause_end();
   void print_heap_transition();
 
@@ -992,9 +998,16 @@ public:
   }
 #endif
 
-  // Record the fact that "bytes" bytes allocated in a region.
-  void record_before_bytes(size_t bytes);
-  void record_after_bytes(size_t bytes);
+  // Record how much space we copied during a GC. This is typically
+  // called when a GC alloc region is being retired.
+  void record_bytes_copied_during_gc(size_t bytes) {
+    _bytes_copied_during_gc += bytes;
+  }
+
+  // The amount of space we copied during a GC.
+  size_t bytes_copied_during_gc() {
+    return _bytes_copied_during_gc;
+  }
 
   // Choose a new collection set.  Marks the chosen regions as being
   // "in_collection_set", and links them together.  The head and number of
@@ -1072,7 +1085,7 @@ public:
   // new cycle, as long as we are not already in one. It's best if it
   // is called during a safepoint when the test whether a cycle is in
   // progress or not is stable.
-  bool force_initial_mark_if_outside_cycle();
+  bool force_initial_mark_if_outside_cycle(GCCause::Cause gc_cause);
 
   // This is called at the very beginning of an evacuation pause (it
   // has to be the first thing that the pause does). If
@@ -1117,30 +1130,17 @@ public:
   bool is_young_list_full() {
     size_t young_list_length = _g1->young_list()->length();
     size_t young_list_target_length = _young_list_target_length;
-    if (G1FixedEdenSize) {
-      young_list_target_length -= _max_survivor_regions;
-    }
     return young_list_length >= young_list_target_length;
   }
 
   bool can_expand_young_list() {
     size_t young_list_length = _g1->young_list()->length();
     size_t young_list_max_length = _young_list_max_length;
-    if (G1FixedEdenSize) {
-      young_list_max_length -= _max_survivor_regions;
-    }
     return young_list_length < young_list_max_length;
   }
 
   void update_region_num(bool young);
 
-  bool in_young_gc_mode() {
-    return _in_young_gc_mode;
-  }
-  void set_in_young_gc_mode(bool in_young_gc_mode) {
-    _in_young_gc_mode = in_young_gc_mode;
-  }
-
   bool full_young_gcs() {
     return _full_young_gcs;
   }
@@ -1208,10 +1208,6 @@ public:
     return purpose == GCAllocForSurvived;
   }
 
-  inline GCAllocPurpose alternative_purpose(int purpose) {
-    return GCAllocForTenured;
-  }
-
   static const size_t REGIONS_UNLIMITED = ~(size_t)0;
 
   size_t max_regions(int purpose);
@@ -1248,10 +1244,10 @@ public:
     _survivors_age_table.merge_par(age_table);
   }
 
-  void calculate_max_gc_locker_expansion();
+  void update_max_gc_locker_expansion();
 
   // Calculates survivor space parameters.
-  void calculate_survivors_policy();
+  void update_survivors_policy();
 
 };
 
@@ -1278,8 +1274,6 @@ public:
 
 class G1CollectorPolicy_BestRegionsFirst: public G1CollectorPolicy {
   CollectionSetChooser* _collectionSetChooser;
-  // If the estimated is less then desirable, resize if possible.
-  void expand_if_possible(size_t numRegions);
 
   virtual void choose_collection_set(double target_pause_time_ms);
   virtual void record_collection_pause_start(double start_time_sec,
@@ -1313,8 +1307,4 @@ inline double variance(int n, double sum_of_squares, double sum) {
   return (sum_of_squares - 2.0 * avg * sum + n_d * avg * avg) / n_d;
 }
 
-// Local Variables: ***
-// c-indentation-style: gnu ***
-// End: ***
-
 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTORPOLICY_HPP
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1ErgoVerbose.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1ErgoVerbose.cpp
new file mode 100644
index 0000000..dc6b49c
--- /dev/null
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1ErgoVerbose.cpp
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "gc_implementation/g1/g1ErgoVerbose.hpp"
+#include "utilities/ostream.hpp"
+
+ErgoLevel G1ErgoVerbose::_level;
+bool G1ErgoVerbose::_enabled[ErgoHeuristicNum];
+
+void G1ErgoVerbose::initialize() {
+  set_level(ErgoLow);
+  set_enabled(false);
+}
+
+void G1ErgoVerbose::set_level(ErgoLevel level) {
+  _level = level;
+}
+
+void G1ErgoVerbose::set_enabled(ErgoHeuristic n, bool enabled) {
+  assert(0 <= n && n < ErgoHeuristicNum, "pre-condition");
+  _enabled[n] = enabled;
+}
+
+void G1ErgoVerbose::set_enabled(bool enabled) {
+  for (int n = 0; n < ErgoHeuristicNum; n += 1) {
+    set_enabled((ErgoHeuristic) n, enabled);
+  }
+}
+
+const char* G1ErgoVerbose::to_string(int tag) {
+  ErgoHeuristic n = extract_heuristic(tag);
+  switch (n) {
+  case ErgoHeapSizing:            return "Heap Sizing";
+  case ErgoCSetConstruction:      return "CSet Construction";
+  case ErgoConcCycles:            return "Concurrent Cycles";
+  case ErgoPartiallyYoungGCs:     return "Partially-Young GCs";
+  default:
+    ShouldNotReachHere();
+    // Keep the Windows compiler happy
+    return NULL;
+  }
+}
+
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp
new file mode 100644
index 0000000..c170a49
--- /dev/null
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1ErgoVerbose.hpp
@@ -0,0 +1,197 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1ERGOVERBOSE_HPP
+#define SHARE_VM_GC_IMPLEMENTATION_G1_G1ERGOVERBOSE_HPP
+
+#include "memory/allocation.hpp"
+#include "utilities/debug.hpp"
+
+// The log of G1's heuristic decisions comprises of a series of
+// records which have a similar format in order to maintain
+// consistency across records and ultimately easier parsing of the
+// output, if we ever choose to do that. Each record consists of:
+// * A time stamp to be able to easily correlate each record with
+// other events.
+// * A unique string to allow us to easily identify such records.
+// * The name of the heuristic the record corresponds to.
+// * An action string which describes the action that G1 did or is
+// about to do.
+// * An optional reason string which describes the reason for the
+// action.
+// * An optional number of name/value pairs which contributed to the
+// decision to take the action described in the record.
+//
+// Each record is associated with a "tag" which is the combination of
+// the heuristic the record corresponds to, as well as the min level
+// of verboseness at which the record should be printed. The tag is
+// checked against the current settings to determine whether the record
+// should be printed or not.
+
+// The available verboseness levels.
+typedef enum {
+  // Determine which part of the tag is occupied by the level.
+  ErgoLevelShift = 8,
+  ErgoLevelMask = ~((1 << ErgoLevelShift) - 1),
+
+  // ErgoLow is 0 so that we don't have to explicitly or a heuristic
+  // id with ErgoLow to keep its use simpler.
+  ErgoLow = 0,
+  ErgoHigh = 1 << ErgoLevelShift
+} ErgoLevel;
+
+// The available heuristics.
+typedef enum {
+  // Determines which part of the tag is occupied by the heuristic id.
+  ErgoHeuristicMask = ~ErgoLevelMask,
+
+  ErgoHeapSizing = 0,
+  ErgoCSetConstruction,
+  ErgoConcCycles,
+  ErgoPartiallyYoungGCs,
+
+  ErgoHeuristicNum
+} ErgoHeuristic;
+
+class G1ErgoVerbose : AllStatic {
+private:
+  // Determines the minimum verboseness level at which records will be
+  // printed.
+  static ErgoLevel _level;
+  // Determines which heuristics are currently enabled.
+  static bool _enabled[ErgoHeuristicNum];
+
+  static ErgoLevel extract_level(int tag) {
+    return (ErgoLevel) (tag & ErgoLevelMask);
+  }
+
+  static ErgoHeuristic extract_heuristic(int tag) {
+    return (ErgoHeuristic) (tag & ErgoHeuristicMask);
+  }
+
+public:
+  // Needs to be explicitly called at GC initialization.
+  static void initialize();
+
+  static void set_level(ErgoLevel level);
+  static void set_enabled(ErgoHeuristic h, bool enabled);
+  // It is applied to all heuristics.
+  static void set_enabled(bool enabled);
+
+  static bool enabled(int tag) {
+    ErgoLevel level = extract_level(tag);
+    ErgoHeuristic n = extract_heuristic(tag);
+    return level <= _level && _enabled[n];
+  }
+
+  // Extract the heuristic id from the tag and return a string with
+  // its name.
+  static const char* to_string(int tag);
+};
+
+// The macros below generate the format string for values of different
+// types and/or metrics.
+
+// The reason for the action is optional and is handled specially: the
+// reason string is concatenated here so it's not necessary to pass it
+// as a parameter.
+#define ergo_format_reason(_reason_) ", reason: " _reason_
+
+// Single parameter format strings
+#define ergo_format_str(_name_)      ", " _name_ ": %s"
+#define ergo_format_region(_name_)   ", " _name_ ": "SIZE_FORMAT" regions"
+#define ergo_format_byte(_name_)     ", " _name_ ": "SIZE_FORMAT" bytes"
+#define ergo_format_double(_name_)   ", " _name_ ": %1.2f"
+#define ergo_format_perc(_name_)     ", " _name_ ": %1.2f %%"
+#define ergo_format_ms(_name_)       ", " _name_ ": %1.2f ms"
+
+// Double parameter format strings
+#define ergo_format_byte_perc(_name_)                                   \
+                             ", " _name_ ": "SIZE_FORMAT" bytes (%1.2f %%)"
+
+// Generates the format string
+#define ergo_format(_action_, _extra_format_)                   \
+  " %1.3f: [G1Ergonomics (%s) " _action_ _extra_format_ "]"
+
+// Conditionally, prints an ergonomic decision record. _extra_format_
+// is the format string for the optional items we'd like to print
+// (i.e., the decision's reason and any associated values). This
+// string should be built up using the ergo_*_format macros (see
+// above) to ensure consistency.
+//
+// Since we cannot rely on the compiler supporting variable argument
+// macros, this macro accepts a fixed number of arguments and passes
+// them to the print method. For convenience, we have wrapper macros
+// below which take a specific number of arguments and set the rest to
+// a default value.
+#define ergo_verbose_common(_tag_, _action_, _extra_format_,            \
+                            _arg0_, _arg1_, _arg2_, _arg3_, _arg4_, _arg5_) \
+  do {                                                                  \
+    if (G1ErgoVerbose::enabled((_tag_))) {                              \
+      gclog_or_tty->print_cr(ergo_format(_action_, _extra_format_),     \
+                             os::elapsedTime(),                         \
+                             G1ErgoVerbose::to_string((_tag_)),         \
+                             (_arg0_), (_arg1_), (_arg2_),              \
+                             (_arg3_), (_arg4_), (_arg5_));             \
+    }                                                                   \
+  } while (0)
+
+
+#define ergo_verbose(_tag_, _action_)                           \
+  ergo_verbose_common(_tag_, _action_, "", 0, 0, 0, 0, 0, 0)
+
+#define ergo_verbose0(_tag_, _action_, _extra_format_)                  \
+  ergo_verbose_common(_tag_, _action_, _extra_format_, 0, 0, 0, 0, 0, 0)
+
+#define ergo_verbose1(_tag_, _action_, _extra_format_,                  \
+                      _arg0_)                                           \
+  ergo_verbose_common(_tag_, _action_, _extra_format_,                  \
+                      _arg0_, 0, 0, 0, 0, 0)
+
+#define ergo_verbose2(_tag_, _action_, _extra_format_,                  \
+                      _arg0_, _arg1_)                                   \
+  ergo_verbose_common(_tag_, _action_, _extra_format_,                  \
+                      _arg0_, _arg1_, 0, 0, 0, 0)
+
+#define ergo_verbose3(_tag_, _action_, _extra_format_,                  \
+                      _arg0_, _arg1_, _arg2_)                           \
+  ergo_verbose_common(_tag_, _action_, _extra_format_,                  \
+                      _arg0_, _arg1_, _arg2_, 0, 0, 0)
+
+#define ergo_verbose4(_tag_, _action_, _extra_format_,                  \
+                      _arg0_, _arg1_, _arg2_, _arg3_)                   \
+  ergo_verbose_common(_tag_, _action_, _extra_format_,                  \
+                      _arg0_, _arg1_, _arg2_, _arg3_, 0, 0)
+
+#define ergo_verbose5(_tag_, _action_, _extra_format_,                  \
+                      _arg0_, _arg1_, _arg2_, _arg3_, _arg4_)           \
+  ergo_verbose_common(_tag_, _action_, _extra_format_,                  \
+                      _arg0_, _arg1_, _arg2_, _arg3_, _arg4_, 0)
+
+#define ergo_verbose6(_tag_, _action_, _extra_format_,                  \
+                      _arg0_, _arg1_, _arg2_, _arg3_, _arg4_, _arg5_)   \
+  ergo_verbose_common(_tag_, _action_, _extra_format_,                  \
+                      _arg0_, _arg1_, _arg2_, _arg3_, _arg4_, _arg5_)
+
+#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1ERGOVERBOSE_HPP
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1MMUTracker.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1MMUTracker.cpp
index 2943c83..bd91c8f 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1MMUTracker.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1MMUTracker.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -97,10 +97,6 @@ void G1MMUTrackerQueue::add_pause(double start, double end, bool gc_thread) {
     // or performance (we are GC'ing most of the time anyway!),
     // simply overwrite the oldest entry in the tracker.
 
-    if (G1PolicyVerbose > 1) {
-      warning("MMU Tracker Queue overflow. Replacing earliest entry.");
-    }
-
     _head_index = trim_index(_head_index + 1);
     assert(_head_index == _tail_index, "Because we have a full circular buffer");
     _tail_index = trim_index(_tail_index + 1);
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp
index 8eaaa9d..d3f1ce2 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp
@@ -50,6 +50,8 @@ protected:
   G1RemSet* _g1_rem;
   ConcurrentMark* _cm;
   G1ParScanThreadState* _par_scan_state;
+  bool _during_initial_mark;
+  bool _mark_in_progress;
 public:
   G1ParClosureSuper(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state);
   bool apply_to_weak_ref_discovered_field() { return true; }
@@ -102,8 +104,8 @@ public:
 class G1ParCopyHelper : public G1ParClosureSuper {
   G1ParScanClosure *_scanner;
 protected:
-  template <class T> void mark_forwardee(T* p);
-  oop copy_to_survivor_space(oop obj);
+  template <class T> void mark_object(T* p);
+  oop copy_to_survivor_space(oop obj, bool should_mark_copy);
 public:
   G1ParCopyHelper(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state,
                   G1ParScanClosure *scanner) :
@@ -111,7 +113,7 @@ public:
 };
 
 template<bool do_gen_barrier, G1Barrier barrier,
-         bool do_mark_forwardee>
+         bool do_mark_object>
 class G1ParCopyClosure : public G1ParCopyHelper {
   G1ParScanClosure _scanner;
   template <class T> void do_oop_work(T* p);
@@ -120,8 +122,6 @@ public:
     _scanner(g1, par_scan_state), G1ParCopyHelper(g1, par_scan_state, &_scanner) { }
   template <class T> void do_oop_nv(T* p) {
     do_oop_work(p);
-    if (do_mark_forwardee)
-      mark_forwardee(p);
   }
   virtual void do_oop(oop* p)       { do_oop_nv(p); }
   virtual void do_oop(narrowOop* p) { do_oop_nv(p); }
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp
index 59d2590..e54956c 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp
@@ -37,6 +37,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 G1SATBCardTableModRefBS::G1SATBCardTableModRefBS(MemRegion whole_heap,
                                                  int max_covered_regions) :
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp
index ee1bc44..1e2ab28 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp
@@ -39,8 +39,6 @@
   develop(intx, G1MarkingOverheadPercent, 0,                                \
           "Overhead of concurrent marking")                                 \
                                                                             \
-  develop(bool, G1Gen, true,                                                \
-          "If true, it will enable the generational G1")                    \
                                                                             \
   develop(intx, G1PolicyVerbose, 0,                                         \
           "The verbosity level on G1 policy decisions")                     \
@@ -126,9 +124,6 @@
   develop(bool, G1RSBarrierNullFilter, true,                                \
           "If true, generate null-pointer filtering code in RS barrier")    \
                                                                             \
-  develop(bool, G1PrintCTFilterStats, false,                                \
-          "If true, print stats on RS filtering effectiveness")             \
-                                                                            \
   develop(bool, G1DeferredRSUpdate, true,                                   \
           "If true, use deferred RS updates")                               \
                                                                             \
@@ -139,9 +134,9 @@
   develop(bool, G1RSCountHisto, false,                                      \
           "If true, print a histogram of RS occupancies after each pause")  \
                                                                             \
-  product(bool, G1PrintRegionLivenessInfo, false,                           \
-          "Prints the liveness information for all regions in the heap "    \
-          "at the end of a marking cycle.")                                 \
+  diagnostic(bool, G1PrintRegionLivenessInfo, false,                        \
+            "Prints the liveness information for all regions in the heap "  \
+            "at the end of a marking cycle.")                               \
                                                                             \
   develop(bool, G1PrintParCleanupStats, false,                              \
           "When true, print extra stats about parallel cleanup.")           \
@@ -233,7 +228,7 @@
           "the number of regions for which we'll print a surv rate "        \
           "summary.")                                                       \
                                                                             \
-  product(intx, G1ReservePercent, 10,                                       \
+  product(uintx, G1ReservePercent, 10,                                      \
           "It determines the minimum reserve we should have in the heap "   \
           "to minimize the probability of promotion failure.")              \
                                                                             \
@@ -251,16 +246,6 @@
           "When set, G1 will fail when it encounters an FP 'error', "       \
           "so as to allow debugging")                                       \
                                                                             \
-  develop(bool, G1FixedTenuringThreshold, false,                            \
-          "When set, G1 will not adjust the tenuring threshold")            \
-                                                                            \
-  develop(bool, G1FixedEdenSize, false,                                     \
-          "When set, G1 will not allocate unused survivor space regions")   \
-                                                                            \
-  develop(uintx, G1FixedSurvivorSpaceSize, 0,                               \
-          "If non-0 is the size of the G1 survivor space, "                 \
-          "otherwise SurvivorRatio is used to determine the size")          \
-                                                                            \
   product(uintx, G1HeapRegionSize, 0,                                       \
           "Size of the G1 regions.")                                        \
                                                                             \
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp
index 5fcd66f..fea3e07 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp
@@ -36,7 +36,7 @@ enum G1Barrier {
 };
 
 template<bool do_gen_barrier, G1Barrier barrier,
-         bool do_mark_forwardee>
+         bool do_mark_object>
 class G1ParCopyClosure;
 class G1ParScanClosure;
 class G1ParPushHeapRSClosure;
diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
index 3acd100..ec42314 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
@@ -352,7 +352,6 @@ void HeapRegion::hr_clear(bool par, bool clear_space) {
          "we should have already filtered out humongous regions");
 
   _in_collection_set = false;
-  _is_gc_alloc_region = false;
 
   set_young_index_in_cset(-1);
   uninstall_surv_rate_group();
@@ -486,7 +485,7 @@ HeapRegion(size_t hrs_index, G1BlockOffsetSharedArray* sharedOffsetArray,
   : G1OffsetTableContigSpace(sharedOffsetArray, mr, is_zeroed),
     _next_fk(HeapRegionDCTOC::NoFilterKind), _hrs_index(hrs_index),
     _humongous_type(NotHumongous), _humongous_start_region(NULL),
-    _in_collection_set(false), _is_gc_alloc_region(false),
+    _in_collection_set(false),
     _next_in_special_set(NULL), _orig_end(NULL),
     _claimed(InitialClaimValue), _evacuation_failed(false),
     _prev_marked_bytes(0), _next_marked_bytes(0), _sort_index(-1),
@@ -716,8 +715,6 @@ void HeapRegion::print_on(outputStream* st) const {
   }
   if (in_collection_set())
     st->print(" CS");
-  else if (is_gc_alloc_region())
-    st->print(" A ");
   else
     st->print("   ");
   if (is_young())
diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp
index ec63d1f..774987d 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp
@@ -251,10 +251,6 @@ class HeapRegion: public G1OffsetTableContigSpace {
   // True iff the region is in current collection_set.
   bool _in_collection_set;
 
-  // Is this or has it been an allocation region in the current collection
-  // pause.
-  bool _is_gc_alloc_region;
-
   // True iff an attempt to evacuate an object in the region failed.
   bool _evacuation_failed;
 
@@ -497,27 +493,6 @@ class HeapRegion: public G1OffsetTableContigSpace {
     _next_in_special_set = r;
   }
 
-  // True iff it is or has been an allocation region in the current
-  // collection pause.
-  bool is_gc_alloc_region() const {
-    return _is_gc_alloc_region;
-  }
-  void set_is_gc_alloc_region(bool b) {
-    _is_gc_alloc_region = b;
-  }
-  HeapRegion* next_gc_alloc_region() {
-    assert(is_gc_alloc_region(), "should only invoke on member of CS.");
-    assert(_next_in_special_set == NULL ||
-           _next_in_special_set->is_gc_alloc_region(),
-           "Malformed CS.");
-    return _next_in_special_set;
-  }
-  void set_next_gc_alloc_region(HeapRegion* r) {
-    assert(is_gc_alloc_region(), "should only invoke on member of CS.");
-    assert(r == NULL || r->is_gc_alloc_region(), "Malformed CS.");
-    _next_in_special_set = r;
-  }
-
   // Methods used by the HeapRegionSetBase class and subclasses.
 
   // Getter and setter for the next field used to link regions into
diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
index 0840bdd..8c5f15e 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
@@ -364,7 +364,10 @@ public:
   PosParPRT** next_addr() { return &_next; }
 
   bool should_expand(int tid) {
-    return par_tables() == NULL && tid > 0 && hr()->is_gc_alloc_region();
+    // Given that we now defer RSet updates for after a GC we don't
+    // really need to expand the tables any more. This code should be
+    // cleaned up in the future (see CR 6921087).
+    return false;
   }
 
   void par_expand() {
diff --git a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp
index 4186b42..7bf8fec 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp
@@ -37,6 +37,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 PtrQueue::PtrQueue(PtrQueueSet* qset, bool perm, bool active) :
   _qset(qset), _buf(NULL), _index(0), _active(active),
diff --git a/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp b/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp
index d44f263..04d051b 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp
@@ -98,7 +98,7 @@ void VM_G1IncCollectionPause::doit() {
 
     // At this point we are supposed to start a concurrent cycle. We
     // will do so if one is not already in progress.
-    bool res = g1h->g1_policy()->force_initial_mark_if_outside_cycle();
+    bool res = g1h->g1_policy()->force_initial_mark_if_outside_cycle(_gc_cause);
 
     // The above routine returns true if we were able to force the
     // next GC pause to be an initial mark; it returns false if a
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
index f43fffc..4496a69 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
@@ -38,6 +38,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 bool
 ParMarkBitMap::initialize(MemRegion covered_region)
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp
index 37190f4..42e65f1 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp
@@ -909,10 +909,6 @@ void ParallelScavengeHeap::verify(bool allow_dirty, bool silent, VerifyOption op
     }
     young_gen()->verify(allow_dirty);
   }
-  if (!silent) {
-    gclog_or_tty->print("ref_proc ");
-  }
-  ReferenceProcessor::verify();
 }
 
 void ParallelScavengeHeap::print_heap_change(size_t prev_used) {
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp
index c7a651f..75ee0b3 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp
@@ -80,10 +80,6 @@ void MarkFromRootsTask::do_it(GCTaskManager* manager, uint which) {
       Universe::oops_do(&mark_and_push_closure);
       break;
 
-    case reference_processing:
-      ReferenceProcessor::oops_do(&mark_and_push_closure);
-      break;
-
     case jni_handles:
       JNIHandles::oops_do(&mark_and_push_closure);
       break;
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp
index 4c8b115..c79bc7c 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp
@@ -98,8 +98,7 @@ class MarkFromRootsTask : public GCTask {
     management            = 6,
     jvmti                 = 7,
     system_dictionary     = 8,
-    reference_processing  = 9,
-    code_cache            = 10
+    code_cache            = 9
   };
  private:
   RootType _root_type;
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp
index f541472..3d7e0ba 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp
@@ -516,7 +516,6 @@ void PSMarkSweep::mark_sweep_phase1(bool clear_all_softrefs) {
   {
     ParallelScavengeHeap::ParStrongRootsScope psrs;
     Universe::oops_do(mark_and_push_closure());
-    ReferenceProcessor::oops_do(mark_and_push_closure());
     JNIHandles::oops_do(mark_and_push_closure());   // Global (strong) JNI handles
     CodeBlobToOopClosure each_active_code_blob(mark_and_push_closure(), /*do_marking=*/ true);
     Threads::oops_do(mark_and_push_closure(), &each_active_code_blob);
@@ -623,7 +622,6 @@ void PSMarkSweep::mark_sweep_phase3() {
 
   // General strong roots.
   Universe::oops_do(adjust_root_pointer_closure());
-  ReferenceProcessor::oops_do(adjust_root_pointer_closure());
   JNIHandles::oops_do(adjust_root_pointer_closure());   // Global (strong) JNI handles
   Threads::oops_do(adjust_root_pointer_closure(), NULL);
   ObjectSynchronizer::oops_do(adjust_root_pointer_closure());
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
index 08b723c..55cb343 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
@@ -2445,7 +2445,6 @@ void PSParallelCompact::adjust_roots() {
 
   // General strong roots.
   Universe::oops_do(adjust_root_pointer_closure());
-  ReferenceProcessor::oops_do(adjust_root_pointer_closure());
   JNIHandles::oops_do(adjust_root_pointer_closure());   // Global (strong) JNI handles
   Threads::oops_do(adjust_root_pointer_closure(), NULL);
   ObjectSynchronizer::oops_do(adjust_root_pointer_closure());
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp
index c297477..f3011a8 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp
@@ -55,7 +55,6 @@ void ScavengeRootsTask::do_it(GCTaskManager* manager, uint which) {
   switch (_root_type) {
     case universe:
       Universe::oops_do(&roots_closure);
-      ReferenceProcessor::oops_do(&roots_closure);
       break;
 
     case jni_handles:
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp
index 8eba893..e194767 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 // PSVirtualSpace
 
diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp
index aacaf35..e38556d 100644
--- a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp
+++ b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp
@@ -37,6 +37,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 
 MutableNUMASpace::MutableNUMASpace(size_t alignment) : MutableSpace(alignment) {
diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp
index 6b99a8f..0a4b42c 100644
--- a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp
+++ b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp
@@ -39,6 +39,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 
 #ifdef ASSERT
@@ -157,8 +160,14 @@ HeapWord* CollectedHeap::allocate_from_tlab_slow(Thread* thread, size_t size) {
     // ..and clear it.
     Copy::zero_to_words(obj, new_tlab_size);
   } else {
-    // ...and clear just the allocated object.
-    Copy::zero_to_words(obj, size);
+    // ...and zap just allocated object.
+#ifdef ASSERT
+    // Skip mangling the space corresponding to the object header to
+    // ensure that the returned space is not considered parsable by
+    // any concurrent GC thread.
+    size_t hdr_size = oopDesc::header_size();
+    Copy::fill_to_words(obj + hdr_size, new_tlab_size - hdr_size, badHeapWordVal);
+#endif // ASSERT
   }
   thread->tlab().fill(obj, obj + size, new_tlab_size);
   return obj;
@@ -404,13 +413,13 @@ void CollectedHeap::resize_all_tlabs() {
 
 void CollectedHeap::pre_full_gc_dump() {
   if (HeapDumpBeforeFullGC) {
-    TraceTime tt("Heap Dump: ", PrintGCDetails, false, gclog_or_tty);
+    TraceTime tt("Heap Dump (before full gc): ", PrintGCDetails, false, gclog_or_tty);
     // We are doing a "major" collection and a heap dump before
     // major collection has been requested.
     HeapDumper::dump_heap();
   }
   if (PrintClassHistogramBeforeFullGC) {
-    TraceTime tt("Class Histogram: ", PrintGCDetails, true, gclog_or_tty);
+    TraceTime tt("Class Histogram (before full gc): ", PrintGCDetails, true, gclog_or_tty);
     VM_GC_HeapInspection inspector(gclog_or_tty, false /* ! full gc */, false /* ! prologue */);
     inspector.doit();
   }
@@ -418,11 +427,11 @@ void CollectedHeap::pre_full_gc_dump() {
 
 void CollectedHeap::post_full_gc_dump() {
   if (HeapDumpAfterFullGC) {
-    TraceTime tt("Heap Dump", PrintGCDetails, false, gclog_or_tty);
+    TraceTime tt("Heap Dump (after full gc): ", PrintGCDetails, false, gclog_or_tty);
     HeapDumper::dump_heap();
   }
   if (PrintClassHistogramAfterFullGC) {
-    TraceTime tt("Class Histogram", PrintGCDetails, true, gclog_or_tty);
+    TraceTime tt("Class Histogram (after full gc): ", PrintGCDetails, true, gclog_or_tty);
     VM_GC_HeapInspection inspector(gclog_or_tty, false /* ! full gc */, false /* ! prologue */);
     inspector.doit();
   }
diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.hpp b/hotspot/src/share/vm/gc_interface/collectedHeap.hpp
index 36fcb40..5761ea5 100644
--- a/hotspot/src/share/vm/gc_interface/collectedHeap.hpp
+++ b/hotspot/src/share/vm/gc_interface/collectedHeap.hpp
@@ -322,6 +322,7 @@ class CollectedHeap : public CHeapObj {
   // General obj/array allocation facilities.
   inline static oop obj_allocate(KlassHandle klass, int size, TRAPS);
   inline static oop array_allocate(KlassHandle klass, int size, int length, TRAPS);
+  inline static oop array_allocate_nozero(KlassHandle klass, int size, int length, TRAPS);
 
   // Special obj/array allocation facilities.
   // Some heaps may want to manage "permanent" data uniquely. These default
diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp b/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp
index 68003b7..adced06 100644
--- a/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp
+++ b/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp
@@ -43,6 +43,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // Inline allocation implementations.
 
@@ -271,6 +274,23 @@ oop CollectedHeap::array_allocate(KlassHandle klass,
   return (oop)obj;
 }
 
+oop CollectedHeap::array_allocate_nozero(KlassHandle klass,
+                                         int size,
+                                         int length,
+                                         TRAPS) {
+  debug_only(check_for_valid_allocation_state());
+  assert(!Universe::heap()->is_gc_active(), "Allocation during gc not allowed");
+  assert(size >= 0, "int won't convert to size_t");
+  HeapWord* obj = common_mem_allocate_noinit(size, CHECK_NULL);
+  ((oop)obj)->set_klass_gap(0);
+  post_allocation_setup_array(klass, obj, size, length);
+#ifndef PRODUCT
+  const size_t hs = oopDesc::header_size()+1;
+  Universe::heap()->check_for_non_bad_heap_word_value(obj+hs, size-hs);
+#endif
+  return (oop)obj;
+}
+
 oop CollectedHeap::permanent_obj_allocate(KlassHandle klass, int size, TRAPS) {
   oop obj = permanent_obj_allocate_no_klass_install(klass, size, CHECK_NULL);
   post_allocation_install_obj_klass(klass, obj, size);
@@ -287,7 +307,10 @@ oop CollectedHeap::permanent_obj_allocate_no_klass_install(KlassHandle klass,
   assert(size >= 0, "int won't convert to size_t");
   HeapWord* obj = common_permanent_mem_allocate_init(size, CHECK_NULL);
   post_allocation_setup_no_klass_install(klass, obj, size);
-  NOT_PRODUCT(Universe::heap()->check_for_bad_heap_word_value(obj, size));
+#ifndef PRODUCT
+  const size_t hs = oopDesc::header_size();
+  Universe::heap()->check_for_bad_heap_word_value(obj+hs, size-hs);
+#endif
   return (oop)obj;
 }
 
diff --git a/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp b/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
index a792812..a68fac1 100644
--- a/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
+++ b/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
@@ -56,6 +56,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // This file contains the platform-independent parts
 // of the abstract interpreter and the abstract interpreter generator.
diff --git a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
index 7da054d..68bd1c7 100644
--- a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
+++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
@@ -65,6 +65,12 @@
 #ifdef TARGET_OS_ARCH_linux_ppc
 # include "orderAccess_linux_ppc.inline.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "orderAccess_bsd_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "orderAccess_bsd_zero.inline.hpp"
+#endif
 
 
 // no precompiled headers
diff --git a/hotspot/src/share/vm/interpreter/bytecodeTracer.cpp b/hotspot/src/share/vm/interpreter/bytecodeTracer.cpp
index 292e19c..b9f64ed 100644
--- a/hotspot/src/share/vm/interpreter/bytecodeTracer.cpp
+++ b/hotspot/src/share/vm/interpreter/bytecodeTracer.cpp
@@ -92,7 +92,7 @@ class BytecodePrinter: public BytecodeClosure {
       // the incoming method.  We could lose a line of trace output.
       // This is acceptable in a debug-only feature.
       st->cr();
-      st->print("[%d] ", (int) Thread::current()->osthread()->thread_id());
+      st->print("[%ld] ", (long) Thread::current()->osthread()->thread_id());
       method->print_name(st);
       st->cr();
       _current_method = method();
@@ -106,7 +106,7 @@ class BytecodePrinter: public BytecodeClosure {
     }
     _code = code;
      int bci = bcp - method->code_base();
-    st->print("[%d] ", (int) Thread::current()->osthread()->thread_id());
+    st->print("[%ld] ", (long) Thread::current()->osthread()->thread_id());
     if (Verbose) {
       st->print("%8d  %4d  " INTPTR_FORMAT " " INTPTR_FORMAT " %s",
            BytecodeCounter::counter_value(), bci, tos, tos2, Bytecodes::name(code));
diff --git a/hotspot/src/share/vm/interpreter/bytecodes.hpp b/hotspot/src/share/vm/interpreter/bytecodes.hpp
index 6194ad6..2ea7336 100644
--- a/hotspot/src/share/vm/interpreter/bytecodes.hpp
+++ b/hotspot/src/share/vm/interpreter/bytecodes.hpp
@@ -419,6 +419,8 @@ class Bytecodes: AllStatic {
 
   static bool        is_zero_const  (Code code)    { return (code == _aconst_null || code == _iconst_0
                                                            || code == _fconst_0 || code == _dconst_0); }
+  static bool        is_invoke      (Code code)    { return (_invokevirtual <= code && code <= _invokedynamic); }
+
   static int         compute_flags  (const char* format, int more_flags = 0);  // compute the flags
   static int         flags          (int code, bool is_wide) {
     assert(code == (u_char)code, "must be a byte");
diff --git a/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp b/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
index 3466f43..7b7b49d 100644
--- a/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
+++ b/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
@@ -509,6 +509,7 @@ IRT_ENTRY(void, InterpreterRuntime::resolve_get_put(JavaThread* thread, Bytecode
   // resolve field
   FieldAccessInfo info;
   constantPoolHandle pool(thread, method(thread)->constants());
+  bool is_put    = (bytecode == Bytecodes::_putfield  || bytecode == Bytecodes::_putstatic);
   bool is_static = (bytecode == Bytecodes::_getstatic || bytecode == Bytecodes::_putstatic);
 
   {
@@ -528,8 +529,6 @@ IRT_ENTRY(void, InterpreterRuntime::resolve_get_put(JavaThread* thread, Bytecode
   // exceptions at the correct place. If we do not resolve completely
   // in the current pass, leaving the put_code set to zero will
   // cause the next put instruction to reresolve.
-  bool is_put = (bytecode == Bytecodes::_putfield ||
-                 bytecode == Bytecodes::_putstatic);
   Bytecodes::Code put_code = (Bytecodes::Code)0;
 
   // We also need to delay resolving getstatic instructions until the
@@ -541,7 +540,6 @@ IRT_ENTRY(void, InterpreterRuntime::resolve_get_put(JavaThread* thread, Bytecode
                                !klass->is_initialized());
   Bytecodes::Code get_code = (Bytecodes::Code)0;
 
-
   if (!uninitialized_static) {
     get_code = ((is_static) ? Bytecodes::_getstatic : Bytecodes::_getfield);
     if (is_put || !info.access_flags().is_final()) {
@@ -549,6 +547,23 @@ IRT_ENTRY(void, InterpreterRuntime::resolve_get_put(JavaThread* thread, Bytecode
     }
   }
 
+  if (is_put && !is_static && klass->is_subclass_of(SystemDictionary::CallSite_klass()) && (info.name() == vmSymbols::target_name())) {
+    const jint direction = frame::interpreter_frame_expression_stack_direction();
+    oop call_site     = *((oop*) thread->last_frame().interpreter_frame_tos_at(-1 * direction));
+    oop method_handle = *((oop*) thread->last_frame().interpreter_frame_tos_at( 0 * direction));
+    assert(call_site    ->is_a(SystemDictionary::CallSite_klass()),     "must be");
+    assert(method_handle->is_a(SystemDictionary::MethodHandle_klass()), "must be");
+
+    {
+      // Walk all nmethods depending on this call site.
+      MutexLocker mu(Compile_lock, thread);
+      Universe::flush_dependents_on(call_site, method_handle);
+    }
+
+    // Don't allow fast path for setting CallSite.target and sub-classes.
+    put_code = (Bytecodes::Code) 0;
+  }
+
   cache_entry(thread)->set_field(
     get_code,
     put_code,
@@ -969,11 +984,8 @@ ConstantPoolCacheEntry *cp_entry))
   // check the access_flags for the field in the klass
 
   instanceKlass* ik = instanceKlass::cast(java_lang_Class::as_klassOop(cp_entry->f1()));
-  typeArrayOop fields = ik->fields();
   int index = cp_entry->field_index();
-  assert(index < fields->length(), "holders field index is out of range");
-  // bail out if field accesses are not watched
-  if ((fields->ushort_at(index) & JVM_ACC_FIELD_ACCESS_WATCHED) == 0) return;
+  if ((ik->field_access_flags(index) & JVM_ACC_FIELD_ACCESS_WATCHED) == 0) return;
 
   switch(cp_entry->flag_state()) {
     case btos:    // fall through
@@ -1006,11 +1018,9 @@ IRT_ENTRY(void, InterpreterRuntime::post_field_modification(JavaThread *thread,
 
   // check the access_flags for the field in the klass
   instanceKlass* ik = instanceKlass::cast(k);
-  typeArrayOop fields = ik->fields();
   int index = cp_entry->field_index();
-  assert(index < fields->length(), "holders field index is out of range");
   // bail out if field modifications are not watched
-  if ((fields->ushort_at(index) & JVM_ACC_FIELD_MODIFICATION_WATCHED) == 0) return;
+  if ((ik->field_access_flags(index) & JVM_ACC_FIELD_MODIFICATION_WATCHED) == 0) return;
 
   char sig_type = '\0';
 
@@ -1229,7 +1239,7 @@ IRT_ENTRY(void, InterpreterRuntime::prepare_native_call(JavaThread* thread, meth
   // preparing the same method will be sure to see non-null entry & mirror.
 IRT_END
 
-#if defined(IA32) || defined(AMD64)
+#if defined(IA32) || defined(AMD64) || defined(ARM)
 IRT_LEAF(void, InterpreterRuntime::popframe_move_outgoing_args(JavaThread* thread, void* src_address, void* dest_address))
   if (src_address == dest_address) {
     return;
diff --git a/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp b/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp
index 961abd5..93c1a9e 100644
--- a/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp
+++ b/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp
@@ -41,6 +41,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // The InterpreterRuntime is called by the interpreter for everything
 // that cannot/should not be dealt with in assembly and needs C support.
@@ -141,8 +144,8 @@ class InterpreterRuntime: AllStatic {
                                         methodOopDesc* method,
                                         intptr_t* from, intptr_t* to);
 
-#if defined(IA32) || defined(AMD64)
-  // Popframe support (only needed on x86 and AMD64)
+#if defined(IA32) || defined(AMD64) || defined(ARM)
+  // Popframe support (only needed on x86, AMD64 and ARM)
   static void popframe_move_outgoing_args(JavaThread* thread, void* src_address, void* dest_address);
 #endif
 
diff --git a/hotspot/src/share/vm/interpreter/linkResolver.cpp b/hotspot/src/share/vm/interpreter/linkResolver.cpp
index 7b42fe3..b7defd7 100644
--- a/hotspot/src/share/vm/interpreter/linkResolver.cpp
+++ b/hotspot/src/share/vm/interpreter/linkResolver.cpp
@@ -52,6 +52,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 //------------------------------------------------------------------------------------------------------------------------
 // Implementation of FieldAccessInfo
@@ -132,7 +135,7 @@ void CallInfo::set_common(KlassHandle resolved_klass, KlassHandle selected_klass
       return;
     }
     CompileBroker::compile_method(selected_method, InvocationEntryBci,
-                                  CompLevel_initial_compile,
+                                  CompilationPolicy::policy()->initial_compile_level(),
                                   methodHandle(), 0, "must_be_compiled", CHECK);
   }
 }
diff --git a/hotspot/src/share/vm/interpreter/templateTable.hpp b/hotspot/src/share/vm/interpreter/templateTable.hpp
index f91ecc7..3b006ad 100644
--- a/hotspot/src/share/vm/interpreter/templateTable.hpp
+++ b/hotspot/src/share/vm/interpreter/templateTable.hpp
@@ -120,8 +120,8 @@ class TemplateTable: AllStatic {
 
   // helpers
   static void unimplemented_bc();
-  static void patch_bytecode(Bytecodes::Code bc, Register scratch1,
-                             Register scratch2, bool load_bc_in_scratch = true);
+  static void patch_bytecode(Bytecodes::Code bc, Register bc_reg,
+                             Register temp_reg, bool load_bc_into_bc_reg = true, int byte_no = -1);
 
   // C calls
   static void call_VM(Register oop_result, address entry_point);
diff --git a/hotspot/src/share/vm/memory/allocation.cpp b/hotspot/src/share/vm/memory/allocation.cpp
index 356e825..0479e73 100644
--- a/hotspot/src/share/vm/memory/allocation.cpp
+++ b/hotspot/src/share/vm/memory/allocation.cpp
@@ -39,6 +39,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 void* CHeapObj::operator new(size_t size){
   return (void *) AllocateHeap(size, "CHeapObj-new");
diff --git a/hotspot/src/share/vm/memory/allocation.hpp b/hotspot/src/share/vm/memory/allocation.hpp
index b923cd4..4c2f1e8 100644
--- a/hotspot/src/share/vm/memory/allocation.hpp
+++ b/hotspot/src/share/vm/memory/allocation.hpp
@@ -151,6 +151,8 @@ class AllStatic {
 //------------------------------Chunk------------------------------------------
 // Linked list of raw memory chunks
 class Chunk: public CHeapObj {
+  friend class VMStructs;
+
  protected:
   Chunk*       _next;     // Next Chunk in list
   const size_t _len;      // Size of this Chunk
@@ -200,6 +202,8 @@ protected:
   friend class ResourceMark;
   friend class HandleMark;
   friend class NoHandleMark;
+  friend class VMStructs;
+
   Chunk *_first;                // First chunk
   Chunk *_chunk;                // current chunk
   char *_hwm, *_max;            // High water mark and max in current chunk
diff --git a/hotspot/src/share/vm/memory/collectorPolicy.cpp b/hotspot/src/share/vm/memory/collectorPolicy.cpp
index 7a1a294..8412682 100644
--- a/hotspot/src/share/vm/memory/collectorPolicy.cpp
+++ b/hotspot/src/share/vm/memory/collectorPolicy.cpp
@@ -47,6 +47,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 #ifndef SERIALGC
 #include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp"
 #include "gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp"
diff --git a/hotspot/src/share/vm/memory/defNewGeneration.cpp b/hotspot/src/share/vm/memory/defNewGeneration.cpp
index c1a7051..5913b2c 100644
--- a/hotspot/src/share/vm/memory/defNewGeneration.cpp
+++ b/hotspot/src/share/vm/memory/defNewGeneration.cpp
@@ -48,6 +48,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 //
 // DefNewGeneration functions.
diff --git a/hotspot/src/share/vm/memory/gcLocker.hpp b/hotspot/src/share/vm/memory/gcLocker.hpp
index 09135cb..c9d913a 100644
--- a/hotspot/src/share/vm/memory/gcLocker.hpp
+++ b/hotspot/src/share/vm/memory/gcLocker.hpp
@@ -41,6 +41,10 @@
 # include "os_windows.inline.hpp"
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+# include "thread_bsd.inline.hpp"
+#endif
 
 // The direct lock/unlock calls do not force a collection if an unlock
 // decrements the count to zero. Avoid calling these if at all possible.
diff --git a/hotspot/src/share/vm/memory/genCollectedHeap.cpp b/hotspot/src/share/vm/memory/genCollectedHeap.cpp
index c1acb8d..f233cbc 100644
--- a/hotspot/src/share/vm/memory/genCollectedHeap.cpp
+++ b/hotspot/src/share/vm/memory/genCollectedHeap.cpp
@@ -1269,10 +1269,6 @@ void GenCollectedHeap::verify(bool allow_dirty, bool silent, VerifyOption option
     gclog_or_tty->print("remset ");
   }
   rem_set()->verify();
-  if (!silent) {
-     gclog_or_tty->print("ref_proc ");
-  }
-  ReferenceProcessor::verify();
 }
 
 void GenCollectedHeap::print() const { print_on(tty); }
diff --git a/hotspot/src/share/vm/memory/genMarkSweep.cpp b/hotspot/src/share/vm/memory/genMarkSweep.cpp
index 802c646..94a73dd 100644
--- a/hotspot/src/share/vm/memory/genMarkSweep.cpp
+++ b/hotspot/src/share/vm/memory/genMarkSweep.cpp
@@ -55,6 +55,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 void GenMarkSweep::invoke_at_safepoint(int level, ReferenceProcessor* rp,
   bool clear_all_softrefs) {
diff --git a/hotspot/src/share/vm/memory/oopFactory.cpp b/hotspot/src/share/vm/memory/oopFactory.cpp
index 08f9825..c6e644c 100644
--- a/hotspot/src/share/vm/memory/oopFactory.cpp
+++ b/hotspot/src/share/vm/memory/oopFactory.cpp
@@ -77,7 +77,14 @@ typeArrayOop oopFactory::new_permanent_intArray(int length, TRAPS) {
 typeArrayOop oopFactory::new_typeArray(BasicType type, int length, TRAPS) {
   klassOop type_asKlassOop = Universe::typeArrayKlassObj(type);
   typeArrayKlass* type_asArrayKlass = typeArrayKlass::cast(type_asKlassOop);
-  typeArrayOop result = type_asArrayKlass->allocate(length, THREAD);
+  typeArrayOop result = type_asArrayKlass->allocate_common(length, true, THREAD);
+  return result;
+}
+
+typeArrayOop oopFactory::new_typeArray_nozero(BasicType type, int length, TRAPS) {
+  klassOop type_asKlassOop = Universe::typeArrayKlassObj(type);
+  typeArrayKlass* type_asArrayKlass = typeArrayKlass::cast(type_asKlassOop);
+  typeArrayOop result = type_asArrayKlass->allocate_common(length, false, THREAD);
   return result;
 }
 
diff --git a/hotspot/src/share/vm/memory/oopFactory.hpp b/hotspot/src/share/vm/memory/oopFactory.hpp
index 32e50fb..dbb42f0 100644
--- a/hotspot/src/share/vm/memory/oopFactory.hpp
+++ b/hotspot/src/share/vm/memory/oopFactory.hpp
@@ -63,6 +63,7 @@ class oopFactory: AllStatic {
   static typeArrayOop    new_permanent_intArray  (int length, TRAPS);  // used for class file structures
 
   static typeArrayOop    new_typeArray(BasicType type, int length, TRAPS);
+  static typeArrayOop    new_typeArray_nozero(BasicType type, int length, TRAPS);
 
   // Constant pools
   static constantPoolOop      new_constantPool     (int length,
diff --git a/hotspot/src/share/vm/memory/referenceProcessor.cpp b/hotspot/src/share/vm/memory/referenceProcessor.cpp
index 8a4da9a..9b593ef 100644
--- a/hotspot/src/share/vm/memory/referenceProcessor.cpp
+++ b/hotspot/src/share/vm/memory/referenceProcessor.cpp
@@ -35,15 +35,15 @@
 
 ReferencePolicy* ReferenceProcessor::_always_clear_soft_ref_policy = NULL;
 ReferencePolicy* ReferenceProcessor::_default_soft_ref_policy      = NULL;
-oop              ReferenceProcessor::_sentinelRef = NULL;
 const int        subclasses_of_ref                = REF_PHANTOM - REF_OTHER;
+bool             ReferenceProcessor::_pending_list_uses_discovered_field = false;
 
 // List of discovered references.
 class DiscoveredList {
 public:
   DiscoveredList() : _len(0), _compressed_head(0), _oop_head(NULL) { }
   oop head() const     {
-     return UseCompressedOops ?  oopDesc::decode_heap_oop_not_null(_compressed_head) :
+     return UseCompressedOops ?  oopDesc::decode_heap_oop(_compressed_head) :
                                 _oop_head;
   }
   HeapWord* adr_head() {
@@ -53,12 +53,12 @@ public:
   void   set_head(oop o) {
     if (UseCompressedOops) {
       // Must compress the head ptr.
-      _compressed_head = oopDesc::encode_heap_oop_not_null(o);
+      _compressed_head = oopDesc::encode_heap_oop(o);
     } else {
       _oop_head = o;
     }
   }
-  bool   empty() const          { return head() == ReferenceProcessor::sentinel_ref(); }
+  bool   empty() const          { return head() == NULL; }
   size_t length()               { return _len; }
   void   set_length(size_t len) { _len = len;  }
   void   inc_length(size_t inc) { _len += inc; assert(_len > 0, "Error"); }
@@ -76,21 +76,9 @@ void referenceProcessor_init() {
 }
 
 void ReferenceProcessor::init_statics() {
-  assert(_sentinelRef == NULL, "should be initialized precisely once");
-  EXCEPTION_MARK;
-  _sentinelRef = instanceKlass::cast(
-                    SystemDictionary::Reference_klass())->
-                      allocate_permanent_instance(THREAD);
-
   // Initialize the master soft ref clock.
   java_lang_ref_SoftReference::set_clock(os::javaTimeMillis());
 
-  if (HAS_PENDING_EXCEPTION) {
-      Handle ex(THREAD, PENDING_EXCEPTION);
-      vm_exit_during_initialization(ex);
-  }
-  assert(_sentinelRef != NULL && _sentinelRef->is_oop(),
-         "Just constructed it!");
   _always_clear_soft_ref_policy = new AlwaysClearPolicy();
   _default_soft_ref_policy      = new COMPILER2_PRESENT(LRUMaxHeapPolicy())
                                       NOT_COMPILER2(LRUCurrentHeapPolicy());
@@ -100,6 +88,7 @@ void ReferenceProcessor::init_statics() {
   guarantee(RefDiscoveryPolicy == ReferenceBasedDiscovery ||
             RefDiscoveryPolicy == ReferentBasedDiscovery,
             "Unrecongnized RefDiscoveryPolicy");
+  _pending_list_uses_discovered_field = JDK_Version::current().pending_list_uses_discovered_field();
 }
 
 ReferenceProcessor::ReferenceProcessor(MemRegion span,
@@ -130,13 +119,12 @@ ReferenceProcessor::ReferenceProcessor(MemRegion span,
   _discoveredWeakRefs    = &_discoveredSoftRefs[_max_num_q];
   _discoveredFinalRefs   = &_discoveredWeakRefs[_max_num_q];
   _discoveredPhantomRefs = &_discoveredFinalRefs[_max_num_q];
-  assert(sentinel_ref() != NULL, "_sentinelRef is NULL");
-  // Initialized all entries to _sentinelRef
+  // Initialized all entries to NULL
   for (int i = 0; i < _max_num_q * subclasses_of_ref; i++) {
-        _discoveredSoftRefs[i].set_head(sentinel_ref());
+    _discoveredSoftRefs[i].set_head(NULL);
     _discoveredSoftRefs[i].set_length(0);
   }
-  // If we do barreirs, cache a copy of the barrier set.
+  // If we do barriers, cache a copy of the barrier set.
   if (discovered_list_needs_barrier) {
     _bs = Universe::heap()->barrier_set();
   }
@@ -167,10 +155,6 @@ void ReferenceProcessor::weak_oops_do(OopClosure* f) {
   }
 }
 
-void ReferenceProcessor::oops_do(OopClosure* f) {
-  f->do_oop(adr_sentinel_ref());
-}
-
 void ReferenceProcessor::update_soft_ref_master_clock() {
   // Update (advance) the soft ref master clock field. This must be done
   // after processing the soft ref list.
@@ -283,8 +267,6 @@ void ReferenceProcessor::process_phaseJNI(BoolObjectClosure* is_alive,
   }
 #endif
   JNIHandles::weak_oops_do(is_alive, keep_alive);
-  // Finally remember to keep sentinel around
-  keep_alive->do_oop(adr_sentinel_ref());
   complete_gc->do_void();
 }
 
@@ -327,46 +309,77 @@ bool ReferenceProcessor::enqueue_discovered_references(AbstractRefProcTaskExecut
 void ReferenceProcessor::enqueue_discovered_reflist(DiscoveredList& refs_list,
                                                     HeapWord* pending_list_addr) {
   // Given a list of refs linked through the "discovered" field
-  // (java.lang.ref.Reference.discovered) chain them through the
-  // "next" field (java.lang.ref.Reference.next) and prepend
-  // to the pending list.
+  // (java.lang.ref.Reference.discovered), self-loop their "next" field
+  // thus distinguishing them from active References, then
+  // prepend them to the pending list.
+  // BKWRD COMPATIBILITY NOTE: For older JDKs (prior to the fix for 4956777),
+  // the "next" field is used to chain the pending list, not the discovered
+  // field.
+
   if (TraceReferenceGC && PrintGCDetails) {
     gclog_or_tty->print_cr("ReferenceProcessor::enqueue_discovered_reflist list "
                            INTPTR_FORMAT, (address)refs_list.head());
   }
-  oop obj = refs_list.head();
-  // Walk down the list, copying the discovered field into
-  // the next field and clearing it (except for the last
-  // non-sentinel object which is treated specially to avoid
-  // confusion with an active reference).
-  while (obj != sentinel_ref()) {
-    assert(obj->is_instanceRef(), "should be reference object");
-    oop next = java_lang_ref_Reference::discovered(obj);
-    if (TraceReferenceGC && PrintGCDetails) {
-      gclog_or_tty->print_cr("        obj " INTPTR_FORMAT "/next " INTPTR_FORMAT,
-                             obj, next);
+
+  oop obj = NULL;
+  oop next_d = refs_list.head();
+  if (pending_list_uses_discovered_field()) { // New behaviour
+    // Walk down the list, self-looping the next field
+    // so that the References are not considered active.
+    while (obj != next_d) {
+      obj = next_d;
+      assert(obj->is_instanceRef(), "should be reference object");
+      next_d = java_lang_ref_Reference::discovered(obj);
+      if (TraceReferenceGC && PrintGCDetails) {
+        gclog_or_tty->print_cr("        obj " INTPTR_FORMAT "/next_d " INTPTR_FORMAT,
+                               obj, next_d);
+      }
+      assert(java_lang_ref_Reference::next(obj) == NULL,
+             "Reference not active; should not be discovered");
+      // Self-loop next, so as to make Ref not active.
+      java_lang_ref_Reference::set_next(obj, obj);
+      if (next_d == obj) {  // obj is last
+        // Swap refs_list into pendling_list_addr and
+        // set obj's discovered to what we read from pending_list_addr.
+        oop old = oopDesc::atomic_exchange_oop(refs_list.head(), pending_list_addr);
+        // Need oop_check on pending_list_addr above;
+        // see special oop-check code at the end of
+        // enqueue_discovered_reflists() further below.
+        java_lang_ref_Reference::set_discovered(obj, old); // old may be NULL
+      }
     }
-    assert(java_lang_ref_Reference::next(obj) == NULL,
-           "The reference should not be enqueued");
-    if (next == sentinel_ref()) {  // obj is last
-      // Swap refs_list into pendling_list_addr and
-      // set obj's next to what we read from pending_list_addr.
-      oop old = oopDesc::atomic_exchange_oop(refs_list.head(), pending_list_addr);
-      // Need oop_check on pending_list_addr above;
-      // see special oop-check code at the end of
-      // enqueue_discovered_reflists() further below.
-      if (old == NULL) {
-        // obj should be made to point to itself, since
-        // pending list was empty.
-        java_lang_ref_Reference::set_next(obj, obj);
+  } else { // Old behaviour
+    // Walk down the list, copying the discovered field into
+    // the next field and clearing the discovered field.
+    while (obj != next_d) {
+      obj = next_d;
+      assert(obj->is_instanceRef(), "should be reference object");
+      next_d = java_lang_ref_Reference::discovered(obj);
+      if (TraceReferenceGC && PrintGCDetails) {
+        gclog_or_tty->print_cr("        obj " INTPTR_FORMAT "/next_d " INTPTR_FORMAT,
+                               obj, next_d);
+      }
+      assert(java_lang_ref_Reference::next(obj) == NULL,
+             "The reference should not be enqueued");
+      if (next_d == obj) {  // obj is last
+        // Swap refs_list into pendling_list_addr and
+        // set obj's next to what we read from pending_list_addr.
+        oop old = oopDesc::atomic_exchange_oop(refs_list.head(), pending_list_addr);
+        // Need oop_check on pending_list_addr above;
+        // see special oop-check code at the end of
+        // enqueue_discovered_reflists() further below.
+        if (old == NULL) {
+          // obj should be made to point to itself, since
+          // pending list was empty.
+          java_lang_ref_Reference::set_next(obj, obj);
+        } else {
+          java_lang_ref_Reference::set_next(obj, old);
+        }
       } else {
-        java_lang_ref_Reference::set_next(obj, old);
+        java_lang_ref_Reference::set_next(obj, next_d);
       }
-    } else {
-      java_lang_ref_Reference::set_next(obj, next);
+      java_lang_ref_Reference::set_discovered(obj, (oop) NULL);
     }
-    java_lang_ref_Reference::set_discovered(obj, (oop) NULL);
-    obj = next;
   }
 }
 
@@ -376,10 +389,9 @@ public:
   RefProcEnqueueTask(ReferenceProcessor& ref_processor,
                      DiscoveredList      discovered_refs[],
                      HeapWord*           pending_list_addr,
-                     oop                 sentinel_ref,
                      int                 n_queues)
     : EnqueueTask(ref_processor, discovered_refs,
-                  pending_list_addr, sentinel_ref, n_queues)
+                  pending_list_addr, n_queues)
   { }
 
   virtual void work(unsigned int work_id) {
@@ -396,7 +408,7 @@ public:
          j++, index += _n_queues) {
       _ref_processor.enqueue_discovered_reflist(
         _refs_lists[index], _pending_list_addr);
-      _refs_lists[index].set_head(_sentinel_ref);
+      _refs_lists[index].set_head(NULL);
       _refs_lists[index].set_length(0);
     }
   }
@@ -408,13 +420,13 @@ void ReferenceProcessor::enqueue_discovered_reflists(HeapWord* pending_list_addr
   if (_processing_is_mt && task_executor != NULL) {
     // Parallel code
     RefProcEnqueueTask tsk(*this, _discoveredSoftRefs,
-                           pending_list_addr, sentinel_ref(), _max_num_q);
+                           pending_list_addr, _max_num_q);
     task_executor->execute(tsk);
   } else {
     // Serial code: call the parent class's implementation
     for (int i = 0; i < _max_num_q * subclasses_of_ref; i++) {
       enqueue_discovered_reflist(_discoveredSoftRefs[i], pending_list_addr);
-      _discoveredSoftRefs[i].set_head(sentinel_ref());
+      _discoveredSoftRefs[i].set_head(NULL);
       _discoveredSoftRefs[i].set_length(0);
     }
   }
@@ -428,7 +440,7 @@ public:
                                 BoolObjectClosure* is_alive);
 
   // End Of List.
-  inline bool has_next() const { return _next != ReferenceProcessor::sentinel_ref(); }
+  inline bool has_next() const { return _ref != NULL; }
 
   // Get oop to the Reference object.
   inline oop obj() const { return _ref; }
@@ -468,9 +480,13 @@ public:
   inline void update_discovered() {
     // First _prev_next ref actually points into DiscoveredList (gross).
     if (UseCompressedOops) {
-      _keep_alive->do_oop((narrowOop*)_prev_next);
+      if (!oopDesc::is_null(*(narrowOop*)_prev_next)) {
+        _keep_alive->do_oop((narrowOop*)_prev_next);
+      }
     } else {
-      _keep_alive->do_oop((oop*)_prev_next);
+      if (!oopDesc::is_null(*(oop*)_prev_next)) {
+        _keep_alive->do_oop((oop*)_prev_next);
+      }
     }
   }
 
@@ -488,6 +504,7 @@ public:
 private:
   DiscoveredList&    _refs_list;
   HeapWord*          _prev_next;
+  oop                _prev;
   oop                _ref;
   HeapWord*          _discovered_addr;
   oop                _next;
@@ -509,6 +526,7 @@ inline DiscoveredListIterator::DiscoveredListIterator(DiscoveredList&    refs_li
                                                       BoolObjectClosure* is_alive)
   : _refs_list(refs_list),
     _prev_next(refs_list.adr_head()),
+    _prev(NULL),
     _ref(refs_list.head()),
 #ifdef ASSERT
     _first_seen(refs_list.head()),
@@ -517,7 +535,7 @@ inline DiscoveredListIterator::DiscoveredListIterator(DiscoveredList&    refs_li
     _processed(0),
     _removed(0),
 #endif
-    _next(refs_list.head()),
+    _next(NULL),
     _keep_alive(keep_alive),
     _is_alive(is_alive)
 { }
@@ -544,26 +562,43 @@ inline void DiscoveredListIterator::load_ptrs(DEBUG_ONLY(bool allow_null_referen
 
 inline void DiscoveredListIterator::next() {
   _prev_next = _discovered_addr;
+  _prev = _ref;
   move_to_next();
 }
 
 inline void DiscoveredListIterator::remove() {
   assert(_ref->is_oop(), "Dropping a bad reference");
   oop_store_raw(_discovered_addr, NULL);
+
   // First _prev_next ref actually points into DiscoveredList (gross).
+  oop new_next;
+  if (_next == _ref) {
+    // At the end of the list, we should make _prev point to itself.
+    // If _ref is the first ref, then _prev_next will be in the DiscoveredList,
+    // and _prev will be NULL.
+    new_next = _prev;
+  } else {
+    new_next = _next;
+  }
+
   if (UseCompressedOops) {
     // Remove Reference object from list.
-    oopDesc::encode_store_heap_oop_not_null((narrowOop*)_prev_next, _next);
+    oopDesc::encode_store_heap_oop((narrowOop*)_prev_next, new_next);
   } else {
     // Remove Reference object from list.
-    oopDesc::store_heap_oop((oop*)_prev_next, _next);
+    oopDesc::store_heap_oop((oop*)_prev_next, new_next);
   }
   NOT_PRODUCT(_removed++);
   _refs_list.dec_length(1);
 }
 
 inline void DiscoveredListIterator::move_to_next() {
-  _ref = _next;
+  if (_ref == _next) {
+    // End of the list.
+    _ref = NULL;
+  } else {
+    _ref = _next;
+  }
   assert(_ref != _first_seen, "cyclic ref_list found");
   NOT_PRODUCT(_processed++);
 }
@@ -613,7 +648,7 @@ ReferenceProcessor::process_phase1(DiscoveredList&    refs_list,
   NOT_PRODUCT(
     if (PrintGCDetails && TraceReferenceGC) {
       gclog_or_tty->print_cr(" Dropped %d dead Refs out of %d "
-        "discovered Refs by policy  list " INTPTR_FORMAT,
+        "discovered Refs by policy, from list " INTPTR_FORMAT,
         iter.removed(), iter.processed(), (address)refs_list.head());
     }
   )
@@ -725,24 +760,30 @@ ReferenceProcessor::process_phase3(DiscoveredList&    refs_list,
     assert(iter.obj()->is_oop(UseConcMarkSweepGC), "Adding a bad reference");
     iter.next();
   }
-  // Remember to keep sentinel pointer around
+  // Remember to update the next pointer of the last ref.
   iter.update_discovered();
   // Close the reachable set
   complete_gc->do_void();
 }
 
 void
-ReferenceProcessor::abandon_partial_discovered_list(DiscoveredList& refs_list) {
-  oop obj = refs_list.head();
-  while (obj != sentinel_ref()) {
-    oop discovered = java_lang_ref_Reference::discovered(obj);
+ReferenceProcessor::clear_discovered_references(DiscoveredList& refs_list) {
+  oop obj = NULL;
+  oop next = refs_list.head();
+  while (next != obj) {
+    obj = next;
+    next = java_lang_ref_Reference::discovered(obj);
     java_lang_ref_Reference::set_discovered_raw(obj, NULL);
-    obj = discovered;
   }
-  refs_list.set_head(sentinel_ref());
+  refs_list.set_head(NULL);
   refs_list.set_length(0);
 }
 
+void
+ReferenceProcessor::abandon_partial_discovered_list(DiscoveredList& refs_list) {
+  clear_discovered_references(refs_list);
+}
+
 void ReferenceProcessor::abandon_partial_discovery() {
   // loop over the lists
   for (int i = 0; i < _max_num_q * subclasses_of_ref; i++) {
@@ -859,6 +900,9 @@ void ReferenceProcessor::balance_queues(DiscoveredList ref_lists[])
           refs_to_move = MIN2(ref_lists[from_idx].length() - avg_refs,
                               avg_refs - ref_lists[to_idx].length());
         }
+
+        assert(refs_to_move > 0, "otherwise the code below will fail");
+
         oop move_head = ref_lists[from_idx].head();
         oop move_tail = move_head;
         oop new_head  = move_head;
@@ -867,10 +911,24 @@ void ReferenceProcessor::balance_queues(DiscoveredList ref_lists[])
           move_tail = new_head;
           new_head = java_lang_ref_Reference::discovered(new_head);
         }
-        java_lang_ref_Reference::set_discovered(move_tail, ref_lists[to_idx].head());
+
+        // Add the chain to the to list.
+        if (ref_lists[to_idx].head() == NULL) {
+          // to list is empty. Make a loop at the end.
+          java_lang_ref_Reference::set_discovered(move_tail, move_tail);
+        } else {
+          java_lang_ref_Reference::set_discovered(move_tail, ref_lists[to_idx].head());
+        }
         ref_lists[to_idx].set_head(move_head);
         ref_lists[to_idx].inc_length(refs_to_move);
-        ref_lists[from_idx].set_head(new_head);
+
+        // Remove the chain from the from list.
+        if (move_tail == new_head) {
+          // We found the end of the from list.
+          ref_lists[from_idx].set_head(NULL);
+        } else {
+          ref_lists[from_idx].set_head(new_head);
+        }
         ref_lists[from_idx].dec_length(refs_to_move);
         if (ref_lists[from_idx].length() == 0) {
           break;
@@ -1082,42 +1140,40 @@ ReferenceProcessor::add_to_discovered_list_mt(DiscoveredList& refs_list,
   // First we must make sure this object is only enqueued once. CAS in a non null
   // discovered_addr.
   oop current_head = refs_list.head();
+  // The last ref must have its discovered field pointing to itself.
+  oop next_discovered = (current_head != NULL) ? current_head : obj;
 
   // Note: In the case of G1, this specific pre-barrier is strictly
   // not necessary because the only case we are interested in
   // here is when *discovered_addr is NULL (see the CAS further below),
   // so this will expand to nothing. As a result, we have manually
   // elided this out for G1, but left in the test for some future
-  // collector that might have need for a pre-barrier here.
-  if (_discovered_list_needs_barrier && !UseG1GC) {
-    if (UseCompressedOops) {
-      _bs->write_ref_field_pre((narrowOop*)discovered_addr, current_head);
-    } else {
-      _bs->write_ref_field_pre((oop*)discovered_addr, current_head);
-    }
-    guarantee(false, "Need to check non-G1 collector");
-  }
-  oop retest = oopDesc::atomic_compare_exchange_oop(current_head, discovered_addr,
+  // collector that might have need for a pre-barrier here, e.g.:-
+  // _bs->write_ref_field_pre((oop* or narrowOop*)discovered_addr, next_discovered);
+  assert(!_discovered_list_needs_barrier || UseG1GC,
+         "Need to check non-G1 collector: "
+         "may need a pre-write-barrier for CAS from NULL below");
+  oop retest = oopDesc::atomic_compare_exchange_oop(next_discovered, discovered_addr,
                                                     NULL);
   if (retest == NULL) {
     // This thread just won the right to enqueue the object.
-    // We have separate lists for enqueueing so no synchronization
+    // We have separate lists for enqueueing, so no synchronization
     // is necessary.
     refs_list.set_head(obj);
     refs_list.inc_length(1);
     if (_discovered_list_needs_barrier) {
-      _bs->write_ref_field((void*)discovered_addr, current_head);
+      _bs->write_ref_field((void*)discovered_addr, next_discovered);
     }
 
     if (TraceReferenceGC) {
-      gclog_or_tty->print_cr("Enqueued reference (mt) (" INTPTR_FORMAT ": %s)",
+      gclog_or_tty->print_cr("Discovered reference (mt) (" INTPTR_FORMAT ": %s)",
                              obj, obj->blueprint()->internal_name());
     }
   } else {
     // If retest was non NULL, another thread beat us to it:
     // The reference has already been discovered...
     if (TraceReferenceGC) {
-      gclog_or_tty->print_cr("Already enqueued reference (" INTPTR_FORMAT ": %s)",
+      gclog_or_tty->print_cr("Already discovered reference (" INTPTR_FORMAT ": %s)",
                              obj, obj->blueprint()->internal_name());
     }
   }
@@ -1142,7 +1198,7 @@ void ReferenceProcessor::verify_referent(oop obj) {
 //     (or part of the heap being collected, indicated by our "span"
 //     we don't treat it specially (i.e. we scan it as we would
 //     a normal oop, treating its references as strong references).
-//     This means that references can't be enqueued unless their
+//     This means that references can't be discovered unless their
 //     referent is also in the same span. This is the simplest,
 //     most "local" and most conservative approach, albeit one
 //     that may cause weak references to be enqueued least promptly.
@@ -1164,14 +1220,13 @@ void ReferenceProcessor::verify_referent(oop obj) {
 //     and complexity in processing these references.
 //     We call this choice the "RefeferentBasedDiscovery" policy.
 bool ReferenceProcessor::discover_reference(oop obj, ReferenceType rt) {
-  // We enqueue references only if we are discovering refs
-  // (rather than processing discovered refs).
+  // Make sure we are discovering refs (rather than processing discovered refs).
   if (!_discovering_refs || !RegisterReferences) {
     return false;
   }
-  // We only enqueue active references.
+  // We only discover active references.
   oop next = java_lang_ref_Reference::next(obj);
-  if (next != NULL) {
+  if (next != NULL) {   // Ref is no longer active
     return false;
   }
 
@@ -1184,8 +1239,8 @@ bool ReferenceProcessor::discover_reference(oop obj, ReferenceType rt) {
     return false;
   }
 
-  // We only enqueue references whose referents are not (yet) strongly
-  // reachable.
+  // We only discover references whose referents are not (yet)
+  // known to be strongly reachable.
   if (is_alive_non_header() != NULL) {
     verify_referent(obj);
     if (is_alive_non_header()->do_object_b(java_lang_ref_Reference::referent(obj))) {
@@ -1211,7 +1266,7 @@ bool ReferenceProcessor::discover_reference(oop obj, ReferenceType rt) {
   if (discovered != NULL) {
     // The reference has already been discovered...
     if (TraceReferenceGC) {
-      gclog_or_tty->print_cr("Already enqueued reference (" INTPTR_FORMAT ": %s)",
+      gclog_or_tty->print_cr("Already discovered reference (" INTPTR_FORMAT ": %s)",
                              obj, obj->blueprint()->internal_name());
     }
     if (RefDiscoveryPolicy == ReferentBasedDiscovery) {
@@ -1233,9 +1288,9 @@ bool ReferenceProcessor::discover_reference(oop obj, ReferenceType rt) {
 
   if (RefDiscoveryPolicy == ReferentBasedDiscovery) {
     verify_referent(obj);
-    // enqueue if and only if either:
-    // reference is in our span or
-    // we are an atomic collector and referent is in our span
+    // Discover if and only if EITHER:
+    // .. reference is in our span, OR
+    // .. we are an atomic collector and referent is in our span
     if (_span.contains(obj_addr) ||
         (discovery_is_atomic() &&
          _span.contains(java_lang_ref_Reference::referent(obj)))) {
@@ -1262,30 +1317,28 @@ bool ReferenceProcessor::discover_reference(oop obj, ReferenceType rt) {
     // here: the field will be visited later when processing the discovered
     // references.
     oop current_head = list->head();
+    // The last ref must have its discovered field pointing to itself.
+    oop next_discovered = (current_head != NULL) ? current_head : obj;
+
     // As in the case further above, since we are over-writing a NULL
     // pre-value, we can safely elide the pre-barrier here for the case of G1.
+    // e.g.:- _bs->write_ref_field_pre((oop* or narrowOop*)discovered_addr, next_discovered);
     assert(discovered == NULL, "control point invariant");
-    if (_discovered_list_needs_barrier && !UseG1GC) { // safe to elide for G1
-      if (UseCompressedOops) {
-        _bs->write_ref_field_pre((narrowOop*)discovered_addr, current_head);
-      } else {
-        _bs->write_ref_field_pre((oop*)discovered_addr, current_head);
-      }
-      guarantee(false, "Need to check non-G1 collector");
-    }
-    oop_store_raw(discovered_addr, current_head);
+    assert(!_discovered_list_needs_barrier || UseG1GC,
+           "For non-G1 collector, may need a pre-write-barrier for CAS from NULL below");
+    oop_store_raw(discovered_addr, next_discovered);
     if (_discovered_list_needs_barrier) {
-      _bs->write_ref_field((void*)discovered_addr, current_head);
+      _bs->write_ref_field((void*)discovered_addr, next_discovered);
     }
     list->set_head(obj);
     list->inc_length(1);
 
     if (TraceReferenceGC) {
-      gclog_or_tty->print_cr("Enqueued reference (" INTPTR_FORMAT ": %s)",
+      gclog_or_tty->print_cr("Discovered reference (" INTPTR_FORMAT ": %s)",
                                 obj, obj->blueprint()->internal_name());
     }
   }
-  assert(obj->is_oop(), "Enqueued a bad reference");
+  assert(obj->is_oop(), "Discovered a bad reference");
   verify_referent(obj);
   return true;
 }
@@ -1437,22 +1490,12 @@ void ReferenceProcessor::verify_ok_to_handle_reflists() {
 }
 #endif
 
-void ReferenceProcessor::verify() {
-  guarantee(sentinel_ref() != NULL && sentinel_ref()->is_oop(), "Lost _sentinelRef");
-}
-
 #ifndef PRODUCT
 void ReferenceProcessor::clear_discovered_references() {
   guarantee(!_discovering_refs, "Discovering refs?");
   for (int i = 0; i < _max_num_q * subclasses_of_ref; i++) {
-    oop obj = _discoveredSoftRefs[i].head();
-    while (obj != sentinel_ref()) {
-      oop next = java_lang_ref_Reference::discovered(obj);
-      java_lang_ref_Reference::set_discovered(obj, (oop) NULL);
-      obj = next;
-    }
-    _discoveredSoftRefs[i].set_head(sentinel_ref());
-    _discoveredSoftRefs[i].set_length(0);
+    clear_discovered_references(_discoveredSoftRefs[i]);
   }
 }
+
 #endif // PRODUCT
diff --git a/hotspot/src/share/vm/memory/referenceProcessor.hpp b/hotspot/src/share/vm/memory/referenceProcessor.hpp
index fceb4c4..8178f60 100644
--- a/hotspot/src/share/vm/memory/referenceProcessor.hpp
+++ b/hotspot/src/share/vm/memory/referenceProcessor.hpp
@@ -52,8 +52,8 @@ class DiscoveredList;
 
 class ReferenceProcessor : public CHeapObj {
  protected:
-  // End of list marker
-  static oop  _sentinelRef;
+  // Compatibility with pre-4965777 JDK's
+  static bool _pending_list_uses_discovered_field;
   MemRegion   _span; // (right-open) interval of heap
                      // subject to wkref discovery
   bool        _discovering_refs;      // true when discovery enabled
@@ -106,8 +106,6 @@ class ReferenceProcessor : public CHeapObj {
   int max_num_q()                        { return _max_num_q; }
   void set_active_mt_degree(int v)       { _num_q = v; }
   DiscoveredList* discovered_soft_refs() { return _discoveredSoftRefs; }
-  static oop  sentinel_ref()             { return _sentinelRef; }
-  static oop* adr_sentinel_ref()         { return &_sentinelRef; }
   ReferencePolicy* setup_policy(bool always_clear) {
     _current_soft_ref_policy = always_clear ?
       _always_clear_soft_ref_policy : _default_soft_ref_policy;
@@ -115,7 +113,6 @@ class ReferenceProcessor : public CHeapObj {
     return _current_soft_ref_policy;
   }
 
- public:
   // Process references with a certain reachability level.
   void process_discovered_reflist(DiscoveredList               refs_lists[],
                                   ReferencePolicy*             policy,
@@ -230,6 +227,7 @@ class ReferenceProcessor : public CHeapObj {
                                         HeapWord* discovered_addr);
   void verify_ok_to_handle_reflists() PRODUCT_RETURN;
 
+  void clear_discovered_references(DiscoveredList& refs_list);
   void abandon_partial_discovered_list(DiscoveredList& refs_list);
 
   // Calculate the number of jni handles.
@@ -300,6 +298,13 @@ class ReferenceProcessor : public CHeapObj {
   bool discovery_is_atomic() const { return _discovery_is_atomic; }
   void set_atomic_discovery(bool atomic) { _discovery_is_atomic = atomic; }
 
+  // whether the JDK in which we are embedded is a pre-4965777 JDK,
+  // and thus whether or not it uses the discovered field to chain
+  // the entries in the pending list.
+  static bool pending_list_uses_discovered_field() {
+    return _pending_list_uses_discovered_field;
+  }
+
   // whether discovery is done by multiple threads same-old-timeously
   bool discovery_is_mt() const { return _discovery_is_mt; }
   void set_mt_discovery(bool mt) { _discovery_is_mt = mt; }
@@ -314,7 +319,6 @@ class ReferenceProcessor : public CHeapObj {
 
   // iterate over oops
   void weak_oops_do(OopClosure* f);       // weak roots
-  static void oops_do(OopClosure* f);     // strong root(s)
 
   // Balance each of the discovered lists.
   void balance_all_queues();
@@ -340,7 +344,6 @@ class ReferenceProcessor : public CHeapObj {
   // debugging
   void verify_no_references_recorded() PRODUCT_RETURN;
   void verify_referent(oop obj)        PRODUCT_RETURN;
-  static void verify();
 
   // clear the discovered lists (unlinking each entry).
   void clear_discovered_references() PRODUCT_RETURN;
@@ -524,12 +527,10 @@ protected:
   EnqueueTask(ReferenceProcessor& ref_processor,
               DiscoveredList      refs_lists[],
               HeapWord*           pending_list_addr,
-              oop                 sentinel_ref,
               int                 n_queues)
     : _ref_processor(ref_processor),
       _refs_lists(refs_lists),
       _pending_list_addr(pending_list_addr),
-      _sentinel_ref(sentinel_ref),
       _n_queues(n_queues)
   { }
 
@@ -540,7 +541,6 @@ protected:
   ReferenceProcessor& _ref_processor;
   DiscoveredList*     _refs_lists;
   HeapWord*           _pending_list_addr;
-  oop                 _sentinel_ref;
   int                 _n_queues;
 };
 
diff --git a/hotspot/src/share/vm/memory/resourceArea.cpp b/hotspot/src/share/vm/memory/resourceArea.cpp
index 90c1e6e..28d5943 100644
--- a/hotspot/src/share/vm/memory/resourceArea.cpp
+++ b/hotspot/src/share/vm/memory/resourceArea.cpp
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 //------------------------------ResourceMark-----------------------------------
 debug_only(int ResourceArea::_warned;)      // to suppress multiple warnings
diff --git a/hotspot/src/share/vm/memory/resourceArea.hpp b/hotspot/src/share/vm/memory/resourceArea.hpp
index 728a12f..3d31248 100644
--- a/hotspot/src/share/vm/memory/resourceArea.hpp
+++ b/hotspot/src/share/vm/memory/resourceArea.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // The resource area holds temporary data structures in the VM.
 // The actual allocation areas are thread local. Typical usage:
@@ -52,6 +55,7 @@
 class ResourceArea: public Arena {
   friend class ResourceMark;
   friend class DeoptResourceMark;
+  friend class VMStructs;
   debug_only(int _nesting;)             // current # of nested ResourceMarks
   debug_only(static int _warned;)       // to suppress multiple warnings
 
diff --git a/hotspot/src/share/vm/memory/sharedHeap.cpp b/hotspot/src/share/vm/memory/sharedHeap.cpp
index e386e72..15d8eaa 100644
--- a/hotspot/src/share/vm/memory/sharedHeap.cpp
+++ b/hotspot/src/share/vm/memory/sharedHeap.cpp
@@ -146,7 +146,6 @@ void SharedHeap::process_strong_roots(bool activate_scope,
   assert(_strong_roots_parity != 0, "must have called prologue code");
   if (!_process_strong_tasks->is_task_claimed(SH_PS_Universe_oops_do)) {
     Universe::oops_do(roots);
-    ReferenceProcessor::oops_do(roots);
     // Consider perm-gen discovered lists to be strong.
     perm_gen()->ref_processor()->weak_oops_do(roots);
   }
diff --git a/hotspot/src/share/vm/memory/space.hpp b/hotspot/src/share/vm/memory/space.hpp
index 3693b64..ef7e231 100644
--- a/hotspot/src/share/vm/memory/space.hpp
+++ b/hotspot/src/share/vm/memory/space.hpp
@@ -44,6 +44,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 // A space is an abstraction for the "storage units" backing
 // up the generation abstraction. It includes specific
diff --git a/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp b/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
index 74f2c44..03d6e6b 100644
--- a/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
+++ b/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
@@ -38,6 +38,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // Thread-Local Edens support
 
diff --git a/hotspot/src/share/vm/memory/threadLocalAllocBuffer.hpp b/hotspot/src/share/vm/memory/threadLocalAllocBuffer.hpp
index 4b88835..1b8bb0a 100644
--- a/hotspot/src/share/vm/memory/threadLocalAllocBuffer.hpp
+++ b/hotspot/src/share/vm/memory/threadLocalAllocBuffer.hpp
@@ -124,16 +124,7 @@ public:
   // Reserve space at the end of TLAB
   static size_t end_reserve() {
     int reserve_size = typeArrayOopDesc::header_size(T_INT);
-    if (AllocatePrefetchStyle == 3) {
-      // BIS is used to prefetch - we need a space for it.
-      // +1 for rounding up to next cache line +1 to be safe
-      int lines = AllocatePrefetchLines + 2;
-      int step_size = AllocatePrefetchStepSize;
-      int distance = AllocatePrefetchDistance;
-      int prefetch_end = (distance + step_size*lines)/(int)HeapWordSize;
-      reserve_size = MAX2(reserve_size, prefetch_end);
-    }
-    return reserve_size;
+    return MAX2(reserve_size, VM_Version::reserve_for_allocation_prefetch());
   }
   static size_t alignment_reserve()              { return align_object_size(end_reserve()); }
   static size_t alignment_reserve_in_bytes()     { return alignment_reserve() * HeapWordSize; }
diff --git a/hotspot/src/share/vm/memory/universe.cpp b/hotspot/src/share/vm/memory/universe.cpp
index ff14097..4652b40 100644
--- a/hotspot/src/share/vm/memory/universe.cpp
+++ b/hotspot/src/share/vm/memory/universe.cpp
@@ -89,6 +89,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 #ifndef SERIALGC
 #include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp"
 #include "gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp"
@@ -1177,7 +1180,7 @@ void Universe::flush_dependents_on(instanceKlassHandle dependee) {
   // stopped dring the safepoint so CodeCache will be safe to update without
   // holding the CodeCache_lock.
 
-  DepChange changes(dependee);
+  KlassDepChange changes(dependee);
 
   // Compute the dependent nmethods
   if (CodeCache::mark_for_deoptimization(changes) > 0) {
@@ -1187,6 +1190,37 @@ void Universe::flush_dependents_on(instanceKlassHandle dependee) {
   }
 }
 
+// Flushes compiled methods dependent on a particular CallSite
+// instance when its target is different than the given MethodHandle.
+void Universe::flush_dependents_on(Handle call_site, Handle method_handle) {
+  assert_lock_strong(Compile_lock);
+
+  if (CodeCache::number_of_nmethods_with_dependencies() == 0) return;
+
+  // CodeCache can only be updated by a thread_in_VM and they will all be
+  // stopped dring the safepoint so CodeCache will be safe to update without
+  // holding the CodeCache_lock.
+
+  CallSiteDepChange changes(call_site(), method_handle());
+
+  // Compute the dependent nmethods that have a reference to a
+  // CallSite object.  We use instanceKlass::mark_dependent_nmethod
+  // directly instead of CodeCache::mark_for_deoptimization because we
+  // want dependents on the call site class only not all classes in
+  // the ContextStream.
+  int marked = 0;
+  {
+    MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
+    instanceKlass* call_site_klass = instanceKlass::cast(call_site->klass());
+    marked = call_site_klass->mark_dependent_nmethods(changes);
+  }
+  if (marked > 0) {
+    // At least one nmethod has been marked for deoptimization
+    VM_Deoptimize op;
+    VMThread::execute(&op);
+  }
+}
+
 #ifdef HOTSWAP
 // Flushes compiled methods dependent on dependee in the evolutionary sense
 void Universe::flush_evol_dependents_on(instanceKlassHandle ev_k_h) {
diff --git a/hotspot/src/share/vm/memory/universe.hpp b/hotspot/src/share/vm/memory/universe.hpp
index 04f289a..0f90ff5 100644
--- a/hotspot/src/share/vm/memory/universe.hpp
+++ b/hotspot/src/share/vm/memory/universe.hpp
@@ -439,6 +439,7 @@ class Universe: AllStatic {
 
   // Flushing and deoptimization
   static void flush_dependents_on(instanceKlassHandle dependee);
+  static void flush_dependents_on(Handle call_site, Handle method_handle);
 #ifdef HOTSWAP
   // Flushing and deoptimization in case of evolution
   static void flush_evol_dependents_on(instanceKlassHandle dependee);
diff --git a/hotspot/src/share/vm/oops/constMethodKlass.cpp b/hotspot/src/share/vm/oops/constMethodKlass.cpp
index 6e06531..509b411 100644
--- a/hotspot/src/share/vm/oops/constMethodKlass.cpp
+++ b/hotspot/src/share/vm/oops/constMethodKlass.cpp
@@ -172,11 +172,6 @@ void constMethodKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
 int constMethodKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
   assert(obj->is_constMethod(), "should be constMethod");
   constMethodOop cm_oop = constMethodOop(obj);
-#if 0
-  PSParallelCompact::adjust_pointer(cm_oop->adr_method());
-  PSParallelCompact::adjust_pointer(cm_oop->adr_exception_table());
-  PSParallelCompact::adjust_pointer(cm_oop->adr_stackmap_data());
-#endif
   oop* const beg_oop = cm_oop->oop_block_beg();
   oop* const end_oop = cm_oop->oop_block_end();
   for (oop* cur_oop = beg_oop; cur_oop < end_oop; ++cur_oop) {
diff --git a/hotspot/src/share/vm/oops/constantPoolKlass.cpp b/hotspot/src/share/vm/oops/constantPoolKlass.cpp
index 362e275..0b3a67a 100644
--- a/hotspot/src/share/vm/oops/constantPoolKlass.cpp
+++ b/hotspot/src/share/vm/oops/constantPoolKlass.cpp
@@ -44,6 +44,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 #ifndef SERIALGC
 #include "gc_implementation/parNew/parOopClosures.inline.hpp"
 #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
diff --git a/hotspot/src/share/vm/oops/constantPoolOop.cpp b/hotspot/src/share/vm/oops/constantPoolOop.cpp
index a46f4eb..87280c6 100644
--- a/hotspot/src/share/vm/oops/constantPoolOop.cpp
+++ b/hotspot/src/share/vm/oops/constantPoolOop.cpp
@@ -1355,7 +1355,7 @@ static void print_cpool_bytes(jint cnt, u1 *bytes) {
       }
       case JVM_CONSTANT_Long: {
         u8 val = Bytes::get_Java_u8(bytes);
-        printf("long         "INT64_FORMAT, *(jlong *) &val);
+        printf("long         "INT64_FORMAT, (int64_t) *(jlong *) &val);
         ent_size = 8;
         idx++; // Long takes two cpool slots
         break;
diff --git a/hotspot/src/share/vm/oops/cpCacheKlass.cpp b/hotspot/src/share/vm/oops/cpCacheKlass.cpp
index 86d9dc0..843f095 100644
--- a/hotspot/src/share/vm/oops/cpCacheKlass.cpp
+++ b/hotspot/src/share/vm/oops/cpCacheKlass.cpp
@@ -63,8 +63,10 @@ constantPoolCacheOop constantPoolCacheKlass::allocate(int length,
   //   CollectedHeap::permanent_obj_allocate(klass, size, CHECK_NULL);
 
   oop obj = CollectedHeap::permanent_obj_allocate_no_klass_install(klass, size, CHECK_NULL);
-  NOT_PRODUCT(Universe::heap()->check_for_bad_heap_word_value((HeapWord*) obj,
-                                                              size));
+#ifndef PRODUCT
+  const size_t hs = oopDesc::header_size();
+  Universe::heap()->check_for_bad_heap_word_value(((HeapWord*) obj)+hs, size-hs);
+#endif
   constantPoolCacheOop cache = (constantPoolCacheOop) obj;
   assert(!UseConcMarkSweepGC || obj->klass_or_null() == NULL,
          "klass should be NULL here when using CMS");
diff --git a/hotspot/src/share/vm/oops/cpCacheOop.cpp b/hotspot/src/share/vm/oops/cpCacheOop.cpp
index 087c8a1..678bc13 100644
--- a/hotspot/src/share/vm/oops/cpCacheOop.cpp
+++ b/hotspot/src/share/vm/oops/cpCacheOop.cpp
@@ -128,17 +128,13 @@ bool ConstantPoolCacheEntry::same_methodOop(oop cur_f1, oop f1) {
 void ConstantPoolCacheEntry::set_field(Bytecodes::Code get_code,
                                        Bytecodes::Code put_code,
                                        KlassHandle field_holder,
-                                       int orig_field_index,
+                                       int field_index,
                                        int field_offset,
                                        TosState field_type,
                                        bool is_final,
                                        bool is_volatile) {
   set_f1(field_holder()->java_mirror());
   set_f2(field_offset);
-  // The field index is used by jvm/ti and is the index into fields() array
-  // in holder instanceKlass.  This is scaled by instanceKlass::next_offset.
-  assert((orig_field_index % instanceKlass::next_offset) == 0, "wierd index");
-  const int field_index = orig_field_index / instanceKlass::next_offset;
   assert(field_index <= field_index_mask,
          "field index does not fit in low flag bits");
   set_flags(as_flags(field_type, is_final, false, is_volatile, false, false) |
@@ -149,7 +145,7 @@ void ConstantPoolCacheEntry::set_field(Bytecodes::Code get_code,
 }
 
 int  ConstantPoolCacheEntry::field_index() const {
-  return (_flags & field_index_mask) * instanceKlass::next_offset;
+  return (_flags & field_index_mask);
 }
 
 void ConstantPoolCacheEntry::set_method(Bytecodes::Code invoke_code,
diff --git a/hotspot/src/share/vm/oops/fieldInfo.hpp b/hotspot/src/share/vm/oops/fieldInfo.hpp
new file mode 100644
index 0000000..69de3ae
--- /dev/null
+++ b/hotspot/src/share/vm/oops/fieldInfo.hpp
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef SHARE_VM_OOPS_FIELDINFO_HPP
+#define SHARE_VM_OOPS_FIELDINFO_HPP
+
+#include "oops/typeArrayOop.hpp"
+#include "classfile/vmSymbols.hpp"
+
+// This class represents the field information contained in the fields
+// array of an instanceKlass.  Currently it's laid on top an array of
+// Java shorts but in the future it could simply be used as a real
+// array type.  FieldInfo generally shouldn't be used directly.
+// Fields should be queried either through instanceKlass or through
+// the various FieldStreams.
+class FieldInfo VALUE_OBJ_CLASS_SPEC {
+  friend class fieldDescriptor;
+  friend class JavaFieldStream;
+  friend class ClassFileParser;
+
+ public:
+  // fields
+  // Field info extracted from the class file and stored
+  // as an array of 7 shorts
+  enum FieldOffset {
+    access_flags_offset      = 0,
+    name_index_offset        = 1,
+    signature_index_offset   = 2,
+    initval_index_offset     = 3,
+    low_offset               = 4,
+    high_offset              = 5,
+    generic_signature_offset = 6,
+    field_slots              = 7
+  };
+
+ private:
+  u2 _shorts[field_slots];
+
+  void set_name_index(u2 val)                    { _shorts[name_index_offset] = val;         }
+  void set_signature_index(u2 val)               { _shorts[signature_index_offset] = val;    }
+  void set_initval_index(u2 val)                 { _shorts[initval_index_offset] = val;      }
+  void set_generic_signature_index(u2 val)       { _shorts[generic_signature_offset] = val;  }
+
+  u2 name_index() const                          { return _shorts[name_index_offset];        }
+  u2 signature_index() const                     { return _shorts[signature_index_offset];   }
+  u2 initval_index() const                       { return _shorts[initval_index_offset];     }
+  u2 generic_signature_index() const             { return _shorts[generic_signature_offset]; }
+
+ public:
+  static FieldInfo* from_field_array(typeArrayOop fields, int index) {
+    return ((FieldInfo*)fields->short_at_addr(index * field_slots));
+  }
+
+  void initialize(u2 access_flags,
+                  u2 name_index,
+                  u2 signature_index,
+                  u2 initval_index,
+                  u2 generic_signature_index,
+                  u4 offset) {
+    _shorts[access_flags_offset] = access_flags;
+    _shorts[name_index_offset] = name_index;
+    _shorts[signature_index_offset] = signature_index;
+    _shorts[initval_index_offset] = initval_index;
+    _shorts[generic_signature_offset] = generic_signature_index;
+    set_offset(offset);
+  }
+
+  u2 access_flags() const                        { return _shorts[access_flags_offset];            }
+  u4 offset() const                              { return build_int_from_shorts(_shorts[low_offset], _shorts[high_offset]); }
+
+  Symbol* name(constantPoolHandle cp) const {
+    int index = name_index();
+    if (is_internal()) {
+      return lookup_symbol(index);
+    }
+    return cp->symbol_at(index);
+  }
+
+  Symbol* signature(constantPoolHandle cp) const {
+    int index = signature_index();
+    if (is_internal()) {
+      return lookup_symbol(index);
+    }
+    return cp->symbol_at(index);
+  }
+
+  Symbol* generic_signature(constantPoolHandle cp) const {
+    int index = generic_signature_index();
+    if (index == 0) {
+      return NULL;
+    }
+    return cp->symbol_at(index);
+  }
+
+  void set_access_flags(u2 val)                  { _shorts[access_flags_offset] = val;             }
+  void set_offset(u4 val)                        {
+    _shorts[low_offset] = extract_low_short_from_int(val);
+    _shorts[high_offset] = extract_high_short_from_int(val);
+  }
+
+  bool is_internal() const {
+    return (access_flags() & JVM_ACC_FIELD_INTERNAL) != 0;
+  }
+
+  Symbol* lookup_symbol(int symbol_index) const {
+    assert(is_internal(), "only internal fields");
+    return vmSymbols::symbol_at((vmSymbols::SID)symbol_index);
+  }
+};
+
+#endif // SHARE_VM_OOPS_FIELDINFO_HPP
diff --git a/hotspot/src/share/vm/oops/fieldStreams.hpp b/hotspot/src/share/vm/oops/fieldStreams.hpp
new file mode 100644
index 0000000..07c28f3
--- /dev/null
+++ b/hotspot/src/share/vm/oops/fieldStreams.hpp
@@ -0,0 +1,174 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef SHARE_VM_OOPS_FIELDSTREAMS_HPP
+#define SHARE_VM_OOPS_FIELDSTREAMS_HPP
+
+#include "oops/instanceKlass.hpp"
+#include "oops/fieldInfo.hpp"
+
+// The is the base class for iteration over the fields array
+// describing the declared fields in the class.  Several subclasses
+// are provided depending on the kind of iteration required.  The
+// JavaFieldStream is for iterating over regular Java fields and it
+// generally the preferred iterator.  InternalFieldStream only
+// iterates over fields that have been injected by the JVM.
+// AllFieldStream exposes all fields and should only be used in rare
+// cases.
+class FieldStreamBase : public StackObj {
+ protected:
+  typeArrayHandle     _fields;
+  constantPoolHandle  _constants;
+  int                 _index;
+  int                 _limit;
+
+  FieldInfo* field() const { return FieldInfo::from_field_array(_fields(), _index); }
+
+  FieldStreamBase(typeArrayHandle fields, constantPoolHandle constants, int start, int limit) {
+    _fields = fields;
+    _constants = constants;
+    _index = start;
+    _limit = limit;
+  }
+
+  FieldStreamBase(typeArrayHandle fields, constantPoolHandle constants) {
+    _fields = fields;
+    _constants = constants;
+    _index = 0;
+    _limit = fields->length() / FieldInfo::field_slots;
+  }
+
+ public:
+  FieldStreamBase(instanceKlass* klass) {
+    _fields = klass->fields();
+    _constants = klass->constants();
+    _index = 0;
+    _limit = klass->java_fields_count();
+  }
+  FieldStreamBase(instanceKlassHandle klass) {
+    _fields = klass->fields();
+    _constants = klass->constants();
+    _index = 0;
+    _limit = klass->java_fields_count();
+  }
+
+  // accessors
+  int index() const                 { return _index; }
+
+  void next() { _index += 1; }
+  bool done() const { return _index >= _limit; }
+
+  // Accessors for current field
+  AccessFlags access_flags() const {
+    AccessFlags flags;
+    flags.set_flags(field()->access_flags());
+    return flags;
+  }
+
+  void set_access_flags(u2 flags) const {
+    field()->set_access_flags(flags);
+  }
+
+  void set_access_flags(AccessFlags flags) const {
+    set_access_flags(flags.as_short());
+  }
+
+  Symbol* name() const {
+    return field()->name(_constants);
+  }
+
+  Symbol* signature() const {
+    return field()->signature(_constants);
+  }
+
+  Symbol* generic_signature() const {
+    return field()->generic_signature(_constants);
+  }
+
+  int offset() const {
+    return field()->offset();
+  }
+
+  void set_offset(int offset) {
+    field()->set_offset(offset);
+  }
+};
+
+// Iterate over only the internal fields
+class JavaFieldStream : public FieldStreamBase {
+ public:
+  JavaFieldStream(instanceKlass* k):      FieldStreamBase(k->fields(), k->constants(), 0, k->java_fields_count()) {}
+  JavaFieldStream(instanceKlassHandle k): FieldStreamBase(k->fields(), k->constants(), 0, k->java_fields_count()) {}
+
+  int name_index() const {
+    assert(!field()->is_internal(), "regular only");
+    return field()->name_index();
+  }
+  void set_name_index(int index) {
+    assert(!field()->is_internal(), "regular only");
+    field()->set_name_index(index);
+  }
+  int signature_index() const {
+    assert(!field()->is_internal(), "regular only");
+    return field()->signature_index();
+  }
+  void set_signature_index(int index) {
+    assert(!field()->is_internal(), "regular only");
+    field()->set_signature_index(index);
+  }
+  int generic_signature_index() const {
+    assert(!field()->is_internal(), "regular only");
+    return field()->generic_signature_index();
+  }
+  void set_generic_signature_index(int index) {
+    assert(!field()->is_internal(), "regular only");
+    field()->set_generic_signature_index(index);
+  }
+  int initval_index() const {
+    assert(!field()->is_internal(), "regular only");
+    return field()->initval_index();
+  }
+  void set_initval_index(int index) {
+    assert(!field()->is_internal(), "regular only");
+    return field()->set_initval_index(index);
+  }
+};
+
+
+// Iterate over only the internal fields
+class InternalFieldStream : public FieldStreamBase {
+ public:
+  InternalFieldStream(instanceKlass* k):      FieldStreamBase(k->fields(), k->constants(), k->java_fields_count(), k->all_fields_count()) {}
+  InternalFieldStream(instanceKlassHandle k): FieldStreamBase(k->fields(), k->constants(), k->java_fields_count(), k->all_fields_count()) {}
+};
+
+
+class AllFieldStream : public FieldStreamBase {
+ public:
+  AllFieldStream(typeArrayHandle fields, constantPoolHandle constants): FieldStreamBase(fields, constants) {}
+  AllFieldStream(instanceKlass* k):      FieldStreamBase(k->fields(), k->constants()) {}
+  AllFieldStream(instanceKlassHandle k): FieldStreamBase(k->fields(), k->constants()) {}
+};
+
+#endif // SHARE_VM_OOPS_FIELDSTREAMS_HPP
diff --git a/hotspot/src/share/vm/oops/generateOopMap.cpp b/hotspot/src/share/vm/oops/generateOopMap.cpp
index 10b39c6..58ef931 100644
--- a/hotspot/src/share/vm/oops/generateOopMap.cpp
+++ b/hotspot/src/share/vm/oops/generateOopMap.cpp
@@ -963,10 +963,21 @@ void GenerateOopMap::init_basic_blocks() {
   // initialize the CellTypeState-related information.
   init_state();
 
-  // We allocate space for all state-vectors for all basicblocks in one huge chuck.
-  // Then in the next part of the code, we set a pointer in each _basic_block that
-  // points to each piece.
-  CellTypeState *basicBlockState = NEW_RESOURCE_ARRAY(CellTypeState, bbNo * _state_len);
+  // We allocate space for all state-vectors for all basicblocks in one huge
+  // chunk.  Then in the next part of the code, we set a pointer in each
+  // _basic_block that points to each piece.
+
+  // The product of bbNo and _state_len can get large if there are lots of
+  // basic blocks and stack/locals/monitors.  Need to check to make sure
+  // we don't overflow the capacity of a pointer.
+  if ((unsigned)bbNo > UINTPTR_MAX / sizeof(CellTypeState) / _state_len) {
+    report_error("The amount of memory required to analyze this method "
+                 "exceeds addressable range");
+    return;
+  }
+
+  CellTypeState *basicBlockState =
+      NEW_RESOURCE_ARRAY(CellTypeState, bbNo * _state_len);
   memset(basicBlockState, 0, bbNo * _state_len * sizeof(CellTypeState));
 
   // Make a pass over the basicblocks and assign their state vectors.
@@ -1556,9 +1567,7 @@ void GenerateOopMap::interp1(BytecodeStream *itr) {
     case Bytecodes::_jsr:               do_jsr(itr->dest());         break;
     case Bytecodes::_jsr_w:             do_jsr(itr->dest_w());       break;
 
-    case Bytecodes::_getstatic:         do_field(true,  true,
-                                                 itr->get_index_u2_cpcache(),
-                                                 itr->bci()); break;
+    case Bytecodes::_getstatic:         do_field(true,  true,  itr->get_index_u2_cpcache(), itr->bci()); break;
     case Bytecodes::_putstatic:         do_field(false, true,  itr->get_index_u2_cpcache(), itr->bci()); break;
     case Bytecodes::_getfield:          do_field(true,  false, itr->get_index_u2_cpcache(), itr->bci()); break;
     case Bytecodes::_putfield:          do_field(false, false, itr->get_index_u2_cpcache(), itr->bci()); break;
diff --git a/hotspot/src/share/vm/oops/instanceKlass.cpp b/hotspot/src/share/vm/oops/instanceKlass.cpp
index ddc91c2..20b0a96 100644
--- a/hotspot/src/share/vm/oops/instanceKlass.cpp
+++ b/hotspot/src/share/vm/oops/instanceKlass.cpp
@@ -36,6 +36,7 @@
 #include "memory/genOopClosures.inline.hpp"
 #include "memory/oopFactory.hpp"
 #include "memory/permGen.hpp"
+#include "oops/fieldStreams.hpp"
 #include "oops/instanceKlass.hpp"
 #include "oops/instanceMirrorKlass.hpp"
 #include "oops/instanceOop.hpp"
@@ -60,6 +61,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 #ifndef SERIALGC
 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
 #include "gc_implementation/g1/g1OopClosures.inline.hpp"
@@ -782,14 +786,11 @@ void instanceKlass::mask_for(methodHandle method, int bci,
 
 
 bool instanceKlass::find_local_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const {
-  const int n = fields()->length();
-  for (int i = 0; i < n; i += next_offset ) {
-    int name_index = fields()->ushort_at(i + name_index_offset);
-    int sig_index  = fields()->ushort_at(i + signature_index_offset);
-    Symbol* f_name = constants()->symbol_at(name_index);
-    Symbol* f_sig  = constants()->symbol_at(sig_index);
+  for (JavaFieldStream fs(as_klassOop()); !fs.done(); fs.next()) {
+    Symbol* f_name = fs.name();
+    Symbol* f_sig  = fs.signature();
     if (f_name == name && f_sig == sig) {
-      fd->initialize(as_klassOop(), i);
+      fd->initialize(as_klassOop(), fs.index());
       return true;
     }
   }
@@ -803,11 +804,10 @@ void instanceKlass::shared_symbols_iterate(SymbolClosure* closure) {
   closure->do_symbol(&_source_file_name);
   closure->do_symbol(&_source_debug_extension);
 
-  const int n = fields()->length();
-  for (int i = 0; i < n; i += next_offset ) {
-    int name_index = fields()->ushort_at(i + name_index_offset);
+  for (JavaFieldStream fs(this); !fs.done(); fs.next()) {
+    int name_index = fs.name_index();
     closure->do_symbol(constants()->symbol_at_addr(name_index));
-    int sig_index  = fields()->ushort_at(i + signature_index_offset);
+    int sig_index  = fs.signature_index();
     closure->do_symbol(constants()->symbol_at_addr(sig_index));
   }
 }
@@ -872,10 +872,9 @@ klassOop instanceKlass::find_field(Symbol* name, Symbol* sig, bool is_static, fi
 
 
 bool instanceKlass::find_local_field_from_offset(int offset, bool is_static, fieldDescriptor* fd) const {
-  int length = fields()->length();
-  for (int i = 0; i < length; i += next_offset) {
-    if (offset_from_fields( i ) == offset) {
-      fd->initialize(as_klassOop(), i);
+  for (JavaFieldStream fs(as_klassOop()); !fs.done(); fs.next()) {
+    if (fs.offset() == offset) {
+      fd->initialize(as_klassOop(), fs.index());
       if (fd->is_static() == is_static) return true;
     }
   }
@@ -906,11 +905,12 @@ void instanceKlass::methods_do(void f(methodOop method)) {
 
 
 void instanceKlass::do_local_static_fields(FieldClosure* cl) {
-  fieldDescriptor fd;
-  int length = fields()->length();
-  for (int i = 0; i < length; i += next_offset) {
-    fd.initialize(as_klassOop(), i);
-    if (fd.is_static()) cl->do_field(&fd);
+  for (JavaFieldStream fs(this); !fs.done(); fs.next()) {
+    if (fs.access_flags().is_static()) {
+      fieldDescriptor fd;
+      fd.initialize(as_klassOop(), fs.index());
+      cl->do_field(&fd);
+    }
   }
 }
 
@@ -922,11 +922,12 @@ void instanceKlass::do_local_static_fields(void f(fieldDescriptor*, TRAPS), TRAP
 
 
 void instanceKlass::do_local_static_fields_impl(instanceKlassHandle this_oop, void f(fieldDescriptor* fd, TRAPS), TRAPS) {
-  fieldDescriptor fd;
-  int length = this_oop->fields()->length();
-  for (int i = 0; i < length; i += next_offset) {
-    fd.initialize(this_oop(), i);
-    if (fd.is_static()) { f(&fd, CHECK); } // Do NOT remove {}! (CHECK macro expands into several statements)
+  for (JavaFieldStream fs(this_oop()); !fs.done(); fs.next()) {
+    if (fs.access_flags().is_static()) {
+      fieldDescriptor fd;
+      fd.initialize(this_oop(), fs.index());
+      f(&fd, CHECK);
+    }
   }
 }
 
@@ -941,11 +942,11 @@ void instanceKlass::do_nonstatic_fields(FieldClosure* cl) {
     super->do_nonstatic_fields(cl);
   }
   fieldDescriptor fd;
-  int length = fields()->length();
+  int length = java_fields_count();
   // In DebugInfo nonstatic fields are sorted by offset.
   int* fields_sorted = NEW_C_HEAP_ARRAY(int, 2*(length+1));
   int j = 0;
-  for (int i = 0; i < length; i += next_offset) {
+  for (int i = 0; i < length; i += 1) {
     fd.initialize(as_klassOop(), i);
     if (!fd.is_static()) {
       fields_sorted[j + 0] = fd.offset();
@@ -1374,39 +1375,8 @@ int instanceKlass::cached_itable_index(size_t idnum) {
 
 
 //
-// nmethodBucket is used to record dependent nmethods for
-// deoptimization.  nmethod dependencies are actually <klass, method>
-// pairs but we really only care about the klass part for purposes of
-// finding nmethods which might need to be deoptimized.  Instead of
-// recording the method, a count of how many times a particular nmethod
-// was recorded is kept.  This ensures that any recording errors are
-// noticed since an nmethod should be removed as many times are it's
-// added.
-//
-class nmethodBucket {
- private:
-  nmethod*       _nmethod;
-  int            _count;
-  nmethodBucket* _next;
-
- public:
-  nmethodBucket(nmethod* nmethod, nmethodBucket* next) {
-    _nmethod = nmethod;
-    _next = next;
-    _count = 1;
-  }
-  int count()                             { return _count; }
-  int increment()                         { _count += 1; return _count; }
-  int decrement()                         { _count -= 1; assert(_count >= 0, "don't underflow"); return _count; }
-  nmethodBucket* next()                   { return _next; }
-  void set_next(nmethodBucket* b)         { _next = b; }
-  nmethod* get_nmethod()                  { return _nmethod; }
-};
-
-
-//
 // Walk the list of dependent nmethods searching for nmethods which
-// are dependent on the klassOop that was passed in and mark them for
+// are dependent on the changes that were passed in and mark them for
 // deoptimization.  Returns the number of nmethods found.
 //
 int instanceKlass::mark_dependent_nmethods(DepChange& changes) {
@@ -2411,43 +2381,6 @@ void instanceKlass::oop_verify_on(oop obj, outputStream* st) {
   oop_oop_iterate(obj, &blk);
 }
 
-#ifndef PRODUCT
-
-void instanceKlass::verify_class_klass_nonstatic_oop_maps(klassOop k) {
-  // This verification code is disabled.  JDK_Version::is_gte_jdk14x_version()
-  // cannot be called since this function is called before the VM is
-  // able to determine what JDK version is running with.
-  // The check below always is false since 1.4.
-  return;
-
-  // This verification code temporarily disabled for the 1.4
-  // reflection implementation since java.lang.Class now has
-  // Java-level instance fields. Should rewrite this to handle this
-  // case.
-  if (!(JDK_Version::is_gte_jdk14x_version() && UseNewReflection)) {
-    // Verify that java.lang.Class instances have a fake oop field added.
-    instanceKlass* ik = instanceKlass::cast(k);
-
-    // Check that we have the right class
-    static bool first_time = true;
-    guarantee(k == SystemDictionary::Class_klass() && first_time, "Invalid verify of maps");
-    first_time = false;
-    const int extra = java_lang_Class::number_of_fake_oop_fields;
-    guarantee(ik->nonstatic_field_size() == extra, "just checking");
-    guarantee(ik->nonstatic_oop_map_count() == 1, "just checking");
-    guarantee(ik->size_helper() == align_object_size(instanceOopDesc::header_size() + extra), "just checking");
-
-    // Check that the map is (2,extra)
-    int offset = java_lang_Class::klass_offset;
-
-    OopMapBlock* map = ik->start_of_nonstatic_oop_maps();
-    guarantee(map->offset() == offset && map->count() == (unsigned int) extra,
-              "sanity");
-  }
-}
-
-#endif // ndef PRODUCT
-
 // JNIid class for jfieldIDs only
 // Note to reviewers:
 // These JNI functions are just moved over to column 1 and not changed
diff --git a/hotspot/src/share/vm/oops/instanceKlass.hpp b/hotspot/src/share/vm/oops/instanceKlass.hpp
index 1aa663c..a87448a 100644
--- a/hotspot/src/share/vm/oops/instanceKlass.hpp
+++ b/hotspot/src/share/vm/oops/instanceKlass.hpp
@@ -27,6 +27,7 @@
 
 #include "oops/constMethodOop.hpp"
 #include "oops/constantPoolOop.hpp"
+#include "oops/fieldInfo.hpp"
 #include "oops/instanceOop.hpp"
 #include "oops/klassOop.hpp"
 #include "oops/klassVtable.hpp"
@@ -228,6 +229,7 @@ class instanceKlass: public Klass {
   int             _static_field_size;    // number words used by static fields (oop and non-oop) in this klass
   int             _static_oop_field_count;// number of static oop fields in this klass
   int             _nonstatic_oop_map_size;// size in words of nonstatic oop map blocks
+  int             _java_fields_count;    // The number of declared Java fields
   bool            _is_marked_dependent;  // used for marking during flushing and deoptimization
   bool            _rewritten;            // methods rewritten.
   bool            _has_nonstatic_fields; // for sizing with UseCompressedOops
@@ -307,27 +309,28 @@ class instanceKlass: public Klass {
   objArrayOop transitive_interfaces() const     { return _transitive_interfaces; }
   void set_transitive_interfaces(objArrayOop a) { oop_store_without_check((oop*) &_transitive_interfaces, (oop) a); }
 
-  // fields
-  // Field info extracted from the class file and stored
-  // as an array of 7 shorts
-  enum FieldOffset {
-    access_flags_offset    = 0,
-    name_index_offset      = 1,
-    signature_index_offset = 2,
-    initval_index_offset   = 3,
-    low_offset             = 4,
-    high_offset            = 5,
-    generic_signature_offset = 6,
-    next_offset            = 7
-  };
+ private:
+  friend class fieldDescriptor;
+  FieldInfo* field(int index) const { return FieldInfo::from_field_array(_fields, index); }
+
+ public:
+  int     field_offset      (int index) const { return field(index)->offset(); }
+  int     field_access_flags(int index) const { return field(index)->access_flags(); }
+  Symbol* field_name        (int index) const { return field(index)->name(constants()); }
+  Symbol* field_signature   (int index) const { return field(index)->signature(constants()); }
+
+  // Number of Java declared fields
+  int java_fields_count() const           { return _java_fields_count; }
+
+  // Number of fields including any injected fields
+  int all_fields_count() const            { return _fields->length() / sizeof(FieldInfo::field_slots); }
 
   typeArrayOop fields() const              { return _fields; }
-  int offset_from_fields( int index ) const {
-    return build_int_from_shorts( fields()->ushort_at(index + low_offset),
-                                  fields()->ushort_at(index + high_offset) );
-  }
 
-  void set_fields(typeArrayOop f)          { oop_store_without_check((oop*) &_fields, (oop) f); }
+  void set_fields(typeArrayOop f, int java_fields_count) {
+    oop_store_without_check((oop*) &_fields, (oop) f);
+    _java_fields_count = java_fields_count;
+  }
 
   // inner classes
   typeArrayOop inner_classes() const       { return _inner_classes; }
@@ -842,10 +845,6 @@ public:
   // Verification
   const char* internal_name() const;
   void oop_verify_on(oop obj, outputStream* st);
-
-#ifndef PRODUCT
-  static void verify_class_klass_nonstatic_oop_maps(klassOop k) PRODUCT_RETURN;
-#endif
 };
 
 inline methodOop instanceKlass::method_at_vtable(int index)  {
@@ -1013,4 +1012,36 @@ class PreviousVersionWalker : public StackObj {
   PreviousVersionInfo* next_previous_version();
 };
 
+
+//
+// nmethodBucket is used to record dependent nmethods for
+// deoptimization.  nmethod dependencies are actually <klass, method>
+// pairs but we really only care about the klass part for purposes of
+// finding nmethods which might need to be deoptimized.  Instead of
+// recording the method, a count of how many times a particular nmethod
+// was recorded is kept.  This ensures that any recording errors are
+// noticed since an nmethod should be removed as many times are it's
+// added.
+//
+class nmethodBucket: public CHeapObj {
+  friend class VMStructs;
+ private:
+  nmethod*       _nmethod;
+  int            _count;
+  nmethodBucket* _next;
+
+ public:
+  nmethodBucket(nmethod* nmethod, nmethodBucket* next) {
+    _nmethod = nmethod;
+    _next = next;
+    _count = 1;
+  }
+  int count()                             { return _count; }
+  int increment()                         { _count += 1; return _count; }
+  int decrement()                         { _count -= 1; assert(_count >= 0, "don't underflow"); return _count; }
+  nmethodBucket* next()                   { return _next; }
+  void set_next(nmethodBucket* b)         { _next = b; }
+  nmethod* get_nmethod()                  { return _nmethod; }
+};
+
 #endif // SHARE_VM_OOPS_INSTANCEKLASS_HPP
diff --git a/hotspot/src/share/vm/oops/instanceKlassKlass.cpp b/hotspot/src/share/vm/oops/instanceKlassKlass.cpp
index dc2cd6c..fa13f17 100644
--- a/hotspot/src/share/vm/oops/instanceKlassKlass.cpp
+++ b/hotspot/src/share/vm/oops/instanceKlassKlass.cpp
@@ -386,7 +386,7 @@ instanceKlassKlass::allocate_instance_klass(Symbol* name, int vtable_len, int it
     ik->set_local_interfaces(NULL);
     ik->set_transitive_interfaces(NULL);
     ik->init_implementor();
-    ik->set_fields(NULL);
+    ik->set_fields(NULL, 0);
     ik->set_constants(NULL);
     ik->set_class_loader(NULL);
     ik->set_protection_domain(NULL);
diff --git a/hotspot/src/share/vm/oops/instanceRefKlass.cpp b/hotspot/src/share/vm/oops/instanceRefKlass.cpp
index 12c9d33..71a7a1f 100644
--- a/hotspot/src/share/vm/oops/instanceRefKlass.cpp
+++ b/hotspot/src/share/vm/oops/instanceRefKlass.cpp
@@ -45,7 +45,7 @@
 #endif
 
 template <class T>
-static void specialized_oop_follow_contents(instanceRefKlass* ref, oop obj) {
+void specialized_oop_follow_contents(instanceRefKlass* ref, oop obj) {
   T* referent_addr = (T*)java_lang_ref_Reference::referent_addr(obj);
   T heap_oop = oopDesc::load_heap_oop(referent_addr);
   debug_only(
@@ -56,9 +56,8 @@ static void specialized_oop_follow_contents(instanceRefKlass* ref, oop obj) {
   if (!oopDesc::is_null(heap_oop)) {
     oop referent = oopDesc::decode_heap_oop_not_null(heap_oop);
     if (!referent->is_gc_marked() &&
-        MarkSweep::ref_processor()->
-          discover_reference(obj, ref->reference_type())) {
-      // reference already enqueued, referent will be traversed later
+        MarkSweep::ref_processor()->discover_reference(obj, ref->reference_type())) {
+      // reference was discovered, referent will be traversed later
       ref->instanceKlass::oop_follow_contents(obj);
       debug_only(
         if(TraceReferenceGC && PrintGCDetails) {
@@ -76,8 +75,34 @@ static void specialized_oop_follow_contents(instanceRefKlass* ref, oop obj) {
       MarkSweep::mark_and_push(referent_addr);
     }
   }
-  // treat next as normal oop.  next is a link in the pending list.
   T* next_addr = (T*)java_lang_ref_Reference::next_addr(obj);
+  if (ReferenceProcessor::pending_list_uses_discovered_field()) {
+    // Treat discovered as normal oop, if ref is not "active",
+    // i.e. if next is non-NULL.
+    T  next_oop = oopDesc::load_heap_oop(next_addr);
+    if (!oopDesc::is_null(next_oop)) { // i.e. ref is not "active"
+      T* discovered_addr = (T*)java_lang_ref_Reference::discovered_addr(obj);
+      debug_only(
+        if(TraceReferenceGC && PrintGCDetails) {
+          gclog_or_tty->print_cr("   Process discovered as normal "
+                                 INTPTR_FORMAT, discovered_addr);
+        }
+      )
+      MarkSweep::mark_and_push(discovered_addr);
+    }
+  } else {
+#ifdef ASSERT
+    // In the case of older JDKs which do not use the discovered
+    // field for the pending list, an inactive ref (next != NULL)
+    // must always have a NULL discovered field.
+    oop next = oopDesc::load_decode_heap_oop(next_addr);
+    oop discovered = java_lang_ref_Reference::discovered(obj);
+    assert(oopDesc::is_null(next) || oopDesc::is_null(discovered),
+           err_msg("Found an inactive reference " PTR_FORMAT " with a non-NULL discovered field",
+                   (oopDesc*)obj));
+#endif
+  }
+  // treat next as normal oop.  next is a link in the reference queue.
   debug_only(
     if(TraceReferenceGC && PrintGCDetails) {
       gclog_or_tty->print_cr("   Process next as normal " INTPTR_FORMAT, next_addr);
@@ -130,13 +155,33 @@ void specialized_oop_follow_contents(instanceRefKlass* ref,
       PSParallelCompact::mark_and_push(cm, referent_addr);
     }
   }
-  // treat next as normal oop.  next is a link in the pending list.
   T* next_addr = (T*)java_lang_ref_Reference::next_addr(obj);
-  debug_only(
-    if(TraceReferenceGC && PrintGCDetails) {
-      gclog_or_tty->print_cr("   Process next as normal " INTPTR_FORMAT, next_addr);
+  if (ReferenceProcessor::pending_list_uses_discovered_field()) {
+    // Treat discovered as normal oop, if ref is not "active",
+    // i.e. if next is non-NULL.
+    T  next_oop = oopDesc::load_heap_oop(next_addr);
+    if (!oopDesc::is_null(next_oop)) { // i.e. ref is not "active"
+      T* discovered_addr = (T*)java_lang_ref_Reference::discovered_addr(obj);
+      debug_only(
+        if(TraceReferenceGC && PrintGCDetails) {
+          gclog_or_tty->print_cr("   Process discovered as normal "
+                                 INTPTR_FORMAT, discovered_addr);
+        }
+      )
+      PSParallelCompact::mark_and_push(cm, discovered_addr);
     }
-  )
+  } else {
+#ifdef ASSERT
+    // In the case of older JDKs which do not use the discovered
+    // field for the pending list, an inactive ref (next != NULL)
+    // must always have a NULL discovered field.
+    T next = oopDesc::load_heap_oop(next_addr);
+    oop discovered = java_lang_ref_Reference::discovered(obj);
+    assert(oopDesc::is_null(next) || oopDesc::is_null(discovered),
+           err_msg("Found an inactive reference " PTR_FORMAT " with a non-NULL discovered field",
+                   (oopDesc*)obj));
+#endif
+  }
   PSParallelCompact::mark_and_push(cm, next_addr);
   ref->instanceKlass::oop_follow_contents(cm, obj);
 }
@@ -197,27 +242,53 @@ int instanceRefKlass::oop_adjust_pointers(oop obj) {
 }
 
 #define InstanceRefKlass_SPECIALIZED_OOP_ITERATE(T, nv_suffix, contains)        \
+  T* disc_addr = (T*)java_lang_ref_Reference::discovered_addr(obj);             \
   if (closure->apply_to_weak_ref_discovered_field()) {                          \
-    T* disc_addr = (T*)java_lang_ref_Reference::discovered_addr(obj);           \
     closure->do_oop##nv_suffix(disc_addr);                                      \
   }                                                                             \
                                                                                 \
   T* referent_addr = (T*)java_lang_ref_Reference::referent_addr(obj);           \
   T heap_oop = oopDesc::load_heap_oop(referent_addr);                           \
-  if (!oopDesc::is_null(heap_oop) && contains(referent_addr)) {                 \
-    ReferenceProcessor* rp = closure->_ref_processor;                           \
+  ReferenceProcessor* rp = closure->_ref_processor;                             \
+  if (!oopDesc::is_null(heap_oop)) {                                            \
     oop referent = oopDesc::decode_heap_oop_not_null(heap_oop);                 \
     if (!referent->is_gc_marked() && (rp != NULL) &&                            \
         rp->discover_reference(obj, reference_type())) {                        \
       return size;                                                              \
-    } else {                                                                    \
+    } else if (contains(referent_addr)) {                                       \
       /* treat referent as normal oop */                                        \
       SpecializationStats::record_do_oop_call##nv_suffix(SpecializationStats::irk);\
       closure->do_oop##nv_suffix(referent_addr);                                \
     }                                                                           \
   }                                                                             \
-  /* treat next as normal oop */                                                \
   T* next_addr = (T*)java_lang_ref_Reference::next_addr(obj);                   \
+  if (ReferenceProcessor::pending_list_uses_discovered_field()) {               \
+    T next_oop  = oopDesc::load_heap_oop(next_addr);                            \
+    /* Treat discovered as normal oop, if ref is not "active" (next non-NULL) */\
+    if (!oopDesc::is_null(next_oop) && contains(disc_addr)) {                   \
+        /* i.e. ref is not "active" */                                          \
+      debug_only(                                                               \
+        if(TraceReferenceGC && PrintGCDetails) {                                \
+          gclog_or_tty->print_cr("   Process discovered as normal "             \
+                                 INTPTR_FORMAT, disc_addr);                     \
+        }                                                                       \
+      )                                                                         \
+      SpecializationStats::record_do_oop_call##nv_suffix(SpecializationStats::irk);\
+      closure->do_oop##nv_suffix(disc_addr);                                    \
+    }                                                                           \
+  } else {                                                                      \
+    /* In the case of older JDKs which do not use the discovered field for  */  \
+    /* the pending list, an inactive ref (next != NULL) must always have a  */  \
+    /* NULL discovered field. */                                                \
+    debug_only(                                                                 \
+      T next_oop = oopDesc::load_heap_oop(next_addr);                           \
+      T disc_oop = oopDesc::load_heap_oop(disc_addr);                           \
+      assert(oopDesc::is_null(next_oop) || oopDesc::is_null(disc_oop),          \
+           err_msg("Found an inactive reference " PTR_FORMAT " with a non-NULL" \
+                   "discovered field", (oopDesc*)obj));                                   \
+    )                                                                           \
+  }                                                                             \
+  /* treat next as normal oop */                                                \
   if (contains(next_addr)) {                                                    \
     SpecializationStats::record_do_oop_call##nv_suffix(SpecializationStats::irk); \
     closure->do_oop##nv_suffix(next_addr);                                      \
@@ -306,8 +377,37 @@ void specialized_oop_push_contents(instanceRefKlass *ref,
       pm->claim_or_forward_depth(referent_addr);
     }
   }
-  // treat next as normal oop
+  // Treat discovered as normal oop, if ref is not "active",
+  // i.e. if next is non-NULL.
   T* next_addr = (T*)java_lang_ref_Reference::next_addr(obj);
+  if (ReferenceProcessor::pending_list_uses_discovered_field()) {
+    T  next_oop = oopDesc::load_heap_oop(next_addr);
+    if (!oopDesc::is_null(next_oop)) { // i.e. ref is not "active"
+      T* discovered_addr = (T*)java_lang_ref_Reference::discovered_addr(obj);
+      debug_only(
+        if(TraceReferenceGC && PrintGCDetails) {
+          gclog_or_tty->print_cr("   Process discovered as normal "
+                                 INTPTR_FORMAT, discovered_addr);
+        }
+      )
+      if (PSScavenge::should_scavenge(discovered_addr)) {
+        pm->claim_or_forward_depth(discovered_addr);
+      }
+    }
+  } else {
+#ifdef ASSERT
+    // In the case of older JDKs which do not use the discovered
+    // field for the pending list, an inactive ref (next != NULL)
+    // must always have a NULL discovered field.
+    oop next = oopDesc::load_decode_heap_oop(next_addr);
+    oop discovered = java_lang_ref_Reference::discovered(obj);
+    assert(oopDesc::is_null(next) || oopDesc::is_null(discovered),
+           err_msg("Found an inactive reference " PTR_FORMAT " with a non-NULL discovered field",
+                   (oopDesc*)obj));
+#endif
+  }
+
+  // Treat next as normal oop;  next is a link in the reference queue.
   if (PSScavenge::should_scavenge(next_addr)) {
     pm->claim_or_forward_depth(next_addr);
   }
diff --git a/hotspot/src/share/vm/oops/klassOop.hpp b/hotspot/src/share/vm/oops/klassOop.hpp
index 7617b85..25dca1d 100644
--- a/hotspot/src/share/vm/oops/klassOop.hpp
+++ b/hotspot/src/share/vm/oops/klassOop.hpp
@@ -53,8 +53,10 @@ class klassOopDesc : public oopDesc {
  private:
   // These have no implementation since klassOop should never be accessed in this fashion
   oop obj_field(int offset) const;
+  volatile oop obj_field_volatile(int offset) const;
   void obj_field_put(int offset, oop value);
-  void obj_field_raw_put(int offset, oop value);
+  void obj_field_put_raw(int offset, oop value);
+  void obj_field_put_volatile(int offset, oop value);
 
   jbyte byte_field(int offset) const;
   void byte_field_put(int offset, jbyte contents);
diff --git a/hotspot/src/share/vm/oops/markOop.cpp b/hotspot/src/share/vm/oops/markOop.cpp
index 5be365e..5e85944 100644
--- a/hotspot/src/share/vm/oops/markOop.cpp
+++ b/hotspot/src/share/vm/oops/markOop.cpp
@@ -33,6 +33,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 
 void markOopDesc::print_on(outputStream* st) const {
diff --git a/hotspot/src/share/vm/oops/methodDataOop.hpp b/hotspot/src/share/vm/oops/methodDataOop.hpp
index 97c80a9..350590a 100644
--- a/hotspot/src/share/vm/oops/methodDataOop.hpp
+++ b/hotspot/src/share/vm/oops/methodDataOop.hpp
@@ -600,6 +600,11 @@ public:
   uint taken() {
     return uint_at(taken_off_set);
   }
+
+  void set_taken(uint cnt) {
+    set_uint_at(taken_off_set, cnt);
+  }
+
   // Saturating counter
   uint inc_taken() {
     uint cnt = taken() + 1;
@@ -926,6 +931,10 @@ public:
     return uint_at(not_taken_off_set);
   }
 
+  void set_not_taken(uint cnt) {
+    set_uint_at(not_taken_off_set, cnt);
+  }
+
   uint inc_not_taken() {
     uint cnt = not_taken() + 1;
     // Did we wrap? Will compiler screw us??
diff --git a/hotspot/src/share/vm/oops/methodOop.cpp b/hotspot/src/share/vm/oops/methodOop.cpp
index 6575679..879ec01 100644
--- a/hotspot/src/share/vm/oops/methodOop.cpp
+++ b/hotspot/src/share/vm/oops/methodOop.cpp
@@ -914,6 +914,7 @@ methodHandle methodOopDesc::make_invoke_method(KlassHandle holder,
                                                Symbol* name,
                                                Symbol* signature,
                                                Handle method_type, TRAPS) {
+  ResourceMark rm;
   methodHandle empty;
 
   assert(holder() == SystemDictionary::MethodHandle_klass(),
@@ -1267,12 +1268,19 @@ static void reorder_based_on_method_index(objArrayOop methods,
 
 // Comparer for sorting an object array containing
 // methodOops.
-template <class T>
-static int method_comparator(T a, T b) {
+// Used non-template method_comparator methods since
+// Visual Studio 2003 compiler generates incorrect
+// optimized code for it.
+static int method_comparator_narrowOop(narrowOop a, narrowOop b) {
   methodOop m = (methodOop)oopDesc::decode_heap_oop_not_null(a);
   methodOop n = (methodOop)oopDesc::decode_heap_oop_not_null(b);
   return m->name()->fast_compare(n->name());
 }
+static int method_comparator_oop(oop a, oop b) {
+  methodOop m = (methodOop)a;
+  methodOop n = (methodOop)b;
+  return m->name()->fast_compare(n->name());
+}
 
 // This is only done during class loading, so it is OK to assume method_idnum matches the methods() array
 void methodOopDesc::sort_methods(objArrayOop methods,
@@ -1298,9 +1306,9 @@ void methodOopDesc::sort_methods(objArrayOop methods,
     {
       No_Safepoint_Verifier nsv;
       if (UseCompressedOops) {
-        QuickSort::sort<narrowOop>((narrowOop*)(methods->base()), length, method_comparator<narrowOop>, idempotent);
+        QuickSort::sort<narrowOop>((narrowOop*)(methods->base()), length, method_comparator_narrowOop, idempotent);
       } else {
-        QuickSort::sort<oop>((oop*)(methods->base()), length, method_comparator<oop>, idempotent);
+        QuickSort::sort<oop>((oop*)(methods->base()), length, method_comparator_oop, idempotent);
       }
       if (UseConcMarkSweepGC) {
         // For CMS we need to dirty the cards for the array
diff --git a/hotspot/src/share/vm/oops/oop.cpp b/hotspot/src/share/vm/oops/oop.cpp
index d8fa9b0..f836fb7 100644
--- a/hotspot/src/share/vm/oops/oop.cpp
+++ b/hotspot/src/share/vm/oops/oop.cpp
@@ -36,6 +36,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 bool always_do_update_barrier = false;
 
diff --git a/hotspot/src/share/vm/oops/oop.hpp b/hotspot/src/share/vm/oops/oop.hpp
index c778f0d..4d2f453 100644
--- a/hotspot/src/share/vm/oops/oop.hpp
+++ b/hotspot/src/share/vm/oops/oop.hpp
@@ -214,8 +214,10 @@ class oopDesc {
 
   // Access to fields in a instanceOop through these methods.
   oop obj_field(int offset) const;
+  volatile oop obj_field_volatile(int offset) const;
   void obj_field_put(int offset, oop value);
-  void obj_field_raw_put(int offset, oop value);
+  void obj_field_put_raw(int offset, oop value);
+  void obj_field_put_volatile(int offset, oop value);
 
   jbyte byte_field(int offset) const;
   void byte_field_put(int offset, jbyte contents);
diff --git a/hotspot/src/share/vm/oops/oop.inline.hpp b/hotspot/src/share/vm/oops/oop.inline.hpp
index 01f001c..a050f96 100644
--- a/hotspot/src/share/vm/oops/oop.inline.hpp
+++ b/hotspot/src/share/vm/oops/oop.inline.hpp
@@ -321,15 +321,25 @@ inline oop oopDesc::obj_field(int offset) const {
     load_decode_heap_oop(obj_field_addr<narrowOop>(offset)) :
     load_decode_heap_oop(obj_field_addr<oop>(offset));
 }
+inline volatile oop oopDesc::obj_field_volatile(int offset) const {
+  volatile oop value = obj_field(offset);
+  OrderAccess::acquire();
+  return value;
+}
 inline void oopDesc::obj_field_put(int offset, oop value) {
   UseCompressedOops ? oop_store(obj_field_addr<narrowOop>(offset), value) :
                       oop_store(obj_field_addr<oop>(offset),       value);
 }
-inline void oopDesc::obj_field_raw_put(int offset, oop value) {
+inline void oopDesc::obj_field_put_raw(int offset, oop value) {
   UseCompressedOops ?
     encode_store_heap_oop(obj_field_addr<narrowOop>(offset), value) :
     encode_store_heap_oop(obj_field_addr<oop>(offset),       value);
 }
+inline void oopDesc::obj_field_put_volatile(int offset, oop value) {
+  OrderAccess::release();
+  obj_field_put(offset, value);
+  OrderAccess::fence();
+}
 
 inline jbyte oopDesc::byte_field(int offset) const                  { return (jbyte) *byte_field_addr(offset);    }
 inline void oopDesc::byte_field_put(int offset, jbyte contents)     { *byte_field_addr(offset) = (jint) contents; }
diff --git a/hotspot/src/share/vm/oops/oopsHierarchy.cpp b/hotspot/src/share/vm/oops/oopsHierarchy.cpp
index 9509806..b7d2c35 100644
--- a/hotspot/src/share/vm/oops/oopsHierarchy.cpp
+++ b/hotspot/src/share/vm/oops/oopsHierarchy.cpp
@@ -37,6 +37,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 #ifdef CHECK_UNHANDLED_OOPS
 
diff --git a/hotspot/src/share/vm/oops/typeArrayKlass.cpp b/hotspot/src/share/vm/oops/typeArrayKlass.cpp
index 6338417..a3c58cd 100644
--- a/hotspot/src/share/vm/oops/typeArrayKlass.cpp
+++ b/hotspot/src/share/vm/oops/typeArrayKlass.cpp
@@ -76,7 +76,7 @@ klassOop typeArrayKlass::create_klass(BasicType type, int scale,
   return k();
 }
 
-typeArrayOop typeArrayKlass::allocate(int length, TRAPS) {
+typeArrayOop typeArrayKlass::allocate_common(int length, bool do_zero, TRAPS) {
   assert(log2_element_size() >= 0, "bad scale");
   if (length >= 0) {
     if (length <= max_length()) {
@@ -84,7 +84,11 @@ typeArrayOop typeArrayKlass::allocate(int length, TRAPS) {
       KlassHandle h_k(THREAD, as_klassOop());
       typeArrayOop t;
       CollectedHeap* ch = Universe::heap();
-      t = (typeArrayOop)CollectedHeap::array_allocate(h_k, (int)size, length, CHECK_NULL);
+      if (do_zero) {
+        t = (typeArrayOop)CollectedHeap::array_allocate(h_k, (int)size, length, CHECK_NULL);
+      } else {
+        t = (typeArrayOop)CollectedHeap::array_allocate_nozero(h_k, (int)size, length, CHECK_NULL);
+      }
       assert(t->is_parsable(), "Don't publish unless parsable");
       return t;
     } else {
diff --git a/hotspot/src/share/vm/oops/typeArrayKlass.hpp b/hotspot/src/share/vm/oops/typeArrayKlass.hpp
index 78a26be..0f53066 100644
--- a/hotspot/src/share/vm/oops/typeArrayKlass.hpp
+++ b/hotspot/src/share/vm/oops/typeArrayKlass.hpp
@@ -56,7 +56,8 @@ class typeArrayKlass : public arrayKlass {
   bool compute_is_subtype_of(klassOop k);
 
   // Allocation
-  typeArrayOop allocate(int length, TRAPS);
+  typeArrayOop allocate_common(int length, bool do_zero, TRAPS);
+  typeArrayOop allocate(int length, TRAPS) { return allocate_common(length, true, THREAD); }
   typeArrayOop allocate_permanent(int length, TRAPS);  // used for class file structures
   oop multi_allocate(int rank, jint* sizes, TRAPS);
 
diff --git a/hotspot/src/share/vm/oops/typeArrayOop.hpp b/hotspot/src/share/vm/oops/typeArrayOop.hpp
index e0133fd..292609e 100644
--- a/hotspot/src/share/vm/oops/typeArrayOop.hpp
+++ b/hotspot/src/share/vm/oops/typeArrayOop.hpp
@@ -51,6 +51,12 @@
 #ifdef TARGET_OS_ARCH_linux_ppc
 # include "orderAccess_linux_ppc.inline.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "orderAccess_bsd_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "orderAccess_bsd_zero.inline.hpp"
+#endif
 
 // A typeArrayOop is an array containing basic types (non oop elements).
 // It is used for arrays of {characters, singles, doubles, bytes, shorts, integers, longs}
diff --git a/hotspot/src/share/vm/opto/block.cpp b/hotspot/src/share/vm/opto/block.cpp
index 5514b97..02ef7f9 100644
--- a/hotspot/src/share/vm/opto/block.cpp
+++ b/hotspot/src/share/vm/opto/block.cpp
@@ -80,35 +80,37 @@ void Block_List::print() {
 
 uint Block::code_alignment() {
   // Check for Root block
-  if( _pre_order == 0 ) return CodeEntryAlignment;
+  if (_pre_order == 0) return CodeEntryAlignment;
   // Check for Start block
-  if( _pre_order == 1 ) return InteriorEntryAlignment;
+  if (_pre_order == 1) return InteriorEntryAlignment;
   // Check for loop alignment
-  if (has_loop_alignment())  return loop_alignment();
+  if (has_loop_alignment()) return loop_alignment();
 
-  return 1;                     // no particular alignment
+  return relocInfo::addr_unit(); // no particular alignment
 }
 
 uint Block::compute_loop_alignment() {
   Node *h = head();
-  if( h->is_Loop() && h->as_Loop()->is_inner_loop() )  {
+  int unit_sz = relocInfo::addr_unit();
+  if (h->is_Loop() && h->as_Loop()->is_inner_loop())  {
     // Pre- and post-loops have low trip count so do not bother with
     // NOPs for align loop head.  The constants are hidden from tuning
     // but only because my "divide by 4" heuristic surely gets nearly
     // all possible gain (a "do not align at all" heuristic has a
     // chance of getting a really tiny gain).
-    if( h->is_CountedLoop() && (h->as_CountedLoop()->is_pre_loop() ||
-                                h->as_CountedLoop()->is_post_loop()) )
-      return (OptoLoopAlignment > 4) ? (OptoLoopAlignment>>2) : 1;
+    if (h->is_CountedLoop() && (h->as_CountedLoop()->is_pre_loop() ||
+                                h->as_CountedLoop()->is_post_loop())) {
+      return (OptoLoopAlignment > 4*unit_sz) ? (OptoLoopAlignment>>2) : unit_sz;
+    }
     // Loops with low backedge frequency should not be aligned.
     Node *n = h->in(LoopNode::LoopBackControl)->in(0);
-    if( n->is_MachIf() && n->as_MachIf()->_prob < 0.01 ) {
-      return 1;             // Loop does not loop, more often than not!
+    if (n->is_MachIf() && n->as_MachIf()->_prob < 0.01) {
+      return unit_sz; // Loop does not loop, more often than not!
     }
     return OptoLoopAlignment; // Otherwise align loop head
   }
 
-  return 1;                     // no particular alignment
+  return unit_sz; // no particular alignment
 }
 
 //-----------------------------------------------------------------------------
@@ -165,7 +167,7 @@ int Block::is_Empty() const {
   int end_idx = _nodes.size()-1;
 
   // Check for ending goto
-  if ((end_idx > 0) && (_nodes[end_idx]->is_Goto())) {
+  if ((end_idx > 0) && (_nodes[end_idx]->is_MachGoto())) {
     success_result = empty_with_goto;
     end_idx--;
   }
@@ -197,11 +199,11 @@ int Block::is_Empty() const {
 bool Block::has_uncommon_code() const {
   Node* en = end();
 
-  if (en->is_Goto())
+  if (en->is_MachGoto())
     en = en->in(0);
   if (en->is_Catch())
     en = en->in(0);
-  if (en->is_Proj() && en->in(0)->is_MachCall()) {
+  if (en->is_MachProj() && en->in(0)->is_MachCall()) {
     MachCallNode* call = en->in(0)->as_MachCall();
     if (call->cnt() != COUNT_UNKNOWN && call->cnt() <= PROB_UNLIKELY_MAG(4)) {
       // This is true for slow-path stubs like new_{instance,array},
@@ -271,55 +273,55 @@ bool Block::is_uncommon( Block_Array &bbs ) const {
 
 //------------------------------dump-------------------------------------------
 #ifndef PRODUCT
-void Block::dump_bidx(const Block* orig) const {
-  if (_pre_order) tty->print("B%d",_pre_order);
-  else tty->print("N%d", head()->_idx);
+void Block::dump_bidx(const Block* orig, outputStream* st) const {
+  if (_pre_order) st->print("B%d",_pre_order);
+  else st->print("N%d", head()->_idx);
 
   if (Verbose && orig != this) {
     // Dump the original block's idx
-    tty->print(" (");
-    orig->dump_bidx(orig);
-    tty->print(")");
+    st->print(" (");
+    orig->dump_bidx(orig, st);
+    st->print(")");
   }
 }
 
-void Block::dump_pred(const Block_Array *bbs, Block* orig) const {
+void Block::dump_pred(const Block_Array *bbs, Block* orig, outputStream* st) const {
   if (is_connector()) {
     for (uint i=1; i<num_preds(); i++) {
       Block *p = ((*bbs)[pred(i)->_idx]);
-      p->dump_pred(bbs, orig);
+      p->dump_pred(bbs, orig, st);
     }
   } else {
-    dump_bidx(orig);
-    tty->print(" ");
+    dump_bidx(orig, st);
+    st->print(" ");
   }
 }
 
-void Block::dump_head( const Block_Array *bbs ) const {
+void Block::dump_head( const Block_Array *bbs, outputStream* st ) const {
   // Print the basic block
-  dump_bidx(this);
-  tty->print(": #\t");
+  dump_bidx(this, st);
+  st->print(": #\t");
 
   // Print the incoming CFG edges and the outgoing CFG edges
   for( uint i=0; i<_num_succs; i++ ) {
-    non_connector_successor(i)->dump_bidx(_succs[i]);
-    tty->print(" ");
+    non_connector_successor(i)->dump_bidx(_succs[i], st);
+    st->print(" ");
   }
-  tty->print("<- ");
+  st->print("<- ");
   if( head()->is_block_start() ) {
     for (uint i=1; i<num_preds(); i++) {
       Node *s = pred(i);
       if (bbs) {
         Block *p = (*bbs)[s->_idx];
-        p->dump_pred(bbs, p);
+        p->dump_pred(bbs, p, st);
       } else {
         while (!s->is_block_start())
           s = s->in(0);
-        tty->print("N%d ", s->_idx );
+        st->print("N%d ", s->_idx );
       }
     }
   } else
-    tty->print("BLOCK HEAD IS JUNK  ");
+    st->print("BLOCK HEAD IS JUNK  ");
 
   // Print loop, if any
   const Block *bhead = this;    // Head of self-loop
@@ -330,24 +332,24 @@ void Block::dump_head( const Block_Array *bbs ) const {
     while (bx->is_connector()) {
       bx = (*bbs)[bx->pred(1)->_idx];
     }
-    tty->print("\tLoop: B%d-B%d ", bhead->_pre_order, bx->_pre_order);
+    st->print("\tLoop: B%d-B%d ", bhead->_pre_order, bx->_pre_order);
     // Dump any loop-specific bits, especially for CountedLoops.
-    loop->dump_spec(tty);
+    loop->dump_spec(st);
   } else if (has_loop_alignment()) {
-    tty->print(" top-of-loop");
+    st->print(" top-of-loop");
   }
-  tty->print(" Freq: %g",_freq);
+  st->print(" Freq: %g",_freq);
   if( Verbose || WizardMode ) {
-    tty->print(" IDom: %d/#%d", _idom ? _idom->_pre_order : 0, _dom_depth);
-    tty->print(" RegPressure: %d",_reg_pressure);
-    tty->print(" IHRP Index: %d",_ihrp_index);
-    tty->print(" FRegPressure: %d",_freg_pressure);
-    tty->print(" FHRP Index: %d",_fhrp_index);
+    st->print(" IDom: %d/#%d", _idom ? _idom->_pre_order : 0, _dom_depth);
+    st->print(" RegPressure: %d",_reg_pressure);
+    st->print(" IHRP Index: %d",_ihrp_index);
+    st->print(" FRegPressure: %d",_freg_pressure);
+    st->print(" FHRP Index: %d",_fhrp_index);
   }
-  tty->print_cr("");
+  st->print_cr("");
 }
 
-void Block::dump() const { dump(0); }
+void Block::dump() const { dump(NULL); }
 
 void Block::dump( const Block_Array *bbs ) const {
   dump_head(bbs);
@@ -441,9 +443,9 @@ uint PhaseCFG::build_cfg() {
       Block *bb = new (_bbs._arena) Block(_bbs._arena,p);
       _bbs.map(p->_idx,bb);
       _bbs.map(x->_idx,bb);
-      if( x != p )                  // Only for root is x == p
+      if( x != p ) {                // Only for root is x == p
         bb->_nodes.push((Node*)x);
-
+      }
       // Now handle predecessors
       ++sum;                        // Count 1 for self block
       uint cnt = bb->num_preds();
@@ -837,7 +839,7 @@ void PhaseCFG::fixup_flow() {
 
       // Make sure we TRUE branch to the target
       if( proj0->Opcode() == Op_IfFalse ) {
-        iff->negate();
+        iff->as_MachIf()->negate();
       }
 
       b->_nodes.pop();          // Remove IfFalse & IfTrue projections
@@ -945,8 +947,8 @@ void PhaseCFG::verify( ) const {
     assert( bp, "last instruction must be a block proj" );
     assert( bp == b->_nodes[j], "wrong number of successors for this block" );
     if( bp->is_Catch() ) {
-      while( b->_nodes[--j]->Opcode() == Op_MachProj ) ;
-      assert( b->_nodes[j]->is_Call(), "CatchProj must follow call" );
+      while( b->_nodes[--j]->is_MachProj() ) ;
+      assert( b->_nodes[j]->is_MachCall(), "CatchProj must follow call" );
     }
     else if( bp->is_Mach() && bp->as_Mach()->ideal_Opcode() == Op_If ) {
       assert( b->_num_succs == 2, "Conditional branch must have two targets");
@@ -1105,7 +1107,7 @@ static int edge_order(CFGEdge **e0, CFGEdge **e1) {
 
 //------------------------------trace_frequency_order--------------------------
 // Comparison function for edges
-static int trace_frequency_order(const void *p0, const void *p1) {
+extern "C" int trace_frequency_order(const void *p0, const void *p1) {
   Trace *tr0 = *(Trace **) p0;
   Trace *tr1 = *(Trace **) p1;
   Block *b0 = tr0->first_block();
diff --git a/hotspot/src/share/vm/opto/block.hpp b/hotspot/src/share/vm/opto/block.hpp
index bb87812..51869c8 100644
--- a/hotspot/src/share/vm/opto/block.hpp
+++ b/hotspot/src/share/vm/opto/block.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,6 +45,7 @@ struct Tarjan;
 // Note that the constructor just zeros things, and since I use Arena
 // allocation I do not need a destructor to reclaim storage.
 class Block_Array : public ResourceObj {
+  friend class VMStructs;
   uint _size;                   // allocated size, as opposed to formal limit
   debug_only(uint _limit;)      // limit to formal domain
 protected:
@@ -72,6 +73,7 @@ public:
 
 
 class Block_List : public Block_Array {
+  friend class VMStructs;
 public:
   uint _cnt;
   Block_List() : Block_Array(Thread::current()->resource_area()), _cnt(0) {}
@@ -87,6 +89,7 @@ public:
 
 
 class CFGElement : public ResourceObj {
+  friend class VMStructs;
  public:
   float _freq; // Execution frequency (estimate)
 
@@ -102,6 +105,7 @@ class CFGElement : public ResourceObj {
 // Basic blocks are used during the output routines, and are not used during
 // any optimization pass.  They are created late in the game.
 class Block : public CFGElement {
+  friend class VMStructs;
  public:
   // Nodes in this block, in order
   Node_List _nodes;
@@ -329,10 +333,10 @@ class Block : public CFGElement {
 
 #ifndef PRODUCT
   // Debugging print of basic block
-  void dump_bidx(const Block* orig) const;
-  void dump_pred(const Block_Array *bbs, Block* orig) const;
-  void dump_head( const Block_Array *bbs ) const;
-  void dump( ) const;
+  void dump_bidx(const Block* orig, outputStream* st = tty) const;
+  void dump_pred(const Block_Array *bbs, Block* orig, outputStream* st = tty) const;
+  void dump_head( const Block_Array *bbs, outputStream* st = tty ) const;
+  void dump() const;
   void dump( const Block_Array *bbs ) const;
 #endif
 };
@@ -341,6 +345,7 @@ class Block : public CFGElement {
 //------------------------------PhaseCFG---------------------------------------
 // Build an array of Basic Block pointers, one per Node.
 class PhaseCFG : public Phase {
+  friend class VMStructs;
  private:
   // Build a proper looking cfg.  Return count of basic blocks
   uint build_cfg();
@@ -515,6 +520,7 @@ public:
 
 //------------------------------CFGLoop-------------------------------------------
 class CFGLoop : public CFGElement {
+  friend class VMStructs;
   int _id;
   int _depth;
   CFGLoop *_parent;      // root of loop tree is the method level "pseudo" loop, it's parent is null
@@ -566,6 +572,7 @@ class CFGLoop : public CFGElement {
 // A edge between two basic blocks that will be embodied by a branch or a
 // fall-through.
 class CFGEdge : public ResourceObj {
+  friend class VMStructs;
  private:
   Block * _from;        // Source basic block
   Block * _to;          // Destination basic block
@@ -702,6 +709,7 @@ class Trace : public ResourceObj {
 //------------------------------PhaseBlockLayout-------------------------------
 // Rearrange blocks into some canonical order, based on edges and their frequencies
 class PhaseBlockLayout : public Phase {
+  friend class VMStructs;
   PhaseCFG &_cfg;               // Control flow graph
 
   GrowableArray<CFGEdge *> *edges;
diff --git a/hotspot/src/share/vm/opto/bytecodeInfo.cpp b/hotspot/src/share/vm/opto/bytecodeInfo.cpp
index 398f8f8..7175427 100644
--- a/hotspot/src/share/vm/opto/bytecodeInfo.cpp
+++ b/hotspot/src/share/vm/opto/bytecodeInfo.cpp
@@ -45,7 +45,7 @@ InlineTree::InlineTree(Compile* c,
   _method(callee),
   _site_invoke_ratio(site_invoke_ratio),
   _max_inline_level(max_inline_level),
-  _count_inline_bcs(method()->code_size())
+  _count_inline_bcs(method()->code_size_for_inlining())
 {
   NOT_PRODUCT(_count_inlines = 0;)
   if (_caller_jvms != NULL) {
@@ -107,7 +107,7 @@ const char* InlineTree::should_inline(ciMethod* callee_method, ciMethod* caller_
 
   // positive filter: should send be inlined?  returns NULL (--> yes)
   // or rejection msg
-  int size = callee_method->code_size();
+  int size = callee_method->code_size_for_inlining();
 
   // Check for too many throws (and not too huge)
   if(callee_method->interpreter_throwout_count() > InlineThrowCount &&
@@ -141,7 +141,21 @@ const char* InlineTree::should_inline(ciMethod* callee_method, ciMethod* caller_
     assert(mha_profile, "must exist");
     CounterData* cd = mha_profile->as_CounterData();
     invoke_count = cd->count();
-    call_site_count = invoke_count;  // use the same value
+    if (invoke_count == 0) {
+      return "method handle not reached";
+    }
+
+    if (_caller_jvms != NULL && _caller_jvms->method() != NULL &&
+        _caller_jvms->method()->method_data() != NULL &&
+        !_caller_jvms->method()->method_data()->is_empty()) {
+      ciMethodData* mdo = _caller_jvms->method()->method_data();
+      ciProfileData* mha_profile = mdo->bci_to_data(_caller_jvms->bci());
+      assert(mha_profile, "must exist");
+      CounterData* cd = mha_profile->as_CounterData();
+      call_site_count = cd->count();
+    } else {
+      call_site_count = invoke_count;  // use the same value
+    }
   }
 
   assert(invoke_count != 0, "require invocation count greater than zero");
@@ -244,7 +258,7 @@ const char* InlineTree::should_not_inline(ciMethod *callee_method, ciMethod* cal
   }
 
   // use frequency-based objections only for non-trivial methods
-  if (callee_method->code_size() <= MaxTrivialSize) return NULL;
+  if (callee_method->code_size_for_inlining() <= MaxTrivialSize) return NULL;
 
   // don't use counts with -Xcomp or CTW
   if (UseInterpreter && !CompileTheWorld) {
@@ -305,7 +319,7 @@ const char* InlineTree::try_to_inline(ciMethod* callee_method, ciMethod* caller_
   }
 
   // suppress a few checks for accessors and trivial methods
-  if (callee_method->code_size() > MaxTrivialSize) {
+  if (callee_method->code_size_for_inlining() > MaxTrivialSize) {
 
     // don't inline into giant methods
     if (C->unique() > (uint)NodeCountInliningCutoff) {
@@ -349,7 +363,7 @@ const char* InlineTree::try_to_inline(ciMethod* callee_method, ciMethod* caller_
     }
   }
 
-  int size = callee_method->code_size();
+  int size = callee_method->code_size_for_inlining();
 
   if (UseOldInlining && ClipInlining
       && (int)count_inline_bcs() + size >= DesiredMethodLimit) {
@@ -394,6 +408,16 @@ bool pass_initial_checks(ciMethod* caller_method, int caller_bci, ciMethod* call
   return true;
 }
 
+//------------------------------check_can_parse--------------------------------
+const char* InlineTree::check_can_parse(ciMethod* callee) {
+  // Certain methods cannot be parsed at all:
+  if ( callee->is_native())                     return "native method";
+  if (!callee->can_be_compiled())               return "not compilable (disabled)";
+  if (!callee->has_balanced_monitors())         return "not compilable (unbalanced monitors)";
+  if ( callee->get_flow_analysis()->failing())  return "not compilable (flow analysis failed)";
+  return NULL;
+}
+
 //------------------------------print_inlining---------------------------------
 // Really, the failure_msg can be a success message also.
 void InlineTree::print_inlining(ciMethod* callee_method, int caller_bci, const char* failure_msg) const {
@@ -423,14 +447,22 @@ WarmCallInfo* InlineTree::ok_to_inline(ciMethod* callee_method, JVMState* jvms,
   int         caller_bci    = jvms->bci();
   ciMethod   *caller_method = jvms->method();
 
-  if( !pass_initial_checks(caller_method, caller_bci, callee_method)) {
-    if( PrintInlining ) {
+  // Do some initial checks.
+  if (!pass_initial_checks(caller_method, caller_bci, callee_method)) {
+    if (PrintInlining) {
       failure_msg = "failed_initial_checks";
-      print_inlining( callee_method, caller_bci, failure_msg);
+      print_inlining(callee_method, caller_bci, failure_msg);
     }
     return NULL;
   }
 
+  // Do some parse checks.
+  failure_msg = check_can_parse(callee_method);
+  if (failure_msg != NULL) {
+    if (PrintInlining)  print_inlining(callee_method, caller_bci, failure_msg);
+    return NULL;
+  }
+
   // Check if inlining policy says no.
   WarmCallInfo wci = *(initial_wci);
   failure_msg = try_to_inline(callee_method, caller_method, caller_bci, profile, &wci);
@@ -471,7 +503,7 @@ WarmCallInfo* InlineTree::ok_to_inline(ciMethod* callee_method, JVMState* jvms,
     if (failure_msg == NULL)  failure_msg = "inline (hot)";
 
     // Inline!
-    if( PrintInlining ) print_inlining( callee_method, caller_bci, failure_msg);
+    if (PrintInlining)  print_inlining(callee_method, caller_bci, failure_msg);
     if (UseOldInlining)
       build_inline_tree_for_callee(callee_method, jvms, caller_bci);
     if (InlineWarmCalls && !wci.is_hot())
@@ -481,7 +513,7 @@ WarmCallInfo* InlineTree::ok_to_inline(ciMethod* callee_method, JVMState* jvms,
 
   // Do not inline
   if (failure_msg == NULL)  failure_msg = "too cold to inline";
-  if( PrintInlining ) print_inlining( callee_method, caller_bci, failure_msg);
+  if (PrintInlining)  print_inlining(callee_method, caller_bci, failure_msg);
   return NULL;
 }
 
@@ -578,3 +610,22 @@ InlineTree* InlineTree::find_subtree_from_root(InlineTree* root, JVMState* jvms,
   }
   return iltp;
 }
+
+
+
+#ifndef PRODUCT
+void InlineTree::print_impl(outputStream* st, int indent) const {
+  for (int i = 0; i < indent; i++) st->print(" ");
+  st->print(" @ %d ", caller_bci());
+  method()->print_short_name(st);
+  st->cr();
+
+  for (int i = 0 ; i < _subtrees.length(); i++) {
+    _subtrees.at(i)->print_impl(st, indent + 2);
+  }
+}
+
+void InlineTree::print_value_on(outputStream* st) const {
+  print_impl(st, 2);
+}
+#endif
diff --git a/hotspot/src/share/vm/opto/c2_globals.hpp b/hotspot/src/share/vm/opto/c2_globals.hpp
index 84a7d02..827e76e 100644
--- a/hotspot/src/share/vm/opto/c2_globals.hpp
+++ b/hotspot/src/share/vm/opto/c2_globals.hpp
@@ -44,6 +44,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "c2_globals_windows.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "c2_globals_bsd.hpp"
+#endif
 
 //
 // Defines all globals flags used by the server compiler.
diff --git a/hotspot/src/share/vm/opto/callGenerator.cpp b/hotspot/src/share/vm/opto/callGenerator.cpp
index fb91f57..150aa92 100644
--- a/hotspot/src/share/vm/opto/callGenerator.cpp
+++ b/hotspot/src/share/vm/opto/callGenerator.cpp
@@ -24,6 +24,7 @@
 
 #include "precompiled.hpp"
 #include "ci/bcEscapeAnalyzer.hpp"
+#include "ci/ciCallSite.hpp"
 #include "ci/ciCPCache.hpp"
 #include "ci/ciMethodHandle.hpp"
 #include "classfile/javaClasses.hpp"
@@ -60,12 +61,9 @@ public:
   {
     _is_osr        = is_osr;
     _expected_uses = expected_uses;
-    assert(can_parse(method, is_osr), "parse must be possible");
+    assert(InlineTree::check_can_parse(method) == NULL, "parse must be possible");
   }
 
-  // Can we build either an OSR or a regular parser for this method?
-  static bool can_parse(ciMethod* method, int is_osr = false);
-
   virtual bool      is_parse() const           { return true; }
   virtual JVMState* generate(JVMState* jvms);
   int is_osr() { return _is_osr; }
@@ -151,7 +149,6 @@ JVMState* DirectCallGenerator::generate(JVMState* jvms) {
     call->set_optimized_virtual(true);
     if (method()->is_method_handle_invoke()) {
       call->set_method_handle_invoke(true);
-      kit.C->set_has_method_handle_invokes(true);
     }
   }
   kit.set_arguments_for_java_call(call);
@@ -209,7 +206,6 @@ JVMState* DynamicCallGenerator::generate(JVMState* jvms) {
   call->set_optimized_virtual(true);
   // Take extra care (in the presence of argument motion) not to trash the SP:
   call->set_method_handle_invoke(true);
-  kit.C->set_has_method_handle_invokes(true);
 
   // Pass the target MethodHandle as first argument and shift the
   // other arguments.
@@ -302,20 +298,8 @@ JVMState* VirtualCallGenerator::generate(JVMState* jvms) {
   return kit.transfer_exceptions_into_jvms();
 }
 
-bool ParseGenerator::can_parse(ciMethod* m, int entry_bci) {
-  // Certain methods cannot be parsed at all:
-  if (!m->can_be_compiled())              return false;
-  if (!m->has_balanced_monitors())        return false;
-  if (m->get_flow_analysis()->failing())  return false;
-
-  // (Methods may bail out for other reasons, after the parser is run.
-  // We try to avoid this, but if forced, we must return (Node*)NULL.
-  // The user of the CallGenerator must check for this condition.)
-  return true;
-}
-
 CallGenerator* CallGenerator::for_inline(ciMethod* m, float expected_uses) {
-  if (!ParseGenerator::can_parse(m))  return NULL;
+  if (InlineTree::check_can_parse(m) != NULL)  return NULL;
   return new ParseGenerator(m, expected_uses);
 }
 
@@ -323,7 +307,7 @@ CallGenerator* CallGenerator::for_inline(ciMethod* m, float expected_uses) {
 // for the method execution already in progress, not just the JVMS
 // of the caller.  Thus, this CallGenerator cannot be mixed with others!
 CallGenerator* CallGenerator::for_osr(ciMethod* m, int osr_bci) {
-  if (!ParseGenerator::can_parse(m, true))  return NULL;
+  if (InlineTree::check_can_parse(m) != NULL)  return NULL;
   float past_uses = m->interpreter_invocation_count();
   float expected_uses = past_uses;
   return new ParseGenerator(m, expected_uses, true);
@@ -335,7 +319,7 @@ CallGenerator* CallGenerator::for_direct_call(ciMethod* m, bool separate_io_proj
 }
 
 CallGenerator* CallGenerator::for_dynamic_call(ciMethod* m) {
-  assert(m->is_method_handle_invoke(), "for_dynamic_call mismatch");
+  assert(m->is_method_handle_invoke() || m->is_method_handle_adapter(), "for_dynamic_call mismatch");
   return new DynamicCallGenerator(m);
 }
 
@@ -714,24 +698,63 @@ CallGenerator* CallGenerator::for_method_handle_inline(Node* method_handle, JVMS
     // Get an adapter for the MethodHandle.
     ciMethod* target_method = method_handle->get_method_handle_adapter();
     if (target_method != NULL) {
-      CallGenerator* hit_cg = Compile::current()->call_generator(target_method, -1, false, jvms, true, 1);
-      if (hit_cg != NULL && hit_cg->is_inline())
-        return hit_cg;
+      CallGenerator* cg = Compile::current()->call_generator(target_method, -1, false, jvms, true, PROB_ALWAYS);
+      if (cg != NULL && cg->is_inline())
+        return cg;
     }
   } else if (method_handle->Opcode() == Op_Phi && method_handle->req() == 3 &&
              method_handle->in(1)->Opcode() == Op_ConP && method_handle->in(2)->Opcode() == Op_ConP) {
+    float prob = PROB_FAIR;
+    Node* meth_region = method_handle->in(0);
+    if (meth_region->is_Region() &&
+        meth_region->in(1)->is_Proj() && meth_region->in(2)->is_Proj() &&
+        meth_region->in(1)->in(0) == meth_region->in(2)->in(0) &&
+        meth_region->in(1)->in(0)->is_If()) {
+      // If diamond, so grab the probability of the test to drive the inlining below
+      prob = meth_region->in(1)->in(0)->as_If()->_prob;
+      if (meth_region->in(1)->is_IfTrue()) {
+        prob = 1 - prob;
+      }
+    }
+
     // selectAlternative idiom merging two constant MethodHandles.
     // Generate a guard so that each can be inlined.  We might want to
     // do more inputs at later point but this gets the most common
     // case.
-    const TypeOopPtr* oop_ptr = method_handle->in(1)->bottom_type()->is_oopptr();
-    ciObject* const_oop = oop_ptr->const_oop();
-    ciMethodHandle* mh = const_oop->as_method_handle();
-
-    CallGenerator* cg1 = for_method_handle_inline(method_handle->in(1), jvms, caller, callee, profile);
-    CallGenerator* cg2 = for_method_handle_inline(method_handle->in(2), jvms, caller, callee, profile);
+    CallGenerator* cg1 = for_method_handle_inline(method_handle->in(1), jvms, caller, callee, profile.rescale(1.0 - prob));
+    CallGenerator* cg2 = for_method_handle_inline(method_handle->in(2), jvms, caller, callee, profile.rescale(prob));
     if (cg1 != NULL && cg2 != NULL) {
-      return new PredictedDynamicCallGenerator(mh, cg2, cg1, PROB_FAIR);
+      const TypeOopPtr* oop_ptr = method_handle->in(1)->bottom_type()->is_oopptr();
+      ciObject* const_oop = oop_ptr->const_oop();
+      ciMethodHandle* mh = const_oop->as_method_handle();
+      return new PredictedDynamicCallGenerator(mh, cg2, cg1, prob);
+    }
+  }
+  return NULL;
+}
+
+
+CallGenerator* CallGenerator::for_invokedynamic_inline(ciCallSite* call_site, JVMState* jvms,
+                                                       ciMethod* caller, ciMethod* callee, ciCallProfile profile) {
+  ciMethodHandle* method_handle = call_site->get_target();
+
+  // Set the callee to have access to the class and signature in the
+  // MethodHandleCompiler.
+  method_handle->set_callee(callee);
+  method_handle->set_caller(caller);
+  method_handle->set_call_profile(profile);
+
+  // Get an adapter for the MethodHandle.
+  ciMethod* target_method = method_handle->get_invokedynamic_adapter();
+  if (target_method != NULL) {
+    Compile *C = Compile::current();
+    CallGenerator* cg = C->call_generator(target_method, -1, false, jvms, true, PROB_ALWAYS);
+    if (cg != NULL && cg->is_inline()) {
+      // Add a dependence for invalidation of the optimization.
+      if (!call_site->is_constant_call_site()) {
+        C->dependencies()->assert_call_site_target_value(call_site, method_handle);
+      }
+      return cg;
     }
   }
   return NULL;
diff --git a/hotspot/src/share/vm/opto/callGenerator.hpp b/hotspot/src/share/vm/opto/callGenerator.hpp
index cdefb59..d95ba2b 100644
--- a/hotspot/src/share/vm/opto/callGenerator.hpp
+++ b/hotspot/src/share/vm/opto/callGenerator.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -111,7 +111,8 @@ class CallGenerator : public ResourceObj {
   static CallGenerator* for_dynamic_call(ciMethod* m);   // invokedynamic
   static CallGenerator* for_virtual_call(ciMethod* m, int vtable_index);  // virtual, interface
 
-  static CallGenerator* for_method_handle_inline(Node* method_handle, JVMState* jvms, ciMethod* caller, ciMethod* callee, ciCallProfile profile);
+  static CallGenerator* for_method_handle_inline(Node* method_handle,   JVMState* jvms, ciMethod* caller, ciMethod* callee, ciCallProfile profile);
+  static CallGenerator* for_invokedynamic_inline(ciCallSite* call_site, JVMState* jvms, ciMethod* caller, ciMethod* callee, ciCallProfile profile);
 
   // How to generate a replace a direct call with an inline version
   static CallGenerator* for_late_inline(ciMethod* m, CallGenerator* inline_cg);
diff --git a/hotspot/src/share/vm/opto/callnode.hpp b/hotspot/src/share/vm/opto/callnode.hpp
index 774b4b8..6e81a7e 100644
--- a/hotspot/src/share/vm/opto/callnode.hpp
+++ b/hotspot/src/share/vm/opto/callnode.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,7 +67,6 @@ public:
   const TypeTuple *_domain;
   StartNode( Node *root, const TypeTuple *domain ) : MultiNode(2), _domain(domain) {
     init_class_id(Class_Start);
-    init_flags(Flag_is_block_start);
     init_req(0,this);
     init_req(1,root);
   }
@@ -188,6 +187,7 @@ public:
 // This provides a way to map the optimized program back into the interpreter,
 // or to let the GC mark the stack.
 class JVMState : public ResourceObj {
+  friend class VMStructs;
 public:
   typedef enum {
     Reexecute_Undefined = -1, // not defined -- will be translated into false later
@@ -501,6 +501,7 @@ public:
 // Call nodes now subsume the function of debug nodes at callsites, so they
 // contain the functionality of a full scope chain of debug nodes.
 class CallNode : public SafePointNode {
+  friend class VMStructs;
 public:
   const TypeFunc *_tf;        // Function type
   address      _entry_point;  // Address of method being called
@@ -513,7 +514,6 @@ public:
       _cnt(COUNT_UNKNOWN)
   {
     init_class_id(Class_Call);
-    init_flags(Flag_is_Call);
   }
 
   const TypeFunc* tf()        const { return _tf; }
@@ -567,6 +567,7 @@ public:
 // convention.  (The "Java" calling convention is the compiler's calling
 // convention, as opposed to the interpreter's or that of native C.)
 class CallJavaNode : public CallNode {
+  friend class VMStructs;
 protected:
   virtual uint cmp( const Node &n ) const;
   virtual uint size_of() const; // Size is bigger
diff --git a/hotspot/src/share/vm/opto/cfgnode.cpp b/hotspot/src/share/vm/opto/cfgnode.cpp
index 49d3070..c8e45b6 100644
--- a/hotspot/src/share/vm/opto/cfgnode.cpp
+++ b/hotspot/src/share/vm/opto/cfgnode.cpp
@@ -1349,17 +1349,9 @@ static Node* is_absolute( PhaseGVN *phase, PhiNode *phi_root, int true_path) {
 static void split_once(PhaseIterGVN *igvn, Node *phi, Node *val, Node *n, Node *newn) {
   igvn->hash_delete(n);         // Remove from hash before hacking edges
 
-  Node* predicate_proj = NULL;
   uint j = 1;
   for (uint i = phi->req()-1; i > 0; i--) {
     if (phi->in(i) == val) {   // Found a path with val?
-      if (n->is_Region()) {
-        Node* proj = PhaseIdealLoop::find_predicate(n->in(i));
-        if (proj != NULL) {
-          assert(predicate_proj == NULL, "only one predicate entry expected");
-          predicate_proj = proj;
-        }
-      }
       // Add to NEW Region/Phi, no DU info
       newn->set_req( j++, n->in(i) );
       // Remove from OLD Region/Phi
@@ -1371,11 +1363,6 @@ static void split_once(PhaseIterGVN *igvn, Node *phi, Node *val, Node *n, Node *
   // entire Region/Phi conglomerate has been hacked as a single huge transform.
   igvn->register_new_node_with_optimizer( newn );
 
-  // Clone loop predicates
-  if (predicate_proj != NULL) {
-    newn = igvn->clone_loop_predicates(predicate_proj, newn, !n->is_CountedLoop());
-  }
-
   // Now I can point to the new node.
   n->add_req(newn);
   igvn->_worklist.push(n);
@@ -1404,13 +1391,18 @@ static Node* split_flow_path(PhaseGVN *phase, PhiNode *phi) {
 
   Node *val = phi->in(i);       // Constant to split for
   uint hit = 0;                 // Number of times it occurs
+  Node *r = phi->region();
 
   for( ; i < phi->req(); i++ ){ // Count occurrences of constant
     Node *n = phi->in(i);
     if( !n ) return NULL;
     if( phase->type(n) == Type::TOP ) return NULL;
-    if( phi->in(i) == val )
+    if( phi->in(i) == val ) {
       hit++;
+      if (PhaseIdealLoop::find_predicate(r->in(i)) != NULL) {
+        return NULL;            // don't split loop entry path
+      }
+    }
   }
 
   if( hit <= 1 ||               // Make sure we find 2 or more
@@ -1420,7 +1412,6 @@ static Node* split_flow_path(PhaseGVN *phase, PhiNode *phi) {
   // Now start splitting out the flow paths that merge the same value.
   // Split first the RegionNode.
   PhaseIterGVN *igvn = phase->is_IterGVN();
-  Node *r = phi->region();
   RegionNode *newr = new (phase->C, hit+1) RegionNode(hit+1);
   split_once(igvn, phi, val, r, newr);
 
diff --git a/hotspot/src/share/vm/opto/cfgnode.hpp b/hotspot/src/share/vm/opto/cfgnode.hpp
index 71bc2ab..a51d78b 100644
--- a/hotspot/src/share/vm/opto/cfgnode.hpp
+++ b/hotspot/src/share/vm/opto/cfgnode.hpp
@@ -217,9 +217,7 @@ public:
 // GotoNodes perform direct branches.
 class GotoNode : public Node {
 public:
-  GotoNode( Node *control ) : Node(control) {
-    init_flags(Flag_is_Goto);
-  }
+  GotoNode( Node *control ) : Node(control) {}
   virtual int Opcode() const;
   virtual bool pinned() const { return true; }
   virtual bool  is_CFG() const { return true; }
diff --git a/hotspot/src/share/vm/opto/chaitin.hpp b/hotspot/src/share/vm/opto/chaitin.hpp
index e379c0c..999a792 100644
--- a/hotspot/src/share/vm/opto/chaitin.hpp
+++ b/hotspot/src/share/vm/opto/chaitin.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@ class   PhaseChaitin;
 //------------------------------LRG--------------------------------------------
 // Live-RanGe structure.
 class LRG : public ResourceObj {
+  friend class VMStructs;
 public:
   enum { SPILL_REG=29999 };     // Register number of a spilled LRG
 
@@ -181,6 +182,7 @@ public:
 // Map Node indices to Live RanGe indices.
 // Array lookup in the optimized case.
 class LRG_List : public ResourceObj {
+  friend class VMStructs;
   uint _cnt, _max;
   uint* _lidxs;
   ReallocMark _nesting;         // assertion check for reallocations
@@ -211,6 +213,7 @@ public:
 // abstract!  It needs abstraction so I can fiddle with the implementation to
 // get even more speed.
 class PhaseIFG : public Phase {
+  friend class VMStructs;
   // Current implementation: a triangular adjacency list.
 
   // Array of adjacency-lists, indexed by live-range number
@@ -294,6 +297,7 @@ public:
 //------------------------------Chaitin----------------------------------------
 // Briggs-Chaitin style allocation, mostly.
 class PhaseChaitin : public PhaseRegAlloc {
+  friend class VMStructs;
 
   int _trip_cnt;
   int _alternate;
@@ -482,6 +486,7 @@ private:
   }
 
   int yank_if_dead( Node *old, Block *current_block, Node_List *value, Node_List *regnd );
+  int yank( Node *old, Block *current_block, Node_List *value, Node_List *regnd );
   int elide_copy( Node *n, int k, Block *current_block, Node_List &value, Node_List &regnd, bool can_change_regs );
   int use_prior_register( Node *copy, uint idx, Node *def, Block *current_block, Node_List &value, Node_List &regnd );
   bool may_be_copy_of_callee( Node *def ) const;
diff --git a/hotspot/src/share/vm/opto/classes.hpp b/hotspot/src/share/vm/opto/classes.hpp
index 46f1b84..dbece76 100644
--- a/hotspot/src/share/vm/opto/classes.hpp
+++ b/hotspot/src/share/vm/opto/classes.hpp
@@ -161,8 +161,10 @@ macro(Mach)
 macro(MachProj)
 macro(MaxI)
 macro(MemBarAcquire)
+macro(MemBarAcquireLock)
 macro(MemBarCPUOrder)
 macro(MemBarRelease)
+macro(MemBarReleaseLock)
 macro(MemBarVolatile)
 macro(MergeMem)
 macro(MinI)
@@ -194,6 +196,7 @@ macro(Phi)
 macro(PopCountI)
 macro(PopCountL)
 macro(PowD)
+macro(PrefetchAllocation)
 macro(PrefetchRead)
 macro(PrefetchWrite)
 macro(Proj)
diff --git a/hotspot/src/share/vm/opto/coalesce.cpp b/hotspot/src/share/vm/opto/coalesce.cpp
index bc4d1fd..0811ea0 100644
--- a/hotspot/src/share/vm/opto/coalesce.cpp
+++ b/hotspot/src/share/vm/opto/coalesce.cpp
@@ -139,7 +139,7 @@ int PhaseChaitin::clone_projs( Block *b, uint idx, Node *con, Node *copy, uint &
   Block *bcon = _cfg._bbs[con->_idx];
   uint cindex = bcon->find_node(con);
   Node *con_next = bcon->_nodes[cindex+1];
-  if( con_next->in(0) != con || con_next->Opcode() != Op_MachProj )
+  if( con_next->in(0) != con || !con_next->is_MachProj() )
     return false;               // No MachProj's follow
 
   // Copy kills after the cloned constant
@@ -312,7 +312,7 @@ void PhaseAggressiveCoalesce::insert_copy_with_overlap( Block *b, Node *copy, ui
     // parallel renaming effort.
     if( n->_idx < _unique ) break;
     uint idx = n->is_Copy();
-    assert( idx || n->is_Con() || n->Opcode() == Op_MachProj, "Only copies during parallel renaming" );
+    assert( idx || n->is_Con() || n->is_MachProj(), "Only copies during parallel renaming" );
     if( idx && _phc.Find(n->in(idx)) == dst_name ) break;
     i--;
   }
@@ -329,7 +329,7 @@ void PhaseAggressiveCoalesce::insert_copy_with_overlap( Block *b, Node *copy, ui
     // Check for end of virtual copies; this is also the end of the
     // parallel renaming effort.
     if( n->_idx < _unique ) break;
-    assert( n->is_Copy() || n->is_Con() || n->Opcode() == Op_MachProj, "Only copies during parallel renaming" );
+    assert( n->is_Copy() || n->is_Con() || n->is_MachProj(), "Only copies during parallel renaming" );
     if( _phc.Find(n) == src_name ) {
       kill_src_idx = i;
       break;
diff --git a/hotspot/src/share/vm/opto/compile.cpp b/hotspot/src/share/vm/opto/compile.cpp
index bfaa98b..2f0f294 100644
--- a/hotspot/src/share/vm/opto/compile.cpp
+++ b/hotspot/src/share/vm/opto/compile.cpp
@@ -517,7 +517,20 @@ uint Compile::scratch_emit_size(const Node* n) {
   buf.stubs()->initialize_shared_locs( &locs_buf[lsize * 2], lsize);
 
   // Do the emission.
+
+  Label fakeL; // Fake label for branch instructions.
+  Label*   saveL = NULL;
+  uint save_bnum = 0;
+  bool is_branch = n->is_MachBranch();
+  if (is_branch) {
+    MacroAssembler masm(&buf);
+    masm.bind(fakeL);
+    n->as_MachBranch()->save_label(&saveL, &save_bnum);
+    n->as_MachBranch()->label_set(&fakeL, 0);
+  }
   n->emit(buf, this->regalloc());
+  if (is_branch) // Restore label.
+    n->as_MachBranch()->label_set(saveL, save_bnum);
 
   // End scratch_emit_size section.
   set_in_scratch_emit_size(false);
@@ -804,7 +817,6 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr
                            &_handler_table, &_inc_table,
                            compiler,
                            env()->comp_level(),
-                           true, /*has_debug_info*/
                            has_unsafe_access()
                            );
   }
diff --git a/hotspot/src/share/vm/opto/compile.hpp b/hotspot/src/share/vm/opto/compile.hpp
index b2d8189..82e33a9 100644
--- a/hotspot/src/share/vm/opto/compile.hpp
+++ b/hotspot/src/share/vm/opto/compile.hpp
@@ -80,6 +80,8 @@ class WarmCallInfo;
 // This class defines a top-level Compiler invocation.
 
 class Compile : public Phase {
+  friend class VMStructs;
+
  public:
   // Fixed alias indexes.  (See also MergeMemNode.)
   enum {
@@ -785,11 +787,14 @@ class Compile : public Phase {
   // Process an OopMap Element while emitting nodes
   void Process_OopMap_Node(MachNode *mach, int code_offset);
 
+  // Initialize code buffer
+  CodeBuffer* init_buffer(uint* blk_starts);
+
   // Write out basic block data to code buffer
-  void Fill_buffer();
+  void fill_buffer(CodeBuffer* cb, uint* blk_starts);
 
   // Determine which variable sized branches can be shortened
-  void Shorten_branches(Label *labels, int& code_size, int& reloc_size, int& stub_size);
+  void shorten_branches(uint* blk_starts, int& code_size, int& reloc_size, int& stub_size);
 
   // Compute the size of first NumberOfLoopInstrToAlign instructions
   // at the head of a loop.
diff --git a/hotspot/src/share/vm/opto/connode.hpp b/hotspot/src/share/vm/opto/connode.hpp
index 9d3e094..78a4427 100644
--- a/hotspot/src/share/vm/opto/connode.hpp
+++ b/hotspot/src/share/vm/opto/connode.hpp
@@ -496,14 +496,6 @@ public:
   virtual bool depends_only_on_test() const { return false; }
 };
 
-//------------------------------MemMoveNode------------------------------------
-// Memory to memory move.  Inserted very late, after allocation.
-class MemMoveNode : public Node {
-public:
-  MemMoveNode( Node *dst, Node *src ) : Node(0,dst,src) {}
-  virtual int Opcode() const;
-};
-
 //------------------------------ThreadLocalNode--------------------------------
 // Ideal Node which returns the base of ThreadLocalStorage.
 class ThreadLocalNode : public Node {
diff --git a/hotspot/src/share/vm/opto/doCall.cpp b/hotspot/src/share/vm/opto/doCall.cpp
index c1b25d8..b3c405f 100644
--- a/hotspot/src/share/vm/opto/doCall.cpp
+++ b/hotspot/src/share/vm/opto/doCall.cpp
@@ -114,7 +114,7 @@ CallGenerator* Compile::call_generator(ciMethod* call_method, int vtable_index,
     if (cg != NULL)  return cg;
   }
 
-  // Do MethodHandle calls.
+  // Do method handle calls.
   // NOTE: This must happen before normal inlining logic below since
   // MethodHandle.invoke* are native methods which obviously don't
   // have bytecodes and so normal inlining fails.
@@ -127,33 +127,19 @@ CallGenerator* Compile::call_generator(ciMethod* call_method, int vtable_index,
       if (cg != NULL) {
         return cg;
       }
-
       return CallGenerator::for_direct_call(call_method);
     }
     else {
-      // Get the MethodHandle from the CallSite.
+      // Get the CallSite object.
       ciMethod* caller_method = jvms->method();
       ciBytecodeStream str(caller_method);
       str.force_bci(jvms->bci());  // Set the stream to the invokedynamic bci.
-      ciCallSite*     call_site     = str.get_call_site();
-      ciMethodHandle* method_handle = call_site->get_target();
-
-      // Set the callee to have access to the class and signature in
-      // the MethodHandleCompiler.
-      method_handle->set_callee(call_method);
-      method_handle->set_caller(caller);
-      method_handle->set_call_profile(profile);
-
-      // Get an adapter for the MethodHandle.
-      ciMethod* target_method = method_handle->get_invokedynamic_adapter();
-      if (target_method != NULL) {
-        CallGenerator* hit_cg = this->call_generator(target_method, vtable_index, false, jvms, true, prof_factor);
-        if (hit_cg != NULL && hit_cg->is_inline()) {
-          CallGenerator* miss_cg = CallGenerator::for_dynamic_call(call_method);
-          return CallGenerator::for_predicted_dynamic_call(method_handle, miss_cg, hit_cg, prof_factor);
-        }
-      }
+      ciCallSite* call_site = str.get_call_site();
 
+      CallGenerator* cg = CallGenerator::for_invokedynamic_inline(call_site, jvms, caller, call_method, profile);
+      if (cg != NULL) {
+        return cg;
+      }
       // If something failed, generate a normal dynamic call.
       return CallGenerator::for_dynamic_call(call_method);
     }
diff --git a/hotspot/src/share/vm/opto/gcm.cpp b/hotspot/src/share/vm/opto/gcm.cpp
index f714d01..b504ea5 100644
--- a/hotspot/src/share/vm/opto/gcm.cpp
+++ b/hotspot/src/share/vm/opto/gcm.cpp
@@ -1137,7 +1137,7 @@ void PhaseCFG::schedule_late(VectorSet &visited, Node_List &stack) {
 
     // No uses, just terminate
     if (self->outcnt() == 0) {
-      assert(self->Opcode() == Op_MachProj, "sanity");
+      assert(self->is_MachProj(), "sanity");
       continue;                   // Must be a dead machine projection
     }
 
diff --git a/hotspot/src/share/vm/opto/graphKit.cpp b/hotspot/src/share/vm/opto/graphKit.cpp
index db61258..4971729 100644
--- a/hotspot/src/share/vm/opto/graphKit.cpp
+++ b/hotspot/src/share/vm/opto/graphKit.cpp
@@ -2856,7 +2856,7 @@ FastLockNode* GraphKit::shared_lock(Node* obj) {
   // lock has no side-effects, sets few values
   set_predefined_output_for_runtime_call(lock, mem, TypeRawPtr::BOTTOM);
 
-  insert_mem_bar(Op_MemBarAcquire);
+  insert_mem_bar(Op_MemBarAcquireLock);
 
   // Add this to the worklist so that the lock can be eliminated
   record_for_igvn(lock);
@@ -2889,7 +2889,7 @@ void GraphKit::shared_unlock(Node* box, Node* obj) {
   }
 
   // Memory barrier to avoid floating things down past the locked region
-  insert_mem_bar(Op_MemBarRelease);
+  insert_mem_bar(Op_MemBarReleaseLock);
 
   const TypeFunc *tf = OptoRuntime::complete_monitor_exit_Type();
   UnlockNode *unlock = new (C, tf->domain()->cnt()) UnlockNode(C, tf);
diff --git a/hotspot/src/share/vm/opto/idealGraphPrinter.cpp b/hotspot/src/share/vm/opto/idealGraphPrinter.cpp
index 829673a..a5a0c65 100644
--- a/hotspot/src/share/vm/opto/idealGraphPrinter.cpp
+++ b/hotspot/src/share/vm/opto/idealGraphPrinter.cpp
@@ -375,9 +375,9 @@ intptr_t IdealGraphPrinter::get_node_id(Node *n) {
   return (intptr_t)(n);
 }
 
-void IdealGraphPrinter::visit_node(Node *n, void *param) {
+void IdealGraphPrinter::visit_node(Node *n, bool edges, VectorSet* temp_set) {
 
-  if(param) {
+  if (edges) {
 
     // Output edge
     intptr_t dest_id = get_node_id(n);
@@ -426,9 +426,6 @@ void IdealGraphPrinter::visit_node(Node *n, void *param) {
     if (flags & Node::Flag_is_Copy) {
       print_prop("is_copy", "true");
     }
-    if (flags & Node::Flag_is_Call) {
-      print_prop("is_call", "true");
-    }
     if (flags & Node::Flag_rematerialize) {
       print_prop("rematerialize", "true");
     }
@@ -444,27 +441,12 @@ void IdealGraphPrinter::visit_node(Node *n, void *param) {
     if (flags & Node::Flag_is_cisc_alternate) {
       print_prop("is_cisc_alternate", "true");
     }
-    if (flags & Node::Flag_is_Branch) {
-      print_prop("is_branch", "true");
-    }
-    if (flags & Node::Flag_is_block_start) {
-      print_prop("is_block_start", "true");
-    }
-    if (flags & Node::Flag_is_Goto) {
-      print_prop("is_goto", "true");
-    }
     if (flags & Node::Flag_is_dead_loop_safe) {
       print_prop("is_dead_loop_safe", "true");
     }
     if (flags & Node::Flag_may_be_short_branch) {
       print_prop("may_be_short_branch", "true");
     }
-    if (flags & Node::Flag_is_safepoint_node) {
-      print_prop("is_safepoint_node", "true");
-    }
-    if (flags & Node::Flag_is_pc_relative) {
-      print_prop("is_pc_relative", "true");
-    }
 
     if (C->matcher() != NULL) {
       if (C->matcher()->is_shared(node)) {
@@ -617,16 +599,11 @@ void IdealGraphPrinter::visit_node(Node *n, void *param) {
 
 #ifdef ASSERT
     if (node->debug_orig() != NULL) {
+      temp_set->Clear();
       stringStream dorigStream;
       Node* dorig = node->debug_orig();
-      if (dorig) {
+      while (dorig && temp_set->test_set(dorig->_idx)) {
         dorigStream.print("%d ", dorig->_idx);
-        Node* first = dorig;
-        dorig = first->debug_orig();
-        while (dorig && dorig != first) {
-          dorigStream.print("%d ", dorig->_idx);
-          dorig = dorig->debug_orig();
-        }
       }
       print_prop("debug_orig", dorigStream.as_string());
     }
@@ -647,7 +624,7 @@ void IdealGraphPrinter::visit_node(Node *n, void *param) {
   }
 }
 
-void IdealGraphPrinter::walk_nodes(Node *start, void *param) {
+void IdealGraphPrinter::walk_nodes(Node *start, bool edges, VectorSet* temp_set) {
 
 
   VectorSet visited(Thread::current()->resource_area());
@@ -668,7 +645,7 @@ void IdealGraphPrinter::walk_nodes(Node *start, void *param) {
   while(nodeStack.length() > 0) {
 
     Node *n = nodeStack.pop();
-    visit_node(n, param);
+    visit_node(n, edges, temp_set);
 
     if (_traverse_outs) {
       for (DUIterator i = n->outs(); n->has_out(i); i++) {
@@ -707,12 +684,14 @@ void IdealGraphPrinter::print(Compile* compile, const char *name, Node *node, in
   print_attr(GRAPH_NAME_PROPERTY, (const char *)name);
   end_head();
 
+  VectorSet temp_set(Thread::current()->resource_area());
+
   head(NODES_ELEMENT);
-  walk_nodes(node, NULL);
+  walk_nodes(node, false, &temp_set);
   tail(NODES_ELEMENT);
 
   head(EDGES_ELEMENT);
-  walk_nodes(node, (void *)1);
+  walk_nodes(node, true, &temp_set);
   tail(EDGES_ELEMENT);
   if (C->cfg() != NULL) {
     head(CONTROL_FLOW_ELEMENT);
diff --git a/hotspot/src/share/vm/opto/idealGraphPrinter.hpp b/hotspot/src/share/vm/opto/idealGraphPrinter.hpp
index 6115e6d..7d1863f 100644
--- a/hotspot/src/share/vm/opto/idealGraphPrinter.hpp
+++ b/hotspot/src/share/vm/opto/idealGraphPrinter.hpp
@@ -104,8 +104,8 @@ private:
   void print_indent();
   void print_method(ciMethod *method, int bci, InlineTree *tree);
   void print_inline_tree(InlineTree *tree);
-  void visit_node(Node *n, void *param);
-  void walk_nodes(Node *start, void *param);
+  void visit_node(Node *n, bool edges, VectorSet* temp_set);
+  void walk_nodes(Node *start, bool edges, VectorSet* temp_set);
   void begin_elem(const char *s);
   void end_elem();
   void begin_head(const char *s);
diff --git a/hotspot/src/share/vm/opto/ifnode.cpp b/hotspot/src/share/vm/opto/ifnode.cpp
index a7e7ebd..ce84f64 100644
--- a/hotspot/src/share/vm/opto/ifnode.cpp
+++ b/hotspot/src/share/vm/opto/ifnode.cpp
@@ -255,6 +255,14 @@ static Node* split_if(IfNode *iff, PhaseIterGVN *igvn) {
         predicate_x = predicate_proj;
     }
   }
+  if (predicate_c != NULL && (req_c > 1)) {
+    assert(predicate_x == NULL, "only one predicate entry expected");
+    predicate_c = NULL; // Do not clone predicate below merge point
+  }
+  if (predicate_x != NULL && ((len - req_c) > 2)) {
+    assert(predicate_c == NULL, "only one predicate entry expected");
+    predicate_x = NULL; // Do not clone predicate below merge point
+  }
 
   // Register the new RegionNodes but do not transform them.  Cannot
   // transform until the entire Region/Phi conglomerate has been hacked
@@ -1009,6 +1017,13 @@ void IfNode::dominated_by( Node *prev_dom, PhaseIterGVN *igvn ) {
   int prev_op = prev_dom->Opcode();
   Node *top = igvn->C->top(); // Shortcut to top
 
+  // Loop predicates may have depending checks which should not
+  // be skipped. For example, range check predicate has two checks
+  // for lower and upper bounds.
+  ProjNode* unc_proj = proj_out(1 - prev_dom->as_Proj()->_con)->as_Proj();
+  if (PhaseIdealLoop::is_uncommon_trap_proj(unc_proj, Deoptimization::Reason_predicate))
+    prev_dom = idom;
+
   // Now walk the current IfNode's projections.
   // Loop ends when 'this' has no more uses.
   for (DUIterator_Last imin, i = last_outs(imin); i >= imin; --i) {
@@ -1019,9 +1034,9 @@ void IfNode::dominated_by( Node *prev_dom, PhaseIterGVN *igvn ) {
     // or TOP if the dominating projection is of opposite type.
     // Data-target will be used as the new control edge for the non-CFG
     // nodes like Casts and Loads.
-    Node *data_target = (ifp->Opcode() == prev_op ) ? prev_dom : top;
+    Node *data_target = (ifp->Opcode() == prev_op) ? prev_dom : top;
     // Control-target is just the If's immediate dominator or TOP.
-    Node *ctrl_target = (ifp->Opcode() == prev_op ) ?     idom : top;
+    Node *ctrl_target = (ifp->Opcode() == prev_op) ?     idom : top;
 
     // For each child of an IfTrue/IfFalse projection, reroute.
     // Loop ends when projection has no more uses.
diff --git a/hotspot/src/share/vm/opto/lcm.cpp b/hotspot/src/share/vm/opto/lcm.cpp
index af75a8d..425e10b 100644
--- a/hotspot/src/share/vm/opto/lcm.cpp
+++ b/hotspot/src/share/vm/opto/lcm.cpp
@@ -325,7 +325,7 @@ void Block::implicit_null_check(PhaseCFG *cfg, Node *proj, Node *val, int allowe
       // that also need to be hoisted.
       for (DUIterator_Fast jmax, j = val->fast_outs(jmax); j < jmax; j++) {
         Node* n = val->fast_out(j);
-        if( n->Opcode() == Op_MachProj ) {
+        if( n->is_MachProj() ) {
           cfg->_bbs[n->_idx]->find_remove(n);
           this->add_inst(n);
           cfg->_bbs.map(n->_idx,this);
@@ -347,7 +347,7 @@ void Block::implicit_null_check(PhaseCFG *cfg, Node *proj, Node *val, int allowe
   // Should be DU safe because no edge updates.
   for (DUIterator_Fast jmax, j = best->fast_outs(jmax); j < jmax; j++) {
     Node* n = best->fast_out(j);
-    if( n->Opcode() == Op_MachProj ) {
+    if( n->is_MachProj() ) {
       cfg->_bbs[n->_idx]->find_remove(n);
       add_inst(n);
       cfg->_bbs.map(n->_idx,this);
@@ -539,7 +539,7 @@ void Block::needed_for_next_call(Node *this_call, VectorSet &next_call, Block_Ar
     Node* m = this_call->fast_out(i);
     if( bbs[m->_idx] == this && // Local-block user
         m != this_call &&       // Not self-start node
-        m->is_Call() )
+        m->is_MachCall() )
       call = m;
       break;
   }
@@ -557,7 +557,7 @@ uint Block::sched_call( Matcher &matcher, Block_Array &bbs, uint node_cnt, Node_
   // Collect all the defined registers.
   for (DUIterator_Fast imax, i = mcall->fast_outs(imax); i < imax; i++) {
     Node* n = mcall->fast_out(i);
-    assert( n->Opcode()==Op_MachProj, "" );
+    assert( n->is_MachProj(), "" );
     --ready_cnt[n->_idx];
     assert( !ready_cnt[n->_idx], "" );
     // Schedule next to call
@@ -975,8 +975,8 @@ void Block::call_catch_cleanup(Block_Array &bbs) {
   if( !_nodes[end]->is_Catch() ) return;
   // Start of region to clone
   uint beg = end;
-  while( _nodes[beg-1]->Opcode() != Op_MachProj ||
-        !_nodes[beg-1]->in(0)->is_Call() ) {
+  while(!_nodes[beg-1]->is_MachProj() ||
+        !_nodes[beg-1]->in(0)->is_MachCall() ) {
     beg--;
     assert(beg > 0,"Catch cleanup walking beyond block boundary");
   }
diff --git a/hotspot/src/share/vm/opto/library_call.cpp b/hotspot/src/share/vm/opto/library_call.cpp
index 8179f37..d5ad00e 100644
--- a/hotspot/src/share/vm/opto/library_call.cpp
+++ b/hotspot/src/share/vm/opto/library_call.cpp
@@ -4658,6 +4658,7 @@ LibraryCallKit::generate_arraycopy(const TypePtr* adr_type,
     // "You break it, you buy it."
     InitializeNode* init = alloc->initialization();
     assert(init->is_complete(), "we just did this");
+    init->set_complete_with_arraycopy();
     assert(dest->is_CheckCastPP(), "sanity");
     assert(dest->in(0)->in(0) == init, "dest pinned");
     adr_type = TypeRawPtr::BOTTOM;  // all initializations are into raw memory
diff --git a/hotspot/src/share/vm/opto/loopPredicate.cpp b/hotspot/src/share/vm/opto/loopPredicate.cpp
index c5227c2..d4a575d 100644
--- a/hotspot/src/share/vm/opto/loopPredicate.cpp
+++ b/hotspot/src/share/vm/opto/loopPredicate.cpp
@@ -327,81 +327,20 @@ ProjNode* PhaseIdealLoop::clone_predicate(ProjNode* predicate_proj, Node* new_en
   return new_predicate_proj;
 }
 
-//--------------------------move_predicate-----------------------
-// Cut predicate from old place and move it to new.
-ProjNode* PhaseIdealLoop::move_predicate(ProjNode* predicate_proj, Node* new_entry,
-                                         Deoptimization::DeoptReason reason,
-                                         PhaseIdealLoop* loop_phase,
-                                         PhaseIterGVN* igvn) {
-  assert(new_entry != NULL, "must be");
-  assert(predicate_proj->in(0)->in(1)->in(1)->Opcode()==Op_Opaque1, "must be");
-  IfNode* iff = predicate_proj->in(0)->as_If();
-  Node* old_entry = iff->in(0);
-
-  // Cut predicate from old place.
-  Node* old = predicate_proj;
-  igvn->_worklist.push(old);
-  for (DUIterator_Last imin, i = old->last_outs(imin); i >= imin;) {
-    Node* use = old->last_out(i);  // for each use...
-    igvn->hash_delete(use);
-    igvn->_worklist.push(use);
-    // Update use-def info
-    uint uses_found = 0;
-    for (uint j = 0; j < use->req(); j++) {
-      if (use->in(j) == old) {
-        use->set_req(j, old_entry);
-        uses_found++;
-        if (loop_phase != NULL) {
-          if (use->is_CFG()) {
-            // When called from beautify_loops() idom is not constructed yet.
-            if (loop_phase->_idom != NULL)
-              loop_phase->set_idom(use, old_entry, loop_phase->dom_depth(use));
-          } else {
-            loop_phase->set_ctrl(use, old_entry);
-          }
-        }
-      }
-    }
-    i -= uses_found;    // we deleted 1 or more copies of this edge
-  }
-
-  // Move predicate.
-  igvn->hash_delete(iff);
-  iff->set_req(0, new_entry);
-  igvn->_worklist.push(iff);
-
-  if (loop_phase != NULL) {
-    // Fix up idom and ctrl.
-    loop_phase->set_ctrl(iff->in(1), new_entry);
-    loop_phase->set_ctrl(iff->in(1)->in(1), new_entry);
-    // When called from beautify_loops() idom is not constructed yet.
-    if (loop_phase->_idom != NULL)
-      loop_phase->set_idom(iff, new_entry, loop_phase->dom_depth(iff));
-  }
-
-  return predicate_proj;
-}
 
 //--------------------------clone_loop_predicates-----------------------
 // Interface from IGVN
 Node* PhaseIterGVN::clone_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check) {
-  return PhaseIdealLoop::clone_loop_predicates(old_entry, new_entry, false, clone_limit_check, NULL, this);
-}
-Node* PhaseIterGVN::move_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check) {
-  return PhaseIdealLoop::clone_loop_predicates(old_entry, new_entry, true, clone_limit_check, NULL, this);
+  return PhaseIdealLoop::clone_loop_predicates(old_entry, new_entry, clone_limit_check, NULL, this);
 }
 
 // Interface from PhaseIdealLoop
 Node* PhaseIdealLoop::clone_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check) {
-  return clone_loop_predicates(old_entry, new_entry, false, clone_limit_check, this, &this->_igvn);
-}
-Node* PhaseIdealLoop::move_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check) {
-  return clone_loop_predicates(old_entry, new_entry, true, clone_limit_check, this, &this->_igvn);
+  return clone_loop_predicates(old_entry, new_entry, clone_limit_check, this, &this->_igvn);
 }
 
 // Clone loop predicates to cloned loops (peeled, unswitched, split_if).
 Node* PhaseIdealLoop::clone_loop_predicates(Node* old_entry, Node* new_entry,
-                                                bool move_predicates,
                                                 bool clone_limit_check,
                                                 PhaseIdealLoop* loop_phase,
                                                 PhaseIterGVN* igvn) {
@@ -424,20 +363,13 @@ Node* PhaseIdealLoop::clone_loop_predicates(Node* old_entry, Node* new_entry,
   if (UseLoopPredicate) {
     ProjNode* predicate_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_predicate);
     if (predicate_proj != NULL) { // right pattern that can be used by loop predication
-      if (move_predicates) {
-        new_entry =  move_predicate(predicate_proj, new_entry,
-                                    Deoptimization::Reason_predicate,
-                                    loop_phase, igvn);
-        assert(new_entry == predicate_proj, "old predicate fall through projection");
-      } else {
-        // clone predicate
-        new_entry = clone_predicate(predicate_proj, new_entry,
-                                    Deoptimization::Reason_predicate,
-                                    loop_phase, igvn);
-        assert(new_entry != NULL && new_entry->is_Proj(), "IfTrue or IfFalse after clone predicate");
-      }
+      // clone predicate
+      new_entry = clone_predicate(predicate_proj, new_entry,
+                                  Deoptimization::Reason_predicate,
+                                  loop_phase, igvn);
+      assert(new_entry != NULL && new_entry->is_Proj(), "IfTrue or IfFalse after clone predicate");
       if (TraceLoopPredicate) {
-        tty->print_cr("Loop Predicate %s: ", move_predicates ? "moved" : "cloned");
+        tty->print("Loop Predicate cloned: ");
         debug_only( new_entry->in(0)->dump(); )
       }
     }
@@ -446,45 +378,18 @@ Node* PhaseIdealLoop::clone_loop_predicates(Node* old_entry, Node* new_entry,
     // Clone loop limit check last to insert it before loop.
     // Don't clone a limit check which was already finalized
     // for this counted loop (only one limit check is needed).
-    if (move_predicates) {
-      new_entry =  move_predicate(limit_check_proj, new_entry,
-                                  Deoptimization::Reason_loop_limit_check,
-                                  loop_phase, igvn);
-      assert(new_entry == limit_check_proj, "old limit check fall through projection");
-    } else {
-      new_entry = clone_predicate(limit_check_proj, new_entry,
-                                  Deoptimization::Reason_loop_limit_check,
-                                  loop_phase, igvn);
-      assert(new_entry != NULL && new_entry->is_Proj(), "IfTrue or IfFalse after clone limit check");
-    }
+    new_entry = clone_predicate(limit_check_proj, new_entry,
+                                Deoptimization::Reason_loop_limit_check,
+                                loop_phase, igvn);
+    assert(new_entry != NULL && new_entry->is_Proj(), "IfTrue or IfFalse after clone limit check");
     if (TraceLoopLimitCheck) {
-      tty->print_cr("Loop Limit Check %s: ", move_predicates ? "moved" : "cloned");
+      tty->print("Loop Limit Check cloned: ");
       debug_only( new_entry->in(0)->dump(); )
     }
   }
   return new_entry;
 }
 
-//--------------------------eliminate_loop_predicates-----------------------
-void PhaseIdealLoop::eliminate_loop_predicates(Node* entry) {
-  if (LoopLimitCheck) {
-    Node* predicate = find_predicate_insertion_point(entry, Deoptimization::Reason_loop_limit_check);
-    if (predicate != NULL) {
-      entry = entry->in(0)->in(0);
-    }
-  }
-  if (UseLoopPredicate) {
-    ProjNode* predicate_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_predicate);
-    if (predicate_proj != NULL) { // right pattern that can be used by loop predication
-      Node* n = entry->in(0)->in(1)->in(1);
-      assert(n->Opcode()==Op_Opaque1, "must be");
-      // Remove Opaque1 node from predicates list.
-      // IGVN will remove this predicate check.
-      _igvn.replace_node(n, n->in(1));
-    }
-  }
-}
-
 //--------------------------skip_loop_predicates------------------------------
 // Skip related predicates.
 Node* PhaseIdealLoop::skip_loop_predicates(Node* entry) {
@@ -813,10 +718,14 @@ bool PhaseIdealLoop::loop_predication_impl(IdealLoopTree *loop) {
   }
 
   CountedLoopNode *cl = NULL;
-  if (head->is_CountedLoop()) {
+  if (head->is_valid_counted_loop()) {
     cl = head->as_CountedLoop();
     // do nothing for iteration-splitted loops
     if (!cl->is_normal_loop()) return false;
+    // Avoid RCE if Counted loop's test is '!='.
+    BoolTest::mask bt = cl->loopexit()->test_trip();
+    if (bt != BoolTest::lt && bt != BoolTest::gt)
+      cl = NULL;
   }
 
   Node* entry = head->in(LoopNode::EntryControl);
@@ -958,7 +867,7 @@ bool PhaseIdealLoop::loop_predication_impl(IdealLoopTree *loop) {
       if (TraceLoopPredicate) tty->print_cr("lower bound check if: %d", lower_bound_iff->_idx);
 
       // Test the upper bound
-      Node* upper_bound_bol = rc_predicate(loop, ctrl, scale, offset, init, limit, stride, rng, true);
+      Node* upper_bound_bol = rc_predicate(loop, lower_bound_proj, scale, offset, init, limit, stride, rng, true);
       IfNode* upper_bound_iff = upper_bound_proj->in(0)->as_If();
       _igvn.hash_delete(upper_bound_iff);
       upper_bound_iff->set_req(1, upper_bound_bol);
diff --git a/hotspot/src/share/vm/opto/loopTransform.cpp b/hotspot/src/share/vm/opto/loopTransform.cpp
index 7ef2d13..eee153a 100644
--- a/hotspot/src/share/vm/opto/loopTransform.cpp
+++ b/hotspot/src/share/vm/opto/loopTransform.cpp
@@ -509,14 +509,13 @@ void PhaseIdealLoop::do_peeling( IdealLoopTree *loop, Node_List &old_new ) {
   //         backedges) and then map to the new peeled iteration.  This leaves
   //         the pre-loop with only 1 user (the new peeled iteration), but the
   //         peeled-loop backedge has 2 users.
-  Node* new_exit_value = old_new[head->in(LoopNode::LoopBackControl)->_idx];
-  new_exit_value = move_loop_predicates(entry, new_exit_value, !counted_loop);
+  Node* new_entry = old_new[head->in(LoopNode::LoopBackControl)->_idx];
   _igvn.hash_delete(head);
-  head->set_req(LoopNode::EntryControl, new_exit_value);
+  head->set_req(LoopNode::EntryControl, new_entry);
   for (DUIterator_Fast jmax, j = head->fast_outs(jmax); j < jmax; j++) {
     Node* old = head->fast_out(j);
     if (old->in(0) == loop->_head && old->req() == 3 && old->is_Phi()) {
-      new_exit_value = old_new[old->in(LoopNode::LoopBackControl)->_idx];
+      Node* new_exit_value = old_new[old->in(LoopNode::LoopBackControl)->_idx];
       if (!new_exit_value )     // Backedge value is ALSO loop invariant?
         // Then loop body backedge value remains the same.
         new_exit_value = old->in(LoopNode::LoopBackControl);
@@ -710,10 +709,13 @@ bool IdealLoopTree::policy_unroll( PhaseIdealLoop *phase ) const {
 
   // Adjust body_size to determine if we unroll or not
   uint body_size = _body.size();
+  // Key test to unroll loop in CRC32 java code
+  int xors_in_loop = 0;
   // Also count ModL, DivL and MulL which expand mightly
   for (uint k = 0; k < _body.size(); k++) {
     Node* n = _body.at(k);
     switch (n->Opcode()) {
+      case Op_XorI: xors_in_loop++; break; // CRC32 java code
       case Op_ModL: body_size += 30; break;
       case Op_DivL: body_size += 30; break;
       case Op_MulL: body_size += 10; break;
@@ -730,7 +732,8 @@ bool IdealLoopTree::policy_unroll( PhaseIdealLoop *phase ) const {
 
   // Check for being too big
   if (body_size > (uint)LoopUnrollLimit) {
-     // Normal case: loop too big
+    if (xors_in_loop >= 4 && body_size < (uint)LoopUnrollLimit*4) return true;
+    // Normal case: loop too big
     return false;
   }
 
@@ -2100,7 +2103,7 @@ bool IdealLoopTree::policy_do_remove_empty_loop( PhaseIdealLoop *phase ) {
   if (!_head->is_CountedLoop())
     return false;     // Dead loop
   CountedLoopNode *cl = _head->as_CountedLoop();
-  if (!cl->loopexit())
+  if (!cl->is_valid_counted_loop())
     return false; // Malformed loop
   if (!phase->is_member(this, phase->get_ctrl(cl->loopexit()->in(CountedLoopEndNode::TestValue))))
     return false;             // Infinite loop
@@ -2256,7 +2259,7 @@ bool IdealLoopTree::iteration_split_impl( PhaseIdealLoop *phase, Node_List &old_
   }
   CountedLoopNode *cl = _head->as_CountedLoop();
 
-  if (!cl->loopexit()) return true; // Ignore various kinds of broken loops
+  if (!cl->is_valid_counted_loop()) return true; // Ignore various kinds of broken loops
 
   // Do nothing special to pre- and post- loops
   if (cl->is_pre_loop() || cl->is_post_loop()) return true;
@@ -2637,7 +2640,7 @@ bool PhaseIdealLoop::intrinsify_fill(IdealLoopTree* lpt) {
 
   // Must have constant stride
   CountedLoopNode* head = lpt->_head->as_CountedLoop();
-  if (!head->stride_is_con() || !head->is_normal_loop()) {
+  if (!head->is_valid_counted_loop() || !head->is_normal_loop()) {
     return false;
   }
 
diff --git a/hotspot/src/share/vm/opto/loopUnswitch.cpp b/hotspot/src/share/vm/opto/loopUnswitch.cpp
index 9fa6421..20ddf78 100644
--- a/hotspot/src/share/vm/opto/loopUnswitch.cpp
+++ b/hotspot/src/share/vm/opto/loopUnswitch.cpp
@@ -255,7 +255,7 @@ ProjNode* PhaseIdealLoop::create_slow_version_of_loop(IdealLoopTree *loop,
   _igvn._worklist.push(head);
 
   // Slow (false) control
-  Node* ifslow_pred = move_loop_predicates(entry, ifslow, !counted_loop);
+  Node* ifslow_pred = clone_loop_predicates(entry, ifslow, !counted_loop);
   LoopNode* slow_head = old_new[head->_idx]->as_Loop();
   _igvn.hash_delete(slow_head);
   slow_head->set_req(LoopNode::EntryControl, ifslow_pred);
diff --git a/hotspot/src/share/vm/opto/loopnode.cpp b/hotspot/src/share/vm/opto/loopnode.cpp
index eb138f5..2243c39 100644
--- a/hotspot/src/share/vm/opto/loopnode.cpp
+++ b/hotspot/src/share/vm/opto/loopnode.cpp
@@ -582,20 +582,25 @@ bool PhaseIdealLoop::is_counted_loop( Node *x, IdealLoopTree *loop ) {
 
   // Build a canonical trip test.
   // Clone code, as old values may be in use.
-  Node* nphi = PhiNode::make(x, init_trip, TypeInt::INT);
-  nphi = _igvn.register_new_node_with_optimizer(nphi);
-  set_ctrl(nphi, get_ctrl(phi));
-
   incr = incr->clone();
-  incr->set_req(1,nphi);
+  incr->set_req(1,phi);
   incr->set_req(2,stride);
   incr = _igvn.register_new_node_with_optimizer(incr);
   set_early_ctrl( incr );
-
-  nphi->set_req(LoopNode::LoopBackControl, incr);
-  _igvn.replace_node(phi, nphi);
-  phi = nphi->as_Phi();
-
+  _igvn.hash_delete(phi);
+  phi->set_req_X( LoopNode::LoopBackControl, incr, &_igvn );
+
+  // If phi type is more restrictive than Int, raise to
+  // Int to prevent (almost) infinite recursion in igvn
+  // which can only handle integer types for constants or minint..maxint.
+  if (!TypeInt::INT->higher_equal(phi->bottom_type())) {
+    Node* nphi = PhiNode::make(phi->in(0), phi->in(LoopNode::EntryControl), TypeInt::INT);
+    nphi->set_req(LoopNode::LoopBackControl, phi->in(LoopNode::LoopBackControl));
+    nphi = _igvn.register_new_node_with_optimizer(nphi);
+    set_ctrl(nphi, get_ctrl(phi));
+    _igvn.replace_node(phi, nphi);
+    phi = nphi->as_Phi();
+  }
   cmp = cmp->clone();
   cmp->set_req(1,incr);
   cmp->set_req(2,limit);
@@ -689,6 +694,7 @@ bool PhaseIdealLoop::is_counted_loop( Node *x, IdealLoopTree *loop ) {
 Node* PhaseIdealLoop::exact_limit( IdealLoopTree *loop ) {
   assert(loop->_head->is_CountedLoop(), "");
   CountedLoopNode *cl = loop->_head->as_CountedLoop();
+  assert(cl->is_valid_counted_loop(), "");
 
   if (!LoopLimitCheck || ABS(cl->stride_con()) == 1 ||
       cl->limit()->Opcode() == Op_LoopLimit) {
@@ -1167,9 +1173,8 @@ void IdealLoopTree::split_outer_loop( PhaseIdealLoop *phase ) {
   outer = igvn.register_new_node_with_optimizer(outer, _head);
   phase->set_created_loop_node();
 
-  Node* pred = phase->clone_loop_predicates(ctl, outer, true);
   // Outermost loop falls into '_head' loop
-  _head->set_req(LoopNode::EntryControl, pred);
+  _head->set_req(LoopNode::EntryControl, outer);
   _head->del_req(outer_idx);
   // Split all the Phis up between '_head' loop and 'outer' loop.
   for (DUIterator_Fast jmax, j = _head->fast_outs(jmax); j < jmax; j++) {
@@ -1609,18 +1614,15 @@ bool PhaseIdealLoop::is_deleteable_safept(Node* sfpt) {
 void PhaseIdealLoop::replace_parallel_iv(IdealLoopTree *loop) {
   assert(loop->_head->is_CountedLoop(), "");
   CountedLoopNode *cl = loop->_head->as_CountedLoop();
+  if (!cl->is_valid_counted_loop())
+    return;         // skip malformed counted loop
   Node *incr = cl->incr();
   if (incr == NULL)
     return;         // Dead loop?
   Node *init = cl->init_trip();
   Node *phi  = cl->phi();
-  // protect against stride not being a constant
-  if (!cl->stride_is_con())
-    return;
   int stride_con = cl->stride_con();
 
-  PhaseGVN *gvn = &_igvn;
-
   // Visit all children, looking for Phis
   for (DUIterator i = cl->outs(); cl->has_out(i); i++) {
     Node *out = cl->out(i);
@@ -1656,25 +1658,31 @@ void PhaseIdealLoop::replace_parallel_iv(IdealLoopTree *loop) {
     int ratio_con = stride_con2/stride_con;
 
     if ((ratio_con * stride_con) == stride_con2) { // Check for exact
+#ifndef PRODUCT
+      if (TraceLoopOpts) {
+        tty->print("Parallel IV: %d ", phi2->_idx);
+        loop->dump_head();
+      }
+#endif
       // Convert to using the trip counter.  The parallel induction
       // variable differs from the trip counter by a loop-invariant
       // amount, the difference between their respective initial values.
       // It is scaled by the 'ratio_con'.
-      // Perform local Ideal transformation since in most cases ratio == 1.
       Node* ratio = _igvn.intcon(ratio_con);
       set_ctrl(ratio, C->root());
-      Node* hook = new (C, 3) Node(3);
-      Node* ratio_init = gvn->transform(new (C, 3) MulINode(init, ratio));
-      hook->init_req(0, ratio_init);
-      Node* diff = gvn->transform(new (C, 3) SubINode(init2, ratio_init));
-      hook->init_req(1, diff);
-      Node* ratio_idx = gvn->transform(new (C, 3) MulINode(phi, ratio));
-      hook->init_req(2, ratio_idx);
-      Node* add  = gvn->transform(new (C, 3) AddINode(ratio_idx, diff));
-      set_subtree_ctrl(add);
+      Node* ratio_init = new (C, 3) MulINode(init, ratio);
+      _igvn.register_new_node_with_optimizer(ratio_init, init);
+      set_early_ctrl(ratio_init);
+      Node* diff = new (C, 3) SubINode(init2, ratio_init);
+      _igvn.register_new_node_with_optimizer(diff, init2);
+      set_early_ctrl(diff);
+      Node* ratio_idx = new (C, 3) MulINode(phi, ratio);
+      _igvn.register_new_node_with_optimizer(ratio_idx, phi);
+      set_ctrl(ratio_idx, cl);
+      Node* add = new (C, 3) AddINode(ratio_idx, diff);
+      _igvn.register_new_node_with_optimizer(add);
+      set_ctrl(add, cl);
       _igvn.replace_node( phi2, add );
-      // Free up intermediate goo
-      _igvn.remove_dead_node(hook);
       // Sometimes an induction variable is unused
       if (add->outcnt() == 0) {
         _igvn.remove_dead_node(add);
diff --git a/hotspot/src/share/vm/opto/loopnode.hpp b/hotspot/src/share/vm/opto/loopnode.hpp
index 07d13de..817124b 100644
--- a/hotspot/src/share/vm/opto/loopnode.hpp
+++ b/hotspot/src/share/vm/opto/loopnode.hpp
@@ -877,19 +877,13 @@ public:
                                    Deoptimization::DeoptReason reason,
                                    PhaseIdealLoop* loop_phase,
                                    PhaseIterGVN* igvn);
-  static ProjNode*  move_predicate(ProjNode* predicate_proj, Node* new_entry,
-                                   Deoptimization::DeoptReason reason,
-                                   PhaseIdealLoop* loop_phase,
-                                   PhaseIterGVN* igvn);
+
   static Node* clone_loop_predicates(Node* old_entry, Node* new_entry,
-                                         bool move_predicates,
                                          bool clone_limit_check,
                                          PhaseIdealLoop* loop_phase,
                                          PhaseIterGVN* igvn);
   Node* clone_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check);
-  Node*  move_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check);
 
-  void eliminate_loop_predicates(Node* entry);
   static Node* skip_loop_predicates(Node* entry);
 
   // Find a good location to insert a predicate
@@ -1009,7 +1003,7 @@ public:
   Node *has_local_phi_input( Node *n );
   // Mark an IfNode as being dominated by a prior test,
   // without actually altering the CFG (and hence IDOM info).
-  void dominated_by( Node *prevdom, Node *iff, bool flip = false );
+  void dominated_by( Node *prevdom, Node *iff, bool flip = false, bool exclude_loop_predicate = false );
 
   // Split Node 'n' through merge point
   Node *split_thru_region( Node *n, Node *region );
diff --git a/hotspot/src/share/vm/opto/loopopts.cpp b/hotspot/src/share/vm/opto/loopopts.cpp
index 6498d3c..c693deb 100644
--- a/hotspot/src/share/vm/opto/loopopts.cpp
+++ b/hotspot/src/share/vm/opto/loopopts.cpp
@@ -194,7 +194,7 @@ Node *PhaseIdealLoop::split_thru_phi( Node *n, Node *region, int policy ) {
 // Replace the dominated test with an obvious true or false.  Place it on the
 // IGVN worklist for later cleanup.  Move control-dependent data Nodes on the
 // live path up to the dominating control.
-void PhaseIdealLoop::dominated_by( Node *prevdom, Node *iff, bool flip ) {
+void PhaseIdealLoop::dominated_by( Node *prevdom, Node *iff, bool flip, bool exclude_loop_predicate ) {
 #ifndef PRODUCT
   if (VerifyLoopOptimizations && PrintOpto) tty->print_cr("dominating test");
 #endif
@@ -228,7 +228,16 @@ void PhaseIdealLoop::dominated_by( Node *prevdom, Node *iff, bool flip ) {
   // Make control-dependent data Nodes on the live path (path that will remain
   // once the dominated IF is removed) become control-dependent on the
   // dominating projection.
-  Node* dp = ((IfNode*)iff)->proj_out(pop == Op_IfTrue);
+  Node* dp = iff->as_If()->proj_out(pop == Op_IfTrue);
+
+  // Loop predicates may have depending checks which should not
+  // be skipped. For example, range check predicate has two checks
+  // for lower and upper bounds.
+  ProjNode* unc_proj = iff->as_If()->proj_out(1 - dp->as_Proj()->_con)->as_Proj();
+  if (exclude_loop_predicate &&
+      is_uncommon_trap_proj(unc_proj, Deoptimization::Reason_predicate))
+    return; // Let IGVN transformation change control dependence.
+
   IdealLoopTree *old_loop = get_loop(dp);
 
   for (DUIterator_Fast imax, i = dp->fast_outs(imax); i < imax; i++) {
@@ -859,7 +868,7 @@ void PhaseIdealLoop::split_if_with_blocks_post( Node *n ) {
           // Replace the dominated test with an obvious true or false.
           // Place it on the IGVN worklist for later cleanup.
           C->set_major_progress();
-          dominated_by( prevdom, n );
+          dominated_by( prevdom, n, false, true );
 #ifndef PRODUCT
           if( VerifyLoopOptimizations ) verify();
 #endif
diff --git a/hotspot/src/share/vm/opto/machnode.cpp b/hotspot/src/share/vm/opto/machnode.cpp
index 6242c66..dd6c3c0 100644
--- a/hotspot/src/share/vm/opto/machnode.cpp
+++ b/hotspot/src/share/vm/opto/machnode.cpp
@@ -389,12 +389,6 @@ int MachNode::operand_index( uint operand ) const {
 }
 
 
-//------------------------------negate-----------------------------------------
-// Negate conditional branches.  Error for non-branch Nodes
-void MachNode::negate() {
-  ShouldNotCallThis();
-}
-
 //------------------------------peephole---------------------------------------
 // Apply peephole rule(s) to this instruction
 MachNode *MachNode::peephole( Block *block, int block_index, PhaseRegAlloc *ra_, int &deleted, Compile* C ) {
@@ -407,12 +401,6 @@ void MachNode::add_case_label( int index_num, Label* blockLabel) {
   ShouldNotCallThis();
 }
 
-//------------------------------label_set--------------------------------------
-// Set the Label for a LabelOper, if an operand for this instruction
-void MachNode::label_set( Label& label, uint block_num ) {
-  ShouldNotCallThis();
-}
-
 //------------------------------method_set-------------------------------------
 // Set the absolute address of a method
 void MachNode::method_set( intptr_t addr ) {
@@ -514,6 +502,12 @@ void MachNullCheckNode::format( PhaseRegAlloc *ra_, outputStream *st ) const {
 void MachNullCheckNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
   // only emits entries in the null-pointer exception handler table
 }
+void MachNullCheckNode::label_set(Label* label, uint block_num) {
+  // Nothing to emit
+}
+void MachNullCheckNode::save_label( Label** label, uint* block_num ) {
+  // Nothing to emit
+}
 
 const RegMask &MachNullCheckNode::in_RegMask( uint idx ) const {
   if( idx == 0 ) return RegMask::Empty;
diff --git a/hotspot/src/share/vm/opto/machnode.hpp b/hotspot/src/share/vm/opto/machnode.hpp
index d947bb8..c44c8d0 100644
--- a/hotspot/src/share/vm/opto/machnode.hpp
+++ b/hotspot/src/share/vm/opto/machnode.hpp
@@ -185,9 +185,11 @@ public:
   virtual void use_cisc_RegMask();
 
   // Support for short branches
-  virtual MachNode *short_branch_version(Compile* C) { return NULL; }
   bool may_be_short_branch() const { return (flags() & Flag_may_be_short_branch) != 0; }
 
+  // Avoid back to back some instructions on some CPUs.
+  bool avoid_back_to_back() const { return (flags() & Flag_avoid_back_to_back) != 0; }
+
   // First index in _in[] corresponding to operand, or -1 if there is none
   int  operand_index(uint operand) const;
 
@@ -269,21 +271,12 @@ public:
   // Call "get_base_and_disp" to decide which category of memory is used here.
   virtual const class TypePtr *adr_type() const;
 
-  // Negate conditional branches.  Error for non-branch Nodes
-  virtual void negate();
-
   // Apply peephole rule(s) to this instruction
   virtual MachNode *peephole( Block *block, int block_index, PhaseRegAlloc *ra_, int &deleted, Compile* C );
 
-  // Check for PC-Relative addressing
-  bool is_pc_relative() const { return (flags() & Flag_is_pc_relative) != 0; }
-
   // Top-level ideal Opcode matched
   virtual int ideal_Opcode()     const { return Op_Node; }
 
-  // Set the branch inside jump MachNodes.  Error for non-branch Nodes.
-  virtual void label_set( Label& label, uint block_num );
-
   // Adds the label for the case
   virtual void add_case_label( int switch_val, Label* blockLabel);
 
@@ -514,24 +507,41 @@ public:
 #endif
 };
 
+//------------------------------MachBranchNode--------------------------------
+// Abstract machine branch Node
+class MachBranchNode : public MachIdealNode {
+public:
+  MachBranchNode() : MachIdealNode() {
+    init_class_id(Class_MachBranch);
+  }
+  virtual void label_set(Label* label, uint block_num) = 0;
+  virtual void save_label(Label** label, uint* block_num) = 0;
+
+  // Support for short branches
+  virtual MachNode *short_branch_version(Compile* C) { return NULL; }
+
+  virtual bool pinned() const { return true; };
+};
+
 //------------------------------MachNullChkNode--------------------------------
 // Machine-dependent null-pointer-check Node.  Points a real MachNode that is
 // also some kind of memory op.  Turns the indicated MachNode into a
 // conditional branch with good latency on the ptr-not-null path and awful
 // latency on the pointer-is-null path.
 
-class MachNullCheckNode : public MachIdealNode {
+class MachNullCheckNode : public MachBranchNode {
 public:
   const uint _vidx;             // Index of memop being tested
-  MachNullCheckNode( Node *ctrl, Node *memop, uint vidx ) : MachIdealNode(), _vidx(vidx) {
+  MachNullCheckNode( Node *ctrl, Node *memop, uint vidx ) : MachBranchNode(), _vidx(vidx) {
     init_class_id(Class_MachNullCheck);
-    init_flags(Flag_is_Branch | Flag_is_pc_relative);
     add_req(ctrl);
     add_req(memop);
   }
+  virtual uint size_of() const { return sizeof(*this); }
 
   virtual void emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const;
-  virtual bool pinned() const { return true; };
+  virtual void label_set(Label* label, uint block_num);
+  virtual void save_label(Label** label, uint* block_num);
   virtual void negate() { }
   virtual const class Type *bottom_type() const { return TypeTuple::IFBOTH; }
   virtual uint ideal_reg() const { return NotAMachineReg; }
@@ -553,7 +563,9 @@ public:
 // occasional callbacks to the machine model for important info.
 class MachProjNode : public ProjNode {
 public:
-  MachProjNode( Node *multi, uint con, const RegMask &out, uint ideal_reg ) : ProjNode(multi,con), _rout(out), _ideal_reg(ideal_reg) {}
+  MachProjNode( Node *multi, uint con, const RegMask &out, uint ideal_reg ) : ProjNode(multi,con), _rout(out), _ideal_reg(ideal_reg) {
+    init_class_id(Class_MachProj);
+  }
   RegMask _rout;
   const uint  _ideal_reg;
   enum projType {
@@ -575,19 +587,30 @@ public:
 
 //------------------------------MachIfNode-------------------------------------
 // Machine-specific versions of IfNodes
-class MachIfNode : public MachNode {
+class MachIfNode : public MachBranchNode {
   virtual uint size_of() const { return sizeof(*this); } // Size is bigger
 public:
   float _prob;                  // Probability branch goes either way
   float _fcnt;                  // Frequency counter
-  MachIfNode() : MachNode() {
+  MachIfNode() : MachBranchNode() {
     init_class_id(Class_MachIf);
   }
+  // Negate conditional branches.
+  virtual void negate() = 0;
 #ifndef PRODUCT
   virtual void dump_spec(outputStream *st) const;
 #endif
 };
 
+//------------------------------MachGotoNode-----------------------------------
+// Machine-specific versions of GotoNodes
+class MachGotoNode : public MachBranchNode {
+public:
+  MachGotoNode() : MachBranchNode() {
+    init_class_id(Class_MachGoto);
+  }
+};
+
 //------------------------------MachFastLockNode-------------------------------------
 // Machine-specific versions of FastLockNodes
 class MachFastLockNode : public MachNode {
@@ -630,14 +653,12 @@ public:
 
   MachSafePointNode() : MachReturnNode(), _oop_map(NULL), _jvms(NULL), _jvmadj(0) {
     init_class_id(Class_MachSafePoint);
-    init_flags(Flag_is_safepoint_node);
   }
 
   virtual JVMState* jvms() const { return _jvms; }
   void set_jvms(JVMState* s) {
     _jvms = s;
   }
-  bool is_safepoint_node() const { return (flags() & Flag_is_safepoint_node) != 0; }
   virtual const Type    *bottom_type() const;
 
   virtual const RegMask &in_RegMask(uint) const;
@@ -701,7 +722,6 @@ public:
 
   MachCallNode() : MachSafePointNode() {
     init_class_id(Class_MachCall);
-    init_flags(Flag_is_Call);
   }
 
   virtual const Type *bottom_type() const;
@@ -853,7 +873,7 @@ public:
 
   virtual MachOper *clone(Compile* C) const;
 
-  virtual Label *label() const { return _label; }
+  virtual Label *label() const { assert(_label != NULL, "need Label"); return _label; }
 
   virtual uint           opcode() const;
 
diff --git a/hotspot/src/share/vm/opto/macro.cpp b/hotspot/src/share/vm/opto/macro.cpp
index e7b9013..b5f6453 100644
--- a/hotspot/src/share/vm/opto/macro.cpp
+++ b/hotspot/src/share/vm/opto/macro.cpp
@@ -1590,7 +1590,7 @@ Node* PhaseMacroExpand::prefetch_allocation(Node* i_o, Node*& needgc_false,
         prefetch_adr = new (C, 4) AddPNode( old_pf_wm, new_pf_wmt,
                                             _igvn.MakeConX(distance) );
         transform_later(prefetch_adr);
-        prefetch = new (C, 3) PrefetchWriteNode( i_o, prefetch_adr );
+        prefetch = new (C, 3) PrefetchAllocationNode( i_o, prefetch_adr );
         transform_later(prefetch);
         distance += step_size;
         i_o = prefetch;
@@ -1611,13 +1611,14 @@ Node* PhaseMacroExpand::prefetch_allocation(Node* i_o, Node*& needgc_false,
       contended_phi_rawmem = pf_phi_rawmem;
       i_o = pf_phi_abio;
    } else if( UseTLAB && AllocatePrefetchStyle == 3 ) {
-      // Insert a prefetch for each allocation only on the fast-path
+      // Insert a prefetch for each allocation.
+      // This code is used for Sparc with BIS.
       Node *pf_region = new (C, 3) RegionNode(3);
       Node *pf_phi_rawmem = new (C, 3) PhiNode( pf_region, Type::MEMORY,
                                                 TypeRawPtr::BOTTOM );
 
-      // Generate several prefetch instructions only for arrays.
-      uint lines = (length != NULL) ? AllocatePrefetchLines : 1;
+      // Generate several prefetch instructions.
+      uint lines = (length != NULL) ? AllocatePrefetchLines : AllocateInstancePrefetchLines;
       uint step_size = AllocatePrefetchStepSize;
       uint distance = AllocatePrefetchDistance;
 
@@ -1634,7 +1635,7 @@ Node* PhaseMacroExpand::prefetch_allocation(Node* i_o, Node*& needgc_false,
       transform_later(cache_adr);
 
       // Prefetch
-      Node *prefetch = new (C, 3) PrefetchWriteNode( contended_phi_rawmem, cache_adr );
+      Node *prefetch = new (C, 3) PrefetchAllocationNode( contended_phi_rawmem, cache_adr );
       prefetch->set_req(0, needgc_false);
       transform_later(prefetch);
       contended_phi_rawmem = prefetch;
@@ -1644,7 +1645,7 @@ Node* PhaseMacroExpand::prefetch_allocation(Node* i_o, Node*& needgc_false,
         prefetch_adr = new (C, 4) AddPNode( cache_adr, cache_adr,
                                             _igvn.MakeConX(distance) );
         transform_later(prefetch_adr);
-        prefetch = new (C, 3) PrefetchWriteNode( contended_phi_rawmem, prefetch_adr );
+        prefetch = new (C, 3) PrefetchAllocationNode( contended_phi_rawmem, prefetch_adr );
         transform_later(prefetch);
         distance += step_size;
         contended_phi_rawmem = prefetch;
@@ -1653,15 +1654,15 @@ Node* PhaseMacroExpand::prefetch_allocation(Node* i_o, Node*& needgc_false,
       // Insert a prefetch for each allocation only on the fast-path
       Node *prefetch_adr;
       Node *prefetch;
-      // Generate several prefetch instructions only for arrays.
-      uint lines = (length != NULL) ? AllocatePrefetchLines : 1;
+      // Generate several prefetch instructions.
+      uint lines = (length != NULL) ? AllocatePrefetchLines : AllocateInstancePrefetchLines;
       uint step_size = AllocatePrefetchStepSize;
       uint distance = AllocatePrefetchDistance;
       for ( uint i = 0; i < lines; i++ ) {
         prefetch_adr = new (C, 4) AddPNode( old_eden_top, new_eden_top,
                                             _igvn.MakeConX(distance) );
         transform_later(prefetch_adr);
-        prefetch = new (C, 3) PrefetchWriteNode( i_o, prefetch_adr );
+        prefetch = new (C, 3) PrefetchAllocationNode( i_o, prefetch_adr );
         // Do not let it float too high, since if eden_top == eden_end,
         // both might be null.
         if( i == 0 ) { // Set control for first prefetch, next follows it
@@ -1684,9 +1685,21 @@ void PhaseMacroExpand::expand_allocate(AllocateNode *alloc) {
 
 void PhaseMacroExpand::expand_allocate_array(AllocateArrayNode *alloc) {
   Node* length = alloc->in(AllocateNode::ALength);
+  InitializeNode* init = alloc->initialization();
+  Node* klass_node = alloc->in(AllocateNode::KlassNode);
+  ciKlass* k = _igvn.type(klass_node)->is_klassptr()->klass();
+  address slow_call_address;  // Address of slow call
+  if (init != NULL && init->is_complete_with_arraycopy() &&
+      k->is_type_array_klass()) {
+    // Don't zero type array during slow allocation in VM since
+    // it will be initialized later by arraycopy in compiled code.
+    slow_call_address = OptoRuntime::new_array_nozero_Java();
+  } else {
+    slow_call_address = OptoRuntime::new_array_Java();
+  }
   expand_allocate_common(alloc, length,
                          OptoRuntime::new_array_Type(),
-                         OptoRuntime::new_array_Java());
+                         slow_call_address);
 }
 
 //-----------------------mark_eliminated_locking_nodes-----------------------
@@ -1816,9 +1829,9 @@ bool PhaseMacroExpand::eliminate_locking_node(AbstractLockNode *alock) {
   // The input to a Lock is merged memory, so extract its RawMem input
   // (unless the MergeMem has been optimized away.)
   if (alock->is_Lock()) {
-    // Seach for MemBarAcquire node and delete it also.
+    // Seach for MemBarAcquireLock node and delete it also.
     MemBarNode* membar = fallthroughproj->unique_ctrl_out()->as_MemBar();
-    assert(membar != NULL && membar->Opcode() == Op_MemBarAcquire, "");
+    assert(membar != NULL && membar->Opcode() == Op_MemBarAcquireLock, "");
     Node* ctrlproj = membar->proj_out(TypeFunc::Control);
     Node* memproj = membar->proj_out(TypeFunc::Memory);
     _igvn.replace_node(ctrlproj, fallthroughproj);
@@ -1833,11 +1846,11 @@ bool PhaseMacroExpand::eliminate_locking_node(AbstractLockNode *alock) {
     }
   }
 
-  // Seach for MemBarRelease node and delete it also.
+  // Seach for MemBarReleaseLock node and delete it also.
   if (alock->is_Unlock() && ctrl != NULL && ctrl->is_Proj() &&
       ctrl->in(0)->is_MemBar()) {
     MemBarNode* membar = ctrl->in(0)->as_MemBar();
-    assert(membar->Opcode() == Op_MemBarRelease &&
+    assert(membar->Opcode() == Op_MemBarReleaseLock &&
            mem->is_Proj() && membar == mem->in(0), "");
     _igvn.replace_node(fallthroughproj, ctrl);
     _igvn.replace_node(memproj_fallthrough, mem);
diff --git a/hotspot/src/share/vm/opto/matcher.cpp b/hotspot/src/share/vm/opto/matcher.cpp
index bf24f9b..3244a94 100644
--- a/hotspot/src/share/vm/opto/matcher.cpp
+++ b/hotspot/src/share/vm/opto/matcher.cpp
@@ -501,6 +501,12 @@ void Matcher::init_first_stack_mask() {
      idealreg2spillmask[Op_RegP]->OR(*idealreg2regmask[Op_RegD]);
 #else
      idealreg2spillmask[Op_RegP]->OR(*idealreg2regmask[Op_RegF]);
+#ifdef ARM
+     // ARM has support for moving 64bit values between a pair of
+     // integer registers and a double register
+     idealreg2spillmask[Op_RegL]->OR(*idealreg2regmask[Op_RegD]);
+     idealreg2spillmask[Op_RegD]->OR(*idealreg2regmask[Op_RegL]);
+#endif
 #endif
    }
 
@@ -826,6 +832,7 @@ static void match_alias_type(Compile* C, Node* n, Node* m) {
     switch (n->Opcode()) {
     case Op_PrefetchRead:
     case Op_PrefetchWrite:
+    case Op_PrefetchAllocation:
       nidx = Compile::AliasIdxRaw;
       nat = TypeRawPtr::BOTTOM;
       break;
@@ -1105,6 +1112,9 @@ MachNode *Matcher::match_sfpt( SafePointNode *sfpt ) {
       mcall_java->_optimized_virtual = call_java->is_optimized_virtual();
       is_method_handle_invoke = call_java->is_method_handle_invoke();
       mcall_java->_method_handle_invoke = is_method_handle_invoke;
+      if (is_method_handle_invoke) {
+        C->set_has_method_handle_invokes(true);
+      }
       if( mcall_java->is_MachCallStaticJava() )
         mcall_java->as_MachCallStaticJava()->_name =
          call_java->as_CallStaticJava()->_name;
@@ -2230,57 +2240,6 @@ void Matcher::validate_null_checks( ) {
   }
 }
 
-
-// Used by the DFA in dfa_sparc.cpp.  Check for a prior FastLock
-// acting as an Acquire and thus we don't need an Acquire here.  We
-// retain the Node to act as a compiler ordering barrier.
-bool Matcher::prior_fast_lock( const Node *acq ) {
-  Node *r = acq->in(0);
-  if( !r->is_Region() || r->req() <= 1 ) return false;
-  Node *proj = r->in(1);
-  if( !proj->is_Proj() ) return false;
-  Node *call = proj->in(0);
-  if( !call->is_Call() || call->as_Call()->entry_point() != OptoRuntime::complete_monitor_locking_Java() )
-    return false;
-
-  return true;
-}
-
-// Used by the DFA in dfa_sparc.cpp.  Check for a following FastUnLock
-// acting as a Release and thus we don't need a Release here.  We
-// retain the Node to act as a compiler ordering barrier.
-bool Matcher::post_fast_unlock( const Node *rel ) {
-  Compile *C = Compile::current();
-  assert( rel->Opcode() == Op_MemBarRelease, "" );
-  const MemBarReleaseNode *mem = (const MemBarReleaseNode*)rel;
-  DUIterator_Fast imax, i = mem->fast_outs(imax);
-  Node *ctrl = NULL;
-  while( true ) {
-    ctrl = mem->fast_out(i);            // Throw out-of-bounds if proj not found
-    assert( ctrl->is_Proj(), "only projections here" );
-    ProjNode *proj = (ProjNode*)ctrl;
-    if( proj->_con == TypeFunc::Control &&
-        !C->node_arena()->contains(ctrl) ) // Unmatched old-space only
-      break;
-    i++;
-  }
-  Node *iff = NULL;
-  for( DUIterator_Fast jmax, j = ctrl->fast_outs(jmax); j < jmax; j++ ) {
-    Node *x = ctrl->fast_out(j);
-    if( x->is_If() && x->req() > 1 &&
-        !C->node_arena()->contains(x) ) { // Unmatched old-space only
-      iff = x;
-      break;
-    }
-  }
-  if( !iff ) return false;
-  Node *bol = iff->in(1);
-  // The iff might be some random subclass of If or bol might be Con-Top
-  if (!bol->is_Bool())  return false;
-  assert( bol->req() > 1, "" );
-  return (bol->in(1)->Opcode() == Op_FastUnlock);
-}
-
 // Used by the DFA in dfa_xxx.cpp.  Check for a following barrier or
 // atomic instruction acting as a store_load barrier without any
 // intervening volatile load, and thus we don't need a barrier here.
diff --git a/hotspot/src/share/vm/opto/matcher.hpp b/hotspot/src/share/vm/opto/matcher.hpp
index 5a34bea..39b00b0 100644
--- a/hotspot/src/share/vm/opto/matcher.hpp
+++ b/hotspot/src/share/vm/opto/matcher.hpp
@@ -351,7 +351,7 @@ public:
   virtual int      regnum_to_fpu_offset(int regnum);
 
   // Is this branch offset small enough to be addressed by a short branch?
-  bool is_short_branch_offset(int rule, int offset);
+  bool is_short_branch_offset(int rule, int br_size, int offset);
 
   // Optional scaling for the parameter to the ClearArray/CopyArray node.
   static const bool init_array_count_is_in_bytes;
@@ -441,16 +441,6 @@ public:
     else { fatal("SoftMatchFailure is not allowed except in product"); }
   }
 
-  // Used by the DFA in dfa_sparc.cpp.  Check for a prior FastLock
-  // acting as an Acquire and thus we don't need an Acquire here.  We
-  // retain the Node to act as a compiler ordering barrier.
-  static bool prior_fast_lock( const Node *acq );
-
-  // Used by the DFA in dfa_sparc.cpp.  Check for a following
-  // FastUnLock acting as a Release and thus we don't need a Release
-  // here.  We retain the Node to act as a compiler ordering barrier.
-  static bool post_fast_unlock( const Node *rel );
-
   // Check for a following volatile memory barrier without an
   // intervening load and thus we don't need a barrier here.  We
   // retain the Node to act as a compiler ordering barrier.
diff --git a/hotspot/src/share/vm/opto/memnode.cpp b/hotspot/src/share/vm/opto/memnode.cpp
index 5f49c03..4f6dc08 100644
--- a/hotspot/src/share/vm/opto/memnode.cpp
+++ b/hotspot/src/share/vm/opto/memnode.cpp
@@ -925,8 +925,9 @@ Node* MemNode::can_see_stored_value(Node* st, PhaseTransform* phase) const {
     // a synchronized region.
     while (current->is_Proj()) {
       int opc = current->in(0)->Opcode();
-      if ((final && opc == Op_MemBarAcquire) ||
-          opc == Op_MemBarRelease || opc == Op_MemBarCPUOrder) {
+      if ((final && (opc == Op_MemBarAcquire || opc == Op_MemBarAcquireLock)) ||
+          opc == Op_MemBarRelease || opc == Op_MemBarCPUOrder ||
+          opc == Op_MemBarReleaseLock) {
         Node* mem = current->in(0)->in(TypeFunc::Memory);
         if (mem->is_MergeMem()) {
           MergeMemNode* merge = mem->as_MergeMem();
@@ -1492,6 +1493,7 @@ const Type *LoadNode::Value( PhaseTransform *phase ) const {
   if (tp == NULL || tp->empty())  return Type::TOP;
   int off = tp->offset();
   assert(off != Type::OffsetTop, "case covered by TypePtr::empty");
+  Compile* C = phase->C;
 
   // Try to guess loaded type from pointer type
   if (tp->base() == Type::AryPtr) {
@@ -1535,7 +1537,7 @@ const Type *LoadNode::Value( PhaseTransform *phase ) const {
           Node* base = adr->in(AddPNode::Base);
           if (base != NULL &&
               !phase->type(base)->higher_equal(TypePtr::NULL_PTR)) {
-            Compile::AliasType* atp = phase->C->alias_type(base->adr_type());
+            Compile::AliasType* atp = C->alias_type(base->adr_type());
             if (is_autobox_cache(atp)) {
               return jt->join(TypePtr::NOTNULL)->is_ptr();
             }
@@ -1545,22 +1547,23 @@ const Type *LoadNode::Value( PhaseTransform *phase ) const {
       }
     }
   } else if (tp->base() == Type::InstPtr) {
+    ciEnv* env = C->env();
     const TypeInstPtr* tinst = tp->is_instptr();
     ciKlass* klass = tinst->klass();
     assert( off != Type::OffsetBot ||
             // arrays can be cast to Objects
             tp->is_oopptr()->klass()->is_java_lang_Object() ||
             // unsafe field access may not have a constant offset
-            phase->C->has_unsafe_access(),
+            C->has_unsafe_access(),
             "Field accesses must be precise" );
     // For oop loads, we expect the _type to be precise
-    if (klass == phase->C->env()->String_klass() &&
+    if (klass == env->String_klass() &&
         adr->is_AddP() && off != Type::OffsetBot) {
       // For constant Strings treat the final fields as compile time constants.
       Node* base = adr->in(AddPNode::Base);
       const TypeOopPtr* t = phase->type(base)->isa_oopptr();
       if (t != NULL && t->singleton()) {
-        ciField* field = phase->C->env()->String_klass()->get_field_by_offset(off, false);
+        ciField* field = env->String_klass()->get_field_by_offset(off, false);
         if (field != NULL && field->is_final()) {
           ciObject* string = t->const_oop();
           ciConstant constant = string->as_instance()->field_value(field);
@@ -1576,6 +1579,32 @@ const Type *LoadNode::Value( PhaseTransform *phase ) const {
         }
       }
     }
+    // Optimizations for constant objects
+    ciObject* const_oop = tinst->const_oop();
+    if (const_oop != NULL) {
+      // For constant CallSites treat the target field as a compile time constant.
+      if (const_oop->is_call_site()) {
+        ciCallSite* call_site = const_oop->as_call_site();
+        ciField* field = call_site->klass()->as_instance_klass()->get_field_by_offset(off, /*is_static=*/ false);
+        if (field != NULL && field->is_call_site_target()) {
+          ciMethodHandle* target = call_site->get_target();
+          if (target != NULL) {  // just in case
+            ciConstant constant(T_OBJECT, target);
+            const Type* t;
+            if (adr->bottom_type()->is_ptr_to_narrowoop()) {
+              t = TypeNarrowOop::make_from_constant(constant.as_object(), true);
+            } else {
+              t = TypeOopPtr::make_from_constant(constant.as_object(), true);
+            }
+            // Add a dependence for invalidation of the optimization.
+            if (!call_site->is_constant_call_site()) {
+              C->dependencies()->assert_call_site_target_value(call_site, target);
+            }
+            return t;
+          }
+        }
+      }
+    }
   } else if (tp->base() == Type::KlassPtr) {
     assert( off != Type::OffsetBot ||
             // arrays can be cast to Objects
@@ -2666,6 +2695,8 @@ MemBarNode* MemBarNode::make(Compile* C, int opcode, int atp, Node* pn) {
   switch (opcode) {
   case Op_MemBarAcquire:   return new(C, len) MemBarAcquireNode(C,  atp, pn);
   case Op_MemBarRelease:   return new(C, len) MemBarReleaseNode(C,  atp, pn);
+  case Op_MemBarAcquireLock: return new(C, len) MemBarAcquireLockNode(C,  atp, pn);
+  case Op_MemBarReleaseLock: return new(C, len) MemBarReleaseLockNode(C,  atp, pn);
   case Op_MemBarVolatile:  return new(C, len) MemBarVolatileNode(C, atp, pn);
   case Op_MemBarCPUOrder:  return new(C, len) MemBarCPUOrderNode(C, atp, pn);
   case Op_Initialize:      return new(C, len) InitializeNode(C,     atp, pn);
@@ -2816,7 +2847,7 @@ Node *MemBarNode::match( const ProjNode *proj, const Matcher *m ) {
 
 //---------------------------InitializeNode------------------------------------
 InitializeNode::InitializeNode(Compile* C, int adr_type, Node* rawoop)
-  : _is_complete(false),
+  : _is_complete(Incomplete),
     MemBarNode(C, adr_type, rawoop)
 {
   init_class_id(Class_Initialize);
@@ -2854,7 +2885,7 @@ bool InitializeNode::is_non_zero() {
 
 void InitializeNode::set_complete(PhaseGVN* phase) {
   assert(!is_complete(), "caller responsibility");
-  _is_complete = true;
+  _is_complete = Complete;
 
   // After this node is complete, it contains a bunch of
   // raw-memory initializations.  There is no need for
diff --git a/hotspot/src/share/vm/opto/memnode.hpp b/hotspot/src/share/vm/opto/memnode.hpp
index 9608b33..d757b13 100644
--- a/hotspot/src/share/vm/opto/memnode.hpp
+++ b/hotspot/src/share/vm/opto/memnode.hpp
@@ -879,7 +879,7 @@ public:
 
 // "Acquire" - no following ref can move before (but earlier refs can
 // follow, like an early Load stalled in cache).  Requires multi-cpu
-// visibility.  Inserted after a volatile load or FastLock.
+// visibility.  Inserted after a volatile load.
 class MemBarAcquireNode: public MemBarNode {
 public:
   MemBarAcquireNode(Compile* C, int alias_idx, Node* precedent)
@@ -889,7 +889,7 @@ public:
 
 // "Release" - no earlier ref can move after (but later refs can move
 // up, like a speculative pipelined cache-hitting Load).  Requires
-// multi-cpu visibility.  Inserted before a volatile store or FastUnLock.
+// multi-cpu visibility.  Inserted before a volatile store.
 class MemBarReleaseNode: public MemBarNode {
 public:
   MemBarReleaseNode(Compile* C, int alias_idx, Node* precedent)
@@ -897,6 +897,26 @@ public:
   virtual int Opcode() const;
 };
 
+// "Acquire" - no following ref can move before (but earlier refs can
+// follow, like an early Load stalled in cache).  Requires multi-cpu
+// visibility.  Inserted after a FastLock.
+class MemBarAcquireLockNode: public MemBarNode {
+public:
+  MemBarAcquireLockNode(Compile* C, int alias_idx, Node* precedent)
+    : MemBarNode(C, alias_idx, precedent) {}
+  virtual int Opcode() const;
+};
+
+// "Release" - no earlier ref can move after (but later refs can move
+// up, like a speculative pipelined cache-hitting Load).  Requires
+// multi-cpu visibility.  Inserted before a FastUnLock.
+class MemBarReleaseLockNode: public MemBarNode {
+public:
+  MemBarReleaseLockNode(Compile* C, int alias_idx, Node* precedent)
+    : MemBarNode(C, alias_idx, precedent) {}
+  virtual int Opcode() const;
+};
+
 // Ordering between a volatile store and a following volatile load.
 // Requires multi-CPU visibility?
 class MemBarVolatileNode: public MemBarNode {
@@ -922,7 +942,12 @@ public:
 class InitializeNode: public MemBarNode {
   friend class AllocateNode;
 
-  bool _is_complete;
+  enum {
+    Incomplete    = 0,
+    Complete      = 1,
+    WithArraycopy = 2
+  };
+  int _is_complete;
 
 public:
   enum {
@@ -956,10 +981,12 @@ public:
   // An InitializeNode must completed before macro expansion is done.
   // Completion requires that the AllocateNode must be followed by
   // initialization of the new memory to zero, then to any initializers.
-  bool is_complete() { return _is_complete; }
+  bool is_complete() { return _is_complete != Incomplete; }
+  bool is_complete_with_arraycopy() { return (_is_complete & WithArraycopy) != 0; }
 
   // Mark complete.  (Must not yet be complete.)
   void set_complete(PhaseGVN* phase);
+  void set_complete_with_arraycopy() { _is_complete = Complete | WithArraycopy; }
 
 #ifdef ASSERT
   // ensure all non-degenerate stores are ordered and non-overlapping
@@ -1258,6 +1285,16 @@ public:
   virtual int Opcode() const;
   virtual uint ideal_reg() const { return NotAMachineReg; }
   virtual uint match_edge(uint idx) const { return idx==2; }
+  virtual const Type *bottom_type() const { return Type::ABIO; }
+};
+
+// Allocation prefetch which may fault, TLAB size have to be adjusted.
+class PrefetchAllocationNode : public Node {
+public:
+  PrefetchAllocationNode(Node *mem, Node *adr) : Node(0,mem,adr) {}
+  virtual int Opcode() const;
+  virtual uint ideal_reg() const { return NotAMachineReg; }
+  virtual uint match_edge(uint idx) const { return idx==2; }
   virtual const Type *bottom_type() const { return ( AllocatePrefetchStyle == 3 ) ? Type::MEMORY : Type::ABIO; }
 };
 
diff --git a/hotspot/src/share/vm/opto/mulnode.cpp b/hotspot/src/share/vm/opto/mulnode.cpp
index cf838c7..f086319 100644
--- a/hotspot/src/share/vm/opto/mulnode.cpp
+++ b/hotspot/src/share/vm/opto/mulnode.cpp
@@ -98,7 +98,7 @@ Node *MulNode::Ideal(PhaseGVN *phase, bool can_reshape) {
       const Type *t12 = phase->type( mul1->in(2) );
       if( t12->singleton() && t12 != Type::TOP) { // Left input is an add of a constant?
         // Compute new constant; check for overflow
-        const Type *tcon01 = mul1->as_Mul()->mul_ring(t2,t12);
+        const Type *tcon01 = ((MulNode*)mul1)->mul_ring(t2,t12);
         if( tcon01->singleton() ) {
           // The Mul of the flattened expression
           set_req(1, mul1->in(1));
diff --git a/hotspot/src/share/vm/opto/mulnode.hpp b/hotspot/src/share/vm/opto/mulnode.hpp
index a674940..11cc771 100644
--- a/hotspot/src/share/vm/opto/mulnode.hpp
+++ b/hotspot/src/share/vm/opto/mulnode.hpp
@@ -41,9 +41,7 @@ class PhaseTransform;
 class MulNode : public Node {
   virtual uint hash() const;
 public:
-  MulNode( Node *in1, Node *in2 ): Node(0,in1,in2) {
-    init_class_id(Class_Mul);
-  }
+  MulNode( Node *in1, Node *in2 ): Node(0,in1,in2) {}
 
   // Handle algebraic identities here.  If we have an identity, return the Node
   // we are equivalent to.  We look for "add of zero" as an identity.
diff --git a/hotspot/src/share/vm/opto/node.hpp b/hotspot/src/share/vm/opto/node.hpp
index 37a658d..8564a77 100644
--- a/hotspot/src/share/vm/opto/node.hpp
+++ b/hotspot/src/share/vm/opto/node.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,6 +67,8 @@ class EncodePNode;
 class FastLockNode;
 class FastUnlockNode;
 class IfNode;
+class IfFalseNode;
+class IfTrueNode;
 class InitializeNode;
 class JVMState;
 class JumpNode;
@@ -75,6 +77,7 @@ class LoadNode;
 class LoadStoreNode;
 class LockNode;
 class LoopNode;
+class MachBranchNode;
 class MachCallDynamicJavaNode;
 class MachCallJavaNode;
 class MachCallLeafNode;
@@ -83,9 +86,11 @@ class MachCallRuntimeNode;
 class MachCallStaticJavaNode;
 class MachConstantBaseNode;
 class MachConstantNode;
+class MachGotoNode;
 class MachIfNode;
 class MachNode;
 class MachNullCheckNode;
+class MachProjNode;
 class MachReturnNode;
 class MachSafePointNode;
 class MachSpillCopyNode;
@@ -94,7 +99,6 @@ class Matcher;
 class MemBarNode;
 class MemNode;
 class MergeMemNode;
-class MulNode;
 class MultiNode;
 class MultiBranchNode;
 class NeverBranchNode;
@@ -127,9 +131,10 @@ class SubNode;
 class Type;
 class TypeNode;
 class UnlockNode;
+class VectorNode;
+class VectorLoadNode;
+class VectorStoreNode;
 class VectorSet;
-class IfTrueNode;
-class IfFalseNode;
 typedef void (*NFunc)(Node&,void*);
 extern "C" {
   typedef int (*C_sort_func_t)(const void *, const void *);
@@ -179,6 +184,8 @@ typedef Node** DUIterator_Last;
 // whenever I have phase-specific information.
 
 class Node {
+  friend class VMStructs;
+
   // Lots of restrictions on cloning Nodes
   Node(const Node&);            // not defined; linker error to use these
   Node &operator=(const Node &rhs);
@@ -568,50 +575,55 @@ public:
               DEFINE_CLASS_ID(MachCallDynamicJava,  MachCallJava, 1)
             DEFINE_CLASS_ID(MachCallRuntime,      MachCall, 1)
               DEFINE_CLASS_ID(MachCallLeaf,         MachCallRuntime, 0)
-      DEFINE_CLASS_ID(MachSpillCopy,    Mach, 1)
-      DEFINE_CLASS_ID(MachNullCheck,    Mach, 2)
-      DEFINE_CLASS_ID(MachIf,           Mach, 3)
-      DEFINE_CLASS_ID(MachTemp,         Mach, 4)
-      DEFINE_CLASS_ID(MachConstantBase, Mach, 5)
-      DEFINE_CLASS_ID(MachConstant,     Mach, 6)
-
-    DEFINE_CLASS_ID(Proj,  Node, 2)
+      DEFINE_CLASS_ID(MachBranch, Mach, 1)
+        DEFINE_CLASS_ID(MachIf,         MachBranch, 0)
+        DEFINE_CLASS_ID(MachGoto,       MachBranch, 1)
+        DEFINE_CLASS_ID(MachNullCheck,  MachBranch, 2)
+      DEFINE_CLASS_ID(MachSpillCopy,    Mach, 2)
+      DEFINE_CLASS_ID(MachTemp,         Mach, 3)
+      DEFINE_CLASS_ID(MachConstantBase, Mach, 4)
+      DEFINE_CLASS_ID(MachConstant,     Mach, 5)
+
+    DEFINE_CLASS_ID(Type,  Node, 2)
+      DEFINE_CLASS_ID(Phi,   Type, 0)
+      DEFINE_CLASS_ID(ConstraintCast, Type, 1)
+      DEFINE_CLASS_ID(CheckCastPP, Type, 2)
+      DEFINE_CLASS_ID(CMove, Type, 3)
+      DEFINE_CLASS_ID(SafePointScalarObject, Type, 4)
+      DEFINE_CLASS_ID(DecodeN, Type, 5)
+      DEFINE_CLASS_ID(EncodeP, Type, 6)
+
+    DEFINE_CLASS_ID(Proj,  Node, 3)
       DEFINE_CLASS_ID(CatchProj, Proj, 0)
       DEFINE_CLASS_ID(JumpProj,  Proj, 1)
       DEFINE_CLASS_ID(IfTrue,    Proj, 2)
       DEFINE_CLASS_ID(IfFalse,   Proj, 3)
       DEFINE_CLASS_ID(Parm,      Proj, 4)
+      DEFINE_CLASS_ID(MachProj,  Proj, 5)
 
-    DEFINE_CLASS_ID(Region, Node, 3)
+    DEFINE_CLASS_ID(Mem,   Node, 4)
+      DEFINE_CLASS_ID(Load,  Mem, 0)
+        DEFINE_CLASS_ID(VectorLoad,  Load, 0)
+      DEFINE_CLASS_ID(Store, Mem, 1)
+        DEFINE_CLASS_ID(VectorStore, Store, 0)
+      DEFINE_CLASS_ID(LoadStore, Mem, 2)
+
+    DEFINE_CLASS_ID(Region, Node, 5)
       DEFINE_CLASS_ID(Loop, Region, 0)
         DEFINE_CLASS_ID(Root,        Loop, 0)
         DEFINE_CLASS_ID(CountedLoop, Loop, 1)
 
-    DEFINE_CLASS_ID(Sub,   Node, 4)
+    DEFINE_CLASS_ID(Sub,   Node, 6)
       DEFINE_CLASS_ID(Cmp,   Sub, 0)
         DEFINE_CLASS_ID(FastLock,   Cmp, 0)
         DEFINE_CLASS_ID(FastUnlock, Cmp, 1)
 
-    DEFINE_CLASS_ID(Type,  Node, 5)
-      DEFINE_CLASS_ID(Phi,   Type, 0)
-      DEFINE_CLASS_ID(ConstraintCast, Type, 1)
-      DEFINE_CLASS_ID(CheckCastPP, Type, 2)
-      DEFINE_CLASS_ID(CMove, Type, 3)
-      DEFINE_CLASS_ID(SafePointScalarObject, Type, 4)
-      DEFINE_CLASS_ID(DecodeN, Type, 5)
-      DEFINE_CLASS_ID(EncodeP, Type, 6)
-
-    DEFINE_CLASS_ID(Mem,   Node, 6)
-      DEFINE_CLASS_ID(Load,  Mem, 0)
-      DEFINE_CLASS_ID(Store, Mem, 1)
-      DEFINE_CLASS_ID(LoadStore, Mem, 2)
-
     DEFINE_CLASS_ID(MergeMem, Node, 7)
     DEFINE_CLASS_ID(Bool,     Node, 8)
     DEFINE_CLASS_ID(AddP,     Node, 9)
     DEFINE_CLASS_ID(BoxLock,  Node, 10)
     DEFINE_CLASS_ID(Add,      Node, 11)
-    DEFINE_CLASS_ID(Mul,      Node, 12)
+    DEFINE_CLASS_ID(Vector,   Node, 12)
     DEFINE_CLASS_ID(ClearArray, Node, 13)
 
     _max_classes  = ClassMask_ClearArray
@@ -621,21 +633,15 @@ public:
   // Flags are sorted by usage frequency.
   enum NodeFlags {
     Flag_is_Copy             = 0x01, // should be first bit to avoid shift
-    Flag_is_Call             = Flag_is_Copy << 1,
-    Flag_rematerialize       = Flag_is_Call << 1,
+    Flag_rematerialize       = Flag_is_Copy << 1,
     Flag_needs_anti_dependence_check = Flag_rematerialize << 1,
     Flag_is_macro            = Flag_needs_anti_dependence_check << 1,
     Flag_is_Con              = Flag_is_macro << 1,
     Flag_is_cisc_alternate   = Flag_is_Con << 1,
-    Flag_is_Branch           = Flag_is_cisc_alternate << 1,
-    Flag_is_block_start      = Flag_is_Branch << 1,
-    Flag_is_Goto             = Flag_is_block_start << 1,
-    Flag_is_dead_loop_safe   = Flag_is_Goto << 1,
+    Flag_is_dead_loop_safe   = Flag_is_cisc_alternate << 1,
     Flag_may_be_short_branch = Flag_is_dead_loop_safe << 1,
-    Flag_is_safepoint_node   = Flag_may_be_short_branch << 1,
-    Flag_is_pc_relative      = Flag_is_safepoint_node << 1,
-    Flag_is_Vector           = Flag_is_pc_relative << 1,
-    _max_flags = (Flag_is_Vector << 1) - 1 // allow flags combination
+    Flag_avoid_back_to_back  = Flag_may_be_short_branch << 1,
+    _max_flags = (Flag_avoid_back_to_back << 1) - 1 // allow flags combination
   };
 
 private:
@@ -669,21 +675,6 @@ public:
   virtual uint size_of() const;
 
   // Other interesting Node properties
-
-  // Special case: is_Call() returns true for both CallNode and MachCallNode.
-  bool is_Call() const {
-    return (_flags & Flag_is_Call) != 0;
-  }
-
-  CallNode* isa_Call() const {
-    return is_Call() ? as_Call() : NULL;
-  }
-
-  CallNode *as_Call() const { // Only for CallNode (not for MachCallNode)
-    assert((_class_id & ClassMask_Call) == Class_Call, "invalid node class");
-    return (CallNode*)this;
-  }
-
   #define DEFINE_CLASS_QUERY(type)                           \
   bool is_##type() const {                                   \
     return ((_class_id & ClassMask_##type) == Class_##type); \
@@ -703,6 +694,7 @@ public:
   DEFINE_CLASS_QUERY(AllocateArray)
   DEFINE_CLASS_QUERY(Bool)
   DEFINE_CLASS_QUERY(BoxLock)
+  DEFINE_CLASS_QUERY(Call)
   DEFINE_CLASS_QUERY(CallDynamicJava)
   DEFINE_CLASS_QUERY(CallJava)
   DEFINE_CLASS_QUERY(CallLeaf)
@@ -732,6 +724,7 @@ public:
   DEFINE_CLASS_QUERY(Lock)
   DEFINE_CLASS_QUERY(Loop)
   DEFINE_CLASS_QUERY(Mach)
+  DEFINE_CLASS_QUERY(MachBranch)
   DEFINE_CLASS_QUERY(MachCall)
   DEFINE_CLASS_QUERY(MachCallDynamicJava)
   DEFINE_CLASS_QUERY(MachCallJava)
@@ -740,8 +733,10 @@ public:
   DEFINE_CLASS_QUERY(MachCallStaticJava)
   DEFINE_CLASS_QUERY(MachConstantBase)
   DEFINE_CLASS_QUERY(MachConstant)
+  DEFINE_CLASS_QUERY(MachGoto)
   DEFINE_CLASS_QUERY(MachIf)
   DEFINE_CLASS_QUERY(MachNullCheck)
+  DEFINE_CLASS_QUERY(MachProj)
   DEFINE_CLASS_QUERY(MachReturn)
   DEFINE_CLASS_QUERY(MachSafePoint)
   DEFINE_CLASS_QUERY(MachSpillCopy)
@@ -749,7 +744,6 @@ public:
   DEFINE_CLASS_QUERY(Mem)
   DEFINE_CLASS_QUERY(MemBar)
   DEFINE_CLASS_QUERY(MergeMem)
-  DEFINE_CLASS_QUERY(Mul)
   DEFINE_CLASS_QUERY(Multi)
   DEFINE_CLASS_QUERY(MultiBranch)
   DEFINE_CLASS_QUERY(Parm)
@@ -764,6 +758,9 @@ public:
   DEFINE_CLASS_QUERY(Store)
   DEFINE_CLASS_QUERY(Sub)
   DEFINE_CLASS_QUERY(Type)
+  DEFINE_CLASS_QUERY(Vector)
+  DEFINE_CLASS_QUERY(VectorLoad)
+  DEFINE_CLASS_QUERY(VectorStore)
   DEFINE_CLASS_QUERY(Unlock)
 
   #undef DEFINE_CLASS_QUERY
@@ -774,7 +771,6 @@ public:
   }
 
   bool is_Con () const { return (_flags & Flag_is_Con) != 0; }
-  bool is_Goto() const { return (_flags & Flag_is_Goto) != 0; }
   // The data node which is safe to leave in dead loop during IGVN optimization.
   bool is_dead_loop_safe() const {
     return is_Phi() || (is_Proj() && in(0) == NULL) ||
@@ -795,9 +791,6 @@ public:
   // skip some other important test.)
   virtual bool depends_only_on_test() const { assert(!is_CFG(), ""); return true; };
 
-  // defined for MachNodes that match 'If' | 'Goto' | 'CountedLoopEnd'
-  bool is_Branch() const { return (_flags & Flag_is_Branch) != 0; }
-
   // When building basic blocks, I need to have a notion of block beginning
   // Nodes, next block selector Nodes (block enders), and next block
   // projections.  These calls need to work on their machine equivalents.  The
@@ -806,7 +799,7 @@ public:
     if ( is_Region() )
       return this == (const Node*)in(0);
     else
-      return (_flags & Flag_is_block_start) != 0;
+      return is_Start();
   }
 
   // The Ideal control projection Nodes are IfTrue/IfFalse, JumpProjNode, Root,
@@ -816,9 +809,6 @@ public:
   // The node is a "macro" node which needs to be expanded before matching
   bool is_macro() const { return (_flags & Flag_is_macro) != 0; }
 
-  // Value is a vector of primitive values
-  bool is_Vector() const { return (_flags & Flag_is_Vector) != 0; }
-
 //----------------- Optimization
 
   // Get the worst-case Type output for this Node.
@@ -1298,6 +1288,7 @@ class SimpleDUIterator : public StackObj {
 // Note that the constructor just zeros things, and since I use Arena
 // allocation I do not need a destructor to reclaim storage.
 class Node_Array : public ResourceObj {
+  friend class VMStructs;
 protected:
   Arena *_a;                    // Arena to allocate in
   uint   _max;
@@ -1328,6 +1319,7 @@ public:
 };
 
 class Node_List : public Node_Array {
+  friend class VMStructs;
   uint _cnt;
 public:
   Node_List() : Node_Array(Thread::current()->resource_area()), _cnt(0) {}
@@ -1351,6 +1343,7 @@ public:
 
 //------------------------------Unique_Node_List-------------------------------
 class Unique_Node_List : public Node_List {
+  friend class VMStructs;
   VectorSet _in_worklist;
   uint _clock_index;            // Index in list where to pop from next
 public:
@@ -1401,6 +1394,7 @@ inline void Compile::record_for_igvn(Node* n) {
 
 //------------------------------Node_Stack-------------------------------------
 class Node_Stack {
+  friend class VMStructs;
 protected:
   struct INode {
     Node *node; // Processed node
@@ -1473,6 +1467,7 @@ public:
 // Debugging or profiling annotations loosely and sparsely associated
 // with some nodes.  See Compile::node_notes_at for the accessor.
 class Node_Notes VALUE_OBJ_CLASS_SPEC {
+  friend class VMStructs;
   JVMState* _jvms;
 
 public:
diff --git a/hotspot/src/share/vm/opto/optoreg.hpp b/hotspot/src/share/vm/opto/optoreg.hpp
index 58c9f1c..e6427ea 100644
--- a/hotspot/src/share/vm/opto/optoreg.hpp
+++ b/hotspot/src/share/vm/opto/optoreg.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -172,6 +172,7 @@ class OptoReg VALUE_OBJ_CLASS_SPEC {
 // and converting that will return OptoReg::Bad losing the identity of the OptoReg.
 
 class OptoRegPair {
+  friend class VMStructs;
 private:
   short _second;
   short _first;
diff --git a/hotspot/src/share/vm/opto/output.cpp b/hotspot/src/share/vm/opto/output.cpp
index 8bd9c93..d9317d6 100644
--- a/hotspot/src/share/vm/opto/output.cpp
+++ b/hotspot/src/share/vm/opto/output.cpp
@@ -128,6 +128,14 @@ void Compile::Output() {
   if ( ZapDeadCompiledLocals )  Insert_zap_nodes();
 # endif
 
+  uint* blk_starts = NEW_RESOURCE_ARRAY(uint,_cfg->_num_blocks+1);
+  blk_starts[0]    = 0;
+
+  // Initialize code buffer and process short branches.
+  CodeBuffer* cb = init_buffer(blk_starts);
+
+  if (cb == NULL || failing())  return;
+
   ScheduleAndBundle();
 
 #ifndef PRODUCT
@@ -152,7 +160,7 @@ void Compile::Output() {
 
   if (failing())  return;
 
-  Fill_buffer();
+  fill_buffer(cb, blk_starts);
 }
 
 bool Compile::need_stack_bang(int frame_size_in_bytes) const {
@@ -325,22 +333,22 @@ void Compile::compute_loop_first_inst_sizes() {
   } // if( MaxLoopPad < OptoLoopAlignment-1 )
 }
 
-//----------------------Shorten_branches---------------------------------------
+//----------------------shorten_branches---------------------------------------
 // The architecture description provides short branch variants for some long
 // branch instructions. Replace eligible long branches with short branches.
-void Compile::Shorten_branches(Label *labels, int& code_size, int& reloc_size, int& stub_size) {
-
-  // fill in the nop array for bundling computations
-  MachNode *_nop_list[Bundle::_nop_count];
-  Bundle::initialize_nops(_nop_list, this);
+void Compile::shorten_branches(uint* blk_starts, int& code_size, int& reloc_size, int& stub_size) {
 
   // ------------------
   // Compute size of each block, method size, and relocation information size
-  uint *jmp_end    = NEW_RESOURCE_ARRAY(uint,_cfg->_num_blocks);
-  uint *blk_starts = NEW_RESOURCE_ARRAY(uint,_cfg->_num_blocks+1);
-  DEBUG_ONLY( uint *jmp_target = NEW_RESOURCE_ARRAY(uint,_cfg->_num_blocks); )
-  DEBUG_ONLY( uint *jmp_rule = NEW_RESOURCE_ARRAY(uint,_cfg->_num_blocks); )
-  blk_starts[0]    = 0;
+  uint nblocks  = _cfg->_num_blocks;
+
+  uint*      jmp_offset = NEW_RESOURCE_ARRAY(uint,nblocks);
+  uint*      jmp_size   = NEW_RESOURCE_ARRAY(uint,nblocks);
+  int*       jmp_nidx   = NEW_RESOURCE_ARRAY(int ,nblocks);
+  DEBUG_ONLY( uint *jmp_target = NEW_RESOURCE_ARRAY(uint,nblocks); )
+  DEBUG_ONLY( uint *jmp_rule = NEW_RESOURCE_ARRAY(uint,nblocks); )
+
+  bool has_short_branch_candidate = false;
 
   // Initialize the sizes to 0
   code_size  = 0;          // Size in bytes of generated code
@@ -350,28 +358,34 @@ void Compile::Shorten_branches(Label *labels, int& code_size, int& reloc_size, i
   reloc_size = 1;          // Number of relocation entries
 
   // Make three passes.  The first computes pessimistic blk_starts,
-  // relative jmp_end and reloc_size information.  The second performs
+  // relative jmp_offset and reloc_size information.  The second performs
   // short branch substitution using the pessimistic sizing.  The
   // third inserts nops where needed.
 
-  Node *nj; // tmp
-
   // Step one, perform a pessimistic sizing pass.
-  uint i;
-  uint min_offset_from_last_call = 1;  // init to a positive value
+  uint last_call_adr = max_uint;
+  uint last_avoid_back_to_back_adr = max_uint;
   uint nop_size = (new (this) MachNopNode())->size(_regalloc);
-  for( i=0; i<_cfg->_num_blocks; i++ ) { // For all blocks
+  for (uint i = 0; i < nblocks; i++) { // For all blocks
     Block *b = _cfg->_blocks[i];
 
+    // During short branch replacement, we store the relative (to blk_starts)
+    // offset of jump in jmp_offset, rather than the absolute offset of jump.
+    // This is so that we do not need to recompute sizes of all nodes when
+    // we compute correct blk_starts in our next sizing pass.
+    jmp_offset[i] = 0;
+    jmp_size[i]   = 0;
+    jmp_nidx[i]   = -1;
+    DEBUG_ONLY( jmp_target[i] = 0; )
+    DEBUG_ONLY( jmp_rule[i]   = 0; )
+
     // Sum all instruction sizes to compute block size
     uint last_inst = b->_nodes.size();
     uint blk_size = 0;
-    for( uint j = 0; j<last_inst; j++ ) {
-      nj = b->_nodes[j];
-      uint inst_size = nj->size(_regalloc);
-      blk_size += inst_size;
+    for (uint j = 0; j < last_inst; j++) {
+      Node* nj = b->_nodes[j];
       // Handle machine instruction nodes
-      if( nj->is_Mach() ) {
+      if (nj->is_Mach()) {
         MachNode *mach = nj->as_Mach();
         blk_size += (mach->alignment_required() - 1) * relocInfo::addr_unit(); // assume worst case padding
         reloc_size += mach->reloc();
@@ -388,32 +402,52 @@ void Compile::Shorten_branches(Label *labels, int& code_size, int& reloc_size, i
         } else if (mach->is_MachSafePoint()) {
           // If call/safepoint are adjacent, account for possible
           // nop to disambiguate the two safepoints.
-          if (min_offset_from_last_call == 0) {
+          // ScheduleAndBundle() can rearrange nodes in a block,
+          // check for all offsets inside this block.
+          if (last_call_adr >= blk_starts[i]) {
             blk_size += nop_size;
           }
         }
+        if (mach->avoid_back_to_back()) {
+          // Nop is inserted between "avoid back to back" instructions.
+          // ScheduleAndBundle() can rearrange nodes in a block,
+          // check for all offsets inside this block.
+          if (last_avoid_back_to_back_adr >= blk_starts[i]) {
+            blk_size += nop_size;
+          }
+        }
+        if (mach->may_be_short_branch()) {
+          if (!nj->is_MachBranch()) {
+#ifndef PRODUCT
+            nj->dump(3);
+#endif
+            Unimplemented();
+          }
+          assert(jmp_nidx[i] == -1, "block should have only one branch");
+          jmp_offset[i] = blk_size;
+          jmp_size[i]   = nj->size(_regalloc);
+          jmp_nidx[i]   = j;
+          has_short_branch_candidate = true;
+        }
       }
-      min_offset_from_last_call += inst_size;
+      blk_size += nj->size(_regalloc);
       // Remember end of call offset
-      if (nj->is_MachCall() && nj->as_MachCall()->is_safepoint_node()) {
-        min_offset_from_last_call = 0;
+      if (nj->is_MachCall() && !nj->is_MachCallLeaf()) {
+        last_call_adr = blk_starts[i]+blk_size;
+      }
+      // Remember end of avoid_back_to_back offset
+      if (nj->is_Mach() && nj->as_Mach()->avoid_back_to_back()) {
+        last_avoid_back_to_back_adr = blk_starts[i]+blk_size;
       }
     }
 
-    // During short branch replacement, we store the relative (to blk_starts)
-    // end of jump in jmp_end, rather than the absolute end of jump.  This
-    // is so that we do not need to recompute sizes of all nodes when we compute
-    // correct blk_starts in our next sizing pass.
-    jmp_end[i] = blk_size;
-    DEBUG_ONLY( jmp_target[i] = 0; )
-
     // When the next block starts a loop, we may insert pad NOP
     // instructions.  Since we cannot know our future alignment,
     // assume the worst.
-    if( i<_cfg->_num_blocks-1 ) {
+    if (i< nblocks-1) {
       Block *nb = _cfg->_blocks[i+1];
       int max_loop_pad = nb->code_alignment()-relocInfo::addr_unit();
-      if( max_loop_pad > 0 ) {
+      if (max_loop_pad > 0) {
         assert(is_power_of_2(max_loop_pad+relocInfo::addr_unit()), "");
         blk_size += max_loop_pad;
       }
@@ -424,124 +458,100 @@ void Compile::Shorten_branches(Label *labels, int& code_size, int& reloc_size, i
   }
 
   // Step two, replace eligible long jumps.
+  bool progress = true;
+  uint last_may_be_short_branch_adr = max_uint;
+  while (has_short_branch_candidate && progress) {
+    progress = false;
+    has_short_branch_candidate = false;
+    int adjust_block_start = 0;
+    for (uint i = 0; i < nblocks; i++) {
+      Block *b = _cfg->_blocks[i];
+      int idx = jmp_nidx[i];
+      MachNode* mach = (idx == -1) ? NULL: b->_nodes[idx]->as_Mach();
+      if (mach != NULL && mach->may_be_short_branch()) {
+#ifdef ASSERT
+        assert(jmp_size[i] > 0 && mach->is_MachBranch(), "sanity");
+        int j;
+        // Find the branch; ignore trailing NOPs.
+        for (j = b->_nodes.size()-1; j>=0; j--) {
+          Node* n = b->_nodes[j];
+          if (!n->is_Mach() || n->as_Mach()->ideal_Opcode() != Op_Con)
+            break;
+        }
+        assert(j >= 0 && j == idx && b->_nodes[j] == (Node*)mach, "sanity");
+#endif
+        int br_size = jmp_size[i];
+        int br_offs = blk_starts[i] + jmp_offset[i];
 
-  // Note: this will only get the long branches within short branch
-  //   range. Another pass might detect more branches that became
-  //   candidates because the shortening in the first pass exposed
-  //   more opportunities. Unfortunately, this would require
-  //   recomputing the starting and ending positions for the blocks
-  for( i=0; i<_cfg->_num_blocks; i++ ) {
-    Block *b = _cfg->_blocks[i];
-
-    int j;
-    // Find the branch; ignore trailing NOPs.
-    for( j = b->_nodes.size()-1; j>=0; j-- ) {
-      nj = b->_nodes[j];
-      if( !nj->is_Mach() || nj->as_Mach()->ideal_Opcode() != Op_Con )
-        break;
-    }
-
-    if (j >= 0) {
-      if( nj->is_Mach() && nj->as_Mach()->may_be_short_branch() ) {
-        MachNode *mach = nj->as_Mach();
         // This requires the TRUE branch target be in succs[0]
         uint bnum = b->non_connector_successor(0)->_pre_order;
-        uintptr_t target = blk_starts[bnum];
-        if( mach->is_pc_relative() ) {
-          int offset = target-(blk_starts[i] + jmp_end[i]);
-          if (_matcher->is_short_branch_offset(mach->rule(), offset)) {
-            // We've got a winner.  Replace this branch.
-            MachNode* replacement = mach->short_branch_version(this);
-            b->_nodes.map(j, replacement);
-            mach->subsume_by(replacement);
-
-            // Update the jmp_end size to save time in our
-            // next pass.
-            jmp_end[i] -= (mach->size(_regalloc) - replacement->size(_regalloc));
-            DEBUG_ONLY( jmp_target[i] = bnum; );
-            DEBUG_ONLY( jmp_rule[i] = mach->rule(); );
+        int offset = blk_starts[bnum] - br_offs;
+        if (bnum > i) { // adjust following block's offset
+          offset -= adjust_block_start;
+        }
+        // In the following code a nop could be inserted before
+        // the branch which will increase the backward distance.
+        bool needs_padding = ((uint)br_offs == last_may_be_short_branch_adr);
+        if (needs_padding && offset <= 0)
+          offset -= nop_size;
+
+        if (_matcher->is_short_branch_offset(mach->rule(), br_size, offset)) {
+          // We've got a winner.  Replace this branch.
+          MachNode* replacement = mach->as_MachBranch()->short_branch_version(this);
+
+          // Update the jmp_size.
+          int new_size = replacement->size(_regalloc);
+          int diff     = br_size - new_size;
+          assert(diff >= (int)nop_size, "short_branch size should be smaller");
+          // Conservatively take into accound padding between
+          // avoid_back_to_back branches. Previous branch could be
+          // converted into avoid_back_to_back branch during next
+          // rounds.
+          if (needs_padding && replacement->avoid_back_to_back()) {
+            jmp_offset[i] += nop_size;
+            diff -= nop_size;
           }
+          adjust_block_start += diff;
+          b->_nodes.map(idx, replacement);
+          mach->subsume_by(replacement);
+          mach = replacement;
+          progress = true;
+
+          jmp_size[i] = new_size;
+          DEBUG_ONLY( jmp_target[i] = bnum; );
+          DEBUG_ONLY( jmp_rule[i] = mach->rule(); );
         } else {
-#ifndef PRODUCT
-          mach->dump(3);
-#endif
-          Unimplemented();
-        }
-      }
-    }
-  }
-
-  // Compute the size of first NumberOfLoopInstrToAlign instructions at head
-  // of a loop. It is used to determine the padding for loop alignment.
-  compute_loop_first_inst_sizes();
-
-  // Step 3, compute the offsets of all the labels
-  uint last_call_adr = max_uint;
-  for( i=0; i<_cfg->_num_blocks; i++ ) { // For all blocks
-    // copy the offset of the beginning to the corresponding label
-    assert(labels[i].is_unused(), "cannot patch at this point");
-    labels[i].bind_loc(blk_starts[i], CodeBuffer::SECT_INSTS);
-
-    // insert padding for any instructions that need it
-    Block *b = _cfg->_blocks[i];
-    uint last_inst = b->_nodes.size();
-    uint adr = blk_starts[i];
-    for( uint j = 0; j<last_inst; j++ ) {
-      nj = b->_nodes[j];
-      if( nj->is_Mach() ) {
-        int padding = nj->as_Mach()->compute_padding(adr);
-        // If call/safepoint are adjacent insert a nop (5010568)
-        if (padding == 0 && nj->is_MachSafePoint() && !nj->is_MachCall() &&
-            adr == last_call_adr ) {
-          padding = nop_size;
+          // The jump distance is not short, try again during next iteration.
+          has_short_branch_candidate = true;
         }
-        if(padding > 0) {
-          assert((padding % nop_size) == 0, "padding is not a multiple of NOP size");
-          int nops_cnt = padding / nop_size;
-          MachNode *nop = new (this) MachNopNode(nops_cnt);
-          b->_nodes.insert(j++, nop);
-          _cfg->_bbs.map( nop->_idx, b );
-          adr += padding;
-          last_inst++;
-        }
-      }
-      adr += nj->size(_regalloc);
-
-      // Remember end of call offset
-      if (nj->is_MachCall() && nj->as_MachCall()->is_safepoint_node()) {
-        last_call_adr = adr;
+      } // (mach->may_be_short_branch())
+      if (mach != NULL && (mach->may_be_short_branch() ||
+                           mach->avoid_back_to_back())) {
+        last_may_be_short_branch_adr = blk_starts[i] + jmp_offset[i] + jmp_size[i];
       }
-    }
-
-    if ( i != _cfg->_num_blocks-1) {
-      // Get the size of the block
-      uint blk_size = adr - blk_starts[i];
-
-      // When the next block is the top of a loop, we may insert pad NOP
-      // instructions.
-      Block *nb = _cfg->_blocks[i+1];
-      int current_offset = blk_starts[i] + blk_size;
-      current_offset += nb->alignment_padding(current_offset);
-      // Save block size; update total method size
-      blk_starts[i+1] = current_offset;
+      blk_starts[i+1] -= adjust_block_start;
     }
   }
 
 #ifdef ASSERT
-  for( i=0; i<_cfg->_num_blocks; i++ ) { // For all blocks
-    if( jmp_target[i] != 0 ) {
-      int offset = blk_starts[jmp_target[i]]-(blk_starts[i] + jmp_end[i]);
-      if (!_matcher->is_short_branch_offset(jmp_rule[i], offset)) {
-        tty->print_cr("target (%d) - jmp_end(%d) = offset (%d), jmp_block B%d, target_block B%d", blk_starts[jmp_target[i]], blk_starts[i] + jmp_end[i], offset, i, jmp_target[i]);
+  for (uint i = 0; i < nblocks; i++) { // For all blocks
+    if (jmp_target[i] != 0) {
+      int br_size = jmp_size[i];
+      int offset = blk_starts[jmp_target[i]]-(blk_starts[i] + jmp_offset[i]);
+      if (!_matcher->is_short_branch_offset(jmp_rule[i], br_size, offset)) {
+        tty->print_cr("target (%d) - jmp_offset(%d) = offset (%d), jump_size(%d), jmp_block B%d, target_block B%d", blk_starts[jmp_target[i]], blk_starts[i] + jmp_offset[i], offset, br_size, i, jmp_target[i]);
       }
-      assert(_matcher->is_short_branch_offset(jmp_rule[i], offset), "Displacement too large for short jmp");
+      assert(_matcher->is_short_branch_offset(jmp_rule[i], br_size, offset), "Displacement too large for short jmp");
     }
   }
 #endif
 
+  // Step 3, compute the offsets of all blocks, will be done in fill_buffer()
+  // after ScheduleAndBundle().
+
   // ------------------
   // Compute size for code buffer
-  code_size   = blk_starts[i-1] + jmp_end[i-1];
+  code_size = blk_starts[nblocks];
 
   // Relocation records
   reloc_size += 1;              // Relo entry for exception handler
@@ -550,7 +560,7 @@ void Compile::Shorten_branches(Label *labels, int& code_size, int& reloc_size, i
   // Min is 2 bytes, max is probably 6 or 8, with a tax up to 25% for
   // a relocation index.
   // The CodeBuffer will expand the locs array if this estimate is too low.
-  reloc_size   *= 10 / sizeof(relocInfo);
+  reloc_size *= 10 / sizeof(relocInfo);
 }
 
 //------------------------------FillLocArray-----------------------------------
@@ -1026,7 +1036,7 @@ void NonSafepointEmitter::emit_non_safepoint() {
 
 
 
-// helper for Fill_buffer bailout logic
+// helper for fill_buffer bailout logic
 static void turn_off_compiler(Compile* C) {
   if (CodeCache::largest_free_block() >= CodeCacheMinimumFreeSpace*10) {
     // Do not turn off compilation if a single giant method has
@@ -1039,22 +1049,20 @@ static void turn_off_compiler(Compile* C) {
 }
 
 
-//------------------------------Fill_buffer------------------------------------
-void Compile::Fill_buffer() {
+//------------------------------init_buffer------------------------------------
+CodeBuffer* Compile::init_buffer(uint* blk_starts) {
 
   // Set the initially allocated size
   int  code_req   = initial_code_capacity;
   int  locs_req   = initial_locs_capacity;
   int  stub_req   = TraceJumps ? initial_stub_capacity * 10 : initial_stub_capacity;
   int  const_req  = initial_const_capacity;
-  bool labels_not_set = true;
 
   int  pad_req    = NativeCall::instruction_size;
   // The extra spacing after the code is necessary on some platforms.
   // Sometimes we need to patch in a jump after the last instruction,
   // if the nmethod has been deoptimized.  (See 4932387, 4894843.)
 
-  uint i;
   // Compute the byte offset where we can store the deopt pc.
   if (fixed_slots() != 0) {
     _orig_pc_slot_offset_in_bytes = _regalloc->reg2offset(OptoReg::stack2reg(_orig_pc_slot));
@@ -1078,19 +1086,12 @@ void Compile::Fill_buffer() {
     _frame_slots += 8*(16/BytesPerInt);
   }
 #endif
-  assert( _frame_slots >= 0 && _frame_slots < 1000000, "sanity check" );
-
-  // Create an array of unused labels, one for each basic block
-  Label *blk_labels = NEW_RESOURCE_ARRAY(Label, _cfg->_num_blocks+1);
-
-  for( i=0; i <= _cfg->_num_blocks; i++ ) {
-    blk_labels[i].init();
-  }
+  assert(_frame_slots >= 0 && _frame_slots < 1000000, "sanity check");
 
   if (has_mach_constant_base_node()) {
     // Fill the constant table.
-    // Note:  This must happen before Shorten_branches.
-    for (i = 0; i < _cfg->_num_blocks; i++) {
+    // Note:  This must happen before shorten_branches.
+    for (uint i = 0; i < _cfg->_num_blocks; i++) {
       Block* b = _cfg->_blocks[i];
 
       for (uint j = 0; j < b->_nodes.size(); j++) {
@@ -1114,14 +1115,11 @@ void Compile::Fill_buffer() {
   // Initialize the space for the BufferBlob used to find and verify
   // instruction size in MachNode::emit_size()
   init_scratch_buffer_blob(const_req);
-  if (failing())  return; // Out of memory
+  if (failing())  return NULL; // Out of memory
 
-  // If this machine supports different size branch offsets, then pre-compute
-  // the length of the blocks
-  if( _matcher->is_short_branch_offset(-1, 0) ) {
-    Shorten_branches(blk_labels, code_req, locs_req, stub_req);
-    labels_not_set = false;
-  }
+  // Pre-compute the length of blocks and replace
+  // long branches with short if machine supports it.
+  shorten_branches(blk_starts, code_req, locs_req, stub_req);
 
   // nmethod and CodeBuffer count stubs & constants as part of method's code.
   int exception_handler_req = size_exception_handler();
@@ -1151,7 +1149,7 @@ void Compile::Fill_buffer() {
   // Have we run out of code space?
   if ((cb->blob() == NULL) || (!CompileBroker::should_compile_new_jobs())) {
     turn_off_compiler(this);
-    return;
+    return NULL;
   }
   // Configure the code buffer.
   cb->initialize_consts_size(const_req);
@@ -1162,18 +1160,31 @@ void Compile::Fill_buffer() {
   MachNode *_nop_list[Bundle::_nop_count];
   Bundle::initialize_nops(_nop_list, this);
 
+  return cb;
+}
+
+//------------------------------fill_buffer------------------------------------
+void Compile::fill_buffer(CodeBuffer* cb, uint* blk_starts) {
+  // blk_starts[] contains offsets calculated during short branches processing,
+  // offsets should not be increased during following steps.
+
+  // Compute the size of first NumberOfLoopInstrToAlign instructions at head
+  // of a loop. It is used to determine the padding for loop alignment.
+  compute_loop_first_inst_sizes();
+
   // Create oopmap set.
   _oop_map_set = new OopMapSet();
 
   // !!!!! This preserves old handling of oopmaps for now
   debug_info()->set_oopmaps(_oop_map_set);
 
+  uint nblocks  = _cfg->_num_blocks;
   // Count and start of implicit null check instructions
   uint inct_cnt = 0;
-  uint *inct_starts = NEW_RESOURCE_ARRAY(uint, _cfg->_num_blocks+1);
+  uint *inct_starts = NEW_RESOURCE_ARRAY(uint, nblocks+1);
 
   // Count and start of calls
-  uint *call_returns = NEW_RESOURCE_ARRAY(uint, _cfg->_num_blocks+1);
+  uint *call_returns = NEW_RESOURCE_ARRAY(uint, nblocks+1);
 
   uint  return_offset = 0;
   int nop_size = (new (this) MachNopNode())->size(_regalloc);
@@ -1181,14 +1192,22 @@ void Compile::Fill_buffer() {
   int previous_offset = 0;
   int current_offset  = 0;
   int last_call_offset = -1;
+  int last_avoid_back_to_back_offset = -1;
+#ifdef ASSERT
+  int block_alignment_padding = 0;
+
+  uint* jmp_target = NEW_RESOURCE_ARRAY(uint,nblocks);
+  uint* jmp_offset = NEW_RESOURCE_ARRAY(uint,nblocks);
+  uint* jmp_size   = NEW_RESOURCE_ARRAY(uint,nblocks);
+  uint* jmp_rule   = NEW_RESOURCE_ARRAY(uint,nblocks);
+#endif
 
   // Create an array of unused labels, one for each basic block, if printing is enabled
 #ifndef PRODUCT
   int *node_offsets      = NULL;
-  uint  node_offset_limit = unique();
-
+  uint node_offset_limit = unique();
 
-  if ( print_assembly() )
+  if (print_assembly())
     node_offsets         = NEW_RESOURCE_ARRAY(int, node_offset_limit);
 #endif
 
@@ -1199,11 +1218,19 @@ void Compile::Fill_buffer() {
     constant_table().emit(*cb);
   }
 
+  // Create an array of labels, one for each basic block
+  Label *blk_labels = NEW_RESOURCE_ARRAY(Label, nblocks+1);
+  for (uint i=0; i <= nblocks; i++) {
+    blk_labels[i].init();
+  }
+
   // ------------------
   // Now fill in the code buffer
   Node *delay_slot = NULL;
 
-  for( i=0; i < _cfg->_num_blocks; i++ ) {
+  for (uint i=0; i < nblocks; i++) {
+    guarantee(blk_starts[i] >= (uint)cb->insts_size(),"should not increase size");
+
     Block *b = _cfg->_blocks[i];
 
     Node *head = b->head();
@@ -1211,23 +1238,38 @@ void Compile::Fill_buffer() {
     // If this block needs to start aligned (i.e, can be reached other
     // than by falling-thru from the previous block), then force the
     // start of a new bundle.
-    if( Pipeline::requires_bundling() && starts_bundle(head) )
+    if (Pipeline::requires_bundling() && starts_bundle(head))
       cb->flush_bundle(true);
 
+#ifdef ASSERT
+    if (!b->is_connector()) {
+      stringStream st;
+      b->dump_head(&_cfg->_bbs, &st);
+      MacroAssembler(cb).block_comment(st.as_string());
+    }
+    jmp_target[i] = 0;
+    jmp_offset[i] = 0;
+    jmp_size[i]   = 0;
+    jmp_rule[i]   = 0;
+
+    // Maximum alignment padding for loop block was used
+    // during first round of branches shortening, as result
+    // padding for nodes (sfpt after call) was not added.
+    // Take this into account for block's size change check
+    // and allow increase block's size by the difference
+    // of maximum and actual alignment paddings.
+    int orig_blk_size = blk_starts[i+1] - blk_starts[i] + block_alignment_padding;
+#endif
+    int blk_offset = current_offset;
+
     // Define the label at the beginning of the basic block
-    if (labels_not_set) {
-      MacroAssembler(cb).bind(blk_labels[b->_pre_order]);
-    } else {
-      assert(blk_labels[b->_pre_order].loc_pos() == cb->insts_size(),
-             err_msg("label position does not match code offset: %d != %d",
-                     blk_labels[b->_pre_order].loc_pos(), cb->insts_size()));
-    }
+    MacroAssembler(cb).bind(blk_labels[b->_pre_order]);
 
     uint last_inst = b->_nodes.size();
 
     // Emit block normally, except for last instruction.
     // Emit means "dump code bits into code buffer".
-    for( uint j = 0; j<last_inst; j++ ) {
+    for (uint j = 0; j<last_inst; j++) {
 
       // Get the node
       Node* n = b->_nodes[j];
@@ -1244,7 +1286,7 @@ void Compile::Fill_buffer() {
 
       // If this starts a new instruction group, then flush the current one
       // (but allow split bundles)
-      if( Pipeline::requires_bundling() && starts_bundle(n) )
+      if (Pipeline::requires_bundling() && starts_bundle(n))
         cb->flush_bundle(false);
 
       // The following logic is duplicated in the code ifdeffed for
@@ -1253,25 +1295,32 @@ void Compile::Fill_buffer() {
 
       // Special handling for SafePoint/Call Nodes
       bool is_mcall = false;
-      if( n->is_Mach() ) {
+      if (n->is_Mach()) {
         MachNode *mach = n->as_Mach();
         is_mcall = n->is_MachCall();
         bool is_sfn = n->is_MachSafePoint();
 
         // If this requires all previous instructions be flushed, then do so
-        if( is_sfn || is_mcall || mach->alignment_required() != 1) {
+        if (is_sfn || is_mcall || mach->alignment_required() != 1) {
           cb->flush_bundle(true);
           current_offset = cb->insts_size();
         }
 
+        // A padding may be needed again since a previous instruction
+        // could be moved to delay slot.
+
         // align the instruction if necessary
         int padding = mach->compute_padding(current_offset);
         // Make sure safepoint node for polling is distinct from a call's
         // return by adding a nop if needed.
-        if (is_sfn && !is_mcall && padding == 0 && current_offset == last_call_offset ) {
+        if (is_sfn && !is_mcall && padding == 0 && current_offset == last_call_offset) {
+          padding = nop_size;
+        }
+        if (padding == 0 && mach->avoid_back_to_back() &&
+            current_offset == last_avoid_back_to_back_offset) {
+          // Avoid back to back some instructions.
           padding = nop_size;
         }
-        assert( labels_not_set || padding == 0, "instruction should already be aligned");
 
         if(padding > 0) {
           assert((padding % nop_size) == 0, "padding is not a multiple of NOP size");
@@ -1295,20 +1344,20 @@ void Compile::Fill_buffer() {
           // Save the return address
           call_returns[b->_pre_order] = current_offset + mcall->ret_addr_offset();
 
-          if (!mcall->is_safepoint_node()) {
+          if (mcall->is_MachCallLeaf()) {
             is_mcall = false;
             is_sfn = false;
           }
         }
 
         // sfn will be valid whenever mcall is valid now because of inheritance
-        if( is_sfn || is_mcall ) {
+        if (is_sfn || is_mcall) {
 
           // Handle special safepoint nodes for synchronization
-          if( !is_mcall ) {
+          if (!is_mcall) {
             MachSafePointNode *sfn = mach->as_MachSafePoint();
             // !!!!! Stubs only need an oopmap right now, so bail out
-            if( sfn->jvms()->method() == NULL) {
+            if (sfn->jvms()->method() == NULL) {
               // Write the oopmap directly to the code blob??!!
 #             ifdef ENABLE_ZAP_DEAD_LOCALS
               assert( !is_node_getting_a_safepoint(sfn),  "logic does not match; false positive");
@@ -1328,31 +1377,78 @@ void Compile::Fill_buffer() {
         }
 
         // If this is a branch, then fill in the label with the target BB's label
-        else if ( mach->is_Branch() ) {
-
-          if ( mach->ideal_Opcode() == Op_Jump ) {
-            for (uint h = 0; h < b->_num_succs; h++ ) {
-              Block* succs_block = b->_succs[h];
-              for (uint j = 1; j < succs_block->num_preds(); j++) {
-                Node* jpn = succs_block->pred(j);
-                if ( jpn->is_JumpProj() && jpn->in(0) == mach ) {
-                  uint block_num = succs_block->non_connector()->_pre_order;
-                  Label *blkLabel = &blk_labels[block_num];
-                  mach->add_case_label(jpn->as_JumpProj()->proj_no(), blkLabel);
-                }
+        else if (mach->is_MachBranch()) {
+          // This requires the TRUE branch target be in succs[0]
+          uint block_num = b->non_connector_successor(0)->_pre_order;
+
+          // Try to replace long branch if delay slot is not used,
+          // it is mostly for back branches since forward branch's
+          // distance is not updated yet.
+          bool delay_slot_is_used = valid_bundle_info(n) &&
+                                    node_bundling(n)->use_unconditional_delay();
+          if (!delay_slot_is_used && mach->may_be_short_branch()) {
+           assert(delay_slot == NULL, "not expecting delay slot node");
+           int br_size = n->size(_regalloc);
+            int offset = blk_starts[block_num] - current_offset;
+            if (block_num >= i) {
+              // Current and following block's offset are not
+              // finilized yet, adjust distance by the difference
+              // between calculated and final offsets of current block.
+              offset -= (blk_starts[i] - blk_offset);
+            }
+            // In the following code a nop could be inserted before
+            // the branch which will increase the backward distance.
+            bool needs_padding = (current_offset == last_avoid_back_to_back_offset);
+            if (needs_padding && offset <= 0)
+              offset -= nop_size;
+
+            if (_matcher->is_short_branch_offset(mach->rule(), br_size, offset)) {
+              // We've got a winner.  Replace this branch.
+              MachNode* replacement = mach->as_MachBranch()->short_branch_version(this);
+
+              // Update the jmp_size.
+              int new_size = replacement->size(_regalloc);
+              assert((br_size - new_size) >= (int)nop_size, "short_branch size should be smaller");
+              // Insert padding between avoid_back_to_back branches.
+              if (needs_padding && replacement->avoid_back_to_back()) {
+                MachNode *nop = new (this) MachNopNode();
+                b->_nodes.insert(j++, nop);
+                _cfg->_bbs.map(nop->_idx, b);
+                last_inst++;
+                nop->emit(*cb, _regalloc);
+                cb->flush_bundle(true);
+                current_offset = cb->insts_size();
+              }
+#ifdef ASSERT
+              jmp_target[i] = block_num;
+              jmp_offset[i] = current_offset - blk_offset;
+              jmp_size[i]   = new_size;
+              jmp_rule[i]   = mach->rule();
+#endif
+              b->_nodes.map(j, replacement);
+              mach->subsume_by(replacement);
+              n    = replacement;
+              mach = replacement;
+            }
+          }
+          mach->as_MachBranch()->label_set( &blk_labels[block_num], block_num );
+        } else if (mach->ideal_Opcode() == Op_Jump) {
+          for (uint h = 0; h < b->_num_succs; h++) {
+            Block* succs_block = b->_succs[h];
+            for (uint j = 1; j < succs_block->num_preds(); j++) {
+              Node* jpn = succs_block->pred(j);
+              if (jpn->is_JumpProj() && jpn->in(0) == mach) {
+                uint block_num = succs_block->non_connector()->_pre_order;
+                Label *blkLabel = &blk_labels[block_num];
+                mach->add_case_label(jpn->as_JumpProj()->proj_no(), blkLabel);
               }
             }
-          } else {
-            // For Branchs
-            // This requires the TRUE branch target be in succs[0]
-            uint block_num = b->non_connector_successor(0)->_pre_order;
-            mach->label_set( blk_labels[block_num], block_num );
           }
         }
 
 #ifdef ASSERT
         // Check that oop-store precedes the card-mark
-        else if( mach->ideal_Opcode() == Op_StoreCM ) {
+        else if (mach->ideal_Opcode() == Op_StoreCM) {
           uint storeCM_idx = j;
           int count = 0;
           for (uint prec = mach->req(); prec < mach->len(); prec++) {
@@ -1371,7 +1467,7 @@ void Compile::Fill_buffer() {
         }
 #endif
 
-        else if( !n->is_Proj() ) {
+        else if (!n->is_Proj()) {
           // Remember the beginning of the previous instruction, in case
           // it's followed by a flag-kill and a null-check.  Happens on
           // Intel all the time, with add-to-memory kind of opcodes.
@@ -1388,13 +1484,21 @@ void Compile::Fill_buffer() {
 
       // Save the offset for the listing
 #ifndef PRODUCT
-      if( node_offsets && n->_idx < node_offset_limit )
+      if (node_offsets && n->_idx < node_offset_limit)
         node_offsets[n->_idx] = cb->insts_size();
 #endif
 
       // "Normal" instruction case
+      DEBUG_ONLY( uint instr_offset = cb->insts_size(); )
       n->emit(*cb, _regalloc);
       current_offset  = cb->insts_size();
+
+#ifdef ASSERT
+      if (n->size(_regalloc) < (current_offset-instr_offset)) {
+        n->dump();
+        assert(false, "wrong size of mach node");
+      }
+#endif
       non_safepoints.observe_instruction(n, current_offset);
 
       // mcall is last "call" that can be a safepoint
@@ -1408,8 +1512,13 @@ void Compile::Fill_buffer() {
         last_call_offset = current_offset;
       }
 
+      if (n->is_Mach() && n->as_Mach()->avoid_back_to_back()) {
+        // Avoid back to back some instructions.
+        last_avoid_back_to_back_offset = current_offset;
+      }
+
       // See if this instruction has a delay slot
-      if ( valid_bundle_info(n) && node_bundling(n)->use_unconditional_delay()) {
+      if (valid_bundle_info(n) && node_bundling(n)->use_unconditional_delay()) {
         assert(delay_slot != NULL, "expecting delay slot node");
 
         // Back up 1 instruction
@@ -1417,15 +1526,15 @@ void Compile::Fill_buffer() {
 
         // Save the offset for the listing
 #ifndef PRODUCT
-        if( node_offsets && delay_slot->_idx < node_offset_limit )
+        if (node_offsets && delay_slot->_idx < node_offset_limit)
           node_offsets[delay_slot->_idx] = cb->insts_size();
 #endif
 
         // Support a SafePoint in the delay slot
-        if( delay_slot->is_MachSafePoint() ) {
+        if (delay_slot->is_MachSafePoint()) {
           MachNode *mach = delay_slot->as_Mach();
           // !!!!! Stubs only need an oopmap right now, so bail out
-          if( !mach->is_MachCall() && mach->as_MachSafePoint()->jvms()->method() == NULL ) {
+          if (!mach->is_MachCall() && mach->as_MachSafePoint()->jvms()->method() == NULL) {
             // Write the oopmap directly to the code blob??!!
 #           ifdef ENABLE_ZAP_DEAD_LOCALS
             assert( !is_node_getting_a_safepoint(mach),  "logic does not match; false positive");
@@ -1449,12 +1558,14 @@ void Compile::Fill_buffer() {
       }
 
     } // End for all instructions in block
+    assert((uint)blk_offset <= blk_starts[i], "shouldn't increase distance");
+    blk_starts[i] = blk_offset;
 
     // If the next block is the top of a loop, pad this block out to align
     // the loop top a little. Helps prevent pipe stalls at loop back branches.
-    if( i<_cfg->_num_blocks-1 ) {
+    if (i < nblocks-1) {
       Block *nb = _cfg->_blocks[i+1];
-      uint padding = nb->alignment_padding(current_offset);
+      int padding = nb->alignment_padding(current_offset);
       if( padding > 0 ) {
         MachNode *nop = new (this) MachNopNode(padding / nop_size);
         b->_nodes.insert( b->_nodes.size(), nop );
@@ -1462,9 +1573,18 @@ void Compile::Fill_buffer() {
         nop->emit(*cb, _regalloc);
         current_offset = cb->insts_size();
       }
+#ifdef ASSERT
+      int max_loop_pad = nb->code_alignment()-relocInfo::addr_unit();
+      block_alignment_padding = (max_loop_pad - padding);
+      assert(block_alignment_padding >= 0, "sanity");
+#endif
     }
+    // Verify that the distance for generated before forward
+    // short branches is still valid.
+    assert(orig_blk_size >= (current_offset - blk_offset), "shouldn't increase block size");
 
   } // End of for all blocks
+  blk_starts[nblocks] = current_offset;
 
   non_safepoints.flush_at_end();
 
@@ -1472,13 +1592,26 @@ void Compile::Fill_buffer() {
   if (failing())  return;
 
   // Define a pseudo-label at the end of the code
-  MacroAssembler(cb).bind( blk_labels[_cfg->_num_blocks] );
+  MacroAssembler(cb).bind( blk_labels[nblocks] );
 
   // Compute the size of the first block
   _first_block_size = blk_labels[1].loc_pos() - blk_labels[0].loc_pos();
 
   assert(cb->insts_size() < 500000, "method is unreasonably large");
 
+#ifdef ASSERT
+  for (uint i = 0; i < nblocks; i++) { // For all blocks
+    if (jmp_target[i] != 0) {
+      int br_size = jmp_size[i];
+      int offset = blk_starts[jmp_target[i]]-(blk_starts[i] + jmp_offset[i]);
+      if (!_matcher->is_short_branch_offset(jmp_rule[i], br_size, offset)) {
+        tty->print_cr("target (%d) - jmp_offset(%d) = offset (%d), jump_size(%d), jmp_block B%d, target_block B%d", blk_starts[jmp_target[i]], blk_starts[i] + jmp_offset[i], offset, br_size, i, jmp_target[i]);
+        assert(false, "Displacement too large for short jmp");
+      }
+    }
+  }
+#endif
+
   // ------------------
 
 #ifndef PRODUCT
@@ -1565,8 +1698,8 @@ void Compile::FillExceptionTables(uint cnt, uint *call_returns, uint *inct_start
       uint call_return = call_returns[b->_pre_order];
 #ifdef ASSERT
       assert( call_return > 0, "no call seen for this basic block" );
-      while( b->_nodes[--j]->Opcode() == Op_MachProj ) ;
-      assert( b->_nodes[j]->is_Call(), "CatchProj must follow call" );
+      while( b->_nodes[--j]->is_MachProj() ) ;
+      assert( b->_nodes[j]->is_MachCall(), "CatchProj must follow call" );
 #endif
       // last instruction is a CatchNode, find it's CatchProjNodes
       int nof_succs = b->_num_succs;
@@ -1743,11 +1876,6 @@ void Compile::ScheduleAndBundle() {
   // Create a data structure for all the scheduling information
   Scheduling scheduling(Thread::current()->resource_area(), *this);
 
-  // Initialize the space for the BufferBlob used to find and verify
-  // instruction size in MachNode::emit_size()
-  init_scratch_buffer_blob(MAX_const_size);
-  if (failing())  return;  // Out of memory
-
   // Walk backwards over each basic block, computing the needed alignment
   // Walk over all the basic blocks
   scheduling.DoScheduling();
@@ -2028,7 +2156,7 @@ void Scheduling::AddNodeToBundle(Node *n, const Block *bb) {
     // the first instruction at the branch target is
     // copied to the delay slot, and the branch goes to
     // the instruction after that at the branch target
-    if ( n->is_Mach() && n->is_Branch() ) {
+    if ( n->is_MachBranch() ) {
 
       assert( !n->is_MachNullCheck(), "should not look for delay slot for Null Check" );
       assert( !n->is_Catch(),         "should not look for delay slot for Catch" );
@@ -2346,12 +2474,18 @@ void Scheduling::DoScheduling() {
     // have their delay slots filled in the template expansions, so we don't
     // bother scheduling them.
     Node *last = bb->_nodes[_bb_end];
+    // Ignore trailing NOPs.
+    while (_bb_end > 0 && last->is_Mach() &&
+           last->as_Mach()->ideal_Opcode() == Op_Con) {
+      last = bb->_nodes[--_bb_end];
+    }
+    assert(!last->is_Mach() || last->as_Mach()->ideal_Opcode() != Op_Con, "");
     if( last->is_Catch() ||
        // Exclude unreachable path case when Halt node is in a separate block.
        (_bb_end > 1 && last->is_Mach() && last->as_Mach()->ideal_Opcode() == Op_Halt) ) {
       // There must be a prior call.  Skip it.
-      while( !bb->_nodes[--_bb_end]->is_Call() ) {
-        assert( bb->_nodes[_bb_end]->is_Proj(), "skipping projections after expected call" );
+      while( !bb->_nodes[--_bb_end]->is_MachCall() ) {
+        assert( bb->_nodes[_bb_end]->is_MachProj(), "skipping projections after expected call" );
       }
     } else if( last->is_MachNullCheck() ) {
       // Backup so the last null-checked memory instruction is
@@ -2663,7 +2797,7 @@ void Scheduling::ComputeRegisterAntidependencies(Block *b) {
   for( uint i = _bb_end-1; i >= _bb_start; i-- ) {
     Node *n = b->_nodes[i];
     int is_def = n->outcnt();   // def if some uses prior to adding precedence edges
-    if( n->Opcode() == Op_MachProj && n->ideal_reg() == MachProjNode::fat_proj ) {
+    if( n->is_MachProj() && n->ideal_reg() == MachProjNode::fat_proj ) {
       // Fat-proj kills a slew of registers
       // This can add edges to 'n' and obscure whether or not it was a def,
       // hence the is_def flag.
@@ -2680,12 +2814,29 @@ void Scheduling::ComputeRegisterAntidependencies(Block *b) {
       anti_do_def( b, n, _regalloc->get_reg_second(n), is_def );
     }
 
+    // Kill projections on a branch should appear to occur on the
+    // branch, not afterwards, so grab the masks from the projections
+    // and process them.
+    if (n->is_MachBranch() || n->is_Mach() && n->as_Mach()->ideal_Opcode() == Op_Jump) {
+      for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) {
+        Node* use = n->fast_out(i);
+        if (use->is_Proj()) {
+          RegMask rm = use->out_RegMask();// Make local copy
+          while( rm.is_NotEmpty() ) {
+            OptoReg::Name kill = rm.find_first_elem();
+            rm.Remove(kill);
+            anti_do_def( b, n, kill, false );
+          }
+        }
+      }
+    }
+
     // Check each register used by this instruction for a following DEF/KILL
     // that must occur afterward and requires an anti-dependence edge.
     for( uint j=0; j<n->req(); j++ ) {
       Node *def = n->in(j);
       if( def ) {
-        assert( def->Opcode() != Op_MachProj || def->ideal_reg() != MachProjNode::fat_proj, "" );
+        assert( !def->is_MachProj() || def->ideal_reg() != MachProjNode::fat_proj, "" );
         anti_do_use( b, n, _regalloc->get_reg_first(def) );
         anti_do_use( b, n, _regalloc->get_reg_second(def) );
       }
diff --git a/hotspot/src/share/vm/opto/parse.hpp b/hotspot/src/share/vm/opto/parse.hpp
index 0b65782..ec9a083 100644
--- a/hotspot/src/share/vm/opto/parse.hpp
+++ b/hotspot/src/share/vm/opto/parse.hpp
@@ -41,6 +41,8 @@ class SwitchRange;
 
 //------------------------------InlineTree-------------------------------------
 class InlineTree : public ResourceObj {
+  friend class VMStructs;
+
   Compile*    C;                  // cache
   JVMState*   _caller_jvms;       // state of caller
   ciMethod*   _method;            // method being called by the caller_jvms
@@ -54,7 +56,8 @@ class InlineTree : public ResourceObj {
   float compute_callee_frequency( int caller_bci ) const;
 
   GrowableArray<InlineTree*> _subtrees;
-  friend class Compile;
+
+  void print_impl(outputStream* stj, int indent) const PRODUCT_RETURN;
 
 protected:
   InlineTree(Compile* C,
@@ -78,6 +81,8 @@ protected:
   int         stack_depth()       const { return _caller_jvms ? _caller_jvms->depth() : 0; }
 
 public:
+  static const char* check_can_parse(ciMethod* callee);
+
   static InlineTree* build_inline_tree_root();
   static InlineTree* find_subtree_from_root(InlineTree* root, JVMState* jvms, ciMethod* callee, bool create_if_not_found = false);
 
@@ -119,6 +124,8 @@ public:
   uint        count_inlines()     const { return _count_inlines; };
 #endif
   GrowableArray<InlineTree*> subtrees() { return _subtrees; }
+
+  void print_value_on(outputStream* st) const PRODUCT_RETURN;
 };
 
 
diff --git a/hotspot/src/share/vm/opto/parse2.cpp b/hotspot/src/share/vm/opto/parse2.cpp
index 26684ea..5e8007d 100644
--- a/hotspot/src/share/vm/opto/parse2.cpp
+++ b/hotspot/src/share/vm/opto/parse2.cpp
@@ -752,20 +752,12 @@ void Parse::do_jsr() {
 // Handle ret bytecode
 void Parse::do_ret() {
   // Find to whom we return.
-#if 0 // %%%% MAKE THIS WORK
-  Node* con = local();
-  const TypePtr* tp = con->bottom_type()->isa_ptr();
-  assert(tp && tp->singleton(), "");
-  int return_bci = (int) tp->get_con();
-  merge(return_bci);
-#else
   assert(block()->num_successors() == 1, "a ret can only go one place now");
   Block* target = block()->successor_at(0);
   assert(!target->is_ready(), "our arrival must be expected");
   profile_ret(target->flow()->start());
   int pnum = target->next_path_num();
   merge_common(target, pnum);
-#endif
 }
 
 //--------------------------dynamic_branch_prediction--------------------------
diff --git a/hotspot/src/share/vm/opto/parse3.cpp b/hotspot/src/share/vm/opto/parse3.cpp
index e1a319f..6d6fd07 100644
--- a/hotspot/src/share/vm/opto/parse3.cpp
+++ b/hotspot/src/share/vm/opto/parse3.cpp
@@ -100,6 +100,14 @@ void Parse::do_field_access(bool is_get, bool is_field) {
     }
   }
 
+  // Deoptimize on putfield writes to call site target field.
+  if (!is_get && field->is_call_site_target()) {
+    uncommon_trap(Deoptimization::Reason_unhandled,
+                  Deoptimization::Action_reinterpret,
+                  NULL, "put to call site target field");
+    return;
+  }
+
   assert(field->will_link(method()->holder(), bc()), "getfield: typeflow responsibility");
 
   // Note:  We do not check for an unloaded field type here any more.
@@ -139,19 +147,21 @@ void Parse::do_field_access(bool is_get, bool is_field) {
 void Parse::do_get_xxx(Node* obj, ciField* field, bool is_field) {
   // Does this field have a constant value?  If so, just push the value.
   if (field->is_constant()) {
+    // final field
     if (field->is_static()) {
       // final static field
       if (push_constant(field->constant_value()))
         return;
     }
     else {
-      // final non-static field of a trusted class (classes in
-      // java.lang.invoke and sun.invoke packages and subpackages).
+      // final non-static field
+      // Treat final non-static fields of trusted classes (classes in
+      // java.lang.invoke and sun.invoke packages and subpackages) as
+      // compile time constants.
       if (obj->is_Con()) {
         const TypeOopPtr* oop_ptr = obj->bottom_type()->isa_oopptr();
         ciObject* constant_oop = oop_ptr->const_oop();
         ciConstant constant = field->constant_value_of(constant_oop);
-
         if (push_constant(constant, true))
           return;
       }
diff --git a/hotspot/src/share/vm/opto/phaseX.cpp b/hotspot/src/share/vm/opto/phaseX.cpp
index 7b5d6cd..541744a 100644
--- a/hotspot/src/share/vm/opto/phaseX.cpp
+++ b/hotspot/src/share/vm/opto/phaseX.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -864,6 +864,10 @@ void PhaseIterGVN::optimize() {
   // Pull from worklist; transform node;
   // If node has changed: update edge info and put uses on worklist.
   while( _worklist.size() ) {
+    if (C->check_node_count(NodeLimitFudgeFactor * 2,
+                            "out of nodes optimizing method")) {
+      return;
+    }
     Node *n  = _worklist.pop();
     if (++loop_count >= K * C->unique()) {
       debug_only(n->dump(4);)
diff --git a/hotspot/src/share/vm/opto/phaseX.hpp b/hotspot/src/share/vm/opto/phaseX.hpp
index 8f82d74..162716d 100644
--- a/hotspot/src/share/vm/opto/phaseX.hpp
+++ b/hotspot/src/share/vm/opto/phaseX.hpp
@@ -473,7 +473,6 @@ public:
 
   // Clone loop predicates. Defined in loopTransform.cpp.
   Node* clone_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check);
-  Node*  move_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check);
   // Create a new if below new_entry for the predicate to be cloned
   ProjNode* create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry,
                                         Deoptimization::DeoptReason reason);
diff --git a/hotspot/src/share/vm/opto/postaloc.cpp b/hotspot/src/share/vm/opto/postaloc.cpp
index 897d510..603264a 100644
--- a/hotspot/src/share/vm/opto/postaloc.cpp
+++ b/hotspot/src/share/vm/opto/postaloc.cpp
@@ -72,7 +72,22 @@ bool PhaseChaitin::may_be_copy_of_callee( Node *def ) const {
   return i == limit;
 }
 
-
+//------------------------------yank-----------------------------------
+// Helper function for yank_if_dead
+int PhaseChaitin::yank( Node *old, Block *current_block, Node_List *value, Node_List *regnd ) {
+  int blk_adjust=0;
+  Block *oldb = _cfg._bbs[old->_idx];
+  oldb->find_remove(old);
+  // Count 1 if deleting an instruction from the current block
+  if( oldb == current_block ) blk_adjust++;
+  _cfg._bbs.map(old->_idx,NULL);
+  OptoReg::Name old_reg = lrgs(n2lidx(old)).reg();
+  if( regnd && (*regnd)[old_reg]==old ) { // Instruction is currently available?
+    value->map(old_reg,NULL);  // Yank from value/regnd maps
+    regnd->map(old_reg,NULL);  // This register's value is now unknown
+  }
+  return blk_adjust;
+}
 
 //------------------------------yank_if_dead-----------------------------------
 // Removed an edge from 'old'.  Yank if dead.  Return adjustment counts to
@@ -80,18 +95,23 @@ bool PhaseChaitin::may_be_copy_of_callee( Node *def ) const {
 int PhaseChaitin::yank_if_dead( Node *old, Block *current_block, Node_List *value, Node_List *regnd ) {
   int blk_adjust=0;
   while (old->outcnt() == 0 && old != C->top()) {
-    Block *oldb = _cfg._bbs[old->_idx];
-    oldb->find_remove(old);
-    // Count 1 if deleting an instruction from the current block
-    if( oldb == current_block ) blk_adjust++;
-    _cfg._bbs.map(old->_idx,NULL);
-    OptoReg::Name old_reg = lrgs(n2lidx(old)).reg();
-    if( regnd && (*regnd)[old_reg]==old ) { // Instruction is currently available?
-      value->map(old_reg,NULL);  // Yank from value/regnd maps
-      regnd->map(old_reg,NULL);  // This register's value is now unknown
+    blk_adjust += yank(old, current_block, value, regnd);
+
+    Node *tmp = NULL;
+    for (uint i = 1; i < old->req(); i++) {
+      if (old->in(i)->is_MachTemp()) {
+        // handle TEMP inputs
+        Node* machtmp = old->in(i);
+        if (machtmp->outcnt() == 1) {
+          assert(machtmp->unique_out() == old, "sanity");
+          blk_adjust += yank(machtmp, current_block, value, regnd);
+          machtmp->disconnect_inputs(NULL);
+        }
+      } else {
+        assert(tmp == NULL, "can't handle more non MachTemp inputs");
+        tmp = old->in(i);
+      }
     }
-    assert(old->req() <= 2, "can't handle more inputs");
-    Node *tmp = old->req() > 1 ? old->in(1) : NULL;
     old->disconnect_inputs(NULL);
     if( !tmp ) break;
     old = tmp;
diff --git a/hotspot/src/share/vm/opto/reg_split.cpp b/hotspot/src/share/vm/opto/reg_split.cpp
index 537961f..63a11fe 100644
--- a/hotspot/src/share/vm/opto/reg_split.cpp
+++ b/hotspot/src/share/vm/opto/reg_split.cpp
@@ -984,7 +984,7 @@ uint PhaseChaitin::Split( uint maxlrg ) {
               continue;
             }
 
-            if (UseFPUForSpilling && n->is_Call() && !uup && !dup ) {
+            if (UseFPUForSpilling && n->is_MachCall() && !uup && !dup ) {
               // The use at the call can force the def down so insert
               // a split before the use to allow the def more freedom.
               maxlrg = split_USE(def,b,n,inpidx,maxlrg,dup,false, splits,slidx);
diff --git a/hotspot/src/share/vm/opto/regalloc.hpp b/hotspot/src/share/vm/opto/regalloc.hpp
index 71f4def..d0a993e 100644
--- a/hotspot/src/share/vm/opto/regalloc.hpp
+++ b/hotspot/src/share/vm/opto/regalloc.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,6 +39,7 @@ class PhaseCFG;
 //------------------------------PhaseRegAlloc------------------------------------
 // Abstract register allocator
 class PhaseRegAlloc : public Phase {
+  friend class VMStructs;
   static void (*_alloc_statistics[MAX_REG_ALLOCATORS])();
   static int _num_allocators;
 
diff --git a/hotspot/src/share/vm/opto/runtime.cpp b/hotspot/src/share/vm/opto/runtime.cpp
index 4c55ca0..a4495ea 100644
--- a/hotspot/src/share/vm/opto/runtime.cpp
+++ b/hotspot/src/share/vm/opto/runtime.cpp
@@ -102,6 +102,7 @@
 // Compiled code entry points
 address OptoRuntime::_new_instance_Java                           = NULL;
 address OptoRuntime::_new_array_Java                              = NULL;
+address OptoRuntime::_new_array_nozero_Java                       = NULL;
 address OptoRuntime::_multianewarray2_Java                        = NULL;
 address OptoRuntime::_multianewarray3_Java                        = NULL;
 address OptoRuntime::_multianewarray4_Java                        = NULL;
@@ -151,6 +152,7 @@ void OptoRuntime::generate(ciEnv* env) {
   // -------------------------------------------------------------------------------------------------------------------------------
   gen(env, _new_instance_Java              , new_instance_Type            , new_instance_C                  ,    0 , true , false, false);
   gen(env, _new_array_Java                 , new_array_Type               , new_array_C                     ,    0 , true , false, false);
+  gen(env, _new_array_nozero_Java          , new_array_Type               , new_array_nozero_C              ,    0 , true , false, false);
   gen(env, _multianewarray2_Java           , multianewarray2_Type         , multianewarray2_C               ,    0 , true , false, false);
   gen(env, _multianewarray3_Java           , multianewarray3_Type         , multianewarray3_C               ,    0 , true , false, false);
   gen(env, _multianewarray4_Java           , multianewarray4_Type         , multianewarray4_C               ,    0 , true , false, false);
@@ -308,6 +310,36 @@ JRT_BLOCK_ENTRY(void, OptoRuntime::new_array_C(klassOopDesc* array_type, int len
   }
 JRT_END
 
+// array allocation without zeroing
+JRT_BLOCK_ENTRY(void, OptoRuntime::new_array_nozero_C(klassOopDesc* array_type, int len, JavaThread *thread))
+  JRT_BLOCK;
+#ifndef PRODUCT
+  SharedRuntime::_new_array_ctr++;            // new array requires GC
+#endif
+  assert(check_compiled_frame(thread), "incorrect caller");
+
+  // Scavenge and allocate an instance.
+  oop result;
+
+  assert(Klass::cast(array_type)->oop_is_typeArray(), "should be called only for type array");
+  // The oopFactory likes to work with the element type.
+  BasicType elem_type = typeArrayKlass::cast(array_type)->element_type();
+  result = oopFactory::new_typeArray_nozero(elem_type, len, THREAD);
+
+  // Pass oops back through thread local storage.  Our apparent type to Java
+  // is that we return an oop, but we can block on exit from this routine and
+  // a GC can trash the oop in C's return register.  The generated stub will
+  // fetch the oop from TLS after any possible GC.
+  deoptimize_caller_frame(thread, HAS_PENDING_EXCEPTION);
+  thread->set_vm_result(result);
+  JRT_BLOCK_END;
+
+  if (GraphKit::use_ReduceInitialCardMarks()) {
+    // inform GC that we won't do card marks for initializing writes.
+    new_store_pre_barrier(thread);
+  }
+JRT_END
+
 // Note: multianewarray for one dimension is handled inline by GraphKit::new_array.
 
 // multianewarray for 2 dimensions
@@ -978,7 +1010,6 @@ JRT_ENTRY_NO_ASYNC(address, OptoRuntime::handle_exception_C_helper(JavaThread* t
 
     thread->set_exception_pc(pc);
     thread->set_exception_handler_pc(handler_address);
-    thread->set_exception_stack_size(0);
 
     // Check if the exception PC is a MethodHandle call site.
     thread->set_is_method_handle_return(nm->is_method_handle_return(pc));
diff --git a/hotspot/src/share/vm/opto/runtime.hpp b/hotspot/src/share/vm/opto/runtime.hpp
index a691da3..f2c538b 100644
--- a/hotspot/src/share/vm/opto/runtime.hpp
+++ b/hotspot/src/share/vm/opto/runtime.hpp
@@ -114,6 +114,7 @@ class OptoRuntime : public AllStatic {
   // References to generated stubs
   static address _new_instance_Java;
   static address _new_array_Java;
+  static address _new_array_nozero_Java;
   static address _multianewarray2_Java;
   static address _multianewarray3_Java;
   static address _multianewarray4_Java;
@@ -143,6 +144,7 @@ class OptoRuntime : public AllStatic {
 
   // Allocate storage for a objArray or typeArray
   static void new_array_C(klassOopDesc* array_klass, int len, JavaThread *thread);
+  static void new_array_nozero_C(klassOopDesc* array_klass, int len, JavaThread *thread);
 
   // Post-slow-path-allocation, pre-initializing-stores step for
   // implementing ReduceInitialCardMarks
@@ -208,6 +210,7 @@ private:
   // access to runtime stubs entry points for java code
   static address new_instance_Java()                     { return _new_instance_Java; }
   static address new_array_Java()                        { return _new_array_Java; }
+  static address new_array_nozero_Java()                 { return _new_array_nozero_Java; }
   static address multianewarray2_Java()                  { return _multianewarray2_Java; }
   static address multianewarray3_Java()                  { return _multianewarray3_Java; }
   static address multianewarray4_Java()                  { return _multianewarray4_Java; }
diff --git a/hotspot/src/share/vm/opto/split_if.cpp b/hotspot/src/share/vm/opto/split_if.cpp
index dba6ed1..55de3d7 100644
--- a/hotspot/src/share/vm/opto/split_if.cpp
+++ b/hotspot/src/share/vm/opto/split_if.cpp
@@ -500,19 +500,14 @@ void PhaseIdealLoop::do_split_if( Node *iff ) {
   region_cache.lru_insert( new_false, new_false );
   region_cache.lru_insert( new_true , new_true  );
   // Now handle all uses of the splitting block
-  for (DUIterator_Last kmin, k = region->last_outs(kmin); k >= kmin; --k) {
-    Node* phi = region->last_out(k);
-    if( !phi->in(0) ) {         // Dead phi?  Remove it
+  for (DUIterator k = region->outs(); region->has_out(k); k++) {
+    Node* phi = region->out(k);
+    if (!phi->in(0)) {         // Dead phi?  Remove it
       _igvn.remove_dead_node(phi);
-      continue;
-    }
-    assert( phi->in(0) == region, "" );
-    if( phi == region ) {       // Found the self-reference
-      phi->set_req(0, NULL);
-      continue;                 // Break the self-cycle
-    }
-    // Expected common case: Phi hanging off of Region
-    if( phi->is_Phi() ) {
+    } else if (phi == region) { // Found the self-reference
+      continue;                 // No roll-back of DUIterator
+    } else if (phi->is_Phi()) { // Expected common case: Phi hanging off of Region
+      assert(phi->in(0) == region, "Inconsistent graph");
       // Need a per-def cache.  Phi represents a def, so make a cache
       small_cache phi_cache;
 
@@ -524,23 +519,25 @@ void PhaseIdealLoop::do_split_if( Node *iff ) {
         // collection of PHI's merging values from different paths.  The Phis
         // inserted depend only on the location of the USE.  We use a
         // 2-element cache to handle multiple uses from the same block.
-        handle_use( use, phi, &phi_cache, region_dom, new_false, new_true, old_false, old_true );
+        handle_use(use, phi, &phi_cache, region_dom, new_false, new_true, old_false, old_true);
       } // End of while phi has uses
-
-      // Because handle_use might relocate region->_out,
-      // we must refresh the iterator.
-      k = region->last_outs(kmin);
-
       // Remove the dead Phi
       _igvn.remove_dead_node( phi );
-
     } else {
+      assert(phi->in(0) == region, "Inconsistent graph");
       // Random memory op guarded by Region.  Compute new DEF for USE.
-      handle_use( phi, region, &region_cache, region_dom, new_false, new_true, old_false, old_true );
+      handle_use(phi, region, &region_cache, region_dom, new_false, new_true, old_false, old_true);
     }
-
+    // Every path above deletes a use of the region, except for the region
+    // self-cycle (which is needed by handle_use calling find_use_block
+    // calling get_ctrl calling get_ctrl_no_update looking for dead
+    // regions).  So roll back the DUIterator innards.
+    --k;
   } // End of while merge point has phis
 
+  assert(region->outcnt() == 1, "Only self reference should remain"); // Just Self on the Region
+  region->set_req(0, NULL);       // Break the self-cycle
+
   // Any leftover bits in the splitting block must not have depended on local
   // Phi inputs (these have already been split-up).  Hence it's safe to hoist
   // these guys to the dominating point.
diff --git a/hotspot/src/share/vm/opto/superword.cpp b/hotspot/src/share/vm/opto/superword.cpp
index 6e1be24..d1d1e1c 100644
--- a/hotspot/src/share/vm/opto/superword.cpp
+++ b/hotspot/src/share/vm/opto/superword.cpp
@@ -70,6 +70,8 @@ void SuperWord::transform_loop(IdealLoopTree* lpt) {
   assert(lpt->_head->is_CountedLoop(), "must be");
   CountedLoopNode *cl = lpt->_head->as_CountedLoop();
 
+  if (!cl->is_valid_counted_loop()) return; // skip malformed counted loop
+
   if (!cl->is_main_loop() ) return; // skip normal, pre, and post loops
 
   // Check for no control flow in body (other than exit)
@@ -1167,7 +1169,7 @@ void SuperWord::output() {
 
       } else if (n->is_Store()) {
         // Promote value to be stored to vector
-        VectorNode* val = vector_opd(p, MemNode::ValueIn);
+        Node* val = vector_opd(p, MemNode::ValueIn);
 
         int   opc = n->Opcode();
         Node* ctl = n->in(MemNode::Control);
@@ -1199,7 +1201,7 @@ void SuperWord::output() {
 
 //------------------------------vector_opd---------------------------
 // Create a vector operand for the nodes in pack p for operand: in(opd_idx)
-VectorNode* SuperWord::vector_opd(Node_List* p, int opd_idx) {
+Node* SuperWord::vector_opd(Node_List* p, int opd_idx) {
   Node* p0 = p->at(0);
   uint vlen = p->size();
   Node* opd = p0->in(opd_idx);
@@ -1215,9 +1217,10 @@ VectorNode* SuperWord::vector_opd(Node_List* p, int opd_idx) {
   }
 
   if (same_opd) {
-    if (opd->is_Vector()) {
-      return (VectorNode*)opd; // input is matching vector
+    if (opd->is_Vector() || opd->is_VectorLoad()) {
+      return opd; // input is matching vector
     }
+    assert(!opd->is_VectorStore(), "such vector is not expected here");
     // Convert scalar input to vector. Use p0's type because it's container
     // maybe smaller than the operand's container.
     const Type* opd_t = velt_type(!in_bb(opd) ? p0 : opd);
diff --git a/hotspot/src/share/vm/opto/superword.hpp b/hotspot/src/share/vm/opto/superword.hpp
index 50ab3d4..5093767 100644
--- a/hotspot/src/share/vm/opto/superword.hpp
+++ b/hotspot/src/share/vm/opto/superword.hpp
@@ -360,7 +360,7 @@ class SuperWord : public ResourceObj {
   // Convert packs into vector node operations
   void output();
   // Create a vector operand for the nodes in pack p for operand: in(opd_idx)
-  VectorNode* vector_opd(Node_List* p, int opd_idx);
+  Node* vector_opd(Node_List* p, int opd_idx);
   // Can code be generated for pack p?
   bool implemented(Node_List* p);
   // For pack p, are all operands and all uses (with in the block) vector?
diff --git a/hotspot/src/share/vm/opto/type.hpp b/hotspot/src/share/vm/opto/type.hpp
index 4d08d50..133ce78 100644
--- a/hotspot/src/share/vm/opto/type.hpp
+++ b/hotspot/src/share/vm/opto/type.hpp
@@ -64,6 +64,8 @@ class       TypeKlassPtr;
 // different kind of Type exists.  Types are never modified after creation, so
 // all their interesting fields are constant.
 class Type {
+  friend class VMStructs;
+
 public:
   enum TYPES {
     Bad=0,                      // Type check
diff --git a/hotspot/src/share/vm/opto/vectornode.cpp b/hotspot/src/share/vm/opto/vectornode.cpp
index 4d72b73..885a1c8 100644
--- a/hotspot/src/share/vm/opto/vectornode.cpp
+++ b/hotspot/src/share/vm/opto/vectornode.cpp
@@ -426,7 +426,7 @@ VectorLoadNode* VectorLoadNode::make(Compile* C, int opc, Node* ctl, Node* mem,
 
 // Return the vector version of a scalar store node.
 VectorStoreNode* VectorStoreNode::make(Compile* C, int opc, Node* ctl, Node* mem,
-                                       Node* adr, const TypePtr* atyp, VectorNode* val,
+                                       Node* adr, const TypePtr* atyp, Node* val,
                                        uint vlen) {
   int vopc = opcode(opc, vlen);
 
diff --git a/hotspot/src/share/vm/opto/vectornode.hpp b/hotspot/src/share/vm/opto/vectornode.hpp
index 4d28703..7d1905c 100644
--- a/hotspot/src/share/vm/opto/vectornode.hpp
+++ b/hotspot/src/share/vm/opto/vectornode.hpp
@@ -47,10 +47,10 @@ class VectorNode : public Node {
   friend class VectorStoreNode; // ditto.
 
   VectorNode(Node* n1, uint vlen) : Node(NULL, n1), _length(vlen) {
-    init_flags(Flag_is_Vector);
+    init_class_id(Class_Vector);
   }
   VectorNode(Node* n1, Node* n2, uint vlen) : Node(NULL, n1, n2), _length(vlen) {
-    init_flags(Flag_is_Vector);
+    init_class_id(Class_Vector);
   }
   virtual int Opcode() const;
 
@@ -389,7 +389,7 @@ class VectorLoadNode : public LoadNode {
  public:
   VectorLoadNode(Node* c, Node* mem, Node* adr, const TypePtr* at, const Type *rt)
     : LoadNode(c,mem,adr,at,rt) {
-      init_flags(Flag_is_Vector);
+    init_class_id(Class_VectorLoad);
   }
   virtual int Opcode() const;
 
@@ -617,7 +617,7 @@ class VectorStoreNode : public StoreNode {
  public:
   VectorStoreNode(Node* c, Node* mem, Node* adr, const TypePtr* at, Node* val)
     : StoreNode(c,mem,adr,at,val) {
-      init_flags(Flag_is_Vector);
+    init_class_id(Class_VectorStore);
   }
   virtual int Opcode() const;
 
@@ -635,7 +635,7 @@ class VectorStoreNode : public StoreNode {
   static int opcode(int sopc, uint vlen);
 
   static VectorStoreNode* make(Compile* C, int opc, Node* ctl, Node* mem,
-                               Node* adr, const TypePtr* atyp, VectorNode* val,
+                               Node* adr, const TypePtr* atyp, Node* val,
                                uint vlen);
 };
 
diff --git a/hotspot/src/share/vm/precompiled.hpp b/hotspot/src/share/vm/precompiled.hpp
index 87129d1..686f256 100644
--- a/hotspot/src/share/vm/precompiled.hpp
+++ b/hotspot/src/share/vm/precompiled.hpp
@@ -206,7 +206,6 @@
 # include "runtime/perfMemory.hpp"
 # include "runtime/prefetch.hpp"
 # include "runtime/reflection.hpp"
-# include "runtime/reflectionCompat.hpp"
 # include "runtime/reflectionUtils.hpp"
 # include "runtime/registerMap.hpp"
 # include "runtime/safepoint.hpp"
diff --git a/hotspot/src/share/vm/prims/forte.cpp b/hotspot/src/share/vm/prims/forte.cpp
index 023921c..d5eb0a6 100644
--- a/hotspot/src/share/vm/prims/forte.cpp
+++ b/hotspot/src/share/vm/prims/forte.cpp
@@ -522,25 +522,6 @@ static void forte_fill_call_trace_given_top(JavaThread* thd,
 extern "C" {
 JNIEXPORT
 void AsyncGetCallTrace(ASGCT_CallTrace *trace, jint depth, void* ucontext) {
-
-// This is if'd out because we no longer use thread suspension.
-// However if someone wanted to backport this to a 5.0 jvm then this
-// code would be important.
-#if 0
-  if (SafepointSynchronize::is_synchronizing()) {
-    // The safepoint mechanism is trying to synchronize all the threads.
-    // Since this can involve thread suspension, it is not safe for us
-    // to be here. We can reduce the deadlock risk window by quickly
-    // returning to the SIGPROF handler. However, it is still possible
-    // for VMThread to catch us here or in the SIGPROF handler. If we
-    // are suspended while holding a resource and another thread blocks
-    // on that resource in the SIGPROF handler, then we will have a
-    // three-thread deadlock (VMThread, this thread, the other thread).
-    trace->num_frames = ticks_safepoint; // -10
-    return;
-  }
-#endif
-
   JavaThread* thread;
 
   if (trace->env_id == NULL ||
@@ -640,6 +621,11 @@ void AsyncGetCallTrace(ASGCT_CallTrace *trace, jint depth, void* ucontext) {
 // Method to let libcollector know about a dynamically loaded function.
 // Because it is weakly bound, the calls become NOP's when the library
 // isn't present.
+#ifdef __APPLE__
+// XXXDARWIN: Link errors occur even when __attribute__((weak_import))
+// is added
+#define collector_func_load(x0,x1,x2,x3,x4,x5,x6) (0)
+#else
 void    collector_func_load(char* name,
                             void* null_argument_1,
                             void* null_argument_2,
@@ -650,6 +636,7 @@ void    collector_func_load(char* name,
 #pragma weak collector_func_load
 #define collector_func_load(x0,x1,x2,x3,x4,x5,x6) \
         ( collector_func_load ? collector_func_load(x0,x1,x2,x3,x4,x5,x6),0 : 0 )
+#endif // __APPLE__
 #endif // !_WINDOWS
 
 } // end extern "C"
diff --git a/hotspot/src/share/vm/prims/jni.cpp b/hotspot/src/share/vm/prims/jni.cpp
index b8e61c1..4e46f6a 100644
--- a/hotspot/src/share/vm/prims/jni.cpp
+++ b/hotspot/src/share/vm/prims/jni.cpp
@@ -82,6 +82,10 @@
 # include "os_windows.inline.hpp"
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+# include "thread_bsd.inline.hpp"
+#endif
 
 static jint CurrentVersion = JNI_VERSION_1_6;
 
@@ -492,7 +496,7 @@ JNI_ENTRY(jfieldID, jni_FromReflectedField(JNIEnv *env, jobject field))
 
   // First check if this is a static field
   if (modifiers & JVM_ACC_STATIC) {
-    intptr_t offset = instanceKlass::cast(k1())->offset_from_fields( slot );
+    intptr_t offset = instanceKlass::cast(k1())->field_offset( slot );
     JNIid* id = instanceKlass::cast(k1())->jni_id_for(offset);
     assert(id != NULL, "corrupt Field object");
     debug_only(id->set_is_static_field_id();)
@@ -504,7 +508,7 @@ JNI_ENTRY(jfieldID, jni_FromReflectedField(JNIEnv *env, jobject field))
   // The slot is the index of the field description in the field-array
   // The jfieldID is the offset of the field within the object
   // It may also have hash bits for k, if VerifyJNIFields is turned on.
-  intptr_t offset = instanceKlass::cast(k1())->offset_from_fields( slot );
+  intptr_t offset = instanceKlass::cast(k1())->field_offset( slot );
   assert(instanceKlass::cast(k1())->contains_field_offset(offset), "stay within object");
   ret = jfieldIDWorkaround::to_instance_jfieldID(k1(), offset);
   return ret;
diff --git a/hotspot/src/share/vm/prims/jvm.cpp b/hotspot/src/share/vm/prims/jvm.cpp
index 4abc11c..f98d1b7 100644
--- a/hotspot/src/share/vm/prims/jvm.cpp
+++ b/hotspot/src/share/vm/prims/jvm.cpp
@@ -32,6 +32,7 @@
 #include "gc_interface/collectedHeap.inline.hpp"
 #include "memory/oopFactory.hpp"
 #include "memory/universe.inline.hpp"
+#include "oops/fieldStreams.hpp"
 #include "oops/instanceKlass.hpp"
 #include "oops/objArrayKlass.hpp"
 #include "prims/jvm.h"
@@ -72,6 +73,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "jvm_windows.h"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "jvm_bsd.h"
+#endif
 
 #include <errno.h>
 
@@ -1504,7 +1508,7 @@ JVM_ENTRY(jbyteArray, JVM_GetFieldAnnotations(JNIEnv *env, jobject field))
 
   fieldDescriptor fd;
   KlassHandle kh(THREAD, k);
-  intptr_t offset = instanceKlass::cast(kh())->offset_from_fields(slot);
+  intptr_t offset = instanceKlass::cast(kh())->field_offset(slot);
 
   if (modifiers & JVM_ACC_STATIC) {
     // for static fields we only look in the current class
@@ -1604,9 +1608,6 @@ JVM_ENTRY(jobjectArray, JVM_GetClassDeclaredFields(JNIEnv *env, jclass ofClass,
   // Ensure class is linked
   k->link_class(CHECK_NULL);
 
-  typeArrayHandle fields(THREAD, k->fields());
-  int fields_len = fields->length();
-
   // 4496456 We need to filter out java.lang.Throwable.backtrace
   bool skip_backtrace = false;
 
@@ -1615,12 +1616,11 @@ JVM_ENTRY(jobjectArray, JVM_GetClassDeclaredFields(JNIEnv *env, jclass ofClass,
 
   if (publicOnly) {
     num_fields = 0;
-    for (int i = 0, j = 0; i < fields_len; i += instanceKlass::next_offset, j++) {
-      int mods = fields->ushort_at(i + instanceKlass::access_flags_offset) & JVM_RECOGNIZED_FIELD_MODIFIERS;
-      if (mods & JVM_ACC_PUBLIC) ++num_fields;
+    for (JavaFieldStream fs(k()); !fs.done(); fs.next()) {
+      if (fs.access_flags().is_public()) ++num_fields;
     }
   } else {
-    num_fields = fields_len / instanceKlass::next_offset;
+    num_fields = k->java_fields_count();
 
     if (k() == SystemDictionary::Throwable_klass()) {
       num_fields--;
@@ -1633,16 +1633,15 @@ JVM_ENTRY(jobjectArray, JVM_GetClassDeclaredFields(JNIEnv *env, jclass ofClass,
 
   int out_idx = 0;
   fieldDescriptor fd;
-  for (int i = 0; i < fields_len; i += instanceKlass::next_offset) {
+  for (JavaFieldStream fs(k); !fs.done(); fs.next()) {
     if (skip_backtrace) {
       // 4496456 skip java.lang.Throwable.backtrace
-      int offset = k->offset_from_fields(i);
+      int offset = fs.offset();
       if (offset == java_lang_Throwable::get_backtrace_offset()) continue;
     }
 
-    int mods = fields->ushort_at(i + instanceKlass::access_flags_offset) & JVM_RECOGNIZED_FIELD_MODIFIERS;
-    if (!publicOnly || (mods & JVM_ACC_PUBLIC)) {
-      fd.initialize(k(), i);
+    if (!publicOnly || fs.access_flags().is_public()) {
+      fd.initialize(k(), fs.index());
       oop field = Reflection::new_field(&fd, UseNewReflection, CHECK_NULL);
       result->obj_at_put(out_idx, field);
       ++out_idx;
@@ -2130,7 +2129,7 @@ JVM_QUICK_ENTRY(jint, JVM_GetClassFieldsCount(JNIEnv *env, jclass cls))
   k = JvmtiThreadState::class_to_verify_considering_redefinition(k, thread);
   if (!Klass::cast(k)->oop_is_instance())
     return 0;
-  return instanceKlass::cast(k)->fields()->length() / instanceKlass::next_offset;
+  return instanceKlass::cast(k)->java_fields_count();
 JVM_END
 
 
@@ -2226,8 +2225,7 @@ JVM_QUICK_ENTRY(jint, JVM_GetFieldIxModifiers(JNIEnv *env, jclass cls, int field
   JVMWrapper("JVM_GetFieldIxModifiers");
   klassOop k = java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(cls));
   k = JvmtiThreadState::class_to_verify_considering_redefinition(k, thread);
-  typeArrayOop fields = instanceKlass::cast(k)->fields();
-  return fields->ushort_at(field_index * instanceKlass::next_offset + instanceKlass::access_flags_offset) & JVM_RECOGNIZED_FIELD_MODIFIERS;
+  return instanceKlass::cast(k)->field_access_flags(field_index) & JVM_RECOGNIZED_FIELD_MODIFIERS;
 JVM_END
 
 
@@ -2410,7 +2408,7 @@ JVM_ENTRY(const char*, JVM_GetCPMethodClassNameUTF(JNIEnv *env, jclass cls, jint
 JVM_END
 
 
-JVM_QUICK_ENTRY(jint, JVM_GetCPFieldModifiers(JNIEnv *env, jclass cls, int cp_index, jclass called_cls))
+JVM_ENTRY(jint, JVM_GetCPFieldModifiers(JNIEnv *env, jclass cls, int cp_index, jclass called_cls))
   JVMWrapper("JVM_GetCPFieldModifiers");
   klassOop k = java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(cls));
   klassOop k_called = java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(called_cls));
@@ -2422,12 +2420,9 @@ JVM_QUICK_ENTRY(jint, JVM_GetCPFieldModifiers(JNIEnv *env, jclass cls, int cp_in
     case JVM_CONSTANT_Fieldref: {
       Symbol* name      = cp->uncached_name_ref_at(cp_index);
       Symbol* signature = cp->uncached_signature_ref_at(cp_index);
-      typeArrayOop fields = instanceKlass::cast(k_called)->fields();
-      int fields_count = fields->length();
-      for (int i = 0; i < fields_count; i += instanceKlass::next_offset) {
-        if (cp_called->symbol_at(fields->ushort_at(i + instanceKlass::name_index_offset)) == name &&
-            cp_called->symbol_at(fields->ushort_at(i + instanceKlass::signature_index_offset)) == signature) {
-          return fields->ushort_at(i + instanceKlass::access_flags_offset) & JVM_RECOGNIZED_FIELD_MODIFIERS;
+      for (JavaFieldStream fs(k_called); !fs.done(); fs.next()) {
+        if (fs.name() == name && fs.signature() == signature) {
+          return fs.access_flags().as_short() & JVM_RECOGNIZED_FIELD_MODIFIERS;
         }
       }
       return -1;
@@ -4031,249 +4026,6 @@ JVM_END
 #endif
 
 
-//---------------------------------------------------------------------------
-//
-// Support for old native code-based reflection (pre-JDK 1.4)
-// Disabled by default in the product build.
-//
-// See reflection.hpp for information on SUPPORT_OLD_REFLECTION
-//
-//---------------------------------------------------------------------------
-
-#ifdef SUPPORT_OLD_REFLECTION
-
-JVM_ENTRY(jobjectArray, JVM_GetClassFields(JNIEnv *env, jclass cls, jint which))
-  JVMWrapper("JVM_GetClassFields");
-  JvmtiVMObjectAllocEventCollector oam;
-  oop mirror = JNIHandles::resolve_non_null(cls);
-  objArrayOop result = Reflection::reflect_fields(mirror, which, CHECK_NULL);
-  return (jobjectArray) JNIHandles::make_local(env, result);
-JVM_END
-
-
-JVM_ENTRY(jobjectArray, JVM_GetClassMethods(JNIEnv *env, jclass cls, jint which))
-  JVMWrapper("JVM_GetClassMethods");
-  JvmtiVMObjectAllocEventCollector oam;
-  oop mirror = JNIHandles::resolve_non_null(cls);
-  objArrayOop result = Reflection::reflect_methods(mirror, which, CHECK_NULL);
-  //%note jvm_r4
-  return (jobjectArray) JNIHandles::make_local(env, result);
-JVM_END
-
-
-JVM_ENTRY(jobjectArray, JVM_GetClassConstructors(JNIEnv *env, jclass cls, jint which))
-  JVMWrapper("JVM_GetClassConstructors");
-  JvmtiVMObjectAllocEventCollector oam;
-  oop mirror = JNIHandles::resolve_non_null(cls);
-  objArrayOop result = Reflection::reflect_constructors(mirror, which, CHECK_NULL);
-  //%note jvm_r4
-  return (jobjectArray) JNIHandles::make_local(env, result);
-JVM_END
-
-
-JVM_ENTRY(jobject, JVM_GetClassField(JNIEnv *env, jclass cls, jstring name, jint which))
-  JVMWrapper("JVM_GetClassField");
-  JvmtiVMObjectAllocEventCollector oam;
-  if (name == NULL) return NULL;
-  Handle str (THREAD, JNIHandles::resolve_non_null(name));
-
-  const char* cstr = java_lang_String::as_utf8_string(str());
-  TempNewSymbol field_name = SymbolTable::probe(cstr, (int)strlen(cstr));
-  if (field_name == NULL) {
-    THROW_0(vmSymbols::java_lang_NoSuchFieldException());
-  }
-
-  oop mirror = JNIHandles::resolve_non_null(cls);
-  oop result = Reflection::reflect_field(mirror, field_name, which, CHECK_NULL);
-  if (result == NULL) {
-    THROW_0(vmSymbols::java_lang_NoSuchFieldException());
-  }
-  return JNIHandles::make_local(env, result);
-JVM_END
-
-
-JVM_ENTRY(jobject, JVM_GetClassMethod(JNIEnv *env, jclass cls, jstring name, jobjectArray types, jint which))
-  JVMWrapper("JVM_GetClassMethod");
-  JvmtiVMObjectAllocEventCollector oam;
-  if (name == NULL) {
-    THROW_0(vmSymbols::java_lang_NullPointerException());
-  }
-  Handle str (THREAD, JNIHandles::resolve_non_null(name));
-
-  const char* cstr = java_lang_String::as_utf8_string(str());
-  TempNewSymbol method_name = SymbolTable::probe(cstr, (int)strlen(cstr));
-  if (method_name == NULL) {
-    THROW_0(vmSymbols::java_lang_NoSuchMethodException());
-  }
-
-  oop mirror = JNIHandles::resolve_non_null(cls);
-  objArrayHandle tarray (THREAD, objArrayOop(JNIHandles::resolve(types)));
-  oop result = Reflection::reflect_method(mirror, method_name, tarray,
-                                          which, CHECK_NULL);
-  if (result == NULL) {
-    THROW_0(vmSymbols::java_lang_NoSuchMethodException());
-  }
-  return JNIHandles::make_local(env, result);
-JVM_END
-
-
-JVM_ENTRY(jobject, JVM_GetClassConstructor(JNIEnv *env, jclass cls, jobjectArray types, jint which))
-  JVMWrapper("JVM_GetClassConstructor");
-  JvmtiVMObjectAllocEventCollector oam;
-  oop mirror = JNIHandles::resolve_non_null(cls);
-  objArrayHandle tarray (THREAD, objArrayOop(JNIHandles::resolve(types)));
-  oop result = Reflection::reflect_constructor(mirror, tarray, which, CHECK_NULL);
-  if (result == NULL) {
-    THROW_0(vmSymbols::java_lang_NoSuchMethodException());
-  }
-  return (jobject) JNIHandles::make_local(env, result);
-JVM_END
-
-
-// Instantiation ///////////////////////////////////////////////////////////////////////////////
-
-JVM_ENTRY(jobject, JVM_NewInstance(JNIEnv *env, jclass cls))
-  JVMWrapper("JVM_NewInstance");
-  Handle mirror(THREAD, JNIHandles::resolve_non_null(cls));
-
-  methodOop resolved_constructor = java_lang_Class::resolved_constructor(mirror());
-  if (resolved_constructor == NULL) {
-    klassOop k = java_lang_Class::as_klassOop(mirror());
-    // The java.lang.Class object caches a resolved constructor if all the checks
-    // below were done successfully and a constructor was found.
-
-    // Do class based checks
-    if (java_lang_Class::is_primitive(mirror())) {
-      const char* msg = "";
-      if      (mirror == Universe::bool_mirror())   msg = "java/lang/Boolean";
-      else if (mirror == Universe::char_mirror())   msg = "java/lang/Character";
-      else if (mirror == Universe::float_mirror())  msg = "java/lang/Float";
-      else if (mirror == Universe::double_mirror()) msg = "java/lang/Double";
-      else if (mirror == Universe::byte_mirror())   msg = "java/lang/Byte";
-      else if (mirror == Universe::short_mirror())  msg = "java/lang/Short";
-      else if (mirror == Universe::int_mirror())    msg = "java/lang/Integer";
-      else if (mirror == Universe::long_mirror())   msg = "java/lang/Long";
-      THROW_MSG_0(vmSymbols::java_lang_NullPointerException(), msg);
-    }
-
-    // Check whether we are allowed to instantiate this class
-    Klass::cast(k)->check_valid_for_instantiation(false, CHECK_NULL); // Array classes get caught here
-    instanceKlassHandle klass(THREAD, k);
-    // Make sure class is initialized (also so all methods are rewritten)
-    klass->initialize(CHECK_NULL);
-
-    // Lookup default constructor
-    resolved_constructor = klass->find_method(vmSymbols::object_initializer_name(), vmSymbols::void_method_signature());
-    if (resolved_constructor == NULL) {
-      ResourceMark rm(THREAD);
-      THROW_MSG_0(vmSymbols::java_lang_InstantiationException(), klass->external_name());
-    }
-
-    // Cache result in java.lang.Class object. Does not have to be MT safe.
-    java_lang_Class::set_resolved_constructor(mirror(), resolved_constructor);
-  }
-
-  assert(resolved_constructor != NULL, "sanity check");
-  methodHandle constructor = methodHandle(THREAD, resolved_constructor);
-
-  // We have an initialized instanceKlass with a default constructor
-  instanceKlassHandle klass(THREAD, java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(cls)));
-  assert(klass->is_initialized() || klass->is_being_initialized(), "sanity check");
-
-  // Do security check
-  klassOop caller_klass = NULL;
-  if (UsePrivilegedStack) {
-    caller_klass = thread->security_get_caller_class(2);
-
-    if (!Reflection::verify_class_access(caller_klass, klass(), false) ||
-        !Reflection::verify_field_access(caller_klass,
-                                         klass(),
-                                         klass(),
-                                         constructor->access_flags(),
-                                         false,
-                                         true)) {
-      ResourceMark rm(THREAD);
-      THROW_MSG_0(vmSymbols::java_lang_IllegalAccessException(), klass->external_name());
-    }
-  }
-
-  // Allocate object and call constructor
-  Handle receiver = klass->allocate_instance_handle(CHECK_NULL);
-  JavaCalls::call_default_constructor(thread, constructor, receiver, CHECK_NULL);
-
-  jobject res = JNIHandles::make_local(env, receiver());
-  if (JvmtiExport::should_post_vm_object_alloc()) {
-    JvmtiExport::post_vm_object_alloc(JavaThread::current(), receiver());
-  }
-  return res;
-JVM_END
-
-
-// Field ////////////////////////////////////////////////////////////////////////////////////////////
-
-JVM_ENTRY(jobject, JVM_GetField(JNIEnv *env, jobject field, jobject obj))
-  JVMWrapper("JVM_GetField");
-  JvmtiVMObjectAllocEventCollector oam;
-  Handle field_mirror(thread, JNIHandles::resolve(field));
-  Handle receiver    (thread, JNIHandles::resolve(obj));
-  fieldDescriptor fd;
-  Reflection::resolve_field(field_mirror, receiver, &fd, false, CHECK_NULL);
-  jvalue value;
-  BasicType type = Reflection::field_get(&value, &fd, receiver);
-  oop box = Reflection::box(&value, type, CHECK_NULL);
-  return JNIHandles::make_local(env, box);
-JVM_END
-
-
-JVM_ENTRY(jvalue, JVM_GetPrimitiveField(JNIEnv *env, jobject field, jobject obj, unsigned char wCode))
-  JVMWrapper("JVM_GetPrimitiveField");
-  Handle field_mirror(thread, JNIHandles::resolve(field));
-  Handle receiver    (thread, JNIHandles::resolve(obj));
-  fieldDescriptor fd;
-  jvalue value;
-  value.j = 0;
-  Reflection::resolve_field(field_mirror, receiver, &fd, false, CHECK_(value));
-  BasicType type = Reflection::field_get(&value, &fd, receiver);
-  BasicType wide_type = (BasicType) wCode;
-  if (type != wide_type) {
-    Reflection::widen(&value, type, wide_type, CHECK_(value));
-  }
-  return value;
-JVM_END // should really be JVM_END, but that doesn't work for union types!
-
-
-JVM_ENTRY(void, JVM_SetField(JNIEnv *env, jobject field, jobject obj, jobject val))
-  JVMWrapper("JVM_SetField");
-  Handle field_mirror(thread, JNIHandles::resolve(field));
-  Handle receiver    (thread, JNIHandles::resolve(obj));
-  oop box = JNIHandles::resolve(val);
-  fieldDescriptor fd;
-  Reflection::resolve_field(field_mirror, receiver, &fd, true, CHECK);
-  BasicType field_type = fd.field_type();
-  jvalue value;
-  BasicType value_type;
-  if (field_type == T_OBJECT || field_type == T_ARRAY) {
-    // Make sure we do no unbox e.g. java/lang/Integer instances when storing into an object array
-    value_type = Reflection::unbox_for_regular_object(box, &value);
-    Reflection::field_set(&value, &fd, receiver, field_type, CHECK);
-  } else {
-    value_type = Reflection::unbox_for_primitive(box, &value, CHECK);
-    Reflection::field_set(&value, &fd, receiver, value_type, CHECK);
-  }
-JVM_END
-
-
-JVM_ENTRY(void, JVM_SetPrimitiveField(JNIEnv *env, jobject field, jobject obj, jvalue v, unsigned char vCode))
-  JVMWrapper("JVM_SetPrimitiveField");
-  Handle field_mirror(thread, JNIHandles::resolve(field));
-  Handle receiver    (thread, JNIHandles::resolve(obj));
-  fieldDescriptor fd;
-  Reflection::resolve_field(field_mirror, receiver, &fd, true, CHECK);
-  BasicType value_type = (BasicType) vCode;
-  Reflection::field_set(&v, &fd, receiver, value_type, CHECK);
-JVM_END
-
-
 // Method ///////////////////////////////////////////////////////////////////////////////////////////
 
 JVM_ENTRY(jobject, JVM_InvokeMethod(JNIEnv *env, jobject method, jobject obj, jobjectArray args0))
@@ -4313,8 +4065,6 @@ JVM_ENTRY(jobject, JVM_NewInstanceFromConstructor(JNIEnv *env, jobject c, jobjec
   return res;
 JVM_END
 
-#endif /* SUPPORT_OLD_REFLECTION */
-
 // Atomic ///////////////////////////////////////////////////////////////////////////////////////////
 
 JVM_LEAF(jboolean, JVM_SupportsCX8())
diff --git a/hotspot/src/share/vm/prims/jvm.h b/hotspot/src/share/vm/prims/jvm.h
index cc78453..70d1649 100644
--- a/hotspot/src/share/vm/prims/jvm.h
+++ b/hotspot/src/share/vm/prims/jvm.h
@@ -26,7 +26,6 @@
 #define SHARE_VM_PRIMS_JVM_H
 
 #include "prims/jni.h"
-#include "runtime/reflectionCompat.hpp"
 #ifdef TARGET_OS_FAMILY_linux
 # include "jvm_linux.h"
 #endif
@@ -36,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "jvm_windows.h"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "jvm_bsd.h"
+#endif
 
 #ifndef _JAVASOFT_JVM_H_
 #define _JAVASOFT_JVM_H_
@@ -43,8 +45,7 @@
 // HotSpot integration note:
 //
 // This file and jvm.h used with the JDK are identical,
-// except for the three includes removed below and the
-// SUPPORT_OLD_REFLECTION sections cut out of the JDK's jvm.h.
+// except for the three includes removed below
 
 // #include <sys/stat.h>
 // #include "jni.h"
@@ -443,14 +444,6 @@ JVM_DefineClassWithSourceCond(JNIEnv *env, const char *name,
                               jsize len, jobject pd, const char *source,
                               jboolean verify);
 
-/* Define a class with a source (MLVM) */
-JNIEXPORT jclass JNICALL
-JVM_DefineClassWithCP(JNIEnv *env, const char *name, jobject loader,
-                      const jbyte *buf, jsize len, jobject pd,
-                      const char *source,
-                      // same args as JVM_DefineClassWithSource to this point
-                      jobjectArray constants);
-
 /*
  * Append a path to the boot class path
  */
@@ -1448,65 +1441,6 @@ JVM_RawMonitorEnter(void *mon);
 JNIEXPORT void JNICALL
 JVM_RawMonitorExit(void *mon);
 
-
-#ifdef SUPPORT_OLD_REFLECTION
-
-/*
- * Support for old native code-based (pre-JDK 1.4) reflection implementation.
- * Disabled by default in the product build.
- *
- * See reflection.hpp for information on SUPPORT_OLD_REFLECTION
- */
-
-/*
- * reflecting fields and methods.
- * which: 0 --- MEMBER_PUBLIC
- *        1 --- MEMBER_DECLARED
- * NOTE: absent in product build by default
- */
-
-JNIEXPORT jobjectArray JNICALL
-JVM_GetClassFields(JNIEnv *env, jclass cls, jint which);
-
-JNIEXPORT jobjectArray JNICALL
-JVM_GetClassMethods(JNIEnv *env, jclass cls, jint which);
-
-JNIEXPORT jobjectArray JNICALL
-JVM_GetClassConstructors(JNIEnv *env, jclass cls, jint which);
-
-JNIEXPORT jobject JNICALL
-JVM_GetClassField(JNIEnv *env, jclass cls, jstring name, jint which);
-
-JNIEXPORT jobject JNICALL
-JVM_GetClassMethod(JNIEnv *env, jclass cls, jstring name, jobjectArray types,
-                   jint which);
-JNIEXPORT jobject JNICALL
-JVM_GetClassConstructor(JNIEnv *env, jclass cls, jobjectArray types,
-                        jint which);
-
-/*
- * Implements Class.newInstance
- */
-JNIEXPORT jobject JNICALL
-JVM_NewInstance(JNIEnv *env, jclass cls);
-
-/*
- * java.lang.reflect.Field
- */
-JNIEXPORT jobject JNICALL
-JVM_GetField(JNIEnv *env, jobject field, jobject obj);
-
-JNIEXPORT jvalue JNICALL
-JVM_GetPrimitiveField(JNIEnv *env, jobject field, jobject obj,
-                      unsigned char wCode);
-
-JNIEXPORT void JNICALL
-JVM_SetField(JNIEnv *env, jobject field, jobject obj, jobject val);
-
-JNIEXPORT void JNICALL
-JVM_SetPrimitiveField(JNIEnv *env, jobject field, jobject obj, jvalue v,
-                      unsigned char vCode);
-
 /*
  * java.lang.reflect.Method
  */
@@ -1519,8 +1453,6 @@ JVM_InvokeMethod(JNIEnv *env, jobject method, jobject obj, jobjectArray args0);
 JNIEXPORT jobject JNICALL
 JVM_NewInstanceFromConstructor(JNIEnv *env, jobject c, jobjectArray args0);
 
-#endif /* SUPPORT_OLD_REFLECTION */
-
 /*
  * java.lang.management support
  */
@@ -1656,7 +1588,8 @@ typedef struct {
      */
     unsigned int thread_park_blocker : 1;
     unsigned int post_vm_init_hook_enabled : 1;
-    unsigned int : 30;
+    unsigned int pending_list_uses_discovered_field : 1;
+    unsigned int : 29;
     unsigned int : 32;
     unsigned int : 32;
 } jdk_version_info;
diff --git a/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp b/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
index d12d69c..35ae707 100644
--- a/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
+++ b/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
@@ -25,6 +25,7 @@
 #include "precompiled.hpp"
 #include "classfile/symbolTable.hpp"
 #include "interpreter/bytecodeStream.hpp"
+#include "oops/fieldStreams.hpp"
 #include "prims/jvmtiClassFileReconstituter.hpp"
 #include "runtime/signature.hpp"
 #ifdef TARGET_ARCH_x86
@@ -52,25 +53,22 @@
 // JVMSpec|     field_info fields[fields_count];
 void JvmtiClassFileReconstituter::write_field_infos() {
   HandleMark hm(thread());
-  typeArrayHandle fields(thread(), ikh()->fields());
-  int fields_length = fields->length();
-  int num_fields = fields_length / instanceKlass::next_offset;
   objArrayHandle fields_anno(thread(), ikh()->fields_annotations());
 
-  write_u2(num_fields);
-  for (int index = 0; index < fields_length; index += instanceKlass::next_offset) {
-    AccessFlags access_flags;
-    int flags = fields->ushort_at(index + instanceKlass::access_flags_offset);
-    access_flags.set_flags(flags);
-    int name_index = fields->ushort_at(index + instanceKlass::name_index_offset);
-    int signature_index = fields->ushort_at(index + instanceKlass::signature_index_offset);
-    int initial_value_index = fields->ushort_at(index + instanceKlass::initval_index_offset);
+  // Compute the real number of Java fields
+  int java_fields = ikh()->java_fields_count();
+
+  write_u2(java_fields);
+  for (JavaFieldStream fs(ikh()); !fs.done(); fs.next()) {
+    AccessFlags access_flags = fs.access_flags();
+    int name_index = fs.name_index();
+    int signature_index = fs.signature_index();
+    int initial_value_index = fs.initval_index();
     guarantee(name_index != 0 && signature_index != 0, "bad constant pool index for field");
-    int offset = ikh()->offset_from_fields( index );
-    int generic_signature_index =
-                        fields->ushort_at(index + instanceKlass::generic_signature_offset);
+    // int offset = ikh()->field_offset( index );
+    int generic_signature_index = fs.generic_signature_index();
     typeArrayHandle anno(thread(), fields_anno.not_null() ?
-                                 (typeArrayOop)(fields_anno->obj_at(index / instanceKlass::next_offset)) :
+                                 (typeArrayOop)(fields_anno->obj_at(fs.index())) :
                                  (typeArrayOop)NULL);
 
     // JVMSpec|   field_info {
@@ -81,7 +79,7 @@ void JvmtiClassFileReconstituter::write_field_infos() {
     // JVMSpec|         attribute_info attributes[attributes_count];
     // JVMSpec|   }
 
-    write_u2(flags & JVM_RECOGNIZED_FIELD_MODIFIERS);
+    write_u2(access_flags.as_int() & JVM_RECOGNIZED_FIELD_MODIFIERS);
     write_u2(name_index);
     write_u2(signature_index);
     int attr_count = 0;
diff --git a/hotspot/src/share/vm/prims/jvmtiEnv.cpp b/hotspot/src/share/vm/prims/jvmtiEnv.cpp
index 61a8a23..652be9a 100644
--- a/hotspot/src/share/vm/prims/jvmtiEnv.cpp
+++ b/hotspot/src/share/vm/prims/jvmtiEnv.cpp
@@ -68,6 +68,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 
 
@@ -2044,7 +2047,6 @@ JvmtiEnv::SetFieldAccessWatch(fieldDescriptor* fdesc_ptr) {
   // make sure we haven't set this watch before
   if (fdesc_ptr->is_field_access_watched()) return JVMTI_ERROR_DUPLICATE;
   fdesc_ptr->set_is_field_access_watched(true);
-  update_klass_field_access_flag(fdesc_ptr);
 
   JvmtiEventController::change_field_watch(JVMTI_EVENT_FIELD_ACCESS, true);
 
@@ -2057,7 +2059,6 @@ JvmtiEnv::ClearFieldAccessWatch(fieldDescriptor* fdesc_ptr) {
   // make sure we have a watch to clear
   if (!fdesc_ptr->is_field_access_watched()) return JVMTI_ERROR_NOT_FOUND;
   fdesc_ptr->set_is_field_access_watched(false);
-  update_klass_field_access_flag(fdesc_ptr);
 
   JvmtiEventController::change_field_watch(JVMTI_EVENT_FIELD_ACCESS, false);
 
@@ -2070,7 +2071,6 @@ JvmtiEnv::SetFieldModificationWatch(fieldDescriptor* fdesc_ptr) {
   // make sure we haven't set this watch before
   if (fdesc_ptr->is_field_modification_watched()) return JVMTI_ERROR_DUPLICATE;
   fdesc_ptr->set_is_field_modification_watched(true);
-  update_klass_field_access_flag(fdesc_ptr);
 
   JvmtiEventController::change_field_watch(JVMTI_EVENT_FIELD_MODIFICATION, true);
 
@@ -2083,7 +2083,6 @@ JvmtiEnv::ClearFieldModificationWatch(fieldDescriptor* fdesc_ptr) {
    // make sure we have a watch to clear
   if (!fdesc_ptr->is_field_modification_watched()) return JVMTI_ERROR_NOT_FOUND;
   fdesc_ptr->set_is_field_modification_watched(false);
-  update_klass_field_access_flag(fdesc_ptr);
 
   JvmtiEventController::change_field_watch(JVMTI_EVENT_FIELD_MODIFICATION, false);
 
diff --git a/hotspot/src/share/vm/prims/jvmtiEnvBase.cpp b/hotspot/src/share/vm/prims/jvmtiEnvBase.cpp
index 30903a6..fd42642 100644
--- a/hotspot/src/share/vm/prims/jvmtiEnvBase.cpp
+++ b/hotspot/src/share/vm/prims/jvmtiEnvBase.cpp
@@ -565,15 +565,6 @@ JvmtiEnvBase::get_JavaThread(jthread jni_thread) {
 }
 
 
-// update the access_flags for the field in the klass
-void
-JvmtiEnvBase::update_klass_field_access_flag(fieldDescriptor *fd) {
-  instanceKlass* ik = instanceKlass::cast(fd->field_holder());
-  typeArrayOop fields = ik->fields();
-  fields->ushort_at_put(fd->index(), (jushort)fd->access_flags().as_short());
-}
-
-
 // return the vframe on the specified thread and depth, NULL if no such frame
 vframe*
 JvmtiEnvBase::vframeFor(JavaThread* java_thread, jint depth) {
diff --git a/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp b/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp
index 0ad1b92..ba03746 100644
--- a/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp
+++ b/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp
@@ -267,8 +267,6 @@ class JvmtiEnvBase : public CHeapObj {
   // convert to a jni jclass from a non-null klassOop
   jclass get_jni_class_non_null(klassOop k);
 
-  void update_klass_field_access_flag(fieldDescriptor *fd);
-
   jint count_locked_objects(JavaThread *java_thread, Handle hobj);
   jvmtiError get_locked_objects_in_frame(JavaThread *calling_thread,
                                    JavaThread* java_thread,
diff --git a/hotspot/src/share/vm/prims/jvmtiExport.hpp b/hotspot/src/share/vm/prims/jvmtiExport.hpp
index 07702b1..1bfefa0 100644
--- a/hotspot/src/share/vm/prims/jvmtiExport.hpp
+++ b/hotspot/src/share/vm/prims/jvmtiExport.hpp
@@ -66,6 +66,7 @@ class AttachOperation;
 // This class contains the JVMTI interface for the rest of hotspot.
 //
 class JvmtiExport : public AllStatic {
+  friend class VMStructs;
  private:
   static int         _field_access_count;
   static int         _field_modification_count;
diff --git a/hotspot/src/share/vm/prims/jvmtiImpl.cpp b/hotspot/src/share/vm/prims/jvmtiImpl.cpp
index f673e92..e0d809d 100644
--- a/hotspot/src/share/vm/prims/jvmtiImpl.cpp
+++ b/hotspot/src/share/vm/prims/jvmtiImpl.cpp
@@ -54,6 +54,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 //
 // class JvmtiAgentThread
diff --git a/hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp b/hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp
index 62f8ba8..10a478b 100644
--- a/hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp
+++ b/hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp
@@ -30,6 +30,7 @@
 #include "interpreter/rewriter.hpp"
 #include "memory/gcLocker.hpp"
 #include "memory/universe.inline.hpp"
+#include "oops/fieldStreams.hpp"
 #include "oops/klassVtable.hpp"
 #include "prims/jvmtiImpl.hpp"
 #include "prims/jvmtiRedefineClasses.hpp"
@@ -551,41 +552,35 @@ jvmtiError VM_RedefineClasses::compare_and_normalize_class_versions(
 
   // Check if the number, names, types and order of fields declared in these classes
   // are the same.
-  typeArrayOop k_old_fields = the_class->fields();
-  typeArrayOop k_new_fields = scratch_class->fields();
-  int n_fields = k_old_fields->length();
-  if (n_fields != k_new_fields->length()) {
-    return JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED;
-  }
-
-  for (i = 0; i < n_fields; i += instanceKlass::next_offset) {
+  JavaFieldStream old_fs(the_class);
+  JavaFieldStream new_fs(scratch_class);
+  for (; !old_fs.done() && !new_fs.done(); old_fs.next(), new_fs.next()) {
     // access
-    old_flags = k_old_fields->ushort_at(i + instanceKlass::access_flags_offset);
-    new_flags = k_new_fields->ushort_at(i + instanceKlass::access_flags_offset);
+    old_flags = old_fs.access_flags().as_short();
+    new_flags = new_fs.access_flags().as_short();
     if ((old_flags ^ new_flags) & JVM_RECOGNIZED_FIELD_MODIFIERS) {
       return JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED;
     }
     // offset
-    if (k_old_fields->short_at(i + instanceKlass::low_offset) !=
-        k_new_fields->short_at(i + instanceKlass::low_offset) ||
-        k_old_fields->short_at(i + instanceKlass::high_offset) !=
-        k_new_fields->short_at(i + instanceKlass::high_offset)) {
+    if (old_fs.offset() != new_fs.offset()) {
       return JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED;
     }
     // name and signature
-    jshort name_index = k_old_fields->short_at(i + instanceKlass::name_index_offset);
-    jshort sig_index = k_old_fields->short_at(i +instanceKlass::signature_index_offset);
-    Symbol* name_sym1 = the_class->constants()->symbol_at(name_index);
-    Symbol* sig_sym1 = the_class->constants()->symbol_at(sig_index);
-    name_index = k_new_fields->short_at(i + instanceKlass::name_index_offset);
-    sig_index = k_new_fields->short_at(i + instanceKlass::signature_index_offset);
-    Symbol* name_sym2 = scratch_class->constants()->symbol_at(name_index);
-    Symbol* sig_sym2 = scratch_class->constants()->symbol_at(sig_index);
+    Symbol* name_sym1 = the_class->constants()->symbol_at(old_fs.name_index());
+    Symbol* sig_sym1 = the_class->constants()->symbol_at(old_fs.signature_index());
+    Symbol* name_sym2 = scratch_class->constants()->symbol_at(new_fs.name_index());
+    Symbol* sig_sym2 = scratch_class->constants()->symbol_at(new_fs.signature_index());
     if (name_sym1 != name_sym2 || sig_sym1 != sig_sym2) {
       return JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED;
     }
   }
 
+  // If both streams aren't done then we have a differing number of
+  // fields.
+  if (!old_fs.done() || !new_fs.done()) {
+    return JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED;
+  }
+
   // Do a parallel walk through the old and new methods. Detect
   // cases where they match (exist in both), have been added in
   // the new methods, or have been deleted (exist only in the
@@ -2369,38 +2364,34 @@ void VM_RedefineClasses::set_new_constant_pool(
   int i;  // for portability
 
   // update each field in klass to use new constant pool indices as needed
-  typeArrayHandle fields(THREAD, scratch_class->fields());
-  int n_fields = fields->length();
-  for (i = 0; i < n_fields; i += instanceKlass::next_offset) {
-    jshort cur_index = fields->short_at(i + instanceKlass::name_index_offset);
+  for (JavaFieldStream fs(scratch_class); !fs.done(); fs.next()) {
+    jshort cur_index = fs.name_index();
     jshort new_index = find_new_index(cur_index);
     if (new_index != 0) {
       RC_TRACE_WITH_THREAD(0x00080000, THREAD,
         ("field-name_index change: %d to %d", cur_index, new_index));
-      fields->short_at_put(i + instanceKlass::name_index_offset, new_index);
+      fs.set_name_index(new_index);
     }
-    cur_index = fields->short_at(i + instanceKlass::signature_index_offset);
+    cur_index = fs.signature_index();
     new_index = find_new_index(cur_index);
     if (new_index != 0) {
       RC_TRACE_WITH_THREAD(0x00080000, THREAD,
         ("field-signature_index change: %d to %d", cur_index, new_index));
-      fields->short_at_put(i + instanceKlass::signature_index_offset,
-        new_index);
+      fs.set_signature_index(new_index);
     }
-    cur_index = fields->short_at(i + instanceKlass::initval_index_offset);
+    cur_index = fs.initval_index();
     new_index = find_new_index(cur_index);
     if (new_index != 0) {
       RC_TRACE_WITH_THREAD(0x00080000, THREAD,
         ("field-initval_index change: %d to %d", cur_index, new_index));
-      fields->short_at_put(i + instanceKlass::initval_index_offset, new_index);
+      fs.set_initval_index(new_index);
     }
-    cur_index = fields->short_at(i + instanceKlass::generic_signature_offset);
+    cur_index = fs.generic_signature_index();
     new_index = find_new_index(cur_index);
     if (new_index != 0) {
       RC_TRACE_WITH_THREAD(0x00080000, THREAD,
         ("field-generic_signature change: %d to %d", cur_index, new_index));
-      fields->short_at_put(i + instanceKlass::generic_signature_offset,
-        new_index);
+      fs.set_generic_signature_index(new_index);
     }
   } // end for each field
 
diff --git a/hotspot/src/share/vm/prims/jvmtiTagMap.cpp b/hotspot/src/share/vm/prims/jvmtiTagMap.cpp
index a7caebe..650db65 100644
--- a/hotspot/src/share/vm/prims/jvmtiTagMap.cpp
+++ b/hotspot/src/share/vm/prims/jvmtiTagMap.cpp
@@ -1647,6 +1647,7 @@ class ObjectMarker : AllStatic {
   // saved headers
   static GrowableArray<oop>* _saved_oop_stack;
   static GrowableArray<markOop>* _saved_mark_stack;
+  static bool _needs_reset;                  // do we need to reset mark bits?
 
  public:
   static void init();                       // initialize
@@ -1654,10 +1655,14 @@ class ObjectMarker : AllStatic {
 
   static inline void mark(oop o);           // mark an object
   static inline bool visited(oop o);        // check if object has been visited
+
+  static inline bool needs_reset()            { return _needs_reset; }
+  static inline void set_needs_reset(bool v)  { _needs_reset = v; }
 };
 
 GrowableArray<oop>* ObjectMarker::_saved_oop_stack = NULL;
 GrowableArray<markOop>* ObjectMarker::_saved_mark_stack = NULL;
+bool ObjectMarker::_needs_reset = true;  // need to reset mark bits by default
 
 // initialize ObjectMarker - prepares for object marking
 void ObjectMarker::init() {
@@ -1680,7 +1685,13 @@ void ObjectMarker::done() {
   // iterate over all objects and restore the mark bits to
   // their initial value
   RestoreMarksClosure blk;
-  Universe::heap()->object_iterate(&blk);
+  if (needs_reset()) {
+    Universe::heap()->object_iterate(&blk);
+  } else {
+    // We don't need to reset mark bits on this call, but reset the
+    // flag to the default for the next call.
+    set_needs_reset(true);
+  }
 
   // When sharing is enabled we need to restore the headers of the objects
   // in the readwrite space too.
@@ -3023,7 +3034,8 @@ inline bool VM_HeapWalkOperation::iterate_over_object(oop o) {
 }
 
 
-// collects all simple (non-stack) roots.
+// Collects all simple (non-stack) roots except for threads;
+// threads are handled in collect_stack_roots() as an optimization.
 // if there's a heap root callback provided then the callback is
 // invoked for each simple root.
 // if an object reference callback is provided then all simple
@@ -3054,16 +3066,7 @@ inline bool VM_HeapWalkOperation::collect_simple_roots() {
     return false;
   }
 
-  // Threads
-  for (JavaThread* thread = Threads::first(); thread != NULL ; thread = thread->next()) {
-    oop threadObj = thread->threadObj();
-    if (threadObj != NULL && !thread->is_exiting() && !thread->is_hidden_from_external_view()) {
-      bool cont = CallbackInvoker::report_simple_root(JVMTI_HEAP_REFERENCE_THREAD, threadObj);
-      if (!cont) {
-        return false;
-      }
-    }
-  }
+  // threads are now handled in collect_stack_roots()
 
   // Other kinds of roots maintained by HotSpot
   // Many of these won't be visible but others (such as instances of important
@@ -3175,13 +3178,20 @@ inline bool VM_HeapWalkOperation::collect_stack_roots(JavaThread* java_thread,
 }
 
 
-// collects all stack roots - for each thread it walks the execution
+// Collects the simple roots for all threads and collects all
+// stack roots - for each thread it walks the execution
 // stack to find all references and local JNI refs.
 inline bool VM_HeapWalkOperation::collect_stack_roots() {
   JNILocalRootsClosure blk;
   for (JavaThread* thread = Threads::first(); thread != NULL ; thread = thread->next()) {
     oop threadObj = thread->threadObj();
     if (threadObj != NULL && !thread->is_exiting() && !thread->is_hidden_from_external_view()) {
+      // Collect the simple root for this thread before we
+      // collect its stack roots
+      if (!CallbackInvoker::report_simple_root(JVMTI_HEAP_REFERENCE_THREAD,
+                                               threadObj)) {
+        return false;
+      }
       if (!collect_stack_roots(thread, &blk)) {
         return false;
       }
@@ -3235,8 +3245,20 @@ void VM_HeapWalkOperation::doit() {
 
   // the heap walk starts with an initial object or the heap roots
   if (initial_object().is_null()) {
-    if (!collect_simple_roots()) return;
+    // If either collect_stack_roots() or collect_simple_roots()
+    // returns false at this point, then there are no mark bits
+    // to reset.
+    ObjectMarker::set_needs_reset(false);
+
+    // Calling collect_stack_roots() before collect_simple_roots()
+    // can result in a big performance boost for an agent that is
+    // focused on analyzing references in the thread stacks.
     if (!collect_stack_roots()) return;
+
+    if (!collect_simple_roots()) return;
+
+    // no early return so enable heap traversal to reset the mark bits
+    ObjectMarker::set_needs_reset(true);
   } else {
     visit_stack()->push(initial_object()());
   }
diff --git a/hotspot/src/share/vm/prims/methodHandleWalk.cpp b/hotspot/src/share/vm/prims/methodHandleWalk.cpp
index 504b900..3f31307 100644
--- a/hotspot/src/share/vm/prims/methodHandleWalk.cpp
+++ b/hotspot/src/share/vm/prims/methodHandleWalk.cpp
@@ -182,10 +182,6 @@ void MethodHandleChain::print(oopDesc* m) {
   HandleMark hm;
   ResourceMark rm;
   Handle mh(m);
-  print(mh);
-}
-
-void MethodHandleChain::print(Handle mh) {
   EXCEPTION_MARK;
   MethodHandleChain mhc(mh, THREAD);
   if (HAS_PENDING_EXCEPTION) {
@@ -222,16 +218,33 @@ void MethodHandleChain::print_impl(TRAPS) {
       if (o != NULL) {
         if (o->is_instance()) {
           tty->print(" instance %s", o->klass()->klass_part()->internal_name());
+          if (java_lang_invoke_CountingMethodHandle::is_instance(o)) {
+            tty->print(" vmcount: %d", java_lang_invoke_CountingMethodHandle::vmcount(o));
+          }
         } else {
           o->print();
         }
       }
+      oop vmt = chain.vmtarget_oop();
+      if (vmt != NULL) {
+        if (vmt->is_method()) {
+          tty->print(" ");
+          methodOop(vmt)->print_short_name(tty);
+        } else if (java_lang_invoke_MethodHandle::is_instance(vmt)) {
+          tty->print(" method handle " INTPTR_FORMAT, vmt);
+        } else {
+          ShouldNotReachHere();
+        }
+      }
     } else if (chain.is_adapter()) {
       tty->print("adapter: arg_slot %d conversion op %s",
                  chain.adapter_arg_slot(),
                  adapter_op_to_string(chain.adapter_conversion_op()));
       switch (chain.adapter_conversion_op()) {
         case java_lang_invoke_AdapterMethodHandle::OP_RETYPE_ONLY:
+          if (java_lang_invoke_CountingMethodHandle::is_instance(chain.method_handle_oop())) {
+            tty->print(" vmcount: %d", java_lang_invoke_CountingMethodHandle::vmcount(chain.method_handle_oop()));
+          }
         case java_lang_invoke_AdapterMethodHandle::OP_RETYPE_RAW:
         case java_lang_invoke_AdapterMethodHandle::OP_CHECK_CAST:
         case java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_PRIM:
@@ -907,7 +920,10 @@ MethodHandleCompiler::MethodHandleCompiler(Handle root, Symbol* name, Symbol* si
     _non_bcp_klasses(THREAD, 5),
     _cur_stack(0),
     _max_stack(0),
-    _rtype(T_ILLEGAL)
+    _rtype(T_ILLEGAL),
+    _selectAlternative_bci(-1),
+    _taken_count(0),
+    _not_taken_count(0)
 {
 
   // Element zero is always the null constant.
@@ -1115,11 +1131,50 @@ void MethodHandleCompiler::emit_bc(Bytecodes::Code op, int index, int args_size)
     _bytecode.push(0);
     break;
 
+  case Bytecodes::_ifeq:
+    assert((unsigned short) index == index, "index does not fit in 16-bit");
+    _bytecode.push(op);
+    _bytecode.push(index >> 8);
+    _bytecode.push(index);
+    break;
+
   default:
     ShouldNotReachHere();
   }
 }
 
+void MethodHandleCompiler::update_branch_dest(int src, int dst) {
+  switch (_bytecode.at(src)) {
+    case Bytecodes::_ifeq:
+      dst -= src; // compute the offset
+      assert((unsigned short) dst == dst, "index does not fit in 16-bit");
+      _bytecode.at_put(src + 1, dst >> 8);
+      _bytecode.at_put(src + 2, dst);
+      break;
+    default:
+      ShouldNotReachHere();
+  }
+}
+
+void MethodHandleCompiler::emit_load(ArgToken arg) {
+  TokenType tt = arg.token_type();
+  BasicType bt = arg.basic_type();
+
+  switch (tt) {
+    case tt_parameter:
+    case tt_temporary:
+      emit_load(bt, arg.index());
+      break;
+    case tt_constant:
+      emit_load_constant(arg);
+      break;
+    case tt_illegal:
+    case tt_void:
+    default:
+      ShouldNotReachHere();
+  }
+}
+
 
 void MethodHandleCompiler::emit_load(BasicType bt, int index) {
   if (index <= 3) {
@@ -1318,6 +1373,29 @@ MethodHandleCompiler::make_conversion(BasicType type, klassOop tk, Bytecodes::Co
 jvalue MethodHandleCompiler::zero_jvalue = { 0 };
 jvalue MethodHandleCompiler::one_jvalue  = { 1 };
 
+// Fetch any values from CountingMethodHandles and capture them for profiles
+bool MethodHandleCompiler::fetch_counts(ArgToken arg1, ArgToken arg2) {
+  int count1 = -1, count2 = -1;
+  if (arg1.token_type() == tt_constant && arg1.basic_type() == T_OBJECT &&
+      java_lang_invoke_CountingMethodHandle::is_instance(arg1.object()())) {
+    count1 = java_lang_invoke_CountingMethodHandle::vmcount(arg1.object()());
+  }
+  if (arg2.token_type() == tt_constant && arg2.basic_type() == T_OBJECT &&
+      java_lang_invoke_CountingMethodHandle::is_instance(arg2.object()())) {
+    count2 = java_lang_invoke_CountingMethodHandle::vmcount(arg2.object()());
+  }
+  int total = count1 + count2;
+  if (count1 != -1 && count2 != -1 && total != 0) {
+    // Normalize the collect counts to the invoke_count
+    tty->print("counts %d %d scaled by %d = ", count2, count1, _invoke_count);
+    if (count1 != 0) _not_taken_count = (int)(_invoke_count * count1 / (double)total);
+    if (count2 != 0) _taken_count = (int)(_invoke_count * count2 / (double)total);
+    tty->print_cr("%d %d", _taken_count, _not_taken_count);
+    return true;
+  }
+  return false;
+}
+
 // Emit bytecodes for the given invoke instruction.
 MethodHandleWalker::ArgToken
 MethodHandleCompiler::make_invoke(methodHandle m, vmIntrinsics::ID iid,
@@ -1367,6 +1445,29 @@ MethodHandleCompiler::make_invoke(methodHandle m, vmIntrinsics::ID iid,
     }
   }
 
+  if (m->intrinsic_id() == vmIntrinsics::_selectAlternative &&
+      fetch_counts(argv[1], argv[2])) {
+    assert(argc == 3, "three arguments");
+    assert(tailcall, "only");
+
+    // do inline bytecodes so we can drop profile data into it,
+    //   0:   iload_0
+    emit_load(argv[0]);
+    //   1:   ifeq    8
+    _selectAlternative_bci = _bytecode.length();
+    emit_bc(Bytecodes::_ifeq, 0); // emit placeholder offset
+    //   4:   aload_1
+    emit_load(argv[1]);
+    //   5:   areturn;
+    emit_bc(Bytecodes::_areturn);
+    //   8:   aload_2
+    update_branch_dest(_selectAlternative_bci, cur_bci());
+    emit_load(argv[2]);
+    //   9:   areturn
+    emit_bc(Bytecodes::_areturn);
+    return ArgToken();  // Dummy return value.
+  }
+
   check_non_bcp_klass(klass, CHECK_(zero));
   if (m->is_method_handle_invoke()) {
     check_non_bcp_klasses(m->method_handle_type(), CHECK_(zero));
@@ -1377,10 +1478,6 @@ MethodHandleCompiler::make_invoke(methodHandle m, vmIntrinsics::ID iid,
   assert(argc == asc.size() + ((op == Bytecodes::_invokestatic || op == Bytecodes::_invokedynamic) ? 0 : 1),
          "argc mismatch");
 
-  // Inline the method.
-  InvocationCounter* ic = m->invocation_counter();
-  ic->set_carry_flag();
-
   for (int i = 0; i < argc; i++) {
     ArgToken arg = argv[i];
     TokenType tt = arg.token_type();
@@ -1686,7 +1783,7 @@ constantPoolHandle MethodHandleCompiler::get_constant_pool(TRAPS) const {
 }
 
 
-methodHandle MethodHandleCompiler::get_method_oop(TRAPS) const {
+methodHandle MethodHandleCompiler::get_method_oop(TRAPS) {
   methodHandle empty;
   // Create a method that holds the generated bytecode.  invokedynamic
   // has no receiver, normal MH calls do.
@@ -1765,6 +1862,7 @@ methodHandle MethodHandleCompiler::get_method_oop(TRAPS) const {
     assert(m->method_data() == NULL, "there should not be an MDO yet");
     m->set_method_data(mdo);
 
+    bool found_selectAlternative = false;
     // Iterate over all profile data and set the count of the counter
     // data entries to the original call site counter.
     for (ProfileData* profile_data = mdo->first_data();
@@ -1774,7 +1872,15 @@ methodHandle MethodHandleCompiler::get_method_oop(TRAPS) const {
         CounterData* counter_data = profile_data->as_CounterData();
         counter_data->set_count(_invoke_count);
       }
+      if (profile_data->is_BranchData() &&
+          profile_data->bci() == _selectAlternative_bci) {
+        BranchData* bd = profile_data->as_BranchData();
+        bd->set_taken(_taken_count);
+        bd->set_not_taken(_not_taken_count);
+        found_selectAlternative = true;
+      }
     }
+    assert(_selectAlternative_bci == -1 || found_selectAlternative, "must have found profile entry");
   }
 
 #ifndef PRODUCT
diff --git a/hotspot/src/share/vm/prims/methodHandleWalk.hpp b/hotspot/src/share/vm/prims/methodHandleWalk.hpp
index 783b55b..8697c0b 100644
--- a/hotspot/src/share/vm/prims/methodHandleWalk.hpp
+++ b/hotspot/src/share/vm/prims/methodHandleWalk.hpp
@@ -74,6 +74,7 @@ public:
     set_method_handle(MethodHandle_vmtarget_oop(), THREAD);
   }
 
+  Handle root()                 { return _root; }
   Handle method_handle()        { return _method_handle; }
   oop    method_handle_oop()    { return _method_handle(); }
   oop    method_type_oop()      { return MethodHandle_type_oop(); }
@@ -110,7 +111,6 @@ public:
   // the signature for each method.  The signatures are printed in
   // slot order to make it easier to understand.
   void print();
-  static void print(Handle mh);
   static void print(oopDesc* mh);
 #endif
 };
@@ -277,6 +277,10 @@ private:
   KlassHandle  _target_klass;
   Thread*      _thread;
 
+  int          _selectAlternative_bci; // These are used for capturing profiles from GWTs
+  int          _taken_count;
+  int          _not_taken_count;
+
   // Values used by the compiler.
   static jvalue zero_jvalue;
   static jvalue one_jvalue;
@@ -372,6 +376,7 @@ private:
 
   unsigned char* bytecode()        const { return _bytecode.adr_at(0); }
   int            bytecode_length() const { return _bytecode.length(); }
+  int            cur_bci()         const { return _bytecode.length(); }
 
   // Fake constant pool.
   int cpool_oop_put(int tag, Handle con) {
@@ -436,6 +441,8 @@ private:
   }
 
   void emit_bc(Bytecodes::Code op, int index = 0, int args_size = -1);
+  void update_branch_dest(int src, int dst);
+  void emit_load(ArgToken arg);
   void emit_load(BasicType bt, int index);
   void emit_store(BasicType bt, int index);
   void emit_load_constant(ArgToken arg);
@@ -455,11 +462,14 @@ private:
   virtual ArgToken make_fetch(BasicType type, klassOop tk, Bytecodes::Code op, const ArgToken& base, const ArgToken& offset, TRAPS);
   virtual ArgToken make_invoke(methodHandle m, vmIntrinsics::ID iid, Bytecodes::Code op, bool tailcall, int argc, ArgToken* argv, TRAPS);
 
+  // Check for profiling information on a GWT and return true if it's found
+  bool fetch_counts(ArgToken a1, ArgToken a2);
+
   // Get a real constant pool.
   constantPoolHandle get_constant_pool(TRAPS) const;
 
   // Get a real methodOop.
-  methodHandle get_method_oop(TRAPS) const;
+  methodHandle get_method_oop(TRAPS);
 
 public:
   MethodHandleCompiler(Handle root, Symbol* name, Symbol* signature, int invoke_count, bool for_invokedynamic, TRAPS);
diff --git a/hotspot/src/share/vm/prims/methodHandles.cpp b/hotspot/src/share/vm/prims/methodHandles.cpp
index 6dc40a3..c5d5c88 100644
--- a/hotspot/src/share/vm/prims/methodHandles.cpp
+++ b/hotspot/src/share/vm/prims/methodHandles.cpp
@@ -158,6 +158,8 @@ const char*        MethodHandles::_entry_names[_EK_LIMIT+1] = {
   "adapter_fold/4/ref",
   "adapter_fold/5/ref",
 
+  "adapter_opt_profiling",
+
   NULL
 };
 
@@ -518,7 +520,7 @@ void MethodHandles::init_MemberName(oop mname_oop, oop target_oop) {
     int slot  = java_lang_reflect_Field::slot(target_oop);  // fd.index()
     int mods  = java_lang_reflect_Field::modifiers(target_oop);
     klassOop k = java_lang_Class::as_klassOop(clazz);
-    int offset = instanceKlass::cast(k)->offset_from_fields(slot);
+    int offset = instanceKlass::cast(k)->field_offset(slot);
     init_MemberName(mname_oop, k, accessFlags_from(mods), offset);
   } else {
     KlassHandle receiver_limit; int decode_flags = 0;
@@ -1016,7 +1018,7 @@ oop MethodHandles::encode_target(Handle mh, int format, TRAPS) {
         && CompilationPolicy::can_be_compiled(m)) {
       // Force compilation
       CompileBroker::compile_method(m, InvocationEntryBci,
-                                    CompLevel_initial_compile,
+                                    CompilationPolicy::policy()->initial_compile_level(),
                                     methodHandle(), 0, "MethodHandleNatives.getTarget",
                                     CHECK_NULL);
     }
@@ -1630,8 +1632,6 @@ void MethodHandles::init_DirectMethodHandle(Handle mh, methodHandle m, bool do_d
     THROW(vmSymbols::java_lang_InternalError());
   }
 
-  java_lang_invoke_MethodHandle::init_vmslots(mh());
-
   if (VerifyMethodHandles) {
     // The privileged code which invokes this routine should not make
     // a mistake about types, but it's better to verify.
@@ -1754,7 +1754,6 @@ void MethodHandles::init_BoundMethodHandle_with_receiver(Handle mh,
   if (m.is_null())      { THROW(vmSymbols::java_lang_InternalError()); }
   if (m->is_abstract()) { THROW(vmSymbols::java_lang_AbstractMethodError()); }
 
-  java_lang_invoke_MethodHandle::init_vmslots(mh());
   int vmargslot = m->size_of_parameters() - 1;
   assert(java_lang_invoke_BoundMethodHandle::vmargslot(mh()) == vmargslot, "");
 
@@ -1860,7 +1859,6 @@ void MethodHandles::init_BoundMethodHandle(Handle mh, Handle target, int argnum,
     THROW(vmSymbols::java_lang_InternalError());
   }
 
-  java_lang_invoke_MethodHandle::init_vmslots(mh());
   int argslot = java_lang_invoke_BoundMethodHandle::vmargslot(mh());
 
   if (VerifyMethodHandles) {
@@ -2653,6 +2651,11 @@ void MethodHandles::init_AdapterMethodHandle(Handle mh, Handle target, int argnu
   // Finalize the conversion field.  (Note that it is final to Java code.)
   java_lang_invoke_AdapterMethodHandle::set_conversion(mh(), new_conversion);
 
+  if (java_lang_invoke_CountingMethodHandle::is_instance(mh())) {
+    assert(ek_orig == _adapter_retype_only, "only one handled");
+    ek_opt = _adapter_opt_profiling;
+  }
+
   // Done!
   java_lang_invoke_MethodHandle::set_vmentry(mh(), entry(ek_opt));
 
@@ -2679,6 +2682,7 @@ void MethodHandles::ensure_vmlayout_field(Handle target, TRAPS) {
       java_lang_invoke_MethodTypeForm::init_vmlayout(mtform(), cookie);
     }
   }
+  assert(java_lang_invoke_MethodTypeForm::vmslots(mtform()) == argument_slot_count(mtype()), "must agree");
 }
 
 #ifdef ASSERT
@@ -2713,7 +2717,7 @@ static void stress_method_handle_walk_impl(Handle mh, TRAPS) {
         && CompilationPolicy::can_be_compiled(m)) {
       // Force compilation
       CompileBroker::compile_method(m, InvocationEntryBci,
-                                    CompLevel_initial_compile,
+                                    CompilationPolicy::policy()->initial_compile_level(),
                                     methodHandle(), 0, "StressMethodHandleWalk",
                                     CHECK);
     }
@@ -2905,8 +2909,12 @@ JVM_ENTRY(jint, MHN_getConstant(JNIEnv *env, jobject igcls, jint which)) {
     return MethodHandles::stack_move_unit();
   case MethodHandles::GC_CONV_OP_IMPLEMENTED_MASK:
     return MethodHandles::adapter_conversion_ops_supported_mask();
-  case MethodHandles::GC_OP_ROT_ARGS_DOWN_LIMIT_BIAS:
-    return MethodHandles::OP_ROT_ARGS_DOWN_LIMIT_BIAS;
+  case MethodHandles::GC_COUNT_GWT:
+#ifdef COMPILER2
+    return true;
+#else
+    return false;
+#endif
   }
   return 0;
 }
@@ -3070,6 +3078,30 @@ JVM_ENTRY(jint, MHN_getMembers(JNIEnv *env, jobject igcls,
 }
 JVM_END
 
+JVM_ENTRY(void, MHN_setCallSiteTargetNormal(JNIEnv* env, jobject igcls, jobject call_site_jh, jobject target_jh)) {
+  oop call_site = JNIHandles::resolve_non_null(call_site_jh);
+  oop target    = JNIHandles::resolve(target_jh);
+  {
+    // Walk all nmethods depending on this call site.
+    MutexLocker mu(Compile_lock, thread);
+    Universe::flush_dependents_on(call_site, target);
+  }
+  java_lang_invoke_CallSite::set_target(call_site, target);
+}
+JVM_END
+
+JVM_ENTRY(void, MHN_setCallSiteTargetVolatile(JNIEnv* env, jobject igcls, jobject call_site_jh, jobject target_jh)) {
+  oop call_site = JNIHandles::resolve_non_null(call_site_jh);
+  oop target    = JNIHandles::resolve(target_jh);
+  {
+    // Walk all nmethods depending on this call site.
+    MutexLocker mu(Compile_lock, thread);
+    Universe::flush_dependents_on(call_site, target);
+  }
+  java_lang_invoke_CallSite::set_target_volatile(call_site, target);
+}
+JVM_END
+
 methodOop MethodHandles::resolve_raise_exception_method(TRAPS) {
   if (_raise_exception_method != NULL) {
     // no need to do it twice
@@ -3126,12 +3158,15 @@ JVM_END
 
 /// JVM_RegisterMethodHandleMethods
 
+#undef CS  // Solaris builds complain
+
 #define LANG "Ljava/lang/"
 #define JLINV "Ljava/lang/invoke/"
 
 #define OBJ   LANG"Object;"
 #define CLS   LANG"Class;"
 #define STRG  LANG"String;"
+#define CS    JLINV"CallSite;"
 #define MT    JLINV"MethodType;"
 #define MH    JLINV"MethodHandle;"
 #define MEM   JLINV"MemberName;"
@@ -3142,29 +3177,34 @@ JVM_END
 #define CC (char*)  /*cast a literal from (const char*)*/
 #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &f)
 
-// These are the native methods on sun.invoke.MethodHandleNatives.
+// These are the native methods on java.lang.invoke.MethodHandleNatives.
 static JNINativeMethod methods[] = {
   // void init(MemberName self, AccessibleObject ref)
-  {CC"init",                    CC"("AMH""MH"I)V",              FN_PTR(MHN_init_AMH)},
-  {CC"init",                    CC"("BMH""OBJ"I)V",             FN_PTR(MHN_init_BMH)},
-  {CC"init",                    CC"("DMH""OBJ"Z"CLS")V",        FN_PTR(MHN_init_DMH)},
-  {CC"init",                    CC"("MT")V",                    FN_PTR(MHN_init_MT)},
-  {CC"init",                    CC"("MEM""OBJ")V",              FN_PTR(MHN_init_Mem)},
-  {CC"expand",                  CC"("MEM")V",                   FN_PTR(MHN_expand_Mem)},
-  {CC"resolve",                 CC"("MEM""CLS")V",              FN_PTR(MHN_resolve_Mem)},
-  {CC"getTarget",               CC"("MH"I)"OBJ,                 FN_PTR(MHN_getTarget)},
-  {CC"getConstant",             CC"(I)I",                       FN_PTR(MHN_getConstant)},
+  {CC"init",                      CC"("AMH""MH"I)V",                     FN_PTR(MHN_init_AMH)},
+  {CC"init",                      CC"("BMH""OBJ"I)V",                    FN_PTR(MHN_init_BMH)},
+  {CC"init",                      CC"("DMH""OBJ"Z"CLS")V",               FN_PTR(MHN_init_DMH)},
+  {CC"init",                      CC"("MT")V",                           FN_PTR(MHN_init_MT)},
+  {CC"init",                      CC"("MEM""OBJ")V",                     FN_PTR(MHN_init_Mem)},
+  {CC"expand",                    CC"("MEM")V",                          FN_PTR(MHN_expand_Mem)},
+  {CC"resolve",                   CC"("MEM""CLS")V",                     FN_PTR(MHN_resolve_Mem)},
+  {CC"getTarget",                 CC"("MH"I)"OBJ,                        FN_PTR(MHN_getTarget)},
+  {CC"getConstant",               CC"(I)I",                              FN_PTR(MHN_getConstant)},
   //  static native int getNamedCon(int which, Object[] name)
-  {CC"getNamedCon",             CC"(I["OBJ")I",                 FN_PTR(MHN_getNamedCon)},
+  {CC"getNamedCon",               CC"(I["OBJ")I",                        FN_PTR(MHN_getNamedCon)},
   //  static native int getMembers(Class<?> defc, String matchName, String matchSig,
   //          int matchFlags, Class<?> caller, int skip, MemberName[] results);
-  {CC"getMembers",              CC"("CLS""STRG""STRG"I"CLS"I["MEM")I",  FN_PTR(MHN_getMembers)}
+  {CC"getMembers",                CC"("CLS""STRG""STRG"I"CLS"I["MEM")I", FN_PTR(MHN_getMembers)}
+};
+
+static JNINativeMethod call_site_methods[] = {
+  {CC"setCallSiteTargetNormal",   CC"("CS""MH")V",                       FN_PTR(MHN_setCallSiteTargetNormal)},
+  {CC"setCallSiteTargetVolatile", CC"("CS""MH")V",                       FN_PTR(MHN_setCallSiteTargetVolatile)}
 };
 
 static JNINativeMethod invoke_methods[] = {
   // void init(MemberName self, AccessibleObject ref)
-  {CC"invoke",                  CC"(["OBJ")"OBJ,                FN_PTR(MH_invoke_UOE)},
-  {CC"invokeExact",             CC"(["OBJ")"OBJ,                FN_PTR(MH_invokeExact_UOE)}
+  {CC"invoke",                    CC"(["OBJ")"OBJ,                       FN_PTR(MH_invoke_UOE)},
+  {CC"invokeExact",               CC"(["OBJ")"OBJ,                       FN_PTR(MH_invokeExact_UOE)}
 };
 
 // This one function is exported, used by NativeLookup.
@@ -3177,11 +3217,11 @@ JVM_ENTRY(void, JVM_RegisterMethodHandleMethods(JNIEnv *env, jclass MHN_class))
     return;  // bind nothing
   }
 
+  assert(!MethodHandles::enabled(), "must not be enabled");
   bool enable_MH = true;
 
   {
     ThreadToNativeFromVM ttnfv(thread);
-
     int status = env->RegisterNatives(MHN_class, methods, sizeof(methods)/sizeof(JNINativeMethod));
     if (!env->ExceptionOccurred()) {
       const char* L_MH_name = (JLINV "MethodHandle");
@@ -3190,11 +3230,16 @@ JVM_ENTRY(void, JVM_RegisterMethodHandleMethods(JNIEnv *env, jclass MHN_class))
       status = env->RegisterNatives(MH_class, invoke_methods, sizeof(invoke_methods)/sizeof(JNINativeMethod));
     }
     if (env->ExceptionOccurred()) {
-      MethodHandles::set_enabled(false);
       warning("JSR 292 method handle code is mismatched to this JVM.  Disabling support.");
       enable_MH = false;
       env->ExceptionClear();
     }
+
+    status = env->RegisterNatives(MHN_class, call_site_methods, sizeof(call_site_methods)/sizeof(JNINativeMethod));
+    if (env->ExceptionOccurred()) {
+      // Exception is okay until 7087357
+      env->ExceptionClear();
+    }
   }
 
   if (enable_MH) {
diff --git a/hotspot/src/share/vm/prims/methodHandles.hpp b/hotspot/src/share/vm/prims/methodHandles.hpp
index dbf6416..f1c44ba 100644
--- a/hotspot/src/share/vm/prims/methodHandles.hpp
+++ b/hotspot/src/share/vm/prims/methodHandles.hpp
@@ -187,6 +187,8 @@ class MethodHandles: AllStatic {
     _adapter_opt_fold_FIRST = _adapter_opt_fold_ref,
     _adapter_opt_fold_LAST  = _adapter_opt_fold_5_ref,
 
+    _adapter_opt_profiling,
+
     _EK_LIMIT,
     _EK_FIRST = 0
   };
@@ -266,6 +268,8 @@ class MethodHandles: AllStatic {
       return _adapter_fold_args;
     if (ek >= _adapter_opt_return_FIRST && ek <= _adapter_opt_return_LAST)
       return _adapter_opt_return_any;
+    if (ek == _adapter_opt_profiling)
+      return _adapter_retype_only;
     assert(false, "oob");
     return _EK_LIMIT;
   }
@@ -511,11 +515,12 @@ class MethodHandles: AllStatic {
   }
   // Here is the transformation the i2i adapter must perform:
   static int truncate_subword_from_vminfo(jint value, int vminfo) {
-    jint tem = value << vminfo;
+    int shift = vminfo & ~CONV_VMINFO_SIGN_FLAG;
+    jint tem = value << shift;
     if ((vminfo & CONV_VMINFO_SIGN_FLAG) != 0) {
-      return (jint)tem >> vminfo;
+      return (jint)tem >> shift;
     } else {
-      return (juint)tem >> vminfo;
+      return (juint)tem >> shift;
     }
   }
 
@@ -582,6 +587,7 @@ class MethodHandles: AllStatic {
     GC_JVM_STACK_MOVE_UNIT = 1,
     GC_CONV_OP_IMPLEMENTED_MASK = 2,
     GC_OP_ROT_ARGS_DOWN_LIMIT_BIAS = 3,
+    GC_COUNT_GWT = 4,
 
     // format of result from getTarget / encode_target:
     ETF_HANDLE_OR_METHOD_NAME = 0, // all available data (immediate MH or method)
diff --git a/hotspot/src/share/vm/prims/nativeLookup.cpp b/hotspot/src/share/vm/prims/nativeLookup.cpp
index af62593..874c54d 100644
--- a/hotspot/src/share/vm/prims/nativeLookup.cpp
+++ b/hotspot/src/share/vm/prims/nativeLookup.cpp
@@ -49,6 +49,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 
 static void mangle_name_on(outputStream* st, Symbol* name, int begin, int end) {
diff --git a/hotspot/src/share/vm/prims/unsafe.cpp b/hotspot/src/share/vm/prims/unsafe.cpp
index e1a21f0..48d13db 100644
--- a/hotspot/src/share/vm/prims/unsafe.cpp
+++ b/hotspot/src/share/vm/prims/unsafe.cpp
@@ -33,7 +33,6 @@
 #include "runtime/globals.hpp"
 #include "runtime/interfaceSupport.hpp"
 #include "runtime/reflection.hpp"
-#include "runtime/reflectionCompat.hpp"
 #include "runtime/synchronizer.hpp"
 #include "services/threadService.hpp"
 #include "utilities/copy.hpp"
@@ -303,6 +302,19 @@ UNSAFE_ENTRY(void, Unsafe_SetObjectVolatile(JNIEnv *env, jobject unsafe, jobject
   UnsafeWrapper("Unsafe_SetObjectVolatile");
   oop x = JNIHandles::resolve(x_h);
   oop p = JNIHandles::resolve(obj);
+  // Catch VolatileCallSite.target stores (via
+  // CallSite.setTargetVolatile) and check call site dependencies.
+  if ((offset == java_lang_invoke_CallSite::target_offset_in_bytes()) && p->is_a(SystemDictionary::CallSite_klass())) {
+    oop call_site     = p;
+    oop method_handle = x;
+    assert(call_site    ->is_a(SystemDictionary::CallSite_klass()),     "must be");
+    assert(method_handle->is_a(SystemDictionary::MethodHandle_klass()), "must be");
+    {
+      // Walk all nmethods depending on this call site.
+      MutexLocker mu(Compile_lock, thread);
+      Universe::flush_dependents_on(call_site, method_handle);
+    }
+  }
   void* addr = index_oop_from_field_offset_long(p, offset);
   OrderAccess::release();
   if (UseCompressedOops) {
@@ -707,7 +719,7 @@ jint find_field_offset(jobject field, int must_be_static, TRAPS) {
     }
   }
 
-  int offset = instanceKlass::cast(k)->offset_from_fields(slot);
+  int offset = instanceKlass::cast(k)->field_offset(slot);
   return field_offset_from_byte_offset(offset);
 }
 
diff --git a/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp b/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp
index 550d84d..758bf5c 100644
--- a/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp
+++ b/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp
@@ -189,7 +189,8 @@ CompileTask* AdvancedThresholdPolicy::select_task(CompileQueue* compile_queue) {
     task = next_task;
   }
 
-  if (max_task->comp_level() == CompLevel_full_profile && is_method_profiled(max_method)) {
+  if (max_task->comp_level() == CompLevel_full_profile && TieredStopAtLevel > CompLevel_full_profile
+      && is_method_profiled(max_method)) {
     max_task->set_comp_level(CompLevel_limited_profile);
     if (PrintTieredEvents) {
       print_event(UPDATE_IN_QUEUE, max_method, max_method, max_task->osr_bci(), (CompLevel)max_task->comp_level());
@@ -321,77 +322,79 @@ void AdvancedThresholdPolicy::create_mdo(methodHandle mh, TRAPS) {
  */
 
 // Common transition function. Given a predicate determines if a method should transition to another level.
-CompLevel AdvancedThresholdPolicy::common(Predicate p, methodOop method, CompLevel cur_level) {
-  if (is_trivial(method)) return CompLevel_simple;
-
+CompLevel AdvancedThresholdPolicy::common(Predicate p, methodOop method, CompLevel cur_level, bool disable_feedback) {
   CompLevel next_level = cur_level;
   int i = method->invocation_count();
   int b = method->backedge_count();
 
-  switch(cur_level) {
-  case CompLevel_none:
-    // If we were at full profile level, would we switch to full opt?
-    if (common(p, method, CompLevel_full_profile) == CompLevel_full_optimization) {
-      next_level = CompLevel_full_optimization;
-    } else if ((this->*p)(i, b, cur_level)) {
-      // C1-generated fully profiled code is about 30% slower than the limited profile
-      // code that has only invocation and backedge counters. The observation is that
-      // if C2 queue is large enough we can spend too much time in the fully profiled code
-      // while waiting for C2 to pick the method from the queue. To alleviate this problem
-      // we introduce a feedback on the C2 queue size. If the C2 queue is sufficiently long
-      // we choose to compile a limited profiled version and then recompile with full profiling
-      // when the load on C2 goes down.
-      if (CompileBroker::queue_size(CompLevel_full_optimization) >
-          Tier3DelayOn * compiler_count(CompLevel_full_optimization)) {
-        next_level = CompLevel_limited_profile;
-      } else {
-        next_level = CompLevel_full_profile;
+  if (is_trivial(method)) {
+    next_level = CompLevel_simple;
+  } else {
+    switch(cur_level) {
+    case CompLevel_none:
+      // If we were at full profile level, would we switch to full opt?
+      if (common(p, method, CompLevel_full_profile, disable_feedback) == CompLevel_full_optimization) {
+        next_level = CompLevel_full_optimization;
+      } else if ((this->*p)(i, b, cur_level)) {
+        // C1-generated fully profiled code is about 30% slower than the limited profile
+        // code that has only invocation and backedge counters. The observation is that
+        // if C2 queue is large enough we can spend too much time in the fully profiled code
+        // while waiting for C2 to pick the method from the queue. To alleviate this problem
+        // we introduce a feedback on the C2 queue size. If the C2 queue is sufficiently long
+        // we choose to compile a limited profiled version and then recompile with full profiling
+        // when the load on C2 goes down.
+        if (!disable_feedback && CompileBroker::queue_size(CompLevel_full_optimization) >
+                                 Tier3DelayOn * compiler_count(CompLevel_full_optimization)) {
+          next_level = CompLevel_limited_profile;
+        } else {
+          next_level = CompLevel_full_profile;
+        }
       }
-    }
-    break;
-  case CompLevel_limited_profile:
-    if (is_method_profiled(method)) {
-      // Special case: we got here because this method was fully profiled in the interpreter.
-      next_level = CompLevel_full_optimization;
-    } else {
-      methodDataOop mdo = method->method_data();
-      if (mdo != NULL) {
-        if (mdo->would_profile()) {
-          if (CompileBroker::queue_size(CompLevel_full_optimization) <=
-              Tier3DelayOff * compiler_count(CompLevel_full_optimization) &&
-              (this->*p)(i, b, cur_level)) {
-            next_level = CompLevel_full_profile;
+      break;
+    case CompLevel_limited_profile:
+      if (is_method_profiled(method)) {
+        // Special case: we got here because this method was fully profiled in the interpreter.
+        next_level = CompLevel_full_optimization;
+      } else {
+        methodDataOop mdo = method->method_data();
+        if (mdo != NULL) {
+          if (mdo->would_profile()) {
+            if (disable_feedback || (CompileBroker::queue_size(CompLevel_full_optimization) <=
+                                     Tier3DelayOff * compiler_count(CompLevel_full_optimization) &&
+                                     (this->*p)(i, b, cur_level))) {
+              next_level = CompLevel_full_profile;
+            }
+          } else {
+            next_level = CompLevel_full_optimization;
           }
-        } else {
-          next_level = CompLevel_full_optimization;
         }
       }
-    }
-    break;
-  case CompLevel_full_profile:
-    {
-      methodDataOop mdo = method->method_data();
-      if (mdo != NULL) {
-        if (mdo->would_profile()) {
-          int mdo_i = mdo->invocation_count_delta();
-          int mdo_b = mdo->backedge_count_delta();
-          if ((this->*p)(mdo_i, mdo_b, cur_level)) {
+      break;
+    case CompLevel_full_profile:
+      {
+        methodDataOop mdo = method->method_data();
+        if (mdo != NULL) {
+          if (mdo->would_profile()) {
+            int mdo_i = mdo->invocation_count_delta();
+            int mdo_b = mdo->backedge_count_delta();
+            if ((this->*p)(mdo_i, mdo_b, cur_level)) {
+              next_level = CompLevel_full_optimization;
+            }
+          } else {
             next_level = CompLevel_full_optimization;
           }
-        } else {
-          next_level = CompLevel_full_optimization;
         }
       }
+      break;
     }
-    break;
   }
-  return next_level;
+  return MIN2(next_level, (CompLevel)TieredStopAtLevel);
 }
 
 // Determine if a method should be compiled with a normal entry point at a different level.
 CompLevel AdvancedThresholdPolicy::call_event(methodOop method, CompLevel cur_level) {
   CompLevel osr_level = MIN2((CompLevel) method->highest_osr_comp_level(),
-                             common(&AdvancedThresholdPolicy::loop_predicate, method, cur_level));
+                             common(&AdvancedThresholdPolicy::loop_predicate, method, cur_level, true));
   CompLevel next_level = common(&AdvancedThresholdPolicy::call_predicate, method, cur_level);
 
   // If OSR method level is greater than the regular method level, the levels should be
@@ -406,13 +409,12 @@ CompLevel AdvancedThresholdPolicy::call_event(methodOop method, CompLevel cur_le
   } else {
     next_level = MAX2(osr_level, next_level);
   }
-
   return next_level;
 }
 
 // Determine if we should do an OSR compilation of a given method.
 CompLevel AdvancedThresholdPolicy::loop_event(methodOop method, CompLevel cur_level) {
-  CompLevel next_level = common(&AdvancedThresholdPolicy::loop_predicate, method, cur_level);
+  CompLevel next_level = common(&AdvancedThresholdPolicy::loop_predicate, method, cur_level, true);
   if (cur_level == CompLevel_none) {
     // If there is a live OSR method that means that we deopted to the interpreter
     // for the transition.
@@ -460,22 +462,9 @@ void AdvancedThresholdPolicy::method_back_branch_event(methodHandle mh, methodHa
   if (is_compilation_enabled()) {
     CompLevel next_osr_level = loop_event(imh(), level);
     CompLevel max_osr_level = (CompLevel)imh->highest_osr_comp_level();
-    if (next_osr_level  == CompLevel_limited_profile) {
-      next_osr_level = CompLevel_full_profile; // OSRs are supposed to be for very hot methods.
-    }
-
     // At the very least compile the OSR version
-    if (!CompileBroker::compilation_is_in_queue(imh, bci)) {
-      // Check if there's a method like that already
-      nmethod* osr_nm = NULL;
-      if (max_osr_level >= next_osr_level) {
-        // There is an osr method already with the same
-        // or greater level, check if it has the bci we need
-        osr_nm = imh->lookup_osr_nmethod_for(bci, next_osr_level, false);
-      }
-      if (osr_nm == NULL) {
-        compile(imh, bci, next_osr_level, THREAD);
-      }
+    if (!CompileBroker::compilation_is_in_queue(imh, bci) && next_osr_level != level) {
+      compile(imh, bci, next_osr_level, THREAD);
     }
 
     // Use loop event as an opportunity to also check if there's been
diff --git a/hotspot/src/share/vm/runtime/advancedThresholdPolicy.hpp b/hotspot/src/share/vm/runtime/advancedThresholdPolicy.hpp
index 7f000b9..58be8b2 100644
--- a/hotspot/src/share/vm/runtime/advancedThresholdPolicy.hpp
+++ b/hotspot/src/share/vm/runtime/advancedThresholdPolicy.hpp
@@ -168,7 +168,7 @@ class AdvancedThresholdPolicy : public SimpleThresholdPolicy {
   bool call_predicate(int i, int b, CompLevel cur_level);
   bool loop_predicate(int i, int b, CompLevel cur_level);
   // Common transition function. Given a predicate determines if a method should transition to another level.
-  CompLevel common(Predicate p, methodOop method, CompLevel cur_level);
+  CompLevel common(Predicate p, methodOop method, CompLevel cur_level, bool disable_feedback = false);
   // Transition functions.
   // call_event determines if a method should be compiled at a different
   // level with a regular invocation entry.
diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp
index f2b482c..c78805a 100644
--- a/hotspot/src/share/vm/runtime/arguments.cpp
+++ b/hotspot/src/share/vm/runtime/arguments.cpp
@@ -46,6 +46,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 #ifndef SERIALGC
 #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp"
 #endif
@@ -1447,6 +1450,9 @@ void Arguments::set_parallel_gc_flags() {
     if (FLAG_IS_DEFAULT(MinHeapDeltaBytes)) {
       FLAG_SET_DEFAULT(MinHeapDeltaBytes, 64*M);
     }
+    // For those collectors or operating systems (eg, Windows) that do
+    // not support full UseNUMA, we will map to UseNUMAInterleaving for now
+    UseNUMAInterleaving = true;
   }
 }
 
@@ -3061,9 +3067,6 @@ jint Arguments::parse(const JavaVMInitArgs* args) {
   }
 
 #ifdef JAVASE_EMBEDDED
-  #ifdef PPC
-    UNSUPPORTED_OPTION(EnableInvokeDynamic, "Invoke dynamic");
-  #endif
   UNSUPPORTED_OPTION(UseG1GC, "G1 GC");
 #endif
 
diff --git a/hotspot/src/share/vm/runtime/atomic.cpp b/hotspot/src/share/vm/runtime/atomic.cpp
index 3b012e0..80780d7 100644
--- a/hotspot/src/share/vm/runtime/atomic.cpp
+++ b/hotspot/src/share/vm/runtime/atomic.cpp
@@ -33,6 +33,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 #ifdef TARGET_OS_ARCH_linux_x86
 # include "atomic_linux_x86.inline.hpp"
 #endif
@@ -57,6 +60,12 @@
 #ifdef TARGET_OS_ARCH_linux_ppc
 # include "atomic_linux_ppc.inline.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "atomic_bsd_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "atomic_bsd_zero.inline.hpp"
+#endif
 
 jbyte Atomic::cmpxchg(jbyte exchange_value, volatile jbyte* dest, jbyte compare_value) {
   assert(sizeof(jbyte) == 1, "assumption.");
diff --git a/hotspot/src/share/vm/runtime/compilationPolicy.hpp b/hotspot/src/share/vm/runtime/compilationPolicy.hpp
index 6282688..b9d7066 100644
--- a/hotspot/src/share/vm/runtime/compilationPolicy.hpp
+++ b/hotspot/src/share/vm/runtime/compilationPolicy.hpp
@@ -59,6 +59,8 @@ public:
   // Profiling
   elapsedTimer* accumulated_time() { return &_accumulated_time; }
   void print_time() PRODUCT_RETURN;
+  // Return initial compile level that is used with Xcomp
+  virtual CompLevel initial_compile_level() = 0;
   virtual int compiler_count(CompLevel comp_level) = 0;
   // main notification entry, return a pointer to an nmethod if the OSR is required,
   // returns NULL otherwise.
@@ -94,6 +96,7 @@ protected:
   void reset_counter_for_back_branch_event(methodHandle method);
 public:
   NonTieredCompPolicy() : _compiler_count(0) { }
+  virtual CompLevel initial_compile_level() { return CompLevel_initial_compile; }
   virtual int compiler_count(CompLevel comp_level);
   virtual void do_safepoint_work();
   virtual void reprofile(ScopeDesc* trap_scope, bool is_osr);
diff --git a/hotspot/src/share/vm/runtime/deoptimization.cpp b/hotspot/src/share/vm/runtime/deoptimization.cpp
index b2f172d..db95bad 100644
--- a/hotspot/src/share/vm/runtime/deoptimization.cpp
+++ b/hotspot/src/share/vm/runtime/deoptimization.cpp
@@ -103,7 +103,7 @@ Deoptimization::UnrollBlock::UnrollBlock(int  size_of_deoptimized_frame,
   _frame_pcs                 = frame_pcs;
   _register_block            = NEW_C_HEAP_ARRAY(intptr_t, RegisterMap::reg_count * 2);
   _return_type               = return_type;
-  _initial_fp                = 0;
+  _initial_info              = 0;
   // PD (x86 only)
   _counter_temp              = 0;
   _unpack_kind               = 0;
@@ -486,9 +486,10 @@ Deoptimization::UnrollBlock* Deoptimization::fetch_unroll_info_helper(JavaThread
                                       frame_sizes,
                                       frame_pcs,
                                       return_type);
-  // On some platforms, we need a way to pass fp to the unpacking code
-  // so the skeletal frames come out correct.
-  info->set_initial_fp((intptr_t) array->sender().fp());
+  // On some platforms, we need a way to pass some platform dependent
+  // information to the unpacking code so the skeletal frames come out
+  // correct (initial fp value, unextended sp, ...)
+  info->set_initial_info((intptr_t) array->sender().initial_deoptimization_info());
 
   if (array->frames() > 1) {
     if (VerifyStack && TraceDeoptimization) {
diff --git a/hotspot/src/share/vm/runtime/deoptimization.hpp b/hotspot/src/share/vm/runtime/deoptimization.hpp
index 853cd9a..1822546 100644
--- a/hotspot/src/share/vm/runtime/deoptimization.hpp
+++ b/hotspot/src/share/vm/runtime/deoptimization.hpp
@@ -34,6 +34,8 @@ class MonitorValue;
 class ObjectValue;
 
 class Deoptimization : AllStatic {
+  friend class VMStructs;
+
  public:
   // What condition caused the deoptimization?
   enum DeoptReason {
@@ -137,7 +139,7 @@ class Deoptimization : AllStatic {
     address*  _frame_pcs;                 // Array of frame pc's, in bytes, for unrolling the stack
     intptr_t* _register_block;            // Block for storing callee-saved registers.
     BasicType _return_type;               // Tells if we have to restore double or long return value
-    intptr_t  _initial_fp;                // FP of the sender frame
+    intptr_t  _initial_info;              // Platform dependent data for the sender frame (was FP on x86)
     int       _caller_actual_parameters;  // The number of actual arguments at the
                                           // interpreted caller of the deoptimized frame
 
@@ -170,7 +172,7 @@ class Deoptimization : AllStatic {
     // Returns the total size of frames
     int size_of_frames() const;
 
-    void set_initial_fp(intptr_t fp) { _initial_fp = fp; }
+    void set_initial_info(intptr_t info) { _initial_info = info; }
 
     int caller_actual_parameters() const { return _caller_actual_parameters; }
 
@@ -184,7 +186,7 @@ class Deoptimization : AllStatic {
     static int register_block_offset_in_bytes()            { return offset_of(UnrollBlock, _register_block);            }
     static int return_type_offset_in_bytes()               { return offset_of(UnrollBlock, _return_type);               }
     static int counter_temp_offset_in_bytes()              { return offset_of(UnrollBlock, _counter_temp);              }
-    static int initial_fp_offset_in_bytes()                { return offset_of(UnrollBlock, _initial_fp);                }
+    static int initial_info_offset_in_bytes()              { return offset_of(UnrollBlock, _initial_info);              }
     static int unpack_kind_offset_in_bytes()               { return offset_of(UnrollBlock, _unpack_kind);               }
     static int sender_sp_temp_offset_in_bytes()            { return offset_of(UnrollBlock, _sender_sp_temp);            }
 
diff --git a/hotspot/src/share/vm/runtime/fieldDescriptor.cpp b/hotspot/src/share/vm/runtime/fieldDescriptor.cpp
index 0832d31..1fb0ce0 100644
--- a/hotspot/src/share/vm/runtime/fieldDescriptor.cpp
+++ b/hotspot/src/share/vm/runtime/fieldDescriptor.cpp
@@ -42,59 +42,51 @@ typeArrayOop fieldDescriptor::annotations() const {
   objArrayOop md = ik->fields_annotations();
   if (md == NULL)
     return NULL;
-  assert((index() % instanceKlass::next_offset) == 0, "");
-  return typeArrayOop(md->obj_at(index() / instanceKlass::next_offset));
+  return typeArrayOop(md->obj_at(index()));
 }
 
 constantTag fieldDescriptor::initial_value_tag() const {
-  return constants()->tag_at(_initial_value_index);
+  return constants()->tag_at(initial_value_index());
 }
 
 jint fieldDescriptor::int_initial_value() const {
-  return constants()->int_at(_initial_value_index);
+  return constants()->int_at(initial_value_index());
 }
 
 jlong fieldDescriptor::long_initial_value() const {
-  return constants()->long_at(_initial_value_index);
+  return constants()->long_at(initial_value_index());
 }
 
 jfloat fieldDescriptor::float_initial_value() const {
-  return constants()->float_at(_initial_value_index);
+  return constants()->float_at(initial_value_index());
 }
 
 jdouble fieldDescriptor::double_initial_value() const {
-  return constants()->double_at(_initial_value_index);
+  return constants()->double_at(initial_value_index());
 }
 
 oop fieldDescriptor::string_initial_value(TRAPS) const {
-  return constants()->string_at(_initial_value_index, CHECK_0);
+  return constants()->string_at(initial_value_index(), CHECK_0);
 }
 
 void fieldDescriptor::initialize(klassOop k, int index) {
   instanceKlass* ik = instanceKlass::cast(k);
   _cp = ik->constants();
-  typeArrayOop fields = ik->fields();
-
-  assert(fields->length() % instanceKlass::next_offset == 0, "Illegal size of field array");
-  assert(fields->length() >= index + instanceKlass::next_offset, "Illegal size of field array");
-
-  _access_flags.set_field_flags(fields->ushort_at(index + instanceKlass::access_flags_offset));
-  _name_index = fields->ushort_at(index + instanceKlass::name_index_offset);
-  _signature_index = fields->ushort_at(index + instanceKlass::signature_index_offset);
-  _initial_value_index = fields->ushort_at(index + instanceKlass::initval_index_offset);
-  guarantee(_name_index != 0 && _signature_index != 0, "bad constant pool index for fieldDescriptor");
-  _offset = ik->offset_from_fields( index );
-  _generic_signature_index = fields->ushort_at(index + instanceKlass::generic_signature_offset);
+  FieldInfo* f = ik->field(index);
+  assert(!f->is_internal(), "regular Java fields only");
+
+  _access_flags = accessFlags_from(f->access_flags());
+  guarantee(f->name_index() != 0 && f->signature_index() != 0, "bad constant pool index for fieldDescriptor");
   _index = index;
 }
 
 #ifndef PRODUCT
 
 void fieldDescriptor::print_on(outputStream* st) const {
-  _access_flags.print_on(st);
-  constants()->symbol_at(_name_index)->print_value_on(st);
+  access_flags().print_on(st);
+  name()->print_value_on(st);
   st->print(" ");
-  constants()->symbol_at(_signature_index)->print_value_on(st);
+  signature()->print_value_on(st);
   st->print(" @%d ", offset());
   if (WizardMode && has_initial_value()) {
     st->print("(initval ");
diff --git a/hotspot/src/share/vm/runtime/fieldDescriptor.hpp b/hotspot/src/share/vm/runtime/fieldDescriptor.hpp
index 00f8864..e68b5c5 100644
--- a/hotspot/src/share/vm/runtime/fieldDescriptor.hpp
+++ b/hotspot/src/share/vm/runtime/fieldDescriptor.hpp
@@ -40,29 +40,40 @@
 class fieldDescriptor VALUE_OBJ_CLASS_SPEC {
  private:
   AccessFlags         _access_flags;
-  int                 _name_index;
-  int                 _signature_index;
-  int                 _initial_value_index;
-  int                 _offset;
-  int                 _generic_signature_index;
-  int                 _index; // index into fields() array
+  int                 _index; // the field index
   constantPoolHandle  _cp;
 
+  // update the access_flags for the field in the klass
+  void update_klass_field_access_flag() {
+    instanceKlass* ik = instanceKlass::cast(field_holder());
+    ik->field(index())->set_access_flags(_access_flags.as_short());
+  }
+
+  FieldInfo* field() const {
+    instanceKlass* ik = instanceKlass::cast(field_holder());
+    return ik->field(_index);
+  }
+
  public:
-  Symbol* name() const                 { return _cp->symbol_at(_name_index); }
-  Symbol* signature() const            { return _cp->symbol_at(_signature_index); }
+  Symbol* name() const {
+    return field()->name(_cp);
+  }
+  Symbol* signature() const {
+    return field()->signature(_cp);
+  }
   klassOop field_holder() const        { return _cp->pool_holder(); }
   constantPoolOop constants() const    { return _cp(); }
   AccessFlags access_flags() const     { return _access_flags; }
   oop loader() const;
   // Offset (in words) of field from start of instanceOop / klassOop
-  int offset() const                   { return _offset; }
-  Symbol* generic_signature() const    { return (_generic_signature_index > 0 ? _cp->symbol_at(_generic_signature_index) : (Symbol*)NULL); }
+  int offset() const                   { return field()->offset(); }
+  Symbol* generic_signature() const    { return field()->generic_signature(_cp); }
   int index() const                    { return _index; }
   typeArrayOop annotations() const;
 
   // Initial field value
-  bool has_initial_value() const          { return _initial_value_index != 0; }
+  bool has_initial_value() const          { return field()->initval_index() != 0; }
+  int initial_value_index() const         { return field()->initval_index(); }
   constantTag initial_value_tag() const;  // The tag will return true on one of is_int(), is_long(), is_single(), is_double()
   jint        int_initial_value() const;
   jlong       long_initial_value() const;
@@ -74,25 +85,31 @@ class fieldDescriptor VALUE_OBJ_CLASS_SPEC {
   BasicType field_type() const            { return FieldType::basic_type(signature()); }
 
   // Access flags
-  bool is_public() const                  { return _access_flags.is_public(); }
-  bool is_private() const                 { return _access_flags.is_private(); }
-  bool is_protected() const               { return _access_flags.is_protected(); }
+  bool is_public() const                  { return access_flags().is_public(); }
+  bool is_private() const                 { return access_flags().is_private(); }
+  bool is_protected() const               { return access_flags().is_protected(); }
   bool is_package_private() const         { return !is_public() && !is_private() && !is_protected(); }
 
-  bool is_static() const                  { return _access_flags.is_static(); }
-  bool is_final() const                   { return _access_flags.is_final(); }
-  bool is_volatile() const                { return _access_flags.is_volatile(); }
-  bool is_transient() const               { return _access_flags.is_transient(); }
+  bool is_static() const                  { return access_flags().is_static(); }
+  bool is_final() const                   { return access_flags().is_final(); }
+  bool is_volatile() const                { return access_flags().is_volatile(); }
+  bool is_transient() const               { return access_flags().is_transient(); }
 
-  bool is_synthetic() const               { return _access_flags.is_synthetic(); }
+  bool is_synthetic() const               { return access_flags().is_synthetic(); }
 
-  bool is_field_access_watched() const    { return _access_flags.is_field_access_watched(); }
+  bool is_field_access_watched() const    { return access_flags().is_field_access_watched(); }
   bool is_field_modification_watched() const
-                                          { return _access_flags.is_field_modification_watched(); }
-  void set_is_field_access_watched(const bool value)
-                                          { _access_flags.set_is_field_access_watched(value); }
-  void set_is_field_modification_watched(const bool value)
-                                          { _access_flags.set_is_field_modification_watched(value); }
+                                          { return access_flags().is_field_modification_watched(); }
+
+  void set_is_field_access_watched(const bool value) {
+    _access_flags.set_is_field_access_watched(value);
+    update_klass_field_access_flag();
+  }
+
+  void set_is_field_modification_watched(const bool value) {
+    _access_flags.set_is_field_modification_watched(value);
+    update_klass_field_access_flag();
+  }
 
   // Initialization
   void initialize(klassOop k, int index);
diff --git a/hotspot/src/share/vm/runtime/fprofiler.hpp b/hotspot/src/share/vm/runtime/fprofiler.hpp
index 60e51d2..2f8d615 100644
--- a/hotspot/src/share/vm/runtime/fprofiler.hpp
+++ b/hotspot/src/share/vm/runtime/fprofiler.hpp
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // a simple flat profiler for Java
 
diff --git a/hotspot/src/share/vm/runtime/frame.hpp b/hotspot/src/share/vm/runtime/frame.hpp
index 0273edf..ec3e3e6 100644
--- a/hotspot/src/share/vm/runtime/frame.hpp
+++ b/hotspot/src/share/vm/runtime/frame.hpp
@@ -221,6 +221,10 @@ class frame VALUE_OBJ_CLASS_SPEC {
   // returns the stack pointer of the calling frame
   intptr_t* sender_sp() const;
 
+  // Deoptimization info, if needed (platform dependent).
+  // Stored in the initial_info field of the unroll info, to be used by
+  // the platform dependent deoptimization blobs.
+  intptr_t *initial_deoptimization_info();
 
   // Interpreter frames:
 
diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp
index 9c2a081..e4ba36a 100644
--- a/hotspot/src/share/vm/runtime/globals.hpp
+++ b/hotspot/src/share/vm/runtime/globals.hpp
@@ -50,6 +50,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "globals_windows.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "globals_bsd.hpp"
+#endif
 #ifdef TARGET_OS_ARCH_linux_x86
 # include "globals_linux_x86.hpp"
 #endif
@@ -74,6 +77,12 @@
 #ifdef TARGET_OS_ARCH_linux_ppc
 # include "globals_linux_ppc.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "globals_bsd_x86.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "globals_bsd_zero.hpp"
+#endif
 #ifdef COMPILER1
 #ifdef TARGET_ARCH_x86
 # include "c1_globals_x86.hpp"
@@ -96,6 +105,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "c1_globals_windows.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "c1_globals_bsd.hpp"
+#endif
 #endif
 #ifdef COMPILER2
 #ifdef TARGET_ARCH_x86
@@ -116,6 +128,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "c2_globals_windows.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "c2_globals_bsd.hpp"
+#endif
 #endif
 #ifdef SHARK
 #ifdef TARGET_ARCH_zero
@@ -475,6 +490,12 @@ class CommandLineFlags {
   product(bool, UseNUMA, false,                                             \
           "Use NUMA if available")                                          \
                                                                             \
+  product(bool, UseNUMAInterleaving, false,                                 \
+          "Interleave memory across NUMA nodes if available")               \
+                                                                            \
+  product(uintx, NUMAInterleaveGranularity, 2*M,                            \
+          "Granularity to use for NUMA interleaving on Windows OS")         \
+                                                                            \
   product(bool, ForceNUMA, false,                                           \
           "Force NUMA optimizations on single-node/UMA systems")            \
                                                                             \
@@ -1205,6 +1226,9 @@ class CommandLineFlags {
   product(bool, UseUnalignedLoadStores, false,                              \
           "Use SSE2 MOVDQU instruction for Arraycopy")                      \
                                                                             \
+  product(bool, UseCBCond, false,                                           \
+          "Use compare and branch instruction on SPARC")                    \
+                                                                            \
   product(intx, FieldsAllocationStyle, 1,                                   \
           "0 - type based with oops first, 1 - with oops last, "            \
           "2 - oops in super and sub classes are together")                 \
@@ -1976,6 +2000,18 @@ class CommandLineFlags {
   product(bool, TLABStats, true,                                            \
           "Print various TLAB related information")                         \
                                                                             \
+  product(bool, UseBlockZeroing, false,                                     \
+          "Use special cpu instructions for block zeroing")                 \
+                                                                            \
+  product(intx, BlockZeroingLowLimit, 2048,                                 \
+          "Minimum size in bytes when block zeroing will be used")          \
+                                                                            \
+  product(bool, UseBlockCopy, false,                                        \
+          "Use special cpu instructions for block copy")                    \
+                                                                            \
+  product(intx, BlockCopyLowLimit, 2048,                                    \
+          "Minimum size in bytes when block copy will be used")             \
+                                                                            \
   product(bool, PrintRevisitStats, false,                                   \
           "Print revisit (klass and MDO) stack related information")        \
                                                                             \
@@ -2894,8 +2930,11 @@ class CommandLineFlags {
   product(intx,  AllocatePrefetchDistance, -1,                              \
           "Distance to prefetch ahead of allocation pointer")               \
                                                                             \
-  product(intx,  AllocatePrefetchLines, 1,                                  \
-          "Number of lines to prefetch ahead of allocation pointer")        \
+  product(intx,  AllocatePrefetchLines, 3,                                  \
+          "Number of lines to prefetch ahead of array allocation pointer")  \
+                                                                            \
+  product(intx,  AllocateInstancePrefetchLines, 1,                          \
+          "Number of lines to prefetch ahead of instance allocation pointer") \
                                                                             \
   product(intx,  AllocatePrefetchStepSize, 16,                              \
           "Step size in bytes of sequential prefetch instructions")         \
@@ -2906,6 +2945,12 @@ class CommandLineFlags {
   product(intx,  ReadPrefetchInstr, 0,                                      \
           "Prefetch instruction to prefetch ahead")                         \
                                                                             \
+  product(uintx,  ArraycopySrcPrefetchDistance, 0,                          \
+          "Distance to prefetch source array in arracopy")                  \
+                                                                            \
+  product(uintx,  ArraycopyDstPrefetchDistance, 0,                          \
+          "Distance to prefetch destination array in arracopy")             \
+                                                                            \
   /* deoptimization */                                                      \
   develop(bool, TraceDeoptimization, false,                                 \
           "Trace deoptimization")                                           \
@@ -3476,6 +3521,9 @@ class CommandLineFlags {
           "C1 with MDO profiling (tier 3) invocation notification "         \
           "frequency.")                                                     \
                                                                             \
+  product(intx, Tier23InlineeNotifyFreqLog, 20,                             \
+          "Inlinee invocation (tiers 2 and 3) notification frequency")      \
+                                                                            \
   product(intx, Tier0BackedgeNotifyFreqLog, 10,                             \
           "Interpreter (tier 0) invocation notification frequency.")        \
                                                                             \
diff --git a/hotspot/src/share/vm/runtime/handles.cpp b/hotspot/src/share/vm/runtime/handles.cpp
index 4a57d26..3c24f81 100644
--- a/hotspot/src/share/vm/runtime/handles.cpp
+++ b/hotspot/src/share/vm/runtime/handles.cpp
@@ -38,6 +38,10 @@
 # include "os_windows.inline.hpp"
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+# include "thread_bsd.inline.hpp"
+#endif
 
 #ifdef ASSERT
 oop* HandleArea::allocate_handle(oop obj) {
diff --git a/hotspot/src/share/vm/runtime/handles.inline.hpp b/hotspot/src/share/vm/runtime/handles.inline.hpp
index 01060f5..3bd42fb 100644
--- a/hotspot/src/share/vm/runtime/handles.inline.hpp
+++ b/hotspot/src/share/vm/runtime/handles.inline.hpp
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // these inline functions are in a separate file to break an include cycle
 // between Thread and Handle
diff --git a/hotspot/src/share/vm/runtime/interfaceSupport.hpp b/hotspot/src/share/vm/runtime/interfaceSupport.hpp
index b119006..90c0db3 100644
--- a/hotspot/src/share/vm/runtime/interfaceSupport.hpp
+++ b/hotspot/src/share/vm/runtime/interfaceSupport.hpp
@@ -44,6 +44,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // Wrapper for all entry points to the virtual machine.
 // The HandleMarkCleaner is a faster version of HandleMark.
@@ -115,6 +118,9 @@ class InterfaceSupport: AllStatic {
 #ifdef TARGET_OS_FAMILY_windows
 # include "interfaceSupport_windows.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "interfaceSupport_bsd.hpp"
+#endif
 
 };
 
diff --git a/hotspot/src/share/vm/runtime/java.cpp b/hotspot/src/share/vm/runtime/java.cpp
index 73065fe..7636304 100644
--- a/hotspot/src/share/vm/runtime/java.cpp
+++ b/hotspot/src/share/vm/runtime/java.cpp
@@ -85,6 +85,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 #ifndef SERIALGC
 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp"
 #include "gc_implementation/parallelScavenge/psScavenge.hpp"
@@ -243,6 +246,7 @@ void print_statistics() {
     FlagSetting fs(DisplayVMOutput, DisplayVMOutput && PrintC1Statistics);
     Runtime1::print_statistics();
     Deoptimization::print_statistics();
+    SharedRuntime::print_statistics();
     nmethod::print_statistics();
   }
 #endif /* COMPILER1 */
@@ -254,8 +258,8 @@ void print_statistics() {
 #ifndef COMPILER1
     Deoptimization::print_statistics();
     nmethod::print_statistics();
-#endif //COMPILER1
     SharedRuntime::print_statistics();
+#endif //COMPILER1
     os::print_statistics();
   }
 
@@ -671,7 +675,8 @@ void JDK_Version::initialize() {
     _current = JDK_Version(major, minor, micro, info.update_version,
                            info.special_update_version, build,
                            info.thread_park_blocker == 1,
-                           info.post_vm_init_hook_enabled == 1);
+                           info.post_vm_init_hook_enabled == 1,
+                           info.pending_list_uses_discovered_field == 1);
   }
 }
 
diff --git a/hotspot/src/share/vm/runtime/java.hpp b/hotspot/src/share/vm/runtime/java.hpp
index 37e29bd..307fcc2 100644
--- a/hotspot/src/share/vm/runtime/java.hpp
+++ b/hotspot/src/share/vm/runtime/java.hpp
@@ -92,6 +92,7 @@ class JDK_Version VALUE_OBJ_CLASS_SPEC {
   bool _partially_initialized;
 
   bool _thread_park_blocker;
+  bool _pending_list_uses_discovered_field;
   bool _post_vm_init_hook_enabled;
 
   bool is_valid() const {
@@ -114,15 +115,18 @@ class JDK_Version VALUE_OBJ_CLASS_SPEC {
 
   JDK_Version() : _major(0), _minor(0), _micro(0), _update(0),
                   _special(0), _build(0), _partially_initialized(false),
-                  _thread_park_blocker(false), _post_vm_init_hook_enabled(false) {}
+                  _thread_park_blocker(false), _post_vm_init_hook_enabled(false),
+                  _pending_list_uses_discovered_field(false) {}
 
   JDK_Version(uint8_t major, uint8_t minor = 0, uint8_t micro = 0,
               uint8_t update = 0, uint8_t special = 0, uint8_t build = 0,
-              bool thread_park_blocker = false, bool post_vm_init_hook_enabled = false) :
+              bool thread_park_blocker = false, bool post_vm_init_hook_enabled = false,
+              bool pending_list_uses_discovered_field = false) :
       _major(major), _minor(minor), _micro(micro), _update(update),
       _special(special), _build(build), _partially_initialized(false),
       _thread_park_blocker(thread_park_blocker),
-      _post_vm_init_hook_enabled(post_vm_init_hook_enabled) {}
+      _post_vm_init_hook_enabled(post_vm_init_hook_enabled),
+      _pending_list_uses_discovered_field(pending_list_uses_discovered_field) {}
 
   // Returns the current running JDK version
   static JDK_Version current() { return _current; }
@@ -149,6 +153,10 @@ class JDK_Version VALUE_OBJ_CLASS_SPEC {
   bool post_vm_init_hook_enabled() const {
     return _post_vm_init_hook_enabled;
   }
+  // For compatibility wrt pre-4965777 JDK's
+  bool pending_list_uses_discovered_field() const {
+    return _pending_list_uses_discovered_field;
+  }
 
   // Performs a full ordering comparison using all fields (update, build, etc.)
   int compare(const JDK_Version& other) const;
diff --git a/hotspot/src/share/vm/runtime/javaCalls.cpp b/hotspot/src/share/vm/runtime/javaCalls.cpp
index eca02a4..edbba98 100644
--- a/hotspot/src/share/vm/runtime/javaCalls.cpp
+++ b/hotspot/src/share/vm/runtime/javaCalls.cpp
@@ -48,6 +48,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // -----------------------------------------------------
 // Implementation of JavaCallWrapper
@@ -355,7 +358,7 @@ void JavaCalls::call_helper(JavaValue* result, methodHandle* m, JavaCallArgument
   assert(!thread->is_Compiler_thread(), "cannot compile from the compiler");
   if (CompilationPolicy::must_be_compiled(method)) {
     CompileBroker::compile_method(method, InvocationEntryBci,
-                                  CompLevel_initial_compile,
+                                  CompilationPolicy::policy()->initial_compile_level(),
                                   methodHandle(), 0, "must_be_compiled", CHECK);
   }
 
@@ -557,4 +560,3 @@ void JavaCallArguments::verify(methodHandle method, BasicType return_type,
   sc.check_doing_return(true);
   sc.iterate_returntype();
 }
-
diff --git a/hotspot/src/share/vm/runtime/javaCalls.hpp b/hotspot/src/share/vm/runtime/javaCalls.hpp
index af29462..d4f8595 100644
--- a/hotspot/src/share/vm/runtime/javaCalls.hpp
+++ b/hotspot/src/share/vm/runtime/javaCalls.hpp
@@ -54,6 +54,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // A JavaCallWrapper is constructed before each JavaCall and destructed after the call.
 // Its purpose is to allocate/deallocate a new handle block and to save/restore the last
diff --git a/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp b/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp
index 501e59e..8374aa2 100644
--- a/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp
+++ b/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp
@@ -50,6 +50,13 @@
 #ifdef TARGET_OS_ARCH_linux_ppc
 # include "orderAccess_linux_ppc.inline.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "orderAccess_bsd_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "orderAccess_bsd_zero.inline.hpp"
+#endif
+
 //
 // An object for encapsulating the machine/os dependent part of a JavaThread frame state
 //
diff --git a/hotspot/src/share/vm/runtime/jniHandles.cpp b/hotspot/src/share/vm/runtime/jniHandles.cpp
index e9c791d..3cbcaca 100644
--- a/hotspot/src/share/vm/runtime/jniHandles.cpp
+++ b/hotspot/src/share/vm/runtime/jniHandles.cpp
@@ -37,6 +37,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 
 JNIHandleBlock* JNIHandles::_global_handles       = NULL;
diff --git a/hotspot/src/share/vm/runtime/memprofiler.cpp b/hotspot/src/share/vm/runtime/memprofiler.cpp
index cf49dd3..ab53d92 100644
--- a/hotspot/src/share/vm/runtime/memprofiler.cpp
+++ b/hotspot/src/share/vm/runtime/memprofiler.cpp
@@ -46,6 +46,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 #ifndef PRODUCT
 
diff --git a/hotspot/src/share/vm/runtime/mutex.cpp b/hotspot/src/share/vm/runtime/mutex.cpp
index 634ec43..80d3d87 100644
--- a/hotspot/src/share/vm/runtime/mutex.cpp
+++ b/hotspot/src/share/vm/runtime/mutex.cpp
@@ -39,6 +39,10 @@
 # include "mutex_windows.inline.hpp"
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "mutex_bsd.inline.hpp"
+# include "thread_bsd.inline.hpp"
+#endif
 
 // o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o
 //
diff --git a/hotspot/src/share/vm/runtime/mutexLocker.cpp b/hotspot/src/share/vm/runtime/mutexLocker.cpp
index b3d082f..7653b5b 100644
--- a/hotspot/src/share/vm/runtime/mutexLocker.cpp
+++ b/hotspot/src/share/vm/runtime/mutexLocker.cpp
@@ -36,6 +36,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // Mutexes used in the VM (see comment in mutexLocker.hpp):
 //
diff --git a/hotspot/src/share/vm/runtime/mutexLocker.hpp b/hotspot/src/share/vm/runtime/mutexLocker.hpp
index 58060b8..37a3d31 100644
--- a/hotspot/src/share/vm/runtime/mutexLocker.hpp
+++ b/hotspot/src/share/vm/runtime/mutexLocker.hpp
@@ -36,6 +36,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 // Mutexes used in the VM.
 
diff --git a/hotspot/src/share/vm/runtime/objectMonitor.cpp b/hotspot/src/share/vm/runtime/objectMonitor.cpp
index e2b4bf2..3fa0e32 100644
--- a/hotspot/src/share/vm/runtime/objectMonitor.cpp
+++ b/hotspot/src/share/vm/runtime/objectMonitor.cpp
@@ -50,6 +50,10 @@
 # include "os_windows.inline.hpp"
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+# include "thread_bsd.inline.hpp"
+#endif
 
 #if defined(__GNUC__) && !defined(IA64)
   // Need to inhibit inlining for older versions of GCC to avoid build-time failures
diff --git a/hotspot/src/share/vm/runtime/os.cpp b/hotspot/src/share/vm/runtime/os.cpp
index 53e918d..0563d8a 100644
--- a/hotspot/src/share/vm/runtime/os.cpp
+++ b/hotspot/src/share/vm/runtime/os.cpp
@@ -60,6 +60,10 @@
 # include "os_windows.inline.hpp"
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+# include "thread_bsd.inline.hpp"
+#endif
 
 # include <signal.h>
 
@@ -116,7 +120,11 @@ char* os::iso8601_time(char* buffer, size_t buffer_length) {
     assert(false, "Failed localtime_pd");
     return NULL;
   }
+#if defined(_ALLBSD_SOURCE)
+  const time_t zone = (time_t) time_struct.tm_gmtoff;
+#else
   const time_t zone = timezone;
+#endif
 
   // If daylight savings time is in effect,
   // we are 1 hour East of our time zone
@@ -384,6 +392,13 @@ void* os::native_java_library() {
     if (_native_java_library == NULL) {
       vm_exit_during_initialization("Unable to load native library", ebuf);
     }
+
+#if defined(__OpenBSD__)
+    // Work-around OpenBSD's lack of $ORIGIN support by pre-loading libnet.so
+    // ignore errors
+    dll_build_name(buffer, sizeof(buffer), Arguments::get_dll_dir(), "net");
+    dll_load(buffer, ebuf, sizeof(ebuf));
+#endif
   }
   static jboolean onLoaded = JNI_FALSE;
   if (onLoaded) {
@@ -1279,6 +1294,17 @@ size_t os::page_size_for_region(size_t region_min_size, size_t region_max_size,
 }
 
 #ifndef PRODUCT
+void os::trace_page_sizes(const char* str, const size_t* page_sizes, int count)
+{
+  if (TracePageSizes) {
+    tty->print("%s: ", str);
+    for (int i = 0; i < count; ++i) {
+      tty->print(" " SIZE_FORMAT, page_sizes[i]);
+    }
+    tty->cr();
+  }
+}
+
 void os::trace_page_sizes(const char* str, const size_t region_min_size,
                           const size_t region_max_size, const size_t page_size,
                           const char* base, const size_t size)
@@ -1346,7 +1372,7 @@ int os::get_line_chars(int fd, char* buf, const size_t bsize){
   size_t sz, i = 0;
 
   // read until EOF, EOL or buf is full
-  while ((sz = (int) read(fd, &buf[i], 1)) == 1 && i < (bsize-1) && buf[i] != '\n') {
+  while ((sz = (int) read(fd, &buf[i], 1)) == 1 && i < (bsize-2) && buf[i] != '\n') {
      ++i;
   }
 
@@ -1367,7 +1393,7 @@ int os::get_line_chars(int fd, char* buf, const size_t bsize){
   }
 
   // line is longer than size of buf, skip to EOL
-  int ch;
+  char ch;
   while (read(fd, &ch, 1) == 1 && ch != '\n') {
     // Do nothing
   }
diff --git a/hotspot/src/share/vm/runtime/os.hpp b/hotspot/src/share/vm/runtime/os.hpp
index 0b401b1..f92d92d 100644
--- a/hotspot/src/share/vm/runtime/os.hpp
+++ b/hotspot/src/share/vm/runtime/os.hpp
@@ -39,6 +39,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "jvm_windows.h"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "jvm_bsd.h"
+#endif
 
 // os defines the interface to operating system; this includes traditional
 // OS services (time, I/O) as well as other functionality with system-
@@ -208,11 +211,13 @@ class os: AllStatic {
                                      size_t region_max_size,
                                      uint min_pages);
 
-  // Method for tracing page sizes returned by the above method; enabled by
+  // Methods for tracing page sizes returned by the above method; enabled by
   // TracePageSizes.  The region_{min,max}_size parameters should be the values
   // passed to page_size_for_region() and page_size should be the result of that
   // call.  The (optional) base and size parameters should come from the
   // ReservedSpace base() and size() methods.
+  static void trace_page_sizes(const char* str, const size_t* page_sizes,
+                               int count) PRODUCT_RETURN;
   static void trace_page_sizes(const char* str, const size_t region_min_size,
                                const size_t region_max_size,
                                const size_t page_size,
@@ -673,6 +678,9 @@ class os: AllStatic {
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.hpp"
+#endif
 #ifdef TARGET_OS_ARCH_linux_x86
 # include "os_linux_x86.hpp"
 #endif
@@ -697,6 +705,12 @@ class os: AllStatic {
 #ifdef TARGET_OS_ARCH_linux_ppc
 # include "os_linux_ppc.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "os_bsd_x86.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "os_bsd_zero.hpp"
+#endif
 
 
   // debugging support (mostly used by debug.cpp but also fatal error handler)
diff --git a/hotspot/src/share/vm/runtime/osThread.hpp b/hotspot/src/share/vm/runtime/osThread.hpp
index 5df645a..984bc9b 100644
--- a/hotspot/src/share/vm/runtime/osThread.hpp
+++ b/hotspot/src/share/vm/runtime/osThread.hpp
@@ -109,6 +109,9 @@ class OSThread: public CHeapObj {
 #ifdef TARGET_OS_FAMILY_windows
 # include "osThread_windows.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "osThread_bsd.hpp"
+#endif
 
 };
 
diff --git a/hotspot/src/share/vm/runtime/reflection.cpp b/hotspot/src/share/vm/runtime/reflection.cpp
index e25c1af..29858be 100644
--- a/hotspot/src/share/vm/runtime/reflection.cpp
+++ b/hotspot/src/share/vm/runtime/reflection.cpp
@@ -844,16 +844,6 @@ oop Reflection::new_field(fieldDescriptor* fd, bool intern_name, TRAPS) {
 }
 
 
-//---------------------------------------------------------------------------
-//
-// Supporting routines for old native code-based reflection (pre-JDK 1.4).
-//
-// See reflection.hpp for details.
-//
-//---------------------------------------------------------------------------
-
-#ifdef SUPPORT_OLD_REFLECTION
-
 methodHandle Reflection::resolve_interface_call(instanceKlassHandle klass, methodHandle method,
                                                 KlassHandle recv_klass, Handle receiver, TRAPS) {
   assert(!method.is_null() , "method should not be null");
@@ -1081,519 +1071,6 @@ BasicType Reflection::basic_type_mirror_to_basic_type(oop basic_type_mirror, TRA
   return java_lang_Class::primitive_type(basic_type_mirror);
 }
 
-
-bool Reflection::match_parameter_types(methodHandle method, objArrayHandle types, int parameter_count, TRAPS) {
-  int types_len = types.is_null() ? 0 : types->length();
-  if (types_len != parameter_count) return false;
-  if (parameter_count > 0) {
-    objArrayHandle method_types = get_parameter_types(method, parameter_count, NULL, CHECK_false);
-    for (int index = 0; index < parameter_count; index++) {
-      if (types->obj_at(index) != method_types->obj_at(index)) {
-        return false;
-      }
-    }
-  }
-  return true;
-}
-
-
-oop Reflection::new_field(FieldStream* st, TRAPS) {
-  Symbol*  field_name = st->name();
-  Handle name = java_lang_String::create_from_symbol(field_name, CHECK_NULL);
-  Symbol*  signature = st->signature();
-  Handle type = new_type(signature, st->klass(), CHECK_NULL);
-  Handle rh  = java_lang_reflect_Field::create(CHECK_NULL);
-  oop result = rh();
-
-  java_lang_reflect_Field::set_clazz(result, st->klass()->java_mirror());
-  java_lang_reflect_Field::set_slot(result, st->index());
-  java_lang_reflect_Field::set_name(result, name());
-  java_lang_reflect_Field::set_type(result, type());
-  // Note the ACC_ANNOTATION bit, which is a per-class access flag, is never set here.
-  java_lang_reflect_Field::set_modifiers(result, st->access_flags().as_int() & JVM_RECOGNIZED_FIELD_MODIFIERS);
-  java_lang_reflect_Field::set_override(result, false);
-  return result;
-}
-
-
-bool Reflection::resolve_field(Handle field_mirror, Handle& receiver, fieldDescriptor* fd, bool check_final, TRAPS) {
-  if (field_mirror.is_null()) {
-    THROW_(vmSymbols::java_lang_NullPointerException(), false);
-  }
-
-  instanceKlassHandle klass (THREAD, java_lang_Class::as_klassOop(java_lang_reflect_Field::clazz(field_mirror())));
-  int                 slot  = java_lang_reflect_Field::slot(field_mirror());
-
-  // Ensure klass is initialized
-  klass->initialize(CHECK_false);
-  fd->initialize(klass(), slot);
-
-  bool is_static = fd->is_static();
-  KlassHandle receiver_klass;
-
-  if (is_static) {
-    receiver = KlassHandle(THREAD, klass());
-    receiver_klass = klass;
-  } else {
-    // Check object is a non-null instance of declaring class
-    if (receiver.is_null()) {
-      THROW_(vmSymbols::java_lang_NullPointerException(), false);
-    }
-    if (!receiver->is_a(klass())) {
-      THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), "object is not an instance of declaring class", false);
-    }
-    receiver_klass = KlassHandle(THREAD, receiver->klass());
-  }
-
-  // Access checking (unless overridden by Field)
-  if (!java_lang_reflect_Field::override(field_mirror())) {
-    if (!(klass->is_public() && fd->is_public())) {
-      bool access_check = reflect_check_access(klass(), fd->access_flags(), receiver_klass(), false, CHECK_false);
-      if (!access_check) {
-        return false; // exception
-      }
-    }
-  }
-
-  if (check_final && fd->is_final()) {
-    // In 1.3 we always throw an error when attempting to set a final field.
-    // In 1.2.x, this was allowed in the override bit was set by calling Field.setAccessible(true).
-    // We currently maintain backwards compatibility. See bug 4250960.
-    bool strict_final_check = !JDK_Version::is_jdk12x_version();
-    if (strict_final_check || !java_lang_reflect_Field::override(field_mirror())) {
-      THROW_MSG_(vmSymbols::java_lang_IllegalAccessException(), "field is final", false);
-    }
-  }
-  return true;
-}
-
-
-BasicType Reflection::field_get(jvalue* value, fieldDescriptor* fd, Handle receiver)  {
-  BasicType field_type = fd->field_type();
-  int offset = fd->offset();
-  switch (field_type) {
-    case T_BOOLEAN:
-      value->z = receiver->bool_field(offset);
-      break;
-    case T_CHAR:
-      value->c = receiver->char_field(offset);
-      break;
-    case T_FLOAT:
-      value->f = receiver->float_field(offset);
-      break;
-    case T_DOUBLE:
-      value->d = receiver->double_field(offset);
-      break;
-    case T_BYTE:
-      value->b = receiver->byte_field(offset);
-      break;
-    case T_SHORT:
-      value->s = receiver->short_field(offset);
-      break;
-    case T_INT:
-      value->i = receiver->int_field(offset);
-      break;
-    case T_LONG:
-      value->j = receiver->long_field(offset);
-      break;
-    case T_OBJECT:
-    case T_ARRAY:
-      value->l = (jobject) receiver->obj_field(offset);
-      break;
-    default:
-      return T_ILLEGAL;
-  }
-  return field_type;
-}
-
-
-void Reflection::field_set(jvalue* value, fieldDescriptor* fd, Handle receiver, BasicType value_type, TRAPS) {
-  BasicType field_type = fd->field_type();
-  if (field_type != value_type) {
-    widen(value, value_type, field_type, CHECK);
-  }
-
-  int offset = fd->offset();
-  switch (field_type) {
-    case T_BOOLEAN:
-      receiver->bool_field_put(offset, value->z);
-      break;
-    case T_CHAR:
-      receiver->char_field_put(offset, value->c);
-      break;
-    case T_FLOAT:
-      receiver->float_field_put(offset, value->f);
-      break;
-    case T_DOUBLE:
-      receiver->double_field_put(offset, value->d);
-      break;
-    case T_BYTE:
-      receiver->byte_field_put(offset, value->b);
-      break;
-    case T_SHORT:
-      receiver->short_field_put(offset, value->s);
-      break;
-    case T_INT:
-      receiver->int_field_put(offset, value->i);
-      break;
-    case T_LONG:
-      receiver->long_field_put(offset, value->j);
-      break;
-    case T_OBJECT:
-    case T_ARRAY: {
-      Handle obj(THREAD, (oop) value->l);
-      if (obj.not_null()) {
-        Symbol*  signature = fd->signature();
-        Handle       loader   (THREAD, fd->loader());
-        Handle       protect  (THREAD, Klass::cast(fd->field_holder())->protection_domain());
-        klassOop k = SystemDictionary::resolve_or_fail(signature, loader, protect, true, CHECK); // may block
-        if (!obj->is_a(k)) {
-          THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "field type mismatch");
-        }
-      }
-      receiver->obj_field_put(offset, obj());
-      break;
-    }
-    default:
-      THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "field type mismatch");
-  }
-}
-
-
-oop Reflection::reflect_field(oop mirror, Symbol* field_name, jint which, TRAPS) {
-  // Exclude primitive types and array types
-  if (java_lang_Class::is_primitive(mirror))                             return NULL;
-  if (Klass::cast(java_lang_Class::as_klassOop(mirror))->oop_is_array()) return NULL;
-
-  instanceKlassHandle k(THREAD, java_lang_Class::as_klassOop(mirror));
-  bool local_fields_only = (which == DECLARED);
-
-  // Ensure class is linked
-  k->link_class(CHECK_NULL);
-
-  // Search class and interface fields
-  for (FieldStream st(k, local_fields_only, false); !st.eos(); st.next()) {
-    if (st.name() == field_name) {
-      if (local_fields_only || st.access_flags().is_public()) {
-        return new_field(&st, THREAD);
-      }
-    }
-  }
-
-  return NULL;
-}
-
-
-objArrayOop Reflection::reflect_fields(oop mirror, jint which, TRAPS) {
-  // Exclude primitive types and array types
-  if (java_lang_Class::is_primitive(mirror)
-      || Klass::cast(java_lang_Class::as_klassOop(mirror))->oop_is_array()) {
-    Symbol* name = vmSymbols::java_lang_reflect_Field();
-    klassOop klass = SystemDictionary::resolve_or_fail(name, true, CHECK_NULL);
-    return oopFactory::new_objArray(klass, 0, CHECK_NULL);  // Return empty array
-  }
-
-  instanceKlassHandle k(THREAD, java_lang_Class::as_klassOop(mirror));
-
-  // Ensure class is linked
-  k->link_class(CHECK_NULL);
-
-  bool local_fields_only = (which == DECLARED);
-  int count = 0;
-  { // Compute fields count for class and interface fields
-    for (FieldStream st(k, local_fields_only, false); !st.eos(); st.next()) {
-      if (local_fields_only || st.access_flags().is_public()) {
-        count++;
-      }
-    }
-  }
-
-  // Allocate result
-  Symbol* name = vmSymbols::java_lang_reflect_Field();
-  klassOop klass = SystemDictionary::resolve_or_fail(name, true, CHECK_NULL);
-  objArrayOop r = oopFactory::new_objArray(klass, count, CHECK_NULL);
-  objArrayHandle result (THREAD, r);
-
-  // Fill in results backwards
-  {
-    for (FieldStream st(k, local_fields_only, false); !st.eos(); st.next()) {
-      if (local_fields_only || st.access_flags().is_public()) {
-        oop field = new_field(&st, CHECK_NULL);
-        result->obj_at_put(--count, field);
-      }
-    }
-    assert(count == 0, "just checking");
-  }
-  return result();
-}
-
-
-oop Reflection::reflect_method(oop mirror, Symbol* method_name, objArrayHandle types, jint which, TRAPS) {
-  if (java_lang_Class::is_primitive(mirror))  return NULL;
-  klassOop klass = java_lang_Class::as_klassOop(mirror);
-  if (Klass::cast(klass)->oop_is_array() && which == MEMBER_DECLARED)  return NULL;
-
-  if (Klass::cast(java_lang_Class::as_klassOop(mirror))->oop_is_array()) {
-    klass = SystemDictionary::Object_klass();
-  }
-  instanceKlassHandle h_k(THREAD, klass);
-
-  // Ensure klass is linked (need not be initialized)
-  h_k->link_class(CHECK_NULL);
-
-  // For interfaces include static initializers under jdk1.2.x (since classic does that)
-  bool include_clinit = JDK_Version::is_jdk12x_version() && h_k->is_interface();
-
-  switch (which) {
-    case MEMBER_PUBLIC:
-      // First the public non-static methods (works if method holder is an interface)
-      // Note that we can ignore checks for overridden methods, since we go up the hierarchy.
-      {
-        for (MethodStream st(h_k, false, false); !st.eos(); st.next()) {
-          methodHandle m(THREAD, st.method());
-          // For interfaces include static initializers since classic does that!
-          if (method_name == m->name() && (include_clinit || (m->is_public() && !m->is_static() && !m->is_initializer()))) {
-            Symbol*  signature = m->signature();
-            bool parameter_match = match_parameter_types(m, types, ArgumentCount(signature).size(), CHECK_NULL);
-            if (parameter_match) {
-              return new_method(m, false, false, THREAD);
-            }
-          }
-        }
-      }
-      // Then the public static methods (works if method holder is an interface)
-      {
-        for (MethodStream st(h_k, false, false); !st.eos(); st.next()) {
-          methodHandle m(THREAD, st.method());
-          if (method_name == m->name() && m->is_public() && m->is_static() && !m->is_initializer()) {
-            Symbol*  signature = m->signature();
-            bool parameter_match = match_parameter_types(m, types, ArgumentCount(signature).size(), CHECK_NULL);
-            if (parameter_match) {
-              return new_method(m, false, false, THREAD);
-            }
-          }
-        }
-      }
-      break;
-    case MEMBER_DECLARED:
-      // All local methods
-      {
-        for (MethodStream st(h_k, true, true); !st.eos(); st.next()) {
-          methodHandle m(THREAD, st.method());
-          if (method_name == m->name() && !m->is_initializer()) {
-            Symbol*  signature = m->signature();
-            bool parameter_match = match_parameter_types(m, types, ArgumentCount(signature).size(), CHECK_NULL);
-            if (parameter_match) {
-              return new_method(m, false, false, THREAD);
-            }
-          }
-        }
-      }
-      break;
-    default:
-      break;
-  }
-  return NULL;
-}
-
-
-objArrayOop Reflection::reflect_methods(oop mirror, jint which, TRAPS) {
-  // Exclude primitive types
-  if (java_lang_Class::is_primitive(mirror) ||
-     (Klass::cast(java_lang_Class::as_klassOop(mirror))->oop_is_array() && (which == MEMBER_DECLARED))) {
-    klassOop klass = SystemDictionary::reflect_Method_klass();
-    return oopFactory::new_objArray(klass, 0, CHECK_NULL);  // Return empty array
-  }
-
-  klassOop klass = java_lang_Class::as_klassOop(mirror);
-  if (Klass::cast(java_lang_Class::as_klassOop(mirror))->oop_is_array()) {
-    klass = SystemDictionary::Object_klass();
-  }
-  instanceKlassHandle h_k(THREAD, klass);
-
-  // Ensure klass is linked (need not be initialized)
-  h_k->link_class(CHECK_NULL);
-
-  // We search the (super)interfaces only if h_k is an interface itself
-  bool is_interface = h_k->is_interface();
-
-  // For interfaces include static initializers under jdk1.2.x (since classic does that)
-  bool include_clinit = JDK_Version::is_jdk12x_version() && is_interface;
-
-  switch (which) {
-    case MEMBER_PUBLIC:
-      {
-
-        // Count public methods (non-static and static)
-        int count = 0;
-        {
-          for (MethodStream st(h_k, false, false); !st.eos(); st.next()) {
-            methodOop m = st.method();
-            // For interfaces include static initializers since classic does that!
-            if (include_clinit || (!m->is_initializer() && m->is_public() && !m->is_overridden_in(h_k()))) {
-              count++;
-            }
-          }
-        }
-
-        // Allocate result
-        klassOop klass = SystemDictionary::reflect_Method_klass();
-        objArrayOop r = oopFactory::new_objArray(klass, count, CHECK_NULL);
-        objArrayHandle h_result (THREAD, r);
-
-        // Fill in results backwards
-        {
-          // First the non-static public methods
-          for (MethodStream st(h_k, false, false); !st.eos(); st.next()) {
-            methodHandle m (THREAD, st.method());
-            if (!m->is_static() && !m->is_initializer() && m->is_public() && !m->is_overridden_in(h_k())) {
-              oop method = new_method(m, false, false, CHECK_NULL);
-              if (method == NULL) {
-                return NULL;
-              } else {
-                h_result->obj_at_put(--count, method);
-              }
-            }
-          }
-        }
-        {
-          // Then the static public methods
-          for (MethodStream st(h_k, false, !is_interface); !st.eos(); st.next()) {
-            methodHandle m (THREAD, st.method());
-            if (m->is_static() && (include_clinit || (!m->is_initializer()) && m->is_public() && !m->is_overridden_in(h_k()))) {
-              oop method = new_method(m, false, false, CHECK_NULL);
-              if (method == NULL) {
-                return NULL;
-              } else {
-                h_result->obj_at_put(--count, method);
-              }
-            }
-          }
-        }
-
-        assert(count == 0, "just checking");
-        return h_result();
-      }
-
-    case MEMBER_DECLARED:
-      {
-        // Count all methods
-        int count = 0;
-        {
-          for (MethodStream st(h_k, true, !is_interface); !st.eos(); st.next()) {
-            methodOop m = st.method();
-            if (!m->is_initializer()) {
-              count++;
-            }
-          }
-        }
-        // Allocate result
-        klassOop klass = SystemDictionary::reflect_Method_klass();
-        objArrayOop r = oopFactory::new_objArray(klass, count, CHECK_NULL);
-        objArrayHandle h_result (THREAD, r);
-
-        // Fill in results backwards
-        {
-          for (MethodStream st(h_k, true, true); !st.eos(); st.next()) {
-            methodHandle m (THREAD, st.method());
-            if (!m->is_initializer()) {
-              oop method = new_method(m, false, false, CHECK_NULL);
-              if (method == NULL) {
-                return NULL;
-              } else {
-                h_result->obj_at_put(--count, method);
-              }
-            }
-          }
-        }
-        assert(count == 0, "just checking");
-        return h_result();
-      }
-  }
-  ShouldNotReachHere();
-  return NULL;
-}
-
-
-oop Reflection::reflect_constructor(oop mirror, objArrayHandle types, jint which, TRAPS) {
-
-  // Exclude primitive, interface and array types
-  bool prim = java_lang_Class::is_primitive(mirror);
-  Klass* klass = prim ? NULL : Klass::cast(java_lang_Class::as_klassOop(mirror));
-  if (prim || klass->is_interface() || klass->oop_is_array()) return NULL;
-
-  // Must be instance klass
-  instanceKlassHandle h_k(THREAD, java_lang_Class::as_klassOop(mirror));
-
-  // Ensure klass is linked (need not be initialized)
-  h_k->link_class(CHECK_NULL);
-
-  bool local_only = (which == MEMBER_DECLARED);
-  for (MethodStream st(h_k, true, true); !st.eos(); st.next()) {
-    methodHandle m(THREAD, st.method());
-    if (m->name() == vmSymbols::object_initializer_name() && (local_only || m->is_public())) {
-      Symbol*  signature = m->signature();
-      bool parameter_match = match_parameter_types(m, types, ArgumentCount(signature).size(), CHECK_NULL);
-      if (parameter_match) {
-        return new_constructor(m, THREAD);
-      }
-    }
-  }
-
-  return NULL;
-}
-
-
-objArrayOop Reflection::reflect_constructors(oop mirror, jint which, TRAPS) {
-  // Exclude primitive, interface and array types
-  bool prim  = java_lang_Class::is_primitive(mirror);
-  Klass* k = prim ? NULL : Klass::cast(java_lang_Class::as_klassOop(mirror));
-  if (prim || k->is_interface() || k->oop_is_array()) {
-    return oopFactory::new_objArray(SystemDictionary::reflect_Constructor_klass(), 0, CHECK_NULL);  // Return empty array
-  }
-
-  // Must be instanceKlass at this point
-  instanceKlassHandle h_k(THREAD, java_lang_Class::as_klassOop(mirror));
-
-  // Ensure klass is linked (need not be initialized)
-  h_k->link_class(CHECK_NULL);
-
-  bool local_only = (which == MEMBER_DECLARED);
-  int count = 0;
-  {
-    for (MethodStream st(h_k, true, true); !st.eos(); st.next()) {
-      methodOop m = st.method();
-      if (m->name() == vmSymbols::object_initializer_name() && (local_only || m->is_public())) {
-        count++;
-      }
-    }
-  }
-
-  // Allocate result
-  Symbol* name = vmSymbols::java_lang_reflect_Constructor();
-  klassOop klass = SystemDictionary::resolve_or_fail(name, true, CHECK_NULL);
-  objArrayOop r = oopFactory::new_objArray(klass, count, CHECK_NULL);
-  objArrayHandle h_result (THREAD, r);
-
-  // Fill in results backwards
-  {
-    for (MethodStream st(h_k, true, true); !st.eos(); st.next()) {
-      methodHandle m (THREAD, st.method());
-      if (m->name() == vmSymbols::object_initializer_name() && (local_only || m->is_public())) {
-        oop constr = new_constructor(m, CHECK_NULL);
-        if (constr == NULL) {
-          return NULL;
-        } else {
-          h_result->obj_at_put(--count, constr);
-        }
-      }
-    }
-    assert(count == 0, "just checking");
-  }
-  return h_result();
-}
-
-
 // This would be nicer if, say, java.lang.reflect.Method was a subclass
 // of java.lang.reflect.Constructor
 
@@ -1647,6 +1124,3 @@ oop Reflection::invoke_constructor(oop constructor_mirror, objArrayHandle args,
   invoke(klass, method, receiver, override, ptypes, T_VOID, args, false, CHECK_NULL);
   return receiver();
 }
-
-
-#endif /* SUPPORT_OLD_REFLECTION */
diff --git a/hotspot/src/share/vm/runtime/reflection.hpp b/hotspot/src/share/vm/runtime/reflection.hpp
index 90a3c0c..cf54253 100644
--- a/hotspot/src/share/vm/runtime/reflection.hpp
+++ b/hotspot/src/share/vm/runtime/reflection.hpp
@@ -27,7 +27,6 @@
 
 #include "oops/oop.hpp"
 #include "runtime/fieldDescriptor.hpp"
-#include "runtime/reflectionCompat.hpp"
 #include "utilities/accessFlags.hpp"
 #include "utilities/growableArray.hpp"
 
@@ -120,16 +119,6 @@ class Reflection: public AllStatic {
   // Create a java.lang.reflect.Field object based on a field descriptor
   static oop new_field(fieldDescriptor* fd, bool intern_name, TRAPS);
 
-  //---------------------------------------------------------------------------
-  //
-  // Support for old native code-based reflection (pre-JDK 1.4)
-  //
-  // NOTE: the method and constructor invocation code is still used
-  // for startup time reasons; see reflectionCompat.hpp.
-  //
-  //---------------------------------------------------------------------------
-
-#ifdef SUPPORT_OLD_REFLECTION
 private:
   // method resolution for invoke
   static methodHandle resolve_interface_call(instanceKlassHandle klass, methodHandle method, KlassHandle recv_klass, Handle receiver, TRAPS);
@@ -144,35 +133,11 @@ private:
   // Conversion
   static BasicType basic_type_mirror_to_basic_type(oop basic_type_mirror, TRAPS);
 
-  static bool match_parameter_types(methodHandle method, objArrayHandle types, int parameter_count, TRAPS);
-  // Creating new java.lang.reflect.xxx wrappers
-  static oop new_field(FieldStream* st, TRAPS);
-
 public:
-  // Field lookup and verification.
-  static bool      resolve_field(Handle field_mirror, Handle& receiver, fieldDescriptor* fd, bool check_final, TRAPS);
-
-  // Reflective field access. Returns type code. Throws IllegalArgumentException.
-  static BasicType field_get(jvalue* value, fieldDescriptor* fd, Handle receiver);
-  static void      field_set(jvalue* value, fieldDescriptor* fd, Handle receiver, BasicType value_type, TRAPS);
-
-  // Reflective lookup of fields. Returns java.lang.reflect.Field instances.
-  static oop         reflect_field(oop mirror, Symbol* field_name, jint which, TRAPS);
-  static objArrayOop reflect_fields(oop mirror, jint which, TRAPS);
-
-  // Reflective lookup of methods. Returns java.lang.reflect.Method instances.
-  static oop         reflect_method(oop mirror, Symbol* method_name, objArrayHandle types, jint which, TRAPS);
-  static objArrayOop reflect_methods(oop mirror, jint which, TRAPS);
-
-  // Reflective lookup of constructors. Returns java.lang.reflect.Constructor instances.
-  static oop         reflect_constructor(oop mirror, objArrayHandle types, jint which, TRAPS);
-  static objArrayOop reflect_constructors(oop mirror, jint which, TRAPS);
-
   // Method invokation through java.lang.reflect.Method
   static oop      invoke_method(oop method_mirror, Handle receiver, objArrayHandle args, TRAPS);
   // Method invokation through java.lang.reflect.Constructor
   static oop      invoke_constructor(oop method_mirror, objArrayHandle args, TRAPS);
-#endif /* SUPPORT_OLD_REFLECTION */
 
 };
 
diff --git a/hotspot/src/share/vm/runtime/reflectionUtils.hpp b/hotspot/src/share/vm/runtime/reflectionUtils.hpp
index c9eecaa..5d4ba50 100644
--- a/hotspot/src/share/vm/runtime/reflectionUtils.hpp
+++ b/hotspot/src/share/vm/runtime/reflectionUtils.hpp
@@ -107,10 +107,8 @@ class MethodStream : public KlassStream {
 
 class FieldStream : public KlassStream {
  private:
-  int length() const                { return fields()->length(); }
-  constantPoolOop constants() const { return _klass->constants(); }
- protected:
-  typeArrayOop fields() const       { return _klass->fields(); }
+  int length() const                { return _klass->java_fields_count(); }
+
  public:
   FieldStream(instanceKlassHandle klass, bool local_only, bool classes_only)
     : KlassStream(klass, local_only, classes_only) {
@@ -118,26 +116,23 @@ class FieldStream : public KlassStream {
     next();
   }
 
-  void next() { _index -= instanceKlass::next_offset; }
+  void next() { _index -= 1; }
 
   // Accessors for current field
   AccessFlags access_flags() const {
     AccessFlags flags;
-    flags.set_flags(fields()->ushort_at(index() + instanceKlass::access_flags_offset));
+    flags.set_flags(_klass->field_access_flags(_index));
     return flags;
   }
   Symbol* name() const {
-    int name_index = fields()->ushort_at(index() + instanceKlass::name_index_offset);
-    return constants()->symbol_at(name_index);
+    return _klass->field_name(_index);
   }
   Symbol* signature() const {
-    int signature_index = fields()->ushort_at(index() +
-                                       instanceKlass::signature_index_offset);
-    return constants()->symbol_at(signature_index);
+    return _klass->field_signature(_index);
   }
   // missing: initval()
   int offset() const {
-    return _klass->offset_from_fields( index() );
+    return _klass->field_offset( index() );
   }
 };
 
@@ -213,10 +208,10 @@ class FilteredFieldStream : public FieldStream {
   }
   int field_count();
   void next() {
-    _index -= instanceKlass::next_offset;
+    _index -= 1;
     if (has_filtered_field()) {
       while (_index >=0 && FilteredFieldsMap::is_filtered_field((klassOop)_klass(), offset())) {
-        _index -= instanceKlass::next_offset;
+        _index -= 1;
       }
     }
   }
diff --git a/hotspot/src/share/vm/runtime/safepoint.cpp b/hotspot/src/share/vm/runtime/safepoint.cpp
index bef8d6c..d338931 100644
--- a/hotspot/src/share/vm/runtime/safepoint.cpp
+++ b/hotspot/src/share/vm/runtime/safepoint.cpp
@@ -78,6 +78,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 #ifndef SERIALGC
 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp"
 #include "gc_implementation/shared/concurrentGCThread.hpp"
diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp
index fb08745..34369e8 100644
--- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp
+++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp
@@ -2130,9 +2130,9 @@ class AdapterFingerPrint : public CHeapObj {
  public:
   AdapterFingerPrint(int total_args_passed, BasicType* sig_bt) {
     // The fingerprint is based on the BasicType signature encoded
-    // into an array of ints with four entries per int.
+    // into an array of ints with eight entries per int.
     int* ptr;
-    int len = (total_args_passed + 3) >> 2;
+    int len = (total_args_passed + 7) >> 3;
     if (len <= (int)(sizeof(_value._compact) / sizeof(int))) {
       _value._compact[0] = _value._compact[1] = _value._compact[2] = 0;
       // Storing the signature encoded as signed chars hits about 98%
@@ -2145,11 +2145,11 @@ class AdapterFingerPrint : public CHeapObj {
       ptr = _value._fingerprint;
     }
 
-    // Now pack the BasicTypes with 4 per int
+    // Now pack the BasicTypes with 8 per int
     int sig_index = 0;
     for (int index = 0; index < len; index++) {
       int value = 0;
-      for (int byte = 0; byte < 4; byte++) {
+      for (int byte = 0; byte < 8; byte++) {
         if (sig_index < total_args_passed) {
           value = (value << 4) | adapter_encoding(sig_bt[sig_index++]);
         }
@@ -2190,8 +2190,9 @@ class AdapterFingerPrint : public CHeapObj {
 
   const char* as_string() {
     stringStream st;
+    st.print("0x");
     for (int i = 0; i < length(); i++) {
-      st.print(PTR_FORMAT, value(i));
+      st.print("%08x", value(i));
     }
     return st.as_string();
   }
diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.hpp b/hotspot/src/share/vm/runtime/sharedRuntime.hpp
index d42ade4..145dacd 100644
--- a/hotspot/src/share/vm/runtime/sharedRuntime.hpp
+++ b/hotspot/src/share/vm/runtime/sharedRuntime.hpp
@@ -45,6 +45,8 @@ class vframeStream;
 // information, etc.
 
 class SharedRuntime: AllStatic {
+  friend class VMStructs;
+
  private:
   static methodHandle resolve_sub_helper(JavaThread *thread,
                                      bool is_virtual,
diff --git a/hotspot/src/share/vm/runtime/simpleThresholdPolicy.cpp b/hotspot/src/share/vm/runtime/simpleThresholdPolicy.cpp
index 13e3b82..d132c0e 100644
--- a/hotspot/src/share/vm/runtime/simpleThresholdPolicy.cpp
+++ b/hotspot/src/share/vm/runtime/simpleThresholdPolicy.cpp
@@ -206,11 +206,7 @@ nmethod* SimpleThresholdPolicy::event(methodHandle method, methodHandle inlinee,
 
 // Check if the method can be compiled, change level if necessary
 void SimpleThresholdPolicy::compile(methodHandle mh, int bci, CompLevel level, TRAPS) {
-  // Take the given ceiling into the account.
-  // NOTE: You can set it to 1 to get a pure C1 version.
-  if ((CompLevel)TieredStopAtLevel < level) {
-    level = (CompLevel)TieredStopAtLevel;
-  }
+  assert(level <= TieredStopAtLevel, "Invalid compilation level");
   if (level == CompLevel_none) {
     return;
   }
@@ -227,10 +223,10 @@ void SimpleThresholdPolicy::compile(methodHandle mh, int bci, CompLevel level, T
   if (bci != InvocationEntryBci && mh->is_not_osr_compilable()) {
     return;
   }
-  if (PrintTieredEvents) {
-    print_event(COMPILE, mh, mh, bci, level);
-  }
   if (!CompileBroker::compilation_is_in_queue(mh, bci)) {
+    if (PrintTieredEvents) {
+      print_event(COMPILE, mh, mh, bci, level);
+    }
     submit_compile(mh, bci, level, THREAD);
   }
 }
@@ -288,40 +284,42 @@ bool SimpleThresholdPolicy::is_mature(methodOop method) {
 
 // Common transition function. Given a predicate determines if a method should transition to another level.
 CompLevel SimpleThresholdPolicy::common(Predicate p, methodOop method, CompLevel cur_level) {
-  if (is_trivial(method)) return CompLevel_simple;
-
   CompLevel next_level = cur_level;
   int i = method->invocation_count();
   int b = method->backedge_count();
 
-  switch(cur_level) {
-  case CompLevel_none:
-    // If we were at full profile level, would we switch to full opt?
-    if (common(p, method, CompLevel_full_profile) == CompLevel_full_optimization) {
-      next_level = CompLevel_full_optimization;
-    } else if ((this->*p)(i, b, cur_level)) {
-      next_level = CompLevel_full_profile;
-    }
-    break;
-  case CompLevel_limited_profile:
-  case CompLevel_full_profile:
-    {
-      methodDataOop mdo = method->method_data();
-      if (mdo != NULL) {
-        if (mdo->would_profile()) {
-          int mdo_i = mdo->invocation_count_delta();
-          int mdo_b = mdo->backedge_count_delta();
-          if ((this->*p)(mdo_i, mdo_b, cur_level)) {
+  if (is_trivial(method)) {
+    next_level = CompLevel_simple;
+  } else {
+    switch(cur_level) {
+    case CompLevel_none:
+      // If we were at full profile level, would we switch to full opt?
+      if (common(p, method, CompLevel_full_profile) == CompLevel_full_optimization) {
+        next_level = CompLevel_full_optimization;
+      } else if ((this->*p)(i, b, cur_level)) {
+        next_level = CompLevel_full_profile;
+      }
+      break;
+    case CompLevel_limited_profile:
+    case CompLevel_full_profile:
+      {
+        methodDataOop mdo = method->method_data();
+        if (mdo != NULL) {
+          if (mdo->would_profile()) {
+            int mdo_i = mdo->invocation_count_delta();
+            int mdo_b = mdo->backedge_count_delta();
+            if ((this->*p)(mdo_i, mdo_b, cur_level)) {
+              next_level = CompLevel_full_optimization;
+            }
+          } else {
             next_level = CompLevel_full_optimization;
           }
-        } else {
-          next_level = CompLevel_full_optimization;
         }
       }
+      break;
     }
-    break;
   }
-  return next_level;
+  return MIN2(next_level, (CompLevel)TieredStopAtLevel);
 }
 
 // Determine if a method should be compiled with a normal entry point at a different level.
diff --git a/hotspot/src/share/vm/runtime/simpleThresholdPolicy.hpp b/hotspot/src/share/vm/runtime/simpleThresholdPolicy.hpp
index a7bad85..5aad121 100644
--- a/hotspot/src/share/vm/runtime/simpleThresholdPolicy.hpp
+++ b/hotspot/src/share/vm/runtime/simpleThresholdPolicy.hpp
@@ -98,6 +98,7 @@ public:
     if (is_c2_compile(comp_level)) return c2_count();
     return 0;
   }
+  virtual CompLevel initial_compile_level() { return MIN2((CompLevel)TieredStopAtLevel, CompLevel_initial_compile); }
   virtual void do_safepoint_work() { }
   virtual void delay_compilation(methodOop method) { }
   virtual void disable_compilation(methodOop method) { }
diff --git a/hotspot/src/share/vm/runtime/stubRoutines.cpp b/hotspot/src/share/vm/runtime/stubRoutines.cpp
index 6dd3a9f..f38173f 100644
--- a/hotspot/src/share/vm/runtime/stubRoutines.cpp
+++ b/hotspot/src/share/vm/runtime/stubRoutines.cpp
@@ -51,8 +51,6 @@ address StubRoutines::_catch_exception_entry                    = NULL;
 address StubRoutines::_forward_exception_entry                  = NULL;
 address StubRoutines::_throw_AbstractMethodError_entry          = NULL;
 address StubRoutines::_throw_IncompatibleClassChangeError_entry = NULL;
-address StubRoutines::_throw_ArithmeticException_entry          = NULL;
-address StubRoutines::_throw_NullPointerException_entry         = NULL;
 address StubRoutines::_throw_NullPointerException_at_call_entry = NULL;
 address StubRoutines::_throw_StackOverflowError_entry           = NULL;
 address StubRoutines::_throw_WrongMethodTypeException_entry     = NULL;
@@ -108,6 +106,7 @@ address StubRoutines::_arrayof_jlong_disjoint_arraycopy  = CAST_FROM_FN_PTR(addr
 address StubRoutines::_arrayof_oop_disjoint_arraycopy    = CAST_FROM_FN_PTR(address, StubRoutines::arrayof_oop_copy);
 address StubRoutines::_arrayof_oop_disjoint_arraycopy_uninit  = CAST_FROM_FN_PTR(address, StubRoutines::arrayof_oop_copy_uninit);
 
+address StubRoutines::_zero_aligned_words = CAST_FROM_FN_PTR(address, Copy::zero_to_words);
 
 address StubRoutines::_checkcast_arraycopy               = NULL;
 address StubRoutines::_checkcast_arraycopy_uninit        = NULL;
diff --git a/hotspot/src/share/vm/runtime/stubRoutines.hpp b/hotspot/src/share/vm/runtime/stubRoutines.hpp
index fff494e..8481dce 100644
--- a/hotspot/src/share/vm/runtime/stubRoutines.hpp
+++ b/hotspot/src/share/vm/runtime/stubRoutines.hpp
@@ -128,8 +128,6 @@ class StubRoutines: AllStatic {
   static address _catch_exception_entry;
   static address _throw_AbstractMethodError_entry;
   static address _throw_IncompatibleClassChangeError_entry;
-  static address _throw_ArithmeticException_entry;
-  static address _throw_NullPointerException_entry;
   static address _throw_NullPointerException_at_call_entry;
   static address _throw_StackOverflowError_entry;
   static address _throw_WrongMethodTypeException_entry;
@@ -199,6 +197,9 @@ class StubRoutines: AllStatic {
   static address _arrayof_jshort_fill;
   static address _arrayof_jint_fill;
 
+  // zero heap space aligned to jlong (8 bytes)
+  static address _zero_aligned_words;
+
   // These are versions of the java.lang.Math methods which perform
   // the same operations as the intrinsic version.  They are used for
   // constant folding in the compiler to ensure equivalence.  If the
@@ -251,8 +252,6 @@ class StubRoutines: AllStatic {
   // Implicit exceptions
   static address throw_AbstractMethodError_entry()         { return _throw_AbstractMethodError_entry; }
   static address throw_IncompatibleClassChangeError_entry(){ return _throw_IncompatibleClassChangeError_entry; }
-  static address throw_ArithmeticException_entry()         { return _throw_ArithmeticException_entry; }
-  static address throw_NullPointerException_entry()        { return _throw_NullPointerException_entry; }
   static address throw_NullPointerException_at_call_entry(){ return _throw_NullPointerException_at_call_entry; }
   static address throw_StackOverflowError_entry()          { return _throw_StackOverflowError_entry; }
   static address throw_WrongMethodTypeException_entry()    { return _throw_WrongMethodTypeException_entry; }
@@ -332,6 +331,7 @@ class StubRoutines: AllStatic {
 
   static address select_fill_function(BasicType t, bool aligned, const char* &name);
 
+  static address zero_aligned_words()   { return _zero_aligned_words; }
 
   static double  intrinsic_log(double d) {
     assert(_intrinsic_log != NULL, "must be defined");
diff --git a/hotspot/src/share/vm/runtime/synchronizer.cpp b/hotspot/src/share/vm/runtime/synchronizer.cpp
index d51be5c..09bbc1d 100644
--- a/hotspot/src/share/vm/runtime/synchronizer.cpp
+++ b/hotspot/src/share/vm/runtime/synchronizer.cpp
@@ -51,6 +51,10 @@
 # include "os_windows.inline.hpp"
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+# include "thread_bsd.inline.hpp"
+#endif
 
 #if defined(__GNUC__) && !defined(IA64)
   // Need to inhibit inlining for older versions of GCC to avoid build-time failures
diff --git a/hotspot/src/share/vm/runtime/task.cpp b/hotspot/src/share/vm/runtime/task.cpp
index 4c0cff7..bd45d65 100644
--- a/hotspot/src/share/vm/runtime/task.cpp
+++ b/hotspot/src/share/vm/runtime/task.cpp
@@ -39,6 +39,10 @@
 # include "os_windows.inline.hpp"
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+# include "thread_bsd.inline.hpp"
+#endif
 
 int PeriodicTask::_num_tasks = 0;
 PeriodicTask* PeriodicTask::_tasks[PeriodicTask::max_tasks];
diff --git a/hotspot/src/share/vm/runtime/thread.cpp b/hotspot/src/share/vm/runtime/thread.cpp
index efad706..bc70cd3 100644
--- a/hotspot/src/share/vm/runtime/thread.cpp
+++ b/hotspot/src/share/vm/runtime/thread.cpp
@@ -89,6 +89,10 @@
 # include "os_windows.inline.hpp"
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+# include "thread_bsd.inline.hpp"
+#endif
 #ifndef SERIALGC
 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp"
 #include "gc_implementation/g1/concurrentMarkThread.inline.hpp"
@@ -966,7 +970,7 @@ static void call_initializeSystemClass(TRAPS) {
 // General purpose hook into Java code, run once when the VM is initialized.
 // The Java library method itself may be changed independently from the VM.
 static void call_postVMInitHook(TRAPS) {
-  klassOop k = SystemDictionary::sun_misc_PostVMInitHook_klass();
+  klassOop k = SystemDictionary::PostVMInitHook_klass();
   instanceKlassHandle klass (THREAD, k);
   if (klass.not_null()) {
     JavaValue result(T_VOID);
@@ -1272,7 +1276,6 @@ void JavaThread::initialize() {
   _exception_oop = NULL;
   _exception_pc  = 0;
   _exception_handler_pc = 0;
-  _exception_stack_size = 0;
   _is_method_handle_return = 0;
   _jvmti_thread_state= NULL;
   _should_post_on_exceptions_flag = JNI_FALSE;
@@ -2860,6 +2863,44 @@ void JavaThread::trace_frames() {
   }
 }
 
+class PrintAndVerifyOopClosure: public OopClosure {
+ protected:
+  template <class T> inline void do_oop_work(T* p) {
+    oop obj = oopDesc::load_decode_heap_oop(p);
+    if (obj == NULL) return;
+    tty->print(INTPTR_FORMAT ": ", p);
+    if (obj->is_oop_or_null()) {
+      if (obj->is_objArray()) {
+        tty->print_cr("valid objArray: " INTPTR_FORMAT, (oopDesc*) obj);
+      } else {
+        obj->print();
+      }
+    } else {
+      tty->print_cr("invalid oop: " INTPTR_FORMAT, (oopDesc*) obj);
+    }
+    tty->cr();
+  }
+ public:
+  virtual void do_oop(oop* p) { do_oop_work(p); }
+  virtual void do_oop(narrowOop* p)  { do_oop_work(p); }
+};
+
+
+static void oops_print(frame* f, const RegisterMap *map) {
+  PrintAndVerifyOopClosure print;
+  f->print_value();
+  f->oops_do(&print, NULL, (RegisterMap*)map);
+}
+
+// Print our all the locations that contain oops and whether they are
+// valid or not.  This useful when trying to find the oldest frame
+// where an oop has gone bad since the frame walk is from youngest to
+// oldest.
+void JavaThread::trace_oops() {
+  tty->print_cr("[Trace oops]");
+  frames_do(oops_print);
+}
+
 
 #ifdef ASSERT
 // Print or validate the layout of stack frames
diff --git a/hotspot/src/share/vm/runtime/thread.hpp b/hotspot/src/share/vm/runtime/thread.hpp
index 8387ab0..d507ebd 100644
--- a/hotspot/src/share/vm/runtime/thread.hpp
+++ b/hotspot/src/share/vm/runtime/thread.hpp
@@ -841,7 +841,6 @@ class JavaThread: public Thread {
   volatile oop     _exception_oop;               // Exception thrown in compiled code
   volatile address _exception_pc;                // PC where exception happened
   volatile address _exception_handler_pc;        // PC for handler of exception
-  volatile int     _exception_stack_size;        // Size of frame where exception happened
   volatile int     _is_method_handle_return;     // true (== 1) if the current exception PC is a MethodHandle call site.
 
   // support for compilation
@@ -1182,7 +1181,6 @@ class JavaThread: public Thread {
 
   // Exception handling for compiled methods
   oop      exception_oop() const                 { return _exception_oop; }
-  int      exception_stack_size() const          { return _exception_stack_size; }
   address  exception_pc() const                  { return _exception_pc; }
   address  exception_handler_pc() const          { return _exception_handler_pc; }
   bool     is_method_handle_return() const       { return _is_method_handle_return == 1; }
@@ -1190,7 +1188,6 @@ class JavaThread: public Thread {
   void set_exception_oop(oop o)                  { _exception_oop = o; }
   void set_exception_pc(address a)               { _exception_pc = a; }
   void set_exception_handler_pc(address a)       { _exception_handler_pc = a; }
-  void set_exception_stack_size(int size)        { _exception_stack_size = size; }
   void set_is_method_handle_return(bool value)   { _is_method_handle_return = value ? 1 : 0; }
 
   // Stack overflow support
@@ -1264,7 +1261,6 @@ class JavaThread: public Thread {
   static ByteSize exception_oop_offset()         { return byte_offset_of(JavaThread, _exception_oop       ); }
   static ByteSize exception_pc_offset()          { return byte_offset_of(JavaThread, _exception_pc        ); }
   static ByteSize exception_handler_pc_offset()  { return byte_offset_of(JavaThread, _exception_handler_pc); }
-  static ByteSize exception_stack_size_offset()  { return byte_offset_of(JavaThread, _exception_stack_size); }
   static ByteSize is_method_handle_return_offset() { return byte_offset_of(JavaThread, _is_method_handle_return); }
   static ByteSize stack_guard_state_offset()     { return byte_offset_of(JavaThread, _stack_guard_state   ); }
   static ByteSize suspend_flags_offset()         { return byte_offset_of(JavaThread, _suspend_flags       ); }
@@ -1379,6 +1375,7 @@ public:
   void trace_stack()                             PRODUCT_RETURN;
   void trace_stack_from(vframe* start_vf)        PRODUCT_RETURN;
   void trace_frames()                            PRODUCT_RETURN;
+  void trace_oops()                              PRODUCT_RETURN;
 
   // Print an annotated view of the stack frames
   void print_frame_layout(int depth = 0, bool validate_only = false) NOT_DEBUG_RETURN;
@@ -1610,6 +1607,12 @@ public:
 #ifdef TARGET_OS_ARCH_linux_ppc
 # include "thread_linux_ppc.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "thread_bsd_x86.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "thread_bsd_zero.hpp"
+#endif
 
 
  public:
diff --git a/hotspot/src/share/vm/runtime/threadLocalStorage.cpp b/hotspot/src/share/vm/runtime/threadLocalStorage.cpp
index 0b35cda..0cdc48a 100644
--- a/hotspot/src/share/vm/runtime/threadLocalStorage.cpp
+++ b/hotspot/src/share/vm/runtime/threadLocalStorage.cpp
@@ -36,6 +36,10 @@
 # include "os_windows.inline.hpp"
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+# include "thread_bsd.inline.hpp"
+#endif
 
 // static member initialization
 int ThreadLocalStorage::_thread_index = -1;
diff --git a/hotspot/src/share/vm/runtime/threadLocalStorage.hpp b/hotspot/src/share/vm/runtime/threadLocalStorage.hpp
index c936216..c2f7a9e 100644
--- a/hotspot/src/share/vm/runtime/threadLocalStorage.hpp
+++ b/hotspot/src/share/vm/runtime/threadLocalStorage.hpp
@@ -68,6 +68,12 @@ class ThreadLocalStorage : AllStatic {
 #ifdef TARGET_OS_ARCH_linux_ppc
 # include "threadLS_linux_ppc.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "threadLS_bsd_x86.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "threadLS_bsd_zero.hpp"
+#endif
 
 
  public:
diff --git a/hotspot/src/share/vm/runtime/timer.cpp b/hotspot/src/share/vm/runtime/timer.cpp
index 8e6bbbe..ea05533 100644
--- a/hotspot/src/share/vm/runtime/timer.cpp
+++ b/hotspot/src/share/vm/runtime/timer.cpp
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 
 void elapsedTimer::add(elapsedTimer t) {
diff --git a/hotspot/src/share/vm/runtime/vframeArray.hpp b/hotspot/src/share/vm/runtime/vframeArray.hpp
index 7072d22..6f8d436 100644
--- a/hotspot/src/share/vm/runtime/vframeArray.hpp
+++ b/hotspot/src/share/vm/runtime/vframeArray.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,8 @@ class StackValueCollection;
 // represent an interpreter frame which will eventually be created.
 
 class vframeArrayElement : public _ValueObj {
+  friend class VMStructs;
+
   private:
 
     frame _frame;                                                // the interpreter frame we will unpack into
@@ -107,6 +109,8 @@ class vframeArrayElement : public _ValueObj {
 // at the data in each vframeElement
 
 class vframeArray: public CHeapObj {
+  friend class VMStructs;
+
  private:
 
 
diff --git a/hotspot/src/share/vm/runtime/virtualspace.cpp b/hotspot/src/share/vm/runtime/virtualspace.cpp
index 97a00ca..5eeb1ee 100644
--- a/hotspot/src/share/vm/runtime/virtualspace.cpp
+++ b/hotspot/src/share/vm/runtime/virtualspace.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 
 // ReservedSpace
@@ -68,7 +71,7 @@ ReservedSpace::align_reserved_region(char* addr, const size_t len,
   assert(len >= required_size, "len too small");
 
   const size_t s = size_t(addr);
-  const size_t beg_ofs = s + prefix_size & suffix_align - 1;
+  const size_t beg_ofs = (s + prefix_size) & (suffix_align - 1);
   const size_t beg_delta = beg_ofs == 0 ? 0 : suffix_align - beg_ofs;
 
   if (len < beg_delta + required_size) {
@@ -113,8 +116,8 @@ char* ReservedSpace::reserve_and_align(const size_t reserve_size,
     assert(res >= raw, "alignment decreased start addr");
     assert(res + prefix_size + suffix_size <= raw + reserve_size,
            "alignment increased end addr");
-    assert((res & prefix_align - 1) == 0, "bad alignment of prefix");
-    assert((res + prefix_size & suffix_align - 1) == 0,
+    assert((res & (prefix_align - 1)) == 0, "bad alignment of prefix");
+    assert(((res + prefix_size) & (suffix_align - 1)) == 0,
            "bad alignment of suffix");
   }
 #endif
@@ -135,7 +138,7 @@ static bool failed_to_reserve_as_requested(char* base, char* requested_address,
     assert(UseCompressedOops, "currently requested address used only for compressed oops");
     if (PrintCompressedOopsMode) {
       tty->cr();
-      tty->print_cr("Reserved memory at not requested address: " PTR_FORMAT " vs " PTR_FORMAT, base, requested_address);
+      tty->print_cr("Reserved memory not at requested address: " PTR_FORMAT " vs " PTR_FORMAT, base, requested_address);
     }
     // OS ignored requested address. Try different address.
     if (special) {
@@ -162,11 +165,11 @@ ReservedSpace::ReservedSpace(const size_t prefix_size,
   assert(prefix_align != 0, "sanity");
   assert(suffix_size != 0, "sanity");
   assert(suffix_align != 0, "sanity");
-  assert((prefix_size & prefix_align - 1) == 0,
+  assert((prefix_size & (prefix_align - 1)) == 0,
     "prefix_size not divisible by prefix_align");
-  assert((suffix_size & suffix_align - 1) == 0,
+  assert((suffix_size & (suffix_align - 1)) == 0,
     "suffix_size not divisible by suffix_align");
-  assert((suffix_align & prefix_align - 1) == 0,
+  assert((suffix_align & (prefix_align - 1)) == 0,
     "suffix_align not divisible by prefix_align");
 
   // Assert that if noaccess_prefix is used, it is the same as prefix_align.
@@ -210,8 +213,8 @@ ReservedSpace::ReservedSpace(const size_t prefix_size,
   if (addr == NULL) return;
 
   // Check whether the result has the needed alignment (unlikely unless
-  // prefix_align == suffix_align).
-  const size_t ofs = size_t(addr) + adjusted_prefix_size & suffix_align - 1;
+  // prefix_align < suffix_align).
+  const size_t ofs = (size_t(addr) + adjusted_prefix_size) & (suffix_align - 1);
   if (ofs != 0) {
     // Wrong alignment.  Release, allocate more space and do manual alignment.
     //
@@ -232,6 +235,15 @@ ReservedSpace::ReservedSpace(const size_t prefix_size,
       addr = reserve_and_align(size + suffix_align, adjusted_prefix_size,
                                prefix_align, suffix_size, suffix_align);
     }
+
+    if (requested_address != 0 &&
+        failed_to_reserve_as_requested(addr, requested_address, size, false)) {
+      // As a result of the alignment constraints, the allocated addr differs
+      // from the requested address. Return back to the caller who can
+      // take remedial action (like try again without a requested address).
+      assert(_base == NULL, "should be");
+      return;
+    }
   }
 
   _base = addr;
@@ -245,13 +257,19 @@ void ReservedSpace::initialize(size_t size, size_t alignment, bool large,
                                const size_t noaccess_prefix,
                                bool executable) {
   const size_t granularity = os::vm_allocation_granularity();
-  assert((size & granularity - 1) == 0,
+  assert((size & (granularity - 1)) == 0,
          "size not aligned to os::vm_allocation_granularity()");
-  assert((alignment & granularity - 1) == 0,
+  assert((alignment & (granularity - 1)) == 0,
          "alignment not aligned to os::vm_allocation_granularity()");
   assert(alignment == 0 || is_power_of_2((intptr_t)alignment),
          "not a power of 2");
 
+  alignment = MAX2(alignment, (size_t)os::vm_page_size());
+
+  // Assert that if noaccess_prefix is used, it is the same as alignment.
+  assert(noaccess_prefix == 0 ||
+         noaccess_prefix == alignment, "noaccess prefix wrong");
+
   _base = NULL;
   _size = 0;
   _special = false;
@@ -282,10 +300,8 @@ void ReservedSpace::initialize(size_t size, size_t alignment, bool large,
         return;
       }
       // Check alignment constraints
-      if (alignment > 0) {
-        assert((uintptr_t) base % alignment == 0,
-               "Large pages returned a non-aligned address");
-      }
+      assert((uintptr_t) base % alignment == 0,
+             "Large pages returned a non-aligned address");
       _special = true;
     } else {
       // failed; try to reserve regular memory below
@@ -321,7 +337,7 @@ void ReservedSpace::initialize(size_t size, size_t alignment, bool large,
     if (base == NULL) return;
 
     // Check alignment constraints
-    if (alignment > 0 && ((size_t)base & alignment - 1) != 0) {
+    if ((((size_t)base + noaccess_prefix) & (alignment - 1)) != 0) {
       // Base not aligned, retry
       if (!os::release_memory(base, size)) fatal("os::release_memory failed");
       // Reserve size large enough to do manual alignment and
@@ -338,12 +354,21 @@ void ReservedSpace::initialize(size_t size, size_t alignment, bool large,
         os::release_memory(extra_base, extra_size);
         base = os::reserve_memory(size, base);
       } while (base == NULL);
+
+      if (requested_address != 0 &&
+          failed_to_reserve_as_requested(base, requested_address, size, false)) {
+        // As a result of the alignment constraints, the allocated base differs
+        // from the requested address. Return back to the caller who can
+        // take remedial action (like try again without a requested address).
+        assert(_base == NULL, "should be");
+        return;
+      }
     }
   }
   // Done
   _base = base;
   _size = size;
-  _alignment = MAX2(alignment, (size_t) os::vm_page_size());
+  _alignment = alignment;
   _noaccess_prefix = noaccess_prefix;
 
   // Assert that if noaccess_prefix is used, it is the same as alignment.
diff --git a/hotspot/src/share/vm/runtime/vmStructs.cpp b/hotspot/src/share/vm/runtime/vmStructs.cpp
index 6924e47..0ce636f 100644
--- a/hotspot/src/share/vm/runtime/vmStructs.cpp
+++ b/hotspot/src/share/vm/runtime/vmStructs.cpp
@@ -29,6 +29,11 @@
 #include "classfile/placeholders.hpp"
 #include "classfile/symbolTable.hpp"
 #include "classfile/systemDictionary.hpp"
+#include "ci/ciField.hpp"
+#include "ci/ciInstance.hpp"
+#include "ci/ciObjArrayKlass.hpp"
+#include "ci/ciMethodData.hpp"
+#include "ci/ciSymbol.hpp"
 #include "code/codeBlob.hpp"
 #include "code/codeCache.hpp"
 #include "code/compressedStream.hpp"
@@ -38,6 +43,7 @@
 #include "code/stubs.hpp"
 #include "code/vmreg.hpp"
 #include "compiler/oopMap.hpp"
+#include "compiler/compileBroker.hpp"
 #include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp"
 #include "gc_implementation/shared/immutableSpace.hpp"
 #include "gc_implementation/shared/markSweep.hpp"
@@ -90,6 +96,8 @@
 #include "oops/typeArrayOop.hpp"
 #include "prims/jvmtiAgentThread.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/deoptimization.hpp"
+#include "runtime/vframeArray.hpp"
 #include "runtime/globals.hpp"
 #include "runtime/java.hpp"
 #include "runtime/javaCalls.hpp"
@@ -125,6 +133,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 #ifdef TARGET_OS_ARCH_linux_x86
 # include "vmStructs_linux_x86.hpp"
 #endif
@@ -149,6 +160,12 @@
 #ifdef TARGET_OS_ARCH_linux_ppc
 # include "vmStructs_linux_ppc.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "vmStructs_bsd_x86.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "vmStructs_bsd_zero.hpp"
+#endif
 #ifndef SERIALGC
 #include "gc_implementation/concurrentMarkSweep/cmsPermGen.hpp"
 #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp"
@@ -167,7 +184,23 @@
 #include "gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp"
 #endif
 #ifdef COMPILER2
+#include "opto/addnode.hpp"
+#include "opto/block.hpp"
+#include "opto/callnode.hpp"
+#include "opto/cfgnode.hpp"
+#include "opto/chaitin.hpp"
+#include "opto/divnode.hpp"
+#include "opto/locknode.hpp"
+#include "opto/loopnode.hpp"
+#include "opto/machnode.hpp"
 #include "opto/matcher.hpp"
+#include "opto/mulnode.hpp"
+#include "opto/phaseX.hpp"
+#include "opto/parse.hpp"
+#include "opto/regalloc.hpp"
+#include "opto/rootnode.hpp"
+#include "opto/subnode.hpp"
+#include "opto/vectornode.hpp"
 #ifdef TARGET_ARCH_MODEL_x86_32
 # include "adfiles/adGlobals_x86_32.hpp"
 #endif
@@ -261,6 +294,7 @@ static inline uint64_t cast_uint64_t(size_t x)
   nonstatic_field(instanceKlass,               _nof_implementors,                             int)                                   \
   nonstatic_field(instanceKlass,               _implementors[0],                              klassOop)                              \
   nonstatic_field(instanceKlass,               _fields,                                       typeArrayOop)                          \
+  nonstatic_field(instanceKlass,               _java_fields_count,                             int)                                   \
   nonstatic_field(instanceKlass,               _constants,                                    constantPoolOop)                       \
   nonstatic_field(instanceKlass,               _class_loader,                                 oop)                                   \
   nonstatic_field(instanceKlass,               _protection_domain,                            oop)                                   \
@@ -293,6 +327,10 @@ static inline uint64_t cast_uint64_t(size_t x)
   nonstatic_field(instanceKlass,               _methods_annotations,                          objArrayOop)                           \
   nonstatic_field(instanceKlass,               _methods_parameter_annotations,                objArrayOop)                           \
   nonstatic_field(instanceKlass,               _methods_default_annotations,                  objArrayOop)                           \
+  nonstatic_field(instanceKlass,               _dependencies,                                 nmethodBucket*)                        \
+  nonstatic_field(nmethodBucket,               _nmethod,                                      nmethod*)                              \
+  nonstatic_field(nmethodBucket,               _count,                                        int)                                   \
+  nonstatic_field(nmethodBucket,               _next,                                         nmethodBucket*)                        \
   nonstatic_field(Klass,                       _super_check_offset,                           juint)                                 \
   nonstatic_field(Klass,                       _secondary_super_cache,                        klassOop)                              \
   nonstatic_field(Klass,                       _secondary_supers,                             objArrayOop)                           \
@@ -311,17 +349,26 @@ static inline uint64_t cast_uint64_t(size_t x)
   nonstatic_field(methodKlass,                 _alloc_size,                                   juint)                                 \
   nonstatic_field(methodDataOopDesc,           _size,                                         int)                                   \
   nonstatic_field(methodDataOopDesc,           _method,                                       methodOop)                             \
+  nonstatic_field(methodDataOopDesc,           _data_size,                                    int)                                   \
+  nonstatic_field(methodDataOopDesc,           _data[0],                                      intptr_t)                              \
+  nonstatic_field(methodDataOopDesc,           _nof_decompiles,                               uint)                                  \
+  nonstatic_field(methodDataOopDesc,           _nof_overflow_recompiles,                      uint)                                  \
+  nonstatic_field(methodDataOopDesc,           _nof_overflow_traps,                           uint)                                  \
+  nonstatic_field(methodDataOopDesc,           _eflags,                                       intx)                                  \
+  nonstatic_field(methodDataOopDesc,           _arg_local,                                    intx)                                  \
+  nonstatic_field(methodDataOopDesc,           _arg_stack,                                    intx)                                  \
+  nonstatic_field(methodDataOopDesc,           _arg_returned,                                 intx)                                  \
   nonstatic_field(methodOopDesc,               _constMethod,                                  constMethodOop)                        \
   nonstatic_field(methodOopDesc,               _constants,                                    constantPoolOop)                       \
-  c2_nonstatic_field(methodOopDesc,            _method_data,                                  methodDataOop)                         \
-  c2_nonstatic_field(methodOopDesc,            _interpreter_invocation_count,                 int)                                   \
+  nonstatic_field(methodOopDesc,               _method_data,                                  methodDataOop)                         \
+  nonstatic_field(methodOopDesc,               _interpreter_invocation_count,                 int)                                   \
   nonstatic_field(methodOopDesc,               _access_flags,                                 AccessFlags)                           \
   nonstatic_field(methodOopDesc,               _vtable_index,                                 int)                                   \
   nonstatic_field(methodOopDesc,               _method_size,                                  u2)                                    \
   nonstatic_field(methodOopDesc,               _max_stack,                                    u2)                                    \
   nonstatic_field(methodOopDesc,               _max_locals,                                   u2)                                    \
   nonstatic_field(methodOopDesc,               _size_of_parameters,                           u2)                                    \
-  c2_nonstatic_field(methodOopDesc,            _interpreter_throwout_count,                   u2)                                    \
+  nonstatic_field(methodOopDesc,               _interpreter_throwout_count,                   u2)                                    \
   nonstatic_field(methodOopDesc,               _number_of_breakpoints,                        u2)                                    \
   nonstatic_field(methodOopDesc,               _invocation_counter,                           InvocationCounter)                     \
   nonstatic_field(methodOopDesc,               _backedge_counter,                             InvocationCounter)                     \
@@ -407,7 +454,7 @@ static inline uint64_t cast_uint64_t(size_t x)
      static_field(Universe,                    _constantPoolCacheKlassObj,                    klassOop)                              \
      static_field(Universe,                    _compiledICHolderKlassObj,                     klassOop)                              \
      static_field(Universe,                    _systemObjArrayKlassObj,                       klassOop)                              \
-     static_field(Universe,                    _mirrors[0],                                   oop)                                  \
+     static_field(Universe,                    _mirrors[0],                                   oop)                                   \
      static_field(Universe,                    _main_thread_group,                            oop)                                   \
      static_field(Universe,                    _system_thread_group,                          oop)                                   \
      static_field(Universe,                    _the_empty_byte_array,                         typeArrayOop)                          \
@@ -652,9 +699,16 @@ static inline uint64_t cast_uint64_t(size_t x)
       static_field(SystemDictionary,            WK_KLASS(ThreadGroup_klass),                   klassOop)                             \
       static_field(SystemDictionary,            WK_KLASS(Properties_klass),                    klassOop)                             \
       static_field(SystemDictionary,            WK_KLASS(StringBuffer_klass),                  klassOop)                             \
+      static_field(SystemDictionary,            WK_KLASS(MethodHandle_klass),                  klassOop)                             \
       static_field(SystemDictionary,            _box_klasses[0],                               klassOop)                             \
       static_field(SystemDictionary,            _java_system_loader,                           oop)                                  \
                                                                                                                                      \
+  /*************/                                                                                                                    \
+  /* vmSymbols */                                                                                                                    \
+  /*************/                                                                                                                    \
+                                                                                                                                     \
+      static_field(vmSymbols,                   _symbols[0],                                  Symbol*)                               \
+                                                                                                                                     \
   /*******************/                                                                                                              \
   /* HashtableBucket */                                                                                                              \
   /*******************/                                                                                                              \
@@ -707,6 +761,15 @@ static inline uint64_t cast_uint64_t(size_t x)
   nonstatic_field(LoaderConstraintEntry,       _max_loaders,                                  int)                                   \
   nonstatic_field(LoaderConstraintEntry,       _loaders,                                      oop*)                                  \
                                                                                                                                      \
+  /*******************/                                                                                                              \
+  /* GrowableArrays  */                                                                                                              \
+  /*******************/                                                                                                              \
+                                                                                                                                     \
+  nonstatic_field(GenericGrowableArray,        _len,                                          int)                                   \
+  nonstatic_field(GenericGrowableArray,        _max,                                          int)                                   \
+  nonstatic_field(GenericGrowableArray,        _arena,                                        Arena*)                                \
+  nonstatic_field(GrowableArray<int>,               _data,                                         int*) \
+                                                                                                                                     \
   /********************************/                                                                                                 \
   /* CodeCache (NOTE: incomplete) */                                                                                                 \
   /********************************/                                                                                                 \
@@ -757,12 +820,19 @@ static inline uint64_t cast_uint64_t(size_t x)
   nonstatic_field(PcDesc,                      _pc_offset,                                    int)                                   \
   nonstatic_field(PcDesc,                      _scope_decode_offset,                          int)                                   \
   nonstatic_field(PcDesc,                      _obj_decode_offset,                            int)                                   \
-  nonstatic_field(PcDesc,                      _flags,                        PcDesc::PcDescFlags)                                   \
+  nonstatic_field(PcDesc,                      _flags,                                        int)                                   \
                                                                                                                                      \
   /***************************************************/                                                                              \
   /* CodeBlobs (NOTE: incomplete, but only a little) */                                                                              \
   /***************************************************/                                                                              \
                                                                                                                                      \
+  X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _sender_pc,                                     address))                   \
+  X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _exact_sender_sp,                              intptr_t*))                  \
+  X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _sender_link,                                  intptr_t*))                  \
+  X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _saved_args_base,                              intptr_t*))                  \
+                                                                                                                                     \
+     static_field(SharedRuntime,               _ricochet_blob,                                RicochetBlob*)                         \
+                                                                                                                                     \
   nonstatic_field(CodeBlob,                    _name,                                         const char*)                           \
   nonstatic_field(CodeBlob,                    _size,                                         int)                                   \
   nonstatic_field(CodeBlob,                    _header_size,                                  int)                                   \
@@ -774,6 +844,8 @@ static inline uint64_t cast_uint64_t(size_t x)
   nonstatic_field(CodeBlob,                    _frame_size,                                   int)                                   \
   nonstatic_field(CodeBlob,                    _oop_maps,                                     OopMapSet*)                            \
                                                                                                                                      \
+  nonstatic_field(RuntimeStub,                 _caller_must_gc_arguments,                     bool)                                  \
+                                                                                                                                     \
   /**************************************************/                                                                               \
   /* NMethods (NOTE: incomplete, but only a little) */                                                                               \
   /**************************************************/                                                                               \
@@ -786,6 +858,7 @@ static inline uint64_t cast_uint64_t(size_t x)
   nonstatic_field(nmethod,             _state,                                        unsigned char)                         \
   nonstatic_field(nmethod,             _exception_offset,                             int)                                   \
   nonstatic_field(nmethod,             _deoptimize_offset,                            int)                                   \
+  nonstatic_field(nmethod,             _deoptimize_mh_offset,                         int)                                   \
   nonstatic_field(nmethod,             _orig_pc_offset,                               int)                                   \
   nonstatic_field(nmethod,             _stub_offset,                                  int)                                   \
   nonstatic_field(nmethod,             _consts_offset,                                int)                                   \
@@ -802,8 +875,14 @@ static inline uint64_t cast_uint64_t(size_t x)
   nonstatic_field(nmethod,             _lock_count,                                   jint)                                  \
   nonstatic_field(nmethod,             _stack_traversal_mark,                         long)                                  \
   nonstatic_field(nmethod,             _compile_id,                                   int)                                   \
+  nonstatic_field(nmethod,             _exception_cache,                              ExceptionCache*)                       \
   nonstatic_field(nmethod,             _marked_for_deoptimization,                    bool)                                  \
                                                                                                                                      \
+  nonstatic_field(RicochetBlob,        _bounce_offset,                                int)                                           \
+  nonstatic_field(RicochetBlob,        _exception_offset,                             int)                                           \
+                                                                                                                                     \
+  unchecked_c2_static_field(Deoptimization,         _trap_reason_name,                   void*)                                         \
+                                                                                                                                     \
   /********************************/                                                                                                 \
   /* JavaCalls (NOTE: incomplete) */                                                                                                 \
   /********************************/                                                                                                 \
@@ -824,6 +903,9 @@ static inline uint64_t cast_uint64_t(size_t x)
      static_field(Threads,                     _number_of_non_daemon_threads,                 int)                                   \
      static_field(Threads,                     _return_code,                                  int)                                   \
                                                                                                                                      \
+  nonstatic_field(ThreadShadow,                _pending_exception,                            oop)                                   \
+  nonstatic_field(ThreadShadow,                _exception_file,                               const char*)                           \
+  nonstatic_field(ThreadShadow,                _exception_line,                               int)                                   \
    volatile_nonstatic_field(Thread,            _suspend_flags,                                uint32_t)                              \
   nonstatic_field(Thread,                      _active_handles,                               JNIHandleBlock*)                       \
   nonstatic_field(Thread,                      _tlab,                                         ThreadLocalAllocBuffer)                \
@@ -835,10 +917,22 @@ static inline uint64_t cast_uint64_t(size_t x)
   nonstatic_field(JavaThread,                  _next,                                         JavaThread*)                           \
   nonstatic_field(JavaThread,                  _threadObj,                                    oop)                                   \
   nonstatic_field(JavaThread,                  _anchor,                                       JavaFrameAnchor)                       \
+  nonstatic_field(JavaThread,                  _vm_result,                                    oop)                                   \
+  nonstatic_field(JavaThread,                  _vm_result_2,                                  oop)                                   \
+  nonstatic_field(JavaThread,                  _pending_async_exception,                      oop)                                   \
+  volatile_nonstatic_field(JavaThread,         _exception_oop,                                oop)                                   \
+  volatile_nonstatic_field(JavaThread,         _exception_pc,                                 address)                               \
+  nonstatic_field(JavaThread,                  _is_compiling,                                 bool)                                  \
+  nonstatic_field(JavaThread,                  _special_runtime_exit_condition,               JavaThread::AsyncRequests)             \
+  nonstatic_field(JavaThread,                  _saved_exception_pc,                           address)                               \
    volatile_nonstatic_field(JavaThread,        _thread_state,                                 JavaThreadState)                       \
   nonstatic_field(JavaThread,                  _osthread,                                     OSThread*)                             \
   nonstatic_field(JavaThread,                  _stack_base,                                   address)                               \
   nonstatic_field(JavaThread,                  _stack_size,                                   size_t)                                \
+  nonstatic_field(JavaThread,                  _vframe_array_head,                            vframeArray*)                          \
+  nonstatic_field(JavaThread,                  _vframe_array_last,                            vframeArray*)                          \
+  nonstatic_field(Thread,                      _resource_area,                                ResourceArea*)                         \
+  nonstatic_field(CompilerThread,              _env,                                          ciEnv*)                                \
                                                                                                                                      \
   /************/                                                                                                                     \
   /* OSThread */                                                                                                                     \
@@ -888,7 +982,83 @@ static inline uint64_t cast_uint64_t(size_t x)
   /* Runtime1 (NOTE: incomplete) */                                                                                                  \
   /*******************************/                                                                                                  \
                                                                                                                                      \
-  unchecked_c1_static_field(Runtime1,          _blobs,                                        sizeof(Runtime1::_blobs)) /* NOTE: no type */ \
+  unchecked_c1_static_field(Runtime1,          _blobs,                                 sizeof(Runtime1::_blobs)) /* NOTE: no type */ \
+                                                                                                                                     \
+  /**************/                                                                                                                   \
+  /* allocation */                                                                                                                   \
+  /**************/                                                                                                                   \
+                                                                                                                                     \
+  nonstatic_field(Chunk, _next, Chunk*)                                                                                              \
+  nonstatic_field(Chunk, _len, const size_t)                                                                                         \
+                                                                                                                                     \
+  nonstatic_field(Arena, _first, Chunk*)                                                                                             \
+  nonstatic_field(Arena, _chunk, Chunk*)                                                                                             \
+  nonstatic_field(Arena, _hwm, char*)                                                                                                \
+  nonstatic_field(Arena, _max, char*)                                                                                                \
+                                                                                                                                     \
+  /************/                                                                                                                     \
+  /* CI */                                                                                                                           \
+  /************/                                                                                                                     \
+                                                                                                                                     \
+ nonstatic_field(ciEnv,               _system_dictionary_modification_counter, int)                                                  \
+ nonstatic_field(ciEnv,               _compiler_data, void*)                                                                         \
+ nonstatic_field(ciEnv,               _failure_reason, const char*)                                                                  \
+ nonstatic_field(ciEnv,               _factory, ciObjectFactory*)                                                                    \
+ nonstatic_field(ciEnv,               _dependencies, Dependencies*)                                                                  \
+ nonstatic_field(ciEnv,               _task, CompileTask*)                                                                           \
+ nonstatic_field(ciEnv,               _arena, Arena*)                                                                                \
+                                                                                                                                     \
+ nonstatic_field(ciObject,    _handle, jobject)                                                                                      \
+ nonstatic_field(ciObject,    _klass, ciKlass*)                                                                                      \
+ nonstatic_field(ciObject,    _ident, uint)                                                                                          \
+                                                                                                                                     \
+ nonstatic_field(ciSymbol,    _ident, uint)                                                                                          \
+ nonstatic_field(ciSymbol,    _symbol, Symbol*)                                                                                      \
+                                                                                                                                     \
+ nonstatic_field(ciType,    _basic_type, BasicType)                                                                                  \
+                                                                                                                                     \
+ nonstatic_field(ciKlass,   _name, ciSymbol*)                                                                                        \
+                                                                                                                                     \
+ nonstatic_field(ciArrayKlass,   _dimension, jint)                                                                                   \
+                                                                                                                                     \
+ nonstatic_field(ciObjArrayKlass, _element_klass, ciKlass*)                                                                          \
+ nonstatic_field(ciObjArrayKlass, _base_element_klass, ciKlass*)                                                                     \
+                                                                                                                                     \
+ nonstatic_field(ciInstanceKlass,   _init_state, instanceKlass::ClassState)                                                          \
+ nonstatic_field(ciInstanceKlass,   _is_shared,  bool)                                                                               \
+                                                                                                                                     \
+ nonstatic_field(ciMethod,     _interpreter_invocation_count, int)                                                                   \
+ nonstatic_field(ciMethod,     _interpreter_throwout_count, int)                                                                     \
+                                                                                                                                     \
+ nonstatic_field(ciMethodData, _data_size, int)                                                                                      \
+ nonstatic_field(ciMethodData, _state, u_char)                                                                                       \
+ nonstatic_field(ciMethodData, _extra_data_size, int)                                                                                \
+ nonstatic_field(ciMethodData, _data, intptr_t*)                                                                                     \
+ nonstatic_field(ciMethodData, _hint_di, int)                                                                                        \
+ nonstatic_field(ciMethodData, _eflags, intx)                                                                                        \
+ nonstatic_field(ciMethodData, _arg_local, intx)                                                                                     \
+ nonstatic_field(ciMethodData, _arg_stack, intx)                                                                                     \
+ nonstatic_field(ciMethodData, _arg_returned, intx)                                                                                  \
+ nonstatic_field(ciMethodData, _current_mileage, int)                                                                                \
+ nonstatic_field(ciMethodData, _orig, methodDataOopDesc)                                                                             \
+                                                                                                                                     \
+ nonstatic_field(ciField,     _holder, ciInstanceKlass*)                                                                             \
+ nonstatic_field(ciField,     _name, ciSymbol*)                                                                                      \
+ nonstatic_field(ciField,     _signature, ciSymbol*)                                                                                 \
+ nonstatic_field(ciField,     _offset, int)                                                                                          \
+ nonstatic_field(ciField,     _is_constant, bool)                                                                                    \
+ nonstatic_field(ciField,     _constant_value, ciConstant)                                                                           \
+                                                                                                                                     \
+ nonstatic_field(ciObjectFactory,     _ci_objects, GrowableArray<ciObject*>*)                                                        \
+ nonstatic_field(ciObjectFactory,     _symbols, GrowableArray<ciSymbol*>*)                                                           \
+ nonstatic_field(ciObjectFactory,     _unloaded_methods, GrowableArray<ciMethod*>*)                                                  \
+                                                                                                                                     \
+ nonstatic_field(ciConstant,     _type, BasicType)                                                                                   \
+ nonstatic_field(ciConstant,     _value._int, jint)                                                                                  \
+ nonstatic_field(ciConstant,     _value._long, jlong)                                                                                \
+ nonstatic_field(ciConstant,     _value._float, jfloat)                                                                              \
+ nonstatic_field(ciConstant,     _value._double, jdouble)                                                                            \
+ nonstatic_field(ciConstant,     _value._object, ciObject*)                                                                          \
                                                                                                                                      \
   /************/                                                                                                                     \
   /* Monitors */                                                                                                                     \
@@ -910,7 +1080,114 @@ static inline uint64_t cast_uint64_t(size_t x)
   /* Matcher (C2 only) */                                                                                                            \
   /*********************/                                                                                                            \
                                                                                                                                      \
-  unchecked_c2_static_field(Matcher,           _regEncode,                                    sizeof(Matcher::_regEncode)) /* NOTE: no type */ \
+  unchecked_c2_static_field(Matcher,           _regEncode,                          sizeof(Matcher::_regEncode)) /* NOTE: no type */ \
+                                                                                                                                     \
+  c2_nonstatic_field(Node,               _in,                      Node**)                                                           \
+  c2_nonstatic_field(Node,               _out,                     Node**)                                                           \
+  c2_nonstatic_field(Node,               _cnt,                     node_idx_t)                                                       \
+  c2_nonstatic_field(Node,               _max,                     node_idx_t)                                                       \
+  c2_nonstatic_field(Node,               _outcnt,                  node_idx_t)                                                       \
+  c2_nonstatic_field(Node,               _outmax,                  node_idx_t)                                                       \
+  c2_nonstatic_field(Node,               _idx,                     const node_idx_t)                                                 \
+  c2_nonstatic_field(Node,               _class_id,                jushort)                                                          \
+  c2_nonstatic_field(Node,               _flags,                   jushort)                                                          \
+                                                                                                                                     \
+  c2_nonstatic_field(Compile,            _root,                    RootNode*)                                                        \
+  c2_nonstatic_field(Compile,            _unique,                  uint)                                                             \
+  c2_nonstatic_field(Compile,            _entry_bci,               int)                                                              \
+  c2_nonstatic_field(Compile,            _top,                     Node*)                                                            \
+  c2_nonstatic_field(Compile,            _cfg,                     PhaseCFG*)                                                        \
+  c2_nonstatic_field(Compile,            _regalloc,                PhaseRegAlloc*)                                                   \
+  c2_nonstatic_field(Compile,            _method,                  ciMethod*)                                                        \
+  c2_nonstatic_field(Compile,            _compile_id,              const int)                                                        \
+  c2_nonstatic_field(Compile,            _save_argument_registers, const bool)                                                       \
+  c2_nonstatic_field(Compile,            _subsume_loads,           const bool)                                                       \
+  c2_nonstatic_field(Compile,            _do_escape_analysis,      const bool)                                                       \
+  c2_nonstatic_field(Compile,            _ilt,                     InlineTree*)                                                      \
+                                                                                                                                     \
+  c2_nonstatic_field(InlineTree,         _caller_jvms,             JVMState*)                                                        \
+  c2_nonstatic_field(InlineTree,         _method,                  ciMethod*)                                                        \
+  c2_nonstatic_field(InlineTree,         _caller_tree,             InlineTree*)                                                      \
+  c2_nonstatic_field(InlineTree,         _subtrees,                GrowableArray<InlineTree*>)                                       \
+                                                                                                                                     \
+  c2_nonstatic_field(OptoRegPair,        _first,                   short)                                                            \
+  c2_nonstatic_field(OptoRegPair,        _second,                  short)                                                            \
+                                                                                                                                     \
+  c2_nonstatic_field(JVMState,           _caller,                  JVMState*)                                                        \
+  c2_nonstatic_field(JVMState,           _depth,                   uint)                                                             \
+  c2_nonstatic_field(JVMState,           _locoff,                  uint)                                                             \
+  c2_nonstatic_field(JVMState,           _stkoff,                  uint)                                                             \
+  c2_nonstatic_field(JVMState,           _monoff,                  uint)                                                             \
+  c2_nonstatic_field(JVMState,           _scloff,                  uint)                                                             \
+  c2_nonstatic_field(JVMState,           _endoff,                  uint)                                                             \
+  c2_nonstatic_field(JVMState,           _sp,                      uint)                                                             \
+  c2_nonstatic_field(JVMState,           _bci,                     int)                                                              \
+  c2_nonstatic_field(JVMState,           _method,                  ciMethod*)                                                        \
+  c2_nonstatic_field(JVMState,           _map,                     SafePointNode*)                                                   \
+                                                                                                                                     \
+  c2_nonstatic_field(SafePointNode,      _jvms,                    JVMState* const)                                                  \
+                                                                                                                                     \
+  c2_nonstatic_field(MachSafePointNode,  _jvms,                    JVMState*)                                                        \
+  c2_nonstatic_field(MachSafePointNode,  _jvmadj,                  uint)                                                             \
+                                                                                                                                     \
+  c2_nonstatic_field(MachIfNode,         _prob,                    jfloat)                                                           \
+  c2_nonstatic_field(MachIfNode,         _fcnt,                    jfloat)                                                           \
+                                                                                                                                     \
+  c2_nonstatic_field(CallNode,           _entry_point,             address)                                                          \
+                                                                                                                                     \
+  c2_nonstatic_field(CallJavaNode,       _method,                  ciMethod*)                                                        \
+                                                                                                                                     \
+  c2_nonstatic_field(CallRuntimeNode,    _name,                    const char*)                                                      \
+                                                                                                                                     \
+  c2_nonstatic_field(CallStaticJavaNode, _name,                    const char*)                                                      \
+                                                                                                                                     \
+  c2_nonstatic_field(MachCallJavaNode,   _method,                  ciMethod*)                                                        \
+  c2_nonstatic_field(MachCallJavaNode,   _bci,                     int)                                                              \
+                                                                                                                                     \
+  c2_nonstatic_field(MachCallStaticJavaNode, _name,                const char*)                                                      \
+                                                                                                                                     \
+  c2_nonstatic_field(MachCallRuntimeNode,  _name,                  const char*)                                                      \
+                                                                                                                                     \
+  c2_nonstatic_field(PhaseCFG,           _num_blocks,              uint)                                                             \
+  c2_nonstatic_field(PhaseCFG,           _blocks,                  Block_List)                                                       \
+  c2_nonstatic_field(PhaseCFG,           _bbs,                     Block_Array)                                                      \
+  c2_nonstatic_field(PhaseCFG,           _broot,                   Block*)                                                           \
+                                                                                                                                     \
+  c2_nonstatic_field(PhaseRegAlloc,      _node_regs,               OptoRegPair*)                                                     \
+  c2_nonstatic_field(PhaseRegAlloc,      _node_regs_max_index,     uint)                                                             \
+  c2_nonstatic_field(PhaseRegAlloc,      _framesize,               uint)                                                             \
+  c2_nonstatic_field(PhaseRegAlloc,      _max_reg,                 OptoReg::Name)                                                    \
+                                                                                                                                     \
+  c2_nonstatic_field(PhaseChaitin,       _trip_cnt,                int)                                                              \
+  c2_nonstatic_field(PhaseChaitin,       _alternate,               int)                                                              \
+  c2_nonstatic_field(PhaseChaitin,       _lo_degree,               uint)                                                             \
+  c2_nonstatic_field(PhaseChaitin,       _lo_stk_degree,           uint)                                                             \
+  c2_nonstatic_field(PhaseChaitin,       _hi_degree,               uint)                                                             \
+  c2_nonstatic_field(PhaseChaitin,       _simplified,              uint)                                                             \
+  c2_nonstatic_field(PhaseChaitin,       _maxlrg,                  uint)                                                             \
+                                                                                                                                     \
+  c2_nonstatic_field(Block,              _nodes,                   Node_List)                                                        \
+  c2_nonstatic_field(Block,              _succs,                   Block_Array)                                                      \
+  c2_nonstatic_field(Block,              _num_succs,               uint)                                                             \
+  c2_nonstatic_field(Block,              _pre_order,               uint)                                                             \
+  c2_nonstatic_field(Block,              _dom_depth,               uint)                                                             \
+  c2_nonstatic_field(Block,              _idom,                    Block*)                                                           \
+  c2_nonstatic_field(Block,              _freq,                    jfloat)                                                           \
+                                                                                                                                     \
+  c2_nonstatic_field(CFGElement,         _freq,                    jfloat)                                                           \
+                                                                                                                                     \
+  c2_nonstatic_field(Block_List,         _cnt,                     uint)                                                             \
+                                                                                                                                     \
+  c2_nonstatic_field(Block_Array,        _size,                    uint)                                                             \
+  c2_nonstatic_field(Block_Array,        _blocks,                  Block**)                                                          \
+  c2_nonstatic_field(Block_Array,        _arena,                   Arena*)                                                           \
+                                                                                                                                     \
+  c2_nonstatic_field(Node_List,          _cnt,                     uint)                                                             \
+                                                                                                                                     \
+  c2_nonstatic_field(Node_Array,         _max,                     uint)                                                             \
+  c2_nonstatic_field(Node_Array,         _nodes,                   Node**)                                                           \
+  c2_nonstatic_field(Node_Array,         _a,                       Arena*)                                                           \
+                                                                                                                                     \
                                                                                                                                      \
   /*********************/                                                                                                            \
   /* -XX flags         */                                                                                                            \
@@ -920,6 +1197,7 @@ static inline uint64_t cast_uint64_t(size_t x)
   nonstatic_field(Flag,                        name,                                          const char*)                           \
   unchecked_nonstatic_field(Flag,              addr,                                          sizeof(void*)) /* NOTE: no type */     \
   nonstatic_field(Flag,                        kind,                                          const char*)                           \
+  nonstatic_field(Flag,                        origin,                                        FlagValueOrigin)                       \
   static_field(Flag,                           flags,                                         Flag*)                                 \
   static_field(Flag,                           numFlags,                                      size_t)                                \
                                                                                                                                      \
@@ -937,7 +1215,14 @@ static inline uint64_t cast_uint64_t(size_t x)
   nonstatic_field(JDK_Version,                 _partially_initialized,                        bool)                                  \
   nonstatic_field(JDK_Version,                 _major,                                        unsigned char)                         \
                                                                                                                                      \
+  /*************************/                                                                                                        \
+  /* JVMTI */                                                                                                                        \
+  /*************************/                                                                                                        \
                                                                                                                                      \
+  static_field(JvmtiExport,                     _can_access_local_variables,                  bool)                                  \
+  static_field(JvmtiExport,                     _can_hotswap_or_post_breakpoint,              bool)                                  \
+  static_field(JvmtiExport,                     _can_post_on_exceptions,                      bool)                                  \
+  static_field(JvmtiExport,                     _can_walk_any_space,                          bool)                                  \
                                                                                                                                      \
   /*************/                                                                                                                    \
   /* Arguments */                                                                                                                    \
@@ -953,20 +1238,36 @@ static inline uint64_t cast_uint64_t(size_t x)
   /* java_lang_Class fields        */                                                                                                \
   /*********************************/                                                                                                \
                                                                                                                                      \
-  static_field(java_lang_Class,                klass_offset,                                  int)                                   \
-  static_field(java_lang_Class,                resolved_constructor_offset,                   int)                                   \
-  static_field(java_lang_Class,                array_klass_offset,                            int)                                   \
-  static_field(java_lang_Class,                oop_size_offset,                               int)                                   \
-  static_field(java_lang_Class,                static_oop_field_count_offset,                 int)                                   \
+  static_field(java_lang_Class,                _klass_offset,                                 int)                                   \
+  static_field(java_lang_Class,                _resolved_constructor_offset,                  int)                                   \
+  static_field(java_lang_Class,                _array_klass_offset,                           int)                                   \
+  static_field(java_lang_Class,                _oop_size_offset,                              int)                                   \
+  static_field(java_lang_Class,                _static_oop_field_count_offset,                int)                                   \
                                                                                                                                      \
   /************************/                                                                                                         \
   /* Miscellaneous fields */                                                                                                         \
   /************************/                                                                                                         \
                                                                                                                                      \
-  nonstatic_field(AccessFlags,                 _flags,                                        jint)                                  \
-  nonstatic_field(elapsedTimer,                _counter,                                      jlong)                                 \
-  nonstatic_field(elapsedTimer,                _active,                                       bool)                                  \
-  nonstatic_field(InvocationCounter,           _counter,                                      unsigned int)
+  nonstatic_field(CompileTask,                 _method,                                      jobject)                                \
+  nonstatic_field(CompileTask,                 _osr_bci,                                     int)                                    \
+  nonstatic_field(CompileTask,                 _comp_level,                                  int)                                    \
+  nonstatic_field(CompileTask,                 _compile_id,                                  uint)                                   \
+  nonstatic_field(CompileTask,                 _next,                                        CompileTask*)                           \
+  nonstatic_field(CompileTask,                 _prev,                                        CompileTask*)                           \
+                                                                                                                                     \
+  nonstatic_field(vframeArray,                 _next,                                        vframeArray*)                           \
+  nonstatic_field(vframeArray,                 _original,                                    frame)                                  \
+  nonstatic_field(vframeArray,                 _caller,                                      frame)                                  \
+  nonstatic_field(vframeArray,                 _frames,                                      int)                                    \
+                                                                                                                                     \
+  nonstatic_field(vframeArrayElement,          _frame,                                       frame)                                  \
+  nonstatic_field(vframeArrayElement,          _bci,                                         int)                                    \
+  nonstatic_field(vframeArrayElement,          _method,                                      methodOop)                              \
+                                                                                                                                     \
+  nonstatic_field(AccessFlags,                 _flags,                                       jint)                                   \
+  nonstatic_field(elapsedTimer,                _counter,                                     jlong)                                  \
+  nonstatic_field(elapsedTimer,                _active,                                      bool)                                   \
+  nonstatic_field(InvocationCounter,           _counter,                                     unsigned int)
 
   /* NOTE that we do not use the last_entry() macro here; it is used  */
   /* in vmStructs_<os>_<cpu>.hpp's VM_STRUCTS_OS_CPU macro (and must  */
@@ -1046,12 +1347,16 @@ static inline uint64_t cast_uint64_t(size_t x)
   /* and are valid types for Fields.                                   */ \
   /*********************************************************************/ \
   declare_integer_type(bool)                                              \
+  declare_integer_type(short)                                             \
   declare_integer_type(int)                                               \
   declare_integer_type(long)                                              \
   declare_integer_type(char)                                              \
   declare_unsigned_integer_type(unsigned char)                            \
+  declare_unsigned_integer_type(u_char)                                   \
   declare_unsigned_integer_type(unsigned int)                             \
+  declare_unsigned_integer_type(uint)                                     \
   declare_unsigned_integer_type(unsigned short)                           \
+  declare_unsigned_integer_type(jushort)                                  \
   declare_unsigned_integer_type(unsigned long)                            \
   /* The compiler thinks this is a different type than */                 \
   /* unsigned short on Win32 */                                           \
@@ -1065,7 +1370,6 @@ static inline uint64_t cast_uint64_t(size_t x)
   declare_toplevel_type(int*)                                             \
   declare_toplevel_type(char*)                                            \
   declare_toplevel_type(char**)                                           \
-  declare_toplevel_type(const char*)                                      \
   declare_toplevel_type(u_char*)                                          \
   declare_toplevel_type(unsigned char*)                                   \
                                                                           \
@@ -1077,14 +1381,12 @@ static inline uint64_t cast_uint64_t(size_t x)
                                                                           \
   declare_unsigned_integer_type(size_t)                                   \
   declare_integer_type(ssize_t)                                           \
-  declare_unsigned_integer_type(const size_t)                             \
   declare_integer_type(intx)                                              \
   declare_integer_type(intptr_t)                                          \
   declare_unsigned_integer_type(uintx)                                    \
   declare_unsigned_integer_type(uintptr_t)                                \
   declare_unsigned_integer_type(uint32_t)                                 \
   declare_unsigned_integer_type(uint64_t)                                 \
-  declare_integer_type(const int)                                         \
                                                                           \
   /*******************************************************************************/ \
   /* OopDesc and Klass hierarchies (NOTE: missing methodDataOop-related classes) */ \
@@ -1110,8 +1412,8 @@ static inline uint64_t cast_uint64_t(size_t x)
            declare_type(klassKlass, Klass)                                \
            declare_type(klassOopDesc, oopDesc)                            \
            declare_type(markOopDesc, oopDesc)                             \
-   declare_type(methodDataKlass, Klass)                           \
-   declare_type(methodDataOopDesc, oopDesc)                       \
+   declare_type(methodDataKlass, Klass)                                   \
+   declare_type(methodDataOopDesc, oopDesc)                               \
            declare_type(methodKlass, Klass)                               \
            declare_type(constMethodKlass, Klass)                          \
            declare_type(methodOopDesc, oopDesc)                           \
@@ -1125,6 +1427,8 @@ static inline uint64_t cast_uint64_t(size_t x)
            declare_toplevel_type(Symbol)                                  \
            declare_toplevel_type(Symbol*)                                 \
                                                                           \
+  declare_toplevel_type(nmethodBucket)                                    \
+                                                                          \
   /********/                                                              \
   /* Oops */                                                              \
   /********/                                                              \
@@ -1192,7 +1496,6 @@ static inline uint64_t cast_uint64_t(size_t x)
   declare_toplevel_type(GenerationSpec)                                   \
   declare_toplevel_type(HeapWord)                                         \
   declare_toplevel_type(MemRegion)                                        \
-  declare_toplevel_type(const MemRegion)                                  \
   declare_toplevel_type(PermanentGenerationSpec)                          \
   declare_toplevel_type(ThreadLocalAllocBuffer)                           \
   declare_toplevel_type(VirtualSpace)                                     \
@@ -1251,8 +1554,15 @@ static inline uint64_t cast_uint64_t(size_t x)
     declare_type(LoaderConstraintEntry, HashtableEntry<klassOop>)         \
   declare_toplevel_type(HashtableBucket)                                  \
   declare_toplevel_type(SystemDictionary)                                 \
+  declare_toplevel_type(vmSymbols)                                        \
   declare_toplevel_type(ProtectionDomainEntry)                            \
                                                                           \
+  declare_toplevel_type(GenericGrowableArray)                             \
+  declare_toplevel_type(GrowableArray<int>)                               \
+  declare_toplevel_type(Arena)                                            \
+    declare_type(ResourceArea, Arena)                                     \
+  declare_toplevel_type(Chunk)                                            \
+                                                                          \
   /***********************************************************/           \
   /* Thread hierarchy (needed for run-time type information) */           \
   /***********************************************************/           \
@@ -1265,7 +1575,7 @@ static inline uint64_t cast_uint64_t(size_t x)
            declare_type(JavaThread, Thread)                               \
            declare_type(JvmtiAgentThread, JavaThread)                     \
            declare_type(ServiceThread, JavaThread)                        \
-  declare_type(CompilerThread, JavaThread)                        \
+  declare_type(CompilerThread, JavaThread)                                \
   declare_toplevel_type(OSThread)                                         \
   declare_toplevel_type(JavaFrameAnchor)                                  \
                                                                           \
@@ -1281,7 +1591,6 @@ static inline uint64_t cast_uint64_t(size_t x)
                                                                           \
   declare_toplevel_type(StubQueue)                                        \
   declare_toplevel_type(StubRoutines)                                     \
-  IA32_ONLY(declare_toplevel_type(StubRoutines::x86))                     \
   declare_toplevel_type(Stub)                                             \
            declare_type(InterpreterCodelet, Stub)                         \
                                                                           \
@@ -1311,24 +1620,32 @@ static inline uint64_t cast_uint64_t(size_t x)
   /* CodeBlob hierarchy (needed for run-time type information) */         \
   /*************************************************************/         \
                                                                           \
+  declare_toplevel_type(SharedRuntime)                                    \
+  X86_ONLY(declare_toplevel_type(MethodHandles::RicochetFrame))           \
+                                                                          \
   declare_toplevel_type(CodeBlob)                                         \
-  declare_type(BufferBlob,            CodeBlob)                           \
-  declare_type(AdapterBlob,           BufferBlob)                         \
-  declare_type(nmethod,               CodeBlob)                           \
-  declare_type(RuntimeStub,           CodeBlob)                           \
-  declare_type(SingletonBlob,         CodeBlob)                           \
-  declare_type(SafepointBlob,         SingletonBlob)                      \
-  declare_type(DeoptimizationBlob,    SingletonBlob)                      \
-  declare_type(RicochetBlob,          SingletonBlob)                      \
-  declare_c2_type(ExceptionBlob,      SingletonBlob)                      \
-  declare_c2_type(UncommonTrapBlob,   CodeBlob)                           \
+  declare_type(BufferBlob,               CodeBlob)                        \
+  declare_type(AdapterBlob,              BufferBlob)                      \
+  declare_type(MethodHandlesAdapterBlob, BufferBlob)                      \
+  declare_type(nmethod,                  CodeBlob)                        \
+  declare_type(RuntimeStub,              CodeBlob)                        \
+  declare_type(SingletonBlob,            CodeBlob)                        \
+  declare_type(SafepointBlob,            SingletonBlob)                   \
+  declare_type(DeoptimizationBlob,       SingletonBlob)                   \
+  declare_type(RicochetBlob,             SingletonBlob)                   \
+  declare_c2_type(ExceptionBlob,         SingletonBlob)                   \
+  declare_c2_type(UncommonTrapBlob,      CodeBlob)                        \
                                                                           \
   /***************************************/                               \
   /* PcDesc and other compiled code info */                               \
   /***************************************/                               \
                                                                           \
   declare_toplevel_type(PcDesc)                                           \
-  declare_integer_type(PcDesc::PcDescFlags)                               \
+  declare_toplevel_type(ExceptionCache)                                   \
+  declare_toplevel_type(PcDescCache)                                      \
+  declare_toplevel_type(Dependencies)                                     \
+  declare_toplevel_type(CompileTask)                                      \
+  declare_toplevel_type(Deoptimization)                                   \
                                                                           \
   /************************/                                              \
   /* OopMap and OopMapSet */                                              \
@@ -1355,6 +1672,7 @@ static inline uint64_t cast_uint64_t(size_t x)
                                                                           \
   declare_toplevel_type(JNIHandles)                                       \
   declare_toplevel_type(JNIHandleBlock)                                   \
+  declare_toplevel_type(jobject)                                          \
                                                                           \
   /**********************/                                                \
   /* Runtime1 (C1 only) */                                                \
@@ -1375,9 +1693,349 @@ static inline uint64_t cast_uint64_t(size_t x)
   /* Matcher (C2 only) */                                                 \
   /*********************/                                                 \
                                                                           \
-  /* NOTE: this is not really a toplevel type, but we only need */        \
-  /* this one -- FIXME later if necessary */                              \
   declare_c2_toplevel_type(Matcher)                                       \
+  declare_c2_toplevel_type(Compile)                                       \
+  declare_c2_toplevel_type(InlineTree)                                    \
+  declare_c2_toplevel_type(OptoRegPair)                                   \
+  declare_c2_toplevel_type(JVMState)                                      \
+  declare_c2_toplevel_type(Phase)                                         \
+    declare_c2_type(PhaseCFG, Phase)                                      \
+    declare_c2_type(PhaseRegAlloc, Phase)                                 \
+    declare_c2_type(PhaseChaitin, PhaseRegAlloc)                          \
+  declare_c2_toplevel_type(CFGElement)                                    \
+    declare_c2_type(Block, CFGElement)                                    \
+  declare_c2_toplevel_type(Block_Array)                                   \
+    declare_c2_type(Block_List, Block_Array)                              \
+  declare_c2_toplevel_type(Node_Array)                                    \
+  declare_c2_type(Node_List, Node_Array)                                  \
+  declare_c2_type(Unique_Node_List, Node_List)                            \
+  declare_c2_toplevel_type(Node)                                          \
+  declare_c2_type(AddNode, Node)                                          \
+  declare_c2_type(AddINode, AddNode)                                      \
+  declare_c2_type(AddLNode, AddNode)                                      \
+  declare_c2_type(AddFNode, AddNode)                                      \
+  declare_c2_type(AddDNode, AddNode)                                      \
+  declare_c2_type(AddPNode, Node)                                         \
+  declare_c2_type(OrINode, AddNode)                                       \
+  declare_c2_type(OrLNode, AddNode)                                       \
+  declare_c2_type(XorINode, AddNode)                                      \
+  declare_c2_type(XorLNode, AddNode)                                      \
+  declare_c2_type(MaxNode, AddNode)                                       \
+  declare_c2_type(MaxINode, MaxNode)                                      \
+  declare_c2_type(MinINode, MaxNode)                                      \
+  declare_c2_type(StartNode, MultiNode)                                   \
+  declare_c2_type(StartOSRNode, StartNode)                                \
+  declare_c2_type(ParmNode, ProjNode)                                     \
+  declare_c2_type(ReturnNode, Node)                                       \
+  declare_c2_type(RethrowNode, Node)                                      \
+  declare_c2_type(TailCallNode, ReturnNode)                               \
+  declare_c2_type(TailJumpNode, ReturnNode)                               \
+  declare_c2_type(SafePointNode, MultiNode)                               \
+  declare_c2_type(CallNode, SafePointNode)                                \
+  declare_c2_type(CallJavaNode, CallNode)                                 \
+  declare_c2_type(CallStaticJavaNode, CallJavaNode)                       \
+  declare_c2_type(CallDynamicJavaNode, CallJavaNode)                      \
+  declare_c2_type(CallRuntimeNode, CallNode)                              \
+  declare_c2_type(CallLeafNode, CallRuntimeNode)                          \
+  declare_c2_type(CallLeafNoFPNode, CallLeafNode)                         \
+  declare_c2_type(AllocateNode, CallNode)                                 \
+  declare_c2_type(AllocateArrayNode, AllocateNode)                        \
+  declare_c2_type(LockNode, AbstractLockNode)                             \
+  declare_c2_type(UnlockNode, AbstractLockNode)                           \
+  declare_c2_type(FastLockNode, CmpNode)                                  \
+  declare_c2_type(FastUnlockNode, CmpNode)                                \
+  declare_c2_type(RegionNode, Node)                                       \
+  declare_c2_type(JProjNode, ProjNode)                                    \
+  declare_c2_type(PhiNode, TypeNode)                                      \
+  declare_c2_type(GotoNode, Node)                                         \
+  declare_c2_type(CProjNode, ProjNode)                                    \
+  declare_c2_type(MultiBranchNode, MultiNode)                             \
+  declare_c2_type(IfNode, MultiBranchNode)                                \
+  declare_c2_type(IfTrueNode, CProjNode)                                  \
+  declare_c2_type(IfFalseNode, CProjNode)                                 \
+  declare_c2_type(PCTableNode, MultiBranchNode)                           \
+  declare_c2_type(JumpNode, PCTableNode)                                  \
+  declare_c2_type(JumpProjNode, JProjNode)                                \
+  declare_c2_type(CatchNode, PCTableNode)                                 \
+  declare_c2_type(CatchProjNode, CProjNode)                               \
+  declare_c2_type(CreateExNode, TypeNode)                                 \
+  declare_c2_type(ClearArrayNode, Node)                                   \
+  declare_c2_type(NeverBranchNode, MultiBranchNode)                       \
+  declare_c2_type(ConNode, TypeNode)                                      \
+  declare_c2_type(ConINode, ConNode)                                      \
+  declare_c2_type(ConPNode, ConNode)                                      \
+  declare_c2_type(ConNNode, ConNode)                                      \
+  declare_c2_type(ConLNode, ConNode)                                      \
+  declare_c2_type(ConFNode, ConNode)                                      \
+  declare_c2_type(ConDNode, ConNode)                                      \
+  declare_c2_type(BinaryNode, Node)                                       \
+  declare_c2_type(CMoveNode, TypeNode)                                    \
+  declare_c2_type(CMoveDNode, CMoveNode)                                  \
+  declare_c2_type(CMoveFNode, CMoveNode)                                  \
+  declare_c2_type(CMoveINode, CMoveNode)                                  \
+  declare_c2_type(CMoveLNode, CMoveNode)                                  \
+  declare_c2_type(CMovePNode, CMoveNode)                                  \
+  declare_c2_type(CMoveNNode, CMoveNode)                                  \
+  declare_c2_type(EncodePNode, TypeNode)                                  \
+  declare_c2_type(DecodeNNode, TypeNode)                                  \
+  declare_c2_type(ConstraintCastNode, TypeNode)                           \
+  declare_c2_type(CastIINode, ConstraintCastNode)                         \
+  declare_c2_type(CastPPNode, ConstraintCastNode)                         \
+  declare_c2_type(CheckCastPPNode, TypeNode)                              \
+  declare_c2_type(Conv2BNode, Node)                                       \
+  declare_c2_type(ConvD2FNode, Node)                                      \
+  declare_c2_type(ConvD2INode, Node)                                      \
+  declare_c2_type(ConvD2LNode, Node)                                      \
+  declare_c2_type(ConvF2DNode, Node)                                      \
+  declare_c2_type(ConvF2INode, Node)                                      \
+  declare_c2_type(ConvF2LNode, Node)                                      \
+  declare_c2_type(ConvI2DNode, Node)                                      \
+  declare_c2_type(ConvI2FNode, Node)                                      \
+  declare_c2_type(ConvI2LNode, TypeNode)                                  \
+  declare_c2_type(ConvL2DNode, Node)                                      \
+  declare_c2_type(ConvL2FNode, Node)                                      \
+  declare_c2_type(ConvL2INode, Node)                                      \
+  declare_c2_type(CastX2PNode, Node)                                      \
+  declare_c2_type(CastP2XNode, Node)                                      \
+  declare_c2_type(MemBarNode, MultiNode)                                  \
+  declare_c2_type(MemBarAcquireNode, MemBarNode)                          \
+  declare_c2_type(MemBarReleaseNode, MemBarNode)                          \
+  declare_c2_type(MemBarVolatileNode, MemBarNode)                         \
+  declare_c2_type(MemBarCPUOrderNode, MemBarNode)                         \
+  declare_c2_type(InitializeNode, MemBarNode)                             \
+  declare_c2_type(ThreadLocalNode, Node)                                  \
+  declare_c2_type(Opaque1Node, Node)                                      \
+  declare_c2_type(Opaque2Node, Node)                                      \
+  declare_c2_type(PartialSubtypeCheckNode, Node)                          \
+  declare_c2_type(MoveI2FNode, Node)                                      \
+  declare_c2_type(MoveL2DNode, Node)                                      \
+  declare_c2_type(MoveF2INode, Node)                                      \
+  declare_c2_type(MoveD2LNode, Node)                                      \
+  declare_c2_type(DivINode, Node)                                         \
+  declare_c2_type(DivLNode, Node)                                         \
+  declare_c2_type(DivFNode, Node)                                         \
+  declare_c2_type(DivDNode, Node)                                         \
+  declare_c2_type(ModINode, Node)                                         \
+  declare_c2_type(ModLNode, Node)                                         \
+  declare_c2_type(ModFNode, Node)                                         \
+  declare_c2_type(ModDNode, Node)                                         \
+  declare_c2_type(DivModNode, MultiNode)                                  \
+  declare_c2_type(DivModINode, DivModNode)                                \
+  declare_c2_type(DivModLNode, DivModNode)                                \
+  declare_c2_type(BoxLockNode, Node)                                      \
+  declare_c2_type(LoopNode, RegionNode)                                   \
+  declare_c2_type(CountedLoopNode, LoopNode)                              \
+  declare_c2_type(CountedLoopEndNode, IfNode)                             \
+  declare_c2_type(MachNode, Node)                                         \
+  declare_c2_type(MachIdealNode, MachNode)                                \
+  declare_c2_type(MachTypeNode, MachNode)                                 \
+  declare_c2_type(MachBreakpointNode, MachIdealNode)                      \
+  declare_c2_type(MachUEPNode, MachIdealNode)                             \
+  declare_c2_type(MachPrologNode, MachIdealNode)                          \
+  declare_c2_type(MachEpilogNode, MachIdealNode)                          \
+  declare_c2_type(MachNopNode, MachIdealNode)                             \
+  declare_c2_type(MachSpillCopyNode, MachIdealNode)                       \
+  declare_c2_type(MachNullCheckNode, MachIdealNode)                       \
+  declare_c2_type(MachProjNode, ProjNode)                                 \
+  declare_c2_type(MachIfNode, MachNode)                                   \
+  declare_c2_type(MachFastLockNode, MachNode)                             \
+  declare_c2_type(MachReturnNode, MachNode)                               \
+  declare_c2_type(MachSafePointNode, MachReturnNode)                      \
+  declare_c2_type(MachCallNode, MachSafePointNode)                        \
+  declare_c2_type(MachCallJavaNode, MachCallNode)                         \
+  declare_c2_type(MachCallStaticJavaNode, MachCallJavaNode)               \
+  declare_c2_type(MachCallDynamicJavaNode, MachCallJavaNode)              \
+  declare_c2_type(MachCallRuntimeNode, MachCallNode)                      \
+  declare_c2_type(MachHaltNode, MachReturnNode)                           \
+  declare_c2_type(MachTempNode, MachNode)                                 \
+  declare_c2_type(MemNode, Node)                                          \
+  declare_c2_type(MergeMemNode, Node)                                     \
+  declare_c2_type(LoadNode, MemNode)                                      \
+  declare_c2_type(LoadBNode, LoadNode)                                    \
+  declare_c2_type(LoadUSNode, LoadNode)                                   \
+  declare_c2_type(LoadINode, LoadNode)                                    \
+  declare_c2_type(LoadRangeNode, LoadINode)                               \
+  declare_c2_type(LoadLNode, LoadNode)                                    \
+  declare_c2_type(LoadL_unalignedNode, LoadLNode)                         \
+  declare_c2_type(LoadFNode, LoadNode)                                    \
+  declare_c2_type(LoadDNode, LoadNode)                                    \
+  declare_c2_type(LoadD_unalignedNode, LoadDNode)                         \
+  declare_c2_type(LoadPNode, LoadNode)                                    \
+  declare_c2_type(LoadNNode, LoadNode)                                    \
+  declare_c2_type(LoadKlassNode, LoadPNode)                               \
+  declare_c2_type(LoadNKlassNode, LoadNNode)                              \
+  declare_c2_type(LoadSNode, LoadNode)                                    \
+  declare_c2_type(StoreNode, MemNode)                                     \
+  declare_c2_type(StoreBNode, StoreNode)                                  \
+  declare_c2_type(StoreCNode, StoreNode)                                  \
+  declare_c2_type(StoreINode, StoreNode)                                  \
+  declare_c2_type(StoreLNode, StoreNode)                                  \
+  declare_c2_type(StoreFNode, StoreNode)                                  \
+  declare_c2_type(StoreDNode, StoreNode)                                  \
+  declare_c2_type(StorePNode, StoreNode)                                  \
+  declare_c2_type(StoreNNode, StoreNode)                                  \
+  declare_c2_type(StoreCMNode, StoreNode)                                 \
+  declare_c2_type(LoadPLockedNode, LoadPNode)                             \
+  declare_c2_type(LoadLLockedNode, LoadLNode)                             \
+  declare_c2_type(SCMemProjNode, ProjNode)                                \
+  declare_c2_type(LoadStoreNode, Node)                                    \
+  declare_c2_type(StorePConditionalNode, LoadStoreNode)                   \
+  declare_c2_type(StoreLConditionalNode, LoadStoreNode)                   \
+  declare_c2_type(CompareAndSwapLNode, LoadStoreNode)                     \
+  declare_c2_type(CompareAndSwapINode, LoadStoreNode)                     \
+  declare_c2_type(CompareAndSwapPNode, LoadStoreNode)                     \
+  declare_c2_type(CompareAndSwapNNode, LoadStoreNode)                     \
+  declare_c2_type(PrefetchReadNode, Node)                                 \
+  declare_c2_type(PrefetchWriteNode, Node)                                \
+  declare_c2_type(MulNode, Node)                                          \
+  declare_c2_type(MulINode, MulNode)                                      \
+  declare_c2_type(MulLNode, MulNode)                                      \
+  declare_c2_type(MulFNode, MulNode)                                      \
+  declare_c2_type(MulDNode, MulNode)                                      \
+  declare_c2_type(MulHiLNode, Node)                                       \
+  declare_c2_type(AndINode, MulINode)                                     \
+  declare_c2_type(AndLNode, MulLNode)                                     \
+  declare_c2_type(LShiftINode, Node)                                      \
+  declare_c2_type(LShiftLNode, Node)                                      \
+  declare_c2_type(RShiftINode, Node)                                      \
+  declare_c2_type(RShiftLNode, Node)                                      \
+  declare_c2_type(URShiftINode, Node)                                     \
+  declare_c2_type(URShiftLNode, Node)                                     \
+  declare_c2_type(MultiNode, Node)                                        \
+  declare_c2_type(ProjNode, Node)                                         \
+  declare_c2_type(TypeNode, Node)                                         \
+  declare_c2_type(NodeHash, StackObj)                                     \
+  declare_c2_type(RootNode, LoopNode)                                     \
+  declare_c2_type(HaltNode, Node)                                         \
+  declare_c2_type(SubNode, Node)                                          \
+  declare_c2_type(SubINode, SubNode)                                      \
+  declare_c2_type(SubLNode, SubNode)                                      \
+  declare_c2_type(SubFPNode, SubNode)                                     \
+  declare_c2_type(SubFNode, SubFPNode)                                    \
+  declare_c2_type(SubDNode, SubFPNode)                                    \
+  declare_c2_type(CmpNode, SubNode)                                       \
+  declare_c2_type(CmpINode, CmpNode)                                      \
+  declare_c2_type(CmpUNode, CmpNode)                                      \
+  declare_c2_type(CmpPNode, CmpNode)                                      \
+  declare_c2_type(CmpNNode, CmpNode)                                      \
+  declare_c2_type(CmpLNode, CmpNode)                                      \
+  declare_c2_type(CmpL3Node, CmpLNode)                                    \
+  declare_c2_type(CmpFNode, CmpNode)                                      \
+  declare_c2_type(CmpF3Node, CmpFNode)                                    \
+  declare_c2_type(CmpDNode, CmpNode)                                      \
+  declare_c2_type(CmpD3Node, CmpDNode)                                    \
+  declare_c2_type(BoolNode, Node)                                         \
+  declare_c2_type(AbsNode, Node)                                          \
+  declare_c2_type(AbsINode, AbsNode)                                      \
+  declare_c2_type(AbsFNode, AbsNode)                                      \
+  declare_c2_type(AbsDNode, AbsNode)                                      \
+  declare_c2_type(CmpLTMaskNode, Node)                                    \
+  declare_c2_type(NegNode, Node)                                          \
+  declare_c2_type(NegFNode, NegNode)                                      \
+  declare_c2_type(NegDNode, NegNode)                                      \
+  declare_c2_type(CosDNode, Node)                                         \
+  declare_c2_type(SinDNode, Node)                                         \
+  declare_c2_type(TanDNode, Node)                                         \
+  declare_c2_type(AtanDNode, Node)                                        \
+  declare_c2_type(SqrtDNode, Node)                                        \
+  declare_c2_type(ExpDNode, Node)                                         \
+  declare_c2_type(LogDNode, Node)                                         \
+  declare_c2_type(Log10DNode, Node)                                       \
+  declare_c2_type(PowDNode, Node)                                         \
+  declare_c2_type(ReverseBytesINode, Node)                                \
+  declare_c2_type(ReverseBytesLNode, Node)                                \
+  declare_c2_type(VectorNode, Node)                                       \
+  declare_c2_type(AddVBNode, VectorNode)                                  \
+  declare_c2_type(AddVCNode, VectorNode)                                  \
+  declare_c2_type(AddVSNode, VectorNode)                                  \
+  declare_c2_type(AddVINode, VectorNode)                                  \
+  declare_c2_type(AddVLNode, VectorNode)                                  \
+  declare_c2_type(AddVFNode, VectorNode)                                  \
+  declare_c2_type(AddVDNode, VectorNode)                                  \
+  declare_c2_type(SubVBNode, VectorNode)                                  \
+  declare_c2_type(SubVCNode, VectorNode)                                  \
+  declare_c2_type(SubVSNode, VectorNode)                                  \
+  declare_c2_type(SubVINode, VectorNode)                                  \
+  declare_c2_type(SubVLNode, VectorNode)                                  \
+  declare_c2_type(SubVFNode, VectorNode)                                  \
+  declare_c2_type(SubVDNode, VectorNode)                                  \
+  declare_c2_type(MulVFNode, VectorNode)                                  \
+  declare_c2_type(MulVDNode, VectorNode)                                  \
+  declare_c2_type(DivVFNode, VectorNode)                                  \
+  declare_c2_type(DivVDNode, VectorNode)                                  \
+  declare_c2_type(LShiftVBNode, VectorNode)                               \
+  declare_c2_type(LShiftVCNode, VectorNode)                               \
+  declare_c2_type(LShiftVSNode, VectorNode)                               \
+  declare_c2_type(LShiftVINode, VectorNode)                               \
+  declare_c2_type(URShiftVBNode, VectorNode)                              \
+  declare_c2_type(URShiftVCNode, VectorNode)                              \
+  declare_c2_type(URShiftVSNode, VectorNode)                              \
+  declare_c2_type(URShiftVINode, VectorNode)                              \
+  declare_c2_type(AndVNode, VectorNode)                                   \
+  declare_c2_type(OrVNode, VectorNode)                                    \
+  declare_c2_type(XorVNode, VectorNode)                                   \
+  declare_c2_type(VectorLoadNode, LoadNode)                               \
+  declare_c2_type(Load16BNode, VectorLoadNode)                            \
+  declare_c2_type(Load8BNode, VectorLoadNode)                             \
+  declare_c2_type(Load4BNode, VectorLoadNode)                             \
+  declare_c2_type(Load8CNode, VectorLoadNode)                             \
+  declare_c2_type(Load4CNode, VectorLoadNode)                             \
+  declare_c2_type(Load2CNode, VectorLoadNode)                             \
+  declare_c2_type(Load8SNode, VectorLoadNode)                             \
+  declare_c2_type(Load4SNode, VectorLoadNode)                             \
+  declare_c2_type(Load2SNode, VectorLoadNode)                             \
+  declare_c2_type(Load4INode, VectorLoadNode)                             \
+  declare_c2_type(Load2INode, VectorLoadNode)                             \
+  declare_c2_type(Load2LNode, VectorLoadNode)                             \
+  declare_c2_type(Load4FNode, VectorLoadNode)                             \
+  declare_c2_type(Load2FNode, VectorLoadNode)                             \
+  declare_c2_type(Load2DNode, VectorLoadNode)                             \
+  declare_c2_type(VectorStoreNode, StoreNode)                             \
+  declare_c2_type(Store16BNode, VectorStoreNode)                          \
+  declare_c2_type(Store8BNode, VectorStoreNode)                           \
+  declare_c2_type(Store4BNode, VectorStoreNode)                           \
+  declare_c2_type(Store8CNode, VectorStoreNode)                           \
+  declare_c2_type(Store4CNode, VectorStoreNode)                           \
+  declare_c2_type(Store2CNode, VectorStoreNode)                           \
+  declare_c2_type(Store4INode, VectorStoreNode)                           \
+  declare_c2_type(Store2INode, VectorStoreNode)                           \
+  declare_c2_type(Store2LNode, VectorStoreNode)                           \
+  declare_c2_type(Store4FNode, VectorStoreNode)                           \
+  declare_c2_type(Store2FNode, VectorStoreNode)                           \
+  declare_c2_type(Store2DNode, VectorStoreNode)                           \
+  declare_c2_type(Replicate16BNode, VectorNode)                           \
+  declare_c2_type(Replicate8BNode, VectorNode)                            \
+  declare_c2_type(Replicate4BNode, VectorNode)                            \
+  declare_c2_type(Replicate8CNode, VectorNode)                            \
+  declare_c2_type(Replicate4CNode, VectorNode)                            \
+  declare_c2_type(Replicate2CNode, VectorNode)                            \
+  declare_c2_type(Replicate8SNode, VectorNode)                            \
+  declare_c2_type(Replicate4SNode, VectorNode)                            \
+  declare_c2_type(Replicate2SNode, VectorNode)                            \
+  declare_c2_type(Replicate4INode, VectorNode)                            \
+  declare_c2_type(Replicate2INode, VectorNode)                            \
+  declare_c2_type(Replicate2LNode, VectorNode)                            \
+  declare_c2_type(Replicate4FNode, VectorNode)                            \
+  declare_c2_type(Replicate2FNode, VectorNode)                            \
+  declare_c2_type(Replicate2DNode, VectorNode)                            \
+  declare_c2_type(PackNode, VectorNode)                                   \
+  declare_c2_type(PackBNode, PackNode)                                    \
+  declare_c2_type(PackCNode, PackNode)                                    \
+  declare_c2_type(PackSNode, PackNode)                                    \
+  declare_c2_type(PackINode, PackNode)                                    \
+  declare_c2_type(PackLNode, PackNode)                                    \
+  declare_c2_type(PackFNode, PackNode)                                    \
+  declare_c2_type(PackDNode, PackNode)                                    \
+  declare_c2_type(Pack2x1BNode, PackNode)                                 \
+  declare_c2_type(Pack2x2BNode, PackNode)                                 \
+  declare_c2_type(ExtractNode, Node)                                      \
+  declare_c2_type(ExtractBNode, ExtractNode)                              \
+  declare_c2_type(ExtractCNode, ExtractNode)                              \
+  declare_c2_type(ExtractSNode, ExtractNode)                              \
+  declare_c2_type(ExtractINode, ExtractNode)                              \
+  declare_c2_type(ExtractLNode, ExtractNode)                              \
+  declare_c2_type(ExtractFNode, ExtractNode)                              \
+  declare_c2_type(ExtractDNode, ExtractNode)                              \
                                                                           \
   /*********************/                                                 \
   /* Adapter Blob Entries */                                              \
@@ -1385,6 +2043,32 @@ static inline uint64_t cast_uint64_t(size_t x)
   declare_toplevel_type(AdapterHandlerEntry)                              \
   declare_toplevel_type(AdapterHandlerEntry*)                             \
                                                                           \
+  /*********************/                                                 \
+  /* CI */                                                                \
+  /*********************/                                                 \
+  declare_toplevel_type(ciEnv)                                            \
+  declare_toplevel_type(ciObjectFactory)                                  \
+  declare_toplevel_type(ciConstant)                                       \
+  declare_toplevel_type(ciField)                                          \
+  declare_toplevel_type(void*)                                            \
+  declare_toplevel_type(ciObject)                                         \
+  declare_type(ciMethod, ciObject)                                        \
+  declare_type(ciMethodData, ciObject)                                    \
+  declare_type(ciType, ciObject)                                          \
+  declare_type(ciInstance, ciObject)                                      \
+  declare_toplevel_type(ciSymbol)                                         \
+  declare_type(ciKlass, ciType)                                           \
+  declare_type(ciInstanceKlass, ciKlass)                                  \
+  declare_type(ciArrayKlass, ciKlass)                                     \
+  declare_type(ciTypeArrayKlass, ciArrayKlass)                            \
+  declare_type(ciObjArrayKlass, ciArrayKlass)                             \
+  declare_type(ciMethodKlass, ciKlass)                                    \
+  declare_type(ciKlassKlass, ciKlass)                                     \
+  declare_type(ciInstanceKlassKlass, ciKlassKlass)                        \
+  declare_type(ciArrayKlassKlass, ciKlassKlass)                           \
+  declare_type(ciTypeArrayKlassKlass, ciArrayKlassKlass)                  \
+  declare_type(ciObjArrayKlassKlass, ciArrayKlassKlass)                   \
+                                                                          \
   /********************/                                                  \
   /* -XX flags        */                                                  \
   /********************/                                                  \
@@ -1393,6 +2077,12 @@ static inline uint64_t cast_uint64_t(size_t x)
   declare_toplevel_type(Flag*)                                            \
                                                                           \
   /********************/                                                  \
+  /* JVMTI            */                                                  \
+  /********************/                                                  \
+                                                                          \
+  declare_toplevel_type(JvmtiExport)                                      \
+                                                                          \
+  /********************/                                                  \
   /* JDK/VM version   */                                                  \
   /********************/                                                  \
                                                                           \
@@ -1418,19 +2108,24 @@ static inline uint64_t cast_uint64_t(size_t x)
    declare_integer_type(Location::Type)                                   \
    declare_integer_type(Location::Where)                                  \
    declare_integer_type(PermGen::Name)                                    \
+   declare_integer_type(FlagValueOrigin)                                  \
+   COMPILER2_PRESENT(declare_integer_type(OptoReg::Name))                 \
                                                                           \
    declare_integer_type(AccessFlags)  /* FIXME: wrong type (not integer) */\
   declare_toplevel_type(address)      /* FIXME: should this be an integer type? */\
+   declare_integer_type(BasicType)   /* FIXME: wrong type (not integer) */\
   declare_toplevel_type(BreakpointInfo)                                   \
   declare_toplevel_type(BreakpointInfo*)                                  \
   declare_toplevel_type(CodeBlob*)                                        \
   declare_toplevel_type(CompressedWriteStream*)                           \
   declare_toplevel_type(ConstantPoolCacheEntry)                           \
   declare_toplevel_type(elapsedTimer)                                     \
+  declare_toplevel_type(frame)                                            \
   declare_toplevel_type(intptr_t*)                                        \
    declare_unsigned_integer_type(InvocationCounter) /* FIXME: wrong type (not integer) */ \
   declare_toplevel_type(JavaThread*)                                      \
   declare_toplevel_type(java_lang_Class)                                  \
+  declare_integer_type(JavaThread::AsyncRequests)                         \
   declare_toplevel_type(jbyte*)                                           \
   declare_toplevel_type(jbyte**)                                          \
   declare_toplevel_type(jint*)                                            \
@@ -1443,6 +2138,7 @@ static inline uint64_t cast_uint64_t(size_t x)
   declare_toplevel_type(jmethodID*)                                       \
   declare_toplevel_type(Mutex*)                                           \
   declare_toplevel_type(nmethod*)                                         \
+  COMPILER2_PRESENT(declare_unsigned_integer_type(node_idx_t))            \
   declare_toplevel_type(ObjectMonitor*)                                   \
   declare_toplevel_type(oop*)                                             \
   declare_toplevel_type(OopMap**)                                         \
@@ -1453,7 +2149,10 @@ static inline uint64_t cast_uint64_t(size_t x)
    declare_integer_type(ReferenceType)                                    \
   declare_toplevel_type(StubQueue*)                                       \
   declare_toplevel_type(Thread*)                                          \
-  declare_toplevel_type(Universe)
+  declare_toplevel_type(Universe)                                         \
+  declare_toplevel_type(vframeArray)                                      \
+  declare_toplevel_type(vframeArrayElement)
+
 
   /* NOTE that we do not use the last_entry() macro here; it is used  */
   /* in vmStructs_<os>_<cpu>.hpp's VM_TYPES_OS_CPU macro (and must be */
@@ -1646,19 +2345,24 @@ static inline uint64_t cast_uint64_t(size_t x)
   declare_constant(constMethodOopDesc::_has_localvariable_table)          \
                                                                           \
   /*************************************/                                 \
-  /* instanceKlass FieldOffset enum    */                                 \
+  /* instanceKlass enum                */                                 \
   /*************************************/                                 \
                                                                           \
-  declare_constant(instanceKlass::access_flags_offset)                    \
-  declare_constant(instanceKlass::name_index_offset)                      \
-  declare_constant(instanceKlass::signature_index_offset)                 \
-  declare_constant(instanceKlass::initval_index_offset)                   \
-  declare_constant(instanceKlass::low_offset)                             \
-  declare_constant(instanceKlass::high_offset)                            \
-  declare_constant(instanceKlass::generic_signature_offset)               \
-  declare_constant(instanceKlass::next_offset)                            \
   declare_constant(instanceKlass::implementors_limit)                     \
                                                                           \
+  /*************************************/                                 \
+  /* FieldInfo FieldOffset enum        */                                 \
+  /*************************************/                                 \
+                                                                          \
+  declare_constant(FieldInfo::access_flags_offset)                        \
+  declare_constant(FieldInfo::name_index_offset)                          \
+  declare_constant(FieldInfo::signature_index_offset)                     \
+  declare_constant(FieldInfo::initval_index_offset)                       \
+  declare_constant(FieldInfo::low_offset)                                 \
+  declare_constant(FieldInfo::high_offset)                                \
+  declare_constant(FieldInfo::generic_signature_offset)                   \
+  declare_constant(FieldInfo::field_slots)                                \
+                                                                          \
   /************************************************/                      \
   /* instanceKlass InnerClassAttributeOffset enum */                      \
   /************************************************/                      \
@@ -1753,6 +2457,27 @@ static inline uint64_t cast_uint64_t(size_t x)
   declare_constant(Location::on_stack)                                    \
   declare_constant(Location::in_register)                                 \
                                                                           \
+  declare_constant(Deoptimization::Reason_many)                           \
+  declare_constant(Deoptimization::Reason_none)                           \
+  declare_constant(Deoptimization::Reason_null_check)                     \
+  declare_constant(Deoptimization::Reason_null_assert)                    \
+  declare_constant(Deoptimization::Reason_range_check)                    \
+  declare_constant(Deoptimization::Reason_class_check)                    \
+  declare_constant(Deoptimization::Reason_array_check)                    \
+  declare_constant(Deoptimization::Reason_intrinsic)                      \
+  declare_constant(Deoptimization::Reason_bimorphic)                      \
+  declare_constant(Deoptimization::Reason_unloaded)                       \
+  declare_constant(Deoptimization::Reason_uninitialized)                  \
+  declare_constant(Deoptimization::Reason_unreached)                      \
+  declare_constant(Deoptimization::Reason_unhandled)                      \
+  declare_constant(Deoptimization::Reason_constraint)                     \
+  declare_constant(Deoptimization::Reason_div0_check)                     \
+  declare_constant(Deoptimization::Reason_age)                            \
+  declare_constant(Deoptimization::Reason_predicate)                      \
+  declare_constant(Deoptimization::Reason_loop_limit_check)               \
+  declare_constant(Deoptimization::Reason_LIMIT)                          \
+  declare_constant(Deoptimization::Reason_RECORDED_LIMIT)                 \
+                                                                          \
   /*********************/                                                 \
   /* Matcher (C2 only) */                                                 \
   /*********************/                                                 \
@@ -1797,6 +2522,28 @@ static inline uint64_t cast_uint64_t(size_t x)
                                                                           \
   declare_constant(ObjectSynchronizer::_BLOCKSIZE)                        \
                                                                           \
+  /**********************/                                                \
+  /* PcDesc             */                                                \
+  /**********************/                                                \
+                                                                          \
+  declare_constant(PcDesc::PCDESC_reexecute)                              \
+  declare_constant(PcDesc::PCDESC_is_method_handle_invoke)                \
+  declare_constant(PcDesc::PCDESC_return_oop)                             \
+                                                                          \
+  /**********************/                                                \
+  /* frame              */                                                \
+  /**********************/                                                \
+                                                                          \
+  X86_ONLY(declare_constant(frame::entry_frame_call_wrapper_offset))      \
+  declare_constant(frame::pc_return_offset)                               \
+                                                                          \
+  /*************/                                                         \
+  /* vmSymbols */                                                         \
+  /*************/                                                         \
+                                                                          \
+  declare_constant(vmSymbols::FIRST_SID)                                  \
+  declare_constant(vmSymbols::SID_LIMIT)                                  \
+                                                                          \
   /********************************/                                      \
   /* Calling convention constants */                                      \
   /********************************/                                      \
@@ -2441,12 +3188,14 @@ static int recursiveFindType(VMTypeEntry* origtypes, const char* typeName, bool
   {
     VMTypeEntry* types = origtypes;
     while (types->typeName != NULL) {
-      if (!strcmp(typeName, types->typeName)) {
+      if (strcmp(typeName, types->typeName) == 0) {
+        // Found it
         return 1;
       }
       ++types;
     }
   }
+  // Search for the base type by peeling off const and *
   size_t len = strlen(typeName);
   if (typeName[len-1] == '*') {
     char * s = new char[len];
@@ -2491,7 +3240,7 @@ static int recursiveFindType(VMTypeEntry* origtypes, const char* typeName, bool
   if (!isRecurse) {
     tty->print_cr("type \"%s\" not found", typeName);
   }
-  return 2;
+  return 0;
 }
 
 
diff --git a/hotspot/src/share/vm/runtime/vmThread.cpp b/hotspot/src/share/vm/runtime/vmThread.cpp
index c50e0a1..0013444 100644
--- a/hotspot/src/share/vm/runtime/vmThread.cpp
+++ b/hotspot/src/share/vm/runtime/vmThread.cpp
@@ -46,6 +46,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 HS_DTRACE_PROBE_DECL3(hotspot, vmops__request, char *, uintptr_t, int);
 HS_DTRACE_PROBE_DECL3(hotspot, vmops__begin, char *, uintptr_t, int);
diff --git a/hotspot/src/share/vm/runtime/vmThread.hpp b/hotspot/src/share/vm/runtime/vmThread.hpp
index 6698b12..f784496 100644
--- a/hotspot/src/share/vm/runtime/vmThread.hpp
+++ b/hotspot/src/share/vm/runtime/vmThread.hpp
@@ -36,6 +36,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 //
 // Prioritized queue of VM operations.
diff --git a/hotspot/src/share/vm/runtime/vm_operations.cpp b/hotspot/src/share/vm/runtime/vm_operations.cpp
index cb5d138..b010b9a 100644
--- a/hotspot/src/share/vm/runtime/vm_operations.cpp
+++ b/hotspot/src/share/vm/runtime/vm_operations.cpp
@@ -45,6 +45,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 #define VM_OP_NAME_INITIALIZE(name) #name,
 
diff --git a/hotspot/src/share/vm/runtime/vm_version.cpp b/hotspot/src/share/vm/runtime/vm_version.cpp
index cd44c03..2a7e914 100644
--- a/hotspot/src/share/vm/runtime/vm_version.cpp
+++ b/hotspot/src/share/vm/runtime/vm_version.cpp
@@ -46,6 +46,7 @@ const char* Abstract_VM_Version::_s_vm_release = Abstract_VM_Version::vm_release
 const char* Abstract_VM_Version::_s_internal_vm_info_string = Abstract_VM_Version::internal_vm_info_string();
 bool Abstract_VM_Version::_supports_cx8 = false;
 unsigned int Abstract_VM_Version::_logical_processors_per_package = 1U;
+int Abstract_VM_Version::_reserve_for_allocation_prefetch = 0;
 
 #ifndef HOTSPOT_RELEASE_VERSION
   #error HOTSPOT_RELEASE_VERSION must be defined
@@ -166,7 +167,8 @@ const char* Abstract_VM_Version::vm_release() {
 
 #define OS       LINUX_ONLY("linux")             \
                  WINDOWS_ONLY("windows")         \
-                 SOLARIS_ONLY("solaris")
+                 SOLARIS_ONLY("solaris")         \
+                 BSD_ONLY("bsd")
 
 #ifdef ZERO
 #define CPU      ZERO_LIBARCH
diff --git a/hotspot/src/share/vm/runtime/vm_version.hpp b/hotspot/src/share/vm/runtime/vm_version.hpp
index 6fcbb6a..60e7142 100644
--- a/hotspot/src/share/vm/runtime/vm_version.hpp
+++ b/hotspot/src/share/vm/runtime/vm_version.hpp
@@ -44,6 +44,7 @@ class Abstract_VM_Version: AllStatic {
   static bool         _initialized;
   static int          _parallel_worker_threads;
   static bool         _parallel_worker_threads_initialized;
+  static int          _reserve_for_allocation_prefetch;
 
   static unsigned int nof_parallel_worker_threads(unsigned int num,
                                                   unsigned int dem,
@@ -77,6 +78,12 @@ class Abstract_VM_Version: AllStatic {
     return _logical_processors_per_package;
   }
 
+  // Need a space at the end of TLAB for prefetch instructions
+  // which may fault when accessing memory outside of heap.
+  static int reserve_for_allocation_prefetch() {
+    return _reserve_for_allocation_prefetch;
+  }
+
   // ARCH specific policy for the BiasedLocking
   static bool use_biased_locking()  { return true; }
 
diff --git a/hotspot/src/share/vm/services/gcNotifier.cpp b/hotspot/src/share/vm/services/gcNotifier.cpp
index 3f07668..f746920 100644
--- a/hotspot/src/share/vm/services/gcNotifier.cpp
+++ b/hotspot/src/share/vm/services/gcNotifier.cpp
@@ -92,7 +92,6 @@ static Handle getGcInfoBuilder(GCMemoryManager *gcManager,TRAPS) {
                           &args,
                           CHECK_NH);
   return Handle(THREAD,(oop)result.get_jobject());
-
 }
 
 static Handle createGcInfo(GCMemoryManager *gcManager, GCStatInfo *gcStatInfo,TRAPS) {
@@ -100,9 +99,16 @@ static Handle createGcInfo(GCMemoryManager *gcManager, GCStatInfo *gcStatInfo,TR
   // Fill the arrays of MemoryUsage objects with before and after GC
   // per pool memory usage
 
-  klassOop muKlass = Management::java_lang_management_MemoryUsage_klass(CHECK_NH);   objArrayOop bu = oopFactory::new_objArray( muKlass,MemoryService::num_memory_pools(), CHECK_NH);
+  klassOop mu_klass = Management::java_lang_management_MemoryUsage_klass(CHECK_NH);
+  instanceKlassHandle mu_kh(THREAD, mu_klass);
+
+  // The array allocations below should use a handle containing mu_klass
+  // as the first allocation could trigger a GC, causing the actual
+  // klass oop to move, and leaving mu_klass pointing to the old
+  // location.
+  objArrayOop bu = oopFactory::new_objArray(mu_kh(), MemoryService::num_memory_pools(), CHECK_NH);
   objArrayHandle usage_before_gc_ah(THREAD, bu);
-  objArrayOop au = oopFactory::new_objArray(muKlass,MemoryService::num_memory_pools(), CHECK_NH);
+  objArrayOop au = oopFactory::new_objArray(mu_kh(), MemoryService::num_memory_pools(), CHECK_NH);
   objArrayHandle usage_after_gc_ah(THREAD, au);
 
   for (int i = 0; i < MemoryService::num_memory_pools(); i++) {
@@ -126,7 +132,7 @@ static Handle createGcInfo(GCMemoryManager *gcManager, GCStatInfo *gcStatInfo,TR
   // The type is 'I'
   objArrayOop extra_args_array = oopFactory::new_objArray(SystemDictionary::Integer_klass(), 1, CHECK_NH);
   objArrayHandle extra_array (THREAD, extra_args_array);
-  klassOop itKlass= SystemDictionary::Integer_klass();
+  klassOop itKlass = SystemDictionary::Integer_klass();
   instanceKlassHandle intK(THREAD, itKlass);
 
   instanceHandle extra_arg_val = intK->allocate_instance_handle(CHECK_NH);
@@ -147,7 +153,7 @@ static Handle createGcInfo(GCMemoryManager *gcManager, GCStatInfo *gcStatInfo,TR
   extra_array->obj_at_put(0,extra_arg_val());
 
   klassOop gcInfoklass = Management::com_sun_management_GcInfo_klass(CHECK_NH);
-  instanceKlassHandle ik (THREAD,gcInfoklass);
+  instanceKlassHandle ik(THREAD, gcInfoklass);
 
   Handle gcInfo_instance = ik->allocate_instance_handle(CHECK_NH);
 
diff --git a/hotspot/src/share/vm/shark/sharkContext.hpp b/hotspot/src/share/vm/shark/sharkContext.hpp
index 5667b2b..2ca901e 100644
--- a/hotspot/src/share/vm/shark/sharkContext.hpp
+++ b/hotspot/src/share/vm/shark/sharkContext.hpp
@@ -171,7 +171,7 @@ class SharkContext : public llvm::LLVMContext {
                              BasicType                type) const {
     assert(type >= 0 && type < T_CONFLICT, "unhandled type");
     const llvm::Type* result = table[type];
-    assert(type != NULL, "unhandled type");
+    assert(result != NULL, "unhandled type");
     return result;
   }
 
diff --git a/hotspot/src/share/vm/utilities/accessFlags.cpp b/hotspot/src/share/vm/utilities/accessFlags.cpp
index f244d0f..0c6ea1b 100644
--- a/hotspot/src/share/vm/utilities/accessFlags.cpp
+++ b/hotspot/src/share/vm/utilities/accessFlags.cpp
@@ -34,6 +34,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 
 void AccessFlags::atomic_set_bits(jint bits) {
diff --git a/hotspot/src/share/vm/utilities/accessFlags.hpp b/hotspot/src/share/vm/utilities/accessFlags.hpp
index 663cec3..484ce4f 100644
--- a/hotspot/src/share/vm/utilities/accessFlags.hpp
+++ b/hotspot/src/share/vm/utilities/accessFlags.hpp
@@ -79,9 +79,14 @@ enum {
   // Note that the class-related ACC_ANNOTATION bit conflicts with these flags.
   JVM_ACC_FIELD_ACCESS_WATCHED       = 0x00002000,  // field access is watched by JVMTI
   JVM_ACC_FIELD_MODIFICATION_WATCHED = 0x00008000,  // field modification is watched by JVMTI
+  JVM_ACC_FIELD_INTERNAL             = 0x00000400,  // internal field, same as JVM_ACC_ABSTRACT
+
+  JVM_ACC_FIELD_INTERNAL_FLAGS       = JVM_ACC_FIELD_ACCESS_WATCHED |
+                                       JVM_ACC_FIELD_MODIFICATION_WATCHED |
+                                       JVM_ACC_FIELD_INTERNAL,
 
                                                     // flags accepted by set_field_flags()
-  JVM_ACC_FIELD_FLAGS                = 0x00008000 | JVM_ACC_WRITTEN_FLAGS
+  JVM_ACC_FIELD_FLAGS                = JVM_RECOGNIZED_FIELD_MODIFIERS | JVM_ACC_FIELD_INTERNAL_FLAGS
 
 };
 
@@ -150,13 +155,17 @@ class AccessFlags VALUE_OBJ_CLASS_SPEC {
   bool is_field_access_watched() const  { return (_flags & JVM_ACC_FIELD_ACCESS_WATCHED) != 0; }
   bool is_field_modification_watched() const
                                         { return (_flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; }
+  bool is_internal() const              { return (_flags & JVM_ACC_FIELD_INTERNAL) != 0; }
 
   // get .class file flags
   jint get_flags               () const { return (_flags & JVM_ACC_WRITTEN_FLAGS); }
 
   // Initialization
   void add_promoted_flags(jint flags)   { _flags |= (flags & JVM_ACC_PROMOTED_FLAGS); }
-  void set_field_flags(jint flags)      { _flags = (flags & JVM_ACC_FIELD_FLAGS); }
+  void set_field_flags(jint flags)      {
+    assert((flags & JVM_ACC_FIELD_FLAGS) == flags, "only recognized flags");
+    _flags = (flags & JVM_ACC_FIELD_FLAGS);
+  }
   void set_flags(jint flags)            { _flags = (flags & JVM_ACC_WRITTEN_FLAGS); }
 
   void set_queued_for_compilation()    { atomic_set_bits(JVM_ACC_QUEUED); }
@@ -218,8 +227,8 @@ class AccessFlags VALUE_OBJ_CLASS_SPEC {
                                        }
 
   // Conversion
-  jshort as_short()                    { return (jshort)_flags; }
-  jint   as_int()                      { return _flags; }
+  jshort as_short() const              { return (jshort)_flags; }
+  jint   as_int() const                { return _flags; }
 
   inline friend AccessFlags accessFlags_from(jint flags);
 
diff --git a/hotspot/src/share/vm/utilities/array.cpp b/hotspot/src/share/vm/utilities/array.cpp
index ffea394..44782ea 100644
--- a/hotspot/src/share/vm/utilities/array.cpp
+++ b/hotspot/src/share/vm/utilities/array.cpp
@@ -34,6 +34,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 
 #ifdef ASSERT
diff --git a/hotspot/src/share/vm/utilities/bitMap.cpp b/hotspot/src/share/vm/utilities/bitMap.cpp
index b7c82ee..17231d3 100644
--- a/hotspot/src/share/vm/utilities/bitMap.cpp
+++ b/hotspot/src/share/vm/utilities/bitMap.cpp
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 
 BitMap::BitMap(bm_word_t* map, idx_t size_in_bits) :
diff --git a/hotspot/src/share/vm/utilities/debug.cpp b/hotspot/src/share/vm/utilities/debug.cpp
index 27eaea8..5a68691 100644
--- a/hotspot/src/share/vm/utilities/debug.cpp
+++ b/hotspot/src/share/vm/utilities/debug.cpp
@@ -62,6 +62,10 @@
 # include "os_windows.inline.hpp"
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+# include "thread_bsd.inline.hpp"
+#endif
 
 #ifndef ASSERT
 #  ifdef _DEBUG
diff --git a/hotspot/src/share/vm/utilities/decoder.cpp b/hotspot/src/share/vm/utilities/decoder.cpp
index 032a8c2..ed156de 100644
--- a/hotspot/src/share/vm/utilities/decoder.cpp
+++ b/hotspot/src/share/vm/utilities/decoder.cpp
@@ -29,7 +29,7 @@
 Decoder::decoder_status  Decoder::_decoder_status = Decoder::no_error;
 bool                     Decoder::_initialized = false;
 
-#ifndef _WINDOWS
+#if !defined(_WINDOWS) && !defined(__APPLE__)
 
 // Implementation of common functionalities among Solaris and Linux
 #include "utilities/elfFile.hpp"
@@ -101,4 +101,3 @@ ElfFile* Decoder::get_elf_file(const char* filepath) {
 }
 
 #endif
-
diff --git a/hotspot/src/share/vm/utilities/decoder.hpp b/hotspot/src/share/vm/utilities/decoder.hpp
index ade0fc2..70ffe21 100644
--- a/hotspot/src/share/vm/utilities/decoder.hpp
+++ b/hotspot/src/share/vm/utilities/decoder.hpp
@@ -38,6 +38,8 @@ typedef BOOL  (WINAPI *pfn_SymInitialize)(HANDLE, PCTSTR, BOOL);
 typedef BOOL  (WINAPI *pfn_SymGetSymFromAddr64)(HANDLE, DWORD64, PDWORD64, PIMAGEHLP_SYMBOL64);
 typedef DWORD (WINAPI *pfn_UndecorateSymbolName)(const char*, char*, DWORD, DWORD);
 
+#elif defined(__APPLE__)
+
 #else
 
 class ElfFile;
@@ -79,7 +81,7 @@ class Decoder: public StackObj {
 
   static decoder_status    get_status() { return _decoder_status; };
 
-#ifndef _WINDOWS
+#if !defined(_WINDOWS) && !defined(__APPLE__)
  private:
   static ElfFile*         get_elf_file(const char* filepath);
 #endif // _WINDOWS
@@ -94,6 +96,7 @@ class Decoder: public StackObj {
   static bool                      _can_decode_in_vm;
   static pfn_SymGetSymFromAddr64   _pfnSymGetSymFromAddr64;
   static pfn_UndecorateSymbolName  _pfnUndecorateSymbolName;
+#elif __APPLE__
 #else
   static ElfFile*                  _opened_elf_files;
 #endif // _WINDOWS
diff --git a/hotspot/src/share/vm/utilities/elfFile.cpp b/hotspot/src/share/vm/utilities/elfFile.cpp
index 4614b94..2db1f71 100644
--- a/hotspot/src/share/vm/utilities/elfFile.cpp
+++ b/hotspot/src/share/vm/utilities/elfFile.cpp
@@ -24,7 +24,7 @@
 
 #include "precompiled.hpp"
 
-#ifndef _WINDOWS
+#if !defined(_WINDOWS) && !defined(__APPLE__)
 
 #include <string.h>
 #include <stdio.h>
diff --git a/hotspot/src/share/vm/utilities/elfFile.hpp b/hotspot/src/share/vm/utilities/elfFile.hpp
index 0a1f965..b40b90a 100644
--- a/hotspot/src/share/vm/utilities/elfFile.hpp
+++ b/hotspot/src/share/vm/utilities/elfFile.hpp
@@ -25,9 +25,13 @@
 #ifndef __ELF_FILE_HPP
 #define __ELF_FILE_HPP
 
-#ifndef _WINDOWS
+#if !defined(_WINDOWS) && !defined(__APPLE__)
 
+#if defined(__OpenBSD__)
+#include <sys/exec_elf.h>
+#else
 #include <elf.h>
+#endif
 #include <stdio.h>
 
 #ifdef _LP64
@@ -41,7 +45,9 @@ typedef Elf64_Ehdr      Elf_Ehdr;
 typedef Elf64_Shdr      Elf_Shdr;
 typedef Elf64_Sym       Elf_Sym;
 
+#if !defined(_ALLBSD_SOURCE) || defined(__APPLE__)
 #define ELF_ST_TYPE ELF64_ST_TYPE
+#endif
 
 #else
 
@@ -55,8 +61,10 @@ typedef Elf32_Ehdr      Elf_Ehdr;
 typedef Elf32_Shdr      Elf_Shdr;
 typedef Elf32_Sym       Elf_Sym;
 
+#if !defined(_ALLBSD_SOURCE) || defined(__APPLE__)
 #define ELF_ST_TYPE ELF32_ST_TYPE
 #endif
+#endif
 
 #include "globalDefinitions.hpp"
 #include "memory/allocation.hpp"
@@ -137,4 +145,3 @@ class ElfFile: public CHeapObj {
 #endif // _WINDOWS
 
 #endif // __ELF_FILE_HPP
-
diff --git a/hotspot/src/share/vm/utilities/elfStringTable.cpp b/hotspot/src/share/vm/utilities/elfStringTable.cpp
index 994b80a..905f82b 100644
--- a/hotspot/src/share/vm/utilities/elfStringTable.cpp
+++ b/hotspot/src/share/vm/utilities/elfStringTable.cpp
@@ -24,7 +24,7 @@
 
 #include "precompiled.hpp"
 
-#ifndef _WINDOWS
+#if !defined(_WINDOWS) && !defined(__APPLE__)
 
 #include "memory/allocation.inline.hpp"
 #include "runtime/os.hpp"
@@ -87,4 +87,3 @@ const char* ElfStringTable::string_at(int pos) {
 }
 
 #endif // _WINDOWS
-
diff --git a/hotspot/src/share/vm/utilities/elfStringTable.hpp b/hotspot/src/share/vm/utilities/elfStringTable.hpp
index bfafa1a..a984e3a 100644
--- a/hotspot/src/share/vm/utilities/elfStringTable.hpp
+++ b/hotspot/src/share/vm/utilities/elfStringTable.hpp
@@ -25,7 +25,7 @@
 #ifndef __ELF_STRING_TABLE_HPP
 #define __ELF_STRING_TABLE_HPP
 
-#ifndef _WINDOWS
+#if !defined(_WINDOWS) && !defined(__APPLE__)
 
 #include "memory/allocation.hpp"
 #include "utilities/decoder.hpp"
@@ -79,4 +79,3 @@ class ElfStringTable: CHeapObj {
 #endif // _WINDOWS
 
 #endif // __ELF_STRING_TABLE_HPP
-
diff --git a/hotspot/src/share/vm/utilities/elfSymbolTable.cpp b/hotspot/src/share/vm/utilities/elfSymbolTable.cpp
index 0fa039c..d160601 100644
--- a/hotspot/src/share/vm/utilities/elfSymbolTable.cpp
+++ b/hotspot/src/share/vm/utilities/elfSymbolTable.cpp
@@ -24,7 +24,7 @@
 
 #include "precompiled.hpp"
 
-#ifndef _WINDOWS
+#if !defined(_WINDOWS) && !defined(__APPLE__)
 
 #include "memory/allocation.inline.hpp"
 #include "utilities/elfSymbolTable.hpp"
diff --git a/hotspot/src/share/vm/utilities/elfSymbolTable.hpp b/hotspot/src/share/vm/utilities/elfSymbolTable.hpp
index 5ac1c4a..c8a11fc 100644
--- a/hotspot/src/share/vm/utilities/elfSymbolTable.hpp
+++ b/hotspot/src/share/vm/utilities/elfSymbolTable.hpp
@@ -25,7 +25,7 @@
 #ifndef __ELF_SYMBOL_TABLE_HPP
 #define __ELF_SYMBOL_TABLE_HPP
 
-#ifndef _WINDOWS
+#if !defined(_WINDOWS) && !defined(__APPLE__)
 
 
 #include "memory/allocation.hpp"
@@ -68,6 +68,3 @@ class ElfSymbolTable: public CHeapObj {
 #endif // _WINDOWS
 
 #endif // __ELF_SYMBOL_TABLE_HPP
-
-
-
diff --git a/hotspot/src/share/vm/utilities/events.cpp b/hotspot/src/share/vm/utilities/events.cpp
index 24e4eb4..6234119 100644
--- a/hotspot/src/share/vm/utilities/events.cpp
+++ b/hotspot/src/share/vm/utilities/events.cpp
@@ -38,6 +38,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 
 #ifndef PRODUCT
diff --git a/hotspot/src/share/vm/utilities/exceptions.cpp b/hotspot/src/share/vm/utilities/exceptions.cpp
index 3d2f3cf..9196027 100644
--- a/hotspot/src/share/vm/utilities/exceptions.cpp
+++ b/hotspot/src/share/vm/utilities/exceptions.cpp
@@ -42,6 +42,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 
 // Implementation of ThreadShadow
diff --git a/hotspot/src/share/vm/utilities/exceptions.hpp b/hotspot/src/share/vm/utilities/exceptions.hpp
index 52540f3..f4ad5dd 100644
--- a/hotspot/src/share/vm/utilities/exceptions.hpp
+++ b/hotspot/src/share/vm/utilities/exceptions.hpp
@@ -58,6 +58,8 @@ class JavaCallArguments;
 // include hierachy reasons).
 
 class ThreadShadow: public CHeapObj {
+  friend class VMStructs;
+
  protected:
   oop  _pending_exception;                       // Thread has gc actions.
   const char* _exception_file;                   // file information for exception (debugging only)
diff --git a/hotspot/src/share/vm/utilities/globalDefinitions.hpp b/hotspot/src/share/vm/utilities/globalDefinitions.hpp
index 8607a3e..5bacab9 100644
--- a/hotspot/src/share/vm/utilities/globalDefinitions.hpp
+++ b/hotspot/src/share/vm/utilities/globalDefinitions.hpp
@@ -25,6 +25,8 @@
 #ifndef SHARE_VM_UTILITIES_GLOBALDEFINITIONS_HPP
 #define SHARE_VM_UTILITIES_GLOBALDEFINITIONS_HPP
 
+#define __STDC_FORMAT_MACROS
+
 #ifdef TARGET_COMPILER_gcc
 # include "utilities/globalDefinitions_gcc.hpp"
 #endif
@@ -1178,67 +1180,47 @@ inline int build_int_from_shorts( jushort low, jushort high ) {
 }
 
 // Printf-style formatters for fixed- and variable-width types as pointers and
-// integers.
-//
-// Each compiler-specific definitions file (e.g., globalDefinitions_gcc.hpp)
-// must define the macro FORMAT64_MODIFIER, which is the modifier for '%x' or
-// '%d' formats to indicate a 64-bit quantity; commonly "l" (in LP64) or "ll"
-// (in ILP32).
+// integers.  These are derived from the definitions in inttypes.h.  If the platform
+// doesn't provide appropriate definitions, they should be provided in
+// the compiler-specific definitions file (e.g., globalDefinitions_gcc.hpp)
 
 #define BOOL_TO_STR(_b_) ((_b_) ? "true" : "false")
 
 // Format 32-bit quantities.
-#define INT32_FORMAT  "%d"
-#define UINT32_FORMAT "%u"
-#define INT32_FORMAT_W(width)   "%" #width "d"
-#define UINT32_FORMAT_W(width)  "%" #width "u"
+#define INT32_FORMAT           "%" PRId32
+#define UINT32_FORMAT          "%" PRIu32
+#define INT32_FORMAT_W(width)  "%" #width PRId32
+#define UINT32_FORMAT_W(width) "%" #width PRIu32
 
-#define PTR32_FORMAT  "0x%08x"
+#define PTR32_FORMAT           "0x%08" PRIx32
 
 // Format 64-bit quantities.
-#define INT64_FORMAT  "%" FORMAT64_MODIFIER "d"
-#define UINT64_FORMAT "%" FORMAT64_MODIFIER "u"
-#define PTR64_FORMAT  "0x%016" FORMAT64_MODIFIER "x"
+#define INT64_FORMAT           "%" PRId64
+#define UINT64_FORMAT          "%" PRIu64
+#define INT64_FORMAT_W(width)  "%" #width PRId64
+#define UINT64_FORMAT_W(width) "%" #width PRIu64
 
-#define INT64_FORMAT_W(width)  "%" #width FORMAT64_MODIFIER "d"
-#define UINT64_FORMAT_W(width) "%" #width FORMAT64_MODIFIER "u"
+#define PTR64_FORMAT           "0x%016" PRIx64
 
-// Format macros that allow the field width to be specified.  The width must be
-// a string literal (e.g., "8") or a macro that evaluates to one.
-#ifdef _LP64
-#define UINTX_FORMAT_W(width)   UINT64_FORMAT_W(width)
-#define SSIZE_FORMAT_W(width)   INT64_FORMAT_W(width)
-#define SIZE_FORMAT_W(width)    UINT64_FORMAT_W(width)
-#else
-#define UINTX_FORMAT_W(width)   UINT32_FORMAT_W(width)
-#define SSIZE_FORMAT_W(width)   INT32_FORMAT_W(width)
-#define SIZE_FORMAT_W(width)    UINT32_FORMAT_W(width)
-#endif // _LP64
-
-// Format pointers and size_t (or size_t-like integer types) which change size
-// between 32- and 64-bit. The pointer format theoretically should be "%p",
-// however, it has different output on different platforms. On Windows, the data
-// will be padded with zeros automatically. On Solaris, we can use "%016p" &
-// "%08p" on 64 bit & 32 bit platforms to make the data padded with extra zeros.
-// On Linux, "%016p" or "%08p" is not be allowed, at least on the latest GCC
-// 4.3.2. So we have to use "%016x" or "%08x" to simulate the printing format.
-// GCC 4.3.2, however requires the data to be converted to "intptr_t" when
-// using "%x".
+// Format pointers which change size between 32- and 64-bit.
 #ifdef  _LP64
-#define PTR_FORMAT    PTR64_FORMAT
-#define UINTX_FORMAT  UINT64_FORMAT
-#define INTX_FORMAT   INT64_FORMAT
-#define SIZE_FORMAT   UINT64_FORMAT
-#define SSIZE_FORMAT  INT64_FORMAT
+#define INTPTR_FORMAT "0x%016" PRIxPTR
+#define PTR_FORMAT    "0x%016" PRIxPTR
 #else   // !_LP64
-#define PTR_FORMAT    PTR32_FORMAT
-#define UINTX_FORMAT  UINT32_FORMAT
-#define INTX_FORMAT   INT32_FORMAT
-#define SIZE_FORMAT   UINT32_FORMAT
-#define SSIZE_FORMAT  INT32_FORMAT
+#define INTPTR_FORMAT "0x%08"  PRIxPTR
+#define PTR_FORMAT    "0x%08"  PRIxPTR
 #endif  // _LP64
 
-#define INTPTR_FORMAT PTR_FORMAT
+#define SSIZE_FORMAT          "%" PRIdPTR
+#define SIZE_FORMAT           "%" PRIuPTR
+#define SSIZE_FORMAT_W(width) "%" #width PRIdPTR
+#define SIZE_FORMAT_W(width)  "%" #width PRIuPTR
+
+#define INTX_FORMAT           "%" PRIdPTR
+#define UINTX_FORMAT          "%" PRIuPTR
+#define INTX_FORMAT_W(width)  "%" #width PRIdPTR
+#define UINTX_FORMAT_W(width) "%" #width PRIuPTR
+
 
 // Enable zap-a-lot if in debug version.
 
diff --git a/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp b/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
index ac7fdf8..45b5e8f 100644
--- a/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
+++ b/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
@@ -76,15 +76,28 @@
 # include <sys/procfs.h>
 # endif
 
-#ifdef LINUX
+#if defined(LINUX) || defined(_ALLBSD_SOURCE)
 #ifndef __STDC_LIMIT_MACROS
 #define __STDC_LIMIT_MACROS
 #endif // __STDC_LIMIT_MACROS
 #include <inttypes.h>
 #include <signal.h>
+#ifndef __OpenBSD__
 #include <ucontext.h>
+#endif
+#ifdef __APPLE__
+  #include <AvailabilityMacros.h>
+  #if (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4)
+    // Mac OS X 10.4 defines EFL_AC and EFL_ID,
+    // which conflict with hotspot variable names.
+    //
+    // This has been fixed in Mac OS X 10.5.
+    #undef EFL_AC
+    #undef EFL_ID
+  #endif
+#endif
 #include <sys/time.h>
-#endif // LINUX
+#endif // LINUX || _ALLBSD_SOURCE
 
 // 4810578: varargs unsafe on 32-bit integer/64-bit pointer architectures
 // When __cplusplus is defined, NULL is defined as 0 (32-bit constant) in
@@ -120,7 +133,7 @@
 // pointer is stored as integer value.  On some platforms, sizeof(intptr_t) >
 // sizeof(void*), so here we want something which is integer type, but has the
 // same size as a pointer.
-#ifdef LINUX
+#ifdef __GNUC__
   #ifdef _LP64
     #define NULL_WORD  0L
   #else
@@ -132,7 +145,7 @@
   #define NULL_WORD  NULL
 #endif
 
-#ifndef LINUX
+#if !defined(LINUX) && !defined(_ALLBSD_SOURCE)
 // Compiler-specific primitive types
 typedef unsigned short     uint16_t;
 #ifndef _UINT32_T
@@ -152,7 +165,7 @@ typedef unsigned int            uintptr_t;
 // prior definition of intptr_t, and add "&& !defined(XXX)" above.
 #endif // _SYS_INT_TYPES_H
 
-#endif // !LINUX
+#endif // !LINUX && !_ALLBSD_SOURCE
 
 // Additional Java basic types
 
@@ -244,7 +257,9 @@ inline int g_isnan(float  f) { return isnanf(f); }
 inline int g_isnan(float  f) { return isnand(f); }
 #endif
 inline int g_isnan(double f) { return isnand(f); }
-#elif LINUX
+#elif defined(__APPLE__)
+inline int g_isnan(double f) { return isnan(f); }
+#elif defined(LINUX) || defined(_ALLBSD_SOURCE)
 inline int g_isnan(float  f) { return isnanf(f); }
 inline int g_isnan(double f) { return isnan(f); }
 #else
diff --git a/hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp b/hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp
index fca43e0..e91e607 100644
--- a/hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp
+++ b/hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp
@@ -74,8 +74,25 @@
 # ifdef SOLARIS_MUTATOR_LIBTHREAD
 # include <sys/procfs.h>
 # endif
+
+#include <inttypes.h>
+
+// Solaris 8 doesn't provide definitions of these
+#ifdef SOLARIS
+#ifndef PRIdPTR
+#if defined(_LP64)
+#define PRIdPTR                 "ld"
+#define PRIuPTR                 "lu"
+#define PRIxPTR                 "lx"
+#else
+#define PRIdPTR                 "d"
+#define PRIuPTR                 "u"
+#define PRIxPTR                 "x"
+#endif
+#endif
+#endif
+
 #ifdef LINUX
-# include <inttypes.h>
 # include <signal.h>
 # include <ucontext.h>
 # include <sys/time.h>
diff --git a/hotspot/src/share/vm/utilities/globalDefinitions_visCPP.hpp b/hotspot/src/share/vm/utilities/globalDefinitions_visCPP.hpp
index 3654999..ba54d22 100644
--- a/hotspot/src/share/vm/utilities/globalDefinitions_visCPP.hpp
+++ b/hotspot/src/share/vm/utilities/globalDefinitions_visCPP.hpp
@@ -207,6 +207,20 @@ inline int vsnprintf(char* buf, size_t count, const char* fmt, va_list argptr) {
 // Formatting.
 #define FORMAT64_MODIFIER "I64"
 
+// Visual Studio doesn't provide inttypes.h so provide appropriate definitions here.
+// The 32 bits ones might need I32 but seem to work ok without it.
+#define PRId32       "d"
+#define PRIu32       "u"
+#define PRIx32       "x"
+
+#define PRId64       "I64d"
+#define PRIu64       "I64u"
+#define PRIx64       "I64x"
+
+#define PRIdPTR       "d"
+#define PRIuPTR       "u"
+#define PRIxPTR       "x"
+
 #define offset_of(klass,field) offsetof(klass,field)
 
 #endif // SHARE_VM_UTILITIES_GLOBALDEFINITIONS_VISCPP_HPP
diff --git a/hotspot/src/share/vm/utilities/growableArray.cpp b/hotspot/src/share/vm/utilities/growableArray.cpp
index 00378af..a6ad8f3 100644
--- a/hotspot/src/share/vm/utilities/growableArray.cpp
+++ b/hotspot/src/share/vm/utilities/growableArray.cpp
@@ -34,6 +34,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 #ifdef ASSERT
 void GenericGrowableArray::set_nesting() {
   if (on_stack()) {
diff --git a/hotspot/src/share/vm/utilities/growableArray.hpp b/hotspot/src/share/vm/utilities/growableArray.hpp
index 9ee9639..34972be 100644
--- a/hotspot/src/share/vm/utilities/growableArray.hpp
+++ b/hotspot/src/share/vm/utilities/growableArray.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -77,6 +77,8 @@ extern "C" {
 }
 
 class GenericGrowableArray : public ResourceObj {
+  friend class VMStructs;
+
  protected:
   int    _len;          // current length
   int    _max;          // maximum length
@@ -136,6 +138,8 @@ class GenericGrowableArray : public ResourceObj {
 };
 
 template<class E> class GrowableArray : public GenericGrowableArray {
+  friend class VMStructs;
+
  private:
   E*     _data;         // data array
 
diff --git a/hotspot/src/share/vm/utilities/histogram.hpp b/hotspot/src/share/vm/utilities/histogram.hpp
index 9627a07..4eaa3d4 100644
--- a/hotspot/src/share/vm/utilities/histogram.hpp
+++ b/hotspot/src/share/vm/utilities/histogram.hpp
@@ -37,6 +37,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 // This class provides a framework for collecting various statistics.
 // The current implementation is oriented towards counting invocations
diff --git a/hotspot/src/share/vm/utilities/macros.hpp b/hotspot/src/share/vm/utilities/macros.hpp
index 8c8b0f3..27e2a70 100644
--- a/hotspot/src/share/vm/utilities/macros.hpp
+++ b/hotspot/src/share/vm/utilities/macros.hpp
@@ -161,6 +161,14 @@
 #define NOT_WINDOWS(code) code
 #endif
 
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
+#define BSD_ONLY(code) code
+#define NOT_BSD(code)
+#else
+#define BSD_ONLY(code)
+#define NOT_BSD(code) code
+#endif
+
 #ifdef _WIN64
 #define WIN64_ONLY(code) code
 #define NOT_WIN64(code)
diff --git a/hotspot/src/share/vm/utilities/ostream.cpp b/hotspot/src/share/vm/utilities/ostream.cpp
index 1e54ba2..6066000 100644
--- a/hotspot/src/share/vm/utilities/ostream.cpp
+++ b/hotspot/src/share/vm/utilities/ostream.cpp
@@ -39,6 +39,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "os_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "os_bsd.inline.hpp"
+#endif
 
 extern "C" void jio_print(const char* s); // Declarationtion of jvm method
 
@@ -992,7 +995,7 @@ bufferedStream::~bufferedStream() {
 
 #ifndef PRODUCT
 
-#if defined(SOLARIS) || defined(LINUX)
+#if defined(SOLARIS) || defined(LINUX) || defined(_ALLBSD_SOURCE)
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
diff --git a/hotspot/src/share/vm/utilities/preserveException.hpp b/hotspot/src/share/vm/utilities/preserveException.hpp
index d0e25ae..7737a37 100644
--- a/hotspot/src/share/vm/utilities/preserveException.hpp
+++ b/hotspot/src/share/vm/utilities/preserveException.hpp
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // This file provides more support for exception handling; see also exceptions.hpp
 class PreserveExceptionMark {
diff --git a/hotspot/src/share/vm/utilities/quickSort.cpp b/hotspot/src/share/vm/utilities/quickSort.cpp
index cc41329..b377d9a 100644
--- a/hotspot/src/share/vm/utilities/quickSort.cpp
+++ b/hotspot/src/share/vm/utilities/quickSort.cpp
@@ -92,6 +92,7 @@ bool QuickSort::sort_and_compare(int* arrayToSort, int* expectedResult, int leng
 }
 
 bool QuickSort::test_quick_sort() {
+#if 0
   tty->print_cr("test_quick_sort\n");
   {
     int* test_array = NULL;
@@ -212,6 +213,7 @@ bool QuickSort::test_quick_sort() {
     delete[] test_array;
     delete[] expected_array;
   }
+#endif
   return true;
 }
 
diff --git a/hotspot/src/share/vm/utilities/taskqueue.cpp b/hotspot/src/share/vm/utilities/taskqueue.cpp
index 5f93dc0..df61a55 100644
--- a/hotspot/src/share/vm/utilities/taskqueue.cpp
+++ b/hotspot/src/share/vm/utilities/taskqueue.cpp
@@ -37,6 +37,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 #ifdef TRACESPINNING
 uint ParallelTaskTerminator::_total_yields = 0;
@@ -274,4 +277,3 @@ void ParallelTaskTerminator::reset_for_reuse(int n_threads) {
   reset_for_reuse();
   _n_threads = n_threads;
 }
-
diff --git a/hotspot/src/share/vm/utilities/taskqueue.hpp b/hotspot/src/share/vm/utilities/taskqueue.hpp
index 5527e2f..545c6db 100644
--- a/hotspot/src/share/vm/utilities/taskqueue.hpp
+++ b/hotspot/src/share/vm/utilities/taskqueue.hpp
@@ -53,6 +53,12 @@
 #ifdef TARGET_OS_ARCH_linux_ppc
 # include "orderAccess_linux_ppc.inline.hpp"
 #endif
+#ifdef TARGET_OS_ARCH_bsd_x86
+# include "orderAccess_bsd_x86.inline.hpp"
+#endif
+#ifdef TARGET_OS_ARCH_bsd_zero
+# include "orderAccess_bsd_zero.inline.hpp"
+#endif
 
 // Simple TaskQueue stats that are collected by default in debug builds.
 
diff --git a/hotspot/src/share/vm/utilities/vmError.cpp b/hotspot/src/share/vm/utilities/vmError.cpp
index fa8b820..bb34fcd 100644
--- a/hotspot/src/share/vm/utilities/vmError.cpp
+++ b/hotspot/src/share/vm/utilities/vmError.cpp
@@ -45,13 +45,18 @@ const char *env_list[] = {
   "JAVA_HOME", "JRE_HOME", "JAVA_TOOL_OPTIONS", "_JAVA_OPTIONS", "CLASSPATH",
   "JAVA_COMPILER", "PATH", "USERNAME",
 
-  // Env variables that are defined on Solaris/Linux
+  // Env variables that are defined on Solaris/Linux/BSD
   "LD_LIBRARY_PATH", "LD_PRELOAD", "SHELL", "DISPLAY",
   "HOSTTYPE", "OSTYPE", "ARCH", "MACHTYPE",
 
   // defined on Linux
   "LD_ASSUME_KERNEL", "_JAVA_SR_SIGNUM",
 
+  // defined on Darwin
+  "DYLD_LIBRARY_PATH", "DYLD_FALLBACK_LIBRARY_PATH",
+  "DYLD_FRAMEWORK_PATH", "DYLD_FALLBACK_FRAMEWORK_PATH",
+  "DYLD_INSERT_LIBRARIES",
+
   // defined on Windows
   "OS", "PROCESSOR_IDENTIFIER", "_ALT_JAVA_HOME_DIR",
 
@@ -958,7 +963,7 @@ void VMError::report_and_die() {
     const char* ptr = OnError;
     while ((cmd = next_OnError_command(buffer, sizeof(buffer), &ptr)) != NULL){
       out.print_raw   ("#   Executing ");
-#if defined(LINUX)
+#if defined(LINUX) || defined(_ALLBSD_SOURCE)
       out.print_raw   ("/bin/sh -c ");
 #elif defined(SOLARIS)
       out.print_raw   ("/usr/bin/sh -c ");
diff --git a/hotspot/src/share/vm/utilities/workgroup.hpp b/hotspot/src/share/vm/utilities/workgroup.hpp
index 2bd6e9c..8e9effe 100644
--- a/hotspot/src/share/vm/utilities/workgroup.hpp
+++ b/hotspot/src/share/vm/utilities/workgroup.hpp
@@ -35,6 +35,9 @@
 #ifdef TARGET_OS_FAMILY_windows
 # include "thread_windows.inline.hpp"
 #endif
+#ifdef TARGET_OS_FAMILY_bsd
+# include "thread_bsd.inline.hpp"
+#endif
 
 // Task class hierarchy:
 //   AbstractGangTask
diff --git a/hotspot/test/Makefile b/hotspot/test/Makefile
index 9c66ade..50818dd 100644
--- a/hotspot/test/Makefile
+++ b/hotspot/test/Makefile
@@ -44,6 +44,22 @@ ifeq ($(OSNAME), Linux)
     ARCH = i586
   endif
 endif
+ifeq ($(OSNAME), Darwin)
+  PLATFORM = bsd
+  SLASH_JAVA = /java
+  ARCH = $(shell uname -m)
+  ifeq ($(ARCH), i386)
+    ARCH = i586
+  endif
+endif
+ifeq ($(findstring BSD,$(OSNAME)), BSD)
+  PLATFORM = bsd
+  SLASH_JAVA = /java
+  ARCH = $(shell uname -m)
+  ifeq ($(ARCH), i386)
+    ARCH = i586
+  endif
+endif
 ifeq ($(OSNAME), Windows_NT)
   PLATFORM = windows
   SLASH_JAVA = J:
diff --git a/hotspot/test/compiler/5091921/Test7005594.sh b/hotspot/test/compiler/5091921/Test7005594.sh
index a75c1b9..858e38a 100644
--- a/hotspot/test/compiler/5091921/Test7005594.sh
+++ b/hotspot/test/compiler/5091921/Test7005594.sh
@@ -43,6 +43,45 @@ fi
 echo "TESTCLASSES=${TESTCLASSES}"
 echo "CLASSPATH=${CLASSPATH}"
 
+# Amount of physical memory in megabytes
+MEM=0
+if [ -f "/proc/meminfo" ]; then
+  # Linux, Windows/Cygwin
+  MEM=`cat /proc/meminfo |grep ^MemTotal: | awk '{print $2}'`
+  MEM="$(($MEM / 1024))"
+elif [ -x "/usr/sbin/prtconf" ]; then
+  # Solaris
+  MEM=`/usr/sbin/prtconf | grep "^Memory size" | awk '{print $3}'`
+elif [ -x "/usr/sbin/system_profiler" ]; then
+  # MacOS
+  MEMo=`/usr/sbin/system_profiler SPHardwareDataType | grep Memory:`
+  MEM=`echo "$MEMo" | awk '{print $2}'`
+  MEMu=`echo "$MEMo" | awk '{print $3}'`
+  case $MEMu in
+  GB)
+    MEM="$(($MEM * 1024))"
+    ;;
+  MB)
+    ;;
+  *)
+    echo "Unknown memory unit in system_profile output: $MEMu"
+    ;;
+  esac
+elif [ -n "$ROOTDIR" -a -x "$ROOTDIR/mksnt/sysinf" ]; then
+  # Windows/MKS
+  MEM=`"$ROOTDIR/mksnt/sysinf" memory -v | grep "Total Physical Memory: " | sed 's/Total Physical Memory: *//g'`
+  MEM="$(($machine_memory / 1024))"
+else
+  echo "Unable to determine amount of physical memory on the machine"
+fi
+
+if [ $MEM -lt 2000 ]; then
+  echo "Test skipped due to low (or unknown) memory on the system: $MEM Mb"
+  exit 0
+fi
+
+echo "MEMORY=$MEM Mb"
+
 set -x
 
 cp ${TESTSRC}/Test7005594.java .
@@ -50,7 +89,7 @@ cp ${TESTSRC}/Test7005594.sh .
 
 ${TESTJAVA}/bin/javac -d . Test7005594.java
 
-${TESTJAVA}/bin/java ${TESTVMOPTS} -Xms1600m -Xcomp -XX:CompileOnly=Test7005594.test Test7005594 > test.out 2>&1
+${TESTJAVA}/bin/java ${TESTVMOPTS} -Xms1600m -XX:+IgnoreUnrecognizedVMOptions -XX:-ZapUnusedHeapArea -Xcomp -XX:CompileOnly=Test7005594.test Test7005594 > test.out 2>&1
 
 result=$?
 
diff --git a/hotspot/test/compiler/7068051/Test7068051.java b/hotspot/test/compiler/7068051/Test7068051.java
new file mode 100644
index 0000000..e2b1927
--- /dev/null
+++ b/hotspot/test/compiler/7068051/Test7068051.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+/**
+ * @test
+ * @bug 7068051
+ * @summary SIGSEGV in PhaseIdealLoop::build_loop_late_post on T5440
+ *
+ * @run shell/timeout=300 Test7068051.sh
+ */
+
+import java.io.*;
+import java.nio.*;
+import java.util.*;
+import java.util.zip.*;
+
+public class Test7068051 {
+
+    public static void main (String[] args) throws Throwable {
+
+        ZipFile zf = new ZipFile(args[0]);
+
+        Enumeration<? extends ZipEntry> entries = zf.entries();
+        ArrayList<String> names = new ArrayList<String>();
+        while (entries.hasMoreElements()) {
+            names.add(entries.nextElement().getName());
+        }
+
+        byte[] bytes = new byte[16];
+        for (String name : names) {
+            ZipEntry e = zf.getEntry(name);
+
+            if (e.isDirectory())
+                continue;
+
+            final InputStream is = zf.getInputStream(e);
+
+            try  {
+                while (is.read(bytes) >= 0) {
+                }
+                is.close();
+
+            } catch (IOException x) {
+                 System.out.println("..................................");
+                 System.out.println("          -->  is :" + is);
+                 System.out.println("          is.hash :" + is.hashCode());
+                 System.out.println();
+                 System.out.println("           e.name :" + e.getName());
+                 System.out.println("           e.hash :" + e.hashCode());
+                 System.out.println("         e.method :" + e.getMethod());
+                 System.out.println("           e.size :" + e.getSize());
+                 System.out.println("          e.csize :" + e.getCompressedSize());
+
+                 x.printStackTrace();
+                 System.out.println("..................................");
+                 System.exit(97);
+            }
+        }
+        zf.close();
+    }
+}
diff --git a/hotspot/test/compiler/7068051/Test7068051.sh b/hotspot/test/compiler/7068051/Test7068051.sh
new file mode 100644
index 0000000..ddf3bb9
--- /dev/null
+++ b/hotspot/test/compiler/7068051/Test7068051.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+# 
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+# 
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+# 
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+# 
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+# 
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+# 
+# 
+
+if [ "${TESTSRC}" = "" ]
+then
+  echo "TESTSRC not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTSRC=${TESTSRC}"
+if [ "${TESTJAVA}" = "" ]
+then
+  echo "TESTJAVA not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTJAVA=${TESTJAVA}"
+
+set -x
+
+${TESTJAVA}/bin/jar xf ${TESTJAVA}/jre/lib/javaws.jar
+${TESTJAVA}/bin/jar cf foo.jar *
+cp ${TESTSRC}/Test7068051.java ./
+${TESTJAVA}/bin/jar -uf0 foo.jar Test7068051.java
+
+${TESTJAVA}/bin/javac -d . Test7068051.java
+
+${TESTJAVA}/bin/java -showversion -Xbatch ${TESTVMOPTS} Test7068051 foo.jar
+
diff --git a/hotspot/test/compiler/7070134/Stemmer.java b/hotspot/test/compiler/7070134/Stemmer.java
new file mode 100644
index 0000000..c7edb75
--- /dev/null
+++ b/hotspot/test/compiler/7070134/Stemmer.java
@@ -0,0 +1,433 @@
+/**
+ * @test
+ * @bug 7070134
+ * @summary Hotspot crashes with sigsegv from PorterStemmer
+ *
+ * @run shell Test7070134.sh
+ */
+
+/*
+
+   Porter stemmer in Java. The original paper is in
+
+       Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14,
+       no. 3, pp 130-137,
+
+   See also http://www.tartarus.org/~martin/PorterStemmer
+
+   History:
+
+   Release 1
+
+   Bug 1 (reported by Gonzalo Parra 16/10/99) fixed as marked below.
+   The words 'aed', 'eed', 'oed' leave k at 'a' for step 3, and b[k-1]
+   is then out outside the bounds of b.
+
+   Release 2
+
+   Similarly,
+
+   Bug 2 (reported by Steve Dyrdahl 22/2/00) fixed as marked below.
+   'ion' by itself leaves j = -1 in the test for 'ion' in step 5, and
+   b[j] is then outside the bounds of b.
+
+   Release 3
+
+   Considerably revised 4/9/00 in the light of many helpful suggestions
+   from Brian Goetz of Quiotix Corporation (brian at quiotix.com).
+
+   Release 4
+
+*/
+
+import java.io.*;
+
+/**
+  * Stemmer, implementing the Porter Stemming Algorithm
+  *
+  * The Stemmer class transforms a word into its root form.  The input
+  * word can be provided a character at time (by calling add()), or at once
+  * by calling one of the various stem(something) methods.
+  */
+
+class Stemmer
+{  private char[] b;
+   private int i,     /* offset into b */
+               i_end, /* offset to end of stemmed word */
+               j, k;
+   private static final int INC = 50;
+                     /* unit of size whereby b is increased */
+   public Stemmer()
+   {  b = new char[INC];
+      i = 0;
+      i_end = 0;
+   }
+
+   /**
+    * Add a character to the word being stemmed.  When you are finished
+    * adding characters, you can call stem(void) to stem the word.
+    */
+
+   public void add(char ch)
+   {  if (i == b.length)
+      {  char[] new_b = new char[i+INC];
+         for (int c = 0; c < i; c++) new_b[c] = b[c];
+         b = new_b;
+      }
+      b[i++] = ch;
+   }
+
+
+   /** Adds wLen characters to the word being stemmed contained in a portion
+    * of a char[] array. This is like repeated calls of add(char ch), but
+    * faster.
+    */
+
+   public void add(char[] w, int wLen)
+   {  if (i+wLen >= b.length)
+      {  char[] new_b = new char[i+wLen+INC];
+         for (int c = 0; c < i; c++) new_b[c] = b[c];
+         b = new_b;
+      }
+      for (int c = 0; c < wLen; c++) b[i++] = w[c];
+   }
+
+   /**
+    * After a word has been stemmed, it can be retrieved by toString(),
+    * or a reference to the internal buffer can be retrieved by getResultBuffer
+    * and getResultLength (which is generally more efficient.)
+    */
+   public String toString() { return new String(b,0,i_end); }
+
+   /**
+    * Returns the length of the word resulting from the stemming process.
+    */
+   public int getResultLength() { return i_end; }
+
+   /**
+    * Returns a reference to a character buffer containing the results of
+    * the stemming process.  You also need to consult getResultLength()
+    * to determine the length of the result.
+    */
+   public char[] getResultBuffer() { return b; }
+
+   /* cons(i) is true <=> b[i] is a consonant. */
+
+   private final boolean cons(int i)
+   {  switch (b[i])
+      {  case 'a': case 'e': case 'i': case 'o': case 'u': return false;
+         case 'y': return (i==0) ? true : !cons(i-1);
+         default: return true;
+      }
+   }
+
+   /* m() measures the number of consonant sequences between 0 and j. if c is
+      a consonant sequence and v a vowel sequence, and <..> indicates arbitrary
+      presence,
+
+         <c><v>       gives 0
+         <c>vc<v>     gives 1
+         <c>vcvc<v>   gives 2
+         <c>vcvcvc<v> gives 3
+         ....
+   */
+
+   private final int m()
+   {  int n = 0;
+      int i = 0;
+      while(true)
+      {  if (i > j) return n;
+         if (! cons(i)) break; i++;
+      }
+      i++;
+      while(true)
+      {  while(true)
+         {  if (i > j) return n;
+               if (cons(i)) break;
+               i++;
+         }
+         i++;
+         n++;
+         while(true)
+         {  if (i > j) return n;
+            if (! cons(i)) break;
+            i++;
+         }
+         i++;
+       }
+   }
+
+   /* vowelinstem() is true <=> 0,...j contains a vowel */
+
+   private final boolean vowelinstem()
+   {  int i; for (i = 0; i <= j; i++) if (! cons(i)) return true;
+      return false;
+   }
+
+   /* doublec(j) is true <=> j,(j-1) contain a double consonant. */
+
+   private final boolean doublec(int j)
+   {  if (j < 1) return false;
+      if (b[j] != b[j-1]) return false;
+      return cons(j);
+   }
+
+   /* cvc(i) is true <=> i-2,i-1,i has the form consonant - vowel - consonant
+      and also if the second c is not w,x or y. this is used when trying to
+      restore an e at the end of a short word. e.g.
+
+         cav(e), lov(e), hop(e), crim(e), but
+         snow, box, tray.
+
+   */
+
+   private final boolean cvc(int i)
+   {  if (i < 2 || !cons(i) || cons(i-1) || !cons(i-2)) return false;
+      {  int ch = b[i];
+         if (ch == 'w' || ch == 'x' || ch == 'y') return false;
+      }
+      return true;
+   }
+
+   private final boolean ends(String s)
+   {  int l = s.length();
+      int o = k-l+1;
+      if (o < 0) return false;
+      for (int i = 0; i < l; i++) if (b[o+i] != s.charAt(i)) return false;
+      j = k-l;
+      return true;
+   }
+
+   /* setto(s) sets (j+1),...k to the characters in the string s, readjusting
+      k. */
+
+   private final void setto(String s)
+   {  int l = s.length();
+      int o = j+1;
+      for (int i = 0; i < l; i++) b[o+i] = s.charAt(i);
+      k = j+l;
+   }
+
+   /* r(s) is used further down. */
+
+   private final void r(String s) { if (m() > 0) setto(s); }
+
+   /* step1() gets rid of plurals and -ed or -ing. e.g.
+
+          caresses  ->  caress
+          ponies    ->  poni
+          ties      ->  ti
+          caress    ->  caress
+          cats      ->  cat
+
+          feed      ->  feed
+          agreed    ->  agree
+          disabled  ->  disable
+
+          matting   ->  mat
+          mating    ->  mate
+          meeting   ->  meet
+          milling   ->  mill
+          messing   ->  mess
+
+          meetings  ->  meet
+
+   */
+
+   private final void step1()
+   {  if (b[k] == 's')
+      {  if (ends("sses")) k -= 2; else
+         if (ends("ies")) setto("i"); else
+         if (b[k-1] != 's') k--;
+      }
+      if (ends("eed")) { if (m() > 0) k--; } else
+      if ((ends("ed") || ends("ing")) && vowelinstem())
+      {  k = j;
+         if (ends("at")) setto("ate"); else
+         if (ends("bl")) setto("ble"); else
+         if (ends("iz")) setto("ize"); else
+         if (doublec(k))
+         {  k--;
+            {  int ch = b[k];
+               if (ch == 'l' || ch == 's' || ch == 'z') k++;
+            }
+         }
+         else if (m() == 1 && cvc(k)) setto("e");
+     }
+   }
+
+   /* step2() turns terminal y to i when there is another vowel in the stem. */
+
+   private final void step2() { if (ends("y") && vowelinstem()) b[k] = 'i'; }
+
+   /* step3() maps double suffices to single ones. so -ization ( = -ize plus
+      -ation) maps to -ize etc. note that the string before the suffix must give
+      m() > 0. */
+
+   private final void step3() { if (k == 0) return; /* For Bug 1 */ switch (b[k-1])
+   {
+       case 'a': if (ends("ational")) { r("ate"); break; }
+                 if (ends("tional")) { r("tion"); break; }
+                 break;
+       case 'c': if (ends("enci")) { r("ence"); break; }
+                 if (ends("anci")) { r("ance"); break; }
+                 break;
+       case 'e': if (ends("izer")) { r("ize"); break; }
+                 break;
+       case 'l': if (ends("bli")) { r("ble"); break; }
+                 if (ends("alli")) { r("al"); break; }
+                 if (ends("entli")) { r("ent"); break; }
+                 if (ends("eli")) { r("e"); break; }
+                 if (ends("ousli")) { r("ous"); break; }
+                 break;
+       case 'o': if (ends("ization")) { r("ize"); break; }
+                 if (ends("ation")) { r("ate"); break; }
+                 if (ends("ator")) { r("ate"); break; }
+                 break;
+       case 's': if (ends("alism")) { r("al"); break; }
+                 if (ends("iveness")) { r("ive"); break; }
+                 if (ends("fulness")) { r("ful"); break; }
+                 if (ends("ousness")) { r("ous"); break; }
+                 break;
+       case 't': if (ends("aliti")) { r("al"); break; }
+                 if (ends("iviti")) { r("ive"); break; }
+                 if (ends("biliti")) { r("ble"); break; }
+                 break;
+       case 'g': if (ends("logi")) { r("log"); break; }
+   } }
+
+   /* step4() deals with -ic-, -full, -ness etc. similar strategy to step3. */
+
+   private final void step4() { switch (b[k])
+   {
+       case 'e': if (ends("icate")) { r("ic"); break; }
+                 if (ends("ative")) { r(""); break; }
+                 if (ends("alize")) { r("al"); break; }
+                 break;
+       case 'i': if (ends("iciti")) { r("ic"); break; }
+                 break;
+       case 'l': if (ends("ical")) { r("ic"); break; }
+                 if (ends("ful")) { r(""); break; }
+                 break;
+       case 's': if (ends("ness")) { r(""); break; }
+                 break;
+   } }
+
+   /* step5() takes off -ant, -ence etc., in context <c>vcvc<v>. */
+
+   private final void step5()
+   {   if (k == 0) return; /* for Bug 1 */ switch (b[k-1])
+       {  case 'a': if (ends("al")) break; return;
+          case 'c': if (ends("ance")) break;
+                    if (ends("ence")) break; return;
+          case 'e': if (ends("er")) break; return;
+          case 'i': if (ends("ic")) break; return;
+          case 'l': if (ends("able")) break;
+                    if (ends("ible")) break; return;
+          case 'n': if (ends("ant")) break;
+                    if (ends("ement")) break;
+                    if (ends("ment")) break;
+                    /* element etc. not stripped before the m */
+                    if (ends("ent")) break; return;
+          case 'o': if (ends("ion") && j >= 0 && (b[j] == 's' || b[j] == 't')) break;
+                                    /* j >= 0 fixes Bug 2 */
+                    if (ends("ou")) break; return;
+                    /* takes care of -ous */
+          case 's': if (ends("ism")) break; return;
+          case 't': if (ends("ate")) break;
+                    if (ends("iti")) break; return;
+          case 'u': if (ends("ous")) break; return;
+          case 'v': if (ends("ive")) break; return;
+          case 'z': if (ends("ize")) break; return;
+          default: return;
+       }
+       if (m() > 1) k = j;
+   }
+
+   /* step6() removes a final -e if m() > 1. */
+
+   private final void step6()
+   {  j = k;
+      if (b[k] == 'e')
+      {  int a = m();
+         if (a > 1 || a == 1 && !cvc(k-1)) k--;
+      }
+      if (b[k] == 'l' && doublec(k) && m() > 1) k--;
+   }
+
+   /** Stem the word placed into the Stemmer buffer through calls to add().
+    * Returns true if the stemming process resulted in a word different
+    * from the input.  You can retrieve the result with
+    * getResultLength()/getResultBuffer() or toString().
+    */
+   public void stem()
+   {  k = i - 1;
+      if (k > 1) { step1(); step2(); step3(); step4(); step5(); step6(); }
+      i_end = k+1; i = 0;
+   }
+
+   /** Test program for demonstrating the Stemmer.  It reads text from a
+    * a list of files, stems each word, and writes the result to standard
+    * output. Note that the word stemmed is expected to be in lower case:
+    * forcing lower case must be done outside the Stemmer class.
+    * Usage: Stemmer file-name file-name ...
+    */
+   public static void main(String[] args)
+   {
+      char[] w = new char[501];
+      Stemmer s = new Stemmer();
+      for (int i = 0; i < args.length; i++)
+      try
+      {
+         FileInputStream in = new FileInputStream(args[i]);
+
+         try
+         { while(true)
+
+           {  int ch = in.read();
+              if (Character.isLetter((char) ch))
+              {
+                 int j = 0;
+                 while(true)
+                 {  ch = Character.toLowerCase((char) ch);
+                    w[j] = (char) ch;
+                    if (j < 500) j++;
+                    ch = in.read();
+                    if (!Character.isLetter((char) ch))
+                    {
+                       /* to test add(char ch) */
+                       for (int c = 0; c < j; c++) s.add(w[c]);
+
+                       /* or, to test add(char[] w, int j) */
+                       /* s.add(w, j); */
+
+                       s.stem();
+                       {  String u;
+
+                          /* and now, to test toString() : */
+                          u = s.toString();
+
+                          /* to test getResultBuffer(), getResultLength() : */
+                          /* u = new String(s.getResultBuffer(), 0, s.getResultLength()); */
+
+                          System.out.print(u);
+                       }
+                       break;
+                    }
+                 }
+              }
+              if (ch < 0) break;
+              System.out.print((char)ch);
+           }
+         }
+         catch (IOException e)
+         {  System.out.println("error reading " + args[i]);
+            break;
+         }
+      }
+      catch (FileNotFoundException e)
+      {  System.out.println("file " + args[i] + " not found");
+         break;
+      }
+   }
+}
diff --git a/hotspot/test/compiler/7070134/Test7070134.sh b/hotspot/test/compiler/7070134/Test7070134.sh
new file mode 100644
index 0000000..cbebfba
--- /dev/null
+++ b/hotspot/test/compiler/7070134/Test7070134.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+# 
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+# 
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+# 
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+# 
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+# 
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+# 
+# 
+
+if [ "${TESTSRC}" = "" ]
+then
+  echo "TESTSRC not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTSRC=${TESTSRC}"
+if [ "${TESTJAVA}" = "" ]
+then
+  echo "TESTJAVA not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTJAVA=${TESTJAVA}"
+if [ "${TESTCLASSES}" = "" ]
+then
+  echo "TESTCLASSES not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTCLASSES=${TESTCLASSES}"
+echo "CLASSPATH=${CLASSPATH}"
+
+set -x
+
+cp ${TESTSRC}/Stemmer.java .
+cp ${TESTSRC}/words .
+
+${TESTJAVA}/bin/javac -d . Stemmer.java
+
+${TESTJAVA}/bin/java ${TESTVMOPTS} -Xbatch Stemmer words > test.out 2>&1
+
+exit $?
+
diff --git a/hotspot/test/compiler/7070134/words b/hotspot/test/compiler/7070134/words
new file mode 100644
index 0000000..10776d2
--- /dev/null
+++ b/hotspot/test/compiler/7070134/words
@@ -0,0 +1,97161 @@
+1080
+10-point
+10th
+11-point
+12-point
+16-point
+18-point
+1st
+2
+20-point
+2,4,5-t
+2,4-d
+2D
+2nd
+30-30
+3-D
+3-d
+3D
+3M
+3rd
+48-point
+4-D
+4GL
+4H
+4th
+5-point
+5-T
+5th
+6-point
+6th
+7-point
+7th
+8-point
+8th
+9-point
+9th
+-a
+A
+A.
+a
+a'
+a-
+a.
+A-1
+A1
+a1
+A4
+A5
+AA
+aa
+A.A.A.
+AAA
+aaa
+AAAA
+AAAAAA
+AAAL
+AAAS
+Aaberg
+Aachen
+AAE
+AAEE
+AAF
+AAG
+aah
+aahed
+aahing
+aahs
+AAII
+aal
+Aalborg
+Aalesund
+aalii
+aaliis
+aals
+Aalst
+Aalto
+AAM
+aam
+AAMSI
+Aandahl
+A-and-R
+Aani
+AAO
+AAP
+AAPSS
+Aaqbiye
+Aar
+Aara
+Aarau
+AARC
+aardvark
+aardvarks
+aardwolf
+aardwolves
+Aaren
+Aargau
+aargh
+Aarhus
+Aarika
+Aaron
+aaron
+Aaronic
+aaronic
+Aaronical
+Aaronite
+Aaronitic
+Aaron's-beard
+Aaronsburg
+Aaronson
+AARP
+aarrgh
+aarrghh
+Aaru
+AAS
+aas
+A'asia
+aasvogel
+aasvogels
+AAU
+AAUP
+AAUW
+AAVSO
+AAX
+A-axes
+A-axis
+A.B.
+AB
+Ab
+ab
+ab-
+A.B.A.
+ABA
+Aba
+aba
+Ababa
+Ababdeh
+Ababua
+abac
+abaca
+abacas
+abacate
+abacaxi
+abacay
+abaci
+abacinate
+abacination
+abacisci
+abaciscus
+abacist
+aback
+abacli
+Abaco
+abacot
+abacterial
+abactinal
+abactinally
+abaction
+abactor
+abaculi
+abaculus
+abacus
+abacuses
+Abad
+abada
+Abadan
+Abaddon
+abaddon
+abadejo
+abadengo
+abadia
+Abadite
+abaff
+abaft
+Abagael
+Abagail
+Abagtha
+Abailard
+abaisance
+abaised
+abaiser
+abaisse
+abaissed
+abaka
+Abakan
+abakas
+Abakumov
+abalation
+abalienate
+abalienated
+abalienating
+abalienation
+abalone
+abalones
+Abama
+abamp
+abampere
+abamperes
+abamps
+Abana
+aband
+abandon
+abandonable
+abandoned
+abandonedly
+abandonee
+abandoner
+abandoners
+abandoning
+abandonment
+abandonments
+abandons
+abandum
+abanet
+abanga
+Abanic
+abannition
+Abantes
+abapical
+abaptiston
+abaptistum
+Abarambo
+Abarbarea
+Abaris
+abarthrosis
+abarticular
+abarticulation
+Abas
+abas
+abase
+abased
+abasedly
+abasedness
+abasement
+abasements
+abaser
+abasers
+abases
+Abasgi
+abash
+abashed
+abashedly
+abashedness
+abashes
+abashing
+abashless
+abashlessly
+abashment
+abashments
+abasia
+abasias
+abasic
+abasing
+abasio
+abask
+abassi
+Abassieh
+Abassin
+abastard
+abastardize
+abastral
+abatable
+abatage
+Abate
+abate
+abated
+abatement
+abatements
+abater
+abaters
+abates
+abatic
+abating
+abatis
+abatised
+abatises
+abatjour
+abatjours
+abaton
+abator
+abators
+ABATS
+abattage
+abattis
+abattised
+abattises
+abattoir
+abattoirs
+abattu
+abattue
+Abatua
+abature
+abaue
+abave
+abaxial
+abaxile
+abay
+abayah
+abaze
+abb
+Abba
+abba
+abbacies
+abbacomes
+abbacy
+Abbadide
+Abbai
+abbandono
+abbas
+abbasi
+Abbasid
+abbasid
+abbassi
+Abbassid
+Abbasside
+Abbate
+abbate
+abbatial
+abbatical
+abbatie
+abbaye
+Abbe
+abbe
+abbes
+abbess
+abbesses
+abbest
+Abbevilean
+Abbeville
+Abbevillian
+abbevillian
+Abbey
+abbey
+abbeys
+abbeystead
+abbeystede
+Abbi
+Abbie
+abboccato
+abbogada
+Abbot
+abbot
+abbotcies
+abbotcy
+abbotnullius
+abbotric
+abbots
+Abbotsen
+Abbotsford
+abbotship
+abbotships
+Abbotson
+Abbotsun
+Abbott
+abbott
+Abbottson
+Abbottstown
+Abboud
+abbozzo
+ABBR
+abbr
+abbrev
+abbreviatable
+abbreviate
+abbreviated
+abbreviately
+abbreviates
+abbreviating
+abbreviation
+abbreviations
+abbreviator
+abbreviators
+abbreviatory
+abbreviature
+abbroachment
+Abby
+abby
+Abbye
+Abbyville
+ABC
+abc
+abcess
+abcissa
+abcoulomb
+ABCs
+abd
+abdal
+abdali
+abdaria
+abdat
+Abdel
+Abd-el-Kadir
+Abd-el-Krim
+Abdella
+Abderhalden
+Abderian
+Abderite
+Abderus
+abdest
+Abdias
+abdicable
+abdicant
+abdicate
+abdicated
+abdicates
+abdicating
+abdication
+abdications
+abdicative
+abdicator
+Abdiel
+abditive
+abditory
+abdom
+abdomen
+abdomens
+abdomina
+abdominal
+Abdominales
+abdominales
+abdominalia
+abdominalian
+abdominally
+abdominals
+abdominoanterior
+abdominocardiac
+abdominocentesis
+abdominocystic
+abdominogenital
+abdominohysterectomy
+abdominohysterotomy
+abdominoposterior
+abdominoscope
+abdominoscopy
+abdominothoracic
+abdominous
+abdomino-uterotomy
+abdominovaginal
+abdominovesical
+Abdon
+Abdu
+abduce
+abduced
+abducens
+abducent
+abducentes
+abduces
+abducing
+abduct
+abducted
+abducting
+abduction
+abductions
+abductor
+abductores
+abductors
+abducts
+Abdul
+Abdul-Aziz
+Abdul-baha
+Abdulla
+Abe
+a-be
+abeam
+abear
+abearance
+Abebi
+abecedaire
+abecedaria
+abecedarian
+abecedarians
+abecedaries
+abecedarium
+abecedarius
+abecedary
+abed
+abede
+abedge
+Abednego
+abegge
+abeigh
+ABEL
+Abel
+abel
+Abelard
+abele
+abeles
+Abelia
+Abelian
+abelian
+Abelicea
+Abelite
+abelite
+Abell
+Abelmoschus
+abelmosk
+abelmosks
+abelmusk
+Abelonian
+Abelson
+abeltree
+Abencerrages
+abend
+abends
+Abenezra
+abenteric
+Abeokuta
+abepithymia
+ABEPP
+Abercrombie
+Abercromby
+Aberdare
+aberdavine
+Aberdeen
+aberdeen
+Aberdeenshire
+aberdevine
+Aberdonian
+aberduvine
+Aberfan
+Aberglaube
+Aberia
+Abernant
+Abernathy
+abernethy
+Abernon
+aberr
+aberrance
+aberrancies
+aberrancy
+aberrant
+aberrantly
+aberrants
+aberrate
+aberrated
+aberrating
+aberration
+aberrational
+aberrations
+aberrative
+aberrator
+aberrometer
+aberroscope
+Abert
+aberuncate
+aberuncator
+Aberystwyth
+abesse
+abessive
+abet
+abetment
+abetments
+abets
+abettal
+abettals
+abetted
+abetter
+abetters
+abetting
+abettor
+abettors
+Abeu
+abevacuation
+Abey
+abey
+abeyance
+abeyances
+abeyancies
+abeyancy
+abeyant
+abfarad
+abfarads
+ABFM
+Abgatha
+ABHC
+abhenries
+abhenry
+abhenrys
+abhinaya
+abhiseka
+abhominable
+abhor
+abhorred
+abhorrence
+abhorrences
+abhorrency
+abhorrent
+abhorrently
+abhorrer
+abhorrers
+abhorrible
+abhorring
+abhors
+Abhorson
+ABI
+Abia
+Abiathar
+Abib
+abib
+abichite
+abidal
+abidance
+abidances
+abidden
+abide
+abided
+abider
+abiders
+abides
+abidi
+abiding
+abidingly
+abidingness
+Abidjan
+Abie
+abied
+abiegh
+abience
+abient
+Abies
+abies
+abietate
+abietene
+abietic
+abietin
+Abietineae
+abietineous
+abietinic
+abietite
+Abiezer
+Abigael
+Abigail
+abigail
+abigails
+abigailship
+Abigale
+abigeat
+abigei
+abigeus
+Abihu
+Abijah
+abilao
+Abilene
+abilene
+abiliment
+abilitable
+abilities
+-ability
+ability
+abilla
+abilo
+Abilyne
+abime
+Abimelech
+Abineri
+Abingdon
+Abinger
+Abington
+Abinoam
+Abinoem
+abintestate
+abiogeneses
+abiogenesis
+abiogenesist
+abiogenetic
+abiogenetical
+abiogenetically
+abiogenist
+abiogenous
+abiogeny
+abiological
+abiologically
+abiology
+abioses
+abiosis
+abiotic
+abiotical
+abiotically
+abiotrophic
+abiotrophy
+Abipon
+Abiquiu
+abir
+abirritant
+abirritate
+abirritated
+abirritating
+abirritation
+abirritative
+Abisag
+Abisha
+Abishag
+Abisia
+abiston
+abit
+Abitibi
+Abiu
+abiuret
+Abixah
+abject
+abjectedness
+abjection
+abjections
+abjective
+abjectly
+abjectness
+abjectnesses
+abjoint
+abjudge
+abjudged
+abjudging
+abjudicate
+abjudicated
+abjudicating
+abjudication
+abjudicator
+abjugate
+abjunct
+abjunction
+abjunctive
+abjuration
+abjurations
+abjuratory
+abjure
+abjured
+abjurement
+abjurer
+abjurers
+abjures
+abjuring
+abkar
+abkari
+abkary
+Abkhas
+Abkhasia
+Abkhasian
+Abkhaz
+Abkhazia
+Abkhazian
+abl
+abl.
+ablach
+ablactate
+ablactated
+ablactating
+ablactation
+ablaqueate
+ablare
+A-blast
+ablastemic
+ablastin
+ablastous
+ablate
+ablated
+ablates
+ablating
+ablation
+ablations
+ablatitious
+ablatival
+ablative
+ablatively
+ablatives
+ablator
+ablaut
+ablauts
+ablaze
+-able
+able
+able-bodied
+able-bodiedness
+ableeze
+ablegate
+ablegates
+ablegation
+able-minded
+able-mindedness
+ablend
+ableness
+ablepharia
+ablepharon
+ablepharous
+Ablepharus
+ablepsia
+ablepsy
+ableptical
+ableptically
+abler
+ables
+ablesse
+ablest
+ablet
+ablewhackets
+ablings
+ablins
+ablock
+abloom
+ablow
+ABLS
+ablude
+abluent
+abluents
+ablush
+ablute
+abluted
+ablution
+ablutionary
+ablutions
+abluvion
+-ably
+ably
+ABM
+abmho
+abmhos
+abmodalities
+abmodality
+abn
+Abnaki
+Abnakis
+abnegate
+abnegated
+abnegates
+abnegating
+abnegation
+abnegations
+abnegative
+abnegator
+abnegators
+Abner
+abner
+abnerval
+abnet
+abneural
+abnormal
+abnormalcies
+abnormalcy
+abnormalise
+abnormalised
+abnormalising
+abnormalism
+abnormalist
+abnormalities
+abnormality
+abnormalize
+abnormalized
+abnormalizing
+abnormally
+abnormalness
+abnormals
+abnormities
+abnormity
+abnormous
+abnumerable
+Abo
+abo
+aboard
+aboardage
+Abobra
+abococket
+abodah
+abode
+aboded
+abodement
+abodes
+aboding
+abody
+abogado
+abogados
+abohm
+abohms
+aboideau
+aboideaus
+aboideaux
+aboil
+aboiteau
+aboiteaus
+aboiteaux
+abolete
+abolish
+abolishable
+abolished
+abolisher
+abolishers
+abolishes
+abolishing
+abolishment
+abolishments
+abolition
+abolitionary
+abolitionise
+abolitionised
+abolitionising
+abolitionism
+abolitionist
+abolitionists
+abolitionize
+abolitionized
+abolitionizing
+abolitions
+abolla
+abollae
+aboma
+abomas
+abomasa
+abomasal
+abomasi
+abomasum
+abomasus
+abomasusi
+A-bomb
+a-bomb
+abominability
+abominable
+abominableness
+abominably
+abominate
+abominated
+abominates
+abominating
+abomination
+abominations
+abominator
+abominators
+abomine
+abondance
+Abongo
+abonne
+abonnement
+aboon
+aborad
+aboral
+aborally
+abord
+Aboriginal
+aboriginal
+aboriginality
+aboriginally
+aboriginals
+aboriginary
+Aborigine
+aborigine
+aborigines
+Abor-miri
+Aborn
+a-borning
+aborning
+aborsement
+aborsive
+abort
+aborted
+aborter
+aborters
+aborticide
+abortient
+abortifacient
+abortin
+aborting
+abortion
+abortional
+abortionist
+abortionists
+abortions
+abortive
+abortively
+abortiveness
+abortogenic
+aborts
+abortus
+abortuses
+abos
+abote
+Abott
+abouchement
+aboudikro
+abought
+Aboukir
+aboulia
+aboulias
+aboulic
+abound
+abounded
+abounder
+abounding
+aboundingly
+abounds
+Abourezk
+about
+about-face
+about-faced
+about-facing
+abouts
+about-ship
+about-shipped
+about-shipping
+about-sledge
+about-turn
+above
+above-board
+aboveboard
+above-cited
+abovedeck
+above-found
+above-given
+aboveground
+above-mentioned
+abovementioned
+above-named
+aboveproof
+above-quoted
+above-reported
+aboves
+above-said
+abovesaid
+abovestairs
+above-water
+above-written
+abow
+abox
+Abp
+abp
+ABPC
+Abqaiq
+abr
+abr.
+Abra
+abracadabra
+abrachia
+abrachias
+abradable
+abradant
+abradants
+abrade
+abraded
+abrader
+abraders
+abrades
+abrading
+Abraham
+abraham
+Abrahamic
+Abrahamidae
+Abrahamite
+Abrahamitic
+Abraham-man
+abraham-man
+Abrahams
+Abrahamsen
+Abrahan
+abraid
+Abram
+Abramis
+Abramo
+Abrams
+Abramson
+Abran
+abranchial
+abranchialism
+abranchian
+Abranchiata
+abranchiate
+abranchious
+abrasax
+abrase
+abrased
+abraser
+abrash
+abrasing
+abrasiometer
+abrasion
+abrasions
+abrasive
+abrasively
+abrasiveness
+abrasivenesses
+abrasives
+abrastol
+abraum
+abraxas
+abray
+abrazite
+abrazitic
+abrazo
+abrazos
+abreact
+abreacted
+abreacting
+abreaction
+abreactions
+abreacts
+abreast
+abreed
+abrege
+abreid
+abrenounce
+abrenunciate
+abrenunciation
+abreption
+abret
+abreuvoir
+abri
+abrico
+abricock
+abricot
+abridgable
+abridge
+abridgeable
+abridged
+abridgedly
+abridgement
+abridgements
+abridger
+abridgers
+abridges
+abridging
+abridgment
+abridgments
+abrim
+abrin
+abrine
+abris
+abristle
+abroach
+abroad
+Abrocoma
+abrocome
+abrogable
+abrogate
+abrogated
+abrogates
+abrogating
+abrogation
+abrogations
+abrogative
+abrogator
+abrogators
+Abroma
+Abroms
+Abronia
+abronia
+abrood
+abrook
+abrosia
+abrosias
+abrotanum
+abrotin
+abrotine
+abrupt
+abruptedly
+abrupter
+abruptest
+abruptio
+abruption
+abruptiones
+abruptly
+abruptness
+Abrus
+Abruzzi
+ABS
+abs
+abs-
+Absa
+Absalom
+absampere
+Absaraka
+Absaroka
+Absarokee
+absarokite
+ABSBH
+abscam
+abscess
+abscessed
+abscesses
+abscessing
+abscession
+abscessroot
+abscind
+abscise
+abscised
+abscises
+abscisin
+abscising
+abscisins
+abscision
+absciss
+abscissa
+abscissae
+abscissas
+abscisse
+abscissin
+abscission
+abscissions
+absconce
+abscond
+absconded
+abscondedly
+abscondence
+absconder
+absconders
+absconding
+absconds
+absconsa
+abscoulomb
+abscound
+Absecon
+absee
+abseil
+abseiled
+abseiling
+abseils
+absence
+absences
+absent
+absentation
+absented
+absentee
+absenteeism
+absentees
+absenteeship
+absenter
+absenters
+absentia
+absenting
+absently
+absentment
+absent-minded
+absentminded
+absent-mindedly
+absentmindedly
+absent-mindedness
+absentmindedness
+absentmindednesses
+absentness
+absents
+absey
+absfarad
+abshenry
+Abshier
+Absi
+absinth
+absinthe
+absinthes
+absinthial
+absinthian
+absinthiate
+absinthiated
+absinthiating
+absinthic
+absinthiin
+absinthin
+absinthine
+absinthism
+absinthismic
+absinthium
+absinthol
+absinthole
+absinths
+absis
+absist
+absistos
+absit
+absmho
+absohm
+absoil
+absolent
+Absolute
+absolute
+absolutely
+absoluteness
+absoluter
+absolutes
+absolutest
+absolution
+absolutions
+absolutism
+absolutist
+absolutista
+absolutistic
+absolutistically
+absolutists
+absolutive
+absolutization
+absolutize
+absolutory
+absolvable
+absolvatory
+absolve
+absolved
+absolvent
+absolver
+absolvers
+absolves
+absolving
+absolvitor
+absolvitory
+absonant
+absonous
+absorb
+absorbability
+absorbable
+absorbance
+absorbancy
+absorbant
+absorbed
+absorbedly
+absorbedness
+absorbefacient
+absorbencies
+absorbency
+absorbent
+absorbents
+absorber
+absorbers
+absorbing
+absorbingly
+absorbition
+absorbs
+absorbtion
+absorpt
+absorptance
+absorptiometer
+absorptiometric
+absorption
+absorptional
+absorptions
+absorptive
+absorptively
+absorptiveness
+absorptivity
+absquatulate
+absquatulation
+abstain
+abstained
+abstainer
+abstainers
+abstaining
+abstainment
+abstains
+abstemious
+abstemiously
+abstemiousness
+abstention
+abstentionism
+abstentionist
+abstentions
+abstentious
+absterge
+absterged
+abstergent
+absterges
+absterging
+absterse
+abstersion
+abstersive
+abstersiveness
+abstertion
+abstinence
+abstinences
+abstinency
+abstinent
+abstinential
+abstinently
+abstort
+abstr
+abstract
+abstractable
+abstracted
+abstractedly
+abstractedness
+abstracter
+abstracters
+abstractest
+abstracting
+abstraction
+abstractional
+abstractionism
+abstractionist
+abstractionists
+abstractions
+abstractitious
+abstractive
+abstractively
+abstractiveness
+abstractly
+abstractness
+abstractnesses
+abstractor
+abstractors
+abstracts
+abstrahent
+abstrict
+abstricted
+abstricting
+abstriction
+abstricts
+abstrude
+abstruse
+abstrusely
+abstruseness
+abstrusenesses
+abstruser
+abstrusest
+abstrusion
+abstrusities
+abstrusity
+absume
+absumption
+absurd
+absurder
+absurdest
+absurdism
+absurdist
+absurdities
+absurdity
+absurdly
+absurdness
+absurds
+absurdum
+absvolt
+Absyrtus
+abt
+abterminal
+abthain
+abthainrie
+abthainry
+abthanage
+abtruse
+Abu
+abu
+abubble
+Abu-Bekr
+Abucay
+abucco
+abuilding
+Abukir
+abuleia
+Abulfeda
+abulia
+abulias
+abulic
+abulomania
+abulyeit
+abumbral
+abumbrellar
+Abuna
+abuna
+abundance
+abundances
+abundancy
+abundant
+Abundantia
+abundantly
+abune
+abura
+aburabozu
+aburagiri
+aburban
+aburst
+aburton
+Abury
+abusable
+abusage
+abuse
+abused
+abusedly
+abusee
+abuseful
+abusefully
+abusefulness
+abuser
+abusers
+abuses
+abush
+abusing
+abusion
+abusious
+abusive
+abusively
+abusiveness
+abusivenesses
+abut
+Abuta
+Abutilon
+abutilon
+abutilons
+abutment
+abutments
+abuts
+abuttal
+abuttals
+abutted
+abutter
+abutters
+abutting
+abuzz
+abv
+abvolt
+abvolts
+abwab
+abwatt
+abwatts
+aby
+Abydos
+abye
+abyed
+abyes
+abying
+Abyla
+abys
+abysm
+abysmal
+abysmally
+abysms
+Abyss
+abyss
+abyssa
+abyssal
+abysses
+Abyssinia
+abyssinia
+Abyssinian
+abyssinian
+abyssinians
+abyssobenthonic
+abyssolith
+abyssopelagic
+abyssus
+-ac
+A.C.
+A/C
+AC
+Ac
+a-c
+a.c.
+a/c
+ac
+ac-
+ACAA
+Acacallis
+acacatechin
+acacatechol
+Acacea
+Acaceae
+acacetin
+Acacia
+acacia
+Acacian
+acacias
+acaciin
+acacin
+acacine
+acad
+academe
+academes
+academia
+academial
+academian
+academias
+Academic
+academic
+academical
+academically
+academicals
+academician
+academicians
+academicianship
+academicism
+academics
+academie
+academies
+academise
+academised
+academising
+academism
+academist
+academite
+academization
+academize
+academized
+academizing
+Academus
+Academy
+academy
+Acadia
+acadia
+acadialite
+Acadian
+acadian
+Acadie
+Acaena
+acaena
+acajou
+acajous
+-acal
+acalculia
+acale
+acaleph
+Acalepha
+acalepha
+Acalephae
+acalephae
+acalephan
+acalephe
+acalephes
+acalephoid
+acalephs
+Acalia
+acalycal
+acalycine
+acalycinous
+acalyculate
+Acalypha
+Acalypterae
+Acalyptrata
+Acalyptratae
+acalyptrate
+Acamar
+Acamas
+Acampo
+acampsia
+acana
+acanaceous
+acanonical
+acanth
+acanth-
+acantha
+Acanthaceae
+acanthaceous
+acanthad
+Acantharia
+acanthi
+Acanthia
+acanthial
+acanthin
+acanthine
+acanthion
+acanthite
+acantho-
+acanthocarpous
+Acanthocephala
+acanthocephalan
+Acanthocephali
+acanthocephalous
+Acanthocereus
+acanthocladous
+Acanthodea
+acanthodean
+Acanthodei
+Acanthodes
+acanthodian
+Acanthodidae
+Acanthodii
+Acanthodini
+acanthoid
+Acantholimon
+acanthological
+acanthology
+acantholysis
+acanthoma
+acanthomas
+Acanthomeridae
+acanthon
+Acanthopanax
+Acanthophis
+acanthophorous
+acanthopod
+acanthopodous
+acanthopomatous
+acanthopore
+acanthopteran
+Acanthopteri
+acanthopterous
+acanthopterygian
+Acanthopterygii
+acanthoses
+acanthosis
+acanthotic
+acanthous
+Acanthuridae
+Acanthurus
+acanthus
+acanthuses
+acanthuthi
+acapnia
+acapnial
+acapnias
+acappella
+acapsular
+acapu
+Acapulco
+acapulco
+acara
+Acarapis
+acarari
+acardia
+acardiac
+acardite
+acari
+acarian
+acariasis
+acariatre
+acaricidal
+acaricide
+acarid
+Acarida
+acaridae
+acaridan
+acaridans
+Acaridea
+acaridean
+acaridomatia
+acaridomatium
+acarids
+acariform
+Acarina
+acarine
+acarines
+acarinosis
+Acarnan
+acarocecidia
+acarocecidium
+acarodermatitis
+acaroid
+acarol
+acarologist
+acarology
+acarophilous
+acarophobia
+acarotoxic
+acarpellous
+acarpelous
+acarpous
+Acarus
+acarus
+ACAS
+acast
+Acastus
+acatalectic
+acatalepsia
+acatalepsy
+acataleptic
+acatallactic
+acatamathesia
+acataphasia
+acataposis
+acatastasia
+acatastatic
+acate
+acategorical
+acater
+acatery
+acates
+acatharsia
+acatharsy
+acatholic
+acaudal
+acaudate
+acaudelescent
+acaulescence
+acaulescent
+acauline
+acaulose
+acaulous
+ACAWS
+ACB
+ACBL
+ACC
+acc
+acc.
+acca
+accable
+Accad
+accademia
+Accadian
+accadian
+Accalia
+acce
+accede
+acceded
+accedence
+acceder
+acceders
+accedes
+acceding
+accel
+accel.
+accelerable
+accelerando
+accelerant
+accelerate
+accelerated
+acceleratedly
+accelerates
+accelerating
+acceleratingly
+acceleration
+accelerations
+accelerative
+accelerator
+acceleratorh
+accelerators
+acceleratory
+accelerograph
+accelerometer
+accelerometers
+accend
+accendibility
+accendible
+accensed
+accension
+accensor
+accent
+accented
+accenting
+accentless
+accentor
+accentors
+accents
+accentuable
+accentual
+accentuality
+accentually
+accentuate
+accentuated
+accentuates
+accentuating
+accentuation
+accentuations
+accentuator
+accentus
+accept
+acceptabilities
+acceptability
+acceptable
+acceptableness
+acceptably
+acceptance
+acceptances
+acceptancies
+acceptancy
+acceptant
+acceptation
+acceptavit
+accepted
+acceptedly
+acceptee
+acceptees
+accepter
+accepters
+acceptilate
+acceptilated
+acceptilating
+acceptilation
+accepting
+acceptingly
+acceptingness
+acception
+acceptive
+acceptor
+acceptors
+acceptress
+accepts
+accerse
+accersition
+accersitor
+access
+accessability
+accessable
+accessaries
+accessarily
+accessariness
+accessary
+accessaryship
+accessed
+accesses
+accessibilities
+accessibility
+accessible
+accessibleness
+accessibly
+accessing
+accession
+accessional
+accessioned
+accessioner
+accessioning
+accessions
+accessit
+accessive
+accessively
+accessless
+accessor
+accessorial
+accessories
+accessorii
+accessorily
+accessoriness
+accessorius
+accessoriusorii
+accessorize
+accessorized
+accessorizing
+accessors
+accessory
+acciaccatura
+acciaccaturas
+acciaccature
+accidence
+accidencies
+accidency
+accident
+accidental
+accidentalism
+accidentalist
+accidentality
+accidentally
+accidentalness
+accidentals
+accidentarily
+accidentary
+accidented
+accidential
+accidentiality
+accidently
+accident-prone
+accidents
+accidia
+accidias
+accidie
+accidies
+accinge
+accinged
+accinging
+accipenser
+accipient
+Accipiter
+accipiter
+accipitral
+accipitrary
+Accipitres
+accipitrine
+accipter
+accise
+accismus
+accite
+Accius
+acclaim
+acclaimable
+acclaimed
+acclaimer
+acclaimers
+acclaiming
+acclaims
+acclamation
+acclamations
+acclamator
+acclamatory
+acclimatable
+acclimatation
+acclimate
+acclimated
+acclimatement
+acclimates
+acclimating
+acclimation
+acclimations
+acclimatisable
+acclimatisation
+acclimatise
+acclimatised
+acclimatiser
+acclimatising
+acclimatizable
+acclimatization
+acclimatizations
+acclimatize
+acclimatized
+acclimatizer
+acclimatizes
+acclimatizing
+acclimature
+acclinal
+acclinate
+acclivities
+acclivitous
+acclivity
+acclivous
+accloy
+accoast
+accoil
+Accokeek
+accolade
+accoladed
+accolades
+accolated
+accolent
+accoll
+accolle
+accolled
+accollee
+Accomac
+accombination
+accommodable
+accommodableness
+accommodate
+accommodated
+accommodately
+accommodateness
+accommodates
+accommodating
+accommodatingly
+accommodatingness
+accommodation
+accommodational
+accommodationist
+accommodations
+accommodative
+accommodatively
+accommodativeness
+accommodator
+accommodators
+accomodate
+accompanable
+accompanied
+accompanier
+accompanies
+accompaniment
+accompanimental
+accompaniments
+accompanist
+accompanists
+accompany
+accompanying
+accompanyist
+accomplement
+accompletive
+accompli
+accomplice
+accomplices
+accompliceship
+accomplicity
+accomplis
+accomplish
+accomplishable
+accomplished
+accomplisher
+accomplishers
+accomplishes
+accomplishing
+accomplishment
+accomplishments
+accomplisht
+accompt
+accord
+accordable
+accordance
+accordances
+accordancy
+accordant
+accordantly
+accordatura
+accordaturas
+accordature
+accorded
+accorder
+accorders
+according
+accordingly
+accordion
+accordionist
+accordionists
+accordions
+accords
+accorporate
+accorporation
+accost
+accostable
+accosted
+accosting
+accosts
+accouche
+accouchement
+accouchements
+accoucheur
+accoucheurs
+accoucheuse
+accoucheuses
+accounsel
+account
+accountabilities
+accountability
+accountable
+accountableness
+accountably
+accountancies
+accountancy
+accountant
+accountants
+accountantship
+accounted
+accounter
+accounters
+accounting
+accountings
+accountment
+accountrement
+accounts
+accouple
+accouplement
+accourage
+accourt
+accouter
+accoutered
+accoutering
+accouterment
+accouterments
+accouters
+accoutre
+accoutred
+accoutrement
+accoutrements
+accoutres
+accoutring
+Accoville
+accoy
+accoyed
+accoying
+ACCRA
+Accra
+accra
+accrease
+accredit
+accreditable
+accreditate
+accreditation
+accreditations
+accredited
+accreditee
+accrediting
+accreditment
+accredits
+accrementitial
+accrementition
+accresce
+accrescence
+accrescendi
+accrescendo
+accrescent
+accretal
+accrete
+accreted
+accretes
+accreting
+accretion
+accretionary
+accretions
+accretive
+accriminate
+Accrington
+accroach
+accroached
+accroaching
+accroachment
+accroides
+accruable
+accrual
+accruals
+accrue
+accrued
+accruement
+accruer
+accrues
+accruing
+ACCS
+ACCT
+acct
+acct.
+accts
+accubation
+accubita
+accubitum
+accubitus
+accueil
+accultural
+acculturate
+acculturated
+acculturates
+acculturating
+acculturation
+acculturational
+acculturationist
+acculturative
+acculturize
+acculturized
+acculturizing
+accum
+accumb
+accumbency
+accumbent
+accumber
+accumulable
+accumulate
+accumulated
+accumulates
+accumulating
+accumulation
+accumulations
+accumulativ
+accumulative
+accumulatively
+accumulativeness
+accumulator
+accumulators
+accupy
+accur
+accuracies
+accuracy
+accurate
+accurately
+accurateness
+accuratenesses
+accurre
+accurse
+accursed
+accursedly
+accursedness
+accursing
+accurst
+accurtation
+accus
+accusable
+accusably
+accusal
+accusals
+accusant
+accusants
+accusation
+accusations
+accusatival
+accusative
+accusative-dative
+accusatively
+accusativeness
+accusatives
+accusator
+accusatorial
+accusatorially
+accusatory
+accusatrix
+accusatrixes
+accuse
+accused
+accuser
+accusers
+accuses
+accusing
+accusingly
+accusive
+accusor
+accustom
+accustomation
+accustomed
+accustomedly
+accustomedness
+accustoming
+accustomize
+accustomized
+accustomizing
+accustoms
+Accutron
+ACD
+ACDA
+AC-DC
+AC/DC
+ACE
+Ace
+ace
+-acea
+aceacenaphthene
+-aceae
+-acean
+aceanthrene
+aceanthrenequinone
+acecaffin
+acecaffine
+aceconitic
+aced
+acedia
+acediamin
+acediamine
+acedias
+acediast
+acedy
+ace-high
+aceite
+aceituna
+Aceldama
+aceldama
+aceldamas
+acellular
+Acemetae
+Acemetic
+acemila
+acenaphthene
+acenaphthenyl
+acenaphthylene
+acenesthesia
+acensuada
+acensuador
+acentric
+acentrous
+aceologic
+aceology
+-aceous
+acephal
+Acephala
+acephala
+acephalan
+Acephali
+acephali
+acephalia
+Acephalina
+acephaline
+acephalism
+acephalist
+Acephalite
+acephalocyst
+acephalous
+acephalus
+acepots
+acequia
+acequiador
+acequias
+Acer
+Aceraceae
+aceraceous
+Acerae
+Acerata
+acerate
+acerated
+Acerates
+acerathere
+Aceratherium
+aceratosis
+acerb
+Acerbas
+acerbate
+acerbated
+acerbates
+acerbating
+acerber
+acerbest
+acerbic
+acerbically
+acerbities
+acerbitude
+acerbity
+acerbityacerose
+acerbly
+acerbophobia
+acerdol
+aceric
+acerin
+acerli
+acerola
+acerolas
+acerose
+acerous
+acerra
+acers
+acertannin
+acerval
+acervate
+acervately
+acervatim
+acervation
+acervative
+acervose
+acervuli
+acervuline
+acervulus
+aces
+acescence
+acescency
+acescent
+acescents
+aceship
+Acesius
+acesodyne
+acesodynous
+Acessamenus
+Acestes
+acestoma
+acet-
+aceta
+acetable
+acetabula
+acetabular
+Acetabularia
+acetabularia
+acetabuliferous
+acetabuliform
+acetabulous
+acetabulum
+acetabulums
+acetacetic
+acetal
+acetaldehydase
+acetaldehyde
+acetaldehydrase
+acetaldol
+acetalization
+acetalize
+acetals
+acetamid
+acetamide
+acetamidin
+acetamidine
+acetamido
+acetamids
+acetaminol
+Acetaminophen
+acetaminophen
+acetanilid
+acetanilide
+acetanion
+acetaniside
+acetanisidide
+acetanisidine
+acetannin
+acetarious
+acetars
+acetarsone
+acetary
+acetate
+acetated
+acetates
+acetation
+acetazolamide
+acetbromamide
+acetenyl
+Acetes
+acethydrazide
+acetiam
+acetic
+acetification
+acetified
+acetifier
+acetifies
+acetify
+acetifying
+acetimeter
+acetimetric
+acetimetry
+acetin
+acetine
+acetins
+acetite
+acetize
+acetla
+acetmethylanilide
+acetnaphthalide
+aceto-
+acetoacetanilide
+acetoacetate
+acetoacetic
+acetoamidophenol
+acetoarsenite
+Acetobacter
+acetobacter
+acetobenzoic
+acetobromanilide
+acetochloral
+acetocinnamene
+acetoin
+acetol
+acetolysis
+acetolytic
+acetometer
+acetometric
+acetometrical
+acetometrically
+acetometry
+acetomorphin
+acetomorphine
+acetonaemia
+acetonaemic
+acetonaphthone
+acetonate
+acetonation
+acetone
+acetonemia
+acetonemic
+acetones
+acetonic
+acetonitrile
+acetonization
+acetonize
+acetonuria
+acetonurometer
+acetonyl
+acetonylacetone
+acetonylidene
+acetophenetide
+acetophenetidin
+acetophenetidine
+acetophenin
+acetophenine
+acetophenone
+acetopiperone
+acetopyrin
+acetopyrine
+acetosalicylic
+acetose
+acetosity
+acetosoluble
+acetostearin
+acetothienone
+acetotoluid
+acetotoluide
+acetotoluidine
+acetous
+acetoveratrone
+acetoxim
+acetoxime
+acetoxyl
+acetoxyls
+acetoxyphthalide
+acetphenetid
+acetphenetidin
+acetract
+acettoluide
+acetum
+aceturic
+acetyl
+acetylacetonates
+acetylacetone
+acetylamine
+acetylaminobenzene
+acetylaniline
+acetylasalicylic
+acetylate
+acetylated
+acetylating
+acetylation
+acetylative
+acetylator
+acetylbenzene
+acetylbenzoate
+acetylbenzoic
+acetylbiuret
+acetylcarbazole
+acetylcellulose
+acetylcholine
+acetylcholinesterase
+acetylcholinic
+acetylcyanide
+acetylenation
+acetylene
+acetylenediurein
+acetylenes
+acetylenic
+acetylenogen
+acetylenyl
+acetylfluoride
+acetylglycin
+acetylglycine
+acetylhydrazine
+acetylic
+acetylid
+acetylide
+acetyliodide
+acetylizable
+acetylization
+acetylize
+acetylized
+acetylizer
+acetylizing
+acetylmethylcarbinol
+acetylperoxide
+acetylphenol
+acetylphenylhydrazine
+acetylrosaniline
+acetyls
+acetylsalicylate
+acetylsalicylic
+acetylsalol
+acetyltannin
+acetylthymol
+acetyltropeine
+acetylurea
+Acey
+acey-deucy
+ACF
+ACGI
+ac-globulin
+ACH
+ach
+Achab
+Achad
+Achaea
+Achaean
+Achaemenes
+Achaemenian
+Achaemenid
+Achaemenidae
+Achaemenides
+Achaemenidian
+Achaemenids
+achaenocarp
+Achaenodon
+Achaeta
+achaetous
+Achaeus
+achafe
+achage
+Achagua
+Achaia
+Achaian
+Achakzai
+achalasia
+Achamoth
+Achan
+Achango
+achape
+achaque
+achar
+Achariaceae
+Achariaceous
+acharne
+acharnement
+Acharnians
+acharya
+achate
+Achates
+achates
+Achatina
+Achatinella
+Achatinidae
+achatour
+Achaz
+ache
+acheat
+achech
+acheck
+ached
+acheer
+ACHEFT
+acheilary
+acheilia
+acheilous
+acheiria
+acheirous
+acheirus
+Achelous
+Achen
+achene
+achenes
+achenia
+achenial
+achenium
+achenocarp
+achenodia
+achenodium
+acher
+Acherman
+Achernar
+Acheron
+acheron
+Acheronian
+acheronian
+Acherontic
+acherontic
+Acherontical
+aches
+Acheson
+achesoun
+achete
+Achetidae
+Acheulean
+acheulean
+Acheulian
+acheweed
+achier
+achiest
+achievability
+achievable
+achieve
+achieved
+achievement
+achievements
+achiever
+achievers
+achieves
+achieving
+achigan
+achilary
+Achill
+achill
+Achille
+Achillea
+achillea
+Achillean
+achillean
+achilleas
+Achilleid
+achillein
+achilleine
+Achilles
+achilles
+Achillize
+achillize
+achillobursitis
+achillodynia
+achilous
+Achimaas
+achime
+Achimelech
+Achimenes
+achimenes
+Achinese
+achiness
+achinesses
+aching
+achingly
+achiote
+achiotes
+achira
+achirite
+Achish
+Achitophel
+achkan
+achlamydate
+Achlamydeae
+achlamydeous
+achlorhydria
+achlorhydric
+achlorophyllous
+achloropsia
+achluophobia
+Achmed
+Achmetha
+achoke
+acholia
+acholias
+acholic
+Acholoe
+acholous
+acholuria
+acholuric
+Achomawi
+achondrite
+achondritic
+achondroplasia
+achondroplastic
+achoo
+achor
+achordal
+Achordata
+achordate
+Achorion
+Achorn
+Achras
+achras
+achree
+achroacyte
+Achroanthes
+achrodextrin
+achrodextrinase
+achroglobin
+achroiocythaemia
+achroiocythemia
+achroite
+achroma
+achromacyte
+achromasia
+achromat
+achromat-
+achromate
+Achromatiaceae
+achromatic
+achromatically
+achromaticity
+achromatin
+achromatinic
+achromatisation
+achromatise
+achromatised
+achromatising
+achromatism
+Achromatium
+achromatizable
+achromatization
+achromatize
+achromatized
+achromatizing
+achromatocyte
+achromatolysis
+achromatope
+achromatophil
+achromatophile
+achromatophilia
+achromatophilic
+achromatopia
+achromatopsia
+achromatopsy
+achromatosis
+achromatous
+achromats
+achromaturia
+achromia
+achromic
+Achromobacter
+achromobacter
+Achromobacterieae
+achromoderma
+achromophilous
+achromotrichia
+achromous
+Achromycin
+achronical
+achronism
+achronychous
+achroo-
+achroodextrin
+achroodextrinase
+achroous
+achropsia
+Achsah
+achtehalber
+achtel
+achtelthaler
+achter
+achterveld
+Achuas
+achuete
+achy
+ach-y-fi
+achylia
+achylous
+achymia
+achymous
+Achyranthes
+Achyrodes
+acichlorid
+acichloride
+acicula
+aciculae
+acicular
+acicularity
+acicularly
+aciculas
+aciculate
+aciculated
+aciculum
+aciculums
+acid
+acidaemia
+Acidalium
+Acidanthera
+acidanthera
+Acidaspis
+acid-binding
+acidemia
+acidemias
+acider
+acid-fast
+acid-fastness
+acid-forming
+acid-head
+acidhead
+acidheads
+acidic
+acidiferous
+acidifiable
+acidifiant
+acidific
+acidification
+acidified
+acidifier
+acidifiers
+acidifies
+acidify
+acidifying
+acidimeter
+acidimetric
+acidimetrical
+acidimetrically
+acidimetry
+acidite
+acidities
+acidity
+acidize
+acidized
+acidizing
+acidly
+acidness
+acidnesses
+acidogenic
+acidoid
+acidology
+acidolysis
+acidometer
+acidometry
+acidophil
+acidophile
+acidophilic
+acidophilous
+acidophilus
+acidoproteolytic
+acidoses
+acidosis
+acidosteophyte
+acidotic
+acidproof
+acids
+acid-treat
+acidulant
+acidulate
+acidulated
+acidulates
+acidulating
+acidulation
+acidulent
+acidulous
+acidulously
+acidulousness
+aciduria
+acidurias
+aciduric
+acidy
+acidyl
+Acie
+acier
+acierage
+Acieral
+acierate
+acierated
+acierates
+acierating
+acieration
+acies
+aciform
+aciliate
+aciliated
+Acilius
+Acima
+acinaceous
+acinaces
+acinacifoliate
+acinacifolious
+acinaciform
+acinacious
+acinacity
+acinar
+acinarious
+acinary
+Acineta
+Acinetae
+acinetae
+acinetan
+Acinetaria
+acinetarian
+acinetic
+acinetiform
+Acinetina
+acinetinan
+acing
+acini
+acinic
+aciniform
+acinose
+acinotubular
+acinous
+acinuni
+acinus
+-acious
+Acipenser
+acipenser
+Acipenseres
+acipenserid
+Acipenseridae
+acipenserine
+acipenseroid
+Acipenseroidei
+Acis
+-acitate
+-acity
+aciurgy
+ACK
+ack
+ack-ack
+ackee
+ackees
+Acker
+acker
+Ackerley
+Ackerly
+Ackerman
+Ackermanville
+ackey
+ackeys
+Ackler
+Ackley
+ackman
+ackmen
+acknew
+acknow
+acknowing
+acknowledge
+acknowledgeable
+acknowledged
+acknowledgedly
+acknowledgement
+acknowledgements
+acknowledger
+acknowledgers
+acknowledges
+acknowledging
+acknowledgment
+acknowledgments
+acknown
+ack-pirate
+ackton
+Ackworth
+ACL
+aclastic
+acle
+acleidian
+acleistocardia
+acleistous
+Aclemon
+aclidian
+aclinal
+aclinic
+a-clock
+acloud
+ACLS
+ACLU
+aclu
+aclydes
+aclys
+ACM
+Acmaea
+Acmaeidae
+acmaesthesia
+acmatic
+acme
+acmes
+acmesthesia
+acmic
+Acmispon
+acmite
+Acmon
+acne
+acned
+acneform
+acneiform
+acnemia
+acnes
+Acnida
+acnodal
+acnode
+acnodes
+ACO
+acoasm
+acoasma
+a-coast
+Acocanthera
+acocantherin
+acock
+a-cock-bill
+acockbill
+a-cock-horse
+acocotl
+Acoela
+Acoelomata
+acoelomate
+acoelomatous
+Acoelomi
+acoelomous
+acoelous
+Acoemetae
+Acoemeti
+Acoemetic
+acoenaesthesia
+ACOF
+acoin
+acoine
+Acol
+Acolapissa
+acold
+Acolhua
+Acolhuan
+acologic
+acology
+acolous
+acoluthic
+acolyctine
+acolyte
+acolytes
+acolyth
+acolythate
+acolytus
+Acoma
+acoma
+acomia
+acomous
+a-compass
+aconative
+Aconcagua
+acondylose
+acondylous
+acone
+aconelline
+aconic
+aconin
+aconine
+aconital
+aconite
+aconites
+aconitia
+aconitic
+aconitin
+aconitine
+Aconitum
+aconitum
+aconitums
+acontia
+Acontias
+acontium
+Acontius
+aconuresis
+acool
+acop
+acopic
+acopon
+acopyrin
+acopyrine
+acor
+acorea
+acoria
+acorn
+acorned
+acorns
+acorn-shell
+Acorus
+acorus
+acosmic
+acosmism
+acosmist
+acosmistic
+acost
+Acosta
+acotyledon
+acotyledonous
+acouasm
+acouchi
+acouchy
+acoumeter
+acoumetry
+acounter
+acouometer
+acouophonia
+acoup
+acoupa
+acoupe
+acousma
+acousmas
+acousmata
+acousmatic
+acoustic
+acoustical
+acoustically
+acoustician
+acoustico-
+acousticolateral
+Acousticon
+acousticophobia
+acoustics
+acoustoelectric
+ACP
+acpt
+acpt.
+Acquah
+acquaint
+acquaintance
+acquaintances
+acquaintanceship
+acquaintanceships
+acquaintancy
+acquaintant
+acquainted
+acquaintedness
+acquainting
+acquaints
+Acquaviva
+acquent
+acquereur
+acquest
+acquests
+acquiesce
+acquiesced
+acquiescement
+acquiescence
+acquiescences
+acquiescency
+acquiescent
+acquiescently
+acquiescer
+acquiesces
+acquiescing
+acquiescingly
+acquiesence
+acquiet
+acquirability
+acquirable
+acquire
+acquired
+acquirement
+acquirements
+acquirenda
+acquirer
+acquirers
+acquires
+acquiring
+acquisible
+acquisita
+acquisite
+acquisited
+acquisition
+acquisitional
+acquisitions
+acquisitive
+acquisitively
+acquisitiveness
+acquisitor
+acquisitum
+acquist
+acquit
+acquital
+acquitment
+acquits
+acquittal
+acquittals
+acquittance
+acquitted
+acquitter
+acquitting
+acquophonia
+acr-
+Acra
+Acrab
+acracy
+Acraea
+acraein
+Acraeinae
+acraldehyde
+Acrania
+acrania
+acranial
+acraniate
+acrasia
+Acrasiaceae
+Acrasiales
+acrasias
+Acrasida
+Acrasieae
+acrasin
+acrasins
+Acraspeda
+acraspedote
+acrasy
+acratia
+acraturesis
+acrawl
+acraze
+Acre
+acre
+acreable
+acreage
+acreages
+acreak
+acream
+acred
+acre-dale
+Acredula
+acre-foot
+acre-inch
+acreman
+acremen
+Acres
+acres
+acrestaff
+acrid
+acridan
+acridane
+acrider
+acridest
+acridian
+acridic
+acridid
+Acrididae
+Acridiidae
+acridin
+acridine
+acridines
+acridinic
+acridinium
+acridities
+acridity
+Acridium
+acridly
+acridness
+acridnesses
+acridone
+acridonium
+acridophagus
+acridyl
+acriflavin
+acriflavine
+Acrilan
+acrimonies
+acrimonious
+acrimoniously
+acrimoniousness
+acrimony
+acrindolin
+acrindoline
+acrinyl
+acrisia
+Acrisius
+acrisy
+Acrita
+acrita
+acritan
+acrite
+acritical
+acritochromacy
+acritol
+acritude
+acrity
+ACRNEMA
+acro-
+Acroa
+acroaesthesia
+acroama
+acroamata
+acroamatic
+acroamatical
+acroamatics
+acroanesthesia
+acroarthritis
+acroasis
+acroasphyxia
+acroataxia
+acroatic
+acrobacies
+acrobacy
+acrobat
+Acrobates
+acrobatholithic
+acrobatic
+acrobatical
+acrobatically
+acrobatics
+acrobatism
+acrobats
+acroblast
+acrobryous
+acrobystitis
+Acrocarpi
+acrocarpous
+acrocentric
+acrocephalia
+acrocephalic
+acrocephalous
+acrocephaly
+Acrocera
+Acroceratidae
+Acroceraunian
+Acroceridae
+Acrochordidae
+Acrochordinae
+acrochordon
+acrock
+Acroclinium
+Acrocomia
+acroconidium
+acrocontracture
+acrocoracoid
+Acrocorinth
+acrocyanosis
+acrocyst
+acrodactyla
+acrodactylum
+acrodermatitis
+acrodont
+acrodontism
+acrodonts
+acrodrome
+acrodromous
+Acrodus
+acrodynia
+acroesthesia
+acrogamous
+acrogamy
+acrogen
+acrogenic
+acrogenous
+acrogenously
+acrogens
+acrography
+Acrogynae
+acrogynae
+acrogynous
+acrolein
+acroleins
+acrolith
+acrolithan
+acrolithic
+acroliths
+acrologic
+acrologically
+acrologies
+acrologism
+acrologue
+acrology
+acromania
+acromastitis
+acromegalia
+acromegalic
+acromegalies
+acromegaly
+acromelalgia
+acrometer
+acromia
+acromial
+acromicria
+acromimia
+acromioclavicular
+acromiocoracoid
+acromiodeltoid
+acromiohumeral
+acromiohyoid
+acromion
+acromioscapular
+acromiosternal
+acromiothoracic
+acromonogrammatic
+acromphalus
+Acromyodi
+acromyodian
+acromyodic
+acromyodous
+acromyotonia
+acromyotonus
+acron
+acronal
+acronarcotic
+acroneurosis
+acronic
+acronical
+acronically
+acronichal
+acronichally
+acronomy
+acronyc
+acronycal
+acronycally
+acronych
+acronychal
+acronychally
+acronychous
+Acronycta
+acronyctous
+acronym
+acronymic
+acronymically
+acronymize
+acronymized
+acronymizing
+acronymous
+acronyms
+acronyx
+acrook
+acroparalysis
+acroparesthesia
+acropathology
+acropathy
+acropetal
+acropetally
+acrophobia
+acrophonetic
+acrophonic
+acrophonically
+acrophonies
+acrophony
+acropodia
+acropodium
+acropoleis
+Acropolis
+acropolis
+acropolises
+acropolitan
+Acropora
+acropore
+acrorhagus
+acrorrheuma
+acrosarc
+acrosarca
+acrosarcum
+acroscleriasis
+acroscleroderma
+acroscopic
+acrose
+acrosome
+acrosomes
+acrosphacelus
+acrospire
+acrospired
+acrospiring
+acrospore
+acrosporous
+across
+across-the-board
+acrostic
+acrostical
+acrostically
+acrostichal
+Acrosticheae
+acrostichic
+acrostichoid
+Acrostichum
+acrosticism
+acrostics
+acrostolia
+acrostolion
+acrostolium
+acrotarsial
+acrotarsium
+acroteleutic
+acroter
+acroteral
+acroteria
+acroterial
+acroteric
+acroterion
+acroterium
+acroterteria
+Acrothoracica
+acrotic
+acrotism
+acrotisms
+acrotomous
+Acrotreta
+Acrotretidae
+acrotrophic
+acrotrophoneurosis
+Acrux
+ACRV
+a-cry
+Acrydium
+acryl
+acrylaldehyde
+acrylate
+acrylates
+acrylic
+acrylics
+acrylonitrile
+acrylyl
+ACS
+ACSE
+ACSNET
+ACSU
+ACT
+act
+Acta
+acta
+actability
+actable
+Actaea
+Actaeaceae
+Actaeon
+actaeon
+Actaeonidae
+acted
+actg
+actg.
+ACTH
+Actiad
+Actian
+actification
+actifier
+actify
+actin
+actin-
+actinal
+actinally
+actinautographic
+actinautography
+actine
+actinenchyma
+acting
+acting-out
+actings
+Actinia
+actinia
+actiniae
+actinian
+actinians
+Actiniaria
+actiniarian
+actinias
+actinic
+actinical
+actinically
+actinide
+actinides
+Actinidia
+Actinidiaceae
+actiniferous
+actiniform
+actinine
+actiniochrome
+actiniohematin
+Actiniomorpha
+actinism
+actinisms
+Actinistia
+actinium
+actiniums
+actino-
+actinobaccilli
+actinobacilli
+actinobacillosis
+actinobacillotic
+Actinobacillus
+actinobacillus
+actinoblast
+actinobranch
+actinobranchia
+actinocarp
+actinocarpic
+actinocarpous
+actinochemical
+actinochemistry
+actinocrinid
+Actinocrinidae
+actinocrinite
+Actinocrinus
+actinocutitis
+actinodermatitis
+actinodielectric
+actinodrome
+actinodromous
+actinoelectric
+actinoelectrically
+actinoelectricity
+actinogonidiate
+actinogram
+actinograph
+actinographic
+actinography
+actinoid
+Actinoida
+Actinoidea
+actinoids
+actinolite
+actinolitic
+actinologous
+actinologue
+actinology
+actinomere
+actinomeric
+actinometer
+actinometers
+actinometric
+actinometrical
+actinometricy
+actinometry
+actinomorphic
+actinomorphous
+actinomorphy
+Actinomyces
+actinomyces
+actinomycese
+actinomycesous
+actinomycestal
+Actinomycetaceae
+actinomycetal
+Actinomycetales
+actinomycete
+actinomycetous
+actinomycin
+actinomycoma
+actinomycosis
+actinomycosistic
+actinomycotic
+Actinomyxidia
+Actinomyxidiida
+actinon
+Actinonema
+actinoneuritis
+actinons
+actinophone
+actinophonic
+actinophore
+actinophorous
+actinophryan
+Actinophrys
+actinopod
+Actinopoda
+actinopraxis
+actinopteran
+Actinopteri
+actinopterous
+actinopterygian
+Actinopterygii
+actinopterygious
+actinoscopy
+actinosoma
+actinosome
+Actinosphaerium
+actinost
+actinostereoscopy
+actinostomal
+actinostome
+actinotherapeutic
+actinotherapeutics
+actinotherapy
+actinotoxemia
+actinotrichium
+actinotrocha
+actinouranium
+Actinozoa
+actinozoal
+actinozoan
+actinozoon
+actins
+actinula
+actinulae
+action
+actionability
+actionable
+actionably
+actional
+actionary
+actioner
+actiones
+actionist
+actionize
+actionized
+actionizing
+actionless
+actions
+action-taking
+actious
+Actipylea
+Actis
+Actium
+activable
+activate
+activated
+activates
+activating
+activation
+activations
+activator
+activators
+active
+active-bodied
+active-limbed
+actively
+active-minded
+activeness
+actives
+activin
+activism
+activisms
+activist
+activistic
+activists
+activital
+activities
+activity
+activize
+activized
+activizing
+actless
+actomyosin
+Acton
+acton
+Actor
+actor
+Actoridae
+actorish
+actor-manager
+actor-proof
+actors
+actorship
+actory
+actos
+ACTPU
+actress
+actresses
+actressy
+ACTS
+Acts
+acts
+ACTU
+actu
+actual
+actualisation
+actualise
+actualised
+actualising
+actualism
+actualist
+actualistic
+actualities
+actuality
+actualization
+actualizations
+actualize
+actualized
+actualizes
+actualizing
+actually
+actualness
+actuals
+actuarial
+actuarially
+actuarian
+actuaries
+actuary
+actuaryship
+actuate
+actuated
+actuates
+actuating
+actuation
+actuator
+actuators
+actuose
+ACTUP
+acture
+acturience
+actus
+actutate
+act-wait
+ACU
+acuaesthesia
+Acuan
+acuate
+acuating
+acuation
+Acubens
+acuchi
+acuclosure
+acuductor
+acuerdo
+acuerdos
+acuesthesia
+acuities
+acuity
+aculea
+aculeae
+Aculeata
+aculeate
+aculeated
+aculei
+aculeiform
+aculeolate
+aculeolus
+aculeus
+acumble
+acumen
+acumens
+acuminate
+acuminated
+acuminating
+acumination
+acuminose
+acuminous
+acuminulate
+acupress
+acupressure
+acupunctuate
+acupunctuation
+acupuncturation
+acupuncturator
+acupuncture
+acupunctured
+acupunctures
+acupuncturing
+acupuncturist
+acupuncturists
+acurative
+Acus
+acus
+acusection
+acusector
+acushla
+Acushnet
+acustom
+acutance
+acutances
+acutangular
+acutate
+acute
+acute-angled
+acutely
+acutenaculum
+acuteness
+acutenesses
+acuter
+acutes
+acutest
+acuti-
+acutiator
+acutifoliate
+Acutilinguae
+acutilingual
+acutilobate
+acutiplantar
+acutish
+acuto-
+acutograve
+acutonodose
+acutorsion
+ACV
+ACW
+ACWA
+Acworth
+ACWP
+acxoyatl
+-acy
+acy
+acyanoblepsia
+acyanopsia
+acyclic
+acyclically
+acyesis
+acyetic
+acyl
+acylal
+acylamido
+acylamidobenzene
+acylamino
+acylase
+acylate
+acylated
+acylates
+acylating
+acylation
+acylogen
+acyloin
+acyloins
+acyloxy
+acyloxymethane
+acyls
+acyrological
+acyrology
+acystia
+-ad
+A.D.
+AD
+Ad
+ad
+ad-
+ADA
+Ada
+Adabel
+Adabelle
+Adachi
+adactyl
+adactylia
+adactylism
+adactylous
+Adad
+adad
+adage
+adages
+adagial
+adagietto
+adagiettos
+adagio
+adagios
+adagissimo
+adagy
+Adah
+Adaha
+Adai
+Adaiha
+Adair
+Adairsville
+Adairville
+Adaize
+Adal
+Adala
+Adalai
+Adalard
+adalat
+Adalbert
+Adalheid
+Adali
+Adalia
+Adaliah
+adalid
+Adalie
+Adaline
+Adall
+Adallard
+Adam
+adam
+Adama
+adamance
+adamances
+adamancies
+adamancy
+Adam-and-Eve
+Adam-and-eve
+adam-and-eve
+adamant
+adamantean
+adamantine
+adamantinoma
+adamantlies
+adamantly
+adamantness
+adamantoblast
+adamantoblastoma
+adamantoid
+adamantoma
+adamants
+Adamas
+adamas
+Adamastor
+Adamawa
+Adamawa-Eastern
+adambulacral
+Adamec
+Adamek
+adamellite
+Adamello
+Adamhood
+Adamic
+Adamical
+Adamically
+Adamik
+Adamina
+Adaminah
+adamine
+Adamis
+Adamite
+adamite
+Adamitic
+Adamitical
+Adamitism
+Adamo
+Adamok
+Adams
+adams
+Adamsbasin
+Adamsburg
+Adamsen
+Adamsia
+adamsite
+adamsites
+Adamski
+Adam's-needle
+Adamson
+Adamstown
+Adamsun
+Adamsville
+Adan
+Adana
+a-dance
+adance
+a-dangle
+adangle
+Adansonia
+adansonia
+Adao
+Adapa
+adapid
+Adapis
+adapt
+adaptabilities
+adaptability
+adaptable
+adaptableness
+adaptably
+adaptation
+adaptational
+adaptationally
+adaptations
+adaptative
+adapted
+adaptedness
+adapter
+adapters
+adapting
+adaption
+adaptional
+adaptionism
+adaptions
+adaptitude
+adaptive
+adaptively
+adaptiveness
+adaptivity
+adaptometer
+adaptor
+adaptorial
+adaptors
+adapts
+Adar
+adar
+Adara
+adarbitrium
+adarme
+adarticulation
+adat
+adati
+adatis
+adatom
+adaty
+adaunt
+Adaurd
+adaw
+adawe
+adawlut
+adawn
+adaxial
+A-day
+Aday
+aday
+adays
+adazzle
+ADB
+A.D.C.
+ADC
+adc
+ADCCP
+ADCI
+adcon
+adcons
+adcraft
+ADD
+add
+add.
+Adda
+adda
+addability
+addable
+add-add
+Addam
+Addams
+addax
+addaxes
+ADDCP
+addda
+addebted
+added
+addedly
+addeem
+addend
+addenda
+addends
+addendum
+addendums
+adder
+adderbolt
+adderfish
+adders
+adder's-grass
+adder's-meat
+adder's-mouth
+adder's-mouths
+adderspit
+adder's-tongue
+adders-tongue
+adderwort
+Addi
+Addia
+addibility
+addible
+addice
+addicent
+addict
+addicted
+addictedness
+addicting
+addiction
+addictions
+addictive
+addictively
+addictiveness
+addictives
+addicts
+Addie
+Addiego
+Addiel
+Addieville
+addiment
+adding
+Addington
+addio
+Addis
+addis
+Addison
+addison
+Addisonian
+Addisoniana
+addita
+additament
+additamentary
+additiment
+addition
+additional
+additionally
+additionary
+additionist
+additions
+addititious
+additive
+additively
+additives
+additivity
+additory
+additum
+additur
+addle
+addlebrain
+addlebrained
+addled
+addlehead
+addleheaded
+addleheadedly
+addleheadedness
+addlement
+addleness
+addlepate
+addlepated
+addlepatedness
+addleplot
+addles
+addling
+addlings
+addlins
+addn
+addnl
+addoom
+addorsed
+addossed
+addr
+address
+addressability
+addressable
+addressed
+addressee
+addressees
+addresser
+addressers
+addresses
+addressful
+addressing
+Addressograph
+addressor
+addrest
+adds
+Addu
+adduce
+adduceable
+adduced
+adducent
+adducer
+adducers
+adduces
+adducible
+adducing
+adduct
+adducted
+adducting
+adduction
+adductive
+adductor
+adductors
+adducts
+addulce
+Addy
+Addyston
+-ade
+Ade
+ade
+a-dead
+adead
+Adebayo
+Adee
+adeem
+adeemed
+adeeming
+adeems
+a-deep
+adeep
+Adel
+Adela
+Adelaida
+Adelaide
+Adelaja
+adelantado
+adelantados
+adelante
+Adelanto
+Adelarthra
+Adelarthrosomata
+adelarthrosomatous
+adelaster
+Adelbert
+Adele
+Adelea
+Adeleidae
+Adelges
+Adelheid
+Adelia
+Adelice
+Adelina
+Adelind
+Adeline
+adeling
+adelite
+Adeliza
+Adell
+Adella
+Adelle
+adelocerous
+Adelochorda
+adelocodonic
+adelomorphic
+adelomorphous
+adelopod
+Adelops
+Adelphe
+Adelphi
+-adelphia
+Adelphia
+Adelphian
+adelphic
+Adelpho
+adelphogamy
+Adelphoi
+adelpholite
+adelphophagy
+-adelphous
+adelphous
+Adelric
+ademonist
+adempt
+adempted
+ademption
+Aden
+aden
+aden-
+Adena
+adenalgia
+adenalgy
+Adenanthera
+adenase
+adenasthenia
+Adenauer
+adendric
+adendritic
+adenectomies
+adenectomy
+adenectopia
+adenectopic
+adenemphractic
+adenemphraxis
+adenia
+adeniform
+adenin
+adenine
+adenines
+adenitis
+adenitises
+adenization
+adeno-
+adenoacanthoma
+adenoblast
+adenocancroid
+adenocarcinoma
+adenocarcinomas
+adenocarcinomata
+adenocarcinomatous
+adenocele
+adenocellulitis
+adenochondroma
+adenochondrosarcoma
+adenochrome
+adenocyst
+adenocystoma
+adenocystomatous
+adenodermia
+adenodiastasis
+adenodynia
+adenofibroma
+adenofibrosis
+adenogenesis
+adenogenous
+adenographer
+adenographic
+adenographical
+adenography
+adenohypersthenia
+adenohypophyseal
+adenohypophysial
+adenohypophysis
+adenoid
+adenoidal
+adenoidectomies
+adenoidectomy
+adenoidism
+adenoiditis
+adenoids
+adenoliomyofibroma
+adenolipoma
+adenolipomatosis
+adenologaditis
+adenological
+adenology
+adenolymphocele
+adenolymphoma
+adenoma
+adenomalacia
+adenomas
+adenomata
+adenomatome
+adenomatous
+adenomeningeal
+adenometritis
+adenomycosis
+adenomyofibroma
+adenomyoma
+adenomyxoma
+adenomyxosarcoma
+adenoncus
+adenoneural
+adenoneure
+adenopathy
+adenopharyngeal
+adenopharyngitis
+adenophlegmon
+Adenophora
+adenophore
+adenophoreus
+adenophorous
+adenophthalmia
+adenophyllous
+adenophyma
+adenopodous
+adenosarcoma
+adenosarcomas
+adenosarcomata
+adenosclerosis
+adenose
+adenoses
+adenosine
+adenosis
+adenostemonous
+Adenostoma
+adenotome
+adenotomic
+adenotomy
+adenotyphoid
+adenotyphus
+adenous
+adenoviral
+adenovirus
+adenoviruses
+adenyl
+adenylic
+adenylpyrophosphate
+adenyls
+Adeodatus
+Adeona
+Adephaga
+adephaga
+adephagan
+adephagia
+adephagous
+adeps
+adept
+adepter
+adeptest
+adeption
+adeptly
+adeptness
+adeptnesses
+adepts
+adeptship
+adequacies
+adequacy
+adequate
+adequately
+adequateness
+adequation
+adequative
+Ader
+adermia
+adermin
+adermine
+adesmy
+adespota
+adespoton
+Adessenarian
+adessenarian
+adessive
+Adest
+adeste
+adet
+adeuism
+adevism
+ADEW
+Adey
+ADF
+adfected
+adffroze
+adffrozen
+adfiliate
+adfix
+adfluxion
+adfreeze
+adfreezing
+ADFRF
+adfroze
+adfrozen
+Adger
+adglutinate
+Adhafera
+adhaka
+Adham
+adhamant
+Adhamh
+Adhara
+adharma
+adherant
+adhere
+adhered
+adherence
+adherences
+adherency
+adherend
+adherends
+adherent
+adherently
+adherents
+adherer
+adherers
+adheres
+adherescence
+adherescent
+adhering
+Adhern
+adhesion
+adhesional
+adhesions
+adhesive
+adhesively
+adhesivemeter
+adhesiveness
+adhesives
+adhibit
+adhibited
+adhibiting
+adhibition
+adhibits
+adhocracy
+adhort
+ADI
+Adi
+adiabat
+adiabatic
+adiabatically
+adiabolist
+adiactinic
+adiadochokinesia
+adiadochokinesis
+adiadokokinesi
+adiadokokinesia
+adiagnostic
+adiamorphic
+adiamorphism
+Adiana
+adiantiform
+Adiantum
+adiantum
+adiaphanous
+adiaphanousness
+adiaphon
+adiaphonon
+adiaphora
+adiaphoral
+adiaphoresis
+adiaphoretic
+adiaphorism
+adiaphorist
+adiaphoristic
+adiaphorite
+adiaphoron
+adiaphorous
+adiaphory
+adiapneustia
+adiate
+adiated
+adiathermal
+adiathermancy
+adiathermanous
+adiathermic
+adiathetic
+adiating
+adiation
+Adib
+adibasi
+Adi-buddha
+Adicea
+adicity
+Adie
+Adiel
+Adiell
+adience
+adient
+adieu
+adieus
+adieux
+Adige
+Adigei
+Adighe
+adighe
+adight
+Adigranth
+adigranth
+Adigun
+Adila
+Adim
+Adin
+Adina
+Adine
+Adinida
+adinidan
+adinole
+adinvention
+adion
+adios
+adipate
+adipescent
+adiphenine
+adipic
+adipinic
+adipocele
+adipocellulose
+adipocere
+adipoceriform
+adipocerite
+adipocerous
+adipocyte
+adipofibroma
+adipogenic
+adipogenous
+adipoid
+adipolysis
+adipolytic
+adipoma
+adipomata
+adipomatous
+adipometer
+adiponitrile
+adipopectic
+adipopexia
+adipopexic
+adipopexis
+adipose
+adiposeness
+adiposes
+adiposis
+adiposities
+adiposity
+adiposogenital
+adiposuria
+adipous
+adipsia
+adipsic
+adipsous
+adipsy
+adipyl
+Adirondack
+Adirondacks
+Adis
+adit
+adital
+aditio
+adits
+aditus
+Aditya
+Adivasi
+ADIZ
+adj
+adj.
+adjacence
+adjacencies
+adjacency
+adjacent
+adjacently
+adjag
+adject
+adjection
+adjectional
+adjectitious
+adjectival
+adjectivally
+adjective
+adjectively
+adjectives
+adjectivism
+adjectivitis
+adjiga
+adjiger
+adjoin
+adjoinant
+adjoined
+adjoinedly
+adjoiner
+adjoining
+adjoiningness
+adjoins
+adjoint
+adjoints
+adjourn
+adjournal
+adjourned
+adjourning
+adjournment
+adjournments
+adjourns
+adjoust
+adjt
+adjt.
+adjudge
+adjudgeable
+adjudged
+adjudger
+adjudges
+adjudging
+adjudgment
+adjudicata
+adjudicate
+adjudicated
+adjudicates
+adjudicating
+adjudication
+adjudications
+adjudicative
+adjudicator
+adjudicators
+adjudicatory
+adjudicature
+adjugate
+adjument
+adjunct
+adjunction
+adjunctive
+adjunctively
+adjunctly
+adjuncts
+Adjuntas
+adjuration
+adjurations
+adjuratory
+adjure
+adjured
+adjurer
+adjurers
+adjures
+adjuring
+adjuror
+adjurors
+adjust
+adjustability
+adjustable
+adjustable-pitch
+adjustably
+adjustage
+adjustation
+adjusted
+adjuster
+adjusters
+adjusting
+adjustive
+adjustment
+adjustmental
+adjustments
+adjustor
+adjustores
+adjustoring
+adjustors
+adjusts
+adjutage
+adjutancies
+adjutancy
+adjutant
+adjutant-general
+adjutants
+adjutantship
+adjutator
+adjute
+adjutor
+adjutorious
+adjutory
+adjutrice
+adjutrix
+adjuvant
+adjuvants
+adjuvate
+Adkins
+Adlai
+Adlar
+Adlare
+Adlay
+adlay
+Adlee
+adlegation
+adlegiare
+Adlei
+Adler
+Adlerian
+adlerian
+adless
+adlet
+Adley
+ad-lib
+ad-libbed
+ad-libber
+ad-libbing
+Adlumia
+adlumidin
+adlumidine
+adlumin
+adlumine
+ADM
+Adm
+Adm.
+adm
+Admah
+adman
+admarginate
+admass
+admaxillary
+ADMD
+admeasure
+admeasured
+admeasurement
+admeasurer
+admeasuring
+admedial
+admedian
+admen
+admensuration
+admerveylle
+Admete
+Admetus
+admetus
+admi
+admin
+adminicle
+adminicula
+adminicular
+adminiculary
+adminiculate
+adminiculation
+adminiculum
+administer
+administerd
+administered
+administerial
+administering
+administerings
+administers
+administrable
+administrant
+administrants
+administrate
+administrated
+administrates
+administrating
+administration
+administrational
+administrationist
+administrations
+administrative
+administratively
+administrator
+administrators
+administratorship
+administratress
+administratrices
+administratrix
+adminstration
+adminstrations
+admirability
+admirable
+admirableness
+admirably
+Admiral
+admiral
+admirals
+admiralship
+admiralships
+Admiralties
+admiralties
+admiralty
+admirance
+admiration
+admirations
+admirative
+admiratively
+admirator
+admire
+admired
+admiredly
+admirer
+admirers
+admires
+admiring
+admiringly
+admissability
+admissable
+admissibilities
+admissibility
+admissible
+admissibleness
+admissibly
+admission
+admissions
+admissive
+admissively
+admissory
+admit
+admits
+admittable
+admittance
+admittances
+admittatur
+admitted
+admittedly
+admittee
+admitter
+admitters
+admittible
+admitting
+admitty
+admix
+admixed
+admixes
+admixing
+admixt
+admixtion
+admixture
+admixtures
+admonish
+admonished
+admonisher
+admonishes
+admonishing
+admonishingly
+admonishment
+admonishments
+admonition
+admonitioner
+admonitionist
+admonitions
+admonitive
+admonitively
+admonitor
+admonitorial
+admonitorily
+admonitory
+admonitrix
+admortization
+admov
+admove
+admrx
+ADN
+Adna
+Adnah
+Adnan
+adnascence
+adnascent
+adnate
+adnation
+adnations
+Adne
+adnephrine
+adnerval
+adnescent
+adneural
+adnex
+adnexa
+adnexal
+adnexed
+adnexitis
+adnexopexy
+adnominal
+adnominally
+adnomination
+Adnopoz
+adnoun
+adnouns
+adnumber
+-ado
+Ado
+ado
+adobe
+adobes
+adobo
+adobos
+adod
+adolesce
+adolesced
+adolescence
+adolescences
+adolescency
+adolescent
+adolescently
+adolescents
+adolescing
+Adolf
+adolf
+Adolfo
+Adolph
+adolph
+Adolphe
+Adolpho
+Adolphus
+Adon
+adon
+Adona
+Adonai
+adonai
+Adonais
+Adonean
+Adonia
+Adoniad
+Adonian
+Adonias
+Adonic
+adonic
+Adonica
+adonidin
+Adonijah
+adonin
+Adoniram
+Adonis
+adonis
+adonises
+adonist
+adonite
+adonitol
+adonize
+adonized
+adonizing
+Adonoy
+a-doors
+adoors
+adoperate
+adoperation
+adopt
+adoptabilities
+adoptability
+adoptable
+adoptant
+adoptative
+adopted
+adoptedly
+adoptee
+adoptees
+adopter
+adopters
+adoptian
+adoptianism
+adoptianist
+adopting
+adoption
+adoptional
+adoptionism
+adoptionist
+adoptions
+adoptious
+adoptive
+adoptively
+adopts
+ador
+Adora
+adorability
+adorable
+adorableness
+adorably
+adoral
+adorally
+adorant
+Adorantes
+adoration
+adorations
+adoratory
+Adore
+adore
+adored
+Adoree
+adorer
+adorers
+adores
+Adoretus
+adoring
+adoringly
+Adorl
+adorn
+adornation
+Adorne
+adorned
+adorner
+adorners
+adorning
+adorningly
+adornment
+adornments
+adorno
+adornos
+adorns
+adorsed
+ados
+adosculation
+adossed
+adossee
+Adoula
+adoulie
+Adowa
+adown
+Adoxa
+Adoxaceae
+adoxaceous
+adoxies
+adoxography
+adoxy
+adoze
+ADP
+adp
+adp-
+adpao
+ADPCM
+adposition
+adpress
+adpromission
+adpromissor
+adq-
+adrad
+adradial
+adradially
+adradius
+Adramelech
+Adrammelech
+Adrastea
+Adrastos
+Adrastus
+Adrea
+adread
+adream
+adreamed
+adreamt
+adrectal
+Adrell
+adren-
+adrenal
+adrenalcortical
+adrenalectomies
+adrenalectomize
+adrenalectomized
+adrenalectomizing
+adrenalectomy
+Adrenalin
+adrenalin
+adrenaline
+adrenalize
+adrenally
+adrenalone
+adrenals
+adrench
+adrenergic
+adrenin
+adrenine
+adrenitis
+adreno
+adrenochrome
+adrenocortical
+adrenocorticosteroid
+adrenocorticotrophic
+adrenocorticotrophin
+adrenocorticotropic
+adrenolysis
+adrenolytic
+adrenomedullary
+adrenosterone
+adrenotrophin
+adrenotropic
+adrent
+Adrestus
+adret
+Adria
+Adriaen
+Adriaens
+Adrial
+adriamycin
+Adrian
+Adriana
+Adriane
+Adrianna
+Adrianne
+Adriano
+Adrianople
+Adrianopolis
+Adriatic
+adriatic
+Adriel
+Adriell
+Adrien
+Adriena
+Adriene
+Adrienne
+adrift
+adrip
+adrogate
+adroit
+adroiter
+adroitest
+adroitly
+adroitness
+adroitnesses
+Adron
+adroop
+adrop
+adrostal
+adrostral
+adrowse
+adrue
+adry
+ADS
+ads
+adsbud
+adscendent
+adscititious
+adscititiously
+adscript
+adscripted
+adscription
+adscriptitious
+adscriptitius
+adscriptive
+adscripts
+adsessor
+adsheart
+adsignification
+adsignify
+adsmith
+adsmithing
+adsorb
+adsorbability
+adsorbable
+adsorbate
+adsorbates
+adsorbed
+adsorbent
+adsorbents
+adsorbing
+adsorbs
+adsorption
+adsorptive
+adsorptively
+adsorptiveness
+ADSP
+adspiration
+ADSR
+adstipulate
+adstipulated
+adstipulating
+adstipulation
+adstipulator
+adstrict
+adstringe
+adsum
+ADT
+adterminal
+adtevac
+aduana
+adular
+adularescence
+adularescent
+adularia
+adularias
+adulate
+adulated
+adulates
+adulating
+adulation
+adulator
+adulators
+adulatory
+adulatress
+adulce
+Adullam
+Adullamite
+adullamite
+adult
+adulter
+adulterant
+adulterants
+adulterate
+adulterated
+adulterately
+adulterateness
+adulterates
+adulterating
+adulteration
+adulterations
+adulterator
+adulterators
+adulterer
+adulterers
+adulteress
+adulteresses
+adulteries
+adulterine
+adulterize
+adulterous
+adulterously
+adulterousness
+adultery
+adulthood
+adulthoods
+adulticidal
+adulticide
+adultlike
+adultly
+adultness
+adultoid
+adultress
+adults
+adumbral
+adumbrant
+adumbrate
+adumbrated
+adumbrates
+adumbrating
+adumbration
+adumbrations
+adumbrative
+adumbratively
+adumbrellar
+adunation
+adunc
+aduncate
+aduncated
+aduncity
+aduncous
+Adur
+adure
+adurent
+Adurol
+adusk
+adust
+adustion
+adustiosis
+adustive
+Aduwa
+adv
+adv.
+Advaita
+advance
+advanceable
+advanced
+advancedness
+advancement
+advancements
+advancer
+advancers
+advances
+advancing
+advancingly
+advancive
+advantage
+advantaged
+advantageous
+advantageously
+advantageousness
+advantages
+advantaging
+advect
+advected
+advecting
+advection
+advectitious
+advective
+advects
+advehent
+advena
+advenae
+advene
+advenience
+advenient
+Advent
+advent
+advential
+Adventism
+adventism
+Adventist
+adventist
+adventists
+adventitia
+adventitial
+adventitious
+adventitiously
+adventitiousness
+adventitiousnesses
+adventive
+adventively
+adventry
+advents
+adventual
+adventure
+adventured
+adventureful
+adventurement
+adventurer
+adventurers
+adventures
+adventureship
+adventuresome
+adventuresomely
+adventuresomeness
+adventuresomes
+adventuress
+adventuresses
+adventuring
+adventurish
+adventurism
+adventurist
+adventuristic
+adventurous
+adventurously
+adventurousness
+adverb
+adverbial
+adverbiality
+adverbialize
+adverbially
+adverbiation
+adverbless
+adverbs
+adversa
+adversant
+adversaria
+adversarial
+adversaries
+adversariness
+adversarious
+adversary
+adversative
+adversatively
+adverse
+adversed
+adversely
+adverseness
+adversifoliate
+adversifolious
+adversing
+adversion
+adversities
+adversity
+adversive
+adversus
+advert
+adverted
+advertence
+advertency
+advertent
+advertently
+adverting
+advertisable
+advertise
+advertised
+advertisee
+advertisement
+advertisements
+advertiser
+advertisers
+advertises
+advertising
+advertisings
+advertizable
+advertize
+advertized
+advertizement
+advertizer
+advertizes
+advertizing
+adverts
+advice
+adviceful
+advices
+advisabilities
+advisability
+advisable
+advisableness
+advisably
+advisal
+advisatory
+advise
+advised
+advisedly
+advisedness
+advisee
+advisees
+advisement
+advisements
+adviser
+advisers
+advisership
+advises
+advising
+advisive
+advisiveness
+adviso
+advisor
+advisories
+advisorily
+advisors
+advisory
+advisy
+advitant
+advocaat
+advocacies
+advocacy
+advocate
+advocated
+advocates
+advocateship
+advocatess
+advocating
+advocation
+advocative
+advocator
+advocatory
+advocatress
+advocatrice
+advocatrix
+advoke
+advolution
+advoteresse
+advowee
+advowry
+advowsance
+advowson
+advowsons
+advoyer
+advt
+advt.
+adward
+adwesch
+ady
+Adyge
+Adygei
+Adyghe
+adynamia
+adynamias
+adynamic
+adynamy
+adyta
+adyton
+adytta
+adytum
+adz
+adze
+adzer
+adzes
+Adzharia
+Adzharistan
+adzooks
+-ae
+AE
+ae
+ae-
+ae.
+AEA
+Aeacidae
+Aeacides
+Aeacus
+Aeaea
+Aeaean
+AEC
+Aechmagoras
+Aechmophorus
+aecia
+aecial
+aecidia
+Aecidiaceae
+aecidial
+aecidioform
+Aecidiomycetes
+aecidiospore
+aecidiostage
+aecidium
+aeciospore
+aeciostage
+aeciotelia
+aecioteliospore
+aeciotelium
+aecium
+aedeagal
+aedeagi
+aedeagus
+aedegi
+Aedes
+aedes
+aedicula
+aediculae
+aedicule
+Aedilberct
+aedile
+aediles
+aedileship
+aedilian
+aedilic
+aedilitian
+aedilities
+aedility
+aedine
+aedoeagi
+aedoeagus
+aedoeology
+Aedon
+Aeetes
+AEF
+aefald
+aefaldness
+aefaldy
+aefauld
+Aegaeon
+aegagri
+aegagropila
+aegagropilae
+aegagropile
+aegagropiles
+aegagrus
+Aegates
+Aegean
+aegean
+aegemony
+aeger
+Aegeria
+aegerian
+aegeriid
+Aegeriidae
+Aegesta
+Aegeus
+Aegia
+Aegiale
+Aegialeus
+Aegialia
+Aegialitis
+Aegicores
+aegicrania
+aegilops
+Aegimius
+Aegina
+Aeginaea
+Aeginetan
+Aeginetic
+Aegiochus
+Aegipan
+Aegir
+aegir
+aegirine
+aegirinolite
+aegirite
+AEGIS
+aegis
+aegises
+Aegisthus
+aegisthus
+Aegithalos
+Aegithognathae
+aegithognathism
+aegithognathous
+Aegium
+Aegle
+aegophony
+Aegopodium
+Aegospotami
+aegritude
+aegrotant
+aegrotat
+aegyptilla
+Aegyptus
+aegyrite
+aeipathy
+Aekerly
+Aelber
+Aelbert
+Aella
+Aello
+aelodicon
+aeluroid
+Aeluroidea
+aelurophobe
+aelurophobia
+aeluropodous
+-aemia
+aenach
+Aenea
+aenean
+Aeneas
+aeneas
+Aeneid
+aeneid
+Aeneolithic
+aeneolithic
+aeneous
+Aeneus
+aeneus
+Aeniah
+aenigma
+aenigmatite
+Aenius
+Aenneea
+aeolharmonica
+Aeolia
+Aeolian
+aeolian
+Aeolic
+aeolic
+Aeolicism
+aeolid
+Aeolidae
+Aeolides
+Aeolididae
+aeolight
+aeolina
+aeoline
+aeolipile
+aeolipyle
+Aeolis
+Aeolism
+Aeolist
+aeolist
+aeolistic
+aeolo-
+aeolodicon
+aeolodion
+aeolomelodicon
+aeolopantalon
+aeolotropic
+aeolotropism
+aeolotropy
+aeolsklavier
+Aeolus
+aeolus
+aeon
+aeonial
+aeonian
+aeonic
+aeonicaeonist
+aeonist
+aeons
+Aepyceros
+Aepyornis
+aepyornis
+Aepyornithidae
+Aepyornithiformes
+Aepytus
+aeq
+Aequi
+Aequian
+Aequiculi
+Aequipalpia
+aequor
+aequoreal
+aequorin
+aequorins
+aer
+aer-
+aerage
+aeraria
+aerarian
+aerarium
+aerate
+aerated
+aerates
+aerating
+aeration
+aerations
+aerator
+aerators
+aerenchyma
+aerenterectasia
+aeri-
+Aeria
+aerial
+aerialist
+aerialists
+aeriality
+aerially
+aerialness
+aerials
+aeric
+aerical
+Aerides
+aerides
+aerie
+aeried
+Aeriel
+Aeriela
+Aeriell
+aerier
+aeries
+aeriest
+aerifaction
+aeriferous
+aerification
+aerified
+aerifies
+aeriform
+aerify
+aerifying
+aerily
+aeriness
+aero
+aero-
+aeroacoustic
+Aerobacter
+aerobacter
+aerobacteriological
+aerobacteriologically
+aerobacteriologist
+aerobacteriology
+aerobacters
+aeroballistic
+aeroballistics
+aerobate
+aerobated
+aerobatic
+aerobatics
+aerobating
+aerobe
+aerobee
+aerobes
+aerobia
+aerobian
+aerobic
+aerobically
+aerobics
+aerobiologic
+aerobiological
+aerobiologically
+aerobiologist
+aerobiology
+aerobion
+aerobiont
+aerobioscope
+aerobiosis
+aerobiotic
+aerobiotically
+aerobious
+aerobium
+aeroboat
+Aerobranchia
+aerobranchiate
+aerobus
+aerocamera
+aerocar
+aerocartograph
+aerocartography
+Aerocharidae
+aerocolpos
+aerocraft
+aerocurve
+aerocyst
+aerodermectasia
+aerodone
+aerodonetic
+aerodonetics
+aerodontalgia
+aerodontia
+aerodontic
+aerodrome
+aerodromes
+aerodromics
+aeroduct
+aeroducts
+aerodynamic
+aerodynamical
+aerodynamically
+aerodynamicist
+aerodynamics
+aerodyne
+aerodynes
+aeroelastic
+aeroelasticity
+aeroelastics
+aeroembolism
+aeroenterectasia
+Aeroflot
+aerofoil
+aerofoils
+aerogel
+aerogels
+aerogen
+aerogene
+aerogenes
+aerogenesis
+aerogenic
+aerogenically
+aerogenous
+aerogeography
+aerogeologist
+aerogeology
+aerognosy
+aerogram
+aerogramme
+aerograms
+aerograph
+aerographer
+aerographic
+aerographical
+aerographics
+aerographies
+aerography
+aerogun
+aerohydrodynamic
+aerohydropathy
+aerohydroplane
+aerohydrotherapy
+aerohydrous
+aeroides
+Aerojet
+Aerol
+aerolite
+aerolites
+aerolith
+aerolithology
+aeroliths
+aerolitic
+aerolitics
+aerologic
+aerological
+aerologies
+aerologist
+aerologists
+aerology
+aeromaechanic
+aeromagnetic
+aeromancer
+aeromancy
+aeromantic
+aeromarine
+aeromechanic
+aeromechanical
+aeromechanics
+aeromedical
+aeromedicine
+aerometeorograph
+aerometer
+aerometric
+aerometry
+aeromotor
+aeron
+aeron.
+aeronat
+aeronaut
+aeronautic
+aeronautical
+aeronautically
+aeronautics
+aeronautism
+aeronauts
+aeronef
+aeroneurosis
+aeronomer
+aeronomic
+aeronomical
+aeronomics
+aeronomies
+aeronomist
+aeronomy
+aero-otitis
+aeropathy
+aeropause
+Aerope
+aeroperitoneum
+aeroperitonia
+aerophagia
+aerophagist
+aerophagy
+aerophane
+aerophilatelic
+aerophilatelist
+aerophilately
+aerophile
+aerophilia
+aerophilic
+aerophilous
+aerophobia
+aerophobic
+aerophone
+aerophor
+aerophore
+aerophoto
+aerophotography
+aerophotos
+aerophysical
+aerophysicist
+aerophysics
+aerophyte
+aeroplane
+aeroplaner
+aeroplanes
+aeroplanist
+aeroplankton
+aeropleustic
+aeroporotomy
+aeropulse
+aerosat
+aerosats
+aeroscepsis
+aeroscepsy
+aeroscope
+aeroscopic
+aeroscopically
+aeroscopy
+aerose
+aerosiderite
+aerosiderolite
+aerosinusitis
+Aerosol
+aerosol
+aerosolization
+aerosolize
+aerosolized
+aerosolizing
+aerosols
+aerospace
+aerosphere
+aerosporin
+aerostat
+aerostatic
+aerostatical
+aerostatics
+aerostation
+aerostats
+aerosteam
+aerotactic
+aerotaxis
+aerotechnical
+aerotechnics
+aerotherapeutics
+aerotherapy
+aerothermodynamic
+aerothermodynamics
+aerotonometer
+aerotonometric
+aerotonometry
+aerotow
+aerotropic
+aerotropism
+aeroview
+aeroyacht
+aeruginous
+aerugo
+aerugos
+aery
+AES
+aes
+Aesacus
+aesc
+Aeschines
+Aeschylean
+aeschylean
+Aeschylus
+aeschylus
+Aeschynanthus
+aeschynite
+Aeschynomene
+aeschynomenous
+Aesculaceae
+aesculaceous
+Aesculapian
+aesculapian
+Aesculapius
+aesculapius
+aesculetin
+aesculin
+Aesculus
+Aesepus
+Aeshma
+Aesir
+aesir
+Aesop
+aesop
+Aesopian
+aesopian
+Aesopic
+Aestatis
+aestethic
+aesthesia
+aesthesics
+aesthesio-
+aesthesis
+aesthesodic
+aesthete
+aesthetes
+aesthetic
+aesthetical
+aesthetically
+aesthetician
+aestheticism
+aestheticist
+aestheticize
+aesthetics
+aesthiology
+aestho-physiology
+aesthophysiology
+Aestii
+aestival
+aestivate
+aestivated
+aestivates
+aestivating
+aestivation
+aestivator
+aestive
+aestuary
+aestuate
+aestuation
+aestuous
+aesture
+aestus
+Aesyetes
+AET
+aet
+aet.
+aetat
+aethalia
+Aethalides
+aethalioid
+aethalium
+Aethelbert
+aetheling
+aetheogam
+aetheogamic
+aetheogamous
+aether
+aethereal
+aethered
+Aetheria
+aetheric
+aethers
+Aethionema
+aethogen
+aethon
+Aethra
+aethrioscope
+Aethusa
+Aethylla
+Aetian
+aetiogenic
+aetiological
+aetiologically
+aetiologies
+aetiologist
+aetiologue
+aetiology
+aetiophyllin
+aetiotropic
+aetiotropically
+aetites
+Aetna
+Aetobatidae
+Aetobatus
+Aetolia
+Aetolian
+Aetolus
+Aetomorphae
+aetosaur
+aetosaurian
+Aetosaurus
+aettekees
+AEU
+aevia
+aeviternal
+aevum
+A.F.
+A/F
+AF
+Af
+Af.
+a.f.
+af
+af-
+AFA
+aface
+afaced
+afacing
+AFACTS
+AFADS
+afaint
+A.F.A.M.
+AFAM
+Afar
+afar
+afara
+afars
+AFATDS
+AFB
+afb
+AFC
+AFCAC
+AFCC
+afd
+afdecho
+afear
+afeard
+afeared
+afebrile
+Afenil
+afer
+afernan
+afetal
+aff
+affa
+affabilities
+affability
+affable
+affableness
+affably
+affabrous
+affair
+affaire
+affaires
+affairs
+affaite
+affamish
+affatuate
+affect
+affectability
+affectable
+affectate
+affectation
+affectationist
+affectations
+affected
+affectedly
+affectedness
+affecter
+affecters
+affectibility
+affectible
+affecting
+affectingly
+affection
+affectional
+affectionally
+affectionate
+affectionately
+affectionateness
+affectioned
+affectionless
+affections
+affectious
+affective
+affectively
+affectivity
+affectless
+affectlessness
+affector
+affects
+affectual
+affectum
+affectuous
+affectus
+affeeble
+affeer
+affeerer
+affeerment
+affeeror
+affeir
+affenpinscher
+affenspalte
+Affer
+affere
+afferent
+afferently
+affettuoso
+affettuosos
+affiance
+affianced
+affiancer
+affiances
+affiancing
+affiant
+affiants
+affich
+affiche
+affiches
+afficionado
+affidare
+affidation
+affidavit
+affidavits
+affidavy
+affied
+affies
+affile
+affiliable
+affiliate
+affiliated
+affiliates
+affiliating
+affiliation
+affiliations
+affinage
+affinal
+affination
+affine
+affined
+affinely
+affines
+affing
+affinitative
+affinitatively
+affinite
+affinities
+affinition
+affinitive
+affinity
+affirm
+affirmable
+affirmably
+affirmance
+affirmant
+affirmation
+affirmations
+affirmative
+affirmative-action
+affirmatively
+affirmativeness
+affirmatives
+affirmatory
+affirmed
+affirmer
+affirmers
+affirming
+affirmingly
+affirmly
+affirms
+affix
+affixable
+affixal
+affixation
+affixed
+affixer
+affixers
+affixes
+affixial
+affixing
+affixion
+affixment
+affixt
+affixture
+afflate
+afflated
+afflation
+afflatus
+afflatuses
+afflict
+afflicted
+afflictedness
+afflicter
+afflicting
+afflictingly
+affliction
+afflictionless
+afflictions
+afflictive
+afflictively
+afflicts
+affloof
+afflue
+affluence
+affluences
+affluency
+affluent
+affluently
+affluentness
+affluents
+afflux
+affluxes
+affluxion
+affodill
+afforce
+afforced
+afforcement
+afforcing
+afford
+affordable
+afforded
+affording
+affords
+afforest
+afforestable
+afforestation
+afforestational
+afforested
+afforesting
+afforestment
+afforests
+afformative
+Affra
+affranchise
+affranchised
+affranchisement
+affranchising
+affrap
+affray
+affrayed
+affrayer
+affrayers
+affraying
+affrays
+affreight
+affreighter
+affreightment
+affret
+affrettando
+affreux
+Affrica
+affricate
+affricated
+affricates
+affrication
+affricative
+affriended
+affright
+affrighted
+affrightedly
+affrighter
+affrightful
+affrightfully
+affrighting
+affrightingly
+affrightment
+affrights
+affront
+affronted
+affrontedly
+affrontedness
+affrontee
+affronter
+affronting
+affrontingly
+affrontingness
+affrontive
+affrontiveness
+affrontment
+affronts
+affronty
+afft
+affuse
+affusedaffusing
+affusion
+affusions
+affy
+affydavy
+affying
+Afg
+AFGE
+Afgh
+Afghan
+afghan
+afghanets
+Afghani
+afghani
+afghanis
+Afghanistan
+afghanistan
+afghans
+afgod
+AFI
+afibrinogenemia
+aficionada
+aficionadas
+aficionado
+aficionados
+afield
+Afifi
+afikomen
+AFIPS
+afire
+AFL
+aflagellar
+aflame
+aflare
+A-flat
+aflat
+aflatoxin
+aflatus
+aflaunt
+AFL-CIO
+AFLCIO
+Aflex
+afley
+a-flicker
+aflicker
+aflight
+afloat
+aflow
+aflower
+afluking
+aflush
+aflutter
+AFM
+AFNOR
+afoam
+afocal
+afoot
+afore
+afore-acted
+afore-cited
+afore-coming
+afore-decried
+afore-given
+afore-going
+aforegoing
+afore-granted
+aforehand
+afore-heard
+afore-known
+afore-mentioned
+aforementioned
+aforenamed
+afore-planned
+afore-quoted
+afore-running
+aforesaid
+afore-seeing
+afore-seen
+afore-spoken
+afore-stated
+aforethought
+aforetime
+aforetimes
+afore-told
+aforeward
+afortiori
+afoul
+afounde
+AFP
+Afr
+afr-
+Afra
+afraid
+afraidness
+A-frame
+Aframerican
+Afrasia
+Afrasian
+afray
+afreet
+afreets
+afresca
+afresh
+afret
+afrete
+Afric
+Africa
+africa
+Africah
+African
+african
+Africana
+Africander
+africander
+Africanderism
+Africanism
+Africanist
+africanist
+Africanization
+Africanize
+Africanized
+Africanizing
+Africanoid
+africans
+Africanthropus
+Afridi
+afright
+Afrika
+Afrikaans
+afrikaans
+Afrikah
+Afrikander
+Afrikanderdom
+Afrikanderism
+Afrikaner
+afrikaner
+Afrikanerdom
+Afrikanerize
+afrit
+afrite
+afrits
+Afro
+Afro-
+afro
+Afro-American
+Afro-american
+afro-american
+Afro-Asian
+Afro-Asiatic
+Afro-asiatic
+Afroasiatic
+Afro-chain
+Afro-comb
+Afro-Cuban
+Afro-european
+Afrogaea
+Afrogaean
+afront
+afrormosia
+afros
+Afro-semitic
+afrown
+AFS
+AFSC
+AFSCME
+Afshah
+Afshar
+AFSK
+AFT
+aft
+aftaba
+after
+after-
+after-acquired
+afteract
+afterage
+afterattack
+afterband
+afterbay
+afterbeat
+afterbirth
+afterbirths
+afterblow
+afterbodies
+afterbody
+after-born
+afterbrain
+afterbreach
+afterbreast
+afterburner
+afterburners
+afterburning
+aftercare
+aftercareer
+aftercast
+aftercataract
+aftercause
+afterchance
+afterchrome
+afterchurch
+afterclap
+afterclause
+aftercome
+aftercomer
+aftercoming
+aftercooler
+aftercost
+after-course
+aftercourse
+aftercrop
+aftercure
+afterdamp
+afterdate
+afterdated
+afterdays
+afterdeal
+afterdeath
+afterdeck
+afterdecks
+after-described
+after-designed
+after-dinner
+afterdinner
+afterdischarge
+afterdrain
+afterdrops
+aftereffect
+aftereffects
+afterend
+aftereye
+afterfall
+afterfame
+afterfeed
+afterfermentation
+afterform
+afterfriend
+afterfruits
+afterfuture
+after-game
+aftergame
+aftergas
+afterglide
+afterglow
+afterglows
+aftergo
+aftergood
+after-grass
+aftergrass
+aftergrave
+aftergrief
+aftergrind
+aftergrowth
+after-guard
+afterguard
+afterguns
+afterhand
+afterharm
+afterhatch
+afterheat
+afterhelp
+afterhend
+afterhold
+afterhope
+afterhours
+after-image
+afterimage
+afterimages
+afterimpression
+afterings
+afterking
+afterknowledge
+after-life
+afterlife
+afterlifes
+afterlifetime
+afterlight
+afterlives
+afterloss
+afterlove
+aftermark
+aftermarket
+aftermarriage
+aftermass
+aftermast
+aftermath
+aftermaths
+aftermatter
+aftermeal
+after-mentioned
+aftermilk
+aftermost
+after-named
+afternight
+afternoon
+afternoons
+afternose
+afternote
+afteroar
+after-pain
+afterpain
+afterpains
+afterpart
+afterpast
+afterpeak
+afterpiece
+afterplanting
+afterplay
+afterpotential
+afterpressure
+afterproof
+afterrake
+afterreckoning
+afterrider
+afterripening
+afterroll
+afters
+afterschool
+aftersend
+aftersensation
+aftershaft
+aftershafted
+aftershave
+aftershaves
+aftershine
+aftership
+aftershock
+aftershocks
+aftersong
+aftersound
+after-specified
+afterspeech
+afterspring
+afterstain
+after-stampable
+afterstate
+afterstorm
+afterstrain
+afterstretch
+afterstudy
+after-supper
+aftersupper
+afterswarm
+afterswarming
+afterswell
+aftertan
+aftertask
+aftertaste
+aftertastes
+aftertax
+after-theater
+after-theatre
+afterthinker
+afterthought
+afterthoughted
+afterthoughts
+afterthrift
+aftertime
+aftertimes
+aftertouch
+aftertreatment
+aftertrial
+afterturn
+aftervision
+afterwale
+afterwar
+afterward
+afterwards
+afterwash
+afterwhile
+afterwisdom
+afterwise
+after-wit
+afterwit
+afterwitted
+afterword
+afterwork
+afterworking
+afterworld
+afterwort
+afterwrath
+afterwrist
+after-written
+afteryears
+aftmost
+Afton
+Aftonian
+aftosa
+aftosas
+AFTRA
+aftward
+aftwards
+afunction
+afunctional
+AFUU
+afwillite
+Afyon
+Afzelia
+A.G.
+AG
+Ag
+ag
+ag-
+aga
+agabanee
+Agabus
+agacant
+agacante
+Agace
+agacella
+agacerie
+Agaces
+Agacles
+agad
+agada
+Agade
+agadic
+Agadir
+Agag
+Agagianian
+again
+again-
+againbuy
+againsay
+against
+againstand
+againward
+agal
+agalactia
+agalactic
+agalactous
+agal-agal
+agalawood
+agalaxia
+agalaxy
+Agalena
+Agalenidae
+Agalinis
+agalite
+agalloch
+agallochs
+agallochum
+agallop
+agalma
+agalmatolite
+agalwood
+agalwoods
+Agama
+agama
+Agamae
+agamas
+a-game
+Agamede
+Agamedes
+Agamemnon
+agamemnon
+agamete
+agametes
+agami
+agamian
+agamic
+agamically
+agamid
+Agamidae
+agamis
+agamist
+agammaglobulinemia
+agammaglobulinemic
+agamobia
+agamobium
+agamogenesis
+agamogenetic
+agamogenetically
+agamogony
+agamoid
+agamont
+agamospermy
+agamospore
+agamous
+agamy
+Agan
+Agana
+aganglionic
+Aganice
+Aganippe
+aganippe
+Aganus
+Agao
+Agaonidae
+agapae
+agapai
+Agapanthus
+agapanthus
+agapanthuses
+Agape
+agape
+agapeic
+agapeically
+Agapemone
+Agapemonian
+Agapemonist
+Agapemonite
+agapetae
+agapeti
+agapetid
+Agapetidae
+agaphite
+Agapornis
+Agar
+agar
+agar-agar
+agaric
+agaricaceae
+agaricaceous
+Agaricales
+agaricic
+agariciform
+agaricin
+agaricine
+agaricinic
+agaricoid
+agarics
+Agaricus
+Agaristidae
+agarita
+agaroid
+agarose
+agaroses
+agars
+Agartala
+Agarum
+agarwal
+agas
+agasp
+Agassiz
+agast
+Agastache
+Agastreae
+agastric
+agastroneuria
+Agastrophus
+Agastya
+Agata
+agata
+Agate
+agate
+agatelike
+agates
+agateware
+Agatha
+Agathaea
+Agatharchides
+Agathaumas
+Agathe
+agathin
+Agathis
+agathism
+agathist
+Agatho
+agatho-
+Agathocles
+agathodaemon
+agathodaemonic
+agathodemon
+agathokakological
+agathology
+Agathon
+Agathosma
+Agathy
+Agathyrsus
+agatiferous
+agatiform
+agatine
+agatize
+agatized
+agatizes
+agatizing
+agatoid
+agaty
+Agau
+Agave
+agave
+agaves
+agavose
+Agawam
+Agaz
+agaze
+agazed
+agba
+Agbogla
+AGC
+AGCA
+AGCT
+agcy
+agcy.
+AGD
+Agdistis
+-age
+AGE
+AgE
+age
+ageable
+age-adorning
+age-bent
+age-coeval
+age-cracked
+aged
+age-despoiled
+age-dispelling
+agedly
+agedness
+agednesses
+Agee
+agee
+agee-jawed
+age-encrusted
+age-enfeebled
+age-group
+age-harden
+age-honored
+ageing
+ageings
+ageism
+ageisms
+ageist
+ageists
+Agelacrinites
+Agelacrinitidae
+Agelaius
+agelast
+age-lasting
+Agelaus
+ageless
+agelessly
+agelessness
+age-long
+agelong
+Agen
+agen
+Agena
+Agenais
+agencies
+agency
+agend
+agenda
+agendaless
+agendas
+agendum
+agendums
+agene
+agenes
+ageneses
+agenesia
+agenesias
+agenesic
+agenesis
+agenetic
+agenize
+agenized
+agenizes
+agenizing
+agennesis
+agennetic
+Agenois
+Agenor
+agent
+agentess
+agent-general
+agential
+agenting
+agentival
+agentive
+agentives
+agentries
+agentry
+agents
+agentship
+age-old
+ageometrical
+age-peeled
+ager
+agerasia
+Ageratum
+ageratum
+ageratums
+agers
+ages
+age-struck
+aget
+agete
+ageusia
+ageusic
+ageustia
+age-weary
+age-weathered
+age-worn
+Aggada
+Aggadah
+Aggadic
+aggadic
+Aggadoth
+Aggappe
+Aggappera
+Aggappora
+Aggarwal
+aggelation
+aggenerate
+agger
+aggerate
+aggeration
+aggerose
+aggers
+aggest
+Aggeus
+Aggi
+Aggie
+aggie
+aggies
+aggiornamenti
+aggiornamento
+agglomerant
+agglomerate
+agglomerated
+agglomerates
+agglomeratic
+agglomerating
+agglomeration
+agglomerations
+agglomerative
+agglomerator
+agglutinability
+agglutinable
+agglutinant
+agglutinate
+agglutinated
+agglutinates
+agglutinating
+agglutination
+agglutinationist
+agglutinations
+agglutinative
+agglutinatively
+agglutinator
+agglutinin
+agglutinins
+agglutinize
+agglutinogen
+agglutinogenic
+agglutinoid
+agglutinoscope
+agglutogenic
+aggrace
+aggradation
+aggradational
+aggrade
+aggraded
+aggrades
+aggrading
+aggrammatism
+aggrandise
+aggrandised
+aggrandisement
+aggrandiser
+aggrandising
+aggrandizable
+aggrandize
+aggrandized
+aggrandizement
+aggrandizements
+aggrandizer
+aggrandizers
+aggrandizes
+aggrandizing
+aggrate
+aggravable
+aggravate
+aggravated
+aggravates
+aggravating
+aggravatingly
+aggravation
+aggravations
+aggravative
+aggravator
+aggregable
+aggregant
+Aggregata
+Aggregatae
+aggregate
+aggregated
+aggregately
+aggregateness
+aggregates
+aggregating
+aggregation
+aggregational
+aggregations
+aggregative
+aggregatively
+aggregato-
+aggregator
+aggregatory
+aggrege
+aggress
+aggressed
+aggresses
+aggressing
+aggression
+aggressionist
+aggressions
+aggressive
+aggressively
+aggressiveness
+aggressivenesses
+aggressivity
+aggressor
+aggressors
+Aggri
+aggrievance
+aggrieve
+aggrieved
+aggrievedly
+aggrievedness
+aggrievement
+aggrieves
+aggrieving
+aggro
+aggros
+aggroup
+aggroupment
+aggry
+aggur
+Aggy
+Agh
+agha
+Aghan
+aghanee
+aghas
+aghast
+aghastness
+Aghlabite
+Aghorapanthi
+Aghori
+Agialid
+Agib
+agible
+Agiel
+agilawood
+agile
+agilely
+agileness
+agilities
+agility
+agillawood
+agilmente
+agin
+Agincourt
+aging
+agings
+aginner
+aginners
+agio
+agios
+agiotage
+agiotages
+agism
+agisms
+agist
+agistator
+agisted
+agister
+agisting
+agistment
+agistor
+agists
+agit
+agitability
+agitable
+agitant
+agitate
+agitated
+agitatedly
+agitates
+agitating
+agitation
+agitational
+agitationist
+agitations
+agitative
+agitato
+agitator
+agitatorial
+agitators
+agitatrix
+agitprop
+agitpropist
+agitprops
+agitpunkt
+Agkistrodon
+agkistrodon
+AGL
+agla
+Aglaia
+aglaia
+aglance
+Aglaonema
+Aglaos
+aglaozonia
+aglare
+Aglaspis
+Aglauros
+Aglaus
+Agle
+agleaf
+agleam
+aglee
+Agler
+aglet
+aglethead
+aglets
+agley
+a-glimmer
+aglimmer
+aglint
+Aglipayan
+Aglipayano
+aglisten
+aglitter
+aglobulia
+aglobulism
+Aglossa
+aglossal
+aglossate
+aglossia
+aglow
+aglucon
+aglucone
+a-glucosidase
+aglutition
+agly
+aglycon
+aglycone
+aglycones
+aglycons
+aglycosuric
+Aglypha
+aglyphodont
+Aglyphodonta
+Aglyphodontia
+aglyphous
+AGM
+AGMA
+agma
+agmas
+agmatine
+agmatology
+agminate
+agminated
+AGN
+Agna
+agnail
+agnails
+agname
+agnamed
+agnat
+agnate
+agnates
+Agnatha
+agnathia
+agnathic
+Agnathostomata
+agnathostomatous
+agnathous
+agnatic
+agnatical
+agnatically
+agnation
+agnations
+agnean
+agneau
+agneaux
+agnel
+Agnella
+Agnes
+Agnese
+Agness
+Agnesse
+Agneta
+Agnew
+Agni
+agnification
+agnition
+agnize
+agnized
+agnizes
+agnizing
+Agnoetae
+Agnoete
+Agnoetism
+agnoiology
+Agnoite
+agnoites
+Agnola
+agnomen
+agnomens
+agnomical
+agnomina
+agnominal
+agnomination
+agnosia
+agnosias
+agnosis
+agnostic
+agnostical
+agnostically
+agnosticism
+agnostics
+Agnostus
+agnosy
+Agnotozoic
+agnus
+agnuses
+ago
+agog
+agoge
+agogic
+agogics
+-agogue
+agoho
+agoing
+agomensin
+agomphiasis
+agomphious
+agomphosis
+Agon
+agon
+agonal
+agone
+agones
+agonia
+agoniada
+agoniadin
+agoniatite
+Agoniatites
+agonic
+agonied
+agonies
+agonise
+agonised
+agonises
+agonising
+agonisingly
+agonist
+Agonista
+agonistarch
+agonistic
+agonistical
+agonistically
+agonistics
+agonists
+agonium
+agonize
+agonized
+agonizedly
+agonizer
+agonizes
+agonizing
+agonizingly
+agonizingness
+Agonostomus
+agonothet
+agonothete
+agonothetic
+agons
+agony
+a-good
+agora
+agorae
+Agoraea
+Agoraeus
+agoramania
+agoranome
+agoranomus
+agoraphobia
+agoraphobiac
+agoraphobic
+agoras
+a-gore-blood
+agorot
+agoroth
+agos
+agostadero
+Agostini
+Agostino
+Agosto
+agouara
+agouta
+agouti
+agouties
+agoutis
+agouty
+agpaite
+agpaitic
+AGR
+agr
+agr.
+Agra
+agrace
+Agraeus
+agrafe
+agrafes
+agraffe
+agraffee
+agraffes
+agrah
+agral
+Agram
+agramed
+agrammaphasia
+agrammatica
+agrammatical
+agrammatism
+agrammatologia
+Agrania
+agranulocyte
+agranulocytosis
+agranuloplastic
+Agrapha
+agrapha
+agraphia
+agraphias
+agraphic
+agraria
+agrarian
+agrarianism
+agrarianisms
+agrarianize
+agrarianly
+agrarians
+Agrauleum
+Agraulos
+agravic
+agre
+agreat
+agreation
+agreations
+agree
+agreeability
+agreeable
+agreeableness
+agreeablenesses
+agreeable-sounding
+agreeably
+agreed
+agreeing
+agreeingly
+agreement
+agreements
+agreer
+agreers
+agrees
+agregation
+agrege
+agreges
+agreing
+agremens
+agrement
+agrements
+agrest
+agrestal
+agrestial
+agrestian
+agrestic
+agrestical
+agrestis
+Agretha
+agria
+agrias
+agribusiness
+agribusinesses
+agric
+agric.
+agricere
+Agricola
+agricole
+agricolist
+agricolite
+agricolous
+agricultor
+agricultural
+agriculturalist
+agriculturalists
+agriculturally
+agriculture
+agriculturer
+agricultures
+agriculturist
+agriculturists
+agrief
+Agrigento
+Agrilus
+Agrimonia
+agrimonies
+agrimony
+agrimotor
+agrin
+Agrinion
+Agriochoeridae
+Agriochoerus
+agriological
+agriologist
+agriology
+Agrionia
+agrionid
+Agrionidae
+Agriope
+agriot
+Agriotes
+agriotype
+Agriotypidae
+Agriotypus
+Agripina
+Agrippa
+Agrippina
+agrise
+agrised
+agrising
+agrito
+agritos
+Agrius
+agro-
+agroan
+agrobacterium
+agrobiologic
+agrobiological
+agrobiologically
+agrobiologist
+agrobiology
+agrodolce
+agrogeological
+agrogeologically
+agrogeology
+agrologic
+agrological
+agrologically
+agrologies
+agrologist
+agrology
+agrom
+agromania
+Agromyza
+agromyzid
+Agromyzidae
+agron
+agron.
+agronome
+agronomial
+agronomic
+agronomical
+agronomically
+agronomics
+agronomies
+agronomist
+agronomists
+agronomy
+agroof
+agrope
+Agropyron
+Agrostemma
+agrosteral
+agrosterol
+Agrostis
+agrostis
+agrostographer
+agrostographic
+agrostographical
+agrostographies
+agrostography
+agrostologic
+agrostological
+agrostologist
+agrostology
+agrote
+agrotechny
+Agrotera
+Agrotis
+agrotype
+aground
+agrufe
+agruif
+agrypnia
+agrypniai
+agrypnias
+agrypnode
+agrypnotic
+AGS
+agsam
+agst
+Agt
+agt
+agtbasic
+AGU
+agua
+aguacate
+Aguacateca
+Aguada
+aguada
+Aguadilla
+aguador
+Aguadulce
+aguaji
+aguamas
+aguamiel
+Aguanga
+aguara
+aguardiente
+Aguascalientes
+aguavina
+Aguayo
+Agudist
+ague
+Agueda
+ague-faced
+aguelike
+ague-plagued
+agueproof
+ague-rid
+agues
+ague-sore
+ague-struck
+agueweed
+agueweeds
+aguey
+aguglia
+Aguie
+Aguijan
+Aguila
+Aguilar
+aguilarite
+aguilawood
+aguilt
+Aguinaldo
+aguinaldo
+aguinaldos
+aguirage
+Aguirre
+aguise
+aguish
+aguishly
+aguishness
+Aguistin
+agujon
+Agulhas
+agunah
+Agung
+agura
+aguroth
+agush
+agust
+Aguste
+Agustin
+Agway
+agy
+Agyieus
+agyiomania
+agynarious
+agynary
+agynic
+agynous
+agyrate
+agyria
+agyrophobia
+A.H.
+AH
+Ah
+ah
+AHA
+aha
+ahaaina
+Ahab
+ahab
+ahamkara
+ahankara
+Ahantchuyuk
+Aharon
+ahartalav
+Ahasuerus
+ahaunch
+Ahaz
+Ahaziah
+ahchoo
+Ahders
+AHE
+ahead
+aheap
+Ahearn
+a-height
+aheight
+ahem
+ahems
+Ahepatokla
+Ahern
+Ahet
+a-hey
+ahey
+Ahgwahching
+Ahhiyawa
+ahi
+Ahidjo
+Ahiezer
+a-high
+a-high-lone
+Ahimaaz
+Ahimelech
+ahimsa
+ahimsas
+ahind
+ahint
+Ahir
+Ahira
+Ahisar
+Ahishar
+ahistoric
+ahistorical
+Ahithophel
+AHL
+Ahl
+Ahlgren
+ahluwalia
+Ahmad
+Ahmadabad
+Ahmadi
+ahmadi
+Ahmadiya
+Ahmadnagar
+Ahmadou
+Ahmadpur
+Ahmar
+Ahmed
+Ahmedabad
+ahmedi
+Ahmednagar
+Ahmeek
+Ahnfeltia
+aho
+Ahola
+Aholah
+a-hold
+ahold
+aholds
+Aholla
+aholt
+Ahom
+ahong
+a-horizon
+ahorse
+a-horseback
+ahorseback
+Ahoskie
+Ahoufe
+Ahouh
+Ahousaht
+ahoy
+ahoys
+AHQ
+Ahrendahronon
+Ahrendt
+Ahrens
+Ahriman
+Ahrimanian
+Ahron
+ahs
+AHSA
+Ahsahka
+ahsan
+Aht
+Ahtena
+ahu
+ahuaca
+ahuatle
+ahuehuete
+ahull
+ahum
+ahungered
+ahungry
+a-hunt
+ahunt
+ahura
+Ahura-mazda
+ahurewa
+ahush
+ahuula
+Ahuzzath
+Ahvaz
+Ahvenanmaa
+Ahwahnee
+ahwal
+Ahwaz
+ahypnia
+A.I.
+AI
+ai
+A.I.A.
+AIA
+Aia
+AIAA
+Aias
+Aiawong
+aiblins
+Aibonito
+AIC
+AICC
+aichmophobia
+A.I.D.
+AID
+aid
+Aida
+aidable
+Aidan
+aidance
+aidant
+AIDDE
+aid-de-camp
+aide
+aided
+aide-de-camp
+aide-de-campship
+aide-memoire
+aide-mmoire
+Aiden
+Aidenn
+aider
+aiders
+Aides
+aides
+aides-de-camp
+aidful
+Aidin
+aiding
+Aidit
+aidless
+aidman
+aidmanmen
+aidmen
+Aidoneus
+Aidos
+AIDS
+aids
+aids-de-camp
+Aiea
+AIEEE
+aiel
+Aiello
+aiery
+AIF
+aiger
+aigialosaur
+Aigialosauridae
+Aigialosaurus
+aiglet
+aiglets
+aiglette
+Aigneis
+aigre
+aigre-doux
+aigremore
+aigret
+aigrets
+aigrette
+aigrettes
+aiguelle
+aiguellette
+aigue-marine
+aiguiere
+aiguille
+aiguilles
+aiguillesque
+aiguillette
+aiguilletted
+AIH
+aik
+aikane
+Aiken
+aikido
+aikidos
+aikinite
+aikona
+aikuchi
+ail
+Aila
+ailantery
+ailanthic
+Ailanthus
+ailanthus
+ailanthuses
+ailantine
+ailanto
+Ailbert
+Aile
+aile
+ailed
+Ailee
+Aileen
+Ailene
+aileron
+ailerons
+ailette
+Ailey
+Aili
+Ailie
+Ailin
+Ailina
+ailing
+Ailis
+Ailleret
+aillt
+ailment
+ailments
+ails
+Ailsa
+Ailssa
+Ailsun
+ailsyte
+Ailuridae
+ailuro
+ailuroid
+Ailuroidea
+ailuromania
+ailurophile
+ailurophilia
+ailurophilic
+ailurophobe
+ailurophobia
+ailurophobic
+Ailuropoda
+Ailuropus
+Ailurus
+ailweed
+Ailyn
+AIM
+aim
+aimable
+Aimak
+aimak
+aimara
+AIME
+Aime
+aimed
+Aimee
+aimer
+aimers
+aimful
+aimfully
+Aimil
+aiming
+aimless
+aimlessly
+aimlessness
+aimlessnesses
+Aimo
+Aimore
+AIMS
+aims
+Aimwell
+aimworthiness
+Ain
+ain
+ainaleh
+AInd
+Aindrea
+aine
+ainee
+ainhum
+ainoi
+ains
+ainsell
+ainsells
+Ainslee
+Ainsley
+Ainslie
+Ainsworth
+ain't
+aint
+Aintab
+Ainu
+ainu
+Ainus
+ainus
+AIOD
+aioli
+aiolis
+aion
+aionial
+AIPS
+AIR
+Air
+air
+Aira
+airable
+airampo
+airan
+airbag
+airbags
+air-balloon
+airbill
+airbills
+air-bind
+air-blasted
+air-blown
+airboat
+airboats
+air-born
+airborn
+air-borne
+airborne
+air-bound
+airbound
+airbrained
+air-braked
+airbrasive
+air-braving
+air-breathe
+air-breathed
+air-breather
+air-breathing
+air-bred
+airbrick
+airbrush
+airbrushed
+airbrushes
+airbrushing
+air-built
+airburst
+airbursts
+airbus
+airbuses
+airbusses
+air-chambered
+aircheck
+airchecks
+air-cheeked
+air-clear
+aircoach
+aircoaches
+air-condition
+aircondition
+air-conditioned
+airconditioned
+air-conditioning
+airconditioning
+airconditions
+air-conscious
+air-conveying
+air-cool
+air-cooled
+air-core
+aircraft
+aircraftman
+aircraftmen
+aircrafts
+aircraftsman
+aircraftsmen
+aircraftswoman
+aircraftswomen
+aircraftwoman
+aircrew
+aircrewman
+aircrewmen
+aircrews
+air-cure
+air-cured
+airdate
+airdates
+air-defiling
+airdock
+air-drawn
+Airdrie
+air-dried
+air-driven
+airdrome
+airdromes
+airdrop
+airdropped
+airdropping
+airdrops
+air-dry
+air-drying
+Aire
+aire
+aired
+Airedale
+airedale
+airedales
+Airel
+air-embraced
+airer
+airers
+Aires
+airest
+air-express
+airfare
+airfares
+air-faring
+airfield
+airfields
+air-filled
+air-floated
+airflow
+airflows
+airfoil
+airfoils
+air-formed
+airframe
+airframes
+airfreight
+airfreighter
+airglow
+airglows
+airgraph
+airgraphics
+air-hardening
+airhead
+airheads
+air-heating
+airier
+airiest
+airiferous
+airified
+airify
+airily
+airiness
+airinesses
+airing
+airings
+air-insulated
+air-intake
+airish
+Airla
+air-lance
+air-lanced
+air-lancing
+Airlee
+airle-penny
+airless
+airlessly
+airlessness
+Airlia
+Airliah
+Airlie
+airlift
+airlifted
+airlifting
+airlifts
+airlight
+airlike
+air-line
+airline
+airliner
+airliners
+airlines
+airling
+airlock
+airlocks
+air-logged
+air-mail
+airmail
+airmailed
+airmailing
+airmails
+airman
+airmanship
+airmark
+airmarker
+airmass
+airmen
+air-minded
+air-mindedness
+airmobile
+airmonger
+airn
+airns
+airohydrogen
+airometer
+airpark
+airparks
+air-pervious
+airphobia
+airplane
+airplaned
+airplaner
+airplanes
+airplaning
+airplanist
+airplay
+airplays
+airplot
+airport
+airports
+airpost
+airposts
+airproof
+airproofed
+airproofing
+airproofs
+air-raid
+airs
+airscape
+airscapes
+airscrew
+airscrews
+air-season
+air-seasoned
+airshed
+airsheds
+airsheet
+airship
+airships
+air-shy
+airsick
+airsickness
+air-slake
+air-slaked
+air-slaking
+airsome
+airspace
+airspaces
+airspeed
+airspeeds
+air-spray
+air-sprayed
+air-spun
+air-stirring
+airstream
+airstrip
+airstrips
+air-swallowing
+airt
+airted
+airth
+airthed
+airthing
+air-threatening
+airths
+airtight
+airtightly
+airtightness
+airtime
+airtimes
+airting
+air-to-air
+air-to-ground
+air-to-surface
+air-trampling
+airts
+air-twisted
+air-vessel
+airview
+Airville
+airward
+airwards
+airwash
+airwave
+airwaves
+airway
+airwaybill
+airwayman
+airways
+air-wise
+airwise
+air-wiseness
+airwoman
+airwomen
+airworthier
+airworthiest
+airworthiness
+airworthy
+Airy
+airy
+airy-fairy
+AIS
+ais
+aischrolatreia
+aiseweed
+Aisha
+AISI
+aisle
+aisled
+aisleless
+aisles
+aisling
+Aisne
+Aisne-Marne
+Aissaoua
+Aissor
+aisteoir
+aistopod
+Aistopoda
+Aistopodes
+ait
+aitch
+aitch-bone
+aitchbone
+aitches
+aitchless
+aitchpiece
+aitesis
+aith
+aithochroi
+aitiology
+aition
+aitiotropic
+aitis
+Aitken
+Aitkenite
+Aitkin
+aits
+Aitutakian
+aiver
+aivers
+aivr
+aiwain
+aiwan
+AIX
+Aix
+Aix-en-Provence
+Aix-la-Chapelle
+Aix-la-chapelle
+Aix-les-Bains
+aizle
+Aizoaceae
+aizoaceous
+Aizoon
+AJ
+AJA
+Ajaccio
+Ajaja
+ajaja
+ajangle
+Ajani
+Ajanta
+ajar
+ajari
+Ajatasatru
+ajava
+Ajax
+ajax
+Ajay
+AJC
+ajee
+ajenjo
+ajhar
+ajimez
+Ajit
+ajitter
+ajiva
+ajivas
+Ajivika
+ajivika
+Ajmer
+Ajo
+Ajodhya
+ajog
+ajoint
+ajonjoli
+ajoure
+ajourise
+ajowan
+ajowans
+Ajuga
+ajuga
+ajugas
+ajutment
+AK
+ak
+AKA
+Aka
+aka
+akaakai
+Akaba
+Akademi
+Akal
+akala
+Akali
+akalimba
+akamai
+akamatsu
+Akamnik
+Akan
+akan
+Akanekunik
+Akania
+Akaniaceae
+Akanke
+akaroa
+akasa
+akasha
+Akaska
+Akas-mukhi
+Akawai
+akazga
+akazgin
+akazgine
+Akbar
+AKC
+akcheh
+ake
+akeake
+akebi
+Akebia
+aked
+akee
+akees
+akehorne
+akeki
+Akel
+Akela
+akela
+akelas
+Akeldama
+Akeley
+akeley
+akemboll
+akenbold
+akene
+akenes
+akenobeite
+akepiro
+akepiros
+Aker
+aker
+Akerboom
+akerite
+Akerley
+Akers
+aketon
+akey
+Akeyla
+Akeylah
+Akh
+Akha
+Akhaia
+akhara
+Akhenaten
+Akhetaton
+Akhisar
+Akhissar
+Akhlame
+Akhmatova
+Akhmimic
+Akhnaton
+akhoond
+akhrot
+akhund
+akhundzada
+akhyana
+Akhziv
+akia
+Akiachak
+Akiak
+Akiba
+Akihito
+Akili
+Akim
+akimbo
+Akimovsky
+Akin
+akin
+akindle
+akinesia
+akinesic
+akinesis
+akinete
+akinetic
+aking
+Akins
+Akira
+Akiskemikinik
+Akita
+Akiyenik
+Akka
+Akkad
+Akkadian
+akkadian
+Akkadist
+Akkerman
+Akkra
+Aklog
+akmite
+Akmolinsk
+akmudar
+akmuddar
+aknee
+aknow
+ako
+akoasm
+akoasma
+akolouthia
+akoluthia
+akonge
+Akontae
+Akoulalion
+akov
+akpek
+Akra
+akra
+Akrabattine
+akre
+akroasis
+akrochordite
+Akron
+akron
+akroter
+akroteria
+akroterial
+akroterion
+akrteria
+Aksel
+Aksoyn
+Aksum
+aktiebolag
+Aktiengesellschaft
+Aktistetae
+Aktistete
+Aktivismus
+Aktivist
+Aktyubinsk
+aku
+akuammin
+akuammine
+akule
+akund
+Akure
+Akutagawa
+Akutan
+akvavit
+akvavits
+Akwapim
+Akyab
+-al
+A.L.
+AL
+Al
+al
+al-
+al.
+ALA
+Ala
+Ala.
+ala
+Alabama
+alabama
+Alabaman
+Alabamian
+alabamian
+alabamians
+alabamide
+alabamine
+alabandine
+alabandite
+alabarch
+Alabaster
+alabaster
+alabasters
+alabastoi
+alabastos
+alabastra
+alabastrian
+alabastrine
+alabastrites
+alabastron
+alabastrons
+alabastrum
+alabastrums
+alablaster
+alacha
+alachah
+Alachua
+alack
+alackaday
+alacran
+alacreatine
+alacreatinin
+alacreatinine
+alacrify
+alacrious
+alacriously
+alacrities
+alacritous
+alacrity
+Alactaga
+alada
+Aladdin
+aladdin
+Aladdinize
+Aladfar
+Aladinist
+alae
+alagao
+alagarto
+alagau
+Alage
+Alagez
+Alagoas
+Alagoz
+alahee
+Alai
+alai
+alaihi
+Alain
+Alaine
+Alain-Fournier
+Alair
+alaite
+Alakanuk
+Alake
+Alaki
+Alala
+alala
+Alalcomeneus
+alalia
+alalite
+alaloi
+alalonga
+alalunga
+alalus
+Alamance
+Alamanni
+Alamannian
+Alamannic
+alambique
+Alameda
+alameda
+alamedas
+Alamein
+Alaminos
+alamiqui
+alamire
+Alamo
+alamo
+alamodality
+alamode
+alamodes
+Alamogordo
+alamonti
+alamort
+alamos
+Alamosa
+alamosite
+Alamota
+alamoth
+Alan
+alan
+Alana
+Alan-a-dale
+Alanah
+Alanbrooke
+Aland
+aland
+alands
+Alane
+alane
+alang
+alang-alang
+alange
+Alangiaceae
+alangin
+alangine
+Alangium
+alani
+alanin
+alanine
+alanines
+alanins
+Alanna
+alannah
+Alano
+Alanreed
+Alans
+alans
+Alansen
+Alanson
+alant
+alantic
+alantin
+alantol
+alantolactone
+alantolic
+alants
+alanyl
+alanyls
+ALAP
+alap
+alapa
+Alapaha
+Alar
+alar
+Alarbus
+Alarcon
+Alard
+alares
+alarge
+Alaria
+Alaric
+Alarice
+Alarick
+Alarise
+alarm
+alarmable
+alarmclock
+alarmed
+alarmedly
+alarming
+alarmingly
+alarmingness
+alarmism
+alarmisms
+alarmist
+alarmists
+alarms
+Alarodian
+alarum
+alarumed
+alaruming
+alarums
+alary
+Alas
+Alas.
+alas
+alasas
+Alascan
+Alasdair
+Alaska
+alaska
+alaskaite
+Alaskan
+alaskan
+alaskans
+alaskas
+alaskite
+Alastair
+Alasteir
+Alaster
+Alastor
+alastor
+alastors
+alastrim
+alate
+Alatea
+alated
+alatern
+alaternus
+alates
+Alathia
+alation
+alations
+Alauda
+Alaudidae
+alaudine
+alaund
+Alaunian
+alaunt
+Alawi
+alay
+Alayne
+alazor
+Alb
+Alb.
+alb
+Alba
+alba
+albacea
+Albacete
+albacora
+albacore
+albacores
+albahaca
+Albainn
+Albamycin
+Alban
+alban
+Albana
+Albanenses
+Albanensian
+Albanese
+Albania
+albania
+Albanian
+albanian
+albanians
+albanite
+Albany
+albany
+albarco
+albardine
+albarelli
+albarello
+albarellos
+albarium
+Albarran
+albas
+albaspidin
+albata
+albatas
+Albategnius
+albation
+Albatros
+albatross
+albatrosses
+Albay
+albe
+albedo
+albedoes
+albedograph
+albedometer
+albedos
+Albee
+albee
+albeit
+Albemarle
+Alben
+Albeniz
+Alber
+alberca
+Alberene
+albergatrice
+alberge
+alberghi
+albergo
+Alberic
+Alberich
+alberich
+Alberik
+Alberoni
+Albers
+Albert
+albert
+Alberta
+alberta
+Alberti
+albertin
+Albertina
+Albertine
+Albertinian
+Albertist
+albertite
+Albertlea
+Alberto
+Alberton
+Albertson
+albert-type
+alberttype
+albertustaler
+Albertville
+albertype
+albescence
+albescent
+albespine
+albespyne
+albeston
+albetad
+Albi
+Albia
+Albian
+albicans
+albicant
+albication
+albicore
+albicores
+albiculi
+Albie
+albification
+albificative
+albified
+albiflorous
+albify
+albifying
+Albigenses
+albigenses
+Albigensian
+Albigensianism
+Albin
+albin
+Albina
+albinal
+albines
+albiness
+albinic
+albinism
+albinisms
+albinistic
+albino
+albinoism
+Albinoni
+albinos
+albinotic
+albinuria
+Albinus
+Albion
+albion
+Albireo
+albite
+albites
+albitic
+albitical
+albitite
+albitization
+albitophyre
+albizia
+albizias
+Albizzia
+albizzia
+albizzias
+ALBM
+Albniz
+ALBO
+albocarbon
+albocinereous
+Albococcus
+albocracy
+Alboin
+albolite
+albolith
+albopannin
+albopruinose
+alborada
+alborak
+Alboran
+alboranite
+Alborn
+Albrecht
+Albric
+albricias
+Albright
+Albrightsville
+albronze
+Albruna
+albs
+Albuca
+Albuginaceae
+albuginea
+albugineous
+albugines
+albuginitis
+albugo
+album
+albumean
+albumen
+albumeniizer
+albumenisation
+albumenise
+albumenised
+albumeniser
+albumenising
+albumenization
+albumenize
+albumenized
+albumenizer
+albumenizing
+albumenoid
+albumens
+albumimeter
+albumin
+albuminate
+albuminaturia
+albuminiferous
+albuminiform
+albuminimeter
+albuminimetry
+albuminiparous
+albuminise
+albuminised
+albuminising
+albuminization
+albuminize
+albuminized
+albuminizing
+albumino-
+albuminocholia
+albuminofibrin
+albuminogenous
+albuminoid
+albuminoidal
+albuminolysis
+albuminometer
+albuminometry
+albuminone
+albuminorrhea
+albuminoscope
+albuminose
+albuminosis
+albuminous
+albuminousness
+albumins
+albuminuria
+albuminuric
+albuminurophobia
+albumoid
+albumoscope
+albumose
+albumoses
+albumosuria
+albums
+Albuna
+Albunea
+Albuquerque
+albuquerque
+Albur
+Alburg
+Alburga
+alburn
+Alburnett
+alburnous
+alburnum
+alburnums
+Alburtis
+Albury
+albus
+albutannin
+Alby
+Albyn
+ALC
+alc
+Alca
+Alcaaba
+alcabala
+alcade
+alcades
+Alcae
+Alcaeus
+alcahest
+alcahests
+Alcaic
+alcaic
+alcaiceria
+Alcaics
+alcaics
+alcaid
+alcaide
+alcaides
+Alcaids
+Alcalde
+alcalde
+alcaldes
+alcaldeship
+alcaldia
+alcali
+Alcaligenes
+alcaligenes
+alcalizate
+Alcalzar
+alcamine
+Alcandre
+alcanna
+Alcantara
+alcantara
+Alcantarines
+alcapton
+alcaptonuria
+alcargen
+alcarraza
+Alcathous
+alcatras
+Alcatraz
+alcavala
+alcayde
+alcaydes
+alcazaba
+Alcazar
+alcazar
+alcazars
+alcazava
+alce
+Alcedines
+Alcedinidae
+Alcedininae
+Alcedo
+alcelaphine
+Alcelaphus
+Alces
+Alceste
+Alcester
+Alcestis
+alcestis
+alchem
+alchemic
+alchemical
+alchemically
+alchemies
+Alchemilla
+alchemise
+alchemised
+alchemising
+alchemist
+alchemister
+alchemistic
+alchemistical
+alchemistry
+alchemists
+alchemize
+alchemized
+alchemizing
+alchemy
+alchera
+alcheringa
+alchim-
+alchimy
+alchitran
+alchochoden
+Alchornea
+alchornea
+Alchuine
+alchym-
+alchymies
+alchymy
+Alcibiadean
+Alcibiades
+alcibiades
+Alcicornium
+alcid
+Alcidae
+Alcide
+Alcides
+Alcidice
+alcidine
+alcids
+Alcimede
+Alcimedes
+Alcimedon
+Alcina
+Alcine
+alcine
+Alcinia
+Alcinous
+Alcippe
+Alcis
+Alcithoe
+alclad
+Alcmaeon
+Alcman
+Alcmaon
+Alcmena
+Alcmene
+alcmene
+Alco
+alco
+Alcoa
+alcoate
+Alcock
+alcogel
+alcogene
+alcohate
+alcohol
+alcoholate
+alcoholature
+alcoholdom
+alcoholemia
+alcoholic
+alcoholically
+alcoholicity
+alcoholics
+alcoholimeter
+alcoholisation
+alcoholise
+alcoholised
+alcoholising
+alcoholism
+alcoholisms
+alcoholist
+alcoholizable
+alcoholization
+alcoholize
+alcoholized
+alcoholizing
+alcoholmeter
+alcoholmetric
+alcoholomania
+alcoholometer
+alcoholometric
+alcoholometrical
+alcoholometry
+alcoholophilia
+alcohols
+alcoholuria
+alcoholysis
+alcoholytic
+Alcolu
+Alcon
+alconde
+alco-ometer
+alco-ometric
+alco-ometrical
+alco-ometry
+alcoothionic
+Alcor
+Alcoran
+alcoran
+Alcoranic
+Alcoranist
+alcornoco
+alcornoque
+alcosol
+Alcot
+Alcotate
+Alcott
+Alcova
+alcove
+alcoved
+alcoves
+alcovinometer
+Alcuin
+Alcuinian
+alcumy
+Alcus
+alcyon
+Alcyonacea
+alcyonacean
+Alcyonaria
+alcyonarian
+Alcyone
+alcyone
+Alcyones
+Alcyoneus
+Alcyoniaceae
+alcyonic
+alcyoniform
+Alcyonium
+alcyonium
+alcyonoid
+Ald
+Ald.
+ald
+Alda
+Aldabra
+aldamin
+aldamine
+Aldan
+aldane
+Aldarcie
+Aldarcy
+Aldas
+alday
+aldazin
+aldazine
+aldea
+aldeament
+Aldebaran
+aldebaran
+aldebaranium
+Alded
+aldehol
+aldehydase
+aldehyde
+aldehydes
+aldehydic
+aldehydine
+aldehydrol
+aldeia
+Alden
+alden
+Aldenville
+Alder
+alder
+alder-
+Alderamin
+Aldercy
+alderflies
+alderfly
+alder-leaved
+alderliefest
+alderling
+Alderman
+alderman
+aldermanate
+aldermancy
+aldermaness
+aldermanic
+aldermanical
+aldermanity
+aldermanlike
+aldermanly
+aldermanries
+aldermanry
+aldermanship
+Aldermaston
+aldermen
+aldern
+Alderney
+alders
+Aldershot
+Alderson
+alderwoman
+alderwomen
+Aldhafara
+Aldhafera
+aldide
+Aldie
+aldim
+aldime
+aldimin
+aldimine
+Aldin
+Aldine
+aldine
+Aldington
+Aldis
+alditol
+Aldm
+aldm
+Aldo
+aldoheptose
+aldohexose
+aldoketene
+aldol
+aldolase
+aldolases
+aldolization
+aldolize
+aldolized
+aldolizing
+aldols
+Aldon
+aldononose
+aldopentose
+Aldora
+Aldos
+aldose
+aldoses
+aldoside
+aldosterone
+aldosteronism
+Aldous
+aldovandi
+aldoxime
+Aldred
+Aldredge
+Aldric
+Aldrich
+Aldridge
+Aldridge-Brownhills
+Aldrin
+aldrin
+aldrins
+Aldrovanda
+Alduino
+Aldus
+Aldwin
+Aldwon
+ale
+Alea
+aleak
+Aleardi
+aleatoric
+aleatory
+alebench
+aleberry
+Alebion
+ale-blown
+ale-born
+alebush
+Alec
+alec
+Alecia
+alecithal
+alecithic
+alecize
+Aleck
+aleconner
+alecost
+alecs
+Alecto
+Alectoria
+alectoria
+alectoriae
+Alectorides
+alectoridine
+alectorioid
+Alectoris
+alectoromachy
+alectoromancy
+Alectoromorphae
+alectoromorphous
+Alectoropodes
+alectoropodous
+Alectrion
+Alectrionidae
+alectryomachy
+alectryomancy
+Alectryon
+alectryon
+alecup
+Aleda
+Aledo
+alee
+Aleece
+Aleedis
+Aleen
+Aleetha
+alef
+ale-fed
+alefnull
+alefs
+aleft
+alefzero
+alegar
+alegars
+aleger
+Alegre
+Alegrete
+alehoof
+alehouse
+alehouses
+Aleichem
+aleikoum
+aleikum
+aleiptes
+aleiptic
+Aleixandre
+Alejandra
+Alejandrina
+Alejandro
+Alejo
+Alejoa
+Alek
+Alekhine
+Aleknagik
+aleknight
+Aleksandr
+Aleksandropol
+Aleksandrov
+Aleksandrovac
+Aleksandrovsk
+Alekseyevska
+Aleksin
+Alem
+alem
+Aleman
+alemana
+Alemanni
+Alemannian
+Alemannic
+alemannic
+Alemannish
+Alembert
+alembic
+alembicate
+alembicated
+alembics
+alembroth
+Alemite
+alemite
+alemmal
+alemonger
+alen
+Alena
+Alencon
+alencon
+alencons
+Alene
+alenge
+alength
+Alenson
+Alentejo
+alentours
+alenu
+Aleochara
+Alep
+aleph
+aleph-null
+alephs
+aleph-zero
+alephzero
+alepidote
+alepine
+alepole
+alepot
+Aleppine
+Aleppo
+Aleras
+alerce
+alerion
+Aleris
+Aleron
+alerse
+alert
+alerta
+alerted
+alertedly
+alerter
+alerters
+alertest
+alerting
+alertly
+alertness
+alertnesses
+alerts
+-ales
+Ales
+ales
+alesan
+Alesandrini
+aleshot
+Alesia
+Alessandra
+Alessandri
+Alessandria
+Alessandro
+alestake
+ale-swilling
+Aleta
+aletap
+aletaster
+Aletes
+Aletha
+Alethea
+Alethia
+alethic
+alethiologic
+alethiological
+alethiologist
+alethiology
+alethopteis
+alethopteroid
+alethoscope
+aletocyte
+Aletris
+Aletta
+Alette
+alette
+aleucaemic
+aleucemic
+aleukaemic
+aleukemic
+Aleurites
+aleuritic
+Aleurobius
+Aleurodes
+Aleurodidae
+aleuromancy
+aleurometer
+aleuron
+aleuronat
+aleurone
+aleurones
+aleuronic
+aleurons
+aleuroscope
+Aleus
+Aleut
+aleut
+Aleutian
+aleutian
+Aleutians
+aleutians
+Aleutic
+aleutite
+alevin
+alevins
+Alevitsa
+alew
+ale-washed
+alewhap
+ale-wife
+alewife
+alewives
+Alex
+Alexa
+Alexander
+alexander
+alexanders
+Alexanderson
+Alexandr
+Alexandra
+Alexandre
+Alexandreid
+Alexandretta
+Alexandria
+alexandria
+Alexandrian
+alexandrian
+Alexandrianism
+Alexandrina
+Alexandrine
+alexandrine
+alexandrines
+Alexandrinus
+alexandrite
+Alexandro
+Alexandropolis
+Alexandros
+Alexandroupolis
+Alexas
+Alexei
+Alexi
+Alexia
+alexia
+Alexian
+Alexiares
+alexias
+alexic
+Alexicacus
+alexin
+Alexina
+Alexine
+alexine
+alexines
+alexinic
+alexins
+Alexio
+alexipharmacon
+alexipharmacum
+alexipharmic
+alexipharmical
+alexipyretic
+ALEXIS
+Alexis
+Alexishafen
+alexiteric
+alexiterical
+Alexius
+Aley
+aleyard
+Aleydis
+Aleyrodes
+aleyrodid
+Aleyrodidae
+alezan
+Alf
+alf
+ALFA
+alfa
+Alfadir
+alfaje
+alfaki
+alfakis
+alfalfa
+alfalfas
+alfaqui
+alfaquin
+alfaquins
+alfaquis
+Alfarabius
+alfarga
+alfas
+ALFE
+Alfedena
+alfenide
+Alfeo
+alferes
+alferez
+alfet
+Alfeus
+Alfheim
+Alfi
+Alfie
+Alfieri
+alfilaria
+alfileria
+alfilerilla
+alfilerillo
+alfin
+alfiona
+alfione
+Alfirk
+alfoncino
+Alfons
+Alfonse
+alfonsin
+Alfonso
+alfonso
+Alfonson
+Alfonzo
+Alford
+alforge
+alforja
+alforjas
+Alfraganus
+Alfred
+alfred
+Alfreda
+Alfredo
+alfresco
+Alfric
+alfridaric
+alfridary
+Alfur
+Alfurese
+Alfuro
+al-Fustat
+Alfy
+Alg
+Alg.
+alg
+alg-
+alg.
+alga
+algae
+algaecide
+algaeological
+algaeologist
+algaeology
+algaesthesia
+algaesthesis
+algal
+algal-algal
+Algalene
+algalia
+Algar
+algarad
+algarde
+algaroba
+algarobas
+algarot
+Algaroth
+algarroba
+algarrobilla
+algarrobin
+Algarsife
+Algarsyf
+Algarve
+algas
+algate
+algates
+Al-Gazel
+algazel
+Algebar
+algebra
+algebraic
+algebraical
+algebraically
+algebraist
+algebraists
+algebraization
+algebraize
+algebraized
+algebraizing
+algebras
+algebrization
+Algeciras
+Algedi
+algedo
+algedonic
+algedonics
+algefacient
+Algenib
+Alger
+Algeria
+algeria
+Algerian
+algerian
+algerians
+algerienne
+Algerine
+algerine
+algerines
+algerita
+algerite
+Algernon
+algesia
+algesic
+algesimeter
+algesiometer
+algesireceptor
+algesis
+algesthesis
+algetic
+Alghero
+-algia
+Algic
+algic
+algicidal
+algicide
+algicides
+algid
+algidities
+algidity
+algidness
+Algie
+Algieba
+Algiers
+algiers
+algific
+algin
+alginate
+alginates
+algine
+alginic
+algins
+alginuresis
+algiomuscular
+algist
+algivorous
+algo-
+algocyan
+algodon
+algodoncillo
+algodonite
+algoesthesiometer
+algogenic
+algoid
+ALGOL
+Algol
+algol
+algolagnia
+algolagnic
+algolagnist
+algolagny
+algological
+algologically
+algologies
+algologist
+algology
+Algoma
+Algoman
+algometer
+algometric
+algometrical
+algometrically
+algometry
+Algomian
+Algomic
+Algona
+Algonac
+Algonkian
+algonkian
+Algonkin
+Algonkins
+Algonquian
+algonquian
+Algonquians
+algonquians
+Algonquin
+algonquin
+Algonquins
+algonquins
+algophagous
+algophilia
+algophilist
+algophobia
+algor
+Algorab
+Algores
+algorism
+algorismic
+algorisms
+algorist
+algoristic
+algorithm
+algorithmic
+algorithmically
+algorithms
+algors
+algosis
+algous
+algovite
+algraphic
+algraphy
+Algren
+alguacil
+alguazil
+alguifou
+Alguire
+algum
+algums
+Algy
+alhacena
+Alhagi
+alhagi
+Alhambra
+alhambra
+Alhambraic
+Alhambresque
+alhambresque
+alhandal
+Alhazen
+Alhena
+alhenna
+alhet
+ALI
+Ali
+ali-
+Alia
+alia
+Aliacensis
+aliamenta
+alias
+aliased
+aliases
+aliasing
+Alibamu
+alibangbang
+Aliber
+alibi
+alibied
+alibies
+alibiing
+alibility
+alibis
+alible
+Alic
+Alica
+Alicant
+alicant
+Alicante
+Alice
+alice
+Alicea
+Alice-in-Wonderland
+Aliceville
+alichel
+Alichino
+Alicia
+Alick
+alicoche
+alictisal
+alicula
+aliculae
+alicyclic
+Alida
+alidad
+alidada
+alidade
+alidades
+alidads
+Alidia
+Alidis
+Alids
+Alidus
+Alie
+Alief
+alien
+alienabilities
+alienability
+alienable
+alienage
+alienages
+alienate
+alienated
+alienates
+alienating
+alienation
+alienations
+alienator
+aliency
+aliene
+aliened
+alienee
+alienees
+aliener
+alieners
+alienicola
+alienicolae
+alienigenate
+aliening
+alienism
+alienisms
+alienist
+alienists
+alienize
+alienly
+alienness
+alienor
+alienors
+aliens
+alienship
+aliesterase
+aliet
+aliethmoid
+aliethmoidal
+alif
+Alifanfaron
+alife
+aliferous
+aliform
+alifs
+Aligarh
+aligerous
+alight
+alighted
+alighten
+alighting
+alightment
+alights
+align
+aligned
+aligner
+aligners
+aligning
+alignment
+alignments
+aligns
+aligreek
+alii
+aliipoe
+Alika
+alike
+Alikee
+alikeness
+alikewise
+Alikuluf
+Alikulufan
+alilonghi
+alima
+alimenation
+aliment
+alimental
+alimentally
+alimentariness
+alimentary
+alimentation
+alimentative
+alimentatively
+alimentativeness
+alimented
+alimenter
+alimentic
+alimenting
+alimentive
+alimentiveness
+alimentotherapy
+aliments
+alimentum
+alimonied
+alimonies
+alimony
+alin
+Alina
+alinasal
+A-line
+Aline
+aline
+alineation
+alined
+alinement
+aliner
+aliners
+alines
+alingual
+alining
+alinit
+Alinna
+alinota
+alinotum
+alintatao
+aliofar
+Alioth
+alioth
+alipata
+aliped
+alipeds
+aliphatic
+alipin
+aliptae
+alipteria
+alipterion
+aliptes
+aliptic
+aliptteria
+aliquant
+aliquid
+Aliquippa
+aliquot
+aliquots
+Alis
+Alisa
+Alisan
+Alisander
+alisanders
+Alisen
+aliseptal
+alish
+Alisha
+Alisia
+alisier
+Al-Iskandariyah
+Alisma
+alisma
+Alismaceae
+alismaceous
+alismad
+alismal
+Alismales
+Alismataceae
+alismoid
+aliso
+Alison
+alison
+alisonite
+alisos
+alisp
+alispheno
+alisphenoid
+alisphenoidal
+Alissa
+alist
+Alistair
+Alister
+Alisun
+ALIT
+alit
+Alita
+Alitalia
+alite
+aliter
+Alitha
+Alithea
+Alithia
+alitrunk
+Alitta
+aliturgic
+aliturgical
+ality
+aliunde
+Alius
+alive
+aliveness
+alives
+alivincular
+Alix
+aliya
+aliyah
+aliyahaliyahs
+aliyahs
+aliyas
+aliyos
+aliyot
+aliyoth
+Aliza
+alizarate
+alizari
+alizarin
+alizarine
+alizarins
+aljama
+aljamado
+aljamia
+aljamiado
+aljamiah
+aljoba
+aljofaina
+alk
+alk.
+Alkabo
+alkahest
+alkahestic
+alkahestica
+alkahestical
+alkahests
+Alkaid
+alkalamide
+alkalemia
+alkalescence
+alkalescency
+alkalescent
+alkali
+alkalic
+alkalies
+alkaliferous
+alkalifiable
+alkalified
+alkalifies
+alkalify
+alkalifying
+alkaligen
+alkaligenous
+alkalimeter
+alkalimetric
+alkalimetrical
+alkalimetrically
+alkalimetry
+alkalin
+alkaline
+alkalinisation
+alkalinise
+alkalinised
+alkalinising
+alkalinities
+alkalinity
+alkalinization
+alkalinize
+alkalinized
+alkalinizes
+alkalinizing
+alkalinuria
+alkalis
+alkalisable
+alkalisation
+alkalise
+alkalised
+alkaliser
+alkalises
+alkalising
+alkalizable
+alkalizate
+alkalization
+alkalize
+alkalized
+alkalizer
+alkalizes
+alkalizing
+alkaloid
+alkaloidal
+alkaloids
+alkalometry
+alkalosis
+alkalous
+Alkalurops
+alkamin
+alkamine
+alkanal
+alkane
+alkanes
+alkanet
+alkanethiol
+alkanets
+Alkanna
+alkanna
+alkannin
+alkanol
+Alkaphrah
+alkapton
+alkaptone
+alkaptonuria
+alkaptonuric
+alkargen
+alkarsin
+alkarsine
+Alka-Seltzer
+alkatively
+alkedavy
+alkekengi
+alkene
+alkenes
+alkenna
+alkenyl
+alkermes
+Alkes
+Alkhimovo
+alkide
+alkies
+alkin
+alkine
+alkines
+alkitran
+Alkmaar
+Alkol
+alkool
+Alkoran
+Alkoranic
+alkoxid
+alkoxide
+alkoxy
+alkoxyl
+alky
+alkyd
+alkyds
+alkyl
+alkylamine
+alkylamino
+alkylarylsulfonate
+alkylate
+alkylated
+alkylates
+alkylating
+alkylation
+alkylbenzenesulfonate
+alkylbenzenesulfonates
+alkylene
+alkylic
+alkylidene
+alkylize
+alkylogen
+alkylol
+alkyloxy
+alkyls
+alkyne
+alkynes
+all
+all-
+Alla
+all-abhorred
+all-able
+all-absorbing
+allabuta
+all-accomplished
+allachesthesia
+all-acting
+allactite
+all-admired
+all-admiring
+all-advised
+allaeanthus
+all-affecting
+all-afflicting
+all-aged
+allagite
+allagophyllous
+allagostemonous
+Allah
+allah
+Allahabad
+Allain
+all-air
+allalinite
+Allamanda
+all-amazed
+All-american
+all-American
+all-american
+allamonti
+all-a-mort
+allamoth
+allamotti
+Allamuchy
+Allan
+allan
+Allana
+Allan-a-Dale
+allanite
+allanites
+allanitic
+Allanson
+allantiasis
+all'antica
+allantochorion
+allantoic
+allantoid
+allantoidal
+Allantoidea
+allantoidean
+allantoides
+allantoidian
+allantoin
+allantoinase
+allantoinuria
+allantois
+allantoxaidin
+allanturic
+all-appaled
+all-appointing
+all-approved
+all-approving
+Allard
+Allardt
+Allare
+allargando
+all-armed
+all-around
+all-arraigning
+all-arranging
+Allasch
+all-assistless
+allassotonic
+al-Lat
+allative
+all-atoning
+allatrate
+all-attempting
+all-availing
+allay
+allayed
+allayer
+allayers
+allaying
+allayment
+Allayne
+allays
+all-bearing
+all-beauteous
+all-beautiful
+Allbee
+all-beholding
+all-bestowing
+all-binding
+all-bitter
+all-black
+all-blasting
+all-blessing
+allbone
+all-bounteous
+all-bountiful
+all-bright
+all-brilliant
+All-british
+All-caucasian
+all-changing
+all-cheering
+all-collected
+all-colored
+all-comfortless
+all-commander
+all-commanding
+all-compelling
+all-complying
+all-composing
+all-comprehending
+all-comprehensive
+all-comprehensiveness
+all-concealing
+all-conceiving
+all-concerning
+all-confounding
+all-conquering
+all-conscious
+all-considering
+all-constant
+all-constraining
+all-consuming
+all-content
+all-controlling
+all-convincing
+all-convincingly
+Allcot
+all-covering
+all-creating
+all-creator
+all-curing
+all-daring
+all-day
+all-dazzling
+all-deciding
+all-defiance
+all-defying
+all-depending
+all-designing
+all-desired
+all-despising
+all-destroyer
+all-destroying
+all-devastating
+all-devouring
+all-dimming
+all-directing
+all-discerning
+all-discovering
+all-disgraced
+all-dispensing
+all-disposer
+all-disposing
+all-divine
+all-divining
+all-dreaded
+all-dreadful
+all-drowsy
+Alle
+all-earnest
+all-eating
+allecret
+allect
+allectory
+Alledonia
+Alleen
+Alleene
+all-efficacious
+all-efficient
+Allegan
+Allegany
+allegata
+allegate
+allegation
+allegations
+allegator
+allegatum
+allege
+allegeable
+alleged
+allegedly
+allegement
+alleger
+allegers
+alleges
+Alleghanian
+Alleghany
+Alleghenian
+Alleghenies
+Allegheny
+allegheny
+allegiance
+allegiances
+allegiancy
+allegiant
+allegiantly
+allegiare
+alleging
+allegoric
+allegorical
+allegorically
+allegoricalness
+allegories
+allegorisation
+allegorise
+allegorised
+allegoriser
+allegorising
+allegorism
+allegorist
+allegorister
+allegoristic
+allegorists
+allegorization
+allegorize
+allegorized
+allegorizer
+allegorizing
+allegory
+Allegra
+Allegre
+allegresse
+allegretto
+allegrettos
+allegro
+allegros
+allele
+alleles
+alleleu
+allelic
+allelism
+allelisms
+allelocatalytic
+allelomorph
+allelomorphic
+allelomorphism
+allelopathy
+all-eloquent
+allelotropic
+allelotropism
+allelotropy
+Alleluia
+alleluia
+alleluiah
+alleluias
+alleluiatic
+alleluja
+allelvia
+Alleman
+allemand
+allemande
+allemandes
+allemands
+all-embracing
+all-embracingness
+allemontite
+Allen
+allen
+allenarly
+Allenby
+all-encompasser
+all-encompassing
+Allendale
+Allende
+all-ending
+Allendorf
+all-enduring
+Allene
+allene
+all-engrossing
+all-engulfing
+Allenhurst
+alleniate
+all-enlightened
+all-enlightening
+Allenport
+all-enraged
+Allensville
+allentando
+allentato
+Allentiac
+Allentiacan
+Allenton
+Allentown
+all-envied
+Allenwood
+Alleppey
+aller
+Alleras
+allergen
+allergenic
+allergenicity
+allergens
+allergia
+allergic
+allergies
+allergin
+allergins
+allergist
+allergists
+allergology
+allergy
+Allerie
+allerion
+Alleris
+aller-retour
+Allerton
+Allerus
+all-essential
+allesthesia
+allethrin
+alleve
+alleviant
+alleviate
+alleviated
+alleviater
+alleviaters
+alleviates
+alleviating
+alleviatingly
+alleviation
+alleviations
+alleviative
+alleviator
+alleviators
+alleviatory
+all-evil
+all-excellent
+all-expense
+all-expenses-paid
+Alley
+alley
+all-eyed
+alleyed
+alleyite
+Alleyn
+Alleyne
+alley-oop
+alleys
+alleyway
+alleyways
+allez
+allez-vous-en
+all-fair
+All-father
+All-fatherhood
+All-fatherly
+all-filling
+all-fired
+all-firedest
+all-firedly
+all-flaming
+all-flotation
+all-flower-water
+all-foreseeing
+all-forgetful
+all-forgetting
+all-forgiving
+all-forgotten
+all-fullness
+all-gas
+all-giver
+all-glorious
+all-golden
+Allgood
+allgood
+all-governing
+allgovite
+all-gracious
+all-grasping
+all-great
+all-guiding
+Allhallow
+all-hallow
+all-hallowed
+Allhallowmas
+Allhallows
+allhallows
+Allhallowtide
+all-happy
+allheal
+all-healing
+allheals
+all-hearing
+all-heeding
+all-helping
+all-hiding
+all-holy
+all-honored
+all-hoping
+all-hurting
+Alli
+alliable
+alliably
+Alliaceae
+alliaceous
+alliage
+Alliance
+alliance
+allianced
+alliancer
+alliances
+alliancing
+Allianora
+alliant
+Alliaria
+Alliber
+allicampane
+allice
+allicholly
+alliciency
+allicient
+allicin
+allicins
+allicit
+all-idolizing
+Allie
+Allied
+allied
+Allier
+Allies
+allies
+alligate
+alligated
+alligating
+alligation
+alligations
+alligator
+alligatored
+alligatorfish
+alligatorfishes
+alligatoring
+alligators
+all-illuminating
+all-imitating
+all-important
+all-impressive
+Allin
+all-in
+Allina
+all-including
+all-inclusive
+all-inclusiveness
+All-india
+allineate
+allineation
+all-infolding
+all-informing
+all-in-one
+all-interesting
+all-interpreting
+all-invading
+all-involving
+Allionia
+Allioniaceae
+Allis
+allis
+Allisan
+allision
+Allison
+Allissa
+Allista
+Allister
+Allistir
+all'italiana
+alliteral
+alliterate
+alliterated
+alliterates
+alliterating
+alliteration
+alliterational
+alliterationist
+alliterations
+alliterative
+alliteratively
+alliterativeness
+alliterator
+allituric
+Allium
+allium
+alliums
+allivalite
+Allix
+all-jarred
+all-judging
+all-just
+all-justifying
+all-kind
+all-knavish
+all-knowing
+all-knowingness
+all-land
+all-lavish
+all-licensed
+all-lovely
+all-loving
+all-maintaining
+all-maker
+all-making
+all-maturing
+all-meaningness
+all-merciful
+all-metal
+all-might
+all-miscreative
+Allmon
+allmouth
+allmouths
+all-murdering
+allness
+all-night
+all-noble
+all-nourishing
+allo
+allo-
+Alloa
+alloantibody
+allobar
+allobaric
+allobars
+all-obedient
+all-obeying
+all-oblivious
+Allobroges
+allobrogical
+all-obscuring
+allocability
+allocable
+allocaffeine
+allocatable
+allocate
+allocated
+allocatee
+allocates
+allocating
+allocation
+allocations
+allocator
+allocators
+allocatur
+allocheiria
+allochetia
+allochetite
+allochezia
+allochiral
+allochirally
+allochiria
+allochlorophyll
+allochroic
+allochroite
+allochromatic
+allochroous
+allochthon
+allochthonous
+allocinnamic
+Allock
+alloclase
+alloclasite
+allocochick
+allocrotonic
+allocryptic
+allocthonous
+allocute
+allocution
+allocutive
+allocyanine
+allod
+allodelphite
+allodesmism
+allodge
+allodia
+allodial
+allodialism
+allodialist
+allodiality
+allodially
+allodian
+allodiaries
+allodiary
+allodies
+allodification
+allodium
+allods
+allody
+alloeosis
+alloeostropha
+alloeotic
+alloerotic
+alloerotism
+allogamies
+allogamous
+allogamy
+allogene
+allogeneic
+allogeneity
+allogeneous
+allogenic
+allogenically
+allograft
+allograph
+allographic
+all-oil
+alloimmune
+alloiogenesis
+alloiometric
+alloiometry
+alloisomer
+alloisomeric
+alloisomerism
+allokinesis
+allokinetic
+allokurtic
+allolalia
+allolalic
+allomerism
+allomerization
+allomerize
+allomerized
+allomerizing
+allomerous
+allometric
+allometry
+allomorph
+allomorphic
+allomorphism
+allomorphite
+allomucic
+allonge
+allonges
+allonomous
+Allons
+allonym
+allonymous
+allonymously
+allonyms
+alloo
+allo-octaploid
+allopalladium
+allopath
+allopathetic
+allopathetically
+allopathic
+allopathically
+allopathies
+allopathist
+allopaths
+allopathy
+allopatric
+allopatrically
+allopatry
+allopelagic
+allophanamid
+allophanamide
+allophanate
+allophanates
+allophane
+allophanic
+allophite
+allophone
+allophones
+allophonic
+allophonically
+allophore
+allophyle
+allophylian
+allophylic
+Allophylus
+allophytoid
+alloplasm
+alloplasmatic
+alloplasmic
+alloplast
+alloplastic
+alloplasty
+alloploidy
+allopolyploid
+allopolyploidy
+allopsychic
+allopurinol
+alloquial
+alloquialism
+alloquy
+all-ordering
+allorhythmia
+all-or-none
+allorrhyhmia
+allorrhythmic
+allosaur
+Allosaurus
+allose
+allosematic
+allosome
+allosteric
+allosterically
+allosyndesis
+allosyndetic
+allot
+alloted
+allotee
+allotelluric
+allotheism
+allotheist
+allotheistic
+Allotheria
+allothigene
+allothigenetic
+allothigenetically
+allothigenic
+allothigenous
+allothimorph
+allothimorphic
+allothogenic
+allothogenous
+allotment
+allotments
+allotransplant
+allotransplantation
+allotriodontia
+Allotriognathi
+allotriomorphic
+allotriophagia
+allotriophagy
+allotriuria
+allotrope
+allotropes
+allotrophic
+allotropic
+allotropical
+allotropically
+allotropicity
+allotropies
+allotropism
+allotropize
+allotropous
+allotropy
+allotrylic
+allots
+allottable
+all'ottava
+allotted
+allottee
+allottees
+allotter
+allotters
+allottery
+allotting
+allotype
+allotypes
+allotypic
+allotypical
+allotypically
+allotypies
+allotypy
+Allouez
+all-out
+all-over
+allover
+all-overish
+all-overishness
+all-overpowering
+all-overs
+allovers
+all-overtopping
+allow
+allowable
+allowableness
+allowably
+allowance
+allowanced
+allowances
+allowancing
+Alloway
+allowed
+allowedly
+allower
+allowing
+allows
+alloxan
+alloxanate
+alloxanic
+alloxans
+alloxantin
+alloxuraemia
+alloxuremia
+alloxuric
+alloxy
+alloxyproteic
+alloy
+alloyage
+alloyed
+alloying
+alloys
+allozooid
+all-panting
+all-parent
+all-pass
+all-patient
+all-peaceful
+all-penetrating
+all-peopled
+all-perceptive
+all-perfect
+all-perfection
+all-perfectness
+all-perficient
+all-persuasive
+all-pervading
+all-pervadingness
+all-pervasive
+all-pervasiveness
+all-piercing
+all-pitiless
+all-pitying
+all-pondering
+Allport
+all-possessed
+all-potency
+all-potent
+all-potential
+all-power
+all-powerful
+all-powerfully
+all-powerfulness
+all-praised
+all-praiseworthy
+all-presence
+all-present
+all-prevailing
+all-prevailingness
+all-prevalency
+all-prevalent
+all-preventing
+all-prolific
+all-protecting
+all-provident
+all-providing
+all-puissant
+all-pure
+all-purpose
+all-quickening
+all-rail
+all-rapacious
+all-reaching
+Allred
+all-red
+all-redeeming
+all-relieving
+all-rending
+all-righteous
+all-round
+allround
+all-roundedness
+all-rounder
+all-rubber
+Allrud
+all-ruling
+All-russia
+All-russian
+alls
+all-sacred
+all-sanctifying
+all-satiating
+all-satisfying
+all-saving
+all-sayer
+all-sea
+all-searching
+allseed
+allseeds
+all-seeing
+all-seeingly
+all-seeingness
+all-seer
+all-shaking
+all-shamed
+all-shaped
+all-shrouding
+all-shunned
+all-sided
+all-silent
+all-sized
+all-sliming
+all-soothing
+Allsopp
+all-sorts
+all-soul
+All-southern
+allspice
+allspices
+all-spreading
+all-star
+all-stars
+Allstate
+all-steel
+Allston
+all-strangling
+all-subduing
+all-submissive
+all-substantial
+all-sufficiency
+all-sufficient
+all-sufficiently
+all-sufficing
+Allsun
+all-surpassing
+all-surrounding
+all-surveying
+all-sustainer
+all-sustaining
+all-swallowing
+all-swaying
+all-telling
+all-terrible
+allthing
+allthorn
+all-thorny
+all-time
+all-tolerating
+all-transcending
+all-triumphing
+all-truth
+alltud
+all-turned
+all-turning
+allude
+alluded
+alludes
+alluding
+allumette
+allumine
+alluminor
+all-understanding
+all-unwilling
+all-upholder
+all-upholding
+allurance
+allure
+allured
+allurement
+allurements
+allurer
+allurers
+allures
+alluring
+alluringly
+alluringness
+allusion
+allusions
+allusive
+allusively
+allusiveness
+allusivenesses
+allusory
+allutterly
+alluvia
+alluvial
+alluvials
+alluviate
+alluviation
+alluvio
+alluvion
+alluvions
+alluvious
+alluvium
+alluviums
+alluvivia
+alluviviums
+Allvar
+all-various
+all-vast
+Allveta
+all-watched
+all-water
+all-weak
+all-weather
+all-weight
+Allwein
+allwhere
+allwhither
+all-whole
+all-wisdom
+all-wise
+all-wisely
+all-wiseness
+all-wondrous
+all-wood
+all-wool
+allwork
+all-working
+all-worshiped
+Allworthy
+all-worthy
+all-wrongness
+Allx
+-ally
+Ally
+ally
+Allyce
+all-year
+allyic
+allying
+allyl
+allylamine
+allylate
+allylation
+allylene
+allylic
+allyls
+allylthiourea
+Allyn
+Allyne
+allyou
+Allys
+Allyson
+ALM
+Alma
+alma
+Alma-Ata
+almacantar
+almacen
+almacenista
+Almach
+almaciga
+almacigo
+Almad
+Almada
+Almaden
+almadia
+almadie
+Almagest
+almagest
+almagests
+almagra
+almah
+almahs
+Almain
+almain
+almaine
+almain-rivets
+Almallah
+alma-materism
+al-Mamoun
+Alman
+almanac
+almanacs
+almander
+almandine
+almandines
+almandite
+almanner
+Almanon
+almas
+Alma-Tadema
+alme
+Almeda
+Almeeta
+almeh
+almehs
+Almeida
+almeidina
+Almelo
+almemar
+almemars
+almemor
+Almena
+almendro
+almendron
+Almera
+Almeria
+Almerian
+Almeric
+almeries
+almeriite
+almery
+almes
+Almeta
+almice
+almicore
+Almida
+almight
+almightily
+almightiness
+Almighty
+almighty
+almique
+Almira
+almirah
+Almire
+almistry
+Almita
+almner
+almners
+Almo
+almochoden
+almocrebe
+almogavar
+Almohad
+almohad
+Almohade
+Almohades
+almoign
+almoin
+Almon
+almon
+almonage
+Almond
+almond
+almond-eyed
+almond-furnace
+almond-leaved
+almondlike
+almonds
+almond-shaped
+almondy
+almoner
+almoners
+almonership
+almoning
+almonries
+almonry
+Almont
+Almoravid
+Almoravide
+Almoravides
+almose
+almost
+almous
+alms
+alms-dealing
+almsdeed
+alms-fed
+almsfolk
+almsful
+almsgiver
+almsgiving
+alms-house
+almshouse
+almshouses
+almsman
+almsmen
+almsmoney
+almswoman
+almswomen
+almucantar
+almuce
+almuces
+almud
+almude
+almudes
+almuds
+almuerzo
+almug
+almugs
+Almund
+Almuredin
+almury
+almuten
+Almyra
+aln
+Alna
+alnage
+alnager
+alnagership
+Alnaschar
+Alnascharism
+alnath
+alnein
+Alnico
+alnico
+alnicoes
+Alnilam
+alniresinol
+Alnitak
+Alnitham
+alniviridol
+alnoite
+alnuin
+Alnus
+alnus
+Alo
+alo
+Aloadae
+Alocasia
+alocasia
+alochia
+alod
+aloddia
+Alodee
+Alodi
+alodia
+alodial
+alodialism
+alodialist
+alodiality
+alodially
+alodialty
+alodian
+alodiaries
+alodiary
+Alodie
+alodies
+alodification
+alodium
+alody
+aloe
+aloed
+aloedary
+aloe-emodin
+aloelike
+aloemodin
+aloeroot
+aloes
+aloesol
+aloeswood
+aloetic
+aloetical
+Aloeus
+aloewood
+aloft
+Alogi
+alogia
+Alogian
+alogian
+alogical
+alogically
+alogism
+alogotrophy
+alogy
+Aloha
+aloha
+alohas
+aloid
+Aloidae
+Aloin
+aloin
+aloins
+Alois
+Aloise
+Aloisia
+aloisiite
+Aloisius
+Aloke
+aloma
+alomancy
+Alon
+alone
+alonely
+aloneness
+along
+alongships
+alongshore
+alongshoreman
+alongside
+alongst
+Alonso
+Alonsoa
+Alonzo
+aloof
+aloofe
+aloofly
+aloofness
+aloose
+alop
+alopathic
+Alope
+alopecia
+Alopecias
+alopecias
+alopecic
+alopecist
+alopecoid
+Alopecurus
+Alopecus
+alopekai
+alopeke
+alophas
+Alopias
+Alopiidae
+alorcinic
+Alorton
+Alosa
+alose
+Alost
+Alouatta
+alouatte
+aloud
+Alouette
+alouette
+alouettes
+alout
+alow
+alowe
+Aloxe-Corton
+Aloxite
+aloyau
+Aloys
+Aloysia
+aloysia
+Aloysius
+A.L.P.
+ALP
+alp
+alpaca
+alpacas
+alpargata
+alpasotes
+Alpaugh
+Alpax
+alpax
+alpeen
+Alpen
+alpen
+Alpena
+alpenglow
+alpenhorn
+alpenhorns
+alpenstock
+alpenstocker
+alpenstocks
+Alper
+Alpers
+Alpert
+Alpes-de-Haute-Provence
+Alpes-Maritimes
+alpestral
+alpestrian
+alpestrine
+Alpetragius
+Alpha
+alpha
+alpha-amylase
+alphabet
+alphabetarian
+alphabetary
+alphabeted
+alphabetic
+alphabetical
+alphabetically
+alphabetics
+alphabetiform
+alphabeting
+alphabetisation
+alphabetise
+alphabetised
+alphabetiser
+alphabetising
+alphabetism
+alphabetist
+alphabetization
+alphabetize
+alphabetized
+alphabetizer
+alphabetizers
+alphabetizes
+alphabetizing
+alphabetology
+alphabets
+alpha-cellulose
+Alphaea
+alpha-eucaine
+alpha-hypophamine
+alphameric
+alphamerical
+alphamerically
+alpha-naphthol
+alpha-naphthylamine
+alpha-naphthylthiourea
+alphanumeric
+alphanumerical
+alphanumerically
+alphanumerics
+Alphard
+Alpharetta
+alphas
+alpha-tocopherol
+alphatoluic
+alpha-truxilline
+Alphatype
+Alphean
+Alphecca
+alphenic
+Alpheratz
+Alphesiboea
+Alpheus
+alpheus
+alphin
+alphitomancy
+alphitomorphous
+alphol
+Alphonist
+Alphons
+Alphonsa
+Alphonse
+alphonsin
+Alphonsine
+alphonsine
+Alphonsism
+Alphonso
+Alphonsus
+alphorn
+alphorns
+alphos
+alphosis
+alphosises
+alphyl
+alphyls
+alphyn
+Alpian
+Alpid
+alpieu
+alpigene
+Alpine
+alpine
+alpinely
+alpinery
+alpines
+alpinesque
+Alpinia
+alpinia
+Alpiniaceae
+Alpinism
+alpinism
+alpinisms
+Alpinist
+alpinist
+alpinists
+alpist
+alpiste
+ALPO
+Alpoca
+Alps
+alps
+Alpujarra
+alqueire
+alquier
+alquifou
+alraun
+alreadiness
+already
+Alric
+Alrich
+Alrick
+alright
+alrighty
+Alroi
+alroot
+Alroy
+ALRU
+alruna
+alrune
+AlrZc
+ALS
+als
+Alsace
+Alsace-Lorraine
+Alsace-lorrainer
+al-Sahih
+Alsatia
+alsatia
+Alsatian
+alsatian
+alsbachite
+Alsea
+Alsen
+Alsey
+Alshain
+alsifilm
+alsike
+alsikes
+Alsinaceae
+alsinaceous
+Alsine
+Alsip
+alsmekill
+Also
+also
+Alson
+alsoon
+Alsop
+Alsophila
+also-ran
+Alstead
+Alston
+Alstonia
+alstonidine
+alstonine
+alstonite
+Alstroemeria
+alsweill
+alswith
+Alsworth
+alt
+alt.
+Alta
+Alta.
+Altadena
+Altaf
+Altai
+Altaian
+altaian
+Altaic
+altaic
+Altaid
+Altair
+altair
+altaite
+Altaloma
+altaltissimo
+Altamahaw
+Altamira
+Altamont
+altar
+altarage
+altared
+altarist
+altarlet
+altarpiece
+altarpieces
+altars
+altarwise
+Altavista
+Altay
+altazimuth
+Altdorf
+Altdorfer
+Alten
+Altenburg
+alter
+alterability
+alterable
+alterableness
+alterably
+alterant
+alterants
+alterate
+alteration
+alterations
+alterative
+alteratively
+altercate
+altercated
+altercating
+altercation
+altercations
+altercative
+altered
+alteregoism
+alteregoistic
+alterer
+alterers
+altering
+alterity
+alterius
+alterman
+altern
+alternacy
+alternamente
+alternance
+alternant
+Alternanthera
+Alternaria
+alternariose
+alternat
+alternate
+alternated
+alternate-leaved
+alternately
+alternateness
+alternater
+alternates
+alternating
+alternatingly
+alternation
+alternationist
+alternations
+alternative
+alternatively
+alternativeness
+alternatives
+alternativity
+alternativo
+alternator
+alternators
+alterne
+alterni-
+alternifoliate
+alternipetalous
+alternipinnate
+alternisepalous
+alternity
+alternize
+alterocentric
+alters
+alterum
+Altes
+altesse
+alteza
+altezza
+Altgeld
+Altha
+Althaea
+althaea
+althaeas
+althaein
+Althaemenes
+Althea
+althea
+altheas
+Althee
+Altheimer
+althein
+altheine
+Altheta
+Althing
+althing
+althionic
+altho
+althorn
+althorns
+although
+alti-
+Altica
+Alticamelus
+altify
+altigraph
+altilik
+altiloquence
+altiloquent
+altimeter
+altimeters
+altimetrical
+altimetrically
+altimetry
+altimettrically
+altin
+altincar
+Altingiaceae
+altingiaceous
+altininck
+altiplanicie
+Altiplano
+altiplano
+alti-rilievi
+Altis
+altiscope
+altisonant
+altisonous
+altissimo
+altitonant
+altitude
+altitudes
+altitudinal
+altitudinarian
+altitudinous
+Altman
+Altmar
+alto
+alto-
+alto-cumulus
+altocumulus
+alto-cumulus-castellatus
+altogether
+altogetherness
+altoist
+altoists
+altometer
+Alton
+Altona
+Altoona
+alto-relievo
+alto-relievos
+alto-rilievo
+altos
+alto-stratus
+altostratus
+altoun
+altrices
+altricial
+Altrincham
+Altro
+altropathy
+altrose
+altruism
+altruisms
+altruist
+altruistic
+altruistically
+altruists
+alts
+altschin
+altumal
+altun
+Altura
+Alturas
+alture
+Altus
+altus
+ALU
+Aluco
+Aluconidae
+Aluconinae
+aludel
+aludels
+Aludra
+Aluin
+Aluino
+alula
+alulae
+alular
+alulet
+Alulim
+alum
+alum.
+Alumbank
+alumbloom
+alumbrado
+Alumel
+alumen
+alumetize
+alumian
+alumic
+alumiferous
+alumin
+alumina
+aluminaphone
+aluminas
+aluminate
+alumine
+alumines
+aluminic
+aluminide
+aluminiferous
+aluminiform
+aluminio-
+aluminise
+aluminised
+aluminish
+aluminising
+aluminite
+aluminium
+aluminize
+aluminized
+aluminizes
+aluminizing
+alumino-
+aluminoferric
+aluminographic
+aluminography
+aluminose
+aluminosilicate
+aluminosis
+aluminosity
+aluminothermic
+aluminothermics
+aluminothermy
+aluminotype
+aluminous
+alumins
+aluminum
+aluminums
+aluminyl
+alumish
+alumite
+alumium
+alumna
+alumnae
+alumnal
+alumni
+alumniate
+Alumnol
+alumnus
+alumohydrocalcite
+alumroot
+alumroots
+alums
+alumstone
+alun-alun
+Alundum
+alundum
+aluniferous
+alunite
+alunites
+alunogen
+alupag
+Alur
+Alurd
+alure
+alurgite
+Alurta
+alushtite
+aluta
+alutaceous
+al-Uzza
+Alva
+Alvada
+Alvadore
+Alvah
+Alvan
+Alvar
+alvar
+Alvarado
+Alvarez
+Alvaro
+Alvaton
+alvearies
+alvearium
+alveary
+alveated
+alvelos
+alveloz
+alveola
+alveolae
+alveolar
+alveolariform
+alveolarly
+alveolars
+alveolary
+alveolate
+alveolated
+alveolation
+alveole
+alveolectomy
+alveoli
+alveoliform
+alveolite
+Alveolites
+alveolitis
+alveolo-
+alveoloclasia
+alveolocondylean
+alveolodental
+alveololabial
+alveololingual
+alveolonasal
+alveolosubnasal
+alveolotomy
+alveolus
+Alver
+Alvera
+Alverda
+Alverson
+Alverta
+Alverton
+Alves
+Alveta
+alveus
+alvia
+Alviani
+alviducous
+Alvie
+Alvin
+Alvina
+alvine
+Alvinia
+Alvino
+Alvira
+Alvis
+Alviso
+Alviss
+Alvissmal
+Alvita
+alvite
+Alvito
+Alvo
+Alvord
+Alvordton
+alvus
+Alvy
+alw
+alway
+always
+Alwin
+alwise
+alwite
+Alwitt
+Alwyn
+aly
+Alya
+Alyattes
+Alyce
+alycompaine
+Alyda
+Alydar
+Alyeska
+alymphia
+alymphopotent
+Alyose
+Alyosha
+alypin
+alypine
+alypum
+Alys
+Alysa
+Alyse
+Alysia
+Alyson
+Alysoun
+Alyss
+Alyssa
+alysson
+Alyssum
+alyssum
+alyssums
+alytarch
+Alytes
+Alyworth
+Alzada
+alzheimer
+A&M
+A.M.
+AM
+Am
+Am.
+a.m.
+am
+A.M.A.
+AMA
+Ama
+ama
+amaas
+Amabel
+Amabella
+Amabelle
+Amabil
+amabile
+amability
+amable
+amacratic
+amacrinal
+amacrine
+AMACS
+amadan
+Amadas
+amadavat
+amadavats
+amadelphous
+Amadeo
+Amadeus
+Amadi
+Amadis
+Amado
+Amador
+amadou
+amadous
+Amadus
+Amaethon
+Amafingo
+amaga
+Amagansett
+Amagasaki
+Amagon
+amah
+amahs
+Amahuaca
+Amaigbo
+amain
+amaine
+amaist
+amaister
+amakebe
+Amakosa
+Amal
+amal
+amala
+amalaita
+amalaka
+Amalbena
+Amalberga
+Amalbergas
+Amalburga
+Amalea
+Amalee
+Amalek
+Amalekite
+amalekite
+Amaleta
+amalett
+Amalfian
+Amalfitan
+amalg
+amalgam
+amalgamable
+amalgamate
+amalgamated
+amalgamater
+amalgamates
+amalgamating
+amalgamation
+amalgamationist
+amalgamations
+amalgamative
+amalgamatize
+amalgamator
+amalgamators
+amalgamist
+amalgamization
+amalgamize
+amalgams
+Amalia
+amalic
+Amalie
+Amalings
+Amalita
+Amalle
+Amalrician
+amaltas
+Amalthaea
+Amalthea
+Amaltheia
+amamau
+Amampondo
+Aman
+Amana
+Amand
+Amanda
+amande
+Amandi
+Amandie
+amandin
+amandine
+Amando
+Amandus
+Amandy
+amang
+amani
+amania
+Amanist
+Amanita
+amanita
+amanitas
+amanitin
+amanitine
+amanitins
+Amanitopsis
+Amann
+amanori
+amanous
+amant
+amantadine
+amante
+amantillo
+amanuenses
+amanuensis
+Amap
+Amapa
+amapa
+Amapondo
+Amar
+amar
+Amara
+amaracus
+Amara-kosha
+Amaral
+Amarant
+amarant
+Amarantaceae
+amarantaceous
+amaranth
+Amaranthaceae
+amaranthaceous
+amaranthine
+amaranthoid
+amaranth-purple
+amaranths
+Amaranthus
+amarantine
+amarantite
+Amarantus
+Amaras
+AMARC
+amarelle
+amarelles
+Amarette
+amaretto
+amarettos
+amarevole
+Amargo
+amargosa
+amargoso
+amargosos
+Amari
+Amarillas
+Amarillis
+Amarillo
+amarillo
+amarillos
+amarin
+amarine
+Amaris
+amaritude
+amarity
+Amarna
+amarna
+amaroid
+amaroidal
+amarthritis
+amarvel
+Amary
+Amaryl
+amaryllid
+Amaryllidaceae
+amaryllidaceous
+amaryllideous
+Amaryllis
+amaryllis
+amaryllises
+Amarynceus
+amas
+Amasa
+AMASE
+amasesis
+Amasias
+amass
+amassable
+amassed
+amasser
+amassers
+amasses
+amassette
+amassing
+amassment
+amassments
+Amasta
+amasthenic
+amastia
+amasty
+AMAT
+Amata
+amate
+amated
+Amatembu
+Amaterasu
+amaterialistic
+amateur
+amateurish
+amateurishly
+amateurishness
+amateurism
+amateurisms
+amateurs
+amateurship
+Amathi
+Amathist
+Amathiste
+amathophobia
+Amati
+amati
+amating
+amatito
+amative
+amatively
+amativeness
+Amato
+amatol
+amatols
+amatorial
+amatorially
+amatorian
+amatories
+amatorio
+amatorious
+amatory
+AMATPS
+amatrice
+Amatruda
+Amatsumara
+amatungula
+Amaty
+amaurosis
+amaurotic
+amaut
+Amawalk
+amaxomania
+amay
+Amaya
+amaze
+amazed
+amazedly
+amazedness
+amazeful
+amazement
+amazements
+amazer
+amazers
+amazes
+amazia
+Amaziah
+Amazilia
+amazing
+amazingly
+Amazon
+amazon
+Amazona
+Amazonas
+Amazonia
+Amazonian
+amazonian
+Amazonis
+Amazonism
+amazonite
+Amazonomachia
+amazons
+amazonstone
+Amazulu
+Amb
+amb
+AMBA
+amba
+ambach
+ambage
+ambages
+ambagiosity
+ambagious
+ambagiously
+ambagiousness
+ambagitory
+Ambala
+ambalam
+amban
+ambar
+ambaree
+ambarella
+ambari
+ambaries
+ambaris
+ambary
+ambas
+ambash
+ambassade
+Ambassadeur
+ambassador
+ambassador-at-large
+ambassadorial
+ambassadorially
+ambassadors
+ambassadors-at-large
+ambassadorship
+ambassadorships
+ambassadress
+ambassage
+ambassiate
+ambassy
+ambatch
+ambatoarinite
+ambay
+ambe
+Ambedkar
+ambeer
+ambeers
+Amber
+amber
+amber-clear
+amber-colored
+amber-days
+amber-dropping
+amberfish
+amberfishes
+Amberg
+ambergrease
+ambergris
+ambergrises
+amber-headed
+amber-hued
+amberies
+amberiferous
+amberina
+amberite
+amberjack
+amberjacks
+Amberley
+amberlike
+amber-locked
+Amberly
+amberoid
+amberoids
+amberous
+ambers
+Amberson
+Ambert
+amber-tinted
+amber-tipped
+amber-weeping
+amber-white
+ambery
+amber-yielding
+ambi-
+Ambia
+ambiance
+ambiances
+ambicolorate
+ambicoloration
+ambidexter
+ambidexterities
+ambidexterity
+ambidexterous
+ambidextral
+ambidextrous
+ambidextrously
+ambidextrousness
+Ambie
+ambience
+ambiences
+ambiency
+ambiens
+ambient
+ambients
+ambier
+ambigenal
+ambigenous
+ambigu
+ambiguities
+ambiguity
+ambiguous
+ambiguously
+ambiguousness
+ambilaevous
+ambil-anak
+ambilateral
+ambilateralaterally
+ambilaterality
+ambilaterally
+ambilevous
+ambilian
+ambilogy
+ambiopia
+ambiparous
+ambisextrous
+ambisexual
+ambisexualities
+ambisexuality
+ambisinister
+ambisinistrous
+ambisporangiate
+ambisyllabic
+ambit
+ambital
+ambitendencies
+ambitendency
+ambitendent
+ambition
+ambitioned
+ambitioning
+ambitionist
+ambitionless
+ambitionlessly
+ambitions
+ambitious
+ambitiously
+ambitiousness
+ambits
+ambitty
+ambitus
+ambivalence
+ambivalences
+ambivalency
+ambivalent
+ambivalently
+ambiversion
+ambiversive
+ambivert
+ambiverts
+Amble
+amble
+ambled
+ambleocarpus
+Ambler
+ambler
+amblers
+ambles
+ambling
+amblingly
+amblosis
+amblotic
+amblyacousia
+amblyaphia
+Amblycephalidae
+Amblycephalus
+amblychromatic
+Amblydactyla
+amblygeusia
+amblygon
+amblygonal
+amblygonite
+amblyocarpous
+Amblyomma
+amblyope
+amblyopia
+amblyopic
+Amblyopsidae
+Amblyopsis
+amblyoscope
+amblypod
+Amblypoda
+amblypodous
+Amblyrhynchus
+amblystegite
+Amblystoma
+ambo
+amboceptoid
+amboceptor
+Ambocoelia
+ambodexter
+Amboina
+amboina
+amboinas
+Amboinese
+Amboise
+ambolic
+ambomalleal
+Ambon
+ambon
+ambones
+ambonite
+Ambonnay
+ambos
+ambosexous
+ambosexual
+Amboy
+amboyna
+amboynas
+ambracan
+ambrain
+ambreate
+ambreic
+ambrein
+ambrette
+ambrettolide
+Ambrica
+ambries
+ambrite
+Ambrogino
+Ambrogio
+ambroid
+ambroids
+Ambroise
+ambrology
+Ambros
+Ambrosane
+Ambrose
+ambrose
+Ambrosi
+Ambrosia
+ambrosia
+ambrosiac
+Ambrosiaceae
+ambrosiaceous
+ambrosial
+ambrosially
+Ambrosian
+ambrosian
+ambrosias
+ambrosiate
+ambrosin
+Ambrosine
+ambrosine
+Ambrosio
+Ambrosius
+ambrosterol
+ambrotype
+ambry
+ambs-ace
+ambsace
+ambsaces
+ambulacra
+ambulacral
+ambulacriform
+ambulacrum
+ambulance
+ambulanced
+ambulancer
+ambulances
+ambulancing
+ambulant
+ambulante
+ambulantes
+ambulate
+ambulated
+ambulates
+ambulating
+ambulatio
+ambulation
+ambulative
+ambulator
+Ambulatoria
+ambulatoria
+ambulatorial
+ambulatories
+ambulatorily
+ambulatorium
+ambulatoriums
+ambulators
+ambulatory
+ambulia
+ambuling
+ambulomancy
+Ambur
+amburbial
+Amburgey
+ambury
+ambuscade
+ambuscaded
+ambuscader
+ambuscades
+ambuscading
+ambuscado
+ambuscadoed
+ambuscados
+ambush
+ambushed
+ambusher
+ambushers
+ambushes
+ambushing
+ambushlike
+ambushment
+ambustion
+Amby
+Ambystoma
+Ambystomidae
+AMC
+Amchitka
+amchoor
+AMD
+amdahl
+A.M.D.G.
+AMDG
+amdt
+AME
+Ame
+ame
+Ameagle
+ameba
+amebae
+ameban
+amebas
+amebean
+amebian
+amebiasis
+amebic
+amebicidal
+amebicide
+amebid
+amebiform
+amebobacter
+amebocyte
+ameboid
+ameboidism
+amebous
+amebula
+Amedeo
+AMEDS
+ameed
+ameen
+ameer
+ameerate
+ameerates
+ameers
+ameiosis
+ameiotic
+Ameiuridae
+Ameiurus
+Ameiva
+Ameizoeira
+amel
+Amelanchier
+amelanchier
+ameland
+amelcorn
+amelcorns
+amelet
+Amelia
+amelia
+Amelie
+amelification
+Amelina
+Ameline
+ameliorable
+ameliorableness
+ameliorant
+ameliorate
+ameliorated
+ameliorates
+ameliorating
+amelioration
+ameliorations
+ameliorativ
+ameliorative
+amelioratively
+ameliorator
+amelioratory
+Amelita
+amellus
+ameloblast
+ameloblastic
+amelu
+amelus
+Amen
+amen
+Amena
+amenability
+amenable
+amenableness
+amenably
+amenage
+amenance
+Amend
+amend
+amendable
+amendableness
+amendatory
+amende
+amended
+amende-honorable
+amender
+amenders
+amending
+amendment
+amendments
+amends
+amene
+Amenia
+amenia
+Amenism
+Amenite
+amenities
+amenity
+amenorrhea
+amenorrheal
+amenorrheic
+amenorrho
+amenorrhoea
+amenorrhoeal
+amenorrhoeic
+Amen-Ra
+Amen-ra
+amens
+ament
+amenta
+amentaceous
+amental
+Amenti
+amentia
+amentias
+Amentiferae
+amentiferous
+amentiform
+aments
+amentula
+amentulum
+amentum
+amenty
+amenuse
+Amer
+Amer.
+Amerada
+amerce
+amerceable
+amerced
+amercement
+amercements
+amercer
+amercers
+amerces
+amerciable
+amerciament
+amercing
+America
+america
+American
+american
+Americana
+americana
+Americanese
+Americanisation
+Americanise
+Americanised
+Americaniser
+Americanising
+Americanism
+americanism
+americanisms
+Americanist
+americanist
+Americanistic
+Americanitis
+Americanization
+americanization
+Americanize
+americanize
+Americanized
+americanized
+Americanizer
+americanizes
+Americanizing
+americanizing
+Americanly
+Americano
+Americano-european
+Americanoid
+Americanos
+americans
+americanum
+americanumancestors
+americas
+Americaward
+Americawards
+americium
+americo-
+Americomania
+Americophobe
+Americus
+Amerigo
+Amerika
+amerikani
+Amerimnon
+AmerInd
+Amerind
+amerind
+Amerindian
+amerindian
+amerindians
+Amerindic
+amerinds
+amerism
+ameristic
+AMERITECH
+Amero
+Amersfoort
+Amersham
+AmerSp
+amerveil
+Amery
+Ames
+ames-ace
+amesace
+amesaces
+Amesbury
+amesite
+Ameslan
+amess
+Amesville
+Ametabola
+ametabola
+ametabole
+ametabolia
+ametabolian
+ametabolic
+ametabolism
+ametabolous
+ametaboly
+ametallous
+Amethi
+Amethist
+amethodical
+amethodically
+Amethyst
+amethyst
+amethystine
+amethystlike
+amethysts
+ametoecious
+ametria
+ametrometer
+ametrope
+ametropia
+ametropic
+ametrous
+AMEX
+Amex
+amex
+Amfortas
+amgarn
+amhar
+Amhara
+Amharic
+amharic
+Amherst
+Amherstdale
+amherstite
+amhran
+AMI
+Ami
+ami
+Amia
+amia
+amiabilities
+amiability
+amiable
+amiableness
+amiably
+amiant
+amianth
+amianthiform
+amianthine
+Amianthium
+amianthoid
+amianthoidal
+amianthus
+amiantus
+amiantuses
+Amias
+amias
+amic
+amicabilities
+amicability
+amicable
+amicableness
+amicably
+amical
+AMICE
+Amice
+amice
+amiced
+amices
+AMIChemE
+amici
+amicicide
+Amick
+amicous
+amicrobic
+amicron
+amicronucleate
+amictus
+amicus
+amid
+amid-
+Amida
+Amidah
+amidase
+amidases
+amidate
+amidated
+amidating
+amidation
+amide
+amides
+amidic
+amidid
+amidide
+amidin
+amidine
+amidines
+amidins
+Amidism
+Amidist
+amidmost
+amido
+amido-
+amidoacetal
+amidoacetic
+amidoacetophenone
+amidoaldehyde
+amidoazo
+amidoazobenzene
+amidoazobenzol
+amidocaffeine
+amidocapric
+amidocyanogen
+amidofluorid
+amidofluoride
+amidogen
+amidogens
+amidoguaiacol
+amidohexose
+amidoketone
+Amidol
+amidol
+amidols
+amidomyelin
+Amidon
+amidon
+amidone
+amidones
+amidophenol
+amidophosphoric
+amidoplast
+amidoplastid
+amidopyrine
+amidosuccinamic
+amidosulphonal
+amidothiazole
+amido-urea
+amidoxime
+amidoxy
+amidoxyl
+amidrazone
+amids
+amidship
+amidships
+amidst
+amidstream
+amidulin
+amidward
+Amie
+amie
+Amiel
+Amiens
+amies
+Amieva
+amiga
+amigas
+Amigen
+amigo
+amigos
+Amii
+Amiidae
+Amil
+amil
+Amilcare
+amildar
+Amiles
+Amiloun
+AMIMechE
+amimia
+amimide
+Amin
+amin
+amin-
+aminase
+aminate
+aminated
+aminating
+amination
+aminded
+-amine
+amine
+amines
+amini
+aminic
+aminish
+aminities
+aminity
+aminization
+aminize
+amino
+amino-
+aminoacetal
+aminoacetanilide
+aminoacetic
+aminoacetone
+aminoacetophenetidine
+aminoacetophenone
+aminoacidemia
+aminoaciduria
+aminoanthraquinone
+aminoazo
+aminoazobenzene
+aminobarbituric
+aminobenzaldehyde
+aminobenzamide
+aminobenzene
+aminobenzine
+aminobenzoic
+aminocaproic
+aminodiphenyl
+aminoethionic
+aminoformic
+aminogen
+aminoglutaric
+aminoguanidine
+aminoid
+aminoketone
+aminolipin
+aminolysis
+aminolytic
+aminomalonic
+aminomyelin
+amino-oxypurin
+aminopeptidase
+aminophenol
+aminopherase
+aminophylline
+aminoplast
+aminoplastic
+aminopolypeptidase
+aminopropionic
+aminopurine
+aminopyrine
+aminoquin
+aminoquinoline
+aminosis
+aminosuccinamic
+aminosulphonic
+aminothiophen
+aminotransferase
+aminotriazole
+aminovaleric
+aminoxylol
+amins
+Aminta
+Amintor
+Amintore
+Amioidei
+Amir
+amir
+amiral
+Amiranha
+amirate
+amirates
+amiray
+amire
+Amiret
+amirs
+amirship
+Amis
+amis
+Amish
+amish
+Amishgo
+amiss
+amissibility
+amissible
+amissing
+amission
+amissness
+Amissville
+Amistad
+amit
+Amita
+Amitabha
+amitate
+Amite
+Amitie
+amitie
+amities
+amitoses
+amitosis
+amitotic
+amitotically
+amitriptyline
+amitrole
+amitroles
+Amittai
+amitular
+Amity
+amity
+Amityville
+amixia
+Amizilis
+amla
+amlacra
+amlet
+amli
+amlikar
+Amlin
+Amling
+amlong
+AMLS
+Amma
+amma
+Ammadas
+Ammadis
+Ammamaria
+Amman
+amman
+Ammanati
+Ammanite
+Ammann
+ammelide
+ammelin
+ammeline
+ammeos
+ammer
+Ammerman
+ammeter
+ammeters
+Ammi
+ammi
+Ammiaceae
+ammiaceous
+Ammianus
+AmMIEE
+ammine
+ammines
+ammino
+amminochloride
+amminolysis
+amminolytic
+ammiolite
+ammiral
+Ammisaddai
+Ammishaddai
+ammites
+ammo
+ammo-
+Ammobium
+ammobium
+ammocete
+ammocetes
+ammochaeta
+ammochaetae
+ammochryse
+ammocoete
+ammocoetes
+ammocoetid
+Ammocoetidae
+ammocoetiform
+ammocoetoid
+ammodyte
+Ammodytes
+Ammodytidae
+ammodytoid
+Ammon
+ammonal
+ammonals
+ammonate
+ammonation
+Ammonea
+ammonia
+ammoniac
+ammoniacal
+ammoniaco-
+ammoniacs
+ammoniacum
+ammoniaemia
+ammonias
+ammoniate
+ammoniated
+ammoniating
+ammoniation
+ammonic
+ammonical
+ammoniemia
+ammonification
+ammonified
+ammonifier
+ammonifies
+ammonify
+ammonifying
+ammonio-
+ammoniojarosite
+ammonion
+ammonionitrate
+Ammonite
+ammonite
+Ammonites
+ammonites
+Ammonitess
+ammonitic
+ammoniticone
+ammonitiferous
+Ammonitish
+ammonitoid
+Ammonitoidea
+ammonium
+ammoniums
+ammoniuret
+ammoniureted
+ammoniuria
+ammonization
+ammono
+ammonobasic
+ammonocarbonic
+ammonocarbonous
+ammonoid
+Ammonoidea
+ammonoidean
+ammonoids
+ammonolitic
+ammonolyses
+ammonolysis
+ammonolytic
+ammonolyze
+ammonolyzed
+ammonolyzing
+Ammophila
+ammophilous
+ammoresinol
+ammoreslinol
+ammos
+ammotherapy
+ammu
+ammunition
+ammunitions
+amnemonic
+amnesia
+amnesiac
+amnesiacs
+amnesias
+amnesic
+amnesics
+amnestic
+amnestied
+amnesties
+amnesty
+amnestying
+amnia
+amniac
+amniatic
+amnic
+Amnigenia
+amninia
+amninions
+amnioallantoic
+amniocentesis
+amniochorial
+amnioclepsis
+amniomancy
+amnion
+Amnionata
+amnionate
+amnionia
+amnionic
+amnions
+amniorrhea
+amnios
+Amniota
+amniota
+amniote
+amniotes
+amniotic
+amniotin
+amniotitis
+amniotome
+amn't
+Amo
+Amoakuh
+amobarbital
+amober
+amobyr
+Amoco
+amoeba
+amoebae
+Amoebaea
+amoebaea
+amoebaean
+amoebaeum
+amoebalike
+amoeban
+amoebas
+amoebean
+amoebeum
+amoebian
+amoebiasis
+amoebic
+amoebicidal
+amoebicide
+amoebid
+Amoebida
+Amoebidae
+amoebiform
+Amoebobacter
+Amoebobacterieae
+amoebocyte
+Amoebogeniae
+amoeboid
+amoeboidism
+amoebous
+amoebula
+amoibite
+amoinder
+amok
+amoke
+amoks
+amole
+amoles
+amolilla
+amolish
+amollish
+amomal
+Amomales
+Amomis
+amomum
+Amon
+Amonate
+among
+amongst
+Amon-Ra
+amontillado
+amontillados
+Amopaon
+Amor
+amor
+Amora
+amora
+amorado
+amoraic
+amoraim
+amoral
+amoralism
+amoralist
+amorality
+amoralize
+amorally
+AMORC
+Amores
+Amoret
+amoret
+Amoreta
+Amorete
+Amorette
+Amoretti
+amoretti
+amoretto
+amorettos
+Amoreuxia
+Amorgos
+amorini
+amorino
+amorism
+amorist
+amoristic
+amorists
+Amorita
+Amorite
+amorite
+Amoritic
+Amoritish
+Amoritta
+amornings
+amorosa
+amorosity
+amoroso
+amorous
+amorously
+amorousness
+amorousnesses
+amorph
+Amorpha
+amorpha
+amorphi
+amorphia
+amorphic
+amorphinism
+amorphism
+amorpho-
+Amorphophallus
+amorphophyte
+amorphotae
+amorphous
+amorphously
+amorphousness
+amorphozoa
+amorphus
+amorphy
+a-morrow
+amort
+amortisable
+amortise
+amortised
+amortises
+amortising
+amortissement
+amortisseur
+amortizable
+amortization
+amortizations
+amortize
+amortized
+amortizement
+amortizes
+amortizing
+Amorua
+Amory
+Amos
+amos
+amosite
+Amoskeag
+amotion
+amotions
+amotus
+Amou
+amouli
+amount
+amounted
+amounter
+amounters
+amounting
+amounts
+amour
+amouret
+amourette
+amourist
+amour-propre
+amours
+amovability
+amovable
+amove
+amoved
+amoving
+amowt
+Amoy
+Amoyan
+Amoyese
+AMP
+Amp
+amp
+amp.
+ampalaya
+ampalea
+ampangabeite
+amparo
+AMPAS
+ampasimenite
+ampassy
+Ampelidaceae
+ampelidaceous
+Ampelidae
+ampelideous
+Ampelis
+ampelite
+ampelitic
+ampelographist
+ampelography
+ampelograpny
+ampelopsidin
+ampelopsin
+Ampelopsis
+ampelopsis
+Ampelos
+Ampelosicyos
+ampelotherapy
+amper
+amperage
+amperages
+Ampere
+ampere
+ampere-foot
+ampere-hour
+amperemeter
+ampere-minute
+amperes
+ampere-second
+ampere-turn
+Amperian
+amperometer
+amperometric
+ampersand
+ampersands
+ampery
+Ampex
+amphanthia
+amphanthium
+ampheclexis
+ampherotokous
+ampherotoky
+amphetamine
+amphetamines
+amphi
+amphi-
+Amphiaraus
+amphiarthrodial
+amphiarthroses
+amphiarthrosis
+amphiaster
+amphib
+amphibali
+amphibalus
+Amphibia
+amphibia
+amphibial
+amphibian
+amphibians
+amphibichnite
+amphibiety
+amphibiological
+amphibiology
+amphibion
+amphibiontic
+amphibiotic
+Amphibiotica
+amphibious
+amphibiously
+amphibiousness
+amphibium
+amphiblastic
+amphiblastula
+amphiblestritis
+Amphibola
+amphibole
+amphiboles
+amphibolia
+amphibolic
+amphibolies
+amphiboliferous
+amphiboline
+amphibolite
+amphibolitic
+amphibological
+amphibologically
+amphibologies
+amphibologism
+amphibology
+amphibolostylous
+amphibolous
+amphiboly
+amphibrach
+amphibrachic
+amphibryous
+Amphicarpa
+Amphicarpaea
+amphicarpia
+amphicarpic
+amphicarpium
+amphicarpogenous
+amphicarpous
+amphicarpus
+amphicentric
+amphichroic
+amphichrom
+amphichromatic
+amphichrome
+amphichromy
+amphicoelian
+amphicoelous
+amphicome
+Amphicondyla
+amphicondylous
+amphicrania
+amphicreatinine
+amphicribral
+Amphictyon
+amphictyon
+amphictyonian
+amphictyonic
+amphictyonies
+amphictyons
+amphictyony
+Amphicyon
+Amphicyonidae
+amphicyrtic
+amphicyrtous
+amphicytula
+amphid
+Amphidamas
+amphide
+amphidesmous
+amphidetic
+amphidiarthrosis
+amphidiploid
+amphidiploidy
+amphidisc
+Amphidiscophora
+amphidiscophoran
+amphidisk
+amphidromia
+amphidromic
+amphierotic
+amphierotism
+Amphigaea
+amphigaean
+amphigam
+Amphigamae
+amphigamous
+amphigastria
+amphigastrium
+amphigastrula
+amphigean
+amphigen
+amphigene
+amphigenesis
+amphigenetic
+amphigenous
+amphigenously
+amphigonia
+amphigonic
+amphigonium
+amphigonous
+amphigony
+amphigoric
+amphigories
+amphigory
+amphigouri
+amphigouris
+amphikaryon
+amphikaryotic
+Amphilochus
+amphilogism
+amphilogy
+amphimacer
+Amphimachus
+Amphimarus
+amphimictic
+amphimictical
+amphimictically
+amphimixes
+amphimixis
+amphimorula
+amphimorulae
+Amphinesian
+Amphineura
+amphineurous
+Amphinome
+Amphinomus
+amphinucleus
+Amphion
+amphion
+Amphionic
+Amphioxi
+amphioxi
+Amphioxidae
+Amphioxides
+Amphioxididae
+amphioxis
+amphioxus
+amphioxuses
+amphipeptone
+amphiphithyra
+amphiphloic
+amphiplatyan
+Amphipleura
+amphiploid
+amphiploidy
+amphipneust
+Amphipneusta
+amphipneustic
+Amphipnous
+amphipod
+Amphipoda
+amphipoda
+amphipodal
+amphipodan
+amphipodiform
+amphipodous
+amphipods
+amphiprostylar
+amphiprostyle
+amphiprotic
+amphipyrenin
+Amphirhina
+amphirhinal
+amphirhine
+amphisarca
+amphisbaena
+amphisbaenae
+amphisbaenas
+amphisbaenian
+amphisbaenic
+amphisbaenid
+Amphisbaenidae
+amphisbaenoid
+amphisbaenous
+amphiscians
+amphiscii
+Amphisile
+Amphisilidae
+amphispermous
+amphisporangiate
+amphispore
+Amphissa
+Amphissus
+Amphistoma
+amphistomatic
+amphistome
+amphistomoid
+amphistomous
+Amphistomum
+amphistylar
+amphistylic
+amphistyly
+amphitene
+amphithalami
+amphithalamus
+amphithalmi
+amphitheater
+amphitheatered
+amphitheaters
+amphitheatral
+amphitheatre
+amphitheatric
+amphitheatrical
+amphitheatrically
+amphitheccia
+amphithecia
+amphithecial
+amphithecium
+amphithect
+Amphithemis
+amphithere
+amphithura
+amphithuron
+amphithurons
+amphithurthura
+amphithyra
+amphithyron
+amphithyrons
+amphitokal
+amphitokous
+amphitoky
+amphitriaene
+amphitricha
+amphitrichate
+amphitrichous
+Amphitrite
+amphitrite
+amphitron
+amphitropal
+amphitropous
+Amphitruo
+Amphitryon
+amphitryon
+Amphiuma
+amphiuma
+Amphiumidae
+Amphius
+amphivasal
+amphivorous
+Amphizoidae
+amphodarch
+amphodelite
+amphodiplopia
+amphogenic
+amphogenous
+amphogeny
+ampholyte
+ampholytic
+amphopeptone
+amphophil
+amphophile
+amphophilic
+amphophilous
+amphora
+amphorae
+amphoral
+amphoras
+amphore
+amphorette
+amphoric
+amphoricity
+amphoriloquy
+amphoriskoi
+amphoriskos
+amphorophony
+amphorous
+amphoteric
+amphotericin
+Amphoterus
+Amphrysian
+ampicillin
+ampitheater
+ample
+amplect
+amplectant
+ampleness
+ampler
+amplest
+amplex
+amplexation
+amplexicaudate
+amplexicaul
+amplexicauline
+amplexifoliate
+amplexus
+amplexuses
+ampliate
+ampliation
+ampliative
+amplication
+amplicative
+amplidyne
+amplifiable
+amplificate
+amplification
+amplifications
+amplificative
+amplificator
+amplificatory
+amplified
+amplifier
+amplifiers
+amplifies
+amplify
+amplifying
+amplitude
+amplitudes
+amplitudinous
+amply
+ampollosity
+ampongue
+ampoule
+ampoules
+AMPS
+amps
+ampul
+ampulate
+ampulated
+ampulating
+ampule
+ampules
+ampulla
+ampullaceous
+ampullae
+ampullar
+Ampullaria
+Ampullariidae
+ampullary
+ampullate
+ampullated
+ampulliform
+ampullitis
+ampullosity
+ampullula
+ampullulae
+ampuls
+ampus-and
+amputate
+amputated
+amputates
+amputating
+amputation
+amputational
+amputations
+amputative
+amputator
+amputee
+amputees
+ampyces
+Ampycides
+Ampycus
+Ampyx
+ampyx
+ampyxes
+Amr
+amra
+AMRAAM
+Amram
+Amratian
+Amravati
+amreeta
+amreetas
+amrelle
+Amri
+amrit
+Amrita
+amrita
+amritas
+Amritsar
+Amroati
+AMROC
+AMS
+AMSAT
+amsath
+Amschel
+Amsden
+amsel
+Amsha-spand
+Amsha-spend
+Amsonia
+amsonia
+Amsterdam
+amsterdam
+Amsterdamer
+Amston
+AMSW
+AMT
+amt
+amt.
+amtman
+amtmen
+Amtorg
+amtrac
+amtrack
+amtracks
+amtracs
+Amtrak
+amtrak
+AMU
+amu
+Amuchco
+amuck
+amucks
+Amueixa
+amugis
+amuguis
+amula
+amulae
+amulas
+amulet
+amuletic
+amulets
+Amulius
+amulla
+amunam
+Amund
+Amundsen
+Amur
+amurca
+amurcosity
+amurcous
+Amurru
+amus
+amusable
+amuse
+amused
+amusedly
+amusee
+amusement
+amusements
+amuser
+amusers
+amuses
+amusette
+Amusgo
+amusia
+amusias
+amusing
+amusingly
+amusingness
+amusive
+amusively
+amusiveness
+amutter
+amuyon
+amuyong
+amuze
+amuzzle
+AMVET
+amvis
+Amvrakikos
+Amy
+amy
+Amyas
+amyatonic
+Amyclaean
+Amyclas
+amyctic
+Amycus
+amydon
+Amye
+amyelencephalia
+amyelencephalic
+amyelencephalous
+amyelia
+amyelic
+amyelinic
+amyelonic
+amyelotrophy
+amyelous
+amygdal
+amygdala
+Amygdalaceae
+amygdalaceous
+amygdalae
+amygdalase
+amygdalate
+amygdale
+amygdalectomy
+amygdales
+amygdalic
+amygdaliferous
+amygdaliform
+amygdalin
+amygdaline
+amygdalinic
+amygdalitis
+amygdaloid
+amygdaloidal
+amygdalolith
+amygdaloncus
+amygdalopathy
+amygdalothripsis
+amygdalotome
+amygdalotomy
+amygdalo-uvular
+Amygdalus
+amygdonitrile
+amygdophenin
+amygdule
+amygdules
+amyl
+amyl-
+amylaceous
+amylamine
+amylan
+amylase
+amylases
+amylate
+amylemia
+amylene
+amylenes
+amylenol
+amylic
+amylidene
+amyliferous
+amylin
+amylo
+amylo-
+amylocellulose
+amyloclastic
+amylocoagulase
+amylodextrin
+amylodyspepsia
+amylogen
+amylogenesis
+amylogenic
+amylogens
+amylohydrolysis
+amylohydrolytic
+amyloid
+amyloidal
+amyloidoses
+amyloidosis
+amyloids
+amyloleucite
+amylolysis
+amylolytic
+amylom
+amylome
+amylometer
+amylon
+amylopectin
+amylophagia
+amylophosphate
+amylophosphoric
+amyloplast
+amyloplastic
+amyloplastid
+amylopsase
+amylopsin
+amylose
+amyloses
+amylosis
+amylosynthesis
+amyls
+amylum
+amylums
+amyluria
+Amymone
+Amynodon
+amynodont
+Amyntor
+amyosthenia
+amyosthenic
+amyotaxia
+amyotonia
+amyotrophia
+amyotrophic
+amyotrophy
+amyous
+Amyraldism
+Amyraldist
+Amyridaceae
+amyrin
+Amyris
+amyris
+amyrol
+amyroot
+Amytal
+Amythaon
+amyxorrhea
+amyxorrhoea
+amzel
+-an
+A.N.
+AN
+An
+an
+an-
+an.
+-ana
+ANA
+Ana
+an'a
+ana
+ana-
+Anabaena
+anabaena
+anabaenas
+Anabal
+anabantid
+Anabantidae
+Anabaptism
+anabaptism
+Anabaptist
+anabaptist
+Anabaptistic
+Anabaptistical
+Anabaptistically
+Anabaptistry
+anabaptists
+anabaptize
+anabaptized
+anabaptizing
+Anabas
+anabas
+Anabase
+anabases
+anabasin
+anabasine
+anabasis
+anabasse
+anabata
+anabathmoi
+anabathmos
+anabathrum
+anabatic
+Anabel
+Anabella
+Anabelle
+anaberoga
+anabia
+anabibazon
+anabiosis
+anabiotic
+Anablepidae
+Anableps
+anableps
+anablepses
+anabo
+anabohitsite
+anabolic
+anabolin
+anabolism
+anabolite
+anabolitic
+anabolize
+anaboly
+anabong
+anabranch
+anabrosis
+anabrotic
+ANAC
+anacahuita
+anacahuite
+anacalypsis
+anacampsis
+anacamptic
+anacamptically
+anacamptics
+anacamptometer
+anacanth
+anacanthine
+Anacanthini
+anacanthous
+anacara
+anacard
+Anacardiaceae
+anacardiaceous
+anacardic
+Anacardium
+anacatadidymus
+anacatharsis
+anacathartic
+anacephalaeosis
+anacephalize
+Anaces
+Anacharis
+anacharis
+anachoret
+anachorism
+anachromasis
+anachronic
+anachronical
+anachronically
+anachronism
+anachronismatical
+anachronisms
+anachronist
+anachronistic
+anachronistical
+anachronistically
+anachronize
+anachronous
+anachronously
+anachueta
+anacid
+anacidity
+Anacin
+anack
+anaclasis
+anaclastic
+anaclastics
+Anaclete
+anaclete
+anacletica
+anacleticum
+Anacletus
+anaclinal
+anaclisis
+anaclitic
+Anacoco
+anacoenoses
+anacoenosis
+anacolutha
+anacoluthia
+anacoluthic
+anacoluthically
+anacoluthon
+anacoluthons
+anacoluttha
+Anaconda
+anaconda
+anacondas
+Anacortes
+Anacostia
+anacoustic
+Anacreon
+Anacreontic
+anacreontic
+Anacreontically
+anacrisis
+Anacrogynae
+anacrogynae
+anacrogynous
+anacromyodian
+anacrotic
+anacrotism
+anacruses
+anacrusis
+anacrustic
+anacrustically
+anaculture
+anacusia
+anacusic
+anacusis
+Anacyclus
+Anadarko
+anadem
+anadems
+anadenia
+anadesm
+anadicrotic
+anadicrotism
+anadidymus
+anadiplosis
+anadipsia
+anadipsic
+anadrom
+anadromous
+Anadyomene
+Anadyr
+anaematosis
+anaemia
+anaemias
+anaemic
+anaemotropy
+anaeretic
+anaerobation
+anaerobe
+anaerobes
+anaerobia
+anaerobian
+anaerobic
+anaerobically
+anaerobies
+anaerobion
+anaerobiont
+anaerobiosis
+anaerobiotic
+anaerobiotically
+anaerobious
+anaerobism
+anaerobium
+anaerophyte
+anaeroplastic
+anaeroplasty
+anaesthatic
+anaesthesia
+anaesthesiant
+anaesthesiologist
+anaesthesiology
+anaesthesis
+anaesthetic
+anaesthetically
+anaesthetics
+anaesthetist
+anaesthetization
+anaesthetize
+anaesthetized
+anaesthetizer
+anaesthetizing
+anaesthyl
+anaetiological
+anagalactic
+Anagallis
+anagap
+anagenesis
+anagenetic
+anagenetical
+anagennesis
+anagep
+anagignoskomena
+anaglyph
+anaglyphic
+anaglyphical
+anaglyphics
+anaglyphoscope
+anaglyphs
+anaglyphy
+anaglypta
+anaglyptic
+anaglyptical
+anaglyptics
+anaglyptograph
+anaglyptographic
+anaglyptography
+anaglypton
+Anagni
+anagnorises
+anagnorisis
+Anagnos
+anagnost
+anagnostes
+anagoge
+anagoges
+anagogic
+anagogical
+anagogically
+anagogics
+anagogies
+anagogy
+anagram
+anagrammatic
+anagrammatical
+anagrammatically
+anagrammatise
+anagrammatised
+anagrammatising
+anagrammatism
+anagrammatist
+anagrammatization
+anagrammatize
+anagrammatized
+anagrammatizing
+anagrammed
+anagramming
+anagrams
+anagraph
+anagua
+anagyrin
+anagyrine
+Anagyris
+anahao
+anahau
+Anaheim
+anaheim
+Anahita
+Anahola
+Anahuac
+Anaitis
+Anakes
+Anakim
+anakinesis
+anakinetic
+anakinetomer
+anakinetomeric
+anakoluthia
+anakrousis
+anaktoron
+anal
+anal.
+analabos
+analagous
+analav
+analcime
+analcimes
+analcimic
+analcimite
+analcite
+analcites
+analcitite
+analecta
+analectic
+analects
+analemma
+analemmas
+analemmata
+analemmatic
+analepses
+analepsis
+analepsy
+analeptic
+analeptical
+analgen
+analgene
+analgesia
+analgesic
+analgesics
+Analgesidae
+analgesis
+analgesist
+analgetic
+analgia
+analgias
+analgic
+analgize
+Analiese
+Analise
+analities
+anality
+analkalinity
+anallagmatic
+anallagmatis
+anallantoic
+Anallantoidea
+anallantoidean
+anallergic
+Anallese
+Anallise
+anally
+analog
+analoga
+analogal
+analogia
+analogic
+analogical
+analogically
+analogicalness
+analogice
+analogies
+analogion
+analogions
+analogise
+analogised
+analogising
+analogism
+analogist
+analogistic
+analogize
+analogized
+analogizing
+analogon
+analogous
+analogously
+analogousness
+analogs
+analogue
+analogues
+analogy
+Analomink
+analphabet
+analphabete
+analphabetic
+analphabetical
+analphabetism
+analysability
+analysable
+analysand
+analysands
+analysation
+analyse
+analysed
+analyser
+analysers
+analyses
+analysing
+analysis
+analyst
+analysts
+analyt
+analytic
+analytical
+analytically
+analyticities
+analyticity
+analytico-architectural
+analytics
+analytique
+analyzability
+analyzable
+analyzation
+analyze
+analyzed
+analyzer
+analyzers
+analyzes
+analyzing
+Anam
+anam
+anama
+Anambra
+Anamelech
+anamesite
+anametadromous
+Anamirta
+anamirtin
+Anamite
+anamite
+Anammelech
+anammonid
+anammonide
+anamneses
+Anamnesis
+anamnesis
+anamnestic
+anamnestically
+Anamnia
+Anamniata
+Anamnionata
+anamnionic
+Anamniota
+anamniote
+anamniotic
+Anamoose
+anamorphic
+anamorphism
+anamorphoscope
+anamorphose
+anamorphoses
+anamorphosis
+anamorphote
+anamorphous
+Anamosa
+anan
+Anana
+anana
+ananaplas
+ananaples
+ananas
+Anand
+Ananda
+ananda
+anandrarious
+anandria
+anandrious
+anandrous
+ananepionic
+anangioid
+anangular
+Ananias
+ananias
+Ananism
+Ananite
+anankastic
+ananke
+anankes
+Ananna
+Anansi
+Ananta
+ananter
+anantherate
+anantherous
+ananthous
+ananthropism
+ananym
+anapaest
+anapaestic
+anapaestical
+anapaestically
+anapaests
+anapaganize
+anapaite
+anapanapa
+anapeiratic
+anapes
+anapest
+anapestic
+anapestically
+anapests
+anaphalantiasis
+Anaphalis
+anaphase
+anaphases
+anaphasic
+Anaphe
+anaphia
+anaphora
+anaphoral
+anaphoras
+anaphoria
+anaphoric
+anaphorical
+anaphorically
+anaphrodisia
+anaphrodisiac
+anaphroditic
+anaphroditous
+anaphylactic
+anaphylactically
+anaphylactin
+anaphylactogen
+anaphylactogenic
+anaphylactoid
+anaphylatoxin
+anaphylaxis
+anaphyte
+anaplasia
+anaplasis
+anaplasm
+Anaplasma
+anaplasmoses
+anaplasmosis
+anaplastic
+anaplasty
+anapleroses
+anaplerosis
+anaplerotic
+anapnea
+anapneic
+anapnoeic
+anapnograph
+anapnoic
+anapnometer
+anapodeictic
+Anapolis
+anapophyses
+anapophysial
+anapophysis
+anapsid
+Anapsida
+anapsidan
+Anapterygota
+anapterygote
+anapterygotism
+anapterygotous
+Anaptomorphidae
+Anaptomorphus
+anaptotic
+anaptychi
+anaptychus
+anaptyctic
+anaptyctical
+anaptyxes
+anaptyxis
+Anapurna
+anaqua
+anarcestean
+Anarcestes
+anarch
+anarchal
+anarchial
+anarchic
+anarchical
+anarchically
+anarchies
+anarchism
+anarchisms
+anarchist
+anarchistic
+anarchists
+anarchize
+anarcho
+anarchoindividualist
+anarchosocialist
+anarcho-syndicalism
+anarchosyndicalism
+anarcho-syndicalist
+anarchosyndicalist
+anarchs
+anarchy
+anarcotin
+anareta
+anaretic
+anaretical
+anargyroi
+anargyros
+anarithia
+anarithmia
+anarthria
+anarthric
+anarthropod
+Anarthropoda
+anarthropodous
+anarthrosis
+anarthrous
+anarthrously
+anarthrousness
+anartismos
+anarya
+Anaryan
+Anas
+anas
+Anasa
+anasarca
+anasarcas
+anasarcous
+Anasazi
+Anasazis
+anaschistic
+Anasco
+anaseismic
+Anasitch
+anaspadias
+anaspalin
+anaspid
+Anaspida
+Anaspidacea
+Anaspides
+anastalsis
+anastaltic
+Anastas
+Anastase
+anastases
+Anastasia
+Anastasian
+Anastasie
+anastasimon
+anastasimos
+Anastasio
+anastasis
+Anastasius
+Anastassia
+anastate
+anastatic
+Anastatica
+Anastatius
+Anastatus
+Anastice
+anastigmat
+anastigmatic
+anastomos
+anastomose
+anastomosed
+anastomoses
+anastomosing
+anastomosis
+anastomotic
+Anastomus
+Anastos
+anastrophe
+Anastrophia
+anastrophy
+Anat
+anat
+anat.
+anatabine
+anatase
+anatases
+anatexes
+anatexis
+anathem
+anathema
+anathemas
+anathemata
+anathematic
+anathematical
+anathematically
+anathematisation
+anathematise
+anathematised
+anathematiser
+anathematising
+anathematism
+anathematization
+anathematize
+anathematized
+anathematizer
+anathematizes
+anathematizing
+anatheme
+anathemize
+Anatherum
+Anatidae
+anatifa
+Anatifae
+anatifae
+anatifer
+anatiferous
+Anatinacea
+Anatinae
+anatine
+anatira
+anatman
+anatocism
+Anatol
+Anatola
+Anatole
+Anatolia
+Anatolian
+anatolian
+Anatolic
+Anatolio
+Anatollo
+anatomic
+anatomical
+anatomically
+anatomicals
+anatomico-
+anatomicobiological
+anatomicochirurgical
+anatomicomedical
+anatomicopathologic
+anatomicopathological
+anatomicophysiologic
+anatomicophysiological
+anatomicosurgical
+anatomies
+anatomiless
+anatomisable
+anatomisation
+anatomise
+anatomised
+anatomiser
+anatomising
+anatomism
+anatomist
+anatomists
+anatomizable
+anatomization
+anatomize
+anatomized
+anatomizer
+anatomizes
+anatomizing
+anatomopathologic
+anatomopathological
+anatomy
+Anatone
+anatopism
+anatosaurus
+anatox
+anatoxin
+anatoxins
+anatreptic
+anatripsis
+anatripsology
+anatriptic
+anatron
+anatropal
+anatropia
+anatropous
+anatta
+anatto
+anattos
+Anatum
+anaudia
+anaudic
+anaunter
+anaunters
+anauxite
+Anawalt
+Anax
+Anaxagoras
+Anaxagorean
+anaxagorean
+Anaxagorize
+anaxagorize
+Anaxarete
+anaxial
+Anaxibia
+Anaximander
+Anaximandrian
+anaximandrian
+Anaximenes
+Anaxo
+anaxon
+anaxone
+Anaxonia
+anay
+anazoturia
+anba
+anbury
+ANC
+anc
+Ancaeus
+Ancalin
+-ance
+Ancel
+Ancelin
+Anceline
+Ancell
+Ancerata
+ancestor
+ancestorial
+ancestorially
+ancestors
+ancestral
+ancestrally
+ancestress
+ancestresses
+ancestrial
+ancestrian
+ancestries
+ancestry
+Ancha
+Anchat
+Anchesmius
+Anchiale
+Anchie
+Anchietea
+anchietin
+anchietine
+anchieutectic
+anchimonomineral
+Anchinoe
+Anchisaurus
+Anchises
+anchises
+Anchistea
+Anchistopoda
+anchithere
+anchitherioid
+anchoic
+Anchong-Ni
+anchor
+anchorable
+Anchorage
+anchorage
+anchorages
+anchorate
+anchored
+anchorer
+anchoress
+anchoresses
+anchoret
+anchoretic
+anchoretical
+anchoretish
+anchoretism
+anchorets
+anchorhold
+anchoring
+anchorite
+anchorites
+anchoritess
+anchoritic
+anchoritical
+anchoritically
+anchoritish
+anchoritism
+anchorless
+anchorlike
+anchorman
+anchormen
+anchors
+anchor-shaped
+Anchorville
+anchorwise
+anchory
+anchoveta
+anchovies
+anchovy
+Anchtherium
+Anchusa
+anchusa
+anchusas
+anchusin
+anchusine
+anchusins
+anchylose
+anchylosed
+anchylosing
+anchylosis
+anchylotic
+ancien
+ancience
+anciency
+anciennete
+anciens
+ancient
+ancienter
+ancientest
+ancientism
+anciently
+ancientness
+ancientry
+ancients
+ancienty
+Ancier
+ancile
+ancilia
+Ancilin
+ancilla
+ancillae
+ancillaries
+ancillary
+ancillas
+ancille
+ancipital
+ancipitous
+Ancistrocladaceae
+ancistrocladaceous
+Ancistrocladus
+ancistrodon
+ancistroid
+Ancius
+ancle
+Anco
+ancodont
+Ancohuma
+ancoly
+ancome
+Ancon
+ancon
+Ancona
+ancona
+anconad
+anconagra
+anconal
+anconas
+ancone
+anconeal
+anconei
+anconeous
+ancones
+anconeus
+anconitis
+anconoid
+ancony
+ancor
+ancora
+ancoral
+Ancram
+Ancramdale
+ancraophobia
+ancre
+ancress
+ancresses
+-ancy
+Ancyloceras
+Ancylocladus
+Ancylodactyla
+ancylopod
+Ancylopoda
+ancylose
+Ancylostoma
+ancylostome
+ancylostomiasis
+Ancylostomum
+Ancylus
+Ancyrean
+Ancyrene
+ancyroid
+-and
+And
+and
+and-
+anda
+anda-assu
+andabata
+andabatarian
+andabatism
+Andale
+Andalusia
+Andalusian
+andalusite
+Andaman
+Andamanese
+andamenta
+andamento
+andamentos
+andante
+andantes
+andantini
+andantino
+andantinos
+Andaqui
+Andaquian
+Andarko
+Andaste
+Ande
+Andean
+andean
+anded
+Andee
+Andeee
+Andel
+Andelee
+Ander
+Anderea
+Anderegg
+Anderer
+Anderlecht
+Anders
+anders
+Andersen
+Anderson
+anderson
+Andersonville
+Anderssen
+Anderstorp
+Andert
+anderun
+Andes
+andes
+Andesic
+andesine
+andesinite
+andesite
+andesites
+andesitic
+andesyte
+andesytes
+Andevo
+ANDF
+Andhra
+Andi
+andia
+Andian
+Andie
+Andikithira
+Andine
+anding
+Andira
+andirin
+andirine
+andiroba
+andiron
+andirons
+Andizhan
+Ando
+Andoche
+Andoke
+Andonis
+and/or
+andor
+andorite
+andoroba
+Andorobo
+Andorra
+andorra
+Andorran
+Andorre
+andouille
+andouillet
+andouillette
+Andover
+Andr
+andr-
+Andra
+Andrade
+andradite
+andragogy
+andranatomy
+andrarchy
+Andras
+Andrassy
+Andre
+andre
+Andrea
+Andreaea
+Andreaeaceae
+Andreaeales
+Andreana
+Andreas
+Andree
+Andrei
+Andrej
+Andrel
+Andrena
+andrena
+andrenid
+Andrenidae
+Andreotti
+Andres
+Andrew
+andrew
+andrewartha
+Andrewes
+Andrews
+andrewsite
+Andrey
+Andreyev
+Andreyevka
+Andri
+Andria
+Andriana
+Andrias
+Andric
+andric
+Andrien
+Andriette
+Andrija
+Andris
+andrite
+andro-
+androcentric
+androcephalous
+androcephalum
+androclclinia
+Androclea
+Androcles
+androcles
+androclinia
+androclinium
+Androclus
+androclus
+androconia
+androconium
+androcracy
+Androcrates
+androcratic
+androcyte
+androdioecious
+androdioecism
+androdynamous
+androeccia
+androecia
+androecial
+androecium
+androgametangium
+androgametophore
+androgamone
+androgen
+androgenesis
+androgenetic
+androgenic
+androgenous
+androgens
+Androgeus
+androginous
+androgone
+androgonia
+androgonial
+androgonidium
+androgonium
+Andrographis
+andrographolide
+androgyn
+androgynal
+androgynary
+androgyne
+androgyneity
+androgynia
+androgynic
+androgynies
+androgynism
+androgynous
+androgynus
+androgyny
+android
+androidal
+androides
+androids
+androkinin
+androl
+androlepsia
+androlepsy
+Andromache
+andromache
+Andromada
+andromania
+Andromaque
+andromed
+Andromeda
+andromeda
+Andromede
+andromedotoxin
+andromonoecious
+andromonoecism
+andromorphous
+Andron
+andron
+Andronicus
+andronitis
+andropetalar
+andropetalous
+androphagous
+androphobia
+androphonomania
+Androphonos
+androphore
+androphorous
+androphorum
+androphyll
+Andropogon
+Andros
+Androsace
+Androscoggin
+androseme
+androsin
+androsphinges
+androsphinx
+androsphinxes
+androsporangium
+androspore
+androsterone
+androtauric
+androtomy
+Androuet
+-androus
+Androw
+Andrsy
+Andrus
+-andry
+Andryc
+ands
+Andvar
+Andvare
+Andvari
+andvari
+Andy
+Andy-over
+-ane
+ane
+Aneale
+anear
+aneared
+anearing
+anears
+aneath
+anecdota
+anecdotage
+anecdotal
+anecdotalism
+anecdotalist
+anecdotally
+anecdote
+anecdotes
+anecdotic
+anecdotical
+anecdotically
+anecdotist
+anecdotists
+anecdysis
+anechoic
+anelace
+anelastic
+anelasticity
+anele
+anelectric
+anelectrode
+anelectrotonic
+anelectrotonus
+aneled
+aneles
+aneling
+anelytrous
+anem-
+anematize
+anematized
+anematizing
+anematosis
+Anemia
+anemia
+anemias
+anemic
+anemically
+anemious
+anemo-
+anemobiagraph
+anemochord
+anemochore
+anemochoric
+anemochorous
+anemoclastic
+anemogram
+anemograph
+anemographic
+anemographically
+anemography
+anemologic
+anemological
+anemology
+anemometer
+anemometers
+anemometric
+anemometrical
+anemometrically
+anemometrograph
+anemometrographic
+anemometrographically
+anemometry
+anemonal
+anemone
+Anemonella
+anemones
+anemonin
+anemonol
+anemony
+anemopathy
+anemophile
+anemophilous
+anemophily
+Anemopsis
+anemoscope
+anemoses
+anemosis
+anemotactic
+anemotaxis
+Anemotis
+anemotropic
+anemotropism
+anencephalia
+anencephalic
+anencephalotrophia
+anencephalous
+anencephalus
+anencephaly
+an-end
+anend
+anenergia
+anenst
+anent
+anenterous
+anepia
+anepigraphic
+anepigraphous
+anepiploic
+anepithymia
+anerethisia
+aneretic
+anergia
+anergias
+anergic
+anergies
+anergy
+anerly
+aneroid
+aneroidograph
+aneroids
+anerotic
+anerythroplasia
+anerythroplastic
+anes
+Anesidora
+anesis
+anesone
+Anestassia
+anesthesia
+anesthesiant
+anesthesias
+anesthesimeter
+anesthesiologies
+anesthesiologist
+anesthesiologists
+anesthesiology
+anesthesiometer
+anesthesis
+anesthetic
+anesthetically
+anesthetics
+anesthetist
+anesthetists
+anesthetization
+anesthetize
+anesthetized
+anesthetizer
+anesthetizes
+anesthetizing
+anesthyl
+anestri
+anestrous
+anestrus
+Anet
+anet
+Aneta
+Aneth
+anethene
+anethol
+anethole
+anetholes
+anethols
+Anethum
+anetic
+anetiological
+Aneto
+Anett
+Anetta
+Anette
+aneuch
+aneuploid
+aneuploidy
+aneuria
+aneuric
+aneurilemmic
+Aneurin
+aneurin
+aneurine
+aneurins
+aneurism
+aneurismal
+aneurismally
+aneurismatic
+aneurisms
+aneurysm
+aneurysmal
+aneurysmally
+aneurysmatic
+aneurysms
+anew
+Aney
+Anezeh
+ANF
+anfeeld
+anfract
+anfractuose
+anfractuosity
+anfractuous
+anfractuousness
+anfracture
+Anfuso
+ANG
+anga
+Angadreme
+Angadresma
+angakok
+angakoks
+angakut
+Angami
+Angami-naga
+Angang
+Angara
+angaralite
+angareb
+angareeb
+angarep
+angaria
+angarias
+angariation
+angaries
+Angarsk
+Angarstroi
+angary
+angas
+Angdistis
+Ange
+angekkok
+angekok
+angekut
+Angel
+angel
+Angela
+angelate
+angel-borne
+angel-bright
+angel-builded
+angeldom
+Angele
+angeled
+angeleen
+Angeleno
+Angelenos
+Angeles
+angeles
+angelet
+angel-eyed
+angeleyes
+angel-faced
+angelfish
+angelfishes
+angel-guarded
+angel-heralded
+angelhood
+Angeli
+Angelia
+Angelic
+angelic
+Angelica
+angelica
+Angelical
+angelical
+angelically
+angelicalness
+Angelican
+angelica-root
+angelicas
+angelicic
+angelicize
+angelicness
+Angelico
+angelico
+Angelika
+angelim
+angelin
+Angelina
+angelina
+Angeline
+angeline
+angelinformal
+angeling
+Angelique
+angelique
+Angelis
+Angelita
+angelito
+angelize
+angelized
+angelizing
+Angell
+Angelle
+angellike
+angel-noble
+Angelo
+angelocracy
+angelographer
+angelolater
+angelolatry
+angelologic
+angelological
+angelology
+angelomachy
+angelon
+Angelonia
+angelophanic
+angelophany
+angelot
+angels
+angel-seeming
+angelship
+angels-on-horseback
+angel's-trumpet
+Angelus
+angelus
+angeluses
+angel-warned
+Angelyn
+anger
+Angerboda
+angered
+angering
+angerless
+angerly
+Angerona
+Angeronalia
+Angeronia
+Angers
+angers
+Angetenar
+Angevin
+angevin
+Angevine
+angeyok
+Angi
+angi-
+angia
+angiasthenia
+angico
+Angie
+angiectasis
+angiectopia
+angiemphraxis
+Angier
+angiitis
+Angil
+angild
+angili
+angilo
+angina
+anginal
+anginas
+anginiform
+anginoid
+anginophobia
+anginose
+anginous
+angio-
+angioasthenia
+angioataxia
+angioblast
+angioblastic
+angiocardiographic
+angiocardiographies
+angiocardiography
+angiocarditis
+angiocarp
+angiocarpian
+angiocarpic
+angiocarpous
+angiocarpy
+angiocavernous
+angiocholecystitis
+angiocholitis
+angiochondroma
+angioclast
+angiocyst
+angiodermatitis
+angiodiascopy
+angioelephantiasis
+angiofibroma
+angiogenesis
+angiogenic
+angiogeny
+angioglioma
+angiogram
+angiograph
+angiographic
+angiography
+angiohemophilia
+angiohyalinosis
+angiohydrotomy
+angiohypertonia
+angiohypotonia
+angioid
+angiokeratoma
+angiokinesis
+angiokinetic
+angioleucitis
+angiolipoma
+angiolith
+angiology
+angiolymphitis
+angiolymphoma
+angioma
+angiomalacia
+angiomas
+angiomata
+angiomatosis
+angiomatous
+angiomegaly
+angiometer
+angiomyocardiac
+angiomyoma
+angiomyosarcoma
+angioneoplasm
+angioneurosis
+angioneurotic
+angionoma
+angionosis
+angioparalysis
+angioparalytic
+angioparesis
+angiopathy
+angiophorous
+angioplany
+angioplasty
+angioplerosis
+angiopoietic
+angiopressure
+angiorrhagia
+angiorrhaphy
+angiorrhea
+angiorrhexis
+angiosarcoma
+angiosclerosis
+angiosclerotic
+angioscope
+angiosis
+angiospasm
+angiospastic
+angiosperm
+Angiospermae
+angiospermal
+angiospermatous
+angiospermic
+angiospermous
+angiosperms
+angiosporous
+angiostegnosis
+angiostenosis
+angiosteosis
+angiostomize
+angiostomy
+angiostrophy
+angiosymphysis
+angiotasis
+angiotelectasia
+angiotenosis
+angiotensin
+angiotensinase
+angiothlipsis
+angiotome
+angiotomy
+angiotonase
+angiotonic
+angiotonin
+angiotribe
+angiotripsy
+angiotrophic
+angiport
+Angka
+ang-khak
+angkhak
+Angkor
+Angl
+Angl.
+anglaise
+Angle
+angle
+angleberry
+angled
+angledog
+Angledozer
+angledozer
+angled-toothed
+anglehook
+Angleinlet
+anglemeter
+angle-off
+anglepod
+anglepods
+angler
+anglers
+Angles
+angles
+Anglesey
+anglesite
+anglesmith
+Angleton
+angletouch
+angletwitch
+anglewing
+anglewise
+angleworm
+angleworms
+Anglia
+angliae
+Anglian
+anglian
+anglians
+Anglic
+Anglican
+anglican
+Anglicanism
+anglicanism
+anglicanisms
+Anglicanize
+Anglicanly
+anglicans
+Anglicanum
+Anglice
+anglice
+Anglicisation
+anglicisation
+Anglicise
+Anglicised
+Anglicising
+Anglicism
+anglicism
+anglicisms
+Anglicist
+anglicist
+Anglicization
+anglicization
+Anglicize
+anglicize
+Anglicized
+anglicized
+anglicizes
+Anglicizing
+anglicizing
+Anglification
+Anglified
+Anglify
+anglify
+Anglifying
+Anglim
+anglimaniac
+angling
+anglings
+Anglish
+anglish
+Anglist
+Anglistics
+Anglo
+Anglo-
+anglo
+anglo-
+Anglo-abyssinian
+Anglo-afghan
+Anglo-african
+Anglo-america
+Anglo-American
+Anglo-american
+Anglo-Americanism
+Anglo-americanism
+Anglo-asian
+Anglo-asiatic
+Anglo-australian
+Anglo-austrian
+Anglo-belgian
+Anglo-boer
+Anglo-brazilian
+Anglo-canadian
+Anglo-Catholic
+Anglo-catholic
+anglo-catholic
+Anglo-Catholicism
+Anglo-catholicism
+AngloCatholicism
+Anglo-chinese
+Anglo-danish
+Anglo-dutch
+Anglo-dutchman
+Anglo-ecclesiastical
+Anglo-ecuadorian
+Anglo-egyptian
+Anglo-French
+Anglo-french
+anglo-french
+Anglogaea
+Anglogaean
+Anglo-Gallic
+Anglo-german
+Anglo-greek
+Anglo-hibernian
+angloid
+Anglo-Indian
+Anglo-indian
+anglo-indian
+Anglo-Irish
+Anglo-irish
+Anglo-irishism
+Anglo-israel
+Anglo-israelism
+Anglo-israelite
+Anglo-italian
+Anglo-japanese
+Anglo-jewish
+Anglo-judaic
+Anglo-latin
+Anglo-maltese
+Angloman
+angloman
+Anglomane
+Anglomania
+anglomania
+Anglomaniac
+Anglomaniacal
+Anglo-manx
+Anglo-mexican
+Anglo-mohammedan
+Anglo-Norman
+Anglo-norman
+anglo-norman
+Anglo-norwegian
+Anglo-nubian
+Anglo-persian
+Anglophil
+anglophil
+Anglophile
+anglophile
+anglophiles
+Anglophilia
+anglophilia
+Anglophiliac
+anglophiliac
+Anglophilic
+anglophilic
+anglophilism
+anglophily
+Anglophobe
+anglophobe
+anglophobes
+Anglophobia
+anglophobia
+Anglophobiac
+Anglophobic
+anglophobic
+Anglophobist
+Anglophone
+Anglo-portuguese
+Anglo-russian
+Anglos
+anglos
+Anglo-Saxon
+Anglo-saxon
+anglo-saxon
+Anglo-saxondom
+Anglo-saxonic
+Anglo-saxonism
+Anglo-scottish
+Anglo-serbian
+Anglo-soviet
+Anglo-spanish
+Anglo-swedish
+Anglo-swiss
+Anglo-teutonic
+Anglo-turkish
+Anglo-venetian
+ango
+angoise
+Angola
+angola
+angolan
+angolans
+angolar
+Angolese
+angor
+Angora
+angora
+angoras
+Angostura
+angostura
+Angouleme
+Angoumian
+Angoumois
+Angraecum
+Angrbodha
+angrier
+angriest
+angrily
+angriness
+Angrist
+angrite
+angry
+angry-eyed
+angry-looking
+angst
+angster
+Angstrom
+angstrom
+angstroms
+angsts
+anguid
+Anguidae
+Anguier
+anguiform
+Anguilla
+Anguillaria
+anguille
+Anguillidae
+anguilliform
+anguilloid
+Anguillula
+anguillule
+Anguillulidae
+Anguimorpha
+anguine
+anguineal
+anguineous
+Anguinidae
+anguiped
+Anguis
+anguis
+anguish
+anguished
+anguishes
+anguishful
+anguishing
+anguishous
+anguishously
+angula
+angular
+angulare
+angularia
+angularities
+angularity
+angularization
+angularize
+angularly
+angularness
+angular-toothed
+angulate
+angulated
+angulately
+angulateness
+angulates
+angulating
+angulation
+angulato-
+angulatogibbous
+angulatosinuous
+angule
+anguliferous
+angulinerved
+angulo-
+Anguloa
+angulodentate
+angulometer
+angulose
+angulosity
+anguloso-
+angulosplenial
+angulous
+angulus
+Angurboda
+anguria
+Angus
+angus
+anguses
+angust
+angustate
+angusti-
+angustia
+angusticlave
+angustifoliate
+angustifolious
+angustirostrate
+angustisellate
+angustiseptal
+angustiseptate
+angustura
+angwantibo
+angwich
+Angwin
+Angy
+Anh
+anhaematopoiesis
+anhaematosis
+anhaemolytic
+anhalamine
+anhaline
+anhalonidine
+anhalonin
+anhalonine
+Anhalonium
+anhalouidine
+Anhalt
+anhang
+Anhanga
+anharmonic
+anhedonia
+anhedonic
+anhedral
+anhedron
+anhelation
+anhele
+anhelose
+anhelous
+anhematopoiesis
+anhematosis
+anhemitonic
+anhemolytic
+Anheuser
+anhidrosis
+anhidrotic
+anhima
+Anhimae
+Anhimidae
+anhinga
+anhingas
+anhistic
+anhistous
+anhungered
+anhungry
+Anhwei
+anhyd
+anhydraemia
+anhydraemic
+anhydrate
+anhydrated
+anhydrating
+anhydration
+anhydremia
+anhydremic
+anhydric
+anhydride
+anhydrides
+anhydridization
+anhydridize
+anhydrite
+anhydrization
+anhydrize
+anhydro-
+anhydroglocose
+anhydromyelia
+anhydrosis
+anhydrotic
+anhydrous
+anhydrously
+anhydroxime
+anhysteretic
+ANI
+ani
+Ania
+Aniak
+Aniakchak
+Aniakudo
+Aniba
+Anica
+anicca
+Anice
+Anicetus
+aniconic
+aniconism
+anicular
+anicut
+anidian
+anidiomatic
+anidiomatical
+anidrosis
+Aniela
+Aniellidae
+aniente
+anientise
+ANIF
+anigh
+anight
+anights
+Anil
+anil
+anilao
+anilau
+anile
+anileness
+anilic
+anilid
+anilide
+anilidic
+anilidoxime
+aniliid
+anilin
+anilinctus
+aniline
+anilines
+anilingus
+anilinism
+anilino
+anilinophile
+anilinophilous
+anilins
+anilities
+anility
+anilla
+anilopyrin
+anilopyrine
+anils
+anim
+anim.
+anima
+animability
+animable
+animableness
+animacule
+animadversal
+animadversion
+animadversional
+animadversions
+animadversive
+animadversiveness
+animadvert
+animadverted
+animadverter
+animadverting
+animadverts
+animal
+animala
+animalcula
+animalculae
+animalcular
+animalcule
+animalcules
+animalculine
+animalculism
+animalculist
+animalculous
+animalculum
+animalhood
+Animalia
+animalian
+animalic
+animalier
+animalillio
+animalisation
+animalise
+animalised
+animalish
+animalising
+animalism
+animalist
+animalistic
+animalities
+animality
+Animalivora
+animalivore
+animalivorous
+animalization
+animalize
+animalized
+animalizing
+animallike
+animally
+animalness
+animals
+animal-sized
+animando
+animant
+Animas
+animas
+animastic
+animastical
+animate
+animated
+animatedly
+animately
+animateness
+animater
+animaters
+animates
+animating
+animatingly
+animation
+animations
+animatism
+animatist
+animatistic
+animative
+animato
+animatograph
+animator
+animators
+anime
+animes
+animetta
+animi
+Animikean
+animikite
+animine
+animis
+animism
+animisms
+animist
+animistic
+animists
+animize
+animized
+animo
+animose
+animoseness
+animosities
+animosity
+animoso
+animotheism
+animous
+animus
+animuses
+anion
+anionic
+anionically
+anionics
+anions
+aniridia
+Anis
+anis
+anis-
+anisado
+anisal
+anisalcohol
+anisaldehyde
+anisaldoxime
+anisamide
+anisandrous
+anisanilide
+anisanthous
+anisate
+anisated
+anischuria
+anise
+aniseed
+aniseeds
+aniseikonia
+aniseikonic
+aniselike
+aniseroot
+anises
+anisette
+anisettes
+anisic
+anisidin
+anisidine
+anisidino
+anisil
+anisilic
+aniso-
+anisobranchiate
+anisocarpic
+anisocarpous
+anisocercal
+anisochromatic
+anisochromia
+anisocoria
+anisocotyledonous
+anisocotyly
+anisocratic
+anisocycle
+anisocytosis
+anisodactyl
+Anisodactyla
+anisodactyle
+Anisodactyli
+anisodactylic
+anisodactylous
+anisodont
+anisogamete
+anisogametes
+anisogametic
+anisogamic
+anisogamous
+anisogamy
+anisogenous
+anisogeny
+anisognathism
+anisognathous
+anisogynous
+anisoiconia
+anisoin
+anisokonia
+anisol
+anisole
+anisoles
+anisoleucocytosis
+Anisomeles
+anisomelia
+anisomelus
+anisomeric
+anisomerous
+anisometric
+anisometrope
+anisometropia
+anisometropic
+anisomyarian
+Anisomyodi
+anisomyodian
+anisomyodous
+anisopetalous
+anisophyllous
+anisophylly
+anisopia
+anisopleural
+anisopleurous
+anisopod
+Anisopoda
+anisopodal
+anisopodous
+anisopogonous
+Anisoptera
+anisopteran
+anisopterous
+anisosepalous
+anisospore
+anisostaminous
+anisostemonous
+anisosthenic
+anisostichous
+Anisostichus
+anisostomous
+anisotonic
+anisotropal
+anisotrope
+anisotropic
+anisotropical
+anisotropically
+anisotropies
+anisotropism
+anisotropous
+anisotropy
+anisoyl
+Anissa
+anisum
+anisuria
+anisyl
+anisylidene
+Anita
+anither
+anitinstitutionalism
+anitos
+Anitra
+anitrogenous
+Anius
+Aniwa
+Aniweta
+Anjali
+anjan
+Anjanette
+Anjela
+Anjou
+Ankara
+ankara
+ankaramite
+ankaratrite
+ankee
+Ankeny
+anker
+ankerhold
+ankerite
+ankerites
+ankh
+ankhs
+Anking
+ankle
+anklebone
+anklebones
+ankled
+ankle-deep
+anklejack
+ankle-jacked
+ankles
+anklet
+anklets
+ankling
+anklong
+anklung
+Ankney
+Ankoli
+Ankou
+ankus
+ankuses
+ankush
+ankusha
+ankushes
+ankylenteron
+ankyloblepharon
+ankylocheilia
+ankylodactylia
+ankylodontia
+ankyloglossia
+ankylomele
+ankylomerism
+ankylophobia
+ankylopodia
+ankylopoietic
+ankyloproctia
+ankylorrhinia
+ankylos
+ankylosaur
+Ankylosaurus
+ankylosaurus
+ankylose
+ankylosed
+ankyloses
+ankylosing
+ankylosis
+ankylostoma
+ankylostomiasis
+ankylotia
+ankylotic
+ankylotome
+ankylotomy
+ankylurethria
+ankyroid
+ANL
+anlace
+anlaces
+Anlage
+anlage
+anlagen
+anlages
+anlas
+anlases
+anlaut
+anlaute
+anlet
+anlia
+anmia
+Anmoore
+Ann
+ann
+ann.
+Anna
+anna
+Annaba
+Annabal
+Annabel
+Annabela
+Annabell
+Annabella
+Annabelle
+annabergite
+Annada
+Anna-Diana
+Annadiana
+Anna-Diane
+Annadiane
+annal
+Annale
+annale
+Annalee
+Annalen
+annalia
+Annaliese
+annaline
+Annalise
+annalism
+annalist
+annalistic
+annalistically
+annalists
+annalize
+annals
+annaly
+Annam
+Anna-Maria
+Annamaria
+Annamarie
+Annamese
+annamese
+Annamite
+Annamitic
+Annam-Muong
+Annam-muong
+Annandale
+Annapolis
+annapolis
+Annapurna
+Annarbor
+annary
+annas
+annat
+annates
+Annatol
+annats
+annatto
+annattos
+Annawan
+Anne
+anne
+anneal
+annealed
+annealer
+annealers
+annealing
+anneals
+Anne-Corinne
+Annecorinne
+annect
+annectant
+annectent
+annection
+Annecy
+annelid
+Annelida
+annelida
+annelidan
+Annelides
+annelidian
+annelidous
+annelids
+Anneliese
+Annelise
+annelism
+Annellata
+anneloid
+Annemanie
+Anne-Marie
+Annemarie
+Annenski
+Annensky
+annerodite
+annerre
+Anneslia
+annet
+Annetta
+Annette
+annex
+annexa
+annexable
+annexal
+annexation
+annexational
+annexationism
+annexationist
+annexations
+annexe
+annexed
+annexer
+annexes
+annexing
+annexion
+annexionist
+annexitis
+annexive
+annexment
+annexure
+Annfwn
+Anni
+anni
+Annia
+Annibale
+Annice
+annicut
+annidalin
+Annie
+annie
+Anniellidae
+annihil
+annihilability
+annihilable
+annihilate
+annihilated
+annihilates
+annihilating
+annihilation
+annihilationism
+annihilationist
+annihilationistic
+annihilationistical
+annihilations
+annihilative
+annihilator
+annihilators
+annihilatory
+Anniken
+Annis
+Annissa
+Annist
+annist
+Anniston
+annite
+anniv
+anniversalily
+anniversaries
+anniversarily
+anniversariness
+anniversary
+anniverse
+Annmaria
+Ann-Marie
+Annmarie
+Annnora
+anno
+annodated
+annominate
+annomination
+Annona
+annona
+Annonaceae
+annonaceous
+annonce
+Annora
+Annorah
+annot
+annotate
+annotated
+annotater
+annotates
+annotating
+annotation
+annotations
+annotative
+annotatively
+annotativeness
+annotator
+annotators
+annotatory
+annotine
+annotinous
+annotto
+announce
+announceable
+announced
+announcement
+announcements
+announcer
+announcers
+announces
+announcing
+annoy
+annoyance
+annoyancer
+annoyances
+annoyed
+annoyer
+annoyers
+annoyful
+annoying
+annoyingly
+annoyingness
+annoyment
+annoyous
+annoyously
+annoys
+annual
+annualist
+annualize
+annualized
+annually
+annuals
+annuary
+annuation
+annueler
+annueller
+annuent
+annuisance
+annuitant
+annuitants
+annuities
+annuity
+annul
+annular
+Annularia
+annularity
+annularly
+annulary
+Annulata
+annulata
+annulate
+annulated
+annulately
+annulation
+annulations
+annule
+annuler
+annulet
+annulets
+annulettee
+annuli
+annulism
+annullable
+annullate
+annullation
+annulled
+annuller
+annulli
+annulling
+annulment
+annulments
+annuloid
+Annuloida
+annuloida
+Annulosa
+annulosa
+annulosan
+annulose
+annuls
+annulus
+annuluses
+annum
+annumerate
+annunciable
+annunciade
+Annunciata
+annunciate
+annunciated
+annunciates
+annunciating
+Annunciation
+annunciation
+annunciations
+annunciative
+annunciator
+annunciators
+annunciatory
+Annunziata
+annus
+Annville
+Annwfn
+Annwn
+Anny
+ano-
+anoa
+anoas
+Anobiidae
+anobing
+anocarpous
+anocathartic
+anociassociation
+anociation
+anocithesia
+anococcygeal
+anodal
+anodally
+anode
+anodendron
+anodes
+anodic
+anodically
+anodine
+anodization
+anodize
+anodized
+anodizes
+anodizing
+Anodon
+anodon
+Anodonta
+anodontia
+anodos
+anodyne
+anodynes
+anodynia
+anodynic
+anodynous
+anoegenetic
+anoesia
+anoesis
+anoestrous
+anoestrum
+anoestrus
+anoetic
+anogenic
+anogenital
+Anogra
+anoia
+anoil
+anoine
+anoint
+anointed
+anointer
+anointers
+anointing
+anointment
+anointments
+anoints
+Anoka
+anole
+anoles
+anoli
+anolian
+Anolis
+Anolympiad
+anolyte
+anolytes
+anomal
+Anomala
+anomalies
+anomaliflorous
+anomaliped
+anomalipod
+anomalism
+anomalist
+anomalistic
+anomalistical
+anomalistically
+anomalo-
+anomalocephalus
+anomaloflorous
+Anomalogonatae
+anomalogonatous
+Anomalon
+anomalonomy
+Anomalopteryx
+anomaloscope
+anomalotrophy
+anomalous
+anomalously
+anomalousness
+anomalure
+Anomaluridae
+Anomalurus
+anomaly
+Anomatheca
+anomer
+Anomia
+anomia
+Anomiacea
+anomic
+anomie
+anomies
+Anomiidae
+anomite
+anomo-
+anomocarpous
+anomodont
+Anomodontia
+Anomoean
+Anomoeanism
+anomoeomery
+anomophyllous
+anomorhomboid
+anomorhomboidal
+anomouran
+anomphalous
+Anomura
+anomural
+anomuran
+anomurous
+anomy
+anon
+anon.
+anonaceous
+anonad
+anonang
+anoncillo
+anonol
+anonychia
+anonym
+anonyma
+anonyme
+anonymities
+anonymity
+anonymous
+anonymously
+anonymousness
+anonyms
+anonymuncule
+anoopsia
+anoopsias
+anoperineal
+anophele
+Anopheles
+anopheles
+Anophelinae
+anopheline
+anophoria
+anophthalmia
+anophthalmos
+Anophthalmus
+anophyte
+anopia
+anopias
+anopisthograph
+anopisthographic
+anopisthographically
+Anopla
+Anoplanthus
+anoplocephalic
+anoplonemertean
+Anoplonemertini
+anoplothere
+Anoplotheriidae
+anoplotherioid
+Anoplotherium
+anoplotheroid
+Anoplura
+anopluriform
+anopsia
+anopsias
+anopsy
+anopubic
+Anora
+anorak
+anoraks
+anorchi
+anorchia
+anorchism
+anorchous
+anorchus
+anorectal
+anorectic
+anorectous
+anoretic
+anorexia
+anorexiant
+anorexias
+anorexic
+anorexics
+anorexies
+anorexigenic
+anorexy
+anorgana
+anorganic
+anorganism
+anorganology
+anormal
+anormality
+anorn
+anorogenic
+anorth
+anorthic
+anorthite
+anorthite-basalt
+anorthitic
+anorthitite
+anorthoclase
+anorthographic
+anorthographical
+anorthographically
+anorthography
+anorthophyre
+anorthopia
+anorthoscope
+anorthose
+anorthosite
+anoscope
+anoscopy
+Anosia
+anosmatic
+anosmia
+anosmias
+anosmic
+anosognosia
+anosphrasia
+anosphresia
+anospinal
+anostosis
+Anostraca
+anoterite
+Another
+another
+another-gates
+another-guess
+anotherguess
+another-guise
+anotherkins
+anotia
+anotropia
+anotta
+anotto
+anotus
+Anouilh
+anounou
+anour
+anoura
+anoure
+anourous
+Anous
+ANOVA
+anova
+anovesical
+anovulant
+anovular
+anovulatory
+anoxaemia
+anoxaemic
+anoxemia
+anoxemias
+anoxemic
+anoxia
+anoxias
+anoxic
+anoxidative
+anoxybiosis
+anoxybiotic
+anoxyscope
+anp-
+ANPA
+anquera
+anre
+ans
+ansa
+ansae
+Ansar
+ansar
+Ansarian
+ansarian
+Ansarie
+ansate
+ansated
+ansation
+Anschauung
+anschauung
+Anschluss
+anschluss
+Anse
+Anseis
+Ansel
+Ansela
+Ansell
+Anselm
+Anselma
+Anselme
+Anselmi
+Anselmian
+Anselmo
+Anser
+anserated
+Anseres
+Anseriformes
+anserin
+Anserinae
+anserine
+anserines
+Ansermet
+anserous
+Ansgarius
+Anshan
+Anshar
+ANSI
+ansi
+Ansilma
+Ansilme
+Ansley
+Anson
+Ansonia
+Ansonville
+anspessade
+Ansted
+Anstice
+anstoss
+anstosse
+Anstus
+ansu
+ansulate
+answer
+answerability
+answerable
+answerableness
+answerably
+answer-back
+answered
+answerer
+answerers
+answering
+answeringly
+answerless
+answerlessly
+answers
+-ant
+an't
+ant
+ant-
+ant.
+ANTA
+Anta
+anta
+Antabus
+Antabuse
+antacid
+antacids
+antacrid
+antadiform
+antae
+Antaea
+Antaean
+antaean
+Antaeus
+antaeus
+antagonisable
+antagonisation
+antagonise
+antagonised
+antagonising
+antagonism
+antagonisms
+antagonist
+antagonistic
+antagonistical
+antagonistically
+antagonists
+antagonizable
+antagonization
+antagonize
+antagonized
+antagonizer
+antagonizes
+antagonizing
+antagony
+Antagoras
+Antaimerina
+Antaios
+Antaiva
+Antakiya
+Antakya
+Antal
+antal
+antalgesic
+antalgic
+antalgics
+antalgol
+antalkali
+antalkalies
+antalkaline
+antalkalis
+Antalya
+antambulacral
+antanacathartic
+antanaclasis
+antanagoge
+Antananarivo
+Antanandro
+antanemic
+antapex
+antapexes
+antaphrodisiac
+antaphroditic
+antapices
+antapocha
+antapodosis
+antapology
+antapoplectic
+Antar
+Antara
+antarala
+antaranga
+antarchism
+antarchist
+antarchistic
+antarchistical
+antarchy
+Antarctalia
+Antarctalian
+Antarctic
+antarctic
+Antarctica
+antarctica
+antarctical
+antarctically
+Antarctogaea
+Antarctogaean
+Antares
+antares
+antarthritic
+antas
+antasphyctic
+antasthenic
+antasthmatic
+antatrophic
+antbird
+antdom
+ante
+ante-
+anteact
+ante-acted
+anteal
+anteambulate
+anteambulation
+ante-ambulo
+ant-eater
+anteater
+anteaters
+Ante-babylonish
+antebaptismal
+antebath
+ante-bellum
+antebellum
+Antebi
+antebrachia
+antebrachial
+antebrachium
+antebridal
+antecabinet
+antecaecal
+antecardium
+antecavern
+antecedal
+antecedaneous
+antecedaneously
+antecede
+anteceded
+antecedence
+antecedency
+antecedent
+antecedental
+antecedently
+antecedents
+antecedes
+anteceding
+antecell
+antecessor
+antechamber
+antechambers
+ante-chapel
+antechapel
+Antechinomys
+antechoir
+antechoirs
+Ante-christian
+ante-Christum
+antechurch
+anteclassical
+antecloset
+antecolic
+antecommunion
+anteconsonantal
+antecornu
+antecourt
+antecoxal
+antecubital
+antecurvature
+Ante-cuvierian
+anted
+antedate
+antedated
+antedates
+antedating
+antedawn
+antediluvial
+antediluvially
+antediluvian
+Antedon
+antedonin
+antedorsal
+ante-ecclesiastical
+anteed
+ante-eternity
+antefact
+antefebrile
+antefix
+antefixa
+antefixal
+antefixes
+anteflected
+anteflexed
+anteflexion
+antefurca
+antefurcae
+antefurcal
+antefuture
+antegarden
+Ante-gothic
+antegrade
+antehall
+Ante-hieronymian
+antehistoric
+antehuman
+antehypophysis
+anteing
+anteinitial
+antejentacular
+antejudiciary
+antejuramentum
+Ante-justinian
+antelabium
+antelation
+antelegal
+antelocation
+antelope
+antelopes
+antelopian
+antelopine
+antelucan
+antelude
+anteluminary
+antemarginal
+antemarital
+antemask
+antemedial
+antemeridian
+antemetallic
+antemetic
+antemillennial
+antemingent
+antemortal
+ante-mortem
+antemortem
+Ante-mosaic
+Ante-mosaical
+antemundane
+antemural
+antenarial
+antenatal
+antenatalitial
+antenati
+antenatus
+antenave
+ante-Nicaean
+Ante-nicene
+ante-Nicene
+antenna
+antennae
+antennal
+Antennaria
+antennariid
+Antennariidae
+Antennarius
+antennary
+antennas
+Antennata
+antennate
+antennifer
+antenniferous
+antenniform
+antennula
+antennular
+antennulary
+antennule
+antenodal
+antenoon
+Antenor
+Ante-norman
+antenumber
+antenuptial
+anteoccupation
+anteocular
+anteopercle
+anteoperculum
+ante-orbital
+anteorbital
+Antep
+antepagment
+antepagmenta
+antepagments
+antepalatal
+ante-partum
+antepartum
+antepaschal
+antepaschel
+antepast
+antepasts
+antepatriarchal
+antepectoral
+antepectus
+antependia
+antependium
+antependiums
+antepenuit
+antepenult
+antepenultima
+antepenultimate
+antepenults
+antephialtic
+antepileptic
+antepirrhema
+antepone
+anteporch
+anteport
+anteportico
+anteporticoes
+anteporticos
+anteposition
+anteposthumous
+anteprandial
+antepredicament
+antepredicamental
+antepreterit
+antepretonic
+anteprohibition
+anteprostate
+anteprostatic
+antepyretic
+antequalm
+antereformation
+antereformational
+anteresurrection
+anterethic
+anterevolutional
+anterevolutionary
+antergic
+anteri
+anteriad
+anterin
+anterior
+anteriority
+anteriorly
+anteriorness
+anteriors
+anterioyancer
+antero-
+anteroclusion
+anterodorsal
+anteroexternal
+anterofixation
+anteroflexion
+anterofrontal
+anterograde
+anteroinferior
+anterointerior
+anterointernal
+anterolateral
+anterolaterally
+anteromedial
+anteromedian
+ante-room
+anteroom
+anterooms
+anteroparietal
+anteroposterior
+anteroposteriorly
+anteropygal
+Anteros
+anterospinal
+anterosuperior
+anteroventral
+anteroventrally
+Anterus
+antes
+antescript
+Antesfort
+antesignani
+antesignanus
+antespring
+antestature
+antesternal
+antesternum
+antesunrise
+antesuperior
+ante-temple
+antetemple
+antethem
+antetype
+antetypes
+Anteva
+antevenient
+anteversion
+antevert
+anteverted
+anteverting
+anteverts
+Ante-victorian
+antevocalic
+Antevorta
+antewar
+anth-
+Anthas
+anthdia
+Anthe
+Anthea
+anthecological
+anthecologist
+anthecology
+Antheia
+Antheil
+anthela
+anthelae
+anthelia
+anthelices
+anthelion
+anthelions
+anthelix
+Anthelme
+anthelminthic
+anthelmintic
+anthem
+anthema
+anthemas
+anthemata
+anthemed
+anthemene
+anthemia
+Anthemideae
+antheming
+anthemion
+Anthemis
+anthemis
+anthems
+anthemwise
+anthemy
+anther
+Antheraea
+antheral
+Anthericum
+antherid
+antheridia
+antheridial
+antheridiophore
+antheridium
+antherids
+antheriferous
+antheriform
+antherine
+antherless
+antherogenous
+antheroid
+antherozoid
+antherozoidal
+antherozooid
+antherozooidal
+anthers
+antheses
+anthesis
+Anthesteria
+Anthesteriac
+anthesterin
+Anthesterion
+anthesterol
+Antheus
+antheximeter
+Anthia
+Anthiathia
+Anthicidae
+Anthidium
+anthill
+anthills
+Anthinae
+anthine
+antho-
+anthobian
+anthobiology
+anthocarp
+anthocarpous
+anthocephalous
+Anthoceros
+Anthocerotaceae
+Anthocerotales
+anthocerote
+anthochlor
+anthochlorine
+anthoclinium
+anthocyan
+anthocyanidin
+anthocyanin
+anthodia
+anthodium
+anthoecological
+anthoecologist
+anthoecology
+anthogenesis
+anthogenetic
+anthogenous
+anthography
+anthoid
+anthokyan
+anthol
+antholite
+anthological
+anthologically
+anthologies
+anthologion
+anthologise
+anthologised
+anthologising
+anthologist
+anthologists
+anthologize
+anthologized
+anthologizer
+anthologizes
+anthologizing
+anthology
+antholysis
+Antholyza
+anthomania
+anthomaniac
+Anthomedusae
+anthomedusan
+Anthomyia
+anthomyiid
+Anthomyiidae
+Anthon
+Anthonin
+Anthonomus
+Anthony
+anthony
+anthood
+anthophagous
+anthophagy
+Anthophila
+anthophile
+anthophilian
+anthophilous
+anthophobia
+Anthophora
+anthophore
+Anthophoridae
+anthophorous
+anthophyllite
+anthophyllitic
+Anthophyta
+anthophyte
+anthorine
+anthos
+anthosiderite
+Anthospermum
+anthotaxis
+anthotaxy
+anthotropic
+anthotropism
+anthoxanthin
+Anthoxanthum
+Anthozoa
+anthozoa
+anthozoan
+anthozoic
+anthozooid
+anthozoon
+anthra-
+anthracaemia
+anthracemia
+anthracene
+anthraceniferous
+anthraces
+anthrachrysone
+anthracia
+anthracic
+anthraciferous
+anthracin
+anthracite
+anthracites
+anthracitic
+anthracitiferous
+anthracitious
+anthracitism
+anthracitization
+anthracitous
+anthracnose
+anthracnosis
+anthracocide
+anthracoid
+anthracolithic
+anthracomancy
+Anthracomarti
+anthracomartian
+Anthracomartus
+anthracometer
+anthracometric
+anthraconecrosis
+anthraconite
+Anthracosaurus
+anthracosilicosis
+anthracosis
+anthracothere
+Anthracotheriidae
+Anthracotherium
+anthracotic
+anthracoxen
+anthracyl
+anthradiol
+anthradiquinone
+anthraflavic
+anthragallol
+anthrahydroquinone
+anthralin
+anthramin
+anthramine
+anthranil
+anthranilate
+anthranilic
+anthranol
+anthranone
+anthranoyl
+anthranyl
+anthraphenone
+anthrapurpurin
+anthrapyridine
+anthraquinol
+anthraquinone
+anthraquinonyl
+anthrarufin
+anthrasilicosis
+anthratetrol
+anthrathiophene
+anthratriol
+anthrax
+anthraxolite
+anthraxylon
+Anthrenus
+anthribid
+Anthribidae
+Anthriscus
+anthrohopobiological
+anthroic
+anthrol
+anthrone
+anthrop
+anthrop-
+anthrop.
+anthrophore
+anthropic
+anthropical
+Anthropidae
+anthropo-
+anthropobiologist
+anthropobiology
+anthropocentric
+anthropocentrically
+anthropocentricity
+anthropocentrism
+anthropoclimatologist
+anthropoclimatology
+anthropocosmic
+anthropodeoxycholic
+Anthropodus
+anthropogenesis
+anthropogenetic
+anthropogenic
+anthropogenist
+anthropogenous
+anthropogeny
+anthropogeographer
+anthropogeographic
+anthropogeographical
+anthropogeography
+anthropoglot
+anthropogony
+anthropographic
+anthropography
+anthropoid
+anthropoidal
+Anthropoidea
+anthropoidea
+anthropoidean
+anthropoids
+anthropol
+anthropol.
+anthropolater
+anthropolatric
+anthropolatry
+anthropolite
+anthropolith
+anthropolithic
+anthropolitic
+anthropologic
+anthropological
+anthropologically
+anthropologies
+anthropologist
+anthropologists
+anthropology
+anthropomancy
+anthropomantic
+anthropomantist
+anthropometer
+anthropometric
+anthropometrical
+anthropometrically
+anthropometrist
+anthropometry
+anthropomophitism
+anthropomorph
+Anthropomorpha
+anthropomorphic
+anthropomorphical
+anthropomorphically
+Anthropomorphidae
+anthropomorphisation
+anthropomorphise
+anthropomorphised
+anthropomorphising
+anthropomorphism
+anthropomorphisms
+anthropomorphist
+anthropomorphite
+anthropomorphitic
+anthropomorphitical
+anthropomorphitism
+anthropomorphization
+anthropomorphize
+anthropomorphized
+anthropomorphizing
+anthropomorphological
+anthropomorphologically
+anthropomorphology
+anthropomorphosis
+anthropomorphotheist
+anthropomorphous
+anthropomorphously
+anthroponomical
+anthroponomics
+anthroponomist
+anthroponomy
+anthroponym
+anthropopathia
+anthropopathic
+anthropopathically
+anthropopathism
+anthropopathite
+anthropopathy
+anthropophagi
+anthropophagic
+anthropophagical
+anthropophaginian
+anthropophagism
+anthropophagist
+anthropophagistic
+anthropophagit
+anthropophagite
+anthropophagize
+anthropophagous
+anthropophagously
+anthropophagus
+anthropophagy
+anthropophilous
+anthropophobia
+anthropophuism
+anthropophuistic
+anthropophysiography
+anthropophysite
+Anthropopithecus
+anthropopsychic
+anthropopsychism
+Anthropos
+anthroposcopy
+anthroposociologist
+anthroposociology
+anthroposomatology
+anthroposophic
+anthroposophical
+anthroposophist
+anthroposophy
+anthropoteleoclogy
+anthropoteleological
+anthropotheism
+anthropotheist
+anthropotheistic
+anthropotomical
+anthropotomist
+anthropotomy
+anthropotoxin
+Anthropozoic
+anthropozoic
+anthropurgic
+anthroropolith
+anthroxan
+anthroxanic
+anthryl
+anthrylene
+anththeridia
+Anthurium
+anthurium
+Anthus
+Anthyllis
+anthypnotic
+anthypophora
+anthypophoretic
+Anti
+anti
+anti-
+Antia
+antiabolitionist
+antiabortion
+antiabrasion
+antiabrin
+antiabsolutist
+antiacademic
+anti-acid
+antiacid
+antiadiaphorist
+antiaditis
+antiadministration
+antiae
+antiaesthetic
+antiager
+antiagglutinant
+antiagglutinating
+antiagglutination
+antiagglutinative
+antiagglutinin
+antiaggression
+antiaggressionist
+antiaggressive
+antiaggressively
+antiaggressiveness
+anti-aircraft
+antiaircraft
+antialbumid
+antialbumin
+antialbumose
+antialcoholic
+antialcoholism
+antialcoholist
+antialdoxime
+antialexin
+antialien
+Anti-allied
+Anti-ally
+antiamboceptor
+Anti-american
+anti-American
+Anti-americanism
+antiamusement
+antiamylase
+antianaphylactogen
+antianaphylaxis
+antianarchic
+antianarchist
+Anti-anglican
+antiangular
+antiannexation
+antiannexationist
+antianopheline
+antianthrax
+antianthropocentric
+antianthropomorphism
+antiantibody
+antiantidote
+antiantienzyme
+antiantitoxin
+antianxiety
+antiapartheid
+antiaphrodisiac
+antiaphthic
+antiapoplectic
+antiapostle
+antiaquatic
+antiar
+Anti-arab
+anti-Arab
+Antiarcha
+Antiarchi
+Anti-arian
+antiarin
+antiarins
+Antiaris
+antiaristocracies
+antiaristocracy
+antiaristocrat
+antiaristocratic
+antiaristocratical
+antiaristocratically
+Anti-aristotelian
+anti-Aristotelian
+anti-Aristotelianism
+Anti-armenian
+Anti-arminian
+Anti-arminianism
+antiarrhythmic
+antiars
+antiarthritic
+antiascetic
+antiasthmatic
+antiastronomical
+Anti-athanasian
+antiatheism
+antiatheist
+antiatheistic
+antiatheistical
+antiatheistically
+Anti-athenian
+antiatom
+antiatoms
+antiatonement
+anti-attrition
+antiattrition
+anti-Australian
+anti-Austria
+Anti-austrian
+anti-Austrian
+antiauthoritarian
+antiauthoritarianism
+antiautolysin
+antiauxin
+Anti-babylonianism
+antibacchic
+antibacchii
+antibacchius
+antibacterial
+antibacteriolytic
+antiballistic
+antiballooner
+antibalm
+antibank
+Anti-bartholomew
+antibaryon
+antibasilican
+antibenzaldoxime
+antiberiberin
+Antibes
+antibias
+anti-Bible
+Anti-biblic
+Anti-biblical
+anti-Biblical
+anti-Biblically
+antibibliolatry
+antibigotry
+antibilious
+antibiont
+antibiosis
+antibiotic
+antibiotically
+antibiotics
+Anti-birmingham
+anti-birmingham
+antibishop
+antiblack
+antiblackism
+antiblastic
+antiblennorrhagic
+antiblock
+antiblue
+antibodies
+antibody
+Anti-bohemian
+Anti-bolshevik
+anti-Bolshevik
+anti-Bolshevism
+Anti-bolshevist
+anti-Bolshevist
+anti-Bolshevistic
+Anti-bonapartist
+antiboss
+antibourgeois
+antiboxing
+antiboycott
+antibrachial
+antibreakage
+antibridal
+Anti-british
+anti-British
+Anti-britishism
+antibromic
+antibubonic
+antibug
+antibureaucratic
+Antiburgher
+antiburgher
+antiburglar
+antiburglary
+antibusiness
+antibusing
+antic
+antica
+anticachectic
+Anti-caesar
+antical
+anticalcimine
+anticalculous
+anticalligraphic
+antically
+Anti-calvinism
+anti-Calvinism
+Anti-calvinist
+anti-Calvinist
+Anti-calvinistic
+anti-Calvinistic
+anti-Calvinistical
+Anti-calvinistically
+anticamera
+anticancer
+anticancerous
+anticapital
+anticapitalism
+anticapitalist
+anticapitalistic
+anticapitalistically
+anticapitalists
+anticar
+anticardiac
+anticardium
+anticarious
+anticarnivorous
+anticaste
+anticatalase
+anticatalyst
+anticatalytic
+anticatalytically
+anticatalyzer
+anticatarrhal
+Anti-cathedralist
+anticathexis
+anticathode
+Anti-catholic
+anti-Catholic
+anticatholic
+anti-Catholicism
+anticausotic
+anticaustic
+anticensorial
+anticensorious
+anticensoriously
+anticensoriousness
+anticensorship
+anticentralism
+anticentralist
+anticentralization
+anticephalalgic
+anticeremonial
+anticeremonialism
+anticeremonialist
+anticeremonially
+anticeremonious
+anticeremoniously
+anticeremoniousness
+antichamber
+antichance
+anticheater
+antichlor
+antichlorine
+antichloristic
+antichlorotic
+anticholagogue
+anticholinergic
+anticholinesterase
+antichoromanic
+antichorus
+antichreses
+antichresis
+antichretic
+Antichrist
+antichrist
+Anti-christian
+anti-christian
+antichristian
+Anti-christianism
+antichristianism
+Anti-christianity
+antichristianity
+Anti-christianize
+Anti-christianly
+antichristianly
+antichrists
+antichrome
+antichronical
+antichronically
+antichronism
+antichthon
+antichthones
+antichurch
+antichurchian
+antichymosin
+anticigarette
+anticipant
+anticipatable
+anticipate
+anticipated
+anticipates
+anticipating
+anticipatingly
+anticipation
+anticipations
+anticipative
+anticipatively
+anticipator
+anticipatorily
+anticipators
+anticipatory
+anticity
+anticivic
+anticivil
+anticivilian
+anticivism
+anticize
+antick
+anticked
+anticker
+anticking
+anticks
+antickt
+anticlactic
+anticlassical
+anticlassicalism
+anticlassicalist
+anticlassically
+anticlassicalness
+anticlassicism
+anticlassicist
+anticlastic
+Anticlea
+anticlergy
+anticlerical
+anticlericalism
+anticlericalist
+anticlimactic
+anticlimactical
+anticlimactically
+anticlimax
+anticlimaxes
+anticlinal
+anticline
+anticlines
+anticlinoria
+anticlinorium
+anticlnoria
+anticlockwise
+anticlogging
+anticly
+anticnemion
+anticness
+anticoagulan
+anticoagulant
+anticoagulants
+anticoagulate
+anticoagulating
+anticoagulation
+anticoagulative
+anticoagulator
+anticoagulin
+anticodon
+anticogitative
+anticoincidence
+anticold
+anticolic
+anticollision
+anticolonial
+anticombination
+anticomet
+anticomment
+anticommercial
+anticommercialism
+anticommercialist
+anticommercialistic
+anticommerciality
+anticommercially
+anticommercialness
+anticommunism
+anticommunist
+anticommunistic
+anticommunistical
+anticommunistically
+anticommunists
+anticommutative
+anticompetitive
+anticomplement
+anticomplementary
+anticomplex
+anticonceptionist
+anticonductor
+anticonfederationism
+anticonfederationist
+anticonfederative
+anticonformist
+anticonformities
+anticonformity
+anticonscience
+anticonscription
+anticonscriptive
+anticonservation
+anticonservationist
+anticonservatism
+anticonservative
+anticonservatively
+anticonservativeness
+anticonstitution
+anticonstitutional
+anticonstitutionalism
+anticonstitutionalist
+anticonstitutionally
+anticonsumer
+anticontagion
+anticontagionist
+anticontagious
+anticontagiously
+anticontagiousness
+anticonvellent
+anticonvention
+anticonventional
+anticonventionalism
+anticonventionalist
+anticonventionally
+anticonvulsant
+anticonvulsive
+anticor
+anticorn
+anticorona
+anticorrosion
+anticorrosive
+anticorrosively
+anticorrosiveness
+anticorrosives
+anticorruption
+anticorset
+anticosine
+anticosmetic
+anticosmetics
+Anticosti
+anticouncil
+anticourt
+anticourtier
+anticous
+anticovenanter
+anticovenanting
+anticreation
+anticreational
+anticreationism
+anticreationist
+anticreative
+anticreatively
+anticreativeness
+anticreativity
+anticreator
+anticreep
+anticreeper
+anticreeping
+anticrepuscular
+anticrepuscule
+anticrime
+anticrisis
+anticritic
+anticritical
+anticritically
+anticriticalness
+anticritique
+anticrochet
+anticrotalic
+anticruelty
+anticryptic
+anticryptically
+antics
+anticularia
+anticult
+anticultural
+anticum
+anticus
+anticyclic
+anticyclical
+anticyclically
+anticyclogenesis
+anticyclolysis
+anticyclone
+anticyclones
+anticyclonic
+anticyclonically
+anticynic
+anticynical
+anticynically
+anticynicism
+anticytolysin
+anticytotoxin
+antidactyl
+antidancing
+antidandruff
+anti-Darwin
+Anti-darwinian
+anti-Darwinian
+Anti-darwinism
+anti-Darwinism
+anti-Darwinist
+antidecalogue
+antideflation
+antidemocracies
+antidemocracy
+antidemocrat
+antidemocratic
+antidemocratical
+antidemocratically
+antidemoniac
+anti-depressant
+antidepressant
+antidepressants
+antidepressive
+antiderivative
+antidetonant
+antidetonating
+antidiabetic
+antidiastase
+Antidicomarian
+Antidicomarianite
+antidicomarianite
+antidictionary
+antidiffuser
+antidinic
+antidiphtheria
+antidiphtheric
+antidiphtherin
+antidiphtheritic
+antidisciplinarian
+antidiscrimination
+antidisestablishmentarian
+antidisestablishmentarianism
+antidiuretic
+antidivine
+antidivorce
+Antido
+Anti-docetae
+antidogmatic
+antidogmatical
+antidogmatically
+antidogmatism
+antidogmatist
+antidomestic
+antidomestically
+antidominican
+antidora
+Antidorcas
+antidoron
+antidotal
+antidotally
+antidotary
+antidote
+antidoted
+antidotes
+antidotical
+antidotically
+antidoting
+antidotism
+antidraft
+antidrag
+Anti-dreyfusard
+antidromal
+antidromic
+antidromically
+antidromous
+antidromy
+antidrug
+antiduke
+antidumping
+antidynamic
+antidynastic
+antidynastical
+antidynastically
+antidynasty
+antidyscratic
+antidysenteric
+antidysuric
+antieavesdropping
+antiecclesiastic
+antiecclesiastical
+antiecclesiastically
+antiecclesiasticism
+antiedemic
+antieducation
+antieducational
+antieducationalist
+antieducationally
+antieducationist
+antiegoism
+antiegoist
+antiegoistic
+antiegoistical
+antiegoistically
+antiegotism
+antiegotist
+antiegotistic
+antiegotistical
+antiegotistically
+antiejaculation
+antielectron
+antielectrons
+anti-emetic
+antiemetic
+antiemetics
+antiemperor
+antiempiric
+antiempirical
+antiempirically
+antiempiricism
+antiempiricist
+antiendotoxin
+antiendowment
+antienergistic
+Anti-english
+anti-English
+antient
+Anti-entente
+antienthusiasm
+antienthusiast
+antienthusiastic
+antienthusiastically
+antienvironmentalism
+antienvironmentalist
+antienvironmentalists
+antienzymatic
+antienzyme
+antienzymic
+antiepicenter
+antiepileptic
+antiepiscopal
+antiepiscopist
+antiepithelial
+antierosion
+antierosive
+antierysipelas
+antiestablishment
+Antietam
+anti-ethmc
+antiethnic
+antieugenic
+anti-Europe
+Anti-european
+anti-European
+anti-Europeanism
+antievangelical
+antievolution
+antievolutional
+antievolutionally
+antievolutionary
+antievolutionist
+antievolutionistic
+antiexpansion
+antiexpansionism
+antiexpansionist
+antiexporting
+antiexpressionism
+antiexpressionist
+antiexpressionistic
+antiexpressive
+antiexpressively
+antiexpressiveness
+antiextreme
+antieyestrain
+antiface
+antifaction
+antifame
+antifanatic
+Anti-fascism
+antifascism
+Anti-fascist
+antifascist
+Anti-fascisti
+antifascists
+antifat
+antifatigue
+antifebrile
+antifebrin
+antifederal
+Antifederalism
+antifederalism
+Antifederalist
+anti-federalist
+antifederalist
+antifelon
+antifelony
+antifemale
+antifeminine
+antifeminism
+antifeminist
+antifeministic
+antiferment
+antifermentative
+antiferroelectric
+antiferromagnet
+antiferromagnetic
+antiferromagnetism
+antifertility
+antifertilizer
+antifeudal
+antifeudalism
+antifeudalist
+antifeudalistic
+antifeudalization
+antifibrinolysin
+antifibrinolysis
+antifideism
+antifire
+antiflash
+antiflattering
+antiflatulent
+antiflux
+antifoam
+antifoaming
+antifoggant
+antifogmatic
+antiforeign
+antiforeigner
+antiforeignism
+antiformant
+antiformin
+antifouler
+antifouling
+Anti-fourierist
+antifowl
+anti-France
+antifraud
+antifreeze
+antifreezes
+antifreezing
+Anti-french
+anti-French
+anti-Freud
+Anti-freudian
+anti-Freudian
+anti-Freudianism
+antifriction
+antifrictional
+antifrost
+antifundamentalism
+antifundamentalist
+antifungal
+antifungin
+antifungus
+antigalactagogue
+antigalactic
+anti-gallic
+Anti-gallican
+anti-gallican
+anti-gallicanism
+antigambling
+antiganting
+antigay
+antigen
+antigene
+antigenes
+antigenic
+antigenically
+antigenicity
+antigens
+Anti-german
+anti-German
+anti-Germanic
+Anti-germanism
+anti-Germanism
+anti-Germanization
+antighostism
+antigigmanic
+antiglare
+antiglobulin
+antiglyoxalase
+Anti-gnostic
+antignostic
+antignostical
+Antigo
+anti-god
+antigod
+Antigone
+antigone
+antigonococcic
+Antigonon
+antigonorrheal
+antigonorrheic
+Antigonus
+antigorite
+Anti-gothicist
+antigovernment
+antigovernmental
+antigovernmentally
+antigraft
+antigrammatical
+antigrammatically
+antigrammaticalness
+antigraph
+antigraphy
+antigravitate
+antigravitation
+antigravitational
+antigravitationally
+antigravity
+anti-Greece
+anti-Greek
+antigropelos
+antigrowth
+Antigua
+Antiguan
+antiguerilla
+anti-guggler
+antiguggler
+antigun
+antigyrous
+antihalation
+Anti-hanoverian
+antiharmonist
+antihectic
+antihelices
+antihelix
+antihelixes
+antihelminthic
+antihemagglutinin
+antihemisphere
+antihemoglobin
+antihemolysin
+antihemolytic
+antihemophilic
+antihemorrhagic
+antihemorrheidal
+anti-hero
+antihero
+antiheroes
+anti-heroic
+antiheroic
+antiheroism
+antiheterolysin
+antihidrotic
+antihierarchal
+antihierarchic
+antihierarchical
+antihierarchically
+antihierarchies
+antihierarchism
+antihierarchist
+antihierarchy
+antihijack
+antihistamine
+antihistamines
+antihistaminic
+antihistorical
+anti-hog-cholera
+antiholiday
+antihomosexual
+antihormone
+antihuff
+antihum
+antihuman
+antihumanism
+antihumanist
+antihumanistic
+antihumanity
+antihumbuggist
+antihunting
+antihydrophobic
+antihydropic
+antihydropin
+antihygienic
+antihygienically
+antihylist
+antihypertensive
+antihypertensives
+antihypnotic
+antihypnotically
+antihypochondriac
+antihypophora
+antihysteric
+Anti-ibsenite
+anti-icer
+anti-icteric
+anti-idealism
+anti-idealist
+anti-idealistic
+anti-idealistically
+anti-idolatrous
+anti-immigration
+anti-immigrationist
+anti-immune
+anti-imperialism
+anti-imperialist
+anti-imperialistic
+anti-incrustator
+anti-indemnity
+anti-induction
+anti-inductive
+anti-inductively
+anti-inductiveness
+anti-infallibilist
+anti-infantal
+antiinflammatories
+antiinflammatory
+anti-innovationist
+antiinstitutionalist
+antiinstitutionalists
+antiinsurrectionally
+antiinsurrectionists
+anti-intellectual
+anti-intellectualism
+anti-intellectualist
+anti-intellectuality
+anti-intermediary
+anti-Irish
+Anti-irishism
+anti-isolation
+anti-isolationism
+anti-isolationist
+anti-isolysin
+Anti-italian
+anti-Italian
+anti-Italianism
+anti-jacobin
+anti-jacobinism
+antijam
+antijamming
+Anti-jansenist
+Anti-japanese
+anti-Japanese
+Anti-japanism
+Anti-jesuit
+anti-Jesuit
+anti-Jesuitic
+anti-Jesuitical
+anti-Jesuitically
+anti-Jesuitism
+anti-Jesuitry
+Anti-jewish
+anti-Jewish
+Anti-judaic
+anti-Judaic
+Anti-judaism
+anti-Judaism
+anti-Judaist
+anti-Judaistic
+Antikamnia
+antikathode
+antikenotoxin
+antiketogen
+antiketogenesis
+antiketogenic
+antikinase
+antiking
+antikings
+Anti-klan
+Anti-klanism
+antiknock
+antiknocks
+Antikythera
+antilabor
+antilaborist
+antilacrosse
+antilacrosser
+antilactase
+anti-laissez-faire
+Anti-lamarckian
+antilapsarian
+antilapse
+Anti-latin
+anti-Latin
+anti-Latinism
+Anti-laudism
+antileague
+anti-leaguer
+antileak
+Anti-Lebanon
+anti-lecomption
+anti-lecomptom
+antileft
+antilegalist
+antilegomena
+antilemic
+antilens
+antilepsis
+antileptic
+antilepton
+antilethargic
+antileukemic
+antileveling
+antilevelling
+Antilia
+Anti-liberal
+antiliberal
+antiliberalism
+antiliberalist
+antiliberalistic
+antiliberally
+antiliberalness
+antiliberals
+antilibration
+antilife
+antilift
+antilipase
+antilipoid
+antiliquor
+antilithic
+antilitter
+antilittering
+antiliturgic
+antiliturgical
+antiliturgically
+antiliturgist
+antiliturgy
+Antillean
+Antilles
+antilles
+antilobium
+Antilocapra
+Antilocapridae
+Antilochus
+antiloemic
+antilog
+antilogarithm
+antilogarithmic
+antilogarithms
+antilogic
+antilogical
+antilogies
+antilogism
+antilogistic
+antilogistically
+antilogous
+antilogs
+antilogy
+antiloimic
+Antilope
+Antilopinae
+antilopine
+antiloquy
+antilottery
+antiluetic
+antiluetin
+antilynching
+antilysin
+antilysis
+antilyssic
+antilytic
+antimacassar
+antimacassars
+Anti-macedonian
+Anti-macedonianism
+antimachination
+antimachine
+antimachinery
+Antimachus
+antimagistratical
+antimagnetic
+antimalaria
+antimalarial
+antimale
+antimallein
+Anti-malthusian
+anti-Malthusian
+anti-Malthusianism
+antiman
+antimanagement
+antimaniac
+anti-maniacal
+antimaniacal
+Antimarian
+antimark
+antimartyr
+antimask
+antimasker
+antimasks
+Anti-Mason
+Antimason
+antimason
+Anti-Masonic
+Antimasonic
+Anti-Masonry
+Antimasonry
+antimasque
+antimasquer
+antimasquerade
+antimaterialism
+antimaterialist
+antimaterialistic
+antimaterialistically
+antimatrimonial
+antimatrimonialist
+antimatter
+antimechanism
+antimechanist
+antimechanistic
+antimechanistically
+antimechanization
+antimediaeval
+antimediaevalism
+antimediaevalist
+antimediaevally
+antimedical
+antimedically
+antimedication
+antimedicative
+antimedicine
+antimedieval
+antimedievalism
+antimedievalist
+antimedievally
+antimelancholic
+antimellin
+antimeningococcic
+antimensia
+antimension
+antimensium
+antimephitic
+antimere
+antimeres
+antimerger
+antimerging
+antimeric
+Antimerina
+antimerism
+antimeristem
+antimesia
+antimeson
+Anti-messiah
+antimetabole
+antimetabolite
+antimetathesis
+antimetathetic
+antimeter
+antimethod
+antimethodic
+antimethodical
+antimethodically
+antimethodicalness
+antimetrical
+antimetropia
+antimetropic
+Anti-mexican
+anti-Mexican
+antimiasmatic
+antimicrobial
+antimicrobic
+antimilitarism
+antimilitarist
+antimilitaristic
+antimilitaristically
+antimilitary
+antiministerial
+antiministerialist
+antiministerially
+antiminsia
+antiminsion
+antimiscegenation
+antimissile
+antimission
+antimissionary
+antimissioner
+antimitotic
+antimixing
+antimnemonic
+antimodel
+antimodern
+antimodernism
+antimodernist
+antimodernistic
+antimodernization
+antimodernly
+antimodernness
+Anti-mohammedan
+antimonarch
+antimonarchal
+antimonarchally
+antimonarchial
+antimonarchic
+antimonarchical
+antimonarchically
+antimonarchicalness
+antimonarchism
+antimonarchist
+antimonarchistic
+antimonarchists
+antimonarchy
+antimonate
+Anti-mongolian
+antimonial
+antimoniate
+antimoniated
+antimonic
+antimonid
+antimonide
+antimonies
+antimoniferous
+antimonioso-
+antimonious
+antimonite
+antimonium
+antimoniuret
+antimoniureted
+antimoniuretted
+antimonopolism
+antimonopolist
+antimonopolistic
+antimonopolization
+antimonopoly
+antimonous
+antimonsoon
+antimony
+antimonyl
+anti-mony-yellow
+antimoral
+antimoralism
+antimoralist
+antimoralistic
+antimorality
+Anti-mosaical
+antimosquito
+antimusical
+antimusically
+antimusicalness
+antimycotic
+antimystic
+antimystical
+antimystically
+antimysticalness
+antimysticism
+antimythic
+antimythical
+Antin
+antinarcotic
+antinarcotics
+antinarrative
+antinational
+antinationalism
+Anti-nationalist
+antinationalist
+antinationalistic
+antinationalistically
+antinationalists
+antinationalization
+antinationally
+antinatural
+antinaturalism
+antinaturalist
+antinaturalistic
+antinaturally
+antinaturalness
+anti-nebraska
+anti-Negro
+antinegro
+anti-Negroes
+anti-Negroism
+antinegroism
+antineologian
+antineoplastic
+antinephritic
+antinepotic
+antineuralgic
+antineuritic
+antineurotoxin
+antineutral
+antineutralism
+antineutrality
+antineutrally
+antineutrino
+antineutrinos
+antineutron
+antineutrons
+anting
+antinganting
+antings
+antinial
+anti-nicaean
+antinicotine
+antinihilism
+Anti-nihilist
+antinihilist
+antinihilistic
+antinion
+Anti-noahite
+antinodal
+antinode
+antinodes
+antinoise
+antinome
+antinomian
+antinomianism
+antinomians
+antinomic
+antinomical
+antinomies
+antinomist
+antinomy
+antinoness
+Anti-nordic
+anti-Nordic
+antinormal
+antinormality
+antinormalness
+Antinos
+antinosarian
+Antinous
+anti-novel
+antinovel
+anti-novelist
+antinovelist
+antinovels
+antinucleon
+antinucleons
+antinuke
+antiobesity
+Antioch
+Antiochene
+Antiochian
+Antiochianism
+Antiochus
+antiodont
+anti-odontalgic
+antiodontalgic
+Antiope
+antiopelmous
+anti-open-shop
+antiophthalmic
+antiopium
+antiopiumist
+antiopiumite
+antioptimism
+antioptimist
+antioptimistic
+antioptimistical
+antioptimistically
+antioptionist
+anti-orgastic
+antiorgastic
+Anti-oriental
+anti-Oriental
+anti-Orientalism
+anti-Orientalist
+antiorthodox
+antiorthodoxly
+antiorthodoxy
+anti-over
+antioxidant
+antioxidants
+antioxidase
+antioxidizer
+antioxidizing
+antioxygen
+antioxygenating
+antioxygenation
+antioxygenator
+antioxygenic
+antiozonant
+antipacifism
+antipacifist
+antipacifistic
+antipacifists
+antipapacy
+antipapal
+antipapalist
+antipapism
+antipapist
+antipapistic
+antipapistical
+antiparabema
+antiparabemata
+antiparagraphe
+antiparagraphic
+antiparallel
+antiparallelogram
+antiparalytic
+antiparalytical
+antiparasitic
+antiparasitical
+antiparasitically
+antiparastatitis
+antiparliament
+antiparliamental
+antiparliamentarian
+antiparliamentarians
+antiparliamentarist
+antiparliamentary
+antiparliamenteer
+antipart
+antiparticle
+antiparticles
+Antipas
+Antipasch
+Antipascha
+antipass
+antipasti
+antipastic
+antipasto
+antipastos
+Antipater
+Antipatharia
+antipatharian
+antipathetic
+antipathetical
+antipathetically
+antipatheticalness
+antipathic
+Antipathida
+antipathies
+antipathist
+antipathize
+antipathogen
+antipathogene
+antipathogenic
+antipathy
+antipatriarch
+antipatriarchal
+antipatriarchally
+antipatriarchy
+antipatriot
+antipatriotic
+antipatriotically
+antipatriotism
+Anti-paul
+Anti-pauline
+antipedal
+Antipedobaptism
+Antipedobaptist
+antipeduncular
+Anti-pelagian
+antipellagric
+antipendium
+antipepsin
+antipeptone
+antiperiodic
+antiperistalsis
+antiperistaltic
+antiperistasis
+antiperistatic
+antiperistatical
+antiperistatically
+antipersonnel
+antiperspirant
+antiperspirants
+antiperthite
+antipestilence
+antipestilent
+antipestilential
+antipestilently
+antipetalous
+antipewism
+antiphagocytic
+antipharisaic
+antipharmic
+Antiphas
+antiphase
+Antiphates
+Anti-philippizing
+antiphilosophic
+antiphilosophical
+antiphilosophically
+antiphilosophies
+antiphilosophism
+antiphilosophy
+antiphlogistian
+antiphlogistic
+antiphlogistin
+antiphon
+antiphona
+antiphonal
+antiphonally
+antiphonaries
+antiphonary
+antiphoner
+antiphonetic
+antiphonic
+antiphonical
+antiphonically
+antiphonies
+antiphonon
+antiphons
+antiphony
+antiphrases
+antiphrasis
+antiphrastic
+antiphrastical
+antiphrastically
+antiphthisic
+antiphthisical
+Antiphus
+antiphylloxeric
+antiphysic
+antiphysical
+antiphysically
+antiphysicalness
+antiphysician
+antipill
+antiplague
+antiplanet
+antiplastic
+antiplatelet
+anti-Plato
+Anti-platonic
+anti-Platonic
+anti-Platonically
+anti-Platonism
+anti-Platonist
+antipleion
+antiplenist
+antiplethoric
+antipleuritic
+antiplurality
+antipneumococcic
+antipodagric
+antipodagron
+antipodal
+antipode
+antipodean
+antipodeans
+Antipodes
+antipodes
+antipodic
+antipodism
+antipodist
+Antipoenus
+antipoetic
+antipoetical
+antipoetically
+antipoints
+antipolar
+antipole
+antipolemist
+antipoles
+antipolice
+Anti-polish
+anti-Polish
+antipolitical
+antipolitically
+antipolitics
+antipollution
+antipolo
+antipolygamy
+antipolyneuritic
+antipool
+antipooling
+antipope
+antipopery
+antipopes
+antipopular
+antipopularization
+antipopulationist
+antipopulism
+anti-Populist
+antipornographic
+antipornography
+antiportable
+antiposition
+antipot
+antipoverty
+antipragmatic
+antipragmatical
+antipragmatically
+antipragmaticism
+antipragmatism
+antipragmatist
+antiprecipitin
+antipredeterminant
+anti-pre-existentiary
+antiprelate
+antiprelatic
+antiprelatism
+antiprelatist
+antipreparedness
+antiprestidigitation
+antipriest
+antipriestcraft
+antipriesthood
+antiprime
+antiprimer
+antipriming
+antiprinciple
+antiprism
+antiproductionist
+antiproductive
+antiproductively
+antiproductiveness
+antiproductivity
+antiprofiteering
+antiprogressive
+antiprohibition
+antiprohibitionist
+antiprojectivity
+antiprophet
+antiprostate
+antiprostatic
+antiprostitution
+antiprotease
+antiproteolysis
+Anti-protestant
+anti-Protestant
+anti-Protestantism
+antiproton
+antiprotons
+antiprotozoal
+antiprudential
+antipruritic
+antipsalmist
+antipsoric
+antipsychiatry
+antipsychotic
+antiptosis
+antipudic
+anti-Puritan
+antipuritan
+anti-Puritanism
+Antipus
+antiputrefaction
+antiputrefactive
+antiputrescent
+antiputrid
+antipyic
+antipyics
+antipyonin
+antipyresis
+antipyretic
+antipyretics
+antipyrin
+Antipyrine
+antipyrine
+antipyrotic
+antipyryl
+antiq
+antiq.
+antiqua
+antiquarian
+antiquarianism
+antiquarianize
+antiquarianly
+antiquarians
+antiquaries
+antiquarism
+antiquarium
+antiquartan
+antiquary
+antiquate
+antiquated
+antiquatedness
+antiquates
+antiquating
+antiquation
+antique
+antiqued
+antiquely
+antiqueness
+antiquer
+antiquers
+antiques
+antiquing
+antiquist
+antiquitarian
+antiquities
+antiquity
+antiquum
+antirabic
+antirabies
+antiracemate
+antiracer
+antirachitic
+antirachitically
+antiracial
+antiracially
+antiracing
+antiracism
+antiracketeering
+antiradiant
+antiradiating
+antiradiation
+antiradical
+antiradicalism
+antiradically
+antiradicals
+antirailwayist
+antirape
+antirational
+antirationalism
+antirationalist
+antirationalistic
+antirationality
+antirationally
+antirattler
+antireacting
+antireaction
+antireactionaries
+antireactionary
+antireactive
+antirealism
+antirealist
+antirealistic
+antirealistically
+antireality
+antirebating
+antirecession
+antirecruiting
+antired
+antiredeposition
+antireducer
+antireducing
+antireduction
+antireductive
+antireflexive
+antireform
+antireformer
+antireforming
+antireformist
+antireligion
+antireligionist
+antireligiosity
+antireligious
+antireligiously
+Antiremonstrant
+antiremonstrant
+antirennet
+antirennin
+antirent
+antirenter
+antirentism
+Anti-republican
+antirepublican
+antirepublicanism
+antireservationist
+antiresonance
+antiresonator
+antirestoration
+antireticular
+antirevisionist
+antirevolution
+antirevolutionaries
+antirevolutionary
+antirevolutionist
+antirheumatic
+antiricin
+antirickets
+antiriot
+antiritual
+antiritualism
+antiritualist
+antiritualistic
+antirobbery
+antirobin
+antiroll
+Anti-roman
+anti-Roman
+anti-roman
+antiromance
+Anti-romanist
+anti-Romanist
+antiromantic
+antiromanticism
+antiromanticist
+antiroyal
+antiroyalism
+antiroyalist
+Antirrhinum
+antirrhinum
+antirumor
+antirun
+Anti-ruskinian
+anti-Russia
+Anti-russian
+anti-Russian
+antirust
+antirusts
+antis
+Anti-sabbatarian
+antisabbatarian
+Anti-sabian
+antisacerdotal
+antisacerdotalist
+antisag
+antisaloon
+antisalooner
+Antisana
+antisavage
+Anti-saxonism
+antiscabious
+antiscale
+anti-Scandinavia
+antisceptic
+antisceptical
+antiscepticism
+antischolastic
+antischolastically
+antischolasticism
+antischool
+antiscia
+antiscians
+antiscience
+antiscientific
+antiscientifically
+antiscii
+antiscion
+antiscolic
+antiscorbutic
+antiscorbutical
+Anti-scriptural
+antiscriptural
+anti-Scripture
+Anti-scripturism
+antiscripturism
+Anti-scripturist
+anti-Scripturist
+antiscrofulous
+antisegregation
+antiseismic
+antiselene
+Anti-semite
+anti-Semite
+anti-semite
+antisemite
+Anti-semitic
+anti-Semitic
+antisemitic
+Anti-semitically
+Anti-semitism
+anti-Semitism
+antisemitism
+antisensitivity
+antisensitizer
+antisensitizing
+antisensuality
+antisensuous
+antisensuously
+antisensuousness
+antisepalous
+antisepsin
+antisepsis
+antiseptic
+antiseptical
+antiseptically
+antisepticise
+antisepticised
+antisepticising
+antisepticism
+antisepticist
+antisepticize
+antisepticized
+antisepticizing
+antiseptics
+antiseption
+antiseptize
+antisera
+Anti-serb
+anti-Serb
+antiserum
+antiserums
+antiserumsera
+antisex
+antisexist
+antisexual
+Anti-shelleyan
+Anti-shemite
+Anti-shemitic
+Anti-shemitism
+antiship
+antishipping
+antishoplifting
+Antisi
+antisialagogue
+antisialic
+antisiccative
+antisideric
+antisilverite
+antisimoniacal
+antisine
+antisiphon
+antisiphonal
+antiskeptic
+antiskeptical
+antiskepticism
+antiskid
+antiskidding
+Anti-slav
+anti-Slav
+antislavery
+antislaveryism
+anti-Slavic
+antislickens
+antislip
+Anti-slovene
+antismog
+antismoking
+antismuggling
+antismut
+antisnapper
+antisnob
+antisocial
+antisocialist
+antisocialistic
+antisocialistically
+antisociality
+antisocially
+Anti-socinian
+anti-Socrates
+anti-Socratic
+antisolar
+antisophism
+antisophist
+antisophistic
+antisophistication
+antisophistry
+antisoporific
+Anti-soviet
+anti-Soviet
+antispace
+antispadix
+anti-Spain
+Anti-spanish
+anti-Spanish
+antispasis
+antispasmodic
+antispasmodics
+antispast
+antispastic
+antispectroscopic
+antispeculation
+antispending
+antispermotoxin
+antispiritual
+antispiritualism
+antispiritualist
+antispiritualistic
+antispiritually
+antispirochetic
+antisplasher
+antisplenetic
+antisplitting
+antispreader
+antispreading
+antisquama
+antisquatting
+antistadholder
+antistadholderian
+antistalling
+antistaphylococcic
+antistat
+antistate
+antistater
+antistatic
+antistatism
+antistatist
+antisteapsin
+antisterility
+antistes
+Antisthenes
+antistimulant
+antistimulation
+antistock
+antistreptococcal
+antistreptococcic
+antistreptococcin
+antistreptococcus
+antistrike
+antistriker
+antistrophal
+antistrophe
+antistrophic
+antistrophically
+antistrophize
+antistrophon
+antistrumatic
+antistrumous
+antistudent
+antisubmarine
+antisubstance
+antisubversion
+antisubversive
+antisudoral
+antisudorific
+antisuffrage
+antisuffragist
+antisuicide
+antisun
+antisupernatural
+antisupernaturalism
+antisupernaturalist
+antisupernaturalistic
+antisurplician
+anti-Sweden
+anti-Swedish
+antisymmetric
+antisymmetrical
+antisymmetry
+antisyndicalism
+antisyndicalist
+antisyndication
+antisynod
+antisyphilitic
+antisyphillis
+antitabetic
+antitabloid
+antitangent
+antitank
+antitarnish
+antitarnishing
+antitartaric
+antitax
+antitaxation
+antitechnological
+antitechnology
+antiteetotalism
+antitegula
+antitemperance
+antiterrorism
+antiterrorist
+antitetanic
+antitetanolysin
+Anti-teuton
+anti-Teuton
+Anti-teutonic
+anti-Teutonic
+antithalian
+antitheft
+antitheism
+antitheist
+antitheistic
+antitheistical
+antitheistically
+antithenar
+antitheologian
+antitheological
+antitheologizing
+antitheology
+antithermic
+antithermin
+antitheses
+antithesis
+antithesism
+antithesize
+antithet
+antithetic
+antithetical
+antithetically
+antithetics
+antithrombic
+antithrombin
+antithyroid
+antitintinnabularian
+antitobacco
+antitobacconal
+antitobacconist
+antitonic
+antitorpedo
+antitotalitarian
+antitoxic
+antitoxin
+antitoxine
+antitoxins
+anti-trade
+antitrade
+antitrades
+antitradition
+antitraditional
+antitraditionalist
+antitraditionally
+antitragal
+antitragi
+antitragic
+antitragicus
+antitragus
+Anti-tribonian
+Anti-trinitarian
+anti-Trinitarian
+antitrinitarian
+anti-Trinitarianism
+antitrismus
+antitrochanter
+antitropal
+antitrope
+antitropic
+antitropical
+antitropous
+antitropy
+antitrust
+antitruster
+antitrypsin
+antitryptic
+antitubercular
+antituberculin
+antituberculosis
+antituberculotic
+antituberculous
+antitumor
+antitumoral
+Anti-turkish
+anti-Turkish
+antiturnpikeism
+antitussive
+antitwilight
+antitypal
+antitype
+antitypes
+antityphoid
+antitypic
+antitypical
+antitypically
+antitypous
+antitypy
+antityrosinase
+antiuating
+antiulcer
+antiunemployment
+antiunion
+antiunionist
+Anti-unitarian
+antiuniversity
+antiuratic
+antiurban
+antiurease
+antiusurious
+antiutilitarian
+antiutilitarianism
+antivaccination
+antivaccinationist
+antivaccinator
+antivaccinist
+antivandalism
+antivariolous
+antivenefic
+antivenene
+antivenereal
+antivenin
+antivenine
+antivenins
+Anti-venizelist
+antivenom
+antivenomous
+antivermicular
+antivibrating
+antivibrator
+antivibratory
+antivice
+antiviolence
+antiviral
+antivirotic
+antivirus
+antivitalist
+antivitalistic
+antivitamin
+antivivisection
+antivivisectionist
+antivivisectionists
+antivolition
+Anti-volstead
+Anti-volsteadian
+antiwar
+antiwarlike
+antiwaste
+antiwear
+antiwedge
+antiweed
+Anti-whig
+antiwhite
+antiwhitism
+antiwiretapping
+antiwit
+antiwoman
+antiworld
+anti-worlds
+Anti-wycliffist
+Anti-wycliffite
+antixerophthalmic
+antizealot
+Anti-zionism
+anti-Zionism
+Anti-zionist
+anti-Zionist
+antizoea
+Anti-zwinglian
+antizymic
+antizymotic
+antjar
+antler
+antlered
+antlerite
+antlerless
+Antlers
+antlers
+Antlia
+antlia
+Antliae
+antliate
+Antlid
+antlike
+antling
+antlion
+antlions
+antlophobia
+antluetic
+Antntonioni
+antocular
+antodontalgic
+antoeci
+antoecian
+antoecians
+Antofagasta
+Antoine
+Antoinetta
+Antoinette
+antoinette
+Anton
+Antonchico
+Antone
+Antonella
+Antonescu
+Antonet
+Antonetta
+Antoni
+Antonia
+Antonie
+Antonietta
+Antonin
+Antonina
+antoniniani
+antoninianus
+Antonino
+Antoninus
+Antonio
+antonio
+Antonito
+Antonius
+antonomasia
+antonomastic
+antonomastical
+antonomastically
+antonomasy
+Antonovich
+antonovics
+Antons
+Antony
+antony
+antonym
+antonymic
+antonymies
+antonymous
+antonyms
+antonymy
+Antony-over
+antorbital
+antozone
+antozonite
+ant-pipit
+antproof
+antra
+antral
+antralgia
+antre
+antrectomy
+antres
+Antrim
+antrin
+antritis
+antrocele
+antronasal
+antrophore
+antrophose
+antrorse
+antrorsely
+antroscope
+antroscopy
+Antrostomus
+antrotome
+antrotomy
+antrotympanic
+antrotympanitis
+antroversion
+antrovert
+antrum
+antrums
+antrustion
+antrustionship
+ants
+antship
+antshrike
+antsier
+antsiest
+antsigne
+Antsirane
+antsy
+antsy-pantsy
+ant-thrush
+antthrush
+ANTU
+Antu
+antu
+Antum
+Antung
+Antwerp
+antwerp
+Antwerpen
+antwise
+ANU
+Anu
+anubin
+anubing
+Anubis
+anucleate
+anucleated
+anukabiet
+Anukit
+anuloma
+Anunaki
+anunder
+Anunnaki
+Anura
+anura
+Anuradhapura
+Anurag
+anural
+anuran
+anurans
+anureses
+anuresis
+anuretic
+anuria
+anurias
+anuric
+anurous
+anury
+anus
+anuses
+anusim
+Anuska
+anusvara
+anutraminosa
+anvasser
+Anvers
+Anvik
+anvil
+anvil-drilling
+anviled
+anvil-faced
+anvil-facing
+anvil-headed
+anviling
+anvilled
+anvilling
+anvils
+anvilsmith
+anviltop
+anviltops
+anxieties
+anxietude
+anxiety
+anxiolytic
+anxious
+anxiously
+anxiousness
+Any
+any
+Anya
+Anyah
+Anyang
+anybodies
+anybody
+anybody'd
+anybodyd
+Anychia
+anyhow
+any-kyn
+anymore
+anyone
+anyplace
+Anystidae
+anything
+anythingarian
+anythingarianism
+anythings
+anytime
+anyway
+anyways
+anywhen
+anywhence
+anywhere
+anywhereness
+anywheres
+anywhither
+anywhy
+anywise
+anywither
+Anza
+Anzac
+anzac
+Anzanian
+Anzanite
+Anzengruber
+Anzio
+Anzovin
+ANZUS
+A/O
+AO
+Ao
+AOA
+aob
+AOCS
+Aoede
+aogiri
+Aoide
+Aoife
+A-OK
+Aoki
+AOL
+aoli
+Aomori
+aonach
+A-one
+Aonian
+aonian
+AOP
+AOPA
+AOQ
+aor
+Aorangi
+aorist
+aoristic
+aoristically
+aorists
+Aornis
+Aornum
+aorta
+aortae
+aortal
+aortarctia
+aortas
+aortectasia
+aortectasis
+aortic
+aorticorenal
+aortism
+aortitis
+aortoclasia
+aortoclasis
+aortographic
+aortographies
+aortography
+aortoiliac
+aortolith
+aortomalacia
+aortomalaxis
+aortopathy
+aortoptosia
+aortoptosis
+aortorrhaphy
+aortosclerosis
+aortostenosis
+aortotomy
+AOS
+aosmic
+AOSS
+Aosta
+Aotea
+Aotearoa
+Aotes
+Aotus
+AOU
+aouad
+aouads
+aoudad
+aoudads
+Aouellimiden
+Aoul
+AOW
+A&P
+A/P
+AP
+Ap
+a.p.
+ap
+ap-
+APA
+apa
+apabhramsa
+apace
+Apache
+apache
+Apaches
+apaches
+Apachette
+apachism
+apachite
+apadana
+apaesthesia
+apaesthetic
+apaesthetize
+apaestically
+apagoge
+apagoges
+apagogic
+apagogical
+apagogically
+apagogue
+apaid
+apair
+apaise
+Apalachee
+Apalachicola
+Apalachin
+apalit
+Apama
+apanage
+apanaged
+apanages
+apanaging
+apandry
+Apanteles
+Apantesis
+apanthropia
+apanthropy
+apar
+apar-
+Aparai
+aparaphysate
+aparavidya
+apardon
+aparejo
+aparejos
+Apargia
+aparithmesis
+Aparri
+apart
+apartado
+Apartheid
+apartheid
+apartheids
+aparthrosis
+apartment
+apartmental
+apartments
+apartness
+apasote
+apass
+apast
+apastra
+apastron
+apasttra
+apatan
+Apatela
+apatetic
+apathaton
+apatheia
+apathetic
+apathetical
+apathetically
+apathia
+apathic
+apathies
+apathism
+apathist
+apathistical
+apathize
+apathogenic
+Apathus
+apathy
+apatite
+apatites
+Apatornis
+Apatosaurus
+apatosaurus
+Apaturia
+apay
+Apayao
+APB
+APC
+APDA
+APDU
+APE
+ape
+apeak
+apectomy
+aped
+apedom
+apeek
+ape-headed
+apehood
+apeiron
+apeirophobia
+apel-
+Apeldoorn
+apelet
+apelike
+apeling
+Apelles
+apelles
+apellous
+ape-man
+apeman
+Apemantus
+ape-men
+Apemius
+Apemosyne
+apen-
+Apennine
+Apennines
+apennines
+apenteric
+Apepi
+apepsia
+apepsinia
+apepsy
+apeptic
+aper
+aper-
+aperch
+apercu
+apercus
+aperea
+aperient
+aperients
+aperies
+aperiodic
+aperiodically
+aperiodicity
+aperispermic
+aperistalsis
+aperitif
+aperitifs
+aperitive
+apers
+apersee
+apert
+apertion
+apertly
+apertness
+apertometer
+apertum
+apertural
+aperture
+apertured
+apertures
+Aperu
+aperu
+aperulosid
+apery
+apes
+apesthesia
+apesthetic
+apesthetize
+apet-
+Apetalae
+apetalies
+apetaloid
+apetalose
+apetalous
+apetalousness
+apetaly
+apex
+apexed
+apexes
+apexing
+Apfel
+Apfelstadt
+APG
+Apgar
+aph
+aph-
+aphacia
+aphacial
+aphacic
+aphaeresis
+aphaeretic
+aphagia
+aphagias
+aphakia
+aphakial
+aphakic
+Aphanapteryx
+Aphanes
+aphanesite
+Aphaniptera
+aphaniptera
+aphanipterous
+aphanisia
+aphanisis
+aphanite
+aphanites
+aphanitic
+aphanitism
+Aphanomyces
+aphanophyre
+aphanozygous
+Aphareus
+Apharsathacites
+aphasia
+aphasiac
+aphasiacs
+aphasias
+aphasic
+aphasics
+aphasiology
+Aphelandra
+Aphelenchus
+aphelia
+aphelian
+aphelilia
+aphelilions
+Aphelinus
+aphelion
+apheliotropic
+apheliotropically
+apheliotropism
+Aphelops
+aphemia
+aphemic
+aphengescope
+aphengoscope
+aphenoscope
+apheresis
+apheretic
+apheses
+aphesis
+Aphesius
+apheta
+aphetic
+aphetically
+aphetism
+aphetize
+aphicidal
+aphicide
+aphid
+Aphidas
+aphides
+aphidian
+aphidians
+aphidicide
+aphidicolous
+aphidid
+Aphididae
+Aphidiinae
+aphidious
+Aphidius
+aphidivorous
+aphid-lion
+aphidlion
+aphidolysin
+aphidophagous
+aphidozer
+aphids
+aphilanthropy
+Aphis
+aphis
+aphis-lion
+aphislion
+aphizog
+aphlaston
+aphlebia
+aphlogistic
+aphnology
+aphodal
+aphodi
+aphodian
+Aphodius
+aphodus
+apholate
+apholates
+aphonia
+aphonias
+aphonic
+aphonics
+aphonous
+aphony
+aphoria
+aphorise
+aphorised
+aphoriser
+aphorises
+aphorising
+aphorism
+aphorismatic
+aphorismer
+aphorismic
+aphorismical
+aphorismos
+aphorisms
+aphorist
+aphoristic
+aphoristical
+aphoristically
+aphorists
+aphorize
+aphorized
+aphorizer
+aphorizes
+aphorizing
+Aphoruridae
+aphotaxis
+aphotic
+aphototactic
+aphototaxis
+aphototropic
+aphototropism
+Aphra
+aphrasia
+aphrite
+aphrizite
+aphrodesiac
+aphrodisia
+aphrodisiac
+aphrodisiacal
+aphrodisiacs
+aphrodisian
+aphrodisiomania
+aphrodisiomaniac
+aphrodisiomaniacal
+Aphrodision
+Aphrodistic
+Aphrodite
+aphrodite
+Aphroditeum
+aphroditic
+Aphroditidae
+aphroditous
+Aphrogeneia
+aphrolite
+aphronia
+aphronitre
+aphrosiderite
+aphtha
+aphthae
+Aphthartodocetae
+Aphthartodocetic
+Aphthartodocetism
+aphthic
+aphthitalite
+aphthoid
+aphthong
+aphthongal
+aphthongia
+aphthonite
+aphthous
+aphydrotropic
+aphydrotropism
+aphyllies
+aphyllose
+aphyllous
+aphylly
+aphyric
+API
+Apia
+Apiaca
+Apiaceae
+apiaceous
+Apiales
+apian
+Apianus
+apiararies
+apiarian
+apiarians
+apiaries
+apiarist
+apiarists
+apiary
+apiator
+apicad
+apical
+apically
+apicals
+Apicella
+apices
+apicial
+Apician
+apician
+apicifixed
+apicilar
+apicillary
+apicitis
+apickaback
+apickback
+apickpack
+apico-alveolar
+apico-dental
+apicoectomy
+apicolysis
+APICS
+apicula
+apicular
+apiculate
+apiculated
+apiculation
+apiculi
+apicultural
+apiculture
+apiculturist
+apiculus
+Apidae
+apiece
+a-pieces
+apieces
+Apiezon
+apigenin
+apii
+apiin
+apikores
+apikoros
+apikorsim
+apilary
+apili
+apimania
+apimanias
+Apina
+Apinae
+Apinage
+a-pinch
+apinch
+aping
+apinoid
+apio
+Apioceridae
+apiocrinite
+apioid
+apioidal
+apiol
+apiole
+apiolin
+apiologies
+apiologist
+apiology
+apionol
+Apios
+apiose
+Apiosoma
+apiphobia
+Apis
+apis
+apish
+apishamore
+apishly
+apishness
+apism
+Apison
+apitong
+apitpat
+Apium
+apium
+apivorous
+APJ
+apjohnite
+Apl
+apl
+aplace
+aplacental
+Aplacentalia
+Aplacentaria
+Aplacophora
+aplacophoran
+aplacophorous
+aplanat
+aplanatic
+aplanatically
+aplanatism
+Aplanobacter
+aplanogamete
+aplanospore
+aplasia
+aplasias
+aplastic
+Aplectrum
+a-plenty
+aplenty
+Aplington
+aplite
+aplites
+aplitic
+aplobasalt
+aplodiorite
+Aplodontia
+Aplodontiidae
+aplomb
+aplombs
+aplome
+Aplopappus
+aploperistomatous
+aplostemonous
+aplotaxene
+aplotomy
+Apluda
+aplustra
+aplustre
+aplustria
+Aplysia
+APM
+apnea
+apneal
+apneas
+apneic
+apneumatic
+apneumatosis
+Apneumona
+apneumonous
+apneusis
+apneustic
+apnoea
+apnoeal
+apnoeas
+apnoeic
+APO
+Apo
+apo-
+apoaconitine
+apoapsides
+apoapsis
+apoatropine
+apobiotic
+apoblast
+Apoc
+Apoc.
+apocaffeine
+Apocalypse
+apocalypse
+apocalypses
+apocalypst
+apocalypt
+apocalyptic
+apocalyptical
+apocalyptically
+apocalypticism
+apocalyptism
+apocalyptist
+apocamphoric
+apocarp
+apocarpies
+apocarpous
+apocarps
+apocarpy
+apocatastasis
+apocatastatic
+apocatharsis
+apocathartic
+apocenter
+apocentre
+apocentric
+apocentricity
+apocha
+apochae
+apocholic
+apochromat
+apochromatic
+apochromatism
+apocinchonine
+apocodeine
+apocopate
+apocopated
+apocopating
+apocopation
+apocope
+apocopes
+apocopic
+Apocr
+apocrenic
+apocrine
+apocrisiary
+Apocrita
+apocrustic
+apocryph
+Apocrypha
+apocrypha
+apocryphal
+apocryphalist
+apocryphally
+apocryphalness
+apocryphate
+apocryphon
+Apocynaceae
+apocynaceous
+apocyneous
+apocynthion
+apocynthions
+Apocynum
+apocyte
+apod
+Apoda
+apodal
+apodan
+apodedeipna
+apodeictic
+apodeictical
+apodeictically
+apodeipna
+apodeipnon
+apodeixis
+apodema
+apodemal
+apodemas
+apodemata
+apodematal
+apodeme
+Apodes
+Apodia
+apodia
+apodiabolosis
+apodictic
+apodictical
+apodictically
+apodictive
+Apodidae
+apodioxis
+Apodis
+apodixis
+apodoses
+apodosis
+apodous
+apods
+apodyteria
+apodyterium
+apoembryony
+apoenzyme
+apofenchene
+apoferritin
+apogaeic
+apogaic
+apogalacteum
+apogamic
+apogamically
+apogamies
+apogamous
+apogamously
+apogamy
+apogeal
+apogean
+apogee
+apogees
+apogeic
+apogenous
+apogeny
+apogeotropic
+apogeotropically
+apogeotropism
+Apogon
+apogonid
+Apogonidae
+apograph
+apographal
+apographic
+apographical
+apoharmine
+apohyal
+Apoidea
+apoikia
+apoious
+apoise
+apojove
+apokatastasis
+apokatastatic
+apokrea
+apokreos
+apolar
+apolarity
+apolaustic
+A-pole
+apolegamic
+Apolista
+Apolistan
+apolitical
+apolitically
+Apollinaire
+Apollinarian
+apollinarian
+Apollinarianism
+Apollinaris
+Apolline
+apollinian
+Apollo
+apollo
+Apollon
+Apollonia
+Apollonian
+apollonian
+Apollonic
+apollonicon
+Apollonistic
+Apollonius
+Apollos
+apollos
+Apolloship
+Apollus
+Apollyon
+apollyon
+apolog
+apologal
+apologer
+apologete
+apologetic
+apologetical
+apologetically
+apologetics
+apologia
+apologiae
+apologias
+apological
+apologies
+apologise
+apologised
+apologiser
+apologising
+apologist
+apologists
+apologize
+apologized
+apologizer
+apologizers
+apologizes
+apologizing
+apologs
+apologue
+apologues
+apology
+apolousis
+apolune
+apolunes
+apolusis
+Apolysin
+apolysis
+apolytikion
+apomecometer
+apomecometry
+apometabolic
+apometabolism
+apometabolous
+apometaboly
+apomict
+apomictic
+apomictical
+apomictically
+apomicts
+apomixes
+apomixis
+apomorphia
+apomorphin
+apomorphine
+Apomyius
+aponeurology
+aponeurorrhaphy
+aponeuroses
+aponeurosis
+aponeurositis
+aponeurotic
+aponeurotome
+aponeurotomy
+aponia
+aponic
+Aponogeton
+Aponogetonaceae
+aponogetonaceous
+a-poop
+apoop
+apopemptic
+apopenptic
+apopetalous
+apophantic
+apophasis
+apophatic
+Apophis
+apophlegm
+apophlegmatic
+apophlegmatism
+apophonia
+apophonic
+apophonies
+apophony
+apophorometer
+apophthegm
+apophthegmatic
+apophthegmatical
+apophthegmatist
+apophyeeal
+apophyge
+apophyges
+apophylactic
+apophylaxis
+apophyllite
+apophyllous
+apophysary
+apophysate
+apophyseal
+apophyses
+apophysial
+apophysis
+apophysitis
+Apopka
+apoplasmodial
+apoplastogamous
+apoplectic
+apoplectical
+apoplectically
+apoplectiform
+apoplectoid
+apoplex
+apoplexies
+apoplexious
+apoplexy
+apopyle
+apoquinamine
+apoquinine
+aporetic
+aporetical
+aporhyolite
+aporia
+aporiae
+aporias
+Aporobranchia
+aporobranchian
+Aporobranchiata
+Aporocactus
+Aporosa
+aporose
+aporphin
+aporphine
+Aporrhaidae
+Aporrhais
+aporrhaoid
+aporrhea
+aporrhegma
+aporrhiegma
+aporrhoea
+aport
+aportlast
+aportoise
+aposafranine
+aposaturn
+aposaturnium
+aposelene
+aposematic
+aposematically
+aposepalous
+aposia
+aposiopeses
+aposiopesis
+aposiopestic
+aposiopetic
+apositia
+apositic
+aposoro
+aposporic
+apospories
+aposporogony
+aposporous
+apospory
+apostacies
+apostacize
+apostacy
+apostasies
+apostasis
+apostasy
+apostate
+apostates
+apostatic
+apostatical
+apostatically
+apostatise
+apostatised
+apostatising
+apostatism
+apostatize
+apostatized
+apostatizes
+apostatizing
+apostaxis
+apostem
+apostemate
+apostematic
+apostemation
+apostematous
+aposteme
+aposteriori
+aposthia
+aposthume
+apostil
+apostille
+apostils
+apostle
+apostlehood
+Apostles
+apostles
+apostleship
+apostleships
+apostoile
+apostolate
+apostoless
+apostoli
+Apostolian
+apostolian
+Apostolic
+apostolic
+apostolical
+apostolically
+apostolicalness
+Apostolici
+apostolicism
+apostolicity
+apostolize
+Apostolos
+apostrophal
+apostrophation
+apostrophe
+apostrophes
+apostrophi
+Apostrophia
+apostrophic
+apostrophied
+apostrophise
+apostrophised
+apostrophising
+apostrophize
+apostrophized
+apostrophizes
+apostrophizing
+apostrophus
+apostume
+Apotactic
+Apotactici
+apotactite
+apotelesm
+apotelesmatic
+apotelesmatical
+apothec
+apothecal
+apothecarcaries
+apothecaries
+apothecary
+apothecaryship
+apothece
+apotheces
+apothecia
+apothecial
+apothecium
+apothegm
+apothegmatic
+apothegmatical
+apothegmatically
+apothegmatist
+apothegmatize
+apothegms
+apothem
+apothems
+apotheose
+apotheoses
+apotheosis
+apotheosise
+apotheosised
+apotheosising
+apotheosize
+apotheosized
+apotheosizing
+apothesine
+apothesis
+apothgm
+apotihecal
+apotome
+apotracheal
+apotropaic
+apotropaically
+apotropaion
+apotropaism
+apotropous
+apoturmeric
+apotype
+apotypic
+apout
+apoxesis
+Apoxyomenos
+apozem
+apozema
+apozemical
+apozymase
+APP
+app
+app.
+appair
+appal
+Appalachia
+appalachia
+Appalachian
+appalachian
+Appalachians
+appalachians
+appale
+appall
+appalled
+appalling
+appallingly
+appallingness
+appallment
+appalls
+appalment
+Appaloosa
+appaloosa
+appaloosas
+appals
+appalto
+appanage
+appanaged
+appanages
+appanaging
+appanagist
+appar
+apparail
+apparance
+apparat
+apparatchik
+apparatchiki
+apparatchiks
+apparation
+apparats
+apparatus
+apparatuses
+apparel
+appareled
+appareling
+apparelled
+apparelling
+apparelment
+apparels
+apparence
+apparencies
+apparency
+apparens
+apparent
+apparentation
+apparentement
+apparentements
+apparently
+apparentness
+apparition
+apparitional
+apparitions
+apparitor
+appartement
+appassionata
+appassionatamente
+appassionate
+appassionato
+appast
+appaume
+appaumee
+appay
+APPC
+appd
+appeach
+appeacher
+appeachment
+appeal
+appealability
+appealable
+appealed
+appealer
+appealers
+appealing
+appealingly
+appealingness
+appeals
+appear
+appearance
+appearanced
+appearances
+appeared
+appearer
+appearers
+appearing
+appears
+appeasable
+appeasableness
+appeasably
+appease
+appeased
+appeasement
+appeasements
+appeaser
+appeasers
+appeases
+appeasing
+appeasingly
+appeasive
+Appel
+appel
+appellability
+appellable
+appellancy
+appellant
+appellants
+appellate
+appellation
+appellational
+appellations
+appellative
+appellatived
+appellatively
+appellativeness
+appellatory
+appellee
+appellees
+appellor
+appellors
+appels
+appenage
+append
+appendage
+appendaged
+appendages
+appendalgia
+appendance
+appendancy
+appendant
+appendectomies
+appendectomy
+appended
+appendence
+appendency
+appendent
+appender
+appenders
+appendical
+appendicalgia
+appendicate
+appendice
+appendiceal
+appendicectasis
+appendicectomies
+appendicectomy
+appendices
+appendicial
+appendicious
+appendicitis
+appendicle
+appendicocaecostomy
+appendico-enterostomy
+appendicostomy
+appendicular
+Appendicularia
+appendicularian
+Appendiculariidae
+Appendiculata
+appendiculate
+appendiculated
+appending
+appenditious
+appendix
+appendixed
+appendixes
+appendixing
+appendorontgenography
+appendotome
+appends
+appennage
+appense
+appentice
+Appenzell
+appenzell
+apperceive
+apperceived
+apperceiving
+apperception
+apperceptionism
+apperceptionist
+apperceptionistic
+apperceptive
+apperceptively
+appercipient
+appere
+apperil
+appersonation
+appersonification
+appert
+appertain
+appertained
+appertaining
+appertainment
+appertains
+appertinent
+appertise
+appestat
+appestats
+appet
+appete
+appetence
+appetencies
+appetency
+appetent
+appetently
+appetibility
+appetible
+appetibleness
+appetiser
+appetising
+appetisse
+appetit
+appetite
+appetites
+appetition
+appetitional
+appetitious
+appetitive
+appetitiveness
+appetitost
+appetize
+appetized
+appetizement
+appetizer
+appetizers
+appetizing
+appetizingly
+Appia
+Appian
+appinite
+Appius
+appl
+applanate
+applanation
+applaud
+applaudable
+applaudably
+applauded
+applauder
+applauders
+applauding
+applaudingly
+applauds
+applause
+applauses
+applausive
+applausively
+Apple
+apple
+appleberry
+appleblossom
+Appleby
+applecart
+apple-cheeked
+appled
+Appledorf
+appledrane
+appledrone
+apple-eating
+apple-faced
+apple-fallow
+Applegate
+applegrower
+applejack
+applejacks
+apple-john
+applejohn
+applemonger
+applenut
+apple-pie
+apple-polish
+apple-polisher
+apple-polishing
+appleringie
+appleringy
+appleroot
+apples
+applesauce
+apple-scented
+Appleseed
+apple-shaped
+applesnits
+apple-stealing
+Appleton
+apple-twig
+applewife
+applewoman
+applewood
+appliable
+appliableness
+appliably
+appliance
+appliances
+appliant
+applicabilities
+applicability
+applicable
+applicableness
+applicably
+applicancies
+applicancy
+applicant
+applicants
+applicate
+application
+applications
+applicative
+applicatively
+applicator
+applicatorily
+applicators
+applicatory
+applied
+appliedly
+applier
+appliers
+applies
+Appling
+appling
+applique
+appliqued
+appliqueing
+appliques
+applosion
+applosive
+applot
+applotment
+apply
+applying
+applyingly
+applyment
+appmt
+appoggiatura
+appoggiaturas
+appoggiature
+appoint
+appointable
+appointe
+appointed
+appointee
+appointees
+appointer
+appointers
+appointing
+appointive
+appointively
+appointment
+appointments
+appointor
+appoints
+Appolonia
+Appomatox
+Appomattoc
+Appomattox
+appomattox
+apport
+apportion
+apportionable
+apportionate
+apportioned
+apportioner
+apportioning
+apportionment
+apportionments
+apportions
+apposability
+apposable
+appose
+apposed
+apposer
+apposers
+apposes
+apposing
+apposiopestic
+apposite
+appositely
+appositeness
+apposition
+appositional
+appositionally
+appositions
+appositive
+appositively
+apppetible
+appraisable
+appraisal
+appraisals
+appraise
+appraised
+appraisement
+appraiser
+appraisers
+appraises
+appraising
+appraisingly
+appraisive
+apprecate
+appreciable
+appreciably
+appreciant
+appreciate
+appreciated
+appreciates
+appreciating
+appreciatingly
+appreciation
+appreciational
+appreciations
+appreciativ
+appreciative
+appreciatively
+appreciativeness
+appreciator
+appreciatorily
+appreciators
+appreciatory
+appredicate
+apprehend
+apprehendable
+apprehended
+apprehender
+apprehending
+apprehendingly
+apprehends
+apprehensibility
+apprehensible
+apprehensibly
+apprehension
+apprehensions
+apprehensive
+apprehensively
+apprehensiveness
+apprehensivenesses
+apprend
+apprense
+apprentice
+apprenticed
+apprenticehood
+apprenticement
+apprentices
+apprenticeship
+apprenticeships
+apprenticing
+appress
+appressed
+appressor
+appressoria
+appressorial
+appressorium
+apprest
+appreteur
+appreve
+apprise
+apprised
+appriser
+apprisers
+apprises
+apprising
+apprizal
+apprize
+apprized
+apprizement
+apprizer
+apprizers
+apprizes
+apprizing
+appro
+approach
+approachability
+approachabl
+approachable
+approachableness
+approached
+approacher
+approachers
+approaches
+approaching
+approachless
+approachment
+approbate
+approbated
+approbating
+approbation
+approbations
+approbative
+approbativeness
+approbator
+approbatory
+apprompt
+approof
+appropinquate
+appropinquation
+appropinquity
+appropre
+appropriable
+appropriament
+appropriate
+appropriated
+appropriately
+appropriateness
+appropriates
+appropriating
+appropriation
+Appropriations
+appropriations
+appropriative
+appropriativeness
+appropriator
+appropriators
+approvability
+approvable
+approvableness
+approvably
+approval
+approvals
+approvance
+approve
+approved
+approvedly
+approvedness
+approvement
+approver
+approvers
+approves
+approving
+approvingly
+approx
+approx.
+approximable
+approximal
+approximant
+approximants
+approximate
+approximated
+approximately
+approximates
+approximating
+approximation
+approximations
+approximative
+approximatively
+approximativeness
+approximator
+Apps
+appt
+apptd
+appui
+appulse
+appulses
+appulsion
+appulsive
+appulsively
+appunctuation
+appurtenance
+appurtenances
+appurtenant
+APR
+Apr
+Apr.
+apr
+APRA
+apractic
+apraxia
+apraxias
+apraxic
+aprendiz
+apres
+Apresoline
+apreynte
+apricate
+aprication
+aprickle
+apricot
+apricot-kernal
+apricots
+April
+april
+Aprile
+Aprilesque
+Aprilette
+April-gowk
+Apriline
+Aprilis
+apriori
+apriorism
+apriorist
+aprioristic
+aprioristically
+apriority
+apritif
+Aprocta
+aproctia
+aproctous
+apron
+aproned
+aproneer
+apronful
+aproning
+apronless
+apronlike
+aprons
+apron-squire
+apron-string
+apronstring
+apropos
+aprosexia
+aprosopia
+aprosopous
+aproterodont
+aprowl
+APS
+APSA
+Apsaras
+Apsarases
+APSE
+apse
+apselaphesia
+apselaphesis
+apses
+apsid
+apsidal
+apsidally
+apsides
+apsidiole
+apsinthion
+apsis
+Apsu
+apsychia
+apsychical
+Apsyrtus
+APT
+apt
+apt.
+Aptal
+aptate
+Aptenodytes
+apter
+Aptera
+apteral
+apteran
+apteria
+apterial
+apterium
+apteroid
+apterous
+Apteryges
+apterygial
+Apterygidae
+Apterygiformes
+Apterygogenea
+Apterygota
+apterygote
+apterygotous
+apteryla
+Apteryx
+apteryx
+apteryxes
+aptest
+Apthorp
+Aptian
+Aptiana
+aptitude
+aptitudes
+aptitudinal
+aptitudinally
+aptly
+aptness
+aptnesses
+Aptos
+aptote
+aptotic
+apts
+aptyalia
+aptyalism
+aptychus
+APU
+Apul
+Apuleius
+Apulia
+Apulian
+apulmonic
+apulse
+Apure
+Apurimac
+apurpose
+Apus
+apx
+apyonin
+apyrase
+apyrases
+apyrene
+apyretic
+apyrexia
+apyrexial
+apyrexy
+apyrotype
+apyrous
+AQ
+Aq
+aq
+Aqaba
+AQL
+aqua
+aquabelle
+aquabib
+aquacade
+aquacades
+aquacultural
+aquaculture
+aquadag
+aquaduct
+aquaducts
+aquae
+aquaemanale
+aquaemanalia
+aquafer
+aquafortis
+aquafortist
+aquage
+aquagreen
+aquake
+Aqua-Lung
+aqualung
+aqualunger
+aquamanale
+aquamanalia
+aquamanile
+aquamaniles
+aquamanilia
+aquamarine
+aquamarines
+aquameter
+aquanaut
+aquanauts
+aquaphobia
+aquaplane
+aquaplaned
+aquaplaner
+aquaplanes
+aquaplaning
+aquapuncture
+aquaregia
+aquarelle
+aquarelles
+aquarellist
+aquaria
+aquarial
+Aquarian
+aquarian
+aquarians
+Aquarid
+Aquarii
+aquariia
+aquariist
+aquariiums
+aquarist
+aquarists
+aquarium
+aquariums
+Aquarius
+aquarius
+a-quarter
+aquarter
+aquas
+Aquasco
+aquascope
+aquascutum
+Aquashicola
+aquashow
+aquate
+aquatic
+aquatical
+aquatically
+aquatics
+aquatile
+aquatint
+aquatinta
+aquatinted
+aquatinter
+aquatinting
+aquatintist
+aquatints
+aquation
+aquativeness
+aquatone
+aquatones
+aquavalent
+aquavit
+aqua-vitae
+aquavits
+Aquebogue
+aqueduct
+aqueducts
+aqueity
+aquench
+aqueo-
+aqueoglacial
+aqueoigneous
+aqueomercurial
+aqueous
+aqueously
+aqueousness
+aquerne
+Aqueus
+aquiclude
+aquicolous
+aquicultural
+aquiculture
+aquiculturist
+aquifer
+aquiferous
+aquifers
+Aquifoliaceae
+aquifoliaceous
+aquiform
+aquifuge
+Aquila
+aquila
+Aquilae
+Aquilaria
+aquilawood
+aquilege
+Aquilegia
+aquilegia
+Aquileia
+aquilia
+Aquilian
+Aquilid
+aquiline
+aquiline-nosed
+aquilinity
+aquilino
+Aquilla
+Aquilo
+aquilon
+Aquinas
+aquinas
+aquincubital
+aquincubitalism
+Aquinist
+aquintocubital
+aquintocubitalism
+aquiparous
+Aquitaine
+Aquitania
+Aquitanian
+a-quiver
+aquiver
+aquo
+aquocapsulitis
+aquocarbonic
+aquocellolitis
+aquo-ion
+Aquone
+aquopentamminecobaltic
+aquose
+aquosity
+aquotization
+aquotize
+-ar
+AR
+Ar
+Ar.
+a.r.
+ar
+ar-
+ar.
+ARA
+Ara
+ara
+Arab
+Arab.
+arab
+araba
+araban
+arabana
+Arabeila
+Arabel
+Arabela
+Arabele
+Arabella
+Arabelle
+arabesk
+arabesks
+Arabesque
+arabesque
+arabesquely
+arabesquerie
+arabesques
+Arabi
+Arabia
+arabia
+Arabian
+arabian
+Arabianize
+arabians
+Arabic
+arabic
+arabica
+Arabicism
+Arabicize
+arabicize
+Arabidopsis
+arability
+arabin
+arabine
+arabinic
+arabinose
+arabinosic
+arabinoside
+Arabis
+arabis
+Arabism
+Arabist
+arabist
+arabit
+arabite
+arabitol
+arabiyeh
+Arabize
+arabize
+arabized
+arabizes
+arabizing
+arable
+arables
+Arabo-byzantine
+Arabophil
+arabs
+Araby
+araby
+araca
+Aracaj
+Aracaju
+Aracana
+aracanga
+aracari
+Aracatuba
+arace
+Araceae
+araceous
+arach
+arache
+arachic
+arachide
+arachidic
+arachidonic
+arachin
+Arachis
+arachis
+arachnactis
+Arachne
+arachne
+arachnean
+arachnephobia
+arachnid
+Arachnida
+arachnidan
+arachnidial
+arachnidism
+arachnidium
+arachnids
+arachnism
+Arachnites
+arachnitis
+arachnoid
+arachnoidal
+Arachnoidea
+arachnoidea
+arachnoidean
+arachnoiditis
+arachnological
+arachnologist
+arachnology
+Arachnomorphae
+arachnophagous
+arachnopia
+Arad
+arad
+aradid
+Aradidae
+arado
+Arae
+araeometer
+araeostyle
+araeosystyle
+araeotic
+Arafat
+Arafura
+Aragallus
+Aragats
+arage
+Arago
+Aragon
+Aragonese
+Aragonian
+aragonite
+aragonitic
+aragonspath
+Araguaia
+araguane
+Araguari
+araguato
+Araguaya
+araignee
+arain
+Arains
+araire
+araise
+Arak
+arak
+Arakan
+Arakanese
+Arakawa
+arakawaite
+a-rake
+arake
+Araks
+araks
+Aralac
+Araldo
+Arales
+Aralia
+aralia
+Araliaceae
+araliaceous
+araliad
+Araliaephyllum
+aralie
+Araliophyllum
+aralkyl
+aralkylated
+Arallu
+Aralu
+Aram
+Aramaean
+aramaean
+Aramaic
+aramaic
+Aramaicize
+Aramaism
+Aramanta
+aramayoite
+Aramburu
+Aramean
+Aramen
+Aramenta
+aramid
+Aramidae
+aramids
+aramina
+Araminta
+ARAMIS
+Aramis
+Aramitess
+Aramu
+Aramus
+Aran
+Arand
+Aranda
+Arandas
+Aranea
+Araneae
+araneid
+Araneida
+araneidal
+araneidan
+araneids
+araneiform
+Araneiformes
+Araneiformia
+aranein
+Araneina
+Araneoidea
+araneologist
+araneology
+araneose
+araneous
+aranga
+arango
+arangoes
+Aranha
+arank
+Arany
+Aranyaka
+Aranyaprathet
+aranzada
+arapahite
+Arapaho
+arapaho
+Arapahoe
+Arapahoes
+Arapahos
+arapahos
+arapaima
+arapaimas
+Arapesh
+Arapeshes
+araphorostic
+araphostic
+araponga
+arapunga
+Araquaju
+arar
+Arara
+arara
+araracanga
+ararao
+Ararat
+ararauna
+arariba
+araroba
+ararobas
+araru
+Aras
+arase
+Arathorn
+arati
+aratinga
+aration
+aratory
+Aratus
+Araua
+Arauan
+Araucan
+Araucania
+Araucanian
+araucanian
+Araucano
+Araucaria
+araucaria
+Araucariaceae
+araucarian
+Araucarioxylon
+Araujia
+Arauna
+Arawa
+Arawak
+arawak
+Arawakan
+arawakan
+Arawakian
+Arawaks
+Arawn
+Araxa
+Araxes
+arayne
+arb
+arba
+Arbacia
+arbacia
+arbacin
+arbalest
+arbalester
+arbalestre
+arbalestrier
+arbalests
+arbalist
+arbalister
+arbalists
+arbalo
+arbalos
+Arbe
+Arbela
+Arbela-Gaugamela
+arbelest
+Arber
+arber
+Arbil
+arbinose
+arbiter
+arbiters
+arbith
+arbitrable
+arbitrage
+arbitrager
+arbitragers
+arbitrages
+arbitrageur
+arbitragist
+arbitral
+arbitrament
+arbitraments
+arbitraries
+arbitrarily
+arbitrariness
+arbitrarinesses
+arbitrary
+arbitrate
+arbitrated
+arbitrates
+arbitrating
+arbitration
+arbitrational
+arbitrationist
+arbitrations
+arbitrative
+arbitrator
+arbitrators
+arbitratorship
+arbitratrix
+arbitre
+arbitrement
+arbitrer
+arbitress
+arbitry
+arblast
+Arblay
+Arboles
+arboloco
+Arbon
+arbor
+arboraceous
+arboral
+arborary
+arborator
+arborea
+arboreal
+arboreally
+arborean
+arbored
+arboreous
+arborer
+arbores
+arborescence
+arborescent
+arborescently
+arboresque
+arboret
+arboreta
+arboretum
+arboretums
+arborical
+arboricole
+arboricoline
+arboricolous
+arboricultural
+arboriculture
+arboriculturist
+arboriform
+arborise
+arborist
+arborists
+arborization
+arborize
+arborized
+arborizes
+arborizing
+arboroid
+arborolater
+arborolatry
+arborous
+arbors
+arborvitae
+arborvitaes
+arborway
+arbory
+arbota
+arbour
+arboured
+arbours
+Arbovale
+arbovirus
+Arbroath
+arbs
+arbtrn
+Arbuckle
+arbuscle
+arbuscles
+arbuscula
+arbuscular
+arbuscule
+arbust
+arbusta
+arbusterin
+arbusterol
+arbustum
+arbutase
+arbute
+arbutean
+arbutes
+Arbuthnot
+arbutin
+arbutinase
+arbutus
+arbutuses
+Arbyrd
+ARC
+arc
+arca
+arcabucero
+Arcacea
+arcade
+arcaded
+arcades
+Arcadia
+arcadia
+Arcadian
+arcadian
+Arcadianism
+Arcadianly
+arcadians
+arcadias
+Arcadic
+arcading
+arcadings
+Arcady
+arcady
+arcae
+arcana
+arcanal
+arcane
+Arcangelo
+arcanist
+arcanite
+Arcanum
+arcanum
+arcanums
+Arcaro
+Arcas
+Arcata
+arcate
+arcato
+arcature
+arcatures
+arc-back
+arc-boutant
+arcboutant
+arccos
+arccosine
+Arce
+arced
+Arcella
+arcella
+arces
+Arcesilaus
+Arcesius
+Arceuthobium
+arceuthobium
+arcform
+-arch
+Arch
+Arch.
+arch
+arch-
+arch.
+archabomination
+archae
+archae-
+Archaean
+archaean
+archaecraniate
+archaeo-
+Archaeoceti
+Archaeocyathid
+Archaeocyathidae
+Archaeocyathus
+archaeocyte
+archaeogeology
+archaeographic
+archaeographical
+archaeography
+archaeohippus
+archaeol
+archaeol.
+archaeolater
+archaeolatry
+archaeolith
+archaeolithic
+archaeologer
+archaeologian
+archaeologic
+archaeological
+archaeologically
+archaeologies
+archaeologist
+archaeologists
+archaeology
+archaeomagnetism
+Archaeopithecus
+Archaeopteris
+Archaeopterygiformes
+Archaeopteryx
+archaeopteryx
+Archaeornis
+archaeornis
+Archaeornithes
+archaeostoma
+Archaeostomata
+archaeostomatous
+archaeotherium
+Archaeozoic
+archaeus
+archagitator
+archai
+Archaic
+archaic
+archaical
+archaically
+archaicism
+archaicness
+Archaimbaud
+archaise
+archaised
+archaiser
+archaises
+archaising
+archaism
+archaisms
+archaist
+archaistic
+archaists
+archaize
+archaized
+archaizer
+archaizes
+archaizing
+Archambault
+Ar-chang
+Archangel
+archangel
+archangelic
+Archangelica
+archangelical
+archangels
+archangelship
+archantagonist
+archanthropine
+archantiquary
+archapostate
+archapostle
+archarchitect
+archarios
+archartist
+Archbald
+archbanc
+archbancs
+archband
+archbeacon
+archbeadle
+archbishop
+archbishopess
+archbishopric
+archbishoprics
+archbishopry
+archbishops
+Archbold
+archbotcher
+archboutefeu
+Archbp
+arch-brahman
+archbuffoon
+archbuilder
+arch-butler
+arch-buttress
+Archcape
+archchampion
+arch-chanter
+archchaplain
+archcharlatan
+archcheater
+archchemic
+archchief
+arch-christendom
+arch-christianity
+archchronicler
+archcity
+archconfraternities
+archconfraternity
+archconsoler
+archconspirator
+archcorrupter
+archcorsair
+archcount
+archcozener
+archcriminal
+archcritic
+archcrown
+archcupbearer
+Archd
+archd
+archdapifer
+archdapifership
+archdeacon
+archdeaconate
+archdeaconess
+archdeaconries
+archdeaconry
+archdeacons
+archdeaconship
+archdean
+archdeanery
+archdeceiver
+archdefender
+archdemon
+archdepredator
+archdespot
+archdetective
+archdevil
+archdiocesan
+archdiocese
+archdioceses
+archdiplomatist
+archdissembler
+archdisturber
+archdivine
+archdogmatist
+archdolt
+archdruid
+archducal
+archduchess
+archduchesses
+archduchies
+archduchy
+archduke
+archdukedom
+archdukes
+archduxe
+arche
+archeal
+Archean
+archean
+archearl
+archebanc
+archebancs
+archebiosis
+archecclesiastic
+archecentric
+arched
+archegay
+Archegetes
+archegone
+archegonia
+archegonial
+Archegoniata
+Archegoniatae
+archegoniate
+archegoniophore
+archegonium
+archegony
+Archegosaurus
+archeion
+Archelaus
+Archelenis
+Archelochus
+archelogy
+Archelon
+archelon
+archemastry
+Archemorus
+archemperor
+Archencephala
+archencephalic
+archenemies
+arch-enemy
+archenemy
+archengineer
+archenia
+archenteric
+archenteron
+archeocyte
+archeol
+archeolithic
+archeologian
+archeologic
+archeological
+archeologically
+archeologies
+archeologist
+archeology
+archeopteryx
+archeostome
+Archeozoic
+archeozoic
+Archeptolemus
+Archer
+archer
+archeress
+archerfish
+archerfishes
+archeries
+archers
+archership
+archery
+Arches
+arches
+arches-court
+archespore
+archespores
+archesporia
+archesporial
+archesporium
+archespsporia
+archest
+archetto
+archettos
+archetypal
+archetypally
+archetype
+archetypes
+archetypic
+archetypical
+archetypically
+archetypist
+archeunuch
+archeus
+archexorcist
+archfelon
+Archfiend
+arch-fiend
+archfiend
+archfiends
+archfire
+arch-flamen
+archflamen
+archflatterer
+arch-foe
+archfoe
+archfool
+archform
+archfounder
+archfriend
+archgenethliac
+archgod
+archgomeral
+archgovernor
+archgunner
+archhead
+archheart
+archheresy
+arch-heretic
+archheretic
+archhost
+archhouse
+archhumbug
+archhypocrisy
+archhypocrite
+archi-
+Archiannelida
+Archias
+archiater
+Archibald
+Archibaldo
+archibenthal
+archibenthic
+archibenthos
+archiblast
+archiblastic
+archiblastoma
+archiblastula
+Archibold
+Archibuteo
+archical
+archicantor
+archicarp
+archicerebra
+archicerebrum
+Archichlamydeae
+archichlamydeous
+archicleistogamous
+archicleistogamy
+archicoele
+archicontinent
+archicyte
+archicytula
+Archidamus
+Archidiaceae
+archidiaconal
+archidiaconate
+archididascalian
+archididascalos
+Archidiskodon
+Archidium
+archidome
+archidoxis
+Archie
+archie
+archiepiscopacy
+archiepiscopal
+archiepiscopality
+archiepiscopally
+archiepiscopate
+archiereus
+archigaster
+archigastrula
+archigenesis
+archigonic
+archigonocyte
+archigony
+archiheretical
+archikaryon
+archil
+archilithic
+archilla
+Archilochian
+archilochian
+Archilochus
+archilowe
+archils
+archilute
+archimage
+Archimago
+archimagus
+archimandrite
+archimandrites
+Archimedean
+archimedean
+Archimedes
+archimedes
+archimime
+archimorphic
+archimorula
+archimperial
+archimperialism
+archimperialist
+archimperialistic
+archimpressionist
+Archimycetes
+archin
+archine
+archines
+archineuron
+archinfamy
+archinformer
+arching
+archings
+archipallial
+archipallium
+archipelagian
+archipelagic
+archipelago
+archipelagoes
+archipelagos
+Archipenko
+archiphoneme
+archipin
+archiplasm
+archiplasmic
+Archiplata
+archiprelatical
+archipresbyter
+archipterygial
+archipterygium
+archisperm
+Archispermae
+archisphere
+archispore
+archistome
+archisupreme
+archisymbolical
+archisynagogue
+archit
+archit.
+architect
+architective
+architectonic
+Architectonica
+architectonically
+architectonics
+architectress
+architects
+architectural
+architecturalist
+architecturally
+architecture
+architectures
+architecturesque
+Architeuthis
+architis
+architraval
+architrave
+architraved
+architraves
+architricline
+architypographer
+archival
+archivault
+archive
+archived
+archiver
+archivers
+archives
+archiving
+archivist
+archivists
+archivolt
+archizoic
+archjockey
+archking
+archknave
+Archle
+archleader
+archlecher
+archlet
+archleveler
+archlexicographer
+archliar
+archlute
+archly
+archmachine
+archmagician
+archmagirist
+archmarshal
+archmediocrity
+archmessenger
+archmilitarist
+archmime
+archminister
+archmock
+archmocker
+archmockery
+archmonarch
+archmonarchist
+archmonarchy
+archmugwump
+archmurderer
+archmystagogue
+archness
+archnesses
+archocele
+archocystosyrinx
+archology
+archon
+archons
+archonship
+archonships
+archont
+archontate
+Archontia
+archontic
+archoplasm
+archoplasma
+archoplasmic
+archoptoma
+archoptosis
+archorrhagia
+archorrhea
+archostegnosis
+archostenosis
+archosyrinx
+archoverseer
+archpall
+archpapist
+archpastor
+archpatriarch
+archpatron
+archphilosopher
+archphylarch
+archpiece
+archpilferer
+archpillar
+archpirate
+archplagiarist
+archplagiary
+archplayer
+archplotter
+archplunderer
+archplutocrat
+arch-poet
+archpoet
+archpolitician
+archpontiff
+archpractice
+arch-prelate
+archprelate
+archprelatic
+archprelatical
+arch-presbyter
+archpresbyter
+archpresbyterate
+archpresbytery
+archpretender
+archpriest
+archpriesthood
+archpriestship
+archprimate
+archprince
+archprophet
+arch-protestant
+archprotopope
+archprototype
+archpublican
+archpuritan
+archradical
+archrascal
+archreactionary
+archrebel
+archregent
+archrepresentative
+archrobber
+archrogue
+archruler
+archsacrificator
+archsacrificer
+archsaint
+archsatrap
+archscoundrel
+arch-sea
+archseducer
+archsee
+archsewer
+archshepherd
+archsin
+archsnob
+archspirit
+archspy
+archsteward
+archswindler
+archsynagogue
+archt
+archt.
+archtempter
+archthief
+arch-traitor
+archtraitor
+archtreasurer
+archtreasurership
+archturncoat
+archtyrant
+archurger
+archvagabond
+archvampire
+archvestryman
+arch-villain
+archvillain
+archvillainy
+archvisitor
+archwag
+archway
+archways
+archwench
+arch-whig
+archwife
+archwise
+archworker
+archworkmaster
+-archy
+Archy
+archy
+Archytas
+Arcidae
+Arcifera
+arciferous
+arcifinious
+arciform
+Arcimboldi
+arcing
+Arciniegas
+Arcite
+arcked
+arcking
+arclength
+arclike
+ARCM
+ARCNET
+ARCO
+Arco
+arco
+arcocentrous
+arcocentrum
+arcograph
+Arcola
+Arcos
+arcose
+arcosolia
+arcosoliulia
+arcosolium
+arc-over
+A.R.C.S.
+ARCS
+arcs
+arcs-boutants
+arc-shaped
+arcsin
+arcsine
+arcsines
+Arctalia
+Arctalian
+Arctamerican
+arctan
+arctangent
+arctation
+Arctia
+arctian
+Arctic
+arctic
+arctically
+arctician
+arcticize
+arcticized
+arcticizing
+arctico-altaic
+arcticologist
+arcticology
+arctics
+arcticward
+arcticwards
+arctiid
+Arctiidae
+Arctisca
+arctitude
+Arctium
+Arctocephalus
+Arctogaea
+Arctogaeal
+arctogaeal
+Arctogaean
+Arctogaeic
+Arctogea
+Arctogean
+Arctogeic
+arctoid
+Arctoidea
+arctoidean
+Arctomys
+Arctos
+Arctosis
+Arctostaphylos
+Arcturia
+Arcturian
+Arcturus
+arcturus
+arcual
+arcuale
+arcualia
+arcuate
+arcuated
+arcuately
+arcuation
+arcubalist
+arcubalister
+arcubos
+arcula
+arculite
+arcus
+arcuses
+-ard
+Ard
+Arda
+Ardara
+ardass
+ardassine
+Ardath
+Arde
+Ardea
+Ardeae
+ardeb
+ardebs
+Ardeche
+Ardeen
+Ardeha
+Ardehs
+ardeid
+Ardeidae
+Ardel
+Ardelia
+ardelio
+Ardelis
+Ardell
+Ardella
+ardella
+ardellae
+Ardelle
+Arden
+ardencies
+ardency
+Ardene
+Ardenia
+Ardennes
+ardennite
+ardent
+ardently
+ardentness
+Ardenvoir
+arder
+Ardeth
+Ardhamagadhi
+Ardhanari
+Ardie
+Ardi-ea
+ardilla
+Ardin
+Ardine
+Ardis
+ardish
+Ardisia
+ardisia
+Ardisiaceae
+Ardisj
+Ardith
+arditi
+ardito
+Ardme
+Ardmore
+Ardmored
+Ardoch
+ardoise
+Ardolino
+ardor
+ardors
+ardour
+ardours
+Ardra
+Ardrey
+ardri
+ardrigh
+Ardsley
+ardu
+arduinite
+arduous
+arduously
+arduousness
+arduousnesses
+ardure
+ardurous
+Ardussi
+Ardy
+Ardyce
+Ardys
+Ardyth
+ARE
+are
+area
+areach
+aread
+aready
+areae
+areal
+areality
+areally
+Arean
+arear
+areas
+areason
+areasoner
+areaway
+areaways
+areawide
+Areca
+areca
+Arecaceae
+arecaceous
+arecaidin
+arecaidine
+arecain
+arecaine
+Arecales
+arecas
+areche
+Arecibo
+arecolidin
+arecolidine
+arecolin
+arecoline
+Arecuna
+ared
+Aredale
+areek
+areel
+arefact
+arefaction
+arefy
+areg
+aregenerative
+aregeneratory
+areic
+Areithous
+areito
+Areius
+Arel
+Arela
+Arelia
+Arella
+Arelus
+aren
+ARENA
+arena
+arenaceo-
+arenaceous
+arenae
+Arenaria
+arenaria
+arenariae
+arenarious
+arenas
+arenation
+arend
+arendalite
+arendator
+Arends
+Arendt
+Arendtsville
+Arene
+areng
+Arenga
+Arenicola
+arenicole
+arenicolite
+arenicolor
+arenicolous
+Arenig
+arenilitic
+arenite
+arenites
+arenoid
+arenose
+arenosity
+arenoso-
+arenous
+Arensky
+aren't
+arent
+arenulous
+Arenzville
+areo-
+areocentric
+areographer
+areographic
+areographical
+areographically
+areography
+areola
+areolae
+areolar
+areolas
+areolate
+areolated
+areolation
+areole
+areoles
+areolet
+areologic
+areological
+areologically
+areologies
+areologist
+areology
+areometer
+areometric
+areometrical
+areometry
+Areopagist
+areopagist
+Areopagite
+areopagite
+Areopagitic
+areopagitic
+Areopagitica
+Areopagus
+areopagus
+areopagy
+areostyle
+areosystyle
+areotectonics
+Arequipa
+arere
+arerola
+areroscope
+Ares
+ares
+Areskutan
+arest
+Aret
+aret
+Areta
+aretaics
+aretalogy
+Arete
+arete
+aretes
+Aretha
+Arethusa
+arethusa
+arethusas
+Arethuse
+Aretina
+Aretinian
+Aretino
+Aretta
+Arette
+arette
+Aretus
+Areus
+arew
+Arezzini
+Arezzo
+ARF
+arf
+arfillite
+arfs
+arfvedsonite
+Arg
+Arg.
+arg
+Argades
+argaile
+argal
+argala
+argalas
+argali
+argalis
+Argall
+argals
+argan
+argand
+argans
+Argante
+Argas
+argasid
+Argasidae
+Argean
+argeers
+Argeiphontes
+argel
+Argelander
+argema
+Argemone
+argemone
+argemony
+argenol
+Argent
+argent
+Argenta
+argental
+argentamid
+argentamide
+argentamin
+argentamine
+argentan
+argentarii
+argentarius
+argentate
+argentation
+argenteous
+argenter
+Argenteuil
+argenteum
+Argentia
+argentic
+argenticyanide
+argentide
+argentiferous
+argentin
+Argentina
+argentina
+Argentine
+argentine
+Argentinean
+argentinean
+argentineans
+argentines
+Argentinian
+Argentinidae
+argentinitrate
+Argentinize
+Argentino
+argentino
+argention
+argentite
+argento-
+argentojarosite
+argentol
+argentometer
+argentometric
+argentometrically
+argentometry
+argenton
+argentoproteinum
+argentose
+argentous
+argentry
+argents
+argentum
+argentums
+argent-vive
+Arges
+Argestes
+argh
+arghan
+arghel
+arghool
+arghoul
+Argia
+Argid
+argify
+argil
+Argile
+argillaceo-
+argillaceous
+argillic
+argilliferous
+Argillite
+argillite
+argillitic
+argillo-
+argilloarenaceous
+argillocalcareous
+argillocalcite
+argilloferruginous
+argilloid
+argillomagnesian
+argillous
+argils
+argin
+arginase
+arginases
+argine
+arginine
+argininephosphoric
+arginines
+Argiope
+Argiopidae
+Argiopoidea
+Argiphontes
+Argive
+argive
+argle
+argle-bargie
+argle-bargle
+arglebargle
+arglebargled
+arglebargling
+argled
+argles
+argling
+Argo
+argo
+Argoan
+argol
+argolet
+argoletier
+Argolian
+Argolic
+Argolid
+Argolis
+argols
+argon
+Argonaut
+argonaut
+Argonauta
+Argonautic
+argonautic
+argonautid
+argonauts
+Argonia
+Argonne
+argonon
+argons
+Argos
+argos
+argosies
+argosine
+Argostolion
+argosy
+argot
+argotic
+argots
+Argovian
+Argovie
+arguable
+arguably
+argue
+argue-bargue
+argued
+Arguedas
+arguendo
+arguer
+arguers
+argues
+argufied
+argufier
+argufiers
+argufies
+argufy
+argufying
+arguing
+arguitively
+Argulus
+argument
+argumenta
+argumental
+argumentation
+argumentatious
+argumentative
+argumentatively
+argumentativeness
+argumentator
+argumentatory
+argumentive
+argumentMaths
+arguments
+argumentum
+Argus
+argus
+arguses
+Argus-eyed
+argus-eyed
+argusfish
+argusfishes
+Argusianus
+Arguslike
+Argusville
+arguta
+argutation
+argute
+argutely
+arguteness
+argy-bargied
+argy-bargies
+argy-bargy
+argy-bargying
+Argyle
+argyle
+argyles
+Argyll
+argyll
+argylls
+Argyllshire
+Argynnis
+argyr-
+Argyra
+argyranthemous
+argyranthous
+Argyraspides
+Argyres
+argyria
+argyric
+argyrite
+argyrocephalous
+argyrodite
+Argyrol
+Argyroneta
+Argyropelecus
+argyrose
+argyrosis
+Argyrosomus
+Argyrotoxus
+argyrythrose
+arh-
+arhar
+Arhat
+arhat
+arhats
+Arhatship
+arhatship
+Arhauaco
+Arhna
+arhythmia
+arhythmic
+arhythmical
+arhythmically
+Ari
+Aria
+aria
+Ariadaeus
+Ariadna
+Ariadne
+ariadne
+-arian
+Arian
+arian
+Ariana
+Ariane
+Arianie
+Arianism
+arianism
+arianist
+Arianistic
+Arianistical
+arianists
+Arianize
+Arianizer
+Arianna
+Arianne
+Arianrhod
+arias
+aribin
+aribine
+ariboflavinosis
+Aribold
+Aric
+Arica
+Arician
+aricin
+aricine
+Arick
+arid
+Aridatha
+Arided
+arider
+aridest
+aridge
+aridian
+aridities
+aridity
+aridly
+aridness
+aridnesses
+Arie
+Ariege
+ariegite
+Ariel
+ariel
+Ariela
+Ariella
+Arielle
+ariels
+arienzo
+Aries
+aries
+arietate
+arietation
+Arietid
+arietinous
+Arietis
+arietta
+ariettas
+ariette
+ariettes
+Ariew
+aright
+arightly
+arigue
+Ariidae
+Arikara
+ariki
+aril
+ariled
+arillary
+arillate
+arillated
+arilled
+arilli
+arilliform
+arillode
+arillodes
+arillodium
+arilloid
+arillus
+arils
+Arimasp
+Arimaspian
+Arimaspians
+Arimathaea
+Arimathaean
+Arimathea
+Arimathean
+Ariminum
+Arimo
+Arin
+Ario
+Ariocarpus
+Arioi
+Arioian
+ariolate
+ariole
+Arion
+ariose
+ariosi
+arioso
+ariosos
+Ariosto
+a-riot
+ariot
+-arious
+Ariovistus
+Aripeka
+a-ripple
+aripple
+ARIS
+Arisaema
+arisaid
+arisard
+Arisbe
+arise
+arised
+arisen
+ariser
+arises
+arish
+arising
+arisings
+Arispe
+Arissa
+arist
+Arista
+arista
+aristae
+Aristaeus
+Aristarch
+aristarch
+Aristarchian
+aristarchies
+Aristarchus
+aristarchy
+aristas
+aristate
+ariste
+Aristeas
+aristeia
+Aristes
+Aristida
+Aristide
+Aristides
+Aristillus
+Aristippus
+aristippus
+Aristo
+aristo
+aristo-
+aristocracies
+aristocracy
+aristocrat
+aristocratic
+aristocratical
+aristocratically
+aristocraticalness
+aristocraticism
+aristocraticness
+aristocratism
+aristocrats
+aristodemocracies
+aristodemocracy
+aristodemocratical
+Aristodemus
+aristogenesis
+aristogenetic
+aristogenic
+aristogenics
+aristoi
+Aristol
+Aristolochia
+aristolochia
+Aristolochiaceae
+aristolochiaceous
+Aristolochiales
+aristolochin
+aristolochine
+aristological
+aristologist
+aristology
+Aristomachus
+aristomonarchy
+Aristophanes
+Aristophanic
+aristorepublicanism
+aristos
+Aristotelean
+aristotelean
+Aristoteles
+Aristotelian
+aristotelian
+Aristotelianism
+Aristotelic
+Aristotelism
+Aristotle
+aristotle
+aristotype
+aristulate
+Arita
+arite
+arith
+arithmancy
+arithmetic
+arithmetical
+arithmetically
+arithmetician
+arithmeticians
+arithmetico-geometric
+arithmetico-geometrical
+arithmetics
+arithmetization
+arithmetizations
+arithmetize
+arithmetized
+arithmetizes
+arithmic
+arithmo-
+arithmocracy
+arithmocratic
+arithmogram
+arithmograph
+arithmography
+arithmomancy
+arithmomania
+arithmometer
+arithromania
+Ariton
+-arium
+Arius
+Arivaca
+Arivaipa
+Ariz
+Ariz.
+Arizona
+arizona
+Arizonan
+arizonan
+arizonans
+Arizonian
+arizonian
+arizonians
+arizonite
+Arjan
+Arjay
+Arjun
+arjun
+Arjuna
+Ark
+Ark.
+ark
+Arkab
+Arkabutla
+Arkadelphia
+Arkansan
+arkansan
+arkansans
+Arkansas
+arkansas
+Arkansaw
+Arkansawyer
+arkansawyer
+Arkansian
+arkansite
+Arkdale
+Arkhangelsk
+Arkie
+arkie
+Arkite
+arkite
+Arkoma
+arkose
+arkoses
+arkosic
+Arkport
+arks
+arksutite
+Arkville
+Arkwright
+arkwright
+Arlan
+Arlana
+Arlberg
+arle
+Arlee
+Arleen
+Arlen
+Arlena
+Arlene
+Arleng
+arlequinade
+Arles
+arles
+arless
+Arleta
+Arlette
+Arley
+Arleyne
+Arlie
+Arliene
+Arlin
+Arlina
+Arlinda
+Arline
+arling
+Arlington
+arlington
+Arlis
+Arliss
+Arlo
+Arlon
+arloup
+Arluene
+Arly
+Arlyn
+Arlyne
+Arlynne
+ARM
+ArM
+Arm
+Arm.
+arm
+Arma
+Armada
+armada
+armadas
+armadilla
+Armadillididae
+Armadillidium
+armadillo
+armadillos
+Armado
+Armageddon
+armageddon
+Armageddonist
+Armagh
+Armagnac
+armagnac
+armagnacs
+Armalda
+Armalla
+Armallas
+armament
+armamentaria
+armamentarium
+armamentary
+armaments
+Arman
+Armand
+Armanda
+Armando
+armangite
+armaria
+armarian
+armaries
+armariolum
+armarium
+armariumaria
+armary
+Armata
+Armatoles
+Armatoli
+armature
+armatured
+armatures
+armaturing
+Armavir
+armband
+armbands
+armbone
+Armbrecht
+Armbrust
+Armbruster
+arm-chair
+armchair
+armchaired
+armchairs
+Armco
+armed
+Armelda
+Armen
+Armenia
+armenia
+armeniaceous
+Armenian
+armenian
+armenians
+Armenic
+armenite
+Armenize
+Armenoid
+Armeno-turkish
+Armenti
+Armentieres
+armer
+Armeria
+Armeriaceae
+armers
+armet
+armets
+armful
+armfuls
+armgaunt
+arm-great
+armguard
+arm-headed
+arm-hole
+armhole
+armholes
+armhoop
+Armida
+armied
+armies
+armiferous
+armiger
+armigeral
+armigeri
+armigero
+armigeros
+armigerous
+armigers
+Armil
+armil
+Armilda
+armill
+Armilla
+armilla
+armillae
+Armillaria
+armillaria
+armillary
+Armillas
+armillas
+armillate
+armillated
+Armillda
+Armillia
+Armin
+Armina
+arm-in-arm
+armine
+arming
+armings
+Armington
+Arminian
+arminian
+Arminianism
+Arminianize
+Arminianizer
+Arminius
+armipotence
+armipotent
+armisonant
+armisonous
+armistice
+armistices
+armit
+Armitage
+armitas
+armless
+armlessly
+armlessness
+armlet
+armlets
+armlike
+arm-linked
+armload
+armloads
+armlock
+armlocks
+armoire
+armoires
+armomancy
+Armona
+Armond
+armoniac
+armonica
+armonicas
+Armonk
+armor
+Armoracia
+armor-bearer
+armorbearer
+armor-clad
+armored
+Armorel
+armorer
+armorers
+armorial
+armorially
+armorials
+Armoric
+Armorica
+armorica
+Armorican
+armorican
+Armorician
+armoried
+armories
+armoring
+armorist
+armorless
+armor-piercing
+armor-plate
+armor-plated
+armorplated
+armorproof
+armors
+armorwise
+armory
+Armouchiquois
+Armour
+armour
+armour-bearer
+armourbearer
+armour-clad
+armoured
+armourer
+armourers
+armouries
+armouring
+armour-piercing
+armour-plate
+armours
+armoury
+armozeen
+armozine
+armpad
+armpiece
+armpit
+armpits
+armplate
+armrack
+armrest
+armrests
+arms
+armscye
+armseye
+armsful
+arm-shaped
+armsize
+Armstrong
+armstrong
+Armstrong-Jones
+Armuchee
+armure
+armures
+army
+Armyn
+armyworm
+armyworms
+arn
+arna
+Arnaeus
+Arnaldo
+arnatta
+arnatto
+arnattos
+Arnaud
+Arnaudville
+Arnaut
+arnberry
+Arndt
+Arne
+Arneb
+Arnebia
+arnee
+Arnegard
+Arnel
+Arnelle
+arnement
+Arnett
+Arney
+Arnhem
+Arni
+arni
+arnica
+arnicas
+Arnie
+Arnim
+Arno
+Arnold
+arnold
+Arnoldist
+Arnoldo
+Arnoldsburg
+Arnoldson
+Arnoldsville
+Arnon
+Arnoseris
+Arnot
+arnotta
+arnotto
+arnottos
+Arnst
+ar'n't
+Arnuad
+Arnulf
+Arnulfo
+Arnusian
+arnut
+Arny
+ARO
+Aro
+a-roar
+aroar
+aroast
+Arock
+arock
+Aroda
+aroeira
+aroid
+aroideous
+Aroides
+aroids
+aroint
+arointed
+arointing
+aroints
+Arola
+arolia
+arolium
+arolla
+aroma
+aromacity
+aromadendrin
+aromal
+Aromas
+aromas
+aromata
+aromatic
+aromatical
+aromatically
+aromaticity
+aromaticness
+aromatics
+aromatise
+aromatised
+aromatiser
+aromatising
+aromatitae
+aromatite
+aromatites
+aromatization
+aromatize
+aromatized
+aromatizer
+aromatizing
+aromatophor
+aromatophore
+aromatous
+Aron
+Arona
+Arondel
+Arondell
+Aronia
+Aronoff
+Aronow
+Aronson
+a-room
+aroon
+Aroostook
+a-root
+aroph
+Aroras
+Arosaguntacook
+arose
+around
+around-the-clock
+arousable
+arousal
+arousals
+arouse
+aroused
+arousement
+arouser
+arousers
+arouses
+arousing
+a-row
+arow
+aroxyl
+aroynt
+aroynted
+aroynting
+aroynts
+ARP
+Arp
+ARPA
+ARPANET
+arpanet
+arpeggiando
+arpeggiated
+arpeggiation
+arpeggio
+arpeggioed
+arpeggios
+arpen
+arpens
+arpent
+arpenteur
+arpents
+Arpin
+ARQ
+arquated
+arquebus
+arquebuses
+arquebusier
+arquerite
+arquifoux
+Arquit
+arr
+arr.
+arracach
+arracacha
+Arracacia
+arrace
+arrach
+arrack
+arracks
+arrage
+Arragon
+arragonite
+arrah
+arraign
+arraignability
+arraignable
+arraignableness
+arraigned
+arraigner
+arraigning
+arraignment
+arraignments
+arraigns
+arrame
+Arran
+arrand
+arrange
+arrangeable
+arranged
+arrangement
+arrangements
+arranger
+arrangers
+arranges
+arranging
+arrant
+arrantly
+arrantness
+Arras
+arras
+arrased
+arrasene
+arrases
+arrastra
+arrastre
+arras-wise
+arratel
+Arratoon
+Arrau
+arrau
+array
+arrayal
+arrayals
+arrayan
+arrayed
+arrayer
+arrayers
+arraying
+arrayment
+arrays
+arrear
+arrearage
+arrearages
+arrear-guard
+arrears
+arrear-ward
+arrect
+arrectary
+arrector
+arrendation
+arrendator
+arrenotokous
+arrenotoky
+arrent
+arrentable
+arrentation
+Arrephoria
+Arrephoroi
+Arrephoros
+arreption
+arreptitious
+arrest
+arrestable
+arrestant
+arrestation
+arrested
+arrestee
+arrestees
+arrester
+arresters
+arresting
+arrestingly
+arrestive
+arrestment
+arrestor
+arrestors
+arrests
+arret
+arretez
+Arretine
+Arretium
+Arrey
+arrgt
+arrha
+arrhal
+arrhenal
+Arrhenatherum
+Arrhenius
+arrhenoid
+arrhenotokous
+arrhenotoky
+Arrhephoria
+arrhinia
+arrhizal
+arrhizous
+arrhythmia
+arrhythmias
+arrhythmic
+arrhythmical
+arrhythmically
+arrhythmous
+arrhythmy
+Arri
+arri
+Arria
+arriage
+Arriba
+arriba
+arribadas
+arricci
+arricciati
+arricciato
+arricciatos
+arriccio
+arriccioci
+arriccios
+arride
+arrided
+arridge
+arriding
+arrie
+arriere
+arriere-ban
+arriere-pensee
+arriero
+Arries
+Arriet
+Arrigny
+Arrigo
+arrimby
+Arrington
+Arrio
+arris
+arrises
+arrish
+arrisways
+arriswise
+arrivage
+arrival
+arrivals
+arrivance
+arrive
+arrived
+arrivederci
+arrivederla
+arriver
+arrivers
+arrives
+arriving
+arrivism
+arrivisme
+arrivist
+arriviste
+arrivistes
+ARRL
+arroba
+arrobas
+arrode
+arrogance
+arrogances
+arrogancy
+arrogant
+arrogantly
+arrogantness
+arrogate
+arrogated
+arrogates
+arrogating
+arrogatingly
+arrogation
+arrogations
+arrogative
+arrogator
+arrojadite
+Arron
+arrondi
+arrondissement
+arrondissements
+arrope
+arrosion
+arrosive
+arround
+arrouse
+arrow
+arrow-back
+arrow-bearing
+arrowbush
+arrowed
+arrow-grass
+arrow-head
+arrowhead
+arrowheaded
+arrowheads
+arrowing
+arrowleaf
+arrow-leaved
+arrowless
+arrowlet
+arrowlike
+arrowplate
+arrow-root
+arrowroot
+arrowroots
+arrows
+arrow-shaped
+arrow-slain
+Arrowsmith
+arrowsmith
+arrow-smitten
+arrowstone
+arrow-toothed
+arrowweed
+arrow-wood
+arrowwood
+arrowworm
+arrow-wounded
+arrowy
+arroya
+arroyo
+arroyos
+arroyuelo
+arroz
+arrtez
+Arruague
+Arry
+Arryish
+arrythmia
+arrythmic
+arrythmical
+arrythmically
+ARS
+ars
+ARSA
+Arsacid
+Arsacidan
+arsanilic
+ARSB
+arse
+arsedine
+arsefoot
+arsehole
+arsen-
+arsenal
+arsenals
+arsenate
+arsenates
+arsenation
+arseneted
+arsenetted
+arsenfast
+arsenferratose
+arsenhemol
+arseniasis
+arseniate
+arsenic
+arsenic-
+arsenical
+arsenicalism
+arsenicate
+arsenicated
+arsenicating
+arsenicism
+arsenicize
+arsenicked
+arsenicking
+arsenicophagy
+arsenics
+arsenide
+arsenides
+arseniferous
+arsenillo
+arsenio-
+arseniopleite
+arseniosiderite
+arsenious
+arsenism
+arsenite
+arsenites
+arsenium
+arseniuret
+arseniureted
+arseniuretted
+arsenization
+arseno
+arseno-
+arsenobenzene
+arsenobenzol
+arsenobismite
+arsenoferratin
+arsenofuran
+arsenohemol
+arsenolite
+arsenophagy
+arsenophen
+arsenophenol
+arsenophenylglycin
+arsenopyrite
+arsenostyracol
+arsenotherapy
+arsenotungstates
+arsenotungstic
+arsenous
+arsenoxide
+Arseny
+arsenyl
+arses
+arsesmart
+arsheen
+Arshile
+arshin
+arshine
+arshins
+arsine
+arsines
+arsinic
+arsino
+Arsinoe
+Arsinoitherium
+Arsinous
+Arsippe
+arsis
+arsle
+ARSM
+arsmetik
+arsmetrik
+arsmetrike
+arsmetry
+arsnicker
+arsoite
+arson
+arsonate
+arsonation
+arsonic
+arsonist
+arsonists
+arsonite
+arsonium
+arsono
+arsonous
+arsons
+arsonvalization
+arsphenamine
+Arst
+arsyl
+arsylene
+arsy-varsiness
+arsy-varsy
+arsy-versy
+arsyversy
+-art
+ART
+Art
+art
+art.
+Arta
+artaba
+artabe
+Artacia
+Artair
+artal
+Artamas
+Artamidae
+Artamus
+artar
+artarin
+artarine
+Artas
+Artaud
+ARTCC
+art-colored
+art-conscious
+artcraft
+Arte
+arte
+artefac
+artefact
+artefacts
+artel
+artels
+Artema
+Artemas
+Artemia
+artemia
+ARTEMIS
+Artemis
+artemis
+Artemisa
+Artemisia
+artemisia
+artemisic
+artemisin
+Artemision
+Artemisium
+artemon
+Artemovsk
+Artemus
+arter
+arteri-
+arteria
+arteriac
+arteriae
+arteriagra
+arterial
+arterialisation
+arterialise
+arterialised
+arterialising
+arterialization
+arterialize
+arterialized
+arterializing
+arterially
+arterials
+arteriarctia
+arteriasis
+arteriectasia
+arteriectasis
+arteriectomy
+arteriectopia
+arteried
+arteries
+arterin
+arterio-
+arterioarctia
+arteriocapillary
+arteriococcygeal
+arteriodialysis
+arteriodiastasis
+arteriofibrosis
+arteriogenesis
+arteriogram
+arteriograph
+arteriographic
+arteriography
+arteriolar
+arteriole
+arterioles
+arteriolith
+arteriology
+arterioloscleroses
+arteriolosclerosis
+arteriomalacia
+arteriometer
+arteriomotor
+arterionecrosis
+arteriopalmus
+arteriopathy
+arteriophlebotomy
+arterioplania
+arterioplasty
+arteriopressor
+arteriorenal
+arteriorrhagia
+arteriorrhaphy
+arteriorrhexis
+arterioscleroses
+arteriosclerosis
+arteriosclerotic
+arteriospasm
+arteriostenosis
+arteriostosis
+arteriostrepsis
+arteriosympathectomy
+arteriotome
+arteriotomies
+arteriotomy
+arteriotrepsis
+arterious
+arteriovenous
+arterioversion
+arterioverter
+arteritis
+artery
+arterying
+Artesia
+Artesian
+artesian
+artesonado
+artesonados
+Arteveld
+Artevelde
+artful
+artfully
+artfulness
+artfulnesses
+Artgum
+Artha
+artha
+Arthaud
+arthel
+arthemis
+Arther
+arthogram
+arthr-
+arthra
+arthragra
+arthral
+arthralgia
+arthralgic
+arthrectomies
+arthrectomy
+arthredema
+arthrempyesis
+arthresthesia
+arthritic
+arthritical
+arthritically
+arthriticine
+arthritics
+arthritides
+arthritis
+arthritism
+arthro-
+Arthrobacter
+arthrobacterium
+arthrobranch
+arthrobranchia
+arthrocace
+arthrocarcinoma
+arthrocele
+arthrochondritis
+arthroclasia
+arthrocleisis
+arthroclisis
+arthroderm
+arthrodesis
+arthrodia
+arthrodiae
+arthrodial
+arthrodic
+Arthrodira
+arthrodiran
+arthrodire
+arthrodirous
+Arthrodonteae
+arthrodymic
+arthrodynia
+arthrodynic
+arthroempyema
+arthroempyesis
+arthroendoscopy
+Arthrogastra
+arthrogastran
+arthrogenous
+arthrography
+arthrogryposis
+arthrolite
+arthrolith
+arthrolithiasis
+arthrology
+arthromeningitis
+arthromere
+arthromeric
+arthrometer
+arthrometry
+arthron
+arthroncus
+arthroneuralgia
+arthropathic
+arthropathology
+arthropathy
+arthrophlogosis
+arthrophyma
+arthroplastic
+arthroplasty
+arthropleura
+arthropleure
+arthropod
+Arthropoda
+arthropodal
+arthropodan
+arthropodous
+arthropods
+arthropody
+Arthropomata
+arthropomatous
+arthropterous
+arthropyosis
+arthrorheumatism
+arthrorrhagia
+arthrosclerosis
+arthroses
+arthrosia
+arthrosis
+arthrospore
+arthrosporic
+arthrosporous
+arthrosteitis
+arthrosterigma
+arthrostome
+arthrostomy
+Arthrostraca
+arthrosynovitis
+arthrosyrinx
+arthrotome
+arthrotomies
+arthrotomy
+arthrotrauma
+arthrotropic
+arthrotyphoid
+arthrous
+arthroxerosis
+Arthrozoa
+arthrozoan
+arthrozoic
+Arthur
+arthur
+Arthurdale
+Arthurian
+arthurian
+Arthuriana
+artiad
+artic
+artichoke
+artichokes
+article
+articled
+articles
+articling
+Articodactyla
+articulability
+articulable
+articulacy
+articulant
+articular
+articulare
+articularly
+articulars
+articulary
+Articulata
+articulata
+articulate
+articulated
+articulately
+articulateness
+articulatenesses
+articulates
+articulating
+articulation
+articulationes
+articulationist
+articulations
+articulative
+articulator
+articulatorily
+articulators
+articulatory
+articulite
+articulus
+Artie
+artier
+artiest
+artifact
+artifactitious
+artifacts
+artifactual
+artifactually
+artifex
+artifice
+artificer
+artificers
+artificership
+artifices
+artificial
+artificialism
+artificialities
+artificiality
+artificialize
+artificially
+artificialness
+artificialnesses
+artificious
+Artigas
+artilize
+artiller
+artilleries
+artillerist
+artillerists
+artillery
+artilleryman
+artillerymen
+artilleryship
+artily
+Artima
+Artimas
+Artina
+artiness
+artinesses
+artinite
+Artinskian
+artiodactyl
+Artiodactyla
+artiodactylous
+artiphyllous
+artisan
+artisanal
+artisanry
+artisans
+artisanship
+artist
+artistdom
+artiste
+artiste-peintre
+artistes
+artistess
+artistic
+artistical
+artistically
+artist-in-residence
+artistries
+artistry
+artists
+artize
+artless
+artlessly
+artlessness
+artlessnesses
+artlet
+art-like
+artlike
+artly
+art-minded
+artmobile
+Artocarpaceae
+artocarpad
+artocarpeous
+artocarpous
+Artocarpus
+Artois
+artolater
+artolatry
+artophagous
+artophophoria
+artophoria
+artophorion
+artotype
+artotypy
+Artotyrite
+artotyrite
+artou
+arts
+artsier
+artsiest
+arts-man
+artsman
+arts-master
+artsy
+Artsybashev
+artsy-craftsiness
+artsy-craftsy
+Artukovic
+Artur
+Arturo
+Artus
+artus
+artware
+artwork
+artworks
+Arty
+arty
+arty-craftiness
+arty-crafty
+Artzybasheff
+Artzybashev
+ARU
+aru
+Aruabea
+Aruac
+Aruba
+arugola
+arugolas
+arugula
+arugulas
+arui
+aruke
+Arulo
+Arum
+arum
+arumin
+arumlike
+arums
+Arun
+Aruncus
+Arundel
+Arundell
+arundiferous
+arundinaceous
+Arundinaria
+arundineous
+Arundo
+Aruns
+Arunta
+Aruntas
+arupa
+Aruru
+arusa
+Arusha
+arusha
+aruspex
+aruspice
+aruspices
+aruspicy
+arustle
+Arutiunian
+Aruwimi
+ARV
+Arv
+Arva
+Arvad
+Arvada
+Arval
+arval
+Arvales
+ArvArva
+arvejon
+arvel
+Arvell
+Arverni
+Arvicola
+arvicole
+Arvicolinae
+arvicoline
+arvicolous
+arviculture
+Arvid
+Arvida
+Arvie
+Arvilla
+Arvin
+Arvind
+Arvo
+arvo
+Arvol
+Arvonia
+Arvonio
+arvos
+Arvy
+arx
+-ary
+Ary
+ary
+Arya
+Aryaman
+Aryan
+aryan
+Aryanise
+Aryanised
+Aryanising
+Aryanism
+Aryanization
+Aryanize
+aryanize
+Aryanized
+Aryanizing
+aryans
+aryballi
+aryballoi
+aryballoid
+aryballos
+aryballus
+arybballi
+aryepiglottic
+aryepiglottidean
+aryl
+arylamine
+arylamino
+arylate
+arylated
+arylating
+arylation
+arylide
+aryls
+Aryn
+Aryo-dravidian
+Aryo-indian
+aryteno-
+aryteno-epiglottic
+arytenoepiglottic
+arytenoid
+arytenoidal
+arythmia
+arythmias
+arythmic
+arythmical
+arythmically
+Arzachel
+arzan
+Arzava
+Arzawa
+arzrunite
+arzun
+AS
+As
+as
+as-
+ASA
+Asa
+Asabi
+ASA/BS
+asaddle
+Asael
+asafetida
+asafoetida
+Asag
+Asahel
+Asahi
+Asahigawa
+Asahikawa
+ASAIGAC
+asak
+a-sale
+asale
+asamblea
+asana
+Asante
+Asantehene
+ASAP
+asap
+Asaph
+asaphia
+Asaphic
+asaphid
+Asaphidae
+Asaphus
+asaprol
+Asapurna
+Asar
+asarabacca
+Asaraceae
+Asare
+Asarh
+asarin
+asarite
+asaron
+asarone
+asarota
+asarotum
+asarta
+Asarum
+asarum
+asarums
+Asat
+asb
+Asben
+asbest
+asbestic
+asbestiform
+asbestine
+asbestinize
+asbestoid
+asbestoidal
+asbestos
+asbestos-coated
+asbestos-corrugated
+asbestos-covered
+asbestoses
+Asbestosis
+asbestosis
+asbestos-packed
+asbestos-protected
+asbestos-welded
+asbestous
+asbestus
+asbestuses
+Asbjornsen
+asbolan
+asbolane
+asbolin
+asboline
+asbolite
+Asbury
+ASC
+Asc
+asc-
+Ascabart
+Ascalabota
+Ascalabus
+Ascalaphus
+ascan
+Ascanian
+Ascanius
+ASCAP
+Ascapart
+ascape
+ascare
+ascared
+ascariasis
+ascaricidal
+ascaricide
+ascarid
+Ascaridae
+ascarides
+Ascaridia
+ascaridiasis
+ascaridol
+ascaridole
+ascarids
+Ascaris
+ascaris
+ascaron
+ASCC
+ascebc
+Ascella
+ascelli
+ascellus
+ascence
+ascend
+ascendable
+ascendance
+ascendancies
+ascendancy
+ascendant
+ascendantly
+ascendants
+ascended
+ascendence
+ascendency
+ascendent
+ascender
+ascenders
+ascendible
+ascending
+ascendingly
+ascends
+Ascenez
+ascenseur
+Ascension
+ascension
+ascensional
+ascensionist
+ascensions
+Ascensiontide
+ascensive
+ascensor
+ascent
+ascents
+ascertain
+ascertainability
+ascertainable
+ascertainableness
+ascertainably
+ascertained
+ascertainer
+ascertaining
+ascertainment
+ascertains
+ascescency
+ascescent
+asceses
+ascesis
+ascetic
+ascetical
+ascetically
+asceticism
+asceticisms
+ascetics
+Ascetta
+Asch
+Aschaffenburg
+aschaffite
+Ascham
+ascham
+Aschelminthes
+ascher
+Aschim
+aschistic
+asci
+ascian
+ascians
+ascicidia
+Ascidia
+ascidia
+Ascidiacea
+Ascidiae
+ascidian
+ascidians
+ascidiate
+ascidicolous
+ascidiferous
+ascidiform
+ascidiia
+ascidioid
+Ascidioida
+Ascidioidea
+Ascidiozoa
+ascidiozooid
+ascidium
+asciferous
+ascigerous
+ASCII
+ascii
+ascill
+ascitan
+ascitb
+ascite
+ascites
+ascitic
+ascitical
+ascititious
+asclent
+Asclepi
+Asclepiad
+asclepiad
+Asclepiadaceae
+asclepiadaceous
+Asclepiadae
+Asclepiade
+Asclepiadean
+asclepiadeous
+Asclepiadic
+Asclepian
+Asclepias
+asclepias
+asclepidin
+asclepidoid
+Asclepieion
+asclepin
+Asclepius
+asclepius
+Asco
+asco-
+ascocarp
+ascocarpous
+ascocarps
+Ascochyta
+ascogenous
+ascogone
+ascogonia
+ascogonial
+ascogonidia
+ascogonidium
+ascogonium
+ascolichen
+Ascolichenes
+ascoma
+ascomata
+ascomycetal
+ascomycete
+Ascomycetes
+ascomycetes
+ascomycetous
+ascon
+Ascones
+asconia
+asconoid
+A-scope
+ascophore
+ascophorous
+Ascophyllum
+ascorbate
+ascorbic
+ascospore
+ascosporic
+ascosporous
+Ascot
+ascot
+Ascothoracica
+ascots
+ASCQ
+ascribable
+ascribe
+ascribed
+ascribes
+ascribing
+ascript
+ascription
+ascriptions
+ascriptitii
+ascriptitious
+ascriptitius
+ascriptive
+ascrive
+ascry
+ascula
+asculae
+Ascupart
+Ascus
+ascus
+Ascutney
+ascyphous
+Ascyrum
+ASDIC
+asdic
+asdics
+ASDSP
+-ase
+Ase
+ase
+a-sea
+asea
+ASEAN
+asearch
+asecretory
+a-seethe
+aseethe
+aseismatic
+aseismic
+aseismicity
+aseitas
+a-seity
+aseity
+Asel
+aselar
+aselgeia
+asellate
+Aselli
+Asellidae
+Aselline
+aselline
+Asellus
+asellus
+asem
+asemasia
+asemia
+asemic
+Asenath
+Aseneth
+asepalous
+asepses
+asepsis
+aseptate
+aseptic
+aseptically
+asepticism
+asepticize
+asepticized
+asepticizing
+aseptify
+aseptol
+aseptolin
+Aser
+asexual
+asexualisation
+asexualise
+asexualised
+asexualising
+asexuality
+asexualization
+asexualize
+asexualized
+asexualizing
+asexually
+asexuals
+Aseyev
+asfast
+asfetida
+ASG
+asg
+Asgard
+asgard
+Asgardhr
+Asgarth
+asgd
+Asgeir
+Asgeirsson
+asgmt
+Ash
+ash
+Asha
+Ashab
+a-shake
+ashake
+ashame
+ashamed
+ashamedly
+ashamedness
+ashamnu
+Ashangos
+Ashantee
+Ashanti
+ashanti
+A-shaped
+Asharasi
+A-sharp
+Ashaway
+Ashbaugh
+ash-bellied
+ashberry
+Ashbey
+ash-blond
+ash-blue
+Ashburn
+Ashburnham
+Ashburton
+Ashby
+ashcake
+ashcan
+ashcans
+Ashchenaz
+ash-colored
+Ashcroft
+Ashdod
+Ashdown
+Ashe
+Asheboro
+ashed
+Ashelman
+Ashely
+ashen
+ashen-hued
+Asher
+asher
+Asherah
+asherah
+Asherahs
+asherahs
+asheries
+Asherim
+asherim
+Asherite
+Asherites
+Asherton
+ashery
+Ashes
+ashes
+ashet
+Asheville
+ashfall
+Ashfield
+Ashford
+ash-free
+ash-gray
+Ashia
+Ashien
+ashier
+ashiest
+Ashikaga
+Ashil
+ashily
+ashimmer
+a-shine
+ashine
+ashiness
+ashing
+a-shipboard
+ashipboard
+Ashippun
+Ashir
+a-shiver
+ashiver
+Ashjian
+Ashkenaz
+Ashkenazi
+ashkenazi
+Ashkenazic
+Ashkenazim
+ashkey
+Ashkhabad
+ashkoko
+Ashkum
+Ashla
+Ashlan
+Ashland
+ashlar
+ashlared
+ashlaring
+ashlars
+ash-leaved
+Ashlee
+Ashleigh
+Ashlen
+ashler
+ashlered
+ashlering
+ashlers
+ashless
+Ashley
+Ashli
+Ashlie
+Ashlin
+Ashling
+ashling
+ash-looking
+Ashluslay
+Ashly
+Ashman
+ashman
+Ashmead
+ashmen
+Ashmolean
+Ashmore
+Ashochimi
+Ashok
+ashore
+ashot
+ashpan
+ashpit
+ashplant
+ashplants
+ASHRAE
+Ashraf
+ashraf
+ashrafi
+ashram
+ashrama
+ashrams
+ash-staved
+ashstone
+Ashtabula
+ashthroat
+ash-throated
+Ashti
+Ashton
+Ashton-under-Lyne
+Ashtoreth
+ashtoreth
+ashtray
+ashtrays
+Ashuelot
+Ashur
+ashur
+Ashurbanipal
+ashvamedha
+Ashville
+ash-wednesday
+ashweed
+Ashwell
+ash-white
+Ashwin
+Ashwood
+ashwort
+ashy
+ASI
+Asia
+asia
+asialia
+Asian
+asian
+Asianic
+Asianism
+asians
+Asiarch
+asiarch
+Asiarchate
+Asiatic
+asiatic
+Asiatical
+Asiatically
+Asiatican
+Asiaticism
+asiaticism
+Asiaticization
+Asiaticize
+Asiatize
+ASIC
+aside
+asidehand
+asiden
+asideness
+asiderite
+asides
+asideu
+asiento
+asilid
+Asilidae
+Asilomar
+Asilus
+asimen
+Asimina
+a-simmer
+asimmer
+Asine
+asinego
+asinegoes
+asinine
+asininely
+asininities
+asininity
+ASIO
+Asio
+asiphonate
+asiphonogama
+Asir
+-asis
+asitia
+Asius
+ASK
+Ask
+ask
+askable
+askance
+askant
+askapart
+askar
+askarel
+Askari
+askari
+askaris
+asked
+Askelon
+asker
+askers
+askeses
+askesis
+askew
+askewgee
+askewness
+askile
+asking
+askingly
+askings
+askip
+Askja
+asklent
+Asklepios
+askoi
+askos
+Askov
+askoye
+Askr
+asks
+Askwith
+aslake
+Aslam
+aslant
+aslantwise
+aslaver
+asleep
+ASLEF
+aslop
+aslope
+a-slug
+aslumber
+ASM
+asmack
+asmalte
+Asmara
+ASME
+a-smear
+asmear
+asmile
+Asmodeus
+asmodeus
+asmoke
+asmolder
+Asmonaean
+Asmonean
+a-smoulder
+ASN
+ASN1
+Asni
+Asnieres
+asniffle
+a-snort
+asnort
+Aso
+a-soak
+asoak
+ASOC
+asocial
+asok
+Asoka
+asoka
+asomatophyte
+asomatous
+asonant
+asonia
+asop
+Asopus
+asor
+Asosan
+Asotin
+a-south
+asouth
+ASP
+Asp
+asp
+Aspa
+ASPAC
+aspace
+aspalathus
+Aspalax
+aspalax
+asparagic
+asparagin
+asparagine
+asparaginic
+asparaginous
+asparagus
+asparaguses
+asparagyl
+asparamic
+a-sparkle
+asparkle
+Aspartame
+aspartame
+aspartate
+aspartic
+aspartokinase
+aspartyl
+Aspasia
+Aspatia
+ASPCA
+aspca
+aspect
+aspectable
+aspectant
+aspection
+aspects
+aspectual
+ASPEN
+Aspen
+aspen
+aspens
+asper
+asperate
+asperated
+asperates
+asperating
+asperation
+aspergation
+asperge
+asperger
+Asperges
+asperges
+asperggilla
+asperggilli
+aspergil
+aspergill
+aspergilla
+Aspergillaceae
+Aspergillales
+aspergilli
+aspergilliform
+aspergillin
+aspergilloses
+aspergillosis
+aspergillum
+aspergillums
+aspergillus
+Asperifoliae
+asperifoliate
+asperifolious
+asperite
+asperities
+asperity
+asperly
+aspermatic
+aspermatism
+aspermatous
+aspermia
+aspermic
+Aspermont
+aspermous
+aspern
+asperness
+asperous
+asperously
+Aspers
+aspers
+asperse
+aspersed
+asperser
+aspersers
+asperses
+aspersing
+aspersion
+aspersions
+aspersive
+aspersively
+aspersoir
+aspersor
+aspersoria
+aspersorium
+aspersoriums
+aspersors
+aspersory
+Asperugo
+Asperula
+asperuloside
+asperulous
+Asphalius
+asphalt
+asphalt-base
+asphalted
+asphaltene
+asphalter
+asphaltic
+asphalting
+asphaltite
+asphaltlike
+asphalts
+asphaltum
+asphaltums
+asphaltus
+aspheric
+aspherical
+aspheterism
+aspheterize
+asphodel
+Asphodelaceae
+Asphodeline
+asphodels
+Asphodelus
+asphyctic
+asphyctous
+asphyxia
+asphyxial
+asphyxiant
+asphyxias
+asphyxiate
+asphyxiated
+asphyxiates
+asphyxiating
+asphyxiation
+asphyxiations
+asphyxiative
+asphyxiator
+asphyxied
+asphyxies
+asphyxy
+Aspia
+aspic
+aspics
+aspiculate
+aspiculous
+aspidate
+aspide
+aspidiaria
+aspidinol
+Aspidiotus
+Aspidiske
+Aspidistra
+aspidistra
+aspidistras
+aspidium
+Aspidobranchia
+Aspidobranchiata
+aspidobranchiate
+Aspidocephali
+Aspidochirota
+Aspidoganoidei
+aspidomancy
+Aspidosperma
+aspidospermine
+Aspinwall
+aspiquee
+aspirant
+aspirants
+aspirata
+aspiratae
+aspirate
+aspirated
+aspirates
+aspirating
+aspiration
+aspirations
+aspirator
+aspirators
+aspiratory
+aspire
+aspired
+aspiree
+aspirer
+aspirers
+aspires
+aspirin
+aspiring
+aspiringly
+aspiringness
+aspirins
+aspis
+aspises
+aspish
+asplanchnic
+Asplenieae
+asplenioid
+Asplenium
+asplenium
+asporogenic
+asporogenous
+asporous
+asport
+asportation
+asporulate
+a-spout
+aspout
+a-sprawl
+asprawl
+a-spread
+aspread
+Aspredinidae
+Aspredo
+asprete
+aspring
+a-sprout
+asprout
+asps
+aspy
+asquare
+a-squat
+asquat
+asqueal
+asquint
+a-squirm
+asquirm
+Asquith
+ASR
+asrama
+asramas
+ASRM
+Asroc
+ASRS
+ASS
+ass
+assacu
+Assad
+assafetida
+assafoetida
+assagai
+assagaied
+assagaiing
+assagais
+assahy
+assai
+assail
+assailability
+assailable
+assailableness
+assailant
+assailants
+assailed
+assailer
+assailers
+assailing
+assailment
+assails
+assais
+assalto
+Assam
+assam
+Assama
+assamar
+Assamese
+assamese
+Assamites
+assapan
+assapanic
+assapanick
+Assaracus
+Assaria
+assarion
+assart
+assary
+Assassin
+assassin
+assassinate
+assassinated
+assassinates
+assassinating
+assassination
+assassinations
+assassinative
+assassinator
+assassinatress
+assassinist
+assassins
+assate
+assation
+assaugement
+assault
+assaultable
+assaulted
+assaulter
+assaulters
+assaulting
+assaultive
+assaults
+assausive
+assaut
+Assawoman
+assay
+assayable
+assayed
+assayer
+assayers
+assaying
+assays
+assbaa
+ass-backwards
+ass-chewing
+asse
+asseal
+ass-ear
+assecuration
+assecurator
+assecure
+assecution
+assedat
+assedation
+assegai
+assegaied
+assegaiing
+assegaing
+assegais
+asseize
+asself
+assembl
+assemblable
+assemblage
+assemblages
+assemblagist
+assemblance
+assemble
+assembled
+assemblee
+assemblement
+assembler
+assemblers
+assembles
+assemblies
+assembling
+Assembly
+assembly
+assemblyman
+assemblymen
+assemblywoman
+assemblywomen
+Assen
+assent
+assentaneous
+assentation
+assentatious
+assentator
+assentatorily
+assentatory
+assented
+assenter
+assenters
+assentient
+assenting
+assentingly
+assentive
+assentiveness
+assentor
+assentors
+assents
+asseour
+Asser
+assert
+asserta
+assertable
+assertative
+asserted
+assertedly
+asserter
+asserters
+assertible
+asserting
+assertingly
+assertion
+assertional
+assertions
+assertive
+assertively
+assertiveness
+assertivenesses
+assertor
+assertorial
+assertorially
+assertoric
+assertorical
+assertorically
+assertorily
+assertors
+assertory
+assertress
+assertrix
+asserts
+assertum
+asserve
+asservilize
+asses
+assess
+assessable
+assessably
+assessed
+assessee
+assesses
+assessing
+assession
+assessionary
+assessment
+assessments
+assessor
+assessorial
+assessors
+assessorship
+assessory
+asset
+asseth
+assets
+asset-stripping
+assever
+asseverate
+asseverated
+asseverates
+asseverating
+asseveratingly
+asseveration
+asseverations
+asseverative
+asseveratively
+asseveratory
+assewer
+ass-head
+asshead
+ass-headed
+assheadedness
+asshole
+assholes
+Asshur
+assi
+assibilate
+assibilated
+assibilating
+assibilation
+Assidaean
+assidaean
+Assidean
+assident
+assidual
+assidually
+assiduate
+assiduities
+assiduity
+assiduous
+assiduously
+assiduousness
+assiduousnesses
+assiege
+assientist
+assiento
+assiette
+assify
+assign
+assignability
+assignable
+assignably
+assignat
+assignation
+assignations
+assignats
+assigned
+assignee
+assignees
+assigneeship
+assigner
+assigners
+assigning
+assignment
+assignments
+assignor
+assignors
+assigns
+assilag
+assimilability
+assimilable
+assimilate
+assimilated
+assimilates
+assimilating
+assimilation
+assimilationist
+assimilations
+assimilative
+assimilativeness
+assimilator
+assimilatory
+assimulate
+assinego
+Assiniboin
+Assiniboine
+Assiniboins
+assinuate
+assis
+assisa
+Assisan
+assise
+assish
+assishly
+assishness
+Assisi
+assisi
+assist
+assistance
+assistances
+assistant
+assistanted
+assistants
+assistantship
+assistantships
+assisted
+assistency
+assister
+assisters
+assistful
+assisting
+assistive
+assistless
+assistor
+assistors
+assists
+assith
+Assiut
+assize
+assized
+assizement
+assizer
+assizes
+assizing
+ass-kisser
+ass-kissing
+ass-licker
+ass-licking
+asslike
+assman
+Assmannshausen
+Assmannshauser
+assmanship
+Assn
+assn
+assn.
+assobre
+assoc
+assoc.
+associability
+associable
+associableness
+associate
+associated
+associatedness
+associates
+associateship
+associating
+association
+associational
+associationalism
+associationalist
+associationism
+associationist
+associationistic
+associations
+associative
+associatively
+associativeness
+associativity
+associator
+associators
+associatory
+associe
+assoil
+assoiled
+assoiling
+assoilment
+assoils
+assoilzie
+assoin
+assoluto
+assonance
+assonanced
+assonances
+assonant
+assonantal
+assonantic
+assonantly
+assonants
+assonate
+Assonet
+Assonia
+assoria
+assort
+assortative
+assortatively
+assorted
+assortedness
+assorter
+assorters
+assorting
+assortive
+assortment
+assortments
+assorts
+assot
+Assouan
+ASSR
+ass-reaming
+asssembler
+ass-ship
+asst
+asst.
+assuade
+assuagable
+assuage
+assuaged
+assuagement
+assuagements
+assuager
+assuages
+assuaging
+Assuan
+assuasive
+assubjugate
+assuefaction
+Assuerus
+assuetude
+assumable
+assumably
+assume
+assumed
+assumedly
+assument
+assumer
+assumers
+assumes
+assuming
+assumingly
+assumingness
+assummon
+assumpsit
+assumpt
+Assumption
+assumption
+Assumptionist
+assumptions
+assumptious
+assumptiousness
+assumptive
+assumptively
+assumptiveness
+Assur
+assurable
+assurance
+assurances
+assurant
+assurate
+Assurbanipal
+assurd
+assure
+assured
+assuredly
+assuredness
+assureds
+assurer
+assurers
+assures
+assurge
+assurgency
+assurgent
+assuring
+assuringly
+assuror
+assurors
+asswage
+asswaged
+asswages
+asswaging
+assyntite
+Assyr
+Assyr.
+Assyria
+assyria
+Assyrian
+assyrian
+Assyrianize
+assyrians
+Assyriological
+Assyriologist
+assyriologist
+Assyriologue
+Assyriology
+assyriology
+Assyro-Babylonian
+Assyro-babylonian
+Assyroid
+assyth
+assythment
+Assyut
+-ast
+AST
+ast
+Asta
+asta
+astable
+astacian
+Astacidae
+Astacus
+Astaire
+Astakiwi
+astalk
+a-starboard
+astarboard
+a-stare
+astare
+a-start
+astart
+Astarte
+astarte
+Astartian
+Astartidae
+astasia
+astasia-abasia
+astasias
+astate
+astatic
+astatically
+astaticism
+astatine
+astatines
+astatize
+astatized
+astatizer
+astatizing
+Astatula
+a-stay
+astay
+a-stays
+asteam
+asteatosis
+asteep
+asteer
+asteism
+astel
+astelic
+astely
+-aster
+aster
+Astera
+Asteraceae
+asteraceous
+Asterales
+Asterella
+astereognosis
+Asteria
+asteria
+asteriae
+asterial
+Asterias
+asterias
+asteriated
+Asteriidae
+asterikos
+asterin
+Asterina
+Asterinidae
+asterioid
+Asterion
+asterion
+Asterionella
+asteriscus
+asteriscuses
+asterisk
+asterisked
+asterisking
+asteriskless
+asteriskos
+asterisks
+asterism
+asterismal
+asterisms
+asterite
+Asterius
+asterixis
+astern
+asternal
+Asternata
+asternia
+Asterochiton
+Asterodia
+asteroid
+asteroidal
+Asteroidea
+asteroidean
+asteroids
+Asterolepidae
+Asterolepis
+Asteropaeus
+Asterope
+asterophyllite
+Asterophyllites
+Asterospondyli
+asterospondylic
+asterospondylous
+Asteroxylaceae
+Asteroxylon
+Asterozoa
+asters
+astert
+asterwort
+asthamatic
+asthenia
+asthenias
+asthenic
+asthenical
+asthenics
+asthenies
+asthenobiosis
+asthenobiotic
+asthenolith
+asthenology
+asthenope
+asthenophobia
+asthenopia
+asthenopic
+asthenosphere
+astheny
+asthma
+asthmas
+asthmatic
+asthmatical
+asthmatically
+asthmatics
+asthmatoid
+asthmogenic
+asthore
+asthorin
+Asti
+Astian
+astichous
+astigmat
+astigmatic
+astigmatical
+astigmatically
+astigmatism
+astigmatisms
+astigmatizer
+astigmatometer
+astigmatometry
+astigmatoscope
+astigmatoscopies
+astigmatoscopy
+astigmia
+astigmias
+astigmic
+astigmism
+astigmometer
+astigmometry
+astigmoscope
+Astilbe
+astilbe
+astint
+astipulate
+astipulation
+astir
+Astispumante
+astite
+ASTM
+ASTMS
+astogeny
+Astolat
+astomatal
+astomatous
+astomia
+astomous
+Aston
+astond
+astone
+astoned
+astonied
+astonies
+astonish
+astonished
+astonishedly
+astonisher
+astonishes
+astonishing
+astonishingly
+astonishingness
+astonishment
+astonishments
+astony
+astonying
+astoop
+Astor
+astor
+astore
+Astoria
+astound
+astoundable
+astounded
+astounding
+astoundingly
+astoundment
+astounds
+astr
+astr-
+astr.
+Astra
+Astrabacus
+Astrachan
+astrachan
+astracism
+a-straddle
+astraddle
+Astraea
+astraea
+Astraean
+astraean
+astraeid
+Astraeidae
+astraeiform
+Astraeus
+astragal
+astragalar
+astragalectomy
+astragali
+astragalocalcaneal
+astragalocentral
+astragalomancy
+astragalonavicular
+astragaloscaphoid
+astragalotibial
+astragals
+Astragalus
+astragalus
+Astrahan
+a-strain
+astrain
+astrakanite
+Astrakhan
+astrakhan
+astral
+astrally
+astrals
+a-strand
+astrand
+Astrangia
+Astrantia
+astraphobia
+astrapophobia
+Astrateia
+astray
+astre
+Astrea
+astream
+astrean
+Astred
+astrer
+Astri
+astrict
+astricted
+astricting
+astriction
+astrictive
+astrictively
+astrictiveness
+astricts
+Astrid
+astride
+astrier
+astriferous
+astrild
+astringe
+astringed
+astringence
+astringencies
+astringency
+astringent
+astringently
+astringents
+astringer
+astringes
+astringing
+astrion
+astrionics
+Astrix
+astro-
+astroalchemist
+astrobiological
+astrobiologically
+astrobiologies
+astrobiologist
+astrobiologists
+astrobiology
+astroblast
+astrobotany
+Astrocaryum
+astrochemist
+astrochemistry
+astrochronological
+astrocompass
+astrocyte
+astrocytic
+astrocytoma
+astrocytomas
+astrocytomata
+astrodiagnosis
+astrodome
+astrodynamic
+astrodynamics
+astrofel
+astrofell
+astrogate
+astrogated
+astrogating
+astrogation
+astrogational
+astrogator
+astrogeny
+astrogeologist
+astrogeology
+astroglia
+astrognosy
+astrogonic
+astrogony
+astrograph
+astrographer
+astrographic
+astrography
+astrohatch
+astroid
+astroite
+astrol
+astrol.
+astrolabe
+astrolabes
+astrolabical
+astrolater
+astrolatry
+astrolithology
+astrolog
+astrologaster
+astrologe
+astrologer
+astrologers
+astrologian
+astrologic
+astrological
+astrologically
+astrologies
+astrologist
+astrologistic
+astrologists
+astrologize
+astrologous
+astrology
+astromancer
+astromancy
+astromantic
+astromeda
+astrometeorological
+astrometeorologist
+astro-meteorology
+astrometeorology
+astrometer
+astrometric
+astrometrical
+astrometry
+astron
+astronaut
+Astronautarum
+astronautic
+astronautical
+astronautically
+astronautics
+Astronauts
+astronauts
+astronavigation
+astronavigator
+astronomer
+astronomers
+astronomic
+astronomical
+astronomically
+astronomics
+astronomien
+astronomize
+astronomy
+Astropecten
+Astropectinidae
+astrophel
+astrophil
+astrophobia
+astrophotographer
+astrophotographic
+astrophotography
+astrophotometer
+astrophotometrical
+astrophotometry
+astrophyllite
+astrophysical
+astrophysicist
+astrophysicists
+astrophysics
+Astrophyton
+astroscope
+Astroscopus
+astroscopy
+astrose
+astrospectral
+astrospectroscopic
+astrosphere
+astrospherecentrosomic
+astrotheology
+Astroturf
+astructive
+a-strut
+astrut
+Astto
+astucious
+astuciously
+astucity
+Astur
+Asturian
+Asturias
+astute
+astutely
+astuteness
+astutious
+Astyanax
+astyanax
+Astydamia
+astylar
+astyllen
+Astylospongia
+Astylosternus
+ASU
+asuang
+a-sudden
+asudden
+Asunci
+Asuncion
+asunder
+Asur
+Asura
+Asuri
+ASV
+Asvins
+ASW
+aswail
+Aswan
+a-swarm
+aswarm
+a-swash
+aswash
+a-sway
+asway
+a-sweat
+asweat
+aswell
+asweve
+a-swim
+aswim
+a-swing
+aswing
+aswirl
+aswithe
+a-swoon
+aswoon
+aswooned
+aswough
+As-yakh
+asyla
+asylabia
+asyle
+asyllabia
+asyllabic
+asyllabical
+asylum
+asylums
+asymbiotic
+asymbolia
+asymbolic
+asymbolical
+asymmetral
+asymmetranthous
+asymmetric
+asymmetrical
+asymmetrically
+asymmetries
+asymmetrocarpous
+Asymmetron
+asymmetry
+asymptomatic
+asymptomatically
+asymptote
+asymptotes
+asymptotic
+asymptotical
+asymptotically
+asymtote
+asymtotes
+asymtotic
+asymtotically
+asynapsis
+asynaptic
+asynartete
+asynartetic
+async
+asynchronism
+asynchronisms
+asynchronous
+asynchronously
+asynchrony
+asyndesis
+asyndeta
+asyndetic
+asyndetically
+asyndeton
+asyndetons
+asynergia
+asynergy
+asyngamic
+asyngamy
+Asynjur
+asyntactic
+asyntrophy
+asystematic
+asystole
+asystolic
+asystolism
+Asyut
+asyzygetic
+Asz
+AT
+At
+at
+at-
+at.
+ATA
+Ata
+atabal
+Atabalipa
+atabals
+atabeg
+atabek
+Atabrine
+atabrine
+Atabyrian
+Atacaman
+Atacamenan
+Atacamenian
+Atacameno
+atacamite
+ATACC
+atactic
+atactiform
+Ataentsic
+atafter
+ataghan
+ataghans
+Atahualpa
+Ataigal
+Ataiyal
+Atakapa
+Atakapas
+atake
+Atal
+Atalan
+Atalanta
+atalanta
+Atalante
+Atalanti
+atalantis
+Atalaya
+atalaya
+Atalayah
+atalayas
+Atalee
+Ataliah
+Atalie
+Atalissa
+Atalya
+ataman
+atamans
+atamasco
+atamascos
+atame
+Atamosco
+atangle
+atap
+ataps
+atar
+ataractic
+Atarax
+ataraxia
+ataraxias
+ataraxic
+ataraxics
+ataraxies
+ataraxy
+Atascadero
+Atascosa
+Atat
+atatschite
+Ataturk
+ataunt
+ataunto
+atavi
+atavic
+atavism
+atavisms
+atavist
+atavistic
+atavistically
+atavists
+atavus
+ataxaphasia
+ataxia
+ataxiagram
+ataxiagraph
+ataxiameter
+ataxiaphasia
+ataxias
+ataxic
+ataxics
+ataxies
+ataxinomic
+ataxite
+ataxonomic
+ataxophemia
+ataxy
+atazir
+ATB
+Atbara
+atbash
+ATC
+Atcheson
+Atchison
+atchison
+Atcliffe
+Atco
+ATDA
+ATDRS
+-ate
+ATE
+Ate
+ate
+ate-
+Ateba
+atebrin
+atechnic
+atechnical
+atechny
+-ated
+ated
+atees
+ateeter
+atef
+atef-crown
+ateknia
+atelectasis
+atelectatic
+ateleiosis
+atelene
+ateleological
+Ateles
+atelestite
+atelets
+atelic
+atelier
+ateliers
+ateliosis
+ateliotic
+Atellan
+atellan
+atelo
+atelo-
+atelocardia
+atelocephalous
+ateloglossia
+atelognathia
+atelomitic
+atelomyelia
+atelophobia
+atelopodia
+ateloprosopia
+atelorachidia
+atelostomia
+ately
+atemoya
+a-temporal
+atemporal
+Aten
+Atenism
+Atenist
+A-tent
+ater-
+Aterian
+aterian
+ates
+Ateste
+Atestine
+ateuchi
+ateuchus
+ATF
+Atfalati
+Atglen
+ATH
+Athabasca
+Athabascan
+Athabaska
+Athabaskan
+Athal
+athalamous
+Athalee
+Athalia
+Athaliah
+Athalie
+Athalla
+Athallia
+athalline
+Athamantid
+athamantin
+Athamas
+athamaunte
+athanasia
+Athanasian
+athanasian
+Athanasianism
+Athanasianist
+athanasies
+Athanasius
+athanasy
+athanor
+Athapascan
+Athapaskan
+athapaskan
+athar
+Atharvan
+Atharva-Veda
+athbash
+Athecae
+Athecata
+athecate
+atheism
+atheisms
+atheist
+atheistic
+atheistical
+atheistically
+atheisticalness
+atheisticness
+atheists
+atheize
+atheizer
+Athel
+athel
+Athelbert
+athelia
+atheling
+athelings
+Athelred
+Athelstan
+Athelstane
+athematic
+Athena
+athena
+Athenaea
+Athenaeum
+athenaeum
+athenaeums
+Athenaeus
+Athenagoras
+Athenai
+Athene
+athenee
+atheneum
+atheneums
+Athenian
+athenian
+Athenianly
+athenians
+Athenienne
+athenor
+Athens
+athens
+atheological
+atheologically
+atheology
+atheous
+Athericera
+athericeran
+athericerous
+atherine
+Atherinidae
+Atheriogaea
+Atheriogaean
+Atheris
+athermancy
+athermanous
+athermic
+athermous
+atherogenesis
+atherogenic
+atheroma
+atheromas
+atheromasia
+atheromata
+atheromatosis
+atheromatous
+atheroscleroses
+atherosclerosis
+atherosclerotic
+atherosclerotically
+Atherosperma
+Atherton
+Atherurus
+athetesis
+atheticize
+athetize
+athetized
+athetizing
+athetoid
+athetoids
+athetosic
+athetosis
+athetotic
+Athey
+Athie
+athing
+athink
+athirst
+Athiste
+athlete
+athletehood
+athletes
+athletic
+athletical
+athletically
+athleticism
+athletics
+athletism
+athletocracy
+athlothete
+athlothetes
+athodyd
+athodyds
+athogen
+Athol
+athold
+at-home
+at-homeish
+at-homeishness
+at-homeness
+athonite
+athort
+Athos
+athrepsia
+athreptic
+a-thrill
+athrill
+athrive
+a-throb
+athrob
+athrocyte
+athrocytosis
+athrogenic
+a-throng
+athrong
+athrough
+athumia
+athwart
+athwarthawse
+athwartship
+athwartships
+athwartwise
+athymia
+athymic
+athymy
+athyreosis
+athyria
+athyrid
+Athyridae
+Athyris
+Athyrium
+athyroid
+athyroidism
+athyrosis
+ATI
+Ati
+Atiana
+-atic
+Atik
+Atikokania
+Atila
+-atile
+atilt
+atimon
+atimy
+ating
+atinga
+atingle
+atinkle
+-ation
+atip
+a-tiptoe
+atiptoe
+ATIS
+atis
+-ative
+ATK
+Atka
+Atkins
+Atkinson
+Atlanta
+atlanta
+atlantad
+atlantal
+Atlante
+Atlantean
+atlantean
+atlantes
+Atlantic
+atlantic
+Atlantica
+Atlantid
+Atlantides
+Atlantis
+atlantis
+atlantite
+atlanto-
+atlantoaxial
+atlantodidymus
+atlantomastoid
+Atlanto-mediterranean
+atlantoodontoid
+Atlantosaurus
+atlantosaurus
+at-large
+ATLAS
+Atlas
+atlas
+Atlas-Agena
+Atlasburg
+Atlas-Centaur
+atlases
+Atlaslike
+Atlas-Score
+atlatl
+atlatls
+atle
+Atlee
+atlee
+Atli
+atli
+atlo-
+atloaxoid
+atloid
+atloidean
+atloidoaxoid
+atloido-occipital
+atlo-odontoid
+ATM
+At/m
+atm
+atm.
+atma
+Atman
+atman
+atmans
+atmas
+atmiatrics
+atmiatry
+atmid
+atmidalbumin
+atmidometer
+atmidometry
+atmo
+atmo-
+atmocausis
+atmocautery
+atmoclastic
+atmogenic
+atmograph
+atmologic
+atmological
+atmologist
+atmology
+atmolyses
+atmolysis
+atmolyzation
+atmolyze
+atmolyzer
+atmometer
+atmometric
+atmometry
+atmophile
+Atmore
+atmos
+atmosphere
+atmosphered
+atmosphereful
+atmosphereless
+atmospheres
+atmospheric
+atmospherical
+atmospherically
+atmospherics
+atmospherium
+atmospherology
+atmostea
+atmosteal
+atmosteon
+ATMS
+ATN
+Atnah
+ATO
+atocha
+atocia
+Atoka
+atokal
+atoke
+atokous
+atole
+atoll
+atolls
+a-tolyl
+atom
+atomatic
+atom-bomb
+atom-chipping
+atomechanics
+atomerg
+atomic
+atomical
+atomically
+atomician
+atomicism
+atomicity
+atomics
+atomies
+atomiferous
+atomisation
+atomise
+atomised
+atomises
+atomising
+atomism
+atomisms
+atomist
+atomistic
+atomistical
+atomistically
+atomistics
+atomists
+atomity
+atomization
+atomize
+atomized
+atomizer
+atomizers
+atomizes
+atomizing
+atomology
+atom-rocket
+ATOMS
+atoms
+atom-smashing
+atom-tagger
+atom-tagging
+atomy
+Aton
+atonable
+atonal
+atonalism
+atonalist
+atonalistic
+atonality
+atonally
+atone
+atoneable
+atoned
+atonement
+atonements
+atoneness
+atoner
+atoners
+atones
+atonia
+atonic
+atonicity
+atonics
+atonies
+atoning
+atoningly
+Atonsah
+atony
+atop
+atopen
+Atophan
+atophan
+atopic
+atopies
+atopite
+atopy
+-ator
+Atorai
+-atory
+Atossa
+atour
+atoxic
+Atoxyl
+atoxyl
+ATP
+ATP2
+ATPCO
+atpoints
+ATR
+atrabilaire
+atrabilar
+atrabilarian
+atrabilarious
+atrabile
+atrabiliar
+atrabiliarious
+atrabiliary
+atrabilious
+atrabiliousness
+atracheate
+Atractaspis
+Atragene
+atragene
+Atrahasis
+atrail
+atrament
+atramental
+atramentary
+atramentous
+atraumatic
+Atrax
+atrazine
+atrazines
+Atrebates
+atrede
+Atremata
+atremate
+atrematous
+a-tremble
+atremble
+atren
+atrenne
+atrepsy
+atreptic
+atresia
+atresias
+atresic
+atresy
+atretic
+Atreus
+atreus
+atria
+atrial
+atrible
+Atrice
+atrichia
+atrichic
+atrichosis
+atrichous
+atrickle
+Atridae
+Atridean
+atrienses
+atriensis
+atriocoelomic
+atrioporal
+atriopore
+atrioventricular
+a-trip
+atrip
+Atriplex
+atrium
+atriums
+atro-
+atroce
+atroceruleous
+atroceruleus
+atrocha
+atrochal
+atrochous
+atrocious
+atrociously
+atrociousness
+atrociousnesses
+atrocities
+atrocity
+atrocoeruleus
+atrolactic
+Atronna
+Atropa
+atropaceous
+atropal
+atropamine
+Atropatene
+atrophia
+atrophias
+atrophiated
+atrophic
+atrophied
+atrophies
+atrophoderma
+atrophous
+atrophy
+atrophying
+atropia
+atropic
+Atropidae
+atropin
+atropine
+atropines
+atropinism
+atropinization
+atropinize
+atropins
+atropism
+atropisms
+Atropos
+atropos
+atropous
+atrorubent
+atrosanguineous
+atroscine
+atrous
+ATRS
+a-try
+atry
+Atrypa
+atrypoid
+ATS
+atsara
+Atsugi
+AT&T
+ATT
+att
+att.
+Atta
+atta
+attababy
+attabal
+attaboy
+Attacapan
+attacca
+attacco
+attach
+attachable
+attachableness
+attache
+attached
+attachedly
+attacher
+attachers
+attaches
+attacheship
+attaching
+attachment
+attachments
+attack
+attackable
+attacked
+attacker
+attackers
+attacking
+attackingly
+attackman
+attacks
+attacolite
+Attacus
+attacus
+attagal
+attagen
+attaghan
+attagirl
+Attah
+attain
+attainabilities
+attainability
+attainable
+attainableness
+attainably
+attainder
+attainders
+attained
+attainer
+attainers
+attaining
+attainment
+attainments
+attainor
+attains
+attaint
+attainted
+attainting
+attaintment
+attaints
+attainture
+attal
+Attalanta
+Attalea
+attaleh
+Attalid
+Attalie
+Attalla
+attame
+attapulgite
+Attapulgus
+attar
+attargul
+attars
+attask
+attaste
+attatched
+attatches
+ATTC
+ATTCOM
+atte
+atteal
+attemper
+attemperament
+attemperance
+attemperate
+attemperately
+attemperation
+attemperator
+attempered
+attempering
+attempers
+attempre
+attempt
+attemptability
+attemptable
+attempted
+attempter
+attempters
+attempting
+attemptive
+attemptless
+attempts
+Attenborough
+attend
+attendance
+attendances
+attendancy
+attendant
+attendantly
+attendants
+attended
+attendee
+attendees
+attender
+attenders
+attending
+attendingly
+attendings
+attendment
+attendress
+attends
+attensity
+attent
+attentat
+attentate
+attention
+attentional
+attentionality
+attention-getting
+attentions
+attentive
+attentively
+attentiveness
+attentivenesses
+attently
+attenuable
+attenuant
+attenuate
+attenuated
+attenuates
+attenuating
+attenuation
+attenuations
+attenuative
+attenuator
+attenuators
+Attenweiler
+atter
+Atterbury
+attercop
+attercrop
+atterminal
+attermine
+attermined
+atterminement
+attern
+atterr
+atterrate
+attery
+attest
+attestable
+attestant
+attestation
+attestations
+attestative
+attestator
+attested
+attester
+attesters
+attesting
+attestive
+attestor
+attestors
+attests
+Atthia
+Attic
+attic
+Attica
+Attical
+attice
+Atticise
+Atticised
+Atticising
+Atticism
+atticism
+atticisms
+Atticist
+atticist
+atticists
+Atticize
+atticize
+Atticized
+atticized
+Atticizing
+atticizing
+atticomastoid
+attics
+attid
+Attidae
+attidae
+Attila
+attila
+attinge
+attingence
+attingency
+attingent
+attirail
+attire
+attired
+attirement
+attirer
+attires
+attiring
+ATTIS
+Attis
+attitude
+attitudes
+attitudinal
+attitudinarian
+attitudinarianism
+attitudinise
+attitudinised
+attitudiniser
+attitudinising
+attitudinize
+attitudinized
+attitudinizer
+attitudinizes
+attitudinizing
+attitudist
+Attius
+Attiwendaronk
+attle
+Attleboro
+Attlee
+attn
+attntrp
+atto-
+attollent
+attomy
+attorn
+attornare
+attorned
+attorney
+attorney-at-law
+attorneydom
+attorney-generalship
+attorney-in-fact
+attorneyism
+attorneys
+attorneys-at-law
+attorneyship
+attorneys-in-fact
+attorning
+attornment
+attorns
+attouchement
+attour
+attourne
+attract
+attractability
+attractable
+attractableness
+attractance
+attractancy
+attractant
+attractants
+attracted
+attracted-disk
+attracter
+attractile
+attracting
+attractingly
+attraction
+attractionally
+attractions
+attractive
+attractively
+attractiveness
+attractivenesses
+attractivity
+attractor
+attractors
+attracts
+attrahent
+attrap
+attrectation
+attrib
+attrib.
+attributable
+attributal
+attribute
+attributed
+attributer
+attributes
+attributing
+attribution
+attributional
+attributions
+attributive
+attributively
+attributiveness
+attributives
+attributor
+attrist
+attrite
+attrited
+attriteness
+attriting
+attrition
+attritional
+attritive
+attritus
+attriutively
+attroopment
+attroupement
+attry
+Attu
+attune
+attuned
+attunely
+attunement
+attunes
+attuning
+atturn
+Attwood
+atty
+atty.
+atua
+Atuami
+Atul
+atule
+Atum
+a-tumble
+atumble
+atune
+ATV
+atveen
+a-twain
+atwain
+Atwater
+At/Wb
+atweel
+atween
+Atwekk
+atwin
+atwind
+atwirl
+a-twist
+atwist
+atwitch
+atwite
+a-twitter
+atwitter
+atwixt
+a-two
+atwo
+Atwood
+Atworth
+Atymnius
+atypic
+atypical
+atypicality
+atypically
+atypy
+Atys
+A.U.
+AU
+Au
+AUA
+auantic
+aubade
+aubades
+aubain
+aubaine
+Aubanel
+Aubarta
+Aube
+aube
+aubepine
+Auber
+Auberbach
+Auberge
+auberge
+auberges
+aubergine
+aubergiste
+aubergistes
+Auberon
+Auberry
+Aubert
+Auberta
+Aubervilliers
+Aubigny
+Aubin
+aubin
+Aubine
+Aubree
+Aubreir
+aubretia
+aubretias
+Aubrette
+Aubrey
+Aubrie
+aubrieta
+aubrietas
+Aubrietia
+aubrietia
+aubrite
+Aubry
+Auburn
+auburn
+Auburndale
+auburn-haired
+auburns
+Auburntown
+Auburta
+Aubusson
+aubusson
+Aubyn
+A.U.C.
+AUC
+Auca
+auca
+Aucan
+Aucaner
+Aucanian
+Auchenia
+auchenia
+auchenium
+Auchincloss
+Auchinleck
+auchlet
+aucht
+Auckland
+auckland
+auctary
+auction
+auctionary
+auctioned
+auctioneer
+auctioneers
+auctioning
+auctions
+auctor
+auctorial
+auctorizate
+auctors
+Aucuba
+aucuba
+aucubas
+aucupate
+aud
+aud.
+audace
+audacious
+audaciously
+audaciousness
+audacities
+audacity
+audad
+audads
+Audaean
+Aude
+Auden
+Audette
+Audhumbla
+Audhumla
+Audi
+Audian
+Audibertia
+audibility
+audible
+audibleness
+audibles
+audibly
+Audie
+audience
+audience-proof
+audiencer
+audiences
+audiencia
+audiencier
+audient
+audients
+audile
+audiles
+auding
+audings
+audio
+audio-
+audioemission
+audio-frequency
+audiogenic
+audiogram
+audiograms
+audiological
+audiologies
+audiologist
+audiologists
+audiology
+audiometer
+audiometers
+audiometric
+audiometrically
+audiometries
+audiometrist
+audiometry
+Audion
+audion
+audiophile
+audiophiles
+audios
+audiotape
+audiotapes
+audiotypist
+audio-visual
+audiovisual
+audio-visually
+audiovisuals
+audiphone
+audit
+auditable
+audited
+auditing
+audition
+auditioned
+auditioning
+auditions
+auditive
+auditives
+auditor
+auditor-general
+auditoria
+auditorial
+auditorially
+auditories
+auditorily
+auditorium
+auditoriums
+auditors
+auditors-general
+auditorship
+auditory
+auditotoria
+auditress
+audits
+auditual
+audivise
+audiviser
+audivision
+AUDIX
+Audley
+Audly
+Audra
+Audras
+Audre
+Audres
+Audrey
+Audri
+Audrie
+Audris
+Audrit
+Audry
+Audrye
+Audsley
+Audubon
+audubon
+Audubonistic
+Audun
+Audwen
+Audwin
+Audy
+Auer
+Auerbach
+Aueto
+AUEW
+auf
+aufait
+aufgabe
+Aufklarung
+aufklarung
+Aufklrung
+Aufmann
+auftakt
+Aug
+Aug.
+aug
+aug.
+auganite
+Auge
+auge
+Augean
+augean
+Augeas
+augelite
+Augelot
+augen
+augend
+augends
+augen-gabbro
+augen-gneiss
+auger
+augerer
+auger-nose
+augers
+auger-type
+auget
+augh
+aught
+aughtlins
+aughts
+Augie
+Augier
+augite
+augite-porphyrite
+augite-porphyry
+augites
+augitic
+augitite
+augitophyre
+augment
+augmentable
+augmentation
+augmentationer
+augmentations
+augmentative
+augmentatively
+augmented
+augmentedly
+augmenter
+augmenters
+augmenting
+augmentive
+augmentor
+augments
+Augres
+augrim
+Augsburg
+augur
+augural
+augurate
+auguration
+augure
+augured
+augurer
+augurers
+augurial
+auguries
+auguring
+augurous
+augurs
+augurship
+augury
+August
+august
+Augusta
+augusta
+augustal
+Augustales
+Augustan
+augustan
+Auguste
+auguste
+auguster
+augustest
+Augusti
+Augustin
+augustin
+Augustina
+Augustine
+augustine
+Augustinian
+augustinian
+Augustinianism
+Augustinism
+augustly
+augustness
+Augusto
+Augustus
+Augy
+auh
+auhuhu
+AUI
+Auk
+auk
+auklet
+auklets
+auks
+auksinai
+auksinas
+auksinu
+aul
+aula
+aulacocarpous
+Aulacodus
+Aulacomniaceae
+Aulacomnium
+aulae
+Aulander
+Aulard
+aularian
+aulas
+auld
+aulder
+auldest
+auld-farran
+auld-farrand
+auld-farrant
+auldfarrantlike
+auld-warld
+Aulea
+auletai
+aulete
+auletes
+auletic
+auletrides
+auletris
+aulic
+aulical
+aulicism
+Auliffe
+Aulis
+aullay
+auln-
+auloi
+aulophobia
+aulophyte
+aulos
+Aulostoma
+Aulostomatidae
+Aulostomi
+aulostomid
+Aulostomidae
+Aulostomus
+Ault
+Aultman
+aulu
+AUM
+Aum
+aum
+aumaga
+aumail
+aumakua
+aumbries
+aumbry
+aumery
+aumil
+aumildar
+aummbulatory
+aumoniere
+aumous
+aumrie
+Aumsville
+Aun
+aunc-
+auncel
+Aundrea
+aune
+Aunjetitz
+Aunson
+aunt
+aunter
+aunters
+aunthood
+aunthoods
+auntie
+aunties
+auntish
+auntlier
+auntliest
+auntlike
+auntly
+auntre
+auntrous
+aunts
+auntsary
+auntship
+aunty
+AUP
+aupaka
+aur-
+AURA
+Aura
+aura
+aurae
+Aural
+aural
+aurally
+auramin
+auramine
+aurang
+Aurangzeb
+aurantia
+Aurantiaceae
+aurantiaceous
+Aurantium
+aurantium
+aurar
+auras
+aurata
+aurate
+aurated
+Aurea
+aureal
+aureate
+aureately
+aureateness
+aureation
+aurei
+aureity
+Aurel
+Aurelea
+Aurelia
+aurelia
+Aurelian
+aurelian
+Aurelie
+Aurelio
+Aurelius
+aurene
+Aureocasidium
+aureola
+aureolae
+aureolas
+aureole
+aureoled
+aureoles
+aureolin
+aureoline
+aureoling
+Aureomycin
+aureomycin
+aureous
+aureously
+Aures
+aures
+auresca
+aureus
+Auria
+auribromide
+Auric
+auric
+aurichalcite
+aurichalcum
+aurichloride
+aurichlorohydric
+auricle
+auricled
+auricles
+auricomous
+Auricula
+auricula
+auriculae
+auricular
+auriculare
+auriculares
+Auricularia
+auricularia
+Auriculariaceae
+auriculariae
+Auriculariales
+auricularian
+auricularias
+auricularis
+auricularly
+auriculars
+auriculas
+auriculate
+auriculated
+auriculately
+Auriculidae
+auriculo
+auriculocranial
+auriculoid
+auriculo-infraorbital
+auriculo-occipital
+auriculoparietal
+auriculotemporal
+auriculoventricular
+auriculovertical
+auricyanhydric
+auricyanic
+auricyanide
+auride
+Aurie
+auriferous
+aurifex
+aurific
+aurification
+aurified
+auriflamme
+auriform
+aurify
+aurifying
+Auriga
+auriga
+Aurigae
+aurigal
+aurigation
+aurigerous
+Aurigid
+Aurignac
+Aurignacian
+aurignacian
+aurigo
+aurigraphy
+auri-iodide
+aurilave
+Aurilia
+aurin
+aurinasal
+aurine
+Auriol
+auriphone
+auriphrygia
+auriphrygiate
+auripigment
+auripuncture
+aurir
+auris
+auriscalp
+auriscalpia
+auriscalpium
+auriscope
+auriscopic
+auriscopically
+auriscopy
+aurist
+aurists
+Aurita
+aurite
+aurited
+aurivorous
+Aurlie
+auro-
+auroauric
+aurobromide
+auroch
+aurochloride
+aurochs
+aurochses
+aurocyanide
+aurodiamine
+auronal
+Auroora
+aurophobia
+aurophore
+Aurora
+aurora
+aurorae
+auroral
+aurorally
+auroras
+Aurore
+aurore
+aurorean
+Aurorian
+aurorium
+aurotellurite
+aurothiosulphate
+aurothiosulphuric
+aurous
+aurrescu
+Aurthur
+aurulent
+Aurum
+aurum
+aurums
+aurung
+Aurungzeb
+aurure
+auryl
+AUS
+Aus
+Aus.
+Ausable
+Auschwitz
+auscult
+auscultascope
+auscultate
+auscultated
+auscultates
+auscultating
+auscultation
+auscultations
+auscultative
+auscultator
+auscultatory
+Auscultoscope
+auscultoscope
+Ause
+ausform
+ausformed
+ausforming
+ausforms
+ausgespielt
+Ausgleich
+Ausgleiche
+Aushar
+Auslander
+auslander
+auslaut
+auslaute
+Auslese
+Ausones
+Ausonian
+Ausonius
+auspex
+auspicate
+auspicated
+auspicating
+auspice
+auspices
+auspicial
+auspicious
+auspiciously
+auspiciousness
+auspicy
+Aussie
+aussie
+aussies
+Aust
+Aust.
+Austafrican
+austausch
+Austell
+austemper
+Austen
+austenite
+austenitic
+austenitize
+austenitized
+austenitizing
+Auster
+auster
+austere
+austerely
+austereness
+austerer
+austerest
+austerities
+austerity
+Austerlitz
+austerus
+Austin
+austin
+Austina
+Austinburg
+Austine
+Austinville
+Auston
+austr-
+Austral
+Austral.
+austral
+Australanthropus
+Australasia
+Australasian
+australasian
+Australe
+australene
+Austral-english
+Australia
+australia
+Australian
+australian
+Australiana
+Australianism
+Australianize
+Australian-oak
+australians
+Australic
+Australioid
+Australis
+australis
+australite
+Australoid
+australoid
+Australopithecinae
+Australopithecine
+australopithecine
+Australopithecus
+Australorp
+australorp
+australs
+Austrasia
+Austrasian
+Austreng
+Austria
+austria
+Austria-Hungary
+Austrian
+austrian
+Austrianize
+austrians
+Austric
+austrine
+austringer
+austrium
+Austro-
+Austro-Asiatic
+Austroasiatic
+austroasiatic
+Austro-columbia
+Austro-columbian
+Austrogaea
+Austrogaean
+Austro-Hungarian
+Austro-hungarian
+Austro-malayan
+austromancy
+Austronesia
+Austronesian
+austronesian
+Austrophil
+Austrophile
+Austrophilism
+Austroriparian
+Austro-swiss
+Austwell
+ausu
+ausubo
+ausubos
+aut-
+autacoid
+autacoidal
+autacoids
+autaesthesy
+autallotriomorphic
+autantitypy
+autarch
+autarchic
+autarchical
+autarchically
+autarchies
+autarchist
+Autarchoglossa
+autarchy
+autarkic
+autarkical
+autarkically
+autarkies
+autarkik
+autarkikal
+autarkist
+autarky
+Autaugaville
+aute
+autechoscope
+autecious
+auteciously
+auteciousness
+autecism
+autecisms
+autecologic
+autecological
+autecologically
+autecologist
+autecology
+autecy
+autem
+autere
+Auteuil
+auteur
+auteurism
+auteurs
+autexousy
+auth
+auth.
+authentic
+authentical
+authentically
+authenticalness
+authenticatable
+authenticate
+authenticated
+authenticates
+authenticating
+authentication
+authentications
+authenticator
+authenticators
+authenticities
+authenticity
+authenticly
+authenticness
+authigene
+authigenetic
+authigenic
+authigenous
+Authon
+author
+authorcraft
+author-created
+authored
+author-entry
+authoress
+authoresses
+authorhood
+authorial
+authorially
+authoring
+authorisable
+authorisation
+authorise
+authorised
+authoriser
+authorish
+authorising
+authorism
+authoritarian
+authoritarianism
+authoritarianisms
+authoritarians
+authoritative
+authoritatively
+authoritativeness
+authorities
+authority
+authorizable
+authorization
+authorizations
+authorize
+authorized
+authorizer
+authorizers
+authorizes
+authorizing
+authorless
+authorling
+authorly
+author-publisher
+author-ridden
+authors
+authorship
+authorships
+authotype
+autism
+autisms
+autist
+autistic
+auto
+auto-
+auto.
+autoabstract
+autoactivation
+autoactive
+autoaddress
+autoagglutinating
+autoagglutination
+autoagglutinin
+auto-alarm
+autoalarm
+autoalkylation
+autoallogamous
+autoallogamy
+autoanalysis
+autoanalytic
+autoantibody
+autoanticomplement
+autoantitoxin
+autoasphyxiation
+autoaspiration
+autoassimilation
+auto-audible
+Autobahn
+autobahn
+autobahnen
+autobahns
+autobasidia
+Autobasidiomycetes
+autobasidiomycetous
+autobasidium
+Autobasisii
+autobiographal
+autobiographer
+autobiographers
+autobiographic
+autobiographical
+autobiographically
+autobiographies
+autobiographist
+autobiography
+autobiology
+autoblast
+autoboat
+autoboating
+autobolide
+autobus
+autobuses
+autobusses
+autocab
+autocade
+autocades
+autocall
+autocamp
+autocamper
+autocamping
+autocar
+autocarist
+autocarp
+autocarpian
+autocarpic
+autocarpous
+autocatalepsy
+autocatalyses
+autocatalysis
+autocatalytic
+autocatalytically
+autocatalyze
+autocatharsis
+autocatheterism
+autocephalia
+autocephalic
+autocephality
+autocephalous
+autocephaly
+autoceptive
+autochanger
+autochemical
+autocholecystectomy
+autochrome
+autochromy
+autochronograph
+autochthon
+autochthonal
+autochthones
+autochthonic
+autochthonism
+autochthonous
+autochthonously
+autochthonousness
+autochthons
+autochthony
+autochton
+autocide
+autocinesis
+autoclasis
+autoclastic
+autoclave
+autoclaved
+autoclaves
+autoclaving
+autocoder
+autocoenobium
+autocoherer
+autocoid
+autocoids
+autocollimate
+autocollimation
+autocollimator
+autocollimators
+autocolony
+autocombustible
+autocombustion
+autocomplexes
+autocondensation
+autoconduction
+autoconvection
+autoconverter
+autocopist
+autocoprophagous
+autocorrelate
+autocorrelation
+autocorrosion
+autocosm
+autocracies
+autocracy
+autocrat
+autocratic
+autocratical
+autocratically
+autocraticalness
+autocrator
+autocratoric
+autocratorical
+autocratrix
+autocrats
+autocratship
+autocremation
+autocriticism
+autocross
+autocue
+autocycle
+autocystoplasty
+autocytolysis
+autocytolytic
+auto-da-f
+auto-da-fe
+auto-dafe
+autodecomposition
+autodecrement
+autodecremented
+autodecrements
+autodepolymerization
+autodermic
+autodestruction
+autodetector
+autodiagnosis
+autodiagnostic
+autodiagrammatic
+autodial
+autodialed
+autodialer
+autodialers
+autodialing
+autodialled
+autodialling
+autodials
+autodidact
+autodidactic
+autodidactically
+autodidacts
+autodifferentiation
+autodiffusion
+autodigestion
+autodigestive
+AUTODIN
+autodrainage
+autodrome
+autodynamic
+autodyne
+autodynes
+autoecholalia
+autoecic
+autoecious
+autoeciously
+autoeciousness
+autoecism
+autoecous
+autoecy
+autoed
+autoeducation
+autoeducative
+autoelectrolysis
+autoelectrolytic
+autoelectronic
+autoelevation
+autoepigraph
+autoepilation
+autoerotic
+autoerotically
+autoeroticism
+autoerotism
+autoette
+autoexcitation
+autofecundation
+autofermentation
+autofluorescence
+autoformation
+autofrettage
+autogamic
+autogamies
+autogamous
+autogamy
+autogauge
+autogeneal
+autogeneses
+autogenesis
+autogenetic
+autogenetically
+autogenic
+autogenies
+autogenous
+autogenously
+autogenuous
+autogeny
+Autogiro
+autogiro
+autogiros
+autognosis
+autognostic
+autograft
+autografting
+autogram
+autograph
+autographal
+autographed
+autographer
+autographic
+autographical
+autographically
+autographing
+autographism
+autographist
+autographometer
+autographs
+autography
+autogravure
+autogyro
+autogyros
+Autoharp
+autoharp
+autoheader
+autohemic
+autohemolysin
+autohemolysis
+autohemolytic
+autohemorrhage
+autohemotherapy
+autoheterodyne
+autoheterosis
+autohexaploid
+autohybridization
+autohypnosis
+autohypnotic
+autohypnotically
+autohypnotism
+autohypnotization
+autoicous
+autoignition
+autoimmune
+autoimmunities
+autoimmunity
+autoimmunization
+autoimmunize
+autoimmunized
+autoimmunizing
+autoincrement
+autoincremented
+autoincrements
+autoindex
+autoindexing
+autoinduction
+autoinductive
+auto-infection
+autoinfection
+autoinfusion
+autoing
+autoinhibited
+auto-inoculability
+auto-inoculable
+autoinoculable
+auto-inoculation
+autoinoculation
+autointellectual
+autointoxicant
+autointoxication
+autoionization
+autoirrigation
+autoist
+autojigger
+autojuggernaut
+autokinesis
+autokinesy
+autokinetic
+autokrator
+autolaryngoscope
+autolaryngoscopic
+autolaryngoscopy
+autolater
+autolatry
+autolavage
+autolesion
+autolimnetic
+autolith
+autolithograph
+autolithographer
+autolithographic
+autolithography
+autoloader
+autoloaders
+autoloading
+autological
+autologist
+autologous
+autology
+autoluminescence
+autoluminescent
+Autolycus
+autolysate
+autolysate-precipitate
+autolyse
+autolysin
+autolysis
+autolytic
+Autolytus
+autolyzate
+autolyze
+autolyzed
+autolyzes
+autolyzing
+automa
+automacy
+automaker
+automan
+automania
+automanipulation
+automanipulative
+automanual
+automat
+automata
+automatable
+automate
+automateable
+automated
+automates
+automatic
+automatical
+automatically
+automaticity
+automatics
+automatictacessing
+automating
+automation
+automations
+automatism
+automatist
+automative
+automatization
+automatize
+automatized
+automatizes
+automatizing
+automatograph
+automaton
+automatonlike
+automatons
+automatonta
+automatontons
+automatous
+automats
+automechanical
+automechanism
+Automedon
+automelon
+automen
+autometamorphosis
+autometric
+autometry
+automobile
+automobiled
+automobiles
+automobiling
+automobilism
+automobilist
+automobilistic
+automobilists
+automobility
+automolite
+automonstration
+automorph
+automorphic
+automorphically
+automorphic-granular
+automorphism
+automotive
+automotor
+automower
+autompne
+automysophobia
+autonavigator
+autonavigators
+autonegation
+autonephrectomy
+autonephrotoxin
+autonetics
+autoneurotoxin
+autonitridation
+Autonoe
+autonoetic
+autonomasy
+autonomic
+autonomical
+autonomically
+autonomies
+autonomist
+autonomize
+autonomous
+autonomously
+autonomousness
+autonomy
+autonym
+auto-objective
+auto-observation
+auto-omnibus
+auto-ophthalmoscope
+auto-ophthalmoscopy
+auto-oxidation
+autooxidation
+auto-oxidize
+autoparasitism
+autopathic
+autopathography
+autopathy
+autopelagic
+autopepsia
+autophagi
+autophagia
+autophagous
+autophagy
+autophobia
+autophoby
+autophon
+autophone
+autophonoscope
+autophonous
+autophony
+autophotoelectric
+autophotograph
+autophotometry
+autophthalmoscope
+autophyllogeny
+autophyte
+autophytic
+autophytically
+autophytograph
+autophytography
+autopilot
+autopilots
+autopista
+autoplagiarism
+autoplasmotherapy
+autoplast
+autoplastic
+autoplastically
+autoplasties
+autoplasty
+autopneumatic
+autopoint
+autopoisonous
+autopolar
+autopolo
+autopoloist
+autopolyploid
+autopolyploidy
+autopore
+autoportrait
+autoportraiture
+Autopositive
+autopositive
+autopotamic
+autopotent
+autoprogressive
+autoproteolysis
+autoprothesis
+autopsic
+autopsical
+autopsied
+autopsies
+autopsist
+autopsy
+autopsychic
+autopsychoanalysis
+autopsychology
+autopsychorhythmia
+autopsychosis
+autopsying
+autoptic
+autoptical
+autoptically
+autopticity
+autoput
+autopyotherapy
+autor
+autoracemization
+autoradiogram
+autoradiograph
+autoradiographic
+autoradiography
+autorail
+autoreduction
+autoreflection
+autoregenerator
+autoregressive
+autoregulation
+autoregulative
+autoregulatory
+autoreinfusion
+autoretardation
+autorhythmic
+autorhythmus
+auto-rickshaw
+auto-rifle
+autoriser
+autorotate
+autorotation
+autorotational
+autoroute
+autorrhaphy
+autos
+Autosauri
+Autosauria
+autoschediasm
+autoschediastic
+autoschediastical
+autoschediastically
+autoschediaze
+autoscience
+autoscope
+autoscopic
+autoscopy
+autosender
+autosensitization
+autosensitized
+autosepticemia
+autoserotherapy
+autoserum
+autosexing
+autosight
+autosign
+autosite
+autositic
+autoskeleton
+autosled
+autoslip
+autosomal
+autosomally
+autosomatognosis
+autosomatognostic
+autosome
+autosomes
+autosoteric
+autosoterism
+autospore
+autosporic
+autospray
+autostability
+autostage
+autostandardization
+autostarter
+autostethoscope
+autostoper
+autostrada
+autostradas
+autostylic
+autostylism
+autostyly
+autosuggest
+autosuggestibility
+autosuggestible
+autosuggestion
+autosuggestionist
+autosuggestions
+autosuggestive
+autosuppression
+autosymbiontic
+autosymbolic
+autosymbolical
+autosymbolically
+autosymnoia
+Autosyn
+autosyn
+autosyndesis
+autota
+autotelegraph
+autotelic
+autotelism
+autotetraploid
+autotetraploidy
+autothaumaturgist
+autotheater
+autotheism
+autotheist
+autotherapeutic
+autotherapy
+autothermy
+autotimer
+autotomic
+autotomies
+autotomise
+autotomised
+autotomising
+autotomize
+autotomized
+autotomizing
+autotomous
+autotomy
+autotoxaemia
+autotoxemia
+autotoxic
+autotoxication
+autotoxicity
+autotoxicosis
+autotoxin
+autotoxis
+autotractor
+autotransformer
+autotransfusion
+autotransplant
+autotransplantation
+autotrepanation
+autotriploid
+autotriploidy
+autotroph
+autotrophic
+autotrophically
+autotrophy
+autotropic
+autotropically
+autotropism
+autotruck
+autotuberculin
+autoturning
+autotype
+autotypes
+autotyphization
+autotypic
+autotypies
+autotypography
+autotypy
+autourine
+autovaccination
+autovaccine
+autovalet
+autovalve
+autovivisection
+AUTOVON
+autoxeny
+autoxidation
+autoxidation-reduction
+autoxidator
+autoxidizability
+autoxidizable
+autoxidize
+autoxidizer
+autozooid
+Autrain
+Autrans
+autre
+autrefois
+Autrey
+Autry
+Autryville
+Autum
+Autumn
+autumn
+autumnal
+autumnally
+autumn-brown
+Autumni
+autumnian
+autumnity
+autumns
+autumn-spring
+Autun
+Autunian
+autunite
+autunites
+auturgy
+Auvergne
+Auvil
+Auwers
+AUX
+aux
+aux.
+auxamylase
+auxanogram
+auxanology
+auxanometer
+auxeses
+auxesis
+auxetic
+auxetical
+auxetically
+auxetics
+AUXF
+Auxier
+auxil
+auxiliar
+auxiliaries
+auxiliarly
+auxiliary
+auxiliate
+auxiliation
+auxiliator
+auxiliatory
+auxilium
+auxillary
+auxilytic
+auximone
+auxin
+auxinic
+auxinically
+auxins
+Auxo
+auxoaction
+auxoamylase
+auxoblast
+auxobody
+auxocardia
+auxochrome
+auxochromic
+auxochromism
+auxochromous
+auxocyte
+auxoflore
+auxofluor
+auxograph
+auxographic
+auxohormone
+auxology
+auxometer
+auxospore
+auxosubstance
+auxotonic
+auxotox
+auxotroph
+auxotrophic
+auxotrophy
+Auxvasse
+Auzout
+A.V.
+A/V
+AV
+Av
+a-v
+av
+av-
+av.
+Ava
+ava
+avadana
+avadavat
+avadavats
+avadhuta
+avahi
+avail
+availabile
+availabilities
+availability
+available
+availableness
+availably
+availed
+availer
+availers
+availing
+availingly
+availment
+avails
+aval
+avalanche
+avalanched
+avalanches
+avalanching
+avale
+avalent
+Avallon
+Avalokita
+Avalokitesvara
+Avalon
+avalon
+avalvular
+Avan
+avance
+Avanguardisti
+avania
+avanious
+Avant
+avant
+avant-
+avantage
+avant-courier
+avanters
+avant-garde
+avantgarde
+avant-gardism
+avant-gardist
+Avanti
+avantlay
+avant-propos
+avanturine
+avanyu
+Avar
+Avaradrano
+avaram
+avaremotemo
+Avaria
+Avarian
+avarice
+avarices
+avaricious
+avariciously
+avariciousness
+Avarish
+avaritia
+Avars
+avascular
+avast
+avatar
+avatara
+avatars
+avaunt
+Avawam
+AVC
+AVD
+avdp
+avdp.
+Ave
+Ave.
+ave
+Avebury
+Aveiro
+Avelin
+Avelina
+Aveline
+avell
+Avella
+avellan
+avellane
+Avellaneda
+avellaneous
+avellano
+Avellino
+avelonge
+aveloz
+Avena
+avenaceous
+avenage
+Avenal
+avenalin
+avenant
+avenary
+Avenel
+avener
+avenery
+avenge
+avenged
+avengeful
+avengement
+avenger
+avengeress
+avengers
+avenges
+avenging
+avengingly
+avenida
+aveniform
+avenin
+avenine
+avenolith
+avenous
+avens
+avenses
+aventail
+aventails
+aventayle
+Aventine
+aventine
+aventre
+aventure
+aventurin
+aventurine
+avenue
+avenues
+aveny
+aver
+aver-
+Avera
+avera
+average
+averaged
+averagely
+averageness
+averager
+averages
+averaging
+averah
+Averell
+Averi
+averia
+Averil
+averil
+Averill
+averin
+Averir
+averish
+averment
+averments
+avern
+Avernal
+avernal
+Averno
+Avernus
+avernus
+averrable
+averral
+averred
+averrer
+Averrhoa
+Averrhoism
+Averrhoist
+Averrhoistic
+averring
+Averroes
+Averroism
+Averroist
+averroist
+Averroistic
+averruncate
+averruncation
+averruncator
+avers
+aversant
+aversation
+averse
+aversely
+averseness
+aversion
+aversions
+aversive
+avert
+avertable
+averted
+avertedly
+averter
+avertible
+avertiment
+Avertin
+avertin
+averting
+avertive
+averts
+Avery
+Averyl
+Aves
+aves
+Avesta
+avesta
+Avestan
+avestan
+avestruz
+aveugle
+Aveyron
+avg
+avg.
+avgas
+avgases
+avgasses
+Avi
+aviador
+avian
+avianization
+avianize
+avianized
+avianizes
+avianizing
+avians
+aviararies
+aviaries
+aviarist
+aviarists
+aviary
+aviate
+aviated
+aviates
+aviatic
+aviating
+aviation
+aviational
+aviations
+aviator
+aviatorial
+aviatoriality
+aviators
+aviatory
+aviatress
+aviatrice
+aviatrices
+aviatrix
+aviatrixes
+Avice
+Avicebron
+Avicenna
+Avicennia
+Avicenniaceae
+Avicennism
+avichi
+avicide
+avick
+avicolous
+Avictor
+Avicula
+avicular
+Avicularia
+avicularia
+avicularian
+Aviculariidae
+Avicularimorphae
+avicularium
+Aviculidae
+aviculture
+aviculturist
+avid
+avidin
+avidins
+avidious
+avidiously
+avidities
+avidity
+avidly
+avidness
+avidnesses
+avidous
+avidya
+Avie
+avie
+Aviemore
+aview
+avifauna
+avifaunae
+avifaunal
+avifaunally
+avifaunas
+avifaunistic
+avigate
+avigation
+avigator
+avigators
+Avigdor
+Avignon
+Avignonese
+avijja
+Avikom
+Avila
+avilaria
+avile
+avilement
+Avilion
+avilion
+Avilla
+avine
+Avinger
+aviolite
+avion
+avion-canon
+avionic
+avionics
+avions
+avirulence
+avirulent
+Avis
+avis
+Avisco
+avision
+aviso
+avisos
+Aviston
+avital
+avitaminoses
+avitaminosis
+avitaminotic
+avitic
+Avitzur
+Aviv
+Aviva
+Avivah
+avives
+avizandum
+AVLIS
+Avlona
+AVM
+avn
+avn.
+Avner
+Avo
+avo
+Avoca
+avocado
+avocadoes
+avocados
+avocat
+avocate
+avocation
+avocational
+avocationally
+avocations
+avocative
+avocatory
+avocet
+avocets
+avodire
+avodires
+avogadrite
+Avogadro
+avogadro
+avogram
+avoid
+avoidable
+avoidably
+avoidance
+avoidances
+avoidant
+avoided
+avoider
+avoiders
+avoiding
+avoidless
+avoidment
+avoids
+avoidupois
+avoidupoises
+avoir
+avoir.
+avoirdupois
+avoke
+avolate
+avolation
+avolitional
+Avon
+Avondale
+avondbloem
+Avonmore
+Avonne
+avos
+avoset
+avosets
+avouch
+avouchable
+avouched
+avoucher
+avouchers
+avouches
+avouching
+avouchment
+avoue
+avour
+avoure
+avourneen
+avouter
+avoutry
+avow
+avowable
+avowableness
+avowably
+avowal
+avowals
+avowance
+avowant
+avowe
+avowed
+avowedly
+avowedness
+avower
+avowers
+avowing
+avowries
+avowry
+avows
+avowter
+avoy
+avoyer
+avoyership
+Avra
+Avraham
+Avram
+Avril
+Avrit
+Avrom
+Avron
+Avruch
+Avshar
+avulse
+avulsed
+avulses
+avulsing
+avulsion
+avulsions
+avuncular
+avunculate
+avunculize
+avyayibhava
+avys
+AW
+a.w.
+aw
+aw-
+awa
+Awabakal
+awabi
+AWACS
+awacs
+Awad
+Awadhi
+awaft
+awag
+await
+awaited
+awaiter
+awaiters
+awaiting
+Awaitlala
+awaits
+awakable
+awake
+awakeable
+awaked
+awaken
+awakenable
+awakened
+awakener
+awakeners
+awakening
+awakeningly
+awakenings
+awakenment
+awakens
+awakes
+awaking
+awakings
+awald
+awalim
+awalt
+Awan
+awane
+awanting
+awanyu
+awapuhi
+A-war
+award
+awardable
+awarded
+awardee
+awardees
+awarder
+awarders
+awarding
+awardment
+awards
+aware
+awaredom
+awareness
+awarn
+awarrant
+awaruite
+awash
+awaste
+awat
+awatch
+awater
+awave
+away
+away-going
+awayness
+awaynesses
+aways
+AWB
+awber
+awd
+awe
+AWEA
+A-weapons
+awearied
+aweary
+a-weather
+aweather
+awe-awakening
+awe-band
+aweband
+awe-bound
+awe-commanding
+awe-compelling
+awed
+awedly
+awedness
+awee
+a-week
+aweek
+aweel
+awe-filled
+aweigh
+aweing
+awe-inspired
+awe-inspiring
+awe-inspiringly
+aweless
+awelessness
+Awellimiden
+Awendaw
+awes
+awesome
+awesomely
+awesomeness
+a-west
+awest
+awe-stricken
+awestricken
+awe-strike
+awestrike
+awe-struck
+awestruck
+aweto
+awfu
+awful
+awful-eyed
+awful-gleaming
+awfuller
+awfullest
+awful-looking
+awfully
+awfulness
+awful-voiced
+AWG
+awhape
+awheel
+a-wheels
+awheft
+a-whet
+awhet
+awhile
+a-whiles
+a-whir
+awhir
+a-whirl
+awhirl
+awide
+awiggle
+awikiwiki
+awin
+a-wing
+awing
+awingly
+a-wink
+awink
+awiwi
+AWK
+awk
+awkly
+awkward
+awkwarder
+awkwardest
+awkwardish
+awkwardly
+awkwardness
+awkwardnesses
+AWL
+awl
+awless
+awlessness
+awl-fruited
+awl-leaved
+awls
+awl-shaped
+awlwort
+awlworts
+awm
+awmbrie
+awmous
+awn
+awned
+awner
+awning
+awninged
+awnings
+awnless
+awnlike
+awns
+awny
+a-wobble
+awoke
+awoken
+A.W.O.L.
+AWOL
+Awol
+awol
+Awolowo
+awols
+awonder
+a-work
+awork
+aworry
+aworth
+a-wrack
+a-wreak
+awreak
+awreck
+awrist
+awrong
+awry
+Awshar
+AWST
+AWU
+awunctive
+Ax
+ax
+ax.
+Axa
+ax-adz
+AXAF
+axal
+axanthopsia
+axbreaker
+Axe
+axe
+axe-breaker
+axebreaker
+axed
+Axel
+axel
+axels
+axeman
+axemaster
+axemen
+axenic
+axenically
+axer
+axerophthol
+axers
+axes
+axfetch
+axhammer
+axhammered
+axhead
+axial
+axial-flow
+axialities
+axiality
+axially
+axiate
+axiation
+Axifera
+axiferous
+axiform
+axifugal
+axil
+axile
+axilemma
+axilemmas
+axilemmata
+axilla
+axillae
+axillant
+axillar
+axillaries
+axillars
+axillary
+axillas
+axils
+axin
+axine
+axing
+axiniform
+axinite
+axinomancy
+axiolite
+axiolitic
+axiological
+axiologically
+axiologies
+axiologist
+axiology
+axiom
+axiomatic
+axiomatical
+axiomatically
+axiomatization
+axiomatizations
+axiomatize
+axiomatized
+axiomatizes
+axiomatizing
+axioms
+axion
+axiopisty
+Axiopoenus
+Axis
+axis
+axised
+axises
+axisymmetric
+axisymmetrical
+axisymmetrically
+axisymmetry
+axite
+axites
+axle
+axle-bending
+axle-boring
+axle-centering
+axled
+axle-forging
+axles
+axlesmith
+axle-tooth
+axle-tree
+axletree
+axletrees
+axlike
+axmaker
+axmaking
+axman
+axmanship
+axmaster
+axmen
+Axminster
+axminster
+axodendrite
+axofugal
+axogamy
+axoid
+axoidean
+axolemma
+axolotl
+axolotls
+axolysis
+axometer
+axometric
+axometry
+axon
+axonal
+axone
+axonemal
+axoneme
+axonemes
+axones
+axoneure
+axoneuron
+Axonia
+axonic
+Axonolipa
+axonolipous
+axonometric
+axonometry
+Axonophora
+axonophorous
+Axonopus
+axonost
+axons
+axopetal
+axophyte
+axoplasm
+axoplasmic
+axoplasms
+axopodia
+axopodium
+axospermous
+axostyle
+axotomous
+axseed
+axseeds
+ax-shaped
+Axson
+axstone
+Axtel
+Axtell
+Axton
+axtree
+Axum
+Axumite
+axunge
+axweed
+axwise
+axwort
+AY
+Ay
+ay
+ay-
+ayacahuite
+Ayacucho
+ayah
+ayahausca
+ayahs
+ayahuasca
+Ayahuca
+Ayala
+ayapana
+ayatollah
+ayatollahs
+Aycliffe
+Aydelotte
+Ayden
+Aydendron
+Aydin
+Aydlett
+aye
+a-year
+aye-aye
+aye-ceaseless
+aye-during
+aye-dwelling
+ayegreen
+aye-lasting
+aye-living
+a-yelp
+ayelp
+ayen
+ayenbite
+ayens
+ayenst
+Ayer
+ayer-ayer
+aye-remaining
+aye-renewed
+aye-restless
+aye-rolling
+Ayers
+aye-running
+ayes
+Ayesha
+aye-sought
+aye-troubled
+aye-turning
+aye-varied
+aye-welcome
+ay-green
+AYH
+ayield
+ayin
+Ayina
+ayins
+Aylesbury
+ayless
+aylet
+Aylett
+ayllu
+Aylmar
+Aylmer
+Aylsworth
+Aylward
+Aym
+Aymara
+aymara
+Aymaran
+Aymaras
+Ayme
+ayme
+Aymer
+Aymoro
+Ayn
+Aynat
+ayne
+Aynor
+Ayntab
+Ayo
+ayond
+ayont
+ayous
+Ayr
+ayre
+Ayres
+Ayrshire
+ayrshire
+ays
+Aythya
+ayu
+Ayubite
+ayudante
+Ayudhya
+ayuntamiento
+ayuntamientos
+Ayurveda
+ayurveda
+ayurvedas
+Ayurvedic
+Ayuthea
+Ayuthia
+Ayutthaya
+ayuyu
+aywhere
+Ayyubid
+AZ
+az
+az-
+aza-
+azadirachta
+azadrachta
+azafran
+azafrin
+Azal
+Azalea
+azalea
+Azaleah
+azaleamum
+azaleas
+Azalia
+Azan
+azan
+Azana
+Azande
+azans
+Azar
+Azarcon
+Azaria
+Azariah
+azarole
+Azarria
+azaserine
+azathioprine
+Azazel
+azazel
+Azbine
+azedarac
+azedarach
+Azeglio
+Azeito
+azelaic
+azelate
+Azelea
+Azelfafage
+azeotrope
+azeotropic
+azeotropism
+azeotropy
+Azerbaidzhan
+Azerbaijan
+Azerbaijanese
+Azerbaijani
+Azerbaijanian
+Azerbaijanis
+Azeria
+Azha
+Azide
+azide
+azides
+azido
+aziethane
+Azikiwe
+Azilian
+Azilian-tardenoisian
+azilut
+Azimech
+azimene
+azimethylene
+azimide
+azimin
+azimine
+azimino
+aziminobenzene
+azimuth
+azimuthal
+azimuthally
+azimuths
+azine
+azines
+azinphosmethyl
+aziola
+Aziza
+azlactone
+Azle
+azlon
+azlons
+Aznavour
+azo
+azo-
+azobacter
+azobenzene
+azobenzil
+azobenzoic
+azobenzol
+azoblack
+azoch
+azocochineal
+azocoralline
+azocorinth
+azocyanide
+azocyclic
+azodicarboxylic
+azodiphenyl
+azodisulphonic
+azoeosin
+azoerythrin
+Azof
+azofication
+azofier
+azoflavine
+azoformamide
+azoformic
+azofy
+azogallein
+azogreen
+azogrenadine
+azohumic
+azoic
+azoimide
+azoisobutyronitrile
+azole
+azoles
+azolitmin
+Azolla
+azomethine
+azon
+azonal
+azonaphthalene
+azonic
+azonium
+azons
+azoology
+azo-orange
+azo-orchil
+azo-orseilline
+azoospermia
+azoparaffin
+azophen
+azophenetole
+azophenine
+azophenol
+azophenyl
+azophenylene
+Azophi
+azophosphin
+azophosphore
+azoprotein
+Azor
+Azores
+azores
+Azorian
+Azorin
+azorite
+azorubine
+azosulphine
+azosulphonic
+azotaemia
+azotate
+azote
+azotea
+azoted
+azotemia
+azotemias
+azotemic
+azotenesis
+azotes
+azotetrazole
+azoth
+azothionium
+azoths
+azotic
+azotin
+azotine
+azotise
+azotised
+azotises
+azotising
+azotite
+azotize
+azotized
+azotizes
+azotizing
+Azotobacter
+azotobacter
+Azotobacterieae
+azotoluene
+azotometer
+azotorrhea
+azotorrhoea
+Azotos
+azotous
+azoturia
+azoturias
+Azov
+azovernine
+azox
+azoxazole
+azoxime
+azoxine
+azoxonium
+azoxy
+azoxyanisole
+azoxybenzene
+azoxybenzoic
+azoxynaphthalene
+azoxyphenetole
+azoxytoluidine
+Azpurua
+Azrael
+azrael
+Azral
+Azriel
+Aztec
+aztec
+Azteca
+azteca
+Aztecan
+aztecan
+aztecs
+azthionium
+Azuela
+Azuero
+azulejo
+azulejos
+azulene
+azuline
+azulite
+azulmic
+azumbre
+azure
+azurean
+azure-blazoned
+azure-blue
+azure-canopied
+azure-circled
+azure-colored
+azured
+azure-domed
+azure-eyed
+azure-footed
+azure-inlaid
+azure-mantled
+azureness
+azureous
+azure-penciled
+azure-plumed
+azures
+azure-tinted
+azure-vaulted
+azure-veined
+azurine
+azurite
+azurites
+azurmalachite
+azurous
+azury
+Azusa
+azygo-
+Azygobranchia
+Azygobranchiata
+azygobranchiate
+azygomatous
+azygos
+azygoses
+azygosperm
+azygospore
+azygote
+azygous
+azyme
+azymite
+azymous
+B
+B-
+b
+B911
+B.A.
+BA
+Ba
+ba
+B.A.A.
+BAA
+baa
+baaed
+baahling
+baaing
+Baal
+baal
+Baalath
+Baalbeer
+Baalbek
+Baal-berith
+Baalim
+baalim
+Baalish
+Baalism
+baalism
+baalisms
+Baalist
+Baalistic
+Baalite
+Baalitical
+Baalize
+Baalized
+Baalizing
+Baalman
+baals
+Baalshem
+baar
+baas
+baases
+baaskaap
+baaskaaps
+baaskap
+Baastan
+Bab
+bab
+Baba
+baba
+babacoote
+babai
+babajaga
+baba-koto
+babakoto
+Babar
+Babara
+babas
+babasco
+babassu
+babassus
+babasu
+babaylan
+babaylanes
+Babb
+Babbage
+babbage
+Babbette
+Babbie
+babbie
+babbishly
+babbit
+babbit-metal
+Babbitry
+Babbitt
+babbitt
+babbitted
+babbitter
+Babbittess
+Babbittian
+babbitting
+Babbittish
+Babbittism
+Babbittry
+babbittry
+babbitts
+babblative
+babble
+babbled
+babblement
+babbler
+babblers
+babbles
+babblesome
+babbling
+babblingly
+babblings
+babblish
+babblishly
+babbly
+babbool
+babbools
+Babby
+babby
+Babcock
+babcock
+Babe
+babe
+babe-faced
+babehood
+Babel
+babel
+Babeldom
+babelet
+Babelic
+babelike
+Babelisation
+Babelise
+Babelised
+Babelish
+Babelising
+Babelism
+Babelization
+Babelize
+Babelized
+Babelizing
+babels
+Baber
+babery
+babes
+babeship
+Babesia
+babesia
+babesias
+babesiasis
+babesiosis
+Babette
+Babeuf
+Babhan
+Babi
+Babiana
+babiche
+babiches
+babied
+babies
+babies'-breath
+Babiism
+babillard
+Babine
+babingtonite
+babion
+babirousa
+babiroussa
+babirusa
+babirusas
+babirussa
+babis
+babish
+babished
+babishly
+babishness
+Babism
+Babist
+Babita
+Babite
+Babits
+babka
+babkas
+bablah
+bable
+babloh
+baboen
+Babol
+Babongo
+baboo
+baboodom
+babooism
+babool
+babools
+baboon
+baboonery
+baboonish
+baboonroot
+baboons
+baboos
+baboosh
+baboot
+babouche
+Babouvism
+Babouvist
+babracot
+babroot
+Babs
+Babson
+babu
+Babua
+babudom
+babuina
+babuism
+babul
+babuls
+Babuma
+Babungera
+Babur
+baburd
+babus
+babushka
+babushkas
+baby
+baby-blue-eyes
+Baby-bouncer
+baby-browed
+baby-doll
+babydom
+baby-face
+baby-faced
+baby-featured
+babyfied
+babyhood
+babyhoods
+babyhouse
+babying
+babyish
+babyishly
+babyishness
+babyism
+baby-kissing
+babylike
+Babylon
+babylon
+Babylonia
+babylonia
+Babylonian
+babylonian
+babylonians
+Babylonic
+Babylonish
+babylonish
+Babylonism
+Babylonite
+Babylonize
+babyolatry
+baby-sat
+babysat
+baby's-breath
+babyship
+baby-sit
+babysit
+baby-sitter
+babysitter
+baby-sitting
+babysitting
+baby-sized
+baby-snatching
+baby's-slippers
+baby-tears
+Baby-walker
+Bac
+bac
+bacaba
+bacach
+bacalao
+bacalaos
+bacao
+Bacardi
+Bacau
+bacauan
+bacbakiri
+BAcc
+bacca
+baccaceous
+baccae
+baccalaurean
+baccalaureat
+baccalaureate
+baccalaureates
+baccalaureus
+baccar
+baccara
+baccaras
+baccarat
+baccarats
+baccare
+baccate
+baccated
+Bacchae
+bacchae
+bacchanal
+Bacchanalia
+bacchanalia
+bacchanalian
+bacchanalianism
+bacchanalianly
+Bacchanalias
+bacchanalias
+bacchanalism
+bacchanalization
+bacchanalize
+bacchanals
+bacchant
+bacchante
+bacchantes
+bacchantic
+bacchants
+bacchar
+baccharis
+baccharoid
+baccheion
+Bacchelli
+bacchiac
+bacchian
+Bacchic
+bacchic
+Bacchical
+Bacchides
+bacchii
+bacchiuchii
+bacchius
+Bacchus
+bacchus
+Bacchuslike
+Bacchylides
+baccies
+bacciferous
+bacciform
+baccilla
+baccilli
+baccillla
+baccillum
+Baccio
+baccivorous
+baccy
+BACH
+Bach
+bach
+Bacharach
+bacharach
+Bache
+bache
+bached
+bachel
+Bacheller
+bachelor
+bachelor-at-arms
+bachelordom
+bachelorette
+bachelorhood
+bachelorhoods
+bachelorism
+bachelorize
+bachelorlike
+bachelorly
+bachelors
+bachelors-at-arms
+bachelor's-button
+bachelor's-buttons
+bachelorship
+bachelorwise
+bachelry
+baches
+Bachichi
+baching
+Bachman
+bacilary
+bacile
+Bacillaceae
+bacillar
+Bacillariaceae
+bacillariaceous
+Bacillariales
+Bacillarieae
+Bacillariophyta
+bacillary
+bacillemia
+bacilli
+bacillian
+bacillicidal
+bacillicide
+bacillicidic
+bacilliculture
+bacilliform
+bacilligenic
+bacilliparous
+bacillite
+bacillogenic
+bacillogenous
+bacillophobia
+bacillosis
+bacilluria
+bacillus
+bacin
+Bacis
+bacitracin
+back
+back-
+backache
+backaches
+backaching
+backachy
+back-acting
+backadation
+backage
+back-alley
+back-and-forth
+back-angle
+backare
+backarrow
+backarrows
+backband
+backbar
+backbear
+backbearing
+backbeat
+backbeats
+back-bencher
+backbencher
+backbenchers
+backbend
+backbends
+backberand
+back-berend
+backberend
+backbit
+backbite
+backbiter
+backbiters
+backbites
+back-biting
+backbiting
+backbitingly
+backbitten
+back-blocker
+backblocks
+backblow
+back-blowing
+back-board
+backboard
+backboards
+backbone
+backboned
+backboneless
+backbonelessness
+backbones
+backbrand
+backbreaker
+back-breaking
+backbreaking
+back-breathing
+back-broken
+back-burner
+backcap
+backcast
+backcasts
+backchain
+backchat
+backchats
+back-check
+back-cloth
+backcloth
+back-cloths
+backcomb
+back-coming
+back-connected
+back-country
+backcountry
+backcourt
+backcourtman
+backcross
+backdate
+backdated
+backdates
+backdating
+back-door
+backdoor
+backdown
+back-drawing
+back-drawn
+backdrop
+backdrops
+backed
+backed-off
+backen
+back-end
+backened
+backening
+Backer
+backer
+backers
+backers-up
+backer-up
+backet
+back-face
+back-facing
+backfall
+back-fanged
+backfatter
+backfield
+backfields
+backfill
+backfilled
+backfiller
+back-filleted
+backfilling
+backfills
+back-fire
+backfire
+backfired
+backfires
+backfiring
+backflap
+backflash
+backflip
+backflow
+back-flowing
+backflowing
+back-flung
+back-focused
+backfold
+back-formation
+backframe
+backfriend
+backfurrow
+backgame
+backgammon
+backgammons
+back-geared
+backgeared
+back-glancing
+back-going
+background
+backgrounds
+back-hand
+backhand
+back-handed
+backhanded
+backhandedly
+backhandedness
+back-hander
+backhander
+backhanding
+backhands
+backhatch
+backhaul
+backhauled
+backhauling
+backhauls
+Backhaus
+backheel
+backhoe
+backhoes
+backhooker
+backhouse
+backhouses
+backie
+backiebird
+backing
+backing-off
+backings
+backjaw
+backjoint
+backland
+backlands
+back-lash
+backlash
+backlashed
+backlasher
+backlashers
+backlashes
+backlashing
+back-leaning
+Backler
+backless
+backlet
+backliding
+back-light
+back-lighted
+back-lighting
+backlighting
+backlings
+backlins
+back-list
+backlist
+backlists
+back-lit
+backlit
+back-log
+backlog
+backlogged
+backlogging
+backlogs
+back-looking
+backlotter
+back-lying
+back-making
+backmost
+back-number
+backoff
+backorder
+backout
+backouts
+backpack
+backpacked
+backpacker
+backpackers
+backpacking
+backpacks
+back-paddle
+back-paint
+back-palm
+back-pedal
+backpedal
+back-pedaled
+backpedaled
+back-pedaling
+backpedaling
+back-pedalled
+back-pedalling
+back-piece
+backpiece
+backplane
+backplanes
+back-plaster
+back-plate
+backplate
+backpointer
+backpointers
+back-pulling
+back-putty
+back-racket
+back-raking
+backrest
+backrests
+backrope
+backropes
+backrun
+backrush
+backrushes
+Backs
+backs
+backsaw
+backsaws
+backscatter
+backscattered
+backscattering
+backscatters
+backscraper
+back-scratcher
+backscratcher
+back-scratching
+backscratching
+backseat
+backseats
+back-set
+backset
+backsets
+backsetting
+back-settler
+backsettler
+back-sey
+backsey
+backsheesh
+backshift
+backshish
+backside
+backsides
+backsight
+backsite
+back-slang
+back-slanging
+backslap
+backslapped
+backslapper
+backslappers
+back-slapping
+backslapping
+backslaps
+backslash
+backslashes
+backslid
+backslidden
+backslide
+backslided
+backslider
+backsliders
+backslides
+backsliding
+backslidingness
+backspace
+backspaced
+backspacefile
+backspacer
+backspaces
+backspacing
+backspang
+backspear
+backspeer
+backspeir
+backspier
+backspierer
+back-spiker
+backspin
+backspins
+backsplice
+backspliced
+backsplicing
+backspread
+backspringing
+backstab
+backstabbed
+backstabber
+backstabbing
+back-staff
+backstaff
+backstage
+backstair
+backstairs
+backstamp
+back-starting
+backstay
+backstays
+Backstein
+back-stepping
+backster
+backstick
+back-stitch
+backstitch
+backstitched
+backstitches
+backstitching
+backstone
+backstop
+back-stope
+backstopped
+backstopping
+backstops
+backstrap
+back-strapped
+backstrapped
+backstreet
+back-streeter
+backstretch
+backstretches
+backstring
+backstrip
+back-stroke
+backstroke
+backstroked
+backstrokes
+backstroking
+backstromite
+back-surging
+backswept
+backswimmer
+backswing
+back-sword
+backsword
+backswording
+backswordman
+backswordmen
+backswordsman
+backtack
+back-talk
+backtalk
+back-tan
+backtender
+backtenter
+back-titrate
+back-titration
+back-to-back
+back-to-front
+backtrace
+backtrack
+backtracked
+backtracker
+backtrackers
+backtracking
+backtracks
+backtrail
+back-trailer
+backtrick
+back-trip
+back-up
+backup
+backups
+Backus
+backus
+backveld
+backvelder
+backwall
+back-ward
+backward
+backwardation
+backwardly
+backwardness
+backwardnesses
+backwards
+backwash
+backwashed
+backwasher
+backwashes
+backwashing
+backwater
+backwatered
+backwaters
+back-way
+backway
+backwind
+backwinded
+backwinding
+backwood
+backwoods
+backwoodser
+backwoodsiness
+backwoodsman
+backwoodsmen
+backwoodsy
+backword
+backworm
+backwort
+backwrap
+backwraps
+backy
+backyard
+backyarder
+backyards
+baclava
+Bacliff
+baclin
+Baco
+Bacolod
+Bacon
+bacon
+bacon-and-eggs
+baconer
+Baconian
+baconian
+Baconianism
+Baconic
+Baconism
+Baconist
+baconize
+bacons
+Baconton
+baconweed
+bacony
+Bacopa
+Bacova
+bacquet
+bact
+bact.
+bacteraemia
+bacteremia
+bacteremic
+bacteri-
+bacteria
+Bacteriaceae
+bacteriaceous
+bacteriaemia
+bacterial
+bacterially
+bacterian
+bacteric
+bactericholia
+bactericidal
+bactericidally
+bactericide
+bactericides
+bactericidin
+bacterid
+bacteriemia
+bacteriform
+bacterin
+bacterins
+bacterio-
+bacterioagglutinin
+bacterioblast
+bacteriochlorophyll
+bacteriocidal
+bacteriocin
+bacteriocyte
+bacteriodiagnosis
+bacteriofluorescin
+bacteriogenic
+bacteriogenous
+bacteriohemolysin
+bacterioid
+bacterioidal
+bacteriol
+bacteriol.
+bacteriologic
+bacteriological
+bacteriologically
+bacteriologies
+bacteriologist
+bacteriologists
+bacteriology
+bacteriolysin
+bacteriolysis
+bacteriolytic
+bacteriolyze
+bacterio-opsonic
+bacterio-opsonin
+bacteriopathology
+bacteriophage
+bacteriophages
+bacteriophagia
+bacteriophagic
+bacteriophagous
+bacteriophagy
+bacteriophobia
+bacterioprecipitin
+bacterioprotein
+bacteriopsonic
+bacteriopsonin
+bacteriopurpurin
+bacteriorhodopsin
+bacterioscopic
+bacterioscopical
+bacterioscopically
+bacterioscopist
+bacterioscopy
+bacteriosis
+bacteriosolvent
+bacteriostasis
+bacteriostat
+bacteriostatic
+bacteriostatically
+bacteriotherapeutic
+bacteriotherapy
+bacteriotoxic
+bacteriotoxin
+bacteriotropic
+bacteriotropin
+bacteriotrypsin
+bacterious
+bacteririum
+bacteritic
+bacterium
+bacteriuria
+bacterization
+bacterize
+bacterized
+bacterizing
+bacteroid
+bacteroidal
+Bacteroideae
+Bacteroides
+bacteroides
+bactetiophage
+Bactra
+Bactria
+Bactrian
+Bactris
+Bactrites
+bactriticone
+bactritoid
+bacubert
+bacula
+bacule
+baculere
+baculi
+baculiferous
+baculiform
+baculine
+baculite
+Baculites
+baculitic
+baculiticone
+baculoid
+baculo-metry
+baculum
+baculums
+baculus
+bacury
+bad
+Badacsonyi
+Badaga
+Badajoz
+Badakhshan
+Badalona
+badan
+Badarian
+badarrah
+badass
+badassed
+badasses
+badaud
+Badawi
+Badaxe
+badaxe
+Badb
+badchan
+baddeleyite
+badder
+badderlocks
+baddest
+baddie
+baddies
+baddish
+baddishly
+baddishness
+baddock
+baddy
+bade
+Baden
+Baden-Baden
+badenite
+Baden-Powell
+Baden-Wtemberg
+badge
+badged
+badgeless
+badgeman
+badgemen
+Badger
+badger
+badgerbrush
+badgered
+badgerer
+badgering
+badgeringly
+badger-legged
+badgerlike
+badgerly
+badgers
+badgerweed
+badges
+badging
+badgir
+badhan
+bad-headed
+bad-hearted
+bad-humored
+badiaga
+badian
+badigeon
+Badin
+badinage
+badinaged
+badinages
+badinaging
+badiner
+badinerie
+badineur
+badious
+badju
+badland
+badlands
+badling
+bad-looking
+badly
+badman
+badmash
+badmen
+BAdmEng
+bad-minded
+badminton
+badmintons
+bad-mouth
+badmouth
+badmouthed
+badmouthing
+badmouths
+badness
+badnesses
+Badoeng
+Badoglio
+Badon
+Badr
+badrans
+bads
+bad-smelling
+bad-tempered
+Baduhenna
+BAE
+bae
+bae-
+Baecher
+BAEd
+Baeda
+Baedeker
+baedeker
+Baedekerian
+baedekers
+Baekeland
+Bael
+bael
+Baelbeer
+Baer
+Baeria
+Baerl
+Baerman
+Baese
+baetuli
+baetulus
+baetyl
+baetylic
+baetylus
+baetzner
+Baeyer
+Baez
+bafaro
+baff
+baffed
+baffeta
+baffies
+Baffin
+baffing
+baffle
+baffled
+bafflement
+bafflements
+baffleplate
+baffler
+bafflers
+baffles
+baffling
+bafflingly
+bafflingness
+baffs
+baffy
+BAFO
+baft
+bafta
+baftah
+Bafyot
+BAg
+bag
+baga
+Baganda
+bagani
+bagass
+bagasse
+bagasses
+bagataway
+bagatelle
+bagatelles
+Bagatha
+bagatine
+bagattini
+bagattino
+Bagaudae
+bag-bearing
+bag-bedded
+bag-bundling
+bag-cheeked
+bag-closing
+bag-cutting
+Bagdad
+Bagdi
+BAgE
+Bagehot
+bagel
+bagels
+bag-filling
+bag-flower
+bag-folding
+bagful
+bagfuls
+baggage
+baggageman
+baggagemaster
+baggager
+baggages
+baggage-smasher
+baggala
+bagganet
+Baggara
+bagge
+bagged
+Bagger
+bagger
+baggers
+Baggett
+baggie
+baggier
+baggies
+baggiest
+baggily
+bagginess
+bagging
+baggings
+baggit
+Baggott
+Baggs
+baggy
+baggyrinkle
+baggywrinkle
+bagh
+Baghdad
+baghdad
+Bagheera
+Bagheli
+baghla
+Baghlan
+baghouse
+bagie
+Baginda
+bagio
+bagios
+Bagirmi
+bagle
+bagleaves
+Bagley
+baglike
+bagmaker
+bagmaking
+bagman
+bagmen
+bagne
+Bagnes
+bagnes
+bagnet
+bagnette
+bagnio
+bagnios
+bagnut
+bago
+Bagobo
+bagonet
+bagong
+bagoong
+bagpipe
+bagpiped
+bagpiper
+bagpipers
+bagpipes
+bagpiping
+bagplant
+bagpod
+bag-printing
+bagpudding
+Bagpuize
+BAgr
+Bagram
+bagrationite
+bagre
+bag-reef
+bagreef
+Bagritski
+bagroom
+bags
+BAgSc
+bag-sewing
+bagsful
+bag-shaped
+bagtikan
+baguet
+baguets
+baguette
+baguettes
+Baguio
+baguio
+baguios
+bagwash
+Bagwell
+bag-wig
+bagwig
+bagwigged
+bagwigs
+bagwoman
+bagwomen
+bagwork
+bagworm
+bagworms
+bagwyn
+bah
+bahada
+bahadur
+bahadurs
+Baha'i
+Bahai
+bahai
+Bahaism
+Bahaist
+Baham
+Bahama
+Bahamas
+bahamas
+Bahamian
+bahamian
+bahamians
+bahan
+bahar
+Baha'ullah
+Bahaullah
+Bahawalpur
+bahawder
+bahay
+bahera
+Bahia
+bahiaite
+Bahima
+bahisti
+Bahmani
+Bahmanid
+Bahner
+bahnung
+baho
+bahoe
+bahoo
+Bahr
+Bahrain
+Bahrein
+baht
+bahts
+Bahuma
+bahur
+bahut
+bahuts
+Bahutu
+bahuvrihi
+bahuvrihis
+Bai
+bai
+Baiae
+Baianism
+baidak
+baidar
+baidarka
+baidarkas
+Baidya
+Baiel
+Baiera
+baiginet
+baign
+baignet
+baigneuse
+baigneuses
+baignoire
+Baikal
+baikalite
+baikerinite
+baikerite
+baikie
+Baikonur
+Bail
+bail
+bailable
+bailage
+Bailar
+bail-dock
+baile
+bailed
+bailee
+bailees
+bailer
+bailers
+Bailey
+bailey
+baileys
+Baileyton
+Baileyville
+bailiaries
+bailiary
+Bailie
+bailie
+bailieries
+bailiery
+bailies
+bailieship
+bailiff
+bailiffry
+bailiffs
+bailiffship
+bailiffwick
+bailing
+bailiwick
+bailiwicks
+Baillaud
+bailli
+bailliage
+Baillie
+baillie
+Baillieu
+baillone
+Baillonella
+Bailly
+bailment
+bailments
+bailo
+bailor
+bailors
+bail-out
+bailout
+bailouts
+bailpiece
+bails
+bailsman
+bailsmen
+bailwood
+Baily
+Bain
+bain
+Bainbridge
+Bainbrudge
+bainie
+Baining
+bainite
+bain-marie
+Bains
+bains-marie
+Bainter
+Bainville
+baioc
+baiocchi
+baiocco
+bairagi
+Bairam
+bairam
+Baird
+Bairdford
+bairdi
+bairn
+bairnie
+bairnish
+bairnishness
+bairnlier
+bairnliest
+bairnliness
+bairnly
+bairns
+Bairnsfather
+bairnteam
+bairnteem
+bairntime
+bairnwort
+Bairoil
+Bais
+Baisakh
+Baisden
+baisemain
+Baiss
+baister
+bait
+baited
+baiter
+baiters
+baitfish
+baith
+baiting
+baits
+baittle
+baitylos
+baiza
+baizas
+baize
+baized
+baizes
+baizing
+Baja
+baja
+bajada
+Bajadero
+Bajaj
+Bajan
+bajan
+Bajardo
+bajarigar
+Bajau
+Bajer
+bajocco
+bajochi
+Bajocian
+bajoire
+bajonado
+BAJour
+bajra
+bajree
+bajri
+bajulate
+bajury
+Bak
+baka
+Bakairi
+bakal
+Bakalai
+Bakalei
+Bakatan
+bake
+bakeapple
+bakeboard
+baked
+baked-apple
+bakehead
+bakehouse
+bakehouses
+Bakelite
+bakelite
+bakelize
+Bakeman
+bake-meat
+bakemeat
+bakemeats
+Bakemeier
+baken
+bake-off
+bakeout
+bakeoven
+bakepan
+Baker
+baker
+bakerdom
+bakeress
+bakeries
+bakerite
+baker-knee
+baker-kneed
+baker-leg
+baker-legged
+bakerless
+bakerlike
+bakerly
+Bakerman
+bakers
+Bakersfield
+bakersfield
+bakership
+Bakerstown
+Bakersville
+Bakerton
+bakery
+Bakes
+bakes
+bakeshop
+bakeshops
+bakestone
+bakeware
+Bakewell
+Bakhmut
+Bakhtiari
+bakie
+baking
+bakingly
+bakings
+Bakke
+Bakki
+baklava
+baklavas
+baklawa
+baklawas
+bakli
+Bakongo
+bakra
+Bakshaish
+baksheesh
+baksheeshes
+bakshi
+bakshis
+bakshish
+bakshished
+bakshishes
+bakshishing
+Bakst
+baktun
+Baku
+baku
+Bakuba
+bakula
+Bakunda
+Bakunin
+Bakuninism
+Bakuninist
+bakupari
+Bakutu
+Bakwiri
+BAL
+Bal
+bal
+bal.
+Bala
+Balaam
+balaam
+Balaamite
+Balaamitical
+balabos
+Balac
+balachan
+balachong
+Balaclava
+balaclava
+balada
+baladine
+Balaena
+Balaenicipites
+balaenid
+Balaenidae
+balaenoid
+Balaenoidea
+balaenoidean
+Balaenoptera
+Balaenopteridae
+balafo
+balagan
+balaghat
+balaghaut
+balai
+Balaic
+Balak
+Balakirev
+Balaklava
+balalaika
+balalaikas
+Balan
+Balance
+balance
+balanceable
+balanced
+balancedness
+balancelle
+balanceman
+balancement
+balancer
+balancers
+balances
+balancewise
+Balanchine
+balancing
+balander
+balandra
+balandrana
+balaneutics
+Balanga
+balangay
+balanic
+balanid
+Balanidae
+balaniferous
+balanism
+balanite
+Balanites
+balanitis
+balanoblennorrhea
+balanocele
+Balanoglossida
+Balanoglossus
+balanoid
+Balanophora
+Balanophoraceae
+balanophoraceous
+balanophore
+balanophorin
+balanoplasty
+balanoposthitis
+balanopreputial
+Balanops
+balanops
+Balanopsidaceae
+Balanopsidales
+balanorrhagia
+balant
+Balanta
+Balante
+balantidial
+balantidiasis
+balantidic
+balantidiosis
+Balantidium
+Balanus
+Balao
+balao
+balaos
+balaphon
+Balarama
+balarao
+Balas
+balas
+balases
+balat
+balata
+balatas
+balate
+Balaton
+balatong
+balatron
+balatronic
+balatte
+balau
+balausta
+balaustine
+balaustre
+Balawa
+Balawu
+balayeuse
+Balbinder
+Balbo
+Balboa
+balboa
+balboas
+balbriggan
+Balbuena
+Balbur
+balbusard
+balbutiate
+balbutient
+balbuties
+Balcer
+Balch
+balche
+Balcke
+balcon
+balcone
+balconet
+balconette
+balconied
+balconies
+balcony
+Bald
+bald
+baldacchini
+baldacchino
+baldachin
+baldachined
+baldachini
+baldachino
+baldachinos
+baldachins
+Baldad
+baldakin
+baldaquin
+Baldassare
+baldberry
+baldcrown
+balded
+balden
+Balder
+balder
+balder-brae
+balderdash
+balderdashes
+balder-herb
+baldest
+bald-faced
+baldfaced
+baldhead
+bald-headed
+baldheaded
+bald-headedness
+baldheads
+baldicoot
+Baldie
+baldies
+balding
+baldish
+baldling
+baldly
+baldmoney
+baldmoneys
+baldness
+baldnesses
+Baldomero
+baldoquin
+baldpate
+bald-pated
+baldpated
+bald-patedness
+baldpatedness
+baldpates
+Baldr
+baldrib
+baldric
+baldrick
+baldricked
+baldricks
+baldrics
+baldricwise
+Baldridge
+balds
+balducta
+balductum
+Balduin
+Baldur
+Baldwin
+Baldwinsville
+Baldwinville
+Baldwyn
+baldy
+Bale
+bale
+baleare
+Baleares
+Balearian
+Balearic
+Balearica
+balebos
+baled
+baleen
+baleens
+bale-fire
+balefire
+balefires
+baleful
+balefully
+balefulness
+balei
+baleise
+baleless
+Balenciaga
+Baler
+baler
+balers
+bales
+balestra
+balete
+Balewa
+balewort
+baleys
+Balf
+Balfore
+Balfour
+Bali
+bali
+balian
+balibago
+balibuntal
+balibuntl
+Balija
+Balikpapan
+Balilla
+balimbing
+baline
+Balinese
+balinese
+baling
+balinger
+balinghasay
+Baliol
+balisaur
+balisaurs
+balisier
+balistarii
+balistarius
+balister
+Balistes
+balistid
+Balistidae
+balistraria
+balita
+balitao
+baliti
+Balius
+balize
+balk
+Balkan
+balkan
+Balkanic
+Balkanise
+Balkanised
+Balkanising
+Balkanism
+Balkanite
+Balkanization
+balkanization
+Balkanize
+balkanize
+Balkanized
+balkanized
+Balkanizing
+balkanizing
+balkans
+Balkar
+balked
+balker
+balkers
+Balkh
+Balkhash
+balkier
+balkiest
+balkily
+Balkin
+balkiness
+balking
+balkingly
+Balkis
+balkish
+balkline
+balklines
+Balko
+balks
+balky
+Ball
+ball
+Balla
+ballad
+ballade
+balladeer
+balladeers
+ballader
+balladeroyal
+ballades
+balladic
+balladical
+balladier
+balladise
+balladised
+balladising
+balladism
+balladist
+balladize
+balladized
+balladizing
+balladlike
+balladling
+balladmonger
+balladmongering
+balladries
+balladromic
+balladry
+ballads
+balladwise
+ballahoo
+ballahou
+ballam
+ballan
+Ballance
+ballant
+Ballantine
+ballarag
+Ballarat
+Ballard
+ballard
+ballas
+ballast
+ballastage
+ballast-cleaning
+ballast-crushing
+ballasted
+ballaster
+ballastic
+ballasting
+ballast-loading
+ballasts
+ballat
+ballata
+ballate
+ballaton
+ballatoon
+ball-bearing
+ballbuster
+ball-carrier
+ballcarrier
+balldom
+balldress
+balled
+balled-up
+Ballengee
+Ballentine
+baller
+ballerina
+ballerinas
+ballerine
+ballers
+ballet
+balletic
+balletically
+balletomane
+balletomanes
+balletomania
+ballets
+ballett
+ballfield
+ball-flower
+ballflower
+ballgame
+ballgames
+ballgown
+ballgowns
+Ballhausplatz
+ballhawk
+ballhawks
+ball-hooter
+ballhooter
+balli
+balliage
+Ballico
+ballies
+Balliett
+Balling
+balling
+Ballinger
+Ballington
+Balliol
+ballised
+ballism
+ballismus
+ballist
+ballista
+ballistae
+ballistic
+ballistically
+ballistician
+ballisticians
+ballistics
+Ballistite
+ballistite
+ballistocardiogram
+ballistocardiograph
+ballistocardiographic
+ballistocardiography
+ballistophobia
+ballium
+ball-jasper
+Ballman
+ballmine
+ballo
+ballock
+ballocks
+balloen
+ballogan
+ballon
+ballone
+ballones
+ballonet
+ballonets
+ballonette
+ballonne
+ballonnes
+ballons
+ballon-sonde
+balloon
+balloonation
+balloon-berries
+balloon-berry
+ballooned
+ballooner
+ballooners
+balloonery
+balloonet
+balloonfish
+balloonfishes
+balloonflower
+balloonful
+ballooning
+balloonish
+balloonist
+balloonists
+balloonlike
+balloons
+ballot
+Ballota
+ballotade
+ballotage
+ballote
+balloted
+balloter
+balloters
+balloting
+ballotist
+ballots
+ballottable
+ballottement
+ballottine
+ballottines
+Ballou
+Ballouville
+ballow
+ball-park
+ballpark
+ballparks
+ball-planting
+Ballplatz
+ballplayer
+ballplayers
+ball-point
+ballpoint
+ballpoints
+ballproof
+ballroom
+ballrooms
+balls
+ball-shaped
+ballsier
+ballsiest
+ballstock
+balls-up
+ballsy
+ball-thrombus
+ballup
+ballute
+ballutes
+ballweed
+Ballwin
+Bally
+bally
+ballyhack
+ballyhoo
+ballyhooed
+ballyhooer
+ballyhooing
+ballyhoos
+Ballyllumford
+ballyrag
+ballyragged
+ballyragging
+ballyrags
+ballywack
+ballywrack
+balm
+balmacaan
+Balmain
+balm-apple
+Balmarcodes
+Balmat
+Balmawhapple
+balm-breathing
+balm-cricket
+balmier
+balmiest
+balmily
+balminess
+balminesses
+balm-leaved
+balmlike
+balmonies
+Balmont
+balmony
+Balmoral
+balmoral
+balmorals
+Balmorhea
+balms
+balm-shed
+Balmunc
+Balmung
+Balmuth
+balmy
+balnea
+balneae
+balneal
+balneary
+balneation
+balneatory
+balneographer
+balneography
+balneologic
+balneological
+balneologist
+balneology
+balneophysiology
+balneotechnics
+balneotherapeutics
+balneotherapia
+balneotherapy
+balneum
+Balnibarbi
+Baloch
+Balochi
+Balochis
+Baloghia
+Balolo
+balon
+balonea
+baloney
+baloneys
+baloo
+Balopticon
+balopticon
+Balor
+Baloskion
+Baloskionaceae
+balotade
+Balough
+balourdise
+balow
+BALPA
+balr
+bals
+balsa
+Balsam
+balsam
+balsamaceous
+balsamation
+Balsamea
+Balsameaceae
+balsameaceous
+balsamed
+balsamer
+balsamic
+balsamical
+balsamically
+balsamiferous
+balsamina
+Balsaminaceae
+balsaminaceous
+balsamine
+balsaming
+balsamitic
+balsamiticness
+balsamize
+balsamo
+Balsamodendron
+Balsamorrhiza
+balsamous
+balsamroot
+balsams
+balsamum
+balsamweed
+balsamy
+balsas
+balsawood
+Balshem
+Balt
+Balt.
+Balta
+Baltassar
+baltei
+balter
+baltetei
+balteus
+Balthasar
+Balthazar
+baltheus
+Balti
+Baltic
+baltic
+Baltimore
+baltimore
+Baltimorean
+baltimorite
+Baltis
+Balto-slav
+Balto-Slavic
+Balto-slavic
+balto-slavic
+Balto-Slavonic
+Balto-slavonic
+balu
+Baluba
+Baluch
+Baluchi
+baluchi
+Baluchis
+Baluchistan
+baluchithere
+baluchitheria
+Baluchitherium
+baluchitherium
+Baluga
+BALUN
+balun
+Balunda
+balushai
+baluster
+balustered
+balusters
+balustrade
+balustraded
+balustrades
+balustrading
+balut
+balwarra
+balza
+Balzac
+Balzacian
+balzarine
+BAM
+bam
+BAMAF
+bamah
+Bamako
+Bamalip
+Bamangwato
+bambacciata
+bamban
+Bambara
+Bamberg
+Bamberger
+Bambi
+Bambie
+bambini
+bambino
+bambinos
+bambocciade
+bambochade
+bamboche
+bamboo
+bamboos
+bamboozle
+bamboozled
+bamboozlement
+bamboozler
+bamboozlers
+bamboozles
+bamboozling
+Bambos
+bamboula
+Bambuba
+bambuco
+bambuk
+Bambusa
+bambusa
+Bambuseae
+Bambute
+Bamby
+Bamford
+Bamian
+Bamileke
+bammed
+bamming
+bamoth
+bams
+BAMusEd
+Ban
+ban
+Bana
+banaba
+Banach
+banago
+banagos
+banak
+banakite
+banal
+banalities
+banality
+banalize
+banally
+banalness
+banana
+Bananaland
+Bananalander
+bananaquit
+bananas
+Banande
+bananist
+bananivorous
+Banaras
+Banares
+Banat
+banat
+Banate
+banate
+banatite
+banausic
+Banba
+Banbury
+banbury
+banc
+banca
+bancal
+bancales
+bancha
+banchi
+Banco
+banco
+bancos
+Bancroft
+BANCS
+bancus
+band
+Banda
+banda
+bandage
+bandaged
+bandager
+bandagers
+bandages
+bandaging
+bandagist
+Band-Aid
+band-aid
+bandaid
+bandaite
+bandaka
+bandala
+bandalore
+Bandana
+bandana
+bandanaed
+bandanas
+bandanna
+bandannaed
+bandannas
+bandar
+Bandaranaike
+Bandar-log
+bandar-log
+bandarlog
+bandbox
+bandboxes
+bandboxical
+bandboxy
+bandcase
+bandcutter
+bande
+bandeau
+bandeaus
+bandeaux
+banded
+Bandeen
+bandel
+bandelet
+bandelette
+Bandello
+bandeng
+Bander
+bander
+Bandera
+banderilla
+banderillas
+banderillero
+banderilleros
+banderlog
+Banderma
+banderol
+banderole
+banderoled
+banderoles
+banderoling
+banderols
+banders
+bandersnatch
+bandfile
+bandfiled
+bandfiling
+bandfish
+band-gala
+bandgap
+bandh
+bandhava
+bandhook
+Bandhor
+bandhu
+bandi
+bandicoot
+bandicoots
+bandicoy
+bandido
+bandidos
+bandie
+bandied
+bandies
+bandikai
+Bandinelli
+bandiness
+banding
+bandit
+banditism
+banditries
+banditry
+bandits
+banditti
+Bandjarmasin
+Bandjermasin
+Bandkeramik
+bandle
+bandleader
+Bandler
+bandless
+bandlessly
+bandlessness
+bandlet
+bandlimit
+bandlimited
+bandlimiting
+bandlimits
+bandman
+bandmaster
+bandmasters
+bando
+bandobust
+Bandoeng
+bandog
+bandogs
+bandoleer
+bandoleered
+bandoleers
+bandolerismo
+bandolero
+bandoleros
+bandolier
+bandoliered
+bandoline
+Bandon
+bandon
+bandonion
+Bandor
+bandora
+bandoras
+bandore
+bandores
+bandos
+bandpass
+bandrol
+bands
+bandsaw
+bandsawed
+band-sawing
+bandsawing
+bandsawn
+band-sawyer
+band-shaped
+bandsman
+bandsmen
+bandspreading
+bandstand
+bandstands
+bandster
+bandstop
+bandstring
+band-tailed
+Bandundu
+Bandung
+Bandur
+bandura
+bandurria
+bandurrias
+Bandusia
+Bandusian
+bandwagon
+bandwagons
+bandwidth
+bandwidths
+bandwork
+bandworm
+bandy
+bandyball
+bandy-bandy
+bandying
+bandy-legged
+bandylegged
+bandyman
+Bandytown
+bane
+baneberries
+baneberry
+Banebrudge
+Banecroft
+baned
+baneful
+banefully
+banefulness
+Banerjea
+Banerjee
+banes
+banewort
+Banff
+Banffshire
+Bang
+bang
+banga
+Bangala
+bangalay
+Bangall
+Bangalore
+bangalow
+Bangash
+bang-bang
+bangboard
+bange
+banged
+banged-up
+banger
+bangers
+banghy
+Bangia
+Bangiaceae
+bangiaceous
+Bangiales
+banging
+Bangka
+Bangkok
+bangkok
+bangkoks
+Bangladesh
+bangladesh
+bangle
+bangled
+bangles
+bangling
+Bangor
+bangos
+Bangs
+bangs
+bangster
+bang-tail
+bangtail
+bangtailed
+bangtails
+Bangui
+bang-up
+bangup
+Bangwaketsi
+Bangweulu
+bangy
+bani
+bania
+banian
+banians
+Banias
+banig
+banilad
+baning
+banish
+banished
+banisher
+banishers
+banishes
+banishing
+banishment
+banishments
+banister
+banister-back
+banisterine
+banisters
+Baniva
+baniwa
+baniya
+banjara
+Banjermasin
+banjo
+banjoes
+banjoist
+banjoists
+banjo-picker
+banjore
+banjorine
+banjos
+banjo-uke
+banjo-ukulele
+banjo-zither
+banjuke
+Banjul
+banjulele
+Bank
+bank
+Banka
+bankable
+Bankalachi
+bank-bill
+bank-book
+bankbook
+bankbooks
+bankcard
+bankcards
+banked
+banker
+bankera
+bankerdom
+bankeress
+banker-mark
+banker-out
+bankers
+banket
+bank-full
+bankfull
+Bankhead
+bank-high
+Banking
+banking
+banking-house
+bankings
+bankman
+bankmen
+bank-note
+banknote
+banknotes
+bankrider
+bank-riding
+bankroll
+bankrolled
+bankroller
+bankrolling
+bankrolls
+bankrupcy
+bankrupt
+bankruptcies
+bankruptcy
+bankrupted
+bankrupting
+bankruptism
+bankruptlike
+bankruptly
+bankrupts
+bankruptship
+bankrupture
+Banks
+banks
+bankshall
+Banksia
+banksia
+Banksian
+banksias
+Bankside
+bank-side
+bankside
+bank-sided
+banksides
+banksman
+banksmen
+Bankston
+bankweed
+bank-wound
+Banky
+banky
+banlieu
+banlieue
+Banlon
+Bann
+Banna
+bannack
+Bannasch
+bannat
+banned
+Banner
+banner
+bannered
+bannerer
+banneret
+bannerets
+bannerette
+banner-fashioned
+bannerfish
+bannerless
+bannerlike
+bannerline
+Bannerman
+bannerman
+bannermen
+bannerol
+bannerole
+bannerols
+banners
+banner-shaped
+bannerwise
+bannet
+bannets
+bannimus
+Banning
+banning
+Bannister
+bannister
+bannisters
+bannition
+Bannock
+bannock
+Bannockburn
+bannocks
+Bannon
+banns
+bannut
+Banon
+banovina
+banque
+Banquer
+banquet
+Banquete
+banqueted
+banqueteer
+banqueteering
+banqueter
+banqueters
+banqueting
+banquetings
+banquets
+banquette
+banquettes
+Banquo
+banquo
+bans
+bansalague
+bansela
+banshee
+banshees
+banshie
+banshies
+Banstead
+banstickle
+bant
+Bantam
+bantam
+bantamize
+bantams
+bantamweight
+bantamweights
+bantay
+bantayan
+banteng
+banter
+bantered
+banterer
+banterers
+bantering
+banteringly
+banters
+bantery
+Banthine
+banties
+bantin
+Banting
+banting
+Bantingism
+bantingize
+bantings
+bantling
+bantlings
+Bantoid
+Bantry
+Bantu
+bantu
+Bantus
+bantus
+Bantustan
+banty
+banus
+banuyo
+Banville
+Banwell
+banxring
+banya
+Banyai
+banyan
+banyans
+Banyoro
+Banyuls
+banzai
+banzais
+BAO
+baobab
+baobabs
+BAOR
+Bap
+bap
+BAPCO
+BAPCT
+Baphia
+Baphomet
+baphomet
+Baphometic
+bapistery
+BAppArts
+Bapt
+bapt
+Baptanodon
+baptise
+baptised
+baptises
+Baptisia
+baptisia
+baptisias
+baptising
+baptism
+baptismal
+baptismally
+baptisms
+Baptist
+baptist
+Baptista
+Baptiste
+baptisteries
+baptistery
+Baptistic
+baptistic
+Baptistown
+baptistries
+baptistry
+baptists
+baptizable
+baptize
+baptized
+baptizee
+baptizement
+baptizer
+baptizers
+baptizes
+baptizing
+Baptlsta
+Baptornis
+BAR
+BAr
+Bar
+bar
+bar-
+bar.
+Bara
+bara
+barabara
+Barabas
+Barabbas
+barabbas
+Baraboo
+barabora
+Barabra
+Barac
+Baraca
+Barack
+Baracoa
+barad
+baradari
+Baraga
+baragnosis
+baragouin
+baragouinish
+Barahona
+baraita
+Baraithas
+Barajas
+barajillo
+Barak
+baraka
+Baralipton
+baralipton
+Baram
+Baramika
+baramin
+bar-and-grill
+barandos
+barangay
+barani
+Baranov
+Barany
+bara-picklet
+bararesque
+bararite
+Baras
+Barashit
+barasingha
+barat
+Barataria
+barathea
+baratheas
+barathra
+barathron
+barathrum
+barato
+baratte
+barauna
+Baray
+Barayon
+baraza
+Barb
+barb
+barba
+Barbabas
+Barbabra
+barbacan
+Barbacoa
+Barbacoan
+barbacou
+Barbadian
+barbadoes
+Barbados
+barbados
+barbal
+barbaloin
+barbar
+Barbara
+barbara
+Barbara-Anne
+Barbaraanne
+barbaralalia
+Barbarea
+Barbaresco
+Barbarese
+Barbaresi
+barbaresque
+Barbarian
+barbarian
+barbarianism
+barbarianize
+barbarianized
+barbarianizing
+barbarians
+barbaric
+barbarical
+barbarically
+barbarious
+barbariousness
+barbarisation
+barbarise
+barbarised
+barbarising
+barbarism
+barbarisms
+barbarities
+barbarity
+barbarization
+barbarize
+barbarized
+barbarizes
+barbarizing
+Barbarossa
+barbarous
+barbarously
+barbarousness
+Barbary
+barbary
+barbas
+barbasco
+barbascoes
+barbascos
+barbastel
+barbastelle
+barbate
+barbated
+barbatimao
+Barbe
+barbe
+Barbeau
+barbeau
+barbecue
+barbecued
+barbecueing
+barbecuer
+barbecues
+barbecuing
+barbed
+barbedness
+Barbee
+barbeiro
+barbel
+barbeled
+barbell
+barbellate
+barbells
+barbellula
+barbellulae
+barbellulate
+barbels
+barbeque
+barbequed
+barbequing
+Barber
+barber
+Barbera
+barbera
+barbered
+barberess
+barberfish
+barbering
+barberish
+barberite
+barbermonger
+barbero
+barberries
+barberry
+barbers
+barbershop
+barbershops
+barber-surgeon
+Barberton
+Barberville
+barbery
+barbes
+barbet
+barbets
+Barbette
+barbette
+barbettes
+Barbey
+Barbeyaceae
+Barbi
+Barbica
+barbican
+barbicanage
+barbicans
+barbicel
+barbicels
+Barbie
+barbierite
+barbigerous
+barbing
+barbion
+Barbirolli
+barbita
+barbital
+barbitalism
+barbitals
+barbiton
+barbitone
+barbitos
+barbituism
+barbiturate
+barbiturates
+barbituric
+barbiturism
+Barbizon
+barble
+barbless
+barblet
+barbola
+barbone
+barbotine
+barbotte
+barbouillage
+Barbour
+Barboursville
+Barbourville
+barboy
+Barboza
+Barbra
+barbre
+barbs
+barbu
+Barbuda
+barbudo
+barbudos
+Barbula
+barbula
+barbulate
+barbule
+barbules
+barbulyie
+Barbur
+Barbusse
+barbut
+barbute
+Barbuto
+barbuts
+barbwire
+barbwires
+Barby
+Barca
+Barcan
+barcarole
+barcaroles
+barcarolle
+barcas
+Barce
+barcella
+Barcellona
+Barcelona
+barcelona
+barcelonas
+Barceloneta
+B.Arch.
+BArch
+barchan
+barchans
+BArchE
+barche
+Barclay
+Barco
+barcolongo
+barcone
+Barcoo
+Barcot
+Barcroft
+Barcus
+Bard
+bard
+bardane
+bardash
+bardcraft
+Barde
+barde
+barded
+bardee
+Bardeen
+bardel
+bardelle
+Barden
+bardes
+Bardesanism
+Bardesanist
+Bardesanite
+bardess
+Bardia
+bardic
+bardie
+bardier
+bardiest
+bardiglio
+bardily
+bardiness
+barding
+bardings
+bardish
+bardism
+bardlet
+bardlike
+bardling
+Bardo
+bardo
+bardocucullus
+Bardolater
+bardolater
+Bardolatry
+bardolatry
+Bardolino
+Bardolph
+Bardolphian
+Bardot
+bards
+bardship
+Bardstown
+Bardulph
+Bardwell
+bardy
+Bare
+bare
+Barea
+bare-ankled
+bare-armed
+bare-ass
+bare-assed
+bareback
+bare-backed
+barebacked
+bare-bitten
+bareboat
+bareboats
+barebone
+bare-boned
+bareboned
+barebones
+bare-bosomed
+bare-branched
+bare-breasted
+bareca
+bare-chested
+bare-clawed
+bared
+bare-faced
+barefaced
+barefacedly
+barefacedness
+bare-fingered
+barefisted
+barefit
+Barefoot
+barefoot
+barefooted
+barege
+bareges
+bare-gnawn
+bare-handed
+barehanded
+barehead
+bare-headed
+bareheaded
+bareheadedness
+Bareilly
+bareka
+bare-kneed
+bareknuckle
+bareknuckled
+bare-legged
+barelegged
+Bareli
+barely
+Barenboim
+bare-necked
+barenecked
+bareness
+barenesses
+Barents
+bare-picked
+barer
+bare-ribbed
+bares
+baresark
+baresarks
+bare-skinned
+bare-skulled
+baresma
+barest
+baresthesia
+baret
+bare-throated
+bare-toed
+baretta
+bare-walled
+bare-worn
+barf
+barfed
+barff
+barfing
+barfish
+barflies
+barfly
+barfs
+barful
+Barfuss
+barfy
+bargain
+bargainable
+bargain-basement
+bargain-counter
+bargained
+bargainee
+bargainer
+bargainers
+bargain-hunting
+bargaining
+bargainor
+bargains
+bargainwise
+bargander
+barge
+barge-board
+bargeboard
+barge-couple
+barge-course
+barged
+bargee
+bargeer
+bargees
+bargeese
+bargehouse
+barge-laden
+bargelike
+bargelli
+bargello
+bargellos
+bargeload
+bargeman
+bargemaster
+bargemen
+bargepole
+Barger
+barger
+barge-rigged
+Bargersville
+barges
+barge-stone
+bargestone
+bargh
+bargham
+barghest
+barghests
+barging
+bargir
+bar-goose
+bargoose
+barguest
+barguests
+barhal
+Barhamsville
+barhop
+barhopped
+barhopping
+barhops
+Bari
+bari
+baria
+bariatrician
+bariatrics
+baric
+barid
+barie
+barih
+barile
+barilla
+barillas
+Bariloche
+Barimah
+Barina
+Barinas
+Baring
+baring
+bariolage
+baris
+barish
+barit
+barit.
+barite
+baritenor
+barites
+baritonal
+baritone
+baritones
+barium
+bariums
+bark
+barkan
+barkantine
+barkary
+bark-bared
+barkbound
+barkcutter
+bark-cutting
+barked
+barkeep
+barkeeper
+barkeepers
+barkeeps
+barken
+barkened
+barkening
+barkentine
+barkentines
+Barker
+barker
+barkers
+barkery
+barkevikite
+barkevikitic
+barkey
+bark-formed
+bark-galled
+bark-galling
+bark-grinding
+barkhan
+barkier
+barkiest
+Barking
+barking
+barkingly
+Barkinji
+Barkla
+barkle
+Barkleigh
+barkless
+Barkley
+barklyite
+barkometer
+barkpeel
+barkpeeler
+barkpeeling
+barks
+Barksdale
+bark-shredding
+barksome
+barkstone
+bark-tanned
+barky
+Barlach
+barlafumble
+barlafummil
+Bar-le-duc
+barleduc
+barleducs
+barless
+Barletta
+barley
+barleybird
+barleybrake
+barley-break
+barleybreak
+barley-bree
+barley-broo
+barley-cap
+barley-clipping
+Barleycorn
+barley-corn
+barleycorn
+barley-fed
+barley-grinding
+barley-hood
+barleyhood
+barley-hulling
+barleymow
+barleys
+barleysick
+barley-sugar
+Barling
+barling
+barlock
+Barlow
+barlow
+barlows
+barly
+barm
+barmaid
+barmaids
+barman
+barmaster
+barmbrack
+barmcloth
+Barmecidal
+barmecidal
+Barmecide
+barmecide
+Barmen
+barmen
+barmfel
+barmie
+barmier
+barmiest
+barming
+barmkin
+barmote
+barms
+barmskin
+barmy
+barmybrained
+Barn
+barn
+Barna
+Barnaba
+Barnabas
+barnabas
+Barnabe
+Barnabite
+barnabite
+Barna-brahman
+Barnaby
+barnaby
+barnacle
+barnacle-back
+barnacled
+barnacle-eater
+barnacles
+barnacling
+barnage
+Barnaise
+Barnard
+barnard
+Barnardo
+Barnardsville
+Barnaul
+barn-brack
+barnbrack
+Barnburner
+Barncard
+barn-door
+barndoor
+Barnebas
+Barnegat
+Barnes
+Barnesboro
+Barneston
+Barnesville
+Barnet
+Barnett
+Barneveld
+Barneveldt
+Barney
+barney
+barney-clapper
+barneys
+barnful
+Barnhard
+barnhardtite
+Barnhart
+Barnie
+barnier
+barniest
+barnlike
+barnman
+barnmen
+barn-raising
+barns
+barns-breaking
+Barnsdall
+Barnsley
+Barnstable
+Barnstead
+Barnstock
+barnstorm
+barnstormed
+barnstormer
+barnstormers
+barnstorming
+barnstorms
+Barnum
+Barnumesque
+Barnumism
+Barnumize
+barnumize
+Barnwell
+Barny
+barny
+barnyard
+barnyards
+baro-
+Barocchio
+barocco
+Barocius
+baroclinicity
+baroclinity
+Baroco
+barocyclonometer
+Baroda
+barodynamic
+barodynamics
+barognosis
+barogram
+barograms
+barograph
+barographic
+barographs
+baroi
+Baroja
+baroko
+Barolet
+Barolo
+barolo
+barology
+Barolong
+baromacrometer
+barometer
+barometers
+barometric
+barometrical
+barometrically
+barometrograph
+barometrography
+barometry
+barometz
+baromotor
+Baron
+baron
+baronage
+baronages
+baronduki
+baroness
+baronesses
+baronet
+baronetage
+baronetcies
+baronetcy
+baroneted
+baronethood
+baronetical
+baroneting
+baronetise
+baronetised
+baronetising
+baronetize
+baronetized
+baronetizing
+baronets
+baronetship
+barong
+Baronga
+barongs
+baroni
+baronial
+baronies
+baronize
+baronized
+baronizing
+baronne
+baronnes
+baronries
+baronry
+barons
+baronship
+barony
+barophobia
+Baroque
+baroque
+baroquely
+baroqueness
+baroques
+baroreceptor
+baroscope
+baroscopic
+baroscopical
+barosinusitis
+barosinusitus
+Barosma
+barosmin
+barostat
+baroswitch
+barotactic
+barotaxis
+barotaxy
+barothermogram
+barothermograph
+barothermohygrogram
+barothermohygrograph
+baroto
+barotrauma
+barotraumas
+barotraumata
+barotropic
+barotropy
+Barotse
+Barotseland
+barouche
+barouches
+barouchet
+barouchette
+Barouni
+baroxyton
+Barozzi
+barpost
+barquantine
+barque
+barquentine
+Barquero
+barques
+barquest
+barquette
+Barquisimeto
+Barr
+barr
+Barra
+barra
+barrabkie
+barrable
+barrabora
+barracan
+barrace
+barrack
+barracked
+barracker
+barracking
+barracks
+Barrackville
+barraclade
+barracoon
+barracouta
+barracoutas
+barracuda
+barracudas
+barracudina
+barrad
+Barrada
+barragan
+barrage
+barraged
+barrages
+barraging
+barragon
+Barram
+barramunda
+barramundas
+barramundi
+barramundies
+barramundis
+barranca
+Barrancabermeja
+barrancas
+barranco
+barrancos
+barrandite
+Barranquilla
+Barranquitas
+barras
+barrat
+barrater
+barraters
+barrator
+barrators
+barratries
+barratrous
+barratrously
+barratry
+Barrault
+Barraza
+Barre
+barre
+barred
+Barree
+barrel
+barrelage
+barrel-bellied
+barrel-boring
+barrel-branding
+barrel-chested
+barrel-driving
+barreled
+barreler
+barrelet
+barreleye
+barreleyes
+barrelfish
+barrelfishes
+barrelful
+barrelfuls
+barrelhead
+barrel-heading
+barrelhouse
+barrelhouses
+barreling
+barrelled
+barrelling
+barrelmaker
+barrelmaking
+barrel-packing
+barrel-roll
+barrels
+barrelsful
+barrel-shaped
+barrel-vaulted
+barrelwise
+Barren
+barren
+barrener
+barrenest
+barrenly
+barrenness
+barrennesses
+barrens
+barrenwort
+barrer
+barrera
+barrer-off
+Barres
+barres
+Barret
+barret
+barretor
+barretors
+barretries
+barretry
+barrets
+Barrett
+barrette
+barretter
+barrettes
+Barri
+barricade
+barricaded
+barricader
+barricaders
+barricades
+barricading
+barricado
+barricadoed
+barricadoes
+barricadoing
+barricados
+barrico
+barricoes
+barricos
+Barrie
+Barrientos
+barrier
+barriers
+barriguda
+barrigudo
+barrigudos
+barrikin
+barriness
+barring
+barringer
+Barrington
+Barringtonia
+barrio
+barrio-dwellers
+Barrios
+barrios
+Barris
+barrister
+barrister-at-law
+barristerial
+barristers
+barristership
+barristress
+BARRNET
+Barron
+Barronett
+barroom
+barrooms
+Barros
+Barrow
+barrow
+barrow-boy
+barrowcoat
+barrowful
+Barrow-in-Furness
+Barrowist
+barrowist
+barrow-man
+barrowman
+barrow-men
+barrows
+barrulee
+barrulet
+barrulety
+barruly
+Barrus
+Barry
+barry
+barry-bendy
+Barrymore
+barry-nebuly
+barry-pily
+Barryton
+Barrytown
+Barryville
+barry-wavy
+bars
+Barsac
+barse
+Barsky
+barsom
+barspoon
+barstool
+barstools
+Barstow
+Bart
+Bart.
+bart
+Barta
+bar-tailed
+Bartel
+Bartelso
+bartend
+bartended
+bartender
+bartenders
+bartending
+bartends
+barter
+bartered
+barterer
+barterers
+bartering
+barters
+Barth
+barth
+Barthel
+Barthelemy
+Barthian
+barthian
+Barthianism
+barthite
+Barthol
+Barthold
+Bartholdi
+Bartholemy
+bartholinitis
+Bartholomean
+Bartholomeo
+Bartholomeus
+Bartholomew
+bartholomew
+Bartholomewtide
+Bartholomite
+Barthou
+Bartie
+bartisan
+bartisans
+bartizan
+bartizaned
+bartizans
+Bartko
+Bartle
+Bartlemy
+Bartlesville
+Bartlet
+Bartlett
+bartlett
+bartletts
+Bartley
+Barto
+Bartok
+Bartolemo
+Bartolome
+Bartolomeo
+Bartolommeo
+Bartolozzi
+Barton
+barton
+Bartonella
+Bartonia
+Bartonsville
+Bartonville
+Bartosch
+Bartow
+Bartram
+bartram
+Bartramia
+Bartramiaceae
+Bartramian
+bartree
+Bartsia
+bartsia
+Barty
+baru
+Baruch
+barukhzy
+Barundi
+baruria
+barvel
+barvell
+Barvick
+barwal
+barware
+barwares
+barway
+barways
+Barwick
+barwin
+barwing
+barwise
+barwood
+bar-wound
+Bary
+barycenter
+barycentre
+barycentric
+Barye
+barye
+baryecoia
+baryes
+baryglossia
+barylalia
+barylite
+baryon
+baryonic
+baryons
+baryphonia
+baryphonic
+baryphony
+Baryram
+barysilite
+barysphere
+baryta
+barytas
+baryte
+barytes
+barythymia
+barytic
+barytine
+baryto-
+barytocalcite
+barytocelestine
+barytocelestite
+baryton
+barytone
+barytones
+barytons
+barytophyllite
+barytostrontianite
+barytosulphate
+Barzani
+BAS
+bas
+basad
+basal
+basale
+basalia
+basally
+basal-nerved
+basalt
+basaltes
+basaltic
+basaltiform
+basaltine
+basaltoid
+basalt-porphyry
+basalts
+basaltware
+basan
+basanite
+basaree
+basat
+BASc
+bascinet
+Bascio
+Basco
+Bascology
+Bascom
+Bascomb
+basculation
+bascule
+bascules
+bascunan
+Base
+base
+base-ball
+baseball
+baseballdom
+baseballer
+baseballs
+baseband
+base-begged
+base-begot
+baseboard
+baseboards
+base-born
+baseborn
+basebred
+base-burner
+baseburner
+basecoat
+base-court
+basecourt
+based
+base-forming
+basehearted
+baseheartedness
+Basehor
+Basel
+baselard
+Baseler
+baseless
+baselessly
+baselessness
+baselevel
+baselike
+baseline
+baseliner
+baselines
+Basella
+basella
+Basellaceae
+basellaceous
+Basel-Land
+Basel-Mulhouse
+Basel-Stadt
+basely
+baseman
+basemen
+basement
+basementless
+basements
+basementward
+base-mettled
+base-minded
+base-mindedly
+base-mindedness
+basename
+baseness
+basenesses
+basenet
+Basenji
+basenji
+basenjis
+baseplate
+baseplug
+basepoint
+baser
+baserunning
+bases
+base-souled
+base-spirited
+base-spiritedness
+basest
+base-witted
+bas-fond
+BASH
+bash
+bashalick
+Basham
+Bashan
+bashara
+bashaw
+bashawdom
+bashawism
+bashaws
+bashawship
+bashed
+Bashee
+Bashemath
+Bashemeth
+basher
+bashers
+bashes
+bashful
+bashfully
+bashfulness
+bashfulnesses
+bashi-bazouk
+bashibazouk
+bashi-bazoukery
+Bashilange
+-bashing
+bashing
+Bashkir
+Bashkiria
+bashless
+bashlik
+bashlyk
+bashlyks
+bashment
+Bashmuric
+Basho
+Bashuk
+bashyle
+basi-
+Basia
+basial
+basialveolar
+basiarachnitis
+basiarachnoiditis
+basiate
+basiated
+basiating
+basiation
+Basibracteolate
+basibranchial
+basibranchiate
+basibregmatic
+BASIC
+Basic
+basic
+basically
+basicerite
+basichromatic
+basichromatin
+basichromatinic
+basichromiole
+basicities
+basicity
+basic-lined
+basicranial
+basics
+basicytoparaplastin
+basidia
+basidial
+basidigital
+basidigitale
+basidigitalia
+basidiocarp
+basidiogenetic
+basidiolichen
+Basidiolichenes
+basidiomycete
+Basidiomycetes
+basidiomycetes
+basidiomycetous
+basidiophore
+basidiospore
+basidiosporous
+basidium
+basidorsal
+Basie
+basifacial
+basification
+basified
+basifier
+basifiers
+basifies
+basifixed
+basifugal
+basify
+basifying
+basigamous
+basigamy
+basigenic
+basigenous
+basiglandular
+basigynium
+basihyal
+basihyoid
+Basil
+basil
+Basilan
+basilar
+Basilarchia
+basilard
+basilary
+basilateral
+Basildon
+Basile
+basilect
+basileis
+basilemma
+basileus
+Basilian
+basilian
+basilic
+Basilica
+basilica
+Basilicae
+basilicae
+basilical
+basilicalike
+basilican
+basilicas
+Basilicata
+basilicate
+basilicock
+basilicon
+Basilics
+basilics
+basilidan
+Basilidian
+Basilidianism
+Basiliensis
+basilinna
+Basilio
+basiliscan
+basiliscine
+Basiliscus
+basilisk
+basilisks
+basilissa
+Basilius
+Basilosauridae
+Basilosaurus
+basils
+basilweed
+basilysis
+basilyst
+basimesostasis
+basin
+basinal
+basinasal
+basinasial
+basined
+basinerved
+basinet
+basinets
+basinful
+basing
+Basingstoke
+basinlike
+basins
+basioccipital
+basion
+basions
+basiophitic
+basiophthalmite
+basiophthalmous
+basiotribe
+basiotripsy
+basiparachromatin
+basiparaplastin
+basipetal
+basipetally
+basiphobia
+basipodite
+basipoditic
+basipterygial
+basipterygium
+basipterygoid
+Basir
+basiradial
+basirhinal
+basirostral
+basis
+basiscopic
+basisidia
+basisolute
+basisphenoid
+basisphenoidal
+basitemporal
+basitting
+basiventral
+basivertebral
+bask
+baske
+basked
+basker
+Baskerville
+basket
+basket-ball
+basketball
+basketballer
+basketballs
+basket-bearing
+basketful
+basketfuls
+basket-hilted
+basketing
+basketlike
+basketmaker
+basketmaking
+basket-of-gold
+basketries
+basketry
+baskets
+basket-star
+Baskett
+basketware
+basketweaving
+basketwoman
+basketwood
+basketwork
+basketworm
+Baskin
+basking
+Baskish
+Baskonize
+basks
+Basle
+basnat
+basnet
+Basoche
+basocyte
+Basoga
+basoid
+Basoko
+Basom
+Basommatophora
+basommatophorous
+bason
+Basonga-mina
+Basongo
+basophil
+basophile
+basophilia
+basophilic
+basophilous
+basophils
+basophobia
+basos
+basote
+Basotho
+basotho
+Basotho-Qwaqwa
+Basov
+Basque
+basque
+basqued
+basques
+basquine
+Basra
+bas-relief
+Bas-Rhin
+Bass
+bass
+Bassa
+Bassalia
+Bassalian
+bassan
+bassanello
+bassanite
+Bassano
+bassara
+bassarid
+Bassaris
+Bassariscus
+bassarisk
+bass-bar
+Bassein
+Basse-Normandie
+Bassenthwaite
+basses
+Basses-Alpes
+Basses-Pyrn
+Basset
+basset
+basse-taille
+basseted
+Basse-Terre
+Basseterre
+basset-horn
+basseting
+bassetite
+bassets
+Bassett
+bassetta
+bassette
+bassetted
+bassetting
+Bassetts
+Bassfield
+bass-horn
+bassi
+Bassia
+bassia
+bassie
+bassine
+bassinet
+bassinets
+bassing
+bassi-rilievi
+bassirilievi
+bassist
+bassists
+bassly
+bassness
+bassnesses
+Basso
+basso
+basson
+bassoon
+bassoonist
+bassoonists
+bassoons
+basso-relievo
+basso-relievos
+basso-rilievo
+bassorin
+bassos
+bass-relief
+bassus
+bass-viol
+bass-wood
+basswood
+basswoods
+bassy
+Bast
+bast
+basta
+Bastaard
+Bastad
+bastant
+Bastard
+bastard
+bastarda
+bastard-cut
+bastardice
+bastardies
+bastardisation
+bastardise
+bastardised
+bastardising
+bastardism
+bastardization
+bastardizations
+bastardize
+bastardized
+bastardizes
+bastardizing
+bastardliness
+bastardly
+bastardry
+bastards
+bastard-saw
+bastard-sawed
+bastard-sawing
+bastard-sawn
+bastardy
+baste
+basted
+bastel-house
+basten
+baster
+basters
+bastes
+basti
+Bastia
+Bastian
+bastian
+bastide
+Bastien
+bastile
+bastiles
+Bastille
+bastille
+bastilles
+bastillion
+bastiment
+bastinade
+bastinaded
+bastinades
+bastinading
+bastinado
+bastinadoed
+bastinadoes
+bastinadoing
+basting
+bastings
+bastion
+bastionary
+bastioned
+bastionet
+bastions
+bastite
+bastnaesite
+bastnasite
+basto
+Bastogne
+baston
+bastonet
+bastonite
+Bastrop
+basts
+basural
+basurale
+Basuto
+basuto
+Basutoland
+Basutos
+Basye
+basyl
+Bat
+bat
+Bataan
+bataan
+Bataan-Corregidor
+batable
+batad
+Batak
+batakan
+bataleur
+batamote
+Batan
+Batanes
+Batangas
+batara
+batarde
+batardeau
+batata
+Batatas
+batatilla
+Batavi
+Batavia
+Batavian
+batavian
+batboy
+batboys
+batch
+batched
+Batchelder
+Batchelor
+batcher
+batchers
+batches
+batching
+Batchtown
+Bate
+bate
+batea
+bat-eared
+bateau
+bateaux
+bated
+bateful
+Batekes
+batel
+bateleur
+batell
+Bateman
+bateman
+batement
+Baten
+bater
+Bates
+bates
+Batesburg
+Batesland
+Batesville
+batete
+Batetela
+batfish
+batfishes
+bat-fowl
+batfowl
+batfowled
+batfowler
+batfowling
+batfowls
+batful
+Bath
+bath
+bath-
+Batha
+Bathala
+bathe
+batheable
+bathed
+Bathelda
+bather
+bathers
+bathes
+Bathesda
+bathetic
+bathetically
+bathflower
+bathhouse
+bathhouses
+bathic
+Bathilda
+Bathinette
+bathinette
+bathing
+bathing-machine
+bathkol
+bathless
+bath-loving
+bathman
+bathmat
+bathmats
+bathmic
+bathmism
+bathmotropic
+bathmotropism
+batho-
+bathochromatic
+bathochromatism
+bathochrome
+bathochromic
+bathochromy
+bathoflore
+bathofloric
+batholite
+batholith
+batholithic
+batholiths
+batholitic
+Batholomew
+bathomania
+bathometer
+bathometry
+Bathonian
+bathool
+bathophobia
+bathorse
+bathos
+bathoses
+bathrobe
+bathrobes
+bathroom
+bathroomed
+bathrooms
+bathroot
+baths
+Bathsheb
+Bath-sheba
+Bathsheba
+Bathsheeb
+bathtub
+bathtubful
+bathtubs
+bathukolpian
+bathukolpic
+Bathulda
+Bathurst
+bathvillite
+bathwater
+bathwort
+bathy-
+bathyal
+bathyanesthesia
+bathybian
+bathybic
+bathybius
+bathycentesis
+bathychrome
+bathycolpian
+bathycolpic
+bathycurrent
+bathyesthesia
+bathygraphic
+bathyhyperesthesia
+bathyhypesthesia
+bathyl
+bathylimnetic
+bathylite
+bathylith
+bathylithic
+bathylitic
+bathymeter
+bathymetric
+bathymetrical
+bathymetrically
+bathymetry
+bathyorographical
+bathypelagic
+bathyplankton
+bathyscape
+bathyscaph
+bathyscaphe
+bathyscaphes
+bathyseism
+bathysmal
+bathysophic
+bathysophical
+bathysphere
+bathyspheres
+bathythermogram
+bathythermograph
+Batia
+Batidaceae
+batidaceous
+batik
+batiked
+batiker
+batiking
+batiks
+Batilda
+bating
+batino
+Batis
+Batish
+Batista
+batiste
+batistes
+batitinan
+batlan
+batler
+batlet
+Batley
+batlike
+batling
+batlon
+Batman
+batman
+batmen
+bat-minded
+bat-mindedness
+bat-mule
+Batna
+Batocrinidae
+Batocrinus
+Batodendron
+batoid
+Batoidei
+Batoka
+Baton
+baton
+batoneer
+Batonga
+batonist
+batonistic
+batonne
+batonnier
+batons
+batoon
+batophobia
+Bator
+Batory
+Batrachia
+batrachia
+batrachian
+batrachians
+batrachiate
+Batrachidae
+batrachite
+Batrachium
+batracho-
+batrachoid
+Batrachoididae
+batrachophagous
+Batrachophidia
+batrachophobia
+batrachoplasty
+Batrachospermum
+batrachotoxin
+Batruk
+bats
+BATSE
+Batsheva
+bats-in-the-belfry
+batsman
+batsmanship
+batsmen
+Batson
+batster
+batswing
+batt
+Batta
+batta
+battable
+battailant
+battailous
+Battak
+Battakhin
+battalia
+battalias
+battalion
+battalions
+Battambang
+battarism
+battarismus
+Battat
+batteau
+batteaux
+batted
+battel
+batteled
+batteler
+batteling
+Battelle
+Battelmatt
+battels
+battement
+battements
+batten
+Battenburg
+battened
+battener
+batteners
+battening
+battens
+batter
+batterable
+battercake
+batterdock
+battered
+batterer
+batterfang
+batterie
+batteried
+batteries
+battering
+battering-ram
+batterman
+batter-out
+batters
+Battersea
+Battery
+battery
+battery-charging
+batteryman
+battery-powered
+battery-testing
+batteuse
+Batticaloa
+battier
+batties
+Battiest
+battiest
+battik
+battiks
+battiness
+batting
+battings
+Battipaglia
+battish
+Battista
+Battiste
+battle
+battle-ax
+battle-axe
+Battleboro
+battled
+battledore
+battledored
+battledores
+battledoring
+battle-fallen
+battlefield
+battlefields
+battlefront
+battlefronts
+battleful
+battleground
+battlegrounds
+battlement
+battlemented
+battlements
+battlepiece
+battleplane
+battler
+battlers
+battles
+battle-scarred
+battleship
+battleships
+battle-slain
+battlesome
+battle-spent
+battlestead
+Battletown
+battlewagon
+battleward
+battlewise
+battle-writhen
+battling
+battological
+battologise
+battologised
+battologising
+battologist
+battologize
+battologized
+battologizing
+battology
+batton
+batts
+battu
+battue
+battues
+batture
+Battus
+battuta
+battutas
+battute
+battuto
+battutos
+Batty
+batty
+battycake
+batukite
+batule
+Batum
+Batumi
+batuque
+Batussi
+Batwa
+batwing
+batwoman
+batwomen
+batyphone
+batz
+batzen
+BAU
+Bau
+baubee
+baubees
+bauble
+baublery
+baubles
+baubling
+Baubo
+bauch
+Bauchi
+bauchle
+Baucis
+bauckie
+bauckiebird
+baud
+baudekin
+baudekins
+Baudelaire
+baudery
+Baudette
+Baudin
+Baudoin
+Baudouin
+baudrons
+baudronses
+bauds
+Bauer
+Bauera
+Bauernbrot
+baufrey
+bauge
+Baugh
+Baughman
+Bauhaus
+Bauhinia
+bauhinia
+bauhinias
+bauk
+Baul
+baul
+bauld
+baulea
+bauleah
+baulk
+baulked
+baulkier
+baulkiest
+baulking
+baulks
+baulky
+Baum
+Baumann
+Baumbaugh
+Baume
+baume
+Baumeister
+baumhauerite
+baumier
+Baun
+baun
+bauno
+Baure
+Bauru
+Bausch
+Bauske
+Bausman
+bauson
+bausond
+bauson-faced
+bauta
+Bautain
+Bautista
+Bautram
+bautta
+Bautzen
+bauxite
+bauxites
+bauxitic
+bauxitite
+Bav
+bavardage
+Bavaria
+Bavarian
+bavarian
+bavarois
+bavaroise
+bavaroy
+bavary
+bavenite
+bavette
+baviaantje
+Bavian
+bavian
+baviere
+bavin
+Bavius
+Bavon
+bavoso
+baw
+bawarchi
+bawbee
+bawbees
+bawble
+bawcock
+bawcocks
+bawd
+bawdier
+bawdies
+bawdiest
+bawdily
+bawdiness
+bawdinesses
+bawdric
+bawdrick
+bawdrics
+bawdries
+bawdry
+bawds
+bawdship
+bawdstrot
+bawdy
+bawdyhouse
+bawdyhouses
+bawhorse
+bawke
+bawl
+bawled
+bawler
+bawlers
+bawley
+bawling
+bawling-out
+bawls
+bawly
+bawn
+bawneen
+Bawra
+bawrel
+bawsint
+baws'nt
+bawsunt
+bawtie
+bawties
+bawty
+Bax
+B-axes
+Baxie
+B-axis
+Baxley
+Baxter
+baxter
+Baxterian
+Baxterianism
+baxtone
+Baxy
+Bay
+bay
+Baya
+baya
+bayadeer
+bayadeers
+bayadere
+bayaderes
+bayal
+Bayam
+Bayamo
+bayamo
+Bayamon
+bayamos
+bayano
+Bayar
+Bayard
+bayard
+bayardly
+bayards
+bay-bay
+bayberries
+bayberry
+baybolt
+Bayboro
+bay-breasted
+baybush
+bay-colored
+baycuru
+Bayda
+Bayeau
+bayed
+Bayer
+Bayern
+Bayesian
+bayesian
+bayeta
+bayete
+Bayfield
+baygall
+Bayh
+bayhead
+baying
+bayish
+bayldonite
+Bayle
+Bayless
+baylet
+Bayley
+baylike
+Baylis
+Baylor
+Bayly
+bayman
+baymen
+Bayminette
+Baynebridge
+bayness
+Bayogoula
+bayok
+bayonet
+bayoneted
+bayoneteer
+bayoneting
+bayonets
+bayonetted
+bayonetting
+bayong
+Bayonne
+bayou
+Bayougoula
+bayous
+Baypines
+Bayport
+Bayreuth
+Bays
+bays
+bay-salt
+Bayshore
+Bayside
+baysmelt
+baysmelts
+Baytown
+Bayview
+Bayville
+bay-window
+bay-winged
+baywood
+baywoods
+bayz
+bazaar
+bazaars
+Bazaine
+Bazar
+bazar
+bazars
+Bazatha
+baze
+Bazigar
+Bazil
+Bazin
+Bazine
+Baziotes
+Bazluke
+bazoo
+bazooka
+bazookaman
+bazookamen
+bazookas
+bazooms
+bazoos
+bazzite
+B/B
+BB
+bb
+BBA
+BBB
+B.B.C.
+BBC
+BBL
+bbl
+bbl.
+bbls
+BBN
+bbs
+BBXRT
+B.C.
+B/C
+BC
+BCBS
+BCC
+BCD
+bcd
+BCDIC
+B.C.E.
+BCE
+BCerE
+bcf
+B.Ch.
+BCh
+bch
+Bchar
+BChE
+bchs
+B.C.L.
+BCL
+BCM
+BCom
+BComSc
+BCP
+BCPL
+BCR
+BCS
+BCWP
+BCWS
+B.D.
+B/D
+BD
+bd
+bd.
+BDA
+BDC
+BDD
+Bde
+bde
+bdellatomy
+bdellid
+Bdellidae
+bdellium
+bdelliums
+bdelloid
+Bdelloida
+bdellometer
+Bdellostoma
+Bdellostomatidae
+Bdellostomidae
+bdellotomy
+Bdelloura
+Bdellouridae
+bdellovibrio
+BDes
+BDF
+bdft
+bdl
+bdl.
+bdle
+bdls
+bdrm
+B.D.S.
+BDS
+bds
+BDSA
+BDT
+B.E.
+B/E
+BE
+Be
+be
+be-
+BEA
+Bea
+Beach
+beach
+Beacham
+beachboy
+Beachboys
+beachboys
+beachcomb
+beachcomber
+beachcombers
+beachcombing
+beachdrops
+beached
+beacher
+beaches
+beachfront
+beachhead
+beachheads
+beachie
+beachier
+beachiest
+beaching
+Beach-la-Mar
+Beach-la-mar
+beach-la-mar
+beachlamar
+beachless
+beachman
+beachmaster
+beachmen
+beach-sap
+beachside
+beachward
+beachwear
+Beachwood
+beachy
+beacon
+beaconage
+beaconed
+beaconing
+beaconless
+beacons
+Beaconsfield
+beaconwise
+bead
+beaded
+beaded-edge
+beader
+beadeye
+bead-eyed
+beadeyes
+beadflush
+bead-hook
+beadhouse
+beadhouses
+beadier
+beadiest
+beadily
+beadiness
+beading
+beadings
+Beadle
+beadle
+beadledom
+beadlehood
+beadleism
+beadlery
+beadles
+beadleship
+beadlet
+bead-like
+beadlike
+beadman
+beadmen
+bead-roll
+beadroll
+beadrolls
+beadrow
+bead-rubies
+bead-ruby
+beads
+bead-shaped
+beadsman
+beadsmen
+beadswoman
+beadswomen
+beadwork
+beadworks
+beady
+beady-eyed
+Beagle
+beagle
+beagles
+beagling
+beak
+beak-bearing
+beaked
+beaker
+beakerful
+beakerman
+beakermen
+beakers
+beakful
+beak-head
+beakhead
+beakier
+beakiest
+beak-iron
+beakiron
+beakless
+beak-like
+beaklike
+beak-nosed
+beaks
+beak-shaped
+beaky
+Beal
+beal
+beala
+bealach
+Beale
+Bealeton
+bealing
+Beall
+be-all
+beallach
+Bealle
+Beallsville
+Beals
+bealtared
+Bealtine
+Bealtuinn
+beam
+beamage
+Beaman
+beam-bending
+beambird
+beamed
+beam-end
+beam-ends
+beamer
+beamers
+beamfilling
+beamful
+beamhouse
+beamier
+beamiest
+beamily
+beaminess
+beaming
+beamingly
+beamish
+beamishly
+beamless
+beamlet
+beamlike
+beamman
+beamroom
+beams
+beamsman
+beamsmen
+beamster
+beam-straightening
+beam-tree
+beamwork
+beamy
+Bean
+bean
+bean-bag
+beanbag
+beanbags
+beanball
+beanballs
+bean-cleaning
+beancod
+bean-crushing
+Beane
+beaned
+Beaner
+beaner
+beaneries
+beaners
+beanery
+bean-feast
+beanfeast
+beanfeaster
+bean-fed
+beanfest
+beanfield
+beanie
+beanier
+beanies
+beaniest
+beaning
+beanlike
+beano
+beanos
+bean-planting
+beanpole
+beanpoles
+bean-polishing
+beans
+beansetter
+bean-shaped
+beanshooter
+beanstalk
+beanstalks
+beant
+beanweed
+beany
+beaproned
+Bear
+bear
+bearability
+bearable
+bearableness
+bearably
+bearance
+bearbaiter
+bear-baiting
+bearbaiting
+bearbane
+bearberries
+bearberry
+bearbind
+bearbine
+bearbush
+bearcat
+bearcats
+Bearce
+bearcoot
+Beard
+beard
+bearded
+beardedness
+Bearden
+bearder
+beardfish
+beardfishes
+beardie
+bearding
+beardless
+beardlessness
+beardlike
+beardom
+beards
+Beardsley
+Beardstown
+beardtongue
+beardy
+Beare
+beared
+bearer
+bearer-off
+bearers
+bearess
+bearfoot
+bearfoots
+bearherd
+bearhide
+bearhound
+bearhug
+bearhugs
+bearing
+bearings
+bearish
+bearishly
+bearishness
+bear-lead
+bear-leader
+bearleap
+bearlet
+bearlike
+bearm
+Bearnaise
+bearnaise
+Bearnard
+bearpaw
+bears
+bear's-breech
+bear's-ear
+bear's-foot
+bear's-foots
+bearship
+bearskin
+bearskins
+bear's-paw
+Bearsville
+beartongue
+bear-tree
+bearward
+bearwood
+bearwoods
+bearwort
+Beasley
+Beason
+beast
+beastbane
+beastdom
+beasthood
+beastie
+beasties
+beastily
+beastings
+beastish
+beastishness
+beastlier
+beastliest
+beastlike
+beastlily
+beastliness
+beastlinesses
+beastling
+beastlings
+beastly
+beastman
+Beaston
+beasts
+beastship
+beat
+Beata
+beata
+beatable
+beatably
+beatae
+beatas
+beat-beat
+beatee
+beaten
+beater
+beaterman
+beatermen
+beater-out
+beaters
+beaters-up
+beater-up
+beath
+beati
+beatific
+beatifical
+beatifically
+beatificate
+beatification
+beatifications
+beatified
+beatifies
+beatify
+beatifying
+beatille
+beatinest
+beating
+beatings
+beating-up
+Beatitude
+beatitude
+beatitudes
+Beatles
+beatles
+beatless
+beatnik
+beatnikism
+beatniks
+Beaton
+Beatrice
+beatrice
+Beatrisa
+Beatrix
+Beatriz
+beats
+beatster
+Beattie
+Beatty
+Beattyville
+beat-up
+beatus
+beatuti
+Beau
+beau
+Beauchamp
+Beauclerc
+beauclerk
+beaucoup
+Beaudoin
+beaued
+beauetry
+Beaufert
+beaufet
+beaufin
+Beauford
+Beaufort
+beaufort
+beaugregories
+beaugregory
+Beauharnais
+beau-ideal
+beau-idealize
+beauing
+beauish
+beauism
+Beaujolais
+beaujolais
+Beaujolaises
+Beaulieu
+Beaumarchais
+beaume
+beau-monde
+Beaumont
+beaumont
+Beaumontia
+Beaune
+beaupere
+beaupers
+beau-pleader
+beau-pot
+Beauregard
+beaus
+beauseant
+beauship
+beausire
+beaut
+beauteous
+beauteously
+beauteousness
+beauti
+beautician
+beauticians
+beautied
+beauties
+beautification
+beautifications
+beautified
+beautifier
+beautifiers
+beautifies
+beautiful
+beautifully
+beautifulness
+beautify
+beautifying
+beautihood
+beautiless
+beauts
+beauty
+beauty-beaming
+beauty-berry
+beauty-blind
+beauty-blooming
+beauty-blushing
+beauty-breathing
+beauty-bright
+beauty-bush
+beauty-clad
+beautydom
+beauty-fruit
+beauty-loving
+beauty-proof
+beautyship
+beauty-waning
+Beauvais
+Beauvoir
+beaux
+Beaux-Arts
+beaux-arts
+beaux-esprits
+beauxite
+BEAV
+Beaver
+beaver
+Beaverboard
+beaverboard
+Beaverbrook
+Beaverdale
+beavered
+beaverette
+beaveries
+beavering
+beaverish
+beaverism
+beaverite
+beaverize
+Beaverkill
+beaverkin
+Beaverlett
+beaverlike
+beaverpelt
+beaverroot
+beavers
+beaverskin
+beaverteen
+Beaverton
+Beavertown
+beaver-tree
+Beaverville
+beaverwood
+beavery
+beback
+bebait
+beballed
+bebang
+bebannered
+bebar
+bebaron
+bebaste
+bebat
+bebathe
+bebatter
+bebay
+Bebe
+bebeast
+bebed
+bebeerin
+bebeerine
+bebeeru
+bebeerus
+Bebel
+bebelted
+Beberg
+bebilya
+Bebington
+bebite
+bebization
+beblain
+beblear
+bebled
+bebleed
+bebless
+beblister
+beblood
+beblooded
+beblooding
+bebloods
+bebloom
+beblot
+beblotch
+beblubber
+beblubbered
+bebog
+bebop
+bebopper
+beboppers
+bebops
+beboss
+bebotch
+bebothered
+bebouldered
+bebrave
+bebreech
+bebrine
+bebrother
+bebrush
+Bebryces
+bebump
+Bebung
+bebusy
+bebuttoned
+bec
+becafico
+becall
+becalm
+becalmed
+becalming
+becalmment
+becalms
+became
+becap
+becapped
+becapping
+becaps
+becard
+becarpet
+becarpeted
+becarpeting
+becarpets
+becarve
+becasse
+becassine
+becassocked
+becater
+because
+Becca
+beccabunga
+beccaccia
+beccafico
+beccaficoes
+beccaficos
+Beccaria
+becchi
+becco
+becense
+bechained
+bechalk
+bechalked
+bechalking
+bechalks
+bechamel
+bechamels
+bechance
+bechanced
+bechances
+bechancing
+becharm
+becharmed
+becharming
+becharms
+bechase
+bechatter
+bechauffeur
+beche
+becheck
+Beche-de-Mer
+beche-de-mer
+beche-le-mar
+becher
+bechern
+Bechet
+bechic
+bechignoned
+bechirp
+Bechler
+Becht
+Bechtel
+Bechtelsville
+Bechtler
+Bechuana
+Bechuanaland
+Bechuanas
+becircled
+becivet
+Beck
+beck
+Becka
+becked
+beckelite
+Beckemeyer
+Becker
+becker
+Beckerman
+Becket
+becket
+beckets
+Beckett
+beckett
+Beckford
+Becki
+Beckie
+becking
+beckiron
+Beckley
+Beckman
+Beckmann
+beckon
+beckoned
+beckoner
+beckoners
+beckoning
+beckoningly
+beckons
+becks
+Beckville
+Beckwith
+Becky
+beclad
+beclamor
+beclamored
+beclamoring
+beclamors
+beclamour
+beclang
+beclap
+beclart
+beclasp
+beclasped
+beclasping
+beclasps
+beclatter
+beclaw
+beclip
+becloak
+becloaked
+becloaking
+becloaks
+beclog
+beclogged
+beclogging
+beclogs
+beclose
+beclothe
+beclothed
+beclothes
+beclothing
+becloud
+beclouded
+beclouding
+beclouds
+beclout
+beclown
+beclowned
+beclowning
+beclowns
+becluster
+becobweb
+becoiffed
+becollier
+becolme
+becolor
+becombed
+become
+becomed
+becomes
+becometh
+becoming
+becomingly
+becomingness
+becomings
+becomma
+becompass
+becompliment
+becoom
+becoresh
+becost
+becousined
+becovet
+becoward
+becowarded
+becowarding
+becowards
+Becquer
+Becquerel
+becquerelite
+becram
+becramp
+becrampon
+becrawl
+becrawled
+becrawling
+becrawls
+becreep
+becrime
+becrimed
+becrimes
+becriming
+becrimson
+becrinolined
+becripple
+becrippled
+becrippling
+becroak
+becross
+becrowd
+becrowded
+becrowding
+becrowds
+becrown
+becrush
+becrust
+becrusted
+becrusting
+becrusts
+becry
+becudgel
+becudgeled
+becudgeling
+becudgelled
+becudgelling
+becudgels
+becuffed
+becuiba
+becumber
+becuna
+becurl
+becurry
+becurse
+becursed
+becurses
+becursing
+becurst
+becurtained
+becushioned
+becut
+B.Ed.
+BED
+BEd
+bed
+bedabble
+bedabbled
+bedabbles
+bedabbling
+Bedad
+bedad
+bedaff
+bedaggered
+bedaggle
+bedamn
+bedamned
+bedamning
+bedamns
+bedamp
+bedangled
+bedare
+bedark
+bedarken
+bedarkened
+bedarkening
+bedarkens
+bedash
+bedaub
+bedaubed
+bedaubing
+bedaubs
+bedawee
+bedawn
+beday
+bedaze
+bedazed
+bedazement
+bedazzle
+bedazzled
+bedazzlement
+bedazzles
+bedazzling
+bedazzlingly
+bedboard
+bedbug
+bedbugs
+bedcap
+bedcase
+bedchair
+bedchairs
+bedchamber
+bed-clothes
+bedclothes
+bedclothing
+bedcord
+bedcover
+bedcovers
+beddable
+bed-davenport
+bedded
+bedder
+bedders
+bedding
+beddingroll
+beddings
+Beddoes
+beddy-bye
+Bede
+bede
+bedead
+bedeaf
+bedeafen
+bedeafened
+bedeafening
+bedeafens
+bedebt
+bedeck
+bedecked
+bedecking
+bedecks
+bedecorate
+bedeen
+bedegar
+bedeguar
+bedehouse
+bedehouses
+bedel
+Bedelia
+Bedell
+bedell
+bedells
+bedels
+bedelve
+bedeman
+bedemen
+beden
+bedene
+bedesman
+bedesmen
+bedeswoman
+bedeswomen
+bedevil
+bedeviled
+bedeviling
+bedevilled
+bedevilling
+bedevilment
+bedevils
+bedew
+bedewed
+bedewer
+bedewing
+bedewoman
+bedews
+bedfast
+bedfellow
+bedfellows
+bedfellowship
+bed-fere
+bedflower
+bedfoot
+Bedford
+Bedfordshire
+bedfordshire
+bedframe
+bedframes
+bedgery
+bedgoer
+bedgown
+bedgowns
+bed-head
+bediademed
+bediamonded
+bediaper
+bediapered
+bediapering
+bediapers
+Bedias
+bedight
+bedighted
+bedighting
+bedights
+bedikah
+bedim
+bedimmed
+bedimming
+bedimple
+bedimpled
+bedimples
+bedimplies
+bedimpling
+bedims
+bedin
+bedip
+bedirt
+bedirter
+bedirtied
+bedirties
+bedirty
+bedirtying
+bedismal
+Bedivere
+bedivere
+bedizen
+bedizened
+bedizening
+bedizenment
+bedizens
+bedkey
+bedlam
+bedlamer
+Bedlamic
+bedlamise
+bedlamised
+bedlamising
+bedlamism
+bedlamite
+bedlamitish
+bedlamize
+bedlamized
+bedlamizing
+bedlamp
+bedlamps
+bedlams
+bedlar
+bedless
+bedlids
+bedlight
+bedlike
+Bedlington
+Bedlingtonshire
+bed-maker
+bedmaker
+bedmakers
+bedmaking
+bedman
+bedmate
+bedmates
+Bedminster
+bednighted
+bednights
+bedoctor
+bedog
+bedolt
+bedot
+bedote
+bedotted
+Bedouin
+bedouin
+Bedouinism
+Bedouins
+bedouins
+bedouse
+bedown
+bedoyo
+bedpad
+bedpan
+bedpans
+bedplate
+bedplates
+bedpost
+bedposts
+bedquilt
+bedquilts
+bedrabble
+bedrabbled
+bedrabbling
+bedraggle
+bedraggled
+bedragglement
+bedraggles
+bedraggling
+bedrail
+bedrails
+bedral
+bedrape
+bedraped
+bedrapes
+bedraping
+bedravel
+bedread
+bedrel
+bedrench
+bedrenched
+bedrenches
+bedrenching
+bedress
+bedribble
+bedrid
+bedridden
+bedriddenness
+bedrift
+bedright
+bedrip
+bedrite
+bedrivel
+bedriveled
+bedriveling
+bedrivelled
+bedrivelling
+bedrivels
+bedrizzle
+bedrock
+bedrocks
+bedroll
+bedrolls
+bedroom
+bedrooms
+bedrop
+bedrown
+bedrowse
+bedrug
+bedrugged
+bedrugging
+bedrugs
+Beds
+beds
+bedscrew
+bedsheet
+bedsheets
+bedsick
+bedside
+bedsides
+bedsit
+bedsite
+bed-sitter
+bedsitter
+bed-sitting-room
+bedsock
+bedsonia
+bedsonias
+bedsore
+bedsores
+bedspread
+bedspreads
+bedspring
+bedsprings
+bedstaff
+bedstand
+bedstands
+bedstaves
+bedstead
+bedsteads
+bedstock
+bedstraw
+bedstraws
+bedstring
+bedswerver
+bedtick
+bedticking
+bedticks
+bedtime
+bedtimes
+bedub
+beduchess
+beduck
+Beduin
+beduin
+Beduins
+beduins
+beduke
+bedull
+bedumb
+bedumbed
+bedumbing
+bedumbs
+bedunce
+bedunced
+bedunces
+bedunch
+beduncing
+bedung
+bedur
+bedusk
+bedust
+bedward
+bedwards
+bedwarf
+bedwarfed
+bedwarfing
+bedwarfs
+bedwarmer
+bedway
+bedways
+Bedwell
+bedwell
+bed-wetting
+Bedworth
+bedye
+BEE
+Bee
+bee
+beearn
+be-east
+Beeb
+beeball
+Beebe
+beebee
+beebees
+beebread
+beebreads
+bee-butt
+beech
+Beecham
+Beechbottom
+beechdrops
+beechen
+Beecher
+beecher
+beeches
+beech-green
+beechier
+beechiest
+Beechmont
+beechnut
+beechnuts
+beechwood
+beechwoods
+beechy
+Beeck
+Beedeville
+beedged
+beedi
+beedom
+Beedon
+bee-eater
+beef
+beefalo
+beefaloes
+beefalos
+beef-brained
+beefburger
+beefburgers
+beefcake
+beefcakes
+beefeater
+beefeaters
+beef-eating
+beefed
+beefed-up
+beefer
+beefers
+beef-faced
+beefhead
+beefheaded
+beefier
+beefiest
+beefily
+beefin
+beefiness
+beefing
+beefing-up
+beefish
+beefishness
+beefless
+beeflower
+beefs
+beef-steak
+beefsteak
+beefsteaks
+beeftongue
+beef-witted
+beef-wittedly
+beef-wittedness
+beef-wood
+beefwood
+beefwoods
+beefy
+beegerite
+beehead
+bee-headed
+beeheaded
+beeherd
+Beehive
+beehive
+beehives
+beehive-shaped
+Beehouse
+beehouse
+beeish
+beeishness
+beek
+beekeeper
+beekeepers
+beekeeping
+beekite
+Beekman
+Beekmantown
+beelbow
+beele
+Beeler
+beelike
+beeline
+beelines
+beelol
+bee-loud
+Beelzebub
+beelzebub
+Beelzebubian
+Beelzebul
+beeman
+beemaster
+beemen
+Beemer
+been
+beennut
+beent
+beento
+beep
+beeped
+beeper
+beepers
+beeping
+beeps
+Beer
+beer
+Beera
+beerage
+beerbachite
+beerbelly
+beerbibber
+Beerbohm
+beeregar
+beerhouse
+beerhouses
+beerier
+beeriest
+beerily
+beeriness
+beerish
+beerishly
+beermaker
+beermaking
+beermonger
+Beernaert
+beerocracy
+Beerothite
+beerpull
+Beers
+beers
+Beersheba
+Beersheeba
+beer-up
+beery
+bees
+Beesley
+Beeson
+beest
+beesting
+beestings
+beestride
+bees-wax
+beeswax
+beeswaxes
+beeswing
+beeswinged
+beeswings
+beet
+beetewk
+beetfly
+beeth
+Beethoven
+beethoven
+Beethovenian
+Beethovenish
+Beethovian
+beetiest
+beetle
+beetle-browed
+beetle-crusher
+beetled
+beetle-green
+beetlehead
+beetle-headed
+beetleheaded
+beetleheadedness
+beetler
+beetlers
+beetles
+beetlestock
+beetlestone
+beetleweed
+beetlike
+beetling
+beetmister
+Beetner
+Beetown
+beetrave
+beet-red
+beetroot
+beetroots
+beetrooty
+beets
+beety
+beeve
+beeves
+Beeville
+beevish
+beeware
+beeway
+beeweed
+beewinged
+beewise
+beewort
+beeyard
+beezer
+beezers
+B.E.F.
+BEF
+bef
+befall
+befallen
+befalling
+befalls
+befame
+befamilied
+befamine
+befan
+befancy
+befanned
+befathered
+befavor
+befavour
+befeather
+befell
+beferned
+befetished
+befetter
+befezzed
+Beffrey
+beffroy
+befiddle
+befilch
+befile
+befilleted
+befilmed
+befilth
+Befind
+befinger
+befingered
+befingering
+befingers
+befire
+befist
+befit
+befits
+befitted
+befitting
+befittingly
+befittingness
+beflag
+beflagged
+beflagging
+beflags
+beflannel
+beflap
+beflatter
+beflea
+befleaed
+befleaing
+befleas
+befleck
+beflecked
+beflecking
+beflecks
+beflounce
+beflour
+beflout
+beflower
+beflowered
+beflowering
+beflowers
+beflum
+befluster
+befoam
+befog
+befogged
+befogging
+befogs
+befool
+befoolable
+befooled
+befooling
+befoolment
+befools
+befop
+before
+before-cited
+before-created
+before-delivered
+before-going
+beforehand
+beforehandedness
+before-known
+before-mentioned
+beforementioned
+before-named
+beforeness
+before-noticed
+before-recited
+before-said
+beforesaid
+beforested
+before-tasted
+before-thought
+beforetime
+beforetimes
+before-told
+before-warned
+before-written
+befortune
+befoul
+befouled
+befouler
+befoulers
+befoulier
+befouling
+befoulment
+befouls
+befountained
+befraught
+befreckle
+befreeze
+befreight
+befret
+befrets
+befretted
+befretting
+befriend
+befriended
+befriender
+befriending
+befriendment
+befriends
+befrill
+befrilled
+befringe
+befringed
+befringes
+befringing
+befriz
+befrocked
+befrogged
+befrounce
+befrumple
+befuddle
+befuddled
+befuddlement
+befuddlements
+befuddler
+befuddlers
+befuddles
+befuddling
+befume
+befur
+befurbelowed
+befurred
+beg
+Bega
+begabled
+begad
+begall
+begalled
+begalling
+begalls
+began
+begani
+begar
+begari
+begarie
+begarlanded
+begarnish
+begartered
+begary
+begash
+begass
+begat
+begats
+begattal
+begaud
+begaudy
+begay
+begaze
+begazed
+begazes
+begazing
+begeck
+begem
+begemmed
+begemming
+beget
+begets
+begettal
+begetter
+begetters
+begetting
+Begga
+beggable
+beggar
+beggardom
+beggared
+beggarer
+beggaress
+beggarhood
+beggaries
+beggaring
+beggarism
+beggar-lice
+beggarlice
+beggarlike
+beggarliness
+beggarly
+beggarman
+beggar-my-neighbor
+beggar-my-neighbour
+beggar-patched
+beggars
+beggar's-lice
+beggar's-tick
+beggar's-ticks
+beggar-tick
+beggar-ticks
+beggarweed
+beggarwise
+beggarwoman
+beggary
+begged
+begger
+Beggiatoa
+Beggiatoaceae
+beggiatoaceous
+begging
+beggingly
+beggingwise
+Beggs
+Beghard
+beghard
+Beghtol
+begift
+begiggle
+begild
+Begin
+begin
+beginger
+beginner
+beginners
+beginning
+beginnings
+begins
+begird
+begirded
+begirding
+begirdle
+begirdled
+begirdles
+begirdling
+begirds
+begirt
+beglad
+begladded
+begladding
+beglads
+beglamour
+beglare
+beglerbeg
+beglerbeglic
+beglerbeglik
+beglerbegluc
+beglerbegship
+beglerbey
+beglew
+beglic
+beglide
+beglitter
+beglobed
+begloom
+begloomed
+beglooming
+beglooms
+begloze
+begluc
+beglue
+begnaw
+begnawed
+begnawn
+bego
+begob
+begobs
+begod
+begoggled
+begohm
+begone
+begonia
+Begoniaceae
+begoniaceous
+Begoniales
+begonias
+begorah
+begorra
+begorrah
+begorry
+begot
+begotten
+begottenness
+begoud
+begowk
+begowned
+begrace
+begrain
+begrave
+begray
+begrease
+begreen
+begrett
+begrim
+begrime
+begrimed
+begrimer
+begrimes
+begriming
+begrimmed
+begrimming
+begrims
+begripe
+begroan
+begroaned
+begroaning
+begroans
+begrown
+begrudge
+begrudged
+begrudger
+begrudges
+begrudging
+begrudgingly
+begruntle
+begrutch
+begrutten
+begs
+begster
+beguard
+beguess
+beguile
+beguiled
+beguileful
+beguilement
+beguilements
+beguiler
+beguilers
+beguiles
+beguiling
+beguilingly
+beguilingness
+Beguin
+beguin
+Beguine
+beguine
+beguines
+begulf
+begulfed
+begulfing
+begulfs
+begum
+begummed
+begumming
+begums
+begun
+begunk
+begut
+Behah
+Behaim
+behale
+behalf
+behallow
+behalves
+behammer
+Behan
+behang
+behap
+Behar
+behatted
+behav
+behave
+behaved
+behaver
+behavers
+behaves
+behaving
+behavior
+behavioral
+behaviorally
+behaviored
+behaviorism
+behaviorist
+behavioristic
+behavioristically
+behaviorists
+behaviors
+behaviour
+behavioural
+behaviourally
+behaviourism
+behaviourist
+behaviours
+behead
+beheadal
+beheaded
+beheader
+beheading
+beheadlined
+beheads
+behear
+behears
+behearse
+behedge
+beheira
+beheld
+behelp
+behemoth
+behemothic
+behemoths
+behen
+behenate
+behenic
+behest
+behests
+behew
+behight
+behind
+behinder
+behindhand
+behinds
+behindsight
+behint
+Behistun
+behither
+Behka
+Behl
+Behlau
+Behlke
+Behm
+Behmen
+Behmenism
+Behmenist
+Behmenite
+Behn
+behn
+Behnken
+behold
+beholdable
+beholden
+beholder
+beholders
+beholding
+beholdingness
+beholds
+behoney
+behoof
+behooped
+behoot
+behoove
+behooved
+behooveful
+behoovefully
+behoovefulness
+behooves
+behooving
+behoovingly
+behorn
+behorror
+behove
+behoved
+behovely
+behoves
+behoving
+behowl
+behowled
+behowling
+behowls
+Behre
+Behrens
+Behring
+Behrman
+behung
+behusband
+behymn
+behypocrite
+Beica
+beice
+Beichner
+Beid
+Beiderbecke
+beige
+beigel
+beiges
+beignet
+beignets
+beigy
+Beijing
+beild
+Beilul
+Bein
+bein
+being
+beingless
+beingness
+beings
+beinked
+beinly
+beinness
+Beira
+beira
+Beirne
+Beirut
+beirut
+beisa
+beisance
+Beisel
+Beitch
+Beitnes
+Beitris
+Beitz
+Beja
+beja
+bejabbers
+bejabers
+bejade
+bejan
+bejant
+bejape
+bejaundice
+bejazz
+bejel
+bejeled
+bejeling
+bejelled
+bejelling
+bejesuit
+bejesus
+bejewel
+bejeweled
+bejeweling
+bejewelled
+bejewelling
+bejewels
+bejezebel
+bejig
+Bejou
+bejuco
+bejuggle
+bejumble
+bejumbled
+bejumbles
+bejumbling
+Beka
+Bekaa
+Bekah
+bekah
+Bekelja
+Beker
+bekerchief
+Bekha
+bekick
+bekilted
+beking
+bekinkinite
+bekiss
+bekissed
+bekisses
+bekissing
+Bekki
+bekko
+beknave
+beknight
+beknighted
+beknighting
+beknights
+beknit
+beknived
+beknot
+beknots
+beknotted
+beknottedly
+beknottedness
+beknotting
+beknow
+beknown
+Bel
+bel
+Bela
+bela
+belabor
+belabored
+belaboring
+belabors
+belabour
+belaboured
+belabouring
+belabours
+bel-accoil
+belace
+belaced
+beladied
+beladies
+beladle
+belady
+beladying
+Belafonte
+belage
+belah
+Belair
+Belait
+Belaites
+Belak
+Belalton
+belam
+Belamcanda
+Bel-ami
+belamour
+Belamy
+belamy
+belanda
+belander
+Belanger
+belap
+belar
+belard
+Belasco
+belash
+belast
+belat
+belate
+belated
+belatedly
+belatedness
+belating
+Belatrix
+belatticed
+belaud
+belauded
+belauder
+belauding
+belauds
+Belaunde
+belavendered
+belay
+belayed
+belayer
+belaying
+Belayneh
+belays
+belch
+belched
+Belcher
+belcher
+belchers
+Belchertown
+belches
+belching
+Belcourt
+beld
+Belda
+beldam
+beldame
+beldames
+beldams
+beldamship
+Belden
+Beldenville
+belder
+belderroot
+Belding
+belduque
+beleaf
+beleaguer
+beleaguered
+beleaguerer
+beleaguering
+beleaguerment
+beleaguers
+beleap
+beleaped
+beleaping
+beleaps
+beleapt
+beleave
+belection
+belecture
+beledgered
+belee
+beleed
+beleft
+Belem
+belemnid
+belemnite
+Belemnites
+belemnitic
+Belemnitidae
+belemnoid
+Belemnoidea
+Belen
+beleper
+bel-esprit
+belesprit
+beletter
+beleve
+Belfair
+Belfast
+belfast
+belfather
+Belfield
+Belford
+Belfort
+belfried
+belfries
+belfry
+Belg
+Belg.
+belga
+Belgae
+belgae
+belgard
+belgas
+Belgaum
+Belgian
+belgian
+belgians
+Belgic
+Belgique
+Belgium
+belgium
+Belgophile
+Belgorod-Dnestrovski
+Belgrade
+belgrade
+Belgrano
+Belgravia
+Belgravian
+Belia
+Belial
+belial
+Belialic
+Belialist
+belibel
+belibeled
+belibeling
+Belicia
+belick
+belicoseness
+belie
+belied
+belief
+beliefful
+belieffulness
+beliefless
+beliefs
+Belier
+belier
+beliers
+belies
+believability
+believable
+believableness
+believably
+belie-ve
+believe
+believed
+believer
+believers
+believes
+believeth
+believing
+believingly
+belight
+beliing
+belike
+beliked
+belikely
+Belili
+belime
+belimousined
+Belinda
+Belington
+Belinuridae
+Belinurus
+belion
+beliquor
+beliquored
+beliquoring
+beliquors
+Belis
+Belisarius
+Belita
+belite
+Belitoeng
+Belitong
+belitter
+belittle
+belittled
+belittlement
+belittler
+belittlers
+belittles
+belittling
+Belitung
+belive
+Belize
+Belk
+belk
+Belknap
+belknap
+Bell
+bell
+Bella
+Bellabella
+Bellacoola
+belladonna
+belladonnas
+Bellaghy
+Bellaire
+Bellamy
+Bellanca
+bellarmine
+Bellarthur
+Bellatrix
+Bellaude
+Bellay
+bell-bearer
+bellbind
+bellbinder
+bellbine
+bell-bird
+bellbird
+bellbirds
+bellbottle
+bell-bottom
+bell-bottomed
+bell-bottoms
+bellboy
+bellboys
+Bellbrook
+Bellbuckle
+BELLCORE
+bell-cranked
+bell-crowned
+Bellda
+Belldame
+Belldas
+Belle
+belle
+Bellechasse
+belled
+belledom
+Belleek
+belleek
+belleeks
+Bellefonte
+bellehood
+Bellelay
+Bellemead
+Bellemina
+Belleplaine
+Beller
+belleric
+Bellerive
+Bellerophon
+bellerophon
+Bellerophontes
+Bellerophontic
+Bellerophontidae
+Bellerose
+belles
+belles-lettres
+belleter
+belletrist
+belletristic
+belletrists
+Bellevernon
+Belleview
+Belleville
+Bellevue
+bellevue
+Bellew
+bell-faced
+Bellflower
+bell-flower
+bellflower
+bell-flowered
+bellhanger
+bellhanging
+bell-hooded
+bellhop
+bellhops
+bell-house
+bellhouse
+belli
+bellibone
+bellic
+bellical
+bellicism
+bellicist
+bellicose
+bellicosely
+bellicoseness
+bellicosities
+bellicosity
+bellied
+bellies
+belliferous
+belligerence
+belligerences
+belligerencies
+belligerency
+belligerent
+belligerently
+belligerents
+Bellina
+belling
+Bellingham
+Bellini
+Bellinzona
+bellipotent
+Bellis
+bellite
+bell-less
+bell-like
+bell-magpie
+bellmaker
+bellmaking
+bellman
+bellmanship
+bellmaster
+Bellmead
+bellmen
+bell-metal
+Bellmont
+Bellmore
+bellmouth
+bell-mouthed
+bellmouthed
+bell-nosed
+Bello
+bello
+Belloc
+Belloir
+bellon
+Bellona
+bellona
+Bellonian
+bellonion
+belloot
+Bellot
+bellota
+bellote
+Bellotto
+Bellovaci
+Bellow
+bellow
+bellowed
+bellower
+bellowers
+bellowing
+Bellows
+bellows
+bellowsful
+bellowslike
+bellowsmaker
+bellowsmaking
+bellowsman
+Bellport
+bellpull
+bellpulls
+bellrags
+bell-ringer
+Bells
+bells
+bell-shaped
+belltail
+bell-tongue
+belltopper
+belltopperdom
+belluine
+bellum
+bell-up
+Bellvale
+Bellville
+Bellvue
+bellware
+bellwaver
+bellweather
+bellweed
+bell-wether
+bellwether
+bellwethers
+bellwind
+bellwine
+Bellwood
+bellwood
+bellwort
+bellworts
+belly
+bellyache
+bellyached
+bellyacher
+bellyaches
+bellyaching
+belly-band
+bellyband
+belly-beaten
+belly-blind
+belly-bound
+belly-bumper
+bellybutton
+bellybuttons
+belly-cheer
+belly-devout
+bellyer
+belly-fed
+bellyfish
+bellyflaught
+belly-flop
+belly-flopped
+belly-flopping
+belly-ful
+bellyful
+bellyfull
+bellyfulls
+bellyfuls
+belly-god
+belly-gulled
+belly-gun
+belly-helve
+bellying
+belly-laden
+belly-land
+bellyland
+belly-landing
+bellylike
+bellyman
+belly-naked
+belly-piece
+bellypiece
+bellypinch
+belly-pinched
+belly-proud
+belly-sprung
+belly-timber
+belly-wash
+belly-whop
+belly-whopped
+belly-whopping
+belly-worshiping
+Belmar
+Bel-Merodach
+Belmond
+Belmondo
+Belmont
+Belmonte
+Belmopan
+beloam
+belock
+beloeilite
+beloid
+Beloit
+belomancy
+Belone
+belonephobia
+belonesite
+belong
+belonged
+belonger
+belonging
+belongings
+belongs
+belonid
+Belonidae
+belonite
+belonoid
+belonosphaerite
+belook
+belord
+Belorussia
+Belorussian
+belorussian
+Belostok
+Belostoma
+Belostomatidae
+Belostomidae
+belotte
+belouke
+belout
+belove
+beloved
+beloveds
+Belovo
+below
+belowdecks
+belowground
+belows
+belowstairs
+belozenged
+Belpre
+Bel-Ridge
+bels
+Belsano
+Belsen
+Belshazzar
+belshazzar
+Belshazzaresque
+Belshin
+belsire
+Belsky
+belswagger
+belt
+Beltane
+beltane
+belt-coupled
+beltcourse
+belt-cutting
+belt-driven
+belted
+Beltene
+Belter
+belter
+belter-skelter
+Belteshazzar
+belt-folding
+Beltian
+beltie
+beltine
+belting
+beltings
+Beltir
+Beltis
+beltless
+beltline
+beltlines
+beltmaker
+beltmaking
+beltman
+beltmen
+Belton
+belton
+Beltrami
+Beltran
+belt-repairing
+belts
+belt-sanding
+belt-sewing
+Beltsville
+belt-tightening
+Beltu
+beltway
+beltways
+beltwise
+Beluchi
+Belucki
+belue
+beluga
+belugas
+belugite
+Belus
+belute
+Belva
+belve
+Belvedere
+belvedere
+belvedered
+belvederes
+Belverdian
+Belvia
+Belvidere
+belvidere
+Belview
+Belvue
+Bely
+bely
+belying
+belyingly
+belzebub
+belzebuth
+Belzoni
+B.E.M.
+BEM
+BEMA
+bema
+bemad
+bemadam
+bemadamed
+bemadaming
+bemadams
+bemadden
+bemaddened
+bemaddening
+bemaddens
+bemail
+bemaim
+bemajesty
+beman
+bemangle
+bemantle
+bemar
+bemartyr
+bemas
+bemask
+bemaster
+bemat
+bemata
+bemaul
+bemazed
+Bemba
+Bembas
+Bembecidae
+Bemberg
+Bembex
+beme
+bemeal
+bemean
+bemeaned
+bemeaning
+bemeans
+bemedaled
+bemedalled
+bemeet
+Bemelmans
+Bement
+bementite
+bemercy
+bemete
+Bemidji
+bemingle
+bemingled
+bemingles
+bemingling
+beminstrel
+bemire
+bemired
+bemirement
+bemires
+bemiring
+bemirror
+bemirrorment
+Bemis
+bemist
+bemisted
+bemisting
+bemistress
+bemists
+bemitered
+bemitred
+bemix
+bemixed
+bemixes
+bemixing
+bemixt
+bemoan
+bemoanable
+bemoaned
+bemoaner
+bemoaning
+bemoaningly
+bemoans
+bemoat
+bemock
+bemocked
+bemocking
+bemocks
+bemoil
+bemoisten
+bemol
+bemole
+bemolt
+bemonster
+bemoon
+bemotto
+bemoult
+bemourn
+bemouth
+bemuck
+bemud
+bemuddle
+bemuddled
+bemuddlement
+bemuddles
+bemuddling
+bemuddy
+bemuffle
+bemurmur
+bemurmure
+bemurmured
+bemurmuring
+bemurmurs
+bemuse
+bemused
+bemusedly
+bemusement
+bemuses
+bemusing
+bemusk
+bemuslined
+bemuzzle
+bemuzzled
+bemuzzles
+bemuzzling
+Ben
+ben
+Bena
+bena
+benab
+Benacus
+Benadryl
+benadryl
+bename
+benamed
+benamee
+benames
+benami
+benamidar
+benaming
+Benares
+Benarnold
+benasty
+Benavides
+benben
+Benbow
+Benbrook
+bench
+benchboard
+benched
+bencher
+benchers
+benchership
+benches
+benchfellow
+benchful
+bench-hardened
+benching
+bench-kneed
+benchland
+bench-legged
+benchless
+benchlet
+Benchley
+bench-made
+benchman
+benchmar
+bench-mark
+benchmark
+benchmarked
+benchmarking
+benchmarks
+benchmen
+bench-warmer
+benchwarmer
+benchwork
+benchy
+Bencion
+bencite
+Benco
+Bend
+bend
+Benda
+benda
+bendability
+bendable
+benday
+bendayed
+bendaying
+bendays
+bended
+bendee
+bendees
+Bendel
+bendel
+bendell
+Bendena
+Bender
+bender
+benders
+Bendersville
+Bendick
+Bendict
+Bendicta
+Bendicty
+bendies
+Bendigo
+bending
+bendingly
+Bendite
+Bendix
+bendlet
+bends
+bendsome
+bendways
+bendwise
+bendy
+bendys
+bendy-wavy
+Bene
+bene
+beneaped
+beneath
+beneception
+beneceptive
+beneceptor
+Benedetta
+Benedetto
+Benedic
+Benedicite
+benedicite
+Benedick
+benedick
+benedicks
+Benedict
+benedict
+Benedicta
+Benedictine
+benedictine
+Benedictinism
+benediction
+benedictional
+benedictionale
+benedictionary
+benedictions
+benedictive
+benedictively
+Benedicto
+benedictory
+benedicts
+Benedictus
+benedictus
+benedight
+Benedikt
+Benedikta
+Benediktov
+Benedix
+benefact
+benefaction
+benefactions
+benefactive
+benefactor
+benefactors
+benefactorship
+benefactory
+benefactress
+benefactresses
+benefactrices
+benefactrix
+benefactrixes
+benefic
+benefice
+beneficed
+benefice-holder
+beneficeless
+beneficence
+beneficences
+beneficency
+beneficent
+beneficential
+beneficently
+benefices
+beneficiaire
+beneficial
+beneficially
+beneficialness
+beneficiaries
+beneficiary
+beneficiaryship
+beneficiate
+beneficiated
+beneficiating
+beneficiation
+beneficience
+beneficient
+beneficing
+beneficium
+benefit
+benefited
+benefiter
+benefiting
+benefits
+benefitted
+benefitting
+benegro
+beneighbored
+BENELUX
+Benelux
+beneme
+Benemid
+benempt
+benempted
+Benenson
+beneplacit
+beneplacito
+beneplacity
+Benes
+benes
+Benet
+benet
+Benet-Mercie
+Benetnasch
+Benetta
+benetted
+benetting
+benettle
+beneurous
+Beneventan
+Beneventana
+Benevento
+benevolence
+benevolences
+benevolency
+benevolent
+benevolently
+benevolentness
+benevolist
+Benezett
+Benfleet
+BEng
+Beng
+Beng.
+beng
+Bengal
+bengal
+Bengalese
+Bengali
+bengali
+Bengalic
+bengaline
+bengals
+Bengasi
+Benge
+Benghazi
+Bengkalis
+Bengola
+Bengt
+Benguela
+Ben-Gurion
+Benham
+Benhur
+Beni
+beni
+Benia
+Beniamino
+benic
+Benicia
+benight
+benighted
+benightedly
+benightedness
+benighten
+benighter
+benighting
+benightmare
+benightment
+benign
+benignancies
+benignancy
+benignant
+benignantly
+benignities
+benignity
+benignly
+benignness
+Beni-israel
+Benil
+Benilda
+Benildas
+Benildis
+benim
+Benin
+benin
+Benincasa
+Benioff
+Benis
+Benisch
+beniseed
+benison
+benisons
+Benita
+benitier
+Benito
+benitoite
+benj
+Benjamen
+Benjamin
+benjamin
+benjamin-bush
+Benjamin-Constant
+Benjaminite
+benjaminite
+benjamins
+Benjamite
+Benji
+Benjie
+benjoin
+Benjy
+benjy
+Benkelman
+Benkley
+Benkulen
+Benld
+Benlomond
+benmost
+Benn
+benn
+benne
+bennel
+bennes
+Bennet
+bennet
+bennets
+Bennett
+Bennettitaceae
+bennettitaceous
+Bennettitales
+Bennettites
+Bennettsville
+bennetweed
+Benni
+benni
+Bennie
+bennies
+Bennington
+Bennink
+Bennion
+Bennir
+bennis
+benniseed
+Bennu
+Benny
+benny
+Beno
+beno
+Benoit
+Benoite
+benomyl
+benomyls
+Ben-oni
+Benoni
+benorth
+benote
+bens
+bensail
+Bensalem
+bensall
+bensel
+bensell
+Bensen
+Bensenville
+bensh
+benshea
+benshee
+benshi
+bensil
+Bensky
+Benson
+Bent
+bent
+bentang
+ben-teak
+bentgrass
+benthal
+Bentham
+Benthamic
+Benthamism
+benthamism
+Benthamite
+benthic
+benthon
+benthonic
+benthopelagic
+benthos
+benthoscope
+benthoses
+Bentinck
+bentinck
+Bentincks
+bentiness
+benting
+Bentlee
+bentlet
+Bentley
+Bentleyville
+Bently
+Benton
+Bentonia
+bentonite
+bentonitic
+Bentonville
+Bentree
+bents
+bentstar
+bent-taildog
+bentwood
+bentwoods
+benty
+Benu
+Benue
+Benue-Congo
+benumb
+benumbed
+benumbedness
+benumbing
+benumbingly
+benumbment
+benumbs
+Benvenuto
+benvenuto
+benward
+benweed
+Benwood
+Benyamin
+Benz
+benz-
+benzacridine
+benzal
+benzalacetone
+benzalacetophenone
+benzalaniline
+benzalazine
+benzalcohol
+benzalcyanhydrin
+benzaldehyde
+benzaldiphenyl
+benzaldoxime
+benzalethylamine
+benzalhydrazine
+benzalphenylhydrazone
+benzalphthalide
+benzamide
+benzamido
+benzamine
+benzaminic
+benzamino
+benzanalgen
+benzanilide
+benzanthracene
+benzanthrone
+benzantialdoxime
+benzazide
+benzazimide
+benzazine
+benzazole
+benzbitriazole
+benzdiazine
+benzdifuran
+benzdioxazine
+benzdioxdiazine
+benzdioxtriazine
+Benzedrine
+benzedrine
+benzein
+Benzel
+benzene
+benzeneazobenzene
+benzenediazonium
+benzenes
+benzenoid
+benzenyl
+benzhydrol
+benzhydroxamic
+benzidin
+benzidine
+benzidino
+benzidins
+benzil
+benzilic
+benzimidazole
+benziminazole
+benzin
+benzinduline
+benzine
+benzines
+benzins
+benzo
+benzo-
+benzoate
+benzoated
+benzoates
+benzoazurine
+benzobis
+benzocaine
+benzocoumaran
+benzodiazine
+benzodiazole
+benzoflavine
+benzofluorene
+benzofulvene
+benzofuran
+benzofuroquinoxaline
+benzofuryl
+benzoglycolic
+benzoglyoxaline
+benzohydrol
+benzoic
+benzoid
+benzoin
+benzoinated
+benzoins
+benzoiodohydrin
+benzol
+benzolate
+benzole
+benzoles
+benzoline
+benzolize
+benzols
+benzomorpholine
+benzonaphthol
+Benzonia
+benzonitrile
+benzonitrol
+benzoperoxide
+benzophenanthrazine
+benzophenanthroline
+benzophenazine
+benzophenol
+benzophenone
+benzophenothiazine
+benzophenoxazine
+benzophloroglucinol
+benzophosphinic
+benzophthalazine
+benzopinacone
+benzopyran
+benzopyranyl
+benzopyrazolone
+benzopyrene
+benzopyrylium
+benzoquinoline
+benzoquinone
+benzoquinoxaline
+benzosulfimide
+benzosulphimide
+benzotetrazine
+benzotetrazole
+benzothiazine
+benzothiazole
+benzothiazoline
+benzothiodiazole
+benzothiofuran
+benzothiophene
+benzothiopyran
+benzotoluide
+benzotriazine
+benzotriazole
+benzotrichloride
+benzotrifluoride
+benzotrifuran
+benzoxate
+benzoxy
+benzoxyacetic
+benzoxycamphor
+benzoxyphenanthrene
+benzoyl
+benzoylate
+benzoylated
+benzoylating
+benzoylation
+benzoylformic
+benzoylglycine
+benzoyls
+benzpinacone
+benzpyrene
+benzthiophen
+benztrioxazine
+Ben-Zvi
+benzyl
+benzylamine
+benzylic
+benzylidene
+benzylpenicillin
+benzyls
+beode
+Beograd
+Beora
+Beore
+Beothuk
+Beothukan
+Beowawe
+Beowulf
+beowulf
+BEP
+bepaid
+Bepaint
+bepaint
+bepainted
+bepainting
+bepaints
+bepale
+bepaper
+beparch
+beparody
+beparse
+bepart
+bepaste
+bepastured
+bepat
+bepatched
+bepaw
+bepearl
+bepelt
+bepen
+bepepper
+beperiwigged
+bepester
+bepewed
+bephilter
+bephrase
+bepicture
+bepiece
+bepierce
+bepile
+bepill
+bepillared
+bepimple
+bepimpled
+bepimples
+bepimpling
+bepinch
+bepistoled
+bepity
+beplague
+beplaided
+beplaster
+beplumed
+bepommel
+bepowder
+bepraise
+bepraisement
+bepraiser
+beprank
+bepranked
+bepray
+bepreach
+bepress
+bepretty
+bepride
+beprose
+bepuddle
+bepuff
+bepuffed
+bepun
+bepurple
+bepuzzle
+bepuzzlement
+Beqaa
+bequalm
+bequeath
+bequeathable
+bequeathal
+bequeathed
+bequeather
+bequeathing
+bequeathment
+bequeaths
+bequest
+bequests
+bequirtle
+bequote
+beqwete
+BER
+Ber
+ber
+berain
+berairou
+berakah
+berake
+beraked
+berakes
+beraking
+berakot
+berakoth
+Beranger
+berapt
+Berar
+Berard
+Berardo
+berascal
+berascaled
+berascaling
+berascals
+berat
+berate
+berated
+berates
+berating
+berattle
+beraunite
+beray
+berbamine
+Berber
+berber
+Berbera
+Berberi
+berberia
+Berberian
+berberid
+Berberidaceae
+berberidaceous
+berberin
+berberine
+berberins
+Berberis
+berberis
+berberry
+berbers
+berbery
+berceau
+berceaunette
+bercelet
+berceuse
+berceuses
+Berchemia
+Berchta
+Berchtesgaden
+Berck
+Berclair
+Bercovici
+Bercy
+berdache
+berdaches
+berdash
+Berdichev
+Berdyaev
+Berdyayev
+bere
+Berea
+Berean
+bereareft
+bereason
+bereave
+bereaved
+bereavement
+bereavements
+bereaven
+bereaver
+bereavers
+bereaves
+bereaving
+Berecyntia
+berede
+bereft
+berend
+berendo
+Berengaria
+Berengarian
+Berengarianism
+berengelite
+berengena
+Berenice
+Berenices
+Berenson
+Beresford
+Bereshith
+beresite
+Beret
+beret
+berets
+Beretta
+beretta
+berettas
+berewick
+Berey
+Berezina
+Berezniki
+Berfield
+Berg
+berg
+Berga
+bergalith
+bergall
+Bergama
+bergamasca
+bergamasche
+Bergamask
+bergamask
+Bergamee
+bergamiol
+Bergamo
+Bergamos
+Bergamot
+bergamot
+bergamots
+bergander
+bergaptene
+Bergdama
+Bergeman
+Bergen
+Bergen-Belsen
+Bergenfield
+Berger
+berger
+Bergerac
+bergere
+bergeres
+bergeret
+bergerette
+Bergeron
+Bergess
+Berget
+bergfall
+berggylt
+Bergh
+bergh
+berghaan
+Berghoff
+Bergholz
+Bergin
+berginization
+berginize
+Bergius
+Bergland
+berglet
+Berglund
+Bergman
+bergman
+Bergmann
+bergmannite
+Bergmans
+bergomask
+Bergoo
+Bergquist
+Bergren
+bergs
+bergschrund
+Bergsma
+Bergson
+Bergsonian
+Bergsonism
+Bergstein
+Bergstrom
+Bergton
+bergut
+Bergwall
+bergy
+bergylt
+Berhley
+berhyme
+berhymed
+berhymes
+berhyming
+Beri
+Beria
+beribanded
+beribbon
+beribboned
+beriber
+beriberi
+beriberic
+beriberis
+beribers
+beride
+berigora
+berime
+berimed
+berimes
+beriming
+Bering
+bering
+beringed
+beringite
+beringleted
+berinse
+Berio
+Beriosova
+Berit
+Berith
+berith
+Berk
+berk
+Berke
+Berkeleian
+berkeleian
+Berkeleianism
+Berkeley
+berkeley
+Berkeleyism
+Berkeleyite
+berkelium
+Berkey
+Berkie
+Berkin
+Berkley
+Berkly
+Berkman
+berkovets
+berkovtsi
+Berkow
+Berkowitz
+berkowitz
+Berks
+Berkshire
+berkshire
+Berkshires
+Berky
+Berl
+Berlauda
+Berlen
+berley
+Berlichingen
+Berlin
+berlin
+berlina
+Berlinda
+berline
+berline-landaulet
+Berliner
+berliner
+berliners
+berlines
+Berlinguer
+berlinite
+Berlinize
+berlin-landaulet
+berlins
+Berlioz
+Berlitz
+Berlon
+berloque
+Berlyn
+Berlyne
+berm
+Berman
+berme
+Bermejo
+bermensch
+bermes
+berms
+Bermuda
+bermuda
+Bermudan
+Bermudas
+bermudas
+Bermudian
+bermudian
+bermudians
+bermudite
+Bern
+Berna
+bernacle
+Bernadene
+Bernadette
+Bernadina
+Bernadine
+Bernadotte
+Bernal
+Bernalillo
+Bernanos
+Bernard
+bernard
+Bernardi
+Bernardina
+Bernardine
+bernardine
+Bernardino
+Bernardo
+Bernardston
+Bernardsville
+Bernarr
+Bernat
+Berne
+berne
+Bernelle
+Berner
+Berners
+Bernese
+Bernet
+Berneta
+Bernete
+Bernetta
+Bernette
+Bernhard
+Bernhardi
+Bernhardt
+Berni
+Bernice
+Bernicia
+bernicle
+bernicles
+Bernie
+Berniece
+Bernina
+Berninesque
+Bernini
+Bernis
+Bernita
+Bernj
+Bernkasteler
+bernoo
+Bernouilli
+Bernoulli
+Bernoullian
+Berns
+Bernstein
+bernstein
+Bernstorff
+Bernt
+Bernville
+Berny
+berob
+berobed
+Beroe
+beroe
+berogue
+Beroida
+Beroidae
+beroll
+Berossos
+Berosus
+berouged
+Beroun
+beround
+Berra
+berreave
+berreaved
+berreaves
+berreaving
+Berrellez
+berrendo
+berret
+berretta
+berrettas
+berrettino
+Berri
+berri
+berrichon
+berrichonne
+Berrie
+berried
+berrier
+berries
+berrigan
+Berriman
+berrugate
+Berry
+berry
+berry-bearing
+berry-brown
+berrybush
+berry-formed
+berrying
+berryless
+berrylike
+Berryman
+berryman
+berry-on-bone
+berrypicker
+berrypicking
+Berrysburg
+berry-shaped
+Berryton
+Berryville
+bersagliere
+bersaglieri
+berseem
+berseems
+berserk
+berserker
+berserks
+Bersiamite
+Bersil
+bersim
+berskin
+berstel
+Berstine
+BERT
+Bert
+Berta
+Bertasi
+Bertat
+Bertaud
+Berte
+Bertelli
+Bertero
+Berteroa
+berth
+Bertha
+bertha
+berthage
+berthas
+Berthe
+berthed
+berther
+berthierite
+berthing
+Berthold
+Bertholletia
+Berthoud
+berths
+Berti
+Bertie
+Bertila
+Bertilla
+Bertillon
+bertillonage
+bertin
+Bertina
+Bertine
+Bertle
+Bertoia
+Bertold
+Bertolde
+Bertolonia
+Bertolt
+Bertolucci
+Berton
+Bertram
+bertram
+Bertrand
+bertrandite
+Bertrando
+Bertrant
+bertrum
+Bertsche
+Berty
+beruffed
+beruffled
+berun
+berust
+bervie
+Berwick
+berwick
+Berwickshire
+Berwick-upon-Tweed
+Berwind
+Berwyn
+berycid
+Berycidae
+beryciform
+berycine
+berycoid
+Berycoidea
+berycoidean
+Berycoidei
+Berycomorphi
+Beryl
+beryl
+berylate
+beryl-blue
+Beryle
+beryl-green
+beryline
+beryllate
+beryllia
+berylline
+berylliosis
+beryllium
+berylloid
+beryllonate
+beryllonite
+beryllosis
+beryls
+Berytidae
+Beryx
+beryx
+berzelianite
+berzeliite
+Berzelius
+BES
+Bes
+bes
+bes-
+besa
+besagne
+besague
+besaiel
+besaile
+besaint
+besan
+Besancon
+besanctify
+besand
+Besant
+besant
+bes-antler
+besauce
+besayle
+bescab
+bescarf
+bescatter
+bescent
+bescorch
+bescorched
+bescorches
+bescorching
+bescorn
+bescoundrel
+bescour
+bescoured
+bescourge
+bescouring
+bescours
+bescramble
+bescrape
+bescratch
+bescrawl
+bescreen
+bescreened
+bescreening
+bescreens
+bescribble
+bescribbled
+bescribbling
+bescurf
+bescurvy
+bescutcheon
+beseam
+besee
+beseech
+beseeched
+beseecher
+beseechers
+beseeches
+beseeching
+beseechingly
+beseechingness
+beseechment
+beseek
+beseem
+beseemed
+beseeming
+beseemingly
+beseemingness
+beseemliness
+beseemly
+beseems
+beseen
+beseige
+Beseleel
+beset
+besetment
+besets
+besetter
+besetters
+besetting
+besew
+beshackle
+beshade
+beshadow
+beshadowed
+beshadowing
+beshadows
+beshag
+beshake
+beshame
+beshamed
+beshames
+beshaming
+beshawled
+beshear
+beshell
+beshield
+beshine
+beshiver
+beshivered
+beshivering
+beshivers
+beshlik
+beshod
+Beshore
+beshout
+beshouted
+beshouting
+beshouts
+beshow
+beshower
+beshrew
+beshrewed
+beshrewing
+beshrews
+beshriek
+beshrivel
+beshroud
+beshrouded
+beshrouding
+beshrouds
+BeShT
+besiclometer
+beside
+besides
+besiege
+besieged
+besiegement
+besieger
+besiegers
+besieges
+besieging
+besiegingly
+Besier
+besigh
+besilver
+besin
+besing
+besiren
+besit
+beslab
+beslabber
+beslap
+beslash
+beslave
+beslaved
+beslaver
+besleeve
+beslime
+beslimed
+beslimer
+beslimes
+besliming
+beslings
+beslipper
+beslobber
+beslow
+beslubber
+besluit
+beslur
+beslushed
+besmear
+besmeared
+besmearer
+besmearing
+besmears
+besmell
+besmile
+besmiled
+besmiles
+besmiling
+besmirch
+besmirched
+besmircher
+besmirchers
+besmirches
+besmirching
+besmirchment
+besmoke
+besmoked
+besmokes
+besmoking
+besmooth
+besmoothed
+besmoothing
+besmooths
+besmother
+besmottered
+besmouch
+besmudge
+besmudged
+besmudges
+besmudging
+be-smut
+besmut
+be-smutch
+besmutch
+besmuts
+besmutted
+besmutting
+Besnard
+besnare
+besneer
+besnivel
+besnow
+besnowed
+besnowing
+besnows
+besnuff
+besodden
+besogne
+besognier
+besoil
+besoin
+besom
+besomer
+besoms
+besonio
+besonnet
+besoot
+besoothe
+besoothed
+besoothement
+besoothes
+besoothing
+besort
+besot
+besotment
+besots
+besotted
+besottedly
+besottedness
+besotter
+besotting
+besottingly
+besought
+besoul
+besour
+besouth
+bespake
+bespangle
+bespangled
+bespangles
+bespangling
+bespate
+bespatter
+bespattered
+bespatterer
+bespattering
+bespatterment
+bespatters
+bespawl
+bespeak
+bespeakable
+bespeaker
+bespeaking
+bespeaks
+bespecked
+bespeckle
+bespeckled
+bespecklement
+bespectacled
+besped
+bespeech
+bespeed
+bespell
+bespelled
+bespend
+bespete
+bespew
+bespice
+bespill
+bespin
+bespirit
+bespit
+besplash
+besplatter
+besplit
+bespoke
+bespoken
+bespot
+bespotted
+bespottedness
+bespotting
+bespouse
+bespoused
+bespouses
+bespousing
+bespout
+bespray
+bespread
+bespreading
+bespreads
+bespreng
+besprent
+bespring
+besprinkle
+besprinkled
+besprinkler
+besprinkles
+besprinkling
+besprizorni
+bespurred
+bespurt
+besputter
+bespy
+besqueeze
+besquib
+besquirt
+besra
+Bess
+bess
+Bessarabia
+Bessarabian
+Bessarion
+Besse
+Bessel
+bessel
+Besselian
+Bessemer
+bessemer
+Bessemerize
+bessemerize
+bessemerized
+bessemerizing
+Bessera
+besses
+Bessi
+Bessie
+Bessy
+Bessye
+BEST
+Best
+best
+bestab
+best-able
+best-abused
+best-accomplished
+bestad
+best-agreeable
+bestain
+bestamp
+bestand
+bestar
+bestare
+best-armed
+bestarve
+bestatued
+bestay
+bestayed
+best-ball
+best-beloved
+best-bred
+best-built
+best-clad
+best-conditioned
+best-conducted
+best-considered
+best-consulted
+best-cultivated
+best-dressed
+bestead
+besteaded
+besteading
+besteads
+besteal
+bested
+besteer
+bestench
+bester
+best-established
+best-esteemed
+best-formed
+best-graced
+best-grounded
+best-hated
+best-humored
+bestial
+bestialise
+bestialised
+bestialising
+bestialism
+bestialist
+bestialities
+bestiality
+bestialize
+bestialized
+bestializes
+bestializing
+bestially
+bestials
+bestian
+bestiarian
+bestiarianism
+bestiaries
+bestiarist
+bestiary
+bestick
+besticking
+bestill
+best-informed
+besting
+bestink
+best-intentioned
+bestir
+bestirred
+bestirring
+bestirs
+best-known
+best-laid
+best-learned
+best-liked
+best-loved
+best-made
+best-managed
+best-meaning
+best-meant
+best-minded
+best-natured
+bestness
+best-nourishing
+bestock
+bestore
+bestorm
+bestove
+bestow
+bestowable
+bestowage
+bestowal
+bestowals
+bestowed
+bestower
+bestowing
+bestowment
+bestows
+best-paid
+best-paying
+best-pleasing
+best-preserved
+best-principled
+bestraddle
+bestraddled
+bestraddling
+bestrapped
+bestraught
+bestraw
+best-read
+bestreak
+bestream
+best-resolved
+bestrew
+bestrewed
+bestrewing
+bestrewment
+bestrewn
+bestrews
+bestrid
+bestridden
+bestride
+bestrided
+bestrides
+bestriding
+bestripe
+bestrode
+bestrow
+bestrowed
+bestrowing
+bestrown
+bestrows
+bestrut
+bests
+bestseller
+bestsellerdom
+bestsellers
+best-selling
+bestselling
+best-sighted
+best-skilled
+best-tempered
+best-trained
+bestubble
+bestubbled
+bestuck
+bestud
+bestudded
+bestudding
+bestuds
+bestuur
+besugar
+besugo
+besuit
+besully
+beswarm
+beswarmed
+beswarming
+beswarms
+besweatered
+besweeten
+beswelter
+beswim
+beswinge
+beswink
+beswitch
+bet
+bet.
+Beta
+beta
+beta-amylase
+betacaine
+betacism
+betacismus
+beta-eucaine
+betafite
+betag
+beta-glucose
+betail
+betailor
+betain
+betaine
+betaines
+betainogen
+betake
+betaken
+betakes
+betaking
+betalk
+betallow
+beta-naphthol
+betanaphthol
+beta-naphthyl
+beta-naphthylamine
+Betancourt
+betangle
+betanglement
+beta-orcin
+beta-orcinol
+betas
+betask
+betassel
+betatron
+betatrons
+betatter
+betattered
+betattering
+betatters
+betaxed
+bete
+beteach
+betear
+beteela
+beteem
+betel
+Betelgeuse
+betelgeuse
+Betelgeux
+betell
+betelnut
+betelnuts
+betels
+beterschap
+betes
+Beth
+beth
+bethabara
+Bethalto
+Bethania
+bethank
+bethanked
+bethanking
+bethankit
+bethanks
+Bethanna
+Bethanne
+Bethany
+Bethe
+Bethel
+bethel
+bethels
+Bethena
+Bethera
+Bethesda
+bethesda
+bethesdas
+Bethesde
+Bethezel
+bethflower
+Bethina
+bethink
+bethinking
+bethinks
+Bethlehem
+bethlehem
+Bethlehemite
+bethlehemite
+bethorn
+bethorned
+bethorning
+bethorns
+bethought
+Bethpage
+bethrall
+bethreaten
+bethroot
+beths
+Bethsabee
+Bethsaida
+Bethuel
+bethumb
+bethump
+bethumped
+bethumping
+bethumps
+bethunder
+Bethune
+bethwack
+bethwine
+bethylid
+Bethylidae
+betide
+betided
+betides
+betiding
+betimber
+betime
+betimes
+betinge
+betipple
+betire
+betis
+betise
+betises
+betitle
+Betjeman
+betocsin
+betoil
+betoken
+betokened
+betokener
+betokening
+betokenment
+betokens
+beton
+betone
+betongue
+Betonica
+betonica
+betonies
+betons
+betony
+betook
+betorcin
+betorcinol
+betorn
+betoss
+betowel
+betowered
+Betoya
+Betoyan
+betrace
+betrail
+betraise
+betrample
+betrap
+betravel
+betray
+betrayal
+betrayals
+betrayed
+betrayer
+betrayers
+betra'ying
+betraying
+betrayment
+betrays
+betread
+betrend
+betrim
+betrinket
+betroth
+betrothal
+betrothals
+betrothed
+betrotheds
+betrothing
+betrothment
+betroths
+betrough
+betrousered
+BETRS
+betrumpet
+betrunk
+betrust
+bets
+Betsey
+Betsi
+Betsileos
+Betsimisaraka
+betso
+Betsy
+Bett
+Betta
+betta
+bettas
+Bette
+Bette-Ann
+Betteann
+Betteanne
+betted
+Bettencourt
+Bettendorf
+better
+better-advised
+better-affected
+better-balanced
+better-becoming
+better-behaved
+better-born
+better-bred
+better-considered
+better-disposed
+better-dressed
+bettered
+betterer
+bettergates
+better-humored
+better-informed
+bettering
+better-knowing
+better-known
+better-liked
+better-liking
+betterly
+better-meant
+betterment
+betterments
+bettermost
+better-natured
+betterness
+better-omened
+better-principled
+better-regulated
+betters
+better-seasoned
+better-taught
+Betterton
+better-witted
+Betthel
+Betthezel
+Betthezul
+Betti
+betties
+Bettina
+Bettine
+betting
+Bettinus
+bettong
+bettonga
+Bettongia
+bettor
+bettors
+Bettsville
+Betty
+betty
+Bettye
+Bettzel
+betuckered
+Betula
+Betulaceae
+betulaceous
+betulin
+betulinamaric
+betulinic
+betulinol
+Betulites
+betumbled
+beturbaned
+betusked
+betutor
+betutored
+betwattled
+between
+betweenbrain
+between-deck
+between-decks
+betweenity
+between-maid
+betweenmaid
+betweenness
+betweens
+betweentimes
+between-whiles
+betweenwhiles
+betwine
+betwit
+betwixen
+betwixt
+Betz
+beudanite
+beudantite
+Beulah
+beulah
+Beulaville
+beuncled
+beuniformed
+beurre
+Beuthel
+Beuthen
+Beutler
+Beutner
+BeV
+Bev
+Bevan
+bevaring
+Bevash
+bevatron
+bevatrons
+beveil
+bevel
+beveled
+bevel-edged
+beveler
+bevelers
+beveling
+bevelled
+beveller
+bevellers
+bevelling
+bevelment
+bevels
+bevenom
+Bever
+bever
+beverage
+beverages
+Beveridge
+Beverie
+Beverle
+Beverlee
+Beverley
+Beverlie
+Beverly
+Bevers
+beverse
+bevesseled
+bevesselled
+beveto
+Bevier
+bevies
+bevil
+bevillain
+bevilled
+Bevin
+bevined
+Bevington
+Bevinsville
+Bevis
+bevoiled
+bevomit
+bevomited
+bevomiting
+bevomits
+Bevon
+bevor
+bevors
+bevue
+Bevus
+Bevvy
+bevvy
+bevy
+BEW
+bewail
+bewailable
+bewailed
+bewailer
+bewailers
+bewailing
+bewailingly
+bewailment
+bewails
+bewaitered
+bewake
+bewall
+beware
+bewared
+bewares
+bewaring
+bewary
+bewash
+bewaste
+bewater
+bewearied
+bewearies
+beweary
+bewearying
+beweep
+beweeper
+beweeping
+beweeps
+bewelcome
+bewelter
+bewend
+bewept
+bewest
+bewet
+bewhig
+bewhisker
+bewhiskered
+bewhisper
+bewhistle
+bewhite
+bewhiten
+bewhore
+Bewick
+bewidow
+bewield
+bewig
+bewigged
+bewigging
+bewigs
+bewilder
+bewildered
+bewilderedly
+bewilderedness
+bewildering
+bewilderingly
+bewilderment
+bewilderments
+bewilders
+bewimple
+bewinged
+bewinter
+bewired
+bewit
+bewitch
+bewitched
+bewitchedness
+bewitcher
+bewitchery
+bewitches
+bewitchful
+bewitching
+bewitchingly
+bewitchingness
+bewitchment
+bewitchments
+bewith
+bewizard
+bewonder
+bework
+beworm
+bewormed
+beworming
+beworms
+beworn
+beworried
+beworries
+beworry
+beworrying
+beworship
+bewpers
+bewrap
+bewrapped
+bewrapping
+bewraps
+bewrapt
+bewrathed
+bewray
+bewrayed
+bewrayer
+bewrayers
+bewraying
+bewrayingly
+bewrayment
+bewrays
+bewreak
+bewreath
+bewreck
+bewrite
+bewrought
+bewry
+bewwept
+Bexar
+Bexhill-on-Sea
+Bexley
+bey
+beydom
+Beyer
+beyerite
+Beyle
+Beylic
+beylic
+beylical
+beylics
+beylik
+beyliks
+Beyo
+Beyoglu
+beyond
+beyondness
+beyonds
+beyrichite
+Beyrouth
+beys
+beyship
+Bezae
+Bezaleel
+Bezaleelian
+bezan
+Bezanson
+bezant
+bezante
+bezantee
+bez-antler
+bezants
+bezanty
+bezazz
+bezazzes
+bezel
+bezels
+bezesteen
+bezetta
+bezette
+Beziers
+bezil
+bezils
+bezique
+beziques
+bezoar
+bezoardic
+bezoars
+bezonian
+Bezpopovets
+Bezwada
+bezzant
+bezzants
+bezzi
+bezzle
+bezzled
+bezzling
+bezzo
+B/F
+BF
+b.f.
+bf
+BFA
+BFAMus
+BFD
+BFDC
+BFHD
+B-flat
+BFR
+BFS
+BFT
+BG
+bg
+BGE
+BGeNEd
+B-girl
+Bglr
+BGP
+BH
+BHA
+bhabar
+Bhabha
+Bhadgaon
+Bhadon
+Bhaga
+Bhagalpur
+bhagat
+Bhagavad-Gita
+bhagavat
+bhagavata
+Bhai
+bhaiachara
+bhaiachari
+Bhairava
+Bhairavi
+bhaiyachara
+bhajan
+bhakta
+Bhaktapur
+bhaktas
+bhakti
+bhaktimarga
+bhaktis
+bhalu
+bhandar
+bhandari
+bhang
+bhangi
+bhangs
+Bhar
+bhara
+bharal
+Bharat
+Bharata
+Bharatiya
+bharti
+bhat
+Bhatpara
+Bhatt
+Bhaunagar
+bhava
+Bhavabhuti
+bhavan
+Bhavani
+Bhave
+Bhavnagar
+Bhayani
+BHC
+bhd
+bheestie
+bheesties
+bheesty
+bhikhari
+Bhikku
+bhikku
+Bhikkuni
+Bhikshu
+bhikshu
+Bhil
+Bhili
+Bhima
+bhindi
+bhishti
+bhisti
+bhistie
+bhisties
+BHL
+Bhojpuri
+bhokra
+Bhola
+Bhoodan
+bhoosa
+bhoot
+bhoots
+Bhopal
+b-horizon
+Bhotia
+Bhotiya
+Bhowani
+b'hoy
+bhoy
+BHP
+bhp
+BHT
+Bhubaneswar
+Bhudan
+Bhudevi
+Bhumibol
+bhumidar
+Bhumij
+bhunder
+bhungi
+bhungini
+bhut
+Bhutan
+bhutan
+Bhutanese
+bhutanese
+Bhutani
+Bhutatathata
+bhutatathata
+bhut-bali
+Bhutia
+bhuts
+Bhutto
+BI
+Bi
+bi
+bi-
+Bia
+biabo
+biacetyl
+biacetylene
+biacetyls
+biacid
+biacromial
+biacuminate
+biacuru
+Biadice
+Biafra
+Biafran
+Biagi
+Biagio
+biajaiba
+Biak
+bialate
+biali
+Bialik
+bialis
+biallyl
+bialveolar
+bialy
+bialys
+Bialystok
+bialystoker
+Biamonte
+Bianca
+Biancha
+Bianchi
+Bianchini
+bianchite
+Bianco
+bianco
+biangular
+biangulate
+biangulated
+biangulous
+bianisidine
+Bianka
+biannual
+biannually
+biannulate
+biarchy
+biarcuate
+biarcuated
+Biarritz
+biarticular
+biarticulate
+biarticulated
+Bias
+bias
+biased
+biasedly
+biases
+biasing
+biasness
+biasnesses
+biassed
+biassedly
+biasses
+biassing
+biasteric
+biasways
+biaswise
+biathlon
+biathlons
+biatomic
+biaural
+biauricular
+biauriculate
+biaxal
+biaxial
+biaxiality
+biaxially
+biaxillary
+Biayenda
+Bib
+Bib.
+bib
+bibacious
+bibaciousness
+bibacity
+bibasic
+bibasilar
+bibation
+bibb
+bibbed
+bibber
+bibberies
+bibbers
+bibbery
+Bibbie
+Bibbiena
+bibbing
+bibble
+bibble-babble
+bibbled
+bibbler
+bibbling
+bibbons
+bibbs
+Bibby
+bibby
+Bibbye
+bibcock
+bibcocks
+Bibeau
+bibelot
+bibelots
+bibenzyl
+biberon
+Bibi
+bibi
+Bibiena
+Bibio
+bibionid
+Bibionidae
+bibiri
+bibiru
+bibitory
+bi-bivalent
+Bibl
+Bibl.
+bibl
+bibl.
+Bible
+bible
+Bible-basher
+bible-christian
+bible-clerk
+bibles
+bibless
+BiblHeb
+Biblic
+Biblical
+biblical
+Biblicality
+Biblically
+biblically
+Biblicism
+biblicism
+Biblicist
+biblicist
+Biblicistic
+biblico-
+Biblicolegal
+Biblicoliterary
+Biblicopsychological
+biblike
+biblio-
+biblioclasm
+biblioclast
+bibliofilm
+bibliog
+bibliog.
+bibliogenesis
+bibliognost
+bibliognostic
+bibliogony
+bibliograph
+bibliographer
+bibliographers
+bibliographic
+bibliographical
+bibliographically
+bibliographies
+bibliographize
+bibliography
+bibliokelpt
+biblioklept
+bibliokleptomania
+bibliokleptomaniac
+bibliolater
+bibliolatrist
+bibliolatrous
+bibliolatry
+bibliological
+bibliologies
+bibliologist
+bibliology
+bibliomancy
+bibliomane
+bibliomania
+bibliomaniac
+bibliomaniacal
+bibliomanian
+bibliomanianism
+bibliomanism
+bibliomanist
+bibliopegic
+bibliopegically
+bibliopegist
+bibliopegistic
+bibliopegistical
+bibliopegy
+bibliophage
+bibliophagic
+bibliophagist
+bibliophagous
+bibliophil
+bibliophile
+bibliophiles
+bibliophilic
+bibliophilism
+bibliophilist
+bibliophilistic
+bibliophily
+bibliophobe
+bibliophobia
+bibliopolar
+bibliopole
+bibliopolery
+bibliopolic
+bibliopolical
+bibliopolically
+bibliopolism
+bibliopolist
+bibliopolistic
+bibliopoly
+bibliosoph
+bibliotaph
+bibliotaphe
+bibliotaphic
+bibliothec
+bibliotheca
+bibliothecae
+bibliothecaire
+bibliothecal
+bibliothecarial
+bibliothecarian
+bibliothecary
+bibliothecas
+bibliotheke
+bibliotheque
+bibliotherapeutic
+bibliotherapies
+bibliotherapist
+bibliotherapy
+bibliothetic
+bibliothque
+bibliotic
+bibliotics
+bibliotist
+Biblism
+Biblist
+biblist
+biblists
+biblos
+biblus
+biborate
+bibracteate
+bibracteolate
+bibs
+bibulosities
+bibulosity
+bibulous
+bibulously
+bibulousness
+Bibulus
+Bicakci
+bicalcarate
+bicalvous
+bicameral
+bicameralism
+bicameralist
+bicamerist
+bicapitate
+bicapsular
+bicarb
+bicarbide
+bicarbonate
+bicarbonates
+bicarbs
+bicarbureted
+bicarburetted
+bicarinate
+bicarpellary
+bicarpellate
+bicaudal
+bicaudate
+bicched
+Bice
+bice
+bicellular
+bicentenaries
+bicentenarnaries
+bicentenary
+bicentennial
+bicentennially
+bicentennials
+bicentral
+bicentric
+bicentrically
+bicentricity
+bicep
+bicephalic
+bicephalous
+biceps
+bicepses
+bices
+bicetyl
+Bichat
+Biche-la-mar
+Bichelamar
+bichir
+bichloride
+bichlorides
+bichord
+bichos
+bichromate
+bichromated
+bichromatic
+bichromatize
+bichrome
+bichromic
+bichy
+biciliate
+biciliated
+bicipital
+bicipitous
+bicircular
+bicirrose
+Bick
+bick
+Bickart
+bicker
+bickered
+bickerer
+bickerers
+bickering
+bickern
+bickers
+bick-iron
+bickiron
+Bickleton
+Bickmore
+Bicknell
+biclavate
+biclinia
+biclinium
+Bicol
+bicollateral
+bicollaterality
+bicolligate
+bicolor
+bicolored
+bicolorous
+bicolors
+bicolour
+bicoloured
+bicolourous
+bicolours
+Bicols
+bicompact
+biconcave
+biconcavities
+biconcavity
+biconditional
+bicondylar
+bicone
+biconic
+biconical
+biconically
+biconjugate
+biconnected
+biconsonantal
+biconvex
+biconvexities
+biconvexity
+Bicorn
+bicorn
+bicornate
+bicorne
+bicorned
+bicornes
+bicornous
+bicornuate
+bicornuous
+bicornute
+bicorporal
+bicorporate
+bicorporeal
+bicostate
+bicrenate
+bicrescentic
+bicrofarad
+bicron
+bicrons
+bicrural
+BICS
+bicuculline
+bicultural
+biculturalism
+bicursal
+bicuspid
+bicuspidal
+bicuspidate
+bicuspids
+bicyanide
+bicycle
+bicycle-built-for-two
+bicycled
+bicycler
+bicyclers
+bicycles
+bicyclic
+bicyclical
+bicycling
+bicyclism
+bicyclist
+bicyclists
+bicyclo
+bicycloheptane
+bicycular
+bicylindrical
+BID
+bid
+Bida
+bid-a-bid
+bidactyl
+bidactyle
+bidactylous
+bid-ale
+bidar
+bidarka
+bidarkas
+bidarkee
+bidarkees
+Bidault
+bidcock
+biddability
+biddable
+biddableness
+biddably
+biddance
+Biddeford
+Biddelian
+bidden
+bidder
+bidders
+biddery
+Biddick
+Biddie
+biddie
+biddies
+bidding
+biddings
+Biddle
+Biddulphia
+Biddulphiaceae
+Biddy
+biddy
+biddy-bid
+biddy-biddy
+bide
+bided
+bidene
+Bidens
+bident
+bidental
+bidentalia
+bidentate
+bidented
+bidential
+bidenticulate
+bider
+biders
+bidery
+bides
+bidet
+bidets
+bidgee-widgee
+Bidget
+bidget
+bidi
+bidiagonal
+bidialectal
+bidialectalism
+bidigitate
+bidimensional
+biding
+bidirectional
+bidirectionally
+bidiurnal
+Bidle
+bidonville
+Bidpai
+bidree
+bidri
+bidry
+bids
+bidstand
+biduous
+Bidwell
+BIE
+Biebel
+Bieber
+bieberite
+Biedermann
+Biedermeier
+bieennia
+Biegel
+Biel
+Biela
+bielbrief
+bielby
+bield
+bielded
+bielding
+bields
+bieldy
+bielectrolysis
+Bielefeld
+bielenite
+Bielersee
+Bielid
+Bielka
+Bielorouss
+Bielo-russian
+Bielsko-Biala
+bien
+bienly
+biennale
+biennales
+Bienne
+bienne
+bienness
+biennia
+biennial
+biennially
+biennials
+biennium
+bienniums
+biens
+bienseance
+bientt
+bienvenu
+bienvenue
+Bienville
+bier
+bierbalk
+Bierce
+bierkeller
+Bierman
+Biernat
+biers
+bierstube
+bierstuben
+bierstubes
+biestings
+biethnic
+bietle
+biface
+bifaces
+bifacial
+bifanged
+bifara
+bifarious
+bifariously
+bifer
+biferous
+biff
+Biffar
+biffed
+biffies
+biffin
+biffing
+biffins
+biffs
+biffy
+bifid
+bifidate
+bifidated
+bifidities
+bifidity
+bifidly
+bifilar
+bifilarly
+bifistular
+biflabellate
+biflagelate
+biflagellate
+biflecnode
+biflected
+biflex
+biflorate
+biflorous
+bifluorid
+bifluoride
+bifocal
+bifocals
+bifoil
+bifold
+bifolia
+bifoliate
+bifoliolate
+bifolium
+bifollicular
+biforate
+biforin
+biforine
+biforked
+biforking
+biform
+biformed
+biformity
+biforous
+bifront
+bifrontal
+bifronted
+Bifrost
+bifrost
+bifteck
+bifunctional
+bifurcal
+bifurcate
+bifurcated
+bifurcately
+bifurcates
+bifurcating
+bifurcation
+bifurcations
+bifurcous
+big
+biga
+bigae
+bigam
+bigamic
+bigamies
+bigamist
+bigamistic
+bigamistically
+bigamists
+bigamize
+bigamized
+bigamizing
+bigamous
+bigamously
+bigamy
+big-antlered
+bigarade
+bigarades
+big-armed
+bigaroon
+bigaroons
+Bigarreau
+bigarreau
+bigas
+bigate
+big-bearded
+big-bellied
+bigbloom
+big-bodied
+big-boned
+big-bosomed
+big-breasted
+big-bulked
+bigbury
+big-chested
+big-eared
+Bigelow
+bigemina
+bigeminal
+bigeminate
+bigeminated
+bigeminies
+bigeminum
+bigeminy
+Big-endian
+big-endian
+bigener
+bigeneric
+bigential
+bigeye
+big-eyed
+bigeyes
+bigfeet
+bigfoot
+big-footed
+bigfoots
+Bigford
+big-framed
+Bigg
+bigg
+biggah
+big-gaited
+bigged
+biggen
+biggened
+biggening
+bigger
+biggest
+biggety
+biggie
+biggies
+biggin
+bigging
+biggings
+biggins
+biggish
+biggishness
+biggity
+biggonet
+Biggs
+biggy
+bigha
+big-handed
+bighead
+big-headed
+bigheaded
+bigheads
+big-hearted
+bighearted
+bigheartedly
+bigheartedness
+big-hoofed
+Bighorn
+bighorn
+Bighorns
+bighorns
+bight
+bighted
+bighting
+bights
+big-jawed
+big-laden
+biglandular
+big-league
+big-leaguer
+big-leaved
+biglenoid
+Bigler
+big-looking
+biglot
+bigly
+bigmitt
+bigmouth
+big-mouthed
+bigmouthed
+bigmouths
+big-name
+Bigner
+bigness
+bignesses
+Bignonia
+bignonia
+Bignoniaceae
+bignoniaceous
+bignoniad
+bignonias
+big-nosed
+big-note
+bignou
+Bigod
+bigoniac
+bigonial
+Bigot
+bigot
+bigoted
+bigotedly
+bigotedness
+bigothero
+bigotish
+bigotries
+bigotry
+bigots
+bigotty
+bigram
+big-rich
+bigroot
+big-souled
+big-sounding
+big-swollen
+Bigtha
+bigthatch
+big-ticket
+big-time
+big-timer
+biguanide
+biguttate
+biguttulate
+bi-guy
+big-voiced
+big-waisted
+bigwig
+bigwigged
+bigwiggedness
+bigwiggery
+bigwiggism
+bigwigs
+Bihai
+bihalve
+Biham
+bihamate
+Bihar
+Bihari
+bihari
+biharmonic
+bihourly
+bihydrazine
+Bihzad
+bi-iliac
+bi-ischiadic
+bi-ischiatic
+Biisk
+bija
+Bijapur
+bijasal
+bijection
+bijections
+bijective
+bijectively
+bijou
+bijous
+bijouterie
+bijoux
+bijugate
+bijugous
+bijugular
+bijwoner
+Bik
+Bikales
+Bikaner
+bike
+biked
+biker
+bikers
+bikes
+bikeway
+bikeways
+bikh
+bikhaconitine
+bikie
+bikies
+Bikila
+biking
+Bikini
+bikini
+bikinied
+bikinis
+bikkurim
+Bikol
+Bikols
+Bikram
+Bikukulla
+Bil
+Bilaan
+bilabe
+bilabial
+bilabials
+bilabiate
+Bilac
+bilaciniate
+bilalo
+bilamellar
+bilamellate
+bilamellated
+bilaminar
+bilaminate
+bilaminated
+biland
+bilander
+bilanders
+bilateral
+bilateralism
+bilateralistic
+bilateralities
+bilaterality
+bilaterally
+bilateralness
+Bilati
+bilayer
+bilayers
+Bilbao
+Bilbe
+bilberries
+bilberry
+bilbi
+bilbie
+bilbies
+bilbo
+bilboa
+bilboas
+bilboes
+bilboquet
+bilbos
+bilby
+bilch
+bilcock
+Bildad
+bildar
+bilder
+bilders
+Bildungsroman
+bile
+bilection
+Bilek
+bilertinned
+Biles
+biles
+bilestone
+bileve
+bilewhit
+bilge
+bilged
+bilge-hoop
+bilge-keel
+bilges
+bilge-water
+bilgewater
+bilgeway
+bilgier
+bilgiest
+bilging
+bilgy
+Bilhah
+Bilharzia
+bilharzia
+bilharzial
+bilharziasis
+bilharzic
+bilharziosis
+Bili
+bili-
+bilianic
+biliary
+biliate
+biliation
+bilic
+Bilicki
+bilicyanin
+bilifaction
+biliferous
+bilification
+bilifuscin
+bilify
+bilihumin
+bilimbi
+bilimbing
+bilimbis
+biliment
+Bilin
+bilinear
+bilineate
+bilineated
+bilingual
+bilingualism
+bilinguality
+bilingually
+bilinguar
+bilinguist
+bilinigrin
+bilinite
+bilio
+bilious
+biliously
+biliousness
+biliousnesses
+biliprasin
+bilipurpurin
+bilipyrrhin
+bilirubin
+bilirubinemia
+bilirubinic
+bilirubinuria
+biliteral
+biliteralism
+bilith
+bilithon
+biliverdic
+biliverdin
+bilixanthin
+bilk
+bilked
+bilker
+bilkers
+bilking
+bilkis
+bilks
+Bill
+bill
+billa
+billable
+billabong
+billage
+bill-and-cooers
+billard
+Billat
+billback
+billbeetle
+Billbergia
+billbergia
+billboard
+billboards
+bill-broker
+billbroking
+billbug
+billbugs
+Bille
+billed
+Billen
+biller
+Billerica
+billers
+billet
+billet-doux
+billete
+billeted
+billeter
+billeters
+billethead
+billeting
+billets
+billets-doux
+billette
+billetty
+billetwood
+billety
+billfish
+billfishes
+billfold
+billfolds
+billhead
+billheading
+billheads
+billholder
+bill-hook
+billhook
+billhooks
+Billi
+billian
+billiard
+billiardist
+billiardly
+billiards
+Billie
+billie
+billies
+Billiken
+billikin
+billing
+Billings
+billings
+Billingsgate
+billingsgate
+Billingsley
+billion
+billionaire
+billionaires
+billionism
+billions
+billionth
+billionths
+Billiton
+billitonite
+Billjim
+bill-like
+billman
+billmen
+Billmyre
+billon
+billons
+billot
+billow
+billowed
+billowier
+billowiest
+billowiness
+billowing
+Billows
+billows
+billowy
+bill-patched
+billposter
+billposting
+Billroth
+Bills
+bills
+bill-shaped
+billsticker
+billsticking
+billtong
+Billy
+billy
+billyboy
+billy-button
+billycan
+billycans
+billycock
+Billye
+billyer
+billy-goat
+billyhood
+billyo
+billywix
+bilo
+bilobate
+bilobated
+bilobe
+bilobed
+bilobiate
+bilobular
+bilocation
+bilocellate
+bilocular
+biloculate
+Biloculina
+biloculine
+bilophodont
+biloquist
+bilos
+Bilow
+Biloxi
+bilsh
+Bilski
+Bilskirnir
+bilsted
+bilsteds
+Biltmore
+biltong
+biltongs
+biltongue
+BIM
+Bim
+bim
+BIMA
+bima
+bimaculate
+bimaculated
+bimah
+bimahs
+bimalar
+Bimana
+bimana
+bimanal
+bimane
+bimanous
+bimanual
+bimanually
+bimarginate
+bimarine
+bimas
+bimastic
+bimastism
+bimastoid
+bimasty
+bimaxillary
+bimbashi
+bimbil
+Bimbisara
+Bimble
+bimbo
+bimboes
+bimbos
+bimeby
+bimedial
+bimensal
+bimester
+bimesters
+bimestrial
+bimetal
+bimetalic
+bimetalism
+bimetallic
+bimetallism
+bimetallist
+bimetallistic
+bimetallists
+bimetals
+bimethyl
+bimethyls
+bimillenary
+bimillenial
+bimillenium
+bimillennia
+bimillennium
+bimillenniums
+bimillionaire
+bimilllennia
+Bimini
+Biminis
+Bimmeler
+bimodal
+bimodality
+bimodule
+bimodulus
+bimolecular
+bimolecularly
+bimong
+bimonthlies
+bimonthly
+bimorph
+bimorphemic
+bimorphs
+bimotor
+bimotored
+bimotors
+bimucronate
+bimuscular
+bin
+bin-
+Bina
+Binah
+binal
+Binalonen
+binaphthyl
+binapthyl
+binaries
+binarium
+binary
+binate
+binately
+bination
+binational
+binationalism
+binationalisms
+binaural
+binaurally
+binauricular
+binbashi
+bin-burn
+Binchois
+BIND
+bind
+bindable
+bind-days
+BIndEd
+binder
+binderies
+binders
+bindery
+bindheimite
+bindi
+bindi-eye
+binding
+bindingly
+bindingness
+bindings
+bindis
+bindle
+bindles
+bindlet
+Bindman
+bindoree
+binds
+bindweb
+bindweed
+bindweeds
+bindwith
+bindwood
+bine
+binervate
+bines
+Binet
+Binetta
+Binette
+bineweed
+Binford
+binful
+Bing
+bing
+binge
+binged
+bingee
+bingeing
+Bingen
+Binger
+binges
+bingey
+bingeys
+Bingham
+Binghamton
+binghi
+bingies
+binging
+bingle
+bingo
+bingos
+bingy
+binh
+Binhdinh
+Bini
+biniodide
+biniou
+binit
+Binitarian
+Binitarianism
+binits
+Bink
+bink
+Binky
+binman
+binmen
+binna
+binnacle
+binnacles
+binned
+Binni
+Binnie
+binning
+Binnings
+binnite
+binnogue
+Binny
+binny
+bino
+binocle
+binocles
+binocs
+binocular
+binocularity
+binocularly
+binoculars
+binoculate
+binodal
+binode
+binodose
+binodous
+binomen
+binomenclature
+binomial
+binomialism
+binomially
+binomials
+binominal
+binominated
+binominous
+binomy
+binormal
+binotic
+binotonous
+binous
+binoxalate
+binoxide
+bins
+bint
+bintangor
+bints
+binturong
+binuclear
+binucleate
+binucleated
+binucleolate
+binukau
+Binyon
+Binzuru
+bio
+bio-
+bioaccumulation
+bioacoustics
+bioactivities
+bioactivity
+bio-aeration
+bio-assay
+bioassay
+bioassayed
+bioassaying
+bioassays
+bioastronautical
+bioastronautics
+bioavailability
+biobibliographer
+biobibliographic
+biobibliographical
+biobibliographies
+biobibliography
+bioblast
+bioblastic
+BIOC
+biocatalyst
+biocatalytic
+biocellate
+biocenology
+biocenosis
+biocenotic
+biocentric
+biochemic
+biochemical
+biochemically
+biochemicals
+biochemics
+biochemist
+biochemistries
+biochemistry
+biochemists
+biochemy
+biochore
+biochron
+biocidal
+biocide
+biocides
+bioclean
+bioclimatic
+bioclimatician
+bioclimatological
+bioclimatologically
+bioclimatologies
+bioclimatologist
+bioclimatology
+biocoenose
+biocoenoses
+biocoenosis
+biocoenotic
+biocontrol
+biocycle
+biocycles
+biod
+biodegradabilities
+biodegradability
+biodegradable
+biodegradation
+biodegradations
+biodegrade
+biodegraded
+biodegrades
+biodegrading
+biodynamic
+biodynamical
+biodynamics
+biodyne
+bioecologic
+bioecological
+bioecologically
+bioecologies
+bioecologist
+bioecology
+bio-economic
+bio-electric
+bioelectric
+bioelectrical
+bioelectricities
+bioelectricity
+bio-electrogenesis
+bioelectrogenesis
+bioelectrogenetic
+bioelectrogenetically
+bioelectronics
+bio-energetics
+bioenergetics
+bioengineering
+bioenvironmental
+bioenvironmentaly
+bioethic
+bioethics
+biofeedback
+bioflavinoid
+bioflavonoid
+biofog
+biog
+biog.
+biogas
+biogases
+biogasses
+biogen
+biogenase
+biogenesis
+biogenesist
+biogenetic
+biogenetical
+biogenetically
+biogenetics
+biogenic
+biogenies
+biogenous
+biogens
+biogeny
+biogeochemical
+biogeochemistry
+biogeographer
+biogeographers
+biogeographic
+biogeographical
+biogeographically
+biogeography
+biognosis
+biograph
+biographee
+biographer
+biographers
+biographic
+biographical
+biographically
+biographies
+biographist
+biographize
+biography
+biohazard
+bioherm
+bioherms
+bioinstrument
+bioinstrumentation
+biokinetics
+biol
+biol.
+Biola
+biolinguistics
+biolite
+biolith
+biologese
+biologic
+biological
+biologically
+biologicohumanistic
+biologics
+biologies
+biologism
+biologist
+biologistic
+biologists
+biologize
+biology
+bioluminescence
+bioluminescent
+biolyses
+biolysis
+biolytic
+biomagnetic
+biomagnetism
+biomass
+biomasses
+biomaterial
+biomathematics
+biome
+biomechanical
+biomechanics
+biomedical
+biomedicine
+biomes
+biometeorology
+biometer
+biometric
+biometrical
+biometrically
+biometrician
+biometricist
+biometrics
+biometries
+Biometrika
+biometrist
+biometry
+biomicroscope
+biomicroscopies
+biomicroscopy
+biomorphic
+Bion
+bion
+bionditional
+Biondo
+bionergy
+bionic
+bionics
+bionomic
+bionomical
+bionomically
+bionomics
+bionomies
+bionomist
+bionomy
+biont
+biontic
+bionts
+bio-osmosis
+bio-osmotic
+biophagism
+biophagous
+biophagy
+biophilous
+biophor
+biophore
+biophotometer
+biophotophone
+biophysic
+biophysical
+biophysically
+biophysicist
+biophysicists
+biophysicochemical
+biophysics
+biophysiography
+biophysiological
+biophysiologist
+biophysiology
+biophyte
+biopic
+bioplasm
+bioplasmic
+bioplasms
+bioplast
+bioplastic
+biopoesis
+biopoiesis
+biopotential
+bioprecipitation
+biopsic
+biopsies
+biopsy
+biopsychic
+biopsychical
+biopsychological
+biopsychologies
+biopsychologist
+biopsychology
+bioptic
+biopyribole
+bioral
+biorbital
+biordinal
+bioreaction
+bioresearch
+biorgan
+biorhythm
+biorhythmic
+biorhythmicities
+biorhythmicity
+biorythmic
+BIOS
+bios
+Biosatellite
+biosatellite
+biosatellites
+bioscience
+biosciences
+bioscientific
+bioscientist
+bioscope
+bioscopes
+bioscopic
+bioscopies
+bioscopy
+biose
+biosensor
+bioseston
+-biosis
+biosis
+biosocial
+biosociological
+biosociology
+biosome
+biospeleology
+biosphere
+biospheres
+biostatic
+biostatical
+biostatics
+biostatistic
+biostatistics
+biosterin
+biosterol
+biostratigraphy
+biostrome
+biosyntheses
+biosynthesis
+biosynthesize
+biosynthetic
+biosynthetically
+biosystematic
+biosystematics
+biosystematist
+biosystematy
+Biot
+Biota
+biota
+biotas
+biotaxy
+biotech
+biotechnics
+biotechnological
+biotechnologically
+biotechnologicaly
+biotechnologies
+biotechnology
+biotechs
+biotelemetric
+biotelemetries
+biotelemetry
+biotherapy
+-biotic
+biotic
+biotical
+biotically
+biotics
+biotin
+biotins
+biotite
+biotites
+biotitic
+biotome
+biotomy
+biotope
+biotopes
+biotoxin
+biotoxins
+biotransformation
+biotron
+biotrons
+biotype
+biotypes
+biotypic
+biotypology
+biovular
+biovulate
+bioxalate
+bioxide
+biozone
+bipack
+bipacks
+bipaleolate
+Bipaliidae
+Bipalium
+bipalmate
+biparasitic
+biparental
+biparentally
+biparietal
+biparous
+biparted
+bipartible
+bipartient
+bipartile
+bipartisan
+bipartisanism
+bipartisanship
+bipartite
+bipartitely
+bipartition
+bipartizan
+biparty
+bipaschal
+bipectinate
+bipectinated
+biped
+bipedal
+bipedality
+bipedism
+bipeds
+bipeltate
+bipennate
+bipennated
+bipenniform
+biperforate
+bipersonal
+bipetalous
+biphase
+biphasic
+biphenol
+biphenyl
+biphenylene
+biphenyls
+bipinnaria
+bipinnariae
+bipinnarias
+bipinnate
+bipinnated
+bipinnately
+bipinnatifid
+bipinnatiparted
+bipinnatipartite
+bipinnatisect
+bipinnatisected
+biplace
+biplanal
+biplanar
+biplane
+biplanes
+biplicate
+biplicity
+biplosion
+biplosive
+bipod
+bipods
+bipolar
+bipolarity
+bipolarization
+bipolarize
+Bipont
+bipont
+Bipontine
+biporose
+biporous
+bipotentialities
+bipotentiality
+Bippus
+biprism
+biprong
+bipropellant
+bipunctal
+bipunctate
+bipunctual
+bipupillate
+bipyramid
+bipyramidal
+bipyridine
+bipyridyl
+biquadrantal
+biquadrate
+biquadratic
+biquarterly
+biquartz
+biquintile
+biracial
+biracialism
+biracially
+biradial
+biradiate
+biradiated
+biramose
+biramous
+birational
+Birch
+birch
+Birchard
+birchbark
+Birchdale
+birched
+birchen
+Bircher
+bircher
+birchers
+Birches
+birches
+birching
+Birchism
+birchism
+Birchite
+Birchleaf
+birchman
+Birchrunville
+Birchtree
+Birchwood
+birchwood
+Birck
+Bird
+bird
+birdbander
+birdbanding
+birdbath
+birdbaths
+bird-batting
+birdberry
+birdbrain
+bird-brained
+birdbrained
+birdbrains
+bird-cage
+birdcage
+birdcages
+birdcall
+birdcalls
+birdcatcher
+birdcatching
+birdclapper
+birdcraft
+bird-dog
+bird-dogged
+bird-dogging
+birddom
+birde
+birded
+birdeen
+Birdell
+Birdella
+birder
+birders
+Birdeye
+birdeye
+bird-eyed
+bird-faced
+birdfarm
+birdfarms
+bird-fingered
+bird-foot
+bird-foots
+birdglue
+birdhood
+birdhouse
+birdhouses
+Birdie
+birdie
+birdieback
+birdied
+birdieing
+birdies
+birdikin
+birding
+birdings
+Birdinhand
+bird-in-the-bush
+birdland
+birdless
+birdlet
+birdlife
+birdlike
+bird-lime
+birdlime
+birdlimed
+birdlimes
+birdliming
+birdling
+birdlore
+birdman
+birdmen
+birdmouthed
+bird-nest
+birdnest
+birdnester
+bird-nesting
+bird-ridden
+Birds
+birds
+birdsall
+Birdsboro
+birdseed
+birdseeds
+Birdseye
+bird's-eye
+birdseye
+bird's-eyes
+birdseyes
+bird's-foot
+bird's-foots
+birdshot
+birdshots
+birds-in-the-bush
+bird's-nest
+birdsnest
+birdsong
+birdstone
+Birdt
+bird-watch
+birdwatch
+bird-watcher
+birdweed
+birdwise
+bird-witted
+birdwitted
+birdwoman
+birdwomen
+birdy
+birdyback
+Birecree
+birectangular
+birefracting
+birefraction
+birefractive
+birefringence
+birefringent
+bireme
+biremes
+biretta
+birettas
+birgand
+Birgit
+Birgitta
+Birgus
+biri
+biriani
+biriba
+birimose
+Birk
+birk
+Birkbeck
+birken
+Birkenhead
+Birkenia
+Birkeniidae
+Birkett
+Birkhoff
+birkie
+birkies
+Birkle
+Birkner
+birkremite
+birks
+birky
+birl
+birle
+birled
+birler
+birlers
+birles
+birlie
+birlieman
+birling
+birlings
+birlinn
+birls
+birma
+Birmingham
+birmingham
+Birminghamize
+birn
+Birnamwood
+birne
+Birney
+birny
+Biro
+Birobidzhan
+Birobijan
+Birobizhan
+birodo
+Birome
+Biron
+birostrate
+birostrated
+birota
+birotation
+birotatory
+birr
+birred
+Birrell
+birretta
+birrettas
+birri
+birring
+birrotch
+birrs
+birrus
+birse
+birses
+birsit
+birsle
+birsy
+Birt
+birt
+birth
+birthbed
+birthdate
+birthdates
+birthday
+birthdays
+birthdom
+birthed
+birthing
+birthland
+birthless
+birthmark
+birthmarks
+birthmate
+birthnight
+birthplace
+birthplaces
+birthrate
+birthrates
+birthright
+birthrights
+birthroot
+births
+birthstone
+birthstones
+birthstool
+birthwort
+birthy
+Birtwhistle
+Birzai
+BIS
+bis
+bis-
+bisabol
+bisaccate
+bisacromial
+bisagre
+bisalt
+Bisaltae
+bisannual
+bisantler
+bisaxillary
+Bisayan
+bisayan
+Bisayans
+Bisayas
+Bisbee
+bisbeeite
+biscacha
+Biscanism
+Biscay
+Biscayan
+biscayan
+Biscayanism
+biscayen
+Biscayner
+bischofite
+Biscoe
+biscot
+biscotin
+biscuit
+biscuit-brained
+biscuit-colored
+biscuit-fired
+biscuiting
+biscuitlike
+biscuitmaker
+biscuitmaking
+biscuitroot
+biscuitry
+biscuits
+biscuit-shaped
+biscutate
+bisdiapason
+bisdimethylamino
+BISDN
+bise
+bisect
+bisected
+bisecting
+bisection
+bisectional
+bisectionally
+bisections
+bisector
+bisectors
+bisectrices
+bisectrix
+bisects
+bisegment
+bisellia
+bisellium
+biseptate
+biserial
+biserially
+biseriate
+biseriately
+biserrate
+bises
+biset
+bisetose
+bisetous
+bisexed
+bisext
+bisexual
+bisexualism
+bisexuality
+bisexually
+bisexuals
+bisexuous
+bisglyoxaline
+Bish
+bish
+Bishareen
+Bishari
+Bisharin
+Bishop
+bishop
+bishopbird
+bishopdom
+bishoped
+bishopess
+bishopful
+bishophood
+bishoping
+bishopless
+bishoplet
+bishoplike
+bishopling
+bishopric
+bishoprics
+bishops
+bishop's-cap
+bishopscap
+bishopship
+bishopstool
+bishop's-weed
+Bishopville
+bishopweed
+bishydroxycoumarin
+bisie
+bisiliac
+bisilicate
+bisiliquous
+bisimine
+bisinuate
+bisinuation
+bisischiadic
+bisischiatic
+Bisitun
+Bisk
+bisk
+biskop
+Biskra
+bisks
+Bisley
+bislings
+bismanol
+bismar
+Bismarck
+bismarck
+Bismarckian
+Bismarckianism
+bismarine
+Bismark
+bismark
+bisme
+bismer
+bismerpund
+bismethyl
+bismillah
+bismite
+Bismosol
+bismuth
+bismuthal
+bismuthate
+bismuthic
+bismuthide
+bismuthiferous
+bismuthine
+bismuthinite
+bismuthite
+bismuthous
+bismuths
+bismuthyl
+bismutite
+bismutoplagionite
+bismutosmaltite
+bismutosphaerite
+bisnaga
+bisnagas
+bisognio
+bison
+bisonant
+bisons
+bisontine
+BISP
+bisphenoid
+bispinose
+bispinous
+bispore
+bisporous
+bisque
+bisques
+bisquette
+bissabol
+Bissau
+Bissell
+bissellia
+Bisset
+bissext
+bissextile
+bissextus
+bisso
+bisson
+bissonata
+bist
+bistable
+bistate
+bistephanic
+bister
+bistered
+bisters
+bistetrazole
+bisti
+bistipular
+bistipulate
+bistipuled
+bistort
+Bistorta
+bistorts
+bistouries
+bistournage
+bistoury
+bistratal
+bistratose
+bistre
+bistred
+bistres
+bistriate
+bistriazole
+bistro
+bistroic
+bistros
+bisubstituted
+bisubstitution
+bisulc
+bisulcate
+bisulcated
+bisulfate
+bisulfid
+bisulfide
+bisulfite
+bisulphate
+bisulphide
+bisulphite
+Bisutun
+bisyllabic
+bisyllabism
+bisymmetric
+bisymmetrical
+bisymmetrically
+bisymmetry
+BISYNC
+bisync
+BIT
+bit
+bitable
+bitake
+bitangent
+bitangential
+bitanhol
+bitartrate
+bitbrace
+Bitburg
+bit-by-bit
+bitch
+bitched
+bitcheries
+bitchery
+bitches
+bitchier
+bitchiest
+bitchily
+bitchiness
+bitching
+bitch-kitty
+bitchy
+bite
+biteable
+biteche
+bited
+biteless
+Bitely
+bitemporal
+bitentaculate
+biter
+biternate
+biternately
+biters
+bites
+bite-sheep
+bitesheep
+bite-tongue
+bitewing
+bitewings
+bitheism
+Bithia
+Bithynia
+Bithynian
+biti
+biting
+bitingly
+bitingness
+Bitis
+bitless
+bitmap
+bitmapped
+BITNET
+bitnet
+bito
+Bitolj
+bitolyl
+Biton
+bitonal
+bitonalities
+bitonality
+bitore
+bitreadle
+bi-tri-
+bitripartite
+bitripinnatifid
+bitriseptate
+bitrochanteric
+BITS
+bits
+bitser
+bitstalk
+bitstock
+bitstocks
+bitstone
+bitsy
+bitt
+bittacle
+bitte
+bitted
+bitten
+Bittencourt
+bitter
+bitter-
+bitterbark
+bitter-biting
+bitterblain
+bitterbloom
+bitterbrush
+bitterbump
+bitterbur
+bitterbush
+bittered
+bitter-end
+bitter-ender
+bitterender
+bitter-enderism
+bitter-endism
+bitterer
+bitterest
+bitterful
+bitterhead
+bitterhearted
+bitterheartedness
+bittering
+bitterish
+bitterishness
+bitterless
+bitterling
+bitterly
+bittern
+bitterness
+bitternesses
+bitterns
+bitternut
+bitter-rinded
+bitterroot
+bitters
+bitter-sweet
+bittersweet
+bitter-sweeting
+bittersweetly
+bittersweetness
+bittersweets
+bitter-tasting
+bitter-tongued
+bitterweed
+bitterwood
+bitterworm
+bitterwort
+bitthead
+Bitthia
+bittie
+bittier
+bittiest
+bitting
+Bittinger
+bittings
+Bittium
+Bittner
+Bitto
+bittock
+bittocks
+bittor
+bitts
+bitty
+bitubercular
+bituberculate
+bituberculated
+Bitulithic
+bitulithic
+bitume
+bitumed
+bitumen
+bitumens
+bituminate
+bituminiferous
+bituminisation
+bituminise
+bituminised
+bituminising
+bituminization
+bituminize
+bituminized
+bituminizing
+bituminoid
+bituminosis
+bituminous
+bit-wise
+bitwise
+bityite
+bitypic
+BIU
+biune
+biunial
+biunique
+biuniquely
+biuniqueness
+biunity
+biunivocal
+biurate
+biurea
+biuret
+bivalence
+bivalencies
+bivalency
+bivalent
+bivalents
+bivalve
+bivalved
+bivalves
+Bivalvia
+bivalvian
+bivalvous
+bivalvular
+bivane
+bivariant
+bivariate
+bivascular
+bivaulted
+bivector
+biventer
+biventral
+biverb
+biverbal
+bivial
+Bivins
+bivinyl
+bivinyls
+bivious
+bivittate
+bivium
+bivocal
+bivocalized
+bivoltine
+bivoluminous
+bivouac
+bivouaced
+bivouacked
+bivouacking
+bivouacks
+bivouacs
+bivvy
+biw-
+biwa
+Biwabik
+biweeklies
+biweekly
+biwinter
+BIX
+Bixa
+bixa
+Bixaceae
+bixaceous
+Bixby
+bixbyite
+bixin
+Bixler
+biyearly
+Biysk
+biz
+bizant
+bizardite
+bizarre
+bizarrely
+bizarreness
+bizarrerie
+bizarres
+bizcacha
+bize
+bizel
+Bizen
+Bizerta
+Bizerte
+bizes
+Bizet
+bizet
+biznaga
+biznagas
+bizonal
+bizone
+bizones
+Bizonia
+Biztha
+bizygomatic
+bizz
+bizzarro
+Bjart
+Bjneborg
+Bjoerling
+Bjork
+Bjorn
+Bjornson
+Bk
+bk
+bk.
+bkbndr
+bkcy
+bkcy.
+bkg
+bkg.
+bkgd
+bklr
+bkpr
+bkpt
+bks
+bks.
+bkt
+B.L.
+B/L
+BL
+b/l
+bl
+bl.
+BLA
+blaasop
+blab
+blabbed
+blabber
+blabbered
+blabberer
+blabbering
+blabbermouth
+blabbermouths
+blabbers
+blabbing
+blabby
+blabmouth
+blabs
+Blacher
+Blachly
+blachong
+Black
+black
+blackacre
+blackamoor
+blackamoors
+black-and-blue
+black-and-tan
+black-and-white
+black-aproned
+blackarm
+black-a-viced
+black-a-visaged
+black-a-vised
+blackback
+black-backed
+black-ball
+blackball
+blackballed
+blackballer
+blackballing
+blackballs
+blackband
+black-banded
+Blackbeard
+black-bearded
+blackbeetle
+black-bellied
+blackbelly
+black-belt
+black-berried
+blackberries
+blackberry
+blackberrylike
+black-billed
+blackbine
+blackbird
+blackbirder
+blackbirding
+blackbirds
+black-blooded
+black-blue
+blackboard
+blackboards
+black-bodied
+black-boding
+blackbody
+black-bordered
+black-boughed
+blackboy
+blackboys
+blackbreast
+black-breasted
+black-browed
+black-brown
+blackbrush
+blackbuck
+Blackburn
+blackbush
+blackbutt
+blackcap
+black-capped
+blackcaps
+black-chinned
+black-clad
+blackcoat
+black-coated
+blackcock
+blackcod
+blackcods
+black-colored
+black-cornered
+black-crested
+black-crowned
+blackcurrant
+blackdamp
+Blackduck
+black-eared
+black-ears
+blacked
+black-edged
+blacken
+blackened
+blackener
+blackeners
+blackening
+blackens
+blacker
+blackest
+blacketeer
+Blackett
+Blackey
+blackey
+blackeye
+black-eyed
+blackeyes
+blackface
+black-faced
+black-favored
+black-feathered
+Blackfeet
+blackfeet
+blackfellow
+blackfellows
+black-figure
+black-figured
+blackfigured
+blackfin
+blackfins
+blackfire
+blackfish
+blackfisher
+blackfishes
+blackfishing
+blackflies
+blackfly
+Blackfoot
+blackfoot
+black-footed
+Blackford
+Blackfriars
+black-fruited
+black-gowned
+blackguard
+blackguardism
+blackguardize
+blackguardly
+blackguardry
+blackguards
+blackgum
+blackgums
+black-hafted
+black-haired
+Blackhander
+blackhander
+Blackhawk
+black-head
+blackhead
+black-headed
+blackheads
+blackheart
+black-hearted
+blackhearted
+blackheartedly
+blackheartedness
+black-hilted
+black-hole
+black-hooded
+black-hoofed
+blackie
+blackies
+blacking
+blackings
+Blackington
+blackish
+blackishly
+blackishness
+blackit
+blackjack
+blackjacked
+blackjacking
+blackjacks
+blackland
+blacklead
+black-leg
+blackleg
+black-legged
+blacklegged
+blackleggery
+blacklegging
+blacklegism
+blacklegs
+black-letter
+Blacklick
+black-lidded
+blacklight
+black-lipped
+blacklist
+blacklisted
+blacklister
+blacklisting
+blacklists
+black-locked
+black-looking
+blackly
+blackmail
+blackmailed
+blackmailer
+blackmailers
+blackmailing
+blackmails
+Blackman
+blackman
+black-maned
+black-margined
+black-market
+black-marketeer
+Blackmore
+black-mouth
+black-mouthed
+Blackmun
+Blackmur
+black-neb
+blackneb
+blackneck
+black-necked
+blackness
+blacknesses
+blacknob
+black-nosed
+black-out
+blackout
+blackouts
+blackpatch
+black-peopled
+blackplate
+black-plumed
+blackpoll
+Blackpool
+black-pot
+blackpot
+blackprint
+blackrag
+black-red
+black-robed
+blackroot
+black-rooted
+blacks
+black-sander
+Blacksburg
+blackseed
+Blackshear
+Blackshirt
+blackshirt
+blackshirted
+black-shouldered
+black-skinned
+blacksmith
+blacksmithing
+blacksmiths
+black-snake
+blacksnake
+black-spotted
+blackstick
+Blackstock
+black-stoled
+Blackstone
+blackstrap
+Blacksville
+black-tail
+blacktail
+black-tailed
+black-thorn
+blackthorn
+blackthorns
+black-throated
+black-tie
+black-toed
+blacktongue
+black-tongued
+blacktop
+blacktopped
+blacktopping
+blacktops
+blacktree
+black-tressed
+black-tufted
+black-veiled
+Blackville
+black-visaged
+blackware
+black-wash
+blackwash
+blackwasher
+blackwashing
+Blackwater
+blackwater
+blackweed
+Blackwell
+black-whiskered
+Blackwood
+black-wood
+blackwood
+blackwork
+blackwort
+blacky
+blad
+bladder
+bladderet
+bladderless
+bladderlike
+bladdernose
+bladdernut
+bladderpod
+bladders
+bladderseed
+bladderweed
+bladderwort
+bladderwrack
+bladdery
+blade
+bladebone
+bladed
+bladeless
+bladelet
+bladelike
+Bladen
+Bladenboro
+Bladensburg
+blade-point
+Blader
+blader
+blades
+bladesmith
+bladewise
+blading
+bladish
+Bladon
+blady
+bladygrass
+blae
+blaeberries
+blaeberry
+blaeness
+Blaeu
+Blaeuw
+Blaew
+blaewort
+blaff
+blaffert
+blaflum
+Blagg
+blaggard
+Blagonravov
+Blagoveshchensk
+blague
+blagueur
+blah
+blah-blah
+blahlaut
+blahs
+Blain
+blain
+Blaine
+Blainey
+blains
+Blair
+blair
+Blaire
+blairmorite
+Blairs
+Blairsburg
+Blairsden
+Blairstown
+Blairsville
+Blaisdell
+Blaise
+Blake
+blake
+blakeberyed
+blakeite
+Blakelee
+Blakeley
+Blakely
+Blakemore
+Blakesburg
+Blakeslee
+Blalock
+blam
+blamability
+blamable
+blamableness
+blamably
+blame
+blameable
+blameableness
+blameably
+blamed
+blameful
+blamefully
+blamefulness
+blameless
+blamelessly
+blamelessness
+blamer
+blamers
+blames
+blame-shifting
+blameworthiness
+blameworthinesses
+blameworthy
+Blamey
+blaming
+blamingly
+blams
+blan
+Blanc
+blanc
+Blanca
+blanca
+Blancanus
+blancard
+Blanch
+blanch
+Blancha
+Blanchard
+Blanchardville
+Blanche
+blanche
+blanched
+blancher
+blanchers
+blanches
+Blanchester
+Blanchette
+blanchi
+blanchimeter
+blanching
+blanchingly
+Blanchinus
+blancmange
+blancmanger
+blancmanges
+Blanco
+blanco
+blancs
+Bland
+bland
+blanda
+BLandArch
+blandation
+Blandburg
+blander
+blandest
+Blandford
+Blandfordia
+blandiloquence
+blandiloquious
+blandiloquous
+Blandina
+Blanding
+Blandinsville
+blandish
+blandished
+blandisher
+blandishers
+blandishes
+blandishing
+blandishingly
+blandishment
+blandishments
+blandly
+blandness
+blandnesses
+Blandon
+Blandville
+Blandy-les-Tours
+Blane
+Blanford
+Blank
+blank
+Blanka
+blankard
+blankbook
+blanked
+blankeel
+Blankenship
+blanker
+blankest
+blanket
+blanketed
+blanketeer
+blanketer
+blanketers
+blanket-flower
+blanketflower
+blanketing
+blanketless
+blanketlike
+blanketmaker
+blanketmaking
+blanketry
+blankets
+blanket-stitch
+blanketweed
+blankety
+blankety-blank
+blank-eyed
+blanking
+blankish
+Blankit
+blankite
+blank-looking
+blankly
+blank-minded
+blankminded
+blankmindedness
+blankness
+blanknesses
+Blanks
+blanks
+blanky
+blanque
+blanquette
+blanquillo
+blanquillos
+Blantyre
+Blantyre-Limbe
+blaoner
+blaoners
+blare
+blared
+blares
+Blarina
+blarina
+blaring
+blarney
+blarneyed
+blarneyer
+blarneying
+blarneys
+blarnid
+blarny
+blart
+BLAS
+Blas
+blas
+Blasdell
+Blase
+blase
+Blaseio
+blaseness
+blash
+blashy
+Blasia
+Blasien
+Blasius
+blason
+blaspheme
+blasphemed
+blasphemer
+blasphemers
+blasphemes
+blasphemies
+blaspheming
+blasphemous
+blasphemously
+blasphemousness
+blasphemy
+-blast
+BLAST
+blast
+blast-
+blastaea
+blast-borne
+blasted
+blastema
+blastemal
+blastemas
+blastemata
+blastematic
+blastemic
+blaster
+blasters
+blast-freeze
+blast-freezing
+blast-frozen
+blastful
+blast-furnace
+blasthole
+-blastic
+blastid
+blastide
+blastie
+blastier
+blasties
+blastiest
+blasting
+blastings
+blastman
+blastment
+blasto-
+blastocarpous
+blastocele
+blastocheme
+blastochyle
+blastocoel
+blastocoele
+blastocoelic
+blastocolla
+blastocyst
+blastocyte
+blastoderm
+blastodermatic
+blastodermic
+blastodisc
+blastodisk
+blast-off
+blastoff
+blastoffs
+blastogenesis
+blastogenetic
+blastogenic
+blastogeny
+blastogranitic
+blastoid
+Blastoidea
+blastoma
+blastomas
+blastomata
+blastomere
+blastomeric
+Blastomyces
+blastomycete
+Blastomycetes
+blastomycetic
+blastomycetous
+blastomycin
+blastomycosis
+blastomycotic
+blastoneuropore
+Blastophaga
+blastophitic
+blastophoral
+blastophore
+blastophoric
+blastophthoria
+blastophthoric
+blastophyllum
+blastoporal
+blastopore
+blastoporic
+blastoporphyritic
+blastosphere
+blastospheric
+blastostylar
+blastostyle
+blastozooid
+blastplate
+blasts
+blastula
+blastulae
+blastular
+blastulas
+blastulation
+blastule
+blasty
+blat
+blatancies
+blatancy
+blatant
+blatantly
+blatch
+blatchang
+blate
+blately
+blateness
+blateration
+blateroon
+blather
+blathered
+blatherer
+blathering
+blathers
+blatherskite
+blatherskites
+blathery
+blatiform
+blatjang
+Blatman
+blats
+Blatt
+Blatta
+blatta
+Blattariae
+blatted
+blatter
+blattered
+blatterer
+blattering
+blatters
+blatti
+blattid
+Blattidae
+blattiform
+blatting
+Blattodea
+blattoid
+Blattoidea
+Blatz
+Blau
+blaubok
+blauboks
+Blaugas
+blaunner
+blautok
+Blauvelt
+blauwbok
+Blavatsky
+blaver
+blaw
+blawed
+Blawenburg
+blawing
+blawn
+blawort
+blaws
+blay
+Blaydon
+blayk
+Blayne
+Blayze
+Blaze
+blaze
+blazed
+blazer
+blazers
+blazes
+blazing
+blazingly
+blazon
+blazoned
+blazoner
+blazoners
+blazoning
+blazonment
+blazonries
+blazonry
+blazons
+blazy
+Blcher
+bld
+bldg
+bldg.
+BldgE
+bldr
+BLDS
+-ble
+BLE
+blea
+bleaberry
+bleach
+bleachability
+bleachable
+bleached
+bleached-blond
+bleacher
+bleacheries
+bleacherite
+bleacherman
+bleachers
+bleachery
+bleaches
+bleachfield
+bleachground
+bleachhouse
+bleaching
+bleachman
+bleachs
+bleachworks
+bleachyard
+bleak
+bleaker
+bleakest
+bleakish
+bleakly
+bleakness
+bleaknesses
+bleaks
+bleaky
+blear
+bleared
+blearedness
+bleareye
+blear-eyed
+bleareyed
+blear-eyedness
+blearier
+bleariest
+blearily
+bleariness
+blearing
+blearness
+blears
+blear-witted
+bleary
+bleary-eyed
+blearyeyedness
+bleat
+bleated
+bleater
+bleaters
+bleating
+bleatingly
+bleats
+bleaty
+bleaunt
+bleb
+blebby
+blebs
+blechnoid
+Blechnum
+bleck
+bled
+Bledsoe
+blee
+bleed
+bleeder
+bleeders
+bleeding
+bleedings
+bleeds
+bleekbok
+Bleeker
+bleep
+bleeped
+bleeping
+bleeps
+bleery
+bleeze
+bleezy
+Bleiblerville
+Bleier
+bleinerite
+blellum
+blellums
+blemish
+blemished
+blemisher
+blemishes
+blemishing
+blemishment
+blemmatrope
+Blemmyes
+Blen
+blench
+blenched
+blencher
+blenchers
+blenches
+blenching
+blenchingly
+Blencoe
+blencorn
+blend
+Blenda
+blendcorn
+blende
+blended
+blender
+blenders
+blendes
+blending
+blendor
+blends
+blendure
+blendwater
+blend-word
+Blenheim
+blenheim
+blenk
+Blenker
+blennadenitis
+blennemesis
+blennenteria
+blennenteritis
+blennies
+blenniid
+Blenniidae
+blenniiform
+Blenniiformes
+blennioid
+Blennioidea
+blenno-
+blennocele
+blennocystitis
+blennoemesis
+blennogenic
+blennogenous
+blennoid
+blennoma
+blennometritis
+blennophlogisma
+blennophlogosis
+blennophobia
+blennophthalmia
+blennoptysis
+blennorhea
+blennorrhagia
+blennorrhagic
+blennorrhea
+blennorrheal
+blennorrhinia
+blennorrhoea
+blennosis
+blennostasis
+blennostatic
+blennothorax
+blennotorrhea
+blennuria
+blenny
+blennymenitis
+blens
+blent
+bleo
+bleomycin
+blephar-
+blephara
+blepharadenitis
+blepharal
+blepharanthracosis
+blepharedema
+blepharelcosis
+blepharemphysema
+Blephariglottis
+blepharism
+blepharitic
+blepharitis
+blepharo-
+blepharoadenitis
+blepharoadenoma
+blepharoatheroma
+blepharoblennorrhea
+blepharocarcinoma
+Blepharocera
+Blepharoceridae
+blepharochalasis
+blepharochromidrosis
+blepharoclonus
+blepharocoloboma
+blepharoconjunctivitis
+blepharodiastasis
+blepharodyschroia
+blepharohematidrosis
+blepharolithiasis
+blepharomelasma
+blepharoncosis
+blepharoncus
+blepharophimosis
+blepharophryplasty
+blepharophthalmia
+blepharophyma
+blepharoplast
+blepharoplastic
+blepharoplasty
+blepharoplegia
+blepharoptosis
+blepharopyorrhea
+blepharorrhaphy
+blepharospasm
+blepharospath
+blepharosphincterectomy
+blepharostat
+blepharostenosis
+blepharosymphysis
+blepharosyndesmitis
+blepharosynechia
+blepharotomy
+blepharydatis
+Blephillia
+BLER
+blere
+Bleriot
+BLERT
+bles-bok
+blesbok
+blesboks
+blesbuck
+blesbucks
+blesmol
+bless
+blesse
+blessed
+blesseder
+blessedest
+blessedly
+blessedness
+blessednesses
+blesser
+blessers
+blesses
+Blessing
+blessing
+blessingly
+blessings
+Blessington
+blest
+blet
+blethe
+blether
+bletheration
+blethered
+blethering
+blethers
+bletherskate
+Bletia
+Bletilla
+bletonism
+blets
+bletted
+bletting
+bleu
+Bleuler
+Blevins
+blew
+blewits
+bleymes
+BLF
+BLFE
+BLI
+bliaut
+blibe
+blick
+blickey
+blickeys
+blickie
+blickies
+blicky
+Blida
+blier
+bliest
+Bligh
+Blighia
+Blight
+blight
+blightbird
+blighted
+blighter
+blighters
+blighties
+blighting
+blightingly
+blights
+Blighty
+blighty
+blijver
+Blim
+blimbing
+blimey
+Blimp
+blimp
+blimpish
+blimpishly
+blimpishness
+blimps
+blimy
+blin
+blind
+blindage
+blindages
+blind-alley
+blindball
+blindcat
+blinded
+blindedly
+blinder
+blinders
+blindest
+blindeyes
+blindfast
+blindfish
+blindfishes
+blindfold
+blindfolded
+blindfoldedly
+blindfoldedness
+blindfolder
+blindfolding
+blindfoldly
+blindfolds
+blind-head
+Blindheim
+blinding
+blindingly
+blindish
+blindism
+blindless
+blindling
+blind-loaded
+blindly
+blindman
+blind-man's-buff
+blind-nail
+blindness
+blindnesses
+blind-nettle
+blind-pigger
+blind-pigging
+blind-punch
+blinds
+blind-stamp
+blind-stamped
+blindstitch
+blindstorey
+blindstories
+blindstory
+blind-tool
+blind-tooled
+blindweed
+blind-worm
+blindworm
+blind-your-eyes
+blinger
+blini
+blinis
+blink
+blinkard
+blinkards
+blinked
+blinker
+blinkered
+blinkering
+blinkers
+blink-eyed
+blinking
+blinkingly
+blinks
+blinky
+Blinn
+Blinni
+Blinnie
+Blinny
+blinter
+blintz
+blintze
+blintzes
+bliny
+blip
+blipped
+blippers
+blipping
+blips
+blirt
+Bliss
+bliss
+Blisse
+blissed
+blisses
+Blissfield
+blissful
+blissfully
+blissfulness
+blissing
+blissless
+blissom
+blist
+blister
+blistered
+blistering
+blisteringly
+blisterous
+blisters
+blisterweed
+blisterwort
+blistery
+BLit
+blit
+blite
+blites
+Blithe
+blithe
+blithebread
+blitheful
+blithefully
+blithehearted
+blithelike
+blithe-looking
+blithely
+blithemeat
+blithen
+blitheness
+blither
+blithered
+blithering
+blithers
+blithesome
+blithesomely
+blithesomeness
+blithest
+B.Litt.
+BLitt
+blitter
+Blitum
+Blitz
+blitz
+blitzbuggy
+blitzed
+blitzes
+blitzing
+blitzkrieg
+blitzkrieged
+blitzkrieging
+blitzkriegs
+Blitzstein
+Blixen
+blizz
+blizzard
+blizzardly
+blizzardous
+blizzards
+blizzardy
+blk
+blk.
+blksize
+BLL
+BLM
+blo
+bloat
+bloated
+bloatedness
+bloater
+bloaters
+bloating
+bloats
+blob
+blobbed
+blobber
+blobber-lipped
+blobbier
+blobbiest
+blobbiness
+blobbing
+blobby
+BLOBS
+blobs
+bloc
+blocage
+Bloch
+Block
+block
+blockade
+blockaded
+blockader
+blockaders
+blockade-runner
+blockade-running
+blockaderunning
+blockades
+blockading
+blockage
+blockages
+blockboard
+block-book
+blockbuster
+blockbusters
+blockbusting
+block-caving
+blocked
+blocked-out
+Blocker
+blocker
+blocker-out
+blockers
+blockhead
+blockheaded
+blockheadedly
+blockheadedness
+blockheadish
+blockheadishness
+blockheadism
+blockheads
+blockhole
+blockholer
+blockhouse
+blockhouses
+blockier
+blockiest
+blockiness
+blocking
+blockish
+blockishly
+blockishness
+blocklayer
+blocklike
+blockline
+blockmaker
+blockmaking
+blockman
+blockout
+blockpate
+block-printed
+blocks
+block-saw
+Blocksburg
+block-serifed
+blockship
+Blockton
+Blockus
+blockwood
+blocky
+blocs
+Blodenwedd
+Blodget
+Blodgett
+blodite
+bloedite
+Bloem
+Bloemfontein
+Blois
+Blok
+blok
+bloke
+blokes
+blolly
+bloman
+Blomberg
+Blomkest
+Blomquist
+blomstrandine
+blond
+blonde
+Blondel
+Blondell
+Blondelle
+blondeness
+blonder
+blondes
+blondest
+blond-haired
+blond-headed
+Blondie
+blondine
+blondish
+blondness
+blonds
+Blondy
+Blood
+blood
+bloodalley
+bloodalp
+blood-and-guts
+blood-and-thunder
+bloodbath
+bloodbeat
+blood-bedabbled
+bloodberry
+blood-bespotted
+blood-besprinkled
+bloodbird
+blood-boltered
+blood-bought
+blood-cemented
+blood-colored
+blood-consuming
+bloodcurdler
+bloodcurdling
+bloodcurdlingly
+blood-defiled
+blood-discolored
+blood-drenched
+blooddrop
+blooddrops
+blood-drunk
+blood-dyed
+blooded
+bloodedness
+blood-extorting
+blood-faced
+blood-filled
+bloodfin
+bloodfins
+blood-fired
+blood-flecked
+bloodflower
+blood-frozen
+bloodguilt
+bloodguiltiness
+bloodguiltless
+blood-guilty
+bloodguilty
+blood-gushing
+blood-heat
+blood-hot
+bloodhound
+bloodhounds
+blood-hued
+bloodied
+bloodier
+bloodies
+bloodiest
+bloodily
+bloodiness
+blooding
+bloodings
+bloodleaf
+bloodless
+bloodlessly
+bloodlessness
+blood-letter
+bloodletter
+blood-letting
+bloodletting
+bloodlettings
+bloodlike
+bloodline
+bloodlines
+blood-loving
+bloodlust
+bloodlusting
+blood-mad
+bloodmobile
+bloodmobiles
+blood-money
+bloodmonger
+bloodnoun
+blood-plashed
+blood-polluted
+blood-polluting
+blood-raw
+blood-red
+bloodred
+blood-relation
+bloodripe
+bloodripeness
+blood-root
+bloodroot
+bloodroots
+bloods
+blood-scrawled
+blood-shaken
+bloodshed
+bloodshedder
+bloodshedding
+bloodsheds
+blood-shot
+bloodshot
+blood-shotten
+bloodshotten
+blood-sized
+blood-spattered
+blood-spavin
+bloodspiller
+bloodspilling
+blood-stain
+bloodstain
+bloodstained
+bloodstainedness
+bloodstains
+bloodstanch
+blood-stirring
+blood-stirringness
+bloodstock
+blood-stone
+bloodstone
+bloodstones
+blood-strange
+bloodstream
+bloodstreams
+bloodstroke
+blood-suck
+bloodsuck
+blood-sucker
+bloodsucker
+bloodsuckers
+bloodsucking
+bloodsuckings
+blood-swelled
+blood-swoln
+bloodtest
+bloodthirst
+bloodthirster
+bloodthirstier
+bloodthirstiest
+bloodthirstily
+bloodthirstiness
+bloodthirstinesses
+bloodthirsting
+bloodthirsty
+blood-tinctured
+blood-type
+blood-vascular
+blood-vessel
+blood-warm
+bloodweed
+bloodwit
+blood-wite
+bloodwite
+blood-won
+bloodwood
+blood-worm
+bloodworm
+blood-wort
+bloodwort
+bloodworthy
+bloody
+bloody-back
+bloody-bones
+bloodybones
+bloody-eyed
+bloody-faced
+bloody-handed
+bloody-hearted
+bloodying
+bloody-minded
+bloody-mindedness
+bloody-mouthed
+bloody-nosed
+bloody-red
+bloody-sceptered
+bloody-veined
+blooey
+blooie
+Bloom
+bloom
+bloomage
+Bloomburg
+bloom-colored
+Bloomdale
+bloomed
+Bloomer
+bloomer
+Bloomeria
+bloomeries
+bloomerism
+bloomers
+Bloomery
+bloomery
+bloom-fell
+bloomfell
+Bloomfield
+Bloomfieldian
+bloomier
+bloomiest
+blooming
+Bloomingburg
+Bloomingdale
+bloomingly
+bloomingness
+Bloomingrose
+Bloomington
+bloomkin
+bloomless
+blooms
+Bloomsburg
+Bloomsburian
+Bloomsbury
+Bloomsdale
+bloom-shearing
+Bloomville
+bloomy
+bloomy-down
+bloop
+blooped
+blooper
+bloopers
+blooping
+bloops
+blooth
+blore
+blosmy
+Blossburg
+Blossom
+blossom
+blossom-bearing
+blossombill
+blossom-billed
+blossom-bordered
+blossom-crested
+blossomed
+blossom-faced
+blossomhead
+blossom-headed
+blossoming
+blossom-laden
+blossomless
+blossom-nosed
+blossomry
+blossoms
+blossomtime
+blossomy
+Blossvale
+blot
+blotch
+blotched
+blotches
+blotchier
+blotchiest
+blotchily
+blotchiness
+blotching
+blotch-shaped
+blotchy
+blote
+blotless
+blotlessness
+blots
+blotted
+blotter
+blotters
+blottesque
+blottesquely
+blottier
+blottiest
+blotting
+blottingly
+blotto
+blottto
+blotty
+bloubiskop
+Blount
+Blountstown
+Blountsville
+Blountville
+blouse
+bloused
+blouselike
+blouses
+blousier
+blousiest
+blousily
+blousing
+blouson
+blousons
+blousy
+blout
+bloviate
+bloviated
+bloviates
+bloviating
+Blow
+blow
+blow-
+blowback
+blowbacks
+blowball
+blowballs
+blow-bies
+blow-by
+blowby
+blow-by-blow
+blowbys
+blowcase
+blowcock
+blowdown
+blow-dry
+blowed
+blowen
+blower
+blowers
+blower-up
+blowess
+blowfish
+blowfishes
+blowflies
+blow-fly
+blowfly
+blowgun
+blowguns
+blow-hard
+blowhard
+blowhards
+blow-hole
+blowhole
+blowholes
+blowie
+blowier
+blowiest
+blow-in
+blowiness
+blowing
+blowings
+blow-iron
+blowiron
+blowjob
+blowjobs
+blowlamp
+blowline
+blow-molded
+blown
+blown-in-the-bottle
+blown-mold
+blown-molded
+blown-out
+blown-up
+blowoff
+blowoffs
+blowout
+blowouts
+blow-pipe
+blowpipe
+blowpipes
+blowpit
+blowpoint
+blowproof
+blows
+blowse
+blowsed
+blowsier
+blowsiest
+blowsily
+blowspray
+blowsy
+blowth
+blow-through
+blowtorch
+blowtorches
+blowtube
+blowtubes
+blow-up
+blowup
+blowups
+blow-wave
+blowy
+blowze
+blowzed
+blowzier
+blowziest
+blowzily
+blowziness
+blowzing
+blowzy
+Bloxberg
+Bloxom
+Blriot
+BLS
+bls
+BLT
+blub
+blubbed
+blubber
+blubber-cheeked
+blubbered
+blubberer
+blubberers
+blubber-fed
+blubberhead
+blubbering
+blubberingly
+blubberman
+blubberous
+blubbers
+blubbery
+blubbing
+Blucher
+blucher
+bluchers
+bludge
+bludged
+bludgeon
+bludgeoned
+bludgeoneer
+bludgeoner
+bludgeoning
+bludgeons
+bludger
+bludging
+Blue
+blue
+blue-annealed
+blue-aproned
+blueback
+blue-backed
+Blueball
+blueball
+blueballs
+blue-banded
+bluebead
+Bluebeard
+bluebeard
+Bluebeardism
+Bluebell
+bluebell
+bluebelled
+blue-bellied
+bluebells
+blue-belt
+blue-berried
+blueberries
+blueberry
+bluebill
+blue-billed
+bluebills
+blue-bird
+bluebird
+bluebirds
+blue-black
+blueblack
+blue-blackness
+blueblaw
+blue-blind
+blueblood
+blue-blooded
+blue-blossom
+blueblossom
+blue-bloused
+bluebonnet
+bluebonnets
+bluebook
+bluebooks
+blue-bottle
+bluebottle
+bluebottles
+bluebreast
+blue-breasted
+bluebuck
+bluebush
+bluebutton
+blue-cap
+bluecap
+bluecaps
+blue-checked
+blue-cheeked
+blue-chip
+bluecoat
+blue-coated
+bluecoated
+bluecoats
+blue-collar
+blue-colored
+blue-crested
+blue-cross
+bluecup
+blue-curls
+bluecurls
+blued
+blue-devilage
+blue-devilism
+blue-eared
+Blueeye
+blue-eye
+blue-eyed
+blue-faced
+Bluefarb
+Bluefield
+Bluefields
+bluefin
+bluefins
+blue-fish
+bluefish
+bluefishes
+blue-flowered
+blue-footed
+blue-fronted
+bluegill
+bluegills
+blue-glancing
+blue-glimmering
+bluegown
+bluegrass
+blue-gray
+blue-green
+bluegum
+bluegums
+blue-haired
+bluehead
+blue-headed
+blueheads
+bluehearted
+blue-hearts
+bluehearts
+Bluehole
+blue-hot
+blueing
+blueings
+blueish
+bluejack
+bluejacket
+bluejackets
+bluejacks
+Bluejay
+bluejay
+bluejays
+blue-john
+bluejoint
+blue-leaved
+blueleg
+bluelegs
+blueline
+blue-lined
+bluelines
+bluely
+blue-mantled
+blue-molded
+blue-molding
+Bluemont
+blue-mottled
+blue-mouthed
+blueness
+bluenesses
+blue-nose
+bluenose
+blue-nosed
+bluenosed
+Bluenoser
+bluenoses
+blue-pencil
+blue-penciled
+blue-penciling
+blue-pencilled
+blue-pencilling
+bluepoint
+bluepoints
+blueprint
+blueprinted
+blueprinter
+blueprinting
+blueprints
+bluer
+blue-rayed
+blue-red
+blue-ribbon
+blue-ribboner
+blue-ribbonism
+blue-ribbonist
+blue-roan
+blue-rolled
+blues
+blue-sailors
+bluesides
+bluesier
+blue-sighted
+blue-sky
+blue-slate
+bluesman
+bluesmen
+blue-spotted
+bluest
+blue-stained
+blue-starry
+bluestem
+blue-stemmed
+bluestems
+blue-stocking
+bluestocking
+bluestockingish
+bluestockingism
+bluestockings
+bluestone
+bluestoner
+blue-striped
+bluesy
+Bluet
+bluet
+blue-tailed
+blueth
+bluethroat
+blue-throated
+bluetick
+blue-tinted
+bluetit
+bluetongue
+blue-tongued
+bluetop
+bluetops
+bluets
+blue-veined
+blue-washed
+Bluewater
+blue-water
+blue-wattled
+blueweed
+blueweeds
+blue-white
+bluewing
+blue-winged
+bluewood
+bluewoods
+Bluey
+bluey
+blue-yellow
+blue-yellow-blind
+blueys
+bluff
+bluffable
+bluff-bowed
+Bluffdale
+bluffed
+bluffer
+bluffers
+bluffest
+bluff-headed
+bluffing
+bluffly
+bluffness
+Bluffs
+bluffs
+Bluffton
+bluffy
+Bluford
+blufter
+bluggy
+Bluh
+Bluhm
+bluing
+bluings
+bluish
+bluish-green
+bluishness
+bluism
+bluisness
+Blum
+Bluma
+blume
+Blumea
+blumed
+Blumenfeld
+Blumenthal
+blumes
+bluming
+blunder
+Blunderbore
+blunderbuss
+blunderbusses
+blundered
+blunderer
+blunderers
+blunderful
+blunderhead
+blunderheaded
+blunderheadedness
+blundering
+blunderingly
+blunderings
+blunders
+blundersome
+blunge
+blunged
+blunger
+blungers
+blunges
+blunging
+Blunk
+blunk
+blunker
+blunket
+blunks
+blunnen
+Blunt
+blunt
+blunt-angled
+blunted
+blunt-edged
+blunt-ended
+blunter
+bluntest
+blunt-faced
+blunthead
+blunt-headed
+blunthearted
+bluntie
+blunting
+bluntish
+bluntishness
+blunt-leaved
+blunt-lobed
+bluntly
+bluntness
+bluntnesses
+blunt-nosed
+blunt-pointed
+blunts
+blunt-spoken
+blunt-witted
+blup
+blur
+blurb
+blurbed
+blurbing
+blurbist
+blurbs
+blurping
+blurred
+blurredly
+blurredness
+blurrer
+blurrier
+blurriest
+blurrily
+blurriness
+blurring
+blurringly
+blurry
+blurs
+blurt
+blurted
+blurter
+blurters
+blurting
+blurts
+Blus
+blush
+blush-colored
+blush-compelling
+blushed
+blusher
+blushers
+blushes
+blushet
+blush-faced
+blushful
+blushfully
+blushfulness
+blushiness
+blushing
+blushingly
+blushless
+blush-suffused
+blusht
+blush-tinted
+blushwort
+blushy
+bluster
+blusteration
+blustered
+blusterer
+blusterers
+blustering
+blusteringly
+blusterous
+blusterously
+blusters
+blustery
+blutwurst
+BLV
+Blvd
+blvd
+Bly
+Blynn
+blype
+blypes
+Blyth
+Blythe
+Blythedale
+Blytheville
+Blythewood
+B.M.
+BM
+bm
+BMA
+BMarE
+BME
+Bme
+BMEd
+BMet
+BMetE
+BMEWS
+BMG
+BMgtE
+BMI
+BMJ
+BMO
+BMOC
+BMP
+BMR
+BMS
+BMT
+B.Mus.
+BMus
+BMV
+BMW
+BN
+Bn
+Bn.
+bn
+BNC
+BNET
+BNF
+bnf
+BNFL
+BNS
+BNSC
+BNU
+B.O.
+B/O
+B/o
+BO
+Bo
+b.o.
+bo
+boa
+Boabdil
+BOAC
+boa-constrictor
+Boadicea
+Boaedon
+boagane
+Boak
+Boalsburg
+Boanbura
+boanergean
+Boanerges
+boanerges
+boanergism
+boanthropy
+Boar
+boar
+boarcite
+board
+boardable
+board-and-roomer
+board-and-shingle
+boardbill
+boarded
+boarder
+boarders
+boarder-up
+boarding
+boardinghouse
+boardinghouses
+boardings
+boardlike
+boardly
+Boardman
+boardman
+boardmanship
+boardmen
+boardroom
+boards
+board-school
+boardsmanship
+board-wages
+boardwalk
+boardwalks
+boardy
+Boarer
+boar-fish
+boarfish
+boarfishes
+boarhound
+boar-hunting
+boarish
+boarishly
+boarishness
+boars
+boarship
+boarskin
+boarspear
+boarstaff
+boart
+boarts
+boarwood
+Boas
+boas
+boast
+boasted
+boaster
+boasters
+boastful
+boastfully
+boastfulness
+boasting
+boastingly
+boastings
+boastive
+boastless
+boasts
+boat
+boatable
+boatage
+boat-bill
+boatbill
+boatbills
+boatbuilder
+boatbuilding
+boated
+boatel
+boatels
+Boaten
+boater
+boaters
+boatfalls
+boat-fly
+boatful
+boat-green
+boat-handler
+boathead
+boatheader
+boathook
+boathouse
+boathouses
+boatie
+boating
+boatings
+boation
+boatkeeper
+boatless
+boatlike
+boatlip
+boatload
+boatloader
+boatloading
+boatloads
+boat-lowering
+boatly
+boatman
+boatmanship
+boatmaster
+boatmen
+boatowner
+boat-race
+boats
+boatsetter
+boat-shaped
+boatshop
+boatside
+boatsman
+boatsmanship
+boatsmen
+boatsteerer
+boatswain
+boatswains
+boattail
+boat-tailed
+boatward
+boatwise
+boat-woman
+boatwoman
+Boatwright
+boatwright
+boatyard
+boatyards
+Boaz
+Bob
+bob
+boba
+bobac
+bobache
+bobachee
+Bobadil
+bobadil
+Bobadilian
+Bobadilish
+Bobadilism
+Bobadilla
+bobance
+Bobbe
+bobbed
+Bobbee
+bobbejaan
+bobber
+bobberies
+bobbers
+bobbery
+Bobbette
+Bobbi
+Bobbie
+bobbie
+Bobbielee
+bobbies
+bobbin
+bobbiner
+bobbinet
+bobbinets
+bobbing
+Bobbinite
+bobbin-net
+bobbins
+bobbinwork
+bobbish
+bobbishly
+bobble
+bobbled
+bobbles
+bobbling
+Bobby
+bobby
+bobby-dazzler
+Bobbye
+bobby-socker
+bobbysocks
+bobby-soxer
+bobbysoxer
+bobbysoxers
+bobcat
+bobcats
+bob-cherry
+bobcoat
+bobeche
+bobeches
+bobet
+Bobette
+bobflies
+bobfloat
+bobfly
+bob-haired
+bobierrite
+Bobina
+Bobine
+Bobinette
+bobization
+bobjerom
+Bobker
+boblet
+Bo-Bo
+Bobo
+bobo
+Bobo-Dioulasso
+bobol
+bobolink
+bobolinks
+bobooti
+bobotee
+bobotie
+bobowler
+bobs
+Bobseine
+bob-sled
+bobsled
+bobsledded
+bobsledder
+bobsledders
+bobsledding
+bobsleded
+bobsleding
+bobsleds
+bobsleigh
+bobstay
+bobstays
+bobsy-die
+bob-tail
+bobtail
+bobtailed
+bobtailing
+bobtails
+Bobtown
+Bobwhite
+bob-white
+bobwhite
+bobwhites
+bob-wig
+bobwood
+BOC
+boc
+Boca
+boca
+bocaccio
+bocaccios
+bocage
+bocal
+bocardo
+bocasin
+bocasine
+bocca
+Boccaccio
+boccaccio
+boccale
+boccarella
+boccaro
+bocce
+bocces
+Boccherini
+bocci
+boccia
+boccias
+boccie
+boccies
+Boccioni
+boccis
+Bocconia
+bocconia
+boce
+bocedization
+Boche
+boche
+bocher
+boches
+Bochism
+bochism
+Bochum
+bochur
+Bock
+bock
+bockerel
+bockeret
+bockey
+bocking
+bocklogged
+bocks
+Bockstein
+Bocock
+bocoy
+bocstaff
+B.O.D.
+BOD
+bod
+bodach
+bodacious
+bodaciously
+Bodanzky
+Bodb
+bodd-
+boddagh
+boddhisattva
+boddle
+Bode
+bode
+boded
+bodeful
+bodefully
+bodefulness
+Bodega
+bodega
+bodegas
+bodegon
+bodegones
+bodement
+bodements
+boden
+bodenbenderite
+Bodenheim
+Bodensee
+boder
+bodes
+bodewash
+bodeword
+Bodfish
+bodge
+bodger
+bodgery
+bodgie
+bodhi
+Bodhidharma
+bodhisat
+Bodhisattva
+bodhisattva
+bodhisattwa
+Bodi
+bodice
+bodiced
+bodicemaker
+bodicemaking
+bodices
+-bodied
+bodied
+bodier
+bodieron
+bodies
+bodikin
+bodiless
+bodilessness
+bodiliness
+bodilize
+bodily
+bodiment
+Bodine
+boding
+bodingly
+bodings
+bodken
+Bodkin
+bodkin
+bodkins
+bodkinwise
+bodle
+Bodleian
+bodleian
+Bodley
+Bodmin
+Bodnar
+Bodo
+bodock
+Bodoni
+bodoni
+bodonid
+bodrag
+bodrage
+Bodrogi
+bods
+bodstick
+Bodwell
+bodword
+Body
+body
+bodybending
+body-breaking
+body-build
+bodybuild
+bodybuilder
+bodybuilders
+bodybuilding
+body-centered
+body-centred
+bodycheck
+body-guard
+bodyguard
+bodyguards
+bodyhood
+bodying
+body-killing
+bodykins
+bodyless
+body-line
+bodymaker
+bodymaking
+body-mind
+bodyplate
+bodyshirt
+body-snatching
+bodysuit
+bodysuits
+bodysurf
+bodysurfed
+bodysurfer
+bodysurfing
+bodysurfs
+bodywear
+bodyweight
+bodywise
+bodywood
+bodywork
+bodyworks
+boe
+Boebera
+Boece
+Boedromion
+Boedromius
+Boehike
+Boehme
+Boehmenism
+boehmenism
+Boehmenist
+Boehmenite
+Boehmer
+Boehmeria
+Boehmian
+Boehmist
+Boehmite
+boehmite
+boehmites
+Boeing
+boeing
+Boeke
+Boelter
+Boelus
+boeotarch
+Boeotia
+boeotia
+Boeotian
+boeotian
+Boeotic
+Boeotus
+Boer
+boer
+Boerdom
+Boerhavia
+Boerne
+boers
+Boesch
+Boeschen
+Boethian
+Boethius
+Boethusian
+Boetius
+Boettiger
+boettner
+BOF
+Boff
+boff
+Boffa
+boffin
+boffins
+boffo
+boffola
+boffolas
+boffos
+boffs
+Bofors
+bog
+boga
+bogach
+Bogalusa
+Bogan
+bogan
+bogans
+Bogard
+bogard
+Bogarde
+Bogart
+bogart
+Bogata
+bogatyr
+bogbean
+bogbeans
+bogberries
+bogberry
+bog-bred
+bog-down
+boget
+Bogey
+bogey
+bog-eyed
+bogeyed
+bogey-hole
+bogeying
+bogeyman
+bogeymen
+bogeys
+bogfern
+boggard
+boggart
+bogged
+Boggers
+boggier
+boggiest
+boggin
+bogginess
+bogging
+boggish
+boggishness
+boggle
+bogglebo
+boggled
+boggle-dy-botch
+boggler
+bogglers
+boggles
+boggling
+bogglingly
+bogglish
+Boggs
+Boggstown
+boggy
+Boghazkeui
+Boghazkoy
+boghole
+bog-hoose
+Bogie
+bogie
+bogieman
+bogier
+bogies
+Bogijiab
+bogland
+boglander
+bogle
+bogled
+bogledom
+bogles
+boglet
+bogman
+bogmire
+Bogo
+bogo
+Bogoch
+Bogomil
+Bogomile
+Bogomilian
+Bogomilism
+bogong
+Bogor
+Bogosian
+Bogot
+Bogota
+bogota
+bogotana
+bog-rush
+bogs
+bogsucker
+bog-trot
+bogtrot
+bog-trotter
+bogtrotter
+bogtrotting
+Bogue
+bogue
+Boguechitto
+bogued
+boguing
+bogum
+bogus
+Boguslawsky
+bogusness
+Bogusz
+bogway
+bogwood
+bogwoods
+bogwort
+bogy
+bogydom
+bogyism
+bogyisms
+bogyland
+bogyman
+bogymen
+bogys
+boh
+Bohairic
+Bohannon
+Bohaty
+bohawn
+Bohea
+bohea
+boheas
+Bohemia
+bohemia
+Bohemia-Moravia
+Bohemian
+bohemian
+Bohemianism
+bohemianism
+bohemians
+Bohemian-tartar
+bohemias
+bohemium
+bohereen
+Bohi
+bohireen
+Bohlen
+Bohlin
+Bohm
+Bohman
+Bohme
+Bohmerwald
+bohmite
+Bohnenberger
+Bohner
+boho
+Bohol
+Bohon
+bohor
+bohora
+bohorok
+Bohr
+Bohrer
+Bohs
+Bohun
+bohunk
+bohunks
+Bohuslav
+Boiardo
+Boice
+Boiceville
+boid
+Boidae
+Boieldieu
+boiette
+boigid
+Boigie
+boiguacu
+Boii
+Boiko
+boil
+boilable
+boildown
+Boileau
+boiled
+boiler
+boiler-cleaning
+boilerful
+boilerhouse
+boilerless
+boilermaker
+boilermakers
+boilermaking
+boilerman
+boiler-off
+boiler-out
+boilerplate
+boilers
+boilersmith
+boiler-testing
+boiler-washing
+boilerworks
+boilery
+boiling
+boiling-house
+boilinglike
+boilingly
+boil-off
+boiloff
+boiloffs
+boilover
+boils
+boily
+Boiney
+boing
+Bois
+bois-brl
+Boisdarc
+Boise
+boise
+boiserie
+boiseries
+Bois-le-Duc
+boisseau
+boisseaux
+Boissevain
+boist
+boisterous
+boisterously
+boisterousness
+boistous
+boistously
+boistousness
+boite
+boites
+boithrin
+Boito
+Bojardo
+Bojer
+Bojig-ngiji
+bojite
+bojo
+Bok
+bokadam
+bokard
+bokark
+Bokchito
+boke
+Bokeelia
+Bokhara
+Bokharan
+Bokm'
+bokmakierie
+boko
+bokom
+bokos
+Bokoshe
+Bokoto
+Bol
+Bol.
+bol
+bola
+Bolag
+Bolan
+Boland
+Bolanger
+bolar
+bolas
+bolases
+bolbanac
+bolbonac
+Bolboxalis
+Bolckow
+bold
+boldacious
+bold-beating
+bolded
+bolden
+bolder
+Bolderian
+boldest
+bold-face
+boldface
+bold-faced
+boldfaced
+bold-facedly
+boldfacedly
+bold-facedness
+boldfacedness
+boldfaces
+boldfacing
+bold-following
+boldhearted
+boldheartedly
+boldheartedness
+boldin
+boldine
+bolding
+bold-looking
+boldly
+bold-minded
+boldness
+boldnesses
+boldo
+boldoine
+boldos
+bold-spirited
+Boldu
+bole
+bolection
+bolectioned
+boled
+boleite
+Bolelia
+bolelike
+Bolen
+bolero
+boleros
+Boles
+boles
+Boleslaw
+Boletaceae
+boletaceous
+bolete
+boletes
+boleti
+boletic
+Boletus
+boletus
+boletuses
+boleweed
+bolewort
+Boley
+Boleyn
+Bolger
+boliche
+bolide
+bolides
+Boligee
+bolimba
+Bolinas
+Boling
+Bolingbroke
+Bolinger
+bolis
+bolita
+Bolitho
+Bolivar
+bolivar
+bolivares
+bolivarite
+bolivars
+Bolivia
+bolivia
+Bolivian
+bolivian
+boliviano
+bolivianos
+bolivians
+bolivias
+bolk
+Boll
+boll
+Bolland
+Bollandist
+bollandist
+Bollandus
+bollard
+bollards
+Bollay
+bolled
+Bollen
+bollen
+boller
+bollies
+Bolling
+bolling
+Bollinger
+bollito
+bollix
+bollixed
+bollixes
+bollixing
+bollock
+bollocks
+bollox
+bolloxed
+bolloxes
+bolloxing
+bolls
+bollworm
+bollworms
+bolly
+Bolme
+Bolo
+bolo
+boloball
+bolo-bolo
+boloed
+Bologna
+bologna
+Bolognan
+bolognas
+Bologne
+Bolognese
+bolograph
+bolographic
+bolographically
+bolography
+boloing
+Boloism
+boloism
+boloman
+bolomen
+bolometer
+bolometric
+bolometrically
+boloney
+boloneys
+boloroot
+bolos
+Bolshevik
+bolshevik
+Bolsheviki
+Bolshevikian
+Bolshevikism
+Bolsheviks
+bolsheviks
+Bolshevism
+bolshevism
+Bolshevist
+bolshevist
+Bolshevistic
+bolshevistic
+Bolshevistically
+bolshevistically
+bolshevists
+Bolshevization
+Bolshevize
+bolshevize
+Bolshevized
+bolshevized
+Bolshevizing
+bolshevizing
+Bolshie
+bolshie
+Bolshies
+bolshies
+Bolshoi
+Bolshy
+bolshy
+bolson
+bolsons
+bolster
+bolstered
+bolsterer
+bolsterers
+bolstering
+bolsters
+bolsterwork
+Bolt
+bolt
+bolt-action
+boltage
+boltant
+boltcutter
+bolt-cutting
+Bolte
+bolted
+boltel
+Bolten
+bolter
+bolter-down
+bolters
+bolters-down
+bolters-up
+bolter-up
+bolt-forging
+bolt-head
+bolthead
+boltheader
+boltheading
+boltheads
+bolt-hole
+bolthole
+boltholes
+bolti
+boltin
+bolting
+boltings
+boltless
+boltlike
+boltmaker
+boltmaking
+Bolton
+Boltonia
+boltonia
+boltonias
+boltonite
+bolt-pointing
+bolt-rope
+boltrope
+boltropes
+bolts
+bolt-shaped
+boltsmith
+boltspreet
+boltstrake
+bolt-threading
+bolt-turning
+boltuprightness
+boltwork
+bolty
+Boltzmann
+bolus
+boluses
+Bolyai
+Bolyaian
+Bolzano
+BOM
+bom
+Boma
+boma
+Bomarc
+Bomarea
+bomb
+bombable
+Bombacaceae
+bombacaceous
+bombace
+bombard
+bombarde
+bombarded
+bombardelle
+bombarder
+bombardier
+bombardiers
+bombarding
+bombardman
+bombardmen
+bombardment
+bombardments
+bombardo
+bombardon
+bombards
+bombasine
+bombast
+bombaster
+bombastic
+bombastical
+bombastically
+bombasticness
+bombastry
+bombasts
+Bombax
+bombax
+Bombay
+bombay
+bombazeen
+bombazet
+bombazette
+bombazine
+bombe
+bombed
+bomber
+bombernickel
+bombers
+bombes
+bombesin
+bombesins
+bombic
+bombiccite
+Bombidae
+bombilate
+bombilation
+bombilla
+bombillas
+Bombinae
+bombinate
+bombinating
+bombination
+bombing
+bombings
+bomb-ketch
+bomble
+bombline
+bombload
+bombloads
+bombo
+bombola
+bombonne
+bombora
+bombous
+bomb-proof
+bombproof
+bombs
+bomb-shell
+bombshell
+bombshells
+bombsight
+bombsights
+bomb-throwing
+Bombus
+bombus
+bombycid
+Bombycidae
+bombycids
+bombyciform
+Bombycilla
+Bombycillidae
+Bombycina
+bombycine
+bombycinous
+Bombyliidae
+bombylious
+Bombyx
+bombyx
+bombyxes
+BOMFOG
+bomi
+Bomke
+Bomont
+bomos
+Bomoseen
+Bomu
+Bon
+bon
+Bona
+bona
+Bonacci
+bon-accord
+bonace
+bonaci
+bonacis
+Bonadoxin
+bona-fide
+bonagh
+bonaght
+bonailie
+Bonair
+bonair
+Bonaire
+bonaire
+bonairly
+bonairness
+bonally
+bonamano
+bonang
+bonanza
+bonanzas
+Bonaparte
+Bonapartean
+Bonapartism
+bonapartism
+Bonapartist
+bonapartist
+Bonaqua
+Bonar
+bona-roba
+Bonasa
+bonassus
+bonasus
+bonaught
+bonav
+Bonaventura
+Bonaventure
+bonaventure
+Bonaventurism
+Bonaveria
+bonavist
+Bonbo
+bon-bon
+bonbon
+bonbonniere
+bonbonnieres
+bonbons
+Boncarbo
+bonce
+bonchief
+Bond
+bond
+bondable
+bondage
+bondager
+bondages
+bondar
+bonded
+Bondelswarts
+bonder
+bonderize
+bonderman
+bonders
+Bondes
+bondfolk
+bondhold
+bondholder
+bondholders
+bondholding
+Bondie
+bondieuserie
+bonding
+bondings
+bond-land
+bondland
+bondless
+bondmaid
+bondmaids
+bondman
+bondmanship
+bondmen
+bondminder
+bondoc
+Bondon
+bondon
+bonds
+bond-servant
+bondservant
+bondship
+bondslave
+bondsman
+bondsmen
+bondstone
+Bondsville
+bondswoman
+bondswomen
+bonduc
+bonducnut
+bonducs
+Bonduel
+Bondurant
+Bondville
+bondwoman
+bondwomen
+Bondy
+Bone
+bone
+bone-ace
+boneache
+bonebinder
+boneblack
+bonebreaker
+bone-breaking
+bone-bred
+bone-bruising
+bone-carving
+bone-crushing
+boned
+bonedog
+bone-dry
+bonedry
+bone-dryness
+bone-eater
+boneen
+bonefish
+bonefishes
+boneflower
+bone-grinding
+bone-hard
+bonehead
+boneheaded
+boneheadedness
+boneheads
+bone-idle
+bone-lace
+bone-laced
+bone-lazy
+boneless
+bonelessly
+bonelessness
+bonelet
+bonelike
+Bonellia
+bonemeal
+bone-piercing
+boner
+bone-rotting
+boners
+bones
+boneset
+bonesets
+bone-setter
+bonesetter
+bonesetting
+boneshaker
+boneshave
+boneshaw
+Bonesteel
+bonetail
+bonete
+bone-tired
+bonetta
+Boneville
+bone-weary
+bone-white
+bonewood
+bonework
+bone-wort
+bonewort
+Boney
+boney
+boneyard
+boneyards
+Bonfield
+bonfire
+bonfires
+bong
+bongar
+bonged
+bonging
+Bongo
+bongo
+bongoes
+bongoist
+bongoists
+bongos
+bongrace
+bongs
+Bonham
+Bonheur
+bonheur-du-jour
+bonheurs-du-jour
+Bonhoeffer
+bonhomie
+bonhomies
+Bonhomme
+bonhomme
+bonhommie
+bonhomous
+bonhomously
+Boni
+boniata
+bonier
+boniest
+Boniface
+boniface
+bonifaces
+Bonifay
+bonification
+boniform
+bonify
+bonilass
+Bonilla
+Bonina
+Bonine
+boniness
+boninesses
+boning
+Bonington
+boninite
+Bonis
+bonism
+Bonita
+bonita
+bonitarian
+bonitary
+bonitas
+bonito
+bonitoes
+bonitos
+bonity
+bonjour
+bonk
+bonked
+bonkers
+bonking
+bonks
+Bonlee
+Bonn
+Bonnard
+Bonnaz
+bonnaz
+Bonne
+bonne
+Bonneau
+Bonnee
+Bonnell
+Bonner
+Bonnerdale
+bonnering
+Bonnes
+bonnes
+Bonnesbosq
+Bonnet
+bonnet
+bonneted
+bonneter
+Bonneterre
+bonnethead
+bonnet-headed
+bonnetiere
+bonnetieres
+bonneting
+bonnetless
+bonnetlike
+bonnetman
+bonnetmen
+bonnets
+Bonnette
+Bonneville
+Bonney
+Bonni
+bonnibel
+Bonnibelle
+Bonnice
+Bonnie
+bonnie
+bonnier
+bonniest
+Bonnieville
+bonnily
+bonniness
+bonnive
+bonnne
+bonnnes
+bonnock
+bonnocks
+Bonns
+bonnwis
+Bonny
+bonny
+bonny-clabber
+bonnyclabber
+bonnyish
+Bonnyman
+bonnyvis
+Bono
+bono
+Bononcini
+Bononian
+bonorum
+bonos
+Bonpa
+Bonpland
+bons
+bonsai
+Bonsall
+Bonsecour
+bonsela
+bonser
+bonsoir
+bonspell
+bonspells
+bonspiel
+bonspiels
+bontebok
+bonteboks
+bontebuck
+bontebucks
+bontee
+Bontempelli
+bontequagga
+Bontoc
+Bontocs
+Bontok
+Bontoks
+bon-ton
+Bonucci
+bonum
+bonus
+bonuses
+bon-vivant
+Bonwier
+bonxie
+bony
+bonyfish
+bonytail
+bonze
+bonzer
+bonzery
+bonzes
+bonzian
+boo
+boob
+boobed
+boobery
+boobialla
+boobie
+boobies
+boobily
+boobing
+boobish
+boobishness
+booboisie
+boo-boo
+booboo
+boobook
+boo-boos
+booboos
+boobs
+booby
+boobyalla
+boobyish
+boobyism
+booby-trap
+booby-trapped
+booby-trapping
+bood
+boodh
+boodie
+Boodin
+boodle
+boodled
+boodledom
+boodleism
+boodleize
+boodler
+boodlers
+boodles
+boodling
+Boody
+boody
+booed
+boof
+boogaloo
+booger
+boogerman
+boogers
+boogeyman
+boogeymen
+boogie
+boogied
+boogies
+boogie-woogie
+boogiewoogie
+boogum
+boogy
+boogying
+boogyman
+boogymen
+boohoo
+boohooed
+boohooing
+boohoos
+booing
+boojum
+Book
+book
+bookable
+bookbind
+bookbinder
+bookbinderies
+bookbinders
+bookbindery
+bookbinding
+bookboard
+book-case
+bookcase
+bookcases
+book-craft
+bookcraft
+bookdealer
+bookdom
+booked
+bookend
+bookends
+Booker
+booker
+bookers
+bookery
+bookfair
+book-fed
+book-fell
+book-flat
+bookfold
+book-folder
+bookful
+bookfuls
+bookholder
+bookhood
+bookie
+bookies
+bookiness
+booking
+bookings
+bookish
+bookishly
+bookishness
+bookism
+bookit
+bookkeep
+book-keeper
+bookkeeper
+bookkeepers
+book-keeping
+bookkeeping
+bookkeepings
+bookkeeps
+bookland
+book-latin
+booklear
+book-learned
+book-learning
+bookless
+booklet
+booklets
+booklice
+booklift
+booklike
+book-lined
+bookling
+booklists
+book-lore
+booklore
+booklores
+booklouse
+booklover
+book-loving
+book-maker
+bookmaker
+bookmakers
+bookmaking
+bookmakings
+Bookman
+bookman
+bookmark
+bookmarker
+bookmarks
+book-match
+bookmate
+bookmen
+book-minded
+bookmobile
+bookmobiles
+bookmonger
+book-plate
+bookplate
+bookplates
+bookpress
+bookrack
+bookracks
+book-read
+bookrest
+bookrests
+bookroom
+books
+bookseller
+booksellerish
+booksellerism
+booksellers
+bookselling
+book-sewer
+book-sewing
+bookshelf
+bookshelfs
+bookshelves
+bookshop
+bookshops
+bookstack
+bookstall
+bookstand
+book-stealer
+book-stitching
+bookstore
+bookstores
+booksy
+book-taught
+bookward
+bookwards
+book-ways
+bookways
+book-wing
+book-wise
+bookwise
+book-work
+bookwork
+book-worm
+bookworm
+bookworms
+bookwright
+booky
+bool
+Boole
+boolean
+booleans
+booley
+booleys
+Boolian
+boolies
+booly
+boolya
+boom
+Booma
+boomable
+boomage
+boomah
+boom-and-bust
+boomboat
+boombox
+boomboxes
+boomdas
+boomed
+boom-ended
+Boomer
+boomer
+boomerang
+boomeranged
+boomeranging
+boomerangs
+boomers
+boomier
+boomiest
+boominess
+booming
+boomingly
+boomkin
+boomkins
+boomless
+boomlet
+boomlets
+boomorah
+booms
+boomslang
+boomslange
+boomster
+boomtown
+boomtowns
+boomy
+boon
+boondock
+boondocker
+boondocks
+boondoggle
+boondoggled
+boondoggler
+boondogglers
+boondoggles
+boondoggling
+Boone
+Booneville
+boonfellow
+boong
+boongary
+Boonie
+boonies
+boonk
+boonless
+boons
+Boonsboro
+Boonton
+Boonville
+Boony
+Boophilus
+boopic
+boopis
+Boor
+boor
+boordly
+Boorer
+boorga
+boorish
+boorishly
+boorishness
+Boorman
+boors
+boort
+boos
+boose
+boosies
+boost
+boosted
+booster
+boosterism
+boosters
+boosting
+boosts
+boosy
+Boot
+boot
+bootable
+bootblack
+bootblacks
+bootboy
+boot-cleaning
+Boote
+booted
+bootee
+bootees
+booter
+booteries
+bootery
+Bootes
+bootes
+bootful
+Booth
+booth
+boothage
+boot-hale
+boothale
+Boothe
+bootheel
+boother
+boothes
+Boothia
+Boothian
+boothite
+Boothman
+bootholder
+boothose
+booths
+Boothville
+Bootid
+bootie
+bootied
+booties
+bootikin
+bootikins
+booting
+bootjack
+bootjacks
+bootlace
+bootlaces
+Bootle
+bootle
+bootle-blade
+boot-leg
+bootleg
+bootleger
+bootlegged
+bootlegger
+bootleggers
+bootlegging
+bootlegs
+bootless
+bootlessly
+bootlessness
+bootlick
+bootlicked
+bootlicker
+bootlickers
+bootlicking
+bootlicks
+bootloader
+bootmaker
+bootmaking
+bootman
+bootprint
+Boots
+boots
+bootstrap
+bootstrapped
+bootstrapping
+bootstraps
+boottop
+boot-topping
+boottopping
+booty
+bootyless
+Booz
+Booze
+booze
+boozed
+boozehound
+boozer
+boozers
+boozes
+booze-up
+boozier
+booziest
+boozify
+boozily
+booziness
+boozing
+boozy
+Bop
+bop
+Bo-peep
+Bopeep
+bo-peep
+bopeep
+Bophuthatswana
+Bopp
+bopped
+bopper
+boppers
+bopping
+boppist
+bops
+bopster
+bopyrid
+Bopyridae
+bopyridian
+Bopyrus
+BOQ
+Boqueron
+BOR
+Bor
+Bor'
+bor
+bor-
+bor.
+Bora
+bora
+borable
+boraces
+borachio
+boracic
+boraciferous
+boracite
+boracites
+boracium
+boracous
+borage
+borages
+Boraginaceae
+boraginaceous
+boragineous
+Borago
+Borah
+Borak
+borak
+boral
+borals
+Boran
+Borana
+borane
+boranes
+Borani
+boras
+borasca
+borasco
+borasque
+borasqueborate
+Borassus
+borassus
+borate
+borated
+borates
+borating
+borax
+boraxes
+borazon
+borazons
+Borboridae
+Borborus
+borborygm
+borborygmatic
+borborygmi
+borborygmic
+borborygmies
+borborygmus
+Borchers
+Borchert
+Bord
+bord
+Borda
+bordage
+bord-and-pillar
+bordar
+bordarius
+Bordeaux
+bordeaux
+bordel
+Bordelais
+Bordelaise
+bordelaise
+bordello
+bordellos
+Bordelonville
+bordels
+Borden
+Bordentown
+Border
+border
+bordereau
+bordereaux
+bordered
+borderer
+borderers
+Borderies
+bordering
+borderings
+borderism
+border-land
+borderland
+borderlander
+borderlands
+borderless
+borderlight
+borderline
+borderlines
+bordermark
+borders
+Borderside
+Bordet
+Bordie
+Bordiuk
+bord-land
+bord-lode
+bordman
+bordrag
+bordrage
+bordroom
+Bordulac
+bordun
+bordure
+bordured
+bordures
+Bordy
+Bore
+bore
+boreable
+boread
+Boreadae
+Boreades
+Boreal
+boreal
+Borealis
+borealis
+borean
+Boreas
+boreas
+borecole
+borecoles
+bored
+boredness
+boredom
+boredoms
+boree
+boreen
+boreens
+boregat
+borehole
+boreholes
+Boreiad
+boreism
+Borek
+Borel
+borel
+borele
+Borer
+borer
+borers
+Bores
+bores
+boresight
+boresome
+boresomely
+boresomeness
+Boreum
+Boreus
+Borg
+borg
+Borger
+Borgerhout
+Borges
+Borgeson
+borgh
+borghalpenny
+Borghese
+borghi
+Borghild
+Borgholm
+Borgia
+Borglum
+borh
+Bori
+bori
+boric
+borickite
+borid
+boride
+borides
+borine
+Boring
+boring
+boringly
+boringness
+borings
+Borinqueno
+Boris
+borish
+Borislav
+borism
+borith
+borities
+bority
+borize
+Bork
+Borlase
+borlase
+borley
+Borlow
+Borman
+Born
+born
+bornan
+bornane
+borne
+Bornean
+Borneo
+borneo
+borneol
+borneols
+Bornholm
+Bornie
+borning
+bornite
+bornites
+bornitic
+Bornstein
+Bornu
+bornyl
+Boro
+boro
+boro-
+Borocaine
+borocalcite
+borocarbide
+borocitrate
+Borodankov
+Borodin
+Borodino
+borofluohydric
+borofluoric
+borofluoride
+borofluorin
+boroglycerate
+boroglyceride
+boroglycerine
+borohydride
+borolanite
+boron
+boronatrocalcite
+Borongan
+Boronia
+boronia
+boronic
+borons
+borophenol
+borophenylic
+Bororo
+Bororoan
+borosalicylate
+borosalicylic
+borosilicate
+borosilicic
+Borotno
+borotungstate
+borotungstic
+borough
+Borough-english
+borough-English
+borough-english
+borough-holder
+boroughlet
+borough-man
+borough-master
+boroughmaster
+boroughmonger
+boroughmongering
+boroughmongery
+borough-reeve
+boroughs
+boroughship
+borough-town
+boroughwide
+borowolframic
+borracha
+borrachio
+Borras
+borrasca
+borrel
+Borrelia
+borrelia
+Borrell
+Borrelomycetaceae
+Borreri
+Borreria
+Borrichia
+Borries
+Borroff
+Borromean
+Borromini
+Borroughs
+Borrovian
+Borrow
+borrow
+borrowable
+borrowed
+borrower
+borrowers
+borrowing
+borrows
+Bors
+bors
+Borsalino
+borsch
+borsches
+borscht
+borschts
+borsholder
+borsht
+borshts
+borstal
+borstall
+borstals
+Borszcz
+bort
+Bortman
+borts
+bortsch
+borty
+Bortz
+bortz
+bortzes
+Boru
+Boruca
+Borup
+Borussian
+borwort
+boryl
+Borzicactus
+borzoi
+borzois
+BOS
+Bos
+bos
+Bosanquet
+Bosc
+boscage
+boscages
+Bosch
+bosch
+boschbok
+boschboks
+Boschneger
+boschvark
+boschveld
+Boscobel
+Boscovich
+Bose
+bose
+Boselaphus
+Boser
+boser
+bosey
+bosh
+Boshas
+boshbok
+boshboks
+bosher
+boshes
+boshvark
+boshvarks
+BOSIX
+Bosjesman
+bosjesman
+bosk
+boskage
+boskages
+bosker
+bosket
+boskets
+boskier
+boskiest
+boskiness
+Boskop
+boskopoid
+bosks
+bosky
+Bosler
+bo's'n
+bos'n
+bosn
+Bosnia
+Bosniac
+Bosniak
+Bosnian
+Bosnisch
+bosom
+bosom-breathing
+bosom-deep
+bosomed
+bosomer
+bosom-felt
+bosom-folded
+bosominess
+bosoming
+bosoms
+bosom-stricken
+bosomy
+boson
+Bosone
+bosonic
+bosons
+Bosphorus
+Bosporan
+Bosporanic
+Bosporian
+Bosporus
+bosporus
+Bosque
+bosque
+bosques
+bosquet
+bosquets
+BOSS
+boss
+bossa
+bossage
+bossboy
+bossdom
+bossdoms
+bossed
+bosselated
+bosselation
+bosser
+bosses
+bosset
+boss-eyed
+bosseyed
+bossier
+bossies
+bossiest
+bossily
+bossiness
+bossing
+bossism
+bossisms
+bosslet
+Bosson
+bossship
+Bossuet
+bossy
+bostal
+bostangi
+bostanji
+bosthoon
+Bostic
+Boston
+boston
+Bostonese
+Bostonian
+bostonian
+bostonians
+bostonite
+bostons
+Bostow
+bostrychid
+Bostrychidae
+bostrychoid
+bostrychoidal
+bostryx
+Bostwick
+bosun
+bosuns
+Boswall
+Boswell
+boswell
+Boswellia
+Boswellian
+boswellian
+Boswelliana
+Boswellism
+boswellism
+Boswellize
+boswellize
+boswellized
+boswellizing
+Bosworth
+BOT
+BoT
+bot
+bot.
+bota
+botan
+botanic
+botanica
+botanical
+botanically
+botanicas
+botanics
+botanies
+botanise
+botanised
+botaniser
+botanises
+botanising
+botanist
+botanists
+botanize
+botanized
+botanizer
+botanizes
+botanizing
+botano-
+botanomancy
+botanophile
+botanophilist
+botany
+botargo
+botargos
+botas
+Botaurinae
+Botaurus
+botch
+botched
+botchedly
+botched-up
+botcher
+botcheries
+botcherly
+botchers
+botchery
+botches
+botchier
+botchiest
+botchily
+botchiness
+botching
+botchka
+botchwork
+botchy
+bote
+Botein
+botel
+boteler
+botella
+botels
+boterol
+boteroll
+Botes
+botete
+botflies
+botfly
+both
+Botha
+Bothe
+Bothell
+bother
+botheration
+bothered
+botherer
+botherheaded
+bothering
+botherment
+bothers
+bothersome
+bothersomely
+bothersomeness
+both-handed
+both-handedness
+both-hands
+bothie
+bothies
+bothlike
+Bothnia
+Bothnian
+Bothnic
+bothrenchyma
+bothria
+bothridia
+bothridium
+bothridiums
+Bothriocephalus
+Bothriocidaris
+Bothriolepis
+bothriolepis
+bothrium
+bothriums
+Bothrodendron
+bothroi
+bothropic
+Bothrops
+bothros
+bothsided
+bothsidedness
+boththridia
+bothway
+Bothwell
+bothy
+boti
+Botkin
+Botkins
+botling
+Botnick
+Botocudo
+botone
+botonee
+botong
+botonn
+botonnee
+botonny
+botony
+botoyan
+bo-tree
+botry
+Botrychium
+botrycymose
+Botrydium
+botrylle
+Botryllidae
+Botryllus
+botryogen
+botryoid
+botryoidal
+botryoidally
+botryolite
+Botryomyces
+botryomycoma
+botryomycosis
+botryomycotic
+Botryopteriaceae
+botryopterid
+Botryopteris
+botryose
+botryotherapy
+Botrytis
+botrytis
+botrytises
+bots
+Botsares
+Botsford
+Botswana
+botswana
+bott
+Bottali
+botte
+bottega
+bottegas
+botteghe
+bottekin
+Bottger
+Botti
+Botticelli
+botticelli
+Botticellian
+bottier
+bottine
+Bottineau
+bottle
+bottle-bellied
+bottlebird
+bottle-blowing
+bottle-brush
+bottlebrush
+bottle-butted
+bottle-capping
+bottle-carrying
+bottle-cleaning
+bottle-corking
+bottled
+bottle-fed
+bottle-feed
+bottle-filling
+bottleflower
+bottleful
+bottlefuls
+bottle-green
+bottle-head
+bottlehead
+bottle-holder
+bottleholder
+bottlelike
+bottlemaker
+bottlemaking
+bottleman
+bottleneck
+bottlenecks
+bottlenest
+bottle-nose
+bottlenose
+bottle-nosed
+bottle-o
+bottler
+bottle-rinsing
+bottlers
+bottles
+bottlesful
+bottle-shaped
+bottle-soaking
+bottle-sterilizing
+bottlestone
+bottle-tailed
+bottle-tight
+bottle-washer
+bottle-washing
+bottling
+bottom
+bottomchrome
+bottomed
+bottomer
+bottomers
+bottoming
+bottomland
+bottomless
+bottomlessly
+bottomlessness
+bottommost
+bottomried
+bottomries
+bottomry
+bottomrying
+bottoms
+bottom-set
+bottonhook
+Bottrop
+botts
+bottstick
+bottu
+botuliform
+botulin
+botulinal
+botulins
+botulinum
+botulinus
+botulinuses
+botulism
+botulisms
+botulismus
+Botvinnik
+Botzow
+Bouak
+Bouake
+Bouar
+boubas
+boubou
+boubous
+boucan
+bouch
+bouchal
+bouchaleen
+Bouchard
+boucharde
+Bouche
+bouche
+bouchee
+bouchees
+Boucher
+boucher
+boucherism
+boucherize
+Bouches-du-Rh
+bouchette
+Bouchier
+bouchon
+bouchons
+Boucicault
+Bouckville
+boucl
+boucle
+boucles
+boud
+bouderie
+boudeuse
+Boudicca
+boudin
+boudoir
+boudoiresque
+boudoirs
+Boudreaux
+bouet
+Boufarik
+bouffage
+bouffancy
+bouffant
+bouffante
+bouffants
+bouffe
+bouffes
+bouffon
+Bougainvillaea
+bougainvillaea
+bougainvillaeas
+Bougainville
+Bougainvillea
+bougainvillea
+Bougainvillia
+Bougainvilliidae
+bougar
+bouge
+bougee
+bougeron
+bouget
+Bough
+bough
+boughed
+boughless
+bough-pot
+boughpot
+boughpots
+boughs
+bought
+boughten
+boughy
+bougie
+bougies
+Bouguer
+Bouguereau
+bouillabaisse
+bouilli
+bouillon
+bouillone
+bouillons
+bouk
+boukit
+boul
+Boulanger
+boulanger
+boulangerite
+Boulangism
+Boulangist
+Boulder
+boulder
+bouldered
+boulderhead
+bouldering
+boulders
+boulder-stone
+boulder-strewn
+bouldery
+Bouldon
+Boule
+boule
+Boule-de-suif
+boules
+bouleuteria
+bouleuterion
+boulevard
+boulevardier
+boulevardiers
+boulevardize
+boulevards
+bouleverse
+bouleversement
+boulework
+Bouley
+Boulez
+boulimia
+boulimy
+boulle
+boulles
+boullework
+Boulogne
+Boulogne-Billancourt
+Boulogne-sur-Mer
+Boulogne-sur-Seine
+Boult
+boult
+boultel
+boultell
+boulter
+boulterer
+Boumdienne
+boun
+bounce
+bounceable
+bounceably
+bounceback
+bounced
+bouncer
+bouncers
+bounces
+bouncier
+bounciest
+bouncily
+bounciness
+bouncing
+bouncingly
+bouncy
+Bound
+bound
+boundable
+boundaries
+boundary
+boundary-marking
+Boundbrook
+bounded
+boundedly
+boundedness
+bounden
+bounder
+bounderish
+bounderishly
+bounders
+bounding
+boundingly
+boundless
+boundlessly
+boundlessness
+boundlessnesses
+boundly
+boundness
+Bounds
+bounds
+boundure
+bounteous
+bounteously
+bounteousness
+bountied
+bounties
+Bountiful
+bountiful
+bountifully
+bountifulness
+bountihead
+bountiousness
+bountith
+bountree
+Bounty
+bounty
+bounty-fed
+bountyless
+Bouphonia
+bouquet
+bouquetiere
+bouquetin
+bouquets
+bouquiniste
+bour
+bourage
+bourasque
+Bourbaki
+Bourbon
+bourbon
+Bourbonesque
+Bourbonian
+Bourbonic
+Bourbonism
+bourbonism
+Bourbonist
+bourbonize
+Bourbonnais
+bourbons
+bourd
+bourder
+bourdis
+bourdon
+bourdons
+bourette
+Bourg
+bourg
+bourgade
+Bourgeois
+bourgeois
+bourgeoise
+bourgeoises
+bourgeoisie
+bourgeoisies
+bourgeoisify
+bourgeoisitic
+bourgeon
+bourgeoned
+bourgeoning
+bourgeons
+Bourges
+Bourget
+Bourgogne
+bourgs
+Bourguiba
+bourguignonne
+Bourignian
+Bourignianism
+Bourignianist
+Bourignonism
+Bourignonist
+Bourke
+bourkha
+bourlaw
+Bourn
+bourn
+Bourne
+bourne
+Bournemouth
+bournes
+Bourneville
+bournless
+bournonite
+bournous
+bourns
+bourock
+Bourout
+Bourque
+bourr
+bourran
+bourrasque
+bourre
+bourreau
+bourree
+bourrees
+bourrelet
+bourride
+bourrides
+Bourse
+bourse
+bourses
+Boursin
+bourtree
+bourtrees
+Bouse
+bouse
+boused
+bouser
+bouses
+bousing
+bousouki
+bousoukia
+bousoukis
+Boussingault
+Boussingaultia
+boussingaultite
+boustrophedon
+boustrophedonic
+bousy
+bout
+boutade
+boutefeu
+boutel
+boutell
+Bouteloua
+bouteria
+bouteselle
+boutique
+boutiques
+Boutis
+bouto
+Bouton
+bouton
+boutonniere
+boutonnieres
+boutons
+boutre
+bouts
+bouts-rimes
+Boutte
+Boutwell
+boutylka
+Bouvard
+Bouvardia
+bouvardia
+bouvier
+bouviers
+Bouvines
+bouw
+bouzouki
+bouzoukia
+bouzoukis
+Bouzoun
+Bovard
+bovarism
+bovarist
+bovaristic
+bovarysm
+bovate
+Bove
+bove
+bovenland
+Bovensmilde
+Bovet
+Bovey
+bovey
+Bovgazk
+bovicide
+boviculture
+bovid
+Bovidae
+bovids
+boviform
+Bovill
+Bovina
+bovine
+bovinely
+bovines
+bovinities
+bovinity
+Bovista
+bovld
+bovoid
+bovovaccination
+bovovaccine
+Bovril
+bovver
+Bow
+bow
+bowable
+bow-back
+bowback
+bow-backed
+bow-beaked
+bow-bearer
+Bow-bell
+bow-bell
+Bowbells
+bowbells
+bow-bending
+bowbent
+bowboy
+bow-compass
+Bowden
+bowden
+Bowdichia
+Bowditch
+bowditch
+Bowdle
+bowdlerisation
+bowdlerise
+bowdlerised
+bowdlerising
+bowdlerism
+bowdlerization
+bowdlerizations
+bowdlerize
+bowdlerized
+bowdlerizer
+bowdlerizes
+bowdlerizing
+Bowdoin
+Bowdoinham
+Bowdon
+bow-draught
+bowdrill
+bow-dye
+bow-dyer
+Bowe
+bowe
+bowed
+bowed-down
+bowedness
+bowel
+boweled
+boweling
+Bowell
+bowelled
+bowelless
+bowellike
+bowelling
+bowels
+Bowen
+bowenite
+Bower
+bower
+bower-bird
+bowerbird
+bowered
+boweries
+bowering
+bowerlet
+bowerlike
+bowerly
+bowermaiden
+Bowerman
+bowermay
+Bowers
+bowers
+Bowerston
+Bowersville
+bowerwoman
+Bowery
+bowery
+Boweryish
+Bowes
+bowess
+bowet
+bowfin
+bowfins
+bowfront
+bowge
+bowgrace
+bow-hand
+bowhead
+bowheads
+bow-houghd
+Bowie
+bowie
+bowieful
+bowie-knife
+bowing
+bowingly
+bowings
+bow-iron
+bowk
+bowkail
+bowker
+bowknot
+bowknots
+bowl
+bowla
+bowlder
+bowlderhead
+bowldering
+bowlders
+bowldery
+Bowlds
+bowle
+bowled
+bowleg
+bow-legged
+bowlegged
+bowleggedness
+Bowlegs
+bowlegs
+Bowler
+bowler
+bowlers
+Bowles
+bowles
+bow-less
+bowless
+bowlful
+bowlfuls
+bowlike
+bowlin
+bowline
+bowlines
+bowling
+bowlings
+bowllike
+bowlmaker
+bowls
+bowl-shaped
+Bowlus
+bowly
+bowmaker
+bowmaking
+Bowman
+bowman
+Bowmansdale
+Bowmanstown
+Bowmansville
+bowmen
+bown
+Bowne
+bowne
+bow-necked
+bow-net
+bowpin
+bowpot
+bowpots
+Bowra
+Bowrah
+bowralite
+Bowring
+bows
+bowsaw
+bowse
+bowsed
+bowser
+bowsery
+bowses
+bow-shaped
+bowshot
+bowshots
+bowsie
+bowsing
+bowsman
+bowsprit
+bowsprits
+bowssen
+bowstaff
+bowstave
+bow-street
+bow-string
+bowstring
+bowstringed
+bowstringing
+bowstrings
+bowstrung
+bowtel
+bowtell
+bowtie
+bow-window
+bow-windowed
+bowwoman
+bowwood
+bowwort
+bow-wow
+bowwow
+bowwowed
+bowwows
+bowyang
+bowyangs
+Bowyer
+bowyer
+bowyers
+Box
+box
+boxball
+boxberries
+boxberry
+boxboard
+boxboards
+box-bordered
+box-branding
+boxbush
+box-calf
+boxcar
+boxcars
+box-cleating
+box-covering
+boxed
+box-edged
+boxed-in
+Boxelder
+boxen
+Boxer
+boxer
+Boxerism
+boxer-off
+boxers
+boxer-up
+boxes
+boxfish
+boxfishes
+Boxford
+boxful
+boxfuls
+box-haul
+boxhaul
+boxhauled
+boxhauling
+boxhauls
+boxhead
+boxholder
+Boxholm
+boxiana
+boxier
+boxiest
+boxiness
+boxinesses
+boxing
+boxing-day
+boxing-in
+boxings
+boxkeeper
+box-leaved
+boxlike
+box-locking
+boxmaker
+boxmaking
+boxman
+box-nailing
+box-office
+box-plaited
+boxroom
+box-shaped
+box-strapping
+boxthorn
+boxthorns
+boxtop
+boxtops
+box-tree
+boxtree
+box-trimming
+box-turning
+boxty
+boxwallah
+boxwood
+boxwoods
+boxwork
+boxy
+Boy
+boy
+boyang
+boyar
+boyard
+boyardism
+boyardom
+boyards
+boyarism
+boyarisms
+boyars
+boyau
+boyaus
+boyaux
+Boyce
+Boyceville
+Boycey
+boychick
+boychicks
+boychik
+boychiks
+Boycie
+boycott
+boycottage
+boycotted
+boycotter
+boycotting
+boycottism
+boycotts
+Boyd
+boydekyn
+Boyden
+boydom
+Boyds
+Boydton
+Boyer
+boyer
+Boyers
+Boyertown
+Boyes
+boyfriend
+boyfriends
+boyg
+boyhood
+boyhoods
+boyish
+boyishly
+boyishness
+boyishnesses
+boyism
+Boykin
+Boykins
+boyla
+Boylan
+boylas
+Boyle
+boylike
+boylikeness
+Boylston
+boy-meets-girl
+Boyne
+Boynton
+boyo
+boyology
+boyos
+Boys
+boys
+Boyse
+boysenberries
+boysenberry
+boyship
+Boystown
+Boyt
+boyuna
+Boz
+boza
+bozal
+Bozcaada
+Bozeman
+Bozen
+bozine
+Bozman
+bozo
+Bozoo
+bozos
+Bozovich
+Bozrah
+Bozuwa
+Bozzaris
+bozze
+bozzetto
+B.P.
+B/P
+BP
+b.p.
+bp
+bp.
+BPA
+BPC
+BPDPA
+BPE
+BPetE
+BPH
+BPh
+BPharm
+B.Phil.
+BPhil
+BPI
+bpi
+BPOC
+BPOE
+BPPS
+BPS
+bps
+BPSS
+bpt
+B/R
+BR
+Br
+Br.
+br
+br.
+Bra
+bra
+Braasch
+braata
+brab
+brabagious
+Brabancon
+Brabant
+brabant
+Brabanter
+Brabantine
+Brabazon
+brabble
+brabbled
+brabblement
+brabbler
+brabblers
+brabbles
+brabbling
+brabblingly
+Brabejum
+Braca
+braca
+bracae
+braccae
+braccate
+Bracci
+braccia
+bracciale
+braccianite
+braccio
+Brace
+brace
+braced
+bracelet
+braceleted
+bracelets
+bracer
+bracero
+braceros
+bracers
+bracery
+braces
+Braceville
+Bracey
+brach
+brache
+Brachelytra
+brachelytrous
+bracherer
+brachering
+braches
+brachet
+brachets
+brachia
+brachial
+brachialgia
+brachialis
+brachials
+Brachiata
+brachiate
+brachiated
+brachiating
+brachiation
+brachiator
+brachiferous
+brachigerous
+Brachinus
+brachio-
+brachio-cephalic
+brachiocephalic
+brachiocrural
+brachiocubital
+brachiocyllosis
+brachiofacial
+brachiofaciolingual
+brachioganoid
+Brachioganoidei
+brachiolaria
+brachiolarian
+brachiopod
+Brachiopoda
+brachiopode
+brachiopodist
+brachiopodous
+brachioradial
+brachioradialis
+brachiorrhachidian
+brachiorrheuma
+brachiosaur
+Brachiosaurus
+brachiosaurus
+brachiostrophosis
+brachiotomy
+brachisto-
+brachistocephali
+brachistocephalic
+brachistocephalous
+brachistocephaly
+brachistochrone
+brachistochronic
+brachistochronous
+brachium
+brachman
+brachs
+brachtmema
+brachy-
+brachyaxis
+brachycardia
+brachycatalectic
+brachycephal
+brachycephales
+brachycephali
+brachycephalic
+brachycephalies
+brachycephalism
+brachycephalization
+brachycephalize
+brachycephalous
+brachycephaly
+Brachycera
+brachyceral
+brachyceric
+brachycerous
+brachychronic
+brachycnemic
+Brachycome
+brachycranial
+brachycranic
+brachycrany
+brachydactyl
+brachydactylia
+brachydactylic
+brachydactylism
+brachydactylous
+brachydactyly
+brachydiagonal
+brachydodrome
+brachydodromous
+brachydomal
+brachydomatic
+brachydome
+brachydont
+brachydontism
+brachyfacial
+brachyglossal
+brachygnathia
+brachygnathism
+brachygnathous
+brachygrapher
+brachygraphic
+brachygraphical
+brachygraphy
+brachyhieric
+brachylogies
+brachylogy
+brachymetropia
+brachymetropic
+Brachyoura
+brachyphalangia
+Brachyphyllum
+brachypinacoid
+brachypinacoidal
+brachypleural
+brachypnea
+brachypodine
+brachypodous
+brachyprism
+brachyprosopic
+brachypterous
+brachypyramid
+brachyrrhinia
+brachysclereid
+brachyskelic
+brachysm
+brachystaphylic
+Brachystegia
+brachystochrone
+Brachystomata
+brachystomatous
+brachystomous
+brachytic
+brachytmema
+brachytypous
+Brachyura
+brachyural
+brachyuran
+brachyuranic
+brachyure
+brachyurous
+Brachyurus
+bracing
+bracingly
+bracingness
+bracings
+braciola
+braciolas
+braciole
+bracioles
+brack
+brackebuschite
+bracked
+Brackely
+bracken
+brackened
+Brackenridge
+brackens
+bracker
+bracket
+bracketed
+bracketing
+brackets
+Brackett
+bracketted
+Brackettville
+bracketwise
+bracking
+brackish
+brackishness
+brackmard
+Bracknell
+Brackney
+bracky
+Bracon
+braconid
+Braconidae
+braconids
+braconniere
+bracozzo
+bract
+bractea
+bracteal
+bracteate
+bracted
+bracteiform
+bracteolate
+bracteole
+bracteose
+bractless
+bractlet
+bractlets
+bracts
+Brad
+brad
+Bradan
+bradawl
+bradawls
+Bradbury
+Bradburya
+bradded
+bradding
+Braddock
+Braddyville
+Brade
+Braden
+bradenhead
+Bradenton
+Bradenville
+Bradeord
+Brader
+Bradford
+Bradfordsville
+Bradlee
+Bradleianism
+Bradleigh
+Bradley
+Bradleyville
+Bradly
+bradmaker
+Bradman
+Bradner
+Bradney
+bradoon
+bradoons
+brads
+Bradshaw
+Bradski
+bradsot
+Bradstreet
+Bradway
+Bradwell
+Brady
+brady-
+bradyacousia
+bradyauxesis
+bradyauxetic
+bradyauxetically
+bradycardia
+bradycardic
+bradycauma
+bradycinesia
+bradycrotic
+bradydactylia
+bradyesthesia
+bradyglossia
+bradykinesia
+bradykinesis
+bradykinetic
+bradykinin
+bradylalia
+bradylexia
+bradylogia
+bradynosus
+bradypepsia
+bradypepsy
+bradypeptic
+bradyphagia
+bradyphasia
+bradyphemia
+bradyphrasia
+bradyphrenia
+bradypnea
+bradypnoea
+bradypod
+bradypode
+Bradypodidae
+bradypodoid
+Bradypus
+bradyseism
+bradyseismal
+bradyseismic
+bradyseismical
+bradyseismism
+bradyspermatism
+bradysphygmia
+bradystalsis
+bradyteleocinesia
+bradyteleokinesis
+bradytelic
+bradytely
+bradytocia
+bradytrophic
+bradyuria
+Bradyville
+brae
+braeface
+braehead
+braeman
+braes
+braeside
+Braeunig
+Brag
+brag
+Braga
+bragas
+Bragdon
+Brage
+brager
+Bragg
+braggadocian
+braggadocianism
+Braggadocio
+braggadocio
+braggadocios
+braggardism
+braggart
+braggartism
+braggartly
+braggartry
+braggarts
+braggat
+bragged
+bragger
+braggers
+braggery
+braggest
+bragget
+braggier
+braggiest
+bragging
+braggingly
+braggish
+braggishly
+braggite
+braggle
+Braggs
+braggy
+Bragi
+bragi
+bragite
+bragless
+bragly
+bragozzo
+brags
+braguette
+bragwort
+Braham
+Brahe
+Brahear
+Brahm
+brahm
+Brahma
+brahma
+brahmachari
+Brahmahood
+Brahmaic
+Brahmajnana
+Brahmaloka
+Brahman
+brahman
+Brahmana
+Brahmanaspati
+Brahmanda
+Brahmanee
+Brahmaness
+Brahmanhood
+Brahmani
+Brahmanic
+Brahmanical
+Brahmanis
+Brahmanism
+brahmanism
+Brahmanist
+brahmanist
+Brahmanistic
+brahmanists
+Brahmanize
+Brahmans
+brahmans
+Brahmany
+brahmapootra
+Brahmaputra
+brahmas
+Brahmi
+Brahmic
+brahmic
+Brahmin
+brahmin
+brahminee
+Brahminic
+Brahminical
+Brahminism
+brahminism
+Brahminist
+brahminist
+brahminists
+Brahmins
+brahmins
+brahmism
+Brahmoism
+Brahms
+brahms
+Brahmsian
+Brahmsite
+Brahui
+braid
+braided
+braider
+braiders
+braiding
+braidings
+Braidism
+braidism
+Braidist
+braids
+Braidwood
+braies
+brail
+Braila
+brailed
+brailing
+Braille
+braille
+Brailled
+brailled
+brailler
+brailles
+Braillewriter
+braillewriter
+Brailling
+brailling
+Braillist
+Brailowsky
+brails
+brain
+brainache
+Brainard
+Brainardsville
+brain-begot
+brain-born
+brain-breaking
+brain-bred
+braincap
+braincase
+brain-child
+brainchild
+brainchildren
+brain-cracked
+braincraft
+brain-crazed
+brain-crumpled
+brain-damaged
+brained
+brainer
+Brainerd
+brainfag
+brain-fevered
+brain-fretting
+brainge
+brainier
+brainiest
+brainily
+braininess
+braining
+brain-injured
+brainish
+brainless
+brainlessly
+brainlessness
+brainlike
+brainpan
+brainpans
+brainpower
+brain-purging
+brains
+brainsick
+brainsickly
+brainsickness
+brain-smoking
+brain-spattering
+brain-spun
+brainstem
+brainstems
+brainstone
+brainstorm
+brainstormer
+brainstorming
+brainstorms
+brain-strong
+brain-teaser
+brainteaser
+brainteasers
+brain-tire
+Braintree
+brain-trust
+brainward
+brain-wash
+brainwash
+brainwashed
+brainwasher
+brainwashers
+brainwashes
+brain-washing
+brainwashing
+brainwashjng
+brainwater
+brainwave
+brainwood
+brainwork
+brainworker
+brainy
+braird
+brairded
+brairding
+braireau
+brairo
+braise
+braised
+braises
+braising
+Braithwaite
+braize
+braizes
+brake
+brakeage
+brakeages
+braked
+brakehand
+brakehead
+brakeless
+brakeload
+brakemaker
+brakemaking
+brakeman
+brakemen
+braker
+brakeroot
+brakes
+brakesman
+brakesmen
+brake-testing
+brake-van
+brakie
+brakier
+brakiest
+braking
+Brakpan
+braky
+Brale
+braless
+Bram
+Bramah
+bramah
+Braman
+Bramante
+Bramantesque
+Bramantip
+bramantip
+bramble
+brambleberries
+brambleberry
+bramblebush
+brambled
+brambles
+bramblier
+brambliest
+brambling
+brambly
+brambrack
+brame
+Bramia
+Bramley
+Bramwell
+Bran
+bran
+Brana
+Branca
+brancard
+brancardier
+-branch
+Branch
+branch
+branchage
+branch-bearing
+branch-building
+branch-charmed
+branch-climber
+Branchdale
+branched
+branchedness
+Branchellion
+branch-embellished
+brancher
+branchery
+branches
+branchful
+branchi
+branchia
+branchiae
+branchial
+Branchiata
+branchiate
+branchicolous
+branchier
+branchiest
+branchiferous
+branchiform
+branchihyal
+branchiness
+branching
+branchings
+branchio-
+Branchiobdella
+branchiocardiac
+branchiogenous
+branchiomere
+branchiomeric
+branchiomerism
+branchiopallial
+branchiopneustic
+branchiopod
+Branchiopoda
+branchiopodan
+branchiopodous
+branchiopoo
+Branchiopulmonata
+branchiopulmonate
+branchiosaur
+Branchiosauria
+branchiosaurian
+Branchiosaurus
+branchiostegal
+branchiostegan
+branchiostege
+Branchiostegidae
+branchiostegite
+branchiostegous
+Branchiostoma
+branchiostomid
+Branchiostomidae
+branchiostomous
+Branchipodidae
+Branchipus
+branchireme
+Branchiura
+branchiurous
+Branchland
+branchless
+branchlet
+branchlike
+branchling
+branchman
+Branchport
+branch-rent
+branchstand
+branch-strewn
+Branchton
+Branchus
+Branchville
+branchway
+branchy
+Brancusi
+Brand
+brand
+brandade
+Brandais
+Brandamore
+Brande
+Brandea
+branded
+bran-deer
+Brandeis
+Branden
+Brandenburg
+Brandenburger
+brandenburgh
+brandenburgs
+Brander
+brander
+brandering
+branders
+Brandes
+brand-goose
+Brandi
+Brandice
+Brandie
+brandied
+brandies
+brandify
+branding
+brandiron
+Brandise
+brandise
+brandish
+brandished
+brandisher
+brandishers
+brandishes
+brandishing
+brandisite
+brandle
+brandless
+brandling
+brand-mark
+brand-new
+brand-newness
+Brando
+Brandon
+brandon
+Brandonville
+brandreth
+brandrith
+brands
+brandsolder
+Brandsville
+Brandt
+Brandtr
+Brandwein
+Brandy
+brandy
+brandyball
+brandy-bottle
+brandy-burnt
+brandy-faced
+brandying
+brandyman
+Brandyn
+brandy-pawnee
+Brandywine
+brandywine
+Branen
+Branford
+Branger
+brangle
+brangled
+branglement
+brangler
+brangling
+Brangus
+Branguses
+Branham
+branial
+Braniff
+brank
+brankie
+brankier
+brankiest
+brank-new
+branks
+brank-ursine
+brankursine
+branky
+branle
+branles
+branned
+branner
+brannerite
+branners
+bran-new
+brannier
+branniest
+brannigan
+branniness
+branning
+Brannon
+branny
+Brans
+brans
+Branscum
+Bransford
+bransle
+bransles
+bransolder
+Branson
+Branstock
+Brant
+brant
+Branta
+brantail
+brantails
+brantcorn
+Brantford
+brant-fox
+Branting
+Brantingham
+brantle
+Brantley
+brantness
+brants
+Brantsford
+Brantwood
+branular
+Branwen
+Braque
+braquemard
+brarow
+bras
+Brasca
+bras-dessus-bras-dessous
+Braselton
+brasen
+Brasenia
+brasero
+braseros
+brash
+Brashear
+brasher
+brashes
+brashest
+brashier
+brashiest
+brashiness
+brashly
+brashness
+brashy
+Brasia
+brasier
+brasiers
+Brasil
+brasil
+brasilein
+brasilete
+brasiletto
+Brasilia
+brasilia
+brasilin
+brasilins
+brasils
+Brasov
+brasque
+brasqued
+brasquing
+Brass
+brass
+brassage
+brassages
+brassard
+brassards
+brass-armed
+brassart
+brassarts
+brassate
+Brassavola
+brass-bold
+brassbound
+brassbounder
+brass-browed
+brass-cheeked
+brass-colored
+brasse
+brassed
+brasser
+brasserie
+brasseries
+brasses
+brasset
+brassey
+brass-eyed
+brasseys
+brass-finishing
+brass-fitted
+brass-footed
+brass-fronted
+brass-handled
+brass-headed
+brass-hilted
+brass-hooved
+Brassia
+brassic
+Brassica
+brassica
+Brassicaceae
+brassicaceous
+brassicas
+brassidic
+brassie
+brassier
+brassiere
+brassieres
+brassies
+brassiest
+brassily
+brassiness
+brassing
+brassish
+brasslike
+brass-lined
+brass-melting
+brass-mounted
+Brasso
+brass-plated
+brass-renting
+brass-shapen
+brass-smith
+brass-tipped
+Brasstown
+brass-visaged
+brassware
+brasswork
+brassworker
+brass-working
+brassworks
+brassy
+brassylic
+brast
+Braswell
+BRAT
+brat
+bratchet
+Brathwaite
+Bratianu
+bratina
+Bratislava
+bratling
+brats
+bratstva
+bratstvo
+brattach
+Brattain
+brattice
+bratticed
+bratticer
+brattices
+bratticing
+brattie
+brattier
+brattiest
+brattiness
+brattish
+brattishing
+brattle
+Brattleboro
+brattled
+brattles
+brattling
+Bratton
+bratty
+Bratwurst
+bratwurst
+Brauhaus
+Brauhauser
+braula
+Braun
+brauna
+Brauneberger
+Brauneria
+Braunfels
+braunite
+braunites
+Braunschweig
+Braunschweiger
+braunschweiger
+Braunstein
+Brauronia
+Brauronian
+Brause
+Brautlied
+Brava
+brava
+bravade
+bravado
+bravadoed
+bravadoes
+bravadoing
+bravadoism
+bravados
+Bravar
+bravas
+brave
+braved
+bravehearted
+brave-horsed
+brave-looking
+bravely
+brave-minded
+braveness
+braver
+braveries
+bravers
+bravery
+braves
+brave-sensed
+brave-showing
+brave-souled
+brave-spirited
+brave-spiritedness
+bravest
+bravi
+Bravin
+braving
+bravish
+bravissimo
+bravo
+bravoed
+bravoes
+bravoing
+bravoite
+bravos
+bravura
+bravuraish
+bravuras
+bravure
+braw
+brawer
+brawest
+brawl
+brawled
+brawler
+brawlers
+Brawley
+brawlie
+brawlier
+brawliest
+brawling
+brawlingly
+brawlis
+brawls
+brawlsome
+brawly
+brawlys
+brawn
+brawned
+brawnedness
+Brawner
+brawner
+brawnier
+brawniest
+brawnily
+brawniness
+brawns
+brawny
+braws
+braxies
+Braxton
+braxy
+Bray
+bray
+braye
+brayed
+brayer
+brayera
+brayerin
+brayers
+brayette
+braying
+Brayley
+Braymer
+Braynard
+brays
+braystone
+Brayton
+Braz
+Braz.
+braza
+brazas
+braze
+Brazeau
+brazed
+Brazee
+brazee
+braze-jointed
+brazen
+brazen-barking
+brazen-browed
+brazen-clawed
+brazen-colored
+brazened
+brazen-face
+brazenface
+brazen-faced
+brazenfaced
+brazen-facedly
+brazenfacedly
+brazenfacedness
+brazen-fisted
+brazen-floored
+brazen-footed
+brazen-fronted
+brazen-gated
+brazen-headed
+brazen-hilted
+brazen-hoofed
+brazen-imaged
+brazening
+brazen-leaved
+brazen-lunged
+brazenly
+brazen-mailed
+brazen-mouthed
+brazenness
+brazennesses
+brazen-pointed
+brazens
+brazer
+brazera
+brazers
+brazes
+brazier
+braziers
+braziery
+Brazil
+brazil
+brazilein
+brazilette
+braziletto
+Brazilian
+brazilian
+brazilianite
+brazilians
+brazilin
+brazilins
+brazilite
+Brazil-nut
+brazils
+brazilwood
+brazing
+Brazoria
+Brazos
+Brazzaville
+BRC
+BRCA
+B.R.C.S.
+BRCS
+BRE
+Bre
+Brea
+breach
+breached
+breacher
+breachers
+breaches
+breachful
+breaching
+breachy
+bread
+bread-and-butter
+bread-baking
+bread-basket
+breadbasket
+breadbaskets
+breadberry
+breadboard
+breadboards
+breadbox
+breadboxes
+bread-corn
+bread-crumb
+bread-crumbing
+bread-cutting
+breadearner
+breadearning
+bread-eating
+breaded
+breaden
+bread-faced
+bread-fruit
+breadfruit
+breadfruits
+breading
+breadless
+breadlessness
+breadline
+bread-liner
+breadmaker
+breadmaking
+breadman
+breadness
+breadnut
+breadnuts
+breadroot
+breads
+breadseller
+bread-stitch
+breadstitch
+bread-stuff
+breadstuff
+breadstuffs
+breadth
+breadthen
+breadthless
+breadthriders
+breadths
+breadthways
+breadthwise
+bread-tree
+bread-winner
+breadwinner
+breadwinners
+breadwinning
+bread-wrapping
+breaghe
+break
+break-
+breakability
+breakable
+breakableness
+breakables
+breakably
+breakage
+breakages
+breakaway
+breakax
+breakaxe
+break-back
+breakback
+breakbone
+breakbones
+break-circuit
+break-down
+breakdown
+breakdowns
+breaker
+breaker-down
+breakerman
+breakermen
+breaker-off
+breakers
+breaker-up
+break-even
+breakfast
+breakfasted
+breakfaster
+breakfasters
+breakfasting
+breakfastless
+breakfasts
+break-front
+breakfront
+breakfronts
+break-in
+breaking
+breaking-in
+breakings
+breakless
+breaklist
+break-neck
+breakneck
+break-off
+breakoff
+breakout
+breakouts
+breakover
+breakpoint
+breakpoints
+break-promise
+Breaks
+breaks
+breakshugh
+breakstone
+break-through
+breakthrough
+breakthroughes
+breakthroughs
+break-up
+breakup
+breakups
+breakwater
+breakwaters
+breakweather
+breakwind
+Bream
+bream
+breamed
+breaming
+breams
+Breana
+Breanne
+Brear
+breards
+breast
+breastband
+breast-beam
+breastbeam
+breast-beater
+breast-beating
+breast-board
+breastbone
+breastbones
+breast-deep
+Breasted
+breasted
+breaster
+breastfast
+breast-fed
+breast-feed
+breast-feeding
+breastfeeding
+breastful
+breastheight
+breast-high
+breast-hook
+breasthook
+breastie
+breasting
+breastless
+breastmark
+breastpiece
+breastpin
+breast-plate
+breastplate
+breastplates
+breast-plough
+breastplough
+breastplow
+breastrail
+breast-rending
+breastrope
+breasts
+breaststroke
+breaststroker
+breaststrokes
+breastsummer
+breastweed
+breast-wheel
+breastwise
+breastwood
+breastwork
+breastworks
+breath
+breathability
+breathable
+breathableness
+breathalyse
+Breathalyzer
+breath-bereaving
+breath-blown
+breathe
+breatheableness
+breathed
+breather
+breathers
+breathes
+breathful
+breath-giving
+breathier
+breathiest
+breathily
+breathiness
+breathing
+breathingly
+Breathitt
+breathless
+breathlessly
+breathlessness
+breaths
+breathseller
+breath-stopping
+breath-sucking
+breath-tainted
+breath-taking
+breathtaking
+breathtakingly
+breathy
+breba
+Breban
+Brebner
+breccia
+breccial
+breccias
+brecciate
+brecciated
+brecciating
+brecciation
+brecham
+brechams
+brechan
+brechans
+Brecher
+Brechites
+Brecht
+brecht
+Brechtel
+brechtian
+brecia
+breck
+brecken
+Breckenridge
+Breckinridge
+Brecknockshire
+Brecksville
+Brecon
+Breconshire
+Bred
+bred
+Breda
+bredbergite
+brede
+bredes
+bredestitch
+bredi
+bred-in-the-bone
+bredstitch
+Bree
+bree
+Breech
+breech
+breechblock
+breechcloth
+breechcloths
+breechclout
+breeched
+breeches
+breechesflower
+breechesless
+breeching
+breechless
+breech-loader
+breechloader
+breech-loading
+breechloading
+Breed
+breed
+breedable
+breedbate
+Breeden
+breeder
+breeders
+breediness
+Breeding
+breeding
+breedings
+breedling
+breeds
+Breedsville
+breedy
+breek
+breekless
+breeks
+breekums
+Breen
+Breena
+breenge
+breenger
+brees
+Breese
+Breesport
+Breeze
+breeze
+breeze-borne
+breezed
+breeze-fanned
+breezeful
+breezeless
+breeze-lifted
+breezelike
+breezes
+breeze-shaken
+breeze-swept
+breezeway
+breezeways
+Breezewood
+breeze-wooing
+breezier
+breeziest
+breezily
+breeziness
+breezing
+breezy
+Bregenz
+Breger
+bregma
+bregmata
+bregmate
+bregmatic
+brehon
+brehonia
+brehonship
+brei
+Breinigsville
+breird
+Breislak
+breislakite
+Breithablik
+breithauptite
+brekkle
+brekky
+brelan
+brelaw
+Brelje
+breloque
+brember
+Bremble
+breme
+bremely
+Bremen
+bremeness
+Bremer
+Bremerhaven
+Bremerton
+Bremia
+Bremond
+Bremser
+bremsstrahlung
+Bren
+bren
+Brena
+Brenan
+Brenda
+Brendan
+brended
+Brendel
+Brenden
+brendice
+Brendin
+Brendis
+Brendon
+Brengun
+Brenham
+Brenk
+Brenn
+Brenna
+brennage
+Brennan
+Brennen
+Brenner
+Brennschluss
+brennschluss
+brens
+Brent
+brent
+Brentano
+Brentford
+Brenthis
+brent-new
+Brenton
+brents
+Brentt
+Brentwood
+Brenza
+brephic
+brepho-
+br'er
+brerd
+brere
+Bres
+Brescia
+Brescian
+Bresee
+Breshkovsky
+Breskin
+Breslau
+Bress
+bressomer
+Bresson
+bressummer
+Brest
+brest
+Bret
+bret
+Bretagne
+bretelle
+bretesse
+bret-full
+breth
+brethel
+brethren
+brethrenism
+Breton
+breton
+Bretonian
+bretons
+Bretschneideraceae
+Brett
+brett
+Bretta
+brettice
+Bretwalda
+bretwalda
+Bretwaldadom
+Bretwaldaship
+Bretz
+breu-
+Breuer
+Breugel
+Breughel
+breunnerite
+brev
+breva
+Brevard
+breve
+breves
+brevet
+brevetcies
+brevetcy
+brevete
+breveted
+breveting
+brevets
+brevetted
+brevetting
+brevi
+brevi-
+breviaries
+breviary
+breviate
+breviature
+brevicauda
+brevicaudate
+brevicipitid
+Brevicipitidae
+brevicomis
+breviconic
+brevier
+breviers
+brevifoliate
+breviger
+brevilingual
+breviloquence
+breviloquent
+breviped
+brevipen
+brevipennate
+breviradiate
+brevirostral
+brevirostrate
+Brevirostrines
+brevis
+brevit
+brevities
+brevity
+Brew
+brew
+brewage
+brewages
+brewed
+Brewer
+brewer
+breweries
+brewers
+brewership
+Brewerton
+brewery
+brewhouse
+brewhouses
+brewing
+brewings
+brewis
+brewises
+brewmaster
+brews
+brewst
+Brewster
+brewster
+brewsterite
+Brewton
+Brey
+brey
+Brezhnev
+brezhnev
+Brezin
+BRG
+BRI
+Bria
+Brian
+brian
+Briana
+Briand
+Brianhead
+Brianna
+Brianne
+Briano
+Briant
+briar
+briarberry
+Briard
+briard
+briards
+Briarean
+briared
+Briareus
+briareus
+briar-hopper
+briarroot
+briars
+briarwood
+briary
+bribability
+bribable
+bribe
+bribeability
+bribeable
+bribed
+bribe-devouring
+bribee
+bribees
+bribe-free
+bribegiver
+bribegiving
+bribeless
+bribemonger
+briber
+briberies
+bribers
+bribery
+bribes
+bribetaker
+bribetaking
+bribeworthy
+bribing
+Bribri
+bric-a-brac
+bric-a-brackery
+Brice
+Bricelyn
+Briceville
+brichen
+brichette
+Brick
+brick
+brick-barred
+brickbat
+brickbats
+brickbatted
+brickbatting
+brick-bound
+brick-building
+brick-built
+brick-burning
+brick-colored
+brickcroft
+brick-cutting
+brick-drying
+brick-dust
+brick-earth
+bricked
+brickel
+bricken
+Bricker
+bricker
+Brickeys
+brick-field
+brickfield
+brickfielder
+brick-fronted
+brick-grinding
+brick-hemmed
+brickhood
+brickier
+brickiest
+bricking
+brickish
+brick-kiln
+brickkiln
+bricklay
+bricklayer
+bricklayers
+bricklaying
+bricklayings
+brickle
+brickleness
+brickles
+bricklike
+brickliner
+bricklining
+brickly
+brickmaker
+brickmaking
+brickmason
+brick-nogged
+brick-paved
+brick-red
+brickred
+bricks
+brickset
+bricksetter
+brick-testing
+bricktimber
+bricktop
+brickwall
+brick-walled
+brickwise
+brickwork
+bricky
+brickyard
+bricole
+bricoles
+brid
+bridal
+bridale
+bridaler
+bridally
+bridals
+bridalty
+Bridalveil
+Bride
+bride
+bride-ale
+bridebed
+bridebowl
+bridecake
+bridechamber
+bride-cup
+bridecup
+bridegod
+bridegroom
+bridegrooms
+bridegroomship
+bridehead
+bridehood
+bridehouse
+brideknot
+bride-lace
+bridelace
+brideless
+bridelike
+bridelope
+bridely
+bridemaid
+bridemaiden
+bridemaidship
+brideman
+brides
+brideship
+bridesmaid
+bridesmaiding
+bridesmaids
+bridesman
+bridesmen
+bridestake
+bride-to-be
+bridewain
+brideweed
+bridewell
+bridewort
+Bridey
+Bridge
+bridge
+bridgeable
+bridgeables
+bridgeboard
+bridgebote
+bridgebuilder
+bridgebuilding
+bridged
+Bridgehampton
+bridgehead
+bridgeheads
+bridge-house
+bridgekeeper
+Bridgeland
+bridgeless
+bridgelike
+bridgemaker
+bridgemaking
+bridgeman
+bridgemaster
+bridgemen
+Bridgeport
+bridgeport
+bridgepot
+Bridger
+bridger
+Bridges
+bridges
+Bridget
+bridgetin
+Bridgeton
+Bridgetown
+bridgetree
+Bridgette
+Bridgeville
+bridgewall
+bridgeward
+bridgewards
+Bridgewater
+bridgewater
+bridgeway
+bridgework
+Bridgid
+bridging
+bridgings
+Bridgman
+Bridgton
+Bridgwater
+Bridie
+bridie
+bridle
+bridled
+bridleless
+bridleman
+bridler
+bridlers
+bridles
+bridle-wise
+bridlewise
+bridling
+bridoon
+bridoons
+Bridport
+Bridwell
+Brie
+brie
+BRIEF
+brief
+briefcase
+briefcases
+briefed
+briefer
+briefers
+briefest
+briefing
+briefings
+briefless
+brieflessly
+brieflessness
+briefly
+briefness
+briefnesses
+briefs
+Brielle
+Brien
+Brier
+brier
+brierberry
+briered
+Brierfield
+brierroot
+briers
+brierwood
+briery
+bries
+Brieta
+Brietta
+Brieux
+brieve
+Brig
+Brig.
+brig
+brigade
+brigaded
+brigades
+brigadier
+brigadiers
+brigadiership
+brigading
+brigalow
+brigand
+brigandage
+brigander
+brigandine
+brigandish
+brigandishly
+brigandism
+brigands
+Brigantes
+Brigantia
+Brigantine
+brigantine
+brigantinebrigantines
+brigantines
+brigatry
+brigbote
+Brigette
+brigetty
+Brigg
+Briggs
+Briggsdale
+Briggsian
+Briggsville
+Brigham
+Brighella
+Brighid
+Brighouse
+Bright
+bright
+bright-bloomed
+bright-cheeked
+bright-colored
+bright-dyed
+brighten
+brightened
+brightener
+brighteners
+brightening
+brightens
+brighter
+brightest
+bright-eyed
+Brighteyes
+brighteyes
+bright-faced
+bright-featured
+bright-field
+bright-flaming
+bright-haired
+bright-headed
+bright-hued
+brightish
+bright-leaved
+brightly
+Brightman
+bright-minded
+brightness
+brightnesses
+Brighton
+bright-robed
+brights
+brightsmith
+brightsome
+brightsomeness
+bright-spotted
+bright-striped
+bright-studded
+bright-tinted
+Brightwaters
+bright-witted
+Brightwood
+brightwork
+Brigid
+Brigida
+Brigit
+Brigitta
+Brigitte
+Brigittine
+brigous
+brig-rigged
+brigs
+brigsail
+brigue
+brigued
+briguer
+briguing
+Brihaspati
+brike
+Brill
+brill
+brillante
+Brillat-Savarin
+brilliance
+brilliances
+brilliancies
+brilliancy
+brilliandeer
+Brilliant
+brilliant
+brilliant-cut
+brilliantine
+brilliantined
+brilliantly
+brilliantness
+brilliants
+brilliantwise
+brilliolette
+Brillion
+brillolette
+Brillouin
+brills
+brim
+brimborion
+brimborium
+Brimfield
+brimful
+brimfull
+brimfullness
+brimfully
+brimfulness
+Brimhall
+briming
+brimless
+Brimley
+brimly
+brimmed
+brimmer
+brimmered
+brimmering
+brimmers
+brimmimg
+brimming
+brimmingly
+Brimo
+brims
+brimse
+Brimson
+brimstone
+brimstones
+brimstonewort
+brimstony
+brin
+Brina
+brince
+brinded
+Brindell
+Brindisi
+brindisi
+Brindle
+brindle
+brindled
+brindles
+brindlish
+Brine
+brine
+brine-bound
+brine-cooler
+brine-cooling
+brined
+brine-dripping
+brinehouse
+brineless
+brineman
+brine-pumping
+briner
+briners
+brines
+brine-soaked
+Briney
+Bring
+bring
+bringal
+bringall
+bringdown
+bringed
+bringela
+bringer
+bringers
+bringer-up
+bringeth
+Bringhurst
+bringing
+bringing-up
+brings
+bringsel
+brinie
+brinier
+brinies
+briniest
+brininess
+brininesses
+brining
+brinish
+brinishness
+brinjal
+brinjaree
+brinjarries
+brinjarry
+brinjaul
+Brinje
+Brink
+brink
+Brinkema
+brinkless
+Brinkley
+Brinklow
+brinkmanship
+brinks
+brinksmanship
+Brinktown
+Brinn
+Brinna
+Brinnon
+brinny
+brins
+brinsell
+Brinsmade
+Brinson
+brinston
+Briny
+briny
+brio
+brioche
+brioches
+briolet
+briolette
+briolettes
+Brion
+Brioni
+brionies
+brionine
+briony
+brios
+Brioschi
+brique
+briquet
+briquets
+briquette
+briquetted
+briquettes
+briquetting
+bris
+brisa
+brisance
+brisances
+brisant
+Brisbane
+brisbane
+Brisbin
+Briscoe
+briscola
+brise
+Briseis
+briseis
+brisement
+brises
+brise-soleil
+Briseus
+Brisingamen
+brisk
+brisked
+brisken
+briskened
+briskening
+brisker
+briskest
+brisket
+briskets
+brisking
+briskish
+briskly
+briskness
+brisknesses
+brisks
+brisky
+brisling
+brislings
+brisque
+briss
+brisses
+Brissotin
+Brissotine
+brist
+bristle
+bristlebird
+bristlecone
+bristled
+bristle-faced
+bristle-grass
+bristleless
+bristlelike
+bristlemouth
+bristlemouths
+bristle-pointed
+bristler
+bristles
+bristle-stalked
+bristletail
+bristle-tailed
+bristle-thighed
+bristle-toothed
+bristlewort
+bristlier
+bristliest
+bristliness
+bristling
+bristly
+Bristo
+Bristol
+bristol
+bristols
+Bristolville
+Bristow
+brisure
+Brit
+Brit.
+brit
+Brita
+Britain
+britain
+Britannia
+britannia
+Britannian
+Britannic
+britannic
+Britannica
+britannica
+Britannically
+Britannicus
+britany
+britchel
+britches
+britchka
+brite
+Brith
+brith
+brither
+Briticism
+briticism
+British
+british
+Britisher
+britisher
+britishers
+Britishhood
+Britishism
+British-israel
+Britishly
+Britishness
+Britney
+Britni
+Brito-icelandic
+Britomartis
+Briton
+briton
+Britoness
+britons
+brits
+britska
+britskas
+Britt
+britt
+Britta
+Brittain
+Brittan
+Brittaney
+Brittani
+Brittany
+Britte
+Britten
+britten
+Britteny
+brittle
+brittlebush
+brittled
+brittlely
+brittleness
+brittler
+brittles
+brittlest
+brittle-star
+brittlestem
+brittlewood
+brittlewort
+brittling
+brittly
+Brittne
+Brittnee
+Brittney
+Brittni
+Britton
+Brittonic
+brittonic
+britts
+britzka
+britzkas
+britzska
+britzskas
+Brix
+Brixey
+Briza
+briza
+Brize
+Brizo
+brizz
+BRL
+brl
+BRM
+BRN
+Brnaba
+Brnaby
+Brno
+Bro
+bro
+broach
+broached
+broacher
+broachers
+broaches
+broaching
+Broad
+broad
+broadacre
+Broadalbin
+broad-arrow
+broadax
+broad-axe
+broadaxe
+broadaxes
+broad-backed
+broadband
+broad-based
+broad-beamed
+Broadbent
+broadbill
+broad-billed
+broad-bladed
+broad-blown
+broad-bodied
+broad-bosomed
+broad-bottomed
+broad-boughed
+broad-bowed
+broad-breasted
+Broadbrim
+broad-brim
+broadbrim
+broad-brimmed
+Broadbrook
+broad-built
+broadcast
+broadcasted
+broadcaster
+broadcasters
+broadcasting
+broadcastings
+broadcasts
+broad-chested
+broad-chinned
+broadcloth
+broadcloths
+broad-crested
+Broaddus
+broad-eared
+broaden
+broadened
+broadener
+broadeners
+broadening
+broadenings
+broadens
+broader
+broadest
+broad-eyed
+broad-faced
+broad-flapped
+Broadford
+broad-fronted
+broad-gage
+broadgage
+broad-gaged
+broad-gauge
+broad-gauged
+broad-guage
+broad-handed
+broadhead
+broad-headed
+broadhearted
+broad-hoofed
+broadhorn
+broad-horned
+broadish
+broad-jump
+Broadlands
+Broadleaf
+broadleaf
+broad-leafed
+broad-leaved
+broadleaves
+broad-limbed
+broadling
+broadlings
+broad-lipped
+broad-listed
+broadloom
+broadlooms
+broadly
+broad-margined
+broad-minded
+broad-mindedly
+broadmindedly
+broad-mindedness
+Broadmoor
+broadmouth
+broad-mouthed
+broadness
+broadnesses
+broad-nosed
+broad-piece
+broadpiece
+broad-ribbed
+broad-roomed
+Broadrun
+Broads
+broads
+broad-set
+broadshare
+broadsheet
+broad-shouldered
+broadside
+broadsided
+broadsider
+broadsides
+broadsiding
+broad-skirted
+broad-souled
+broad-spectrum
+broad-spoken
+broadspread
+broad-spreading
+broad-sterned
+broad-striped
+broadsword
+broadswords
+broadtail
+broad-tailed
+broad-thighed
+broadthroat
+broad-tired
+broad-toed
+broad-toothed
+Broadus
+Broadview
+Broadwater
+Broadway
+broadway
+broad-wayed
+Broadwayite
+broadways
+Broadwell
+broad-wheeled
+broadwife
+broad-winged
+broadwise
+broadwives
+brob
+Brobdingnag
+brobdingnag
+Brobdingnagian
+brobdingnagian
+Broca
+brocade
+brocaded
+brocades
+brocading
+brocage
+brocard
+brocardic
+brocatel
+brocatelle
+brocatello
+brocatels
+Broccio
+broccoli
+broccolis
+broch
+brochan
+brochant
+brochantite
+broche
+brochette
+brochettes
+brochidodromous
+brocho
+brochophony
+brocht
+brochure
+brochures
+Brock
+brock
+brockage
+brockages
+brocked
+Brocken
+Brocket
+brocket
+brockets
+brock-faced
+Brockie
+brockish
+brockle
+Brocklin
+Brockport
+brocks
+Brockton
+Brockway
+Brockwell
+Brocky
+brocoli
+brocolis
+Brocton
+Brod
+brod
+brodder
+Broddie
+broddle
+Broddy
+brodee
+brodeglass
+Brodehurst
+brodekin
+Brodench
+brodequin
+Broder
+broderer
+Broderic
+Broderick
+broderie
+Brodeur
+Brodhead
+Brodheadsville
+Brodiaea
+Brodie
+brodie
+Brodnax
+Brodsky
+Brody
+brodyaga
+brodyagi
+broeboe
+Broeder
+Broederbond
+Broek
+Broeker
+brog
+Brogan
+brogan
+brogans
+brogger
+broggerite
+broggle
+brogh
+Brogle
+Broglie
+Brogue
+brogue
+brogued
+brogueful
+brogueneer
+broguer
+brogueries
+broguery
+brogues
+broguing
+broguish
+Brohard
+Brohman
+broid
+Broida
+broiden
+broider
+broidered
+broiderer
+broideress
+broideries
+broidering
+broiders
+broidery
+broigne
+broil
+broiled
+broiler
+broilers
+broilery
+broiling
+broilingly
+broils
+Brok
+brokage
+brokages
+Brokaw
+broke
+broken
+broken-arched
+broken-backed
+broken-bellied
+Brokenbow
+broken-check
+broken-down
+broken-ended
+broken-footed
+broken-fortuned
+broken-handed
+broken-headed
+broken-hearted
+brokenhearted
+broken-heartedly
+brokenheartedly
+broken-heartedness
+brokenheartedness
+broken-hipped
+broken-hoofed
+broken-in
+broken-kneed
+broken-legged
+brokenly
+broken-minded
+broken-mouthed
+brokenness
+broken-nosed
+broken-paced
+broken-record
+broken-shanked
+broken-spirited
+broken-winded
+broken-winged
+broker
+brokerage
+brokerages
+brokered
+brokeress
+brokerly
+brokers
+brokership
+brokery
+brokes
+broking
+broletti
+broletto
+brolga
+broll
+brollies
+brolly
+brolly-hop
+Brom
+brom-
+broma
+bromacetanilide
+bromacetate
+bromacetic
+bromacetone
+bromal
+bromalbumin
+bromals
+bromamide
+bromargyrite
+bromate
+bromated
+bromates
+bromating
+bromatium
+bromatology
+bromaurate
+bromauric
+brombenzamide
+brombenzene
+brombenzyl
+Bromberg
+bromcamphor
+bromcresol
+Brome
+brome
+bromegrass
+bromeigon
+Bromeikon
+bromeikon
+Bromelia
+Bromeliaceae
+bromeliaceous
+bromeliad
+bromelin
+bromelins
+bromellite
+bromeosin
+bromes
+bromethyl
+bromethylene
+Bromfield
+bromgelatin
+bromhidrosis
+bromhydrate
+bromhydric
+Bromian
+bromic
+bromid
+bromide
+bromides
+bromidic
+bromidically
+bromidrosiphobia
+bromidrosis
+bromids
+bromin
+brominate
+brominated
+brominating
+bromination
+bromindigo
+bromine
+bromines
+brominism
+brominize
+bromins
+bromiodide
+Bromios
+bromisation
+bromise
+bromised
+bromising
+bromism
+bromisms
+bromite
+Bromius
+bromization
+bromize
+bromized
+bromizer
+bromizes
+bromizing
+Bromleigh
+Bromley
+bromlite
+bromo
+bromo-
+bromoacetone
+bromoaurate
+bromoaurates
+bromoauric
+bromobenzene
+bromobenzyl
+bromocamphor
+bromochloromethane
+bromochlorophenol
+bromocresol
+bromocyanid
+bromocyanidation
+bromocyanide
+bromocyanogen
+bromodeoxyuridine
+bromoethylene
+bromoform
+bromogelatin
+bromohydrate
+bromohydrin
+bromoil
+bromoiodid
+bromoiodide
+bromoiodism
+bromoiodized
+bromoketone
+bromol
+bromomania
+bromomenorrhea
+bromomethane
+bromometric
+bromometrical
+bromometrically
+bromometry
+bromonaphthalene
+bromophenol
+bromopicrin
+bromopikrin
+bromopnea
+bromoprotein
+bromos
+bromothymol
+bromouracil
+bromous
+bromphenol
+brompicrin
+Bromsgrove
+bromthymol
+bromuret
+Bromus
+bromvoel
+bromvogel
+bromyrite
+Bron
+Bronaugh
+bronc
+bronch-
+bronchadenitis
+bronchi
+bronchia
+bronchial
+bronchially
+bronchiarctia
+bronchiectasis
+bronchiectatic
+bronchiloquy
+bronchio-
+bronchiocele
+bronchiocrisis
+bronchiogenic
+bronchiolar
+bronchiole
+bronchioles
+bronchioli
+bronchiolitis
+bronchiolus
+bronchiospasm
+bronchiostenosis
+bronchitic
+bronchitis
+bronchium
+broncho
+broncho-
+bronchoadenitis
+bronchoalveolar
+bronchoaspergillosis
+bronchoblennorrhea
+bronchobuster
+bronchocavernous
+bronchocele
+bronchocephalitis
+bronchoconstriction
+bronchoconstrictor
+bronchodilatation
+bronchodilator
+bronchoegophony
+bronchoesophagoscopy
+bronchogenic
+bronchographic
+bronchography
+bronchohemorrhagia
+broncholemmitis
+broncholith
+broncholithiasis
+bronchomotor
+bronchomucormycosis
+bronchomycosis
+bronchopathy
+bronchophonic
+bronchophony
+bronchophthisis
+bronchoplasty
+bronchoplegia
+bronchopleurisy
+bronchopneumonia
+bronchopneumonic
+bronchopulmonary
+bronchorrhagia
+bronchorrhaphy
+bronchorrhea
+bronchos
+bronchoscope
+bronchoscopic
+bronchoscopically
+bronchoscopist
+Bronchoscopy
+bronchoscopy
+bronchospasm
+bronchostenosis
+bronchostomies
+bronchostomy
+bronchotetany
+bronchotome
+bronchotomist
+bronchotomy
+bronchotracheal
+bronchotyphoid
+bronchotyphus
+bronchovesicular
+bronchus
+bronco
+broncobuster
+broncobusters
+broncobusting
+broncos
+broncs
+Bronder
+Bronez
+brongniardite
+Bronislaw
+Bronk
+bronk
+Bronnie
+Bronny
+Bronson
+Bronston
+bronstrops
+Bront
+Bronte
+Bronteana
+bronteon
+brontephobia
+Brontes
+Brontesque
+bronteum
+brontide
+brontides
+brontogram
+brontograph
+brontolite
+brontolith
+brontology
+brontometer
+brontophobia
+Brontops
+brontops
+brontosaur
+brontosauri
+brontosaurs
+Brontosaurus
+brontosaurus
+brontosauruses
+brontoscopy
+brontothere
+Brontotherium
+Brontozoum
+Bronwen
+Bronwood
+Bronwyn
+Bronx
+bronx
+Bronxite
+Bronxville
+bronze
+bronze-bearing
+bronze-bound
+bronze-brown
+bronze-casting
+bronze-clad
+bronze-colored
+bronze-covered
+bronzed
+bronze-foreheaded
+bronze-gilt
+bronze-gleaming
+bronze-golden
+bronze-haired
+bronzelike
+bronzen
+bronze-purple
+bronzer
+bronzers
+bronzes
+bronze-shod
+bronzesmith
+bronzewing
+bronze-winged
+bronze-yellow
+bronzier
+bronziest
+bronzify
+bronzine
+bronzing
+bronzings
+Bronzino
+bronzite
+bronzitite
+bronzy
+broo
+brooch
+brooched
+brooches
+brooching
+brood
+brooded
+brooder
+brooders
+broodier
+broodiest
+broodily
+broodiness
+brooding
+broodingly
+broodless
+broodlet
+broodling
+broodmare
+broods
+broodsac
+broody
+Brook
+brook
+brookable
+Brookdale
+Brooke
+brooked
+Brookeland
+Brooker
+Brookes
+Brookesmith
+Brookeville
+Brookfield
+brookflower
+Brookhaven
+Brookhouse
+brookie
+brookier
+brookiest
+Brooking
+brooking
+Brookings
+brookite
+brookites
+Brookland
+Brooklandville
+Brooklawn
+brookless
+Brooklet
+brooklet
+brooklets
+brooklike
+brooklime
+Brooklin
+Brookline
+brookline
+Brooklyn
+brooklyn
+Brooklynese
+Brooklynite
+Brookneal
+Brookner
+Brookport
+Brooks
+brooks
+Brookshire
+brookside
+Brookston
+Brooksville
+Brookton
+Brooktondale
+Brookview
+Brookville
+brookweed
+Brookwood
+brooky
+brool
+broom
+Broomall
+broomball
+broomballer
+broombush
+broomcorn
+Broome
+broomed
+broomer
+Broomfield
+broomier
+broomiest
+brooming
+broom-leaved
+broommaker
+broommaking
+broomrape
+broomroot
+brooms
+broom-sewing
+broomshank
+broomsquire
+broomstaff
+broomstick
+broomsticks
+broomstraw
+broomtail
+broomweed
+broomwood
+broomwort
+broomy
+broon
+Broonzy
+broos
+broose
+Brooten
+broozled
+broquery
+broquineer
+Bros
+bros
+bros.
+Brose
+brose
+Broseley
+broses
+Brosimum
+Brosine
+brosot
+brosse
+Brost
+Brosy
+brosy
+brot
+brotan
+brotany
+brotchen
+Brote
+Broteas
+brotel
+broth
+brothe
+brothel
+brotheler
+brothellike
+brothelry
+brothels
+Brother
+brother
+brothered
+brother-german
+brotherhood
+brotherhoods
+brother-in-arms
+brothering
+brother-in-law
+brotherless
+brotherlike
+brotherliness
+brotherlinesses
+brotherly
+brotherred
+Brothers
+brothers
+brothership
+brothers-in-law
+Brotherson
+Brotherton
+brotherwort
+brothier
+brothiest
+broths
+brothy
+brotocrystal
+Brott
+brott
+Brottman
+Brotula
+brotula
+brotulid
+Brotulidae
+brotuliform
+Broucek
+brouette
+brough
+brougham
+brougham-landaulet
+broughams
+brought
+broughta
+broughtas
+Broughton
+brouhaha
+brouhahas
+brouille
+brouillon
+Broun
+Broussard
+Broussonetia
+Brout
+Brouwer
+brouze
+brow
+browache
+Browallia
+browallia
+browband
+browbands
+browbeat
+browbeaten
+browbeater
+browbeating
+browbeats
+brow-bent
+browbound
+browd
+browden
+Browder
+browed
+Brower
+Browerville
+browet
+browis
+browless
+browman
+Brown
+brown
+brown-armed
+brownback
+brown-backed
+brown-banded
+brown-barreled
+brown-bearded
+brown-berried
+brown-colored
+brown-complexioned
+Browne
+browned
+browned-off
+Brownell
+browner
+brownest
+brown-eyed
+brown-faced
+Brownfield
+brown-green
+brown-haired
+brown-headed
+Brownian
+brownian
+Brownie
+brownie
+brownier
+brownies
+browniest
+browniness
+Browning
+browning
+Browningesque
+brownish
+brownishness
+brownish-red
+brownish-yellow
+Brownism
+brownism
+Brownist
+Brownistic
+Brownistical
+brown-leaved
+Brownlee
+Brownley
+brown-locked
+brownly
+brownness
+brown-nose
+brownnose
+brown-nosed
+brown-noser
+brownnoser
+brown-nosing
+brownout
+brownouts
+brownprint
+brown-purple
+brown-red
+brown-roofed
+Browns
+browns
+brown-sailed
+Brownsboro
+Brownsburg
+Brownsdale
+brownshirt
+brown-skinned
+brown-sleeve
+Brownson
+brown-spotted
+brown-state
+brown-stemmed
+brownstone
+brownstones
+Brownstown
+brown-strained
+Brownsville
+browntail
+brown-tailed
+Brownton
+browntop
+Browntown
+Brownville
+brown-washed
+brownweed
+Brownwood
+brownwort
+browny
+browpiece
+browpost
+brows
+browsability
+browsage
+browse
+browsed
+browser
+browsers
+browses
+browsick
+browsing
+browst
+brow-wreathed
+browzer
+Broxton
+Broz
+Brozak
+brr
+brrr
+BRS
+BRT
+bruang
+Bruant
+Brubaker
+Brubeck
+brubru
+brubu
+Bruce
+bruce
+Brucella
+brucella
+brucellae
+brucellas
+brucellosis
+Bruceton
+Brucetown
+Bruceville
+Bruch
+bruchid
+Bruchidae
+Bruchus
+bruchus
+brucia
+Brucie
+brucin
+brucina
+brucine
+brucines
+brucins
+brucite
+bruckle
+bruckled
+bruckleness
+Bruckner
+Bructeri
+Bruegel
+Brueghel
+Bruell
+bruet
+Brufsky
+Bruges
+bruges
+Brugge
+brugh
+brughs
+brugnatellite
+Bruhn
+Bruin
+bruin
+Bruington
+bruins
+Bruis
+bruise
+bruised
+bruiser
+bruisers
+bruises
+bruisewort
+bruising
+bruisingly
+bruit
+bruited
+bruiter
+bruiters
+bruiting
+bruits
+bruja
+brujas
+brujeria
+brujo
+brujos
+bruke
+Brule
+brule
+brulee
+brules
+brulot
+brulots
+brulyie
+brulyiement
+brulyies
+brulzie
+brulzies
+brum
+Brumaire
+brumaire
+brumal
+Brumalia
+brumbee
+brumbie
+brumbies
+brumby
+brume
+brumes
+Brumidi
+Brumley
+Brummagem
+brummagem
+brummagen
+Brummell
+brummer
+Brummie
+brummy
+brumous
+brumstane
+brumstone
+Brunanburh
+brunch
+brunched
+brunches
+brunching
+brunch-word
+Brundidge
+Brundisium
+brune
+Bruneau
+Brunei
+Brunel
+brunel
+Brunell
+Brunella
+Brunelle
+Brunelleschi
+Brunellesco
+Brunellia
+Brunelliaceae
+brunelliaceous
+Bruner
+brunet
+Brunetiere
+brunetness
+brunets
+brunette
+brunetteness
+brunettes
+Brunfelsia
+Brunhild
+brunhild
+Brunhilda
+Brunhilde
+Bruni
+Bruning
+brunion
+brunissure
+Brunistic
+brunizem
+brunizems
+Brunk
+Brunn
+brunneous
+Brunner
+Brunnhilde
+Brunnichia
+Bruno
+Brunonia
+Brunoniaceae
+Brunonian
+brunonian
+Brunonism
+Bruns
+Brunson
+Brunsville
+Brunswick
+brunswick
+brunt
+brunts
+Brusa
+bruscha
+bruscus
+Brusett
+Brush
+brush
+brushability
+brushable
+brushback
+brushball
+brushbird
+brush-breaking
+brushbush
+brushcut
+brushed
+brusher
+brusher-off
+brushers
+brusher-up
+brushes
+brushet
+brush-fire
+brushfire
+brushfires
+brush-footed
+brushful
+brushier
+brushiest
+brushiness
+brushing
+brushite
+brushland
+brushless
+brushlessness
+brushlet
+brushlike
+brushmaker
+brushmaking
+brushman
+brushmen
+brush-off
+brushoff
+brushoffs
+brushpopper
+brushproof
+brush-shaped
+brush-tail
+brush-tailed
+Brushton
+brush-tongued
+brush-treat
+brushup
+brushups
+brushwood
+brushwork
+brushy
+brusk
+brusker
+bruskest
+bruskly
+bruskness
+Brusly
+brusque
+brusquely
+brusqueness
+brusquer
+brusquerie
+brusquest
+Brussel
+brussel
+Brussels
+brussels
+brustle
+brustled
+brustling
+brusure
+Brut
+brut
+Bruta
+brutage
+brutal
+brutalisation
+brutalise
+brutalised
+brutalising
+brutalism
+brutalist
+brutalitarian
+brutalitarianism
+brutalities
+brutality
+brutalization
+brutalize
+brutalized
+brutalizes
+brutalizing
+brutally
+brutalness
+brute
+bruted
+brutedom
+brutelike
+brutely
+bruteness
+brutes
+brutification
+brutified
+brutifies
+brutify
+brutifying
+bruting
+brutish
+brutishly
+brutishness
+brutism
+brutisms
+brutter
+Brutus
+brutus
+Bruxelles
+bruxism
+bruxisms
+bruyere
+Bruyeres
+Bruyn
+bruzz
+bry-
+Bryaceae
+bryaceous
+Bryales
+Bryan
+bryan
+Bryana
+Bryanism
+Bryanite
+Bryansk
+Bryant
+Bryanthus
+Bryantown
+Bryantsville
+Bryantville
+Bryanty
+Bryce
+Bryceland
+Bryceville
+Bryn
+Bryna
+Brynathyn
+bryndza
+Bryner
+Brynhild
+brynhild
+Brynmawr
+Brynn
+Brynna
+Brynne
+Brynza
+brynza
+bryogenin
+bryological
+bryologies
+bryologist
+bryology
+Bryon
+bryon
+Bryonia
+bryonia
+bryonidin
+bryonies
+bryonin
+bryony
+Bryophyllum
+Bryophyta
+bryophyta
+bryophyte
+bryophytes
+bryophytic
+Bryozoa
+bryozoa
+bryozoan
+bryozoans
+bryozoon
+bryozoum
+brys-
+Bryson
+Brython
+brython
+Brythonic
+brythonic
+Bryum
+Brzegiem
+B.S.
+B/S
+BS
+b.s.
+b/s
+bs
+BSA
+BSAA
+BSAdv
+BSAE
+BSAeE
+BSAgE
+BSAgr
+BSArch
+BSArchE
+BSArchEng
+BSBA
+BSBH
+BSBus
+BSBusMgt
+B.Sc.
+BSC
+BSc
+BSCE
+BSCh
+BSChE
+BSchMusic
+BSCM
+BSCom
+B-scope
+BSCP
+BSD
+BSDes
+BSDHyg
+BSE
+BSEc
+BSEd
+BSEE
+BSEEngr
+BSElE
+BSEM
+BSEng
+BSEP
+BSES
+BSF
+bsf
+BSFM
+BSFMgt
+BSFS
+BSFT
+BSGE
+BSGeNEd
+BSGeolE
+BSGMgt
+BSGph
+bsh
+BSHA
+B-shaped
+BSHE
+BSHEc
+BSHEd
+BSHyg
+BSI
+BSIE
+BSIndEd
+BSIndEngr
+BSIndMgt
+BSIR
+BSIT
+BSJ
+bskt
+BSL
+Bs/L
+BSLabRel
+BSLArch
+BSLM
+BSLS
+BSM
+BSME
+BSMedTech
+BSMet
+BSMetE
+BSMin
+BSMT
+BSMTP
+BSMusEd
+BSN
+BSNA
+BSO
+BSOC
+BSOrNHort
+BSOT
+BSP
+BSPA
+BSPE
+BSPH
+BSPhar
+BSPharm
+BSPHN
+BSPhTh
+BSPT
+BSRec
+BSRet
+BSRFS
+BSRT
+B.S.S.
+BSS
+BSSA
+BSSc
+BSSE
+BSSS
+BST
+BSTIE
+BSTJ
+BSTrans
+BSW
+BT
+Bt
+Bt.
+bt
+BTAM
+BTCh
+BTE
+BTh
+BTHU
+BThU
+btise
+BTL
+btl
+btl.
+BTN
+BTO
+BTOL
+btry
+btry.
+BTS
+B.T.U.
+BTU
+Btu
+btu
+BTW
+B-type
+BU
+Bu
+bu
+bu.
+BuAer
+bual
+buat
+Buatti
+buaze
+Bub
+bub
+buba
+bubal
+bubale
+bubales
+bubaline
+Bubalis
+bubalis
+bubalises
+Bubalo
+bubals
+bubas
+Bubastid
+Bubastite
+Bubb
+Bubba
+bubba
+bubber
+bubbies
+bubble
+bubble-and-squeak
+bubble-bow
+bubblebow
+bubbled
+bubbleless
+bubblelike
+bubblement
+bubbler
+bubblers
+bubbles
+bubbletop
+bubbletops
+bubblier
+bubblies
+bubbliest
+bubbliness
+bubbling
+bubblingly
+bubblish
+bubbly
+bubbly-jock
+bubby
+bubbybush
+Bube
+Buber
+bubinga
+bubingas
+Bubo
+bubo
+buboed
+buboes
+Bubona
+bubonalgia
+bubonic
+Bubonidae
+bubonocele
+bubonoceze
+bubos
+bubs
+bubukle
+Bucaramanga
+bucare
+bucayo
+bucca
+buccal
+buccally
+buccan
+buccaned
+buccaneer
+buccaneering
+buccaneerish
+buccaneers
+buccaning
+buccanned
+buccanning
+buccaro
+buccate
+Buccellarius
+bucchero
+buccheros
+buccin
+buccina
+buccinae
+buccinal
+buccinator
+buccinatory
+Buccinidae
+bucciniform
+buccinoid
+Buccinum
+buccinum
+Bucco
+buccobranchial
+buccocervical
+buccogingival
+buccolabial
+buccolingual
+bucconasal
+Bucconidae
+Bucconinae
+buccopharyngeal
+buccula
+bucculae
+Bucculatrix
+Bucelas
+Bucella
+bucellas
+bucentaur
+bucentur
+Bucephala
+Bucephalus
+bucephalus
+Buceros
+Bucerotes
+Bucerotidae
+Bucerotinae
+Buch
+Buchalter
+Buchan
+Buchanan
+buchanan
+Buchanite
+Bucharest
+bucharest
+Buchbinder
+Buchenwald
+Bucher
+Buchheim
+buchite
+Buchloe
+Buchman
+Buchmanism
+Buchmanite
+Buchner
+Buchnera
+buchnerite
+buchonite
+Buchtel
+buchu
+Buchwald
+Buck
+buck
+buck-and-wing
+buckaroo
+buckaroos
+buckass
+Buckatunna
+buckayro
+buckayros
+buck-bean
+buckbean
+buckbeans
+buckberry
+buckboard
+buckboards
+buckbrush
+buckbush
+Buckden
+bucked
+buckeen
+buckeens
+Buckels
+bucker
+buckeroo
+buckeroos
+buckers
+bucker-up
+bucket
+bucketed
+bucketeer
+bucketer
+bucket-eyed
+bucketful
+bucketfull
+bucketfuls
+bucketing
+bucketmaker
+bucketmaking
+bucketman
+buckets
+bucketsful
+bucket-shaped
+bucket-shop
+bucketshop
+buckety
+buck-eye
+buckeye
+buck-eyed
+buckeyed
+buckeyes
+Buckeystown
+Buckfield
+Buckhannon
+Buckhead
+Buckholts
+buck-horn
+buckhorn
+buck-hound
+buckhound
+buckhounds
+Buckie
+buckie
+bucking
+Buckingham
+Buckinghamshire
+buckish
+buckishly
+buckishness
+buckism
+buck-jump
+buckjump
+buckjumper
+Buckland
+buckland
+bucklandite
+Buckle
+buckle
+buckle-beggar
+buckled
+buckleless
+Buckler
+buckler
+bucklered
+buckler-fern
+buckler-headed
+bucklering
+bucklers
+buckler-shaped
+buckles
+Buckley
+Buckleya
+Bucklin
+buckling
+bucklum
+Buckman
+buck-mast
+Bucknell
+Buckner
+bucko
+buckoes
+buck-one
+buckone
+buck-passing
+buckplate
+buckpot
+buckra
+buckram
+buckramed
+buckraming
+buckrams
+buckras
+Bucks
+bucks
+bucksaw
+bucksaws
+bucks-beard
+buckshee
+buckshees
+buck's-horn
+buck-shot
+buckshot
+buckshots
+buckskin
+buckskinned
+buckskins
+Bucksport
+buck-stall
+buckstall
+buckstay
+buckstone
+bucktail
+bucktails
+buckteeth
+buckthorn
+buck-tooth
+bucktooth
+buck-toothed
+bucktoothed
+bucktooths
+bucku
+buckwagon
+buckwash
+buckwasher
+buck-washing
+buckwashing
+buckwheat
+buckwheater
+buckwheatlike
+buckwheats
+Bucky
+bucky
+Bucoda
+bucoliast
+bucolic
+bucolical
+bucolically
+bucolicism
+Bucolics
+bucolics
+Bucolion
+Bucorvinae
+Bucorvus
+Bucovina
+bucrane
+bucrania
+bucranium
+bucrnia
+Bucure
+Bucuresti
+Bucyrus
+Bud
+bud
+Buda
+buda
+Budapest
+budapest
+budbreak
+Budd
+buddage
+buddah
+Budde
+budded
+Buddenbrooks
+budder
+budders
+Buddh
+Buddha
+buddha
+Buddha-field
+Buddhahood
+buddhahood
+Buddhaship
+buddhi
+Buddhic
+Buddhism
+buddhism
+Buddhist
+buddhist
+Buddhistic
+Buddhistical
+Buddhistically
+buddhists
+Buddhological
+Buddhology
+Buddie
+buddie
+buddied
+buddies
+Budding
+budding
+buddings
+buddle
+buddled
+Buddleia
+buddleia
+buddleias
+buddleman
+buddler
+buddles
+buddling
+Buddy
+buddy
+buddy-boy
+buddy-buddy
+buddying
+Bude
+bude
+Budennovsk
+Budenny
+Buderus
+Budge
+budge
+budge-barrel
+budged
+budger
+budgeree
+budgereegah
+budgerigah
+budgerigar
+budgerigars
+budgero
+budgerow
+budgers
+budgerygah
+budges
+Budget
+budget
+budgetary
+budgeted
+budgeteer
+budgeter
+budgeters
+budgetful
+budgeting
+budgets
+budgie
+budgies
+budging
+budgy
+Budh
+budless
+budlet
+budlike
+budling
+budmash
+Budorcas
+buds
+budtime
+Budukha
+Buduma
+Budweis
+Budweiser
+Budwig
+budwood
+budworm
+budworms
+Budworth
+budzart
+budzat
+Bueche
+Buehler
+Buehrer
+Buell
+Buellton
+Buena
+buenas
+Buenaventura
+Bueno
+bueno
+Buenos
+buenos
+Buerger
+Bueschel
+Buettneria
+Buettneriaceae
+Bueyeros
+BUF
+bufagin
+Buff
+buff
+buffa
+buffability
+buffable
+Buffalo
+buffalo
+buffaloback
+buffaloed
+buffaloes
+buffalofish
+buffalofishes
+buffalo-headed
+buffaloing
+buffalos
+buff-backed
+buffball
+buffbar
+buff-bare
+buff-breasted
+buff-citrine
+buffcoat
+buff-colored
+buffe
+buffed
+buffer
+buffered
+Bufferin
+buffering
+bufferrer
+bufferrers
+buffers
+Buffet
+buffet
+buffeted
+buffeter
+buffeters
+buffeting
+buffetings
+buffets
+buffi
+buffier
+buffiest
+buffin
+buffing
+buffle
+bufflehead
+buffle-headed
+buffleheaded
+bufflehorn
+Buffo
+buffo
+Buffon
+buffone
+buffont
+buffoon
+buffooneries
+buffoonery
+buffoonesque
+buffoonish
+buffoonishness
+buffoonism
+buffoons
+buff-orange
+buffos
+buffs
+buff-tipped
+Buffum
+buffware
+buff-washed
+Buffy
+buffy
+buff-yellow
+bufidin
+bufo
+bufonid
+Bufonidae
+bufonite
+Buford
+bufotalin
+bufotenin
+bufotenine
+bufotoxin
+Bug
+bug
+bugaboo
+bugaboos
+bugala
+bugan
+Buganda
+bugara
+Bugas
+Bugayev
+bugbane
+bugbanes
+bugbear
+bugbeardom
+bugbearish
+bugbears
+Bugbee
+bugbite
+bugdom
+bugeye
+bug-eyed
+bugeyed
+bug-eyes
+bugeyes
+bugfish
+buggane
+bugged
+bugger
+buggered
+buggeries
+buggering
+buggers
+buggery
+buggess
+buggier
+buggies
+buggiest
+bugginess
+bugging
+buggy
+buggyman
+buggymen
+bughead
+bughouse
+bughouses
+bught
+Bugi
+Buginese
+Buginvillaea
+bug-juice
+bugle
+bugled
+bugle-horn
+bugler
+buglers
+bugles
+buglet
+bugle-weed
+bugleweed
+buglewort
+bugling
+bugloss
+buglosses
+bugologist
+bugology
+bugong
+bugout
+bugproof
+bugre
+bugs
+bugseed
+bugseeds
+bugsha
+bugshas
+bugweed
+bug-word
+bugwort
+Buhl
+buhl
+buhlbuhl
+Buhler
+buhls
+buhlwork
+buhlworks
+buhr
+buhrmill
+buhrs
+buhrstone
+Bui
+Buia
+buibui
+Buick
+buick
+buicks
+build
+buildable
+builded
+builder
+builders
+building
+buildingless
+buildings
+buildress
+builds
+build-up
+buildup
+buildups
+built
+built-in
+builtin
+built-up
+Buine
+buirdly
+Buiron
+Buisson
+buisson
+buist
+Buitenzorg
+Bujumbura
+Buka
+Bukat
+Bukavu
+Buke
+Bukeyef
+bukh
+Bukhara
+Bukharin
+Bukidnon
+Bukittinggi
+bukk-
+Bukovina
+bukshee
+bukshi
+Bukum
+Bul
+bul
+bul.
+Bula
+Bulacan
+bulak
+Bulan
+Bulanda
+Bulawayo
+bulb
+bulbaceous
+bulbar
+bulbed
+bulbel
+bulbels
+bulbier
+bulbiest
+bulbiferous
+bulbiform
+bulbil
+Bulbilis
+bulbilla
+bulbils
+bulbine
+bulbless
+bulblet
+bulblets
+bulblike
+bulbo-
+bulbocapnin
+bulbocapnine
+bulbocavernosus
+bulbocavernous
+Bulbochaete
+Bulbocodium
+bulbomedullary
+bulbomembranous
+bulbonuclear
+Bulbophyllum
+bulborectal
+bulbose
+bulbospinal
+bulbotuber
+bulbo-urethral
+bulbourethral
+bulbous
+bulbously
+bulbous-rooted
+bulbs
+bulb-tee
+bulbul
+bulbule
+bulbuls
+bulbus
+bulby
+bulchin
+bulder
+Bulfinch
+Bulg
+Bulg.
+Bulganin
+Bulgar
+bulgar
+Bulgari
+Bulgaria
+bulgaria
+Bulgarian
+bulgarian
+bulgarians
+Bulgaric
+Bulgarophil
+Bulge
+bulge
+bulged
+Bulger
+bulger
+bulgers
+bulges
+bulgier
+bulgiest
+bulginess
+bulging
+bulgingly
+bulgur
+bulgurs
+bulgy
+bulies
+bulimia
+bulimiac
+bulimias
+bulimic
+bulimiform
+bulimoid
+Bulimulidae
+Bulimus
+bulimus
+bulimy
+bulk
+bulkage
+bulkages
+bulked
+bulker
+bulkhead
+bulkheaded
+bulkheading
+bulkheads
+bulkier
+bulkiest
+bulkily
+bulkin
+bulkiness
+bulking
+bulkish
+bulk-pile
+bulks
+bulky
+Bull
+bull
+bull-
+bull.
+bulla
+bullace
+bullaces
+bullae
+bullalaria
+bullamacow
+bullan
+Bullard
+bullaria
+bullaries
+bullarium
+bullary
+bullate
+bullated
+bullation
+bullback
+bull-bait
+bull-baiter
+bull-baiting
+bullbaiting
+bullbat
+bullbats
+bull-bearing
+bull-beggar
+bullbeggar
+bullberry
+bullbird
+bull-bitch
+bullboat
+bull-bragging
+bull-browed
+bullcart
+bullcomber
+bull-dog
+bulldog
+bulldogged
+bulldoggedness
+bulldogger
+bulldogging
+bulldoggish
+bulldoggishly
+bulldoggishness
+bulldoggy
+bulldogism
+bulldogs
+bull-dose
+bulldoze
+bulldozed
+bulldozer
+bulldozers
+bulldozes
+bulldozing
+bulldust
+bulled
+Bullen
+bullen-bullen
+Buller
+buller
+bullescene
+bullet
+bulleted
+bullet-head
+bullethead
+bulletheaded
+bulletheadedness
+bullet-hole
+bulletin
+bulletined
+bulleting
+bulletining
+bulletins
+bulletless
+bulletlike
+bulletmaker
+bulletmaking
+bulletproof
+bulletproofed
+bulletproofing
+bulletproofs
+bullets
+bulletwood
+bullety
+Bulley
+bull-faced
+bullfeast
+bullfice
+bull-fight
+bullfight
+bullfighter
+bullfighters
+bullfighting
+bullfights
+bullfinch
+bullfinches
+bullfist
+bullflower
+bullfoot
+bull-frog
+bullfrog
+bullfrogs
+bull-fronted
+bullgine
+bull-god
+bull-grip
+bullhead
+bull-headed
+bullheaded
+bullheadedly
+bullheadedness
+bullheads
+bullhide
+bullhoof
+bull-horn
+bullhorn
+bullhorns
+Bullialdus
+Bullidae
+bullied
+bullier
+bullies
+bulliest
+bulliform
+bullimong
+bulling
+Bullion
+bullion
+bullionism
+bullionist
+bullionless
+bullions
+Bullis
+bullish
+bullishly
+bullishness
+bullism
+bullit
+bullition
+Bullitt
+Bullivant
+bull-like
+bulllike
+bull-man
+bull-mastiff
+bull-mouthed
+bullneck
+bull-necked
+bullnecked
+bullnecks
+bullnose
+bull-nosed
+bullnoses
+bullnut
+Bullock
+bullock
+bullocker
+Bullockite
+bullockman
+bullocks
+bullock's-heart
+bullocky
+Bullom
+bullose
+Bullough
+bullous
+bullpates
+bullpen
+bullpens
+bullpoll
+bullpout
+bullpouts
+Bullpup
+bullpup
+bullragged
+bullragging
+bullring
+bullrings
+bull-roarer
+bullroarer
+bull-roaring
+bull-run
+bull-running
+bullrush
+bullrushes
+bulls
+bull's-eye
+bullseye
+bull's-eyed
+bull's-eyes
+bullshit
+bullshits
+bullshitted
+bullshitting
+Bullshoals
+bullshot
+bullshots
+bullskin
+bullsnake
+bullsticker
+bullsucker
+bullswool
+bull-terrier
+bullterrier
+bulltoad
+bull-tongue
+bull-tongued
+bull-tonguing
+bull-trout
+bullule
+Bullville
+bull-voiced
+bullweed
+bullweeds
+bull-whack
+bullwhack
+bullwhacker
+bull-whip
+bullwhip
+bullwhipped
+bullwhipping
+bullwhips
+bullwork
+bullwort
+Bully
+bully
+bullyable
+bullyboy
+bullyboys
+bullydom
+bullyhuff
+bullying
+bullyingly
+bullyism
+bully-off
+bullyrag
+bullyragged
+bullyragger
+bullyragging
+bullyrags
+bully-rock
+bullyrock
+bullyrook
+Bulmer
+bulnbuln
+Bulolo
+Bulow
+Bulpitt
+bulreedy
+bulrush
+bulrushes
+bulrushlike
+bulrushy
+bulse
+bult
+bultell
+bulten
+bulter
+bultey
+Bultman
+Bultmann
+bultong
+bultow
+bulwand
+bulwark
+bulwarked
+bulwarking
+bulwarks
+Bulwer
+Bulwer-Lytton
+Bum
+bum
+bum-
+bumaloe
+bumaree
+bumbailiff
+bumbailiffship
+bumbard
+bumbarge
+bumbass
+bumbaste
+bumbaze
+bumbee
+bumbelo
+bumbershoot
+bumble
+bumble-bee
+bumblebee
+bumblebeefish
+bumblebeefishes
+bumblebees
+bumbleberry
+bumblebomb
+bumbled
+Bumbledom
+bumbledom
+bumblefoot
+bumblekite
+bumble-puppy
+bumblepuppy
+bumbler
+bumblers
+bumbles
+bumbling
+bumblingly
+bumblingness
+bumblings
+bumbo
+bumboat
+bumboatman
+bumboatmen
+bumboats
+bumboatwoman
+bumclock
+Bumelia
+bumf
+bumfeg
+bumfs
+bumfuzzle
+Bumgardner
+bumicky
+bumkin
+bumkins
+bummack
+bummalo
+bummalos
+bummaree
+bummed
+bummel
+bummer
+bummerish
+bummers
+bummery
+bummest
+bummie
+bummil
+bumming
+bummle
+bummler
+bummock
+bump
+bumped
+bumpee
+bumper
+bumpered
+bumperette
+bumpering
+bumpers
+bumph
+bumphs
+bumpier
+bumpiest
+bumpily
+bumpiness
+bumping
+bumpingly
+bumping-off
+bumpity
+bumpkin
+bumpkinet
+bumpkinish
+bumpkinly
+bumpkins
+bump-off
+bumpoff
+bumpology
+bumps
+bump-start
+bumpsy
+bumptious
+bumptiously
+bumptiousness
+bumpy
+bums
+bumsucking
+bumtrap
+bumwood
+bun
+Buna
+buna
+Bunaea
+buncal
+Bunce
+bunce
+Bunceton
+Bunch
+bunch
+bunch-backed
+bunchbacked
+bunchberries
+bunchberry
+Bunche
+bunched
+buncher
+bunches
+bunchflower
+bunchier
+bunchiest
+bunchily
+bunchiness
+bunching
+bunch-word
+bunchy
+bunco
+buncoed
+buncoing
+Buncombe
+buncombe
+buncombes
+buncos
+Bund
+bund
+Bunda
+Bundaberg
+Bundahish
+Bunde
+Bundeli
+Bundelkhand
+Bunder
+bunder
+Bundesrat
+Bundesrath
+Bundestag
+bundh
+bundies
+Bundist
+bundist
+bundists
+bundle
+bundled
+bundler
+bundle-rooted
+bundlerooted
+bundlers
+bundles
+bundlet
+bundling
+bundlings
+bundobust
+bundoc
+bundocks
+bundook
+Bundoora
+bunds
+bundt
+bundts
+Bundu
+bundu
+bundweed
+Bundy
+bundy
+bunemost
+bung
+Bunga
+bungaloid
+bungalow
+bungalows
+bungarum
+Bungarus
+bunged
+bungee
+bunger
+bungerly
+bungey
+bungfu
+bung-full
+bungfull
+bunghole
+bungholes
+bunging
+bungle
+bungled
+bungler
+bunglers
+bungles
+bunglesome
+bungling
+bunglingly
+bunglings
+bungmaker
+bungo
+bungos
+bungs
+bungstarter
+bungtown
+bungwall
+bungy
+Bunia
+Bunin
+Buninahua
+bunion
+bunions
+bunjara
+bunji-bunji
+bunk
+bunked
+Bunker
+bunker
+bunkerage
+bunkered
+bunkering
+bunkerman
+bunkermen
+bunkers
+Bunkerville
+bunkery
+bunkhouse
+bunkhouses
+Bunkie
+bunkie
+bunking
+bunkload
+bunkmate
+bunkmates
+bunko
+bunkoed
+bunkoing
+bunkos
+bunks
+bunkum
+bunkums
+Bunky
+bunky
+Bunn
+bunn
+Bunnell
+bunnell
+Bunni
+bunnia
+Bunnie
+bunnies
+bunning
+Bunns
+bunns
+Bunny
+bunny
+bunnymouth
+bunodont
+Bunodonta
+Bunola
+bunolophodont
+Bunomastodontidae
+bunoselenodont
+Bunow
+bunraku
+bunrakus
+buns
+Bunsen
+bunsen
+bunsenite
+bunt
+buntal
+bunted
+Bunter
+bunter
+bunters
+buntine
+Bunting
+bunting
+buntings
+buntline
+buntlines
+bunton
+bunts
+bunty
+Bunuel
+bunuelo
+Bunus
+bunya
+bunya-bunya
+bunyah
+Bunyan
+bunyan
+Bunyanesque
+bunyas
+bunyip
+Bunyoro
+buonamani
+buonamano
+Buonaparte
+Buonarroti
+Buonomo
+Buononcini
+Buote
+buoy
+buoyage
+buoyages
+buoyance
+buoyances
+buoyancies
+buoyancy
+buoyant
+buoyantly
+buoyantness
+buoyed
+buoyed-up
+buoying
+buoys
+buoy-tender
+Buphaga
+Buphagus
+Buphonia
+buphthalmia
+buphthalmic
+buphthalmos
+Buphthalmum
+bupleurol
+Bupleurum
+buplever
+buprestid
+Buprestidae
+buprestidan
+Buprestis
+buprestis
+buqsha
+buqshas
+BUR
+Bur
+Bur.
+bur
+bura
+Burack
+Buran
+buran
+burans
+burao
+Buraq
+Buras
+buras
+Burayan
+Buraydah
+Burbage
+Burbank
+burbank
+burbankian
+Burbankism
+burbark
+Burberries
+Burberry
+burberry
+burble
+burbled
+burbler
+burblers
+burbles
+burblier
+burbliest
+burbling
+burbly
+burbolt
+burbot
+burbots
+burbs
+burbush
+Burch
+Burchard
+Burchett
+Burchfield
+Burck
+Burckhardt
+Burd
+burd
+burd-alone
+burdalone
+burdash
+Burdelle
+burden
+burdenable
+burdened
+burdener
+burdeners
+burdening
+burdenless
+burdenous
+burdens
+burdensome
+burdensomely
+burdensomeness
+Burdett
+Burdette
+Burdick
+burdie
+burdies
+Burdigalian
+Burdine
+burdock
+burdocks
+burdon
+burds
+Bure
+bure
+bureau
+bureaucracies
+bureaucracy
+bureaucrat
+bureaucratese
+bureaucratic
+bureaucratical
+bureaucratically
+bureaucratism
+bureaucratist
+bureaucratization
+bureaucratize
+bureaucratized
+bureaucratizes
+bureaucratizing
+bureaucrats
+bureaus
+bureaux
+burel
+burelage
+burele
+burelle
+burelly
+burely
+Buren
+buret
+burets
+burette
+burettes
+burez
+burfish
+Burford
+Burfordville
+Burg
+burg
+burga
+burgage
+burgages
+burgality
+burgall
+burgamot
+burganet
+Burgas
+burgau
+burgaudine
+Burgaw
+burg-bryce
+burge
+burgee
+burgees
+Burgener
+Burgenland
+burgensic
+burgeon
+burgeoned
+burgeoning
+burgeons
+Burger
+burger
+burgers
+Burgess
+burgess
+burgessdom
+burgesses
+burgess-ship
+Burget
+Burgettstown
+burggrave
+burgh
+burghal
+burghal-penny
+burghalpenny
+burghbote
+burghemot
+burgh-english
+burgher
+burgherage
+burgherdom
+burgheress
+burgherhood
+burgheristh
+burghermaster
+burghers
+burghership
+Burghley
+burghmaster
+burghmoot
+burghmote
+burghs
+Burgin
+burglar
+burglaries
+burglarious
+burglariously
+burglarise
+burglarised
+burglarising
+burglarize
+burglarized
+burglarizes
+burglarizing
+burglarproof
+burglarproofed
+burglarproofing
+burglarproofs
+burglars
+burglary
+burgle
+burgled
+burgles
+burgling
+burgomaster
+burgomasters
+burgomastership
+burgonet
+burgonets
+burgoo
+Burgoon
+burgoos
+Burgos
+burgout
+burgouts
+Burgoyne
+burgoyne
+burgrave
+burgraves
+burgraviate
+burgs
+burgul
+burgullian
+Burgundian
+burgundian
+Burgundies
+burgundies
+Burgundy
+burgundy
+burgus
+burgware
+Burgwell
+burgwere
+burh
+Burhans
+burhead
+burhel
+Burhinidae
+Burhinus
+burhmoot
+Buri
+buri
+buriable
+burial
+burial-ground
+burial-place
+burials
+burian
+Buriat
+buried
+buriels
+burier
+buriers
+buries
+burin
+burinist
+burins
+burion
+buriti
+Burk
+burk
+burka
+Burkburnett
+Burke
+burke
+burked
+burkei
+burker
+burkers
+burkes
+Burkesville
+Burket
+Burkett
+Burkettsville
+Burkeville
+burkha
+Burkhard
+Burkhardt
+Burkhart
+burking
+burkite
+burkites
+Burkitt
+Burkittsville
+Burkle
+Burkley
+burkundauze
+burkundaz
+Burkville
+Burl
+burl
+burlace
+burladero
+burlap
+burlaps
+burlecue
+burled
+Burleigh
+burler
+burlers
+burlesk
+burlesks
+Burleson
+burlesque
+burlesqued
+burlesquely
+burlesquer
+burlesques
+burlesquing
+burlet
+burletta
+Burley
+burley
+burleycue
+burleys
+Burlie
+burlier
+burlies
+burliest
+burlily
+burliness
+burling
+Burlingame
+Burlingham
+Burlington
+Burlison
+burls
+burly
+burly-boned
+burly-faced
+burly-headed
+Burma
+burma
+Burman
+Burmannia
+Burmanniaceae
+burmanniaceous
+Burmans
+Burmese
+burmese
+burmite
+Burmo-chinese
+Burn
+burn
+burn-
+Burna
+burnable
+Burnaby
+Burnard
+burn-beat
+burnbeat
+Burne
+burned
+burned-out
+burned-over
+Burne-Jones
+Burner
+burner
+burner-off
+burners
+Burnet
+burnet
+burnetize
+burnets
+Burnett
+burnettize
+burnettized
+burnettizing
+Burnettsville
+burnewin
+Burney
+Burneyville
+burnfire
+Burnham
+Burnie
+burnie
+burniebee
+burnies
+Burnight
+burning
+burning-bush
+burning-glass
+burningly
+burnings
+burning-wood
+Burnips
+burnish
+burnishable
+burnished
+burnished-gold
+burnisher
+burnishers
+burnishes
+burnishing
+burnishment
+Burnley
+burn-nose
+burnoose
+burnoosed
+burnooses
+burnous
+burnoused
+burnouses
+burnout
+burnouts
+burnover
+Burns
+burns
+Burnsed
+Burnsian
+Burnside
+burnside
+burnsides
+Burnsville
+burnt
+burnt-child
+Burntcorn
+burn-the-wind
+burntly
+burntness
+burnt-out
+burnt-umber
+burnt-up
+burntweed
+burn-up
+burnup
+burnut
+burnweed
+Burnwell
+burnwood
+Burny
+burny
+buro
+Buroker
+buroo
+BURP
+burp
+burped
+burping
+burps
+Burr
+burr
+Burra
+burrah
+burras-pipe
+burratine
+burrawang
+burrbark
+burred
+burree
+bur-reed
+burrel
+burrel-fly
+Burrell
+burrel-shot
+burrer
+burrers
+burrfish
+burrfishes
+burrgrailer
+burrhead
+burrheaded
+burrheadedness
+burrhel
+burrier
+burriest
+Burrill
+burring
+burrio
+Burris
+burrish
+burrito
+burritos
+burrknot
+burro
+burro-back
+burrobrush
+burrock
+burros
+Burroughs
+burroughs
+Burrow
+burrow
+burrow-duck
+burrowed
+burroweed
+burrower
+burrowers
+burrowing
+Burrows
+burrows
+burrows-town
+burrowstown
+burr-pump
+burrs
+burr-stone
+burrstone
+Burrton
+Burrus
+burry
+burs
+Bursa
+bursa
+bursae
+bursal
+bursar
+bursarial
+bursaries
+bursars
+bursarship
+bursary
+bursas
+bursate
+bursati
+bursattee
+bursautee
+bursch
+Burschenschaft
+Burschenschaften
+burse
+bursectomy
+burseed
+burseeds
+Bursera
+bursera
+Burseraceae
+Burseraceous
+burseraceous
+burses
+bursicle
+bursiculate
+bursiform
+bursitis
+bursitises
+bursitos
+Burson
+burst
+burst-cow
+bursted
+burster
+bursters
+burstiness
+bursting
+burstone
+burstones
+bursts
+burstwort
+bursty
+bursula
+Burt
+burt
+Burta
+burthen
+burthened
+burthening
+burthenman
+burthens
+burthensome
+Burtie
+Burtis
+Burton
+burton
+burtonization
+burtonize
+burtons
+Burtonsville
+Burton-upon-Trent
+burtree
+Burtrum
+Burtt
+Burty
+burucha
+Burundi
+burundi
+burundians
+Burushaski
+Burut
+burweed
+burweeds
+Burwell
+Bury
+bury
+Buryat
+Buryats
+burying
+burying-ground
+burying-place
+burys
+BUS
+bus
+bus.
+Busaos
+busbar
+busbars
+busbies
+busboy
+busboys
+Busby
+busby
+buscarl
+buscarle
+Busch
+Buschi
+Busching
+Buseck
+bused
+busera
+buses
+Busey
+Bush
+bush
+bushbaby
+bushbashing
+bushbeater
+bushbeck
+bushbodies
+bushbody
+bushboy
+bushbuck
+bushbucks
+bushcraft
+bushed
+Bushel
+bushel
+bushelage
+bushelbasket
+busheled
+busheler
+bushelers
+bushelful
+bushelfuls
+busheling
+bushelled
+busheller
+bushelling
+bushelman
+bushelmen
+bushels
+bushelwoman
+busher
+bushers
+bushes
+bushet
+Bushey
+bush-fighter
+bushfighter
+bushfighting
+bushfire
+bushfires
+bushful
+bushgoat
+bushgoats
+bushgrass
+bush-grown
+bush-haired
+bush-hammer
+bushhammer
+bush-harrow
+bush-head
+bush-headed
+bushi
+Bushido
+bushido
+bushidos
+bushie
+bushier
+bushiest
+bushily
+bushiness
+bushing
+bushings
+Bushire
+Bushkill
+Bushland
+bushland
+bushlands
+bush-league
+bushless
+bushlet
+bushlike
+bushmaker
+bushmaking
+Bushman
+bushman
+bushmanship
+bushmaster
+bushmasters
+bushmen
+bushment
+Bushnell
+Bushongo
+Bushore
+bushpig
+bush-ranger
+bushranger
+bushranging
+bush-rope
+bushrope
+bush-shrike
+bush-skirted
+bush-tailed
+bushtit
+bushtits
+Bushton
+Bushveld
+bushveld
+bushwa
+bushwack
+bushwah
+bushwahs
+bushwalking
+bushwas
+Bushweller
+bushwhack
+bushwhacked
+bushwhacker
+bushwhackers
+bushwhacking
+bushwhacks
+bushwife
+bushwoman
+Bushwood
+bushwood
+bushy
+bushy-bearded
+bushy-browed
+bushy-eared
+bushy-haired
+bushy-headed
+bushy-legged
+bushy-tailed
+bushy-whiskered
+bushy-wigged
+busied
+Busiek
+busier
+busies
+busiest
+busily
+busine
+business
+businesses
+businessese
+businesslike
+businesslikeness
+businessman
+businessmen
+businesswoman
+businesswomen
+busing
+busings
+Busiris
+busk
+busked
+busker
+buskers
+busket
+buskin
+buskined
+busking
+buskins
+Buskirk
+buskle
+busks
+Buskus
+busky
+busload
+busman
+busmen
+Busoni
+Busra
+Busrah
+buss
+bussed
+busser
+busser-in
+busses
+Bussey
+bussing
+bussings
+bussock
+bussu
+Bussy
+bussy
+Bust
+bust
+bustard
+bustards
+busted
+bustee
+Buster
+buster
+busters
+busthead
+busti
+bustian
+bustic
+busticate
+bustics
+bustier
+bustiers
+bustiest
+busting
+bustle
+bustled
+bustler
+bustlers
+bustles
+bustling
+bustlingly
+busto
+busts
+bust-up
+busty
+busulfan
+busulfans
+busuuti
+busway
+busy
+busybodied
+busybodies
+busybody
+busybodyish
+busybodyism
+busybodyness
+busy-brained
+Busycon
+busy-fingered
+busyhead
+busy-headed
+busy-idle
+busying
+busyish
+busyness
+busynesses
+busy-tongued
+busywork
+busyworks
+BUT
+but
+but-
+butacaine
+butadiene
+butadiyne
+butanal
+but-and-ben
+butane
+butanes
+butanoic
+butanol
+butanolid
+butanolide
+butanols
+butanone
+butanones
+butat
+Butazolidin
+Butch
+butch
+butcha
+Butcher
+butcher
+butcher-bird
+butcherbird
+butcherbroom
+butcherdom
+butchered
+butcherer
+butcheress
+butcheries
+butchering
+butcherless
+butcherliness
+butcherly
+butcherous
+butcher-row
+butchers
+butcher's-broom
+butchery
+butches
+Bute
+Butea
+butein
+Butenandt
+but-end
+butene
+butenes
+butenyl
+Buteo
+buteo
+buteonine
+buteos
+Butes
+Buteshire
+butic
+butin
+butine
+butle
+butled
+Butler
+butler
+butlerage
+butlerdom
+butleress
+butleries
+butlerism
+butlerlike
+butlers
+butlership
+Butlerville
+butlery
+butles
+butling
+butment
+Butner
+butolism
+Butomaceae
+butomaceous
+Butomus
+butoxy
+butoxyl
+buts
+buts-and-bens
+Butsu
+butsudan
+Butt
+butt
+Butta
+buttal
+buttals
+Buttaro
+Butte
+butte
+butted
+butter
+butteraceous
+butter-and-eggs
+butterback
+butterball
+butterbill
+butter-billed
+butterbird
+butterboat-bill
+butterboat-billed
+butterbough
+butter-box
+butterbox
+butter-bump
+butterbump
+butterbur
+butterburr
+butterbush
+butter-colored
+buttercup
+buttercups
+butter-cutting
+buttered
+butterer
+butterers
+butterfat
+butterfats
+Butterfield
+butter-fingered
+butterfingered
+butterfingers
+butterfish
+butterfishes
+butterflied
+butterflies
+butterflower
+butterfly
+butterflyer
+butterflyfish
+butterflyfishes
+butterfly-flower
+butterflying
+butterflylike
+butterfly-pea
+butterhead
+butterier
+butteries
+butteriest
+butterine
+butteriness
+buttering
+butteris
+butterjags
+butterless
+butterlike
+buttermaker
+buttermaking
+butterman
+Buttermere
+buttermilk
+buttermonger
+buttermouth
+butter-mouthed
+butternose
+butter-nut
+butternut
+butternuts
+butterpaste
+butter-print
+butter-rigged
+butterroot
+butter-rose
+Butters
+butters
+butterscotch
+butterscotches
+butter-smooth
+butter-toothed
+butterweed
+butterwife
+butterwoman
+butterworker
+butterwort
+Butterworth
+butterwright
+buttery
+butteryfingered
+buttes
+buttgenbachite
+butt-headed
+butties
+butt-in
+butting
+butting-in
+butting-joint
+buttinski
+buttinskies
+buttinsky
+buttle
+buttled
+buttling
+buttock
+buttocked
+buttocker
+buttocks
+Button
+button
+buttonball
+buttonbur
+buttonbush
+button-covering
+button-down
+button-eared
+buttoned
+buttoner
+buttoners
+buttoner-up
+button-fastening
+button-headed
+button-hold
+buttonhold
+button-holder
+buttonholder
+button-hole
+buttonhole
+buttonholed
+buttonholer
+buttonholes
+buttonholing
+buttonhook
+buttoning
+buttonless
+buttonlike
+buttonmold
+buttonmould
+buttons
+button-sewing
+button-shaped
+button-slitting
+button-tufting
+buttonweed
+Buttonwillow
+buttonwood
+buttony
+buttress
+buttressed
+buttresses
+buttressing
+buttressless
+buttresslike
+Buttrick
+butts
+butt-stock
+buttstock
+buttstrap
+buttstrapped
+buttstrapping
+buttwoman
+buttwomen
+buttwood
+butty
+buttyman
+Buttzville
+Butung
+butut
+bututs
+Butyl
+butyl
+butylamine
+butylate
+butylated
+butylates
+butylating
+butylation
+butyl-chloral
+butylene
+butylenes
+butylic
+butyls
+Butyn
+butyne
+butyr
+butyr-
+butyraceous
+butyral
+butyraldehyde
+butyrals
+butyrate
+butyrates
+butyric
+butyrically
+butyrin
+butyrinase
+butyrins
+butyro-
+butyrochloral
+butyrolactone
+butyrometer
+butyrometric
+butyrone
+butyrous
+butyrousness
+butyryl
+butyryls
+Butzbach
+buvette
+Buxaceae
+buxaceous
+Buxbaumia
+Buxbaumiaceae
+buxeous
+buxerries
+buxerry
+buxine
+buxom
+buxomer
+buxomest
+buxomly
+buxomness
+Buxtehude
+Buxton
+Buxus
+buy
+buyable
+buyback
+buybacks
+Buyer
+buyer
+Buyers
+buyers
+Buyides
+buying
+buyout
+buyouts
+buys
+Buyse
+buz
+buzane
+buzuki
+buzukia
+buzukis
+buzylene
+Buzz
+buzz
+Buzzard
+buzzard
+buzzardlike
+buzzardly
+buzzards
+buzzbomb
+buzzed
+Buzzell
+buzzer
+buzzerphone
+buzzers
+buzzes
+buzzgloak
+buzzier
+buzzies
+buzziest
+buzzing
+buzzingly
+buzzle
+buzzsaw
+buzzwig
+buzzwigs
+buzzword
+buzzwords
+buzzy
+B.V.
+BV
+bv
+BVA
+BVC
+BVD
+BVDs
+BVE
+B.V.M.
+BVM
+bvt
+BVY
+B/W
+BW
+bwana
+bwanas
+BWC
+BWG
+BWI
+BWM
+BWR
+BWT
+BWTS
+BWV
+BX
+bx
+bx.
+bxs
+-by
+by
+by-
+by-alley
+by-altar
+Byam
+by-and-by
+by-and-large
+byard
+Byars
+Bybee
+by-bid
+by-bidder
+by-bidding
+Byblidaceae
+Byblis
+Byblos
+by-blow
+by-boat
+by-channel
+by-child
+by-chop
+by-cock
+bycoket
+by-common
+by-corner
+by-day
+by-dependency
+by-design
+Bydgoszcz
+by-doing
+by-doingby-drinking
+by-drinking
+by-dweller
+bye
+bye-blow
+bye-bye
+bye-byes
+byee
+bye-election
+by-effect
+byegaein
+byelaw
+byelaws
+by-election
+Byelgorod-Dnestrovski
+Byelorussia
+byelorussia
+Byelorussian
+byelorussian
+byelorussians
+Byelostok
+Byelovo
+bye-low
+byeman
+by-end
+byepath
+byerite
+byerlite
+Byers
+byes
+bye-stake
+byestreet
+Byesville
+bye-turn
+bye-water
+bye-wood
+byeworker
+byeworkman
+by-fellow
+by-fellowship
+Byfield
+by-form
+bygane
+byganging
+bygo
+bygoing
+by-gold
+bygone
+bygones
+Byhalia
+byhand
+by-hour
+by-interest
+by-issue
+by-job
+by-land
+byland
+bylander
+by-lane
+Bylas
+by-law
+bylaw
+bylawman
+bylaws
+by-lead
+Byler
+bylina
+by-line
+byline
+bylined
+byliner
+byliners
+bylines
+bylining
+byliny
+by-live
+by-matter
+by-motive
+by-name
+byname
+bynames
+bynedestin
+Byng
+Bynin
+bynin
+Bynum
+BYO
+by-office
+byon
+byordinar
+byordinary
+byous
+byously
+byp
+by-pass
+bypass
+by-passage
+by-passed
+bypassed
+by-passer
+bypasser
+bypasses
+by-passing
+bypassing
+by-past
+bypast
+by-path
+bypath
+by-paths
+bypaths
+by-place
+byplace
+by-play
+byplay
+byplays
+by-plot
+Bypro
+by-product
+byproduct
+byproducts
+by-purpose
+Byram
+Byran
+Byrann
+Byrd
+Byrdie
+Byrdstown
+byre
+by-reaction
+byre-man
+byreman
+byre-men
+byres
+by-respect
+by-result
+byrewards
+byrewoman
+Byrgius
+Byrl
+byrl
+byrlady
+byrlakin
+byrlaw
+byrlawman
+byrlawmen
+Byrle
+byrled
+byrling
+byrls
+Byrn
+Byrne
+Byrnedale
+Byrnes
+byrnie
+byrnies
+by-road
+byroad
+byroads
+Byrom
+Byromville
+Byron
+byron
+Byronesque
+Byronian
+Byroniana
+Byronic
+byronic
+Byronically
+Byronics
+Byronish
+Byronism
+Byronist
+Byronite
+Byronize
+by-room
+by-route
+Byrrh
+byrri
+byrrus
+Byrsonima
+byrthynsak
+bys
+Bysacki
+bysen
+by-sitter
+bysmalith
+by-speech
+by-spel
+byspell
+byss
+byssaceous
+byssal
+Bysshe
+byssi
+byssiferous
+byssin
+byssine
+Byssinosis
+byssinosis
+byssogenous
+byssoid
+byssolite
+byssus
+byssuses
+by-stake
+bystander
+bystanders
+by-street
+bystreet
+bystreets
+by-stroke
+by-talk
+bytalk
+bytalks
+byte
+by-term
+bytes
+byth
+by-the-bye
+by-the-way
+by-thing
+by-throw
+by-thrust
+by-time
+bytime
+Bytom
+by-tone
+bytownite
+bytownitite
+by-track
+by-trail
+by-turning
+BYU
+by-view
+by-walk
+bywalk
+bywalker
+by-walking
+bywalking
+byward
+by-wash
+by-water
+Bywaters
+by-way
+byway
+byways
+by-west
+by-wipe
+bywoner
+by-wood
+Bywoods
+by-word
+byword
+bywords
+by-work
+bywork
+byworks
+by-your-leave
+Byz
+Byz.
+byzant
+Byzantian
+byzantian
+Byzantine
+byzantine
+Byzantinesque
+Byzantinism
+Byzantinize
+Byzantium
+byzantium
+byzants
+Byzas
+Bz
+bz
+Bziers
+&c
+C
+C.
+c
+c.
+c/-
+C3
+C.A.
+C/A
+CA
+Ca
+ca
+ca'
+ca.
+CAA
+Caaba
+caaba
+caam
+caama
+caaming
+Caanthus
+caapeba
+caatinga
+CAB
+cab
+caba
+cabaa
+cabaan
+caback
+Cabaeus
+cabaho
+Cabal
+cabal
+cabala
+cabalas
+cabalassou
+cabaletta
+cabalic
+cabalism
+cabalisms
+cabalist
+cabalistic
+cabalistical
+cabalistically
+cabalists
+Caball
+caball
+caballed
+caballer
+caballeria
+caballero
+caballeros
+caballine
+caballing
+Caballo
+caballo
+caballos
+cabals
+caban
+cabana
+cabanas
+Cabanatuan
+cabane
+Cabanis
+cabaret
+cabaretier
+cabarets
+cabas
+cabasa
+cabasset
+cabassou
+Cabazon
+cabbage
+cabbaged
+cabbagehead
+cabbageheaded
+cabbageheadedness
+cabbagelike
+cabbages
+cabbagetown
+cabbage-tree
+cabbagewood
+cabbageworm
+cabbaging
+cabbagy
+cabbala
+cabbalah
+cabbalahs
+cabbalas
+cabbalism
+cabbalist
+cabbalistic
+cabbalistical
+cabbalistically
+cabbalize
+cabbed
+cabber
+cabbie
+cabbies
+cabbing
+cabble
+cabbled
+cabbler
+cabbling
+cabby
+cabda
+cabdriver
+cabdriving
+Cabe
+cabecera
+cabecudo
+Cabeiri
+cabeliau
+Cabell
+cabellerote
+caber
+Cabernet
+cabernet
+cabernets
+cabers
+Cabery
+cabestro
+cabestros
+Cabet
+cabezon
+cabezone
+cabezones
+cabezons
+cabful
+cabiai
+cabildo
+cabildos
+cabilliau
+Cabimas
+cabin
+cabin-class
+Cabinda
+cabined
+cabinet
+cabineted
+cabineting
+cabinetmake
+cabinet-maker
+cabinetmaker
+cabinetmakers
+cabinetmaking
+cabinetmakings
+cabinetry
+cabinets
+cabinetted
+cabinetwork
+cabinetworker
+cabinetworking
+cabinetworks
+cabining
+cabinlike
+Cabins
+cabins
+cabio
+Cabirean
+Cabiri
+Cabiria
+Cabirian
+Cabiric
+Cabiritic
+Cable
+cable
+cable-car
+cablecast
+cabled
+cablegram
+cablegrams
+cable-laid
+cablelaid
+cableless
+cablelike
+cableman
+cablemen
+cabler
+cables
+cablese
+cable-stitch
+cablet
+cablets
+cableway
+cableways
+cabling
+cablish
+cabman
+cabmen
+cabob
+cabobs
+caboceer
+caboche
+caboched
+cabochon
+cabochons
+cabocle
+caboclo
+caboclos
+Cabomba
+cabomba
+Cabombaceae
+cabombas
+caboodle
+caboodles
+cabook
+Cabool
+caboose
+cabooses
+Caborojo
+caboshed
+cabossed
+Cabot
+cabot
+cabotage
+cabotages
+cabotin
+cabotinage
+cabots
+cabouca
+Cabral
+cabre
+cabree
+Cabrera
+cabrerite
+cabresta
+cabrestas
+cabresto
+cabrestos
+cabret
+cabretta
+cabrettas
+cabreuva
+cabrie
+cabrilla
+cabrillas
+Cabrini
+cabriole
+cabrioles
+cabriolet
+cabriolets
+cabrit
+cabrito
+CABS
+cabs
+cabstand
+cabstands
+cabuja
+cabulla
+cabureiba
+caburn
+cabuya
+cabuyas
+CAC
+cac-
+Caca
+ca-ca
+caca
+cacaesthesia
+cacafuego
+cacafugo
+Cacajao
+Cacak
+Cacalia
+cacam
+Cacan
+Cacana
+cacanapa
+ca'canny
+cacanthrax
+cacao
+cacaos
+Cacara
+cacas
+Cacatua
+Cacatuidae
+Cacatuinae
+cacaxte
+Caccabis
+caccagogue
+caccia
+caccias
+cacciatora
+cacciatore
+Caccini
+Cacciocavallo
+cace
+cacei
+cacemphaton
+cacesthesia
+cacesthesis
+cachaca
+cachaemia
+cachaemic
+cachalot
+cachalote
+cachalots
+cachaza
+cache
+cache-cache
+cachectic
+cachectical
+cached
+cachemia
+cachemic
+cachepot
+cachepots
+caches
+cachespell
+cachet
+cacheted
+cachetic
+cacheting
+cachets
+cachexia
+cachexias
+cachexic
+cachexies
+cachexy
+cachibou
+cachila
+cachimailla
+cachina
+cachinate
+caching
+cachinnate
+cachinnated
+cachinnating
+cachinnation
+cachinnator
+cachinnatory
+cachoeira
+cacholong
+cachot
+cachou
+cachous
+cachrys
+cachua
+cachucha
+cachuchas
+cachucho
+cachunde
+caci
+Cacia
+Cacicus
+cacidrosis
+Cacie
+Cacilia
+Cacilie
+cacimbo
+cacimbos
+caciocavallo
+cacique
+caciques
+caciqueship
+caciquism
+cack
+Cacka
+cacked
+cackerel
+cack-handed
+cacking
+cackle
+cackled
+cackler
+cacklers
+cackles
+cackling
+cacks
+CACM
+caco-
+cacocholia
+cacochroia
+cacochylia
+cacochymia
+cacochymic
+cacochymical
+cacochymy
+cacocnemia
+cacodaemon
+cacodaemoniac
+cacodaemonial
+cacodaemonic
+cacodemon
+cacodemonia
+cacodemoniac
+cacodemonial
+cacodemonic
+cacodemonize
+cacodemonomania
+cacodontia
+cacodorous
+cacodoxian
+cacodoxical
+cacodoxy
+cacodyl
+cacodylate
+cacodylic
+cacodyls
+cacoeconomy
+cacoenthes
+cacoepist
+cacoepistic
+cacoepy
+cacoethes
+cacoethic
+cacogalactia
+cacogastric
+cacogenesis
+cacogenic
+cacogenics
+cacogeusia
+cacoglossia
+cacographer
+cacographic
+cacographical
+cacography
+cacolet
+cacolike
+cacological
+cacology
+cacomagician
+cacomelia
+cacomistle
+cacomixl
+cacomixle
+cacomixls
+cacomorphia
+cacomorphosis
+caconychia
+caconym
+caconymic
+cacoon
+cacopathy
+cacopharyngia
+cacophonia
+cacophonic
+cacophonical
+cacophonically
+cacophonies
+cacophonist
+cacophonists
+cacophonize
+cacophonous
+cacophonously
+cacophony
+cacophthalmia
+cacoplasia
+cacoplastic
+cacoproctia
+cacorhythmic
+cacorrhachis
+cacorrhinia
+cacosmia
+cacospermia
+cacosplanchnia
+cacostomia
+cacothansia
+cacothelin
+cacotheline
+cacothes
+cacothesis
+cacothymia
+cacotopia
+cacotrichia
+cacotrophia
+cacotrophic
+cacotrophy
+cacotype
+cacoxene
+cacoxenite
+caco-zeal
+cacozeal
+cacozealous
+cacozyme
+cacqueteuse
+cacqueteuses
+Cactaceae
+cactaceous
+cactal
+Cactales
+cacti
+cactiform
+cactoid
+Cactus
+cactus
+cactuses
+cactuslike
+cacumen
+cacuminal
+cacuminate
+cacumination
+cacuminous
+cacur
+Cacus
+CAD
+Cad
+cad
+Cadal
+cadalene
+cadamba
+cadaster
+cadasters
+cadastral
+cadastrally
+cadastration
+cadastre
+cadastres
+cadaver
+cadaveric
+cadaverin
+cadaverine
+cadaverize
+cadaverous
+cadaverously
+cadaverousness
+cadavers
+cadbait
+cadbit
+cadbote
+CADD
+Caddaric
+cadded
+caddesse
+caddice
+caddiced
+caddicefly
+caddices
+Caddie
+caddie
+caddied
+caddies
+caddiing
+cadding
+caddis
+caddised
+caddises
+caddisflies
+caddisfly
+caddish
+caddishly
+caddishness
+caddishnesses
+caddisworm
+caddle
+Caddo
+Caddoan
+caddow
+Caddric
+caddy
+caddying
+-cade
+Cade
+cade
+cadeau
+cadee
+Cadel
+Cadell
+cadelle
+cadelles
+Cadena
+Cadence
+cadence
+cadenced
+cadences
+cadencies
+cadencing
+cadency
+cadenette
+cadent
+cadential
+Cadenza
+cadenza
+cadenzas
+cader
+caderas
+cadere
+Cades
+cades
+cadesse
+Cadet
+cadet
+cadetcy
+cadets
+cadetship
+cadette
+cadettes
+cadew
+cadge
+cadged
+cadger
+cadgers
+cadges
+cadgily
+cadginess
+cadging
+cadgy
+cadi
+cadie
+cadilesker
+Cadillac
+cadillac
+cadillacs
+cadillo
+cadinene
+cadis
+cadish
+cadism
+cadiueio
+Cadiz
+cadjan
+cadlock
+Cadman
+Cadmann
+Cadmar
+Cadmarr
+Cadmean
+cadmean
+cadmia
+cadmic
+cadmide
+cadmiferous
+cadmium
+cadmiumize
+cadmiums
+Cadmopone
+Cadmus
+cadmus
+Cadogan
+Cadorna
+cados
+Cadott
+cadouk
+cadrans
+cadre
+cadres
+cads
+cadua
+caduac
+caduca
+caducary
+caducean
+caducecaducean
+caducecei
+caducei
+caduceus
+caduciaries
+caduciary
+caducibranch
+Caducibranchiata
+caducibranchiate
+caducicorn
+caducities
+caducity
+caducous
+caduke
+cadus
+CADV
+Cadwal
+Cadwallader
+cadweed
+Cadwell
+cadwell
+Cady
+cady
+cadying
+Cadyville
+Cadzand
+CAE
+cae-
+caeca
+caecal
+caecally
+caecectomy
+caecias
+caeciform
+Caecilia
+Caeciliae
+caecilian
+Caeciliidae
+caecitis
+caecity
+caecocolic
+caecostomy
+caecotomy
+caecum
+Caedmon
+Caedmonian
+Caedmonic
+Caeli
+Caelian
+caelometer
+Caelum
+caelum
+Caelus
+Caen
+caen-
+Caeneus
+Caenis
+Caenogaea
+Caenogaean
+caenogenesis
+caenogenetic
+caenogenetically
+Caenolestes
+caenostylic
+caenostyly
+Caenozoic
+caenozoic
+caen-stone
+caeoma
+caeomas
+caeremoniarius
+Caerleon
+Caernarfon
+Caernarvon
+Caernarvonshire
+Caerphilly
+Caesalpinia
+Caesalpiniaceae
+caesalpiniaceous
+Caesar
+caesar
+Caesaraugusta
+Caesardom
+Caesarea
+Caesarean
+caesarean
+Caesareanize
+caesareans
+Caesaria
+Caesarian
+caesarian
+Caesarism
+caesarism
+Caesarist
+caesarists
+Caesarize
+caesaropapacy
+caesaropapism
+caesaropapist
+caesaropopism
+Caesarotomy
+caesars
+Caesarship
+caesious
+caesium
+caesiums
+caespitose
+caespitosely
+caestus
+caestuses
+caesura
+caesurae
+caesural
+caesuras
+caesuric
+Caetano
+C.A.F.
+CAF
+caf
+cafard
+cafardise
+CAFE
+cafe
+cafeneh
+cafenet
+cafes
+cafe-society
+cafetal
+cafeteria
+cafeterias
+cafetiere
+cafetorium
+caff
+caffa
+caffeate
+caffeic
+caffein
+caffeina
+caffeine
+caffeines
+caffeinic
+caffeinism
+caffeins
+caffeism
+caffeol
+caffeone
+caffetannic
+caffetannin
+caffiaceous
+caffiso
+caffle
+caffled
+caffling
+caffoline
+caffoy
+caffre
+Caffrey
+cafh
+Cafiero
+cafila
+cafiz
+cafoy
+caftan
+caftaned
+caftans
+cafuso
+cag
+Cagayan
+cagayan
+cagayans
+Cage
+cage
+caged
+cageful
+cagefuls
+cageless
+cagelike
+cageling
+cagelings
+cageman
+cageot
+cager
+cager-on
+cagers
+cages
+cagester
+cagework
+cagey
+cageyness
+caggy
+cag-handed
+cagier
+cagiest
+cagily
+caginess
+caginesses
+caging
+cagit
+Cagle
+Cagliari
+Cagliostro
+cagmag
+Cagn
+Cagney
+cagot
+Cagoulard
+Cagoulards
+cagoule
+CAGR
+Caguas
+cagui
+cagy
+Cahan
+Cahenslyism
+cahier
+cahiers
+Cahill
+cahill
+Cahilly
+cahincic
+Cahita
+cahiz
+Cahn
+Cahnite
+Cahokia
+Cahone
+cahoot
+cahoots
+Cahors
+cahot
+cahow
+cahows
+Cahra
+Cahuapana
+Cahuilla
+cahuita
+cahuy
+CAI
+Cai
+cai
+Caia
+Caiaphas
+caiarara
+caic
+caickle
+Caicos
+caid
+caids
+cailcedra
+Cailean
+caille
+Cailleac
+cailleach
+cailliach
+Cailly
+caimacam
+caimakam
+caiman
+caimans
+caimitillo
+caimito
+Cain
+cain
+Cain-colored
+-caine
+Caine
+Caines
+Caingang
+Caingangs
+caingin
+Caingua
+ca'ing-whale
+Cainian
+Cainish
+Cainism
+Cainite
+Cainitic
+cainogenesis
+Cainozoic
+cainozoic
+cains
+Cainsville
+caiper-callie
+caique
+caiquejee
+caiques
+cair
+Cairba
+Caird
+caird
+cairds
+Cairene
+cairene
+Cairistiona
+cairn
+Cairnbrook
+cairned
+cairngorm
+cairngorum
+cairn-headed
+Cairns
+cairns
+cairny
+Cairo
+cairo
+CAIS
+caisse
+caisson
+caissoned
+caissons
+Caitanyas
+Caite
+Caithness
+caitif
+caitiff
+caitiffs
+caitifty
+Caitlin
+Caitrin
+Caius
+caixinha
+Cajan
+cajan
+cajang
+Cajanus
+cajaput
+cajaputs
+cajava
+cajeput
+cajeputol
+cajeputole
+cajeputs
+cajeta
+cajole
+cajoled
+cajolement
+cajolements
+cajoler
+cajoleries
+cajolers
+cajolery
+cajoles
+cajoling
+cajolingly
+cajon
+cajones
+cajou
+cajuela
+Cajun
+cajun
+cajuns
+cajuput
+cajuputene
+cajuputol
+cajuputs
+Cakavci
+Cakchikel
+cake
+cakebox
+cakebread
+caked
+cake-eater
+cakehouse
+cakemaker
+cakemaking
+cake-mixing
+caker
+cakes
+cakette
+cakewalk
+cakewalked
+cakewalker
+cakewalking
+cakewalks
+cakey
+cakier
+cakiest
+Cakile
+caking
+cakra
+cakravartin
+caky
+Cal
+Cal.
+cal
+cal.
+calaba
+Calabar
+calabar
+calabar-bean
+Calabari
+Calabasas
+calabash
+calabashes
+calabaza
+calabazilla
+calaber
+calaboose
+calabooses
+calabozo
+calabrasella
+Calabrese
+calabrese
+Calabresi
+Calabria
+Calabrian
+calabrian
+calabrians
+calabur
+calade
+Caladium
+caladium
+caladiums
+Calah
+calahan
+Calais
+calais
+calaite
+Calakmul
+calalu
+Calama
+Calamagrostis
+calamanco
+calamancoes
+calamancos
+calamander
+calamansi
+calamar
+calamari
+Calamariaceae
+calamariaceous
+Calamariales
+calamarian
+calamaries
+calamarioid
+calamarmar
+calamaroid
+calamars
+calamary
+calambac
+calambour
+calami
+calamiferious
+calamiferous
+calamiform
+calaminaris
+calaminary
+calamine
+calamined
+calamines
+calamining
+calamint
+Calamintha
+calamints
+calamistral
+calamistrate
+calamistrum
+calamite
+calamitean
+Calamites
+calamites
+calamities
+calamitoid
+calamitous
+calamitously
+calamitousness
+calamitousnesses
+calamity
+Calamodendron
+calamondin
+Calamopitys
+Calamospermae
+Calamostachys
+calamumi
+calamus
+Calan
+calander
+calando
+Calandra
+calandre
+Calandria
+calandria
+Calandridae
+Calandrinae
+Calandrinia
+calangay
+calanid
+calanque
+calantas
+Calantha
+Calanthe
+calanthe
+Calapan
+calapite
+calapitte
+Calappa
+Calappidae
+Calas
+calascione
+calash
+calashes
+calastic
+Calathea
+calathea
+calathi
+calathian
+calathidia
+calathidium
+calathiform
+calathisci
+calathiscus
+calathos
+calaththi
+calathus
+Calatrava
+calavance
+calaverite
+Calbert
+calbroben
+calc
+calc-
+calcaemia
+calcaire
+calcanea
+calcaneal
+calcanean
+calcanei
+calcaneoastragalar
+calcaneoastragaloid
+calcaneocuboid
+calcaneofibular
+calcaneonavicular
+calcaneoplantar
+calcaneoscaphoid
+calcaneotibial
+calcaneum
+calcaneus
+calcannea
+calcannei
+calc-aphanite
+calcar
+calcarate
+calcarated
+Calcarea
+calcareo-
+calcareoargillaceous
+calcareobituminous
+calcareocorneous
+calcareosiliceous
+calcareosulphurous
+calcareous
+calcareously
+calcareousness
+calcaria
+calcariferous
+calcariform
+calcarine
+calcarium
+calcars
+calcate
+calcavella
+calceate
+calced
+calcedon
+calcedony
+calceiform
+calcemia
+Calceolaria
+calceolaria
+calceolate
+calceolately
+calces
+calce-scence
+calceus
+Calchaqui
+Calchaquian
+Calchas
+calchas
+calche
+calci
+calci-
+calcic
+calciclase
+calcicole
+calcicolous
+calcicosis
+calciferol
+Calciferous
+calciferous
+calcific
+calcification
+calcifications
+calcified
+calcifies
+calciform
+calcifugal
+calcifuge
+calcifugous
+calcify
+calcifying
+calcigenous
+calcigerous
+calcimeter
+calcimine
+calcimined
+calciminer
+calcimines
+calcimining
+calcinable
+calcinate
+calcination
+calcinator
+calcinatory
+calcine
+calcined
+calciner
+calcines
+calcining
+calcinize
+calcino
+calcinosis
+calcio-
+calciobiotite
+calciocarnotite
+calcioferrite
+calcioscheelite
+calciovolborthite
+calcipexy
+calciphile
+calciphilia
+calciphilic
+calciphilous
+calciphobe
+calciphobic
+calciphobous
+calciphylactic
+calciphylactically
+calciphylaxis
+calciphyre
+calciprivic
+calcisponge
+Calcispongiae
+calcite
+calcites
+calcitestaceous
+calcitic
+calcitonin
+calcitrant
+calcitrate
+calcitration
+calcitreation
+calcium
+calciums
+calcivorous
+calco-
+calcographer
+calcographic
+calcography
+calcomp
+calcrete
+calc-sinter
+calcsinter
+calc-spar
+calcspar
+calcspars
+calc-tufa
+calctufa
+calctufas
+calc-tuff
+calctuff
+calctuffs
+calculabilities
+calculability
+calculable
+calculableness
+calculably
+Calculagraph
+calcular
+calculary
+calculate
+calculated
+calculatedly
+calculatedness
+calculates
+calculating
+calculatingly
+calculation
+calculational
+calculations
+calculative
+calculator
+calculators
+calculatory
+calculer
+calculi
+calculiform
+calculifrage
+calculist
+calculous
+calculus
+calculuses
+Calcutta
+calcutta
+Calcydon
+caldadaria
+caldaria
+caldarium
+Caldeira
+calden
+Calder
+Caldera
+caldera
+calderas
+Calderca
+calderium
+Calderon
+calderon
+CaldoraCaldwell
+caldron
+caldrons
+Caldwell
+Cale
+calean
+Caleb
+Calebite
+calebite
+calebites
+caleche
+caleches
+Caledonia
+Caledonian
+caledonian
+caledonite
+calef
+calefacient
+calefaction
+calefactive
+calefactor
+calefactories
+calefactory
+calefy
+calelectric
+calelectrical
+calelectricity
+calembour
+Calemes
+Calen
+calenda
+calendal
+calendar
+calendared
+calendarer
+calendarial
+calendarian
+calendaric
+calendaring
+calendarist
+calendar-making
+calendars
+calendas
+Calender
+calender
+calendered
+calenderer
+calendering
+calenders
+Calendra
+Calendre
+calendric
+calendrical
+calendry
+calends
+Calendula
+calendula
+calendulas
+calendulin
+calentural
+calenture
+calentured
+calenturing
+calenturish
+calenturist
+calepin
+Calera
+calesa
+calesas
+calescence
+calescent
+calesero
+calesin
+Calesta
+Caletor
+Calexico
+calf
+calfbound
+calfdozer
+calfhood
+calfish
+calfkill
+calfless
+calflike
+calfling
+calfret
+calfs
+calf's-foot
+calf-skin
+calfskin
+calfskins
+Calgary
+calgary
+calgon
+Calhan
+Calhoun
+Cali
+cali-
+Calia
+Caliban
+caliban
+Calibanism
+caliber
+calibered
+calibers
+calibogus
+calibrate
+calibrated
+calibrater
+calibrates
+calibrating
+calibration
+calibrations
+calibrator
+calibrators
+calibre
+calibred
+calibres
+Caliburn
+caliburn
+Caliburno
+calic
+Calica
+calicate
+calices
+caliche
+caliches
+caliciform
+calicle
+calicles
+calico
+calicoback
+calicoed
+calicoes
+calicos
+calicular
+caliculate
+caliculi
+caliculus
+Calicut
+calid
+Calida
+calidity
+caliduct
+Calie
+Caliente
+Calif
+Calif.
+calif
+califate
+califates
+Califon
+California
+california
+Californian
+californian
+californiana
+californians
+californicus
+californite
+Californium
+californium
+califs
+caliga
+caligate
+caligated
+caligation
+caliginosity
+caliginous
+caliginously
+caliginousness
+caligo
+caligrapher
+caligraphy
+Caligula
+caligulism
+calili
+calimanco
+calimancos
+Calimere
+Calimeris
+calin
+calina
+Calinago
+calinda
+calindas
+caline
+Calinog
+calinut
+Calio
+caliological
+caliologist
+caliology
+Calion
+calipash
+calipashes
+Calipatria
+calipee
+calipees
+caliper
+calipered
+caliperer
+calipering
+calipers
+calipeva
+caliph
+caliphal
+caliphate
+caliphates
+caliphs
+caliphship
+calippic
+Calippus
+Calisa
+calisaya
+calisayas
+Calise
+Calista
+calistheneum
+calisthenic
+calisthenical
+calisthenics
+Calistoga
+Calite
+caliver
+calix
+Calixtin
+calixtin
+Calixtine
+Calixto
+Calixtus
+calk
+calkage
+calked
+calker
+calkers
+calkin
+calking
+Calkins
+calkins
+calks
+Call
+call
+Calla
+calla
+calla-
+callable
+callaesthetic
+Callaghan
+Callahan
+callainite
+callais
+callaloo
+callaloos
+Callan
+callan
+Callands
+callans
+callant
+callants
+Callao
+Callas
+callas
+callat
+callate
+Callaway
+callback
+callbacks
+call-board
+callboy
+callboys
+call-down
+Calle
+Callean
+called
+Callender
+Callensburg
+caller
+callers
+Callery
+Calles
+calles
+callet
+callets
+Calley
+call-fire
+Calli
+calli
+calli-
+Callianassa
+Callianassidae
+Calliandra
+Callicarpa
+Callicebus
+Callicoon
+Callicrates
+callid
+Callida
+Callidice
+callidity
+callidness
+Callie
+calligram
+calligraph
+calligrapha
+calligrapher
+calligraphers
+calligraphic
+calligraphical
+calligraphically
+calligraphist
+calligraphy
+Calliham
+Callimachus
+calling
+calling-down
+calling-over
+callings
+Callionymidae
+Callionymus
+Calliope
+calliope
+calliopean
+calliopes
+calliophone
+Calliopsis
+calliopsis
+callipash
+callipee
+callipees
+calliper
+callipered
+calliperer
+callipering
+callipers
+Calliphora
+calliphorid
+Calliphoridae
+calliphorine
+Callipolis
+callippic
+Callippus
+Callipus
+callipygian
+callipygous
+Callirrhoe
+Callisaurus
+callisection
+callis-sand
+Callista
+Calliste
+callisteia
+Callistemon
+Callistephus
+callisthenic
+callisthenics
+Callisto
+callisto
+Callithrix
+callithrix
+callithump
+callithumpian
+Callitrichaceae
+callitrichaceous
+Callitriche
+callitriche
+Callitrichidae
+Callitris
+callitype
+callityped
+callityping
+callo
+call-off
+calloo
+callop
+Callorhynchidae
+Callorhynchus
+callosal
+callose
+calloses
+callosities
+callosity
+callosomarginal
+callosum
+Callot
+callot
+callous
+calloused
+callouses
+callousing
+callously
+callousness
+callousnesses
+call-out
+callout
+call-over
+Callovian
+callow
+Calloway
+callower
+callowest
+callowman
+callowness
+callownesses
+calls
+Callum
+callum
+Calluna
+Calluori
+call-up
+callus
+callused
+calluses
+callusing
+Cally
+Callynteria
+calm
+calmant
+Calmar
+Calmas
+calmative
+calmato
+calmecac
+calmed
+calmer
+calmest
+calm-eyed
+calmier
+calmierer
+calmiest
+calming
+calmingly
+calmly
+calm-minded
+calmness
+calmnesses
+calms
+calm-throated
+calmy
+calo-
+Calocarpum
+Calochortaceae
+Calochortus
+calodaemon
+calodemon
+calodemonial
+calogram
+calography
+calomba
+calombigas
+calombo
+calomel
+calomels
+calomorphic
+Calondra
+Calonectria
+Calon-segur
+Calonyction
+calool
+Calophyllum
+Calopogon
+calor
+Calore
+caloreceptor
+calorescence
+calorescent
+caloric
+calorically
+caloricity
+calorics
+caloriduct
+Calorie
+calorie
+calorie-counting
+calories
+calorifacient
+calorific
+calorifical
+calorifically
+calorification
+calorifics
+calorifier
+calorify
+calorigenic
+calorimeter
+calorimeters
+calorimetric
+calorimetrical
+calorimetrically
+calorimetry
+calorimotor
+caloris
+calorisator
+calorist
+Calorite
+calorize
+calorized
+calorizer
+calorizes
+calorizing
+calory
+Calosoma
+calosoma
+Calotermes
+calotermitid
+Calotermitidae
+Calothrix
+calotin
+calotte
+calottes
+calotype
+calotypic
+calotypist
+caloyer
+caloyers
+calp
+calpac
+calpack
+calpacked
+calpacks
+calpacs
+Calpe
+calpolli
+calpul
+calpulli
+Calpurnia
+calque
+calqued
+calques
+calquing
+CALRS
+CALS
+cals
+calsouns
+Caltanissetta
+Caltech
+Caltha
+caltha
+calthrop
+calthrops
+caltrap
+caltraps
+caltrop
+caltrops
+calumba
+Calumet
+calumet
+calumets
+calumnia
+calumniate
+calumniated
+calumniates
+calumniating
+calumniation
+calumniations
+calumniative
+calumniator
+calumniators
+calumniatory
+calumnies
+calumnious
+calumniously
+calumniousness
+calumny
+caluptra
+Calusa
+calusar
+calutron
+calutrons
+Calv
+Calva
+Calvados
+calvados
+calvadoses
+calvaire
+Calvano
+calvaria
+calvarial
+calvarias
+Calvaries
+calvaries
+calvarium
+Calvary
+calvary
+Calvatia
+Calve
+calve
+calved
+calver
+Calvert
+Calverton
+calves
+Calvin
+calvin
+Calvina
+calving
+Calvinian
+calvinian
+Calvinism
+calvinism
+Calvinist
+calvinist
+Calvinistic
+calvinistic
+Calvinistical
+Calvinistically
+calvinists
+Calvinize
+calvinize
+Calvinna
+calvish
+calvities
+calvity
+Calvo
+calvous
+calvus
+calx
+calxes
+calybite
+calycanth
+Calycanthaceae
+calycanthaceous
+calycanthemous
+calycanthemy
+calycanthin
+calycanthine
+Calycanthus
+calycanthus
+calycate
+Calyce
+calyceal
+Calyceraceae
+calyceraceous
+calyces
+calyciferous
+calycifloral
+calyciflorate
+calyciflorous
+calyciform
+calycinal
+calycine
+calycle
+calycled
+calycles
+calycli
+Calycocarpum
+calycoid
+calycoideous
+Calycophora
+Calycophorae
+calycophoran
+Calycozoa
+calycozoan
+calycozoic
+calycozoon
+calycular
+calyculate
+calyculated
+calycule
+calyculi
+calyculus
+Calydon
+Calydonian
+Calymene
+calymma
+calyon
+calyphyomy
+calypsist
+Calypso
+calypso
+calypsoes
+calypsonian
+Calypsos
+calypsos
+calypter
+Calypterae
+calypters
+Calyptoblastea
+calyptoblastic
+Calyptorhynchus
+calyptra
+Calyptraea
+Calyptranthes
+calyptras
+Calyptrata
+Calyptratae
+calyptrate
+calyptriform
+calyptrimorphous
+calyptro
+calyptrogen
+Calyptrogyne
+Calysta
+Calystegia
+calyx
+calyxes
+calzada
+calzone
+calzoneras
+calzones
+calzoons
+CAM
+Cam
+cam
+CAMA
+CAMAC
+camaca
+Camacan
+camacey
+camachile
+Camacho
+Camag
+camagon
+Camaguey
+camaieu
+camail
+camaile
+camailed
+camails
+Camak
+camaka
+Camala
+Camaldolensian
+Camaldolese
+Camaldolesian
+Camaldolite
+camaldolite
+Camaldule
+Camaldulian
+camalig
+camalote
+caman
+camanay
+camanchaca
+Camanche
+camansi
+camara
+camarada
+camarade
+camaraderie
+camaraderies
+Camarasaurus
+camarasaurus
+Camarata
+camarera
+Camargo
+camarilla
+camarillas
+Camarillo
+camarin
+camarine
+camaron
+Camas
+camas
+camases
+camass
+camasses
+Camassia
+camata
+camatina
+camauro
+camauros
+Camaxtli
+camay
+Camb
+Camb.
+camb
+Camball
+Cambalo
+Cambarus
+Cambay
+cambaye
+camber
+cambered
+cambering
+camber-keeled
+cambers
+Camberwell
+Cambeva
+cambia
+cambial
+cambiata
+cambibia
+cambiform
+cambio
+cambiogenetic
+cambion
+cambism
+cambisms
+cambist
+cambistry
+cambists
+cambium
+cambiums
+camblet
+Cambodia
+cambodia
+Cambodian
+cambodian
+cambodians
+camboge
+cambogia
+cambogias
+Cambon
+camboose
+Camborne-Redruth
+cambouis
+Cambra
+Cambrai
+cambrel
+cambresine
+Cambria
+Cambrian
+cambrian
+Cambric
+cambric
+cambricleaf
+cambrics
+Cambridge
+cambridge
+Cambridgeport
+Cambridgeshire
+Cambro-briton
+Cambs
+cambuca
+Cambuscan
+Camby
+Cambyses
+Cambyuskan
+Camden
+camden
+Camdenton
+Came
+came
+cameist
+Camel
+camel
+camelback
+camel-backed
+cameleer
+cameleers
+cameleon
+camel-faced
+camel-grazing
+camel-hair
+camelhair
+camel-haired
+camelia
+camelias
+Camelid
+Camelidae
+Camelina
+cameline
+camelion
+camelish
+camelishness
+camelkeeper
+camel-kneed
+Camella
+Camellia
+camellia
+Camelliaceae
+camellias
+camellike
+camellin
+Camellus
+camelman
+cameloid
+Cameloidea
+camelopard
+Camelopardalis
+camelopardel
+Camelopardid
+Camelopardidae
+camelopards
+Camelopardus
+Camelot
+camelot
+camelry
+camels
+camel's-hair
+camel-shaped
+Camelus
+camel-yarn
+Camembert
+camembert
+Camena
+Camenae
+Camenes
+camenes
+Cameo
+cameo
+cameoed
+cameograph
+cameography
+cameoing
+cameos
+camera
+camerae
+camera-eye
+cameral
+cameralism
+cameralist
+cameralistic
+cameralistics
+cameraman
+cameramen
+cameras
+camera-shy
+Camerata
+camerate
+camerated
+cameration
+camerawork
+camerier
+cameriera
+camerieri
+Camerina
+camerine
+Camerinidae
+camerist
+camerlengo
+camerlengos
+camerlingo
+camerlingos
+Cameron
+Cameronian
+cameronian
+cameronians
+Cameroon
+cameroon
+cameroonian
+cameroonians
+Cameroons
+Cameroun
+camery
+cames
+Camestres
+camestres
+Camey
+Camfort
+Cami
+camias
+Camiguin
+camiknickers
+Camila
+Camile
+Camilia
+Camilla
+camilla
+Camille
+Camillo
+Camillus
+camillus
+Camilo
+Camino
+camino
+camion
+camions
+Camirus
+camis
+camisa
+camisade
+camisades
+camisado
+camisadoes
+camisados
+Camisard
+camisard
+camisas
+camiscia
+camise
+camises
+camisia
+camisias
+camisole
+camisoles
+camister
+camize
+camla
+camlet
+camleted
+camleteen
+camletine
+camleting
+camlets
+camletted
+camletting
+CAMM
+Camm
+Cammaerts
+Cammal
+Cammarum
+cammas
+cammed
+Cammi
+Cammie
+cammock
+cammocky
+Cammy
+camoca
+Camoens
+camogie
+camois
+camomile
+camomiles
+camooch
+camoodi
+camoodie
+Camorist
+Camorra
+camorra
+camorras
+Camorrism
+camorrism
+Camorrist
+Camorrista
+camorrista
+camorristi
+camote
+camoudie
+camouflage
+camouflageable
+camouflaged
+camouflager
+camouflagers
+camouflages
+camouflagic
+camouflaging
+camouflet
+camoufleur
+camoufleurs
+CAMP
+Camp
+camp
+Campa
+campagi
+Campagna
+campagna
+Campagne
+campagne
+campagnol
+campagnols
+campagus
+campaign
+campaigned
+campaigner
+campaigners
+campaigning
+campaigns
+campal
+campana
+campane
+campanella
+campanero
+Campania
+campania
+Campanian
+campaniform
+campanile
+campaniles
+campanili
+campaniliform
+campanilla
+campanini
+campanist
+campanistic
+campanologer
+campanological
+campanologically
+campanologist
+campanologists
+campanology
+Campanula
+campanula
+Campanulaceae
+campanulaceous
+Campanulales
+campanular
+Campanularia
+Campanulariae
+campanularian
+Campanularidae
+Campanulatae
+campanulate
+campanulated
+campanulous
+Campanus
+Campari
+Campaspe
+Campball
+Campbell
+campbell
+Campbell-Bannerman
+Campbellism
+campbellism
+campbellisms
+Campbellite
+campbellite
+campbellites
+Campbellsburg
+Campbellsville
+Campbellton
+Campbelltown
+Campbeltown
+campcraft
+Campe
+Campeche
+campeche
+camped
+campement
+Campephagidae
+campephagine
+Campephilus
+camper
+campers
+campership
+campesino
+campesinos
+campestral
+campestrian
+camp-fight
+campfight
+campfire
+campfires
+campground
+campgrounds
+camph-
+camphane
+camphanic
+camphanone
+camphanyl
+camphene
+camphenes
+camphine
+camphines
+camphire
+camphires
+campho
+camphocarboxylic
+camphoid
+camphol
+campholic
+campholide
+camphols
+campholytic
+camphor
+camphoraceous
+camphorate
+camphorated
+camphorates
+camphorating
+camphoric
+camphorize
+camphorone
+camphoronic
+camphoroyl
+camphorphorone
+camphors
+camphorweed
+camphorwood
+camphory
+camphoryl
+camphylene
+campi
+campier
+campiest
+Campignian
+campilan
+campily
+campimeter
+campimetrical
+campimetry
+Campinas
+Campine
+campiness
+camping
+campings
+Campion
+campion
+campions
+campit
+cample
+Campman
+campman
+campmaster
+camp-meeting
+Campney
+Campo
+campo
+Campobello
+Campodea
+campodean
+campodeid
+Campodeidae
+campodeiform
+campodeoid
+campody
+Campoformido
+campong
+campongs
+Camponotus
+campoo
+campoody
+Camporeale
+camporee
+camporees
+Campos
+campos
+camp-out
+campout
+camps
+campshed
+camp-shedding
+campshedding
+campsheeting
+camp-shot
+campshot
+camp-site
+campsite
+campsites
+campstool
+campstools
+Campti
+camptodrome
+Campton
+camptonite
+Camptonville
+Camptosorus
+Camptown
+campulitropal
+campulitropous
+campus
+campused
+campuses
+campusses
+campward
+Campwood
+Campy
+campy
+campylite
+campylodrome
+campylometer
+Campyloneuron
+campylospermous
+campylotropal
+campylotropous
+CAMRA
+cams
+camshach
+camshachle
+camshaft
+camshafts
+camstane
+camsteary
+camsteery
+camstone
+camstrary
+camuning
+Camus
+camus
+camuse
+camused
+camuses
+Camuy
+cam-wood
+camwood
+CAN
+Can
+Can.
+can
+can.
+Cana
+Canaan
+canaan
+Canaanite
+canaanite
+canaanites
+Canaanitess
+Canaanitic
+Canaanitish
+canaba
+canabae
+Canace
+Canacee
+canacuas
+Canad
+Canad.
+Canada
+canada
+Canadensis
+Canadian
+canadian
+Canadianism
+canadianisms
+Canadianization
+Canadianize
+Canadianized
+Canadianizing
+canadians
+canadine
+canadite
+canadol
+Canadys
+canafistola
+canafistolo
+canafistula
+canafistulo
+canaglia
+canaigre
+canaille
+canailles
+Canajoharie
+canajong
+canakin
+canakins
+Canakkale
+canal
+canalage
+canalatura
+canalboat
+canal-bone
+canal-built
+Canale
+canale
+canaled
+canaler
+canales
+canalete
+Canaletto
+canali
+canalicular
+canaliculate
+canaliculated
+canaliculation
+canaliculi
+canaliculization
+canaliculus
+canaliferous
+canaliform
+canaling
+canalis
+canalisation
+canalise
+canalised
+canalises
+canalising
+canalization
+canalizations
+canalize
+canalized
+canalizes
+canalizing
+canalla
+canalled
+canaller
+canallers
+canalling
+canalman
+Canalou
+canals
+canalside
+Canamary
+canamo
+Cananaean
+Canandaigua
+Canandelabrum
+Cananea
+Cananean
+Cananga
+Canangium
+canap
+canape
+canapes
+canapina
+Canara
+canard
+canards
+Canarese
+Canari
+canari
+Canarian
+Canaries
+canaries
+canarin
+canarine
+Canariote
+Canarium
+Canarsee
+Canary
+canary
+canary-bird
+canary-yellow
+Canaseraga
+canasta
+canastas
+canaster
+Canastota
+canaut
+Canavali
+Canavalia
+canavalin
+Canaveral
+can-beading
+Canberra
+canberra
+can-boxing
+can-buoy
+can-burnishing
+Canby
+canc
+canc.
+can-can
+cancan
+cancans
+can-capping
+canccelli
+cancel
+cancelability
+cancelable
+cancelation
+canceled
+canceleer
+canceler
+cancelers
+cancelier
+canceling
+cancellability
+cancellable
+cancellarian
+cancellarius
+cancellate
+cancellated
+cancellation
+cancellations
+cancelled
+canceller
+cancelli
+cancelling
+cancellous
+cancellus
+cancelment
+cancels
+Cancer
+cancer
+cancerate
+cancerated
+cancerating
+canceration
+cancerdrops
+cancered
+cancerigenic
+cancerin
+cancerism
+cancerite
+cancerization
+cancerlog
+cancerogenic
+cancerophobe
+cancerophobia
+cancerous
+cancerously
+cancerousness
+cancerphobia
+cancerroot
+cancers
+cancerweed
+cancerwort
+canch
+cancha
+canchalagua
+canchas
+Canchi
+canchito
+cancion
+cancionero
+canciones
+can-cleaning
+can-closing
+Cancri
+Cancrid
+cancrid
+cancriform
+can-crimping
+cancrine
+cancrinite
+cancrinite-syenite
+cancrisocial
+cancrivorous
+cancrizans
+cancroid
+cancroids
+cancrophagous
+cancrum
+cancrums
+Cancun
+Cand
+cand
+Candace
+candareen
+Candee
+candela
+candelabra
+candelabras
+candelabrum
+candelabrums
+candelas
+candelilla
+candency
+candent
+candescence
+candescent
+candescently
+Candi
+Candia
+Candice
+candid
+Candida
+candida
+candidacies
+candidacy
+candidas
+candidate
+candidated
+candidates
+candidateship
+candidating
+candidature
+candidatures
+Candide
+candide
+candider
+candidest
+candidiasis
+candidly
+candidness
+candidnesses
+candids
+Candie
+candied
+candiel
+candier
+candies
+candify
+candil
+Candiot
+Candiote
+candiru
+Candis
+candite
+candle
+candleball
+candle-beam
+candlebeam
+candle-bearing
+candleberries
+candleberry
+candlebomb
+candlebox
+candle-branch
+candled
+candle-dipper
+candle-end
+candlefish
+candlefishes
+candle-foot
+candle-holder
+candleholder
+candle-hour
+candlelight
+candlelighted
+candle-lighter
+candlelighter
+candlelighting
+candlelights
+candlelit
+candlemaker
+candlemaking
+Candlemas
+candlemas
+candle-meter
+candlenut
+candlepin
+candlepins
+candlepower
+Candler
+candler
+candle-rent
+candlerent
+candlers
+candles
+candle-shaped
+candleshine
+candleshrift
+candle-snuff
+candlesnuffer
+Candless
+candlestand
+candlestick
+candlesticked
+candlesticks
+candlestickward
+candle-tapering
+candle-tree
+candle-waster
+candlewaster
+candlewasting
+candlewick
+candlewicking
+candlewicks
+candle-wood
+candlewood
+candlewright
+candling
+Cando
+can-dock
+candock
+Candolle
+Candollea
+Candolleaceae
+candolleaceous
+Candor
+candor
+candors
+candour
+candours
+Candra
+candroy
+candroys
+canduc
+Candy
+candy
+Candyce
+candyfloss
+candyh
+candying
+candylike
+candymaker
+candymaking
+candys
+candystick
+candy-striped
+candytuft
+candyweed
+cane
+Canea
+Caneadea
+cane-backed
+cane-bottomed
+Canebrake
+canebrake
+canebrakes
+caned
+Caneghem
+canel
+canela
+canelas
+canelike
+canell
+canella
+Canellaceae
+canellaceous
+canellas
+canelle
+Canelo
+canelo
+canelos
+Canens
+caneology
+canephor
+canephora
+canephorae
+canephore
+canephori
+canephoroe
+canephoroi
+canephoros
+canephors
+cane-phorus
+canephorus
+canephroi
+canepin
+caner
+caners
+canes
+canescence
+canescene
+canescent
+cane-seated
+Canestrato
+caneton
+canette
+caneva
+Canevari
+caneware
+canewares
+canewise
+canework
+Caney
+Caneyville
+canezou
+CanF
+Canfield
+canfield
+canfieldite
+canfields
+can-filling
+can-flanging
+canful
+canfuls
+cangan
+cangenet
+cangia
+cangica-wood
+cangle
+cangler
+cangue
+cangues
+cangy
+canham
+can-heading
+can-hook
+canhoop
+Canica
+Canice
+Canichana
+Canichanan
+canicide
+canicola
+Canicula
+canicula
+canicular
+canicule
+canid
+Canidae
+Canidia
+canids
+Caniff
+canikin
+canikins
+canille
+caninal
+canine
+canines
+caning
+caniniform
+caninities
+caninity
+caninus
+canion
+canioned
+canions
+Canis
+Canisiana
+canistel
+Canisteo
+canister
+canisters
+Canistota
+canities
+canjac
+Canjilon
+cank
+canker
+cankerberry
+cankerbird
+canker-bit
+canker-bitten
+cankereat
+canker-eaten
+cankered
+cankeredly
+cankeredness
+cankerflower
+cankerfret
+canker-hearted
+cankering
+canker-mouthed
+cankerous
+cankerroot
+cankers
+canker-toothed
+cankerweed
+cankerworm
+cankerworms
+cankerwort
+cankery
+can-labeling
+can-lacquering
+canli
+can-lining
+canmaker
+canmaking
+canman
+can-marking
+Canmer
+Cann
+cann
+Canna
+canna
+cannabic
+cannabidiol
+cannabin
+Cannabinaceae
+cannabinaceous
+cannabine
+cannabinol
+cannabins
+Cannabis
+cannabis
+cannabises
+cannabism
+Cannaceae
+cannaceous
+cannach
+canna-down
+Cannae
+cannaled
+cannalling
+Cannanore
+cannas
+cannat
+canned
+cannel
+cannelated
+cannel-bone
+Cannelburg
+cannele
+Cannell
+cannellate
+cannellated
+cannelle
+cannelloni
+cannelon
+cannelons
+cannels
+Cannelton
+cannelure
+cannelured
+cannequin
+canner
+canneries
+canners
+cannery
+Cannes
+cannet
+cannetille
+cannibal
+cannibalean
+cannibalic
+cannibalish
+cannibalism
+cannibalisms
+cannibalistic
+cannibalistically
+cannibality
+cannibalization
+cannibalize
+cannibalized
+cannibalizes
+cannibalizing
+cannibally
+cannibals
+Cannice
+cannie
+cannier
+canniest
+cannikin
+cannikins
+cannily
+canniness
+canninesses
+Canning
+canning
+cannings
+cannister
+cannisters
+Cannizzaro
+Cannock
+cannoli
+Cannon
+cannon
+cannonade
+cannonaded
+cannonades
+cannonading
+cannonarchy
+cannon-ball
+cannonball
+cannonballed
+cannonballing
+cannonballs
+cannoned
+cannoneer
+cannoneering
+cannoneers
+cannonier
+cannoning
+Cannonism
+cannonism
+cannon-proof
+cannonproof
+cannonries
+cannon-royal
+cannonry
+cannons
+Cannonsburg
+cannon-shot
+Cannonville
+cannophori
+cannot
+Cannstatt
+cannula
+cannulae
+cannular
+cannulas
+Cannulate
+cannulate
+cannulated
+cannulating
+cannulation
+canny
+canoe
+canoed
+canoeing
+Canoeiro
+canoeist
+canoeists
+canoeload
+canoeman
+canoes
+canoewood
+Canoga
+canoing
+Canon
+canon
+canoncito
+Canones
+canones
+canoness
+canonesses
+canonic
+canonical
+canonicalization
+canonicalize
+canonicalized
+canonicalizes
+canonicalizing
+canonically
+canonicalness
+canonicals
+canonicate
+canonici
+canonicity
+canonics
+canonisation
+canonise
+canonised
+canoniser
+canonises
+canonising
+canonist
+canonistic
+canonistical
+canonists
+canonizant
+canonization
+canonizations
+canonize
+canonized
+canonizer
+canonizes
+canonizing
+canonlike
+canonries
+canonry
+canons
+Canonsburg
+canonship
+canoodle
+canoodled
+canoodler
+canoodles
+canoodling
+can-opener
+can-opening
+Canopic
+canopic
+canopid
+canopied
+canopies
+Canopus
+canopus
+canopy
+canopying
+canorous
+canorously
+canorousness
+canos
+Canossa
+Canotas
+canotier
+Canova
+Canovanas
+can-polishing
+can-quaffing
+canreply
+Canrobert
+canroy
+canroyer
+cans
+can-salting
+can-scoring
+can-sealing
+can-seaming
+cansful
+can-slitting
+Canso
+canso
+can-soldering
+cansos
+can-squeezing
+canst
+can-stamping
+can-sterilizing
+canstick
+Cant
+Cant.
+can't
+cant
+Cantab
+cantab
+cantabank
+cantabile
+Cantabri
+Cantabrian
+Cantabrigian
+cantabrigian
+Cantabrize
+Cantacuzene
+cantador
+Cantal
+cantala
+cantalas
+cantalever
+cantalite
+cantaliver
+cantaloup
+cantaloupe
+cantaloupes
+cantando
+cantankerous
+cantankerously
+cantankerousness
+cantankerousnesses
+cantar
+cantara
+cantare
+cantaro
+cantata
+cantatas
+Cantate
+cantate
+cantation
+cantative
+cantator
+cantatory
+cantatrice
+cantatrices
+cantatrici
+cantboard
+cantdog
+cantdogs
+canted
+canteen
+canteens
+cantefable
+cantel
+Canter
+canter
+Canterburian
+canterburian
+Canterburianism
+canterburies
+Canterbury
+canterbury
+cantered
+canterelle
+canterer
+cantering
+canters
+can-testing
+canthal
+Cantharellus
+canthari
+cantharic
+Cantharidae
+cantharidal
+cantharidate
+cantharidated
+cantharidating
+cantharidean
+cantharides
+cantharidian
+cantharidin
+cantharidism
+cantharidize
+cantharidized
+cantharidizing
+cantharis
+cantharophilous
+cantharus
+canthathari
+canthectomy
+canthi
+canthitis
+cantholysis
+canthoplasty
+canthorrhaphy
+canthotomy
+Canthus
+canthus
+canthuthi
+cantic
+canticle
+Canticles
+canticles
+cantico
+cantiga
+Cantigny
+Cantil
+cantil
+cantilated
+cantilating
+cantilena
+cantilene
+cantilenes
+cantilever
+cantilevered
+cantilevering
+cantilevers
+cantillate
+cantillated
+cantillating
+cantillation
+Cantillon
+cantily
+cantina
+cantinas
+cantiness
+canting
+cantingly
+cantingness
+cantinier
+cantino
+cantion
+cantish
+cantle
+cantles
+cantlet
+cantline
+cantling
+Cantlon
+canto
+Canton
+canton
+cantonal
+cantonalism
+Cantone
+cantoned
+cantoner
+Cantonese
+cantonese
+cantoning
+cantonize
+Cantonment
+cantonment
+cantonments
+cantons
+cantoon
+Cantor
+cantor
+cantoral
+cantoria
+cantorial
+Cantorian
+cantoris
+cantorous
+cantors
+cantorship
+Cantos
+cantos
+cantraip
+cantraips
+Cantrall
+cantrap
+cantraps
+cantred
+cantref
+Cantril
+cantrip
+cantrips
+cants
+Cantu
+Cantuar
+cantus
+cantut
+cantuta
+cantwise
+Canty
+canty
+Canuck
+canuck
+canula
+canulae
+canular
+canulas
+canulate
+canulated
+canulates
+canulating
+canun
+Canute
+Canutillo
+canvas
+canvasado
+canvas-back
+canvasback
+canvasbacks
+canvas-covered
+canvased
+canvaser
+canvasers
+canvases
+canvasing
+canvaslike
+canvasman
+canvass
+canvassed
+canvasser
+canvassers
+canvasses
+canvassing
+canvassy
+can-washing
+can-weighing
+can-wiping
+can-wrapping
+cany
+Canyon
+canyon
+canyons
+canyonside
+Canyonville
+canzo
+canzon
+canzona
+canzonas
+canzone
+canzones
+canzonet
+canzonets
+canzonetta
+canzoni
+canzos
+caoba
+Caodaism
+Caodaist
+caoine
+caon
+caoutchin
+caoutchouc
+caoutchoucin
+CAP
+cap
+cap.
+capa
+capabilities
+capability
+Capablanca
+capable
+capableness
+capabler
+capablest
+capably
+Capac
+capacify
+capacious
+capaciously
+capaciousness
+capacitance
+capacitances
+capacitate
+capacitated
+capacitates
+capacitating
+capacitation
+capacitations
+capacitative
+capacitativly
+capacitator
+capacities
+capacitive
+capacitively
+capacitor
+capacitors
+capacity
+Capaneus
+capanna
+capanne
+cap-a-pie
+caparison
+caparisoned
+caparisoning
+caparisons
+capataces
+capataz
+capax
+cap-case
+capcase
+Cape
+cape
+capeador
+capeadores
+capeadors
+caped
+Capefair
+Capek
+capel
+capelan
+capelans
+capelet
+capelets
+capelin
+capeline
+capelins
+Capella
+capella
+capellane
+capellet
+capelline
+Capello
+capelocracy
+Capels
+Capemay
+cape-merchant
+Capeneddick
+caper
+caperbush
+capercaillie
+capercailye
+capercailzie
+capercally
+caper-cut
+capercut
+caperdewsie
+capered
+caperer
+caperers
+capering
+caperingly
+Capernaism
+Capernaite
+capernaite
+Capernaitic
+Capernaitical
+Capernaitically
+Capernaitish
+Capernaum
+capernoited
+capernoitie
+capernoity
+capernutie
+capers
+capersome
+capersomeness
+caperwort
+capes
+capeskin
+capeskins
+Capet
+Capetian
+capetian
+Capetonian
+Capetown
+capetown
+capette
+Capeville
+capeweed
+capewise
+capework
+capeworks
+cap-flash
+capful
+capfuls
+Caph
+caph
+Cap-Haitien
+caphar
+capharnaism
+Caphaurus
+caphite
+caphs
+Caphtor
+Caphtorim
+capias
+capiases
+capiatur
+capibara
+capicha
+capilaceous
+capillaceous
+capillaire
+capillament
+capillarectasia
+capillaries
+capillarily
+capillarimeter
+capillariness
+capillariomotor
+capillarities
+capillaritis
+capillarity
+capillary
+capillation
+capillatus
+capilli
+capilliculture
+capilliform
+capillitia
+capillitial
+capillitium
+capillose
+capillus
+capilotade
+caping
+cap-in-hand
+Capistrano
+capistrate
+capita
+capital
+capitaldom
+capitaled
+capitaling
+capitalisable
+capitalise
+capitalised
+capitaliser
+capitalising
+capitalism
+capitalist
+capitalistic
+capitalistically
+capitalists
+capitalizable
+capitalization
+capitalizations
+capitalize
+capitalized
+capitalizer
+capitalizers
+capitalizes
+capitalizing
+capitally
+capitalness
+capitals
+Capitan
+capitan
+capitana
+capitano
+capitare
+capitasti
+capitate
+capitated
+capitatim
+capitation
+capitations
+capitative
+capitatum
+capite
+capiteaux
+capitella
+capitellar
+capitellate
+capitelliform
+capitellum
+capitle
+Capito
+Capitol
+capitol
+Capitola
+Capitolian
+Capitoline
+capitoline
+Capitolium
+capitols
+Capitonidae
+Capitoninae
+capitoul
+capitoulate
+capitula
+capitulant
+capitular
+capitularies
+capitularly
+capitulars
+capitulary
+capitulate
+capitulated
+capitulates
+capitulating
+capitulation
+capitulations
+capitulator
+capitulatory
+capituliform
+capitulum
+capiturlary
+capivi
+Capiz
+capkin
+Caplan
+caplan
+capless
+caplet
+caplets
+caplin
+capling
+caplins
+caplock
+capmaker
+capmakers
+capmaking
+capman
+capmint
+Cap'n
+Capnodium
+Capnoides
+capnomancy
+capnomor
+capo
+capoc
+capocchia
+capoche
+Capodacqua
+capomo
+Capon
+capon
+caponata
+caponatas
+Capone
+capone
+caponette
+caponier
+caponiere
+caponiers
+caponisation
+caponise
+caponised
+caponiser
+caponising
+caponization
+caponize
+caponized
+caponizer
+caponizes
+caponizing
+caponniere
+capons
+caporal
+caporals
+Caporetto
+capos
+capot
+capotasto
+capotastos
+Capote
+capote
+capotes
+capouch
+capouches
+CAPP
+Capp
+cappadine
+cappadochio
+Cappadocia
+Cappadocian
+cappae
+cappagh
+cap-paper
+capparid
+Capparidaceae
+capparidaceous
+Capparis
+capped
+cappelenite
+Cappella
+cappella
+cappelletti
+Cappello
+capper
+cappers
+cappie
+cappier
+cappiest
+capping
+cappings
+capple
+capple-faced
+Cappotas
+Capps
+cappuccino
+cappy
+Capra
+caprate
+Caprella
+Caprellidae
+caprelline
+capreol
+capreolar
+capreolary
+capreolate
+capreoline
+Capreolus
+capreomycin
+capretto
+Capri
+capric
+capriccetto
+capriccettos
+capricci
+capriccio
+capriccios
+capriccioso
+Caprice
+caprice
+caprices
+capricious
+capriciously
+capriciousness
+Capricorn
+capricorn
+Capricorni
+Capricornid
+capricorns
+Capricornus
+caprid
+caprificate
+caprification
+caprificator
+caprifig
+caprifigs
+caprifoil
+caprifole
+Caprifoliaceae
+caprifoliaceous
+Caprifolium
+caprifolium
+capriform
+caprigenous
+Caprimulgi
+Caprimulgidae
+Caprimulgiformes
+caprimulgine
+Caprimulgus
+caprin
+caprine
+caprinic
+Capriola
+capriole
+caprioled
+caprioles
+caprioling
+Capriote
+capriped
+capripede
+Capris
+capris
+caprizant
+caproate
+caprock
+caprocks
+caproic
+caproin
+Capromys
+Capron
+capron
+caprone
+capronic
+capronyl
+caproyl
+capryl
+caprylate
+caprylene
+caprylic
+caprylin
+caprylone
+caprylyl
+caps
+caps.
+capsa
+capsaicin
+Capsella
+Capshaw
+capsheaf
+capshore
+Capsian
+capsian
+capsicin
+capsicins
+Capsicum
+capsicum
+capsicums
+capsid
+Capsidae
+capsidal
+capsids
+capsizable
+capsizal
+capsize
+capsized
+capsizes
+capsizing
+capsomer
+capsomere
+capsomers
+capstan
+capstan-headed
+capstans
+cap-stone
+capstone
+capstones
+capsula
+capsulae
+capsular
+capsulate
+capsulated
+capsulation
+capsule
+capsulectomy
+capsuled
+capsuler
+capsules
+capsuli-
+capsuliferous
+capsuliform
+capsuligerous
+capsuling
+capsulitis
+capsulize
+capsulized
+capsulizing
+capsulociliary
+capsulogenous
+capsulolenticular
+capsulopupillary
+capsulorrhaphy
+capsulotome
+capsulotomy
+capsumin
+Capt
+Capt.
+captacula
+captaculum
+CAPTAIN
+captain
+captaincies
+Captaincook
+captaincy
+captained
+captainess
+captain-generalcy
+captaining
+captain-lieutenant
+captainly
+captainries
+captainry
+captains
+captainship
+captainships
+captan
+captance
+captandum
+captans
+captate
+captation
+caption
+captioned
+captioning
+captionless
+captions
+captious
+captiously
+captiousness
+Captiva
+captivance
+captivate
+captivated
+captivately
+captivates
+captivating
+captivatingly
+captivation
+captivations
+captivative
+captivator
+captivators
+captivatrix
+captive
+captived
+captives
+captiving
+captivities
+captivity
+captor
+captors
+captress
+capturable
+capture
+captured
+capturer
+capturers
+captures
+capturing
+Capua
+Capuan
+Capuanus
+capuche
+capuched
+capuches
+Capuchin
+capuchin
+capuchins
+capucine
+Capulet
+capulet
+capuli
+Capulin
+capulin
+caput
+Caputa
+caputium
+Caputo
+Caputto
+Capuzzo
+Capwell
+capybara
+capybaras
+Capys
+caque
+Caquet
+caquet
+caqueterie
+caqueteuse
+caqueteuses
+Caquetio
+caquetoire
+caquetoires
+CAR
+Car
+car
+Cara
+Carabancel
+carabao
+carabaos
+carabeen
+carabid
+Carabidae
+carabidan
+carabideous
+carabidoid
+carabids
+carabin
+carabine
+carabineer
+carabiner
+carabinero
+carabineros
+carabines
+Carabini
+carabinier
+carabiniere
+carabinieri
+carabins
+caraboa
+caraboid
+Carabus
+carabus
+caracal
+Caracalla
+caracals
+caracara
+caracaras
+Caracas
+caracas
+carack
+caracks
+caraco
+caracoa
+caracol
+caracole
+caracoled
+caracoler
+caracoles
+caracoli
+caracoling
+caracolite
+caracolled
+caracoller
+caracolling
+caracols
+caracora
+caracore
+caract
+Caractacus
+caracter
+caracul
+caraculs
+Caradoc
+Caradon
+carafe
+carafes
+carafon
+Caragana
+caragana
+caraganas
+carageen
+carageens
+caragheen
+Caraguata
+caraguata
+Caraho
+caraibe
+Caraipa
+caraipe
+caraipi
+Caraja
+Carajas
+carajo
+carajura
+Caralie
+caramba
+carambola
+carambole
+caramboled
+caramboling
+caramel
+caramelan
+caramelen
+caramelin
+caramelisation
+caramelise
+caramelised
+caramelising
+caramelization
+caramelize
+caramelized
+caramelizes
+caramelizing
+caramels
+caramoussal
+Caramuel
+carancha
+carancho
+caranda
+Carandas
+caranday
+carane
+Caranga
+carangid
+Carangidae
+carangids
+carangin
+carangoid
+Carangus
+caranna
+Caranx
+caranx
+carap
+Carapa
+carapa
+carapace
+carapaced
+carapaces
+Carapache
+Carapacho
+carapacial
+carapacic
+carapato
+carapax
+carapaxes
+Carapidae
+carapine
+carapo
+Carapus
+Carara
+Caras
+carassow
+carassows
+carat
+caratacus
+caratch
+carate
+carates
+Caratinga
+carats
+Caratunk
+carauna
+caraunda
+Caravaggio
+caravan
+caravaned
+caravaneer
+caravaner
+caravaning
+caravanist
+caravanned
+caravanner
+caravanning
+caravans
+caravansaries
+caravansary
+caravanserai
+caravanserial
+caravel
+caravelle
+caravels
+Caravette
+Caraviello
+caraway
+caraways
+Carayan
+Caraz
+carb
+carb-
+carbachol
+carbacidometer
+carbamate
+carbamic
+carbamide
+carbamidine
+carbamido
+carbamine
+carbamino
+carbamoyl
+carbamyl
+carbamyls
+carbanil
+carbanilic
+carbanilid
+carbanilide
+carbanion
+carbarn
+carbarns
+carbaryl
+carbaryls
+carbasus
+carbazic
+carbazide
+carbazin
+carbazine
+carbazole
+carbazylic
+carbeen
+carbene
+Carberry
+carberry
+carbethoxy
+carbethoxyl
+carbide
+carbides
+carbimide
+carbin
+carbine
+carbineer
+carbineers
+carbines
+carbinol
+carbinols
+carbinyl
+Carbo
+carbo
+carbo-
+carboazotine
+carbocer
+carbocinchomeronic
+carbocyclic
+carbodiimide
+carbodynamite
+carbogelatin
+carbohemoglobin
+carbohydrase
+carbo-hydrate
+carbohydrate
+carbohydrates
+carbohydraturia
+carbohydrazide
+carbohydride
+carbohydrogen
+carbolate
+carbolated
+carbolating
+carbolfuchsin
+carbolic
+carbolics
+carboline
+carbolineate
+Carbolineum
+carbolise
+carbolised
+carbolising
+carbolize
+carbolized
+carbolizes
+carbolizing
+Carboloy
+carboluria
+carbolxylol
+carbomethene
+carbomethoxy
+carbomethoxyl
+carbomycin
+carbon
+Carbona
+carbona
+carbonaceous
+carbonade
+Carbonado
+carbonado
+carbonadoed
+carbonadoes
+carbonadoing
+carbonados
+Carbonari
+carbonari
+Carbonarism
+Carbonarist
+Carbonaro
+carbonatation
+carbonate
+carbonated
+carbonates
+carbonating
+carbonation
+carbonations
+carbonatization
+carbonator
+carbonators
+Carboncliff
+Carbondale
+carbondale
+Carbone
+carbone
+carboned
+carbonemia
+carbonero
+carbones
+Carboni
+carbonic
+carbonide
+Carboniferous
+carboniferous
+carbonification
+carbonify
+carbonigenous
+carbonimeter
+carbonimide
+carbonisable
+carbonisation
+carbonise
+carbonised
+carboniser
+carbonising
+carbonite
+carbonitride
+carbonium
+carbonizable
+carbonization
+carbonize
+carbonized
+carbonizer
+carbonizers
+carbonizes
+carbonizing
+carbonless
+Carbonnieux
+carbonometer
+carbonometry
+carbonous
+carbons
+carbonuria
+carbonyl
+carbonylate
+carbonylated
+carbonylating
+carbonylation
+carbonylene
+carbonylic
+carbonyls
+carbophilous
+carbora
+carboras
+car-borne
+Carborundum
+carborundum
+carbosilicate
+carbostyril
+carboxide
+carboxy
+Carboxydomonas
+carboxyhemoglobin
+carboxyl
+carboxylase
+carboxylate
+carboxylated
+carboxylating
+carboxylation
+carboxylic
+carboxyls
+carboxypeptidase
+carboy
+carboyed
+carboys
+Carbrey
+carbro
+carbromal
+carbs
+carbuilder
+carbuncle
+carbuncled
+carbuncles
+carbuncular
+carbunculation
+carbungi
+carburan
+carburant
+carburate
+carburated
+carburating
+carburation
+carburator
+carbure
+carburet
+carburetant
+carbureted
+carbureter
+carburetest
+carbureting
+carburetion
+carburetor
+carburetors
+carburets
+carburetted
+carburetter
+carburetting
+carburettor
+carburisation
+carburise
+carburised
+carburiser
+carburising
+carburization
+carburize
+carburized
+carburizer
+carburizes
+carburizing
+carburometer
+carby
+carbyl
+carbylamine
+carcajou
+carcajous
+carcake
+carcan
+carcanet
+carcaneted
+carcanets
+carcanetted
+Carcas
+carcase
+carcased
+carcases
+carcasing
+carcass
+carcassed
+carcasses
+carcassing
+carcassless
+Carcassonne
+Carcavelhos
+Carce
+carceag
+carcel
+carcels
+carcer
+carceral
+carcerate
+carcerated
+carcerating
+carceration
+carcerist
+Carcharhinus
+Carcharias
+carchariid
+Carchariidae
+carcharioid
+Carcharodon
+carcharodont
+Carchemish
+carcin-
+carcinemia
+carcinogen
+carcinogeneses
+carcinogenesis
+carcinogenic
+carcinogenicity
+carcinogenics
+carcinogens
+carcinoid
+carcinological
+carcinologist
+carcinology
+carcinolysin
+carcinolytic
+carcinoma
+carcinomas
+carcinomata
+carcinomatoid
+carcinomatosis
+carcinomatous
+carcinomorphic
+carcinophagous
+carcinophobia
+carcinopolypus
+carcinosarcoma
+carcinosarcomas
+carcinosarcomata
+Carcinoscorpius
+carcinosis
+carcinus
+carcoon
+Card
+Card.
+card
+cardaissin
+Cardale
+Cardamine
+cardamine
+cardamom
+cardamoms
+cardamon
+cardamons
+cardamum
+cardamums
+Cardanic
+cardanol
+Cardanus
+cardboard
+cardboards
+card-carrier
+card-carrying
+cardcase
+cardcases
+cardcastle
+card-counting
+card-cut
+card-cutting
+card-devoted
+Cardea
+cardecu
+carded
+cardel
+Cardenas
+Carder
+carder
+carders
+Cardew
+cardholder
+cardholders
+cardhouse
+cardi-
+-cardia
+cardia
+cardiac
+cardiacal
+Cardiacea
+cardiacean
+cardiacle
+cardiacs
+cardiae
+cardiagra
+cardiagram
+cardiagraph
+cardiagraphy
+cardial
+cardialgia
+cardialgic
+cardialgy
+cardiameter
+cardiamorphia
+cardianesthesia
+cardianeuria
+cardiant
+cardiaplegia
+cardiarctia
+cardias
+cardiasthenia
+cardiasthma
+cardiataxia
+cardiatomy
+cardiatrophia
+cardiauxe
+Cardiazol
+cardicentesis
+Cardie
+cardiectasis
+cardiectomize
+cardiectomy
+cardielcosis
+cardiemphraxia
+Cardiff
+cardiform
+Cardiga
+Cardigan
+cardigan
+cardigans
+Cardiganshire
+Cardiidae
+Cardijn
+Cardin
+cardin
+Cardinal
+cardinal
+cardinalate
+cardinalated
+cardinalates
+cardinal-bishop
+cardinal-deacon
+cardinalfish
+cardinalfishes
+cardinal-flower
+cardinalic
+Cardinalis
+cardinalism
+cardinalist
+cardinalitial
+cardinalitian
+cardinalities
+cardinality
+cardinally
+cardinal-priest
+cardinal-red
+cardinals
+cardinalship
+Cardinas
+card-index
+cardines
+carding
+cardings
+Cardington
+cardio-
+cardioaccelerator
+cardio-aortic
+cardioarterial
+cardioblast
+cardiocarpum
+cardiocele
+cardiocentesis
+cardiocirrhosis
+cardioclasia
+cardioclasis
+cardiod
+cardiodilator
+cardiodynamics
+cardiodynia
+cardiodysesthesia
+cardiodysneuria
+cardiogenesis
+cardiogenic
+cardiogram
+cardiograms
+cardiograph
+cardiographer
+cardiographic
+cardiographies
+cardiographs
+cardiography
+cardiohepatic
+cardioid
+cardioids
+cardio-inhibitory
+cardiokinetic
+cardiolith
+cardiologic
+cardiological
+cardiologies
+cardiologist
+cardiologists
+cardiology
+cardiolysis
+cardiomalacia
+cardiomegalia
+cardiomegaly
+cardiomelanosis
+cardiometer
+cardiometric
+cardiometry
+cardiomotility
+cardiomyoliposis
+cardiomyomalacia
+cardiomyopathy
+cardioncus
+cardionecrosis
+cardionephric
+cardioneural
+cardioneurosis
+cardionosus
+cardioparplasis
+cardiopath
+cardiopathic
+cardiopathy
+cardiopericarditis
+cardiophobe
+cardiophobia
+cardiophrenia
+cardioplasty
+cardioplegia
+cardiopneumatic
+cardiopneumograph
+cardioptosis
+cardiopulmonary
+cardiopuncture
+cardiopyloric
+cardiorenal
+cardiorespiratory
+cardiorrhaphy
+cardiorrheuma
+cardiorrhexis
+cardioschisis
+cardiosclerosis
+cardioscope
+cardiospasm
+Cardiospermum
+cardiosphygmogram
+cardiosphygmograph
+cardiosymphysis
+cardiotherapies
+cardiotherapy
+cardiotomy
+cardiotonic
+cardiotoxic
+cardiotoxicities
+cardiotoxicity
+cardiotrophia
+cardiotrophotherapy
+cardiovascular
+cardiovisceral
+cardipaludism
+cardipericarditis
+cardisophistical
+cardita
+carditic
+carditis
+carditises
+Cardito
+Cardium
+cardlike
+cardmaker
+cardmaking
+cardo
+cardol
+Cardon
+cardon
+cardona
+cardoncillo
+cardooer
+cardoon
+cardoons
+cardophagus
+cardosanto
+Cardozo
+card-perforating
+cardplayer
+cardplaying
+card-printing
+cardroom
+cards
+cardshark
+cardsharp
+cardsharper
+cardsharping
+cardsharps
+card-sorting
+cardstock
+Carduaceae
+carduaceous
+Carducci
+cardueline
+Carduelis
+car-dumping
+Carduus
+carduus
+Cardville
+Cardwell
+CARE
+Care
+care
+Careaga
+care-bewitching
+care-bringing
+care-charming
+care-cloth
+carecloth
+care-crazed
+care-crossed
+cared
+care-defying
+care-dispelling
+care-eluding
+careen
+careenage
+care-encumbered
+careened
+careener
+careeners
+careening
+careens
+career
+careered
+careerer
+careerers
+careering
+careeringly
+careerism
+careerist
+careeristic
+careers
+carefox
+care-fraught
+carefree
+carefreeness
+careful
+carefull
+carefuller
+carefullest
+carefully
+carefulness
+carefulnesses
+care-killing
+Carel
+care-laden
+careless
+carelessly
+carelessness
+carelessnesses
+care-lined
+careme
+Caren
+Carena
+Carencro
+carene
+Carenton
+carer
+carers
+cares
+Caresa
+care-scorched
+caress
+Caressa
+caressable
+caressant
+Caresse
+caressed
+caresser
+caressers
+caresses
+caressing
+caressingly
+caressive
+caressively
+carest
+caret
+caretake
+caretaken
+care-taker
+caretaker
+caretakers
+caretakes
+caretaking
+care-tired
+caretook
+carets
+Caretta
+Carettochelydidae
+care-tuned
+Carew
+careworn
+care-wounded
+Carex
+carex
+Carey
+carey
+careys
+Careywood
+carf
+carfare
+carfares
+carfax
+carfloat
+carfour
+carfuffle
+carfuffled
+carfuffling
+carful
+carfuls
+carga
+cargador
+cargadores
+cargason
+Cargian
+Cargill
+cargo
+cargoes
+cargoose
+cargos
+cargued
+Carhart
+carhop
+carhops
+carhouse
+Cari
+Caria
+cariacine
+Cariacus
+cariama
+Cariamae
+Carian
+Carib
+carib
+Caribal
+Cariban
+cariban
+Caribbean
+caribbean
+caribbeans
+Caribbee
+Caribbees
+caribe
+caribed
+Caribees
+caribes
+Caribi
+caribing
+Caribisi
+Caribou
+caribou
+Caribou-eater
+caribous
+Caribs
+Carica
+Caricaceae
+caricaceous
+caricatura
+caricaturable
+caricatural
+caricature
+caricatured
+caricatures
+caricaturing
+caricaturist
+caricaturists
+carices
+caricetum
+caricographer
+caricography
+caricologist
+caricology
+caricous
+carid
+Carida
+Caridea
+caridean
+carideer
+caridoid
+Caridomorpha
+Carie
+caried
+carien
+caries
+cariform
+CARIFTA
+Carignan
+Carijona
+Caril
+Carilla
+carillon
+carilloneur
+carillonned
+carillonneur
+carillonneurs
+carillonning
+carillons
+Carilyn
+Carin
+Carina
+carina
+carinae
+carinal
+Carinaria
+carinaria
+carinas
+Carinatae
+carinate
+carinated
+carination
+Carine
+caring
+Cariniana
+cariniform
+Carinthia
+Carinthian
+carinula
+carinulate
+carinule
+Carioca
+carioca
+Cariocan
+cariocas
+cariogenic
+cariole
+carioles
+carioling
+cariosity
+Cariotta
+carious
+cariousness
+caripeta
+Caripuna
+Cariri
+Caririan
+Carisa
+carisoprodol
+Carissa
+Carissimi
+Carita
+caritas
+caritative
+carites
+caritive
+Caritta
+carity
+Carius
+Cariyo
+cark
+carked
+carking
+carkingly
+carkled
+carks
+Carl
+carl
+Carla
+carlage
+Carland
+carle
+Carlee
+Carleen
+Carlen
+Carlene
+carles
+carless
+carlet
+Carleta
+Carleton
+Carley
+Carli
+carli
+Carlick
+Carlie
+carlie
+Carlile
+Carlin
+carlin
+Carlina
+carlina
+Carline
+carline
+carlines
+Carling
+carling
+carlings
+Carlini
+carlino
+carlins
+Carlinville
+carlish
+carlishness
+Carlisle
+Carlism
+carlism
+Carlist
+carlist
+Carlita
+Carlo
+carlo
+carload
+carloading
+carloadings
+carloads
+Carlock
+carlock
+Carlos
+carlot
+Carlota
+Carlotta
+Carlovingian
+carlovingian
+Carlow
+carls
+Carlsbad
+Carlsborg
+Carlson
+Carlstadt
+Carlstrom
+Carlton
+Carludovica
+Carly
+Carlye
+Carlyle
+Carlylean
+Carlyleian
+Carlylese
+Carlylesque
+Carlylian
+Carlylism
+carlylism
+Carlyn
+Carlyne
+Carlynn
+Carlynne
+Carma
+carmagnole
+carmagnoles
+carmaker
+carmakers
+carmalum
+Carman
+carman
+Carmania
+Carmanians
+Carmanor
+Carmarthen
+Carmarthenshire
+Carme
+Carmel
+carmel
+Carmela
+carmele
+Carmelia
+Carmelina
+Carmelita
+Carmelite
+carmelite
+Carmelitess
+Carmella
+Carmelle
+Carmelo
+carmeloite
+Carmen
+carmen
+Carmena
+Carmencita
+Carmenta
+Carmentis
+carmetta
+Carmi
+Carmichael
+Carmichaels
+car-mile
+Carmina
+carminate
+carminative
+carminatives
+Carmine
+carmine
+carmines
+carminette
+carminic
+carminite
+carminophilous
+Carmita
+carmoisin
+Carmon
+carmot
+Carn
+carn
+Carnac
+carnac
+Carnacian
+carnage
+carnaged
+carnages
+Carnahan
+carnal
+carnalism
+carnalite
+carnalities
+carnality
+carnalize
+carnalized
+carnalizing
+carnallite
+carnally
+carnal-minded
+carnal-mindedness
+carnalness
+Carnap
+carnaptious
+Carnaria
+Carnarvon
+Carnarvonshire
+carnary
+carnassial
+carnate
+Carnatic
+Carnation
+carnation
+carnationed
+carnationist
+carnation-red
+carnations
+carnauba
+carnaubas
+carnaubic
+carnaubyl
+Carnay
+carne
+Carneades
+carneau
+Carnegie
+carnegie
+Carnegiea
+carnel
+carnelian
+carnelians
+carneol
+carneole
+carneous
+Carnes
+Carnesville
+carnet
+carnets
+Carneus
+Carney
+carney
+carneyed
+carneys
+carnic
+carnie
+carnied
+carnies
+carniferous
+carniferrin
+carnifex
+carnifexes
+carnification
+carnifices
+carnificial
+carnified
+carnifies
+carniform
+carnify
+carnifying
+Carniola
+Carniolan
+carnitine
+Carnival
+carnival
+carnivaler
+carnivalesque
+carnivaller
+carnivallike
+carnivals
+Carnivora
+carnivora
+carnivoracity
+carnivoral
+carnivore
+carnivores
+carnivorism
+carnivority
+carnivorous
+carnivorously
+carnivorousness
+carnivorousnesses
+carnose
+carnosin
+carnosine
+carnosities
+carnosity
+carnoso-
+Carnot
+carnotite
+carnous
+Carnoustie
+Carnovsky
+carns
+Carnus
+Carny
+carny
+Caro
+caroa
+caroach
+caroaches
+carob
+caroba
+carobs
+caroch
+caroche
+caroches
+Caroid
+caroigne
+Carol
+carol
+Carola
+Carolan
+Carolann
+Carole
+carole
+Carolean
+carolean
+caroled
+Carolee
+Caroleen
+caroler
+carolers
+caroli
+Carolin
+carolin
+Carolina
+carolina
+carolinas
+Caroline
+caroline
+carolines
+Caroling
+caroling
+Carolingian
+carolingian
+Carolinian
+carolinian
+carolinians
+carolitic
+Carol-Jean
+Caroljean
+Carolle
+carolled
+caroller
+carollers
+carolling
+carols
+Carolus
+carolus
+caroluses
+Carolyn
+carolyn
+Carolyne
+Carolynn
+Carolynne
+carom
+carombolette
+caromed
+caromel
+caroming
+caroms
+Caron
+Carona
+carone
+caronic
+caroome
+caroon
+carosella
+carosse
+CAROT
+carot
+caroteel
+carotene
+carotenes
+carotenoid
+Carothers
+carotic
+carotid
+carotidal
+carotidean
+carotids
+carotin
+carotinaemia
+carotinemia
+carotinoid
+carotins
+carotol
+carotte
+carouba
+caroubier
+carousal
+carousals
+carouse
+caroused
+carousel
+carousels
+carouser
+carousers
+carouses
+carousing
+carousingly
+-carp
+carp
+carp-
+Carpaccio
+carpaine
+carpal
+carpale
+carpalia
+carpals
+Carpathia
+Carpathian
+Carpathians
+Carpatho-russian
+Carpatho-ruthenian
+Carpatho-Ukraine
+carpe
+Carpeaux
+carped
+carpel
+carpellary
+carpellate
+carpellum
+carpels
+carpent
+Carpentaria
+Carpenter
+carpenter
+carpentered
+Carpenteria
+carpentering
+carpenters
+carpentership
+Carpentersville
+carpenterworm
+Carpentier
+carpentries
+carpentry
+Carper
+carper
+carpers
+Carpet
+carpet
+carpet-bag
+carpetbag
+carpetbagged
+carpet-bagger
+carpetbagger
+carpetbaggers
+carpetbaggery
+carpetbagging
+carpetbaggism
+carpetbagism
+carpetbags
+carpetbeater
+carpet-covered
+carpet-cut
+carpeted
+carpeting
+carpet-knight
+carpetlayer
+carpetless
+carpetmaker
+carpetmaking
+carpetmonger
+carpets
+carpet-smooth
+carpet-sweeper
+carpetweb
+carpetweed
+carpetwork
+carpetwoven
+Carphiophiops
+carpholite
+carphology
+Carphophis
+carphosiderite
+carpi
+-carpic
+carpid
+carpidium
+carpincho
+carping
+carpingly
+carpings
+Carpinteria
+carpintero
+Carpinus
+Carpio
+Carpiodes
+carpitis
+carpium
+Carpo
+carpo-
+carpocace
+Carpocapsa
+carpocarpal
+carpocephala
+carpocephalum
+carpocerite
+carpocervical
+Carpocratian
+carpocratian
+Carpodacus
+Carpodetus
+carpogam
+carpogamy
+carpogenic
+carpogenous
+carpognia
+carpogone
+carpogonia
+carpogonial
+carpogonium
+Carpoidea
+carpolite
+carpolith
+carpological
+carpologically
+carpologist
+carpology
+carpomania
+carpometacarpal
+carpometacarpi
+carpometacarpus
+carpompi
+carpool
+carpo-olecranal
+carpools
+carpopedal
+Carpophaga
+carpophagous
+carpophalangeal
+carpophore
+Carpophorus
+carpophyl
+carpophyll
+carpophyte
+carpopodite
+carpopoditic
+carpoptosia
+carpoptosis
+carport
+carports
+carpos
+carposperm
+carposporangia
+carposporangial
+carposporangium
+carpospore
+carposporic
+carposporous
+carpostome
+-carpous
+carps
+carpsucker
+carpus
+carpuspi
+carquaise
+Carr
+carr
+Carrabelle
+Carracci
+carrack
+carracks
+carrageen
+carrageenan
+carrageenin
+carragheen
+carragheenin
+Carranza
+Carrara
+Carraran
+carrat
+carraway
+carraways
+Carrboro
+carreau
+Carree
+carree
+carrefour
+Carrel
+carrel
+carrell
+Carrelli
+carrells
+carrels
+car-replacing
+Carrere
+carreta
+carretela
+carretera
+carreton
+carretta
+Carrew
+Carri
+carri
+carriable
+carriage
+carriageable
+carriage-free
+carriageful
+carriageless
+carriages
+carriagesmith
+carriageway
+Carrick
+carrick
+Carrie
+carried
+Carrier
+carrier
+Carriere
+carrier-free
+carrier-pigeon
+carriers
+carries
+carrigeen
+Carrillo
+Carrington
+carriole
+carrioles
+carrion
+carrions
+Carrissa
+carritch
+carritches
+carriwitchet
+Carrizo
+carrizo
+Carrizozo
+Carrnan
+Carrobili
+carrocci
+carroccio
+carroch
+carroches
+Carrol
+Carroll
+carroll
+carrollite
+Carrolls
+Carrollton
+Carrolltown
+carrom
+carromata
+carromatas
+carromed
+carroming
+carroms
+carronade
+carroon
+carrosserie
+carrot
+carrotage
+carrot-colored
+carroter
+carrot-head
+carrot-headed
+Carrothers
+carrotier
+carrotiest
+carrotin
+carrotiness
+carroting
+carrotins
+carrot-pated
+carrots
+carrot-shaped
+carrot-top
+carrottop
+carrotweed
+carrotwood
+carroty
+carrousel
+carrousels
+carrow
+carrozza
+carrs
+Carrsville
+carrus
+Carruthers
+Carry
+carry
+carryable
+carry-all
+carryall
+carryalls
+carry-back
+carrycot
+carryed
+carry-forward
+carry-in
+carrying
+carrying-on
+carrying-out
+carryings
+carryings-on
+carryke
+carry-log
+carry-on
+carryon
+carryons
+carryout
+carryouts
+carry-over
+carryover
+carryovers
+carrys
+carry-tale
+carrytale
+cars
+carse
+carses
+carshop
+carshops
+carsick
+carsickness
+carsmith
+Carson
+carson
+Carsonville
+Carstensz
+carstone
+CART
+Cart
+cart
+cartable
+cartaceous
+cartage
+Cartagena
+cartages
+Cartago
+Cartan
+cartboot
+cartbote
+Carte
+carte
+carted
+carte-de-visite
+cartel
+cartelism
+cartelist
+cartelistic
+cartelization
+cartelize
+cartelized
+cartelizing
+cartellist
+cartels
+Carter
+carter
+Carteret
+carterly
+carters
+Cartersburg
+Cartersville
+Carterville
+cartes
+Cartesian
+cartesian
+Cartesianism
+cartful
+Carthage
+Carthaginian
+Carthal
+carthame
+carthamic
+carthamin
+Carthamus
+carthamus
+carthorse
+Carthusian
+carthusian
+Carthy
+Cartie
+Cartier
+cartier
+Cartier-Bresson
+cartiest
+cartilage
+cartilages
+cartilaginean
+Cartilaginei
+cartilagineous
+Cartilagines
+cartilaginification
+cartilaginoid
+cartilaginous
+carting
+cartisane
+Cartist
+cartload
+cartloads
+cartmaker
+cartmaking
+cartman
+cartobibliography
+cartogram
+cartograph
+cartographer
+cartographers
+cartographic
+cartographical
+cartographically
+cartographies
+cartography
+cartomancies
+cartomancy
+carton
+cartoned
+cartoner
+cartonful
+cartoning
+cartonnage
+cartonnier
+cartonniers
+carton-pierre
+cartons
+cartoon
+cartooned
+cartooning
+cartoonist
+cartoonists
+cartoons
+cartop
+cartopper
+cartouch
+cartouche
+cartouches
+cartridge
+cartridges
+cart-rutted
+carts
+cartsale
+cartularies
+cartulary
+cartware
+cartway
+Cartwell
+cart-wheel
+cartwheel
+cartwheeler
+cartwheels
+cartwhip
+Cartwright
+cartwright
+cartwrighting
+carty
+carua
+caruage
+carucage
+carucal
+carucarius
+carucate
+carucated
+Carum
+caruncle
+caruncles
+caruncula
+carunculae
+caruncular
+carunculate
+carunculated
+carunculous
+Carupano
+carus
+Caruso
+Caruthers
+Caruthersville
+carvacrol
+carvacryl
+carvage
+carval
+carve
+carved
+carvel
+carvel-built
+carvel-planked
+carvels
+carven
+carvene
+Carver
+carver
+carvers
+carvership
+Carversville
+carves
+carvestrene
+Carvey
+Carville
+carving
+carvings
+carvist
+carvoeira
+carvoepra
+carvol
+carvomenthene
+carvone
+carvy
+carvyl
+carwash
+carwashes
+carwitchet
+Cary
+cary-
+Carya
+caryatic
+caryatid
+caryatidal
+caryatidean
+caryatides
+caryatidic
+caryatids
+Caryatis
+Caryl
+caryl
+Caryll
+Caryn
+caryo-
+Caryocar
+Caryocaraceae
+caryocaraceous
+Caryophyllaceae
+caryophyllaceous
+caryophyllene
+caryophylleous
+caryophyllin
+caryophyllous
+Caryophyllus
+caryopilite
+caryopses
+caryopsides
+caryopsis
+Caryopteris
+Caryota
+caryotin
+caryotins
+Caryville
+carzey
+CAS
+Cas
+Casa
+casa
+casaba
+casabas
+casabe
+Casabianca
+Casablanca
+casablanca
+Casabonne
+Casadesus
+Casady
+casal
+Casaleggio
+Casals
+casalty
+Casamarca
+Casandra
+Casanova
+casanova
+Casanovanic
+casanovas
+casaque
+casaques
+casaquin
+Casar
+casas
+Casasia
+casate
+Casatus
+Casaubon
+casaun
+casava
+Casavant
+casavas
+casave
+casavi
+Casbah
+casbah
+casbahs
+cascabel
+cascabels
+cascable
+cascables
+cascadable
+cascade
+cascade-connect
+cascaded
+cascades
+Cascadia
+Cascadian
+cascading
+cascadite
+cascado
+Cascais
+cascalho
+cascalote
+cascan
+cascara
+cascaras
+cascarilla
+cascaron
+cascavel
+caschielawis
+caschrom
+Cascilla
+Casco
+casco
+cascol
+cascrom
+cascrome
+CASE
+Case
+case
+Casearia
+casease
+caseases
+caseate
+caseated
+caseates
+caseating
+caseation
+case-bearer
+casebearer
+casebook
+casebooks
+case-bound
+casebound
+casebox
+caseconv
+cased
+casefied
+casefies
+caseful
+casefy
+casefying
+case-harden
+caseharden
+case-hardened
+casehardened
+casehardening
+casehardens
+caseic
+casein
+caseinate
+caseine
+caseinogen
+caseins
+casekeeper
+case-knife
+Casel
+caseless
+caselessly
+caseload
+caseloads
+caselty
+casemaker
+casemaking
+casemate
+casemated
+casemates
+Casement
+casement
+casemented
+casements
+caseolysis
+caseose
+caseoses
+caseous
+caser
+caser-in
+caserio
+caserios
+casern
+caserne
+casernes
+caserns
+Caserta
+cases
+case-shot
+casette
+casettes
+caseum
+Caseville
+case-weed
+caseweed
+casewood
+casework
+case-worker
+caseworker
+caseworkers
+caseworks
+case-worm
+caseworm
+caseworms
+Casey
+Caseyville
+Cash
+cash
+casha
+cashable
+cashableness
+cash-and-carry
+cashaw
+cashaws
+cash-book
+cashbook
+cashbooks
+cashbox
+cashboxes
+cashboy
+cashcuttee
+cashdrawer
+cashed
+casheen
+cashel
+casher
+cashers
+cashes
+cashew
+cashews
+cashgirl
+Cashibo
+cashier
+cashiered
+cashierer
+cashiering
+cashierment
+Cashiers
+cashiers
+cashing
+Cashion
+cashkeeper
+cashless
+cashment
+Cashmere
+cashmere
+cashmeres
+cashmerette
+Cashmerian
+Cashmirian
+cashoo
+cashoos
+cashou
+Cashton
+Cashtown
+Casi
+Casia
+Casie
+Casilda
+Casilde
+casimere
+casimeres
+Casimir
+Casimire
+casimire
+casimires
+Casimiroa
+casina
+casinet
+casing
+casing-in
+casings
+casini
+casino
+casinos
+casiri
+casita
+casitas
+cask
+caskanet
+casked
+casket
+casketed
+casketing
+casketlike
+caskets
+casking
+casklike
+casks
+cask-shaped
+casky
+Caslon
+Casmalia
+Casmey
+Casnovia
+Cason
+Caspar
+Casparian
+Casper
+casper
+Caspian
+caspian
+casque
+casqued
+casques
+casquet
+casquetel
+casquette
+Cass
+cass
+cassaba
+cassabanana
+cassabas
+cassabully
+cassada
+Cassadaga
+Cassady
+cassady
+cassalty
+cassan
+Cassander
+Cassandra
+cassandra
+Cassandra-like
+Cassandran
+cassandras
+Cassandre
+Cassandrian
+Cassandry
+cassapanca
+cassare
+cassareep
+cassata
+cassatas
+cassate
+cassation
+Cassatt
+Cassaundra
+cassava
+cassavas
+Casscoe
+casse
+Cassegrain
+Cassegrainian
+Cassel
+Casselberry
+Cassell
+Cassella
+Casselton
+casselty
+cassena
+casserole
+casseroled
+casseroles
+casseroling
+casse-tete
+cassette
+cassettes
+Cassey
+casshe
+Cassi
+Cassia
+cassia
+Cassiaceae
+Cassian
+Cassiani
+cassias
+cassican
+Cassicus
+Cassida
+cassideous
+cassidid
+Cassididae
+Cassidinae
+cassidoine
+cassidony
+Cassidulina
+cassiduloid
+Cassiduloidea
+Cassidy
+Cassie
+cassie
+Cassiepea
+Cassiepean
+Cassiepeia
+Cassil
+Cassilda
+cassimere
+cassina
+cassine
+Cassinese
+cassinette
+Cassini
+Cassinian
+cassinian
+Cassino
+cassino
+cassinoid
+cassinos
+cassioberry
+Cassiodorus
+Cassiope
+Cassiopea
+Cassiopean
+Cassiopeia
+cassiopeia
+Cassiopeiae
+Cassiopeian
+cassiopeian
+Cassiopeid
+cassiopeium
+cassique
+Cassirer
+cassiri
+CASSIS
+Cassis
+cassis
+cassises
+Cassite
+cassiterite
+cassites
+Cassius
+cassius
+cassock
+cassocked
+cassocks
+Cassoday
+cassolette
+casson
+cassonade
+Cassondra
+cassone
+cassoni
+cassons
+cassoon
+Cassopolis
+cassoulet
+cassowaries
+cassowary
+Casstown
+cassumunar
+cassumuniar
+Cassville
+Cassy
+cassy
+Cassytha
+Cassythaceae
+cast
+Casta
+castable
+castagnole
+Castalia
+castalia
+Castalian
+Castalides
+Castalio
+Castana
+castana
+castane
+Castanea
+castanean
+castaneous
+castanet
+castanets
+castanian
+castano
+Castanopsis
+Castanospermum
+Castara
+castaway
+castaways
+cast-back
+cast-by
+caste
+Casteau
+casted
+Casteel
+casteism
+casteisms
+casteless
+castelet
+Castell
+Castella
+castellan
+castellanies
+castellano
+Castellanos
+castellans
+castellanship
+castellanus
+castellany
+castellar
+castellate
+castellated
+castellation
+castellatus
+castellet
+castelli
+Castellna
+castellum
+Castelnuovo-Tedesco
+Castelvetro
+casten
+Caster
+caster
+Castera
+caste-ridden
+casterless
+caster-off
+casters
+castes
+casteth
+casthouse
+castice
+castigable
+castigate
+castigated
+castigates
+castigating
+castigation
+castigations
+castigative
+castigator
+castigatories
+castigators
+castigatory
+Castiglione
+Castile
+castile
+Castilian
+castilian
+Castilla
+Castilleja
+Castillo
+castillo
+Castilloa
+Castine
+casting
+castings
+cast-iron
+cast-iron-plant
+Castle
+castle
+Castleberry
+castle-builder
+castle-building
+castle-built
+castle-buttressed
+castle-crowned
+castled
+Castledale
+Castleford
+castle-guard
+castle-guarded
+castlelike
+Castlereagh
+castlery
+castles
+castlet
+Castleton
+castleward
+castlewards
+castlewise
+Castlewood
+castling
+cast-me-down
+castock
+cast-off
+castoff
+castoffs
+Castor
+castor
+Castora
+castor-bean
+Castores
+castoreum
+castorial
+Castoridae
+castorin
+Castorina
+castorite
+castorized
+Castorland
+Castoroides
+castors
+castory
+Castra
+castra
+castral
+castrametation
+castrate
+castrated
+castrater
+castrates
+castrati
+castrating
+castration
+castrations
+castrato
+castrator
+castrators
+castratory
+castrensial
+castrensian
+Castries
+Castro
+castro
+Castroism
+Castroist
+Castroite
+Castrop-Rauxel
+Castroville
+castrum
+casts
+cast-steel
+castuli
+cast-weld
+CASU
+casual
+casualism
+casualist
+casuality
+casually
+casualness
+casualnesses
+casuals
+casualties
+casualty
+Casuariidae
+Casuariiformes
+Casuarina
+casuarina
+Casuarinaceae
+casuarinaceous
+Casuarinales
+Casuarius
+casuary
+casuist
+casuistess
+casuistic
+casuistical
+casuistically
+casuistries
+casuistry
+casuists
+casula
+casule
+casus
+casusistry
+Caswell
+caswellite
+Casziel
+CAT
+Cat
+cat
+cat.
+cata-
+catabaptist
+catabases
+catabasion
+catabasis
+catabatic
+catabibazon
+catabiotic
+catabolic
+catabolically
+catabolin
+catabolism
+catabolite
+catabolize
+catabolized
+catabolizing
+catacaustic
+catachreses
+catachresis
+catachresti
+catachrestic
+catachrestical
+catachrestically
+catachthonian
+catachthonic
+cataclasis
+cataclasm
+cataclasmic
+cataclastic
+cataclinal
+cataclysm
+cataclysmal
+cataclysmatic
+cataclysmatist
+cataclysmic
+cataclysmically
+cataclysmist
+cataclysms
+catacomb
+catacombic
+catacombs
+catacorner
+catacorolla
+catacoustics
+catacromyodian
+catacrotic
+catacrotism
+catacumba
+catacumbal
+catacylsmic
+catadicrotic
+catadicrotism
+catadioptric
+catadioptrical
+catadioptrics
+catadrome
+catadromous
+catadupe
+Cataebates
+catafalco
+catafalque
+catafalques
+catagenesis
+catagenetic
+catagmatic
+catagories
+Cataian
+cataian
+catakinesis
+catakinetic
+catakinetomer
+catakinomeric
+Catalan
+catalan
+Catalanganes
+Catalanist
+catalase
+catalases
+catalatic
+Catalaunian
+Cataldo
+catalecta
+catalectic
+catalecticant
+catalects
+catalepsies
+catalepsis
+catalepsy
+cataleptic
+cataleptically
+cataleptics
+cataleptiform
+cataleptize
+cataleptoid
+catalexes
+catalexis
+Catalin
+catalin
+Catalina
+catalina
+catalineta
+catalinite
+catallactic
+catallactically
+catallactics
+catallum
+catalo
+cataloes
+catalog
+cataloged
+cataloger
+catalogers
+catalogia
+catalogic
+catalogical
+cataloging
+catalogist
+catalogistic
+catalogize
+catalogs
+catalogue
+catalogued
+cataloguer
+cataloguers
+catalogues
+cataloguing
+cataloguish
+cataloguist
+cataloguize
+Catalonia
+Catalonian
+cataloon
+catalos
+catalowne
+Catalpa
+catalpa
+catalpas
+catalufa
+catalufas
+catalyse
+catalyses
+catalysis
+catalyst
+catalysts
+catalyte
+catalytic
+catalytical
+catalytically
+catalyzator
+catalyze
+catalyzed
+catalyzer
+catalyzers
+catalyzes
+catalyzing
+catamaran
+catamarans
+Catamarca
+Catamarcan
+Catamarenan
+catamenia
+catamenial
+catamite
+catamited
+catamites
+catamiting
+Catamitus
+catamneses
+catamnesis
+catamnestic
+catamount
+cat-a-mountain
+catamountain
+catamounts
+catan
+catanadromous
+Catananche
+cat-and-dog
+cat-and-doggish
+Catania
+Catano
+Catanzaro
+catapan
+catapasm
+catapetalous
+cataphasia
+cataphatic
+cataphonic
+cataphonics
+cataphora
+cataphoresis
+cataphoretic
+cataphoretically
+cataphoria
+cataphoric
+cataphract
+Cataphracta
+cataphracted
+Cataphracti
+cataphractic
+cataphrenia
+cataphrenic
+Cataphrygian
+cataphrygian
+cataphrygianism
+cataphyll
+cataphylla
+cataphyllary
+cataphyllum
+cataphysic
+cataphysical
+cataplane
+cataplasia
+cataplasis
+cataplasm
+cataplastic
+catapleiite
+cataplexy
+catapuce
+catapult
+catapulted
+catapultic
+catapultier
+catapulting
+catapults
+cataract
+cataractal
+cataracted
+cataracteg
+cataractine
+cataractous
+cataracts
+cataractwise
+cataria
+Catarina
+catarinite
+catarrh
+catarrhal
+catarrhally
+catarrhed
+Catarrhina
+catarrhine
+catarrhinian
+catarrhous
+catarrhs
+catasarka
+Catasauqua
+Catasetum
+cataspilite
+catasta
+catastaltic
+catastases
+catastasis
+catastate
+catastatic
+catasterism
+catastrophal
+catastrophe
+catastrophes
+catastrophic
+catastrophical
+catastrophically
+catastrophism
+catastrophist
+catathymic
+catatonia
+catatoniac
+catatonias
+catatonic
+catatonics
+catatony
+Cataula
+Cataumet
+Catavi
+catawampous
+catawampously
+catawamptious
+catawamptiously
+catawampus
+Catawba
+catawba
+catawbas
+Catawissa
+cat-bed
+catberry
+catbird
+catbirds
+catboat
+catboats
+catbrier
+catbriers
+cat-built
+catcall
+catcalled
+catcaller
+catcalling
+catcalls
+catch
+catch-
+catch-22
+catchable
+catch-all
+catchall
+catchalls
+catch-as-catch-can
+catch-cord
+catchcry
+catched
+catcher
+catchers
+catches
+catchflies
+catchfly
+catchie
+catchier
+catchiest
+catchiness
+catching
+catchingly
+catchingness
+catchland
+catchlight
+catchline
+catchment
+catchments
+cat-chop
+catchpennies
+catchpenny
+catchphrase
+catchplate
+catchpole
+catchpoled
+catchpolery
+catchpoleship
+catchpoling
+catchpoll
+catchpolled
+catchpollery
+catchpolling
+catch-up
+catchup
+catchups
+catchwater
+catchweed
+catchweight
+catchword
+catchwords
+catchwork
+catchy
+catclaw
+cat-clover
+catdom
+Cate
+cate
+catecheses
+catechesis
+catechetic
+catechetical
+catechetically
+catechin
+catechins
+catechisable
+catechisation
+catechise
+catechised
+catechiser
+catechising
+Catechism
+catechism
+catechismal
+catechisms
+catechist
+catechistic
+catechistical
+catechistically
+catechists
+catechizable
+catechization
+catechize
+catechized
+catechizer
+catechizes
+catechizing
+catechol
+catecholamine
+catecholamines
+catechols
+catechu
+catechumen
+catechumenal
+catechumenate
+catechumenical
+catechumenically
+catechumenism
+catechumens
+catechumenship
+catechus
+catechutannic
+categorem
+categorematic
+categorematical
+categorematically
+categorial
+categoric
+categorical
+categorically
+categoricalness
+categories
+categorisation
+categorise
+categorised
+categorising
+categorist
+categorization
+categorizations
+categorize
+categorized
+categorizer
+categorizers
+categorizes
+categorizing
+category
+catel
+catelectrode
+catelectrotonic
+catelectrotonus
+catella
+catena
+catenae
+catenane
+catenarian
+catenaries
+catenary
+catenas
+catenate
+catenated
+catenates
+catenating
+catenation
+catenative
+catenoid
+catenoids
+catenulate
+catepuce
+cater
+cateran
+caterans
+caterbrawl
+catercap
+cater-corner
+catercorner
+cater-cornered
+catercornered
+catercornerways
+cater-cousin
+catercousin
+cater-cousinship
+catered
+caterer
+caterers
+caterership
+cateress
+cateresses
+Caterina
+catering
+cateringly
+Caterpillar
+caterpillar
+caterpillared
+caterpillarlike
+caterpillars
+caters
+caterva
+caterwaul
+caterwauled
+caterwauler
+caterwauling
+caterwauls
+catery
+Cates
+cates
+Catesbaea
+catesbeiana
+Catesby
+cateye
+cat-eyed
+catface
+catfaced
+catfaces
+catfacing
+catfall
+catfalls
+catfight
+cat-fish
+catfish
+catfishes
+cat-foot
+catfoot
+catfooted
+catgut
+catguts
+Cath
+Cath.
+cath
+cath-
+Catha
+cat-hammed
+Cathar
+cathar
+catharan
+Cathari
+Catharina
+Catharine
+catharine
+Catharism
+Catharist
+catharist
+Catharistic
+catharization
+catharize
+catharized
+catharizing
+Catharpin
+cat-harpin
+cat-harpings
+Cathars
+catharses
+catharsis
+Catharsius
+Cathartae
+Cathartes
+cathartic
+cathartical
+cathartically
+catharticalness
+cathartics
+Cathartidae
+Cathartides
+cathartin
+Cathartolinum
+Cathay
+Cathayan
+Cathe
+cat-head
+cathead
+catheads
+cathect
+cathected
+cathectic
+cathecting
+cathection
+cathects
+cathedra
+cathedrae
+cathedral
+cathedraled
+cathedralesque
+cathedralic
+cathedral-like
+cathedrallike
+cathedrals
+cathedralwise
+cathedras
+cathedrated
+cathedratic
+cathedratica
+cathedratical
+cathedratically
+cathedraticum
+Cathee
+cathepsin
+catheptic
+Cather
+catheretic
+Catherin
+Catherina
+Catherine
+catherine
+cathern
+Catherwood
+Catheryn
+catheter
+catheterisation
+catheterise
+catheterised
+catheterising
+catheterism
+catheterization
+catheterize
+catheterized
+catheterizes
+catheterizing
+catheters
+catheti
+cathetometer
+cathetometric
+cathetus
+cathetusti
+cathexes
+cathexion
+cathexis
+Cathey
+Cathi
+cathidine
+Cathie
+cathin
+cathine
+cathinine
+cathion
+cathisma
+cathismata
+Cathlamet
+Cathleen
+Cathlene
+cathodal
+cathode
+cathodegraph
+cathodes
+cathodic
+cathodical
+cathodically
+cathodofluorescence
+cathodograph
+cathodography
+cathodoluminescence
+cathodo-luminescent
+cathodoluminescent
+cathograph
+cathography
+cat-hole
+cathole
+Catholic
+catholic
+catholical
+catholically
+catholicalness
+catholicate
+catholici
+catholicisation
+catholicise
+catholicised
+catholiciser
+catholicising
+Catholicism
+catholicism
+catholicist
+Catholicity
+catholicity
+catholicization
+catholicize
+catholicized
+catholicizer
+catholicizing
+catholicly
+catholicness
+catholico-
+catholicoi
+catholicon
+catholicos
+catholicoses
+catholics
+catholicus
+catholyte
+Cathomycin
+cathood
+cathop
+cathouse
+cathouses
+Cathrin
+Cathrine
+ca'-thro'
+cathro
+Cathryn
+cathud
+Cathy
+cathy
+Cathyleen
+Cati
+Catie
+Catilinarian
+Catiline
+catiline
+Catima
+Catina
+cating
+cation
+cation-active
+cationic
+cationically
+cations
+CATIS
+cativo
+catjang
+catkin
+catkinate
+catkins
+Catlaina
+cat-lap
+catlap
+CATLAS
+Catlee
+Catlett
+Catlettsburg
+cat-like
+catlike
+Catlin
+catlin
+catline
+catling
+catlings
+catlinite
+catlins
+cat-locks
+catmalison
+catmint
+catmints
+catnache
+catnap
+catnaper
+catnapers
+catnapped
+catnapper
+catnapping
+catnaps
+catnep
+catnip
+catnips
+Cato
+catoblepas
+Catocala
+catocalid
+catocarthartic
+catocathartic
+catochus
+Catoctin
+catoctin
+Catodon
+catodont
+catogene
+catogenic
+Catoism
+cat-o'-mountain
+Caton
+Catonian
+catonian
+Catonic
+Catonically
+cat-o'-nine-tails
+cat-o-nine-tails
+Catonism
+Catonsville
+Catoosa
+catoptric
+catoptrical
+catoptrically
+catoptrics
+catoptrite
+catoptromancy
+catoptromantic
+Catoquina
+catostomid
+Catostomidae
+catostomoid
+Catostomus
+catouse
+catpiece
+catpipe
+catproof
+Catreus
+cat-rigged
+catrigged
+Catrina
+Catriona
+Catron
+cats
+cat's-claw
+cat's-cradle
+cat's-ear
+cat's-eye
+cat's-eyes
+cat's-feet
+cat's-foot
+cat's-head
+Catskill
+catskill
+Catskills
+catskin
+catskinner
+catslide
+catso
+catsos
+cat's-paw
+catspaw
+catspaws
+cat's-tail
+catstane
+catstep
+cat-stick
+catstick
+catstitch
+catstitcher
+catstone
+catsup
+catsups
+Catt
+cattabu
+cattail
+cattails
+cattalo
+cattaloes
+cattalos
+Cattan
+cattan
+Cattaraugus
+catted
+Cattegat
+Cattell
+catter
+catteries
+cattery
+Catti
+cattie
+Cattier
+cattier
+catties
+cattiest
+cattily
+Cattima
+cattimandoo
+cattiness
+cattinesses
+catting
+cattish
+cattishly
+cattishness
+cattle
+cattlebush
+cattlefold
+cattlegate
+cattle-grid
+cattle-guard
+cattlehide
+cattleless
+cattleman
+cattlemen
+cattle-plague
+cattle-ranching
+cattleship
+cattle-specked
+Cattleya
+cattleya
+cattleyak
+cattleyas
+Catto
+Catton
+cat-train
+Catty
+catty
+catty-co
+catty-corner
+cattycorner
+catty-cornered
+cattycornered
+cattyman
+cattyphoid
+Catullian
+Catullus
+catur
+CATV
+catvine
+catwalk
+catwalks
+cat-whistles
+catwise
+cat-witted
+catwood
+catwort
+Caty
+catydid
+catzerie
+CAU
+caubeen
+cauboge
+Cauca
+Caucasia
+Caucasian
+caucasian
+caucasians
+Caucasic
+Caucasoid
+caucasoid
+caucasoids
+Caucasus
+caucasus
+Caucete
+cauch
+cauchemar
+cauchillo
+caucho
+Cauchy
+Caucon
+caucus
+caucused
+caucuses
+caucusing
+caucussed
+caucusses
+caucussing
+cauda
+caudad
+caudae
+caudaite
+caudal
+caudally
+caudalward
+Caudata
+caudata
+caudate
+caudated
+caudates
+caudation
+caudatolenticular
+caudatory
+caudatum
+Caudebec
+caudebeck
+caudex
+caudexes
+caudices
+caudicle
+caudiform
+caudillism
+Caudillo
+caudillo
+caudillos
+caudle
+caudles
+caudocephalad
+caudodorsal
+caudofemoral
+caudolateral
+caudotibial
+caudotibialis
+cauf
+caufle
+Caughey
+Caughnawaga
+caught
+cauk
+cauked
+cauking
+caul
+cauld
+cauldrife
+cauldrifeness
+cauldron
+cauldrons
+caulds
+Caulerpa
+Caulerpaceae
+caulerpaceous
+caules
+caulescent
+Caulfield
+cauli
+caulicle
+caulicles
+caulicole
+caulicolous
+caulicule
+cauliculi
+cauliculus
+cauliferous
+cauliflorous
+cauliflory
+cauliflower
+cauliflower-eared
+cauliflowers
+cauliform
+cauligenous
+caulinar
+caulinary
+cauline
+caulis
+Caulite
+caulivorous
+caulk
+caulked
+caulker
+caulkers
+caulking
+caulkings
+caulks
+caulo-
+caulocarpic
+caulocarpous
+caulome
+caulomer
+caulomic
+Caulonia
+caulophylline
+Caulophyllum
+Caulopteris
+caulopteris
+caulosarc
+caulotaxis
+caulotaxy
+caulote
+cauls
+caum
+cauma
+caumatic
+caunch
+Caundra
+Caunos
+caunter
+Caunus
+caup
+caupo
+cauponate
+cauponation
+caupones
+cauponize
+Cauquenes
+Cauqui
+caurale
+Caurus
+caus
+caus.
+causa
+causability
+causable
+causae
+causal
+causaless
+causalgia
+causalities
+causality
+causally
+causals
+causans
+causata
+causate
+causation
+causational
+causationism
+causationist
+causations
+causative
+causatively
+causativeness
+causativity
+causator
+causatum
+cause
+cause-and-effect
+caused
+causeful
+causeless
+causelessly
+causelessness
+causer
+causerie
+causeries
+causers
+causes
+causeur
+causeuse
+causeuses
+causeway
+causewayed
+causewaying
+causewayman
+causeways
+Causey
+causey
+causeys
+causidical
+causing
+causingness
+causon
+causse
+causson
+caustic
+caustical
+caustically
+causticiser
+causticism
+causticity
+causticization
+causticize
+causticized
+causticizer
+causticizing
+causticly
+causticness
+caustics
+caustification
+caustified
+caustify
+caustifying
+Causus
+cautel
+cautela
+cautelous
+cautelously
+cautelousness
+cauter
+cauterant
+cauteries
+cauterisation
+cauterise
+cauterised
+cauterising
+cauterism
+cauterization
+cauterizations
+cauterize
+cauterized
+cauterizer
+cauterizes
+cauterizing
+cautery
+Cauthornville
+cautio
+caution
+cautionaries
+cautionary
+cautioned
+cautioner
+cautioners
+cautiones
+cautioning
+cautionings
+cautionry
+cautions
+cautious
+cautiously
+cautiousness
+cautiousnesses
+cautivo
+Cauvery
+CAV
+Cav
+Cav.
+cav
+cava
+cavae
+cavaedia
+cavaedium
+Cavafy
+caval
+cavalcade
+cavalcaded
+cavalcades
+cavalcading
+Cavalerius
+cavalero
+cavaleros
+Cavalier
+cavalier
+cavaliere
+cavaliered
+cavalieres
+Cavalieri
+cavalieri
+cavaliering
+cavalierish
+cavalierishness
+cavalierism
+cavalierly
+cavalierness
+cavaliernesses
+cavaliero
+cavaliers
+cavaliership
+cavalla
+Cavallaro
+cavallas
+cavallies
+cavally
+cavalries
+cavalry
+cavalryman
+cavalrymen
+Cavan
+Cavanagh
+Cavanaugh
+cavascope
+cavate
+cavated
+cavatina
+cavatinas
+cavatine
+cavayard
+cavdia
+Cave
+cave
+cavea
+caveae
+caveat
+caveated
+caveatee
+caveating
+caveator
+caveators
+caveats
+caved
+cavefish
+cavefishes
+cave-guarded
+cave-in
+cavekeeper
+cave-keeping
+cavel
+cavelet
+cavelike
+Cavell
+cave-lodged
+cave-loving
+caveman
+cavemen
+Cavendish
+cavendish
+caver
+cavern
+cavernal
+caverned
+cavernicolous
+caverning
+cavernitis
+cavernlike
+cavernoma
+cavernous
+cavernously
+caverns
+cavernulous
+cavers
+Caves
+caves
+cavesson
+Cavetown
+cavetti
+cavetto
+cavettos
+cavey
+Cavia
+caviar
+caviare
+caviares
+caviars
+cavicorn
+Cavicornia
+Cavidae
+cavie
+cavies
+Cavil
+cavil
+caviled
+caviler
+cavilers
+caviling
+cavilingly
+cavilingness
+Cavill
+cavillation
+cavillatory
+cavilled
+caviller
+cavillers
+cavilling
+cavillingly
+cavillingness
+cavillous
+cavils
+cavin
+Cavina
+Caviness
+caving
+cavings
+cavi-relievi
+cavi-rilievi
+cavish
+Cavit
+cavitary
+cavitate
+cavitated
+cavitates
+cavitating
+cavitation
+cavitations
+Cavite
+caviteno
+cavitied
+cavities
+cavity
+caviya
+cavo-relievo
+cavo-relievos
+cavo-rilievo
+cavort
+cavorted
+cavorter
+cavorters
+cavorting
+cavorts
+Cavour
+CAVU
+cavu
+cavum
+Cavuoto
+cavus
+cavy
+cavyyard
+caw
+Cawdrey
+cawed
+cawing
+cawk
+cawker
+cawky
+cawl
+Cawley
+cawney
+cawnie
+Cawnpore
+cawny
+Cawood
+cawquaw
+caws
+c-axes
+Caxias
+caxiri
+c-axis
+caxon
+Caxton
+caxton
+Caxtonian
+cay
+Cayapa
+Cayapo
+Cayce
+Caye
+Cayenne
+cayenne
+cayenned
+cayennes
+Cayes
+Cayey
+Cayla
+Cayley
+Cayleyan
+cayleyan
+Caylor
+cayman
+caymans
+caynard
+cayos
+cays
+Cayser
+Cayubaba
+Cayubaban
+cayuca
+cayuco
+Cayucos
+Cayuga
+cayuga
+Cayugan
+Cayugas
+cayugas
+Cayuse
+cayuse
+cayuses
+Cayuta
+Cayuvava
+Caz
+caza
+Cazadero
+Cazenovia
+cazibi
+cazimi
+cazique
+caziques
+Cazzie
+C.B.
+CB
+Cb
+cb
+CBC
+C.B.D.
+CBD
+CBDS
+C.B.E.
+CBE
+CBEL
+CBEMA
+CBI
+C-bias
+CBR
+CBS
+CBW
+CBX
+C.C.
+CC
+Cc
+cc
+cc.
+CCA
+CCAFS
+CCC
+CCCCM
+CCCI
+CCD
+CCDS
+Cceres
+ccesser
+CCF
+CCH
+Cchaddie
+cchaddoorck
+Cchakri
+CCI
+ccid
+CCIM
+CCIP
+CCIR
+CCIS
+CCITT
+ccitt
+cckw
+CCL
+CCls
+ccm
+CCNC
+CCNY
+Ccoya
+CCP
+CCR
+CCRP
+CCS
+CCSA
+CCT
+CCTA
+CCTAC
+CCTV
+CCU
+Ccuta
+CCV
+CCW
+ccw
+ccws
+C.D.
+C/D
+CD
+Cd
+c.d.
+c/d
+cd
+cd.
+CDA
+CDAR
+CDB
+CDC
+CDCF
+Cdenas
+CDEV
+CDF
+cdf
+cdg
+CDI
+CDIAC
+Cdiz
+CDN
+Cdn
+CDO
+Cdoba
+CDP
+CDPR
+CDR
+Cdr
+Cdr.
+cdr
+Cdre
+CDROM
+CDS
+CDSF
+CDT
+CDU
+C.E.
+CE
+Ce
+ce
+CEA
+Ceanothus
+ceanothus
+Cear
+Ceara
+cearin
+cease
+ceased
+cease-fire
+ceaseless
+ceaselessly
+ceaselessness
+ceases
+ceasing
+ceasmic
+Ceausescu
+Ceb
+Cebalrai
+Cebatha
+cebell
+cebian
+cebid
+Cebidae
+cebids
+cebil
+cebine
+ceboid
+ceboids
+Cebolla
+cebollite
+Cebriones
+Cebu
+cebur
+Cebus
+cebus
+CEC
+ceca
+cecal
+cecally
+cecca
+cecchine
+Cece
+Cecelia
+Cechy
+cecidiologist
+cecidiology
+cecidium
+cecidogenous
+cecidologist
+cecidology
+cecidomyian
+cecidomyiid
+Cecidomyiidae
+cecidomyiidous
+Cecil
+cecil
+Cecile
+Ceciley
+Cecilia
+Cecilio
+cecilite
+Cecilius
+Cecilla
+Cecillia
+cecils
+Cecilton
+Cecily
+cecitis
+cecity
+cecograph
+Cecomorphae
+cecomorphic
+cecopexy
+cecostomy
+cecotomy
+Cecropia
+cecropia
+Cecrops
+cecum
+cecums
+cecutiency
+Cecyle
+CED
+Ced
+Cedalion
+Cedar
+cedar
+cedarbird
+Cedarbrook
+cedar-brown
+Cedarburg
+cedar-colored
+Cedarcrest
+cedared
+Cedaredge
+Cedarhurst
+Cedarkey
+Cedarlane
+cedarn
+Cedars
+cedars
+Cedartown
+Cedarvale
+Cedarville
+cedarware
+cedarwood
+cedary
+cede
+ceded
+Cedell
+cedens
+cedent
+ceder
+ceders
+cedes
+cedi
+cedilla
+cedillas
+ceding
+cedis
+cedr-
+cedrat
+cedrate
+cedre
+Cedreatis
+Cedrela
+cedrela
+cedrene
+Cedric
+cedrin
+cedrine
+cedriret
+cedrium
+cedrol
+cedron
+Cedrus
+cedry
+cedula
+cedulas
+cedule
+ceduous
+cee
+ceennacuelum
+CEERT
+cees
+Ceevah
+Ceevee
+CEF
+Cefis
+CEGB
+CEI
+Ceiba
+ceiba
+ceibas
+ceibo
+ceibos
+Ceil
+ceil
+ceile
+ceiled
+ceiler
+ceilers
+ceilidh
+ceilidhe
+ceiling
+ceilinged
+ceilings
+ceilingward
+ceilingwards
+ceilometer
+ceils
+ceint
+ceinte
+ceinture
+ceintures
+ceja
+Cela
+Celadon
+celadon
+celadonite
+celadons
+Celaeno
+celandine
+celandines
+Celanese
+Celarent
+celarent
+Celastraceae
+celastraceous
+Celastrus
+celation
+celative
+celature
+Celaya
+-cele
+Cele
+cele
+celeb
+celebe
+Celebes
+celebes
+Celebesian
+celebrant
+celebrants
+celebrate
+celebrated
+celebratedly
+celebratedness
+celebrater
+celebrates
+celebrating
+celebration
+celebrationis
+celebrations
+celebrative
+celebrator
+celebrators
+celebratory
+celebre
+celebres
+celebret
+Celebrezze
+celebrious
+celebrities
+celebrity
+celebs
+celemin
+celemines
+Celene
+celeomorph
+Celeomorphae
+celeomorphic
+celeriac
+celeriacs
+celeries
+celerities
+celerity
+celery
+celery-leaved
+celery-topped
+Celeski
+Celesta
+celesta
+celestas
+Celeste
+celeste
+celestes
+Celestia
+celestial
+celestiality
+celestialize
+celestialized
+celestially
+celestialness
+celestify
+Celestina
+celestina
+Celestine
+celestine
+Celestinian
+celestite
+celestitude
+Celestyn
+Celestyna
+celeusma
+Celeuthea
+Celia
+celiac
+celiacs
+celiadelphus
+celiagra
+celialgia
+celibacies
+celibacy
+celibataire
+celibatarian
+celibate
+celibates
+celibatic
+celibatist
+celibatory
+celidographer
+celidography
+Celie
+celiectasia
+celiectomy
+celiemia
+celiitis
+Celik
+Celin
+Celina
+Celinda
+Celine
+Celinka
+Celio
+celiocele
+celiocentesis
+celiocolpotomy
+celiocyesis
+celiodynia
+celioelytrotomy
+celioenterotomy
+celiogastrotomy
+celiohysterotomy
+celiolymph
+celiomyalgia
+celiomyodynia
+celiomyomectomy
+celiomyomotomy
+celiomyositis
+celioncus
+celioparacentesis
+celiopyosis
+celiorrhaphy
+celiorrhea
+celiosalpingectomy
+celiosalpingotomy
+celioschisis
+celioscope
+celioscopy
+celiotomies
+celiotomy
+Celisse
+celite
+Celka
+cell
+cella
+cellae
+cellager
+cellar
+cellarage
+cellared
+cellarer
+cellarers
+cellaress
+cellaret
+cellarets
+cellarette
+cellaring
+cellarless
+cellarman
+cellarmen
+cellarous
+cellars
+cellarway
+cellarwoman
+cellated
+cellblock
+cell-blockade
+cellblocks
+Celle
+celled
+Cellepora
+cellepore
+Cellfalcicula
+celli
+celliferous
+celliform
+cellifugal
+celling
+Cellini
+cellipetal
+cellist
+cellists
+Cellite
+cell-like
+cellmate
+cellmates
+Cello
+cello
+cellobiose
+cellocut
+celloid
+celloidin
+celloist
+cellophane
+cellophanes
+cellos
+cellose
+cells
+cell-shaped
+Cellucotton
+cellular
+cellularity
+cellularly
+cellulase
+cellulate
+cellulated
+cellulating
+cellulation
+cellule
+cellules
+cellulicidal
+celluliferous
+cellulifugal
+cellulifugally
+cellulin
+cellulipetal
+cellulipetally
+cellulitis
+cellulo-
+cellulocutaneous
+cellulofibrous
+Celluloid
+celluloid
+celluloided
+cellulolytic
+Cellulomonadeae
+Cellulomonas
+cellulose
+cellulosed
+celluloses
+cellulosic
+cellulosing
+cellulosities
+cellulosity
+cellulotoxic
+cellulous
+Cellvibrio
+Cel-o-Glass
+celom
+celomata
+celoms
+celo-navigation
+Celoron
+celoscope
+Celosia
+celosia
+celosias
+Celotex
+celotomies
+celotomy
+Cels
+Celsia
+celsian
+celsitude
+Celsius
+celsius
+CELSS
+Celt
+Celt.
+celt
+Celtdom
+Celtiberi
+Celtiberian
+Celtic
+celtic
+Celtically
+Celtic-Germanic
+Celticism
+Celticist
+celticist
+Celticize
+Celtidaceae
+celtiform
+Celtillyrians
+Celtis
+Celtish
+Celtism
+Celtist
+celtium
+Celtization
+celto-
+Celto-Germanic
+Celto-ligyes
+Celtologist
+Celtologue
+Celtomaniac
+Celtophil
+Celtophobe
+Celtophobia
+Celto-roman
+Celto-slavic
+Celto-thracians
+celts
+celtuce
+celure
+Cemal
+cembali
+cembalist
+cembalo
+cembalon
+cembalos
+cement
+cementa
+cemental
+cementation
+cementations
+cementatory
+cement-coated
+cement-covered
+cement-drying
+cemented
+cementer
+cementers
+cement-faced
+cement-forming
+cementification
+cementing
+cementite
+cementitious
+cementless
+cementlike
+cement-lined
+cement-lining
+cementmaker
+cementmaking
+cementoblast
+cementoma
+Cementon
+cements
+cement-temper
+cementum
+cementwork
+cemetaries
+cemetary
+cemeterial
+cemeteries
+cemetery
+CEN
+cen
+cen-
+cen.
+Cenac
+cenacle
+cenacles
+cenaculum
+Cenaean
+Cenaeum
+cenanthous
+cenanthy
+cenation
+cenatory
+Cence
+cencerro
+cencerros
+Cenchrias
+Cenchrus
+Cenci
+cendre
+-cene
+cene
+cenesthesia
+cenesthesis
+cenesthetic
+Cenis
+cenizo
+cenobe
+cenobian
+cenobies
+cenobite
+cenobites
+cenobitic
+cenobitical
+cenobitically
+cenobitism
+cenobium
+cenoby
+cenogamy
+cenogenesis
+cenogenetic
+cenogenetically
+cenogonous
+Cenomanian
+cenosite
+cenosity
+cenospecies
+cenospecific
+cenospecifically
+cenotaph
+cenotaphic
+cenotaphies
+cenotaphs
+cenotaphy
+cenote
+cenotes
+Cenozoic
+cenozoic
+cenozoology
+CENS
+cense
+censed
+censer
+censerless
+censers
+censes
+censing
+censitaire
+censive
+censor
+censorable
+censorate
+censored
+censorial
+censorian
+censoring
+Censorinus
+censorious
+censoriously
+censoriousness
+censoriousnesses
+censors
+censorship
+censorships
+censual
+censurability
+censurable
+censurableness
+censurably
+censure
+censured
+censureless
+censurer
+censurers
+censures
+censureship
+censuring
+census
+censused
+censuses
+censusing
+cent
+cent.
+centage
+centai
+cental
+centals
+centare
+centares
+centas
+centaur
+centaurdom
+Centaurea
+centaurea
+centauress
+Centauri
+centauri
+centaurial
+centaurian
+centauric
+Centaurid
+Centauridium
+centauries
+Centaurium
+centauromachia
+centauromachy
+centauro-triton
+centaurs
+Centaurus
+centaurus
+centaury
+centavo
+centavos
+centena
+centenar
+centenarian
+centenarianism
+centenarians
+centenaries
+Centenary
+centenary
+centenier
+centenionales
+centenionalis
+centennia
+centennial
+centennially
+centennials
+centennium
+Centeno
+Center
+center
+centerable
+centerboard
+centerboards
+centered
+centeredly
+centeredness
+centerer
+center-fire
+centerfold
+centerfolds
+centering
+centerless
+centerline
+centermost
+centerpiece
+centerpieces
+centerpunch
+centers
+center-sawed
+center-second
+centervelic
+Centerville
+centerward
+centerwise
+centeses
+centesimal
+centesimally
+centesimate
+centesimation
+centesimi
+centesimo
+centesimos
+centesis
+centesm
+Centetes
+centetid
+Centetidae
+centgener
+centgrave
+centi
+centi-
+centiar
+centiare
+centiares
+centibar
+centiday
+centifolious
+centigrade
+centigrado
+centigram
+centigramme
+centigrams
+centile
+centiles
+centiliter
+centiliters
+centilitre
+centillion
+centillions
+centillionth
+Centiloquy
+centiloquy
+Centimani
+centime
+centimes
+centimeter
+centimeter-gram
+centimeter-gram-second
+centimeters
+centimetre
+centimetre-gramme-second
+centimetre-gram-second
+centimetres
+centimo
+centimolar
+centimos
+centinel
+centinody
+centinormal
+centipedal
+centipede
+centipedes
+centiplume
+centipoise
+centistere
+centistoke
+centner
+centners
+CENTO
+cento
+centon
+centones
+centonical
+centonism
+centonization
+Centonze
+centos
+centr-
+centra
+centrad
+Centrahoma
+central
+centrale
+centraler
+Centrales
+centrales
+centralest
+central-fire
+Centralia
+centralia
+centralisation
+centralise
+centralised
+centraliser
+centralising
+centralism
+centralist
+centralistic
+centralists
+centralities
+centrality
+centralization
+centralizations
+centralize
+centralized
+centralizer
+centralizers
+centralizes
+centralizing
+centrally
+centralness
+centrals
+centranth
+Centranthus
+centrarchid
+Centrarchidae
+centrarchoid
+centration
+Centraxonia
+centraxonial
+Centre
+centre
+centreboard
+Centrechinoida
+centred
+centref
+centre-fire
+centrefold
+Centrehall
+centreless
+centremost
+centrepiece
+centrer
+centres
+centrev
+Centreville
+centrex
+centri-
+-centric
+centric
+Centricae
+centrical
+centricality
+centrically
+centricalness
+centricipital
+centriciput
+centricity
+centriffed
+centrifugal
+centrifugalisation
+centrifugalise
+centrifugalization
+centrifugalize
+centrifugalized
+centrifugalizing
+centrifugaller
+centrifugally
+centrifugate
+centrifugation
+centrifuge
+centrifuged
+centrifugence
+centrifuges
+centrifuging
+centring
+centrings
+centriole
+centripetal
+centripetalism
+centripetally
+centripetence
+centripetency
+centriscid
+Centriscidae
+centrisciform
+centriscoid
+Centriscus
+centrism
+centrisms
+centrist
+centrists
+centro
+centro-
+centroacinar
+centrobaric
+centrobarical
+centroclinal
+centrode
+centrodesmose
+centrodesmus
+centrodorsal
+centrodorsally
+centroid
+centroidal
+centroids
+centrolecithal
+Centrolepidaceae
+centrolepidaceous
+centrolinead
+centrolineal
+centromere
+centromeric
+centronote
+centronucleus
+centroplasm
+Centropomidae
+Centropomus
+Centrosema
+centrosome
+centrosomic
+Centrosoyus
+Centrospermae
+centrosphere
+centrosymmetric
+centrosymmetrical
+centrosymmetry
+Centrotus
+centrum
+centrums
+centrutra
+centry
+cents
+centum
+centums
+centumvir
+centumviral
+centumvirate
+Centunculus
+centuple
+centupled
+centuples
+centuplicate
+centuplicated
+centuplicating
+centuplication
+centupling
+centuply
+centure
+Centuria
+centuria
+centurial
+centuriate
+centuriation
+centuriator
+centuried
+centuries
+centurion
+centurions
+centurist
+Century
+century
+CEO
+ceonocyte
+ceorl
+ceorlish
+ceorls
+cep
+cepa
+cepaceous
+cepe
+cepes
+cephadia
+cephaeline
+Cephaelis
+cephal-
+cephala
+Cephalacanthidae
+Cephalacanthus
+cephalad
+cephalagra
+cephalalgia
+cephalalgic
+cephalalgy
+cephalanthium
+cephalanthous
+Cephalanthus
+Cephalaspis
+cephalaspis
+Cephalata
+cephalate
+cephaldemae
+cephalemia
+cephaletron
+Cephaleuros
+cephalexin
+cephalhematoma
+cephalhydrocele
+-cephalic
+cephalic
+cephalically
+cephalin
+Cephalina
+cephaline
+cephalins
+cephalism
+cephalitis
+cephalization
+cephalo-
+cephaloauricular
+cephalob
+Cephalobranchiata
+cephalobranchiate
+cephalocathartic
+cephalocaudal
+cephalocele
+cephalocentesis
+cephalocercal
+Cephalocereus
+cephalochord
+Cephalochorda
+cephalochordal
+Cephalochordata
+cephalochordate
+cephaloclasia
+cephaloclast
+cephalocone
+cephaloconic
+cephalocyst
+cephalodia
+cephalodiscid
+Cephalodiscida
+Cephalodiscus
+cephalodium
+cephalodymia
+cephalodymus
+cephalodynia
+cephalofacial
+cephalogenesis
+cephalogram
+cephalograph
+cephalohumeral
+cephalohumeralis
+cephaloid
+cephalology
+cephalom
+cephalomancy
+cephalomant
+cephalomelus
+cephalomenia
+cephalomeningitis
+cephalomere
+cephalometer
+cephalometric
+cephalometry
+cephalomotor
+cephalomyitis
+cephalon
+cephalonasal
+Cephalonia
+cephalopagus
+cephalopathy
+cephalopharyngeal
+cephalophine
+cephalophorous
+Cephalophus
+cephalophyma
+cephaloplegia
+cephaloplegic
+cephalopod
+Cephalopoda
+cephalopoda
+cephalopodan
+cephalopodic
+cephalopodous
+Cephalopterus
+cephalorachidian
+cephalorhachidian
+cephaloridine
+cephalosome
+cephalospinal
+cephalosporin
+Cephalosporium
+cephalostyle
+Cephalotaceae
+cephalotaceous
+Cephalotaxus
+cephalotheca
+cephalothecal
+cephalothoraces
+cephalothoracic
+cephalothoracopagus
+cephalothorax
+cephalothoraxes
+cephalotome
+cephalotomy
+cephalotractor
+cephalotribe
+cephalotripsy
+cephalotrocha
+Cephalotus
+cephalous
+-cephalus
+Cephalus
+Cephas
+Cephei
+Cepheid
+cepheid
+cepheids
+cephen
+Cepheus
+cepheus
+cephid
+Cephidae
+Cephus
+Cepolidae
+Ceporah
+cepous
+ceps
+cepter
+ceptor
+CEQ
+cequi
+cera
+ceraceous
+cerago
+ceral
+Cerallua
+Ceram
+ceramal
+ceramals
+Cerambus
+cerambycid
+Cerambycidae
+Ceramiaceae
+ceramiaceous
+ceramic
+ceramicist
+ceramicists
+ceramicite
+ceramics
+ceramidium
+ceramist
+ceramists
+Ceramium
+ceramium
+ceramographic
+ceramography
+cerargyrite
+ceras
+cerasein
+cerasin
+cerastes
+Cerastium
+Cerasus
+cerat
+cerat-
+cerata
+cerate
+ceratectomy
+cerated
+cerates
+ceratiasis
+ceratiid
+Ceratiidae
+ceratin
+ceratinous
+ceratins
+ceratioid
+ceration
+ceratite
+Ceratites
+ceratitic
+Ceratitidae
+Ceratitis
+ceratitoid
+Ceratitoidea
+Ceratium
+ceratium
+cerato-
+Ceratobatrachinae
+ceratoblast
+ceratobranchial
+ceratocricoid
+ceratocystis
+Ceratodidae
+Ceratodontidae
+Ceratodus
+ceratodus
+ceratoduses
+ceratofibrous
+ceratoglossal
+ceratoglossus
+ceratohyal
+ceratohyoid
+ceratoid
+ceratomandibular
+ceratomania
+Ceratonia
+Ceratophrys
+Ceratophyllaceae
+ceratophyllaceous
+Ceratophyllum
+Ceratophyta
+ceratophyte
+Ceratops
+Ceratopsia
+ceratopsian
+ceratopsid
+Ceratopsidae
+Ceratopteridaceae
+ceratopteridaceous
+Ceratopteris
+ceratorhine
+Ceratosa
+Ceratosaurus
+ceratosaurus
+Ceratospongiae
+ceratospongian
+Ceratostomataceae
+Ceratostomella
+ceratotheca
+ceratothecae
+ceratothecal
+Ceratozamia
+ceraunia
+ceraunics
+ceraunite
+ceraunogram
+ceraunograph
+ceraunomancy
+ceraunophone
+ceraunoscope
+ceraunoscopy
+Cerbberi
+Cerberean
+cerberean
+Cerberi
+Cerberic
+Cerberus
+cerberus
+Cerberuses
+-cercal
+cercal
+cercaria
+cercariae
+cercarial
+cercarian
+cercarias
+cercariform
+cercelee
+cerci
+Cercidiphyllaceae
+Cercis
+cercis
+cercises
+cercis-leaf
+cercle
+Cercocebus
+Cercolabes
+Cercolabidae
+cercomonad
+Cercomonadidae
+Cercomonas
+Cercopes
+cercopid
+Cercopidae
+cercopithecid
+Cercopithecidae
+Cercopithecoid
+cercopithecoid
+Cercopithecus
+cercopithecus
+cercopod
+Cercospora
+Cercosporella
+cercus
+Cercyon
+Cerdonian
+CerE
+cere
+cereal
+cerealian
+cerealin
+cerealism
+cerealist
+cerealose
+cereals
+cerebbella
+cerebella
+cerebellar
+cerebellifugal
+cerebellipetal
+cerebellitis
+cerebellocortex
+cerebello-olivary
+cerebellopontile
+cerebellopontine
+cerebellorubral
+cerebellospinal
+cerebellum
+cerebellums
+cerebr-
+cerebra
+cerebral
+cerebralgia
+cerebralism
+cerebralist
+cerebralization
+cerebralize
+cerebrally
+cerebrals
+cerebrasthenia
+cerebrasthenic
+cerebrate
+cerebrated
+cerebrates
+cerebrating
+cerebration
+cerebrational
+cerebrations
+Cerebratulus
+cerebri
+cerebric
+cerebricity
+cerebriform
+cerebriformly
+cerebrifugal
+cerebrin
+cerebripetal
+cerebritis
+cerebrize
+cerebro-
+cerebrocardiac
+cerebrogalactose
+cerebroganglion
+cerebroganglionic
+cerebroid
+cerebrology
+cerebroma
+cerebromalacia
+cerebromedullary
+cerebromeningeal
+cerebromeningitis
+cerebrometer
+cerebron
+cerebronic
+cerebro-ocular
+cerebroparietal
+cerebropathy
+cerebropedal
+cerebrophysiology
+cerebropontile
+cerebropsychosis
+cerebrorachidian
+cerebrosclerosis
+cerebroscope
+cerebroscopy
+cerebrose
+cerebrosensorial
+cerebroside
+cerebrosis
+cerebro-spinal
+cerebrospinal
+cerebrospinant
+cerebrosuria
+cerebrotomy
+cerebrotonia
+cerebrotonic
+cerebrovascular
+cerebrovisceral
+cerebrum
+cerebrums
+cerecloth
+cerecloths
+cered
+Ceredo
+cereless
+Cerelia
+Cerell
+Cerellia
+Cerelly
+cerement
+cerements
+ceremonial
+ceremonialism
+ceremonialist
+ceremonialists
+ceremonialize
+ceremonially
+ceremonialness
+ceremonials
+ceremoniary
+ceremonies
+ceremonious
+ceremoniously
+ceremoniousness
+ceremony
+Cerenkov
+cerenkov
+cereous
+cerer
+cererite
+Ceres
+ceres
+Ceresco
+ceresin
+ceresine
+Cereus
+cereus
+cereuses
+cerevis
+cerevisial
+cereza
+Cerf
+cerfoil
+ceria
+Cerialia
+cerianthid
+Cerianthidae
+cerianthoid
+Cerianthus
+cerias
+ceric
+ceride
+ceriferous
+cerigerous
+Cerigo
+cerilla
+cerillo
+ceriman
+cerimans
+cerin
+cerine
+cering
+Cerinthe
+Cerinthian
+cerinthian
+Ceriomyces
+Cerion
+Cerionidae
+ceriops
+Ceriornis
+ceriph
+ceriphs
+cerise
+cerises
+cerite
+cerites
+Cerithiidae
+cerithioid
+Cerithium
+cerium
+ceriums
+CERMET
+cermet
+cermets
+CERN
+Cern
+cern
+Cernauti
+cerned
+cerning
+cerniture
+Cernuda
+cernuous
+cero
+cero-
+cerograph
+cerographer
+cerographic
+cerographical
+cerographies
+cerographist
+cerography
+ceroid
+ceroline
+cerolite
+ceroma
+ceromancy
+ceromez
+ceroon
+cerophilous
+ceroplast
+ceroplastic
+ceroplastics
+ceroplasty
+ceros
+cerosin
+ceroso-
+cerotate
+cerote
+cerotene
+cerotic
+cerotin
+cerotype
+cerotypes
+cerous
+ceroxyle
+Ceroxylon
+Cerracchio
+cerrero
+cerre-tree
+cerrial
+Cerrillos
+cerris
+Cerritos
+Cerro
+Cerrogordo
+CERT
+cert
+cert.
+certain
+certainer
+certainest
+certainly
+certainness
+certainties
+certainty
+certes
+Certhia
+Certhiidae
+Certie
+certie
+certif
+certifiability
+certifiable
+certifiableness
+certifiably
+certificate
+certificated
+certificates
+certificating
+certification
+certifications
+certificative
+certificator
+certificatory
+certified
+certifier
+certifiers
+certifies
+certify
+certifying
+certiorari
+certiorate
+certiorating
+certioration
+certis
+certitude
+certitudes
+certosa
+certose
+certosina
+certosino
+certy
+cerule
+cerulean
+ceruleans
+cerulein
+ceruleite
+ceruleo-
+ceruleolactite
+ceruleous
+cerulescent
+ceruleum
+cerulific
+cerulignol
+cerulignone
+ceruloplasmin
+cerumen
+cerumens
+ceruminal
+ceruminiferous
+ceruminous
+cerumniparous
+ceruse
+ceruses
+cerusite
+cerusites
+cerussite
+cervalet
+Cervantes
+cervantes
+cervantic
+Cervantist
+cervantite
+cervelas
+cervelases
+cervelat
+cervelats
+cerveliere
+cervelliere
+Cerveny
+cervical
+Cervicapra
+cervicaprine
+cervicectomy
+cervices
+cervicicardiac
+cervicide
+cerviciplex
+cervicispinal
+cervicitis
+cervico-
+cervicoauricular
+cervicoaxillary
+cervicobasilar
+cervicobrachial
+cervicobregmatic
+cervicobuccal
+cervicodorsal
+cervicodynia
+cervicofacial
+cervicohumeral
+cervicolabial
+cervicolingual
+cervicolumbar
+cervicomuscular
+cerviconasal
+cervico-occipital
+cervico-orbicular
+cervicorn
+cervicoscapular
+cervicothoracic
+cervicovaginal
+cervicovesical
+cervid
+Cervidae
+Cervin
+Cervinae
+cervine
+cervisia
+cervisial
+cervix
+cervixes
+cervoid
+cervuline
+Cervulus
+Cervus
+Cery
+ceryl
+Cerynean
+Cerys
+Ceryx
+Cesar
+cesar
+Cesare
+cesare
+Cesarean
+cesarean
+cesareans
+cesarevitch
+Cesaria
+Cesarian
+cesarian
+cesarians
+Cesaro
+cesarolite
+Cesena
+cesious
+cesium
+cesiums
+cespititious
+cespititous
+cespitose
+cespitosely
+cespitulose
+cess
+cessant
+cessantly
+cessation
+cessations
+cessative
+cessavit
+cessed
+cesser
+cesses
+cessible
+cessing
+cessio
+cession
+cessionaire
+cessionaries
+cessionary
+cessionee
+cessions
+cessment
+Cessna
+cessor
+cesspipe
+cesspit
+cesspits
+cesspool
+cesspools
+cest
+cesta
+Cestar
+cestas
+ceste
+Cesti
+cesti
+Cestida
+Cestidae
+Cestoda
+Cestodaria
+cestode
+cestodes
+cestoi
+cestoid
+Cestoidea
+cestoidean
+cestoids
+ceston
+cestos
+Cestracion
+cestraciont
+Cestraciontes
+Cestraciontidae
+cestraction
+Cestrian
+cestrian
+Cestrinus
+Cestrum
+cestrum
+cestui
+cestus
+cestuses
+cestuy
+cesura
+cesurae
+cesural
+cesuras
+cesure
+Cesya
+CET
+cet-
+Ceta
+Cetacea
+cetacea
+cetacean
+cetaceans
+cetaceous
+cetaceum
+cetane
+cetanes
+Cete
+cete
+cetene
+ceteosaur
+cetera
+ceterach
+cetes
+Ceti
+ceti
+cetic
+ceticide
+Cetid
+cetin
+Cetinje
+Cetiosauria
+cetiosaurian
+Cetiosaurus
+cetiosaurus
+Ceto
+cetological
+cetologies
+cetologist
+cetology
+Cetomorpha
+cetomorphic
+Cetonia
+cetonian
+Cetoniides
+Cetoniinae
+cetorhinid
+Cetorhinidae
+cetorhinoid
+Cetorhinus
+cetotolite
+Cetraria
+cetraric
+cetrarin
+Cetura
+Cetus
+cetus
+cetyl
+cetylene
+cetylic
+Ceuta
+CEV
+cevadilla
+cevadilline
+cevadine
+Cevdet
+Cevennes
+Cevennian
+Cevenol
+Cevenole
+CEVI
+cevian
+ceviche
+ceviches
+cevine
+cevitamic
+ceylanite
+Ceylon
+ceylon
+Ceylonese
+ceylonese
+ceylonite
+ceyssatite
+Ceyx
+Cezanne
+Cezannesque
+C.F.
+CF
+Cf
+c/f
+cf
+cf.
+CFA
+CFB
+CFC
+CFCA
+CFD
+cfd
+CFE
+CFF
+cfh
+CFHT
+CFI
+cfi
+CFL
+cfm
+CFO
+CFP
+CFR
+cfs
+C.G.
+CG
+c.g.
+cg
+cg.
+CGA
+CGCT
+CGE
+CGI
+CGIAR
+CGM
+cgm
+CGN
+CGS
+cgs
+CGX
+CH
+Ch
+c.h.
+ch
+ch.
+CHA
+Cha
+cha
+chaa
+Cha'ah
+chab
+chabasie
+chabasite
+chabazite
+chaber
+Chabichou
+Chablis
+chablis
+Chabot
+chabot
+chabouk
+chabouks
+Chabrier
+Chabrol
+chabuk
+chabuks
+chabutra
+Chac
+chacate
+chac-chac
+chaccon
+Chace
+chace
+Cha-cha
+cha-cha
+cha-cha-cha
+cha-chaed
+cha-chaing
+chachalaca
+chachalakas
+Chachapuya
+cha-chas
+chack
+chack-bird
+Chackchiuma
+chacker
+chackle
+chackled
+chackler
+chackling
+chacma
+chacmas
+Chac-mool
+Chaco
+chaco
+chacoli
+Chacon
+chacona
+chaconne
+chaconnes
+chacra
+chacte
+chacun
+Chad
+chad
+Chadabe
+chadacryst
+chadar
+chadarim
+chadars
+Chadbourn
+Chadbourne
+Chadburn
+Chadd
+Chadderton
+Chaddie
+Chaddsford
+Chaddy
+chadelle
+Chader
+Chadic
+chadless
+chadlock
+chador
+chadors
+chadri
+Chadron
+chads
+Chadwick
+Chadwicks
+Chae
+Chaenactis
+Chaenolobus
+Chaenomeles
+Chaeronea
+chaeta
+chaetae
+chaetal
+Chaetangiaceae
+Chaetangium
+Chaetetes
+Chaetetidae
+Chaetifera
+chaetiferous
+Chaetites
+Chaetitidae
+Chaetochloa
+Chaetodon
+chaetodon
+chaetodont
+chaetodontid
+Chaetodontidae
+chaetognath
+Chaetognatha
+chaetognathan
+chaetognathous
+chaetophobia
+Chaetophora
+Chaetophoraceae
+chaetophoraceous
+Chaetophorales
+chaetophorous
+chaetopod
+Chaetopoda
+chaetopodan
+chaetopodous
+chaetopterin
+Chaetopterus
+chaetosema
+Chaetosoma
+Chaetosomatidae
+Chaetosomidae
+chaetotactic
+chaetotaxy
+Chaetura
+chafe
+chafed
+Chafee
+chafer
+chaferies
+chafers
+chafery
+chafes
+chafe-wax
+chafewax
+chafeweed
+chaff
+chaffcutter
+chaffed
+Chaffee
+chaffer
+chaffered
+chafferer
+chafferers
+chaffering
+chaffers
+chaffery
+chaffeur-ship
+chaff-flower
+chaffier
+chaffiest
+Chaffin
+Chaffinch
+chaffinch
+chaffinches
+chaffiness
+chaffing
+chaffingly
+chaffless
+chafflike
+chaffman
+chaffron
+chaffs
+chaffseed
+chaffwax
+chaff-weed
+chaffweed
+chaffy
+chafing
+chaft
+chafted
+Chaga
+chagal
+Chagall
+chagan
+Chagatai
+Chagga
+chagigah
+chagoma
+Chagres
+chagrin
+chagrined
+chagrining
+chagrinned
+chagrinning
+chagrins
+chaguar
+chagul
+Chahab
+Chahar
+chahar
+chahars
+chai
+Chaiken
+Chaikovski
+Chaille
+Chailletiaceae
+Chaillot
+Chaim
+Chain
+chain
+chainage
+chain-bag
+chainbearer
+chainbreak
+chain-bridge
+chain-driven
+chain-drooped
+chaine
+chained
+chainer
+chaines
+chainette
+Chainey
+Chaing
+Chaingy
+chaining
+chainless
+chainlet
+chainlike
+chainmaker
+chainmaking
+chainman
+chainmen
+chainomatic
+chainon
+chainplate
+chain-pump
+chain-react
+chain-reacting
+chains
+chain-shaped
+chain-shot
+chainsman
+chainsmen
+chainsmith
+chain-smoke
+chain-smoked
+chain-smoker
+chain-smoking
+chain-spotted
+chain-stitch
+chainstitch
+chain-stitching
+chain-swung
+chain-testing
+chain-wale
+chainwale
+chain-welding
+chain-work
+chainwork
+chair
+chairborne
+chaired
+chairer
+chair-fast
+chairing
+chairladies
+chairlady
+chairless
+chairlift
+chairmaker
+chairmaking
+chairman
+chairmaned
+chairmaning
+chairmanned
+chairmanning
+chairmans
+chairmanship
+chairmanships
+chairmen
+chairmender
+chairmending
+chair-mortising
+chairperson
+chairpersons
+chairs
+chair-shaped
+chair-warmer
+chairwarmer
+chairway
+chairwoman
+chairwomen
+chais
+chaise
+chaiseless
+chaise-longue
+chaise-marine
+chaises
+Chait
+chaitra
+chaitya
+chaityas
+chaja
+Chak
+chaka
+Chakales
+chakar
+chakari
+Chakavski
+chakazi
+chakdar
+Chaker
+chakobu
+chakra
+chakram
+chakras
+chakravartin
+chaksi
+Chal
+chal
+chalaco
+chalah
+chalahs
+chalana
+chalastic
+Chalastogastra
+chalaza
+chalazae
+chalazal
+chalazas
+chalaze
+chalazia
+chalazian
+chalaziferous
+chalazion
+chalazium
+chalazogam
+chalazogamic
+chalazogamy
+chalazoidite
+chalazoin
+chalcanth
+chalcanthite
+Chalcedon
+Chalcedonian
+chalcedonian
+chalcedonic
+chalcedonies
+chalcedonous
+chalcedony
+chalcedonyx
+chalchihuitl
+chalchuite
+chalcid
+Chalcidian
+chalcidian
+Chalcidic
+chalcidica
+Chalcidice
+chalcidicum
+chalcidid
+Chalcididae
+chalcidiform
+chalcidoid
+Chalcidoidea
+chalcids
+Chalcioecus
+Chalciope
+Chalcis
+chalcites
+chalco-
+chalcocite
+chalcogen
+chalcogenide
+chalcograph
+chalcographer
+chalcographic
+chalcographical
+chalcographist
+chalcography
+chalcolite
+Chalcolithic
+chalcolithic
+chalcomancy
+chalcomenite
+chalcon
+chalcone
+chalcophanite
+chalcophile
+chalcophyllite
+chalcopyrite
+chalcosiderite
+chalcosine
+chalcostibite
+chalcotrichite
+chalcotript
+chalcus
+Chald
+Chaldaei
+Chaldae-pahlavi
+Chaldaic
+chaldaic
+Chaldaical
+Chaldaism
+Chaldea
+Chaldean
+chaldean
+Chaldee
+chaldee
+chalder
+chaldese
+chaldron
+chaldrons
+chaleh
+chalehs
+chalet
+chalets
+Chalfont
+Chaliapin
+chalice
+chaliced
+chalices
+chalicosis
+chalicothere
+chalicotheriid
+Chalicotheriidae
+chalicotherioid
+Chalicotherium
+Chalina
+Chalinidae
+chalinine
+Chalinitis
+chalk
+chalkboard
+chalkboards
+chalkcutter
+chalk-eating
+chalked
+chalker
+chalk-eyed
+chalkier
+chalkiest
+chalkiness
+chalking
+chalklike
+chalkline
+chalkography
+chalkone
+chalkos
+chalkosideric
+chalkotheke
+chalkpit
+chalkrail
+chalks
+chalk-stone
+chalkstone
+chalkstony
+chalk-talk
+chalk-white
+chalkworker
+chalky
+challa
+challah
+challahs
+challas
+challengable
+challenge
+challengeable
+challenged
+challengee
+challengeful
+challenger
+challengers
+challenges
+challenging
+challengingly
+challie
+challies
+challiho
+challihos
+Challis
+challis
+challises
+challot
+challote
+challoth
+Chally
+chally
+Chalmer
+chalmer
+Chalmers
+Chalmette
+chalon
+chalone
+chalones
+Chalonnais
+Chalons
+Chalons-sur-Marne
+Chalon-sur-Sa
+chalot
+chaloth
+chaloupe
+chalque
+chalta
+chaluka
+Chalukya
+Chalukyan
+chalumeau
+chalumeaux
+chalutz
+chalutzim
+Chalybean
+chalybean
+chalybeate
+chalybeous
+Chalybes
+chalybite
+Cham
+cham
+Chama
+chama
+Chamacea
+Chamacoco
+chamade
+chamades
+Chamaebatia
+Chamaecistus
+chamaecranial
+Chamaecrista
+Chamaecyparis
+Chamaedaphne
+Chamaeleo
+Chamaeleon
+Chamaeleontidae
+Chamaeleontis
+Chamaelirium
+Chamaenerion
+Chamaepericlymenum
+chamaephyte
+chamaeprosopic
+Chamaerops
+chamaerops
+chamaerrhine
+Chamaesaura
+Chamaesiphon
+Chamaesiphonaceae
+Chamaesiphonaceous
+Chamaesiphonales
+Chamaesyce
+chamal
+Chamar
+chamar
+chambellan
+chamber
+chamber-deacon
+chamberdeacon
+chambered
+chamberer
+chamberfellow
+chambering
+Chamberino
+Chamberlain
+chamberlain
+chamberlainry
+chamberlains
+chamberlainship
+chamberlet
+chamberleted
+chamberletted
+Chamberlin
+chambermaid
+chambermaids
+chamber-master
+Chambers
+chambers
+Chambersburg
+Chambersville
+Chambertin
+chambertin
+chamberwoman
+Chambery
+Chambioa
+Chamblee
+Chambord
+chambranle
+chambray
+chambrays
+chambre
+chambrel
+Chambry
+chambul
+Chamdo
+chamecephalic
+chamecephalous
+chamecephalus
+chamecephaly
+chameleon
+chameleonic
+chameleonize
+chameleonlike
+chameleons
+chametz
+chamfer
+chamfered
+chamferer
+chamfering
+chamfers
+chamfrain
+chamfron
+chamfrons
+Chamian
+Chamicuro
+Chamidae
+Chaminade
+Chamisal
+chamisal
+chamise
+chamises
+chamiso
+chamisos
+Chamite
+chamite
+Chamizal
+Chamkanni
+Chamkis
+chamlet
+chamm
+chamma
+chammied
+chammies
+chammy
+chammying
+chamois
+chamoised
+chamoises
+Chamoisette
+chamoising
+chamoisite
+chamoix
+chamoline
+chamomile
+Chamomilla
+Chamonix
+Chamorro
+Chamorros
+Chamos
+chamosite
+chamotte
+Chamouni
+Champ
+champ
+Champa
+champac
+champaca
+champacol
+champacs
+Champagne
+champagne
+Champagne-Ardenne
+champagned
+champagneless
+champagnes
+champagning
+champagnize
+champagnized
+champagnizing
+Champaign
+champaign
+Champaigne
+champain
+champak
+champaka
+champaks
+champart
+champe
+champed
+Champenois
+champer
+champerator
+champers
+champert
+champerties
+champertor
+champertous
+champerty
+champian
+champignon
+champignons
+Champigny-sur-Marne
+champine
+champing
+champion
+championed
+championess
+championing
+championize
+championless
+championlike
+champions
+championship
+championships
+Champlain
+Champlainic
+champlev
+champleve
+Champlin
+Champollion
+champs
+champy
+chams
+Cham-selung
+chamsin
+Chamuel
+Chamyne
+Ch'an
+Chan
+chan
+Chana
+Chanaan
+Chanabal
+Chanc
+Chanca
+Chancay
+Chance
+chance
+chanceable
+chanceably
+chanced
+chance-dropped
+chanceful
+chancefully
+chancefulness
+chance-hit
+chance-hurt
+chancel
+chanceled
+chanceless
+chancelled
+chancelleries
+chancellery
+Chancellor
+chancellor
+chancellorate
+chancelloress
+chancellories
+chancellorism
+chancellors
+chancellorship
+chancellorships
+Chancellorsville
+chancellory
+Chancelor
+chancelor
+chancelry
+chancels
+chanceman
+chance-medley
+chancemen
+chance-met
+chance-poised
+chancer
+chancered
+chanceries
+chancering
+chancery
+chances
+chance-shot
+chance-sown
+chance-taken
+chancewise
+chance-won
+Chancey
+chancey
+Chan-chan
+chanche
+chanchito
+chancier
+chanciest
+chancily
+chanciness
+chancing
+chancito
+chanco
+chancre
+chancres
+chancriform
+chancroid
+chancroidal
+chancroids
+chancrous
+chancy
+Chanda
+Chandal
+chandala
+chandam
+Chandarnagar
+chandelier
+chandeliers
+chandelle
+chandelled
+chandelles
+chandelling
+Chandernagor
+Chandernagore
+Chandi
+chandi
+Chandigarh
+Chandler
+chandler
+chandleress
+chandleries
+chandlering
+chandlerly
+chandlers
+Chandlersville
+Chandlerville
+chandlery
+Chandless
+chandoo
+Chandos
+Chandra
+Chandragupta
+chandrakanta
+chandrakhi
+chandry
+chandu
+chandui
+chandul
+chanduy
+Chane
+Chanel
+chaneled
+chaneling
+chanelled
+Chaney
+chanfrin
+chanfron
+chanfrons
+Chang
+chang
+changa
+changable
+Changan
+changar
+Changaris
+Changchiakow
+Changchow
+Changchowfu
+Changchun
+change
+changeability
+changeable
+changeableness
+changeably
+changeabout
+changed
+changedale
+changedness
+changeful
+changefully
+changefulness
+change-house
+changeless
+changelessly
+changelessness
+changeling
+changelings
+changemaker
+changement
+change-over
+changeover
+changeovers
+changepocket
+changer
+change-ringing
+changer-off
+changers
+changes
+change-up
+Changewater
+changing
+Changoan
+Changos
+changs
+Changsha
+Changteh
+Changuina
+Changuinan
+Chanhassen
+Chanidae
+chank
+chankings
+Channa
+Channahon
+Channel
+channel
+channelbill
+channeled
+channeler
+channeling
+channelization
+channelize
+channelized
+channelizes
+channelizing
+channelled
+channeller
+channellers
+channelling
+channelly
+channels
+channelure
+channelwards
+channer
+Channing
+chanoyu
+chanson
+chansonette
+chansonnette
+chansonnier
+chansonniers
+chansons
+Chansoo
+chanst
+chant
+chantable
+chantage
+chantages
+Chantal
+Chantalle
+chantant
+chantecler
+chanted
+chante-fable
+chantefable
+chante-fables
+chantepleure
+chanter
+chanterelle
+chanters
+chantership
+chanteur
+chanteuse
+chanteuses
+chantey
+chanteyman
+chanteys
+chanticleer
+chanticleers
+chantier
+chanties
+Chantilly
+chantilly
+chanting
+chantingly
+chantlate
+chantment
+chantor
+chantors
+chantress
+chantries
+chantry
+chants
+chanty
+Chanukah
+chanukah
+Chanute
+Chany
+Chao
+chao
+Chaoan
+Chaochow
+Chaochowfu
+chaogenous
+chaology
+Chaon
+chaori
+chaos
+chaoses
+chaotic
+chaotical
+chaotically
+chaoticness
+chaoua
+Chaouia
+Chaource
+chaoush
+CHAP
+Chap
+chap
+chap.
+Chapa
+Chapacura
+Chapacuran
+chapah
+Chapanec
+chapapote
+chaparajos
+chaparejos
+chaparral
+chaparrals
+chaparraz
+chaparro
+chapati
+chapaties
+chapatis
+chapatti
+chapatties
+chapattis
+chapatty
+chap-book
+chapbook
+chapbooks
+chape
+chapeau
+chapeaus
+chapeaux
+chaped
+Chapei
+Chapel
+chapel
+chapeled
+chapeless
+chapelet
+chapelgoer
+chapelgoing
+chapeling
+chapelize
+Chapell
+chapellage
+chapellany
+chapelled
+chapelling
+chapelman
+chapelmaster
+chapelries
+chapelry
+chapels
+chapelward
+Chapen
+chaperno
+chaperon
+chaperonage
+chaperonages
+chaperone
+chaperoned
+chaperones
+chaperoning
+chaperonless
+chaperons
+chapes
+chap-fallen
+chapfallen
+chapfallenly
+Chapin
+chapin
+chapiter
+chapiters
+chapitle
+chapitral
+chaplain
+chaplaincies
+chaplaincy
+chaplainry
+chaplains
+chaplainship
+Chapland
+chaplanry
+chapless
+chaplet
+chapleted
+chaplets
+Chaplin
+chaplin
+Chapman
+chapman
+Chapmansboro
+chapmanship
+Chapmanville
+chapmen
+chap-money
+Chapnick
+chapon
+chapote
+chapourn
+chapournet
+chapournetted
+chappal
+Chappaqua
+Chappaquiddick
+chappaul
+chappe
+chapped
+Chappelka
+Chappell
+Chappells
+chapper
+Chappie
+chappie
+chappies
+chappin
+chapping
+chappow
+Chappy
+chappy
+chaprasi
+chaprassi
+chaps
+chapstick
+chapt
+chaptalization
+chaptalize
+chaptalized
+chaptalizing
+chapter
+chapteral
+chaptered
+chapterful
+chapterhouse
+chaptering
+chapters
+Chaptico
+chaptrel
+Chapultepec
+chapwoman
+chaqueta
+chaquetas
+Char
+char
+char-
+CHARA
+Chara
+chara
+char-a-banc
+charabanc
+charabancer
+char-a-bancs
+charabancs
+charac
+Characeae
+characeous
+characetum
+characid
+characids
+characin
+characine
+characinid
+Characinidae
+characinoid
+characins
+charact
+character
+charactered
+characterful
+characterial
+characterical
+characteries
+charactering
+characterisable
+characterisation
+characterise
+characterised
+characteriser
+characterising
+characterism
+characterist
+characteristic
+characteristical
+characteristically
+characteristicalness
+characteristicness
+characteristics
+characterizable
+characterization
+characterizations
+characterize
+characterized
+characterizer
+characterizers
+characterizes
+characterizing
+characterless
+characterlessness
+characterological
+characterologically
+characterologist
+characterology
+characters
+characterstring
+charactery
+charactonym
+charade
+charades
+Charadrii
+Charadriidae
+charadriiform
+Charadriiformes
+charadrine
+charadrioid
+Charadriomorphae
+Charadrius
+Charales
+charango
+charangos
+chararas
+charas
+charases
+charbocle
+charbon
+Charbonneau
+Charbonnier
+charbonnier
+charbroil
+charbroiled
+charbroiling
+charbroils
+Charca
+Charcas
+Charchemish
+charcia
+charco
+charcoal
+charcoal-burner
+charcoaled
+charcoal-gray
+charcoaling
+charcoalist
+charcoals
+charcoaly
+Charcot
+charcuterie
+charcuteries
+charcutier
+charcutiers
+Chard
+chard
+Chardin
+chardock
+Chardon
+Chardonnay
+Chardonnet
+chards
+chare
+chared
+charely
+Charente
+Charente-Maritime
+Charenton
+charer
+chares
+charet
+chareter
+charette
+chargable
+charga-plate
+charge
+chargeability
+chargeable
+chargeableness
+chargeably
+chargeant
+charge-a-plate
+charged
+chargedness
+chargee
+chargeful
+charge-house
+chargehouse
+chargeless
+chargeling
+chargeman
+CHARGEN
+charge-off
+charger
+chargers
+charges
+chargeship
+chargfaires
+charging
+Chari
+Charicleia
+Chariclo
+Charie
+charier
+chariest
+Charil
+charily
+Charin
+chariness
+charing
+Chari-Nile
+Chariot
+chariot
+charioted
+chariotee
+charioteer
+charioteers
+charioteership
+charioting
+chariotlike
+chariotman
+chariotry
+chariots
+chariot-shaped
+chariotway
+Charis
+charism
+charisma
+charismas
+charismata
+charismatic
+charisms
+Charissa
+Charisse
+charisticary
+Charita
+charitable
+charitableness
+charitably
+charitative
+Charites
+charities
+Chariton
+Charity
+charity
+charityless
+charivan
+charivari
+charivaried
+charivariing
+charivaris
+chark
+charka
+charkas
+charked
+charkha
+charkhana
+charkhas
+charking
+charks
+Charla
+charladies
+charlady
+charlatan
+charlatanic
+charlatanical
+charlatanically
+charlatanish
+charlatanism
+charlatanistic
+charlatanries
+charlatanry
+charlatans
+charlatanship
+Charlean
+Charlee
+Charleen
+Charlemagne
+charlemagne
+Charlemont
+Charlena
+Charlene
+Charleroi
+Charleroy
+Charles
+charles
+Charleston
+charleston
+charlestons
+Charlestown
+charlesworth
+Charlet
+charlet
+Charleton
+Charleville-Mzi
+Charlevoix
+Charley
+charley
+charleys
+Charlie
+charlie
+charlies
+Charline
+Charlo
+charlock
+charlocks
+Charlot
+Charlotta
+Charlotte
+charlotte
+Charlottenburg
+Charlottesville
+charlottesville
+Charlottetown
+Charlotteville
+Charlton
+Charlye
+Charlyn
+Charlyne
+charm
+Charmain
+Charmaine
+Charmane
+charm-bound
+charm-built
+Charmco
+charmed
+charmedly
+charmel
+charm-engirdled
+charmer
+charmers
+Charmeuse
+charmeuse
+charmful
+charmfully
+charmfulness
+Charmian
+Charminar
+Charmine
+charming
+charminger
+charmingest
+charmingly
+charmingness
+Charmion
+charmless
+charmlessly
+charmonium
+charms
+charm-struck
+charmwise
+charneco
+charnel
+charnels
+charnockite
+charnockites
+charnu
+Charo
+Charolais
+Charollais
+Charon
+charon
+Charonian
+Charonic
+Charontas
+Charophyta
+Charops
+charoses
+charoset
+charoseth
+charpai
+charpais
+Charpentier
+charpie
+charpit
+charpoy
+charpoys
+charque
+charqued
+charqui
+charquid
+charquis
+charr
+charras
+charre
+charred
+charrette
+charrier
+charriest
+charring
+charro
+Charron
+charros
+charrs
+Charruan
+Charruas
+Charry
+charry
+chars
+charshaf
+charsingha
+chart
+Charta
+charta
+chartable
+chartaceous
+chartae
+charted
+charter
+charterable
+charterage
+chartered
+charterer
+charterers
+Charterhouse
+charterhouse
+Charterhouses
+chartering
+Charteris
+charterism
+Charterist
+charterless
+chartermaster
+charter-party
+Charters
+charters
+charthouse
+charting
+chartings
+Chartism
+chartism
+Chartist
+chartist
+chartists
+chartless
+chartlet
+Chartley
+chartographer
+chartographic
+chartographical
+chartographically
+chartographist
+chartography
+chartology
+chartometer
+chartophylacia
+chartophylacium
+chartophylax
+chartophylaxes
+Chartres
+Chartreuse
+chartreuse
+chartreuses
+Chartreux
+chartreux
+chartroom
+charts
+chartula
+chartulae
+chartularies
+chartulary
+chartulas
+charuk
+Charvaka
+charvet
+charwoman
+charwomen
+chary
+Charybdian
+Charybdis
+charybdis
+Charyl
+Chas
+chasable
+Chase
+chase
+chaseable
+Chaseburg
+chased
+chase-hooped
+chase-hooping
+Chaseley
+chase-mortised
+chaser
+chasers
+chases
+chashitsu
+Chasid
+chasid
+Chasidic
+Chasidim
+Chasidism
+chasing
+chasings
+Chaska
+Chasles
+chasm
+chasma
+chasmal
+chasmed
+chasmic
+chasmogamic
+chasmogamous
+chasmogamy
+chasmophyte
+chasms
+chasmy
+chass
+Chasse
+chasse
+chassed
+chasseing
+Chasselas
+chasselas
+Chassell
+chasse-maree
+chassepot
+chassepots
+chasses
+chasseur
+chasseurs
+chassignite
+Chassin
+chassis
+Chastacosta
+Chastain
+chaste
+chastelain
+chastely
+chasten
+chastened
+chastener
+chasteners
+chasteness
+chastenesses
+chastening
+chasteningly
+chastenment
+chastens
+chaster
+chastest
+chasteweed
+chastiment
+chastisable
+chastise
+chastised
+chastisement
+chastisements
+chastiser
+chastisers
+chastises
+chastising
+chastities
+Chastity
+chastity
+chastize
+chastizer
+chasty
+chasuble
+chasubled
+chasubles
+chat
+Chataignier
+chataka
+Chatav
+Chatawa
+chatchka
+chatchkas
+chatchke
+chatchkes
+Chateau
+chateau
+Chateaubriand
+chateaubriand
+Chateaugay
+chateaugray
+Chateauneuf-du-Pape
+Chateauroux
+chateaus
+Chateau-Thierry
+chateaux
+chatelain
+chatelaine
+chatelaines
+chatelainry
+chatelains
+chatelet
+chatellany
+chateus
+Chatfield
+Chatham
+chathamite
+chathamites
+chati
+Chatillon
+Chatino
+Chatom
+chaton
+chatons
+Chatot
+chatoyance
+chatoyancy
+chatoyant
+chats
+chatsome
+Chatsworth
+chatta
+chattable
+chattack
+chattah
+Chattahoochee
+Chattanooga
+chattanooga
+Chattanoogan
+Chattanoogian
+Chattaroy
+chattation
+chatted
+chattel
+chattelhood
+chattelism
+chattelization
+chattelize
+chattelized
+chattelizing
+chattels
+chattelship
+chatter
+chatteration
+chatterbag
+chatterbox
+chatterboxes
+chattered
+chatterer
+chatterers
+chattererz
+chattering
+chatteringly
+Chatterjee
+chattermag
+chattermagging
+chatters
+Chatterton
+Chattertonian
+chattery
+Chatti
+chattier
+chatties
+chattiest
+chattily
+chattiness
+chatting
+chattingly
+chatty
+Chatwin
+chatwood
+Chaucer
+chaucer
+Chaucerian
+chaucerian
+Chauceriana
+Chaucerianism
+Chaucerism
+Chauchat
+chaud-froid
+chaudfroid
+chaud-melle
+Chaudoin
+chaudron
+chaufer
+chaufers
+chauffage
+chauffer
+chauffers
+chauffeur
+chauffeured
+chauffeuring
+chauffeurs
+chauffeurship
+chauffeuse
+chauffeuses
+Chaui
+chauk
+chaukidari
+chauldron
+chaule
+Chauliodes
+chaulmaugra
+chaulmoogra
+chaulmoograte
+chaulmoogric
+chaulmugra
+chaum
+chaumer
+chaumiere
+Chaumont
+chaumontel
+Chaumont-en-Bassigny
+chaun-
+Chauna
+Chaunce
+Chauncey
+chaunoprockt
+chaunt
+chaunted
+chaunter
+chaunters
+chaunting
+chaunts
+chauri
+chaus
+chausse
+chaussee
+chausseemeile
+chaussees
+chausses
+Chausson
+chaussure
+chaussures
+Chautauqua
+chautauqua
+Chautauquan
+chaute
+Chautemps
+chauth
+chauve
+Chauvin
+chauvin
+chauvinism
+chauvinisms
+chauvinist
+chauvinistic
+chauvinistically
+chauvinists
+Chavannes
+Chavante
+Chavantean
+Chavaree
+chave
+chavel
+chavender
+chaver
+Chaves
+Chavey
+Chavez
+chavibetol
+chavicin
+chavicine
+chavicol
+Chavies
+Chavignol
+Chavin
+chavish
+chaw
+chawan
+chaw-bacon
+chawbacon
+chawbone
+chawbuck
+chawdron
+chawed
+chawer
+chawers
+Chawia
+chawing
+chawk
+chawl
+chawle
+chawn
+Chaworth
+chaws
+chaw-stick
+chawstick
+chay
+chaya
+chayaroot
+Chayefsky
+Chayma
+Chayota
+chayote
+chayotes
+chayroot
+chays
+chazan
+chazanim
+chazans
+chazanut
+Chazy
+chazzan
+chazzanim
+chazzans
+chazzanut
+chazzen
+chazzenim
+chazzens
+Ch.B.
+ChB
+Ch.E.
+ChE
+Che
+che
+Cheadle
+Cheam
+cheap
+cheapen
+cheapened
+cheapener
+cheapening
+cheapens
+cheaper
+cheapery
+cheapest
+cheapie
+cheapies
+cheaping
+cheapish
+cheapishly
+Cheap-jack
+cheap-jack
+cheapjack
+cheap-john
+cheaply
+cheapness
+cheapnesses
+cheapo
+cheapos
+cheaps
+Cheapside
+cheapskate
+cheapskates
+cheare
+cheat
+cheatable
+cheatableness
+cheated
+cheatee
+cheater
+cheateries
+cheaters
+cheatery
+Cheatham
+cheating
+cheatingly
+cheatrie
+cheatry
+cheats
+Cheb
+Chebacco
+chebacco
+Chebanse
+chebec
+chebeck
+chebecs
+chebel
+chebog
+Cheboksary
+Cheboygan
+chebule
+chebulic
+chebulinic
+Checani
+chechako
+chechakos
+Chechehet
+chechem
+Chechen
+chechia
+che-choy
+check
+check-
+checkable
+checkage
+checkback
+checkbird
+checkbit
+checkbite
+checkbits
+checkbook
+checkbooks
+check-canceling
+checke
+checked
+checked-out
+check-endorsing
+checker
+checkerbellies
+checkerbelly
+checkerberries
+checker-berry
+checkerberry
+checkerbloom
+checkerboard
+checkerboarded
+checkerboarding
+checkerboards
+checkerbreast
+checker-brick
+checkered
+checkering
+checkerist
+checker-roll
+checkers
+checkerspot
+checker-up
+checkerwise
+checkerwork
+checkery
+check-flood
+checkhook
+check-in
+checking
+checklaton
+checkle
+checkless
+checkline
+checklist
+checklists
+checkman
+checkmark
+checkmate
+checkmated
+checkmates
+checkmating
+checkoff
+checkoffs
+check-out
+checkout
+checkouts
+check-over
+check-perforating
+checkpoint
+checkpointed
+checkpointing
+checkpoints
+checkrack
+checkrail
+checkrein
+check-roll
+checkroll
+checkroom
+checkrooms
+checkrope
+checkrow
+checkrowed
+checkrower
+checkrowing
+checkrows
+checks
+check-stone
+checkstone
+checkstrap
+check-string
+checkstring
+checksum
+checksummed
+checksumming
+checksums
+checkup
+checkups
+checkweigher
+checkweighman
+checkweighmen
+checkwork
+checkwriter
+check-writing
+checky
+Checotah
+chedar
+Cheddar
+cheddar
+cheddaring
+cheddars
+cheddite
+cheddites
+cheder
+cheders
+chedite
+chedites
+chedlock
+chedreux
+CheE
+Chee
+chee
+cheecha
+cheechaco
+cheechako
+cheechakos
+chee-chee
+cheeful
+cheefuller
+cheefullest
+cheek
+cheekbone
+cheekbones
+cheek-by-jowl
+cheeked
+cheeker
+cheekful
+cheekfuls
+cheekier
+cheekiest
+cheekily
+cheekiness
+cheeking
+cheekish
+cheekless
+cheekpiece
+cheeks
+Cheektowaga
+cheeky
+cheeney
+cheep
+cheeped
+cheeper
+cheepers
+cheepier
+cheepiest
+cheepily
+cheepiness
+cheeping
+cheeps
+cheepy
+cheer
+cheered
+cheerer
+cheerers
+cheerful
+cheerfulize
+cheerfuller
+cheerfullest
+cheerfully
+cheerfulness
+cheerfulnesses
+cheerfulsome
+cheerier
+cheeriest
+cheerily
+cheeriness
+cheerinesses
+cheering
+cheeringly
+cheerio
+cheerios
+cheerlead
+cheerleader
+cheerleaders
+cheerleading
+cheerled
+cheerless
+cheerlessly
+cheerlessness
+cheerlessnesses
+cheerly
+cheero
+cheeros
+cheers
+cheer-up
+cheery
+cheese
+cheeseboard
+cheesebox
+cheeseburger
+cheeseburgers
+cheesecake
+cheesecakes
+cheesecloth
+cheesecloths
+cheesecurd
+cheesecutter
+cheesed
+cheeseflower
+cheese-head
+cheese-headed
+cheeselep
+cheeselip
+cheesemaker
+cheesemaking
+cheesemonger
+cheesemongering
+cheesemongerly
+cheesemongery
+cheeseparer
+cheese-paring
+cheeseparing
+cheeser
+cheesery
+cheeses
+cheesewood
+cheesier
+cheesiest
+cheesily
+cheesiness
+cheesing
+cheesy
+cheet
+cheetah
+cheetahs
+cheetal
+cheeter
+cheetie
+cheetul
+cheewink
+cheezit
+chef
+Chefang
+chef-d'
+chef-d'oeuvre
+chefdom
+chefdoms
+cheffed
+Cheffetz
+cheffing
+Chefoo
+Chefornak
+Chefrinia
+chefs
+chefs-d'oeuvre
+chego
+chegoe
+chegoes
+chegre
+Chehalis
+cheiceral
+cheil-
+Cheilanthes
+cheilion
+cheilitis
+Cheilodipteridae
+Cheilodipterus
+cheiloplasties
+cheiloplasty
+Cheilostomata
+cheilostomatous
+cheilotomies
+cheilotomy
+cheimaphobia
+cheimatophobia
+cheir
+cheir-
+cheiragra
+Cheiranthus
+cheiro-
+Cheirogaleus
+Cheiroglossa
+cheirognomy
+cheirography
+cheirolin
+cheiroline
+cheirology
+cheiromancy
+cheiromegaly
+Cheiron
+cheiropatagium
+cheiropod
+cheiropodist
+cheiropody
+cheiropompholyx
+Cheiroptera
+cheiroptera
+cheiropterygium
+cheirosophy
+cheirospasm
+Cheirotherium
+cheirotherium
+Cheju
+Cheka
+cheka
+chekan
+Cheke
+cheke
+cheken
+Chekhov
+chekhov
+Chekhovian
+cheki
+Chekiang
+Chekist
+chekker
+chekmak
+chela
+chelae
+Chelan
+chelas
+chelaship
+chelatable
+chelate
+chelated
+chelates
+chelating
+chelation
+chelator
+chelators
+chelem
+chelerythrin
+chelerythrine
+chelicer
+chelicera
+chelicerae
+cheliceral
+chelicerate
+chelicere
+chelide
+Chelidon
+chelidon
+chelidonate
+chelidonian
+chelidonic
+chelidonin
+chelidonine
+Chelidonium
+Chelidosaurus
+chelifer
+Cheliferidea
+cheliferous
+cheliform
+chelinga
+chelingas
+chelingo
+chelingos
+cheliped
+Chellean
+chellean
+Chellman
+chello
+Chelmno
+Chelmsford
+Chelodina
+chelodine
+cheloid
+cheloids
+chelone
+Chelonia
+chelonian
+chelonid
+Chelonidae
+cheloniid
+Cheloniidae
+chelonin
+chelophore
+chelp
+Chelsae
+Chelsea
+Chelsey
+Chelsie
+Chelsy
+Cheltenham
+Chelton
+Chelura
+Chelyabinsk
+Chelydidae
+Chelydra
+chelydre
+Chelydridae
+chelydroid
+chelys
+Chelyuskin
+Chem
+chem
+chem-
+chem.
+Chema
+Chemakuan
+Chemar
+Chemaram
+Chemarin
+Chemash
+chemasthenia
+chemawinite
+ChemE
+Chemehuevi
+Chemesh
+chemesthesis
+chemiatric
+chemiatrist
+chemiatry
+chemic
+chemical
+chemicalization
+chemicalize
+chemically
+chemicals
+chemick
+chemicked
+chemicker
+chemicking
+chemico-
+chemicoastrological
+chemicobiologic
+chemicobiological
+chemicobiology
+chemicocautery
+chemicodynamic
+chemicoengineering
+chemicoluminescence
+chemicoluminescent
+chemicomechanical
+chemicomineralogical
+chemicopharmaceutical
+chemicophysical
+chemicophysics
+chemicophysiological
+chemicovital
+chemics
+chemiculture
+chemigraph
+chemigrapher
+chemigraphic
+chemigraphically
+chemigraphy
+chemiloon
+chemiluminescence
+chemiluminescent
+chemin
+cheminee
+chemins
+chemiotactic
+chemiotaxic
+chemiotaxis
+chemiotropic
+chemiotropism
+chemiphotic
+chemis
+chemise
+chemises
+chemisette
+chemism
+chemisms
+chemisorb
+chemisorption
+chemisorptive
+chemist
+chemistries
+chemistry
+chemists
+chemitype
+chemitypies
+chemitypy
+chemizo
+chemmy
+Chemnitz
+chemo-
+chemoautotrophic
+chemoautotrophically
+chemoautotrophy
+chemoceptor
+chemokinesis
+chemokinetic
+chemolysis
+chemolytic
+chemolyze
+chemonite
+chemopallidectomies
+chemopallidectomy
+chemopause
+chemophysiological
+chemophysiology
+chemoprophyalctic
+chemoprophylactic
+chemoprophylaxis
+chemoreception
+chemoreceptive
+chemoreceptivities
+chemoreceptivity
+chemoreceptor
+chemoreflex
+chemoresistance
+chemosensitive
+chemosensitivities
+chemosensitivity
+chemoserotherapy
+chemoses
+Chemosh
+chemosis
+chemosmoic
+chemosmoses
+chemosmosis
+chemosmotic
+chemosorb
+chemosorption
+chemosorptive
+chemosphere
+chemospheric
+chemostat
+chemosterilant
+chemosterilants
+chemosurgery
+chemosurgical
+chemosynthesis
+chemosynthetic
+chemosynthetically
+chemotactic
+chemotactically
+chemotaxis
+chemotaxonomic
+chemotaxonomically
+chemotaxonomist
+chemotaxonomy
+chemotaxy
+chemotherapeutic
+chemotherapeutical
+chemotherapeutically
+chemotherapeuticness
+chemotherapeutics
+chemotherapies
+chemotherapist
+chemotherapists
+chemotherapy
+chemotic
+chemotroph
+chemotrophic
+chemotropic
+chemotropically
+chemotropism
+chempaduk
+Chemstrand
+Chemulpo
+Chemult
+Chemung
+chemurgic
+chemurgical
+chemurgically
+chemurgies
+chemurgy
+Chemush
+Chen
+chena
+Chenab
+chenar
+Chenay
+chende
+cheneau
+cheneaus
+cheneaux
+Chenee
+chenet
+chenevixite
+Cheney
+Cheneyville
+chenfish
+Cheng
+cheng
+chengal
+Chengchow
+Chengteh
+Chengtu
+chenica
+Chenier
+chenier
+chenille
+cheniller
+chenilles
+Chennault
+Chenoa
+chenopod
+Chenopodiaceae
+chenopodiaceous
+Chenopodiales
+Chenopodium
+chenopods
+Chenoweth
+cheongsam
+cheoplastic
+Cheops
+Chepachet
+Chephren
+chepster
+cheque
+chequebook
+chequeen
+chequer
+chequerboard
+chequer-chamber
+chequered
+chequering
+Chequers
+chequers
+chequer-wise
+chequerwise
+chequer-work
+chequerwork
+cheques
+chequin
+chequinn
+chequy
+Cher
+cher
+Chera
+Cheraw
+Cherbourg
+cherchez
+chercock
+Chere
+chere
+cherely
+cherem
+Cheremis
+Cheremiss
+Cheremissian
+Cheremkhovo
+Cherenkov
+cherenkov
+Cherey
+chergui
+Cheri
+Cheria
+Cherian
+Cherianne
+Cheribon
+Cherice
+Cherida
+Cherie
+cherie
+Cheries
+cheries
+Cherilyn
+Cherilynn
+cherimolla
+cherimoya
+cherimoyer
+Cherin
+Cherise
+Cherish
+cherish
+cherishable
+cherished
+cherisher
+cherishers
+cherishes
+cherishing
+cherishingly
+cherishment
+Cheriton
+Cherkess
+Cherkesser
+Cherlyn
+Chermes
+chermes
+Chermidae
+Chermish
+cherna
+chernites
+Chernobyl
+Chernomorish
+Chernovtsy
+Chernow
+chernozem
+chernozemic
+cherogril
+Cherokee
+cherokee
+Cherokees
+cherokees
+cheroot
+cheroots
+Cherri
+cherried
+cherries
+Cherrita
+Cherry
+cherry
+cherryblossom
+cherry-bob
+cherry-cheeked
+cherry-colored
+cherry-crimson
+Cherryfield
+cherry-flavored
+cherrying
+cherrylike
+cherry-lipped
+Cherrylog
+cherry-merry
+cherry-pie
+cherry-red
+cherry-ripe
+cherry-rose
+cherrystone
+cherrystones
+Cherrytree
+Cherryvale
+Cherryville
+cherry-wood
+chersonese
+Chersydridae
+chert
+cherte
+chertier
+chertiest
+cherts
+Chertsey
+cherty
+cherub
+cherubfish
+cherubfishes
+cherubic
+cherubical
+cherubically
+Cherubicon
+Cherubikon
+cherubim
+cherubimic
+cherubimical
+cherubin
+Cherubini
+cherublike
+cherubs
+cherup
+Cherusci
+Chervante
+chervil
+chervils
+chervonei
+chervonets
+chervonetz
+chervontsi
+Chery
+Cherye
+Cheryl
+Cherylene
+Ches
+Chesaning
+Chesapeake
+chesapeake
+chesboil
+chesboll
+chese
+cheselip
+Cheshire
+cheshire
+Cheshunt
+Cheshvan
+chesil
+cheskey
+cheskeys
+cheslep
+Cheslie
+Chesna
+Chesnee
+Chesney
+Chesnut
+cheson
+chesoun
+chess
+Chessa
+chess-apple
+chessart
+chessboard
+chessboards
+chessdom
+chessel
+chesser
+chesses
+chesset
+chessist
+chessman
+chess-men
+chessmen
+chessner
+chessom
+chessplayer
+chessplayers
+chess-tree
+chesstree
+Chessy
+chessylite
+chest
+chest-deep
+chested
+chesteine
+Chester
+chester
+chesterbed
+Chesterfield
+chesterfield
+Chesterfieldian
+chesterfields
+Chesterland
+chesterlite
+Chesterton
+Chestertown
+Chesterville
+chest-foundered
+chestful
+chestfuls
+chestier
+chestiest
+chestily
+chestiness
+chestnut
+chestnut-backed
+chestnut-bellied
+chestnut-brown
+chestnut-collared
+chestnut-colored
+chestnut-crested
+chestnut-crowned
+chestnut-red
+chestnut-roan
+chestnuts
+chestnut-sided
+chestnutty
+chestnut-winged
+Cheston
+chest-on-chest
+chests
+chesty
+Cheswick
+Cheswold
+Chet
+chetah
+chetahs
+Chetek
+cheth
+cheths
+chetif
+chetive
+Chetnik
+Chetopa
+chetopod
+chetrum
+chetrums
+chettik
+chetty
+Chetumal
+chetverik
+chetvert
+Cheung
+cheung
+Cheux
+Chev
+chevachee
+chevachie
+chevage
+Chevak
+cheval
+cheval-de-frise
+chevalet
+chevalets
+cheval-glass
+Chevalier
+chevalier
+Chevalier-Montrachet
+chevaliers
+chevaline
+Chevallier
+chevance
+chevaux
+chevaux-de-frise
+cheve
+chevee
+chevelure
+cheven
+chevener
+cheventayn
+cheverel
+cheveret
+cheveril
+Cheverly
+cheveron
+cheverons
+Cheves
+chevesaile
+chevesne
+chevet
+chevetaine
+cheveys
+chevied
+chevies
+cheville
+chevin
+Cheviot
+cheviot
+cheviots
+chevisance
+chevise
+chevon
+chevre
+chevres
+Chevret
+chevret
+chevrette
+chevreuil
+Chevrier
+Chevrolet
+chevrolet
+chevrolets
+chevron
+chevrone
+chevroned
+chevronel
+chevronelly
+chevronny
+chevrons
+chevron-shaped
+chevronwise
+chevrony
+chevrotain
+Chevrotin
+chevvy
+Chevy
+chevy
+chevying
+Chew
+chew
+Chewa
+chewable
+Chewalla
+chewbark
+chewed
+Chewelah
+cheweler
+chewer
+chewers
+chewet
+chewie
+chewier
+chewiest
+chewing
+chewing-out
+chewink
+chewinks
+chews
+chewstick
+Chewsville
+chewy
+Cheyenne
+cheyenne
+Cheyennes
+cheyennes
+Cheyne
+Cheyney
+cheyney
+cheyneys
+chez
+chg
+chg.
+chhatri
+Chhnang
+CHI
+Chi
+chi
+chia
+Chia-Chia
+chiack
+Chiaki
+Chiam
+Chian
+chian
+Chiang
+Chiangling
+Chiangmai
+Chianti
+chianti
+chiao
+Chiapanec
+Chiapanecan
+Chiapas
+Chiaretto
+Chiari
+chiarooscurist
+chiarooscuro
+chiarooscuros
+chiaroscurist
+chiaroscuro
+chiaroscuros
+Chiarra
+chias
+chiasm
+chiasma
+chiasmal
+chiasmas
+chiasmata
+chiasmatic
+chiasmatype
+chiasmatypy
+chiasmi
+chiasmic
+Chiasmodon
+chiasmodontid
+Chiasmodontidae
+chiasms
+chiasmus
+Chiasso
+chiastic
+chiastolite
+chiastoneural
+chiastoneurous
+chiastoneury
+chiaus
+chiauses
+chiave
+chiavetta
+Chiayi
+Chiba
+chiba
+Chibcha
+chibcha
+Chibchan
+chibchan
+Chibchas
+chibinite
+chibol
+chibouk
+chibouks
+chibouque
+chibrit
+Chic
+chic
+chica
+chicadee
+Chicago
+chicago
+Chicagoan
+chicagoan
+chicagoans
+chicalote
+chicane
+chicaned
+chicaner
+chicaneries
+chicaners
+chicanery
+chicanes
+chicaning
+Chicano
+chicano
+Chicanos
+chicanos
+chicaric
+chicayote
+chiccories
+chiccory
+chicer
+chicest
+chich
+Chicha
+chicha
+chicharra
+Chichester
+chichevache
+Chichewa
+chichi
+chichicaste
+Chichihaerh
+Chichihar
+chichili
+Chichimec
+chichimecan
+chichipate
+chichipe
+chichis
+chichituna
+Chichivache
+chichling
+Chick
+chick
+chickabiddy
+chickadee
+chickadees
+Chickahominy
+Chickamauga
+chickaree
+Chickasaw
+chickasaw
+Chickasaws
+chickasaws
+Chickasha
+chickee
+chickees
+chickell
+chicken
+chickenberry
+chickenbill
+chicken-billed
+chicken-brained
+chicken-breasted
+chickenbreasted
+chicken-breastedness
+chickened
+chicken-farming
+chicken-hazard
+chicken-hearted
+chickenhearted
+chicken-heartedly
+chickenheartedly
+chicken-heartedness
+chickenheartedness
+chickenhood
+chickening
+chicken-livered
+chicken-liveredness
+chicken-meat
+chickenpox
+chickens
+chickenshit
+chicken-spirited
+chickens-toes
+chicken-toed
+chickenweed
+chickenwort
+chicker
+chickery
+chickhood
+Chickie
+chickies
+chickling
+chickories
+chickory
+chick-pea
+chickpea
+chickpeas
+chicks
+chickstone
+chickweed
+chickweeds
+chickwit
+Chicky
+chicky
+Chiclayo
+chicle
+chiclero
+chicles
+chicly
+chicness
+chicnesses
+Chico
+chico
+Chicoine
+Chicomecoatl
+Chicopee
+Chicora
+chicories
+chicory
+chicos
+chicot
+Chicota
+chicote
+chicqued
+chicquer
+chicquest
+chicquing
+chics
+chid
+chidden
+chide
+chided
+chider
+chiders
+chides
+Chidester
+chiding
+chidingly
+chidingness
+chidra
+chief
+chiefage
+chiefdom
+chiefdoms
+chiefer
+chiefery
+chiefess
+chiefest
+chiefish
+chief-justiceship
+Chiefland
+chiefless
+chiefling
+chiefly
+chief-pledge
+chiefry
+chiefs
+chiefship
+chieftain
+chieftaincies
+chieftaincy
+chieftainess
+chieftainries
+chieftainry
+chieftains
+chieftainship
+chieftainships
+chieftess
+chiefty
+chiel
+chield
+chields
+chiels
+Chiemsee
+Chien
+chien
+Chiengmai
+Chiengrai
+chierete
+chievance
+chieve
+chiff-chaff
+chiffchaff
+chiffer
+chifferobe
+chiffon
+chiffonade
+chiffonier
+chiffoniers
+chiffonnier
+chiffonnieres
+chiffonniers
+chiffons
+chiffony
+chifforobe
+chifforobes
+chiffre
+chiffrobe
+Chifley
+chigetai
+chigetais
+chigga
+chiggak
+chigger
+chiggers
+chiggerweed
+Chignik
+chignon
+chignoned
+chignons
+chigoe
+chigoe-poison
+chigoes
+Chigwell
+chih
+chihfu
+Chihli
+Chihuahua
+chihuahua
+chihuahuas
+Chikamatsu
+chikara
+chikee
+Chikmagalur
+Chil
+chil
+chilacavote
+chilacayote
+chilalgia
+chilaria
+chilarium
+chilblain
+chilblained
+chilblains
+Chilcat
+Chilcats
+Chilcoot
+Chilcote
+Child
+child
+childage
+childbear
+child-bearing
+childbearing
+childbed
+childbeds
+child-bereft
+child-birth
+childbirth
+childbirths
+childcrowing
+Childe
+childe
+childed
+Childermas
+childermas
+Childers
+Childersburg
+childes
+child-fashion
+child-god
+child-hearted
+child-heartedness
+childhood
+childhoods
+childing
+childish
+childishly
+childishness
+childishnesses
+childkind
+childless
+childlessness
+childlessnesses
+childlier
+childliest
+childlike
+childlikeness
+child-loving
+childly
+child-minded
+child-mindedness
+childminder
+childness
+childproof
+childre
+children
+childrenite
+Childress
+childridden
+Childs
+childship
+childward
+childwife
+childwite
+Childwold
+Chile
+chile
+Chilean
+chilean
+Chileanization
+Chileanize
+chileans
+chilectropion
+chilenite
+Chiles
+chiles
+Chilhowee
+Chilhowie
+chili
+chiliad
+chiliadal
+chiliadic
+chiliadron
+chiliads
+chiliaedron
+chiliagon
+chiliahedron
+chiliarch
+chiliarchia
+chiliarchy
+chiliasm
+chiliasms
+chiliast
+chiliastic
+chiliasts
+chilicote
+chilicothe
+chilidium
+chilidog
+chilidogs
+chilies
+Chi-lin
+chi-lin
+Chilina
+chilindre
+Chilinidae
+chilio-
+chiliomb
+Chilion
+chilipepper
+chilitis
+Chilkat
+Chilkats
+Chill
+chill
+chilla
+chillagite
+Chillan
+chill-cast
+chilled
+chiller
+chillers
+chillest
+chilli
+Chillicothe
+chillier
+chillies
+chilliest
+chillily
+chilliness
+chillinesses
+chilling
+chillingly
+chillis
+chillish
+Chilliwack
+chillness
+chillo
+chilloes
+Chillon
+chillroom
+chills
+chillsome
+chillum
+chillumchee
+chillums
+chilly
+Chilmark
+Chilo
+chilo-
+chilodon
+chilognath
+Chilognatha
+chilognathan
+chilognathous
+chilogrammo
+chiloma
+Chilomastix
+chilomata
+Chilomonas
+Chilon
+chiloncus
+chiloplasty
+chilopod
+Chilopoda
+chilopodan
+chilopodous
+chilopods
+Chilopsis
+Chiloquin
+Chilostoma
+Chilostomata
+chilostomatous
+chilostome
+chilotomies
+chilotomy
+Chilpancingo
+Chilson
+Chilt
+chilte
+Chiltern
+chiltern
+Chilton
+Chilung
+chilver
+chimachima
+Chimacum
+chimaera
+chimaeras
+chimaerid
+Chimaeridae
+chimaeroid
+Chimaeroidei
+Chimakuan
+Chimakum
+Chimalakwe
+Chimalapa
+Chimane
+chimango
+Chimaphila
+chimar
+Chimarikan
+Chimariko
+chimars
+Chimayo
+chimb
+chimbe
+chimble
+chimbley
+chimbleys
+chimblies
+chimbly
+Chimborazo
+Chimbote
+chimbs
+chime
+chimed
+Chimene
+chimer
+chimera
+chimeral
+chimeras
+chimere
+chimeres
+chimeric
+chimerical
+chimerically
+chimericalness
+chimerism
+chimers
+chimes
+chimesmaster
+chimin
+chiminage
+chiming
+Chimique
+Chimkent
+chimla
+chimlas
+chimley
+chimleys
+Chimmesyan
+chimney
+chimneyed
+chimneyhead
+chimneying
+chimneyless
+chimneylike
+chimneyman
+chimney-piece
+chimneypiece
+chimneypot
+chimneys
+Chimonanthus
+chimopeelagic
+chimopelagic
+chimp
+chimpanzee
+chimpanzees
+chimps
+Chimu
+Chimus
+Ch'in
+Chin
+Chin.
+ch'in
+chin
+China
+china
+chinaberries
+chinaberry
+chinafish
+chinafy
+Chinagraph
+chinalike
+Chinaman
+chinaman
+china-mania
+chinamania
+chinamaniac
+Chinamen
+chinamen
+chinampa
+Chinan
+chinanta
+Chinantecan
+Chinantecs
+chinaphthol
+chinar
+chinaroot
+chinas
+Chinatown
+chinatown
+chinaware
+chinawoman
+chinband
+chinbeak
+chin-bearded
+chin-bone
+chinbone
+chinbones
+chincapin
+chinch
+chincha
+Chinchasuyu
+chinchayote
+chinche
+chincher
+chincherinchee
+chincherinchees
+chinches
+chinchier
+chinchiest
+chinchilla
+chinchillas
+chinchillette
+chin-chin
+chinchiness
+chinching
+chin-chinned
+chin-chinning
+chinchona
+Chin-Chou
+chinchy
+chincloth
+chincof
+chincona
+Chincoteague
+chincough
+chindee
+chin-deep
+chindi
+Chindit
+Chindwin
+chine
+chined
+Chinee
+chinela
+chinenses
+chines
+Chinese
+chinese
+Chinese-houses
+Chinesery
+chinfest
+Ch'ing
+Ching
+ching
+Chinghai
+chingma
+Chingpaw
+Chingtao
+Ching-t'u
+Ching-tu
+Ch'ing-yan
+chin-high
+Chin-Hsien
+Chinhwan
+chinik
+chiniks
+chinin
+chining
+chiniofon
+Chink
+chink
+chinkapin
+chinkara
+chink-backed
+chinked
+chinker
+chinkerinchee
+chinkers
+Chinkiang
+chinkier
+chinkiest
+chinking
+chinkle
+chinks
+chinky
+Chinle
+chinles
+chinless
+chinnam
+Chinnampo
+chinned
+chinner
+chinners
+chinnier
+chinniest
+chinning
+chinny
+Chino
+Chino-
+chino
+chino-
+chinoa
+chinoidin
+chinoidine
+chinois
+chinoiserie
+Chino-japanese
+chinol
+chinoleine
+chinoline
+chinologist
+chinone
+chinones
+Chinook
+chinook
+Chinookan
+chinookan
+Chinooks
+chinooks
+chinos
+chinotoxine
+chinotti
+chinotto
+chinovnik
+chinpiece
+chinquapin
+chins
+chinse
+chinsed
+chinsing
+chint
+chints
+chintses
+chintz
+chintze
+chintzes
+chintzier
+chintziest
+chintziness
+chintzy
+Chinua
+chin-up
+chin-wag
+chinwag
+chinwood
+Chiococca
+chiococcine
+Chiogenes
+chiolite
+chionablepsia
+Chionanthus
+Chionaspis
+Chione
+Chionididae
+Chionis
+Chionodoxa
+chionodoxa
+chionophobia
+chiopin
+Chios
+Chiot
+chiotilla
+Chiou
+Chip
+chip
+chipboard
+chipchap
+chipchop
+Chipewyan
+chiplet
+Chipley
+chipling
+Chipman
+chipmuck
+chipmucks
+chipmunk
+chipmunks
+chipolata
+chippable
+chippage
+chipped
+Chippendale
+chippendale
+chipper
+chippered
+chippering
+chippers
+chipper-up
+Chippewa
+chippewa
+Chippewas
+chippewas
+Chippeway
+Chippeways
+chippie
+chippier
+chippies
+chippiest
+chipping
+chippings
+chip-proof
+chipproof
+chippy
+chips
+chipwood
+chipyard
+chiquero
+chiquest
+Chiquia
+Chiquinquira
+Chiquita
+Chiquitan
+Chiquito
+chir-
+Chirac
+chiragra
+chiragrical
+chiral
+chiralgia
+chirality
+Chiran
+chirapsia
+chirarthritis
+chirata
+Chirau
+chirayta
+Chireno
+Chi-Rho
+chi-rho
+Chi-Rhos
+Chiriana
+Chiricahua
+Chirico
+Chiriguano
+Chirikof
+chirimen
+chirimia
+chirimoya
+chirimoyer
+Chirino
+chirinola
+chiripa
+Chiriqui
+chirivita
+chirk
+chirked
+chirker
+chirkest
+chirking
+chirks
+chirl
+Chirlin
+chirm
+chirmed
+chirming
+chirms
+chiro
+chiro-
+chirocosmetics
+chirogale
+chirognomic
+chirognomically
+chirognomist
+chirognomy
+chirognostic
+chirograph
+chirographary
+chirographer
+chirographers
+chirographic
+chirographical
+chirography
+chirogymnast
+chirolas
+chirological
+chirologically
+chirologies
+chirologist
+chirology
+chiromance
+chiromancer
+chiromancist
+chiromancy
+chiromant
+chiromantic
+chiromantical
+Chiromantis
+chiromegaly
+chirometer
+Chiromyidae
+Chiromys
+Chiron
+chironomic
+chironomid
+Chironomidae
+Chironomus
+chironomy
+chironym
+chiropatagium
+chiroplasty
+chiropod
+chiropodial
+chiropodic
+chiropodical
+chiropodies
+chiropodist
+chiropodistry
+chiropodists
+chiropodous
+chiropody
+chiropompholyx
+chiropractic
+chiropractics
+chiropractor
+chiropractors
+chiropraxis
+chiropter
+Chiroptera
+chiropteran
+chiropterite
+chiropterophilous
+chiropterous
+chiropterygian
+chiropterygious
+chiropterygium
+chiros
+chirosophist
+chirospasm
+Chirotes
+chirotherian
+Chirotherium
+chirothesia
+chirotonsor
+chirotonsory
+chirotony
+chirotype
+chirp
+chirped
+chirper
+chirpers
+chirpier
+chirpiest
+chirpily
+chirpiness
+chirping
+chirpingly
+chirpling
+chirps
+chirpy
+chirr
+chirre
+chirred
+chirres
+chirring
+chirrs
+chirrup
+chirruped
+chirruper
+chirruping
+chirrupper
+chirrups
+chirrupy
+chirt
+chiru
+chirurgeon
+chirurgeonly
+chirurgery
+chirurgic
+chirurgical
+chirurgy
+chis
+Chisedec
+chisel
+chisel-cut
+chiseled
+chisel-edged
+chiseler
+chiselers
+chiseling
+chiselled
+chiseller
+chisellers
+chisellike
+chiselling
+chiselly
+chiselmouth
+chisel-pointed
+chisels
+chisel-shaped
+Chishima
+Chisholm
+Chisimaio
+Chisin
+chisled
+chi-square
+chistera
+chistka
+chit
+Chita
+chitak
+chital
+chitarra
+chitarrino
+chitarrone
+chitarroni
+chit-chat
+chitchat
+chitchats
+chitchatted
+chitchatting
+chitchatty
+chithe
+Chitimacha
+Chitimachan
+chitin
+Chitina
+chitinization
+chitinized
+chitino-arenaceous
+chitinocalcareous
+chitinogenous
+chitinoid
+chitinous
+chitins
+Chitkara
+chitlin
+chitling
+chitlings
+chitlins
+chiton
+chitons
+chitosamine
+chitosan
+chitosans
+chitose
+chitra
+Chitragupta
+Chitrali
+chits
+Chi-tse
+chittack
+Chittagong
+chittak
+chittamwood
+chitted
+Chittenango
+Chittenden
+chitter
+chitter-chatter
+chittered
+chittering
+chitterling
+chitterlings
+chitters
+chitties
+chitting
+chitty
+chitty-face
+Chi-tzu
+chiule
+chiurm
+Chiusi
+chiv
+chivachee
+chivage
+chivalresque
+chivalric
+chivalries
+chivalrous
+chivalrously
+chivalrousness
+chivalrousnesses
+chivalry
+chivaree
+chivareed
+chivareeing
+chivarees
+chivareing
+chivari
+chivaried
+chivariing
+chivaring
+chivaris
+chivarra
+chivarras
+chivarro
+chive
+chiver
+chiveret
+Chivers
+chives
+chivey
+chiviatite
+chivied
+chivies
+Chivington
+chivvied
+chivvies
+chivvy
+chivvying
+chivw
+chivy
+chivying
+Chiwere
+chizz
+chizzel
+chkalik
+Chkalov
+chkfil
+chkfile
+Chladek
+Chladni
+chladnite
+chlamyd
+chlamydate
+chlamydeous
+chlamydes
+Chlamydia
+Chlamydobacteriaceae
+chlamydobacteriaceous
+Chlamydobacteriales
+Chlamydomonadaceae
+Chlamydomonadidae
+Chlamydomonas
+chlamydomonas
+chlamydophore
+Chlamydosaurus
+Chlamydoselachidae
+Chlamydoselachus
+chlamydospore
+chlamydosporic
+Chlamydozoa
+chlamydozoan
+chlamyphore
+Chlamyphorus
+chlamys
+chlamyses
+Chleuh
+Chlidanope
+Chlo
+chloanthite
+chloasma
+chloasmata
+Chlodwig
+Chloe
+chloe
+Chloette
+Chlons-sur-Marne
+chlor
+chlor-
+chloracetate
+chloracne
+chloraemia
+chloragen
+chloragogen
+chloragogue
+chloral
+chloralformamide
+chloralide
+chloralism
+chloralization
+chloralize
+chloralized
+chloralizing
+chloralose
+chloralosed
+chlorals
+chloralum
+chlorambucil
+chloramide
+chloramin
+chloramine
+chloramine-T
+chloramphenicol
+chloranaemia
+chloranemia
+chloranemic
+chloranhydride
+chloranil
+Chloranthaceae
+chloranthaceous
+Chloranthus
+chloranthus
+chloranthy
+chlorapatite
+chlorargyrite
+Chloras
+chlorastrolite
+chlorate
+chlorates
+chlorazide
+chlorcosane
+chlordan
+chlordane
+chlordans
+chlordiazepoxide
+chlore
+chlored
+Chlorella
+chlorella
+Chlorellaceae
+chlorellaceous
+chloremia
+chloremic
+chlorenchyma
+Chlores
+chlorguanide
+chlorhexidine
+chlorhydrate
+chlorhydric
+Chlori
+chloriamb
+chloriambus
+chloric
+chlorid
+chloridate
+chloridated
+chloridation
+chloride
+Chloridella
+Chloridellidae
+chlorider
+chlorides
+chloridic
+chloridize
+chloridized
+chloridizing
+chlorids
+chlorimeter
+chlorimetric
+chlorimetry
+chlorin
+chlorinate
+chlorinated
+chlorinates
+chlorinating
+chlorination
+chlorinations
+chlorinator
+chlorinators
+chlorine
+chlorines
+chlorinity
+chlorinize
+chlorinous
+chlorins
+chloriodide
+Chlorion
+Chlorioninae
+Chloris
+chlorite
+chlorites
+chloritic
+chloritization
+chloritize
+chloritoid
+chlorize
+chlormethane
+chlormethylic
+chlornal
+chloro
+chloro-
+chloroacetate
+chloroacetic
+chloroacetone
+chloroacetophenone
+chloroamide
+chloroamine
+chloroanaemia
+chloroanemia
+chloroaurate
+chloroauric
+chloroaurite
+chlorobenzene
+chlorobromide
+chlorobromomethane
+chlorocalcite
+chlorocarbon
+chlorocarbonate
+chlorochromates
+chlorochromic
+chlorochrous
+Chlorococcaceae
+Chlorococcales
+Chlorococcum
+Chlorococcus
+chlorocresol
+chlorocruorin
+chlorodize
+chlorodized
+chlorodizing
+chlorodyne
+chloroethene
+chloroethylene
+chlorofluorocarbon
+chlorofluoromethane
+chloroform
+chloroformate
+chloroformed
+chloroformic
+chloroforming
+chloroformism
+chloroformist
+chloroformization
+chloroformize
+chloroforms
+chlorogenic
+chlorogenine
+chloroguanide
+chlorohydrin
+chlorohydrocarbon
+chlorohydroquinone
+chloroid
+chloroiodide
+chloroleucite
+chloroma
+chloromata
+chloromelanite
+chlorometer
+chloromethane
+chlorometric
+chlorometry
+Chloromycetin
+chloromycetin
+chloronaphthalene
+chloronitrate
+chloropal
+chloropalladates
+chloropalladic
+chlorophaeite
+chlorophane
+chlorophenol
+chlorophenothane
+chlorophoenicite
+Chlorophora
+Chlorophyceae
+chlorophyceous
+chlorophyl
+chlorophyll
+chlorophyllaceous
+chlorophyllan
+chlorophyllase
+chlorophyllian
+chlorophyllide
+chlorophylliferous
+chlorophylligenous
+chlorophylligerous
+chlorophyllin
+chlorophyllite
+chlorophylloid
+chlorophyllose
+chlorophyllous
+chlorophylls
+chloropia
+chloropicrin
+chloroplast
+chloroplastic
+chloroplastid
+chloroplasts
+chloroplatinate
+chloroplatinic
+chloroplatinite
+chloroplatinous
+chloroprene
+chloropsia
+chloroquine
+chlorosilicate
+chlorosis
+chlorospinel
+chlorosulphonic
+chlorothiazide
+chlorotic
+chlorotically
+chlorotrifluoroethylene
+chlorotrifluoromethane
+chlorous
+chlorozincate
+chlorpheniramine
+chlorphenol
+chlorpicrin
+chlorpikrin
+chlorpromazine
+chlorpropamide
+chlorprophenpyridamine
+chlorsalol
+chlortetracycline
+Chlor-Trimeton
+chloryl
+ChM
+chm
+chm.
+Chmielewski
+chmn
+chn
+Chnier
+Chnuphis
+Cho
+cho
+choachyte
+choak
+choana
+choanae
+choanate
+Choanephora
+choanite
+choanocytal
+choanocyte
+Choanoflagellata
+choanoflagellate
+Choanoflagellida
+Choanoflagellidae
+choanoid
+choanophorous
+choanosomal
+choanosome
+Choapas
+Choate
+choate
+choaty
+chob
+chobdar
+chobie
+Chobot
+choca
+chocalho
+chocard
+Choccolocco
+Chocho
+chocho
+chochos
+choc-ice
+chock
+chock-a-block
+chockablock
+chocked
+chocker
+chockful
+chock-full
+chockfull
+chocking
+chockler
+chockman
+chocks
+chockstone
+Choco
+choco
+Chocoan
+chocolate
+chocolate-box
+chocolate-brown
+chocolate-coated
+chocolate-colored
+chocolate-flower
+chocolate-red
+chocolates
+chocolatey
+chocolatier
+chocolatiere
+chocolaty
+Chocorua
+Chocowinity
+Choctaw
+choctaw
+choctaw-root
+Choctaws
+choctaws
+choel
+choenix
+Choephori
+Choeropsis
+Choes
+choffer
+choga
+chogak
+chogset
+Chogyal
+Choiak
+choice
+choice-drawn
+choiceful
+choiceless
+choicelessness
+choicely
+choiceness
+choicer
+choices
+choicest
+choicier
+choiciest
+choicy
+choil
+choile
+choiler
+choir
+choirboy
+choirboys
+choired
+choirgirl
+choiring
+choirlike
+choirman
+choirmaster
+choirmasters
+choirs
+choirwise
+choise
+Choiseul
+Choisya
+chok
+chokage
+choke
+choke-
+chokeable
+chokeberries
+chokeberry
+choke-bore
+chokebore
+chokecherries
+chokecherry
+choked
+chokedamp
+choke-full
+choker
+chokered
+chokerman
+chokers
+chokes
+chokestrap
+chokeweed
+chokey
+chokeys
+chokidar
+chokier
+chokies
+chokiest
+choking
+chokingly
+Chokio
+choko
+Chokoloskee
+chokra
+choky
+Chol
+chol
+chol-
+Chola
+chola
+cholaemia
+cholagogic
+cholagogue
+cholalic
+cholam
+Cholame
+cholane
+cholangiographic
+cholangiography
+cholangioitis
+cholangitis
+cholanic
+cholanthrene
+cholate
+cholates
+chold
+chole-
+choleate
+cholecalciferol
+cholecyanin
+cholecyanine
+cholecyst
+cholecystalgia
+cholecystectasia
+cholecystectomies
+cholecystectomized
+cholecystectomy
+cholecystenterorrhaphy
+cholecystenterostomy
+cholecystgastrostomy
+cholecystic
+cholecystis
+cholecystitis
+cholecystnephrostomy
+cholecystocolostomy
+cholecystocolotomy
+cholecystoduodenostomy
+cholecystogastrostomy
+cholecystogram
+cholecystography
+cholecystoileostomy
+cholecystojejunostomy
+cholecystokinin
+cholecystolithiasis
+cholecystolithotripsy
+cholecystonephrostomy
+cholecystopexy
+cholecystorrhaphy
+cholecystostomies
+cholecystostomy
+cholecystotomies
+cholecystotomy
+choledoch
+choledochal
+choledochectomy
+choledochitis
+choledochoduodenostomy
+choledochoenterostomy
+choledocholithiasis
+choledocholithotomy
+choledocholithotripsy
+choledochoplasty
+choledochorrhaphy
+choledochostomies
+choledochostomy
+choledochotomies
+choledochotomy
+choledography
+cholee
+cholehematin
+choleic
+choleine
+choleinic
+cholelith
+cholelithiasis
+cholelithic
+cholelithotomy
+cholelithotripsy
+cholelithotrity
+cholemia
+cholent
+cholents
+choleokinase
+cholepoietic
+choler
+cholera
+choleraic
+choleras
+choleric
+cholerically
+cholericly
+cholericness
+choleriform
+cholerigenous
+cholerine
+choleroid
+choleromania
+cholerophobia
+cholerrhagia
+cholers
+cholestane
+cholestanol
+cholesteatoma
+cholesteatomatous
+cholestene
+cholesterate
+cholesteremia
+cholesteric
+cholesterin
+cholesterinemia
+cholesterinic
+cholesterinuria
+cholesterol
+cholesterolemia
+cholesterols
+cholesteroluria
+cholesterosis
+cholesteryl
+choletelin
+choletherapy
+choleuria
+choli
+choliamb
+choliambic
+choliambist
+cholic
+cholick
+choline
+cholinergic
+cholines
+cholinesterase
+cholinic
+cholinolytic
+cholla
+chollas
+choller
+chollers
+Cholo
+cholo
+cholo-
+cholochrome
+cholocyanine
+Choloepus
+chologenetic
+choloid
+choloidic
+choloidinic
+chololith
+chololithic
+Cholon
+Cholonan
+Cholones
+cholophaein
+cholophein
+cholorrhea
+Cholos
+cholos
+choloscopy
+cholralosed
+cholterheaded
+choltry
+Cholula
+cholum
+choluria
+Choluteca
+chomage
+chomer
+chomp
+chomped
+chomper
+chompers
+chomping
+chomps
+Chomsky
+Chon
+chon
+chonchina
+chondr-
+chondral
+chondralgia
+chondrarsenite
+chondre
+chondrectomy
+chondrenchyma
+chondri
+chondria
+chondric
+Chondrichthyes
+chondrification
+chondrified
+chondrify
+chondrigen
+chondrigenous
+Chondrilla
+chondrin
+chondrinous
+chondriocont
+chondrioma
+chondriome
+chondriomere
+chondriomite
+chondriosomal
+chondriosome
+chondriosomes
+chondriosphere
+chondrite
+chondrites
+chondritic
+chondritis
+chondro-
+chondroadenoma
+chondroalbuminoid
+chondroangioma
+chondroarthritis
+chondroblast
+chondroblastoma
+chondrocarcinoma
+chondrocele
+chondroclasis
+chondroclast
+chondrocoracoid
+chondrocostal
+chondrocranial
+chondrocranium
+chondrocyte
+chondrodite
+chondroditic
+chondrodynia
+chondrodystrophia
+chondrodystrophy
+chondroendothelioma
+chondroepiphysis
+chondrofetal
+chondrofibroma
+chondrofibromatous
+Chondroganoidei
+chondrogen
+chondrogenesis
+chondrogenetic
+chondrogenous
+chondrogeny
+chondroglossal
+chondroglossus
+chondrography
+chondroid
+chondroitic
+chondroitin
+chondroitin-sulphuric
+chondrolipoma
+chondrology
+chondroma
+chondromalacia
+chondromas
+chondromata
+chondromatous
+chondromucoid
+Chondromyces
+chondromyoma
+chondromyxoma
+chondromyxosarcoma
+chondro-osseous
+chondropharyngeal
+chondropharyngeus
+chondrophore
+chondrophyte
+chondroplast
+chondroplastic
+chondroplasty
+chondroprotein
+chondropterygian
+Chondropterygii
+chondropterygious
+chondrosamine
+chondrosarcoma
+chondrosarcomas
+chondrosarcomata
+chondrosarcomatous
+chondroseptum
+chondrosin
+chondrosis
+chondroskeleton
+chondrostean
+Chondrostei
+chondrosteoma
+chondrosteous
+chondrosternal
+chondrotome
+chondrotomy
+chondroxiphoid
+chondrule
+chondrules
+chondrus
+Chong
+Chongjin
+chonicrite
+Chonju
+chonk
+chonolith
+chonta
+Chontal
+Chontalan
+Chontaquiro
+chontawood
+Choo
+choo-choo
+choochoo
+choo-chooed
+choo-chooing
+chook
+chookie
+chookies
+chooky
+choom
+Choong
+choop
+choora
+choosable
+choosableness
+choose
+chooseable
+chooser
+choosers
+chooses
+choosey
+choosier
+choosiest
+choosiness
+choosing
+choosingly
+choosy
+chop
+chopa
+chopas
+chopboat
+chop-cherry
+chop-chop
+chop-church
+chopdar
+chop-fallen
+chopfallen
+chop-house
+chophouse
+chophouses
+Chopin
+chopin
+chopine
+chopines
+chopins
+chop-logic
+choplogic
+choplogical
+chopped
+chopped-off
+chopper
+choppered
+choppers
+choppier
+choppiest
+choppily
+choppin
+choppiness
+choppinesses
+chopping
+choppy
+chops
+chop-stick
+chopstick
+Chopsticks
+chopsticks
+chop-suey
+Chopunnish
+Chor
+Chora
+choragi
+choragic
+choragion
+choragium
+choragus
+choraguses
+choragy
+Chorai
+choral
+choralcelo
+chorale
+choraleon
+chorales
+choralist
+chorally
+chorals
+Chorasmian
+chord
+chorda
+Chordaceae
+chordacentrous
+chordacentrum
+chordaceous
+chordal
+chordally
+chordamesoderm
+chordamesodermal
+chordamesodermic
+Chordata
+chordata
+chordate
+chordates
+chorded
+chordee
+Chordeiles
+chording
+chorditis
+chordoid
+chordomesoderm
+chordophone
+chordotomy
+chordotonal
+chords
+-chore
+chore
+chorea
+choreal
+choreas
+choreatic
+chored
+choree
+choregi
+choregic
+choregrapher
+choregraphic
+choregraphically
+choregraphy
+choregus
+choreguses
+choregy
+chorei
+choreic
+choreiform
+choreman
+choremen
+choreo-
+choreodrama
+choreograph
+choreographed
+choreographer
+choreographers
+choreographic
+choreographical
+choreographically
+choreographies
+choreographing
+choreographs
+choreography
+choreoid
+choreomania
+chorepiscopal
+chorepiscope
+chorepiscopus
+chores
+choreus
+choreutic
+chorgi
+chori-
+chorial
+choriamb
+choriambi
+choriambic
+choriambize
+choriambs
+choriambus
+choriambuses
+choribi
+choric
+chorically
+chorine
+chorines
+choring
+chorio
+chorioadenoma
+chorioallantoic
+chorioallantoid
+chorioallantois
+choriocapillaris
+choriocapillary
+choriocarcinoma
+choriocarcinomas
+choriocarcinomata
+choriocele
+chorioepithelioma
+chorioepitheliomas
+chorioepitheliomata
+chorioid
+chorioidal
+chorioiditis
+chorioidocyclitis
+chorioidoiritis
+chorioidoretinitis
+chorioids
+chorioma
+choriomas
+choriomata
+chorion
+chorionepithelioma
+chorionic
+chorions
+Chorioptes
+chorioptic
+chorioretinal
+chorioretinitis
+Choripetalae
+choripetalous
+choriphyllous
+chorisepalous
+chorisis
+chorism
+choriso
+chorisos
+chorist
+choristate
+chorister
+choristers
+choristership
+choristic
+choristoblastoma
+choristoma
+choristoneura
+choristry
+chorization
+chorizo
+c-horizon
+chorizont
+chorizontal
+chorizontes
+chorizontic
+chorizontist
+chorizos
+Chorley
+chorobates
+chorogi
+chorograph
+chorographer
+chorographic
+chorographical
+chorographically
+chorographies
+chorography
+choroid
+choroidal
+choroidea
+choroiditis
+choroidocyclitis
+choroidoiritis
+choroidoretinitis
+choroids
+chorological
+chorologist
+chorology
+choromania
+choromanic
+chorometry
+chorook
+Chorotega
+Choroti
+chorous
+chort
+chorten
+Chorti
+chortle
+chortled
+chortler
+chortlers
+chortles
+chortling
+chortosterol
+chorus
+chorused
+choruser
+choruses
+chorusing
+choruslike
+chorusmaster
+chorussed
+chorusses
+chorussing
+Chorwat
+Chorwon
+choryos
+Chorz
+Chorzow
+chose
+Chosen
+chosen
+choses
+chosing
+Chosn
+Chosunilbo
+Choteau
+CHOTS
+chott
+chotts
+Chou
+chou
+Chouan
+chouan
+Chouanize
+choucroute
+Choudrant
+Chouest
+chouette
+chou-fleur
+choufleur
+chough
+choughs
+chouka
+Choukoutien
+choule
+choultries
+choultry
+chounce
+choup
+choupic
+chouquette
+chous
+chouse
+choused
+chouser
+chousers
+chouses
+choush
+choushes
+chousing
+chousingha
+chout
+Chouteau
+choux
+Chow
+chow
+Chowanoc
+Chowchilla
+chow-chow
+chowchow
+chowchows
+chowder
+chowdered
+chowderhead
+chowderheaded
+chowderheadedness
+chowdering
+chowders
+chowed
+chowhound
+chowing
+chowk
+chowries
+chowry
+chows
+chowse
+chowsed
+chowses
+chowsing
+chowtime
+chowtimes
+choy
+choya
+choyaroot
+choyroot
+Chozar
+CHP
+CHQ
+Chr
+Chr.
+chrematheism
+chrematist
+chrematistic
+chrematistics
+chremsel
+chremzel
+chremzlach
+chreotechnics
+chresard
+chresards
+chresmology
+chrestomathic
+chrestomathics
+chrestomathies
+chrestomathy
+Chretien
+chria
+Chriesman
+chrimsel
+Chris
+chrism
+chrisma
+chrismal
+chrismale
+Chrisman
+chrismary
+chrismatine
+chrismation
+chrismatite
+chrismatize
+chrismatories
+chrismatory
+chrismon
+chrismons
+chrisms
+Chrisney
+chrisom
+chrisomloosing
+chrisoms
+Chrisoula
+chrisroot
+Chrissa
+Chrisse
+Chrissie
+Chrissy
+Christ
+christ
+Christa
+Christabel
+Christabella
+Christabelle
+Christadelphian
+Christadelphianism
+Christal
+Christalle
+Christan
+Christ-borne
+Christchurch
+Christ-confessing
+christ-cross
+christcross
+christ-cross-row
+christcross-row
+Christdom
+christdom
+Christean
+Christed
+christed
+Christel
+Christen
+christen
+Christendie
+Christendom
+christendom
+christened
+christener
+christeners
+christenhead
+christening
+christenings
+Christenmas
+christens
+Christensen
+Christenson
+Christ-given
+Christhood
+christhood
+Christ-hymning
+Christi
+Christiaan
+Christiad
+Christian
+christian
+Christiana
+Christiane
+Christiania
+christiania
+Christianiadeal
+Christianisation
+Christianise
+Christianised
+Christianiser
+Christianising
+Christianism
+christianism
+christianite
+Christianities
+Christianity
+christianity
+Christianization
+christianization
+Christianize
+christianize
+Christianized
+christianized
+Christianizer
+christianizes
+Christianizing
+christianizing
+Christianlike
+Christianly
+Christianna
+Christianness
+Christiano
+christiano-
+Christianogentilism
+Christianography
+Christianomastix
+Christianopaganism
+Christiano-platonic
+christians
+Christiansand
+Christiansburg
+Christiansen
+Christian-socialize
+Christianson
+Christiansted
+Christicide
+Christie
+christie
+Christies
+christies
+Christiform
+Christ-imitating
+Christin
+Christina
+Christine
+christine
+Christ-inspired
+Christis
+Christless
+christless
+Christlessness
+Christlike
+christ-like
+christlike
+Christlikeness
+Christliness
+Christly
+christly
+Christmann
+Christmas
+christmas
+Christmasberries
+Christmasberry
+christmases
+Christmasing
+Christmastide
+christmastide
+Christmastime
+Christmasy
+Christo-
+christo-
+Christocentric
+Christocentrism
+Christoff
+Christoffel
+Christoffer
+Christoforo
+Christogram
+Christolatry
+Christological
+christological
+Christologies
+Christologist
+Christology
+christology
+Christoper
+Christoph
+Christophanic
+Christophanies
+Christophany
+christophany
+Christophe
+Christopher
+christopher
+Christophorus
+Christos
+Christoval
+Christ-professing
+christs
+Christ's-thorn
+christ's-thorn
+Christ-taught
+christ-tide
+christward
+Christy
+christy
+Christye
+Christyna
+Chrisy
+chroatol
+Chrobat
+chrom-
+chroma
+chroma-blind
+chromaffin
+chromaffinic
+chromamamin
+chromammine
+chromaphil
+chromaphore
+chromas
+chromascope
+chromat-
+chromate
+chromates
+chromatic
+chromatical
+chromatically
+chromatician
+chromaticism
+chromaticity
+chromaticness
+chromatics
+chromatid
+chromatin
+chromatinic
+Chromatioideae
+chromatism
+chromatist
+Chromatium
+chromatize
+chromato-
+chromatocyte
+chromatodysopia
+chromatogenous
+chromatogram
+chromatograph
+chromatographic
+chromatographically
+chromatography
+chromatoid
+chromatologies
+chromatology
+chromatolysis
+chromatolytic
+chromatometer
+chromatone
+chromatopathia
+chromatopathic
+chromatopathy
+chromatophil
+chromatophile
+chromatophilia
+chromatophilic
+chromatophilous
+chromatophobia
+chromatophore
+chromatophoric
+chromatophorous
+chromatoplasm
+chromatopsia
+chromatoptometer
+chromatoptometry
+chromatoscope
+chromatoscopy
+chromatosis
+chromatosphere
+chromatospheric
+chromatrope
+chromaturia
+chromatype
+chromazurine
+chromdiagnosis
+-chrome
+chrome
+chromed
+Chromel
+chromene
+chrome-nickel
+chromeplate
+chromeplated
+chromeplating
+chromes
+chromesthesia
+chrome-tanned
+chrometophobia
+chromhidrosis
+chromic
+chromicize
+chromicizing
+chromid
+Chromidae
+chromide
+Chromides
+chromides
+chromidial
+Chromididae
+chromidiogamy
+chromidiosome
+chromidium
+chromidrosis
+chromiferous
+chrominance
+chroming
+chromiole
+chromism
+chromite
+chromites
+chromitite
+chromium
+chromium-plate
+chromium-plated
+chromiums
+chromize
+chromized
+chromizes
+chromizing
+Chromo
+chromo
+chromo-
+chromo-arsenate
+Chromobacterieae
+Chromobacterium
+chromoblast
+chromocenter
+chromocentral
+chromochalcographic
+chromochalcography
+chromocollograph
+chromocollographic
+chromocollography
+chromocollotype
+chromocollotypy
+chromocratic
+chromoctye
+chromocyte
+chromocytometer
+chromodermatosis
+chromodiascope
+chromogen
+chromogene
+chromogenesis
+chromogenetic
+chromogenic
+chromogenous
+chromogram
+chromograph
+chromoisomer
+chromoisomeric
+chromoisomerism
+chromoleucite
+chromolipoid
+chromolith
+chromolithic
+chromolithograph
+chromolithographer
+chromolithographic
+chromolithography
+chromolysis
+chromomere
+chromomeric
+chromometer
+chromone
+chromonema
+chromonemal
+chromonemata
+chromonematal
+chromonematic
+chromonemic
+chromoparous
+chromophage
+chromophane
+chromophil
+chromophile
+chromophilia
+chromophilic
+chromophilous
+chromophobe
+chromophobia
+chromophobic
+chromophor
+chromophore
+chromophoric
+chromophorous
+chromophotograph
+chromophotographic
+chromophotography
+chromophotolithograph
+chromophyl
+chromophyll
+chromoplasm
+chromoplasmic
+chromoplast
+chromoplastid
+chromoprotein
+chromopsia
+chromoptometer
+chromoptometrical
+chromos
+chromosantonin
+chromoscope
+chromoscopic
+chromoscopy
+chromosomal
+chromosomally
+chromosome
+chromosomes
+chromosomic
+chromosphere
+chromospheres
+chromospheric
+chromotherapist
+chromotherapy
+chromotrope
+chromotropic
+chromotropism
+chromotropy
+chromotype
+chromotypic
+chromotypographic
+chromotypography
+chromotypy
+chromous
+chromoxylograph
+chromoxylography
+chromule
+chromy
+chromyl
+chromyls
+Chron
+Chron.
+chron
+chron-
+chron.
+chronal
+chronanagram
+chronaxia
+chronaxie
+chronaxies
+chronaxy
+chroncmeter
+chronic
+chronica
+chronical
+chronically
+chronicity
+chronicle
+chronicled
+chronicler
+chroniclers
+Chronicles
+chronicles
+chronicling
+chronicon
+chronics
+chronique
+chronisotherm
+chronist
+Chronium
+chrono-
+chronobarometer
+chronobiology
+chronocarator
+chronocinematography
+chronocrator
+chronocyclegraph
+chronodeik
+chronogeneous
+chronogenesis
+chronogenetic
+chronogram
+chronogrammatic
+chronogrammatical
+chronogrammatically
+chronogrammatist
+chronogrammic
+chronograph
+chronographer
+chronographic
+chronographical
+chronographically
+chronographs
+chronography
+chronoisothermal
+chronol
+chronologer
+chronologic
+chronological
+chronologically
+chronologies
+chronologist
+chronologists
+chronologize
+chronologizing
+chronology
+chronomancy
+chronomantic
+chronomastix
+chronometer
+chronometers
+chronometric
+chronometrical
+chronometrically
+chronometry
+chronon
+chrononomy
+chronons
+chronopher
+chronophotograph
+chronophotographic
+chronophotography
+Chronos
+chronoscope
+chronoscopic
+chronoscopically
+chronoscopv
+chronoscopy
+chronosemic
+chronostichon
+chronothermal
+chronothermometer
+Chronotron
+chronotropic
+chronotropism
+Chroococcaceae
+chroococcaceous
+Chroococcales
+chroococcoid
+Chroococcus
+-chroous
+Chrosperma
+Chrotoem
+chrotta
+chry
+chrys-
+Chrysa
+chrysal
+chrysalid
+chrysalida
+chrysalidal
+chrysalides
+chrysalidian
+chrysaline
+chrysalis
+chrysalises
+chrysaloid
+chrysamine
+chrysammic
+chrysamminic
+Chrysamphora
+chrysanilin
+chrysaniline
+chrysanisic
+chrysanthemin
+chrysanthemum
+chrysanthemums
+chrysanthous
+Chrysaor
+chrysarobin
+chrysatropic
+chrysazin
+chrysazol
+Chryseis
+chryseis
+chryselectrum
+chryselephantine
+Chrysemys
+chrysene
+chrysenic
+Chryses
+chrysid
+Chrysidella
+chrysidid
+Chrysididae
+chrysin
+Chrysippus
+Chrysis
+Chrysler
+chrysler
+chryslers
+chryso-
+chrysoaristocracy
+Chrysobalanaceae
+Chrysobalanus
+chrysoberyl
+chrysobull
+chrysocale
+chrysocarpous
+chrysochlore
+Chrysochloridae
+Chrysochloris
+chrysochlorous
+chrysochrous
+chrysocolla
+chrysocracy
+chrysoeriol
+chrysogen
+chrysograph
+chrysographer
+chrysography
+chrysohermidin
+chrysoidine
+chrysolite
+chrysolitic
+chrysology
+Chrysolophus
+chrysome
+chrysomelid
+Chrysomelidae
+chrysomonad
+Chrysomonadales
+Chrysomonadina
+chrysomonadine
+Chrysomyia
+Chrysopa
+chrysopal
+chrysopee
+chrysophan
+chrysophane
+chrysophanic
+Chrysophanus
+chrysophenin
+chrysophenine
+chrysophilist
+chrysophilite
+Chrysophlyctis
+chrysophyll
+Chrysophyllum
+chrysophyte
+chrysopid
+Chrysopidae
+chrysopoeia
+chrysopoetic
+chrysopoetics
+chrysoprase
+chrysoprasus
+Chrysops
+Chrysopsis
+chrysorin
+chrysosperm
+Chrysosplenium
+Chrysostom
+chrysostomic
+Chrysostomus
+Chrysothamnus
+Chrysothemis
+chrysotherapy
+Chrysothrix
+chrysotile
+Chrysotis
+Chryssee
+Chrystal
+Chryste
+Chrystel
+chrystocrene
+chs
+chs.
+Chtaura
+chteau
+Chteauroux
+Chteau-Thierry
+chthonian
+chthonic
+Chthonius
+chthonophagia
+chthonophagy
+Chu
+Chuadanga
+Chuah
+Chualar
+chuana
+Chuanchow
+chub
+chubasco
+chubascos
+Chubb
+chubb
+chubbed
+chubbedness
+chubbier
+chubbiest
+chubbily
+chubbiness
+chubbinesses
+chubby
+chubby-faced
+chub-faced
+chubs
+chubsucker
+Chuch
+Chuchchi
+Chuchchis
+Chucho
+Chuchona
+Chuck
+chuck
+chuck-a-luck
+chuckawalla
+Chuckchi
+Chuckchis
+chucked
+chucker
+chucker-out
+chuckers-out
+Chuckey
+chuck-farthing
+chuckfarthing
+chuck-full
+chuckfull
+chuckhole
+chuckholes
+chuckie
+chuckies
+chucking
+chuckingly
+chuckle
+chuckled
+chucklehead
+chuckleheaded
+chuckleheadedness
+chuckler
+chucklers
+chuckles
+chucklesome
+chuckling
+chucklingly
+chuck-luck
+chuckram
+chuckrum
+chucks
+chuckstone
+chuckwalla
+chuck-will's-widow
+chucky
+chucky-chuck
+chucky-chucky
+Chud
+chuddah
+chuddahs
+chuddar
+chuddars
+chudder
+chudders
+Chude
+Chudic
+chuet
+Chueta
+chufa
+chufas
+chuff
+chuffed
+chuffer
+chuffest
+chuffier
+chuffiest
+chuffily
+chuffiness
+chuffing
+chuffs
+chuffy
+chug
+chug-a-lug
+chugalug
+chugalugged
+chugalugging
+chugalugs
+chug-chug
+chugged
+chugger
+chuggers
+chugging
+chughole
+Chugiak
+chugs
+Chugwater
+chuhra
+Chui
+Chuipek
+Chuje
+chukar
+chukars
+Chukchee
+Chukchees
+Chukchi
+Chukchis
+chukka
+chukkar
+chukkars
+chukkas
+chukker
+chukkers
+chukor
+Chula
+chulan
+chulha
+chullo
+chullpa
+chulpa
+chultun
+chum
+chumar
+Chumash
+Chumashan
+Chumashim
+Chumawi
+chumble
+Chumley
+chummage
+chummed
+chummer
+chummery
+chummier
+chummies
+chummiest
+chummily
+chumminess
+chumming
+chummy
+chump
+chumpa
+chumpaka
+chumped
+chumpiness
+chumping
+chumpish
+chumpishness
+Chumpivilca
+chumps
+chumpy
+chums
+chumship
+chumships
+Chumulu
+Chun
+chun
+chunam
+chunari
+Chuncho
+Chunchula
+chundari
+chunder
+chunderous
+Chung
+chung
+chunga
+Chungking
+chungking
+Chunichi
+chunk
+chunked
+chunkhead
+chunkier
+chunkiest
+chunkily
+chunkiness
+chunking
+chunks
+chunky
+Chunnel
+chunner
+chunnia
+chunter
+chuntered
+chuntering
+chunters
+chupa-chupa
+chupak
+chupatti
+chupatty
+chupon
+chuppah
+chuppahs
+chuppoth
+chuprassi
+chuprassie
+chuprassy
+Chuquicamata
+Chur
+Chura
+churada
+Church
+church
+church-ale
+churchanity
+church-chopper
+churchcraft
+churchdom
+church-door
+churched
+churches
+churchful
+church-gang
+church-garth
+churchgo
+churchgoer
+churchgoers
+churchgoing
+churchgoings
+church-government
+churchgrith
+churchianity
+churchier
+churchiest
+churchified
+Churchill
+churchill
+Churchillian
+churchiness
+churching
+churchish
+churchism
+churchite
+churchless
+churchlet
+churchlier
+churchliest
+churchlike
+churchliness
+churchly
+Churchman
+churchman
+churchmanly
+churchmanship
+churchmaster
+churchmen
+church-papist
+churchreeve
+church-scot
+churchscot
+churchshot
+church-soken
+Churchton
+Churchville
+church-ward
+churchward
+churchwarden
+churchwardenism
+churchwardenize
+churchwardens
+churchwardenship
+churchwards
+churchway
+churchwise
+churchwoman
+churchwomen
+churchy
+churchyard
+churchyards
+Churdan
+churel
+churidars
+churinga
+churingas
+churl
+churled
+churlhood
+churlier
+churliest
+churlish
+churlishly
+churlishness
+churls
+churly
+churm
+churn
+churnability
+churnable
+churn-butted
+churned
+churner
+churners
+churnful
+churning
+churnings
+churnmilk
+churns
+churnstaff
+Churoya
+Churoyan
+churr
+churrasco
+churred
+churrigueresco
+Churrigueresque
+churrigueresque
+churring
+churrip
+churro
+churr-owl
+churrs
+churruck
+churrus
+churr-worm
+churrworm
+Churubusco
+chuse
+chuser
+chusite
+chut
+Chute
+chute
+chuted
+chuter
+chutes
+chute-the-chute
+chute-the-chutes
+chuting
+chutist
+chutists
+chutnee
+chutnees
+chutney
+chutneys
+chuttie
+chutzpa
+chutzpadik
+chutzpah
+chutzpahs
+chutzpanik
+chutzpas
+Chuu
+chuumnapm
+Chuvash
+chuvashes
+Chuvashi
+chuzwi
+Chwana
+Chwang-tse
+chwas
+chyack
+chyak
+chyazic
+chylaceous
+chylangioma
+chylaqueous
+chyle
+chylemia
+chyles
+chylidrosis
+chylifaction
+chylifactive
+chylifactory
+chyliferous
+chylific
+chylification
+chylificatory
+chylified
+chyliform
+chylify
+chylifying
+chylo-
+chylocaulous
+chylocaulously
+chylocauly
+chylocele
+chylocyst
+chyloid
+chylomicron
+chylopericardium
+chylophyllous
+chylophyllously
+chylophylly
+chylopoetic
+chylopoiesis
+chylopoietic
+chylosis
+chylothorax
+chylous
+chyluria
+chym-
+chymaqueous
+chymase
+chyme
+chymes
+chymia
+chymic
+chymics
+chymiferous
+chymification
+chymified
+chymify
+chymifying
+chymist
+chymistry
+chymists
+chymo-
+chymosin
+chymosinogen
+chymosins
+chymotrypsin
+chymotrypsinogen
+chymous
+chyometer
+Chyou
+chypre
+chytra
+chytrid
+Chytridiaceae
+chytridiaceous
+chytridial
+Chytridiales
+chytridiose
+chytridiosis
+Chytridium
+Chytroi
+C.I.
+CI
+Ci
+ci-
+CIA
+Cia
+cia
+CIAC
+Ciales
+Ciampino
+Cianca
+Ciano
+ciao
+Ciapas
+Ciapha
+Ciaphus
+Ciardi
+CIB
+cibaria
+cibarial
+cibarian
+cibaries
+cibarious
+cibarium
+cibation
+cibbaria
+Cibber
+cibboria
+Cibis
+cibol
+Cibola
+Cibolan
+cibolero
+Cibolo
+cibols
+Ciboney
+cibophobia
+cibophobiafood
+ciboria
+ciborium
+cibory
+ciboule
+ciboules
+CIC
+CICA
+cicad
+cicada
+cicadae
+cicadas
+Cicadellidae
+cicadid
+Cicadidae
+cicala
+cicalas
+cicale
+cicatrice
+cicatrices
+cicatricial
+cicatricle
+cicatricose
+cicatricula
+cicatriculae
+cicatricule
+cicatrisant
+cicatrisate
+cicatrisation
+cicatrise
+cicatrised
+cicatriser
+cicatrising
+cicatrisive
+cicatrix
+cicatrixes
+cicatrizant
+cicatrizate
+cicatrization
+cicatrize
+cicatrized
+cicatrizer
+cicatrizing
+cicatrose
+Ciccia
+cicelies
+Cicely
+cicely
+Cicenia
+cicer
+Cicero
+cicero
+ciceronage
+cicerone
+cicerones
+ciceroni
+Ciceronian
+ciceronian
+Ciceronianism
+ciceronianism
+ciceronianisms
+ciceronianist
+ciceronianists
+Ciceronianize
+ciceronians
+Ciceronic
+Ciceronically
+ciceroning
+ciceronism
+ciceronize
+ciceros
+cichar
+cichlid
+Cichlidae
+cichlidae
+cichlids
+cichloid
+Cichocki
+cichoraceous
+Cichoriaceae
+cichoriaceous
+Cichorium
+cich-pea
+Cichus
+Cicily
+Cicindela
+cicindelid
+cicindelidae
+cicisbei
+cicisbeism
+cicisbeo
+ciclatoun
+Ciclo
+cicone
+Cicones
+Ciconia
+Ciconiae
+ciconian
+Ciconians
+ciconiform
+ciconiid
+Ciconiidae
+ciconiiform
+Ciconiiformes
+ciconine
+ciconioid
+cicoree
+cicorees
+cicrumspections
+CICS
+CICSVS
+cicurate
+Cicuta
+cicuta
+cicutoxin
+CID
+Cid
+cid
+Cida
+-cidal
+cidarid
+Cidaridae
+cidaris
+Cidaroida
+-cide
+cider
+ciderish
+ciderist
+ciderkin
+ciderlike
+ciders
+ci-devant
+CIDIN
+Cidney
+Cidra
+CIE
+Cie
+cie
+Ciel
+cienaga
+cienega
+Cienfuegos
+cierge
+cierzo
+cierzos
+CIF
+cif
+cig
+cigala
+cigale
+cigar
+cigaresque
+cigaret
+cigarets
+cigarette
+cigarettes
+cigarette-smoker
+cigarfish
+cigar-flower
+cigarillo
+cigarillos
+cigarito
+cigaritos
+cigarless
+cigar-loving
+cigars
+cigar-shaped
+cigar-smoker
+CIGS
+cigua
+ciguatera
+CII
+Ciitroen
+Cila
+cilantro
+cilantros
+cilectomy
+cilery
+cilia
+ciliary
+Ciliata
+ciliata
+ciliate
+ciliated
+ciliate-leaved
+ciliately
+ciliates
+ciliate-toothed
+ciliation
+cilice
+cilices
+Cilicia
+Cilician
+cilicious
+Cilicism
+cilicism
+ciliectomy
+ciliella
+ciliferous
+ciliform
+ciliiferous
+ciliiform
+ciliium
+Cilioflagellata
+cilioflagellate
+ciliograde
+ciliola
+ciliolate
+ciliolum
+Ciliophora
+cilioretinal
+cilioscleral
+ciliospinal
+ciliotomy
+Cilissa
+cilium
+Cilix
+Cilka
+cill
+Cilla
+cillosis
+Cillus
+Cilo
+cilo-spinal
+Cilurzo
+CIM
+CIMA
+Cima
+cima
+Cimabue
+Cimah
+cimaise
+cimaroon
+Cimarosa
+Cimarron
+cimbal
+cimbalom
+cimbaloms
+cimbia
+cimborio
+Cimbri
+Cimbrian
+Cimbric
+Cimbura
+cimcumvention
+cimelia
+cimeliarch
+cimelium
+cimeter
+cimex
+cimices
+cimicid
+Cimicidae
+cimicide
+cimiciform
+Cimicifuga
+cimicifugin
+cimicoid
+cimier
+ciminite
+cimline
+cimmaron
+Cimmeria
+Cimmerian
+cimmerian
+Cimmerianism
+Cimmerium
+cimnel
+cimolite
+Cimon
+C-in-C
+cinch
+cincha
+cinched
+cincher
+cinches
+cinching
+cincholoipon
+cincholoiponic
+cinchomeronic
+Cinchona
+cinchona
+Cinchonaceae
+cinchonaceous
+cinchonamin
+cinchonamine
+cinchonas
+cinchonate
+Cinchonero
+cinchonia
+cinchonic
+cinchonicin
+cinchonicine
+cinchonidia
+cinchonidine
+cinchonin
+cinchonine
+cinchoninic
+cinchonisation
+cinchonise
+cinchonised
+cinchonising
+cinchonism
+cinchonization
+cinchonize
+cinchonized
+cinchonizing
+cinchonology
+cinchophen
+cinchotine
+cinchotoxine
+cincinatti
+cincinnal
+Cincinnati
+cincinnati
+Cincinnatia
+Cincinnatian
+Cincinnatus
+cincinni
+cincinnus
+Cinclidae
+cinclides
+Cinclidotus
+cinclis
+Cinclus
+cinct
+cincture
+cinctured
+cinctures
+cincturing
+Cinda
+Cindee
+Cindelyn
+cinder
+cindered
+Cinderella
+cinderella
+cindering
+cinderlike
+cinderman
+cinderous
+cinders
+cindery
+Cindi
+Cindie
+Cindra
+Cindy
+Cindylou
+cine
+cine-
+cineangiocardiographic
+cineangiocardiography
+cineangiographic
+cineangiography
+cineast
+cineaste
+cineastes
+cineasts
+Cinebar
+cinecamera
+cinefaction
+cinefilm
+cinel
+Cinelli
+cinema
+cinemactic
+cinemagoer
+cinemagoers
+cinemas
+CinemaScope
+Cinemascope
+CinemaScopic
+cinematheque
+cinematheques
+cinematic
+cinematical
+cinematically
+cinematics
+cinematize
+cinematized
+cinematizing
+cinematograph
+cinematographer
+cinematographers
+cinematographic
+cinematographical
+cinematographically
+cinematographies
+cinematographist
+cinematography
+cinemelodrama
+cinemese
+cinemize
+cinemograph
+cinenchym
+cinenchyma
+cinenchymatous
+cinene
+cinenegative
+cineol
+cineole
+cineoles
+cineolic
+cineols
+cinephone
+cinephotomicrography
+cineplastics
+cineplasty
+cineraceous
+cineradiography
+Cinerama
+cinerama
+cinerararia
+Cineraria
+cineraria
+cinerarias
+cinerarium
+cinerary
+cineration
+cinerator
+cinerea
+cinereal
+cinereous
+cinerin
+cinerins
+cineritious
+cinerous
+cines
+cinevariety
+Cingalese
+cingalese
+cingle
+cingula
+cingular
+cingulate
+cingulated
+cingulectomies
+cingulectomy
+cingulum
+Cini
+ciniphes
+Cinna
+cinnabar
+cinnabaric
+cinnabarine
+cinnabars
+cinnamal
+cinnamaldehyde
+cinnamate
+cinnamein
+cinnamene
+cinnamenyl
+cinnamic
+Cinnamodendron
+cinnamol
+cinnamomic
+Cinnamomum
+Cinnamon
+cinnamon
+cinnamoned
+cinnamonic
+cinnamonlike
+cinnamonroot
+cinnamons
+cinnamonwood
+cinnamoyl
+cinnamyl
+cinnamylidene
+cinnamyls
+cinnolin
+cinnoline
+cinnyl
+cinofoil
+cinquain
+cinquains
+cinquanter
+cinque
+cinquecentism
+cinquecentist
+cinquecento
+cinquedea
+cinquefoil
+cinquefoiled
+cinquefoils
+cinquepace
+cinques
+cinque-spotted
+cinter
+cintre
+Cinura
+cinuran
+cinurous
+Cinyras
+Cinzano
+C.I.O.
+CIO
+Cioban
+Cioffred
+cion
+cionectomy
+cionitis
+cionocranial
+cionocranian
+cionoptosis
+cionorrhaphia
+cionotome
+cionotomy
+cions
+cioppino
+cioppinos
+CIP
+Cipango
+cipaye
+cipher
+cipherable
+cipherdom
+ciphered
+cipherer
+cipherhood
+ciphering
+ciphers
+ciphertext
+ciphertexts
+ciphonies
+ciphony
+cipo
+cipolin
+cipolins
+cipollino
+cippi
+cippus
+Ciprian
+Cipus
+cir
+cir.
+circ
+CIRCA
+circa
+circadian
+Circaea
+Circaeaceae
+Circaean
+Circaetus
+circar
+Circassia
+Circassian
+circassian
+Circassic
+Circe
+circe
+Circean
+Circensian
+circensian
+circinal
+circinate
+circinately
+circination
+Circini
+Circinus
+circinus
+circiter
+circle
+circle-branching
+circled
+circle-in
+circle-out
+circler
+circlers
+circles
+circle-shearing
+circle-squaring
+circlet
+circleting
+circlets
+Circleville
+circle-wise
+circlewise
+circline
+circling
+circling-in
+circling-out
+Circlorama
+circocele
+Circosta
+circovarian
+circs
+circue
+circuit
+circuitable
+circuital
+circuited
+circuiteer
+circuiter
+circuities
+circuiting
+circuition
+circuitman
+circuitmen
+circuitor
+circuitous
+circuitously
+circuitousness
+circuit-riding
+circuitries
+circuitry
+circuits
+circuituously
+circuity
+circulable
+circulant
+circular
+circular-cut
+circularisation
+circularise
+circularised
+circulariser
+circularising
+circularism
+circularities
+circularity
+circularization
+circularizations
+circularize
+circularized
+circularizer
+circularizers
+circularizes
+circularizing
+circular-knit
+circularly
+circularness
+circulars
+circularwise
+circulatable
+circulate
+circulated
+circulates
+circulating
+circulation
+circulations
+circulative
+circulator
+circulatories
+circulators
+circulatory
+circule
+circulet
+circuli
+circulin
+circulus
+circum
+circum-
+circumaction
+circumadjacent
+circumagitate
+circumagitation
+circumambages
+circumambagious
+circumambience
+circumambiencies
+circumambiency
+circumambient
+circumambiently
+circumambulate
+circumambulated
+circumambulates
+circumambulating
+circumambulation
+circumambulations
+circumambulator
+circumambulatory
+circumanal
+circumantarctic
+circumarctic
+Circum-arean
+circumarticular
+circumaviate
+circumaviation
+circumaviator
+circumaxial
+circumaxile
+circumaxillary
+circumbasal
+circumbendibus
+circumbendibuses
+circumboreal
+circumbuccal
+circumbulbar
+circumcallosal
+Circumcellion
+circumcellion
+circumcenter
+circumcentral
+circumcinct
+circumcincture
+circumcircle
+circumcise
+circumcised
+circumciser
+circumcises
+circumcising
+circumcision
+circumcisions
+circumcission
+circumclude
+circumclusion
+circumcolumnar
+circumcone
+circumconic
+circumcorneal
+circumcrescence
+circumcrescent
+Circum-cytherean
+circumdate
+circumdenudation
+circumdiction
+circumduce
+circumducing
+circumduct
+circumducted
+circumduction
+circumesophagal
+circumesophageal
+circumfer
+circumference
+circumferences
+circumferent
+circumferential
+circumferentially
+circumferentor
+circumflant
+circumflect
+circumflex
+circumflexes
+circumflexion
+circumfluence
+circumfluent
+circumfluous
+circumforaneous
+circumfulgent
+circumfuse
+circumfused
+circumfusile
+circumfusing
+circumfusion
+circumgenital
+circumgestation
+circumgyrate
+circumgyration
+circumgyratory
+circumhorizontal
+circumincession
+circuminsession
+circuminsular
+circumintestinal
+circumitineration
+circumjacence
+circumjacencies
+circumjacency
+circumjacent
+Circum-jovial
+circumjovial
+circumlental
+circumlitio
+circumlittoral
+circumlocute
+circumlocution
+circumlocutional
+circumlocutionary
+circumlocutionist
+circumlocutions
+circumlocutory
+circumlunar
+Circum-mercurial
+circum-meridian
+circummeridian
+circummeridional
+circummigrate
+circummigration
+circummundane
+circummure
+circummured
+circummuring
+circumnatant
+circumnavigable
+circumnavigate
+circumnavigated
+circumnavigates
+circumnavigating
+circumnavigation
+circumnavigations
+circumnavigator
+circumnavigatory
+Circum-neptunian
+circumneutral
+circumnuclear
+circumnutate
+circumnutated
+circumnutating
+circumnutation
+circumnutatory
+circumocular
+circumoesophagal
+circumoral
+circumorbital
+circumpacific
+circumpallial
+circumparallelogram
+circumpentagon
+circumplanetary
+circumplect
+circumplicate
+circumplication
+circumpolar
+circumpolygon
+circumpose
+circumposition
+circumquaque
+circumradii
+circumradius
+circumradiuses
+circumrenal
+circumrotate
+circumrotated
+circumrotating
+circumrotation
+circumrotatory
+circumsail
+Circum-saturnal
+Circum-saturnian
+circumsaturnian
+circumsciss
+circumscissile
+circumscribable
+circumscribe
+circumscribed
+circumscriber
+circumscribes
+circumscribing
+circumscript
+circumscription
+circumscriptions
+circumscriptive
+circumscriptively
+circumscriptly
+circumscrive
+circumsession
+circumsinous
+circumsolar
+circumspangle
+circumspatial
+circumspect
+circumspection
+circumspections
+circumspective
+circumspectively
+circumspectly
+circumspectness
+circumspheral
+circumsphere
+circumstance
+circumstanced
+circumstances
+circumstancing
+circumstant
+circumstantiability
+circumstantiable
+circumstantial
+circumstantialities
+circumstantiality
+circumstantially
+circumstantialness
+circumstantiate
+circumstantiated
+circumstantiates
+circumstantiating
+circumstantiation
+circumstantiations
+circumstellar
+circumtabular
+circumterraneous
+circumterrestrial
+circumtonsillar
+circumtropical
+circumumbilical
+circumundulate
+circumundulation
+Circum-uranian
+circumvallate
+circumvallated
+circumvallating
+circumvallation
+circumvascular
+circumvent
+circumventable
+circumvented
+circumventer
+circumventing
+circumvention
+circumventions
+circumventive
+circumventor
+circumvents
+circumvest
+circumviate
+circumvoisin
+circumvolant
+circumvolute
+circumvolution
+circumvolutory
+circumvolve
+circumvolved
+circumvolving
+circumzenithal
+circus
+circuses
+circusy
+circut
+circuted
+circuting
+circuts
+cire
+Cirenaica
+Cirencester
+cire-perdue
+cires
+Ciri
+Cirilla
+Cirillo
+Cirilo
+cirl
+cirmcumferential
+Ciro
+Cirone
+cirque
+cirque-couchant
+cirques
+cirr-
+cirrate
+cirrated
+Cirratulidae
+Cirratulus
+cirrh-
+Cirrhopetalum
+cirrhopod
+cirrhose
+cirrhosed
+cirrhoses
+cirrhosis
+cirrhotic
+cirrhous
+cirrhus
+Cirri
+cirri
+cirribranch
+cirriferous
+cirriform
+cirrigerous
+cirrigrade
+cirriped
+cirripede
+Cirripedia
+cirripedial
+cirripeds
+CIRRIS
+cirro-
+cirro-cumular
+cirrocumular
+cirro-cumulative
+cirrocumulative
+cirro-cumulous
+cirrocumulous
+cirro-cumulus
+cirrocumulus
+cirro-fillum
+cirro-filum
+cirrolite
+cirro-macula
+cirro-nebula
+cirropodous
+cirrose
+cirrosely
+cirro-stome
+cirrostome
+Cirrostomi
+cirro-strative
+cirrostrative
+cirro-stratous
+cirro-stratus
+cirrostratus
+cirrous
+cirro-velum
+cirrus
+cirsectomies
+cirsectomy
+Cirsium
+cirsocele
+cirsoid
+cirsomphalos
+cirsophthalmia
+cirsotome
+cirsotomies
+cirsotomy
+cirterion
+ciruela
+cirurgian
+ciruses
+CIS
+Cis
+cis
+cis-
+Cisalpine
+cisalpine
+Cisalpinism
+cisandine
+cisatlantic
+CISC
+Ciscaucasia
+Cisco
+cisco
+ciscoes
+ciscos
+cise
+ciseaux
+cisele
+ciseleur
+ciseleurs
+cis-Elizabethan
+ciselure
+ciselures
+cis-elysian
+cisgangetic
+cising
+cisium
+cisjurane
+Ciskei
+cisleithan
+cislunar
+cismarine
+Cismontane
+cismontane
+Cismontanism
+Cisne
+cisoceanic
+cispadane
+cisplatine
+cispontine
+Cis-reformation
+cisrhenane
+Cissaea
+Cissampelos
+Cissie
+Cissiee
+cissies
+cissing
+cissoid
+cissoidal
+cissoids
+Cissus
+Cissy
+cissy
+cist
+cista
+Cistaceae
+cistaceous
+cistae
+cisted
+Cistercian
+cistercian
+Cistercianism
+cistern
+cisterna
+cisternae
+cisternal
+cisterns
+cistic
+cistophori
+cistophoric
+cistophorus
+cistori
+cis-trans
+cistron
+cistronic
+cistrons
+cists
+Cistudo
+Cistus
+cistus
+cistuses
+cistvaen
+Ciszek
+CIT
+cit
+cit.
+Cita
+citable
+citadel
+citadels
+cital
+Citarella
+Citation
+citation
+citational
+citations
+citator
+citators
+citatory
+citatum
+cite
+citeable
+cited
+citee
+Citellus
+citer
+citers
+cites
+citess
+Cithaeron
+Cithaeronian
+cithara
+citharas
+Citharexylum
+citharist
+citharista
+citharoedi
+citharoedic
+citharoedus
+cither
+cithern
+citherns
+cithers
+cithren
+cithrens
+citicism
+citicorp
+citied
+cities
+citification
+citified
+citifies
+citify
+citifying
+Citigradae
+citigrade
+citing
+citizen
+citizendom
+citizeness
+citizenhood
+citizenish
+citizenism
+citizenize
+citizenized
+citizenizing
+citizenly
+citizenries
+citizenry
+citizens
+citizenship
+citizenships
+Citlaltepetl
+Citlaltpetl
+citola
+citolas
+citole
+citoler
+citolers
+citoles
+citoyen
+citoyenne
+citoyens
+citr-
+Citra
+citra-
+citraconate
+citraconic
+citral
+citrals
+citramide
+citramontane
+citrange
+citrangeade
+citrate
+citrated
+citrates
+citrean
+citrene
+citreous
+citric
+citriculture
+citriculturist
+citril
+citrin
+citrination
+citrine
+citrines
+citrinin
+citrinins
+citrinous
+citrins
+citrocola
+Citroen
+citrometer
+Citromyces
+Citron
+citron
+citronade
+citronalis
+citron-colored
+citronella
+citronellal
+Citronelle
+citronelle
+citronellic
+citronellol
+citronin
+citronize
+citrons
+citronwood
+citron-yellow
+Citropsis
+citropten
+citrous
+citrul
+citrullin
+citrulline
+Citrullus
+Citrus
+citrus
+citruses
+citrylidene
+cittern
+citternhead
+citterns
+Cittticano
+citua
+City
+city
+city-born
+city-bound
+city-bred
+citybuster
+citycism
+city-commonwealth
+citydom
+cityfied
+cityfolk
+cityful
+city-god
+cityish
+cityless
+citylike
+cityness
+citynesses
+cityscape
+cityscapes
+city-state
+cityward
+citywards
+city-wide
+citywide
+CIU
+Ciudad
+ciudad
+civ
+civ.
+cive
+civet
+civet-cat
+civetlike
+civetone
+civets
+Civia
+civic
+civical
+civically
+civicism
+civicisms
+civic-minded
+civic-mindedly
+civic-mindedness
+civics
+civie
+civies
+civil
+civile
+civiler
+civilest
+civilian
+civilianization
+civilianize
+civilians
+civilisable
+civilisation
+civilisational
+civilisations
+civilisatory
+civilise
+civilised
+civilisedness
+civiliser
+civilises
+civilising
+civilist
+civilite
+civilities
+civility
+civilizable
+civilizade
+civilization
+civilizational
+civilizationally
+civilizations
+civilizatory
+civilize
+civilized
+civilizedness
+civilizee
+civilizer
+civilizers
+civilizes
+civilizing
+civil-law
+civilly
+civilness
+civil-rights
+civism
+civisms
+Civitan
+civitas
+civite
+civory
+civvies
+civvy
+civy
+ciwies
+cixiid
+Cixiidae
+Cixo
+cizar
+cize
+CJ
+ck
+ckw
+C/L
+CL
+Cl
+cl
+cl.
+clabber
+clabbered
+clabbering
+clabbers
+clabbery
+clablaria
+Clabo
+clabularia
+clabularium
+clach
+clachan
+clachans
+clachs
+clack
+Clackama
+Clackamas
+clackdish
+clacked
+clacker
+clackers
+clacket
+clackety
+clacking
+Clackmannan
+Clackmannanshire
+clacks
+Clacton
+Clactonian
+clactonian
+clad
+cladanthous
+cladautoicous
+cladding
+claddings
+clade
+cladine
+cladistic
+clado-
+cladocarpous
+Cladocera
+cladoceran
+cladocerans
+cladocerous
+cladode
+cladodes
+cladodial
+cladodium
+cladodont
+cladodontid
+Cladodontidae
+Cladodus
+cladogenesis
+cladogenetic
+cladogenetically
+cladogenous
+Cladonia
+Cladoniaceae
+cladoniaceous
+cladonioid
+Cladophora
+cladophora
+Cladophoraceae
+cladophoraceous
+Cladophorales
+cladophyll
+cladophyllum
+cladoptosis
+cladose
+Cladoselache
+Cladoselachea
+cladoselachian
+Cladoselachidae
+cladosiphonic
+Cladosporium
+Cladothrix
+Cladrastis
+clads
+cladus
+claes
+Claflin
+clag
+clagged
+clagging
+claggum
+claggy
+clags
+Claiborn
+Claiborne
+Claibornian
+claik
+claim
+claimable
+claimant
+claimants
+claimed
+claimer
+claimers
+claiming
+claim-jumper
+claim-jumping
+claimless
+claims
+claimsman
+claimsmen
+Clair
+clair
+clairaudience
+clairaudient
+clairaudiently
+Clairaut
+clairce
+Claire
+claire
+clairecole
+clairecolle
+claires
+Clairfield
+clair-obscure
+clairschach
+clairschacher
+clairseach
+clairseacher
+clairsentience
+clairsentient
+Clairton
+clairvoyance
+clairvoyances
+clairvoyancies
+clairvoyancy
+clairvoyant
+clairvoyantly
+clairvoyants
+claith
+claithes
+claiver
+clake
+Clallam
+clam
+Claman
+clamant
+clamantly
+clamaroo
+clamation
+clamative
+Clamatores
+clamatorial
+clamatory
+clamb
+clambake
+clambakes
+clamber
+clambered
+clamberer
+clambering
+clambers
+clamcracker
+clame
+clamehewit
+clamer
+clamflat
+clamjamfery
+clamjamfry
+clamjamphrie
+clamlike
+clammed
+clammer
+clammers
+clammersome
+clammier
+clammiest
+clammily
+clamminess
+clamminesses
+clamming
+clammish
+clammy
+clammyweed
+clamor
+clamored
+clamorer
+clamorers
+clamoring
+clamorist
+clamorous
+clamorously
+clamorousness
+clamors
+clamorsome
+clamour
+clamoured
+clamourer
+clamouring
+clamourist
+clamourous
+clamours
+clamoursome
+clamp
+clampdown
+clamped
+clamper
+clampers
+clamping
+clamps
+clams
+clamshell
+clamshells
+clamworm
+clamworms
+clan
+Clance
+clancular
+clancularly
+Clancy
+clandestine
+clandestinely
+clandestineness
+clandestinity
+clanfellow
+clang
+clanged
+clanger
+clangers
+clangful
+clanging
+clangingly
+clangor
+clangored
+clangoring
+clangorous
+clangorously
+clangorousness
+clangors
+clangour
+clangoured
+clangouring
+clangours
+clangs
+Clangula
+clanjamfray
+clanjamfrey
+clanjamfrie
+clanjamphrey
+clank
+clanked
+clankety
+clanking
+clankingly
+clankingness
+clankless
+clanks
+clankum
+clanless
+clanned
+clanning
+clannish
+clannishly
+clannishness
+clannishnesses
+clans
+clansfolk
+clanship
+clansman
+clansmanship
+clansmen
+clanswoman
+clanswomen
+Clanton
+Claosaurus
+clap
+clapboard
+clapboarding
+clapboards
+clapbread
+clapcake
+clapdish
+clape
+Clapeyron
+clapholt
+clapmatch
+clapnest
+clap-net
+clapnet
+clapotis
+Clapp
+clappe
+clapped
+Clapper
+clapper
+clapperboard
+clapper-claw
+clapperclaw
+clapperclawer
+clapperdudgeon
+clappered
+clappering
+clappermaclaw
+clappers
+clapping
+claps
+clap-stick
+clapstick
+clapt
+Clapton
+claptrap
+claptraps
+clapwort
+claque
+claquer
+claquers
+claques
+claqueur
+claqueurs
+clar
+Clara
+clarabella
+Clarabelle
+clarain
+Claramae
+Clarance
+Clarcona
+Clardy
+Clare
+clare
+Claremont
+Claremore
+Clarence
+clarence
+clarences
+Clarenceux
+clarenceux
+Clarenceuxship
+Clarencieux
+Clarendon
+clarendon
+clare-obscure
+clares
+Claresta
+claret
+Clareta
+Claretian
+claretian
+clarets
+Claretta
+Clarette
+Clarey
+Clarhe
+Clari
+Claribel
+claribel
+claribella
+Clarice
+clarichord
+Clarie
+claries
+clarifiable
+clarifiant
+clarificant
+clarification
+clarifications
+clarified
+clarifier
+clarifiers
+clarifies
+clarify
+clarifying
+clarigate
+clarigation
+clarigold
+clarin
+clarina
+Clarinda
+Clarine
+clarine
+clarinet
+clarinetist
+clarinetists
+clarinets
+clarinettist
+clarinettists
+Clarington
+clarini
+clarino
+clarinos
+Clarion
+clarion
+clarioned
+clarionet
+clarioning
+clarions
+clarion-voiced
+Clarisa
+Clarise
+Clarissa
+Clarisse
+clarissimo
+Clarist
+Clarita
+clarities
+claritude
+clarity
+Clark
+clark
+Clarkdale
+Clarke
+clarke
+Clarkedale
+clarkeite
+clarkeites
+Clarkesville
+Clarkfield
+Clarkia
+clarkia
+clarkias
+Clarkin
+Clarks
+Clarksboro
+Clarksburg
+Clarksdale
+Clarkson
+Clarkston
+Clarksville
+clarksville
+Clarkton
+claro
+claroes
+Claromontane
+Claromontanus
+claros
+clarre
+clarsach
+clarseach
+clarsech
+clarseth
+clarshech
+clart
+clartier
+clartiest
+clarts
+clarty
+Clary
+clary
+Claryville
+-clase
+clash
+clashed
+clashee
+clasher
+clashers
+clashes
+clashing
+clashingly
+clashy
+clasmatocyte
+clasmatocytic
+clasmatosis
+CLASP
+clasp
+clasped
+clasper
+claspers
+clasping
+clasping-leaved
+clasps
+claspt
+CLASS
+class
+class.
+classable
+classbook
+class-cleavage
+class-conscious
+classed
+classer
+classers
+classes
+classfellow
+classic
+classical
+classicalism
+classicalist
+classicalities
+classicality
+classicalize
+classically
+classicalness
+classicise
+classicised
+classicising
+classicism
+classicisms
+classicist
+classicistic
+classicists
+classicize
+classicized
+classicizing
+classico
+classico-
+classicolatry
+classico-lombardic
+classics
+classier
+classiest
+classifiable
+classific
+classifically
+classification
+classificational
+classifications
+classificator
+classificatory
+classified
+classifier
+classifiers
+classifies
+classify
+classifying
+classily
+classiness
+classing
+classis
+classism
+classisms
+classist
+classists
+classless
+classlessness
+classman
+classmanship
+classmate
+classmates
+classmen
+classroom
+classrooms
+classwise
+classwork
+classy
+clast
+clastic
+clastics
+clasts
+clat
+clatch
+clatchy
+Clathraceae
+clathraceous
+Clathraria
+clathrarian
+clathrate
+Clathrina
+Clathrinidae
+clathroid
+clathrose
+clathrulate
+Clathrus
+Clatonia
+Clatskanie
+Clatsop
+clatter
+clattered
+clatterer
+clattering
+clatteringly
+clatters
+clattertrap
+clattertraps
+clattery
+clatty
+clauber
+claucht
+Claud
+Clauddetta
+Claude
+Claudel
+Claudell
+Claudelle
+claudent
+claudetite
+claudetites
+Claudetta
+Claudette
+Claudia
+Claudian
+Claudianus
+claudicant
+claudicate
+claudication
+Claudie
+Claudina
+Claudine
+Claudio
+Claudius
+claudius
+Claudville
+Claudy
+claught
+claughted
+claughting
+claughts
+Claunch
+Claus
+claus
+clausal
+clause
+Clausen
+clauses
+Clausewitz
+Clausilia
+Clausiliidae
+Clausius
+clauster
+clausthalite
+claustra
+claustral
+claustration
+claustrophilia
+claustrophobe
+claustrophobia
+claustrophobiac
+claustrophobias
+claustrophobic
+claustrum
+clausula
+clausulae
+clausular
+clausule
+clausum
+clausure
+claut
+Clava
+clava
+clavacin
+clavae
+claval
+Clavaria
+Clavariaceae
+clavariaceous
+clavate
+clavated
+clavately
+clavatin
+clavation
+clave
+clavecin
+clavecinist
+clavel
+clavelization
+clavelize
+clavellate
+clavellated
+claver
+Claverack
+clavered
+clavering
+clavers
+claves
+clavi
+clavial
+claviature
+clavicembali
+clavicembalist
+clavicembalo
+Claviceps
+clavichord
+clavichordist
+clavichordists
+clavichords
+clavicithern
+clavicittern
+clavicle
+clavicles
+clavicor
+clavicorn
+clavicornate
+Clavicornes
+Clavicornia
+clavicotomy
+clavicular
+clavicularium
+claviculate
+claviculo-humeral
+claviculus
+clavicylinder
+clavicymbal
+clavicytheria
+clavicytherium
+clavicythetheria
+clavier
+clavierist
+clavieristic
+clavierists
+claviers
+claviform
+claviger
+clavigerous
+claviharp
+clavilux
+claviol
+claviole
+clavipectoral
+clavis
+clavises
+Clavius
+clavodeltoid
+clavodeltoideus
+clavola
+clavolae
+clavolet
+clavus
+clavuvi
+clavy
+claw
+clawback
+clawed
+clawer
+clawers
+claw-footed
+clawhammer
+clawing
+clawk
+clawker
+clawless
+clawlike
+claws
+clawsick
+Clawson
+claw-tailed
+claxon
+claxons
+Claxton
+Clay
+clay
+claybank
+claybanks
+Clayberg
+Clayborn
+Clayborne
+clay-bound
+Claybourne
+claybrained
+clay-built
+clay-cold
+clay-colored
+clay-digging
+clay-dimmed
+clay-drying
+claye
+clayed
+clayen
+clayer
+clayey
+clay-faced
+clay-filtering
+clay-forming
+clay-grinding
+Clayhole
+clayier
+clayiest
+clayiness
+claying
+clayish
+claylike
+clay-lined
+clayman
+clay-mixing
+Claymont
+claymore
+claymores
+Clayoquot
+claypan
+claypans
+Claypool
+clays
+Claysburg
+Clayson
+claystone
+Claysville
+clay-tempering
+Clayton
+Claytonia
+claytonia
+Claytonville
+clayver-grass
+Clayville
+clayware
+claywares
+clay-washing
+clayweed
+clay-wrapped
+CLDN
+-cle
+Clea
+cleach
+clead
+cleaded
+cleading
+cleam
+cleamer
+clean
+clean-
+cleanable
+clean-appearing
+clean-armed
+clean-boled
+clean-bred
+clean-built
+clean-complexioned
+clean-cut
+cleaned
+cleaner
+cleaner-off
+cleaner-out
+cleaners
+cleaner-up
+cleanest
+clean-faced
+clean-feeding
+clean-fingered
+clean-grained
+clean-handed
+cleanhanded
+cleanhandedness
+cleanhearted
+cleaning
+cleanings
+cleanish
+clean-legged
+cleanlier
+cleanliest
+cleanlily
+clean-limbed
+cleanliness
+cleanlinesses
+clean-lived
+clean-living
+clean-looking
+cleanly
+clean-made
+clean-minded
+clean-moving
+cleanness
+cleannesses
+cleanout
+cleans
+cleansable
+clean-sailing
+clean-saying
+cleanse
+cleansed
+clean-seeming
+cleanser
+cleansers
+cleanses
+clean-shanked
+clean-shaped
+clean-shaved
+clean-shaven
+cleansing
+clean-skin
+cleanskin
+clean-skinned
+cleanskins
+clean-smelling
+clean-souled
+clean-speaking
+clean-sweeping
+Cleanth
+Cleantha
+Cleanthes
+clean-thinking
+clean-timbered
+cleanup
+cleanups
+clean-washed
+clear
+clearable
+clearage
+clearance
+clearances
+clear-boled
+Clearbrook
+Clearchus
+clear-cole
+clearcole
+clear-complexioned
+clear-crested
+clear-cut
+clear-cutness
+clear-cutting
+cleared
+clearedness
+clearer
+clearers
+clearest
+clear-eye
+clear-eyed
+clear-eyes
+clear-faced
+clear-featured
+Clearfield
+clear-headed
+clearheaded
+clearheadedly
+clearheadedness
+clearhearted
+clearing
+clearinghouse
+clearinghouses
+clearings
+clearish
+clearly
+clear-minded
+clearminded
+clear-mindedness
+Clearmont
+clearness
+clearnesses
+clear-obscure
+clears
+clear-sighted
+clearsighted
+clear-sightedly
+clear-sightedness
+clearsightedness
+Clearsite
+clear-skinned
+clearskins
+clear-spirited
+clear-starch
+clearstarch
+clear-starcher
+clearstarcher
+clear-stemmed
+clearstoried
+clearstories
+clear-story
+clearstory
+clear-sunned
+clear-throated
+clear-tinted
+clear-toned
+clear-up
+Clearview
+Clearville
+clear-visioned
+clear-voiced
+clear-walled
+Clearwater
+clearwater
+clearway
+clearweed
+clearwing
+clear-witted
+Cleary
+Cleasta
+cleat
+cleated
+cleating
+Cleaton
+cleats
+cleavability
+cleavable
+cleavage
+cleavages
+Cleave
+cleave
+cleaved
+cleaveful
+cleavelandite
+cleaver
+cleavers
+cleaverwort
+Cleaves
+cleaves
+cleaving
+cleavingly
+Cleavland
+Cleburne
+cleche
+clechee
+clechy
+cleck
+cled
+cledde
+cledge
+cledgy
+cledonism
+clee
+cleech
+cleek
+cleeked
+cleeking
+cleeks
+cleeky
+Cleelum
+Cleethorpes
+CLEF
+clef
+clefs
+cleft
+clefted
+cleft-footed
+cleft-graft
+clefting
+clefts
+cleg
+Cleghorn
+CLEI
+cleidagra
+cleidarthritis
+cleidocostal
+cleidocranial
+cleidohyoid
+cleidoic
+cleidomancy
+cleido-mastoid
+cleidomastoid
+cleido-occipital
+cleidorrhexis
+cleidoscapular
+cleidosternal
+cleidotomy
+cleidotripsy
+Clein
+Cleisthenes
+cleistocarp
+cleistocarpous
+cleistogamic
+cleistogamically
+cleistogamous
+cleistogamously
+cleistogamy
+cleistogene
+cleistogenous
+cleistogeny
+cleistotcia
+cleistothecia
+cleistothecium
+Cleistothecopsis
+cleithral
+cleithrum
+Clela
+Cleland
+Clellan
+Clem
+clem
+Clematis
+clematis
+clematises
+clematite
+Clemclemalats
+Clemen
+Clemence
+clemence
+Clemenceau
+clemencies
+Clemency
+clemency
+Clemens
+Clement
+clement
+Clementas
+Clemente
+Clementi
+Clementia
+Clementina
+Clementine
+clementine
+Clementis
+Clementius
+clemently
+clementness
+Clementon
+Clements
+clements
+clemmed
+Clemmie
+clemming
+Clemmons
+Clemmy
+Clemon
+Clemons
+Clemson
+clench
+clench-built
+clenched
+clencher
+clenchers
+clenches
+clenching
+Clendenin
+Cleo
+Cleobis
+Cleobulus
+Cleodaeus
+Cleodal
+Cleodel
+Cleodell
+cleoid
+Cleome
+cleome
+cleomes
+Cleon
+Cleone
+Cleopatra
+cleopatra
+Cleopatre
+Cleostratus
+Cleota
+Cleothera
+clep
+clepe
+cleped
+clepes
+cleping
+Clepsine
+clepsydra
+clepsydrae
+clepsydras
+clept
+cleptobioses
+cleptobiosis
+cleptobiotic
+cleptomania
+cleptomaniac
+Clerc
+Clercq
+Clere
+Cleres
+clerestoried
+clerestories
+clerestory
+clerete
+clergess
+clergies
+clergion
+clergy
+clergyable
+clergylike
+clergyman
+clergymen
+clergywoman
+clergywomen
+cleric
+clerical
+clericalism
+clericalist
+clericalists
+clericality
+clericalize
+clerically
+clericals
+clericate
+clericature
+clericism
+clericity
+clerico-
+clerico-political
+clerics
+clericum
+clerid
+Cleridae
+clerids
+clerihew
+clerihews
+clerisies
+Clerissa
+clerisy
+Clerk
+clerk
+clerkage
+clerk-ale
+clerkdom
+clerkdoms
+clerked
+clerkery
+clerkess
+clerkhood
+clerking
+clerkish
+clerkless
+clerklier
+clerkliest
+clerklike
+clerkliness
+clerkly
+clerks
+clerkship
+clerkships
+Clermont
+Clermont-Ferrand
+clernly
+clero-
+Clerodendron
+cleromancy
+cleronomy
+clerstory
+cleruch
+cleruchial
+cleruchic
+cleruchies
+cleruchy
+clerum
+Clerus
+Clervaux
+Cleta
+cletch
+Clete
+Clethra
+clethra
+Clethraceae
+clethraceous
+clethrionomys
+Cleti
+Cletis
+Cletus
+cleuch
+cleuk
+cleuks
+Cleva
+Cleve
+cleve
+cleveite
+cleveites
+Cleveland
+cleveland
+Clevenger
+clever
+cleverality
+clever-clever
+Cleverdale
+cleverer
+cleverest
+clever-handed
+cleverish
+cleverishly
+cleverly
+cleverness
+clevernesses
+Cleves
+Clevey
+Clevie
+clevis
+clevises
+clew
+clewed
+clewgarnet
+clewing
+Clewiston
+clews
+CLI
+cli
+cliack
+clianthus
+clich
+cliche
+cliched
+cliche-ridden
+cliches
+Clichy
+Clichy-la-Garenne
+click
+click-clack
+clicked
+clicker
+clickers
+clicket
+clickety-clack
+clickety-click
+clicking
+clickless
+clicks
+clicky
+CLID
+Clidastes
+Clide
+Clie
+cliency
+client
+clientage
+cliental
+cliented
+clientelage
+clientele
+clienteles
+clientless
+clientry
+clients
+clientship
+Cliff
+cliff
+cliff-bound
+cliff-chafed
+cliffed
+Cliffes
+cliff-girdled
+cliffhang
+cliff-hanger
+cliffhanger
+cliffhangers
+cliff-hanging
+cliffhanging
+cliffier
+cliffiest
+cliffing
+cliffless
+clifflet
+clifflike
+cliff-marked
+Clifford
+cliffs
+cliffside
+cliffsman
+cliffweed
+Cliffwood
+cliff-worn
+cliffy
+Clift
+clift
+Clifton
+Cliftonia
+cliftonite
+clifts
+Clifty
+clifty
+Clim
+clima
+Climaciaceae
+climaciaceous
+Climacium
+climacter
+climacterial
+climacteric
+climacterical
+climacterically
+climacterics
+climactery
+climactic
+climactical
+climactically
+climacus
+climant
+climata
+climatal
+climatarchic
+climate
+climates
+climath
+climatic
+climatical
+climatically
+Climatius
+climatize
+climatographical
+climatography
+climatologic
+climatological
+climatologically
+climatologist
+climatologists
+climatology
+climatometer
+climatotherapeutics
+climatotherapies
+climatotherapy
+climature
+climax
+climaxed
+climaxes
+climaxing
+climb
+climbable
+climb-down
+climbed
+climber
+climbers
+climbing
+climbingfish
+climbingfishes
+climbs
+clime
+climes
+climograph
+clin
+clin-
+clinah
+-clinal
+clinal
+clinally
+clinamen
+clinamina
+clinandrdria
+clinandria
+clinandrium
+clinanthia
+clinanthium
+clinch
+clinch-built
+Clinchco
+clinched
+clincher
+clincher-built
+clinchers
+clinches
+Clinchfield
+clinching
+clinchingly
+clinchingness
+clinchpoop
+-cline
+Cline
+cline
+clines
+cling
+Clingan
+clinged
+clinger
+clingers
+clingfish
+clingfishes
+clingier
+clingiest
+clinginess
+clinging
+clingingly
+clingingness
+cling-rascal
+clings
+clingstone
+clingstones
+clingy
+clinia
+-clinic
+clinic
+clinical
+clinically
+clinician
+clinicians
+clinicist
+clinicopathologic
+clinicopathological
+clinicopathologically
+clinics
+clinid
+Clinis
+clinium
+clink
+clinkant
+clink-clank
+clinked
+clinker
+clinker-built
+clinkered
+clinkerer
+clinkering
+clinkers
+clinkery
+clinkety-clink
+clinking
+clinks
+clinkstone
+clinkum
+clino-
+clinoaxis
+clinocephalic
+clinocephalism
+clinocephalous
+clinocephalus
+clinocephaly
+clinochlore
+clinoclase
+clinoclasite
+clinodiagonal
+clinodomatic
+clinodome
+clinograph
+clinographic
+clinohedral
+clinohedrite
+clinohumite
+clinoid
+clinologic
+clinology
+clinometer
+clinometria
+clinometric
+clinometrical
+clinometry
+clinophobia
+clinopinacoid
+clinopinacoidal
+Clinopodium
+clinoprism
+clinopyramid
+clinopyroxene
+clinorhombic
+clinospore
+clinostat
+-clinous
+clinquant
+Clint
+clint
+clinting
+Clintock
+Clinton
+Clintondale
+Clintonia
+clintonia
+clintonite
+Clintonville
+clints
+Clintwood
+clinty
+Clio
+clio
+Cliona
+Clione
+clip
+clipboard
+clipboards
+clip-clop
+clip-edged
+clipei
+clipeus
+clip-fed
+clip-marked
+clip-on
+clippable
+Clippard
+clipped
+clipper
+clipper-built
+clipperman
+clippers
+clippety-clop
+clippie
+clipping
+clippingly
+clippings
+clips
+clipse
+clipsheet
+clipsheets
+clipsome
+clipt
+clip-winged
+clique
+cliqued
+cliquedom
+cliqueier
+cliqueiest
+cliqueless
+cliques
+cliquey
+cliqueyness
+cliquier
+cliquiest
+cliquing
+cliquish
+cliquishly
+cliquishness
+cliquism
+cliquy
+cliseometer
+clisere
+clish-clash
+clish-ma-claver
+clishmaclaver
+Clisiocampa
+Clisthenes
+clistocarp
+clistocarpous
+Clistogastra
+clistothcia
+clistothecia
+clistothecium
+clit
+clitch
+Clite
+clite
+clitella
+clitellar
+clitelliferous
+clitelline
+clitellum
+clitellus
+clites
+clithe
+Clitherall
+clithral
+clithridiate
+clitia
+clitic
+clition
+Clitocybe
+clitoral
+Clitoria
+clitoric
+clitoridauxe
+clitoridean
+clitoridectomies
+clitoridectomy
+clitoriditis
+clitoridotomy
+clitoris
+clitorises
+clitorism
+clitoritis
+clitoromania
+clitoromaniac
+clitoromaniacal
+clitter
+clitterclatter
+Clitus
+cliv
+clival
+Clive
+clive
+cliver
+clivers
+Clivia
+clivia
+clivias
+clivis
+clivises
+clivus
+clk
+CLLI
+Cllr
+CLNP
+Clo
+clo
+cloaca
+cloacae
+cloacal
+cloacaline
+cloacas
+cloacean
+cloacinal
+cloacinean
+cloacitis
+cloak
+cloakage
+cloak-and-dagger
+cloak-and-suiter
+cloak-and-sword
+cloaked
+cloakedly
+cloak-fashion
+cloaking
+cloakless
+cloaklet
+cloakmaker
+cloakmaking
+cloak-room
+cloakroom
+cloakrooms
+cloaks
+cloakwise
+cloam
+cloamen
+cloamer
+Cloanthus
+clobber
+clobbered
+clobberer
+clobbering
+clobbers
+clochan
+clochard
+clochards
+cloche
+clocher
+cloches
+clochette
+clock
+clockbird
+clockcase
+clocked
+clocker
+clockers
+clockface
+clock-hour
+clockhouse
+clocking
+clockings
+clockkeeper
+clockless
+clocklike
+clockmaker
+clock-making
+clockmaking
+clock-minded
+clockmutch
+clockroom
+clocks
+clocksmith
+Clockville
+clock-watcher
+clockwatcher
+clock-watching
+clockwise
+clock-work
+clockwork
+clockworked
+clockworks
+clod
+clodbreaker
+clod-brown
+clodded
+clodder
+cloddier
+cloddiest
+cloddily
+cloddiness
+clodding
+cloddish
+cloddishly
+cloddishness
+cloddy
+clodhead
+clod-hopper
+clodhopper
+clodhopperish
+clodhoppers
+clodhopping
+clodknocker
+clodlet
+clodlike
+clod-pate
+clodpate
+clodpated
+clodpates
+clodpole
+clodpoles
+clod-poll
+clodpoll
+clodpolls
+clods
+clod-tongued
+Cloe
+Cloelia
+cloes
+Cloete
+clof
+cloff
+clofibrate
+clog
+clogdogdo
+clogged
+clogger
+cloggier
+cloggiest
+cloggily
+clogginess
+clogging
+cloggy
+cloghad
+cloghaun
+cloghead
+cloglike
+clogmaker
+clogmaking
+clogs
+clogwheel
+clogwood
+clogwyn
+cloine
+cloiochoanitic
+Clois
+cloison
+cloisonless
+cloisonn
+cloisonne
+cloisonnism
+Cloisonnisme
+Cloisonnist
+cloister
+cloisteral
+cloistered
+cloisterer
+cloistering
+cloisterless
+cloisterlike
+cloisterliness
+cloisterly
+cloisters
+cloisterwise
+cloistral
+cloistress
+cloit
+cloke
+clokies
+cloky
+clomb
+clomben
+clomiphene
+clomp
+clomped
+clomping
+clomps
+clon
+clonal
+clonally
+clone
+cloned
+cloner
+cloners
+clones
+clong
+clonic
+clonicity
+clonicotonic
+cloning
+clonings
+clonism
+clonisms
+clonk
+clonked
+clonking
+clonks
+clonorchiasis
+Clonorchis
+clonos
+Clonothrix
+clons
+Clontarf
+clonus
+clonuses
+cloof
+cloop
+cloot
+clootie
+Cloots
+cloots
+clop
+clop-clop
+clopped
+clopping
+clops
+Clopton
+cloque
+cloques
+Cloquet
+cloragen
+clorargyrite
+clorinator
+Clorinda
+Clorinde
+cloriodid
+Cloris
+Clorox
+CLOS
+clos
+closable
+Close
+close
+closeable
+close-annealed
+close-at-hand
+close-banded
+close-barred
+close-bitten
+close-bodied
+close-bred
+close-buttoned
+close-by
+close-clad
+close-clapped
+close-clipped
+close-coifed
+close-compacted
+close-connected
+close-couched
+close-coupled
+close-cropped
+closecross
+close-curled
+close-curtained
+close-cut
+closed
+closed-circuit
+closed-coil
+closed-door
+closed-end
+closed-in
+closed-minded
+closed-out
+closedown
+close-drawn
+close-eared
+close-fertilization
+close-fertilize
+close-fibered
+close-fights
+close-fisted
+closefisted
+closefistedly
+closefistedness
+close-fitting
+closefitting
+close-gleaning
+close-grain
+close-grained
+close-grated
+close-handed
+closehanded
+close-haul
+close-hauled
+closehauled
+close-headed
+closehearted
+close-herd
+close-hooded
+close-in
+close-jointed
+close-kept
+close-knit
+close-latticed
+close-legged
+close-lipped
+closelipped
+closely
+close-lying
+close-meshed
+close-minded
+closemouth
+close-mouthed
+closemouthed
+closen
+closeness
+closenesses
+close-out
+closeout
+closeouts
+close-packed
+close-partnered
+close-pent
+close-piled
+close-pressed
+closer
+close-reef
+close-reefed
+close-ribbed
+close-rounded
+closers
+closes
+close-set
+close-shanked
+close-shaven
+close-shut
+close-soled
+closest
+close-standing
+close-sticking
+close-stool
+closestool
+closet
+closeted
+close-tempered
+close-textured
+closetful
+close-thinking
+closeting
+close-tongued
+closets
+close-up
+closeup
+closeups
+close-visaged
+close-winded
+closewing
+close-woven
+close-written
+closh
+closing
+closings
+closish
+closkey
+closky
+Closplint
+Closter
+closter
+Closterium
+clostridia
+clostridial
+clostridian
+Clostridium
+clostridium
+closure
+closured
+closures
+closuring
+clot
+clot-bird
+clot-bur
+clotbur
+clote
+cloth
+cloth-backed
+clothbound
+cloth-calendering
+cloth-covered
+cloth-cropping
+cloth-cutting
+cloth-drying
+cloth-dyeing
+clothe
+cloth-eared
+clothed
+clothes
+clothesbag
+clothesbasket
+clothesbrush
+clothes-conscious
+clothes-consciousness
+clothes-drier
+clothes-drying
+clotheshorse
+clotheshorses
+clothesless
+clothesline
+clotheslines
+clothesman
+clothesmen
+clothesmonger
+clothes-peg
+clothespin
+clothespins
+clothes-press
+clothespress
+clothespresses
+clothes-washing
+clothesyard
+cloth-faced
+cloth-finishing
+cloth-folding
+clothier
+clothiers
+clothify
+Clothilda
+Clothilde
+clothing
+clothings
+cloth-inserted
+cloth-laying
+clothlike
+cloth-lined
+cloth-maker
+clothmaker
+clothmaking
+cloth-measuring
+Clotho
+clotho
+cloth-of-gold
+cloths
+cloth-shearing
+cloth-shrinking
+cloth-smoothing
+cloth-sponger
+cloth-spreading
+cloth-stamping
+cloth-testing
+cloth-weaving
+cloth-winding
+clothworker
+clothy
+cloth-yard
+Clotilda
+Clotilde
+clot-poll
+clots
+clottage
+clotted
+clottedness
+clotter
+clotting
+clotty
+cloture
+clotured
+clotures
+cloturing
+clotweed
+clou
+CLOUD
+cloud
+cloudage
+cloud-ascending
+cloud-barred
+cloudberries
+cloudberry
+cloud-born
+cloud-built
+cloudburst
+cloudbursts
+cloudcap
+cloud-capped
+cloud-compacted
+cloud-compeller
+cloud-compelling
+cloud-covered
+cloud-crammed
+Cloudcroft
+cloud-crossed
+Cloud-cuckoo-land
+Cloudcuckooland
+cloud-cuckoo-land
+cloud-curtained
+cloud-dispelling
+cloud-dividing
+cloud-drowned
+cloud-eclipsed
+clouded
+cloud-enveloped
+cloud-flecked
+cloudful
+cloud-girt
+cloud-headed
+cloud-hidden
+cloudier
+cloudiest
+cloudily
+cloudiness
+cloudinesses
+clouding
+cloud-kissing
+cloud-laden
+cloudland
+cloud-led
+cloudless
+cloudlessly
+cloudlessness
+cloudlet
+cloudlets
+cloudlike
+cloudling
+cloudology
+cloud-piercing
+cloud-rocked
+Clouds
+clouds
+cloud-scaling
+cloudscape
+cloud-seeding
+cloud-shaped
+cloudship
+cloud-surmounting
+cloud-surrounded
+cloud-topped
+cloud-touching
+cloudward
+cloudwards
+cloud-woven
+cloud-wrapped
+cloudy
+clouee
+Clouet
+Clough
+clough
+Clougher
+cloughs
+clour
+cloured
+clouring
+clours
+clout
+clouted
+clouter
+clouterly
+clouters
+Cloutierville
+clouting
+Cloutman
+clouts
+clout-shoe
+clouty
+Clova
+Clovah
+clove
+clove-gillyflower
+cloven
+clovene
+cloven-footed
+cloven-footedness
+cloven-hoofed
+Clover
+clover
+Cloverdale
+clovered
+clover-grass
+cloverlay
+cloverleaf
+cloverleafs
+cloverleaves
+cloverley
+cloveroot
+Cloverport
+cloverroot
+clovers
+clover-sick
+clover-sickness
+clovery
+cloves
+clove-strip
+clovewort
+Clovis
+clow
+clowder
+clowders
+Clower
+clower
+clow-gilofre
+clown
+clownade
+clownage
+clowned
+clowneries
+clownery
+clownheal
+clowning
+clownish
+clownishly
+clownishness
+clownishnesses
+clowns
+clownship
+clowre
+clowring
+cloxacillin
+cloy
+cloyed
+cloyedness
+cloyer
+cloying
+cloyingly
+cloyingness
+cloyless
+cloyment
+cloyne
+cloys
+cloysome
+cloze
+clozes
+CLR
+clr
+CLRC
+CLS
+CLTP
+CLU
+club
+clubability
+clubable
+club-armed
+Clubb
+clubbability
+clubbable
+clubbed
+clubber
+clubbers
+clubbier
+clubbiest
+clubbily
+clubbiness
+clubbing
+clubbish
+clubbishness
+clubbism
+clubbist
+clubby
+clubdom
+club-ended
+clubfeet
+clubfellow
+club-fist
+clubfist
+clubfisted
+club-foot
+clubfoot
+club-footed
+clubfooted
+clubhand
+clubhands
+club-haul
+clubhaul
+clubhauled
+clubhauling
+clubhauls
+club-headed
+club-high
+clubhouse
+clubhouses
+clubionid
+Clubionidae
+clubland
+club-law
+club-man
+clubman
+clubmate
+clubmen
+clubmobile
+clubmonger
+club-moss
+clubridden
+club-riser
+clubroom
+clubrooms
+clubroot
+clubroots
+club-rush
+clubs
+club-shaped
+clubstart
+clubster
+clubweed
+clubwoman
+clubwomen
+clubwood
+cluck
+clucked
+clucking
+clucks
+clucky
+cludder
+clue
+clued
+clueing
+clueless
+clues
+cluff
+cluing
+Cluj
+clum
+clumber
+clumbers
+clump
+clumped
+clumper
+clumpier
+clumpiest
+clumping
+clumpish
+clumpishness
+clumplike
+clumproot
+clumps
+clumpst
+clumpy
+clumse
+clumsier
+clumsiest
+clumsily
+clumsiness
+clumsinesses
+clumsy
+clumsy-fisted
+clunch
+Clune
+clung
+Cluniac
+cluniac
+Cluniacensian
+Clunisian
+Clunist
+clunk
+clunked
+clunker
+clunkers
+clunkier
+clunking
+clunks
+clunky
+clunter
+Cluny
+clupanodonic
+Clupea
+clupeid
+Clupeidae
+clupeids
+clupeiform
+clupein
+clupeine
+clupeiod
+Clupeodei
+clupeoid
+clupeoids
+clupien
+cluppe
+cluricaune
+Clurman
+Clusia
+Clusiaceae
+clusiaceous
+Clusium
+cluster
+clusterberry
+clustered
+clusterfist
+clustering
+clusteringly
+clusterings
+clusters
+clustery
+CLUT
+clutch
+clutched
+clutcher
+clutches
+clutching
+clutchingly
+clutchman
+clutchy
+Clute
+cluther
+Clutier
+clutter
+cluttered
+clutterer
+cluttering
+clutterment
+clutters
+cluttery
+CLV
+Clwyd
+Cly
+cly
+Clyde
+Clydebank
+Clydesdale
+clydesdale
+Clydeside
+Clydesider
+clyer
+clyers
+clyfaker
+clyfaking
+Clyman
+Clymene
+Clymenia
+Clymenus
+Clymer
+Clynes
+Clyo
+clype
+clypeal
+Clypeaster
+clypeaster
+Clypeastridea
+Clypeastrina
+clypeastroid
+Clypeastroida
+Clypeastroidea
+clypeate
+clypeated
+clypei
+clypeiform
+clypeo-
+clypeola
+clypeolar
+clypeolate
+clypeole
+clypeus
+clyses
+clysis
+clysma
+clysmian
+clysmic
+clyssus
+clyster
+clysterize
+clysters
+Clytaemnesra
+Clyte
+Clytemnestra
+clytemnestra
+Clytia
+Clytie
+Clytius
+Clyve
+Clywd
+CM
+Cm
+c.m.
+c/m
+cm
+CMA
+CMAC
+CMC
+CMCC
+CMD
+cmd
+CMDF
+cmdg
+Cmdr
+Cmdr.
+cmdr
+CMDS
+CMF
+C.M.G.
+CMG
+CM-glass
+CMH
+CMI
+CMIP
+CMIS
+CMISE
+c-mitosis
+CML
+cml
+cml.
+CMMU
+Cmon
+CMOS
+CMOT
+CMRR
+CMS
+CMSGT
+CMT
+CMTC
+CMU
+CMW
+CMYK
+C/N
+CN
+cn-
+CNA
+CNAA
+CNAB
+CNC
+CNCC
+CND
+cnemapophysis
+cnemial
+cnemic
+cnemides
+cnemidium
+Cnemidophorus
+cnemis
+Cneoraceae
+cneoraceous
+Cneorum
+CNES
+CNI
+cnibophore
+cnicin
+Cnicus
+cnida
+cnidae
+Cnidaria
+cnidarian
+Cnidean
+Cnidia
+Cnidian
+cnidoblast
+cnidocell
+cnidocil
+cnidocyst
+cnidogenous
+cnidophobia
+cnidophore
+cnidophorous
+cnidopod
+cnidosac
+Cnidoscolus
+cnidosis
+Cnidus
+CNM
+CNMS
+CNN
+CNO
+Cnossian
+Cnossus
+C-note
+CNR
+CNS
+CNSR
+Cnut
+C.O.
+C/O
+C/o
+CO
+Co
+Co.
+c/o
+co
+co-
+coabode
+coabound
+coabsume
+coacceptor
+coacervate
+coacervated
+coacervating
+coacervation
+coach
+coachability
+coachable
+coach-and-four
+coach-box
+coachbuilder
+coachbuilding
+coach-built
+coached
+coachee
+Coachella
+coacher
+coachers
+coaches
+coachfellow
+coachful
+coaching
+coachlet
+coachmaker
+coachmaking
+coachman
+coachmanship
+coachmaster
+coachmen
+coachs
+coachsmith
+coachsmithing
+coachway
+coach-whip
+coachwhip
+coachwise
+coachwoman
+coachwood
+coachwork
+coachwright
+coachy
+coact
+coacted
+coacting
+coaction
+coactions
+coactive
+coactively
+coactivity
+coactor
+coactors
+coacts
+Coad
+coadamite
+coadapt
+co-adaptation
+coadaptation
+coadaptations
+coadapted
+coadapting
+coadequate
+coadjacence
+coadjacency
+coadjacent
+coadjacently
+coadjudicator
+coadjument
+co-adjust
+coadjust
+coadjustment
+coadjutant
+coadjutator
+coadjute
+coadjutement
+coadjutive
+coadjutor
+coadjutors
+coadjutorship
+coadjutress
+coadjutrice
+coadjutrices
+coadjutrix
+coadjuvancy
+coadjuvant
+coadjuvate
+coadminister
+coadministration
+coadministrator
+coadministratrix
+coadmiration
+coadmire
+coadmired
+coadmires
+coadmiring
+coadmit
+coadmits
+coadmitted
+coadmitting
+coadnate
+coadore
+coadsorbent
+coadunate
+coadunated
+coadunating
+coadunation
+coadunative
+coadunatively
+coadunite
+co-adventure
+coadventure
+coadventured
+coadventurer
+coadventuress
+coadventuring
+coadvice
+Coady
+coae-
+coaeval
+coaevals
+coaffirmation
+co-afforest
+coafforest
+coaged
+coagel
+coagencies
+co-agency
+coagency
+coagent
+coagents
+coaggregate
+coaggregated
+coaggregation
+coagitate
+coagitator
+coagment
+coagmentation
+coagonize
+coagriculturist
+coagula
+coagulability
+coagulable
+coagulant
+coagulants
+coagulase
+coagulate
+coagulated
+coagulates
+coagulating
+coagulation
+coagulations
+coagulative
+coagulator
+coagulators
+coagulatory
+coagule
+coagulin
+coaguline
+coagulometer
+coagulose
+coagulum
+coagulums
+Coahoma
+Coahuila
+Coahuiltecan
+coaid
+coaita
+coak
+coakum
+coal
+coala
+coalas
+coalbag
+coalbagger
+coal-bearing
+coalbin
+coalbins
+coal-black
+coal-blue
+coal-boring
+coalbox
+coalboxes
+coal-breaking
+coal-burning
+coal-cutting
+Coaldale
+coal-dark
+coaldealer
+coal-dumping
+coaled
+coal-elevating
+coaler
+coalers
+coalesce
+coalesced
+coalescence
+coalescency
+coalescent
+coalesces
+coalescing
+coal-eyed
+coalface
+coal-faced
+Coalfield
+coalfield
+coalfields
+coal-fired
+coal-fish
+coalfish
+coalfishes
+coalfitter
+coal-gas
+Coalgood
+coal-handling
+coalheugh
+coalhole
+coalholes
+coal-house
+coalier
+coaliest
+coalification
+coalified
+coalifies
+coalify
+coalifying
+Coaling
+coaling
+Coalinga
+Coalisland
+Coalite
+coalite
+coalition
+coalitional
+coalitioner
+coalitionist
+coalitions
+coalize
+coalized
+coalizer
+coalizing
+coal-laden
+coalless
+coal-leveling
+co-allied
+coal-loading
+co-ally
+coal-man
+coal-measure
+coal-meter
+coalmonger
+Coalmont
+coalmouse
+coal-picking
+coal-pit
+coalpit
+coalpits
+Coalport
+coal-producing
+coal-pulverizing
+coalrake
+coals
+Coalsack
+coal-sack
+coalsack
+coalsacks
+coal-scuttle
+coalshed
+coalsheds
+coal-sifting
+coal-stone
+coal-tar
+coalternate
+coalternation
+coalternative
+coal-tester
+coal-tit
+coaltitude
+Coalton
+Coalville
+coal-whipper
+coal-whipping
+Coalwood
+coal-works
+coaly
+coalyard
+coalyards
+COAM
+coambassador
+coambulant
+coamiable
+coaming
+coamings
+Coamo
+Coan
+Coanda
+coanimate
+coannex
+coannexed
+coannexes
+coannexing
+coannihilate
+coapostate
+coapparition
+co-appear
+coappear
+coappearance
+coappeared
+coappearing
+coappears
+coappellee
+coapprehend
+coapprentice
+coappriser
+coapprover
+coapt
+coaptate
+coaptation
+coapted
+coapting
+coapts
+co-aration
+coaration
+coarb
+coarbiter
+coarbitrator
+coarct
+coarctate
+coarctation
+coarcted
+coarcting
+coardent
+coarrange
+coarrangement
+coarse
+coarse-featured
+coarse-fibered
+Coarsegold
+coarse-grained
+coarse-grainedness
+coarse-haired
+coarse-handed
+coarse-lipped
+coarsely
+coarse-minded
+coarsen
+coarsened
+coarseness
+coarsenesses
+coarsening
+coarsens
+coarser
+coarse-skinned
+coarse-spoken
+coarse-spun
+coarsest
+coarse-textured
+coarse-tongued
+coarse-toothed
+coarse-wrought
+coarsish
+coart
+coarticulate
+coarticulation
+coascend
+coassert
+coasserter
+coassession
+co-assessor
+coassessor
+coassignee
+co-assist
+coassist
+coassistance
+coassistant
+coassisted
+coassisting
+coassists
+coassume
+coassumed
+coassumes
+coassuming
+coast
+coastal
+coastally
+coasted
+coaster
+coasters
+coast-fishing
+Coastguard
+coastguard
+coastguardman
+coastguardsman
+coastguardsmen
+coasting
+coastings
+coastland
+coastline
+coastlines
+coastman
+coastmen
+coasts
+coastside
+coastwaiter
+coastward
+coastwards
+coastways
+coastwise
+coat
+coat-armour
+Coatbridge
+coat-card
+coatdress
+coated
+coatee
+coatees
+coater
+coaters
+Coates
+Coatesville
+coathangers
+coati
+coatie
+coati-mondi
+coatimondie
+coati-mundi
+coatimundi
+coating
+coatings
+coation
+coatis
+coatless
+coat-money
+coatrack
+coatracks
+coatroom
+coatrooms
+Coats
+coats
+Coatsburg
+Coatsville
+Coatsworth
+coat-tail
+coattail
+coattailed
+coattails
+coattend
+coattended
+coattending
+coattends
+co-attest
+coattest
+coattestation
+coattestator
+coattested
+coattesting
+coattests
+coaudience
+coauditor
+coaugment
+coauthered
+coauthor
+coauthored
+coauthoring
+coauthority
+coauthors
+coauthorship
+coauthorships
+coawareness
+co-ax
+coax
+coaxal
+coaxation
+coaxed
+coaxer
+coaxers
+coaxes
+coaxial
+coaxially
+coaxing
+coaxingly
+coaxy
+coazervate
+coazervation
+COB
+Cob
+cob
+cobaea
+cobalamin
+cobalamine
+cobalt
+cobaltamine
+cobaltammine
+cobalti-
+cobaltic
+cobalticyanic
+cobalticyanides
+cobaltiferous
+cobaltine
+cobaltinitrite
+cobaltite
+cobalto-
+cobaltocyanic
+cobaltocyanide
+cobaltous
+cobalts
+Coban
+cobang
+Cobb
+cobb
+cobbed
+cobber
+cobberer
+cobbers
+Cobbett
+Cobbie
+cobbier
+cobbiest
+cobbin
+cobbing
+cobble
+cobbled
+cobbler
+cobblerfish
+cobblerism
+cobblerless
+cobblers
+cobblership
+cobblery
+cobbles
+cobble-stone
+cobblestone
+cobblestoned
+cobblestones
+cobbling
+cobbly
+cobbra
+cobbs
+Cobbtown
+Cobby
+cobby
+cobcab
+Cobden
+Cobdenism
+cobdenism
+Cobdenite
+COBE
+cobego
+cobelief
+cobeliever
+cobelligerent
+Coben
+cobenignity
+coberger
+cobewail
+Cobh
+Cobham
+cobhead
+cobhouse
+cobia
+cobias
+cob-iron
+cobiron
+co-bishop
+cobishop
+Cobitidae
+Cobitis
+coble
+cobleman
+Coblentzian
+Coblenz
+cobles
+Cobleskill
+cobless
+cobloaf
+cob-nut
+cobnut
+cobnuts
+COBOL
+Cobol
+cobol
+cobola
+coboss
+coboundless
+cobourg
+Cobra
+cobra
+cobra-hooded
+cobras
+cobreathe
+cobridgehead
+cobriform
+co-brother
+cobrother
+cobs
+cobstone
+cob-swan
+Coburg
+coburg
+coburgess
+coburgher
+coburghership
+Coburn
+Cobus
+cobweb
+cobwebbed
+cobwebbery
+cobwebbier
+cobwebbiest
+cobwebbing
+cobwebby
+cobwebs
+cobwork
+COC
+coca
+cocaceous
+Coca-Cola
+cocaigne
+cocain
+cocaine
+cocaines
+cocainisation
+cocainise
+cocainised
+cocainising
+cocainism
+cocainist
+cocainization
+cocainize
+cocainized
+cocainizing
+cocainomania
+cocainomaniac
+cocains
+Cocalus
+Cocama
+Cocamama
+cocamine
+Cocanucos
+cocao
+cocaptain
+cocaptains
+cocarboxylase
+cocarde
+cocas
+cocash
+cocashweed
+cocause
+cocautioner
+Coccaceae
+coccaceous
+coccagee
+coccal
+Cocceian
+cocceian
+Cocceianism
+coccerin
+cocci
+coccic
+coccid
+Coccidae
+coccidia
+coccidial
+coccidian
+Coccidiidea
+coccidioidal
+Coccidioides
+coccidioidomycosis
+Coccidiomorpha
+coccidiosis
+coccidium
+coccidology
+coccids
+cocciferous
+cocciform
+coccigenic
+coccin
+coccinella
+coccinellid
+Coccinellidae
+coccineous
+coccionella
+cocco
+coccobaccilli
+coccobacilli
+coccobacillus
+coccochromatic
+Coccogonales
+coccogone
+Coccogoneae
+coccogonium
+coccoid
+coccoidal
+coccoids
+coccolite
+coccolith
+coccolithophorid
+Coccolithophoridae
+Coccoloba
+Coccolobis
+Coccomyces
+coccosphere
+coccostean
+coccosteid
+Coccosteidae
+Coccosteus
+Coccothraustes
+coccothraustine
+Coccothrinax
+coccous
+coccule
+cocculiferous
+Cocculus
+cocculus
+-coccus
+coccus
+coccy-
+coccydynia
+coccygalgia
+coccygeal
+coccygean
+coccygectomy
+coccygeo-anal
+coccygeo-mesenteric
+coccygerector
+coccyges
+coccygeus
+coccygine
+Coccygius
+coccygo-
+coccygodynia
+coccygomorph
+Coccygomorphae
+coccygomorphic
+coccygotomy
+coccyodynia
+coccyx
+coccyxes
+Coccyzus
+cocentric
+coch
+Cochabamba
+cochair
+cochaired
+cochairing
+cochairman
+cochairmanship
+cochairmen
+cochairs
+cochal
+cochampion
+cochampions
+Cochard
+Cochecton
+cocher
+cochero
+cochief
+Cochin
+cochin
+Cochin-China
+cochin-china
+Cochinchine
+cochineal
+cochins
+Cochise
+cochlea
+cochleae
+cochlear
+cochleare
+Cochlearia
+cochlearifoliate
+cochleariform
+cochleary
+cochleas
+cochleate
+cochleated
+cochleiform
+cochleitis
+cochleleae
+cochleleas
+cochleous
+cochlidiid
+Cochlidiidae
+cochliodont
+Cochliodontidae
+Cochliodus
+cochlite
+cochlitis
+Cochlospermaceae
+cochlospermaceous
+Cochlospermum
+cochon
+Cochran
+Cochrane
+Cochranea
+Cochranton
+Cochranville
+cochromatography
+cochurchwarden
+cochylis
+cocillana
+cocin
+cocinera
+cocineras
+cocinero
+cocircular
+cocircularity
+cocitizen
+cocitizenship
+Cock
+cock
+cock-a
+cockabondy
+cockade
+cockaded
+cockades
+cock-a-doodle
+cock-a-doodle-doo
+cockadoodledoo
+cock-a-doodle--dooed
+cock-a-doodle--dooing
+cock-a-doodle-doos
+cock-a-hoop
+cock-a-hooping
+cock-a-hoopish
+cock-a-hoopness
+Cockaigne
+cockaigne
+cockal
+cockalan
+cock-a-leekie
+cockaleekie
+cockalorum
+cockamamie
+cockamamy
+cockamaroo
+cock-and-bull
+cock-and-bull-story
+cock-and-pinch
+cockandy
+cockapoo
+cockapoos
+cockard
+cockarouse
+cock-as-hoop
+cockateel
+cockatiel
+cockatoo
+cockatoos
+cockatrice
+cockatrices
+cockawee
+cock-a-whoop
+cock-awhoop
+Cockayne
+cockbell
+cock-bill
+cockbill
+cockbilled
+cockbilling
+cockbills
+cockbird
+cock-boat
+cockboat
+cockboats
+cock-brain
+cockbrain
+cock-brained
+Cockburn
+cockchafer
+Cockcroft
+cock-crow
+cockcrow
+cockcrower
+cock-crowing
+cockcrowing
+cockcrows
+Cocke
+cocked
+Cocker
+cocker
+cockered
+cockerel
+cockerels
+cockerie
+cockering
+cockermeg
+cockernonnie
+cockernony
+cockerouse
+cockers
+cocket
+cocketed
+cocketing
+cock-eye
+cockeye
+cock-eyed
+cockeyed
+cockeyedly
+cockeyedness
+cockeyes
+Cockeysville
+cock-feathered
+cock-feathering
+cock-fight
+cockfight
+cockfighter
+cock-fighting
+cockfighting
+cockfights
+cockhead
+cock-horse
+cockhorse
+cockhorses
+cockie
+cockie-leekie
+cockieleekie
+cockier
+cockies
+cockiest
+cockily
+cockiness
+cockinesses
+cocking
+cockish
+cockishly
+cockishness
+cock-laird
+cockle
+cockleboat
+cockle-bread
+cocklebur
+cockled
+cockle-headed
+cockler
+cockles
+cockle-shell
+cockleshell
+cockleshells
+cocklet
+cocklewife
+cocklight
+cocklike
+cockling
+cockloche
+cock-loft
+cockloft
+cocklofts
+cockly
+cock-master
+cockmaster
+cock-match
+cockmatch
+cockmate
+cockneian
+cockneity
+cock-nest
+Cockney
+cockney
+cockneybred
+cockneydom
+cockneyese
+cockneyess
+cockneyfication
+cockneyfied
+cockneyfy
+cockneyfying
+cockneyish
+cockneyishly
+cockneyism
+cockneyize
+cockneyland
+cockneylike
+cockneys
+cockneyship
+cock-of-the-rock
+cock-paddle
+cockpaddle
+cock-penny
+cockpit
+cockpits
+cockroach
+cockroaches
+cock-road
+Cocks
+cocks
+cock's-comb
+cockscomb
+cockscombed
+cockscombs
+cock's-foot
+cocksfoot
+cock's-head
+cockshead
+cockshies
+cockshoot
+cockshot
+cock-shut
+cockshut
+cockshuts
+cock-shy
+cockshy
+cockshying
+cocks-of-the-rock
+cocksparrow
+cock-sparrowish
+cockspur
+cockspurs
+cockstone
+cock-stride
+cock-sure
+cocksure
+cocksuredom
+cocksureism
+cocksurely
+cocksureness
+cocksurety
+cockswain
+cocksy
+cocktail
+cock-tailed
+cocktailed
+cocktailing
+cocktails
+cock-throppled
+cockthrowing
+cock-up
+cockup
+cockups
+cockweed
+cocky
+cocky-leeky
+cockyolly
+co-clause
+Cocle
+coclea
+Cocles
+Coco
+coco
+cocoa
+cocoa-brown
+cocoach
+cocoa-colored
+cocoanut
+cocoanuts
+cocoas
+cocoawood
+cocobola
+cocobolas
+cocobolo
+cocobolos
+cocodette
+Cocolalla
+Cocolamus
+COCOM
+CoComanchean
+cocomat
+cocomats
+cocomposer
+cocomposers
+cocona
+Coconino
+coconnection
+coconqueror
+coconscious
+coconsciously
+coconsciousness
+coconsecrator
+co-conspirator
+coconspirator
+coconspirators
+coconstituent
+cocontractor
+Coconucan
+Coconuco
+coconut
+coconuts
+cocoon
+cocooned
+cocooneries
+cocoonery
+cocooning
+cocoons
+cocopan
+cocopans
+coco-plum
+cocorico
+cocoroot
+Cocos
+cocos
+COCOT
+cocotte
+cocottes
+cocovenantor
+cocowood
+cocowort
+cocoyam
+cocozelle
+cocreate
+cocreated
+cocreates
+cocreating
+cocreator
+cocreators
+cocreatorship
+cocreditor
+cocrucify
+coct
+Cocteau
+coctile
+coction
+coctoantigen
+coctoprecipitin
+cocuisa
+cocuiza
+cocullo
+cocurator
+cocurrent
+cocurricular
+cocus
+cocuswood
+cocuyo
+Cocytean
+Cocytus
+cocytus
+C.O.D.
+COD
+Cod
+cod
+coda
+codable
+Codacci-Pisanelli
+codal
+codamin
+codamine
+codas
+CODASYL
+cod-bait
+codbank
+CODCF
+Codd
+codded
+codder
+codders
+Codding
+codding
+Coddington
+coddle
+coddled
+coddler
+coddlers
+coddles
+coddling
+coddy
+coddy-moddy
+code
+codebook
+codebooks
+codebreak
+codebreaker
+codebtor
+codebtors
+CODEC
+codec
+codeclination
+codecree
+codecs
+coded
+Codee
+co-defendant
+codefendant
+codefendants
+codeia
+codeias
+codein
+codeina
+codeinas
+codeine
+codeines
+codeins
+Codel
+codeless
+codelight
+codelinquency
+codelinquent
+Codell
+Coden
+coden
+codenization
+codens
+codeposit
+coder
+coderive
+coderived
+coderives
+coderiving
+coders
+codes
+codescendant
+codesign
+codesigned
+codesigner
+codesigners
+codesigning
+codesigns
+codespairer
+codetermination
+codetermine
+codetta
+codettas
+codette
+codevelop
+codeveloped
+codeveloper
+codevelopers
+codeveloping
+codevelops
+codeword
+codewords
+codex
+cod-fish
+codfish
+codfisher
+codfisheries
+codfishery
+codfishes
+codfishing
+codger
+codgers
+codhead
+codheaded
+Codi
+Codiaceae
+codiaceous
+Codiaeum
+Codiales
+codical
+codices
+codicil
+codicilic
+codicillary
+codicils
+codicology
+codictatorship
+Codie
+codifiability
+codification
+codifications
+codified
+codifier
+codifiers
+codifies
+codify
+codifying
+codilla
+codille
+coding
+codings
+codiniac
+codirect
+codirected
+codirecting
+codirectional
+codirector
+codirectors
+codirectorship
+codirects
+codiscoverer
+codiscoverers
+codisjunct
+codist
+Codium
+codivine
+codlin
+codline
+codling
+codlings
+codlins
+codlins-and-cream
+codman
+codo
+codol
+codomain
+codomestication
+codominant
+codon
+codons
+Codorus
+cod-piece
+codpiece
+codpieces
+codpitchings
+codrive
+codriven
+co-driver
+codriver
+codrives
+codrove
+Codrus
+cods
+codshead
+cod-smack
+codswallop
+codworm
+Cody
+COE
+Coe
+coe
+Coeburn
+coecal
+coecum
+co-ed
+coed
+coedit
+coedited
+coediting
+coeditor
+coeditors
+coeditorship
+coedits
+coeds
+coeducate
+co-education
+coeducation
+coeducational
+coeducationalism
+coeducationalize
+coeducationally
+coeducations
+COEES
+coef
+coeff
+co-effect
+coeffect
+coeffects
+co-efficacy
+coefficacy
+coefficient
+coefficiently
+coefficients
+coeffluent
+coeffluential
+coehorn
+coel-
+coelacanth
+coelacanthid
+Coelacanthidae
+coelacanthine
+Coelacanthini
+coelacanthoid
+coelacanthous
+coelanaglyphic
+coelar
+coelarium
+Coelastraceae
+coelastraceous
+Coelastrum
+Coelata
+coelder
+coeldership
+-coele
+Coelebogyne
+coelect
+coelection
+coelector
+coelectron
+coelelminth
+Coelelminthes
+coelelminthic
+Coelentera
+coelentera
+Coelenterata
+coelenterata
+coelenterate
+coelenterates
+coelenteric
+coelenteron
+coelestial
+coelestine
+coelevate
+coelho
+coelia
+coeliac
+coelialgia
+coelian
+Coelicolae
+Coelicolist
+coeligenous
+coelin
+coeline
+coelio-
+coeliomyalgia
+coeliorrhea
+coeliorrhoea
+coelioscopy
+coeliotomy
+Coello
+coelo-
+coeloblastic
+coeloblastula
+Coelococcus
+coelodont
+coelogastrula
+Coeloglossum
+Coelogyne
+coelom
+coeloma
+Coelomata
+coelomata
+coelomate
+coelomatic
+coelomatous
+coelome
+coelomes
+coelomesoblast
+coelomic
+Coelomocoela
+coelomopore
+coeloms
+coelonavigation
+coelongated
+coeloplanula
+coeloscope
+coelosperm
+coelospermous
+coelostat
+coelozoic
+coeltera
+coemanate
+coembedded
+coembodied
+coembodies
+coembody
+coembodying
+coembrace
+coeminency
+coemperor
+coemploy
+coemployed
+coemployee
+coemploying
+coemployment
+coemploys
+coempt
+coempted
+coempting
+coemptio
+coemption
+coemptional
+coemptionator
+coemptive
+coemptor
+coempts
+coen-
+coenacle
+coenact
+coenacted
+coenacting
+coenactor
+coenacts
+coenacula
+coenaculous
+coenaculum
+coenaesthesis
+coenamor
+coenamored
+coenamoring
+coenamorment
+coenamors
+coenamourment
+coenanthium
+coendear
+Coendidae
+Coendou
+coendure
+coendured
+coendures
+coenduring
+coenenchym
+coenenchyma
+coenenchymal
+coenenchymata
+coenenchymatous
+coenenchyme
+coenesthesia
+coenesthesis
+coenflame
+coengage
+coengager
+coenjoy
+coenla
+coeno
+coeno-
+coenobe
+coenobiar
+coenobic
+coenobiod
+coenobioid
+coenobite
+coenobitic
+coenobitical
+coenobitism
+coenobium
+coenoblast
+coenoblastic
+coenoby
+coenocentrum
+coenocyte
+coenocytic
+coenodioecism
+coenoecial
+coenoecic
+coenoecium
+coenogamete
+coenogenesis
+coenogenetic
+coenomonoecism
+coenosarc
+coenosarcal
+coenosarcous
+coenosite
+coenospecies
+coenospecific
+coenospecifically
+coenosteal
+coenosteum
+coenotrope
+coenotype
+coenotypic
+coenthrone
+coenunuri
+coenure
+coenures
+coenuri
+coenurus
+coenzymatic
+coenzymatically
+coenzyme
+coenzymes
+coequal
+coequality
+coequalize
+coequally
+coequalness
+coequals
+co-equate
+coequate
+coequated
+coequates
+coequating
+coequation
+COER
+coerce
+coerceable
+coerced
+coercement
+coercend
+coercends
+coercer
+coercers
+coerces
+coercibility
+coercible
+coercibleness
+coercibly
+coercing
+coercion
+coercionary
+coercionist
+coercions
+coercitive
+coercive
+coercively
+coerciveness
+coercivity
+Coerebidae
+coerect
+coerected
+coerecting
+coerects
+coeruleolactite
+coes
+coesite
+coesites
+coessential
+coessentiality
+coessentially
+coessentialness
+co-establishment
+coestablishment
+co-estate
+coestate
+coetanean
+coetaneity
+coetaneous
+coetaneously
+coetaneousness
+coeternal
+coeternally
+coeternity
+coetus
+Coeus
+coeval
+coevality
+coevally
+coevalneity
+coevalness
+coevals
+coevolution
+coevolutionary
+coevolve
+coevolved
+coevolvedcoevolves
+coevolves
+coevolving
+coexchangeable
+coexclusive
+coexecutant
+co-executor
+coexecutor
+coexecutors
+coexecutrices
+coexecutrix
+coexert
+coexerted
+coexerting
+coexertion
+coexerts
+co-exist
+coexist
+coexisted
+coexistence
+coexistences
+coexistency
+coexistent
+coexisting
+coexists
+coexpand
+coexpanded
+coexperiencer
+coexpire
+coexplosion
+coextend
+coextended
+coextending
+coextends
+coextension
+coextensive
+coextensively
+coextensiveness
+coextent
+Coeymans
+cofactor
+cofactors
+Cofane
+cofaster
+cofather
+cofathership
+cofeature
+cofeatures
+co-feoffee
+cofeoffee
+coferment
+cofermentation
+COFF
+coff
+Coffea
+Coffee
+coffee
+coffee-and
+coffeeberries
+coffeeberry
+coffee-blending
+coffee-brown
+coffeebush
+coffeecake
+coffeecakes
+coffee-cleaning
+coffee-color
+coffee-colored
+coffeecup
+coffee-faced
+coffee-grading
+coffee-grinding
+coffeegrower
+coffeegrowing
+coffee-house
+coffeehouse
+coffeehoused
+coffeehouses
+coffeehousing
+coffee-imbibing
+coffee-klatsch
+coffeeleaf
+coffee-making
+coffeeman
+Coffeen
+coffee-planter
+coffee-planting
+coffee-polishing
+coffeepot
+coffeepots
+coffee-roasting
+coffee-room
+coffeeroom
+coffees
+coffee-scented
+coffeetime
+Coffeeville
+coffeeweed
+coffeewood
+Coffeng
+coffer
+coffer-dam
+cofferdam
+cofferdams
+coffered
+cofferer
+cofferfish
+coffering
+cofferlike
+coffers
+coffer-work
+cofferwork
+Coffey
+Coffeyville
+coff-fronted
+Coffin
+coffin
+coffined
+coffin-fashioned
+coffing
+coffin-headed
+coffining
+coffinite
+coffinless
+coffinmaker
+coffinmaking
+coffins
+coffin-shaped
+coffle
+coffled
+coffles
+coffling
+Coffman
+coffret
+coffrets
+coffs
+Cofield
+cofighter
+cofinal
+cofinance
+cofinanced
+cofinances
+cofinancing
+coforeknown
+coformulator
+cofound
+cofounded
+cofounder
+cofounders
+cofounding
+cofoundress
+cofounds
+cofreighter
+Cofsky
+coft
+cofunction
+cog
+cog.
+Cogan
+cogboat
+Cogen
+cogence
+cogences
+cogencies
+cogency
+cogener
+cogeneration
+cogeneric
+cogenial
+cogent
+cogently
+Coggan
+cogged
+cogger
+coggers
+coggie
+cogging
+coggle
+coggledy
+cogglety
+coggly
+Coggon
+coghle
+cogida
+cogie
+cogit
+cogitability
+cogitable
+cogitabund
+cogitabundity
+cogitabundly
+cogitabundous
+cogitant
+cogitantly
+cogitate
+cogitated
+cogitates
+cogitating
+cogitatingly
+cogitation
+cogitations
+cogitative
+cogitatively
+cogitativeness
+cogitativity
+cogitator
+cogitators
+cogito
+cogitos
+coglorify
+coglorious
+cogman
+cogmen
+Cognac
+cognac
+cognacs
+cognate
+cognately
+cognateness
+cognates
+cognati
+cognatic
+cognatical
+cognation
+cognatus
+cognisability
+cognisable
+cognisableness
+cognisably
+cognisance
+cognisant
+cognise
+cognised
+cogniser
+cognises
+cognising
+cognition
+cognitional
+cognitions
+cognitive
+cognitively
+cognitives
+cognitivity
+Cognitum
+cognitum
+cognizability
+cognizable
+cognizableness
+cognizably
+cognizance
+cognizances
+cognizant
+cognize
+cognized
+cognizee
+cognizer
+cognizers
+cognizes
+cognizing
+cognizor
+cognomen
+cognomens
+cognomina
+cognominal
+cognominally
+cognominate
+cognominated
+cognomination
+cognosce
+cognoscent
+cognoscente
+cognoscenti
+cognoscibility
+cognoscible
+cognoscing
+cognoscitive
+cognoscitively
+cognovit
+cognovits
+cogon
+cogonal
+cogons
+cogovernment
+cogovernor
+cogracious
+cograil
+cogrediency
+cogredient
+cogroad
+cogs
+Cogswell
+Cogswellia
+coguarantor
+co-guardian
+coguardian
+cogue
+cogware
+cogway
+cogways
+cogweel
+cogweels
+cog-wheel
+cogwheel
+cogwheels
+cog-wood
+cogwood
+Coh
+cohabit
+cohabitancy
+cohabitant
+cohabitate
+cohabitation
+cohabitations
+cohabited
+cohabiter
+cohabiting
+cohabits
+Cohagen
+Cohan
+Cohanim
+cohanim
+cohanims
+coharmonious
+coharmoniously
+coharmonize
+Cohasset
+Cohbath
+Cohberg
+Cohbert
+Cohby
+Cohdwell
+Cohe
+cohead
+coheaded
+coheading
+coheads
+coheartedness
+coheir
+coheiress
+coheiresses
+coheirs
+coheirship
+cohelper
+cohelpership
+Coheman
+Cohen
+cohen
+cohenite
+Cohens
+cohens
+coherald
+cohere
+cohered
+coherence
+coherences
+coherency
+coherent
+coherently
+coherer
+coherers
+coheres
+coheretic
+cohering
+coheritage
+coheritor
+cohert
+cohesibility
+cohesible
+cohesion
+cohesionless
+cohesions
+cohesive
+cohesively
+cohesiveness
+Cohette
+cohibit
+cohibition
+cohibitive
+cohibitor
+Cohin
+cohitre
+Cohl
+Cohla
+Cohleen
+Cohlette
+Cohlier
+Cohligan
+Cohn
+coho
+cohob
+cohoba
+cohobate
+cohobated
+cohobates
+cohobating
+cohobation
+cohobator
+Cohoctah
+Cohocton
+Cohoes
+cohog
+cohogs
+cohol
+coholder
+coholders
+cohomology
+Co-hong
+cohorn
+cohort
+cohortation
+cohortative
+cohorts
+cohos
+cohosh
+cohoshes
+cohost
+cohosted
+cohostess
+cohostesses
+cohosting
+cohosts
+cohow
+cohue
+cohune
+cohunes
+cohusband
+Cohutta
+COI
+Coibita
+coidentity
+coif
+coifed
+coiffe
+coiffed
+coiffes
+coiffeur
+coiffeurs
+coiffeuse
+coiffeuses
+coiffing
+coiffure
+coiffured
+coiffures
+coiffuring
+coifing
+coifs
+coign
+coigne
+coigned
+coignes
+coigning
+coigns
+coigny
+coigue
+coil
+Coila
+coilability
+coiled
+coiler
+coilers
+coil-filling
+coiling
+coillen
+coils
+coilsmith
+coil-testing
+coil-winding
+coilyear
+Coimbatore
+Coimbra
+coimmense
+coimplicant
+coimplicate
+coimplore
+coin
+coinable
+coinage
+coinages
+coincide
+coincided
+coincidence
+coincidences
+coincidency
+coincident
+coincidental
+coincidentally
+coincidently
+coincidents
+coincider
+coincides
+coinciding
+coinclination
+coincline
+coin-clipper
+coin-clipping
+coinclude
+coin-controlled
+coincorporate
+coin-counting
+coindicant
+coindicate
+coindication
+coindwelling
+coined
+coiner
+coiners
+coinfeftment
+coinfer
+coinferred
+coinferring
+coinfers
+co-infinite
+coinfinite
+coinfinity
+coing
+co-inhabit
+coinhabit
+coinhabitant
+coinhabitor
+co-inhere
+coinhere
+coinhered
+coinherence
+coinherent
+coinheres
+coinhering
+coinheritance
+co-inheritor
+coinheritor
+coining
+coinitial
+Coinjock
+coin-made
+coinmaker
+coinmaking
+coinmate
+coinmates
+coin-op
+coin-operated
+coin-operating
+coinquinate
+coins
+coin-separating
+coin-shaped
+coinspire
+coinstantaneity
+coinstantaneous
+coinstantaneously
+coinstantaneousness
+coinsurable
+coinsurance
+coinsure
+coinsured
+coinsurer
+coinsures
+coinsuring
+cointense
+cointension
+cointensity
+cointer
+cointerest
+cointerred
+cointerring
+cointers
+cointersecting
+cointise
+Cointon
+Cointreau
+coinvent
+coinventor
+coinventors
+coinvestigator
+coinvestigators
+coinvolve
+coin-weighing
+coiny
+coir
+Coire
+coirs
+coislander
+coisns
+coistrel
+coistrels
+coistril
+coistrils
+Coit
+coit
+coital
+coitally
+coition
+coitional
+coitions
+coitophobia
+coiture
+coitus
+coituses
+Coix
+cojoin
+cojoined
+cojoins
+cojones
+cojudge
+cojudices
+cojuror
+cojusticiar
+Cokato
+Coke
+coke
+Cokeburg
+coked
+Cokedale
+cokelike
+cokeman
+cokeney
+Coker
+coker
+cokernut
+cokers
+coker-sack
+cokery
+cokes
+Cokeville
+cokewold
+cokey
+cokie
+coking
+cokneyfy
+cokuloris
+coky
+Col
+Col.
+col
+col-
+col.
+COLA
+Cola
+cola
+colaborer
+co-labourer
+colacobioses
+colacobiosis
+colacobiotic
+Colada
+colage
+colalgia
+colament
+Colan
+colander
+colanders
+colane
+colaphize
+Colares
+colarin
+Colas
+colas
+colascione
+colasciones
+colascioni
+colat
+colate
+colation
+co-latitude
+colatitude
+colatorium
+colature
+colauxe
+Colaxais
+colazione
+Colb
+colback
+Colbaith
+Colbert
+colberter
+colbertine
+Colbertism
+Colburn
+Colby
+Colbye
+colcannon
+Colchester
+Colchian
+Colchicaceae
+colchicia
+colchicin
+colchicine
+Colchicum
+colchicum
+Colchis
+colchyte
+Colcine
+Colcord
+colcothar
+Cold
+cold
+coldblood
+cold-blooded
+coldblooded
+cold-bloodedly
+cold-bloodedness
+coldbloodedness
+cold-braving
+Coldbrook
+cold-catching
+cold-chisel
+cold-chiseled
+cold-chiseling
+cold-chiselled
+cold-chiselling
+coldcock
+cold-complexioned
+cold-cream
+cold-draw
+cold-drawing
+cold-drawn
+cold-drew
+Colden
+cold-engendered
+colder
+coldest
+cold-faced
+cold-finch
+coldfinch
+cold-flow
+cold-forge
+cold-hammer
+cold-hammered
+cold-head
+cold-hearted
+coldhearted
+cold-heartedly
+coldheartedly
+cold-heartedness
+coldheartedness
+coldish
+coldly
+cold-natured
+coldness
+coldnesses
+cold-nipped
+coldong
+cold-pack
+cold-patch
+cold-pated
+cold-press
+cold-producing
+coldproof
+cold-roll
+cold-rolled
+colds
+cold-saw
+cold-short
+cold-shortness
+cold-shoulder
+cold-shut
+cold-slain
+coldslaw
+cold-spirited
+cold-storage
+cold-store
+Coldstream
+Cold-streamers
+cold-swage
+cold-sweat
+cold-taking
+coldturkey
+cold-type
+Coldwater
+cold-water
+cold-weld
+cold-white
+cold-work
+cold-working
+Cole
+cole
+colead
+coleader
+coleads
+Colebrook
+colecannon
+colectomies
+colectomy
+coled
+Coleen
+colegatee
+colegislator
+cole-goose
+Coleman
+colemanite
+colemouse
+Colen
+colen
+colen-bell
+Colene
+colent
+Coleochaetaceae
+coleochaetaceous
+Coleochaete
+Coleophora
+Coleophoridae
+coleopter
+Coleoptera
+coleoptera
+coleopteral
+coleopteran
+coleopterist
+coleopteroid
+coleopterological
+coleopterology
+coleopteron
+coleopterous
+coleoptile
+coleoptilum
+coleopttera
+coleorhiza
+coleorhizae
+Coleosporiaceae
+Coleosporium
+coleplant
+cole-prophet
+colera
+Colerain
+Coleraine
+cole-rake
+Coleridge
+Coleridge-Taylor
+Coleridgian
+Coles
+coles
+Colesburg
+coleseed
+coleseeds
+cole-slaw
+coleslaw
+coleslaws
+co-lessee
+colessee
+colessees
+colessor
+colessors
+cole-staff
+Colet
+colet
+Coleta
+cole-tit
+coletit
+Coletta
+Colette
+coleur
+Coleus
+coleus
+coleuses
+Coleville
+colewort
+coleworts
+coley
+Colfax
+Colfin
+colfox
+Colgate
+coli
+coliander
+Colias
+colibacillosis
+colibacterin
+colibert
+colibertus
+colibri
+colic
+colical
+colichemarde
+colicin
+colicine
+colicines
+colicins
+colicker
+colicky
+colicolitis
+colicroot
+colics
+colicweed
+colicwort
+colicystitis
+colicystopyelitis
+Colier
+colies
+co-life
+coliform
+coliforms
+Coligni
+Coligny
+Coliidae
+Coliiformes
+colilysin
+Colima
+colima
+Colin
+colin
+colinear
+colinearity
+colinephritis
+Colinette
+coling
+colins
+Colinson
+Colinus
+coliphage
+coliplication
+colipuncture
+colipyelitis
+colipyuria
+Colis
+colisepsis
+Coliseum
+coliseum
+coliseums
+colistin
+colistins
+colitic
+colitis
+colitises
+colitoxemia
+coliuria
+Colius
+colk
+coll
+coll-
+coll.
+Colla
+colla
+collab
+collabent
+collaborate
+collaborated
+collaborates
+collaborateur
+collaborating
+collaboration
+collaborationism
+collaborationist
+collaborationists
+collaborations
+collaborative
+collaboratively
+collaborativeness
+collaborator
+collaborators
+collada
+colladas
+collage
+collaged
+collagen
+collagenase
+collagenic
+collagenous
+collagens
+collages
+collagist
+collapsability
+collapsable
+collapsar
+collapse
+collapsed
+collapses
+collapsibility
+collapsible
+collapsing
+Collar
+collar
+collarband
+collarbird
+collar-bone
+collarbone
+collarbones
+collar-bound
+collar-cutting
+collard
+collards
+collare
+collared
+collaret
+collarets
+collarette
+collaring
+collarino
+collarinos
+collarless
+collarman
+collars
+collar-shaping
+collar-to-collar
+collar-wearing
+collat
+collat.
+collatable
+collate
+collated
+collatee
+collateral
+collaterality
+collateralize
+collateralized
+collateralizing
+collaterally
+collateralness
+collaterals
+collates
+collating
+collation
+collational
+collationer
+collations
+collatitious
+collative
+collator
+collators
+collatress
+collaud
+collaudation
+Collayer
+Collbaith
+Collbran
+colleague
+colleagued
+colleagues
+colleagueship
+colleaguesmanship
+colleaguing
+Collect
+collect
+collectability
+collectable
+collectables
+collectanea
+collectarium
+collected
+collectedly
+collectedness
+collectibility
+collectible
+collectibles
+collecting
+collection
+collectional
+collectioner
+collections
+collective
+collectively
+collectiveness
+collectives
+collectivise
+collectivism
+collectivist
+collectivistic
+collectivistically
+collectivists
+collectivities
+collectivity
+collectivization
+collectivize
+collectivized
+collectivizes
+collectivizing
+collectivum
+collector
+collectorate
+collectors
+collectorship
+collectress
+collects
+Colleen
+colleen
+colleens
+collegatary
+college
+college-bred
+college-preparatory
+colleger
+collegers
+colleges
+collegese
+collegia
+collegial
+collegialism
+collegiality
+collegially
+collegian
+collegianer
+collegians
+Collegiant
+collegiate
+collegiately
+collegiateness
+collegiation
+collegiugia
+collegium
+collegiums
+Collembola
+collembolan
+collembole
+collembolic
+collembolous
+Collen
+collen
+collenchyma
+collenchymatic
+collenchymatous
+collenchyme
+collencytal
+collencyte
+Colleri
+Colleries
+Collery
+collery
+collet
+colletarium
+Collete
+colleted
+colleter
+colleterial
+colleterium
+Colletes
+Colletia
+colletic
+Colletidae
+colleting
+Colletotrichum
+collets
+colletside
+Collette
+Collettsville
+Colley
+colley
+Colleyville
+collibert
+collicle
+colliculate
+colliculus
+collide
+collided
+collides
+collidin
+collidine
+colliding
+Collie
+collie
+collied
+collielike
+Collier
+collier
+collieries
+Colliers
+colliers
+Colliersville
+Collierville
+colliery
+collies
+collieshangie
+colliflower
+colliform
+Colligan
+colligance
+colligate
+colligated
+colligating
+colligation
+colligative
+colligible
+collimate
+collimated
+collimates
+collimating
+collimation
+collimator
+collimators
+Collimore
+Collin
+collin
+collinal
+Colline
+colline
+collinear
+collinearity
+collinearly
+collineate
+collineation
+colling
+collingly
+Collingswood
+collingual
+Collingwood
+Collins
+collins
+collinses
+Collinsia
+collinsia
+collinsite
+Collinsonia
+Collinston
+Collinsville
+Collinwood
+colliquable
+colliquament
+colliquate
+colliquation
+colliquative
+colliquativeness
+colliquefaction
+Collis
+collis
+collision
+collisional
+collision-proof
+collisions
+collisive
+Collison
+collo-
+colloblast
+collobrierite
+collocal
+Collocalia
+collocate
+collocated
+collocates
+collocating
+collocation
+collocationable
+collocational
+collocations
+collocative
+collocatory
+collochemistry
+collochromate
+collock
+collocution
+collocutor
+collocutory
+Collodi
+collodio-
+collodiochloride
+collodion
+collodionization
+collodionize
+collodiotype
+collodium
+collogen
+collogue
+collogued
+collogues
+colloguing
+colloid
+colloidal
+colloidality
+colloidally
+colloider
+colloidize
+colloidochemical
+colloids
+Collomia
+collomia
+collop
+colloped
+collophane
+collophanite
+collophore
+collops
+Colloq
+colloq
+colloq.
+colloque
+colloquia
+colloquial
+colloquialism
+colloquialisms
+colloquialist
+colloquiality
+colloquialize
+colloquializer
+colloquially
+colloquialness
+colloquies
+colloquiquia
+colloquiquiums
+colloquist
+colloquium
+colloquiums
+colloquize
+colloquized
+colloquizing
+colloququia
+colloquy
+collossians
+collothun
+collotype
+collotyped
+collotypic
+collotyping
+collotypy
+collow
+colloxylin
+colluctation
+collude
+colluded
+colluder
+colluders
+colludes
+colluding
+Collum
+collum
+collumelliaceous
+collun
+collunaria
+collunarium
+collusion
+collusions
+collusive
+collusively
+collusiveness
+collusory
+collut
+collution
+collutoria
+collutories
+collutorium
+collutory
+colluvia
+colluvial
+colluvies
+colluvium
+colluviums
+Colly
+colly
+collyba
+Collybia
+collybist
+Collyer
+collying
+collylyria
+collyr
+collyria
+Collyridian
+collyridian
+collyrie
+collyrite
+collyrium
+collyriums
+collywest
+collyweston
+collywobbles
+Colman
+Colmar
+colmar
+colmars
+Colmer
+Colmesneil
+colmose
+Coln
+colnaria
+Colner
+Colo
+Colo.
+colo-
+colob
+colobi
+colobin
+colobium
+coloboma
+Colobus
+colobus
+Colocasia
+colocate
+colocated
+colocates
+colocating
+colocentesis
+Colocephali
+colocephalous
+coloclysis
+colocola
+colocolic
+colocolo
+colocynth
+colocynthin
+colodyspepsia
+coloenteritis
+colog
+cologarithm
+Cologne
+cologne
+cologned
+colognes
+cologs
+colola
+cololite
+Coloma
+colomb
+Colomb-Bchar
+Colombes
+Colombi
+Colombia
+colombia
+Colombian
+colombian
+colombians
+colombier
+colombin
+Colombina
+Colombo
+colombo
+Colome
+colometric
+colometrically
+colometry
+Colon
+colon
+Colona
+colonaded
+colonalgia
+colonate
+colone
+colonel
+colonelcies
+colonel-commandantship
+colonelcy
+colonels
+colonelship
+colonelships
+coloner
+colones
+colonette
+colongitude
+coloni
+colonial
+colonialise
+colonialised
+colonialising
+colonialism
+colonialist
+colonialistic
+colonialists
+colonialization
+colonialize
+colonialized
+colonializing
+colonially
+colonialness
+colonials
+colonic
+colonical
+colonics
+Colonie
+Colonies
+colonies
+colonisability
+colonisable
+colonisation
+colonisationist
+colonise
+colonised
+coloniser
+colonises
+colonising
+colonist
+colonists
+colonitis
+colonizability
+colonizable
+colonization
+colonizationist
+colonizations
+colonize
+colonized
+colonizer
+colonizers
+colonizes
+colonizing
+colonnade
+colonnaded
+colonnades
+colonnette
+colonopathy
+colonopexy
+colonoscope
+colonoscopy
+colons
+Colonsay
+colonus
+colony
+colopexia
+colopexotomy
+colopexy
+coloph-
+colophan
+colophane
+colophany
+colophene
+colophenic
+Colophon
+colophon
+colophonate
+Colophonian
+colophonic
+colophonist
+colophonite
+colophonium
+colophons
+colophony
+coloplication
+coloppe
+coloproctitis
+coloptosis
+colopuncture
+coloquies
+coloquintid
+coloquintida
+color
+Colora
+colorability
+colorable
+colorableness
+colorably
+Coloradan
+coloradan
+coloradans
+Colorado
+colorado
+Coloradoan
+coloradoite
+colorant
+colorants
+colorate
+coloration
+colorational
+colorationally
+colorations
+colorative
+coloratura
+coloraturas
+colorature
+color-bearer
+colorbearer
+color-blind
+colorblind
+colorblindness
+colorbreed
+colorcast
+colorcasted
+colorcaster
+colorcasting
+colorcasts
+colorectitis
+colorectostomy
+colored
+coloreds
+colorer
+colorers
+color-fading
+colorfast
+colorfastness
+color-free
+colorful
+colorfully
+colorfulness
+color-grinding
+colorific
+colorifics
+colorimeter
+colorimetric
+colorimetrical
+colorimetrically
+colorimetrics
+colorimetrist
+colorimetry
+colorin
+coloring
+colorings
+colorism
+colorisms
+colorist
+coloristic
+coloristically
+colorists
+colorization
+colorize
+colorless
+colorlessly
+colorlessness
+colormaker
+colormaking
+colorman
+color-matching
+coloroto
+colorrhaphy
+colors
+color-sensitize
+color-testing
+colortype
+Colorum
+color-washed
+colory
+coloslossi
+coloslossuses
+coloss
+Colossae
+colossal
+colossality
+colossally
+colossean
+Colosseum
+colosseum
+colossi
+Colossian
+colossian
+Colossians
+colossians
+colosso
+Colossochelys
+colossus
+colossuses
+Colossuswise
+colostomies
+colostomy
+colostral
+colostration
+colostric
+colostrous
+colostrum
+colotomies
+colotomy
+colotyphoid
+colour
+colourability
+colourable
+colourableness
+colourably
+colouration
+colourational
+colourationally
+colourative
+colour-blind
+colour-box
+Coloured
+coloured
+colourer
+colourers
+colourfast
+colourful
+colourfully
+colourfulness
+colourific
+colourifics
+colouring
+colourist
+colouristic
+colourize
+colourless
+colourlessly
+colourlessness
+colourman
+colours
+colourtype
+coloury
+-colous
+colove
+Colp
+colp
+colpenchyma
+colpeo
+colpeurynter
+colpeurysis
+colpheg
+Colpin
+colpindach
+colpitis
+colpitises
+colpo-
+colpocele
+colpocystocele
+Colpoda
+colpohyperplasia
+colpohysterotomy
+colpoperineoplasty
+colpoperineorrhaphy
+colpoplastic
+colpoplasty
+colpoptosis
+colporrhagia
+colporrhaphy
+colporrhea
+colporrhexis
+colport
+colportage
+colporter
+colporteur
+colporteurs
+colposcope
+colposcopy
+colpostat
+colpotomies
+colpotomy
+colpus
+Colquitt
+Colrain
+cols
+Colson
+colstaff
+Colston
+Colstrip
+COLT
+Colt
+colt
+Coltee
+colter
+colters
+colt-herb
+colthood
+Coltin
+coltish
+coltishly
+coltishness
+coltlike
+Colton
+coltoria
+colt-pixie
+coltpixie
+coltpixy
+Coltrane
+colts
+coltsfoot
+coltsfoots
+coltskin
+Coltson
+colt's-tail
+Coltun
+Coltwood
+colubaria
+Coluber
+coluber
+colubrid
+Colubridae
+colubrids
+colubriform
+Colubriformes
+Colubriformia
+Colubrina
+Colubrinae
+colubrine
+colubroid
+colugo
+colugos
+Colum
+Columba
+columba
+columbaceous
+Columbae
+Columban
+Columbanian
+columbaria
+columbaries
+columbarium
+columbary
+columbate
+columbeia
+columbeion
+Columbella
+Columbia
+columbia
+columbiad
+Columbian
+columbian
+Columbiana
+Columbiaville
+columbic
+Columbid
+Columbidae
+columbier
+columbiferous
+Columbiformes
+columbin
+Columbine
+columbine
+columbines
+columbite
+columbium
+columbo
+columboid
+columbotantalate
+columbotitanate
+columbous
+Columbus
+columbus
+Columbyne
+columel
+columella
+columellae
+columellar
+columellate
+Columellia
+Columelliaceae
+columelliform
+columels
+column
+columna
+columnal
+columnar
+columnarian
+columnarity
+columnarized
+columnate
+columnated
+columnates
+columnating
+columnation
+columnea
+columned
+columner
+columniation
+columniferous
+columniform
+columning
+columnist
+columnistic
+columnists
+columnization
+columnize
+columnized
+columnizes
+columnizing
+columns
+columnwise
+colunar
+colure
+colures
+Colusa
+colusite
+Colutea
+colutea
+Colver
+Colvert
+Colville
+Colvin
+Colwell
+Colwen
+Colwich
+Colwin
+Colwyn
+coly
+colyba
+Colyer
+Colymbidae
+colymbiform
+colymbion
+Colymbriformes
+Colymbus
+colyone
+colyonic
+colytic
+colyum
+colyumist
+colza
+colzas
+COM
+Com
+Com.
+com
+com-
+com.
+coma
+comacine
+comade
+comae
+Comaetho
+comagistracy
+comagmatic
+comake
+comaker
+comakers
+comakes
+comaking
+comal
+comales
+comals
+comamie
+Coman
+comanage
+comanagement
+comanagements
+comanager
+comanagers
+Comanche
+comanche
+Comanchean
+comanchean
+Comanches
+comanches
+comandante
+comandantes
+comandanti
+Comandra
+Comaneci
+comanic
+comarca
+co-mart
+comart
+co-martyr
+Comarum
+comarum
+COMAS
+comas
+co-mate
+comate
+comates
+comatic
+comatik
+comatiks
+comatose
+comatosely
+comatoseness
+comatosity
+comatous
+comatula
+comatulae
+comatulid
+comb
+comb.
+combaron
+combasou
+combat
+combatable
+combatant
+combatants
+combated
+combater
+combaters
+combating
+combative
+combatively
+combativeness
+combativity
+combats
+combattant
+combattants
+combatted
+combatter
+combatting
+comb-back
+comb-broach
+comb-brush
+comb-building
+Combe
+combe
+Combe-Capelle
+Combe-capelle
+combed
+comber
+combers
+Combes
+combes
+combfish
+combfishes
+combflower
+comb-footed
+comb-grained
+combinability
+combinable
+combinableness
+combinably
+combinant
+combinantive
+combinate
+combination
+combinational
+combinations
+combinative
+combinator
+combinatorial
+combinatorially
+combinatoric
+combinatorics
+combinators
+combinatory
+combind
+combine
+combined
+combinedly
+combinedness
+combinement
+combiner
+combiners
+combines
+combing
+combings
+combining
+combite
+comble
+combless
+comblessness
+comblike
+combmaker
+combmaking
+combo
+comboloio
+combos
+comb-out
+comboy
+combre
+Combretaceae
+combretaceous
+Combretum
+Combs
+combs
+comb-shaped
+combure
+comburendo
+comburent
+comburgess
+comburimeter
+comburimetry
+comburivorous
+combust
+combusted
+combustibilities
+combustibility
+combustible
+combustibleness
+combustibles
+combustibly
+combusting
+combustion
+combustions
+combustious
+combustive
+combustively
+combustor
+combusts
+combwise
+combwright
+comby
+comd
+COMDEX
+comdg
+comdg.
+comdia
+Comdr
+Comdr.
+comdr
+Comdt
+Comdt.
+comdt
+come
+come-all-ye
+come-along
+come-at-ability
+come-at-able
+comeatable
+come-at-ableness
+come-back
+comeback
+comebacker
+comebacks
+come-between
+come-by-chance
+Comecon
+Comecrudo
+comeddle
+comedia
+comedial
+comedian
+comedians
+comediant
+comedic
+comedical
+comedically
+comedienne
+comediennes
+comedies
+comedietta
+comediettas
+comediette
+comedist
+comedo
+comedones
+comedos
+come-down
+comedown
+comedowns
+comedy
+come-hither
+come-hithery
+comelier
+comeliest
+comelily
+comeliness
+comeling
+comely
+comely-featured
+comendite
+comenic
+Comenius
+come-off
+come-on
+come-out
+come-outer
+comephorous
+Comer
+comer
+Comerio
+comers
+comes
+comessation
+comestible
+comestibles
+comestion
+comet
+cometaria
+cometarium
+cometary
+Cometes
+cometh
+comether
+comethers
+cometic
+cometical
+cometlike
+cometographer
+cometographical
+cometography
+cometoid
+cometology
+comets
+cometwise
+comeupance
+comeuppance
+comeuppances
+comfier
+comfiest
+comfily
+comfiness
+comfit
+comfits
+comfiture
+Comfort
+comfort
+comfortabilities
+comfortability
+comfortable
+comfortableness
+comfortably
+comfortation
+comfortative
+comforted
+Comforter
+comforter
+comforters
+comfortful
+comforting
+comfortingly
+comfortless
+comfortlessly
+comfortlessness
+comfortress
+comfortroot
+comforts
+Comfrey
+comfrey
+comfreys
+comfy
+Comiakin
+comic
+comical
+comicality
+comically
+comicalness
+comices
+comic-iambic
+comico-
+comicocratic
+comicocynical
+comicodidactic
+comicography
+comicoprosaic
+comicotragedy
+comicotragic
+comicotragical
+comicry
+comics
+Comid
+comida
+comiferous
+Comilla
+COMINCH
+Comines
+Cominform
+Cominformist
+cominformist
+cominformists
+coming
+coming-forth
+comingle
+coming-on
+comings
+comino
+Comins
+Comintern
+comintern
+comique
+comism
+Comiso
+Comitadji
+comitadji
+comital
+comitant
+comitatensian
+comitative
+comitatus
+comite
+comites
+comitia
+comitial
+comities
+Comitium
+comitiva
+comitje
+comitragedy
+comity
+comix
+coml
+COMM
+comm
+comm.
+comma
+Commack
+commaes
+Commager
+commaing
+command
+commandable
+commandant
+commandants
+commandatory
+commanded
+commandedness
+commandeer
+commandeered
+commandeering
+commandeers
+commander
+commanderies
+commanders
+commandership
+commandery
+commanding
+commandingly
+commandingness
+commandite
+commandless
+commandment
+commandments
+commando
+commandoes
+commandoman
+commandos
+commandress
+commandrie
+commandries
+commandry
+commands
+commark
+commas
+commassation
+commassee
+commata
+commaterial
+commatic
+commation
+commatism
+comme
+commeasurable
+commeasure
+commeasured
+commeasuring
+commeddle
+Commelina
+Commelinaceae
+commelinaceous
+commem
+commemorable
+commemorate
+commemorated
+commemorates
+commemorating
+commemoration
+commemorational
+commemorations
+commemorative
+commemoratively
+commemorativeness
+commemorator
+commemorators
+commemoratory
+commemorize
+commemorized
+commemorizing
+commence
+commenceable
+commenced
+commencement
+commencements
+commencer
+commences
+commencing
+commend
+commenda
+commendable
+commendableness
+commendably
+commendador
+commendam
+commendatary
+commendation
+commendations
+commendator
+commendatories
+commendatorily
+commendatory
+commended
+commender
+commending
+commendingly
+commendment
+commends
+commensal
+commensalism
+commensalist
+commensalistic
+commensality
+commensally
+commensals
+commensurability
+commensurable
+commensurableness
+commensurably
+commensurate
+commensurated
+commensurately
+commensurateness
+commensurating
+commensuration
+commensurations
+comment
+commentable
+commentarial
+commentarialism
+commentaries
+commentary
+commentate
+commentated
+commentating
+commentation
+commentative
+commentator
+commentatorial
+commentatorially
+commentators
+commentatorship
+commented
+commenter
+commenting
+commentitious
+comments
+Commerce
+commerce
+commerced
+commerceless
+commercer
+commerces
+commercia
+commerciable
+commercial
+commercialisation
+commercialise
+commercialised
+commercialising
+commercialism
+commercialist
+commercialistic
+commercialists
+commerciality
+commercialization
+commercializations
+commercialize
+commercialized
+commercializes
+commercializing
+commercially
+commercialness
+commercials
+commercing
+commercium
+commerge
+commers
+commesso
+commie
+commies
+commigration
+commilitant
+comminate
+comminated
+comminating
+commination
+comminative
+comminator
+comminatory
+Commines
+commingle
+commingled
+comminglement
+commingler
+commingles
+commingling
+comminister
+comminuate
+comminute
+comminuted
+comminuting
+comminution
+comminutor
+Commiphora
+commis
+commisce
+commise
+commiserable
+commiserate
+commiserated
+commiserates
+commiserating
+commiseratingly
+commiseration
+commiserations
+commiserative
+commiseratively
+commiserator
+Commiskey
+commissar
+commissarial
+commissariat
+commissariats
+commissaries
+commissars
+commissary
+commissaryship
+commission
+commissionaire
+commissional
+commissionary
+commissionate
+commissionated
+commissionating
+commissioned
+commissioner
+commissioner-general
+commissioners
+commissionership
+commissionerships
+commissioning
+commissions
+commissionship
+commissive
+commissively
+commissoria
+commissural
+commissure
+commissurotomies
+commissurotomy
+commistion
+commit
+commitment
+commitments
+commits
+committable
+committal
+committals
+committed
+committedly
+committedness
+committee
+committeeism
+committeeman
+committeemen
+committees
+committeeship
+committeewoman
+committeewomen
+committent
+committer
+committible
+committing
+committitur
+committment
+committor
+commix
+commixed
+commixes
+commixing
+commixt
+commixtion
+commixture
+commo
+commodata
+commodatary
+commodate
+commodation
+commodatum
+commode
+commoderate
+commodes
+commodious
+commodiously
+commodiousness
+commoditable
+commodities
+commodity
+commodore
+commodores
+Commodus
+commoigne
+commolition
+common
+commonable
+commonage
+commonalities
+commonality
+commonalties
+commonalty
+commonance
+commoned
+commonefaction
+commoner
+commoners
+commonership
+commonest
+commoney
+commoning
+commonish
+commonition
+commonize
+common-law
+commonly
+commonness
+commonplace
+commonplaceism
+commonplacely
+commonplaceness
+commonplacer
+commonplaces
+common-room
+Commons
+commons
+commonsense
+commonsensible
+commonsensibly
+commonsensical
+commonsensically
+commonty
+common-variety
+commonweal
+commonweals
+Commonwealth
+commonwealth
+commonwealthism
+commonwealths
+commorancies
+commorancy
+commorant
+commorient
+commorse
+commorth
+commos
+commot
+commote
+commotion
+commotional
+commotions
+commotive
+commove
+commoved
+commoves
+commoving
+commulation
+commulative
+communa
+communal
+communalisation
+communalise
+communalised
+communaliser
+communalising
+communalism
+communalist
+communalistic
+communality
+communalization
+communalize
+communalized
+communalizer
+communalizing
+communally
+Communard
+communard
+communbus
+Commune
+commune
+communed
+communer
+communes
+communicability
+communicable
+communicableness
+communicably
+communicant
+communicants
+communicate
+communicated
+communicatee
+communicates
+communicating
+communication
+communicational
+communications
+communicative
+communicatively
+communicativeness
+communicator
+communicators
+communicatory
+communing
+Communion
+communion
+communionable
+communional
+communionist
+communions
+communiqu
+communique
+communiques
+communis
+communisation
+communise
+communised
+communising
+communism
+Communist
+communist
+communisteries
+communistery
+communistic
+communistical
+communistically
+communists
+communital
+communitarian
+communitarianism
+communitary
+communities
+communitive
+communitorium
+community
+communitywide
+communization
+communize
+communized
+communizing
+commutability
+commutable
+commutableness
+commutant
+commutate
+commutated
+commutating
+commutation
+commutations
+commutative
+commutatively
+commutativity
+commutator
+commutators
+commute
+commuted
+commuter
+commuters
+commutes
+commuting
+commutual
+commutuality
+commy
+Comnenian
+Comnenus
+Como
+comodato
+comodo
+comoedia
+comoedus
+comoid
+comolecule
+comonomer
+comonte
+comoquer
+comorado
+Comorin
+comortgagee
+comose
+comourn
+comourner
+comournful
+comous
+Comox
+comp
+comp.
+compaa
+COMPACT
+compact
+compactability
+compactable
+compacted
+compactedly
+compactedness
+compacter
+compactest
+compactible
+compactification
+compactify
+compactile
+compacting
+compaction
+compactions
+compactly
+compactness
+compactnesses
+compactor
+compactors
+compacts
+compacture
+compadre
+compadres
+compage
+compages
+compaginate
+compagination
+Compagnie
+compagnie
+compagnies
+companable
+companage
+companator
+compander
+companero
+companeros
+compania
+companiable
+companias
+companied
+companies
+companion
+companionability
+companionable
+companionableness
+companionably
+companionage
+companionate
+companioned
+companioning
+companionize
+companionized
+companionizing
+companionless
+companions
+companionship
+companionships
+companionway
+companionways
+company
+companying
+companyless
+compar
+compar.
+comparability
+comparable
+comparableness
+comparably
+comparascope
+comparate
+comparatist
+comparatival
+comparative
+comparatively
+comparativeness
+comparatives
+comparativist
+comparator
+comparators
+comparcioner
+compare
+compared
+comparer
+comparers
+compares
+comparing
+comparison
+comparisons
+comparition
+comparograph
+comparsa
+compart
+comparted
+compartimenti
+compartimento
+comparting
+compartition
+compartment
+compartmental
+compartmentalization
+compartmentalize
+compartmentalized
+compartmentalizes
+compartmentalizing
+compartmentally
+compartmentation
+compartmented
+compartmentize
+compartments
+compartner
+comparts
+compass
+compassability
+compassable
+compassed
+compasser
+Compasses
+compasses
+compass-headed
+compassing
+compassion
+compassionable
+compassionate
+compassionated
+compassionately
+compassionateness
+compassionating
+compassionless
+compassions
+compassive
+compassivity
+compassless
+compassment
+compatability
+compatable
+compaternity
+compathy
+compatibilities
+compatibility
+compatible
+compatibleness
+compatibles
+compatibly
+compatience
+compatient
+compatriot
+compatriotic
+compatriotism
+compatriots
+Compazine
+compd
+compear
+compearance
+compearant
+comped
+compeer
+compeered
+compeering
+compeers
+compel
+compellability
+compellable
+compellably
+compellation
+compellative
+compelled
+compellent
+compeller
+compellers
+compelling
+compellingly
+compels
+compend
+compendency
+compendent
+compendia
+compendiary
+compendiate
+compendious
+compendiously
+compendiousness
+compendium
+compendiums
+compends
+compenetrate
+compenetration
+compensability
+compensable
+compensate
+compensated
+compensates
+compensating
+compensatingly
+compensation
+compensational
+compensations
+compensative
+compensatively
+compensativeness
+compensator
+compensators
+compensatory
+compense
+compenser
+compere
+compered
+comperes
+compering
+compert
+compesce
+compester
+compete
+competed
+competence
+competences
+competencies
+competency
+competent
+competently
+competentness
+competer
+competes
+competible
+competing
+competingly
+competition
+competitioner
+competitions
+competitive
+competitively
+competitiveness
+competitor
+competitors
+competitorship
+competitory
+competitress
+competitrix
+Compi
+Compiegne
+compilable
+compilation
+compilations
+compilator
+compilatory
+compile
+compileable
+compiled
+compilement
+compiler
+compilers
+compiles
+compiling
+comping
+compinge
+compital
+Compitalia
+compitum
+complacence
+complacences
+complacencies
+complacency
+complacent
+complacential
+complacentially
+complacently
+complain
+complainable
+complainant
+complainants
+complained
+complainer
+complainers
+complaining
+complainingly
+complainingness
+complains
+complaint
+complaintful
+complaintive
+complaintiveness
+complaints
+complaisance
+complaisant
+complaisantly
+complaisantness
+complanar
+complanate
+complanation
+complant
+compleat
+compleated
+complect
+complected
+complecting
+complection
+complects
+complement
+complemental
+complementally
+complementalness
+complementaries
+complementarily
+complementariness
+complementarism
+complementarity
+complementary
+complementation
+complementative
+complement-binding
+complemented
+complementer
+complementers
+complement-fixing
+complementing
+complementizer
+complementoid
+complements
+completable
+complete
+completed
+completedness
+completely
+completement
+completeness
+completenesses
+completer
+completers
+completes
+completest
+completing
+completion
+completions
+completive
+completively
+completories
+completory
+complex
+complexation
+complexed
+complexedness
+complexer
+complexes
+complexest
+complexification
+complexify
+complexing
+complexion
+complexionably
+complexional
+complexionally
+complexionary
+complexioned
+complexionist
+complexionless
+complexions
+complexities
+complexity
+complexive
+complexively
+complexly
+complexness
+complexometric
+complexometry
+complexus
+compliable
+compliableness
+compliably
+compliance
+compliances
+compliancies
+compliancy
+compliant
+compliantly
+complicacies
+complicacy
+complicant
+complicate
+complicated
+complicatedly
+complicatedness
+complicates
+complicating
+complication
+complications
+complicative
+complicator
+complicators
+complice
+complices
+complicities
+complicitous
+complicity
+complied
+complier
+compliers
+complies
+compliment
+complimentable
+complimental
+complimentally
+complimentalness
+complimentarily
+complimentariness
+complimentarity
+complimentary
+complimentation
+complimentative
+complimented
+complimenter
+complimenters
+complimenting
+complimentingly
+compliments
+complin
+compline
+complines
+complins
+complish
+complot
+complotment
+complots
+complotted
+complotter
+complotting
+Complutensian
+complutensian
+compluvia
+compluvium
+comply
+complying
+compo
+Compoboard
+compoed
+compoer
+compoing
+compole
+compone
+componed
+componency
+componendo
+component
+componental
+componented
+componential
+componentry
+components
+componentwise
+compony
+comport
+comportable
+comportance
+comported
+comporting
+comportment
+comportments
+comports
+compos
+composable
+composal
+Composaline
+composant
+compose
+composed
+composedly
+composedness
+composer
+composers
+composes
+composing
+composit
+composita
+Compositae
+compositae
+composite
+composite-built
+composited
+compositely
+compositeness
+composites
+compositing
+composition
+compositional
+compositionally
+compositions
+compositive
+compositively
+compositor
+compositorial
+compositors
+compositous
+compositure
+composograph
+compossibility
+compossible
+compost
+composted
+Compostela
+composting
+composts
+composture
+composure
+compot
+compotation
+compotationship
+compotator
+compotatory
+compote
+compotes
+compotier
+compotiers
+compotor
+compound
+compoundable
+compound-complex
+compounded
+compoundedness
+compounder
+compounders
+compounding
+compoundness
+compounds
+compound-wound
+comprachico
+comprachicos
+comprador
+compradore
+comprecation
+compreg
+compregnate
+comprehend
+comprehended
+comprehender
+comprehendible
+comprehending
+comprehendingly
+comprehends
+comprehense
+comprehensibility
+comprehensible
+comprehensibleness
+comprehensibly
+comprehension
+comprehensions
+comprehensive
+comprehensively
+comprehensiveness
+comprehensivenesses
+comprehensives
+comprehensor
+comprend
+compresbyter
+compresbyterial
+compresence
+compresent
+compress
+compressed
+compressedly
+compresses
+compressibilities
+compressibility
+compressible
+compressibleness
+compressibly
+compressing
+compressingly
+compression
+compressional
+compression-ignition
+compressions
+compressive
+compressively
+compressometer
+compressor
+compressors
+compressure
+comprest
+compriest
+comprint
+comprisable
+comprisal
+comprise
+comprised
+comprises
+comprising
+comprizable
+comprizal
+comprize
+comprized
+comprizes
+comprizing
+comprobate
+comprobation
+comproduce
+compromis
+compromisable
+compromise
+compromised
+compromiser
+compromisers
+compromises
+compromising
+compromisingly
+compromissary
+compromission
+compromissorial
+compromit
+compromitment
+compromitted
+compromitting
+comprovincial
+comps
+Compsilura
+Compsoa
+Compsognathus
+compsognathus
+Compsothlypidae
+compt
+Comptche
+Compte
+compte
+Comptean
+compted
+COMPTEL
+compter
+comptible
+comptie
+compting
+comptly
+comptness
+comptoir
+Comptom
+Comptometer
+comptometer
+Compton
+Compton-Burnett
+Comptonia
+comptonite
+comptrol
+comptroller
+comptrollers
+comptrollership
+compts
+compulsative
+compulsatively
+compulsatorily
+compulsatory
+compulse
+compulsed
+compulsion
+compulsions
+compulsitor
+compulsive
+compulsively
+compulsiveness
+compulsives
+compulsivity
+compulsorily
+compulsoriness
+compulsory
+compunct
+compunction
+compunctionary
+compunctionless
+compunctions
+compunctious
+compunctiously
+compunctive
+compupil
+compurgation
+compurgator
+compurgatorial
+compurgatory
+compursion
+computability
+computable
+computably
+computate
+computation
+computational
+computationally
+computations
+computative
+computatively
+computativeness
+compute
+computed
+computer
+computerese
+computerise
+computerite
+computerizable
+computerization
+computerize
+computerized
+computerizes
+computerizing
+computerlike
+computernik
+computers
+computes
+computing
+computist
+computus
+Comr
+Comr.
+comr
+comrade
+comrade-in-arms
+comradeliness
+comradely
+comradery
+comrades
+comradeship
+comradeships
+comrado
+Comras
+comrogue
+COMS
+coms
+COMSAT
+Comsat
+comsat
+Comsomol
+Comstock
+comstock
+comstockeries
+comstockery
+comsymp
+comsymps
+Comte
+comte
+comtemplate
+comtemplated
+comtemplates
+comtemplating
+comtes
+Comtesse
+comtesse
+comtesses
+Comtian
+comtian
+Comtism
+Comtist
+comunidad
+comurmurer
+Comus
+comus
+comvia
+Comyns
+Con
+Con.
+con
+con-
+con.
+conable
+conacaste
+conacre
+Conah
+Conakry
+Conal
+conal
+conalbumin
+Conall
+conamarin
+conamed
+Conan
+conand
+Conant
+Conard
+conarial
+conario-
+conarium
+Conasauga
+conation
+conational
+conationalistic
+conations
+conative
+conatural
+conatus
+Conaway
+conaxial
+conbinas
+conc
+conc.
+concactenated
+concamerate
+concamerated
+concameration
+Concan
+concanavalin
+concannon
+concaptive
+concarnation
+Concarneau
+concassation
+concatenary
+concatenate
+concatenated
+concatenates
+concatenating
+concatenation
+concatenations
+concatenator
+concatervate
+concaulescence
+concausal
+concause
+concavation
+concave
+concaved
+concavely
+concaveness
+concaver
+concaves
+concaving
+concavities
+concavity
+concavo
+concavo-
+concavo-concave
+concavo-convex
+conceal
+concealable
+concealed
+concealedly
+concealedness
+concealer
+concealers
+concealing
+concealingly
+concealment
+concealments
+conceals
+concede
+conceded
+concededly
+conceder
+conceders
+concedes
+conceding
+conceit
+conceited
+conceitedly
+conceitedness
+conceiting
+conceitless
+conceits
+conceity
+conceivability
+conceivable
+conceivableness
+conceivably
+conceive
+conceived
+conceiver
+conceivers
+conceives
+conceiving
+concelebrate
+concelebrated
+concelebrates
+concelebrating
+concelebration
+concelebrations
+concent
+concenter
+concentered
+concentering
+concentive
+concento
+concentralization
+concentralize
+concentrate
+concentrated
+concentrates
+concentrating
+concentration
+concentrations
+concentrative
+concentrativeness
+concentrator
+concentrators
+concentre
+concentred
+concentric
+concentrical
+concentrically
+concentricate
+concentricity
+concentring
+concents
+concentual
+concentus
+Concepci
+Concepcion
+concept
+conceptacle
+conceptacular
+conceptaculum
+conceptible
+conception
+conceptional
+conceptionist
+conceptions
+conceptism
+conceptive
+conceptiveness
+concepts
+conceptual
+conceptualisation
+conceptualise
+conceptualised
+conceptualising
+conceptualism
+conceptualist
+conceptualistic
+conceptualistically
+conceptualists
+conceptuality
+conceptualization
+conceptualizations
+conceptualize
+conceptualized
+conceptualizer
+conceptualizes
+conceptualizing
+conceptually
+conceptus
+concern
+concernancy
+concerned
+concernedly
+concernedness
+concerning
+concerningly
+concerningness
+concernment
+concerns
+concert
+concertante
+concertantes
+concertanti
+concertanto
+concertati
+concertation
+concertato
+concertatos
+concerted
+concertedly
+concertedness
+Concertgebouw
+concertgoer
+concerti
+concertina
+concertinas
+concerting
+concertini
+concertinist
+concertino
+concertinos
+concertion
+concertise
+concertised
+concertiser
+concertising
+concertist
+concertize
+concertized
+concertizer
+concertizes
+concertizing
+concertmaster
+concertmasters
+concertmeister
+concertment
+concerto
+concertos
+concerts
+concertstck
+concertstuck
+Concesio
+concessible
+concession
+concessionaire
+concessionaires
+concessional
+concessionaries
+concessionary
+concessioner
+concessionist
+concessions
+concessit
+concessive
+concessively
+concessiveness
+concessor
+concessory
+concetti
+Concettina
+concettism
+concettist
+concetto
+conch
+conch-
+Concha
+concha
+conchae
+conchal
+conchate
+conche
+conched
+concher
+conches
+conchfish
+conchfishes
+conchie
+conchies
+Conchifera
+conchiferous
+conchiform
+conchinin
+conchinine
+conchiolin
+Conchita
+conchite
+conchitic
+conchitis
+Concho
+concho
+Conchobar
+Conchobor
+conchoid
+conchoidal
+conchoidally
+conchoids
+conchol
+conchological
+conchologically
+conchologist
+conchologize
+conchology
+conchometer
+conchometry
+conchospiral
+Conchostraca
+conchotome
+conchs
+Conchubar
+Conchucu
+conchuela
+conchy
+conchyle
+conchylia
+conchyliated
+conchyliferous
+conchylium
+conciator
+concierge
+concierges
+concile
+conciliable
+conciliabule
+conciliabulum
+conciliar
+conciliarism
+conciliarly
+conciliate
+conciliated
+conciliates
+conciliating
+conciliatingly
+conciliation
+conciliationist
+conciliations
+conciliative
+conciliator
+conciliatorily
+conciliatoriness
+conciliators
+conciliatory
+concilium
+concinnate
+concinnated
+concinnating
+concinnities
+concinnity
+concinnous
+concinnously
+concio
+concion
+concional
+concionary
+concionate
+concionator
+concionatory
+conciousness
+concipiency
+concipient
+concise
+concisely
+conciseness
+concisenesses
+conciser
+concisest
+concision
+concitation
+concite
+concitizen
+conclamant
+conclamation
+conclave
+conclaves
+conclavist
+concludable
+conclude
+concluded
+concludence
+concludency
+concludendi
+concludent
+concludently
+concluder
+concluders
+concludes
+concludible
+concluding
+concludingly
+conclusible
+conclusion
+conclusional
+conclusionally
+conclusions
+conclusive
+conclusively
+conclusiveness
+conclusory
+conclusum
+concn
+concoagulate
+concoagulation
+concoct
+concocted
+concocter
+concocting
+concoction
+concoctions
+concoctive
+concoctor
+concocts
+Concoff
+concolor
+concolorous
+concolour
+concomitance
+concomitancy
+concomitant
+concomitantly
+concomitants
+concomitate
+concommitant
+concommitantly
+conconscious
+Conconully
+Concord
+concord
+concordable
+concordably
+concordal
+concordance
+concordancer
+concordances
+concordancy
+concordant
+concordantial
+concordantly
+concordat
+concordatory
+concordats
+concordatum
+Concorde
+concorder
+Concordia
+concordial
+concordist
+concordity
+concordly
+concords
+Concordville
+concorporate
+concorporated
+concorporating
+concorporation
+Concorrezanes
+concours
+concourse
+concourses
+concreate
+concredit
+concremation
+concrement
+concresce
+concrescence
+concrescences
+concrescent
+concrescible
+concrescive
+concrete
+concreted
+concretely
+concreteness
+concreter
+concretes
+concreting
+concretion
+concretional
+concretionary
+concretions
+concretism
+concretist
+concretive
+concretively
+concretization
+concretize
+concretized
+concretizing
+concretor
+concrew
+concrfsce
+concubinage
+concubinal
+concubinarian
+concubinaries
+concubinary
+concubinate
+concubine
+concubinehood
+concubines
+concubitancy
+concubitant
+concubitous
+concubitus
+conculcate
+conculcation
+concumbency
+concupiscence
+concupiscent
+concupiscible
+concupiscibleness
+concupy
+concur
+concurbit
+concurred
+concurrence
+concurrences
+concurrencies
+concurrency
+concurrent
+concurrently
+concurrentness
+concurring
+concurringly
+concurs
+concursion
+concurso
+concursus
+concuss
+concussant
+concussation
+concussed
+concusses
+concussing
+concussion
+concussional
+concussions
+concussive
+concussively
+concutient
+concyclic
+concyclically
+Cond
+cond
+Conda
+Condalia
+Condamine
+Conde
+condecent
+condemn
+condemnable
+condemnably
+condemnate
+condemnation
+condemnations
+condemnatory
+condemned
+condemner
+condemners
+condemning
+condemningly
+condemnor
+condemns
+condensability
+condensable
+condensance
+condensaries
+condensary
+condensate
+condensates
+condensation
+condensational
+condensations
+condensative
+condensator
+condense
+condensed
+condensedly
+condensedness
+condenser
+condenseries
+condensers
+condensery
+condenses
+condensible
+condensing
+condensity
+conder
+condescend
+condescended
+condescendence
+condescendent
+condescender
+condescending
+condescendingly
+condescendingness
+condescends
+condescension
+condescensions
+condescensive
+condescensively
+condescensiveness
+condescent
+condiction
+condictious
+condiddle
+condiddled
+condiddlement
+condiddling
+condign
+condigness
+condignity
+condignly
+condignness
+Condillac
+condiment
+condimental
+condimentary
+condiments
+condisciple
+condistillation
+Condit
+condite
+condition
+conditionable
+conditional
+conditionalism
+conditionalist
+conditionalities
+conditionality
+conditionalize
+conditionally
+conditionals
+conditionate
+conditione
+conditioned
+conditioner
+conditioners
+conditioning
+conditions
+condititivia
+conditivia
+conditivium
+conditoria
+conditorium
+conditory
+conditotoria
+condivision
+condo
+condoes
+condog
+condolatory
+condole
+condoled
+condolement
+condolence
+condolences
+condolent
+condoler
+condolers
+condoles
+condoling
+condolingly
+condom
+condominate
+condominial
+condominiia
+condominiiums
+condominium
+condominiums
+condoms
+Condon
+condonable
+condonance
+condonation
+condonations
+condonative
+condone
+condoned
+condonement
+condoner
+condoners
+condones
+condoning
+condor
+Condorcet
+condores
+condors
+condos
+condottiere
+condottieri
+conduce
+conduceability
+conduced
+conducement
+conducent
+conducer
+conducers
+conduces
+conducible
+conducibleness
+conducibly
+conducing
+conducingly
+conducive
+conduciveness
+conduct
+conducta
+conductance
+conductances
+conducted
+conductibility
+conductible
+conductility
+conductimeter
+conductimetric
+conducting
+conductio
+conduction
+conductional
+conductions
+conductitious
+conductive
+conductively
+conductivities
+conductivity
+conduct-money
+conductometer
+conductometric
+conductor
+conductorial
+conductorless
+conductors
+conductorship
+conductory
+conductress
+conducts
+conductus
+condue
+conduit
+conduits
+conduplicate
+conduplicated
+conduplication
+condurangin
+condurango
+condurrite
+condylar
+condylarth
+Condylarthra
+condylarthrosis
+condylarthrous
+condyle
+condylectomy
+condyles
+condylion
+condyloid
+condyloma
+condylomas
+condylomata
+condylomatous
+condylome
+condylopod
+Condylopoda
+condylopodous
+condylos
+condylotomy
+Condylura
+condylura
+condylure
+cone
+cone-billed
+coned
+coneen
+coneflower
+Conehatta
+conehead
+cone-headed
+coneighboring
+cone-in-cone
+coneine
+Conejos
+conelet
+conelike
+Conelrad
+conelrad
+conelrads
+conemaker
+conemaking
+Conemaugh
+conenchyma
+cone-nose
+conenose
+conenoses
+conepate
+conepates
+conepatl
+conepatls
+coner
+cones
+cone-shaped
+conessine
+Conestee
+Conestoga
+conestoga
+Conesus
+Conesville
+Conetoe
+Coney
+coney
+coneys
+conf
+conf.
+confab
+confabbed
+confabbing
+confabs
+confabular
+confabulate
+confabulated
+confabulates
+confabulating
+confabulation
+confabulations
+confabulator
+confabulatory
+confact
+confarreate
+confarreated
+confarreation
+confated
+confect
+confected
+confecting
+confection
+confectionaries
+confectionary
+confectioner
+confectioneries
+confectioners
+confectionery
+confectiones
+confections
+confectory
+confects
+confecture
+Confed
+confeder
+confederacies
+Confederacy
+confederacy
+confederal
+confederalist
+Confederate
+confederate
+confederated
+confederater
+confederates
+confederating
+confederatio
+Confederation
+confederation
+confederationism
+confederationist
+confederations
+confederatism
+confederative
+confederatize
+confederator
+confelicity
+confer
+conferee
+conferees
+conference
+conferences
+conferencing
+conferential
+conferment
+conferrable
+conferral
+conferred
+conferree
+conferrence
+conferrer
+conferrers
+conferring
+conferruminate
+confers
+conferted
+Conferva
+conferva
+Confervaceae
+confervaceous
+confervae
+conferval
+Confervales
+confervalike
+confervas
+confervoid
+Confervoideae
+confervous
+confess
+confessable
+confessant
+confessarius
+confessary
+confessed
+confessedly
+confesser
+confesses
+confessing
+confessingly
+confession
+confessional
+confessionalian
+confessionalism
+confessionalist
+confessionally
+confessionals
+confessionaries
+confessionary
+confessionist
+confessions
+confessor
+confessors
+confessorship
+confessory
+confest
+confetti
+confetto
+conficient
+confidant
+confidante
+confidantes
+confidants
+confide
+confided
+confidence
+confidences
+confidency
+confident
+confidente
+confidential
+confidentiality
+confidentially
+confidentialness
+confidentiary
+confidently
+confidentness
+confider
+confiders
+confides
+confiding
+confidingly
+confidingness
+configurable
+configural
+configurate
+configurated
+configurating
+configuration
+configurational
+configurationally
+configurationism
+configurationist
+configurations
+configurative
+configure
+configured
+configures
+configuring
+confinable
+confine
+confineable
+confined
+confinedly
+confinedness
+confineless
+confinement
+confinements
+confiner
+confiners
+confines
+confining
+confinity
+confirm
+confirmability
+confirmable
+confirmand
+confirmation
+confirmational
+confirmations
+confirmative
+confirmatively
+confirmatorily
+confirmatory
+confirmed
+confirmedly
+confirmedness
+confirmee
+confirmer
+confirming
+confirmingly
+confirmity
+confirmment
+confirmor
+confirms
+confiscable
+confiscatable
+confiscate
+confiscated
+confiscates
+confiscating
+confiscation
+confiscations
+confiscator
+confiscators
+confiscatory
+confiserie
+confisk
+confisticating
+confit
+confitent
+Confiteor
+confiteor
+confiture
+confix
+confixed
+confixing
+conflab
+conflagrant
+conflagrate
+conflagrated
+conflagrating
+conflagration
+conflagrations
+conflagrative
+conflagrator
+conflagratory
+conflate
+conflated
+conflates
+conflating
+conflation
+conflexure
+conflict
+conflicted
+conflictful
+conflicting
+conflictingly
+confliction
+conflictive
+conflictless
+conflictory
+conflicts
+conflictual
+conflow
+Confluence
+confluence
+confluences
+confluent
+confluently
+conflux
+confluxes
+confluxibility
+confluxible
+confluxibleness
+confocal
+confocally
+conforbably
+conform
+conformability
+conformable
+conformableness
+conformably
+conformal
+conformance
+conformant
+conformate
+conformation
+conformational
+conformationally
+conformations
+conformator
+conformed
+conformer
+conformers
+conforming
+conformingly
+conformism
+conformist
+conformists
+conformities
+conformity
+conforms
+confort
+confound
+confoundable
+confounded
+confoundedly
+confoundedness
+confounder
+confounders
+confounding
+confoundingly
+confoundment
+confounds
+confr
+confract
+confraction
+confragose
+confrater
+confraternal
+confraternities
+confraternity
+confraternization
+confrere
+confreres
+confrerie
+confriar
+confricamenta
+confricamentum
+confrication
+confront
+confrontal
+confrontation
+confrontational
+confrontationism
+confrontationist
+confrontations
+confronte
+confronted
+confronter
+confronters
+confronting
+confrontment
+confronts
+Confucian
+confucian
+Confucianism
+confucianism
+Confucianist
+confucians
+Confucius
+confucius
+confusability
+confusable
+confusably
+confuse
+confused
+confusedly
+confusedness
+confuser
+confusers
+confuses
+confusing
+confusingly
+confusion
+confusional
+confusions
+confusive
+confusticate
+confustication
+confutability
+confutable
+confutation
+confutations
+confutative
+confutator
+confute
+confuted
+confuter
+confuters
+confutes
+confuting
+Cong
+Cong.
+cong
+cong.
+conga
+congaed
+congaing
+congas
+Congdon
+conge
+congeable
+congeal
+congealability
+congealable
+congealableness
+congealed
+congealedness
+congealer
+congealing
+congealment
+congeals
+conged
+congee
+congeed
+congeeing
+congees
+congeing
+congelation
+congelative
+congelifract
+congelifraction
+congeliturbate
+congeliturbation
+congenator
+congener
+congeneracy
+congeneric
+congenerical
+congenerous
+congenerousness
+congeners
+congenetic
+congenial
+congenialities
+congeniality
+congenialize
+congenially
+congenialness
+congenital
+congenitally
+congenitalness
+congenite
+congeon
+Conger
+conger
+congeree
+conger-eel
+congerie
+congeries
+Congers
+congers
+Congerville
+congery
+conges
+congession
+congest
+congested
+congestedness
+congestible
+congesting
+congestion
+congestions
+congestive
+congests
+congestus
+congiaries
+congiary
+congii
+congius
+conglaciate
+conglobate
+conglobated
+conglobately
+conglobating
+conglobation
+conglobe
+conglobed
+conglobes
+conglobing
+conglobulate
+conglomerate
+conglomerated
+conglomerates
+conglomeratic
+conglomerating
+conglomeration
+conglomerations
+conglomerative
+conglomerator
+conglomeritic
+conglutin
+conglutinant
+conglutinate
+conglutinated
+conglutinating
+conglutination
+conglutinative
+conglution
+Congo
+congo
+congoes
+Congoese
+Congolese
+congolese
+Congoleum
+Congonhas
+congoni
+congos
+congou
+congous
+congrats
+congratulable
+congratulant
+congratulate
+congratulated
+congratulates
+congratulating
+congratulation
+congratulational
+congratulations
+congratulator
+congratulatory
+congredient
+congree
+congreet
+congregable
+congreganist
+congregant
+congregants
+congregate
+congregated
+congregates
+congregating
+congregation
+congregational
+Congregationalism
+congregationalism
+Congregationalist
+congregationalist
+congregationalists
+congregationalize
+congregationally
+Congregationer
+congregationist
+congregations
+congregative
+congregativeness
+congregator
+congresional
+Congreso
+Congress
+congress
+congressed
+congresser
+congresses
+congressing
+congressional
+congressionalist
+congressionally
+congressionist
+congressist
+congressive
+Congressman
+congressman
+congressman-at-large
+congressmen
+congressmen-at-large
+Congresso
+congresswoman
+congresswomen
+Congreve
+congreve
+congrid
+Congridae
+congrio
+congroid
+congrue
+congruence
+congruences
+congruencies
+congruency
+congruent
+congruential
+congruently
+congruism
+congruist
+congruistic
+congruities
+congruity
+congruous
+congruously
+congruousness
+congustable
+conhydrin
+conhydrine
+coni
+conia
+Coniacian
+Coniah
+Conias
+conic
+conical
+conicality
+conically
+conicalness
+conical-shaped
+conicein
+coniceine
+conichalcite
+conicine
+conicities
+conicity
+conicle
+conico-
+conico-cylindrical
+conico-elongate
+conico-hemispherical
+conicoid
+conico-ovate
+conico-ovoid
+conicopoly
+conico-subhemispherical
+conico-subulate
+conics
+Conidae
+conidia
+conidial
+conidian
+conidiiferous
+conidioid
+conidiophore
+conidiophorous
+conidiospore
+conidium
+conies
+conifer
+Coniferae
+coniferin
+coniferophyte
+coniferous
+conifers
+conification
+coniform
+coniine
+coniines
+Conilurus
+conima
+conimene
+conin
+conine
+conines
+coning
+coninidia
+conins
+Coniogramme
+coniology
+coniomycetes
+Coniophora
+Coniopterygidae
+Conioselinum
+conioses
+coniosis
+coniospermous
+Coniothyrium
+coniroster
+conirostral
+Conirostres
+conisance
+conite
+Conium
+conium
+coniums
+conj
+conj.
+conject
+conjective
+conjecturable
+conjecturableness
+conjecturably
+conjectural
+conjecturalist
+conjecturality
+conjecturally
+conjecture
+conjectured
+conjecturer
+conjectures
+conjecturing
+conjee
+conjegates
+conjobble
+conjoin
+conjoined
+conjoinedly
+conjoiner
+conjoining
+conjoins
+conjoint
+conjointly
+conjointment
+conjointness
+conjoints
+conjon
+conjubilant
+conjuctiva
+conjugable
+conjugably
+conjugacy
+conjugal
+Conjugales
+conjugality
+conjugally
+conjugant
+conjugata
+Conjugatae
+conjugate
+conjugated
+conjugately
+conjugateness
+conjugates
+conjugating
+conjugation
+conjugational
+conjugationally
+conjugations
+conjugative
+conjugato-
+conjugato-palmate
+conjugato-pinnate
+conjugator
+conjugators
+conjugial
+conjugium
+conjunct
+conjuncted
+conjunction
+conjunctional
+conjunctionally
+conjunction-reduction
+conjunctions
+conjunctiva
+conjunctivae
+conjunctival
+conjunctivas
+conjunctive
+conjunctively
+conjunctiveness
+conjunctives
+conjunctivitis
+conjunctly
+conjuncts
+conjunctur
+conjunctural
+conjuncture
+conjunctures
+conjuration
+conjurations
+conjurator
+conjure
+conjured
+conjurement
+conjurer
+conjurers
+conjurership
+conjures
+conjuring
+conjurison
+conjuror
+conjurors
+conjury
+conk
+conkanee
+conked
+conker
+conkers
+conking
+Conklin
+conks
+conky
+Conlan
+Conlee
+Conlen
+Conley
+conli
+Conlin
+Conlon
+CONN
+Conn
+Conn.
+conn
+connach
+Connacht
+connaisseur
+Connally
+Connaraceae
+connaraceous
+connarite
+Connarus
+connascency
+connascent
+connatal
+connate
+connately
+connateness
+connate-perfoliate
+connation
+connatural
+connaturality
+connaturalize
+connaturally
+connaturalness
+connature
+Connaught
+connaught
+Conneaut
+Conneautville
+connect
+connectable
+connectant
+connected
+connectedly
+connectedness
+connecter
+connecters
+connectibility
+connectible
+connectibly
+Connecticut
+connecticut
+connecting
+connection
+connectional
+connectionism
+connectionless
+connections
+connectival
+connective
+connectively
+connectives
+connectivity
+connector
+connectors
+connects
+conned
+Connee
+Connel
+Connell
+Connelley
+connellite
+Connellsville
+Connelly
+Connemara
+Conner
+conner
+Conners
+conners
+Connersville
+Connerville
+Connett
+connex
+connexes
+connexion
+connexional
+connexionalism
+connexities
+connexity
+connexiva
+connexive
+connexivum
+connexure
+connexus
+Conney
+Conni
+Connie
+connie
+connies
+conning
+conniption
+conniptions
+connivance
+connivances
+connivancy
+connivant
+connivantly
+connive
+connived
+connivence
+connivent
+connivently
+conniver
+connivers
+connivery
+connives
+conniving
+connivingly
+connixation
+Connochaetes
+connoissance
+connoisseur
+connoisseurs
+connoisseurship
+Connolly
+Connor
+Connors
+connotate
+connotation
+connotational
+connotations
+connotative
+connotatively
+connote
+connoted
+connotes
+connoting
+connotive
+connotively
+conns
+connu
+connubial
+connubialism
+connubiality
+connubially
+connubiate
+connubium
+connumerate
+connumeration
+connusable
+Conny
+conny
+conocarp
+Conocarpus
+Conocephalum
+Conocephalus
+conoclinium
+conocuneus
+conodont
+conodonts
+conoid
+conoidal
+conoidally
+conoidic
+conoidical
+conoidically
+conoido-hemispherical
+conoido-rotundate
+conoids
+Conolophus
+co-nominee
+conominee
+Conon
+cononintelligent
+Conopholis
+conopid
+Conopidae
+conoplain
+conopodium
+Conopophaga
+Conopophagidae
+Conor
+Conorhinus
+conormal
+conoscente
+conoscenti
+conoscope
+conoscopic
+conourish
+Conover
+Conowingo
+Conoy
+conphaseolin
+conplane
+conquassate
+conquedle
+conquer
+conquerable
+conquerableness
+conquered
+conquerer
+conquerers
+conqueress
+conquering
+conqueringly
+conquerment
+Conqueror
+conqueror
+conquerors
+conquers
+Conquest
+conquest
+conquests
+conquian
+conquians
+conquinamine
+conquinine
+conquisition
+conquistador
+conquistadores
+conquistadors
+Conrad
+Conrade
+Conrado
+Conrail
+conrail
+Conral
+Conran
+Conrath
+conrector
+conrectorship
+conred
+conrey
+Conringia
+Conroe
+Conroy
+CONS
+Cons
+Cons.
+cons
+cons.
+consacre
+Consalve
+consanguine
+consanguineal
+consanguinean
+consanguineous
+consanguineously
+consanguinities
+consanguinity
+consarcinate
+consarn
+consarned
+conscience
+conscienceless
+consciencelessly
+consciencelessness
+conscience-proof
+consciences
+conscience-smitten
+conscience-stricken
+conscience-striken
+consciencewise
+conscient
+conscientious
+conscientiously
+conscientiousness
+conscionable
+conscionableness
+conscionably
+conscious
+consciously
+consciousness
+consciousnesses
+consciousness-expanding
+consciousness-expansion
+conscive
+conscribe
+conscribed
+conscribing
+conscript
+conscripted
+conscripting
+conscription
+conscriptional
+conscriptionist
+conscriptions
+conscriptive
+conscripts
+conscripttion
+consderations
+consecrate
+consecrated
+consecratedness
+consecrater
+consecrates
+consecrating
+Consecration
+consecration
+consecrations
+consecrative
+consecrator
+consecratory
+consectary
+consecute
+consecution
+consecutive
+consecutively
+consecutiveness
+consecutives
+consence
+consenescence
+consenescency
+consension
+consensual
+consensually
+consensus
+consensuses
+consent
+consentable
+consentaneity
+consentaneous
+consentaneously
+consentaneousness
+consentant
+consented
+consenter
+consenters
+consentful
+consentfully
+consentience
+consentient
+consentiently
+consenting
+consentingly
+consentingness
+consentive
+consentively
+consentment
+consents
+consequence
+consequences
+consequency
+consequent
+consequential
+consequentialities
+consequentiality
+consequentially
+consequentialness
+consequently
+consequents
+consertal
+consertion
+conservable
+conservacy
+conservancies
+conservancy
+conservant
+conservate
+conservation
+conservational
+conservationism
+conservationist
+conservationists
+conservations
+Conservatism
+conservatism
+conservatisms
+conservatist
+Conservative
+conservative
+conservatively
+conservativeness
+conservatives
+conservatize
+conservatoire
+conservatoires
+conservator
+conservatorial
+conservatories
+conservatorio
+conservatorium
+conservators
+conservatorship
+conservatory
+conservatrix
+conserve
+conserved
+conserver
+conservers
+conserves
+conserving
+Consett
+Conshohocken
+consider
+considerability
+considerable
+considerableness
+considerably
+considerance
+considerate
+considerately
+considerateness
+consideratenesses
+consideration
+considerations
+considerative
+consideratively
+considerativeness
+considerator
+considered
+considerer
+considering
+consideringly
+considers
+consign
+consignable
+consignataries
+consignatary
+consignation
+consignatory
+consigne
+consigned
+consignee
+consignees
+consigneeship
+consigner
+consignificant
+consignificate
+consignification
+consignificative
+consignificator
+consignified
+consignify
+consignifying
+consigning
+consignment
+consignments
+consignor
+consignors
+consigns
+consiliary
+consilience
+consilient
+consimilar
+consimilarity
+consimilate
+consimilated
+consimilating
+consimile
+consisently
+consist
+consisted
+consistence
+consistences
+consistencies
+consistency
+consistent
+consistently
+consistible
+consisting
+consistorial
+consistorian
+consistories
+consistory
+consists
+consition
+consitutional
+consociate
+consociated
+consociating
+consociation
+consociational
+consociationism
+consociative
+consocies
+consol
+consolable
+consolableness
+consolably
+Consolamentum
+consolan
+Consolata
+consolate
+consolation
+consolations
+Consolato
+consolator
+consolatorily
+consolatoriness
+consolatory
+consolatrix
+console
+consoled
+consolement
+consoler
+consolers
+consoles
+consolette
+consolidant
+consolidate
+consolidated
+consolidates
+consolidating
+consolidation
+consolidationist
+consolidations
+consolidative
+consolidator
+consolidators
+consoling
+consolingly
+consolitorily
+consolitoriness
+consols
+consolute
+consomm
+consomme
+consommes
+consonance
+consonances
+consonancy
+consonant
+consonantal
+consonantalize
+consonantalized
+consonantalizing
+consonantally
+consonantic
+consonantise
+consonantised
+consonantising
+consonantism
+consonantize
+consonantized
+consonantizing
+consonantly
+consonantness
+consonants
+consonate
+consonous
+consopite
+consort
+consortable
+consorted
+consorter
+consortia
+consortial
+consorting
+consortion
+consortism
+consortitia
+consortium
+consortiums
+consorts
+consortship
+consoude
+consound
+conspecies
+conspecific
+conspecifics
+conspect
+conspection
+conspectuity
+conspectus
+conspectuses
+consperg
+consperse
+conspersion
+conspicuity
+conspicuous
+conspicuously
+conspicuousness
+conspiracies
+conspiracy
+conspirant
+conspiration
+conspirational
+conspirative
+conspirator
+conspiratorial
+conspiratorially
+conspirators
+conspiratory
+conspiratress
+conspire
+conspired
+conspirer
+conspirers
+conspires
+conspiring
+conspiringly
+conspissate
+conspue
+conspurcate
+Const
+const
+Constable
+constable
+constablery
+constables
+constableship
+constabless
+Constableville
+constablewick
+constabular
+constabularies
+constabulary
+Constance
+constance
+constances
+Constancia
+constancies
+Constancy
+constancy
+Constant
+constant
+Constanta
+constantan
+Constantia
+Constantin
+Constantina
+Constantine
+Constantinian
+constantinian
+Constantino
+Constantinople
+constantinople
+Constantinopolitan
+constantinopolitan
+constantly
+constantness
+constants
+constat
+constatation
+constatations
+constate
+constative
+constatory
+constellate
+constellated
+constellating
+constellation
+constellations
+constellatory
+conster
+consternate
+consternated
+consternating
+consternation
+consternations
+constipate
+constipated
+constipates
+constipating
+constipation
+constipations
+constituencies
+constituency
+constituent
+constituently
+constituents
+constitute
+constituted
+constituter
+constitutes
+constituting
+constitution
+constitutional
+constitutionalism
+constitutionalist
+constitutionality
+constitutionalization
+constitutionalize
+constitutionally
+constitutionals
+constitutionary
+constitutioner
+constitutionist
+constitutionless
+constitutions
+constitutive
+constitutively
+constitutiveness
+constitutor
+constr
+constr.
+constrain
+constrainable
+constrained
+constrainedly
+constrainedness
+constrainer
+constrainers
+constraining
+constrainingly
+constrainment
+constrains
+constraint
+constraints
+constrict
+constricted
+constricting
+constriction
+constrictions
+constrictive
+constrictor
+constrictors
+constricts
+constringe
+constringed
+constringency
+constringent
+constringing
+construability
+construable
+construal
+construct
+constructable
+constructed
+constructer
+constructibility
+constructible
+constructing
+construction
+constructional
+constructionally
+constructionism
+constructionist
+constructionists
+constructions
+constructive
+constructively
+constructiveness
+Constructivism
+constructivism
+Constructivist
+constructivist
+constructor
+constructors
+constructorship
+constructs
+constructure
+construe
+construed
+construer
+construers
+construes
+construing
+constuctor
+constuprate
+constupration
+consubsist
+consubsistency
+consubstantial
+consubstantialism
+consubstantialist
+consubstantiality
+consubstantially
+consubstantiate
+consubstantiated
+consubstantiating
+consubstantiation
+consubstantiationist
+consubstantive
+Consuela
+Consuelo
+consuete
+consuetitude
+consuetude
+consuetudinal
+consuetudinary
+consul
+consulage
+consular
+consularity
+consulary
+consulate
+consulated
+consulates
+consulating
+consuls
+consulship
+consulships
+consult
+consulta
+consultable
+consultancy
+consultant
+consultants
+consultantship
+consultary
+consultation
+consultations
+consultative
+consultatively
+consultatory
+consulted
+consultee
+consulter
+consulting
+consultive
+consultively
+consulto
+consultor
+consultory
+consults
+consumable
+consumables
+consumate
+consumated
+consumating
+consumation
+consume
+consumed
+consumedly
+consumeless
+consumer
+consumerism
+consumerist
+consumers
+consumership
+consumes
+consuming
+consumingly
+consumingness
+consummate
+consummated
+consummately
+consummates
+consummating
+consummation
+consummations
+consummative
+consummatively
+consummativeness
+consummator
+consummatory
+consumo
+consumpt
+consumpted
+consumptible
+consumption
+consumptional
+consumptions
+consumptive
+consumptively
+consumptiveness
+consumptives
+consumptivity
+Consus
+consute
+consy
+Cont
+cont
+cont.
+contabescence
+contabescent
+CONTAC
+contact
+contactant
+contacted
+contactile
+contacting
+contaction
+contactor
+contacts
+contactual
+contactually
+contadino
+contaggia
+contagia
+contagion
+contagioned
+contagionist
+contagions
+contagiosity
+contagious
+contagiously
+contagiousness
+contagium
+contain
+containable
+contained
+containedly
+container
+containerboard
+containerization
+containerize
+containerized
+containerizes
+containerizing
+containerport
+containers
+containership
+containerships
+containing
+containment
+containments
+contains
+contakia
+contakion
+contakionkia
+contam
+contaminable
+contaminant
+contaminants
+contaminate
+contaminated
+contaminates
+contaminating
+contamination
+contaminations
+contaminative
+contaminator
+contaminous
+contangential
+contango
+contangoes
+contangos
+contchar
+contd
+contd.
+Conte
+conte
+conteck
+conte-crayon
+contect
+contection
+contek
+conteke
+contemn
+contemned
+contemner
+contemnible
+contemnibly
+contemning
+contemningly
+contemnor
+contemns
+contemp
+contemp.
+contemper
+contemperate
+contemperature
+contemplable
+contemplamen
+contemplance
+contemplant
+contemplate
+contemplated
+contemplatedly
+contemplates
+contemplating
+contemplatingly
+contemplation
+contemplations
+contemplatist
+contemplative
+contemplatively
+contemplativeness
+contemplator
+contemplators
+contemplature
+contemple
+contemporanean
+contemporaneity
+contemporaneous
+contemporaneously
+contemporaneousness
+contemporaries
+contemporarily
+contemporariness
+contemporary
+contemporise
+contemporised
+contemporising
+contemporize
+contemporized
+contemporizing
+contempt
+contemptful
+contemptibility
+contemptible
+contemptibleness
+contemptibly
+contempts
+contemptuous
+contemptuously
+contemptuousness
+contend
+contended
+contendent
+contender
+contendere
+contenders
+contending
+contendingly
+contendress
+contends
+contenement
+content
+contentable
+contentation
+contented
+contentedly
+contentedness
+contentednesses
+contentful
+contenting
+contention
+contentional
+contentions
+contentious
+contentiously
+contentiousness
+contentless
+contently
+contentment
+contentments
+contentness
+contents
+contenu
+conter
+conterminable
+conterminal
+conterminant
+conterminate
+contermine
+conterminous
+conterminously
+conterminousness
+conterraneous
+contes
+contessa
+contesseration
+contest
+contestability
+contestable
+contestableness
+contestably
+contestant
+contestants
+contestate
+contestation
+contested
+contestee
+contester
+contesters
+contesting
+contestingly
+contestless
+contests
+conteur
+contex
+context
+contextive
+contexts
+contextual
+contextualize
+contextually
+contextural
+contexture
+contextured
+contg
+Conti
+conticent
+contignate
+contignation
+contiguate
+contiguities
+contiguity
+contiguous
+contiguously
+contiguousness
+contin
+continence
+continences
+continency
+Continent
+continent
+Continental
+continental
+Continentaler
+continentalism
+continentalist
+continentality
+Continentalize
+continentally
+continentals
+continently
+continents
+continent-wide
+contineu
+contingence
+contingencies
+contingency
+contingent
+contingential
+contingentialness
+contingentiam
+contingently
+contingentness
+contingents
+continua
+continuable
+continual
+continuality
+continually
+continualness
+continuance
+continuances
+continuancy
+continuando
+continuant
+continuantly
+continuate
+continuately
+continuateness
+continuation
+continuations
+continuative
+continuatively
+continuativeness
+continuator
+continue
+continued
+continuedly
+continuedness
+continuer
+continuers
+continues
+continuing
+continuingly
+continuist
+continuities
+continuity
+continuo
+continuos
+continuous
+continuousities
+continuousity
+continuously
+continuousness
+continuua
+continuum
+continuums
+contise
+cont-line
+contline
+conto
+contoid
+contoise
+Contoocook
+contorniate
+contorniates
+contorno
+contorsion
+contorsive
+contort
+contorta
+Contortae
+contorted
+contortedly
+contortedness
+contorting
+contortion
+contortional
+contortionate
+contortioned
+contortionist
+contortionistic
+contortionists
+contortions
+contortive
+contortively
+contorts
+contortuplicate
+contos
+contour
+contoured
+contouring
+contourne
+contours
+contr
+contr.
+contra
+contra-
+contra-acting
+contra-approach
+contraband
+contrabandage
+contrabandery
+contrabandism
+contrabandist
+contrabandista
+contrabands
+contrabass
+contrabassist
+contrabasso
+contrabassoon
+contrabassoonist
+contracapitalist
+contraception
+contraceptionist
+contraceptions
+contraceptive
+contraceptives
+contracivil
+contraclockwise
+contract
+contractable
+contractant
+contractation
+contracted
+contractedly
+contractedness
+contractee
+contracter
+contractibility
+contractible
+contractibleness
+contractibly
+contractile
+contractility
+contracting
+contraction
+contractional
+contractionist
+contractions
+contractive
+contractively
+contractiveness
+contractly
+contractor
+contractors
+contracts
+contractu
+contractual
+contractually
+contracture
+contractured
+contractus
+contracyclical
+contrada
+contra-dance
+contradance
+contrade
+contradebt
+contradict
+contradictable
+contradicted
+contradictedness
+contradicter
+contradicting
+contradiction
+contradictional
+contradictions
+contradictious
+contradictiously
+contradictiousness
+contradictive
+contradictively
+contradictiveness
+contradictor
+contradictories
+contradictorily
+contradictoriness
+contradictory
+contradicts
+contradiscriminate
+contradistinct
+contradistinction
+contradistinctions
+contradistinctive
+contradistinctively
+contradistinctly
+contradistinguish
+contradivide
+contrafacture
+contrafagotto
+contrafissura
+contrafissure
+contraflexure
+contraflow
+contrafocal
+contragredience
+contragredient
+contrahent
+contrail
+contrails
+contra-indicant
+contraindicant
+contra-indicate
+contraindicate
+contraindicated
+contraindicates
+contraindicating
+contra-indication
+contraindication
+contraindications
+contraindicative
+contra-ion
+contrair
+contraire
+contralateral
+contra-lode
+contralti
+contralto
+contraltos
+contramarque
+contramure
+contranatural
+contrantiscion
+contraoctave
+contraorbital
+contraorbitally
+contraparallelogram
+contrapletal
+contraplete
+contraplex
+contrapolarization
+contrapone
+contraponend
+Contraposaune
+contrapose
+contraposed
+contraposing
+contraposit
+contraposita
+contraposition
+contrapositive
+contrapositives
+contrapposto
+contrappostos
+contraprogressist
+contraprop
+contraproposal
+contraprops
+contraprovectant
+contraption
+contraptions
+contraptious
+contrapuntal
+contrapuntalist
+contrapuntally
+contrapuntist
+contrapunto
+contrarational
+contraregular
+contraregularity
+contra-related
+contraremonstrance
+contra-remonstrant
+contraremonstrant
+contrarevolutionary
+contrariant
+contrariantly
+contraries
+contrarieties
+contrariety
+contrarily
+contrariness
+contrarious
+contrariously
+contrariousness
+contrariwise
+contra-rotation
+contrarotation
+contrary
+contrary-minded
+contras
+contrascriptural
+contrast
+contrastable
+contrastably
+contraste
+contrasted
+contrastedly
+contraster
+contrasters
+contrastimulant
+contrastimulation
+contrastimulus
+contrasting
+contrastingly
+contrastive
+contrastively
+contrastiveness
+contrastment
+contrasts
+contrasty
+contrasuggestible
+contratabular
+contrate
+contratempo
+contratenor
+contratulations
+contravalence
+contravallation
+contravariant
+contravene
+contravened
+contravener
+contravenes
+contravening
+contravention
+contraversion
+contravindicate
+contravindication
+contrawise
+contrayerva
+contre-
+contrecoup
+contrectation
+contre-dance
+contredanse
+contredanses
+contreface
+contrefort
+contre-partie
+contrepartie
+contretemps
+contrib
+contrib.
+contributable
+contributary
+contribute
+contributed
+contributes
+contributing
+contribution
+contributional
+contributions
+contributive
+contributively
+contributiveness
+contributor
+contributorial
+contributories
+contributorily
+contributors
+contributorship
+contributory
+contrist
+contrite
+contritely
+contriteness
+contrition
+contritions
+contriturate
+contrivable
+contrivance
+contrivances
+contrivancy
+contrive
+contrived
+contrivedly
+contrivement
+contriver
+contrivers
+contrives
+contriving
+control
+controled
+controling
+controllability
+controllable
+controllableness
+controllable-pitch
+controllably
+controlled
+controller
+controllers
+controllership
+controlless
+controlling
+controllingly
+controlment
+controls
+controversal
+controverse
+controversed
+controversial
+controversialism
+controversialist
+controversialists
+controversialize
+controversially
+controversies
+controversion
+controversional
+controversionalism
+controversionalist
+controversy
+controvert
+controverted
+controverter
+controvertibility
+controvertible
+controvertibly
+controverting
+controvertist
+controverts
+contrude
+conttinua
+contubernal
+contubernial
+contubernium
+contumaceous
+contumacies
+contumacious
+contumaciously
+contumaciousness
+contumacities
+contumacity
+contumacy
+contumax
+contumelies
+contumelious
+contumeliously
+contumeliousness
+contumely
+contund
+contune
+conturb
+conturbation
+contuse
+contused
+contuses
+contusing
+contusion
+contusioned
+contusions
+contusive
+conubium
+Conularia
+conule
+conumerary
+conumerous
+conundrum
+conundrumize
+conundrums
+conurbation
+conurbations
+conure
+Conuropsis
+Conurus
+CONUS
+conus
+conusable
+conusance
+conusant
+conusee
+conuses
+conusor
+conutrition
+conuzee
+conuzor
+conv
+Convair
+convalesce
+convalesced
+convalescence
+convalescences
+convalescency
+convalescent
+convalescently
+convalescents
+convalesces
+convalescing
+convallamarin
+Convallaria
+Convallariaceae
+convallariaceous
+convallarin
+convally
+convect
+convected
+convecting
+convection
+convectional
+convections
+convective
+convectively
+convector
+convects
+convell
+convenable
+convenably
+convenance
+convenances
+convene
+convened
+convenee
+convener
+conveneries
+conveners
+convenership
+convenery
+convenes
+convenience
+convenienced
+conveniences
+conveniencies
+conveniency
+conveniens
+convenient
+conveniently
+convenientness
+convening
+convenor
+convent
+convented
+conventical
+conventically
+conventicle
+conventicler
+conventicles
+conventicular
+conventing
+convention
+conventional
+conventionalisation
+conventionalise
+conventionalised
+conventionalising
+conventionalism
+conventionalist
+conventionalities
+conventionality
+conventionalization
+conventionalize
+conventionalized
+conventionalizes
+conventionalizing
+conventionally
+conventionary
+conventioneer
+conventioneers
+conventioner
+conventionism
+conventionist
+conventionize
+conventions
+convento
+convents
+Conventual
+conventual
+conventually
+converge
+converged
+convergement
+convergence
+convergences
+convergencies
+convergency
+convergent
+convergently
+converges
+convergescence
+converginerved
+converging
+conversable
+conversableness
+conversably
+conversance
+conversancy
+conversant
+conversantly
+conversation
+conversationable
+conversational
+conversationalism
+conversationalist
+conversationalists
+conversationally
+conversationism
+conversationist
+conversationize
+conversations
+conversative
+conversazione
+conversaziones
+conversazioni
+Converse
+converse
+conversed
+conversely
+converser
+converses
+conversi
+conversibility
+conversible
+conversing
+conversion
+conversional
+conversionary
+conversionism
+conversionist
+conversions
+conversive
+converso
+conversus
+conversusi
+convert
+convertable
+convertaplane
+converted
+convertend
+converter
+converters
+convertibility
+convertible
+convertibleness
+convertibles
+convertibly
+converting
+convertingness
+convertiplane
+convertise
+convertism
+convertite
+convertive
+convertoplane
+convertor
+convertors
+converts
+Convery
+conveth
+convex
+convex-concave
+convexed
+convexedly
+convexedness
+convexes
+convexities
+convexity
+convexly
+convexness
+convexo
+convexo-
+convexo-concave
+convexoconcave
+convexo-convex
+convexo-plane
+convey
+conveyability
+conveyable
+conveyal
+conveyance
+conveyancer
+conveyances
+conveyancing
+conveyed
+conveyer
+conveyers
+conveying
+conveyor
+conveyorization
+conveyorize
+conveyorized
+conveyorizer
+conveyorizing
+conveyors
+conveys
+conviciate
+convicinity
+convict
+convictable
+convicted
+convictfish
+convictfishes
+convictible
+convicting
+conviction
+convictional
+convictions
+convictism
+convictive
+convictively
+convictiveness
+convictment
+convictor
+convicts
+convince
+convinced
+convincedly
+convincedness
+convincement
+convincer
+convincers
+convinces
+convincibility
+convincible
+convincing
+convincingly
+convincingness
+convite
+convito
+convival
+convive
+convives
+convivial
+convivialist
+convivialities
+conviviality
+convivialize
+convivially
+convivio
+convocant
+convocate
+convocated
+convocating
+convocation
+convocational
+convocationally
+convocationist
+convocations
+convocative
+convocator
+convoke
+convoked
+convoker
+convokers
+convokes
+convoking
+Convoluta
+convolute
+convoluted
+convolutedly
+convolutedness
+convolutely
+convoluting
+convolution
+convolutional
+convolutionary
+convolutions
+convolutive
+convolve
+convolved
+convolvement
+convolves
+convolving
+Convolvulaceae
+convolvulaceous
+convolvulad
+convolvuli
+convolvulic
+convolvulin
+convolvulinic
+convolvulinolic
+Convolvulus
+convolvulus
+convolvuluses
+convoy
+convoyed
+convoying
+convoys
+convulsant
+convulse
+convulsed
+convulsedly
+convulses
+convulsibility
+convulsible
+convulsing
+convulsion
+convulsional
+convulsionaries
+convulsionary
+convulsionism
+convulsionist
+convulsions
+convulsive
+convulsively
+convulsiveness
+Conway
+Cony
+cony
+cony-catch
+conycatcher
+Conyers
+conyger
+conylene
+conynge
+Conyngham
+conyrin
+conyrine
+conyza
+COO
+Coo
+coo
+cooba
+coobah
+co-obligant
+co-oblige
+co-obligor
+cooboo
+cooboos
+co-occupant
+co-occupy
+co-occurrence
+cooch
+cooches
+coo-coo
+coocoo
+coodle
+Cooe
+cooed
+cooee
+cooeed
+cooeeing
+cooees
+cooer
+cooers
+cooey
+cooeyed
+cooeying
+cooeys
+coof
+coofs
+cooghneiorvlt
+Coohee
+cooing
+cooingly
+cooja
+Cook
+cook
+cookable
+cookbook
+cookbooks
+cookdom
+Cooke
+cooked
+cooked-up
+cookee
+cookeite
+cooker
+cookeries
+cookers
+cookery
+Cookeville
+cookey
+cookeys
+cook-general
+cookhouse
+cookhouses
+Cookie
+cookie
+cookies
+cooking
+cooking-range
+cookings
+cookish
+cookishly
+cookless
+cookmaid
+cook-out
+cookout
+cookouts
+cookroom
+Cooks
+cooks
+Cooksburg
+cooks-general
+cookshack
+cookshop
+cookshops
+Cookson
+cookstove
+Cookstown
+Cooksville
+Cookville
+cookware
+cookwares
+Cooky
+cooky
+cool
+coolabah
+coolaman
+coolamon
+coolant
+coolants
+cooled
+Cooleemee
+coolen
+cooler
+coolerman
+coolers
+coolest
+Cooley
+cooley
+cool-headed
+coolheaded
+cool-headedly
+coolheadedly
+cool-headedness
+coolheadedness
+coolhouse
+coolibah
+Coolidge
+coolidge
+coolie
+coolies
+cooliman
+Coolin
+cooling
+cooling-card
+coolingly
+coolingness
+cooling-off
+coolish
+coolly
+coolness
+coolnesses
+cools
+coolth
+coolths
+coolung
+Coolville
+coolweed
+coolwort
+cooly
+coom
+coomb
+coombe
+coombes
+Coombs
+coombs
+coom-ceiled
+co-omnipotent
+co-omniscient
+coomy
+coon
+Coonan
+cooncan
+cooncans
+cooner
+coonhound
+coonhounds
+coonier
+cooniest
+coonily
+cooniness
+coonjine
+coonroot
+coons
+coonskin
+coonskins
+coontah
+coontail
+coontie
+coonties
+coony
+Coop
+co-op
+coop
+coop.
+cooped
+cooped-in
+coopee
+Cooper
+cooper
+co-operable
+cooperage
+co-operancy
+cooperancy
+co-operant
+cooperant
+co-operate
+cooperate
+cooperated
+cooperates
+cooperating
+cooperatingly
+co-operation
+cooperation
+co-operationist
+cooperationist
+cooperations
+co-operative
+cooperative
+co-operatively
+cooperatively
+co-operativeness
+cooperativeness
+cooperatives
+co-operator
+cooperator
+cooperators
+co-operculum
+coopered
+Cooperia
+cooperies
+coopering
+cooperite
+Cooperman
+coopers
+Coopersburg
+Coopersmith
+Cooperstein
+Cooperstown
+Coopersville
+cooper's-wood
+coopery
+cooping
+coops
+co-opt
+coopt
+co-optate
+cooptate
+co-optation
+cooptation
+co-optative
+cooptative
+coopted
+coopting
+co-option
+cooption
+cooptions
+co-optive
+cooptive
+coopts
+co-ordain
+coordain
+co-ordainer
+co-order
+co-ordinacy
+co-ordinal
+coordinal
+co-ordinance
+co-ordinancy
+co-ordinate
+coordinate
+coordinated
+co-ordinately
+coordinately
+co-ordinateness
+coordinateness
+coordinates
+coordinating
+co-ordination
+coordination
+coordinations
+co-ordinative
+coordinative
+co-ordinator
+coordinator
+coordinators
+co-ordinatory
+coordinatory
+cooree
+Coorg
+co-organize
+coorie
+cooried
+coorieing
+coories
+co-origin
+co-original
+co-originality
+Coors
+co-orthogonal
+co-orthotomic
+cooruptibly
+Coos
+coos
+Coosa
+Coosada
+cooser
+coosers
+coosify
+co-ossification
+co-ossify
+coost
+Coosuc
+coot
+cootch
+Cooter
+cooter
+cootfoot
+coot-footed
+cooth
+coothay
+cootie
+cooties
+coots
+cooty
+co-owner
+co-ownership
+COP
+Cop
+cop
+copa
+copable
+copacetic
+copaene
+copaiba
+copaibas
+copaibic
+Copaifera
+copain
+Copaiva
+copaiva
+copaivic
+copaiye
+Copake
+copal
+copalche
+copalchi
+copalcocote
+copaliferous
+copaline
+copalite
+copaljocote
+copalm
+copalms
+copals
+Copan
+coparallel
+coparcenar
+coparcenary
+coparcener
+coparceny
+coparenary
+coparent
+coparents
+copart
+copartaker
+copartiment
+copartner
+copartners
+copartnership
+copartnerships
+copartnery
+coparty
+copasetic
+copassionate
+copastor
+copastorate
+copastors
+copatain
+copataine
+copatentee
+co-patriot
+copatriot
+copatron
+copatroness
+copatrons
+Cope
+cope
+copeck
+copecks
+coped
+Copehan
+copei
+copeia
+Copeland
+Copelata
+Copelatae
+copelate
+copelidine
+copellidine
+copeman
+copemate
+copemates
+Copemish
+copen
+copending
+copenetrate
+Copenhagen
+copenhagen
+copens
+Copeognatha
+copepod
+Copepoda
+copepodan
+copepodous
+copepods
+coper
+coperception
+coperiodic
+Copernican
+copernican
+Copernicanism
+copernicans
+Copernicia
+Copernicus
+copernicus
+coperose
+copers
+coperta
+copes
+copesetic
+copesettic
+copesman
+copesmate
+cope-stone
+copestone
+copetitioner
+Copeville
+cophasal
+Cophetua
+cophosis
+cophouse
+Copht
+copia
+copiability
+copiable
+Copiague
+copiapite
+Copiapo
+copied
+copier
+copiers
+copies
+copihue
+copihues
+copilot
+copilots
+coping
+copings
+copingstone
+copintank
+copiopia
+copiopsia
+copiosity
+copious
+copiously
+copiousness
+copiousnesses
+copis
+copist
+copita
+coplaintiff
+coplanar
+coplanarities
+coplanarity
+coplanation
+Copland
+Coplay
+copleased
+Copley
+Coplin
+coplot
+coplots
+coplotted
+coplotter
+coplotting
+coploughing
+coplowing
+copolar
+copolymer
+copolymeric
+copolymerism
+copolymerization
+copolymerizations
+copolymerize
+copolymerized
+copolymerizing
+copolymerous
+copolymers
+copopoda
+copopsia
+coportion
+cop-out
+copout
+copouts
+Copp
+coppa
+coppaelite
+Coppard
+coppas
+copped
+Coppelia
+Coppell
+copper
+copperah
+copperahs
+copper-alloyed
+copperas
+copperases
+copper-bearing
+copper-bellied
+copper-belly
+copperbottom
+copper-bottomed
+copper-coated
+copper-colored
+copper-covered
+coppered
+copperer
+copper-faced
+copper-fastened
+Copperfield
+copperhead
+copper-headed
+Copperheadism
+copperheadism
+copperheads
+coppering
+copperish
+copperization
+copperize
+copper-leaf
+copperleaf
+copper-leaves
+copper-lined
+copper-melting
+Coppermine
+coppernose
+coppernosed
+Copperopolis
+copper-plate
+copperplate
+copperplated
+copperproof
+copper-red
+coppers
+coppersidesman
+copperskin
+copper-skinned
+copper-smelting
+copper-smith
+coppersmith
+coppersmithing
+copper-toed
+copperware
+copperwing
+copperworks
+copper-worm
+coppery
+coppery-tailed
+copperytailed
+coppet
+coppice
+coppiced
+coppice-feathered
+coppices
+coppice-topped
+coppicing
+coppin
+copping
+Coppinger
+Coppins
+copple
+copple-crown
+copplecrown
+copple-crowned
+coppled
+copple-stone
+coppling
+Coppock
+Coppola
+coppra
+coppras
+copps
+coppy
+copr
+copr-
+copra
+copraemia
+copraemic
+coprah
+coprahs
+copras
+coprecipitate
+coprecipitated
+coprecipitating
+coprecipitation
+copremia
+copremias
+copremic
+copresbyter
+co-presence
+copresence
+copresent
+copresident
+copresidents
+Copreus
+Coprides
+Coprinae
+coprince
+coprincipal
+coprincipals
+coprincipate
+Coprinus
+coprinus
+coprisoner
+coprisoners
+copro-
+coprocessing
+coprocessor
+coprocessors
+coprodaeum
+coproduce
+coproduced
+coproducer
+coproducers
+coproduces
+coproducing
+coproduct
+coproduction
+coproductions
+coproite
+coprojector
+coprolagnia
+coprolagnist
+coprolalia
+coprolaliac
+coprolite
+coprolith
+coprolitic
+coprology
+copromisor
+copromote
+copromoted
+copromoter
+copromoters
+copromotes
+copromoting
+coprophagan
+coprophagia
+coprophagist
+coprophagous
+coprophagy
+coprophilia
+coprophiliac
+coprophilic
+coprophilism
+coprophilous
+coprophobia
+coprophobic
+coprophyte
+coproprietor
+coproprietors
+coproprietorship
+coproprietorships
+cop-rose
+coprose
+Coprosma
+coprosma
+coprostanol
+coprostasia
+coprostasis
+coprostasophobia
+coprosterol
+coprozoic
+COPS
+cops
+copse
+copse-clad
+copse-covered
+copses
+copsewood
+copsewooded
+copsing
+copsole
+copsy
+Copt
+copt
+copter
+copters
+Coptic
+coptic
+coptine
+Coptis
+copublish
+copublished
+copublisher
+copublishers
+copublishes
+copublishing
+copula
+copulable
+copulae
+copular
+copularium
+copulas
+copulate
+copulated
+copulates
+copulating
+copulation
+copulations
+copulative
+copulatively
+copulatives
+copulatory
+copunctal
+copurchaser
+copurify
+copus
+copy
+copybook
+copybooks
+copyboy
+copyboys
+copycat
+copycats
+copycatted
+copycatting
+copycutter
+copydesk
+copydesks
+copy-edit
+copyedit
+copyfitter
+copyfitting
+copygraph
+copygraphed
+copyhold
+copyholder
+copyholders
+copyholding
+copyholds
+copying
+copyism
+copyist
+copyists
+copyman
+copyread
+copyreader
+copyreaders
+copyreading
+copyright
+copyrightable
+copyrighted
+copyrighter
+copyrighting
+copyrights
+copywise
+copywriter
+copywriters
+copywriting
+COQ
+coque
+coquecigrue
+coquelicot
+Coquelin
+coqueluche
+coquet
+coquetoon
+coquetries
+coquetry
+coquets
+coquette
+coquetted
+coquettes
+coquetting
+coquettish
+coquettishly
+coquettishness
+coquicken
+Coquilhatville
+coquilla
+coquillage
+Coquille
+coquille
+coquilles
+coquimbite
+Coquimbo
+coquin
+coquina
+coquinas
+coquita
+Coquitlam
+coquito
+coquitos
+Cor
+Cor.
+cor
+cor-
+cor.
+Cora
+cora
+Corabeca
+Corabecan
+Corabel
+Corabella
+Corabelle
+corach
+Coraciae
+coracial
+Coracias
+Coracii
+Coraciidae
+coraciiform
+Coraciiformes
+coracine
+coracle
+coracler
+coracles
+coraco-
+coracoacromial
+coracobrachial
+coracobrachialis
+coracoclavicular
+coracocostal
+coracohumeral
+coracohyoid
+coracoid
+coracoidal
+coracoids
+coracomandibular
+coracomorph
+Coracomorphae
+coracomorphic
+coracopectoral
+coracoprocoracoid
+coracoradialis
+coracoscapular
+coracosteon
+coracovertebral
+coradical
+co-radicate
+coradicate
+corage
+coraggio
+coragio
+corah
+coraise
+coraji
+Coral
+coral
+coral-beaded
+coralbells
+coralberries
+coralberry
+coral-bound
+coral-built
+coralbush
+coral-buttoned
+coral-colored
+coraled
+coralene
+coral-fishing
+coralflower
+coral-girt
+Coralie
+Coraline
+coralist
+coralita
+coralla
+corallet
+Corallian
+corallic
+Corallidae
+corallidomous
+coralliferous
+coralliform
+Coralligena
+coralligenous
+coralligerous
+corallike
+corallin
+Corallina
+Corallinaceae
+corallinaceous
+coralline
+corallita
+corallite
+Corallium
+coralloid
+coralloidal
+Corallorhiza
+corallum
+Corallus
+coral-making
+coral-plant
+coral-producing
+coral-red
+coralroot
+coral-rooted
+corals
+coral-secreting
+coral-snake
+coral-tree
+Coralville
+coral-wood
+coralwort
+Coralye
+Coralyn
+Coram
+coram
+Corambis
+Coramine
+coran
+corance
+coranoch
+Corantijn
+coranto
+corantoes
+corantos
+Coraopolis
+Corapeake
+coraveca
+Coray
+corban
+corbans
+corbe
+corbeau
+corbed
+Corbeil
+corbeil
+corbeille
+corbeilles
+corbeils
+corbel
+corbeled
+corbeling
+corbelled
+corbelling
+corbels
+Corbet
+corbet
+Corbett
+Corbettsville
+corbicula
+corbiculae
+corbiculate
+corbiculum
+Corbie
+corbie
+corbies
+corbie-step
+corbiestep
+Corbin
+corbina
+corbinas
+corbleu
+corblimey
+corblimy
+corbovinum
+corbula
+Corbusier
+Corby
+corby
+corcass
+corchat
+Corchorus
+corchorus
+corcir
+corcle
+corcopali
+Corcoran
+Corcovado
+Corcyra
+Corcyraean
+Cord
+cord
+cordage
+cordages
+Cordaitaceae
+cordaitaceous
+cordaitalean
+Cordaitales
+cordaitean
+Cordaites
+cordal
+Cordalia
+cordant
+cordate
+cordate-amplexicaul
+cordate-lanceolate
+cordately
+cordate-oblong
+cordate-sagittate
+cordax
+Corday
+Cordeau
+corded
+Cordeelia
+cordel
+Cordele
+Cordelia
+Cordelie
+Cordelier
+cordelier
+cordeliere
+Cordeliers
+Cordell
+cordelle
+cordelled
+cordelling
+Corder
+corder
+corders
+Cordery
+Cordesville
+cordewane
+Cordey
+Cordi
+Cordia
+cordia
+cordial
+cordialities
+cordiality
+cordialize
+cordially
+cordialness
+cordials
+cordiceps
+cordicole
+Cordie
+Cordier
+cordierite
+cordies
+cordiform
+cordigeri
+cordillera
+Cordilleran
+cordilleran
+Cordilleras
+cordilleras
+cordinar
+cordiner
+cording
+cordings
+cordis
+cordite
+cordites
+corditis
+Cordle
+cordleaf
+cordless
+cordlessly
+cordlike
+cordmaker
+Cordoba
+cordoba
+cordoban
+cordobas
+cordon
+cordonazo
+cordonazos
+cordoned
+cordoning
+cordonnet
+cordons
+Cordova
+Cordovan
+cordovan
+cordovans
+cords
+Cordula
+corduroy
+corduroyed
+corduroying
+corduroys
+cordwain
+cordwainer
+cordwainery
+cordwains
+cordwood
+cordwoods
+Cordy
+cordy
+cordycepin
+Cordyceps
+cordyl
+Cordylanthus
+Cordyline
+cordyline
+CORE
+Core
+core
+core-
+Corea
+core-baking
+corebel
+corebox
+coreceiver
+corecipient
+corecipients
+coreciprocal
+corectome
+corectomy
+corector
+core-cutting
+cored
+coredeem
+coredeemed
+coredeemer
+coredeeming
+coredeems
+coredemptress
+core-drying
+coreductase
+Coree
+Coreen
+coreflexed
+coregence
+coregency
+co-regent
+coregent
+coregnancy
+coregnant
+coregonid
+Coregonidae
+coregonine
+coregonoid
+Coregonus
+coreid
+Coreidae
+coreign
+coreigner
+coreigns
+core-jarring
+corejoice
+Corel
+corelate
+corelated
+corelates
+corelating
+co-relation
+corelation
+corelational
+corelative
+corelatively
+coreless
+co-religionist
+coreligionist
+Corell
+Corella
+corella
+Corelli
+corelysis
+Corema
+coremaker
+coremaking
+coremia
+coremium
+coremiumia
+coremorphosis
+Corena
+Corenda
+Corene
+corenounce
+coreometer
+Coreopsis
+coreopsis
+coreplastic
+coreplasty
+corepressor
+corequisite
+corer
+corers
+cores
+coresidence
+coresident
+coresidents
+coresidual
+coresign
+coresonant
+coresort
+corespect
+corespondency
+co-respondent
+corespondent
+corespondents
+Coresus
+coretomy
+Coretta
+Corette
+coreveler
+coreveller
+corevolve
+Corey
+corf
+Corfam
+Corfiote
+Corflambo
+Corfu
+corge
+corgi
+corgis
+Cori
+coria
+coriaceous
+corial
+coriamyrtin
+coriander
+corianders
+coriandrol
+Coriandrum
+Coriaria
+Coriariaceae
+coriariaceous
+coriaus
+Coricidin
+Coridon
+Corie
+coriin
+Corilla
+Corimelaena
+Corimelaenidae
+Corin
+Corina
+corindon
+Corine
+Corineus
+coring
+Corinna
+Corinne
+corinne
+Corinth
+corinth
+corinthes
+corinthiac
+Corinthian
+corinthian
+Corinthianesque
+Corinthianism
+Corinthianize
+Corinthians
+corinthians
+Corinthus
+Coriolanus
+coriparian
+Coriss
+Corissa
+corita
+corium
+co-rival
+Corixa
+Corixidae
+Cork
+cork
+corkage
+corkages
+cork-barked
+cork-bearing
+corkboard
+cork-boring
+cork-cutting
+corke
+corked
+corker
+corkers
+cork-forming
+cork-grinding
+cork-heeled
+Corkhill
+corkier
+corkiest
+corkiness
+corking
+corking-pin
+corkir
+corkish
+corkite
+corklike
+corkline
+cork-lined
+corkmaker
+corkmaking
+corks
+corkscrew
+corkscrewed
+corkscrewing
+corkscrews
+corkscrewy
+cork-tipped
+corkwing
+corkwood
+corkwoods
+corky
+corky-headed
+corky-winged
+Corley
+Corliss
+Corly
+corm
+Cormac
+Cormack
+cormel
+cormels
+Cormick
+cormidium
+Cormier
+cormlike
+cormo-
+cormogen
+cormoid
+Cormophyta
+cormophyte
+cormophytic
+cormorant
+cormorants
+cormous
+corms
+cormus
+CORN
+Corn
+corn
+Cornaceae
+cornaceous
+cornada
+cornage
+Cornall
+cornamute
+cornball
+cornballs
+corn-beads
+cornbell
+cornberry
+cornbin
+cornbind
+cornbinks
+cornbird
+cornbole
+cornbottle
+cornbrash
+cornbread
+corncake
+corncakes
+corn-cob
+corncob
+corncobs
+corncockle
+corn-colored
+corn-cracker
+corncracker
+corn-crake
+corncrake
+corncrib
+corncribs
+corncrusher
+corncutter
+corncutting
+corn-devouring
+corndodger
+cornea
+corneagen
+corneal
+corneas
+corn-eater
+corned
+Corneille
+cornein
+corneine
+corneitis
+Cornel
+cornel
+Cornela
+Cornelia
+cornelian
+Cornelie
+Cornelis
+Cornelius
+Cornell
+cornell
+Cornelle
+cornels
+cornemuse
+corneo-
+corneocalcareous
+corneosclerotic
+corneosiliceous
+corneous
+Corner
+corner
+cornerback
+cornerbind
+cornercap
+cornered
+cornerer
+cornering
+corner-man
+cornerman
+cornerpiece
+corners
+corner-stone
+cornerstone
+cornerstones
+Cornersville
+cornerways
+cornerwise
+CORNET
+cornet
+cornet-a-pistons
+cornetcies
+cornetcy
+corneter
+cornetfish
+cornetfishes
+cornetist
+cornetists
+cornets
+cornett
+cornette
+cornetter
+cornetti
+cornettino
+cornettist
+cornetto
+Cornettsville
+corneule
+corneum
+Cornew
+corn-exporting
+Corney
+cornfactor
+corn-fed
+cornfed
+corn-feeding
+cornfield
+cornfields
+corn-flag
+cornflag
+cornflakes
+cornfloor
+corn-flour
+cornflour
+corn-flower
+cornflower
+cornflowers
+corngrower
+corn-growing
+cornhole
+cornhouse
+corn-husk
+cornhusk
+cornhusker
+cornhusking
+cornhusks
+Cornia
+cornic
+cornice
+corniced
+cornices
+corniche
+corniches
+Cornichon
+cornichon
+cornicing
+cornicle
+cornicles
+cornicular
+corniculate
+corniculer
+corniculum
+Cornie
+cornier
+corniest
+Corniferous
+corniferous
+cornific
+cornification
+cornified
+corniform
+cornify
+cornigeous
+cornigerous
+cornily
+cornin
+corniness
+Corning
+corning
+corniplume
+Cornish
+cornish
+Cornishman
+cornishman
+Cornishmen
+cornix
+Cornland
+cornland
+corn-law
+Cornlea
+cornless
+cornloft
+corn-master
+cornmaster
+cornmeal
+cornmeals
+cornmonger
+cornmuse
+Corno
+corno
+cornopean
+Cornopion
+corn-picker
+cornpipe
+corn-planting
+corn-producing
+corn-rent
+cornrick
+cornroot
+cornrow
+cornrows
+corns
+cornsack
+corn-salad
+corn-snake
+Cornstalk
+corn-stalk
+cornstalk
+cornstalks
+cornstarch
+cornstarches
+cornstone
+cornstook
+cornu
+cornua
+cornual
+cornuate
+cornuated
+cornubianite
+cornucopia
+Cornucopiae
+cornucopian
+cornucopias
+cornucopiate
+cornule
+cornulite
+Cornulites
+cornupete
+Cornus
+cornus
+cornuses
+cornute
+cornuted
+cornutin
+cornutine
+cornuting
+cornuto
+cornutos
+cornutus
+Cornville
+Cornwall
+cornwall
+Cornwallis
+cornwallis
+cornwallises
+cornwallite
+Cornwallville
+Cornwell
+Corny
+corny
+Coro
+coro-
+coroa
+Coroado
+corocleisis
+corodiary
+corodiastasis
+corodiastole
+corodies
+corody
+Coroebus
+corojo
+corol
+corolitic
+coroll
+Corolla
+corolla
+corollaceous
+corollarial
+corollarially
+corollaries
+corollary
+corollas
+corollate
+corollated
+corollet
+corolliferous
+corollifloral
+corolliform
+corollike
+corolline
+corollitic
+coromandel
+coromell
+corometer
+corona
+coronach
+coronachs
+coronad
+coronadite
+Coronado
+coronado
+coronados
+coronae
+coronagraph
+coronagraphic
+coronal
+coronale
+coronaled
+coronalled
+coronally
+coronals
+coronamen
+coronaries
+coronary
+coronas
+coronate
+coronated
+coronation
+coronations
+coronatorial
+coronavirus
+corone
+Coronel
+coronel
+coronels
+coronene
+coroner
+coroners
+coronership
+coronet
+coroneted
+coronetlike
+coronets
+coronetted
+coronettee
+coronetty
+coroniform
+Coronilla
+coronillin
+coronillo
+coronion
+Coronis
+coronis
+coronitis
+coronium
+coronize
+coronobasilar
+coronofacial
+coronofrontal
+coronograph
+coronographic
+coronoid
+Coronopus
+coronule
+Coronus
+coroparelcysis
+coroplast
+coroplasta
+coroplastae
+coroplastic
+coroplasty
+Coropo
+coroscopy
+corosif
+Corot
+corotate
+corotated
+corotates
+corotating
+corotation
+corotomy
+Corotto
+coroun
+coroutine
+coroutines
+Corozal
+corozo
+corozos
+Corp
+corp
+corp.
+Corpl
+corpl
+corpn
+corpora
+corporacies
+corporacy
+Corporal
+corporal
+corporalcy
+corporale
+corporales
+corporalism
+corporalities
+corporality
+corporally
+corporals
+corporalship
+corporas
+corporate
+corporately
+corporateness
+corporation
+corporational
+corporationer
+corporationism
+corporations
+corporatism
+corporatist
+corporative
+corporatively
+corporativism
+corporator
+corporature
+corpore
+corporeal
+corporealist
+corporeality
+corporealization
+corporealize
+corporeally
+corporealness
+corporeals
+corporeity
+corporeous
+corporification
+corporify
+corporosity
+corposant
+corps
+corpsbruder
+corpse
+corpse-candle
+corpselike
+corpselikeness
+corpses
+corpsman
+corpsmen
+corpsy
+corpulence
+corpulences
+corpulencies
+corpulency
+corpulent
+corpulently
+corpulentness
+corpus
+corpuscle
+corpuscles
+corpuscular
+corpuscularian
+corpuscularity
+corpusculated
+corpuscule
+corpusculous
+corpusculum
+Corr
+corr
+corr.
+corrade
+corraded
+corrades
+corradial
+corradiate
+corradiated
+corradiating
+corradiation
+corrading
+Corrado
+corral
+Corrales
+corralled
+corralling
+corrals
+corrasion
+corrasive
+Correa
+correal
+correality
+correct
+correctable
+correctant
+corrected
+correctedness
+correcter
+correctest
+correctible
+correctify
+correcting
+correctingly
+correction
+correctional
+correctionalist
+correctioner
+corrections
+Correctionville
+correctitude
+corrective
+correctively
+correctiveness
+correctives
+correctly
+correctness
+correctnesses
+corrector
+correctorship
+correctory
+correctress
+correctrice
+corrects
+Correggio
+Corregidor
+corregidor
+corregidores
+corregidors
+corregimiento
+corregimientos
+correl
+correl.
+correlatable
+correlate
+correlated
+correlates
+correlating
+correlation
+correlational
+correlations
+correlative
+correlatively
+correlativeness
+correlatives
+correlativism
+correlativity
+correligionist
+Correll
+correllated
+correllation
+correllations
+Correna
+corrente
+correo
+correption
+corresol
+corresp
+correspond
+corresponded
+correspondence
+correspondences
+correspondencies
+correspondency
+correspondent
+correspondential
+correspondentially
+correspondently
+correspondents
+correspondentship
+corresponder
+corresponding
+correspondingly
+corresponds
+corresponsion
+corresponsive
+corresponsively
+Correy
+Correze
+Corri
+Corrianne
+corrida
+corridas
+corrido
+corridor
+corridored
+corridors
+Corrie
+corrie
+Corriedale
+corriedale
+Corrientes
+corries
+Corrigan
+Corriganville
+corrige
+corrigenda
+corrigendum
+corrigent
+corrigibility
+corrigible
+corrigibleness
+corrigibly
+Corrigiola
+Corrigiolaceae
+Corrina
+Corrine
+Corrinne
+corrival
+corrivality
+corrivalry
+corrivals
+corrivalship
+corrivate
+corrivation
+corrive
+corrobboree
+corrober
+corroborant
+corroborate
+corroborated
+corroborates
+corroborating
+corroboration
+corroborations
+corroborative
+corroboratively
+corroborator
+corroboratorily
+corroborators
+corroboratory
+corroboree
+corroboreed
+corroboreeing
+corroborees
+corrobori
+corrodant
+corrode
+corroded
+corrodent
+Corrodentia
+corroder
+corroders
+corrodes
+corrodiary
+corrodibility
+corrodible
+corrodier
+corrodies
+corroding
+corrodingly
+corrody
+Corron
+corrosibility
+corrosible
+corrosibleness
+corrosion
+corrosional
+corrosionproof
+corrosions
+corrosive
+corrosived
+corrosively
+corrosiveness
+corrosives
+corrosiving
+corrosivity
+corrugant
+corrugate
+corrugated
+corrugates
+corrugating
+corrugation
+corrugations
+corrugator
+corrugators
+corrugent
+corrump
+corrumpable
+corrup
+corrupable
+corrupt
+corrupted
+corruptedly
+corruptedness
+corrupter
+corruptest
+corruptful
+corruptibilities
+corruptibility
+corruptible
+corruptibleness
+corruptibly
+corrupting
+corruptingly
+corruption
+corruptionist
+corruptions
+corruptious
+corruptive
+corruptively
+corruptless
+corruptly
+corruptness
+corruptor
+corruptress
+corrupts
+Corry
+Corryton
+corsac
+corsacs
+corsage
+corsages
+corsaint
+corsair
+corsairs
+corsak
+Corse
+corse
+corselet
+corseleted
+corseleting
+corselets
+corselette
+corsepresent
+corseque
+corser
+corses
+corsesque
+corset
+corseted
+corsetier
+corsetiere
+corseting
+corsetless
+corsetry
+corsets
+Corsetti
+Corsica
+Corsican
+Corsicana
+corsie
+Corsiglia
+corsite
+corslet
+corslets
+corsned
+Corso
+corso
+Corson
+corsos
+corsy
+Cort
+cort
+corta
+Cortaderia
+Cortaillod
+Cortaro
+cortaro
+cortege
+corteges
+corteise
+Cortelyou
+Cortemadera
+Cortes
+cortes
+Cortese
+cortex
+cortexes
+Cortez
+cortez
+Corti
+cortian
+cortical
+cortically
+corticate
+corticated
+corticating
+cortication
+cortices
+corticiferous
+corticiform
+corticifugal
+corticifugally
+corticin
+corticine
+corticipetal
+corticipetally
+Corticium
+cortico-
+corticoafferent
+corticoefferent
+corticoid
+corticole
+corticoline
+corticolous
+corticopeduncular
+corticose
+corticospinal
+corticosteroid
+corticosteroids
+corticosterone
+corticostriate
+corticotrophin
+corticotropin
+corticous
+Cortie
+cortile
+cortin
+cortina
+cortinae
+cortinarious
+Cortinarius
+cortinate
+cortine
+cortins
+cortisol
+cortisols
+cortisone
+cortisones
+Cortland
+cortlandtite
+Cortney
+Corton
+Cortona
+Cortot
+Corty
+coruco
+coruler
+Corum
+Corumba
+Coruminacan
+Coruna
+corundophilite
+corundum
+corundums
+Corunna
+corupay
+coruscant
+coruscate
+coruscated
+coruscates
+coruscating
+coruscation
+coruscations
+coruscative
+corv
+Corvallis
+corve
+corved
+corvee
+corvees
+corven
+corver
+corves
+Corvese
+corvet
+corvets
+corvette
+corvettes
+corvetto
+Corvi
+Corvidae
+corviform
+corvillosum
+Corvin
+corvina
+Corvinae
+corvinas
+corvine
+corviser
+corvisor
+corvktte
+Corvo
+corvo
+corvoid
+corvorant
+Corvus
+corvus
+Corwin
+Corwith
+Corwun
+Cory
+cory
+Coryat
+Coryate
+Corybant
+corybant
+Corybantes
+Corybantian
+corybantiasm
+Corybantic
+corybantic
+Corybantine
+corybantish
+Corybants
+corybulbin
+corybulbine
+corycavamine
+corycavidin
+corycavidine
+corycavine
+Corycia
+Corycian
+corydalin
+corydaline
+Corydalis
+corydalis
+Coryden
+corydine
+Corydon
+corydon
+corydora
+Coryell
+coryl
+Corylaceae
+corylaceous
+corylet
+corylin
+Corylopsis
+Corylus
+corymb
+corymbed
+corymbiate
+corymbiated
+corymbiferous
+corymbiform
+corymblike
+corymbose
+corymbosely
+corymbous
+corymbs
+corynebacteria
+corynebacterial
+Corynebacterium
+corynebacterium
+coryneform
+Corynetes
+Coryneum
+corynid
+corynine
+corynite
+Corynne
+Corynocarpaceae
+corynocarpaceous
+Corynocarpus
+corynteria
+coryph
+Corypha
+Coryphaea
+coryphaei
+Coryphaena
+coryphaenid
+Coryphaenidae
+coryphaenoid
+Coryphaenoididae
+coryphaeus
+Coryphasia
+coryphee
+coryphees
+coryphene
+Coryphodon
+coryphodon
+coryphodont
+coryphylly
+corypphaei
+corystoid
+Corythus
+corytuberine
+coryza
+coryzal
+coryzas
+COS
+Cos
+cos
+cosalite
+cosaque
+cosavior
+Cosby
+coscet
+Coscinodiscaceae
+Coscinodiscus
+coscinomancy
+Coscob
+coscoroba
+coscript
+cose
+coseasonal
+coseat
+cosec
+cosecant
+cosecants
+cosech
+cosecs
+cosectarian
+cosectional
+cosed
+cosegment
+coseier
+coseiest
+coseism
+coseismal
+coseismic
+cosen
+cosenator
+cosentiency
+co-sentient
+cosentient
+Cosenza
+coservant
+coses
+cosession
+coset
+cosets
+Cosetta
+Cosette
+cosettler
+cosey
+coseys
+Cosgrave
+Cosgrove
+cosh
+cosharer
+cosheath
+coshed
+cosher
+coshered
+cosherer
+cosheries
+coshering
+coshers
+coshery
+coshes
+coshing
+Coshocton
+Coshow
+cosie
+cosied
+cosier
+cosies
+cosiest
+cosign
+cosignatories
+co-signatory
+cosignatory
+cosigned
+co-signer
+cosigner
+cosigners
+cosignificative
+cosigning
+cosignitary
+cosigns
+cosily
+Cosimo
+cosin
+cosinage
+COSINE
+cosine
+cosines
+cosiness
+cosinesses
+cosing
+cosingular
+cosins
+cosinusoid
+Cosma
+Cosmati
+Cosme
+cosmecology
+cosmesis
+Cosmetas
+cosmete
+cosmetic
+cosmetical
+cosmetically
+cosmetician
+cosmeticize
+cosmetics
+cosmetiste
+cosmetological
+cosmetologist
+cosmetologists
+cosmetology
+COSMIC
+cosmic
+cosmical
+cosmicality
+cosmically
+cosmico-natural
+cosmine
+cosmism
+cosmisms
+cosmist
+cosmists
+Cosmo
+cosmo
+cosmo-
+cosmochemical
+cosmochemistry
+cosmocracy
+cosmocrat
+cosmocratic
+cosmodrome
+cosmogenesis
+cosmogenetic
+cosmogenic
+cosmogeny
+cosmognosis
+cosmogonal
+cosmogoner
+cosmogonic
+cosmogonical
+cosmogonies
+cosmogonist
+cosmogonists
+cosmogonize
+cosmogony
+cosmographer
+cosmographic
+cosmographical
+cosmographically
+cosmographies
+cosmographist
+cosmography
+cosmoid
+cosmolabe
+cosmolatry
+cosmoline
+cosmolined
+cosmolining
+cosmologic
+cosmological
+cosmologically
+cosmologies
+cosmologist
+cosmologists
+cosmology
+cosmologygy
+cosmometry
+cosmonaut
+cosmonautic
+cosmonautical
+cosmonautically
+cosmonautics
+cosmonauts
+cosmopathic
+cosmoplastic
+cosmopoietic
+cosmopolicy
+Cosmopolis
+cosmopolis
+cosmopolises
+cosmopolitan
+cosmopolitanisation
+cosmopolitanise
+cosmopolitanised
+cosmopolitanising
+cosmopolitanism
+cosmopolitanization
+cosmopolitanize
+cosmopolitanized
+cosmopolitanizing
+cosmopolitanly
+cosmopolitans
+cosmopolite
+cosmopolitic
+cosmopolitical
+cosmopolitics
+cosmopolitism
+cosmorama
+cosmoramic
+cosmorganic
+COSMOS
+Cosmos
+cosmos
+cosmoscope
+cosmoses
+cosmosophy
+cosmosphere
+cosmotellurian
+cosmotheism
+cosmotheist
+cosmotheistic
+cosmothetic
+Cosmotron
+cosmotron
+cosmozoan
+cosmozoans
+cosmozoic
+cosmozoism
+cosonant
+cosounding
+co-sovereign
+cosovereign
+cosovereignty
+COSPAR
+cospecies
+cospecific
+cosphered
+cosplendor
+cosplendour
+cosponsor
+cosponsored
+cosponsoring
+cosponsors
+cosponsorship
+cosponsorships
+coss
+Cossack
+cossack
+cossacks
+Cossaean
+cossas
+Cossayuna
+cosse
+cosset
+cosseted
+cosseting
+cossets
+cossette
+cossetted
+cossetting
+cosshen
+cossic
+cossid
+Cossidae
+cossie
+cossnent
+cossyrite
+Cost
+cost
+Costa
+costa
+cost-account
+costae
+Costaea
+costage
+Costain
+costal
+costalgia
+costally
+costal-nerved
+costander
+Costanoan
+Costanza
+Costanzia
+COSTAR
+co-star
+costar
+costard
+costard-monger
+costards
+co-starred
+costarred
+co-starring
+costarring
+costars
+Costata
+costate
+costated
+costean
+costeaning
+costectomies
+costectomy
+costed
+costeen
+cost-effective
+Coste-Floret
+costellate
+Costello
+Costen
+Coster
+coster
+costerdom
+Costermansville
+costermonger
+costers
+cost-free
+costful
+costicartilage
+costicartilaginous
+costicervical
+costiferous
+costiform
+Costigan
+Costilla
+Costin
+costing
+costing-out
+costious
+costipulator
+costispinal
+costive
+costively
+costiveness
+costless
+costlessly
+costlessness
+costlew
+costlier
+costliest
+costliness
+costlinesses
+costly
+costmaries
+costmary
+costo-
+costoabdominal
+costoapical
+costocentral
+costochondral
+costoclavicular
+costocolic
+costocoracoid
+costodiaphragmatic
+costogenic
+costoinferior
+costophrenic
+costopleural
+costopneumopexy
+costopulmonary
+costoscapular
+costosternal
+costosuperior
+costothoracic
+costotome
+costotomies
+costotomy
+costotrachelian
+costotransversal
+costotransverse
+costovertebral
+costoxiphoid
+cost-plus
+costraight
+costrel
+costrels
+costs
+costula
+costulation
+costume
+costumed
+costumer
+costumers
+costumery
+costumes
+costumey
+costumic
+costumier
+costumiere
+costumiers
+costuming
+costumire
+costumist
+costusroot
+cosubject
+co-subordinate
+cosubordinate
+cosuffer
+cosufferer
+cosuggestion
+cosuitor
+co-supreme
+co-sureties
+co-surety
+cosurety
+cosuretyship
+cosustain
+coswearer
+cosy
+cosying
+cosymmedian
+Cosyra
+COT
+Cot
+cot
+Cotabato
+cotabulate
+cotan
+cotangent
+cotangential
+cotangents
+cotans
+cotarius
+cotarnin
+cotarnine
+Cotati
+cotbetty
+cotch
+Cote
+cote
+Coteau
+coteau
+coteaux
+coted
+coteen
+coteful
+cote-hardie
+cotehardie
+cotele
+coteline
+coteller
+cotemporane
+cotemporanean
+cotemporaneous
+cotemporaneously
+cotemporaries
+cotemporarily
+cotemporary
+cotenancy
+co-tenant
+cotenant
+cotenants
+cotenure
+coterell
+coterie
+coteries
+coterminal
+coterminous
+coterminously
+coterminousness
+cotery
+cotes
+Cotesfield
+Cotesian
+cotesian
+coth
+cotham
+cothamore
+cothe
+cotheorist
+Cotherstone
+cothish
+cothon
+cothouse
+cothurn
+cothurnal
+cothurnate
+cothurned
+cothurni
+cothurnian
+cothurnni
+cothurns
+cothurnus
+cothy
+cotice
+coticed
+coticing
+coticular
+co-tidal
+cotidal
+cotillage
+cotillion
+cotillions
+cotillon
+cotillons
+coting
+Cotinga
+cotinga
+cotingid
+Cotingidae
+cotingoid
+Cotinus
+cotise
+cotised
+cotising
+cotitular
+cotland
+Cotman
+cotman
+coto
+cotoin
+Cotolaurel
+Cotonam
+Cotoneaster
+cotoneaster
+cotonia
+cotonier
+Cotonou
+Cotopaxi
+cotorment
+cotoro
+cotoros
+cotorture
+Cotoxo
+cotquean
+cotqueans
+cotraitor
+cotransduction
+cotransfuse
+cotranslator
+cotranspire
+cotransubstantiate
+cotrespasser
+cotrine
+cotripper
+co-trustee
+cotrustee
+COTS
+cots
+Cotsen
+cotset
+cotsetla
+cotsetland
+cotsetle
+Cotswold
+cotswold
+Cotswolds
+Cott
+cott
+cotta
+cottabus
+cottae
+cottage
+cottaged
+cottager
+cottagers
+cottages
+Cottageville
+cottagey
+cottar
+cottars
+cottas
+Cottbus
+cotte
+cotted
+Cottekill
+Cottenham
+Cotter
+cotter
+cottered
+cotterel
+Cotterell
+cottering
+cotterite
+cotters
+cotterway
+cottid
+Cottidae
+cottier
+cottierism
+cottiers
+cottiest
+cottiform
+cottise
+Cottle
+Cottleville
+cottoid
+Cotton
+cotton
+cottonade
+cotton-backed
+cotton-baling
+cotton-bleaching
+cottonbush
+cotton-clad
+cotton-covered
+Cottondale
+cotton-dyeing
+cottoned
+cottonee
+cottoneer
+cottoner
+cotton-ginning
+cotton-growing
+Cottonian
+cottoning
+cottonization
+cottonize
+cotton-knitting
+cottonless
+cottonmouth
+cottonmouths
+cottonocracy
+Cottonopolis
+cottonopolis
+cottonpickin'
+cotton-picking
+cottonpicking
+cotton-planting
+Cottonport
+cotton-printing
+cotton-producing
+cottons
+cotton-sampling
+cottonseed
+cottonseeds
+cotton-sick
+cotton-spinning
+cottontail
+cottontails
+Cottonton
+cottontop
+Cottontown
+cotton-weaving
+cottonweed
+cottonwick
+cotton-wicked
+cottonwood
+cottonwoods
+cottony
+cottrel
+Cottrell
+Cottus
+cotty
+Cotuit
+cotuit
+cotula
+Cotulla
+cotunnite
+Coturnix
+cotutor
+cotwal
+cotwin
+cotwinned
+cotwist
+Coty
+-cotyl
+cotyl-
+cotyla
+cotylar
+cotyle
+cotyledon
+cotyledonal
+cotyledonar
+cotyledonary
+cotyledonoid
+cotyledonous
+cotyledons
+Cotyleus
+cotyliform
+cotyligerous
+cotyliscus
+cotyloid
+cotyloidal
+Cotylophora
+cotylophorous
+cotylopubic
+cotylosacral
+cotylosaur
+Cotylosauria
+cotylosaurian
+cotype
+cotypes
+Cotys
+Cotyttia
+couac
+coucal
+couch
+couchancy
+couchant
+couchantly
+couche
+couched
+couchee
+Coucher
+coucher
+couchers
+couches
+couchette
+couching
+couchings
+couchmaker
+couchmaking
+Couchman
+couchmate
+couchy
+cou-cou
+coud
+coude
+coudee
+Couderay
+Coudersport
+Coue
+coue
+Coueism
+coueism
+cougar
+cougars
+cough
+coughed
+cougher
+coughers
+coughing
+Coughlin
+coughroot
+coughs
+coughweed
+coughwort
+cougnar
+couhage
+coul
+coulage
+could
+couldest
+couldn
+couldna
+couldn't
+couldnt
+couldron
+couldst
+coulee
+coulees
+couleur
+coulibiaca
+coulie
+coulier
+coulis
+coulisse
+coulisses
+couloir
+couloirs
+Coulomb
+coulomb
+Coulombe
+coulombic
+coulombmeter
+coulombs
+coulometer
+coulometric
+coulometrically
+coulometry
+Coulommiers
+Coulson
+Coulter
+coulter
+coulterneb
+Coulters
+coulters
+Coulterville
+coulthard
+coulure
+couma
+coumalic
+coumalin
+coumaphos
+coumara
+coumaran
+coumarane
+coumarate
+coumaric
+coumarilic
+coumarin
+coumarinic
+coumarins
+coumarone
+coumarone-indene
+coumarou
+Coumarouna
+coumarous
+Coumas
+coumbite
+Counce
+council
+councilist
+councillary
+councillor
+councillors
+councillorship
+councilman
+councilmanic
+councilmen
+councilor
+councilors
+councilorship
+councils
+councilwoman
+councilwomen
+counderstand
+co-une
+co-unite
+counite
+couniversal
+counsel
+counselable
+counseled
+counselee
+counselful
+counseling
+counsel-keeper
+counsellable
+counselled
+counselling
+counsellor
+counsellors
+counsellorship
+counselor
+counselor-at-law
+counselors
+counselors-at-law
+counselorship
+counsels
+counsinhood
+Count
+count
+countability
+countable
+countableness
+countably
+countdom
+countdown
+countdowns
+counted
+Countee
+countenance
+countenanced
+countenancer
+countenances
+countenancing
+counter
+counter-
+counterabut
+counteraccusation
+counteraccusations
+counter-acquittance
+counteracquittance
+counteract
+counteractant
+counteracted
+counteracter
+counteracting
+counteractingly
+counteraction
+counteractions
+counteractive
+counteractively
+counteractivity
+counteractor
+counteracts
+counteraddress
+counteradvance
+counteradvantage
+counteradvice
+counteradvise
+counteraffirm
+counteraffirmation
+counter-agency
+counteragency
+counteragent
+counteraggression
+counteraggressions
+counteragitate
+counteragitation
+counteralliance
+counterambush
+counterannouncement
+counteranswer
+counterappeal
+counterappellant
+counter-approach
+counterapproach
+counterapse
+counter-arch
+counterarch
+counterargue
+counterargued
+counterargues
+counterarguing
+counterargument
+counterartillery
+counterassault
+counterassaults
+counterassertion
+counterassociation
+counterassurance
+counterattack
+counterattacked
+counterattacker
+counterattacking
+counterattacks
+counterattestation
+counterattired
+counter-attraction
+counterattraction
+counterattractive
+counterattractively
+counteraverment
+counteravouch
+counteravouchment
+counterbalance
+counterbalanced
+counterbalances
+counterbalancing
+counterband
+counterbarrage
+counter-barry
+counterbase
+counter-battery
+counterbattery
+counter-beam
+counterbeating
+counterbend
+counterbewitch
+counterbid
+counterbids
+counter-bill
+counterblast
+counterblockade
+counterblockades
+counterblow
+counterblows
+counterbond
+counterborder
+counter-bore
+counterbore
+counterbored
+counterborer
+counterboring
+counter-boulle
+counterboulle
+counterboycott
+counter-brace
+counterbrace
+counterbracing
+counterbranch
+counterbrand
+counterbreastwork
+counterbuff
+counterbuilding
+countercampaign
+countercampaigns
+counter-carte
+countercarte
+counter-cast
+counter-caster
+countercathexis
+countercause
+counterchallenge
+counterchallenges
+counterchange
+counterchanged
+counterchanging
+countercharge
+countercharged
+countercharges
+countercharging
+countercharm
+countercheck
+countercheer
+counter-chevroned
+counter-claim
+counterclaim
+counterclaimant
+counterclaimed
+counterclaiming
+counterclaims
+counterclassification
+counterclassifications
+counter-clockwise
+counterclockwise
+countercolored
+counter-coloured
+countercommand
+counter-company
+countercompany
+countercompetition
+countercomplaint
+countercomplaints
+countercompony
+countercondemnation
+counterconditioning
+counterconquest
+counterconversion
+counter-couchant
+countercouchant
+countercoup
+countercoupe
+countercoups
+countercourant
+countercraft
+countercriticism
+countercriticisms
+countercross
+countercry
+countercultural
+counter-culture
+counterculture
+countercultures
+counterculturist
+counter-current
+countercurrent
+countercurrently
+countercurrentwise
+counterdance
+counterdash
+counterdecision
+counterdeclaration
+counterdecree
+counter-deed
+counterdefender
+counterdemand
+counterdemands
+counterdemonstrate
+counterdemonstration
+counterdemonstrations
+counterdemonstrator
+counterdemonstrators
+counterdeputation
+counterdesire
+counterdevelopment
+counterdifficulty
+counterdigged
+counterdike
+counterdiscipline
+counter-disengage
+counterdisengage
+counterdisengagement
+counterdistinct
+counterdistinction
+counterdistinguish
+counterdoctrine
+counterdogmatism
+counterdraft
+counter-drain
+counterdrain
+counter-draw
+counterdrive
+counter-earth
+counterearth
+countered
+countereffect
+countereffects
+counterefficiency
+countereffort
+counterefforts
+counterembargo
+counterembargos
+counter-embattled
+counterembattled
+counter-embowed
+counterembowed
+counterenamel
+counterend
+counterenergy
+counterengagement
+counterengine
+counterenthusiasm
+counterentry
+counterequivalent
+counter-ermine
+counterermine
+counterespionage
+counterestablishment
+counter-evidence
+counterevidence
+counterevidences
+counterexaggeration
+counterexample
+counterexamples
+counterexcitement
+counterexcommunication
+counterexercise
+counterexplanation
+counterexposition
+counterexpostulation
+counterextend
+counter-extension
+counterextension
+counter-faced
+counterfact
+counterfactual
+counterfactually
+counterfallacy
+counter-faller
+counterfaller
+counterfeisance
+counterfeit
+counterfeited
+counterfeiter
+counterfeiters
+counterfeiting
+counterfeitly
+counterfeitment
+counterfeitness
+counterfeits
+counterferment
+counter-fessed
+counterfessed
+counterfire
+counter-fissure
+counterfix
+counterflange
+counterflashing
+counterfleury
+counterflight
+counterflory
+counterflow
+counterflux
+counterfoil
+counter-force
+counterforce
+counterformula
+counterfort
+counterfugue
+countergabble
+countergabion
+countergage
+countergager
+countergambit
+countergarrison
+counter-gauge
+countergauge
+countergauger
+counter-gear
+countergift
+countergirded
+counterglow
+counter-guard
+counterguard
+counterguerilla
+counterguerrila
+counterguerrilla
+counterhaft
+counterhammering
+counter-hem
+counterhypothesis
+counteridea
+counterideal
+counterimagination
+counterimitate
+counterimitation
+counterimpulse
+counterindentation
+counterindented
+counterindicate
+counter-indication
+counterindication
+counterindoctrinate
+counterindoctrination
+counterinflationary
+counter-influence
+counterinfluence
+counterinfluences
+countering
+counterinsult
+counterinsurgencies
+counterinsurgency
+counterinsurgent
+counterinsurgents
+counterintelligence
+counterinterest
+counterinterpretation
+counterintrigue
+counterintrigues
+counterintuitive
+counterinvective
+counterinvestment
+counter-ion
+counterion
+counter-irritant
+counterirritant
+counterirritate
+counterirritation
+counterjudging
+counter-jumper
+counterjumper
+counter-lath
+counterlath
+counterlathed
+counterlathing
+counterlatration
+counterlaw
+counterleague
+counterlegislation
+counter-letter
+counterlife
+counterlight
+counterlighted
+counterlighting
+counterlilit
+counterlit
+counterlocking
+counter-lode
+counterlode
+counterlove
+counterly
+countermachination
+countermaid
+counterman
+countermand
+countermandable
+countermanded
+countermanding
+countermands
+countermaneuver
+countermanifesto
+countermanifestoes
+countermarch
+countermarching
+countermark
+counter-marque
+countermarriage
+countermeasure
+countermeasures
+countermeet
+countermen
+countermessage
+countermigration
+countermine
+countermined
+countermining
+countermissile
+countermission
+counter-motion
+countermotion
+countermount
+counter-move
+countermove
+countermoved
+countermovement
+countermovements
+countermoves
+countermoving
+countermure
+countermutiny
+counter-naiant
+counternaiant
+counternarrative
+counternatural
+counter-nebule
+counternecromancy
+counternoise
+counternotice
+counterobjection
+counterobligation
+counter-off
+counteroffensive
+counteroffensives
+counteroffer
+counteroffers
+counter-opening
+counteropening
+counteropponent
+counteropposite
+counterorator
+counterorder
+counterorganization
+counterpace
+counter-paled
+counterpaled
+counterpaly
+counterpane
+counterpaned
+counterpanes
+counter-parade
+counterparadox
+counterparallel
+counter-parole
+counterparole
+counterparry
+counterpart
+counterparts
+counter-party
+counter-passant
+counterpassant
+counterpassion
+counter-pawn
+counter-penalty
+counterpenalty
+counterpendent
+counterpetition
+counterpetitions
+counterphobic
+counterpicture
+counterpillar
+counterplan
+counterplay
+counterplayer
+counterplea
+counterplead
+counterpleading
+counterplease
+counterplot
+counterplotted
+counterplotter
+counterplotting
+counterploy
+counterploys
+counterpoint
+counterpointe
+counterpointed
+counterpointing
+counterpoints
+counterpoise
+counterpoised
+counterpoises
+counterpoising
+counterpoison
+counter-pole
+counterpole
+counterpoles
+counterponderate
+counterpose
+counterposition
+counterposting
+counterpotence
+counterpotency
+counter-potent
+counterpotent
+counterpower
+counterpowers
+counterpractice
+counterpray
+counterpreach
+counterpreparation
+counter-pressure
+counterpressure
+counterpressures
+counter-price
+counterprick
+counterprinciple
+counterprocess
+counterproductive
+counterproductively
+counterproductiveness
+counterproductivity
+counterprogramming
+counterproject
+counterpronunciamento
+counter-proof
+counterproof
+counterpropaganda
+counterpropagandize
+counterpropagation
+counterpropagations
+counterprophet
+counterproposal
+counterproposals
+counterproposition
+counterprotection
+counterprotest
+counterprotests
+counterprove
+counterpull
+counterpunch
+counterpuncher
+counterpuncture
+counterpush
+counter-quartered
+counterquartered
+counterquarterly
+counterquery
+counterquestion
+counterquestions
+counterquip
+counterradiation
+counter-raguled
+counterraid
+counterraids
+counterraising
+counterrallies
+counterrally
+counter-rampant
+counterrampant
+counterrate
+counterreaction
+counterreason
+counterrebuttal
+counterrebuttals
+counterreckoning
+counterrecoil
+counterreconnaissance
+counterrefer
+counterreflected
+counterreform
+Counter-Reformation
+counter-reformation
+counterreformation
+counterreforms
+counterreligion
+counterremonstrant
+counterreplied
+counterreplies
+counterreply
+counterreplying
+counterreprisal
+counterresolution
+counterresponse
+counterresponses
+counterrestoration
+counterretaliation
+counterretaliations
+counterretreat
+counter-revolution
+counterrevolution
+counterrevolutionaries
+counter-revolutionary
+counterrevolutionary
+counterrevolutionist
+counterrevolutionize
+counterrevolutions
+counter-riposte
+counterriposte
+counter-roll
+counterroll
+counterrotating
+counter-round
+counterround
+counterruin
+counters
+countersale
+counter-salient
+countersalient
+countersank
+counter-scale
+counterscale
+counterscalloped
+counterscarp
+counterscoff
+countersconce
+counterscrutiny
+counter-scuffle
+counter-sea
+countersea
+counter-seal
+counterseal
+counter-secure
+countersecure
+countersecurity
+counterselection
+countersense
+counterservice
+countershade
+countershading
+countershaft
+countershafting
+countershear
+countershine
+countershock
+countershout
+counterside
+countersiege
+countersign
+countersignal
+countersignature
+countersignatures
+countersigned
+countersigning
+countersigns
+countersink
+countersinking
+countersinks
+countersleight
+counterslope
+countersmile
+countersnarl
+counter-spell
+counterspies
+counterspy
+counterspying
+counterstain
+counterstamp
+counterstand
+counterstatant
+counter-statement
+counterstatement
+counterstatute
+counter-step
+counterstep
+counterstimulate
+counterstimulation
+counterstimulus
+counterstock
+counterstratagem
+counterstrategies
+counterstrategy
+counterstream
+counterstrike
+counterstroke
+counterstruggle
+counterstyle
+counterstyles
+countersubject
+countersue
+countersued
+countersues
+countersuggestion
+countersuggestions
+countersuing
+countersuit
+countersuits
+countersun
+countersunk
+countersunken
+countersurprise
+countersway
+counterswing
+countersworn
+countersympathy
+countersynod
+countertack
+countertail
+countertally
+counter-taste
+countertaste
+countertechnicality
+countertendencies
+counter-tendency
+countertendency
+counter-tenor
+countertenor
+countertenors
+counterterm
+counterterror
+counterterrorism
+counterterrorisms
+counterterrorist
+counterterrorists
+counterterrors
+countertheme
+countertheory
+counterthought
+counterthreat
+counterthreats
+counterthrust
+counterthrusts
+counterthwarting
+counter-tide
+counter-tierce
+countertierce
+counter-time
+countertime
+countertouch
+countertraction
+countertrades
+countertransference
+countertranslation
+countertraverse
+countertreason
+countertree
+counter-trench
+countertrench
+countertrend
+countertrends
+countertrespass
+countertrippant
+counter-tripping
+countertripping
+countertruth
+countertug
+counter-turn
+counterturn
+counterturned
+countertype
+countervail
+countervailed
+countervailing
+countervails
+countervair
+countervairy
+countervallation
+countervalue
+countervaunt
+countervene
+countervengeance
+countervenom
+countervibration
+counterview
+countervindication
+countervolition
+countervolley
+counter-vote
+countervote
+counterwager
+counter-wait
+counter-wall
+counterwall
+counterwarmth
+counterwave
+counterweigh
+counterweighed
+counterweighing
+counter-weight
+counterweight
+counterweighted
+counterweights
+counterwheel
+counterwill
+counterwilling
+counterwind
+counterwitness
+counterword
+counterwork
+counter-worker
+counterworker
+counterworking
+counterwrite
+Countess
+countess
+countesses
+countfish
+countian
+countians
+counties
+counting
+countinghouse
+countless
+countlessly
+countlessness
+countor
+countour
+countre-
+countree
+countreeman
+countrie
+countrieman
+countries
+countrification
+countrified
+countrifiedness
+countrify
+country
+country-and-western
+country-born
+country-bred
+country-dance
+country-fashion
+countryfied
+countryfiedness
+countryfolk
+countryish
+country-made
+countryman
+countrymen
+countrypeople
+countryseat
+countryside
+countrysides
+country-style
+countryward
+country-wide
+countrywide
+countrywoman
+countrywomen
+counts
+countship
+county
+countys
+county-wide
+countywide
+coup
+coupage
+coup-cart
+coupe
+couped
+coupee
+coupe-gorge
+coupelet
+couper
+Couperin
+Couperus
+coupes
+Coupeville
+couping
+Coupland
+couple
+couple-beggar
+couple-close
+coupled
+couplement
+coupler
+coupleress
+couplers
+couples
+couplet
+coupleteer
+couplets
+coupling
+couplings
+coupon
+couponed
+couponless
+coupons
+coups
+coupstick
+coupure
+courage
+courageous
+courageously
+courageousness
+courager
+courages
+courant
+courante
+courantes
+couranto
+courantoes
+courantos
+courants
+Courantyne
+courap
+couratari
+courb
+courbache
+courbaril
+courbash
+courbe
+Courbet
+courbette
+courbettes
+Courbevoie
+courche
+Courcy
+courge
+courgette
+courida
+courie
+Courier
+courier
+couriers
+couril
+courlan
+Courland
+courlans
+Cournand
+couronne
+Cours
+course
+coursed
+courser
+coursers
+courses
+coursey
+coursing
+coursings
+coursy
+Court
+court
+courtage
+courtal
+court-baron
+court-bouillon
+courtbred
+courtby
+courtcraft
+court-cupboard
+court-customary
+court-dress
+courted
+Courtelle
+Courtenay
+Courteney
+courteous
+courteously
+courteousness
+courtepy
+courter
+courters
+courtesan
+courtesanry
+courtesans
+courtesanship
+courtesied
+courtesies
+courtesy
+courtesying
+courtezan
+courtezanry
+courtezanship
+court-house
+courthouse
+courthouses
+courtier
+courtierism
+courtierly
+courtiers
+courtiership
+courtiery
+courtin
+courting
+Courtland
+court-leet
+courtless
+courtlet
+courtlier
+courtliest
+courtlike
+courtliness
+courtling
+courtly
+courtman
+court-mantle
+court-martial
+court-martials
+Courtnay
+Courtney
+courtnoll
+court-noue
+Courtois
+court-plaster
+Courtrai
+courtroll
+courtroom
+courtrooms
+courts
+courtship
+courtship-and-matrimony
+courtships
+courtside
+courts-martial
+court-tialed
+court-tialing
+court-tialled
+court-tialling
+Courtund
+courty
+court-yard
+courtyard
+courtyards
+courtzilite
+Cousance-les-Forges
+couscous
+couscouses
+couscousou
+co-use
+couseranite
+Coushatta
+Cousin
+cousin
+cousinage
+cousiness
+cousin-german
+cousinhood
+cousin-in-law
+cousinly
+cousinries
+cousinry
+Cousins
+cousins
+cousins-german
+cousinship
+cousiny
+coussinet
+Coussoule
+Cousteau
+coustumier
+Cousy
+couteau
+couteaux
+coutel
+coutelle
+couter
+couters
+Coutet
+couth
+couthe
+couther
+couthest
+couthie
+couthier
+couthiest
+couthily
+couthiness
+couthless
+couthly
+couths
+couthy
+coutil
+coutille
+coutumier
+Couture
+couture
+coutures
+couturier
+couturiere
+couturieres
+couturiers
+couturire
+couvade
+couvades
+couve
+couvert
+couverte
+couveuse
+couvre-feu
+couxia
+couxio
+covado
+covalence
+covalences
+covalency
+covalent
+covalently
+Covarecan
+Covarecas
+covariable
+covariables
+covariance
+covariant
+covariate
+covariates
+covariation
+Covarrubias
+covary
+covassal
+cove
+coved
+Covel
+Covell
+covelline
+covellite
+Covelo
+coven
+Covena
+covenable
+covenably
+covenance
+Covenant
+covenant
+covenantal
+covenantally
+covenanted
+covenantee
+Covenanter
+covenanter
+covenanting
+Covenant-israel
+covenantor
+covenants
+Coveney
+covens
+covent
+coventrate
+coven-tree
+coventries
+coventrize
+Coventry
+coventry
+cover
+coverable
+coverage
+coverages
+coverall
+coveralled
+coveralls
+coverchief
+covercle
+Coverdale
+covered
+coverer
+coverers
+covering
+coverings
+coverless
+coverlet
+coverlets
+Coverley
+coverlid
+coverlids
+cover-point
+covers
+co-versed
+coversed
+cover-shame
+cover-shoulder
+coverside
+coversine
+coverslip
+cover-slut
+coverslut
+covert
+covert-baron
+covertical
+covertly
+covertness
+coverts
+coverture
+cover-up
+coverup
+coverups
+coves
+Covesville
+covet
+covetable
+coveted
+coveter
+coveters
+coveting
+covetingly
+covetise
+covetiveness
+covetous
+covetously
+covetousness
+covets
+covey
+coveys
+covibrate
+covibration
+covid
+covido
+Coviello
+covillager
+Covillea
+covin
+Covina
+covine
+coving
+covings
+Covington
+covinous
+covinously
+covins
+covin-tree
+covisit
+covisitor
+covite
+covolume
+covotary
+cow
+cowage
+cowages
+cowal
+co-walker
+Cowan
+cowan
+Cowanesque
+Cowansville
+Coward
+coward
+cowardice
+cowardices
+cowardish
+cowardliness
+cowardly
+cowardness
+cowards
+cowardy
+Cowarts
+cow-bane
+cowbane
+cowbanes
+cowbarn
+cowbell
+cowbells
+cowberries
+cowberry
+cowbind
+cowbinds
+cowbird
+cowbirds
+cow-boy
+cowboy
+cowboys
+cowbrute
+cowbyre
+cowcatcher
+cowcatchers
+Cowden
+cowdie
+Cowdrey
+cowed
+cowedly
+coween
+Cowell
+Cowen
+Cower
+cower
+cowered
+cowerer
+cowerers
+cowering
+coweringly
+cowers
+Cowes
+Coweta
+Cowey
+cow-eyed
+cow-fat
+cow-fish
+cowfish
+cowfishes
+cowflap
+cowflaps
+cowflop
+cowflops
+cowgate
+Cowgill
+cowgirl
+cowgirls
+cow-goddess
+cowgram
+cowgrass
+cowhage
+cowhages
+cowhand
+cowhands
+cow-headed
+cowheart
+cowhearted
+cowheel
+cowherb
+cowherbs
+cowherd
+cowherds
+cow-hide
+cowhide
+cowhided
+cowhides
+cowhiding
+cow-hitch
+cow-hocked
+cowhorn
+cowhouse
+Cowichan
+Cowiche
+co-widow
+Cowie
+cowier
+cowiest
+co-wife
+cowing
+co-winner
+cowinner
+cowinners
+cowish
+cowishness
+cow-itch
+cowitch
+cowk
+cowkeeper
+cowkine
+Cowl
+cowl
+cowle
+cowled
+cowleech
+cowleeching
+Cowles
+Cowlesville
+Cowley
+cow-lice
+cowlick
+cowlicks
+cowlike
+cowling
+cowlings
+Cowlitz
+cowls
+cowl-shaped
+cowlstaff
+cowman
+cowmen
+cow-mumble
+Cown
+cow-nosed
+co-work
+co-worker
+coworker
+coworkers
+co-working
+coworking
+co-worship
+cowpat
+cowpath
+cowpats
+cowpea
+cowpeas
+cowpen
+Cowper
+cowper
+Cowperian
+cowperian
+cowperitis
+cowpie
+cowpies
+cowplop
+cowplops
+cowpock
+cowpoke
+cowpokes
+cowpony
+cow-pox
+cowpox
+cowpoxes
+cowpunch
+cowpuncher
+cowpunchers
+cowquake
+cowrie
+cowries
+cowrite
+cowrites
+cowroid
+cowrote
+cowry
+cows
+cowshard
+cowsharn
+cowshed
+cowsheds
+cowshot
+cowshut
+cowskin
+cowskins
+cowslip
+cowslip'd
+cowslipped
+cowslips
+cowson
+cow-stealing
+cowsucker
+cowtail
+cowthwort
+cow-tongue
+cowtongue
+cowtown
+cowweed
+cowwheat
+cowy
+cowyard
+Cox
+cox
+coxa
+coxae
+coxal
+coxalgia
+coxalgias
+coxalgic
+coxalgies
+coxalgy
+coxankylometer
+coxarthritis
+coxarthrocace
+coxarthropathy
+coxbones
+coxcomb
+coxcombess
+coxcombhood
+coxcombic
+coxcombical
+coxcombicality
+coxcombically
+coxcombity
+coxcombries
+coxcombry
+coxcombs
+coxcomby
+coxcomical
+coxcomically
+coxed
+coxendix
+coxes
+Coxey
+coxier
+coxiest
+coxing
+coxite
+coxitis
+coxocerite
+coxoceritic
+coxodynia
+coxo-femoral
+coxofemoral
+coxopodite
+Coxsackie
+coxswain
+coxswained
+coxswaining
+coxswains
+coxwain
+coxwaining
+coxwains
+coxy
+Coxyde
+Coy
+coy
+coyan
+Coyanosa
+coydog
+coydogs
+coyed
+coyer
+coyest
+coying
+coyish
+coyishness
+Coyle
+coyly
+coyn
+coyness
+coynesses
+coynye
+coyo
+coyol
+Coyolxauhqui
+coyos
+coyote
+coyote-brush
+coyote-bush
+Coyotero
+coyotes
+coyotillo
+coyotillos
+coyoting
+coypou
+coypous
+coypu
+coypus
+coys
+Coysevox
+coystrel
+coyure
+Coyville
+coz
+Cozad
+coze
+cozed
+cozeier
+cozeiest
+cozen
+cozenage
+cozenages
+cozened
+cozener
+cozeners
+cozening
+cozeningly
+Cozens
+cozens
+cozes
+cozey
+cozeys
+cozie
+cozied
+cozier
+cozies
+coziest
+cozily
+coziness
+cozinesses
+cozing
+Cozmo
+Cozumel
+cozy
+cozying
+Cozza
+Cozzens
+cozzes
+C.P.
+CP
+c.p.
+cp
+cp.
+CPA
+CPC
+CPCU
+CPD
+cpd
+cpd.
+CPE
+CPFF
+CPH
+CPI
+cpi
+CPIO
+CPL
+Cpl
+cpl
+CPM
+cpm
+CPMP
+CPO
+cpo
+CPP
+CPR
+CPS
+cps
+CPSR
+CPSU
+CPT
+cpt
+CPU
+cpu
+cpus
+cputime
+CPW
+CQ
+cq
+C.R.
+CR
+Cr
+cr
+cr.
+craal
+craaled
+craaling
+craals
+Crab
+crab
+crabapple
+Crabb
+Crabbe
+crabbed
+crabbedly
+crabbedness
+crabber
+crabbers
+crabbery
+crabbier
+crabbiest
+crabbily
+crabbiness
+crabbing
+crabbish
+crabbit
+crabby
+crabcatcher
+crabeater
+crab-eating
+crabeating
+craber
+crab-faced
+crab-fish
+crabfish
+crab-grass
+crabgrass
+crab-harrow
+crabhole
+crabier
+crabit
+crablet
+crablike
+crabman
+crabmeat
+crabmill
+Craborchard
+crab-plover
+crabs
+crab-shed
+crab-sidle
+crabsidle
+crabstick
+Crabtree
+crabut
+crabweed
+crabwise
+crabwood
+Cracca
+craccus
+crachoir
+Cracidae
+Cracinae
+crack
+crack-
+crackability
+crackable
+crackableness
+crackajack
+crackback
+crackbrain
+crackbrained
+crackbrainedness
+crackdown
+crackdowns
+cracked
+crackedness
+cracker
+cracker-barrel
+crackerberries
+crackerberry
+crackerjack
+crackerjacks
+cracker-off
+cracker-on
+cracker-open
+crackers
+crackers-on
+cracket
+crackhemp
+crackiness
+cracking
+crackings
+crackjaw
+crackle
+crackled
+crackles
+crackless
+crackleware
+cracklier
+crackliest
+crackling
+cracklings
+crack-loo
+crackly
+crackmans
+cracknel
+cracknels
+crack-off
+crackpot
+crackpotism
+crackpots
+crackpottedness
+crackrope
+cracks
+crackskull
+cracksman
+cracksmen
+crack-the-whip
+crack-up
+crackup
+crackups
+crack-willow
+cracky
+cracovienne
+Cracow
+cracowe
+-cracy
+Craddock
+Craddockville
+craddy
+cradge
+cradle
+cradleboard
+cradlechild
+cradled
+cradlefellow
+cradleland
+cradlelike
+cradlemaker
+cradlemaking
+cradleman
+cradlemate
+cradlemen
+cradler
+cradlers
+cradles
+cradle-shaped
+cradleside
+cradlesong
+cradlesongs
+cradletime
+cradling
+Cradock
+CRAF
+craft
+crafted
+crafter
+craftier
+craftiest
+craftily
+craftiness
+craftinesses
+crafting
+Craftint
+craftless
+craftly
+craftmanship
+Crafton
+crafts
+Craftsbury
+craftsman
+craftsmanlike
+craftsmanly
+craftsmanship
+craftsmanships
+craftsmaster
+craftsmen
+craftsmenship
+craftsmenships
+craftspeople
+craftsperson
+craftswoman
+craftwork
+craftworker
+crafty
+Craftype
+Crag
+crag
+crag-and-tail
+crag-bound
+crag-built
+crag-carven
+crag-covered
+crag-fast
+Cragford
+craggan
+cragged
+craggedly
+craggedness
+Craggie
+craggier
+craggiest
+craggily
+cragginess
+Craggy
+craggy
+craglike
+crags
+cragsman
+cragsmen
+Cragsmoor
+cragwork
+craichy
+craie
+Craig
+craig
+Craigavon
+craighle
+Craigie
+Craigmont
+craigmontite
+Craigsville
+Craigville
+Craik
+craik
+Crailsheim
+Crain
+crain
+Craiova
+craisey
+craizey
+crajuru
+crake
+craked
+crakefeet
+crake-needles
+craker
+crakes
+craking
+crakow
+Craley
+Cralg
+CRAM
+Cram
+cram
+cramasie
+crambambulee
+crambambuli
+Crambe
+crambe
+cramberry
+crambes
+crambid
+Crambidae
+Crambinae
+cramble
+crambly
+crambo
+cramboes
+crambos
+Crambus
+cramel
+Cramer
+Cramerton
+cram-full
+crammed
+crammel
+crammer
+crammers
+cramming
+crammingly
+cramoisie
+cramoisies
+cramoisy
+cramp
+crampbit
+cramped
+crampedness
+cramper
+crampet
+crampette
+crampfish
+crampfishes
+cramping
+crampingly
+cramp-iron
+crampish
+crampit
+crampits
+crampon
+cramponnee
+crampons
+crampoon
+crampoons
+cramps
+crampy
+crams
+Cran
+cran
+Cranach
+cranage
+Cranaus
+cranberries
+cranberry
+Cranbury
+crance
+crancelin
+cranch
+cranched
+cranches
+cranching
+Crandale
+Crandall
+crandall
+crandallite
+Crandell
+Crandon
+Crane
+crane
+cranebill
+craned
+crane-fly
+cranelike
+cranely
+craneman
+cranemanship
+cranemen
+Craner
+craner
+cranes
+crane's-bill
+cranesbill
+cranesman
+Cranesville
+cranet
+craneway
+craney
+Cranford
+crang
+crani-
+Crania
+crania
+craniacromial
+craniad
+cranial
+cranially
+cranian
+Craniata
+craniata
+craniate
+craniates
+cranic
+craniectomy
+craning
+craninia
+craniniums
+cranio-
+cranio-acromial
+cranio-aural
+craniocele
+craniocerebral
+cranioclasis
+cranioclasm
+cranioclast
+cranioclasty
+craniodidymus
+craniofacial
+craniognomic
+craniognomy
+craniognosy
+craniograph
+craniographer
+craniography
+cranioid
+craniol
+craniological
+craniologically
+craniologist
+craniology
+craniom
+craniomalacia
+craniomaxillary
+craniometer
+craniometric
+craniometrical
+craniometrically
+craniometrist
+craniometry
+craniopagus
+craniopathic
+craniopathy
+craniopharyngeal
+craniopharyngioma
+craniophore
+cranioplasty
+craniopuncture
+craniorhachischisis
+craniosacral
+cranioschisis
+cranioscopical
+cranioscopist
+cranioscopy
+craniospinal
+craniostenosis
+craniostosis
+Craniota
+craniota
+craniotabes
+craniotome
+craniotomies
+craniotomy
+craniotopography
+craniotympanic
+craniovertebral
+cranium
+craniums
+crank
+crankbird
+crankcase
+crankcases
+crankdisk
+crank-driven
+cranked
+cranker
+crankery
+crankest
+crankier
+crankiest
+crankily
+crankiness
+cranking
+crankish
+crankism
+crankle
+crankled
+crankles
+crankless
+crankling
+crankly
+crankman
+crankness
+Cranko
+crankous
+crankpin
+crankpins
+crankplate
+Cranks
+cranks
+crankshaft
+crankshafts
+crank-sided
+crankum
+cranky
+Cranmer
+crannage
+crannel
+crannequin
+crannia
+crannied
+crannies
+crannock
+crannog
+crannoge
+crannoger
+crannoges
+crannogs
+cranny
+crannying
+cranreuch
+cransier
+Cranston
+crantara
+crants
+Cranwell
+crany
+crap
+crapaud
+crapaudine
+crape
+craped
+crape-fish
+crapefish
+crapehanger
+crapelike
+crapes
+crapette
+craping
+Crapo
+crapon
+crapped
+crapper
+crappers
+crappie
+crappier
+crappies
+crappiest
+crappin
+crappiness
+crapping
+crappit-head
+crapple
+crappo
+crappy
+craps
+crapshooter
+crapshooters
+crapshooting
+crapula
+crapulate
+crapulence
+crapulency
+crapulent
+crapulous
+crapulously
+crapulousness
+crapwa
+crapy
+craquelure
+craquelures
+crare
+Crary
+Craryville
+CRAS
+crases
+crash
+Crashaw
+crash-dive
+crash-dived
+crash-diving
+crash-dove
+crashed
+crasher
+crashers
+crashes
+crashing
+crashingly
+crash-land
+crash-landing
+crashproof
+crashworthiness
+crashworthy
+crasis
+craspedal
+craspedodromous
+craspedon
+Craspedota
+craspedotal
+craspedote
+craspedum
+crass
+crassament
+crassamentum
+crasser
+crassest
+crassier
+crassilingual
+Crassina
+crassis
+crassities
+crassitude
+crassly
+crassness
+Crassula
+crassula
+Crassulaceae
+crassulaceous
+Crassus
+-crat
+Crataegus
+Crataeis
+Crataeva
+cratch
+cratchens
+cratches
+cratchins
+crate
+crated
+crateful
+cratemaker
+cratemaking
+crateman
+cratemen
+Crater
+crater
+crateral
+cratered
+Craterellus
+Craterid
+crateriform
+cratering
+Crateris
+crateris
+craterkin
+craterless
+craterlet
+craterlike
+craterous
+craters
+crater-shaped
+crates
+craticular
+Cratinean
+crating
+cratometer
+cratometric
+cratometry
+craton
+cratonic
+cratons
+cratsmanship
+Cratus
+craunch
+craunched
+craunches
+craunching
+craunchingly
+cravat
+cravats
+cravatted
+cravatting
+crave
+craved
+Craven
+craven
+cravened
+Cravenette
+cravenette
+Cravenetted
+Cravenetting
+cravenhearted
+cravening
+cravenly
+cravenness
+cravens
+craver
+cravers
+craves
+craving
+cravingly
+cravingness
+cravings
+cravo
+Craw
+craw
+crawberry
+craw-craw
+crawdad
+crawdads
+crawfish
+crawfished
+crawfishes
+crawfishing
+crawfoot
+crawfoots
+Crawford
+Crawfordsville
+Crawfordville
+crawful
+crawl
+crawl-a-bottom
+crawled
+crawler
+crawlerize
+crawlers
+Crawley
+crawley
+crawleyroot
+crawlie
+crawlier
+crawliest
+crawling
+crawlingly
+crawls
+crawlsome
+crawlspace
+crawl-up
+crawlway
+crawlways
+crawly
+crawm
+craws
+crawtae
+Crawthumper
+Crax
+cray
+craye
+crayer
+crayfish
+crayfishes
+crayfishing
+craylet
+Crayne
+Craynor
+crayon
+crayoned
+crayoning
+crayonist
+crayonists
+crayons
+crayonstone
+craythur
+craze
+crazed
+crazed-headed
+crazedly
+crazedness
+crazes
+crazier
+crazies
+craziest
+crazily
+craziness
+crazinesses
+crazing
+crazingmill
+crazy
+crazycat
+crazy-drunk
+crazy-headed
+crazy-looking
+crazy-mad
+crazy-pate
+crazy-paving
+crazyweed
+crazy-work
+CRB
+CRC
+crc
+crcao
+crche
+Crcy
+CRD
+cre
+crea
+creach
+creachy
+cread
+creagh
+creaght
+creak
+creaked
+creaker
+creakier
+creakiest
+creakily
+creakiness
+creaking
+creakingly
+creaks
+creaky
+cream
+creambush
+creamcake
+cream-cheese
+cream-color
+cream-colored
+creamcup
+creamcups
+creamed
+Creamer
+creamer
+creameries
+creamers
+creamery
+creameryman
+creamerymen
+cream-faced
+cream-flowered
+creamfruit
+creamier
+creamiest
+creamily
+creaminess
+creaming
+creamlaid
+creamless
+creamlike
+creammaker
+creammaking
+creamometer
+creams
+creamsacs
+cream-slice
+creamware
+cream-white
+creamy
+cream-yellow
+Crean
+creance
+creancer
+creant
+crease
+creased
+creaseless
+creaser
+crease-resistant
+creasers
+creases
+creashaks
+creasier
+creasiest
+creasing
+creasol
+creasot
+creasy
+creat
+creatable
+create
+created
+createdness
+creates
+Creath
+creatic
+creatin
+creatine
+creatinephosphoric
+creatines
+creating
+creatinin
+creatinine
+creatininemia
+creatins
+creatinuria
+Creation
+creation
+creational
+creationary
+creationism
+creationist
+creationistic
+creations
+creative
+creatively
+creativeness
+creativities
+creativity
+creatophagous
+Creator
+creator
+creatorhood
+creatorrhea
+creators
+creatorship
+creatotoxism
+creatress
+creatrix
+creatural
+creature
+creaturehood
+creatureless
+creatureliness
+creatureling
+creaturely
+creatures
+creatureship
+creaturize
+creaze
+crebri-
+crebricostate
+crebrisulcate
+crebrity
+crebrous
+creche
+creches
+Crecy
+creda
+credal
+creddock
+credence
+credences
+credencive
+credenciveness
+credenda
+credendum
+credens
+credensive
+credensiveness
+credent
+credential
+credentialed
+credentialism
+credentials
+credently
+credenza
+credenzas
+credere
+credibilities
+credibility
+credible
+credibleness
+credibly
+credit
+creditabilities
+creditability
+creditable
+creditableness
+creditably
+credited
+crediting
+creditive
+creditless
+creditor
+creditors
+creditorship
+creditress
+creditrix
+credits
+crednerite
+Credo
+credo
+credos
+credulities
+credulity
+credulous
+credulously
+credulousness
+Cree
+cree
+creed
+creedal
+creedalism
+creedalist
+creedbound
+Creede
+creeded
+creedist
+creedite
+creedless
+creedlessness
+Creedmoor
+creedmore
+Creedon
+creeds
+creedsman
+Creek
+creek
+creeker
+creekfish
+creekfishes
+Creeks
+creeks
+creekside
+creekstuff
+creeky
+Creel
+creel
+creeled
+creeler
+creeling
+creels
+creem
+creen
+creep
+creepage
+creepages
+creeper
+creepered
+creeperless
+creepers
+creep-fed
+creep-feed
+creep-feeding
+creephole
+creepie
+creepie-peepie
+creepier
+creepies
+creepiest
+creepily
+creepiness
+creeping
+creepingly
+creepmouse
+creepmousy
+creeps
+creepy
+creepy-crawly
+Crees
+crees
+creese
+creeses
+creesh
+creeshed
+creeshes
+creeshie
+creeshing
+creeshy
+Crefeld
+CREG
+Creigh
+Creight
+Creighton
+Creil
+creirgist
+Crelin
+Crellen
+cremaillere
+cremains
+cremant
+cremaster
+cremasterial
+cremasteric
+cremate
+cremated
+cremates
+cremating
+cremation
+cremationism
+cremationist
+cremations
+cremator
+crematoria
+crematorial
+crematories
+crematoriria
+crematoririums
+crematorium
+crematoriums
+cremators
+crematory
+crembalum
+creme
+Cremer
+cremerie
+cremes
+Cremini
+cremnophobia
+cremocarp
+cremometer
+Cremona
+cremona
+cremone
+cremor
+cremorne
+cremosin
+cremule
+CREN
+crena
+crenae
+crenallation
+crenate
+crenated
+crenate-leaved
+crenately
+crenate-toothed
+crenation
+crenato-
+crenature
+crenel
+crenelate
+crenelated
+crenelates
+crenelating
+crenelation
+crenelations
+crenele
+creneled
+crenelee
+crenelet
+creneling
+crenellate
+crenellated
+crenellating
+crenellation
+crenelle
+crenelled
+crenelles
+crenelling
+crenels
+crengle
+crenic
+crenitic
+crenology
+crenotherapy
+Crenothrix
+Crenshaw
+crenula
+crenulate
+crenulated
+crenulation
+creodont
+Creodonta
+creodonts
+Creola
+Creole
+creole
+creole-fish
+creole-fishes
+creoleize
+creoles
+creolian
+Creolin
+creolism
+creolite
+creolization
+creolize
+creolized
+creolizing
+Creon
+creophagia
+creophagism
+creophagist
+creophagous
+creophagy
+creosol
+creosols
+creosote
+creosoted
+creosoter
+creosotes
+creosotic
+creosoting
+crepance
+crepe
+crepe-backed
+creped
+crepehanger
+crepeier
+crepeiest
+crepe-paper
+crepes
+crepey
+crepidoma
+crepidomata
+Crepidula
+crepier
+crepiest
+Crepin
+crepine
+crepiness
+creping
+Crepis
+crepis
+crepitacula
+crepitaculum
+crepitant
+crepitate
+crepitated
+crepitating
+crepitation
+crepitous
+crepitus
+creply
+crepon
+crepons
+crept
+crepuscle
+crepuscular
+crepuscule
+crepusculine
+crepusculum
+Crepy
+crepy
+Cres
+cres
+Cresa
+cresamine
+Cresbard
+cresc
+Crescantia
+Crescas
+Crescen
+crescence
+crescendi
+Crescendo
+crescendo
+crescendoed
+crescendoing
+crescendos
+Crescent
+crescent
+crescentade
+crescentader
+crescented
+crescent-formed
+Crescentia
+crescentic
+crescentiform
+crescenting
+crescentlike
+crescent-lit
+crescentoid
+crescent-pointed
+crescents
+crescent-shaped
+crescentwise
+Crescin
+Crescint
+crescive
+crescively
+Cresco
+crescograph
+crescographic
+cresegol
+Cresida
+Cresius
+cresive
+cresol
+cresolin
+cresoline
+cresols
+cresorcin
+cresorcinol
+cresotate
+cresotic
+cresotinate
+cresotinic
+cresoxid
+cresoxide
+cresoxy
+Cresphontes
+cresphontes
+Crespi
+Crespo
+cress
+cressed
+cresselle
+cresses
+cresset
+cressets
+Cressey
+Cressi
+Cressida
+cressida
+Cressie
+cressier
+cressiest
+Cresskill
+Cressler
+Cresson
+cresson
+Cressona
+cressweed
+cresswort
+Cressy
+cressy
+crest
+crestal
+crested
+crest-fallen
+crestfallen
+crestfallenly
+crestfallenness
+crestfallens
+crestfish
+cresting
+crestings
+crestless
+Crestline
+crestline
+crestmoreite
+Creston
+Crestone
+crests
+Crestview
+Crestwood
+Creswell
+cresyl
+cresylate
+cresylene
+cresylic
+cresylite
+cresyls
+Creta
+creta
+cretaceo-
+Cretaceous
+cretaceous
+cretaceously
+Cretacic
+Cretan
+Crete
+crete
+cretefaction
+Cretheis
+Cretheus
+Cretic
+cretic
+creticism
+cretics
+cretification
+cretify
+cretin
+cretinic
+cretinism
+cretinistic
+cretinization
+cretinize
+cretinized
+cretinizing
+cretinoid
+cretinous
+cretins
+cretion
+cretionary
+Cretism
+cretize
+Creto-mycenaean
+cretonne
+cretonnes
+cretoria
+Creusa
+Creuse
+Creusois
+Creusot
+creutzer
+crevalle
+crevalles
+crevass
+crevasse
+crevassed
+crevasses
+crevassing
+Crevecoeur
+crevet
+crevette
+crevice
+creviced
+crevices
+crevis
+crew
+crew-cropped
+crewcut
+Crewe
+crewe
+crewed
+crewel
+crewelist
+crewellery
+crewels
+crewel-work
+crewelwork
+crewer
+crewet
+crewing
+crewless
+crewman
+crewmanship
+crewmen
+crewneck
+crew-necked
+crews
+Crex
+CRFC
+CRFMP
+CR-glass
+CRI
+criance
+criant
+crib
+cribbage
+cribbages
+cribbed
+cribber
+cribbers
+cribbing
+cribbings
+crib-bit
+crib-bite
+crib-biter
+cribbiter
+crib-biting
+cribbiting
+crib-bitten
+cribble
+cribbled
+cribbling
+cribella
+cribellum
+crible
+cribo
+cribose
+cribral
+cribrate
+cribrately
+cribration
+cribriform
+cribriformity
+cribrose
+cribrosity
+cribrous
+cribs
+cribwork
+cribworks
+cric
+cricetid
+Cricetidae
+cricetids
+cricetine
+Cricetus
+Crichton
+Crick
+crick
+crick-crack
+cricke
+cricked
+cricket
+cricketed
+cricketer
+cricketers
+cricketing
+cricketings
+cricketlike
+crickets
+crickety
+crickey
+cricking
+crickle
+cricks
+crico-
+cricoarytenoid
+cricoid
+cricoidectomy
+cricoids
+cricopharyngeal
+cricothyreoid
+cricothyreotomy
+cricothyroid
+cricothyroidean
+cricotomy
+cricotracheotomy
+Cricotus
+criddle
+Criders
+cried
+crier
+criers
+cries
+criey
+Crifasi
+crig
+crikey
+Crile
+crile
+Crim
+crim
+crim.
+crimble
+crime
+Crimea
+crimea
+Crimean
+crimean
+crimeful
+crimeless
+crimelessness
+crimeproof
+crimes
+criminal
+criminaldom
+criminalese
+criminalism
+criminalist
+criminalistic
+criminalistician
+criminalistics
+criminalities
+criminality
+criminally
+criminalness
+criminaloid
+criminals
+criminate
+criminated
+criminating
+crimination
+criminative
+criminator
+criminatory
+crimine
+crimini
+criminis
+criminogenesis
+criminogenic
+criminol
+criminologic
+criminological
+criminologically
+criminologies
+criminologist
+criminologists
+criminology
+criminosis
+criminous
+criminously
+criminousness
+crimison
+crimmer
+crimmers
+crimmy
+crimogenic
+Crimora
+crimp
+crimpage
+crimped
+crimper
+crimpers
+crimpier
+crimpiest
+crimpiness
+crimping
+crimple
+crimpled
+Crimplene
+crimples
+crimpling
+crimpness
+crimps
+crimpy
+crimpy-haired
+crimson
+crimson-banded
+crimson-barred
+crimson-billed
+crimson-carmine
+crimson-colored
+crimson-dyed
+crimsoned
+crimson-fronted
+crimsoning
+crimson-lined
+crimsonly
+crimsonness
+crimson-petaled
+crimson-purple
+crimsons
+crimson-scarfed
+crimson-spotted
+crimson-tipped
+crimson-veined
+crimson-violet
+crimsony
+CRIN
+Crin
+crin
+crinal
+crinanite
+crinate
+crinated
+crinatory
+crinc-
+crinch
+crine
+crined
+crinel
+crinet
+cringe
+cringed
+cringeling
+cringer
+cringers
+cringes
+cringing
+cringingly
+cringingness
+cringle
+cringle-crangle
+cringles
+crini-
+crinicultural
+criniculture
+crinid
+criniere
+criniferous
+Criniger
+crinigerous
+crinion
+criniparous
+crinital
+crinite
+crinites
+crinitory
+crinivorous
+crink
+crinkle
+crinkle-crankle
+crinkled
+crinkleroot
+crinkles
+crinklier
+crinkliest
+crinkliness
+crinkling
+crinkly
+crinkly-haired
+crinkum
+crinkum-crankum
+crinogenic
+crinoid
+crinoidal
+Crinoidea
+crinoidean
+crinoids
+crinolette
+crinoline
+crinolines
+crinose
+crinosity
+crinula
+Crinum
+crinum
+crinums
+crio-
+criobolium
+crioboly
+criocephalus
+Crioceras
+crioceratite
+crioceratitic
+Crioceris
+criolla
+criollas
+criollo
+criollos
+criophore
+Criophoros
+Criophorus
+criosphinges
+criosphinx
+criosphinxes
+crip
+cripe
+cripes
+Crippen
+crippied
+crippingly
+cripple
+crippled
+crippledom
+crippleness
+crippler
+cripplers
+cripples
+crippling
+cripplingly
+cripply
+Cripps
+crips
+CRIS
+Cris
+cris
+Crises
+crises
+Crisey
+Criseyde
+Crisfield
+crisic
+crisis
+Crisium
+crisle
+CRISP
+crisp
+Crispa
+Crispas
+crispate
+crispated
+crispation
+crispature
+crispbread
+crisped
+crisped-leaved
+Crispen
+crispen
+crispened
+crispening
+crispens
+crisper
+crispers
+crispest
+Crispi
+crispier
+crispiest
+crispily
+Crispin
+crispin
+crispine
+crispiness
+crisping
+Crispinian
+crispins
+crisp-leaved
+crisply
+crispness
+crispnesses
+crisps
+crispy
+criss
+crissa
+crissal
+criss-cross
+crisscross
+crisscrossed
+crisscrosses
+crisscrossing
+crisscross-row
+crisset
+Crissie
+crissum
+Crissy
+Crist
+Crista
+crista
+Cristabel
+cristae
+Cristal
+cristate
+cristated
+Cristatella
+Cristen
+Cristi
+Cristian
+Cristiano
+Cristie
+cristiform
+Cristin
+Cristina
+Cristine
+Cristineaux
+Cristino
+Cristiona
+Cristionna
+Cristispira
+Cristivomer
+Cristobal
+cristobalite
+Cristoforo
+Cristophe
+Cristy
+cristy
+Criswell
+crit
+crit.
+critch
+Critchfield
+critchfield
+criteria
+criteriia
+criteriions
+criteriology
+criterion
+criterional
+criterions
+criterium
+crith
+Crithidia
+crithmene
+crithomancy
+critic
+critical
+criticality
+critically
+criticalness
+criticaster
+criticasterism
+criticastry
+criticisable
+criticise
+criticised
+criticiser
+criticises
+criticising
+criticisingly
+criticism
+criticisms
+criticist
+criticizable
+criticize
+criticized
+criticizer
+criticizers
+criticizes
+criticizing
+criticizingly
+critickin
+critico-
+critico-analytically
+critico-historical
+critico-poetical
+critico-theological
+critics
+criticship
+criticsm
+criticule
+critique
+critiqued
+critiques
+critiquing
+critism
+critize
+critling
+Critta
+Crittenden
+critter
+critteria
+critters
+crittur
+critturs
+Critz
+Crius
+crivetz
+Crivitz
+crizzel
+crizzle
+crizzled
+crizzling
+CRL
+crl
+CRLF
+cro
+croak
+croaked
+Croaker
+croaker
+croakers
+croakier
+croakiest
+croakily
+croakiness
+croaking
+croaks
+croaky
+croape
+Croat
+croat
+Croatan
+Croatia
+Croatian
+croatian
+croc
+Crocanthemum
+crocard
+Croce
+Croceatas
+croceic
+crocein
+croceine
+croceines
+croceins
+croceous
+crocetin
+croceus
+croche
+Crocheron
+crochet
+crocheted
+crocheter
+crocheters
+crocheteur
+crocheting
+crochets
+croci
+crociary
+crociate
+crocidolite
+Crocidura
+crocin
+crocine
+crock
+crockard
+crocked
+Crocker
+crocker
+crockeries
+crockery
+crockeryware
+crocket
+crocketed
+crocketing
+crockets
+Crockett
+Crocketville
+Crockford
+crocking
+crocko
+crocks
+crocky
+crocodile
+crocodilean
+crocodiles
+Crocodilia
+crocodilian
+Crocodilidae
+crocodiline
+crocodilite
+crocodility
+crocodiloid
+Crocodilus
+Crocodylidae
+Crocodylus
+crocoisite
+crocoite
+crocoites
+croconate
+croconic
+Crocosmia
+crocs
+Crocus
+crocus
+crocused
+crocuses
+crocuta
+Croesi
+Croesus
+Croesuses
+Croesusi
+Crofoot
+Croft
+croft
+crofter
+crofterization
+crofterize
+crofters
+crofting
+croftland
+Crofton
+crofts
+Croghan
+croh
+croighle
+croiik
+crois
+croisad
+croisade
+croisard
+croise
+croisee
+croises
+croisette
+croissant
+croissante
+croissants
+Croix
+crojack
+crojik
+crojiks
+croker
+Crokinole
+Crom
+Cro-Magnon
+Cro-magnon
+cro-magnon
+cromaltite
+crombec
+crome
+Cromer
+Cromerian
+cromfordite
+cromlech
+cromlechs
+cromme
+crommel
+Crommelin
+Cromona
+cromorna
+cromorne
+Crompton
+cromster
+Cromwell
+cromwell
+Cromwellian
+cromwellian
+Cronartium
+crone
+croneberry
+cronel
+Croner
+crones
+cronet
+Cronia
+Cronian
+cronian
+CRONIC
+cronie
+cronied
+cronies
+Cronin
+cronish
+cronk
+cronkness
+Cronos
+cronstedtite
+Cronus
+cronus
+crony
+cronying
+cronyism
+cronyisms
+Cronyn
+crooch
+crood
+croodle
+crooisite
+crook
+crookback
+crook-backed
+crookbacked
+crookbill
+crookbilled
+crooked
+crooked-backed
+crookedbacked
+crooked-billed
+crooked-branched
+crooked-clawed
+crookeder
+crookedest
+crooked-eyed
+crooked-foot
+crooked-legged
+crooked-limbed
+crooked-lined
+crooked-lipped
+crookedly
+crookedness
+crookednesses
+crooked-nosed
+crooked-pated
+crooked-shouldered
+crooked-stemmed
+crooked-toothed
+crooked-winged
+crooked-wood
+crooken
+crookeries
+crookery
+Crookes
+crookesite
+crookfingered
+crookheaded
+crooking
+crookkneed
+crookle
+crooklegged
+crookneck
+crooknecked
+crooknecks
+crooknosed
+Crooks
+crooks
+crookshouldered
+crooksided
+crooksterned
+Crookston
+Crooksville
+crooktoothed
+crool
+Croom
+Croomia
+croon
+crooned
+crooner
+crooners
+crooning
+crooningly
+croons
+croose
+crop
+crop-bound
+crop-dust
+crop-duster
+crop-dusting
+crop-ear
+crop-eared
+crop-farming
+crop-full
+crop-haired
+crophead
+crop-headed
+cropland
+croplands
+cropless
+cropman
+crop-nosed
+croppa
+cropped
+cropper
+croppers
+croppie
+croppies
+cropping
+cropplecrown
+crop-producing
+croppy
+crops
+Cropsey
+Cropseyville
+crop-shaped
+cropshin
+crop-sick
+cropsick
+cropsickness
+crop-tailed
+cropweed
+Cropwell
+croquet
+croqueted
+croqueting
+croquets
+croquette
+croquettes
+croquignole
+croquis
+crore
+crores
+crosa
+Crosby
+crosby
+Crosbyton
+crose
+croset
+crosette
+croshabell
+crosier
+crosiered
+crosiers
+croslet
+Crosley
+crosne
+crosnes
+Cross
+cross
+cross-
+crossability
+crossable
+cross-adoring
+cross-aisle
+cross-appeal
+crossarm
+cross-armed
+crossarms
+crossband
+cross-banded
+crossbanded
+cross-banding
+crossbanding
+cross-bar
+crossbar
+crossbarred
+crossbarring
+crossbars
+crossbbred
+cross-beak
+crossbeak
+cross-beam
+crossbeam
+crossbeams
+cross-bearer
+crossbearer
+cross-bearing
+cross-bearings
+cross-bedded
+cross-bedding
+crossbelt
+cross-bench
+crossbench
+cross-benched
+cross-benchedness
+cross-bencher
+crossbencher
+cross-bias
+cross-biased
+cross-biassed
+cross-bill
+crossbill
+cross-bind
+crossbirth
+crossbite
+crossbolt
+crossbolted
+cross-bombard
+cross-bond
+cross-bones
+crossbones
+Crossbow
+cross-bow
+crossbow
+crossbowman
+crossbowmen
+crossbows
+cross-bred
+crossbred
+crossbreds
+cross-breed
+crossbreed
+crossbreeded
+crossbreeding
+crossbreeds
+cross-bridge
+cross-brush
+cross-bun
+cross-buttock
+cross-buttocker
+cross-carve
+cross-channel
+cross-check
+crosscheck
+cross-church
+cross-claim
+cross-cloth
+cross-compound
+cross-connect
+cross-country
+cross-course
+crosscourt
+cross-cousin
+cross-crosslet
+crosscrosslet
+cross-crosslets
+crosscurrent
+crosscurrented
+crosscurrents
+cross-curve
+cross-cut
+crosscut
+crosscuts
+crosscutter
+crosscutting
+cross-datable
+cross-date
+cross-dating
+cross-days
+cross-disciplinary
+cross-division
+cross-drain
+cross-dye
+cross-dyeing
+Crosse
+crosse
+crossed
+crossed-h
+crossed-out
+cross-elbowed
+crosser
+crossers
+crosses
+crossest
+Crossett
+crossette
+cross-examination
+cross-examine
+cross-examined
+cross-examiner
+cross-examining
+cross-eye
+cross-eyed
+cross-eyedness
+cross-eyes
+cross-face
+cross-fade
+cross-faded
+cross-fading
+crossfall
+cross-feed
+cross-ferred
+cross-ferring
+cross-fertile
+cross-fertilizable
+crossfertilizable
+cross-fertilization
+cross-fertilize
+cross-fertilized
+cross-fertilizing
+cross-fiber
+cross-file
+cross-filed
+cross-filing
+cross-finger
+cross-fingered
+cross-fire
+crossfire
+crossfired
+cross-firing
+crossfiring
+cross-fish
+crossfish
+cross-fissured
+cross-fixed
+crossflow
+cross-flower
+crossflower
+cross-folded
+crossfoot
+cross-fox
+cross-fur
+cross-gagged
+cross-garnet
+cross-gartered
+cross-grain
+cross-grained
+cross-grainedly
+cross-grainedness
+crossgrainedness
+crosshackle
+crosshair
+crosshairs
+crosshand
+cross-handed
+cross-handled
+cross-hatch
+crosshatch
+crosshatched
+cross-hatcher
+crosshatcher
+crosshatches
+cross-hatching
+crosshatching
+crosshaul
+crosshauling
+cross-head
+crosshead
+cross-headed
+cross-hilted
+cross-immunity
+cross-immunization
+cross-index
+crossing
+crossing-out
+crossing-over
+crossings
+cross-interrogate
+cross-interrogation
+cross-interrogator
+cross-interrogatory
+cross-invite
+crossite
+cross-jack
+crossjack
+cross-joined
+cross-jostle
+cross-laced
+cross-laminated
+cross-land
+cross-lap
+crosslap
+cross-latticed
+cross-leaved
+cross-legged
+cross-leggedly
+cross-leggedness
+crosslegs
+crosslet
+crossleted
+crosslets
+cross-level
+crossley
+cross-license
+cross-licensed
+cross-licensing
+cross-lift
+cross-light
+crosslight
+crosslighted
+crosslike
+crossline
+cross-link
+crosslink
+cross-locking
+cross-lots
+crossly
+cross-marked
+cross-mate
+cross-mated
+cross-mating
+cross-multiplication
+crossness
+Crossnore
+crossopodia
+crossopt
+crossopterygian
+Crossopterygii
+Crossosoma
+Crossosomataceae
+crossosomataceous
+cross-out
+cross-over
+crossover
+crossovers
+cross-patch
+crosspatch
+crosspatches
+crosspath
+cross-pawl
+cross-peal
+cross-piece
+crosspiece
+crosspieces
+cross-piled
+cross-plough
+cross-plow
+cross-ply
+cross-point
+crosspoint
+crosspoints
+cross-pollen
+cross-pollenize
+cross-pollinate
+cross-pollinated
+cross-pollinating
+cross-pollination
+cross-pollinize
+cross-post
+crosspost
+cross-purpose
+cross-purposes
+cross-question
+cross-questionable
+cross-questioner
+cross-questioning
+crossrail
+cross-ratio
+cross-reaction
+cross-reading
+cross-refer
+cross-reference
+cross-remainder
+cross-road
+crossroad
+crossroading
+Crossroads
+crossroads
+cross-row
+crossrow
+cross-ruff
+crossruff
+cross-sail
+cross-section
+cross-sectional
+cross-shaped
+cross-shave
+cross-slide
+cross-spale
+cross-spall
+cross-springer
+cross-staff
+cross-staffs
+cross-star
+cross-staves
+cross-sterile
+cross-sterility
+cross-stitch
+cross-stitching
+cross-stone
+cross-stratification
+cross-stratified
+cross-striated
+cross-string
+cross-stringed
+cross-stringing
+cross-striped
+cross-strung
+cross-sue
+cross-surge
+cross-tail
+crosstail
+crosstalk
+crosstie
+crosstied
+crossties
+cross-tine
+crosstoes
+cross-town
+crosstown
+crosstrack
+cross-tree
+crosstree
+crosstrees
+cross-validation
+cross-vault
+cross-vaulted
+cross-vaulting
+cross-vein
+cross-veined
+cross-ventilate
+cross-ventilation
+Crossville
+cross-vine
+cross-voting
+crosswalk
+crosswalks
+cross-way
+crossway
+crossways
+crossweb
+crossweed
+Crosswicks
+cross-wind
+crosswind
+crosswise
+crosswiseness
+crossword
+cross-worder
+crossworder
+crosswords
+crosswort
+cross-wrapped
+crost
+crostarie
+Croswell
+crotal
+Crotalaria
+crotalaria
+crotalic
+crotalid
+Crotalidae
+crotaliform
+crotalin
+Crotalinae
+crotaline
+crotalism
+crotalo
+crotaloid
+crotalum
+Crotalus
+crotalus
+crotaphic
+crotaphion
+crotaphite
+crotaphitic
+Crotaphytus
+crotch
+crotched
+crotches
+crotchet
+crotcheted
+crotcheteer
+crotchetiness
+crotcheting
+crotchets
+crotchety
+crotching
+crotchwood
+crotchy
+Croteau
+crotesco
+Crothersville
+Crotia
+crotin
+Croton
+croton
+crotonaldehyde
+crotonate
+croton-bug
+crotonbug
+Crotone
+crotonic
+crotonization
+Croton-on-Hudson
+crotons
+crotonyl
+crotonylene
+Crotophaga
+Crotopus
+crottal
+crottels
+crottle
+Crotty
+Crotus
+crotyl
+crouch
+crouchant
+crouchback
+crouche
+crouched
+croucher
+crouches
+crouchie
+crouching
+crouchingly
+crouchmas
+crouch-ware
+crouke
+crounotherapy
+croup
+croupade
+croupal
+croupe
+crouperbush
+croupes
+croupier
+croupiers
+croupiest
+croupily
+croupiness
+croupon
+croupous
+croups
+croupy
+Crouse
+crouse
+crousely
+Crouseville
+croustade
+crout
+croute
+crouth
+crouton
+croutons
+Crow
+crow
+crowbait
+crow-bar
+crowbar
+crowbars
+crowbell
+crowberries
+crowberry
+crow-bill
+crowbill
+crowboot
+crowd
+crowded
+crowdedly
+crowdedness
+Crowder
+crowder
+crowders
+crowdie
+crowdies
+crowding
+crowdle
+crowds
+crowdweed
+crowdy
+Crowe
+crowed
+Crowell
+crower
+crowers
+crowfeet
+crow-flower
+crowflower
+crowfoot
+crowfooted
+crowfoots
+crow-garlic
+Crowheart
+crowhop
+crowhopper
+crowing
+crowingly
+crowkeeper
+crowl
+crow-leek
+Crowley
+Crown
+crown
+crownal
+crownation
+crownband
+crownbeard
+crowncapping
+crowned
+crowner
+crowners
+crownet
+crownets
+crown-glass
+crowning
+crown-land
+crownland
+crownless
+crownlet
+crownlike
+crownling
+crownmaker
+crownment
+crown-of-jewels
+crown-of-thorns
+crown-paper
+crown-piece
+crownpiece
+crown-post
+Crowns
+crowns
+crown-scab
+crown-shaped
+Crownsville
+crown-wheel
+crown-work
+crownwork
+crownwort
+crow-pheasant
+crow-quill
+crows
+crow's-feet
+crow's-foot
+crowshay
+crow-silk
+crow's-nest
+crow-soap
+crow-step
+crowstep
+crowstepped
+crowsteps
+crowstick
+crow-stone
+crowstone
+crow-toe
+crowtoe
+crow-tread
+crow-victuals
+Crowville
+croy
+croyden
+Croydon
+croydon
+croyl
+croze
+crozed
+crozer
+crozers
+crozes
+Crozet
+Crozier
+crozier
+croziers
+crozing
+crozle
+crozzle
+crozzly
+CRP
+crpe
+CRRES
+CRS
+crs
+CRSAB
+CRT
+CRTC
+crts
+cru
+crub
+crubeen
+Cruce
+cruce
+cruces
+crucethouse
+cruche
+crucial
+cruciality
+crucially
+crucialness
+crucian
+Crucianella
+crucians
+cruciate
+cruciated
+cruciately
+cruciating
+cruciation
+cruciato-
+crucible
+crucibles
+Crucibulum
+crucifer
+Cruciferae
+cruciferous
+crucifers
+crucificial
+crucified
+crucifier
+crucifies
+crucifige
+crucifix
+crucifixes
+Crucifixion
+crucifixion
+crucifixions
+cruciform
+cruciformity
+cruciformly
+crucify
+crucifyfied
+crucifyfying
+crucifying
+crucigerous
+crucilly
+crucily
+Crucis
+crucis
+cruck
+crucks
+crud
+crudded
+Crudden
+cruddier
+crudding
+cruddle
+cruddy
+crude
+crudelity
+crudely
+crudeness
+cruder
+crudes
+crudest
+crudites
+crudities
+crudity
+crudle
+cruds
+crudwort
+crudy
+cruel
+crueler
+cruelest
+cruel-hearted
+cruelhearted
+cruelize
+crueller
+cruellest
+cruelly
+cruelness
+cruels
+cruelties
+cruelty
+cruent
+cruentate
+cruentation
+cruentous
+cruet
+cruets
+cruety
+Cruger
+Cruickshank
+Cruikshank
+cruise
+cruised
+cruiser
+cruisers
+cruiserweight
+cruises
+cruiseway
+cruising
+cruisingly
+cruiskeen
+cruisken
+cruive
+crull
+cruller
+crullers
+Crum
+crum
+crumb
+crumbable
+crumbcloth
+crumbed
+crumber
+crumbers
+crumbier
+crumbiest
+crumbing
+crumble
+crumbled
+crumblement
+crumbles
+crumblet
+crumblier
+crumbliest
+crumbliness
+crumbling
+crumblingness
+crumblings
+crumbly
+crumbs
+crumbum
+crumbums
+crumby
+crumen
+crumena
+crumenal
+crumhorn
+crumlet
+crummable
+crummed
+crummer
+crummie
+crummier
+crummies
+crummiest
+crumminess
+crumming
+crummock
+crummy
+crump
+crumped
+crumper
+crumpet
+crumpets
+crumping
+crumple
+crumpled
+Crumpler
+crumpler
+crumples
+crumpling
+crumply
+crumps
+Crumpton
+crumpy
+Crumrod
+crumster
+crunch
+crunchable
+crunched
+cruncher
+crunchers
+crunches
+crunchier
+crunchiest
+crunchily
+crunchiness
+crunching
+crunchingly
+crunchingness
+crunchweed
+crunchy
+crunk
+crunkle
+crunodal
+crunode
+crunodes
+crunt
+cruor
+cruorin
+cruors
+crup
+cruppen
+crupper
+cruppered
+cruppering
+cruppers
+crura
+crural
+crureus
+crurogenital
+cruroinguinal
+crurotarsal
+crus
+crusade
+crusaded
+crusader
+crusaders
+Crusades
+crusades
+crusading
+crusado
+crusadoes
+crusados
+Crusca
+cruse
+cruses
+cruset
+crusets
+crush
+crushability
+crushable
+crushableness
+crushed
+crusher
+crushers
+crushes
+crushing
+crushingly
+crushproof
+crusie
+crusile
+crusilee
+crusily
+crusily-fitchy
+Crusoe
+crust
+crusta
+Crustacea
+crustacea
+crustaceal
+crustacean
+crustaceans
+crustaceological
+crustaceologist
+crustaceology
+crustaceorubrin
+crustaceous
+crustade
+crustal
+crustalogical
+crustalogist
+crustalogy
+crustate
+crustated
+crustation
+crusted
+crustedly
+cruster
+crust-hunt
+crust-hunter
+crust-hunting
+crustier
+crustiest
+crustific
+crustification
+crustily
+crustiness
+crusting
+crustless
+crustose
+crustosis
+crusts
+crusty
+crut
+crutch
+crutch-cross
+crutched
+Crutcher
+crutcher
+crutches
+crutching
+crutchlike
+crutch-stick
+cruth
+crutter
+Crux
+crux
+cruxes
+Cruyff
+Cruz
+cruzado
+cruzadoes
+cruzados
+cruzeiro
+cruzeiros
+cruziero
+cruzieros
+crwd
+crwth
+crwths
+CRY
+cry
+cry-
+cryable
+cryaesthesia
+cryal
+cryalgesia
+Cryan
+cryanesthesia
+crybabies
+crybaby
+cryesthesia
+crying
+cryingly
+crymoanesthesia
+crymodynia
+crymotherapy
+cryo-
+cryo-aerotherapy
+cryobiological
+cryobiologically
+cryobiologist
+cryobiology
+cryocautery
+cryochore
+cryochoric
+cryoconite
+cryogen
+cryogenic
+cryogenically
+cryogenics
+cryogenies
+cryogens
+cryogeny
+cryohydrate
+cryohydric
+cryolite
+cryolites
+cryological
+cryology
+cryometer
+cryometry
+cryonic
+cryonics
+cryopathy
+cryophile
+cryophilic
+cryophoric
+cryophorus
+cryophyllite
+cryophyte
+cryoplankton
+cryoprobe
+cryoprotective
+cryo-pump
+cryoscope
+cryoscopic
+cryoscopies
+cryoscopy
+cryosel
+cryosphere
+cryospheric
+cryostase
+cryostat
+cryostats
+cryosurgeon
+cryosurgery
+cryosurgical
+cryotherapies
+cryotherapy
+cryotron
+cryotrons
+crypt
+crypt-
+crypta
+cryptaesthesia
+cryptal
+cryptamnesia
+cryptamnesic
+cryptanalysis
+cryptanalyst
+cryptanalytic
+cryptanalytical
+cryptanalytically
+cryptanalytics
+cryptanalyze
+cryptanalyzed
+cryptanalyzing
+cryptarch
+cryptarchy
+crypted
+Crypteronia
+Crypteroniaceae
+cryptesthesia
+cryptesthetic
+cryptic
+cryptical
+cryptically
+crypticness
+crypto
+crypto-
+cryptoagnostic
+cryptoanalysis
+cryptoanalyst
+cryptoanalytic
+cryptoanalytically
+cryptoanalytics
+cryptobatholithic
+cryptobranch
+Cryptobranchia
+Cryptobranchiata
+cryptobranchiate
+Cryptobranchidae
+Cryptobranchus
+Crypto-calvinism
+Crypto-calvinist
+Crypto-calvinistic
+cryptocarp
+cryptocarpic
+cryptocarpous
+Cryptocarya
+Crypto-catholic
+Crypto-catholicism
+Cryptocephala
+cryptocephalous
+Cryptocerata
+cryptocerous
+Crypto-christian
+cryptoclastic
+Cryptocleidus
+cryptoclimate
+cryptoclimatology
+cryptococcal
+cryptococci
+cryptococcic
+cryptococcosis
+Cryptococcus
+cryptococcus
+cryptocommercial
+cryptocrystalline
+cryptocrystallization
+cryptodeist
+Cryptodira
+cryptodiran
+cryptodire
+cryptodirous
+cryptodouble
+cryptodynamic
+Crypto-fenian
+cryptogam
+cryptogame
+Cryptogamia
+cryptogamia
+cryptogamian
+cryptogamic
+cryptogamical
+cryptogamist
+cryptogamous
+cryptogamy
+cryptogenetic
+cryptogenic
+cryptogenous
+Cryptoglaux
+cryptoglioma
+cryptogram
+Cryptogramma
+cryptogrammatic
+cryptogrammatical
+cryptogrammatist
+cryptogrammic
+cryptograms
+cryptograph
+cryptographal
+cryptographer
+cryptographers
+cryptographic
+cryptographical
+cryptographically
+cryptographies
+cryptographist
+cryptography
+cryptoheresy
+cryptoheretic
+cryptoinflationist
+Crypto-jesuit
+Crypto-jew
+Crypto-jewish
+cryptolite
+cryptolith
+cryptologic
+cryptological
+cryptologist
+cryptology
+cryptolunatic
+cryptomere
+Cryptomeria
+cryptomeria
+cryptomerous
+cryptometer
+cryptomnesia
+cryptomnesic
+cryptomonad
+Cryptomonadales
+Cryptomonadina
+cryptonema
+Cryptonemiales
+cryptoneurous
+cryptonym
+cryptonymic
+cryptonymous
+cryptopapist
+cryptoperthite
+Cryptophagidae
+cryptophthalmos
+Cryptophyceae
+cryptophyte
+cryptophytic
+cryptopin
+cryptopine
+cryptoporticus
+Cryptoprocta
+cryptoproselyte
+cryptoproselytism
+Crypto-protestant
+cryptopyic
+cryptopyrrole
+cryptorchid
+cryptorchidism
+cryptorchis
+cryptorchism
+Cryptorhynchus
+Crypto-royalist
+cryptorrhesis
+cryptorrhetic
+cryptos
+cryptoscope
+cryptoscopy
+Crypto-socinian
+cryptosplenetic
+Cryptostegia
+cryptostoma
+Cryptostomata
+cryptostomate
+cryptostome
+Cryptotaenia
+cryptous
+cryptovalence
+cryptovalency
+cryptovolcanic
+cryptovolcanism
+cryptoxanthin
+Cryptozoic
+cryptozoic
+cryptozoite
+cryptozonate
+Cryptozonia
+Cryptozoon
+cryptozygosity
+cryptozygous
+cryptozygy
+crypts
+Crypturi
+Crypturidae
+cryst
+cryst.
+Crysta
+Crystal
+crystal
+crystal-clear
+crystal-clearness
+crystal-dropping
+crystaled
+crystal-flowing
+crystal-gazer
+crystal-girded
+crystaling
+Crystalite
+crystalitic
+crystalize
+crystall
+crystal-leaved
+crystalled
+crystallic
+crystalliferous
+crystalliform
+crystalligerous
+crystallike
+crystallin
+crystalline
+crystalling
+crystallinity
+crystallisability
+crystallisable
+crystallisation
+crystallise
+crystallised
+crystallising
+crystallite
+crystallites
+crystallitic
+crystallitis
+crystallizability
+crystallizable
+crystallization
+crystallizations
+crystallize
+crystallized
+crystallizer
+crystallizes
+crystallizing
+crystallo-
+crystalloblastic
+crystallochemical
+crystallochemistry
+crystallod
+crystallogenesis
+crystallogenetic
+crystallogenic
+crystallogenical
+crystallogeny
+crystallogram
+crystallograph
+crystallographer
+crystallographers
+crystallographic
+crystallographical
+crystallographically
+crystallography
+crystallogy
+crystalloid
+crystalloidal
+crystallology
+crystalloluminescence
+crystallomagnetic
+crystallomancy
+crystallometric
+crystallometry
+crystallophobia
+crystallophyllian
+Crystallose
+crystallose
+crystallurgy
+crystal-producing
+crystals
+crystal-smooth
+crystal-streaming
+crystal-winged
+crystalwort
+cryste
+crystic
+Crystie
+crystograph
+crystoleum
+Crystolon
+crystosphene
+crzette
+C.S.
+CS
+Cs
+cS
+cs
+cs.
+CSA
+CSAB
+CSACC
+CSACS
+CSAR
+csardas
+CSB
+CSC
+csc
+csch
+C-scroll
+CSD
+CSDC
+CSE
+csect
+csects
+Csel
+CSF
+C-shaped
+C-sharp
+CSI
+csi
+CSIRO
+CSIS
+csk
+CSL
+CSM
+CSMA
+CSMACA
+CSMACD
+csmp
+CSN
+CSNET
+csnet
+CSO
+CSOC
+CSP
+csp
+CSPAN
+CSR
+CSRG
+CSRI
+CSRS
+CSS
+CST
+cst
+C-star
+CSTC
+CSU
+csw
+C.T.
+CT
+Ct
+ct
+ct.
+CTA
+CTC
+CTD
+cte
+Cteatus
+ctelette
+Ctenacanthus
+ctene
+ctenidia
+ctenidial
+ctenidium
+cteniform
+ctenii
+cteninidia
+ctenizid
+cteno-
+Ctenocephalus
+ctenocyst
+ctenodactyl
+Ctenodipterini
+ctenodont
+Ctenodontidae
+Ctenodus
+ctenoid
+ctenoidean
+Ctenoidei
+ctenoidian
+ctenolium
+Ctenophora
+ctenophora
+ctenophoral
+ctenophoran
+ctenophore
+ctenophoric
+ctenophorous
+Ctenoplana
+Ctenostomata
+ctenostomatous
+ctenostome
+CTERM
+Ctesiphon
+Ctesippus
+Ctesius
+ctetology
+ctf
+ctg
+ctge
+Cthrine
+ctimo
+CTIO
+CTM
+CTMS
+ctn
+CTNE
+CTO
+cto
+ctr
+ctr.
+ctrl
+CTS
+cts
+cts.
+CTSS
+CTT
+CTTC
+CTTN
+CTV
+CU
+Cu
+cu
+CUA
+cuadra
+cuadrilla
+cuadrillas
+cuadrillero
+Cuailnge
+Cuajone
+cuamuchil
+cuapinole
+cuarenta
+cuarta
+cuartel
+cuarteron
+cuartilla
+cuartillo
+cuartino
+cuarto
+Cub
+cub
+Cuba
+cuba
+Cubage
+cubage
+cubages
+cubalaya
+Cuban
+cuban
+cubane
+cubangle
+cubanite
+Cubanize
+cubans
+cubas
+cubation
+cubatory
+cubature
+cubatures
+cubbies
+cubbing
+cubbish
+cubbishly
+cubbishness
+cubby
+cubbyhole
+cubbyholes
+cubbyhouse
+cubbyu
+cubbyyew
+cubdom
+cub-drawn
+cube
+cubeb
+cubebs
+cubed
+cubehead
+cubelet
+Cubelium
+cuber
+cubera
+Cubero
+cubers
+cubes
+cube-shaped
+cubhood
+cub-hunting
+cubi
+cubi-
+cubic
+cubica
+cubical
+cubically
+cubicalness
+cubicities
+cubicity
+cubicle
+cubicles
+cubicly
+cubicone
+cubicontravariant
+cubicovariant
+cubics
+cubicula
+cubicular
+cubiculary
+cubiculo
+cubiculum
+cubiform
+cubing
+Cubism
+cubism
+cubisms
+cubist
+cubistic
+cubistically
+cubists
+cubit
+cubital
+cubitale
+cubitalia
+cubited
+cubiti
+cubitiere
+cubito
+cubito-
+cubitocarpal
+cubitocutaneous
+cubitodigital
+cubitometacarpal
+cubitopalmar
+cubitoplantar
+cubitoradial
+cubits
+cubitus
+cubla
+cubmaster
+cubo-
+cubocalcaneal
+cuboctahedron
+cubocube
+cubocuneiform
+cubododecahedral
+cuboid
+cuboidal
+cuboides
+cuboids
+cubomancy
+Cubomedusae
+cubomedusan
+cubometatarsal
+cubonavicular
+cubo-octahedral
+cubo-octahedron
+Cu-bop
+Cubrun
+cubs
+cubti
+cuca
+cucaracha
+Cuchan
+cuchia
+Cuchillo
+Cuchulain
+Cuchulainn
+Cuchullain
+cuck
+cuckhold
+cucking
+cucking-stool
+cuckold
+cuckolded
+cuckolding
+cuckoldize
+cuckoldly
+cuckoldom
+cuckoldry
+cuckolds
+cuckoldy
+cuckoo
+cuckoo-babies
+cuckoo-bread
+cuckoo-bud
+cuckoo-button
+cuckooed
+cuckoo-flower
+cuckooflower
+cuckoo-fly
+cuckoo-fool
+cuckooing
+cuckoomaid
+cuckoomaiden
+cuckoomate
+cuckoo-meat
+cuckoo-pint
+cuckoopint
+cuckoo-pintle
+cuckoopintle
+cuckoos
+cuckoo-shrike
+cuckoo-spit
+cuckoo-spittle
+cuckquean
+cuck-stool
+cuckstool
+cucoline
+CUCRIT
+Cucujid
+Cucujidae
+Cucujus
+cucularis
+cucule
+Cuculi
+Cuculidae
+cuculiform
+Cuculiformes
+cuculine
+cuculla
+cucullaris
+cucullate
+cucullated
+cucullately
+cuculle
+cuculliform
+cucullus
+cuculoid
+Cuculus
+Cucumaria
+Cucumariidae
+cucumber
+cucumbers
+cucumiform
+Cucumis
+cucupha
+cucurb
+cucurbit
+Cucurbita
+Cucurbitaceae
+cucurbitaceous
+cucurbital
+cucurbite
+cucurbitine
+cucurbits
+Cucuta
+cucuy
+cucuyo
+cud
+Cuda
+cuda
+Cudahy
+cudava
+cudbear
+cudbears
+cud-chewing
+Cuddebackville
+cudden
+cuddie
+cuddies
+cuddle
+cuddleable
+cuddled
+cuddles
+cuddlesome
+cuddlier
+cuddliest
+cuddling
+cuddly
+Cuddy
+cuddy
+cuddyhole
+cudeigh
+cudgel
+cudgeled
+cudgeler
+cudgelers
+cudgeling
+cudgelled
+cudgeller
+cudgelling
+cudgels
+cudgerie
+Cudlip
+cuds
+cudweed
+cudweeds
+cudwort
+cue
+cueball
+cue-bid
+cue-bidden
+cue-bidding
+cueca
+cuecas
+cued
+cueing
+cueist
+cueman
+cuemanship
+cuemen
+Cuenca
+cue-owl
+cuerda
+Cuernavaca
+Cuero
+cuerpo
+Cuervo
+cues
+cuesta
+cuestas
+Cueva
+cuff
+cuffed
+cuffer
+cuffin
+cuffing
+cuffle
+cuffless
+cufflink
+cufflinks
+cuffs
+cuffy
+cuffyism
+Cufic
+cufic
+cuggermugger
+Cui
+Cuiaba
+cuichunchulli
+Cuicuilco
+cuidado
+cuiejo
+cuiejos
+cuif
+cuifs
+cuinage
+cuinfo
+cuing
+cuir
+cuirass
+cuirassed
+cuirasses
+cuirassier
+cuirassing
+cuir-bouilli
+cuirie
+cuish
+cuishes
+cuisinary
+cuisine
+cuisines
+cuisinier
+cuissard
+cuissart
+cuisse
+cuissen
+cuisses
+cuisten
+cuit
+Cuitlateco
+cuitle
+cuitled
+cuitling
+cuittikin
+cuittle
+cuittled
+cuittles
+cuittling
+cui-ui
+cuj
+Cujam
+cuke
+cukes
+Cukor
+CUL
+cul
+-cula
+culation
+Culavamsa
+Culberson
+Culbert
+culbert
+Culbertson
+culbut
+culbute
+culbuter
+culch
+culches
+Culdee
+culdee
+cul-de-four
+cul-de-lampe
+Culdesac
+cul-de-sac
+-cule
+Culebra
+culebra
+culerage
+culet
+culets
+culett
+culeus
+Culex
+culex
+culgee
+Culhert
+Culiac
+Culiacan
+culices
+culicid
+Culicidae
+culicidal
+culicide
+culicids
+culiciform
+culicifugal
+culicifuge
+Culicinae
+culicine
+culicines
+Culicoides
+culilawan
+culinarian
+culinarily
+culinary
+Culion
+Cull
+cull
+culla
+cullage
+Cullan
+cullas
+cullay
+cullays
+culled
+Cullen
+cullender
+Culleoka
+culler
+cullers
+cullet
+cullets
+Culley
+cullibility
+cullible
+Cullie
+cullied
+cullies
+Cullin
+culling
+cullion
+cullionly
+cullionry
+cullions
+cullis
+cullisance
+cullises
+Culliton
+Cullman
+Culloden
+Cullom
+Cullowhee
+culls
+Cully
+cully
+cullying
+Culm
+culm
+culmed
+culmen
+culmicolous
+culmiferous
+culmigenous
+culminal
+culminant
+culminatation
+culminatations
+culminate
+culminated
+culminates
+culminating
+culmination
+culminations
+culminative
+culming
+culms
+culmy
+Culosio
+culot
+culotte
+culottes
+culottic
+culottism
+culp
+culpa
+culpabilis
+culpability
+culpable
+culpableness
+culpably
+culpae
+culpas
+culpate
+culpatory
+culpeo
+Culpeper
+culpon
+culpose
+culprit
+culprits
+culrage
+culsdesac
+cult
+cultch
+cultches
+cultellation
+cultelli
+cultellus
+culter
+culteranismo
+culti
+cultic
+cultigen
+cultigens
+cultirostral
+Cultirostres
+cultish
+cultism
+cultismo
+cultisms
+cultist
+cultistic
+cultists
+cultivability
+cultivable
+cultivably
+cultivar
+cultivars
+cultivatability
+cultivatable
+cultivatation
+cultivatations
+cultivate
+cultivated
+cultivates
+cultivating
+cultivation
+cultivations
+cultivative
+cultivator
+cultivators
+cultive
+cultrate
+cultrated
+cultriform
+cultrirostral
+Cultrirostres
+cults
+culttelli
+cult-title
+cultual
+culturable
+cultural
+culturalist
+culturally
+cultural-nomadic
+culture
+cultured
+cultureless
+cultures
+culturine
+culturing
+culturist
+culturization
+culturize
+culturological
+culturologically
+culturologist
+culturology
+cultus
+cultus-cod
+cultuses
+-culus
+Culver
+culver
+culverfoot
+culverhouse
+culverin
+culverineer
+culveriner
+culverins
+culverkey
+culverkeys
+culvers
+culvert
+culvertage
+culverts
+culverwort
+cum
+Cumacea
+cumacean
+cumaceous
+Cumae
+Cumaean
+cumal
+cumaldehyde
+Cuman
+Cumana
+Cumanagoto
+cumaphyte
+cumaphytic
+cumaphytism
+Cumar
+cumara
+cumarin
+cumarins
+cumarone
+cumaru
+cumay
+cumbent
+cumber
+cumbered
+cumberer
+cumberers
+cumbering
+Cumberland
+cumberland
+cumberlandite
+cumberless
+cumberment
+Cumbernauld
+cumbers
+cumbersome
+cumbersomely
+cumbersomeness
+cumberworld
+cumbha
+cumble
+cumbly
+Cumbola
+cumbraite
+cumbrance
+cumbre
+Cumbria
+Cumbrian
+cumbrous
+cumbrously
+cumbrousness
+cumbu
+Cumby
+cumene
+cumengite
+cumenyl
+cumflutter
+cumhal
+cumic
+cumidin
+cumidine
+cumin
+cuminal
+Cumine
+Cumings
+cuminic
+cuminoin
+cuminol
+cuminole
+cumins
+cuminseed
+cuminyl
+cumly
+Cummaquid
+cummer
+cummerbund
+cummerbunds
+cummers
+cummin
+Cummine
+Cumming
+Cummings
+Cummington
+cummingtonite
+Cummins
+cummins
+cummock
+cumol
+cump
+cumquat
+cumquats
+cumsha
+cumshaw
+cumshaws
+cumu-cirro-stratus
+cumul-
+cumulant
+cumular
+cumular-spherulite
+cumulate
+cumulated
+cumulately
+cumulates
+cumulating
+cumulation
+cumulatist
+cumulative
+cumulatively
+cumulativeness
+cumulato-
+cumulene
+cumulet
+cumuli
+cumuliform
+cumulite
+cumulo-
+cumulo-cirro-stratus
+cumulo-cirrus
+cumulocirrus
+cumulo-nimbus
+cumulonimbus
+cumulophyric
+cumulose
+cumulo-stratus
+cumulostratus
+cumulous
+cumulo-volcano
+cumulus
+cumyl
+cun
+Cuna
+cunabula
+cunabular
+Cunan
+Cunard
+Cunarder
+Cunas
+Cunaxa
+cunctation
+cunctatious
+cunctative
+cunctator
+cunctatorship
+cunctatory
+cunctatury
+cunctipotent
+cund
+cundeamor
+Cundiff
+cundite
+cundum
+cundums
+cundurango
+cundy
+cunea
+cuneal
+cuneate
+cuneated
+cuneately
+cuneatic
+cuneator
+cunei
+cuneiform
+cuneiformist
+cunenei
+Cuneo
+cuneo-
+cuneocuboid
+cuneonavicular
+cuneoscaphoid
+cunette
+cuneus
+Cuney
+Cung
+cungeboi
+cungevoi
+cunicular
+cuniculi
+cuniculus
+cuniform
+cuniforms
+cunila
+cunili
+Cunina
+cunit
+cunjah
+cunjer
+cunjevoi
+cunner
+cunners
+cunni
+cunnilinctus
+cunnilinguism
+cunnilingus
+cunning
+cunningaire
+cunninger
+cunningest
+Cunningham
+Cunninghamia
+cunningly
+cunningness
+cunnings
+cunny
+Cunonia
+Cunoniaceae
+cunoniaceous
+cunt
+cunts
+CUNY
+cunye
+cunyie
+Cunza
+cunzie
+Cuon
+cuorin
+cup
+Cupania
+Cupavo
+cupay
+cup-bearer
+cupbearer
+cupbearers
+cupboard
+cupboards
+cupcake
+cupcakes
+cupel
+cupeled
+cupeler
+cupelers
+cupeling
+cupellation
+cupelled
+cupeller
+cupellers
+cupelling
+cupels
+Cupertino
+cupflower
+cupful
+cupfulfuls
+cupfuls
+Cuphea
+cuphead
+cup-headed
+cupholder
+Cupid
+cupid
+cupidinous
+cupidities
+cupidity
+cupidon
+cupidone
+cupids
+cupid's-bow
+Cupid's-dart
+cupiuba
+cupless
+cuplike
+cupmaker
+cupmaking
+cupman
+cup-mark
+cup-marked
+cupmate
+cup-moss
+Cupo
+cupola
+cupola-capped
+cupolaed
+cupolaing
+cupolaman
+cupolar
+cupola-roofed
+cupolas
+cupolated
+cuppa
+cuppas
+cupped
+cuppen
+cupper
+cuppers
+cuppier
+cuppiest
+cuppin
+cupping
+cuppings
+cuppy
+cuprammonia
+cuprammonium
+cuprate
+cuprein
+cupreine
+cuprene
+cupreo-
+cupreous
+Cupressaceae
+cupressineous
+Cupressinoxylon
+Cupressus
+cupric
+cupride
+cupriferous
+cuprite
+cuprites
+cupro-
+cuproammonium
+cuprobismutite
+cuprocyanide
+cuprodescloizite
+cuproid
+cuproiodargyrite
+cupromanganese
+cupronickel
+cuproplumbite
+cuproscheelite
+cuprose
+cuprosilicon
+cuproso-
+cuprotungstite
+cuprous
+cuprum
+cuprums
+cups
+cupseed
+cupsful
+cup-shake
+cup-shaped
+cup-shot
+cupstone
+cup-tied
+cup-tossing
+cupula
+cupulae
+cupular
+cupulate
+cupule
+cupules
+Cupuliferae
+cupuliferous
+cupuliform
+cur
+cur.
+cura
+Curaao
+curability
+curable
+curableness
+curably
+Curacao
+curacao
+curacaos
+curace
+curacies
+curacoa
+curacoas
+curacy
+curage
+curagh
+curaghs
+curara
+curaras
+Curare
+curare
+curares
+curari
+curarine
+curarines
+curaris
+curarization
+curarize
+curarized
+curarizes
+curarizing
+curassow
+curassows
+curat
+curatage
+curate
+curatel
+curates
+curateship
+curatess
+curatial
+curatic
+curatical
+curation
+curative
+curatively
+curativeness
+curatives
+curatize
+curatolatry
+curator
+curatorial
+curatorium
+curators
+curatorship
+curatory
+curatrices
+curatrix
+Curavecan
+curb
+curbable
+curbash
+curbed
+curber
+curbers
+curbing
+curbings
+curbless
+curblike
+curbline
+curb-plate
+curb-roof
+curbs
+curb-sending
+curbside
+curb-stone
+curbstone
+curbstoner
+curbstones
+curby
+curcas
+curch
+curchef
+curches
+curchy
+Curcio
+curcuddoch
+Curculio
+curculio
+curculionid
+Curculionidae
+curculionist
+curculios
+Curcuma
+curcuma
+curcumas
+curcumin
+curd
+curded
+curdier
+curdiest
+curdiness
+curding
+curdle
+curdled
+curdler
+curdlers
+curdles
+curdling
+curdly
+curdoo
+curds
+Curdsville
+curdwort
+curdy
+cure
+cure-all
+cured
+cureless
+curelessly
+curelessness
+curemaster
+curer
+curers
+cures
+curet
+Curetes
+curets
+curettage
+curette
+curetted
+curettement
+curettes
+curetting
+curf
+curfew
+curfewed
+curfewing
+curfews
+curfs
+Curhan
+Curia
+curia
+curiae
+curiage
+curial
+curialism
+curialist
+curialistic
+curialities
+curiality
+curiam
+curiara
+curiate
+Curiatii
+curiboca
+Curie
+curie
+curiegram
+curies
+curiescopy
+curiet
+curietherapy
+curin
+curine
+curing
+curio
+curiolofic
+curiologic
+curiological
+curiologically
+curiologics
+curiology
+curiomaniac
+curios
+curiosa
+curiosi
+curiosities
+curiosity
+curioso
+curiosos
+curious
+curiouser
+curiousest
+curiously
+curiousness
+curiousnesses
+curite
+curites
+Curitiba
+Curitis
+Curityba
+curium
+curiums
+Curkell
+curl
+curled
+curled-leaved
+curledly
+curledness
+curler
+curlers
+curlew
+curlewberry
+curlews
+Curley
+curl-flowered
+curlicue
+curlicued
+curlicues
+curlicuing
+curlier
+curliest
+curlie-wurlie
+curliewurlie
+curliewurly
+curlike
+curlily
+curliness
+curling
+curlingly
+curlings
+Curllsville
+curlpaper
+curls
+curly
+curly-coated
+curlycue
+curlycues
+curly-haired
+curlyhead
+curly-headed
+curlyheads
+curly-locked
+curlylocks
+curly-pate
+curly-pated
+curly-polled
+curly-toed
+curmudgeon
+curmudgeonery
+curmudgeonish
+curmudgeonly
+curmudgeons
+curmurging
+curmurring
+curn
+curney
+curneys
+curnie
+curnies
+Curnin
+curnock
+curns
+curpel
+curpin
+curple
+Curr
+curr
+currach
+currachs
+currack
+curragh
+curraghs
+currajong
+Curran
+curran
+currance
+currane
+currans
+currant
+currant-leaf
+currants
+currantworm
+curratow
+currawang
+currawong
+curred
+Curren
+currencies
+currency
+current
+currently
+currentness
+currents
+currentwise
+Currer
+Currey
+curricla
+curricle
+curricled
+curricles
+curricling
+curricula
+curricular
+curricularization
+curricularize
+curriculum
+curriculums
+Currie
+currie
+curried
+Currier
+currier
+currieries
+curriers
+curriery
+curries
+curriing
+currijong
+curring
+currish
+currishly
+currishness
+Currituck
+currock
+currs
+Curry
+curry
+curry-comb
+currycomb
+currycombed
+currycombing
+currycombs
+curry-favel
+curryfavel
+curryfavour
+currying
+Curryville
+curs
+Cursa
+cursal
+cursaro
+curse
+cursed
+curseder
+cursedest
+cursedly
+cursedness
+cursement
+cursen
+curser
+cursers
+curses
+curship
+cursillo
+cursing
+cursitate
+cursitor
+cursive
+cursively
+cursiveness
+cursives
+Curson
+cursor
+cursorary
+Cursores
+cursores
+Cursoria
+cursorial
+Cursoriidae
+cursorily
+cursoriness
+cursorious
+Cursorius
+cursors
+cursory
+curst
+curstful
+curstfully
+curstly
+curstness
+cursus
+Curt
+curt
+curtail
+curtailed
+curtailedly
+curtailer
+curtailing
+curtailment
+curtailments
+curtails
+curtail-step
+curtain
+curtained
+curtaining
+curtainless
+curtain-raiser
+curtains
+curtainwise
+curtal
+curtal-ax
+curtalax
+curtalaxes
+curtals
+Curtana
+curtana
+curtate
+curtation
+curtaxe
+curtays
+curted
+curtein
+curtelace
+curteous
+curter
+curtesies
+curtest
+curtesy
+Curt-hose
+curt-hose
+Curtice
+curtilage
+Curtin
+Curtis
+Curtise
+Curtiss
+Curtisville
+Curtius
+curtlax
+curtly
+curtness
+curtnesses
+curtsey
+curtseyed
+curtseying
+curtseys
+curtsied
+curtsies
+curtsy
+curtsying
+curua
+curuba
+Curucaneca
+Curucanecan
+curucucu
+curucui
+curule
+Curuminaca
+Curuminacan
+curupay
+curupays
+curupey
+Curupira
+cururo
+cururos
+Curuzu-Cuatia
+curvaceous
+curvaceously
+curvaceousness
+curvacious
+curval
+curvant
+curvate
+curvated
+curvation
+curvative
+curvature
+curvatures
+curve
+curve-ball
+curveball
+curve-billed
+curved
+curved-fruited
+curved-horned
+curvedly
+curvedness
+curved-veined
+curve-fruited
+curver
+curves
+curvesome
+curvesomeness
+curvet
+curveted
+curveting
+curvets
+curvette
+curvetted
+curvetting
+curve-veined
+curvey
+curvi-
+curvicaudate
+curvicostate
+curvidentate
+curvier
+curviest
+curvifoliate
+curviform
+curvilinead
+curvilineal
+curvilinear
+curvilinearity
+curvilinearly
+curvimeter
+curvinervate
+curvinerved
+curviness
+curving
+curvirostral
+Curvirostres
+curviserial
+curvital
+curvities
+curvity
+curvle
+curvograph
+curvometer
+curvous
+curvulate
+curvy
+Curwensville
+curwhibble
+curwillet
+cury
+curying
+Curzon
+Cusack
+Cusanus
+Cusco
+cusco-bark
+cuscohygrin
+cuscohygrine
+cusconin
+cusconine
+Cuscus
+cuscus
+cuscuses
+Cuscuta
+Cuscutaceae
+cuscutaceous
+cusec
+cusecs
+cuselite
+Cush
+cush
+cushag
+cushat
+cushats
+cushaw
+cushaws
+cush-cush
+cushew-bird
+cushewbird
+cushie
+cushier
+cushiest
+cushily
+cushiness
+Cushing
+cushing
+cushion
+cushioncraft
+cushioned
+cushionet
+cushionflower
+cushion-footed
+cushioniness
+cushioning
+cushionless
+cushionlike
+cushions
+cushion-shaped
+cushion-tired
+cushiony
+Cushite
+Cushitic
+cushitic
+cushlamochree
+Cushman
+cushy
+Cusick
+cusie
+cusinero
+cusk
+cusk-eel
+cusk-eels
+cusks
+CUSO
+Cusp
+cusp
+cuspal
+cusparia
+cusparidine
+cusparine
+cuspate
+cuspated
+cusped
+cuspid
+cuspidal
+cuspidate
+cuspidated
+cuspidation
+cuspides
+cuspidine
+cuspidor
+cuspidors
+cuspids
+cusping
+cuspis
+cusps
+cusp-shaped
+cuspule
+cuss
+cussed
+cussedly
+cussedness
+cusser
+cussers
+cusses
+Cusseta
+cussing
+cussing-out
+cusso
+cussos
+cussword
+cusswords
+cust
+Custar
+custard
+custard-cups
+custards
+Custer
+custerite
+custode
+custodee
+custodes
+custodia
+custodial
+custodiam
+custodian
+custodians
+custodianship
+custodier
+custodies
+custody
+custom
+customable
+customableness
+customably
+customance
+customaries
+customarily
+customariness
+customary
+custom-built
+custom-cut
+customed
+customer
+customers
+custom-house
+customhouse
+customhouses
+customing
+customizable
+customization
+customizations
+customize
+customized
+customizer
+customizers
+customizes
+customizing
+customly
+custom-made
+customs
+customs-exempt
+customs-house
+customshouse
+custom-tailored
+custos
+custrel
+custron
+custroun
+custumal
+custumals
+Cut
+cut
+cutability
+Cutaiar
+cut-and-cover
+cut-and-dried
+cut-and-dry
+cut-and-try
+cutaneal
+cutaneous
+cutaneously
+cut-away
+cutaway
+cutaways
+cut-back
+cutback
+cutbacks
+Cutbank
+cutbank
+cutbanks
+Cutch
+cutch
+cutcha
+Cutcheon
+cutcher
+cutcheries
+cutcherries
+cutcherry
+cutchery
+cutches
+Cutchogue
+Cutcliffe
+cut-down
+cutdown
+cutdowns
+cute
+cutely
+cuteness
+cutenesses
+cuter
+Cuterebra
+cutes
+cutesie
+cutesier
+cutesiest
+cutest
+cutesy
+cutey
+cuteys
+cut-finger
+cut-glass
+cut-grass
+cutgrass
+cutgrasses
+Cuthbert
+Cuthbertson
+Cuthburt
+cutheal
+cuticle
+cuticles
+cuticolor
+cuticula
+cuticulae
+cuticular
+cuticularization
+cuticularize
+cuticulate
+cutidure
+cutiduris
+cutie
+cuties
+cutification
+cutify
+cutigeral
+cutikin
+cut-in
+cutin
+cutinisation
+cutinise
+cutinised
+cutinises
+cutinising
+cutinization
+cutinize
+cutinized
+cutinizes
+cutinizing
+cutins
+cutireaction
+cutis
+cutisector
+cutises
+Cutiterebra
+cutitis
+cutization
+CUTK
+cutlas
+cutlases
+cutlash
+cutlass
+cutlasses
+cutlassfish
+cutlassfishes
+cut-leaf
+cut-leaved
+Cutler
+cutler
+cutleress
+Cutleria
+Cutleriaceae
+cutleriaceous
+Cutleriales
+cutleries
+Cutlerr
+cutlers
+cutlery
+cutlet
+cutlets
+cutline
+cutlines
+cutling
+cutlings
+Cutlip
+cutlips
+Cutlor
+cutocellulose
+cut-off
+cutoff
+cutoffs
+cutose
+cut-out
+cutout
+cutouts
+cutover
+cutovers
+cut-paper
+cut-price
+cutpurse
+cutpurses
+cut-rate
+CUTS
+cuts
+cutset
+Cutshin
+cuttable
+Cuttack
+cuttage
+cuttages
+cuttail
+cuttanee
+cutted
+Cutter
+cutter
+cutter-built
+cutter-down
+cutter-gig
+cutterhead
+cutterman
+cutter-off
+cutter-out
+cutter-rigged
+cutters
+cutter-up
+cutthroat
+cutthroats
+cut-through
+Cuttie
+cutties
+cuttikin
+cutting
+cuttingly
+cuttingness
+cuttings
+Cuttingsville
+cuttle
+cuttle-bone
+cuttlebone
+cuttlebones
+cuttled
+cuttle-fish
+cuttlefish
+cuttlefishes
+Cuttler
+cuttler
+cuttles
+cuttling
+cuttoe
+cuttoo
+cuttoos
+cut-toothed
+Cutty
+cutty
+Cuttyhunk
+cuttyhunk
+cutty-stool
+cut-under
+Cutuno
+cutup
+cutups
+cutwal
+cutwater
+cutwaters
+cutweed
+cut-work
+cutwork
+cutworks
+cutworm
+cutworms
+cuvage
+cuve
+cuvee
+cuvette
+cuvettes
+Cuvier
+Cuvierian
+cuvies
+cuvy
+Cuxhaven
+cuya
+Cuyab
+Cuyaba
+Cuyama
+Cuyapo
+cuyas
+Cuyler
+Cuyp
+Cuzceno
+cuzceno
+Cuzco
+Cuzzart
+CV
+cv
+CVA
+CVCC
+Cvennes
+C.V.O.
+CVO
+CVR
+CVT
+CW
+CWA
+CWC
+CWI
+cwierc
+Cwikielnik
+Cwlth
+cwm
+Cwmbran
+cwms
+CWO
+c.w.o.
+cwo
+cwrite
+CWRU
+cwt
+cwt.
+CXI
+-cy
+CY
+Cy
+cy
+cya-
+cyaathia
+cyamelid
+cyamelide
+cyamid
+cyamoid
+Cyamus
+cyan
+cyan-
+cyanacetic
+Cyanamid
+cyanamid
+cyanamide
+cyanamids
+cyananthrol
+Cyanastraceae
+Cyanastrum
+cyanate
+cyanates
+cyanaurate
+cyanauric
+cyanbenzyl
+cyan-blue
+cyancarbonic
+Cyane
+Cyanea
+cyanea
+cyanean
+Cyanee
+cyanemia
+cyaneous
+cyanephidrosis
+cyanformate
+cyanformic
+cyanhidrosis
+cyanhydrate
+cyanhydric
+cyanhydrin
+cyanic
+cyanicide
+cyanid
+cyanidation
+cyanide
+cyanided
+cyanides
+cyanidin
+cyanidine
+cyaniding
+cyanidrosis
+cyanids
+cyanimide
+cyanin
+cyanine
+cyanines
+cyanins
+cyanite
+cyanites
+cyanitic
+cyanize
+cyanized
+cyanizing
+cyanmethemoglobin
+cyano
+cyano-
+cyanoacetate
+cyanoacetic
+cyanoacrylate
+cyanoaurate
+cyanoauric
+cyanobenzene
+cyanocarbonic
+cyanochlorous
+cyanochroia
+cyanochroic
+Cyanocitta
+cyanocobalamin
+cyanocobalamine
+cyanocrystallin
+cyanoderma
+cyanoethylate
+cyanoethylation
+cyanogen
+cyanogenamide
+cyanogenesis
+cyanogenetic
+cyanogenic
+cyanogens
+cyanoguanidine
+cyanohermidin
+cyanohydrin
+cyanol
+cyanole
+cyanomaclurin
+cyanometer
+cyanomethaemoglobin
+cyanomethemoglobin
+cyanometric
+cyanometries
+cyanometry
+cyanopathic
+cyanopathy
+cyanophil
+cyanophile
+cyanophilous
+cyanophoric
+cyanophose
+Cyanophyceae
+cyanophycean
+cyanophyceous
+cyanophycin
+cyanopia
+cyanoplastid
+cyanoplatinite
+cyanoplatinous
+cyanopsia
+cyanose
+cyanosed
+cyanoses
+cyanosis
+cyanosite
+Cyanospiza
+cyanotic
+cyanotrichite
+cyanotype
+cyans
+cyanuramide
+cyanurate
+cyanuret
+cyanuric
+cyanurin
+cyanurine
+cyanus
+cyaphenine
+cyath
+Cyathaspis
+Cyathea
+Cyatheaceae
+cyatheaceous
+cyathi
+cyathia
+cyathiform
+cyathium
+cyathoid
+cyatholith
+Cyathophyllidae
+cyathophylline
+cyathophylloid
+Cyathophyllum
+cyathos
+cyathozooid
+cyathus
+Cyb
+Cybebe
+Cybele
+cybele
+cybercultural
+cyberculture
+cybernate
+cybernated
+cybernating
+cybernation
+cybernetic
+cybernetical
+cybernetically
+cybernetician
+cyberneticist
+cyberneticists
+cybernetics
+cybernion
+Cybil
+Cybill
+Cybister
+cyborg
+cyborgs
+cyc
+cycad
+Cycadaceae
+cycadaceous
+Cycadales
+cycadean
+cycadeoid
+Cycadeoidea
+cycadeous
+cycadiform
+cycadite
+cycadlike
+cycadofilicale
+Cycadofilicales
+cycadofilicales
+Cycadofilices
+cycadofilicinean
+Cycadophyta
+cycadophyte
+cycads
+Cycas
+cycas
+cycases
+cycasin
+cycasins
+Cychosz
+Cychreus
+cycl
+cycl-
+Cyclades
+cyclades
+Cycladic
+cyclamate
+cyclamates
+cyclamen
+cyclamens
+cyclamin
+cyclamine
+cyclammonium
+Cyclamycin
+cyclane
+Cyclanthaceae
+cyclanthaceous
+Cyclanthales
+Cyclanthus
+cyclar
+cyclarthrodial
+cyclarthrosis
+cyclarthrsis
+cyclas
+cyclase
+cyclases
+cyclazocine
+cycle
+cyclecar
+cyclecars
+cycled
+cycledom
+cyclene
+cycler
+cyclers
+cyclery
+cycles
+cyclesmith
+Cycliae
+cyclian
+cyclic
+cyclical
+cyclicality
+cyclically
+cyclicalness
+cyclicism
+cyclicity
+cyclicly
+cyclide
+cyclindroid
+cycling
+cyclings
+cyclism
+cyclist
+cyclistic
+cyclists
+cyclitic
+cyclitis
+cyclitol
+cyclitols
+cyclization
+cyclize
+cyclized
+cyclizes
+cyclizing
+cyclo
+cyclo-
+cycloacetylene
+cycloaddition
+cycloaliphatic
+cycloalkane
+Cyclobothra
+cyclobutane
+cyclocephaly
+cyclocoelic
+cyclocoelous
+Cycloconium
+cyclo-cross
+cyclode
+cyclodiene
+cyclodiolefin
+cyclodiolefine
+cycloganoid
+Cycloganoidei
+cyclogenesis
+cyclogram
+cyclograph
+cyclographer
+cycloheptane
+cycloheptanone
+cyclohexadienyl
+cyclohexane
+cyclohexanol
+cyclohexanone
+cyclohexatriene
+cyclohexene
+cycloheximide
+cyclohexyl
+cyclohexylamine
+cycloid
+cycloidal
+cycloidally
+cycloidean
+Cycloidei
+cycloidian
+cycloidotrope
+cycloids
+cyclolith
+Cycloloma
+cyclolysis
+cyclomania
+cyclometer
+cyclometers
+cyclometric
+cyclometrical
+cyclometries
+cyclometry
+Cyclomyaria
+cyclomyarian
+cyclonal
+cyclone
+cyclone-proof
+cyclones
+cyclonic
+cyclonical
+cyclonically
+cyclonist
+cyclonite
+cyclonologist
+cyclonology
+cyclonometer
+cyclonoscope
+cycloolefin
+cycloolefine
+cycloolefinic
+cyclop
+cyclopaedia
+cyclopaedias
+cyclopaedic
+cyclopaedically
+cyclopaedist
+cycloparaffin
+cyclope
+Cyclopean
+cyclopean
+cyclopedia
+cyclopedias
+cyclopedic
+cyclopedical
+cyclopedically
+cyclopedist
+cyclopentadiene
+cyclopentane
+cyclopentanone
+cyclopentene
+Cyclopes
+cyclopes
+cyclophoria
+cyclophoric
+Cyclophorus
+cyclophosphamide
+cyclophosphamides
+cyclophrenia
+cyclopia
+Cyclopic
+cyclopic
+cyclopism
+cyclopite
+cycloplegia
+cycloplegic
+cyclopoid
+cyclopropane
+Cyclops
+cyclops
+Cyclopteridae
+cyclopteroid
+cyclopterous
+cyclopy
+cyclorama
+cycloramas
+cycloramic
+Cyclorrhapha
+cyclorrhaphous
+cyclos
+cycloscope
+cyclose
+cycloserine
+cycloses
+cyclosilicate
+cyclosis
+cyclospermous
+Cyclospondyli
+cyclospondylic
+cyclospondylous
+Cyclosporales
+Cyclosporeae
+Cyclosporinae
+cyclosporous
+Cyclostoma
+Cyclostomata
+cyclostomate
+Cyclostomatidae
+cyclostomatous
+cyclostome
+Cyclostomes
+Cyclostomi
+Cyclostomidae
+cyclostomous
+cyclostrophic
+cyclostylar
+cyclostyle
+Cyclotella
+cyclothem
+cyclothure
+cyclothurine
+Cyclothurus
+cyclothyme
+cyclothymia
+cyclothymiac
+cyclothymic
+cyclotome
+cyclotomic
+cyclotomies
+cyclotomy
+Cyclotosaurus
+cyclotrimethylenetrinitramine
+cyclotron
+cyclotrons
+cyclovertebral
+cyclus
+Cycnus
+Cyd
+cyder
+cyders
+Cydippe
+cydippe
+cydippian
+cydippid
+Cydippida
+Cydnus
+cydon
+Cydonia
+Cydonian
+cydonium
+cyeses
+cyesiology
+cyesis
+cyetic
+cygneous
+Cygnet
+cygnet
+cygnets
+Cygni
+Cygnid
+Cygninae
+cygnine
+Cygnus
+cygnus
+Cykana
+cyke
+cyl
+cyl.
+Cyler
+cylices
+cylinder
+cylinder-bored
+cylinder-boring
+cylinder-dried
+cylindered
+cylinderer
+cylinder-grinding
+cylindering
+cylinderlike
+cylinders
+cylinder-shaped
+cylindraceous
+cylindrarthrosis
+Cylindrella
+cylindrelloid
+cylindrenchema
+cylindrenchyma
+cylindric
+cylindrical
+cylindricality
+cylindrically
+cylindricalness
+cylindric-campanulate
+cylindric-fusiform
+cylindricity
+cylindric-oblong
+cylindric-ovoid
+cylindric-subulate
+cylindricule
+cylindriform
+cylindrite
+cylindro-
+cylindrocellular
+cylindrocephalic
+cylindroconical
+cylindroconoidal
+cylindrocylindric
+cylindrodendrite
+cylindrograph
+cylindroid
+cylindroidal
+cylindroma
+cylindromata
+cylindromatous
+cylindrometric
+cylindroogival
+Cylindrophis
+Cylindrosporium
+cylindruria
+cylix
+Cyllene
+Cyllenian
+Cyllenius
+cylloses
+cyllosis
+Cylvia
+Cym
+Cyma
+cyma
+cymae
+cymagraph
+cymaise
+cymaphen
+cymaphyte
+cymaphytic
+cymaphytism
+cymar
+cymarin
+cymarose
+cymars
+cymas
+cymatia
+cymation
+cymatium
+cymba
+cymbaeform
+cymbal
+Cymbalaria
+cymbaled
+cymbaleer
+cymbaler
+cymbalers
+cymbaline
+cymbalist
+cymbalists
+cymballed
+cymballike
+cymballing
+cymbalo
+cymbalom
+cymbalon
+cymbals
+cymbate
+cymbel
+Cymbeline
+Cymbella
+cymbid
+cymbidia
+cymbidium
+cymbiform
+Cymbium
+cymblin
+cymbling
+cymblings
+cymbocephalic
+cymbocephalous
+cymbocephaly
+Cymbopogon
+Cymbre
+cyme
+cymelet
+cymene
+cymenes
+cymes
+cymiferous
+cymlin
+cymling
+cymlings
+cymlins
+cymobotryose
+Cymodoce
+Cymodoceaceae
+cymogene
+cymogenes
+cymograph
+cymographic
+cymoid
+Cymoidium
+cymol
+cymols
+cymometer
+cymophane
+cymophanous
+cymophenol
+cymophobia
+cymoscope
+cymose
+cymosely
+cymotrichous
+cymotrichy
+cymous
+Cymraeg
+Cymric
+cymric
+cymrite
+Cymry
+cymry
+cymtia
+cymule
+cymulose
+Cyn
+Cyna
+cynanche
+Cynanchum
+cynanthropy
+Cynar
+Cynara
+cynaraceous
+cynarctomachy
+cynareous
+cynaroid
+Cynarra
+Cynde
+Cyndi
+Cyndia
+Cyndie
+Cyndy
+cyne-
+cynebot
+cynegetic
+cynegetics
+cynegild
+Cynera
+Cynewulf
+cynghanedd
+cynhyena
+Cynias
+cyniatria
+cyniatrics
+Cynic
+cynic
+Cynical
+cynical
+cynically
+cynicalness
+Cynicism
+cynicism
+cynicisms
+cynicist
+cynics
+cynipid
+Cynipidae
+cynipidous
+cynipoid
+Cynipoidea
+Cynips
+cynips
+cynism
+cyno-
+cynocephalic
+cynocephalous
+cynocephalus
+cynoclept
+Cynocrambaceae
+cynocrambaceous
+Cynocrambe
+cynodictis
+Cynodon
+cynodon
+cynodont
+Cynodontia
+Cynogale
+cynogenealogist
+cynogenealogy
+Cynoglossum
+Cynognathus
+cynography
+cynoid
+Cynoidea
+cynology
+cynomolgus
+Cynomoriaceae
+cynomoriaceous
+Cynomorium
+Cynomorpha
+cynomorphic
+cynomorphous
+Cynomys
+cynophile
+cynophilic
+cynophilist
+cynophobe
+cynophobia
+Cynopithecidae
+cynopithecoid
+cynopodous
+cynorrhoda
+cynorrhodon
+Cynortes
+Cynosarges
+Cynoscephalae
+Cynoscion
+Cynosura
+cynosural
+cynosure
+cynosures
+Cynosurus
+cynotherapy
+Cynoxylon
+Cynth
+Cynthea
+Cynthia
+cynthia
+Cynthian
+Cynthiana
+Cynthie
+Cynthiidae
+Cynthius
+Cynthla
+Cynthy
+Cynurus
+Cynwulf
+Cynwyd
+CYO
+cyp
+Cyparissia
+Cyparissus
+Cyperaceae
+cyperaceous
+Cyperus
+cyperus
+cyphella
+cyphellae
+cyphellate
+cypher
+cyphered
+cyphering
+cyphers
+Cyphomandra
+cyphonautes
+cyphonism
+cyphosis
+Cypraea
+cypraea
+cypraeid
+Cypraeidae
+cypraeiform
+cypraeoid
+cypre
+cypres
+cypreses
+cypress
+cypressed
+cypresses
+Cypressinn
+cypressroot
+Cypria
+Cyprian
+cyprian
+cyprians
+cyprid
+Cyprididae
+Cypridina
+Cypridinidae
+cypridinoid
+Cyprina
+cyprine
+cyprinid
+Cyprinidae
+cyprinids
+cypriniform
+cyprinin
+cyprinine
+cyprinodont
+Cyprinodontes
+Cyprinodontidae
+cyprinodontoid
+cyprinoid
+Cyprinoidea
+cyprinoidean
+Cyprinus
+Cyprio
+Cypriot
+cypriot
+Cypriote
+cypriote
+cypriotes
+cypriots
+cypripedin
+Cypripedium
+cypripedium
+Cypris
+cypris
+Cypro
+cyproheptadine
+Cypro-Minoan
+Cypro-phoenician
+cyproterone
+Cyprus
+cyprus
+cypruses
+cypsela
+cypselae
+Cypseli
+Cypselid
+Cypselidae
+cypseliform
+Cypseliformes
+cypseline
+cypseloid
+cypselomorph
+Cypselomorphae
+cypselomorphic
+cypselous
+Cypselus
+cyptozoic
+Cyra
+Cyrano
+Cyrena
+Cyrenaic
+cyrenaic
+Cyrenaica
+Cyrenaicism
+Cyrene
+Cyrenian
+Cyrie
+Cyril
+Cyrill
+Cyrilla
+Cyrillaceae
+cyrillaceous
+Cyrille
+Cyrillian
+Cyrillianism
+Cyrillic
+cyrillic
+Cyrillus
+cyriologic
+cyriological
+Cyrtandraceae
+Cyrtidae
+cyrto-
+cyrtoceracone
+Cyrtoceras
+cyrtoceratite
+cyrtoceratitic
+cyrtograph
+cyrtolite
+cyrtometer
+Cyrtomium
+cyrtopia
+cyrtosis
+cyrtostyle
+Cyrus
+cyrus
+Cysatus
+-cyst
+cyst
+cyst-
+cystadenoma
+cystadenosarcoma
+cystal
+cystalgia
+cystamine
+cystaster
+cystathionine
+cystatrophia
+cystatrophy
+cysteamine
+cystectasia
+cystectasy
+cystectomies
+cystectomy
+cysted
+cystein
+cysteine
+cysteines
+cysteinic
+cysteins
+cystelcosis
+cystenchyma
+cystenchymatous
+cystenchyme
+cystencyte
+cysterethism
+cysti-
+cystic
+cysticarpic
+cysticarpium
+cysticercerci
+cysticerci
+cysticercoid
+cysticercoidal
+cysticercosis
+cysticercus
+cysticerus
+cysticle
+cysticolous
+cystid
+Cystidea
+cystidean
+cystidia
+cystidicolous
+cystidium
+cystidiums
+cystiferous
+cystiform
+cystigerous
+Cystignathidae
+cystignathine
+cystin
+cystine
+cystines
+cystinosis
+cystinuria
+cystirrhea
+cystis
+cystitides
+cystitis
+cystitome
+cysto-
+cystoadenoma
+cystocarcinoma
+cystocarp
+cystocarpic
+cystocele
+cystocolostomy
+cystocyte
+cystodynia
+cystoelytroplasty
+cystoenterocele
+cystoepiplocele
+cystoepithelioma
+cystofibroma
+Cystoflagellata
+cystoflagellate
+cystogenesis
+cystogenous
+cystogram
+cystoid
+Cystoidea
+cystoidean
+cystoids
+cystolith
+cystolithectomy
+cystolithiasis
+cystolithic
+cystoma
+cystomas
+cystomata
+cystomatous
+cystometer
+cystomorphous
+cystomyoma
+cystomyxoma
+Cystonectae
+cystonectous
+cystonephrosis
+cystoneuralgia
+cystoparalysis
+Cystophora
+cystophore
+cystophotography
+cystophthisis
+cystoplasty
+cystoplegia
+cystoproctostomy
+Cystopteris
+cystoptosis
+Cystopus
+cystopyelitis
+cystopyelography
+cystopyelonephritis
+cystoradiography
+cystorrhagia
+cystorrhaphy
+cystorrhea
+cystosarcoma
+cystoschisis
+cystoscope
+cystoscopic
+cystoscopies
+cystoscopy
+cystose
+cystospasm
+cystospastic
+cystospore
+cystostomies
+cystostomy
+cystosyrinx
+cystotome
+cystotomies
+cystotomy
+cystotrachelotomy
+cystoureteritis
+cystourethritis
+cystourethrography
+cystous
+cysts
+cyt-
+cytase
+cytasic
+cytaster
+cytasters
+-cyte
+Cythera
+cythera
+Cytherea
+cytherea
+Cytherean
+cytherean
+Cytherella
+Cytherellidae
+cytidine
+cytidines
+Cytinaceae
+cytinaceous
+Cytinus
+cytioderm
+cytioderma
+cytisine
+Cytissorus
+Cytisus
+cytisus
+cytitis
+cyto-
+cytoanalyzer
+cytoarchitectural
+cytoarchitecturally
+cytoarchitecture
+cytoblast
+cytoblastema
+cytoblastemal
+cytoblastematous
+cytoblastemic
+cytoblastemous
+cytocentrum
+cytochalasin
+cytochemical
+cytochemistry
+cytochrome
+cytochylema
+cytocide
+cytoclasis
+cytoclastic
+cytococci
+cytococcus
+cytocyst
+cytode
+cytodendrite
+cytoderm
+cytodiagnosis
+cytodieresis
+cytodieretic
+cytodifferentiation
+cytoecology
+cytogamy
+cytogene
+cytogenesis
+cytogenetic
+cytogenetical
+cytogenetically
+cytogeneticist
+cytogenetics
+cytogenic
+cytogenies
+cytogenous
+cytogeny
+cytoglobin
+cytoglobulin
+cytohyaloplasm
+cytoid
+cytokinesis
+cytokinetic
+cytokinin
+cytol
+cytolist
+cytologic
+cytological
+cytologically
+cytologies
+cytologist
+cytologists
+cytology
+cytolymph
+cytolysin
+cytolysis
+cytolytic
+cytoma
+cytome
+cytomegalic
+cytomegalovirus
+cytomere
+cytometer
+cytomicrosome
+cytomitome
+cytomorphological
+cytomorphology
+cytomorphosis
+cyton
+cytone
+cytons
+cytopahgous
+cytoparaplastin
+cytopathic
+cytopathogenic
+cytopathogenicity
+cytopathologic
+cytopathological
+cytopathologically
+cytopathology
+cytopenia
+Cytophaga
+cytophagic
+cytophagous
+cytophagy
+cytopharynges
+cytopharynx
+cytopharynxes
+cytophil
+cytophilic
+cytophysics
+cytophysiology
+cytoplasm
+cytoplasmic
+cytoplasmically
+cytoplast
+cytoplastic
+cytoproct
+cytopyge
+cytoreticulum
+cytoryctes
+cytosin
+cytosine
+cytosines
+cytosol
+cytosols
+cytosome
+cytospectrophotometry
+Cytospora
+Cytosporina
+cytost
+cytostatic
+cytostatically
+cytostomal
+cytostome
+cytostroma
+cytostromatic
+cytotactic
+cytotaxis
+cytotaxonomic
+cytotaxonomically
+cytotaxonomy
+cytotechnologist
+cytotechnology
+cytotoxic
+cytotoxicity
+cytotoxin
+cytotrophoblast
+cytotrophoblastic
+cytotrophy
+cytotropic
+cytotropism
+cytovirin
+cytozoa
+cytozoic
+cytozoon
+cytozymase
+cytozyme
+cytozzoa
+cytula
+cytulae
+cyul
+cywydd
+Cyzicene
+cyzicene
+Cyzicus
+CZ
+Czajer
+Czanne
+czar
+czardas
+czardases
+czardom
+czardoms
+czarevitch
+czarevna
+czarevnas
+czarian
+czaric
+czarina
+czarinas
+czarinian
+czarish
+czarism
+czarisms
+czarist
+czaristic
+czarists
+czaritza
+czaritzas
+czarowitch
+czarowitz
+Czarra
+czars
+czarship
+Czech
+Czech.
+czech
+Czechic
+Czechish
+Czechization
+Czechosl
+Czecho-Slovak
+Czechoslovak
+czechoslovak
+Czecho-Slovakia
+Czechoslovakia
+czechoslovakia
+Czecho-Slovakian
+Czechoslovakian
+czechoslovakian
+czechoslovakians
+czechoslovaks
+czechs
+Czerniak
+Czerniakov
+Czernowitz
+Czerny
+czigany
+Czstochowa
+Czur
diff --git a/hotspot/test/compiler/7082949/Test7082949.java b/hotspot/test/compiler/7082949/Test7082949.java
new file mode 100644
index 0000000..41b7911
--- /dev/null
+++ b/hotspot/test/compiler/7082949/Test7082949.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+/**
+ * @test
+ * @bug 7082949
+ * @summary JSR 292: missing ResourceMark in methodOopDesc::make_invoke_method
+ *
+ * @run main Test7082949
+ */
+
+import java.lang.invoke.*;
+import static java.lang.invoke.MethodHandles.*;
+import static java.lang.invoke.MethodType.*;
+
+public class Test7082949 implements Runnable {
+    public static void main(String... args) throws Throwable {
+        new Thread(new Test7082949()).start();
+    }
+
+    public static Test7082949 test() {
+        return null;
+    }
+
+    public void run() {
+        try {
+            MethodHandle m1 = MethodHandles.lookup().findStatic(Test7082949.class, "test",  methodType(Test7082949.class));
+            Test7082949 v = (Test7082949)m1.invokeExact();
+        } catch (Throwable t) {
+            t.printStackTrace();
+        }
+    }
+}
diff --git a/hotspot/test/compiler/7088020/Test7088020.java b/hotspot/test/compiler/7088020/Test7088020.java
new file mode 100644
index 0000000..4ea9913
--- /dev/null
+++ b/hotspot/test/compiler/7088020/Test7088020.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+/**
+ * @test
+ * @bug 7088020
+ * @summary SEGV in JNIHandleBlock::release_block
+ *
+ * @run main Test7088020
+ */
+
+import java.lang.invoke.*;
+
+
+public class Test7088020 {
+    public static boolean test() {
+        return false;
+    }
+
+    public static void main(String... args) throws Throwable {
+        MethodHandle test = MethodHandles.lookup().findStatic(Test7088020.class, "test",  MethodType.methodType(Boolean.TYPE));
+
+        // Exercise WMT with different argument alignments
+        int thrown = 0;
+        try {
+            test.invokeExact(0);
+        } catch (WrongMethodTypeException wmt) {
+            thrown++;
+            if (wmt.getStackTrace().length < 1) throw new InternalError("missing stack frames");
+        }
+        try {
+            test.invokeExact(0, 1);
+        } catch (WrongMethodTypeException wmt) {
+            thrown++;
+            if (wmt.getStackTrace().length < 1) throw new InternalError("missing stack frames");
+        }
+        try {
+            test.invokeExact(0, 1, 2);
+        } catch (WrongMethodTypeException wmt) {
+            thrown++;
+            if (wmt.getStackTrace().length < 1) throw new InternalError("missing stack frames");
+        }
+        try {
+            test.invokeExact(0, 1, 2, 3);
+        } catch (WrongMethodTypeException wmt) {
+            thrown++;
+            if (wmt.getStackTrace().length < 1) throw new InternalError("missing stack frames");
+        }
+        try {
+            thrown++;
+            test.invokeExact(0, 1, 2, 3, 4);
+        } catch (WrongMethodTypeException wmt) {
+            if (wmt.getStackTrace().length < 1) throw new InternalError("missing stack frames");
+        }
+        if (thrown != 5) {
+            throw new InternalError("not enough throws");
+        }
+    }
+}
diff --git a/hotspot/test/gc/7072527/TestFullGCCount.java b/hotspot/test/gc/7072527/TestFullGCCount.java
new file mode 100644
index 0000000..14a049a
--- /dev/null
+++ b/hotspot/test/gc/7072527/TestFullGCCount.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test TestFullGCount.java
+ * @bug 7072527
+ * @summary CMS: JMM GC counters overcount in some cases
+ * @run main/othervm -XX:+UseConcMarkSweepGC TestFullGCCount
+ *
+ */
+import java.util.*;
+import java.lang.management.*;
+
+public class TestFullGCCount {
+
+    public String collectorName = "ConcurrentMarkSweep";
+
+    public static void main(String [] args) {
+
+        TestFullGCCount t = null;
+        if (args.length==2) {
+            t = new TestFullGCCount(args[0], args[1]);
+        } else {
+            t = new TestFullGCCount();
+        }
+        System.out.println("Monitoring collector: " + t.collectorName);
+        t.run();
+    }
+
+    public TestFullGCCount(String pool, String collector) {
+        collectorName = collector;
+    }
+
+    public TestFullGCCount() {
+    }
+
+    public void run() {
+        int count = 0;
+        int iterations = 20;
+        long counts[] = new long[iterations];
+        boolean diffAlways2 = true; // assume we will fail
+
+        for (int i=0; i<iterations; i++) {
+            System.gc();
+            counts[i] = getCollectionCount();
+            if (i>0) {
+                if (counts[i] - counts[i-1] != 2) {
+                    diffAlways2 = false;
+                }
+            }
+        }
+        if (diffAlways2) {
+            throw new RuntimeException("FAILED: System.gc must be incrementing count twice.");
+        }
+        System.out.println("Passed.");
+    }
+
+    private long getCollectionCount() {
+        long count = 0;
+        List<MemoryPoolMXBean> pools = ManagementFactory.getMemoryPoolMXBeans();
+        List<GarbageCollectorMXBean> collectors = ManagementFactory.getGarbageCollectorMXBeans();
+        for (int i=0; i<collectors.size(); i++) {
+            GarbageCollectorMXBean collector = collectors.get(i);
+            String name = collector.getName();
+            if (name.contains(collectorName)) {
+                System.out.println(name + ": collection count = "
+                                   + collector.getCollectionCount());
+                count = collector.getCollectionCount();
+            }
+        }
+        return count;
+    }
+
+}
+
diff --git a/hotspot/test/jprt.config b/hotspot/test/jprt.config
index 53c33fd..53ffdae 100644
--- a/hotspot/test/jprt.config
+++ b/hotspot/test/jprt.config
@@ -75,8 +75,8 @@ dirMustExist "${slashjava}"  ALT_SLASH_JAVA
 
 # Uses 'uname -s', but only expect SunOS or Linux, assume Windows otherwise.
 osname=`uname -s`
-if [ "${osname}" = SunOS ] ; then
-   
+case "${osname}" in
+  SunOS )
     # SOLARIS: Sparc or X86
     osarch=`uname -p`
     if [ "${osarch}" = sparc ] ; then
@@ -100,9 +100,9 @@ if [ "${osname}" = SunOS ] ; then
 
     # File creation mask
     umask 002
+    ;;
 
-elif [ "${osname}" = Linux ] ; then
-   
+  Linux | Darwin )
     # Add basic paths
     path4sdk=/usr/bin:/bin:/usr/sbin:/sbin
 
@@ -111,9 +111,31 @@ elif [ "${osname}" = Linux ] ; then
     fileMustExist "${make}" make
 
     umask 002
+    ;;
+
+  FreeBSD | OpenBSD )
+    # Add basic paths
+    path4sdk=/usr/bin:/bin:/usr/sbin:/sbin
 
-else
+    # Find GNU make
+    make=/usr/local/bin/gmake
+    fileMustExist "${make}" make
 
+    umask 002
+    ;;
+
+  NetBSD )
+    # Add basic paths
+    path4sdk=/usr/bin:/bin:/usr/sbin:/sbin
+
+    # Find GNU make
+    make=/usr/pkg/bin/gmake
+    fileMustExist "${make}" make
+
+    umask 002
+    ;;
+
+  * )
     # Windows: Differs on CYGWIN vs. MKS.
    
     # We need to determine if we are running a CYGWIN shell or an MKS shell
@@ -154,8 +176,8 @@ else
     if [ "${unix_toolset}" = CYGWIN ] ; then
 	path4sdk="`/usr/bin/cygpath -p ${path4sdk}`"
     fi
-
-fi
+    ;;
+esac
 
 # Export PATH setting
 PATH="${path4sdk}"
diff --git a/hotspot/test/runtime/6929067/Test6929067.sh b/hotspot/test/runtime/6929067/Test6929067.sh
index 51af191..8f9e13a 100644
--- a/hotspot/test/runtime/6929067/Test6929067.sh
+++ b/hotspot/test/runtime/6929067/Test6929067.sh
@@ -29,7 +29,7 @@ case "$OS" in
     PS=":"
     FS="/"
     ;;
-  SunOS | Windows_* )
+  SunOS | Windows_* | *BSD)
     NULL=NUL
     PS=";"
     FS="\\"
diff --git a/hotspot/test/runtime/7020373/Test7020373.sh b/hotspot/test/runtime/7020373/Test7020373.sh
new file mode 100644
index 0000000..7f6b03c
--- /dev/null
+++ b/hotspot/test/runtime/7020373/Test7020373.sh
@@ -0,0 +1,86 @@
+#!/bin/sh
+
+##
+## @test
+## @bug 7020373 7055247
+## @key cte_test
+## @summary JSR rewriting can overflow memory address size variables
+## @ignore Ignore it until 7053586 fixed
+## @run shell Test7020373.sh
+##
+
+if [ "${TESTSRC}" = "" ]
+then TESTSRC=.
+fi
+
+if [ "${TESTJAVA}" = "" ]
+then
+  PARENT=`dirname \`which java\``
+  TESTJAVA=`dirname ${PARENT}`
+  echo "TESTJAVA not set, selecting " ${TESTJAVA}
+  echo "If this is incorrect, try setting the variable manually."
+fi
+
+if [ "${TESTCLASSES}" = "" ]
+then
+  echo "TESTCLASSES not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+
+BIT_FLAG=""
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+  SunOS | Linux )
+    NULL=/dev/null
+    PS=":"
+    FS="/"
+    ## for solaris, linux it's HOME
+    FILE_LOCATION=$HOME
+    if [ -f ${FILE_LOCATION}${FS}JDK64BIT -a ${OS} = "SunOS" ]
+    then
+        BIT_FLAG=`cat ${FILE_LOCATION}${FS}JDK64BIT | grep -v '^#'`
+    fi
+    ;;
+  Windows_* )
+    NULL=NUL
+    PS=";"
+    FS="\\"
+    ;;
+  * )
+    echo "Unrecognized system!"
+    exit 1;
+    ;;
+esac
+
+JEMMYPATH=${CPAPPEND}
+CLASSPATH=.${PS}${TESTCLASSES}${PS}${JEMMYPATH} ; export CLASSPATH
+
+THIS_DIR=`pwd`
+
+${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} -version
+
+${TESTJAVA}${FS}bin${FS}jar xvf ${TESTSRC}${FS}testcase.jar
+
+${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} OOMCrashClass4000_1 > test.out 2>&1
+
+cat test.out
+
+egrep "SIGSEGV|An unexpected error has been detected" test.out
+
+if [ $? = 0 ]
+then
+    echo "Test Failed"
+    exit 1
+else
+    grep "java.lang.LinkageError" test.out
+    if [ $? = 0 ]
+    then
+        echo "Test Passed"
+        exit 0
+    else
+        echo "Test Failed"
+        exit 1
+    fi
+fi
diff --git a/hotspot/test/runtime/7051189/Xchecksig.sh b/hotspot/test/runtime/7051189/Xchecksig.sh
new file mode 100644
index 0000000..410cdb9
--- /dev/null
+++ b/hotspot/test/runtime/7051189/Xchecksig.sh
@@ -0,0 +1,151 @@
+# 
+#  Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+# 
+#  This code is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License version 2 only, as
+#  published by the Free Software Foundation.
+# 
+#  This code is distributed in the hope that it will be useful, but WITHOUT
+#  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+#  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+#  version 2 for more details (a copy is included in the LICENSE file that
+#  accompanied this code).
+# 
+#  You should have received a copy of the GNU General Public License version
+#  2 along with this work; if not, write to the Free Software Foundation,
+#  Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+# 
+#  Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+#  or visit www.oracle.com if you need additional information or have any
+#  questions.
+# 
+
+ 
+# @test Xchecksig.sh
+# @bug 7051189
+# @summary Need to suppress info message if -xcheck:jni used with libjsig.so
+# @run shell Xchecksig.sh
+#
+
+if [ "${TESTSRC}" = "" ]
+  then TESTSRC=.
+fi
+
+if [ "${TESTJAVA}" = "" ]
+then
+  PARENT=`dirname \`which java\``
+  TESTJAVA=`dirname ${PARENT}`
+  printf "TESTJAVA not set, selecting " ${TESTJAVA}
+  printf "  If this is incorrect, try setting the variable manually.\n"
+fi
+
+
+BIT_FLAG=""
+
+OS=`uname -s`
+case "$OS" in
+  SunOS | Linux )
+    FS="/"
+    ## for solaris, linux it's HOME
+    FILE_LOCATION=$HOME
+    if [ -f ${FILE_LOCATION}${FS}JDK64BIT -a ${OS} = "SunOS" ]
+    then
+        BIT_FLAG=`cat ${FILE_LOCATION}${FS}JDK64BIT`
+    fi
+    ;;
+  Windows_* )
+    printf "Not testing libjsig.so on Windows. PASSED.\n "
+    exit 0
+    ;;
+  * )
+    printf "Not testing libjsig.so on unrecognised system. PASSED.\n "
+    exit 0
+    ;;
+esac
+
+
+JAVA=${TESTJAVA}${FS}bin${FS}java
+
+# LD_PRELOAD arch needs to match the binary we run, so run the java
+# 64-bit binary directly if we are testing 64-bit (bin/ARCH/java).
+
+# However JPRT runs: .../solaris_x64_5.10-debug/bin/java
+# ..which is 32-bit, when it has built the 64-bit version to test.
+#
+# How does this script know we are meant to run the 64-bit version?
+# Can check for the path of the binary containing "x64" on Solaris.
+
+if [ ${OS} -eq "SunOS" ]
+then
+  printf  "SunOS test JAVA=${JAVA}"
+  printf ${JAVA} | grep x64 > /dev/null
+  if [ $? -eq 0 ]
+  then
+    printf "SunOS x64 test, forcing -d64\n"
+    BIT_FLAG=-d64
+  fi
+fi
+
+ARCH=`uname -p`
+case $ARCH in
+  i386)
+    if [ X${BIT_FLAG} != "X" ]
+    then
+      ARCH=amd64
+      JAVA=${TESTJAVA}${FS}bin${FS}${ARCH}${FS}java
+    fi
+    ;;
+  sparc)
+    if [ X${BIT_FLAG} != "X" ]
+    then
+      ARCH=sparcv9
+      JAVA=${TESTJAVA}${FS}bin${FS}${ARCH}${FS}java
+    fi
+    ;;
+  * )
+    printf "Not testing architecture $ARCH, skipping test.\n"
+    exit 0
+  ;; 
+esac
+
+LIBJSIG=${TESTJAVA}${FS}jre${FS}lib${FS}${ARCH}${FS}libjsig.so
+
+# If libjsig and binary do not match, skip test.
+
+A=`file ${LIBJSIG} | awk '{ print $3 }'`
+B=`file ${JAVA}    | awk '{ print $3 }'`
+
+if [ $A -ne $B ]
+then
+  printf "Mismatching binary and library to preload, skipping test.\n"
+  exit 0
+fi
+
+if [ ! -f ${LIBJSIG} ]
+then
+  printf "Skipping test: libjsig missing for given architecture: ${LIBJSIG}\n"
+  exit 0
+fi
+# Use java -version to test, java version info appeas on stderr,
+# the libjsig message we are removing appears on stdout.
+
+# grep returns zero meaning found, non-zero means not found:
+
+LD_PRELOAD=${LIBJSIG} ${JAVA} ${BIT_FLAG} -Xcheck:jni -version 2>&1  | grep "libjsig is activated"
+
+if [ $? -eq 0 ]; then
+  printf "Failed: -Xcheck:jni prints message when libjsig.so is loaded.\n"
+  exit 1
+fi
+
+
+LD_PRELOAD=${LIBJSIG} ${JAVA} ${BIT_FLAG} -Xcheck:jni -verbose:jni -version 2>&1 | grep "libjsig is activated"
+if [ $? != 0 ]; then
+  printf "Failed: -Xcheck:jni does not print message when libjsig.so is loaded and -verbose:jni is set.\n"
+  exit 1
+fi
+
+printf "PASSED\n"
+exit 0
+
diff --git a/jaxp/.hg/cache/branchheads b/jaxp/.hg/cache/branchheads
index 78f8688..f756663 100644
--- a/jaxp/.hg/cache/branchheads
+++ b/jaxp/.hg/cache/branchheads
@@ -1,2 +1,2 @@
-8f35cf4570b34149634ac290ee7eee58f40582b3 245
-8f35cf4570b34149634ac290ee7eee58f40582b3 default
+3545c3f8512c1a1b143f880f7ed157bacba51c43 271
+3545c3f8512c1a1b143f880f7ed157bacba51c43 default
diff --git a/jaxp/.hg/dirstate b/jaxp/.hg/dirstate
index 64a8045..e7067b5 100644
Binary files a/jaxp/.hg/dirstate and b/jaxp/.hg/dirstate differ
diff --git a/jaxp/.hg/store/00changelog.i b/jaxp/.hg/store/00changelog.i
index 43c4d67..0ee80e6 100644
Binary files a/jaxp/.hg/store/00changelog.i and b/jaxp/.hg/store/00changelog.i differ
diff --git a/jaxp/.hg/store/00manifest.i b/jaxp/.hg/store/00manifest.i
index 9c38872..9749db2 100644
Binary files a/jaxp/.hg/store/00manifest.i and b/jaxp/.hg/store/00manifest.i differ
diff --git a/jaxp/.hg/store/data/~2ehgtags.i b/jaxp/.hg/store/data/~2ehgtags.i
index 75efbd0..f2fd9e9 100644
Binary files a/jaxp/.hg/store/data/~2ehgtags.i and b/jaxp/.hg/store/data/~2ehgtags.i differ
diff --git a/jaxp/.hg/store/undo b/jaxp/.hg/store/undo
index 72f5163..363abd7 100644
Binary files a/jaxp/.hg/store/undo and b/jaxp/.hg/store/undo differ
diff --git a/jdk/.hg/undo.bookmarks b/jaxp/.hg/undo.bookmarks
similarity index 100%
copy from jdk/.hg/undo.bookmarks
copy to jaxp/.hg/undo.bookmarks
diff --git a/jaxp/.hg/undo.desc b/jaxp/.hg/undo.desc
index ef5e6a5..36858f6 100644
--- a/jaxp/.hg/undo.desc
+++ b/jaxp/.hg/undo.desc
@@ -1,3 +1,3 @@
-260
+263
 pull
 http://hg.openjdk.java.net/jigsaw/jigsaw/jaxp
diff --git a/jaxp/.hg/undo.dirstate b/jaxp/.hg/undo.dirstate
index 6606670..64a8045 100644
Binary files a/jaxp/.hg/undo.dirstate and b/jaxp/.hg/undo.dirstate differ
diff --git a/jaxp/.hgtags b/jaxp/.hgtags
index feae202..6f52fcb 100644
--- a/jaxp/.hgtags
+++ b/jaxp/.hgtags
@@ -129,3 +129,10 @@ e1b5ef243445bf836d095fd44866e1771ef99374 jdk7-b141
 bcd31fa1e3c6f51b4fdd427ef905188cdac57164 jdk7-b146
 fc268cd1dd5d2e903ccd4b0275e1f9c2461ed30c jdk7-b147
 4f0fcb812767594fe9de509f946b56942db5a2f0 jdk8-b01
+ca4d6ad55a660f0469882e85b4dacf7822d50abf jdk8-b02
+7a74371ce0c64108b857c497ae130dfe9514532c jdk8-b03
+acbcadef0b21582abf406f07f1b74d2b8f80dc01 jdk8-b04
+ff0a3d78e7a22743eabbaa71e9d17b2f094ddf62 jdk8-b05
+d7b8192e7277c49b9c702f4c4fd99bd83ba947ea jdk8-b06
+c114306576dcc1cb871a48058b41bf7d87ce882a jdk8-b07
+de4794dd69c48b08029d158a972993ff9d5627df jdk8-b08
diff --git a/jaxws/.hg/cache/branchheads b/jaxws/.hg/cache/branchheads
index f908202..58b2c73 100644
--- a/jaxws/.hg/cache/branchheads
+++ b/jaxws/.hg/cache/branchheads
@@ -1,2 +1,2 @@
-322004bfae89b0e3dda48d3952d60346335f6cc5 231
-322004bfae89b0e3dda48d3952d60346335f6cc5 default
+6b9c80bc1e2a2de0eee7facbad62eafd83ced0fd 266
+6b9c80bc1e2a2de0eee7facbad62eafd83ced0fd default
diff --git a/jaxws/.hg/dirstate b/jaxws/.hg/dirstate
index ab1b9d2..25bb203 100644
Binary files a/jaxws/.hg/dirstate and b/jaxws/.hg/dirstate differ
diff --git a/jaxws/.hg/store/00changelog.d b/jaxws/.hg/store/00changelog.d
index 52a9ce7..2b7029b 100644
Binary files a/jaxws/.hg/store/00changelog.d and b/jaxws/.hg/store/00changelog.d differ
diff --git a/jaxws/.hg/store/00changelog.i b/jaxws/.hg/store/00changelog.i
index d3c41b8..fd0495a 100644
Binary files a/jaxws/.hg/store/00changelog.i and b/jaxws/.hg/store/00changelog.i differ
diff --git a/jaxws/.hg/store/00manifest.d b/jaxws/.hg/store/00manifest.d
index aa08dcc..f9a4d66 100644
Binary files a/jaxws/.hg/store/00manifest.d and b/jaxws/.hg/store/00manifest.d differ
diff --git a/jaxws/.hg/store/00manifest.i b/jaxws/.hg/store/00manifest.i
index 292f7b1..d8fac2a 100644
Binary files a/jaxws/.hg/store/00manifest.i and b/jaxws/.hg/store/00manifest.i differ
diff --git a/jaxws/.hg/store/data/~2ehgtags.i b/jaxws/.hg/store/data/~2ehgtags.i
index 6d3c4da..bd632f8 100644
Binary files a/jaxws/.hg/store/data/~2ehgtags.i and b/jaxws/.hg/store/data/~2ehgtags.i differ
diff --git a/jaxws/.hg/store/undo b/jaxws/.hg/store/undo
index f8430b1..aa76847 100644
Binary files a/jaxws/.hg/store/undo and b/jaxws/.hg/store/undo differ
diff --git a/jdk/.hg/undo.bookmarks b/jaxws/.hg/undo.bookmarks
similarity index 100%
copy from jdk/.hg/undo.bookmarks
copy to jaxws/.hg/undo.bookmarks
diff --git a/jaxws/.hg/undo.desc b/jaxws/.hg/undo.desc
index a41afc9..6c4d873 100644
--- a/jaxws/.hg/undo.desc
+++ b/jaxws/.hg/undo.desc
@@ -1,3 +1,3 @@
-255
+258
 pull
 http://hg.openjdk.java.net/jigsaw/jigsaw/jaxws
diff --git a/jaxws/.hg/undo.dirstate b/jaxws/.hg/undo.dirstate
index 5ad3c95..ab1b9d2 100644
Binary files a/jaxws/.hg/undo.dirstate and b/jaxws/.hg/undo.dirstate differ
diff --git a/jaxws/.hgtags b/jaxws/.hgtags
index 4734c0b..59f6a2e 100644
--- a/jaxws/.hgtags
+++ b/jaxws/.hgtags
@@ -129,3 +129,10 @@ c025078c8362076503bb83b8e4da14ba7b347940 jdk7-b139
 05469dd4c3662c454f8a019e492543add60795cc jdk7-b146
 d13b1f877bb5ed8dceb2f7ec10365d1db5f70b2d jdk7-b147
 64df57a1edeca74388bd62f0a87d056db981fbdf jdk8-b01
+1034127ed402e9d0f1ed1477238ef594e9cc8da6 jdk8-b02
+7dcb0307508f408507d878cd7c2048c102b15158 jdk8-b03
+3f6f08163331ed75b30a6de1246670ce655645c8 jdk8-b04
+7d5d91fddbceb1fc3ae7ff409e732ae4a0391b34 jdk8-b05
+acffff22a9465005e8eb206224fae9f2ea4fd469 jdk8-b06
+134b0debf7b04fe6e317394b04b8e7a4a0181b1b jdk8-b07
+1c9d4f59acf8f71477473c170239b43b2c9dee24 jdk8-b08
diff --git a/jdk/.hg/cache/branchheads b/jdk/.hg/cache/branchheads
index 69c9a0e..e3d0e84 100644
--- a/jdk/.hg/cache/branchheads
+++ b/jdk/.hg/cache/branchheads
@@ -1,2 +1,2 @@
-90808f8d462f713f13b1907bf8669683ca6b7be7 4707
-90808f8d462f713f13b1907bf8669683ca6b7be7 default
+cf4fbc24740e5edfad8a26f0bfc42aab51a8a2ba 4866
+cf4fbc24740e5edfad8a26f0bfc42aab51a8a2ba default
diff --git a/jdk/.hg/dirstate b/jdk/.hg/dirstate
index e7ab5d6..801a8a7 100644
Binary files a/jdk/.hg/dirstate and b/jdk/.hg/dirstate differ
diff --git a/jdk/.hg/store/00changelog.d b/jdk/.hg/store/00changelog.d
index 0d3ae3a..7b9585a 100644
Binary files a/jdk/.hg/store/00changelog.d and b/jdk/.hg/store/00changelog.d differ
diff --git a/jdk/.hg/store/00changelog.i b/jdk/.hg/store/00changelog.i
index c62c38e..bccfc33 100644
Binary files a/jdk/.hg/store/00changelog.i and b/jdk/.hg/store/00changelog.i differ
diff --git a/jdk/.hg/store/00manifest.d b/jdk/.hg/store/00manifest.d
index edb48ea..632a3b6 100644
Binary files a/jdk/.hg/store/00manifest.d and b/jdk/.hg/store/00manifest.d differ
diff --git a/jdk/.hg/store/00manifest.i b/jdk/.hg/store/00manifest.i
index 3475874..4352e7a 100644
Binary files a/jdk/.hg/store/00manifest.i and b/jdk/.hg/store/00manifest.i differ
diff --git a/jdk/.hg/store/data/make/_makefile.i b/jdk/.hg/store/data/make/_makefile.i
index 217b199..0579062 100644
Binary files a/jdk/.hg/store/data/make/_makefile.i and b/jdk/.hg/store/data/make/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/com/oracle/_makefile.i b/jdk/.hg/store/data/make/com/oracle/_makefile.i
index aa41e4c..586a5e2 100644
Binary files a/jdk/.hg/store/data/make/com/oracle/_makefile.i and b/jdk/.hg/store/data/make/com/oracle/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/com/sun/crypto/provider/_makefile.i b/jdk/.hg/store/data/make/com/sun/crypto/provider/_makefile.i
index 2863c59..1df1c53 100644
Binary files a/jdk/.hg/store/data/make/com/sun/crypto/provider/_makefile.i and b/jdk/.hg/store/data/make/com/sun/crypto/provider/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/com/sun/jndi/_makefile.i b/jdk/.hg/store/data/make/com/sun/jndi/_makefile.i
index 4a1d4ff..a1e3a93 100644
Binary files a/jdk/.hg/store/data/make/com/sun/jndi/_makefile.i and b/jdk/.hg/store/data/make/com/sun/jndi/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/com/sun/net/httpserver/_makefile.i b/jdk/.hg/store/data/make/com/sun/net/httpserver/_makefile.i
index 60b2fac..1b7b6c0 100644
Binary files a/jdk/.hg/store/data/make/com/sun/net/httpserver/_makefile.i and b/jdk/.hg/store/data/make/com/sun/net/httpserver/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/com/sun/net/ssl/_makefile.i b/jdk/.hg/store/data/make/com/sun/net/ssl/_makefile.i
index 92c1547..8c93515 100644
Binary files a/jdk/.hg/store/data/make/com/sun/net/ssl/_makefile.i and b/jdk/.hg/store/data/make/com/sun/net/ssl/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/com/sun/security/_makefile.i b/jdk/.hg/store/data/make/com/sun/security/_makefile.i
index 6b48a4b..f574327 100644
Binary files a/jdk/.hg/store/data/make/com/sun/security/_makefile.i and b/jdk/.hg/store/data/make/com/sun/security/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/com/sun/servicetag/_makefile.i b/jdk/.hg/store/data/make/com/sun/servicetag/_makefile.i
index 335b665..b560aa9 100644
Binary files a/jdk/.hg/store/data/make/com/sun/servicetag/_makefile.i and b/jdk/.hg/store/data/make/com/sun/servicetag/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/common/_defs-linux.gmk.i b/jdk/.hg/store/data/make/common/_defs-linux.gmk.i
index a2094c9..2474700 100644
Binary files a/jdk/.hg/store/data/make/common/_defs-linux.gmk.i and b/jdk/.hg/store/data/make/common/_defs-linux.gmk.i differ
diff --git a/jdk/.hg/store/data/make/common/_defs-modules.gmk.i b/jdk/.hg/store/data/make/common/_defs-modules.gmk.i
index 0866d3c..414ce1a 100644
Binary files a/jdk/.hg/store/data/make/common/_defs-modules.gmk.i and b/jdk/.hg/store/data/make/common/_defs-modules.gmk.i differ
diff --git a/jdk/.hg/store/data/make/common/_defs-solaris.gmk.i b/jdk/.hg/store/data/make/common/_defs-solaris.gmk.i
index e3a5364..f739cce 100644
Binary files a/jdk/.hg/store/data/make/common/_defs-solaris.gmk.i and b/jdk/.hg/store/data/make/common/_defs-solaris.gmk.i differ
diff --git a/jdk/.hg/store/data/make/common/_defs-windows.gmk.i b/jdk/.hg/store/data/make/common/_defs-windows.gmk.i
index 1609e84..3650ebe 100644
Binary files a/jdk/.hg/store/data/make/common/_defs-windows.gmk.i and b/jdk/.hg/store/data/make/common/_defs-windows.gmk.i differ
diff --git a/jdk/.hg/store/data/make/common/_defs.gmk.i b/jdk/.hg/store/data/make/common/_defs.gmk.i
index 7a3a44d..0d56e54 100644
Binary files a/jdk/.hg/store/data/make/common/_defs.gmk.i and b/jdk/.hg/store/data/make/common/_defs.gmk.i differ
diff --git a/jdk/.hg/store/data/make/common/_modules.gmk.i b/jdk/.hg/store/data/make/common/_modules.gmk.i
index 301bdaf..630f6bb 100644
Binary files a/jdk/.hg/store/data/make/common/_modules.gmk.i and b/jdk/.hg/store/data/make/common/_modules.gmk.i differ
diff --git a/jdk/.hg/store/data/make/common/_release-embedded.gmk.i b/jdk/.hg/store/data/make/common/_release-embedded.gmk.i
index 9c79d4a..70f8004 100644
Binary files a/jdk/.hg/store/data/make/common/_release-embedded.gmk.i and b/jdk/.hg/store/data/make/common/_release-embedded.gmk.i differ
diff --git a/jdk/.hg/store/data/make/common/_release.gmk.i b/jdk/.hg/store/data/make/common/_release.gmk.i
index 37984d3..39b6640 100644
Binary files a/jdk/.hg/store/data/make/common/_release.gmk.i and b/jdk/.hg/store/data/make/common/_release.gmk.i differ
diff --git a/jdk/.hg/store/data/make/common/internal/_defs-langtools.gmk.i b/jdk/.hg/store/data/make/common/internal/_defs-langtools.gmk.i
index a06c026..85a5791 100644
Binary files a/jdk/.hg/store/data/make/common/internal/_defs-langtools.gmk.i and b/jdk/.hg/store/data/make/common/internal/_defs-langtools.gmk.i differ
diff --git a/jdk/.hg/store/data/make/common/shared/_defs-linux.gmk.i b/jdk/.hg/store/data/make/common/shared/_defs-linux.gmk.i
index 977713b..22519a7 100644
Binary files a/jdk/.hg/store/data/make/common/shared/_defs-linux.gmk.i and b/jdk/.hg/store/data/make/common/shared/_defs-linux.gmk.i differ
diff --git a/jdk/.hg/store/data/make/common/shared/_defs-solaris.gmk.i b/jdk/.hg/store/data/make/common/shared/_defs-solaris.gmk.i
index 1120995..2ce14a3 100644
Binary files a/jdk/.hg/store/data/make/common/shared/_defs-solaris.gmk.i and b/jdk/.hg/store/data/make/common/shared/_defs-solaris.gmk.i differ
diff --git a/jdk/.hg/store/data/make/common/shared/_defs-windows.gmk.i b/jdk/.hg/store/data/make/common/shared/_defs-windows.gmk.i
index e1cc149..d6cf9dc 100644
Binary files a/jdk/.hg/store/data/make/common/shared/_defs-windows.gmk.i and b/jdk/.hg/store/data/make/common/shared/_defs-windows.gmk.i differ
diff --git a/jdk/.hg/store/data/make/common/shared/_platform.gmk.i b/jdk/.hg/store/data/make/common/shared/_platform.gmk.i
index 91611ae..facfd31 100644
Binary files a/jdk/.hg/store/data/make/common/shared/_platform.gmk.i and b/jdk/.hg/store/data/make/common/shared/_platform.gmk.i differ
diff --git a/jdk/.hg/store/data/make/java/java/_f_i_l_e_s__java.gmk.i b/jdk/.hg/store/data/make/java/java/_f_i_l_e_s__java.gmk.i
index f275c95..ea09fd9 100644
Binary files a/jdk/.hg/store/data/make/java/java/_f_i_l_e_s__java.gmk.i and b/jdk/.hg/store/data/make/java/java/_f_i_l_e_s__java.gmk.i differ
diff --git a/jdk/.hg/store/data/make/java/java/_makefile.i b/jdk/.hg/store/data/make/java/java/_makefile.i
index ff913cd..8f332ce 100644
Binary files a/jdk/.hg/store/data/make/java/java/_makefile.i and b/jdk/.hg/store/data/make/java/java/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/java/net/_makefile.i b/jdk/.hg/store/data/make/java/net/_makefile.i
index ccdc997..445cd75 100644
Binary files a/jdk/.hg/store/data/make/java/net/_makefile.i and b/jdk/.hg/store/data/make/java/net/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/java/nio/_makefile.i b/jdk/.hg/store/data/make/java/nio/_makefile.i
index 49e69b3..1e78eb3 100644
Binary files a/jdk/.hg/store/data/make/java/nio/_makefile.i and b/jdk/.hg/store/data/make/java/nio/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/java/redist/_makefile.i b/jdk/.hg/store/data/make/java/redist/_makefile.i
index c0da156..acc487f 100644
Binary files a/jdk/.hg/store/data/make/java/redist/_makefile.i and b/jdk/.hg/store/data/make/java/redist/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/java/redist/sajdi/_makefile.i b/jdk/.hg/store/data/make/java/redist/sajdi/_makefile.i
index 9b244b0..d656487 100644
Binary files a/jdk/.hg/store/data/make/java/redist/sajdi/_makefile.i and b/jdk/.hg/store/data/make/java/redist/sajdi/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/java/security/_makefile.i b/jdk/.hg/store/data/make/java/security/_makefile.i
index bc9da99..322ad3d 100644
Binary files a/jdk/.hg/store/data/make/java/security/_makefile.i and b/jdk/.hg/store/data/make/java/security/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/java/sun__nio/_f_i_l_e_s__java.gmk.i b/jdk/.hg/store/data/make/java/sun__nio/_f_i_l_e_s__java.gmk.i
index e4470e3..138a1a1 100644
Binary files a/jdk/.hg/store/data/make/java/sun__nio/_f_i_l_e_s__java.gmk.i and b/jdk/.hg/store/data/make/java/sun__nio/_f_i_l_e_s__java.gmk.i differ
diff --git a/jdk/.hg/store/data/make/java/sun__nio/_makefile.i b/jdk/.hg/store/data/make/java/sun__nio/_makefile.i
index ea9addf..fbed5b9 100644
Binary files a/jdk/.hg/store/data/make/java/sun__nio/_makefile.i and b/jdk/.hg/store/data/make/java/sun__nio/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/java/util/_f_i_l_e_s__properties.gmk.i b/jdk/.hg/store/data/make/java/util/_f_i_l_e_s__properties.gmk.i
index 53bb38e..1a38ec2 100644
Binary files a/jdk/.hg/store/data/make/java/util/_f_i_l_e_s__properties.gmk.i and b/jdk/.hg/store/data/make/java/util/_f_i_l_e_s__properties.gmk.i differ
diff --git a/jdk/.hg/store/data/make/javax/_makefile.i b/jdk/.hg/store/data/make/javax/_makefile.i
index 421c642..f6cfcae 100644
Binary files a/jdk/.hg/store/data/make/javax/_makefile.i and b/jdk/.hg/store/data/make/javax/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/javax/crypto/_makefile.i b/jdk/.hg/store/data/make/javax/crypto/_makefile.i
index 0c740a1..3020dbf 100644
Binary files a/jdk/.hg/store/data/make/javax/crypto/_makefile.i and b/jdk/.hg/store/data/make/javax/crypto/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/javax/others/_makefile.i b/jdk/.hg/store/data/make/javax/others/_makefile.i
index bea6838..9373cae 100644
Binary files a/jdk/.hg/store/data/make/javax/others/_makefile.i and b/jdk/.hg/store/data/make/javax/others/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/jprt.gmk.i b/jdk/.hg/store/data/make/jprt.gmk.i
index 99eb235..3e27019 100644
Binary files a/jdk/.hg/store/data/make/jprt.gmk.i and b/jdk/.hg/store/data/make/jprt.gmk.i differ
diff --git a/jdk/.hg/store/data/make/jprt.properties.i b/jdk/.hg/store/data/make/jprt.properties.i
index ec28199..8f57110 100644
Binary files a/jdk/.hg/store/data/make/jprt.properties.i and b/jdk/.hg/store/data/make/jprt.properties.i differ
diff --git a/jdk/.hg/store/data/make/mkdemo/_makefile.i b/jdk/.hg/store/data/make/mkdemo/_makefile.i
index 510c0e6..bca2826 100644
Binary files a/jdk/.hg/store/data/make/mkdemo/_makefile.i and b/jdk/.hg/store/data/make/mkdemo/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/mksample/_makefile.i b/jdk/.hg/store/data/make/mksample/_makefile.i
index 5b8412e..d461a18 100644
Binary files a/jdk/.hg/store/data/make/mksample/_makefile.i and b/jdk/.hg/store/data/make/mksample/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/modules/modules.config.i b/jdk/.hg/store/data/make/modules/modules.config.i
index 2087795..d5901dd 100644
Binary files a/jdk/.hg/store/data/make/modules/modules.config.i and b/jdk/.hg/store/data/make/modules/modules.config.i differ
diff --git a/jdk/.hg/store/data/make/modules/modules.group.i b/jdk/.hg/store/data/make/modules/modules.group.i
index fc22baf..61f0689 100644
Binary files a/jdk/.hg/store/data/make/modules/modules.group.i and b/jdk/.hg/store/data/make/modules/modules.group.i differ
diff --git a/jdk/.hg/store/data/make/netbeans/_r_e_a_d_m_e.i b/jdk/.hg/store/data/make/netbeans/_r_e_a_d_m_e.i
index 6a26d30..9a67a9e 100644
Binary files a/jdk/.hg/store/data/make/netbeans/_r_e_a_d_m_e.i and b/jdk/.hg/store/data/make/netbeans/_r_e_a_d_m_e.i differ
diff --git a/jdk/.hg/store/data/make/netbeans/common/closed-share-view.ent.i b/jdk/.hg/store/data/make/netbeans/common/closed-share-view.ent.i
index 7353621..22bb0dc 100644
Binary files a/jdk/.hg/store/data/make/netbeans/common/closed-share-view.ent.i and b/jdk/.hg/store/data/make/netbeans/common/closed-share-view.ent.i differ
diff --git a/jdk/.hg/store/data/make/netbeans/common/java-data-native.ent.i b/jdk/.hg/store/data/make/netbeans/common/java-data-native.ent.i
index 9beb59c..0abdc7c 100644
Binary files a/jdk/.hg/store/data/make/netbeans/common/java-data-native.ent.i and b/jdk/.hg/store/data/make/netbeans/common/java-data-native.ent.i differ
diff --git a/jdk/.hg/store/data/make/netbeans/common/java-data-no-native.ent.i b/jdk/.hg/store/data/make/netbeans/common/java-data-no-native.ent.i
index b9d87fd..ff07098 100644
Binary files a/jdk/.hg/store/data/make/netbeans/common/java-data-no-native.ent.i and b/jdk/.hg/store/data/make/netbeans/common/java-data-no-native.ent.i differ
diff --git a/jdk/.hg/store/data/make/netbeans/common/jtreg-view.ent.i b/jdk/.hg/store/data/make/netbeans/common/jtreg-view.ent.i
index 2b13114..1a17124 100644
Binary files a/jdk/.hg/store/data/make/netbeans/common/jtreg-view.ent.i and b/jdk/.hg/store/data/make/netbeans/common/jtreg-view.ent.i differ
diff --git a/jdk/.hg/store/data/make/netbeans/common/sample-view.ent.i b/jdk/.hg/store/data/make/netbeans/common/sample-view.ent.i
index 12c57cf..7a18f5c 100644
Binary files a/jdk/.hg/store/data/make/netbeans/common/sample-view.ent.i and b/jdk/.hg/store/data/make/netbeans/common/sample-view.ent.i differ
diff --git a/jdk/.hg/store/data/make/netbeans/common/share-view.ent.i b/jdk/.hg/store/data/make/netbeans/common/share-view.ent.i
index 40a923e..44b12d7 100644
Binary files a/jdk/.hg/store/data/make/netbeans/common/share-view.ent.i and b/jdk/.hg/store/data/make/netbeans/common/share-view.ent.i differ
diff --git a/jdk/.hg/store/data/make/netbeans/common/unix-view.ent.i b/jdk/.hg/store/data/make/netbeans/common/unix-view.ent.i
index 10b9e3d..57cb8e2 100644
Binary files a/jdk/.hg/store/data/make/netbeans/common/unix-view.ent.i and b/jdk/.hg/store/data/make/netbeans/common/unix-view.ent.i differ
diff --git a/jdk/.hg/store/data/make/netbeans/common/windows-view.ent.i b/jdk/.hg/store/data/make/netbeans/common/windows-view.ent.i
index 879f8bd..e5dab9f 100644
Binary files a/jdk/.hg/store/data/make/netbeans/common/windows-view.ent.i and b/jdk/.hg/store/data/make/netbeans/common/windows-view.ent.i differ
diff --git a/jdk/.hg/store/data/make/netbeans/j2se/nbproject/project.xml.i b/jdk/.hg/store/data/make/netbeans/j2se/nbproject/project.xml.i
index 51657a3..3d15059 100644
Binary files a/jdk/.hg/store/data/make/netbeans/j2se/nbproject/project.xml.i and b/jdk/.hg/store/data/make/netbeans/j2se/nbproject/project.xml.i differ
diff --git a/jdk/.hg/store/data/make/sun/_makefile.i b/jdk/.hg/store/data/make/sun/_makefile.i
index cee8f6d..4421e31 100644
Binary files a/jdk/.hg/store/data/make/sun/_makefile.i and b/jdk/.hg/store/data/make/sun/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/sun/javazic/tzdata/_v_e_r_s_i_o_n.i b/jdk/.hg/store/data/make/sun/javazic/tzdata/_v_e_r_s_i_o_n.i
index f7dd2bc..2e732fb 100644
Binary files a/jdk/.hg/store/data/make/sun/javazic/tzdata/_v_e_r_s_i_o_n.i and b/jdk/.hg/store/data/make/sun/javazic/tzdata/_v_e_r_s_i_o_n.i differ
diff --git a/jdk/.hg/store/data/make/sun/javazic/tzdata/africa.i b/jdk/.hg/store/data/make/sun/javazic/tzdata/africa.i
index 4edb299..dd5e064 100644
Binary files a/jdk/.hg/store/data/make/sun/javazic/tzdata/africa.i and b/jdk/.hg/store/data/make/sun/javazic/tzdata/africa.i differ
diff --git a/jdk/.hg/store/data/make/sun/javazic/tzdata/antarctica.i b/jdk/.hg/store/data/make/sun/javazic/tzdata/antarctica.i
index 06bba98..6bbb4a2 100644
Binary files a/jdk/.hg/store/data/make/sun/javazic/tzdata/antarctica.i and b/jdk/.hg/store/data/make/sun/javazic/tzdata/antarctica.i differ
diff --git a/jdk/.hg/store/data/make/sun/javazic/tzdata/asia.i b/jdk/.hg/store/data/make/sun/javazic/tzdata/asia.i
index 8a24110..947a027 100644
Binary files a/jdk/.hg/store/data/make/sun/javazic/tzdata/asia.i and b/jdk/.hg/store/data/make/sun/javazic/tzdata/asia.i differ
diff --git a/jdk/.hg/store/data/make/sun/javazic/tzdata/australasia.i b/jdk/.hg/store/data/make/sun/javazic/tzdata/australasia.i
index c6c1d7f..3c8adfd 100644
Binary files a/jdk/.hg/store/data/make/sun/javazic/tzdata/australasia.i and b/jdk/.hg/store/data/make/sun/javazic/tzdata/australasia.i differ
diff --git a/jdk/.hg/store/data/make/sun/javazic/tzdata/europe.i b/jdk/.hg/store/data/make/sun/javazic/tzdata/europe.i
index 44930cf..ac221f8 100644
Binary files a/jdk/.hg/store/data/make/sun/javazic/tzdata/europe.i and b/jdk/.hg/store/data/make/sun/javazic/tzdata/europe.i differ
diff --git a/jdk/.hg/store/data/make/sun/javazic/tzdata/iso3166.tab.i b/jdk/.hg/store/data/make/sun/javazic/tzdata/iso3166.tab.i
index db435bf..5b7206b 100644
Binary files a/jdk/.hg/store/data/make/sun/javazic/tzdata/iso3166.tab.i and b/jdk/.hg/store/data/make/sun/javazic/tzdata/iso3166.tab.i differ
diff --git a/jdk/.hg/store/data/make/sun/javazic/tzdata/northamerica.i b/jdk/.hg/store/data/make/sun/javazic/tzdata/northamerica.i
index e8418d5..eb63bed 100644
Binary files a/jdk/.hg/store/data/make/sun/javazic/tzdata/northamerica.i and b/jdk/.hg/store/data/make/sun/javazic/tzdata/northamerica.i differ
diff --git a/jdk/.hg/store/data/make/sun/javazic/tzdata/southamerica.i b/jdk/.hg/store/data/make/sun/javazic/tzdata/southamerica.i
index a9b13e7..5ac5a69 100644
Binary files a/jdk/.hg/store/data/make/sun/javazic/tzdata/southamerica.i and b/jdk/.hg/store/data/make/sun/javazic/tzdata/southamerica.i differ
diff --git a/jdk/.hg/store/data/make/sun/javazic/tzdata/zone.tab.i b/jdk/.hg/store/data/make/sun/javazic/tzdata/zone.tab.i
index 0451b26..68e9b4e 100644
Binary files a/jdk/.hg/store/data/make/sun/javazic/tzdata/zone.tab.i and b/jdk/.hg/store/data/make/sun/javazic/tzdata/zone.tab.i differ
diff --git a/jdk/.hg/store/data/make/sun/net/_makefile.i b/jdk/.hg/store/data/make/sun/net/_makefile.i
index 4a115eb..a01cb50 100644
Binary files a/jdk/.hg/store/data/make/sun/net/_makefile.i and b/jdk/.hg/store/data/make/sun/net/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/sun/net/spi/_makefile.i b/jdk/.hg/store/data/make/sun/net/spi/_makefile.i
index 6af5fa4..e2fd6e3 100644
Binary files a/jdk/.hg/store/data/make/sun/net/spi/_makefile.i and b/jdk/.hg/store/data/make/sun/net/spi/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/sun/net/spi/nameservice/dns/_makefile.i b/jdk/.hg/store/data/make/sun/net/spi/nameservice/dns/_makefile.i
index dce3d45..a7572e9 100644
Binary files a/jdk/.hg/store/data/make/sun/net/spi/nameservice/dns/_makefile.i and b/jdk/.hg/store/data/make/sun/net/spi/nameservice/dns/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/sun/nio/cs/_f_i_l_e_s__java.gmk.i b/jdk/.hg/store/data/make/sun/nio/cs/_f_i_l_e_s__java.gmk.i
index 7286613..6b7b436 100644
Binary files a/jdk/.hg/store/data/make/sun/nio/cs/_f_i_l_e_s__java.gmk.i and b/jdk/.hg/store/data/make/sun/nio/cs/_f_i_l_e_s__java.gmk.i differ
diff --git a/jdk/.hg/store/data/make/sun/security/_makefile.i b/jdk/.hg/store/data/make/sun/security/_makefile.i
index 89e0bcd..1fff08b 100644
Binary files a/jdk/.hg/store/data/make/sun/security/_makefile.i and b/jdk/.hg/store/data/make/sun/security/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/sun/security/ec/_makefile.i b/jdk/.hg/store/data/make/sun/security/ec/_makefile.i
index 6b717ef..42dd880 100644
Binary files a/jdk/.hg/store/data/make/sun/security/ec/_makefile.i and b/jdk/.hg/store/data/make/sun/security/ec/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/sun/security/other/_makefile.i b/jdk/.hg/store/data/make/sun/security/other/_makefile.i
index 478b4f8..14a94d1 100644
Binary files a/jdk/.hg/store/data/make/sun/security/other/_makefile.i and b/jdk/.hg/store/data/make/sun/security/other/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/sun/security/pkcs11/_makefile.i b/jdk/.hg/store/data/make/sun/security/pkcs11/_makefile.i
index 379babe..867b87f 100644
Binary files a/jdk/.hg/store/data/make/sun/security/pkcs11/_makefile.i and b/jdk/.hg/store/data/make/sun/security/pkcs11/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/sun/util/_makefile.i b/jdk/.hg/store/data/make/sun/util/_makefile.i
new file mode 100644
index 0000000..9b675dd
Binary files /dev/null and b/jdk/.hg/store/data/make/sun/util/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/tools/_charset_mapping/_single_byte-_x.java.template.i b/jdk/.hg/store/data/make/tools/_charset_mapping/_single_byte-_x.java.template.i
index 375f6f3..8bfbcf2 100644
Binary files a/jdk/.hg/store/data/make/tools/_charset_mapping/_single_byte-_x.java.template.i and b/jdk/.hg/store/data/make/tools/_charset_mapping/_single_byte-_x.java.template.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_annotated_dependency.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_annotated_dependency.java.i
index d944fc0..0920fd5 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_annotated_dependency.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_annotated_dependency.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_annotation_parser.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_annotation_parser.java.i
index 955ae74..c40a2be 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_annotation_parser.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_annotation_parser.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_boot_analyzer.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_boot_analyzer.java.i
index 35d393a..b012dbc 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_boot_analyzer.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_boot_analyzer.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_analyzer.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_analyzer.java.i
index c336e2c..d9c3d55 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_analyzer.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_analyzer.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_file_parser.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_file_parser.java.i
index 1a3ba18..b1480ee 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_file_parser.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_file_parser.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_list_writer.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_list_writer.java.i
index 0bb5e40..a3f395a 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_list_writer.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_list_writer.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_path.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_path.java.i
index 692f770..ef7631a 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_path.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_class_path.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_code_attribute_parser.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_code_attribute_parser.java.i
index 100c2ed..a08ca11 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_code_attribute_parser.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_code_attribute_parser.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_constant_pool_analyzer.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_constant_pool_analyzer.java.i
index 1cbb844..b99091c 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_constant_pool_analyzer.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_constant_pool_analyzer.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_constant_pool_parser.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_constant_pool_parser.java.i
index 7c6e129..ef821be 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_constant_pool_parser.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_constant_pool_parser.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_dependency_config.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_dependency_config.java.i
index 315b573..bc69404 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_dependency_config.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_dependency_config.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_files.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_files.java.i
index c569e1c..ce6856b 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_files.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_files.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_klass.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_klass.java.i
index 2587956..f0dd83d 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_klass.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_klass.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_modularizer.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_modularizer.java.i
index 6401dd6..a7d4ca3 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_modularizer.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_modularizer.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module.java.i
index 588ace9..03f9b92 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module_builder.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module_builder.java.i
index e61ae97..a53746d 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module_builder.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module_builder.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module_config.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module_config.java.i
index aed6f4c..2c36918 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module_config.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module_config.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module_info.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module_info.java.i
index 284b015..dcc50df 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module_info.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_module_info.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_package_info.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_package_info.java.i
index 2a1e031..5cccc79 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_package_info.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_package_info.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_platform_module_builder.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_platform_module_builder.java.i
index 58d6d4a..dbb156a 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_platform_module_builder.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_platform_module_builder.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_resolution_info.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_resolution_info.java.i
index c6ecc85..2af62d5 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_resolution_info.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_resolution_info.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_resource_file.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_resource_file.java.i
index adffea8..0be0d41 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_resource_file.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_resource_file.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_trace.java.i b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_trace.java.i
index 11186d9..59c43a9 100644
Binary files a/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_trace.java.i and b/jdk/.hg/store/data/make/tools/classanalyzer/src/com/sun/classanalyzer/_trace.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/reorder/_makefile.i b/jdk/.hg/store/data/make/tools/reorder/_makefile.i
index 4fd9146..5b718cf 100644
Binary files a/jdk/.hg/store/data/make/tools/reorder/_makefile.i and b/jdk/.hg/store/data/make/tools/reorder/_makefile.i differ
diff --git a/jdk/.hg/store/data/make/tools/src/build/tools/generatecurrencydata/_generate_currency_data.java.i b/jdk/.hg/store/data/make/tools/src/build/tools/generatecurrencydata/_generate_currency_data.java.i
index 208b95f..055a23d 100644
Binary files a/jdk/.hg/store/data/make/tools/src/build/tools/generatecurrencydata/_generate_currency_data.java.i and b/jdk/.hg/store/data/make/tools/src/build/tools/generatecurrencydata/_generate_currency_data.java.i differ
diff --git a/jdk/.hg/store/data/make/tools/src/build/tools/javazic/_mappings.java.i b/jdk/.hg/store/data/make/tools/src/build/tools/javazic/_mappings.java.i
index 9a27894..5064094 100644
Binary files a/jdk/.hg/store/data/make/tools/src/build/tools/javazic/_mappings.java.i and b/jdk/.hg/store/data/make/tools/src/build/tools/javazic/_mappings.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_a_e_s_crypt.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_a_e_s_crypt.java.i
index 59aaa6d..385a799 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_a_e_s_crypt.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_a_e_s_crypt.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_a_e_s_parameters.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_a_e_s_parameters.java.i
index e2a83f1..4314d38 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_a_e_s_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_a_e_s_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_block_cipher_params_core.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_block_cipher_params_core.java.i
index 0530ac6..0cfa3bd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_block_cipher_params_core.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_block_cipher_params_core.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_blowfish_parameters.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_blowfish_parameters.java.i
index c943105..3937ec3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_blowfish_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_blowfish_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_cipher_block_chaining.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_cipher_block_chaining.java.i
index 49e8fa1..84664c5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_cipher_block_chaining.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_cipher_block_chaining.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_cipher_core.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_cipher_core.java.i
index d899bef..0d0beac 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_cipher_core.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_cipher_core.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_crypt.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_crypt.java.i
index 41c04b2..96a5e7b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_crypt.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_crypt.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_key.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_key.java.i
index 13758a1..9b36ea6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_key.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_key.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_key_factory.java.i
index 0f20469..c1b3e63 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_parameters.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_parameters.java.i
index d49aa27..3d6b6f1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_s_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_key.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_key.java.i
index ca88396..067457a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_key.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_key.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_key_factory.java.i
index 7a0d282..d4fdf74 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_parameters.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_parameters.java.i
index 933e2f4..07bf5c9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_wrap_cipher.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_wrap_cipher.java.i
index b629380..04a4ed1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_wrap_cipher.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_e_sede_wrap_cipher.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_key_factory.java.i
index 5e0b408..04db644 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_parameter_generator.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_parameter_generator.java.i
index 59c52c8..3a06bca 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_parameter_generator.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_parameter_generator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_parameters.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_parameters.java.i
index f779a62..dbb5564 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_private_key.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_private_key.java.i
index e570abd..5523003 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_private_key.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_private_key.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_public_key.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_public_key.java.i
index e7920aa..3dd21aa 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_public_key.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_d_h_public_key.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_encrypted_private_key_info.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_encrypted_private_key_info.java.i
index 9c35f93..afa9328 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_encrypted_private_key_info.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_encrypted_private_key_info.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_hmac_core.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_hmac_core.java.i
index 91ab879..83bcaca 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_hmac_core.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_hmac_core.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_jce_key_store.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_jce_key_store.java.i
index 4d6806a..ec61d7f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_jce_key_store.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_jce_key_store.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_key_protector.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_key_protector.java.i
index 679d27a..08a77d2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_key_protector.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_key_protector.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_o_a_e_p_parameters.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_o_a_e_p_parameters.java.i
index a0ec432..caceacb 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_o_a_e_p_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_o_a_e_p_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_cipher_core.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_cipher_core.java.i
index 0c220d3..10b5439 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_cipher_core.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_cipher_core.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_key.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_key.java.i
index 681d4e0..476e9fd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_key.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_key.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_key_factory.java.i
index bbd7fd7..b9d1428 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_parameters.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_parameters.java.i
index 7ed2c7d..4429b60 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_e_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_k_d_f2_hmac_s_h_a1_factory.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_k_d_f2_hmac_s_h_a1_factory.java.i
index 3239275..60a9184 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_k_d_f2_hmac_s_h_a1_factory.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_k_d_f2_hmac_s_h_a1_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_k_d_f2_key_impl.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_k_d_f2_key_impl.java.i
index 13a3302..bfbb0a9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_k_d_f2_key_impl.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_b_k_d_f2_key_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_c_b_c.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_c_b_c.java.i
index d9cd8fb..a1589f0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_c_b_c.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_p_c_b_c.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_r_c2_cipher.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_r_c2_cipher.java.i
index 17be31b..6273c59 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_r_c2_cipher.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_r_c2_cipher.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_r_c2_parameters.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_r_c2_parameters.java.i
index 2048a00..13f5910 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_r_c2_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_r_c2_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_r_s_a_cipher.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_r_s_a_cipher.java.i
index 9d8368a..cc570ba 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_r_s_a_cipher.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_r_s_a_cipher.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_sun_j_c_e.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_sun_j_c_e.java.i
index 971cecb..71ed404 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_sun_j_c_e.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_sun_j_c_e.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_tls_key_material_generator.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_tls_key_material_generator.java.i
index 3b26718..eed14c5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_tls_key_material_generator.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_tls_key_material_generator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_tls_master_secret_generator.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_tls_master_secret_generator.java.i
index 4f603ac..98a963c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_tls_master_secret_generator.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/crypto/provider/_tls_master_secret_generator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/imageio/plugins/jpeg/_j_f_i_f_marker_segment.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/imageio/plugins/jpeg/_j_f_i_f_marker_segment.java.i
index 5cba078..adb4293 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/imageio/plugins/jpeg/_j_f_i_f_marker_segment.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/imageio/plugins/jpeg/_j_f_i_f_marker_segment.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/_motif_file_chooser_u_i.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/_motif_file_chooser_u_i.java.i
index 9047f0d..c8001de 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/_motif_file_chooser_u_i.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/_motif_file_chooser_u_i.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/_motif_look_and_feel.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/_motif_look_and_feel.java.i
index 2d04893..be6e3b5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/_motif_look_and_feel.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/_motif_look_and_feel.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif.properties.i
index 0a1c3d6..bacf905 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__de.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__de.properties.i
index 6be7bb5..92a7ca1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__de.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__de.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__es.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__es.properties.i
index af4f91e..07feea0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__es.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__es.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__fr.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__fr.properties.i
index d3945ad..c653f24 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__fr.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__fr.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__it.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__it.properties.i
index ac429ec..6cd54ec 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__it.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__it.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__ja.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__ja.properties.i
index 63e8370..f964ba5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__ja.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__ja.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__ko.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__ko.properties.i
index 17d0686..143f3ef 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__ko.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__ko.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__pt___b_r.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__pt___b_r.properties.i
index 69996fc..6152595 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__pt___b_r.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__pt___b_r.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__sv.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__sv.properties.i
index 907c708..0fc1557 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__sv.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__sv.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__zh___c_n.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__zh___c_n.properties.i
index cf82d18..5fa3a92 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__zh___c_n.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__zh___c_n.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__zh___t_w.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__zh___t_w.properties.i
index ba63ce1..e46ead7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__zh___t_w.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif__zh___t_w.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/_windows_file_chooser_u_i.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/_windows_file_chooser_u_i.java.i
index 9a4be63..adeb14b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/_windows_file_chooser_u_i.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/_windows_file_chooser_u_i.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/_windows_look_and_feel.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/_windows_look_and_feel.java.i
index 6e32081..62f04d0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/_windows_look_and_feel.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/_windows_look_and_feel.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows.properties.i
index 083f34a..2117b49 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__de.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__de.properties.i
index 40a138b..bdbdd38 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__de.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__de.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__es.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__es.properties.i
index e51e02e..b3e3cb3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__es.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__es.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__fr.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__fr.properties.i
index 4d2e080..8173d7f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__fr.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__fr.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__it.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__it.properties.i
index c335904..8a407c2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__it.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__it.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__ja.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__ja.properties.i
index b68324f..371f1d9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__ja.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__ja.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__ko.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__ko.properties.i
index 9de10f8..f511fd9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__ko.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__ko.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__pt___b_r.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__pt___b_r.properties.i
index b244282..768b4e9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__pt___b_r.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__pt___b_r.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__sv.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__sv.properties.i
index abf2b2e..2567b11 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__sv.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__sv.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__zh___c_n.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__zh___c_n.properties.i
index a972205..5bc8a98 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__zh___c_n.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__zh___c_n.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__zh___t_w.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__zh___t_w.properties.i
index d2c86d1..c44e8b9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__zh___t_w.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows__zh___t_w.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_counter64.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_counter64.java.i
index 497e0a1..f51629e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_counter64.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_counter64.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_int.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_int.java.i
index 022b3d2..f2b971b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_int.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_int.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_null.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_null.java.i
index e034511..3127bc6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_null.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_null.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_string.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_string.java.i
index 2544767..776d795 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_string.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/_snmp_string.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/daemon/_snmp_request_handler.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/daemon/_snmp_request_handler.java.i
index 2f8f182..a0d3016 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/daemon/_snmp_request_handler.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jmx/snmp/daemon/_snmp_request_handler.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_c_n_binding_enumeration.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_c_n_binding_enumeration.java.i
index 50a51ce..d19267a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_c_n_binding_enumeration.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_c_n_binding_enumeration.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_c_n_ctx.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_c_n_ctx.java.i
index 22790aa..de7ef62 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_c_n_ctx.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_c_n_ctx.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_c_n_name_parser.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_c_n_name_parser.java.i
index 796f811..347e72b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_c_n_name_parser.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_c_n_name_parser.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_exception_mapper.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_exception_mapper.java.i
index bf700cc..bec2719 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_exception_mapper.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_exception_mapper.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_iiop_url.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_iiop_url.java.i
index 7577a9c..c03ed31 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_iiop_url.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/cosnaming/_iiop_url.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_client.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_client.java.i
index c43ba67..3856be5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_client.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_context.java.i
index 2559c8e..468e59f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_context_factory.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_context_factory.java.i
index 755c2c8..58c1d67 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_context_factory.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_context_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_name.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_name.java.i
index b9445cf..359ae12 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_name.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_dns_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_name_node.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_name_node.java.i
index 2dd53ec..814ba41 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_name_node.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_name_node.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_resolver.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_resolver.java.i
index 4925a4e..7ffef91 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_resolver.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_resolver.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_resource_records.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_resource_records.java.i
index 48c7e5c..6eded6a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_resource_records.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_resource_records.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_zone_node.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_zone_node.java.i
index 77a428a..a411257 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_zone_node.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/dns/_zone_node.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_abstract_ldap_naming_enumeration.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_abstract_ldap_naming_enumeration.java.i
new file mode 100644
index 0000000..e715f9b
Binary files /dev/null and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_abstract_ldap_naming_enumeration.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ber.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ber.java.i
index bbee4f8..cd1021b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ber.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ber.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_client_id.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_client_id.java.i
index f84f47b..605e008 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_client_id.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_client_id.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_connection.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_connection.java.i
index 2729c78..2c88e65 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_connection.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_connection.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_digest_client_id.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_digest_client_id.java.i
index 977059b..d45797b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_digest_client_id.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_digest_client_id.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_event_queue.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_event_queue.java.i
index e921c81..be8371e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_event_queue.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_event_queue.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_event_support.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_event_support.java.i
index e242375..7d61643 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_event_support.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_event_support.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_attribute.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_attribute.java.i
index b190a15..84b63d3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_attribute.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_attribute.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_binding_enumeration.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_binding_enumeration.java.i
index f6686ab..b552770 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_binding_enumeration.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_binding_enumeration.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_client.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_client.java.i
index fee0efa..0963b89 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_client.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_ctx.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_ctx.java.i
index 37dd038..687a1b3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_ctx.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_ctx.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_ctx_factory.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_ctx_factory.java.i
index c607315..07596e7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_ctx_factory.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_ctx_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_entry.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_entry.java.i
index e6de6fc..29b2592 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_entry.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_entry.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_name.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_name.java.i
index 630e63e..1a8df2d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_name.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_naming_enumeration.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_naming_enumeration.java.i
index 3ce0e14..939fac2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_naming_enumeration.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_naming_enumeration.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_pool_manager.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_pool_manager.java.i
index 0d37adc..45344ea 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_pool_manager.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_pool_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_referral_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_referral_context.java.i
index 577c5f2..e34350e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_referral_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_referral_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_referral_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_referral_exception.java.i
index 3fa1e3a..43212b2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_referral_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_referral_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_result.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_result.java.i
index cd0fabd..e488a8c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_result.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_result.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_schema_ctx.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_schema_ctx.java.i
index 262f7df..2c440ce 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_schema_ctx.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_schema_ctx.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_schema_parser.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_schema_parser.java.i
index 450ddc6..4886121 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_schema_parser.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_schema_parser.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_search_enumeration.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_search_enumeration.java.i
index 081ebe8..c1a89b7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_search_enumeration.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_ldap_search_enumeration.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_naming_event_notifier.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_naming_event_notifier.java.i
index cbc035e..7dd3301 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_naming_event_notifier.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_naming_event_notifier.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_notifier_args.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_notifier_args.java.i
index a204ddb..4d54891 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_notifier_args.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_notifier_args.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_obj.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_obj.java.i
index 76fa635..9dcde34 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_obj.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_obj.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_referral_enumeration.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_referral_enumeration.java.i
index a8db78d..90acdb6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_referral_enumeration.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_referral_enumeration.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_service_locator.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_service_locator.java.i
index 51c28fc..a86cb53 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_service_locator.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_service_locator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_simple_client_id.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_simple_client_id.java.i
index a8e077e..515ecbf 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_simple_client_id.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_simple_client_id.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_unsolicited_response_impl.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_unsolicited_response_impl.java.i
index 995ec22..7f8e222 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_unsolicited_response_impl.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_unsolicited_response_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_version_helper.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_version_helper.java.i
index 5e75112..b7a6a47 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_version_helper.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_version_helper.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_version_helper12.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_version_helper12.java.i
index b59430d..168fbf5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_version_helper12.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/_version_helper12.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/ext/_start_tls_response_impl.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/ext/_start_tls_response_impl.java.i
index 0482890..909ce5d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/ext/_start_tls_response_impl.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/ext/_start_tls_response_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_connections.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_connections.java.i
index 0c640a6..d3f69d9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_connections.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_connections.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_connections_weak_ref.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_connections_weak_ref.java.i
index b015058..7ff2096 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_connections_weak_ref.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_connections_weak_ref.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_pool.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_pool.java.i
index 198f415..4703fa4 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_pool.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_pool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_pool_cleaner.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_pool_cleaner.java.i
index 2e63bca..1a2b674 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_pool_cleaner.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/pool/_pool_cleaner.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/sasl/_default_callback_handler.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/sasl/_default_callback_handler.java.i
index 9cb78c6..3c6546a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/sasl/_default_callback_handler.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/sasl/_default_callback_handler.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/sasl/_ldap_sasl.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/sasl/_ldap_sasl.java.i
index 99509ea..a5207e5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/sasl/_ldap_sasl.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/ldap/sasl/_ldap_sasl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/rmi/registry/_registry_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/rmi/registry/_registry_context.java.i
index 5dc0c8c..16ad74f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/rmi/registry/_registry_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/rmi/registry/_registry_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/rmi/registry/_registry_context_factory.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/rmi/registry/_registry_context_factory.java.i
index 3127ea0..4b18fd0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/rmi/registry/_registry_context_factory.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/rmi/registry/_registry_context_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/corba/_corba_utils.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/corba/_corba_utils.java.i
index 65d45e5..b43c282 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/corba/_corba_utils.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/corba/_corba_utils.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_atomic_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_atomic_context.java.i
index 7e838e1..ce0d2a7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_atomic_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_atomic_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_atomic_dir_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_atomic_dir_context.java.i
index 1985239..2113994 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_atomic_dir_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_atomic_dir_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_component_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_component_context.java.i
index 64f0b6c..43378a8 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_component_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_component_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_component_dir_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_component_dir_context.java.i
index f188aec..fc88368 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_component_dir_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_component_dir_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_continuation.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_continuation.java.i
index eda9328..24364c9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_continuation.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_continuation.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_partial_composite_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_partial_composite_context.java.i
index 1db1643..f544bbc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_partial_composite_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_partial_composite_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_partial_composite_dir_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_partial_composite_dir_context.java.i
index e58e860..8439cfd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_partial_composite_dir_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/ctx/_partial_composite_dir_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_containment_filter.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_containment_filter.java.i
index 3415473..205848a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_containment_filter.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_containment_filter.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_context_enumerator.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_context_enumerator.java.i
index 026bedf..0f13a01 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_context_enumerator.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_context_enumerator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_dir_search.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_dir_search.java.i
index 0e25ab4..4a83e9a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_dir_search.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_dir_search.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_hier_mem_dir_ctx.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_hier_mem_dir_ctx.java.i
index 5729f51..c42a593 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_hier_mem_dir_ctx.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_hier_mem_dir_ctx.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_lazy_search_enumeration_impl.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_lazy_search_enumeration_impl.java.i
index 7834ccf..adfaf9b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_lazy_search_enumeration_impl.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_lazy_search_enumeration_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_search_filter.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_search_filter.java.i
index 4bb2496..4534c29 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_search_filter.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/dir/_search_filter.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/url/_generic_u_r_l_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/url/_generic_u_r_l_context.java.i
index fa37ceb..30c2f32 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/url/_generic_u_r_l_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/url/_generic_u_r_l_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/url/_generic_u_r_l_dir_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/url/_generic_u_r_l_dir_context.java.i
index 7f80aa9..23ae4ed 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/url/_generic_u_r_l_dir_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/toolkit/url/_generic_u_r_l_dir_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/dns/dns_u_r_l_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/dns/dns_u_r_l_context.java.i
index 4fc1b01..fdf47b6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/dns/dns_u_r_l_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/dns/dns_u_r_l_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/dns/dns_u_r_l_context_factory.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/dns/dns_u_r_l_context_factory.java.i
index f19bc0d..45a8abe 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/dns/dns_u_r_l_context_factory.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/dns/dns_u_r_l_context_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/iiop/iiop_u_r_l_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/iiop/iiop_u_r_l_context.java.i
index c5904a0..be25066 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/iiop/iiop_u_r_l_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/iiop/iiop_u_r_l_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/iiop/iiop_u_r_l_context_factory.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/iiop/iiop_u_r_l_context_factory.java.i
index 8712a90..992ac9b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/iiop/iiop_u_r_l_context_factory.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/iiop/iiop_u_r_l_context_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/ldap/ldap_u_r_l_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/ldap/ldap_u_r_l_context.java.i
index b041f9a..c137526 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/ldap/ldap_u_r_l_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/ldap/ldap_u_r_l_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/ldap/ldap_u_r_l_context_factory.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/ldap/ldap_u_r_l_context_factory.java.i
index f2d37bc..8672c1f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/ldap/ldap_u_r_l_context_factory.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/ldap/ldap_u_r_l_context_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/rmi/rmi_u_r_l_context.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/rmi/rmi_u_r_l_context.java.i
index 5efd689..447ddba 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/rmi/rmi_u_r_l_context.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/rmi/rmi_u_r_l_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/rmi/rmi_u_r_l_context_factory.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/rmi/rmi_u_r_l_context_factory.java.i
index 67b2188..7bf762d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/rmi/rmi_u_r_l_context_factory.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/jndi/url/rmi/rmi_u_r_l_context_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_factory_enumeration.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_factory_enumeration.java.i
index ffe2db6..0bf9f6b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_factory_enumeration.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_factory_enumeration.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_named_weak_reference.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_named_weak_reference.java.i
index ead5939..14289dd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_named_weak_reference.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_named_weak_reference.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_resource_manager.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_resource_manager.java.i
index 635e775..7b0408c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_resource_manager.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_resource_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_version_helper.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_version_helper.java.i
index bd1ea34..2124bb2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_version_helper.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_version_helper.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_version_helper12.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_version_helper12.java.i
index 1cf46f4..120e1dc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_version_helper12.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/naming/internal/_version_helper12.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/net/httpserver/_basic_authenticator.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/net/httpserver/_basic_authenticator.java.i
index bbbbbc7..de7b8a3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/net/httpserver/_basic_authenticator.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/net/httpserver/_basic_authenticator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/net/httpserver/_headers.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/net/httpserver/_headers.java.i
index 0952173..ac2d3d2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/net/httpserver/_headers.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/net/httpserver/_headers.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/net/httpserver/spi/_http_server_provider.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/net/httpserver/spi/_http_server_provider.java.i
index b34f142..04b6f42 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/net/httpserver/spi/_http_server_provider.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/net/httpserver/spi/_http_server_provider.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/net/ssl/_s_s_l_security.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/net/ssl/_s_s_l_security.java.i
index b9e05ab..d2ce3bd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/net/ssl/_s_s_l_security.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/net/ssl/_s_s_l_security.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/_delegate_https_u_r_l_connection.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/_delegate_https_u_r_l_connection.java.i
index 03192fa..ef89762 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/_delegate_https_u_r_l_connection.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/_delegate_https_u_r_l_connection.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/_policy_file.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/_policy_file.java.i
index 37e44d5..d32c575 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/_policy_file.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/_policy_file.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/_subject_code_source.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/_subject_code_source.java.i
index 926eae9..866cee4 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/_subject_code_source.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/_subject_code_source.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_jndi_login_module.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_jndi_login_module.java.i
index 5984bfa..cc218cf 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_jndi_login_module.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_jndi_login_module.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_key_store_login_module.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_key_store_login_module.java.i
index c52ff3b..3ed4ac9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_key_store_login_module.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_key_store_login_module.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_krb5_login_module.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_krb5_login_module.java.i
index 59b7b91..cd05020 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_krb5_login_module.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_krb5_login_module.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_ldap_login_module.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_ldap_login_module.java.i
index dc17f21..616356e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_ldap_login_module.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_ldap_login_module.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_n_t_system.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_n_t_system.java.i
index 2acb415..254db1f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_n_t_system.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/auth/module/_n_t_system.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/jgss/_inquire_sec_context_permission.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/jgss/_inquire_sec_context_permission.java.i
index 32141c0..00629f3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/jgss/_inquire_sec_context_permission.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/jgss/_inquire_sec_context_permission.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_client.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_client.java.i
index 46803ff..981dd3e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_client.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_n_t_l_m.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_n_t_l_m.java.i
index 2aeaeb3..84c5edc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_n_t_l_m.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_n_t_l_m.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_n_t_l_m_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_n_t_l_m_exception.java.i
index 0a3447b..d7a306f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_n_t_l_m_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_n_t_l_m_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_server.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_server.java.i
index 1e9be0b..b674c28 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_server.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/ntlm/_server.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/_cram_m_d5_server.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/_cram_m_d5_server.java.i
index e077dae..fdfe93d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/_cram_m_d5_server.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/_cram_m_d5_server.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/digest/_digest_m_d5_base.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/digest/_digest_m_d5_base.java.i
index 95aeafc..e9666a2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/digest/_digest_m_d5_base.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/digest/_digest_m_d5_base.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/digest/_digest_m_d5_client.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/digest/_digest_m_d5_client.java.i
index 0cb105f..2203fff 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/digest/_digest_m_d5_client.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/digest/_digest_m_d5_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/digest/_digest_m_d5_server.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/digest/_digest_m_d5_server.java.i
index 04d5915..1293699 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/digest/_digest_m_d5_server.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/digest/_digest_m_d5_server.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/gsskerb/_gss_krb5_base.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/gsskerb/_gss_krb5_base.java.i
index a306e48..edc3c3a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/gsskerb/_gss_krb5_base.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/gsskerb/_gss_krb5_base.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/gsskerb/_gss_krb5_client.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/gsskerb/_gss_krb5_client.java.i
index 76668cf..e9530fe 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/gsskerb/_gss_krb5_client.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/gsskerb/_gss_krb5_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/gsskerb/_gss_krb5_server.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/gsskerb/_gss_krb5_server.java.i
index 237de2a..22d82c4 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/gsskerb/_gss_krb5_server.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/gsskerb/_gss_krb5_server.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/ntlm/_factory_impl.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/ntlm/_factory_impl.java.i
index d5b954f..39416be 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/ntlm/_factory_impl.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/ntlm/_factory_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/ntlm/_n_t_l_m_client.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/ntlm/_n_t_l_m_client.java.i
index 4b6135f..4dc91dd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/ntlm/_n_t_l_m_client.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/ntlm/_n_t_l_m_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/ntlm/_n_t_l_m_server.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/ntlm/_n_t_l_m_server.java.i
index 5fda7e3..0c45d8c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/ntlm/_n_t_l_m_server.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/ntlm/_n_t_l_m_server.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/util/_abstract_sasl_impl.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/util/_abstract_sasl_impl.java.i
index c5405e3..90d6693 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/util/_abstract_sasl_impl.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/util/_abstract_sasl_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/util/_policy_utils.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/util/_policy_utils.java.i
index f543606..32fb53e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/util/_policy_utils.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/security/sasl/util/_policy_utils.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_browser_support.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_browser_support.java.i
index 7c15c93..a34a7c5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_browser_support.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_browser_support.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_installer.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_installer.java.i
index 4879890..606481a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_installer.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_installer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_registration_document.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_registration_document.java.i
index 0041ef9..cd46b7f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_registration_document.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_registration_document.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_sun_connection.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_sun_connection.java.i
index 951e086..ce0bc78 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_sun_connection.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/_sun_connection.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/resources/javase__servicetag.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/resources/javase__servicetag.properties.i
new file mode 100644
index 0000000..ce2d8ea
Binary files /dev/null and b/jdk/.hg/store/data/src/share/classes/com/sun/servicetag/resources/javase__servicetag.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties.i
index 8a948ee..02605a7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__de.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__de.properties.i
index ddda2f0..b91d5d4 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__de.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__de.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__es.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__es.properties.i
index 9463101..8a76795 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__es.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__es.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__fr.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__fr.properties.i
index 5ace11f..8185eb7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__fr.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__fr.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__it.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__it.properties.i
index cbe76fc..8ef84da 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__it.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__it.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__ja.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__ja.properties.i
index 58dbead..d93767e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__ja.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__ja.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__ko.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__ko.properties.i
index 69aff7a..2db85f1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__ko.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__ko.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__pt___b_r.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__pt___b_r.properties.i
index 6335bdd..910edcf 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__pt___b_r.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__pt___b_r.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__sv.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__sv.properties.i
index 2c7e17a..09004ad 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__sv.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__sv.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__zh___c_n.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__zh___c_n.properties.i
index b463119..915096a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__zh___c_n.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__zh___c_n.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__zh___t_w.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__zh___t_w.properties.i
index b8bf57a..559cd3c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__zh___t_w.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic__zh___t_w.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties.i
index dcb0708..3daac8c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__de.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__de.properties.i
index 3fdb424..57a8770 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__de.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__de.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__es.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__es.properties.i
index 4358b6a..49379e6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__es.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__es.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__fr.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__fr.properties.i
index 1fd7a60..d854d96 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__fr.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__fr.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__it.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__it.properties.i
index 1f3b32d..8d356d6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__it.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__it.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__ja.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__ja.properties.i
index 598490a..abff960 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__ja.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__ja.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__ko.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__ko.properties.i
index 78dbd71..eb54153 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__ko.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__ko.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__pt___b_r.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__pt___b_r.properties.i
index e257246..3d4186a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__pt___b_r.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__pt___b_r.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__sv.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__sv.properties.i
index a980ba2..b0152d4 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__sv.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__sv.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__zh___c_n.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__zh___c_n.properties.i
index 43da18b..8c4d340 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__zh___c_n.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__zh___c_n.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__zh___t_w.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__zh___t_w.properties.i
index ed731f1..55283be 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__zh___t_w.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal__zh___t_w.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties.i
index 04e0dac..c68314e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__de.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__de.properties.i
index b7d889c..7639373 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__de.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__de.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__es.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__es.properties.i
index abaf4dd..7aea820 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__es.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__es.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__fr.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__fr.properties.i
index fdd5f87..4bd4848 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__fr.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__fr.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__it.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__it.properties.i
index 97edbaa..4d2b692 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__it.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__it.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__ja.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__ja.properties.i
index 47afe54..a307660 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__ja.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__ja.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__ko.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__ko.properties.i
index 2d4fe06..44bcb49 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__ko.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__ko.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__pt___b_r.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__pt___b_r.properties.i
index f425a9e..40fdd7e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__pt___b_r.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__pt___b_r.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__sv.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__sv.properties.i
index d56fff8..9fc9972 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__sv.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__sv.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__zh___c_n.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__zh___c_n.properties.i
index 39551c0..8e21834 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__zh___c_n.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__zh___c_n.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__zh___t_w.properties.i b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__zh___t_w.properties.i
index 192324e..c196e8c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__zh___t_w.properties.i and b/jdk/.hg/store/data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth__zh___t_w.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_access_watchpoint_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_access_watchpoint_spec.java.i
index 9e973dc..347ce1a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_access_watchpoint_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_access_watchpoint_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_ambiguous_method_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_ambiguous_method_exception.java.i
index f007ab5..6525d18 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_ambiguous_method_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_ambiguous_method_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_breakpoint_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_breakpoint_spec.java.i
index f4291a3..8f5bbba 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_breakpoint_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_breakpoint_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_child_session.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_child_session.java.i
index 7e5e6d4..c6346a0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_child_session.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_child_session.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_evaluation_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_evaluation_exception.java.i
index ac040b0..a4c3639 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_evaluation_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_evaluation_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_event_request_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_event_request_spec.java.i
index a9ccbfe..e0f2308 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_event_request_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_event_request_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_event_request_spec_list.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_event_request_spec_list.java.i
index 9e08c14..a4ddeea 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_event_request_spec_list.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_event_request_spec_list.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_exception_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_exception_spec.java.i
index 2db1c83..0652588 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_exception_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_exception_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_execution_manager.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_execution_manager.java.i
index 3155c61..be67898 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_execution_manager.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_execution_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_frame_index_out_of_bounds_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_frame_index_out_of_bounds_exception.java.i
index 667b36c..ea982f0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_frame_index_out_of_bounds_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_frame_index_out_of_bounds_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_input_listener.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_input_listener.java.i
index 09204f1..2ba694a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_input_listener.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_input_listener.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_j_d_i_event_source.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_j_d_i_event_source.java.i
index 12081a8..6f476b2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_j_d_i_event_source.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_j_d_i_event_source.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_line_breakpoint_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_line_breakpoint_spec.java.i
index 4d5ccc3..352b7a5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_line_breakpoint_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_line_breakpoint_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_line_not_found_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_line_not_found_exception.java.i
index 66e4dec..9a7e98d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_line_not_found_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_line_not_found_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_malformed_member_name_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_malformed_member_name_exception.java.i
index 88a85bc..fcfc33c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_malformed_member_name_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_malformed_member_name_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_method_breakpoint_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_method_breakpoint_spec.java.i
index 4dd29ca..dcf885b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_method_breakpoint_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_method_breakpoint_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_method_not_found_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_method_not_found_exception.java.i
index b82ef8f..4f8137c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_method_not_found_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_method_not_found_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_modification_watchpoint_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_modification_watchpoint_spec.java.i
index 446ac90..e08ad1d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_modification_watchpoint_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_modification_watchpoint_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_no_session_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_no_session_exception.java.i
index e7ebdb0..71bef0d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_no_session_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_no_session_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_no_thread_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_no_thread_exception.java.i
index ebf29a7..4fbaab7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_no_thread_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_no_thread_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_output_listener.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_output_listener.java.i
index d3c5144..dca4149 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_output_listener.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_output_listener.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_parse_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_parse_exception.java.i
index f135a78..4e8a7da 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_parse_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_parse_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_pattern_reference_type_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_pattern_reference_type_spec.java.i
index d905ba8..f7a391e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_pattern_reference_type_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_pattern_reference_type_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_reference_type_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_reference_type_spec.java.i
index fc83ca6..daf63a6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_reference_type_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_reference_type_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_session.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_session.java.i
index d65664f..540964e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_session.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_session.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_session_listener.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_session_listener.java.i
index 5ac437a..e969913 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_session_listener.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_session_listener.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_source_name_reference_type_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_source_name_reference_type_spec.java.i
index 1ab9b49..dd2108e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_source_name_reference_type_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_source_name_reference_type_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_spec_error_event.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_spec_error_event.java.i
index 39b761f..2a3c936 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_spec_error_event.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_spec_error_event.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_spec_event.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_spec_event.java.i
index 773a2c8..fab59d9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_spec_event.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_spec_event.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_spec_listener.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_spec_listener.java.i
index ba850fc..de491c3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_spec_listener.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_spec_listener.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_thread_group_iterator.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_thread_group_iterator.java.i
index e9d0dd4..a7d8e33 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_thread_group_iterator.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_thread_group_iterator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_thread_info.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_thread_info.java.i
index cd67181..33c0f48 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_thread_info.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_thread_info.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_thread_iterator.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_thread_iterator.java.i
index 9fd553c..e0e3533 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_thread_iterator.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_thread_iterator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_utils.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_utils.java.i
index cd653d9..09f5522 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_utils.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_utils.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_v_m_launch_failure_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_v_m_launch_failure_exception.java.i
index 3e32742..9a1b3fa 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_v_m_launch_failure_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_v_m_launch_failure_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_v_m_not_interrupted_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_v_m_not_interrupted_exception.java.i
index 0dec932..879c020 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_v_m_not_interrupted_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_v_m_not_interrupted_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_watchpoint_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_watchpoint_spec.java.i
index 5dc0ede..0eccb26 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_watchpoint_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/bdi/_watchpoint_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_abstract_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_abstract_event_set.java.i
index 4b53fa7..d3eb204 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_abstract_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_abstract_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_access_watchpoint_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_access_watchpoint_event_set.java.i
index d773784..24ad293 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_access_watchpoint_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_access_watchpoint_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_class_prepare_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_class_prepare_event_set.java.i
index 7003932..c40fece 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_class_prepare_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_class_prepare_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_class_unload_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_class_unload_event_set.java.i
index d5aabfe..f436d0d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_class_unload_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_class_unload_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_exception_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_exception_event_set.java.i
index b1d7679..b7f5018 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_exception_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_exception_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_j_d_i_adapter.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_j_d_i_adapter.java.i
index cfd58af..1523d81 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_j_d_i_adapter.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_j_d_i_adapter.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_j_d_i_listener.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_j_d_i_listener.java.i
index 0aa07f5..84bd178 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_j_d_i_listener.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_j_d_i_listener.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_locatable_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_locatable_event_set.java.i
index 256ed2d..6da7c52 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_locatable_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_locatable_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_location_trigger_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_location_trigger_event_set.java.i
index 4c23985..bf3190b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_location_trigger_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_location_trigger_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_modification_watchpoint_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_modification_watchpoint_event_set.java.i
index c9658ec..2cb8aef 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_modification_watchpoint_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_modification_watchpoint_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_thread_death_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_thread_death_event_set.java.i
index 5bcdcd8..2492581 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_thread_death_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_thread_death_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_thread_start_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_thread_start_event_set.java.i
index b3c189a..af81706 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_thread_start_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_thread_start_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_v_m_death_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_v_m_death_event_set.java.i
index 72909fa..2462a74 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_v_m_death_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_v_m_death_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_v_m_disconnect_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_v_m_disconnect_event_set.java.i
index 19b90df..858b55e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_v_m_disconnect_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_v_m_disconnect_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_v_m_start_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_v_m_start_event_set.java.i
index bf1c13b..43bf4fb 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_v_m_start_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_v_m_start_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_watchpoint_event_set.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_watchpoint_event_set.java.i
index c10080c..d671834 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_watchpoint_event_set.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/event/_watchpoint_event_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_a_s_c_i_i___u_code_e_s_c___char_stream.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_a_s_c_i_i___u_code_e_s_c___char_stream.java.i
index 59e5139..fc5f4d2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_a_s_c_i_i___u_code_e_s_c___char_stream.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_a_s_c_i_i___u_code_e_s_c___char_stream.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_expression_parser.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_expression_parser.java.i
index 24c5f4f..69206a5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_expression_parser.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_expression_parser.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_expression_parser_constants.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_expression_parser_constants.java.i
index e023250..96df803 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_expression_parser_constants.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_expression_parser_constants.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_expression_parser_token_manager.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_expression_parser_token_manager.java.i
index 6a8d659..dc1e25a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_expression_parser_token_manager.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_expression_parser_token_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_l_value.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_l_value.java.i
index ae22557..346f3d4 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_l_value.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_l_value.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_parse_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_parse_exception.java.i
index 4ebc9d8..9c838b2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_parse_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_parse_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_token.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_token.java.i
index b943933..5099829 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_token.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_token.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_token_mgr_error.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_token_mgr_error.java.i
index 619a5e2..2237f79 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_token_mgr_error.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/expr/_token_mgr_error.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_application_tool.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_application_tool.java.i
index 6219438..af5578d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_application_tool.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_application_tool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_class_manager.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_class_manager.java.i
index a3fa7d2..1606a9d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_class_manager.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_class_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_class_tree_tool.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_class_tree_tool.java.i
index 44ce37b..eae2936 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_class_tree_tool.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_class_tree_tool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_command_interpreter.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_command_interpreter.java.i
index 0fa3ad9..6f35e96 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_command_interpreter.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_command_interpreter.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_command_tool.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_command_tool.java.i
index c3abe22..5aa817f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_command_tool.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_command_tool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_context_listener.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_context_listener.java.i
index d1e8e3d..a1b15e0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_context_listener.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_context_listener.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_context_manager.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_context_manager.java.i
index b6e7396..963150b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_context_manager.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_context_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_current_frame_changed_event.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_current_frame_changed_event.java.i
index f6f65d6..887d886 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_current_frame_changed_event.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_current_frame_changed_event.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_environment.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_environment.java.i
index bb80e41..a9e124a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_environment.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_environment.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_g_u_i.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_g_u_i.java.i
index 062ee44..4a51669 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_g_u_i.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_g_u_i.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_icons.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_icons.java.i
index 55aaa05..e7a516b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_icons.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_icons.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_j_d_b_file_filter.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_j_d_b_file_filter.java.i
index 1f9d736..7a35f22 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_j_d_b_file_filter.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_j_d_b_file_filter.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_j_d_b_menu_bar.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_j_d_b_menu_bar.java.i
index b5041ac..3ba7fcf 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_j_d_b_menu_bar.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_j_d_b_menu_bar.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_j_d_b_tool_bar.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_j_d_b_tool_bar.java.i
index 793465c..e6ca9fe 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_j_d_b_tool_bar.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_j_d_b_tool_bar.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_launch_tool.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_launch_tool.java.i
index 1cc5cee..c71b2d3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_launch_tool.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_launch_tool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_monitor_list_model.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_monitor_list_model.java.i
index 8997173..388988e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_monitor_list_model.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_monitor_list_model.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_monitor_tool.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_monitor_tool.java.i
index 73b8f59..36f3038 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_monitor_tool.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_monitor_tool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_output_sink.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_output_sink.java.i
index 4d2df8d..daa1d25 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_output_sink.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_output_sink.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_search_path.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_search_path.java.i
index f45bc72..11365d2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_search_path.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_search_path.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_single_leaf_tree_selection_model.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_single_leaf_tree_selection_model.java.i
index cfaaa22..a30bb30 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_single_leaf_tree_selection_model.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_single_leaf_tree_selection_model.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_listener.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_listener.java.i
index 5e66d2f..7af5047 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_listener.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_listener.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_manager.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_manager.java.i
index 9b68035..3fbc171 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_manager.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_model.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_model.java.i
index b703ca1..4d2ba18 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_model.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_model.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_tool.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_tool.java.i
index ea76ad0..fdf2600 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_tool.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_tool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_tree_tool.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_tree_tool.java.i
index f029ad9..3e1c101 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_tree_tool.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_source_tree_tool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_sourcepath_changed_event.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_sourcepath_changed_event.java.i
index f8cca03..183da1e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_sourcepath_changed_event.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_sourcepath_changed_event.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_stack_trace_tool.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_stack_trace_tool.java.i
index ae9ee52..7c551db 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_stack_trace_tool.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_stack_trace_tool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_thread_tree_tool.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_thread_tree_tool.java.i
index d0df816..4459978 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_thread_tree_tool.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_thread_tree_tool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_type_script.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_type_script.java.i
index aea6f59..1bd3291 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_type_script.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_type_script.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_type_script_output_listener.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_type_script_output_listener.java.i
index 50384b5..e77dafd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_type_script_output_listener.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_type_script_output_listener.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_type_script_writer.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_type_script_writer.java.i
index 278d34d..1dafb02 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_type_script_writer.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/gui/_type_script_writer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_access_watchpoint_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_access_watchpoint_spec.java.i
index 5f715b0..a574b37 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_access_watchpoint_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_access_watchpoint_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_ambiguous_method_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_ambiguous_method_exception.java.i
index aa06618..de73ad2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_ambiguous_method_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_ambiguous_method_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_breakpoint_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_breakpoint_spec.java.i
index 5642028..7c944ac 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_breakpoint_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_breakpoint_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_commands.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_commands.java.i
index 98c992f..0a4277b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_commands.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_commands.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_env.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_env.java.i
index ec12b70..16e945c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_env.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_env.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_handler.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_handler.java.i
index 5109e8a..26a8fcf 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_handler.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_handler.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_notifier.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_notifier.java.i
index a1e67e2..f223042 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_notifier.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_notifier.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_request_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_request_spec.java.i
index 4bb3193..f7ef35a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_request_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_request_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_request_spec_list.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_request_spec_list.java.i
index a19555f..6a71ca4 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_request_spec_list.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_event_request_spec_list.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_exception_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_exception_spec.java.i
index 836c448..551ce3a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_exception_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_exception_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_line_not_found_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_line_not_found_exception.java.i
index 748323c..466d196 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_line_not_found_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_line_not_found_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_malformed_member_name_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_malformed_member_name_exception.java.i
index 7277794..94e3366 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_malformed_member_name_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_malformed_member_name_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_message_output.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_message_output.java.i
index d92bf7d..eeaa2b7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_message_output.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_message_output.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_modification_watchpoint_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_modification_watchpoint_spec.java.i
index 9ba30a0..b70c193 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_modification_watchpoint_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_modification_watchpoint_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_pattern_reference_type_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_pattern_reference_type_spec.java.i
index 5cb5f83..21bcf86 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_pattern_reference_type_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_pattern_reference_type_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_reference_type_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_reference_type_spec.java.i
index 1ab6cda..babba37 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_reference_type_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_reference_type_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_source_mapper.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_source_mapper.java.i
index 61d2cb0..ada63f1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_source_mapper.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_source_mapper.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y.java.i
index fb99c21..36515d0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y_resources.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y_resources.java.i
index 7dd5172..c8ab1d7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y_resources.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y_resources.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y_resources__ja.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y_resources__ja.java.i
index d703a0d..8db1921 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y_resources__ja.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y_resources__ja.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y_resources__zh___c_n.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y_resources__zh___c_n.java.i
index e20681f..e014f3d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y_resources__zh___c_n.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_t_t_y_resources__zh___c_n.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_thread_group_iterator.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_thread_group_iterator.java.i
index ff134e7..005bf18 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_thread_group_iterator.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_thread_group_iterator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_thread_info.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_thread_info.java.i
index 4d9177e..9b309d4 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_thread_info.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_thread_info.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_thread_iterator.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_thread_iterator.java.i
index af063da..ba26f3e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_thread_iterator.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_thread_iterator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_v_m_connection.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_v_m_connection.java.i
index 921aa8f..d32e9df 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_v_m_connection.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_v_m_connection.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_v_m_not_connected_exception.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_v_m_not_connected_exception.java.i
index 79b6a1b..532da39 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_v_m_not_connected_exception.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_v_m_not_connected_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_watchpoint_spec.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_watchpoint_spec.java.i
index 6b28271..acb6a29 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_watchpoint_spec.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/debug/tty/_watchpoint_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/trace/_event_thread.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/trace/_event_thread.java.i
index d99f7e2..ec5a950 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/trace/_event_thread.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/trace/_event_thread.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/trace/_stream_redirect_thread.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/trace/_stream_redirect_thread.java.i
index e1dd4aa..f42ef10 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/trace/_stream_redirect_thread.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/trace/_stream_redirect_thread.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/trace/_trace.java.i b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/trace/_trace.java.i
index 98e714e..ecc5d4a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/trace/_trace.java.i and b/jdk/.hg/store/data/src/share/classes/com/sun/tools/example/trace/_trace.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/_a_w_t_key_stroke.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/_a_w_t_key_stroke.java.i
index 5296863..11217e2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/_a_w_t_key_stroke.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/_a_w_t_key_stroke.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/_buffer_capabilities.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/_buffer_capabilities.java.i
index beb1654..e66dae8 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/_buffer_capabilities.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/_buffer_capabilities.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/_component.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/_component.java.i
index 7ee8600..c35c6fc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/_component.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/_component.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/_event_dispatch_thread.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/_event_dispatch_thread.java.i
index f83dd32..8c773e0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/_event_dispatch_thread.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/_event_dispatch_thread.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/_event_queue.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/_event_queue.java.i
index 3289cd5..74e8086 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/_event_queue.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/_event_queue.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/_grid_bag_constraints.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/_grid_bag_constraints.java.i
index e489388..a28abd5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/_grid_bag_constraints.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/_grid_bag_constraints.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/_image_capabilities.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/_image_capabilities.java.i
index 8deb196..1b97820 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/_image_capabilities.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/_image_capabilities.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/_insets.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/_insets.java.i
index cc47aca..c27397e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/_insets.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/_insets.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/_job_attributes.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/_job_attributes.java.i
index fdac4d7..af36f3d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/_job_attributes.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/_job_attributes.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/_page_attributes.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/_page_attributes.java.i
index a91c27f..6a1091f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/_page_attributes.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/_page_attributes.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/_rendering_hints.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/_rendering_hints.java.i
index 2074cbc..5108c57 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/_rendering_hints.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/_rendering_hints.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/font/_text_layout.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/font/_text_layout.java.i
index b393877..844c366 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/font/_text_layout.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/font/_text_layout.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_affine_transform.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_affine_transform.java.i
index f49d950..eb45d5a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_affine_transform.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_affine_transform.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_cubic_curve2_d.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_cubic_curve2_d.java.i
index daa8a0b..fc56f6d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_cubic_curve2_d.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_cubic_curve2_d.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_dimension2_d.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_dimension2_d.java.i
index 4cc641f..0559620 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_dimension2_d.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_dimension2_d.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_line2_d.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_line2_d.java.i
index 93a82cc..a725f0e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_line2_d.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_line2_d.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_point2_d.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_point2_d.java.i
index 7a3f401..08aaf53 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_point2_d.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_point2_d.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_quad_curve2_d.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_quad_curve2_d.java.i
index 5302632..4d1e348 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_quad_curve2_d.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_quad_curve2_d.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_rectangular_shape.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_rectangular_shape.java.i
index e828005..b2ca156 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/geom/_rectangular_shape.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/geom/_rectangular_shape.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/image/_image_filter.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/image/_image_filter.java.i
index ad5f170..562bd54 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/image/_image_filter.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/image/_image_filter.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/awt/image/_kernel.java.i b/jdk/.hg/store/data/src/share/classes/java/awt/image/_kernel.java.i
index a02195b..67c15ce 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/awt/image/_kernel.java.i and b/jdk/.hg/store/data/src/share/classes/java/awt/image/_kernel.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/io/_buffered_reader.java.i b/jdk/.hg/store/data/src/share/classes/java/io/_buffered_reader.java.i
index 70b6a42..2809de1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/io/_buffered_reader.java.i and b/jdk/.hg/store/data/src/share/classes/java/io/_buffered_reader.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/io/_buffered_writer.java.i b/jdk/.hg/store/data/src/share/classes/java/io/_buffered_writer.java.i
index cf993d4..f9ed298 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/io/_buffered_writer.java.i and b/jdk/.hg/store/data/src/share/classes/java/io/_buffered_writer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/io/_closeable.java.i b/jdk/.hg/store/data/src/share/classes/java/io/_closeable.java.i
index d69bb05..39b6840 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/io/_closeable.java.i and b/jdk/.hg/store/data/src/share/classes/java/io/_closeable.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/io/_file_input_stream.java.i b/jdk/.hg/store/data/src/share/classes/java/io/_file_input_stream.java.i
index 6502331..1352e89 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/io/_file_input_stream.java.i and b/jdk/.hg/store/data/src/share/classes/java/io/_file_input_stream.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/io/_file_output_stream.java.i b/jdk/.hg/store/data/src/share/classes/java/io/_file_output_stream.java.i
index 09f9f1d..92edfd3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/io/_file_output_stream.java.i and b/jdk/.hg/store/data/src/share/classes/java/io/_file_output_stream.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/io/_filter_output_stream.java.i b/jdk/.hg/store/data/src/share/classes/java/io/_filter_output_stream.java.i
index f42e6fd..d6804ba 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/io/_filter_output_stream.java.i and b/jdk/.hg/store/data/src/share/classes/java/io/_filter_output_stream.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/io/_object_stream_class.java.i b/jdk/.hg/store/data/src/share/classes/java/io/_object_stream_class.java.i
index 57f68eb..62b9e9d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/io/_object_stream_class.java.i and b/jdk/.hg/store/data/src/share/classes/java/io/_object_stream_class.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/io/_random_access_file.java.i b/jdk/.hg/store/data/src/share/classes/java/io/_random_access_file.java.i
index bcfdd8a..e986f22 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/io/_random_access_file.java.i and b/jdk/.hg/store/data/src/share/classes/java/io/_random_access_file.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_auto_closeable.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_auto_closeable.java.i
index 97559e2..84ac67c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_auto_closeable.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_auto_closeable.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_boolean.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_boolean.java.i
index ddb554e..048fdd9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_boolean.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_boolean.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_character_name.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_character_name.java.i
index dd142c0..c1c5b1d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_character_name.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_character_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_class.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_class.java.i
index 8086022..49f8c5e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_class.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_class.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_double.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_double.java.i
index 91bbb00..326bcb5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_double.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_double.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_float.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_float.java.i
index 2d57cbd..db4342e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_float.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_float.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_integer.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_integer.java.i
index 4c493ff..df591ba 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_integer.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_integer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_internal_error.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_internal_error.java.i
index b71e526..a25ea80 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_internal_error.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_internal_error.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_long.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_long.java.i
index b4575c2..f28a625 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_long.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_long.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_math.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_math.java.i
index 4d51732..e2dd546 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_math.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_math.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_safe_varargs.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_safe_varargs.java.i
index 3e4272a..fcf60cc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_safe_varargs.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_safe_varargs.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_strict_math.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_strict_math.java.i
index 9bb2b46..e90016f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_strict_math.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_strict_math.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_system.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_system.java.i
index 35f8d57..bbd701f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_system.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_system.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/_virtual_machine_error.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/_virtual_machine_error.java.i
index 3edadac..73d9214 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/_virtual_machine_error.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/_virtual_machine_error.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_adapter_method_handle.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_adapter_method_handle.java.i
index ac9745a..2d3dc48 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_adapter_method_handle.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_adapter_method_handle.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_call_site.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_call_site.java.i
index c946966..77f6b14 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_call_site.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_call_site.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_counting_method_handle.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_counting_method_handle.java.i
new file mode 100644
index 0000000..713311e
Binary files /dev/null and b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_counting_method_handle.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_invokers.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_invokers.java.i
index 64fcef8..836ca5c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_invokers.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_invokers.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_member_name.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_member_name.java.i
index 637bc14..b3d9690 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_member_name.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_member_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_handle_impl.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_handle_impl.java.i
index 56885cb..07a4cce 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_handle_impl.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_handle_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_handle_natives.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_handle_natives.java.i
index 20f26a7..7ebf277 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_handle_natives.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_handle_natives.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_handle_statics.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_handle_statics.java.i
index 354c177..6a408ed 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_handle_statics.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_handle_statics.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_type_form.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_type_form.java.i
index e7f533d..7a71af1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_type_form.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/invoke/_method_type_form.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/module/_module_info_annotation.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/module/_module_info_annotation.java.i
index 34da4cd..a5be5a5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/module/_module_info_annotation.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/module/_module_info_annotation.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_array.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_array.java.i
index 94a779c..75825df 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_array.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_array.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_constructor.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_constructor.java.i
index c6834dd..7443fcc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_constructor.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_constructor.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_executable.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_executable.java.i
index 1f968a1..39e046b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_executable.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_executable.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_field.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_field.java.i
index 0dab24c..0782ba9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_field.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_field.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_method.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_method.java.i
index 06ddde7..bcc131c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_method.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_method.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_proxy.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_proxy.java.i
index afcd607..86857ce 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_proxy.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_proxy.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_type_variable.java.i b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_type_variable.java.i
index 204cf9f..4dc2247 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_type_variable.java.i and b/jdk/.hg/store/data/src/share/classes/java/lang/reflect/_type_variable.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/math/_big_decimal.java.i b/jdk/.hg/store/data/src/share/classes/java/math/_big_decimal.java.i
index ebf1481..192b8fd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/math/_big_decimal.java.i and b/jdk/.hg/store/data/src/share/classes/java/math/_big_decimal.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/math/_big_integer.java.i b/jdk/.hg/store/data/src/share/classes/java/math/_big_integer.java.i
index 352b6dc..d12fafb 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/math/_big_integer.java.i and b/jdk/.hg/store/data/src/share/classes/java/math/_big_integer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/math/_mutable_big_integer.java.i b/jdk/.hg/store/data/src/share/classes/java/math/_mutable_big_integer.java.i
index 1a38942..12bb8e6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/math/_mutable_big_integer.java.i and b/jdk/.hg/store/data/src/share/classes/java/math/_mutable_big_integer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_abstract_plain_datagram_socket_impl.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_abstract_plain_datagram_socket_impl.java.i
index 19e469c..7f7a00f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_abstract_plain_datagram_socket_impl.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_abstract_plain_datagram_socket_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_abstract_plain_socket_impl.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_abstract_plain_socket_impl.java.i
index 1fc927e..03c788a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_abstract_plain_socket_impl.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_abstract_plain_socket_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_content_handler.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_content_handler.java.i
index 0d06769..55b1e2e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_content_handler.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_content_handler.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_cookie_manager.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_cookie_manager.java.i
index b9a9c98..95b697d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_cookie_manager.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_cookie_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_datagram_socket.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_datagram_socket.java.i
index 75adaf2..24edabf 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_datagram_socket.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_datagram_socket.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_http_cookie.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_http_cookie.java.i
index 8316842..a6e572f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_http_cookie.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_http_cookie.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_http_u_r_l_connection.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_http_u_r_l_connection.java.i
index 9120242..9c935b1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_http_u_r_l_connection.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_http_u_r_l_connection.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_inet4_address.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_inet4_address.java.i
index 2a40845..4263626 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_inet4_address.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_inet4_address.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_inet4_address_impl.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_inet4_address_impl.java.i
index fa7f1fe..2081947 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_inet4_address_impl.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_inet4_address_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_inet6_address.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_inet6_address.java.i
index d0354ab..efc0309 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_inet6_address.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_inet6_address.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_inet6_address_impl.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_inet6_address_impl.java.i
index 5f53543..45684e5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_inet6_address_impl.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_inet6_address_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_multicast_socket.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_multicast_socket.java.i
index f363ae8..3c24f2b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_multicast_socket.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_multicast_socket.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_proxy.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_proxy.java.i
index e0e8716..49f2387 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_proxy.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_proxy.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_proxy_selector.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_proxy_selector.java.i
index 4070753..3c3c0cb 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_proxy_selector.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_proxy_selector.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_socket.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_socket.java.i
index 7d32361..b2737cc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_socket.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_socket.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_socket_impl.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_socket_impl.java.i
index 1d68ef6..392eb30 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_socket_impl.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_socket_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_socket_permission.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_socket_permission.java.i
index 6bc49e1..57b07ac 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_socket_permission.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_socket_permission.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_u_r_i.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_u_r_i.java.i
index 560c11d..8c84b9f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_u_r_i.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_u_r_i.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_u_r_l.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_u_r_l.java.i
index 97d213d..dcb664d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_u_r_l.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_u_r_l.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_u_r_l_class_loader.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_u_r_l_class_loader.java.i
index e25e59f..a8eb342 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_u_r_l_class_loader.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_u_r_l_class_loader.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/net/_u_r_l_connection.java.i b/jdk/.hg/store/data/src/share/classes/java/net/_u_r_l_connection.java.i
index feb767d..3390188 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/net/_u_r_l_connection.java.i and b/jdk/.hg/store/data/src/share/classes/java/net/_u_r_l_connection.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/nio/_bits.java.i b/jdk/.hg/store/data/src/share/classes/java/nio/_bits.java.i
index 16083b6..38f6184 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/nio/_bits.java.i and b/jdk/.hg/store/data/src/share/classes/java/nio/_bits.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/nio/_buffer.java.i b/jdk/.hg/store/data/src/share/classes/java/nio/_buffer.java.i
index 904df9a..fd806f2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/nio/_buffer.java.i and b/jdk/.hg/store/data/src/share/classes/java/nio/_buffer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/nio/_direct-_x-_buffer.java.template.i b/jdk/.hg/store/data/src/share/classes/java/nio/_direct-_x-_buffer.java.template.i
index c35f5a0..f27f5a6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/nio/_direct-_x-_buffer.java.template.i and b/jdk/.hg/store/data/src/share/classes/java/nio/_direct-_x-_buffer.java.template.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/rmi/dgc/_v_m_i_d.java.i b/jdk/.hg/store/data/src/share/classes/java/rmi/dgc/_v_m_i_d.java.i
index ec45cda..54dfb44 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/rmi/dgc/_v_m_i_d.java.i and b/jdk/.hg/store/data/src/share/classes/java/rmi/dgc/_v_m_i_d.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/_access_control_context.java.i b/jdk/.hg/store/data/src/share/classes/java/security/_access_control_context.java.i
index 834d893..74491fe 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/_access_control_context.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/_access_control_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/_access_controller.java.i b/jdk/.hg/store/data/src/share/classes/java/security/_access_controller.java.i
index 9a71944..c0b5354 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/_access_controller.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/_access_controller.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/_basic_permission.java.i b/jdk/.hg/store/data/src/share/classes/java/security/_basic_permission.java.i
index 2a1c0c3..0d0f59c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/_basic_permission.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/_basic_permission.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/_key_rep.java.i b/jdk/.hg/store/data/src/share/classes/java/security/_key_rep.java.i
index f9c62e8..5f09177 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/_key_rep.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/_key_rep.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/_permissions.java.i b/jdk/.hg/store/data/src/share/classes/java/security/_permissions.java.i
index e2943f8..1d27f2d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/_permissions.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/_permissions.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/_policy.java.i b/jdk/.hg/store/data/src/share/classes/java/security/_policy.java.i
index 38b5838..0d09415 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/_policy.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/_policy.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/_protection_domain.java.i b/jdk/.hg/store/data/src/share/classes/java/security/_protection_domain.java.i
index d0b5ab2..1464c14 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/_protection_domain.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/_protection_domain.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/_provider.java.i b/jdk/.hg/store/data/src/share/classes/java/security/_provider.java.i
index 183c778..a385c1d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/_provider.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/_provider.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/_security.java.i b/jdk/.hg/store/data/src/share/classes/java/security/_security.java.i
index 94028e3..748c679 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/_security.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/_security.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/_unresolved_permission.java.i b/jdk/.hg/store/data/src/share/classes/java/security/_unresolved_permission.java.i
index f946312..3518325 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/_unresolved_permission.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/_unresolved_permission.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/_unresolved_permission_collection.java.i b/jdk/.hg/store/data/src/share/classes/java/security/_unresolved_permission_collection.java.i
index be8e1e7..ecfa991 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/_unresolved_permission_collection.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/_unresolved_permission_collection.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/cert/_certificate_revoked_exception.java.i b/jdk/.hg/store/data/src/share/classes/java/security/cert/_certificate_revoked_exception.java.i
index 066e715..41dd0bc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/cert/_certificate_revoked_exception.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/cert/_certificate_revoked_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/cert/_collection_cert_store_parameters.java.i b/jdk/.hg/store/data/src/share/classes/java/security/cert/_collection_cert_store_parameters.java.i
index 53f2674..d5d7eca 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/cert/_collection_cert_store_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/cert/_collection_cert_store_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/cert/_l_d_a_p_cert_store_parameters.java.i b/jdk/.hg/store/data/src/share/classes/java/security/cert/_l_d_a_p_cert_store_parameters.java.i
index b03a630..3627210 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/cert/_l_d_a_p_cert_store_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/cert/_l_d_a_p_cert_store_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/cert/_p_k_i_x_cert_path_checker.java.i b/jdk/.hg/store/data/src/share/classes/java/security/cert/_p_k_i_x_cert_path_checker.java.i
index b70e2f8..4c079b4 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/cert/_p_k_i_x_cert_path_checker.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/cert/_p_k_i_x_cert_path_checker.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/cert/_p_k_i_x_cert_path_validator_result.java.i b/jdk/.hg/store/data/src/share/classes/java/security/cert/_p_k_i_x_cert_path_validator_result.java.i
index 5c69b69..a69ff52 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/cert/_p_k_i_x_cert_path_validator_result.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/cert/_p_k_i_x_cert_path_validator_result.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/cert/_p_k_i_x_parameters.java.i b/jdk/.hg/store/data/src/share/classes/java/security/cert/_p_k_i_x_parameters.java.i
index d73201c..fe5b4f6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/cert/_p_k_i_x_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/cert/_p_k_i_x_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/cert/_x509_c_r_l_selector.java.i b/jdk/.hg/store/data/src/share/classes/java/security/cert/_x509_c_r_l_selector.java.i
index cb88a37..b6466ad 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/cert/_x509_c_r_l_selector.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/cert/_x509_c_r_l_selector.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/security/cert/_x509_cert_selector.java.i b/jdk/.hg/store/data/src/share/classes/java/security/cert/_x509_cert_selector.java.i
index df1127d..30690cd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/security/cert/_x509_cert_selector.java.i and b/jdk/.hg/store/data/src/share/classes/java/security/cert/_x509_cert_selector.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/text/_attributed_string.java.i b/jdk/.hg/store/data/src/share/classes/java/text/_attributed_string.java.i
index 260e4f8..689effb 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/text/_attributed_string.java.i and b/jdk/.hg/store/data/src/share/classes/java/text/_attributed_string.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/text/_break_dictionary.java.i b/jdk/.hg/store/data/src/share/classes/java/text/_break_dictionary.java.i
index c34742c..3229cc6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/text/_break_dictionary.java.i and b/jdk/.hg/store/data/src/share/classes/java/text/_break_dictionary.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/text/_break_iterator.java.i b/jdk/.hg/store/data/src/share/classes/java/text/_break_iterator.java.i
index 0e62594..c6725cf 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/text/_break_iterator.java.i and b/jdk/.hg/store/data/src/share/classes/java/text/_break_iterator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/text/_collator.java.i b/jdk/.hg/store/data/src/share/classes/java/text/_collator.java.i
index 872ad4e..578d33d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/text/_collator.java.i and b/jdk/.hg/store/data/src/share/classes/java/text/_collator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/text/_date_format_symbols.java.i b/jdk/.hg/store/data/src/share/classes/java/text/_date_format_symbols.java.i
index 3c80675..ce13067 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/text/_date_format_symbols.java.i and b/jdk/.hg/store/data/src/share/classes/java/text/_date_format_symbols.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/text/_decimal_format.java.i b/jdk/.hg/store/data/src/share/classes/java/text/_decimal_format.java.i
index ca30926..72381e1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/text/_decimal_format.java.i and b/jdk/.hg/store/data/src/share/classes/java/text/_decimal_format.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/text/_decimal_format_symbols.java.i b/jdk/.hg/store/data/src/share/classes/java/text/_decimal_format_symbols.java.i
index ff49bcb..33c5eae 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/text/_decimal_format_symbols.java.i and b/jdk/.hg/store/data/src/share/classes/java/text/_decimal_format_symbols.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/text/_digit_list.java.i b/jdk/.hg/store/data/src/share/classes/java/text/_digit_list.java.i
index 143fe45..2bd596d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/text/_digit_list.java.i and b/jdk/.hg/store/data/src/share/classes/java/text/_digit_list.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/text/_format.java.i b/jdk/.hg/store/data/src/share/classes/java/text/_format.java.i
index c045409..645640f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/text/_format.java.i and b/jdk/.hg/store/data/src/share/classes/java/text/_format.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/text/_rule_based_break_iterator.java.i b/jdk/.hg/store/data/src/share/classes/java/text/_rule_based_break_iterator.java.i
index 9a4ac07..041d7aa 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/text/_rule_based_break_iterator.java.i and b/jdk/.hg/store/data/src/share/classes/java/text/_rule_based_break_iterator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/text/_string_character_iterator.java.i b/jdk/.hg/store/data/src/share/classes/java/text/_string_character_iterator.java.i
index 57663c3..59a6a36 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/text/_string_character_iterator.java.i and b/jdk/.hg/store/data/src/share/classes/java/text/_string_character_iterator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_array_list.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_array_list.java.i
index 00a28c1..2470348 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_array_list.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_array_list.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_bit_set.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_bit_set.java.i
index 2bd45b5..34180e5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_bit_set.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_bit_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_calendar.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_calendar.java.i
index 47aabc6..3bcb9e0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_calendar.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_calendar.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_currency.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_currency.java.i
index 0215a45..a30c0ef 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_currency.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_currency.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_currency_data.properties.i b/jdk/.hg/store/data/src/share/classes/java/util/_currency_data.properties.i
index 795236a..d28e807 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_currency_data.properties.i and b/jdk/.hg/store/data/src/share/classes/java/util/_currency_data.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_formatter.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_formatter.java.i
index 9242f67..b2d9862 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_formatter.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_formatter.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_hash_set.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_hash_set.java.i
index ae6cd05..c3b27fe 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_hash_set.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_hash_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_hashtable.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_hashtable.java.i
index f8435b1..89d79d9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_hashtable.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_hashtable.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_identity_hash_map.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_identity_hash_map.java.i
index 0e3b678..9dd9144 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_identity_hash_map.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_identity_hash_map.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_linked_list.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_linked_list.java.i
index b207d57..1c611ad 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_linked_list.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_linked_list.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_locale.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_locale.java.i
index e49b4ad..923bf3e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_locale.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_locale.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_locale_i_s_o_data.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_locale_i_s_o_data.java.i
index e3bae80..164713d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_locale_i_s_o_data.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_locale_i_s_o_data.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_observable.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_observable.java.i
index 77f7e09..7af5714 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_observable.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_observable.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_properties.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_properties.java.i
index ecd2bbf..73df711 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_properties.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_properties.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_resource_bundle.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_resource_bundle.java.i
index 3bc72cb..2b0e298 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_resource_bundle.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_resource_bundle.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_time_zone.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_time_zone.java.i
index 9b98071..1b76dba 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_time_zone.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_time_zone.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_tree_map.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_tree_map.java.i
index 0ff4d32..df4164a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_tree_map.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_tree_map.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_tree_set.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_tree_set.java.i
index e75e159..602da3a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_tree_set.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_tree_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_u_u_i_d.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_u_u_i_d.java.i
index 439268a..5d9cd9a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_u_u_i_d.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_u_u_i_d.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/_vector.java.i b/jdk/.hg/store/data/src/share/classes/java/util/_vector.java.i
index e5db4f1..b8134d9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/_vector.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/_vector.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/concurrent/_scheduled_thread_pool_executor.java.i b/jdk/.hg/store/data/src/share/classes/java/util/concurrent/_scheduled_thread_pool_executor.java.i
index 76b54f8..a3fb5ed 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/concurrent/_scheduled_thread_pool_executor.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/concurrent/_scheduled_thread_pool_executor.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/concurrent/_thread_pool_executor.java.i b/jdk/.hg/store/data/src/share/classes/java/util/concurrent/_thread_pool_executor.java.i
index c231698..77efbce 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/concurrent/_thread_pool_executor.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/concurrent/_thread_pool_executor.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/prefs/_preferences.java.i b/jdk/.hg/store/data/src/share/classes/java/util/prefs/_preferences.java.i
index f3ebc09..7afbb3f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/prefs/_preferences.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/prefs/_preferences.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/regex/_matcher.java.i b/jdk/.hg/store/data/src/share/classes/java/util/regex/_matcher.java.i
index ee2cd7f..672b49f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/regex/_matcher.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/regex/_matcher.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/java/util/zip/_zip_entry.java.i b/jdk/.hg/store/data/src/share/classes/java/util/zip/_zip_entry.java.i
index ebf7305..5df1950 100644
Binary files a/jdk/.hg/store/data/src/share/classes/java/util/zip/_zip_entry.java.i and b/jdk/.hg/store/data/src/share/classes/java/util/zip/_zip_entry.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_cipher.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_cipher.java.i
index eb29da5..c60e965 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_cipher.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_cipher.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_all_permission.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_all_permission.java.i
index 46d8774..ac8422e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_all_permission.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_all_permission.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_permission.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_permission.java.i
index 358d747..bff670e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_permission.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_permission.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_permissions.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_permissions.java.i
index ce8a764..35ea278 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_permissions.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_permissions.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_policy_parser.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_policy_parser.java.i
index ac0f2bf..3d0e2e5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_policy_parser.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_crypto_policy_parser.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_encrypted_private_key_info.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_encrypted_private_key_info.java.i
index 0c129f2..98bc094 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_encrypted_private_key_info.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_encrypted_private_key_info.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_jar_verifier.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_jar_verifier.java.i
index ec9ada9..e87d97e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_jar_verifier.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_jar_verifier.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_jce_security.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_jce_security.java.i
index 5920ab8..69f365d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_jce_security.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_jce_security.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_jce_security_manager.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_jce_security_manager.java.i
index b520f71..12c23fc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_jce_security_manager.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_jce_security_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_key_agreement.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_key_agreement.java.i
index 262c4da..0aa8c1f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_key_agreement.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_key_agreement.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_key_generator.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_key_generator.java.i
index 6974389..3c337b8 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_key_generator.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_key_generator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_mac.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_mac.java.i
index 466d430..782f937 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_mac.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_mac.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_sealed_object.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_sealed_object.java.i
index c1d10cf..608afce 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_sealed_object.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_sealed_object.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_secret_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_secret_key_factory.java.i
index e5536a1..aaffae2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_secret_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_secret_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/_secret_key_factory_spi.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/_secret_key_factory_spi.java.i
index 9ae3358..c7bb9be 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/_secret_key_factory_spi.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/_secret_key_factory_spi.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_d_e_s_key_spec.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_d_e_s_key_spec.java.i
index 8f317a8..cdd4402 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_d_e_s_key_spec.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_d_e_s_key_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_d_e_sede_key_spec.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_d_e_sede_key_spec.java.i
index 0a8a34d..057c651 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_d_e_sede_key_spec.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_d_e_sede_key_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_iv_parameter_spec.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_iv_parameter_spec.java.i
index bf32241..573fca8 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_iv_parameter_spec.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_iv_parameter_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_p_b_e_key_spec.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_p_b_e_key_spec.java.i
index 5b0fadc..e267852 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_p_b_e_key_spec.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_p_b_e_key_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_p_b_e_parameter_spec.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_p_b_e_parameter_spec.java.i
index 8179df8..f756a71 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_p_b_e_parameter_spec.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_p_b_e_parameter_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_p_source.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_p_source.java.i
index 3755def..1ecee52 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_p_source.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_p_source.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_r_c2_parameter_spec.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_r_c2_parameter_spec.java.i
index 14f1edb..2845b39 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_r_c2_parameter_spec.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_r_c2_parameter_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_r_c5_parameter_spec.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_r_c5_parameter_spec.java.i
index ffaf882..3a10a67 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_r_c5_parameter_spec.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_r_c5_parameter_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_secret_key_spec.java.i b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_secret_key_spec.java.i
index be32aa5..fc218a0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_secret_key_spec.java.i and b/jdk/.hg/store/data/src/share/classes/javax/crypto/spec/_secret_key_spec.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/management/openmbean/_tabular_data_support.java.i b/jdk/.hg/store/data/src/share/classes/javax/management/openmbean/_tabular_data_support.java.i
index 4112ce7..d33cd31 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/management/openmbean/_tabular_data_support.java.i and b/jdk/.hg/store/data/src/share/classes/javax/management/openmbean/_tabular_data_support.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/_composite_name.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/_composite_name.java.i
index 981252f..d2373e8 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/_composite_name.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/_composite_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/_compound_name.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/_compound_name.java.i
index 72e29ed..5b247e7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/_compound_name.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/_compound_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/_initial_context.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/_initial_context.java.i
index 702e053..076698f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/_initial_context.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/_initial_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/_name_impl.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/_name_impl.java.i
index 570e3ef..5634cc1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/_name_impl.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/_name_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/_reference.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/_reference.java.i
index 04f5f16..4d53422 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/_reference.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/_reference.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/directory/_basic_attribute.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/directory/_basic_attribute.java.i
index 5934fe9..3746f1e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/directory/_basic_attribute.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/directory/_basic_attribute.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/directory/_basic_attributes.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/directory/_basic_attributes.java.i
index 7923495..de32e3b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/directory/_basic_attributes.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/directory/_basic_attributes.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_initial_ldap_context.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_initial_ldap_context.java.i
index f8b8db0..5812c5b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_initial_ldap_context.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_initial_ldap_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_ldap_name.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_ldap_name.java.i
index 4964ee6..8ff26a3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_ldap_name.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_ldap_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_rdn.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_rdn.java.i
index fcd09ca..71faf20 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_rdn.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_rdn.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_rfc2253_parser.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_rfc2253_parser.java.i
index 8cf2864..0c95023 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_rfc2253_parser.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_rfc2253_parser.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_start_tls_request.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_start_tls_request.java.i
index 7351107..a35c2fe 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_start_tls_request.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/ldap/_start_tls_request.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_continuation_context.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_continuation_context.java.i
index d3b0d34..6cfa74d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_continuation_context.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_continuation_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_continuation_dir_context.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_continuation_dir_context.java.i
index 4aee9ef..dcfba01 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_continuation_dir_context.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_continuation_dir_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_directory_manager.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_directory_manager.java.i
index f199c6d..2a4afc8 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_directory_manager.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_directory_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_naming_manager.java.i b/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_naming_manager.java.i
index cc1b613..8d96d51 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_naming_manager.java.i and b/jdk/.hg/store/data/src/share/classes/javax/naming/spi/_naming_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/net/ssl/_https_u_r_l_connection.java.i b/jdk/.hg/store/data/src/share/classes/javax/net/ssl/_https_u_r_l_connection.java.i
index 2f8fdbf..b77642b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/net/ssl/_https_u_r_l_connection.java.i and b/jdk/.hg/store/data/src/share/classes/javax/net/ssl/_https_u_r_l_connection.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/net/ssl/_s_s_l_server_socket_factory.java.i b/jdk/.hg/store/data/src/share/classes/javax/net/ssl/_s_s_l_server_socket_factory.java.i
index 8a483f9..c6665fe 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/net/ssl/_s_s_l_server_socket_factory.java.i and b/jdk/.hg/store/data/src/share/classes/javax/net/ssl/_s_s_l_server_socket_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/net/ssl/_s_s_l_socket_factory.java.i b/jdk/.hg/store/data/src/share/classes/javax/net/ssl/_s_s_l_socket_factory.java.i
index 33fe5c1..347440d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/net/ssl/_s_s_l_socket_factory.java.i and b/jdk/.hg/store/data/src/share/classes/javax/net/ssl/_s_s_l_socket_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/sql/rowset/serial/_serial_blob.java.i b/jdk/.hg/store/data/src/share/classes/javax/sql/rowset/serial/_serial_blob.java.i
index 99366fe..054b4fa 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/sql/rowset/serial/_serial_blob.java.i and b/jdk/.hg/store/data/src/share/classes/javax/sql/rowset/serial/_serial_blob.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/sql/rowset/serial/_serial_clob.java.i b/jdk/.hg/store/data/src/share/classes/javax/sql/rowset/serial/_serial_clob.java.i
index f617c48..76371fc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/sql/rowset/serial/_serial_clob.java.i and b/jdk/.hg/store/data/src/share/classes/javax/sql/rowset/serial/_serial_clob.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/_abstract_button.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/_abstract_button.java.i
index b6d6d7f..b18f018 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/_abstract_button.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/_abstract_button.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/_swing_utilities.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/_swing_utilities.java.i
index 7ad8fad..9e20659 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/_swing_utilities.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/_swing_utilities.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/_swing_worker.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/_swing_worker.java.i
index 87f169b..96871bf 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/_swing_worker.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/_swing_worker.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/package.html.i b/jdk/.hg/store/data/src/share/classes/javax/swing/package.html.i
index d9ecb82..a8405a3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/package.html.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/package.html.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/basic/_basic_file_chooser_u_i.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/basic/_basic_file_chooser_u_i.java.i
index 8a91af4..f4934f5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/basic/_basic_file_chooser_u_i.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/basic/_basic_file_chooser_u_i.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/metal/_metal_file_chooser_u_i.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/metal/_metal_file_chooser_u_i.java.i
index bb833e6..805cc0e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/metal/_metal_file_chooser_u_i.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/metal/_metal_file_chooser_u_i.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/metal/_metal_look_and_feel.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/metal/_metal_look_and_feel.java.i
index 2a544f8..00fde9a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/metal/_metal_look_and_feel.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/metal/_metal_look_and_feel.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html.i b/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html.i
index 2816d6d..396db0b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_abstract_document.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_abstract_document.java.i
index 61f4c6e..adf3d55 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_abstract_document.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_abstract_document.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_default_caret.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_default_caret.java.i
index 6b3538b..923303f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_default_caret.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_default_caret.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_default_styled_document.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_default_styled_document.java.i
index 60f397c..75d5ec5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_default_styled_document.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_default_styled_document.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_element_iterator.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_element_iterator.java.i
index 22ac49d..edb404d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_element_iterator.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_element_iterator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_j_text_component.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_j_text_component.java.i
index 6890cb7..1ef05aa 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_j_text_component.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_j_text_component.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_plain_document.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_plain_document.java.i
index 035f746..c07006c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_plain_document.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_plain_document.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_style_context.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_style_context.java.i
index b9f7510..e28affc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/text/_style_context.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/text/_style_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/text/html/_c_s_s.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/text/html/_c_s_s.java.i
index e8d3012..a39d0dc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/text/html/_c_s_s.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/text/html/_c_s_s.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/text/html/_h_t_m_l_document.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/text/html/_h_t_m_l_document.java.i
index e36877f..673734e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/text/html/_h_t_m_l_document.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/text/html/_h_t_m_l_document.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/text/html/_table_view.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/text/html/_table_view.java.i
index 37e9c96..bdc5239 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/text/html/_table_view.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/text/html/_table_view.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/javax/swing/text/rtf/_r_t_f_reader.java.i b/jdk/.hg/store/data/src/share/classes/javax/swing/text/rtf/_r_t_f_reader.java.i
index e8ab3e4..1aba66a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/javax/swing/text/rtf/_r_t_f_reader.java.i and b/jdk/.hg/store/data/src/share/classes/javax/swing/text/rtf/_r_t_f_reader.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/org/ietf/jgss/_oid.java.i b/jdk/.hg/store/data/src/share/classes/org/ietf/jgss/_oid.java.i
index 2879963..9cf4009 100644
Binary files a/jdk/.hg/store/data/src/share/classes/org/ietf/jgss/_oid.java.i and b/jdk/.hg/store/data/src/share/classes/org/ietf/jgss/_oid.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/org/openjdk/jigsaw/_boot_loader.java.i b/jdk/.hg/store/data/src/share/classes/org/openjdk/jigsaw/_boot_loader.java.i
index 574b337..64af6b5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/org/openjdk/jigsaw/_boot_loader.java.i and b/jdk/.hg/store/data/src/share/classes/org/openjdk/jigsaw/_boot_loader.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/org/openjdk/jigsaw/_hi.java.i b/jdk/.hg/store/data/src/share/classes/org/openjdk/jigsaw/_hi.java.i
index 217d6ca..209697c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/org/openjdk/jigsaw/_hi.java.i and b/jdk/.hg/store/data/src/share/classes/org/openjdk/jigsaw/_hi.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/awt/_font_configuration.java.i b/jdk/.hg/store/data/src/share/classes/sun/awt/_font_configuration.java.i
index 0821886..e6deb04 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/awt/_font_configuration.java.i and b/jdk/.hg/store/data/src/share/classes/sun/awt/_font_configuration.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/dc/_ductus_rendering_engine.java.i b/jdk/.hg/store/data/src/share/classes/sun/dc/_ductus_rendering_engine.java.i
index 706d8cf..760cf79 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/dc/_ductus_rendering_engine.java.i and b/jdk/.hg/store/data/src/share/classes/sun/dc/_ductus_rendering_engine.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/font/_font_line_metrics.java.i b/jdk/.hg/store/data/src/share/classes/sun/font/_font_line_metrics.java.i
index 1aaf802..e140692 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/font/_font_line_metrics.java.i and b/jdk/.hg/store/data/src/share/classes/sun/font/_font_line_metrics.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/font/_font_manager_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/font/_font_manager_factory.java.i
index 2981de0..b018091 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/font/_font_manager_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/font/_font_manager_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/font/_glyph_layout.java.i b/jdk/.hg/store/data/src/share/classes/sun/font/_glyph_layout.java.i
index b6b6e90..3e88f4d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/font/_glyph_layout.java.i and b/jdk/.hg/store/data/src/share/classes/sun/font/_glyph_layout.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/invoke/util/_value_conversions.java.i b/jdk/.hg/store/data/src/share/classes/sun/invoke/util/_value_conversions.java.i
index a5f7fe1..508398f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/invoke/util/_value_conversions.java.i and b/jdk/.hg/store/data/src/share/classes/sun/invoke/util/_value_conversions.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/java2d/pipe/_loop_pipe.java.i b/jdk/.hg/store/data/src/share/classes/sun/java2d/pipe/_loop_pipe.java.i
index d4638f4..b4ca777 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/java2d/pipe/_loop_pipe.java.i and b/jdk/.hg/store/data/src/share/classes/sun/java2d/pipe/_loop_pipe.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/management/_management_factory_helper.java.i b/jdk/.hg/store/data/src/share/classes/sun/management/_management_factory_helper.java.i
index e1d00b3..63ea2b3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/management/_management_factory_helper.java.i and b/jdk/.hg/store/data/src/share/classes/sun/management/_management_factory_helper.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/management/counter/perf/_perf_data_entry.java.i b/jdk/.hg/store/data/src/share/classes/sun/management/counter/perf/_perf_data_entry.java.i
index 23d40c1..eadadc0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/management/counter/perf/_perf_data_entry.java.i and b/jdk/.hg/store/data/src/share/classes/sun/management/counter/perf/_perf_data_entry.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/management/counter/perf/_perf_data_type.java.i b/jdk/.hg/store/data/src/share/classes/sun/management/counter/perf/_perf_data_type.java.i
index 2f20bbb..5374cfe 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/management/counter/perf/_perf_data_type.java.i and b/jdk/.hg/store/data/src/share/classes/sun/management/counter/perf/_perf_data_type.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/misc/_floating_decimal.java.i b/jdk/.hg/store/data/src/share/classes/sun/misc/_floating_decimal.java.i
index 2eba46c..5154f59 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/misc/_floating_decimal.java.i and b/jdk/.hg/store/data/src/share/classes/sun/misc/_floating_decimal.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/misc/_formatted_floating_decimal.java.i b/jdk/.hg/store/data/src/share/classes/sun/misc/_formatted_floating_decimal.java.i
index 27c3d6b..303120a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/misc/_formatted_floating_decimal.java.i and b/jdk/.hg/store/data/src/share/classes/sun/misc/_formatted_floating_decimal.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/misc/_fp_utils.java.i b/jdk/.hg/store/data/src/share/classes/sun/misc/_fp_utils.java.i
index 1fcb169..a7b7c9a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/misc/_fp_utils.java.i and b/jdk/.hg/store/data/src/share/classes/sun/misc/_fp_utils.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/misc/_java_nio_access.java.i b/jdk/.hg/store/data/src/share/classes/sun/misc/_java_nio_access.java.i
index 064c859..5869eda 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/misc/_java_nio_access.java.i and b/jdk/.hg/store/data/src/share/classes/sun/misc/_java_nio_access.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/misc/_launcher.java.i b/jdk/.hg/store/data/src/share/classes/sun/misc/_launcher.java.i
index e00f8cd..62eadbd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/misc/_launcher.java.i and b/jdk/.hg/store/data/src/share/classes/sun/misc/_launcher.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/misc/_proxy_generator.java.i b/jdk/.hg/store/data/src/share/classes/sun/misc/_proxy_generator.java.i
index 6b73459..da443c7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/misc/_proxy_generator.java.i and b/jdk/.hg/store/data/src/share/classes/sun/misc/_proxy_generator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/misc/_r_e_exception.java.i b/jdk/.hg/store/data/src/share/classes/sun/misc/_r_e_exception.java.i
index 5b56838..4873648 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/misc/_r_e_exception.java.i and b/jdk/.hg/store/data/src/share/classes/sun/misc/_r_e_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/misc/_u_r_l_class_path.java.i b/jdk/.hg/store/data/src/share/classes/sun/misc/_u_r_l_class_path.java.i
index d6bb51f..654c185 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/misc/_u_r_l_class_path.java.i and b/jdk/.hg/store/data/src/share/classes/sun/misc/_u_r_l_class_path.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/_network_client.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/_network_client.java.i
index a5472b8..7544c73 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/_network_client.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/_network_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/_network_server.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/_network_server.java.i
index 20f93f9..0cd8ea3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/_network_server.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/_network_server.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/_transfer_protocol_client.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/_transfer_protocol_client.java.i
index 3f4f640..c567a1d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/_transfer_protocol_client.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/_transfer_protocol_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/ftp/_ftp_client_provider.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/ftp/_ftp_client_provider.java.i
index 341ac17..6214123 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/ftp/_ftp_client_provider.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/ftp/_ftp_client_provider.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/ftp/impl/_ftp_client.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/ftp/impl/_ftp_client.java.i
index 530ed59..5a4e457 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/ftp/impl/_ftp_client.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/ftp/impl/_ftp_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/httpserver/_request.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/httpserver/_request.java.i
index dcdb49c..81fddee 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/httpserver/_request.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/httpserver/_request.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/httpserver/_s_s_l_streams.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/httpserver/_s_s_l_streams.java.i
index ad568cd..7f8bbdc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/httpserver/_s_s_l_streams.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/httpserver/_s_s_l_streams.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/httpserver/_server_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/httpserver/_server_impl.java.i
index 5b07384..49b6bc3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/httpserver/_server_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/httpserver/_server_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/idn/_u_character_enums.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/idn/_u_character_enums.java.i
index 4b6f39b..f95eb46 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/idn/_u_character_enums.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/idn/_u_character_enums.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/smtp/_smtp_client.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/smtp/_smtp_client.java.i
index 7ee3dab..c0fff2c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/smtp/_smtp_client.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/smtp/_smtp_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/spi/nameservice/dns/_d_n_s_name_service.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/spi/nameservice/dns/_d_n_s_name_service.java.i
index 812ee50..5d9f66c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/spi/nameservice/dns/_d_n_s_name_service.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/spi/nameservice/dns/_d_n_s_name_service.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/_header_parser.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/_header_parser.java.i
index 9cce141..56e6404 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/_header_parser.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/_header_parser.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/_message_header.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/_message_header.java.i
index 43ed42f..4fda6cd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/_message_header.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/_message_header.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/_mime_table.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/_mime_table.java.i
index 5291d16..f1ee30d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/_mime_table.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/_mime_table.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/_u_r_l_connection.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/_u_r_l_connection.java.i
index 73a285a..922eece 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/_u_r_l_connection.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/_u_r_l_connection.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/gif.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/gif.java.i
index abfe765..2a401cf 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/gif.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/gif.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/jpeg.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/jpeg.java.i
index 57d6802..374ef88 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/jpeg.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/jpeg.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/png.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/png.java.i
index b2cc758..11338aa 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/png.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/png.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/x__xbitmap.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/x__xbitmap.java.i
index fe471f8..dc85dda 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/x__xbitmap.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/x__xbitmap.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/x__xpixmap.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/x__xpixmap.java.i
index 3bb8787..1c11f1a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/x__xpixmap.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/content/image/x__xpixmap.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/http/_chunked_output_stream.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/http/_chunked_output_stream.java.i
index ab8ef2f..079d98b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/http/_chunked_output_stream.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/http/_chunked_output_stream.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/http/_http_client.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/http/_http_client.java.i
index dae3535..b98eaed 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/http/_http_client.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/http/_http_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/http/_keep_alive_stream.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/http/_keep_alive_stream.java.i
index b6ddadf..49cfa77 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/http/_keep_alive_stream.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/http/_keep_alive_stream.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/gopher/_gopher_client.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/gopher/_gopher_client.java.i
index b5559e5..75e3511 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/gopher/_gopher_client.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/gopher/_gopher_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_auth_cache_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_auth_cache_impl.java.i
index 0e050c9..517af8b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_auth_cache_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_auth_cache_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_authentication_header.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_authentication_header.java.i
index 47a058d..e6874eb 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_authentication_header.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_authentication_header.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_http_u_r_l_connection.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_http_u_r_l_connection.java.i
index 74f213d..60a7627 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_http_u_r_l_connection.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_http_u_r_l_connection.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_negotiator.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_negotiator.java.i
index 20e726d..34b7dc3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_negotiator.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/http/_negotiator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/https/_abstract_delegate_https_u_r_l_connection.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/https/_abstract_delegate_https_u_r_l_connection.java.i
index bce9166..e57741f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/https/_abstract_delegate_https_u_r_l_connection.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/https/_abstract_delegate_https_u_r_l_connection.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/https/_https_client.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/https/_https_client.java.i
index 7618359..940ce8e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/https/_https_client.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/https/_https_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/mailto/_handler.java.i b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/mailto/_handler.java.i
index 8f33f83..4631f62 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/mailto/_handler.java.i and b/jdk/.hg/store/data/src/share/classes/sun/net/www/protocol/mailto/_handler.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/ch/_direct_buffer.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/ch/_direct_buffer.java.i
index dd1d59a..114946e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/ch/_direct_buffer.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/ch/_direct_buffer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/ch/_util.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/ch/_util.java.i
index e104bb5..db0780e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/ch/_util.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/ch/_util.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/_abstract_charset_provider.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/_abstract_charset_provider.java.i
index aeb1ded..a26611b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/_abstract_charset_provider.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/_abstract_charset_provider.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_g_b18030.java.d b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_g_b18030.java.d
index 39a2848..c23315c 100644
--- a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_g_b18030.java.d
+++ b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_g_b18030.java.d
@@ -714,3 +714,4 @@ C
 ßó–½c7÷k|ùÓNØÑËã~ýö»v}µ{áõÉyäEzy|û]Û­ÛÏ“ÕÏI Ö\¸yj¿Ù¿3Úæ?lo3íÝæ{¤U;ïWÉóžØËø]{Ø3øϯss»º]ñáÝÖ6GœÜ6sc°¬íÅÇvdì–×zcêy_Ë:í¬u½ÿqÜŒþHCŽ=)xyøæÂÛlÄjk~wxöåÑËÃãWǯ¾=¸³qc<뇳®©ZÔoãÛ?Nµtîj¹ŸÆª¹Sh¬ªÅ7×NïˆýeǬtÕ°{?
Y=dÈÊœ¿w#üÑCW>—{ú×5rõ¸ÝÿiàÊþü>pÕ’Žû測žI½=?ؽú€ÃD¾ºØ»Ç®~¼ê??
^­þš¯.®ÚáŠgèêÆ׌[ýHWï ÞcØêÎ#À˜Õ´ºÇêǁŸ†¬nýy§!+ãï_çÐÕÍõ!ãV÷
\Ý»E3jµ/©ºèKþHT·çp·ÿ–a‘¿‚‘©¾ûF”¶†”.’³ƒJï7œôÀ±¤WCAqóxW¿ôëåú7w>¸û´]ßA‚Ý|å·¦Ú76±5|vË66Gmn<÷|ñ˜ôîsÏ—¿¾å¹çw~xùb›zxÙóð²çáå~;xyø}ÏD6c.g«¶YÉ­C-£m/ï›ÓÓ“£ÃW-Íyµ	Ì;xõl7æÅÑüOŠ‹;Ì'ÇgÏö?3½yèûzßôWÔ.³oûCt¯Žþhþtc„qûH6Í.ŽÞsž¾þÝêôíùÅs¼O/æ´_šgÚ~7/÷»Û׽ʵ¯C}Ýïp›G^_ô»Ú_¬¦Õ“ß­>ûlµãÃÕí;;ôõU’Û²í«'\·s×/^<Ù“…_ïÀ“»ŽþÿXìfæÆõuëÞðè1ê­ÒžûÊų£#Ån/vñÀïßêS±ÏNÛÛàÕÙÑóÿvô'Æó7‰Ì÷¯ûõütu¸zqúöÍÍac³•«NãúiK|.ÿý飯ï+¼ïC¹;)ܶØævsõ4ížÏvn´û’e>¦Ø>®Ÿ·[ì'¯û-õ awvØþ{ý´ïüf<$¯ê[8j{ðf÷RØþ¡ëp±—秭ãàéGŸ­NŽÿpw
 ÚÖ:88 kí72í÷»vu}ªÃê §±—¿~BºH¹w'ÎNW<Z>¾:hŽž¬o§žíšúöâQç¿ÿÃÑŸþþ“»Ge¶¯ÍÈüËÞÌÿþ±ò»ÖܾVú±>~õì
=°»Ž÷=Ÿ=Ûô‘ú+î	Ö³Mq½ë¾+ç/ô±ÔEôèÓÐGq/ö­p6ö\ÆÝÜ·çýÍü¯‡'›§..Õ?º}vßc~ŽnŸø˜Ÿg{ÞôV·ö~3A«æ{>¸ê?·ôÞ¾zyøúu™ºùÙϝÛÚE»Þ‰ÍPØe¢r÷¾_ÝAíÊûbîÜÊ.ö¡¿õdÝG%tLû¯ïù°l빸~{øyý€OÎ컶=`´å"æ»Fé4÷¼ª‹#ÒGÕ¦ûb¼ëç—/靶~ϝêa7ö>·n:y¬ûo:7/›g\0}ðCßgïø¤dó9Æ͏1öíî;}Žñàçˆ/Þyhû¡!Qxö O&özüÉÍ×û—ö2¯wó&{äJ—7¥}+=êH]ˆÓ3’ÚSXÞû°Óz§û#õ%¿éŸ-IûOÛùD÷úx¿Û̐3ö	Õ/[âˆ$êêý»jÙTWûtu|~vù¤GËØ[ÿ𤽳ö¿bu*n殫 ühó©Ôþ]»±ÞÏ[Ò}ÏÇMßèž 2l¢N÷}àh¢ÊpOXù ¯õw×F~~µ‘{w}ëmðÍ=³¶•‡/ºç&¾»¨¯OPŸ½8lñþ»Ò¦ßzðâ°‰õèàG>ƒø7úüá&mÞ@}Ÿ±îÜ:NðØÝî>n/öž|¼
¸|òçÁÏ+ÞºØ{\tE¯Þ´
|¶?o}ÌpÁ-Ýëý¬}˜îõw¯Ÿ:Ô“êŸ:Ó?u¦êLÿhiöüÆo½ëÝçУž\ì?ïԝ¹zLaÓO¾k¤uëœÜñʶ®£Ç¿²{:Çà•mÞ){î­7ßÜSÞñaÿGôt×˽ýàÝÓÓ}§ƒ÷á{¸ïÝ»}LÏöý{µêѾwoö½{²—Wï7ZhßãÛWí›X{µÐ]Œý‡~Tèò_·?(´ÉñÞ¯ß÷À>ßû<(´ûüÁ;<(dú¹{úáïþ/Yù/xœcàŽ|ÄÀÅÁÀÀ ¯€ŠRKJ‹òœ3‹“KR‹ô2‹ƒK‹ŠòÓKR5’5­¹¸ã=€¸¨ÕDÈLSÐÀ¥[S¡¨?¿ˆW‘« k†.œxœ5ÁJ1†#öÔWðòU–u[ðà¡”VÑââU˜nf»ÁmR“l—}ñ|!_ÅIi “Ì÷ÿ3J©s¥Ô£h…kÌÝnðfÓD\VW¸-ŠÛ,Ó¯žª–AVß8¨®Mk(rÈ1k[ú<ö{ÖùX©³ч°—ÂÞuëÖ„†5ÖbÃXzf”®Ž=y¹¹ÎjŠÆÙ'7ÍÁll²ñGô'Ä!
 çøÑØñùi¾x)`,Š ªrÛY#¶	ÊiNÑF#ѯ€¾´j™Ë›TÅ#4ä(N+òŸ=
ÞX÷Îi”“I3Ìg¸¿+¦¼—³± d9{LDß÷¹;4ç¦Æà:X– ¤µIƒR+Ákç·‡±SkCû´ã!‘¾:©òñ?‘F?xœcàÖ?ÂÀ­ÿšAQ
¥–”å)¨Ç”º¹¹¹¨[s Ä	xœcàŽÿÏÀ`ÊÀÀ`£€èë+8g$%&—¤é•ä;秤ägæ•(ääçg+ädf§r ;þ      S   P * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+  ð  ¹    
\ No newline at end of file
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_g_b18030.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_g_b18030.java.i
index b9fc0de..6c04c2d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_g_b18030.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_g_b18030.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_b_m33722.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_b_m33722.java.i
index 9c1ebaa..69f2e70 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_b_m33722.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_b_m33722.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_b_m964.java.d b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_b_m964.java.d
index a4b1abc..8e2b2e5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_b_m964.java.d and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_b_m964.java.d differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_b_m964.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_b_m964.java.i
index fbe2574..f6f6391 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_b_m964.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_b_m964.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_s_c_i_i91.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_s_c_i_i91.java.i
index 231b93b..c181291 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_s_c_i_i91.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_i_s_c_i_i91.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0208___decoder.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0208___decoder.java.i
index cada68d..ea30907 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0208___decoder.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0208___decoder.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0208___encoder.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0208___encoder.java.i
index fe7089e..daf913f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0208___encoder.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0208___encoder.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0208___solaris___decoder.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0208___solaris___decoder.java.i
index 745e57f..529b492 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0208___solaris___decoder.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0208___solaris___decoder.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___decoder.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___decoder.java.i
index 23c3dd1..890bfb3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___decoder.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___decoder.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___encoder.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___encoder.java.i
index e120562..5c1d5c7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___encoder.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___encoder.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___solaris___decoder.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___solaris___decoder.java.i
index 6b8ef32..e5a30db 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___solaris___decoder.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___solaris___decoder.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___solaris___encoder.java.i b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___solaris___encoder.java.i
index f74663a..87bc379 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___solaris___encoder.java.i and b/jdk/.hg/store/data/src/share/classes/sun/nio/cs/ext/_j_i_s___x__0212___solaris___encoder.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/_accessor_generator.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/_accessor_generator.java.i
index a19adba..74f824f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/_accessor_generator.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/_accessor_generator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/_bootstrap_constructor_accessor_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/_bootstrap_constructor_accessor_impl.java.i
index 949d583..03d9e30 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/_bootstrap_constructor_accessor_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/_bootstrap_constructor_accessor_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/_class_definer.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/_class_definer.java.i
index 1ba94e5..e10992c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/_class_definer.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/_class_definer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/_constant_pool.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/_constant_pool.java.i
index f08960c..1795b0a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/_constant_pool.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/_constant_pool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/_label.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/_label.java.i
index 16c1f55..90788ad 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/_label.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/_label.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/_method_accessor_generator.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/_method_accessor_generator.java.i
index 89d24a0..b4350e1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/_method_accessor_generator.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/_method_accessor_generator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/_native_constructor_accessor_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/_native_constructor_accessor_impl.java.i
index 612021c..f37ad2a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/_native_constructor_accessor_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/_native_constructor_accessor_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/_reflection.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/_reflection.java.i
index 2d2c6b7..159ff9a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/_reflection.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/_reflection.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/_reflection_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/_reflection_factory.java.i
index 69318cc..472c763 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/_reflection_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/_reflection_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/_u_t_f8.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/_u_t_f8.java.i
index 7ff39c3..20686e8 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/_u_t_f8.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/_u_t_f8.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/_unsafe_field_accessor_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/_unsafe_field_accessor_factory.java.i
index 344fe03..039f84a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/_unsafe_field_accessor_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/_unsafe_field_accessor_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/_unsafe_field_accessor_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/_unsafe_field_accessor_impl.java.i
index 44a6772..35fe34a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/_unsafe_field_accessor_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/_unsafe_field_accessor_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_annotation_invocation_handler.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_annotation_invocation_handler.java.i
index ccd61e8..18249f7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_annotation_invocation_handler.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_annotation_invocation_handler.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_annotation_parser.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_annotation_parser.java.i
index ddbd2ae..c8e1070 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_annotation_parser.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_annotation_parser.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_annotation_type_mismatch_exception_proxy.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_annotation_type_mismatch_exception_proxy.java.i
index 8a44043..1dd6689 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_annotation_type_mismatch_exception_proxy.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_annotation_type_mismatch_exception_proxy.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_enum_constant_not_present_exception_proxy.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_enum_constant_not_present_exception_proxy.java.i
index 96280aa..5df0964 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_enum_constant_not_present_exception_proxy.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_enum_constant_not_present_exception_proxy.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_type_not_present_exception_proxy.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_type_not_present_exception_proxy.java.i
index af3bbdb..1aa7afd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_type_not_present_exception_proxy.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/annotation/_type_not_present_exception_proxy.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/parser/_signature_parser.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/parser/_signature_parser.java.i
index 07658e8..a62b0bc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/parser/_signature_parser.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/parser/_signature_parser.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/reflective_objects/_type_variable_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/reflective_objects/_type_variable_impl.java.i
index 05828b9..27b075d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/reflective_objects/_type_variable_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/reflective_objects/_type_variable_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/repository/_generic_decl_repository.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/repository/_generic_decl_repository.java.i
index 1c83a7a..1e3e753 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/repository/_generic_decl_repository.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/repository/_generic_decl_repository.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/scope/_abstract_scope.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/scope/_abstract_scope.java.i
index f20b0d0..030704e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/scope/_abstract_scope.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/scope/_abstract_scope.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/scope/_constructor_scope.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/scope/_constructor_scope.java.i
index 0572887..a8d36e8 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/scope/_constructor_scope.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/scope/_constructor_scope.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/tree/_class_signature.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/tree/_class_signature.java.i
index e1cd50b..a105ba8 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/tree/_class_signature.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/tree/_class_signature.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/tree/_method_type_signature.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/tree/_method_type_signature.java.i
index 30b11dd..fe76077 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/tree/_method_type_signature.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/generics/tree/_method_type_signature.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/reflect/misc/_method_util.java.i b/jdk/.hg/store/data/src/share/classes/sun/reflect/misc/_method_util.java.i
index 247c16e..67faedf 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/reflect/misc/_method_util.java.i and b/jdk/.hg/store/data/src/share/classes/sun/reflect/misc/_method_util.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/rmi/transport/_live_ref.java.i b/jdk/.hg/store/data/src/share/classes/sun/rmi/transport/_live_ref.java.i
index 1765058..3d01e08 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/rmi/transport/_live_ref.java.i and b/jdk/.hg/store/data/src/share/classes/sun/rmi/transport/_live_ref.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/acl/_acl_entry_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/acl/_acl_entry_impl.java.i
index 2560e38..f056bf1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/acl/_acl_entry_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/acl/_acl_entry_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/action/_put_all_action.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/action/_put_all_action.java.i
index dcc6246..34b015b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/action/_put_all_action.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/action/_put_all_action.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/ec/_e_c_d_s_a_signature.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/ec/_e_c_d_s_a_signature.java.i
index 824ae1d..23bd840 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/ec/_e_c_d_s_a_signature.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/ec/_e_c_d_s_a_signature.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/ec/_e_c_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/ec/_e_c_key_factory.java.i
index 0e7627b..c49e40d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/ec/_e_c_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/ec/_e_c_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/ec/_e_c_parameters.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/ec/_e_c_parameters.java.i
index 051ef07..0db3cfc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/ec/_e_c_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/ec/_e_c_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jca/_get_instance.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jca/_get_instance.java.i
index b5ad92f..90c4fb6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jca/_get_instance.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jca/_get_instance.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jca/_provider_list.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jca/_provider_list.java.i
index 0cead1b..f88cd64 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jca/_provider_list.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jca/_provider_list.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jca/_providers.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jca/_providers.java.i
index 2dcb0cd..2a2caa5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jca/_providers.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jca/_providers.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/_g_s_s_util.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/_g_s_s_util.java.i
index ac7d390..2f9f613 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/_g_s_s_util.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/_g_s_s_util.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_cipher_helper.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_cipher_helper.java.i
index bc0cd6e..8f9afc3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_cipher_helper.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_cipher_helper.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_krb5_context.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_krb5_context.java.i
index 60e1da5..d8f947f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_krb5_context.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_krb5_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_krb5_name_element.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_krb5_name_element.java.i
index 7776b9f..4dcbc93 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_krb5_name_element.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_krb5_name_element.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_krb5_util.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_krb5_util.java.i
index ee2f915..0dc4acc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_krb5_util.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_krb5_util.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_message_token.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_message_token.java.i
index 0a047ed..d3010d6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_message_token.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_message_token.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_subject_comber.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_subject_comber.java.i
index 491fe1f..cc04df1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_subject_comber.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/krb5/_subject_comber.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/spnego/_sp_nego_context.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/spnego/_sp_nego_context.java.i
index 642b323..11c797a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/spnego/_sp_nego_context.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/spnego/_sp_nego_context.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/wrapper/_native_g_s_s_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/wrapper/_native_g_s_s_factory.java.i
index 36eb659..24f2a7d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/wrapper/_native_g_s_s_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/wrapper/_native_g_s_s_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/wrapper/_sun_native_provider.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/wrapper/_sun_native_provider.java.i
index 54f552f..b4226e0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/jgss/wrapper/_sun_native_provider.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/jgss/wrapper/_sun_native_provider.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_checksum.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_checksum.java.i
index 99cd8ac..7632160 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_checksum.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_checksum.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_config.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_config.java.i
index 45d74f0..52f3c9a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_config.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_config.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_encryption_key.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_encryption_key.java.i
index 3f129d8..de57678 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_encryption_key.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_encryption_key.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_krb_as_rep.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_krb_as_rep.java.i
index b0678e2..ad2483c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_krb_as_rep.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_krb_as_rep.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_krb_as_req_builder.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_krb_as_req_builder.java.i
index d74f307..4e6cce9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_krb_as_req_builder.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_krb_as_req_builder.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_krb_service_locator.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_krb_service_locator.java.i
index ed1c697..5e051b0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_krb_service_locator.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_krb_service_locator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_principal_name.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_principal_name.java.i
index 6d50da1..0bfde02 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_principal_name.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/_principal_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/internal/_k_r_b_error.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/internal/_k_r_b_error.java.i
index 921bab8..2af9607 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/internal/_k_r_b_error.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/internal/_k_r_b_error.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/internal/_p_a_data.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/internal/_p_a_data.java.i
index a8db608..7db2ad1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/internal/_p_a_data.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/internal/_p_a_data.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/internal/ccache/_file_credentials_cache.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/internal/ccache/_file_credentials_cache.java.i
index fa8d0e8..57f5c17 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/krb5/internal/ccache/_file_credentials_cache.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/krb5/internal/ccache/_file_credentials_cache.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_content_info.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_content_info.java.i
index f041cf6..ffe8a91 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_content_info.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_content_info.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s10.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s10.java.i
index d82d4fc..191a24b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s10.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s10.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s7.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s7.java.i
index 2e58024..83373c6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s7.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s7.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s8_key.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s8_key.java.i
index cb83e9a..42c58b9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s8_key.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s8_key.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s9_attribute.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s9_attribute.java.i
index 467001f..dbfec44 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s9_attribute.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_p_k_c_s9_attribute.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_signer_info.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_signer_info.java.i
index 284516f..1ee7ae6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_signer_info.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs/_signer_info.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_config.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_config.java.i
index ecb5db7..27feca5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_config.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_config.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_cipher.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_cipher.java.i
index 6918b8c..df5f330 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_cipher.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_cipher.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_d_h_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_d_h_key_factory.java.i
index 36c39a3..471d38c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_d_h_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_d_h_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_d_s_a_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_d_s_a_key_factory.java.i
index 06b891e..9f7ea16 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_d_s_a_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_d_s_a_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_e_c_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_e_c_key_factory.java.i
index b4bfa98..299664f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_e_c_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_e_c_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key.java.i
index eab892c..656953d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key_agreement.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key_agreement.java.i
index 72c83b6..19e0575 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key_agreement.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key_agreement.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key_factory.java.i
index 9f53fee..15c48b5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key_store.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key_store.java.i
index 716a874..7b68f80 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key_store.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_key_store.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_r_s_a_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_r_s_a_key_factory.java.i
index 2e57d0c..d9f23ee 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_r_s_a_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_r_s_a_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_secret_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_secret_key_factory.java.i
index 8c350e3..4793f6b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_secret_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_secret_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_signature.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_signature.java.i
index 4efbe8f..6eec047 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_signature.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_signature.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_tls_prf_generator.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_tls_prf_generator.java.i
index b37dbbb..f754944 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_tls_prf_generator.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_tls_prf_generator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_util.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_util.java.i
index c159703..7260701 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_util.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_p11_util.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_secmod.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_secmod.java.i
index 9b86dbc..353f794 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_secmod.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_secmod.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_session.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_session.java.i
index a7728d6..088e993 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_session.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_session.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_token.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_token.java.i
index f216a91..cec4030 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_token.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/_token.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/wrapper/_functions.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/wrapper/_functions.java.i
index 43773f5..72c7537 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/wrapper/_functions.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/wrapper/_functions.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/wrapper/_p_k_c_s11_exception.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/wrapper/_p_k_c_s11_exception.java.i
index edd4ff6..eee577e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/wrapper/_p_k_c_s11_exception.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/wrapper/_p_k_c_s11_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/wrapper/_p_k_c_s11_runtime_exception.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/wrapper/_p_k_c_s11_runtime_exception.java.i
index f9e0080..4513665 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/wrapper/_p_k_c_s11_runtime_exception.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs11/wrapper/_p_k_c_s11_runtime_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs12/_p_k_c_s12_key_store.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs12/_p_k_c_s12_key_store.java.i
index 02533c9..cff32ed 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/pkcs12/_p_k_c_s12_key_store.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/pkcs12/_p_k_c_s12_key_store.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_d_s_a_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_d_s_a_key_factory.java.i
index e3692bd..beec835 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_d_s_a_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_d_s_a_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_d_s_a_parameters.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_d_s_a_parameters.java.i
index 1d817d9..a80e930 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_d_s_a_parameters.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_d_s_a_parameters.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_java_key_store.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_java_key_store.java.i
index 82a1156..73f0529 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_java_key_store.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_java_key_store.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_m_d4.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_m_d4.java.i
index 859594e..8fa8e98 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_m_d4.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_m_d4.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_policy_file.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_policy_file.java.i
index d330b79..3d13bbd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_policy_file.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_policy_file.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_secure_random.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_secure_random.java.i
index 2305985..76d906f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_secure_random.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_secure_random.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_seed_generator.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_seed_generator.java.i
index 5b6cfcb..ce68d0e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/_seed_generator.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/_seed_generator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_adaptable_x509_cert_selector.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_adaptable_x509_cert_selector.java.i
index 1e72a0e..213c142 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_adaptable_x509_cert_selector.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_adaptable_x509_cert_selector.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_builder.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_builder.java.i
index 03985e6..4c07324 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_builder.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_builder.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_crl_revocation_checker.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_crl_revocation_checker.java.i
index 298055a..f517969 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_crl_revocation_checker.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_crl_revocation_checker.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_distribution_point_fetcher.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_distribution_point_fetcher.java.i
index eafd501..fec9422 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_distribution_point_fetcher.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_distribution_point_fetcher.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_forward_builder.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_forward_builder.java.i
index 5502576..227e386 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_forward_builder.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_forward_builder.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_forward_state.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_forward_state.java.i
index 45cba21..45b0384 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_forward_state.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_forward_state.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_indexed_collection_cert_store.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_indexed_collection_cert_store.java.i
index d4058ec..f33e033 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_indexed_collection_cert_store.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_indexed_collection_cert_store.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_o_c_s_p.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_o_c_s_p.java.i
index f6ac86c..427e084 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_o_c_s_p.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_o_c_s_p.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_o_c_s_p_checker.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_o_c_s_p_checker.java.i
index ea0c87c..79a6810 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_o_c_s_p_checker.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_o_c_s_p_checker.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_o_c_s_p_response.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_o_c_s_p_response.java.i
index dc34e5f..71c4779 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_o_c_s_p_response.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_o_c_s_p_response.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_p_k_i_x_cert_path_validator.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_p_k_i_x_cert_path_validator.java.i
index db26972..f131cbb 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_p_k_i_x_cert_path_validator.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_p_k_i_x_cert_path_validator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_policy_checker.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_policy_checker.java.i
index 01d2257..8ebe7fe 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_policy_checker.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_policy_checker.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_reverse_state.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_reverse_state.java.i
index 5ec346e..c8822ac 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_reverse_state.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_reverse_state.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_u_r_i_cert_store.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_u_r_i_cert_store.java.i
index e72b2ff..7a1d668 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_u_r_i_cert_store.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_u_r_i_cert_store.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_vertex.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_vertex.java.i
index d793202..a0bc639 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_vertex.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_vertex.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_x509_cert_path.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_x509_cert_path.java.i
index c5a9fb9..518af5a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_x509_cert_path.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/_x509_cert_path.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/ldap/_l_d_a_p_cert_store.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/ldap/_l_d_a_p_cert_store.java.i
index 55e0b47..888d25e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/ldap/_l_d_a_p_cert_store.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/provider/certpath/ldap/_l_d_a_p_cert_store.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/rsa/_r_s_a_key_factory.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/rsa/_r_s_a_key_factory.java.i
index 2e8b6de..d533d4d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/rsa/_r_s_a_key_factory.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/rsa/_r_s_a_key_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/rsa/_r_s_a_signature.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/rsa/_r_s_a_signature.java.i
index ca404ae..0ed6bea 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/rsa/_r_s_a_signature.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/rsa/_r_s_a_signature.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_cipher_suite.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_cipher_suite.java.i
index 8638d96..aaec72c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_cipher_suite.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_cipher_suite.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_handshake_message.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_handshake_message.java.i
index d4a19fe..2378232 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_handshake_message.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_handshake_message.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_handshaker.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_handshaker.java.i
index 5a39b6a..8fa8ffc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_handshaker.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_handshaker.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_jsse_jce.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_jsse_jce.java.i
index 1bbaf23..8f5f810 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_jsse_jce.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_jsse_jce.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_s_s_l_engine_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_s_s_l_engine_impl.java.i
index 846ef09..225248a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_s_s_l_engine_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_s_s_l_engine_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_s_s_l_session_context_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_s_s_l_session_context_impl.java.i
index cfb35a7..d0f092e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_s_s_l_session_context_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_s_s_l_session_context_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_s_s_l_socket_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_s_s_l_socket_impl.java.i
index 3ebf4ce..5688acf 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_s_s_l_socket_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_s_s_l_socket_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_sun_x509_key_manager_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_sun_x509_key_manager_impl.java.i
index 1829f95..ea5b696 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_sun_x509_key_manager_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_sun_x509_key_manager_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_x509_key_manager_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_x509_key_manager_impl.java.i
index 5472a80..5298f08 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_x509_key_manager_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/ssl/_x509_key_manager_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/timestamp/_http_timestamper.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/timestamp/_http_timestamper.java.i
index 750e54b..6ed8f83 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/timestamp/_http_timestamper.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/timestamp/_http_timestamper.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/timestamp/_t_s_response.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/timestamp/_t_s_response.java.i
index 56970c4..a30e363 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/timestamp/_t_s_response.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/timestamp/_t_s_response.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/tools/_jar_signer.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/tools/_jar_signer.java.i
index 1288d01..99dd28b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/tools/_jar_signer.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/tools/_jar_signer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/tools/_key_store_util.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/tools/_key_store_util.java.i
index 93f06c8..44edbd6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/tools/_key_store_util.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/tools/_key_store_util.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/tools/_key_tool.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/tools/_key_tool.java.i
index 97f04ab..68937a9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/tools/_key_tool.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/tools/_key_tool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/tools/_timestamped_signer.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/tools/_timestamped_signer.java.i
index 6f3dfe6..16f7800 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/tools/_timestamped_signer.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/tools/_timestamped_signer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/tools/policytool/_policy_tool.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/tools/policytool/_policy_tool.java.i
index a548dfc..b931e23 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/tools/policytool/_policy_tool.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/tools/policytool/_policy_tool.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/util/_cache.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/util/_cache.java.i
index d117617..ba31eba 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/util/_cache.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/util/_cache.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/util/_hostname_checker.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/util/_hostname_checker.java.i
index 00c7336..fd81ec6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/util/_hostname_checker.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/util/_hostname_checker.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/util/_manifest_digester.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/util/_manifest_digester.java.i
index 19e0bdc..2daa225 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/util/_manifest_digester.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/util/_manifest_digester.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/util/_password.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/util/_password.java.i
index e6186d9..d2fb547 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/util/_password.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/util/_password.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/util/_security_constants.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/util/_security_constants.java.i
index 7a78ef6..e6f4900 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/util/_security_constants.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/util/_security_constants.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/util/_signature_file_verifier.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/util/_signature_file_verifier.java.i
index 5075912..3307c34 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/util/_signature_file_verifier.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/util/_signature_file_verifier.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/validator/_simple_validator.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/validator/_simple_validator.java.i
index 34f3f40..61248b5 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/validator/_simple_validator.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/validator/_simple_validator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_a_v_a.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_a_v_a.java.i
index 073b9f9..ad35b1f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_a_v_a.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_a_v_a.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_access_description.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_access_description.java.i
index 9b5f520..7a2579b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_access_description.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_access_description.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_algorithm_id.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_algorithm_id.java.i
index 5857d68..329b572 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_algorithm_id.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_algorithm_id.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_authority_info_access_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_authority_info_access_extension.java.i
index 095753a..b2901cc 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_authority_info_access_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_authority_info_access_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_distribution_points_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_distribution_points_extension.java.i
index 8d8cd42..e1eb678 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_distribution_points_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_distribution_points_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_extensions.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_extensions.java.i
index 38451a5..1d8ae42 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_extensions.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_extensions.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_number_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_number_extension.java.i
index 46f8749..070e915 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_number_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_number_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_reason_code_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_reason_code_extension.java.i
index 8461cb4..6c7b1e3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_reason_code_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_c_r_l_reason_code_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_cert_and_key_gen.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_cert_and_key_gen.java.i
index 84b4dc3..ca6d8aa 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_cert_and_key_gen.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_cert_and_key_gen.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_algorithm_id.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_algorithm_id.java.i
index 2c653e2..b628b3f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_algorithm_id.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_algorithm_id.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_extensions.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_extensions.java.i
index 2784a3f..66521a8 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_extensions.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_extensions.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_issuer_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_issuer_extension.java.i
index 41575da..95c7bb0 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_issuer_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_issuer_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_issuer_unique_identity.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_issuer_unique_identity.java.i
index 63a2a45..4b9bc23 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_issuer_unique_identity.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_issuer_unique_identity.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_policies_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_policies_extension.java.i
index 3237e5f..4557a91 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_policies_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_policies_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_policy_id.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_policy_id.java.i
index 6ccb7c4..78d88bd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_policy_id.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_policy_id.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_serial_number.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_serial_number.java.i
index 326f1a4..352b4df 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_serial_number.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_serial_number.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_subject_unique_identity.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_subject_unique_identity.java.i
index 26e0081..51308b1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_subject_unique_identity.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_subject_unique_identity.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_validity.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_validity.java.i
index 8369aa8..06b5009 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_validity.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_validity.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_version.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_version.java.i
index 1de7353..a6e93bb 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_version.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_version.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_x509_key.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_x509_key.java.i
index 49e89b2..1313924 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_x509_key.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_certificate_x509_key.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_d_n_s_name.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_d_n_s_name.java.i
index 2132379..43f4358 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_d_n_s_name.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_d_n_s_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_extended_key_usage_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_extended_key_usage_extension.java.i
index f4e7c1d..401c6a4 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_extended_key_usage_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_extended_key_usage_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_extension.java.i
index 8a633b3..32d76d3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_inhibit_any_policy_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_inhibit_any_policy_extension.java.i
index 6e8ef1d..6a7d72a 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_inhibit_any_policy_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_inhibit_any_policy_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_invalidity_date_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_invalidity_date_extension.java.i
index b65c083..79d5cc7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_invalidity_date_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_invalidity_date_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_issuer_alternative_name_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_issuer_alternative_name_extension.java.i
index 6486b11..717dde2 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_issuer_alternative_name_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_issuer_alternative_name_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_key_usage_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_key_usage_extension.java.i
index 5b77b08..d0ff919 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_key_usage_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_key_usage_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_name_constraints_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_name_constraints_extension.java.i
index 1fb25c5..5824585 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_name_constraints_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_name_constraints_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_netscape_cert_type_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_netscape_cert_type_extension.java.i
index c01c3db..b9759c9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_netscape_cert_type_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_netscape_cert_type_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_o_i_d_map.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_o_i_d_map.java.i
index bf033b4..02a6c61 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_o_i_d_map.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_o_i_d_map.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_o_i_d_name.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_o_i_d_name.java.i
index 0f99ce3..79c0c2e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_o_i_d_name.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_o_i_d_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_other_name.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_other_name.java.i
index 4e161d8..cae4284 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_other_name.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_other_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_policy_constraints_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_policy_constraints_extension.java.i
index f273bf7..1a1e973 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_policy_constraints_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_policy_constraints_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_policy_information.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_policy_information.java.i
index 6da2747..7e91227 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_policy_information.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_policy_information.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_policy_mappings_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_policy_mappings_extension.java.i
index b066e15..88225c7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_policy_mappings_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_policy_mappings_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_private_key_usage_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_private_key_usage_extension.java.i
index bb455f6..8827626 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_private_key_usage_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_private_key_usage_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_r_d_n.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_r_d_n.java.i
index 2b8c424..eeabbef 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_r_d_n.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_r_d_n.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_r_f_c822_name.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_r_f_c822_name.java.i
index 1a69013..021edee 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_r_f_c822_name.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_r_f_c822_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_subject_alternative_name_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_subject_alternative_name_extension.java.i
index b80305c..a4628c7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_subject_alternative_name_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_subject_alternative_name_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_subject_info_access_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_subject_info_access_extension.java.i
index 9ff60ed..0c2d03d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_subject_info_access_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_subject_info_access_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_subject_key_identifier_extension.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_subject_key_identifier_extension.java.i
index 36264e8..e68c096 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_subject_key_identifier_extension.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_subject_key_identifier_extension.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x500_name.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x500_name.java.i
index ed9679d..97f27ae 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x500_name.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x500_name.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_c_r_l_entry_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_c_r_l_entry_impl.java.i
index 3da2da3..63cb9d1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_c_r_l_entry_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_c_r_l_entry_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_c_r_l_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_c_r_l_impl.java.i
index 9338bb1..ce19d42 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_c_r_l_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_c_r_l_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_cert_impl.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_cert_impl.java.i
index 9d4ee11..2590766 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_cert_impl.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_cert_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_cert_info.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_cert_info.java.i
index f421f00..09df41d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_cert_info.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_cert_info.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_key.java.i b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_key.java.i
index adb48f1..3569cae 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_key.java.i and b/jdk/.hg/store/data/src/share/classes/sun/security/x509/_x509_key.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/swing/_file_pane.java.i b/jdk/.hg/store/data/src/share/classes/sun/swing/_file_pane.java.i
index 93eaed1..6195a16 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/swing/_file_pane.java.i and b/jdk/.hg/store/data/src/share/classes/sun/swing/_file_pane.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/swing/_printing_status.java.i b/jdk/.hg/store/data/src/share/classes/sun/swing/_printing_status.java.i
index f58dae7..2daa046 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/swing/_printing_status.java.i and b/jdk/.hg/store/data/src/share/classes/sun/swing/_printing_status.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/text/_compact_byte_array.java.i b/jdk/.hg/store/data/src/share/classes/sun/text/_compact_byte_array.java.i
index faae8f4..70d90b6 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/text/_compact_byte_array.java.i and b/jdk/.hg/store/data/src/share/classes/sun/text/_compact_byte_array.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/text/normalizer/_normalizer_base.java.i b/jdk/.hg/store/data/src/share/classes/sun/text/normalizer/_normalizer_base.java.i
index 1a4ac80..08ef004 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/text/normalizer/_normalizer_base.java.i and b/jdk/.hg/store/data/src/share/classes/sun/text/normalizer/_normalizer_base.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/tools/attach/_hot_spot_attach_provider.java.i b/jdk/.hg/store/data/src/share/classes/sun/tools/attach/_hot_spot_attach_provider.java.i
index 2b1185c..f3db0d1 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/tools/attach/_hot_spot_attach_provider.java.i and b/jdk/.hg/store/data/src/share/classes/sun/tools/attach/_hot_spot_attach_provider.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/tools/attach/_hot_spot_virtual_machine.java.i b/jdk/.hg/store/data/src/share/classes/sun/tools/attach/_hot_spot_virtual_machine.java.i
index f3d1f97..c6ec3cd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/tools/attach/_hot_spot_virtual_machine.java.i and b/jdk/.hg/store/data/src/share/classes/sun/tools/attach/_hot_spot_virtual_machine.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/tools/jconsole/_local_virtual_machine.java.i b/jdk/.hg/store/data/src/share/classes/sun/tools/jconsole/_local_virtual_machine.java.i
index 2a53fbf..270c9b7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/tools/jconsole/_local_virtual_machine.java.i and b/jdk/.hg/store/data/src/share/classes/sun/tools/jconsole/_local_virtual_machine.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/tools/jconsole/_proxy_client.java.i b/jdk/.hg/store/data/src/share/classes/sun/tools/jconsole/_proxy_client.java.i
index c05e0b0..18badd9 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/tools/jconsole/_proxy_client.java.i and b/jdk/.hg/store/data/src/share/classes/sun/tools/jconsole/_proxy_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/tools/tree/_node.java.i b/jdk/.hg/store/data/src/share/classes/sun/tools/tree/_node.java.i
index 3f6f299..8293c72 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/tools/tree/_node.java.i and b/jdk/.hg/store/data/src/share/classes/sun/tools/tree/_node.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/tracing/dtrace/_d_trace_provider.java.i b/jdk/.hg/store/data/src/share/classes/sun/tracing/dtrace/_d_trace_provider.java.i
index b034126..80d1247 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/tracing/dtrace/_d_trace_provider.java.i and b/jdk/.hg/store/data/src/share/classes/sun/tracing/dtrace/_d_trace_provider.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/calendar/_calendar_date.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/calendar/_calendar_date.java.i
index 21922fc..7055e1c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/calendar/_calendar_date.java.i and b/jdk/.hg/store/data/src/share/classes/sun/util/calendar/_calendar_date.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names.properties.i
index 864657d..3113f7b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names.properties.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__de.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__de.properties.i
index cc47993..41fdc0c 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__de.properties.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__de.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__es.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__es.properties.i
index af4df26..89dc18f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__es.properties.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__es.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__es___c_u.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__es___c_u.properties.i
new file mode 100644
index 0000000..423a550
Binary files /dev/null and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__es___c_u.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__et___e_e.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__et___e_e.properties.i
index ce3badf..6f23e09 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__et___e_e.properties.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__et___e_e.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__fr.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__fr.properties.i
index 39ad39a..724feda 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__fr.properties.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__fr.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__ja.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__ja.properties.i
index 3177632..eca4a1f 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__ja.properties.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__ja.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__ko.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__ko.properties.i
index 83ad2cc..de65190 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__ko.properties.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__ko.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__pt.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__pt.properties.i
index f319acf..1944bb7 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__pt.properties.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__pt.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__sk___s_k.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__sk___s_k.properties.i
index 9483a91..aa72d54 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__sk___s_k.properties.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__sk___s_k.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__zh___c_n.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__zh___c_n.properties.i
index 27ee08b..665f60e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__zh___c_n.properties.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__zh___c_n.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__zh___t_w.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__zh___t_w.properties.i
index 414eed1..802f686 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__zh___t_w.properties.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_currency_names__zh___t_w.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_locale_names.properties.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_locale_names.properties.i
index b79b673..1399574 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_locale_names.properties.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_locale_names.properties.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names.java.i
index 9736171..9cc466d 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names.java.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__de.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__de.java.i
index 94f90a2..ad49fdd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__de.java.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__de.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__es.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__es.java.i
index dd58696..bb93107 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__es.java.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__es.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__fr.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__fr.java.i
index a8dbd56..08cf064 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__fr.java.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__fr.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__it.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__it.java.i
index 16b8959..5aabc1b 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__it.java.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__it.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__ja.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__ja.java.i
index 1619df2..7e78cfd 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__ja.java.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__ja.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__ko.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__ko.java.i
index 730a98d..3645baa 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__ko.java.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__ko.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__pt___b_r.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__pt___b_r.java.i
index 011c8e1..227698e 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__pt___b_r.java.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__pt___b_r.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__sv.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__sv.java.i
index 58cc1ca..6a92ab8 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__sv.java.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__sv.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__zh___c_n.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__zh___c_n.java.i
index 724d221..cef4aa3 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__zh___c_n.java.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__zh___c_n.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__zh___t_w.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__zh___t_w.java.i
index 3f55453..cd47725 100644
Binary files a/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__zh___t_w.java.i and b/jdk/.hg/store/data/src/share/classes/sun/util/resources/_time_zone_names__zh___t_w.java.i differ
diff --git a/jdk/.hg/store/data/src/share/classes/sun/util/xml/_x_m_l_utils.java.i b/jdk/.hg/store/data/src/share/classes/sun/util/xml/_x_m_l_utils.java.i
new file mode 100644
index 0000000..2f402fc
Binary files /dev/null and b/jdk/.hg/store/data/src/share/classes/sun/util/xml/_x_m_l_utils.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/_r_e_a_d_m_e.i b/jdk/.hg/store/data/src/share/demo/_r_e_a_d_m_e.i
new file mode 100644
index 0000000..4ea1885
Binary files /dev/null and b/jdk/.hg/store/data/src/share/demo/_r_e_a_d_m_e.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_arc_test/_arc_test.java.i b/jdk/.hg/store/data/src/share/demo/applets/_arc_test/_arc_test.java.i
index 0c53eca..4c607fb 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_arc_test/_arc_test.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_arc_test/_arc_test.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_bar_chart/_bar_chart.java.i b/jdk/.hg/store/data/src/share/demo/applets/_bar_chart/_bar_chart.java.i
index 5cb0e5f..5302bdd 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_bar_chart/_bar_chart.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_bar_chart/_bar_chart.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_blink/_blink.java.i b/jdk/.hg/store/data/src/share/demo/applets/_blink/_blink.java.i
index 68dbf80..9ae9e30 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_blink/_blink.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_blink/_blink.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_card_test/_card_test.java.i b/jdk/.hg/store/data/src/share/demo/applets/_card_test/_card_test.java.i
index b98d330..14f8b90 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_card_test/_card_test.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_card_test/_card_test.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_clock/_clock.java.i b/jdk/.hg/store/data/src/share/demo/applets/_clock/_clock.java.i
index 13e905b..e255e04 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_clock/_clock.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_clock/_clock.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_dither_test/_dither_test.java.i b/jdk/.hg/store/data/src/share/demo/applets/_dither_test/_dither_test.java.i
index 88f4bd3..79c6bc1 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_dither_test/_dither_test.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_dither_test/_dither_test.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_draw_test/_draw_test.java.i b/jdk/.hg/store/data/src/share/demo/applets/_draw_test/_draw_test.java.i
index 13c7914..4fb8fb6 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_draw_test/_draw_test.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_draw_test/_draw_test.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_fractal/_c_l_s_fractal.java.i b/jdk/.hg/store/data/src/share/demo/applets/_fractal/_c_l_s_fractal.java.i
index 06f4327..64c9a4f 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_fractal/_c_l_s_fractal.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_fractal/_c_l_s_fractal.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_graphics_test/_applet_frame.java.i b/jdk/.hg/store/data/src/share/demo/applets/_graphics_test/_applet_frame.java.i
index 2dbbbf2..472eb11 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_graphics_test/_applet_frame.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_graphics_test/_applet_frame.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_graphics_test/_graphics_test.java.i b/jdk/.hg/store/data/src/share/demo/applets/_graphics_test/_graphics_test.java.i
index 685fcb9..de7c497 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_graphics_test/_graphics_test.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_graphics_test/_graphics_test.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_molecule_viewer/_matrix3_d.java.i b/jdk/.hg/store/data/src/share/demo/applets/_molecule_viewer/_matrix3_d.java.i
index 8e89a0a..3c25146 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_molecule_viewer/_matrix3_d.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_molecule_viewer/_matrix3_d.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_molecule_viewer/_x_y_z_app.java.i b/jdk/.hg/store/data/src/share/demo/applets/_molecule_viewer/_x_y_z_app.java.i
index 6ae0caf..4e0f543 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_molecule_viewer/_x_y_z_app.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_molecule_viewer/_x_y_z_app.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_nervous_text/_nervous_text.java.i b/jdk/.hg/store/data/src/share/demo/applets/_nervous_text/_nervous_text.java.i
index 290a1af..4f2107e 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_nervous_text/_nervous_text.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_nervous_text/_nervous_text.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_simple_graph/_graph_applet.java.i b/jdk/.hg/store/data/src/share/demo/applets/_simple_graph/_graph_applet.java.i
index 9c2da46..0aee6d8 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_simple_graph/_graph_applet.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_simple_graph/_graph_applet.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_bidir_bubble_sort_algorithm.java.i b/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_bidir_bubble_sort_algorithm.java.i
index a0cf0d7..d6d16d9 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_bidir_bubble_sort_algorithm.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_bidir_bubble_sort_algorithm.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_bubble_sort_algorithm.java.i b/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_bubble_sort_algorithm.java.i
index df01e86..d051872 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_bubble_sort_algorithm.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_bubble_sort_algorithm.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_q_sort_algorithm.java.i b/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_q_sort_algorithm.java.i
index b73eebe..7686bb6 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_q_sort_algorithm.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_q_sort_algorithm.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_sort_algorithm.java.i b/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_sort_algorithm.java.i
index 6fb903c..7973854 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_sort_algorithm.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_sort_algorithm.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_sort_item.java.i b/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_sort_item.java.i
index 096c325..078ae71 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_sort_item.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_sort_demo/_sort_item.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_spread_sheet/_spread_sheet.java.i b/jdk/.hg/store/data/src/share/demo/applets/_spread_sheet/_spread_sheet.java.i
index b56d2d9..5347bfb 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_spread_sheet/_spread_sheet.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_spread_sheet/_spread_sheet.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_wire_frame/_matrix3_d.java.i b/jdk/.hg/store/data/src/share/demo/applets/_wire_frame/_matrix3_d.java.i
index 1450f7e..74c90c8 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_wire_frame/_matrix3_d.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_wire_frame/_matrix3_d.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/applets/_wire_frame/_three_d.java.i b/jdk/.hg/store/data/src/share/demo/applets/_wire_frame/_three_d.java.i
index adeace1..16bfe33 100644
Binary files a/jdk/.hg/store/data/src/share/demo/applets/_wire_frame/_three_d.java.i and b/jdk/.hg/store/data/src/share/demo/applets/_wire_frame/_three_d.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_destinations.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_destinations.java.i
index aa3219e..9eda660 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_destinations.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_destinations.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_group.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_group.java.i
index 640f09e..a2c0e14 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_group.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_group.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_j2_d_bench.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_j2_d_bench.java.i
index a8ad575..4d17587 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_j2_d_bench.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_j2_d_bench.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_modifier.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_modifier.java.i
index b30be76..b1faabf 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_modifier.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_modifier.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_node.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_node.java.i
index 5ce7970..5765458 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_node.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_node.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_option.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_option.java.i
index 56e5136..0080773 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_option.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_option.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_result.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_result.java.i
index 29b89f1..46f3c55 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_result.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_result.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_result_set.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_result_set.java.i
index b3b61fd..5ee4b96 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_result_set.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_result_set.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_test.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_test.java.i
index 109844d..30b8890 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_test.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_test.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_test_environment.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_test_environment.java.i
index a321bb9..59465c0 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_test_environment.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/_test_environment.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_h_t_m_l_series_reporter.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_h_t_m_l_series_reporter.java.i
index 6bddb7b..482c482 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_h_t_m_l_series_reporter.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_h_t_m_l_series_reporter.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_i_i_o_comparator.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_i_i_o_comparator.java.i
index defd3c1..7ca6ef9 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_i_i_o_comparator.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_i_i_o_comparator.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_j2_d_analyzer.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_j2_d_analyzer.java.i
index ef325fe..13866bb 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_j2_d_analyzer.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_j2_d_analyzer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_x_m_l_h_t_m_l_reporter.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_x_m_l_h_t_m_l_reporter.java.i
index dbf9693..1eef794 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_x_m_l_h_t_m_l_reporter.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/report/_x_m_l_h_t_m_l_reporter.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_graphics_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_graphics_tests.java.i
index d4a1745..c43c331 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_graphics_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_graphics_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_image_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_image_tests.java.i
index 5d61fe6..cc2504f 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_image_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_image_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_misc_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_misc_tests.java.i
index d2c5b13..bf9fcac 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_misc_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_misc_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_pixel_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_pixel_tests.java.i
index 84647d8..821e901 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_pixel_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_pixel_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_render_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_render_tests.java.i
index 593bbde..d3205ea 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_render_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/_render_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_i_i_o_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_i_i_o_tests.java.i
index 652cf5c..abd88af 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_i_i_o_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_i_i_o_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_input_image_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_input_image_tests.java.i
index 89bfcf8..6069a3f 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_input_image_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_input_image_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_input_stream_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_input_stream_tests.java.i
index a56eda4..8e693ca 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_input_stream_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_input_stream_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_input_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_input_tests.java.i
index 986321a..7a52800 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_input_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_input_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_output_image_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_output_image_tests.java.i
index d09278d..ae94d3f 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_output_image_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_output_image_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_output_stream_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_output_stream_tests.java.i
index 631c9db..a2803ac 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_output_stream_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_output_stream_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_output_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_output_tests.java.i
index a6ca352..c302f17 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_output_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/iio/_output_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_construction_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_construction_tests.java.i
index 8026a29..3741701 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_construction_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_construction_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_measure_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_measure_tests.java.i
index 9e1f5d6..1472293 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_measure_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_measure_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_render_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_render_tests.java.i
index c6a5208..f5b8466 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_render_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_render_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_tests.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_tests.java.i
index 28568f4..c57add1 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_tests.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/tests/text/_text_tests.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/ui/_compact_layout.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/ui/_compact_layout.java.i
index a1bc353..324e909 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/ui/_compact_layout.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/ui/_compact_layout.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/ui/_enable_button.java.i b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/ui/_enable_button.java.i
index 569debe..bad112a 100644
Binary files a/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/ui/_enable_button.java.i and b/jdk/.hg/store/data/src/share/demo/java2d/_j2_d_bench/src/j2dbench/ui/_enable_button.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_code_point_i_m/_code_point_i_m.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_code_point_i_m/_code_point_i_m.java.i
index 73d47a0..245f3a1 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_code_point_i_m/_code_point_i_m.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_code_point_i_m/_code_point_i_m.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_code_point_i_m/_code_point_input_method.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_code_point_i_m/_code_point_input_method.java.i
index 1a05169..99a86b5 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_code_point_i_m/_code_point_input_method.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_code_point_i_m/_code_point_input_method.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_code_point_i_m/_code_point_input_method_descriptor.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_code_point_i_m/_code_point_input_method_descriptor.java.i
index 6948f15..c620c1a 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_code_point_i_m/_code_point_input_method_descriptor.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_code_point_i_m/_code_point_input_method_descriptor.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_file_chooser_demo/_example_file_system_view.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_file_chooser_demo/_example_file_system_view.java.i
index 919c1bc..d96384c 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_file_chooser_demo/_example_file_system_view.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_file_chooser_demo/_example_file_system_view.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_file_chooser_demo/_example_file_view.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_file_chooser_demo/_example_file_view.java.i
index 2ec9a6b..908f39d 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_file_chooser_demo/_example_file_view.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_file_chooser_demo/_example_file_view.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_file_chooser_demo/_file_chooser_demo.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_file_chooser_demo/_file_chooser_demo.java.i
index b7c7050..02d3c95 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_file_chooser_demo/_file_chooser_demo.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_file_chooser_demo/_file_chooser_demo.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_font2_d_test.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_font2_d_test.java.i
index f6b4256..8924417 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_font2_d_test.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_font2_d_test.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_font2_d_test_applet.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_font2_d_test_applet.java.i
index 3ad5a67..cdc615b 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_font2_d_test_applet.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_font2_d_test_applet.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_font_panel.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_font_panel.java.i
index e4c1f86..742b38e 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_font_panel.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_font_panel.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_range_menu.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_range_menu.java.i
index 646974e..f247fb2 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_range_menu.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_font2_d_test/_range_menu.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_aqua_metal_theme.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_aqua_metal_theme.java.i
index b711a5b..a02a564 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_aqua_metal_theme.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_aqua_metal_theme.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_big_contrast_metal_theme.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_big_contrast_metal_theme.java.i
index df42bb6..fbf4d5b 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_big_contrast_metal_theme.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_big_contrast_metal_theme.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_contrast_metal_theme.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_contrast_metal_theme.java.i
index 5327ad0..afbc5b4 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_contrast_metal_theme.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_contrast_metal_theme.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_demo_metal_theme.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_demo_metal_theme.java.i
index 7c5be13..1c251c7 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_demo_metal_theme.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_demo_metal_theme.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_green_metal_theme.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_green_metal_theme.java.i
index 2d45e47..122541b 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_green_metal_theme.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_green_metal_theme.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_khaki_metal_theme.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_khaki_metal_theme.java.i
index 187b8e1..b3663bb 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_khaki_metal_theme.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_khaki_metal_theme.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metal_theme_menu.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metal_theme_menu.java.i
index 58dd32a..e08e4dc 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metal_theme_menu.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metal_theme_menu.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks.java.i
index a43e6ef..3fe8f26 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_document_frame.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_document_frame.java.i
index 1c396fa..489108a 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_document_frame.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_document_frame.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_frame.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_frame.java.i
index a527fdc..ae05716 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_frame.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_frame.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_help.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_help.java.i
index 2ab1724..b66aa2b 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_help.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_help.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_in_box.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_in_box.java.i
index 259bd4a..3fba00e 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_in_box.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_in_box.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_prefs.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_prefs.java.i
index 6c592f9..01a8de8 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_prefs.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_metalworks_prefs.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_properties_metal_theme.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_properties_metal_theme.java.i
index 3374ce7..f99dd29 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_properties_metal_theme.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_properties_metal_theme.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_u_i_switch_listener.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_u_i_switch_listener.java.i
index 32ca0b9..a3b319a 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_u_i_switch_listener.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_metalworks/_u_i_switch_listener.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_notepad/_element_tree_panel.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_notepad/_element_tree_panel.java.i
index a2278ea..0386489 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_notepad/_element_tree_panel.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_notepad/_element_tree_panel.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_notepad/_notepad.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_notepad/_notepad.java.i
index e8acbd9..f086f34 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_notepad/_notepad.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_notepad/_notepad.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_dynamic_tree_node.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_dynamic_tree_node.java.i
index 31aa056..4f97359 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_dynamic_tree_node.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_dynamic_tree_node.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_data.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_data.java.i
index 3bd7aa5..9b47a64 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_data.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_data.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_tree.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_tree.java.i
index 845c0c1..63720e9 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_tree.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_tree.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_tree_cell_renderer.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_tree_cell_renderer.java.i
index 39f16f3..a402563 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_tree_cell_renderer.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_tree_cell_renderer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_tree_model.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_tree_model.java.i
index dca74b9..ee23e99 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_tree_model.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_sample_tree/_sample_tree_model.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_swing_applet/_swing_applet.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_swing_applet/_swing_applet.java.i
index bb56ecc..3edd6c7 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_swing_applet/_swing_applet.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_swing_applet/_swing_applet.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_j_d_b_c_adapter.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_j_d_b_c_adapter.java.i
index fd6bc78..75a1210 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_j_d_b_c_adapter.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_j_d_b_c_adapter.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_old_j_table.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_old_j_table.java.i
index eceef1a..149fc73 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_old_j_table.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_old_j_table.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example.java.i
index c33356e..4bf0349 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example2.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example2.java.i
index b13a3b8..df1dab1 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example2.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example2.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example3.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example3.java.i
index c0980cb..be200ab 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example3.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example3.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example4.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example4.java.i
index a6ccb56..131aae2 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example4.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_example4.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_map.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_map.java.i
index ec24aae..7ff9061 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_map.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_map.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_sorter.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_sorter.java.i
index a02af46..022b8b1 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_sorter.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_table_example/_table_sorter.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jfc/_transparent_ruler/transparentruler/_ruler.java.i b/jdk/.hg/store/data/src/share/demo/jfc/_transparent_ruler/transparentruler/_ruler.java.i
index 140fcad..3251211 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jfc/_transparent_ruler/transparentruler/_ruler.java.i and b/jdk/.hg/store/data/src/share/demo/jfc/_transparent_ruler/transparentruler/_ruler.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/agent__util/agent__util.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/agent__util/agent__util.c.i
index 752e264..d3614df 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/agent__util/agent__util.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/agent__util/agent__util.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/agent__util/agent__util.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/agent__util/agent__util.h.i
index 18969b7..ceae791 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/agent__util/agent__util.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/agent__util/agent__util.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/compiled_method_load/compiled_method_load.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/compiled_method_load/compiled_method_load.c.i
index 7c3e6ba..c7a39f4 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/compiled_method_load/compiled_method_load.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/compiled_method_load/compiled_method_load.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/gctest/gctest.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/gctest/gctest.c.i
index a163ad5..cb6b07e 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/gctest/gctest.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/gctest/gctest.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/heap_tracker/_heap_tracker.java.i b/jdk/.hg/store/data/src/share/demo/jvmti/heap_tracker/_heap_tracker.java.i
index 4594459..a33424f 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/heap_tracker/_heap_tracker.java.i and b/jdk/.hg/store/data/src/share/demo/jvmti/heap_tracker/_heap_tracker.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/heap_tracker/heap_tracker.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/heap_tracker/heap_tracker.c.i
index 30ccce1..f6da342 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/heap_tracker/heap_tracker.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/heap_tracker/heap_tracker.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/heap_tracker/heap_tracker.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/heap_tracker/heap_tracker.h.i
index a11e444..327ef91 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/heap_tracker/heap_tracker.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/heap_tracker/heap_tracker.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/heap_viewer/heap_viewer.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/heap_viewer/heap_viewer.c.i
index 5ec7d96..a5a44fe 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/heap_viewer/heap_viewer.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/heap_viewer/heap_viewer.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/debug__malloc.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/debug__malloc.c.i
index 0218008..63c2d71 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/debug__malloc.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/debug__malloc.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/debug__malloc.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/debug__malloc.h.i
index 0857702..a6847bf 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/debug__malloc.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/debug__malloc.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof.h.i
index 87a4fa6..40f9277 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__blocks.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__blocks.c.i
index 705cc37..d2a2c0e 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__blocks.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__blocks.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__blocks.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__blocks.h.i
index e885b65..3aa5d4b 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__blocks.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__blocks.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__check.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__check.c.i
index c4d2485..15695f0 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__check.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__check.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__check.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__check.h.i
index 2c19e57..c2ad0dc 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__check.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__check.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__class.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__class.c.i
index f53a549..757ea20 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__class.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__class.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__class.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__class.h.i
index a155ebd..bc02e98 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__class.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__class.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__cpu.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__cpu.c.i
index 1c86162..09b0431 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__cpu.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__cpu.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__cpu.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__cpu.h.i
index 52712d3..745c14d 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__cpu.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__cpu.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__error.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__error.c.i
index ba0ce21..6faacd9 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__error.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__error.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__error.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__error.h.i
index ea93a39..131b6d2 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__error.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__error.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__event.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__event.c.i
index bd1be90..ce95f5e 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__event.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__event.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__event.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__event.h.i
index 04f58ba..b8207d4 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__event.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__event.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__frame.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__frame.c.i
index 028a8d9..029e8f3 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__frame.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__frame.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__frame.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__frame.h.i
index 7fe4fe5..1a1c70a 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__frame.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__frame.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__init.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__init.c.i
index 22e614f..7633dcc 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__init.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__init.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__init.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__init.h.i
index 0dcb39f..7abf142 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__init.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__init.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__io.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__io.c.i
index 547754a..28664b6 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__io.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__io.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__io.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__io.h.i
index 3f264ba..06ce8bc 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__io.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__io.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__ioname.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__ioname.c.i
index 1be9059..52088d3 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__ioname.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__ioname.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__ioname.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__ioname.h.i
index c235a80..e4a7009 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__ioname.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__ioname.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__listener.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__listener.c.i
index c1534af..aadc823 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__listener.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__listener.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__listener.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__listener.h.i
index 62ffde2..b6ecc26 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__listener.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__listener.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__loader.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__loader.c.i
index c4ce441..8435b07 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__loader.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__loader.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__loader.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__loader.h.i
index 75397cd..ec06eba 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__loader.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__loader.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__md.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__md.h.i
index 6e7531f..147e1fe 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__md.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__md.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__monitor.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__monitor.c.i
index c51e500..02dd496 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__monitor.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__monitor.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__monitor.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__monitor.h.i
index 170e579..0cb7b31 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__monitor.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__monitor.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__object.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__object.c.i
index fbecd46..49eea7c 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__object.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__object.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__object.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__object.h.i
index 30a4343..ad464ca 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__object.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__object.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__reference.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__reference.c.i
index e1ffeaa..4a3f654 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__reference.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__reference.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__reference.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__reference.h.i
index 5c848e7..aae6723 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__reference.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__reference.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__site.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__site.c.i
index fecb376..df14d6c 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__site.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__site.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__site.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__site.h.i
index 0cc6dc5..332e0cf 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__site.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__site.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__stack.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__stack.c.i
index 2dbf788..1817a39 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__stack.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__stack.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__stack.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__stack.h.i
index f637938..95926e3 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__stack.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__stack.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__string.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__string.c.i
index 0ecf8da..0df84f0 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__string.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__string.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__string.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__string.h.i
index 77290c6..97514bb 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__string.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__string.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__table.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__table.c.i
index 82525b4..c57d7a7 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__table.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__table.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__table.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__table.h.i
index 9b62397..e3cc1c4 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__table.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__table.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tag.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tag.c.i
index b85f756..719cba9 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tag.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tag.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tag.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tag.h.i
index 6f78684..d21309d 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tag.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tag.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tls.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tls.c.i
index 3861886..2b130cb 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tls.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tls.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tls.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tls.h.i
index 4feb44c..8e86f57 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tls.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tls.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__trace.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__trace.c.i
index 4c70d0e..4da929f 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__trace.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__trace.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__trace.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__trace.h.i
index d172a11..c51ad59 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__trace.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__trace.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tracker.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tracker.c.i
index 1c625de..fcc84cb 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tracker.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tracker.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tracker.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tracker.h.i
index ff6ec43..0bc9cb0 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tracker.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__tracker.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__util.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__util.c.i
index 9236f2c..e7d9428 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__util.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__util.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__util.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__util.h.i
index d49c0f1..084fe58 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__util.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/hprof/hprof__util.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/java__crw__demo/java__crw__demo.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/java__crw__demo/java__crw__demo.c.i
index a8ff82d..211617f 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/java__crw__demo/java__crw__demo.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/java__crw__demo/java__crw__demo.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/java__crw__demo/java__crw__demo.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/java__crw__demo/java__crw__demo.h.i
index ef3d2e8..52ff81c 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/java__crw__demo/java__crw__demo.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/java__crw__demo/java__crw__demo.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/minst/_minst.java.i b/jdk/.hg/store/data/src/share/demo/jvmti/minst/_minst.java.i
index 2b2fd2a..f938778 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/minst/_minst.java.i and b/jdk/.hg/store/data/src/share/demo/jvmti/minst/_minst.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/minst/minst.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/minst/minst.c.i
index a20d709..2fb5696 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/minst/minst.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/minst/minst.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/minst/minst.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/minst/minst.h.i
index fbedd7e..7e19cf1 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/minst/minst.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/minst/minst.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/mtrace/_mtrace.java.i b/jdk/.hg/store/data/src/share/demo/jvmti/mtrace/_mtrace.java.i
index 6842822..c404b5f 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/mtrace/_mtrace.java.i and b/jdk/.hg/store/data/src/share/demo/jvmti/mtrace/_mtrace.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/mtrace/mtrace.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/mtrace/mtrace.c.i
index b67dde3..ddf36b5 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/mtrace/mtrace.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/mtrace/mtrace.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/mtrace/mtrace.h.i b/jdk/.hg/store/data/src/share/demo/jvmti/mtrace/mtrace.h.i
index d7d9b31..9f57e5d 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/mtrace/mtrace.h.i and b/jdk/.hg/store/data/src/share/demo/jvmti/mtrace/mtrace.h.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/version_check/version_check.c.i b/jdk/.hg/store/data/src/share/demo/jvmti/version_check/version_check.c.i
index 183773a..3a0ab8f 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/version_check/version_check.c.i and b/jdk/.hg/store/data/src/share/demo/jvmti/version_check/version_check.c.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_agent.cpp.i b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_agent.cpp.i
index 105153b..324284c 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_agent.cpp.i and b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_agent.cpp.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_agent.hpp.i b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_agent.hpp.i
index c069806..582c1f8 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_agent.hpp.i and b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_agent.hpp.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_monitor.cpp.i b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_monitor.cpp.i
index 2f9d371..83fbf61 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_monitor.cpp.i and b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_monitor.cpp.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_monitor.hpp.i b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_monitor.hpp.i
index e2a9d8e..d1c3ffb 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_monitor.hpp.i and b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_monitor.hpp.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_thread.cpp.i b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_thread.cpp.i
index 4e8668a..ed99abf 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_thread.cpp.i and b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_thread.cpp.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_thread.hpp.i b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_thread.hpp.i
index 24a02b4..7891070 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_thread.hpp.i and b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/_thread.hpp.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/waiters.cpp.i b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/waiters.cpp.i
index ecb1a5c..fc53cfa 100644
Binary files a/jdk/.hg/store/data/src/share/demo/jvmti/waiters/waiters.cpp.i and b/jdk/.hg/store/data/src/share/demo/jvmti/waiters/waiters.cpp.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/management/_full_thread_dump/_deadlock.java.i b/jdk/.hg/store/data/src/share/demo/management/_full_thread_dump/_deadlock.java.i
index 8089f89..c68fc72 100644
Binary files a/jdk/.hg/store/data/src/share/demo/management/_full_thread_dump/_deadlock.java.i and b/jdk/.hg/store/data/src/share/demo/management/_full_thread_dump/_deadlock.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/management/_full_thread_dump/_full_thread_dump.java.i b/jdk/.hg/store/data/src/share/demo/management/_full_thread_dump/_full_thread_dump.java.i
index 5e0ccad..77b2b18 100644
Binary files a/jdk/.hg/store/data/src/share/demo/management/_full_thread_dump/_full_thread_dump.java.i and b/jdk/.hg/store/data/src/share/demo/management/_full_thread_dump/_full_thread_dump.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/management/_full_thread_dump/_thread_monitor.java.i b/jdk/.hg/store/data/src/share/demo/management/_full_thread_dump/_thread_monitor.java.i
index c476aec..3c85aff 100644
Binary files a/jdk/.hg/store/data/src/share/demo/management/_full_thread_dump/_thread_monitor.java.i and b/jdk/.hg/store/data/src/share/demo/management/_full_thread_dump/_thread_monitor.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/management/_j_top/_j_top.java.i b/jdk/.hg/store/data/src/share/demo/management/_j_top/_j_top.java.i
index dac8ada..8af54dc 100644
Binary files a/jdk/.hg/store/data/src/share/demo/management/_j_top/_j_top.java.i and b/jdk/.hg/store/data/src/share/demo/management/_j_top/_j_top.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/management/_j_top/_j_top_plugin.java.i b/jdk/.hg/store/data/src/share/demo/management/_j_top/_j_top_plugin.java.i
index 9b503be..340f546 100644
Binary files a/jdk/.hg/store/data/src/share/demo/management/_j_top/_j_top_plugin.java.i and b/jdk/.hg/store/data/src/share/demo/management/_j_top/_j_top_plugin.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/management/_memory_monitor/_memory_monitor.java.i b/jdk/.hg/store/data/src/share/demo/management/_memory_monitor/_memory_monitor.java.i
index 0e5c7fa..9ea4e32 100644
Binary files a/jdk/.hg/store/data/src/share/demo/management/_memory_monitor/_memory_monitor.java.i and b/jdk/.hg/store/data/src/share/demo/management/_memory_monitor/_memory_monitor.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/management/_verbose_g_c/_print_g_c_stat.java.i b/jdk/.hg/store/data/src/share/demo/management/_verbose_g_c/_print_g_c_stat.java.i
index f079d42..ebb17a5 100644
Binary files a/jdk/.hg/store/data/src/share/demo/management/_verbose_g_c/_print_g_c_stat.java.i and b/jdk/.hg/store/data/src/share/demo/management/_verbose_g_c/_print_g_c_stat.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/management/_verbose_g_c/_verbose_g_c.java.i b/jdk/.hg/store/data/src/share/demo/management/_verbose_g_c/_verbose_g_c.java.i
index 50eca75..de30d80 100644
Binary files a/jdk/.hg/store/data/src/share/demo/management/_verbose_g_c/_verbose_g_c.java.i and b/jdk/.hg/store/data/src/share/demo/management/_verbose_g_c/_verbose_g_c.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/_demo.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/_demo.java.i
index cd50ad4..2017c7a 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/_demo.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/_demo.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_jar_file_system_provider.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_jar_file_system_provider.java.i
index c94701e..d235120 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_jar_file_system_provider.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_jar_file_system_provider.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_coder.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_coder.java.i
index 80533e8..968e6c9 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_coder.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_coder.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_constants.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_constants.java.i
index e102c1a..da19576 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_constants.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_constants.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_directory_stream.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_directory_stream.java.i
index 6c0a859..54416a1 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_directory_stream.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_directory_stream.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_attribute_view.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_attribute_view.java.i
index f970513..db0688d 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_attribute_view.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_attribute_view.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_attributes.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_attributes.java.i
index 87d63f9..7257c9d 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_attributes.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_attributes.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_store.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_store.java.i
index 52aa2dc..262a69d 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_store.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_store.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_system.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_system.java.i
index bd174e5..1296771 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_system.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_system.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_system_provider.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_system_provider.java.i
index 3922a53..06c7af9 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_system_provider.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_file_system_provider.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_info.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_info.java.i
index 9dea0d3..8deee67 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_info.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_info.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_path.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_path.java.i
index e09c6fb..d378ae4 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_path.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_path.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_utils.java.i b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_utils.java.i
index 715ad72..36dfbf0 100644
Binary files a/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_utils.java.i and b/jdk/.hg/store/data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/_zip_utils.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/_editable_at_end_document.java.i b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/_editable_at_end_document.java.i
index 60d2dc1..dd76c34 100644
Binary files a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/_editable_at_end_document.java.i and b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/_editable_at_end_document.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/_script_j_console_plugin.java.i b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/_script_j_console_plugin.java.i
index 58bb1f0..0f8e55c 100644
Binary files a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/_script_j_console_plugin.java.i and b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/_script_j_console_plugin.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/_script_shell_panel.java.i b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/_script_shell_panel.java.i
index 98fdbc5..dfbad04 100644
Binary files a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/_script_shell_panel.java.i and b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/_script_shell_panel.java.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js.i b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js.i
index 48bd3ed..311c8d1 100644
Binary files a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js.i and b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/heapdump.js.i b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/heapdump.js.i
index 775c52f..21127a1 100644
Binary files a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/heapdump.js.i and b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/heapdump.js.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/hello.js.i b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/hello.js.i
index 8f85308..8934a4c 100644
Binary files a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/hello.js.i and b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/hello.js.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/invoke.js.i b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/invoke.js.i
index 74dcb94..6d8f3a1 100644
Binary files a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/invoke.js.i and b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/invoke.js.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/jstack.js.i b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/jstack.js.i
index 043fdc1..876095b 100644
Binary files a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/jstack.js.i and b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/jstack.js.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/jtop.js.i b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/jtop.js.i
index 6ab52f0..8e78fd3 100644
Binary files a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/jtop.js.i and b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/jtop.js.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/sysprops.js.i b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/sysprops.js.i
index cb2e9b1..c775057 100644
Binary files a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/sysprops.js.i and b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/sysprops.js.i differ
diff --git a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/verbose.js.i b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/verbose.js.i
index 7cc5c4a..6087111 100644
Binary files a/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/verbose.js.i and b/jdk/.hg/store/data/src/share/demo/scripting/jconsole-plugin/src/scripts/verbose.js.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/_c_h_a_n_g_e_s.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/_c_h_a_n_g_e_s.i
index f6f12dc..a852c3d 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/_c_h_a_n_g_e_s.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/_c_h_a_n_g_e_s.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/_l_i_c_e_n_s_e.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/_l_i_c_e_n_s_e.i
index b9e4f8a..5aa6b66 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/_l_i_c_e_n_s_e.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/_l_i_c_e_n_s_e.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/_r_e_a_d_m_e.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/_r_e_a_d_m_e.i
index 16efd75..60b7fa6 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/_r_e_a_d_m_e.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/_r_e_a_d_m_e.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/png.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/png.c.i
index 2caaa5d..e460788 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/png.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/png.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/png.h.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/png.h.i
index df010ed..f8d69f3 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/png.h.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/png.h.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngconf.h.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngconf.h.i
index 1130399..4cccd54 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngconf.h.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngconf.h.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngdebug.h.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngdebug.h.i
new file mode 100644
index 0000000..19b4eac
Binary files /dev/null and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngdebug.h.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngerror.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngerror.c.i
index 891b016..f695fe2 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngerror.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngerror.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngget.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngget.c.i
index c97919f..2e66493 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngget.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngget.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pnginfo.h.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pnginfo.h.i
new file mode 100644
index 0000000..13fe99e
Binary files /dev/null and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pnginfo.h.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pnglibconf.h.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pnglibconf.h.i
new file mode 100644
index 0000000..4ebc3ec
Binary files /dev/null and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pnglibconf.h.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngmem.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngmem.c.i
index 54266c6..4cac56a 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngmem.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngmem.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngpread.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngpread.c.i
index 992ef1d..b1547d4 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngpread.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngpread.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngpriv.h.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngpriv.h.i
new file mode 100644
index 0000000..933d3b5
Binary files /dev/null and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngpriv.h.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngread.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngread.c.i
index c10a5b2..66acb62 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngread.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngread.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngrio.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngrio.c.i
index 01d3546..cd998aa 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngrio.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngrio.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngrtran.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngrtran.c.i
index 50f954a..08202d1 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngrtran.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngrtran.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngrutil.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngrutil.c.i
index e628e20..050bbce 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngrutil.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngrutil.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngset.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngset.c.i
index 2ed3671..24a24e3 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngset.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngset.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngstruct.h.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngstruct.h.i
new file mode 100644
index 0000000..f56cadf
Binary files /dev/null and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngstruct.h.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngtest.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngtest.c.i
index cbc46f7..c5fc36b 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngtest.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngtest.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngtrans.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngtrans.c.i
index fca9fc5..82a42cb 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngtrans.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngtrans.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwio.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwio.c.i
index a018b88..a664c07 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwio.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwio.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwrite.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwrite.c.i
index 1139d06..db40084 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwrite.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwrite.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwtran.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwtran.c.i
index 2849fab..a96ff39 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwtran.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwtran.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwutil.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwutil.c.i
index d4ef5af..340d2b7 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwutil.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/libpng/pngwutil.c.i differ
diff --git a/jdk/.hg/store/data/src/share/native/sun/awt/splashscreen/splashscreen__png.c.i b/jdk/.hg/store/data/src/share/native/sun/awt/splashscreen/splashscreen__png.c.i
index d8c02ba..7d4c39f 100644
Binary files a/jdk/.hg/store/data/src/share/native/sun/awt/splashscreen/splashscreen__png.c.i and b/jdk/.hg/store/data/src/share/native/sun/awt/splashscreen/splashscreen__png.c.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/_r_e_a_d_m_e.i b/jdk/.hg/store/data/src/share/sample/_r_e_a_d_m_e.i
new file mode 100644
index 0000000..4ea1885
Binary files /dev/null and b/jdk/.hg/store/data/src/share/sample/_r_e_a_d_m_e.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/forkjoin/mergesort/_merge_demo.java.i b/jdk/.hg/store/data/src/share/sample/forkjoin/mergesort/_merge_demo.java.i
index cd50559..2962b6d 100644
Binary files a/jdk/.hg/store/data/src/share/sample/forkjoin/mergesort/_merge_demo.java.i and b/jdk/.hg/store/data/src/share/sample/forkjoin/mergesort/_merge_demo.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/forkjoin/mergesort/_merge_sort.java.i b/jdk/.hg/store/data/src/share/sample/forkjoin/mergesort/_merge_sort.java.i
index b9581bf..987ea50 100644
Binary files a/jdk/.hg/store/data/src/share/sample/forkjoin/mergesort/_merge_sort.java.i and b/jdk/.hg/store/data/src/share/sample/forkjoin/mergesort/_merge_sort.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_directory_scanner.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_directory_scanner.java.i
index 8a2522c..63fe65f 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_directory_scanner.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_directory_scanner.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_directory_scanner_m_x_bean.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_directory_scanner_m_x_bean.java.i
index 08b07e6..34b3966 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_directory_scanner_m_x_bean.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_directory_scanner_m_x_bean.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_result_log_manager.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_result_log_manager.java.i
index e6af695..68fae44 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_result_log_manager.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_result_log_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_result_log_manager_m_x_bean.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_result_log_manager_m_x_bean.java.i
index 3b0e770..975eb7a 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_result_log_manager_m_x_bean.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_result_log_manager_m_x_bean.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_agent.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_agent.java.i
index c76b4e0..e9c4501 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_agent.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_agent.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_client.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_client.java.i
index 7af0795..5ecfe92 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_client.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_config.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_config.java.i
index 9a370f0..3533a78 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_config.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_config.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_config_m_x_bean.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_config_m_x_bean.java.i
index b23d30a..88af77c 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_config_m_x_bean.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_dir_config_m_x_bean.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_manager.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_manager.java.i
index a022787..bedb758 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_manager.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_manager.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_manager_m_x_bean.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_manager_m_x_bean.java.i
index 926b988..2d2d369 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_manager_m_x_bean.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/_scan_manager_m_x_bean.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_directory_scanner_config.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_directory_scanner_config.java.i
index f6a2541..a254f16 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_directory_scanner_config.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_directory_scanner_config.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_file_match.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_file_match.java.i
index 25030fc..dabceaa 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_file_match.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_file_match.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_result_log_config.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_result_log_config.java.i
index 70d6e5e..d647541 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_result_log_config.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_result_log_config.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_result_record.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_result_record.java.i
index 729e35f..6227ae5 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_result_record.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_result_record.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_scan_manager_config.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_scan_manager_config.java.i
index c56bc08..fd11b6d 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_scan_manager_config.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_scan_manager_config.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_xml_config_utils.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_xml_config_utils.java.i
index f269ae1..45314a3 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_xml_config_utils.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/_xml_config_utils.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_directory_scanner_test.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_directory_scanner_test.java.i
index efb6a62..bae34ff 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_directory_scanner_test.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_directory_scanner_test.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_scan_dir_config_test.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_scan_dir_config_test.java.i
index 4b1f1d5..2dc6523 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_scan_dir_config_test.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_scan_dir_config_test.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_scan_manager_test.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_scan_manager_test.java.i
index 0581dc8..70f370e 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_scan_manager_test.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_scan_manager_test.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_test_utils.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_test_utils.java.i
index b6226eb..37adc84 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_test_utils.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/_test_utils.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/config/_xml_config_utils_test.java.i b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/config/_xml_config_utils_test.java.i
index a1cc09e..658e609 100644
Binary files a/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/config/_xml_config_utils_test.java.i and b/jdk/.hg/store/data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/config/_xml_config_utils_test.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/chatserver/_chat_server.java.i b/jdk/.hg/store/data/src/share/sample/nio/chatserver/_chat_server.java.i
index 61b3a2f..3e941ce 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/chatserver/_chat_server.java.i and b/jdk/.hg/store/data/src/share/sample/nio/chatserver/_chat_server.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/chatserver/_client.java.i b/jdk/.hg/store/data/src/share/sample/nio/chatserver/_client.java.i
index 604fa97..c342b1b 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/chatserver/_client.java.i and b/jdk/.hg/store/data/src/share/sample/nio/chatserver/_client.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/chatserver/_client_reader.java.i b/jdk/.hg/store/data/src/share/sample/nio/chatserver/_client_reader.java.i
index d0478a3..faad84e 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/chatserver/_client_reader.java.i and b/jdk/.hg/store/data/src/share/sample/nio/chatserver/_client_reader.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/chatserver/_data_reader.java.i b/jdk/.hg/store/data/src/share/sample/nio/chatserver/_data_reader.java.i
index 42a4e3c..e3b161f 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/chatserver/_data_reader.java.i and b/jdk/.hg/store/data/src/share/sample/nio/chatserver/_data_reader.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/chatserver/_message_reader.java.i b/jdk/.hg/store/data/src/share/sample/nio/chatserver/_message_reader.java.i
index 8c21dfd..2d1eb32 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/chatserver/_message_reader.java.i and b/jdk/.hg/store/data/src/share/sample/nio/chatserver/_message_reader.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/chatserver/_name_reader.java.i b/jdk/.hg/store/data/src/share/sample/nio/chatserver/_name_reader.java.i
index 50e1eb7..1b933a8 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/chatserver/_name_reader.java.i and b/jdk/.hg/store/data/src/share/sample/nio/chatserver/_name_reader.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/file/_acl_edit.java.i b/jdk/.hg/store/data/src/share/sample/nio/file/_acl_edit.java.i
index c6f7f09..cc23764 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/file/_acl_edit.java.i and b/jdk/.hg/store/data/src/share/sample/nio/file/_acl_edit.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/file/_chmod.java.i b/jdk/.hg/store/data/src/share/sample/nio/file/_chmod.java.i
index fb1effb..c45f93d 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/file/_chmod.java.i and b/jdk/.hg/store/data/src/share/sample/nio/file/_chmod.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/file/_copy.java.i b/jdk/.hg/store/data/src/share/sample/nio/file/_copy.java.i
index 7cad78e..654a743 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/file/_copy.java.i and b/jdk/.hg/store/data/src/share/sample/nio/file/_copy.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/file/_disk_usage.java.i b/jdk/.hg/store/data/src/share/sample/nio/file/_disk_usage.java.i
index 2756efc..2467fe3 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/file/_disk_usage.java.i and b/jdk/.hg/store/data/src/share/sample/nio/file/_disk_usage.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/file/_file_type.java.i b/jdk/.hg/store/data/src/share/sample/nio/file/_file_type.java.i
index b66340d..40466bf 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/file/_file_type.java.i and b/jdk/.hg/store/data/src/share/sample/nio/file/_file_type.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/file/_watch_dir.java.i b/jdk/.hg/store/data/src/share/sample/nio/file/_watch_dir.java.i
index e729c3e..2f401a5 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/file/_watch_dir.java.i and b/jdk/.hg/store/data/src/share/sample/nio/file/_watch_dir.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/file/_xdd.java.i b/jdk/.hg/store/data/src/share/sample/nio/file/_xdd.java.i
index 04607fa..a7a52b3 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/file/_xdd.java.i and b/jdk/.hg/store/data/src/share/sample/nio/file/_xdd.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/multicast/_multicast_address.java.i b/jdk/.hg/store/data/src/share/sample/nio/multicast/_multicast_address.java.i
index 891d48a..195deb6 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/multicast/_multicast_address.java.i and b/jdk/.hg/store/data/src/share/sample/nio/multicast/_multicast_address.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/multicast/_reader.java.i b/jdk/.hg/store/data/src/share/sample/nio/multicast/_reader.java.i
index 9165cf1..4d813e3 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/multicast/_reader.java.i and b/jdk/.hg/store/data/src/share/sample/nio/multicast/_reader.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/multicast/_sender.java.i b/jdk/.hg/store/data/src/share/sample/nio/multicast/_sender.java.i
index 2fbda78..d605380 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/multicast/_sender.java.i and b/jdk/.hg/store/data/src/share/sample/nio/multicast/_sender.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_accept_handler.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_accept_handler.java.i
index eda2c83..ec6f118 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_accept_handler.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_accept_handler.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_acceptor.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_acceptor.java.i
index 6dfb002..b1c01b8 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_acceptor.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_acceptor.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_b1.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_b1.java.i
index 9d1c459..4602b6b 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_b1.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_b1.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_b_n.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_b_n.java.i
index 1a092d7..ab2fa71 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_b_n.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_b_n.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_b_p.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_b_p.java.i
index f989341..ad37803 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_b_p.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_b_p.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_channel_i_o.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_channel_i_o.java.i
index 6aed345..78ce3e4 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_channel_i_o.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_channel_i_o.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_channel_i_o_secure.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_channel_i_o_secure.java.i
index c14c3da..35dbb77 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_channel_i_o_secure.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_channel_i_o_secure.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_content.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_content.java.i
index 47970b9..cec70e6 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_content.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_content.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_dispatcher.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_dispatcher.java.i
index 0e29d66..9e7cdc2 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_dispatcher.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_dispatcher.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_dispatcher1.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_dispatcher1.java.i
index 62fe535..b8a684e 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_dispatcher1.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_dispatcher1.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_dispatcher_n.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_dispatcher_n.java.i
index 1a08b6b..2d8edf2 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_dispatcher_n.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_dispatcher_n.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_file_content.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_file_content.java.i
index 5d33cb5..d041c00 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_file_content.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_file_content.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_handler.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_handler.java.i
index e8f0028..80747ea 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_handler.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_handler.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_malformed_request_exception.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_malformed_request_exception.java.i
index debf47e..91afb4e 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_malformed_request_exception.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_malformed_request_exception.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_n1.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_n1.java.i
index 0ae9f70..e18c6f8 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_n1.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_n1.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_n2.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_n2.java.i
index dc1207c..3a84d2f 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_n2.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_n2.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_reply.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_reply.java.i
index a21a88c..0d96d58 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_reply.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_reply.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_request.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_request.java.i
index a61cb14..959892b 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_request.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_request.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_request_handler.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_request_handler.java.i
index 7d47a3b..aa6d945 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_request_handler.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_request_handler.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_request_servicer.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_request_servicer.java.i
index a130e09..3b19e8e 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_request_servicer.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_request_servicer.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_sendable.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_sendable.java.i
index 6d48521..6f476b5 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_sendable.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_sendable.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_server.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_server.java.i
index 4135e01..dd5c940 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_server.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_server.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_string_content.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_string_content.java.i
index 36d0537..a512b9e 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_string_content.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_string_content.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/nio/server/_u_r_l_dumper.java.i b/jdk/.hg/store/data/src/share/sample/nio/server/_u_r_l_dumper.java.i
index c771086..93d31e9 100644
Binary files a/jdk/.hg/store/data/src/share/sample/nio/server/_u_r_l_dumper.java.i and b/jdk/.hg/store/data/src/share/sample/nio/server/_u_r_l_dumper.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/com/sun/sample/scriptpad/_main.java.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/com/sun/sample/scriptpad/_main.java.i
index b5f12f9..c4a3d1c 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/com/sun/sample/scriptpad/_main.java.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/com/sun/sample/scriptpad/_main.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/_main.js.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/_main.js.i
index 9a6e8c8..5fef9ff 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/_main.js.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/_main.js.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/conc.js.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/conc.js.i
index f663c25..65fc053 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/conc.js.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/conc.js.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/gui.js.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/gui.js.i
index d4ee9ef..afda5d3 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/gui.js.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/gui.js.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/mm.js.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/mm.js.i
index 1f82c73..22c523f 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/mm.js.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/mm.js.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/scriptpad.js.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/scriptpad.js.i
index f3503e8..b192749 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/scriptpad.js.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/resources/scriptpad.js.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/browse.js.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/browse.js.i
index c1ed5c2..2944f8c 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/browse.js.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/browse.js.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/insertfile.js.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/insertfile.js.i
index 47e9fc8..df8e771 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/insertfile.js.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/insertfile.js.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/linewrap.js.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/linewrap.js.i
index 1354e3f..7b54fc8 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/linewrap.js.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/linewrap.js.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/mail.js.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/mail.js.i
index decd72f..3f873e6 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/mail.js.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/mail.js.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/memmonitor.js.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/memmonitor.js.i
index a451746..0ea5cfc 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/memmonitor.js.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/memmonitor.js.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/memory.js.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/memory.js.i
index e530a5a..94fa6f4 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/memory.js.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/memory.js.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/textcolor.js.i b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/textcolor.js.i
index ae90d05..a8f5c5d 100644
Binary files a/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/textcolor.js.i and b/jdk/.hg/store/data/src/share/sample/scripting/scriptpad/src/scripts/textcolor.js.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/vm/clr-jvm/invoked.java.i b/jdk/.hg/store/data/src/share/sample/vm/clr-jvm/invoked.java.i
index 61be227..8315081 100644
Binary files a/jdk/.hg/store/data/src/share/sample/vm/clr-jvm/invoked.java.i and b/jdk/.hg/store/data/src/share/sample/vm/clr-jvm/invoked.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/vm/clr-jvm/jinvoker.cpp.i b/jdk/.hg/store/data/src/share/sample/vm/clr-jvm/jinvoker.cpp.i
index 9c08e45..1970d4d 100644
Binary files a/jdk/.hg/store/data/src/share/sample/vm/clr-jvm/jinvoker.cpp.i and b/jdk/.hg/store/data/src/share/sample/vm/clr-jvm/jinvoker.cpp.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/vm/clr-jvm/jinvoker_exp.h.i b/jdk/.hg/store/data/src/share/sample/vm/clr-jvm/jinvoker_exp.h.i
index 9fae2e6..0870604 100644
Binary files a/jdk/.hg/store/data/src/share/sample/vm/clr-jvm/jinvoker_exp.h.i and b/jdk/.hg/store/data/src/share/sample/vm/clr-jvm/jinvoker_exp.h.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker.cpp.i b/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker.cpp.i
index 4e327ef..8fe26b9 100644
Binary files a/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker.cpp.i and b/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker.cpp.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker.h.i b/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker.h.i
index 8595446..cf38f46 100644
Binary files a/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker.h.i and b/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker.h.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker.java.i b/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker.java.i
index b5640e2..c46f7a6 100644
Binary files a/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker.java.i and b/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker.java.i differ
diff --git a/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker_exp.h.i b/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker_exp.h.i
index 96da879..31fe7df 100644
Binary files a/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker_exp.h.i and b/jdk/.hg/store/data/src/share/sample/vm/jvm-clr/invoker_exp.h.i differ
diff --git a/jdk/.hg/store/data/src/solaris/classes/java/net/_default_datagram_socket_impl_factory.java.i b/jdk/.hg/store/data/src/solaris/classes/java/net/_default_datagram_socket_impl_factory.java.i
index dad1eff..7f1b433 100644
Binary files a/jdk/.hg/store/data/src/solaris/classes/java/net/_default_datagram_socket_impl_factory.java.i and b/jdk/.hg/store/data/src/solaris/classes/java/net/_default_datagram_socket_impl_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/classes/java/net/_plain_datagram_socket_impl.java.i b/jdk/.hg/store/data/src/solaris/classes/java/net/_plain_datagram_socket_impl.java.i
index ee86ef2..d4011c7 100644
Binary files a/jdk/.hg/store/data/src/solaris/classes/java/net/_plain_datagram_socket_impl.java.i and b/jdk/.hg/store/data/src/solaris/classes/java/net/_plain_datagram_socket_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11/_x_base_menu_window.java.i b/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11/_x_base_menu_window.java.i
index 19989c8..473a6fb 100644
Binary files a/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11/_x_base_menu_window.java.i and b/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11/_x_base_menu_window.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11/_x_menu_item_peer.java.i b/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11/_x_menu_item_peer.java.i
index 057a386..ee91fe8 100644
Binary files a/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11/_x_menu_item_peer.java.i and b/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11/_x_menu_item_peer.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11/_x_toolkit.java.i b/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11/_x_toolkit.java.i
index 4f18616..80a7c3b 100644
Binary files a/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11/_x_toolkit.java.i and b/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11/_x_toolkit.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11_graphics_environment.java.i b/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11_graphics_environment.java.i
index ef4bfb6..3256e85 100644
Binary files a/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11_graphics_environment.java.i and b/jdk/.hg/store/data/src/solaris/classes/sun/awt/_x11_graphics_environment.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/classes/sun/net/dns/_resolver_configuration_impl.java.i b/jdk/.hg/store/data/src/solaris/classes/sun/net/dns/_resolver_configuration_impl.java.i
index c50942b..f49a64b 100644
Binary files a/jdk/.hg/store/data/src/solaris/classes/sun/net/dns/_resolver_configuration_impl.java.i and b/jdk/.hg/store/data/src/solaris/classes/sun/net/dns/_resolver_configuration_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/classes/sun/nio/ch/_inherited_channel.java.i b/jdk/.hg/store/data/src/solaris/classes/sun/nio/ch/_inherited_channel.java.i
index 4b7b4eb..4cfa1e1 100644
Binary files a/jdk/.hg/store/data/src/solaris/classes/sun/nio/ch/_inherited_channel.java.i and b/jdk/.hg/store/data/src/solaris/classes/sun/nio/ch/_inherited_channel.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/classes/sun/nio/fs/_linux_watch_service.java.i b/jdk/.hg/store/data/src/solaris/classes/sun/nio/fs/_linux_watch_service.java.i
index 8831f8f..dc12738 100644
Binary files a/jdk/.hg/store/data/src/solaris/classes/sun/nio/fs/_linux_watch_service.java.i and b/jdk/.hg/store/data/src/solaris/classes/sun/nio/fs/_linux_watch_service.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/classes/sun/tools/attach/_linux_virtual_machine.java.i b/jdk/.hg/store/data/src/solaris/classes/sun/tools/attach/_linux_virtual_machine.java.i
index c79fdc0..3590b12 100644
Binary files a/jdk/.hg/store/data/src/solaris/classes/sun/tools/attach/_linux_virtual_machine.java.i and b/jdk/.hg/store/data/src/solaris/classes/sun/tools/attach/_linux_virtual_machine.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_client.java.i b/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_client.java.i
index 441665e..25eb980 100644
Binary files a/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_client.java.i and b/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_client.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_linked_queue.java.i b/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_linked_queue.java.i
index b4a9d6a..79ceec2 100644
Binary files a/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_linked_queue.java.i and b/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_linked_queue.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_poller.c.i b/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_poller.c.i
index 2f3a699..78d0eff 100644
Binary files a/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_poller.c.i and b/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_poller.c.i differ
diff --git a/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_poller.java.i b/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_poller.java.i
index 22411a6..295a48b 100644
Binary files a/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_poller.java.i and b/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_poller.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_polling_server.java.i b/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_polling_server.java.i
index a5c50f0..6b0ec4b 100644
Binary files a/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_polling_server.java.i and b/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_polling_server.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_simple_server.java.i b/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_simple_server.java.i
index d26a569..4f75377 100644
Binary files a/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_simple_server.java.i and b/jdk/.hg/store/data/src/solaris/demo/jni/_poller/_simple_server.java.i differ
diff --git a/jdk/.hg/store/data/src/solaris/demo/jvmti/hprof/hprof__md.c.i b/jdk/.hg/store/data/src/solaris/demo/jvmti/hprof/hprof__md.c.i
index 979fe67..86389f9 100644
Binary files a/jdk/.hg/store/data/src/solaris/demo/jvmti/hprof/hprof__md.c.i and b/jdk/.hg/store/data/src/solaris/demo/jvmti/hprof/hprof__md.c.i differ
diff --git a/jdk/.hg/store/data/src/solaris/lib/content-types.properties.i b/jdk/.hg/store/data/src/solaris/lib/content-types.properties.i
index 700c64a..e8f33e5 100644
Binary files a/jdk/.hg/store/data/src/solaris/lib/content-types.properties.i and b/jdk/.hg/store/data/src/solaris/lib/content-types.properties.i differ
diff --git a/jdk/.hg/store/data/src/solaris/native/java/net/_network_interface.c.i b/jdk/.hg/store/data/src/solaris/native/java/net/_network_interface.c.i
index 196a797..cf2e4cf 100644
Binary files a/jdk/.hg/store/data/src/solaris/native/java/net/_network_interface.c.i and b/jdk/.hg/store/data/src/solaris/native/java/net/_network_interface.c.i differ
diff --git a/jdk/.hg/store/data/src/solaris/native/sun/awt/fontpath.c.i b/jdk/.hg/store/data/src/solaris/native/sun/awt/fontpath.c.i
index b9db898..c1eacc2 100644
Binary files a/jdk/.hg/store/data/src/solaris/native/sun/awt/fontpath.c.i and b/jdk/.hg/store/data/src/solaris/native/sun/awt/fontpath.c.i differ
diff --git a/jdk/.hg/store/data/src/solaris/native/sun/nio/fs/gen_unix_constants.c.i b/jdk/.hg/store/data/src/solaris/native/sun/nio/fs/gen_unix_constants.c.i
index 59eecc4..4f5d51f 100644
Binary files a/jdk/.hg/store/data/src/solaris/native/sun/nio/fs/gen_unix_constants.c.i and b/jdk/.hg/store/data/src/solaris/native/sun/nio/fs/gen_unix_constants.c.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/java/net/_default_datagram_socket_impl_factory.java.i b/jdk/.hg/store/data/src/windows/classes/java/net/_default_datagram_socket_impl_factory.java.i
index bcec9b1..0a73a96 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/java/net/_default_datagram_socket_impl_factory.java.i and b/jdk/.hg/store/data/src/windows/classes/java/net/_default_datagram_socket_impl_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/java/net/_dual_stack_plain_datagram_socket_impl.java.i b/jdk/.hg/store/data/src/windows/classes/java/net/_dual_stack_plain_datagram_socket_impl.java.i
index d2c76e8..f49d8d9 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/java/net/_dual_stack_plain_datagram_socket_impl.java.i and b/jdk/.hg/store/data/src/windows/classes/java/net/_dual_stack_plain_datagram_socket_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/java/net/_two_stacks_plain_datagram_socket_impl.java.i b/jdk/.hg/store/data/src/windows/classes/java/net/_two_stacks_plain_datagram_socket_impl.java.i
index 8e10463..4d1aca1 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/java/net/_two_stacks_plain_datagram_socket_impl.java.i and b/jdk/.hg/store/data/src/windows/classes/java/net/_two_stacks_plain_datagram_socket_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/sun/awt/windows/_w_toolkit.java.i b/jdk/.hg/store/data/src/windows/classes/sun/awt/windows/_w_toolkit.java.i
index 8fd7394..aa7057c 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/sun/awt/windows/_w_toolkit.java.i and b/jdk/.hg/store/data/src/windows/classes/sun/awt/windows/_w_toolkit.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/sun/net/dns/_resolver_configuration_impl.java.i b/jdk/.hg/store/data/src/windows/classes/sun/net/dns/_resolver_configuration_impl.java.i
index f12b35d..a795d1a 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/sun/net/dns/_resolver_configuration_impl.java.i and b/jdk/.hg/store/data/src/windows/classes/sun/net/dns/_resolver_configuration_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/sun/net/www/protocol/jar/_jar_file_factory.java.i b/jdk/.hg/store/data/src/windows/classes/sun/net/www/protocol/jar/_jar_file_factory.java.i
index e247fd2..e62c2db 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/sun/net/www/protocol/jar/_jar_file_factory.java.i and b/jdk/.hg/store/data/src/windows/classes/sun/net/www/protocol/jar/_jar_file_factory.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/sun/nio/ch/_windows_asynchronous_file_channel_impl.java.i b/jdk/.hg/store/data/src/windows/classes/sun/nio/ch/_windows_asynchronous_file_channel_impl.java.i
index f8fd43a..f2623c1 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/sun/nio/ch/_windows_asynchronous_file_channel_impl.java.i and b/jdk/.hg/store/data/src/windows/classes/sun/nio/ch/_windows_asynchronous_file_channel_impl.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_key_store.java.i b/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_key_store.java.i
index d5f5d7b..aaa3888 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_key_store.java.i and b/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_key_store.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_p_r_n_g.java.i b/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_p_r_n_g.java.i
index d7263be..10ba813 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_p_r_n_g.java.i and b/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_p_r_n_g.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_r_s_a_private_key.java.i b/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_r_s_a_private_key.java.i
index cd5864a..110b6cd 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_r_s_a_private_key.java.i and b/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_r_s_a_private_key.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_r_s_a_public_key.java.i b/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_r_s_a_public_key.java.i
index 0f8dfa1..340b44f 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_r_s_a_public_key.java.i and b/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_r_s_a_public_key.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_r_s_a_signature.java.i b/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_r_s_a_signature.java.i
index f5608d4..7623110 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_r_s_a_signature.java.i and b/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_r_s_a_signature.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_sun_m_s_c_a_p_i.java.i b/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_sun_m_s_c_a_p_i.java.i
index 711911a..eb0ddc6 100644
Binary files a/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_sun_m_s_c_a_p_i.java.i and b/jdk/.hg/store/data/src/windows/classes/sun/security/mscapi/_sun_m_s_c_a_p_i.java.i differ
diff --git a/jdk/.hg/store/data/src/windows/demo/jvmti/hprof/hprof__md.c.i b/jdk/.hg/store/data/src/windows/demo/jvmti/hprof/hprof__md.c.i
index 4dc310a..a01af1b 100644
Binary files a/jdk/.hg/store/data/src/windows/demo/jvmti/hprof/hprof__md.c.i and b/jdk/.hg/store/data/src/windows/demo/jvmti/hprof/hprof__md.c.i differ
diff --git a/jdk/.hg/store/data/src/windows/lib/content-types.properties.i b/jdk/.hg/store/data/src/windows/lib/content-types.properties.i
index 01bdb2c..cc94341 100644
Binary files a/jdk/.hg/store/data/src/windows/lib/content-types.properties.i and b/jdk/.hg/store/data/src/windows/lib/content-types.properties.i differ
diff --git a/jdk/.hg/store/data/src/windows/native/com/sun/security/auth/module/nt.c.i b/jdk/.hg/store/data/src/windows/native/com/sun/security/auth/module/nt.c.i
index 6e29c8d..d538262 100644
Binary files a/jdk/.hg/store/data/src/windows/native/com/sun/security/auth/module/nt.c.i and b/jdk/.hg/store/data/src/windows/native/com/sun/security/auth/module/nt.c.i differ
diff --git a/jdk/.hg/store/data/src/windows/native/java/lang/java__props__md.c.i b/jdk/.hg/store/data/src/windows/native/java/lang/java__props__md.c.i
index 9576140..85e9eff 100644
Binary files a/jdk/.hg/store/data/src/windows/native/java/lang/java__props__md.c.i and b/jdk/.hg/store/data/src/windows/native/java/lang/java__props__md.c.i differ
diff --git a/jdk/.hg/store/data/src/windows/native/java/net/_network_interface.c.i b/jdk/.hg/store/data/src/windows/native/java/net/_network_interface.c.i
index 60d2c3c..f29df20 100644
Binary files a/jdk/.hg/store/data/src/windows/native/java/net/_network_interface.c.i and b/jdk/.hg/store/data/src/windows/native/java/net/_network_interface.c.i differ
diff --git a/jdk/.hg/store/data/src/windows/native/java/net/_network_interface__win_x_p.c.i b/jdk/.hg/store/data/src/windows/native/java/net/_network_interface__win_x_p.c.i
index 63dda0d..309d4ad 100644
Binary files a/jdk/.hg/store/data/src/windows/native/java/net/_network_interface__win_x_p.c.i and b/jdk/.hg/store/data/src/windows/native/java/net/_network_interface__win_x_p.c.i differ
diff --git a/jdk/.hg/store/data/src/windows/native/java/net/_two_stacks_plain_socket_impl.c.i b/jdk/.hg/store/data/src/windows/native/java/net/_two_stacks_plain_socket_impl.c.i
index 83d7a32..a1b7367 100644
Binary files a/jdk/.hg/store/data/src/windows/native/java/net/_two_stacks_plain_socket_impl.c.i and b/jdk/.hg/store/data/src/windows/native/java/net/_two_stacks_plain_socket_impl.c.i differ
diff --git a/jdk/.hg/store/data/src/windows/native/sun/windows/awt___file_dialog.cpp.i b/jdk/.hg/store/data/src/windows/native/sun/windows/awt___file_dialog.cpp.i
index b086bf3..06c4edf 100644
Binary files a/jdk/.hg/store/data/src/windows/native/sun/windows/awt___file_dialog.cpp.i and b/jdk/.hg/store/data/src/windows/native/sun/windows/awt___file_dialog.cpp.i differ
diff --git a/jdk/.hg/store/data/test/_makefile.i b/jdk/.hg/store/data/test/_makefile.i
index 6bed09e..5d4fade 100644
Binary files a/jdk/.hg/store/data/test/_makefile.i and b/jdk/.hg/store/data/test/_makefile.i differ
diff --git a/jdk/.hg/store/data/test/_modules_problem_list.txt.i b/jdk/.hg/store/data/test/_modules_problem_list.txt.i
index 3fd3109..7304a4c 100644
Binary files a/jdk/.hg/store/data/test/_modules_problem_list.txt.i and b/jdk/.hg/store/data/test/_modules_problem_list.txt.i differ
diff --git a/jdk/.hg/store/data/test/_problem_list.txt.i b/jdk/.hg/store/data/test/_problem_list.txt.i
index 5ebe51c..675bb5c 100644
Binary files a/jdk/.hg/store/data/test/_problem_list.txt.i and b/jdk/.hg/store/data/test/_problem_list.txt.i differ
diff --git a/jdk/.hg/store/data/test/com/sun/jdi/sde/_mangle_step_test.java.i b/jdk/.hg/store/data/test/com/sun/jdi/sde/_mangle_step_test.java.i
index 31500d0..f84cae9 100644
Binary files a/jdk/.hg/store/data/test/com/sun/jdi/sde/_mangle_step_test.java.i and b/jdk/.hg/store/data/test/com/sun/jdi/sde/_mangle_step_test.java.i differ
diff --git a/jdk/.hg/store/data/test/com/sun/security/auth/login/_config_file/_illegal_u_r_l.java.i b/jdk/.hg/store/data/test/com/sun/security/auth/login/_config_file/_illegal_u_r_l.java.i
index fb9afcf..a6d4f8f 100644
Binary files a/jdk/.hg/store/data/test/com/sun/security/auth/login/_config_file/_illegal_u_r_l.java.i and b/jdk/.hg/store/data/test/com/sun/security/auth/login/_config_file/_illegal_u_r_l.java.i differ
diff --git a/jdk/.hg/store/data/test/com/sun/security/sasl/ntlm/_conformance.java.i b/jdk/.hg/store/data/test/com/sun/security/sasl/ntlm/_conformance.java.i
new file mode 100644
index 0000000..9694dc3
Binary files /dev/null and b/jdk/.hg/store/data/test/com/sun/security/sasl/ntlm/_conformance.java.i differ
diff --git a/jdk/.hg/store/data/test/com/sun/servicetag/_java_service_tag_test.java.i b/jdk/.hg/store/data/test/com/sun/servicetag/_java_service_tag_test.java.i
index f0abeca..1660e61 100644
Binary files a/jdk/.hg/store/data/test/com/sun/servicetag/_java_service_tag_test.java.i and b/jdk/.hg/store/data/test/com/sun/servicetag/_java_service_tag_test.java.i differ
diff --git a/jdk/.hg/store/data/test/com/sun/servicetag/_java_service_tag_test1.java.i b/jdk/.hg/store/data/test/com/sun/servicetag/_java_service_tag_test1.java.i
index 65a49d9..d2bdba1 100644
Binary files a/jdk/.hg/store/data/test/com/sun/servicetag/_java_service_tag_test1.java.i and b/jdk/.hg/store/data/test/com/sun/servicetag/_java_service_tag_test1.java.i differ
diff --git a/jdk/.hg/store/data/test/java/io/_i_o_exception/_last_error_string.java.i b/jdk/.hg/store/data/test/java/io/_i_o_exception/_last_error_string.java.i
index f3bfa03..4dc8343 100644
Binary files a/jdk/.hg/store/data/test/java/io/_i_o_exception/_last_error_string.java.i and b/jdk/.hg/store/data/test/java/io/_i_o_exception/_last_error_string.java.i differ
diff --git a/jdk/.hg/store/data/test/java/io/etc/_failing_flush_and_close.java.i b/jdk/.hg/store/data/test/java/io/etc/_failing_flush_and_close.java.i
new file mode 100644
index 0000000..71e6f5b
Binary files /dev/null and b/jdk/.hg/store/data/test/java/io/etc/_failing_flush_and_close.java.i differ
diff --git a/jdk/.hg/store/data/test/java/io/etc/_file_descriptor_sharing.java.i b/jdk/.hg/store/data/test/java/io/etc/_file_descriptor_sharing.java.i
new file mode 100644
index 0000000..c0ea7a3
Binary files /dev/null and b/jdk/.hg/store/data/test/java/io/etc/_file_descriptor_sharing.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_double/_parse_hex_floating_point.java.i b/jdk/.hg/store/data/test/java/lang/_double/_parse_hex_floating_point.java.i
index df7542c..6edc4dc 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_double/_parse_hex_floating_point.java.i and b/jdk/.hg/store/data/test/java/lang/_double/_parse_hex_floating_point.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_double/_to_hex_string.java.i b/jdk/.hg/store/data/test/java/lang/_double/_to_hex_string.java.i
index f634e8a..9646c55 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_double/_to_hex_string.java.i and b/jdk/.hg/store/data/test/java/lang/_double/_to_hex_string.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_math/_ceil_and_floor_tests.java.i b/jdk/.hg/store/data/test/java/lang/_math/_ceil_and_floor_tests.java.i
index b24c5d1..fe388b5 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_math/_ceil_and_floor_tests.java.i and b/jdk/.hg/store/data/test/java/lang/_math/_ceil_and_floor_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_math/_cube_root_tests.java.i b/jdk/.hg/store/data/test/java/lang/_math/_cube_root_tests.java.i
index 991c7bc..2ac70b6 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_math/_cube_root_tests.java.i and b/jdk/.hg/store/data/test/java/lang/_math/_cube_root_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_math/_expm1_tests.java.i b/jdk/.hg/store/data/test/java/lang/_math/_expm1_tests.java.i
index 4b25a77..8f8b1d5 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_math/_expm1_tests.java.i and b/jdk/.hg/store/data/test/java/lang/_math/_expm1_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_math/_hyperbolic_tests.java.i b/jdk/.hg/store/data/test/java/lang/_math/_hyperbolic_tests.java.i
index e6e0478..f58c6f7 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_math/_hyperbolic_tests.java.i and b/jdk/.hg/store/data/test/java/lang/_math/_hyperbolic_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_math/_hypot_tests.java.i b/jdk/.hg/store/data/test/java/lang/_math/_hypot_tests.java.i
index fa28f57..05633bd 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_math/_hypot_tests.java.i and b/jdk/.hg/store/data/test/java/lang/_math/_hypot_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_math/_ieee_recommended_tests.java.i b/jdk/.hg/store/data/test/java/lang/_math/_ieee_recommended_tests.java.i
index 3be389e..71142eb 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_math/_ieee_recommended_tests.java.i and b/jdk/.hg/store/data/test/java/lang/_math/_ieee_recommended_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_math/_log10_tests.java.i b/jdk/.hg/store/data/test/java/lang/_math/_log10_tests.java.i
index 53b4145..20faefc 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_math/_log10_tests.java.i and b/jdk/.hg/store/data/test/java/lang/_math/_log10_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_math/_log1p_tests.java.i b/jdk/.hg/store/data/test/java/lang/_math/_log1p_tests.java.i
index 1cb2b97..b9c8835 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_math/_log1p_tests.java.i and b/jdk/.hg/store/data/test/java/lang/_math/_log1p_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_math/_rint.java.i b/jdk/.hg/store/data/test/java/lang/_math/_rint.java.i
index 665b712..36fb22e 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_math/_rint.java.i and b/jdk/.hg/store/data/test/java/lang/_math/_rint.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_math/_tests.java.i b/jdk/.hg/store/data/test/java/lang/_math/_tests.java.i
index 087ec43..f99d711 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_math/_tests.java.i and b/jdk/.hg/store/data/test/java/lang/_math/_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_math/_worst_case_tests.java.i b/jdk/.hg/store/data/test/java/lang/_math/_worst_case_tests.java.i
new file mode 100644
index 0000000..483d503
Binary files /dev/null and b/jdk/.hg/store/data/test/java/lang/_math/_worst_case_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/_process_builder/_basic.java.i b/jdk/.hg/store/data/test/java/lang/_process_builder/_basic.java.i
index 0e288b7..0832895 100644
Binary files a/jdk/.hg/store/data/test/java/lang/_process_builder/_basic.java.i and b/jdk/.hg/store/data/test/java/lang/_process_builder/_basic.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/invoke/_invoke_generic_test.java.i b/jdk/.hg/store/data/test/java/lang/invoke/_invoke_generic_test.java.i
index 0a536fa..7b8b08e 100644
Binary files a/jdk/.hg/store/data/test/java/lang/invoke/_invoke_generic_test.java.i and b/jdk/.hg/store/data/test/java/lang/invoke/_invoke_generic_test.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/management/_management_factory/_get_object_name.java.i b/jdk/.hg/store/data/test/java/lang/management/_management_factory/_get_object_name.java.i
new file mode 100644
index 0000000..4762eed
Binary files /dev/null and b/jdk/.hg/store/data/test/java/lang/management/_management_factory/_get_object_name.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/reflect/_generics/_probe.java.i b/jdk/.hg/store/data/test/java/lang/reflect/_generics/_probe.java.i
index 5551df0..53ee17b 100644
Binary files a/jdk/.hg/store/data/test/java/lang/reflect/_generics/_probe.java.i and b/jdk/.hg/store/data/test/java/lang/reflect/_generics/_probe.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/reflect/_generics/_signature_test.java.i b/jdk/.hg/store/data/test/java/lang/reflect/_generics/_signature_test.java.i
new file mode 100644
index 0000000..70ac79a
Binary files /dev/null and b/jdk/.hg/store/data/test/java/lang/reflect/_generics/_signature_test.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/reflect/_generics/_test_bad_signatures.java.i b/jdk/.hg/store/data/test/java/lang/reflect/_generics/_test_bad_signatures.java.i
new file mode 100644
index 0000000..75f4417
Binary files /dev/null and b/jdk/.hg/store/data/test/java/lang/reflect/_generics/_test_bad_signatures.java.i differ
diff --git a/jdk/.hg/store/data/test/java/lang/reflect/_type_variable/_test_annotated_element.java.i b/jdk/.hg/store/data/test/java/lang/reflect/_type_variable/_test_annotated_element.java.i
new file mode 100644
index 0000000..9e397da
Binary files /dev/null and b/jdk/.hg/store/data/test/java/lang/reflect/_type_variable/_test_annotated_element.java.i differ
diff --git a/jdk/.hg/store/data/test/java/math/_big_decimal/_divide_mc_tests.java.i b/jdk/.hg/store/data/test/java/math/_big_decimal/_divide_mc_tests.java.i
index 7335dd8..7358943 100644
Binary files a/jdk/.hg/store/data/test/java/math/_big_decimal/_divide_mc_tests.java.i and b/jdk/.hg/store/data/test/java/math/_big_decimal/_divide_mc_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/math/_big_decimal/_float_double_value_tests.java.i b/jdk/.hg/store/data/test/java/math/_big_decimal/_float_double_value_tests.java.i
index 0e2e60a..989b738 100644
Binary files a/jdk/.hg/store/data/test/java/math/_big_decimal/_float_double_value_tests.java.i and b/jdk/.hg/store/data/test/java/math/_big_decimal/_float_double_value_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/math/_big_decimal/_range_tests.java.i b/jdk/.hg/store/data/test/java/math/_big_decimal/_range_tests.java.i
index 80a6213..0db7d97 100644
Binary files a/jdk/.hg/store/data/test/java/math/_big_decimal/_range_tests.java.i and b/jdk/.hg/store/data/test/java/math/_big_decimal/_range_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/math/_big_decimal/_stripping_zeros_test.java.i b/jdk/.hg/store/data/test/java/math/_big_decimal/_stripping_zeros_test.java.i
index 3efcce2..6ae7283 100644
Binary files a/jdk/.hg/store/data/test/java/math/_big_decimal/_stripping_zeros_test.java.i and b/jdk/.hg/store/data/test/java/math/_big_decimal/_stripping_zeros_test.java.i differ
diff --git a/jdk/.hg/store/data/test/java/math/_big_decimal/_to_plain_string_tests.java.i b/jdk/.hg/store/data/test/java/math/_big_decimal/_to_plain_string_tests.java.i
index 5b6be55..37a7a05 100644
Binary files a/jdk/.hg/store/data/test/java/math/_big_decimal/_to_plain_string_tests.java.i and b/jdk/.hg/store/data/test/java/math/_big_decimal/_to_plain_string_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/java/math/_big_integer/_test_value_exact.java.i b/jdk/.hg/store/data/test/java/math/_big_integer/_test_value_exact.java.i
new file mode 100644
index 0000000..8250082
Binary files /dev/null and b/jdk/.hg/store/data/test/java/math/_big_integer/_test_value_exact.java.i differ
diff --git a/jdk/.hg/store/data/test/java/net/_cookie_handler/_test_http_cookie.java.i b/jdk/.hg/store/data/test/java/net/_cookie_handler/_test_http_cookie.java.i
index 40f145b..5bf12bd 100644
Binary files a/jdk/.hg/store/data/test/java/net/_cookie_handler/_test_http_cookie.java.i and b/jdk/.hg/store/data/test/java/net/_cookie_handler/_test_http_cookie.java.i differ
diff --git a/jdk/.hg/store/data/test/java/net/_network_interface/_net_params_test.java.i b/jdk/.hg/store/data/test/java/net/_network_interface/_net_params_test.java.i
index 5652231..01ccdf1 100644
Binary files a/jdk/.hg/store/data/test/java/net/_network_interface/_net_params_test.java.i and b/jdk/.hg/store/data/test/java/net/_network_interface/_net_params_test.java.i differ
diff --git a/jdk/.hg/store/data/test/java/net/_socket/_shutdown_input.java.i b/jdk/.hg/store/data/test/java/net/_socket/_shutdown_input.java.i
new file mode 100644
index 0000000..7eae509
Binary files /dev/null and b/jdk/.hg/store/data/test/java/net/_socket/_shutdown_input.java.i differ
diff --git a/jdk/.hg/store/data/test/java/net/_u_r_i/_test.java.i b/jdk/.hg/store/data/test/java/net/_u_r_i/_test.java.i
index 75a369f..87868ae 100644
Binary files a/jdk/.hg/store/data/test/java/net/_u_r_i/_test.java.i and b/jdk/.hg/store/data/test/java/net/_u_r_i/_test.java.i differ
diff --git a/jdk/.hg/store/data/test/java/nio/channels/_datagram_channel/_network_configuration.java.i b/jdk/.hg/store/data/test/java/nio/channels/_datagram_channel/_network_configuration.java.i
index 3887d2a..de8e74f 100644
Binary files a/jdk/.hg/store/data/test/java/nio/channels/_datagram_channel/_network_configuration.java.i and b/jdk/.hg/store/data/test/java/nio/channels/_datagram_channel/_network_configuration.java.i differ
diff --git a/jdk/.hg/store/data/test/java/nio/channels/_datagram_channel/_select_when_refused.java.i b/jdk/.hg/store/data/test/java/nio/channels/_datagram_channel/_select_when_refused.java.i
index 6f1fe19..0090d17 100644
Binary files a/jdk/.hg/store/data/test/java/nio/channels/_datagram_channel/_select_when_refused.java.i and b/jdk/.hg/store/data/test/java/nio/channels/_datagram_channel/_select_when_refused.java.i differ
diff --git a/jdk/.hg/store/data/test/java/security/_key_pair_generator/_solaris_short_d_s_a.java.i b/jdk/.hg/store/data/test/java/security/_key_pair_generator/_solaris_short_d_s_a.java.i
new file mode 100644
index 0000000..4037cca
Binary files /dev/null and b/jdk/.hg/store/data/test/java/security/_key_pair_generator/_solaris_short_d_s_a.java.i differ
diff --git a/jdk/.hg/store/data/test/java/security/testlibrary/_providers.java.i b/jdk/.hg/store/data/test/java/security/testlibrary/_providers.java.i
new file mode 100644
index 0000000..3abe620
Binary files /dev/null and b/jdk/.hg/store/data/test/java/security/testlibrary/_providers.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_currency/_validate_i_s_o4217.java.i b/jdk/.hg/store/data/test/java/util/_currency/_validate_i_s_o4217.java.i
index 0d8714c..51f7be8 100644
Binary files a/jdk/.hg/store/data/test/java/util/_currency/_validate_i_s_o4217.java.i and b/jdk/.hg/store/data/test/java/util/_currency/_validate_i_s_o4217.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_currency/tablea1.txt.i b/jdk/.hg/store/data/test/java/util/_currency/tablea1.txt.i
index 1645236..8ce5df6 100644
Binary files a/jdk/.hg/store/data/test/java/util/_currency/tablea1.txt.i and b/jdk/.hg/store/data/test/java/util/_currency/tablea1.txt.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic-_x.java.template.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic-_x.java.template.i
index 4f2ad28..3f88308 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic-_x.java.template.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic-_x.java.template.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_big_decimal.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_big_decimal.java.i
index 653cbb5..9a45cd6 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_big_decimal.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_big_decimal.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_big_integer.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_big_integer.java.i
index fee96e0..35ed7b9 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_big_integer.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_big_integer.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_boolean.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_boolean.java.i
index a803162..8f13735 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_boolean.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_boolean.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_boolean_object.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_boolean_object.java.i
index 9751072..8a70e5d 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_boolean_object.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_boolean_object.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_byte.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_byte.java.i
index f31c3cd..e7d32b6 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_byte.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_byte.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_byte_object.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_byte_object.java.i
index 7f3695b..6420a4f 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_byte_object.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_byte_object.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_char.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_char.java.i
index f843363..fb74c1e 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_char.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_char.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_char_object.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_char_object.java.i
index 66a13f1..c502032 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_char_object.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_char_object.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_date_time.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_date_time.java.i
index 200532b..6a3e0ca 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_date_time.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_date_time.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_double.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_double.java.i
index 8e09086..b147973 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_double.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_double.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_double_object.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_double_object.java.i
index b87afa6..7d4f386 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_double_object.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_double_object.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_float.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_float.java.i
index c75541f..4193b1c 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_float.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_float.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_float_object.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_float_object.java.i
index 5086dfa..ba439f3 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_float_object.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_float_object.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_int.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_int.java.i
index 15380c0..22b2b00 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_int.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_int.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_int_object.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_int_object.java.i
index dea9d5a..30f2c55 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_int_object.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_int_object.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_long.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_long.java.i
index fc520bd..3d9a045 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_long.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_long.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_long_object.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_long_object.java.i
index 7c709b4..df42605 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_long_object.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_long_object.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_short.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_short.java.i
index debbd1a..95d986c 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_short.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_short.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_formatter/_basic_short_object.java.i b/jdk/.hg/store/data/test/java/util/_formatter/_basic_short_object.java.i
index 00bef3c..6f98a77 100644
Binary files a/jdk/.hg/store/data/test/java/util/_formatter/_basic_short_object.java.i and b/jdk/.hg/store/data/test/java/util/_formatter/_basic_short_object.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_locale/_locale_category.java.i b/jdk/.hg/store/data/test/java/util/_locale/_locale_category.java.i
index 51a0723..c4f1764 100644
Binary files a/jdk/.hg/store/data/test/java/util/_locale/_locale_category.java.i and b/jdk/.hg/store/data/test/java/util/_locale/_locale_category.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_locale/_locale_category.sh.i b/jdk/.hg/store/data/test/java/util/_locale/_locale_category.sh.i
index b8fff15..35fb447 100644
Binary files a/jdk/.hg/store/data/test/java/util/_locale/_locale_category.sh.i and b/jdk/.hg/store/data/test/java/util/_locale/_locale_category.sh.i differ
diff --git a/jdk/.hg/store/data/test/java/util/_locale/_locale_test.java.i b/jdk/.hg/store/data/test/java/util/_locale/_locale_test.java.i
index 3707a9f..c6b2290 100644
Binary files a/jdk/.hg/store/data/test/java/util/_locale/_locale_test.java.i and b/jdk/.hg/store/data/test/java/util/_locale/_locale_test.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/concurrent/_scheduled_thread_pool_executor/_zero_core_pool_size.java.i b/jdk/.hg/store/data/test/java/util/concurrent/_scheduled_thread_pool_executor/_zero_core_pool_size.java.i
new file mode 100644
index 0000000..89086e3
Binary files /dev/null and b/jdk/.hg/store/data/test/java/util/concurrent/_scheduled_thread_pool_executor/_zero_core_pool_size.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/logging/_parent_loggers_test.java.i b/jdk/.hg/store/data/test/java/util/logging/_parent_loggers_test.java.i
index 1beeb7a..fdb0779 100644
Binary files a/jdk/.hg/store/data/test/java/util/logging/_parent_loggers_test.java.i and b/jdk/.hg/store/data/test/java/util/logging/_parent_loggers_test.java.i differ
diff --git a/jdk/.hg/store/data/test/java/util/zip/_large_zip.java.i b/jdk/.hg/store/data/test/java/util/zip/_large_zip.java.i
index 9bdb2f6..1791106 100644
Binary files a/jdk/.hg/store/data/test/java/util/zip/_large_zip.java.i and b/jdk/.hg/store/data/test/java/util/zip/_large_zip.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/naming/ldap/_ldap_name/_compare_to_equals_tests.java.i b/jdk/.hg/store/data/test/javax/naming/ldap/_ldap_name/_compare_to_equals_tests.java.i
index f9a3032..380a7b0 100644
Binary files a/jdk/.hg/store/data/test/javax/naming/ldap/_ldap_name/_compare_to_equals_tests.java.i and b/jdk/.hg/store/data/test/javax/naming/ldap/_ldap_name/_compare_to_equals_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/security/auth/_subject/_synch.java.i b/jdk/.hg/store/data/test/javax/security/auth/_subject/_synch.java.i
index 66a1bd4..6ad63b9 100644
Binary files a/jdk/.hg/store/data/test/javax/security/auth/_subject/_synch.java.i and b/jdk/.hg/store/data/test/javax/security/auth/_subject/_synch.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/security/auth/_subject/_synch2.java.i b/jdk/.hg/store/data/test/javax/security/auth/_subject/_synch2.java.i
index db0947e..d61c7ae 100644
Binary files a/jdk/.hg/store/data/test/javax/security/auth/_subject/_synch2.java.i and b/jdk/.hg/store/data/test/javax/security/auth/_subject/_synch2.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/security/auth/_subject/_synch3.java.i b/jdk/.hg/store/data/test/javax/security/auth/_subject/_synch3.java.i
index ff8c3df..de9caef 100644
Binary files a/jdk/.hg/store/data/test/javax/security/auth/_subject/_synch3.java.i and b/jdk/.hg/store/data/test/javax/security/auth/_subject/_synch3.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/security/auth/login/_login_context/_reset_config_module.java.i b/jdk/.hg/store/data/test/javax/security/auth/login/_login_context/_reset_config_module.java.i
index 4df8a75..5bd6b7e 100644
Binary files a/jdk/.hg/store/data/test/javax/security/auth/login/_login_context/_reset_config_module.java.i and b/jdk/.hg/store/data/test/javax/security/auth/login/_login_context/_reset_config_module.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/security/auth/x500/_x500_principal/_parse.java.i b/jdk/.hg/store/data/test/javax/security/auth/x500/_x500_principal/_parse.java.i
new file mode 100644
index 0000000..780cefe
Binary files /dev/null and b/jdk/.hg/store/data/test/javax/security/auth/x500/_x500_principal/_parse.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/sql/rowset/serial/_serial_blob/_set_binary_stream.java.i b/jdk/.hg/store/data/test/javax/sql/rowset/serial/_serial_blob/_set_binary_stream.java.i
new file mode 100644
index 0000000..f04628c
Binary files /dev/null and b/jdk/.hg/store/data/test/javax/sql/rowset/serial/_serial_blob/_set_binary_stream.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/sql/rowset/serial/_serial_clob/_set_ascii_stream.java.i b/jdk/.hg/store/data/test/javax/sql/rowset/serial/_serial_clob/_set_ascii_stream.java.i
new file mode 100644
index 0000000..29fa04d
Binary files /dev/null and b/jdk/.hg/store/data/test/javax/sql/rowset/serial/_serial_clob/_set_ascii_stream.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/sql/rowset/serial/_serial_clob/_set_character_stream.java.i b/jdk/.hg/store/data/test/javax/sql/rowset/serial/_serial_clob/_set_character_stream.java.i
new file mode 100644
index 0000000..439bac7
Binary files /dev/null and b/jdk/.hg/store/data/test/javax/sql/rowset/serial/_serial_clob/_set_character_stream.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/swing/_j_popup_menu/6694823/bug6694823.java.i b/jdk/.hg/store/data/test/javax/swing/_j_popup_menu/6694823/bug6694823.java.i
index 8c69711..4c42606 100644
Binary files a/jdk/.hg/store/data/test/javax/swing/_j_popup_menu/6694823/bug6694823.java.i and b/jdk/.hg/store/data/test/javax/swing/_j_popup_menu/6694823/bug6694823.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/swing/_swing_utilities/7088744/bug7088744.java.i b/jdk/.hg/store/data/test/javax/swing/_swing_utilities/7088744/bug7088744.java.i
new file mode 100644
index 0000000..543048b
Binary files /dev/null and b/jdk/.hg/store/data/test/javax/swing/_swing_utilities/7088744/bug7088744.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/bug7030332.html.i b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/bug7030332.html.i
new file mode 100644
index 0000000..ea5a0e2
Binary files /dev/null and b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/bug7030332.html.i differ
diff --git a/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/bug7030332.java.i b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/bug7030332.java.i
new file mode 100644
index 0000000..9fd34cc
Binary files /dev/null and b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/bug7030332.java.i differ
diff --git a/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample0.png.i b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample0.png.i
new file mode 100644
index 0000000..9375825
Binary files /dev/null and b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample0.png.i differ
diff --git a/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample1.png.i b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample1.png.i
new file mode 100644
index 0000000..9375825
Binary files /dev/null and b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample1.png.i differ
diff --git a/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample2.png.i b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample2.png.i
new file mode 100644
index 0000000..9375825
Binary files /dev/null and b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample2.png.i differ
diff --git a/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample3.png.i b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample3.png.i
new file mode 100644
index 0000000..c9e36ed
Binary files /dev/null and b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample3.png.i differ
diff --git a/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample4.png.i b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample4.png.i
new file mode 100644
index 0000000..c9e36ed
Binary files /dev/null and b/jdk/.hg/store/data/test/javax/swing/text/html/_table_view/7030332/sample4.png.i differ
diff --git a/jdk/.hg/store/data/test/javax/xml/crypto/dsig/_security_manager/_x_m_l_d_sig_with_sec_mgr.java.i b/jdk/.hg/store/data/test/javax/xml/crypto/dsig/_security_manager/_x_m_l_d_sig_with_sec_mgr.java.i
index ff50351..96b755c 100644
Binary files a/jdk/.hg/store/data/test/javax/xml/crypto/dsig/_security_manager/_x_m_l_d_sig_with_sec_mgr.java.i and b/jdk/.hg/store/data/test/javax/xml/crypto/dsig/_security_manager/_x_m_l_d_sig_with_sec_mgr.java.i differ
diff --git a/jdk/.hg/store/data/test/lib/security/java.policy/_ext___all_policy.sh.i b/jdk/.hg/store/data/test/lib/security/java.policy/_ext___all_policy.sh.i
index 2a0743f..a77f540 100644
Binary files a/jdk/.hg/store/data/test/lib/security/java.policy/_ext___all_policy.sh.i and b/jdk/.hg/store/data/test/lib/security/java.policy/_ext___all_policy.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/jvmstat/perfdata/_prolog_sanity/_prolog_size_sanity_check.java.i b/jdk/.hg/store/data/test/sun/jvmstat/perfdata/_prolog_sanity/_prolog_size_sanity_check.java.i
index 93596de..8323529 100644
Binary files a/jdk/.hg/store/data/test/sun/jvmstat/perfdata/_prolog_sanity/_prolog_size_sanity_check.java.i and b/jdk/.hg/store/data/test/sun/jvmstat/perfdata/_prolog_sanity/_prolog_size_sanity_check.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/misc/_jar_index/meta_inf_filenames/_basic.java.i b/jdk/.hg/store/data/test/sun/misc/_jar_index/meta_inf_filenames/_basic.java.i
index 0492e5e..01e9d55 100644
Binary files a/jdk/.hg/store/data/test/sun/misc/_jar_index/meta_inf_filenames/_basic.java.i and b/jdk/.hg/store/data/test/sun/misc/_jar_index/meta_inf_filenames/_basic.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/net/www/protocol/file/_dir_permission_denied.sh.i b/jdk/.hg/store/data/test/sun/net/www/protocol/file/_dir_permission_denied.sh.i
index 373b410..5ea9ab3 100644
Binary files a/jdk/.hg/store/data/test/sun/net/www/protocol/file/_dir_permission_denied.sh.i and b/jdk/.hg/store/data/test/sun/net/www/protocol/file/_dir_permission_denied.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/nio/cs/_test_cp834___s_b_c_s.java.i b/jdk/.hg/store/data/test/sun/nio/cs/_test_cp834___s_b_c_s.java.i
index af72810..4482d61 100644
Binary files a/jdk/.hg/store/data/test/sun/nio/cs/_test_cp834___s_b_c_s.java.i and b/jdk/.hg/store/data/test/sun/nio/cs/_test_cp834___s_b_c_s.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ec/_test_e_c.java.i b/jdk/.hg/store/data/test/sun/security/ec/_test_e_c.java.i
index 9d726dc..f9ffffc 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ec/_test_e_c.java.i and b/jdk/.hg/store/data/test/sun/security/ec/_test_e_c.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/jgss/spnego/_no_spnego_as_def_mech.java.i b/jdk/.hg/store/data/test/sun/security/jgss/spnego/_no_spnego_as_def_mech.java.i
index 86df90a..59407ba 100644
Binary files a/jdk/.hg/store/data/test/sun/security/jgss/spnego/_no_spnego_as_def_mech.java.i and b/jdk/.hg/store/data/test/sun/security/jgss/spnego/_no_spnego_as_def_mech.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/krb5/_krb5_name_equals.java.i b/jdk/.hg/store/data/test/sun/security/krb5/_krb5_name_equals.java.i
index 2f7304d..1919a7c 100644
Binary files a/jdk/.hg/store/data/test/sun/security/krb5/_krb5_name_equals.java.i and b/jdk/.hg/store/data/test/sun/security/krb5/_krb5_name_equals.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/krb5/auto/_dup_etypes.java.i b/jdk/.hg/store/data/test/sun/security/krb5/auto/_dup_etypes.java.i
new file mode 100644
index 0000000..5891bc4
Binary files /dev/null and b/jdk/.hg/store/data/test/sun/security/krb5/auto/_dup_etypes.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/krb5/auto/_k_d_c.java.i b/jdk/.hg/store/data/test/sun/security/krb5/auto/_k_d_c.java.i
index 5a423a5..81cc178 100644
Binary files a/jdk/.hg/store/data/test/sun/security/krb5/auto/_k_d_c.java.i and b/jdk/.hg/store/data/test/sun/security/krb5/auto/_k_d_c.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/_key_store/_secret_keys_basic.sh.i b/jdk/.hg/store/data/test/sun/security/pkcs11/_key_store/_secret_keys_basic.sh.i
index ec6e4fa..e3f7d7c 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/_key_store/_secret_keys_basic.sh.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/_key_store/_secret_keys_basic.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/_p_k_c_s11_test.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/_p_k_c_s11_test.java.i
index 148dabd..1b906dd 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/_p_k_c_s11_test.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/_p_k_c_s11_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_add_private_key.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_add_private_key.java.i
index b54964f..efbb15d 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_add_private_key.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_add_private_key.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_add_trusted_cert.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_add_trusted_cert.java.i
index 3c9781c..287f947 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_add_trusted_cert.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_add_trusted_cert.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_crypto.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_crypto.java.i
index ac96cd2..f357c45 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_crypto.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_crypto.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_get_private_key.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_get_private_key.java.i
index cc2fe06..af157c1 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_get_private_key.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_get_private_key.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_jks_set_private_key.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_jks_set_private_key.java.i
index 0e82d82..f18d498 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_jks_set_private_key.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_jks_set_private_key.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_trust_anchors.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_trust_anchors.java.i
index 27ec88e..0381583 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_trust_anchors.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod/_trust_anchors.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod_test.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod_test.java.i
index d3962da..e2e3a2b 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod_test.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/_secmod_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_read_certificates.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_read_certificates.java.i
index deb0b01..cbb66c7 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_read_certificates.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_read_certificates.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_read_p_k_c_s12.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_read_p_k_c_s12.java.i
index eb34c67..88ce22a 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_read_p_k_c_s12.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_read_p_k_c_s12.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_test_e_c_d_h.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_test_e_c_d_h.java.i
index e71edc3..cdd0b6e 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_test_e_c_d_h.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_test_e_c_d_h.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_test_e_c_d_s_a.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_test_e_c_d_s_a.java.i
index 22765b2..a7e7d56 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_test_e_c_d_s_a.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/ec/_test_e_c_d_s_a.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/fips/_cipher_test.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/fips/_cipher_test.java.i
index e698903..4dd6925 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/fips/_cipher_test.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/fips/_cipher_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/fips/_client_j_s_s_e_server_j_s_s_e.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/fips/_client_j_s_s_e_server_j_s_s_e.java.i
index 3c93ee2..50016b0 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/fips/_client_j_s_s_e_server_j_s_s_e.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/fips/_client_j_s_s_e_server_j_s_s_e.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/fips/_trust_manager_test.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/fips/_trust_manager_test.java.i
index b169427..3a14410 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/fips/_trust_manager_test.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/fips/_trust_manager_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/rsa/_test_c_a_certs.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/rsa/_test_c_a_certs.java.i
index 0d45bd3..042dfb0 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/rsa/_test_c_a_certs.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/rsa/_test_c_a_certs.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs11/sslecc/_client_j_s_s_e_server_j_s_s_e.java.i b/jdk/.hg/store/data/test/sun/security/pkcs11/sslecc/_client_j_s_s_e_server_j_s_s_e.java.i
index caf5e84..9d2024a 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs11/sslecc/_client_j_s_s_e_server_j_s_s_e.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs11/sslecc/_client_j_s_s_e_server_j_s_s_e.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/pkcs12/_p_k_c_s12_same_key_id.java.i b/jdk/.hg/store/data/test/sun/security/pkcs12/_p_k_c_s12_same_key_id.java.i
index 47e2705..a6446cd 100644
Binary files a/jdk/.hg/store/data/test/sun/security/pkcs12/_p_k_c_s12_same_key_id.java.i and b/jdk/.hg/store/data/test/sun/security/pkcs12/_p_k_c_s12_same_key_id.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/provider/_policy_file/_comparator.java.i b/jdk/.hg/store/data/test/sun/security/provider/_policy_file/_comparator.java.i
index c55d83c..d99b40f 100644
Binary files a/jdk/.hg/store/data/test/sun/security/provider/_policy_file/_comparator.java.i and b/jdk/.hg/store/data/test/sun/security/provider/_policy_file/_comparator.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/_s_s_l_security/_provider_test.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/_s_s_l_security/_provider_test.java.i
index 07308e9..3b4e8d4 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/_s_s_l_security/_provider_test.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/_s_s_l_security/_provider_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_read_blocks_close.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_read_blocks_close.java.i
index 0db50bc..b05b889 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_read_blocks_close.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_read_blocks_close.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_read_handshake.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_read_handshake.java.i
index 24c3ea4..666243f 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_read_handshake.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_read_handshake.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_read_zero_bytes.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_read_zero_bytes.java.i
index 07ec19a..46bf237 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_read_zero_bytes.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_read_zero_bytes.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_remove_mark_reset.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_remove_mark_reset.java.i
index d970382..98ce0f2 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_remove_mark_reset.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_input_stream/_remove_mark_reset.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_output_stream/_no_exception_on_close.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_output_stream/_no_exception_on_close.java.i
index 706bf6d..4de4664 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_output_stream/_no_exception_on_close.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_app_output_stream/_no_exception_on_close.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_client_handshaker/_cipher_suite_order.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_client_handshaker/_cipher_suite_order.java.i
index a759d55..f3f7af8 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_client_handshaker/_cipher_suite_order.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_client_handshaker/_cipher_suite_order.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_client_handshaker/_r_s_a_export.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_client_handshaker/_r_s_a_export.java.i
index 3bdf159..eeaeb81 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_client_handshaker/_r_s_a_export.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_client_handshaker/_r_s_a_export.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_gen_s_s_l_configs/main.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_gen_s_s_l_configs/main.java.i
index 8301dc0..27090ef 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_gen_s_s_l_configs/main.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_gen_s_s_l_configs/main.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_handshake_out_stream/_null_certs.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_handshake_out_stream/_null_certs.java.i
index 3c1b633..b20ae68 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_handshake_out_stream/_null_certs.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_handshake_out_stream/_null_certs.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_input_record/_client_hello_read.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_input_record/_client_hello_read.java.i
index bbc7d60..17267c5 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_input_record/_client_hello_read.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_input_record/_client_hello_read.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_input_record/_s_s_l_socket_timeout_nulls.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_input_record/_s_s_l_socket_timeout_nulls.java.i
index 6ccd820..db4dc7f 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_input_record/_s_s_l_socket_timeout_nulls.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_input_record/_s_s_l_socket_timeout_nulls.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_protocol_version/_https_protocols.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_protocol_version/_https_protocols.java.i
index df8ca6e..904da8f 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_protocol_version/_https_protocols.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_protocol_version/_https_protocols.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_context_impl/_bad_k_s_provider.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_context_impl/_bad_k_s_provider.java.i
index c42796c..36ab0c5 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_context_impl/_bad_k_s_provider.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_context_impl/_bad_k_s_provider.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_context_impl/_bad_t_s_provider.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_context_impl/_bad_t_s_provider.java.i
index 54bdd45..2c8cbf8 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_context_impl/_bad_t_s_provider.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_context_impl/_bad_t_s_provider.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_context_impl/_good_provider.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_context_impl/_good_provider.java.i
index 57a764e..c88ead1 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_context_impl/_good_provider.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_context_impl/_good_provider.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_engine_impl/_rehandshake_finished.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_engine_impl/_rehandshake_finished.java.i
index 302f44a..e98ce4e 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_engine_impl/_rehandshake_finished.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_engine_impl/_rehandshake_finished.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_engine_impl/_s_s_l_engine_deadlock.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_engine_impl/_s_s_l_engine_deadlock.java.i
index abfd3e8..a1baa68 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_engine_impl/_s_s_l_engine_deadlock.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_engine_impl/_s_s_l_engine_deadlock.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_session_impl/_hash_code_missing.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_session_impl/_hash_code_missing.java.i
index a7ebf72..6617c67 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_session_impl/_hash_code_missing.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_session_impl/_hash_code_missing.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_async_s_s_l_socket_close.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_async_s_s_l_socket_close.java.i
index 2545a8c..8d24847 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_async_s_s_l_socket_close.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_async_s_s_l_socket_close.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_client_mode_client_auth.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_client_mode_client_auth.java.i
index 4d3ac09..12326c5 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_client_mode_client_auth.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_client_mode_client_auth.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_client_timeout.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_client_timeout.java.i
index 19616ca..6b2e956 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_client_timeout.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_client_timeout.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_close_socket_exception.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_close_socket_exception.java.i
index 90253c7..16352b5 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_close_socket_exception.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_close_socket_exception.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_invalidate_server_session_renegotiate.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_invalidate_server_session_renegotiate.java.i
index 2919c1e..6683f1b 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_invalidate_server_session_renegotiate.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_invalidate_server_session_renegotiate.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_new_socket_methods.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_new_socket_methods.java.i
index 45fd379..9bb143c 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_new_socket_methods.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_new_socket_methods.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_non_auto_close.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_non_auto_close.java.i
index 5e3fff8..0f4661b 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_non_auto_close.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_non_auto_close.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_reuse_addr.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_reuse_addr.java.i
index 63ce62d..60c3645 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_reuse_addr.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_reuse_addr.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_reverse_name_lookup.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_reverse_name_lookup.java.i
index 70daac3..d671a31 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_reverse_name_lookup.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_reverse_name_lookup.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_server_timeout.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_server_timeout.java.i
index 3de3379..bf81f66 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_server_timeout.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_server_timeout.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_set_client_mode.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_set_client_mode.java.i
index 317a476..2d474b8 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_set_client_mode.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_set_client_mode.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_unconnected_socket_wrong_exceptions.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_unconnected_socket_wrong_exceptions.java.i
index 0cf570f..97f114a 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_unconnected_socket_wrong_exceptions.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_s_s_l_socket_impl/_unconnected_socket_wrong_exceptions.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_server_handshaker/_anon_cipher_with_want_client_auth.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_server_handshaker/_anon_cipher_with_want_client_auth.java.i
index 29b943c..ac94eea 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_server_handshaker/_anon_cipher_with_want_client_auth.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_server_handshaker/_anon_cipher_with_want_client_auth.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_server_handshaker/_get_peer_host.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_server_handshaker/_get_peer_host.java.i
index e31aa49..57c97d8 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_server_handshaker/_get_peer_host.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_server_handshaker/_get_peer_host.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_socket_creation/_socket_creation.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_socket_creation/_socket_creation.java.i
index 28de9ee..c807baf 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_socket_creation/_socket_creation.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_socket_creation/_socket_creation.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_client_server.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_client_server.java.i
index e591cb7..63828c5 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_client_server.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_client_server.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_p_k_i_x_extended_t_m.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_p_k_i_x_extended_t_m.java.i
index cb09735..49aabf8 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_p_k_i_x_extended_t_m.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_p_k_i_x_extended_t_m.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_self_issued_cert.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_self_issued_cert.java.i
index 8a015f6..725393c 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_self_issued_cert.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_self_issued_cert.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_sun_x509_extended_t_m.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_sun_x509_extended_t_m.java.i
index d442d74..2cd29e6 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_sun_x509_extended_t_m.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_sun_x509_extended_t_m.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_x509_extended_t_m_enabled.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_x509_extended_t_m_enabled.java.i
index 483981e..c3296b6 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_x509_extended_t_m_enabled.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/_x509_trust_manager_impl/_x509_extended_t_m_enabled.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/_provider_init.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/_provider_init.java.i
index f43059a..474c09c 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/_provider_init.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/_provider_init.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/_https_client/_proxy_auth_test.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/_https_client/_proxy_auth_test.java.i
index 0f4b82e..5a5bad6 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/_https_client/_proxy_auth_test.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/_https_client/_proxy_auth_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/_https_client/_server_identity_test.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/_https_client/_server_identity_test.java.i
index d2e75c3..807d949 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/_https_client/_server_identity_test.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/_https_client/_server_identity_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/_https_u_r_l_connection/_get_response_code.java.i b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/_https_u_r_l_connection/_get_response_code.java.i
index e523d93..ac75af8 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/_https_u_r_l_connection/_get_response_code.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/_https_u_r_l_connection/_get_response_code.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fix5070632.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fix5070632.java.i
index 04b3cdb..dd8a59a 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fix5070632.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fix5070632.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_com_u_r_l_nulls.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_com_u_r_l_nulls.java.i
index e13c1f9..8abe808 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_com_u_r_l_nulls.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_com_u_r_l_nulls.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_implicit_handshake.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_implicit_handshake.java.i
index 7ac4d40..7a71a8c 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_implicit_handshake.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_implicit_handshake.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_javax_u_r_l_nulls.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_javax_u_r_l_nulls.java.i
index dcb532c..fd979d9 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_javax_u_r_l_nulls.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_javax_u_r_l_nulls.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_s_s_l_session_nulls.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_s_s_l_session_nulls.java.i
index fecd0c1..2ce0c55 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_s_s_l_session_nulls.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_s_s_l_session_nulls.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_s_s_l_socket_inherit.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_s_s_l_socket_inherit.java.i
index a28b280..d9cc7c7 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_s_s_l_socket_inherit.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_fixing_javadocs/_s_s_l_socket_inherit.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_check_my_trusted_keystore.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_check_my_trusted_keystore.java.i
index 478b851..7ae0dbb 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_check_my_trusted_keystore.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_check_my_trusted_keystore.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_https_u_r_l_connection_local_certificate_chain.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_https_u_r_l_connection_local_certificate_chain.java.i
index 47ac249..03c3dcd 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_https_u_r_l_connection_local_certificate_chain.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_https_u_r_l_connection_local_certificate_chain.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_j_s_s_e_renegotiate.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_j_s_s_e_renegotiate.java.i
index d47d100..c110353 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_j_s_s_e_renegotiate.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_j_s_s_e_renegotiate.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_key_manager_trust_manager.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_key_manager_trust_manager.java.i
index 7754c85..8d4b1e2 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_key_manager_trust_manager.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_key_manager_trust_manager.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_ctx_access_to_sess_ctx.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_ctx_access_to_sess_ctx.java.i
index c40c5ec..f5a10c9 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_ctx_access_to_sess_ctx.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_ctx_access_to_sess_ctx.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_accept_large_fragments.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_accept_large_fragments.java.i
index 76c18fe..de404ed 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_accept_large_fragments.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_accept_large_fragments.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_extended_key_socket.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_extended_key_socket.java.i
index 94ee415..80f7740 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_extended_key_socket.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_extended_key_socket.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_large_packet.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_large_packet.java.i
index 49f27c2..45100a0 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_large_packet.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_large_packet.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_no_auth_client_auth.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_no_auth_client_auth.java.i
index c33e250..9513561 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_no_auth_client_auth.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_s_s_l_engine/_no_auth_client_auth.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_session_cache_size_tests.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_session_cache_size_tests.java.i
index 917721d..85cc62f 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_session_cache_size_tests.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_session_cache_size_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_session_time_out_tests.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_session_time_out_tests.java.i
index 6bf4b89..cf6349e 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_session_time_out_tests.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/_session_time_out_tests.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/test_enabled_protocols.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/test_enabled_protocols.java.i
index ac1b0ac..15a97c2 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/test_enabled_protocols.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_new_a_p_is/test_enabled_protocols.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_s_s_l_server_socket/_default_s_s_l_serv_socket_fac.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_s_s_l_server_socket/_default_s_s_l_serv_socket_fac.java.i
index a49ff08..27e80ee 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_s_s_l_server_socket/_default_s_s_l_serv_socket_fac.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_s_s_l_server_socket/_default_s_s_l_serv_socket_fac.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_empty_certificate_authorities.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_empty_certificate_authorities.java.i
index 88bbff0..f4a2987 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_empty_certificate_authorities.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_empty_certificate_authorities.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_exportable_block_cipher.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_exportable_block_cipher.java.i
index c5e5580..3a19f31 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_exportable_block_cipher.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_exportable_block_cipher.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_exportable_stream_cipher.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_exportable_stream_cipher.java.i
index 5968df8..effd03c 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_exportable_stream_cipher.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_exportable_stream_cipher.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_generic_block_cipher.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_generic_block_cipher.java.i
index 017f452..6129575 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_generic_block_cipher.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_generic_block_cipher.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_generic_stream_cipher.java.i b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_generic_stream_cipher.java.i
index 7aa7fd7..73aff72 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_generic_stream_cipher.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/javax/net/ssl/_t_l_sv11/_generic_stream_cipher.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sanity/pluggability/_check_s_s_l_context_export.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sanity/pluggability/_check_s_s_l_context_export.java.i
index dff7cd8..840f1f5 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sanity/pluggability/_check_s_s_l_context_export.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sanity/pluggability/_check_s_s_l_context_export.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sanity/pluggability/_check_sock_fac_export1.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sanity/pluggability/_check_sock_fac_export1.java.i
index 4df0a66..9ff70c9 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sanity/pluggability/_check_sock_fac_export1.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sanity/pluggability/_check_sock_fac_export1.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sanity/pluggability/_check_sock_fac_export2.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sanity/pluggability/_check_sock_fac_export2.java.i
index 371d317..354221a 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sanity/pluggability/_check_sock_fac_export2.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sanity/pluggability/_check_sock_fac_export2.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/http/_chunked_output_stream/_test.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/http/_chunked_output_stream/_test.java.i
index 1109d0d..e1f52a5 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/http/_chunked_output_stream/_test.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/http/_chunked_output_stream/_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_b6216082.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_b6216082.java.i
index ef541ed..d3e003e 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_b6216082.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_b6216082.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_close_keep_alive_cached.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_close_keep_alive_cached.java.i
index 9a7b417..1e71df2 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_close_keep_alive_cached.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_close_keep_alive_cached.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_cookie_handler_test.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_cookie_handler_test.java.i
index 402cf5d..e900701 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_cookie_handler_test.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_cookie_handler_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_d_n_s_identities.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_d_n_s_identities.java.i
index f968bd1..5ef80a6 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_d_n_s_identities.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_d_n_s_identities.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_create_sock_test.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_create_sock_test.java.i
index 7bf0f96..a3d691d 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_create_sock_test.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_create_sock_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_post.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_post.java.i
index 288371b..c558036 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_post.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_post.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_proxy_stack_overflow.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_proxy_stack_overflow.java.i
index 6bdfe90..c15d630 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_proxy_stack_overflow.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_proxy_stack_overflow.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_socket_fac_test.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_socket_fac_test.java.i
index d201783..ea13ace 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_socket_fac_test.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_https_socket_fac_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_i_p_address_d_n_s_identities.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_i_p_address_d_n_s_identities.java.i
index 379b21e..aea1c65 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_i_p_address_d_n_s_identities.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_i_p_address_d_n_s_identities.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_i_p_address_i_p_identities.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_i_p_address_i_p_identities.java.i
index 6cb99e7..63f173d 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_i_p_address_i_p_identities.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_i_p_address_i_p_identities.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_i_p_identities.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_i_p_identities.java.i
index 123216f..adbb386 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_i_p_identities.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_i_p_identities.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_identities.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_identities.java.i
index 144a16d..06d78b0 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_identities.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_identities.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_post_thru_proxy.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_post_thru_proxy.java.i
index 59c51cf..d5ead21 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_post_thru_proxy.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_post_thru_proxy.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_read_timeout.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_read_timeout.java.i
index e53e8f0..5e234be 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_read_timeout.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_read_timeout.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_redirect.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_redirect.java.i
index 7a0c9c3..96a75cf 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_redirect.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_redirect.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_retry_https.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_retry_https.java.i
index 0d79cfe..84bd679 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_retry_https.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_https_u_r_l_connection/_retry_https.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_com_h_t_t_p_s_connection.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_com_h_t_t_p_s_connection.java.i
index 2237041..a941208 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_com_h_t_t_p_s_connection.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_com_h_t_t_p_s_connection.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_com_hostname_verifier.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_com_hostname_verifier.java.i
index 077c6c0..9fca80d 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_com_hostname_verifier.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_com_hostname_verifier.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_javax_h_t_t_p_s_connection.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_javax_h_t_t_p_s_connection.java.i
index 0e75f8e..5e830d9 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_javax_h_t_t_p_s_connection.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_javax_h_t_t_p_s_connection.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_javax_hostname_verifier.java.i b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_javax_hostname_verifier.java.i
index 49a7957..f974022 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_javax_hostname_verifier.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/sun/net/www/protocol/https/_new_impl/_javax_hostname_verifier.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/templates/_s_s_l_engine_template.java.i b/jdk/.hg/store/data/test/sun/security/ssl/templates/_s_s_l_engine_template.java.i
index ea50763..06cb09e 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/templates/_s_s_l_engine_template.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/templates/_s_s_l_engine_template.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/ssl/templates/_s_s_l_socket_template.java.i b/jdk/.hg/store/data/test/sun/security/ssl/templates/_s_s_l_socket_template.java.i
index 2df48bd..e885719 100644
Binary files a/jdk/.hg/store/data/test/sun/security/ssl/templates/_s_s_l_socket_template.java.i and b/jdk/.hg/store/data/test/sun/security/ssl/templates/_s_s_l_socket_template.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/jarsigner/_alg_options.sh.i b/jdk/.hg/store/data/test/sun/security/tools/jarsigner/_alg_options.sh.i
index 042dc37..0b73ce3 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/jarsigner/_alg_options.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/jarsigner/_alg_options.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/jarsigner/_percent_sign.sh.i b/jdk/.hg/store/data/test/sun/security/tools/jarsigner/_percent_sign.sh.i
index 13bbf21..92beb77 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/jarsigner/_percent_sign.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/jarsigner/_percent_sign.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/jarsigner/concise__jarsigner.sh.i b/jdk/.hg/store/data/test/sun/security/tools/jarsigner/concise__jarsigner.sh.i
index ea04a6a..159abcb 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/jarsigner/concise__jarsigner.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/jarsigner/concise__jarsigner.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/jarsigner/diffend.sh.i b/jdk/.hg/store/data/test/sun/security/tools/jarsigner/diffend.sh.i
index c05399d..621694d 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/jarsigner/diffend.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/jarsigner/diffend.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/jarsigner/oldsig.sh.i b/jdk/.hg/store/data/test/sun/security/tools/jarsigner/oldsig.sh.i
index 0d812cc..69166c4 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/jarsigner/oldsig.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/jarsigner/oldsig.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/keytool/_alt_provider_path.sh.i b/jdk/.hg/store/data/test/sun/security/tools/keytool/_alt_provider_path.sh.i
index 4dcce24..26aa567 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/keytool/_alt_provider_path.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/keytool/_alt_provider_path.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/keytool/_secret_key_k_s.sh.i b/jdk/.hg/store/data/test/sun/security/tools/keytool/_secret_key_k_s.sh.i
index f28e1ee..07a1792 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/keytool/_secret_key_k_s.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/keytool/_secret_key_k_s.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/keytool/_standard_alg_name.sh.i b/jdk/.hg/store/data/test/sun/security/tools/keytool/_standard_alg_name.sh.i
index 8948587..fcc5774 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/keytool/_standard_alg_name.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/keytool/_standard_alg_name.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/keytool/_start_date_test.java.i b/jdk/.hg/store/data/test/sun/security/tools/keytool/_start_date_test.java.i
index 0566338..638068a 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/keytool/_start_date_test.java.i and b/jdk/.hg/store/data/test/sun/security/tools/keytool/_start_date_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/keytool/i18n.sh.i b/jdk/.hg/store/data/test/sun/security/tools/keytool/i18n.sh.i
index 22ae00c..6b02000 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/keytool/i18n.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/keytool/i18n.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/keytool/resource.sh.i b/jdk/.hg/store/data/test/sun/security/tools/keytool/resource.sh.i
index 4c7f718..ed6e90a 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/keytool/resource.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/keytool/resource.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/keytool/trystore.sh.i b/jdk/.hg/store/data/test/sun/security/tools/keytool/trystore.sh.i
new file mode 100644
index 0000000..23f354f
Binary files /dev/null and b/jdk/.hg/store/data/test/sun/security/tools/keytool/trystore.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/policytool/_alias.sh.i b/jdk/.hg/store/data/test/sun/security/tools/policytool/_alias.sh.i
index de0b811..2b290fd 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/policytool/_alias.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/policytool/_alias.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/policytool/_change_u_i.sh.i b/jdk/.hg/store/data/test/sun/security/tools/policytool/_change_u_i.sh.i
index 6114f8a..c246ac4 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/policytool/_change_u_i.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/policytool/_change_u_i.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/policytool/_open_policy.sh.i b/jdk/.hg/store/data/test/sun/security/tools/policytool/_open_policy.sh.i
index 7806d34..45e78f2 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/policytool/_open_policy.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/policytool/_open_policy.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/policytool/_save_as.sh.i b/jdk/.hg/store/data/test/sun/security/tools/policytool/_save_as.sh.i
index 49a3de5..ffe0a4b 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/policytool/_save_as.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/policytool/_save_as.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/policytool/_update_permissions.sh.i b/jdk/.hg/store/data/test/sun/security/tools/policytool/_update_permissions.sh.i
index d73aeaf..e91297b 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/policytool/_update_permissions.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/policytool/_update_permissions.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/policytool/_use_policy.sh.i b/jdk/.hg/store/data/test/sun/security/tools/policytool/_use_policy.sh.i
index 94b9998..39ba445 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/policytool/_use_policy.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/policytool/_use_policy.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/tools/policytool/i18n.sh.i b/jdk/.hg/store/data/test/sun/security/tools/policytool/i18n.sh.i
index 9127696..f78eb2b 100644
Binary files a/jdk/.hg/store/data/test/sun/security/tools/policytool/i18n.sh.i and b/jdk/.hg/store/data/test/sun/security/tools/policytool/i18n.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/security/x509/_algorithm_id/_extensible_algorithm_id.java.i b/jdk/.hg/store/data/test/sun/security/x509/_algorithm_id/_extensible_algorithm_id.java.i
index d3d52d2..68fe229 100644
Binary files a/jdk/.hg/store/data/test/sun/security/x509/_algorithm_id/_extensible_algorithm_id.java.i and b/jdk/.hg/store/data/test/sun/security/x509/_algorithm_id/_extensible_algorithm_id.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/text/resources/_locale_data.i b/jdk/.hg/store/data/test/sun/text/resources/_locale_data.i
index e8ca242..a709ee6 100644
Binary files a/jdk/.hg/store/data/test/sun/text/resources/_locale_data.i and b/jdk/.hg/store/data/test/sun/text/resources/_locale_data.i differ
diff --git a/jdk/.hg/store/data/test/sun/text/resources/_locale_data_test.java.i b/jdk/.hg/store/data/test/sun/text/resources/_locale_data_test.java.i
index 5b31db1..1a78aa9 100644
Binary files a/jdk/.hg/store/data/test/sun/text/resources/_locale_data_test.java.i and b/jdk/.hg/store/data/test/sun/text/resources/_locale_data_test.java.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/common/_application_setup.sh.i b/jdk/.hg/store/data/test/sun/tools/common/_application_setup.sh.i
index 152b39e..b875144 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/common/_application_setup.sh.i and b/jdk/.hg/store/data/test/sun/tools/common/_application_setup.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jinfo/_basic.sh.i b/jdk/.hg/store/data/test/sun/tools/jinfo/_basic.sh.i
index b66f469..7c34765 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jinfo/_basic.sh.i and b/jdk/.hg/store/data/test/sun/tools/jinfo/_basic.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jmap/_basic.sh.i b/jdk/.hg/store/data/test/sun/tools/jmap/_basic.sh.i
index 0a74e78..45ea663 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jmap/_basic.sh.i and b/jdk/.hg/store/data/test/sun/tools/jmap/_basic.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-_defaults.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-_defaults.sh.i
index d75ecfc..60401ec 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-_defaults.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-_defaults.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-_v__2.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-_v__2.sh.i
index e6ce62c..12bca60 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-_v__2.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-_v__2.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-_vm__2.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-_vm__2.sh.i
index 452d352..3b6ea34 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-_vm__2.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-_vm__2.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-_vvm.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-_vvm.sh.i
index 544437f..4aec8c4 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-_vvm.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-_vvm.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-_vvml.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-_vvml.sh.i
index 988462a..4a47af9 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-_vvml.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-_vvml.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-_vvml__2.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-_vvml__2.sh.i
index c899497..22d3479 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-_vvml__2.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-_vvml__2.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-help.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-help.sh.i
index b83c7b8..c27e840 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-help.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-help.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-l__1.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-l__1.sh.i
index f19bdd3..43cd100 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-l__1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-l__1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-l__2.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-l__2.sh.i
index ef113a2..702ec0c 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-l__2.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-l__2.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-lm.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-lm.sh.i
index df41681..84e2b82 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-lm.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-lm.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-m.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-m.sh.i
index a40a9c3..a06c89c 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-m.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-m.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-m__2.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-m__2.sh.i
index db11713..e40ca71 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-m__2.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-m__2.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-q.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-q.sh.i
index 43cc8d1..73bec07 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-q.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-q.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-v__1.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-v__1.sh.i
index 6707540..fddf7a2 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-v__1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-v__1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jps/jps-vm__1.sh.i b/jdk/.hg/store/data/test/sun/tools/jps/jps-vm__1.sh.i
index 0ab8d05..b0e5efd 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jps/jps-vm__1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jps/jps-vm__1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstack/_basic.sh.i b/jdk/.hg/store/data/test/sun/tools/jstack/_basic.sh.i
index e5f992f..056d91a 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstack/_basic.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstack/_basic.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_class_output1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_class_output1.sh.i
index 4fa0110..aa3b8d8 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_class_output1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_class_output1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_classload_output1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_classload_output1.sh.i
index 72d0fcb..411a95a 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_classload_output1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_classload_output1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_compiler_output1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_compiler_output1.sh.i
index 5c8f964..aefbd56 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_compiler_output1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_compiler_output1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_file_u_r_i_test1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_file_u_r_i_test1.sh.i
index e655af6..0a20b6c 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_file_u_r_i_test1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_file_u_r_i_test1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_capacity_output1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_capacity_output1.sh.i
index de272e7..295442e 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_capacity_output1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_capacity_output1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_cause_output1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_cause_output1.sh.i
index 6ac1af2..cee4bb1 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_cause_output1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_cause_output1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_new_capacity_output1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_new_capacity_output1.sh.i
index 59753b2..9432606 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_new_capacity_output1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_new_capacity_output1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_new_output1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_new_output1.sh.i
index da14a21..c220031 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_new_output1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_new_output1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_old_capacity_output1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_old_capacity_output1.sh.i
index 52f863e..9db8162 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_old_capacity_output1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_old_capacity_output1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_old_output1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_old_output1.sh.i
index f39fa01..482bf7a 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_old_output1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_old_output1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_output1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_output1.sh.i
index 4357009..ef77086 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_output1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_output1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_perm_capacity_output1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_perm_capacity_output1.sh.i
index 307cdb8..d02626a 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_perm_capacity_output1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_gc_perm_capacity_output1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_help.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_help.sh.i
index f7f9171..a489f00 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_help.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_help.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts1.sh.i
index b269b51..7c12fec 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts2.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts2.sh.i
index e2feb29..0ec3f86 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts2.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts2.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts3.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts3.sh.i
index 78fffcf..5af3ea8 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts3.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts3.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts4.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts4.sh.i
index 8cfa1ab..304f388 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts4.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_line_counts4.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_options1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_options1.sh.i
index 280136b..43ec21b 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_options1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_options1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_print_compilation_output1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_print_compilation_output1.sh.i
index 143a43c..ea82275 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_print_compilation_output1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_print_compilation_output1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_snap1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_snap1.sh.i
index 1934563..0491c7a 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_snap1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_snap1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_snap2.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_snap2.sh.i
index 740d385..8fde407 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_snap2.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_snap2.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_time_stamp1.sh.i b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_time_stamp1.sh.i
index e7df2c2..41d2a4d 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstat/jstat_time_stamp1.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstat/jstat_time_stamp1.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_defaults.sh.i b/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_defaults.sh.i
index c0db723..b3e3501 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_defaults.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_defaults.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_external_registry.sh.i b/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_external_registry.sh.i
index a5258ac..87ba268 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_external_registry.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_external_registry.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_port.sh.i b/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_port.sh.i
index 713f644..8d1caa3 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_port.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_port.sh.i differ
diff --git a/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_server_name.sh.i b/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_server_name.sh.i
index 256661d..dc15303 100644
Binary files a/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_server_name.sh.i and b/jdk/.hg/store/data/test/sun/tools/jstatd/jstatd_server_name.sh.i differ
diff --git a/jdk/.hg/store/data/~2ehgtags.i b/jdk/.hg/store/data/~2ehgtags.i
index bc125bd..ddadd6b 100644
Binary files a/jdk/.hg/store/data/~2ehgtags.i and b/jdk/.hg/store/data/~2ehgtags.i differ
diff --git a/jdk/.hg/store/dh/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/sslsocke/sslsocketimplthf8443d8b69f2ec8f99edbca75c61ff807e8fc2a6.i b/jdk/.hg/store/dh/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/sslsocke/sslsocketimplthf8443d8b69f2ec8f99edbca75c61ff807e8fc2a6.i
index 0d77781..bb92a42 100644
Binary files a/jdk/.hg/store/dh/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/sslsocke/sslsocketimplthf8443d8b69f2ec8f99edbca75c61ff807e8fc2a6.i and b/jdk/.hg/store/dh/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/sslsocke/sslsocketimplthf8443d8b69f2ec8f99edbca75c61ff807e8fc2a6.i differ
diff --git a/jdk/.hg/store/dh/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/criticalse5d64c397c474c1b5446962673c16c0408dd0962.i b/jdk/.hg/store/dh/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/criticalse5d64c397c474c1b5446962673c16c0408dd0962.i
index 84fa825..35f78da 100644
Binary files a/jdk/.hg/store/dh/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/criticalse5d64c397c474c1b5446962673c16c0408dd0962.i and b/jdk/.hg/store/dh/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/criticalse5d64c397c474c1b5446962673c16c0408dd0962.i differ
diff --git a/jdk/.hg/store/fncache b/jdk/.hg/store/fncache
index 194c303..14f7734 100644
--- a/jdk/.hg/store/fncache
+++ b/jdk/.hg/store/fncache
@@ -1,36 +1,36 @@
 data/test/java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully_Stub.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_cs_CZ.properties.i
 data/test/sun/rmi/rmic/newrmic/equivalence/NotActivatableServerImpl.java.i
-data/test/java/nio/channels/FileChannel/Position.java.i
+data/test/java/lang/instrument/AInstrumentationTestCase.java.i
 data/src/share/classes/com/sun/tools/jdi/StratumLineInfo.java.i
 data/test/java/util/logging/LoggingNIOChange.java.i
 data/src/share/classes/sun/nio/cs/KOI8_U.java.i
 data/test/java/awt/FontClass/X11FontPathCrashTest.java.i
 data/src/share/classes/sun/nio/fs/Util.java.i
-data/test/sun/nio/cs/OLD/MS932_OLD.java.i
 data/test/javax/management/remote/mandatory/notif/NotSerializableNotifTest.java.i
-data/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/Echo.java.i
 data/src/share/native/common/verify_stub.c.i
 data/src/solaris/doc/sun/man/man1/tnameserv.1.i
 data/src/share/classes/com/sun/tools/example/debug/event/ThreadStartEventSet.java.i
 data/src/share/classes/sun/awt/EventQueueItem.java.i
 data/src/share/classes/java/nio/file/FileSystemAlreadyExistsException.java.i
 data/test/java/util/TimeZone/DaylightTimeTest.java.i
-data/test/sun/security/pkcs11/Provider/ConfigShortPath.java.i
+data/make/com/sun/java/browser/Makefile.i
 data/test/javax/script/E4XErrorTest.java.i
+data/src/share/classes/java/util/TreeMap.java.i
 data/src/share/classes/sun/misc/Launcher.java.i
+data/make/tools/CharsetMapping/IBM870.c2b.i
+data/src/solaris/native/sun/nio/ch/UnixAsynchronousSocketChannelImpl.c.i
+data/src/share/classes/sun/reflect/generics/tree/IntSignature.java.i
 data/test/java/rmi/transport/readTimeout/TestImpl.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_ro_RO.properties.i
-data/test/sun/net/www/ftptest/FtpServer.java.i
-data/test/sun/security/tools/policytool/UsePolicy.sh.i
+data/src/share/classes/javax/swing/plaf/basic/BasicButtonUI.java.i
 data/test/java/beans/Statement/Test4530962.java.i
 data/test/java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/OutputSink.java.i
 data/src/share/sample/vm/clr-jvm/invoked.java.i
-data/src/windows/classes/com/sun/security/auth/module/README.i
+data/src/windows/classes/sun/java2d/d3d/D3DSurfaceDataProxy.java.i
 data/src/share/classes/java/security/Permission.java.i
 data/make/javax/swing/beaninfo/FILES.gmk.i
-data/src/solaris/native/sun/awt/awt_motif21.c.i
+data/src/share/instrument/JarFacade.c.i
 data/test/sun/security/tools/keytool/SecretKeyKS.jks.i
 data/test/java/rmi/server/RemoteObject/unrecognizedRefType/UnrecognizedRefType.java.i
 data/test/com/sun/jdi/Solaris32AndSolaris64Test.sh.i
@@ -38,39 +38,41 @@ data/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_pt.properties.i
 data/test/javax/sound/midi/Gervill/SoftChannel/AllNotesOff.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/ArrayTypeCodes.java.i
+data/src/share/classes/sun/reflect/UnsafeStaticLongFieldAccessorImpl.java.i
 data/src/share/classes/sun/io/CharToByteCp775.java.i
-data/test/java/rmi/reliability/benchmark/bench/serial/Strings.java.i
 data/src/share/classes/sun/text/resources/FormatData_pt.java.i
 data/make/sun/tracing/Makefile.i
 data/make/tools/addjsum/Makefile.i
-data/test/java/util/TreeMap/HeadTailTypeError.java.i
 data/test/java/lang/Long/BitTwiddle.java.i
 data/src/share/classes/java/io/OutputStream.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_es.properties.i
-data/src/share/classes/sun/tools/jconsole/Worker.java.i
+data/test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.sh.i
 data/src/share/classes/java/rmi/Naming.java.i
 data/make/java/nio/genCharsetProvider.sh.i
+data/src/share/classes/com/sun/media/sound/ModelStandardTransform.java.i
 data/test/sun/net/InetAddress/nameservice/dns/cname.sh.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BL.c.i
+data/test/java/io/pathNames/win32/bug6344646.java.i
 data/src/share/classes/sun/awt/image/ByteInterleavedRaster.java.i
+data/src/share/classes/sun/net/httpserver/HttpContextImpl.java.i
 data/test/sun/security/x509/AlgorithmId/SHA256withECDSA.java.i
 data/src/share/classes/com/sun/tools/jdi/LockObject.java.i
 data/src/share/native/sun/font/layout/ThaiShaping.h.i
-data/test/javax/management/remote/mandatory/passwordAuthenticator/jmxremote.password.i
+data/test/sun/net/www/ftptest/FtpAuthHandler.java.i
 data/test/com/sun/jdi/LocalVariableEqual.java.i
-data/src/share/back/JDWP.h.i
-data/src/share/classes/sun/net/www/protocol/http/InMemoryCookieStore.java.i
-data/src/share/demo/management/JTop/README.txt.i
-data/test/javax/sound/midi/Gervill/SimpleSoundbank/RemoveInstrument.java.i
+data/test/com/sun/jdi/GetLocalVariables2Test.java.i
+data/src/share/classes/sun/font/FontFamily.java.i
+data/src/share/classes/javax/naming/ldap/UnsolicitedNotification.java.i
+data/src/share/classes/java/net/SocksConsts.java.i
 data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/EditableAtEndDocument.java.i
 data/test/tools/launcher/lib/i386/lib32/liblibrary.so.i
 data/src/share/classes/com/sun/tools/example/debug/gui/GUI.java.i
-data/test/java/security/Provider/CaseSensitiveServices.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libsoftokn3.so.i
 data/test/java/util/regex/POSIX_ASCII.java.i
 data/src/share/classes/javax/swing/text/LabelView.java.i
-data/test/java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java.i
+data/src/share/classes/sun/security/x509/OIDName.java.i
+data/src/windows/native/sun/windows/awt_Win32GraphicsDevice.h.i
 data/src/share/classes/sun/tools/tree/BinaryEqualityExpression.java.i
-data/test/javax/swing/JSlider/6278700/bug6278700.java.i
+data/test/javax/swing/regtesthelpers/Util.java.i
 data/src/share/sample/jmx/jmx-scandir/src/etc/management.properties.i
 data/src/share/classes/javax/swing/plaf/InputMapUIResource.java.i
 data/src/share/sample/nio/server/StringContent.java.i
@@ -81,92 +83,102 @@ data/src/share/classes/org/relaxng/datatype/DatatypeStreamingValidator.java.i
 data/src/share/classes/javax/swing/ScrollPaneLayout.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_sv_SE.properties.i
 data/src/share/classes/sun/io/CharToByteCp1253.java.i
+data/src/share/classes/sun/text/resources/unorm.icu.i
 data/make/netbeans/world/build.xml.i
+data/src/share/classes/org/openjdk/jigsaw/BaseContext.java.i
 data/make/java/logging/Makefile.i
 data/test/java/lang/management/MemoryMXBean/CollectionUsageThresholdSerialGC.sh.i
-data/test/java/beans/VetoableChangeSupport/1.6.0.ser.i
-data/src/solaris/classes/sun/awt/motif/MWindowPeer.java.i
-data/src/share/classes/sun/net/smtp/SmtpProtocolException.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapItem.java.i
+data/src/windows/classes/sun/nio/fs/WindowsUriSupport.java.i
+data/test/org/openjdk/jigsaw/cli/tsa-cert.pem.i
 data/src/share/classes/sun/java2d/loops/MaskFill.java.i
+data/test/java/util/Collections/CheckedListBash.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/EncryptionElementProxy.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java.i
-data/test/demo/jvmti/hprof/CpuTimesDefineClassTest.java.i
+data/src/share/classes/sun/text/resources/CollationData_cs.java.i
+data/src/share/classes/sun/management/Util.java.i
 data/src/share/classes/com/sun/media/sound/ModelConnectionBlock.java.i
 data/src/share/classes/java/lang/doc-files/iota.gif.i
 data/src/share/classes/java/util/Collections.java.i
+data/src/share/classes/java/awt/doc-files/RadialGradientPaint-3.png.i
 data/test/java/net/Socket/OldSocketImpl.jar.i
 data/src/share/classes/java/net/DatagramPacket.java.i
 data/src/share/classes/javax/swing/text/html/HiddenTagView.java.i
 data/src/share/classes/sun/nio/ch/FileChannelImpl.java.i
 data/src/share/classes/javax/net/package.html.i
 data/make/tools/CharsetMapping/HKSCS_XP.map.i
-data/src/share/classes/sun/security/rsa/RSACore.java.i
+data/src/windows/native/sun/windows/awt_Window.cpp.i
+data/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.SuSE.properties.i
 data/src/share/classes/sun/net/www/protocol/gopher/Handler.java.i
 data/test/java/net/URLClassLoader/HttpTest.java.i
-data/src/windows/bin/i586/jvm.cfg.i
+data/test/java/io/InputStreamReader/GrowAfterEOF.java.i
+data/src/share/classes/java/net/DatagramSocket.java.i
+data/test/demo/jvmti/hprof/HeapSitesTest.java.i
 data/src/share/classes/javax/xml/crypto/dsig/spec/package.html.i
-data/test/java/util/prefs/ExportSubtree.java.i
+data/test/sun/net/www/protocol/file/FileURLTest.java.i
 data/src/share/classes/java/security/InvalidAlgorithmParameterException.java.i
-data/test/sun/security/ssl/javax/net/ssl/NewAPIs/HttpsURLConnectionLocalCertificateChain.java.i
+data/src/solaris/bin/ergo_i586.c.i
 data/src/share/classes/sun/tools/jstat/OutputFormatter.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java.i
 data/src/share/classes/java/awt/event/AdjustmentEvent.java.i
 data/src/share/sample/nio/server/DispatcherN.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthBorder.java.i
+data/src/share/classes/javax/swing/plaf/nimbus/SynthPainterImpl.java.i
+data/src/share/classes/sun/print/PrinterGraphicsConfig.java.i
+data/test/com/sun/security/auth/callback/DialogCallbackHandler/Default.java.i
 data/src/share/classes/com/sun/security/ntlm/Server.java.i
-data/src/solaris/bin/java-rmi.cgi.sh.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS16S32Func.c.i
 data/src/share/classes/sun/io/CharToByteCp1254.java.i
-data/src/solaris/classes/sun/java2d/x11/X11PMBlitLoops.java.i
-data/src/share/native/sun/security/pkcs11/wrapper/pkcs11f.h.i
+data/src/windows/native/sun/awt_common/awt_makecube.cpp.i
 data/make/tools/reorder/tools/util-sparcv9.il.i
+data/src/share/classes/sun/reflect/ConstructorAccessor.java.i
 data/src/share/classes/sun/security/provider/certpath/SunCertPathBuilder.java.i
-data/src/share/classes/sun/nio/ch/IOVecWrapper.java.i
-data/test/javax/management/remote/mandatory/loading/DefaultProviderTest.java.i
 data/src/share/classes/java/awt/doc-files/Button-1.gif.i
 data/src/solaris/instrument/EncodingSupport_md.c.i
-data/src/share/classes/sun/text/resources/FormatData_ar_LY.java.i
+data/test/java/lang/reflect/Constructor/Equals.java.i
+data/src/solaris/doc/sun/man/man1/ja/javap.1.i
 data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCMUtils.c.i
-data/src/share/classes/sun/security/x509/GeneralName.java.i
-data/src/windows/classes/sun/awt/windows/WTrayIconPeer.java.i
+data/src/share/native/sun/font/layout/GlyphPositionAdjustments.cpp.i
 data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties.i
 data/test/java/util/logging/LoggingMXBeanTest.java.i
-data/src/share/classes/sun/text/resources/CollationData_zh_HK.java.i
+data/src/share/demo/applets/MoleculeViewer/models/water.xyz.i
+data/test/java/io/Serializable/nestedReplace/NestedReplace.java.i
 data/src/share/classes/com/sun/tracing/ProviderName.java.i
 data/src/share/classes/javax/sql/RowSetInternal.java.i
-data/src/share/classes/sun/text/resources/FormatData_hr_HR.java.i
+data/test/com/sun/security/auth/module/KeyStoreLoginModule/OptionTest.storePass.i
 data/test/java/security/KeyRep/DESede.pre.1.5.key.i
 data/test/java/lang/module/module-info.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/EllipseShape.java.i
 data/src/share/classes/java/util/concurrent/atomic/AtomicStampedReference.java.i
-data/src/share/classes/sun/tools/asm/StringExpressionConstantData.java.i
-data/test/java/nio/channels/DatagramChannel/ChangingAddress.java.i
+data/src/share/classes/com/sun/jdi/Mirror.java.i
+data/make/tools/classanalyzer/src/com/sun/classanalyzer/ConstantPoolAnalyzer.java.i
 data/src/share/classes/com/sun/tracing/dtrace/FunctionName.java.i
-data/test/javax/imageio/plugins/bmp/BMPSubsamplingTest.java.i
 data/test/java/io/FileOutputStream/ManyFiles.java.i
+data/make/tools/swing-beans/beaninfo/images/JLayeredPaneMono16.gif.i
 data/src/share/classes/java/awt/GradientPaint.java.i
-data/src/share/classes/javax/swing/text/TableView.java.i
-data/src/share/classes/sun/management/counter/perf/PerfStringCounter.java.i
+data/src/share/demo/management/JTop/README.txt.i
+data/test/java/util/Formatter/BasicIntObject.java.i
 data/src/share/classes/java/util/Observer.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java.i
 data/src/share/native/sun/security/ec/ec2_aff.c.i
 data/test/sun/security/tools/keytool/StandardAlgName.sh.i
 data/src/share/classes/com/sun/media/sound/MidiDeviceTransmitterEnvelope.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/GetPropertyAction.java.i
-data/test/java/security/Security/ClassLoaderDeadlock/Deadlock2.java.i
+data/src/share/classes/sun/applet/AppletResourceLoader.java.i
+data/src/share/classes/sun/rmi/server/Activation.java.i
+data/test/sun/tools/jps/jps-q_Output1.awk.i
 data/src/solaris/classes/sun/print/IPPPrintService.java.i
-data/src/share/classes/sun/tools/jconsole/resources/mbeanserverdelegate.gif.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientModeClientAuth.java.i
-data/test/java/awt/image/ConvolveOp/OpCompatibleImageTest.java.i
+data/src/share/native/sun/java2d/loops/ByteBinary4Bit.c.i
+data/src/share/classes/java/net/Socket.java.i
 data/src/share/classes/sun/io/ByteToCharCp858.java.i
 data/src/share/classes/sun/awt/shell/DefaultShellFolder.java.i
-data/test/sun/misc/Hello.class.i
 data/src/share/classes/javax/swing/text/html/CSS.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/DefaultsGenerator.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/ShortArrays.java.i
 data/src/share/classes/java/lang/instrument/Instrumentation.java.i
-data/make/tools/CharsetMapping/IBM500.c2b.i
-data/test/java/security/cert/CertPathValidator/OCSP/AIACert.pem.i
-data/test/sun/net/www/protocol/jar/B4957695.java.i
+data/src/share/classes/sun/io/CharToByteCp964.java.i
+data/test/javax/management/namespace/JMXNamespacesTest.java.i
+data/src/share/classes/sun/net/httpserver/HttpConnection.java.i
+data/test/sun/security/pkcs11/Provider/Absolute.cfg.i
 data/src/share/classes/java/lang/Package.java.i
 data/make/tools/src/build/tools/fontchecker/FontChecker.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifSeparatorUI.java.i
@@ -178,19 +190,21 @@ data/src/share/classes/javax/xml/crypto/XMLCryptoContext.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIColor.java.i
 data/src/share/classes/sun/security/ssl/krb5/Krb5ProxyImpl.java.i
 data/src/share/demo/jvmti/versionCheck/README.txt.i
-data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEG.java.i
+data/src/share/classes/sun/text/bidi/BidiBase.java.i
 data/src/share/classes/java/util/zip/InflaterOutputStream.java.i
+data/make/mkdemo/applets/SimpleGraph/Makefile.i
 data/src/share/classes/java/awt/PaintContext.java.i
 data/src/share/classes/java/awt/GridBagLayoutInfo.java.i
+data/src/share/classes/java/nio/Direct-X-Buffer.java.i
 data/src/share/classes/sun/rmi/rmic/Util.java.i
 data/test/com/sun/jdi/JITDebug.sh.i
 data/src/share/classes/javax/sql/rowset/spi/package.html.i
+data/src/share/classes/sun/awt/image/BytePackedRaster.java.i
+data/src/share/back/ClassLoaderReferenceImpl.h.i
 data/src/share/classes/java/net/ProtocolException.java.i
-data/test/javax/management/openmbean/NullConstructorParamsTest.java.i
 data/test/java/awt/Mixing/OpaqueTest.java.i
 data/src/share/classes/javax/swing/text/html/Option.java.i
 data/src/share/classes/com/sun/tools/attach/AgentLoadException.java.i
-data/test/java/rmi/activation/CommandEnvironment/rmid.security.policy.i
 data/src/share/classes/javax/swing/colorchooser/ColorModelHSL.java.i
 data/src/windows/classes/sun/awt/windows/awtLocalization_pt_BR.properties.i
 data/test/java/rmi/activation/Activatable/downloadParameterClass/rmid.security.policy.i
@@ -198,45 +212,37 @@ data/src/share/classes/java/lang/invoke/MemberName.java.i
 data/src/share/classes/com/sun/rowset/internal/Row.java.i
 data/src/share/classes/java/beans/PropertyChangeListenerProxy.java.i
 data/test/java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.java.i
-data/test/java/lang/annotation/Missing/Marker.java.i
 data/src/share/classes/com/sun/management/ThreadMXBean.java.i
-data/src/share/classes/sun/text/resources/FormatData_bg_BG.java.i
+data/src/share/classes/sun/java2d/FontSupport.java.i
+data/src/share/native/sun/java2d/loops/IntRgbx.h.i
 data/make/tools/swing-beans/beaninfo/images/JSplitPaneMono16.gif.i
 data/make/javax/crypto/policy/unlimited/UNLIMITED.i
 data/src/share/classes/java/util/concurrent/atomic/AtomicMarkableReference.java.i
-data/test/sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java.i
 data/src/share/classes/sun/util/resources/TimeZoneNames_es.java.i
-data/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java.i
-data/test/com/sun/crypto/provider/TLS/prfdata.txt.i
+data/test/java/lang/invoke/PermuteArgsTest.java.i
 data/src/share/classes/sun/nio/fs/NativeBuffer.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextTests.java.i
+data/src/share/native/sun/security/ec/mpprime.h.i
 data/src/solaris/classes/sun/awt/motif/MListPeer.java.i
-data/make/tools/winver/Makefile.i
-data/test/java/lang/instrument/ExampleForClassPath.java.i
+data/test/sun/security/krb5/runNameEquals.sh.i
+data/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleConfig.java.i
 data/test/java/io/Serializable/proxy/replace/ReadResolve.java.i
 data/test/java/util/jar/JarInputStream/signed.jar.i
 data/test/java/util/BitSet/ImportExport.java.i
 data/src/share/classes/com/sun/tools/example/debug/event/LocationTriggerEventSet.java.i
-data/src/share/classes/javax/swing/plaf/package.html.i
 data/test/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.sh.i
 data/src/share/native/com/sun/java/util/jar/pack/bands.h.i
-data/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c.i
-data/test/java/nio/channels/Selector/ConnectWrite.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32S32Func.c.i
 data/src/share/classes/sun/tools/jstat/HeaderClosure.java.i
-data/test/com/sun/jdi/JDIScaffold.java.i
-data/src/solaris/doc/sun/man/man1/native2ascii.1.i
 data/src/share/classes/sun/util/resources/CalendarData_ru.properties.i
 data/test/java/security/Signature/SignWithOutputBuffer.java.i
 data/test/java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html.i
 data/make/tools/CharsetMapping/IBM037.map.i
-data/test/com/sun/net/httpserver/bugs/B6744329.java.i
 data/src/share/classes/com/sun/tools/example/debug/tty/AccessWatchpointSpec.java.i
 data/make/tools/hasher_classes/Makefile.i
-data/src/share/classes/sun/tools/tree/SuperExpression.java.i
 data/make/jpda/back/Makefile.i
 data/src/share/classes/javax/naming/package.html.i
-data/test/java/net/DatagramSocketImpl/CheckDiscard.java.i
+data/make/tools/CharsetMapping/sjis0213.map.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetAvailableInstruments.java.i
 data/src/share/classes/sun/rmi/log/LogHandler.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_vi_VN.properties.i
 data/src/windows/classes/sun/awt/windows/WInputMethod.java.i
@@ -257,95 +263,88 @@ data/test/java/io/File/ListSpace.java.i
 data/test/javax/management/relation/RelationNotificationSeqNoTest.java.i
 data/make/tools/swing-beans/beaninfo/images/JCheckBoxMenuItemMono16.gif.i
 data/src/share/classes/com/sun/jmx/snmp/internal/SnmpMsgProcessingSubSystem.java.i
-data/src/share/classes/javax/sound/midi/Patch.java.i
+data/src/share/classes/javax/management/event/FetchingEventForwarder.java.i
 data/test/sun/tools/jstat/jstatPrintCompilationOutput1.sh.i
-data/test/java/util/PluggableLocale/providersrc/BreakIteratorProviderImpl.java.i
 data/src/solaris/native/sun/awt/awt_List.c.i
 data/test/javax/management/proxy/NotificationEmitterProxy.java.i
-data/src/share/classes/sun/text/resources/FormatData_ja_JP_JP.java.i
+data/src/share/classes/sun/rmi/transport/Transport.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsPopupWindow.java.i
-data/test/com/sun/management/GarbageCollectorMXBean/LastGCInfo.java.i
 data/src/solaris/native/sun/awt/canvas.c.i
 data/src/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java.i
 data/src/share/sample/vm/jvm-clr/invokerExp.h.i
-data/test/sun/rmi/transport/tcp/disableMultiplexing/DisableMultiplexing_Stub.java.i
-data/test/java/util/Locale/Bug4184873Test.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/MonitorTypeException.java.i
+data/src/share/classes/java/lang/Float.java.i
 data/make/sun/headless/reorder-sparc.i
-data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java.i
+data/src/share/native/sun/font/layout/TibetanLayoutEngine.h.i
 data/src/share/classes/sun/security/krb5/KrbApReq.java.i
 data/test/java/nio/file/etc/Exceptions.java.i
-data/src/share/classes/java/sql/SQLOutput.java.i
-data/test/java/io/Serializable/6559775/README.i
+data/test/sun/nio/cs/OLD/IBM939_OLD.java.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/LayerContainer.java.i
+data/test/sun/security/krb5/auto/KDC.java.i
 data/make/templates/bsd-header.i
 data/src/share/classes/com/sun/jdi/Locatable.java.i
 data/test/sun/security/provider/PolicyFile/SomeExtensionClass.java.i
 data/src/share/classes/com/sun/tools/hat/internal/parser/ReadBuffer.java.i
+data/src/share/classes/sun/security/x509/CRLReasonCodeExtension.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifTextPaneUI.java.i
-data/src/solaris/native/sun/awt/awt_TopLevel.h.i
-data/src/share/native/sun/security/pkcs11/wrapper/pkcs-11v2-20a3.h.i
+data/src/share/classes/sun/tools/jconsole/manifest.i
 data/src/share/classes/javax/swing/GroupLayout.java.i
 data/src/share/classes/sun/security/internal/spec/TlsPrfParameterSpec.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsButtonUI.java.i
 data/src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethod.java.i
-data/src/solaris/hpi/native_threads/src/threads_solaris.c.i
+data/test/javax/swing/JTextArea/6940863/bug6940863.java.i
 data/make/tools/src/build/tools/jdwpgen/ArrayTypeNode.java.i
-data/test/sun/net/idn/nfscss.spp.i
+data/src/share/native/sun/security/ec/secoidt.h.i
 data/src/share/classes/sun/nio/ch/IOStatus.java.i
 data/test/java/nio/channels/FileChannel/Args.java.i
 data/src/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java.i
 data/make/javax/sound/mapfile-vers.i
 data/src/share/classes/java/lang/annotation/Inherited.java.i
-data/test/java/util/List/LockStep.java.i
+data/test/java/lang/Class/forName/classes/3.class.i
 data/test/javax/management/loading/ArrayClassTest.java.i
-data/test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.sh.i
-data/src/solaris/classes/sun/awt/X11/XDesktopPeer.java.i
+data/test/sun/security/util/DerOutputStream/LocaleInTime.java.i
+data/src/share/classes/javax/management/MXBean.java.i
 data/make/com/sun/org/apache/xml/Makefile.i
 data/src/share/classes/java/lang/reflect/ReflectAccess.java.i
-data/test/java/security/Provider/SupportsParameter.java.i
+data/make/tools/CharsetMapping/IBM970.map.i
 data/src/share/classes/java/security/SecureRandom.java.i
 data/test/com/sun/jdi/EvalArgs.sh.i
+data/test/java/io/etc/FailingFlushAndClose.java.i
 data/test/java/security/cert/CertificateFactory/openssl/pem.i
 data/src/share/classes/sun/security/validator/SimpleValidator.java.i
-data/test/sun/tools/native2ascii/A2N_6247817.i
 data/src/share/native/sun/security/ec/secitem.c.i
-data/src/share/classes/com/sun/jmx/mbeanserver/DescriptorCache.java.i
-data/src/share/classes/javax/swing/plaf/synth/doc-files/synth.dtd.i
+data/src/share/classes/java/util/concurrent/ForkJoinTask.java.i
+data/src/share/classes/javax/management/timer/TimerNotification.java.i
 data/src/share/classes/sun/text/resources/FormatData_es_BO.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ar_MA.properties.i
 data/make/javax/crypto/policy/limited/default_local.policy.i
 data/src/share/native/java/lang/ResourceBundle.c.i
-data/test/sun/java2d/pisces/Test7036754.java.i
 data/src/share/classes/javax/print/attribute/AttributeSet.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/SignerOutputStream.java.i
-data/src/share/native/sun/awt/medialib/mlib.h.i
-data/src/share/classes/sun/print/resources/orientRevPortrait.png.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputImageTests.java.i
+data/src/share/classes/sun/text/resources/CollationData_it.java.i
 data/src/share/classes/java/lang/invoke/MethodHandleNatives.java.i
 data/test/sun/rmi/server/MarshalOutputStream/marshalForeignStub/MarshalForeignStub_Stub.java.i
-data/test/javax/script/Test5.js.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConvVersion.c.i
-data/test/demo/jvmti/hprof/HeapDumpTest.java.i
+data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/SetLoopType.java.i
 data/src/share/classes/sun/misc/resources/Messages_pt_BR.java.i
 data/src/share/classes/javax/crypto/interfaces/package.html.i
-data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libfreebl_hybrid_3.chk.i
-data/test/java/rmi/server/RMIClassLoader/spi/TestProvider.java.i
-data/test/sun/jvmstat/monitor/HostIdentifier/HostIdentifierCreate.java.i
+data/src/share/classes/java/sql/DataTruncation.java.i
+data/src/share/classes/javax/management/NotificationFilterSupport.java.i
 data/src/share/classes/sun/text/ComposedCharIter.java.i
-data/test/java/lang/instrument/PremainClass/InheritAgent0110.java.i
+data/src/solaris/native/java/net/linux_close.c.i
 data/test/java/net/ipv6tests/B6521014.java.i
 data/src/share/classes/sun/launcher/resources/launcher_es.properties.i
-data/test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh.i
+data/src/share/classes/sun/misc/JavaIOFileDescriptorAccess.java.i
 data/test/java/awt/keyboard/EqualKeyCode/EqualKeyCode.java.i
 data/src/share/classes/sun/security/jca/ProviderList.java.i
-data/test/sun/java2d/pipe/MutableColorTest/MutableColorTest.java.i
-data/test/java/util/AbstractMap/SimpleEntries.java.i
-data/test/java/io/pathNames/win32/bug6344646.java.i
-data/src/share/sample/scripting/scriptpad/src/META-INF/manifest.mf.i
+data/src/share/classes/java/lang/TypeNotPresentException.java.i
+data/test/org/openjdk/jigsaw/hello-native.sh.i
 data/test/sun/security/provider/PolicyParser/ExtDirs2.policy.i
 data/test/java/util/ResourceBundle/Bug4168625Getter.java.i
-data/test/java/lang/ClassLoader/GetDotResource.java.i
 data/src/share/classes/com/sun/jmx/snmp/daemon/CommunicatorServer.java.i
 data/src/share/demo/jvmti/hprof/README.txt.i
-data/test/java/rmi/reliability/benchmark/bench/serial/LongArrays.java.i
+data/test/javax/swing/JInternalFrame/Test6802868.java.i
 data/src/share/classes/javax/sql/rowset/spi/TransactionalWriter.java.i
 data/src/share/classes/sun/rmi/rmic/newrmic/Main.java.i
 data/test/javax/swing/MultiUIDefaults/4331767/bug4331767.java.i
@@ -353,10 +352,8 @@ data/src/share/classes/com/sun/imageio/plugins/gif/GIFStreamMetadataFormatResour
 data/src/share/classes/com/sun/tools/example/debug/bdi/ReferenceTypeSpec.java.i
 data/src/share/classes/java/util/concurrent/locks/AbstractOwnableSynchronizer.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_hi_IN.properties.i
-data/test/javax/swing/JTabbedPane/6670274/bug6670274.java.i
 data/test/java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java.i
 data/make/com/sun/security/auth/module/FILES_java.gmk.i
-data/test/com/sun/jdi/StringConvertTest.sh.i
 data/test/java/net/ipv6tests/ScopeTests.java.i
 data/src/share/classes/javax/naming/ldap/LdapReferralException.java.i
 data/src/share/classes/sun/management/ConnectorAddressLink.java.i
@@ -366,21 +363,21 @@ data/src/share/back/threadControl.h.i
 data/test/javax/script/Test5.java.i
 data/make/java/nio/genExceptions.sh.i
 data/src/windows/native/java/io/FileInputStream_md.c.i
+data/src/share/classes/sun/java2d/loops/ProcessPath.java.i
 data/test/com/sun/jndi/ldap/InvalidLdapFilters.java.i
 data/make/tools/src/build/tools/generatebreakiteratordata/SupplementaryCharacterData.java.i
 data/src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java.i
-data/src/share/classes/sun/security/rsa/RSAKeyFactory.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMManifest.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/InputListener.java.i
 data/test/java/lang/invoke/6998541/Test6998541.java.i
-data/src/share/native/sun/awt/image/jpeg/jdhuff.h.i
+data/src/share/classes/javax/print/attribute/standard/Sides.java.i
 data/test/java/lang/StringCoding/locales.txt.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadZeroBytes.java.i
+data/test/java/net/URL/Protocol.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/AppleUser.java.i
-data/test/java/awt/dnd/ImageDecoratedDnD/DnDTarget.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmThreadingMetaImpl.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libplds4.so.i
-data/src/share/classes/sun/reflect/misc/ConstructorUtil.java.i
-data/test/sun/security/pkcs11/ec/pkcs12/sect193r1server-rsa1024ca.p12.i
+data/src/share/classes/sun/tools/jar/JarVerifierStream.java.i
 data/src/share/sample/scripting/scriptpad/build.properties.i
 data/src/share/classes/javax/imageio/stream/FileImageInputStream.java.i
 data/src/share/lib/cmm/lcms/PYCC.pf.i
@@ -392,29 +389,28 @@ data/make/mkdemo/jni/Poller/Makefile.i
 data/src/share/native/sun/awt/image/jpeg/jerror.h.i
 data/src/share/classes/sun/tools/tree/MethodExpression.java.i
 data/test/java/io/PipedWriter/WriteAfterReaderClose.java.i
+data/test/java/nio/charset/spi/charsetProvider.sp.i
 data/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Solaris_Encoder.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetMaxTransmitters.java.i
 data/src/share/classes/com/sun/tools/jdi/ClassObjectReferenceImpl.java.i
-data/test/java/net/Socket/Timeout.java.i
-data/test/java/util/ResourceBundle/Control/BadControlsTest.java.i
+data/make/tools/swing-beans/beaninfo/images/JSplitPaneColor16.gif.i
 data/src/share/classes/sun/font/FontManagerForSGE.java.i
 data/src/share/classes/overview-core.html.i
-data/src/share/classes/sun/io/ByteToCharCp870.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedType.java.i
+data/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java.i
 data/test/javax/imageio/plugins/jpeg/ReadingInterruptionTest.java.i
-data/test/javax/management/ObjectInstance/MBeanInfoFailTest.java.i
+data/src/share/classes/com/sun/jndi/toolkit/dir/ContainmentFilter.java.i
 data/test/sun/security/x509/GeneralName/Encode.java.i
 data/test/java/beans/Introspector/4168475/infos/ComponentBeanInfo.java.i
 data/test/java/rmi/MarshalledObject/compare/makeAnnotatedRef.i
 data/src/share/native/sun/awt/image/dither.h.i
 data/src/share/classes/com/sun/tools/hat/internal/util/Misc.java.i
-data/test/sun/net/www/httptest/AbstractCallback.java.i
-data/src/windows/native/sun/jkernel/DownloadHelper.h.i
+data/make/tools/swing-beans/beaninfo/images/JFileChooserColor16.gif.i
+data/test/java/io/PushbackReader/Skip.java.i
 data/make/com/sun/security/auth/module/mapfile-vers.i
-data/src/share/classes/sun/java2d/pipe/Region.java.i
+data/make/tools/swing-beans/beaninfo/SwingBeanInfoBase.java.i
 data/src/share/classes/java/sql/SQLException.java.i
 data/src/windows/native/sun/windows/awt_Palette.h.i
-data/test/java/util/ResourceBundle/Control/XmlRB.xml.i
-data/test/com/sun/jndi/cosnaming/CNNameParser.java.i
+data/src/share/classes/sun/management/counter/perf/ByteArrayCounterSnapshot.java.i
 data/src/share/classes/javax/naming/directory/Attributes.java.i
 data/test/com/sun/jdi/NativeInstanceFilter.java.i
 data/test/java/io/Serializable/enum/missingConstant/Write.java.i
@@ -422,65 +418,62 @@ data/src/share/classes/java/lang/management/OperatingSystemMXBean.java.i
 data/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_Util.h.i
 data/src/share/classes/java/security/cert/CertPathValidatorResult.java.i
 data/test/sun/management/jmxremote/bootstrap/ssl/truststore.i
+data/src/share/classes/javax/imageio/ImageWriter.java.i
 data/src/share/classes/javax/xml/crypto/dsig/XMLObject.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libsoftokn3.so.i
-data/test/com/sun/jdi/FieldWatchpoints.java.i
 data/src/linux/doc/man/ja/java.1.i
-data/test/java/security/ProtectionDomain/AllPerm.java.i
+data/src/share/classes/sun/nio/cs/ISO_8859_13.java.i
 data/src/share/back/outStream.h.i
 data/test/java/rmi/activation/Activatable/inactiveGroup/group.security.policy.i
 data/src/share/classes/javax/swing/plaf/basic/icons/image-failed.png.i
 data/src/share/classes/com/sun/jdi/FloatValue.java.i
-data/test/sun/security/provider/PolicyParser/ExtDirsA.java.i
+data/test/javax/sound/midi/Gervill/ModelDestination/SetTransform.java.i
 data/test/java/nio/channels/Channels/ReadByte.java.i
-data/test/javax/print/applet/applet3/Applet3.java.i
+data/test/java/lang/Class/getClasses/Sanity.java.i
 data/src/share/classes/sun/net/www/http/ChunkedOutputStream.java.i
 data/make/sun/image/vis/Makefile.i
 data/src/share/classes/java/security/interfaces/RSAPrivateKey.java.i
 data/src/share/classes/java/rmi/activation/ActivationMonitor.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthConstants.java.i
+data/src/share/classes/java/math/BigDecimal.java.i
 data/src/share/classes/org/relaxng/datatype/helpers/StreamingValidatorImpl.java.i
 data/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java.i
 data/src/share/native/java/lang/fdlibm/src/e_remainder.c.i
 data/src/share/classes/javax/print/attribute/standard/Destination.java.i
-data/test/java/lang/Class/getEnclosingClass/make_src.sh.i
+data/make/tools/CharsetMapping/IBM933.map.i
 data/src/share/classes/sun/nio/fs/PollingWatchService.java.i
 data/src/share/native/sun/awt/libpng/pngwrite.c.i
+data/test/javax/xml/crypto/dsig/data/certs/lugh.crt.i
 data/src/share/classes/javax/management/ManagedOperation.java.i
-data/test/sun/security/pkcs11/MessageDigest/ReinitDigest.java.i
-data/test/java/util/ServiceLoader/FooService.java.i
 data/src/share/classes/sun/security/x509/X509CRLImpl.java.i
 data/src/share/demo/jfc/TransparentRuler/README.txt.i
 data/src/share/classes/sun/audio/AudioStreamSequence.java.i
 data/src/share/classes/sun/text/resources/FormatData_ar_EG.java.i
-data/src/windows/bin/amd64/jvm.cfg.i
+data/test/java/lang/StringBuffer/Substring.java.i
 data/src/share/classes/java/nio/file/attribute/FileOwnerAttributeView.java.i
-data/src/share/sample/vm/jvm-clr/invoker.h.i
-data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelInstrumentIntIntIntInt.java.i
-data/src/share/classes/sun/io/ByteToCharMacCyrillic.java.i
+data/src/share/classes/com/sun/jmx/remote/internal/package.html.i
+data/src/share/classes/java/util/AbstractSet.java.i
+data/src/share/native/sun/java2d/loops/DrawParallelogram.c.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIFont.java.i
 data/test/sun/management/jmxremote/bootstrap/solaris-sparc/launcher.i
 data/src/share/back/StackFrameImpl.c.i
 data/src/share/classes/java/util/concurrent/BlockingQueue.java.i
 data/src/share/doc/stub/java/rmi/activation/ActivationGroup_Stub.java.i
-data/test/java/net/InetAddress/IsHostReachableBug.java.i
 data/src/share/classes/sun/tools/jstat/DescendingMonitorComparator.java.i
 data/src/linux/doc/man/ja/rmid.1.i
 data/test/com/sun/crypto/provider/Cipher/PBE/PBEKeyTest.java.i
 data/src/solaris/native/sun/awt/awt_Event.c.i
 data/test/javax/imageio/plugins/gif/EncodeSubImageTest.java.i
+data/test/java/rmi/testlibrary/ActivationLibrary.java.i
 data/src/share/classes/sun/rmi/server/InactiveGroupException.java.i
 data/src/share/classes/javax/imageio/IIOImage.java.i
-data/test/java/lang/reflect/Proxy/NullClassLoader.java.i
 data/src/share/classes/sun/nio/ch/DevPollSelectorProvider.java.i
 data/src/share/lib/security/java.security-windows.i
-data/src/share/classes/sun/print/PSStreamPrintService.java.i
-data/test/sun/security/pkcs11/KeyStore/BasicData/pk2.key.i
+data/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java.i
 data/src/share/classes/sun/tools/asm/TryData.java.i
 data/make/modules/tools/src/com/sun/classanalyzer/DependencyConfig.java.i
+data/src/solaris/classes/sun/awt/X11/XWindowAttributesData.java.i
 data/src/share/classes/javax/swing/AbstractButton.java.i
 data/test/java/util/zip/ZipFile/LargeZipFile.java.i
-data/src/share/classes/sun/security/util/Debug.java.i
+data/test/java/io/Reader/OpsAfterClose.java.i
 data/test/java/lang/management/ManagementFactory/GetPlatformMXBeans.java.i
 data/src/share/classes/sun/java2d/loops/BlitBg.java.i
 data/test/java/awt/Mixing/HWDisappear.java.i
@@ -488,37 +481,35 @@ data/src/share/classes/sun/util/resources/LocaleNames_tr.properties.i
 data/src/share/classes/java/awt/image/BufferedImageFilter.java.i
 data/src/share/classes/java/net/CacheResponse.java.i
 data/src/share/classes/sun/text/resources/CollationData_ar.java.i
-data/test/java/util/BitSet/StickySize.java.i
-data/src/share/classes/sun/rmi/transport/WeakRef.java.i
+data/src/share/classes/sun/tools/tree/Statement.java.i
+data/src/share/native/java/util/zip/zlib-1.1.3/README.i
 data/src/solaris/classes/sun/awt/X11/XIconWindow.java.i
-data/test/sun/net/www/protocol/http/ChunkedErrorStream.java.i
-data/src/share/classes/sun/util/calendar/ImmutableGregorianDate.java.i
 data/src/share/classes/com/sun/tools/jdi/EventQueueImpl.java.i
 data/test/java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html.i
-data/src/solaris/classes/sun/nio/ch/SctpChannelImpl.java.i
+data/src/solaris/native/sun/awt/awt_Plugin.h.i
+data/src/share/classes/sun/util/locale/LocaleObjectCache.java.i
+data/src/share/classes/java/nio/file/attribute/AclFileAttributeView.java.i
 data/make/tools/swing-beans/beaninfo/images/JDialogMono16.gif.i
-data/test/java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html.i
-data/src/share/native/java/lang/fdlibm/src/w_sinh.c.i
+data/src/share/instrument/PathCharsValidator.c.i
+data/src/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java.i
 data/src/share/classes/sun/misc/resources/Messages_ko.java.i
+data/src/share/classes/sun/nio/fs/BasicFileAttributesHolder.java.i
 data/src/share/classes/javax/swing/ActionMap.java.i
 data/src/solaris/classes/sun/awt/X11/XButtonPeer.java.i
 data/src/share/classes/javax/management/Notification.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ComKeyManagerFactoryImpl.java.i
 data/src/share/native/sun/security/ec/ecp_jm.c.i
-data/test/com/sun/servicetag/servicetag3.properties.i
+data/make/sun/font/reorder-sparc.i
 data/src/share/classes/sun/java2d/loops/DrawPolygons.java.i
 data/src/share/classes/sun/security/krb5/KrbAsRep.java.i
 data/src/share/classes/com/sun/rowset/internal/WebRowSetXmlReader.java.i
-data/test/java/text/Format/DateFormat/Bug6683975.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/package.html.i
 data/src/solaris/native/java/io/FileOutputStream_md.c.i
-data/test/sun/rmi/rmic/newrmic/equivalence/TestInterface.java.i
-data/test/java/awt/Graphics2D/DrawString/RotTransText.java.i
-data/test/javax/script/RhinoExceptionTest.java.i
+data/test/java/net/Socket/ShutdownInput.java.i
 data/src/share/classes/javax/imageio/IIOParamController.java.i
 data/src/share/classes/java/lang/InheritableThreadLocal.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/compress.c.i
 data/src/share/classes/javax/security/auth/Subject.java.i
-data/src/share/classes/sun/net/httpserver/ChunkedInputStream.java.i
+data/src/share/classes/sun/nio/cs/ext/IBM950.java.d
 data/src/share/native/sun/java2d/opengl/OGLMaskFill.h.i
 data/src/share/classes/sun/nio/cs/ext/IBM950.java.i
 data/src/share/classes/sun/misc/JavaLangModuleAccess.java.i
@@ -527,9 +518,9 @@ data/src/share/classes/sun/reflect/generics/scope/ConstructorScope.java.i
 data/src/share/classes/javax/management/relation/RelationTypeNotFoundException.java.i
 data/make/sun/tracing/dtrace/Makefile.i
 data/src/share/classes/sun/reflect/UnsafeShortFieldAccessorImpl.java.i
+data/make/mkdemo/jvmti/mtrace/Makefile.i
 data/src/share/classes/sun/io/ByteToCharMacHebrew.java.i
-data/src/windows/native/sun/windows/awt_DataTransferer.cpp.i
-data/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c.i
+data/src/solaris/classes/sun/awt/X11/XKeySymConstants.java.i
 data/src/share/native/sun/java2d/loops/FourByteAbgrPre.c.i
 data/src/share/classes/sun/security/krb5/internal/Ticket.java.i
 data/src/solaris/native/sun/awt/wsutils.h.i
@@ -540,97 +531,96 @@ data/src/share/native/sun/awt/utility/rect.c.i
 data/test/java/io/InputStreamReader/ReadOffset.java.i
 data/src/share/classes/java/dyn/SwitchPoint.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BL_S16.c.i
-data/src/share/classes/sun/tools/jconsole/Plotter.java.i
+data/src/share/classes/sun/print/CustomMediaTray.java.i
+data/src/share/classes/java/nio/channels/ReadableByteChannel.java.i
 data/src/share/classes/java/awt/FontMetrics.java.i
-data/test/com/sun/jdi/VMConnection.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/icons/Inform.gif.i
 data/src/share/classes/com/sun/crypto/provider/CipherWithWrappingSpi.java.i
-data/src/share/classes/sun/text/resources/FormatData_en.java.i
-data/test/java/security/KeyRep/SerialDSAPubKey.policy.i
-data/test/java/rmi/server/Unreferenced/marshalledObjectGet/MarshalledObjectGet_Stub.java.i
+data/test/java/security/cert/CertPath/Serialize.java.i
 data/src/share/classes/javax/swing/plaf/metal/icons/ocean/upFolder.gif.i
+data/src/share/classes/sun/java2d/cmm/lcms/LCMSTransform.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmClassLoadingMBean.java.i
-data/test/java/beans/PropertyEditor/TestByteTypeValue.java.i
 data/src/share/classes/sun/management/HotspotMemory.java.i
-data/src/share/classes/sun/util/logging/resources/logging_zh_TW.properties.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ProxyTunnelServer.java.i
 data/src/share/classes/sun/tools/tree/NotEqualExpression.java.i
 data/src/share/classes/java/util/zip/Checksum.java.i
 data/test/java/lang/Class/asSubclass/BasicUnit.java.i
 data/src/share/classes/sun/security/x509/CertParseError.java.i
 data/src/windows/classes/sun/awt/windows/WCheckboxMenuItemPeer.java.i
 data/src/share/classes/javax/swing/JMenu.java.i
-data/test/org/openjdk/jigsaw/cli/tsa-cert.pem.i
 data/src/share/native/sun/font/layout/CoverageTables.h.i
 data/src/share/classes/javax/swing/JTable.java.i
 data/src/share/demo/jfc/Metalworks/ContrastMetalTheme.java.i
 data/src/windows/hpi/include/threads_md.h.i
 data/src/share/classes/sun/io/CharToByteISO8859_13.java.i
-data/src/share/classes/com/sun/crypto/provider/DESedeKey.java.i
+data/src/share/classes/com/sun/media/sound/AuFileWriter.java.i
 data/src/share/classes/com/sun/beans/decoder/TrueElementHandler.java.i
 data/src/share/classes/sun/io/CharToByteCp1098.java.i
-data/test/sun/tools/jstat/gcOldCapacityOutput1.awk.i
+data/make/tools/winver/bin/winver.exe.i
+data/src/solaris/classes/sun/nio/fs/SolarisFileStore.java.i
 data/test/java/beans/XMLEncoder/javax_swing_border_SoftBevelBorder.java.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputImageTests.java.i
 data/test/sun/rmi/rmic/minimizeWrapperInstances/Test.java.i
-data/src/windows/classes/sun/nio/ch/SinkChannelImpl.java.i
+data/test/java/io/Serializable/subclass/AbstractObjectInputStream.java.i
 data/src/share/classes/sun/io/CharToByteASCII.java.i
 data/test/java/lang/Class/getMethod/Exceptions.java.i
-data/test/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java.i
+data/test/java/lang/Class/EnumPoseur.java.src.i
 data/test/java/dyn/JavaDocExamples.java.i
-data/test/java/io/BufferedReader/BigMark.java.i
 data/src/share/classes/sun/text/normalizer/CharTrie.java.i
 data/make/tools/swing-beans/beaninfo/images/JTableColor16.gif.i
-data/test/sun/security/mscapi/AccessKeyStore.java.i
+data/src/share/classes/sun/security/internal/spec/TlsRsaPremasterSecretParameterSpec.java.i
 data/src/share/classes/java/security/cert/CertPathBuilderResult.java.i
-data/src/share/classes/sun/io/CharToByteCp1381.java.i
+data/src/linux/doc/man/DO_NOT_EDIT--GENERATED_FILES.i
 data/src/share/classes/javax/imageio/stream/MemoryCacheImageOutputStream.java.i
 data/src/share/classes/sun/util/resources/LocaleData.java.i
 data/test/tools/pack200/pack200-verifier/data/golden.jar.d
 data/src/share/classes/javax/swing/text/InternationalFormatter.java.i
-data/test/javax/sound/midi/Gervill/ModelPerformer/SetVelTo.java.i
-data/src/share/classes/com/sun/jmx/remote/internal/IIOPProxy.java.i
+data/src/share/native/sun/awt/libpng/pngwtran.c.i
+data/src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java.i
+data/test/java/rmi/activation/ActivateFailedException/activateFails/ActivateFails_Stub.java.i
+data/test/javax/management/remote/mandatory/connection/GetConnectionTest.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_it.properties.i
-data/src/share/classes/javax/print/event/PrintJobAttributeListener.java.i
+data/test/sun/misc/Hello.class.i
 data/test/sun/tools/jrunscript/CheckEngine.java.i
 data/src/share/classes/java/rmi/server/UnicastRemoteObject.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/DesCbcMd5EType.java.i
 data/test/java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.java.i
 data/test/java/nio/file/Path/Misc.java.i
 data/src/windows/classes/sun/java2d/windows/GDIBlitLoops.java.i
-data/src/share/classes/sun/misc/Resource.java.i
+data/src/share/native/com/sun/java/util/jar/pack/constants.h.i
+data/src/windows/native/sun/windows/awt_Cursor.cpp.i
 data/test/sun/java2d/GdiRendering/InsetClipping.java.i
 data/make/sun/javazic/tzdata/northamerica.i
-data/src/share/classes/java/awt/AWTEvent.java.i
+data/src/share/classes/javax/sound/sampled/LineUnavailableException.java.i
 data/test/java/util/PriorityQueue/PriorityQueueSort.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/package.html.i
-data/test/java/lang/instrument/appendToClassLoaderSearch/manifest.mf.i
+data/src/share/native/sun/awt/image/jpeg/jdinput.c.i
+data/src/share/demo/jfc/Metalworks/MetalThemeMenu.java.i
 data/src/share/classes/java/security/Security.java.i
 data/src/share/classes/sun/nio/cs/ext/DBCS_ONLY_IBM_EBCDIC_Decoder.java.i
-data/src/share/classes/java/awt/doc-files/RadialGradientPaint-2.png.i
+data/make/tools/README.txt.i
+data/src/share/native/sun/java2d/loops/AnyInt.c.i
 data/src/share/classes/sun/text/resources/FormatData_in.java.i
 data/test/java/rmi/server/UnicastRemoteObject/unexportObject/Ping.java.i
 data/src/share/classes/sun/security/jgss/spnego/SpNegoMechFactory.java.i
 data/src/share/classes/com/sun/tools/jconsole/JConsoleContext.java.i
 data/src/share/classes/javax/swing/BoundedRangeModel.java.i
 data/src/share/classes/com/sun/crypto/provider/HmacSHA1.java.i
-data/test/java/lang/ThreadLocal/ThreadId.java.i
 data/make/java/management/Exportedfiles.gmk.i
+data/src/share/classes/com/sun/media/sound/ModelStandardIndexedDirector.java.i
 data/src/share/classes/javax/print/attribute/standard/Chromaticity.java.i
 data/src/share/classes/com/sun/rowset/JdbcRowSetResourceBundle.java.i
 data/src/share/classes/sun/awt/WindowAccessor.java.i
 data/src/share/classes/sun/rmi/transport/proxy/RMIDirectSocketFactory.java.i
 data/src/share/classes/sun/font/FontManagerNativeLibrary.java.i
 data/src/share/classes/com/sun/security/auth/login/ConfigFile.java.i
-data/src/solaris/native/sun/awt/awt_Label.c.i
 data/src/share/classes/java/nio/Bits.java.i
 data/src/share/classes/sun/dyn/empty/Empty.java.i
-data/test/sun/nio/cs/LatinCharReplacementTWTest.java.i
+data/src/share/classes/sun/security/krb5/KrbKdcReq.java.i
 data/src/share/classes/javax/swing/text/SegmentCache.java.i
-data/test/java/lang/StringBuilder/EnsureCapacity.java.i
-data/test/sun/management/HotspotClassLoadingMBean/ClassToLoad0.java.i
+data/src/solaris/native/sun/awt/awt_motif.c.i
 data/test/java/lang/Runtime/exec/LotsOfDestroys.java.i
-data/test/java/rmi/activation/Activatable/restartLatecomer/rmid.security.policy.i
 data/make/java/nio/genBuffer.sh.i
-data/src/solaris/classes/sun/awt/X11/XMouseInfoPeer.java.i
+data/src/share/classes/com/sun/nio/sctp/InvalidStreamException.java.i
 data/src/windows/native/java/net/NetworkInterface_winXP.c.i
 data/test/java/nio/file/Files/TemporaryFiles.java.i
 data/src/share/classes/java/rmi/registry/package.html.i
@@ -638,31 +628,32 @@ data/src/share/demo/applets/MoleculeViewer/Matrix3D.java.i
 data/src/share/classes/sun/tools/tree/Vset.java.i
 data/test/java/util/concurrent/locks/ReentrantLock/SimpleReentrantLockLoops.java.i
 data/src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c.i
+data/src/share/classes/sun/security/ssl/X509TrustManagerImpl.java.i
+data/src/share/native/sun/awt/libpng/pnginfo.h.i
 data/src/share/classes/sun/java2d/loops/XORComposite.java.i
 data/src/share/classes/javax/swing/DefaultBoundedRangeModel.java.i
 data/make/tools/swing-beans/beaninfo/images/JLabelColor16.gif.i
 data/test/javax/management/monitor/RuntimeExceptionTest.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties.i
-data/src/solaris/classes/sun/awt/motif/java.oblique-fonts.dir.i
-data/test/java/nio/file/attribute/PosixFileAttributeView/Basic.java.i
+data/src/share/classes/com/sun/jdi/request/MonitorWaitedRequest.java.i
+data/make/modules/tools/src/com/sun/classanalyzer/CheckDeps.java.i
+data/src/share/classes/sun/text/resources/CollationData_bg.java.i
 data/test/sun/security/krb5/ktab/KeyString.java.i
+data/src/share/classes/javax/swing/text/BoxView.java.i
 data/src/share/classes/javax/crypto/Cipher.java.i
 data/src/share/classes/sun/net/ConnectionResetException.java.i
-data/src/share/native/com/sun/java/util/jar/pack/bytes.cpp.i
-data/src/share/classes/javax/swing/plaf/metal/icons/ocean/error.png.i
+data/src/solaris/native/sun/awt/awt_MenuBar.h.i
 data/src/share/classes/sun/tools/java/ScannerInputReader.java.i
-data/test/java/text/Collator/Bug5047314.java.i
+data/src/share/classes/javax/swing/plaf/basic/icons/image-delayed.png.i
 data/src/windows/native/sun/windows/awt_AWTEvent.cpp.i
-data/src/share/classes/javax/swing/text/FieldView.java.i
+data/src/share/classes/sun/swing/StringUIClientPropertyKey.java.i
 data/src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java.i
 data/test/tools/launcher/VersionCheck.java.i
 data/src/share/classes/java/lang/doc-files/capupsil.gif.i
 data/src/share/native/sun/security/ec/impl/oid.c.i
-data/test/demo/jvmti/hprof/HeapSitesTest.java.i
+data/test/sun/net/www/protocol/http/SetChunkedStreamingMode.java.i
 data/src/share/bin/wildcard.h.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/EngineEnforceUseClientMode.java.i
-data/test/java/beans/XMLEncoder/java_lang_Character.java.i
 data/src/share/classes/sun/nio/cs/ext/META-INF/services/java.nio.charset.spi.CharsetProvider.i
+data/test/sun/security/ssl/javax/net/ssl/SSLServerSocket/DefaultSSLServSocketFac.java.i
 data/src/share/classes/java/rmi/RemoteException.java.i
 data/src/share/classes/com/sun/tools/example/debug/tty/ModificationWatchpointSpec.java.i
 data/src/share/native/sun/awt/image/jpeg/jmemnobs.c.i
@@ -673,127 +664,124 @@ data/src/share/classes/com/sun/jdi/VMOutOfMemoryException.java.i
 data/test/com/sun/jdi/TwoThreadsTest.java.i
 data/test/java/net/Authenticator/AuthNPETest.java.i
 data/src/share/classes/java/awt/WaitDispatchSupport.java.i
-data/src/share/classes/sun/text/resources/FormatData_mk_MK.java.i
+data/src/share/classes/javax/swing/text/rtf/charsets/cpg850.txt.i
 data/src/share/classes/javax/net/ssl/X509ExtendedTrustManager.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputStreamTests.java.i
-data/test/sun/security/pkcs11/KeyStore/BasicData/p11-activcard.txt.i
-data/test/java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java.i
+data/test/sun/net/www/protocol/http/WebGet.java.i
 data/src/solaris/classes/sun/awt/X11/WindowDimensions.java.i
-data/src/share/classes/com/sun/tools/script/shell/Main.java.i
+data/src/share/classes/javax/accessibility/Accessible.java.i
 data/test/java/util/zip/LargeZip.java.i
-data/test/javax/script/NullUndefinedVarTest.java.i
+data/make/tools/src/build/tools/generatecharacter/CharacterScript.java.i
 data/test/java/io/Reader/SkipInput.txt.i
 data/make/tools/CharsetMapping/MS950.nr.i
 data/src/share/classes/javax/swing/text/html/StyleSheet.java.i
-data/test/java/rmi/reliability/juicer/OrangeEchoImpl.java.i
 data/src/share/classes/javax/xml/crypto/dsig/SignatureProperty.java.i
 data/src/solaris/sample/dtrace/hotspot/gc_time_stat.d.i
-data/test/java/beans/XMLEncoder/java_util_Collections_SynchronizedSet.java.i
 data/test/java/io/Serializable/PutField/Read.java.i
 data/src/share/classes/sun/awt/FontDescriptor.java.i
-data/test/javax/crypto/Cipher/ByteBuffers.java.i
+data/src/share/native/com/sun/media/sound/MidiInDeviceProvider.c.i
 data/src/share/native/sun/awt/libpng/pnggccrd.c.i
 data/src/solaris/native/sun/java2d/loops/mlib_ImageZoom.h.i
 data/src/solaris/classes/sun/awt/X11/XIconInfo.java.i
 data/test/java/lang/instrument/PremainClass/InheritAgent0001.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/Aes128.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifLabelUI.java.i
-data/test/sun/security/tools/policytool/Alias.java.i
+data/src/windows/native/sun/jkernel/graphics/bullet.bmp.i
+data/test/sun/tools/native2ascii/N2A_4636448.i
 data/src/share/native/java/lang/fdlibm/src/e_fmod.c.i
 data/test/com/sun/management/UnixOperatingSystemMXBean/GetMaxFileDescriptorCount.sh.i
-data/src/share/classes/sun/print/PrinterGraphicsConfig.java.i
+data/src/share/classes/sun/tracing/NullProviderFactory.java.i
 data/src/solaris/classes/sun/nio/cs/ext/COMPOUND_TEXT.java.i
-data/test/sun/nio/cs/TestX11CNS.java.i
 data/src/share/classes/java/awt/image/MultiPixelPackedSampleModel.java.i
 data/src/share/classes/java/awt/event/TextListener.java.i
 data/src/share/classes/com/sun/media/sound/MidiInDevice.java.i
 data/src/solaris/classes/sun/nio/cs/ext/COMPOUND_TEXT_Decoder.java.i
-data/test/javax/swing/GroupLayout/6613904/bug6613904.java.i
+data/test/java/io/BufferedReader/Fill.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity_en.properties.i
-data/src/share/classes/sun/net/httpserver/StreamClosedException.java.i
-data/src/share/classes/sun/io/ByteToCharCp1256.java.i
+data/src/share/classes/sun/nio/cs/ext/IBM875.java.i
+data/src/share/classes/sun/nio/ch/Secrets.java.i
 data/src/share/demo/jfc/Metalworks/README.txt.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassAnalyzer.java.i
+data/src/share/native/sun/awt/image/gif/gifdecoder.c.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/TestRender1.java.i
 data/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c.i
 data/src/share/classes/javax/imageio/IIOException.java.i
 data/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java.i
 data/make/tools/swing-beans/beaninfo/images/JAppletMono32.gif.i
 data/src/linux/doc/man/ja/javap.1.i
-data/src/share/classes/sun/misc/Cache.java.i
+data/src/share/classes/java/lang/annotation/Retention.java.i
 data/test/com/sun/net/httpserver/LogFilter.java.i
 data/src/share/demo/jfc/Metalworks/MetalworksInBox.java.i
 data/make/sun/splashscreen/mapfile-vers.i
-data/src/share/classes/javax/swing/JComponent.java.i
+data/make/tools/swing-beans/beaninfo/images/JPopupMenuMono16.gif.i
 data/src/share/classes/java/text/Normalizer.java.i
+data/test/java/lang/annotation/TestIncompleteAnnotationExceptionNPE.java.i
+data/src/share/javavm/include/opcodes.weight.i
 data/test/sun/java2d/SunGraphics2D/PolyVertTest.java.i
-data/src/share/classes/sun/security/util/HostnameChecker.java.i
+data/src/share/native/sun/awt/image/cvutils/img_noscale.h.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsEditorPaneUI.java.i
 data/src/share/classes/javax/script/AbstractScriptEngine.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_fi.properties.i
 data/test/javax/management/ObjectName/ApplyWildcardTest.java.i
 data/src/share/classes/javax/swing/tree/ExpandVetoException.java.i
-data/src/share/classes/javax/swing/KeyStroke.java.i
+data/test/java/lang/Thread/MainThreadTest.java.i
 data/src/share/demo/jfc/Notepad/ElementTreePanel.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalToggleButtonUI.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM860.java.i
-data/test/java/beans/XMLEncoder/javax_swing_border_EtchedBorder.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-i586/libfreebl3.so.i
 data/src/share/demo/jvmti/hprof/hprof_table.c.i
 data/src/share/classes/com/sun/jmx/event/EventConnection.java.i
 data/src/share/back/outStream.c.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java.i
+data/src/share/classes/com/sun/jmx/mbeanserver/NotificationMBeanSupport.java.i
 data/test/javax/management/Introspector/FeatureOrderTest.java.i
 data/test/java/util/concurrent/TimeUnit/Basic.java.i
-data/test/sun/java2d/cmm/ColorConvertOp/LRGB555.png.i
 data/src/share/classes/sun/security/pkcs11/P11Digest.java.i
 data/src/share/classes/java/sql/Time.java.i
-data/test/java/nio/channels/FileChannel/Transfers.java.i
+data/test/java/io/Serializable/defaulted/GetFieldWrite.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpTableSupport.java.i
-data/test/sun/net/www/protocol/file/FileURLTest.java.i
 data/src/solaris/classes/sun/awt/motif/X11FontMetrics.java.i
-data/src/share/native/sun/font/layout/ContextualSubstSubtables.h.i
-data/src/solaris/doc/sun/man/man1/javap.1.i
+data/test/java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java.i
+data/src/share/classes/com/sun/jmx/namespace/RoutingConnectionProxy.java.i
+data/test/java/rmi/activation/Activatable/createPrivateActivable/security.policy.i
 data/src/share/classes/sun/rmi/rmic/Constants.java.i
-data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties.i
-data/test/java/lang/Long/ParsingTest.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/RehandshakeFinished.java.i
+data/src/share/native/sun/awt/image/dither.c.i
+data/src/share/classes/org/openjdk/jigsaw/Hi.java.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifTextAreaUI.java.i
 data/make/sun/jpeg/Makefile.i
-data/src/share/classes/sun/security/pkcs11/wrapper/Constants.java.i
-data/test/javax/management/loading/DocumentRootTest.java.i
+data/src/share/classes/sun/security/krb5/internal/crypto/dk/ArcFourCrypto.java.i
 data/src/share/classes/sun/nio/ch/NativeThreadSet.java.i
 data/src/share/classes/java/util/zip/ZipConstants.java.i
-data/src/share/classes/javax/print/attribute/standard/Severity.java.i
+data/src/share/classes/javax/swing/plaf/nimbus/StateImpl.template.i
 data/src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStoreHelper.java.i
-data/test/sun/net/www/protocol/jar/getcontenttype.sh.i
+data/src/share/classes/com/sun/imageio/plugins/common/I18N.java.i
 data/test/java/net/URLClassLoader/closetest/README.i
 data/src/solaris/classes/sun/awt/X11/XDragSourceProtocol.java.i
 data/test/sun/security/pkcs11/ec/certs/sunlabscerts.pem.i
 data/src/solaris/native/sun/awt/awt_DataTransferer.c.i
-data/test/sun/net/www/protocol/http/spnegoLogin.conf.i
 data/src/share/native/sun/font/layout/IndicLayoutEngine.h.i
 data/src/share/classes/sun/security/krb5/internal/KerberosTime.java.i
 data/src/share/classes/java/nio/file/StandardWatchEventKind.java.i
 data/test/java/security/cert/X509Certificate/EmptySubject.java.i
 data/src/share/classes/javax/swing/event/MouseInputAdapter.java.i
 data/src/share/classes/java/nio/file/attribute/GroupPrincipal.java.i
-data/test/java/lang/management/MemoryMXBean/LowMemoryTestConcMarkSweepGC.sh.i
+data/src/share/classes/com/sun/media/sound/FastSysexMessage.java.i
+data/test/java/io/Serializable/auditStreamSubclass/AuditStreamSubclass.java.i
 data/test/java/beans/XMLEncoder/java_util_JumboEnumSet.java.i
 data/make/tools/CharsetMapping/IBM875.nr.i
+data/src/share/classes/sun/beans/editors/FloatEditor.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmCompilationMeta.java.i
 data/src/share/classes/javax/swing/DefaultCellEditor.java.i
 data/src/share/classes/javax/management/MBeanParameterInfo.java.i
-data/test/java/nio/channels/FileChannel/LongTransferTest.java.i
+data/src/share/classes/javax/crypto/AEADBadTagException.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/ModifiableClassLoaderRepository.java.i
 data/src/share/classes/javax/print/PrintServiceLookup.java.i
-data/src/solaris/classes/sun/awt/X11/XToolkit.java.i
-data/make/tools/CharsetMapping/IBM1144.map.i
-data/test/sun/net/InetAddress/nameservice/dns/CanonicalName.java.i
+data/src/share/classes/sun/net/www/content/audio/basic.java.i
 data/make/sun/image/generic/mapfile-vers.i
-data/test/sun/management/windows/revokeall.c.i
+data/src/share/classes/java/nio/file/PathMatcher.java.i
+data/src/share/classes/sun/awt/TracedEventQueue.java.i
 data/src/share/native/sun/java2d/cmm/lcms/cmscam97.c.i
-data/src/solaris/doc/sun/man/man1/ja/javap.1.i
+data/src/share/classes/sun/text/resources/FormatData_ar_LY.java.i
 data/src/share/classes/javax/swing/plaf/ActionMapUIResource.java.i
 data/src/share/classes/java/util/regex/Pattern.java.i
-data/test/java/util/prefs/PrefsSpi.sh.i
 data/src/share/classes/org/jcp/xml/dsig/internal/DigesterOutputStream.java.i
 data/src/share/classes/com/sun/crypto/provider/RC2Cipher.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBufferAudioFormat.java.i
@@ -803,35 +791,36 @@ data/src/solaris/native/sun/java2d/loops/mlib_ImageLogic_proto.h.i
 data/src/share/classes/com/sun/jmx/remote/internal/ServerCommunicatorAdmin.java.i
 data/src/share/classes/javax/security/sasl/SaslClientFactory.java.i
 data/src/share/classes/com/sun/jdi/request/ExceptionRequest.java.i
+data/test/java/lang/Throwable/LegacyChainedExceptionSerialization.java.i
 data/test/sun/security/util/DerInputBuffer/Allow.policy.i
-data/test/java/net/ipv6tests/TcpTest.java.i
+data/src/share/classes/sun/security/x509/DNSName.java.i
 data/test/java/util/ResourceBundle/Control/StressOut_ja.properties.i
 data/make/common/Classes.gmk.i
+data/test/java/net/URL/OpenStream.java.i
+data/make/tools/src/build/tools/jdwpgen/BooleanTypeNode.java.i
 data/src/share/native/sun/security/ec/ecp_224.c.i
-data/src/share/classes/sun/rmi/server/resources/rmid_zh_CN.properties.i
+data/src/share/classes/java/security/CryptoPrimitive.java.i
 data/src/share/classes/javax/imageio/stream/FileImageOutputStream.java.i
 data/src/solaris/native/sun/java2d/loops/vis_ByteGray_Mask.c.i
 data/src/share/classes/com/sun/media/sound/SoftAudioProcessor.java.i
-data/test/java/nio/channels/Selector/LotsOfUpdates.java.i
 data/test/java/rmi/activation/CommandEnvironment/Doctor.java.i
 data/test/java/util/PluggableLocale/LocaleNameProviderTest.java.i
+data/src/share/classes/java/awt/peer/MenuItemPeer.java.i
 data/src/share/classes/java/awt/image/ImageFilter.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/DropShadowEffect.java.i
-data/test/java/nio/MappedByteBuffer/ZeroMap.java.i
 data/src/share/classes/java/net/SocketOutputStream.java.i
+data/src/share/classes/com/sun/jdi/Value.java.i
 data/test/java/util/ResourceBundle/Test4318520RB_de.properties.i
 data/src/share/classes/sun/print/PSPrinterJob.java.i
-data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/security.policy.i
-data/test/java/lang/StrictMath/CubeRootTests.java.i
-data/test/java/io/Serializable/nestedReplace/NestedReplace.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetAvailableInstruments2.java.i
-data/test/java/nio/file/Files/walkFileTree/walk_file_tree.sh.i
-data/test/sun/net/www/protocol/http/Finalizer.java.i
-data/test/java/lang/Class/IsSynthetic.java.i
-data/test/java/nio/channels/Selector/SelectAfterRead.java.i
+data/test/sun/net/www/ftptest/FtpServer.java.i
+data/test/java/lang/ThreadLocal/TLRemoveTest.java.i
+data/src/share/native/sun/awt/medialib/mlib_ImageAffine_BC_F32.c.i
+data/test/java/beans/Statement/Test6788531.java.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/LongCalls.java.i
 data/src/share/classes/java/beans/beancontext/BeanContextServiceRevokedEvent.java.i
 data/src/share/classes/sun/rmi/transport/proxy/HttpReceiveSocket.java.i
 data/src/share/classes/com/sun/jmx/event/EventBuffer.java.i
+data/test/java/awt/List/SetBackgroundTest/SetBackgroundTest.java.i
 data/src/share/classes/com/sun/media/sound/MidiDeviceReceiver.java.i
 data/make/tools/CharsetMapping/HKSCS_XP.c2b.i
 data/test/java/rmi/server/RMIClassLoader/useCodebaseOnly/Bar.java.i
@@ -840,7 +829,6 @@ data/src/share/classes/sun/security/pkcs11/wrapper/CK_AES_CTR_PARAMS.java.i
 data/make/tools/swing-beans/beaninfo/images/JMenuItemMono16.gif.i
 data/src/share/classes/java/sql/SQLFeatureNotSupportedException.java.i
 data/src/share/classes/javax/swing/JTabbedPane.java.i
-data/test/javax/script/ProviderTest.sh.i
 data/src/share/classes/java/lang/StringCoding.java.i
 data/src/share/classes/sun/security/util/Resources.java.i
 data/make/org/openjdk/jigsaw/Makefile.i
@@ -848,13 +836,15 @@ data/src/share/classes/java/sql/SQLRecoverableException.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageAffineIndex_BC.c.i
 data/test/java/awt/Frame/DynamicLayout/DynamicLayout.java.i
 data/src/share/classes/sun/security/acl/AclImpl.java.i
-data/test/com/sun/net/httpserver/Test9a.java.i
-data/test/java/util/concurrent/LinkedBlockingQueue/OfferRemoveLoops.java.i
+data/src/share/classes/java/awt/datatransfer/FlavorEvent.java.i
+data/src/share/classes/javax/crypto/CryptoPermissions.java.i
+data/src/share/classes/sun/tools/tree/AssignShiftRightExpression.java.i
 data/src/share/sample/jmx/jmx-scandir/src/etc/testconfig.xml.i
+data/src/share/native/sun/font/layout/GDEFMarkFilter.cpp.i
 data/src/windows/classes/sun/java2d/WindowsSurfaceManagerFactory.java.i
-data/test/sun/security/x509/X500Name/NullX500Name.java.i
 data/src/share/classes/java/net/NetPermission.java.i
-data/test/java/beans/Beans/6669869/TestDesignTime.java.i
+data/make/tools/CharsetMapping/MS932.nr.i
+data/test/java/beans/EventHandler/Test6277246.java.i
 data/src/share/native/sun/security/ec/mplogic.c.i
 data/src/share/classes/java/lang/Math.java.i
 data/src/share/classes/java/net/StandardSocketOptions.java.i
@@ -863,57 +853,55 @@ data/src/share/classes/com/sun/security/ntlm/Version.java.i
 data/test/javax/management/Introspector/ClassLeakTest.java.i
 data/make/tools/swing-beans/beaninfo/images/JCheckBoxMenuItemColor16.gif.i
 data/src/share/classes/javax/imageio/package.html.i
-data/test/sun/security/pkcs11/rsa/TestCACerts.java.i
 data/src/windows/classes/sun/nio/fs/WindowsConstants.java.i
 data/src/share/classes/java/awt/Menu.java.i
 data/src/share/classes/javax/print/attribute/standard/CopiesSupported.java.i
 data/src/share/classes/com/sun/tools/jdi/ConcreteMethodImpl.java.i
-data/test/sun/management/HotspotRuntimeMBean/GetSafepointCount.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-i586/libplc4.so.i
 data/src/share/classes/javax/sql/PooledConnection.java.i
-data/test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_CompoundBorderUIResource.java.i
+data/src/share/demo/nbproject/management/FullThreadDump/nbproject/netbeans-targets.xml.i
 data/make/tools/CharsetMapping/MacIceland.map.i
-data/src/share/classes/javax/swing/text/TabSet.java.i
+data/src/share/classes/javax/swing/event/RowSorterEvent.java.i
 data/src/share/classes/sun/io/CharToByteCp1250.java.i
 data/test/java/net/MulticastSocket/NoLoopbackPackets.java.i
-data/test/java/io/PushbackInputStream/Skip.java.i
-data/test/java/awt/Modal/LWModalTest/LWModalTest.java.i
-data/test/org/openjdk/jigsaw/cli/TimestampTest.java.i
+data/src/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html.i
+data/src/windows/native/sun/java2d/d3d/D3DRuntimeTest.cpp.i
 data/src/share/classes/java/nio/Direct-X-Buffer.java.template.i
-data/src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java.i
+data/src/share/classes/sun/print/resources/orientRevLandscape.png.i
 data/test/javax/swing/JInternalFrame/6647340/bug6647340.java.i
-data/make/sun/font/reorder-i586.i
+data/src/share/classes/com/sun/security/auth/LdapPrincipal.java.i
 data/make/tools/src/build/tools/jdwpgen/AbstractSimpleTypeNode.java.i
 data/src/share/classes/java/awt/GridBagLayout.java.i
+data/src/solaris/native/sun/java2d/loops/vis_AlphaMacros.h.i
 data/src/share/native/sun/java2d/opengl/J2D_GL/gl.h.i
 data/src/share/classes/java/util/ComparableTimSort.java.i
-data/test/java/rmi/activation/Activatable/checkRegisterInLog/CheckRegisterInLog.java.i
-data/test/java/rmi/reliability/juicer/Apple.java.i
+data/src/share/classes/javax/security/sasl/SaslException.java.i
+data/src/share/native/sun/font/layout/Lookups.cpp.i
 data/src/share/classes/sun/security/util/Resources_zh_CN.java.i
-data/src/share/classes/javax/swing/Painter.java.i
+data/src/share/classes/sun/tools/jstat/ExpressionResolver.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/LoadInstruments.java.i
 data/src/share/demo/jfc/Font2DTest/FontPanel.java.i
-data/test/java/nio/channels/SocketChannel/UnboundSocketTests.java.i
 data/src/share/classes/com/sun/security/auth/NTSid.java.i
-data/src/share/demo/jvmti/hprof/hprof_event.c.i
-data/src/share/classes/java/math/MutableBigInteger.java.i
-data/src/windows/native/sun/windows/Devices.cpp.i
+data/src/share/classes/sun/security/provider/certpath/ReverseBuilder.java.i
+data/make/sun/image/vis/FILES_c.gmk.i
+data/src/share/native/sun/awt/libpng/pngvcrd.c.i
 data/test/java/nio/file/Path/PathOps.java.i
-data/src/share/classes/sun/security/provider/certpath/ConstraintsChecker.java.i
-data/test/java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java.i
-data/test/java/util/PluggableLocale/providersrc/Utils.java.i
+data/test/java/util/Locale/data/deflocale.sol10.i
+data/src/solaris/native/java/lang/UNIXProcess_md.c.i
+data/test/java/security/testlibrary/ProvidersSnapshot.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmJITCompilerTimeMonitoring.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/inffast.c.i
-data/test/javax/imageio/EmptyFileTest.java.i
-data/src/share/classes/sun/security/jgss/krb5/MicToken.java.i
+data/test/javax/management/remote/mandatory/subjectDelegation/policy32.i
+data/src/share/classes/org/openjdk/jigsaw/cli/Repositor.java.i
 data/test/javax/management/remote/mandatory/subjectDelegation/policy16.i
-data/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java.i
-data/test/sun/security/krb5/auto/LoginModuleOptions.java.i
+data/test/sun/management/jmxremote/bootstrap/TestManager.java.i
+data/src/share/classes/javax/swing/table/TableColumnModel.java.i
 data/src/share/classes/java/util/XMLUtils.java.i
 data/src/share/classes/java/net/SocksSocketImpl.java.i
-data/src/windows/classes/sun/java2d/d3d/D3DContext.java.i
+data/test/java/security/cert/CertPathValidatorException/jdk6.serial.i
 data/src/share/classes/java/util/zip/InflaterInputStream.java.i
 data/src/share/classes/javax/imageio/plugins/bmp/package.html.i
-data/test/java/util/Formatter/BasicIntObject.java.i
+data/src/share/classes/sun/management/counter/perf/PerfStringCounter.java.i
 data/test/javax/management/remote/mandatory/connectorServer/JNDIFailureTest.java.i
 data/src/share/classes/com/sun/media/sound/RealTimeSequencerProvider.java.i
 data/test/java/net/URL/win32_file_urls.i
@@ -922,7 +910,7 @@ data/src/share/classes/com/sun/media/sound/MidiOutDeviceProvider.java.i
 data/test/javax/security/auth/login/LoginContext/ModuleSubject.java.i
 data/src/share/classes/java/security/SignedObject.java.i
 data/src/share/classes/java/sql/ResultSetMetaData.java.i
-data/src/solaris/classes/sun/java2d/SurfaceManagerFactory.java.i
+data/test/java/nio/channels/Channels/ReadOffset.java.i
 data/src/share/classes/sun/font/CompositeFontDescriptor.java.i
 data/test/java/awt/xembed/server/TestXEmbedServer.java.i
 data/src/windows/classes/sun/security/mscapi/RSAPublicKey.java.i
@@ -930,91 +918,93 @@ data/make/tools/CharsetMapping/TIS_620.map.i
 data/src/share/native/sun/font/layout/DefaultCharMapper.h.i
 data/src/share/classes/sun/security/pkcs11/P11Key.java.i
 data/src/share/classes/sun/text/resources/FormatData_el_CY.java.i
-data/src/share/classes/sun/text/normalizer/UCharacterProperty.java.i
+data/src/share/classes/javax/security/auth/callback/CallbackHandler.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/RepeatObjs.java.i
 data/src/share/classes/com/sun/media/sound/Platform.java.i
 data/src/share/classes/sun/misc/MetaIndex.java.i
 data/test/java/nio/charset/coders/BashCache.java.i
 data/src/share/classes/java/rmi/server/ServerCloneException.java.i
 data/src/windows/native/sun/windows/awt_dlls.cpp.i
-data/test/javax/sound/midi/Gervill/SoftChannel/AllSoundOff.java.i
 data/src/share/classes/com/sun/beans/finder/PropertyEditorFinder.java.i
 data/src/share/classes/java/net/InterfaceAddress.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/icons/HomeFolder.gif.i
 data/test/com/sun/management/GarbageCollectorMXBean/GarbageCollectionNotificationTest.java.i
+data/src/share/classes/sun/util/resources/TimeZoneNames.java.i
 data/src/share/classes/sun/security/jgss/GSSExceptionImpl.java.i
 data/src/share/demo/nbproject/jfc/FileChooserDemo/nbproject/jdk.xml.i
 data/test/sun/nio/cs/ISO2022JP.trailEsc.i
 data/make/tools/CharsetMapping/IBM1381.c2b.i
 data/src/share/classes/sun/io/CharToByteCp33722.java.i
 data/src/share/demo/jvmti/hprof/hprof_tls.h.i
-data/test/tools/launcher/unresolvedExceptions.sh.i
-data/test/javax/sound/midi/Gervill/SoftAudioSynthesizer/Open.java.i
 data/src/share/classes/java/awt/geom/CubicIterator.java.i
 data/make/mksample/jmx/jmx-scandir/Makefile.i
-data/test/java/util/AbstractList/CheckForComodification.java.i
+data/src/share/classes/sun/io/CharToByteCp1047.java.i
 data/src/share/classes/java/lang/ref/Reference.java.i
-data/src/share/native/sun/security/ec/mp_gf2m-priv.h.i
-data/test/sun/jvmstat/testlibrary/utils.sh.i
-data/test/tools/pack200/TimeStamp.java.i
+data/src/share/classes/java/lang/ClassCircularityError.java.i
 data/src/share/classes/javax/swing/event/TreeSelectionEvent.java.i
 data/make/tools/CharsetMapping/SingleByte-X.java.template.i
 data/src/share/classes/javax/swing/event/ListDataEvent.java.i
+data/src/share/classes/com/sun/nio/sctp/SctpMultiChannel.java.i
 data/src/share/classes/sun/text/normalizer/Replaceable.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/ParserTokenManager.java.i
+data/src/windows/hpi/export/hpi_md.h.i
 data/test/sun/rmi/rmic/RMIGenerator/packagedir/RmicMeImpl.java.i
 data/src/share/classes/java/awt/CheckboxMenuItem.java.i
 data/src/share/demo/nbproject/management/MemoryMonitor/build.properties.i
 data/test/java/beans/PropertyEditor/TestLongTypeJava.java.i
-data/test/sun/tools/jps/jps-q_Output1.awk.i
+data/test/java/lang/Math/WorstCaseTests.java.i
 data/make/netbeans/swing/README.i
-data/test/tools/launcher/lib/sparc/lib32/lib32/liblibrary.so.i
+data/test/java/lang/ThreadGroup/NullThreadName.java.i
 data/make/tools/swing-beans/beaninfo/images/JSpinnerMono16.gif.i
 data/test/javax/management/Introspector/IdenticalMBeanInfoTest.java.i
-data/src/share/classes/javax/net/ssl/SSLSessionBindingEvent.java.i
+data/src/windows/native/common/jlong_md.h.i
+data/src/share/classes/sun/net/www/ApplicationLaunchException.java.i
+data/test/tools/launcher/libraryCaller.c.i
+data/src/share/classes/javax/management/AttributeList.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_pt_BR.properties.i
 data/make/java/npt/Makefile.i
 data/src/share/classes/sun/io/ByteToCharISO8859_6.java.i
 data/src/share/classes/javax/swing/event/TreeSelectionListener.java.i
 data/src/share/classes/java/awt/font/LayoutPath.java.i
 data/test/com/sun/management/OperatingSystemMXBean/GetFreeSwapSpaceSize.java.i
-data/src/share/native/sun/awt/libpng/CHANGES.i
+data/src/share/classes/com/sun/imageio/plugins/jpeg/DHTMarkerSegment.java.i
 data/src/share/classes/sun/rmi/transport/proxy/CGIHandler.java.i
-data/test/sun/misc/Cleaner/ExitOnThrow.java.i
 data/test/java/beans/XMLEncoder/Test4935607.java.i
+data/src/share/classes/com/sun/tools/example/debug/event/JDIAdapter.java.i
 data/src/share/classes/sun/net/www/protocol/http/AuthCacheValue.java.i
 data/src/share/native/sun/java2d/loops/ByteBinary2Bit.h.i
-data/src/share/native/java/lang/reflect/Array.c.i
+data/src/share/classes/sun/io/CharToByteCp1026.java.i
 data/src/solaris/classes/sun/java2d/jules/IdleTileCache.java.i
+data/src/share/classes/sun/java2d/pipe/hw/ExtendedBufferCapabilities.java.i
 data/src/share/classes/javax/swing/plaf/metal/sounds/FrameClose.wav.i
 data/src/share/classes/sun/print/DialogOwner.java.i
 data/src/share/classes/javax/management/monitor/Monitor.java.i
 data/src/share/native/java/lang/fdlibm/src/s_nextafter.c.i
 data/src/share/classes/com/sun/beans/decoder/VarElementHandler.java.i
 data/test/javax/swing/JTable/6788484/bug6788484.java.i
-data/src/share/classes/sun/text/normalizer/ReplaceableString.java.i
+data/test/java/net/Socket/CloseAvailable.java.i
 data/src/share/classes/com/sun/tracing/dtrace/ArgsAttributes.java.i
-data/test/java/io/Serializable/subclassGC/security.policy.i
+data/test/java/security/cert/CertPathValidator/nameConstraintsRFC822/steve2tom.cer.i
+data/src/share/classes/javax/crypto/BadPaddingException.java.i
 data/test/java/io/Serializable/subclass/XObjectOutputStream.java.i
+data/test/sun/security/pkcs11/KeyStore/ClientAuth.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_iw.properties.i
 data/src/share/classes/com/sun/tools/example/debug/tty/WatchpointSpec.java.i
 data/src/share/classes/com/sun/java/browser/dom/DOMServiceProvider.java.i
-data/test/sun/management/jmxremote/bootstrap/launcher.c.i
 data/src/solaris/classes/sun/java2d/xr/GrowableRectArray.java.i
-data/test/java/rmi/server/RMIClassLoader/loadProxyClasses/NonpublicInterface1.java.i
+data/src/share/classes/com/sun/jmx/snmp/agent/SnmpStandardObjectServer.java.i
 data/src/share/classes/sun/security/pkcs11/wrapper/PKCS11RuntimeException.java.i
-data/test/java/rmi/server/RMIClassLoader/spi/Property.java.i
+data/test/sun/nio/cs/EucJpLinuxDecoderRecoveryTest.java.i
 data/src/share/classes/sun/nio/ch/FileDispatcher.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaThing.java.i
 data/src/share/classes/sun/nio/cs/ext/MacDingbat.java.i
+data/src/share/classes/sun/java2d/loops/FillRect.java.i
 data/src/share/classes/java/util/concurrent/ArrayBlockingQueue.java.i
 data/src/share/classes/sun/security/krb5/internal/ASReq.java.i
-data/test/javax/swing/JLayer/6872503/bug6872503.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/Available.java.i
 data/src/share/demo/jvmti/hprof/hprof_reference.h.i
+data/make/netbeans/common/share-sources.ent.i
 data/make/tools/sharing/README.txt.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/MonitoredHostProvider.java.i
-data/test/javax/sound/midi/Gervill/SoftReceiver/Send_AllNotesOff.java.i
+data/src/share/classes/java/lang/annotation/package-info.java.i
 data/src/share/classes/javax/naming/ldap/Rfc2253Parser.java.i
 data/test/javax/sound/midi/Gervill/SimpleSoundbank/SetDescription.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalToolBarUI.java.i
@@ -1027,14 +1017,13 @@ data/make/tools/CharsetMapping/IBM1112.nr.i
 data/test/com/sun/servicetag/JavaServiceTagTest.java.i
 data/make/modules/tools/build.xml.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_fr.properties.i
-data/src/share/classes/sun/beans/editors/FontEditor.java.i
+data/src/share/classes/java/io/PushbackReader.java.i
 data/src/windows/native/sun/windows/awt_Canvas.cpp.i
-data/src/share/native/sun/awt/image/jpeg/jutils.c.i
-data/test/java/net/URLDecoder/B6463990.java.i
+data/src/share/classes/java/io/PrintStream.java.i
 data/test/sun/misc/URLClassPath/FileLoaderTest.java.i
-data/test/java/awt/print/PrinterJob/PageRanges.java.i
 data/make/tools/CharsetMapping/IBM857.map.i
 data/src/share/classes/java/awt/event/AWTEventListener.java.i
+data/make/javax/imageio/Makefile.i
 data/test/java/io/File/IsAbsolute.java.i
 data/src/share/classes/com/sun/jmx/snmp/EnumRowStatus.java.i
 data/src/share/classes/sun/management/resources/agent_pt_BR.properties.i
@@ -1045,8 +1034,7 @@ data/src/share/classes/com/sun/jmx/snmp/SnmpStringFixed.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMExcC14NMethod.java.i
 data/src/share/classes/java/io/Console.java.i
 data/src/solaris/native/sun/java2d/loops/vis_IntArgbBm.c.i
-data/test/javax/sound/midi/Gervill/SoftAudioBuffer/Get.java.i
-data/test/javax/management/namespace/JMXNamespacesTest.java.i
+data/src/share/classes/java/security/acl/LastOwnerException.java.i
 data/test/java/io/RandomAccessFile/SetLength.java.i
 data/src/share/classes/org/openjdk/jigsaw/PathContext.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/exceptions/Base64DecodingException.java.i
@@ -1055,28 +1043,28 @@ data/src/share/classes/sun/text/resources/CollationData_ja.java.i
 data/test/sun/security/pkcs11/KeyStore/BasicData/README.i
 data/src/share/native/sun/font/layout/CoverageTables.cpp.i
 data/src/share/classes/com/sun/crypto/provider/AESConstants.java.i
+data/src/share/classes/sun/instrument/InstrumentationImpl.java.i
+data/src/windows/native/sun/java2d/windows/ddrawUtils.h.i
 data/test/java/beans/XMLEncoder/AbstractTest.java.i
 data/src/solaris/sample/dtrace/helpers/dtrace_helper.d.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/package.html.i
 data/src/share/classes/com/sun/media/sound/SoftMixingSourceDataLine.java.i
+data/src/share/classes/java/util/concurrent/atomic/AtomicInteger.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthUI.java.i
-data/test/java/lang/ClassLoader/findSystemClass/java/lang/Object.class.i
-data/test/javax/management/modelmbean/ModelMBeanInfoSupport/logging.properties.i
+data/src/share/classes/sun/nio/cs/KOI8_R.java.i
 data/test/javax/management/modelmbean/RequiredModelMBeanSetAttributeTest.java.i
-data/test/java/security/cert/CertPathValidator/indirectCRL/CircularCRLOneLevelRevoked.java.i
 data/make/mkdemo/applets/GraphLayout/Makefile.i
 data/make/tools/swing-beans/beaninfo/images/JFileChooserColor32.gif.i
-data/src/share/classes/com/sun/tools/jdi/TypeImpl.java.i
+data/test/java/awt/print/PrinterJob/PageRanges.java.i
 data/make/tools/CharsetMapping/IBM1122.map.i
 data/src/share/classes/java/rmi/dgc/package.html.i
 data/src/share/classes/java/util/logging/PlatformLoggingMXBean.java.i
-data/test/org/openjdk/jigsaw/repolist.sh.i
-data/src/share/classes/sun/tools/javac/resources/javac_ja.properties.i
 data/test/java/rmi/reliability/benchmark/bench/serial/ByteArrays.java.i
 data/make/tools/swing-beans/beaninfo/images/JMenuItemMono32.gif.i
 data/src/share/classes/sun/security/ec/ECKeyFactory.java.i
-data/test/com/sun/management/HotSpotDiagnosticMXBean/GetDiagnosticOptions.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/font/Typeface.java.i
+data/test/java/io/Serializable/class/run.sh.i
+data/src/share/classes/javax/swing/table/TableModel.java.i
+data/test/java/security/BasicPermission/SerialVersion.1.2.1.i
 data/test/java/net/URLConnection/olympus.jpg.i
 data/src/share/classes/java/security/cert/X509CRLSelector.java.i
 data/src/share/classes/sun/swing/SwingAccessor.java.i
@@ -1084,15 +1072,14 @@ data/src/share/demo/nbproject/jfc/FileChooserDemo/build.properties.i
 data/src/share/classes/com/sun/beans/finder/InstanceFinder.java.i
 data/test/javax/sound/midi/Gervill/ModelPerformer/SetKeyFrom.java.i
 data/src/share/classes/sun/io/ByteToCharGB18030.java.i
-data/src/share/classes/sun/rmi/rmic/newrmic/Resources.java.i
-data/src/share/classes/sun/security/ssl/Krb5Proxy.java.i
+data/src/share/classes/com/sun/media/sound/Printer.java.i
+data/make/sun/rmi/rmi/mapfile-vers.i
 data/src/share/classes/sun/io/CharToByteJIS0208.java.i
-data/test/java/beans/PropertyEditor/TestEnumSubclassNull.java.i
+data/src/share/classes/javax/xml/crypto/dsig/spec/TransformParameterSpec.java.i
 data/make/sun/splashscreen/FILES_c.gmk.i
-data/src/solaris/classes/sun/awt/motif/MCustomCursor.java.i
-data/test/java/rmi/activation/CommandEnvironment/Retireable.java.i
-data/test/java/io/File/BlockIsDirectory.java.i
-data/test/javax/management/remote/mandatory/subjectDelegation/policy32.i
+data/src/solaris/native/sun/jdga/jdgadevice.h.i
+data/test/java/util/Locale/LocaleTest.java.i
+data/test/javax/security/auth/login/LoginContext/ModuleSubjectModule.java.i
 data/src/share/classes/com/sun/jndi/dns/NameNode.java.i
 data/src/share/classes/javax/naming/NameNotFoundException.java.i
 data/src/share/classes/com/sun/beans/finder/FieldFinder.java.i
@@ -1105,7 +1092,9 @@ data/src/share/native/sun/java2d/loops/Ushort555Rgbx.h.i
 data/make/tools/CharsetMapping/IBM285.nr.i
 data/src/windows/native/sun/nio/ch/DatagramChannelImpl.c.i
 data/make/jpda/transport/shmem/Makefile.i
+data/src/share/demo/jvmti/hprof/hprof_init.h.i
 data/src/share/classes/sun/util/locale/UnicodeLocaleExtension.java.i
+data/make/jprt.config.i
 data/src/share/classes/com/sun/tools/example/debug/event/ClassUnloadEventSet.java.i
 data/make/sun/javazic/tzdata/backward.i
 data/src/solaris/classes/sun/tools/attach/SolarisAttachProvider.java.i
@@ -1117,20 +1106,19 @@ data/src/share/classes/java/nio/file/TempFileHelper.java.i
 data/src/share/classes/javax/management/openmbean/package.html.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/ObjectContainer.java.i
 data/src/share/sample/scripting/scriptpad/src/scripts/memmonitor.js.i
-data/test/javax/script/VersionTest.java.i
 data/src/share/classes/sun/awt/im/InputMethodLocator.java.i
-data/src/windows/classes/sun/nio/ch/DatagramDispatcher.java.i
-data/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformBase64Decode.java.i
 data/src/share/classes/sun/text/resources/FormatData_da_DK.java.i
 data/src/share/classes/java/awt/dnd/InvalidDnDOperationException.java.i
+data/test/java/security/cert/PolicyNode/speech2eve.i
 data/src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java.i
 data/src/solaris/native/sun/awt/awt_GraphicsEnv.h.i
-data/test/java/beans/XMLDecoder/spec/TestLong.java.i
-data/src/share/classes/sun/text/bidi/BidiBase.java.i
+data/test/java/util/zip/3GBZipFiles.sh.i
+data/test/java/beans/XMLEncoder/java_beans_EventHandler.java.i
 data/test/sun/security/ssl/javax/net/ssl/NewAPIs/KeyManagerTrustManager.java.i
 data/src/share/classes/javax/sound/sampled/Control.java.i
 data/make/tools/swing-beans/beaninfo/images/JTabbedPaneColor32.gif.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/package.html.i
+data/test/javax/sound/midi/Gervill/SoftLanczosResampler/Interpolate.java.i
 data/src/share/classes/javax/xml/crypto/AlgorithmMethod.java.i
 data/src/windows/native/sun/windows/awt_DnDDS.cpp.i
 data/test/sun/rmi/rmic/RMIGenerator/packagedir/RmicMeInterface.java.i
@@ -1143,16 +1131,17 @@ data/src/share/classes/sun/io/CharacterEncoding.java.i
 data/src/share/classes/javax/swing/JList.java.i
 data/test/java/security/Security/ClassLoaderDeadlock/provider/HashProvider.java.i
 data/src/share/classes/sun/reflect/generics/visitor/Reifier.java.i
-data/src/solaris/classes/sun/awt/motif/MRobotPeer.java.i
+data/src/share/classes/java/awt/ScrollPane.java.i
 data/make/tools/swing-beans/beaninfo/images/JProgressBarMono32.gif.i
 data/test/java/lang/instrument/ManifestTest.sh.i
-data/test/java/beans/VetoableChangeSupport/TestSynchronization.java.i
 data/src/share/classes/java/util/Iterator.java.i
+data/src/share/classes/javax/naming/ldap/StartTlsRequest.java.i
 data/src/share/classes/java/rmi/registry/Registry.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java.i
 data/src/share/classes/com/sun/imageio/plugins/common/StandardMetadataFormat.java.i
-data/test/java/security/spec/ECCBasic.java.i
+data/make/tools/classanalyzer/src/com/sun/classanalyzer/Module.java.i
 data/src/share/classes/java/net/InMemoryCookieStore.java.i
+data/src/share/classes/sun/text/resources/FormatData_lv_LV.java.i
 data/src/share/classes/sun/print/resources/serviceui_sv.properties.i
 data/src/share/classes/javax/swing/event/TableColumnModelEvent.java.i
 data/src/share/classes/com/sun/imageio/plugins/common/StandardMetadataFormatResources.java.i
@@ -1160,28 +1149,25 @@ data/src/share/classes/javax/security/auth/Policy.java.i
 data/src/share/classes/sun/security/jca/GetInstance.java.i
 data/test/javax/sound/midi/Gervill/ModelStandardTransform/SetDirection.java.i
 data/make/tools/CharsetMapping/IBM1146.map.i
-data/test/java/security/cert/CertPathValidator/nameConstraints/NameConstraintsWithoutRID.java.i
-data/test/java/nio/channels/AsynchronousChannelGroup/PrivilegedThreadFactory.java.i
 data/src/solaris/native/sun/awt/awt_Mlib.c.i
 data/src/windows/native/sun/java2d/d3d/D3DPipelineManager.h.i
-data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/TruncateArray.java.i
-data/test/javax/sound/midi/Gervill/DLSSoundbankReader/TestGetSoundbankInputStream2.java.i
+data/src/share/classes/sun/security/provider/certpath/OCSPResponse.java.i
+data/src/share/classes/com/sun/beans/finder/ConstructorFinder.java.i
 data/src/share/native/java/lang/fdlibm/src/s_isnan.c.i
-data/src/share/classes/javax/sound/midi/MidiUnavailableException.java.i
+data/test/java/lang/Class/getEnclosingClass/make_src.sh.i
 data/src/share/classes/javax/swing/plaf/multi/MultiLabelUI.java.i
 data/test/java/security/cert/CertPathValidator/indirectCRL/CircularCRLOneLevel.java.i
 data/make/java/redist/sajdi/Makefile.i
 data/src/share/classes/javax/xml/crypto/dsig/TransformService.java.i
 data/src/share/classes/java/lang/reflect/AccessibleObject.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_no_NO.properties.i
-data/test/java/io/PushbackInputStream/Available.java.i
+data/src/share/classes/sun/io/ByteToCharHKSCS_2001.java.i
+data/make/tools/GenerateCharacter/CharacterData02.java.template.i
 data/test/javax/crypto/KeyGenerator/TestGetInstance.java.i
 data/test/com/sun/crypto/provider/TLS/Utils.java.i
-data/test/java/security/cert/PolicyNode/speech2speech.i
 data/src/share/classes/sun/security/krb5/internal/PAData.java.i
 data/src/share/classes/sun/text/resources/BreakIteratorInfo.java.i
-data/test/javax/xml/crypto/dsig/data/certs/badb.crt.i
-data/test/java/rmi/transport/checkLeaseInfoLeak/LeaseLeakClient.java.i
+data/test/java/util/LinkedHashMap/Basic.java.i
 data/src/share/classes/com/sun/accessibility/internal/resources/accessibility_de.properties.i
 data/src/share/classes/javax/swing/text/doc-files/View-layout.jpg.i
 data/test/sun/security/pkcs11/MessageDigest/ByteBuffers.java.i
@@ -1192,11 +1178,12 @@ data/src/solaris/native/sun/awt/multi_font.h.i
 data/test/java/util/ResourceBundle/Control/StressOut.properties.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIIconRegion.java.i
 data/test/java/util/Arrays/FloatDoubleOrder.java.i
-data/test/java/nio/file/attribute/BasicFileAttributeView/Basic.java.i
+data/test/java/util/Formatter/BasicDateTime.java.i
 data/src/share/classes/javax/sql/RowSetEvent.java.i
 data/src/share/classes/sun/awt/UngrabEvent.java.i
-data/src/share/classes/sun/io/CharToByteCp930.java.i
+data/src/share/classes/javax/script/Invocable.java.i
 data/src/share/classes/sun/reflect/ByteVector.java.i
+data/make/tools/swing-beans/beaninfo/images/JButtonMono16.gif.i
 data/src/share/classes/java/sql/SQLXML.java.i
 data/test/com/sun/management/OperatingSystemMXBean/GetSystemCpuLoad.java.i
 data/make/tools/CharsetMapping/MS1250.map.i
@@ -1205,51 +1192,50 @@ data/src/solaris/classes/sun/awt/X11/security-icon-bw24.png.i
 data/src/share/classes/sun/util/resources/CalendarData_ko.properties.i
 data/src/share/classes/java/util/zip/ZStreamRef.java.i
 data/src/share/classes/sun/io/ByteToCharISO8859_13.java.i
-data/test/java/util/concurrent/CopyOnWriteArrayList/EqualsRace.java.i
+data/test/sun/security/tools/keytool/emptysubject.sh.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerIntInt.java.i
 data/src/share/classes/java/beans/beancontext/BeanContext.java.i
 data/make/tools/swing-beans/beaninfo/images/JFrameColor16.gif.i
 data/src/linux/doc/man/jdb.1.i
-data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain2.txt.i
+data/test/java/security/UnresolvedPermission/DebugPermissionBad.java.i
 data/src/solaris/native/sun/java2d/loops/vis_Interp.c.i
 data/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java.i
-data/test/java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java.i
-data/test/sun/misc/URLClassPath/ClassnameCharTest.sh.i
 data/test/java/lang/instrument/FromShutdownHook.java.i
 data/src/share/classes/javax/sql/rowset/RowSetWarning.java.i
-data/test/java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java.i
+data/src/share/classes/org/openjdk/jigsaw/ModuleFileFormat.java.i
+data/test/java/util/PluggableLocale/providersrc/BreakIteratorProviderImpl.java.i
 data/make/javax/swing/plaf/nimbus/Makefile.i
-data/test/sun/nio/cs/TestIBMBugs.java.i
+data/src/share/demo/applets/MoleculeViewer/models/HyaluronicAcid.xyz.i
 data/src/share/classes/sun/nio/cs/ISO_8859_1.java.i
 data/src/share/demo/management/VerboseGC/VerboseGC.java.i
-data/src/share/classes/sun/text/resources/FormatData_es_CO.java.i
+data/src/share/classes/org/openjdk/internal/joptsimple/OptionParserState.java.i
+data/test/TEST.ROOT.i
 data/test/java/beans/XMLEncoder/java_awt_Cursor.java.i
+data/src/share/classes/sun/applet/AppletMessageHandler.java.i
 data/make/tools/swing-beans/GenDocletBeanInfo.java.i
 data/test/sun/security/tools/jarsigner/passtype.sh.i
-data/test/sun/security/tools/keytool/importreadall.sh.i
 data/src/share/classes/sun/management/HotspotRuntimeMBean.java.i
 data/src/share/classes/sun/net/www/protocol/https/DelegateHttpsURLConnection.java.i
 data/test/sun/security/tools/policytool/Alias.sh.i
-data/test/sun/security/provider/PolicyFile/Alias.policy.i
-data/src/share/classes/com/sun/rowset/CachedRowSetImpl.java.i
+data/test/java/util/jar/Attributes/PutAndPutAll.java.i
+data/make/common/internal/Defs-corba.gmk.i
 data/test/sun/security/krb5/auto/KerberosHashEqualsTest.java.i
 data/src/share/classes/javax/management/modelmbean/ModelMBeanInfo.java.i
 data/src/solaris/native/sun/awt/awt_Font.h.i
-data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libnspr4.so.d
+data/test/java/beans/XMLDecoder/spec/TestClass.java.i
 data/make/tools/src/build/tools/jarreorder/JarReorder.java.i
-data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/OriginServer.java.i
+data/test/java/rmi/testlibrary/RegistryRunner.java.i
+data/src/share/classes/java/lang/StringBuffer.java.i
 data/src/share/classes/org/openjdk/jigsaw/cli/Command.java.i
 data/test/java/util/concurrent/ThreadPoolExecutor/ConfigChanges.java.i
-data/test/java/nio/file/Files/PrintFileTree.java.i
 data/test/java/rmi/transport/dgcDeadLock/DGCDeadLock.java.i
-data/test/java/util/ResourceBundle/Bug4257318Res_en.java.i
-data/src/share/classes/com/sun/beans/decoder/PropertyElementHandler.java.i
+data/test/tools/launcher/6842838/CreateBadJar.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsDesktopIconUI.java.i
 data/src/share/classes/com/sun/tools/hat/internal/parser/PositionInputStream.java.i
-data/test/org/openjdk/jigsaw/cli/tsa-prikey.pem.i
 data/src/share/classes/sun/rmi/server/resources/rmid_de.properties.i
 data/test/java/nio/channels/DatagramChannel/ConnectedSend.java.i
 data/src/share/classes/java/io/PushbackInputStream.java.i
-data/test/java/io/File/WinMaxPath.java.i
+data/test/javax/imageio/EmptyFileTest.java.i
 data/src/share/classes/java/security/acl/NotOwnerException.java.i
 data/src/share/classes/com/sun/tracing/dtrace/StabilityLevel.java.i
 data/src/share/classes/sun/io/CharToByteMacCyrillic.java.i
@@ -1257,41 +1243,34 @@ data/src/share/classes/javax/swing/RootPaneContainer.java.i
 data/test/javax/management/mxbean/OverloadTest.java.i
 data/src/share/classes/java/awt/MenuShortcut.java.i
 data/make/java/java/Makefile.i
-data/test/java/net/BindException/Test.java.i
 data/src/share/native/sun/java2d/loops/AnyShort.c.i
-data/src/share/classes/sun/text/resources/FormatData_mt.java.i
 data/src/share/classes/sun/rmi/server/UnicastRef2.java.i
 data/src/share/classes/javax/swing/colorchooser/ColorChooserPanel.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetDeviceInfo.java.i
 data/src/share/classes/sun/awt/image/ShortBandedRaster.java.i
-data/src/share/native/sun/font/layout/LEGlyphStorage.cpp.i
+data/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.cpp.i
 data/src/windows/native/sun/windows/WPrinterJob.cpp.i
-data/src/share/classes/sun/util/resources/LocaleNames_no_NO_NY.properties.i
-data/src/share/native/sun/java2d/loops/IntRgbx.h.i
-data/test/java/awt/regtesthelpers/process/ProcessCommunicator.java.i
+data/src/share/classes/sun/text/resources/FormatData_ar_KW.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadTSProvider.java.i
 data/src/share/classes/com/sun/jdi/event/AccessWatchpointEvent.java.i
 data/make/tools/src/build/tools/generatebreakiteratordata/CharacterCategory.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyName.java.i
-data/src/share/classes/sun/net/ProgressSource.java.i
+data/test/sun/net/www/protocol/http/B6296310.java.i
 data/src/share/classes/sun/nio/cs/ext/JIS_X_0212_MS5022X_Decoder.java.i
 data/src/share/classes/javax/management/loading/PrivateMLet.java.i
 data/src/share/classes/javax/swing/InternalFrameFocusTraversalPolicy.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/rmi/PerfDataBuffer.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignedInfo.java.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/ShortCalls.java.i
 data/src/share/native/sun/awt/image/jpeg/jcprepct.c.i
-data/test/sun/security/provider/PolicyFile/SelfExpansion.java.i
 data/test/com/sun/jdi/JITDebug.java.i
-data/test/java/net/URLClassLoader/sealing/Makefile.i
-data/test/java/util/logging/ParentLoggersTest.java.i
+data/test/java/beans/PropertyEditor/TestFontClass.java.i
+data/src/windows/native/sun/windows/awt_PrintJob.cpp.i
 data/src/share/classes/javax/management/AttributeNotFoundException.java.i
 data/make/tools/src/build/tools/jdwpgen/InterfaceTypeNode.java.i
-data/src/share/classes/javax/print/CancelablePrintJob.java.i
+data/src/share/classes/java/lang/management/MemoryPoolMXBean.java.i
 data/src/share/classes/javax/print/attribute/PrintJobAttributeSet.java.i
-data/test/java/beans/Introspector/Test4634390.java.i
 data/src/share/native/sun/java2d/loops/DrawPolygons.c.i
-data/test/javax/sound/midi/Gervill/SoftPointResampler/Interpolate.java.i
 data/src/share/classes/javax/sql/rowset/webrowset.xsd.i
-data/src/solaris/native/sun/security/smartcardio/MUSCLE/winscard.h.i
+data/test/java/lang/management/MemoryMXBean/Pending.java.i
 data/src/share/classes/java/awt/color/ICC_ProfileGray.java.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BL_U16.c.i
 data/test/java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.java.i
@@ -1299,32 +1278,29 @@ data/test/javax/management/Introspector/ExceptionsDescriptorTest.java.i
 data/src/share/classes/java/security/cert/CertPathBuilderSpi.java.i
 data/src/share/classes/javax/print/attribute/standard/DateTimeAtProcessing.java.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedLongFieldAccessorImpl.java.i
-data/test/com/sun/tools/attach/badagent.mf.i
+data/test/sun/security/pkcs11/Secmod/anchor.cer.i
 data/src/share/classes/sun/util/resources/CalendarData_bg.properties.i
-data/src/solaris/classes/sun/awt/X11/XWarningWindow.java.i
-data/test/javax/swing/JTable/6735286/bug6735286.java.i
 data/test/sun/tools/jstat/jstatSnap1.sh.i
-data/test/javax/management/remote/mandatory/loading/MissingClassTest.java.i
 data/src/share/classes/sun/text/normalizer/UBiDiProps.java.i
 data/src/share/native/com/sun/java/util/jar/pack/bytes.h.i
-data/src/share/classes/sun/text/normalizer/Trie.java.i
 data/src/share/classes/java/awt/dnd/DragGestureEvent.java.i
 data/src/share/instrument/JPLISAssert.h.i
 data/test/sun/security/pkcs11/Secmod/JksSetPrivateKey.java.i
 data/src/share/classes/java/awt/image/LookupTable.java.i
-data/src/share/classes/sun/io/CharToByteMacTurkish.java.i
-data/src/share/classes/sun/java2d/pipe/DrawImage.java.i
+data/src/share/classes/javax/management/JMException.java.i
+data/src/share/classes/javax/management/StandardEmitterMBean.java.i
 data/test/java/beans/XMLEncoder/6777487/TestCheckedRandomAccessList.java.i
-data/test/org/openjdk/jigsaw/security.sh.i
-data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/StateTest.java.i
 data/src/share/classes/java/awt/font/CharArrayIterator.java.i
 data/src/windows/native/sun/windows/awt_Container.h.i
-data/src/share/classes/sun/util/resources/CalendarData_mk.properties.i
+data/test/javax/xml/crypto/dsig/data/signature-x509-crt-crl.xml.i
 data/test/sun/security/provider/PolicyFile/AliasExpansion.policy.i
 data/test/java/nio/channels/SocketChannel/VectorParams.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM937.java.d
 data/src/share/classes/com/sun/tools/jdi/ThreadAction.java.i
+data/test/java/security/Security/signedfirst/Dyn.sh.i
+data/test/java/util/PluggableLocale/CollatorProviderTest.sh.i
 data/src/share/classes/sun/net/httpserver/AuthFilter.java.i
+data/src/solaris/classes/sun/nio/ch/Port.java.i
 data/test/java/util/Currency/CurrencyTest.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties.i
 data/test/java/net/URL/normal_http_urls.i
@@ -1337,54 +1313,52 @@ data/src/share/classes/java/lang/ref/Finalizer.java.i
 data/src/share/native/com/sun/media/sound/Utilities.c.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifPasswordFieldUI.java.i
 data/make/tools/src/build/tools/compilefontconfig/CompileFontConfig.java.i
-data/src/windows/classes/java/lang/Terminator.java.i
-data/make/common/shared/Defs-java.gmk.i
-data/test/sun/security/krb5/runNameEquals.sh.i
+data/make/tools/winver/Makefile.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_PE.properties.i
 data/make/tools/CharsetMapping/KOI8_U.map.i
-data/src/solaris/native/sun/java2d/loops/vis_DrawLine.c.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/jibxhelpers/ClassMapper.java.i
 data/src/windows/native/sun/windows/awt_DCHolder.h.i
 data/src/share/classes/sun/io/ByteToCharCp863.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBuffer/SubbufferLong.java.i
+data/test/javax/sound/midi/Gervill/SoftCubicResampler/Interpolate.java.i
 data/make/java/fdlibm/FILES_c.gmk.i
-data/src/share/classes/sun/security/util/DerOutputStream.java.i
+data/src/share/classes/com/sun/java/swing/plaf/gtk/icons/image-delayed.png.i
 data/src/share/classes/sun/security/x509/InhibitAnyPolicyExtension.java.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpEngineParameters.java.i
 data/src/share/classes/java/util/concurrent/ConcurrentMap.java.i
 data/src/share/classes/sun/security/pkcs11/SunPKCS11.java.i
 data/test/sun/nio/cs/ZeroedByteArrayEUCTWTest.java.i
 data/test/java/util/concurrent/ExecutorCompletionService/LoopHelpers.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadTSProvider.java.i
-data/test/java/util/concurrent/BlockingQueue/LastElement.java.i
+data/make/tools/CharsetMapping/IBM855.map.i
 data/src/share/native/sun/java2d/loops/GlyphImageRef.h.i
 data/test/java/lang/Thread/ThreadStateTest.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKConstants.java.i
 data/src/share/classes/com/sun/tools/jdi/LinkedHashMap.java.i
+data/src/share/classes/java/sql/SQLPermission.java.i
 data/src/share/classes/com/sun/jdi/event/StepEvent.java.i
 data/src/share/demo/jfc/Metalworks/DemoMetalTheme.java.i
 data/src/share/classes/java/util/concurrent/RunnableFuture.java.i
+data/src/share/classes/java/lang/IndexOutOfBoundsException.java.i
 data/src/share/classes/sun/beans/editors/StringEditor.java.i
 data/src/windows/native/sun/windows/awt_Clipboard.cpp.i
 data/test/sun/tools/jstatd/jstatdExternalRegistry.sh.i
-data/test/sun/security/provider/certpath/DisabledAlgorithms/generate.sh.i
+data/src/share/classes/sun/net/www/protocol/http/NegotiateCallbackHandler.java.i
 data/test/javax/management/remote/mandatory/notif/AddRemoveTest.java.i
 data/src/share/classes/javax/management/event/FetchingEventRelay.java.i
 data/test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/AbsoluteComponentCenterCalculator.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/Open.java.i
 data/src/share/classes/com/sun/tools/example/trace/Trace.java.i
 data/src/share/classes/javax/print/attribute/standard/NumberUp.java.i
+data/test/java/rmi/activation/Activatable/checkActivateRef/security.policy.i
 data/src/share/classes/sun/java2d/loops/SurfaceType.java.i
 data/src/share/classes/javax/management/MBeanServerPermission.java.i
-data/src/share/native/sun/security/ec/impl/ecp.h.i
 data/src/share/classes/sun/nio/ch/CompletedFuture.java.i
 data/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java.i
 data/test/java/lang/instrument/appendToClassLoaderSearch/BasicTest.java.i
 data/src/share/classes/java/io/Externalizable.java.i
+data/test/java/awt/print/Dialog/DialogType.java.i
 data/src/share/classes/com/sun/jndi/ldap/DefaultResponseControlFactory.java.i
 data/src/share/classes/sun/awt/ComponentFactory.java.i
-data/test/java/nio/channels/SocketChannel/OutOfBand.java.i
-data/test/java/util/zip/Bounds.java.i
+data/src/share/classes/javax/swing/plaf/metal/icons/Question.gif.i
 data/test/java/nio/channels/Selector/HelperSlowToDie.java.i
 data/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java.i
 data/src/share/native/java/lang/fdlibm/src/w_gamma_r.c.i
@@ -1394,22 +1368,17 @@ data/test/java/io/Serializable/fieldTypeString/Read.java.i
 data/src/share/classes/java/util/concurrent/atomic/AtomicLongFieldUpdater.java.i
 data/test/javax/xml/crypto/dsig/data/signature-x509-is.xml.i
 data/make/mkdemo/applets/JumpingBox/Makefile.i
-data/test/java/util/Collections/EmptyIterator.java.i
 data/src/share/native/sun/awt/image/cvutils/img_ordgray.h.i
 data/src/share/native/sun/java2d/loops/Ushort555Rgb.c.i
 data/make/LICENSE.i
-data/src/windows/classes/com/sun/tools/jdi/SharedMemoryAttachingConnector.java.i
 data/src/share/classes/java/util/zip/CheckedInputStream.java.i
-data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargePacket.java.i
-data/test/javax/management/modelmbean/ModelMBeanInfoSupport/policy.i
-data/src/solaris/doc/sun/man/man1/jinfo.1.i
+data/test/sun/security/tools/policytool/Alias.java.i
 data/src/share/classes/java/lang/Double.java.i
 data/src/share/classes/com/sun/jdi/IntegerValue.java.i
 data/src/share/classes/sun/misc/IOUtils.java.i
 data/test/java/security/Security/SynchronizedAccess.java.i
-data/src/share/classes/javax/swing/text/JTextComponent.java.i
-data/test/sun/security/pkcs11/ec/TestECDH.java.i
-data/test/java/lang/management/CompositeData/ThreadInfoCompositeData.java.i
+data/src/share/classes/java/text/RuleBasedCollator.java.i
+data/test/java/rmi/server/useCustomRef/UseCustomRef.java.i
 data/test/javax/security/auth/login/Configuration/GetInstanceProvider.java.i
 data/src/share/classes/javax/sql/rowset/package.html.i
 data/test/java/util/zip/StreamConstructor.java.i
@@ -1419,18 +1388,18 @@ data/test/java/lang/Boolean/Factory.java.i
 data/src/share/classes/sun/management/counter/Counter.java.i
 data/src/share/classes/com/sun/java/swing/plaf/nimbus/AbstractRegionPainter.java.i
 data/test/sun/management/jmxremote/bootstrap/JvmstatCountersTest.java.i
-data/test/java/io/Serializable/notAvailable/NotAvailable.java.i
+data/test/java/lang/annotation/loaderLeak/Main.java.i
 data/test/javax/management/remote/mandatory/notif/DiffHBTest.java.i
 data/src/share/classes/com/sun/jmx/remote/security/JMXPluggableAuthenticator.java.i
 data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipDirectoryStream.java.i
-data/src/share/classes/sun/net/ftp/FtpDirParser.java.i
+data/src/share/classes/java/awt/dnd/DropTargetDragEvent.java.i
+data/src/solaris/classes/sun/java2d/xr/XRVolatileSurfaceManager.java.i
 data/test/java/beans/PropertyEditor/TestDoubleClassJava.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObject.java.i
 data/src/share/classes/com/sun/jndi/cosnaming/OrbReuseTracker.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifTextFieldUI.java.i
 data/make/mkdemo/jvmti/Makefile.i
 data/make/tools/swing-beans/beaninfo/images/JRadioButtonColor16.gif.i
-data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java.i
 data/src/share/classes/com/sun/media/sound/EmergencySoundbank.java.i
 data/src/share/classes/sun/io/ByteToCharCp1124.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SocketCreation/SocketCreation.java.i
@@ -1443,95 +1412,92 @@ data/src/share/classes/javax/sql/CommonDataSource.java.i
 data/src/share/classes/javax/net/ssl/SSLKeyException.java.i
 data/src/linux/doc/man/ja/tnameserv.1.i
 data/test/javax/naming/Name/j2se13-name.ser.i
-data/test/java/rmi/server/RMIClassLoader/spi/security.policy.i
-data/test/sun/misc/JarIndex/metaInfFilenames/jarB/META-INF/JAVA2.DS.i
 data/src/share/classes/javax/sound/sampled/CompoundControl.java.i
 data/make/tools/swing-beans/beaninfo/images/JEditorPaneMono32.gif.i
-data/src/share/classes/java/awt/geom/GeneralPath.java.i
+data/make/tools/swing-beans/beaninfo/images/JRootPaneMono32.gif.i
 data/src/share/classes/java/net/ConnectException.java.i
+data/src/share/classes/java/util/UUID.java.i
 data/src/share/classes/com/sun/accessibility/internal/resources/accessibility.properties.i
-data/test/javax/swing/JColorChooser/Test6348456.java.i
 data/src/windows/native/sun/windows/CmdIDList.h.i
-data/test/java/lang/invoke/InvokeDynamicPrintArgs.java.i
+data/src/share/classes/com/sun/media/sound/SoftPointResampler.java.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpPduTrap.java.i
 data/src/share/classes/java/security/cert/CRLSelector.java.i
 data/src/share/classes/sun/io/ByteToCharISO8859_8.java.i
-data/src/share/classes/sun/security/krb5/internal/crypto/CksumType.java.i
 data/src/share/classes/java/lang/StrictMath.java.i
-data/test/java/awt/print/PrinterJob/GetMediasTest.java.i
 data/src/share/sample/jmx/jmx-scandir/manifest.mf.i
 data/test/java/security/Provider/RemoveProvider.java.i
 data/make/tools/CharsetMapping/IBM297.c2b.i
 data/src/share/classes/java/nio/charset/spi/CharsetProvider.java.i
 data/src/share/classes/sun/util/resources/CalendarData_uk.properties.i
 data/src/share/classes/javax/sql/rowset/spi/SyncProvider.java.i
-data/src/windows/native/sun/windows/ThemeReader.cpp.i
 data/src/share/classes/javax/naming/ContextNotEmptyException.java.i
+data/src/share/classes/java/nio/file/WatchKey.java.i
 data/src/solaris/classes/sun/java2d/xr/XRBackendNative.java.i
-data/src/solaris/native/sun/awt/canvas.h.i
+data/test/com/sun/nio/sctp/SctpServerChannel/Util.java.i
 data/src/share/classes/javax/swing/plaf/synth/DefaultSynthStyleFactory.java.i
-data/test/sun/tools/jstat/jstatLineCounts3.sh.i
 data/test/sun/security/tools/policytool/UpdatePermissions.html.i
 data/src/share/classes/sun/font/GraphicComponent.java.i
-data/test/com/sun/jdi/LineNumberOnBraceTest.java.i
-data/test/javax/security/auth/login/LoginContext/ResetConfigModule.java.i
+data/test/java/lang/Class/getEnclosingClass/EnclosingClassTest.java.i
 data/test/java/nio/channels/SocketChannel/SocketInheritance.java.i
 data/test/java/rmi/registry/emptyName/EmptyName.java.i
 data/src/share/classes/javax/naming/directory/InvalidAttributeIdentifierException.java.i
 data/test/javax/xml/crypto/dsig/data/xml-stylesheet.i
-data/src/share/instrument/Reentrancy.c.i
+data/src/share/classes/javax/swing/plaf/metal/sounds/OptionPaneError.wav.i
 data/src/share/classes/javax/crypto/package.html.i
 data/src/share/classes/com/sun/jdi/event/MethodEntryEvent.java.i
 data/src/windows/bin/ia64/jvm.cfg.i
 data/src/share/classes/java/util/TimSort.java.i
+data/make/tools/CharsetMapping/IBM939.c2b.i
 data/src/share/classes/com/sun/media/sound/SoftMixingDataLine.java.i
 data/src/share/classes/sun/awt/SunDisplayChanger.java.i
 data/src/share/demo/java2d/J2DBench/src/j2dbench/Node.java.i
 data/src/share/classes/com/sun/tools/jconsole/JConsolePlugin.java.i
+data/src/share/back/eventHandler.h.i
 data/src/solaris/demo/jni/Poller/README.txt.i
 data/test/com/sun/nio/sctp/MessageInfoTests.java.i
 data/src/share/classes/java/util/HashSet.java.i
 data/src/share/native/sun/awt/image/cvutils/img_colors.c.i
 data/test/sun/net/www/protocol/jar/jarbug/src/test/TestBug4361044.java.i
-data/test/java/lang/management/ThreadMXBean/ThreadExecutionSynchronizer.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/ParserTreeConstants.java.i
 data/test/com/sun/org/apache/xml/internal/security/signature-enveloping-hmac-sha1.xml.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/MethodNotFoundException.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java.i
 data/src/share/classes/java/util/concurrent/ConcurrentLinkedDeque.java.i
 data/src/share/classes/java/awt/doc-files/modal-example4.gif.i
-data/src/share/classes/sun/util/resources/CurrencyNames_ar_TN.properties.i
 data/src/share/classes/sun/io/CharToByteCp1046.java.i
 data/src/share/classes/java/nio/file/attribute/package-info.java.i
 data/src/share/native/sun/awt/image/jpeg/jcomapi.c.i
 data/src/share/classes/java/beans/PropertyChangeEvent.java.i
 data/src/share/native/sun/awt/image/cvutils/img_ordclrsgn.h.i
-data/test/javax/management/MustBeValidMBeanInfo/MustBeValidCommand.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-amd64/libplc4.so.i
 data/src/share/classes/com/sun/jdi/event/MonitorWaitEvent.java.i
-data/test/java/net/URL/URIToURLTest.java.i
 data/test/java/util/Formatter/BasicShortObject.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/zutil.h.i
-data/test/java/util/Timer/DelayOverflow.java.i
-data/src/share/classes/sun/text/resources/FormatData_ko_KR.java.i
-data/test/java/io/File/ToURI.java.i
-data/src/share/classes/sun/jkernel/Mutex.java.i
+data/test/org/openjdk/jigsaw/optional-reexport.sh.i
+data/src/share/classes/sun/font/SunFontManager.java.i
+data/make/tools/CharsetMapping/IBM424.map.i
+data/test/sun/nio/cs/OLD/DBCS_IBM_EBCDIC_Decoder.java.i
+data/src/linux/doc/man/ja/javadoc.1.d
 data/src/share/classes/sun/security/provider/certpath/OCSPChecker.java.i
 data/src/solaris/native/sun/awt/X11Color.c.i
 data/src/share/classes/java/util/logging/MemoryHandler.java.i
 data/test/java/util/jar/JarFile/ScanSignedJar.java.i
-data/make/sun/management/Makefile.i
+data/test/javax/management/modelmbean/ModelMBeanInfoSupport/policy.i
 data/src/share/classes/sun/security/util/AuthResources_zh_CN.java.i
+data/test/java/io/Serializable/ClassCastExceptionDetail/Write.java.i
 data/test/java/util/Formatter/Basic-X.java.template.i
 data/src/share/classes/sun/util/resources/LocaleNames_es_US.properties.i
 data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties.i
-data/test/java/security/UnresolvedPermission/Equals.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_in.properties.i
-data/test/javax/sound/midi/Gervill/ModelStandardTransform/NewModelStandardTransformBoolean.java.i
+data/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU16S16Func.c.i
 data/make/tools/swing-beans/beaninfo/images/BoxMono32.gif.i
+data/make/tools/CharsetMapping/IBM870.map.i
 data/src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludes.java.i
 data/src/share/classes/sun/misc/ExtensionDependency.java.i
 data/src/share/classes/com/sun/jndi/ldap/sasl/SaslInputStream.java.i
+data/src/share/demo/applets/MoleculeViewer/XYZApp.java.i
 data/make/tools/swing-beans/beaninfo/images/JScrollBarMono16.gif.i
-data/test/java/beans/XMLEncoder/java_util_Collections_SynchronizedCollection.java.i
+data/test/java/util/TimeZone/TimeZoneDatePermissionCheck.sh.i
 data/src/windows/native/sun/windows/DllUtil.cpp.i
 data/src/share/classes/org/openjdk/jigsaw/ModuleFileSigner.java.i
 data/make/sun/management/snmp/Makefile.i
@@ -1541,12 +1507,12 @@ data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_pt_BR.prope
 data/test/sun/security/smartcardio/TestAll.java.i
 data/src/share/classes/java/awt/SystemTray.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiButtonUI.java.i
-data/src/share/classes/javax/accessibility/AccessibleExtendedTable.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libnspr4.so.d
 data/src/share/classes/sun/invoke/WrapperInstance.java.i
 data/src/share/demo/jvmti/versionCheck/sample.makefile.txt.i
 data/test/java/io/File/ListRoots.java.i
 data/src/share/native/java/util/zip/zlib-1.2.3/zadler32.c.i
-data/src/share/classes/sun/security/util/BigInt.java.i
+data/src/share/classes/sun/applet/AppletPanel.java.i
 data/test/javax/management/loading/LibraryLoader/LibraryLoaderTest.java.i
 data/src/share/native/java/util/zip/zlib-1.2.3/infback.c.i
 data/src/share/classes/java/lang/management/ThreadMXBean.java.i
@@ -1555,53 +1521,56 @@ data/test/java/util/Collection/BiggernYours.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/config.xml.i
 data/src/share/classes/javax/swing/SpinnerModel.java.i
 data/src/share/classes/com/sun/jmx/snmp/Enumerated.java.i
+data/test/sun/security/krb5/auto/PrincipalNameEquals.java.i
 data/test/java/security/Security/signedfirst/keystore.jks.i
 data/test/java/lang/ClassLoader/deadlock/Starter.java.i
 data/src/share/classes/sun/rmi/rmic/Generator.java.i
 data/src/share/classes/com/sun/jndi/ldap/LdapClient.java.i
 data/src/share/classes/java/io/ObjectOutputStream.java.i
-data/src/share/classes/javax/swing/text/AsyncBoxView.java.i
+data/src/share/classes/javax/swing/border/EtchedBorder.java.i
 data/src/share/demo/applets/WireFrame/example1.html.i
 data/make/sunw/Makefile.i
-data/src/share/classes/javax/swing/JRadioButtonMenuItem.java.i
+data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargePacket.java.i
 data/test/javax/management/namespace/NamespaceController.java.i
-data/test/javax/management/remote/mandatory/connectorServer/RMIExporterTest.java.i
 data/make/mkdemo/jfc/FileChooserDemo/Makefile.i
-data/test/java/rmi/activation/ActivationSystem/activeGroup/security.policy.i
+data/test/javax/management/eventService/EventDelegateSecurityTest.java.i
 data/src/share/classes/java/text/StringCharacterIterator.java.i
 data/src/share/classes/sun/util/resources/CalendarData_da.properties.i
 data/test/java/lang/StringBuffer/SBBasher.java.i
 data/src/share/classes/sun/misc/UCDecoder.java.i
-data/test/javax/sound/midi/Gervill/AudioFloatConverter/ToFloatArray.java.i
 data/src/share/classes/sun/io/CharToByteISO2022JP.java.i
 data/test/java/security/cert/CertPathValidator/nameConstraints/generate.sh.i
 data/src/share/classes/java/io/FileNotFoundException.java.i
 data/test/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream/BufferOverflowTest.java.i
 data/src/solaris/demo/jni/Poller/SimpleServer.java.i
+data/src/share/native/sun/font/layout/LookupTables.h.i
 data/src/share/classes/javax/xml/crypto/dsig/XMLSignContext.java.i
 data/test/javax/management/loading/LibraryLoader/jar_src/UseNativeLibMBean.java.i
+data/src/solaris/bin/sparcv9/jvm.cfg.i
 data/src/share/classes/sun/swing/plaf/synth/DefaultSynthStyle.java.i
-data/src/share/classes/java/awt/doc-files/TextField-1.gif.i
+data/test/java/lang/instrument/appendToClassLoaderSearch/A.2.i
 data/test/java/rmi/server/Unreferenced/leaseCheckInterval/SelfTerminator.java.i
-data/test/tools/pack200/pack200-verifier/make/build.xml.i
+data/test/javax/management/remote/mandatory/passwordAuthenticator/jmxremote.login.i
+data/src/share/classes/org/openjdk/internal/joptsimple/OptionSpecBuilder.java.i
 data/src/share/classes/com/sun/media/sound/EventDispatcher.java.i
 data/src/windows/native/sun/jkernel/kernel.h.i
 data/src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java.i
-data/src/share/classes/javax/imageio/metadata/IIOMetadataController.java.i
+data/test/java/security/Security/NoInstalledProviders.java.i
 data/test/java/io/charStreams/IntGenerator.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/Matte.java.i
+data/src/share/classes/com/sun/jmx/snmp/agent/SnmpGenericMetaServer.java.i
 data/test/java/beans/XMLEncoder/java_util_EnumMap.java.i
 data/make/tools/CharsetMapping/IBM273.nr.i
 data/src/share/classes/javax/imageio/spi/ImageWriterSpi.java.i
 data/src/share/classes/com/sun/media/sound/SoftReceiver.java.i
-data/src/solaris/classes/com/sun/management/OSMBeanFactory.java.i
-data/test/java/nio/channels/FileChannel/MapTest.java.i
+data/src/share/classes/javax/security/sasl/AuthenticationException.java.i
+data/test/sun/tools/jps/jps-vm_Output1.awk.i
 data/src/solaris/classes/sun/net/www/protocol/file/Handler.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpPduRequestType.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGStreamMetadataFormatResources.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_cs.properties.i
 data/src/share/classes/javax/security/auth/kerberos/package.html.i
-data/src/share/native/java/lang/fdlibm/src/e_asin.c.i
+data/src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.h.i
 data/src/share/classes/javax/xml/crypto/dsig/keyinfo/KeyInfoFactory.java.i
 data/src/share/classes/sun/invoke/util/BytecodeName.java.i
 data/src/share/classes/java/security/UnresolvedPermission.java.i
@@ -1609,330 +1578,308 @@ data/make/tools/src/build/tools/jdwpgen/ConstantSetNode.java.i
 data/src/solaris/classes/sun/java2d/x11/X11PMBlitBgLoops.java.i
 data/src/windows/classes/sun/nio/fs/WindowsPathParser.java.i
 data/make/common/internal/Defs-langtools.gmk.i
-data/test/java/awt/GraphicsEnvironment/TestGetDefScreenDevice.java.i
+data/test/sun/security/tools/keytool/importreadall.sh.i
 data/make/tools/swing-beans/beaninfo/images/JSplitPaneColor32.gif.i
-data/src/share/classes/sun/tools/jconsole/ProxyClient.java.i
+data/test/java/beans/XMLEncoder/java_util_Collections_SynchronizedList.java.i
 data/make/tools/freetypecheck/freetypecheck.c.i
-data/src/share/classes/com/sun/jdi/event/ExceptionEvent.java.i
-data/test/sun/jvmstat/monitor/VmIdentifier/testcases.i
+data/src/share/classes/org/openjdk/jigsaw/cli/Commands.java.i
 data/make/java/nio/reorder-i586.i
-data/make/tools/CharsetMapping/SingleByte-X.java.i
+data/test/java/util/TreeMap/NullPermissiveComparator.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/Canvas.java.i
 data/test/java/util/PluggableLocale/providersrc/NumberFormatProviderImpl.java.i
 data/test/sun/security/provider/PolicyFile/getinstance/NoArgPermission.java.i
 data/make/mkdemo/Makefile.i
 data/test/java/beans/XMLEncoder/4741757/TestFieldAccess.java.i
+data/src/share/classes/sun/security/jgss/ProviderList.java.i
 data/test/java/rmi/server/RMIClassLoader/loadProxyClasses/security.policy.i
 data/src/share/classes/com/sun/tools/jdi/AbstractLauncher.java.i
 data/src/share/classes/sun/awt/geom/Order2.java.i
-data/src/share/classes/sun/text/resources/FormatData_el.java.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/BlendingMode.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaInt.java.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/CodeAttributeParser.java.i
 data/test/java/beans/PropertyEditor/TestLongClassValue.java.i
 data/src/share/classes/com/sun/security/auth/NTDomainPrincipal.java.i
 data/test/javax/management/MBeanServerFactory/ReleaseMBeanServerTest.java.i
-data/test/java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html.i
-data/test/java/lang/instrument/BootClassPath/AgentSupport.java.i
+data/test/java/rmi/activation/CommandEnvironment/rmid.security.policy.i
+data/src/share/classes/javax/crypto/JceSecurity.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity_de.properties.i
 data/src/share/classes/com/sun/media/sound/SF2Region.java.i
-data/test/sun/tools/jstat/lineCounts4.awk.i
 data/test/java/security/cert/CertPath/cert_file.i
 data/src/share/classes/sun/awt/DesktopBrowse.java.i
-data/src/share/classes/sun/management/Agent.java.i
+data/test/java/io/PipedReader/Constructors.java.i
 data/src/share/classes/sun/java2d/opengl/OGLSurfaceDataProxy.java.i
 data/src/share/sample/nio/chatserver/MessageReader.java.i
-data/src/windows/classes/sun/awt/windows/WLabelPeer.java.i
-data/test/java/util/Formatter/Basic.sh.i
+data/test/javax/print/applet/applet4/Applet4PrintServiceLookup.java.i
 data/src/share/back/eventFilterRestricted.h.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/PainterGenerator.java.i
 data/src/share/classes/sun/nio/ch/Util.java.i
-data/src/windows/native/sun/windows/awt_Color.h.i
-data/test/java/util/Collections/Ser.java.i
+data/test/sun/security/pkcs11/nss/lib/linux-i586/libnssckbi.so.i
+data/src/share/classes/sun/text/resources/FormatData_zh_SG.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsMenuItemUIAccessor.java.i
 data/test/java/security/UnresolvedPermission/Debug.policy.i
 data/src/windows/classes/sun/awt/windows/WScrollbarPeer.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties.i
 data/src/share/classes/java/rmi/server/SkeletonMismatchException.java.i
 data/src/share/classes/com/sun/crypto/provider/PBECipherCore.java.i
-data/src/share/native/sun/java2d/loops/Ushort555Rgb.h.i
+data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/GetLoopStart.java.i
 data/src/windows/native/sun/java2d/windows/WindowsFlags.cpp.i
-data/src/share/classes/sun/reflect/generics/tree/MethodTypeSignature.java.i
+data/src/share/classes/javax/swing/table/AbstractTableModel.java.i
 data/src/share/classes/java/security/KeyPairGeneratorSpi.java.i
-data/test/sun/net/www/protocol/ftp/HandlerEquals.java.i
+data/test/sun/java2d/cmm/ProfileOp/MTReadProfileTest.java.i
 data/test/sun/security/util/DerInputBuffer/DerInputBufferEqualsHashCode.java.i
-data/test/javax/management/context/LocalizableTest.java.i
 data/src/share/classes/java/rmi/UnmarshalException.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaShort.java.i
 data/src/share/classes/com/sun/jmx/remote/internal/ArrayQueue.java.i
 data/src/share/classes/com/sun/beans/decoder/ObjectElementHandler.java.i
-data/make/common/shared/Defs-windows.gmk.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifTabbedPaneUI.java.i
+data/src/share/classes/com/sun/jdi/request/EventRequest.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/jibxhelpers/ClassConverter.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-i586/libfreebl3.so.i
 data/src/share/classes/sun/io/CharToByteISO2022CN_CNS.java.i
-data/test/javax/management/mxbean/JMXServiceURLTest.java.i
+data/src/solaris/classes/sun/awt/X11/XCustomCursor.java.i
 data/src/share/native/sun/security/pkcs11/j2secmod.c.i
-data/test/javax/management/remote/mandatory/subjectDelegation/jmxremote.password.i
 data/test/java/math/BigDecimal/IntegralDivisionTests.java.i
 data/src/share/classes/sun/tools/tree/PreDecExpression.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-i586/libsoftokn3.so.d
 data/src/windows/native/sun/windows/awt_Panel.cpp.i
 data/src/share/classes/java/lang/Enum.java.i
 data/src/share/classes/java/text/NumberFormat.java.i
 data/test/java/text/Bidi/BidiSurrogateTest.java.i
 data/make/com/sun/nio/sctp/Makefile.i
-data/src/share/classes/javax/security/auth/login/LoginException.java.i
+data/src/share/classes/javax/swing/text/html/parser/TagStack.java.i
 data/test/java/net/DatagramSocket/PortUnreachable.java.i
-data/test/com/sun/net/httpserver/Test13.java.i
-data/test/java/util/EnumSet/EnumSetBash.java.i
+data/src/share/classes/java/awt/peer/TrayIconPeer.java.i
 data/test/org/openjdk/jigsaw/hello-jar.sh.i
 data/src/solaris/doc/sun/man/man1/javaws.1.i
 data/test/java/lang/Class/TypeCheckMicroBenchmark.java.i
-data/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSubTreeData.java.i
 data/src/share/classes/sun/io/ByteToCharISO8859_4.java.i
 data/test/java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/EvaluationException.java.i
-data/test/sun/nio/cs/OLD/IBM939_OLD.java.i
 data/src/share/native/sun/java2d/Disposer.c.i
-data/test/java/util/Locale/data/deflocale.winvista.i
-data/src/share/native/sun/java2d/loops/ByteGray.h.i
 data/src/share/classes/com/sun/net/httpserver/HttpsServer.java.i
 data/src/share/classes/java/nio/file/attribute/AttributeView.java.i
 data/test/java/net/URLConnection/Responses.java.i
-data/test/java/io/charStreams/ABCInputStream.java.i
-data/src/share/classes/com/sun/jmx/snmp/tasks/Task.java.i
-data/src/windows/back/mutex_md.h.i
+data/test/javax/swing/text/html/parser/Parser/7003777/bug7003777.java.i
+data/src/share/classes/javax/swing/plaf/multi/MultiViewportUI.java.i
+data/src/solaris/classes/sun/java2d/xr/XRBackend.java.i
 data/src/share/bin/main.c.i
 data/make/tools/CharsetMapping/IBM930.map.i
 data/src/share/classes/java/awt/SequencedEvent.java.i
 data/test/javax/swing/border/Test6910490.html.i
 data/src/share/classes/sun/tools/java/ParserActions.java.i
-data/test/com/sun/jdi/PopAndStepTest.java.i
+data/test/java/util/PluggableLocale/providersrc/CollatorProviderImpl.java.i
 data/test/java/io/BufferedReader/SkipNegative.java.i
 data/src/share/classes/java/awt/RadialGradientPaintContext.java.i
-data/test/java/lang/annotation/loaderLeak/A.java.i
+data/src/share/classes/java/util/concurrent/atomic/AtomicLong.java.i
 data/test/javax/sound/midi/Gervill/SoftTuning/Load9.java.i
 data/src/windows/classes/sun/nio/fs/WindowsFileAttributes.java.i
-data/test/java/util/Formatter/genBasic.sh.i
 data/src/share/classes/sun/security/krb5/internal/EncTGSRepPart.java.i
 data/src/share/classes/javax/swing/text/html/NoFramesView.java.i
 data/src/solaris/classes/sun/awt/X11GraphicsConfig.java.i
 data/src/share/classes/sun/reflect/generics/tree/ShortSignature.java.i
 data/src/share/classes/com/sun/media/sound/DLSModulator.java.i
 data/src/share/classes/sun/io/ByteToCharISO2022KR.java.i
-data/src/share/classes/sun/security/krb5/internal/LastReq.java.i
-data/src/share/classes/javax/swing/InputVerifier.java.i
+data/test/tools/jar/ChangeDir.java.i
+data/src/share/classes/java/util/concurrent/FutureTask.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI.java.i
 data/src/share/classes/java/security/KeyRep.java.i
 data/test/java/lang/Runtime/exec/BadEnvp.java.i
-data/test/javax/print/applet/applet1/META-INF/services/javax.print.PrintServiceLookup.i
 data/src/share/classes/javax/swing/SpinnerNumberModel.java.i
 data/make/modules/tools/src/com/sun/classanalyzer/ClassFileParser.java.i
 data/src/share/classes/com/sun/pept/Delegate.java.i
-data/src/share/native/sun/security/ec/impl/ecl.h.i
 data/src/share/classes/javax/swing/plaf/basic/LazyActionMap.java.i
 data/test/java/rmi/activation/Activatable/inactiveGroup/ActivateMe.java.i
-data/src/share/classes/sun/security/tools/KeyStoreUtil.java.i
+data/src/share/classes/javax/print/FlavorException.java.i
 data/src/share/classes/sun/security/action/OpenFileInputStreamAction.java.i
 data/test/sun/security/tools/keytool/CloneKeyAskPassword.jks.i
 data/src/share/classes/java/awt/PrintGraphics.java.i
 data/test/java/util/concurrent/Phaser/FickleRegister.java.i
 data/test/java/net/URLConnection/contentHandler/UserContentHandler.java.i
-data/test/lib/security/cacerts/VerifyCACerts.java.i
-data/test/java/beans/Introspector/Test6528714.java.i
+data/src/share/native/java/security/AccessController.c.i
 data/src/share/classes/sun/tools/tree/AssignRemainderExpression.java.i
-data/test/sun/security/pkcs11/KeyStore/Basic.java.i
+data/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java.i
+data/test/java/lang/Runtime/exec/setcwd.sh.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifDesktopIconUI.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedKey.java.i
 data/src/windows/classes/sun/security/mscapi/RSACipher.java.i
 data/src/share/classes/com/sun/net/ssl/SSLContext.java.i
 data/src/share/classes/sun/awt/image/SunWritableRaster.java.i
-data/src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c.i
+data/test/javax/management/Introspector/IsMethodTest.java.i
 data/src/share/classes/sun/java2d/StateTracker.java.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/UseCustomSocketFactory.java.i
-data/test/javax/xml/crypto/dsig/data/certs/user.crt.i
 data/test/sun/rmi/server/MarshalOutputStream/marshalForeignStub/security.policy.i
 data/src/share/classes/java/lang/invoke/MethodHandles.java.i
-data/src/share/native/sun/misc/VMSupport.c.i
-data/src/share/instrument/Reentrancy.h.i
+data/src/share/sample/jmx/jmx-scandir/nbproject/project.xml.i
+data/make/tools/swing-beans/beaninfo/images/JToolBarColor16.gif.i
 data/src/share/classes/javax/swing/text/html/AccessibleHTML.java.i
-data/test/tools/pack200/pack200-verifier/src/xmlkit/InstructionSyntax.java.i
 data/src/share/classes/javax/swing/text/StyledDocument.java.i
 data/src/share/classes/javax/swing/text/GapContent.java.i
 data/src/share/classes/sun/rmi/transport/proxy/HttpSendInputStream.java.i
-data/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/CanCreateStubs.java.i
-data/test/javax/management/remote/mandatory/subjectDelegation/policy24.i
+data/src/share/classes/java/awt/JobAttributes.java.i
 data/src/share/classes/javax/crypto/spec/PSource.java.i
-data/test/java/util/ResourceBundle/Bug4168625Resource2_en_US.java.i
 data/src/share/classes/java/beans/ChangeListenerMap.java.i
 data/src/share/classes/sun/nio/cs/UTF_16BE.java.i
 data/src/share/classes/com/sun/jarsigner/ContentSignerParameters.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java.i
 data/make/com/sun/tools/Makefile.i
 data/test/java/io/Serializable/unshared/Write.java.i
-data/test/java/rmi/activation/Activatable/nonExistentActivatable/group.security.policy.i
+data/test/java/net/URLClassLoader/getresourceasstream/test.sh.i
 data/test/java/awt/Component/Revalidate/Revalidate.java.i
+data/src/share/classes/com/sun/beans/decoder/FloatElementHandler.java.i
 data/src/share/classes/sun/security/x509/CertificateSerialNumber.java.i
 data/src/linux/doc/man/jmap.1.i
-data/src/share/classes/sun/io/ByteToCharCp852.java.i
+data/src/share/classes/sun/tools/jar/JarException.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/SignatureAlgorithm.java.i
-data/test/java/beans/XMLDecoder/spec/TestMethod.java.i
+data/src/linux/doc/man/orbd.1.i
+data/test/java/net/Authenticator/BasicTest3.java.i
 data/src/share/classes/sun/text/resources/CollationData_hi.java.i
 data/src/share/classes/java/awt/dnd/DropTargetDropEvent.java.i
+data/src/solaris/native/sun/nio/fs/genUnixConstants.c.i
 data/src/share/classes/sun/text/resources/FormatData_en_ZA.java.i
-data/test/java/net/MulticastSocket/Test.java.i
-data/src/solaris/native/sun/awt/fontpath.c.i
-data/src/share/classes/sun/util/resources/CurrencyNames_bg_BG.properties.i
+data/test/javax/swing/JSlider/6923305/bug6923305.java.i
+data/src/windows/native/sun/windows/Devices.cpp.i
 data/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java.i
 data/make/tools/src/build/tools/jdwpgen/ThreadGroupObjectTypeNode.java.i
-data/test/sun/net/www/protocol/jar/jarbug/src/test/RunAllTests.java.i
 data/test/sun/nio/cs/SurrogateGB18030Test.java.i
 data/src/share/classes/java/util/spi/CurrencyNameProvider.java.i
-data/src/solaris/native/sun/java2d/loops/vis_ByteGray_FromRgb.c.i
 data/src/solaris/native/sun/java2d/loops/vis_FourByteAbgr.c.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.java.i
 data/src/solaris/classes/sun/awt/motif/MPopupMenuPeer.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelInsert_1.c.i
-data/test/javax/security/auth/Subject/Serial.java.i
+data/src/linux/doc/man/jsadebugd.1.i
 data/src/share/classes/javax/swing/JTextPane.java.i
-data/src/share/classes/sun/text/resources/FormatData_es_HN.java.i
+data/src/share/classes/com/sun/imageio/plugins/common/BogusColorSpace.java.i
 data/src/share/classes/javax/security/auth/AuthPermission.java.i
-data/src/share/classes/java/lang/InstantiationException.java.i
+data/make/netbeans/common/windows-sources.ent.i
 data/src/share/classes/sun/io/ByteToCharKOI8_R.java.i
-data/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.i
+data/test/java/lang/Runtime/exec/StreamsSurviveDestroy.java.i
 data/test/java/lang/reflect/DefaultAccessibility.java.i
 data/src/share/classes/java/rmi/RMISecurityManager.java.i
-data/src/share/classes/sun/security/x509/CRLDistributionPointsExtension.java.i
+data/test/java/awt/regtesthelpers/AbstractPolicyTest.java.i
 data/src/share/classes/java/lang/management/GarbageCollectorMXBean.java.i
 data/src/share/classes/java/util/concurrent/Callable.java.i
 data/src/share/classes/sun/awt/image/VSyncedBSManager.java.i
 data/test/java/nio/channels/SocketChannel/LocalAddress.java.i
 data/src/share/native/sun/awt/image/awt_parseImage.h.i
-data/test/java/io/Serializable/badSubstByReplace/BadSubstByReplace.java.i
-data/test/sun/text/resources/Collator/Bug4848897.java.i
+data/test/java/nio/channels/Selector/LotsOfChannels.java.i
+data/src/share/classes/java/io/InputStreamReader.java.i
+data/src/share/classes/sun/tools/javac/CompilerMember.java.i
 data/src/share/classes/sun/nio/fs/AbstractPoller.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpTableCallbackHandler.java.i
-data/test/javax/print/LookupServices.java.i
 data/test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh.i
 data/src/share/classes/java/beans/beancontext/BeanContextChildSupport.java.i
 data/src/share/classes/sun/misc/SoftCache.java.i
 data/src/share/classes/sun/security/pkcs11/P11DSAKeyFactory.java.i
-data/src/share/classes/sun/awt/image/OffScreenImageSource.java.i
+data/src/share/classes/java/nio/file/CopyMoveHelper.java.i
 data/src/share/classes/sun/rmi/rmic/newrmic/IndentingWriter.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifCheckBoxMenuItemUI.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/Transforms.java.i
 data/test/java/io/FileOutputStream/FileOpenNeg.java.i
 data/src/share/classes/java/awt/dnd/DragSource.java.i
-data/src/share/classes/java/lang/IllegalAccessError.java.i
-data/test/javax/swing/border/Test4760089.java.i
+data/test/sun/nio/cs/FindOneCharEncoderBugs.java.i
 data/src/share/classes/sun/tools/tree/CompoundStatement.java.i
 data/src/share/classes/java/security/acl/AclEntry.java.i
-data/src/share/sample/nio/server/Request.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_ru.properties.i
+data/src/share/classes/java/awt/event/MouseMotionAdapter.java.i
 data/make/org/ietf/jgss/Makefile.i
 data/src/share/classes/com/sun/jmx/mbeanserver/Repository.java.i
 data/make/javax/sql/Makefile.i
-data/src/share/classes/sun/swing/PrintingStatus.java.i
+data/src/windows/native/sun/jkernel/kernel_zh.rc.i
 data/src/share/native/sun/font/layout/SegmentArrayProcessor.h.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ar_DZ.properties.i
-data/src/share/classes/sun/net/www/protocol/http/AuthScheme.java.i
+data/src/share/classes/javax/swing/plaf/synth/SynthCheckBoxUI.java.i
 data/src/share/classes/java/util/concurrent/RecursiveTask.java.i
 data/test/com/sun/java/swing/plaf/gtk/Test6963870.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/schema/xmldsig-core-schema.xsd.i
-data/src/share/classes/sun/security/krb5/internal/SeqNumber.java.i
-data/src/share/native/sun/java2d/loops/AnyByte.c.i
+data/src/share/native/java/util/zip/zlib-1.2.3/zutil.c.i
+data/test/java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java.i
 data/src/share/classes/sun/io/ByteToCharCp1142.java.i
 data/src/share/classes/javax/swing/colorchooser/ValueFormatter.java.i
 data/test/sun/security/pkcs11/Secmod/cert8.db.i
 data/src/solaris/classes/sun/awt/X11/XDragAndDropProtocols.java.i
 data/src/share/native/sun/font/bidi/jbidi.h.i
-data/src/share/classes/sun/rmi/server/Dispatcher.java.i
+data/src/share/native/java/lang/fdlibm/src/w_log.c.i
 data/src/share/classes/sun/swing/DefaultLookup.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReaderResources.java.i
-data/src/share/native/sun/java2d/pipe/ShapeSpanIterator.c.i
-data/test/java/util/zip/ZipFile/DeleteTempJar.java.i
 data/src/share/classes/java/net/URLEncoder.java.i
 data/test/java/lang/Runtime/exec/LotsOfOutput.java.i
-data/test/java/lang/instrument/RedefineClassWithNativeMethod.sh.i
+data/src/share/classes/javax/xml/crypto/KeySelector.java.i
 data/src/share/classes/sun/awt/im/InputMethodJFrame.java.i
 data/test/com/sun/security/auth/callback/TextCallbackHandler/Password.java.i
 data/src/solaris/native/sun/java2d/opengl/J2D_GL/glxext.h.i
-data/src/share/native/java/util/zip/zlib-1.1.3/zcrc32.c.i
 data/src/share/classes/java/security/cert/CertificateParsingException.java.i
-data/test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_TitledBorderUIResource.java.i
 data/test/java/util/concurrent/BlockingQueue/SingleProducerMultipleConsumerLoops.java.i
-data/src/share/sample/jmx/jmx-scandir/nbproject/project.xml.i
+data/src/share/classes/sun/io/ByteToCharCp933.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/IsSoundbankSupported.java.i
 data/src/share/classes/javax/accessibility/AccessibleAction.java.i
 data/make/tools/src/build/tools/javazic/Time.java.i
 data/src/share/classes/sun/io/ByteToCharCp861.java.i
+data/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/group.security.policy.i
 data/src/share/classes/sun/tools/tree/DoubleExpression.java.i
 data/test/java/net/InetAddress/ptr/Lookup.java.i
 data/src/share/native/sun/security/ec/ecl-curve.h.i
-data/test/java/rmi/transport/reuseDefaultPort/ReuseDefaultPort.java.i
-data/test/sun/nio/cs/TestEUC_TW.java.i
+data/src/solaris/classes/sun/awt/X11/XHorizontalScrollbar.java.i
 data/make/sun/javazic/tzdata/southamerica.i
-data/test/org/openjdk/jigsaw/cli/ModuleFormatTest01.sh.i
-data/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java.i
+data/src/share/classes/com/sun/jndi/toolkit/dir/AttrFilter.java.i
+data/src/share/classes/java/security/spec/ECParameterSpec.java.i
+data/src/solaris/classes/sun/nio/fs/LinuxNativeDispatcher.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c.i
 data/src/share/classes/java/lang/annotation/AnnotationFormatError.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions.java.i
-data/src/windows/classes/sun/nio/ch/PollArrayWrapper.java.i
-data/test/java/nio/channels/Selector/KeysReady.java.i
+data/test/com/sun/jdi/JdbArgTest.sh.i
+data/src/share/classes/sun/rmi/registry/resources/rmiregistry.properties.i
 data/src/share/classes/sun/nio/cs/IBM858.java.i
 data/test/sun/tools/common/SleeperApplication.java.i
 data/make/tools/CharsetMapping/IBM280.c2b.i
-data/src/share/classes/sun/swing/AccumulativeRunnable.java.i
+data/src/share/classes/org/openjdk/jigsaw/Resolution.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/BreakpointSpec.java.i
 data/test/java/util/TreeMap/SubMapClear.java.i
 data/src/share/classes/java/io/SyncFailedException.java.i
-data/test/java/nio/channels/AsynchronousChannelGroup/AsExecutor.java.i
+data/src/share/classes/sun/management/resources/agent_it.properties.i
 data/src/share/demo/nbproject/management/JTop/nbproject/netbeans-targets.xml.i
 data/src/share/classes/sun/awt/image/BufImgSurfaceManager.java.i
 data/test/java/net/URLClassLoader/sealing/manifest.i
 data/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java.i
-data/src/windows/classes/sun/awt/windows/WDialogPeer.java.i
+data/test/javax/sound/midi/Gervill/ModelIdentifier/SetVariable.java.i
+data/make/com/sun/tools/attach/FILES_c.gmk.i
 data/src/windows/classes/sun/nio/fs/WindowsUserPrincipals.java.i
 data/src/share/native/sun/font/layout/IndicReordering.h.i
-data/test/javax/swing/plaf/nimbus/Test6741426.java.i
 data/src/share/classes/java/security/acl/package.html.i
 data/src/solaris/classes/sun/awt/motif/MScrollbarPeer.java.i
 data/make/sun/serialver/Makefile.i
 data/test/tools/launcher/ClassPathWildCard.sh.i
+data/src/share/test/pack200/pack.conf.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/schema/xmldsig-core-schema.rng.i
 data/test/javax/management/interop/MBeanExceptionInteropTest.java.i
+data/test/java/awt/dnd/ImageDecoratedDnD/MyCursor.java.i
 data/test/java/awt/Window/GrabSequence/GrabSequence.java.i
-data/src/share/demo/scripting/jconsole-plugin/src/scripts/verbose.js.i
+data/src/share/classes/javax/management/openmbean/TabularType.java.i
 data/src/share/classes/java/awt/TrayIcon.java.i
 data/test/com/sun/jdi/NotAField.sh.i
 data/test/java/net/URLEncoder/DecodeNonEncoded.java.i
-data/test/javax/management/mxbean/ComparatorExceptionTest.java.i
+data/src/share/classes/sun/util/locale/LanguageTag.java.i
 data/src/share/classes/sun/rmi/transport/tcp/MultiplexInputStream.java.i
 data/make/tools/CharsetMapping/IBM866.map.i
 data/make/mkdemo/management/Makefile.i
-data/test/sun/security/mscapi/AccessKeyStore.sh.i
 data/test/java/net/ProxySelector/ProxyTest.java.i
 data/test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh.i
 data/src/share/classes/sun/awt/shell/ShellFolderColumnInfo.java.i
 data/test/java/util/concurrent/BlockingQueue/OfferDrainToLoops.java.i
 data/make/sun/native2ascii/Makefile.i
 data/src/solaris/hpi/native_threads/src/mutex_md.c.i
-data/test/java/net/InetAddress/GetLocalHostWithSM.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_de.properties.i
 data/src/share/classes/javax/swing/text/Highlighter.java.i
 data/test/java/io/Serializable/oldTests/ValidateClass.java.i
-data/test/com/sun/jdi/LaunchCommandLine.java.i
+data/test/java/io/Serializable/resolveClass/consTest/run.sh.i
 data/src/windows/classes/sun/awt/windows/WPrintDialog.java.i
-data/src/share/classes/sun/text/normalizer/Utility.java.i
-data/test/java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.java.i
+data/src/share/classes/javax/swing/plaf/synth/doc-files/synthFileFormat.html.i
 data/src/share/classes/java/util/concurrent/LinkedBlockingQueue.java.i
 data/src/share/classes/java/net/URLDecoder.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32S16Func.c.i
-data/test/sun/misc/JarIndex/metaInfFilenames/jarC/META-INF/fonts/kidpr.ttf.i
 data/src/share/classes/sun/security/ssl/SSLEngineImpl.java.i
-data/src/share/demo/jvmti/heapViewer/sample.makefile.txt.i
 data/test/java/util/concurrent/ScheduledThreadPoolExecutor/BasicCancelTest.java.i
 data/test/java/nio/channels/Selector/SelectAndCancel.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_is.properties.i
 data/src/share/classes/java/lang/Error.java.i
+data/make/sun/security/smartcardio/Makefile.i
 data/src/share/classes/java/rmi/server/RemoteObject.java.i
 data/src/share/classes/javax/swing/plaf/basic/DesktopIconMover.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libsoftokn3.so.d
@@ -1940,20 +1887,19 @@ data/src/share/classes/sun/beans/infos/ComponentBeanInfo.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libsoftokn3.so.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetLoadedInstruments2.java.i
 data/src/share/classes/java/util/FormattableFlags.java.i
-data/test/sun/text/resources/Collator/Bug4248694.java.i
+data/src/share/demo/jfc/TableExample/TableExample.java.i
 data/src/windows/native/sun/windows/awt_Pen.cpp.i
 data/src/share/classes/sun/security/x509/NameConstraintsExtension.java.i
-data/test/sun/security/pkcs11/nss/lib/linux-i586/libnssckbi.so.i
-data/test/java/dyn/ClassValueTest.java.i
+data/src/share/classes/java/security/spec/ECField.java.i
 data/test/java/io/Serializable/evolution/AddedExternField/run.sh.i
-data/src/windows/native/sun/windows/awt_TextComponent.cpp.i
+data/src/share/classes/sun/io/ByteToCharCp33722.java.i
 data/src/share/native/sun/java2d/loops/FillPath.c.i
 data/src/share/classes/com/sun/jndi/url/iiop/iiopURLContext.java.i
 data/src/share/lib/colorname.properties.i
 data/src/share/classes/sun/tools/jconsole/Resources.java.i
 data/src/share/classes/java/lang/LinkageError.java.i
 data/test/java/rmi/activation/Activatable/inactiveGroup/security.policy.i
-data/test/javax/management/query/CustomQueryTest.java.i
+data/src/share/classes/com/sun/jndi/dns/DnsNameParser.java.i
 data/src/share/classes/java/nio/channels/spi/AbstractSelector.java.i
 data/src/share/classes/com/sun/jmx/snmp/daemon/ClientHandler.java.i
 data/src/share/native/sun/font/bidi/cmemory.h.i
@@ -1961,101 +1907,96 @@ data/src/share/classes/com/sun/crypto/provider/BlowfishKeyGenerator.java.i
 data/make/com/sun/Makefile.i
 data/src/share/classes/javax/swing/plaf/basic/BasicPopupMenuUI.java.i
 data/test/javax/swing/SwingWorker/6880336/NestedWorkers.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHost.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/intrinsic.properties.i
 data/src/share/classes/javax/swing/tree/package.html.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java.i
+data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java.i
 data/test/java/rmi/server/RMIClassLoader/loadProxyClasses/PublicInterface1.java.i
 data/make/tools/swing-beans/beaninfo/images/JProgressBarColor32.gif.i
 data/test/java/net/URLConnection/jars/test.jar.i
-data/test/sun/rmi/runtime/Log/6409194/logging.properties.i
+data/src/solaris/classes/sun/awt/motif/X11DropTargetContextPeer.java.i
 data/test/javax/management/namespace/WombatMBean.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalBumps.java.i
 data/make/netbeans/common/sample-sources.ent.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/X509CertificateResolver.java.i
+data/src/share/classes/javax/swing/LookAndFeel.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformXPath.java.i
-data/test/sun/security/provider/PolicyParser/ExpansionErrorMisleading.java.i
+data/test/sun/security/pkcs11/Provider/Login.java.i
 data/src/share/classes/sun/beans/editors/EnumEditor.java.i
-data/test/java/beans/Beans/Test4080522.java.i
+data/src/windows/native/sun/windows/awt_Win32GraphicsConfig.h.i
 data/test/com/sun/net/httpserver/Test7.java.i
 data/make/tools/CharsetMapping/IBM277.map.i
-data/src/windows/native/sun/windows/awt_KeyEvent.cpp.i
-data/test/java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java.i
-data/test/javax/naming/spi/DirectoryManager/GetContDirCtx.java.i
-data/test/java/util/Random/NextIntPowerOfTwoMod.java.i
-data/src/solaris/native/sun/awt/awt_dnd_ds.c.i
+data/src/linux/doc/man/ja/javaws.1.i
+data/test/java/net/InetAddress/BadDottedIPAddress.java.i
+data/src/share/classes/java/security/AlgorithmParametersSpi.java.i
 data/make/sun/pisces/Makefile.i
-data/test/com/sun/jdi/GetLocalVariables2Test.java.i
+data/test/sun/nio/cs/OLD/MS949_OLD.java.i
 data/test/com/sun/nio/sctp/SctpChannel/SocketOptionTests.java.i
 data/src/share/classes/sun/misc/ASCIICaseInsensitiveComparator.java.i
 data/src/share/classes/java/security/BasicPermission.java.i
+data/src/share/classes/sun/print/RasterPrinterJob.java.i
 data/test/java/security/KeyStore/EntryMethods.java.i
-data/test/java/util/concurrent/FutureTask/Customized.java.i
+data/test/java/io/Serializable/oldTests/ArrayFields.java.i
 data/src/share/classes/sun/font/ExtendedTextSourceLabel.java.i
 data/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java.i
 data/test/java/util/logging/LoggerSubclass.java.i
-data/src/share/classes/org/openjdk/jigsaw/LibraryPool.java.i
-data/test/java/security/cert/CertificateFactory/ReturnStream.java.i
+data/src/linux/doc/man/policytool.1.i
 data/make/tools/CharsetMapping/IBM1383.nr.i
 data/src/share/classes/sun/misc/resources/Messages_de.java.i
-data/src/solaris/native/sun/awt/awt_DrawingSurface.c.i
 data/src/share/native/sun/font/layout/ArabicShaping.h.i
-data/test/java/util/Collections/CheckedMapBash.java.i
+data/test/com/sun/crypto/provider/Mac/MacKAT.java.i
 data/src/share/classes/sun/management/counter/perf/LongArrayCounterSnapshot.java.i
 data/src/share/classes/javax/security/auth/Destroyable.java.i
 data/src/share/demo/jvmti/hprof/hprof_ioname.h.i
-data/src/share/classes/sun/text/resources/CollationData_it.java.i
 data/src/share/classes/com/sun/jmx/namespace/JMXNamespaceUtils.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicPanelUI.java.i
 data/src/share/classes/sun/dyn/util/BytecodeName.java.i
 data/src/share/classes/sun/misc/FloatingDecimal.java.i
 data/src/share/classes/javax/print/attribute/standard/NumberUpSupported.java.i
+data/src/solaris/hpi/native_threads/include/condvar_md.h.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformXPath2Filter.java.i
 data/src/share/classes/java/beans/MethodDescriptor.java.i
 data/src/share/classes/sun/nio/cs/ext/MS932_0213.java.i
-data/test/java/nio/channels/FileChannel/TransferToNonWritable.java.i
-data/test/javax/management/remote/mandatory/connection/IIOPURLTest.java.i
+data/src/solaris/classes/sun/nio/ch/SctpMultiChannelImpl.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCanonicalXMLC14NMethod.java.i
 data/test/java/io/Serializable/checkModifiers/CheckModifiers.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageFilters.c.i
+data/test/java/lang/reflect/TypeVariable/TestAnnotatedElement.java.i
 data/src/share/classes/sun/security/x509/UniqueIdentity.java.i
+data/src/share/classes/java/lang/StringBuilder.java.i
 data/src/share/classes/java/awt/doc-files/Label-1.gif.i
 data/src/share/classes/sun/security/util/Resources_pt_BR.java.i
-data/test/java/lang/instrument/BootClassPath/Setup.java.i
+data/test/java/awt/event/KeyEvent/CorrectTime/CorrectTime.java.i
 data/test/javax/security/auth/x500/X500Principal/InvalidConstructorInput.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetReceivers.java.i
-data/test/java/beans/PropertyEditor/TestEnumSubclassJava.java.i
-data/test/tools/launcher/libraryCaller.c.i
+data/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM863.java.i
 data/src/share/classes/sun/dyn/anon/ConstantPoolParser.java.i
+data/src/share/classes/com/sun/jdi/CharValue.java.i
 data/make/tools/CharsetMapping/IBM1147.c2b.i
 data/src/share/classes/javax/sound/sampled/spi/FormatConversionProvider.java.i
 data/src/share/classes/java/lang/ExceptionInInitializerError.java.i
 data/src/share/classes/com/sun/crypto/provider/TlsPrfGenerator.java.i
 data/src/share/classes/sun/security/provider/DSA.java.i
 data/test/javax/sound/midi/Gervill/AudioFloatInputStream/Close.java.i
-data/src/share/native/sun/font/layout/MorphStateTables.h.i
+data/src/share/classes/javax/imageio/stream/FileCacheImageInputStream.java.i
 data/test/java/awt/Toolkit/RealSync/RealSyncOnEDT.java.i
 data/src/share/classes/sun/nio/ch/ChannelInputStream.java.i
-data/src/share/classes/sun/nio/cs/SingleByteDecoder.java.i
-data/test/sun/pisces/DashStrokeTest.java.i
+data/src/share/classes/sun/io/CharToByteCp285.java.i
 data/test/java/lang/Throwable/StackTraceSerialization.java.i
-data/test/javax/management/eventService/EventClientExecutorTest.java.i
 data/test/java/beans/PropertyEditor/TestBooleanType.java.i
 data/test/java/nio/channels/FileChannel/ClosedByInterrupt.java.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/BenchServerImpl.java.i
-data/src/share/demo/applets/DrawTest/DrawTest.java.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/v1_0/PerfDataBufferPrologue.java.i
+data/src/solaris/hpi/native_threads/src/interrupt_md.c.i
+data/test/java/nio/charset/Charset/EmptyCharsetName.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthPainter.java.i
 data/test/java/nio/file/DirectoryStream/DriveLetter.java.i
 data/test/java/lang/instrument/PremainClass/InheritAgent1101.java.i
 data/src/share/native/sun/font/layout/ArabicShaping.cpp.i
 data/test/javax/management/Introspector/ObjectNameTemplateTest.java.i
 data/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java.i
-data/test/java/util/ResourceBundle/Bug4177489_Resource_jf_JF.properties.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/ui/EnableButton.java.i
-data/src/share/native/sun/awt/image/cvutils/img_fscolor.h.i
+data/src/share/classes/com/sun/java/browser/dom/DOMService.java.i
+data/test/java/util/zip/ZipFile/ClearStaleZipFileInputStreams.java.i
 data/test/java/util/prefs/RemoveUnregedListener.java.i
-data/test/com/sun/jdi/redefine/RedefineSubTarg.java.i
-data/test/javax/management/eventService/ReconnectableConnectorTest.java.i
+data/src/share/demo/jfc/CodePointIM/CodePointInputMethod.java.i
+data/src/share/classes/java/awt/geom/Point2D.java.i
 data/src/share/classes/com/sun/jmx/snmp/internal/SnmpAccessControlSubSystem.java.i
 data/test/java/awt/Mixing/LWComboBox.java.i
 data/src/share/classes/java/security/cert/X509Extension.java.i
@@ -2064,14 +2005,15 @@ data/src/share/classes/sun/nio/ch/AbstractPollArrayWrapper.java.i
 data/make/modules/modules.group.i
 data/make/jpda/jdwp/Makefile.i
 data/src/share/classes/java/security/cert/CertPathValidatorException.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/icons/TreeLeaf.gif.i
 data/src/share/classes/java/lang/instrument/ClassDefinition.java.i
+data/src/share/native/sun/font/layout/HangulLayoutEngine.h.i
 data/src/share/classes/com/sun/media/sound/ModelTransform.java.i
 data/src/share/native/sun/font/bidi/utypes.h.i
-data/src/share/instrument/JPLISAgent.h.i
 data/test/java/lang/instrument/SingleTransformerTest.java.i
 data/test/java/io/Serializable/serialver/classpath/run.sh.i
 data/src/share/classes/java/security/spec/ECPublicKeySpec.java.i
-data/src/share/classes/java/util/zip/GZIPInputStream.java.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmThreadInstanceEntryMBean.java.i
 data/src/share/classes/sun/net/www/ParseUtil.java.i
 data/src/share/classes/java/awt/geom/Area.java.i
 data/make/tools/swing-beans/beaninfo/images/JInternalFrameColor16.gif.i
@@ -2079,7 +2021,8 @@ data/test/java/awt/PrintJob/Security/policy.i
 data/make/tools/src/build/tools/jdwpgen/MethodTypeNode.java.i
 data/src/share/classes/com/sun/tools/example/debug/event/ClassPrepareEventSet.java.i
 data/src/share/classes/sun/security/x509/KeyUsageExtension.java.i
-data/test/java/lang/management/MemoryMXBean/CollectionUsageThresholdParallelGC.sh.i
+data/test/java/util/Locale/serialized/java6locale_en.i
+data/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c.i
 data/test/java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java.i
 data/src/share/classes/sun/tools/java/Imports.java.i
 data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain8.txt.i
@@ -2089,68 +2032,73 @@ data/test/com/sun/jdi/ThreadGroupTest.java.i
 data/src/share/classes/java/util/jar/JarException.java.i
 data/src/share/classes/sun/misc/BootClassLoaderHook.java.i
 data/test/java/beans/XMLEncoder/6777487/TestEnumSet.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMBase64Transform.java.i
 data/src/share/classes/javax/management/remote/SubjectDelegationPermission.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/GeneratorUtils.java.i
 data/src/share/classes/sun/reflect/UnsafeObjectFieldAccessorImpl.java.i
 data/test/sun/tools/jps/jps_Output1.awk.i
 data/src/share/native/java/util/zip/zlib-1.2.3/patches/ChangeLog_java.i
-data/src/share/native/sun/java2d/loops/IntArgbBm.c.i
-data/src/share/native/sun/security/ec/impl/ecl_curve.c.i
+data/test/java/io/FileOutputStream/AtomicAppend.java.i
+data/test/javax/security/auth/login/Configuration/GetInstanceSecurity.grantedPolicy.i
 data/test/com/sun/servicetag/UpdateServiceTagTest.java.i
 data/src/share/classes/java/awt/LinearGradientPaint.java.i
 data/src/share/classes/com/sun/media/sound/ModelInstrument.java.i
+data/src/share/classes/com/sun/media/sound/services/javax.sound.midi.spi.SoundbankReader.i
 data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libfreebl_hybrid_3.so.d
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14N11.java.i
-data/src/windows/native/sun/java2d/windows/dxInit.h.i
-data/test/javax/swing/JInternalFrame/Test6802868.java.i
+data/src/solaris/native/sun/awt/awt_motif.h.i
 data/src/share/classes/sun/io/CharToByteMS950.java.i
+data/src/share/classes/java/awt/peer/MenuBarPeer.java.i
 data/src/share/classes/sun/tools/jconsole/resources/expand-winlf.png.i
 data/src/share/classes/javax/xml/crypto/dsig/DigestMethod.java.i
 data/src/share/classes/sun/tools/tree/AssignShiftLeftExpression.java.i
-data/test/java/util/ArrayList/AddAll.java.i
+data/test/java/util/ResourceBundle/RB4353454_en.properties.i
 data/src/share/classes/java/text/AttributedString.java.i
 data/src/share/classes/com/sun/tracing/dtrace/Attributes.java.i
 data/test/sun/nio/cs/TestMS5022X.java.i
 data/test/java/rmi/activation/Activatable/unregisterInactive/ActivateMe.java.i
-data/test/sun/rmi/rmic/newrmic/equivalence/batch.sh.i
-data/src/share/classes/com/sun/management/VMOption.java.i
+data/src/windows/native/sun/java2d/windows/dxInit.h.i
 data/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java.i
 data/src/share/classes/javax/swing/table/DefaultTableModel.java.i
 data/src/share/classes/java/lang/invoke/MethodTypeForm.java.i
-data/test/javax/management/remote/mandatory/connection/CloseFailedClientTest.java.i
-data/test/java/net/Socket/InheritTimeout.java.i
-data/src/share/native/sun/java2d/cmm/lcms/cmslut.c.i
+data/src/share/classes/javax/xml/crypto/dsig/SignedInfo.java.i
+data/test/java/io/File/DeleteOnExitLong.java.i
 data/make/sun/jconsole/Makefile.i
 data/src/share/classes/com/sun/net/httpserver/HttpPrincipal.java.i
-data/src/share/classes/com/sun/jdi/event/ClassPrepareEvent.java.i
+data/src/share/classes/sun/java2d/pipe/DrawImage.java.i
 data/src/solaris/native/sun/awt/awt_TopLevel.c.i
-data/src/solaris/doc/sun/man/man1/ja/jdb.1.i
+data/src/share/classes/sun/awt/GlobalCursorManager.java.i
 data/src/share/classes/sun/security/timestamp/Timestamper.java.i
+data/src/windows/native/sun/java2d/d3d/D3DResourceManager.h.i
 data/test/java/io/readBytes/ReadBytesBounds.java.i
+data/src/windows/classes/sun/awt/windows/awtLocalization_ja.properties.i
 data/test/java/util/concurrent/locks/ReentrantReadWriteLock/RWMap.java.i
 data/test/javax/security/auth/kerberos/KerberosHashEqualsTest.java.i
 data/src/share/classes/sun/tools/asm/ConstantPoolData.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/LoopbackSSLSocket.java.i
+data/test/java/nio/channels/FileChannel/TransferToChannel.java.i
 data/src/share/classes/com/sun/jndi/cosnaming/jndiprovider.properties.i
-data/src/share/native/sun/misc/GC.c.i
+data/src/share/classes/javax/swing/text/html/HRuleView.java.i
 data/src/share/classes/com/sun/jndi/ldap/jndiprovider.properties.i
 data/src/share/classes/java/nio/file/ProviderNotFoundException.java.i
 data/src/share/classes/java/awt/image/BufferStrategy.java.i
+data/src/share/classes/javax/swing/doc-files/BoxLayout-1.gif.i
 data/src/share/classes/java/lang/management/ClassLoadingMXBean.java.i
-data/test/java/net/URLClassLoader/closetest/test2/com/foo/TestClass1.java.i
+data/src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java.i
 data/src/share/classes/com/sun/jmx/namespace/HandlerInterceptor.java.i
 data/test/tools/launcher/UnicodeTest.sh.i
-data/src/solaris/native/sun/security/pkcs11/wrapper/p11_md.c.i
+data/make/jpda/jdwp/jdwp.spec.i
 data/src/share/classes/javax/swing/plaf/nimbus/Defaults.template.i
 data/src/share/classes/com/sun/crypto/provider/SslMacCore.java.i
-data/test/java/awt/font/TextLayout/TextLayoutBounds.java.i
+data/test/java/io/Serializable/skipWriteObject/Read.java.i
+data/src/share/lib/audio/soundbank.gm.i
 data/test/java/rmi/activation/Activatable/createPrivateActivable/CreatePrivateActivatable.java.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/CompressInputStream.java.i
 data/src/share/classes/java/applet/AudioClip.java.i
-data/src/solaris/classes/sun/nio/ch/PipeImpl.java.i
+data/src/share/native/sun/awt/medialib/awt_ImagingLib.h.i
+data/src/share/classes/sun/awt/CausedFocusEvent.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/SnmpAcl.java.i
 data/test/java/io/DataInputStream/OpsAfterClose.java.i
-data/test/java/lang/instrument/PremainClass/InheritAgent0101.java.i
+data/src/share/classes/sun/io/ByteToCharSJIS.java.i
 data/src/share/demo/nbproject/management/VerboseGC/nbproject/project.xml.i
 data/test/java/net/URLDecoder/URLDecoderArgs.java.i
 data/src/share/classes/java/awt/datatransfer/MimeTypeParameterList.java.i
@@ -2159,56 +2107,55 @@ data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIBor
 data/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java.i
 data/src/share/classes/sun/reflect/generics/factory/GenericsFactory.java.i
 data/src/share/classes/sun/tools/tree/IntegerExpression.java.i
-data/src/share/classes/sun/text/resources/FormatData_lt_LT.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod.java.i
-data/src/windows/native/java/net/TwoStacksPlainSocketImpl.c.i
+data/src/share/classes/com/sun/rowset/RowSetResourceBundle_pt_BR.properties.i
 data/src/share/classes/sun/text/resources/FormatData_ja_JP.java.i
-data/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_PCM.c.i
+data/src/share/classes/javax/naming/ldap/ControlFactory.java.i
 data/src/share/classes/com/sun/jmx/remote/protocol/iiop/ProxyInputStream.java.i
-data/test/java/nio/channels/DatagramChannel/EmptyBuffer.java.i
 data/src/share/classes/java/beans/Transient.java.i
-data/test/sun/util/resources/Calendar/Bug4527203.java.i
-data/test/sun/security/pkcs11/nss/lib/windows-i586/nss3.dll.i
+data/src/share/classes/sun/rmi/rmic/RemoteClass.java.i
+data/test/javax/management/mxbean/PreRegisterNameTest.java.i
 data/src/share/classes/java/io/FilterReader.java.i
 data/test/java/awt/image/mlib/mlib.security.policy.i
+data/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c.i
 data/src/share/classes/java/security/AlgorithmParameters.java.i
 data/test/sun/security/ec/TestEC.java.i
 data/test/javax/swing/JSlider/4987336/box.gif.i
-data/src/share/native/sun/security/ec/ecl-exp.h.i
+data/test/sun/text/resources/Format/Bug4810032.java.i
 data/src/share/demo/jfc/CodePointIM/README.html.i
-data/test/sun/security/pkcs11/Secmod/AddTrustedCert.java.i
-data/make/tools/GenerateCharacter/CharacterDataLatin1.java.template.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/Gradient.java.i
 data/src/share/classes/java/security/cert/Certificate.java.i
-data/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.properties.i
+data/src/share/classes/sun/util/resources/CurrencyNames_ar_EG.properties.i
+data/src/share/classes/com/sun/tools/hat/internal/model/JavaChar.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java.i
-data/src/share/classes/com/sun/media/sound/JavaSoundAudioClip.java.i
+data/test/java/nio/channels/AsynchronousChannelGroup/PrivilegedThreadFactory.java.i
 data/test/javax/swing/JColorChooser/Test4759306.java.i
-data/test/sun/net/www/http/ChunkedInputStream/test.txt.d
 data/test/sun/java2d/cmm/ColorConvertOp/MTSafetyTest.java.i
-data/src/share/classes/sun/text/resources/FormatData_no_NO_NY.java.i
+data/src/share/classes/sun/security/smartcardio/PCSC.java.i
+data/test/sun/security/util/DerValue/EmptyValue.java.i
 data/test/sun/security/provider/PolicyFile/Comparator.Combined.Policy.i
 data/src/share/classes/java/lang/NoSuchMethodError.java.i
-data/test/java/io/Serializable/packageAccess/Test.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/SignatureDSA.java.i
 data/src/share/demo/applets/BarChart/BarChart.java.i
 data/src/share/bin/manifest_info.h.i
-data/test/java/io/FileInputStream/OpsAfterClose.java.i
+data/src/share/classes/sun/management/snmp/util/SnmpCachedData.java.i
+data/src/share/classes/sun/security/ssl/ByteBufferInputStream.java.i
 data/test/sun/security/mscapi/RSAEncryptDecrypt.java.i
 data/test/javax/management/namespace/NullDomainObjectNameTest.java.i
 data/test/java/util/prefs/ExportNode.java.i
 data/src/share/classes/java/awt/event/ContainerListener.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/PKIXExtendedTM.java.i
+data/src/share/classes/java/awt/image/renderable/RenderableImage.java.i
 data/src/solaris/classes/sun/awt/X11/XCanvasPeer.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java.i
-data/src/share/classes/sun/print/SunAlternateMedia.java.i
 data/test/com/sun/jdi/DataModelTest.java.i
-data/test/javax/management/mxbean/TypeNameTest.java.i
-data/test/java/util/concurrent/ExecutorCompletionService/ExecutorCompletionServiceLoops.java.i
+data/src/share/classes/sun/nio/cs/ext/MS932DB.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/ProxyTunnelServer.java.i
-data/test/java/rmi/reliability/benchmark/bench/Benchmark.java.i
+data/src/share/classes/com/sun/crypto/provider/FeedbackCipher.java.i
 data/test/java/net/InetAddress/B6246242.java.i
-data/src/share/classes/sun/rmi/rmic/RMIConstants.java.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/FloatArrayCalls.java.i
 data/src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp.i
-data/test/javax/swing/ToolTipManager/Test6657026.java.i
-data/src/share/native/sun/management/MemoryManagerImpl.c.i
+data/src/share/classes/javax/sound/sampled/BooleanControl.java.i
 data/test/java/rmi/transport/acceptLoop/CloseServerSocketOnTermination.java.i
 data/src/share/classes/sun/security/internal/spec/TlsKeyMaterialParameterSpec.java.i
 data/src/solaris/doc/sun/man/man1/servertool.1.i
@@ -2218,21 +2165,22 @@ data/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java.i
 data/src/share/classes/javax/swing/plaf/metal/icons/ocean/hardDrive.gif.i
 data/test/java/beans/Introspector/Test4619792.java.i
 data/src/share/classes/sun/management/LockDataConverter.java.i
-data/src/share/classes/java/util/jar/package.html.i
+data/test/java/net/InetAddress/IsHostReachableBug.java.i
+data/src/solaris/classes/sun/awt/X11/XStateProtocol.java.i
 data/test/javax/sound/midi/Gervill/ModelSource/NewModelSourceModelIdentifierBooleanBoolean.java.i
-data/test/javax/management/loading/LibraryLoader/UseNativeLib1.html.i
+data/src/solaris/classes/sun/java2d/xr/GrowableEltArray.java.i
 data/test/javax/management/remote/mandatory/subjectDelegation/policy12.i
-data/src/share/classes/java/awt/event/InputEvent.java.i
+data/src/share/native/java/util/zip/zlib-1.1.3/zcrc32.c.i
 data/make/tools/swing-beans/beaninfo/images/JTextPaneColor16.gif.i
+data/test/com/sun/jdi/ClassLoaderClassesTest.java.i
 data/test/tools/launcher/lib/sparc/lib64/liblibrary.so.i
-data/test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.sh.i
+data/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneDivider.java.i
 data/src/share/classes/java/util/ListResourceBundle.java.i
 data/src/share/classes/javax/naming/spi/ObjectFactoryBuilder.java.i
 data/src/share/classes/java/awt/ImageCapabilities.java.i
 data/test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/NextFramePositionCalculator.java.i
 data/src/share/classes/javax/swing/plaf/ScrollPaneUI.java.i
-data/src/share/classes/sun/java2d/opengl/OGLGraphicsConfig.java.i
-data/test/java/util/jar/JarFile/TurkCert.java.i
+data/src/share/classes/javax/management/relation/RelationType.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiSeparatorUI.java.i
 data/src/share/transport/shmem/shmemBase.c.i
 data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ko.properties.i
@@ -2243,26 +2191,29 @@ data/src/share/classes/sun/text/resources/FormatData_tr_TR.java.i
 data/make/tools/CharsetMapping/MS950.map.i
 data/src/solaris/classes/sun/awt/X11/XlibUtil.java.i
 data/src/share/classes/java/lang/CharacterName.java.i
-data/test/java/beans/PropertyEditor/Test4968709.java.i
+data/make/sun/cmm/lcms/mapfile-vers.i
+data/test/sun/security/validator/certreplace.sh.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsDesktopManager.java.i
 data/src/share/classes/com/sun/tracing/Probe.java.i
-data/src/share/classes/java/net/JarURLConnection.java.i
+data/make/launchers/Makefile.launcher.i
 data/src/share/classes/sun/jvmstat/monitor/AbstractMonitor.java.i
 data/src/share/classes/com/sun/crypto/provider/DHPublicKey.java.i
 data/src/share/classes/java/net/ContentHandlerFactory.java.i
+data/test/java/util/concurrent/BlockingQueue/Interrupt.java.i
 data/src/share/classes/javax/management/relation/InvalidRelationServiceException.java.i
 data/src/share/demo/applets/Clock/Clock.java.i
 data/src/share/classes/java/awt/image/LookupOp.java.i
-data/src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java.i
+data/make/com/sun/org/Makefile.i
 data/src/share/classes/java/awt/Color.java.i
-data/make/tools/swing-beans/beaninfo/images/JButtonMono32.gif.i
+data/test/java/nio/channels/AsynchronousChannelGroup/BadProperties.java.i
+data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java.i
 data/src/share/demo/applets/MoleculeViewer/example3.html.i
 data/test/java/net/CookieHandler/B6277794.java.i
 data/test/javax/swing/border/Test4856008.java.i
 data/test/java/net/MulticastSocket/Reuse.java.i
 data/src/share/classes/sun/io/CharToByteCp855.java.i
 data/test/javax/sound/midi/Gervill/ModelDestination/NewModelDestination.java.i
-data/src/share/classes/javax/swing/DebugGraphics.java.i
+data/src/share/classes/javax/print/attribute/standard/MediaSize.java.i
 data/src/share/classes/javax/swing/colorchooser/DefaultHSBChooserPanel.java.i
 data/make/tools/CharsetMapping/IBM939.map.i
 data/src/share/classes/sunw/util/EventObject.java.i
@@ -2271,70 +2222,63 @@ data/src/share/classes/javax/sql/rowset/RowSetProvider.java.i
 data/test/java/util/concurrent/locks/ReentrantLock/CancelledLockLoops.java.i
 data/src/share/classes/java/nio/file/NoSuchFileException.java.i
 data/src/share/classes/sun/java2d/opengl/OGLMaskFill.java.i
-data/src/share/classes/javax/swing/ListCellRenderer.java.i
+data/make/jdk_generic_profile.sh.i
+data/src/share/classes/javax/print/ServiceUI.java.i
 data/src/share/classes/java/nio/file/StandardOpenOption.java.i
-data/make/java/main/java/Makefile.i
+data/test/com/sun/security/sasl/gsskerb/gsseg_jaas.conf.i
 data/src/share/classes/com/sun/media/sound/DLSSampleLoop.java.i
 data/src/share/native/java/lang/fdlibm/src/e_log10.c.i
 data/src/share/classes/javax/management/ServiceNotFoundException.java.i
-data/test/javax/sound/midi/Gervill/SoftReceiver/Close.java.i
-data/src/solaris/classes/sun/java2d/jules/JulesShapePipe.java.i
+data/test/java/lang/ThreadGroup/Suspend.java.i
 data/test/java/util/Formatter/BasicInt.java.i
-data/test/sun/tools/jps/jps-v_1.sh.i
-data/src/share/classes/sun/tools/jar/JarVerifierStream.java.i
-data/src/solaris/classes/sun/awt/X11/XMenuPeer.java.i
+data/src/windows/back/path_md.h.i
 data/make/sun/motif12/reorder-sparc.i
-data/test/java/util/PluggableLocale/NumberFormatProviderTest.sh.i
 data/src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludesImpl.java.i
-data/test/java/util/zip/ZipFile/Available.java.i
 data/src/share/demo/java2d/J2DBench/src/j2dbench/Modifier.java.i
-data/src/share/native/java/lang/fdlibm/src/e_sinh.c.i
-data/src/share/classes/sun/security/krb5/internal/crypto/ArcFourHmac.java.i
+data/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/CanCreateStubs.java.i
 data/test/javax/swing/JMenuItem/6883341/bug6883341.java.i
+data/src/share/classes/sun/io/ByteToCharCp1258.java.i
 data/src/share/classes/sun/tools/jconsole/inspector/XTreeRenderer.java.i
 data/make/tools/swing-beans/beaninfo/images/JSliderColor16.gif.i
 data/src/solaris/classes/java/lang/Terminator.java.i
 data/test/sun/net/www/protocol/http/6550798/test.java.i
-data/src/share/classes/sun/security/x509/X500Name.java.i
+data/test/java/lang/StrictMath/CubeRootTests.java.i
 data/src/share/native/sun/java2d/cmm/lcms/lcms.h.i
 data/src/share/native/sun/misc/NativeSignalHandler.c.i
 data/test/java/beans/XMLEncoder/javax_swing_border_CompoundBorder.java.i
 data/src/solaris/native/sun/awt/awt_Component.c.i
-data/test/javax/sound/midi/Gervill/ModelPerformer/SetName.java.i
+data/test/sun/nio/cs/FindDecoderBugs.java.i
 data/src/share/classes/sun/io/ByteToCharCp1097.java.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/MultiSocketFactory.java.i
 data/src/share/classes/sun/print/PeekMetrics.java.i
 data/src/share/classes/com/sun/security/sasl/CramMD5Base.java.i
 data/src/share/classes/sun/security/ssl/krb5/KerberosPreMasterSecret.java.i
-data/src/share/classes/sun/tools/jstat/OptionOutputFormatter.java.i
+data/test/javax/management/ObjectName/NullEmptyKeyValueTest.java.i
 data/src/share/classes/javax/imageio/metadata/IIOInvalidTreeException.java.i
 data/src/share/classes/com/sun/jndi/ldap/NameClassPairWithControls.java.i
 data/src/share/classes/sun/io/ByteToCharTIS620.java.i
-data/src/share/classes/sun/net/httpserver/ServerImpl.java.i
-data/test/javax/sound/midi/Gervill/SF2SoundbankReader/ding.sf2.i
-data/test/java/nio/channels/DatagramChannel/IsConnected.java.i
+data/src/share/classes/java/nio/Buffer.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibOid.java.i
 data/src/share/native/java/util/zip/zlib-1.2.3/trees.c.i
 data/test/java/rmi/activation/ActivateFailedException/activateFails/ActivateMe.java.i
+data/src/share/classes/sun/font/TextLabelFactory.java.i
 data/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java.i
-data/src/share/classes/javax/management/NumericValueExp.java.i
-data/test/java/util/ResourceBundle/Control/StressOut_ja_JP.properties.i
+data/test/java/rmi/activation/Activatable/restartService/RestartService.java.i
 data/test/java/nio/channels/spi/AsynchronousChannelProvider/META-INF/services/java.nio.channels.spi.AsynchronousChannelProvider.i
-data/test/java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java.i
-data/test/javax/management/remote/mandatory/notif/NotificationBufferTest.java.i
-data/test/java/security/cert/pkix/policyChanges/ca.cer.i
-data/test/java/nio/charset/spi/Test.java.i
+data/src/share/classes/javax/management/relation/RelationNotification.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/ObjectInputStreamWithLoader.java.i
 data/make/mkdemo/jfc/SwingSet2/Makefile.i
 data/test/sun/security/tools/keytool/p11-nss.txt.i
 data/src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java.i
-data/src/solaris/native/sun/awt/awt_ScrollPane.c.i
+data/src/share/classes/javax/print/attribute/standard/DateTimeAtCreation.java.i
+data/src/share/classes/java/awt/color/ICC_ColorSpace.java.i
 data/src/share/classes/java/nio/file/attribute/Attributes.java.i
 data/src/share/classes/sun/management/snmp/util/SnmpTableCache.java.i
 data/src/share/classes/javax/naming/spi/DirStateFactory.java.i
-data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriterSpi.java.i
-data/test/java/security/Security/ClassLoaderDeadlock/CreateSerialized.java.i
+data/src/share/classes/javax/net/ssl/KeyManager.java.i
+data/src/linux/doc/man/javaws.1.i
+data/src/share/classes/javax/print/attribute/standard/ReferenceUriSchemesSupported.java.i
 data/src/share/classes/sun/io/ByteToCharCp930.java.i
 data/src/share/classes/sun/misc/FpUtils.java.i
 data/src/share/classes/com/sun/media/sound/services/windows-ia64/javax.sound.sampled.spi.MixerProvider.i
@@ -2343,135 +2287,130 @@ data/test/java/beans/XMLEncoder/EnumPublic.java.i
 data/src/share/classes/java/awt/GraphicsConfigTemplate.java.i
 data/test/sun/nio/cs/FindCanEncodeBugs.java.i
 data/test/sun/security/pkcs11/Secmod/nsscrypto.cfg.i
-data/test/java/util/TreeMap/cr5045147.java.i
+data/test/javax/swing/Security/6657138/ComponentTest.java.i
 data/test/com/sun/crypto/provider/KeyGenerator/Test4628062.java.i
-data/test/sun/rmi/rmic/extraCompilation/run.sh.i
-data/test/sun/security/ec/pkcs12/sect193r1server-rsa1024ca.p12.i
-data/src/solaris/native/sun/nio/ch/Net.c.i
+data/test/java/security/Security/ClassLoaderDeadlock/Deadlock2.java.i
 data/src/share/classes/java/dyn/CallSite.java.i
 data/src/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/PGPData.java.i
 data/src/share/classes/sun/text/resources/FormatData_sv_SE.java.i
 data/src/share/classes/javax/swing/plaf/nimbus/TableScrollPaneCorner.java.i
-data/test/java/util/PluggableLocale/providersrc/CollatorProviderImpl.java.i
 data/make/tools/src/build/tools/jdwpgen/FieldTypeNode.java.i
 data/src/share/classes/com/sun/jmx/snmp/daemon/SnmpAdaptorServerMBean.java.i
-data/test/java/awt/regtesthelpers/Sysout.java.i
-data/test/java/beans/Introspector/Test6311051.java.i
+data/test/java/dyn/ClassValueTest.java.i
 data/make/javax/others/Makefile.i
 data/src/share/classes/com/sun/script/javascript/META-INF/services/javax.script.ScriptEngineFactory.i
 data/make/modules/image.boot.ls.i
-data/test/sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html.i
 data/test/javax/management/remote/mandatory/connection/FailedConnectionTest.java.i
 data/src/share/classes/sun/security/util/ResourcesMgr.java.i
-data/test/java/lang/Class/getEnclosingClass/EnclosingClassTest.java.i
+data/test/sun/security/tools/jarsigner/concise_jarsigner.sh.i
 data/test/java/beans/PropertyEditor/TestShortClassNull.java.i
-data/src/solaris/native/sun/security/smartcardio/MUSCLE/COPYING.i
 data/src/share/classes/javax/naming/directory/InvalidAttributesException.java.i
-data/src/share/classes/javax/swing/plaf/metal/icons/Warn.gif.i
+data/test/java/lang/ClassLoader/findSystemClass/Loadee.java.i
 data/make/sun/jconsole/FILES.gmk.i
 data/test/java/nio/file/Files/META-INF/services/java.nio.file.spi.FileTypeDetector.i
 data/src/share/classes/sun/java2d/opengl/OGLBlitLoops.java.i
 data/src/share/classes/java/beans/PropertyVetoException.java.i
-data/test/java/io/LineNumberReader/SkipInput.txt.i
 data/src/share/classes/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java.i
 data/src/solaris/doc/sun/man/man1/ja/rmid.1.i
 data/src/share/classes/sun/applet/AppletViewerPanel.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmClassLoadingImpl.java.i
 data/src/share/classes/java/awt/SentEvent.java.i
+data/src/share/classes/com/sun/net/httpserver/spi/package-info.java.i
 data/src/share/native/sun/awt/image/cvutils/img_nodither.h.i
 data/test/sun/security/pkcs11/KeyStore/BasicData/pk2.cert.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/Klass.java.i
 data/test/sun/nio/cs/OLD/DoubleByteEncoder.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ComTrustManagerFactoryImpl.java.i
 data/src/share/classes/java/awt/AWTException.java.i
 data/test/java/lang/Class/getMethods/NonPublicStaticInitializer.java.i
-data/src/solaris/back/util_md.h.i
-data/test/java/nio/Buffer/BasicFloat.java.i
+data/src/share/classes/java/security/cert/CertStoreParameters.java.i
 data/src/share/classes/sun/print/resources/orientPortrait.png.i
-data/src/share/classes/sun/management/snmp/util/SnmpTableHandler.java.i
-data/test/com/sun/tools/attach/BasicTests.java.i
+data/make/tools/reorder/tools/mcount.c.i
+data/src/solaris/native/sun/awt/cursor.c.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmOSMeta.java.i
+data/test/sun/rmi/rmic/oldjavacRemoved/Foo.java.i
 data/src/share/classes/com/sun/jmx/interceptor/SingleMBeanForwarder.java.i
 data/src/share/classes/sun/print/SunPrinterJobService.java.i
 data/src/share/sample/nio/chatserver/ClientReader.java.i
 data/src/share/back/error_messages.c.i
-data/src/share/classes/javax/swing/DefaultListModel.java.i
-data/test/java/util/ResourceBundle/Bug6190861Data_en_US.properties.i
+data/make/modules/jdk.boot.ls.i
+data/src/share/classes/javax/swing/plaf/basic/BasicDesktopPaneUI.java.i
+data/src/share/classes/com/sun/nio/sctp/AssociationChangeNotification.java.i
+data/src/share/demo/scripting/jconsole-plugin/build.xml.i
+data/src/share/classes/sun/security/ec/ECDSASignature.java.i
 data/src/share/classes/javax/xml/crypto/dom/DOMURIReference.java.i
 data/src/share/classes/com/sun/pept/presentation/Stub.java.i
 data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/Arrays.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/icons/UpFolder.gif.i
 data/src/share/classes/java/nio/file/ClosedDirectoryStreamException.java.i
 data/make/tools/reorder/tests/Sleep.java.i
-data/src/share/demo/management/VerboseGC/README.txt.i
+data/src/share/classes/com/sun/jdi/request/MonitorWaitRequest.java.i
 data/make/tools/CharsetMapping/IBM424.nr.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/HasUIStyle.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/AmbiguousMethodException.java.i
 data/src/share/classes/java/util/prefs/BackingStoreException.java.i
-data/src/share/demo/nbproject/scripting/jconsole-plugin/nbproject/jdk.xml.i
 data/test/java/util/Timer/NameConstructors.java.i
 data/src/share/classes/com/sun/inputmethods/internal/indicim/java.awt.im.spi.InputMethodDescriptor.i
 data/test/sun/security/tools/policytool/UsePolicy.java.i
 data/src/share/native/sun/font/layout/ArabicLayoutEngine.h.i
+data/src/share/classes/sun/misc/resources/Messages_es.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsToolBarUI.java.i
-data/src/windows/classes/sun/nio/ch/PipeImpl.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/Handler.java.i
-data/make/tools/src/build/tools/javazic/Gen.java.i
+data/test/sun/nio/cs/OLD/EUC_KR_OLD.java.i
+data/src/share/classes/sun/tools/jconsole/MemoryTab.java.i
+data/make/tools/swing-beans/beaninfo/images/JMenuMono16.gif.i
 data/src/share/classes/com/sun/tools/jdi/MonitorInfoImpl.java.i
 data/test/java/awt/dnd/ImageDecoratedDnD/DnDSource.java.i
 data/src/windows/native/sun/windows/awt_MMStub.cpp.i
-data/test/java/rmi/testlibrary/TestFailedException.java.i
+data/test/java/io/PrintStream/FailingConstructors.java.i
 data/src/share/classes/com/sun/tools/example/debug/tty/TTYResources.java.i
 data/src/share/classes/sun/text/resources/FormatData_es_EC.java.i
 data/test/java/beans/PropertyEditor/TestFontClassJava.java.i
-data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmClassesVerboseLevel.java.i
+data/test/sun/java2d/pipe/MutableColorTest/MutableColorTest.java.i
 data/src/share/sample/scripting/scriptpad/src/scripts/mail.js.i
 data/src/share/classes/sun/text/resources/FormatData_be_BY.java.i
 data/src/share/classes/org/relaxng/datatype/helpers/DatatypeLibraryLoader.java.i
-data/test/java/lang/Character/PropertyValueAliases.txt.i
+data/src/share/classes/java/beans/DesignMode.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/package.html.i
-data/test/sun/tools/jps/jps-help.sh.i
 data/src/share/classes/javax/sound/sampled/TargetDataLine.java.i
 data/src/share/classes/sun/security/krb5/internal/EncTicketPart.java.i
-data/test/java/beans/PropertyEditor/TestBooleanTypeNull.java.i
-data/test/sun/security/pkcs11/fips/ImportKeyStore.java.i
+data/src/share/classes/javax/swing/doc-files/groupLayout.sequential.vertical.gif.i
 data/test/java/util/ResourceBundle/Bug4257318.java.i
-data/src/share/classes/java/io/StringReader.java.i
 data/src/share/classes/javax/sql/rowset/serial/SerialArray.java.i
-data/src/share/classes/sun/text/resources/FormatData_uk.java.i
+data/src/share/classes/javax/swing/plaf/nimbus/DropShadowEffect.java.i
 data/src/share/instrument/EncodingSupport.h.i
 data/src/share/classes/org/openjdk/jigsaw/JigsawVersion.java.i
 data/test/java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form.i
 data/src/share/classes/com/sun/java/util/jar/pack/Histogram.java.i
-data/test/javax/crypto/NullCipher/TestWithoutInit.java.i
 data/test/java/io/Serializable/evolution/AddedField/WriteAddedField.java.i
 data/test/sun/java2d/cmm/ColorConvertOp/ColCvtAlpha.java.i
-data/test/javax/management/namespace/ExportNamespaceTest.java.i
+data/test/javax/swing/plaf/nimbus/Test7048204.java.i
 data/src/share/classes/com/sun/jndi/ldap/LdapReferralContext.java.i
-data/src/solaris/native/sun/nio/ch/SctpNet.c.i
 data/src/windows/native/sun/java2d/windows/Win32SurfaceData.cpp.i
 data/test/java/rmi/activation/Activatable/checkRegisterInLog/security.policy.i
 data/src/share/back/ArrayTypeImpl.h.i
-data/src/share/classes/sun/awt/image/ImageFormatException.java.i
+data/src/share/classes/sun/io/ByteToCharCp1143.java.i
+data/src/share/native/sun/java2d/loops/ByteGray.h.i
 data/make/tools/CharsetMapping/IBM852.map.i
 data/src/share/classes/java/io/Flushable.java.i
 data/test/com/sun/jdi/sde/HelloWorld.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java.i
 data/src/share/classes/javax/management/remote/NotificationResult.java.i
-data/src/share/sample/jmx/jmx-scandir/src/etc/access.properties.i
+data/test/sun/tools/jps/jps-vm_1.sh.i
 data/src/share/classes/com/sun/jmx/mbeanserver/MBeanInjector.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_zh_HK.java.i
 data/src/share/classes/java/lang/Appendable.java.i
 data/src/share/classes/javax/management/ListenerNotFoundException.java.i
-data/test/javax/sound/midi/Gervill/SoftReceiver/Send_Omni.java.i
 data/src/share/demo/jvmti/java_crw_demo/java_crw_demo.c.i
-data/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java.i
-data/test/java/util/Collection/HotPotatoes.java.i
 data/src/share/classes/sun/util/resources/CalendarData_fr_CA.properties.i
 data/src/share/demo/jvmti/waiters/Thread.hpp.i
 data/src/share/native/sun/font/layout/Lookups.h.i
+data/src/share/classes/com/sun/jndi/url/rmi/rmiURLContextFactory.java.i
 data/make/netbeans/common/architectures/arch-sparc.properties.i
-data/src/share/classes/sun/security/util/ByteArrayTagOrder.java.i
-data/test/com/sun/jdi/MethodExitReturnValuesTest.java.i
+data/src/solaris/native/sun/awt/awt_InputMethod.c.i
+data/src/solaris/classes/sun/awt/X11/XWINProtocol.java.i
+data/src/share/classes/sun/nio/fs/Globs.java.i
+data/test/javax/security/auth/kerberos/ServicePermissionTest.java.i
 data/test/java/nio/charset/coders/CheckSJISMappingProp.sh.i
 data/make/mkdemo/management/VerboseGC/Makefile.i
 data/make/netbeans/common/demo-view.ent.i
@@ -2483,82 +2422,74 @@ data/test/java/lang/module/ModuleAnnotationTest.java.i
 data/make/sun/javazic/tzdata_jdk/jdk11_full_backward.i
 data/src/share/classes/java/awt/geom/Path2D.java.i
 data/src/share/classes/com/sun/crypto/provider/DESedeParameters.java.i
+data/src/share/classes/com/sun/media/sound/ModelStandardDirector.java.i
 data/src/solaris/classes/com/sun/security/auth/module/README.i
 data/src/share/classes/sun/print/ServiceNotifier.java.i
 data/test/javax/swing/JLayer/SerializationTest/SerializationTest.java.i
 data/make/sun/jpeg/reorder-sparcv9.i
 data/test/com/sun/net/httpserver/bugs/B6526158.java.i
-data/src/share/classes/sun/text/resources/FormatData_et_EE.java.i
 data/src/solaris/native/java/net/NetworkInterface.c.i
 data/src/share/classes/sun/rmi/transport/DGCClient.java.i
 data/src/share/classes/javax/swing/text/SimpleAttributeSet.java.i
 data/src/share/back/transport.c.i
 data/src/share/classes/javax/swing/text/WrappedPlainView.java.i
-data/test/java/util/ResourceBundle/Test4314141A___EURO.properties.i
+data/test/java/util/concurrent/Phaser/PhaseOverflow.java.i
 data/src/windows/classes/sun/font/NativeStrike.java.i
-data/test/java/util/PluggableLocale/providersrc/LocaleNames_ja.properties.i
 data/src/share/classes/javax/naming/AuthenticationException.java.i
 data/src/share/classes/javax/crypto/JarVerifier.java.i
 data/test/demo/jvmti/mtrace/TraceJFrame.java.i
 data/src/share/sample/scripting/scriptpad/src/scripts/memory.sh.i
-data/test/java/rmi/dgc/dgcAckFailure/DGCAckFailure_Stub.java.i
 data/make/tools/src/build/tools/jdwpgen/ReplyNode.java.i
-data/test/java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java.i
+data/test/java/net/Inet6Address/serialize/serial-bge0.ser.i
 data/test/javax/sound/midi/Gervill/SoftReceiver/GetMidiDevice.java.i
 data/make/tools/src/build/tools/hasher/Hasher.java.i
 data/src/share/classes/com/sun/net/ssl/internal/ssl/Provider.java.i
+data/src/share/classes/javax/management/openmbean/InvalidKeyException.java.i
 data/test/java/rmi/server/UnicastRemoteObject/changeHostName/ChangeHostName.java.i
 data/src/share/classes/sun/awt/im/InputMethodWindow.java.i
 data/src/share/classes/javax/security/auth/login/package.html.i
-data/test/java/io/Serializable/getSuidClinitError/GetSuidClinitError.java.i
-data/test/java/lang/Class/IsEnum.java.i
+data/test/sun/rmi/rmic/newrmic/equivalence/Callback.java.i
 data/src/share/classes/com/sun/crypto/provider/ISO10126Padding.java.i
-data/test/java/lang/Runtime/exec/Space.java.i
-data/src/share/classes/javax/sql/rowset/serial/SerialRef.java.i
+data/src/share/classes/java/security/cert/X509CertSelector.java.i
+data/test/java/awt/Toolkit/Headless/AWTEventListener/AWTListener.java.i
+data/test/java/lang/ClassLoader/Assert.sh.i
 data/test/sun/security/krb5/MicroTime.java.i
 data/src/share/classes/sun/net/www/content/image/gif.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/RetryHttps.java.i
-data/src/share/classes/javax/management/BadAttributeValueExpException.java.i
+data/test/java/beans/XMLEncoder/java_util_Collections_CheckedSortedSet.java.i
 data/make/mkdemo/applets/Fractal/Makefile.i
 data/src/share/classes/java/lang/reflect/Field.java.i
 data/src/share/classes/java/security/spec/InvalidParameterSpecException.java.i
-data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain10.txt.i
-data/test/java/util/ServiceLoader/Basic.java.i
+data/test/javax/sound/midi/Gervill/SoftChannel/NoteOverFlowTest2.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/XMLX509SubjectName.java.i
-data/src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp.i
-data/src/share/native/sun/awt/image/jpeg/jmemsys.h.i
+data/make/tools/src/build/tools/charsetmapping/Utils.java.i
 data/test/java/rmi/activation/Activatable/restartService/ActivateMe.java.i
 data/src/share/classes/java/rmi/ServerException.java.i
-data/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/rmid.security.policy.i
 data/src/windows/native/sun/java2d/d3d/D3DMaskCache.cpp.i
-data/test/com/sun/jdi/JdbMissStep.sh.i
 data/src/share/classes/sun/java2d/pipe/AlphaColorPipe.java.i
+data/src/share/classes/sun/text/resources/CollationData_is.java.i
 data/src/share/classes/sun/nio/cs/UTF_8.java.i
-data/test/java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.java.i
+data/test/java/lang/Runtime/exec/SetCwd.java.i
 data/src/share/classes/java/util/IdentityHashMap.java.i
-data/test/sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java.i
 data/src/share/classes/sun/security/pkcs11/SessionManager.java.i
 data/src/share/native/sun/tracing/dtrace/jvm_symbols.h.i
 data/src/windows/native/sun/nio/ch/DatagramDispatcher.c.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetLatency.java.i
-data/test/java/io/BufferedInputStream/CountUpdate.java.i
+data/src/share/classes/javax/swing/text/NavigationFilter.java.i
+data/test/java/nio/ByteOrder/NativeOrder.java.i
 data/src/share/classes/sun/tools/tree/AndExpression.java.i
-data/test/java/security/KeyStore/KeyStoreBuilder.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/ContextListener.java.i
 data/make/tools/CharsetMapping/IBM948.c2b.i
 data/src/share/classes/javax/swing/text/GlyphPainter1.java.i
 data/test/java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java.i
-data/test/java/net/URL/HandlerLoop.java.i
 data/test/javax/script/JavaScriptScopeTest.java.i
 data/make/com/sun/security/auth/module/FILES_c_windows.gmk.i
 data/test/java/rmi/activation/Activatable/restartCrashedService/rmid.security.policy.i
 data/test/sun/security/pkcs11/SampleTest.java.i
-data/test/javax/management/Introspector/ParameterNameTest.java.i
 data/src/share/classes/sun/security/x509/OtherName.java.i
 data/make/java/hpi/native/mapfile-vers.i
 data/test/java/net/URLConnection/6212146/Test.java.i
 data/test/java/beans/XMLEncoder/java_lang_Class.java.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalMonitoredVm.java.i
+data/test/javax/management/Introspector/AnnotationSecurityTest.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalComboBoxUI.java.i
 data/src/share/classes/sun/jvmstat/monitor/event/HostListener.java.i
 data/test/sun/java2d/cmm/ColorConvertOp/SRGB.png.i
@@ -2566,17 +2497,16 @@ data/src/share/classes/java/lang/management/LockInfo.java.i
 data/src/share/classes/com/sun/tools/jdi/EventRequestManagerImpl.java.i
 data/test/java/io/Serializable/clearHandleTable/ClearHandleTable.java.i
 data/test/javax/security/auth/PrivateCredentialPermission/CanonError.java.i
-data/src/share/back/stream.c.i
-data/src/share/classes/com/sun/tools/example/debug/gui/ClassTreeTool.java.i
+data/src/share/native/sun/security/ec/impl/ecl.h.i
 data/src/share/classes/sun/font/PhysicalFont.java.i
 data/src/share/classes/sun/java2d/pipe/BufferedMaskFill.java.i
 data/src/share/sample/scripting/scriptpad/src/scripts/insertfile.js.i
-data/src/share/classes/javax/swing/plaf/basic/BasicDesktopIconUI.java.i
+data/test/java/lang/Runtime/exec/Duped.java.i
 data/src/share/demo/applets/SortDemo/SortAlgorithm.java.i
 data/test/java/util/PluggableLocale/providersrc/java.text.spi.DateFormatSymbolsProvider.i
-data/src/solaris/classes/sun/font/NativeGlyphMapper.java.i
+data/src/share/native/sun/awt/image/jpeg/jddctmgr.c.i
 data/src/share/classes/sun/util/resources/LocaleNames_en_PH.properties.i
-data/src/windows/native/sun/jkernel/stdafx.h.i
+data/test/java/awt/Frame/ShownOnPack/ShownOnPack.java.i
 data/make/mkdemo/applets/Makefile.i
 data/src/share/classes/java/util/MissingFormatWidthException.java.i
 data/test/java/nio/Buffer/Basic-X.java.template.i
@@ -2588,18 +2518,19 @@ data/test/java/util/PluggableLocale/providersrc/LocaleNames_ja_JP_osaka.properti
 data/test/com/sun/security/sasl/gsskerb/run-conf-wjaas.csh.i
 data/src/share/classes/sun/security/x509/AuthorityInfoAccessExtension.java.i
 data/src/share/back/util.h.i
-data/src/share/classes/java/applet/package.html.i
+data/src/share/classes/java/lang/IllegalAccessError.java.i
 data/src/windows/classes/sun/nio/fs/WindowsNativeDispatcher.java.i
 data/test/java/nio/file/Files/SBC.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/MultipleArgumentsForOptionException.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsSplitPaneUI.java.i
-data/test/javax/sound/midi/Gervill/AudioFloatInputStream/ReadFloatArrayIntInt.java.i
+data/test/java/util/ResourceBundle/Control/StressOut_ko.properties.i
 data/test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java.i
+data/src/share/classes/com/sun/jmx/snmp/InetAddressAcl.java.i
 data/src/share/classes/javax/xml/crypto/dsig/XMLSignature.java.i
 data/make/mkdemo/applets/SortDemo/Makefile.i
-data/src/windows/native/sun/windows/awt_Frame.h.i
 data/src/share/classes/java/util/jar/JarFile.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM1142.java.i
+data/make/tools/swing-beans/beaninfo/images/JInternalFrameColor32.gif.i
 data/src/linux/doc/man/ja/javah.1.i
 data/src/share/classes/javax/xml/crypto/dsig/package.html.i
 data/src/share/classes/javax/crypto/spec/GCMParameterSpec.java.i
@@ -2608,28 +2539,25 @@ data/src/share/classes/java/util/prefs/Base64.java.i
 data/test/java/io/Serializable/oldTests/ArraysOfArrays.java.i
 data/test/java/net/Socket/LingerTest.java.i
 data/make/java/instrument/mapfile-vers.i
-data/src/solaris/doc/sun/man/man1/jstack.1.i
-data/src/solaris/classes/sun/java2d/opengl/GLXSurfaceData.java.i
+data/test/java/lang/HashCode.java.i
 data/src/share/classes/com/sun/nio/sctp/SctpStandardSocketOption.java.i
 data/src/share/classes/javax/management/package.html.i
 data/src/share/classes/sun/security/krb5/KrbAppMessage.java.i
 data/src/share/classes/java/net/Inet6AddressImpl.java.i
-data/test/java/util/Locale/Bug4184873_yi.i
 data/test/javax/sound/midi/Gervill/SoftLowFrequencyOscillator/TestProcessControlLogic.java.i
 data/src/share/classes/sun/util/calendar/JulianCalendar.java.i
-data/test/com/sun/crypto/provider/TLS/TestPremaster.java.i
 data/src/solaris/classes/sun/nio/ch/SctpPeerAddrChange.java.i
 data/src/share/classes/javax/imageio/event/package.html.i
-data/src/share/classes/sun/nio/cs/ext/MS949.java.i
+data/test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_overdrive.java.i
 data/src/share/classes/java/nio/channels/SelectableChannel.java.i
 data/make/tools/swing-beans/beaninfo/images/JMenuItemColor16.gif.i
-data/src/windows/native/sun/jkernel/kernel_zh.rc.i
+data/test/org/openjdk/jigsaw/resolver.sh.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties.i
-data/src/share/classes/sun/management/snmp/jvminstr/JvmThreadInstanceEntryImpl.java.i
+data/test/sun/tools/jps/jps-help.sh.i
 data/src/share/classes/com/sun/imageio/stream/CloseableDisposerRecord.java.i
-data/src/share/classes/sun/reflect/generics/tree/SimpleClassTypeSignature.java.i
+data/test/java/io/pathNames/win32/SJIS.java.i
 data/test/java/io/Serializable/skippedObjCNFException/Read.java.i
-data/src/solaris/native/sun/awt/awt_Window.h.i
+data/src/share/classes/javax/management/remote/rmi/RMIConnection.java.i
 data/src/solaris/native/sun/awt/awt_p.h.i
 data/src/windows/native/sun/java2d/windows/DDRenderer.cpp.i
 data/src/share/classes/sun/util/logging/resources/logging_zh_CN.properties.i
@@ -2637,37 +2565,35 @@ data/src/windows/native/sun/windows/awt_TextArea.cpp.i
 data/src/share/classes/javax/swing/plaf/metal/package.html.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibTable.java.i
 data/test/java/rmi/registry/classPathCodebase/ClassPathCodebase.java.i
-data/test/javax/management/MBeanServer/AttributeListTypeSafeTest.java.i
-data/test/java/beans/Introspector/Test6277246.java.i
+data/test/org/openjdk/jigsaw/resource.sh.i
 data/src/share/classes/sun/tools/tree/ConvertExpression.java.i
 data/test/sun/net/www/protocol/http/B5017051.java.i
 data/test/java/net/URLConnection/GetContentType.java.i
 data/test/java/rmi/activation/ActivateFailedException/activateFails/ShutdownThread.java.i
 data/test/java/nio/Buffer/CharAt.java.i
 data/make/jpda/transport/socket/Makefile.i
-data/src/share/classes/sun/security/provider/SHA5.java.i
 data/src/share/classes/sun/tools/tree/CastExpression.java.i
+data/src/share/native/common/check_version.c.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_zh_TW.properties.i
 data/src/share/classes/java/security/PrivateKey.java.i
-data/test/java/lang/StackTraceElement/PublicConstructor.java.i
 data/src/share/native/sun/font/layout/CharSubstitutionFilter.h.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpScopedPduPacket.java.i
 data/src/share/classes/javax/swing/GrayFilter.java.i
 data/src/share/classes/com/sun/tracing/dtrace/DependencyClass.java.i
 data/make/tools/compile_properties/Makefile.i
 data/make/tools/src/build/tools/generatenimbus/Generator.java.i
-data/test/java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/v1_0/PerfDataBufferPrologue.java.i
 data/src/linux/doc/man/ja/jhat.1.i
 data/test/java/rmi/server/useCustomRef/UseCustomRef_Skel.java.i
 data/src/share/classes/sun/reflect/UnsafeBooleanFieldAccessorImpl.java.i
 data/src/share/classes/javax/script/ScriptException.java.i
-data/test/java/awt/font/StyledMetrics/BoldSpace.java.i
+data/src/share/classes/java/awt/image/renderable/RenderContext.java.i
 data/make/sun/javazic/tzdata/iso3166.tab.i
-data/src/share/classes/sun/misc/JavaIOAccess.java.i
+data/src/share/classes/sun/io/ByteToCharCp935.java.i
 data/src/solaris/native/java/io/FileInputStream_md.c.i
-data/src/share/classes/com/sun/script/util/ScriptEngineFactoryBase.java.i
+data/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.properties.i
 data/test/com/sun/crypto/provider/Cipher/RC2ArcFour/CipherKAT.java.i
-data/src/share/native/sun/font/fontscalerdefs.h.i
+data/test/java/rmi/server/RMIClassLoader/loadProxyClasses/NonpublicInterface.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java.i
 data/src/share/classes/java/lang/IllegalArgumentException.java.i
 data/src/share/native/sun/awt/image/jpeg/jcparam.c.i
@@ -2676,29 +2602,24 @@ data/test/java/io/Serializable/packageAccess/run.sh.i
 data/src/share/classes/com/sun/media/sound/SoftChannel.java.i
 data/src/share/classes/java/util/zip/ZipError.java.i
 data/test/javax/swing/border/Test4129681.java.i
-data/src/share/classes/java/nio/Heap-X-Buffer.java.i
 data/test/java/net/InetAddress/GetLoopbackAddress.java.i
-data/src/share/classes/sun/util/locale/AsciiUtil.java.i
+data/src/share/classes/com/sun/tools/jdi/ThreadReferenceImpl.java.i
 data/src/solaris/classes/sun/java2d/xr/DirtyRegion.java.i
 data/test/javax/management/monitor/ThreadPoolTest.java.i
 data/src/share/native/sun/security/ec/impl/mp_gf2m-priv.h.i
 data/test/javax/management/loading/mlet2.html.i
 data/test/com/sun/security/sasl/digest/CheckNegotiatedQOPs.java.i
 data/test/java/awt/GraphicsEnvironment/LoadLock/GE_init6.java.i
-data/src/solaris/classes/sun/print/AttributeClass.java.i
 data/src/share/classes/java/text/MergeCollation.java.i
 data/src/share/native/java/lang/fdlibm/src/s_tanh.c.i
-data/src/share/classes/sun/reflect/ClassFileAssembler.java.i
+data/src/share/classes/java/sql/Types.java.i
 data/src/share/native/sun/awt/image/jpeg/jdmerge.c.i
-data/test/tools/launcher/CreatePlatformFile.java.i
-data/src/share/classes/sun/security/krb5/internal/rcache/ReplayCache.java.i
+data/test/com/sun/security/sasl/digest/Integrity.java.i
 data/src/share/classes/sun/invoke/util/VerifyAccess.java.i
-data/test/java/util/PluggableLocale/TimeZoneNameProviderTest.java.i
-data/test/sun/text/resources/Format/Bug4685470.java.i
+data/make/com/sun/jndi/dns/Makefile.i
 data/src/share/classes/sun/net/www/content/audio/x_wav.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java.i
 data/src/share/classes/sun/text/resources/FormatData_es_UY.java.i
-data/test/javax/swing/border/Test6625450.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicMenuUI.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/DesktopProperty.java.i
 data/test/com/sun/security/auth/module/KeyStoreLoginModule/OptionTest.java.i
@@ -2707,41 +2628,35 @@ data/src/share/classes/sun/util/logging/LoggingSupport.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_lv.properties.i
 data/test/sun/security/provider/PolicyFile/Alias.java.i
 data/src/share/classes/javax/security/auth/callback/PasswordCallback.java.i
-data/src/share/classes/sun/nio/ch/ThreadPool.java.i
+data/src/share/classes/sun/security/krb5/internal/crypto/ArcFourHmac.java.i
 data/src/share/classes/java/util/logging/LogRecord.java.i
 data/src/windows/native/sun/windows/awt_Object.cpp.i
 data/src/share/classes/sun/security/provider/certpath/X509CertificatePair.java.i
+data/src/share/classes/javax/swing/text/TabExpander.java.i
 data/src/share/classes/java/lang/management/BufferPoolMXBean.java.i
 data/src/share/classes/javax/xml/crypto/dsig/XMLSignatureFactory.java.i
 data/src/solaris/native/sun/awt/img_util_md.h.i
-data/test/java/util/regex/POSIX_Unicode.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageAffine.h.i
 data/src/solaris/doc/sun/man/man1/ja/jmap.1.i
-data/src/share/demo/jfc/Metalworks/GreenMetalTheme.java.i
-data/test/sun/rmi/server/MarshalOutputStream/marshalForeignStub/MarshalForeignStub.java.i
-data/test/java/io/Serializable/class/SerialA_3.java.i
-data/src/windows/classes/sun/java2d/windows/Win32OffScreenSurfaceData.java.i
+data/test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshalOnStopThread.java.i
+data/test/org/openjdk/jigsaw/cli/signer-prikey.pem.i
+data/src/share/classes/sun/tools/tree/NewInstanceExpression.java.i
 data/src/share/classes/javax/print/attribute/standard/JobKOctetsProcessed.java.i
-data/src/share/classes/javax/naming/CommunicationException.java.i
-data/test/javax/security/auth/PrivateCredentialPermission/Subset.policy.i
+data/test/java/util/List/LockStep.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM865.java.i
 data/src/share/classes/com/sun/jndi/ldap/pool/ConnectionDesc.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_it_IT.properties.i
-data/test/java/nio/channels/Channels/Write.java.i
+data/src/share/classes/com/sun/jndi/ldap/LdapCtx.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java.i
 data/make/tools/GenerateCharacter/CharacterData00.java.template.i
-data/src/share/classes/sun/reflect/FieldAccessorImpl.java.i
+data/src/share/classes/sun/net/www/protocol/http/spnego/NegotiatorImpl.java.i
 data/src/share/classes/java/io/StringWriter.java.i
-data/test/javax/crypto/JceSecurity/MyProvider.java.i
-data/test/com/sun/security/auth/callback/TextCallbackHandler/NPE.java.i
-data/test/java/security/cert/CertPathBuilder/targetConstraints/anchor.cer.i
+data/src/share/classes/sun/management/CompilationImpl.java.i
 data/src/share/classes/javax/management/Impact.java.i
 data/src/share/classes/javax/management/remote/rmi/NoCallStackClassLoader.java.i
 data/src/share/classes/sun/java2d/loops/Blit.java.i
 data/test/java/nio/channels/AsynchronousFileChannel/LotsOfWrites.java.i
 data/make/tools/src/build/tools/fontchecker/FontFileFilter.java.i
-data/test/java/net/InetSocketAddress/CreateUnresolved.java.i
-data/test/java/io/Serializable/6559775/SerialRace.java.i
+data/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageWriter.java.i
 data/src/solaris/classes/sun/security/provider/NativePRNG.java.i
 data/src/share/classes/sun/awt/WindowClosingSupport.java.i
 data/src/solaris/native/sun/awt/multiVis.c.i
@@ -2750,90 +2665,88 @@ data/src/solaris/native/sun/awt/medialib/mlib_v_ImageCopy_blk.s.i
 data/src/share/classes/java/lang/ThreadLocal.java.i
 data/src/share/classes/sun/tools/tree/CatchStatement.java.i
 data/src/share/classes/sun/awt/image/WritableRasterNative.java.i
-data/test/java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java.i
-data/test/javax/crypto/Cipher/TestCipherMode.java.i
+data/src/windows/native/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.c.i
 data/test/java/io/Serializable/oldTests/SerializeWithException.java.i
+data/src/share/classes/sun/tools/jconsole/JConsole.java.i
 data/src/share/classes/sun/text/resources/FormatData_en_MT.java.i
-data/test/java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java.i
 data/src/share/classes/com/sun/jndi/toolkit/url/GenericURLDirContext.java.i
 data/src/share/classes/sun/text/resources/FormatData_es_US.java.i
 data/test/java/security/KeyRep/DES.pre.1.5.key.i
-data/src/share/classes/sun/text/resources/CollationData_iw.java.i
-data/test/java/nio/channels/AsynchronousChannelGroup/Basic.java.i
+data/test/javax/naming/ldap/LdapName/LdapParserTests.java.i
+data/src/share/classes/sun/rmi/transport/DGCImpl.java.i
 data/test/java/beans/VetoableChangeSupport/TestSerialization.java.i
-data/make/tools/swing-beans/beaninfo/images/JDialogColor16.gif.i
-data/src/share/classes/java/awt/image/MemoryImageSource.java.i
+data/src/share/classes/java/nio/file/StandardCopyOption.java.i
+data/src/share/classes/java/util/logging/ConsoleHandler.java.i
 data/src/share/classes/java/net/URLConnection.java.i
 data/test/java/util/zip/ZipFile/ReadZip.java.i
 data/src/share/classes/javax/swing/plaf/metal/icons/Error.gif.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315ExclOmitComments.java.i
 data/src/share/classes/sun/awt/image/PixelConverter.java.i
-data/test/java/lang/StringBuffer/Substring.java.i
 data/make/tools/src/build/tools/jdwpgen/AltNode.java.i
-data/src/share/classes/sun/security/x509/PolicyMappingsExtension.java.i
+data/src/share/classes/javax/accessibility/AccessibleEditableText.java.i
+data/src/share/classes/sun/tools/jconsole/inspector/XMBeanNotifications.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/ExternObjTrees.java.i
-data/test/javax/imageio/CachePremissionsTest/rw.policy.i
-data/test/java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java.i
+data/test/javax/management/monitor/AttributeArbitraryDataTypeTest.java.i
 data/test/java/lang/Class/Cast.java.i
-data/test/sun/security/pkcs11/PKCS11Test.java.i
+data/test/java/nio/Buffer/BasicDouble.java.i
+data/src/share/classes/com/sun/beans/decoder/BooleanElementHandler.java.i
+data/src/share/classes/java/lang/NoSuchFieldException.java.i
 data/test/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java.i
+data/src/share/classes/com/sun/tools/jdi/SocketTransportService.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/OptionParser.java.i
 data/src/share/classes/java/net/PortUnreachableException.java.i
 data/src/share/classes/sun/io/CharToByteCp280.java.i
-data/test/java/beans/PropertyEditor/TestEnumClassNull.java.i
-data/src/share/demo/applets/SortDemo/BubbleSortAlgorithm.java.i
+data/test/java/lang/StringBuffer/Replace.java.i
 data/src/share/classes/com/sun/jndi/dns/DnsContext.java.i
 data/test/javax/naming/ldap/LdapName/TrailingSpaceTest.java.i
 data/src/share/classes/com/sun/media/sound/PortMixer.java.i
 data/src/solaris/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java.i
-data/make/tools/CharsetMapping/IBM871.nr.i
+data/src/share/demo/nbproject/scripting/jconsole-plugin/nbproject/jdk.xml.i
 data/test/java/nio/channels/Selector/Close.java.i
 data/src/share/classes/sun/security/pkcs/ContentInfo.java.i
 data/src/share/classes/java/rmi/activation/ActivateFailedException.java.i
 data/src/share/classes/com/sun/jmx/snmp/defaults/DefaultPaths.java.i
 data/src/share/classes/sun/nio/cs/StreamDecoder.java.i
-data/test/java/io/Serializable/longString/LongString.java.i
 data/src/solaris/doc/sun/man/man1/javah.1.i
-data/src/share/classes/sun/io/ByteToCharCp1123.java.i
-data/test/tools/launcher/lib/i386/lib32/lib32/liblibrary.so.i
+data/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java.i
 data/make/tools/swing-beans/beaninfo/images/JTreeColor16.gif.i
 data/src/share/classes/javax/xml/crypto/URIReference.java.i
 data/test/java/util/EnumSet/Range.java.i
 data/src/solaris/doc/sun/man/man1/ja/orbd.1.i
 data/src/share/classes/java/io/Reader.java.i
-data/test/sun/security/validator/samedn.sh.i
-data/test/sun/security/provider/PolicyFile/getinstance/GetInstance.java.i
-data/src/share/native/sun/security/ec/impl/mp_gf2m.h.i
 data/test/java/rmi/reliability/benchmark/bench/serial/ProxyArrays.java.i
 data/src/solaris/doc/sun/man/man1/ja/idlj.1.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/config.dtd.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt.i
-data/test/java/io/PipedReader/Constructors.java.i
+data/test/java/io/File/ListNull.java.i
 data/test/java/lang/instrument/MakeJAR2.sh.i
-data/test/com/sun/jdi/OnThrowTarget.java.i
+data/test/java/rmi/activation/CommandEnvironment/Retireable.java.i
 data/src/windows/classes/sun/nio/fs/DefaultFileTypeDetector.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibRequestImpl.java.i
-data/src/solaris/classes/sun/awt/X11/Native.java.i
+data/make/com/sun/crypto/provider/Makefile.i
 data/test/java/lang/instrument/PremainClass/ZeroArgPremainAgent.sh.i
 data/src/share/classes/sun/io/ByteToCharEUC_CN.java.i
 data/src/share/classes/sun/text/resources/FormatData_ro_RO.java.i
 data/src/share/classes/com/sun/java/swing/SwingUtilities3.java.i
-data/src/share/classes/javax/naming/TimeLimitExceededException.java.i
+data/src/share/native/java/util/zip/zlib-1.2.3/trees.h.i
 data/src/share/classes/java/security/spec/ECPrivateKeySpec.java.i
 data/make/tools/CharsetMapping/IBM1364.c2b.i
 data/src/share/classes/com/sun/jmx/snmp/internal/SnmpSecurityModel.java.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/Destinations.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_de_DE.properties.i
-data/test/java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval_Stub.java.i
+data/src/share/classes/com/sun/net/ssl/X509KeyManager.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsToggleButtonUI.java.i
 data/src/share/classes/com/sun/media/sound/SoftChannelProxy.java.i
+data/src/share/classes/sun/nio/ch/Interruptible.java.i
 data/src/share/classes/sun/nio/cs/ext/SJIS.java.i
 data/src/share/demo/jfc/Font2DTest/RangeMenu.java.i
-data/test/java/beans/XMLEncoder/java_util_Collections_CheckedMap.java.i
-data/src/share/classes/sun/security/jgss/GSSNameImpl.java.i
+data/test/java/security/SecureRandom/sha1prng-old.bin.i
+data/src/share/classes/com/sun/tools/example/doc/index.html.i
 data/src/share/native/sun/awt/medialib/mlib_ImageAffine_NN.c.i
-data/src/share/classes/javax/sql/package.html.i
+data/src/share/classes/com/sun/jmx/snmp/internal/SnmpModel.java.i
 data/make/tools/CharsetMapping/IBM935.map.i
-data/test/java/nio/file/Files/walkFileTree/grantAll.policy.i
+data/src/windows/native/sun/jkernel/graphics/masthead.bmp.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIDimension.java.i
 data/src/share/classes/sun/io/CharToByteCp850.java.i
 data/src/share/classes/javax/imageio/metadata/doc-files/jpeg_metadata.html.i
 data/src/share/classes/com/sun/tools/hat/internal/model/HackJavaValue.java.i
@@ -2842,57 +2755,58 @@ data/test/java/io/File/EmptyPath.java.i
 data/src/share/classes/java/security/AlgorithmParameterGenerator.java.i
 data/test/java/lang/Class/getEnclosingClass/common/TestMe.java.i
 data/src/solaris/sample/dtrace/hotspot/README.txt.i
-data/test/java/io/BufferedInputStream/Fill.java.i
 data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/EchoService.java.i
 data/test/sun/nio/cs/TestTrailingEscapesISO2022JP.java.i
+data/test/java/net/SocketPermission/Ctor.java.i
 data/src/share/classes/java/awt/SecondaryLoop.java.i
 data/src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java.i
-data/test/sun/security/rsa/TestCACerts.java.i
+data/src/share/classes/java/awt/font/GlyphJustificationInfo.java.i
 data/test/java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html.i
 data/src/share/classes/java/nio/channels/spi/AbstractSelectableChannel.java.i
 data/src/share/classes/javax/naming/ldap/BasicControl.java.i
 data/src/share/classes/sun/tools/tree/NotExpression.java.i
-data/test/java/util/zip/ZipEntry/input.jar.i
+data/test/sun/nio/cs/FindASCIIRangeCodingBugs.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmRTBootClassPathEntryMeta.java.i
 data/src/share/classes/javax/swing/ViewportLayout.java.i
+data/src/share/native/sun/security/ec/impl/ecdecode.c.i
 data/src/linux/doc/man/serialver.1.i
 data/src/windows/native/sun/windows/awt_DesktopProperties.cpp.i
 data/test/java/lang/management/ThreadMXBean/ThreadCounts.java.i
-data/test/javax/management/monitor/AttributeArbitraryDataTypeTest.java.i
-data/test/java/util/Collections/T5078378.java.i
+data/src/share/native/sun/font/layout/LESwaps.h.i
+data/src/share/native/sun/java2d/opengl/OGLMaskFill.c.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmMemoryImpl.java.i
-data/src/share/classes/sun/java2d/pipe/RegionSpanIterator.java.i
+data/test/java/io/Serializable/fieldTypeString/Write.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaObjectRef.java.i
 data/src/share/classes/java/beans/NameGenerator.java.i
 data/src/windows/classes/sun/nio/ch/FileDispatcher.java.i
 data/src/share/classes/javax/management/MBeanServerConnection.java.i
+data/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java.i
 data/src/share/sample/nio/server/N1.java.i
 data/src/solaris/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine.i
 data/src/windows/native/sun/windows/initIDs.cpp.i
 data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/MiscTests.java.i
 data/make/tools/CharsetMapping/ISO_8859_4.map.i
-data/test/sun/util/resources/TimeZone/Bug4858517.java.i
+data/make/tools/src/build/tools/jdwpgen/AbstractTypeListNode.java.i
 data/src/share/classes/sun/misc/SignalHandler.java.i
+data/src/share/classes/sun/io/CharToByteCp858.java.i
 data/test/java/io/Serializable/skipWriteObject/Write.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/rmi/MonitoredHostProvider.java.i
 data/src/share/classes/javax/xml/crypto/dsig/spec/XPathFilterParameterSpec.java.i
 data/src/share/classes/sun/print/PrintJobFlavorException.java.i
 data/src/solaris/native/sun/java2d/x11/XRBackendNative.c.i
-data/src/share/classes/javax/swing/text/html/parser/Element.java.i
+data/test/java/util/Vector/SyncLastIndexOf.java.i
 data/src/share/classes/sun/nio/cs/ext/MacThai.java.i
 data/src/share/classes/java/net/InetAddressImpl.java.i
-data/src/share/classes/sun/rmi/registry/resources/rmiregistry_zh_TW.properties.i
-data/test/java/rmi/activation/Activatable/createPrivateActivable/group.security.policy.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/TransformationException.java.i
 data/make/common/Defs.gmk.i
-data/test/javax/management/mxbean/MiscTest.java.i
-data/test/java/awt/image/ImagingOpsNoExceptionsTest/ImagingOpsNoExceptionsTest.java.i
+data/test/sun/security/x509/X500Name/EmailKeyword.java.i
+data/test/sun/security/pkcs11/fips/certs/ca.cer.i
 data/src/share/classes/sun/tools/tree/BinaryArithmeticExpression.java.i
 data/src/share/classes/com/sun/media/sound/ModelMappedInstrument.java.i
 data/test/com/sun/jdi/RedefineCrossEvent.java.i
 data/test/java/security/UnresolvedPermission/Debug.java.i
 data/src/share/native/sun/font/layout/ScriptAndLanguageTags.h.i
-data/test/java/util/Vector/SyncLastIndexOf.java.i
-data/test/java/util/EnumSet/SmallEnumIteratorRemoveResilience.java.i
+data/test/sun/tools/jstat/timeStamp1.awk.i
 data/test/java/awt/font/TextLayout/VisibleAdvance.java.i
 data/src/share/classes/javax/naming/Reference.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsToolBarSeparatorUI.java.i
@@ -2906,165 +2820,159 @@ data/src/share/classes/sun/util/resources/CurrencyNames_ar_YE.properties.i
 data/src/share/classes/sun/applet/resources/MsgAppletViewer_zh_CN.java.i
 data/src/share/classes/javax/print/attribute/standard/JobImpressionsSupported.java.i
 data/test/com/sun/crypto/provider/TLS/keymatdata.txt.i
-data/test/java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java.i
 data/src/share/classes/com/sun/jdi/connect/spi/ClosedConnectionException.java.i
-data/test/java/security/KeyStore/DefaultEntryType.java.i
 data/src/share/classes/com/sun/tools/jdi/resources/jdi.properties.i
-data/test/javax/print/applet/applet2/Applet2PrintServiceLookup.java.i
+data/src/share/classes/com/sun/jndi/dns/ResourceRecord.java.i
 data/src/share/classes/javax/swing/plaf/metal/icons/ocean/warning.png.i
 data/test/sun/nio/cs/OLD/IBM937_OLD.java.i
-data/test/java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java.i
+data/test/sun/nio/cs/OLD/IBM937_OLD.java.d
 data/test/java/util/EnumSet/ComplementOf.java.i
 data/src/share/classes/sun/text/resources/FormatData_en_SG.java.i
-data/src/share/classes/javax/swing/plaf/metal/icons/ocean/paletteClose.gif.i
+data/src/share/demo/jfc/Metalworks/BigContrastMetalTheme.java.i
 data/test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableList.java.i
 data/src/share/classes/sun/security/validator/PKIXValidator.java.i
 data/src/share/classes/sun/misc/Version-template.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibSubRequest.java.i
-data/src/share/sample/nio/file/DiskUsage.java.i
-data/test/java/nio/file/WatchService/LotsOfEvents.java.i
+data/src/share/classes/sun/tools/tree/PreIncExpression.java.i
 data/make/sun/security/tools/Makefile.i
 data/make/tools/jdwpgen/Makefile.i
 data/src/share/classes/java/nio/channels/SelectionKey.java.i
 data/src/share/classes/java/beans/beancontext/BeanContextServiceProvider.java.i
 data/make/com/sun/inputmethods/indicim/Makefile.i
 data/test/sun/security/ssl/templates/SSLSocketTemplate.java.i
-data/test/java/lang/instrument/RedefineSetUp.sh.i
-data/src/share/classes/javax/management/loading/MLetMBean.java.i
+data/test/javax/crypto/spec/RC2ParameterSpec/RC2AlgorithmParameters.java.i
+data/src/share/classes/com/sun/jndi/ldap/ext/StartTlsResponseImpl.java.i
+data/test/java/io/SequenceInputStream/ConstructorNull.java.i
 data/test/sun/security/pkcs11/KeyStore/ProviderLoader.java.i
 data/src/share/classes/com/sun/crypto/provider/OAEPParameters.java.i
-data/test/tools/pack200/T7007157.java.i
 data/src/solaris/native/sun/awt/awt_dnd_dt.c.i
-data/src/solaris/native/java/io/FileSystem_md.c.i
+data/src/solaris/classes/sun/awt/motif/MFontConfiguration.java.i
+data/src/windows/native/sun/jkernel/kernel_it.rc.i
 data/test/java/beans/PropertyEditor/TestIntegerClass.java.i
-data/test/java/beans/PropertyEditor/TestEnumSubclassValue.java.i
+data/test/sun/util/resources/TimeZone/Bug6317929.java.i
+data/test/java/awt/Robot/CtorTest/CtorTest.java.i
 data/src/share/classes/java/nio/BufferPoolMXBean.java.i
 data/src/share/back/MethodImpl.c.i
-data/test/java/nio/Buffer/genBasic.sh.i
-data/test/java/io/Serializable/wrongReturnTypes/Read.java.i
-data/test/javax/sound/midi/Gervill/AudioFloatInputStream/MarkSupported.java.i
-data/src/share/classes/sun/security/krb5/internal/Authenticator.java.i
+data/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh.i
+data/src/share/classes/java/sql/ClientInfoStatus.java.i
 data/make/tools/swing-beans/beaninfo/images/JRadioButtonMenuItemColor32.gif.i
+data/src/linux/doc/man/appletviewer.1.i
 data/src/share/classes/javax/naming/InvalidNameException.java.i
 data/src/share/native/java/io/io_util.c.i
 data/test/java/lang/Integer/ValueOf.java.i
 data/test/com/sun/jdi/redefineMethod/RedefineSubTarg.java.i
+data/test/java/beans/Statement/Test6224433.java.i
 data/src/share/classes/sun/misc/URLClassPath.java.i
-data/test/sun/tools/jconsole/ResourceCheckTest.java.i
 data/src/share/classes/java/awt/Event.java.i
 data/src/share/classes/javax/management/MBeanRegistration.java.i
-data/test/java/util/concurrent/CopyOnWriteArraySet/RacingCows.java.i
 data/src/share/classes/com/sun/jdi/VMCannotBeModifiedException.java.i
 data/src/share/classes/sun/io/CharToByteCp866.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifFileChooserUI.java.i
 data/test/java/util/concurrent/ConcurrentLinkedQueue/ConcurrentQueueLoops.java.i
-data/src/share/native/com/sun/media/sound/Configure.h.i
-data/src/share/classes/javax/imageio/plugins/jpeg/package.html.i
+data/test/java/io/PushbackInputStream/Skip.java.i
+data/make/sun/security/jgss/wrapper/mapfile-vers.i
 data/test/javax/crypto/spec/RC2ParameterSpec/RC2ParameterSpecEquals.java.i
+data/test/java/security/testlibrary/Providers.java.i
 data/test/sun/security/pkcs11/Provider/ConfigQuotedString-nss.txt.i
 data/src/share/classes/java/awt/KeyboardFocusManager.java.i
-data/src/share/classes/sun/util/resources/TimeZoneNames_de.java.i
+data/test/java/awt/print/PrinterJob/GetMediasTest.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpEngineFactory.java.i
-data/test/java/lang/ClassLoader/defineClass/DefineClassByteBuffer.java.i
+data/src/share/classes/java/io/OutputStreamWriter.java.i
 data/test/sun/net/www/protocol/http/B6369510.java.i
 data/src/share/classes/sun/security/jgss/GSSUtil.java.i
-data/test/sun/security/x509/AVA/DomainComponentEncoding.java.i
-data/test/sun/tools/jstat/jstatOptions1.sh.i
+data/src/share/classes/com/sun/jndi/ldap/BindingWithControls.java.i
+data/src/share/classes/com/sun/tools/hat/internal/model/ReachableObjects.java.i
 data/src/solaris/classes/sun/print/CUPSPrinter.java.i
 data/src/share/demo/applets/MoleculeViewer/example1.html.i
-data/src/share/classes/sun/misc/Queue.java.i
-data/make/tools/src/build/tools/javazic/RuleDay.java.i
-data/test/javax/management/remote/mandatory/socketFactories/RMISocketFactoriesTest.java.i
-data/test/sun/tools/native2ascii/N2A_4636448.i
+data/src/solaris/native/sun/awt/gtk2_interface.c.i
+data/src/share/classes/com/sun/media/sound/ModelByteBufferWavetable.java.i
+data/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java.i
 data/test/java/security/Signature/ByteBuffers.java.i
 data/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java.i
 data/test/com/sun/jdi/FinalLocalsTest.java.i
-data/make/sun/xawt/FILES_c_unix.gmk.i
+data/test/javax/sound/midi/Gervill/ModelByteBuffer/Unload.java.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/CharCalls.java.i
-data/src/share/classes/javax/security/auth/callback/Callback.java.i
+data/test/com/sun/jdi/InstTarg.java.i
 data/src/share/classes/sun/reflect/Label.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/jtreg-config.i
 data/test/java/rmi/server/RemoteServer/setLogPermission/java.policy.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_hu_HU.properties.i
-data/src/share/classes/java/util/Collection.java.i
+data/src/solaris/native/sun/nio/ch/SctpChannelImpl.c.i
 data/make/tools/reorder/tools/MaxTime.java.i
-data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_Ports.c.i
-data/test/java/util/Formatter/Basic-X.java.i
-data/src/share/classes/java/rmi/activation/ActivationGroupID.java.i
+data/test/java/beans/VetoableChangeSupport/Test4092906.java.i
+data/src/share/native/sun/awt/libpng/pngpriv.h.i
+data/test/java/lang/StringBuffer/AppendSB.java.i
+data/src/share/classes/sun/reflect/generics/tree/Tree.java.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpCounter64.java.i
 data/src/share/classes/java/awt/event/MouseAdapter.java.i
 data/src/share/classes/java/security/CodeSigner.java.i
 data/test/java/lang/instrument/PremainClass/InheritAgent0010.java.i
-data/src/share/classes/javax/swing/JFrame.java.i
+data/src/linux/doc/man/ja/xjc.1.i
 data/src/share/classes/sun/tools/tree/DoStatement.java.i
 data/src/share/classes/com/sun/jdi/connect/spi/Connection.java.i
-data/test/javax/print/attribute/ServiceDialogTest.java.i
 data/test/javax/management/remote/mandatory/connection/ReconnectTest.java.i
 data/src/share/classes/sun/tools/tree/CaseStatement.java.i
-data/test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh.i
+data/test/sun/security/pkcs11/fips/keystore.i
 data/make/README.html.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/TemplateWriter.java.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmMemPoolTableMeta.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_NI.properties.i
 data/src/share/classes/sun/security/jgss/SunProvider.java.i
 data/test/java/beans/Introspector/Test4619536.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS16S32Func.c.i
-data/test/sun/security/provider/PolicyFile/Comparator.Comparator.Policy.i
-data/test/java/util/Locale/bug4123285.html.i
 data/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java.i
 data/test/javax/script/CauseExceptionTest.java.i
 data/src/share/classes/com/sun/jdi/request/VMDeathRequest.java.i
 data/src/share/classes/com/sun/security/auth/module/SolarisSystem.java.i
 data/src/share/classes/java/security/SignatureException.java.i
-data/src/windows/classes/sun/security/krb5/internal/tools/KinitOptions.java.i
-data/test/java/net/Socket/ShutdownBoth.java.i
+data/test/demo/jvmti/hprof/CpuTimesTest.java.i
+data/test/javax/xml/crypto/dsig/X509KeySelector.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java.i
-data/test/java/awt/dnd/FileListBetweenJVMsTest/SourceFileListFrame.java.i
+data/test/java/io/Serializable/6559775/SerialRace.java.i
+data/test/java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.java.i
 data/src/solaris/classes/sun/java2d/xr/GrowablePointArray.java.i
 data/src/share/classes/javax/management/openmbean/OpenMBeanOperationInfoSupport.java.i
-data/test/java/io/Serializable/evolution/RenamePackage/test/SerialDriver.java.i
+data/test/javax/print/applet/applet4/Applet4PrintService.java.i
 data/src/share/classes/sun/security/x509/README.i
-data/src/share/classes/javax/management/StandardMBean.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMInformInterestedHost.java.i
 data/src/share/classes/sun/io/CharToByteISO8859_9.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java.i
-data/test/demo/jvmti/hprof/HelloWorld.java.i
+data/test/sun/misc/EscapePath.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBuffer/SubbufferLongLong.java.i
 data/src/share/classes/sun/io/UnknownCharacterException.java.i
 data/src/share/classes/java/util/zip/ZipConstants64.java.i
 data/src/solaris/npt/npt_md.h.i
 data/src/share/classes/java/beans/ParameterDescriptor.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalTitlePane.java.i
-data/test/java/nio/channels/spi/AsynchronousChannelProvider/Provider2.java.i
+data/test/java/util/Locale/data/deflocale.winvista.i
 data/test/java/rmi/transport/pinLastArguments/PinLastArguments.java.i
 data/test/demo/jvmti/mtrace/JFrameCreateTime.java.i
-data/test/java/math/BigDecimal/ZeroScalingTests.java.i
 data/src/share/demo/nbproject/management/JTop/nbproject/file-targets.xml.i
 data/test/java/lang/instrument/redefineAgent.mf.i
-data/test/com/sun/servicetag/servicetag5.properties.i
 data/make/modules/image.tools.ls.i
-data/test/java/rmi/reliability/benchmark/bench/serial/Chars.java.i
+data/src/share/modules/jdk.awt/module-info.java.i
+data/make/docs/Notes.html.i
 data/test/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java.i
-data/test/sun/nio/cs/OLD/IBM970_OLD.java.i
 data/src/share/classes/java/net/ProxySelector.java.i
-data/src/share/classes/sun/security/acl/PrincipalImpl.java.i
 data/test/java/util/AbstractList/FailFastIterator.java.i
-data/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java.i
+data/src/share/classes/javax/swing/text/rtf/RTFParser.java.i
 data/src/share/classes/javax/swing/undo/CannotRedoException.java.i
 data/src/share/classes/com/sun/jdi/VirtualMachineManager.java.i
 data/src/share/classes/javax/management/MBeanServerBuilder.java.i
-data/src/share/native/sun/awt/medialib/mlib_ImageConv_D64nw.c.i
-data/src/share/classes/sun/nio/cs/ext/Johab.java.i
+data/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java.i
 data/src/share/classes/sun/security/x509/EDIPartyName.java.i
 data/src/share/classes/com/sun/rowset/internal/CachedRowSetReader.java.i
 data/src/share/classes/com/sun/rowset/providers/package.html.i
 data/test/java/rmi/server/UnicastRemoteObject/changeHostName/ChangeHostName_Stub.java.i
-data/test/com/sun/jdi/sde/FilterMangleTest.java.i
-data/test/java/io/Serializable/GetField/Read2.java.i
+data/src/share/native/sun/font/layout/LigatureSubstProc.cpp.i
+data/make/java/main/java/mapfile-sparc.i
 data/src/share/classes/sun/util/resources/LocaleNames_zh_SG.properties.i
 data/test/javax/swing/JComboBox/7031551/bug7031551.java.i
 data/src/share/classes/com/sun/jmx/snmp/internal/SnmpIncomingRequest.java.i
 data/src/share/classes/sun/util/resources/TimeZoneNamesBundle.java.i
 data/src/share/classes/sun/dyn/util/package-info.java.i
-data/test/java/io/LineNumberReader/Skip.java.i
+data/test/java/lang/InheritableThreadLocal/Basic.java.i
 data/src/share/classes/java/util/Deque.java.i
 data/src/share/classes/java/awt/Desktop.java.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/security.policy.i
@@ -3085,24 +2993,22 @@ data/test/java/net/Socket/reset/Test.java.i
 data/src/share/native/sun/awt/medialib/mlib_types.h.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/schema/xenc-schema.xsd.i
 data/src/share/classes/sun/io/CharToByteCp862.java.i
-data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/MyX509KeyManager.java.i
+data/make/tools/CharsetMapping/IBM1143.map.i
 data/test/com/sun/crypto/provider/Cipher/AES/Test4626070.java.i
 data/src/solaris/classes/sun/awt/motif/AWTLockAccess.java.i
 data/make/tools/swing-beans/beaninfo/images/JTextAreaMono32.gif.i
-data/test/sun/text/resources/Format/Bug4395196.java.i
 data/src/share/classes/sun/io/ByteToCharPCK.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU16U8Func.c.i
 data/src/share/classes/sun/io/ByteToCharCp856.java.i
-data/test/java/security/cert/pkix/policyChanges/TestPolicy.java.i
 data/src/share/native/sun/awt/image/jpeg/jdcoefct.c.i
-data/src/share/demo/jvmti/hprof/debug_malloc.h.i
+data/src/solaris/classes/sun/nio/fs/UnixFileKey.java.i
 data/test/java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak_Stub.java.i
 data/src/solaris/classes/sun/awt/motif/MEmbeddedFramePeer.java.i
-data/src/share/classes/sun/util/resources/CalendarData_iw.properties.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/Texture.java.i
 data/make/tools/src/build/tools/jdwpgen/Node.java.i
 data/src/share/classes/javax/swing/plaf/IconUIResource.java.i
 data/src/share/classes/java/security/PrivilegedActionException.java.i
+data/src/share/classes/sun/applet/resources/MsgAppletViewer_ko.java.i
 data/src/share/classes/sun/text/resources/FormatData_es_AR.java.i
 data/make/tools/CharsetMapping/IBM1047.map.i
 data/test/java/io/Serializable/InvalidClassException/noargctor/Serialize/SamePackageCtor.java.i
@@ -3111,73 +3017,70 @@ data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java
 data/test/com/sun/jdi/RedefineChangeClassOrder.sh.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageAffineIndex_BL.c.i
 data/src/share/native/java/net/DatagramPacket.c.i
+data/make/netbeans/README.i
 data/test/java/beans/XMLDecoder/spec/TestDouble.java.i
 data/make/java/verify/reorder-i586.i
-data/test/java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java.i
+data/src/share/classes/com/sun/jdi/event/EventQueue.java.i
+data/src/share/classes/java/awt/datatransfer/FlavorMap.java.i
+data/src/share/classes/sun/text/resources/FormatData_sq.java.i
 data/src/share/classes/java/net/NoRouteToHostException.java.i
 data/src/share/classes/java/dyn/ClassValue.java.i
-data/src/share/classes/sun/tools/java/CompilerError.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaLong.java.i
 data/src/solaris/classes/sun/font/XRTextRenderer.java.i
 data/src/solaris/native/sun/java2d/loops/mlib_v_ImageLogic.h.i
 data/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java.i
 data/src/share/native/sun/awt/splashscreen/splashscreen_impl.c.i
 data/src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp.i
-data/src/solaris/native/sun/nio/ch/SocketChannelImpl.c.i
+data/src/share/native/sun/font/layout/CanonShaping.cpp.i
+data/src/share/classes/com/sun/tools/example/debug/event/JDIListener.java.i
 data/src/share/classes/com/sun/media/sound/ModelChannelMixer.java.i
-data/src/share/classes/com/sun/imageio/plugins/gif/GIFImageReader.java.i
+data/make/sun/font/Makefile.i
 data/test/java/awt/im/6396526/IMLookAndFeel.java.i
 data/src/windows/native/java/net/NetworkInterface.c.i
-data/src/share/native/sun/security/ec/ecp_384.c.i
-data/src/windows/native/sun/security/pkcs11/wrapper/p11_md.c.i
-data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CookieHandlerTest.java.i
+data/src/share/classes/sun/jvmstat/monitor/remote/package.html.i
+data/src/share/sample/nio/server/README.txt.i
+data/test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_TitledBorderUIResource.java.i
 data/src/solaris/classes/sun/awt/motif/MPanelPeer.java.i
 data/src/solaris/classes/sun/awt/X11/XEmbedChildProxyPeer.java.i
 data/src/share/classes/java/lang/Integer.java.i
 data/test/java/lang/Throwable/ChainedExceptions.java.i
-data/test/java/util/PriorityQueue/NoNulls.java.i
-data/test/java/dyn/InvokeGenericTest.java.i
+data/test/java/io/Serializable/InvalidClassException/noargctor/NonSerialize/PrivateCtor.java.i
 data/test/com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java.i
 data/src/share/classes/com/sun/pept/ept/ContactInfoListIterator.java.i
 data/src/share/classes/com/sun/jmx/snmp/internal/SnmpOutgoingRequest.java.i
 data/src/share/classes/sun/management/counter/LongCounter.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/ClassWriter.java.i
-data/test/java/rmi/server/RMIClassLoader/noSecurityManager/NoSecurityManager.java.i
 data/src/share/classes/sun/text/resources/FormatData_ar_YE.java.i
 data/src/share/classes/javax/net/ssl/SSLParameters.java.i
 data/src/share/classes/sun/java2d/pipe/BufferedPaints.java.i
-data/test/java/util/Locale/data/deflocale.rhel4.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetMaxPolyphony.java.i
+data/test/java/lang/instrument/ilib/ClassDump.java.i
 data/make/tools/CharsetMapping/Makefile.i
 data/make/java/text/Makefile.i
 data/test/java/lang/instrument/BootClassPath/BootClassPathTest.sh.i
 data/src/share/classes/java/util/EventListener.java.i
-data/test/com/sun/jdi/BreakpointWithFullGC.sh.i
-data/test/com/sun/security/sasl/digest/Integrity.java.i
-data/src/share/classes/sun/management/snmp/jvminstr/JvmRTBootClassPathTableMetaImpl.java.i
+data/src/share/native/sun/font/layout/LookupProcessor.h.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/ASCII_CharStream.java.i
 data/src/share/classes/sun/java2d/StateTrackableDelegate.java.i
 data/test/java/net/Socket/asyncClose/Socket_getOutputStream_write.java.i
 data/src/share/classes/sun/security/util/Resources_fr.java.i
 data/test/com/sun/jdi/RequestReflectionTest.java.i
 data/src/share/classes/java/util/Objects.java.i
+data/src/share/classes/java/lang/instrument/package.html.i
 data/src/share/classes/sun/text/Normalizer.java.i
 data/src/share/classes/sun/security/x509/CertificateX509Key.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libplds4.so.i
 data/src/share/classes/javax/swing/Renderer.java.i
-data/src/solaris/doc/sun/man/man1/ja/appletviewer.1.i
-data/test/sun/security/mscapi/IsSunMSCAPIAvailable.sh.i
-data/test/java/io/File/HashCodeEquals.java.i
+data/src/windows/native/sun/windows/awt_GDIObject.h.i
+data/test/java/nio/channels/AsynchronousChannelGroup/Basic.java.i
 data/src/share/native/sun/font/layout/AnchorTables.h.i
 data/src/share/native/sun/awt/image/jpeg/jcinit.c.i
 data/src/share/classes/javax/swing/text/html/parser/html32.bdtd.i
-data/test/java/security/cert/CertPathValidator/nameConstraints/NameConstraintsWithUnexpectedRID.java.i
 data/test/java/util/jar/JarFile/Constructor.java.i
 data/test/java/lang/StringBuffer/Trim.java.i
 data/test/org/openjdk/jigsaw/cli/signer-cert.pem.i
 data/src/share/classes/sun/tools/tree/FieldUpdater.java.i
-data/test/sun/nio/cs/OLD/X11KSC5601_OLD.java.i
 data/src/share/classes/sun/io/ByteToCharCp943C.java.i
-data/test/java/rmi/reliability/scripts/run_serialbench.ksh.i
+data/src/share/classes/sun/security/provider/IdentityDatabase.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpEntryOid.java.i
 data/src/share/classes/com/sun/crypto/provider/SunJCE.java.i
 data/test/javax/management/monitor/DerivedGaugeMonitorTest.java.i
@@ -3185,24 +3088,21 @@ data/test/javax/management/eventService/SubscribeTest.java.i
 data/test/java/nio/channels/AsynchronousServerSocketChannel/java.policy.allow.i
 data/make/tools/swing-beans/beaninfo/images/JTextFieldMono32.gif.i
 data/src/share/classes/java/awt/Dialog.java.i
-data/src/share/classes/java/util/concurrent/ForkJoinPool.java.i
-data/test/javax/sound/midi/Gervill/ModelSource/SetIdentifier.java.i
+data/test/sun/tools/jstat/jstatGcCapacityOutput1.sh.i
 data/test/javax/management/loading/mlet3.html.i
 data/make/tools/swing-beans/beaninfo/images/JComponentColor16.gif.i
-data/test/javax/sound/midi/Gervill/ModelIdentifier/SetInstance.java.i
 data/src/share/demo/jfc/Font2DTest/resources/TextResources_zh_CN.properties.i
 data/src/share/classes/sun/text/resources/FormatData_iw.java.i
-data/test/java/dyn/indify/Indify.java.i
+data/test/java/util/logging/LoggingDeadlock4.java.i
 data/test/java/io/File/GetAbsolutePath.java.i
 data/src/share/classes/javax/naming/directory/SchemaViolationException.java.i
 data/make/tools/swing-beans/beaninfo/images/JOptionPaneColor32.gif.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java.i
-data/test/javax/management/remote/mandatory/subjectDelegation/policy34.i
-data/test/javax/swing/JColorChooser/Test4887836.java.i
-data/test/java/rmi/MarshalledObject/compare/annotatedRef.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java.i
 data/src/share/classes/sun/security/x509/DistributionPointName.java.i
-data/src/share/classes/sun/misc/PerformanceLogger.java.i
+data/src/share/native/sun/font/layout/IndicClassTables.cpp.i
 data/src/solaris/native/sun/awt/HPkeysym.h.i
+data/src/share/classes/java/lang/doc-files/theta.gif.i
 data/test/java/util/ResourceBundle/FakeTestResource.java.i
 data/test/java/lang/ProcessBuilder/SecurityManagerClinit.java.i
 data/src/share/demo/jfc/Font2DTest/Font2DTest.java.i
@@ -3210,25 +3110,23 @@ data/src/share/classes/sun/util/resources/CurrencyNames_es_CR.properties.i
 data/test/java/util/zip/ZipFile/Constructor.java.i
 data/src/share/classes/sun/security/provider/certpath/LDAPCertStore.java.i
 data/src/share/classes/java/awt/LinearGradientPaintContext.java.i
-data/src/share/classes/sun/tools/jconsole/resources/brandlogo.png.i
 data/src/share/classes/sun/security/provider/PolicyParser.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM1145.java.i
-data/test/java/beans/XMLDecoder/spec/TestVar.java.i
+data/src/share/classes/java/lang/invoke/InvokeGeneric.java.i
 data/test/java/security/UnresolvedPermission/AccessorMethods.ca.i
 data/src/share/classes/com/sun/jdi/event/ModificationWatchpointEvent.java.i
-data/test/java/beans/Introspector/Test4948761.java.i
+data/test/tools/pack200/pack200-verifier/src/xmlkit/ClassSyntax.java.i
 data/test/javax/management/namespace/MXBeanRefTest.java.i
 data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ExtendedKeyEngine.java.i
+data/src/share/classes/javax/swing/text/rtf/RTFGenerator.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32U8Func.c.i
-data/test/sun/security/pkcs11/KeyStore/BasicData/pk1.cert2.i
 data/src/solaris/native/com/sun/management/LinuxOperatingSystem.c.i
-data/test/sun/tools/jrunscript/jrunscript-fTest.sh.i
-data/src/share/classes/javax/sql/ConnectionEvent.java.i
+data/src/share/classes/com/sun/beans/decoder/MethodElementHandler.java.i
 data/src/share/classes/javax/security/auth/spi/LoginModule.java.i
-data/src/share/back/invoker.h.i
+data/test/javax/sound/midi/Gervill/SoftAudioBuffer/Get.java.i
 data/src/share/classes/javax/sound/sampled/SourceDataLine.java.i
 data/src/share/classes/java/beans/beancontext/BeanContextChildComponentProxy.java.i
-data/src/share/classes/javax/naming/ldap/ExtendedRequest.java.i
+data/test/java/awt/List/SingleModeDeselect/SingleModeDeselect.java.i
 data/src/share/classes/sun/management/Flag.java.i
 data/src/share/back/ClassTypeImpl.c.i
 data/src/share/classes/com/sun/jmx/mbeanserver/OpenConverter.java.i
@@ -3242,31 +3140,31 @@ data/test/java/nio/channels/AsynchronousFileChannel/MyThreadFactory.java.i
 data/src/share/classes/javax/swing/filechooser/FileNameExtensionFilter.java.i
 data/test/java/nio/channels/SocketChannel/AdaptSocket.java.i
 data/src/share/classes/sun/security/krb5/internal/TGSReq.java.i
-data/src/share/classes/java/util/zip/ZipInputStream.java.i
+data/test/java/util/ResourceBundle/Control/StressOut_ja_JP.properties.i
 data/src/share/classes/java/awt/AWTKeyStroke.java.i
-data/test/java/nio/channels/AsynchronousServerSocketChannel/Basic.java.i
 data/src/share/classes/javax/xml/crypto/KeySelectorException.java.i
 data/make/tools/CharsetMapping/IBM1025.nr.i
 data/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java.i
 data/src/share/classes/javax/management/event/ListenerInfo.java.i
 data/test/com/sun/security/sasl/digest/NoQuoteParams.java.i
 data/test/java/rmi/activation/Activatable/extLoadedImpl/ExtLoadedImpl.java.i
+data/src/share/classes/java/beans/MetaData.java.i
 data/src/windows/native/sun/java2d/d3d/D3DTextRenderer_md.cpp.i
-data/src/solaris/native/sun/awt/awt_Checkbox.c.i
+data/src/share/classes/javax/swing/SpinnerListModel.java.i
+data/src/share/classes/sun/security/x509/SubjectKeyIdentifierExtension.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/MyObjectImpl.java.i
 data/test/javax/management/Introspector/AnnotationTest.java.i
-data/test/java/io/PipedOutputStream/MultipleConnect.java.i
 data/src/share/classes/sun/management/resources/agent_fr.properties.i
+data/src/share/classes/java/rmi/dgc/Lease.java.i
 data/src/share/classes/java/lang/reflect/Method.java.i
 data/test/com/sun/net/httpserver/Test14.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicPasswordFieldUI.java.i
 data/make/tools/CharsetMapping/IBM1123.c2b.i
-data/test/javax/management/remote/mandatory/connection/IdleTimeoutTest.java.i
-data/test/java/util/Locale/Bug4316602.java.i
+data/src/share/classes/javax/crypto/spec/DHParameterSpec.java.i
 data/test/java/lang/reflect/Generics/TestN1.java.i
 data/test/java/util/LinkedHashSet/Basic.java.i
 data/make/sun/image/generic/FILES_c.gmk.i
-data/test/java/nio/channels/Selector/SelectorLimit.java.i
+data/make/templates/gpl-cp-header.i
 data/test/java/util/zip/test.zip.i
 data/src/share/classes/javax/swing/plaf/metal/OceanTheme.java.i
 data/src/share/classes/javax/xml/crypto/MarshalException.java.i
@@ -3275,21 +3173,24 @@ data/src/share/demo/jfc/CodePointIM/CodePointInputMethodDescriptor.java.i
 data/src/share/classes/javax/security/auth/kerberos/KeyTab.java.i
 data/src/share/classes/sun/security/krb5/KrbAsReqBuilder.java.i
 data/test/java/net/InetAddress/policy.file.i
-data/test/java/io/Serializable/class/NonSerialA_2.java.i
+data/src/share/classes/java/util/concurrent/ThreadFactory.java.i
 data/src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java.i
-data/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java.i
+data/test/javax/xml/crypto/dsig/data/certs/badb.crt.i
 data/src/share/native/sun/awt/image/jpeg/jccoefct.c.i
 data/src/share/classes/sun/nio/cs/ext/IBM1097.java.i
 data/make/tools/src/build/tools/jdwpgen/ClassLoaderObjectTypeNode.java.i
-data/test/java/awt/image/ConvolveOp/EdgeNoOpCrash.java.i
-data/src/share/classes/javax/management/namespace/package-info.java.i
+data/src/share/classes/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java.i
+data/src/share/classes/sun/io/ByteToCharCp964.java.i
+data/src/share/classes/sun/net/ftp/FtpDirParser.java.i
 data/src/solaris/classes/sun/nio/fs/UnixChannelFactory.java.i
 data/src/share/classes/javax/sound/sampled/LineEvent.java.i
 data/src/share/classes/java/util/UnknownFormatFlagsException.java.i
-data/src/solaris/native/java/net/SocketInputStream.c.i
+data/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java.i
 data/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java.i
-data/make/java/text/FILES_java.gmk.i
-data/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libsoftokn3.so.d
+data/test/java/lang/reflect/Generics/TestC2.java.i
+data/test/java/util/PluggableLocale/providersrc/java.util.spi.CurrencyNameProvider.i
+data/src/share/classes/com/sun/tools/hat/internal/model/JavaClass.java.i
+data/src/share/classes/sun/util/resources/CalendarData_fi.properties.i
 data/src/share/classes/java/io/FileFilter.java.i
 data/test/javax/swing/border/Test6910490.java.i
 data/src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c.i
@@ -3297,21 +3198,22 @@ data/src/share/classes/sun/text/resources/FormatData_es.java.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageConv.h.i
 data/src/share/native/java/lang/Package.c.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/Effect.java.i
-data/test/java/security/cert/CertPathValidatorException/GetMessage.java.i
+data/test/sun/tools/jrunscript/jrunscriptTest.sh.i
 data/src/share/classes/sun/management/snmp/util/SnmpLoadedClassData.java.i
-data/make/com/sun/java/browser/dom/Makefile.i
+data/src/share/classes/com/sun/security/auth/SubjectCodeSource.java.i
 data/src/share/classes/java/text/ParseException.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalLabelUI.java.i
 data/src/share/classes/java/util/concurrent/RunnableScheduledFuture.java.i
-data/test/java/lang/management/PlatformLoggingMXBean/PlatformLoggingMXBeanTest.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libnss3.so.d
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpFunc.h.i
+data/src/share/classes/java/awt/TextComponent.java.i
+data/src/solaris/native/sun/awt/awt_LoadLibrary.c.i
+data/test/javax/swing/plaf/synth/Test6933784.java.i
 data/src/share/classes/sun/io/CharToByteCp737.java.i
-data/test/java/rmi/dgc/dgcImplInsulation/security.policy.i
+data/test/sun/rmi/rmic/newrmic/equivalence/ComputeServer.java.i
 data/test/java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html.i
+data/test/java/lang/instrument/PremainClass/DummyMain.java.i
 data/test/java/util/Currency/ValidateISO4217.java.i
-data/test/sun/text/resources/LocaleData.i
-data/test/sun/net/InetAddress/nameservice/CacheTest.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_iw_IL.properties.i
+data/test/java/io/InputStream/OpsAfterClose.java.i
 data/src/share/native/sun/awt/debug/debug_trace.c.i
 data/src/share/classes/sun/applet/resources/MsgAppletViewer_de.java.i
 data/src/share/classes/java/io/FileReader.java.i
@@ -3319,37 +3221,33 @@ data/test/tools/pack200/badattr.jar.i
 data/make/tools/src/build/tools/generatecharacter/Utility.java.i
 data/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/expresso.mid.i
-data/test/java/net/Authenticator/B4962064.java.i
-data/src/share/demo/jvmti/hprof/hprof_tls.c.i
+data/test/javax/sound/midi/Gervill/ModelStandardTransform/NewModelStandardTransformBoolean.java.i
+data/src/share/classes/java/text/Bidi.java.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedStaticCharacterFieldAccessorImpl.java.i
 data/src/share/classes/sun/java2d/loops/RenderLoops.java.i
-data/test/java/math/BigDecimal/NegateTests.java.i
 data/src/share/classes/com/sun/jmx/namespace/serial/package.html.i
 data/test/sun/tools/common/CommonSetup.sh.i
-data/test/java/beans/PropertyEditor/TestByteClassJava.java.i
 data/test/java/util/Locale/HashCodeTest.java.i
 data/test/java/net/Socks/SocksProxyVersion.java.i
 data/test/java/beans/VetoableChangeSupport/TestMethods.java.i
-data/test/java/net/URI/RelativeEncoding.java.i
-data/src/share/classes/sun/security/util/AuthResources_ja.java.i
-data/src/share/classes/javax/management/monitor/GaugeMonitorMBean.java.i
+data/src/share/classes/sun/applet/Main.java.i
+data/test/java/util/PriorityQueue/NoNulls.java.i
 data/src/share/classes/sun/misc/ExtensionInfo.java.i
 data/src/share/classes/javax/swing/JScrollBar.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifEditorPaneUI.java.i
-data/test/java/util/HashMap/ToString.java.i
+data/src/share/classes/sun/awt/resources/awt_ja.properties.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsGraphicsUtils.java.i
-data/test/java/util/Locale/Bug4152725.java.i
+data/test/java/beans/Introspector/Test4144543.java.i
 data/src/share/classes/sun/reflect/generics/tree/VoidDescriptor.java.i
 data/src/share/native/sun/java2d/loops/ScaledBlit.c.i
-data/src/share/native/sun/font/layout/PairPositioningSubtables.h.i
 data/src/solaris/native/sun/nio/ch/DevPollArrayWrapper.c.i
 data/src/share/classes/sun/text/resources/CollationData_de.java.i
 data/make/tools/src/build/tools/jdwpgen/SelectNode.java.i
 data/src/share/classes/java/util/GregorianCalendar.java.i
 data/src/share/classes/sun/text/resources/FormatData_de_AT.java.i
-data/src/share/native/java/lang/fdlibm/src/s_lib_version.c.i
 data/src/share/classes/com/sun/media/sound/SoftEnvelopeGenerator.java.i
 data/src/share/classes/com/sun/jdi/PrimitiveValue.java.i
+data/src/share/classes/sun/java2d/InvalidPipeException.java.i
 data/src/share/classes/java/security/cert/CertPathParameters.java.i
 data/src/share/classes/sun/tools/java/MemberDefinition.java.i
 data/test/java/lang/Appendable/Basic.java.i
@@ -3362,9 +3260,10 @@ data/src/share/classes/java/awt/Graphics.java.i
 data/src/share/classes/sun/nio/cs/ext/MS936.java.i
 data/test/sun/security/tools/jarsigner/TimestampCheck.java.i
 data/src/share/classes/sun/tracing/ProviderSkeleton.java.i
+data/src/windows/native/sun/windows/awt_PrintControl.h.i
+data/src/share/classes/java/dyn/package-info.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGStreamMetadataFormat.java.i
-data/test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java.i
-data/test/sun/security/krb5/NegativeNonce.java.i
+data/test/javax/swing/text/html/Test4783068.java.i
 data/test/tools/launcher/Arrrghs.sh.i
 data/src/share/native/sun/awt/medialib/mlib_ImageScanPoly.c.i
 data/test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/SourcePanel.java.i
@@ -3374,119 +3273,120 @@ data/test/java/io/Serializable/serialver/nested/run.sh.i
 data/src/share/classes/javax/swing/text/doc-files/Document-structure.gif.i
 data/src/share/classes/java/security/KeyStore.java.i
 data/src/share/classes/javax/management/relation/InvalidRelationIdException.java.i
+data/src/share/classes/com/sun/jndi/ldap/LdapResult.java.i
 data/src/share/classes/com/sun/jdi/LongValue.java.i
 data/src/share/classes/sun/net/www/content/audio/aiff.java.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/LongArrayCalls.java.i
 data/test/java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java.i
+data/src/share/classes/sun/util/calendar/CalendarSystem.java.i
 data/src/share/classes/java/net/SecureCacheResponse.java.i
 data/src/share/classes/com/sun/imageio/plugins/gif/GIFImageReaderSpi.java.i
 data/test/java/beans/XMLEncoder/java_lang_String.java.i
-data/src/share/classes/javax/swing/plaf/TextUI.java.i
+data/test/java/lang/instrument/PremainClass/InheritAgent1011.java.i
 data/test/java/beans/XMLEncoder/java_util_Collections_SynchronizedRandomAccessList.java.i
 data/make/tools/CharsetMapping/IBM871.map.i
-data/test/com/sun/net/httpserver/FileServerHandler.java.i
-data/test/com/sun/jdi/connect/spi/GeneratedConnectors.java.i
-data/test/com/sun/jdi/TemplateTest.java.i
+data/test/java/util/concurrent/ThreadPoolExecutor/SelfInterrupt.java.i
+data/test/java/lang/ThreadLocal/ThreadId.java.i
 data/src/share/back/ThreadReferenceImpl.h.i
 data/test/org/openjdk/jigsaw/eg/com/foo/bar/Main.java.i
 data/src/share/classes/java/lang/reflect/GenericDeclaration.java.i
-data/test/com/sun/servicetag/servicetag4.properties.i
 data/test/javax/management/remote/mandatory/connection/DaemonRMIExporterTest.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/RetrievalMethodResolver.java.i
 data/test/java/beans/PropertyEditor/6380849/FirstBean.java.i
-data/src/share/classes/sun/nio/cs/ext/IBM949C.java.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/SimpleShape.java.i
 data/src/share/classes/javax/swing/JTree.java.i
 data/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java.i
-data/src/share/native/sun/awt/image/jpeg/jdmainct.c.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/ObjArrayCalls.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIStateType.java.i
-data/test/javax/management/mxbean/ExceptionDiagnosisTest.java.i
+data/make/javax/swing/plaf/Makefile.i
 data/src/share/classes/com/sun/media/sound/SF2SoundbankReader.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-amd64/libplds4.so.i
 data/src/solaris/sample/dtrace/hotspot/object_allocation_stat.d.i
-data/test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_mix_mono_overdrive.java.i
 data/make/tools/dtdbuilder/dtds/HTMLspecial.sgml.i
+data/src/share/classes/sun/rmi/transport/DGCAckHandler.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM277.java.i
-data/test/java/lang/management/ThreadMXBean/Semaphore.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmRTBootClassPathEntryImpl.java.i
-data/test/javax/sound/midi/Gervill/ModelPerformer/SetConnectionBlocks.java.i
+data/src/share/classes/sun/util/resources/CalendarData_th.properties.i
 data/test/java/awt/xembed/server/JavaClient.java.i
 data/test/java/nio/Buffer/LimitDirectMemory.java.i
 data/src/windows/classes/sun/awt/windows/WDataTransferer.java.i
+data/src/share/classes/java/awt/peer/LabelPeer.java.i
 data/src/share/classes/java/net/URISyntaxException.java.i
 data/test/com/sun/jdi/RedefineClearBreakpoint.sh.i
 data/make/jprt.gmk.i
-data/test/java/awt/regtesthelpers/AbstractPolicyTest.java.i
+data/src/share/native/sun/management/MemoryImpl.c.i
+data/src/share/classes/javax/management/loading/MLetObjectInputStream.java.i
 data/test/java/util/zip/ZipFile/ManyEntries.java.i
-data/test/javax/imageio/plugins/png/GrayPngTest.java.i
+data/src/share/native/sun/security/jgss/wrapper/GSSLibStub.c.i
 data/src/share/classes/java/util/concurrent/Delayed.java.i
+data/src/share/classes/com/sun/jmx/snmp/daemon/CommunicatorServerMBean.java.i
 data/test/java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html.i
 data/test/sun/java2d/cmm/ColorConvertOp/ImageFactory.java.i
 data/src/share/classes/javax/naming/CompoundName.java.i
-data/make/tools/CharsetMapping/IBM1144.c2b.i
 data/src/share/classes/javax/script/ScriptEngineManager.java.i
 data/test/javax/swing/JFileChooser/4150029/bug4150029.java.i
-data/src/share/native/sun/awt/image/jpeg/jmemmgr.c.i
+data/src/share/classes/sun/io/ByteToCharISO8859_3.java.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/Modularizer.java.i
 data/src/share/native/sun/management/GcInfoBuilder.c.i
 data/src/solaris/classes/sun/awt/X11/security-icon-yellow16.png.i
-data/test/sun/management/jmxremote/bootstrap/TestManager.java.i
 data/src/share/classes/com/sun/crypto/provider/EncryptedPrivateKeyInfo.java.i
-data/test/java/util/ResourceBundle/Test4318520.java.i
+data/src/share/classes/javax/xml/crypto/dsig/spec/HMACParameterSpec.java.i
 data/src/share/classes/com/sun/jmx/snmp/BerException.java.i
 data/src/windows/classes/sun/nio/fs/WindowsPathType.java.i
-data/test/java/rmi/activation/ActivationSystem/unregisterGroup/security.policy.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/Canonicalizer.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaObjectArray.java.i
 data/test/sun/security/tools/jarsigner/samename.sh.i
 data/test/java/awt/image/mlib/MlibOpsTest.java.i
 data/src/linux/doc/man/ja/apt.1.i
-data/test/sun/security/ssl/sanity/pluggability/CheckSSLContextExport.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_is_IS.properties.i
 data/src/share/classes/com/sun/tools/hat/internal/server/AllRootsQuery.java.i
 data/make/tools/CharsetMapping/IBM1122.nr.i
 data/src/share/classes/javax/swing/text/StateInvariantError.java.i
 data/src/share/classes/com/sun/nio/file/ExtendedOpenOption.java.i
 data/src/share/classes/sun/util/logging/resources/logging_ja.properties.i
-data/test/java/beans/PropertyEditor/TestShortType.java.i
+data/test/java/rmi/dgc/VMID/security.policy.i
 data/src/share/classes/javax/naming/spi/Resolver.java.i
-data/test/java/util/logging/SimpleFormatterFormat.java.i
+data/test/sun/jvmstat/testlibrary/JavaProcess.java.i
+data/test/javax/swing/text/html/TableView/7030332/sample0.png.i
 data/test/java/nio/file/attribute/Attributes/Basic.java.i
 data/test/java/lang/management/ThreadMXBean/EnableTest.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/icons/Directory.gif.i
 data/src/windows/classes/sun/print/Win32PrintJob.java.i
 data/src/share/native/sun/font/sunfontids.h.i
 data/src/share/classes/sun/security/jgss/wrapper/GSSCredElement.java.i
-data/test/java/io/Serializable/subclass/AbstractObjectInputStream.java.i
+data/test/java/awt/geom/CubicCurve2D/IntersectsTest.java.i
 data/test/java/io/readBytes/input.txt.i
 data/test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/TargetPanel.java.i
 data/src/share/native/sun/font/layout/SubstitutionLookups.h.i
 data/src/share/classes/javax/swing/border/package.html.i
 data/src/share/classes/sun/awt/image/ByteArrayImageSource.java.i
 data/src/share/classes/sun/reflect/generics/tree/Signature.java.i
-data/src/windows/classes/sun/nio/ch/FileKey.java.i
-data/src/share/native/sun/awt/medialib/mlib_ImageRowTable.h.i
+data/make/javax/swing/beaninfo/Makefile.i
+data/test/java/nio/file/WatchService/grantDirOnly.policy.i
 data/src/share/classes/java/net/SocketOption.java.i
 data/src/share/classes/java/awt/image/WritableRenderedImage.java.i
 data/src/share/classes/sun/java2d/pipe/SpanIterator.java.i
 data/test/java/awt/FontClass/BigMetrics.java.i
 data/src/share/classes/org/openjdk/jigsaw/Platform.java.i
-data/src/share/native/sun/java2d/cmm/lcms/lcms2.h.i
 data/src/share/classes/javax/naming/directory/InvalidAttributeValueException.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_sr_Latn.properties.i
-data/src/share/classes/sun/management/HotspotClassLoading.java.i
+data/src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java.i
+data/src/share/native/sun/font/layout/MPreFixups.cpp.i
 data/src/share/classes/sun/reflect/generics/tree/TypeArgument.java.i
-data/src/share/classes/sun/net/www/content/audio/x_aiff.java.i
+data/test/java/rmi/dgc/dgcAckFailure/DGCAckFailure_Stub.java.i
 data/test/java/beans/Beans/Test4343723.java.i
 data/make/tools/CharsetMapping/IBM437.map.i
 data/src/share/classes/com/sun/tools/jdi/ClassTypeImpl.java.i
 data/src/share/classes/javax/swing/Timer.java.i
 data/src/share/classes/sun/tools/jstatd/Jstatd.java.i
-data/test/java/lang/ClassLoader/findSystemClass/Loadee.java.i
+data/test/java/util/concurrent/BlockingQueue/PollMemoryLeak.java.i
 data/src/share/classes/sun/rmi/transport/proxy/HttpSendSocket.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM834.java.i
 data/src/solaris/native/java/net/SocketOutputStream.c.i
 data/src/solaris/native/sun/java2d/x11/X11PMBlitLoops.c.i
 data/test/java/security/cert/pkix/nameConstraintsMinMax/sun2labs2.cer.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolver.java.i
-data/src/solaris/classes/sun/nio/fs/UnixNativeDispatcher.java.i
-data/src/share/classes/java/sql/SQLIntegrityConstraintViolationException.java.i
+data/src/share/native/sun/awt/libpng/pngtrans.c.i
 data/src/share/classes/sun/tracing/dtrace/DTraceProviderFactory.java.i
 data/src/solaris/native/sun/awt/awt_MenuComponent.h.i
 data/test/java/util/ResourceBundle/ReferencesTest.java.i
@@ -3495,68 +3395,62 @@ data/test/sun/management/HotspotClassLoadingMBean/GetInitializedClassCount.java.
 data/src/windows/native/sun/windows/awt_Dialog.h.i
 data/.hgignore.i
 data/src/share/classes/sun/text/resources/FormatData_fr_CA.java.i
-data/src/share/classes/sun/io/ByteToCharJIS0208.java.i
+data/test/java/security/PermissionCollection/Concurrent.java.i
 data/src/share/native/sun/font/layout/ValueRecords.cpp.i
-data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.c.i
 data/src/share/classes/org/ietf/jgss/GSSManager.java.i
-data/test/java/io/Serializable/corruptedUTFConsumption/CorruptedUTFConsumption.java.i
 data/test/java/nio/channels/Pipe/PipeChannel.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpUnknownModelException.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_nl.properties.i
-data/src/solaris/classes/sun/awt/motif/MWindowAttributes.java.i
+data/test/java/util/TreeMap/HeadTailTypeError.java.i
 data/src/share/classes/java/lang/invoke/FromGeneric.java.i
 data/test/java/rmi/activation/Activatable/shutdownGracefully/rmid.security.policy.i
-data/src/windows/native/java/io/dirent_md.c.i
-data/src/share/classes/sun/security/util/Resources_ko.java.i
+data/src/share/classes/sun/awt/image/BufferedImageDevice.java.i
 data/src/share/classes/sun/tools/tree/InstanceOfExpression.java.i
 data/test/java/io/charStreams/RandomLineSource.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties.i
-data/test/java/nio/MappedByteBuffer/Truncate.java.i
 data/test/java/rmi/activation/Activatable/checkRegisterInLog/ActivateMe.java.i
 data/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java.i
 data/src/share/classes/sun/security/krb5/internal/EncKrbCredPart.java.i
 data/src/share/classes/sun/security/util/Resources_ja.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/icons/TreeClosed.gif.i
 data/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java.i
-data/test/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java.i
-data/src/share/classes/java/io/FilePermission.java.i
-data/src/share/classes/sun/tools/jconsole/inspector/XNodeInfo.java.i
+data/src/share/native/sun/awt/splashscreen/splashscreen_gfx.h.i
+data/src/share/classes/sun/text/resources/CollationData_zh_HK.java.i
+data/src/share/classes/com/sun/servicetag/SolarisServiceTag.java.i
 data/src/share/classes/javax/naming/Referenceable.java.i
-data/test/java/beans/Beans/6669869/TestGuiAvailable.java.i
-data/src/share/classes/sun/tools/jconsole/Version.java.template.i
+data/src/share/classes/javax/sql/rowset/JdbcRowSet.java.i
+data/src/share/native/sun/java2d/loops/IntArgbBm.c.i
 data/src/share/classes/java/rmi/NoSuchObjectException.java.i
-data/src/windows/classes/sun/nio/ch/DefaultSelectorProvider.java.i
-data/test/javax/management/monitor/CounterMonitorDeadlockTest.java.i
+data/test/java/util/regex/SupplementaryTestCases.txt.i
+data/test/javax/management/remote/mandatory/passwordAuthenticator/RMIAltAuthTest.java.i
 data/test/java/util/Collections/BigBinarySearch.java.i
 data/src/share/classes/javax/print/attribute/standard/PresentationDirection.java.i
 data/src/share/classes/javax/xml/crypto/dsig/spec/XPathFilter2ParameterSpec.java.i
-data/test/java/rmi/server/RMIClassLoader/loadProxyClasses/LoadProxyClasses.java.i
+data/src/solaris/native/sun/java2d/loops/vis_ThreeByteBgr.c.i
 data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLCtxAccessToSessCtx.java.i
 data/src/share/classes/java/nio/Heap-X-Buffer.java.template.i
-data/test/java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.java.i
+data/test/java/nio/channels/SocketChannel/CloseAfterConnect.java.i
 data/src/share/classes/javax/sound/midi/package.html.i
 data/src/share/classes/javax/management/modelmbean/ModelMBean.java.i
 data/src/share/classes/javax/swing/Box.java.i
 data/test/java/util/Locale/data/deflocale.sol10.fmtasdefault.i
 data/src/share/native/java/lang/fdlibm/src/s_modf.c.i
-data/src/share/classes/java/beans/XMLDecoder.java.i
+data/test/java/util/Locale/Bug4184873Test.java.i
 data/make/tools/src/build/tools/fontchecker/FontCheckerConstants.java.i
 data/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_zh_CN.java.i
 data/test/sun/tools/jps/jps-m_Output1.awk.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/ControlPoint.java.i
 data/src/share/native/sun/font/layout/SinglePositioningSubtables.h.i
 data/src/windows/classes/sun/nio/fs/RegistryFileTypeDetector.java.i
-data/make/tools/CharsetMapping/IBM970.map.i
+data/test/java/security/Provider/SupportsParameter.java.i
 data/test/java/awt/event/OtherEvents/UngrabID/UngrabID.java.i
-data/src/share/classes/javax/management/timer/TimerNotification.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/JCEMapper.java.i
+data/src/share/classes/javax/swing/plaf/synth/doc-files/synth.dtd.i
+data/src/share/classes/sun/print/resources/orientRevPortrait.png.i
 data/src/share/classes/sun/util/resources/CalendarData_es.properties.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_US.properties.i
-data/test/java/nio/channels/Selector/WakeupNow.java.i
-data/test/demo/jvmti/hprof/HeapAllTest.java.i
+data/test/sun/security/pkcs11/nss/p11-nss.txt.i
+data/make/java/util/FILES_java.gmk.i
 data/test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_normal_mono.java.i
 data/test/java/io/Serializable/recursiveClassDescLookup/Test.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/CloseInboundException.java.i
 data/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java.i
 data/test/javax/management/standardmbean/FindMethodTest.java.i
 data/src/share/classes/com/sun/jmx/namespace/serial/DefaultRewritingProcessor.java.i
@@ -3566,43 +3460,39 @@ data/src/share/classes/com/sun/security/auth/module/NTLoginModule.java.i
 data/src/share/classes/javax/xml/crypto/dsig/keyinfo/X509IssuerSerial.java.i
 data/src/share/classes/javax/management/relation/RelationService.java.i
 data/src/share/classes/java/util/regex/UnicodeProp.java.i
-data/test/java/security/cert/pkix/policyChanges/ee.cer.i
+data/src/share/classes/javax/naming/ldap/ManageReferralControl.java.i
 data/src/share/classes/java/security/InvalidKeyException.java.i
-data/src/solaris/classes/sun/awt/X11GraphicsDevice.java.i
+data/test/javax/print/applet/applet3/Applet3.java.i
 data/src/share/classes/java/util/concurrent/locks/Condition.java.i
 data/src/share/classes/javax/sql/RowSetListener.java.i
 data/src/linux/doc/man/ja/policytool.1.i
-data/src/solaris/native/sun/jdga/jdgadevice.h.i
-data/test/javax/management/eventService/CustomForwarderTest.java.i
+data/test/java/net/InetAddress/B4762344.java.i
 data/test/com/sun/jdi/ArrayLengthDumpTest.sh.i
 data/test/sun/security/smartcardio/TestPresent.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_CO.properties.i
-data/test/javax/management/remote/mandatory/subjectDelegation/policy35.i
+data/src/share/classes/sun/util/resources/CurrencyNames_es_GT.properties.i
+data/src/share/classes/java/nio/file/FileRef.java.i
 data/test/com/sun/org/apache/xml/internal/security/transforms/MyTransform.java.i
-data/make/sun/font/reorder-sparc.i
+data/test/java/util/ServiceLoader/FooProvider3.java.i
 data/src/share/native/sun/awt/image/jpeg/jdmaster.c.i
-data/src/share/classes/javax/swing/SizeSequence.java.i
-data/test/java/security/Security/NoInstalledProviders.java.i
-data/make/com/sun/jndi/cosnaming/Makefile.i
+data/src/share/classes/sun/net/httpserver/ChunkedInputStream.java.i
+data/src/solaris/native/sun/awt/canvas.h.i
 data/src/share/classes/sun/reflect/generics/tree/TypeTree.java.i
-data/src/solaris/classes/sun/awt/X11/XWindowPeer.java.i
+data/test/com/sun/jdi/VMConnection.java.i
 data/src/share/classes/sun/tools/tree/GreaterOrEqualExpression.java.i
 data/make/tools/generate_nimbus/Makefile.i
 data/src/share/classes/java/awt/geom/RectangularShape.java.i
-data/test/java/net/Authenticator/BasicTest.java.i
-data/src/linux/doc/man/DO_NOT_EDIT--GENERATED_FILES.i
+data/src/share/classes/javax/print/event/PrintJobAttributeListener.java.i
+data/src/share/classes/sun/io/CharToByteCp1381.java.i
 data/test/sun/management/jmxremote/bootstrap/TestLogger.java.i
-data/test/sun/rmi/rmic/newrmic/equivalence/Callback.java.i
-data/test/sun/security/krb5/auto/Action.java.i
+data/src/windows/native/sun/jkernel/kernel_en.rc.i
 data/src/share/classes/java/awt/image/DirectColorModel.java.i
 data/src/share/classes/java/security/spec/X509EncodedKeySpec.java.i
 data/src/share/classes/javax/management/openmbean/SimpleType.java.i
-data/test/javax/management/remote/mandatory/version/ImplVersionCommand.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/Root.java.i
-data/test/java/lang/management/MemoryMXBean/LowMemoryTest.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_ga.properties.i
-data/src/share/classes/sun/security/pkcs11/P11KeyStore.java.i
-data/test/java/lang/String/RegionMatches.java.i
+data/test/java/security/KeyRep/HmacMD5.pre.1.5.key.i
+data/src/share/classes/java/awt/event/WindowFocusListener.java.i
+data/test/java/net/SocketPermission/Wildcard.java.i
 data/src/share/classes/java/io/TempFileHelper.java.i
 data/src/windows/native/sun/windows/awt_CustomPaletteDef.h.i
 data/src/share/classes/java/awt/event/HierarchyEvent.java.i
@@ -3611,41 +3501,38 @@ data/src/share/classes/com/sun/script/util/BindingsEntrySet.java.i
 data/src/share/classes/sun/reflect/generics/tree/FloatSignature.java.i
 data/src/share/classes/javax/swing/plaf/metal/icons/Inform.gif.i
 data/test/java/rmi/reliability/benchmark/bench/serial/CharArrays.java.i
-data/src/share/classes/com/sun/imageio/plugins/common/iio-plugin.properties.i
+data/test/java/awt/image/ConvolveOp/OpCompatibleImageTest.java.i
 data/src/solaris/classes/java/io/UnixFileSystem.java.i
-data/test/javax/swing/JPopupMenu/6675802/bug6675802.java.i
 data/src/share/classes/java/util/Hashtable.java.i
 data/test/java/lang/Double/Extrema.java.i
 data/test/java/io/Serializable/proxy/skipMissing/Handler.java.i
-data/test/sun/invoke/util/ValueConversionsTest.java.i
-data/test/java/rmi/activation/Activatable/createPrivateActivable/security.policy.i
-data/test/java/net/Socket/setReuseAddress/Basic.java.i
-data/src/share/native/com/sun/java/util/jar/pack/constants.h.i
+data/src/share/classes/sun/font/FontLineMetrics.java.i
+data/test/java/io/Serializable/evolution/RenamePackage/run.sh.i
+data/test/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java.i
+data/src/share/native/java/lang/fdlibm/src/e_hypot.c.i
 data/src/share/native/sun/awt/image/jpeg/jdphuff.c.i
-data/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleInfo.java.i
+data/make/modules/tools/src/com/sun/classanalyzer/ModuleConfig.java.i
 data/test/sun/security/krb5/etype/ETypeOrder.java.i
-data/test/java/security/cert/PKIXBuilderParameters/InvalidParameters.java.i
-data/src/share/classes/javax/crypto/AEADBadTagException.java.i
+data/test/java/nio/channels/FileChannel/LongTransferTest.java.i
 data/src/solaris/classes/sun/nio/ch/SctpShutdown.java.i
 data/src/share/classes/java/dyn/MethodHandleNatives.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/exceptions/XMLSecurityRuntimeException.java.i
 data/src/share/classes/com/sun/jmx/remote/util/CacheMap.java.i
-data/src/share/classes/sun/java2d/loops/CustomComponent.java.i
+data/test/java/awt/font/FontNames/LocaleFamilyNames.java.i
 data/test/java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java.i
-data/src/solaris/native/sun/nio/ch/IOUtil.c.i
 data/src/share/classes/javax/swing/text/TextAction.java.i
 data/src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java.i
 data/src/share/classes/javax/swing/UIManager.java.i
 data/test/java/rmi/activation/Activatable/nonExistentActivatable/NonExistentActivatable_Stub.java.i
-data/test/java/io/pathNames/unix/TrailingSlash.java.i
+data/test/sun/security/x509/AVA/DomainComponentEncoding.java.i
 data/make/sun/image/generic/Makefile.i
-data/src/share/classes/javax/sound/sampled/LineUnavailableException.java.i
 data/test/java/net/URI/URItoURLTest.java.i
+data/src/share/classes/sun/security/krb5/internal/ccache/CCacheOutputStream.java.i
 data/src/windows/classes/sun/java2d/d3d/D3DBlitLoops.java.i
-data/src/share/classes/java/awt/Shape.java.i
+data/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6226610.java.i
-data/src/share/native/sun/awt/image/jpeg/jdinput.c.i
-data/src/share/native/com/sun/java/util/jar/pack/unpack.cpp.i
+data/src/share/classes/org/jcp/xml/dsig/internal/package.html.i
+data/test/javax/management/MBeanServer/InstanceNotFoundExceptionTest.java.i
 data/test/java/util/Formatter/BasicLongObject.java.i
 data/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Encoder.java.i
 data/src/share/classes/sun/awt/image/XbmImageDecoder.java.i
@@ -3656,26 +3543,24 @@ data/make/tools/CharsetMapping/MS949.map.i
 data/src/share/classes/javax/management/openmbean/MXBeanMappingClass.java.i
 data/test/java/io/DataOutputStream/CounterOverflow.java.i
 data/src/share/classes/com/sun/media/sound/SoftPerformer.java.i
+data/src/share/classes/java/awt/event/ComponentEvent.java.i
 data/src/share/native/sun/font/layout/AttachmentPosnSubtables.h.i
 data/src/share/native/sun/java2d/loops/Any4Byte.c.i
-data/src/share/classes/javax/swing/text/LayoutQueue.java.i
+data/test/java/beans/XMLEncoder/java_awt_MenuShortcut.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/DriverResource.java.i
 data/src/share/classes/javax/xml/crypto/dsig/XMLValidateContext.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/MonitorStatus.java.i
-data/test/sun/text/resources/Format/Bug4621320.java.i
-data/test/sun/security/provider/certpath/ReverseBuilder/prjM2mgrM.i
-data/test/tools/pack200/pack200-verifier/data/README.i
+data/src/share/classes/com/sun/tools/jdi/JNITypeParser.java.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/jibxhelpers/FontMapper.java.i
 data/test/java/util/Formatter/BasicFloatObject.java.i
-data/test/javax/management/ObjectName/NullEmptyKeyValueTest.java.i
-data/test/java/io/NegativeInitSize.java.i
 data/src/share/classes/sun/java2d/cmm/PCMM.java.i
 data/src/share/classes/java/rmi/ConnectIOException.java.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMIpAddress.java.i
+data/test/sun/security/pkcs11/nss/lib/linux-i586/libplc4.so.i
 data/src/windows/classes/java/lang/ProcessEnvironment.java.i
 data/src/share/classes/javax/print/attribute/HashDocAttributeSet.java.i
 data/src/share/native/sun/java2d/opengl/OGLBlitLoops.c.i
 data/make/tools/swing-beans/beaninfo/images/JMenuBarColor16.gif.i
-data/test/com/sun/servicetag/DeleteServiceTag.java.i
+data/make/mkdemo/jfc/Notepad/Makefile.i
 data/src/share/classes/sun/security/provider/SystemIdentity.java.i
 data/test/javax/management/remote/mandatory/connection/ConnectionTest.java.i
 data/src/share/classes/sun/io/ByteToCharCp1252.java.i
@@ -3685,27 +3570,24 @@ data/test/java/math/BigDecimal/Constructor.java.i
 data/make/sun/font/FILES_c.gmk.i
 data/test/java/rmi/server/RMIClassLoader/useCodebaseOnly/UseCodebaseOnly.java.i
 data/src/share/classes/org/openjdk/jigsaw/Context.java.i
-data/test/sun/security/pkcs11/tls/masterdata.txt.i
-data/test/java/io/Serializable/class/SerialA_2.java.i
+data/src/share/classes/javax/print/attribute/standard/JobKOctets.java.i
+data/test/java/io/Writer/Append.java.i
+data/test/java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java.i
 data/src/share/classes/sun/io/ByteToCharEUC.java.i
 data/test/sun/tools/jstat/jstatLineCounts2.sh.i
 data/test/com/sun/nio/sctp/SctpChannel/Send.java.i
 data/test/java/io/Serializable/userRWObjError/UserRWObjError.java.i
 data/src/solaris/native/sun/nio/ch/FileDispatcher.c.i
-data/test/java/nio/file/TestUtil.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptOutputListener.java.i
 data/test/java/awt/Component/UpdatingBootTime/UpdatingBootTime.html.i
-data/test/com/sun/servicetag/FindServiceTags.java.i
-data/test/javax/print/applet/applet4/Applet4PrintServiceLookup.java.i
+data/src/share/classes/javax/management/MBeanNotificationInfo.java.i
 data/src/share/classes/java/security/IdentityScope.java.i
 data/src/share/classes/sun/net/httpserver/SSLStreams.java.i
 data/src/share/classes/java/security/cert/CRLException.java.i
-data/test/com/sun/crypto/provider/Cipher/DES/DoFinalReturnLen.java.i
+data/src/share/classes/com/sun/media/sound/SoftAudioBuffer.java.i
 data/src/share/classes/sun/rmi/registry/resources/rmiregistry_pt_BR.properties.i
 data/src/share/classes/org/openjdk/internal/joptsimple/internal/Reflection.java.i
-data/test/sun/tools/jstat/jstatGcCapacityOutput1.sh.i
-data/src/share/classes/javax/swing/table/JTableHeader.java.i
-data/src/solaris/hpi/native_threads/include/porting.h.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/BezierControlPoint.java.i
 data/src/share/classes/sun/security/ssl/ECDHCrypt.java.i
 data/test/java/net/Socket/SoTimeout.java.i
 data/src/share/classes/java/nio/channels/package.html.i
@@ -3713,179 +3595,171 @@ data/src/share/classes/sun/misc/FloatConsts.java.i
 data/src/share/demo/nio/zipfs/README.txt.i
 data/src/share/sample/jmx/jmx-scandir/nbproject/jdk.xml.i
 data/src/share/classes/sun/rmi/registry/resources/rmiregistry_zh_CN.properties.i
-data/src/share/lib/images/cursors/win32_MoveDrop32x32.gif.i
 data/src/share/classes/javax/naming/ldap/UnsolicitedNotificationEvent.java.i
-data/src/share/classes/javax/crypto/KeyAgreementSpi.java.i
-data/src/share/classes/com/sun/jdi/VirtualMachine.java.i
+data/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignedInfo.java.i
 data/src/solaris/native/sun/awt/robot_common.c.i
 data/src/share/native/sun/font/layout/ScriptAndLanguageTags.cpp.i
-data/test/java/security/cert/CertPathValidatorException/ReasonTest.java.i
-data/test/javax/management/namespace/SourceNamespaceTest.java.i
 data/src/share/demo/jvmti/hprof/hprof_blocks.c.i
 data/src/share/classes/com/sun/jmx/snmp/tasks/package.html.i
-data/src/solaris/classes/sun/nio/fs/UnixUserPrincipals.java.i
+data/test/javax/management/remote/mandatory/loading/MissingClassTest.java.i
 data/src/share/native/java/lang/fdlibm/src/s_sin.c.i
 data/src/share/classes/java/io/EOFException.java.i
 data/src/share/classes/com/sun/jmx/remote/util/ClassLogger.java.i
-data/test/java/security/AccessControlContext/NullCombinerEquals.java.i
-data/src/windows/native/sun/awt_common/awt_makecube.cpp.i
-data/test/com/sun/jndi/ldap/ReadTimeoutTest.java.i
+data/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Encoder.java.i
+data/test/java/nio/channels/SocketChannel/Shutdown.java.i
 data/test/java/lang/instrument/PremainClass/CreateFiles.java.i
-data/src/share/classes/sun/text/resources/FormatData_sr_Latn_ME.java.i
+data/src/solaris/native/sun/java2d/loops/vis_DrawLine.c.i
 data/test/sun/security/krb5/OptionPADataInKDCReq.java.i
 data/test/javax/crypto/CryptoPermission/LowercasePermCheck.java.i
-data/test/javax/swing/text/html/Test4783068.java.i
+data/src/share/classes/com/sun/servicetag/SunConnection.java.i
 data/test/java/beans/PropertyEditor/TestFontClassValue.java.i
 data/src/share/classes/com/sun/tools/hat/internal/parser/Reader.java.i
 data/test/java/security/cert/X509Certificate/emptyIssuerCert.i
-data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/Basics.java.i
-data/test/sun/security/provider/PolicyParser/ExtDirsB.java.i
+data/src/share/classes/sun/security/jgss/wrapper/Krb5Util.java.i
 data/test/java/lang/reflect/Proxy/returnTypes/Test.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM280.java.i
 data/src/share/classes/sun/text/resources/CollationData_mk.java.i
 data/src/share/classes/sun/security/pkcs/PKCS10Attribute.java.i
 data/src/share/classes/sun/nio/cs/UnicodeEncoder.java.i
+data/src/share/classes/sun/nio/cs/ext/Big5_HKSCS_2001.java.i
 data/src/share/classes/javax/print/event/PrintServiceAttributeListener.java.i
 data/test/java/beans/PropertyEditor/TestEnumClassValue.java.i
 data/src/share/classes/org/openjdk/jigsaw/FileHeader.java.i
 data/src/share/native/sun/font/layout/GlyphSubstitutionTables.cpp.i
-data/src/share/classes/sun/tools/javac/resources/javac_zh_CN.properties.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows.properties.i
 data/src/share/classes/com/sun/tools/jdi/FloatValueImpl.java.i
 data/src/share/classes/sun/tools/jstat/Token.java.i
+data/src/share/classes/java/net/CookieStore.java.i
 data/make/tools/src/build/tools/generatebreakiteratordata/GenerateBreakIteratorData.java.i
 data/src/share/classes/com/sun/jdi/request/WatchpointRequest.java.i
 data/src/share/classes/sun/awt/SunHints.java.i
-data/test/java/nio/Buffer/genCopyDirectMemory.sh.i
 data/src/solaris/doc/sun/man/man1/wsgen.1.i
 data/src/share/classes/sun/text/resources/FormatData_de_DE.java.i
+data/src/share/classes/java/awt/image/ImageConsumer.java.i
 data/test/sun/security/x509/Extensions/BCNull.java.i
 data/test/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java.i
-data/src/share/classes/sun/security/provider/DSAPrivateKey.java.i
+data/test/javax/script/Test4.java.i
 data/src/share/classes/com/sun/tools/hat/internal/util/VectorSorter.java.i
+data/src/share/classes/javax/management/namespace/MBeanServerConnectionWrapper.java.i
 data/test/java/beans/XMLEncoder/java_util_Collections_SingletonSet.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_pt_BR.properties.i
 data/test/java/nio/channels/AsynchronousSocketChannel/DieBeforeComplete.java.i
 data/test/java/util/Formatter/BasicLong.java.i
 data/src/share/native/sun/security/ec/impl/ecp_jac.c.i
-data/test/java/nio/channels/DatagramChannel/Receive.java.i
-data/test/sun/security/pkcs11/nss/lib/windows-i586/libplds4.dll.i
 data/src/share/classes/sun/security/krb5/KrbCred.java.i
-data/src/solaris/classes/sun/awt/XSettings.java.i
-data/src/windows/native/sun/windows/awt_Desktop.cpp.i
-data/src/solaris/classes/sun/nio/fs/UnixMountEntry.java.i
+data/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html.i
+data/src/solaris/classes/sun/java2d/xr/GrowableIntArray.java.i
 data/src/solaris/hpi/src/interrupt.c.i
 data/src/share/native/sun/java2d/loops/BlitBg.c.i
 data/src/share/native/java/util/zip/zlib-1.1.3/trees.h.i
 data/test/java/rmi/server/RMIClassLoader/spi/Foo.java.i
 data/test/java/io/DataInputStream/SkipBytes.java.i
 data/src/share/classes/sun/font/EAttribute.java.i
-data/src/share/classes/javax/crypto/JceSecurity.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/OwnerImpl.java.i
+data/test/java/lang/instrument/BootClassPath/AgentSupport.java.i
 data/make/mkdemo/jfc/Stylepad/Makefile.i
 data/src/share/classes/sun/io/CharToByteCp942.java.i
 data/src/share/classes/javax/management/PersistentMBean.java.i
-data/test/java/awt/font/Threads/FontThread.java.i
 data/make/tools/CharsetMapping/MS1253.map.i
 data/src/share/classes/javax/security/auth/callback/TextOutputCallback.java.i
 data/src/share/classes/com/sun/jndi/toolkit/ctx/StringHeadTail.java.i
-data/test/java/awt/Focus/TypeAhead/TestFocusFreeze.java.i
 data/test/javax/swing/text/html/HRuleView/Test5062055.java.i
 data/src/share/classes/java/lang/invoke/CallSite.java.i
 data/src/share/classes/sun/java2d/pipe/hw/ContextCapabilities.java.i
-data/test/com/sun/crypto/provider/Cipher/DES/Sealtest.java.i
+data/test/sun/misc/JarIndex/metaInfFilenames/jarB/b/B.java.i
 data/src/share/classes/com/sun/jndi/ldap/ManageReferralControl.java.i
-data/src/share/classes/org/openjdk/jigsaw/cli/Librarian.java.i
+data/src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpUsmKeyHandler.java.i
-data/test/java/rmi/server/RemoteObject/notExtending/NotExtending_Stub.java.i
+data/make/java/management/FILES_c.gmk.i
 data/test/java/util/ResourceBundle/RestrictedBundleTest.java.i
 data/make/java/zip/FILES_java.gmk.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifInternalFrameUI.java.i
+data/src/share/classes/com/sun/jmx/namespace/RoutingServerProxy.java.i
+data/src/share/classes/sun/font/TextSourceLabel.java.i
 data/make/tools/swing-beans/beaninfo/images/JTextAreaColor16.gif.i
-data/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java.i
-data/src/solaris/native/sun/nio/ch/SctpChannelImpl.c.i
+data/make/jpda/Makefile.i
+data/test/java/util/zip/ZipFile/GetDirEntry.java.i
 data/make/common/shared/Defs-control.gmk.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ar_QA.properties.i
-data/src/share/classes/org/relaxng/datatype/DatatypeException.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMDigestMethod.java.i
+data/make/java/zip/reorder-sparc.i
 data/src/share/classes/java/security/package.html.i
-data/test/sun/security/provider/PolicyParser/EncodeURL.java.i
 data/src/share/classes/javax/security/cert/X509Certificate.java.i
 data/src/share/classes/sun/awt/util/IdentityArrayList.java.i
 data/src/share/classes/java/awt/image/ComponentSampleModel.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/HelperNodeList.java.i
 data/src/share/classes/sun/text/resources/FormatData_is.java.i
+data/src/share/classes/com/sun/tools/jdi/CharTypeImpl.java.i
 data/src/share/demo/jfc/SampleTree/SampleData.java.i
 data/test/java/net/NetworkInterface/Test.java.i
-data/test/java/io/Reader/SkipNegative.java.i
 data/test/java/nio/Buffer/CopyDirectFloatMemory.java.i
-data/src/share/classes/org/openjdk/jigsaw/Resolution.java.i
+data/src/share/classes/sun/swing/AccumulativeRunnable.java.i
 data/make/com/sun/security/auth/module/FILES_export_solaris.gmk.i
 data/src/share/classes/sun/text/resources/FormatData_fr_CH.java.i
 data/src/share/classes/javax/xml/crypto/NoSuchMechanismException.java.i
 data/src/share/classes/com/sun/crypto/provider/CipherFeedback.java.i
 data/src/share/classes/sun/text/resources/CollationData_tr.java.i
-data/test/java/util/Collections/CheckedIdentityMap.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-i586/libnss3.so.d
 data/make/sun/jkernel/FILES_c_windows.gmk.i
-data/test/java/nio/Buffer/CopyDirectByteMemory.java.i
+data/src/share/classes/org/openjdk/jigsaw/RemoteRepository.java.i
 data/src/windows/classes/sun/nio/fs/WindowsFileSystem.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/Skip.java.i
-data/test/java/io/Serializable/available/Available.java.i
+data/src/share/classes/com/sun/jdi/ByteValue.java.i
+data/src/share/classes/javax/swing/tree/TreeSelectionModel.java.i
 data/src/share/classes/sun/nio/cs/ext/MS50220.java.i
 data/src/share/classes/java/util/concurrent/RecursiveAction.java.i
 data/src/solaris/classes/sun/awt/motif/MToolkit.java.i
-data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiOut.c.i
+data/src/share/classes/sun/net/www/protocol/http/ntlm/NTLMAuthenticationCallback.java.i
+data/src/solaris/native/sun/awt/awt_dnd_ds.c.i
+data/src/share/classes/com/sun/tools/jdi/CharValueImpl.java.i
 data/make/launchers/Makefile.i
-data/src/share/classes/sun/util/resources/CurrencyNames_ru_RU.properties.i
+data/src/share/demo/jvmti/hprof/debug_malloc.h.i
 data/src/share/classes/com/sun/tools/hat/internal/server/RootStackQuery.java.i
-data/src/windows/classes/sun/awt/windows/WCheckboxPeer.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties.i
 data/src/share/classes/java/rmi/server/RemoteStub.java.i
-data/src/solaris/doc/sun/man/man1/wsimport.1.i
-data/test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java.i
-data/src/solaris/native/java/io/UnixFileSystem_md.c.i
+data/test/java/nio/charset/coders/ResetISO2022JP.java.i
+data/test/java/nio/channels/AsynchronousSocketChannel/StressLoopback.java.i
+data/src/share/classes/javax/accessibility/AccessibleExtendedText.java.i
 data/src/share/classes/com/sun/jdi/NativeMethodException.java.i
 data/test/java/net/URL/RelativeURLTest.java.i
-data/src/solaris/classes/sun/awt/X11/XWM.java.i
 data/src/share/classes/java/sql/ResultSet.java.i
 data/src/windows/classes/sun/awt/windows/WPanelPeer.java.i
 data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java.i
-data/src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java.i
+data/test/sun/jvmstat/monitor/HostIdentifier/HostIdentifierCreate.java.i
 data/src/share/classes/java/util/zip/Inflater.java.i
 data/src/share/classes/javax/swing/text/rtf/AbstractFilter.java.i
-data/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java.i
-data/test/javax/management/remote/mandatory/connectorServer/ForwarderChainTest.java.i
+data/src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java.i
+data/test/java/security/cert/CertPathBuilder/GetInstance.java.i
 data/src/share/classes/java/security/cert/CertificateFactorySpi.java.i
 data/src/share/native/sun/java2d/Trace.c.i
 data/src/share/classes/java/lang/StackTraceElement.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/X509ExtendedTMEnabled.java.i
 data/src/share/classes/sun/io/ByteToCharCp1250.java.i
 data/test/sun/security/pkcs11/nss/lib/windows-i586/libplc4.dll.i
-data/src/windows/native/sun/windows/ShellFolder2.cpp.i
+data/src/share/classes/sun/net/httpserver/HttpExchangeImpl.java.i
 data/src/share/classes/java/beans/FeatureDescriptor.java.i
 data/src/share/classes/javax/sound/sampled/spi/AudioFileWriter.java.i
 data/test/java/rmi/activation/Activatable/inactiveGroup/rmid.security.policy.i
 data/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java.i
 data/src/share/classes/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java.i
-data/src/share/classes/com/sun/rowset/RowSetResourceBundle_pt_BR.properties.i
-data/test/java/util/concurrent/ThreadPoolExecutor/CoreThreadTimeOut.java.i
+data/src/windows/native/java/net/TwoStacksPlainSocketImpl.c.i
 data/src/share/javavm/export/jvmti.h.i
-data/test/javax/swing/Security/6657138/bug6657138.java.i
-data/test/sun/nio/cs/SurrogateTestEUCTW.plane7.surrogates.i
+data/make/modules/jdk.awt.ls.i
+data/make/tools/src/build/tools/javazic/GenDoc.java.i
 data/src/share/classes/com/sun/media/sound/WaveFloatFileWriter.java.i
 data/src/share/classes/sun/text/resources/FormatData_es_VE.java.i
-data/test/sun/tools/jps/jps-lm_Output1.awk.i
+data/src/share/classes/javax/management/DefaultLoaderRepository.java.i
 data/src/share/native/sun/security/ec/ecp_256.c.i
 data/make/netbeans/jdwpgen/nbproject/build-impl.xml.i
-data/test/javax/security/auth/x500/X500Principal/KeywordMap.java.i
-data/test/javax/security/auth/login/Configuration/GetInstance.configURI.i
+data/test/javax/swing/ToolTipManager/Test6657026.java.i
 data/src/share/lib/security/sunpkcs11-solaris.cfg.i
+data/src/share/classes/sun/security/x509/GeneralSubtrees.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/Utils.java.i
 data/test/sun/security/tools/keytool/i18n.html.i
 data/test/java/beans/Introspector/6976577/test/Accessor.java.i
-data/test/java/beans/XMLDecoder/spec/TestChar.java.i
 data/src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java.i
-data/test/javax/management/remote/mandatory/connection/BrokenConnectionTest.java.i
+data/src/share/classes/javax/naming/spi/package.html.i
 data/src/share/classes/com/sun/rowset/internal/BaseRow.java.i
+data/src/share/classes/sun/jkernel/BackgroundDownloader.java.i
 data/src/share/classes/org/openjdk/jigsaw/RepositoryCatalog.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibGroup.java.i
 data/test/javax/management/monitor/MBeanServerBuilderImpl.java.i
@@ -3894,27 +3768,25 @@ data/test/java/util/AbstractMap/AbstractMapClone.java.i
 data/make/mkdemo/jfc/Metalworks/Makefile.i
 data/src/share/hpi/export/bool.h.i
 data/src/share/classes/com/sun/tools/jdi/GenericListeningConnector.java.i
-data/test/java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.java.i
+data/src/share/classes/sun/tools/tree/NewArrayExpression.java.i
 data/make/com/sun/demo/jvmti/hprof/Makefile.i
 data/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html.i
-data/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java.i
+data/src/share/classes/com/sun/imageio/plugins/common/BitFile.java.i
 data/make/tools/CharsetMapping/IBM1112.c2b.i
 data/src/solaris/classes/sun/java2d/xr/XRDrawImage.java.i
-data/src/solaris/classes/sun/awt/X11/XContentWindow.java.i
 data/test/javax/management/mxbean/customtypes/CustomMXBean.java.i
 data/test/javax/swing/JComboBox/4743225/bug4743225.java.i
 data/test/sun/security/tools/policytool/i18n.html.i
 data/src/share/classes/sun/security/timestamp/TimestampToken.java.i
 data/make/javax/sound/jsoundhs/FILES.gmk.i
-data/src/share/native/sun/java2d/cmm/lcms/cmsps2.c.i
+data/test/java/io/FileInputStream/FinalizeShdCallClose.java.i
 data/test/java/rmi/activation/ActivateFailedException/activateFails/rmid.security.policy.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/ResolutionInfo.java.i
 data/src/share/classes/sun/io/CharToByteUnicodeBigUnmarked.java.i
 data/src/share/lib/images/cursors/motif_CopyNoDrop32x32.gif.i
 data/src/share/demo/scripting/jconsole-plugin/README.txt.i
 data/make/tools/reorder/tools/util-sparc.il.i
-data/test/java/security/Provider/Equals.java.i
-data/test/java/beans/PropertyEditor/TestByteType.java.i
+data/test/javax/swing/text/html/parser/Parser/6990651/bug6990651.java.i
 data/src/share/demo/nbproject/jfc/TransparentRuler/nbproject/netbeans-targets.xml.i
 data/src/share/classes/com/sun/imageio/plugins/common/InputStreamAdapter.java.i
 data/test/sun/security/pkcs11/nss/lib/linux-i586/libsoftokn3.so.i
@@ -3925,52 +3797,50 @@ data/make/tools/CharsetMapping/Big5.nr.i
 data/src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java.i
 data/test/java/lang/management/MemoryMXBean/MemoryManagementConcMarkSweepGC.sh.i
 data/src/windows/native/sun/windows/Devices.h.i
-data/src/share/classes/sun/text/resources/FormatData_es_PA.java.i
+data/test/java/util/Collection/HotPotatoes.java.i
 data/test/com/sun/nio/sctp/SctpChannel/Shutdown.java.i
 data/src/solaris/native/sun/awt/awt_wm.h.i
-data/src/share/native/sun/java2d/opengl/OGLBlitLoops.h.i
-data/src/share/classes/sun/text/normalizer/NormalizerBase.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/XMLX509CRL.java.i
+data/src/share/classes/java/awt/event/FocusAdapter.java.i
 data/test/javax/script/Test3.java.i
 data/make/tools/CharsetMapping/MS1256.map.i
 data/src/linux/doc/man/ja/idlj.1.i
 data/src/share/classes/java/nio/file/NotDirectoryException.java.i
-data/src/share/sample/scripting/scriptpad/nbproject/netbeans-targets.xml.i
+data/src/share/classes/java/sql/Savepoint.java.i
 data/test/java/beans/PropertyEditor/MemoryClassLoader.java.i
-data/test/java/io/Serializable/oldTests/CircularList.java.i
 data/src/share/classes/com/sun/accessibility/internal/resources/accessibility_it.properties.i
-data/test/sun/pisces/ThinLineTest.java.i
+data/src/share/back/invoker.h.i
 data/src/share/classes/java/net/InetSocketAddress.java.i
 data/test/sun/security/acl/PermissionImpl/PermissionEqualsHashCode.java.i
 data/test/com/sun/jdi/sde/SourceDebugExtensionTarg.java.i
+data/test/java/util/Vector/ComodifiedRemoveAllElements.java.i
 data/src/share/demo/jvmti/hprof/hprof_event.h.i
 data/src/share/classes/com/sun/jmx/namespace/serial/IdentityProcessor.java.i
-data/test/java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html.i
-data/test/sun/tools/jps/jps-Vvml_Output2.awk.i
 data/test/javax/security/auth/login/Configuration/GetInstance.bad.configURI.i
 data/src/share/classes/sun/tools/tree/IntExpression.java.i
+data/src/solaris/native/java/io/FileDescriptor_md.c.i
 data/test/demo/jvmti/hprof/UseAllBytecodes.java.i
 data/src/share/classes/sun/security/x509/CertificateSubjectName.java.i
-data/src/share/classes/javax/swing/ProgressMonitorInputStream.java.i
 data/src/share/native/java/lang/fdlibm/src/e_atanh.c.i
 data/src/solaris/classes/sun/awt/X11/XDropTargetProtocolListener.java.i
-data/test/java/net/Authenticator/B6870935.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/infcodes.h.i
 data/src/share/classes/java/nio/channels/NetworkChannel.java.i
-data/test/java/beans/XMLEncoder/java_sql_Timestamp.java.i
+data/src/share/classes/sun/nio/cs/IBM852.java.i
 data/src/share/native/java/lang/Compiler.c.i
 data/src/solaris/native/sun/font/X11TextRenderer.c.i
 data/src/share/classes/com/sun/imageio/spi/FileImageInputStreamSpi.java.i
 data/test/java/util/concurrent/atomic/Lazy.java.i
-data/src/share/classes/sun/swing/StringUIClientPropertyKey.java.i
+data/src/share/classes/javax/swing/text/FieldView.java.i
 data/src/share/classes/com/sun/security/auth/UnixPrincipal.java.i
-data/test/java/net/B6499348.java.i
-data/test/java/rmi/dgc/dgcImplInsulation/DGCImplInsulation_Stub.java.i
-data/test/java/util/Hashtable/IllegalLoadFactor.java.i
+data/src/share/classes/sun/invoke/util/ValueConversions.java.i
+data/test/java/lang/instrument/appendToClassLoaderSearch/Application.java.i
 data/src/share/demo/jvmti/hprof/hprof_util.c.i
-data/src/share/classes/java/util/logging/ConsoleHandler.java.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/beans/AbstractBean.java.i
+data/src/share/classes/java/awt/image/MemoryImageSource.java.i
 data/make/tools/CharsetMapping/IBM1026.nr.i
 data/src/share/classes/java/awt/font/TextHitInfo.java.i
-data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain0.txt.i
+data/src/share/classes/java/sql/RowId.java.i
+data/test/javax/swing/plaf/nimbus/ColorCustomizationTest.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/v2_0/PerfDataBufferPrologue.java.i
 data/test/javax/crypto/spec/IvParameterSpec/NullIV.java.i
 data/src/share/classes/sun/nio/ch/SelectorProviderImpl.java.i
@@ -3979,35 +3849,39 @@ data/src/share/classes/com/sun/media/sound/AutoClosingClip.java.i
 data/test/java/rmi/activation/Activatable/createPrivateActivable/ActivateMe.java.i
 data/src/share/classes/sun/awt/EventQueueDelegate.java.i
 data/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html.i
+data/src/share/classes/sun/net/RegisteredDomain.java.i
 data/src/share/classes/sun/nio/cs/ext/TIS_620.java.i
+data/src/share/classes/java/nio/channels/AsynchronousChannel.java.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirAgent.java.i
-data/test/java/util/logging/LoggingDeadlock.java.i
+data/test/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM922.java.i
 data/src/solaris/classes/sun/awt/X11/security-icon-bw32.png.i
-data/src/share/classes/java/awt/geom/LineIterator.java.i
+data/src/share/classes/sun/java2d/pipe/RegionSpanIterator.java.i
 data/test/javax/swing/MultiUIDefaults/4300666/bug4300666.java.i
 data/make/tools/src/build/tools/addjsum/AddJsum.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/v2_0/PerfDataBuffer.java.i
 data/src/linux/doc/man/ja/jvisualvm.1.i
 data/src/share/demo/zipfs.i
 data/test/java/net/ProxySelector/B6737819.java.i
 data/src/share/classes/javax/net/ssl/HandshakeCompletedEvent.java.i
-data/test/javax/swing/JFileChooser/4847375/bug4847375.java.i
+data/src/solaris/native/sun/java2d/loops/vis_FourByteAbgrPre.c.i
 data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties.i
 data/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32U8Func.c.i
+data/test/java/security/cert/CertificateFactory/openssl/open.i
+data/src/solaris/classes/sun/font/FcFontConfiguration.java.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirClient.java.i
 data/test/java/util/concurrent/LinkedBlockingQueue/LastElement.java.i
 data/src/share/classes/java/util/jar/Attributes.java.i
-data/test/java/util/ServiceLoader/FooProvider3.java.i
-data/test/javax/management/namespace/NamespaceControllerMBean.java.i
-data/src/windows/native/sun/windows/awt.h.i
+data/test/javax/swing/border/Test4243289.html.i
+data/src/share/classes/sun/nio/cs/ext/IBM1122.java.i
 data/src/share/classes/java/awt/image/SinglePixelPackedSampleModel.java.i
 data/test/com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java.i
-data/test/java/security/UnresolvedPermission/AccessorMethods.signer2.i
-data/src/share/classes/sun/nio/ch/OptionKey.java.i
+data/test/java/security/cert/CertPathBuilder/targetConstraints/anchor.cer.i
+data/test/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java.i
 data/src/windows/native/java/io/FileDescriptor_md.c.i
 data/src/share/classes/sun/security/pkcs/EncryptedPrivateKeyInfo.java.i
 data/src/share/classes/sun/java2d/pipe/PixelToShapeConverter.java.i
+data/test/java/nio/channels/TestThread.java.i
 data/src/share/classes/java/io/Writer.java.i
 data/test/sun/tools/jstat/jstatClassOutput1.sh.i
 data/src/solaris/native/sun/awt/awt_Menu.c.i
@@ -4019,93 +3893,92 @@ data/test/java/io/Serializable/parents/OriginalClass.java.i
 data/src/share/npt/npt.h.i
 data/src/share/classes/java/net/SocketImpl.java.i
 data/src/share/classes/sun/security/jgss/krb5/MessageToken.java.i
-data/test/javax/swing/JPopupMenu/6691503/bug6691503.java.i
 data/src/share/classes/sun/tools/jps/Arguments.java.i
 data/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReaderSpi.java.i
-data/test/com/sun/nio/sctp/SctpServerChannel/Util.java.i
-data/test/java/rmi/server/serverStackTrace/ServerStackTrace.java.i
+data/src/share/classes/java/nio/file/FileVisitor.java.i
 data/test/java/awt/font/TextLayout/KernCrash.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicTextPaneUI.java.i
+data/test/java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java.i
 data/src/share/classes/java/awt/font/TransformAttribute.java.i
-data/test/java/awt/image/MemoryLeakTest/MemoryLeakTest.java.i
+data/test/javax/management/MBeanServer/AttributeListTypeSafeTest.java.i
 data/src/share/classes/sun/io/CharToByteCp838.java.i
 data/src/share/classes/java/awt/GraphicsDevice.java.i
-data/test/javax/sound/midi/Gervill/SoftChannel/LocalControl.java.i
 data/src/share/classes/org/openjdk/jigsaw/SimpleLibrary.java.i
+data/src/share/demo/jfc/Font2DTest/resources/resource.data.i
 data/src/windows/classes/sun/print/services/javax.print.PrintServiceLookup.i
 data/test/javax/print/attribute/autosense/PrintAutoSenseData.java.i
-data/test/java/security/Security/signedfirst/exp.jar.i
+data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties.i
 data/src/share/classes/java/util/zip/ZipFile.java.i
-data/test/sun/security/ssl/sun/net/www/httpstest/ClosedChannelList.java.i
 data/src/share/classes/java/security/cert/PolicyNode.java.i
 data/src/share/classes/java/lang/IllegalAccessException.java.i
-data/src/share/classes/sun/management/snmp/util/SnmpListTableCache.java.i
+data/test/java/rmi/activation/rmidViaInheritedChannel/rmid.security.policy.i
+data/src/share/lib/images/cursors/win32_MoveNoDrop32x32.gif.i
 data/src/share/classes/com/sun/jmx/event/DaemonThreadFactory.java.i
 data/src/share/classes/sun/io/CharToByteEUC_KR.java.i
 data/test/java/io/Serializable/classDescHooks/ExternLoopback.java.i
-data/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java.i
+data/src/share/classes/org/openjdk/jigsaw/Trace.java.i
+data/src/solaris/native/java/net/SocketInputStream.c.i
+data/src/share/classes/javax/swing/colorchooser/SyntheticImage.java.i
 data/src/share/classes/sun/net/www/protocol/http/DigestAuthentication.java.i
-data/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSessionNulls.java.i
 data/make/tools/CharsetMapping/ISO_8859_7.map.i
 data/src/share/classes/javax/sql/rowset/BaseRowSet.java.i
 data/test/javax/imageio/plugins/shared/BitDepth.java.i
+data/test/java/awt/im/InputContext/InputContextTest.java.i
+data/src/share/classes/sun/tools/tree/AssignUnsignedShiftRightExpression.java.i
+data/src/share/classes/sun/net/ftp/FtpDirEntry.java.i
 data/src/share/classes/javax/swing/SwingWorker.java.i
 data/src/share/native/sun/java2d/opengl/OGLMaskBlit.h.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuMouseMotionListener.java.i
 data/test/java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot_Stub.java.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/CheckDeps.java.i
 data/src/share/classes/javax/print/attribute/standard/ColorSupported.java.i
-data/test/java/io/Serializable/NoClassDefFoundErrorTrap/NoClassDefFoundErrorTrap.java.i
+data/test/java/util/ResourceBundle/Test4314141B_fr.properties.i
+data/src/share/native/sun/font/layout/MorphTables.h.i
+data/make/tools/src/build/tools/javazic/Main.java.i
 data/src/share/native/sun/font/layout/LEGlyphStorage.h.i
-data/src/share/classes/java/util/logging/Formatter.java.i
+data/src/share/classes/sun/tools/tree/SuperExpression.java.i
 data/test/java/util/Locale/data/deflocale.exe.i
 data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemoryGCVerboseLevel.java.i
 data/src/share/classes/javax/swing/doc-files/SizeSequence-1.gif.i
-data/test/com/sun/jdi/PopAsynchronousTest.java.i
+data/test/java/beans/PropertyEditor/TestLongTypeNull.java.i
 data/test/com/sun/jdi/RedefineStep.sh.i
-data/src/solaris/classes/sun/nio/ch/PollArrayWrapper.java.i
+data/src/share/classes/com/sun/media/sound/SoftResamplerStreamer.java.i
+data/src/windows/native/java/io/FileSystem_md.c.i
 data/src/share/classes/java/security/spec/PKCS8EncodedKeySpec.java.i
 data/src/share/classes/com/sun/jdi/event/ThreadDeathEvent.java.i
 data/test/com/sun/jdi/VMDeathLastTest.java.i
-data/test/javax/management/loading/MLetCLR/MLetCommand.java.i
-data/test/java/beans/Introspector/Test6963811.java.i
+data/test/java/nio/Buffer/CopyDirectShortMemory.java.i
 data/test/javax/management/Introspector/ResourceInjectionTest.java.i
 data/make/tools/classanalyzer/build.xml.i
 data/make/netbeans/common/architectures/arch-amd64.properties.i
 data/src/share/classes/javax/swing/plaf/nimbus/ToolBarSeparatorPainter.java.i
-data/test/java/util/jar/JarFile/VerifySignedJar.java.i
-data/src/share/demo/java2d/J2DBench/resources/textdata/greek.ut8.txt.i
 data/src/share/classes/sun/management/MemoryManagerImpl.java.i
 data/src/share/classes/com/sun/servicetag/Util.java.i
 data/src/share/classes/java/awt/EventQueue.java.i
-data/src/share/classes/com/sun/beans/decoder/FieldElementHandler.java.i
-data/test/java/util/logging/AnonLoggerWeakRefLeak.sh.i
+data/test/java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html.i
 data/src/share/native/sun/java2d/loops/FourByteAbgr.h.i
 data/src/share/classes/sun/awt/geom/Curve.java.i
 data/src/share/classes/java/awt/event/KeyEvent.java.i
 data/make/tools/swing-beans/beaninfo/images/JInternalFrameMono32.gif.i
 data/src/solaris/classes/sun/font/X11TextRenderer.java.i
-data/test/tools/launcher/VerifyExceptions.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/InnerGlowEffect.java.i
+data/test/java/lang/management/MemoryMXBean/LowMemoryTest.java.i
 data/src/share/classes/javax/swing/filechooser/FileView.java.i
-data/test/java/net/URLClassLoader/jars/class_path_test_classpath.jar.i
 data/src/share/classes/javax/management/InstanceAlreadyExistsException.java.i
 data/src/share/classes/com/sun/tools/jdi/TargetVM.java.i
-data/src/share/classes/javax/swing/event/MenuDragMouseListener.java.i
+data/test/java/util/logging/AnonLoggerWeakRefLeak.sh.i
 data/src/share/classes/com/sun/net/httpserver/HttpsParameters.java.i
 data/src/share/classes/java/text/MessageFormat.java.i
-data/src/share/classes/java/sql/ParameterMetaData.java.i
+data/src/share/classes/com/sun/jdi/ShortType.java.i
 data/make/java/sun_nio/FILES_java.gmk.i
 data/src/share/classes/javax/sql/rowset/WebRowSet.java.i
 data/src/share/classes/com/sun/media/sound/SoftChorus.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM870.java.i
 data/src/share/classes/java/lang/reflect/AnnotatedElement.java.i
+data/src/share/classes/com/sun/media/sound/AudioSynthesizerPropertyInfo.java.i
 data/src/share/classes/sun/net/www/protocol/http/AuthCacheImpl.java.i
 data/test/java/io/RandomAccessFile/ReadLine.java.i
-data/src/solaris/classes/sun/nio/fs/UnixFileStoreAttributes.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java.i
 data/src/share/classes/sun/print/SunPageSelection.java.i
-data/test/sun/security/pkcs11/Provider/ConfigQuotedString.sh.i
 data/src/share/classes/com/sun/tools/extcheck/Main.java.i
 data/test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.java.i
 data/src/share/classes/javax/xml/crypto/NodeSetData.java.i
@@ -4118,25 +3991,26 @@ data/src/share/classes/javax/swing/DropMode.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthToggleButtonUI.java.i
 data/make/tools/swing-beans/beaninfo/images/JDesktopPaneMono16.gif.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/Platform.java.i
-data/test/sun/security/pkcs11/nss/lib/linux-amd64/libnssckbi.so.i
-data/test/java/beans/XMLEncoder/javax_swing_tree_DefaultTreeModel.java.i
+data/make/tools/swing-beans/beaninfo/images/JScrollBarColor32.gif.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU8U16Func.c.i
 data/test/sun/security/mscapi/KeytoolChangeAlias.sh.i
-data/src/share/classes/java/sql/Clob.java.i
+data/make/tools/CharsetMapping/IBM1144.c2b.i
 data/test/java/lang/module/_ModuleId.java.i
 data/src/share/classes/javax/print/event/PrintJobAttributeEvent.java.i
-data/src/share/classes/sun/nio/cs/UTF_32Coder.java.i
+data/test/javax/management/context/LocalizableTest.java.i
 data/src/share/classes/sun/dyn/BoundMethodHandle.java.i
 data/test/com/sun/crypto/provider/Cipher/AES/Test4513830.java.i
-data/test/java/rmi/activation/Activatable/checkAnnotations/CheckAnnotations.java.i
-data/test/sun/security/provider/PolicyFile/TrustedCert.keystore.i
+data/src/share/classes/java/io/DataInputStream.java.i
+data/src/share/classes/java/awt/doc-files/MultiScreen.gif.i
 data/test/java/io/FileDescriptor/Finalize.java.i
 data/test/java/rmi/activation/Activatable/nestedActivate/NestedActivate_Stub.java.i
-data/test/javax/management/descriptor/UnionTest.java.i
+data/src/share/classes/sun/net/TelnetProtocolException.java.i
+data/test/java/nio/file/Files/SkipSiblings.java.i
+data/src/share/classes/sun/reflect/ByteVectorFactory.java.i
 data/make/tools/CharsetMapping/IBM1140.c2b.i
-data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/JavaxTrustManagerFactoryImpl.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_sr_ME.properties.i
 data/test/java/beans/Introspector/Test6723447.java.i
 data/test/javax/management/remote/mandatory/notif/ServerNotifs.java.i
-data/test/java/net/URL/TestPort.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXPathTransform.java.i
 data/src/share/classes/sun/rmi/server/UnicastServerRef.java.i
 data/test/java/util/zip/GZIP/Accordion.java.i
@@ -4144,43 +4018,42 @@ data/src/share/classes/sun/tools/jconsole/MBeansTab.java.i
 data/src/share/classes/java/awt/image/ColorConvertOp.java.i
 data/src/share/classes/sun/io/ByteToCharCp775.java.i
 data/make/common/internal/ImportComponents.gmk.i
-data/src/share/classes/sun/nio/ch/PollSelectorProvider.java.i
 data/test/java/rmi/transport/dgcDeadLock/TestImpl.java.i
 data/src/share/classes/javax/net/ssl/X509TrustManager.java.i
-data/test/javax/management/Introspector/UnDescribedMBean.java.i
 data/make/sun/rmi/rmid/Makefile.i
 data/src/share/classes/sun/security/provider/KeyProtector.java.i
 data/src/solaris/demo/jigsaw/basic/src/org/hello/swing/Main.java.i
 data/src/share/classes/com/sun/security/auth/jaas-overview.html.i
 data/test/javax/swing/UIDefaults/6795356/TableTest.java.i
 data/src/share/classes/com/sun/tools/example/debug/tty/SourceMapper.java.i
-data/test/javax/xml/crypto/dsig/data/signature-x509-ski.xml.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageBlendTable.c.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/XMLSignature.java.i
 data/test/javax/management/remote/mandatory/notif/EmptyDomainNotificationTest.java.i
+data/src/windows/resource/version.rc.i
 data/test/javax/security/auth/PrivateCredentialPermission/Equals.java.i
-data/test/javax/swing/DataTransfer/6456844/bug6456844.java.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_CREATEMUTEX.java.i
 data/test/sun/security/ec/pkcs12/secp256r1server-secp384r1ca.p12.i
 data/test/sun/security/util/HostnameMatcher/cert3.crt.i
-data/src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template.i
+data/src/share/classes/sun/awt/image/BufImgVolatileSurfaceManager.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/ConvertingMethod.java.i
 data/src/share/classes/sun/print/PrinterGraphicsDevice.java.i
-data/test/javax/management/eventService/SharingThreadTest.java.i
 data/test/java/util/ResourceBundle/TestResource_de.java.i
+data/src/share/classes/java/util/logging/Formatter.java.i
 data/src/solaris/native/sun/awt/robot_common.h.i
 data/src/share/classes/javax/swing/text/FlowView.java.i
 data/test/java/beans/XMLEncoder/Bean.java.i
 data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipUtils.java.i
-data/src/windows/native/sun/java2d/windows/dxCapabilities.cpp.i
+data/src/solaris/bin/jexec.c.i
 data/src/share/classes/sun/util/resources/TimeZoneNames_fr.java.i
+data/src/share/classes/javax/management/loading/MLetParser.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ar_SY.properties.i
 data/src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java.i
 data/src/share/classes/com/sun/media/sound/InvalidFormatException.java.i
 data/src/share/classes/com/sun/media/sound/RIFFWriter.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/CipherValue.java.i
-data/test/java/beans/XMLEncoder/java_sql_Time.java.i
+data/src/share/classes/sun/text/normalizer/UCharacterIterator.java.i
 data/src/share/classes/sun/net/www/http/Hurryable.java.i
-data/src/windows/native/sun/jkernel/graphics/bullet.bmp.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifLabelUI.java.i
 data/src/share/classes/com/sun/tools/jdi/StringReferenceImpl.java.i
 data/make/tools/CharsetMapping/IBM862.map.i
 data/src/share/classes/sun/audio/AudioDataStream.java.i
@@ -4189,151 +4062,147 @@ data/src/share/classes/java/awt/event/HierarchyBoundsAdapter.java.i
 data/test/java/io/charStreams/CharGenerator.java.i
 data/test/com/sun/net/httpserver/bugs/HeadTest.java.i
 data/test/java/net/Authenticator/B4759514.java.i
-data/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp.i
 data/src/share/classes/com/sun/jdi/connect/TransportTimeoutException.java.i
-data/test/sun/nio/cs/TestStringCoding.java.i
 data/src/share/classes/java/security/spec/DSAParameterSpec.java.i
 data/src/share/sample/scripting/scriptpad/src/resources/mm.js.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriterResources.java.i
-data/src/share/classes/javax/swing/BoxLayout.java.i
+data/test/java/beans/VetoableChangeSupport/TestSynchronization.java.i
 data/test/sun/security/util/DerValue/Indefinite.java.i
 data/test/java/util/PluggableLocale/DateFormatProviderTest.sh.i
 data/test/sun/net/InetAddress/nameservice/deadlock/META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor.i
-data/src/share/classes/com/sun/jdi/doc-files/signature.html.i
+data/test/java/beans/PropertyEditor/TestBooleanTypeNull.java.i
 data/src/share/classes/sun/io/ByteToCharMacTurkish.java.i
 data/src/share/classes/sun/audio/AudioSecurityExceptionAction.java.i
 data/src/solaris/native/sun/java2d/loops/java2d_Mlib.h.i
-data/src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java.i
+data/make/java/nio/addNotices.sh.i
 data/test/java/io/Serializable/subclass/XObjectInputStream.java.i
-data/test/java/lang/String/ToLowerCase.java.i
+data/test/java/security/BasicPermission/PermClass.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/MalformedMemberNameException.java.i
-data/test/javax/swing/JOptionPane/6464022/bug6464022.java.i
 data/src/share/classes/org/openjdk/jigsaw/IdentityHashSet.java.i
 data/test/java/io/Serializable/stopCustomDeserialization/Write.java.i
-data/src/share/classes/com/sun/media/sound/AudioFloatConverter.java.i
+data/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c.i
 data/src/share/classes/sun/java2d/pisces/PiscesMath.java.i
 data/test/java/util/zip/ZipEntry/Constructor.java.i
+data/src/share/classes/javax/management/event/NotificationManager.java.i
 data/src/share/classes/javax/xml/crypto/dom/DOMCryptoContext.java.i
 data/src/windows/native/sun/java2d/d3d/D3DPipeline.h.i
 data/src/share/classes/sun/io/CharToByteMS949.java.i
-data/src/windows/native/sun/java2d/windows/GDIBlitLoops.cpp.i
 data/src/share/native/sun/security/ec/ecdecode.c.i
 data/src/share/classes/sun/awt/resources/awt_de.properties.i
-data/test/java/io/PipedInputStream/CloseAndAvailableRC.java.i
-data/src/solaris/classes/sun/awt/motif/MEmbeddedFrame.java.i
+data/src/share/classes/com/sun/tools/jdi/ConnectorImpl.java.i
 data/src/share/classes/javax/management/remote/rmi/RMIConnector.java.i
-data/src/share/classes/sun/management/MemoryUsageCompositeData.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadBlocksClose.java.i
 data/src/share/classes/java/awt/dnd/DnDEventMulticaster.java.i
-data/src/share/native/sun/awt/medialib/mlib_sys.c.i
-data/test/sun/tools/jstat/jstatGcNewOutput1.sh.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/RetrievalMethod.java.i
 data/src/share/classes/sun/security/validator/ValidatorException.java.i
 data/src/share/classes/javax/print/attribute/standard/JobPriority.java.i
 data/make/tools/auto_multi/Makefile.i
-data/src/share/demo/jfc/Metalworks/Metalworks.java.i
-data/test/sun/java2d/pisces/Renderer/Test7019861.java.i
+data/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh.i
+data/src/share/classes/java/nio/X-Buffer-bin.java.template.i
 data/src/share/classes/javax/imageio/spi/ImageTranscoderSpi.java.i
 data/test/javax/xml/crypto/dsig/ValidationTests.java.i
 data/test/java/net/URLConnection/6212146/test.jar.i
+data/src/share/classes/javax/xml/crypto/dsig/keyinfo/package.html.i
+data/test/sun/security/krb5/auto/DupEtypes.java.i
 data/test/java/security/Provider/GetInstance.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties.i
 data/test/java/beans/PropertyEditor/TestByteClass.java.i
-data/src/share/classes/java/util/AbstractCollection.java.i
+data/make/sun/awt/make.depend.i
 data/src/share/classes/sun/font/ExtendedTextLabel.java.i
 data/test/java/net/URLClassLoader/closetest/GetResourceAsStream.java.i
+data/src/share/classes/javax/swing/event/DocumentListener.java.i
 data/test/javax/swing/border/Test4252164.html.i
-data/src/share/classes/sun/util/resources/LocaleNames.properties.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMEnvelopedTransform.java.i
 data/test/com/sun/nio/sctp/SctpChannel/CommUp.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadataFormatResources.java.i
 data/make/tools/CharsetMapping/IBM1145.map.i
 data/src/share/classes/sun/font/TextRecord.java.i
-data/src/share/classes/sun/security/util/ByteArrayLexOrder.java.i
-data/src/solaris/classes/sun/awt/motif/X11CNS11643P1.java.i
+data/test/sun/java2d/cmm/ProfileOp/ReadWriteProfileTest.java.i
 data/src/solaris/classes/sun/awt/motif/MInputMethod.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/Algorithm.java.i
 data/src/share/classes/java/rmi/activation/ActivationDesc.java.i
 data/test/sun/security/smartcardio/TestControl.java.i
 data/src/share/classes/java/beans/beancontext/BeanContextSupport.java.i
 data/src/share/native/sun/java2d/cmm/lcms/cmscgats.c.i
-data/src/share/classes/sun/nio/cs/ext/IBM875.java.i
+data/src/share/classes/java/lang/doc-files/captheta.gif.i
+data/src/share/classes/sun/net/httpserver/StreamClosedException.java.i
 data/test/sun/net/www/protocol/jar/resource.jar.i
 data/test/java/util/PluggableLocale/TimeZoneNameProviderTest.sh.i
 data/src/share/classes/com/sun/jdi/ShortValue.java.i
-data/src/share/classes/sun/nio/ch/Secrets.java.i
+data/src/share/classes/sun/security/pkcs/PKCS10Attributes.java.i
 data/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp.i
-data/test/java/util/StringTokenizer/ResetPos.java.i
 data/src/share/classes/sun/security/krb5/internal/ktab/KeyTabConstants.java.i
 data/src/share/classes/java/beans/PropertyChangeListener.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM868.java.i
-data/src/share/classes/com/sun/tools/example/debug/gui/ThreadTreeTool.java.i
-data/src/share/native/java/lang/fdlibm/src/w_lgamma_r.c.i
+data/src/share/classes/sun/print/PSStreamPrintService.java.i
+data/test/java/nio/file/spi/TestProvider.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/HelpFormatter.java.i
-data/test/sun/security/pkcs11/nss/lib/linux-amd64/libfreebl3.so.i
 data/src/share/classes/javax/script/ScriptEngineFactory.java.i
 data/test/sun/security/provider/PolicyParser/TokenStore.java.i
 data/make/tools/src/build/tools/automulti/AutoMulti.java.i
 data/src/solaris/native/sun/java2d/loops/vis_IntRgb.c.i
-data/test/java/util/jar/Attributes/Name.java.i
+data/src/solaris/native/com/sun/security/auth/module/Unix.c.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_zh_CN.properties.i
-data/test/java/io/Serializable/packageAccess/C.java.i
 data/src/share/classes/sun/reflect/generics/reflectiveObjects/GenericArrayTypeImpl.java.i
 data/src/share/classes/java/io/StreamTokenizer.java.i
 data/src/share/classes/sun/io/ByteToCharCp278.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer11_WithComments.java.i
-data/src/share/native/java/lang/fdlibm/src/s_tan.c.i
-data/src/share/classes/java/nio/channels/spi/AsynchronousChannelProvider.java.i
+data/src/share/classes/com/sun/jndi/ldap/pool/ConnectionsWeakRef.java.i
+data/src/share/classes/sun/tools/jconsole/InternalDialog.java.i
+data/src/share/classes/com/sun/jdi/doc-files/signature.html.i
 data/src/share/native/java/lang/Double.c.i
 data/test/sun/security/tools/jarsigner/JarSigning.keystore.i
 data/src/share/classes/java/util/concurrent/ScheduledExecutorService.java.i
 data/src/share/classes/java/util/PropertyResourceBundle.java.i
 data/src/share/classes/java/awt/MenuContainer.java.i
-data/test/tools/pack200/TestExceptions.java.i
-data/test/sun/jvmstat/testlibrary/JavaProcess.java.i
+data/src/share/classes/com/sun/rowset/internal/XmlErrorHandler.java.i
 data/src/share/classes/com/sun/jndi/cosnaming/ExceptionMapper.java.i
 data/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Solaris_Decoder.java.i
 data/make/tools/CharsetMapping/IBM838.c2b.i
 data/src/share/classes/java/awt/image/RescaleOp.java.i
 data/src/share/classes/com/sun/media/sound/services/javax.sound.midi.spi.MidiDeviceProvider.i
-data/src/share/classes/com/sun/script/util/BindingsBase.java.i
+data/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java.i
 data/test/java/rmi/reliability/benchmark/bench/Harness.java.i
-data/src/share/classes/java/io/CharArrayReader.java.i
+data/test/java/util/Formatter/genBasic.sh.i
 data/test/java/lang/management/MemoryMXBean/LowMemoryTest2.sh.i
 data/test/java/nio/file/Path/temporary_files.sh.i
 data/src/share/classes/java/io/BufferedInputStream.java.i
 data/src/share/demo/jvmti/hprof/debug_malloc.c.i
-data/test/sun/security/provider/certpath/ReverseBuilder/prjMcrl.i
 data/src/share/classes/com/sun/imageio/spi/RAFImageInputStreamSpi.java.i
-data/src/windows/classes/sun/security/mscapi/Key.java.i
+data/src/windows/native/sun/font/fontpath.c.i
+data/src/share/classes/javax/sound/sampled/FloatControl.java.i
 data/src/solaris/classes/sun/awt/X11/security-icon-interim32.png.i
 data/src/share/classes/javax/swing/plaf/FontUIResource.java.i
 data/test/java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java.i
 data/test/java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.java.i
 data/test/org/openjdk/jigsaw/package.sh.i
 data/test/java/nio/Buffer/BasicInt.java.i
-data/src/share/classes/java/awt/TextArea.java.i
+data/test/java/io/Serializable/InvalidClassException/noargctor/Serialize/SubclassAcrossPackage.java.i
 data/test/java/lang/module/module-info-reader.sh.i
 data/make/tools/reorder/tests/Null.java.i
+data/src/share/classes/sun/util/resources/LocaleNamesBundle.java.i
 data/src/share/classes/java/beans/BeanInfo.java.i
 data/test/java/beans/XMLDecoder/spec/TestObject.java.i
 data/test/sun/nio/cs/TestStringCodingUTF8.java.i
-data/src/share/classes/javax/swing/plaf/nimbus/package.html.i
+data/test/sun/security/pkcs11/KeyStore/loader.jar.i
 data/src/share/classes/com/sun/jndi/ldap/ClientId.java.i
 data/src/share/classes/java/net/SocketOptions.java.i
-data/test/java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html.i
 data/src/share/classes/sun/security/internal/spec/TlsMasterSecretParameterSpec.java.i
 data/src/share/classes/javax/naming/NoPermissionException.java.i
+data/src/share/classes/sun/applet/AppletIllegalArgumentException.java.i
 data/make/sun/javazic/javatz/java_us_ids.txt.i
 data/src/share/classes/sun/net/www/HeaderParser.java.i
-data/src/share/classes/com/sun/media/sound/SoftSynthesizer.java.i
+data/src/share/classes/sun/tools/jstat/OptionOutputFormatter.java.i
+data/src/share/classes/com/sun/security/auth/SolarisPrincipal.java.i
 data/test/java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot_Skel.java.i
 data/src/share/classes/com/sun/jdi/connect/Transport.java.i
 data/test/java/util/StringTokenizer/Supplementary.java.i
-data/test/javax/management/remote/mandatory/URLTest.java.i
-data/src/share/classes/sun/io/ByteToCharCp1025.java.i
-data/test/com/sun/security/auth/login/ConfigFile/Override.good.config.i
+data/src/share/classes/sun/management/HotspotMemoryMBean.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMAclItem.java.i
 data/src/share/classes/com/sun/jdi/MonitorInfo.java.i
 data/test/java/io/Serializable/misplacedArrayClassDesc/MisplacedArrayClassDesc.java.i
-data/src/share/native/java/lang/fdlibm/src/s_floor.c.i
-data/src/share/classes/sun/tools/tree/WhileStatement.java.i
+data/test/javax/sound/midi/Gervill/SoftChannel/AllSoundOff.java.i
+data/src/share/classes/com/sun/media/sound/AudioFloatConverter.java.i
 data/test/javax/imageio/plugins/png/ShortHistogramTest.java.i
 data/make/tools/src/build/tools/jdwpgen/ObjectTypeNode.java.i
 data/src/share/classes/sun/tools/jconsole/Formatter.java.i
@@ -4343,23 +4212,21 @@ data/test/java/rmi/activation/Activatable/nestedActivate/group.security.policy.i
 data/src/share/classes/sun/net/www/http/HttpCaptureInputStream.java.i
 data/src/share/classes/com/sun/script/util/BindingsImpl.java.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/CompressConstants.java.i
-data/test/java/lang/management/MemoryMXBean/LowMemoryTestSerialGC.sh.i
 data/src/share/classes/java/lang/InternalError.java.i
 data/src/share/classes/org/openjdk/jigsaw/ContextSet.java.i
 data/src/share/classes/com/sun/jmx/namespace/DomainInterceptor.java.i
-data/test/sun/net/www/protocol/http/6550798/TestCache.java.i
 data/test/sun/net/www/protocol/mailto/HandlerParse.java.i
 data/make/tools/swing-beans/beaninfo/images/JViewportMono32.gif.i
 data/src/share/classes/sun/net/spi/nameservice/dns/META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor.i
 data/test/java/lang/annotation/Missing/Missing.java.i
-data/test/sun/util/resources/Locale/Bug6275682.java.i
+data/test/java/nio/channels/Channels/ShortWrite.java.i
 data/src/share/classes/sun/security/provider/certpath/AdjacencyList.java.i
-data/src/share/classes/java/awt/font/StyledParagraph.java.i
+data/src/share/classes/com/sun/jdi/request/MethodExitRequest.java.i
 data/test/java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java.i
 data/make/tools/swing-beans/beaninfo/images/JFormattedTextFieldMono32.gif.i
 data/src/share/classes/java/awt/geom/Line2D.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmRTInputArgsTableMetaImpl.java.i
-data/src/share/classes/java/awt/peer/TextAreaPeer.java.i
+data/src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodDescriptor.java.i
 data/src/share/classes/javax/swing/event/MenuDragMouseEvent.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/Coding.java.i
 data/src/share/classes/javax/imageio/spi/ServiceRegistry.java.i
@@ -4367,52 +4234,49 @@ data/test/java/util/concurrent/SynchronousQueue/Fairness.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-i586/libfreebl3.so.d
 data/src/share/bin/emessages.h.i
 data/test/java/util/Hashtable/SelfRef.java.i
-data/test/java/lang/Thread/MainThreadTest.java.i
-data/src/windows/transport/shmem/shmem_md.h.i
+data/test/java/util/regex/BMPTestCases.txt.i
+data/test/com/sun/servicetag/newer-registry-version.xml.i
 data/src/share/classes/java/beans/VetoableChangeListener.java.i
-data/make/mkdemo/applets/GraphicsTest/Makefile.i
-data/test/sun/tools/native2ascii/test2.i
-data/src/share/native/sun/security/ec/ec.h.i
+data/src/share/classes/java/util/concurrent/locks/ReadWriteLock.java.i
+data/src/share/classes/sun/java2d/pipe/PixelToParallelogramConverter.java.i
+data/src/share/classes/sun/io/CharToByteCp870.java.i
 data/src/share/classes/sun/io/ByteToCharMS874.java.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerArrayIntInt.java.i
-data/make/mkdemo/jvmti/versionCheck/Makefile.i
-data/src/share/classes/java/sql/SQLTransactionRollbackException.java.i
+data/src/share/classes/javax/print/attribute/standard/PrintQuality.java.i
+data/src/share/classes/javax/swing/plaf/ComponentInputMapUIResource.java.i
 data/src/share/native/sun/misc/MessageUtils.c.i
 data/src/solaris/native/sun/awt/awt_wm.c.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/DoubleBean.java.i
 data/src/share/classes/com/sun/beans/decoder/DocumentHandler.java.i
 data/src/share/classes/sun/nio/ch/MembershipKeyImpl.java.i
-data/src/share/classes/sun/reflect/ClassFileConstants.java.i
-data/test/java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java.i
-data/src/share/classes/com/sun/media/sound/RIFFReader.java.i
+data/make/mkdemo/applets/NervousText/Makefile.i
 data/test/javax/management/openmbean/BadConstraintTest.java.i
-data/test/java/io/Serializable/arraySuidConflict/Foo.java.i
+data/test/javax/management/mxbean/ExceptionDiagnosisTest.java.i
 data/test/java/net/SocketPermission/B4414825.java.i
-data/test/sun/rmi/rmic/minimizeWrapperInstances/P.java.i
 data/src/share/demo/management/index.html.i
 data/src/share/classes/sun/util/locale/InternalLocaleBuilder.java.i
-data/src/share/classes/javax/print/PrintException.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_es.properties.i
 data/test/java/rmi/server/RemoteObject/notExtending/NotExtending_Skel.java.i
-data/make/java/nio/mxbean/Makefile.i
-data/test/sun/security/provider/PolicyFile/SelfWildcard.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_ko.properties.i
+data/src/share/sample/jmx/jmx-scandir/docfiles/scandir-result.jpg.i
+data/src/share/classes/java/awt/MenuBar.java.i
+data/test/java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java.i
 data/src/share/demo/jvmti/hprof/hprof_md.h.i
 data/src/share/classes/sun/awt/image/ShortInterleavedRaster.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_ru_RU.properties.i
 data/src/share/classes/java/awt/Robot.java.i
-data/test/sun/security/pkcs11/SecureRandom/Basic.java.i
 data/test/java/beans/Introspector/Test5063390.java.i
+data/src/share/classes/java/lang/ClassLoader.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties.i
 data/test/java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext_Stub.java.i
 data/src/share/classes/sun/tools/java/BinaryCode.java.i
 data/test/java/util/PluggableLocale/CollatorProviderTest.java.i
 data/src/share/classes/javax/accessibility/AccessibleContext.java.i
-data/test/sun/tools/jstat/jstatGcCauseOutput1.sh.i
-data/test/java/util/PluggableLocale/ClasspathTest.java.i
 data/src/share/classes/sun/tools/jconsole/inspector/XObject.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/util/KeyValuePair.java.i
-data/test/javax/crypto/SecretKeyFactory/P1SecretKeyFactory.java.i
+data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKPainter.java.i
+data/test/javax/management/modelmbean/DescriptorSupportSerialTest.java.i
 data/test/javax/swing/JFileChooser/7036025/bug7036025.java.i
 data/src/share/native/sun/awt/libpng/pngset.c.i
-data/src/share/classes/sun/swing/text/TextComponentPrintable.java.i
 data/src/share/classes/sun/text/normalizer/ICUData.java.i
 data/src/share/classes/javax/swing/text/html/parser/TagElement.java.i
 data/src/share/classes/java/awt/image/BufferedImageOp.java.i
@@ -4420,9 +4284,11 @@ data/src/share/classes/sun/nio/cs/ext/IBM1098.java.i
 data/make/java/zip/mapfile-vers.i
 data/src/share/classes/sun/nio/cs/SingleByteEncoder.java.i
 data/src/share/classes/javax/sound/sampled/AudioFormat.java.i
+data/test/java/net/URLConnection/DisconnectAfterEOF.java.i
 data/make/jpda/transport/Makefile.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_ES.properties.i
-data/src/solaris/native/common/gdefs_md.h.i
+data/test/com/sun/security/auth/login/ConfigFile/Override.good.config.i
+data/src/solaris/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java.i
 data/src/share/demo/nbproject/management/FullThreadDump/nbproject/jdk.xml.i
 data/make/tools/swing-beans/beaninfo/images/JSeparatorColor32.gif.i
 data/src/share/demo/jvmti/hprof/hprof_util.h.i
@@ -4430,19 +4296,20 @@ data/src/share/classes/javax/smartcardio/CardNotPresentException.java.i
 data/test/java/util/jar/JarFile/Signed.jar.i
 data/src/share/classes/java/lang/ref/PhantomReference.java.i
 data/src/solaris/hpi/include/hpi_init.h.i
-data/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh.i
 data/src/share/classes/sun/rmi/log/LogInputStream.java.i
 data/test/javax/swing/JFileChooser/6798062/bug6798062.html.i
 data/src/share/classes/sun/util/resources/CurrencyNames_sr_BA.properties.i
 data/src/share/classes/javax/print/attribute/standard/PrinterStateReasons.java.i
 data/src/windows/back/exec_md.c.i
 data/test/javax/swing/JTable/6768387/bug6768387.java.i
-data/test/java/util/EnumSet/RetainAll.java.i
+data/make/tools/CharsetMapping/ISO_8859_15.map.i
 data/test/java/lang/ClassLoader/getdotresource.sh.i
+data/make/common/Defs-modules.gmk.i
 data/test/sun/util/logging/SourceClassName.java.i
 data/src/share/classes/javax/print/event/PrintJobAdapter.java.i
-data/src/share/classes/java/awt/datatransfer/Clipboard.java.i
-data/src/share/native/sun/font/layout/GlyphPosnLookupProc.cpp.i
+data/src/share/classes/sun/tools/javac/resources/javac_ja.properties.i
+data/src/share/classes/java/awt/dnd/DragSourceAdapter.java.i
+data/test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java.i
 data/src/share/classes/java/lang/System.java.i
 data/test/java/rmi/transport/checkFQDN/CheckFQDNClient.java.i
 data/test/java/beans/XMLEncoder/Test4631471.java.i
@@ -4453,19 +4320,18 @@ data/src/share/classes/sun/util/resources/LocaleNames_en_MT.properties.i
 data/src/share/classes/javax/swing/plaf/metal/MetalSeparatorUI.java.i
 data/test/java/nio/channels/DatagramChannel/MulticastSendReceiveTests.java.i
 data/make/netbeans/common/architectures/arch-x86.properties.i
+data/src/share/classes/java/io/package.html.i
 data/src/share/classes/java/util/logging/LoggingPermission.java.i
-data/src/share/native/sun/java2d/cmm/lcms/cmssm.c.i
 data/src/share/classes/sun/tools/jconsole/VMPanel.java.i
 data/test/java/rmi/server/RMIClassLoader/delegateToContextLoader/security.policy.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManager.java.i
 data/test/java/awt/print/PrinterJob/PageFormatChange.java.i
 data/test/javax/security/auth/login/LoginContext/ConfigConstructorNoPerm.policy.i
+data/src/share/classes/sun/rmi/server/ActivationGroupInit.java.i
 data/make/tools/CharsetMapping/IBM937.nr.i
 data/test/java/awt/print/Dialog/DialogOrient.java.i
-data/test/javax/management/ObjectName/ComparatorTest.java.i
-data/test/javax/sound/midi/Gervill/ModelStandardTransform/TransformConcave.java.i
+data/test/sun/tools/jrunscript/repl.out.i
 data/src/share/classes/java/io/Closeable.java.i
-data/test/javax/swing/RepaintManager/7013453/bug7013453.java.i
 data/test/java/security/AccessController/PreserveCombiner.java.i
 data/src/share/classes/sun/io/ByteToCharCp1257.java.i
 data/src/share/classes/sun/reflect/MagicAccessorImpl.java.i
@@ -4474,20 +4340,19 @@ data/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java.i
 data/test/java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html.i
 data/src/share/classes/javax/sql/rowset/serial/SerialBlob.java.i
 data/test/java/security/cert/CertPathBuilder/provider.policy.i
-data/test/java/rmi/server/clientStackTrace/ClientStackTrace.java.i
+data/src/share/classes/java/security/AllPermission.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapCommunity.java.i
-data/make/sun/awt/make.depend.i
+data/test/javax/sound/midi/Gervill/SoftChannel/LocalControl.java.i
 data/test/java/io/StreamTokenizer/ReadAhead.java.i
-data/test/java/lang/management/MemoryMXBean/MemoryUtil.java.i
-data/src/share/classes/sun/nio/cs/ext/MS1255.java.i
+data/test/java/util/zip/ReadLoc.java.i
+data/test/javax/management/remote/mandatory/util/MapNullValuesTest.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/icons/TreeOpen.gif.i
+data/src/share/classes/sun/util/resources/CurrencyNames_sv.properties.i
 data/src/share/classes/sun/text/resources/FormatData_zh_TW.java.i
-data/test/java/net/Socket/SetSoLinger.java.i
 data/test/tools/pack200/Utils.java.i
 data/test/java/beans/XMLEncoder/java_util_Collections_SingletonMap.java.i
-data/src/windows/classes/sun/java2d/windows/WinVolatileSurfaceManager.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_en_US.properties.i
-data/src/share/demo/jvmti/heapViewer/README.txt.i
+data/test/java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java.i
+data/src/share/classes/javax/swing/plaf/metal/icons/ocean/floppy.gif.i
 data/test/java/beans/PropertyEditor/TestStringClassValue.java.i
 data/test/sun/management/HotspotClassLoadingMBean/GetClassLoadingTime.java.i
 data/src/share/classes/javax/management/InQueryExp.java.i
@@ -4498,71 +4363,77 @@ data/test/java/awt/List/ListFlickers/ListFlickers.java.i
 data/src/share/back/standardHandlers.c.i
 data/src/share/classes/java/math/RoundingMode.java.i
 data/src/share/classes/sun/beans/editors/NumberEditor.java.i
-data/src/share/classes/sun/security/x509/SubjectAlternativeNameExtension.java.i
-data/src/share/classes/sun/security/krb5/internal/KrbApErrException.java.i
+data/src/solaris/native/sun/nio/ch/IOUtil.c.i
+data/src/solaris/native/sun/awt/awt_Scrollbar.c.i
 data/test/java/rmi/reliability/juicer/AppleUserImpl.java.i
 data/src/share/classes/java/net/CacheRequest.java.i
 data/src/share/classes/javax/imageio/spi/DigraphNode.java.i
-data/test/com/sun/jdi/PrivateTransportTest.sh.i
+data/src/share/native/java/net/net_util.c.i
 data/src/share/native/sun/awt/debug/debug_util.h.i
+data/src/share/classes/sun/security/krb5/internal/ccache/Credentials.java.i
+data/src/linux/doc/man/ja/jrunscript.1.i
 data/src/share/classes/java/io/ObjectStreamField.java.i
 data/src/share/classes/sun/net/httpserver/SelectorCache.java.i
+data/src/share/classes/javax/swing/text/html/HTMLFrameHyperlinkEvent.java.i
 data/test/java/util/PluggableLocale/providersrc/FooDateFormat.java.i
 data/src/share/demo/java2d/J2DBench/src/j2dbench/report/J2DAnalyzer.java.i
-data/src/share/classes/javax/swing/plaf/nimbus/StateImpl.template.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifIconFactory.java.i
 data/make/java/zip/reorder-sparcv9.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties.i
 data/src/share/classes/javax/management/namespace/JMXNamespaces.java.i
 data/src/share/classes/com/sun/servicetag/resources/product_registration.xsd.i
-data/src/share/classes/sun/io/CharToByteISO2022KR.java.i
-data/src/share/classes/sun/security/krb5/internal/TGSRep.java.i
+data/test/java/math/BigDecimal/ScaleByPowerOfTenTests.java.i
+data/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java.i
 data/src/share/classes/sun/tools/jconsole/inspector/XTextFieldEditor.java.i
 data/src/share/classes/java/beans/PropertyEditor.java.i
-data/test/java/io/Serializable/replaceWithNull/ReplaceWithNull.java.i
 data/src/windows/native/sun/java2d/windows/Win32OffScreenSurfaceData.cpp.i
-data/test/java/io/File/GetXSpace.sh.i
+data/test/sun/tools/jrunscript/jrunscript-cpTest.sh.i
 data/src/share/classes/javax/swing/plaf/nimbus/ImageScalingHelper.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIIcon.java.i
 data/src/linux/doc/man/ja/jsadebugd.1.i
-data/src/solaris/classes/sun/print/services/javax.print.PrintServiceLookup.i
+data/src/share/classes/javax/swing/plaf/metal/sounds/OptionPaneWarning.wav.i
+data/test/java/beans/XMLEncoder/Test4880633.java.i
+data/src/share/classes/sun/nio/cs/ext/IBM285.java.i
 data/src/share/classes/java/awt/LayoutManager.java.i
 data/test/java/io/Serializable/InvalidClassException/noargctor/Test.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/SessionListener.java.i
 data/src/share/classes/java/lang/invoke/InvokeDynamic.java.i
-data/test/com/sun/jdi/MethodCalls.java.i
+data/src/share/classes/java/util/IllegalFormatPrecisionException.java.i
+data/src/share/native/sun/awt/image/cvutils/img_ordclruns.h.i
 data/src/share/classes/sun/tools/java/Parser.java.i
 data/test/javax/xml/crypto/dsig/data/certs/ca.crt.i
 data/src/share/classes/javax/swing/text/rtf/charsets/ansi.txt.i
-data/src/share/classes/sun/text/resources/FormatData_de.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/StorageResolverSpi.java.i
 data/test/java/util/Formatter/BasicByte.java.i
 data/test/java/awt/Component/UpdatingBootTime/UpdatingBootTime.java.i
 data/src/share/demo/applets/CardTest/example1.html.i
 data/test/java/util/zip/StoredCRC.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIInsets.java.i
+data/test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup_Stub.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/StandardMBeanIntrospector.java.i
-data/test/java/rmi/server/RMIClassLoader/loadProxyClasses/NonpublicInterface.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ProxyTunnelServer.java.i
-data/test/javax/swing/border/Test4243289.java.i
 data/src/solaris/hpi/native_threads/src/threads_md.c.i
-data/src/share/classes/sun/util/resources/LocaleNames_lt.properties.i
+data/src/windows/classes/sun/nio/ch/FileKey.java.i
 data/src/solaris/native/sun/nio/ch/EPoll.c.i
 data/src/share/classes/sun/management/ManagementFactoryHelper.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ipstore.i
 data/src/share/classes/com/sun/jmx/mbeanserver/StandardMBeanSupport.java.i
 data/src/share/classes/sun/nio/ch/Reflect.java.i
 data/src/share/classes/java/awt/image/ColorModel.java.i
-data/test/java/rmi/activation/ActivationSystem/unregisterGroup/rmid.security.policy.i
+data/src/share/classes/sun/security/krb5/internal/crypto/KeyUsage.java.i
+data/src/share/classes/sun/security/x509/SerialNumber.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/NoArgumentOptionSpec.java.i
 data/src/share/classes/com/sun/security/sasl/digest/FactoryImpl.java.i
-data/test/java/io/Serializable/proxy/replace/Test.java.i
 data/src/share/classes/java/sql/SQLClientInfoException.java.i
 data/test/java/util/ResourceBundle/Bug6572242.java.i
-data/test/com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.sh.i
+data/test/sun/security/provider/certpath/ReverseBuilder/mgrM2prjM.i
 data/test/java/security/cert/X509Certificate/certextkeyusage.i
-data/test/sun/security/jgss/DefaultGssConfig.java.i
+data/src/share/classes/javax/swing/border/MatteBorder.java.i
+data/test/sun/security/pkcs11/Secmod/keystore.jks.i
 data/make/java/java/FILES_c.gmk.i
 data/src/share/classes/com/sun/net/httpserver/HttpServer.java.i
 data/src/share/classes/sun/font/GlyphList.java.i
 data/make/netbeans/jarzip/nbproject/project.xml.i
+data/src/share/classes/sun/reflect/UnsafeByteFieldAccessorImpl.java.i
 data/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/group.security.policy.i
 data/src/share/classes/sun/tools/asm/Label.java.i
 data/src/share/classes/java/security/KeyFactory.java.i
@@ -4570,61 +4441,56 @@ data/src/share/classes/com/sun/jmx/snmp/BerDecoder.java.i
 data/test/sun/security/krb5/auto/LifeTimeInSeconds.java.i
 data/src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h.i
 data/src/share/demo/jvmti/mtrace/Mtrace.java.i
-data/test/java/util/logging/LoggingDeadlock4.java.i
 data/src/share/demo/jvmti/hprof/manual.html.i
 data/test/java/net/NetworkInterface/IndexTest.java.i
 data/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java.i
 data/test/jprt.config.i
-data/src/share/classes/com/sun/java/util/jar/pack/CodingMethod.java.i
-data/src/share/native/common/check_format.c.i
+data/test/sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh.i
+data/src/share/classes/javax/swing/JRadioButtonMenuItem.java.i
 data/src/share/classes/javax/crypto/NoSuchPaddingException.java.i
 data/src/share/classes/sun/print/ProxyGraphics2D.java.i
 data/test/sun/net/InetAddress/nameservice/deadlock/ThrowingNameService.java.i
 data/make/tools/CharsetMapping/MacCroatian.map.i
-data/test/javax/security/auth/SubjectDomainCombiner/Regression.policy.i
-data/src/share/classes/java/security/cert/CertificateException.java.i
-data/src/share/native/sun/font/layout/ShapingTypeData.cpp.i
-data/src/share/classes/com/sun/script/javascript/JSAdapter.java.i
+data/src/share/native/sun/awt/giflib/dgif_lib.c.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315ExclWithComments.java.i
+data/src/share/classes/sun/text/resources/FormatData_ca.java.i
+data/test/com/sun/security/auth/module/LdapLoginModule/CheckOptions.java.i
 data/src/share/classes/sun/tools/tree/ShiftRightExpression.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmRTBootClassPathTableMeta.java.i
-data/src/share/classes/java/lang/annotation/AnnotationTypeMismatchException.java.i
+data/src/share/classes/com/sun/jmx/snmp/internal/SnmpModelLcd.java.i
 data/test/java/rmi/activation/Activatable/inactiveGroup/InactiveGroup.java.i
-data/src/share/classes/javax/crypto/ExemptionMechanismSpi.java.i
+data/test/java/beans/XMLEncoder/6777487/TestEnumMap.java.i
 data/src/windows/native/sun/windows/awt_PrintDialog.h.i
 data/src/share/classes/com/sun/security/jgss/InquireType.java.i
-data/make/modules/jdk.tools.ls.i
+data/test/sun/rmi/rmic/minimizeWrapperInstances/P.java.i
 data/src/share/classes/com/sun/tools/jdi/FieldImpl.java.i
-data/src/share/classes/sun/reflect/AccessorGenerator.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_fr_LU.properties.i
 data/src/share/classes/javax/management/NotificationInfo.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsSplitPaneDivider.java.i
-data/src/share/classes/sun/awt/image/VolatileSurfaceManager.java.i
-data/test/java/rmi/activation/Activatable/restartLatecomer/RestartLatecomer_Stub.java.i
-data/test/sun/security/util/Resources/Format.config.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/PaintModel.java.i
+data/test/java/net/InetAddress/HashSpread.java.i
+data/src/share/classes/java/lang/invoke/MutableCallSite.java.i
 data/test/java/util/ResourceBundle/Control/MissingResourceCauseTest.sh.i
 data/src/share/classes/java/awt/doc-files/GridBagLayout-1.gif.i
 data/src/share/classes/java/lang/management/MemoryNotificationInfo.java.i
 data/test/com/sun/net/httpserver/bugs/B6361557.java.i
 data/src/windows/classes/com/sun/tools/jdi/SharedMemoryListeningConnector.java.i
 data/src/solaris/native/sun/awt/utility/rect.h.i
-data/test/javax/print/DialogMargins.java.i
+data/src/share/classes/com/sun/java/util/jar/pack/Code.java.i
 data/src/share/classes/java/util/logging/Logger.java.i
 data/test/javax/swing/JSlider/6848475/bug6848475.java.i
-data/src/share/classes/javax/swing/plaf/UIResource.java.i
+data/src/share/classes/com/sun/tools/example/debug/gui/ThreadTreeTool.java.i
 data/src/solaris/doc/sun/man/man1/jhat.1.i
 data/src/share/classes/java/awt/peer/FramePeer.java.i
-data/test/java/nio/file/spi/TestProvider.java.i
+data/test/sun/security/smartcardio/Utils.java.i
 data/test/java/rmi/server/RemoteObject/toStub/ToStub_Stub.java.i
-data/test/sun/management/jmxremote/bootstrap/jmxremote_test05_ko.access.in.i
 data/src/share/classes/sun/reflect/FieldAccessor.java.i
-data/test/java/beans/XMLDecoder/spec/TestNull.java.i
 data/src/share/classes/sun/java2d/SurfaceManagerFactory.java.i
 data/src/solaris/native/sun/nio/ch/EPollArrayWrapper.c.i
-data/test/com/sun/security/auth/login/ConfigFile/InconsistentError.java.i
-data/src/solaris/native/sun/java2d/loops/vis_IntBgr.c.i
 data/src/share/classes/sun/security/krb5/internal/crypto/NullEType.java.i
+data/src/share/classes/com/sun/rowset/WebRowSetImpl.java.i
 data/test/java/lang/management/ThreadMXBean/SynchronizationStatistics.java.i
 data/test/java/beans/XMLDecoder/Test6338070.java.i
-data/src/share/classes/sun/text/normalizer/IntTrie.java.i
 data/test/javax/swing/JFileChooser/6524424/bug6524424.html.i
 data/src/share/classes/javax/management/MBeanInfo.java.i
 data/make/com/sun/security/auth/module/FILES_c_unix.gmk.i
@@ -4640,138 +4506,130 @@ data/src/solaris/native/java/net/net_util_md.c.i
 data/src/share/classes/javax/crypto/spec/DESedeKeySpec.java.i
 data/src/share/classes/java/net/IDN.java.i
 data/src/share/classes/sun/font/SunLayoutEngine.java.i
-data/test/java/rmi/activation/Activatable/downloadParameterClass/FooReceiverImpl_Stub.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBuffer/SubbufferLongLongBoolean.java.i
 data/src/share/classes/sun/security/provider/certpath/BasicChecker.java.i
+data/src/share/classes/sun/awt/image/ImageWatched.java.i
 data/make/sun/javazic/tzdata/factory.i
 data/src/share/classes/java/security/DigestException.java.i
 data/src/share/classes/java/awt/peer/TextFieldPeer.java.i
 data/src/share/sample/scripting/scriptpad/src/resources/gui.js.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSessionContextImpl/Timeout.java.i
 data/src/share/classes/javax/management/NotificationListener.java.i
 data/src/share/classes/sun/io/CharToByteMacDingbat.java.i
+data/src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BC.c.i
 data/test/java/lang/reflect/Proxy/Boxing.java.i
-data/test/sun/misc/Version/Version.java.i
+data/src/linux/doc/man/servertool.1.i
+data/test/sun/security/x509/AVA/EmailAddressEncoding.java.i
 data/src/solaris/hpi/native_threads/include/mutex_md.h.i
 data/make/tools/src/build/tools/generatecharacter/PropList.java.i
 data/test/sun/tools/jrunscript/dash-e.out.i
-data/src/share/classes/sun/net/www/content/audio/basic.java.i
 data/src/solaris/classes/sun/awt/X11/XEmbedHelper.java.i
 data/src/share/classes/sun/io/CharToByteBig5.java.i
 data/test/java/lang/instrument/appendToClassLoaderSearch/CircularityErrorTest.sh.i
-data/src/share/demo/nbproject/management/VerboseGC/nbproject/netbeans-targets.xml.i
-data/test/javax/sound/midi/Gervill/SoftLanczosResampler/Interpolate.java.i
+data/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java.i
 data/src/share/classes/java/util/concurrent/CyclicBarrier.java.i
 data/src/share/classes/sun/security/krb5/internal/rcache/AuthTime.java.i
 data/src/share/native/sun/security/ec/impl/mplogic.c.i
 data/src/share/classes/sun/print/resources/tumble.png.i
 data/src/share/classes/java/awt/Button.java.i
+data/src/share/classes/sun/management/GcInfoBuilder.java.i
 data/src/solaris/classes/sun/java2d/xr/XRUtils.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsRootPaneUI.java.i
-data/src/share/classes/sun/java2d/pisces/Dasher.java.i
-data/test/sun/nio/cs/OLD/IBM937_OLD.java.d
-data/test/javax/sound/midi/Gervill/SoftTuning/Load4.java.i
-data/test/java/lang/instrument/GetObjectSizeTest.java.i
-data/src/share/classes/sun/tools/java/ClassNotFound.java.i
-data/src/share/classes/sun/print/PSStreamPrintJob.java.i
-data/src/windows/native/java/lang/ProcessImpl_md.c.i
+data/src/share/classes/com/sun/tools/example/debug/gui/SourceTreeTool.java.i
+data/test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/Compress.java.i
+data/test/javax/imageio/CachePremissionsTest/rw.policy.i
+data/src/share/classes/sun/tools/java/ClassNotFound.java.i
+data/test/ProblemList.txt.i
 data/src/share/classes/java/net/Inet6Address.java.i
 data/src/share/classes/com/sun/pept/presentation/TargetFinder.java.i
 data/src/solaris/classes/sun/awt/motif/MTextAreaPeer.java.i
-data/src/share/classes/javax/naming/PartialResultException.java.i
+data/src/share/native/sun/awt/image/jpeg/jdmainct.c.i
 data/src/share/classes/javax/swing/text/rtf/RTFEditorKit.java.i
 data/src/share/classes/javax/naming/directory/AttributeModificationException.java.i
 data/test/javax/xml/crypto/dsig/data/certs/balor.crt.i
 data/test/javax/print/applet/applet1/Applet1PrintServiceLookup.java.i
 data/test/com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.java.i
-data/src/share/demo/applets/Clock/example1.html.i
+data/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html.i
 data/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c.i
+data/make/tools/classanalyzer/Makefile.i
 data/make/java/management/Makefile.i
 data/test/sun/management/HotspotRuntimeMBean/GetTotalSafepointTime.java.i
-data/src/share/native/sun/java2d/loops/FourByteAbgr.c.i
+data/src/share/classes/com/sun/crypto/provider/DESCrypt.java.i
 data/src/share/classes/com/sun/net/httpserver/HttpsConfigurator.java.i
 data/src/share/classes/sun/java2d/HeadlessGraphicsEnvironment.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/Session.java.i
-data/src/share/back/log_messages.c.i
+data/test/java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.java.i
+data/src/share/native/sun/java2d/cmm/lcms/LCMS.c.i
 data/src/share/classes/sun/security/jgss/spnego/SpNegoCredElement.java.i
-data/src/solaris/native/sun/awt/awt_mgrsel.h.i
-data/src/share/classes/javax/print/attribute/standard/DialogTypeSelection.java.i
-data/test/java/net/URLConnection/RedirectLimit.java.i
+data/test/javax/management/monitor/CounterMonitorDeadlockTest.java.i
+data/make/docs/Makefile.i
+data/src/share/classes/sun/util/resources/CurrencyNames_en_CA.properties.i
 data/src/share/classes/javax/naming/CompositeName.java.i
 data/test/java/io/File/isDirectory/Applet.java.i
-data/src/share/classes/javax/swing/table/TableCellRenderer.java.i
+data/src/linux/doc/man/ja/serialver.1.i
+data/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java.i
 data/test/java/beans/PropertyEditor/6380849/SecondBean.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifCheckBoxUI.java.i
 data/test/java/lang/instrument/NullRedefineClassesTests.java.i
-data/src/share/classes/javax/imageio/stream/package.html.i
-data/test/java/beans/PropertyEditor/Test6397609.java.i
+data/test/java/beans/Introspector/Test6422403.java.i
+data/test/sun/security/provider/PolicyParser/p002.policy.i
 data/test/java/util/AbstractMap/Equals.java.i
 data/src/share/classes/com/sun/media/sound/SF2Modulator.java.i
 data/make/tools/manifest.mf.i
 data/test/sun/net/www/http/HttpClient/B6726695.java.i
+data/src/share/native/sun/java2d/opengl/OGLContext.c.i
 data/test/javax/sound/midi/Gervill/AudioFloatConverter/GetFormat.java.i
-data/test/java/util/AbstractCollection/ToString.java.i
 data/src/share/classes/javax/swing/JCheckBox.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/Makefile.i
+data/src/share/classes/java/nio/channels/spi/AsynchronousChannelProvider.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMEnterprise.java.i
-data/src/share/classes/java/rmi/activation/package.html.i
+data/src/share/classes/sun/text/normalizer/IntTrie.java.i
 data/src/share/classes/com/sun/java/browser/dom/DOMUnsupportedException.java.i
 data/src/share/classes/java/lang/management/PlatformLoggingMXBean.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiFileChooserUI.java.i
-data/src/share/classes/java/util/logging/Filter.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libsoftokn3.chk.i
-data/test/com/sun/security/auth/module/LdapLoginModule/CheckConfigs.policy.i
+data/src/share/classes/sun/util/resources/CurrencyNames_bg_BG.properties.i
 data/src/share/classes/javax/swing/JDialog.java.i
 data/src/share/classes/javax/swing/text/html/parser/AttributeList.java.i
-data/src/share/native/java/net/net_util.h.i
+data/src/share/classes/sun/management/snmp/jvminstr/JvmRuntimeImpl.java.i
 data/src/share/classes/javax/print/attribute/standard/JobImpressions.java.i
 data/src/solaris/native/sun/awt/awt_Cursor.c.i
 data/src/solaris/classes/sun/awt/X11/XMouseDragGestureRecognizer.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ar_AE.properties.i
-data/src/share/classes/com/sun/pept/ept/EPTFactory.java.i
-data/test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOn_Multiple.java.i
+data/src/share/classes/com/sun/jdi/request/ThreadStartRequest.java.i
 data/test/tools/pack200/pack200-verifier/src/sun/tools/pack/verify/JarFileCompare.java.i
-data/src/share/native/sun/font/layout/NonContextualGlyphSubstProc.h.i
-data/src/share/native/java/util/zip/ZipEntry.c.i
+data/test/sun/security/krb5/TimeInCCache.java.i
 data/src/share/back/FieldImpl.c.i
-data/test/com/sun/jdi/JdbArgTest.sh.i
-data/test/sun/nio/cs/OLD/DBCS_IBM_EBCDIC_Decoder.java.i
-data/test/java/lang/instrument/BufferClassLoader.java.i
+data/test/java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java.i
+data/test/java/net/Socks/SocksServer.java.i
 data/src/share/classes/com/sun/pept/protocol/MessageDispatcher.java.i
 data/src/share/classes/sun/security/util/AuthResources_it.java.i
 data/test/javax/management/loading/LibraryLoader/UseNativeLib0.html.i
+data/src/share/classes/sun/io/CharToByteCp857.java.i
 data/src/share/classes/com/sun/accessibility/internal/resources/accessibility_fr.properties.i
 data/src/share/classes/sun/tools/tree/FinallyStatement.java.i
 data/src/linux/doc/man/ja/extcheck.1.i
 data/src/share/classes/sun/net/ProgressMonitor.java.i
-data/test/java/util/ResourceBundle/Test4300693RB.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/COMMarkerSegment.java.i
-data/test/java/nio/channels/SocketChannel/Shutdown.java.i
+data/test/java/lang/reflect/Generics/TestBadSignatures.java.i
 data/src/share/classes/sun/java2d/pipe/GlyphListPipe.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_vi.properties.i
-data/src/solaris/classes/sun/awt/UNIXToolkit.java.i
-data/test/javax/management/proxy/ProxyObjectMethodsTest.java.i
+data/src/share/classes/java/io/StreamCorruptedException.java.i
+data/src/solaris/native/sun/security/jgss/wrapper/NativeFunc.h.i
 data/make/com/sun/nio/sctp/FILES_java.gmk.i
-data/test/tools/pack200/Pack200Simple.sh.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32U16Func.c.i
+data/src/share/classes/java/awt/doc-files/modal-example3.gif.i
 data/src/share/classes/com/sun/beans/decoder/LongElementHandler.java.i
 data/test/com/sun/net/httpserver/testkeys.i
 data/make/java/rmi/Makefile.i
-data/test/java/io/Serializable/enum/missingConstant/Read.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsSeparatorUI.java.i
 data/test/java/nio/channels/Pipe/NonBlocking.java.i
 data/src/share/classes/javax/sound/sampled/EnumControl.java.i
 data/test/java/util/Locale/bug6312358.java.i
 data/test/java/nio/channels/SocketChannel/Basic.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitter.java.i
 data/src/windows/classes/sun/nio/fs/WindowsLinkSupport.java.i
-data/test/java/rmi/activation/Activatable/elucidateNoSuchMethod/rmid.security.policy.i
+data/test/java/util/PluggableLocale/fooprovider.jar.i
 data/src/share/classes/sun/text/normalizer/RuleCharacterIterator.java.i
-data/test/javax/management/Introspector/NotCompliantCauseTest.java.i
+data/src/share/classes/sun/text/resources/CollationData_ko.java.i
 data/src/share/classes/com/sun/accessibility/internal/resources/accessibility_zh_TW.properties.i
 data/src/share/native/sun/java2d/opengl/OGLTextRenderer.c.i
-data/test/com/sun/security/auth/module/LdapLoginModule/CheckOptions.java.i
 data/test/org/openjdk/jigsaw/cli/ModuleFormatHeaderHashTest.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBuffer/Unload.java.i
 data/test/java/nio/file/Files/probeContentType/Basic.java.i
 data/src/share/classes/javax/management/NotificationBroadcasterSupport.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ja.properties.i
@@ -4781,19 +4639,17 @@ data/src/share/classes/java/awt/doc-files/LinearGradientPaint.png.i
 data/src/share/classes/java/awt/FontFormatException.java.i
 data/src/share/classes/javax/imageio/ImageTypeSpecifier.java.i
 data/test/java/net/URLClassLoader/closetest/test2/com/foo/Resource2.i
-data/test/java/lang/Float/BitwiseConversion.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU16U16Func.c.i
-data/test/javax/sound/midi/Gervill/RiffReaderWriter/GetSize.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiDesktopIconUI.java.i
 data/src/solaris/classes/sun/nio/fs/GnomeFileTypeDetector.java.i
 data/test/java/io/File/CompareTo.java.i
 data/src/share/classes/sun/security/x509/NetscapeCertTypeExtension.java.i
 data/src/share/classes/sun/awt/image/BufferedImageGraphicsConfig.java.i
 data/src/share/classes/sun/security/jgss/GSSToken.java.i
-data/src/share/classes/sun/net/www/protocol/jar/URLJarFile.java.i
-data/test/java/util/Collections/SetFromMap.java.i
+data/src/share/classes/com/sun/script/util/BindingsBase.java.i
+data/test/javax/swing/plaf/nimbus/Test6741426.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/AclEntryImpl.java.i
-data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipCoder.java.i
+data/src/share/back/ClassObjectReferenceImpl.h.i
 data/make/tools/winver/src/StdAfx.cpp.i
 data/test/javax/swing/text/WrappedPlainView/6857057/StubLeafElement.java.i
 data/test/java/awt/font/LineBreakMeasurer/FRCTest.java.i
@@ -4801,64 +4657,58 @@ data/test/java/rmi/activation/checkusage/CheckUsage.java.i
 data/make/javax/sound/jsoundalsa/mapfile-vers.i
 data/src/share/classes/org/relaxng/datatype/DatatypeBuilder.java.i
 data/src/linux/doc/man/rmid.1.i
+data/src/share/classes/com/sun/jndi/ldap/SimpleClientId.java.i
 data/src/share/classes/javax/sql/RowSetWriter.java.i
-data/src/windows/native/sun/windows/awt_Unicode.h.i
+data/test/java/awt/im/4959409/bug4959409.java.i
+data/test/java/nio/file/Files/PrintFileTree.java.i
 data/src/share/classes/javax/swing/text/DefaultEditorKit.java.i
-data/make/tools/swing-beans/beaninfo/images/JLabelMono32.gif.i
+data/test/sun/security/tools/keytool/AltProviderPath.sh.i
+data/test/tools/pack200/pack200-verifier/src/sun/tools/pack/verify/ClassCompare.java.i
 data/src/share/classes/sun/net/www/MessageHeader.java.i
-data/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java.i
 data/src/share/demo/nbproject/jfc/TransparentRuler/build.xml.i
 data/test/com/sun/jdi/Exit0.java.i
-data/src/share/classes/javax/swing/text/TabableView.java.i
+data/test/java/nio/charset/coders/Surrogates.java.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManagerMXBean.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_ar.properties.i
-data/test/javax/sound/midi/Gervill/SoftProvider/GetDevice.java.i
-data/test/com/sun/jdi/InstTarg.java.i
-data/src/share/classes/sun/print/CustomMediaSizeName.java.i
+data/src/solaris/native/sun/awt/medialib/vis_32.il.i
+data/src/share/classes/sun/rmi/transport/Endpoint.java.i
 data/test/sun/misc/URLClassPath/testclasses.jar.i
 data/src/share/bin/splashscreen.h.i
 data/src/windows/native/sun/java2d/windows/ddrawUtils.cpp.i
 data/test/javax/swing/JTable/6937798/bug6937798.java.i
-data/src/share/classes/javax/swing/plaf/multi/MultiTreeUI.java.i
-data/src/share/classes/sun/dyn/CallSiteImpl.java.i
+data/src/share/classes/sun/security/util/Debug.java.i
+data/src/share/demo/nbproject/scripting/jconsole-plugin/build.xml.i
 data/src/share/classes/sun/reflect/generics/tree/LongSignature.java.i
 data/test/javax/security/auth/login/LoginContext/ModuleSubject.config.i
 data/src/share/classes/sun/jvmstat/monitor/MonitoredVm.java.i
 data/test/java/beans/Statement/Test4653179.java.i
-data/test/javax/script/Test7.java.i
 data/test/java/io/OutputStreamWriter/WriteAfterClose.java.i
+data/test/javax/print/attribute/SupportedPrintableAreas.java.i
 data/src/windows/native/sun/windows/Hashtable.cpp.i
-data/src/solaris/native/sun/java2d/x11/X11SurfaceData.h.i
+data/src/share/classes/sun/io/ByteToCharCp1256.java.i
 data/src/share/classes/java/security/cert/CRLReason.java.i
-data/test/sun/security/pkcs11/Secmod/TrustAnchors.java.i
+data/make/common/Mapfile-vers.gmk.i
 data/src/share/classes/sun/security/acl/GroupImpl.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaBoolean.java.i
 data/src/share/native/sun/font/layout/ScriptAndLanguage.h.i
-data/src/share/native/sun/awt/image/cvutils/img_input8.h.i
-data/src/share/classes/java/security/PublicKey.java.i
+data/src/share/classes/sun/util/resources/CalendarData_in_ID.properties.i
 data/make/tools/CharsetMapping/MS932.c2b.i
 data/src/solaris/bin/sparc/jvm.cfg.i
 data/src/share/classes/sun/text/resources/FormatData.java.i
-data/src/windows/native/sun/windows/awt_TrayIcon.cpp.i
 data/src/share/classes/sun/misc/JavaSecurityAccess.java.i
-data/src/share/classes/sun/text/CollatorUtilities.java.i
-data/test/sun/security/pkcs11/tls/TestKeyMaterial.java.i
 data/src/windows/native/sun/nio/ch/IOUtil.c.i
-data/test/java/security/cert/CertPathValidator/indirectCRL/generate.sh.i
+data/src/share/native/sun/java2d/loops/ImageData.h.i
 data/src/windows/classes/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java.i
 data/src/share/classes/javax/swing/text/html/FormSubmitEvent.java.i
-data/test/sun/security/pkcs11/KeyStore/BasicData/pkcs11_softtoken/objstore_info.i
 data/src/share/demo/jfc/Font2DTest/resources/TextResources.properties.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509KeyManager/NullCases.java.i
-data/src/share/classes/sun/rmi/transport/proxy/HttpSendOutputStream.java.i
+data/src/share/classes/sun/misc/RegexpTarget.java.i
 data/test/com/sun/jdi/AcceptTimeout.java.i
 data/src/share/classes/javax/swing/text/View.java.i
-data/src/share/classes/com/sun/jmx/snmp/defaults/SnmpProperties.java.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpPduFactoryBER.java.i
 data/test/com/sun/management/GarbageCollectorMXBean/GarbageCollectionNotificationContentTest.java.i
 data/src/share/native/sun/security/ec/impl/ecl_gf.c.i
-data/test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh.i
-data/test/java/net/URL/jar_urls.i
-data/test/java/rmi/activation/Activatable/nestedActivate/rmid.security.policy.i
+data/src/share/classes/com/sun/tools/hat/internal/model/StackTrace.java.i
+data/src/solaris/classes/sun/awt/X11/XScrollPanePeer.java.i
 data/src/share/classes/java/lang/management/MemoryMXBean.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/MarkSupported.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM933.java.i
@@ -4867,7 +4717,6 @@ data/src/share/classes/sun/launcher/resources/launcher_de.properties.i
 data/test/demo/jvmti/minst/MinstTest.java.i
 data/src/share/classes/sun/nio/ch/AsynchronousFileChannelImpl.java.i
 data/make/javax/sound/jsoundhs/mapfile-vers.i
-data/src/share/classes/sun/security/util/BitArray.java.i
 data/src/share/classes/java/util/PropertyPermission.java.i
 data/src/windows/classes/sun/awt/windows/WFramePeer.java.i
 data/src/share/classes/com/sun/security/sasl/util/PolicyUtils.java.i
@@ -4876,25 +4725,25 @@ data/make/tools/CharsetMapping/IBM922.map.i
 data/src/share/classes/sun/text/resources/FormatData_tr.java.i
 data/test/java/io/LineNumberInputStream/SkipEOL.java.i
 data/src/share/classes/sun/nio/cs/ext/MacTurkish.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConv.h.i
+data/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxIcon.java.i
 data/src/share/classes/sun/text/resources/FormatData_nl_NL.java.i
 data/src/share/classes/sun/dyn/WrapperInstance.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/NotifySupport.java.i
 data/src/share/classes/javax/swing/JSplitPane.java.i
-data/test/sun/java2d/cmm/ColorConvertOp/ColorSpaceCvtCrashTest/ColorSpaceCvtCrashTest.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/package.html.i
 data/test/java/rmi/transport/readTimeout/TestImpl_Stub.java.i
 data/src/solaris/native/sun/java2d/loops/mlib_v_ImageConstLogic.h.i
-data/src/share/classes/javax/swing/plaf/metal/icons/ocean/info.png.i
+data/src/share/classes/sun/text/resources/FormatData_sr_Latn_ME.java.i
 data/test/java/io/Serializable/maskSyntheticModifier/run.sh.i
 data/src/share/classes/sun/io/CharToByteEUC_JP_Solaris.java.i
+data/test/java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java.i
 data/src/share/classes/javax/management/MBean.java.i
 data/src/share/classes/sun/print/PSStreamPrinterFactory.java.i
 data/test/java/rmi/activation/Activatable/forceLogSnapshot/group.security.policy.i
 data/src/share/classes/java/sql/SQLTransientConnectionException.java.i
 data/test/com/sun/nio/sctp/SctpMultiChannel/Util.java.i
 data/src/solaris/classes/sun/font/NativeStrike.java.i
-data/test/java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak.java.i
+data/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultRecord.java.i
 data/src/share/classes/java/math/BitSieve.java.i
 data/test/java/lang/Class/forName/classes/semicolon.class.i
@@ -4903,102 +4752,106 @@ data/src/share/demo/nbproject/scripting/jconsole-plugin/nbproject/file-targets.x
 data/test/tools/launcher/UnicodeTest.java.i
 data/src/share/classes/sun/io/ByteToCharCp1047.java.i
 data/test/javax/sound/midi/Gervill/SoftChannel/ResetAllControllers.java.i
-data/test/java/io/Serializable/InvalidClassException/noargctor/Serialize/SubclassAcrossPackage.java.i
+data/src/share/classes/java/awt/TextArea.java.i
+data/src/share/native/common/jni_util.h.i
 data/test/java/lang/instrument/RetransformApp.java.i
 data/src/share/back/StringReferenceImpl.h.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_it.properties.i
-data/src/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java.i
+data/test/java/awt/dnd/ImageDecoratedDnDNegative/MyCursor.java.i
 data/test/java/net/URLClassLoader/B5077773.sh.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/package.html.i
 data/src/share/classes/sun/nio/cs/IBM866.java.i
-data/src/share/classes/java/lang/UnsatisfiedLinkError.java.i
-data/src/share/classes/java/awt/geom/CubicCurve2D.java.i
+data/test/java/net/Authenticator/BasicTest.java.i
+data/test/java/util/regex/RegExTest.java.i
 data/src/share/classes/sun/print/resources/serviceui_de.properties.i
 data/src/share/classes/sun/io/ByteToCharCp280.java.i
 data/test/sun/net/idn/TestStringPrep.java.i
 data/src/share/classes/java/text/DateFormatSymbols.java.i
 data/src/share/classes/sun/security/krb5/internal/APRep.java.i
-data/test/sun/util/resources/TimeZone/Bug4640234.java.i
 data/src/share/classes/sun/security/acl/PermissionImpl.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpUnknownAccContrModelException.java.i
-data/src/solaris/classes/sun/nio/ch/FileDispatcherImpl.java.i
+data/test/java/util/Collections/BinarySearchNullComparator.java.i
+data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManager.java.i
 data/src/share/classes/javax/security/auth/login/CredentialNotFoundException.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java.i
-data/test/java/rmi/activation/ActivateFailedException/activateFails/ActivateFails.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/X509SKIResolver.java.i
+data/src/share/classes/java/awt/im/spi/InputMethod.java.i
+data/test/sun/security/pkcs11/sslecc/JSSEClient.java.i
 data/src/share/classes/javax/swing/JSpinner.java.i
 data/src/solaris/native/sun/awt/awt_MToolkit.c.i
 data/src/share/classes/sun/management/counter/Units.java.i
 data/src/share/classes/java/net/Proxy.java.i
 data/src/share/classes/com/sun/tools/hat/resources/oqlhelp.html.i
-data/test/sun/security/pkcs11/KeyStore/loader.jar.i
+data/src/share/classes/javax/swing/plaf/nimbus/package.html.i
 data/src/share/classes/sun/tools/tree/EqualExpression.java.i
-data/src/share/native/sun/font/layout/MirroredCharData.cpp.i
+data/src/share/classes/com/sun/jdi/request/MonitorContendedEnterRequest.java.i
 data/src/share/back/VirtualMachineImpl.c.i
 data/src/share/classes/sun/font/CompositeGlyphMapper.java.i
+data/make/com/sun/java/browser/net/Makefile.i
 data/test/java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.java.i
 data/src/share/classes/org/openjdk/jigsaw/ConfigurationException.java.i
 data/test/java/rmi/dgc/retryDirtyCalls/RetryDirtyCalls_Stub.java.i
-data/src/share/classes/sun/security/x509/RFC822Name.java.i
-data/src/share/native/sun/awt/libpng/pngtrans.c.i
+data/src/share/classes/javax/sound/midi/spi/MidiFileReader.java.i
+data/make/tools/swing-beans/beaninfo/images/JRootPaneColor16.gif.i
 data/test/java/beans/PropertyEditor/TestDoubleTypeValue.java.i
 data/src/share/classes/java/sql/SQLDataException.java.i
 data/test/javax/management/namespace/JMXNamespaceSecurityTest.java.i
 data/src/share/classes/javax/naming/ldap/PagedResultsControl.java.i
-data/test/javax/management/notification/FilterExceptionTest.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libsoftokn3.chk.i
 data/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java.i
-data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest11_ok.ssl.in.i
-data/src/windows/native/sun/jkernel/resource.h.i
-data/test/sun/net/www/http/KeepAliveStream/KeepAliveStreamClose.java.i
+data/test/java/lang/Runtime/exec/ArgWithSpaceAndFinalBackslash.java.i
+data/test/sun/management/HotspotClassLoadingMBean/GetMethodDataSize.java.i
+data/src/share/classes/com/sun/nio/sctp/SctpServerChannel.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadHandshake.java.i
 data/test/sun/tools/jps/jps-V_2.sh.i
 data/test/java/rmi/server/RemoteObject/verifyRemoteEquals/VerifyRemoteEquals.java.i
+data/src/share/classes/javax/sound/sampled/Clip.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiColorChooserUI.java.i
 data/src/share/classes/java/io/PipedInputStream.java.i
 data/src/share/classes/sun/nio/cs/ext/MS950.java.i
 data/make/modules/tools/src/com/sun/classanalyzer/CodeAttributeParser.java.i
-data/test/sun/security/provider/PolicyFile/TokenStore.RelPassPolicy.i
 data/test/java/lang/annotation/Missing/C.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/package.html.i
+data/src/share/classes/sun/tools/javac/resources/javac_zh_CN.properties.i
 data/src/share/classes/sun/tools/java/MethodSet.java.i
 data/src/share/classes/javax/print/ServiceUIFactory.java.i
 data/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java.i
 data/src/windows/native/sun/jkernel/kernel_zh_TW.rc.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/Test.java.i
+data/test/java/util/ResourceBundle/Control/ExpirationTest.java.i
+data/src/linux/doc/man/ja/jps.1.i
 data/src/share/classes/javax/security/auth/login/AccountExpiredException.java.i
+data/test/java/lang/Double/ParseHexFloatingPoint.java.i
 data/src/solaris/native/sun/nio/ch/SolarisEventPort.c.i
 data/test/java/lang/Class/getDeclaredMethod/Exceptions.java.i
 data/src/share/classes/java/lang/reflect/GenericArrayType.java.i
 data/src/share/classes/sun/java2d/loops/DrawGlyphList.java.i
-data/test/sun/net/www/ParseUtil_6274990.java.i
+data/src/share/classes/sun/security/ssl/DHClientKeyExchange.java.i
 data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c.i
 data/src/share/classes/sun/management/ThreadInfoCompositeData.java.i
 data/src/windows/classes/sun/nio/ch/WindowsSelectorProvider.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetMaxReceivers.java.i
-data/src/share/classes/sun/nio/cs/ext/GB18030.java.i
 data/test/javax/management/remote/mandatory/notif/UnexpectedNotifTest.java.i
 data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipUtils.java.i
 data/src/share/classes/sun/management/HotSpotDiagnostic.java.i
+data/src/share/classes/com/sun/net/ssl/SSLPermission.java.i
 data/make/tools/swing-beans/beaninfo/images/JOptionPaneColor16.gif.i
 data/src/share/demo/jvmti/mtrace/mtrace.c.i
 data/src/share/classes/sun/tools/tree/OrExpression.java.i
+data/src/share/classes/sun/management/counter/perf/PerfByteArrayCounter.java.i
 data/src/share/demo/nbproject/management/FullThreadDump/build.properties.i
 data/test/com/sun/management/OperatingSystemMXBean/GetTotalPhysicalMemorySize.java.i
 data/src/share/classes/java/awt/im/InputContext.java.i
 data/src/share/classes/java/text/package.html.i
 data/src/solaris/native/java/util/FileSystemPreferences.c.i
-data/test/com/sun/jdi/ExclusiveBind.java.i
-data/test/sun/tools/jps/jps-l_Output1.awk.i
 data/src/share/classes/sun/net/www/MimeEntry.java.i
-data/src/share/native/sun/security/ec/impl/ecl-curve.h.i
-data/src/share/classes/sun/security/pkcs11/wrapper/Functions.java.i
-data/src/share/classes/sun/security/krb5/internal/KRBSafe.java.i
+data/src/share/classes/javax/swing/colorchooser/DefaultSwatchChooserPanel.java.i
+data/src/share/classes/sun/nio/cs/US_ASCII.java.i
+data/test/javax/naming/spi/DirectoryManager/GetContDirCtx.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/ReplaceTrees.java.i
-data/test/java/io/Serializable/backRefCNFException/Write.java.i
+data/test/java/beans/PropertyChangeSupport/TestMethods.java.i
 data/src/share/classes/sun/java2d/pipe/BufferedContext.java.i
 data/src/share/classes/javax/swing/SwingHeavyWeight.java.i
-data/test/sun/security/pkcs11/rsa/TestSignatures.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicFormattedTextFieldUI.java.i
-data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java.i
+data/src/share/classes/javax/crypto/spec/package.html.i
+data/test/javax/swing/text/html/TableView/7030332/sample4.png.i
 data/test/sun/security/pkcs11/Cipher/TestSymmCiphers.java.i
 data/src/share/classes/sun/rmi/rmic/newrmic/jrmp/RemoteClass.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/infblock.h.i
@@ -5007,44 +4860,40 @@ data/src/share/sample/nio/server/Acceptor.java.i
 data/src/share/classes/sun/nio/cs/ext/Big5.java.i
 data/src/share/classes/java/util/concurrent/RejectedExecutionException.java.i
 data/src/share/classes/javax/naming/NoInitialContextException.java.i
-data/test/javax/swing/JComponent/6989617/bug6989617.java.i
 data/src/share/classes/com/sun/jdi/DoubleType.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetMicrosecondPosition.java.i
+data/src/share/classes/sun/security/x509/X509Key.java.i
 data/src/share/classes/javax/swing/ButtonGroup.java.i
-data/test/java/beans/XMLEncoder/java_util_Collections_EmptySet.java.i
-data/test/java/util/zip/input.jar.i
 data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ko.properties.i
 data/src/windows/classes/sun/awt/windows/WComponentPeer.java.i
-data/src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java.i
+data/src/share/classes/sun/management/CompilerThreadStat.java.i
 data/make/tools/swing-beans/beaninfo/images/JComboBoxColor16.gif.i
 data/src/share/classes/javax/swing/text/html/parser/ResourceLoader.java.i
 data/src/share/classes/javax/swing/plaf/TableHeaderUI.java.i
-data/src/solaris/classes/sun/nio/ch/LinuxAsynchronousChannelProvider.java.i
-data/src/windows/classes/sun/awt/windows/ThemeReader.java.i
 data/src/windows/classes/sun/awt/windows/WFileDialogPeer.java.i
 data/README.i
-data/src/windows/classes/sun/awt/windows/fontconfig.98.properties.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerArrayIntIntIntIntInt.java.i
-data/test/sun/rmi/server/MarshalOutputStream/marshalForeignStub/Receiver.java.i
 data/src/share/classes/com/sun/management/mgmt-overview.html.i
 data/src/share/classes/javax/swing/LegacyGlueFocusTraversalPolicy.java.i
-data/test/java/lang/Class/getEnclosingClass/T4992170.java.i
+data/test/java/net/DatagramSocket/ReportSocketClosed.java.i
 data/test/java/net/Inet6Address/B6558853.java.i
 data/test/sun/java2d/cmm/ColorConvertOp/LRGB565.png.i
-data/src/share/classes/sun/management/HotspotMemoryMBean.java.i
+data/test/java/nio/channels/SocketChannel/Close.java.i
 data/src/windows/classes/sun/nio/fs/WindowsFileCopy.java.i
-data/src/share/classes/sun/reflect/FieldInfo.java.i
+data/test/java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java.i
 data/src/share/classes/com/sun/jdi/InternalException.java.i
 data/src/share/classes/sun/text/normalizer/TrieIterator.java.i
+data/src/share/classes/com/sun/jdi/connect/spi/package.html.i
+data/src/share/classes/org/openjdk/jigsaw/RemoteRepositoryList.java.i
 data/src/share/classes/javax/management/MBeanException.java.i
-data/test/javax/security/auth/login/Configuration/Synchronize.java.i
+data/test/java/beans/PropertyEditor/TestFloatClassValue.java.i
+data/test/sun/tools/jhat/minimal.bin.i
 data/src/share/classes/java/awt/doc-files/BorderLayout-1.gif.i
 data/src/share/classes/java/io/SequenceInputStream.java.i
 data/src/share/demo/jvmti/gctest/gctest.c.i
 data/test/java/lang/Class/getModifiers/StripACC_SUPER.java.i
-data/src/share/classes/javax/management/namespace/JMXNamespaceMBean.java.i
 data/test/javax/sound/midi/Gervill/SoftTuning/GetName.java.i
-data/test/java/rmi/activation/Activatable/restartService/group.security.policy.i
+data/src/windows/npt/utf_md.h.i
 data/test/java/net/URL/B4148751.java.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManagerMXBean.java.i
 data/src/share/native/sun/management/management.h.i
@@ -5053,17 +4902,15 @@ data/src/share/classes/sun/security/util/Resources_de.java.i
 data/make/tools/CharsetMapping/MacHebrew.map.i
 data/src/share/classes/com/sun/rowset/internal/CachedRowSetWriter.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU8S32Func.c.i
-data/test/java/rmi/server/UnicastRemoteObject/useDynamicProxies/security.policy.i
-data/test/java/lang/management/ThreadMXBean/ThreadBlockedCount.java.i
-data/test/java/beans/PropertyEditor/TestByteTypeNull.java.i
 data/make/tools/UnicodeData/UnicodeData.txt.i
+data/src/share/classes/sun/util/resources/CurrencyNames_nl_BE.properties.i
 data/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java.i
 data/make/tools/UnicodeData/UnicodeData.txt.d
 data/src/share/classes/java/util/concurrent/ConcurrentHashMap.java.i
 data/src/share/classes/java/sql/SQLData.java.i
 data/src/share/classes/sun/security/provider/ByteArrayAccess.java.i
 data/test/java/lang/instrument/BootClassPath/DummyMain.java.i
-data/test/sun/security/pkcs11/sslecc/JSSEClient.java.i
+data/test/javax/management/namespace/namespace.policy.i
 data/make/tools/swing-beans/beaninfo/images/JRadioButtonMenuItemMono16.gif.i
 data/test/com/sun/jndi/rmi/registry/RegistryContext/ContextWithNullProperties.java.i
 data/src/share/classes/sun/nio/cs/IBM855.java.i
@@ -5080,23 +4927,22 @@ data/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java.i
 data/src/share/classes/com/sun/jndi/ldap/Obj.java.i
 data/test/java/rmi/activation/Activatable/lookupActivationSystem/LookupActivationSystem.java.i
 data/src/share/native/sun/awt/image/cvutils/img_dcm.h.i
-data/test/java/net/URLConnection/GetLastModified.java.i
+data/src/share/demo/nbproject/jfc/Metalworks/build.properties.i
 data/test/java/nio/file/Files/probeContentType/ForceLoad.java.i
 data/src/share/classes/javax/swing/plaf/metal/icons/ocean/menu.gif.i
 data/src/share/classes/sun/tools/java/ClassFile.java.i
+data/src/share/classes/sun/awt/KeyboardFocusManagerPeerProvider.java.i
 data/test/javax/sound/midi/Gervill/RiffReaderWriter/Close.java.i
 data/src/share/classes/javax/swing/doc-files/groupLayout.3.gif.i
-data/test/sun/net/InetAddress/nameservice/chaining/Providers.java.i
 data/src/share/demo/jvmti/waiters/Monitor.hpp.i
 data/src/share/native/sun/awt/image/awt_parseImage.c.i
 data/src/share/classes/javax/xml/crypto/dsig/TransformException.java.i
 data/test/java/net/URLClassLoader/sealing/checksealed.sh.i
 data/src/share/classes/javax/management/monitor/CounterMonitor.java.i
 data/test/javax/management/context/localizable/MBeanDescriptions_fr.java.i
-data/src/share/classes/javax/print/attribute/PrintServiceAttributeSet.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/icons/Error.gif.i
 data/make/netbeans/jmx/nbproject/project.xml.i
-data/test/demo/jvmti/DemoRun.java.i
-data/src/share/classes/sun/reflect/misc/MethodUtil.java.i
+data/test/javax/sound/midi/Gervill/ModelStandardTransform/NewModelStandardTransformBooleanBoolean.java.i
 data/src/share/native/sun/font/layout/HangulLayoutEngine.cpp.i
 data/src/linux/doc/man/rmiregistry.1.i
 data/test/com/sun/jdi/MethodEntryExitEvents.java.i
@@ -5104,55 +4950,56 @@ data/src/share/classes/sun/security/smartcardio/ChannelImpl.java.i
 data/src/share/classes/sun/security/util/AuthResources_fr.java.i
 data/make/tools/CharsetMapping/MacCyrillic.map.i
 data/src/windows/lib/flavormap.properties.i
-data/src/share/classes/java/awt/doc-files/RadialGradientPaint-4.png.i
-data/make/mkdemo/jvmti/heapTracker/Makefile.i
+data/src/share/classes/sun/io/ByteToCharMacSymbol.java.i
+data/src/solaris/doc/sun/man/man1/wsimport.1.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKIconFactory.java.i
 data/src/windows/classes/sun/java2d/d3d/D3DBufImgOps.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/Transforms.java.i
 data/test/com/sun/jdi/redefineMethod/RedefineSetUp.sh.i
 data/src/share/classes/sun/tools/tree/ThrowStatement.java.i
-data/test/javax/swing/JColorChooser/Test6559154.java.i
 data/src/share/classes/java/util/Date.java.i
 data/src/share/classes/sun/text/resources/CollationData_lv.java.i
 data/make/com/sun/org/apache/Makefile.i
 data/src/linux/doc/man/jstack.1.i
+data/test/java/lang/ProcessBuilder/FeelingLucky.java.i
 data/src/share/back/EventRequestImpl.c.i
 data/src/share/classes/com/sun/tools/jdi/ShortValueImpl.java.i
 data/test/sun/management/windows/revokeall.exe.i
 data/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPMetadataFormat.java.i
 data/src/share/classes/javax/management/RuntimeMBeanException.java.i
-data/test/java/rmi/dgc/VMID/security.policy.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTextFieldUI.java.i
 data/src/share/classes/java/net/StandardProtocolFamily.java.i
 data/src/share/classes/java/io/WriteAbortedException.java.i
-data/test/javax/rmi/ssl/SSLSocketParametersTest.java.i
 data/src/share/native/sun/java2d/loops/UshortIndexed.c.i
+data/make/tools/CharsetMapping/IBM943.map.i
 data/src/share/classes/java/io/ObjectInputStream.java.i
+data/src/share/classes/sun/text/resources/FormatData_ar_BH.java.i
 data/test/java/net/Inet6Address/B6206527.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/OptionalArgumentOptionSpec.java.i
 data/src/share/classes/javax/crypto/CipherSpi.java.i
 data/test/java/beans/XMLEncoder/javax_swing_BoxLayout.java.i
 data/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java.i
-data/test/sun/security/provider/MessageDigest/TestSHAClone.java.i
 data/test/java/beans/XMLEncoder/java_awt_geom_AffineTransform.java.i
-data/test/java/net/Socket/asyncClose/BrokenPipe.java.i
 data/make/sun/jkernel/Makefile.i
 data/src/share/classes/java/util/zip/Deflater.java.i
 data/src/share/classes/sun/io/ByteToCharCp950.java.i
-data/src/share/classes/sun/jvmstat/monitor/VmIdentifier.java.i
-data/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java.i
-data/test/java/util/ResourceBundle/Test4318520RB_en.properties.i
+data/src/share/classes/javax/swing/InputMap.java.i
+data/src/share/classes/com/sun/jndi/dns/DnsClient.java.i
+data/src/share/classes/sun/net/dns/ResolverConfiguration.java.i
+data/src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariInputMethodDescriptor.java.i
 data/make/tools/swing-beans/beaninfo/images/JPasswordFieldColor32.gif.i
 data/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubRequestHandler.java.i
+data/src/share/classes/java/nio/channels/MembershipKey.java.i
 data/make/mksample/webservices/Makefile.i
 data/src/share/classes/sun/dyn/util/BytecodeSignature.java.i
 data/src/windows/native/sun/java2d/opengl/WGLSurfaceData.h.i
 data/src/share/classes/javax/swing/text/html/package.html.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c.i
-data/test/javax/sound/midi/Gervill/DLSSoundbankReader/TestGetSoundbankUrl.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/PrincipalImpl.java.i
 data/src/share/classes/javax/management/relation/RoleInfoNotFoundException.java.i
 data/src/share/classes/com/sun/imageio/plugins/bmp/BMPMetadataFormat.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/Result.java.i
+data/src/share/classes/sun/misc/resources/Messages_zh_CN.java.i
+data/src/share/classes/sun/management/MemoryPoolImpl.java.i
 data/src/share/back/FrameID.h.i
 data/test/java/lang/Runtime/exec/ExecEmptyString.java.i
 data/test/java/beans/XMLDecoder/spec/TestBoolean.java.i
@@ -5160,55 +5007,52 @@ data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMStructure.java.i
 data/src/solaris/classes/sun/java2d/jules/JulesRenderingEngine.java.i
 data/src/share/classes/javax/management/remote/rmi/package.html.i
 data/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpec.java.i
-data/test/sun/net/www/http/HttpClient/ProxyFromCache.java.i
+data/test/java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java.i
 data/test/sun/tools/jhat/jmap.bin.d
-data/src/share/native/sun/java2d/opengl/OGLMaskBlit.c.i
-data/test/com/sun/servicetag/newer-registry-version.xml.i
+data/src/share/classes/javax/net/ssl/ManagerFactoryParameters.java.i
 data/src/share/classes/java/beans/Customizer.java.i
 data/test/java/lang/ref/EnqueueNullRef.java.i
 data/src/solaris/native/sun/awt/awt_xembed.h.i
-data/src/share/native/java/util/zip/zlib-1.2.3/trees.h.i
+data/src/share/classes/javax/swing/text/html/ListView.java.i
+data/src/share/classes/sun/swing/PrintColorUIResource.java.i
 data/src/share/classes/java/rmi/activation/ActivationInstantiator.java.i
 data/src/share/classes/javax/naming/LimitExceededException.java.i
 data/test/java/security/cert/CertPathValidator/OCSP/AIACheck.java.i
-data/src/share/classes/java/awt/dnd/DropTargetEvent.java.i
 data/src/share/classes/javax/accessibility/AccessibleRelation.java.i
 data/test/com/sun/jdi/PopAndInvokeTest.java.i
 data/src/share/native/com/sun/java/util/jar/pack/utils.h.i
-data/test/sun/security/tools/keytool/console.sh.i
 data/src/share/classes/java/rmi/server/LoaderHandler.java.i
 data/test/sun/security/pkcs11/KeyStore/BasicData/p11-solaris.txt.i
 data/src/share/native/sun/awt/medialib/mlib_image_types.h.i
 data/src/share/classes/sun/java2d/StateTrackable.java.i
 data/src/share/classes/javax/swing/text/html/IsindexView.java.i
-data/test/java/nio/MappedByteBuffer/Basic.java.i
 data/test/java/beans/PropertyEditor/TestIntegerClassJava.java.i
-data/test/sun/security/pkcs11/nss/lib/windows-i586/libnspr4.dll.i
+data/make/tools/swing-beans/beaninfo/images/JFrameColor32.gif.i
 data/test/sun/misc/Encode/GetBytes.java.i
 data/src/share/classes/java/lang/invoke/SpreadGeneric.java.i
 data/src/share/classes/javax/management/relation/RelationException.java.i
-data/src/windows/native/sun/windows/awt_ole.h.i
+data/src/share/classes/sun/io/CharToByteCp437.java.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/FileMatch.java.i
-data/src/windows/native/sun/jkernel/graphics/cautionshield32.bmp.i
-data/test/java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.java.i
+data/src/solaris/classes/sun/java2d/xr/XIDGenerator.java.i
 data/src/share/classes/java/awt/dnd/DragSourceEvent.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java.i
-data/test/sun/nio/cs/OLD/DBCS_IBM_ASCII_Encoder.java.i
-data/test/java/util/concurrent/ConcurrentHashMap/MapLoops.java.i
-data/src/share/native/sun/font/layout/IndicClassTables.cpp.i
+data/src/share/classes/sun/security/krb5/internal/rcache/CacheTable.java.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpEngineId.java.i
+data/src/share/native/sun/java2d/loops/IntArgb.c.i
+data/test/java/lang/reflect/Proxy/Basic1.java.i
 data/src/share/classes/sun/net/httpserver/Event.java.i
-data/src/share/classes/com/sun/jdi/request/MethodExitRequest.java.i
+data/test/java/rmi/transport/checkLeaseInfoLeak/security.policy.i
+data/src/share/native/java/lang/fdlibm/src/s_lib_version.c.i
 data/src/share/classes/javax/swing/plaf/basic/BasicRootPaneUI.java.i
-data/test/javax/sound/midi/Gervill/RiffReaderWriter/WriteOutputStream.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/TMSchema.java.i
 data/src/share/classes/javax/management/relation/RoleStatus.java.i
 data/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java.i
-data/test/java/lang/Double/NaNInfinityParsing.java.i
-data/make/tools/CharsetMapping/IBM297.map.i
+data/test/java/util/Collections/NCopies.java.i
+data/src/share/classes/javax/imageio/ImageReadParam.java.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java.i
 data/make/tools/sharing/classlist.linux.i
-data/test/java/beans/Introspector/memory/Bean4.java.i
-data/test/sun/security/tools/keytool/AltProviderPath.sh.i
+data/src/windows/native/sun/java2d/d3d/D3DContext.h.i
+data/test/sun/security/krb5/ParseCAPaths.java.i
 data/src/share/classes/java/lang/management/ThreadInfo.java.i
 data/src/share/classes/sun/io/CharToByteMS874.java.i
 data/src/share/native/sun/font/layout/MarkArrays.cpp.i
@@ -5216,6 +5060,7 @@ data/make/mkdemo/jfc/CodePointIM/Makefile.i
 data/src/share/classes/sun/reflect/generics/tree/FieldTypeSignature.java.i
 data/make/mkdemo/scripting/Makefile.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/SynthModel.jibx.xml.i
+data/src/share/classes/sun/instrument/TransformerManager.java.i
 data/src/share/classes/sun/text/resources/FormatData_zh.java.i
 data/test/com/sun/crypto/provider/KeyAgreement/DHGenSharedSecret.java.i
 data/src/share/classes/com/sun/tools/example/debug/event/VMStartEventSet.java.i
@@ -5226,25 +5071,21 @@ data/src/share/classes/sun/reflect/MethodAccessorImpl.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java.i
 data/src/share/classes/sun/misc/MessageUtils.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/helper/AttrCompare.java.i
-data/src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodDescriptor.java.i
-data/src/share/classes/sun/management/StackTraceElementCompositeData.java.i
-data/src/share/native/sun/awt/image/jpeg/jdhuff.c.i
+data/src/share/classes/java/awt/peer/TextAreaPeer.java.i
+data/src/share/classes/sun/security/x509/PKIXExtensions.java.i
 data/test/java/net/URL/UppercaseScheme.java.i
 data/src/share/classes/javax/swing/text/rtf/charsets/NeXT.txt.i
-data/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java.i
+data/src/windows/native/java/net/DualStackPlainSocketImpl.c.i
 data/src/share/classes/javax/print/attribute/SupportedValuesAttribute.java.i
-data/test/java/nio/channels/FileChannel/MapAssertions.java.i
+data/src/share/classes/sun/management/snmp/util/JvmContextFactory.java.i
 data/make/java/nio/Makefile.i
-data/src/share/classes/javax/swing/text/html/HTMLEditorKit.java.i
+data/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/rmid.security.policy.i
 data/src/windows/native/sun/java2d/windows/dxCapabilities.h.i
 data/test/java/util/concurrent/ConcurrentQueues/OfferRemoveLoops.java.i
 data/make/tools/swing-beans/beaninfo/images/JWindowColor32.gif.i
-data/test/java/lang/instrument/appendToClassLoaderSearch/InstrumentedApplication.java.i
 data/test/sun/java2d/OpenGL/DrawBufImgOp.java.i
-data/src/solaris/native/sun/awt/awt_MenuBar.h.i
-data/src/solaris/doc/sun/man/man1/DO_NOT_EDIT--GENERATED_FILES.i
 data/src/share/classes/java/awt/Paint.java.i
-data/make/java/java_hprof_demo/Makefile.i
+data/src/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java.i
 data/src/share/classes/javax/management/relation/RoleNotFoundException.java.i
 data/test/java/util/TimeZone/Bug6912560.java.i
 data/src/share/classes/sun/tools/jconsole/resources/connected24.png.i
@@ -5252,51 +5093,53 @@ data/test/java/io/Reader/ReadParams.java.i
 data/src/share/classes/sun/awt/NativeLibLoader.java.i
 data/src/windows/native/java/io/canonicalize_md.c.i
 data/src/share/classes/com/sun/media/sound/PCMtoPCMCodec.java.i
-data/src/share/classes/sun/security/krb5/EncryptedData.java.i
-data/test/sun/security/pkcs11/nss/lib/linux-i586/libplc4.so.i
 data/src/share/classes/com/sun/nio/sctp/MessageInfo.java.i
-data/src/share/classes/sun/nio/cs/ext/IBM950.java.d
+data/src/solaris/doc/sun/man/man1/ja/servertool.1.i
 data/src/share/classes/sun/tools/jconsole/SheetDialog.java.i
 data/src/share/classes/sun/security/ssl/JsseJce.java.i
 data/src/solaris/doc/sun/man/man1/jstatd.1.i
-data/test/com/sun/management/ThreadMXBean/ThreadAllocatedMemoryArray.java.i
 data/src/share/classes/java/awt/doc-files/Choice-1.gif.i
 data/src/share/classes/sun/io/ByteToCharMS950.java.i
 data/src/share/classes/sun/java2d/loops/MaskBlit.java.i
 data/test/java/nio/channels/FileChannel/Release.java.i
 data/src/share/classes/javax/management/DescriptorFields.java.i
+data/src/share/classes/sun/util/locale/LocaleUtils.java.i
 data/src/share/classes/java/beans/beancontext/BeanContextContainerProxy.java.i
+data/make/sun/dcpr/Makefile.i
 data/src/share/demo/java2d/J2DBench/resources/textdata/arabic.ut8.txt.i
 data/src/share/native/sun/awt/medialib/mlib_SysMath.h.i
 data/src/share/classes/javax/imageio/event/IIOReadProgressListener.java.i
+data/test/java/net/URLConnection/GetXmlContentType.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-amd64/libnspr4.so.i
 data/src/share/classes/sun/reflect/generics/factory/CoreReflectionFactory.java.i
 data/make/tools/CharsetMapping/IBM1149.c2b.i
-data/src/share/classes/sun/misc/resources/Messages_it.java.i
-data/test/java/nio/charset/Charset/EmptyCharsetName.java.i
-data/test/java/util/regex/RegExTest.java.i
+data/src/share/native/sun/awt/image/imageInitIDs.c.i
+data/src/share/classes/sun/awt/image/ImageDecoder.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/AlternativeLongOptionSpec.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsPopupMenuUI.java.i
 data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileStore.java.i
+data/src/solaris/classes/sun/nio/fs/UnixFileSystem.java.i
 data/make/tools/CharsetMapping/IBM874.map.i
-data/test/javax/management/eventService/PublishTest.java.i
+data/test/org/openjdk/jigsaw/ConfigurationBuilder.java.i
 data/src/share/native/com/sun/media/sound/DirectAudioDeviceProvider.c.i
 data/src/share/classes/sun/tools/jconsole/TimeComboBox.java.i
-data/test/java/util/Collections/AsLifoQueue.java.i
 data/test/sun/java2d/pipe/RegionOps.java.i
-data/src/share/classes/sun/print/resources/orientRevLandscape.png.i
+data/src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java.i
+data/src/share/classes/java/lang/IllegalStateException.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/SOSMarkerSegment.java.i
 data/src/share/classes/sun/io/CharToByteCp863.java.i
 data/make/sun/cmm/Makefile.i
 data/src/share/classes/com/sun/tools/jdi/EventSetImpl.java.i
-data/src/share/classes/sun/io/ByteToCharCp1383.java.i
+data/src/share/classes/sun/security/x509/GeneralName.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaFloat.java.i
 data/src/solaris/native/sun/java2d/loops/vis_XorBlit.c.i
-data/test/javax/management/context/localizable/Whatsit.java.i
+data/test/sun/security/ec/pkcs12/sect193r1server-rsa1024ca.p12.i
 data/src/share/classes/javax/management/Attribute.java.i
-data/src/share/native/sun/java2d/cmm/lcms/cmsio1.c.i
+data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelInstrumentIntIntIntInt.java.i
 data/test/sun/nio/cs/Test6392804.java.i
-data/src/share/native/sun/java2d/loops/AnyByte.h.i
+data/src/share/classes/java/util/spi/LocaleServiceProvider.java.i
+data/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Decoder.java.i
+data/src/share/classes/com/sun/jmx/namespace/serial/RoutingOnlyProcessor.java.i
 data/test/java/rmi/testlibrary/StreamPipe.java.i
 data/src/share/classes/javax/management/loading/DefaultLoaderRepository.java.i
 data/src/share/classes/javax/naming/ldap/ExtendedResponse.java.i
@@ -5304,73 +5147,66 @@ data/src/share/classes/java/awt/GridBagConstraints.java.i
 data/test/javax/crypto/Cipher/InOutBuffers.java.i
 data/src/solaris/native/sun/java2d/loops/mlib_v_ImageClear_f.h.i
 data/make/tools/src/build/tools/generatecharacter/SpecialCaseMap.java.i
-data/test/java/lang/String/Split.java.i
+data/src/share/classes/com/sun/imageio/spi/FileImageOutputStreamSpi.java.i
 data/src/share/sample/jmx/jmx-scandir/docfiles/remote-connection-failed.jpg.i
 data/src/share/classes/java/security/Signature.java.i
 data/src/share/classes/sun/text/resources/FormatData_sv.java.i
 data/make/modules/Makefile.i
-data/test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_overdrive.java.i
 data/test/javax/swing/JComboBox/6607130/bug6607130.java.i
 data/src/share/classes/com/sun/jdi/Bootstrap.java.i
 data/src/share/classes/javax/security/auth/RefreshFailedException.java.i
 data/test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_normal.java.i
-data/test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/Hello.java.i
+data/test/javax/management/mxbean/JMXServiceURLTest.java.i
 data/make/tools/dir_diff/Makefile.i
+data/src/share/native/sun/font/layout/KernTable.h.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpec.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libnss3.so.i
 data/src/share/classes/com/sun/pept/ept/ContactInfoList.java.i
 data/src/share/classes/java/util/AbstractQueue.java.i
 data/test/java/io/Serializable/readObjectNoData/Read.java.i
-data/test/java/util/ResourceBundle/Bug4083270Test.properties.i
-data/src/share/classes/javax/print/attribute/standard/PrintQuality.java.i
+data/src/share/classes/sun/io/CharToByteMacRomania.java.i
+data/make/mkdemo/jvmti/versionCheck/Makefile.i
 data/src/share/classes/sun/nio/fs/MimeType.java.i
 data/src/share/classes/sun/net/www/http/KeepAliveStream.java.i
-data/test/sun/security/krb5/auto/ok-as-delegate-xrealm.sh.i
 data/src/share/classes/javax/swing/text/html/EditableView.java.i
-data/src/share/classes/javax/swing/plaf/ComponentInputMapUIResource.java.i
-data/src/share/classes/com/sun/net/httpserver/HttpContext.java.i
+data/src/share/classes/javax/management/DescriptorAccess.java.i
+data/src/share/classes/java/sql/SQLTransactionRollbackException.java.i
+data/src/share/classes/sun/launcher/LauncherHelper.java.i
 data/test/java/lang/instrument/StressGetObjectSizeApp.java.i
 data/src/share/classes/javax/swing/text/GlyphView.java.i
 data/test/java/beans/PropertyChangeSupport/1.6.0.ser.i
 data/src/share/classes/com/sun/jmx/event/EventParams.java.i
 data/src/share/classes/java/util/package.html.i
-data/test/sun/net/TelnetTest.java.i
 data/src/share/classes/sun/jkernel/BundleCheck.java.i
 data/src/share/native/sun/awt/image/cvutils/img_alpha.h.i
-data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain5.txt.i
-data/test/java/text/Format/MessageFormat/Bug7003643.java.i
-data/test/java/util/PluggableLocale/providersrc/java.text.spi.CollatorProvider.i
+data/src/share/classes/com/sun/jndi/ldap/LdapURL.java.i
+data/src/share/classes/com/sun/media/sound/ModelOscillator.java.i
+data/src/share/classes/javax/swing/JCheckBoxMenuItem.java.i
+data/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java.i
 data/src/share/classes/com/sun/servicetag/Registry.java.i
 data/src/share/classes/com/sun/tools/jdi/META-INF/services/com.sun.jdi.connect.spi.TransportService.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14NExclusiveWithComments.java.i
-data/src/solaris/classes/sun/awt/X11/XFontPeer.java.i
-data/test/java/util/Collections/NullComparator.java.i
-data/src/share/classes/sun/tools/jstat/ExpressionResolver.java.i
+data/src/share/classes/javax/swing/Painter.java.i
 data/src/share/classes/javax/swing/plaf/ViewportUI.java.i
 data/test/com/sun/jndi/dns/CheckAccess.java.i
 data/src/share/classes/com/sun/imageio/plugins/gif/GIFImageWriterSpi.java.i
+data/src/share/classes/javax/imageio/stream/ImageOutputStream.java.i
 data/src/share/classes/java/security/PrivilegedAction.java.i
 data/src/share/classes/sun/nio/fs/NativeBuffers.java.i
+data/src/share/classes/com/sun/tools/jdi/PrimitiveValueImpl.java.i
 data/src/windows/native/sun/jkernel/graphics/warningmasthead.bmp.i
 data/src/share/classes/com/sun/nio/sctp/package-info.java.i
-data/test/java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html.i
-data/test/org/openjdk/jigsaw/repocat.sh.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpBadSecurityLevelException.java.i
 data/make/sun/jawt/make.depend.i
-data/src/share/native/sun/font/layout/IndicLayoutEngine.cpp.i
+data/test/java/util/ResourceBundle/Control/XmlRB.xml.i
 data/src/share/classes/sun/management/snmp/util/MibLogger.java.i
-data/test/java/lang/Math/CubeRootTests.java.i
-data/src/windows/lib/plugin.properties.i
-data/src/windows/native/sun/java2d/d3d/D3DShaders.h.i
-data/test/javax/management/mxbean/AmbiguousConstructorTest.java.i
-data/src/windows/native/java/io/FileSystem_md.c.i
-data/test/com/oracle/net/Sanity.java.i
+data/test/java/nio/channels/Selector/Alias.java.i
+data/src/share/classes/sun/nio/cs/ext/DBCS_IBM_EBCDIC_Decoder.java.i
 data/test/java/awt/Focus/AutoRequestFocusTest/TestHelper.java.i
 data/src/share/classes/sun/misc/JavaLangAccess.java.i
-data/src/solaris/classes/sun/awt/X11/security-icon-bw48.png.i
 data/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java.i
 data/make/mkdemo/jfc/TableExample/Makefile.i
-data/test/javax/management/MBeanServer/NotifDeadlockTest.java.i
 data/test/com/sun/jdi/JdbReadTwiceTest.sh.i
+data/test/com/sun/jdi/RedefineImplementor.sh.i
 data/src/share/native/java/lang/StrictMath.c.i
 data/src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c.i
 data/make/common/Sanity.gmk.i
@@ -5380,34 +5216,34 @@ data/make/modules/tools/src/com/sun/classanalyzer/ConstantPoolParser.java.i
 data/make/mksample/forkjoin/Makefile.i
 data/src/share/sample/scripting/scriptpad/nbproject/jdk.xml.i
 data/test/java/net/URL/B6529759.java.i
-data/test/tools/pack200/pack200-verifier/src/sun/tools/pack/verify/Main.java.i
 data/test/com/sun/jdi/sde/Mangle.sde.i
-data/src/share/demo/jfc/CodePointIM/resources/codepoint_zh_CN.properties.i
+data/src/windows/classes/sun/nio/ch/SinkChannelImpl.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_de.properties.i
-data/src/share/native/sun/awt/libpng/pngvcrd.c.i
+data/src/share/classes/java/math/MutableBigInteger.java.i
 data/src/share/classes/java/lang/ConditionalSpecialCasing.java.i
 data/src/share/classes/javax/xml/crypto/XMLStructure.java.i
 data/test/sun/security/tools/policytool/i18n.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/GetAttenuation.java.i
 data/src/solaris/hpi/export/path_md.h.i
-data/src/share/demo/nbproject/jfc/Metalworks/nbproject/jdk.xml.i
+data/src/share/classes/org/openjdk/jigsaw/package-info.java.i
 data/src/share/classes/javax/print/attribute/standard/JobPrioritySupported.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties.i
-data/src/windows/native/sun/windows/awt_Menu.cpp.i
+data/test/javax/swing/JFileChooser/6868611/bug6868611.java.i
 data/src/share/classes/java/lang/Number.java.i
 data/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.h.i
+data/src/share/classes/sun/text/resources/FormatData_th_TH.java.i
 data/test/javax/print/applet/AppletPrintLookup.html.i
 data/src/share/classes/com/sun/jmx/event/EventClientFactory.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsProgressBarUI.java.i
-data/test/java/util/Locale/data/deflocale.sol10.i
+data/src/share/classes/sun/security/provider/certpath/ConstraintsChecker.java.i
 data/src/share/classes/java/util/EventListenerProxy.java.i
 data/src/share/classes/sun/rmi/rmic/newrmic/Generator.java.i
-data/test/java/security/Exceptions/ChainingConstructors.java.i
+data/test/sun/rmi/log/ReliableLog/Recovery.java.i
 data/src/share/classes/javax/swing/MultiUIDefaults.java.i
 data/test/sun/rmi/rmic/minimizeWrapperInstances/run.sh.i
 data/src/share/native/sun/awt/image/jpeg/jidctint.c.i
 data/src/share/classes/sun/misc/HexDumpEncoder.java.i
-data/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Encoder.java.i
+data/src/share/native/sun/java2d/loops/DrawLine.c.i
 data/src/share/classes/java/awt/event/WindowListener.java.i
 data/src/share/classes/com/sun/tools/attach/spi/AttachProvider.java.i
 data/test/sun/net/www/httptest/HttpServer.java.i
@@ -5417,84 +5253,75 @@ data/src/share/classes/javax/imageio/metadata/doc-files/png_metadata.html.i
 data/test/java/net/URLClassLoader/B5077773.java.i
 data/src/share/native/sun/font/layout/ThaiLayoutEngine.h.i
 data/make/netbeans/common/README-ent.i
-data/src/share/classes/sun/util/resources/LocaleNames_es.properties.i
+data/test/java/io/Serializable/notAvailable/NotAvailable.java.i
 data/src/share/classes/sun/io/ByteToCharCp918.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/NullCalls.java.i
 data/src/share/classes/java/util/concurrent/ExecutionException.java.i
-data/test/javax/swing/plaf/synth/SynthToolBarUI/6739756/bug6739756.java.i
+data/test/sun/nio/cs/SurrogateTestEUCTW.plane5.surrogates.i
 data/src/share/classes/sun/security/jgss/krb5/MessageToken_v2.java.i
 data/test/javax/swing/JColorChooser/Test4234761.java.i
 data/make/java/util/Makefile.i
-data/test/java/lang/instrument/IsModifiableClassAgent.java.i
+data/make/sun/security/pkcs11/mapfile-vers.i
 data/src/windows/resource/java.manifest.i
 data/src/share/classes/sun/text/resources/FormatData_sr.java.i
-data/test/java/util/ResourceBundle/ReferencesTestBundle.properties.i
-data/test/javax/sound/midi/Sequencer/SequencerImplicitSynthOpen.java.i
+data/src/share/classes/javax/swing/border/StrokeBorder.java.i
 data/src/share/classes/java/security/InvalidParameterException.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/AbstractPerfDataBufferPrologue.java.i
 data/src/share/classes/javax/net/ssl/KeyStoreBuilderParameters.java.i
+data/src/share/classes/java/util/regex/Matcher.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/Environment.java.i
 data/src/share/classes/com/sun/tools/hat/internal/server/OQLHelp.java.i
-data/src/share/classes/sun/io/ByteToCharCp949C.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSessionContextImpl/Timeout.java.i
 data/test/java/beans/PropertyEditor/TestIntegerClassValue.java.i
-data/src/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java.i
+data/test/tools/launcher/UglyPrintVersion.java.i
 data/test/java/lang/System/finalization/FinThreads.java.i
 data/test/java/util/ResourceBundle/Bug4165815Test.java.i
-data/test/java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java.i
-data/src/share/classes/sun/text/bidi/BidiLine.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_ko.properties.i
 data/src/share/classes/sun/net/www/protocol/jar/JarURLConnection.java.i
-data/src/share/classes/sun/text/resources/FormatData_ar_IQ.java.i
+data/src/share/classes/java/nio/channels/MulticastChannel.java.i
 data/src/share/classes/com/sun/jmx/remote/internal/ProxyInputStream.java.i
-data/test/java/beans/PropertyEditor/TestShortTypeValue.java.i
 data/test/java/lang/RuntimePermission/ExitVM.java.i
 data/src/share/classes/javax/management/modelmbean/ModelMBeanConstructorInfo.java.i
-data/test/java/nio/channels/AsynchronousSocketChannel/Basic.java.i
-data/src/share/demo/nbproject/management/MemoryMonitor/nbproject/jdk.xml.i
-data/test/org/openjdk/jigsaw/_Resolver.java.i
-data/src/share/classes/sun/io/ByteToCharEUC2.java.i
-data/test/java/rmi/reliability/benchmark/bench/TextReporter.java.i
+data/test/java/rmi/activation/Activatable/checkRegisterInLog/group.security.policy.i
+data/src/share/classes/com/sun/media/sound/SoftFilter.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/ElementCheckerImpl.java.i
 data/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java.i
 data/src/share/classes/java/sql/SQLInvalidAuthorizationSpecException.java.i
-data/test/javax/xml/crypto/dsig/data/certs/crl.i
+data/src/share/classes/com/sun/media/sound/services/javax.sound.midi.spi.MidiFileWriter.i
+data/src/share/classes/com/sun/jndi/rmi/registry/RegistryContextFactory.java.i
 data/src/share/classes/sun/dyn/MemberName.java.i
-data/test/java/io/Serializable/duplicateSerialFields/Setup.java.i
+data/src/share/native/com/sun/media/sound/Platform.c.i
 data/src/share/native/java/lang/fdlibm/src/w_asin.c.i
-data/make/sun/tracing/dtrace/mapfile-vers.i
+data/src/share/classes/com/sun/tools/jdi/LongValueImpl.java.i
 data/src/share/classes/sun/text/resources/CollationData_sk.java.i
-data/src/solaris/classes/sun/awt/X11/XInputMethodDescriptor.java.i
-data/make/sun/rmi/rmi/Makefile.i
-data/src/share/classes/sun/java2d/pipe/BufferedBufImgOps.java.i
-data/src/share/demo/applets/WireFrame/Matrix3D.java.i
-data/test/java/lang/instrument/RedefineMethodAddInvoke.sh.i
+data/test/javax/management/descriptor/EqualsHashCodeTest.java.i
+data/src/share/classes/com/sun/rowset/internal/XmlResolver.java.i
+data/test/java/io/Serializable/illegalHandle/tooHighHandle.ser.i
+data/test/java/nio/channels/DatagramChannel/Connect.java.i
 data/src/share/demo/jfc/Metalworks/MetalworksHelp.java.i
 data/src/share/classes/com/sun/crypto/provider/DESKey.java.i
 data/test/java/security/cert/CertificateFactory/slowstream.sh.i
 data/src/share/classes/com/sun/rowset/JdbcRowSetImpl.java.i
 data/src/share/classes/sun/nio/cs/ext/MacIceland.java.i
-data/src/share/classes/java/security/spec/ECGenParameterSpec.java.i
+data/test/sun/net/www/protocol/http/6550798/TestCache.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM869.java.i
 data/src/solaris/doc/sun/man/man1/ja/policytool.1.i
 data/src/share/classes/java/awt/image/renderable/ParameterBlock.java.i
-data/test/javax/crypto/spec/DESKeySpec/CheckParity.java.i
 data/src/share/classes/sun/nio/ch/ServerSocketAdaptor.java.i
 data/test/sun/security/mscapi/SignUsingSHA2withRSA.java.i
-data/src/share/native/sun/java2d/cmm/lcms/cmstypes.c.i
-data/src/windows/classes/sun/awt/windows/awtLocalization_ko.properties.i
+data/src/share/classes/sun/nio/cs/ext/JISAutoDetect.java.i
 data/src/share/classes/sun/net/www/content/image/x_xbitmap.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_AR.properties.i
-data/test/javax/script/Test4.js.i
 data/src/share/classes/sun/text/resources/FormatData_sr_RS.java.i
 data/test/java/beans/VetoableChangeSupport/Test4425885.java.i
+data/src/share/classes/sun/tracing/dtrace/DTraceProbe.java.i
 data/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java.i
-data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.java.i
+data/src/share/classes/sun/tools/jar/ModuleInfo.java.i
 data/src/share/classes/sun/awt/Graphics2Delegate.java.i
 data/make/tools/src/build/tools/generatenimbus/UIDefault.java.i
 data/src/share/demo/nbproject/jfc/SwingApplet/nbproject/project.xml.i
-data/test/javax/crypto/Cipher/GetMaxAllowed.java.i
-data/test/java/net/URLConnection/ResendPostBody.java.i
 data/test/java/util/Locale/InternationalBAT.java.i
 data/make/tools/CharsetMapping/IBM858.map.i
-data/test/java/lang/management/ManagementFactory/ThreadMXBeanProxy.java.i
+data/test/javax/management/remote/mandatory/connection/IIOPURLTest.java.i
 data/src/share/classes/com/sun/jdi/ClassType.java.i
 data/test/com/sun/net/httpserver/bugs/B6373555.java.i
 data/src/share/classes/java/io/BufferedReader.java.i
@@ -5502,11 +5329,10 @@ data/test/java/beans/XMLEncoder/4741757/TestSecurityManager.java.i
 data/test/java/net/URLClassLoader/closetest/test1/com/foo/Resource2.i
 data/src/share/native/sun/font/layout/LookupTables.cpp.i
 data/test/java/lang/invoke/InvokeGenericTest.java.i
-data/src/share/classes/sun/net/NetProperties.java.i
+data/make/sun/rmi/oldtools/FILES_java.gmk.i
 data/src/share/classes/sun/nio/cs/ext/IBM970.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/DigesterOutputStream.java.i
 data/src/share/classes/sun/nio/cs/ext/JIS_X_0208_MS932_Decoder.java.i
-data/test/javax/swing/system/6799345/TestShutdown.java.i
 data/src/share/classes/java/util/spi/package.html.i
 data/test/javax/swing/border/Test4247606.java.i
 data/make/java/npt/mapfile-vers.i
@@ -5514,40 +5340,40 @@ data/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleBuilder.java.i
 data/src/share/classes/java/nio/charset/UnmappableCharacterException.java.i
 data/src/share/classes/com/sun/media/sound/SF2Sample.java.i
 data/src/windows/classes/sun/security/mscapi/KeyStore.java.i
-data/test/java/net/DatagramSocket/ReportSocketClosed.java.i
+data/make/tools/classanalyzer/src/com/sun/classanalyzer/ShowRefs.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java.i
 data/src/share/classes/com/sun/jmx/namespace/ObjectNameRouter.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedData.java.i
 data/test/org/openjdk/jigsaw/_RemoteRepositoryList.java.i
-data/test/sun/security/provider/certpath/speech2speech.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifRadioButtonMenuItemUI.java.i
 data/src/share/classes/com/sun/media/sound/AuFileReader.java.i
-data/make/common/CancelImplicits.gmk.i
-data/test/javax/management/monitor/StringMonitorDeadlockTest.java.i
+data/test/sun/net/www/protocol/jar/B4957695.java.i
+data/test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOff.java.i
+data/src/share/classes/javax/security/auth/login/AccountException.java.i
 data/src/share/native/sun/font/layout/DeviceTables.cpp.i
 data/src/share/classes/sun/dyn/anon/InvalidConstantPoolFormatException.java.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/PlatformModuleBuilder.java.i
-data/src/solaris/classes/sun/awt/motif/X11JIS0208.java.i
+data/src/share/classes/java/util/StringTokenizer.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM297.java.i
 data/test/java/rmi/activation/Activatable/restartLatecomer/group.security.policy.i
 data/src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java.i
-data/test/java/net/URL/Equals.java.i
+data/test/java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM1124.java.i
 data/src/share/classes/sun/io/ByteToCharCp1006.java.i
 data/src/share/classes/sun/util/CoreResourceBundleControl-XLocales.java.template.i
 data/src/share/classes/sun/jvmstat/monitor/ByteArrayMonitor.java.i
-data/test/com/sun/jdi/sde/MangleStepTest.java.i
 data/src/share/lib/images/cursors/motif_LinkNoDrop32x32.gif.i
 data/make/com/sun/net/ssl/Makefile.i
-data/test/java/net/URLConnection/xml/xml3.i
-data/test/javax/security/auth/Subject/Synch.java.i
+data/test/sun/net/www/protocol/http/UserAuth.java.i
+data/make/tools/GenerateCharacter/Makefile.i
 data/src/share/classes/javax/swing/border/LineBorder.java.i
-data/test/javax/management/modelmbean/DescriptorSupportSerialTest.java.i
 data/src/share/classes/java/util/IllegalFormatFlagsException.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIStyle.java.i
 data/src/share/classes/sun/security/krb5/internal/ccache/MemoryCredentialsCache.java.i
-data/src/share/classes/sun/security/x509/CertificateSubjectUniqueIdentity.java.i
+data/src/solaris/classes/sun/awt/motif/MToolkitThreadBlockedHandler.java.i
 data/src/share/classes/sun/tools/asm/ClassConstantData.java.i
-data/src/share/classes/sun/management/manifest.i
+data/src/windows/lib/plugin.properties.i
+data/src/share/sample/nio/server/Content.java.i
 data/src/share/classes/java/io/IOError.java.i
 data/src/share/classes/javax/security/sasl/RealmCallback.java.i
 data/src/share/native/sun/awt/image/BufImgSurfaceData.c.i
@@ -5555,9 +5381,8 @@ data/src/share/classes/javax/swing/JApplet.java.i
 data/test/sun/security/util/Debug/MultiOptions.java.i
 data/src/share/classes/javax/swing/text/html/CommentView.java.i
 data/src/solaris/classes/sun/awt/motif/X11Clipboard.java.i
-data/test/java/nio/channels/AsynchronousFileChannel/Lock.java.i
+data/src/share/classes/sun/security/x509/GeneralNameInterface.java.i
 data/src/share/classes/javax/net/ssl/HandshakeCompletedListener.java.i
-data/test/sun/net/www/http/HttpClient/GetProxyPort.java.i
 data/src/share/classes/sun/reflect/generics/repository/ClassRepository.java.i
 data/test/java/net/Socket/ProxyCons.java.i
 data/src/share/demo/jvmti/hprof/hprof_tracker.c.i
@@ -5565,13 +5390,13 @@ data/test/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java.i
 data/src/share/back/classTrack.c.i
 data/make/tools/UnicodeData/Scripts.txt.i
 data/src/solaris/native/sun/font/X11FontScaler.h.i
-data/test/java/util/jar/JarFile/SorryClosed.java.i
+data/src/share/classes/javax/sound/sampled/UnsupportedAudioFileException.java.i
 data/test/java/lang/Math/Log1pTests.java.i
 data/src/share/classes/javax/print/attribute/standard/DateTimeAtCompleted.java.i
 data/src/share/native/sun/awt/libpng/pngwutil.c.i
-data/src/share/classes/org/ietf/jgss/GSSCredential.java.i
+data/src/share/classes/sun/management/snmp/jvminstr/JvmRTClassPathTableMetaImpl.java.i
 data/test/java/rmi/activation/Activatable/extLoadedImpl/group.security.policy.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmRTClassPathEntryMBean.java.i
+data/src/share/classes/sun/reflect/generics/tree/ByteSignature.java.i
 data/src/share/classes/javax/management/openmbean/OpenMBeanParameterInfoSupport.java.i
 data/src/share/classes/sun/nio/cs/ext/Big5_HKSCS.java.i
 data/test/javax/management/eventService/AddRemoveListenerTest.java.i
@@ -5579,11 +5404,12 @@ data/test/java/io/Serializable/ClassCastExceptionDetail/Read.java.i
 data/src/share/classes/java/rmi/StubNotFoundException.java.i
 data/test/javax/sound/midi/Gervill/RiffReaderWriter/ReadByte.java.i
 data/src/share/classes/java/security/AccessControlContext.java.i
-data/src/share/classes/sun/java2d/loops/GeneralRenderer.java.i
-data/src/share/classes/sun/tools/java/Scanner.java.i
+data/make/modules/tools/src/com/sun/classanalyzer/AnnotationParser.java.i
+data/src/share/classes/javax/swing/text/Document.java.i
 data/src/share/classes/sun/tools/jconsole/inspector/XTextField.java.i
 data/src/share/classes/java/beans/beancontext/BeanContextServicesSupport.java.i
-data/src/share/native/sun/security/ec/mp_gf2m.c.i
+data/src/share/classes/sun/tools/util/ModifierFilter.java.i
+data/src/share/classes/sun/nio/cs/ISO_8859_2.java.i
 data/test/java/rmi/server/RMIClassLoader/spi/java.rmi.server.RMIClassLoaderSpi.i
 data/src/share/classes/com/sun/script/javascript/ExternalScriptable.java.i
 data/src/share/classes/sun/security/ssl/CipherSuiteList.java.i
@@ -5593,15 +5419,15 @@ data/test/java/lang/reflect/Generics/getAnnotationTest.java.i
 data/src/share/classes/sun/tools/jar/resources/jar_sv.properties.i
 data/test/java/nio/channels/spi/AsynchronousChannelProvider/custom_provider.sh.i
 data/make/tools/CharsetMapping/GBK.map.i
-data/src/share/classes/javax/swing/plaf/nimbus/ImageCache.java.i
+data/src/share/classes/java/lang/invoke/MethodType.java.i
 data/src/share/classes/java/awt/image/ShortLookupTable.java.i
 data/src/windows/native/java/net/InetAddressImplFactory.c.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageThresh1.h.i
-data/test/sun/nio/cs/UkrainianIsNotRussian.java.i
-data/test/com/sun/security/sasl/digest/Privacy.java.i
+data/src/share/classes/java/io/Bits.java.i
+data/test/java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.java.i
 data/test/sun/security/mscapi/access.policy.i
-data/src/share/native/sun/security/ec/ecl_gf.c.i
-data/src/share/classes/sun/security/x509/CertificateValidity.java.i
+data/test/java/nio/charset/coders/BashStreams.java.i
+data/test/javax/sound/midi/Gervill/AudioFloatConverter/ToFloatArray.java.i
 data/src/share/classes/javax/swing/border/TitledBorder.java.i
 data/src/share/classes/java/net/SocketException.java.i
 data/src/windows/native/sun/windows/awt_Container.cpp.i
@@ -5614,68 +5440,63 @@ data/src/share/classes/javax/crypto/CryptoPolicyParser.java.i
 data/src/share/classes/javax/swing/plaf/nimbus/State.java.i
 data/make/jpda/bdi/Makefile.i
 data/test/java/util/AbstractMap/ToString.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/UnloadInstruments.java.i
+data/test/java/lang/Thread/StackTraces.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmMemGCEntryMBean.java.i
-data/test/org/openjdk/jigsaw/cli/signed-modular-jar.sh.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmThreadingMeta.java.i
+data/test/java/util/AbstractSequentialList/AddAll.java.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl.java.i
 data/src/share/classes/com/sun/tools/jdi/ThreadListener.java.i
+data/src/share/classes/com/sun/media/sound/AbstractMidiDevice.java.i
 data/src/share/classes/com/sun/crypto/provider/CipherCore.java.i
-data/src/share/classes/javax/crypto/spec/DHPrivateKeySpec.java.i
-data/test/java/util/logging/LoggingDeadlock2.java.i
-data/test/java/beans/XMLEncoder/java_awt_Point.java.i
+data/src/share/classes/com/sun/media/sound/SF2LayerRegion.java.i
+data/src/share/native/sun/awt/medialib/mlib_ImageAffine_BL_S32.c.i
+data/src/share/classes/javax/sql/rowset/spi/SyncResolver.java.i
 data/make/tools/swing-beans/beaninfo/images/JCheckBoxColor16.gif.i
-data/test/sun/net/www/http/HttpClient/IsKeepingAlive.java.i
 data/test/java/beans/PropertyEditor/TestColorClassJava.java.i
 data/src/solaris/back/exec_md.c.i
 data/test/javax/naming/ldap/LdapName/NameTests.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalTheme.java.i
 data/src/share/classes/javax/accessibility/AccessibleKeyBinding.java.i
 data/src/windows/native/sun/windows/awt_PrintControl.cpp.i
-data/test/sun/net/www/protocol/http/spnegoReadme.i
 data/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java.i
 data/src/share/classes/java/dyn/Invokers.java.i
 data/src/share/classes/sun/security/krb5/Asn1Exception.java.i
 data/src/share/classes/com/sun/crypto/provider/DESCipher.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/OpenStream.java.i
-data/src/share/classes/sun/rmi/registry/RegistryImpl.java.i
 data/make/java/awt/Makefile.i
-data/make/tools/CharsetMapping/IBM1147.map.i
+data/src/share/classes/java/io/InputStream.java.i
 data/test/sun/security/pkcs11/Secmod/GetPrivateKey.java.i
 data/make/java/nio/mapfile-solaris.i
 data/test/sun/security/ec/p12passwords.txt.i
-data/test/java/nio/channels/SocketChannel/GetChannel.java.i
+data/test/java/rmi/activation/Activatable/nonExistentActivatable/ActivateMe.java.i
 data/src/share/classes/sun/nio/cs/ext/EUC_CN.java.i
 data/src/windows/native/sun/windows/awt_Rectangle.cpp.i
-data/make/tools/src/build/tools/jdwpgen/OutNode.java.i
-data/test/com/sun/tools/attach/PermissionTests.sh.i
+data/src/share/classes/sun/security/pkcs11/P11KeyStore.java.i
+data/test/com/sun/jdi/OnThrowTarget.java.i
+data/src/share/classes/com/sun/tools/example/debug/bdi/ParseException.java.i
 data/src/share/classes/com/sun/jdi/DoubleValue.java.i
 data/src/share/classes/javax/swing/TablePrintable.java.i
-data/test/sun/net/www/protocol/http/WebGet.java.i
 data/make/tools/CharsetMapping/IBM937.map.i
-data/test/java/util/ResourceBundle/Test4314141B_fr_CH.properties.i
+data/src/share/demo/jvmti/hprof/hprof_io.c.i
+data/src/share/classes/java/security/AlgorithmConstraints.java.i
 data/src/share/classes/sun/tools/jstat/OptionFinder.java.i
 data/src/share/classes/javax/naming/ldap/StartTlsResponse.java.i
-data/test/sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java.i
 data/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.java.i
 data/src/solaris/native/sun/net/sdp/SdpSupport.c.i
 data/make/tools/CharsetMapping/IBM875.c2b.i
 data/src/share/classes/sun/nio/ch/Groupable.java.i
-data/test/java/lang/Runtime/exec/ExecWithDir.java.i
+data/test/javax/management/mxbean/StandardMBeanOverrideTest.java.i
+data/src/share/classes/java/net/CookiePolicy.java.i
 data/make/jpda/transport/shmem/mapfile-vers.i
 data/src/share/classes/com/sun/media/sound/ModelInstrumentComparator.java.i
 data/test/java/security/cert/X509Certificate/emptySubjectCert.i
 data/make/sun/org/mozilla/javascript/Makefile.i
 data/src/windows/native/sun/nio/ch/Iocp.c.i
-data/src/share/classes/sun/security/krb5/Credentials.java.i
+data/src/share/classes/java/awt/dnd/DropTargetAdapter.java.i
 data/test/javax/script/Test1.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/icons/DesktopIcon.gif.i
-data/src/share/classes/javax/swing/event/AncestorListener.java.i
-data/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport2.java.i
-data/src/solaris/classes/java/util/prefs/FileSystemPreferences.java.i
-data/test/javax/management/MBeanServer/PostExceptionTest.java.i
-data/make/tools/swing-beans/beaninfo/images/JPanelColor16.gif.i
-data/src/solaris/doc/sun/man/man1/idlj.1.i
+data/src/share/classes/sun/nio/ch/IOVecWrapper.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolver.java.i
+data/src/share/classes/com/sun/tools/example/debug/tty/MalformedMemberNameException.java.i
 data/src/share/classes/com/sun/media/sound/AudioFileSoundbankReader.java.i
 data/src/windows/hpi/include/monitor_md.h.i
 data/src/share/native/sun/security/jgss/wrapper/NativeUtil.h.i
@@ -5687,12 +5508,14 @@ data/test/com/sun/tools/attach/Shutdown.java.i
 data/src/share/classes/java/beans/IntrospectionException.java.i
 data/src/share/classes/sun/tools/tree/UnsignedShiftRightExpression.java.i
 data/src/windows/native/sun/windows/awt_MMStub.h.i
+data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_de.properties.i
 data/test/javax/sound/midi/Gervill/SoftReceiver/Send_Controller.java.i
+data/src/share/classes/java/rmi/server/RMIClientSocketFactory.java.i
 data/src/share/classes/java/awt/image/BandedSampleModel.java.i
+data/src/share/classes/sun/text/resources/FormatData_vi_VN.java.i
 data/test/sun/security/pkcs11/ec/pkcs12/secp256r1server-secp384r1ca.p12.i
 data/src/share/demo/scripting/jconsole-plugin/src/scripts/heapdump.js.i
-data/test/java/beans/XMLEncoder/javax_swing_plaf_ColorUIResource.java.i
-data/test/java/io/pathNames/win32/RenameDelete.java.i
+data/test/sun/net/www/http/KeepAliveStream/KeepAliveStreamClose.java.i
 data/src/share/classes/sun/security/ssl/EngineArgs.java.i
 data/src/share/classes/sun/util/resources/TimeZoneNames_ja.java.i
 data/src/share/classes/sun/rmi/transport/ObjectTable.java.i
@@ -5700,31 +5523,31 @@ data/make/tools/swing-beans/beaninfo/images/JAppletColor16.gif.i
 data/src/share/classes/sun/swing/plaf/synth/Paint9Painter.java.i
 data/src/share/classes/sun/util/resources/CalendarData_it.properties.i
 data/test/org/openjdk/jigsaw/TrivialWebServer.java.i
-data/test/java/security/cert/CertPathValidator/trustAnchor/ValidateNC.java.i
 data/src/share/classes/sun/text/resources/CollationData_el.java.i
-data/test/java/nio/file/Files/walkFileTree/MaxDepth.java.i
 data/src/share/classes/java/lang/AutoCloseable.java.i
 data/test/java/nio/channels/Selector/WakeupEmpty.java.i
 data/src/share/native/sun/java2d/loops/LineUtils.h.i
-data/src/share/classes/sun/java2d/pipe/RenderBuffer.java.i
-data/src/share/classes/sun/swing/SwingUtilities2.java.i
-data/src/share/classes/sun/util/resources/CalendarData_en_IE.properties.i
-data/test/javax/swing/JFileChooser/6520101/bug6520101.java.i
+data/test/java/beans/XMLEncoder/java_lang_Character.java.i
+data/src/share/classes/com/sun/jdi/ThreadGroupReference.java.i
+data/test/java/lang/management/MemoryMXBean/PendingAllGC.sh.i
+data/src/share/classes/java/awt/MenuItem.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU8S16Func.c.i
+data/src/share/classes/sun/tools/jstat/Arguments.java.i
 data/test/java/io/DataInputStream/ReadLinePushback.java.i
 data/src/share/classes/javax/swing/plaf/synth/Region.java.i
 data/src/share/classes/sun/misc/Unsafe.java.i
 data/test/java/io/Serializable/nullArgExceptionOrder/Test.java.i
-data/src/share/classes/javax/print/MimeType.java.i
+data/test/java/awt/font/TextLayout/TextLayoutBounds.java.i
 data/src/share/classes/sun/net/ProgressListener.java.i
 data/src/share/classes/java/text/BreakIterator.java.i
-data/src/share/classes/sun/io/ByteToCharConverter.java.i
+data/test/sun/java2d/cmm/ColorConvertOp/ColorConvertTest.java.i
 data/src/share/classes/sun/nio/cs/ThreadLocalCoders.java.i
-data/test/javax/sound/midi/Gervill/SoftReceiver/Send_ProgramChange.java.i
+data/src/share/classes/sun/rmi/rmic/newrmic/jrmp/Constants.java.i
 data/src/share/classes/sun/management/ClassLoadingImpl.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java.i
 data/src/share/classes/sun/net/www/http/HttpCaptureOutputStream.java.i
 data/test/javax/management/remote/mandatory/connection/CloseUnconnectedTest.java.i
-data/test/javax/sound/midi/Gervill/SoftTuning/RealTimeTuning.java.i
+data/test/sun/security/pkcs11/KeyStore/BasicData/ca2.cert.i
 data/src/share/classes/javax/swing/plaf/metal/icons/ocean/paletteClose-pressed.gif.i
 data/src/share/classes/sun/tools/java/BinaryAttribute.java.i
 data/src/solaris/bin/ergo.c.i
@@ -5735,32 +5558,26 @@ data/src/share/classes/com/sun/java/swing/plaf/windows/icons/NewFolder.gif.i
 data/src/share/classes/com/sun/jndi/url/ldaps/ldapsURLContextFactory.java.i
 data/src/share/classes/sun/launcher/LauncherHelp.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiToolBarUI.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_fr_LU.properties.i
 data/src/share/demo/nbproject/management/JTop/build.properties.i
-data/src/share/classes/sun/text/resources/FormatData_zh_CN.java.i
-data/src/solaris/native/sun/awt/awt_DrawingSurface.h.i
+data/test/java/rmi/reliability/benchmark/bench/Util.java.i
 data/src/share/classes/java/util/zip/ZipCoder.java.i
-data/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java.i
-data/test/java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java.i
+data/test/javax/script/Test5.js.i
 data/test/java/awt/Insets/CombinedTestApp1.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes128CksumType.java.i
-data/test/java/beans/XMLEncoder/Test6256805.java.i
 data/src/solaris/native/sun/security/smartcardio/pcsc_md.h.i
+data/test/java/net/URL/GetContent.java.i
 data/src/share/classes/javax/security/auth/kerberos/KeyImpl.java.i
 data/make/sun/jkernel/FILES_java.gmk.i
-data/src/share/classes/javax/swing/tree/TreeCellRenderer.java.i
 data/src/share/classes/sun/dyn/FilterGeneric.java.i
 data/src/share/native/java/lang/fdlibm/src/s_signgam.c.i
 data/src/share/classes/java/nio/file/DirectoryNotEmptyException.java.i
 data/src/share/classes/javax/accessibility/AccessibleTextSequence.java.i
 data/src/solaris/classes/sun/awt/X11/XAbstractMenuItem.java.i
-data/src/share/classes/javax/swing/plaf/metal/sounds/PopupMenuPopup.wav.i
 data/src/share/classes/sun/management/snmp/jvminstr/README.i
-data/test/java/lang/reflect/Proxy/CharType.java.i
 data/src/solaris/classes/java/util/prefs/FileSystemPreferencesFactory.java.i
-data/src/share/demo/jvmti/hprof/hprof_monitor.h.i
+data/test/com/sun/org/apache/xml/internal/security/signature-enveloping-hmac-sha1-trunclen-8-attack.xml.i
 data/src/share/native/java/lang/fdlibm/src/w_pow.c.i
-data/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java.i
+data/src/share/classes/sun/misc/Queue.java.i
 data/src/share/classes/sun/tools/tree/UplevelReference.java.i
 data/src/share/classes/sun/awt/image/InputStreamImageSource.java.i
 data/src/share/classes/javax/sql/rowset/serial/SerialJavaObject.java.i
@@ -5769,68 +5586,65 @@ data/test/java/util/Locale/GenerateKeyList.java.i
 data/src/share/classes/java/dyn/Linkage.java.i
 data/src/share/classes/java/beans/Statement.java.i
 data/src/share/classes/sun/management/RuntimeImpl.java.i
-data/test/java/util/Collections/ViewSynch.java.i
 data/test/java/lang/System/Versions.java.i
-data/src/windows/javavm/export/jawt_md.h.i
 data/src/share/classes/javax/xml/crypto/dsig/Transform.java.i
-data/src/share/classes/sun/reflect/UnsafeQualifiedStaticByteFieldAccessorImpl.java.i
-data/src/share/native/sun/security/ec/ec.c.i
+data/test/java/awt/Robot/ManualInstructions/ManualInstructions.java.i
 data/src/share/classes/sun/io/CharToByteCp950.java.i
 data/make/tools/swing-beans/beaninfo/images/JLabelColor32.gif.i
 data/test/sun/security/pkcs11/nss/db/cert8.db.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/helper/C14nHelper.java.i
-data/test/javax/management/remote/mandatory/passwordAccessFile/access.properties.i
-data/test/java/io/BufferedInputStream/SkipTest.java.i
+data/src/share/classes/java/security/URIParameter.java.i
 data/src/share/classes/sun/nio/cs/UTF_16LE_BOM.java.i
-data/test/javax/management/relation/RelationNotificationSourceTest.java.i
+data/src/share/classes/sun/font/FontRunIterator.java.i
 data/src/share/classes/com/sun/servicetag/resources/javase_7_swordfish.properties.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/SignatureBaseRSA.java.i
-data/src/share/classes/javax/security/auth/callback/UnsupportedCallbackException.java.i
+data/src/share/classes/java/awt/datatransfer/Clipboard.java.i
 data/test/com/sun/jdi/ConnectedVMs.java.i
 data/src/share/sample/nio/chatserver/ChatServer.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.java.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmClassLoadingMeta.java.i
 data/make/sun/font/mapfile-vers.i
 data/src/share/classes/com/sun/jdi/ThreadReference.java.i
 data/src/share/classes/sun/text/resources/CollationData_fi.java.i
-data/src/share/classes/com/sun/beans/decoder/StringElementHandler.java.i
-data/src/share/classes/com/sun/beans/finder/PrimitiveTypeMap.java.i
-data/src/share/classes/javax/swing/text/doc-files/Document-insert.gif.i
-data/test/javax/management/remote/mandatory/socketFactories/RMIClientFactory.java.i
-data/src/share/native/java/lang/fdlibm/src/s_rint.c.i
+data/src/share/classes/sun/nio/ch/Invoker.java.i
+data/test/javax/swing/JFileChooser/6713352/bug6713352.java.i
+data/src/share/native/sun/font/layout/GlyphPosnLookupProc.cpp.i
+data/test/sun/net/www/protocol/http/Finalizer.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_nl.properties.i
+data/src/share/classes/java/awt/IllegalComponentStateException.java.i
 data/src/share/classes/java/net/Authenticator.java.i
 data/test/java/nio/file/Files/walkFileTree/TerminateWalk.java.i
-data/src/share/classes/javax/swing/event/HyperlinkEvent.java.i
 data/src/share/classes/com/sun/jmx/remote/security/JMXSubjectDomainCombiner.java.i
-data/test/com/sun/net/httpserver/Test3.java.i
-data/test/java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/Open.java.i
-data/test/java/util/Timer/KillThread.java.i
-data/src/share/classes/sun/net/www/protocol/https/HttpsClient.java.i
-data/test/java/lang/reflect/Generics/TestC2.java.i
+data/src/share/sample/nio/server/ChannelIOSecure.java.i
+data/src/share/classes/sun/swing/ImageCache.java.i
+data/src/share/classes/sun/java2d/DisposerRecord.java.i
+data/test/java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java.i
+data/test/java/util/ResourceBundle/Test4314141B_fr_CH.properties.i
 data/src/share/classes/java/net/Inet4Address.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java.i
 data/src/linux/doc/man/keytool.1.i
 data/test/javax/swing/JSlider/6587742/bug6587742.java.i
 data/src/share/native/sun/java2d/loops/AnyByteBinary.h.i
-data/src/windows/native/sun/windows/awt_Label.cpp.i
+data/test/java/io/PipedOutputStream/MultipleConnect.java.i
 data/test/javax/sound/midi/Gervill/AudioFloatInputStream/Skip.java.i
 data/test/java/util/ResourceBundle/Bug4168625Class.java.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/ByteCalls.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmMemMgrPoolRelEntryImpl.java.i
+data/src/share/classes/javax/swing/plaf/metal/MetalInternalFrameTitlePane.java.i
 data/src/solaris/instrument/FileSystemSupport_md.h.i
-data/src/share/classes/java/net/StandardSocketOption.java.i
+data/make/sun/font/t2k/mapfile-vers.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509KeyManager/NullCases.java.i
 data/src/share/classes/javax/imageio/plugins/jpeg/JPEGQTable.java.i
 data/test/java/util/ResourceBundle/Bug6190861.java.i
+data/src/share/classes/com/sun/media/sound/AiffFileReader.java.i
+data/src/share/classes/java/nio/file/attribute/AclEntryType.java.i
 data/src/share/classes/sun/java2d/DestSurfaceProvider.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSessionImpl/HashCodeMissing.java.i
 data/src/share/classes/sun/security/ssl/CipherBox.java.i
 data/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.java.i
 data/src/share/classes/java/net/doc-files/net-properties.html.i
 data/src/windows/classes/sun/security/krb5/internal/tools/Ktab.java.i
 data/src/solaris/native/sun/java2d/loops/vis_UshortGray.c.i
-data/test/java/io/Serializable/evolution/RenamePackage/extension/ExtendedObjectInputStream.java.i
-data/test/javax/management/MBeanInfo/MBeanInfoEqualsTest.java.i
-data/test/java/beans/Introspector/6380849/beans/ThirdBean.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignature.java.i
 data/test/java/security/cert/CertPathBuilder/targetConstraints/BuildOddSel.java.i
 data/src/solaris/native/java/io/RandomAccessFile_md.c.i
 data/src/share/classes/sun/nio/cs/ext/MacCyrillic.java.i
@@ -5846,55 +5660,55 @@ data/src/share/classes/javax/swing/event/PopupMenuEvent.java.i
 data/make/sun/headless/Makefile.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/AccessWatchpointSpec.java.i
 data/test/sun/net/www/httptest/ClosedChannelList.java.i
-data/test/javax/management/MBeanServer/DynamicWrapperMBeanTest.java.i
+data/test/java/rmi/server/RMIClassLoader/loadProxyClasses/FnnClass.java.i
 data/src/share/javavm/export/jdwpTransport.h.i
 data/test/javax/management/remote/mandatory/threads/NoServerTimeoutTest.java.i
 data/test/javax/management/openmbean/ConstraintTest.java.i
 data/src/windows/lib/content-types.properties.i
 data/test/javax/sound/midi/Gervill/ModelStandardTransform/NewModelStandardTransform.java.i
+data/test/java/net/Socket/LinkLocal.java.i
 data/test/java/lang/management/ManagementFactory/ProxyTypeMapping.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/icons/FloppyDrive.gif.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/package.html.i
 data/src/share/classes/com/sun/jdi/request/ClassUnloadRequest.java.i
 data/test/demo/jvmti/HeapUser.java.i
 data/make/common/shared/Sanity.gmk.i
-data/test/javax/print/StreamPrintingOrientation.java.i
 data/src/share/back/bag.h.i
-data/test/java/io/BufferedReader/EOL.java.i
 data/src/share/classes/sun/nio/ch/DirectBuffer.java.i
-data/test/java/beans/Introspector/Test5102804.java.i
-data/test/javax/management/ImplementationVersion/ImplVersionCommand.java.i
-data/test/java/beans/Introspector/Test4498236.java.i
+data/src/share/classes/javax/management/namespace/VirtualEventManager.java.i
+data/src/windows/native/sun/security/provider/WinCAPISeedGenerator.c.i
+data/src/share/classes/java/rmi/UnknownHostException.java.i
 data/src/share/classes/javax/naming/spi/InitialContextFactoryBuilder.java.i
 data/src/share/classes/sun/misc/VMSupport.java.i
 data/src/windows/classes/sun/awt/Win32GraphicsConfig.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_en_IN.properties.i
 data/make/tools/CharsetMapping/EUC_KR.map.i
 data/src/share/classes/sun/jkernel/ByteArrayToFromHexDigits.java.i
-data/src/share/classes/sun/text/resources/FormatData_ar_JO.java.i
+data/src/solaris/classes/sun/awt/X11/XToolkitThreadBlockedHandler.java.i
 data/src/share/classes/sun/management/counter/Variability.java.i
-data/src/share/back/standardHandlers.h.i
-data/src/linux/doc/man/javaws.1.i
+data/src/share/classes/java/lang/module/package-info.java.i
+data/src/windows/native/sun/jkernel/DownloadHelper.h.i
 data/src/share/classes/com/sun/crypto/provider/BlockCipherParamsCore.java.i
 data/src/share/native/java/util/zip/ZipFile.c.i
-data/src/share/native/sun/security/ec/mpprime.h.i
+data/src/share/classes/java/awt/GraphicsEnvironment.java.i
 data/src/share/classes/javax/swing/undo/StateEditable.java.i
 data/test/sun/net/www/protocol/jar/bar.jar.i
-data/make/tools/CharsetMapping/IBM420.c2b.i
-data/test/java/net/URLConnection/xml/not-xml1.i
+data/make/sun/jar/Makefile.i
+data/src/solaris/bin/arm/jvm.cfg.i
 data/test/com/sun/jdi/MethodCallsReflection.java.i
 data/src/share/native/sun/font/layout/IndicRearrangement.h.i
-data/test/sun/security/pkcs11/KeyStore/ClientAuthData/server.keystore.i
 data/src/share/classes/java/nio/channels/ServerSocketChannel.java.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/EchoImpl_Stub.java.i
 data/test/com/sun/jdi/VarargsTest.java.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassPath.java.i
 data/src/share/classes/javax/imageio/event/IIOReadWarningListener.java.i
-data/src/share/classes/java/util/jar/Pack200.java.i
+data/test/javax/crypto/Cipher/GetMaxAllowed.java.i
+data/src/share/classes/javax/swing/plaf/nimbus/NimbusStyle.java.i
+data/src/share/classes/java/util/jar/Manifest.java.i
 data/src/share/classes/sun/io/CharToByteCp935.java.i
 data/test/sun/security/pkcs11/Provider/Login.policy.i
 data/src/share/classes/sun/management/snmp/jvminstr/NotificationTarget.java.i
 data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_sv.properties.i
-data/src/share/demo/nio/zipfs/Demo.java.i
+data/make/tools/CharsetMapping/MS1254.map.i
 data/test/java/rmi/activation/Activatable/inactiveGroup/InactiveGroup_Stub.java.i
 data/test/java/lang/Math/RoundTests.java.i
 data/src/share/instrument/JPLISAssert.c.i
@@ -5906,19 +5720,18 @@ data/test/javax/crypto/SecretKeyFactory/README.FailOverTest.i
 data/src/solaris/classes/sun/awt/X11/UnsafeXDisposerRecord.java.i
 data/test/javax/management/remote/mandatory/connection/MultiOpenCloseTest.java.i
 data/src/share/classes/sun/security/krb5/internal/AuthorizationData.java.i
-data/test/java/net/CookieHandler/CookieManagerTest.java.i
+data/test/javax/sound/midi/Gervill/SoftReceiver/SoftTestUtils.java.i
 data/src/share/classes/com/sun/jdi/Location.java.i
-data/src/share/classes/java/sql/Array.java.i
+data/test/com/sun/management/GarbageCollectorMXBean/LastGCInfo.java.i
 data/test/java/util/Timer/Purge.java.i
 data/src/share/classes/java/security/AlgorithmParameterGeneratorSpi.java.i
 data/src/share/classes/java/text/spi/DecimalFormatSymbolsProvider.java.i
-data/test/java/lang/reflect/Module/ModuleAnnotationTest.java.i
 data/src/share/classes/sun/util/logging/resources/logging_es.properties.i
 data/test/com/sun/jdi/RedefineTTYLineNumber.sh.i
 data/src/share/classes/javax/naming/ldap/Control.java.i
 data/src/share/classes/javax/sound/midi/ShortMessage.java.i
 data/src/share/classes/sun/tools/jconsole/resources/disconnected24.png.i
-data/test/javax/print/applet/applet2/Applet2.java.i
+data/src/share/native/sun/java2d/loops/ByteIndexed.c.i
 data/src/share/classes/sun/java2d/loops/FontInfo.java.i
 data/test/java/beans/XMLEncoder/6777487/TestBox.java.i
 data/src/share/classes/sun/misc/RegexpPool.java.i
@@ -5929,52 +5742,55 @@ data/src/share/native/sun/awt/image/cvutils/img_globals.h.i
 data/src/share/classes/sun/rmi/rmic/newrmic/jrmp/Util.java.i
 data/src/share/demo/java2d/J2DBench/Makefile.i
 data/test/com/sun/jdi/Vars.java.i
-data/test/com/sun/jdi/ExpiredRequestDeletionTest.java.i
+data/src/share/classes/sun/tools/javac/BatchEnvironment.java.i
 data/src/share/classes/com/sun/jdi/ByteType.java.i
 data/test/java/lang/instrument/appendToClassLoaderSearch/AgentSupport.java.i
 data/src/share/demo/applets/MoleculeViewer/models/buckminsterfullerine.xyz.i
 data/src/share/classes/javax/swing/undo/CannotUndoException.java.i
 data/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/PerInterface.java.i
-data/test/javax/swing/JTableHeader/6884066/bug6884066.java.i
+data/src/share/classes/com/sun/jndi/rmi/registry/ReferenceWrapper.java.i
 data/src/share/classes/java/dyn/MethodTypeForm.java.i
 data/src/share/classes/javax/naming/ldap/SortKey.java.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpUnknownMsgProcModelException.java.i
 data/src/share/classes/javax/sql/RowSetMetaData.java.i
 data/src/share/classes/sun/security/x509/AccessDescription.java.i
+data/src/share/native/sun/awt/libpng/pngdebug.h.i
 data/src/share/classes/com/sun/jdi/connect/AttachingConnector.java.i
 data/src/share/classes/java/security/DigestInputStream.java.i
 data/src/share/classes/java/net/MalformedURLException.java.i
-data/test/sun/tools/jrunscript/repl.out.i
 data/src/share/classes/com/sun/jndi/ldap/SearchResultWithControls.java.i
-data/test/com/sun/management/OperatingSystemMXBean/GetTotalSwapSpaceSize.java.i
+data/src/solaris/classes/sun/nio/fs/UnixException.java.i
 data/src/windows/classes/sun/security/mscapi/SunMSCAPI.java.i
-data/src/share/native/java/util/zip/CRC32.c.i
+data/test/java/util/PluggableLocale/providersrc/Utils.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java.i
 data/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java.i
 data/src/share/classes/java/lang/invoke/ToGeneric.java.i
 data/src/share/classes/java/security/cert/LDAPCertStoreParameters.java.i
 data/src/share/classes/javax/print/event/PrintJobListener.java.i
-data/test/javax/print/attribute/SidesPageRangesTest.java.i
+data/make/tools/UnicodeData/PropList.txt.i
 data/test/java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak_Stub.java.i
 data/test/sun/pisces/StrokeShapeTest.java.i
 data/src/solaris/doc/sun/man/man1/ja/serialver.1.i
 data/src/share/classes/java/lang/module/ModuleId.java.i
+data/src/share/classes/sun/nio/cs/ext/ISO_8859_3.java.i
 data/test/java/lang/Class/forName/classes/hyphen.class.i
-data/src/share/classes/java/text/RuleBasedBreakIterator.java.i
+data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties.i
 data/src/share/classes/java/awt/Rectangle.java.i
+data/src/share/classes/java/lang/annotation/IncompleteAnnotationException.java.i
 data/src/share/classes/com/sun/jmx/snmp/daemon/package.html.i
 data/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Utils.c.i
 data/make/tools/swing-beans/GenSwingBeanInfo.java.i
 data/test/java/beans/VetoableChangeSupport/Test6630275.java.i
 data/test/javax/management/namespace/LeadingSeparatorsTest.java.i
-data/src/share/native/sun/security/ec/impl/secoidt.h.i
-data/test/java/awt/Modal/NpeOnClose/NpeOnCloseTest.java.i
+data/src/windows/native/sun/font/lcdglyph.c.i
+data/src/solaris/classes/sun/net/www/protocol/http/NTLMAuthentication.java.i
+data/test/com/oracle/net/sanity.sh.i
 data/src/share/classes/javax/naming/directory/BasicAttribute.java.i
 data/src/solaris/classes/sun/awt/X11/XEventDispatcher.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ar_IQ.properties.i
-data/src/share/classes/java/awt/peer/FontPeer.java.i
+data/src/share/classes/sun/awt/SubRegionShowable.java.i
 data/src/share/classes/java/nio/file/spi/FileTypeDetector.java.i
-data/test/java/beans/PropertyEditor/TestBooleanClassJava.java.i
 data/test/com/sun/security/sasl/gsskerb/ConfSecurityLayer.java.i
 data/test/com/sun/jdi/BacktraceFieldTest.java.i
 data/test/javax/swing/JPopupMenu/6694823/bug6694823.java.i
@@ -5983,7 +5799,6 @@ data/src/share/classes/java/lang/UnsupportedClassVersionError.java.i
 data/src/linux/doc/man/native2ascii.1.i
 data/src/windows/classes/sun/nio/fs/WindowsFileStore.java.i
 data/test/java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency.java.i
-data/src/solaris/native/sun/tools/attach/LinuxVirtualMachine.c.i
 data/src/share/classes/sun/reflect/generics/tree/CharSignature.java.i
 data/src/share/classes/com/sun/jndi/dns/DnsName.java.i
 data/make/common/shared/Sanity-Settings.gmk.i
@@ -5991,52 +5806,44 @@ data/test/java/rmi/server/useCustomRef/security.policy.i
 data/src/share/classes/com/sun/java/browser/net/ProxyService.java.i
 data/src/share/classes/sun/tools/jconsole/inspector/XOperations.java.i
 data/src/share/classes/java/nio/file/attribute/DosFileAttributes.java.i
-data/make/sun/headless/reorder-i586.i
-data/test/java/net/Socket/CloseAvailable.java.i
+data/src/share/classes/java/sql/DatabaseMetaData.java.i
 data/src/share/classes/java/security/cert/CertificateExpiredException.java.i
-data/test/java/security/cert/CertPathValidator/nameConstraintsRFC822/jane2steve.cer.i
 data/src/share/classes/javax/management/modelmbean/InvalidTargetObjectTypeException.java.i
 data/src/solaris/classes/sun/awt/X11/XDropTargetContextPeer.java.i
-data/src/solaris/native/sun/java2d/loops/vis_SrcOverMaskBlit.c.i
+data/test/java/io/BufferedReader/BigMark.java.i
 data/test/java/beans/PropertyEditor/TestBooleanTypeValue.java.i
-data/test/java/security/cert/CertPathValidator/nameConstraintsRFC822/steve2tom.cer.i
+data/test/sun/security/ssl/sanity/pluggability/MySSLSocketFacImpl.java.i
 data/test/java/lang/Enum/ValueOf.java.i
-data/src/share/classes/java/dyn/LinkagePermission.java.i
-data/test/javax/sound/midi/Gervill/SoftTuning/Load7.java.i
-data/test/sun/net/www/ParseUtil_4922813.java.i
+data/src/share/classes/sun/nio/cs/ext/MS1255.java.i
+data/test/sun/net/www/protocol/jar/B5105410.sh.i
 data/src/share/classes/java/dyn/DirectMethodHandle.java.i
 data/src/share/classes/javax/swing/text/PlainDocument.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitters.java.i
 data/test/sun/security/pkcs11/rsa/TestKeyPairGenerator.java.i
-data/test/java/util/TreeMap/NullPermissiveComparator.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract.c.i
 data/src/share/demo/nbproject/jfc/Font2DTest/build.xml.i
-data/src/windows/classes/sun/java2d/windows/Win32SurfaceData.java.i
+data/test/java/net/URLConnection/UnknownContentType.java.i
 data/test/sun/security/tools/keytool/autotest.sh.i
 data/src/share/classes/sun/nio/cs/IBM850.java.i
 data/src/solaris/native/sun/nio/fs/genSolarisConstants.c.i
-data/test/java/security/Security/SecurityPropFile/SecurityPropFile.policy.i
-data/test/javax/management/remote/mandatory/connection/AddressableTest.java.i
-data/src/solaris/classes/sun/awt/motif/MScrollPanePeer.java.i
-data/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html.i
-data/src/windows/classes/sun/awt/windows/WFontMetrics.java.i
-data/test/java/nio/channels/SocketChannel/Open.sh.i
+data/src/share/classes/sun/text/resources/FormatData_ar_SA.java.i
+data/src/share/classes/sun/awt/ModalityListener.java.i
+data/test/java/io/Serializable/defaultDataEnd/DefaultDataEnd.java.i
+data/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSessionNulls.java.i
 data/src/share/classes/java/awt/image/Kernel.java.i
 data/src/windows/native/java/lang/ProcessEnvironment_md.c.i
-data/src/share/classes/sun/util/resources/LocaleNames_et.properties.i
+data/src/windows/classes/sun/awt/windows/WingDings.java.i
 data/src/share/classes/sun/security/smartcardio/SunPCSC.java.i
 data/src/share/classes/java/sql/SQLNonTransientConnectionException.java.i
-data/src/share/back/ClassLoaderReferenceImpl.h.i
+data/test/com/sun/jndi/ldap/ReadTimeoutTest.java.i
 data/src/share/classes/javax/print/SimpleDoc.java.i
 data/src/share/classes/sun/net/www/http/KeepAliveStreamCleaner.java.i
 data/test/vm/verifier/VerifyStackForExceptionHandlers.java.i
-data/make/mksample/scripting/Makefile.i
+data/test/javax/sound/midi/Gervill/SoftReceiver/Send_ResetAllControllers.java.i
 data/src/share/classes/javax/sql/rowset/sqlxml.xsd.i
-data/test/java/nio/charset/spi/FooProvider.java.i
-data/src/share/classes/sun/nio/cs/ext/Big5_HKSCS_2001.java.i
-data/src/share/back/eventFilter.h.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/ImageTests.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver2.java.i
-data/test/sun/security/smartcardio/apdu.log.i
+data/test/java/io/LineNumberReader/SkipInput.txt.i
+data/test/tools/pack200/pack200-verifier/src/xmlkit/InstructionSyntax.java.i
+data/src/share/classes/com/sun/tools/example/debug/event/AbstractEventSet.java.i
+data/src/share/classes/javax/management/remote/JMXProviderException.java.i
 data/src/linux/doc/man/javac.1.i
 data/make/tools/src/build/tools/jdwpgen/IntTypeNode.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/NoThreadException.java.i
@@ -6045,86 +5852,84 @@ data/test/java/io/Serializable/class/SerialA.java.i
 data/test/java/nio/channels/SocketChannel/VectorIO.java.i
 data/src/share/classes/sun/security/pkcs/ParsingException.java.i
 data/test/sun/net/idn/nfsmxs.spp.i
-data/test/java/beans/PropertyEditor/TestLongClassJava.java.i
-data/test/javax/management/remote/mandatory/util/MapNullValuesTest.java.i
+data/make/tools/src/build/tools/generatebreakiteratordata/RuleBasedBreakIteratorBuilder.java.i
+data/make/tools/CharsetMapping/IBM860.map.i
 data/test/java/nio/channels/DatagramChannel/NoSender.java.i
-data/src/share/classes/java/awt/geom/Rectangle2D.java.i
-data/src/share/classes/javax/swing/LayoutStyle.java.i
+data/src/share/classes/javax/swing/text/TableView.java.i
 data/src/share/classes/sun/security/x509/CertificatePolicyId.java.i
-data/test/java/beans/PropertyEditor/TestFontClassNull.java.i
-data/test/java/net/HttpURLConnection/HttpResponseCode.java.i
-data/test/java/util/ResourceBundle/Control/Chinese.properties.i
-data/src/share/classes/javax/crypto/MacSpi.java.i
+data/test/java/io/PrintWriter/FailingConstructors.java.i
+data/test/sun/tools/jstatd/jstatdServerName.sh.i
+data/src/share/classes/javax/crypto/MacSpi.java.i
 data/src/share/classes/javax/imageio/plugins/bmp/BMPImageWriteParam.java.i
-data/test/java/rmi/activation/Activatable/extLoadedImpl/security.policy.i
 data/src/share/classes/sun/security/ssl/krb5/KerberosClientKeyExchangeImpl.java.i
 data/test/javax/swing/JList/6823603/bug6823603.java.i
-data/test/javax/crypto/Mac/NullMacSpi.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CloseSocket.java.i
 data/test/java/lang/management/OperatingSystemMXBean/TestSystemLoadAvg.sh.i
+data/make/com/sun/tools/attach/FILES_java.gmk.i
 data/src/share/classes/sun/misc/RequestProcessor.java.i
-data/src/share/classes/sun/beans/editors/ColorEditor.java.i
+data/test/sun/pisces/ThinLineTest.java.i
 data/src/share/classes/java/lang/invoke/VolatileCallSite.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java.i
 data/src/share/demo/jvmti/hprof/sample.makefile.txt.i
-data/src/share/classes/com/sun/beans/decoder/FalseElementHandler.java.i
+data/test/java/beans/XMLEncoder/java_util_Collections_CheckedList.java.i
 data/test/tools/launcher/i18nTest.sh.i
-data/test/java/lang/instrument/PremainClass/InheritAgent0011.java.i
 data/src/share/native/sun/awt/image/jpeg/jfdctflt.c.i
 data/test/java/nio/file/WatchService/OverflowEventIsLoner.java.i
+data/src/share/classes/java/awt/image/TileObserver.java.i
 data/src/windows/native/sun/windows/awt_KeyEvent.h.i
 data/src/share/native/java/util/zip/zlib-1.1.3/doc/algorithm.doc.i
-data/src/share/classes/sun/awt/resources/awt_zh_TW.properties.i
-data/src/share/classes/sun/text/resources/FormatData_ko.java.i
+data/src/share/classes/sun/reflect/generics/tree/MethodTypeSignature.java.i
+data/make/tools/src/build/tools/javazic/Mappings.java.i
 data/make/tools/CharsetMapping/IBM918.c2b.i
 data/test/java/net/InetAddress/IPv4Formats.java.i
-data/test/sun/tools/jps/jps-Vvm_Output1.awk.i
-data/test/javax/xml/crypto/dsig/GenerationTests.java.i
+data/test/java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java.i
 data/test/javax/management/namespace/NullObjectNameTest.java.i
 data/src/share/classes/sun/tools/tree/BinaryCompareExpression.java.i
-data/src/share/classes/sun/font/NullFontScaler.java.i
+data/src/share/classes/javax/print/URIException.java.i
 data/src/share/classes/sun/security/jca/ServiceId.java.i
-data/test/org/openjdk/jigsaw/pubrepo.sh.i
 data/src/solaris/classes/sun/awt/X11/XFramePeer.java.i
 data/src/share/classes/javax/print/attribute/standard/MediaPrintableArea.java.i
 data/src/share/classes/javax/naming/ldap/LdapName.java.i
 data/src/share/classes/javax/crypto/IllegalBlockSizeException.java.i
 data/make/mkdemo/jvmti/hprof/Makefile.i
-data/test/java/util/zip/InfoZip.java.i
 data/src/share/classes/javax/swing/DefaultSingleSelectionModel.java.i
-data/src/solaris/native/sun/nio/fs/LinuxWatchService.c.i
+data/src/share/classes/com/sun/tools/jdi/NonConcreteMethodImpl.java.i
+data/src/share/classes/java/security/SecureRandomSpi.java.i
 data/src/share/classes/sun/net/util/URLUtil.java.i
 data/src/share/classes/javax/naming/ServiceUnavailableException.java.i
 data/src/share/transport/shmem/sysShmem.h.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/rmi/package.html.i
+data/src/share/classes/com/sun/tools/hat/internal/server/InstancesQuery.java.i
+data/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUI.java.i
 data/src/share/classes/sun/io/ByteToCharCp921.java.i
 data/src/share/classes/sun/security/jgss/krb5/InitialToken.java.i
-data/src/share/classes/javax/swing/text/PlainView.java.i
-data/src/share/native/java/lang/fdlibm/src/w_exp.c.i
-data/src/share/classes/javax/xml/crypto/URIDereferencer.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelInsert.c.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmRuntimeMeta.java.i
+data/test/java/io/File/Create.java.i
+data/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java.i
+data/src/share/classes/javax/print/AttributeException.java.i
 data/src/share/demo/nbproject/management/MemoryMonitor/nbproject/netbeans-targets.xml.i
 data/src/share/classes/java/security/KeyPairGenerator.java.i
+data/src/share/classes/javax/naming/directory/InvalidSearchControlsException.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/ParserConstants.java.i
-data/src/share/classes/javax/accessibility/AccessibleRole.java.i
+data/test/java/lang/management/MemoryMXBean/CollectionUsageThresholdParallelGC.sh.i
 data/test/sun/security/krb5/etype/WeakCrypto.java.i
-data/test/sun/net/www/protocol/jar/foo.jar.i
+data/src/share/classes/sun/util/resources/CurrencyNames_pt.properties.i
 data/src/share/classes/com/sun/net/ssl/KeyManagerFactory.java.i
-data/test/java/security/SecureRandom/GetAlgorithm.java.i
+data/src/windows/classes/sun/security/mscapi/RSAKeyPairGenerator.java.i
 data/src/share/classes/com/sun/jmx/snmp/package.html.i
 data/test/javax/swing/MultiUIDefaults/4300666/bug4300666.html.i
 data/src/share/native/sun/security/ec/impl/mpi-config.h.i
 data/src/share/demo/nbproject/jfc/Metalworks/nbproject/file-targets.xml.i
-data/src/share/demo/nbproject/jfc/TransparentRuler/nbproject/jdk.xml.i
-data/test/javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java.i
+data/test/sun/net/www/http/HttpClient/GetProxyPort.java.i
 data/test/sun/security/provider/PolicyFile/SelfWildcard.policy.i
 data/test/sun/tools/jps/jps-Defaults.sh.i
 data/src/share/classes/com/sun/tools/hat/build.xml.i
-data/src/windows/classes/java/io/FileDescriptor.java.i
-data/test/java/io/Serializable/fieldTypeString/Write.java.i
 data/test/sun/nio/cs/OLD/SimpleEUCDecoder.java.i
 data/test/java/lang/management/MemoryMXBean/MemoryManagementParallelGC.sh.i
-data/src/share/classes/javax/swing/colorchooser/SlidingSpinner.java.i
+data/src/share/classes/javax/swing/plaf/basic/CenterLayout.java.i
 data/make/mksample/dtrace/Makefile.i
 data/src/share/classes/sun/nio/cs/ext/IBM1146.java.i
+data/src/share/demo/nbproject/README.txt.i
 data/src/share/classes/com/sun/jmx/snmp/internal/SnmpMsgProcessingModel.java.i
 data/src/share/classes/javax/print/DocFlavor.java.i
 data/src/solaris/classes/sun/nio/fs/DefaultFileTypeDetector.java.i
@@ -6134,14 +5939,11 @@ data/test/java/lang/reflect/Field/Set.java.i
 data/src/share/demo/jfc/FileChooserDemo/resources/images/jpgIcon.jpg.i
 data/src/share/demo/jvmti/hprof/hprof.h.i
 data/src/share/classes/sun/security/smartcardio/TerminalImpl.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_be_BY.properties.i
-data/test/java/util/zip/ZipFile/EnumAfterClose.java.i
-data/test/com/sun/net/httpserver/bugs/FixedLengthInputStream.java.i
+data/make/tools/swing-beans/SwingBeanInfo.template.i
 data/src/solaris/native/sun/java2d/loops/vis_AlphaMaskFill.c.i
-data/test/javax/xml/crypto/dsig/X509KeySelector.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_en_AU.properties.i
 data/src/share/classes/java/awt/MultipleGradientPaint.java.i
-data/src/share/classes/com/sun/beans/decoder/ClassElementHandler.java.i
+data/src/share/classes/sun/misc/Resource.java.i
 data/src/share/native/sun/java2d/loops/Blit.c.i
 data/src/share/classes/java/io/OptionalDataException.java.i
 data/test/javax/swing/JFormattedTextField/Test6462562.java.i
@@ -6149,33 +5951,35 @@ data/test/java/io/RandomAccessFile/skipBytes/SkipBytes.java.i
 data/test/java/io/FilterOutputStream/BoundsCheck.java.i
 data/make/sun/security/ec/mapfile-vers.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/RectangleShape.java.i
-data/src/share/classes/java/security/DomainCombiner.java.i
-data/src/share/classes/java/nio/file/Paths.java.i
-data/src/share/classes/sun/nio/cs/ext/JIS_X_0208_MS5022X_Encoder.java.i
+data/test/java/net/URL/TestPort.java.i
+data/test/com/sun/net/httpserver/Test3.java.i
+data/src/share/classes/sun/security/x509/SubjectAlternativeNameExtension.java.i
 data/test/java/awt/Mixing/MixingOnDialog.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/LaunchTool.java.i
 data/src/share/classes/java/awt/event/ItemEvent.java.i
 data/src/share/classes/java/text/PatternEntry.java.i
-data/test/java/awt/font/TextLayout/TestSinhalaChar.java.i
+data/src/share/native/sun/awt/image/jpeg/imageioJPEG.c.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverLocalFilesystem.java.i
 data/src/solaris/doc/sun/man/man1/java.1.i
-data/test/java/io/charStreams/LineSink.java.i
+data/src/solaris/doc/sun/man/man1/jps.1.i
 data/test/java/lang/ClassLoader/defineClass/TestClass.java.i
-data/test/java/awt/Robot/ManualInstructions/ManualInstructions.java.i
+data/src/share/classes/sun/text/resources/FormatData_it_CH.java.i
 data/test/java/security/cert/CertPathBuilder/StubProvider.java.i
-data/test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshalOnStopThread.java.i
+data/test/sun/security/tools/keytool/StartDateTest.java.i
 data/src/share/classes/sun/rmi/registry/resources/rmiregistry_it.properties.i
 data/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java.i
 data/src/solaris/classes/sun/awt/X11/XEmbedChildProxy.java.i
-data/test/java/io/Serializable/classDescGetField/GetField.java.i
+data/test/java/nio/channels/FileChannel/ReadToLimit.java.i
 data/make/sun/net/Makefile.i
 data/test/java/lang/reflect/Generics/HashCodeTest.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/MacOutputStream.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverXPointer.java.i
+data/src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.cpp.i
+data/src/share/classes/javax/naming/event/package.html.i
+data/make/sun/cmm/lcms/Makefile.i
+data/test/javax/management/remote/mandatory/subjectDelegation/jmxremote.password.i
 data/test/java/lang/System/IHashCode.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/Group.java.i
+data/test/sun/security/pkcs11/KeyStore/BasicData/pk2.key.i
 data/test/java/rmi/activation/Activatable/checkRegisterInLog/rmid.security.policy.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/ProviderInit.java.i
+data/src/share/classes/javax/xml/crypto/dom/package.html.i
 data/make/tools/GenerateCharacter/Character.c.template.i
 data/src/share/classes/com/sun/tools/example/debug/tty/LineNotFoundException.java.i
 data/test/java/beans/XMLEncoder/6777487/TestCheckedSortedSet.java.i
@@ -6187,84 +5991,85 @@ data/make/java/jvm/Makefile.i
 data/src/solaris/native/sun/awt/awt_XmDnD.h.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/icons/TreeOpen.gif.i
 data/make/tools/swing-beans/beaninfo/images/JMenuMono32.gif.i
+data/src/share/classes/javax/swing/text/html/BlockView.java.i
 data/src/share/classes/sun/rmi/runtime/Log.java.i
-data/src/share/native/sun/awt/image/dither.c.i
+data/test/java/net/Socket/IDNTest.java.i
+data/src/share/classes/com/sun/jmx/remote/protocol/rmi/ClientProvider.java.i
 data/src/share/native/common/jni_util.c.i
 data/src/solaris/native/sun/security/smartcardio/pcsc_md.c.i
 data/test/java/awt/Mouse/MouseModifiersUnitTest/ModifierPermutation.java.i
-data/test/com/sun/security/auth/login/ConfigFile/Override.props.i
-data/test/java/util/zip/FlaterTest.java.i
+data/make/tools/src/build/tools/charsetmapping/DBCS.java.i
+data/test/java/util/ResourceBundle/Control/Chinese_zh.properties.i
 data/src/share/classes/sun/text/resources/FormatData_mt_MT.java.i
+data/test/javax/management/generified/ListTypeCheckTest.java.i
+data/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java.i
 data/test/com/sun/nio/sctp/SctpServerChannel/Accept.java.i
 data/test/java/util/zip/ZipFile/FinalizeZipFile.java.i
-data/src/share/classes/com/sun/imageio/plugins/common/I18NImpl.java.i
+data/src/share/classes/javax/swing/tree/TreeCellRenderer.java.i
 data/test/java/util/ResourceBundle/Bug6356571.properties.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/CountedTimerTaskUtils.java.i
 data/src/solaris/native/java/io/io_util_md.c.i
-data/src/share/demo/nbproject/scripting/jconsole-plugin/build.properties.i
+data/src/share/native/com/sun/java/util/jar/pack/bytes.cpp.i
+data/src/share/classes/sun/io/ByteToCharUnicodeBigUnmarked.java.i
 data/make/mkdemo/jvmti/mapfile-vers.i
 data/src/share/classes/javax/swing/text/ViewFactory.java.i
 data/test/sun/security/ssl/sanity/interop/JSSEClient.java.i
-data/test/java/lang/ThreadGroup/Suspend.java.i
 data/src/share/classes/javax/swing/text/html/parser/ContentModel.java.i
 data/src/windows/native/sun/java2d/d3d/D3DBufImgOps.cpp.i
-data/test/sun/security/mscapi/noaccess.policy.i
 data/test/java/beans/PropertyEditor/TestDoubleClass.java.i
 data/src/share/classes/javax/crypto/KeyGeneratorSpi.java.i
 data/src/share/classes/sun/security/pkcs11/P11KeyFactory.java.i
 data/test/javax/management/Introspector/SqeDescriptorKey.java.i
 data/src/share/classes/java/lang/CharacterData.java.i
-data/test/java/util/zip/ZipFile/crash.jar.i
 data/src/share/classes/sun/io/CharToByteCp037.java.i
 data/make/tools/swing-beans/beaninfo/images/JTreeColor32.gif.i
-data/src/windows/classes/java/util/prefs/WindowsPreferences.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsRadioButtonUI.java.i
+data/test/java/util/jar/JarInputStream/EmptyJar.java.i
 data/test/java/net/URL/Constructor.java.i
 data/make/sun/awt/CondenseRules.awk.i
 data/test/javax/sound/midi/Gervill/ModelSource/NewModelSourceModelIdentifier.java.i
 data/src/share/classes/sun/io/ByteToCharJohab.java.i
 data/test/sun/security/provider/PolicyParser/ExtDirsChange.java.i
 data/src/share/classes/com/sun/jmx/snmp/UserAcl.java.i
-data/src/windows/native/sun/nio/ch/FileDispatcher.c.i
+data/test/java/io/File/SetLastModified.java.i
 data/src/share/classes/com/sun/naming/internal/VersionHelper12.java.i
 data/src/solaris/classes/sun/font/XRGlyphCacheEntry.java.i
 data/src/share/native/sun/font/bidi/uchardir.c.i
-data/test/com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.java.i
+data/test/java/net/URLConnection/ChunkedEncoding.java.i
 data/make/mksample/nio/server/Makefile.i
-data/src/share/classes/java/util/regex/package.html.i
+data/test/java/nio/channels/DatagramChannel/Receive.java.i
 data/src/share/classes/javax/print/attribute/standard/NumberOfInterveningJobs.java.i
-data/test/sun/tools/jstatd/jstatdServerName.sh.i
 data/src/share/classes/sun/net/www/http/PosterOutputStream.java.i
 data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_fr.properties.i
 data/src/share/native/sun/awt/image/jpeg/jdmarker.c.i
-data/test/java/util/PluggableLocale/BreakIteratorProviderTest.sh.i
 data/test/java/awt/PrintJob/EdgeTest/EdgeTest.java.i
 data/src/solaris/sample/dtrace/hotspot_jni/hotspot_jni_calls_stat.d.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/MgmtData.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JVM_MANAGEMENT_MIB.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/Constants.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTextAreaUI.java.i
 data/make/sun/rmi/rmic/Makefile.i
-data/test/java/util/concurrent/locks/ReentrantLock/LoopHelpers.java.i
+data/src/solaris/classes/java/net/DefaultDatagramSocketImplFactory.java.i
 data/make/common/internal/Resources.gmk.i
 data/src/share/classes/org/openjdk/jigsaw/Linker.java.i
 data/test/sun/net/InetAddress/nameservice/chaining/Simple2NameServiceDescriptor.java.i
-data/src/windows/classes/sun/font/NativeFont.java.i
 data/src/share/classes/com/sun/naming/internal/ResourceManager.java.i
 data/src/solaris/classes/sun/java2d/xr/XRMaskBlit.java.i
 data/test/sun/nio/cs/OLD/DBCS_IBM_EBCDIC_Encoder.java.i
 data/src/share/classes/sun/io/ByteToCharCp939.java.i
 data/make/sun/usagetracker/Makefile.i
-data/src/share/classes/com/sun/media/sound/SoftLimiter.java.i
+data/test/javax/security/auth/login/Configuration/GetInstance.configURI.i
+data/test/javax/swing/text/html/TableView/7030332/sample2.png.i
 data/test/com/sun/jdi/EarlyReturnTest.java.i
 data/test/sun/management/HotspotClassLoadingMBean/GetLoadedClassSize.java.i
-data/test/java/util/ResourceBundle/Bug4168625Resource.java.i
-data/src/share/bin/version_comp.c.i
+data/src/share/classes/java/awt/RenderingHints.java.i
 data/make/com/sun/image/Makefile.i
-data/src/share/lib/calendars.properties.i
+data/src/share/demo/jvmti/hprof/hprof_class.c.i
 data/src/share/classes/java/util/concurrent/Exchanger.java.i
-data/test/sun/nio/cs/OLD/MS932DB.java.i
+data/test/java/io/File/WinSpecialFiles.java.i
+data/src/share/classes/javax/net/ssl/SSLProtocolException.java.i
 data/test/java/io/ByteArrayInputStream/Skip.java.i
-data/src/windows/classes/sun/java2d/d3d/D3DGraphicsDevice.java.i
-data/test/java/math/BigDecimal/ScaleByPowerOfTenTests.java.i
+data/src/share/classes/java/nio/file/FileSystem.java.i
 data/src/share/classes/java/util/ArrayList.java.i
 data/src/share/native/sun/awt/splashscreen/splashscreen_impl.h.i
 data/src/share/classes/java/nio/file/attribute/PosixFileAttributes.java.i
@@ -6272,200 +6077,188 @@ data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest14_ko.ssl.in.i
 data/src/share/classes/sun/rmi/transport/proxy/RMIHttpToCGISocketFactory.java.i
 data/src/share/classes/sun/security/ssl/HandshakeHash.java.i
 data/src/share/classes/javax/management/timer/Timer.java.i
-data/test/java/security/ProtectionDomain/CheckWhatYouGet.java.i
 data/src/solaris/hpi/src/linker_md.c.i
 data/test/sun/security/x509/equalNames/AltNamesEqualsTest.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/CloseEngineException.java.i
 data/src/share/classes/com/sun/tools/jdi/PacketStream.java.i
 data/src/share/native/sun/font/layout/OpenTypeUtilities.cpp.i
 data/src/share/classes/java/nio/channels/AsynchronousSocketChannel.java.i
-data/test/java/awt/Frame/FrameLocation/FrameLocation.java.i
+data/test/sun/tools/jstat/jstatGcCauseOutput1.sh.i
 data/src/solaris/doc/sun/man/man1/ja/jrunscript.1.i
-data/src/share/classes/javax/print/attribute/standard/Fidelity.java.i
-data/test/java/net/URLConnection/ChunkedEncoding.java.i
+data/src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifScrollPaneUI.java.i
 data/test/java/nio/channels/SocketChannel/Connect.java.i
-data/test/java/util/Locale/serialized/java6locale_iw_IL.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppOutputStream/NoExceptionOnClose.java.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIDefault.java.i
 data/src/solaris/native/sun/awt/awt_KeyboardFocusManager.h.i
 data/make/common/shared/Defs-linux.gmk.i
 data/src/share/native/com/sun/java/util/jar/pack/coding.cpp.i
 data/src/share/classes/javax/sql/rowset/rowset.properties.i
-data/src/share/demo/java2d/J2DBench/resources/images/photo.jpg.i
 data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties.i
+data/src/share/classes/java/dyn/BootstrapMethod.java.i
+data/src/share/classes/sun/security/provider/ConfigSpiFile.java.i
 data/src/windows/native/java/net/icmp.h.i
 data/test/java/net/InetSocketAddress/B4849451.java.i
-data/test/java/net/InetAddress/B4762344.java.i
+data/src/share/classes/java/awt/event/WindowStateListener.java.i
 data/src/share/classes/javax/crypto/spec/DESKeySpec.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/CurrentFrameChangedEvent.java.i
 data/test/java/awt/Mixing/OverlappingButtons.java.i
-data/make/sun/awt/FILES_export_windows.gmk.i
+data/test/sun/misc/URLClassPath/ClassnameCharTest.sh.i
 data/src/share/classes/javax/naming/event/EventContext.java.i
-data/src/share/classes/sun/util/resources/TimeZoneNames_en_CA.java.i
-data/src/share/demo/jvmti/waiters/Agent.cpp.i
+data/src/solaris/classes/sun/awt/X11/XWM.java.i
 data/test/javax/management/remote/mandatory/provider/provider/JMXConnectorProviderImpl.java.i
 data/test/java/net/URL/share_file_urls.i
-data/src/share/demo/nbproject/jfc/Font2DTest/nbproject/netbeans-targets.xml.i
-data/src/share/classes/sun/misc/JavaUtilJarAccess.java.i
-data/test/sun/tools/jrunscript/jrunscript-cpTest.sh.i
+data/test/com/sun/servicetag/TestLoadFromXML.java.i
 data/src/share/native/sun/java2d/cmm/lcms/icc34.h.i
-data/test/java/util/Locale/Bug4184873_id.i
+data/test/javax/security/auth/login/Configuration/Synchronize.java.i
 data/src/share/classes/java/nio/channels/FileLock.java.i
+data/src/share/native/java/lang/fdlibm/src/s_frexp.c.i
 data/src/share/classes/sun/security/provider/certpath/Builder.java.i
-data/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserConstants.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuMouseListener.java.i
+data/src/windows/native/sun/windows/awt_ScrollPane.h.i
+data/test/sun/security/tools/keytool/console.sh.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuUI.java.i
+data/test/javax/swing/JPopupMenu/6675802/bug6675802.java.i
 data/src/share/back/stream.h.i
 data/src/share/native/java/util/zip/zlib-1.1.3/inftrees.c.i
-data/test/sun/tools/jstat/jstatCompilerOutput1.sh.i
-data/test/java/util/ResourceBundle/KeySetResources_ja_JP.properties.i
+data/src/share/classes/com/sun/media/sound/WaveFileReader.java.i
+data/test/sun/management/jmxremote/bootstrap/jmxremote_test04_ok.access.in.i
 data/src/share/classes/java/lang/ref/package.html.i
 data/src/share/classes/java/awt/doc-files/TextArea-1.gif.i
-data/test/java/awt/im/4959409/bug4959409.html.i
 data/src/share/classes/com/sun/media/sound/SoftInstrument.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer11.java.i
-data/test/java/beans/EventHandler/Test6277266.java.i
-data/test/java/lang/instrument/GetAllLoadedClassesTest.java.i
+data/src/share/demo/jvmti/hprof/hprof_cpu.h.i
+data/src/share/sample/nio/server/ChannelIO.java.i
+data/test/sun/security/pkcs11/rsa/KeyWrap.java.i
 data/make/tools/swing-beans/beaninfo/images/JToolBarColor32.gif.i
 data/src/share/classes/sun/net/httpserver/ExchangeImpl.java.i
-data/src/share/classes/sun/text/resources/FormatData_es_PY.java.i
 data/src/share/classes/sun/tools/jar/JarImageSource.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/X509Data.java.i
 data/src/solaris/native/sun/awt/awt.h.i
-data/test/java/nio/channels/Selector/Alias.java.i
-data/src/share/classes/sun/util/locale/ParseStatus.java.i
-data/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java.i
+data/src/share/demo/jvmti/hprof/hprof_site.h.i
+data/test/javax/swing/plaf/synth/SynthToolBarUI/6739756/bug6739756.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalComboBoxEditor.java.i
 data/src/windows/classes/sun/security/krb5/internal/tools/Klist.java.i
-data/test/sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java.i
+data/src/share/bin/parse_manifest.c.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpUnknownModelLcdException.java.i
 data/src/share/classes/javax/sql/rowset/spi/SyncProviderException.java.i
 data/test/java/net/URLClassLoader/closetest/test2/com/foo/TestClass.java.i
 data/src/share/classes/java/util/prefs/InvalidPreferencesFormatException.java.i
 data/src/share/classes/sun/management/counter/perf/PerfInstrumentation.java.i
-data/test/sun/nio/cs/ReadZero.java.i
-data/test/java/lang/StringBuilder/Insert.java.i
-data/test/javax/management/openmbean/ArrayTypeTest.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfo.java.i
+data/test/javax/print/applet/applet1/META-INF/services/javax.print.PrintServiceLookup.i
 data/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiPopupMenuUI.java.i
 data/src/share/classes/sun/text/resources/FormatData_en_CA.java.i
 data/make/com/sun/tools/attach/Exportedfiles.gmk.i
-data/test/java/lang/Class/getField/Exceptions.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_pt_BR.properties.i
+data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngineResult/Deserialize.java.i
+data/test/javax/swing/JLabel/6501991/bug6501991.java.i
 data/src/share/classes/javax/management/BinaryRelQueryExp.java.i
 data/src/share/classes/java/rmi/server/ServerRef.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/icons/Error.gif.i
 data/src/share/classes/com/sun/tools/example/doc/javadt.html.i
 data/src/share/classes/com/sun/jmx/remote/security/FileLoginModule.java.i
-data/src/share/classes/sun/jkernel/StandaloneByteArrayAccess.java.i
+data/src/windows/native/sun/windows/awt_Menu.cpp.i
 data/src/share/classes/sun/tools/native2ascii/Main.java.i
 data/test/java/io/Serializable/subclassGC/SubclassGC.java.i
 data/src/share/classes/java/util/List.java.i
 data/src/share/classes/javax/swing/text/PasswordView.java.i
 data/test/java/lang/management/CompositeData/MemoryNotifInfoCompositeData.java.i
-data/test/sun/pisces/JoinMiterTest.java.i
+data/make/com/sun/demo/jvmti/Makefile.i
 data/src/share/classes/com/sun/tracing/ProviderFactory.java.i
 data/src/share/classes/sun/security/jgss/spnego/NegTokenInit.java.i
 data/test/java/beans/PropertyEditor/TestColorClass.java.i
 data/src/share/back/SDE.h.i
-data/src/solaris/native/sun/awt/awt_Choice12.c.i
+data/test/java/io/Serializable/arraySuidConflict/Foo.java.i
 data/src/share/native/sun/java2d/loops/Any3Byte.h.i
 data/test/java/awt/font/TextLayout/CombiningPerf.java.i
 data/src/share/classes/javax/print/attribute/standard/OutputDeviceAssigned.java.i
-data/test/java/util/Collections/AddAll.java.i
-data/src/windows/classes/sun/java2d/d3d/D3DVolatileSurfaceManager.java.i
+data/src/share/classes/sun/io/CharToByteCp424.java.i
+data/test/java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak.java.i
 data/src/share/classes/java/util/zip/package.html.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuItemUI.java.i
 data/src/share/classes/java/nio/channels/spi/package.html.i
 data/test/java/security/KeyRep/HmacSHA1.pre.1.5.key.i
 data/test/java/rmi/activation/Activatable/elucidateNoSuchMethod/ElucidateNoSuchMethod.java.i
-data/test/java/nio/file/Files/Misc.java.i
+data/test/java/util/concurrent/DelayQueue/Stress.java.i
 data/src/share/native/sun/font/layout/SubtableProcessor.h.i
 data/src/share/classes/java/lang/invoke/AdapterMethodHandle.java.i
 data/test/javax/management/context/ContextForwarderTest.java.i
-data/test/java/lang/invoke/ClassValueTest.java.i
-data/src/share/native/sun/java2d/loops/AlphaMacros.c.i
-data/test/sun/net/www/protocol/http/B6660405.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_BA.properties.i
+data/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c.i
+data/test/sun/rmi/runtime/Log/4504153/Test4504153.java.i
 data/src/share/back/log_messages.h.i
 data/test/java/rmi/activation/log/LogTest.java.i
 data/test/sun/security/provider/certpath/CertId/CheckCertId.java.i
-data/test/java/beans/XMLDecoder/spec/TestFloat.java.i
-data/test/javax/management/security/AvoidGetMBeanInfoCallsTest.java.i
 data/src/share/classes/com/sun/nio/file/ExtendedCopyOption.java.i
 data/src/share/classes/com/sun/media/sound/SoftMixingClip.java.i
 data/test/javax/imageio/stream/StreamCloserLeak/run_test.sh.i
 data/test/javax/crypto/spec/RC5ParameterSpec/RC5ParameterSpecEquals.java.i
-data/src/share/sample/jmx/jmx-scandir/docfiles/connect-local-ant-run.jpg.i
+data/test/java/util/Locale/Bug4316602.java.i
 data/src/share/classes/java/awt/image/ImagingOpException.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/EffectUtils.java.i
-data/src/share/classes/com/sun/security/sasl/ClientFactoryImpl.java.i
+data/src/share/native/java/util/zip/zlib-1.1.3/deflate.h.i
+data/make/tools/classanalyzer/src/com/sun/classanalyzer/JigsawModuleBuilder.java.i
 data/src/share/classes/java/nio/file/attribute/UserPrincipalNotFoundException.java.i
 data/src/share/classes/javax/print/attribute/IntegerSyntax.java.i
-data/test/javax/swing/JComponent/4337267/bug4337267.java.i
+data/src/share/classes/sun/io/CharToByteISO8859_7.java.i
 data/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java.i
-data/src/share/classes/sun/nio/cs/ext/SJIS_0213.java.i
 data/src/share/demo/nbproject/jfc/TableExample/build.properties.i
-data/src/share/classes/sun/tools/jstat/Scale.java.i
-data/test/com/sun/security/auth/login/ConfigFile/PropertyExpansion.java.i
+data/test/sun/management/jmxremote/bootstrap/management_test02_ok.properties.in.i
+data/src/share/classes/sun/awt/im/CompositionArea.java.i
 data/test/java/util/ResourceBundle/Control/ExpirationTest.sh.i
 data/test/java/lang/instrument/AppendToClassPathSetUp.sh.i
 data/test/java/io/Reader/Skip.java.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/package.html.i
+data/src/share/classes/com/sun/tools/jdi/TypeImpl.java.i
 data/src/share/demo/management/MemoryMonitor/README.txt.i
+data/src/share/classes/java/nio/channels/package-info.java.i
 data/src/share/classes/java/awt/image/RenderedImage.java.i
 data/test/java/security/cert/CertPathBuilder/StubProviderImpl.java.i
 data/make/tools/swing-beans/beaninfo/images/JRadioButtonMono32.gif.i
-data/src/share/demo/jfc/Metalworks/KhakiMetalTheme.java.i
+data/src/share/classes/com/sun/jndi/ldap/sasl/SaslOutputStream.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM964.java.d
 data/src/share/native/sun/java2d/pipe/BufferedMaskBlit.c.i
-data/test/java/net/Socket/SocksConnectTimeout.java.i
-data/src/share/native/java/lang/Throwable.c.i
+data/src/solaris/classes/sun/awt/X11/XlibWrapper.java.i
 data/src/share/classes/sun/management/HotspotCompilationMBean.java.i
-data/test/java/rmi/reliability/juicer/OrangeEcho.java.i
+data/src/share/classes/javax/swing/event/UndoableEditListener.java.i
 data/src/share/classes/com/sun/jndi/toolkit/url/Uri.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/Traffic.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/Utils.java.i
 data/src/share/classes/javax/swing/text/GlyphPainter2.java.i
 data/make/modules/ld.jdk.swing.i
 data/test/java/nio/charset/RemovingSunIO/TestUnmappableForLength.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/SetLoopType.java.i
 data/src/share/classes/javax/swing/DefaultListCellRenderer.java.i
 data/src/share/classes/com/sun/net/httpserver/Authenticator.java.i
-data/test/sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java.i
+data/src/share/classes/javax/imageio/spi/IIORegistry.java.i
 data/src/solaris/native/sun/nio/ch/Sctp.h.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/utils/HasUIDefaults.java.i
 data/src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/OptionSpec.java.i
-data/test/java/net/URL/TestRFC2732.java.i
-data/test/sun/tools/jrunscript/jrunscript-argsTest.sh.i
+data/src/share/classes/java/util/concurrent/CopyOnWriteArraySet.java.i
 data/src/share/classes/sun/security/krb5/internal/ccache/CredentialsCache.java.i
 data/src/share/classes/sun/io/ByteToCharCp866.java.i
 data/src/share/classes/sun/security/rsa/RSAPrivateKeyImpl.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmRuntimeMBean.java.i
-data/test/java/util/Arrays/CopyMethods.java.i
+data/make/templates/gpl-header.i
 data/make/tools/spp/Makefile.i
 data/src/share/classes/sun/io/ByteToCharMacDingbat.java.i
-data/make/netbeans/world/nbproject/project.xml.i
-data/test/javax/security/auth/Subject/doAs/Test.java.i
+data/test/java/net/URLConnection/xml/not-xml1.i
 data/src/windows/classes/sun/io/Win32ErrorMode.java.i
 data/src/share/classes/javax/sound/midi/Instrument.java.i
-data/test/java/rmi/reliability/juicer/Orange.java.i
+data/test/sun/security/provider/PolicyFile/AliasExpansion.java.i
 data/src/solaris/native/sun/java2d/loops/mlib_ImageCopy.h.i
 data/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java.i
-data/test/java/net/Authenticator/BasicTest3.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiOptionPaneUI.java.i
 data/src/share/classes/sun/text/resources/FormatData_es_MX.java.i
 data/src/solaris/native/sun/awt/VDrawingArea.h.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelInsert.h.i
 data/src/solaris/native/sun/java2d/loops/vis_IntArgbPre_Mask.c.i
-data/test/java/nio/file/Files/probeContentType/META-INF/services/java.nio.file.spi.FileTypeDetector.i
+data/src/share/classes/sun/io/ByteToCharCp875.java.i
+data/test/sun/net/InetAddress/nameservice/SimpleNameServiceDescriptor.java.i
 data/test/java/nio/channels/Selector/WakeupOverflow.java.i
 data/src/share/classes/sun/management/resources/agent_sv.properties.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/rmi/RemoteMonitoredVm.java.i
-data/test/sun/security/krb5/auto/OkAsDelegate.java.i
+data/src/share/classes/sun/awt/image/ToolkitImage.java.i
+data/src/share/classes/com/sun/tools/hat/internal/server/OQLQuery.java.i
 data/test/sun/security/pkcs11/fips/truststore.i
-data/test/sun/security/tools/keytool/SecretKeyKS.sh.i
 data/test/java/rmi/activation/Activatable/unregisterInactive/security.policy.i
 data/test/java/lang/ProcessBuilder/BigFork.java.i
-data/src/share/classes/javax/print/attribute/TextSyntax.java.i
 data/src/share/classes/sun/font/Decoration.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetDefaultSoundbank.java.i
 data/src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java.i
@@ -6474,52 +6267,56 @@ data/src/share/native/java/lang/fdlibm/src/w_scalb.c.i
 data/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java.i
 data/test/sun/security/mscapi/PrngSlow.java.i
 data/src/solaris/classes/sun/java2d/xr/MutableInteger.java.i
-data/test/javax/swing/border/Test4243289.html.i
+data/src/share/classes/sun/java2d/pipe/SolidTextRenderer.java.i
 data/src/share/classes/javax/swing/text/EditorKit.java.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_SLOT_INFO.java.i
 data/src/share/native/sun/security/ec/impl/ecp_192.c.i
 data/src/share/classes/sun/security/x509/CertificateIssuerExtension.java.i
-data/src/share/classes/sun/io/CharToByteCp964.java.i
+data/src/share/classes/java/awt/PopupMenu.java.i
+data/test/java/io/Serializable/primitiveClasses/PrimitiveClasses.java.i
 data/src/share/classes/sun/text/resources/FormatData_hi_IN.java.i
+data/src/share/classes/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java.i
 data/src/share/classes/java/awt/dnd/DragGestureRecognizer.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_en_SG.properties.i
+data/src/share/classes/sun/io/CharToByteCp860.java.i
 data/src/share/classes/java/util/TimeZone.java.i
 data/src/share/native/sun/java2d/loops/Ushort4444Argb.c.i
 data/make/modules/tools/src/com/sun/classanalyzer/Klass.java.i
-data/src/share/classes/java/nio/channels/InterruptibleChannel.java.i
+data/src/solaris/classes/java/util/prefs/FileSystemPreferences.java.i
 data/src/share/classes/java/beans/EventHandler.java.i
-data/test/java/util/ServiceLoader/FooProvider2.java.i
+data/test/java/util/Hashtable/HashCode.java.i
 data/src/windows/native/java/lang/java_props_md.c.i
 data/test/java/rmi/reliability/benchmark/bench/serial/Shorts.java.i
-data/src/windows/native/sun/windows/awt_dlls.h.i
+data/src/share/classes/sun/tools/tree/AssignExpression.java.i
 data/make/com/sun/jndi/toolkit/Makefile.i
-data/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java.i
+data/src/share/sample/scripting/scriptpad/src/resources/Main.js.i
 data/test/java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html.i
-data/make/tools/CharsetMapping/MS936.map.d
+data/test/java/io/Serializable/proxy/replace/Test.java.i
 data/src/share/classes/com/sun/net/ssl/HttpsURLConnection.java.i
 data/test/javax/management/descriptor/DescriptorConstructorTest.java.i
 data/make/tools/CharsetMapping/MS936.map.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/LoadInstrument.java.i
+data/src/share/classes/com/sun/media/sound/DLSInfo.java.i
 data/src/share/classes/java/awt/print/Pageable.java.i
-data/src/share/classes/com/sun/jndi/ldap/pool/ConnectionsWeakRef.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_lt.properties.i
 data/src/share/classes/sun/tools/tree/BinaryBitExpression.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageConv.h.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/ContentHandlerAlreadyRegisteredException.java.i
 data/src/share/classes/sun/reflect/UnsafeStaticObjectFieldAccessorImpl.java.i
+data/src/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template.i
 data/src/linux/doc/man/ja/native2ascii.1.i
 data/src/share/demo/jfc/SwingApplet/README.txt.i
 data/test/sun/util/resources/TimeZone/Bug6377794.java.i
 data/src/windows/classes/sun/java2d/d3d/D3DMaskBlit.java.i
 data/test/sun/misc/ClassLoaderUtil/test.jar.i
-data/test/sun/nio/cs/TestUTF8.java.i
+data/make/tools/CharsetMapping/IBM935.c2b.i
 data/src/solaris/classes/sun/awt/X11/XLayerProtocol.java.i
 data/src/share/classes/com/sun/jndi/ldap/ReferralEnumeration.java.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpMessage.java.i
+data/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java.i
 data/make/tools/classanalyzer/nbproject/project.properties.i
 data/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java.i
 data/test/sun/security/krb5/auto/TcpTimeout.java.i
 data/src/share/classes/javax/naming/ldap/UnsolicitedNotificationListener.java.i
 data/src/share/demo/jfc/FileChooserDemo/resources/images/gifIcon.gif.i
+data/src/share/classes/sun/security/pkcs11/TemplateManager.java.i
 data/test/sun/management/jmxremote/bootstrap/linux-i586/launcher.i
 data/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Decoder.java.i
 data/make/Makefile.i
@@ -6528,66 +6325,66 @@ data/src/share/classes/sun/reflect/generics/tree/BooleanSignature.java.i
 data/test/sun/security/pkcs11/tls/TestMasterSecret.java.i
 data/test/tools/pack200/pack200-verifier/src/xmlkit/XMLKit.java.i
 data/src/share/classes/sun/text/normalizer/UTF16.java.i
-data/src/share/classes/javax/swing/JSlider.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract.h.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/ElementChecker.java.i
+data/src/share/classes/java/text/Collator.java.i
 data/src/share/classes/sun/security/x509/CRLNumberExtension.java.i
 data/test/sun/security/pkcs11/Signature/TestRSAKeyLength.java.i
 data/test/org/openjdk/jigsaw/cli/ca-cert.pem.i
 data/test/java/util/Random/DistinctSeeds.java.i
-data/src/share/classes/org/openjdk/jigsaw/cli/Commands.java.i
-data/test/java/nio/file/DirectoryStream/Basic.java.i
+data/test/javax/management/eventService/CustomForwarderTest.java.i
+data/test/java/security/Provider/Equals.java.i
+data/test/java/rmi/Naming/legalRegistryNames/Legal.java.i
 data/src/share/classes/sun/net/www/protocol/jar/URLJarFileCallBack.java.i
-data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/MyX509ExtendedKeyManager.java.i
+data/src/share/classes/javax/imageio/plugins/jpeg/JPEGImageReadParam.java.i
 data/src/share/classes/sun/reflect/generics/repository/FieldRepository.java.i
 data/test/java/lang/ClassLoader/deadlock/Bob.java.i
 data/src/share/classes/sun/awt/image/IntegerComponentRaster.java.i
 data/test/java/lang/management/ManagementFactory/MBeanServerMXBeanUnsupportedTest.java.i
 data/src/share/classes/sun/applet/resources/MsgAppletViewer_es.java.i
+data/src/share/classes/java/util/concurrent/atomic/package-info.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/DesCbcCrcEType.java.i
 data/src/share/native/sun/font/layout/MultipleSubstSubtables.h.i
 data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties.i
 data/make/tools/dtdbuilder/dtds/html32.dtd.i
-data/src/share/sample/scripting/scriptpad/build.xml.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/AclImpl.java.i
+data/src/share/classes/javax/naming/spi/InitialContextFactory.java.i
 data/test/java/lang/instrument/PremainClass/InheritAgent1110.java.i
 data/test/java/io/File/isDirectory/Applet.html.i
-data/test/java/io/Serializable/concurrentClassDescLookup/ConcurrentClassDescLookup.java.i
+data/test/java/util/Locale/serialized/java6locale__US.i
 data/src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java.i
 data/test/javax/script/Test6.js.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaField.java.i
 data/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js.i
+data/test/java/nio/channels/FileChannel/Read.java.i
 data/src/share/native/sun/font/layout/KhmerLayoutEngine.cpp.i
-data/src/share/classes/javax/naming/ldap/Rdn.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputTests.java.i
+data/src/share/classes/javax/swing/plaf/metal/sounds/PopupMenuPopup.wav.i
 data/src/share/native/java/lang/fdlibm/src/s_ceil.c.i
 data/make/mksample/nio/chatserver/Makefile.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/IgnoreAllErrorHandler.java.i
-data/test/java/beans/Introspector/TestTypeResolver.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMInformCommunity.java.i
 data/src/share/classes/com/sun/jndi/ldap/LdapNameParser.java.i
 data/test/java/util/Collections/WrappedNull.java.i
 data/test/java/beans/XMLDecoder/spec/AbstractTest.java.i
-data/src/share/classes/javax/management/NotificationInfos.java.i
+data/test/java/nio/Buffer/BasicFloat.java.i
 data/src/share/classes/sun/io/CharToByteMacArabic.java.i
-data/src/share/classes/sun/tools/jstat/ExpressionExecuter.java.i
-data/test/java/net/InetAddress/ptr/lookup.sh.i
+data/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java.i
+data/src/share/classes/sun/security/acl/WorldGroupImpl.java.i
 data/src/share/classes/sun/security/ssl/AppOutputStream.java.i
-data/src/windows/classes/sun/nio/fs/WindowsFileAttributeViews.java.i
+data/src/share/classes/sun/text/normalizer/ICUBinary.java.i
+data/src/windows/transport/shmem/shmem_md.h.i
 data/test/javax/xml/crypto/dsig/data/sign-spec.xml.i
 data/src/share/classes/sun/print/resources/orientLandscape.png.i
 data/src/share/classes/java/security/ProtectionDomain.java.i
 data/src/share/classes/com/sun/tools/jdi/IntegerTypeImpl.java.i
-data/test/java/nio/channels/SocketChannel/ConnectState.java.i
-data/test/java/security/Policy/Dynamic/setpolicy.jp.i
+data/test/java/io/Serializable/maskSyntheticModifier/Foo.java.i
 data/src/share/classes/sun/security/internal/spec/TlsKeyMaterialSpec.java.i
 data/src/solaris/native/sun/awt/awt_MenuComponent.c.i
-data/test/java/lang/Thread/GenerifyStackTraces.java.i
+data/src/share/classes/java/text/BreakDictionary.java.i
 data/make/sun/audio/Makefile.i
 data/src/windows/native/sun/net/www/protocol/http/NTLMAuthSequence.c.i
-data/test/javax/security/auth/login/LoginContext/ModuleSubjectModule.java.i
+data/test/sun/security/provider/DSA/TestKeyPairGenerator.java.i
 data/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_Ports.c.i
 data/src/share/classes/java/lang/Deprecated.java.i
 data/src/windows/native/sun/windows/awt_DnDDS.h.i
-data/test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.java.i
 data/src/share/back/eventHelper.c.i
 data/test/sun/security/pkcs11/Cipher/TestRawRSACipher.java.i
 data/src/share/classes/com/sun/media/sound/MidiInDeviceProvider.java.i
@@ -6600,62 +6397,60 @@ data/src/share/classes/sun/misc/resources/Messages_fr.java.i
 data/src/share/native/java/util/zip/zlib-1.2.3/zlib.h.i
 data/src/linux/doc/man/unpack200.1.i
 data/.jcheck/conf.i
-data/test/javax/management/mxbean/GenericArrayTypeTest.java.i
 data/src/share/classes/com/sun/tools/script/shell/init.js.i
-data/test/sun/security/provider/certpath/ReverseBuilder/mgrM2prjM.i
 data/make/java/main/Makefile.i
 data/src/share/back/FieldImpl.h.i
 data/src/share/classes/javax/sound/midi/MidiDevice.java.i
-data/src/share/classes/java/util/Locale.java.i
+data/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java.i
+data/test/com/sun/security/auth/callback/TextCallbackHandler/NPE.java.i
 data/src/share/native/java/lang/fdlibm/src/w_acosh.c.i
 data/test/java/util/PluggableLocale/providersrc/CurrencyNameProviderImpl.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties.i
-data/src/share/native/sun/security/ec/ec2_233.c.i
-data/src/share/native/sun/awt/medialib/mlib_ImageConvMxN.c.i
+data/make/tools/CharsetMapping/HKSCS2008.c2b.i
+data/src/share/classes/sun/text/resources/FormatData_de_LU.java.i
+data/src/share/classes/sun/security/validator/Validator.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/package.html.i
 data/src/share/native/common/jdk_util.h.i
 data/test/java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java.i
-data/test/javax/management/modelmbean/ExoticTargetTypeTest.java.i
 data/src/share/classes/javax/swing/SortOrder.java.i
-data/src/solaris/native/sun/awt/awt_KeyboardFocusManager.c.i
 data/src/share/classes/sun/launcher/resources/launcher_ko.properties.i
 data/make/tools/swing-beans/beaninfo/images/JRadioButtonMenuItemColor16.gif.i
 data/src/share/demo/nbproject/jfc/SampleTree/nbproject/project.xml.i
 data/test/sun/security/pkcs11/MessageDigest/DigestKAT.java.i
-data/src/solaris/doc/sun/man/man1/rmid.1.i
 data/src/share/classes/sun/text/resources/FormatData_bg.java.i
 data/make/java/text/bidi/Makefile.i
 data/src/share/classes/java/lang/Class.java.i
 data/src/share/classes/com/sun/jdi/connect/IllegalConnectorArgumentsException.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthCheckBoxMenuItemUI.java.i
-data/src/share/native/sun/nio/ch/nio.h.i
-data/src/share/native/sun/font/layout/SinglePositioningSubtables.cpp.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/X509SubjectNameResolver.java.i
+data/make/java/java/mapfile-vers.i
 data/src/share/classes/java/rmi/dgc/DGC.java.i
-data/src/share/native/sun/security/ec/impl/ecp_aff.c.i
+data/test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh.i
 data/src/share/classes/javax/swing/plaf/multi/MultiSliderUI.java.i
 data/test/java/awt/xembed/server/TesterClient.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicEditorPaneUI.java.i
-data/test/java/awt/geom/CubicCurve2D/IntersectsTest.java.i
-data/src/share/classes/sun/reflect/generics/tree/BottomSignature.java.i
+data/test/java/security/cert/CertPathValidator/OCSP/AIACert.pem.i
+data/src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java.i
+data/src/share/classes/sun/text/resources/FormatData_sk_SK.java.i
 data/test/java/io/Serializable/evolution/AddedSuperClass/ReadAddedSuperClass2.java.i
 data/test/com/sun/jdi/ExceptionEvents.java.i
-data/src/share/classes/org/openjdk/internal/joptsimple/OptionSpecTokenizer.java.i
+data/test/java/lang/instrument/BufferClassLoader.java.i
 data/src/share/classes/sun/io/ByteToCharCp1251.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifBorders.java.i
-data/src/share/native/java/util/zip/zip_util.c.i
+data/make/tools/CharsetMapping/IBM970.c2b.i
 data/src/share/classes/java/lang/SuppressWarnings.java.i
 data/make/tools/GenerateCharacter/CharacterData0E.java.template.i
 data/test/com/sun/management/HotSpotDiagnosticMXBean/GetVMOption.java.i
 data/src/share/classes/sun/util/logging/resources/logging_pt_BR.properties.i
-data/src/solaris/native/sun/security/smartcardio/MUSCLE/pcsclite.h.i
 data/make/mkdemo/jpda/Makefile.i
 data/test/java/beans/PropertyEditor/TestLongClassNull.java.i
-data/src/share/classes/sun/java2d/SurfaceData.java.i
+data/test/java/nio/channels/Selector/SelectAfterRead.java.i
 data/test/com/sun/crypto/provider/Cipher/RSA/TestOAEP.java.i
 data/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderException.java.i
 data/test/sun/java2d/cmm/ProfileOp/ReadProfileTest.java.i
 data/src/share/classes/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java.i
 data/src/share/classes/sun/reflect/UnsafeIntegerFieldAccessorImpl.java.i
-data/test/javax/management/descriptor/ImmutableArrayFieldTest.java.i
+data/test/com/sun/jdi/ShutdownDebuggee.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/Base64.java.i
 data/src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java.i
 data/test/java/util/regex/TestCases.txt.i
@@ -6667,121 +6462,119 @@ data/test/sun/security/krb5/auto/MaxRetries.java.i
 data/src/share/classes/sun/security/krb5/internal/ktab/KeyTabInputStream.java.i
 data/src/share/classes/java/awt/doc-files/FontMetrics-1.gif.i
 data/test/java/rmi/server/RMIClassLoader/spi/ServiceConfiguration.java.i
-data/src/share/classes/sun/awt/FocusingTextField.java.i
 data/src/share/classes/com/sun/jdi/VoidValue.java.i
+data/src/share/classes/com/sun/imageio/stream/StreamCloser.java.i
 data/src/share/classes/java/lang/ArrayIndexOutOfBoundsException.java.i
 data/src/share/native/sun/awt/image/cvutils/img_opaque.h.i
 data/src/share/native/java/util/zip/Inflater.c.i
 data/test/java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java.i
-data/test/java/net/URLClassLoader/getresourceasstream/Test.java.i
+data/make/com/sun/jndi/rmi/Makefile.i
 data/test/javax/management/monitor/ReflectionExceptionTest.java.i
 data/src/share/classes/sun/reflect/generics/repository/AbstractRepository.java.i
+data/src/share/classes/java/lang/IllegalMonitorStateException.java.i
 data/make/java/main/java/mapfile-i586.i
-data/test/sun/net/www/protocol/http/SetChunkedStreamingMode.java.i
 data/test/java/util/Currency/tablea1.txt.i
 data/src/share/native/sun/security/ec/impl/ecp_256.c.i
 data/src/share/classes/javax/sql/StatementEventListener.java.i
-data/src/share/classes/sun/launcher/resources/launcher_ja.properties.i
+data/test/sun/security/provider/PolicyFile/Comparator.Comparator.Policy.i
+data/test/java/util/Formatter/Basic.java.i
+data/src/share/native/java/lang/fdlibm/src/e_lgamma_r.c.i
+data/test/com/sun/crypto/provider/Cipher/AES/Test4511676.java.i
 data/src/share/classes/javax/print/attribute/standard/JobKOctetsSupported.java.i
-data/test/sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java.i
+data/src/share/classes/sun/tools/jconsole/inspector/XTree.java.i
 data/test/java/net/URLClassLoader/closetest/serverRoot/Test.java.i
 data/make/tools/swing-beans/beaninfo/images/JDesktopPaneColor16.gif.i
 data/test/java/util/EnumSet/BogusEnumSet.java.i
-data/src/share/classes/java/security/spec/MGF1ParameterSpec.java.i
-data/make/sun/launcher/Makefile.i
-data/test/sun/net/www/protocol/jar/jarbug/src/jar1/GetResource.java.i
-data/test/java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak.java.i
-data/src/solaris/classes/sun/awt/X11/XInputMethod.java.i
+data/test/java/io/charStreams/LineSink.java.i
+data/src/share/classes/com/sun/security/auth/module/UnixSystem.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_TW.properties.i
+data/src/share/classes/javax/xml/crypto/Data.java.i
 data/test/java/lang/ClassLoader/deadlock/Alice.java.i
 data/test/javax/xml/crypto/dsig/data/signature-x509-sn.xml.i
 data/test/javax/sound/midi/Gervill/SoftLinearResampler/Interpolate.java.i
 data/test/java/io/StringReader/Skip.java.i
 data/test/java/io/PrintStream/OversynchronizedTest.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneDivider.java.i
-data/src/share/classes/sun/net/NetworkServer.java.i
+data/test/javax/sound/midi/Gervill/SoftAudioSynthesizer/Open.java.i
+data/src/share/classes/sun/management/counter/perf/PerfDataType.java.i
 data/src/share/classes/java/lang/ClassNotFoundException.java.i
+data/src/share/classes/sun/io/ByteToCharUTF16.java.i
 data/src/share/classes/sun/security/action/GetBooleanSecurityPropertyAction.java.i
-data/test/java/rmi/activation/ActivationSystem/unregisterGroup/CallbackInterface.java.i
+data/src/share/classes/javax/management/modelmbean/package.html.i
 data/test/java/nio/Buffer/CopyDirectDoubleMemory.java.i
 data/test/com/sun/jdi/CatchCaughtTest.sh.i
 data/src/windows/classes/sun/print/services/javax.print.StreamPrintServiceFactory.i
-data/test/java/net/URL/SpecifyHandler.java.i
-data/test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.java.i
+data/src/share/classes/javax/swing/text/TabStop.java.i
 data/src/share/classes/java/nio/channels/CompletionHandler.java.i
 data/src/share/classes/sun/awt/VerticalBagLayout.java.i
 data/src/share/classes/javax/net/ssl/TrustManagerFactory.java.i
 data/src/share/classes/com/sun/script/util/InterfaceImplementor.java.i
-data/src/windows/native/sun/jkernel/DownloadDialog.cpp.i
+data/test/java/lang/Class/forName/classes/comma.class.i
+data/src/share/native/common/check_format.c.i
 data/src/share/classes/javax/management/modelmbean/ModelMBeanInfoSupport.java.i
-data/test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOn.java.i
 data/test/java/rmi/server/RemoteServer/SetLogNull.java.i
 data/test/java/lang/management/MemoryMXBean/MemoryTestAllGC.sh.i
 data/src/solaris/native/java/nio/MappedByteBuffer.c.i
 data/src/share/classes/sun/tools/tree/LessOrEqualExpression.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java.i
 data/src/share/classes/com/sun/tools/jdi/InternalEventHandler.java.i
 data/test/com/sun/crypto/provider/Mac/HmacMD5.java.i
 data/src/share/native/java/lang/fdlibm/src/e_jn.c.i
 data/src/linux/doc/man/ja/wsgen.1.i
 data/test/java/beans/XMLEncoder/java_awt_Component.java.i
 data/src/share/native/java/util/zip/zlib-1.2.3/patches/inflate.c.diff.i
-data/src/share/classes/sun/jvmstat/monitor/remote/RemoteVm.java.i
+data/src/share/classes/com/sun/jmx/snmp/agent/SnmpErrorHandlerAgent.java.i
 data/src/share/sample/nio/file/Chmod.java.i
 data/src/share/classes/sun/rmi/server/resources/rmid_it.properties.i
 data/src/share/back/inStream.h.i
 data/make/tools/src/build/tools/jdwpgen/FrameTypeNode.java.i
 data/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java.i
 data/test/java/lang/StringBuffer/GetCharsSrcEndLarger.java.i
-data/test/javax/swing/JPopupMenu/6495920/bug6495920.java.i
-data/src/share/native/sun/java2d/opengl/OGLFuncs.h.i
+data/test/sun/pisces/DashStrokeTest.java.i
+data/test/com/sun/jdi/MethodExitReturnValuesTest.java.i
 data/src/share/classes/com/sun/crypto/provider/Padding.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/Main.java.i
+data/src/share/classes/java/security/interfaces/DSAParams.java.i
 data/src/share/native/sun/java2d/loops/IntBgr.c.i
-data/src/share/classes/javax/swing/plaf/basic/BasicOptionPaneUI.java.i
+data/src/share/demo/applets/DrawTest/DrawTest.java.i
 data/src/share/classes/java/awt/dnd/SerializationTester.java.i
-data/test/java/nio/charset/CharsetEncoder/CanEncode.java.i
 data/src/share/classes/java/rmi/ConnectException.java.i
 data/make/sun/javazic/tzdata/europe.i
 data/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java.i
 data/test/javax/management/loading/LibraryLoader/native.jar.i
-data/src/solaris/lib/flavormap.properties.i
+data/src/share/demo/jfc/Notepad/resources/new.gif.i
 data/src/share/back/vm_interface.h.i
-data/test/org/openjdk/jigsaw/cli/timestamp-test.sh.i
+data/src/share/classes/sun/security/x509/CertificateAlgorithmId.java.i
 data/src/share/demo/jfc/TransparentRuler/transparentruler/Ruler.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthGraphicsUtils.java.i
 data/src/solaris/native/sun/tools/attach/SolarisVirtualMachine.c.i
-data/test/javax/sound/midi/Gervill/ModelStandardTransform/NewModelStandardTransformBooleanBoolean.java.i
-data/src/share/classes/java/awt/package.html.i
-data/test/java/awt/FontClass/CreateFont/DeleteFont.sh.i
+data/src/share/classes/sun/security/util/ByteArrayTagOrder.java.i
+data/test/java/awt/Component/PaintAll/PaintAll.java.i
+data/src/share/classes/javax/swing/plaf/TreeUI.java.i
 data/src/share/classes/javax/management/OrQueryExp.java.i
-data/src/share/classes/sun/security/validator/EndEntityChecker.java.i
+data/src/share/classes/com/sun/script/javascript/JSAdapter.java.i
 data/test/java/util/TreeMap/ContainsValue.java.i
-data/test/sun/nio/cs/OLD/MS949_OLD.java.i
-data/test/java/nio/file/WatchService/grantDirOnly.policy.i
+data/src/share/classes/javax/swing/text/html/parser/DTDConstants.java.i
 data/test/java/io/SystemInAvailable.java.i
 data/src/share/classes/com/sun/tools/example/doc/jdb.html.i
 data/src/share/native/java/lang/fdlibm/src/e_exp.c.i
 data/src/share/classes/sun/nio/cs/ext/EUC_JP.java.i
 data/make/sun/jdbc/Makefile.i
 data/src/share/classes/sun/reflect/NativeConstructorAccessorImpl.java.i
-data/src/share/classes/java/awt/geom/IllegalPathStateException.java.i
+data/test/java/net/URL/HandlerLoop.java.i
 data/test/java/util/ResourceBundle/Test4314141B_es_ES.java.i
-data/test/sun/security/krb5/auto/Context.java.i
-data/src/share/classes/sun/tools/jar/resources/jar_ja.properties.i
-data/test/java/util/zip/3GBZipFiles.sh.i
+data/src/share/classes/org/openjdk/internal/joptsimple/internal/ValueConverter.java.i
+data/test/java/nio/channels/spi/AsynchronousChannelProvider/Provider2.java.i
 data/test/java/math/BigInteger/UnicodeConstructor.java.i
 data/test/javax/management/namespace/LazyDomainTest.java.i
-data/test/sun/text/resources/Format/Bug4810032.java.i
+data/src/linux/doc/man/ja/jmap.1.i
 data/src/share/classes/javax/naming/StringRefAddr.java.i
-data/test/sun/security/provider/PolicyParser/ExtDirs.policy.i
+data/src/share/classes/sun/nio/cs/MS1251.java.i
 data/make/sun/security/util/Makefile.i
 data/src/share/demo/jvmti/hprof/hprof_ioname.c.i
 data/test/sun/net/www/protocol/jar/B5105410.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/OriginServer.java.i
 data/src/share/classes/com/sun/java/browser/net/ProxyServiceProvider.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS16S32Func.c.i
-data/test/java/util/jar/JarEntry/test.jar.i
-data/src/share/classes/sun/management/HotspotThreadMBean.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/beans/AbstractBean.java.i
+data/test/java/util/ResourceBundle/Bug4168625Resource.java.i
+data/test/java/nio/MappedByteBuffer/ZeroMap.java.i
 data/src/windows/native/sun/windows/awt_Palette.cpp.i
 data/test/java/security/Security/CaseInsensitiveAlgNames.java.i
 data/src/share/classes/com/sun/jdi/package.html.i
@@ -6791,17 +6584,14 @@ data/src/share/classes/com/sun/accessibility/internal/resources/accessibility_es
 data/test/java/security/KeyPairGenerator/Failover.java.i
 data/src/share/classes/com/sun/jmx/remote/protocol/iiop/ServerProvider.java.i
 data/test/java/lang/ClassLoader/deadlock/GetResource.java.i
-data/test/javax/management/monitor/CounterMonitorInitThresholdTest.java.i
 data/src/solaris/native/sun/awt/awt_TextField.c.i
 data/src/share/classes/sun/reflect/UnsafeStaticFloatFieldAccessorImpl.java.i
 data/test/sun/tools/jstat/gcCauseOutput1.awk.i
-data/test/org/openjdk/jigsaw/preinstall-setup.sh.i
 data/src/share/classes/javax/management/MBeanServer.java.i
 data/src/share/classes/sun/nio/cs/ext/ISO2022_KR.java.i
 data/make/tools/swing-beans/beaninfo/images/JPanelMono32.gif.i
 data/src/share/classes/java/security/cert/X509CRLEntry.java.i
-data/test/sun/tools/jhat/HatHeapDump1Test.java.i
-data/src/linux/doc/man/jarsigner.1.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/CloseEngineException.java.i
 data/make/tools/swing-beans/beaninfo/images/JLayeredPaneMono32.gif.i
 data/test/java/nio/channels/Selector/BasicConnect.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_hr_HR.properties.i
@@ -6809,9 +6599,10 @@ data/test/java/lang/Class/EnumPoseur.class.i
 data/test/java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/AbstractPerfDataBuffer.java.i
 data/make/com/sun/security/auth/module/FILES_export_unix.gmk.i
-data/src/share/classes/java/sql/PreparedStatement.java.i
+data/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java.i
+data/test/javax/sound/midi/Gervill/AudioFloatInputStream/Available.java.i
 data/src/solaris/classes/sun/awt/X11/XDropTargetProtocol.java.i
-data/src/share/classes/sun/reflect/UnsafeStaticCharacterFieldAccessorImpl.java.i
+data/src/share/classes/java/util/Observable.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_en_ZA.properties.i
 data/src/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java.i
 data/src/share/native/sun/security/ec/impl/ec2_aff.c.i
@@ -6821,31 +6612,30 @@ data/src/share/classes/java/math/SignedMutableBigInteger.java.i
 data/src/share/classes/javax/crypto/spec/PBEParameterSpec.java.i
 data/test/com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java.i
 data/test/java/io/Serializable/evolution/AddedField/run.i
-data/test/java/lang/StringBuffer/Replace.java.i
-data/test/javax/management/remote/mandatory/connectorServer/ConnectorStopDeadlockTest.java.i
-data/test/java/lang/Character/Scripts.txt.i
+data/src/share/demo/nbproject/management/MemoryMonitor/build.xml.i
+data/test/java/net/URL/TestIPv6Addresses.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/Token.java.i
+data/src/share/classes/sun/io/ByteToCharDBCS_ASCII.java.i
 data/src/share/classes/javax/swing/plaf/metal/sounds/FrameMaximize.wav.i
 data/make/netbeans/common/java-data-no-native.ent.i
 data/src/share/native/sun/awt/giflib/gifalloc.c.i
-data/test/javax/sound/midi/Gervill/SoftReceiver/Send_ResetAllControllers.java.i
 data/src/share/classes/sun/awt/image/GifImageDecoder.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/utils/HasPath.java.i
 data/src/share/classes/sun/jvmstat/monitor/remote/RemoteHost.java.i
 data/src/share/native/sun/awt/image/cvutils/img_output24.h.i
 data/src/share/classes/sun/io/ByteToCharMacRoman.java.i
 data/src/share/classes/com/sun/crypto/provider/ai.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_ar_BH.properties.i
+data/src/share/classes/sun/reflect/generics/repository/GenericDeclRepository.java.i
 data/src/share/classes/sun/io/CharToByteCp284.java.i
-data/src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java.i
+data/src/windows/classes/sun/nio/ch/PipeImpl.java.i
 data/test/java/io/Serializable/enum/basic/Test.java.i
 data/src/windows/classes/sun/security/mscapi/PRNG.java.i
-data/test/com/sun/jdi/InnerTarg.java.i
+data/test/java/lang/Class/getEnclosingClass/T4992170.java.i
 data/src/share/classes/sun/io/CharToByteCp1256.java.i
-data/src/share/sample/scripting/scriptpad/src/scripts/memory.bat.i
-data/test/java/text/BreakIterator/ExceptionTest.java.i
+data/src/share/classes/java/text/spi/NumberFormatProvider.java.i
 data/src/share/classes/sun/net/www/protocol/file/FileURLConnection.java.i
-data/src/solaris/back/proc_md.h.i
-data/test/java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java.i
+data/src/windows/native/sun/windows/ThemeReader.cpp.i
+data/src/share/classes/sun/util/resources/CalendarData_es_US.properties.i
 data/src/share/classes/javax/swing/text/Position.java.i
 data/src/solaris/classes/sun/nio/ch/SctpSocketDispatcher.java.i
 data/src/share/classes/sun/java2d/pipe/hw/BufferedContextProvider.java.i
@@ -6854,89 +6644,87 @@ data/src/share/classes/sun/security/ssl/KerberosPreMasterSecret.java.i
 data/src/share/classes/java/security/Identity.java.i
 data/make/tools/src/build/tools/jdwpgen/TaggedObjectTypeNode.java.i
 data/test/java/io/readBytes/MemoryLeak.java.i
+data/make/sun/motif12/reorder-i586.i
 data/src/solaris/classes/java/io/FileDescriptor.java.i
 data/test/java/io/Serializable/defaulted/GetFieldRead.java.i
 data/test/java/util/Currency/PropertiesTest.java.i
-data/src/share/classes/sun/text/resources/CollationData_et.java.i
+data/src/share/classes/sun/reflect/UnsafeQualifiedObjectFieldAccessorImpl.java.i
 data/src/share/classes/java/awt/geom/RoundRectIterator.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/PerfByteArrayMonitor.java.i
-data/test/java/lang/instrument/BootClassPath/Agent.java.i
+data/src/share/native/java/lang/fdlibm/src/s_matherr.c.i
 data/test/javax/security/auth/x500/X500Principal/OIDMap.java.i
-data/src/share/classes/sun/tools/tree/IncDecExpression.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/Handler.java.i
 data/src/share/native/sun/java2d/loops/ProcessPath.c.i
-data/test/sun/net/www/protocol/http/CloseOptionHeader.java.i
 data/src/share/classes/com/sun/tools/jdi/ArrayTypeImpl.java.i
 data/src/share/classes/javax/crypto/spec/SecretKeySpec.java.i
-data/test/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.sh.i
+data/src/share/classes/java/awt/dnd/MouseDragGestureRecognizer.java.i
 data/src/share/demo/nbproject/jfc/FileChooserDemo/nbproject/file-targets.xml.i
 data/src/share/classes/sun/jkernel/StandaloneMessageDigest.java.i
-data/src/share/classes/com/sun/tools/jdi/PrimitiveValueImpl.java.i
+data/src/share/classes/com/sun/beans/decoder/FieldElementHandler.java.i
 data/src/share/native/sun/awt/libpng/png.c.i
-data/test/javax/sound/midi/Gervill/SoftChannel/NoteOverFlowTest.java.i
+data/test/java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM921.java.i
 data/src/share/classes/java/nio/file/ClosedFileSystemException.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/icons/image-failed.png.i
 data/src/solaris/classes/sun/awt/motif/X11Johab.java.i
 data/src/share/classes/javax/swing/text/Style.java.i
+data/make/mkdemo/management/MemoryMonitor/Makefile.i
 data/src/share/classes/com/sun/tools/jdi/ArrayReferenceImpl.java.i
-data/test/java/net/Socket/TrafficClass.java.i
+data/test/sun/security/smartcardio/apdu.log.i
 data/src/share/classes/javax/print/attribute/standard/Copies.java.i
 data/src/share/classes/sun/audio/AudioDevice.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalScrollButton.java.i
-data/src/share/classes/javax/swing/JLayeredPane.java.i
+data/test/java/io/File/GetXSpace.sh.i
 data/src/share/classes/java/util/Currency.java.i
 data/src/share/classes/sun/security/pkcs11/P11Cipher.java.i
-data/test/sun/security/util/HostnameMatcher/cert1.crt.i
 data/src/share/classes/javax/swing/event/MenuEvent.java.i
 data/src/share/classes/sun/text/resources/FormatData_ar_SY.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_sl_SI.properties.i
 data/src/share/classes/com/sun/jmx/mbeanserver/ClassLoaderRepositorySupport.java.i
-data/src/share/classes/sun/tools/jinfo/JInfo.java.i
 data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java.i
 data/src/share/classes/javax/swing/colorchooser/DefaultRGBChooserPanel.java.i
 data/src/share/native/java/lang/fdlibm/src/e_rem_pio2.c.i
 data/src/share/native/sun/security/ec/impl/ecl-exp.h.i
 data/src/share/classes/com/sun/jndi/dns/DnsUrl.java.i
-data/test/java/nio/channels/Selector/TemporarySelector.java.i
-data/src/share/classes/sun/jvmstat/monitor/MonitoredVmUtil.java.i
+data/src/share/classes/sun/tools/tree/Context.java.i
+data/src/share/classes/sun/security/util/Resources_ko.java.i
 data/src/share/classes/sun/dyn/Invokers.java.i
 data/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java.i
+data/src/share/classes/javax/swing/plaf/UIResource.java.i
 data/src/share/classes/sun/management/counter/AbstractCounter.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/README.update.i
 data/make/sun/javazic/javatz/java_11_ids.txt.i
 data/test/java/lang/instrument/BootClassPath/Cleanup.java.i
 data/src/share/demo/jvmti/compiledMethodLoad/sample.makefile.txt.i
 data/src/share/classes/java/awt/event/ItemListener.java.i
 data/test/com/sun/jdi/TargetAdapter.java.i
 data/test/javax/script/Test1.js.i
-data/test/com/sun/tools/attach/ProviderTests.sh.i
+data/test/java/beans/PropertyEditor/TestByteTypeValue.java.i
 data/src/share/classes/java/io/DataOutputStream.java.i
-data/src/share/lib/images/cursors/motif_MoveDrop32x32.gif.i
+data/src/share/classes/sun/text/resources/FormatData_en_IE.java.i
 data/src/share/classes/com/sun/nio/sctp/IllegalUnbindException.java.i
 data/src/share/classes/java/security/KeyPair.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/TunnelProxy.java.i
 data/src/share/classes/javax/swing/doc-files/groupLayout.sequential.gif.i
-data/src/solaris/classes/sun/nio/ch/PollSelectorImpl.java.i
+data/make/common/Rules-SCCS.gmk.i
 data/src/share/classes/sun/tools/jmap/JMap.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/WatchpointSpec.java.i
 data/test/javax/security/auth/login/LoginContext/ConfigConstructorNoPerm.java.i
 data/make/tools/CharsetMapping/IBM278.c2b.i
-data/test/javax/management/mxbean/MBeanOperationInfoTest.java.i
-data/src/share/instrument/JarFacade.c.i
+data/src/solaris/native/sun/awt/awt_motif21.c.i
 data/make/java/management/mapfile-vers.i
-data/test/java/nio/file/Files/walkFileTree/WalkWithSecurity.java.i
 data/src/share/classes/javax/management/StringValueExp.java.i
-data/src/share/classes/sun/nio/cs/ext/MacUkraine.java.i
+data/src/share/classes/sun/tools/jconsole/Worker.java.i
 data/src/share/classes/javax/swing/colorchooser/DefaultPreviewPanel.java.i
-data/test/java/security/SecureRandom/Serialize.java.i
-data/src/share/classes/com/sun/tools/jdi/VMState.java.i
-data/test/java/util/concurrent/ThreadPoolExecutor/ModifyCorePoolSize.java.i
-data/src/windows/native/sun/windows/awt_Win32GraphicsDevice.h.i
-data/src/share/native/sun/font/layout/GlyphDefinitionTables.h.i
+data/src/share/back/JDWP.h.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/JCEMapper.java.i
+data/test/java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java.i
+data/test/sun/security/provider/certpath/DisabledAlgorithms/CPValidatorIntermediate.java.i
 data/src/share/classes/javax/imageio/spi/package.html.i
-data/src/share/classes/sun/management/snmp/util/JvmContextFactory.java.i
-data/src/share/classes/sun/management/Util.java.i
+data/src/share/classes/sun/net/smtp/SmtpProtocolException.java.i
+data/test/demo/jvmti/hprof/CpuTimesDefineClassTest.java.i
 data/src/share/classes/com/sun/jndi/ldap/pool/Connections.java.i
-data/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_Util.c.i
+data/test/java/util/jar/JarFile/bogus-signerinfo-attr.jar.i
 data/src/share/classes/javax/swing/plaf/synth/SynthRadioButtonUI.java.i
 data/src/share/classes/javax/swing/UIDefaults.java.i
 data/test/java/awt/FontClass/CreateFont/A.ttf.i
@@ -6945,8 +6733,7 @@ data/src/share/classes/javax/swing/text/doc-files/View-flexibility.jpg.i
 data/test/com/sun/management/ThreadMXBean/ThreadCpuTimeArray.java.i
 data/src/share/classes/javax/swing/event/MouseInputListener.java.i
 data/test/com/sun/net/httpserver/bugs/6725892/Test.java.i
-data/src/solaris/doc/sun/man/man1/jps.1.i
-data/src/solaris/transport/socket/socket_md.c.i
+data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_Ports.c.i
 data/src/share/classes/javax/print/attribute/standard/SheetCollate.java.i
 data/src/share/classes/sun/reflect/generics/parser/SignatureParser.java.i
 data/src/share/classes/sun/net/www/protocol/http/BasicAuthentication.java.i
@@ -6954,314 +6741,307 @@ data/src/share/classes/sun/text/normalizer/VersionInfo.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/Aes128CtsHmacSha1EType.java.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_TOKEN_INFO.java.i
 data/test/java/lang/reflect/Method/Equals.java.i
+data/src/share/classes/java/lang/reflect/Member.java.i
 data/test/java/nio/charset/Charset/Contains.java.i
 data/src/share/classes/java/awt/Insets.java.i
 data/test/com/sun/jdi/AccessSpecifierTest.java.i
-data/src/share/classes/sun/swing/plaf/synth/SynthUI.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/config.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextTests.java.i
 data/src/share/classes/sun/tools/asm/Cover.java.i
 data/src/share/classes/java/dyn/Switcher.java.i
 data/src/share/classes/javax/sql/rowset/spi/SyncFactory.java.i
 data/src/share/classes/java/awt/FocusTraversalPolicy.java.i
-data/src/windows/classes/sun/java2d/windows/DDRenderer.java.i
+data/test/java/lang/reflect/Proxy/NullClassLoader.java.i
 data/test/java/nio/channels/AsynchronousFileChannel/Basic.java.i
-data/test/javax/naming/spi/DirectoryManager/DummyContext.java.i
+data/src/share/classes/java/util/jar/JarOutputStream.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM1381.java.i
 data/src/share/classes/com/sun/jmx/namespace/serial/JMXNamespaceContext.java.i
-data/src/share/classes/sun/tools/jconsole/manifest.i
-data/src/share/classes/sun/security/provider/VerificationProvider.java.i
+data/src/share/native/sun/security/pkcs11/wrapper/pkcs-11v2-20a3.h.i
+data/src/solaris/hpi/native_threads/src/threads_solaris.c.i
 data/test/com/sun/jdi/CountEvent.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/MarkReset.java.i
-data/src/share/classes/java/util/concurrent/ForkJoinTask.java.i
-data/test/javax/security/auth/kerberos/KerberosTixDateTest.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputImageTests.java.i
+data/src/share/classes/com/sun/jmx/mbeanserver/DescriptorCache.java.i
+data/test/javax/swing/plaf/synth/7032791/bug7032791.java.i
+data/src/share/native/sun/awt/medialib/mlib.h.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ProxyAuthTest.java.i
-data/src/share/classes/java/sql/DataTruncation.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libfreebl_hybrid_3.chk.i
 data/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java.i
 data/src/solaris/classes/sun/awt/motif/MInputMethodControl.java.i
 data/src/share/native/sun/awt/image/cvutils/img_input8_32.h.i
+data/make/tools/swing-beans/beaninfo/images/JToggleButtonColor32.gif.i
 data/src/share/classes/sun/java2d/pipe/AATextRenderer.java.i
-data/test/sun/security/provider/PolicyFile/nullDomain.java.i
-data/test/sun/security/jgss/CtorTests2.java.i
 data/src/share/native/sun/security/ec/impl/ecl.c.i
 data/test/sun/management/jmxremote/bootstrap/TestApplication.java.i
 data/src/windows/classes/sun/nio/ch/SocketDispatcher.java.i
 data/src/share/classes/javax/xml/crypto/dsig/spec/DigestMethodParameterSpec.java.i
-data/src/share/classes/sun/tools/jconsole/VMInternalFrame.java.i
-data/src/share/classes/sun/applet/AppletEvent.java.i
+data/test/java/util/TimSort/ArrayBuilder.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/CanonicalizerSpi.java.i
-data/src/share/classes/com/sun/jmx/mbeanserver/Util.java.i
-data/src/share/native/java/lang/fdlibm/src/w_fmod.c.i
+data/src/share/classes/sun/io/ByteToCharCp870.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties.i
 data/src/share/classes/sun/util/resources/TimeZoneNames_zh_HK.java.i
-data/src/share/classes/sun/management/counter/perf/ByteArrayCounterSnapshot.java.i
+data/test/com/sun/jndi/cosnaming/CNNameParser.java.i
 data/src/share/classes/sun/management/counter/perf/PerfLongArrayCounter.java.i
-data/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java.i
 data/src/share/classes/sun/util/logging/LoggingProxy.java.i
-data/test/java/lang/ClassLoader/Assert.java.i
 data/make/tools/CharsetMapping/IBM933.c2b.i
-data/src/share/classes/sun/text/resources/CollationData_sv.java.i
-data/src/share/classes/com/sun/jmx/remote/internal/package.html.i
+data/test/java/lang/reflect/Proxy/CharType.java.i
+data/test/javax/management/remote/mandatory/passwordAccessFile/access.properties.i
 data/test/sun/net/www/httptest/HttpTransaction.java.i
 data/src/share/classes/com/sun/tools/example/debug/expr/LValue.java.i
-data/test/java/io/CharArrayReader/Constructor.java.i
+data/src/share/transport/socket/socketTransport.h.i
+data/src/share/demo/applets/DrawTest/example1.html.i
 data/src/share/classes/sun/util/resources/CurrencyNames_fr_CA.properties.i
-data/src/solaris/classes/sun/awt/motif/MCheckboxPeer.java.i
+data/test/sun/text/resources/Format/Bug4685470.java.i
 data/src/share/classes/java/dyn/MutableCallSite.java.i
-data/src/share/demo/jvmti/gctest/sample.makefile.txt.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/package.html.i
+data/src/linux/doc/man/jinfo.1.i
+data/test/java/text/Format/DateFormat/Bug6683975.java.i
 data/test/java/beans/Introspector/Test4168833.java.i
 data/test/sun/management/jmxremote/bootstrap/management_ssltest13_ko.properties.in.i
-data/test/java/lang/Class/getEnclosingMethod/EnclosingMethodTests.java.i
+data/src/share/classes/java/awt/AlphaComposite.java.i
 data/test/java/util/Locale/LocaleTestFmwk.java.i
 data/src/share/classes/sun/misc/resources/Messages_ja.java.i
 data/src/share/classes/java/lang/doc-files/chi.gif.i
-data/test/javax/management/modelmbean/DefaultDescriptorFieldTest.java.i
 data/test/sun/security/pkcs11/Secmod/AddPrivateKey.java.i
+data/test/java/lang/Long/Decode.java.i
 data/test/javax/rmi/ssl/SocketFactoryTest.java.i
-data/test/javax/management/MBeanServer/PostRegisterDeadlockTest2.java.i
+data/make/tools/CharsetMapping/IBM930.nr.i
 data/src/solaris/sample/dtrace/hotspot/hotspot_calls_tree.d.i
-data/src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java.i
+data/make/netbeans/common/standard-bindings.ent.i
+data/test/javax/sound/midi/Gervill/ModelPerformer/SetVelTo.java.i
 data/src/share/classes/sun/security/rsa/SunRsaSignEntries.java.i
 data/src/share/classes/com/sun/jndi/ldap/Connection.java.i
-data/src/share/native/sun/security/ec/ecp_521.c.i
 data/src/share/classes/sun/security/provider/Sun.java.i
 data/src/windows/native/sun/windows/ObjectList.cpp.i
+data/test/javax/management/remote/mandatory/provider/META-INF/services/javax.management.remote.JMXConnectorServerProvider.i
 data/src/share/classes/sun/security/jgss/krb5/Krb5Context.java.i
-data/test/java/awt/Toolkit/Headless/GetPrintJob/GetPrintJob.java.i
-data/src/share/native/sun/security/ec/impl/ec.h.i
-data/src/share/lib/security/java.policy.i
+data/test/sun/management/HotspotClassLoadingMBean/ClassToLoad0.java.i
+data/test/java/beans/XMLEncoder/javax_swing_DefaultCellEditor.java.i
+data/src/share/classes/javax/management/Query.java.i
 data/test/javax/management/descriptor/SerializedInfo.java.i
-data/test/java/util/EnumSet/AllOf.java.i
-data/test/sun/security/pkcs11/tls/keymatdata.txt.i
-data/src/share/classes/javax/accessibility/Accessible.java.i
-data/test/javax/swing/JFileChooser/6524424/bug6524424.java.i
+data/src/share/classes/com/sun/tools/script/shell/Main.java.i
+data/test/sun/security/pkcs/EncryptedPrivateKeyInfo/EncryptedPKInfoEqualsHashCode.java.i
 data/test/java/nio/channels/SocketChannel/Open.java.i
-data/test/java/util/TimeZone/ListTimeZones.java.i
-data/test/java/util/ResourceBundle/Bug4396021.java.i
+data/test/java/net/MulticastSocket/TestInterfaces.java.i
+data/src/share/native/java/lang/fdlibm/src/w_log10.c.i
 data/test/javax/management/descriptor/DefaultDescriptorTest.java.i
-data/src/share/classes/sun/security/acl/OwnerImpl.java.i
-data/src/share/classes/sun/java2d/pipe/RegionClipSpanIterator.java.i
-data/src/share/classes/com/sun/imageio/plugins/gif/GIFMetadata.java.i
+data/src/share/classes/java/awt/geom/QuadIterator.java.i
+data/src/share/classes/javax/sound/midi/MidiUnavailableException.java.i
+data/src/share/classes/com/sun/java/browser/net/ProxyInfo.java.i
 data/src/share/classes/sun/print/PeekGraphics.java.i
 data/test/javax/management/mxbean/customtypes/CustomLongMXBean.java.i
 data/test/com/sun/org/apache/xml/internal/security/signature-enveloping-hmac-sha1-trunclen-0-attack.xml.i
 data/src/share/classes/sun/text/resources/FormatData_es_NI.java.i
 data/src/windows/native/sun/java2d/d3d/D3DMaskFill.h.i
-data/make/tools/CharsetMapping/IBM933.map.i
+data/test/javax/management/namespace/SourceNamespaceTest.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/ThreadInfo.java.i
-data/test/java/util/concurrent/DelayQueue/Stress.java.i
-data/test/sun/security/tools/keytool/file-in-help.sh.i
-data/make/tools/swing-beans/beaninfo/images/JRootPaneMono32.gif.i
-data/test/java/util/ResourceBundle/Bug4083270Test.java.i
+data/test/java/util/WeakHashMap/GCDuringIteration.java.i
+data/src/share/classes/com/sun/media/sound/services/javax.sound.sampled.spi.AudioFileWriter.i
 data/src/share/classes/sun/dyn/MethodTypeImpl.java.i
-data/test/java/math/BigDecimal/RoundingTests.java.i
-data/src/share/classes/java/security/CryptoPrimitive.java.i
+data/test/javax/print/applet/applet2/Applet2PrintService.java.i
+data/src/share/classes/sun/text/resources/FormatData_ga_IE.java.i
+data/src/share/classes/sun/rmi/server/resources/rmid_zh_CN.properties.i
 data/test/java/util/WeakHashMap/Iteration.java.i
 data/src/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadataFormatResources.java.i
 data/src/share/classes/com/sun/java/browser/dom/DOMAccessor.java.i
-data/test/java/lang/ThreadLocal/TLRemoveTest.java.i
+data/test/java/nio/file/Files/walkFileTree/walk_file_tree.sh.i
 data/test/java/io/pathNames/win32/DriveOnly.java.i
-data/src/share/classes/com/sun/jdi/request/MonitorContendedEnteredRequest.java.i
-data/src/solaris/hpi/src/system_md.c.i
-data/test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_MatteBorderUIResource.java.i
+data/make/com/sun/security/sasl/Makefile.i
+data/test/com/sun/net/httpserver/Test9a.java.i
+data/src/share/demo/jvmti/gctest/README.txt.i
 data/src/share/classes/sun/security/x509/CertException.java.i
 data/src/share/classes/com/sun/rowset/RowSetResourceBundle_es.properties.i
 data/test/sun/management/jmxremote/bootstrap/management_test05_ko.properties.in.i
+data/src/share/classes/com/sun/pept/presentation/MessageStruct.java.i
 data/src/solaris/npt/utf_md.c.i
 data/test/javax/management/Introspector/DescribedMXBean.java.i
 data/src/share/classes/com/sun/rowset/internal/InsertRow.java.i
-data/src/share/classes/sun/text/resources/FormatData_sr_CS.java.i
-data/test/java/util/zip/ZipFile/ManyZipFiles.java.i
+data/make/tools/CharsetMapping/IBM937.c2b.i
+data/test/java/util/LinkedList/Clone.java.i
 data/src/share/classes/org/relaxng/datatype/DatatypeLibraryFactory.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/Server.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_in_ID.properties.i
 data/test/java/rmi/dgc/VMID/CheckVMID.java.i
-data/src/share/native/sun/java2d/loops/DrawLine.c.i
 data/src/share/classes/sun/management/VMOptionCompositeData.java.i
 data/src/windows/instrument/EncodingSupport_md.c.i
 data/test/java/io/InputStream/ReadParams.java.i
 data/test/java/net/ProxySelector/B6563259.java.i
-data/test/java/lang/ThreadGroup/NullThreadName.java.i
-data/src/share/classes/com/sun/security/auth/X500Principal.java.i
+data/test/tools/launcher/lib/sparc/lib32/lib32/liblibrary.so.i
+data/test/java/nio/channels/Selector/SelectorLimit.java.i
 data/src/windows/native/java/net/Inet4AddressImpl.c.i
-data/src/solaris/doc/sun/man/man1/javac.1.i
+data/test/javax/print/applet/applet2/META-INF/services/javax.print.PrintServiceLookup.i
 data/src/share/classes/java/awt/FileDialog.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolverSpi.java.i
 data/test/java/beans/PropertyEditor/TestShortClassValue.java.i
-data/src/share/classes/com/sun/jmx/snmp/agent/SnmpStandardObjectServer.java.i
+data/test/java/rmi/server/RMIClassLoader/loadProxyClasses/NonpublicInterface1.java.i
 data/make/sun/javazic/javatz/fullset.txt.i
-data/src/share/classes/java/lang/ThreadDeath.java.i
+data/src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.c.i
+data/test/java/util/ResourceBundle/Bug4396021.java.i
 data/src/share/classes/com/sun/tracing/package-info.java.i
-data/test/java/beans/XMLEncoder/javax_swing_JLayeredPane.java.i
 data/test/sun/tools/jmap/Basic.sh.i
 data/src/share/classes/java/lang/Runnable.java.i
 data/make/tools/CharsetMapping/ISO_8859_9.map.i
+data/test/java/beans/PropertyEditor/TestLongClass.java.i
+data/src/share/classes/sun/io/ByteToCharCp420.java.i
 data/test/java/lang/Class/forName/InvalidNameWithSlash.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/Constants.java.i
-data/src/share/classes/sun/swing/ImageIconUIResource.java.i
-data/test/java/util/Locale/serialized/java6locale_ROOT.i
-data/src/share/classes/javax/management/QueryParser.java.i
-data/src/share/classes/javax/swing/plaf/MenuItemUI.java.i
+data/test/com/sun/management/HotSpotDiagnosticMXBean/GetDiagnosticOptions.java.i
+data/src/solaris/hpi/src/system_md.c.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConvCopyEdge.c.i
 data/src/share/classes/java/awt/Window.java.i
-data/test/sun/security/krb5/auto/KDC.java.i
 data/src/share/classes/sun/security/provider/DSAPublicKeyImpl.java.i
-data/src/share/classes/com/sun/tools/hat/internal/oql/ObjectVisitor.java.i
-data/test/java/nio/channels/FileChannel/AtomicAppend.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/package.html.i
+data/src/share/classes/com/sun/jarsigner/ContentSigner.java.i
 data/src/share/classes/java/lang/String.java.i
 data/test/sun/tools/native2ascii/resources/ImmutableResourceTest.java.i
-data/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c.i
-data/test/java/io/StringReader/ClosedReady.java.i
+data/test/java/lang/instrument/RedefineMethodAddInvoke.sh.i
+data/src/share/classes/javax/swing/event/MenuListener.java.i
 data/test/javax/sound/midi/Gervill/RiffReaderWriter/GetFilePointer.java.i
 data/src/share/native/sun/java2d/loops/ProcessPath.h.i
 data/src/share/classes/sun/misc/REException.java.i
-data/test/java/awt/font/NumericShaper/EqualsTest.java.i
+data/test/java/rmi/transport/checkLeaseInfoLeak/LeaseLeakClient.java.i
 data/src/share/classes/com/sun/jmx/remote/security/MBeanServerAccessController.java.i
 data/test/sun/security/provider/KeyStore/CaseSensitiveAliases.java.i
-data/make/tools/CharsetMapping/MacArabic.map.i
-data/src/share/lib/security/java.security-solaris.i
+data/src/solaris/classes/com/sun/management/OSMBeanFactory.java.i
 data/src/share/classes/javax/accessibility/AccessibleTableModelChange.java.i
 data/src/share/classes/sun/awt/SunToolkit.java.i
-data/src/share/classes/org/openjdk/internal/joptsimple/OptionParserState.java.i
+data/src/share/classes/sun/text/resources/FormatData_es_CO.java.i
 data/src/share/classes/java/lang/doc-files/javalang.doc.anc40.gif.i
 data/test/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java.i
 data/src/share/classes/java/nio/X-Buffer.java.template.i
 data/test/java/text/Bidi/Bug6665028.java.i
-data/src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java.i
+data/src/share/classes/com/sun/tools/example/debug/tty/ThreadGroupIterator.java.i
 data/test/sun/nio/cs/TestJIS0212Decoder.java.i
 data/src/share/classes/sun/util/resources/CalendarData_sk.properties.i
-data/src/share/classes/javax/net/ssl/SSLException.java.i
-data/src/windows/native/sun/windows/awt_PrintJob.cpp.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/MonitoredHostProvider.java.i
+data/src/share/classes/sun/net/ProgressSource.java.i
+data/test/java/util/logging/ParentLoggersTest.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/NotificationTargetImpl.java.i
 data/make/tools/swing-beans/beaninfo/images/JTabbedPaneMono16.gif.i
-data/src/share/classes/javax/swing/event/ListDataListener.java.i
 data/src/share/classes/java/awt/image/PackedColorModel.java.i
 data/src/solaris/doc/sun/man/man1/ja/java.1.i
-data/test/sun/nio/cs/StrCodingBenchmarkUTF8.java.i
-data/test/sun/net/www/protocol/jar/B4756443.java.i
+data/src/share/classes/javax/swing/plaf/basic/DragRecognitionSupport.java.i
+data/test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_LineBorderUIResource.java.i
 data/src/windows/classes/sun/tools/attach/WindowsVirtualMachine.java.i
 data/test/java/beans/VetoableChangeSupport/1.5.0_10.ser.i
 data/src/share/classes/sun/management/GarbageCollectorImpl.java.i
-data/src/share/classes/sun/net/httpserver/HttpsExchangeImpl.java.i
+data/src/solaris/classes/sun/nio/ch/LinuxAsynchronousChannelProvider.java.i
 data/src/share/native/sun/font/layout/TibetanLayoutEngine.cpp.i
 data/src/share/native/sun/security/ec/ec2.h.i
-data/src/windows/native/sun/windows/awt_Panel.h.i
-data/make/tools/CharsetMapping/IBM855.map.i
-data/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ComURLNulls.java.i
-data/test/java/net/URLClassLoader/GetURLsTest.java.i
+data/test/java/util/concurrent/BlockingQueue/LastElement.java.i
 data/test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/ShutdownMonitor.java.i
+data/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java.i
+data/src/share/native/sun/awt/image/jpeg/jdapistd.c.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream.java.i
-data/src/share/classes/javax/swing/plaf/metal/icons/Question.gif.i
+data/test/java/nio/channels/SocketChannel/OutOfBand.java.i
 data/src/linux/doc/man/jvisualvm.1.i
 data/test/sun/security/krb5/auto/BadKdc1.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmMemPoolEntryMBean.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM1147.java.i
-data/src/share/classes/java/text/RuleBasedCollator.java.i
+data/src/share/classes/javax/swing/text/JTextComponent.java.i
 data/make/tools/src/build/tools/jdwpgen/AbstractGroupNode.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsPasswordFieldUI.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_ar_TN.properties.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifSliderUI.java.i
-data/test/sun/security/x509/AVA/EmailAddressEncoding.java.i
+data/src/share/classes/javax/imageio/ImageWriteParam.java.i
 data/make/tools/swing-beans/beaninfo/images/JFrameMono16.gif.i
 data/test/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.html.i
 data/test/java/nio/file/Files/CheckPermissions.java.i
 data/test/java/awt/im/JTextFieldTest.java.i
-data/src/share/classes/sun/security/krb5/internal/AuthContext.java.i
 data/src/share/classes/java/nio/channels/spi/AbstractInterruptibleChannel.java.i
+data/src/share/classes/javax/crypto/KeyAgreementSpi.java.i
 data/src/share/classes/sun/tools/jconsole/BorderedComponent.java.i
+data/src/share/classes/java/beans/AppletInitializer.java.i
 data/test/java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java.i
 data/src/share/classes/java/nio/charset/CoderResult.java.i
 data/src/solaris/hpi/export/io_md.h.i
 data/src/share/classes/sun/management/ThreadImpl.java.i
-data/src/share/native/sun/font/layout/ArabicLayoutEngine.cpp.i
-data/src/share/classes/java/awt/GraphicsEnvironment.java.i
-data/src/share/classes/sun/misc/Version.java.template.i
-data/src/share/classes/sun/nio/ch/SocketAdaptor.java.i
-data/test/com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java.i
-data/make/tools/CharsetMapping/MS932.nr.i
+data/test/java/io/File/ToURI.java.i
+data/test/java/rmi/activation/ActivationSystem/unregisterGroup/CallbackInterface.java.i
+data/test/java/security/UnresolvedPermission/Equals.java.i
+data/src/share/classes/java/lang/management/package.html.i
+data/src/share/classes/sun/text/resources/FormatData_lt_LT.java.i
 data/src/share/classes/sun/security/x509/InvalidityDateExtension.java.i
 data/src/share/classes/java/text/RBTableBuilder.java.i
 data/src/share/classes/com/sun/jmx/remote/security/MBeanServerFileAccessController.java.i
-data/test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh.i
+data/src/share/classes/sun/awt/image/ImageFetcher.java.i
+data/src/share/classes/sun/security/tools/JarSignerResources_ja.java.i
 data/src/windows/native/sun/windows/awt_FileDialog.cpp.i
 data/src/share/classes/com/sun/rowset/RowSetResourceBundle.properties.i
 data/src/share/classes/com/sun/imageio/plugins/common/PaletteBuilder.java.i
 data/src/windows/native/java/net/SocketOutputStream.c.i
 data/src/share/classes/sun/security/krb5/internal/KRBError.java.i
-data/src/share/classes/com/sun/jarsigner/ContentSigner.java.i
+data/src/share/classes/sun/security/util/ByteArrayLexOrder.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_be.properties.i
-data/test/com/sun/security/sasl/digest/PropertiesFileCallbackHandler.java.i
-data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest12_ok.ssl.in.i
-data/src/share/classes/java/net/SocksConsts.java.i
+data/src/share/native/java/lang/reflect/Proxy.c.i
+data/src/share/classes/sun/management/Agent.java.i
+data/make/java/java_crw_demo/Makefile.i
 data/test/com/sun/jdi/WatchFramePop.sh.i
-data/src/solaris/classes/sun/awt/X11/XException.java.i
-data/test/com/sun/jndi/ldap/NoWaitForReplyTest.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_sq.properties.i
+data/make/mkdemo/applets/SpreadSheet/Makefile.i
+data/src/share/classes/javax/management/remote/JMXPrincipal.java.i
 data/test/sun/tools/jstat/gcNewOutput1.awk.i
 data/src/share/classes/com/sun/net/ssl/X509TrustManager.java.i
 data/make/tools/src/build/tools/charsetmapping/SBCS.java.i
-data/src/share/classes/java/awt/peer/TrayIconPeer.java.i
-data/src/solaris/native/java/net/linux_close.c.i
+data/test/com/sun/net/httpserver/Test13.java.i
+data/test/sun/misc/Cleaner/ExitOnThrow.java.i
 data/src/solaris/sample/dtrace/README.txt.i
-data/src/solaris/classes/sun/java2d/xr/XRBackend.java.i
-data/src/share/classes/sun/io/CharToByteUnicodeBig.java.i
+data/test/com/sun/servicetag/FindServiceTags.java.i
+data/test/com/sun/jdi/PopAndStepTest.java.i
 data/src/share/classes/sun/audio/NativeAudioStream.java.i
-data/src/share/classes/javax/print/FlavorException.java.i
-data/src/share/demo/nbproject/jfc/FileChooserDemo/build.xml.i
+data/src/share/native/sun/awt/image/cvutils/README.i
+data/src/share/classes/sun/security/tools/KeyStoreUtil.java.i
+data/test/sun/security/pkcs11/KeyStore/Basic.java.i
 data/src/share/classes/javax/naming/directory/Attribute.java.i
 data/test/java/awt/event/KeyEvent/KeyTyped/CtrlASCII.java.i
-data/make/tools/swing-beans/beaninfo/images/JToolBarColor16.gif.i
-data/test/sun/net/www/protocol/http/UserCookie.java.i
+data/src/share/instrument/Reentrancy.h.i
+data/test/java/beans/XMLEncoder/6777487/TestCheckedCollection.java.i
+data/src/share/demo/nbproject/jfc/SwingApplet/nbproject/netbeans-targets.xml.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKColorChooserPanel.java.i
-data/src/share/classes/sun/tools/jar/JarException.java.i
+data/src/share/native/sun/font/layout/ArabicLayoutEngine.cpp.i
 data/test/sun/nio/cs/TestSJIS0213.java.i
-data/src/share/classes/sun/text/resources/FormatData_fr_BE.java.i
-data/make/netbeans/common/windows-sources.ent.i
+data/src/share/classes/sun/util/resources/CalendarData_vi.properties.i
+data/src/share/classes/java/lang/InstantiationException.java.i
 data/test/java/lang/ClassLoader/findSystemClass/Loadee.resource.i
-data/src/share/classes/sun/java2d/pipe/LoopBasedPipe.java.i
+data/src/windows/classes/sun/java2d/windows/Win32SurfaceData.java.i
 data/src/share/classes/sun/security/jgss/wrapper/GSSNameElement.java.i
-data/src/share/classes/java/nio/file/CopyMoveHelper.java.i
+data/src/share/classes/sun/awt/image/OffScreenImageSource.java.i
 data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanDirConfigTest.java.i
 data/src/share/native/sun/font/layout/LEInsertionList.cpp.i
+data/test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/SingleCertificateResolver.java.i
 data/src/share/classes/java/nio/file/AccessDeniedException.java.i
 data/src/share/classes/java/lang/management/ManagementPermission.java.i
 data/src/solaris/doc/sun/man/man1/ja/xjc.1.i
 data/src/share/classes/java/nio/file/FileAction.java.i
-data/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java.i
+data/test/sun/security/krb5/auto/basic.sh.i
 data/src/share/classes/sun/tools/jar/resources/jar_zh_CN.properties.i
 data/test/java/io/Serializable/classDescHooks/Foo.ser.i
-data/src/share/native/sun/font/layout/StateTableProcessor.cpp.i
+data/src/share/classes/com/sun/security/jgss/GSSUtil.java.i
 data/make/netbeans/swing/build.xml.i
-data/src/share/classes/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java.i
-data/test/java/util/Vector/SimpleSerialization.java.i
-data/test/java/math/BigInteger/ModPowPowersof2.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_fi_FI.properties.i
-data/src/share/classes/java/text/CharacterIteratorFieldDelegate.java.i
-data/src/share/classes/javax/management/openmbean/TabularType.java.i
-data/test/com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java.i
-data/test/javax/sound/midi/Gervill/SoftAudioBuffer/NewSoftAudioBuffer.java.i
-data/src/share/classes/javax/swing/plaf/synth/doc-files/synthFileFormat.html.i
+data/src/share/classes/javax/swing/event/ListDataListener.java.i
+data/test/java/util/TimeZone/ListTimeZones.java.i
+data/src/solaris/native/sun/awt/awt_DrawingSurface.c.i
+data/src/share/classes/java/text/CharacterIteratorFieldDelegate.java.i
+data/src/share/demo/scripting/jconsole-plugin/src/scripts/verbose.js.i
+data/src/share/classes/sun/text/normalizer/Utility.java.i
 data/test/tools/launcher/UnicodeTest.jar.i
 data/test/java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java.i
 data/src/windows/classes/sun/awt/windows/WCanvasPeer.java.i
 data/test/java/io/pathNames/General.java.i
 data/test/java/net/ipv6tests/UdpTest.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es.properties.i
-data/test/java/nio/charset/spi/basic.sh.i
 data/src/share/classes/sun/security/krb5/ServiceName.java.i
-data/test/sun/tools/jstat/jstatSnap2.sh.i
-data/src/windows/native/sun/windows/awt_Win32GraphicsConfig.h.i
-data/test/sun/net/www/http/HttpClient/StreamingRetry.java.i
+data/src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java.i
+data/test/java/beans/Beans/Test4080522.java.i
+data/test/java/beans/PropertyEditor/TestIntegerClassNull.java.i
 data/src/share/classes/sun/util/LocaleServiceProviderPool.java.i
-data/test/java/net/Inet6Address/IPv6Numeric.java.i
-data/test/java/io/Serializable/oldTests/ArrayFields.java.i
-data/test/sun/security/rsa/TestKeyPairGenerator.java.i
+data/test/java/util/concurrent/FutureTask/Customized.java.i
 data/test/sun/net/www/protocol/http/StreamingOutputStream.java.i
 data/src/share/classes/javax/net/ssl/KeyManagerFactory.java.i
+data/src/share/native/sun/java2d/loops/ByteBinary1Bit.c.i
+data/src/share/classes/java/util/NavigableSet.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmRTLibraryPathTableMetaImpl.java.i
-data/src/share/classes/sun/swing/CachedPainter.java.i
-data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-i586/libLauncher.so.i
-data/src/share/native/sun/font/layout/HanLayoutEngine.cpp.i
+data/test/java/io/OutputStreamWriter/NullCreate.java.i
+data/src/share/native/sun/awt/image/cvutils/img_fscolor.h.i
+data/test/java/util/Timer/DelayOverflow.java.i
 data/src/share/classes/com/sun/management/GarbageCollectionNotificationInfo.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/MXBeanMapping.java.i
 data/src/share/classes/sun/management/LockDataConverterMXBean.java.i
@@ -7269,401 +7049,389 @@ data/test/java/net/InetAddress/META-INF/services/sun.net.spi.nameservice.NameSer
 data/test/javax/swing/JTable/Test6888156.java.i
 data/test/java/io/File/SymLinks.java.i
 data/test/java/nio/channels/ServerSocketChannel/AcceptAddress.java.i
-data/src/share/classes/com/sun/media/sound/services/javax.sound.midi.spi.SoundbankReader.i
-data/test/java/util/ResourceBundle/RB4353454_en.properties.i
+data/test/java/lang/instrument/GetObjectSizeTest.java.i
+data/src/share/classes/java/nio/file/attribute/PosixFileAttributeView.java.i
+data/src/share/classes/sun/security/x509/CRLDistributionPointsExtension.java.i
 data/test/java/security/Security/ClassLoaderDeadlock/Deadlock.jar.i
-data/test/org/openjdk/jigsaw/resolver.sh.i
-data/src/share/classes/sun/awt/GlobalCursorManager.java.i
-data/test/tools/pack200/MemoryAllocatorTest.java.i
-data/src/share/classes/com/sun/media/sound/SoftLinearResampler.java.i
-data/test/sun/net/InetAddress/nameservice/B6442088.java.i
+data/src/solaris/doc/sun/man/man1/ja/jdb.1.i
+data/src/share/native/sun/misc/GC.c.i
+data/test/java/lang/management/ManagementFactory/PlatformMBeanServerTest.java.i
 data/src/share/classes/sun/nio/cs/ext/DBCS_IBM_ASCII_Encoder.java.i
 data/src/share/classes/sun/net/www/content/audio/wav.java.i
-data/make/sun/security/jgss/wrapper/FILES_c.gmk.i
-data/test/java/io/RandomAccessFile/skipBytes/input.txt.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputStreamTests.java.i
+data/src/solaris/native/sun/awt/awt_Component.h.i
 data/src/windows/classes/sun/java2d/SurfaceManagerFactory.java.i
-data/src/share/native/sun/java2d/cmm/lcms/cmspack.c.i
 data/src/share/classes/javax/imageio/stream/ImageOutputStreamImpl.java.i
 data/make/mkdemo/applets/ArcTest/Makefile.i
 data/test/java/beans/PropertyEditor/TestEnumClass.java.i
-data/src/share/classes/sun/security/smartcardio/PCSC.java.i
+data/src/share/classes/sun/text/resources/FormatData_no_NO_NY.java.i
 data/src/share/classes/com/sun/jdi/Type.java.i
-data/src/share/classes/sun/management/snmp/util/SnmpCachedData.java.i
-data/src/share/native/com/sun/media/sound/Utilities.h.i
+data/test/java/io/FileInputStream/OpsAfterClose.java.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmRTLibraryPathEntryMeta.java.i
 data/src/share/classes/sun/security/krb5/internal/KrbErrException.java.i
-data/src/share/classes/sun/nio/cs/ext/MS932DB.java.i
+data/test/java/util/concurrent/ExecutorCompletionService/ExecutorCompletionServiceLoops.java.i
 data/src/windows/native/sun/awt/utility/rect.h.i
 data/src/share/lib/management/snmp.acl.template.i
 data/src/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java.i
 data/src/share/classes/java/io/NotActiveException.java.i
-data/src/share/classes/javax/naming/event/NamespaceChangeListener.java.i
+data/test/javax/management/remote/mandatory/passwordAccessFile/NonJMXPrincipalsTest.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/ClientHelloRead.java.i
-data/src/share/classes/sun/misc/Compare.java.i
-data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest13_ok.ssl.in.i
+data/src/share/classes/java/lang/reflect/InvocationHandler.java.i
 data/test/java/security/Permission/NullName.java.i
 data/src/share/classes/sun/tools/jstat/resources/jstat_unsupported_options.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIProperty.java.i
-data/src/share/classes/javax/print/attribute/standard/MediaSize.java.i
+data/src/share/classes/javax/swing/DebugGraphics.java.i
+data/src/share/classes/javax/naming/PartialResultException.java.i
 data/src/solaris/hpi/native_threads/src/threads_linux.c.i
-data/test/java/nio/channels/spi/AsynchronousChannelProvider/Provider1.java.i
 data/src/share/classes/sun/security/pkcs/PKCS10.java.i
-data/make/tools/swing-beans/beaninfo/images/JPasswordFieldMono32.gif.i
+data/test/com/sun/jdi/JDIScaffold.java.i
 data/test/java/util/zip/Available.java.i
 data/src/share/classes/sun/io/CharToByteEUC_TW.java.i
-data/src/share/native/sun/awt/image/imageInitIDs.c.i
+data/src/share/classes/sun/rmi/server/ActivatableRef.java.i
 data/test/com/sun/jdi/ProcessAttachDebugger.java.i
 data/src/share/classes/sun/io/CharToByteISO8859_15.java.i
 data/test/com/sun/net/httpserver/Test6a.java.i
-data/src/share/native/sun/font/DrawGlyphList.c.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS16U16Func.c.i
+data/src/share/classes/sun/print/ProxyGraphics.java.i
 data/test/java/beans/PropertyEditor/TestIntegerType.java.i
-data/test/java/nio/Buffer/Basic-X.java.i
+data/src/windows/lib/tzmappings.i
 data/src/share/classes/com/sun/nio/sctp/ShutdownNotification.java.i
 data/src/share/classes/javax/sound/sampled/Mixer.java.i
-data/src/solaris/doc/sun/man/man1/ja/jstat.1.i
-data/src/share/classes/java/security/cert/CertStoreParameters.java.i
-data/src/share/native/com/sun/java/util/jar/pack/main.cpp.i
+data/src/share/classes/sun/awt/ScrollPaneWheelScroller.java.i
+data/src/solaris/back/util_md.h.i
+data/src/share/classes/sun/tools/java/IdentifierToken.java.i
+data/test/java/io/pathNames/win32/RenameDelete.java.i
 data/test/java/lang/ref/Basic.java.i
+data/test/java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java.i
 data/src/share/native/sun/java2d/opengl/OGLRenderQueue.h.i
-data/make/tools/swing-beans/beaninfo/images/JMenuMono16.gif.i
-data/src/share/classes/sun/io/ConversionBufferFullException.java.i
+data/make/tools/src/build/tools/javazic/Gen.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/OriginServer.java.i
 data/src/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java.i
-data/src/windows/native/sun/java2d/d3d/D3DRuntimeTest.h.i
 data/test/javax/swing/JInternalFrame/Test6325652.java.i
 data/test/javax/xml/crypto/dsig/data/certs/test.jks.i
 data/make/javax/accessibility/Makefile.i
 data/src/share/classes/java/security/spec/KeySpec.java.i
 data/test/java/util/PluggableLocale/CurrencyNameProviderTest.java.i
-data/src/share/classes/sun/jvmstat/monitor/StringMonitor.java.i
-data/test/java/net/ResponseCache/B6181108.java.i
 data/make/tools/winver/src/StdAfx.h.i
+data/src/share/classes/sun/font/CompositeFont.java.i
 data/test/sun/net/InetAddress/nameservice/deadlock/ThrowingNameServiceDescriptor.java.i
-data/src/share/classes/sun/tools/tree/SynchronizedStatement.java.i
 data/src/solaris/classes/sun/awt/X11/XScrollbarClient.java.i
-data/src/share/classes/java/security/cert/X509CertSelector.java.i
+data/test/java/lang/Runtime/exec/Space.java.i
 data/test/java/security/AccessControlContext/CheckNullPermission.java.i
-data/make/tools/src/build/tools/charsetmapping/Utils.java.i
+data/src/share/native/sun/awt/image/jpeg/jmemsys.h.i
 data/src/solaris/lib/images/cursors/cursors.properties.i
 data/src/share/classes/java/net/UnknownHostException.java.i
-data/src/share/classes/com/sun/crypto/provider/BlowfishParameters.java.i
+data/test/java/rmi/transport/reuseDefaultPort/ReuseDefaultPort.java.i
 data/src/share/classes/sun/io/ByteToCharMacCentralEurope.java.i
 data/src/share/classes/java/rmi/AlreadyBoundException.java.i
 data/src/share/classes/javax/swing/plaf/nimbus/ShadowEffect.java.i
 data/src/windows/native/sun/jkernel/kernel_es.rc.i
-data/test/com/sun/security/sasl/pw.properties.i
 data/test/java/io/charStreams/UTF16.java.i
 data/test/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java.i
 data/make/tools/swing-beans/beaninfo/images/JDialogMono32.gif.i
-data/test/java/util/ResourceBundle/Control/StressOut_ko.properties.i
-data/test/java/util/TimSort/ArrayBuilder.java.i
-data/test/java/nio/channels/Selector/ReadAfterConnect.java.i
-data/test/java/math/BigInteger/CompareToTests.java.i
+data/test/javax/sound/midi/Gervill/AudioFloatInputStream/ReadFloatArrayIntInt.java.i
+data/src/share/demo/applets/SortDemo/example1.html.i
+data/test/sun/security/pkcs11/nss/lib/linux-amd64/libnssckbi.so.i
+data/test/java/util/logging/LoggerResourceBundleRace.java.i
 data/test/sun/security/ssl/javax/net/ssl/Fix5070632.java.i
-data/src/share/classes/sun/util/logging/resources/logging_de.properties.i
+data/src/share/classes/com/sun/jndi/ldap/LdapSchemaCtx.java.i
 data/src/share/classes/com/sun/jndi/ldap/LdapPoolManager.java.i
-data/test/javax/swing/JColorChooser/Test4165217.java.i
 data/src/share/classes/com/sun/media/sound/WaveFloatFileReader.java.i
-data/src/share/classes/com/sun/tools/jdi/ThreadReferenceImpl.java.i
-data/src/share/classes/java/sql/Types.java.i
-data/test/java/lang/Thread/NullStackTrace.java.i
-data/test/java/security/KeyRep/HmacMD5.pre.1.5.key.i
-data/make/sun/xawt/ToBin.java.i
+data/src/share/classes/sun/util/locale/AsciiUtil.java.i
+data/src/share/classes/sun/reflect/ClassFileAssembler.java.i
+data/test/java/io/File/WinDeviceName.java.i
+data/test/javax/sound/midi/Gervill/ModelSource/SetTransform.java.i
+data/test/javax/management/openmbean/ArrayTypeTest.java.i
 data/src/share/classes/java/util/InputMismatchException.java.i
-data/src/share/classes/com/sun/jndi/ldap/LdapCtx.java.i
-data/src/share/classes/sun/net/www/protocol/http/spnego/NegotiatorImpl.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_it_IT.properties.i
+data/src/share/classes/sun/reflect/FieldAccessorImpl.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/Apple.java.i
 data/test/java/util/zip/ZipFile/ReadAfterClose.java.i
 data/src/windows/native/sun/windows/awt_ole.cpp.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassListReader.java.i
-data/src/solaris/doc/sun/man/man1/ja/servertool.1.i
-data/src/share/classes/java/nio/file/StandardCopyOption.java.i
-data/test/java/nio/channels/Selector/OpRead.java.i
+data/test/java/net/Socket/Timeout.java.i
+data/make/tools/swing-beans/beaninfo/images/JDialogColor16.gif.i
+data/src/solaris/native/sun/jdga/dgalock.c.i
+data/src/share/classes/sun/security/provider/PolicySpiFile.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsComboBoxUI.java.i
 data/src/share/classes/com/sun/jndi/url/corbaname/corbanameURLContextFactory.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmRTLibraryPathEntryImpl.java.i
 data/src/share/classes/java/security/interfaces/RSAKey.java.i
 data/src/share/classes/java/nio/StringCharBuffer.java.i
-data/test/sun/nio/cs/Test4206507.java.i
-data/make/com/sun/crypto/provider/Makefile.i
-data/test/sun/security/util/DerValue/BadValue.java.i
-data/src/share/classes/com/sun/net/ssl/X509KeyManager.java.i
-data/src/share/classes/sun/security/krb5/internal/AuthorizationDataEntry.java.i
-data/src/share/classes/com/sun/jmx/snmp/internal/SnmpModel.java.i
+data/src/solaris/classes/sun/awt/X11/Native.java.i
+data/test/java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval_Stub.java.i
+data/test/sun/text/resources/LocaleData.i
+data/src/share/classes/javax/sql/package.html.i
 data/test/sun/security/mscapi/PublicKeyInterop.sh.i
 data/src/share/classes/sun/security/krb5/internal/crypto/RsaMd5DesCksumType.java.i
 data/test/sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java.i
 data/src/share/classes/sun/io/CharToByteMacCentralEurope.java.i
-data/src/share/native/sun/java2d/opengl/OGLMaskFill.c.i
-data/src/share/native/sun/awt/image/jpeg/jquant1.c.i
+data/test/java/util/Collections/T5078378.java.i
 data/src/share/classes/javax/security/sasl/SaslServer.java.i
 data/test/java/nio/channels/FileChannel/Force.java.i
-data/src/share/classes/sun/text/resources/CollationData_es.java.i
+data/src/solaris/classes/sun/nio/ch/FileDispatcherImpl.java.i
 data/test/org/openjdk/jigsaw/cli/keystore.jks.i
-data/src/share/classes/java/awt/CardLayout.java.i
+data/make/tools/CharsetMapping/IBM921.map.i
 data/test/javax/sound/midi/Gervill/ModelPerformer/SetKeyTo.java.i
 data/src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java.i
 data/make/netbeans/j2se/build.properties.i
-data/src/share/native/java/util/zip/zlib-1.1.3/inffast.h.i
-data/src/share/classes/java/awt/geom/Point2D.java.i
+data/src/share/demo/nbproject/project.xml.i
+data/test/com/sun/servicetag/servicetag3.properties.i
 data/src/share/native/com/sun/media/sound/DirectAudio.h.i
-data/test/java/rmi/activation/Activatable/unregisterInactive/UnregisterInactive_Stub.java.i
-data/test/java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java.i
 data/src/solaris/doc/sun/man/man1/ja/jhat.1.i
 data/src/share/classes/com/sun/media/sound/FastShortMessage.java.i
 data/src/share/classes/java/security/cert/X509CRL.java.i
 data/src/share/classes/java/rmi/server/LogStream.java.i
-data/make/sun/security/jgss/wrapper/mapfile-vers.i
+data/src/share/classes/javax/imageio/plugins/jpeg/package.html.i
+data/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java.i
 data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileSystem.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifOptionPaneUI.java.i
-data/src/share/classes/sun/nio/cs/ext/JIS_X_0208.java.i
-data/test/java/beans/VetoableChangeSupport/Test4092906.java.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpCounter64.java.i
-data/src/linux/doc/man/ja/xjc.1.i
+data/src/share/demo/jvmti/heapViewer/heapViewer.c.i
+data/test/java/util/zip/ZipEntry/input.jar.i
+data/src/share/classes/java/rmi/activation/ActivationGroupID.java.i
+data/src/share/classes/javax/swing/JFrame.java.i
 data/make/sun/rmi/registry/Makefile.i
 data/test/java/security/cert/CertPathValidator/targetConstraints/sun2labs1.cer.i
 data/test/java/util/Formatter/BasicByteObject.java.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMInformInterestedHost.java.i
+data/src/share/classes/javax/management/StandardMBean.java.i
 data/src/share/classes/sun/text/resources/FormatData_en_US.java.i
 data/src/share/classes/javax/swing/plaf/metal/icons/ocean/file.gif.i
 data/src/share/demo/jvmti/java_crw_demo/sample.makefile.txt.i
-data/test/java/beans/XMLEncoder/java_util_Collections_SingletonList.java.i
-data/test/sun/net/www/http/KeepAliveCache/KeepAliveTimerThread.java.i
-data/test/sun/nio/cs/BufferUnderflowEUCTWTest.java.i
+data/src/share/classes/com/sun/jdi/Field.java.i
 data/src/share/demo/applets/WireFrame/models/cube.obj.i
 data/test/java/awt/Focus/NonFocusableWindowTest/Test.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmMemoryMBean.java.i
 data/test/java/io/Serializable/GetField/Write.java.i
 data/src/share/classes/javax/management/NotificationFilter.java.i
-data/test/java/beans/PropertyEditor/TestFloatType.java.i
 data/src/share/classes/sun/print/resources/serviceui_fr.properties.i
 data/make/tools/CharsetMapping/MacThai.map.i
-data/src/share/sample/nio/server/README.txt.i
+data/test/java/util/ResourceBundle/Test4300693RB.java.i
 data/test/java/io/Serializable/proxy/replace/Resolved.java.i
 data/src/solaris/classes/sun/awt/X11FontManager.java.i
-data/src/share/classes/javax/swing/SwingConstants.java.i
-data/test/java/lang/instrument/ilib/ClassDump.java.i
-data/src/share/classes/com/sun/tools/jdi/ConnectorImpl.java.i
+data/test/java/util/Locale/data/deflocale.rhel4.i
+data/src/share/classes/javax/swing/colorchooser/SlidingSpinner.java.i
 data/src/share/classes/sun/java2d/opengl/OGLRenderer.java.i
 data/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java.i
-data/test/java/util/TimeZone/TimeZoneDatePermissionCheck.sh.i
+data/test/javax/sound/midi/Gervill/SoftReceiver/Close.java.i
 data/test/sun/net/www/protocol/jar/foo2.jar.i
-data/test/java/net/ipv6tests/BadIPv6Addresses.java.i
-data/test/java/security/KeyRep/RSA.pre.1.5.key.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java.i
+data/test/javax/sound/midi/Gervill/ModelIdentifier/SetInstance.java.i
+data/test/javax/management/remote/mandatory/subjectDelegation/policy34.i
 data/test/java/util/ResourceBundle/Bug6287579.java.i
-data/test/java/util/Currency/Bug4512215.java.i
-data/src/share/sample/vm/jvm-clr/Makefile.i
-data/test/java/util/ResourceBundle/Bug6356571.java.i
-data/src/share/classes/com/sun/beans/decoder/MethodElementHandler.java.i
+data/test/javax/management/modelmbean/ModelMBeanInfoSupport/logging.properties.i
+data/src/share/classes/javax/sql/ConnectionEvent.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/ReferenceNotInitializedException.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BL_S16.h.i
 data/test/java/util/TimeZone/TimeZoneDatePermissionCheck.java.i
-data/src/share/demo/jvmti/waiters/waiters.cpp.i
 data/test/javax/swing/JComboBox/6632953/bug6632953.java.i
 data/src/solaris/classes/sun/nio/ch/SolarisAsynchronousChannelProvider.java.i
 data/test/java/nio/charset/Charset/NullCharsetName.java.i
-data/src/share/classes/sun/jvmstat/monitor/event/MonitorStatusChangeEvent.java.i
-data/test/java/beans/Introspector/Test6422403.java.i
-data/src/windows/native/sun/jkernel/stdafx.cpp.i
-data/test/sun/rmi/log/ReliableLog/LogAlignmentTest.java.i
-data/test/sun/security/pkcs11/nss/lib/linux-amd64/libplds4.so.i
-data/src/share/classes/sun/util/resources/CalendarData_zh.properties.i
+data/make/tools/CharsetMapping/MacGreek.map.i
+data/make/modules/tools/src/com/sun/classanalyzer/Module.java.i
+data/test/java/rmi/reliability/benchmark/bench/TextReporter.java.i
+data/src/share/classes/java/text/DontCareFieldPosition.java.i
+data/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java.i
+data/make/java/net/Makefile.i
+data/src/share/native/sun/security/ec/ecp_384.c.i
+data/src/share/classes/java/awt/dnd/DropTarget.java.i
 data/src/share/classes/java/security/cert/PKIXCertPathChecker.java.i
 data/make/java/hpi/hpi_common.gmk.i
 data/test/javax/swing/SwingWorker/6432565/bug6432565.java.i
-data/test/tools/launcher/Makefile.SolarisRunpath.i
-data/test/java/beans/Introspector/Test4144543.java.i
-data/src/share/classes/java/awt/dnd/DragSourceMotionListener.java.i
+data/test/java/awt/Graphics2D/DrawString/EmptyAttrString.java.i
+data/test/java/util/Locale/Bug4152725.java.i
+data/test/java/net/ipv6tests/TcpTest.java.i
 data/src/share/classes/javax/crypto/CryptoPermission.java.i
-data/src/share/classes/com/sun/crypto/provider/DESKeyGenerator.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/InvalidCanonicalizerException.java.i
 data/src/windows/native/sun/java2d/d3d/D3DVertexCacher.h.i
 data/src/share/classes/sun/awt/SunGraphicsCallback.java.i
-data/test/java/beans/XMLEncoder/6777487/TestCheckedList.java.i
-data/src/solaris/native/sun/awt/Xrandr.h.i
-data/src/solaris/sample/dtrace/hotspot/class_loading_stat.d.i
-data/test/java/util/WeakHashMap/ZeroInitCap.java.i
-data/test/javax/sound/midi/Gervill/SF2SoundbankReader/TestGetSoundbankInputStream.java.i
+data/src/share/classes/javax/swing/plaf/basic/BasicToolTipUI.java.i
+data/src/share/classes/javax/naming/InitialContext.java.i
+data/make/tools/CharsetMapping/EUC_CN.map.i
 data/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericStreamCipher.java.i
 data/src/share/demo/nbproject/jfc/SwingApplet/build.properties.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/TestThread.java.i
 data/src/share/native/java/lang/fdlibm/src/e_scalb.c.i
 data/src/share/native/sun/awt/image/jpeg/jdsample.c.i
-data/src/share/classes/sun/tools/tree/AddExpression.java.i
-data/test/tools/pack200/pack200-verifier/src/sun/tools/pack/verify/Globals.java.i
+data/test/sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java.i
+data/src/share/classes/sun/print/resources/duplex.png.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties.i
 data/test/java/nio/file/WatchService/grantDirAndTree.policy.i
-data/test/com/sun/security/sasl/gsskerb/run-nosec-wjaas.csh.i
+data/test/java/beans/PropertyEditor/TestShortType.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/AgreementMethod.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuUI.java.i
-data/src/share/classes/javax/management/remote/TargetedNotification.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/dnsstore.i
-data/test/javax/sound/midi/Gervill/SimpleSoundbank/AddResource.java.i
+data/src/share/classes/sun/nio/cs/ext/IBM864.java.i
+data/src/share/native/sun/awt/medialib/mlib_ImageRowTable.h.i
+data/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.i
+data/test/sun/security/provider/certpath/DisabledAlgorithms/CPValidatorEndEntity.java.i
 data/make/sun/cmm/lcms/FILES_c_unix.gmk.i
 data/src/share/classes/java/awt/image/renderable/RenderedImageFactory.java.i
-data/test/sun/security/ssl/javax/net/ssl/NewAPIs/CheckMyTrustedKeystore.java.i
 data/make/netbeans/common/jtreg-sources.ent.i
 data/src/share/classes/sun/nio/cs/HistoricallyNamedCharset.java.i
 data/test/java/net/URL/RestoreURL.java.i
 data/src/share/classes/com/sun/jdi/LocalVariable.java.i
 data/src/share/classes/sun/text/resources/FormatData_ro.java.i
 data/test/java/awt/Graphics2D/DrawString/DrawStrSuper.java.i
-data/make/tools/CharsetMapping/HKSCS2008.map.i
-data/src/share/classes/java/lang/NoSuchFieldException.java.i
+data/src/share/classes/sun/tools/jconsole/Version.java.template.i
+data/test/java/lang/management/ThreadMXBean/ThreadExecutionSynchronizer.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ar_KW.properties.i
+data/src/share/native/sun/awt/image/jpeg/jpeglib.h.i
 data/test/javax/management/MBeanServerFactory/NamedMBeanServerTest.java.i
-data/make/java/util/FILES_java.gmk.i
+data/test/demo/jvmti/hprof/HeapAllTest.java.i
 data/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java.i
 data/make/sun/jpeg/FILES_c.gmk.i
-data/src/share/classes/java/lang/management/MonitorInfo.java.i
+data/src/solaris/classes/sun/awt/X11GraphicsDevice.java.i
 data/src/share/classes/sun/java2d/loops/GraphicsPrimitiveMgr.java.i
 data/test/java/beans/XMLEncoder/javax_swing_border_StrokeBorder.java.i
 data/src/share/classes/com/sun/beans/decoder/JavaElementHandler.java.i
-data/test/sun/security/krb5/auto/CrossRealm.java.i
+data/test/javax/management/openmbean/MBeanFeatureInfoSerialStore.java.i
 data/src/share/native/sun/security/ec/impl/mp_gf2m.c.i
-data/src/solaris/native/sun/nio/fs/UnixCopyFile.c.i
+data/test/java/lang/String/RegionMatches.java.i
 data/src/share/classes/com/sun/crypto/provider/BlowfishCipher.java.i
-data/test/java/io/Serializable/evolution/RenamePackage/run.sh.i
+data/test/java/io/PrintStream/ClearErrorStream.java.i
+data/src/share/native/java/lang/Shutdown.c.i
+data/test/sun/invoke/util/ValueConversionsTest.java.i
+data/test/java/lang/management/RuntimeMXBean/TestInputArgument.sh.i
 data/src/share/classes/sun/java2d/opengl/OGLSurfaceData.java.i
-data/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java.i
-data/src/share/classes/java/text/AttributedCharacterIterator.java.i
-data/src/share/classes/sun/jvmstat/monitor/LongMonitor.java.i
+data/test/java/math/BigInteger/TestValueExact.java.i
+data/src/share/classes/java/awt/Shape.java.i
+data/src/share/classes/javax/swing/text/LayoutQueue.java.i
+data/src/share/classes/java/rmi/activation/package.html.i
 data/test/java/security/BasicPermission/MixedBasicPermissions.java.i
-data/src/share/classes/javax/print/attribute/standard/JobKOctets.java.i
-data/src/share/classes/sun/io/CharToByteJIS0208_Solaris.java.i
+data/test/sun/security/pkcs11/tls/masterdata.txt.i
+data/src/share/classes/com/sun/tracing/dtrace/ProviderAttributes.java.i
 data/test/sun/tools/jstat/lineCounts3.awk.i
-data/src/share/classes/com/sun/media/sound/SoftAudioBuffer.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/BezierControlPoint.java.i
-data/src/share/classes/sun/applet/AppletImageRef.java.i
-data/src/share/classes/java/awt/dnd/DragSourceListener.java.i
-data/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Encoder.java.i
-data/src/share/classes/com/sun/servicetag/SunConnection.java.i
-data/src/share/classes/sun/security/jgss/wrapper/Krb5Util.java.i
+data/test/com/sun/crypto/provider/Cipher/DES/DoFinalReturnLen.java.i
+data/src/share/classes/javax/swing/table/JTableHeader.java.i
+data/make/mkdemo/jvmti/heapViewer/Makefile.i
+data/src/share/classes/com/sun/jdi/VirtualMachine.java.i
+data/src/share/native/sun/java2d/cmm/lcms/lcms2.h.i
+data/src/share/classes/sun/text/resources/FormatData_fr_BE.java.i
+data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/Basics.java.i
+data/test/com/sun/crypto/provider/TLS/TestPRF12.java.i
 data/src/share/classes/sun/io/ByteToCharMS936.java.i
 data/src/share/classes/javax/swing/text/AttributeSet.java.i
 data/src/share/classes/sun/misc/Regexp.java.i
 data/test/javax/management/MBeanServer/MBeanExceptionTest.java.i
-data/src/share/native/sun/font/layout/LigatureSubstitution.h.i
-data/make/jpda/Makefile.i
+data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames.properties.i
+data/test/java/awt/font/Threads/FontThread.java.i
+data/src/share/classes/java/util/logging/Filter.java.i
+data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties.i
+data/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java.i
 data/src/windows/native/sun/java2d/d3d/D3DContext.cpp.i
+data/src/share/classes/sun/util/resources/LocaleNames_pl.properties.i
 data/make/sun/jdga/mapfile-vers.i
 data/src/share/classes/javax/swing/text/StyledEditorKit.java.i
 data/make/tools/CharsetMapping/MacUkraine.map.i
 data/src/share/classes/javax/management/openmbean/ArrayType.java.i
-data/src/share/classes/sun/io/ByteToCharCp285.java.i
-data/make/tools/src/build/tools/javazic/GenDoc.java.i
+data/src/share/classes/javax/sound/midi/spi/MidiFileWriter.java.i
+data/src/share/classes/sun/security/x509/AuthorityKeyIdentifierExtension.java.i
+data/src/share/classes/sun/jvmstat/monitor/StringMonitor.java.i
 data/src/share/classes/sun/security/ssl/ProtocolVersion.java.i
-data/src/share/classes/com/sun/imageio/plugins/common/BitFile.java.i
+data/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java.i
 data/make/netbeans/j2se/README.i
-data/make/tools/swing-beans/beaninfo/images/JMenuBarMono32.gif.i
+data/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java.i
 data/test/java/io/Serializable/survivePrematureClose/SurvivePrematureClose.java.i
 data/make/tools/CharsetMapping/ISO_8859_5.map.i
-data/test/sun/tools/jstat/gcPermCapacityOutput1.awk.i
-data/test/java/util/zip/ZipEntry/Clone.java.i
-data/src/share/classes/sun/net/ftp/FtpClientProvider.java.i
-data/src/share/classes/javax/swing/table/TableCellEditor.java.i
+data/src/solaris/native/common/jdk_util_md.h.i
+data/src/share/classes/java/util/zip/CRC32.java.i
+data/test/java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html.i
 data/src/share/classes/java/nio/charset/CodingErrorAction.java.i
-data/src/share/classes/sun/awt/CharsetString.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/crc32.java.i
-data/src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.h.i
+data/test/javax/management/descriptor/ImmutableDescriptorSerialTest.java.i
 data/src/share/classes/com/sun/crypto/provider/OutputFeedback.java.i
 data/test/java/awt/List/ScrollOutside/ScrollOut.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/ByteArrayCalls.java.i
 data/make/tools/CharsetMapping/IBM1142.c2b.i
 data/src/windows/native/sun/windows/awt_DrawingSurface.h.i
-data/src/share/classes/sun/misc/JarIndex.java.i
+data/src/share/classes/java/security/spec/ECFieldF2m.java.i
 data/src/share/native/java/lang/fdlibm/src/e_atan2.c.i
-data/src/share/classes/sun/nio/cs/ext/IBM1122.java.i
+data/src/windows/native/sun/windows/awt.h.i
 data/make/tools/CharsetMapping/IBM280.nr.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultLogConfig.java.i
-data/test/java/io/PrintWriter/FailingConstructors.java.i
+data/src/share/classes/sun/text/resources/FormatData_be.java.i
 data/src/share/classes/java/nio/charset/spi/package.html.i
 data/src/share/classes/com/sun/tools/hat/internal/parser/HprofReader.java.i
 data/src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java.i
 data/src/windows/classes/sun/nio/ch/Iocp.java.i
 data/src/share/classes/com/sun/jmx/snmp/ThreadContext.java.i
 data/src/share/classes/java/security/Certificate.java.i
-data/test/java/io/File/Mkdir.java.i
 data/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java.i
-data/src/share/classes/com/sun/media/sound/SoftResamplerStreamer.java.i
+data/test/javax/sound/midi/Gervill/SoftReceiver/Send_AllNotesOff.java.i
 data/test/java/nio/file/Path/delete_on_close.sh.i
 data/src/share/classes/sun/security/ssl/MAC.java.i
 data/src/windows/classes/java/net/DefaultDatagramSocketImplFactory.java.i
 data/test/com/sun/jdi/sde/onion/pickle/Mangle.java.i
-data/test/java/beans/PropertyEditor/TestByteClassNull.java.i
 data/src/share/native/sun/awt/medialib/mlib_image_blend_proto.h.i
-data/src/share/classes/com/sun/jdi/ShortType.java.i
+data/src/share/classes/java/sql/ParameterMetaData.java.i
 data/test/java/net/ResponseCache/file2.1.i
-data/test/java/util/concurrent/Exchanger/ExchangeLoops.java.i
-data/test/javax/security/auth/kerberos/ServicePermissionTest.java.i
+data/src/share/native/sun/java2d/cmm/lcms/cmsio1.c.i
+data/src/share/classes/sun/applet/AppletViewerFactory.java.i
+data/src/windows/classes/sun/java2d/d3d/D3DDrawImage.java.i
+data/src/solaris/classes/sun/awt/motif/MCheckboxPeer.java.i
 data/src/share/classes/sun/rmi/rmic/resources/rmic_ja.properties.i
-data/test/java/awt/dnd/URIListBetweenJVMsTest/SourceFileListFrame.java.i
 data/test/java/io/Serializable/classDescFlagConflict/Foo.java.i
-data/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ImplicitHandshake.java.i
+data/src/share/classes/sun/nio/cs/ext/JIS_X_0212_MS5022X_Encoder.java.i
 data/src/share/native/java/lang/fdlibm/include/fdlibm.h.i
 data/src/share/classes/sun/font/PhysicalStrike.java.i
 data/src/share/classes/sun/jkernel/DownloadManager.java.i
 data/src/share/native/java/net/Inet6Address.c.i
-data/test/java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.java.i
-data/test/java/awt/dnd/URIListBetweenJVMsTest/InterprocessMessages.java.i
+data/src/share/classes/sun/font/FontUtilities.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/LineNotFoundException.java.i
 data/test/java/nio/channels/DatagramChannel/SRTest.java.i
+data/src/share/classes/sun/swing/AccessibleMethod.java.i
 data/src/solaris/doc/sun/man/man1/jvisualvm.1.i
-data/src/share/classes/javax/security/auth/callback/NameCallback.java.i
-data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_es.properties.i
-data/make/java/nio/addNotices.sh.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmMemGCEntryMeta.java.i
-data/test/java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html.i
+data/src/share/classes/javax/swing/BoxLayout.java.i
+data/src/windows/classes/sun/security/krb5/internal/tools/KinitOptions.java.i
+data/src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java.i
+data/src/share/classes/com/sun/imageio/stream/StreamFinalizer.java.i
 data/src/share/classes/java/security/spec/AlgorithmParameterSpec.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/RetrievalMethod.java.i
-data/src/share/classes/java/io/LineNumberReader.java.i
-data/test/com/sun/tools/attach/java.policy.deny.i
+data/src/share/native/sun/awt/medialib/mlib_sys.c.i
+data/src/share/demo/jfc/Metalworks/Metalworks.java.i
+data/test/sun/util/resources/Locale/Bug4965260.java.i
 data/make/tools/CharsetMapping/IBM500.nr.i
-data/test/java/io/FileDescriptor/FileChannelFDTest.java.i
+data/test/java/util/zip/DeflateIn_InflateOut.java.i
 data/test/sun/security/provider/PolicyFile/CanonPath.java.i
 data/src/share/classes/java/security/MessageDigestSpi.java.i
-data/test/java/util/Arrays/ArrayObjectMethods.java.i
+data/src/solaris/classes/sun/awt/motif/MMenuPeer.java.i
 data/src/share/classes/sun/font/CreatedFontTracker.java.i
-data/test/sun/security/provider/certpath/DisabledAlgorithms/CPBuilder.java.i
-data/src/share/classes/sun/tools/jconsole/InternalDialog.java.i
+data/src/share/native/java/lang/fdlibm/src/s_tan.c.i
 data/test/javax/management/notification/BroadcasterSupportDeadlockTest.java.i
-data/test/sample/chatserver/ChatTest.java.i
 data/src/share/native/sun/awt/debug/debug_mem.c.i
-data/test/java/net/Socket/TestClose.java.i
+data/src/share/classes/sun/io/CharToByteJIS0212.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmThreadCpuTimeMonitoring.java.i
-data/test/java/net/MulticastSocket/Leave.java.i
 data/src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/ReferenceNotInitializedException.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java.i
+data/src/share/classes/sun/io/ByteToCharCp1025.java.i
+data/src/solaris/classes/sun/awt/X11/XMenuPeer.java.i
 data/src/share/classes/sun/security/jgss/spi/GSSCredentialSpi.java.i
 data/src/share/classes/sun/tools/tree/AssignMultiplyExpression.java.i
 data/src/share/native/sun/java2d/loops/TransformHelper.c.i
-data/test/java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html.i
+data/src/share/demo/jvmti/hprof/hprof_frame.c.i
 data/test/com/sun/jdi/connect/spi/ListConnectors.java.i
 data/test/sun/java2d/cmm/ColorConvertOp/SRGB555.png.i
-data/test/demo/jvmti/hprof/CpuTimesTest.java.i
+data/test/java/lang/instrument/IsModifiableClassApp.java.i
+data/src/share/classes/com/sun/jmx/snmp/agent/SnmpUserDataFactory.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsBorders.java.i
 data/src/windows/native/java/net/SocketInputStream.c.i
 data/src/share/classes/com/sun/tracing/dtrace/NameAttributes.java.i
 data/src/share/classes/java/security/SignatureSpi.java.i
-data/test/com/sun/jdi/connect/spi/DebugUsingCustomConnector.java.i
-data/src/share/classes/javax/sound/sampled/AudioFileFormat.java.i
+data/src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine.i
+data/src/share/classes/com/sun/media/sound/ModelOscillatorStream.java.i
 data/src/share/classes/javax/rmi/ssl/SslRMIClientSocketFactory.java.i
 data/src/share/classes/com/sun/security/auth/callback/TextCallbackHandler.java.i
+data/test/java/nio/file/Files/Links.java.i
 data/src/share/native/sun/awt/image/jpeg/jfdctfst.c.i
 data/src/share/classes/javax/management/InvalidAttributeValueException.java.i
-data/test/javax/management/remote/mandatory/provider/META-INF/services/javax.management.remote.JMXConnectorProvider.i
 data/src/share/classes/javax/print/attribute/standard/package.html.i
-data/test/java/security/cert/CertificateFactory/SlowStream.java.i
+data/src/share/classes/java/lang/reflect/package-info.java.i
 data/test/java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/Fixups.java.i
-data/test/javax/swing/plaf/synth/6771547/synthconfig.xml.i
+data/test/java/awt/regtesthelpers/process/ProcessCommunicator.java.i
 data/src/share/native/java/util/zip/zip_util.h.i
 data/src/share/classes/javax/smartcardio/TerminalFactory.java.i
-data/src/share/classes/java/security/AllPermission.java.i
+data/test/java/nio/channels/FileChannel/Lock.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageFilters.c.i
 data/src/share/classes/java/lang/management/RuntimeMXBean.java.i
-data/src/solaris/instrument/FileSystemSupport_md.c.i
-data/src/share/classes/sun/io/CharToByteCp1122.java.i
+data/src/share/classes/javax/security/auth/login/AccountLockedException.java.i
+data/src/share/demo/jfc/Metalworks/GreenMetalTheme.java.i
 data/src/share/back/StackFrameImpl.h.i
 data/src/share/classes/com/sun/beans/decoder/ShortElementHandler.java.i
+data/src/solaris/classes/sun/awt/X11/XWrapperBase.java.i
 data/src/share/classes/com/sun/media/sound/SoftAudioPusher.java.i
 data/make/tools/classanalyzer/nbproject/project.xml.i
 data/src/share/classes/sun/tools/jconsole/MaximizableInternalFrame.java.i
@@ -7672,121 +7440,127 @@ data/make/tools/swing-beans/beaninfo/images/JFrameMono32.gif.i
 data/src/share/classes/java/awt/datatransfer/DataFlavor.java.i
 data/test/java/util/Collections/ReplaceAll.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReaderSpi.java.i
-data/test/java/lang/Class/forName/classes/right-square.class.i
+data/src/share/classes/sun/nio/cs/ext/MS950_HKSCS_XP.java.i
 data/test/com/sun/jdi/MonitorFrameInfo.java.i
-data/test/java/security/BasicPermission/SerialVersion.1.2.1.i
 data/src/share/classes/sun/java2d/pipe/hw/AccelDeviceEventListener.java.i
 data/test/sun/security/tools/keytool/KeyToolTest.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract_43.c.i
-data/src/share/classes/sun/nio/cs/ext/DoubleByteEncoder.java.i
-data/test/com/sun/management/OperatingSystemMXBean/GetProcessCpuTime.java.i
+data/src/share/classes/sun/reflect/AccessorGenerator.java.i
+data/src/share/classes/com/sun/media/sound/DirectAudioDeviceProvider.java.i
+data/src/share/classes/javax/print/event/PrintEvent.java.i
+data/test/sun/net/www/http/HttpClient/OpenServer.policy.i
 data/src/share/native/java/util/zip/zlib-1.2.3/zconf.h.i
+data/test/java/security/cert/CertPathValidator/OCSP/FailoverToCRL.java.i
 data/test/com/sun/jdi/ZZZcleanup.sh.i
-data/test/javax/management/security/MBeanPermissionTest.java.i
+data/src/share/classes/com/sun/beans/decoder/ValueObjectImpl.java.i
 data/src/share/classes/javax/swing/text/html/HTML.java.i
 data/make/java/zip/FILES_c.gmk.i
-data/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java.i
+data/src/share/classes/javax/swing/plaf/nimbus/ImageCache.java.i
 data/src/solaris/classes/sun/awt/X11/XConstants.java.i
-data/src/share/classes/com/sun/tools/example/debug/gui/SourceTreeTool.java.i
-data/test/sun/security/x509/AVA/AVAEqualsHashCode.java.i
-data/test/java/lang/Runtime/exec/ConcurrentRead.java.i
-data/make/docs/Makefile.i
-data/src/linux/doc/man/ja/serialver.1.i
+data/src/share/classes/sun/java2d/pisces/Dasher.java.i
+data/src/share/classes/sun/dyn/package-info.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/XMLDSigRI.java.i
+data/src/share/classes/javax/print/attribute/standard/DialogTypeSelection.java.i
+data/src/share/classes/javax/swing/table/TableCellRenderer.java.i
+data/src/share/classes/sun/nio/ch/SctpMessageInfoImpl.java.i
 data/src/share/classes/javax/swing/event/HyperlinkListener.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/ShortCalls.java.i
+data/test/java/lang/invoke/ThrowExceptionsTest.java.i
 data/src/solaris/doc/sun/man/man1/ja/javah.1.i
 data/src/share/classes/java/util/EmptyStackException.java.i
-data/src/share/classes/java/awt/doc-files/modal-example3.gif.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsSeparatorUI.java.i
-data/test/javax/swing/text/html/parser/Parser/6990651/bug6990651.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32U16Func.c.i
+data/test/java/io/Serializable/enum/missingConstant/Read.java.i
+data/src/share/classes/sun/io/MalformedInputException.java.i
 data/src/share/classes/javax/print/PrintService.java.i
-data/src/solaris/classes/sun/awt/X11/WindowPropertyGetter.java.i
-data/make/tools/CharsetMapping/IBM273.map.i
-data/src/share/classes/com/sun/jndi/ldap/SimpleClientId.java.i
+data/src/share/demo/nbproject/management/VerboseGC/nbproject/netbeans-targets.xml.i
+data/src/share/classes/java/awt/event/FocusEvent.java.i
+data/src/share/classes/com/sun/awt/SecurityWarning.java.i
+data/test/sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html.i
 data/make/tools/swing-beans/beaninfo/images/JColorChooserColor32.gif.i
-data/src/share/classes/com/sun/media/sound/services/javax.sound.sampled.spi.MixerProvider.i
+data/src/solaris/native/sun/security/smartcardio/MUSCLE/COPYING.i
 data/src/share/classes/com/sun/beans/finder/MethodFinder.java.i
+data/make/tools/src/build/tools/automulti/TestALFLookAndFeel.java.i
 data/src/share/classes/java/nio/file/attribute/FileStoreSpaceAttributes.java.i
-data/test/sun/security/krb5/TimeInCCache.java.i
+data/src/share/classes/sun/tools/java/BinaryMember.java.i
 data/src/share/native/sun/font/layout/OpenTypeLayoutEngine.h.i
-data/src/share/lib/images/cursors/win32_LinkDrop32x32.gif.i
-data/test/java/beans/PropertyEditor/TestStringClassNull.java.i
+data/test/sun/security/pkcs11/nss/lib/linux-amd64/libplds4.so.i
+data/src/share/classes/com/sun/tools/example/debug/bdi/NoSessionException.java.i
 data/src/share/classes/sun/tools/jconsole/ThreadTab.java.i
 data/src/share/native/sun/font/layout/ICUFeatures.h.i
 data/make/mkdemo/jfc/Java2D/Makefile.i
-data/src/share/classes/sun/tools/jstat/SyntaxException.java.i
-data/src/windows/native/sun/java2d/d3d/D3DRenderer.h.i
+data/test/java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java.i
+data/test/sun/java2d/cmm/ColorConvertOp/ColorSpaceCvtCrashTest/ColorSpaceCvtCrashTest.java.i
 data/test/java/math/BigInteger/ExtremeShiftingTests.java.i
 data/src/share/demo/applets/MoleculeViewer/models/benzene.xyz.i
-data/src/share/native/java/lang/fdlibm/src/w_acos.c.i
-data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngineResult/Deserialize.java.i
-data/test/java/io/Serializable/evolution/AddedSuperClass/WriteAddedSuperClass.java.i
-data/test/sun/management/jmxremote/bootstrap/LocalManagementTest.sh.i
-data/src/linux/doc/man/ja/jinfo.1.i
+data/src/share/classes/sun/util/resources/CurrencyNames_ko_KR.properties.i
+data/src/solaris/classes/sun/awt/X11/java-icon32.png.i
 data/src/share/classes/com/sun/jndi/ldap/LdapRequest.java.i
 data/src/share/classes/java/awt/font/TextLayout.java.i
+data/src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.i
 data/src/solaris/native/sun/awt/splashscreen/splashscreen_sys.c.i
 data/src/share/classes/java/io/Serializable.java.i
-data/src/share/sample/nio/file/AclEdit.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/InvalidSignatureValueException.java.i
 data/src/share/classes/sun/management/counter/LongArrayCounter.java.i
-data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/CompressOutputStream.java.i
-data/src/share/classes/sun/nio/cs/ext/JIS_X_0212.java.i
-data/test/java/net/SocketPermission/ActionSpace.java.i
+data/src/share/native/sun/awt/medialib/mlib_c_ImageConvClearEdge.c.i
+data/test/sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java.i
 data/src/share/classes/sun/awt/resources/awt_zh_CN.properties.i
 data/src/share/classes/sun/text/resources/FormatData_es_DO.java.i
 data/src/share/classes/java/rmi/MarshalException.java.i
-data/src/share/classes/javax/crypto/spec/package.html.i
+data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java.i
 data/src/share/classes/java/util/ServiceConfigurationError.java.i
-data/src/share/classes/sun/management/CompilerThreadStat.java.i
+data/src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java.i
+data/src/share/classes/sun/io/CharToByteCp1122.java.i
 data/src/share/classes/sun/net/www/protocol/https/Handler.java.i
 data/make/tools/swing-beans/beaninfo/images/BorderColor16.gif.i
 data/src/share/classes/sun/security/pkcs11/Session.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/Des.java.i
 data/test/com/sun/crypto/provider/KeyAgreement/DHGenSecretKey.java.i
-data/test/java/lang/ThreadLocal/Basic.java.i
+data/test/java/util/zip/pkware123456789012345.zip.i
 data/src/windows/native/java/io/WinNTFileSystem_md.c.i
+data/src/share/classes/javax/swing/DefaultDesktopManager.java.i
 data/test/java/rmi/server/serverStackTrace/Impl1_Stub.java.i
-data/src/share/classes/sun/font/GlyphDisposedListener.java.i
+data/test/java/nio/file/spi/SetDefaultProvider.java.i
+data/src/share/classes/java/beans/Introspector.java.i
 data/test/java/util/concurrent/locks/ReentrantReadWriteLock/Bug6571733.java.i
 data/test/java/net/URLConnection/ZeroContentLength.java.i
-data/test/java/util/concurrent/DelayQueue/Iterate.java.i
-data/test/javax/script/ProviderTest.java.i
-data/make/tools/swing-beans/beaninfo/images/JDesktopPaneMono32.gif.i
+data/test/javax/swing/JColorChooser/Test6559154.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14N.java.i
+data/src/share/classes/org/openjdk/internal/joptsimple/UnrecognizedOptionException.java.i
+data/src/share/classes/java/io/StringReader.java.i
+data/src/share/back/eventFilter.c.i
 data/src/share/classes/sun/io/ByteToCharJIS0201.java.i
 data/test/com/sun/jdi/RepStep.java.i
-data/src/share/classes/javax/swing/InputMap.java.i
+data/src/share/classes/sun/jvmstat/monitor/VmIdentifier.java.i
 data/src/share/classes/javax/management/MBeanAttributeInfo.java.i
 data/src/windows/classes/sun/nio/ch/FileDispatcherImpl.java.i
 data/src/share/native/sun/awt/image/jpeg/jdtrans.c.i
-data/src/share/classes/sun/misc/resources/Messages_zh_CN.java.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/Result.java.i
 data/src/share/classes/javax/sql/DataSource.java.i
 data/src/share/classes/javax/swing/text/doc-files/paragraph.gif.i
-data/src/share/classes/javax/net/ssl/ManagerFactoryParameters.java.i
-data/test/java/lang/annotation/loaderLeak/Main.java.i
+data/src/share/classes/sun/beans/editors/ColorEditor.java.i
 data/src/share/classes/sun/awt/image/ImageFetchable.java.i
-data/src/share/classes/sun/io/CharToByteCp437.java.i
-data/src/solaris/classes/sun/java2d/xr/XIDGenerator.java.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpEngineId.java.i
+data/src/windows/native/sun/windows/awt_ole.h.i
+data/test/java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.java.i
+data/test/sun/nio/cs/OLD/DBCS_IBM_ASCII_Encoder.java.i
 data/test/sun/security/provider/certpath/CertId/interCA.der.i
-data/src/share/classes/javax/imageio/ImageReadParam.java.i
+data/make/tools/CharsetMapping/IBM297.map.i
 data/src/share/classes/com/sun/imageio/plugins/common/SubImageInputStream.java.i
 data/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp.i
 data/test/java/net/URLClassLoader/closetest/test1/com/foo/TestClass.java.i
 data/test/java/beans/XMLDecoder/spec/TestJava.java.i
 data/src/share/classes/com/sun/tools/jconsole/package.html.i
-data/test/java/io/Serializable/oldTests/ArrayOpsTest.java.i
+data/test/sun/nio/cs/OLD/X11GB2312_OLD.java.i
+data/src/share/classes/com/sun/media/sound/AiffFileWriter.java.i
 data/test/java/lang/management/GarbageCollectorMXBean/GcInfoCompositeType.java.i
-data/test/java/util/PluggableLocale/fooprovider.jar.i
+data/test/sun/security/pkcs11/PKCS11Test.java.i
 data/make/sun/text/FILES_java.gmk.i
 data/test/java/awt/dnd/ImageDecoratedDnDInOut/DnDSource.java.i
-data/src/share/demo/nbproject/management/VerboseGC/nbproject/jdk.xml.i
+data/test/javax/management/eventService/PublishTest.java.i
 data/test/java/io/Serializable/subclass/Allow.policy.i
-data/src/share/classes/java/awt/dnd/DragGestureListener.java.i
-data/test/java/awt/Component/isLightweightCrash/StubPeerCrash.java.i
+data/src/share/classes/sun/io/ByteToCharCp1383.java.i
 data/test/sun/misc/Cleaner/exitOnThrow.sh.i
-data/test/java/nio/channels/ServerSocketChannel/AdaptServerSocket.java.i
+data/src/share/classes/javax/swing/plaf/metal/icons/ocean/maximize-pressed.gif.i
 data/test/com/sun/jdi/ModificationWatchpoints.java.i
-data/src/share/demo/jvmti/hprof/hprof_trace.c.i
+data/test/java/lang/management/ManagementFactory/StateTest.java.i
 data/src/share/classes/java/awt/geom/EllipseIterator.java.i
 data/src/solaris/javavm/include/typedefs_md.h.i
 data/src/share/classes/com/sun/beans/decoder/VoidElementHandler.java.i
@@ -7800,82 +7574,78 @@ data/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java.i
 data/src/share/classes/com/sun/nio/sctp/Association.java.i
 data/test/sun/security/tools/jarsigner/AlgOptions.jar.i
 data/test/java/lang/Runtime/shutdown/ShutdownHooks.java.i
-data/src/share/classes/org/openjdk/jigsaw/package-info.java.i
+data/src/share/demo/nbproject/jfc/Metalworks/nbproject/jdk.xml.i
 data/test/sun/security/pkcs11/rsa/TestKeyFactory.java.i
 data/test/java/beans/PropertyChangeSupport/TestEquals.java.i
-data/src/share/native/sun/awt/image/jpeg/jidctfst.c.i
 data/src/solaris/classes/sun/awt/X11/XAWTLookAndFeel.java.i
+data/src/share/sample/scripting/scriptpad/nbproject/file-targets.xml.i
 data/test/javax/management/ObjectName/ValueOfTest.java.i
-data/src/share/classes/java/nio/channels/MulticastChannel.java.i
-data/test/java/lang/instrument/RedefineMethodAddInvokeTarget_1.java.i
-data/src/share/classes/com/sun/tools/jdi/LongValueImpl.java.i
-data/src/share/classes/com/sun/rowset/internal/XmlResolver.java.i
-data/src/share/classes/javax/print/attribute/standard/PDLOverrideSupported.java.i
-data/test/java/nio/charset/Charset/RegisteredCharsets.java.i
+data/src/share/classes/sun/text/resources/FormatData_ar_IQ.java.i
+data/make/netbeans/common/shared.xml.i
+data/make/sun/tracing/dtrace/mapfile-vers.i
+data/make/sun/rmi/rmi/Makefile.i
+data/make/docs/CORE_PKGS.gmk.i
+data/test/java/nio/charset/Charset/RegisteredCharsets.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/jibxhelpers/DimensionMapper.java.i
-data/src/share/classes/sun/nio/cs/ext/JISAutoDetect.java.i
+data/src/windows/classes/sun/awt/windows/awtLocalization_ko.properties.i
 data/test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshalOnStopThread_Stub.java.i
 data/src/share/classes/javax/sql/ConnectionPoolDataSource.java.i
 data/src/share/native/sun/security/ec/impl/mpi.h.i
-data/make/sun/rmi/oldtools/FILES_java.gmk.i
+data/src/share/classes/sun/net/NetProperties.java.i
 data/src/share/classes/java/awt/event/HierarchyBoundsListener.java.i
 data/make/java/redist/Makefile.i
 data/src/share/demo/applets/SortDemo/SortItem.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/exceptions/package.html.i
-data/make/tools/GenerateCharacter/Makefile.i
-data/test/java/rmi/activation/ActivateFailedException/activateFails/group.security.policy.i
+data/src/share/classes/com/sun/media/sound/RealTimeSequencer.java.i
+data/test/javax/security/auth/Subject/Synch.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java.i
 data/test/java/io/Serializable/illegalHandle/Test.java.i
-data/src/share/classes/javax/sound/midi/MidiFileFormat.java.i
+data/src/share/classes/org/ietf/jgss/GSSCredential.java.i
 data/test/javax/management/notification/NotifInfoTest.java.i
 data/test/java/security/KeyRep/RSA.1.5.key.i
-data/src/share/classes/sun/nio/cs/ISO_8859_2.java.i
-data/test/javax/sound/midi/Gervill/SoftReceiver/Send_PolyPressure.java.i
+data/test/java/math/BigInteger/CompareToTests.java.i
 data/src/share/classes/javax/swing/text/Segment.java.i
-data/test/sun/nio/cs/ISCIITest.java.i
-data/test/java/nio/file/Path/FileAttributes.java.i
-data/test/sun/util/calendar/Bug6653944.java.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/Token.java.i
+data/src/share/classes/sun/util/resources/CalendarData_zh.properties.i
 data/src/share/classes/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java.i
 data/test/com/sun/net/httpserver/bugs/B6529200.java.i
-data/src/share/classes/com/sun/media/sound/SF2LayerRegion.java.i
+data/src/share/classes/javax/crypto/spec/DHPrivateKeySpec.java.i
 data/src/share/classes/javax/swing/plaf/metal/icons/sortDown.png.i
-data/test/sun/security/pkcs11/Secmod/anchor.cer.i
-data/src/share/classes/com/sun/tools/example/debug/bdi/ParseException.java.i
-data/test/java/rmi/activation/ActivationSystem/modifyDescriptor/security.policy.i
+data/test/com/sun/tools/attach/PermissionTests.sh.i
+data/make/tools/CharsetMapping/IBM1383.map.i
 data/src/share/native/java/lang/fdlibm/src/s_finite.c.i
-data/src/share/classes/javax/print/event/package.html.i
-data/src/solaris/native/sun/java2d/loops/mlib_v_ImageXor.c.i
+data/src/share/classes/com/sun/tracing/ProbeName.java.i
 data/src/share/demo/jfc/TableExample/JDBCAdapter.java.i
+data/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java.i
 data/src/share/classes/javax/swing/BorderFactory.java.i
 data/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java.i
 data/make/common/Defs-windows.gmk.i
 data/test/java/lang/instrument/RuntimeConstants.java.i
-data/src/share/classes/sun/management/GcInfoBuilder.java.i
+data/test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.sh.i
 data/make/tools/src/build/tools/dtdbuilder/DTDParser.java.i
 data/src/share/classes/sun/io/CharToByteMS950_HKSCS.java.i
 data/src/share/classes/com/sun/jdi/PathSearchingVirtualMachine.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM930.java.i
-data/src/share/classes/java/awt/MenuItem.java.i
+data/src/share/classes/sun/util/resources/CalendarData_en_IE.properties.i
 data/test/java/nio/channels/SocketChannel/Write.java.i
 data/make/tools/CharsetMapping/IBM1097.map.i
-data/src/share/classes/sun/rmi/rmic/newrmic/jrmp/Constants.java.i
+data/test/javax/sound/midi/Gervill/SoftReceiver/Send_ProgramChange.java.i
+data/test/java/rmi/activation/Activatable/restartCrashedService/security.policy.i
 data/src/share/classes/sun/nio/cs/ext/IBM284.java.i
-data/src/share/classes/javax/accessibility/AccessibleResourceBundle.java.i
+data/src/share/native/sun/font/layout/SubstitutionLookups.cpp.i
 data/test/com/sun/jdi/sde/TemperatureTable.sde.i
 data/src/share/classes/java/awt/MultipleGradientPaintContext.java.i
 data/test/sun/security/x509/AVA/BadName.java.i
 data/src/share/classes/javax/naming/Name.java.i
-data/test/sun/management/windows/README.i
-data/src/share/classes/sun/reflect/SignatureIterator.java.i
-data/test/org/openjdk/jigsaw/ModuleInfoBuilder.java.i
-data/test/java/lang/Throwable/LocalizedMessage.java.i
+data/test/java/util/concurrent/ThreadPoolExecutor/ThrowingTasks.java.i
+data/src/share/demo/jvmti/hprof/hprof_monitor.h.i
+data/src/share/demo/java2d/J2DBench/README.i
+data/src/share/classes/javax/swing/text/rtf/RTFAttributes.java.i
 data/src/share/classes/javax/swing/JTextArea.java.i
-data/test/com/sun/jdi/RefTypes.java.i
-data/test/sun/security/krb5/canonicalize/META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor.i
+data/src/share/classes/sun/util/resources/LocaleNames_de.properties.i
 data/src/share/classes/sun/applet/resources/MsgAppletViewer.java.i
 data/test/java/beans/Introspector/4520754/FooBar.java.i
-data/src/share/classes/sun/java2d/DisposerRecord.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/icons/image-delayed.png.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitters.java.i
+data/src/share/classes/java/rmi/package.html.i
+data/test/javax/swing/JPopupMenu/6495920/bug6495920.java.i
 data/src/share/demo/jvmti/compiledMethodLoad/compiledMethodLoad.c.i
 data/src/share/classes/com/sun/jdi/event/MethodExitEvent.java.i
 data/test/javax/swing/JViewport/6953396/bug6953396.java.i
@@ -7886,194 +7656,188 @@ data/src/share/classes/javax/swing/plaf/basic/BasicSpinnerUI.java.i
 data/test/java/nio/channels/DatagramChannel/IsBound.java.i
 data/test/java/awt/Component/F10TopToplevel/F10TopToplevel.html.i
 data/src/share/classes/javax/security/auth/login/LoginContext.java.i
-data/make/sun/jar/Makefile.i
+data/make/tools/CharsetMapping/IBM420.c2b.i
 data/test/java/util/Vector/LastIndexOf.java.i
 data/src/share/classes/sun/security/ssl/SSLServerSocketFactoryImpl.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java.i
 data/test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableSortedMap.java.i
 data/src/share/classes/sun/util/resources/CalendarData_sv.properties.i
-data/src/share/classes/sun/io/ByteToCharEUC_JP_Solaris.java.i
+data/test/com/sun/jdi/SuspendNoFlagTest.sh.i
 data/test/java/security/AccessControlContext/FailureDebugOption.java.i
-data/test/com/sun/management/OperatingSystemMXBean/GetFreePhysicalMemorySize.java.i
+data/src/share/classes/com/sun/management/UnixOperatingSystemMXBean.java.i
+data/src/share/classes/sun/dyn/ToGeneric.java.i
 data/src/solaris/classes/sun/awt/X11/XDataTransferer.java.i
-data/test/javax/management/remote/mandatory/loading/SingleClassLoader.java.i
 data/test/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java.i
 data/src/share/classes/sun/nio/ch/AsynchronousChannelGroupImpl.java.i
-data/src/share/classes/sun/text/resources/CollationData_pt.java.i
+data/test/com/sun/management/OperatingSystemMXBean/GetFreePhysicalMemorySize.java.i
 data/make/org/ietf/jgss/FILES_java.gmk.i
-data/make/sun/font/reorder-sparcv9.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifDesktopPaneUI.java.i
+data/test/java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java.i
 data/src/solaris/classes/sun/awt/X11/XSystemTrayPeer.java.i
-data/test/java/lang/instrument/appendToClassLoaderSearch/Tracer.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBuffer/NewModelByteBufferFile.java.i
+data/test/javax/security/auth/SubjectDomainCombiner/Regression.policy.i
+data/test/sun/nio/cs/OLD/X11GBK_OLD.java.i
 data/test/sun/security/provider/PolicyFile/Utf8.policy.i
 data/src/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java.i
 data/src/share/classes/sun/security/ssl/OutputRecord.java.i
 data/src/share/classes/sun/awt/AWTAutoShutdown.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageConvClearEdge_Fp.c.i
-data/src/solaris/doc/sun/man/man1/orbd.1.i
+data/test/java/security/cert/CertPathValidator/nameConstraintsRFC822/jane2steve.cer.i
 data/test/java/beans/Introspector/Test4896879.java.i
+data/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form.i
 data/test/com/sun/jdi/PopSynchronousTest.java.i
-data/src/share/classes/com/sun/jdi/StackFrame.java.i
 data/src/share/classes/sun/java2d/opengl/OGLDrawImage.java.i
-data/test/sun/tools/jstat/lineCounts2.awk.i
 data/test/com/sun/net/httpserver/Test11.java.i
 data/test/sun/security/provider/PolicyParser/BogusGrants.java.i
-data/src/share/demo/applets/SortDemo/example1.html.i
-data/test/javax/sound/midi/Gervill/SoftReceiver/SoftTestUtils.java.i
-data/test/java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java.i
-data/test/java/net/Inet6Address/serialize/Readme.txt.i
+data/test/com/sun/crypto/provider/TLS/prfdata.txt.i
+data/src/windows/native/sun/java2d/d3d/D3DPaints.cpp.i
+data/test/javax/management/mxbean/CustomTypeTest.java.i
 data/test/java/util/Locale/data/deflocale.jds3.i
 data/src/share/classes/sun/security/jgss/krb5/Krb5AcceptCredential.java.i
-data/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUI.java.i
-data/src/share/classes/com/sun/jmx/remote/protocol/rmi/ClientProvider.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java.i
+data/make/tools/src/build/tools/jdwpgen/ValueTypeNode.java.i
+data/src/share/classes/javax/accessibility/AccessibleRole.java.i
 data/src/share/classes/java/dyn/ConstantCallSite.java.i
 data/src/share/classes/sun/text/resources/FormatData_es_SV.java.i
 data/test/java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java.i
 data/src/share/classes/java/rmi/RMISecurityException.java.i
 data/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfigMXBean.java.i
-data/make/tools/swing-beans/SwingBeanInfo.template.i
+data/src/share/classes/sun/util/resources/CurrencyNames_be_BY.properties.i
 data/make/tools/swing-beans/beaninfo/images/JRootPaneColor32.gif.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/Transforms.java.i
+data/test/java/io/Serializable/available/Available.java.i
 data/test/javax/management/remote/mandatory/subjectDelegation/policy31.i
 data/test/sun/security/tools/jarsigner/checkusage.sh.i
-data/src/share/native/sun/awt/libpng/pngrutil.c.i
-data/test/com/sun/jndi/ldap/LdapName/EmptyNameSearch.java.i
-data/src/share/classes/com/sun/jmx/namespace/serial/RoutingOnlyProcessor.java.i
+data/src/share/classes/sun/java2d/Surface.java.i
+data/test/java/lang/Double/NaNInfinityParsing.java.i
+data/test/java/awt/Component/isLightweightCrash/StubPeerCrash.java.i
 data/test/java/security/ProtectionDomain/Recursion.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java.i
+data/src/share/classes/javax/management/event/EventReceiver.java.i
 data/test/java/net/MulticastSocket/TestDefaults.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/GoodProvider.java.i
+data/src/share/classes/sun/rmi/rmic/IndentingWriter.java.i
 data/test/com/sun/security/auth/login/ConfigFile/IllegalURL.java.i
-data/test/java/lang/String/IndexOfEmptyInEmpty.java.i
+data/src/share/classes/sun/security/util/DerInputBuffer.java.i
 data/test/com/sun/security/auth/module/KeyStoreLoginModule/OptionTest.keystore.i
-data/src/share/classes/java/util/concurrent/CancellationException.java.i
-data/make/netbeans/common/closed-share-view.ent.i
+data/src/linux/doc/man/schemagen.1.i
+data/src/windows/native/sun/nio/ch/FileDispatcher.c.i
 data/src/share/classes/sun/print/BackgroundServiceLookup.java.i
 data/test/com/sun/java/swing/plaf/gtk/Test6635110.java.i
 data/test/javax/xml/crypto/dsig/data/signature-x509-crt.xml.i
-data/src/solaris/classes/java/net/DefaultDatagramSocketImplFactory.java.i
-data/src/share/native/sun/java2d/loops/FillSpans.c.i
-data/test/javax/xml/crypto/dsig/data/signature-external-b64-dsa.xml.i
-data/src/share/classes/java/security/spec/DSAPublicKeySpec.java.i
-data/test/javax/swing/JColorChooser/Test4222508.html.i
+data/test/java/util/concurrent/locks/ReentrantLock/LoopHelpers.java.i
+data/src/windows/classes/sun/font/NativeFont.java.i
+data/src/share/classes/javax/management/namespace/JMXNamespaceMBean.java.i
 data/test/java/nio/channels/SocketChannel/CloseRegisteredChannel.java.i
 data/make/tools/swing-beans/beaninfo/images/JColorChooserColor16.gif.i
-data/src/share/classes/sun/text/resources/FormatData_pl_PL.java.i
-data/test/tools/pack200/dyn.jar.i
-data/make/common/shared/Defs-solaris.gmk.i
-data/src/share/native/sun/awt/image/jpeg/jccolor.c.i
-data/test/java/util/EnumMap/EnumMapBash.java.i
-data/test/java/awt/PrintJob/Text/StringWidth.java.i
-data/src/share/classes/javax/swing/plaf/MenuBarUI.java.i
+data/test/java/security/ProtectionDomain/CheckWhatYouGet.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppOutputStream/NoExceptionOnClose.java.i
+data/src/share/classes/java/nio/file/WatchEvent.java.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputTests.java.i
 data/src/solaris/classes/sun/awt/motif/MGlobalCursorManager.java.i
 data/make/sun/jpeg/reorder-i586.i
 data/src/share/native/sun/security/ec/mp_gf2m.h.i
-data/make/com/sun/jndi/rmi/Makefile.i
+data/src/share/classes/sun/io/ConversionBufferFullException.java.i
 data/test/java/math/BigDecimal/EqualsTests.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmRTClassPathTableMeta.java.i
-data/test/java/security/Security/removing/RemoveStaticProvider.java.i
 data/test/sun/management/jmxremote/bootstrap/CustomLauncherTest.sh.i
-data/src/share/classes/java/awt/BufferCapabilities.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_pt_BR.properties.i
+data/test/java/lang/instrument/RemoveTransformerTest.java.i
 data/src/solaris/classes/sun/awt/motif/MChoicePeer.java.i
-data/make/com/sun/demo/jvmti/Makefile.i
-data/test/javax/xml/crypto/dsig/data/envelope.xml.i
-data/src/share/classes/sun/io/CharToByteCp424.java.i
+data/test/sun/pisces/JoinMiterTest.java.i
+data/test/java/lang/System/Available.java.i
+data/test/java/util/Collections/AddAll.java.i
 data/test/java/io/Serializable/oldTests/ArrayTest.java.i
-data/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c.i
-data/test/java/security/Provider/CertStoreConstructorParam.java.i
+data/src/share/native/sun/java2d/loops/AlphaMacros.c.i
+data/test/javax/management/security/AvoidGetMBeanInfoCallsTest.java.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifTextUI.java.i
 data/src/share/classes/sun/security/util/AuthResources_zh_TW.java.i
 data/src/share/native/org/openjdk/jigsaw/BootLoader.c.i
 data/src/share/classes/sun/nio/cs/ext/IBM1144.java.i
 data/src/share/classes/sun/net/TelnetOutputStream.java.i
 data/src/share/classes/sun/net/www/protocol/netdoc/Handler.java.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/RemoteObjArrayCalls.java.i
-data/src/share/classes/javax/imageio/spi/IIORegistry.java.i
+data/test/sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java.i
 data/src/share/classes/java/util/jar/JarInputStream.java.i
+data/test/java/io/Serializable/oldTests/WritePrimitive.java.i
 data/src/share/demo/jvmti/hprof/hprof_frame.h.i
-data/src/share/classes/com/sun/tools/hat/internal/server/OQLQuery.java.i
+data/test/sun/security/krb5/auto/OkAsDelegate.java.i
 data/src/share/classes/javax/imageio/spi/ImageOutputStreamSpi.java.i
 data/test/java/text/BreakIterator/MirroredBreakIterator.java.i
 data/src/solaris/classes/sun/awt/windows/ThemeReader.java.i
-data/src/share/classes/sun/io/CharToByteCp860.java.i
-data/test/java/security/cert/CertPathValidator/trustAnchor/labs2isrg2.cer.i
-data/src/share/sample/scripting/scriptpad/src/resources/Main.js.i
-data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/DirectoryScannerConfig.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_en_SG.properties.i
+data/test/com/sun/jdi/connect/spi/NullTransportService.java.i
+data/src/windows/native/sun/windows/awt_Unicode.h.i
+data/test/sun/nio/cs/StrCodingBenchmark.java.i
 data/test/sun/management/jmxremote/bootstrap/management_ssltest08_ko.properties.in.i
-data/make/tools/CharsetMapping/IBM935.c2b.i
+data/test/sun/nio/cs/TestUTF8.java.i
 data/test/javax/naming/ldap/LdapName/CompareToEqualsTests.java.i
 data/src/share/classes/java/awt/doc-files/AWTThreadIssues.html.i
-data/src/share/classes/java/text/Collator.java.i
-data/src/share/classes/com/sun/jdi/InconsistentDebugInfoException.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract.h.i
+data/make/modules/modules.config.i
 data/test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor_Stub.java.i
 data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileSystemProvider.java.i
-data/test/java/nio/file/Path/Links.java.i
-data/make/tools/swing-beans/beaninfo/images/JSplitPaneMono32.gif.i
-data/test/tools/pack200/pack200-verifier/src/xmlkit/ClassWriter.java.i
-data/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt.i
-data/src/share/native/java/util/zip/zlib-1.2.3/inffast.h.i
-data/test/javax/management/remote/mandatory/notif/RMINotifTest.java.i
+data/make/sun/cmm/kcms/Makefile.i
+data/make/tools/swing-beans/beaninfo/images/JLabelMono32.gif.i
+data/test/com/sun/jdi/LineNumberOnBraceTest.java.i
+data/test/sun/security/provider/certpath/ReverseBuilder/prjMcrl.i
 data/test/sun/tools/jhat/jmap.bin.i
-data/test/java/beans/XMLEncoder/Test4679556.java.i
+data/test/javax/management/mxbean/GenericArrayTypeTest.java.i
 data/src/share/classes/sun/awt/im/InputMethodPopupMenu.java.i
 data/make/sun/rmi/oldtools/Makefile.i
 data/src/share/classes/java/awt/TexturePaintContext.java.i
 data/test/java/nio/charset/coders/Util.java.i
-data/test/java/io/File/GetParent.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/X509SubjectNameResolver.java.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpGauge.java.i
+data/src/share/native/sun/nio/ch/nio.h.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifTreeUI.java.i
 data/test/demo/jvmti/gctest/Gctest.java.i
-data/src/share/classes/com/sun/jmx/namespace/RoutingProxy.java.i
+data/src/share/native/sun/awt/medialib/mlib_ImageConv_D64nw.c.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/icons/JavaCup32.png.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/package.html.i
-data/test/java/net/MulticastSocket/SetLoopbackMode.java.i
+data/src/share/classes/sun/swing/SwingUtilities2.java.i
+data/test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall_Stub.java.i
+data/test/java/security/cert/CertPathValidator/nameConstraints/NameConstraintsWithUnexpectedRID.java.i
 data/src/share/classes/com/sun/jmx/snmp/internal/SnmpSecuritySubSystem.java.i
 data/src/share/classes/javax/xml/crypto/dsig/Reference.java.i
-data/src/share/classes/sun/tools/jconsole/inspector/XTree.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBufferFloat.java.i
-data/test/sun/security/tools/jarsigner/Test4431684.java.i
+data/test/sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java.i
+data/test/tools/pack200/pack200-verifier/src/xmlkit/ClassWriter.java.i
+data/src/share/classes/sun/reflect/annotation/AnnotationParser.java.i
+data/make/tools/swing-beans/beaninfo/images/JPopupMenuMono32.gif.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java.i
-data/src/share/classes/javax/swing/text/TabStop.java.i
+data/test/java/net/URL/SpecifyHandler.java.i
 data/test/org/openjdk/jigsaw/_PublishedRepository.java.i
 data/test/java/rmi/reliability/juicer/ApplicationServer.java.i
 data/src/linux/doc/man/ja/appletviewer.1.i
 data/src/share/classes/javax/swing/undo/doc-files/UndoManager-1.gif.i
-data/test/java/nio/charset/coders/Surrogates.java.i
+data/test/sun/security/krb5/auto/BadKdc.java.i
 data/test/java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java.i
-data/test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java.i
-data/src/share/sample/vm/jvm-clr/invoked.cs.i
+data/test/java/nio/charset/CharsetEncoder/CanEncode.java.i
 data/test/java/lang/Integer/BitTwiddle.java.i
 data/make/com/sun/nio/sctp/FILES_c.gmk.i
-data/test/java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java.i
+data/test/sun/security/pkcs11/nss/lib/windows-i586/nss3.dll.i
 data/test/java/io/Serializable/resolveClass/deserializeButton/Test.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiSplitPaneUI.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/PerThreadGroupPool.java.i
 data/test/sun/security/krb5/auto/IgnoreChannelBinding.java.i
-data/test/sun/management/jmxremote/bootstrap/management_test06_ok.properties.in.i
-data/src/share/classes/java/util/Observable.java.i
+data/src/windows/classes/java/net/PlainSocketImpl.java.i
+data/src/share/classes/sun/reflect/UnsafeStaticCharacterFieldAccessorImpl.java.i
 data/test/java/awt/Focus/ChoiceFocus/ChoiceFocus.java.i
 data/make/com/sun/net/httpserver/Makefile.i
-data/src/share/classes/sun/io/ByteToCharDBCS_ASCII.java.i
-data/src/share/classes/sun/reflect/generics/repository/GenericDeclRepository.java.i
-data/src/share/classes/javax/swing/Popup.java.i
-data/src/share/classes/sun/util/resources/CalendarData_es_US.properties.i
+data/test/java/lang/Character/Scripts.txt.i
+data/src/share/classes/sun/util/resources/CurrencyNames_ar_BH.properties.i
+data/src/share/sample/scripting/scriptpad/src/scripts/memory.bat.i
+data/test/java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java.i
 data/test/sun/nio/cs/X11CNS11643P1.java.i
 data/test/java/lang/annotation/package-info.java.i
-data/src/share/classes/sun/reflect/UnsafeQualifiedObjectFieldAccessorImpl.java.i
+data/test/com/sun/jdi/ExclusiveBind.java.i
 data/test/com/sun/management/ThreadMXBean/ThreadAllocatedMemory.java.i
-data/src/share/classes/javax/swing/event/EventListenerList.java.i
-data/src/share/classes/sun/rmi/transport/Endpoint.java.i
+data/src/share/classes/java/util/Queue.java.i
+data/src/windows/resource/icons/awt.ico.i
+data/test/java/security/cert/X509CertSelector/SetNameConstraintsEmptySequence.java.i
 data/test/com/sun/jdi/EarlyReturnNegativeTest.java.i
-data/src/share/classes/sun/misc/SharedSecrets.java.i
-data/src/share/classes/javax/management/AttributeChangeNotification.java.i
-data/test/java/lang/instrument/NativeMethodPrefixAgent.java.i
+data/src/share/classes/javax/swing/JLayeredPane.java.i
+data/test/sun/security/util/HostnameMatcher/cert1.crt.i
 data/src/share/classes/sun/security/ssl/HandshakeOutStream.java.i
 data/test/java/util/prefs/RemoveReadOnlyNode.java.i
 data/test/java/lang/management/ManagementFactory/ValidateOpenTypes.java.i
 data/src/share/classes/javax/swing/plaf/TableUI.java.i
-data/src/share/sample/jmx/jmx-scandir/index.html.i
 data/src/linux/doc/man/jar.1.i
-data/test/java/security/cert/CertificateFactory/GenerateCertificatesEmptyCollection.java.i
 data/src/share/classes/sun/security/krb5/internal/KDCReqBody.java.i
 data/src/share/classes/java/awt/color/ICC_Profile.java.i
 data/src/solaris/native/sun/java2d/loops/vis_SrcOverMaskFill.c.i
@@ -8082,287 +7846,279 @@ data/make/tools/GenerateCharacter/CharacterData01.java.template.i
 data/src/share/native/sun/java2d/loops/IntDcm.h.i
 data/test/com/sun/crypto/provider/Cipher/CTR/CounterMode.java.i
 data/test/java/awt/font/TextLayout/TestTibetan.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties.i
+data/src/share/native/java/lang/fdlibm/src/w_fmod.c.i
 data/src/share/classes/sun/nio/cs/ext/IBM424.java.i
-data/src/linux/doc/man/jinfo.1.i
-data/src/share/classes/java/awt/AlphaComposite.java.i
+data/src/solaris/doc/sun/man/man1/native2ascii.1.i
+data/test/java/lang/Class/getEnclosingMethod/EnclosingMethodTests.java.i
 data/src/share/classes/com/sun/crypto/provider/CounterMode.java.i
 data/src/share/classes/sun/net/www/MimeTable.java.i
-data/test/sun/security/krb5/ParseConfig.java.i
 data/src/share/classes/sun/font/CoreMetrics.java.i
-data/src/share/classes/java/awt/geom/QuadIterator.java.i
-data/src/share/classes/com/sun/rowset/FilteredRowSetImpl.java.i
+data/src/share/classes/sun/security/acl/OwnerImpl.java.i
+data/src/share/classes/sun/java2d/loops/CustomComponent.java.i
 data/test/sun/tools/jps/vmflags.i
-data/src/share/demo/jvmti/gctest/README.txt.i
+data/test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_MatteBorderUIResource.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageClipping.c.i
 data/make/tools/CharsetMapping/IBM948.map.i
+data/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java.i
 data/src/share/classes/sun/tools/tree/DeclarationStatement.java.i
-data/test/java/rmi/activation/rmidViaInheritedChannel/rmid.security.policy.i
+data/src/solaris/demo/jni/Poller/PollingServer.java.i
+data/src/share/classes/javax/management/QueryParser.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/CountInterface.java.i
-data/src/share/classes/sun/text/resources/FormatData_sl.java.i
-data/src/share/classes/sun/tools/tree/AssignBitOrExpression.java.i
-data/src/share/classes/com/sun/media/sound/SoftResampler.java.i
-data/test/java/rmi/activation/Activatable/restartService/RestartService.java.i
-data/src/share/classes/com/sun/tools/example/debug/tty/ThreadGroupIterator.java.i
+data/src/share/classes/javax/swing/AbstractListModel.java.i
+data/test/java/beans/PropertyEditor/TestDoubleClassValue.java.i
+data/test/java/lang/ClassLoader/GetDotResource.java.i
+data/src/share/classes/com/sun/media/sound/SoftResampler.java.i
+data/src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java.i
 data/src/share/classes/sun/misc/Service.java.i
-data/test/java/nio/channels/DatagramChannel/BasicMulticastTests.java.i
+data/test/sun/nio/cs/StrCodingBenchmarkUTF8.java.i
 data/src/share/native/sun/java2d/cmm/lcms/cmsopt.c.i
 data/src/share/classes/sun/misc/JavaNetAccess.java.i
-data/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java.i
-data/src/share/classes/sun/io/CharToByteUnicode.java.i
-data/test/javax/sound/midi/Gervill/SoftCubicResampler/Interpolate.java.i
+data/test/java/lang/instrument/ParallelTransformerLoader.sh.i
+data/src/share/back/ObjectReferenceImpl.h.i
+data/src/share/classes/javax/swing/plaf/multi/MultiScrollBarUI.java.i
+data/src/share/classes/sun/nio/ch/SocketAdaptor.java.i
 data/src/share/demo/nbproject/jfc/SampleTree/nbproject/jdk.xml.i
 data/src/share/classes/sun/security/x509/CertificatePolicySet.java.i
-data/make/sun/awt/FILES_export_unix.gmk.i
-data/src/share/demo/nbproject/scripting/jconsole-plugin/build.xml.i
-data/src/share/classes/sun/management/snmp/jvminstr/JvmRTClassPathTableMetaImpl.java.i
+data/test/javax/management/modelmbean/DefaultDescriptorFieldTest.java.i
+data/src/share/classes/sun/security/ssl/SSLSocketFactoryImpl.java.i
 data/src/solaris/classes/sun/awt/motif/MDropTargetContextPeer.java.i
 data/test/java/net/Inet6Address/B6214234.java.i
-data/src/share/classes/com/sun/nio/sctp/SendFailedNotification.java.i
+data/src/share/demo/nbproject/jfc/FileChooserDemo/build.xml.i
 data/src/share/classes/javax/swing/text/package.html.i
-data/test/sun/security/pkcs11/KeyStore/BasicData/ca.key.i
-data/src/share/classes/com/sun/security/jgss/GSSUtil.java.i
-data/test/javax/management/monitor/GaugeMonitorDeadlockTest.java.i
+data/src/share/classes/javax/script/ScriptContext.java.i
+data/src/share/native/sun/font/layout/StateTableProcessor.cpp.i
 data/src/share/classes/javax/security/auth/callback/ChoiceCallback.java.i
 data/src/share/classes/com/sun/security/jgss/ExtendedGSSContext.java.i
 data/src/share/classes/java/text/spi/package.html.i
 data/src/share/classes/sun/security/tools/TimestampedSigner.java.i
-data/test/java/util/logging/AnonLoggerWeakRefLeak.java.i
-data/src/solaris/native/sun/awt/awt_Component.h.i
-data/src/share/demo/nbproject/management/FullThreadDump/build.xml.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmRTLibraryPathEntryMeta.java.i
+data/test/java/io/RandomAccessFile/skipBytes/input.txt.i
+data/test/java/io/Serializable/evolution/AddedSuperClass/WriteAddedSuperClass.java.i
+data/src/share/native/com/sun/media/sound/Utilities.h.i
 data/src/share/classes/sun/util/resources/CalendarData_ar.properties.i
-data/test/java/lang/Double/ToHexString.java.i
 data/src/share/classes/java/util/regex/MatchResult.java.i
 data/test/sun/security/krb5/ServiceNameClone.java.i
-data/src/share/native/sun/java2d/loops/DrawPath.h.i
-data/src/share/sample/jmx/jmx-scandir/docfiles/scandir-result.jpg.i
+data/test/java/nio/Buffer/Basic-X.java.i
+data/src/share/classes/com/sun/jmx/snmp/BerEncoder.java.i
 data/make/com/sun/rowset/Makefile.i
 data/src/solaris/classes/sun/awt/motif/MFramePeer.java.i
+data/src/share/classes/sun/dyn/util/VerifyAccess.java.i
 data/src/solaris/classes/sun/print/UnixPrintService.java.i
-data/src/windows/native/sun/nio/ch/FileKey.c.i
 data/src/share/native/sun/font/layout/OpenTypeLayoutEngine.cpp.i
 data/src/share/classes/sun/util/resources/LocaleNames_hi.properties.i
-data/test/java/lang/System/SecurityRace.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_ar_LB.properties.i
+data/src/share/classes/javax/swing/text/doc-files/Document-remove.gif.i
+data/src/share/classes/sun/rmi/server/resources/rmid_sv.properties.i
 data/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java.i
 data/src/share/classes/sun/security/jgss/krb5/AcceptSecContextToken.java.i
-data/src/share/classes/com/sun/tools/example/debug/gui/JDBToolBar.java.i
-data/make/tools/CharsetMapping/IBM921.map.i
+data/make/tools/CharsetMapping/IBM949.map.i
+data/src/share/classes/java/awt/CardLayout.java.i
 data/src/share/native/sun/java2d/loops/AlphaMath.h.i
 data/test/java/security/Policy/GetInstance/GetInstance.java.i
-data/test/java/io/Serializable/superclassDataLoss/B.java.i
+data/src/share/classes/sun/io/ByteToCharJIS0212_Solaris.java.i
 data/src/share/classes/sun/tools/jconsole/resources/disconnected16.png.i
 data/src/solaris/classes/sun/java2d/jules/JulesTile.java.i
-data/src/share/classes/sun/java2d/loops/GraphicsPrimitive.java.i
+data/test/sun/net/www/http/KeepAliveCache/KeepAliveTimerThread.java.i
 data/test/java/net/NetworkInterface/Equals.java.i
 data/src/share/native/sun/awt/splashscreen/java_awt_SplashScreen.c.i
 data/src/share/classes/sun/io/ByteToCharMacUkraine.java.i
-data/src/share/classes/sun/io/CharToByteHKSCS.java.i
+data/src/share/classes/com/sun/media/sound/AudioFloatInputStream.java.i
 data/test/java/net/ProxySelector/SystemProxies.java.i
-data/make/modules/tools/src/com/sun/classanalyzer/Module.java.i
-data/test/javax/print/attribute/MediaMappingsTest.java.i
+data/src/share/classes/sun/jvmstat/monitor/event/MonitorStatusChangeEvent.java.i
 data/src/share/classes/javax/management/monitor/GaugeMonitor.java.i
-data/test/java/beans/README.i
+data/src/solaris/native/sun/awt/awt_FileDialog.c.i
 data/test/java/beans/XMLEncoder/Test6852574.java.i
 data/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java.i
+data/src/share/classes/javax/sound/midi/MidiFileFormat.java.i
 data/test/sun/security/provider/PolicyFile/getinstance/TwoArgPermission.java.i
-data/src/share/classes/com/sun/tracing/dtrace/ProviderAttributes.java.i
+data/src/share/classes/sun/io/CharToByteJIS0208_Solaris.java.i
 data/test/sun/net/InetAddress/nameservice/simple/SimpleNameServiceDescriptor.java.i
 data/src/windows/native/sun/jkernel/kernel_de.rc.i
-data/src/share/classes/java/io/UTFDataFormatException.java.i
+data/src/share/native/sun/font/layout/LigatureSubstitution.h.i
 data/test/java/util/Map/LockStep.java.i
 data/src/share/native/java/util/zip/zlib-1.2.3/patches/crc32.c.diff.i
-data/test/com/sun/security/auth/login/ConfigFile/EmptyOption.java.i
 data/src/share/classes/sun/security/krb5/Realm.java.i
-data/src/share/classes/java/security/spec/ECFieldF2m.java.i
-data/test/javax/crypto/JceSecurity/MyX509CertImpl.java.i
-data/src/share/classes/javax/swing/plaf/nimbus/OuterGlowEffect.java.i
-data/src/share/classes/javax/naming/spi/package.html.i
+data/src/share/classes/sun/misc/JarIndex.java.i
+data/make/tools/CharsetMapping/IBM864.map.i
+data/test/tools/launcher/unresolvedExceptions.sh.i
+data/src/share/classes/sun/rmi/registry/resources/rmiregistry_es.properties.i
 data/test/demo/zipfs/PathOps.java.i
+data/src/share/classes/javax/sound/midi/MidiSystem.java.i
 data/src/windows/classes/sun/awt/windows/WColor.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ServerIdentityTest.java.i
-data/test/java/security/UnresolvedPermission/DebugPermission1.java.i
 data/test/com/sun/net/httpserver/TestLogging.java.i
-data/src/share/classes/sun/io/CharToByteJIS0212.java.i
+data/test/java/net/Socket/TestClose.java.i
 data/test/org/openjdk/jigsaw/install-files.sh.i
-data/src/windows/native/sun/windows/awt_Insets.cpp.i
 data/test/javax/management/remote/mandatory/passwordAuthenticator/RMIPasswdAuthTest.java.i
 data/src/share/classes/sun/awt/image/ShortComponentRaster.java.i
-data/src/share/classes/com/sun/jndi/ldap/LdapEntry.java.i
-data/src/share/classes/sun/management/OperatingSystemImpl.java.i
+data/src/share/classes/java/dyn/ToGeneric.java.i
+data/test/sun/net/www/ParseUtil_4922813.java.i
 data/src/share/classes/sun/io/ByteToCharMS949.java.i
 data/src/solaris/classes/sun/java2d/jules/TrapezoidList.java.i
 data/src/share/classes/sun/jkernel/Bundle.java.i
 data/test/java/lang/Math/Log10Tests.java.i
-data/src/windows/native/sun/windows/awt_Cursor.h.i
-data/src/share/classes/org/openjdk/jigsaw/ModuleFileFormat.java.i
+data/src/share/classes/java/security/AuthProvider.java.i
+data/test/javax/swing/Security/6657138/bug6657138.java.i
 data/src/share/classes/sun/jvmstat/monitor/event/HostEvent.java.i
-data/src/share/classes/sun/rmi/server/resources/rmid_es.properties.i
-data/src/share/classes/sun/util/resources/CurrencyNames_ko_KR.properties.i
+data/test/java/net/URLConnection/RedirectLimit.java.i
+data/src/share/native/java/lang/fdlibm/src/w_acos.c.i
 data/test/sun/security/ssl/javax/net/ssl/NewAPIs/testEnabledProtocols.java.i
+data/src/share/classes/java/util/IllegalFormatWidthException.java.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/GraphicsTests.java.i
 data/src/share/classes/java/lang/module/VersionQuery.java.i
 data/src/share/classes/java/lang/module/Version.java.i
-data/src/share/classes/java/beans/Introspector.java.i
-data/src/share/classes/org/openjdk/internal/joptsimple/UnrecognizedOptionException.java.i
+data/src/share/classes/sun/font/GlyphDisposedListener.java.i
+data/test/javax/script/ProviderTest.java.i
 data/src/share/classes/javax/print/attribute/package.html.i
-data/test/java/beans/XMLEncoder/Test6963811.java.i
+data/test/java/rmi/activation/ActivateFailedException/activateFails/ActivateFails.java.i
 data/src/share/classes/sun/tools/jconsole/MemoryPoolProxy.java.i
-data/test/java/awt/Toolkit/Headless/GetPrintJob/GetPrintJobHeadless.java.i
+data/src/share/classes/sun/security/pkcs12/MacData.java.i
 data/test/java/io/Serializable/arraySuidConflict/Write.java.i
 data/src/share/classes/sun/security/x509/certAttributes.html.i
 data/make/tools/GenerateCharacter/check_class.c.template.i
 data/src/share/classes/sun/text/resources/FormatData_sr_Latn_RS.java.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedDoubleFieldAccessorImpl.java.i
+data/src/share/classes/sun/security/pkcs11/JarVerifier.java.i
 data/src/share/classes/com/sun/media/sound/SimpleInstrument.java.i
-data/src/share/classes/sun/management/snmp/jvminstr/JvmMemManagerEntryImpl.java.i
+data/src/linux/doc/man/jstatd.1.i
 data/src/share/classes/java/awt/image/AreaAveragingScaleFilter.java.i
+data/test/javax/swing/JColorChooser/Test4461329.java.i
 data/src/share/classes/sun/invoke/anon/ConstantPoolParser.java.i
 data/src/share/classes/sun/tools/jconsole/inspector/XSheet.java.i
 data/src/share/classes/com/sun/media/sound/SoftLinearResampler2.java.i
-data/src/share/native/sun/font/layout/MorphTables.cpp.i
+data/make/tools/src/build/tools/javazic/BackEnd.java.i
 data/test/java/net/InetAddress/B6296240.java.i
-data/test/java/util/concurrent/ThreadPoolExecutor/ThrowingTasks.java.i
+data/test/sun/management/windows/README.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/XMLSignatureInput.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/SourceListener.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptWriter.java.i
 data/make/tools/CharsetMapping/IBM856.map.i
-data/test/java/lang/Class/forName/classes/Z.class.i
-data/src/share/classes/sun/security/krb5/KrbServiceLocator.java.i
-data/src/share/classes/sun/management/counter/perf/PerfLongCounter.java.i
+data/src/solaris/native/sun/nio/fs/LinuxWatchService.c.i
+data/src/solaris/doc/sun/man/man1/orbd.1.i
+data/src/share/classes/java/awt/Font.java.i
 data/src/share/native/sun/font/bidi/ubidiln.c.i
-data/src/share/classes/javax/swing/text/rtf/package.html.i
 data/test/tools/launcher/TestHelper.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java.i
-data/src/share/classes/javax/swing/DesktopManager.java.i
-data/src/share/classes/java/nio/file/WatchEvent.java.i
+data/src/share/classes/sun/text/resources/FormatData_pl_PL.java.i
+data/test/java/awt/PrintJob/Text/StringWidth.java.i
 data/src/share/native/sun/security/ec/impl/ecp_384.c.i
-data/test/java/lang/System/Available.java.i
+data/test/javax/xml/crypto/dsig/data/envelope.xml.i
+data/src/share/native/sun/awt/image/jpeg/jdcolor.c.i
 data/test/com/sun/security/auth/login/ConfigFile/InnerClassConfig.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/uncompr.c.i
-data/make/modules/modules.config.i
+data/src/solaris/classes/sun/awt/motif/MWindowPeer.java.i
 data/src/share/classes/com/sun/tools/jdi/ValueContainer.java.i
 data/src/share/classes/sun/text/normalizer/NormalizerImpl.java.i
-data/test/java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java.i
+data/src/share/classes/sun/text/resources/FormatData_fr_LU.java.i
 data/make/tools/src/build/tools/jdwpgen/GroupNode.java.i
+data/src/share/classes/sun/reflect/UnsafeLongFieldAccessorImpl.java.i
 data/test/sun/security/krb5/auto/BadKdc2.java.i
-data/src/share/classes/sun/jvmstat/monitor/MonitorException.java.i
+data/src/share/sample/vm/jvm-clr/invoked.cs.i
 data/src/windows/native/sun/windows/security_warning.ico.i
-data/test/com/sun/net/httpserver/bugs/B6433018.java.i
-data/make/sun/nio/Makefile.i
-data/src/share/classes/java/util/Queue.java.i
+data/make/netbeans/common/share-view.ent.i
+data/src/solaris/native/sun/awt/VDrawingAreaP.h.i
+data/src/share/classes/javax/swing/Popup.java.i
+data/src/share/classes/javax/swing/event/EventListenerList.java.i
 data/test/java/security/KeyFactory/GenerateRSAPrivateCrtKey.java.i
 data/src/share/sample/scripting/scriptpad/src/com/sun/sample/scriptpad/Main.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/IntArrayCalls.java.i
 data/src/share/classes/sun/io/CharToByteKOI8_R.java.i
-data/test/java/rmi/activation/Activatable/restartCrashedService/ActivateMe.java.i
-data/src/share/classes/javax/swing/AbstractListModel.java.i
-data/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java.i
-data/src/share/classes/sun/io/ByteToCharCp420.java.i
+data/src/share/classes/sun/text/resources/FormatData_sl.java.i
+data/src/share/classes/sun/tools/tree/AssignBitOrExpression.java.i
+data/test/java/nio/channels/DatagramChannel/BasicMulticastTests.java.i
 data/make/modules/tools/src/com/sun/classanalyzer/BootAnalyzer.java.i
 data/src/share/classes/java/util/IllegalFormatConversionException.java.i
 data/src/linux/doc/man/java.1.i
 data/src/share/classes/sun/io/CharToByteISO8859_4.java.i
-data/test/java/util/EnumMap/DistinctEntrySetElements.java.i
-data/make/tools/CharsetMapping/IBM949.map.i
-data/src/share/classes/sun/io/ByteToCharJIS0212_Solaris.java.i
+data/test/sun/security/provider/PolicyParser/PrincipalExpansionErrorAction.java.i
+data/src/share/classes/com/sun/tools/example/debug/gui/JDBToolBar.java.i
+data/test/java/io/Serializable/superclassDataLoss/B.java.i
 data/test/java/util/Locale/data/deflocale.win7.i
 data/test/com/sun/jdi/ImmutableResourceTest.sh.i
 data/src/share/classes/javax/swing/plaf/metal/icons/ocean/close.gif.i
-data/src/share/classes/java/nio/charset/exceptions.i
+data/test/java/beans/PropertyEditor/TestFloatType.java.i
 data/test/java/beans/PropertyEditor/TestIntegerTypeJava.java.i
-data/src/share/classes/java/dyn/ToGeneric.java.i
+data/src/share/classes/com/sun/jndi/ldap/LdapEntry.java.i
 data/src/share/demo/jvmti/heapTracker/heapTracker.c.i
-data/test/javax/swing/plaf/synth/Test6933784.java.i
 data/src/share/classes/sun/security/smartcardio/CardImpl.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_mk_MK.properties.i
-data/src/share/native/sun/awt/image/jpeg/jidctred.c.i
+data/test/java/rmi/server/UnicastRemoteObject/useDynamicProxies/security.policy.i
 data/src/share/classes/java/awt/event/NativeLibLoader.java.i
-data/test/java/nio/channels/SelectionKey/AtomicAttachTest.java.i
-data/test/javax/swing/JInternalFrame/6725409/bug6725409.java.i
-data/test/sun/security/pkcs11/nss/lib/windows-i586/nss3.dll.d
+data/test/java/io/FileOutputStream/FileOpenPos.java.i
+data/src/solaris/bin/java_md.h.i
 data/test/sun/security/provider/certpath/DisabledAlgorithms/CPValidatorTrustAnchor.java.i
-data/src/share/classes/sun/reflect/UnsafeLongFieldAccessorImpl.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/package.html.i
 data/test/java/rmi/transport/checkFQDN/TellServerName.java.i
 data/src/share/native/sun/font/layout/KernTable.cpp.i
 data/test/sun/security/pkcs11/sslecc/keystore.i
-data/test/sun/security/pkcs11/nss/lib/solaris-i586/libplds4.so.i
-data/test/java/io/FileOutputStream/FileOpenPos.java.i
-data/src/share/classes/sun/io/ByteToCharMacSymbol.java.i
+data/test/java/nio/channels/SelectionKey/AtomicAttachTest.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthComboPopup.java.i
 data/make/sun/rmi/Makefile.i
 data/src/share/classes/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.java.i
-data/src/share/classes/javax/swing/plaf/multi/package.html.i
+data/src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/PaintedShape.java.i
-data/src/share/classes/sun/text/resources/thai_dict.d
+data/src/share/classes/java/awt/ComponentOrientation.java.i
 data/src/share/classes/sun/text/SupplementaryCharacterData.java.i
 data/test/java/io/Serializable/verifyDynamicObjHandleTable/VerifyDynamicObjHandleTable.java.i
 data/test/sun/security/provider/certpath/ReverseBuilder/mgrM2mgrM.i
 data/src/windows/native/sun/security/krb5/WindowsDirectory.c.i
 data/src/share/classes/javax/imageio/event/IIOReadUpdateListener.java.i
-data/src/share/javavm/export/jvmticmlr.h.i
+data/src/share/classes/sun/net/httpserver/ContextList.java.i
 data/test/sun/security/krb5/PAData.java.i
-data/test/java/rmi/MarshalledObject/compare/Compare.java.i
+data/src/share/classes/java/io/CharArrayWriter.java.i
 data/make/tools/swing-beans/beaninfo/images/JScrollPaneMono16.gif.i
 data/src/solaris/classes/sun/awt/X11/XProtocolConstants.java.i
+data/src/share/classes/sun/security/acl/AllPermissionsImpl.java.i
 data/src/share/classes/sun/security/krb5/KerberosSecrets.java.i
+data/src/windows/native/sun/windows/awt_Choice.cpp.i
+data/src/share/classes/org/openjdk/jigsaw/LoaderPool.java.i
 data/make/java/verify/Makefile.i
 data/src/share/classes/java/awt/peer/ChoicePeer.java.i
 data/make/com/oracle/net/Makefile.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/OuterGlowEffect.java.i
 data/src/share/classes/com/sun/tools/example/debug/tty/PatternReferenceTypeSpec.java.i
+data/src/share/classes/sun/text/resources/thai_dict.i
 data/test/tools/launcher/deleteI18n.sh.i
 data/make/tools/src/build/tools/generatenimbus/ObjectFactory.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM037.java.i
-data/src/share/classes/java/awt/im/spi/InputMethodContext.java.i
-data/test/sun/rmi/rmic/manifestClassPath/run.sh.i
+data/test/sun/security/mscapi/PublicKeyInterop.java.i
 data/test/demo/jvmti/heapTracker/HeapTrackerTest.java.i
-data/test/tools/launcher/UglyPrintVersion.java.i
+data/src/share/classes/javax/swing/text/html/parser/Parser.java.i
 data/src/share/classes/java/beans/PersistenceDelegate.java.i
 data/test/com/sun/security/sasl/digest/names.properties.i
 data/src/windows/native/sun/nio/fs/RegistryFileTypeDetector.c.i
 data/src/share/classes/sun/awt/WindowIDProvider.java.i
-data/src/share/classes/sun/security/krb5/internal/crypto/Nonce.java.i
+data/test/java/util/ResourceBundle/Bug4177489_Resource.java.i
 data/make/com/sun/script/Makefile.i
 data/src/share/classes/sun/security/provider/MD2.java.i
 data/test/java/beans/XMLEncoder/java_awt_Font.java.i
-data/test/java/net/MulticastSocket/JoinGroup.java.i
+data/src/share/native/java/lang/Thread.c.i
 data/src/share/classes/sun/security/x509/GeneralSubtree.java.i
 data/test/sun/management/jmxremote/bootstrap/jmxremote_test05_ko.password.in.i
-data/test/java/lang/Class/getDeclaredClasses/Sanity.java.i
+data/test/tools/pack200/pack200-verifier/make/build.xml.i
 data/test/java/util/Formatter/Close.java.i
-data/make/tools/src/build/tools/generatebreakiteratordata/CharSet.java.i
+data/src/share/native/com/sun/media/sound/Configure.h.i
 data/src/share/native/java/util/zip/zlib-1.2.3/patches/zconf.h.diff.i
 data/src/share/classes/java/rmi/server/Operation.java.i
 data/src/share/native/sun/security/ec/impl/logtab.h.i
 data/src/share/classes/sun/net/idn/StringPrep.java.i
 data/src/share/classes/sun/io/CharToBytePCK.java.i
-data/test/javax/management/modelmbean/SimpleModelMBean/logging.properties.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/icons/File.gif.i
-data/src/share/classes/sun/beans/editors/IntegerEditor.java.i
-data/test/sun/security/mscapi/246810.cer.i
+data/test/java/nio/channels/SocketChannel/UnboundSocketTests.java.i
+data/test/java/security/Policy/Root/Root.java.i
 data/src/share/classes/com/sun/jndi/url/dns/dnsURLContext.java.i
 data/test/sun/java2d/cmm/ColorConvertOp/SRGB565.png.i
 data/test/java/util/ResourceBundle/Bug4179766Getter.java.i
 data/src/share/classes/sun/reflect/UnsafeStaticDoubleFieldAccessorImpl.java.i
-data/test/java/util/ResourceBundle/Test4314141A_de_.properties.i
-data/test/java/beans/XMLEncoder/java_beans_EventHandler.java.i
 data/test/java/beans/XMLEncoder/java_awt_BorderLayout.java.i
-data/test/javax/management/namespace/VirtualMBeanNotifTest.java.i
 data/src/share/classes/sun/text/resources/FormatData_ar_QA.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXPathFilter2Transform.java.i
-data/make/tools/classanalyzer/src/com/sun/classanalyzer/Trace.java.i
-data/src/share/classes/sun/management/snmp/jvminstr/JvmMemPoolTableMetaImpl.java.i
+data/src/windows/native/sun/nio/ch/FileKey.c.i
+data/test/java/security/cert/CertPathValidator/trustAnchor/labs2isrg2.cer.i
+data/src/share/classes/sun/util/resources/LocaleNames_th.properties.i
 data/src/share/classes/sun/swing/MenuItemLayoutHelper.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMIpMask.java.i
 data/src/share/native/com/sun/java/util/jar/pack/coding.h.i
 data/src/share/classes/sun/java2d/pipe/hw/AccelGraphicsConfig.java.i
 data/src/share/classes/sun/io/CharToByteCp1006.java.i
-data/src/windows/native/sun/windows/awt_Checkbox.h.i
+data/src/solaris/native/sun/java2d/loops/mlib_v_ImageLogic_proto.h.i
+data/test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/ReadByte.java.i
 data/test/com/sun/jdi/NoLocInfoTest.java.i
-data/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/PatternReferenceTypeSpec.java.i
-data/src/solaris/classes/sun/awt/X11/XRepaintArea.java.i
 data/src/share/classes/javax/naming/directory/package.html.i
 data/src/share/classes/javax/xml/crypto/dsig/CanonicalizationMethod.java.i
 data/test/java/lang/reflect/Field/4498653/StaticInitializerTest.java.i
@@ -8371,48 +8127,50 @@ data/src/share/classes/java/awt/Checkbox.java.i
 data/src/share/classes/sun/font/StandardGlyphVector.java.i
 data/make/tools/swing-beans/beaninfo/images/JTabbedPaneColor16.gif.i
 data/src/share/classes/javax/management/openmbean/OpenDataException.java.i
-data/src/share/classes/javax/management/AttributeList.java.i
-data/test/java/net/Authenticator/BasicTest4.java.i
+data/test/java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java.i
+data/src/share/classes/java/dyn/AdapterMethodHandle.java.i
 data/src/share/classes/sun/jkernel/StandaloneSHA.java.i
 data/src/share/classes/sun/nio/cs/IBM862.java.i
+data/make/java/java/reorder-sparc.i
 data/test/java/util/Locale/serialized/java6locale_en_US.i
-data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibAgent.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_lt_LT.properties.i
+data/test/java/rmi/reliability/juicer/security.policy.i
 data/make/sun/javazic/javatz/java_win_ids.txt.i
 data/src/windows/native/sun/windows/awt_InputTextInfor.h.i
-data/src/share/classes/sun/security/util/Resources_sv.java.i
+data/src/share/native/sun/java2d/cmm/lcms/cmsps2.c.i
 data/src/share/classes/org/openjdk/jigsaw/PublishedRepository.java.i
-data/src/windows/native/sun/windows/img_util_md.h.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/icons/Question.gif.i
 data/src/share/classes/javax/crypto/spec/DHGenParameterSpec.java.i
 data/src/share/classes/sun/nio/cs/IBM775.java.i
 data/src/share/classes/jdi-overview.html.i
 data/make/common/shared/Defs-javadoc.gmk.i
 data/src/share/classes/javax/print/attribute/standard/PrinterLocation.java.i
-data/test/java/lang/management/BufferPoolMXBean/Basic.java.i
 data/src/share/classes/com/sun/jdi/event/EventIterator.java.i
 data/make/tools/CharsetMapping/IBM500.map.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/XPStyle.java.i
 data/test/tools/launcher/SomeException.java.i
 data/src/share/classes/sun/nio/cs/ext/EUC_TW.java.i
 data/test/java/util/zip/DataDescriptor.java.i
-data/src/share/classes/javax/swing/plaf/metal/MetalComboBoxIcon.java.i
+data/test/java/util/jar/JarFile/VerifySignedJar.java.i
 data/src/share/classes/java/awt/print/Book.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/GradientStop.java.i
+data/src/share/classes/javax/swing/plaf/multi/MultiInternalFrameUI.java.i
 data/src/share/classes/java/util/UnknownFormatConversionException.java.i
 data/src/share/classes/sun/nio/cs/ext/EUC_TW.java.d
 data/make/tools/src/build/tools/javazic/Zone.java.i
-data/src/share/classes/sun/java2d/cmm/ProfileDeferralInfo.java.i
+data/test/sun/security/mscapi/246810.cer.i
 data/src/share/classes/java/lang/package-info.java.i
 data/src/share/demo/jfc/Metalworks/MetalworksFrame.java.i
 data/test/java/net/Socket/SetReceiveBufferSize.java.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/DependencyConfig.java.i
+data/src/share/classes/sun/nio/cs/MS1257.java.i
 data/test/java/util/Formatter/BasicBigDecimal.java.i
-data/test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup_Stub.java.i
-data/src/share/classes/java/nio/X-Buffer-bin.java.i
+data/test/sun/security/pkcs11/nss/lib/windows-i586/nss3.dll.d
+data/src/share/demo/java2d/J2DBench/src/j2dbench/ui/EnableButton.java.i
 data/src/share/classes/javax/xml/crypto/dsig/SignatureProperties.java.i
 data/test/java/lang/management/ThreadMXBean/FindDeadlocks.java.i
 data/src/share/classes/sun/text/resources/FormatData_pt_PT.java.i
-data/test/java/lang/Thread/HoldsLock.java.i
+data/src/share/classes/java/lang/reflect/MalformedParameterizedTypeException.java.i
 data/src/share/lib/management/jmxremote.access.i
 data/src/share/classes/sun/awt/ComponentAccessor.java.i
 data/src/share/native/sun/font/bidi/ubidiimp.h.i
@@ -8420,33 +8178,30 @@ data/src/share/classes/sun/text/resources/FormatData_ar_AE.java.i
 data/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java.i
 data/make/tools/src/build/tools/generatecharacter/PrintCharacterRanges.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmCompilationImpl.java.i
+data/src/share/classes/sun/tools/jstat/resources/jstat_options.i
 data/src/share/classes/sun/tools/asm/Instruction.java.i
 data/src/share/classes/com/sun/security/auth/UserPrincipal.java.i
-data/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java.i
+data/src/share/classes/java/lang/Exception.java.i
+data/src/share/classes/com/sun/java/swing/plaf/gtk/icons/File.gif.i
 data/test/java/util/PluggableLocale/barprovider.jar.i
-data/test/java/rmi/server/RMIClassLoader/delegateToContextLoader/Dummy.java.i
 data/src/share/classes/java/nio/channels/Pipe.java.i
-data/test/javax/sound/midi/Gervill/RiffReaderWriter/ReadByteArrayIntInt.java.i
-data/test/sun/java2d/cmm/ColorConvertOp/ColConvDCMTest.java.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BL_S16.c.i
-data/test/sun/security/pkcs11/Cipher/TestRSACipherWrap.java.i
-data/src/share/classes/javax/swing/text/LayeredHighlighter.java.i
+data/src/share/javavm/export/jawt.h.i
 data/test/java/awt/Mixing/ValidBounds.java.i
 data/src/solaris/classes/sun/print/services/javax.print.StreamPrintServiceFactory.i
 data/src/share/classes/sun/management/VMManagementImpl.java.i
 data/src/share/classes/java/nio/file/FileStore.java.i
 data/test/java/rmi/server/RMIClassLoader/downloadArrayClass/Foo.java.i
-data/src/share/classes/java/awt/CheckboxGroup.java.i
+data/src/share/native/java/lang/reflect/Array.c.i
 data/test/java/lang/String/IsEmpty.java.i
 data/test/java/lang/instrument/PremainClass/InheritAgent1111.java.i
-data/src/share/native/sun/java2d/SurfaceData.c.i
-data/src/share/classes/com/sun/tools/jdi/ThreadGroupReferenceImpl.java.i
-data/test/java/rmi/server/RMIClassLoader/useCodebaseOnly/UseCodebaseOnly_Stub.java.i
-data/src/share/classes/com/sun/nio/sctp/SctpStandardSocketOptions.java.i
-data/test/java/nio/file/WatchService/WithSecurityManager.java.i
+data/src/share/classes/javax/crypto/spec/OAEPParameterSpec.java.i
+data/src/share/classes/sun/nio/cs/ext/Johab.java.i
+data/src/share/classes/com/sun/nio/sctp/SctpStandardSocketOptions.java.i
+data/make/sun/util/Makefile.i
 data/test/sun/security/krb5/tools/onlythree.conf.i
 data/src/share/classes/sun/security/x509/GeneralNames.java.i
-data/src/share/native/sun/java2d/loops/ByteIndexed.h.i
+data/src/windows/native/sun/windows/awt_Clipboard.h.i
 data/src/share/classes/java/util/NoSuchElementException.java.i
 data/make/javax/sound/jsoundds/Makefile.i
 data/test/javax/management/monitor/NullAttributeValueTest.java.i
@@ -8454,36 +8209,36 @@ data/src/share/classes/com/sun/java/swing/plaf/motif/MotifGraphicsUtils.java.i
 data/src/share/classes/sun/swing/WindowsPlacesBar.java.i
 data/make/tools/CharsetMapping/sbcs.i
 data/src/share/native/sun/awt/image/jpeg/jcmainct.c.i
-data/make/tools/classanalyzer/Makefile.i
+data/src/share/classes/javax/swing/KeyboardManager.java.i
+data/src/share/classes/sun/applet/AppletEvent.java.i
 data/src/share/classes/sun/rmi/rmic/newrmic/jrmp/StubSkeletonWriter.java.i
 data/src/share/classes/java/nio/file/FileSystemLoopException.java.i
-data/src/share/demo/nbproject/scripting/jconsole-plugin/nbproject/netbeans-targets.xml.i
+data/test/javax/sound/midi/Gervill/AudioFloatInputStream/MarkSupported.java.i
 data/src/solaris/native/java/net/Inet4AddressImpl.c.i
-data/src/share/classes/javax/sound/sampled/BooleanControl.java.i
+data/src/solaris/doc/sun/man/man1/jinfo.1.i
 data/test/java/util/PluggableLocale/GenericTest.java.i
-data/src/share/classes/com/sun/tools/jdi/StackFrameImpl.java.i
+data/test/java/beans/XMLEncoder/6777487/TestCheckedList.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLObject.java.i
-data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/AcceptLargeFragments.java.i
-data/test/java/util/logging/PlatformLoggingMXBean/PlatformLoggingMXBeanTest.java.i
+data/test/java/util/IdentityHashMap/ToArray.java.i
 data/src/share/classes/com/sun/beans/decoder/AccessorElementHandler.java.i
 data/src/solaris/classes/sun/nio/ch/FileDispatcher.java.i
-data/src/share/classes/sun/util/calendar/CalendarDate.java.i
+data/test/java/io/Serializable/getSuidClinitError/GetSuidClinitError.java.i
 data/test/java/beans/XMLEncoder/javax_swing_Box.java.i
 data/src/share/native/java/lang/fdlibm/src/s_fabs.c.i
 data/test/com/sun/jdi/CommandCommentDelimiter.sh.i
-data/test/sun/rmi/rmic/newrmic/equivalence/Agent.java.i
+data/test/javax/management/Introspector/DescribedMX.java.i
 data/src/share/classes/java/io/FilterOutputStream.java.i
 data/test/sun/security/krb5/ConfPlusProp.java.i
-data/test/javax/management/query/QueryMatchTest.java.i
+data/src/share/native/sun/awt/image/cvutils/img_util.h.i
 data/src/share/classes/java/lang/EnumConstantNotPresentException.java.i
 data/src/share/classes/java/util/concurrent/locks/ReentrantReadWriteLock.java.i
-data/test/java/rmi/server/RemoteObject/toStub/security.policy.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/ASCII_CharStream.README.i
 data/src/share/classes/java/awt/dnd/peer/DropTargetContextPeer.java.i
 data/src/share/classes/com/sun/media/sound/SoftLanczosResampler.java.i
 data/make/tools/CharsetMapping/IBM861.map.i
-data/test/java/nio/Buffer/CopyDirectShortMemory.java.i
-data/src/share/demo/nbproject/jfc/TransparentRuler/nbproject/file-targets.xml.i
-data/test/sun/net/www/protocol/jar/copyin.sh.i
+data/src/share/classes/com/sun/jndi/ldap/LdapName.java.i
+data/src/share/classes/javax/naming/ConfigurationException.java.i
+data/src/share/classes/java/lang/Readable.java.i
 data/src/share/classes/sun/security/rsa/RSAPrivateCrtKeyImpl.java.i
 data/test/java/security/cert/CertPathValidator/trustAnchor/sun2labs2.cer.i
 data/src/share/native/java/lang/String.c.i
@@ -8491,26 +8246,26 @@ data/test/java/beans/XMLEncoder/java_net_URI.java.i
 data/src/share/classes/sun/awt/geom/PathConsumer2D.java.i
 data/src/share/instrument/Utilities.c.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509KeyManager/PreferredKey.java.i
-data/test/javax/crypto/CryptoPermission/RC2PermCheck.java.i
-data/test/javax/management/MBeanInfo/NotificationInfoTest.java.i
-data/src/share/classes/javax/swing/text/html/ObjectView.java.i
+data/test/java/security/cert/PKIXBuilderParameters/InvalidParameters.java.i
 data/test/javax/swing/JSlider/6794836/bug6794836.java.i
 data/src/windows/classes/sun/net/www/protocol/http/NTLMAuthentication.java.i
 data/test/java/io/Serializable/enum/unshared/Test.java.i
-data/src/share/sample/nio/chatserver/NameReader.java.i
+data/test/javax/script/DummyScriptEngineFactory.java.i
 data/test/java/awt/event/InvocationEvent/InvocationEventTest.java.i
 data/src/solaris/native/sun/nio/ch/EPollPort.c.i
 data/src/share/classes/javax/swing/border/EmptyBorder.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageConvMxN_Fp.c.i
-data/test/javax/swing/plaf/synth/7032791/bug7032791.java.i
+data/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java.i
+data/src/share/classes/sun/text/UCompactIntArray.java.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/package.html.i
 data/make/tools/swing-beans/beaninfo/images/JCheckBoxMono32.gif.i
 data/test/java/nio/file/Files/FileAttributes.java.i
-data/src/share/native/sun/font/FontInstanceAdapter.h.i
+data/test/com/sun/jdi/FieldWatchpoints.java.i
 data/src/solaris/classes/sun/nio/fs/UnixFileModeAttribute.java.i
 data/src/share/classes/java/text/RuleBasedCollationKey.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/package.html.i
-data/src/solaris/classes/sun/awt/motif/MDragSourceContextPeer.java.i
+data/test/java/rmi/activation/Activatable/checkImplClassLoader/security.policy.i
+data/src/solaris/classes/sun/awt/motif/MInputMethodDescriptor.java.i
 data/test/javax/crypto/JceSecurity/MyCertificateFactory.java.i
 data/src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java.i
 data/test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/PoisonPill.java.i
@@ -8518,105 +8273,101 @@ data/src/share/classes/java/nio/file/attribute/UserPrincipal.java.i
 data/src/share/classes/sun/java2d/pisces/PiscesTileGenerator.java.i
 data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparcv9/libLauncher.so.i
 data/test/java/rmi/reliability/benchmark/bench/serial/CustomDefaultObjTrees.java.i
-data/test/java/rmi/reliability/benchmark/bench/Util.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHost.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageAffine.c.i
 data/test/java/io/Serializable/unresolvedClassDesc/Read.java.i
 data/src/windows/native/sun/nio/ch/SocketDispatcher.c.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmMemMgrPoolRelTableMeta.java.i
 data/src/share/classes/javax/management/modelmbean/ModelMBeanAttributeInfo.java.i
 data/src/share/classes/javax/imageio/plugins/jpeg/JPEGImageWriteParam.java.i
-data/test/com/sun/jdi/InvokeTest.java.i
-data/test/java/nio/charset/coders/ref.windows-31j.i
-data/test/sun/security/mscapi/RSAEncryptDecrypt.sh.i
-data/make/mksample/nbproject/Makefile.i
+data/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java.i
+data/src/windows/native/sun/windows/awt_Event.cpp.i
 data/src/share/native/java/util/zip/zlib-1.1.3/inftrees.h.i
-data/test/java/lang/instrument/GetInitiatedClassesTest.java.i
+data/test/java/rmi/activation/ActivationSystem/modifyDescriptor/group.security.policy.i
 data/test/javax/sound/midi/Gervill/DLSSoundbankReader/TestGetSoundbankInputStream.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/config.i
 data/src/share/classes/sun/io/CharToByteCp1146.java.i
 data/test/com/sun/net/httpserver/bugs/B6431193.java.i
-data/test/java/beans/XMLEncoder/javax_swing_DefaultCellEditor.java.i
-data/src/windows/back/proc_md.h.i
-data/test/java/lang/management/RuntimeMXBean/UpTime.java.i
+data/src/share/classes/sun/text/resources/CollationData_pt.java.i
+data/src/share/native/sun/font/layout/TrimmedArrayProcessor.cpp.i
 data/src/share/classes/sun/io/ByteToCharCp1254.java.i
 data/make/tools/CharsetMapping/MS1255.map.i
 data/src/share/classes/java/nio/file/FileSystems.java.i
 data/src/share/classes/com/sun/rowset/RowSetResourceBundle_it.properties.i
-data/src/share/native/sun/awt/medialib/mlib_ImageConvCopyEdge_Bit.c.i
 data/src/share/classes/com/sun/jdi/Accessible.java.i
-data/src/solaris/classes/sun/java2d/xr/XRMaskFill.java.i
+data/src/share/native/sun/security/ec/impl/ec2_193.c.i
 data/src/share/classes/java/lang/NoSuchFieldError.java.i
+data/src/share/classes/sun/tools/tree/SubtractExpression.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_HN.properties.i
 data/test/sun/tools/jstat/jstatLineCounts4.sh.i
-data/src/share/native/sun/awt/image/cvutils/img_noscale.h.i
-data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKStyle.java.i
+data/test/javax/swing/JSlider/4252173/bug4252173.java.i
+data/test/java/beans/XMLEncoder/java_io_File.java.i
+data/test/java/lang/Class/getDeclaredClasses/Sanity.java.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageThresh1_U8.c.i
-data/test/java/io/InputStream/Skip.java.i
 data/test/java/beans/XMLEncoder/java_awt_GridBagConstraints.java.i
-data/test/javax/swing/UIDefaults/6795356/bug6795356.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptionProperties.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/TestDisableLoadDefaultSoundbank.java.i
+data/src/share/native/sun/awt/giflib/gif_err.c.i
 data/src/share/classes/javax/swing/plaf/FileChooserUI.java.i
-data/test/sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java.i
+data/test/sun/security/krb5/auto/HttpNegotiateServer.java.i
 data/src/share/classes/javax/net/ssl/SSLContextSpi.java.i
 data/test/com/sun/jdi/NativeInstanceFilterTarg.java.i
 data/test/java/beans/Introspector/6380849/beans/FirstBeanBeanInfo.java.i
 data/test/java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html.i
-data/src/share/classes/sun/security/krb5/internal/HostAddress.java.i
+data/make/tools/src/build/tools/generatebreakiteratordata/CharSet.java.i
 data/src/share/classes/sun/nio/ch/OptionAdaptor.java.i
-data/test/java/util/Collections/Enum.java.i
+data/src/share/classes/javax/swing/plaf/nimbus/NimbusIcon.java.i
 data/src/share/native/sun/java2d/loops/Ushort555Rgbx.c.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl.java.i
-data/test/java/lang/StringBuilder/Exceptions.java.i
+data/src/share/classes/java/lang/module/RequireOptionalModule.java.i
+data/test/tools/launcher/UnresolvedExceptions.java.i
 data/test/java/nio/file/DirectoryStream/Filters.java.i
-data/make/com/sun/jarsigner/Makefile.i
+data/test/com/sun/jdi/LaunchCommandLine.java.i
+data/make/sun/xawt/Makefile.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifInternalFrameTitlePane.java.i
 data/make/tools/CharsetMapping/IBM950.c2b.i
-data/src/share/classes/javax/naming/spi/InitialContextFactory.java.i
+data/test/java/util/TimSort/SortPerf.java.i
 data/src/share/classes/sun/io/ByteToCharCp1148.java.i
-data/test/java/math/BigInteger/ProbablePrime.java.i
 data/test/java/rmi/server/RMIClassLoader/loadProxyClasses/FnnUnmarshal.java.i
 data/src/windows/native/sun/java2d/d3d/D3DBufImgOps.h.i
-data/test/sun/security/provider/PolicyFile/AliasExpansion.java.i
 data/src/share/classes/javax/sound/sampled/AudioPermission.java.i
 data/src/share/classes/com/sun/pept/encoding/Encoder.java.i
 data/src/windows/native/com/sun/security/auth/module/nt.c.i
 data/src/share/classes/com/sun/media/sound/SunCodec.java.i
 data/test/javax/management/eventService/MyFetchingEventForwarder.java.i
-data/src/solaris/native/sun/awt/VDrawingArea.c.i
+data/src/share/classes/org/ietf/jgss/GSSName.java.i
+data/test/java/beans/README.i
 data/test/java/lang/Boolean/GetBoolean.java.i
 data/test/sun/nio/cs/OLD/IBM1383_OLD.java.i
 data/src/share/sample/scripting/scriptpad/src/scripts/browse.js.i
 data/src/share/classes/com/sun/jndi/ldap/Filter.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConv_8nw.c.i
+data/test/java/beans/XMLEncoder/Test6963811.java.i
 data/test/sun/net/www/http/HttpClient/MultiThreadTest.java.i
 data/src/share/classes/java/awt/font/NumericShaper.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_da_DK.properties.i
-data/src/windows/classes/java/lang/ProcessImpl.java.i
-data/src/share/demo/jfc/Font2DTest/resources/TextResources_en.properties.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/icons/File.gif.i
+data/src/share/classes/java/util/zip/DeflaterInputStream.java.i
 data/src/share/classes/javax/accessibility/package.html.i
-data/src/share/classes/com/sun/security/sasl/CramMD5Client.java.i
-data/test/sun/management/jmxremote/bootstrap/jmxremote_test02_ok.password.in.i
-data/test/sun/tools/jstat/printCompilationOutput1.awk.i
+data/test/com/sun/security/sasl/digest/PropertiesFileCallbackHandler.java.i
+data/test/sun/security/mscapi/noaccess.policy.i
 data/test/java/nio/Buffer/AllocateDirectInit.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/altroot/Node.java.i
-data/src/windows/classes/sun/java2d/windows/WinBackBufferSurfaceData.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/RehandshakeFinished.java.i
+data/test/sun/tools/jps/jps-v_1.sh.i
 data/src/share/classes/java/lang/AssertionError.java.i
 data/src/share/classes/sun/io/CharToByteUTF16.java.i
 data/test/java/lang/instrument/ASimpleInstrumentationTestCase.java.i
 data/make/tools/swing-beans/beaninfo/images/JTreeMono16.gif.i
 data/src/windows/native/sun/jkernel/kernel.cpp.i
-data/test/java/security/Policy/Root/Root.java.i
-data/test/java/lang/instrument/ilib/RuntimeConstants.java.i
+data/src/share/classes/sun/awt/resources/awt_pt_BR.properties.i
+data/make/sun/awt/Depend.sed.i
 data/test/tools/launcher/Arrrghs.java.i
 data/src/share/lib/audio/soundbank.gm.d
 data/src/share/classes/sun/io/ByteToCharISO2022JP.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java.i
-data/src/share/classes/java/io/PipedOutputStream.java.i
+data/src/share/classes/javax/sql/rowset/serial/SerialRef.java.i
 data/src/share/classes/com/sun/media/sound/ModelDirector.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/KeyUtils.java.i
 data/src/share/classes/sun/io/ByteToCharEUC_TW.java.i
 data/src/share/classes/com/sun/jndi/ldap/pool/PoolCleaner.java.i
-data/test/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java.i
 data/test/org/openjdk/jigsaw/cli/ModuleFormatTestLeftOverBytes.java.i
 data/test/java/beans/beancontext/Test4233980.java.i
 data/make/sun/jawt/Depend.sed.i
@@ -8624,97 +8375,91 @@ data/src/share/classes/javax/swing/border/Border.java.i
 data/test/java/lang/Class/getModifiers/ForInnerClass.java.i
 data/src/solaris/native/sun/nio/ch/FileChannelImpl.c.i
 data/src/share/classes/java/security/acl/Acl.java.i
-data/src/share/demo/nbproject/jfc/Notepad/nbproject/jdk.xml.i
-data/src/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_ro.properties.i
+data/test/sun/security/krb5/auto/W83.java.i
+data/src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.c.i
 data/src/share/classes/java/nio/file/spi/AbstractPath.java.i
 data/test/java/beans/PropertyEditor/6380849/editors/ThirdBeanEditor.java.i
-data/src/share/classes/sun/java2d/pipe/ParallelogramPipe.java.i
+data/test/java/beans/XMLDecoder/spec/TestMethod.java.i
 data/src/share/classes/javax/naming/spi/ObjectFactory.java.i
-data/test/javax/script/MyContext.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU8U16Func.c.i
 data/src/share/classes/sun/nio/cs/ext/IBM1025.java.i
 data/src/share/classes/sun/io/CharToByteDBCS_EBCDIC.java.i
 data/make/tools/CharsetMapping/IBM950.map.i
 data/src/share/classes/sun/security/acl/AclEntryImpl.java.i
-data/src/share/classes/com/sun/jdi/InvalidTypeException.java.i
+data/src/share/native/sun/awt/image/jpeg/jidctfst.c.i
 data/make/tools/CharsetMapping/IBM1124.map.i
 data/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c.i
 data/src/share/demo/jfc/Notepad/resources/Notepad_sv.properties.i
-data/src/share/classes/sun/rmi/transport/proxy/RMIHttpToPortSocketFactory.java.i
+data/src/share/classes/javax/net/ssl/SSLEngineResult.java.i
 data/src/share/classes/java/util/LinkedList.java.i
-data/src/share/classes/java/security/cert/package.html.i
-data/test/java/rmi/activation/Activatable/downloadParameterClass/manual.security.policy.i
-data/src/windows/javavm/include/typedefs_md.h.i
+data/src/share/classes/javax/management/relation/package.html.i
+data/test/com/sun/security/sasl/ClientCallbackHandler.java.i
 data/src/share/classes/sun/io/CharToByteCp852.java.i
 data/src/share/native/java/util/zip/Adler32.c.i
 data/src/share/classes/sun/tools/javac/ErrorMessage.java.i
+data/test/sun/security/smartcardio/TestDefault.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/MXBeanProxy.java.i
-data/src/windows/native/sun/windows/awt_InputEvent.h.i
-data/src/share/native/sun/java2d/loops/ByteBinary1Bit.c.i
+data/src/share/classes/java/awt/geom/CubicCurve2D.java.i
 data/test/java/net/URLConnection/HttpContinueStackOverflow.java.i
 data/test/javax/swing/JColorChooser/Test6524757.java.i
-data/src/share/classes/sun/management/snmp/jvminstr/JvmMemGCTableMetaImpl.java.i
-data/test/javax/xml/crypto/dsig/data/signature.xml.i
+data/src/share/native/sun/security/ec/ecp_521.c.i
+data/test/sun/nio/cs/TestISO2022JPEncoder.java.i
 data/test/com/sun/security/sasl/digest/AuthOnly.java.i
 data/src/share/classes/sun/tools/java/Type.java.i
 data/src/share/classes/sun/net/ftp/FtpReplyCode.java.i
 data/test/com/sun/jdi/RunToExit.java.i
 data/src/share/classes/sun/security/jgss/spi/GSSNameSpi.java.i
+data/src/share/classes/java/nio/channels/ScatteringByteChannel.java.i
 data/src/share/classes/com/sun/jmx/interceptor/package.html.i
 data/src/share/native/sun/security/ec/ec2_mont.c.i
 data/test/javax/management/MBeanInfo/EqualExceptionTest.java.i
 data/src/share/classes/sun/font/ScriptRunData.java.i
 data/test/sun/net/www/protocol/file/FileMap.java.i
-data/test/com/sun/net/httpserver/bugs/B6424196.java.i
-data/test/java/security/cert/X509CertSelector/SetNameConstraintsEmptySequence.java.i
 data/test/demo/zipfs/ZipFSTester.java.i
 data/test/java/util/Formatter/BasicFloat.java.i
-data/src/share/classes/sun/tools/asm/LocalVariable.java.i
+data/src/share/classes/sun/security/krb5/KrbServiceLocator.java.i
 data/test/sun/security/pkcs11/rsa/rsakeys.ks.i
 data/make/javax/crypto/Makefile.i
-data/test/sun/nio/cs/LeftOverSurrogate.java.i
 data/src/share/native/sun/java2d/loops/Ushort565Rgb.c.i
 data/test/sun/tools/jstat/options2.out.i
 data/src/solaris/native/java/util/TimeZone_md.c.i
 data/src/share/classes/sun/misc/ClassLoaderUtil.java.i
+data/src/share/classes/sun/util/resources/CalendarData_be.properties.i
 data/test/java/beans/PropertyChangeSupport/Test4353056.java.i
 data/src/windows/native/sun/windows/CmdIDList.cpp.i
-data/test/sun/security/pkcs11/KeyStore/Basic.policy.i
 data/src/share/demo/applets/WireFrame/models/hughes_500.obj.i
-data/test/sun/security/pkcs11/nss/lib/linux-i586/libnss3.so.i
+data/src/windows/native/common/gdefs_md.h.i
 data/make/java/java/localegen.sh.i
-data/test/java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java.i
 data/src/share/classes/javax/swing/plaf/InternalFrameUI.java.i
 data/make/tools/swing-beans/beaninfo/images/JLayeredPaneColor32.gif.i
 data/src/share/classes/java/awt/geom/RoundRectangle2D.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/ElementProxy.java.i
 data/src/share/classes/com/sun/crypto/provider/RC2Parameters.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifTextUI.java.i
+data/src/share/classes/sun/reflect/ClassFileConstants.java.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/ClassLoading.java.i
-data/src/share/classes/sun/util/resources/TimeZoneNames_en_GB.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXPathFilter2Transform.java.i
 data/src/share/classes/sun/io/ByteToCharASCII.java.i
-data/src/share/native/sun/security/ec/oid.c.i
+data/test/javax/security/auth/x500/X500Principal/Equals.java.i
 data/test/com/sun/servicetag/Util.java.i
-data/src/share/classes/sun/text/normalizer/UCharacterPropertyReader.java.i
-data/test/java/security/cert/CertPathValidator/nameConstraints/NameConstraintsWithRID.java.i
+data/test/java/lang/instrument/PremainClass/InheritAgent0110.java.i
 data/src/windows/native/sun/windows/awt_PopupMenu.cpp.i
-data/src/share/native/java/lang/Class.c.i
-data/test/java/util/zip/ZipFile/ClearStaleZipFileInputStreams.java.i
+data/src/share/native/sun/management/MemoryManagerImpl.c.i
 data/test/sun/nio/ch/TempBuffer.java.i
 data/src/share/demo/jvmti/hprof/hprof_listener.h.i
-data/test/java/beans/XMLDecoder/4676532/test.jar.i
-data/src/share/sample/scripting/scriptpad/src/scripts/memory.js.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetLatency.java.i
+data/test/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java.i
 data/src/share/classes/sun/security/pkcs11/P11Util.java.i
-data/src/solaris/native/sun/awt/awt_Mlib.h.i
-data/test/java/util/TreeMap/EmptyMapAndNulls.java.i
+data/make/tools/classanalyzer/src/com/sun/classanalyzer/Trace.java.i
 data/src/share/classes/sun/security/krb5/internal/APOptions.java.i
 data/src/share/classes/sun/tracing/MultiplexProviderFactory.java.i
 data/src/share/classes/java/lang/NoClassDefFoundError.java.i
-data/test/java/nio/file/Path/InterruptCopy.java.i
 data/test/java/rmi/activation/Activatable/checkAnnotations/MyRMI.java.i
+data/src/share/classes/com/sun/pept/encoding/Decoder.java.i
 data/test/javax/sound/sampled/FileWriter/WriterCloseInput.java.i
 data/test/java/math/BigDecimal/PrecisionTests.java.i
 data/src/share/classes/com/sun/jmx/event/LeaseRenewer.java.i
-data/src/share/sample/nio/file/Copy.java.i
+data/test/java/util/ResourceBundle/Control/Chinese.properties.i
 data/src/share/classes/sun/security/x509/X500Signer.java.i
 data/src/share/classes/javax/sound/midi/MidiChannel.java.i
 data/src/share/classes/java/util/zip/Adler32.java.i
@@ -8723,99 +8468,94 @@ data/src/share/classes/com/sun/jmx/snmp/internal/SnmpLcd.java.i
 data/src/share/classes/com/sun/media/sound/SoftReverb.java.i
 data/make/tools/buildmetaindex/Makefile.i
 data/test/com/sun/security/sasl/digest/PrivacyRc4.java.i
-data/test/javax/management/mxbean/SameObjectTwoNamesTest.java.i
 data/test/javax/crypto/SecretKeyFactory/FailOverTest.sh.i
 data/src/share/classes/java/nio/file/WatchService.java.i
 data/make/java/version/Makefile.i
 data/src/share/classes/javax/naming/event/NamingExceptionEvent.java.i
-data/test/sun/net/www/ParseUtil_6478588.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM949.java.i
 data/src/share/classes/sun/util/resources/CalendarData_nl.properties.i
 data/test/java/text/Format/DateFormat/Bug6645292.java.i
 data/src/share/classes/javax/swing/JToolTip.java.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerIntIntIntInt.java.i
-data/test/java/awt/FontClass/CreateFont/fileaccess/FontFile.java.i
-data/test/java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java.i
-data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_TW.properties.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientModeClientAuth.java.i
+data/test/sun/net/www/protocol/http/spnegoReadme.i
+data/src/share/classes/sun/text/resources/FormatData_es_PY.java.i
 data/src/share/classes/javax/swing/text/doc-files/Document-notification.gif.i
+data/test/java/beans/EventHandler/Test6179222.java.i
 data/src/share/classes/sun/io/ByteToCharJIS0208_Solaris.java.i
-data/src/share/classes/com/sun/security/auth/module/NTSystem.java.i
+data/test/java/nio/file/Path/InterruptCopy.java.i
 data/test/sun/security/krb5/tools/ktarg.sh.i
 data/src/share/classes/sun/security/ec/ECParameters.java.i
-data/src/share/demo/applets/SortDemo/QSortAlgorithm.java.i
-data/test/sun/nio/cs/TestISO2022JPSubBytes.java.i
+data/src/windows/native/sun/windows/awt_new.cpp.i
 data/src/share/classes/sun/management/resources/agent_ko.properties.i
 data/test/javax/management/namespace/JMXNamespaceTest.java.i
 data/test/java/util/UUID/Serial.java.i
 data/test/javax/sound/midi/Gervill/SoftReceiver/Send_ChannelPressure.java.i
-data/test/java/util/ResourceBundle/KeySetResources.properties.i
-data/src/share/native/sun/font/layout/SubstitutionLookups.cpp.i
-data/src/solaris/classes/sun/awt/X11/XListPeer.java.i
+data/src/share/classes/java/awt/peer/package.html.i
+data/src/share/classes/sun/io/CharToByteCp943.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageConvClearEdge_Bit.c.i
-data/test/com/sun/jdi/redefine/SchemaChange_RedefineSubTarg.java.i
+data/src/solaris/classes/sun/java2d/jules/JulesAATileGenerator.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ms_MY.properties.i
-data/test/java/net/CookieHandler/CookieHandlerTest.java.i
+data/test/javax/sound/midi/Gervill/SoftChannel/PitchBend.java.i
 data/src/share/classes/sun/security/ssl/RSASignature.java.i
 data/src/share/native/sun/awt/image/jpeg/jcmarker.c.i
 data/src/share/classes/com/sun/crypto/provider/RSACipher.java.i
 data/src/share/classes/sun/applet/resources/MsgAppletViewer_ja.java.i
-data/make/sun/font/t2k/Makefile.i
-data/test/java/io/Serializable/enum/ignoreSerializationFields/Test.java.i
-data/src/share/native/java/lang/fdlibm/src/k_sin.c.i
+data/test/javax/management/mxbean/MiscTest.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java.i
 data/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java.i
 data/src/share/native/sun/java2d/loops/LoopMacros.h.i
 data/test/com/sun/jdi/InterruptHangTest.java.i
-data/src/share/native/sun/awt/medialib/mlib_ImageColormap.h.i
+data/src/share/classes/sun/nio/cs/UTF_32Coder.java.i
+data/test/java/awt/Frame/FrameLocation/FrameLocation.java.i
 data/src/share/classes/java/util/WeakHashMap.java.i
 data/src/share/classes/sun/reflect/UnsafeFloatFieldAccessorImpl.java.i
-data/src/share/classes/javax/imageio/event/IIOWriteWarningListener.java.i
-data/test/java/lang/Runtime/shutdown/ShutdownHooks.sh.i
-data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libnss3.so.d
+data/test/javax/management/Introspector/UnDescribedMBean.java.i
 data/test/com/sun/jdi/UTF8Test.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageCreate.c.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmThreadInstanceEntryMeta.java.i
 data/src/share/demo/applets/MoleculeViewer/example2.html.i
 data/src/share/classes/sun/security/krb5/KrbTgsRep.java.i
 data/test/java/beans/XMLEncoder/Test6505888.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/Generator.java.i
+data/src/share/sample/nio/server/Request.java.i
 data/make/tools/CharsetMapping/IBM278.map.i
 data/src/share/classes/sun/tools/tree/IdentifierExpression.java.i
 data/test/java/awt/font/Rotate/TranslatedOutlineTest.java.i
 data/src/share/native/java/lang/System.c.i
-data/src/share/classes/javax/swing/text/doc-files/Document-coord.gif.i
+data/test/javax/crypto/JceSecurity/MyX509CertImpl.java.i
 data/src/solaris/native/sun/java2d/x11/X11Renderer.c.i
 data/src/share/classes/javax/swing/event/UndoableEditEvent.java.i
 data/src/share/classes/sun/awt/ModalExclude.java.i
 data/src/share/classes/com/sun/jmx/remote/internal/RMIExporter.java.i
-data/src/share/native/sun/security/pkcs11/j2secmod.h.i
+data/test/java/nio/channels/Selector/WakeupNow.java.i
 data/src/share/classes/sun/nio/ByteBuffered.java.i
 data/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport1.java.i
 data/test/java/util/jar/JarFile/thawjar.jar.i
 data/src/share/classes/com/sun/jdi/ClassNotPreparedException.java.i
-data/test/java/rmi/activation/Activatable/downloadParameterClass/security.policy.i
-data/src/linux/doc/man/apt.1.i
+data/src/share/classes/javax/sound/midi/Track.java.i
+data/test/sun/net/www/protocol/jar/foo1.jar.d
+data/src/share/classes/javax/imageio/ImageReader.java.i
 data/src/share/native/com/sun/java/util/jar/pack/utils.cpp.i
 data/src/solaris/classes/sun/awt/motif/X11CNS11643.java.i
 data/src/share/classes/javax/swing/event/TreeExpansionListener.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiTextUI.java.i
-data/src/share/classes/sun/nio/cs/ext/HKSCS.java.i
+data/src/share/classes/sun/invoke/empty/Empty.java.i
 data/src/share/classes/com/sun/jmx/remote/util/OrderClassLoaders.java.i
 data/make/tools/src/build/tools/buildmetaindex/BuildMetaIndex.java.i
 data/test/sun/tools/native2ascii/A2N_4701617.expected.i
-data/src/share/classes/sun/io/ByteToCharEUC_KR.java.i
+data/src/share/classes/sun/io/ByteToCharCp942C.java.i
 data/test/java/lang/invoke/MethodTypeTest.java.i
 data/test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32S32Func.c.i
+data/src/share/classes/java/lang/management/MonitorInfo.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties.i
 data/src/share/classes/javax/management/relation/RoleUnresolved.java.i
-data/src/share/classes/com/sun/media/sound/ModelAbstractOscillator.java.i
-data/src/share/classes/sun/reflect/UTF8.java.i
+data/test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOn.java.i
+data/test/java/beans/Introspector/Test6277246.java.i
 data/src/solaris/classes/java/lang/ProcessImpl.java.i
 data/test/java/util/Collections/Rotate.java.i
 data/src/share/classes/java/util/concurrent/TransferQueue.java.i
 data/src/share/demo/applets/ArcTest/ArcTest.java.i
-data/src/share/classes/javax/security/auth/kerberos/ServicePermission.java.i
+data/src/share/classes/java/awt/peer/PanelPeer.java.i
 data/src/share/classes/sun/management/resources/agent_ja.properties.i
 data/src/share/classes/javax/print/attribute/standard/PrinterName.java.i
 data/src/share/classes/java/nio/X-Buffer.java.i
@@ -8823,66 +8563,70 @@ data/make/common/shared/Platform.gmk.i
 data/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java.i
 data/src/share/classes/com/sun/tools/jdi/VMModifiers.java.i
 data/src/share/classes/javax/swing/colorchooser/ColorModel.java.i
+data/src/share/classes/java/awt/KeyEventDispatcher.java.i
 data/test/sun/security/pkcs11/KeyAgreement/TestShort.java.i
 data/test/sun/security/provider/PolicyFile/TokenStore.keystore.i
 data/src/share/classes/javax/script/package.html.i
-data/ASSEMBLY_EXCEPTION.i
+data/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java.i
 data/src/share/transport/socket/socketTransport.c.i
 data/test/javax/print/applet/AppletPrintLookup.sh.i
-data/src/share/demo/jfc/FileChooserDemo/ExampleFileView.java.i
+data/src/share/classes/sun/awt/NullComponentPeer.java.i
 data/make/tools/swing-beans/beaninfo/images/JMenuColor32.gif.i
 data/test/sun/net/www/protocol/file/GetLastModified.java.i
 data/src/solaris/classes/sun/nio/fs/LinuxFileStore.java.i
 data/test/org/openjdk/jigsaw/ContextBuilder.java.i
 data/test/java/lang/management/MemoryMXBean/CollectionUsageThresholdConcMarkSweepGC.sh.i
 data/src/share/classes/sun/nio/cs/ext/DBCSDecoderMapping.java.i
+data/src/share/classes/sun/font/FontAccess.java.i
 data/src/share/classes/sun/security/util/AuthResources_es.java.i
-data/src/share/classes/com/sun/media/sound/SF2Instrument.java.i
+data/src/share/classes/java/security/spec/RSAPrivateKeySpec.java.i
 data/src/share/classes/sun/management/NotificationEmitterSupport.java.i
-data/make/sun/security/pkcs11/FILES_c.gmk.i
+data/src/share/classes/sun/rmi/transport/proxy/HttpSendOutputStream.java.i
+data/src/share/classes/sun/net/TransferProtocolClient.java.i
 data/src/solaris/classes/sun/awt/X11/security-icon-interim16.png.i
 data/make/tools/CharsetMapping/IBM280.map.i
 data/src/share/classes/sun/audio/InvalidAudioFormatException.java.i
 data/src/share/classes/java/awt/image/VolatileImage.java.i
 data/test/java/net/DatagramPacket/Offset.java.i
-data/make/sun/nio/cs/Makefile.i
-data/src/share/classes/sun/reflect/UnsafeQualifiedBooleanFieldAccessorImpl.java.i
+data/test/com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.sh.i
+data/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java.i
 data/src/share/classes/javax/xml/crypto/dsig/spec/C14NMethodParameterSpec.java.i
-data/src/solaris/native/sun/awt/awt_mgrsel.c.i
+data/src/solaris/hpi/include/largefile.h.i
 data/test/java/lang/StrictMath/Expm1Tests.java.i
 data/test/com/sun/jdi/redefine/RedefineSetUp.sh.i
 data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java.i
 data/src/share/classes/java/awt/image/WritableRaster.java.i
+data/src/share/classes/java/net/CookieManager.java.i
 data/src/share/classes/com/sun/tools/example/debug/tty/ExceptionSpec.java.i
-data/src/share/classes/sun/print/ServiceDialog.java.i
+data/test/javax/sound/midi/Gervill/ModelIdentifier/NewModelIdentifierStringStringInt.java.i
 data/src/share/classes/sun/security/jgss/TokenTracker.java.i
 data/src/share/classes/javax/naming/OperationNotSupportedException.java.i
-data/test/com/sun/security/auth/module/KeyStoreLoginModule/OptionTest.keyPass.i
 data/make/tools/swing-beans/beaninfo/images/JCheckBoxMono16.gif.i
 data/test/sun/security/tools/policytool/ChangeUI.sh.i
 data/test/com/sun/management/OperatingSystemMXBean/GetProcessCpuLoad.java.i
-data/src/solaris/native/sun/net/spi/SdpProvider.c.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_INFO.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/Reference.java.i
+data/src/share/classes/com/sun/jdi/ObjectCollectedException.java.i
+data/test/com/sun/security/auth/callback/TextCallbackHandler/Default.java.i
+data/test/java/beans/XMLEncoder/Test5023559.java.i
 data/src/share/demo/jvmti/waiters/Agent.hpp.i
 data/src/share/classes/sun/tools/tree/PostIncExpression.java.i
 data/test/java/io/LineNumberInputStream/Available.java.i
 data/test/sun/nio/cs/EncodingNothing.java.i
 data/src/share/native/sun/java2d/loops/IntArgbPre.h.i
-data/test/javax/naming/ldap/LdapName/LdapParserTests.java.i
+data/src/share/classes/java/rmi/registry/LocateRegistry.java.i
 data/test/java/nio/channels/Pipe/SelectPipe.java.i
 data/make/jpda/back/mapfile-vers.i
 data/src/share/native/java/util/zip/zlib-1.2.3/patches/zlib.h.diff.i
-data/test/java/util/ResourceBundle/Test4314141.java.i
+data/src/share/classes/sun/tools/jconsole/inspector/XOpenTypeViewer.java.i
 data/test/sun/nio/cs/CheckHistoricalNames.java.i
-data/src/share/classes/javax/naming/BinaryRefAddr.java.i
+data/src/share/classes/sun/security/util/Resources_sv.java.i
 data/test/sun/tools/jps/jps-Vvm.sh.i
 data/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java.i
-data/src/share/classes/sun/management/jmxremote/LocalRMIServerSocketFactory.java.i
+data/make/sun/text/FILES_properties.gmk.i
 data/src/share/native/sun/java2d/loops/IntArgb.h.i
-data/test/sun/java2d/OpenGL/GradientPaints.java.i
+data/src/share/classes/java/awt/Transparency.java.i
 data/src/share/classes/sun/misc/VM.java.i
-data/test/java/security/KeyRep/AES.pre.1.5.key.i
-data/test/sun/security/pkcs11/sslecc/truststore.i
+data/make/java/util/FILES_properties.gmk.i
 data/test/java/security/cert/CertPathValidator/indirectCRL/openssl.cnf.i
 data/test/java/rmi/activation/Activatable/extLoadedImpl/rmid.security.policy.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BC_S16.c.i
@@ -8891,15 +8635,14 @@ data/make/netbeans/jconsole/build.properties.i
 data/test/java/beans/XMLEncoder/4741757/TestStackOverflow.java.i
 data/src/share/classes/sun/security/provider/JavaKeyStore.java.i
 data/test/java/dyn/InvokeDynamicPrintArgs.java.i
-data/src/share/classes/org/openjdk/jigsaw/FilePaths.java.i
+data/src/solaris/classes/sun/awt/motif/X11CNS11643P1.java.i
 data/src/share/classes/sun/swing/plaf/GTKKeybindings.java.i
 data/src/windows/classes/sun/awt/windows/WBufferStrategy.java.i
-data/test/java/lang/InheritableThreadLocal/ITLRemoveTest.java.i
-data/test/java/util/zip/GZIP/GZIPInputStreamRead.java.i
 data/test/java/awt/GraphicsDevice/CloneConfigsTest.java.i
 data/test/java/lang/Math/HypotTests.java.i
 data/src/share/classes/sun/security/jgss/spnego/SpNegoToken.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadHandshake.java.i
+data/test/javax/swing/text/html/TableView/7030332/sample3.png.i
+data/src/share/demo/nbproject/jfc/Font2DTest/nbproject/file-targets.xml.i
 data/make/netbeans/jdwpgen/nbproject/findbugs.settings.i
 data/make/com/sun/tools/attach/mapfile-linux.i
 data/src/share/native/sun/java2d/Disposer.h.i
@@ -8913,30 +8656,33 @@ data/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java.i
 data/src/share/classes/sun/io/CharToByteCp933.java.i
 data/src/share/classes/sun/net/httpserver/ServerConfig.java.i
 data/src/share/classes/com/sun/media/sound/SF2InstrumentRegion.java.i
+data/src/share/classes/java/util/prefs/PreferenceChangeListener.java.i
 data/src/share/classes/java/rmi/ServerRuntimeException.java.i
 data/test/sun/security/provider/PolicyFile/TokenStore.pwd.i
 data/src/share/classes/javax/imageio/stream/FileCacheImageOutputStream.java.i
+data/src/share/classes/javax/sound/midi/Sequence.java.i
 data/src/share/classes/sun/applet/AppletViewer.java.i
-data/src/share/classes/sun/tools/tree/ConditionalExpression.java.i
+data/make/java/sql/Makefile.i
 data/src/share/classes/sun/nio/cs/ext/PCK.java.i
 data/test/java/net/ProxySelector/LoopbackAddresses.java.i
-data/src/share/classes/java/rmi/server/Unreferenced.java.i
-data/src/share/classes/javax/naming/spi/StateFactory.java.i
+data/src/share/classes/sun/awt/CharsetString.java.i
+data/test/sun/security/util/DerValue/BadValue.java.i
 data/test/java/security/cert/CertificateRevokedException/Basic.java.i
 data/test/java/io/PrintWriter/SubClass.java.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelInstrument.java.i
 data/make/javax/crypto/Defs-jce.gmk.i
-data/test/javax/management/descriptor/ImmutableDescriptorSerialTest.java.i
+data/src/linux/doc/man/ja/jarsigner.1.i
 data/test/java/rmi/activation/Activatable/extLoadedImpl/CheckLoader.java.i
-data/src/share/classes/sun/tools/asm/ArrayData.java.i
+data/src/share/classes/sun/text/normalizer/RangeValueIterator.java.i
+data/src/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties.i
+data/src/solaris/sample/dtrace/hotspot_jni/hotspot_jni_calls_tree.d.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmRTLibraryPathEntryMBean.java.i
 data/src/share/classes/sun/tools/java/Package.java.i
-data/src/share/classes/java/awt/doc-files/FlowLayout-1.gif.i
+data/src/windows/classes/sun/java2d/windows/WinBackBufferSurfaceData.java.i
 data/src/share/classes/com/sun/media/sound/ModelByteBuffer.java.i
-data/src/share/native/sun/font/layout/ContextualGlyphSubstitution.h.i
+data/src/share/classes/javax/management/remote/TargetedNotification.java.i
 data/src/share/classes/javax/swing/plaf/metal/sounds/OptionPaneQuestion.wav.i
 data/src/share/demo/nbproject/scripting/jconsole-plugin/nbproject/project.xml.i
-data/src/windows/hpi/src/threads_md.c.i
 data/test/com/sun/security/sasl/gsskerb/runwjaas.csh.i
 data/src/share/native/java/util/zip/zlib-1.2.3/deflate.c.i
 data/test/javax/swing/border/Test4247606.html.i
@@ -8945,38 +8691,37 @@ data/test/java/io/Writer/WriteFromString.java.i
 data/test/java/lang/reflect/Generics/Probe.java.i
 data/src/share/demo/nbproject/management/VerboseGC/nbproject/file-targets.xml.i
 data/src/share/native/sun/java2d/SurfaceData.h.i
-data/test/java/lang/management/ThreadMXBean/Locks.java.i
+data/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ComURLNulls.java.i
 data/src/share/classes/javax/management/modelmbean/DescriptorSupport.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicBorders.java.i
 data/test/org/openjdk/jigsaw/maze.sh.i
 data/src/share/lib/images/cursors/win32_CopyDrop32x32.gif.i
 data/make/tools/CharsetMapping/Johab.map.d
-data/test/java/awt/geom/Path2D/FillPPathTest.java.i
-data/make/common/Cscope.gmk.i
+data/make/org/jcp/Makefile.i
+data/src/share/classes/javax/swing/plaf/metal/MetalComboBoxIcon.java.i
+data/test/java/util/zip/InfoZip.java.i
 data/test/java/nio/Buffer/LimitDirectMemory.sh.i
-data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKStyleFactory.java.i
+data/src/share/classes/org/openjdk/jigsaw/JigsawVersionQuery.java.i
+data/src/share/classes/sun/java2d/loops/GraphicsPrimitive.java.i
 data/src/share/classes/javax/swing/plaf/RootPaneUI.java.i
 data/make/tools/CharsetMapping/Johab.map.i
 data/test/javax/swing/SwingTest.java.i
 data/test/java/security/UnresolvedPermission/DebugPermission0.java.i
-data/test/com/sun/crypto/provider/Cipher/RSA/TestRSA.java.i
-data/test/lib/security/java.policy/Ext_AllPolicy.sh.i
 data/src/share/classes/sun/java2d/pipe/RenderingEngine.java.i
 data/test/com/sun/servicetag/JavaServiceTagTest1.java.i
 data/src/share/classes/java/nio/file/FileSystemException.java.i
 data/src/share/classes/javax/swing/tree/FixedHeightLayoutCache.java.i
 data/test/java/net/Authenticator/B4933582.sh.i
-data/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c.i
+data/src/solaris/hpi/native_threads/include/np.h.i
 data/src/share/classes/com/sun/tools/example/debug/event/ThreadDeathEventSet.java.i
-data/test/java/rmi/activation/Activatable/shutdownGracefully/TestSecurityManager.java.i
-data/src/share/classes/sun/java2d/pipe/RegionIterator.java.i
+data/test/javax/script/NullUndefinedVarTest.java.i
+data/make/tools/swing-beans/beaninfo/images/JRadioButtonMenuItemMono32.gif.i
 data/src/share/classes/sun/net/TelnetInputStream.java.i
 data/test/javax/swing/JColorChooser/Test6541987.java.i
 data/test/java/util/EnumSet/JumboRange.java.i
-data/make/tools/swing-beans/beaninfo/images/JLayeredPaneColor16.gif.i
+data/src/share/classes/javax/sql/rowset/spi/SyncFactoryException.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifSplitPaneUI.java.i
 data/src/share/classes/javax/management/relation/RelationSupportMBean.java.i
-data/test/java/net/URLClassLoader/URLParsing.java.i
 data/test/javax/management/relation/RelationTypeTest.java.i
 data/src/share/demo/applets/WireFrame/models/knoxS.obj.i
 data/test/javax/swing/JScrollPane/6612531/bug6612531.java.i
@@ -8985,14 +8730,13 @@ data/test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java.i
 data/src/share/classes/sun/invoke/util/package-info.java.i
 data/test/javax/management/descriptor/ImmutableDescriptorSetFieldsTest.java.i
 data/test/java/lang/annotation/Missing/MissingWrapper.java.i
+data/src/solaris/hpi/native_threads/src/condvar_md.c.i
 data/src/share/classes/sun/net/InetAddressCachePolicy.java.i
-data/src/share/native/sun/awt/image/jpeg/jinclude.h.i
 data/src/share/classes/sun/util/resources/CalendarData_de.properties.i
 data/src/share/classes/sun/io/ByteToCharCp1381.java.i
 data/src/share/classes/java/net/URI.java.i
-data/src/share/classes/sun/misc/FormattedFloatingDecimal.java.i
-data/make/modules/tools/src/com/sun/classanalyzer/ConstantPoolAnalyzer.java.i
-data/test/java/io/pathNames/win32/SJIS.java.i
+data/src/windows/native/sun/jkernel/graphics/cautionshield32.bmp.i
+data/src/share/classes/javax/swing/table/TableCellEditor.java.i
 data/test/java/beans/Introspector/Test6660539.java.i
 data/src/share/classes/javax/smartcardio/ATR.java.i
 data/src/share/classes/java/util/prefs/Preferences.java.i
@@ -9000,21 +8744,20 @@ data/test/java/beans/Introspector/memory/Bean3.java.i
 data/src/share/classes/com/sun/inputmethods/internal/thaiim/java.awt.im.spi.InputMethodDescriptor.i
 data/src/share/classes/sun/text/normalizer/NormalizerDataReader.java.i
 data/src/share/classes/sun/util/resources/CalendarData_pt_PT.properties.i
-data/src/share/classes/java/dyn/MemberName.java.i
+data/src/share/classes/sun/java2d/cmm/ProfileDeferralInfo.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLEncryptionException.java.i
-data/test/java/nio/file/Files/grantAll.policy.i
+data/src/share/native/java/lang/fdlibm/src/k_standard.c.i
 data/src/share/classes/sun/security/provider/SunEntries.java.i
-data/test/com/sun/security/auth/module/KeyStoreLoginModule/OptionTest.storePass.i
 data/src/share/classes/sun/nio/cs/ext/MS50221.java.i
 data/test/java/net/Inet4Address/isSiteLocalAddress.java.i
+data/src/share/classes/javax/management/NotificationEmitter.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/icons/image-failed.png.i
 data/test/sun/security/pkcs11/KeyAgreement/TestDH.java.i
 data/make/tools/sharing/tests/Hello.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/OpenStream.java.i
-data/test/sun/security/tools/jarsigner/oldsig.sh.i
-data/src/windows/native/sun/windows/awt_Dimension.h.i
-data/src/share/native/sun/awt/medialib/mlib_ImageColorTrue2Index.c.i
-data/src/share/classes/java/awt/doc-files/FocusSpec.html.i
+data/src/share/classes/java/security/KeyStoreException.java.i
+data/test/com/sun/jdi/MethodCalls.java.i
+data/src/share/classes/com/sun/beans/decoder/ClassElementHandler.java.i
 data/src/share/demo/jfc/Notepad/resources/Notepad_fr.properties.i
 data/src/share/classes/sun/io/ByteToCharCp949.java.i
 data/test/sun/rmi/transport/tcp/blockAccept/TestIface.java.i
@@ -9027,54 +8770,55 @@ data/src/solaris/classes/sun/net/sdp/SdpProvider.java.i
 data/src/share/classes/com/sun/jdi/event/Event.java.i
 data/test/javax/sound/midi/Gervill/RiffReaderWriter/ReadUnsignedByte.java.i
 data/test/javax/crypto/spec/RC5ParameterSpec/InvalidIV.java.i
-data/test/java/beans/PropertyEditor/TestFloatTypeJava.java.i
-data/test/java/lang/ThreadGroup/Daemon.java.i
+data/src/share/classes/java/nio/file/attribute/PosixFilePermissions.java.i
+data/test/javax/management/openmbean/NullConstructorParamsTest.java.i
+data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties.i
 data/src/share/classes/sun/io/ByteToCharCp838.java.i
 data/test/javax/rmi/ssl/keystore.i
 data/src/share/native/java/lang/fdlibm/src/w_j0.c.i
 data/src/share/classes/sun/security/krb5/internal/crypto/DesMacKCksumType.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CheckMethods.java.i
 data/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java.i
-data/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java.i
+data/src/share/classes/java/nio/X-Buffer-bin.java.i
+data/src/share/classes/sun/util/xml/XMLUtils.java.i
 data/src/share/classes/java/security/Timestamp.java.i
+data/test/java/security/Policy/GetPermissions/JarURL.policy.i
 data/src/share/classes/sun/nio/cs/ext/ISO2022_CN_GB.java.i
 data/src/share/classes/javax/swing/SizeRequirements.java.i
 data/src/share/classes/sun/management/HotspotThread.java.i
 data/make/modules/image.rest.ls.i
 data/src/linux/doc/man/ja/rmiregistry.1.i
-data/test/java/rmi/activation/Activatable/nonExistentActivatable/NonExistentActivatable.java.i
-data/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java.i
+data/src/solaris/classes/sun/misc/FileURLMapper.java.i
 data/make/tools/src/build/tools/jdwpgen/Context.java.i
 data/src/share/native/sun/java2d/loops/ThreeByteBgr.h.i
-data/src/windows/classes/com/sun/tools/jdi/SharedMemoryTransportService.java.i
-data/make/tools/reorder/tests/Hello.java.i
-data/test/javax/swing/JFileChooser/4252173/bug4252173.java.i
-data/test/com/sun/jdi/sde/MangleTest.java.i
+data/src/share/demo/applets/WireFrame/example4.html.i
+data/test/java/io/BufferedInputStream/CountUpdate.java.i
+data/src/solaris/classes/sun/nio/ch/SctpChannelImpl.java.i
+data/make/java/beans/Makefile.i
 data/src/share/classes/sun/security/jgss/GSSCredentialImpl.java.i
+data/src/share/classes/javax/swing/tree/AbstractLayoutCache.java.i
 data/make/sun/awt/mapfile-vers-linux.i
 data/src/share/classes/java/util/prefs/AbstractPreferences.java.i
 data/src/share/classes/com/sun/tools/jdi/ValueImpl.java.i
-data/src/share/native/sun/font/layout/ThaiLayoutEngine.cpp.i
+data/test/javax/sound/midi/Gervill/ModelByteBuffer/SubbufferLongLongBoolean.java.i
 data/src/share/classes/sun/security/x509/DeltaCRLIndicatorExtension.java.i
+data/src/share/classes/javax/swing/text/html/OptionComboBoxModel.java.i
 data/make/tools/CharsetMapping/IBM1006.map.i
 data/test/java/lang/instrument/appendToClassLoaderSearch/B.2.i
-data/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java.i
-data/test/java/rmi/activation/Activatable/createPrivateActivable/rmid.security.policy.i
+data/test/java/util/ResourceBundle/ReferencesTestBundle.properties.i
 data/src/share/classes/sun/net/www/protocol/https/HttpsURLConnectionImpl.java.i
 data/src/share/classes/sun/java2d/pipe/hw/AccelDeviceEventNotifier.java.i
 data/src/share/classes/javax/swing/plaf/metal/icons/ocean/directory.gif.i
 data/src/share/classes/sun/text/normalizer/UnicodeSet.java.i
-data/src/solaris/classes/sun/awt/X11/XAtom.java.i
 data/src/windows/native/sun/jkernel/kernel_pt_BR.rc.i
-data/src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java.i
-data/src/share/classes/java/awt/geom/FlatteningPathIterator.java.i
+data/test/java/lang/Math/HyperbolicTests.java.i
 data/test/javax/management/remote/mandatory/version/JMXSpecVersionTest.java.i
-data/test/java/nio/channels/AsyncCloseAndInterrupt.java.i
+data/src/share/classes/com/sun/media/sound/DLSSample.java.i
+data/src/share/classes/java/security/SecureClassLoader.java.i
 data/make/tools/CharsetMapping/IBM285.map.i
 data/test/java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java.i
-data/src/share/classes/javax/management/event/RMIPushServer.java.i
+data/test/java/util/Collections/CheckedMapBash.java.i
 data/make/tools/src/build/tools/jdwpgen/ConstantNode.java.i
-data/test/java/awt/Graphics/LCDTextAndGraphicsState.java.i
 data/test/java/lang/instrument/NullGetObjectSizeTest.java.i
 data/src/share/classes/java/rmi/server/package.html.i
 data/test/java/awt/GraphicsEnvironment/LoadLock/GE_init5.java.i
@@ -9084,7 +8828,7 @@ data/src/share/classes/sun/beans/editors/BooleanEditor.java.i
 data/test/java/awt/Graphics2D/RenderClipTest/6766342.tests.i
 data/test/java/nio/BufferPoolMXBean/Basic.java.i
 data/test/java/awt/font/GlyphVector/VisualBounds.java.i
-data/src/solaris/classes/java/lang/ProcessEnvironment.java.i
+data/test/javax/sound/midi/Gervill/ModelStandardTransform/SetPolarity.java.i
 data/src/share/classes/com/sun/nio/sctp/SctpSocketOption.java.i
 data/test/java/util/ResourceBundle/Test4314141A_de.properties.i
 data/make/tools/swing-beans/beaninfo/images/JSliderMono16.gif.i
@@ -9093,24 +8837,23 @@ data/src/share/classes/sun/dyn/MethodHandleNatives.java.i
 data/src/share/classes/javax/swing/doc-files/JLayeredPane-1.gif.i
 data/src/share/native/sun/font/layout/ScriptAndLanguage.cpp.i
 data/src/share/classes/com/sun/media/sound/AutoConnectSequencer.java.i
-data/test/sun/security/tools/keytool/emptysubject.sh.i
 data/src/share/classes/javax/swing/doc-files/JRootPane-1.gif.i
 data/test/javax/swing/JButton/6604281/bug6604281.java.i
-data/test/sun/rmi/transport/tcp/blockAccept/BlockAcceptTest.java.i
+data/src/share/classes/sun/management/counter/StringCounter.java.i
 data/src/share/classes/sun/nio/cs/IBM874.java.i
-data/test/sun/security/pkcs11/Provider/Login.sh.i
-data/src/share/classes/sun/java2d/cmm/ProfileActivator.java.i
+data/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMCommunities.java.i
+data/test/java/lang/ClassLoader/findSystemClass/java/lang/Object.class.i
 data/src/share/classes/sun/management/snmp/jvminstr/JVM_MANAGEMENT_MIB_IMPL.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/MBeanSupport.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/icons/image-delayed.png.i
-data/test/java/security/Policy/GetInstance/GetInstanceSecurity.policy.i
-data/test/java/nio/channels/SocketChannel/BufferSize.java.i
+data/src/share/classes/java/lang/reflect/Executable.java.i
+data/test/java/security/IdentityScope/NoDefaultSystemScope.java.i
 data/src/share/classes/javax/xml/crypto/dsig/keyinfo/KeyName.java.i
 data/src/share/classes/com/sun/media/sound/SoftTuning.java.i
-data/src/share/classes/javax/swing/JRootPane.java.i
-data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest06_ok.access.in.i
+data/test/javax/swing/JColorChooser/Test4222508.html.i
 data/src/share/classes/sun/security/ssl/SSLSocketImpl.java.i
-data/src/share/native/sun/font/layout/GlyphIterator.h.i
+data/src/windows/classes/sun/awt/windows/WMouseDragGestureRecognizer.java.i
 data/src/share/demo/jfc/Metalworks/resources/HelpFiles/credits.html.i
 data/src/share/classes/sun/security/jgss/GSSManagerImpl.java.i
 data/src/share/classes/sun/reflect/DelegatingConstructorAccessorImpl.java.i
@@ -9118,166 +8861,163 @@ data/src/share/classes/java/awt/image/DataBufferUShort.java.i
 data/test/java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java.i
 data/src/share/sample/jmx/jmx-scandir/docfiles/connect-local.jpg.i
 data/src/windows/classes/sun/nio/fs/DefaultFileSystemProvider.java.i
-data/src/share/classes/sun/tools/jconsole/ClassTab.java.i
-data/test/java/util/Arrays/Sorting.java.i
+data/src/share/classes/com/sun/jdi/request/package.html.i
+data/make/sun/management/Makefile.i
 data/src/share/native/sun/font/layout/Features.cpp.i
 data/test/java/lang/System/finalization/FinExit.sh.i
-data/src/share/classes/sun/security/ssl/ClientHandshaker.java.i
+data/src/share/native/sun/font/layout/SimpleArrayProcessor.cpp.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/icons/TreeClosed.gif.i
-data/make/tools/src/build/tools/automulti/TestALFLookAndFeel.java.i
+data/test/java/net/Socket/asyncClose/BrokenPipe.java.i
+data/test/java/nio/channels/SocketChannel/Stream.java.i
 data/src/share/classes/java/net/ResponseCache.java.i
 data/src/share/classes/java/awt/SplashScreen.java.i
+data/test/java/util/concurrent/ConcurrentQueues/RemovePollRace.java.i
+data/src/share/classes/javax/swing/DelegatingDefaultFocusManager.java.i
 data/make/java/hpi/native/reorder-i586.i
 data/test/ModulesProblemList.txt.i
-data/test/javax/swing/JDialog/6639507/bug6639507.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/PerfDataBuffer.java.i
 data/test/java/lang/management/ThreadMXBean/ThreadUserTime.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsInternalFrameTitlePane.java.i
-data/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh.i
-data/test/sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java.i
-data/test/java/io/Serializable/classDescFlagConflict/Read.java.i
 data/src/windows/native/sun/windows/awt_Debug.cpp.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetAvailableInstruments.java.i
-data/test/sun/security/util/BitArray/NamedBitList.java.i
 data/src/share/classes/java/lang/management/MemoryUsage.java.i
-data/test/sun/rmi/rmic/covariantReturns/G5Impl.java.i
 data/src/share/classes/sun/io/ByteToCharCp942.java.i
 data/test/java/nio/channels/SocketChannel/FinishConnect.java.i
 data/test/java/util/PluggableLocale/providersrc/java.text.spi.BreakIteratorProvider.i
 data/test/javax/xml/crypto/dsig/data/certs/macha.crt.i
 data/src/share/classes/java/util/zip/ZipEntry.java.i
 data/src/share/back/stepControl.c.i
-data/test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_mix_mono.java.i
+data/test/sun/security/pkcs11/KeyStore/Solaris.sh.i
+data/src/share/classes/javax/swing/FocusManager.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties.i
-data/test/sun/security/provider/SeedGenerator/SeedGeneratorChoice.java.i
 data/test/java/io/File/CreateNewFile.java.i
 data/src/share/classes/sun/io/CharToByteSingleByte.java.i
+data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/NullTest.java.i
 data/src/share/classes/javax/security/auth/DestroyFailedException.java.i
 data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest10_ok.ssl.in.i
-data/src/share/classes/java/io/FileSystem.java.i
-data/src/share/classes/sun/security/x509/CertificateExtensions.java.i
+data/src/share/classes/sun/security/krb5/internal/KRBSafe.java.i
+data/src/share/classes/java/net/PasswordAuthentication.java.i
+data/src/solaris/native/sun/nio/ch/Net.c.i
 data/src/share/classes/com/sun/media/sound/WaveFileWriter.java.i
-data/src/share/classes/sun/security/krb5/Confounder.java.i
+data/test/java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html.i
 data/src/share/classes/javax/swing/tree/RowMapper.java.i
+data/src/share/classes/sun/security/krb5/KdcComm.java.i
 data/src/share/native/sun/awt/medialib/mlib_image_proto.h.i
-data/src/windows/native/sun/java2d/d3d/D3DRenderQueue.cpp.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/CipherSuite/SSL_NULL.java.i
-data/src/solaris/native/sun/java2d/loops/vis_ByteGray.c.i
+data/src/share/classes/javax/swing/plaf/metal/icons/ocean/error.png.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmMemoryMeta.java.i
+data/src/share/classes/com/sun/security/auth/PolicyParser.java.i
 data/test/sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java.i
 data/src/share/native/sun/java2d/loops/UshortGray.h.i
 data/src/share/native/java/util/zip/zlib-1.1.3/zconf.h.i
-data/make/netbeans/j2se/nbproject/project.xml.i
+data/make/common/shared/Defs-java.gmk.i
 data/src/share/classes/java/awt/AWTError.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/internal/AbbreviationMap.java.i
 data/make/tools/swing-beans/beaninfo/images/JOptionPaneMono16.gif.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/exceptions/XMLSecurityException.java.i
+data/test/com/sun/jdi/PopAsynchronousTest.java.i
 data/src/share/classes/java/awt/color/ProfileDataException.java.i
-data/src/solaris/doc/sun/man/man1/ja/keytool.1.i
+data/make/tools/src/build/tools/jdwpgen/StringObjectTypeNode.java.i
 data/make/com/sun/security/auth/module/Makefile.i
 data/src/share/classes/javax/swing/colorchooser/DiagramComponent.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIState.java.i
+data/test/java/lang/StringBuffer/Capacity.java.i
 data/src/windows/native/sun/java2d/d3d/D3DMaskFill.cpp.i
 data/src/share/classes/javax/security/auth/login/ConfigurationSpi.java.i
 data/src/share/classes/javax/management/MatchQueryExp.java.i
 data/src/share/classes/sun/tools/jstat/Expression.java.i
 data/src/share/classes/java/util/prefs/XmlSupport.java.i
 data/src/share/classes/javax/management/DynamicWrapperMBean.java.i
-data/src/share/classes/sun/jvmstat/monitor/Variability.java.i
+data/test/java/security/KeyStore/DefaultEntryType.java.i
 data/test/java/lang/ClassLoader/findSystemClass/Loadee.classfile.i
-data/make/tools/src/build/tools/jdwpgen/Main.java.i
+data/test/java/io/FileDescriptor/FileChannelFDTest.java.i
 data/src/share/sample/nio/server/Dispatcher.java.i
 data/make/THIRD_PARTY_README.i
 data/src/share/classes/sun/misc/ConditionLock.java.i
 data/test/javax/management/eventService/ListenerTest.java.i
 data/test/java/lang/instrument/ATransformerManagementTestCase.java.i
 data/src/solaris/classes/sun/awt/X11/XMSelectionListener.java.i
-data/make/tools/swing-beans/beaninfo/images/JPopupMenuColor16.gif.i
+data/src/share/native/sun/awt/image/jpeg/jdhuff.c.i
 data/test/com/sun/security/auth/login/ConfigFile/EmptyOption.config.i
-data/src/share/classes/javax/swing/doc-files/groupLayout.1.gif.i
-data/make/tools/src/build/tools/jdwpgen/UntaggedValueTypeNode.java.i
+data/src/share/classes/java/awt/CheckboxGroup.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmMemPoolEntryImpl.java.i
 data/src/share/classes/java/util/concurrent/BrokenBarrierException.java.i
 data/src/share/classes/sun/tools/serialver/serialver_ja.properties.i
-data/test/java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java.i
 data/src/share/classes/sun/tools/jstat/AscendingMonitorComparator.java.i
 data/test/java/net/URLClassLoader/AddURLTest.java.i
-data/src/share/classes/sun/print/PageableDoc.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SelfIssuedCert.java.i
-data/test/java/lang/reflect/Method/invoke/IllegalAccessInInvoke.java.i
+data/src/share/classes/sun/tools/jar/resources/jar_pt_BR.properties.i
 data/src/share/native/sun/font/layout/GlyphIterator.cpp.i
 data/test/java/lang/management/MemoryMXBean/MemoryManagementSerialGC.sh.i
 data/test/sun/management/jmxremote/RunTest.sh.i
 data/test/sun/security/tools/policytool/OpenPolicy.html.i
 data/test/sun/security/provider/PolicyParser/ExtDirsDefaultPolicy.java.i
+data/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c.i
 data/src/share/bin/wildcard.c.i
-data/src/share/classes/com/sun/security/sasl/digest/SecurityCtx.java.i
+data/src/share/classes/sun/text/resources/FormatData_mt.java.i
 data/src/share/native/java/lang/fdlibm/src/e_j1.c.i
 data/src/share/classes/sun/security/ssl/InputRecord.java.i
-data/src/share/classes/sun/java2d/pisces/LineSink.java.i
+data/test/java/beans/PropertyEditor/Test6397609.java.i
 data/src/share/demo/applets/DitherTest/example1.html.i
 data/test/java/util/IdentityHashMap/DistinctEntrySetElements.java.i
 data/src/share/classes/com/sun/security/auth/module/UnixLoginModule.java.i
-data/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java.i
-data/src/windows/native/sun/windows/alloc.h.i
+data/test/sun/tools/jstat/jstatOptions1.sh.i
+data/test/java/security/Policy/GetInstance/GetInstanceSecurity.policy.i
 data/test/javax/management/notification/NotifExecutorTest.java.i
 data/test/sun/tools/jconsole/ImmutableResourceTest.java.i
 data/src/windows/classes/sun/print/Win32MediaTray.java.i
 data/src/share/classes/java/security/interfaces/ECPublicKey.java.i
-data/test/sun/security/provider/PolicyFile/getinstance/GetInstance.policy.i
 data/src/share/classes/sun/security/krb5/internal/crypto/RsaMd5CksumType.java.i
 data/src/solaris/native/sun/awt/awt_GraphicsEnv.c.i
 data/src/share/classes/java/awt/GraphicsConfiguration.java.i
 data/src/share/classes/sun/tools/java/Constants.java.i
-data/test/javax/management/loading/MLetCLR/policy.i
-data/src/share/classes/sun/security/krb5/internal/UDPClient.java.i
+data/test/java/util/Locale/serialized/java6locale_iw_IL.i
+data/test/java/lang/management/ManagementFactory/GetObjectName.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/ServerThread.java.i
 data/src/share/native/sun/awt/debug/debug_assert.h.i
 data/src/share/classes/javax/management/remote/JMXAuthenticator.java.i
 data/src/share/classes/java/util/DuplicateFormatFlagsException.java.i
 data/test/sun/security/util/DerValue/NegInt.java.i
 data/src/share/classes/sun/net/www/protocol/http/NTLMAuthenticationProxy.java.i
+data/test/java/io/InputStreamReader/One.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/Bytes.java.i
-data/src/share/classes/sun/io/CharToByteISCII91.java.i
-data/test/java/awt/print/PrinterJob/ExceptionTest.java.i
+data/src/solaris/native/sun/security/smartcardio/MUSCLE/winscard.h.i
+data/src/solaris/native/sun/java2d/x11/X11TextRenderer_md.c.i
 data/test/javax/management/Introspector/AnnotatedMBeanTest.java.i
 data/src/share/classes/java/awt/ContainerOrderFocusTraversalPolicy.java.i
 data/src/share/classes/sun/io/CharToByteISO8859_8.java.i
 data/src/share/classes/sun/rmi/transport/Connection.java.i
-data/src/windows/native/sun/windows/awt_Clipboard.h.i
+data/test/sun/nio/cs/OLD/DBCS_ONLY_IBM_EBCDIC_Decoder.java.i
 data/src/share/native/sun/java2d/opengl/OGLVertexCache.c.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsIconFactory.java.i
-data/test/javax/script/GetInterfaceTest.java.i
+data/src/share/classes/java/io/ExpiringCache.java.i
 data/src/share/classes/sun/audio/AudioTranslatorStream.java.i
 data/test/java/util/BitSet/And.java.i
 data/test/sun/net/InetAddress/nameservice/dns/Lookup.java.i
 data/test/javax/management/remote/mandatory/passwordAccessFile/PasswordAccessFileTest.java.i
-data/src/share/classes/sun/security/krb5/internal/TransitedEncoding.java.i
+data/src/share/native/sun/java2d/cmm/lcms/cmsxform.c.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifTreeCellRenderer.java.i
+data/src/share/classes/java/rmi/server/RemoteRef.java.i
 data/src/solaris/native/sun/nio/ch/InheritedChannel.c.i
 data/src/share/classes/sun/security/krb5/internal/KdcErrException.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/gzio.c.i
-data/src/share/classes/javax/swing/plaf/metal/icons/ocean/close-pressed.gif.i
+data/src/share/javavm/include/opcodes.list.i
 data/test/java/lang/instrument/InstrumentationHandoff.java.i
-data/test/java/beans/Introspector/Test6194788.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/CertsInFilesystemDirectoryResolver.java.i
 data/test/java/lang/reflect/ReflectPermission/Exceptions.java.i
 data/src/share/classes/com/sun/jndi/cosnaming/CNBindingEnumeration.java.i
-data/test/java/rmi/transport/readTimeout/ReadTimeoutTest.java.i
 data/test/org/openjdk/jigsaw/preinstall.sh.i
 data/test/com/sun/servicetag/InvalidRegistrationData.java.i
 data/src/share/classes/sun/tools/tree/FloatExpression.java.i
 data/src/share/classes/com/sun/jdi/event/MonitorContendedEnteredEvent.java.i
-data/src/share/classes/javax/management/remote/JMXServiceURL.java.i
+data/src/solaris/classes/sun/awt/X11/XWindowPeer.java.i
+data/src/share/classes/sun/util/resources/CalendarData_sr_Latn_RS.properties.i
 data/src/share/classes/java/lang/instrument/UnmodifiableClassException.java.i
 data/src/share/classes/sun/io/CharToByteCp949.java.i
-data/test/java/lang/management/ManagementFactory/MXBeanProxyTest.java.i
-data/test/javax/xml/crypto/dsig/SignatureValidator.java.i
-data/src/solaris/native/sun/awt/VDrawingAreaP.h.i
+data/src/share/classes/java/net/SdpSocketImpl.java.i
+data/test/tools/launcher/Makefile.SolarisRunpath.i
 data/src/share/classes/sun/text/resources/FormatData_ar_LB.java.i
 data/src/share/classes/sun/io/ByteToCharCp284.java.i
 data/src/share/classes/com/sun/jndi/dns/Resolver.java.i
 data/src/share/classes/sun/security/x509/BasicConstraintsExtension.java.i
 data/src/share/classes/com/sun/jdi/JDIPermission.java.i
-data/src/share/classes/javax/print/attribute/standard/OrientationRequested.java.i
+data/test/java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifScrollBarButton.java.i
 data/src/share/native/common/opcodes.in_out.i
 data/src/share/classes/com/sun/jndi/ldap/BerDecoder.java.i
@@ -9285,82 +9025,84 @@ data/src/solaris/native/sun/awt/awt_xembed.c.i
 data/src/share/classes/java/io/FilterWriter.java.i
 data/src/share/classes/com/sun/jdi/ObjectReference.java.i
 data/src/share/classes/com/sun/media/sound/FFT.java.i
-data/src/share/native/sun/awt/splashscreen/splashscreen_png.c.i
+data/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java.i
 data/src/share/classes/javax/swing/CellEditor.java.i
+data/test/java/security/Policy/GetPermissions/JarURL.java.i
 data/test/java/lang/instrument/AppendToClassPathTest.java.i
 data/src/share/classes/java/nio/file/Files.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ProviderTest.java.i
-data/src/share/classes/javax/swing/plaf/nimbus/NimbusStyle.java.i
-data/src/share/classes/sun/net/www/content/image/png.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/XPath2FilterContainer04.java.i
+data/src/share/classes/sun/print/PageableDoc.java.i
+data/src/share/classes/javax/accessibility/AccessibleExtendedTable.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/icons/Warn.gif.i
 data/make/com/sun/jmx/Makefile.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMInformItem.java.i
 data/src/share/classes/sun/misc/JavaNioAccess.java.i
 data/test/javax/management/query/QueryExpStringTest.java.i
-data/test/javax/security/auth/login/LoginContext/DefaultHandlerImpl.java.i
 data/src/share/classes/java/security/spec/EncodedKeySpec.java.i
 data/src/share/classes/sun/misc/CharacterDecoder.java.i
 data/test/javax/management/Introspector/AnnotationSecurityTest.policy.i
 data/src/share/instrument/JavaExceptions.c.i
 data/src/share/classes/sun/audio/AudioSecurityAction.java.i
 data/src/share/classes/com/sun/security/sasl/gsskerb/FactoryImpl.java.i
-data/test/java/beans/Introspector/4520754/WombatBeanInfo.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java.i
 data/test/com/sun/jdi/JdbMethodExitTest.sh.i
 data/test/java/net/Socket/TestTcpNoDelay.java.i
 data/src/share/classes/sun/beans/editors/DoubleEditor.java.i
 data/src/share/classes/java/security/cert/CertificateFactory.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/JDIEventSource.java.i
-data/src/windows/native/sun/java2d/d3d/D3DTextRenderer.h.i
+data/make/tools/swing-beans/beaninfo/images/JPanelMono16.gif.i
 data/src/share/classes/java/security/cert/CertificateNotYetValidException.java.i
+data/src/share/demo/nbproject/scripting/jconsole-plugin/nbproject/netbeans-targets.xml.i
 data/test/java/rmi/activation/Activatable/restartCrashedService/RestartCrashedService_Stub.java.i
-data/test/java/rmi/Naming/RmiIsNoScheme.java.i
+data/test/sun/security/tools/policytool/ChangeUI.html.i
 data/src/share/classes/java/nio/file/attribute/UserPrincipalLookupService.java.i
-data/src/share/classes/javax/naming/NameAlreadyBoundException.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libnspr4.so.i
 data/src/share/classes/com/sun/jmx/snmp/daemon/SnmpAdaptorServer.java.i
 data/test/java/rmi/server/ObjID/randomIDs/RandomIDs.java.i
 data/src/share/classes/sun/security/provider/certpath/OCSPRequest.java.i
-data/src/share/classes/sun/reflect/UnsafeQualifiedStaticBooleanFieldAccessorImpl.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_ga.properties.i
 data/make/javax/swing/FILES.gmk.i
-data/test/java/io/Serializable/subclass/Test.java.i
-data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipInfo.java.i
+data/test/javax/management/query/QueryMatchTest.java.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetMaxTransmitters.java.i
 data/test/java/io/Serializable/6559775/SerialVictim.java.i
 data/src/share/classes/sun/io/CharToByteCp871.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM1140.java.i
+data/src/share/classes/sun/io/CharToByteCp937.java.i
 data/src/share/sample/vm/jvm-clr/README.txt.i
 data/src/share/native/com/sun/media/sound/MidiOutDevice.c.i
 data/test/java/lang/instrument/RedefineClassesTests.java.i
 data/src/windows/native/sun/windows/awt_IconCursor.cpp.i
 data/src/share/classes/javax/swing/LayoutComparator.java.i
-data/src/share/classes/java/awt/event/ActionListener.java.i
+data/test/java/lang/management/ThreadMXBean/MyOwnSynchronizer.java.i
+data/src/share/classes/com/sun/tools/jdi/StackFrameImpl.java.i
 data/test/java/nio/channels/AsynchronousChannelGroup/run_any_task.sh.i
 data/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java.i
-data/test/java/util/Calendar/Bug6645263.java.i
-data/src/share/classes/sun/tools/jconsole/inspector/IconManager.java.i
-data/test/java/beans/PropertyEditor/TestColorClassValue.java.i
-data/test/com/sun/servicetag/SystemRegistryTest.java.i
+data/test/java/nio/channels/Selector/OpRead.java.i
+data/src/share/classes/java/lang/module/ModuleNotPresentException.java.i
+data/test/java/awt/font/TextLayout/UnderlinePositionTest.java.i
 data/src/share/classes/java/awt/event/MouseMotionListener.java.i
-data/src/solaris/transport/socket/socket_md.h.i
 data/src/share/classes/javax/imageio/spi/ImageInputStreamSpi.java.i
 data/test/java/rmi/transport/httpSocket/security.policy.i
 data/src/share/classes/java/awt/geom/RectIterator.java.i
 data/test/demo/jvmti/waiters/WaitersTest.java.i
 data/src/share/classes/com/sun/jndi/toolkit/ctx/HeadTail.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageAffine_BL_F32.c.i
+data/src/share/classes/sun/tools/jconsole/resources/connected16.png.i
 data/src/share/classes/java/util/PriorityQueue.java.i
 data/test/sun/misc/Encode/Encode.java.i
 data/test/sun/security/provider/PolicyParser/p001.policy.i
-data/src/share/classes/sun/security/x509/X509CertInfo.java.i
+data/test/sun/security/provider/PolicyFile/Alias.policy.i
 data/src/share/classes/java/awt/image/SampleModel.java.i
 data/test/java/rmi/reliability/benchmark/bench/BenchInfo.java.i
 data/src/solaris/native/sun/awt/awt_Insets.h.i
-data/src/share/classes/sun/management/snmp/util/SnmpNamedListTableCache.java.i
+data/src/solaris/classes/sun/awt/X11/XContentWindow.java.i
 data/src/share/classes/javax/net/ssl/TrustManagerFactorySpi.java.i
 data/src/windows/classes/sun/security/mscapi/JarVerifier.java.i
-data/src/share/native/sun/awt/libpng/README.i
+data/src/share/native/sun/awt/medialib/mlib_ImageConvCopyEdge_Bit.c.i
 data/src/share/native/sun/awt/medialib/mlib_ImageConv_F32nw.c.i
 data/src/share/classes/java/security/spec/PSSParameterSpec.java.i
 data/test/javax/management/openmbean/CompositeDataStringTest.java.i
+data/src/share/classes/javax/print/attribute/PrintJobAttribute.java.i
 data/src/share/classes/sun/tools/tree/CommaExpression.java.i
 data/test/java/beans/PropertyEditor/TestFloatClassJava.java.i
 data/src/share/classes/javax/swing/plaf/metal/sounds/FrameRestoreDown.wav.i
@@ -9372,16 +9114,19 @@ data/test/java/rmi/activation/Activatable/unregisterInactive/rmid.security.polic
 data/src/share/classes/com/sun/tools/jdi/JDWPException.java.i
 data/test/java/util/concurrent/ThreadPoolExecutor/Custom.java.i
 data/test/javax/swing/JColorChooser/Test4177735.java.i
-data/src/windows/native/java/util/TimeZone_md.h.i
+data/test/sun/security/provider/MessageDigest/TestSHAClone.java.i
 data/src/linux/doc/man/ja/servertool.1.i
-data/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java.i
+data/src/solaris/classes/sun/awt/XSettings.java.i
 data/test/java/util/zip/ZipFile/input.zip.i
+data/src/share/classes/sun/security/action/GetLongAction.java.i
+data/src/share/classes/com/sun/jmx/event/LeaseManager.java.i
 data/src/share/classes/com/sun/jmx/snmp/mpm/SnmpMsgTranslator.java.i
 data/src/solaris/hpi/native_threads/src/monitor_md.c.i
 data/make/jpda/front/Makefile.i
 data/src/share/classes/java/io/ObjectInputValidation.java.i
 data/src/share/classes/sun/io/ByteToCharMS950_HKSCS.java.i
 data/test/java/lang/String/ToUpperCase.java.i
+data/src/share/classes/sun/net/www/http/HttpClient.java.i
 data/src/share/classes/javax/accessibility/AccessibleText.java.i
 data/src/windows/native/sun/net/www/protocol/http/ntlm/NTLMAuthSequence.c.i
 data/src/share/native/java/util/zip/zlib-1.1.3/ChangeLog.i
@@ -9390,10 +9135,9 @@ data/src/share/classes/javax/swing/DefaultListSelectionModel.java.i
 data/src/share/classes/sun/text/resources/FormatData_en_AU.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_ko.properties.i
 data/test/sun/security/krb5/auto/TwoPrinces.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsPopupMenuSeparatorUI.java.i
+data/src/windows/native/sun/jkernel/resource.h.i
 data/src/share/classes/javax/swing/text/StringContent.java.i
 data/test/java/io/PipedReader/ReadToArray.java.i
-data/test/javax/sound/midi/Gervill/SoftChannel/ProgramAndBankChange.java.i
 data/test/javax/xml/crypto/dsig/data/signature-enveloping-hmac-sha1-40.xml.i
 data/src/share/classes/com/sun/tools/hat/internal/oql/OQLException.java.i
 data/src/share/classes/com/sun/jarsigner/package.html.i
@@ -9405,59 +9149,58 @@ data/src/share/classes/java/nio/exceptions.i
 data/src/share/native/sun/awt/medialib/mlib_image_get.h.i
 data/test/java/lang/instrument/ilib/Options.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_ms.properties.i
+data/src/share/demo/management/FullThreadDump/ThreadMonitor.java.i
 data/src/share/classes/sun/io/CharToByteMacGreek.java.i
 data/src/solaris/native/java/util/logging.c.i
 data/make/sun/applet/Makefile.i
-data/src/share/classes/sun/security/ssl/Debug.java.i
+data/test/java/util/Calendar/Bug6645263.java.i
 data/src/share/classes/javax/swing/plaf/SpinnerUI.java.i
-data/src/share/classes/sun/io/ByteToCharBig5_HKSCS.java.i
+data/src/solaris/classes/sun/awt/motif/MEmbeddedFrame.java.i
+data/test/java/beans/XMLEncoder/javax_swing_plaf_FontUIResource.java.i
 data/src/share/classes/java/util/TreeSet.java.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/EchoImpl.java.i
-data/src/solaris/native/sun/awt/color.h.i
-data/src/share/classes/com/oracle/net/Sdp.java.i
+data/src/share/demo/scripting/jconsole-plugin/src/META-INF/services/com.sun.tools.jconsole.JConsolePlugin.i
+data/src/share/classes/sun/reflect/FieldInfo.java.i
 data/src/share/demo/nbproject/jfc/Notepad/nbproject/netbeans-targets.xml.i
 data/test/java/text/Bidi/BidiBug.java.i
 data/test/java/net/URI/Test.java.i
 data/src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java.i
-data/test/java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java.i
+data/src/share/classes/sun/tools/jconsole/OverviewPanel.java.i
 data/test/java/lang/management/ThreadMXBean/DisableTest.java.i
 data/test/sun/security/pkcs11/tls/TestPremaster.java.i
 data/test/sun/nio/ch/SelProvider.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/StackFrame.java.i
 data/src/share/classes/sun/net/httpserver/TimeSource.java.i
 data/src/share/classes/sun/security/krb5/internal/EncKDCRepPart.java.i
-data/test/sun/tools/jhat/minimal.bin.i
+data/src/solaris/native/sun/awt/initIDs.c.i
 data/src/share/classes/javax/swing/plaf/multi/MultiListUI.java.i
 data/test/javax/management/remote/mandatory/passwordAuthenticator/SimpleStandard.java.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/UseCustomSocketFactory.java.i
 data/src/share/classes/com/sun/tools/jdi/ObjectReferenceImpl.java.i
-data/test/com/sun/jdi/Java_gTest.java.i
+data/test/java/beans/XMLDecoder/spec/TestChar.java.i
 data/make/tools/src/build/tools/jdwpgen/RootNode.java.i
 data/test/java/beans/XMLDecoder/spec/TestByte.java.i
-data/src/share/demo/management/JTop/JTop.java.i
-data/src/share/classes/sun/misc/UUEncoder.java.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java.i
-data/test/sun/security/pkcs11/ec/ReadPKCS12.java.i
-data/src/share/classes/com/sun/jmx/mbeanserver/MXBeanMappingFactory.java.i
+data/src/share/classes/sun/misc/VMNotification.java.i
+data/src/solaris/classes/sun/awt/motif/java.oblique-fonts.dir.i
+data/src/share/classes/sun/text/resources/CollationData_es.java.i
+data/test/sun/security/krb5/auto/LoginModuleOptions.java.i
 data/make/tools/swing-beans/beaninfo/images/JSeparatorMono16.gif.i
-data/test/sun/security/pkcs11/KeyGenerator/DESParity.java.i
+data/make/sun/jawt/mapfile-vers.i
 data/src/share/classes/com/sun/tools/example/debug/event/ExceptionEventSet.java.i
-data/test/java/net/URLConnection/xml/xml1.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMAclBlock.java.i
+data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/CompressInputStream.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringConstantMonitor.java.i
-data/src/share/classes/com/sun/imageio/plugins/jpeg/SOFMarkerSegment.java.i
+data/test/java/awt/Graphics/LCDTextAndGraphicsState.java.i
 data/src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java.i
 data/src/share/classes/java/lang/NumberFormatException.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_en_MT.properties.i
-data/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java.i
+data/test/com/sun/crypto/provider/TLS/TestPremaster.java.i
 data/src/share/classes/sun/io/CharToByteCp1255.java.i
-data/test/java/util/ResourceBundle/Bug4177489_Resource.java.i
+data/test/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java.i
 data/test/java/io/StreamTokenizer/NullConstruct.java.i
 data/test/javax/management/Introspector/LegacyIntrospectorTest.java.i
-data/test/sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java.i
 data/src/share/classes/javax/rmi/ssl/SslRMIServerSocketFactory.java.i
-data/src/share/classes/sun/tools/tree/ShiftLeftExpression.java.i
-data/src/share/classes/javax/swing/DebugGraphicsFilter.java.i
+data/src/share/classes/sun/io/CharToByteSJIS.java.i
 data/src/share/classes/sun/misc/CEStreamExhausted.java.i
 data/make/netbeans/common/sample-view.ent.i
 data/test/com/sun/jdi/TargetListener.java.i
@@ -9465,27 +9208,24 @@ data/src/share/classes/sun/util/resources/OpenListResourceBundle.java.i
 data/test/sun/nio/cs/TestIllegalSJIS.java.i
 data/THIRD_PARTY_README.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpAckPdu.java.i
-data/src/solaris/native/sun/awt/awt_PopupMenu.h.i
+data/test/java/util/ResourceBundle/Control/StressOut_zh_CN.properties.i
+data/src/share/classes/sun/swing/UIClientPropertyKey.java.i
 data/src/share/classes/java/lang/reflect/WildcardType.java.i
-data/test/java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java.i
 data/test/sun/security/tools/jarsigner/a%b/percent.keystore.i
 data/src/share/native/sun/font/layout/IndicRearrangementProcessor.h.i
 data/src/share/classes/java/awt/dnd/DragSourceContext.java.i
 data/src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiRules.java.i
-data/src/share/classes/sun/security/provider/certpath/KeyChecker.java.i
 data/make/jpda/tty/Makefile.i
-data/test/java/beans/Beans/Test4067824.java.i
+data/test/demo/jvmti/gctest/BigHello.java.i
 data/src/linux/doc/man/wsimport.1.i
 data/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java.i
 data/src/share/classes/java/text/RBCollationTables.java.i
 data/test/java/awt/GraphicsEnvironment/LoadLock/GE_init1.java.i
 data/src/share/demo/java2d/J2DBench/resources/textdata/japanese.ut8.txt.i
 data/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java.i
-data/test/java/util/LinkedHashMap/EmptyMapIterator.java.i
-data/test/javax/management/MBeanServer/MBeanServerNotificationTest.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/UnloadAllInstruments.java.i
-data/test/java/net/Socket/OldSocketImpl.sh.i
+data/src/share/demo/applets/SimpleGraph/example1.html.i
 data/src/share/demo/jvmti/waiters/README.txt.i
+data/src/share/native/java/lang/fdlibm/src/w_gamma.c.i
 data/src/share/classes/sun/util/resources/CurrencyNames.properties.i
 data/test/java/nio/channels/SocketChannel/OpenLeak.java.i
 data/test/java/lang/instrument/appendToClassLoaderSearch/PrematureLoadTest.java.i
@@ -9495,57 +9235,59 @@ data/src/solaris/native/sun/awt/awt_xembed_server.h.i
 data/src/share/classes/javax/management/SendNotification.java.i
 data/test/java/util/ResourceBundle/Test4314141B_fr_CH.java.i
 data/test/java/nio/file/Files/DeleteOnClose.java.i
-data/test/sun/tools/jstatd/jstatdUsage1.sh.i
+data/src/solaris/native/sun/awt/awt_Font.c.i
 data/src/share/sample/nio/server/Server.java.i
+data/make/java/redist/FILES.gmk.i
 data/src/share/classes/sun/swing/text/CountingPrintable.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputStreamTests.java.i
-data/test/java/nio/ByteOrder/NativeOrder.java.i
-data/test/java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java.i
+data/src/share/classes/javax/security/cert/CertificateEncodingException.java.i
+data/test/java/rmi/server/RMIClassLoader/delegateBeforePermissionCheck/Foo.java.i
+data/src/share/native/sun/security/ec/impl/ec2_233.c.i
+data/make/sun/security/pkcs11/Makefile.i
 data/test/java/io/Serializable/PutField/Read2.java.i
-data/src/share/classes/com/sun/jmx/remote/internal/IIOPHelper.java.i
+data/src/share/classes/sun/io/CharToByteISO2022KR.java.i
 data/src/share/lib/sound.properties.i
 data/test/com/sun/net/httpserver/Test8.java.i
 data/test/java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.java.i
 data/src/share/classes/com/sun/jndi/cosnaming/CNCtxFactory.java.i
 data/src/share/classes/javax/sound/midi/Synthesizer.java.i
 data/test/java/lang/reflect/Generics/exceptionCauseTest.java.i
-data/test/sun/security/tools/keytool/DummyProvider.java.i
 data/src/share/classes/sun/io/CharToByteCp1141.java.i
 data/test/java/nio/file/Path/DeleteOnClose.java.i
-data/test/sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.java.i
-data/src/share/classes/sun/util/ResourceBundleEnumeration.java.i
+data/src/share/classes/sun/io/ByteToCharISO2022CN.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/SearchPath.java.i
 data/src/windows/native/sun/java2d/d3d/D3DMaskBlit.cpp.i
 data/test/java/lang/instrument/TransformerManagementThreadRemoveTests.java.i
 data/test/java/nio/charset/CharsetDecoder/AverageMax.java.i
 data/src/share/classes/java/lang/module/ModuleClassLoader.java.i
 data/test/java/lang/Integer/GetInteger.java.i
-data/src/solaris/classes/sun/font/XMap.java.i
-data/src/share/classes/javax/management/MBeanConstructorInfo.java.i
+data/src/share/classes/sun/java2d/pipe/BufferedBufImgOps.java.i
 data/src/share/classes/java/nio/file/ProviderMismatchException.java.i
-data/test/sun/net/InetAddress/nameservice/SimpleNameServiceDescriptor.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_es_CU.properties.i
 data/src/share/classes/java/security/spec/RSAKeyGenParameterSpec.java.i
 data/test/java/security/Policy/GetInstance/GetInstanceProvider.java.i
+data/src/share/classes/javax/swing/text/ChangedCharSetException.java.i
 data/src/share/classes/sun/management/MonitorInfoCompositeData.java.i
 data/test/javax/sound/midi/Gervill/ModelStandardTransform/TransformAbsolute.java.i
-data/test/com/sun/jdi/ListenAddress.java.i
+data/test/java/beans/XMLEncoder/java_awt_ScrollPane.java.i
 data/test/java/lang/Class/getDeclaredField/Exceptions.java.i
 data/src/share/classes/javax/xml/crypto/dom/DOMStructure.java.i
 data/src/share/classes/sun/applet/resources/MsgAppletViewer_pt_BR.java.i
-data/src/share/classes/sun/management/snmp/jvmmib/package.html.i
+data/test/sun/net/www/protocol/http/RelativeRedirect.java.i
 data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextConstructionTests.java.i
-data/src/share/native/sun/font/AccelGlyphCache.c.i
+data/src/share/classes/javax/swing/plaf/synth/SynthContext.java.i
+data/test/sun/security/tools/jarsigner/emptymanifest.sh.i
 data/test/java/lang/String/CaseConvertSameInstance.java.i
-data/src/share/classes/com/sun/jmx/snmp/daemon/SnmpMibTree.java.i
+data/src/share/classes/java/nio/charset/Charset-X-Coder.java.i
 data/src/share/classes/sun/java2d/loops/FillSpans.java.i
 data/src/share/classes/sun/font/CharToGlyphMapper.java.i
 data/test/java/rmi/activation/Activatable/forceLogSnapshot/security.policy.i
 data/src/share/native/sun/awt/image/cvutils/img_replscale.h.i
 data/test/sun/security/krb5/canonicalize/Test.java.i
-data/test/javax/swing/UIManager/Test6657026.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/SignatureECDSA.java.i
 data/src/share/classes/java/security/spec/RSAOtherPrimeInfo.java.i
 data/src/share/classes/sun/net/httpserver/ChunkedOutputStream.java.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/FileMonitoredVm.java.i
+data/src/share/classes/javax/swing/text/html/ObjectView.java.i
+data/test/java/security/cert/CertPathValidator/nameConstraints/openssl.cnf.i
 data/src/share/classes/javax/security/cert/CertificateException.java.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/SmallObjTreeCalls.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmThreadingImpl.java.i
@@ -9556,100 +9298,99 @@ data/test/java/util/IllegalFormatException/Constructors.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/MarkerSegment.java.i
 data/src/share/classes/sun/tools/jstat/Parser.java.i
 data/src/share/native/java/lang/fdlibm/src/s_scalbn.c.i
-data/test/java/net/URLEncoder/Decoder.java.i
 data/src/share/native/sun/security/ec/ecp.h.i
 data/src/share/classes/javax/sound/midi/Transmitter.java.i
-data/src/share/back/debugLoop.h.i
+data/test/sun/net/www/protocol/http/spnegoLogin.conf.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/jibxhelpers/UIPropertyMapper.java.i
-data/test/java/nio/channels/AsynchronousSocketChannel/StressLoopback.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java.i
+data/src/share/classes/sun/rmi/registry/resources/rmiregistry_de.properties.i
+data/src/share/classes/java/awt/CompositeContext.java.i
 data/test/java/rmi/activation/Activatable/nonExistentActivatable/rmid.security.policy.i
-data/src/share/classes/sun/nio/cs/ISO_8859_9.java.i
+data/src/share/classes/sun/management/GcInfoCompositeData.java.i
+data/make/mksample/nio/Makefile.i
 data/src/share/classes/org/openjdk/internal/joptsimple/RequiredArgumentOptionSpec.java.i
 data/src/share/classes/com/sun/management/GcInfo.java.i
-data/test/com/sun/crypto/provider/Cipher/AES/Test4511676.java.i
-data/test/java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html.i
-data/test/java/beans/XMLEncoder/java_beans_Statement.java.i
+data/test/javax/sound/midi/Gervill/ModelSource/SetIdentifier.java.i
 data/src/share/classes/javax/management/remote/rmi/RMIIIOPServerImpl.java.i
 data/test/java/util/Locale/Bug4518797.java.i
 data/test/com/sun/jdi/RedefineFinal.sh.i
-data/test/javax/accessibility/6986385/bug6986385.java.i
+data/src/share/classes/sun/font/FileFontStrike.java.i
+data/test/sun/security/pkcs11/ec/p12passwords.txt.i
 data/test/java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java.i
 data/src/share/classes/sun/java2d/pisces/Curve.java.i
 data/test/java/util/PluggableLocale/providersrc/java.text.spi.NumberFormatProvider.i
-data/src/share/classes/sun/tools/jar/Main.java.i
+data/make/tools/swing-beans/beaninfo/images/JDesktopPaneMono32.gif.i
 data/src/share/classes/sun/rmi/rmic/newrmic/BatchEnvironment.java.i
 data/test/java/security/KeyRep/DH.pre.1.5.key.i
 data/test/java/awt/PrintJob/PrintArcTest/PrintArcTest.java.i
 data/src/share/classes/java/security/cert/CertPathValidatorSpi.java.i
+data/src/share/classes/javax/swing/ScrollPaneConstants.java.i
 data/src/share/classes/java/rmi/MarshalledObject.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxUI.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_de.properties.i
-data/src/share/classes/sun/misc/Sort.java.i
-data/test/java/lang/instrument/appendToClassLoaderSearch/A.2.i
+data/test/java/lang/String/ToLowerCase.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/keyvalues/DSAKeyValue.java.i
-data/src/share/sample/forkjoin/mergesort/MergeSort.java.i
+data/test/javax/crypto/SecretKeyFactory/P1SecretKeyFactory.java.i
 data/test/java/rmi/server/Unreferenced/marshalledObjectGet/MarshalledObjectGet.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_sk.properties.i
 data/src/share/native/sun/java2d/loops/FillRect.c.i
 data/test/java/nio/file/Files/ForceLoad.java.i
-data/test/com/sun/crypto/provider/TLS/prf12data.txt.i
 data/src/share/classes/sun/awt/image/OffScreenImage.java.i
 data/test/sun/security/krb5/krb5-capaths.conf.i
 data/test/java/lang/reflect/Module/module-annotation.sh.i
-data/test/javax/swing/JScrollBar/6924059/bug6924059.java.i
+data/test/java/util/ResourceBundle/Control/XmlRB_ja.xml.i
 data/src/share/demo/jvmti/hprof/hprof_error.c.i
-data/test/javax/swing/JColorChooser/Test6348456.html.i
-data/test/java/net/SocketPermission/NoAction.java.i
+data/src/share/classes/sun/reflect/UnsafeStaticFieldAccessorImpl.java.i
 data/src/share/classes/sun/io/ByteToCharCp297.java.i
-data/test/javax/management/namespace/DomainCreationTest.java.i
+data/test/com/sun/tools/attach/redefineagent.mf.i
 data/make/java/nio/Exportedfiles.gmk.i
-data/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh.i
-data/test/javax/management/modelmbean/AddAttributeChangeNotificationListenerTest.java.i
+data/test/sun/tools/jhat/HatHeapDump1Test.java.i
+data/test/javax/swing/UIManager/Test6657026.java.i
 data/src/share/sample/scripting/scriptpad/nbproject/project.xml.i
-data/test/javax/imageio/plugins/bmp/TopDownTest.java.i
+data/test/javax/sound/midi/Gervill/ModelPerformer/SetDefaultConnectionsEnabled.java.i
 data/src/share/classes/java/lang/SafeVarargs.java.i
-data/test/sun/security/tools/keytool/CloneKeyAskPassword.sh.i
+data/src/share/classes/sun/tools/tree/UnaryExpression.java.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassFileParser.java.i
 data/src/share/classes/javax/swing/text/html/CSSParser.java.i
-data/src/share/classes/com/sun/jmx/snmp/tasks/ThreadService.java.i
+data/test/com/sun/crypto/provider/Cipher/DES/Sealtest.java.i
 data/src/share/demo/applets/NervousText/example1.html.i
-data/src/share/classes/sun/nio/cs/ISO_8859_4.java.i
+data/src/share/classes/sun/java2d/cmm/lcms/LCMS.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/SynthModel.java.i
-data/src/windows/native/sun/jkernel/kernel_ko.rc.i
-data/test/javax/crypto/SealedObject/NullKeySealedObject.java.i
+data/src/share/native/sun/font/FontInstanceAdapter.h.i
 data/test/sun/security/krb5/auto/SPNEGO.java.i
+data/src/share/classes/javax/swing/plaf/synth/SynthArrowButton.java.i
 data/test/javax/swing/JFileChooser/6945316/bug6945316.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS16U16Func.c.i
-data/src/share/native/sun/awt/libpng/pngerror.c.i
+data/make/tools/reorder/tools/util-i586.il.i
+data/test/java/lang/instrument/RedefineMethodAddInvokeTarget.java.i
 data/src/windows/native/sun/windows/colordata.h.i
 data/test/javax/management/eventService/FetchingTest.java.i
 data/test/java/net/URL/B5086147.java.i
 data/src/share/classes/javax/security/auth/login/FailedLoginException.java.i
 data/src/share/classes/java/lang/invoke/MethodHandle.java.i
 data/src/share/classes/sun/util/resources/CalendarData_tr.properties.i
-data/src/share/transport/socket/socketTransport.h.i
+data/test/javax/management/loading/MLetCLR/policy.i
+data/src/share/classes/sun/text/resources/CollationData_sr_Latn.java.i
 data/test/java/io/PipedInputStream/Constructors.java.i
-data/src/share/classes/java/util/logging/LoggingMXBean.java.i
+data/src/share/classes/javax/swing/SwingConstants.java.i
 data/src/share/classes/javax/swing/ComboBoxModel.java.i
-data/test/java/util/ServiceLoader/Load.java.i
+data/test/javax/swing/JColorChooser/Test6348456.html.i
+data/test/javax/sound/midi/Gervill/DLSSoundbankReader/ding.dls.i
 data/test/java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.java.i
 data/test/javax/management/remote/mandatory/connection/DeadLockTest.java.i
 data/src/share/classes/javax/swing/event/InternalFrameAdapter.java.i
 data/test/sun/security/tools/jarsigner/oldsig/A.jar.i
 data/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubNextRequestHandler.java.i
-data/test/java/lang/StringBuffer/Supplementary.java.i
-data/src/share/classes/sun/tools/tree/AssignExpression.java.i
+data/test/javax/management/loading/MLetCLR/MLetCommand.java.i
 data/test/java/beans/Introspector/4520754/Foo.java.i
-data/test/java/net/Inet6Address/serialize/serial-bge0.ser.i
 data/make/sun/cmm/lcms/FILES_c_windows.gmk.i
-data/src/share/classes/com/sun/imageio/plugins/gif/GIFImageWriter.java.i
+data/src/share/classes/javax/swing/event/PopupMenuListener.java.i
+data/src/share/demo/applets/SortDemo/QSortAlgorithm.java.i
 data/src/share/classes/sun/tools/jstat/Literal.java.i
 data/src/windows/native/sun/windows/awt_Unicode.cpp.i
 data/make/modules/image.awt.ls.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_CL.properties.i
 data/make/sun/awt/mapfile-vers.i
-data/test/java/rmi/activation/Activatable/checkImplClassLoader/security.policy.i
-data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScannerMXBean.java.i
+data/src/share/classes/sun/security/x509/CRLExtensions.java.i
 data/test/java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.java.i
 data/make/tools/src/build/tools/jdwpgen/ErrorNode.java.i
 data/src/share/classes/java/net/DatagramSocketImpl.java.i
@@ -9665,16 +9406,14 @@ data/src/share/classes/java/awt/im/InputSubset.java.i
 data/src/share/native/sun/awt/image/cvutils/img_output8_32.h.i
 data/src/share/classes/sun/swing/DefaultLayoutStyle.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageAffine_BL_D64.c.i
-data/test/javax/management/remote/mandatory/passwordAuthenticator/RMIAltAuthTest.java.i
 data/src/share/classes/sun/awt/image/ImageRepresentation.java.i
 data/src/solaris/classes/sun/security/provider/NativeSeedGenerator.java.i
 data/test/javax/management/loading/LibraryLoader/jar_src/RandomGen.c.i
 data/src/share/classes/com/sun/jmx/mbeanserver/MBeanAnalyzer.java.i
 data/test/java/net/ipv6tests/Tests.java.i
-data/src/share/classes/sun/security/jgss/krb5/Krb5Token.java.i
-data/test/java/security/BasicPermission/SerialVersion.java.i
+data/test/com/sun/jdi/ListenAddress.java.i
+data/src/share/classes/sun/awt/dnd/SunDropTargetEvent.java.i
 data/src/share/classes/java/nio/file/FileVisitResult.java.i
-data/test/sun/security/tools/jarsigner/emptymanifest.sh.i
 data/src/share/classes/com/sun/tools/example/debug/gui/TypeScript.java.i
 data/src/share/classes/java/security/KeyStoreSpi.java.i
 data/src/share/native/sun/java2d/opengl/OGLFuncs.c.i
@@ -9689,6 +9428,7 @@ data/test/javax/sound/midi/Gervill/SoftReceiver/Send_Mono.java.i
 data/src/solaris/hpi/export/hpi_md.h.i
 data/src/share/classes/sun/tools/jar/resources/jar_fr.properties.i
 data/src/share/classes/sun/net/www/protocol/mailto/MailToURLConnection.java.i
+data/src/windows/native/sun/jkernel/kernel.def.i
 data/test/java/nio/channels/Selector/CloseInvalidatesKeys.java.i
 data/src/windows/transport/socket/socket_md.h.i
 data/src/share/classes/java/lang/invoke/FilterGeneric.java.i
@@ -9698,13 +9438,13 @@ data/test/sun/security/util/Resources/NewResourcesNames.java.i
 data/test/javax/swing/plaf/nimbus/Test6919629.java.i
 data/test/java/util/IdentityHashMap/EntrySetIteratorRemoveInvalidatesEntry.java.i
 data/src/share/classes/com/sun/media/sound/SoftControl.java.i
-data/test/java/nio/Buffer/CopyDirect-X-Memory.java.template.i
+data/src/share/classes/java/rmi/activation/UnknownGroupException.java.i
 data/make/mksample/scripting/scriptpad/Makefile.i
 data/src/share/native/java/util/zip/zlib-1.1.3/trees.c.i
 data/src/share/classes/java/math/BigInteger.java.i
 data/test/java/lang/reflect/Proxy/returnTypes/GetObject.java.i
 data/test/java/rmi/server/RMIClassLoader/getClassLoader/security.policy.i
-data/src/share/instrument/JarFacade.h.i
+data/test/java/util/zip/ZipEntry/Clone.java.i
 data/src/share/classes/java/util/concurrent/ScheduledFuture.java.i
 data/make/tools/src/build/tools/jdwpgen/NameValueNode.java.i
 data/src/share/classes/java/awt/peer/RobotPeer.java.i
@@ -9713,112 +9453,105 @@ data/src/share/classes/com/sun/tools/hat/internal/model/Snapshot.java.i
 data/test/javax/swing/plaf/synth/6771547/SynthTest.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiTableUI.java.i
 data/test/sun/nio/cs/OLD/DBCS_IBM_ASCII_Decoder.java.i
+data/src/share/classes/java/lang/CloneNotSupportedException.java.i
 data/test/java/awt/dnd/FileListBetweenJVMsTest/FileListTransferable.java.i
 data/test/sun/nio/cs/X11CNS11643P2.java.i
-data/test/java/security/cert/CertPathValidatorException/cert_file.i
+data/src/share/classes/java/dyn/MethodHandleImpl.java.i
 data/src/share/classes/java/nio/file/Watchable.java.i
-data/src/share/native/sun/security/ec/impl/ec_naf.c.i
-data/src/share/classes/sun/applet/AppletSecurityException.java.i
+data/test/java/util/ResourceBundle/Bug6356571.java.i
+data/test/java/net/URLConnection/UNCTest.java.i
+data/test/java/util/ResourceBundle/KeySetResources.properties.i
 data/src/share/demo/jvmti/hprof/hprof_loader.c.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/XMLSignatureInputDebugger.java.i
 data/src/share/classes/sun/management/ManagementFactory.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java.i
 data/src/solaris/classes/sun/nio/fs/LinuxFileSystemProvider.java.i
-data/src/solaris/classes/sun/awt/X11/XAtomList.java.i
 data/src/share/classes/com/sun/net/ssl/internal/ssl/X509ExtendedTrustManager.java.i
-data/src/share/native/sun/reflect/Reflection.c.i
+data/src/share/classes/sun/io/ByteToCharCp1145.java.i
 data/src/share/classes/javax/management/MBeanServerFactory.java.i
-data/src/solaris/classes/sun/java2d/xr/XRMaskImage.java.i
-data/test/sun/security/ssl/sanity/pluggability/MySSLContextImpl.java.i
+data/src/share/classes/sun/rmi/registry/resources/rmiregistry_sv.properties.i
+data/make/tools/swing-beans/beaninfo/images/JScrollBarMono32.gif.i
 data/src/solaris/demo/jni/Poller/Poller.c.i
-data/src/solaris/native/sun/awt/gtk2_interface.c.i
+data/test/sun/nio/cs/TestISO2022CNDecoder.java.i
+data/src/solaris/doc/sun/man/man1/ja/rmic.1.i
 data/test/javax/sound/midi/Gervill/SoftAudioSynthesizer/DummySourceDataLine.java.i
 data/src/share/classes/sun/tools/tree/DivRemExpression.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties.i
 data/test/com/sun/jdi/SimulResumerTest.java.i
 data/test/javax/swing/text/DefaultHighlighter/6771184/bug6771184.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsScrollPaneUI.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/WeakIdentityHashMap.java.i
 data/src/share/classes/java/rmi/server/RMIClassLoader.java.i
 data/src/share/classes/sun/io/ByteToCharCp273.java.i
-data/test/java/io/PushbackInputStream/MarkReset.java.i
+data/test/java/lang/String/CompareIC.java.i
 data/test/java/nio/channels/FileChannel/Pread.java.i
 data/src/share/classes/com/sun/jndi/ldap/pool/Pool.java.i
-data/test/javax/script/DummyScriptEngineFactory.java.i
 data/src/solaris/classes/sun/awt/X11/java-icon48.png.i
 data/src/share/classes/sun/print/ProxyPrintGraphics.java.i
 data/src/share/classes/javax/accessibility/AccessibleState.java.i
 data/src/share/classes/sun/security/krb5/internal/ktab/KeyTabEntry.java.i
 data/src/share/classes/sun/security/krb5/internal/EncAPRepPart.java.i
-data/src/share/back/ReferenceTypeImpl.c.i
-data/test/com/sun/jdi/SourceNameFilterTest.java.i
-data/test/java/nio/channels/SocketChannel/CloseAfterConnect.java.i
-data/src/share/classes/sun/net/www/protocol/ftp/Handler.java.i
-data/src/share/demo/jfc/Notepad/resources/copy.gif.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/RemapInstrument.java.i
+data/test/java/lang/Thread/HoldsLock.java.i
+data/test/java/io/BufferedReader/EOL.java.i
+data/test/sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java.i
+data/src/share/classes/sun/io/CharToByteCp1097.java.i
 data/test/java/lang/Runtime/exec/ExitValue.java.i
 data/src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java.i
 data/src/solaris/native/sun/awt/awt_MenuItem.h.i
-data/src/share/classes/sun/io/ByteToCharCp860.java.i
+data/test/sun/security/pkcs11/Secmod/AddTrustedCert.java.i
 data/src/share/classes/java/security/cert/CertPath.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM935.java.i
 data/src/share/classes/com/sun/tools/hat/internal/server/HttpReader.java.i
 data/src/share/classes/javax/swing/ListSelectionModel.java.i
 data/src/share/classes/javax/print/attribute/standard/MediaSizeName.java.i
 data/src/share/classes/sun/awt/image/SurfaceManager.java.i
-data/make/netbeans/common/architectures/name-Linux.properties.i
-data/src/windows/native/sun/windows/awt_DataTransferer.h.i
+data/make/mksample/nbproject/Makefile.i
 data/test/java/lang/instrument/PremainClass/NoPremainAgent.sh.i
-data/test/javax/management/MBeanServer/OldMBeanServerTest.java.i
-data/test/sun/management/jmxremote/bootstrap/jmxremote_test02_ok.access.in.i
+data/test/java/lang/instrument/PremainClass/InheritAgent1010.java.i
 data/make/sun/security/krb5/FILES_c_windows.gmk.i
-data/src/share/classes/com/sun/tools/hat/README.txt.i
+data/src/share/classes/java/awt/dnd/DragGestureListener.java.i
+data/test/java/io/Serializable/unshared/Read.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/OptionSet.java.i
 data/src/share/classes/com/sun/tools/attach/AttachNotSupportedException.java.i
 data/src/share/classes/sun/misc/CRC16.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifButtonUI.java.i
 data/src/windows/hpi/include/mutex_md.h.i
 data/make/tools/reorder/tests/IntToString.java.i
-data/src/windows/native/java/net/net_util_md.c.i
+data/src/share/instrument/PathCharsValidator.h.i
 data/src/share/classes/javax/swing/plaf/ScrollBarUI.java.i
 data/src/share/classes/com/sun/media/sound/MidiOutDevice.java.i
 data/src/share/classes/java/awt/Conditional.java.i
-data/src/share/classes/java/lang/doc-files/upsilon.gif.i
+data/test/sun/management/jmxremote/bootstrap/launcher.c.i
 data/src/share/classes/com/sun/jndi/dns/ZoneNode.java.i
-data/src/windows/classes/sun/java2d/windows/GDIWindowSurfaceData.java.i
 data/src/share/classes/java/lang/management/CompilationMXBean.java.i
 data/src/share/classes/javax/smartcardio/CardException.java.i
-data/test/java/awt/xembed/server/TestXEmbedServerJava.java.i
+data/src/windows/hpi/src/monitor_md.c.i
 data/src/share/classes/java/nio/file/FileSystemNotFoundException.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_th.properties.i
 data/test/javax/management/remote/mandatory/subjectDelegation/SubjectDelegation2Test.java.i
 data/src/share/classes/com/sun/rowset/providers/RIOptimisticProvider.java.i
 data/src/share/native/sun/font/layout/LEFontInstance.h.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BC.c.i
-data/src/share/classes/javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java.i
-data/make/tools/swing-beans/beaninfo/images/JTextFieldColor32.gif.i
+data/src/share/classes/javax/swing/plaf/synth/SynthPasswordFieldUI.java.i
+data/src/solaris/doc/sun/man/man1/ja/appletviewer.1.i
 data/src/share/classes/java/awt/Toolkit.java.i
 data/src/share/classes/sun/nio/ch/IOUtil.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-i586/libplc4.so.i
-data/test/java/io/Serializable/arraySuidConflict/Read.java.i
 data/src/share/classes/sun/text/normalizer/ReplaceableUCharacterIterator.java.i
 data/test/sun/security/krb5/edu.mit.Kerberos.i
-data/test/java/util/Collections/FindSubList.java.i
+data/test/java/nio/file/Files/walkFileTree/denyAll.policy.i
+data/make/tools/src/build/tools/javazic/Rule.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIComponent.java.i
 data/src/share/classes/sun/awt/datatransfer/TransferableProxy.java.i
 data/src/share/classes/javax/script/CompiledScript.java.i
-data/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c.i
-data/src/solaris/native/common/jlong_md.h.i
+data/test/sun/net/www/protocol/ftp/HandlerEquals.java.i
+data/src/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java.i
 data/test/sun/security/ssl/sun/net/www/http/ChunkedOutputStream/Test.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageFilters.h.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ko.properties.i
-data/src/share/classes/com/sun/security/auth/NTUserPrincipal.java.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmRTInputArgsEntryMeta.java.i
+data/test/javax/management/MBeanServer/DynamicWrapperMBeanTest.java.i
+data/make/common/internal/NativeCompileRules.gmk.i
 data/src/solaris/native/sun/awt/awt_Event.h.i
-data/src/share/classes/java/awt/event/AdjustmentListener.java.i
-data/src/solaris/hpi/native_threads/include/threads_md.h.i
+data/src/share/classes/javax/swing/event/HyperlinkEvent.java.i
 data/src/share/classes/sun/launcher/resources/launcher_it.properties.i
-data/src/windows/native/common/locale_str.h.i
+data/src/share/classes/java/beans/beancontext/BeanContextMembershipEvent.java.i
 data/src/share/classes/sun/font/TextLabel.java.i
 data/src/share/classes/sun/awt/im/InputMethodContext.java.i
 data/make/jpda/gui/Makefile.i
@@ -9827,63 +9560,63 @@ data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/Encry
 data/test/javax/swing/JColorChooser/Test4759306.html.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformer.java.i
 data/make/tools/swing-beans/beaninfo/images/JListColor32.gif.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32U16Func.c.i
+data/src/windows/classes/sun/java2d/d3d/D3DGraphicsDevice.java.i
 data/src/share/classes/javax/swing/Icon.java.i
 data/test/sun/security/pkcs11/KeyStore/BasicData/ca.cert.i
-data/src/share/classes/com/sun/imageio/plugins/jpeg/DRIMarkerSegment.java.i
-data/src/windows/classes/sun/awt/windows/WInputMethodDescriptor.java.i
+data/test/com/sun/jdi/PrivateTransportTest.sh.i
 data/src/share/classes/javax/print/attribute/standard/Compression.java.i
 data/test/java/net/URLConnection/xml/xml2.xml.i
 data/test/java/beans/Introspector/6976577/Test6976577.java.i
-data/src/share/classes/org/openjdk/jigsaw/BaseContext.java.i
-data/test/javax/swing/JFileChooser/6570445/bug6570445.java.i
+data/test/javax/management/eventService/SharingThreadTest.java.i
+data/src/share/classes/sun/nio/cs/ext/MacUkraine.java.i
 data/src/share/native/java/lang/fdlibm/src/s_asinh.c.i
 data/src/share/back/eventHelper.h.i
 data/test/sun/net/www/http/ChunkedInputStream/ChunkedEncodingWithProgressMonitorTest.java.i
-data/src/windows/native/sun/windows/awt_Menu.h.i
 data/make/netbeans/jdwpgen/nbproject/project.xml.i
-data/src/solaris/native/java/io/canonicalize_md.c.i
+data/test/com/sun/servicetag/registration.xml.i
 data/src/windows/classes/sun/java2d/d3d/D3DRenderer.java.i
 data/src/share/classes/javax/print/attribute/standard/JobMediaSheetsSupported.java.i
 data/src/share/classes/com/sun/jdi/BooleanValue.java.i
-data/src/share/native/sun/awt/image/jpeg/jquant2.c.i
+data/test/sun/security/ssl/etc/unknown_keystore.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/RSAKeyValueResolver.java.i
 data/src/share/classes/java/awt/peer/TextComponentPeer.java.i
-data/src/share/classes/com/sun/tools/jdi/VirtualMachineManagerService.java.i
-data/test/javax/sound/midi/Gervill/SF2SoundbankReader/TestGetSoundbankFile.java.i
-data/test/java/io/Serializable/InvalidClassException/noargctor/NonSerialize/PrivateCtor.java.i
+data/src/share/classes/com/sun/jdi/request/MethodEntryRequest.java.i
 data/test/tools/launcher/UnicodeCleanup.java.i
+data/src/share/classes/sun/security/provider/certpath/PKIXMasterCertPathValidator.java.i
+data/src/share/classes/sun/text/normalizer/UProperty.java.i
 data/src/share/classes/com/sun/jmx/interceptor/DomainDispatchInterceptor.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/X509IssuerSerialResolver.java.i
 data/src/share/classes/sun/net/www/protocol/http/logging/HttpLogFormatter.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/dk/Des3DkCrypto.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/ChildSession.java.i
-data/test/java/lang/instrument/RedefineMethodAddInvokeTarget.java.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmRTInputArgsTableMeta.java.i
+data/src/share/native/sun/awt/image/jpeg/jcphuff.c.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmCompilationMBean.java.i
 data/src/share/demo/management/VerboseGC/PrintGCStat.java.i
-data/make/sun/security/pkcs11/mapfile-vers.i
-data/test/sun/nio/cs/OLD/IBM949_OLD.java.i
-data/test/java/security/UnresolvedPermission/AccessorMethods.signer1.i
+data/test/javax/swing/border/Test4760089.java.i
+data/src/share/classes/com/sun/tools/extcheck/ExtCheck.java.i
 data/src/share/classes/javax/management/namespace/JMXNamespaceView.java.i
 data/test/sun/management/jmxremote/bootstrap/PasswordFilePermissionTest.sh.i
 data/src/share/classes/sun/tools/jconsole/resources/collapse-winlf.png.i
 data/test/java/awt/image/LookupOp/SingleArrayTest.java.i
 data/make/tools/CharsetMapping/IBM1025.c2b.i
-data/test/java/lang/StringCoding/CheckEncodings.sh.i
-data/src/share/classes/javax/sound/sampled/spi/MixerProvider.java.i
-data/src/share/classes/sun/security/pkcs/PKCS7.java.i
+data/src/share/classes/sun/reflect/generics/tree/BaseType.java.i
+data/test/javax/swing/text/html/TableView/7030332/bug7030332.html.i
+data/make/tools/CharsetMapping/HKSCS2008.map.i
+data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKGraphicsUtils.java.i
+data/src/share/classes/javax/imageio/metadata/doc-files/bmp_metadata.html.i
 data/src/share/classes/javax/print/attribute/standard/PrinterResolution.java.i
-data/src/share/classes/com/sun/tools/example/debug/gui/ClassManager.java.i
-data/test/javax/management/Introspector/ImmutableNotificationInfoTest.java.i
+data/test/java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html.i
 data/test/javax/swing/plaf/metal/MetalBumps/Test6657026.java.i
 data/test/java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapBlock.java.i
-data/test/sun/security/krb5/auto/DynamicKeytab.java.i
+data/test/java/lang/management/BufferPoolMXBean/Basic.java.i
+data/src/share/classes/java/awt/HeadlessException.java.i
+data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java.i
+data/test/java/util/concurrent/locks/ReentrantReadWriteLock/LoopHelpers.java.i
 data/src/share/classes/com/sun/tools/jdi/FloatTypeImpl.java.i
-data/test/javax/swing/border/Test4252164.java.i
-data/src/share/native/java/lang/fdlibm/src/e_cosh.c.i
-data/src/share/classes/sun/tools/serialver/SerialVer.java.i
+data/src/solaris/classes/sun/nio/fs/UnixFileStoreAttributes.java.i
+data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKStyle.java.i
+data/test/java/util/logging/LoggerWeakRefLeak.java.i
 data/src/share/classes/javax/print/StreamPrintService.java.i
-data/test/java/nio/channels/SocketChannel/Close.java.i
 data/src/share/classes/sun/security/jgss/GSSCaller.java.i
 data/src/share/native/java/lang/java_props.h.i
 data/src/solaris/bin/amd64/jvm.cfg.i
@@ -9896,19 +9629,19 @@ data/src/share/classes/com/sun/jmx/remote/util/EventClientConnection.java.i
 data/src/share/classes/sun/beans/editors/ShortEditor.java.i
 data/src/share/classes/java/lang/Object.java.i
 data/src/share/classes/com/sun/jdi/event/VMStartEvent.java.i
-data/test/java/nio/charset/StandardCharsets/Standard.java.i
-data/test/java/beans/PropertyChangeSupport/TestSerialization.java.i
-data/src/share/classes/javax/management/remote/JMXConnectorFactory.java.i
+data/src/share/classes/javax/sound/midi/MetaMessage.java.i
+data/test/java/lang/annotation/Missing/A.java.i
 data/src/share/classes/java/lang/ProcessBuilder.java.i
 data/src/share/classes/sun/awt/RequestFocusController.java.i
 data/src/share/native/java/util/zip/zlib-1.2.3/inflate.c.i
 data/test/java/util/concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java.i
 data/test/sun/nio/cs/OLD/DBCSDecoderMapping.java.i
-data/test/sun/rmi/rmic/newrmic/equivalence/G1.java.i
 data/src/share/classes/javax/swing/JInternalFrame.java.i
 data/test/java/lang/String/ContentEquals.java.i
+data/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeContext.java.i
+data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_es.properties.i
 data/src/share/classes/sun/tools/jconsole/VariableGridLayout.java.i
-data/src/windows/native/sun/nio/ch/nio_util.h.i
+data/test/java/lang/StringBuffer/Exceptions.java.i
 data/src/share/classes/javax/swing/ComboBoxEditor.java.i
 data/src/share/classes/javax/swing/plaf/ColorChooserUI.java.i
 data/test/java/nio/charset/Charset/IllegalCharsetName.java.i
@@ -9918,26 +9651,23 @@ data/test/java/lang/Runtime/exec/ExecWithInput.java.i
 data/src/share/hpi/include/hpi_impl.h.i
 data/test/java/security/cert/CertPathValidator/OCSP/RootCert.pem.i
 data/src/share/classes/sun/tools/jstat/ParserException.java.i
-data/test/sun/security/krb5/auto/HttpNegotiateServer.java.i
-data/src/share/classes/javax/swing/text/html/default.css.i
-data/src/share/native/sun/security/ec/secoidt.h.i
+data/test/com/sun/java/swing/plaf/windows/Test6824600.java.i
+data/test/java/util/ServiceLoader/Basic.java.i
+data/test/com/sun/crypto/provider/Cipher/PBE/PKCS12Oid.java.i
+data/test/java/awt/Toolkit/Headless/GetPrintJob/GetPrintJobHeadless.java.i
 data/test/java/beans/XMLEncoder/java_awt_Color.java.i
 data/src/share/classes/javax/swing/text/html/HTMLDocument.java.i
 data/src/share/classes/java/io/PrintWriter.java.i
-data/test/javax/management/monitor/ThreadPoolAccTest.java.i
 data/src/windows/native/common/jni_util_md.c.i
 data/src/share/classes/java/beans/IndexedPropertyDescriptor.java.i
 data/src/share/classes/java/awt/peer/FileDialogPeer.java.i
-data/test/sun/security/x509/X500Name/EmailKeyword.java.i
-data/test/sun/net/www/protocol/http/RelativeRedirect.java.i
+data/src/share/classes/sun/text/resources/FormatData_en_IN.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetVoiceStatus.java.i
 data/test/sun/security/provider/PolicyFile/EmailAddress.java.i
-data/test/java/lang/management/ThreadMXBean/ThreadStateTest.java.i
-data/test/javax/swing/Security/6657138/ComponentTest.java.i
+data/test/java/util/ResourceBundle/Bug4168625Resource2_en_US.java.i
 data/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java.i
 data/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java.i
-data/src/share/classes/sun/tools/jar/SignatureFile.java.i
-data/src/share/native/sun/font/layout/LayoutEngine.cpp.i
+data/test/javax/swing/JTableHeader/6884066/bug6884066.java.i
 data/src/share/classes/com/sun/nio/sctp/NotificationHandler.java.i
 data/src/share/classes/com/sun/tools/example/debug/event/VMDeathEventSet.java.i
 data/src/share/classes/java/sql/SQLSyntaxErrorException.java.i
@@ -9952,84 +9682,75 @@ data/test/java/beans/PropertyEditor/TestDoubleTypeJava.java.i
 data/src/share/classes/sun/net/www/protocol/http/AuthCache.java.i
 data/src/share/classes/com/sun/jmx/namespace/serial/SerialRewritingProcessor.java.i
 data/src/share/classes/sun/font/TrueTypeFont.java.i
-data/test/java/util/regex/SupplementaryTestCases.txt.i
-data/src/share/classes/javax/swing/AbstractCellEditor.java.i
+data/test/sun/security/krb5/auto/NoAddresses.java.i
+data/test/com/sun/jdi/JdbMissStep.sh.i
 data/test/java/rmi/activation/Activatable/checkImplClassLoader/MyRMI.java.i
-data/src/solaris/classes/sun/awt/X11/security-icon-yellow24.png.i
 data/src/share/classes/java/text/CalendarBuilder.java.i
-data/src/share/native/sun/font/layout/TibetanReordering.cpp.i
 data/src/share/demo/applets/WireFrame/ThreeD.java.i
-data/test/java/rmi/server/RMIClassLoader/noSecurityManager/LocalDummy.java.i
 data/test/java/net/ResponseCache/file1.cache.i
 data/src/share/classes/sun/awt/HorizBagLayout.java.i
 data/src/share/classes/java/security/SecurityPermission.java.i
 data/test/javax/management/remote/mandatory/threads/ExecutorTest.java.i
-data/make/tools/reorder/tests/LoadJFrame.java.i
+data/test/javax/security/auth/login/Configuration/Synchronize.config.i
 data/make/java/java/FILES_java.gmk.i
 data/src/share/classes/javax/print/attribute/PrintRequestAttribute.java.i
+data/src/linux/doc/man/rmic.1.i
 data/src/share/classes/javax/swing/plaf/metal/MetalHighContrastTheme.java.i
 data/src/share/classes/sun/nio/cs/ext/SimpleEUCDecoder.java.i
 data/src/share/classes/sun/security/krb5/internal/ETypeInfo.java.i
-data/test/java/security/cert/CertPathBuilder/targetConstraints/ee.cer.i
+data/src/windows/native/sun/net/dns/ResolverConfigurationImpl.c.i
+data/src/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java.i
 data/src/share/classes/sun/security/x509/AlgorithmId.java.i
 data/test/javax/swing/JSlider/6742358/bug6742358.java.i
 data/test/java/nio/file/Files/WalkWithSecurity.java.i
 data/src/share/classes/java/util/IllegalFormatException.java.i
-data/test/sun/security/mscapi/KeyStoreCompatibilityMode.sh.i
 data/test/java/nio/channels/Selector/LotsOfCancels.java.i
 data/src/share/classes/javax/swing/colorchooser/ColorChooserComponentFactory.java.i
 data/test/java/beans/VetoableChangeSupport/Test4994635.java.i
+data/test/java/io/Serializable/stopCustomDeserialization/Read.java.i
 data/src/share/classes/javax/net/ssl/SSLHandshakeException.java.i
 data/src/share/classes/sun/misc/NativeSignalHandler.java.i
-data/src/windows/native/sun/java2d/d3d/D3DMaskCache.h.i
 data/src/share/classes/sun/applet/AppletClassLoader.java.i
 data/src/share/classes/javax/accessibility/AccessibleComponent.java.i
 data/src/share/classes/sun/tools/java/BinaryClass.java.i
-data/test/javax/management/modelmbean/DescriptorSupportXMLTest.java.i
-data/test/sun/nio/cs/OLD/X11GBK_OLD.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsButtonListener.java.i
 data/test/java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java.i
-data/test/tools/launcher/UnresolvedExceptions.java.i
-data/src/share/classes/sun/tools/jar/resources/jar_de.properties.i
-data/test/sun/security/pkcs11/tls/TestPRF.java.i
+data/test/java/lang/StringBuffer/InsertMaxValue.java.i
 data/test/java/beans/PropertyEditor/TestDoubleType.java.i
 data/src/share/classes/sun/io/CharToByteCp277.java.i
 data/src/share/lib/cmm/lcms/CIEXYZ.pf.i
 data/src/share/classes/java/lang/ClassValue.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/helper/package.html.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/UnloadInstrument.java.i
 data/src/share/classes/sun/print/SunMinMaxPage.java.i
 data/src/solaris/classes/sun/awt/X11/security-icon-bw16.png.i
-data/src/share/classes/com/sun/jmx/remote/internal/ClientNotifForwarder.java.i
+data/src/share/classes/sun/misc/JavaUtilJarAccess.java.i
 data/test/java/util/ResourceBundle/Bug6359330.java.i
 data/test/java/lang/Class/getEnclosingClass/build.sh.i
 data/src/share/classes/javax/swing/event/TreeModelListener.java.i
-data/src/windows/native/sun/windows/awt_Brush.h.i
+data/test/sun/nio/cs/TestUTF_16.java.i
 data/src/share/classes/com/sun/java/browser/dom/DOMAccessException.java.i
 data/src/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java.i
 data/src/share/classes/javax/management/MBeanFeatureInfo.java.i
-data/test/java/lang/Class/IsAnnotationType.java.i
 data/src/share/classes/javax/security/auth/Refreshable.java.i
 data/src/share/classes/sun/text/resources/FormatData_ar_MA.java.i
 data/make/tools/CharsetMapping/MacTurkish.map.i
-data/test/java/lang/Double/Constants.java.i
+data/test/sun/tools/jstack/Basic.sh.i
 data/src/share/classes/java/security/AccessControlException.java.i
 data/test/javax/management/standardmbean/DeadlockTest.java.i
 data/test/javax/naming/RefAddr/NullContent.java.i
 data/src/solaris/bin/ppc/jvm.cfg.i
 data/src/share/classes/sun/io/CharToByteISO2022CN_GB.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/keyvalues/package.html.i
 data/src/share/classes/org/openjdk/jigsaw/Resolver.java.i
 data/test/com/sun/jdi/RepStepTarg.java.i
 data/src/share/native/java/lang/fdlibm/src/w_hypot.c.i
-data/src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java.i
 data/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java.i
+data/src/share/classes/javax/accessibility/AccessibleStreamable.java.i
 data/src/share/classes/java/awt/font/GraphicAttribute.java.i
-data/src/windows/native/sun/windows/awt_Object.h.i
 data/src/share/classes/java/awt/ColorPaintContext.java.i
 data/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/TestEnvironment.java.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/ByteArrayCalls.java.i
 data/test/sun/net/InetAddress/nameservice/deadlock/Hang.java.i
-data/test/java/util/jar/JarFile/JarNoManifest.java.i
 data/src/share/classes/com/sun/media/sound/ModelPerformer.java.i
 data/src/share/classes/javax/management/remote/JMXServerErrorException.java.i
 data/test/java/io/charStreams/BufferedReaderMark.java.i
@@ -10038,30 +9759,30 @@ data/src/share/native/sun/awt/medialib/mlib_ImageFilters.c.i
 data/src/share/classes/sun/util/CoreResourceBundleControl-XLocales.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/utils/HasResources.java.i
 data/src/share/classes/java/awt/geom/QuadCurve2D.java.i
-data/test/java/util/Collections/RacingCollections.java.i
-data/test/java/io/Serializable/oldTests/SimpleArrays.java.i
-data/src/share/classes/sun/misc/JavaIODeleteOnExitAccess.java.i
+data/src/share/classes/javax/swing/event/TreeModelEvent.java.i
+data/src/share/classes/sun/util/calendar/ImmutableGregorianDate.java.i
 data/src/share/classes/java/net/SocketTimeoutException.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh.i
 data/src/share/classes/sun/security/timestamp/TSRequest.java.i
 data/src/share/classes/sun/net/www/protocol/http/HttpLogFormatter.java.i
-data/test/java/util/TimSort/SortPerf.java.i
+data/src/share/native/java/util/zip/zlib-1.1.3/zadler32.c.i
 data/src/share/classes/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java.i
 data/test/com/sun/jmx/snmp/TimeTicksWrapping.java.i
 data/src/share/classes/javax/naming/AuthenticationNotSupportedException.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/PixelTests.java.i
+data/test/java/nio/file/Files/walkFileTree/SkipSiblings.java.i
 data/make/mksample/jmx/Makefile.i
 data/src/share/classes/java/util/zip/DataFormatException.java.i
 data/src/share/classes/java/security/AccessController.java.i
 data/src/windows/native/java/io/io_util_md.h.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_VERSION.java.i
+data/src/share/classes/sun/tools/jconsole/resources/mbeanserverdelegate.gif.i
 data/test/java/lang/System/IgnoreNullSecurityManager.java.i
 data/src/share/classes/java/awt/font/TextAttribute.java.i
-data/test/com/sun/net/httpserver/Test6.java.i
-data/src/share/classes/javax/swing/text/html/parser/ParserDelegator.java.i
+data/make/java/java/reflect/Makefile.i
+data/src/share/classes/sun/nio/cs/ext/JIS_X_0208.java.i
 data/test/java/rmi/testlibrary/RemoteExiter.java.i
 data/test/java/lang/annotation/ParameterAnnotations.java.i
 data/src/share/classes/javax/swing/table/package.html.i
+data/src/share/classes/com/sun/servicetag/ServiceTag.java.i
 data/test/java/net/MulticastSocket/B6425815.java.i
 data/test/java/lang/ToString.java.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelInstrumentIntIntIntIntInt.java.i
@@ -10073,49 +9794,53 @@ data/src/share/demo/nbproject/jfc/FileChooserDemo/nbproject/netbeans-targets.xml
 data/src/share/classes/javax/management/openmbean/CompositeDataInvocationHandler.java.i
 data/make/tools/swing-beans/beaninfo/images/JScrollPaneMono32.gif.i
 data/src/share/classes/sun/security/krb5/internal/CredentialsUtil.java.i
-data/test/java/beans/PropertyEditor/TestLongTypeNull.java.i
+data/src/share/classes/java/awt/doc-files/Scrollbar-2.gif.i
+data/test/java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html.i
 data/test/java/lang/management/MemoryMXBean/ResetPeakMemoryUsage.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpScopedPduRequest.java.i
 data/src/linux/doc/man/tnameserv.1.i
 data/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentDirContext.java.i
 data/test/java/lang/management/CompilationMXBean/Basic.java.i
+data/test/sun/net/www/http/HttpClient/ImplicitFileName.java.i
 data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipPath.java.i
 data/src/share/classes/sun/util/EmptyListResourceBundle.java.i
 data/src/share/classes/java/lang/doc-files/capiota.gif.i
-data/src/share/native/sun/awt/image/BufImgSurfaceData.h.i
+data/test/sun/util/resources/TimeZone/Bug4640234.java.i
 data/test/java/rmi/reliability/juicer/AppleEvent.java.i
+data/src/share/classes/com/sun/tools/jdi/DoubleTypeImpl.java.i
 data/src/share/classes/sun/awt/CustomCursor.java.i
 data/src/windows/classes/java/util/prefs/WindowsPreferencesFactory.java.i
 data/src/windows/native/sun/java2d/d3d/D3DRenderer.cpp.i
 data/test/java/util/Currency/CheckDataVersion.java.i
 data/test/java/util/concurrent/BlockingQueue/LoopHelpers.java.i
-data/src/share/classes/sun/awt/im/CompositionAreaHandler.java.i
+data/test/sun/management/jmxremote/bootstrap/LocalManagementTest.sh.i
 data/src/share/classes/com/sun/beans/decoder/ElementHandler.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/package.html.i
+data/src/solaris/classes/sun/awt/motif/MMouseDragGestureRecognizer.java.i
 data/src/share/classes/javax/crypto/JceSecurityManager.java.i
 data/src/solaris/classes/sun/awt/X11/XProtocol.java.i
 data/make/tools/src/build/tools/charsetmapping/HKSCS.java.i
-data/test/javax/sound/midi/Gervill/SF2SoundbankReader/TestGetSoundbankInputStream2.java.i
 data/test/tools/launcher/Settings.java.i
 data/src/share/classes/java/lang/doc-files/javalang.doc.anc21.gif.i
+data/src/share/classes/javax/swing/undo/UndoableEdit.java.i
+data/src/share/classes/sun/io/ByteToCharBig5_Solaris.java.i
 data/src/share/native/sun/security/ec/mpi-config.h.i
 data/src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java.i
 data/src/share/classes/java/util/JapaneseImperialCalendar.java.i
 data/test/java/nio/channels/DatagramChannel/Refused.java.i
 data/src/share/classes/javax/swing/plaf/ComboBoxUI.java.i
 data/src/share/classes/sun/tools/jar/CommandLine.java.i
-data/src/share/classes/sun/java2d/pipe/BufferedTextPipe.java.i
-data/test/sun/rmi/rmic/newrmic/equivalence/CountServerImpl.java.i
 data/src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethodImpl.java.i
 data/src/share/native/sun/awt/image/jpeg/jpegint.h.i
 data/src/share/classes/javax/net/ssl/SSLSessionContext.java.i
-data/src/share/classes/java/lang/IllegalStateException.java.i
-data/src/share/classes/com/sun/net/httpserver/HttpsExchange.java.i
+data/test/sun/security/krb5/canonicalize/META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor.i
+data/test/javax/swing/JColorChooser/Test4887836.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicScrollBarUI.java.i
-data/test/java/io/Serializable/enum/badResolve/Read.java.i
+data/src/share/classes/sun/tracing/dtrace/JVM.java.i
 data/test/sun/net/www/protocol/file/Equals.java.i
 data/src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java.i
 data/src/share/classes/java/util/zip/DeflaterOutputStream.java.i
+data/src/solaris/doc/sun/man/man1/jsadebugd.1.i
 data/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup.java.i
 data/src/share/classes/java/dyn/InvokeDynamicBootstrapError.java.i
 data/make/tools/swing-beans/beaninfo/images/JListMono32.gif.i
@@ -10123,30 +9848,30 @@ data/src/share/classes/sun/util/resources/CurrencyNames_sq_AL.properties.i
 data/test/java/io/Serializable/badSerialVersionUID/BadSerialVersionUID.java.i
 data/test/java/io/File/NullArgs.java.i
 data/test/sun/security/smartcardio/TestConnectAgain.java.i
-data/src/share/classes/sun/security/ssl/ByteBufferInputStream.java.i
+data/src/share/classes/javax/xml/crypto/dsig/SignatureMethod.java.i
+data/test/java/util/ResourceBundle/Test4314141A___EURO.properties.i
+data/test/java/net/HttpURLConnection/getResponseCode.java.i
 data/src/windows/native/sun/windows/MouseInfo.cpp.i
 data/test/java/lang/instrument/ManifestTestAgent.java.i
-data/test/java/beans/Introspector/memory/Test4809008.java.i
 data/test/javax/security/auth/login/Configuration/GetInstance.config.i
 data/src/share/classes/sun/security/provider/SecureRandom.java.i
-data/src/share/native/sun/java2d/loops/ByteBinary2Bit.c.i
 data/test/java/lang/instrument/RemoveAbsentTransformerTest.java.i
 data/src/share/classes/javax/management/QueryExp.java.i
-data/src/share/demo/jfc/Metalworks/resources/HelpFiles/javalogo.gif.i
+data/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsClassicLookAndFeel.java.i
-data/test/java/nio/channels/Channels/Basic2.java.i
 data/make/tools/CharsetMapping/extsbcs.i
-data/src/share/classes/java/awt/image/BandCombineOp.java.i
+data/src/share/lib/security/java.security-solaris.i
 data/src/share/classes/sun/tools/tree/BitXorExpression.java.i
 data/src/solaris/javavm/export/jawt_md.h.i
-data/src/share/demo/jvmti/hprof/hprof_cpu.c.i
+data/src/solaris/bin/java-rmi.cgi.sh.i
 data/test/sun/net/www/protocol/file/EncodedMultiByteChar.java.i
+data/src/share/native/sun/font/layout/SubtableProcessor.cpp.i
 data/src/share/classes/sun/net/httpserver/FixedLengthInputStream.java.i
-data/src/share/native/sun/font/layout/Lookups.cpp.i
+data/test/java/awt/Modal/NpeOnClose/NpeOnCloseTest.java.i
+data/make/sun/org/Makefile.i
 data/src/share/classes/javax/naming/NameParser.java.i
-data/test/sun/security/pkcs11/KeyStore/ClientAuthData/key3.db.i
-data/src/share/classes/java/awt/GradientPaintContext.java.i
 data/make/sun/javazic/tzdata/leapseconds.i
+data/src/share/classes/sun/java2d/pipe/BufferedRenderPipe.java.i
 data/src/share/classes/java/nio/file/attribute/BasicFileAttributeView.java.i
 data/src/share/classes/java/awt/peer/ContainerPeer.java.i
 data/test/java/lang/instrument/Different_ExampleRedefine.java.i
@@ -10159,71 +9884,76 @@ data/src/share/classes/sun/java2d/pipe/AlphaPaintPipe.java.i
 data/test/javax/management/ObjectName/RepositoryWildcardTest.java.i
 data/src/share/classes/com/sun/jdi/request/BreakpointRequest.java.i
 data/src/windows/native/sun/windows/awt_DCHolder.cpp.i
+data/make/modules/jdk.swing.ls.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/IsOpen.java.i
 data/test/sun/net/ftp/FtpGetContent.java.i
 data/src/share/back/ObjectReferenceImpl.c.i
-data/test/java/nio/file/Files/TerminateWalk.java.i
 data/src/share/classes/java/lang/NullPointerException.java.i
 data/src/share/classes/sun/awt/ModalityEvent.java.i
 data/src/solaris/demo/jigsaw/basic/src/org/hello/Main.java.i
 data/src/share/classes/sun/util/resources/CalendarData_sr.properties.i
 data/src/share/classes/sun/rmi/server/resources/rmid_pt_BR.properties.i
-data/src/share/classes/javax/management/InstanceOfQueryExp.java.i
-data/test/java/util/ResourceBundle/Control/LoadingStrategiesTest.java.i
+data/src/share/classes/sun/text/resources/CollationData_et.java.i
+data/src/share/classes/java/io/StringBufferInputStream.java.i
 data/src/share/classes/java/security/MessageDigest.java.i
-data/src/share/native/sun/security/pkcs11/wrapper/pkcs11.h.i
+data/src/share/classes/com/sun/tools/example/debug/bdi/VMLaunchFailureException.java.i
 data/test/sun/nio/cs/TestJIS0208Decoder.java.i
-data/src/share/classes/java/dyn/WrongMethodTypeException.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/ClientServer.java.i
+data/src/share/classes/com/sun/security/sasl/CramMD5Client.java.i
+data/test/javax/print/applet/applet0/Applet0.java.i
 data/make/tools/src/build/tools/jdwpgen/StringTypeNode.java.i
 data/src/share/classes/javax/naming/Binding.java.i
 data/src/share/classes/sun/io/ByteToCharCp833.java.i
 data/test/demo/jvmti/versionCheck/FailsWhenJvmtiVersionDiffers.java.i
 data/test/javax/swing/JTable/6913768/bug6913768.java.i
 data/src/share/classes/javax/print/attribute/standard/JobMediaSheets.java.i
+data/src/share/classes/javax/crypto/NullCipherSpi.java.i
 data/src/share/classes/sun/io/CharToByteCp1257.java.i
-data/src/share/classes/javax/swing/text/html/parser/TagStack.java.i
+data/src/solaris/classes/sun/print/AttributeClass.java.i
 data/test/javax/sound/midi/Gervill/ModelIdentifier/NewModelIdentifierStringString.java.i
 data/src/share/classes/sun/io/CharToByteCp875.java.i
 data/src/solaris/demo/jni/Poller/LinkedQueue.java.i
-data/test/java/nio/file/WatchService/denyAll.policy.i
-data/test/java/lang/management/RuntimeMXBean/GetSystemProperties.java.i
+data/test/javax/management/remote/mandatory/connectorServer/CloseConnectionTest.java.i
 data/src/share/classes/com/sun/jndi/ldap/EventSupport.java.i
 data/test/java/beans/PropertyChangeSupport/Test4092905.java.i
 data/src/share/classes/com/sun/jdi/InvalidLineNumberException.java.i
-data/test/java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java.i
+data/src/solaris/back/linker_md.c.i
 data/src/share/classes/sun/net/ftp/FtpClient.java.i
 data/test/java/util/ResourceBundle/KeySetTest.java.i
-data/src/share/demo/jvmti/hprof/hprof_string.c.i
+data/test/javax/sound/midi/Gervill/SF2SoundbankReader/TestGetSoundbankInputStream2.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifButtonListener.java.i
 data/src/share/native/sun/awt/image/jpeg/jcapistd.c.i
+data/make/tools/src/build/tools/generatecharacter/CharacterName.java.i
+data/src/share/lib/images/cursors/motif_CopyDrop32x32.gif.i
 data/src/share/hpi/export/hpi.h.i
 data/src/share/classes/javax/management/event/EventConsumer.java.i
-data/test/sun/security/krb5/IPv6.java.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/altroot/Node.java.i
 data/src/share/classes/sun/java2d/Spans.java.i
 data/test/sun/security/util/Oid/SerialTest.java.i
 data/make/tools/src/build/tools/javazic/DayOfWeek.java.i
-data/test/java/net/URLConnection/GetFileNameMap.java.i
+data/test/sun/security/krb5/auto/BasicKrb5Test.java.i
+data/src/share/classes/com/sun/jmx/mbeanserver/MXBeanSupport.java.i
 data/src/share/classes/javax/crypto/CipherOutputStream.java.i
 data/test/java/lang/ProcessBuilder/Basic.java.i
 data/src/share/classes/java/util/RegularEnumSet.java.i
 data/src/solaris/native/sun/awt/awt_MenuItem.c.i
 data/src/share/classes/sun/dyn/anon/ConstantPoolPatch.java.i
+data/src/share/classes/sun/tools/tree/BinaryExpression.java.i
 data/test/java/io/Serializable/superclassDataLoss/Test.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/PermissionImpl.java.i
 data/test/java/util/Locale/data/deflocale.c.i
 data/src/share/classes/sun/rmi/transport/ObjectEndpoint.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/DoubleCalls.java.i
 data/src/solaris/classes/sun/awt/X11/genhash.awk.i
 data/src/share/classes/sun/awt/geom/Order0.java.i
 data/src/linux/doc/man/ja/jstat.1.i
 data/src/share/demo/jvmti/hprof/hprof_reference.c.i
 data/src/share/classes/javax/sql/rowset/Predicate.java.i
 data/src/share/classes/java/nio/channels/WritableByteChannel.java.i
-data/src/share/classes/sun/nio/cs/FastCharsetProvider.java.i
+data/src/share/classes/com/sun/crypto/provider/KeyGeneratorCore.java.i
+data/src/share/classes/sun/net/www/protocol/http/Handler.java.i
 data/make/tools/swing-beans/beaninfo/images/JWindowMono32.gif.i
-data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java.i
 data/test/sun/security/pkcs11/fips/key3.db.i
+data/test/tools/launcher/ChangeDataModel.sh.i
+data/test/java/util/PluggableLocale/providersrc/java.util.spi.LocaleNameProvider.i
 data/src/share/classes/java/awt/AWTPermission.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_pt_BR.properties.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/OutputListener.java.i
@@ -10237,33 +9967,34 @@ data/src/share/classes/javax/swing/JDesktopPane.java.i
 data/src/share/classes/javax/management/monitor/CounterMonitorMBean.java.i
 data/src/share/native/sun/security/ec/impl/ecl-priv.h.i
 data/src/windows/classes/sun/java2d/opengl/WGLVolatileSurfaceManager.java.i
-data/test/java/rmi/Naming/LookupNameWithColon.java.i
+data/test/com/sun/tools/extcheck/TestExtcheckArgs.java.i
+data/src/share/classes/javax/swing/text/rtf/RTFAttribute.java.i
 data/src/share/classes/java/nio/file/InvalidPathException.java.i
-data/src/share/native/java/util/zip/zlib-1.1.3/deflate.h.i
+data/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c.i
+data/src/share/classes/sun/tools/tree/CheckContext.java.i
 data/src/share/classes/sun/security/ssl/EphemeralKeyManager.java.i
-data/src/share/classes/sun/security/provider/X509Factory.java.i
-data/test/java/util/Objects/BasicObjectsTest.java.i
-data/test/sun/security/tools/policytool/UsePolicy.html.i
+data/src/solaris/classes/sun/awt/motif/MWindowAttributes.java.i
+data/test/java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency_Stub.java.i
 data/make/mksample/webservices/EbayClient/Makefile.i
 data/src/share/classes/javax/swing/plaf/nimbus/skin.laf.i
-data/src/share/classes/java/util/logging/FileHandler.java.i
+data/test/java/net/URLClassLoader/jars/class_path_test_classpath.jar.i
+data/src/share/native/sun/security/ec/impl/secitem.c.i
 data/src/share/classes/com/sun/tools/example/debug/event/WatchpointEventSet.java.i
 data/test/java/lang/management/ThreadMXBean/ResetPeakThreadCount.java.i
 data/src/windows/classes/sun/awt/windows/WPageDialogPeer.java.i
 data/src/share/classes/sun/font/StandardTextSource.java.i
 data/src/share/classes/com/sun/beans/decoder/ByteElementHandler.java.i
-data/test/java/beans/XMLEncoder/Test6176120.java.i
+data/test/sun/net/www/protocol/http/CloseOptionHeader.java.i
 data/src/share/classes/javax/management/timer/TimerMBean.java.i
 data/src/share/classes/sun/swing/UIAction.java.i
 data/src/share/classes/java/util/Scanner.java.i
-data/src/share/classes/java/awt/image/DataBufferShort.java.i
+data/src/share/classes/java/awt/Scrollbar.java.i
 data/src/share/native/sun/java2d/ShaderList.c.i
 data/src/share/classes/javax/swing/JRadioButton.java.i
 data/test/javax/swing/JFileChooser/6738668/bug6738668.java.i
 data/src/share/classes/javax/swing/text/rtf/charsets/mac.txt.i
-data/test/java/net/InetSocketAddress/ToString.java.i
-data/src/share/classes/java/io/NotSerializableException.java.i
-data/test/java/lang/HashCode.java.i
+data/test/java/rmi/server/RMIClassLoader/spi/Property.java.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/CustomUIDefault.java.i
 data/src/share/classes/sun/io/CharToByteCp1112.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/DayTimeServerImpl.java.i
 data/src/solaris/classes/sun/awt/X11/XLabelPeer.java.i
@@ -10271,12 +10002,13 @@ data/src/share/native/sun/security/pkcs11/wrapper/p11_general.c.i
 data/test/com/sun/jdi/sde/SourceDebugExtensionTest.java.i
 data/src/share/classes/sun/security/util/AuthResources_sv.java.i
 data/src/share/classes/javax/swing/DefaultRowSorter.java.i
-data/src/share/classes/java/sql/package.html.i
+data/src/share/classes/sun/util/resources/LocaleNames.properties.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/security.policy.i
-data/test/java/nio/channels/etc/NetworkChannelTests.java.i
-data/src/solaris/classes/sun/awt/X11InputMethod.java.i
+data/test/java/nio/file/Path/CopyAndMove.java.i
+data/src/share/classes/javax/swing/plaf/metal/icons/ocean/expanded.gif.i
 data/src/share/classes/com/sun/jmx/snmp/internal/package.html.i
-data/test/java/security/cert/CertPathBuilder/selfIssued/openssl.cnf.i
+data/src/share/classes/javax/swing/SizeSequence.java.i
+data/src/share/classes/sun/jvmstat/monitor/event/package.html.i
 data/src/share/classes/java/awt/doc-files/Modality.html.i
 data/test/java/io/Serializable/wrongReturnTypes/Write.java.i
 data/src/share/classes/java/dyn/NoAccessException.java.i
@@ -10285,416 +10017,411 @@ data/src/share/classes/javax/crypto/SecretKeyFactory.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_mt.properties.i
 data/src/share/classes/sun/nio/cs/ext/IBM942C.java.i
 data/src/share/classes/javax/swing/tree/TreeNode.java.i
-data/test/java/util/Arrays/Fill.java.i
 data/test/java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java.i
-data/test/javax/management/mxbean/GenericTypeTest.java.i
+data/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java.i
 data/test/java/beans/XMLEncoder/javax_swing_border_EmptyBorder.java.i
 data/src/windows/classes/sun/awt/windows/WDropTargetContextPeer.java.i
-data/test/java/security/Policy/GetInstance/GetInstanceSecurity.java.i
-data/src/share/classes/com/sun/jmx/snmp/agent/SnmpStandardMetaServer.java.i
-data/test/java/net/InetSocketAddress/B6469803.java.i
+data/src/share/classes/com/sun/tools/example/debug/bdi/FrameIndexOutOfBoundsException.java.i
+data/test/sun/security/provider/PolicyParser/ExtDirsB.java.i
 data/src/windows/native/sun/windows/awt_KeyboardFocusManager.h.i
 data/src/share/classes/com/sun/jdi/event/package.html.i
-data/src/share/classes/sun/security/krb5/internal/crypto/ArcFourHmacEType.java.i
+data/src/solaris/doc/sun/man/man1/rmid.1.i
 data/src/share/demo/jfc/Font2DTest/Font2DTestApplet.java.i
 data/src/share/classes/javax/security/auth/callback/ConfirmationCallback.java.i
 data/src/share/classes/java/util/IllegalFormatCodePointException.java.i
-data/src/solaris/classes/sun/awt/motif/X11KSC5601.java.i
+data/src/share/classes/com/sun/jmx/mbeanserver/Util.java.i
 data/src/share/classes/com/sun/media/sound/DirectAudioDevice.java.i
+data/make/tools/swing-beans/beaninfo/images/JToggleButtonColor16.gif.i
 data/src/share/classes/javax/swing/text/BadLocationException.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/CanonicalizationException.java.i
 data/src/share/native/java/io/io_util.h.i
-data/test/sun/security/smartcardio/TestConnect.java.i
 data/test/java/io/RandomAccessFile/EOF.java.i
-data/src/share/native/sun/awt/medialib/mlib_ImageClipping.h.i
-data/test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/FileListTransferable.java.i
-data/src/share/native/sun/java2d/loops/MaskFill.c.i
-data/src/windows/classes/sun/java2d/d3d/D3DRenderQueue.java.i
+data/src/solaris/native/sun/awt/swing_GTKStyle.c.i
+data/src/share/classes/sun/tools/tree/ConditionVars.java.i
 data/src/share/classes/sun/security/x509/URIName.java.i
 data/src/share/sample/jmx/jmx-scandir/docfiles/remote-connection.jpg.i
 data/src/share/classes/java/beans/IndexedPropertyChangeEvent.java.i
-data/src/share/classes/javax/swing/plaf/multi/MultiViewportUI.java.i
 data/make/tools/dtdbuilder/dtds/HTMLlat1.sgml.i
 data/src/share/native/java/lang/fdlibm/src/s_atan.c.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/SSLEngineDeadlock.java.i
 data/test/java/util/ResourceBundle/Control/DefaultControlTest.java.i
-data/src/share/classes/sun/security/rsa/SunRsaSign.java.i
+data/test/java/beans/XMLEncoder/javax_swing_JLayeredPane.java.i
 data/test/java/lang/StringBuilder/Supplementary.java.i
-data/src/share/classes/sun/nio/cs/ext/MacRomania.java.i
-data/src/share/classes/sun/java2d/pipe/GlyphListLoopPipe.java.i
-data/src/share/native/java/lang/fdlibm/src/s_cos.c.i
+data/test/java/nio/file/Files/grantAll.policy.i
+data/src/windows/hpi/src/threads_md.c.i
 data/test/com/sun/jdi/redefine/RedefineTest.java.i
-data/src/windows/classes/sun/awt/windows/WFontPeer.java.i
-data/src/share/classes/sun/nio/fs/AbstractWatchService.java.i
+data/src/share/classes/java/awt/im/package.html.i
+data/test/sun/security/pkcs11/nss/lib/windows-i586/libplds4.dll.i
 data/src/share/classes/java/util/ServiceLoader.java.i
 data/src/share/classes/sun/io/CharToByteCp868.java.i
 data/src/share/classes/sun/io/ByteToCharBig5.java.i
 data/src/share/classes/sun/security/provider/certpath/X509CertPath.java.i
-data/src/share/classes/javax/net/ssl/SSLContext.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/CachedXPathAPIHolder.java.i
+data/src/solaris/classes/sun/java2d/x11/X11PMBlitLoops.java.i
+data/src/share/classes/com/sun/jdi/StackFrame.java.i
 data/test/javax/sound/midi/Gervill/RiffReaderWriter/Skip.java.i
 data/src/share/classes/sun/io/ByteToCharISO8859_7.java.i
 data/test/java/lang/ref/NullQueue.java.i
-data/src/share/classes/sun/java2d/cmm/ColorTransform.java.i
+data/src/windows/javavm/export/jawt_md.h.i
 data/test/sun/security/provider/PolicyFile/Utf8.java.i
-data/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java.i
+data/test/javax/management/monitor/CounterMonitorInitThresholdTest.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_fr_FR.properties.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/StorageResolver.java.i
 data/test/tools/pack200/pack200-verifier/src/xmlkit/TokenList.java.i
 data/test/javax/swing/JMenuItem/7036148/bug7036148.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageConv_32nw.c.i
-data/test/java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java.i
-data/src/share/demo/applets/GraphicsTest/AppletFrame.java.i
-data/test/java/nio/channels/Channels/ReadOffset.java.i
-data/src/share/classes/sun/tools/jconsole/inspector/XMBean.java.i
+data/test/java/rmi/activation/Activatable/restartService/security.policy.i
+data/test/java/net/Socket/SetSoLinger.java.i
+data/test/java/rmi/activation/Activatable/restartCrashedService/RestartCrashedService.java.i
+data/make/tools/classanalyzer/classanalyzer.html.i
 data/src/share/native/sun/font/layout/LEFontInstance.cpp.i
-data/test/sun/rmi/rmic/classFileVersion/run.sh.i
-data/test/java/rmi/reliability/benchmark/bench/serial/FloatArrays.java.i
+data/src/share/native/sun/security/ec/ecl.h.i
 data/test/sun/rmi/rmic/newrmic/equivalence/ComputeServerImpl.java.i
 data/src/share/classes/javax/swing/text/html/FrameSetView.java.i
-data/src/share/classes/javax/net/ssl/SSLServerSocketFactory.java.i
+data/src/share/classes/javax/crypto/spec/PBEKeySpec.java.i
 data/src/share/classes/javax/management/ObjectInstance.java.i
 data/src/share/classes/java/awt/ScrollPaneAdjustable.java.i
-data/test/java/util/Locale/PrintDefaultLocale.java.i
-data/src/share/demo/jfc/SampleTree/resources/images/expanded.gif.i
+data/src/share/classes/javax/swing/border/AbstractBorder.java.i
 data/src/share/classes/sun/nio/cs/ext/MacRoman.java.i
-data/src/solaris/classes/sun/nio/ch/FileKey.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libnspr4.so.i
+data/src/share/sample/scripting/scriptpad/README.txt.i
 data/src/share/classes/javax/management/ObjectNameTemplate.java.i
-data/src/share/classes/com/sun/jmx/namespace/NamespaceInterceptor.java.i
-data/src/share/classes/java/util/EnumSet.java.i
+data/src/share/classes/javax/swing/text/PlainView.java.i
+data/src/share/sample/jmx/jmx-scandir/index.html.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/GroupImpl.java.i
-data/test/java/net/URLConnection/UNCTest.sh.i
 data/test/java/nio/charset/coders/Check.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifSplitPaneDivider.java.i
-data/src/windows/classes/sun/awt/windows/WMenuBarPeer.java.i
 data/src/share/classes/sun/awt/AppContext.java.i
-data/src/share/classes/com/sun/security/auth/PrincipalComparator.java.i
-data/test/javax/security/auth/Subject/Synch2.policy.i
+data/test/java/beans/XMLDecoder/spec/TestLong.java.i
+data/src/solaris/doc/sun/man/man1/rmiregistry.1.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTableHeaderUI.java.i
-data/src/windows/native/java/io/Win32FileSystem_md.c.i
+data/test/javax/management/MBeanServer/OldMBeanServerTest.java.i
 data/src/windows/native/sun/windows/Hashtable.h.i
 data/src/share/classes/java/rmi/activation/Activatable.java.i
 data/src/share/classes/javax/swing/RepaintManager.java.i
+data/src/share/classes/javax/swing/plaf/synth/SynthMenuItemLayoutHelper.java.i
 data/src/share/classes/com/sun/crypto/provider/BlowfishCrypt.java.i
 data/src/share/classes/sun/security/jgss/wrapper/NativeGSSContext.java.i
-data/test/javax/print/applet/applet2/Applet2PrintService.java.i
-data/src/share/classes/java/awt/doc-files/RadialGradientPaint-3.png.i
+data/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ImplicitHandshake.java.i
+data/test/java/util/jar/JarEntry/test.jar.i
 data/src/share/classes/com/sun/tools/example/debug/tty/ReferenceTypeSpec.java.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageConvVersion.c.i
 data/src/share/native/java/lang/Object.c.i
-data/test/javax/crypto/spec/DESKeySpec/CheckWeakKeys.java.i
-data/src/share/native/sun/font/layout/GlyphPositionAdjustments.cpp.i
-data/test/java/util/Collections/NCopies.java.i
-data/src/share/classes/com/sun/jdi/Mirror.java.i
+data/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java.i
+data/src/windows/classes/sun/awt/windows/WTrayIconPeer.java.i
+data/make/sun/security/jgss/wrapper/FILES_c.gmk.i
+data/src/share/classes/sun/tools/asm/StringExpressionConstantData.java.i
 data/test/java/util/Locale/serialized/java6locale_no_NO_NY.i
-data/test/java/util/concurrent/ThreadPoolExecutor/ShutdownNowExecuteRace.java.i
+data/src/share/classes/javax/management/BetweenQueryExp.java.i
+data/src/share/classes/java/awt/geom/Arc2D.java.i
+data/src/share/classes/org/openjdk/jigsaw/PathLinker.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java.i
-data/src/share/classes/com/sun/tools/example/debug/bdi/NoSessionException.java.i
-data/src/share/classes/sun/dyn/AdapterMethodHandle.java.i
+data/test/java/util/Locale/PrintDefaultLocale.java.i
+data/src/solaris/transport/socket/socket_md.c.i
 data/src/share/classes/javax/swing/MenuElement.java.i
-data/test/javax/swing/JSpinner/6463712/bug6463712.java.i
+data/src/share/classes/sun/security/krb5/internal/AuthorizationDataEntry.java.i
 data/src/share/classes/sun/io/CharToByteCp922.java.i
 data/test/java/lang/instrument/ManifestTestApp.java.i
-data/src/solaris/hpi/native_threads/include/condvar_md.h.i
+data/test/java/beans/XMLDecoder/spec/TestNull.java.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/ExportObjs.java.i
-data/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java.i
+data/test/java/util/jar/JarFile/SorryClosed.java.i
 data/src/share/classes/sun/security/action/GetBooleanAction.java.i
-data/test/java/beans/XMLEncoder/java_util_Collections_CheckedSortedMap.java.i
-data/test/java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java.i
+data/test/com/sun/tools/extcheck/TestExtcheckArgs.sh.i
+data/test/java/util/ResourceBundle/Control/Bug6530694.java.i
 data/make/tools/swing-beans/beaninfo/images/JDialogColor32.gif.i
 data/test/java/lang/StrictMath/Tests.java.i
 data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputTests.java.i
-data/src/share/classes/javax/management/event/FetchingEventForwarder.java.i
-data/src/share/classes/sun/rmi/transport/Transport.java.i
-data/src/share/sample/nio/chatserver/README.txt.i
-data/src/share/classes/java/awt/doc-files/GridLayout-1.gif.i
-data/src/share/classes/sun/font/BidiUtils.java.i
-data/src/share/classes/javax/net/ssl/ExtendedSSLSession.java.i
+data/src/share/classes/javax/sound/midi/Patch.java.i
+data/src/share/classes/sun/text/resources/FormatData_ja_JP_JP.java.i
+data/src/share/classes/java/sql/SQLOutput.java.i
+data/src/windows/classes/sun/awt/windows/fontconfig.98.properties.i
+data/src/solaris/native/sun/awt/awt_TopLevel.h.i
+data/src/share/classes/java/lang/VerifyError.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java.i
-data/src/share/classes/javax/smartcardio/CardPermission.java.i
-data/src/share/classes/javax/management/MXBean.java.i
+data/src/share/native/sun/java2d/cmm/lcms/cmssm.c.i
+data/test/sun/rmi/runtime/Log/6409194/logging.properties.i
 data/src/share/classes/javax/net/ssl/SSLPermission.java.i
 data/src/share/classes/sun/swing/MenuItemCheckIconFactory.java.i
 data/test/java/lang/instrument/FakeTestDriver.java.i
 data/src/solaris/classes/sun/awt/X11/XErrorHandler.java.i
-data/test/sun/misc/JarIndex/metaInfFilenames/jarA/a/A.java.i
+data/test/lib/security/java.policy/Ext_AllPolicy.java.i
+data/test/java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java.i
 data/src/share/classes/sun/nio/cs/ext/EUC_JP_Open.java.i
 data/test/java/lang/instrument/PremainClass/InheritAgent1001.java.i
 data/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java.i
 data/src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c.i
-data/src/solaris/native/java/lang/locale_str.h.i
-data/src/share/sample/nio/server/Reply.java.i
+data/test/com/sun/jdi/StringConvertTest.sh.i
+data/test/sun/security/x509/AlgorithmId/TurkishRegion.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicColorChooserUI.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM861.java.i
-data/src/share/demo/jfc/Metalworks/BigContrastMetalTheme.java.i
 data/src/share/classes/sun/io/ByteToCharMacIceland.java.i
 data/src/windows/native/sun/windows/awt_MenuItem.h.i
 data/test/com/sun/jdi/RedefineException.sh.i
 data/src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.5.8.properties.i
-data/test/java/net/Socket/AccurateTimeout.java.i
-data/make/tools/swing-beans/beaninfo/images/JFileChooserColor16.gif.i
-data/make/tools/swing-beans/beaninfo/SwingBeanInfoBase.java.i
+data/src/share/classes/java/lang/invoke/MethodHandleProxies.java.i
+data/test/sun/net/www/httptest/AbstractCallback.java.i
+data/src/share/classes/sun/java2d/pipe/Region.java.i
 data/src/share/classes/java/awt/peer/CheckboxMenuItemPeer.java.i
 data/test/java/lang/String/ICCBasher.java.i
 data/src/share/native/sun/awt/image/cvutils/img_dirdither.h.i
-data/test/javax/sound/midi/Gervill/ModelDestination/SetTransform.java.i
-data/src/share/classes/java/awt/event/WindowStateListener.java.i
-data/src/share/classes/java/math/BigDecimal.java.i
+data/test/sun/security/provider/PolicyParser/ExtDirsA.java.i
+data/test/java/beans/PropertyEditor/TestByteType.java.i
+data/src/share/classes/javax/swing/plaf/synth/SynthConstants.java.i
 data/src/share/classes/java/security/ProviderException.java.i
 data/src/share/classes/java/nio/file/attribute/AclEntry.java.i
-data/src/share/classes/javax/swing/text/rtf/RTFReader.java.i
-data/test/java/lang/instrument/DummyClass.java.i
+data/src/windows/bin/amd64/jvm.cfg.i
+data/test/sun/misc/JarIndex/metaInfFilenames/jarC/META-INF/fonts/kidpr.ttf.i
 data/src/share/classes/sun/security/x509/Extension.java.i
-data/test/sun/tools/jconsole/ImmutableResourceTest.sh.i
-data/src/share/classes/sun/tools/tree/Statement.java.i
+data/test/java/util/BitSet/StickySize.java.i
 data/src/solaris/classes/sun/awt/X11/XDialogPeer.java.i
-data/src/share/classes/sun/util/locale/LocaleObjectCache.java.i
+data/src/share/classes/com/sun/jdi/InvalidTypeException.java.i
 data/src/share/native/sun/java2d/pipe/SpanClipRenderer.c.i
 data/test/java/awt/event/MouseEvent/CTORRestrictions/CTORRestrictions_Disable.java.i
 data/test/java/awt/dnd/URIListBetweenJVMsTest/FileListTransferable.java.i
 data/src/share/classes/com/sun/demo/jvmti/hprof/Tracker.java.i
 data/src/share/classes/com/sun/media/sound/ModelDestination.java.i
-data/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHTTPSConnection.java.i
 data/src/share/classes/sun/awt/OSInfo.java.i
 data/make/com/oracle/Makefile.i
-data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ComSSLContextImpl.java.i
-data/test/java/io/Serializable/duplicateSerialFields/Test.java.i
-data/src/solaris/classes/sun/nio/fs/SolarisFileStore.java.i
+data/test/sun/text/resources/Format/Bug4395196.java.i
+data/src/solaris/native/sun/nio/fs/UnixCopyFile.c.i
+data/test/sun/tools/jstat/gcOldCapacityOutput1.awk.i
 data/src/share/classes/sun/tools/jstatd/RemoteVmImpl.java.i
 data/src/share/classes/sun/io/CharToByteJohab.java.i
-data/test/java/util/concurrent/ConcurrentQueues/IteratorWeakConsistency.java.i
+data/test/javax/management/remote/mandatory/passwordAuthenticator/jmxremote.password-alt.i
+data/src/share/classes/javax/imageio/IIOParam.java.i
 data/src/share/classes/sun/audio/ContinuousAudioDataStream.java.i
 data/src/windows/native/sun/java2d/d3d/D3DGlyphCache.cpp.i
-data/src/share/classes/javax/imageio/metadata/doc-files/gif_metadata.html.i
+data/src/share/classes/sun/security/krb5/EncryptedData.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKRegion.java.i
 data/src/share/classes/java/awt/event/ComponentAdapter.java.i
-data/make/tools/README.txt.i
+data/src/share/classes/java/awt/doc-files/RadialGradientPaint-2.png.i
 data/src/share/classes/com/sun/jdi/BooleanType.java.i
 data/src/solaris/classes/sun/awt/X11/XComponentPeer.java.i
-data/test/javax/swing/plaf/metal/MetalSliderUI/Test6657026.java.i
+data/src/share/classes/javax/swing/text/Keymap.java.i
 data/src/share/classes/sun/util/resources/CalendarData_en_GB.properties.i
 data/src/solaris/classes/sun/awt/X11/java-icon16.png.i
 data/src/share/classes/java/sql/SQLInput.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_pt.properties.i
-data/src/share/classes/sun/text/resources/CollationData_bg.java.i
+data/test/java/security/KeyStore/KeyStoreBuilder.java.i
+data/test/java/nio/file/attribute/PosixFileAttributeView/Basic.java.i
 data/src/share/classes/com/sun/jmx/snmp/mpm/package.html.i
 data/test/java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.java.i
 data/test/java/lang/StringBuffer/GetCharsOverLength.java.i
 data/test/sun/tools/native2ascii/Native2AsciiTests.sh.i
-data/src/share/classes/sun/java2d/pisces/Renderer.java.i
+data/test/java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java.i
 data/src/solaris/classes/sun/awt/X11/java-icon24.png.i
-data/test/javax/management/descriptor/EqualsHashCodeTest.java.i
-data/src/share/classes/javax/management/relation/package.html.i
+data/src/share/classes/com/sun/tools/attach/VirtualMachine.java.i
+data/src/windows/native/sun/windows/awt_DrawingSurface.cpp.i
+data/src/share/classes/javax/xml/crypto/dsig/dom/DOMValidateContext.java.i
 data/src/share/classes/javax/swing/text/rtf/MockAttributeSet.java.i
 data/test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java.i
 data/test/com/sun/jmx/snmp/SnmpOidHashCode.java.i
-data/make/com/sun/security/Makefile.i
+data/src/share/classes/javax/swing/KeyStroke.java.i
+data/src/share/classes/sun/nio/cs/ext/IBM500.java.i
 data/test/com/sun/net/httpserver/bugs/B6886436.java.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageConvCopyEdge.c.i
 data/test/javax/management/generified/GenericTest.java.i
 data/test/tools/jar/UpdateManifest.java.i
-data/src/share/classes/com/sun/media/sound/FastSysexMessage.java.i
-data/test/com/sun/security/sasl/ClientCallbackHandler.java.i
-data/make/sun/cmm/lcms/mapfile-vers.i
+data/test/java/lang/management/MemoryMXBean/LowMemoryTestConcMarkSweepGC.sh.i
+data/make/tools/CharsetMapping/IBM1144.map.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpCounter.java.i
-data/test/java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java.i
+data/src/share/classes/com/sun/media/sound/ReferenceCountingDevice.java.i
 data/make/java/hpi/native/reorder-sparc.i
 data/src/windows/native/sun/nio/fs/WindowsNativeDispatcher.c.i
 data/src/share/classes/sun/audio/AudioPlayer.java.i
-data/test/sun/security/tools/jarsigner/JarSigningNonAscii.java.i
-data/src/share/classes/javax/crypto/CryptoPermissions.java.i
-data/test/javax/sound/midi/Gervill/ModelSource/SetTransform.java.i
-data/src/windows/classes/java/net/PlainSocketImpl.java.i
-data/src/solaris/demo/jni/Poller/Poller.java.i
-data/test/java/awt/Mixing/MixingOnShrinkingHWButton.java.i
+data/make/sun/management/jmxremote/Makefile.i
+data/test/java/net/URLClassLoader/B7050028.java.i
+data/test/java/util/concurrent/LinkedBlockingQueue/OfferRemoveLoops.java.i
+data/make/tools/CharsetMapping/IBM273.c2b.i
+data/test/javax/swing/JFileChooser/4252173/bug4252173.java.i
+data/test/java/security/cert/CertPathValidator/nameConstraintsRFC822/jane2jane.cer.i
+data/src/share/classes/java/math/package-info.java.i
+data/make/java/main/java/mapfile-amd64.i
 data/test/java/io/PipedInputStream/FasterWriter.java.i
 data/src/share/classes/javax/print/attribute/HashAttributeSet.java.i
 data/src/share/classes/sun/security/x509/CertificatePoliciesExtension.java.i
 data/make/tools/src/build/tools/dtdbuilder/DTDBuilder.java.i
 data/src/windows/native/sun/java2d/windows/DDBlitLoops.cpp.i
 data/test/java/rmi/activation/Activatable/shutdownGracefully/RegisteringActivatable.java.i
-data/make/common/shared/Defs.gmk.i
-data/test/java/beans/Introspector/Test4984912.java.i
-data/src/share/classes/sun/security/x509/PKIXExtensions.java.i
+data/src/share/classes/java/awt/GradientPaintContext.java.i
+data/src/share/classes/com/sun/imageio/plugins/bmp/BMPConstants.java.i
 data/src/share/classes/com/sun/net/ssl/KeyManagerFactorySpi.java.i
-data/test/javax/management/remote/mandatory/loading/UserClassLoaderTest.java.i
+data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ProxyTunnelServer.java.i
 data/test/java/rmi/activation/Activatable/checkRegisterInLog/CheckRegisterInLog_Stub.java.i
 data/src/share/classes/java/lang/Runtime.java.i
 data/src/solaris/doc/sun/man/man1/ja/extcheck.1.i
-data/test/java/util/ResourceBundle/Bug4168625Resource3.java.i
+data/src/solaris/classes/sun/print/UnixPrintJob.java.i
 data/src/share/classes/sun/tools/java/ClassDeclaration.java.i
-data/src/share/native/sun/java2d/loops/ByteBinary1Bit.h.i
-data/src/share/classes/java/lang/annotation/package-info.java.i
+data/test/java/util/Locale/LocaleEnhanceTest.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/MonitoredHostProvider.java.i
 data/src/share/classes/com/sun/tools/example/debug/expr/Token.java.i
-data/test/javax/management/notification/SupportClearTest.java.i
 data/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/KMTMGetNothing.java.i
 data/make/sun/cmm/kcms/FILES_c_windows.gmk.i
 data/src/share/javavm/export/jni.h.i
 data/src/share/classes/java/net/HttpURLConnection.java.i
 data/src/solaris/native/sun/java2d/x11/X11SurfaceData.c.i
 data/test/java/util/TimSort/Sorter.java.i
-data/src/share/classes/sun/io/ByteToCharCp737.java.i
+data/test/com/sun/jdi/sde/TemperatureTable.jsp.i
+data/src/share/classes/sun/rmi/rmic/newrmic/Resources.java.i
 data/src/share/classes/javax/swing/JButton.java.i
 data/test/javax/management/mxbean/OperationImpactTest.java.i
+data/src/share/native/sun/font/sunFont.c.i
 data/src/share/classes/sun/security/ssl/EngineWriter.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuBarUI.java.i
-data/test/sun/java2d/cmm/ColorConvertOp/RGBColorConvertTest.java.i
+data/test/javax/management/namespace/ExportNamespaceTest.java.i
+data/src/share/demo/jfc/SampleTree/SampleTree.java.i
 data/test/java/net/PlainSocketImpl/BigBacklog.java.i
-data/test/sun/nio/cs/TestISO2022JPEncoder.java.i
 data/src/share/classes/com/sun/media/sound/SoftMidiAudioFileReader.java.i
 data/src/share/classes/sun/security/krb5/internal/KDCOptions.java.i
 data/src/share/native/sun/awt/debug/debug_util.c.i
 data/test/java/beans/PropertyEditor/TestStringClassJava.java.i
-data/src/share/classes/sun/jvmstat/monitor/event/VmStatusChangeEvent.java.i
-data/src/share/classes/com/sun/beans/finder/ConstructorFinder.java.i
+data/test/java/security/cert/CertPathValidator/nameConstraints/NameConstraintsWithoutRID.java.i
+data/test/javax/sound/midi/Gervill/DLSSoundbankReader/TestGetSoundbankInputStream2.java.i
 data/src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java.i
-data/src/share/classes/sun/io/ByteToCharHKSCS_2001.java.i
+data/test/java/io/PushbackInputStream/Available.java.i
 data/test/javax/swing/JInternalFrame/Test6505027.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_zh_SG.java.i
 data/src/solaris/classes/sun/nio/ch/DatagramDispatcher.java.i
 data/test/javax/management/standardmbean/RegistrationTest.java.i
-data/test/javax/management/Introspector/IsMethodTest.java.i
 data/src/solaris/native/sun/java2d/loops/vis_AlphaMacros.c.i
+data/test/com/sun/security/sasl/digest/pw.properties.i
 data/src/share/classes/javax/swing/Action.java.i
-data/src/share/native/sun/management/MemoryPoolImpl.c.i
+data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain2.txt.i
 data/src/share/classes/sun/tools/java/Identifier.java.i
 data/test/sun/nio/cs/MalformedSurrogates.java.i
-data/test/java/util/jar/Attributes/PutAndPutAll.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsPasswordFieldUI.java.i
 data/src/share/classes/sun/net/www/protocol/mailto/Handler.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsDesktopIconUI.java.i
-data/src/share/classes/javax/swing/plaf/metal/icons/ocean/minimize-pressed.gif.i
-data/test/sun/tools/jstatd/usage.out.i
-data/src/share/classes/java/lang/Readable.java.i
-data/src/share/classes/java/awt/CompositeContext.java.i
+data/src/share/classes/com/sun/beans/decoder/PropertyElementHandler.java.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifRadioButtonUI.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_in.properties.i
+data/src/share/classes/javax/naming/NameAlreadyBoundException.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/DSAKeyValueResolver.java.i
+data/src/share/native/sun/font/layout/GXLayoutEngine.cpp.i
 data/test/java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html.i
-data/src/share/classes/sun/tools/tree/LocalMember.java.i
+data/src/share/classes/javax/swing/text/html/HTMLEditorKit.java.i
+data/src/share/classes/java/net/SocketPermission.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/icons/Computer.gif.i
 data/src/share/classes/javax/sound/midi/MidiEvent.java.i
-data/src/share/classes/javax/management/JMException.java.i
+data/src/share/classes/sun/io/CharToByteMacTurkish.java.i
 data/src/share/classes/java/beans/beancontext/BeanContextMembershipListener.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/infutil.c.i
-data/test/java/lang/ClassLoader/Assert.sh.i
 data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_it.properties.i
-data/src/share/classes/com/sun/java/swing/plaf/gtk/icons/image-delayed.png.i
-data/src/share/classes/sun/security/krb5/internal/KRBPriv.java.i
-data/test/javax/sound/midi/Gervill/SoftChannel/NoteOverFlowTest2.java.i
+data/src/share/classes/sun/security/provider/X509Factory.java.i
+data/src/share/classes/sun/security/util/DerOutputStream.java.i
 data/src/share/classes/sun/applet/resources/MsgAppletViewer_fr.java.i
-data/src/share/classes/sun/rmi/transport/TransportConstants.java.i
 data/src/share/native/sun/font/layout/HebrewShaping.cpp.i
-data/test/javax/imageio/plugins/jpeg/ReadAsGrayTest.java.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/Open.java.i
 data/test/com/sun/crypto/provider/TLS/TestPRF.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalIconFactory.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_TW.properties.i
+data/src/share/native/sun/misc/VMSupport.c.i
 data/src/share/classes/javax/security/auth/x500/X500PrivateCredential.java.i
-data/test/java/beans/Introspector/memory/SimpleClassLoader.java.i
-data/test/javax/management/remote/mandatory/subjectDelegation/policy21.i
-data/test/javax/swing/JFileChooser/6342301/bug6342301.java.i
+data/test/java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java.i
+data/src/share/classes/com/sun/naming/internal/NamedWeakReference.java.i
 data/test/java/awt/dnd/FileListBetweenJVMsTest/TargetFileListFrame.java.i
-data/src/share/classes/com/sun/media/sound/SoftPointResampler.java.i
+data/test/sun/security/pkcs11/SecureRandom/Basic.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/log4j.properties.i
-data/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Ports.c.i
-data/src/share/classes/sun/tracing/NullProviderFactory.java.i
+data/test/sun/security/tools/policytool/SaveAs.sh.i
+data/make/tools/CharsetMapping/IBM1123.map.i
 data/test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableSet.java.i
 data/test/javax/management/openmbean/GenericMBeanExceptionTest.java.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpEngineParameters.java.i
+data/test/javax/management/remote/mandatory/connection/BrokenConnectionTest.java.i
 data/src/share/classes/sun/jvmstat/monitor/package.html.i
 data/src/share/classes/sun/font/Font2D.java.i
 data/src/share/classes/java/beans/Beans.java.i
-data/src/share/classes/sun/reflect/ConstructorAccessor.java.i
-data/test/java/rmi/registry/interfaceHash/ReferenceRegistryStub.java.i
+data/test/javax/management/notification/SupportClearTest.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/XMLUtils.java.i
 data/src/share/classes/sun/management/snmp/util/package.html.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java.i
 data/test/java/util/IdentityHashMap/ToString.java.i
+data/test/javax/swing/text/Utilities/bug7045593.java.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerArray.java.i
 data/test/java/awt/print/Dialog/PaperSizeError.java.i
 data/src/linux/doc/man/javadoc.1.i
 data/src/share/classes/java/awt/datatransfer/package.html.i
 data/test/sun/security/tools/jarsigner/PercentSign.sh.i
-data/src/share/classes/java/awt/TexturePaint.java.i
-data/test/javax/management/namespace/JMXRemoteTargetNamespace.java.i
-data/src/share/classes/java/util/prefs/NodeChangeListener.java.i
+data/src/share/classes/sun/tools/asm/LocalVariable.java.i
+data/src/share/classes/java/awt/doc-files/TextField-1.gif.i
+data/src/share/classes/javax/imageio/metadata/IIOMetadataController.java.i
 data/src/share/classes/java/nio/file/attribute/BasicFileAttributes.java.i
 data/src/share/classes/sun/jvmstat/monitor/event/VmEvent.java.i
 data/test/java/lang/Class/forName/classes/left-square.class.i
-data/make/java/util/FILES_properties.gmk.i
+data/src/share/classes/com/sun/jdi/event/ExceptionEvent.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpGenericObjectServer.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/BlendingMode.java.i
-data/src/share/classes/javax/management/modelmbean/XMLParseException.java.i
-data/src/windows/native/sun/font/lcdglyph.c.i
+data/src/share/classes/sun/text/resources/FormatData_el.java.i
+data/make/java/java_hprof_demo/Makefile.i
+data/test/java/io/Serializable/wrongReturnTypes/Read.java.i
 data/make/tools/freetypecheck/Makefile.i
 data/src/share/sample/jmx/jmx-scandir/nbproject/file-targets.xml.i
 data/test/java/nio/file/Path/CheckPermissions.java.i
-data/src/share/classes/javax/swing/ComponentInputMap.java.i
+data/make/tools/CharsetMapping/IBM284.c2b.i
 data/test/java/rmi/testlibrary/JavaVM.java.i
-data/test/com/sun/servicetag/DuplicateNotFound.java.i
+data/test/sun/management/jmxremote/bootstrap/management_test06_ok.properties.in.i
 data/src/share/classes/javax/naming/event/NamingListener.java.i
-data/src/share/classes/java/security/cert/CertificateRevokedException.java.i
-data/test/java/awt/FileDialog/MultipleMode/MultipleMode.java.i
+data/src/share/classes/javax/security/auth/login/LoginException.java.i
+data/src/share/classes/sun/nio/cs/ext/IBM278.java.i
 data/src/share/classes/sun/io/CharToByteJIS0212_Solaris.java.i
-data/src/linux/doc/man/ja/jarsigner.1.i
+data/src/share/classes/com/sun/jmx/snmp/tasks/Task.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/PainterBorder.java.i
-data/test/java/nio/channels/Selector/CloseThenRegister.java.i
-data/src/share/classes/javax/swing/plaf/nimbus/PainterImpl.template.i
+data/src/share/classes/sun/util/resources/CurrencyNames_es_PY.properties.i
+data/test/java/io/BufferedInputStream/SkipTest.java.i
 data/src/solaris/classes/sun/java2d/xr/XRSurfaceDataProxy.java.i
+data/src/linux/doc/man/ja/jstack.1.i
 data/src/share/classes/java/lang/SecurityManager.java.i
 data/src/share/classes/java/util/concurrent/atomic/AtomicReference.java.i
-data/src/share/native/java/security/AccessController.c.i
-data/src/share/classes/org/openjdk/internal/joptsimple/ArgumentAcceptingOptionSpec.java.i
+data/test/java/beans/Introspector/Test6528714.java.i
+data/test/sun/rmi/rmic/covariantReturns/G5Impl.java.i
 data/src/share/classes/com/sun/rowset/internal/XmlReaderContentHandler.java.i
 data/src/share/classes/com/sun/tools/jdi/META-INF/services/com.sun.jdi.connect.Connector.i
 data/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java.i
 data/src/share/demo/jfc/TableExample/TableExample4.java.i
 data/test/sun/net/www/EncDec.doc.i
+data/src/share/classes/sun/java2d/loops/GraphicsPrimitiveProxy.java.i
+data/src/share/native/sun/java2d/loops/Index8Gray.c.i
 data/src/share/classes/sun/util/resources/CurrencyNames_de_LU.properties.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpTooBigException.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/ServerHandler.java.i
-data/src/share/classes/com/sun/imageio/plugins/common/BogusColorSpace.java.i
-data/test/java/lang/Runtime/exec/StreamsSurviveDestroy.java.i
-data/src/share/classes/sun/tools/javac/CompilerMember.java.i
+data/src/share/classes/javax/swing/plaf/ColorUIResource.java.i
+data/src/share/classes/sun/text/resources/FormatData_es_HN.java.i
+data/test/javax/sound/midi/Gervill/SoftChannel/NoteOverFlowTest.java.i
+data/test/sun/text/resources/Collator/Bug4848897.java.i
 data/src/windows/npt/utf_md.c.i
 data/test/javax/management/ObjectName/ValueWildcardTest.java.i
-data/src/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java.i
 data/src/windows/native/sun/java2d/d3d/D3DUtils.h.i
 data/src/share/native/java/util/zip/zlib-1.2.3/crc32.h.i
 data/test/java/rmi/activation/Activatable/downloadParameterClass/DownloadParameterClass.java.i
-data/src/share/classes/javax/xml/crypto/KeySelector.java.i
+data/test/java/lang/instrument/RedefineClassWithNativeMethod.sh.i
 data/src/share/classes/java/text/DateFormat.java.i
 data/test/sun/security/provider/SeedGenerator/Awt_Hang_Test.java.i
-data/src/solaris/classes/sun/awt/X11/XHorizontalScrollbar.java.i
-data/src/solaris/classes/sun/nio/fs/LinuxNativeDispatcher.java.i
+data/test/sun/nio/cs/TestEUC_TW.java.i
+data/test/org/openjdk/jigsaw/cli/ModuleFormatTest01.sh.i
+data/make/sun/jdga/Makefile.i
 data/src/share/classes/sun/awt/image/DataBufferNative.java.i
-data/test/java/net/URLClassLoader/closetest/test1/com/foo/TestClass1.java.i
-data/test/java/beans/Introspector/4750368/com/foo/test/Component.java.i
 data/make/tools/src/build/tools/charsetmapping/JIS0213.java.i
-data/test/java/awt/dnd/URIListBetweenJVMsTest/TargetFileListFrame.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/Manifest.java.i
 data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipConstants.java.i
 data/test/java/util/Random/NextBytes.java.i
-data/make/com/sun/servicetag/Makefile.i
-data/test/javax/management/remote/mandatory/passwordAccessFile/NonJMXPrincipalsTest.java.i
+data/src/share/demo/jvmti/waiters/waiters.cpp.i
 data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBufferAudioFormatFloat.java.i
 data/src/share/demo/applets/Fractal/CLSFractal.java.i
+data/src/share/classes/sun/misc/GC.java.i
 data/test/java/awt/font/TextLayout/DecorationBoundsTest.java.i
-data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiUtils.c.i
 data/src/share/demo/applets/SpreadSheet/example1.html.i
-data/make/sun/nio/FILES_java.gmk.i
-data/src/share/classes/javax/print/attribute/standard/JobHoldUntil.java.i
-data/test/sun/security/pkcs11/Provider/Login.java.i
+data/test/sun/security/pkcs11/ec/ReadPKCS12.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java.i
+data/src/share/classes/com/sun/tools/example/debug/bdi/SourceNameReferenceTypeSpec.java.i
+data/test/sun/security/provider/PolicyParser/ExpansionErrorMisleading.java.i
+data/src/solaris/classes/sun/nio/ch/SctpAssocChange.java.i
 data/test/java/rmi/activation/Activatable/shutdownGracefully/group.security.policy.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/EffectUtilsTemp.java.i
 data/test/java/io/Serializable/partialClassDesc/PartialClassDesc.java.i
-data/src/linux/doc/man/policytool.1.i
+data/src/share/classes/org/openjdk/jigsaw/LibraryPool.java.i
 data/src/share/classes/com/sun/tools/jdi/LocalVariableImpl.java.i
-data/src/solaris/classes/sun/nio/ch/SctpMultiChannelImpl.java.i
-data/test/java/awt/event/KeyEvent/CorrectTime/CorrectTime.java.i
-data/src/share/classes/sun/java2d/pipe/TextPipe.java.i
-data/src/share/classes/sun/io/CharToByteCp285.java.i
+data/test/java/nio/channels/FileChannel/TransferToNonWritable.java.i
+data/test/java/lang/instrument/BootClassPath/Setup.java.i
+data/src/share/back/error_messages.h.i
+data/src/share/classes/sun/nio/cs/SingleByteDecoder.java.i
 data/src/windows/classes/sun/awt/windows/awtLocalization_fr.properties.i
+data/test/java/io/Serializable/replaceStringArray/ReplaceStringArray.java.i
 data/make/mkdemo/jfc/SwingSet3/Makefile.i
 data/src/share/native/java/util/zip/zlib-1.1.3/infutil.h.i
 data/make/sun/javazic/tzdata/VERSION.i
-data/test/javax/management/Introspector/AnnotationSecurityTest.java.i
 data/src/share/classes/java/lang/reflect/Type.java.i
 data/src/share/classes/sun/rmi/server/UnicastRef.java.i
 data/src/share/native/sun/security/ec/impl/ecp_mont.c.i
@@ -10702,182 +10429,184 @@ data/src/share/classes/javax/management/BadStringOperationException.java.i
 data/src/share/classes/sun/security/x509/CertificateIssuerName.java.i
 data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/TestAllSuites.java.i
 data/test/java/nio/channels/Selector/BasicAccept.java.i
-data/src/share/classes/javax/xml/crypto/dsig/SignedInfo.java.i
+data/test/java/net/Socket/InheritTimeout.java.i
 data/test/java/net/Inet6Address/serialize/Serialize.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_th_TH.properties.i
-data/test/java/security/SecureRandom/sha1prng-new.bin.i
+data/test/javax/management/MBeanServer/PreDeregisterDeadlockTest.java.i
 data/src/solaris/native/sun/awt/awt_Robot.c.i
 data/test/sun/security/pkcs11/fips/CipherTest.java.i
-data/test/tools/launcher/PrintVersion.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/EType.java.i
 data/make/tools/CharsetMapping/IBM833.c2b.i
 data/src/share/classes/java/security/Permissions.java.i
 data/test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java.i
-data/src/share/classes/javax/naming/ldap/ControlFactory.java.i
-data/src/solaris/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java.i
-data/src/windows/native/sun/windows/awt_Choice.cpp.i
-data/src/share/classes/com/sun/media/sound/DLSSample.java.i
-data/test/sun/tools/jstat/jstatClassloadOutput1.sh.i
+data/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_PCM.c.i
+data/test/javax/management/remote/mandatory/subjectDelegation/policy21.i
+data/test/javax/xml/crypto/dsig/data/certs/crl.i
+data/make/tools/GenerateCharacter/CharacterDataLatin1.java.template.i
+data/test/com/sun/security/sasl/util/CheckAccess.java.i
 data/src/share/classes/sun/util/calendar/Gregorian.java.i
 data/src/share/classes/sun/security/ssl/AppInputStream.java.i
 data/test/javax/print/attribute/AttributeTest.java.i
 data/src/share/classes/java/security/Key.java.i
+data/src/share/classes/javax/crypto/SecretKeyFactorySpi.java.i
 data/test/java/nio/channels/DatagramChannel/SelectWhenRefused.java.i
-data/src/windows/native/sun/windows/awt_IconCursor.h.i
+data/src/share/classes/sun/security/krb5/KrbAsReq.java.i
 data/test/sun/security/pkcs11/KeyStore/BasicData/basic.keystore.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformEnvelopedSignature.java.i
 data/src/share/classes/sun/io/CharToByteMacSymbol.java.i
-data/src/share/classes/java/lang/doc-files/theta.gif.i
+data/test/javax/management/namespace/VirtualMBeanNotifTest.java.i
 data/src/share/classes/sun/invoke/anon/ConstantPoolPatch.java.i
-data/make/launchers/Makefile.launcher.i
-data/test/java/io/StreamTokenizer/Comment.java.i
+data/src/share/classes/java/net/JarURLConnection.java.i
+data/make/sun/javazic/tzdata/pacificnew.i
 data/test/java/math/BigInteger/OperatorNpeTests.java.i
 data/make/sun/security/ec/FILES_c.gmk.i
-data/src/windows/native/sun/windows/awt_Window.h.i
 data/src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java.i
-data/src/share/classes/sun/io/ByteToCharCp1258.java.i
+data/test/sun/tools/jstat/lineCounts2.awk.i
 data/src/share/classes/sun/tools/jconsole/ConnectDialog.java.i
 data/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java.i
-data/src/share/classes/javax/naming/directory/InvalidSearchControlsException.java.i
+data/src/share/classes/sun/util/resources/TimeZoneNames_en_GB.java.i
 data/src/share/classes/java/security/cert/PKIXParameters.java.i
-data/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java.i
-data/make/tools/src/build/tools/jdwpgen/TypeNode.java.i
-data/test/java/nio/file/DirectoryStream/SecureDS.java.i
-data/src/share/classes/com/sun/tools/jdi/DoubleTypeImpl.java.i
+data/test/java/util/Currency/Bug4512215.java.i
+data/src/share/classes/javax/management/NumericValueExp.java.i
+data/test/javax/management/remote/mandatory/subjectDelegation/policy35.i
 data/test/javax/swing/JColorChooser/Test4711996.java.i
-data/src/share/classes/sun/net/www/http/KeepAliveCache.java.i
+data/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java.i
+data/test/sun/net/www/protocol/http/ChunkedErrorStream.java.i
 data/test/sun/security/pkcs11/nss/lib/linux-amd64/libfreebl3.chk.i
-data/src/share/classes/com/sun/jndi/dns/ResourceRecords.java.i
+data/test/java/util/TreeMap/cr5045147.java.i
 data/src/share/classes/java/awt/print/package.html.i
 data/test/sun/security/provider/PolicyFile/Alias.keystore.i
-data/src/solaris/native/sun/nio/ch/SocketDispatcher.c.i
-data/make/modules/tools/src/com/sun/classanalyzer/ClassPath.java.i
+data/src/share/classes/com/sun/beans/WeakCache.java.i
+data/src/share/classes/javax/swing/plaf/metal/icons/Warn.gif.i
 data/src/share/classes/java/lang/Cloneable.java.i
 data/src/share/classes/javax/swing/JToggleButton.java.i
-data/src/share/demo/nbproject/jfc/FileChooserDemo/nbproject/project.xml.i
 data/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties.i
-data/make/tools/CharsetMapping/MacDingbat.map.i
-data/test/sun/security/tools/jarsigner/newsize7.sh.i
+data/test/java/net/URL/HashCode.java.i
+data/test/java/lang/management/ThreadMXBean/Locks.java.i
 data/src/share/classes/java/security/cert/PolicyQualifierInfo.java.i
 data/test/javax/management/remote/mandatory/notif/policy.positive.i
-data/src/share/classes/com/sun/jdi/request/MonitorWaitRequest.java.i
+data/src/share/demo/management/VerboseGC/README.txt.i
 data/src/share/classes/java/dyn/MethodHandle.java.i
 data/src/share/demo/jvmti/hprof/hprof_blocks.h.i
-data/test/java/io/PrintStream/FailingConstructors.java.i
+data/test/java/rmi/testlibrary/TestFailedException.java.i
 data/test/java/rmi/server/serverStackTrace/Impl1_Skel.java.i
 data/test/sun/security/pkcs11/fips/certs/server.cer.i
-data/src/share/classes/javax/swing/doc-files/groupLayout.sequential.vertical.gif.i
-data/src/share/classes/javax/naming/spi/ResolveResult.java.i
-data/test/java/io/RandomAccessFile/Close.java.i
+data/test/sun/security/pkcs11/fips/ImportKeyStore.java.i
+data/test/javax/crypto/NullCipher/TestWithoutInit.java.i
 data/src/share/classes/java/awt/peer/PopupMenuPeer.java.i
 data/src/share/classes/java/awt/dnd/Autoscroll.java.i
-data/test/java/beans/Introspector/memory/Bean2.java.i
 data/src/share/native/java/lang/fdlibm/src/e_log.c.i
 data/test/sun/rmi/transport/proxy/EagerHttpFallback.java.i
 data/test/sun/security/pkcs11/SecmodTest.java.i
-data/test/com/sun/org/apache/xml/internal/security/exceptions/LocaleTest.java.i
+data/test/sun/net/www/AuthHeaderTest.java.i
 data/test/com/sun/tools/attach/PermissionTest.java.i
 data/test/com/sun/jdi/HomeTest.java.i
-data/src/share/classes/java/security/cert/Extension.java.i
-data/test/sun/security/tools/policytool/i18n.sh.i
+data/test/java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java.i
+data/test/sun/net/www/http/KeepAliveCache/B5045306.java.i
 data/src/share/classes/com/sun/jdi/request/ModificationWatchpointRequest.java.i
-data/test/java/util/ResourceBundle/bug6572242.properties.i
-data/src/share/native/java/lang/Float.c.i
-data/src/share/classes/com/sun/jndi/ldap/LdapURL.java.i
+data/test/javax/script/Test8.java.i
+data/src/share/classes/sun/io/ByteToCharMS932.java.i
+data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain5.txt.i
 data/src/share/native/sun/awt/libpng/pngread.c.i
-data/make/common/Library.gmk.i
+data/test/java/beans/XMLDecoder/spec/TestFloat.java.i
+data/src/share/classes/com/sun/security/auth/NTSidUserPrincipal.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmMemMgrPoolRelEntryMBean.java.i
 data/src/share/back/ArrayReferenceImpl.c.i
 data/src/share/classes/java/util/IllformedLocaleException.java.i
 data/test/sun/nio/cs/TestConverterDroppedCharacters.java.i
-data/src/share/native/sun/awt/image/jpeg/jddctmgr.c.i
+data/test/java/beans/XMLDecoder/4676532/test.jar.i
 data/test/java/net/Socket/UrgentDataTest.java.i
+data/src/share/classes/sun/management/OperatingSystemImpl.java.i
 data/test/demo/jvmti/hprof/OptionsTest.java.i
 data/src/solaris/doc/sun/man/man1/ja/jarsigner.1.i
-data/make/tools/swing-beans/beaninfo/images/JInternalFrameColor32.gif.i
+data/src/share/classes/com/sun/tools/jdi/ThreadGroupReferenceImpl.java.i
 data/src/share/classes/com/sun/media/sound/SF2Layer.java.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java.i
+data/test/java/awt/dnd/ImageDecoratedDnD/DnDTarget.java.i
 data/test/sun/security/ssl/sun/net/www/httpstest/HttpTransaction.java.i
 data/src/share/classes/javax/swing/ActionPropertyChangeListener.java.i
-data/src/share/classes/sun/io/ByteToCharCp933.java.i
+data/src/share/classes/sun/reflect/generics/tree/SimpleClassTypeSignature.java.i
 data/test/javax/script/Test6.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM943.java.i
 data/src/share/classes/com/sun/tools/hat/internal/parser/PositionDataInputStream.java.i
-data/src/share/classes/java/awt/image/renderable/RenderContext.java.i
+data/test/java/awt/font/StyledMetrics/BoldSpace.java.i
 data/test/java/nio/file/WatchService/FileTreeModifier.java.i
-data/src/solaris/classes/sun/awt/X11/OwnershipListener.java.i
+data/test/java/lang/instrument/GetInitiatedClassesTest.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsCheckBoxMenuItemUI.java.i
 data/src/share/classes/sun/text/resources/FormatData_es_ES.java.i
-data/src/share/classes/com/sun/tools/example/debug/tty/Commands.java.i
+data/test/sun/rmi/rmic/newrmic/equivalence/batch.sh.i
 data/src/solaris/doc/sun/man/man1/ja/javac.1.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/ModificationWatchpointSpec.java.i
 data/test/java/lang/management/ThreadMXBean/SharedSynchronizer.java.i
 data/src/share/native/sun/management/HotSpotDiagnostic.c.i
+data/test/sun/security/tools/keytool/trystore.sh.i
+data/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java.i
 data/test/java/math/BigDecimal/RangeTests.java.i
-data/test/sun/security/krb5/auto/W83.java.i
+data/src/share/demo/nbproject/jfc/SwingApplet/nbproject/jdk.xml.i
 data/src/share/classes/javax/swing/text/ComponentView.java.i
-data/src/windows/native/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.c.i
-data/src/share/sample/vm/clr-jvm/jinvoker.cpp.i
+data/test/javax/crypto/Cipher/TestCipherMode.java.i
+data/test/java/lang/Math/Expm1Tests.java.i
 data/test/java/awt/PrintJob/Security/SecurityDialogTest.java.i
 data/src/share/classes/javax/naming/event/ObjectChangeListener.java.i
 data/src/share/classes/javax/swing/tree/DefaultTreeModel.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java.i
+data/src/share/classes/sun/tools/tree/ExprExpression.java.i
+data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest12_ok.ssl.in.i
 data/test/javax/sound/midi/Gervill/SoftTuning/GetTuningInt.java.i
 data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain7.txt.i
-data/test/java/io/Serializable/PutField/Write2.java.i
-data/src/share/classes/sun/security/pkcs/PKCS10Attributes.java.i
-data/src/share/classes/com/sun/tools/example/doc/index.html.i
+data/src/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadata.java.i
+data/src/share/classes/sun/security/jgss/GSSNameImpl.java.i
 data/test/javax/sound/midi/Gervill/SoftChannel/Controller.java.i
-data/test/java/lang/instrument/PremainClass/DummyMain.java.i
+data/test/sun/security/pkcs11/KeyStore/BasicData/p11-activcard.txt.i
 data/test/javax/sound/midi/Gervill/SoftReceiver/Send_ActiveSense.java.i
 data/src/share/native/sun/security/pkcs11/wrapper/p11_dual.c.i
-data/src/share/classes/java/awt/font/GlyphJustificationInfo.java.i
+data/test/sun/security/rsa/TestCACerts.java.i
 data/src/share/demo/jfc/Metalworks/MetalworksPrefs.java.i
 data/test/java/rmi/server/RMIClassLoader/loadProxyClasses/PublicInterface.java.i
 data/test/java/security/Policy/Dynamic/DynamicPolicy.java.i
 data/test/com/sun/tracing/BasicWithSecurityMgr.java.i
-data/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java.i
-data/make/tools/src/build/tools/jdwpgen/AbstractTypeListNode.java.i
-data/src/share/classes/sun/rmi/registry/resources/rmiregistry_es.properties.i
+data/test/javax/management/modelmbean/DescriptorSupportXMLTest.java.i
+data/test/sun/util/resources/TimeZone/Bug4858517.java.i
+data/src/share/classes/sun/util/resources/CalendarData_mk.properties.i
 data/src/windows/classes/sun/java2d/windows/DDBlitLoops.java.i
 data/src/linux/doc/man/ja/jdb.1.i
 data/src/share/classes/javax/crypto/spec/IvParameterSpec.java.i
-data/src/share/classes/com/sun/jndi/dns/ResourceRecord.java.i
+data/test/javax/print/applet/applet2/Applet2PrintServiceLookup.java.i
 data/make/tools/swing-beans/beaninfo/images/JEditorPaneMono16.gif.i
-data/make/tools/jarreorder/Makefile.i
-data/src/share/classes/org/ietf/jgss/GSSException.java.i
+data/src/share/classes/com/sun/jmx/remote/internal/NotificationBufferFilter.java.i
+data/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheOctetStreamData.java.i
 data/test/java/awt/dnd/ImageDecoratedDnDInOut/DnDTarget.java.i
-data/test/java/math/BigInteger/ModPow.java.i
+data/test/org/openjdk/jigsaw/preinstall-setup.sh.i
 data/src/share/classes/sun/security/jgss/krb5/InitSecContextToken.java.i
 data/src/share/classes/sun/io/ByteToCharUnicodeLittleUnmarked.java.i
-data/src/share/classes/sun/security/util/DerInputBuffer.java.i
+data/src/share/classes/sun/security/x509/PolicyMappingsExtension.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/internal/ColumnarData.java.i
 data/test/java/util/ResourceBundle/Bug4396021GeneralMessages.java.i
 data/test/java/awt/Container/CheckZOrderChange/CheckZOrderChange.java.i
 data/src/share/native/sun/awt/libpng/pngmem.c.i
 data/src/share/classes/java/net/URLStreamHandler.java.i
-data/src/share/classes/sun/reflect/generics/tree/Tree.java.i
-data/test/sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh.i
+data/test/java/util/Formatter/Basic-X.java.i
 data/src/share/classes/sun/nio/ch/DatagramChannelImpl.java.i
 data/src/share/classes/sun/tools/jstat/RawOutputFormatter.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicCheckBoxUI.java.i
 data/src/share/classes/sun/misc/JavaSecurityProtectionDomainAccess.java.i
 data/src/share/classes/sun/security/provider/DSAKeyFactory.java.i
-data/test/javax/management/Introspector/NotAnMBeanTest.java.i
+data/src/share/classes/java/lang/ref/FinalReference.java.i
+data/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java.i
+data/src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c.i
 data/src/share/native/sun/management/VMManagementImpl.c.i
-data/src/share/classes/javax/swing/text/rtf/RTFParser.java.i
+data/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java.i
 data/test/java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java.i
+data/test/java/net/Inet6Address/B4923906.java.i
 data/test/com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java.i
-data/src/share/classes/javax/naming/NamingException.java.i
-data/test/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java.i
+data/src/share/classes/java/lang/reflect/UndeclaredThrowableException.java.i
+data/src/share/sample/nio/file/Copy.java.i
 data/src/share/native/sun/security/ec/ecl.c.i
 data/test/sun/net/idn/nfscsi.spp.i
+data/src/share/classes/sun/font/Underline.java.i
 data/test/sun/net/www/protocol/http/ProtocolRedirect.java.i
-data/src/share/classes/sun/java2d/pisces/PiscesCache.java.i
+data/src/solaris/native/sun/security/smartcardio/MUSCLE/pcsclite.h.i
 data/src/share/classes/java/util/concurrent/CompletionService.java.i
-data/test/javax/security/auth/x500/X500Principal/Equals.java.i
-data/src/share/classes/com/sun/jdi/event/EventQueue.java.i
+data/test/java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java.i
 data/src/solaris/bin/ergo_zero.c.i
 data/src/windows/native/sun/windows/awt_List.cpp.i
 data/test/sun/tools/jstat/gcOldOutput1.awk.i
@@ -10887,125 +10616,122 @@ data/test/tools/launcher/libraryCaller.h.i
 data/src/share/native/java/io/ObjectInputStream.c.i
 data/test/sun/security/rsa/rsakeys.ks.i
 data/test/javax/swing/JColorChooser/Test6199676.java.i
-data/src/share/classes/sun/security/provider/IdentityDatabase.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/keyvalues/KeyValueContent.java.i
+data/test/java/rmi/reliability/scripts/run_serialbench.ksh.i
 data/src/share/classes/com/sun/imageio/plugins/gif/GIFStreamMetadataFormat.java.i
 data/test/java/security/BasicPermission/PermClass.1.3.1.i
 data/src/share/classes/java/awt/geom/NoninvertibleTransformException.java.i
 data/test/javax/management/mxbean/MXBeanPreRegisterTest.java.i
 data/src/share/classes/java/lang/annotation/RetentionPolicy.java.i
 data/test/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java.i
-data/src/share/classes/java/lang/invoke/InvokeGeneric.java.i
+data/test/java/beans/XMLDecoder/spec/TestVar.java.i
 data/src/share/classes/javax/net/ssl/SSLSocketFactory.java.i
 data/src/share/classes/sun/text/resources/BreakIteratorInfo_th.java.i
-data/make/tools/CharsetMapping/ISO_8859_15.map.i
+data/test/java/util/ResourceBundle/Bug4168625Resource3.java.i
 data/src/share/classes/sun/text/resources/FormatData_da.java.i
 data/test/java/lang/instrument/appendToClassLoaderSearch/B.1.i
-data/src/share/classes/javax/management/loading/MLet.java.i
+data/src/share/native/sun/font/layout/NonContextualGlyphSubstProc.h.i
 data/src/windows/native/sun/windows/awt_DnDDT.h.i
-data/src/share/classes/org/relaxng/datatype/DatatypeLibrary.java.i
+data/make/tools/swing-beans/beaninfo/images/JToolBarMono16.gif.i
 data/test/java/awt/image/GetSamplesTest.java.i
 data/test/com/sun/nio/sctp/SctpChannel/Receive.java.i
-data/src/share/classes/javax/swing/text/html/ResourceLoader.java.i
-data/src/solaris/native/sun/awt/awt_dnd.h.i
-data/make/tools/swing-beans/beaninfo/images/JComboBoxColor32.gif.i
-data/src/windows/native/sun/tools/attach/WindowsVirtualMachine.c.i
+data/test/org/openjdk/jigsaw/cli/timestamp-test.sh.i
+data/make/java/text/FILES_java.gmk.i
 data/test/com/sun/jdi/redefineMethod/Different_RedefineSubTarg.java.i
 data/test/java/security/BasicPermission/PermClass.1.2.1.i
-data/test/java/rmi/activation/Activatable/forceLogSnapshot/ActivateMe.java.i
+data/test/java/rmi/dgc/dgcImplInsulation/security.policy.i
 data/test/java/dyn/6987555/Test6987555.java.i
 data/test/java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java.i
+data/src/share/classes/com/sun/rowset/RowSetResourceBundle_fr.properties.i
 data/make/modules/tools/src/com/sun/classanalyzer/AnnotatedDependency.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicProgressBarUI.java.i
 data/src/share/native/sun/awt/image/cvutils/img_dir8dither.h.i
-data/src/share/classes/sun/applet/Main.java.i
-data/src/share/classes/sun/awt/resources/awt_ja.properties.i
+data/src/share/classes/sun/security/util/AuthResources_ja.java.i
+data/test/java/util/HashMap/ToString.java.i
 data/src/share/native/sun/java2d/opengl/OGLRenderer.c.i
 data/src/share/classes/sun/management/HotspotInternal.java.i
+data/src/share/classes/com/sun/pept/presentation/Tie.java.i
 data/src/share/native/java/util/zip/zlib-1.2.3/inffixed.h.i
-data/test/sun/security/tools/policytool/SaveAs.sh.i
-data/test/javax/management/remote/mandatory/passwordAuthenticator/SimpleStandardMBean.java.i
-data/src/share/classes/sun/io/CharToByteEUC.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU16U8Func.c.i
+data/test/com/sun/net/httpserver/FileServerHandler.java.i
 data/test/java/lang/management/ThreadMXBean/InvalidThreadID.java.i
 data/test/java/net/Socket/asyncClose/AsyncClose.java.i
-data/make/javax/swing/plaf/Makefile.i
-data/src/share/classes/sun/util/resources/CalendarData_th.properties.i
-data/src/share/classes/javax/management/loading/MLetObjectInputStream.java.i
-data/test/java/nio/channels/Selector/LotsOfChannels.java.i
+data/src/share/classes/java/lang/ThreadDeath.java.i
+data/test/javax/sound/midi/Gervill/ModelPerformer/SetConnectionBlocks.java.i
+data/test/java/rmi/activation/Activatable/downloadParameterClass/security.policy.i
 data/test/java/awt/print/PrinterJob/duke.gif.i
 data/src/solaris/doc/sun/man/man1/ja/unpack200.1.i
-data/test/java/security/cert/CertificateFactory/BadX509CertData.java.i
-data/make/javax/swing/beaninfo/Makefile.i
-data/test/sun/security/tools/policytool/SaveAs.html.i
+data/test/javax/management/context/localizable/Whatsit.java.i
+data/src/share/classes/java/util/concurrent/ThreadLocalRandom.java.i
 data/src/share/classes/java/awt/image/IndexColorModel.java.i
-data/src/share/demo/applets/WireFrame/example2.html.i
 data/test/java/rmi/activation/Activatable/restartCrashedService/group.security.policy.i
 data/src/solaris/classes/sun/awt/motif/X11CNS11643P3.java.i
 data/make/common/internal/Defs-jaxws.gmk.i
-data/src/solaris/doc/sun/man/man1/jrunscript.1.i
-data/src/share/classes/sun/awt/image/BufferedImageDevice.java.i
-data/src/share/demo/nbproject/jfc/Font2DTest/nbproject/jdk.xml.i
+data/src/share/classes/javax/swing/text/StyleConstants.java.i
+data/src/windows/native/java/io/dirent_md.c.i
+data/test/java/util/logging/LoggingDeadlock3.props.i
 data/src/share/classes/com/sun/crypto/provider/DESedeKeyGenerator.java.i
 data/src/share/classes/javax/xml/crypto/KeySelectorResult.java.i
-data/src/share/classes/javax/sql/rowset/JdbcRowSet.java.i
-data/src/solaris/native/sun/java2d/loops/vis_ThreeByteBgr.c.i
+data/test/java/beans/Beans/6669869/TestGuiAvailable.java.i
+data/test/java/rmi/server/RMIClassLoader/loadProxyClasses/LoadProxyClasses.java.i
 data/src/share/classes/java/awt/image/PixelGrabber.java.i
-data/test/javax/print/attribute/CollateAttr.java.i
+data/src/solaris/classes/sun/awt/motif/X11SelectionHolder.java.i
 data/test/java/beans/XMLEncoder/Test4652928.java.i
-data/test/sun/security/pkcs11/Signature/ReinitSignature.java.i
+data/src/windows/native/java/util/TimeZone_md.h.i
 data/test/tools/launcher/MiscTests.java.i
 data/src/share/classes/sun/awt/OrientableFlowLayout.java.i
-data/test/sun/security/krb5/krb5.conf.i
-data/test/java/net/Socket/LinkLocal.java.i
+data/src/share/demo/jfc/Metalworks/resources/HelpFiles/toc.html.i
+data/test/sun/security/mscapi/AccessKeyStore.java.i
 data/test/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java.i
 data/src/share/back/transport.h.i
 data/src/share/classes/sun/text/resources/FormatData_sr_Latn.java.i
-data/test/javax/swing/plaf/basic/BasicScrollPaneUI/Test6632810.java.i
+data/src/share/classes/com/sun/jmx/snmp/internal/SnmpDecryptedPdu.java.i
 data/test/sun/tools/jconsole/ResourceCheckTest.sh.i
-data/test/sun/security/util/PropertyExpander/ExpandAndEncode.java.i
+data/test/java/rmi/reliability/benchmark/bench/serial/Longs.java.i
 data/src/share/classes/sun/nio/ch/PendingFuture.java.i
 data/make/modules/modularize.sh.i
 data/test/java/lang/instrument/AppendToBootstrapClassPathSetUp.sh.i
 data/test/sun/util/resources/TimeZone/Bug6442006.java.i
 data/test/java/text/Bidi/BidiEmbeddingTest.java.i
+data/src/share/classes/javax/sql/XAConnection.java.i
 data/test/java/security/Policy/GetInstance/GetInstance.policy.i
-data/make/mkdemo/jfc/Notepad/Makefile.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA.java.i
+data/test/com/sun/servicetag/DeleteServiceTag.java.i
+data/test/java/lang/ClassLoader/package2/Class2.java.i
 data/src/solaris/classes/java/net/PlainDatagramSocketImpl.java.i
-data/src/share/classes/javax/management/MBeanNotificationInfo.java.i
-data/test/sun/security/krb5/ParseCAPaths.java.i
+data/make/sun/security/mscapi/Makefile.i
+data/src/share/classes/sun/security/krb5/internal/rcache/ReplayCache.java.i
+data/src/share/classes/java/util/Collection.java.i
 data/src/share/classes/sun/tools/jconsole/inspector/XDataViewer.java.i
-data/test/java/util/logging/LoggingDeadlock3.props.i
 data/src/share/native/sun/awt/libpng/pngrtran.c.i
 data/src/share/classes/sun/security/ssl/HandshakeMessage.java.i
 data/test/java/io/Serializable/optionalDataEnd/OptionalDataEnd.java.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifScrollBarUI.java.i
 data/test/java/io/PipedWriter/FlushAfterClose.java.i
 data/src/share/classes/javax/management/MBeanServerNotification.java.i
 data/src/share/classes/javax/rmi/ssl/package.html.i
 data/src/share/classes/sun/text/resources/FormatData_hu.java.i
 data/src/share/classes/sun/dyn/util/Wrapper.java.i
 data/test/java/beans/XMLEncoder/java_util_Collections_CheckedCollection.java.i
-data/make/tools/src/build/tools/generatenimbus/Utils.java.i
+data/make/tools/CharsetMapping/euc_tw.map.i
+data/test/java/awt/FontClass/CreateFont/fileaccess/FontFile.java.i
 data/src/solaris/classes/sun/awt/X11/XAWTXSettings.java.i
 data/src/share/classes/sun/io/ByteToCharHKSCS.java.i
-data/src/share/classes/sun/font/TextSourceLabel.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CloseSocketException.java.i
-data/src/share/classes/com/sun/servicetag/RegistrationData.java.i
-data/src/share/classes/sun/nio/cs/ext/EUC_KR.java.i
+data/test/java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java.i
+data/make/com/sun/nio/Makefile.i
 data/src/share/classes/sun/java2d/loops/DrawParallelogram.java.i
-data/test/sun/security/pkcs11/ec/TestKeyFactory.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/InvalidKeyResolverException.java.i
 data/src/solaris/hpi/export/byteorder_md.h.i
 data/src/share/demo/java2d/J2DBench/src/j2dbench/ui/CompactLayout.java.i
-data/src/share/classes/javax/sql/rowset/spi/SyncFactoryException.java.i
+data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_TW.properties.i
 data/test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/StackTraceTool.java.i
-data/src/share/classes/javax/swing/plaf/nimbus/SynthPainterImpl.java.i
-data/src/share/classes/javax/management/DefaultLoaderRepository.java.i
+data/test/sun/security/pkcs11/KeyGenerator/DESParity.java.i
+data/test/sun/tools/jps/jps-lm_Output1.awk.i
 data/test/java/net/Inet6Address/serialize/serial1.4.2.ser.i
-data/test/sun/misc/JarIndex/metaInfFilenames/jarA/META-INF/services/my.happy.land.i
-data/test/sun/rmi/rmic/newrmic/equivalence/OrangeImpl.java.i
+data/src/share/bin/jli_util.h.i
 data/make/tools/CharsetMapping/IBM278.nr.i
-data/test/sun/security/provider/DSA/TestDSA.java.i
+data/src/share/classes/com/sun/jndi/dns/Header.java.i
+data/test/java/lang/ClassLoader/deadlock/SupBob.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_fr.properties.i
 data/src/share/classes/com/sun/jndi/url/iiopname/iiopnameURLContextFactory.java.i
 data/src/windows/native/sun/management/FileSystemImpl.c.i
@@ -11013,60 +10739,62 @@ data/src/share/classes/javax/smartcardio/CardTerminals.java.i
 data/src/share/classes/sun/awt/DisplayChangedListener.java.i
 data/src/share/classes/java/util/concurrent/locks/Lock.java.i
 data/src/share/classes/sun/net/httpserver/UnmodifiableHeaders.java.i
-data/src/windows/classes/sun/awt/windows/WDefaultFontCharset.java.i
+data/src/share/native/com/sun/java/util/jar/pack/main.cpp.i
 data/test/java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java.i
-data/test/sun/nio/cs/FindOneCharEncoderBugs.java.i
-data/test/java/awt/Toolkit/HeadlessTray/HeadlessTray.java.i
-data/src/share/classes/sun/font/FontFamily.java.i
+data/test/javax/management/context/LocaleTest.java.i
+data/test/java/rmi/dgc/dgcImplInsulation/DGCImplInsulation_Stub.java.i
+data/test/java/net/Authenticator/B4962064.java.i
 data/src/share/demo/nbproject/jfc/TableExample/nbproject/project.xml.i
-data/make/netbeans/jconsole/build.xml.i
-data/src/share/classes/java/awt/geom/package.html.i
-data/test/java/beans/XMLEncoder/Test5023557.java.i
+data/src/share/classes/sun/util/resources/CalendarData_sr_Latn_ME.properties.i
+data/src/share/classes/java/awt/geom/LineIterator.java.i
+data/src/solaris/doc/sun/man/man1/rmic.1.i
 data/test/com/sun/security/auth/login/ConfigFile/PropertyExpansion.policy.i
 data/src/share/classes/sun/tools/native2ascii/N2AFilter.java.i
-data/src/share/classes/sun/nio/cs/ext/MacCentralEurope.java.i
-data/test/com/sun/jdi/HelloWorld.java.i
+data/test/javax/management/namespace/NamespaceControllerMBean.java.i
+data/test/java/security/UnresolvedPermission/AccessorMethods.signer2.i
+data/src/share/classes/sun/text/resources/CollationData_hr.java.i
 data/src/share/classes/javax/swing/GraphicsWrapper.java.i
 data/src/solaris/native/sun/java2d/loops/java2d_Mlib.c.i
 data/src/share/classes/java/lang/invoke/DirectMethodHandle.java.i
-data/src/share/native/sun/java2d/pipe/BufferedRenderPipe.c.i
-data/test/javax/management/namespace/VirtualPropsTest.java.i
+data/make/tools/jarsplit/Makefile.i
+data/test/java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java.i
 data/src/share/classes/com/sun/tools/example/doc/trace.html.i
-data/test/java/io/RandomAccessFile/OpenSync.java.i
+data/test/java/lang/StringBuilder/Insert.java.i
+data/src/share/classes/sun/nio/cs/ext/ISO_8859_8.java.i
 data/src/share/classes/java/io/PipedWriter.java.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifPopupMenuUI.java.i
 data/test/sun/nio/cs/FindEncoderBugs.java.i
+data/src/share/demo/jfc/FileChooserDemo/FileChooserDemo.java.i
 data/src/share/native/sun/font/layout/SegmentArrayProcessor.cpp.i
-data/test/java/util/Locale/LocaleTest.java.i
 data/src/share/classes/javax/naming/InterruptedNamingException.java.i
+data/test/java/util/zip/FlaterCriticalArray.java.i
 data/src/share/classes/sun/security/tools/JarSigner.java.i
 data/src/share/classes/sun/security/krb5/KrbApRep.java.i
+data/test/sun/security/pkcs11/fips/fips.cfg.i
+data/src/windows/native/sun/windows/alloc.h.i
 data/src/windows/classes/sun/awt/windows/awtLocalization_de.properties.i
-data/src/share/classes/sun/net/www/protocol/http/Negotiator.java.i
+data/test/java/beans/XMLEncoder/javax_swing_tree_DefaultTreeModel.java.i
 data/src/share/classes/sun/nio/cs/ext/MS1256.java.i
-data/test/java/nio/file/Files/SkipSiblings.java.i
+data/test/javax/management/descriptor/UnionTest.java.i
 data/src/share/classes/sun/io/ByteToCharCp855.java.i
-data/test/javax/management/mxbean/MXBeanAnnotationTest.java.i
+data/src/share/instrument/InstrumentationImplNativeMethods.c.i
 data/make/tools/src/build/tools/generatecharacter/UnicodeSpec.java.i
-data/src/share/classes/sun/awt/image/BufImgVolatileSurfaceManager.java.i
+data/src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template.i
 data/test/java/lang/Class/getEnclosingConstructor/EnclosingConstructorTests.java.i
-data/src/share/classes/sun/net/www/ApplicationLaunchException.java.i
-data/src/share/classes/sun/tools/jconsole/resources/JConsoleResources.java.i
-data/test/java/util/concurrent/FutureTask/BlockingTaskExecutor.java.i
-data/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java.i
-data/test/javax/management/remote/mandatory/subjectDelegation/policy23.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConv.h.i
+data/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp.i
 data/test/tools/launcher/ZipMeUp.java.i
-data/test/javax/crypto/SecretKeyFactory/P2.jar.i
+data/src/share/classes/java/rmi/Remote.java.i
 data/src/share/classes/java/awt/ModalEventFilter.java.i
-data/src/share/classes/com/sun/java/browser/net/ProxyInfo.java.i
+data/src/windows/classes/sun/awt/windows/WCheckboxPeer.java.i
 data/test/sun/net/www/protocol/http/RetryUponTimeout.java.i
 data/src/share/classes/javax/management/remote/JMXConnectorServerProvider.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMEnvelopedTransform.java.i
+data/test/sun/security/pkcs11/ec/TestKeyFactory.java.i
 data/src/windows/native/java/util/WindowsPreferences.c.i
-data/test/java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java.i
-data/test/java/rmi/testlibrary/TestParams.java.i
 data/src/share/classes/com/sun/tools/jdi/ClassLoaderReferenceImpl.java.i
-data/test/sun/jvmstat/testlibrary/Sleeper.java.i
-data/src/share/classes/com/sun/rowset/internal/XmlErrorHandler.java.i
+data/test/java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java.i
+data/test/tools/pack200/TestExceptions.java.i
+data/src/share/classes/com/sun/media/sound/services/windows-i586/javax.sound.sampled.spi.MixerProvider.i
 data/src/share/classes/javax/management/remote/MBeanServerForwarder.java.i
 data/test/javax/swing/JFileChooser/7036025/security.policy.i
 data/test/sun/nio/cs/TestIllegalISO2022Esc.java.i
@@ -11078,78 +10806,82 @@ data/make/tools/src/build/tools/generatenimbus/PainterGenerator.java.i
 data/test/sun/management/jmxremote/bootstrap/management_ssltest09_ko.properties.in.i
 data/src/share/classes/sun/text/resources/FormatData_ar_OM.java.i
 data/src/share/classes/sun/applet/AppletThreadGroup.java.i
-data/test/java/security/cert/CertPathBuilder/targetConstraints/ca.cer.i
+data/src/share/classes/com/sun/jdi/InterfaceType.java.i
+data/src/share/demo/java2d/J2DBench/resources/textdata/english.ut8.txt.i
 data/src/share/classes/javax/print/attribute/standard/Media.java.i
 data/test/com/sun/security/auth/login/ConfigFile/InnerClassConfig.policy.i
 data/src/share/classes/sun/net/ftp/impl/FtpClient.java.i
-data/src/share/classes/sun/java2d/pipe/PixelToParallelogramConverter.java.i
+data/src/share/native/sun/security/ec/ec.h.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibHandler.java.i
 data/src/share/classes/sun/text/resources/FormatData_et.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMIpV6Address.java.i
 data/src/share/classes/sun/net/spi/nameservice/NameService.java.i
-data/src/share/classes/com/sun/jdi/CharValue.java.i
-data/src/share/classes/java/awt/MenuBar.java.i
+data/src/share/classes/javax/print/PrintException.java.i
+data/test/sun/security/provider/PolicyFile/SelfWildcard.java.i
+data/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java.i
 data/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java.i
-data/test/java/lang/Integer/Decode.java.i
-data/make/com/sun/demo/Makefile.i
+data/src/share/classes/sun/font/TextSource.java.i
+data/test/java/util/Random/NextIntPowerOfTwoMod.java.i
 data/test/java/nio/charset/coders/StreamTimeout.java.i
-data/src/share/classes/sun/nio/ch/SimpleAsynchronousFileChannelImpl.java.i
 data/src/share/classes/org/ietf/jgss/MessageProp.java.i
 data/src/share/native/java/io/RandomAccessFile.c.i
-data/test/sun/security/pkcs11/KeyStore/ClientAuthData/p11-nss.txt.i
-data/test/java/util/logging/ParentLoggersTest.props.i
 data/src/share/classes/javax/sound/sampled/LineListener.java.i
-data/src/share/sample/nio/server/ChannelIO.java.i
-data/test/java/util/ResourceBundle/Bug4168625Resource2.java.i
+data/test/javax/accessibility/6986385/bug6986385.java.i
+data/src/solaris/native/sun/awt/awt_xembed_server.c.i
 data/src/share/classes/java/nio/file/ReadOnlyFileSystemException.java.i
 data/make/tools/CharsetMapping/IBM943.nr.i
 data/src/solaris/classes/sun/nio/fs/UnixFileAttributeViews.java.i
-data/src/share/classes/javax/swing/plaf/metal/icons/ocean/floppy.gif.i
-data/test/java/util/PluggableLocale/ClasspathTest.sh.i
+data/src/share/demo/jvmti/heapViewer/README.txt.i
+data/src/windows/native/sun/windows/hand.cur.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadataFormat.java.i
 data/src/share/native/sun/awt/image/jpeg/jchuff.c.i
 data/make/java/java/localelist.sh.i
-data/test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifIconFactory.java.i
+data/src/share/native/sun/java2d/loops/AnyByte.c.i
 data/src/share/native/sun/java2d/opengl/J2D_GL/glext.h.i
-data/make/tools/src/build/tools/jdwpgen/CommandSetNode.java.i
+data/test/java/io/Serializable/replaceWithNull/ReplaceWithNull.java.i
+data/make/sun/javazic/tzdata/antarctica.i
 data/src/share/classes/sun/security/krb5/KrbException.java.i
 data/src/share/classes/javax/management/event/package-info.java.i
 data/test/java/io/BufferedInputStream/CloseStream.java.i
-data/test/javax/xml/crypto/dsig/SecurityManager/policy.i
+data/src/share/classes/com/sun/crypto/provider/AESParameters.java.i
+data/src/share/classes/java/lang/Thread.java.i
 data/src/windows/classes/com/sun/management/OSMBeanFactory.java.i
 data/src/share/classes/java/nio/charset/StandardCharsets.java.i
 data/test/java/util/ResourceBundle/Bug4179766Class.java.i
-data/test/sun/tools/jps/jps-vm_Output1.awk.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315ExclWithComments.java.i
+data/src/share/classes/java/security/cert/CertificateException.java.i
 data/src/share/classes/com/sun/management/OperatingSystemMXBean.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/PaintModel.java.i
+data/src/share/classes/sun/awt/image/VolatileSurfaceManager.java.i
 data/test/java/beans/PropertyEditor/6380849/TestPropertyEditor.java.i
 data/src/share/classes/java/awt/peer/ComponentPeer.java.i
+data/src/share/classes/sun/net/www/URLConnection.java.i
 data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java.i
-data/test/com/sun/crypto/provider/Cipher/PBE/PKCS12Oid.java.i
+data/test/sun/net/InetAddress/nameservice/dns/CanonicalName.java.i
 data/src/share/native/sun/misc/VM.c.i
 data/make/mkdemo/jfc/Font2DTest/Makefile.i
 data/src/share/classes/sun/java2d/pipe/SpanShapeRenderer.java.i
 data/test/com/sun/jdi/OnThrowTest.java.i
+data/make/tools/src/build/tools/jdwpgen/ErrorSetNode.java.i
 data/test/javax/management/remote/mandatory/connection/RMIExitTest.java.i
 data/test/java/nio/Buffer/StringCharBufferSliceTest.java.i
 data/src/share/native/sun/awt/image/jpeg/jfdctint.c.i
+data/src/share/native/sun/reflect/ConstantPool.c.i
 data/src/share/classes/sun/tools/tree/MultiplyExpression.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageUtils.c.i
 data/src/solaris/hpi/native_threads/include/monitor_md.h.i
-data/src/share/classes/com/sun/crypto/provider/DESCrypt.java.i
+data/src/share/native/sun/java2d/loops/FourByteAbgr.c.i
+data/test/java/rmi/activation/Activatable/checkAnnotations/CheckAnnotations_Stub.java.i
+data/make/common/BuildPackages.gmk.i
+data/src/share/classes/sun/security/x509/IssuerAlternativeNameExtension.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalScrollBarUI.java.i
 data/test/sun/nio/cs/OLD/Johab_OLD.java.i
+data/src/share/native/sun/font/layout/LEStandalone.h.i
 data/test/java/beans/XMLEncoder/Test4936682.java.i
-data/src/solaris/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java.i
+data/src/solaris/doc/sun/man/man1/jstat.1.i
 data/src/share/classes/sun/net/www/protocol/https/DefaultHostnameVerifier.java.i
-data/test/tools/pack200/pack200-verifier/src/sun/tools/pack/verify/VerifyTreeSet.java.i
-data/src/share/classes/sun/tools/tree/AssignDivideExpression.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/OriginServer.java.i
+data/src/share/native/sun/awt/medialib/mlib_ImageColormap.h.i
+data/test/tools/pack200/Pack200Simple.sh.i
 data/src/share/classes/javax/xml/crypto/dsig/keyinfo/RetrievalMethod.java.i
-data/src/share/classes/java/awt/Font.java.i
-data/src/share/classes/sun/launcher/LauncherHelper.java.i
+data/src/share/classes/com/sun/jdi/event/ClassPrepareEvent.java.i
 data/src/share/classes/sun/text/resources/FormatData_en_NZ.java.i
 data/src/share/native/sun/awt/image/cvutils/img_fsdither.h.i
 data/src/share/classes/java/lang/module/ModuleIdQuery.java.i
@@ -11157,21 +10889,18 @@ data/src/share/demo/jvmti/waiters/sample.makefile.txt.i
 data/src/share/classes/java/lang/Void.java.i
 data/src/share/classes/javax/sql/rowset/FilteredRowSet.java.i
 data/src/share/classes/sun/jvmstat/perfdata/resources/aliasmap.i
-data/src/share/classes/com/sun/rowset/internal/WebRowSetXmlWriter.java.i
-data/src/solaris/classes/sun/java2d/x11/X11SurfaceDataProxy.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientTimeout.java.i
+data/src/share/classes/sun/dyn/CallSiteImpl.java.i
+data/test/java/io/File/BlockIsDirectory.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_VE.properties.i
-data/src/share/classes/sun/java2d/loops/GraphicsPrimitiveProxy.java.i
+data/src/share/classes/sun/text/CollatorUtilities.java.i
 data/test/java/rmi/registry/multipleRegistries/MultipleRegistries.java.i
-data/test/java/lang/Class/forName/classes/period.class.i
 data/src/share/native/sun/font/layout/MarkArrays.h.i
 data/test/java/io/pathNames/win32/DriveSlash.java.i
 data/src/share/classes/sun/misc/DoubleConsts.java.i
-data/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxIcon.java.i
+data/test/java/io/Serializable/oldTests/SimpleArrays.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmMemPoolEntryMeta.java.i
 data/test/java/util/EnumMap/EntrySetIteratorRemoveInvalidatesEntry.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/EmptyExtensionData.java.i
-data/src/share/native/java/util/zip/zlib-1.1.3/example.c.i
+data/test/java/util/Collections/EmptyIterator.java.i
 data/test/java/rmi/activation/Activatable/restartLatecomer/security.policy.i
 data/src/share/classes/sun/tools/tree/AssignSubtractExpression.java.i
 data/make/tools/swing-beans/beaninfo/images/JDesktopPaneColor32.gif.i
@@ -11180,206 +10909,211 @@ data/src/share/classes/sun/awt/image/FileImageSource.java.i
 data/src/share/classes/sun/nio/cs/ext/DBCS_IBM_EBCDIC_Encoder.java.i
 data/src/share/classes/sun/net/sdp/SdpSupport.java.i
 data/src/share/classes/sun/io/CharToByteCp864.java.i
-data/src/windows/bin/java-rmi.c.i
 data/test/sun/nio/cs/ConvertSingle.java.i
 data/src/share/native/sun/font/layout/ClassDefinitionTables.cpp.i
-data/src/share/classes/com/sun/jdi/request/MonitorContendedEnterRequest.java.i
+data/src/share/native/sun/font/layout/MirroredCharData.cpp.i
 data/make/sun/jpeg/mapfile-vers-closed.i
 data/test/com/sun/net/httpserver/DummyVerifier.java.i
-data/make/java/nio/reorder-sparcv9.i
-data/test/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement3.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/package.html.i
+data/src/share/classes/java/lang/invoke/ConstantCallSite.java.i
+data/src/windows/native/java/net/NetworkInterface.h.i
 data/src/share/classes/com/sun/inputmethods/internal/thaiim/resources/DisplayNames.properties.i
-data/test/com/sun/servicetag/registration.xml.i
+data/test/sun/nio/cs/TestUTF8BOM.java.i
 data/src/solaris/classes/sun/nio/ch/SocketDispatcher.java.i
-data/test/java/util/logging/GetGlobalTest.java.i
+data/make/netbeans/common/windows-view.ent.i
 data/src/share/classes/javax/swing/plaf/synth/SynthDefaultLookup.java.i
 data/src/windows/lib/images/cursors/cursors.properties.i
-data/src/share/classes/sun/security/x509/X509Key.java.i
+data/test/java/nio/channels/AsynchronousFileChannel/Lock.java.i
+data/src/share/classes/javax/swing/Spring.java.i
 data/test/javax/management/remote/mandatory/subjectDelegation/SubjectDelegation1Test.java.i
-data/src/windows/native/java/net/net_util_md.h.i
+data/src/share/classes/com/sun/tools/hat/resources/platform_names.txt.i
 data/src/share/classes/javax/swing/plaf/metal/icons/ocean/maximize.gif.i
-data/src/windows/npt/utf_md.h.i
-data/src/share/classes/sun/java2d/SunGraphics2D.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReuseAddr.java.i
+data/test/javax/sound/midi/Gervill/SoftTuning/Load7.java.i
+data/src/share/classes/sun/font/FontScalerException.java.i
 data/src/share/classes/javax/swing/event/TableModelListener.java.i
 data/src/share/classes/sun/java2d/pipe/DrawImagePipe.java.i
 data/test/java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_Swing.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/IntArrays.java.i
-data/src/share/classes/sun/security/x509/X400Address.java.i
-data/src/solaris/classes/sun/awt/X11/XlibWrapper.java.i
-data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain6.txt.i
-data/make/javax/rmi/ssl/Makefile.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS_PRF_PARAMS.java.i
-data/src/share/classes/sun/net/dns/ResolverConfiguration.java.i
-data/src/share/demo/nio/zipfs/src/META-INF/services/java.nio.file.spi.FileSystemProvider.i
+data/src/share/classes/org/openjdk/internal/joptsimple/OptionSpecVisitor.java.i
+data/test/java/net/Socket/SocksConnectTimeout.java.i
+data/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java.i
+data/src/windows/classes/java/io/Win32FileSystem.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_ro_RO.properties.i
+data/test/java/net/CookieHandler/CookieHandlerTest.java.i
+data/test/java/util/ResourceBundle/Test4318520RB_en.properties.i
+data/src/share/native/java/net/net_util.h.i
 data/src/solaris/doc/sun/man/man1/ja/schemagen.1.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/BooleanCalls.java.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/Generator.java.i
+data/test/java/util/Hashtable/ReadObject.java.i
 data/make/sun/jpeg/reorder-sparc.i
-data/test/java/rmi/server/RMIClassLoader/getClassLoader/Foo.java.i
+data/test/javax/sound/midi/Gervill/RiffReaderWriter/GetSize.java.i
 data/test/java/beans/XMLEncoder/Test6501431.java.i
-data/test/java/lang/reflect/Proxy/Basic1.java.i
-data/test/java/util/ResourceBundle/TestResource.java.i
+data/test/java/util/concurrent/ConcurrentHashMap/MapLoops.java.i
 data/make/netbeans/common/standard-actions.ent.i
+data/src/share/classes/com/sun/java/util/jar/pack/Instruction.java.i
 data/src/share/classes/java/nio/charset/MalformedInputException.java.i
 data/src/share/native/sun/awt/image/jpeg/jerror.c.i
-data/test/tools/launcher/MultipleJRE.sh.i
-data/src/share/classes/javax/swing/plaf/DesktopPaneUI.java.i
+data/src/share/classes/sun/font/FontScaler.java.i
+data/src/share/classes/sun/management/StackTraceElementCompositeData.java.i
 data/src/share/classes/sun/awt/PeerEvent.java.i
-data/src/share/native/sun/java2d/cmm/lcms/cmsmd5.c.i
+data/make/com/sun/tracing/Makefile.i
 data/src/solaris/classes/sun/awt/X11/XCreateWindowParams.java.i
-data/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java.i
+data/test/java/io/Serializable/nonserializable/ExceptionDetail.java.i
 data/src/share/native/sun/font/layout/GlyphDefinitionTables.cpp.i
-data/src/share/classes/com/sun/security/auth/SolarisPrincipal.java.i
-data/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/java/net/MyDatagramSocketImplFactory.java.i
-data/src/share/classes/sun/text/resources/CollationData_sr_Latn.java.i
+data/src/share/classes/sun/misc/resources/Messages_it.java.i
+data/src/share/classes/javax/swing/text/doc-files/Document-coord.gif.i
+data/src/share/classes/sun/text/resources/FormatData_et_EE.java.i
 data/src/share/classes/java/awt/image/PixelInterleavedSampleModel.java.i
-data/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Decoder.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/FileMonitoredVm.java.i
 data/test/java/security/Security/signedfirst/Static.props.i
 data/test/java/io/DataOutputStream/WriteUTF.java.i
 data/src/share/demo/jfc/CodePointIM/README_zh_CN.html.i
 data/src/share/classes/sun/text/resources/CollationData_no.java.i
 data/src/share/classes/javax/sound/midi/MetaEventListener.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/SignerOutputStream.java.i
+data/src/share/classes/com/sun/net/httpserver/HttpContext.java.i
 data/test/java/rmi/reliability/launch_reliability.ksh.i
 data/test/java/util/jar/JarFile/SignedJarFileGetInputStream.java.i
 data/test/com/sun/security/auth/login/ConfigFile/InnerClassConfig.config.i
+data/test/sun/security/tools/keytool/readjar.sh.i
 data/src/share/classes/com/sun/rowset/internal/SyncResolverImpl.java.i
 data/test/javax/swing/JFileChooser/6698013/bug6698013.java.i
-data/src/share/classes/sun/nio/cs/ext/DBCS_IBM_EBCDIC_Decoder.java.i
+data/test/com/oracle/net/Sanity.java.i
 data/src/share/demo/jvmti/heapTracker/HeapTracker.java.i
 data/test/java/security/UnresolvedPermission/DebugPermission2.java.i
 data/test/java/math/BigDecimal/MultiplyTests.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicMenuBarUI.java.i
 data/src/share/classes/javax/script/Compilable.java.i
-data/test/javax/sound/midi/Gervill/SimpleSoundbank/SetName.java.i
+data/test/java/beans/XMLEncoder/Test4646747.java.i
 data/test/sun/net/www/protocol/jar/foo1.jar.i
 data/src/share/classes/com/sun/jdi/IntegerType.java.i
 data/src/share/classes/sun/java2d/pipe/PixelDrawPipe.java.i
 data/src/share/back/ArrayReferenceImpl.h.i
-data/src/share/classes/javax/swing/border/StrokeBorder.java.i
+data/test/javax/sound/midi/Sequencer/SequencerImplicitSynthOpen.java.i
 data/src/share/native/sun/font/layout/LookupProcessor.cpp.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract_f.c.i
 data/src/share/classes/sun/security/krb5/internal/EncKrbPrivPart.java.i
 data/src/share/classes/javax/swing/colorchooser/ColorModelHSV.java.i
-data/src/share/classes/com/sun/media/sound/SoftFilter.java.i
-data/src/share/classes/sun/nio/cs/ext/IBM1047.java.i
-data/src/share/classes/java/awt/KeyEventPostProcessor.java.i
-data/test/java/lang/Runtime/exec/ArgWithSpaceAndFinalBackslash.java.i
-data/src/share/native/sun/awt/image/DataBufferNative.c.i
+data/src/solaris/classes/sun/nio/fs/UnixFileStore.java.i
+data/src/share/native/sun/security/ec/mp_gf2m.c.i
+data/src/share/native/sun/security/pkcs11/j2secmod.h.i
+data/src/solaris/classes/sun/awt/X11/XInputMethodDescriptor.java.i
+data/test/java/util/ResourceBundle/Control/BadControlsTest.java.i
+data/src/share/classes/java/net/BindException.java.i
+data/src/share/native/sun/java2d/cmm/lcms/cmstypes.c.i
+data/test/com/sun/net/httpserver/Test5.java.i
 data/src/share/sample/nio/file/FileType.java.i
 data/src/share/classes/sun/io/ByteToCharGB18030DB.java.i
-data/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form.i
+data/test/javax/print/LookupServices.java.i
+data/src/solaris/native/sun/nio/ch/DatagramDispatcher.c.i
 data/src/share/classes/java/util/concurrent/ConcurrentNavigableMap.java.i
 data/src/share/classes/javax/print/attribute/HashPrintRequestAttributeSet.java.i
 data/test/java/util/Collections/Swap.java.i
 data/test/java/nio/channels/DatagramChannel/UseDGWithIPv6.java.i
 data/src/share/classes/javax/security/auth/kerberos/DelegationPermission.java.i
 data/src/share/classes/sun/util/locale/LocaleExtensions.java.i
-data/test/java/rmi/activation/Activatable/notSerializable/NotSerializable.java.i
-data/src/share/classes/javax/print/attribute/standard/PrinterMakeAndModel.java.i
+data/src/share/classes/sun/io/CharToByteISO8859_5.java.i
+data/src/share/classes/sun/security/x509/CertificateSubjectUniqueIdentity.java.i
 data/src/share/native/sun/font/layout/LayoutEngine.h.i
 data/test/java/util/Collections/MinMax.java.i
 data/src/share/classes/java/io/UnsupportedEncodingException.java.i
-data/make/modules/tools/src/com/sun/classanalyzer/AnnotationParser.java.i
+data/src/share/classes/sun/java2d/loops/GeneralRenderer.java.i
 data/src/share/classes/sun/reflect/UnsafeFieldAccessorFactory.java.i
 data/src/share/classes/javax/swing/tree/MutableTreeNode.java.i
-data/test/sun/security/x509/X500Name/RDNwithMultipleAVAs.java.i
-data/src/share/classes/javax/swing/plaf/metal/MetalTextFieldUI.java.i
+data/src/share/classes/sun/security/x509/CertificateValidity.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM1112.java.i
+data/src/share/native/sun/font/layout/ContextualSubstSubtables.cpp.i
 data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ja.properties.i
 data/test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java.i
 data/src/linux/doc/man/jps.1.i
 data/test/com/sun/jdi/RedefineClasses.sh.i
+data/src/share/classes/com/sun/jndi/ldap/Ber.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_it.properties.i
 data/make/tools/swing-beans/beaninfo/images/JComboBoxMono16.gif.i
-data/test/sun/tools/native2ascii/N2A_4636448.expected.i
-data/test/com/sun/tools/attach/SimpleProvider.java.i
 data/test/java/nio/channels/SocketChannel/SocketOptionTests.java.i
 data/test/java/rmi/activation/Activatable/checkAnnotations/group.security.policy.i
 data/src/share/classes/javax/swing/plaf/OptionPaneUI.java.i
-data/test/javax/swing/JInternalFrame/6726866/bug6726866.html.i
+data/src/share/classes/java/io/LineNumberInputStream.java.i
 data/src/share/native/sun/font/layout/CursiveAttachmentSubtables.h.i
-data/src/share/classes/com/sun/tools/example/debug/tty/MalformedMemberNameException.java.i
+data/make/tools/swing-beans/beaninfo/images/JPanelColor16.gif.i
 data/src/share/classes/javax/swing/plaf/multi/MultiDesktopPaneUI.java.i
 data/src/share/demo/jfc/SampleTree/README.txt.i
 data/test/java/awt/dnd/FileListBetweenJVMsTest/InterprocessMessages.java.i
-data/test/sun/security/provider/certpath/ReverseBuilder/mgrMcrl.i
-data/test/sun/management/jmxremote/bootstrap/management_ssltest10_ok.properties.in.i
+data/src/windows/native/sun/windows/README.JNI.i
 data/test/sun/security/krb5/auto/OkAsDelegateXRealm.java.i
 data/make/netbeans/common/demo-sources.ent.i
-data/src/share/classes/javax/swing/plaf/multi/MultiToolTipUI.java.i
+data/src/share/classes/sun/io/ByteToCharConverter.java.i
 data/src/share/classes/sun/nio/cs/ext/MS874.java.i
 data/make/tools/swing-beans/beaninfo/images/JColorChooserMono16.gif.i
-data/make/modules/jdk.boot.ls.i
+data/src/share/classes/sun/text/resources/FormatData_zh_CN.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_it.properties.i
 data/src/share/sample/jmx/jmx-scandir/src/etc/password.properties.i
 data/src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h.i
-data/src/share/classes/sun/tools/javac/resources/javac.properties.i
-data/src/share/native/sun/font/layout/LELanguages.h.i
-data/src/share/classes/java/security/spec/ECField.java.i
-data/src/share/classes/sun/font/FontRunIterator.java.i
-data/src/linux/doc/man/servertool.1.i
-data/src/share/classes/java/awt/peer/LabelPeer.java.i
-data/src/share/classes/com/sun/media/sound/ModelDirectedPlayer.java.i
-data/src/share/sample/nio/server/ChannelIOSecure.java.i
-data/src/share/classes/javax/sound/sampled/Line.java.i
+data/src/share/native/sun/font/layout/IndicLayoutEngine.cpp.i
+data/src/share/native/java/util/concurrent/atomic/AtomicLong.c.i
+data/test/java/util/Collections/ViewSynch.java.i
+data/src/share/classes/sun/reflect/UnsafeQualifiedStaticByteFieldAccessorImpl.java.i
+data/src/windows/classes/sun/nio/ch/PollArrayWrapper.java.i
+data/src/windows/classes/com/sun/tools/jdi/SharedMemoryAttachingConnector.java.i
+data/test/javax/management/remote/mandatory/connectorServer/ConnectorStopDeadlockTest.java.i
+data/test/javax/swing/border/Test4252164.java.i
+data/test/java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpMsg.java.i
 data/test/sun/nio/cs/TestUTF_32.java.i
-data/src/share/classes/com/sun/jndi/rmi/registry/RegistryContextFactory.java.i
-data/test/java/util/concurrent/CountDownLatch/Basic.java.i
+data/test/java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html.i
 data/src/share/classes/java/text/EntryPair.java.i
 data/src/solaris/classes/sun/awt/X11/keysym2ucs.h.i
 data/src/windows/native/sun/windows/awt_MenuBar.h.i
 data/src/share/classes/sun/security/jgss/spnego/NegTokenTarg.java.i
-data/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/package.html.i
+data/src/windows/classes/java/lang/ProcessImpl.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/icons/FloppyDrive.gif.i
 data/src/share/classes/sun/security/jgss/krb5/CipherHelper.java.i
 data/src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java.i
 data/src/solaris/classes/sun/awt/X11/doc-files/Modality.txt.i
-data/src/share/classes/java/lang/module/package-info.java.i
-data/src/share/classes/org/ietf/jgss/GSSContext.java.i
-data/src/share/classes/sun/awt/shell/ShellFolder.java.i
+data/test/java/io/PrintWriter/OversynchronizedTest.java.i
+data/src/share/back/standardHandlers.h.i
+data/src/share/classes/java/lang/annotation/ElementType.java.i
+data/test/java/nio/file/attribute/BasicFileAttributeView/Basic.java.i
 data/src/share/native/com/sun/tools/jdi/SharedMemory.h.i
 data/src/share/classes/sun/security/provider/DSAParameterGenerator.java.i
 data/test/sun/security/util/Resources/Format.java.i
 data/test/com/sun/crypto/provider/Cipher/Blowfish/BlowfishTestVector.java.i
-data/test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_LineBorderUIResource.java.i
-data/test/com/sun/jdi/AllLineLocations.java.i
-data/src/share/classes/sun/java2d/InvalidPipeException.java.i
-data/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c.i
-data/src/share/classes/com/sun/jndi/rmi/registry/ReferenceWrapper.java.i
+data/test/java/net/CookieHandler/CookieManagerTest.java.i
+data/test/java/awt/xembed/server/TestXEmbedServerJava.java.i
+data/test/sun/tools/jstat/jstatGcNewOutput1.sh.i
+data/src/share/classes/java/awt/event/ActionListener.java.i
 data/src/share/classes/sun/jvmstat/monitor/HostIdentifier.java.i
+data/src/share/native/sun/security/ec/impl/ec2.h.i
 data/src/share/classes/com/sun/net/ssl/package.html.i
-data/test/sun/security/tools/keytool/StartDateTest.java.i
 data/src/share/classes/com/sun/media/sound/SoftCubicResampler.java.i
-data/test/sun/security/pkcs11/sslecc/CipherTest.java.i
-data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties.i
+data/src/share/classes/java/text/RuleBasedBreakIterator.java.i
 data/src/share/demo/applets/SortDemo/BidirBubbleSortAlgorithm.java.i
 data/test/sun/java2d/cmm/ColorConvertOp/PYCC.png.i
 data/src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.java.i
 data/src/solaris/native/sun/security/pkcs11/j2secmod_md.c.i
-data/test/java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java.i
 data/src/solaris/doc/sun/man/man1/ja/jar.1.i
+data/test/com/sun/jdi/DebuggerThreadTest.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java.i
+data/src/share/classes/sun/awt/datatransfer/DataTransferer.java.i
+data/src/share/classes/sun/util/resources/CalendarData.properties.i
 data/make/tools/compile_font_config/Makefile.i
-data/src/share/sample/nio/file/WatchDir.java.i
+data/src/share/classes/sun/java2d/opengl/OGLMaskBlit.java.i
+data/test/org/openjdk/jigsaw/_JigsawVersionQuery.java.i
 data/test/javax/management/Introspector/DuplicateGetterTest.java.i
-data/src/share/demo/jfc/CodePointIM/CodePointIM.java.i
-data/src/solaris/bin/zero/jvm.cfg.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/StorageResolverException.java.i
+data/src/windows/native/sun/windows/awt_Menu.h.i
+data/src/share/classes/sun/awt/AWTCharset.java.i
 data/src/share/classes/sun/awt/image/BufImgSurfaceData.java.i
-data/src/windows/native/sun/windows/hand.cur.i
+data/test/javax/crypto/Mac/NullMacSpi.java.i
 data/src/share/classes/sun/misc/UCEncoder.java.i
-data/test/javax/imageio/CachePremissionsTest/rwd.policy.i
 data/test/java/lang/ClassLoader/package1/Class1.java.i
-data/test/java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java.i
-data/src/share/classes/javax/print/URIException.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32S32Func.c.i
+data/src/share/classes/sun/font/NullFontScaler.java.i
 data/make/tools/CharsetMapping/ISO_8859_13.map.i
 data/test/java/rmi/server/RMIClassLoader/delegateBeforePermissionCheck/DelegateBeforePermissionCheck.java.i
 data/src/share/classes/java/security/spec/EllipticCurve.java.i
-data/src/windows/native/java/net/NetworkInterface.h.i
+data/test/sun/net/www/http/HttpClient/IsKeepingAlive.java.i
 data/make/java/applet/Makefile.i
-data/test/sun/security/mscapi/KeyStoreCompatibilityMode.java.i
-data/test/java/lang/Class/forName/NonJavaNames.java.i
+data/src/share/classes/java/text/Format.java.i
+data/src/share/native/sun/awt/image/cvutils/img_output16_32.h.i
 data/src/share/native/sun/font/layout/LigatureSubstProc.h.i
 data/test/sun/rmi/rmic/newrmic/equivalence/OrangeEcho.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/Des3CbcHmacSha1KdEType.java.i
@@ -11387,31 +11121,31 @@ data/test/com/sun/jdi/Unload2Targ.java.i
 data/test/java/rmi/server/RMIClassLoader/useCodebaseOnly/Foo.java.i
 data/src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java.i
 data/make/sun/cmm/kcms/FILES_c_unix.gmk.i
-data/test/com/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider.i
+data/test/sun/security/tools/jarsigner/newsize7.sh.i
 data/src/share/native/sun/awt/image/cvutils/img_colors.h.i
-data/test/java/util/ResourceBundle/Control/Chinese_zh.properties.i
-data/test/java/lang/instrument/AppendToBootstrapClassPathTest.java.i
+data/src/share/classes/com/sun/media/sound/ModelAbstractOscillator.java.i
+data/src/share/classes/javax/naming/event/NamingEvent.java.i
 data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest06_ok.password.in.i
-data/src/share/classes/javax/naming/event/package.html.i
+data/src/share/classes/org/jcp/xml/dsig/internal/MacOutputStream.java.i
 data/test/java/lang/ThreadGroup/Stop.java.i
 data/make/com/sun/security/auth/FILES_java.gmk.i
 data/test/java/lang/ClassLoader/deadlock/DelegatingLoader.java.i
 data/src/share/classes/javax/swing/text/ElementIterator.java.i
-data/make/tools/src/build/tools/charsetmapping/DBCS.java.i
-data/src/share/classes/sun/nio/cs/MS1254.java.i
+data/test/com/sun/security/auth/login/ConfigFile/Override.props.i
+data/src/share/classes/javax/security/sasl/RealmChoiceCallback.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/zutil.c.i
-data/test/javax/sound/sampled/AudioFormat/PCM_FLOAT_support.java.i
+data/test/java/nio/file/WatchService/Basic.java.i
 data/src/share/classes/sun/launcher/resources/launcher_sv.properties.i
 data/test/sun/tools/jstat/jstatFileURITest1.sh.i
-data/src/windows/native/sun/nio/ch/SocketChannelImpl.c.i
+data/test/com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.java.i
 data/src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_CN.properties.i
 data/src/share/classes/sun/awt/EventListenerAggregate.java.i
 data/src/share/classes/com/sun/tracing/dtrace/ModuleAttributes.java.i
 data/test/java/io/File/GetXSpace.java.i
 data/src/share/classes/sun/tools/jstat/Operator.java.i
 data/src/share/classes/sun/print/PathGraphics.java.i
-data/test/sun/net/www/http/HttpClient/RetryPost.sh.i
-data/src/share/classes/javax/swing/plaf/basic/BasicButtonUI.java.i
+data/src/share/demo/applets/GraphicsTest/GraphicsTest.java.i
+data/make/tools/CharsetMapping/MacArabic.map.i
 data/src/share/classes/sun/nio/ch/SocketOpts.java.i
 data/src/share/classes/sun/font/StrikeCache.java.i
 data/test/java/lang/reflect/Method/GenericStringTest.java.i
@@ -11419,91 +11153,98 @@ data/src/windows/classes/sun/security/mscapi/RSAKeyPair.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpEngine.java.i
 data/src/share/classes/sun/management/AgentConfigurationError.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMUtils.java.i
-data/src/share/classes/sun/rmi/rmic/RemoteClass.java.i
+data/test/tools/launcher/lib/i386/lib32/lib32/liblibrary.so.i
 data/src/share/classes/javax/management/Descriptor.java.i
 data/test/javax/sound/midi/Gervill/ModelStandardIndexedDirector/ModelStandardIndexedDirectorTest.java.i
-data/test/javax/sound/midi/Gervill/SoftAudioSynthesizer/GetPropertyInfo.java.i
 data/test/javax/sound/midi/Gervill/RiffReaderWriter/ReadUnsignedInt.java.i
 data/test/sun/tools/jstatd/jpsOutput1.awk.i
 data/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java.i
 data/src/share/classes/sun/swing/FilePane.java.i
-data/make/java/main/java/mapfile-amd64.i
-data/test/java/util/concurrent/ConcurrentQueues/LoopHelpers.java.i
+data/src/share/classes/sun/io/CharToByteBig5_Solaris.java.i
+data/src/share/classes/sun/jkernel/StandaloneByteArrayAccess.java.i
+data/src/share/classes/com/sun/jndi/toolkit/dir/DirSearch.java.i
+data/test/java/rmi/activation/Activatable/restartService/RestartService_Stub.java.i
 data/src/share/classes/com/sun/crypto/provider/SymmetricCipher.java.i
-data/src/share/classes/com/sun/media/sound/ModelStandardDirector.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/DummySourceDataLine.java.i
-data/test/java/util/TimeZone/OldIDMappingTest.sh.i
+data/test/java/nio/file/Files/Misc.java.i
+data/test/sun/nio/cs/OLD/TestIBMDB.java.i
 data/test/java/security/cert/CertPathValidator/indirectCRL/README.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/package.html.i
-data/src/share/classes/com/sun/jdi/request/AccessWatchpointRequest.java.i
+data/src/share/classes/com/sun/security/sasl/ClientFactoryImpl.java.i
 data/test/java/util/ResourceBundle/Bug4168625Resource3_en_US.java.i
-data/src/share/classes/sun/awt/im/CompositionArea.java.i
+data/test/com/sun/security/auth/login/ConfigFile/PropertyExpansion.java.i
 data/test/com/sun/net/httpserver/Test4.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/ArgumentList.java.i
-data/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/test.html.i
+data/src/share/classes/sun/tools/jconsole/LabeledComponent.java.i
+data/src/share/native/sun/security/jgss/wrapper/gssapi.h.i
 data/src/windows/native/sun/java2d/d3d/D3DGlyphCache.h.i
-data/src/share/classes/sun/tools/tree/FieldExpression.java.i
+data/test/sun/text/resources/Collator/Bug4248694.java.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/ResourceFile.java.i
 data/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java.i
 data/test/java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java.i
+data/src/share/classes/com/sun/tools/jdi/InterfaceTypeImpl.java.i
 data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileAttributeView.java.i
 data/test/sun/security/pkcs11/rsa/GenKeyStore.java.i
 data/src/share/classes/sun/net/URLCanonicalizer.java.i
 data/test/java/util/Collections/Frequency.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/TestPreciseTimestampRendering.java.i
-data/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpMessage.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsMenuItemUI.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/ElementChecker.java.i
-data/src/share/classes/javax/imageio/plugins/jpeg/JPEGImageReadParam.java.i
+data/src/share/classes/javax/swing/JSlider.java.i
+data/src/share/classes/sun/net/idn/StringPrepDataReader.java.i
+data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/MyX509ExtendedKeyManager.java.i
 data/make/tools/swing-beans/beaninfo/images/JFileChooserMono32.gif.i
 data/make/tools/src/build/tools/jdwpgen/AbstractSimpleNode.java.i
 data/test/javax/management/namespace/EventWithNamespaceTest.java.i
-data/test/javax/swing/JScrollPane/6559589/bug6559589.java.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMInformCommunity.java.i
+data/test/java/rmi/server/RMIClassLoader/downloadArrayClass/DownloadArrayClass.java.i
+data/test/java/beans/Introspector/TestTypeResolver.java.i
 data/src/share/classes/java/beans/PropertyEditorSupport.java.i
 data/src/share/classes/sun/font/FontDesignMetrics.java.i
-data/test/java/beans/XMLEncoder/java_util_Collections_CheckedRandomAccessList.java.i
-data/test/javax/swing/plaf/nimbus/ColorCustomizationTest.java.i
 data/src/windows/classes/sun/awt/windows/WListPeer.java.i
+data/make/jpda/expr/Makefile.i
+data/src/share/classes/javax/management/loading/PrivateClassLoader.java.i
 data/test/java/util/Locale/Bug4175998Test.java.i
-data/src/share/classes/sun/text/resources/FormatData_de_LU.java.i
+data/src/share/native/sun/security/ec/ec2_233.c.i
 data/src/share/classes/java/awt/event/MouseListener.java.i
 data/src/share/classes/sun/tools/tree/ContinueStatement.java.i
-data/src/share/classes/java/sql/Wrapper.java.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmMemGCEntryMeta.java.i
 data/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java.i
 data/src/share/classes/sun/jvmstat/monitor/Units.java.i
 data/test/java/security/KeyRep/PBE.pre.1.5.key.i
-data/test/com/sun/jdi/ShutdownDebuggee.java.i
+data/test/javax/management/descriptor/ImmutableArrayFieldTest.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_uk.properties.i
 data/src/share/classes/com/sun/jdi/connect/Connector.java.i
-data/src/share/demo/nio/zipfs/META-INF/services/java.nio.file.spi.FileSystemProvider.i
+data/test/java/net/URLClassLoader/getresourceasstream/Test.java.i
 data/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_el_CY.properties.i
-data/src/share/classes/com/sun/security/auth/module/UnixSystem.java.i
-data/make/netbeans/awt2d/nbproject/project.xml.i
-data/src/share/classes/sun/io/ByteToCharUTF16.java.i
+data/make/sun/launcher/Makefile.i
+data/ASSEMBLY_EXCEPTION.i
+data/src/share/demo/jfc/CodePointIM/resources/codepoint_zh_CN.properties.i
 data/src/share/classes/java/lang/Iterable.java.i
 data/test/java/net/Socket/ReadTimeout.java.i
 data/make/tools/src/build/tools/javazic/ZoneRec.java.i
 data/src/share/native/sun/awt/medialib/mlib_sys_proto.h.i
-data/src/share/classes/com/sun/jmx/snmp/agent/SnmpErrorHandlerAgent.java.i
-data/src/share/classes/java/text/DontCareFieldPosition.java.i
+data/src/share/classes/sun/jvmstat/monitor/remote/RemoteVm.java.i
+data/src/share/sample/scripting/scriptpad/build.xml.i
 data/src/share/classes/sun/tools/tree/VarDeclarationStatement.java.i
 data/test/javax/security/auth/login/Configuration/GetInstanceConfigSpi.java.i
+data/src/share/classes/com/sun/jdi/connect/ListeningConnector.java.i
+data/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java.i
 data/src/share/classes/sun/security/pkcs11/KeyCache.java.i
 data/test/java/util/Collections/ReverseOrder.java.i
 data/test/java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java.i
 data/make/tools/src/build/tools/jdwpgen/LocationTypeNode.java.i
 data/src/share/classes/com/sun/jdi/ArrayType.java.i
+data/src/share/classes/javax/swing/text/html/BRView.java.i
+data/test/org/openjdk/jigsaw/optional-jaxp.sh.i
 data/src/share/native/sun/font/bidi/jbidi.c.i
 data/test/java/nio/file/Files/SimpleFileTypeDetector.java.i
-data/make/java/java/reorder-i586.i
+data/src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java.i
 data/test/java/nio/channels/AsynchronousSocketChannel/Leaky.java.i
 data/test/java/beans/XMLDecoder/spec/TestTrue.java.i
 data/make/tools/CharsetMapping/IBM1149.map.i
 data/src/share/classes/sun/io/CharToByteISO2022.java.i
-data/src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.cpp.i
+data/src/share/classes/sun/security/jgss/krb5/MicToken_v2.java.i
 data/test/java/net/DatagramSocket/ImplicitBind.java.i
 data/src/share/classes/javax/print/event/PrintJobEvent.java.i
 data/src/share/classes/sun/io/ByteToCharCp864.java.i
@@ -11512,271 +11253,276 @@ data/src/share/classes/sun/tools/tree/PositiveExpression.java.i
 data/src/share/classes/com/sun/jdi/InvocationException.java.i
 data/src/share/classes/com/sun/rowset/RowSetResourceBundle_ja.properties.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/UnsyncBufferedOutputStream.java.i
+data/test/java/net/URL/URIToURLTest.java.i
 data/test/java/rmi/MarshalledObject/compare/HashCode.java.i
+data/src/share/classes/javax/management/ValueExp.java.i
 data/test/sun/security/krb5/auto/SpnegoReqFlags.java.i
 data/src/share/demo/jvmti/hprof/hprof_loader.h.i
-data/test/java/io/Serializable/proxy/replace/WriteReplace.java.i
+data/src/share/demo/jfc/Notepad/resources/open.gif.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpecList.java.i
 data/test/java/io/charStreams/UTF8.java.i
 data/src/share/classes/javax/script/SimpleBindings.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConvIndex3_8_16nw.c.i
+data/test/java/util/AbstractCollection/ToString.java.i
 data/test/java/io/RandomAccessFile/Seek.java.i
-data/src/share/classes/com/sun/media/sound/SoftVoice.java.i
-data/test/sun/tools/jps/jps-vm_1.sh.i
-data/src/windows/classes/sun/awt/windows/WToolkit.java.i
+data/test/java/util/jar/JarFile/TurkCert.java.i
+data/test/java/security/BasicPermission/NullOrEmptyName.java.i
 data/src/share/native/sun/java2d/opengl/OGLTextRenderer.h.i
 data/test/javax/swing/JSlider/4987336/bug4987336.html.i
 data/test/com/sun/security/sasl/gsskerb/PropertiesFileCallbackHandler.java.i
-data/src/solaris/sample/dtrace/hotspot/method_compile_stat.d.i
-data/src/share/classes/com/sun/media/sound/services/javax.sound.sampled.spi.AudioFileWriter.i
-data/src/share/classes/com/sun/java/util/jar/pack/Attribute.java.i
-data/test/javax/swing/JTextArea/6940863/bug6940863.java.i
-data/make/com/sun/security/sasl/Makefile.i
+data/src/share/classes/javax/swing/event/ListSelectionListener.java.i
+data/test/sun/security/tools/keytool/file-in-help.sh.i
+data/test/java/math/BigDecimal/RoundingTests.java.i
+data/src/share/classes/com/sun/jdi/request/MonitorContendedEnteredRequest.java.i
+data/src/share/classes/com/sun/jmx/snmp/internal/SnmpSecurityCache.java.i
 data/src/share/native/sun/awt/giflib/gif_lib.h.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/ExceptionCalls.java.i
 data/src/share/demo/scripting/jconsole-plugin/src/scripts/invoke.js.i
 data/src/share/classes/java/lang/ref/SoftReference.java.i
+data/src/share/classes/sun/rmi/transport/tcp/MultiplexOutputStream.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicToolBarSeparatorUI.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmThreadInstanceTableMetaImpl.java.i
-data/src/share/classes/javax/swing/JOptionPane.java.i
+data/src/share/classes/javax/swing/plaf/MenuItemUI.java.i
 data/src/share/classes/com/sun/rowset/JoinRowSetImpl.java.i
 data/src/share/classes/javax/management/remote/JMXConnectorServerMBean.java.i
-data/src/share/classes/sun/security/krb5/internal/LocalSeqNumber.java.i
 data/src/share/demo/nbproject/management/MemoryMonitor/nbproject/file-targets.xml.i
 data/src/share/native/sun/font/layout/LayoutTables.h.i
-data/src/share/classes/sun/net/ftp/FtpProtocolException.java.i
-data/test/javax/security/auth/x500/X500Principal/RFC4514.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-i586/libsoftokn3.so.d
 data/src/share/classes/java/sql/SQLTransientException.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-i586/libsoftokn3.so.i
-data/src/share/classes/com/sun/security/jgss/jgss-overview.html.i
-data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_de.properties.i
-data/test/java/rmi/reliability/benchmark/bench/ConfigFormatException.java.i
+data/src/share/classes/sun/security/provider/DSAPrivateKey.java.i
+data/src/share/demo/nbproject/jfc/Font2DTest/nbproject/netbeans-targets.xml.i
+data/make/tools/swing-beans/beaninfo/images/JRadioButtonMono16.gif.i
 data/make/tools/CharsetMapping/IBM869.map.i
-data/test/javax/swing/regtesthelpers/Util.java.i
-data/src/share/classes/sun/awt/image/ImageFetcher.java.i
+data/test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh.i
 data/src/share/classes/java/awt/Image.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_TW.properties.i
 data/src/solaris/classes/sun/font/XRGlyphCache.java.i
+data/make/netbeans/swing/build.properties.i
 data/src/share/classes/sun/security/x509/PolicyInformation.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/SourceManager.java.i
-data/test/java/beans/XMLEncoder/6777487/TestCheckedCollection.java.i
-data/make/sun/net/spi/Makefile.i
+data/test/sun/net/www/protocol/http/UserCookie.java.i
+data/test/sun/security/provider/PolicyFile/TokenStore.RelPassPolicy.i
 data/src/solaris/classes/sun/awt/X11/XPropertyCache.java.i
 data/make/tools/swing-beans/beaninfo/images/JScrollPaneColor16.gif.i
-data/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpecList.java.i
-data/src/windows/native/com/sun/management/OperatingSystem_md.c.i
-data/make/sun/dcpr/mapfile-vers.i
-data/src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java.i
-data/test/java/io/File/MaxPath.java.i
+data/test/java/math/BigInteger/ModPowPowersof2.java.i
+data/test/javax/sound/midi/Gervill/SoftAudioBuffer/NewSoftAudioBuffer.java.i
+data/test/java/nio/Buffer/genCopyDirectMemory.sh.i
+data/test/sun/tools/jstat/jstatSnap2.sh.i
 data/src/share/classes/javax/naming/Context.java.i
-data/src/share/classes/sun/tools/asm/FieldConstantData.java.i
 data/test/java/beans/Introspector/4520754/Test4520754.java.i
-data/test/java/util/ResourceBundle/Control/Chinese_zh_TW.properties.i
+data/test/javax/xml/crypto/dsig/SignatureValidator.java.i
 data/src/share/classes/java/util/concurrent/Executor.java.i
 data/src/share/classes/com/sun/media/sound/services/javax.sound.sampled.spi.FormatConversionProvider.i
-data/src/share/classes/java/lang/reflect/InvocationHandler.java.i
-data/src/share/lib/images/cursors/invalid32x32.gif.i
+data/src/share/classes/sun/misc/Compare.java.i
 data/src/share/classes/java/lang/management/ManagementFactory.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-i586/libnss3.so.i
-data/test/sun/rmi/log/ReliableLog/Recovery.java.i
-data/src/share/classes/sun/io/CharToByteCp1144.java.i
+data/src/share/demo/management/JTop/JTopPlugin.java.i
+data/src/share/classes/sun/tools/tree/SynchronizedStatement.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM1006.java.i
 data/make/tools/CharsetMapping/IBM942.map.i
 data/src/share/classes/java/awt/image/ImageProducer.java.i
 data/src/share/classes/javax/imageio/stream/ImageInputStreamImpl.java.i
 data/src/share/native/sun/awt/libpng/pngget.c.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/KeyInfo.java.i
-data/test/java/util/ResourceBundle/Control/Bug6530694.java.i
-data/test/java/lang/instrument/TransformerManagementThreadAddTests.java.i
+data/test/sun/nio/cs/Test4206507.java.i
 data/test/java/beans/XMLEncoder/javax_swing_border_MatteBorder.java.i
-data/src/share/classes/javax/sound/midi/Track.java.i
+data/test/java/io/Serializable/evolution/RenamePackage/test/SerialDriver.java.i
 data/src/windows/classes/sun/awt/Win32FontManager.java.i
 data/src/share/classes/java/lang/ref/ReferenceQueue.java.i
 data/src/share/native/sun/font/layout/TibetanReordering.h.i
 data/test/java/io/Serializable/classDescFlagConflict/Foo.ser.i
-data/src/share/classes/sun/text/resources/FormatData_th_TH_TH.java.i
+data/test/java/beans/XMLEncoder/java_util_Collections_SingletonList.java.i
+data/src/share/classes/java/util/Calendar.java.i
 data/test/java/util/ResourceBundle/Control/MissingResourceCauseTest.java.i
-data/test/javax/management/remote/mandatory/loading/DeserializeEncodedURLTest.java.i
+data/test/java/awt/FontClass/FontAccess.java.i
 data/src/windows/native/sun/windows/awt_InputEvent.cpp.i
-data/make/tools/swing-beans/beaninfo/images/JSpinnerMono32.gif.i
+data/test/java/net/ipv6tests/BadIPv6Addresses.java.i
+data/src/share/native/sun/awt/image/imageInitIDs.h.i
 data/test/java/security/cert/CertificateFactory/openssl/BadFooter.java.i
-data/test/sun/security/tools/policytool/UpdatePermissions.sh.i
-data/src/share/classes/java/awt/AttributeValue.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/InvalidCanonicalizerException.java.i
-data/src/solaris/classes/sun/net/spi/SdpProvider.java.i
+data/test/java/lang/StackTraceElement/PublicConstructor.java.i
+data/src/share/classes/com/sun/crypto/provider/DESKeyGenerator.java.i
+data/src/solaris/sample/dtrace/hotspot/class_loading_stat.d.i
 data/src/share/demo/applets/WireFrame/models/dinasaur.obj.i
-data/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/dnsstore.i
 data/src/solaris/classes/sun/awt/X11/XKeysym.java.i
 data/src/share/classes/sun/io/ByteToCharISO8859_2.java.i
-data/src/share/classes/com/sun/crypto/provider/FeedbackCipher.java.i
+data/test/com/sun/tools/attach/java.policy.deny.i
 data/src/share/classes/sun/nio/cs/ISO_8859_15.java.i
 data/test/java/io/OutputStreamWriter/Encode.java.i
-data/src/share/classes/java/io/ExpiringCache.java.i
-data/make/mkdemo/jvmti/heapViewer/Makefile.i
+data/src/share/classes/java/text/AttributedCharacterIterator.java.i
+data/src/share/classes/sun/applet/AppletImageRef.java.i
 data/test/javax/swing/plaf/basic/BasicSplitPaneUI/Test6657026.java.i
-data/test/javax/sound/midi/Gervill/SoftChannel/ChannelPressure.java.i
-data/src/share/classes/javax/sound/midi/spi/MidiFileWriter.java.i
+data/test/sun/tools/jstat/classOutput1.awk.i
+data/src/share/classes/sun/io/ByteToCharCp285.java.i
 data/test/java/rmi/testlibrary/RegistryRunner_Stub.java.i
-data/src/share/classes/com/sun/jndi/url/rmi/rmiURLContextFactory.java.i
+data/test/javax/swing/GroupLayout/6613904/bug6613904.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/v1_0/BasicType.java.i
-data/src/share/classes/com/sun/awt/SecurityWarning.java.i
+data/src/share/classes/sun/net/ftp/FtpClientProvider.java.i
 data/test/java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java.i
 data/src/share/classes/javax/sound/midi/Sequencer.java.i
 data/test/sun/net/www/protocol/http/B6299712.java.i
 data/src/share/classes/sun/security/krb5/internal/PAEncTSEnc.java.i
-data/src/share/classes/sun/rmi/transport/DGCImpl.java.i
+data/src/share/classes/javax/swing/text/html/ResourceLoader.java.i
 data/src/share/classes/com/sun/security/sasl/PlainClient.java.i
+data/src/share/transport/shmem/shmemBack.c.i
 data/src/share/demo/nbproject/jfc/Notepad/build.xml.i
 data/src/share/classes/com/sun/jndi/url/dns/dnsURLContextFactory.java.i
-data/src/share/classes/com/sun/jmx/snmp/agent/SnmpGenericMetaServer.java.i
-data/src/share/classes/com/sun/media/sound/ModelOscillatorStream.java.i
-data/src/share/classes/java/dyn/MethodType.java.i
-data/src/share/classes/sun/misc/ProxyGenerator.java.i
+data/src/share/classes/javax/crypto/ExemptionMechanismSpi.java.i
+data/src/share/classes/javax/sound/sampled/AudioFileFormat.java.i
+data/src/share/classes/com/sun/media/sound/SoftSincResampler.java.i
+data/src/windows/native/sun/windows/awt_Insets.cpp.i
 data/src/share/classes/sun/tools/jconsole/resources/masthead-right.png.i
 data/test/java/rmi/server/UnicastRemoteObject/useDynamicProxies/UseDynamicProxies.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTestHeyYou.java.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageAffineIndex_BC.c.i
-data/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java.i
+data/test/com/sun/management/OperatingSystemMXBean/GetProcessCpuTime.java.i
 data/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java.i
 data/src/share/classes/java/awt/im/spi/package.html.i
 data/src/share/classes/javax/security/auth/callback/package.html.i
-data/src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.5.9.properties.i
-data/src/share/classes/sun/reflect/generics/tree/TypeSignature.java.i
+data/test/javax/management/mxbean/ComparatorExceptionTest.java.i
+data/test/javax/swing/RepaintManager/6608456/bug6608456.java.i
+data/test/java/beans/PropertyEditor/TestStringClassNull.java.i
 data/src/windows/native/sun/windows/awtmsg.h.i
 data/test/com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java.i
 data/src/share/classes/sun/security/jgss/wrapper/NativeGSSFactory.java.i
-data/test/java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java.i
+data/make/tools/strip_properties/Makefile.i
 data/test/java/net/DatagramSocket/SetReceiveBufferSize.java.i
 data/src/solaris/native/sun/nio/fs/SolarisWatchService.c.i
 data/make/com/sun/java/pack/FILES_cpp.gmk.i
 data/src/share/npt/README.txt.i
-data/src/share/classes/sun/security/x509/CRLReasonCodeExtension.java.i
+data/test/java/util/concurrent/DelayQueue/Iterate.java.i
 data/src/share/classes/javax/print/attribute/standard/JobStateReason.java.i
 data/test/com/sun/security/sasl/names.properties.i
 data/src/share/classes/javax/print/attribute/standard/JobState.java.i
 data/src/share/classes/javax/naming/directory/NoSuchAttributeException.java.i
-data/src/linux/doc/man/pack200.1.i
-data/test/sun/tools/jstat/classOutput1.awk.i
+data/src/share/demo/jvmti/hprof/hprof_trace.c.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpStatusException.java.i
 data/test/java/beans/Introspector/4520754/infos/ComponentBeanInfo.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java.i
 data/test/javax/management/mxbean/MXBeanTest.java.i
 data/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnectionOldImpl.java.i
 data/src/solaris/classes/sun/awt/X11/XEmbeddedFrame.java.i
-data/test/java/lang/annotation/Missing/B.java.i
+data/test/java/util/zip/ZipFile/EnumAfterClose.java.i
 data/src/share/classes/sun/security/krb5/internal/ASRep.java.i
 data/make/com/sun/security/jgss/Makefile.i
 data/src/share/native/com/sun/media/sound/PortMixerProvider.c.i
 data/test/com/sun/jdi/JdbVarargsTest.sh.i
-data/src/share/classes/com/sun/tracing/ProbeName.java.i
+data/src/share/classes/sun/text/resources/CollationData_vi.java.i
+data/src/share/classes/javax/print/event/package.html.i
 data/test/java/rmi/activation/CommandEnvironment/security.policy.i
 data/src/solaris/classes/sun/awt/X11/generator/sizes.64-solaris-i386.i
 data/src/share/classes/java/util/logging/Handler.java.i
-data/src/share/demo/java2d/J2DBench/README.i
-data/src/share/classes/sun/tools/tree/BinaryExpression.java.i
-data/src/share/classes/java/rmi/package.html.i
+data/test/java/lang/Throwable/LocalizedMessage.java.i
+data/test/com/sun/security/sasl/pw.properties.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/icons/image-delayed.png.i
 data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_CN.properties.i
 data/src/share/classes/sun/security/util/ManifestEntryVerifier.java.i
 data/src/share/back/ClassLoaderReferenceImpl.c.i
 data/src/share/classes/sun/security/jca/ProviderConfig.java.i
-data/src/share/classes/sun/dyn/ToGeneric.java.i
+data/make/sun/nio/cs/Makefile.i
+data/src/share/classes/com/sun/jdi/AbsentInformationException.java.i
 data/src/share/classes/java/awt/doc-files/FocusCycle.gif.i
 data/src/solaris/classes/sun/awt/motif/java.fonts.dir.i
 data/test/tools/pack200/Pack200Test.java.i
-data/test/java/security/KeyStore/keystore.jks.i
+data/test/org/openjdk/jigsaw/cli/jmod-basic.sh.i
 data/test/java/nio/charset/coders/IOCoders.java.i
-data/src/share/classes/sun/java2d/Surface.java.i
-data/src/share/classes/javax/swing/plaf/metal/sounds/OptionPaneError.wav.i
-data/src/share/classes/sun/rmi/rmic/IndentingWriter.java.i
-data/src/linux/doc/man/schemagen.1.i
+data/src/share/native/sun/awt/libpng/pngrutil.c.i
+data/src/solaris/native/java/io/UnixFileSystem_md.c.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/GoodProvider.java.i
+data/src/share/classes/java/util/concurrent/CancellationException.java.i
 data/test/java/io/RandomAccessFile/WriteUTF.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_hu.properties.i
-data/src/share/classes/sun/tools/jconsole/inspector/XMBeanNotifications.java.i
-data/src/share/classes/sun/management/counter/StringCounter.java.i
-data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/README.i
-data/src/solaris/native/sun/nio/ch/DatagramDispatcher.c.i
+data/src/share/native/sun/awt/image/jpeg/jccolor.c.i
+data/src/share/classes/sun/swing/plaf/synth/SynthUI.java.i
+data/src/share/classes/com/sun/tools/hat/internal/model/ReferenceChain.java.i
+data/make/tools/src/build/tools/jdwpgen/CommentNode.java.i
+data/test/java/net/Inet6Address/IPv6Numeric.java.i
 data/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.h.i
+data/src/share/classes/java/rmi/server/ServerNotActiveException.java.i
 data/src/windows/native/sun/windows/awt_PopupMenu.h.i
-data/make/sun/cmm/kcms/Makefile.i
+data/src/share/classes/sun/security/krb5/internal/UDPClient.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/AliasFileParser.java.i
 data/src/share/classes/javax/swing/plaf/nimbus/Effect.java.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpGauge.java.i
-data/src/windows/native/sun/security/pkcs11/j2secmod_md.h.i
-data/src/share/classes/sun/reflect/annotation/AnnotationParser.java.i
+data/test/java/io/File/GetParent.java.i
+data/test/java/net/URL/jar_urls.i
+data/test/sun/security/tools/jarsigner/Test4431684.java.i
 data/test/java/io/FileInputStream/LargeFileAvailable.java.i
 data/test/java/util/jar/JarInputStream/BadSignedJar.jar.i
 data/src/share/classes/javax/print/attribute/standard/JobStateReasons.java.i
 data/src/share/classes/sun/text/resources/FormatData_in_ID.java.i
 data/src/share/classes/java/lang/ApplicationShutdownHooks.java.i
-data/test/java/lang/reflect/Array/ExceedMaxDim.java.i
+data/test/javax/sound/midi/Gervill/RiffReaderWriter/Read.java.i
 data/src/solaris/classes/sun/awt/motif/X11GB18030_0.java.i
 data/test/java/io/Serializable/typeSafeEnum/TypeSafeEnum.java.i
 data/src/share/classes/javax/management/ClientContext.java.i
-data/src/share/classes/sun/text/resources/CollationData_cs.java.i
-data/src/share/classes/javax/script/ScriptContext.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_NN.c.i
-data/src/share/classes/sun/tools/tree/NewArrayExpression.java.i
+data/src/share/classes/java/net/URL.java.i
+data/test/sun/security/krb5/auto/Context.java.i
+data/test/sun/security/pkcs11/KeyStore/BasicData/ca.key.i
+data/src/share/classes/javax/naming/NameClassPair.java.i
+data/src/share/native/sun/java2d/loops/DrawPath.h.i
 data/src/solaris/native/sun/java2d/opengl/GLXGraphicsConfig.h.i
-data/test/sun/text/resources/Format/Bug4762201.java.i
 data/src/share/classes/java/awt/Label.java.i
-data/make/sun/security/smartcardio/mapfile-vers.i
+data/src/windows/native/sun/java2d/d3d/D3DMaskCache.h.i
 data/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java.i
-data/src/share/classes/com/sun/media/sound/AudioFloatInputStream.java.i
+data/src/share/classes/sun/io/CharToByteHKSCS.java.i
 data/src/share/classes/sun/security/x509/PolicyConstraintsExtension.java.i
 data/test/java/security/cert/CertPathValidatorException/Serial.java.i
-data/make/tools/CharsetMapping/IBM864.map.i
-data/test/java/util/jar/JarFile/MevNPE.java.i
+data/src/share/classes/javax/swing/plaf/nimbus/OuterGlowEffect.java.i
+data/test/java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html.i
 data/src/share/classes/sun/text/resources/FormatData_it.java.i
 data/make/tools/sharing/classlist.windows.i
 data/test/java/util/Locale/data/deflocale.win7.fmtasdefault.i
 data/test/java/io/FileInputStream/OpenDir.java.i
-data/src/linux/doc/man/jstatd.1.i
+data/src/share/classes/sun/management/snmp/jvminstr/JvmMemManagerEntryImpl.java.i
 data/src/share/classes/sun/tools/util/CommandLine.java.i
 data/test/java/lang/instrument/PremainClass/ZeroArgPremainAgent.java.i
-data/src/share/classes/javax/swing/colorchooser/CenterLayout.java.i
-data/src/share/classes/sun/text/resources/FormatData_fr_LU.java.i
-data/make/tools/src/build/tools/automulti/TestALFGenerator.java.i
-data/test/java/awt/font/TextLayout/TestHebrewMark.java.i
+data/src/share/classes/javax/swing/plaf/ProgressBarUI.java.i
+data/test/java/awt/Window/TranslucentShapedFrameTest/TSFrame.java.i
+data/src/share/classes/java/util/BitSet.java.i
+data/test/java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java.i
+data/src/share/classes/sun/jvmstat/monitor/MonitorException.java.i
+data/src/share/demo/jfc/Font2DTest/Font2DTest.html.i
 data/src/solaris/classes/sun/java2d/UnixSurfaceManagerFactory.java.i
 data/src/share/classes/javax/print/DocPrintJob.java.i
 data/test/java/beans/Introspector/Test6868189.java.i
-data/src/share/native/com/sun/media/sound/MidiInDeviceProvider.c.i
-data/src/share/demo/management/FullThreadDump/ThreadMonitor.java.i
+data/src/share/native/sun/awt/image/jpeg/jidctred.c.i
+data/test/java/beans/Introspector/Test4498236.java.i
 data/test/sun/security/provider/PolicyFile/Comparator.Principal.Policy.i
-data/src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java.i
+data/src/share/classes/javax/swing/plaf/multi/package.html.i
 data/test/java/awt/font/NumericShaper/EasternArabicTest.java.i
 data/src/share/classes/javax/naming/ldap/LdapContext.java.i
 data/test/java/net/InterfaceAddress/NetworkPrefixLength.java.i
-data/src/share/classes/sun/io/ByteToCharCp970.java.i
+data/src/share/classes/com/sun/beans/finder/ClassFinder.java.i
 data/src/share/classes/javax/management/namespace/JMXRemoteNamespaceMBean.java.i
 data/src/share/classes/java/awt/image/RGBImageFilter.java.i
-data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/group.security.policy.i
+data/src/share/classes/sun/net/httpserver/LeftOverInputStream.java.i
 data/src/share/classes/sun/security/ssl/SSLSessionContextImpl.java.i
+data/test/javax/xml/crypto/dsig/data/exc-signature.xml.i
 data/src/windows/classes/sun/java2d/windows/Win32SurfaceDataProxy.java.i
 data/test/sun/security/tools/keytool/resource.sh.i
 data/test/sun/nio/cs/OLD/IBM943_OLD.java.i
-data/src/share/classes/com/sun/servicetag/resources/javase_5_swordfish.properties.i
-data/src/share/classes/sun/reflect/generics/reflectiveObjects/WildcardTypeImpl.java.i
+data/src/share/classes/sun/management/snmp/jvminstr/JvmMemPoolTableMetaImpl.java.i
+data/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java.i
 data/test/sun/nio/cs/SurrogateTestEUCTW.plane3.surrogates.i
 data/test/java/util/Collections/RotateEmpty.java.i
-data/src/share/classes/java/awt/font/GlyphMetrics.java.i
+data/src/share/demo/jvmti/waiters/Agent.cpp.i
 data/test/java/awt/dnd/ImageDecoratedDnDNegative/DnDTarget.java.i
 data/test/java/security/Security/removing/RemoveProviders.java.i
 data/test/java/rmi/activation/Activatable/downloadParameterClass/Bar.java.i
 data/test/java/io/Serializable/subclass/run.sh.i
 data/test/java/io/Writer/WriteParams.java.i
 data/make/common/internal/Defs-jaxp.gmk.i
-data/src/share/javavm/export/jawt.h.i
-data/src/share/classes/sun/security/tools/KeyTool.java.i
+data/test/sun/security/pkcs11/Cipher/TestRSACipherWrap.java.i
 data/src/share/classes/sun/net/spi/nameservice/dns/DNSNameServiceDescriptor.java.i
-data/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java.i
-data/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java.i
+data/src/solaris/classes/sun/awt/X11/InfoWindow.java.i
+data/test/javax/imageio/plugins/jpeg/WritingInterruptionTest.java.i
+data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiOut.c.i
+data/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java.i
 data/src/share/classes/javax/management/timer/package.html.i
-data/test/javax/sound/midi/Gervill/SoftTuning/NewSoftTuning.java.i
-data/test/javax/management/Introspector/DescribedMX.java.i
+data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/AcceptLargeFragments.java.i
+data/src/share/classes/sun/io/ByteToCharCp949C.java.i
+data/src/share/native/com/sun/java/util/jar/pack/zip.h.i
 data/src/solaris/classes/sun/awt/X11/XCursorFontConstants.java.i
 data/test/sun/net/InetAddress/nameservice/simple/META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor.i
-data/src/solaris/native/sun/java2d/loops/mlib_v_ImageZoom_NN_f.c.i
+data/test/javax/crypto/CryptoPermission/RC2PermCheck.java.i
 data/make/tools/src/build/tools/jdwpgen/AbstractTypeNode.java.i
 data/src/share/native/sun/font/layout/NonContextualGlyphSubstProc.cpp.i
 data/test/javax/crypto/CryptoPermission/RSANoLimit.java.i
@@ -11789,26 +11535,30 @@ data/make/sun/javazic/javatz/jdk1.1.x_zone_ids.txt.i
 data/src/share/classes/com/sun/tools/hat/internal/parser/MappedReadBuffer.java.i
 data/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java.i
 data/src/share/demo/jfc/FileChooserDemo/README.txt.i
-data/src/share/classes/sun/tools/tree/SubtractExpression.java.i
-data/test/javax/crypto/CryptoPermission/RC4AliasPermCheck.java.i
+data/src/solaris/classes/sun/awt/X11/XException.java.i
+data/test/javax/swing/UIDefaults/6795356/bug6795356.java.i
 data/test/sun/net/www/protocol/jar/jarbug/etc/jar1/res1.txt.i
 data/src/share/classes/sun/awt/VariableGridLayout.java.i
 data/src/share/demo/jfc/Metalworks/MetalworksDocumentFrame.java.i
-data/test/com/sun/jdi/GetLocalVariables.java.i
+data/src/share/demo/nbproject/jfc/SwingApplet/build.xml.i
+data/test/javax/management/loading/LibraryLoader/UseNativeLib1.html.i
 data/make/sun/security/other/Makefile.i
 data/src/windows/back/linker_md.c.i
-data/src/share/demo/nbproject/jfc/SwingApplet/nbproject/jdk.xml.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConvMxN_8.c.i
+data/src/share/classes/javax/imageio/spi/IIOServiceProvider.java.i
+data/test/java/rmi/reliability/juicer/OrangeEchoImpl.java.i
+data/test/java/lang/instrument/ilib/RuntimeConstants.java.i
 data/test/java/security/cert/pkix/nameConstraintsMinMax/VerifyNameConstraints.java.i
 data/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_ro.properties.i
+data/src/share/demo/nbproject/jfc/Notepad/nbproject/jdk.xml.i
+data/src/share/classes/sun/util/resources/CurrencyNames_ar_OM.properties.i
 data/src/share/classes/javax/management/ManagedAttribute.java.i
-data/src/share/classes/javax/net/ssl/SSLEngineResult.java.i
-data/src/share/classes/javax/security/auth/callback/LanguageCallback.java.i
-data/test/java/nio/channels/FileChannel/ReadFull.java.i
+data/src/share/classes/sun/rmi/transport/proxy/RMIHttpToPortSocketFactory.java.i
+data/src/windows/javavm/include/typedefs_md.h.i
+data/src/share/classes/sun/management/snmp/jvmmib/JVM_MANAGEMENT_MIBOidTable.java.i
 data/test/javax/xml/crypto/dsig/data/signature-external-dsa.xml.i
 data/test/javax/swing/JTableHeader/6889007/bug6889007.java.i
 data/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java.i
+data/src/windows/classes/sun/awt/windows/WGlobalCursorManager.java.i
 data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextMeasureTests.java.i
 data/src/linux/doc/man/ja/wsimport.1.i
 data/make/sun/net/others/Makefile.i
@@ -11821,41 +11571,44 @@ data/test/java/beans/XMLEncoder/Test4903007.java.i
 data/src/share/classes/sun/tools/jstat/ExpressionEvaluator.java.i
 data/make/common/Modules.gmk.i
 data/src/solaris/hpi/export/timeval_md.h.i
-data/src/share/classes/sun/awt/image/ImagingLib.java.i
-data/src/share/classes/java/lang/VerifyError.java.i
-data/src/solaris/classes/sun/java2d/jules/JulesAATileGenerator.java.i
+data/src/share/classes/javax/naming/BinaryRefAddr.java.i
+data/src/share/classes/com/sun/security/auth/module/NTSystem.java.i
+data/test/com/sun/jdi/redefine/SchemaChange_RedefineSubTarg.java.i
 data/src/share/classes/sun/util/logging/resources/logging_fr.properties.i
 data/src/share/classes/java/util/zip/GZIPOutputStream.java.i
-data/test/org/openjdk/jigsaw/cli/tsca-cert.pem.i
+data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libnss3.so.d
 data/src/share/demo/jvmti/waiters/Monitor.cpp.i
-data/src/share/classes/javax/security/cert/CertificateParsingException.java.i
-data/test/java/lang/ClassLoader/package2/Class2.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libnss3.so.i
+data/src/share/classes/sun/java2d/pisces/PiscesCache.java.i
+data/src/share/native/sun/font/FontInstanceAdapter.cpp.i
 data/src/share/classes/com/sun/crypto/provider/PrivateKeyInfo.java.i
-data/src/share/classes/sun/io/ByteToCharCp942C.java.i
+data/src/share/classes/sun/io/ByteToCharEUC_KR.java.i
 data/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicContext.java.i
 data/src/share/classes/sun/awt/resources/awt_sv.properties.i
-data/test/java/beans/XMLEncoder/java_awt_MenuShortcut.java.i
 data/test/sun/security/pkcs11/ec/TestCurves.java.i
-data/src/share/classes/sun/awt/NullComponentPeer.java.i
+data/src/share/demo/jfc/FileChooserDemo/ExampleFileView.java.i
+data/src/share/classes/java/awt/doc-files/Checkbox-1.gif.i
 data/test/java/util/zip/TestZipError.java.i
 data/make/tools/swing-beans/beaninfo/images/BoxMono16.gif.i
 data/test/java/beans/XMLEncoder/6777487/TestCheckedSet.java.i
-data/test/java/security/BasicPermission/PermClass.1.4.i
-data/src/share/demo/applets/SimpleGraph/example1.html.i
+data/src/share/native/java/lang/fdlibm/src/e_cosh.c.i
+data/src/solaris/native/sun/awt/awt_mgrsel.c.i
 data/test/com/sun/crypto/provider/Cipher/AES/Test4512704.java.i
-data/src/share/classes/sun/util/resources/CalendarData_lt.properties.i
+data/src/share/classes/sun/awt/resources/awt_ko.properties.i
 data/src/share/classes/javax/management/build.xml.i
 data/test/sun/net/www/http/ChunkedInputStream/TestAvailable.java.i
 data/src/share/classes/sun/dyn/FromGeneric.java.i
-data/src/share/classes/java/awt/Transparency.java.i
+data/test/sun/java2d/OpenGL/GradientPaints.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java.i
 data/test/java/awt/print/PrinterJob/PrtException.java.i
 data/src/share/native/sun/misc/Signal.c.i
-data/src/share/classes/javax/swing/text/html/HRuleView.java.i
+data/src/share/classes/sun/security/krb5/internal/TransitedEncoding.java.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/ShortArrayCalls.java.i
 data/make/tools/CharsetMapping/HKSCS2001.c2b.i
 data/src/share/classes/java/nio/file/NotLinkException.java.i
 data/src/share/native/sun/java2d/loops/Ushort565Rgb.h.i
-data/src/solaris/native/sun/java2d/opengl/GLXGraphicsConfig.c.i
+data/src/share/classes/javax/management/event/RMIPushEventForwarder.java.i
+data/src/share/classes/sun/util/resources/CalendarData_pl.properties.i
 data/test/com/sun/security/sasl/digest/ClientCallbackHandler.java.i
 data/src/windows/native/sun/java2d/windows/WindowsFlags.h.i
 data/test/java/rmi/server/serverStackTrace/ServerStackTrace_Stub.java.i
@@ -11863,42 +11616,44 @@ data/src/share/classes/sun/jvmstat/monitor/MonitoredHost.java.i
 data/test/java/nio/channels/ServerSocketChannel/SocketOptionTests.java.i
 data/src/share/classes/sun/security/util/AuthResources_de.java.i
 data/test/java/nio/channels/Selector/SelectorTest.java.i
+data/make/modules/tools/src/com/sun/classanalyzer/ClassPath.java.i
 data/src/share/classes/java/util/Random.java.i
 data/src/solaris/bin/ergo_sparc.c.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CloseSocket.java.i
+data/src/share/classes/javax/swing/plaf/basic/BasicComboBoxRenderer.java.i
 data/src/share/classes/sun/text/resources/BreakIteratorRules.java.i
-data/src/share/native/java/util/zip/zlib-1.2.3/zutil.c.i
+data/test/com/sun/net/httpserver/SimpleSSLContext.java.i
 data/src/share/classes/sun/security/krb5/RealmException.java.i
-data/src/share/native/java/lang/fdlibm/src/k_standard.c.i
-data/src/share/classes/sun/java2d/Disposer.java.i
+data/test/java/rmi/reliability/benchmark/bench/serial/Strings.java.i
+data/src/share/classes/java/awt/doc-files/GridBagLayout-baseline.png.i
 data/src/share/classes/sun/util/resources/CurrencyNames_lv_LV.properties.i
 data/test/java/awt/TrayIcon/DragEventSource/DragEventSource.java.i
 data/test/javax/sound/midi/Gervill/ModelStandardTransform/NewModelStandardTransformBooleanBooleanInt.java.i
 data/src/share/classes/javax/crypto/spec/RC5ParameterSpec.java.i
-data/src/solaris/classes/sun/misc/FileURLMapper.java.i
+data/test/java/rmi/activation/Activatable/nonExistentActivatable/NonExistentActivatable.java.i
 data/test/java/util/ServiceLoader/FooProvider1.java.i
 data/test/sun/nio/cs/FindASCIICodingBugs.java.i
-data/test/java/nio/channels/Pipe/EmptyRead.java.i
-data/src/share/classes/javax/swing/text/html/OptionComboBoxModel.java.i
-data/src/share/classes/sun/rmi/rmic/Names.java.i
+data/src/share/classes/java/security/interfaces/DSAPrivateKey.java.i
+data/src/solaris/native/sun/awt/awt_DrawingSurface.h.i
+data/test/java/rmi/activation/Activatable/createPrivateActivable/rmid.security.policy.i
 data/src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java.i
-data/src/share/classes/java/security/SecureClassLoader.java.i
+data/test/java/nio/channels/AsyncCloseAndInterrupt.java.i
 data/src/share/demo/nbproject/jfc/TransparentRuler/build.properties.i
 data/src/share/native/sun/java2d/loops/IntRgb.h.i
+data/src/share/classes/sun/io/CharToByteMS932DB.java.i
 data/test/java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html.i
+data/make/java/jli/mapfile-vers.i
 data/src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java.i
-data/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java.i
 data/src/share/classes/java/sql/NClob.java.i
 data/src/windows/native/sun/java2d/windows/dxInit.cpp.i
 data/test/java/rmi/invalidName/InvalidName.java.i
 data/test/java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java.i
-data/src/share/classes/sun/nio/cs/ext/ISO_8859_6.java.i
+data/test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_mix_mono.java.i
 data/src/share/classes/sun/security/x509/OCSPNoCheckExtension.java.i
 data/test/sun/security/pkcs11/Serialize/SerializeProvider.java.i
-data/src/share/classes/com/sun/security/auth/PolicyParser.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBuffer.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/CipherSuite/SSL_NULL.java.i
+data/make/tools/src/build/tools/jdwpgen/ReferenceIDTypeNode.java.i
 data/src/share/classes/java/nio/charset/package.html.i
-data/src/share/classes/javax/swing/LookAndFeel.java.i
+data/src/share/classes/javax/swing/doc-files/groupLayout.1.gif.i
 data/test/java/nio/channels/FileChannel/ClosedChannelTransfer.java.i
 data/test/java/util/Locale/Bug6989440.java.i
 data/src/share/native/sun/font/layout/ClassDefinitionTables.h.i
@@ -11906,213 +11661,210 @@ data/src/share/classes/java/awt/TextField.java.i
 data/src/solaris/native/sun/awt/XDrawingAreaP.h.i
 data/test/javax/management/ObjectName/ObjectNameGetInstanceTest.java.i
 data/test/java/beans/XMLEncoder/javax_swing_KeyStroke.java.i
-data/test/java/awt/regtesthelpers/AbstractTest.java.i
-data/src/solaris/native/sun/java2d/x11/X11TextRenderer_md.c.i
+data/test/java/awt/print/PrinterJob/ExceptionTest.java.i
 data/make/tools/CharsetMapping/IBM1140.map.i
-data/test/javax/management/monitor/MBeanServerForwarderInvocationHandler.java.i
 data/test/javax/management/modelmbean/OnUnregisterTest.java.i
 data/src/share/classes/sun/tools/jconsole/inspector/XMBeanAttributes.java.i
-data/test/sun/tools/jps/usage.out.i
-data/src/share/classes/java/net/SdpSocketImpl.java.i
-data/test/java/util/ResourceBundle/Bug4396021SpecialMessages.java.i
+data/src/share/classes/sun/tools/asm/NumberConstantData.java.i
+data/test/java/lang/management/ManagementFactory/MXBeanProxyTest.java.i
+data/test/java/lang/instrument/ATestCaseScaffold.java.i
 data/test/java/lang/Thread/StartOOMTest.java.i
 data/src/share/classes/java/lang/NegativeArraySizeException.java.i
-data/src/share/classes/sun/reflect/ClassDefiner.java.i
+data/src/share/classes/sun/java2d/pipe/RenderQueue.java.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedFieldAccessorImpl.java.i
-data/make/tools/swing-beans/beaninfo/images/JPanelMono16.gif.i
+data/src/windows/native/sun/java2d/d3d/D3DTextRenderer.h.i
+data/test/java/io/Serializable/skipToEndOfBlockData/SkipToEndOfBlockData.java.i
 data/src/share/classes/sun/font/FontResolver.java.i
 data/src/share/classes/javax/management/monitor/package.html.i
 data/src/share/classes/sun/io/ByteToCharCp1141.java.i
 data/test/java/lang/Integer/ParsingTest.java.i
 data/make/tools/UnicodeData/SpecialCasing.txt.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpSecurityException.java.i
+data/src/share/classes/org/openjdk/jigsaw/FilePaths.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java.i
-data/src/share/classes/sun/java2d/pipe/LoopPipe.java.i
+data/test/javax/management/Introspector/NotCompliantCauseTest.java.i
 data/src/share/lib/images/cursors/win32_CopyNoDrop32x32.gif.i
-data/src/share/classes/sun/management/resources/agent_es.properties.i
-data/src/solaris/classes/sun/awt/motif/X11Selection.java.i
+data/src/solaris/native/sun/java2d/loops/vis_ByteGray.c.i
+data/test/javax/management/security/MBeanPermissionTest.java.i
 data/src/share/classes/javax/security/auth/spi/package.html.i
 data/src/share/classes/com/sun/jdi/VMDisconnectedException.java.i
 data/src/solaris/doc/sun/man/man1/ja/javaws.1.i
 data/src/windows/native/java/io/Console_md.c.i
+data/src/share/classes/sun/reflect/generics/tree/ClassTypeSignature.java.i
 data/src/share/classes/sun/text/resources/FormatData_lt.java.i
-data/src/share/classes/sun/misc/VMNotification.java.i
+data/src/share/demo/management/JTop/JTop.java.i
 data/src/share/classes/java/nio/file/attribute/FileStoreSpaceAttributeView.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibNode.java.i
 data/test/java/io/OutputStream/WriteParams.java.i
-data/src/share/classes/sun/io/CharToByteSJIS.java.i
+data/src/share/classes/sun/tools/tree/ShiftLeftExpression.java.i
 data/src/windows/hpi/export/byteorder_md.h.i
 data/test/com/sun/jdi/ConstantPoolInfo.java.i
-data/test/sun/nio/cs/TestCompoundTest.java.i
-data/test/java/net/InetAddress/BadDottedIPAddress.java.i
-data/test/java/net/URLClassLoader/getresourceasstream/test.jar.i
+data/test/java/net/Socket/OldSocketImpl.sh.i
 data/src/share/classes/java/text/CollationElementIterator.java.i
-data/src/share/native/sun/security/ec/impl/ec2_233.c.i
-data/test/java/awt/Graphics2D/DrawString/AlphaSurfaceText.java.i
-data/src/solaris/native/sun/awt/list.c.i
-data/make/tools/src/build/tools/jdwpgen/BooleanTypeNode.java.i
-data/src/windows/native/sun/windows/awt_MenuBar.cpp.i
+data/test/java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java.i
+data/src/share/native/sun/java2d/cmm/lcms/cmscam02.c.i
+data/src/share/classes/sun/text/normalizer/Trie.java.i
+data/src/share/classes/sun/tools/tree/AddExpression.java.i
 data/test/sun/security/tools/jarsigner/AlgOptions.sh.i
-data/src/share/demo/nbproject/jfc/Font2DTest/build.properties.i
-data/src/windows/native/java/util/logging.c.i
-data/src/share/classes/java/util/IllegalFormatPrecisionException.java.i
+data/test/java/lang/Long/ParsingTest.java.i
+data/make/tools/swing-beans/beaninfo/images/JProgressBarMono16.gif.i
+data/src/share/native/sun/font/AccelGlyphCache.c.i
 data/src/windows/native/sun/java2d/j2d_md.h.i
-data/test/java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.java.i
+data/test/java/io/LineNumberReader/Skip.java.i
+data/src/share/classes/sun/text/resources/FormatData_is_IS.java.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/XmlConfigUtils.java.i
 data/src/share/classes/sun/security/krb5/internal/KRBSafeBody.java.i
 data/src/windows/native/sun/windows/awt_Button.h.i
 data/src/share/classes/sun/nio/cs/ext/IBM939.java.i
-data/src/share/classes/java/awt/event/InvocationEvent.java.i
+data/test/sun/java2d/pisces/Test7036754.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/KeyValue.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthMenuLayout.java.i
 data/test/java/io/Serializable/readPastObject/ReadPastObject.java.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BL.c.i
-data/test/com/sun/tools/attach/redefineagent.mf.i
-data/src/share/classes/javax/swing/plaf/metal/MetalDesktopIconUI.java.i
-data/test/java/io/Serializable/illegalHandle/tooHighHandle.ser.i
+data/test/javax/management/namespace/DomainCreationTest.java.i
+data/test/javax/imageio/plugins/bmp/TopDownTest.java.i
+data/test/java/security/cert/pkix/nameConstraintsMinMax/sun.cer.i
 data/test/java/awt/print/PrinterJob/Margins.java.i
 data/test/java/nio/charset/RemovingSunIO/TestCOMP.java.i
 data/test/java/awt/FileDialog/MultipleMode/MultipleMode.html.i
-data/test/java/nio/channels/DatagramChannel/Connect.java.i
+data/src/share/classes/sun/security/ssl/ECDHClientKeyExchange.java.i
+data/src/share/classes/javax/swing/AbstractCellEditor.java.i
 data/src/windows/native/sun/windows/ObjectList.h.i
 data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties.i
 data/src/share/classes/sun/security/x509/FreshestCRLExtension.java.i
-data/src/share/classes/sun/awt/dnd/SunDropTargetEvent.java.i
+data/test/java/security/BasicPermission/SerialVersion.java.i
 data/test/com/sun/org/apache/xml/internal/security/TruncateHMAC.java.i
 data/make/com/sun/java/pack/prop/Makefile.i
-data/src/share/native/sun/font/layout/TibetanLayoutEngine.h.i
+data/test/sun/security/validator/samedn.sh.i
 data/src/share/native/java/lang/fdlibm/src/e_gamma.c.i
-data/src/share/classes/com/sun/media/sound/AbstractLine.java.i
-data/test/java/io/File/MaxPathLength.java.i
-data/src/share/classes/sun/rmi/registry/resources/rmiregistry_sv.properties.i
-data/src/share/classes/sun/tools/util/ModifierFilter.java.i
+data/src/share/native/sun/security/ec/impl/ec_naf.c.i
+data/src/solaris/classes/sun/java2d/xr/XRMaskImage.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties.i
 data/src/share/classes/sun/nio/cs/ext/IBM33722.java.i
 data/src/share/classes/sun/io/ByteToCharCp1149.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalRootPaneUI.java.i
-data/test/sun/security/rsa/TestSignatures.java.i
-data/test/java/lang/annotation/AnnotationTypeMismatchException/FoundType.java.i
 data/make/tools/CharsetMapping/IBM850.map.i
 data/test/sun/security/krb5/auto/BadKdc3.java.i
 data/src/share/classes/com/sun/jmx/snmp/ServiceName.java.i
 data/test/sun/misc/JarIndex/metaInfFilenames/jarC/my/impl/StandardMessageService.java.i
-data/test/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java.i
-data/src/windows/native/sun/windows/ComCtl32Util.cpp.i
-data/test/java/nio/file/Files/walkFileTree/denyAll.policy.i
-data/make/common/internal/NativeCompileRules.gmk.i
+data/src/share/native/java/lang/fdlibm/src/w_atanh.c.i
+data/test/java/util/Collections/FindSubList.java.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmRTInputArgsEntryMeta.java.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM_INFO.java.i
 data/test/java/rmi/registry/reexport/Reexport.java.i
 data/src/share/classes/javax/swing/event/TableModelEvent.java.i
 data/make/tools/CharsetMapping/DoubleByte-X.java.template.i
-data/src/share/classes/com/sun/jdi/request/MethodEntryRequest.java.i
+data/src/share/classes/com/sun/tools/jdi/VirtualMachineManagerService.java.i
 data/src/share/native/sun/java2d/loops/ByteBinary4Bit.h.i
 data/src/share/classes/sun/reflect/MethodAccessorGenerator.java.i
-data/test/java/net/DatagramSocket/BindFailTest.java.i
+data/src/share/classes/sun/tools/jar/resources/jar.properties.i
+data/src/share/classes/java/security/spec/ECGenParameterSpec.java.i
 data/src/share/classes/sun/io/ByteToCharCp868.java.i
 data/src/share/native/java/util/zip/zlib-1.2.3/inftrees.h.i
+data/src/windows/classes/sun/nio/fs/WindowsWatchService.java.i
 data/src/share/classes/java/util/concurrent/DelayQueue.java.i
-data/test/org/openjdk/jigsaw/cli/expired-signer-cert.pem.i
-data/src/share/classes/com/sun/imageio/plugins/common/LZWCompressor.java.i
-data/test/java/nio/channels/Selector/OutOfBand.java.i
-data/src/share/classes/sun/util/logging/resources/logging_ko.properties.i
+data/src/share/classes/sun/tools/jar/resources/jar_ja.properties.i
+data/test/java/beans/PropertyChangeSupport/TestSerialization.java.i
 data/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java.i
 data/src/share/classes/sun/tools/attach/HotSpotAttachProvider.java.i
 data/test/javax/management/ObjectInstance/ObjectInstanceNullTest.java.i
-data/test/sun/net/sdp/ProbeIB.java.i
+data/test/sun/nio/cs/DecoderOverflow.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_fr.properties.i
-data/src/share/classes/sun/reflect/SerializationConstructorAccessorImpl.java.i
+data/src/share/native/sun/font/layout/MPreFixups.h.i
+data/make/com/sun/security/auth/Makefile.i
 data/test/sun/net/InetAddress/nameservice/simple/CacheTest.java.i
 data/make/tools/swing-beans/beaninfo/images/JToolBarMono32.gif.i
-data/test/sun/security/pkcs11/Secmod/secmod.db.i
+data/test/java/lang/instrument/appendToClassLoaderSearch/DynamicTest.java.i
 data/make/netbeans/common/build-folder.ent.i
 data/src/share/classes/javax/swing/JFileChooser.java.i
-data/src/share/classes/java/awt/datatransfer/ClipboardOwner.java.i
+data/src/windows/native/sun/jkernel/stdafx.cpp.i
 data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileStore.java.i
-data/test/java/io/LineNumberReader/MarkReset.java.i
+data/src/share/classes/sun/security/krb5/internal/crypto/Aes256.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/icons/DetailsView.gif.i
 data/src/share/classes/sun/java2d/pisces/Transform4.java.i
-data/test/java/lang/StringBuffer/InsertMaxValue.java.i
+data/test/sun/security/pkcs11/tls/TestPRF.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/deflate.c.i
 data/src/share/classes/sun/tools/tree/InlineReturnStatement.java.i
 data/src/share/classes/sun/io/CharToByteCp500.java.i
-data/test/sun/rmi/rmic/newrmic/equivalence/ComputeServer.java.i
-data/test/javax/security/auth/login/Configuration/GetInstanceSecurity.grantedPolicy.i
-data/test/java/awt/dnd/Button2DragTest/Button2DragTest.java.i
-data/src/share/sample/nio/server/Dispatcher1.java.i
+data/src/share/classes/java/rmi/server/SkeletonNotFoundException.java.i
+data/test/javax/security/auth/Subject/doAs/Test.java.i
+data/src/windows/native/sun/windows/awt_Object.h.i
 data/src/share/classes/com/sun/rowset/package.html.i
 data/make/sun/dcpr/FILES_c.gmk.i
 data/test/sun/security/mscapi/SignUsingNONEwithRSA.sh.i
-data/src/share/classes/org/openjdk/jigsaw/LoaderPool.java.i
+data/test/java/nio/charset/spi/FooProvider.java.i
+data/src/windows/native/sun/java2d/d3d/D3DShaderGen.c.i
 data/test/sun/security/krb5/UnknownCCEntry.java.i
 data/test/sun/net/www/http/ChunkedInputStream/ChunkedCharEncoding.sh.i
-data/src/share/classes/com/sun/tools/hat/internal/model/JavaObject.java.i
-data/test/com/sun/security/sasl/util/CheckAccess.java.i
+data/src/share/native/sun/font/layout/TibetanReordering.cpp.i
+data/test/java/net/ResponseCache/B6181108.java.i
 data/src/share/classes/sun/font/Type1Font.java.i
-data/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/Echo.java.i
 data/test/javax/management/monitor/StartStopTest.java.i
-data/test/javax/sound/midi/Gervill/SimpleSoundbank/SetVersion.java.i
+data/src/share/classes/com/sun/servicetag/package.html.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedByteFieldAccessorImpl.java.i
-data/src/solaris/classes/sun/java2d/xr/XRCompositeManager.java.i
+data/src/share/classes/javax/management/remote/JMXConnectorServer.java.i
+data/test/java/io/RandomAccessFile/WriteBytesChars.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiScrollPaneUI.java.i
 data/test/java/lang/module/Main.java.i
-data/test/javax/sound/midi/Gervill/ModelStandardTransform/SetTransform.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/Traffic.java.i
-data/test/sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java.i
+data/src/share/classes/com/sun/jndi/ldap/PersistentSearchControl.java.i
+data/make/java/nio/reorder-sparcv9.i
 data/src/share/classes/java/awt/font/LineBreakMeasurer.java.i
 data/test/java/nio/channels/DatagramChannel/NotBound.java.i
-data/test/java/util/Timer/Args.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh.i
 data/src/share/classes/sun/io/ByteToCharMacCroatian.java.i
 data/src/share/classes/javax/swing/JComboBox.java.i
 data/src/share/classes/javax/management/remote/JMXConnectorProvider.java.i
+data/src/share/classes/sun/tools/tree/GreaterExpression.java.i
 data/test/javax/management/remote/mandatory/subjectDelegation/policy25.i
 data/src/solaris/classes/sun/nio/fs/UnixCopyFile.java.i
 data/make/java/java/Exportedfiles.gmk.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/TemplateLayer.java.i
-data/test/java/util/PluggableLocale/BreakIteratorProviderTest.java.i
+data/make/tools/src/build/tools/jdwpgen/AbstractCommandNode.java.i
 data/test/java/net/InetAddress/B5087907.java.i
 data/src/share/classes/sun/rmi/transport/tcp/MultiplexConnectionInfo.java.i
-data/test/java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency_Stub.java.i
+data/test/sun/security/tools/policytool/UsePolicy.html.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ja.properties.i
 data/test/javax/swing/JSpinner/6532833/bug6532833.java.i
 data/src/share/classes/org/openjdk/jigsaw/ContextFactory.java.i
-data/src/share/classes/java/awt/Scrollbar.java.i
+data/src/share/classes/java/awt/image/DataBufferShort.java.i
 data/test/java/beans/XMLEncoder/java_lang_Enum.java.i
 data/src/solaris/hpi/include/largefile_solaris.h.i
 data/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java.i
-data/src/share/classes/sun/jvmstat/monitor/event/package.html.i
+data/test/java/security/cert/CertPathBuilder/selfIssued/openssl.cnf.i
 data/test/java/rmi/reliability/benchmark/bench/serial/ProxyClassDesc.java.i
 data/src/share/classes/sun/text/resources/BreakIteratorRules_th.java.i
 data/test/java/io/Serializable/classDescHooks/CNFException.java.i
-data/test/javax/sound/midi/Gervill/SoftFilter/TestProcessAudio.java.i
-data/test/sun/security/provider/certpath/DisabledAlgorithms/CPValidatorEndEntity.java.i
+data/src/share/classes/sun/reflect/InstantiationExceptionConstructorAccessorImpl.java.i
 data/src/solaris/native/sun/awt/awt_Choice21.c.i
 data/src/share/native/com/sun/java/util/jar/pack/zip.cpp.i
-data/src/solaris/doc/sun/man/man1/ja/wsimport.1.i
+data/src/solaris/native/sun/awt/awt_Mlib.h.i
 data/src/share/demo/nbproject/management/VerboseGC/build.properties.i
-data/test/java/net/Inet6Address/IPv6AddressTypes.java.i
-data/make/tools/CharsetMapping/IBM870.map.i
+data/src/share/classes/java/lang/Comparable.java.i
+data/src/share/classes/sun/security/rsa/SunRsaSign.java.i
 data/test/org/openjdk/jigsaw/cli/signed-module.policy.i
 data/test/javax/management/Introspector/DescribedMBean.java.i
-data/src/windows/native/sun/windows/awt_Frame.cpp.i
-data/src/windows/classes/sun/nio/fs/WindowsException.java.i
+data/test/javax/management/remote/mandatory/loading/TargetMBeanTest.java.i
 data/src/share/classes/org/openjdk/jigsaw/LinkingContext.java.i
-data/src/share/classes/javax/crypto/spec/PBEKeySpec.java.i
+data/src/share/classes/javax/net/ssl/SSLServerSocketFactory.java.i
+data/src/solaris/native/sun/java2d/loops/mlib_v_ImageConstXor.c.i
 data/src/share/classes/javax/swing/text/CompositeView.java.i
 data/test/java/rmi/registry/altSecurityManager/TestSecurityManager.java.i
-data/src/share/classes/java/util/IllegalFormatWidthException.java.i
+data/src/share/demo/nbproject/jfc/TransparentRuler/nbproject/jdk.xml.i
 data/test/java/net/URLConnection/URLConnectionHeaders.java.i
 data/make/javax/sound/FILES_c.gmk.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheData.java.i
 data/src/share/classes/com/sun/servicetag/WindowsSystemEnvironment.java.i
-data/src/share/classes/org/openjdk/jigsaw/PathLinker.java.i
+data/src/share/classes/sun/awt/image/ImagingLib.java.i
 data/src/share/classes/com/sun/beans/decoder/NewElementHandler.java.i
-data/test/com/sun/tools/extcheck/TestExtcheckArgs.sh.i
+data/test/java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java.i
 data/src/share/classes/java/lang/instrument/IllegalClassFormatException.java.i
-data/src/share/classes/sun/rmi/server/ActivatableServerRef.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignature.java.i
+data/test/org/openjdk/jigsaw/optional-deps.sh.i
+data/test/java/nio/file/Files/probeContentType/META-INF/services/java.nio.file.spi.FileTypeDetector.i
+data/src/share/native/sun/font/layout/GlyphPositioningTables.h.i
 data/src/share/classes/java/security/Signer.java.i
-data/src/linux/doc/man/jhat.1.i
+data/src/solaris/doc/sun/man/man1/DO_NOT_EDIT--GENERATED_FILES.i
 data/src/share/classes/javax/management/openmbean/TabularData.java.i
-data/test/javax/sound/midi/Gervill/ModelSource/NewModelSourceModelIdentifierModelTransform.java.i
+data/test/java/security/SignedObject/Correctness.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java.i
 data/src/windows/native/sun/windows/awt_TextArea.h.i
 data/test/java/util/ResourceBundle/Control/Chinese_zh_CN.properties.i
@@ -12122,52 +11874,53 @@ data/src/share/classes/sun/io/CharToByteCp1025.java.i
 data/src/share/native/java/lang/fdlibm/src/k_rem_pio2.c.i
 data/src/share/demo/jfc/TableExample/TableSorter.java.i
 data/test/java/rmi/activation/ActivationSystem/unregisterGroup/group.security.policy.i
-data/make/sun/management/jmxremote/Makefile.i
+data/test/sun/security/tools/jarsigner/JarSigningNonAscii.java.i
+data/src/share/classes/java/dyn/MethodHandleProvider.java.i
 data/test/java/io/Serializable/maskSyntheticModifier/Test.java.i
-data/test/sun/security/rsa/GenKeyStore.java.i
+data/src/share/classes/javax/naming/spi/StateFactory.java.i
 data/src/share/native/sun/awt/medialib/safe_alloc.h.i
-data/src/windows/classes/sun/nio/fs/WindowsUriSupport.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_zh.properties.i
+data/src/share/classes/java/nio/file/LinkPermission.java.i
+data/src/share/native/sun/java2d/loops/ByteBinary1Bit.h.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/Layer.java.i
 data/make/java/text/base/FILES_java.gmk.i
-data/src/share/classes/javax/swing/plaf/SeparatorUI.java.i
-data/src/share/demo/jfc/SampleTree/SampleTree.java.i
+data/test/java/util/EnumSet/AllOf.java.i
+data/test/sun/java2d/cmm/ColorConvertOp/RGBColorConvertTest.java.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_NOTIFY.java.i
-data/src/share/classes/java/awt/image/ConvolveOp.java.i
+data/src/share/sample/nio/server/Reply.java.i
 data/make/tools/CharsetMapping/IBM1381.map.i
-data/src/share/classes/java/sql/Savepoint.java.i
+data/test/com/sun/jndi/ldap/LdapName/EmptyNameSearch.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/Host.java.i
-data/test/org/openjdk/jigsaw/hello-native.sh.i
-data/test/javax/management/remote/mandatory/passwordAccessFile/SimpleStandard.java.i
-data/src/share/classes/com/sun/media/sound/SoftProvider.java.i
+data/test/javax/imageio/plugins/jpeg/ReadAsGrayTest.java.i
 data/make/javax/crypto/policy/unlimited/default_local.policy.i
 data/test/sun/rmi/rmic/oldjavacRemoved/sunToolsJavacMain.sh.i
 data/src/share/classes/sun/security/provider/certpath/PolicyChecker.java.i
 data/src/share/demo/jvmti/hprof/hprof_tag.c.i
-data/make/sun/dcpr/Makefile.i
+data/src/share/native/sun/font/DrawGlyphList.c.i
 data/src/share/classes/sun/util/calendar/ZoneInfo.java.i
 data/test/java/io/charStreams/BCat.java.i
-data/test/tools/pack200/pack200-verifier/src/xmlkit/ClassReader.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiSpinnerUI.java.i
-data/make/tools/CharsetMapping/IBM284.c2b.i
+data/src/share/classes/javax/swing/ComponentInputMap.java.i
 data/src/solaris/native/sun/awt/awt_MToolkit.h.i
 data/src/share/classes/javax/security/sasl/SaslClient.java.i
 data/test/java/dyn/MethodHandlesTest.java.i
-data/src/windows/classes/sun/java2d/ScreenUpdateManager.java.i
+data/test/java/util/zip/ZipFile/Available.java.i
 data/src/share/classes/sun/io/CharToByteCp943C.java.i
 data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipConstants.java.i
 data/src/share/classes/sun/security/ssl/Krb5Helper.java.i
 data/test/java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java.i
 data/src/share/native/sun/java2d/opengl/OGLSurfaceData.c.i
-data/src/share/back/error_messages.h.i
+data/src/share/classes/sun/java2d/pipe/TextPipe.java.i
 data/make/mkdemo/applets/Blink/Makefile.i
 data/src/share/classes/java/awt/event/KeyListener.java.i
-data/test/java/io/Serializable/GetField/Read.java.i
-data/make/sun/javazic/tzdata/pacificnew.i
-data/test/java/beans/XMLEncoder/java_util_Collections_EmptyMap.java.i
+data/test/org/openjdk/jigsaw/optional-base.sh.i
+data/test/java/io/StreamTokenizer/Comment.java.i
+data/src/share/classes/sun/tools/java/AmbiguousClass.java.i
+data/test/java/beans/XMLEncoder/java_util_Collections_EmptyMap.java.i
 data/test/sun/net/www/protocol/http/DigestTest.java.i
+data/test/java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java.i
 data/src/share/classes/sun/management/HotspotInternalMBean.java.i
-data/src/share/classes/javax/swing/RowFilter.java.i
+data/test/java/lang/management/ManagementFactory/ThreadMXBeanProxy.java.i
+data/src/share/classes/com/sun/jmx/event/RepeatedSingletonJob.java.i
 data/test/sun/misc/BootClassLoaderHook/TestHook.java.i
 data/test/sun/rmi/transport/tcp/disableMultiplexing/DisableMultiplexing.java.i
 data/src/share/demo/scripting/jconsole-plugin/src/scripts/jstack.js.i
@@ -12175,155 +11928,158 @@ data/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.j
 data/src/share/classes/sun/security/provider/certpath/CertId.java.i
 data/test/sun/tools/jps/jps-Vvml.sh.i
 data/src/share/classes/java/rmi/activation/ActivationGroupDesc.java.i
-data/src/windows/classes/sun/awt/windows/awtLocalization.properties.i
 data/test/java/rmi/server/RMIClassLoader/spi/DefaultProperty.java.i
 data/make/tools/swing-beans/DocBeanInfo.java.i
 data/src/share/classes/sun/util/resources/CalendarData_fr.properties.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/crisubn.jks.i
+data/src/share/demo/jvmti/hprof/hprof_object.h.i
 data/test/sun/security/ssl/sanity/pluggability/CipherSuites.java.i
-data/src/share/classes/sun/util/resources/CalendarData_sr_Latn_ME.properties.i
-data/test/java/io/BufferedInputStream/ReadAfterClose.java.i
+data/src/share/classes/java/awt/doc-files/FlowLayout-1.gif.i
+data/test/sun/misc/JarIndex/metaInfFilenames/jarC/META-INF/fonts.mf.i
 data/test/java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java.i
+data/src/share/classes/sun/java2d/pipe/GlyphListLoopPipe.java.i
 data/src/solaris/doc/sun/man/man1/pack200.1.i
+data/make/sun/awt/FILES_export_unix.gmk.i
 data/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageReader.java.i
 data/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java.i
+data/src/share/classes/com/sun/beans/WildcardTypeImpl.java.i
 data/test/javax/xml/crypto/dsig/data/signature-enveloping-b64-dsa.xml.i
-data/test/java/util/concurrent/ConcurrentQueues/GCRetention.java.i
-data/src/solaris/classes/sun/awt/motif/X11SelectionHolder.java.i
-data/test/java/io/Serializable/superclassDataLoss/run.sh.i
-data/src/share/classes/java/util/AbstractSequentialList.java.i
-data/test/java/rmi/reliability/benchmark/bench/serial/Longs.java.i
+data/test/javax/print/attribute/CollateAttr.java.i
+data/test/sun/security/krb5/krb5.conf.i
+data/test/javax/management/remote/mandatory/notif/RMINotifTest.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BL_U16.c.i
-data/test/sun/tools/jstatd/jstatdPort.sh.i
-data/make/tools/swing-beans/beaninfo/images/JRadioButtonColor32.gif.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA.java.i
 data/test/java/lang/Class/forName/InitArg.java.i
 data/src/share/classes/java/security/interfaces/ECPrivateKey.java.i
 data/test/java/rmi/activation/ActivationSystem/unregisterGroup/Callback_Stub.java.i
+data/src/share/classes/sun/security/util/PathList.java.i
 data/src/share/classes/java/text/DigitList.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/ParserRules.java.i
-data/test/sun/nio/cs/SurrogateTestEUCTW.plane5.surrogates.i
 data/make/tools/CharsetMapping/IBM1148.c2b.i
-data/test/javax/management/context/LocaleTest.java.i
+data/src/share/classes/com/sun/jmx/mbeanserver/MXBeanMappingFactory.java.i
 data/make/netbeans/jmx/build.xml.i
 data/src/share/classes/sun/text/resources/FormatData_ar_TN.java.i
 data/test/java/io/File/CheckTempDir.java.i
 data/test/sun/net/www/HeaderTests.java.i
+data/src/share/classes/sun/awt/shell/ShellFolder.java.i
 data/test/org/openjdk/jigsaw/cli/ModuleFormatTest01.java.i
 data/src/share/classes/sun/security/smartcardio/PCSCTerminals.java.i
 data/src/share/native/sun/font/bidi/uchardir.h.i
-data/src/share/demo/java2d/J2DBench/resources/textdata/english.ut8.txt.i
-data/src/share/classes/sun/print/resources/duplex.png.i
+data/test/java/security/cert/CertPathBuilder/targetConstraints/ca.cer.i
+data/src/solaris/native/sun/tools/attach/LinuxVirtualMachine.c.i
 data/src/linux/doc/man/ja/jconsole.1.i
-data/test/javax/management/mxbean/LeakTest.java.i
 data/src/share/demo/jvmti/versionCheck/versionCheck.c.i
-data/src/share/classes/java/lang/Thread.java.i
+data/test/sun/security/provider/certpath/ReverseBuilder/mgrMcrl.i
 data/make/sun/headless/reorder-sparcv9.i
+data/src/share/classes/javax/swing/plaf/SeparatorUI.java.i
 data/make/netbeans/common/properties.ent.i
-data/test/java/util/concurrent/ConcurrentQueues/ConcurrentQueueLoops.java.i
-data/src/share/classes/sun/misc/CompoundEnumeration.java.i
-data/test/sun/net/www/ParseUtil_6306697.java.i
-data/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java.i
+data/src/share/sample/vm/clr-jvm/Makefile.i
+data/test/java/util/jar/Attributes/Name.java.i
+data/src/share/classes/sun/text/resources/CollationData_sv.java.i
+data/test/java/beans/Introspector/Test6311051.java.i
 data/src/share/native/java/lang/fdlibm/src/s_log1p.c.i
 data/src/share/demo/jvmti/mtrace/sample.makefile.txt.i
 data/src/share/classes/javax/swing/event/TreeWillExpandListener.java.i
 data/src/share/classes/sun/text/resources/CollationData_nl.java.i
-data/src/share/classes/sun/print/resources/serviceui_it.properties.i
-data/src/share/native/sun/awt/image/jpeg/jpegdecoder.c.i
+data/test/java/io/RandomAccessFile/OpsAfterClose.java.i
+data/src/share/classes/sun/reflect/UnsafeQualifiedBooleanFieldAccessorImpl.java.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_VERSION.java.i
 data/test/javax/sound/midi/Gervill/SoftTuning/NewSoftTuningPatchByteArray.java.i
 data/test/java/awt/FontClass/CreateFont/bigfont.html.i
-data/src/share/classes/com/sun/jdi/InterfaceType.java.i
-data/src/share/classes/org/openjdk/internal/joptsimple/OptionSpecVisitor.java.i
-data/src/windows/classes/java/io/Win32FileSystem.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/rsa/BrokenRSAPrivateCrtKey.java.i
-data/src/solaris/native/sun/awt/cursor.c.i
+data/test/java/util/Hashtable/IllegalLoadFactor.java.i
+data/src/share/classes/sun/security/x509/X400Address.java.i
+data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain6.txt.i
+data/test/java/util/ResourceBundle/TestResource.java.i
 data/src/share/classes/java/util/EnumMap.java.i
-data/test/java/util/PluggableLocale/providersrc/LocaleNames_xx.properties.i
+data/src/share/classes/javax/management/MBeanOperationInfo.java.i
 data/src/share/classes/sun/nio/ch/SelectionKeyImpl.java.i
 data/src/share/classes/java/security/cert/TrustAnchor.java.i
 data/make/tools/swing-beans/beaninfo/images/JTextFieldColor16.gif.i
 data/src/share/classes/javax/crypto/SealedObject.java.i
 data/test/sun/security/krb5/ConfigWithQuotations.java.i
 data/src/share/native/com/sun/java/util/jar/pack/unpack.h.i
+data/src/share/classes/javax/swing/table/TableRowSorter.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMHostName.java.i
-data/test/java/util/regex/BMPTestCases.txt.i
-data/src/share/classes/com/sun/jmx/mbeanserver/MXBeanSupport.java.i
-data/src/share/classes/java/awt/dnd/peer/DropTargetPeer.java.i
+data/test/java/lang/instrument/MakeJAR3.sh.i
+data/test/java/util/Locale/Bug4210525.java.i
+data/test/javax/sound/midi/Gervill/SoftReceiver/Send_PolyPressure.java.i
+data/src/share/classes/java/awt/datatransfer/UnsupportedFlavorException.java.i
 data/test/java/nio/channels/FileChannel/Truncate.java.i
-data/src/share/classes/javax/sql/XAConnection.java.i
+data/src/share/classes/javax/swing/plaf/metal/icons/ocean/collapsed.gif.i
+data/src/share/classes/javax/swing/plaf/multi/MultiToolTipUI.java.i
 data/test/java/beans/XMLDecoder/spec/TestProperty.java.i
-data/src/solaris/classes/sun/java2d/xr/XRPaints.java.i
-data/src/share/classes/java/lang/annotation/ElementType.java.i
-data/src/share/classes/sun/io/CharToByteCp420.java.i
+data/src/share/classes/javax/security/auth/x500/X500Principal.java.i
+data/src/share/classes/org/ietf/jgss/GSSContext.java.i
+data/test/javax/sound/midi/Gervill/ModelPerformer/SetVelFrom.java.i
+data/test/java/beans/Introspector/Test4918902.java.i
 data/src/share/classes/javax/accessibility/AccessibleValue.java.i
 data/src/share/classes/javax/swing/plaf/ButtonUI.java.i
-data/src/share/classes/sun/awt/AWTCharset.java.i
-data/test/java/security/CodeSigner/Serialize.java.i
-data/test/sun/java2d/SunGraphics2D/SimplePrimQuality.java.i
-data/src/share/native/sun/security/ec/impl/mpmontg.c.i
+data/src/solaris/bin/zero/jvm.cfg.i
+data/test/javax/imageio/CachePremissionsTest/rwd.policy.i
+data/test/sun/tools/native2ascii/A2N_6247817.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheNodeSetData.java.i
 data/test/java/util/ResourceBundle/Control/MalformedDataRB_en.properties.i
 data/src/share/classes/java/lang/doc-files/javalang.doc.anc38.gif.i
-data/test/java/nio/file/WatchService/Basic.java.i
+data/test/javax/sound/sampled/AudioFormat/PCM_FLOAT_support.java.i
 data/make/jprt.properties.i
-data/src/share/demo/applets/GraphicsTest/GraphicsTest.java.i
+data/test/sun/net/www/http/HttpClient/RetryPost.sh.i
 data/test/java/beans/XMLEncoder/6777487/TestEncoder.java.i
 data/src/share/native/java/lang/fdlibm/src/w_sqrt.c.i
 data/test/java/rmi/transport/dgcDeadLock/TestImpl_Stub.java.i
 data/src/share/native/sun/awt/image/jpeg/jidctflt.c.i
 data/test/java/nio/Buffer/CopyDirect-X-Memory.java.i
+data/src/share/classes/javax/swing/undo/doc-files/UndoManager-3.gif.i
 data/src/share/classes/javax/management/NotificationBroadcaster.java.i
 data/test/java/util/Locale/serialized/java6locale___Java.i
 data/src/share/classes/javax/swing/text/DefaultFormatterFactory.java.i
 data/make/java/hpi/native/reorder-sparcv9.i
 data/test/sun/security/ssl/sun/net/www/httpstest/AbstractCallback.java.i
-data/src/share/instrument/Utilities.h.i
+data/src/share/classes/javax/sql/rowset/spi/XmlWriter.java.i
 data/src/share/classes/com/sun/tools/hat/internal/server/RootsQuery.java.i
-data/src/share/classes/sun/security/jgss/krb5/MicToken_v2.java.i
+data/src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.cpp.i
 data/src/share/classes/javax/naming/NamingSecurityException.java.i
-data/src/share/classes/sun/text/resources/FormatData_fi.java.i
+data/test/sun/jvmstat/perfdata/PrologSanity/PrologSizeSanityCheck.java.i
 data/test/java/lang/Class/forName/classes/0.class.i
-data/src/share/classes/sun/security/krb5/internal/ccache/Credentials.java.i
+data/test/java/io/Serializable/proxy/replace/WriteReplace.java.i
 data/src/share/classes/javax/accessibility/AccessibleHyperlink.java.i
 data/src/share/classes/javax/management/relation/RelationServiceNotRegisteredException.java.i
-data/src/share/classes/java/awt/geom/Dimension2D.java.i
-data/src/share/classes/javax/accessibility/AccessibleTable.java.i
+data/src/share/classes/javax/swing/JOptionPane.java.i
+data/src/share/classes/sun/security/krb5/internal/LocalSeqNumber.java.i
 data/src/share/classes/javax/imageio/metadata/IIOMetadata.java.i
 data/src/share/native/sun/java2d/cmm/lcms/cmsplugin.c.i
-data/src/share/classes/java/rmi/UnexpectedException.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14NExclusive.java.i
 data/src/share/classes/java/beans/beancontext/BeanContextServicesListener.java.i
-data/test/java/beans/XMLEncoder/6329581/Test6329581.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMManagers.java.i
+data/src/share/classes/com/sun/nio/sctp/SendFailedNotification.java.i
+data/src/share/classes/sun/io/ByteToCharCp1140.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ar_JO.properties.i
-data/src/share/classes/com/sun/imageio/plugins/common/I18N.java.i
-data/src/share/classes/java/sql/RowId.java.i
-data/src/share/classes/sun/awt/geom/Order1.java.i
+data/make/tools/swing-beans/beaninfo/images/JSpinnerMono32.gif.i
+data/test/java/awt/geom/Path2D/FillPPathTest.java.i
+data/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java.i
 data/src/share/classes/javax/swing/plaf/synth/package.html.i
 data/src/share/classes/javax/security/cert/Certificate.java.i
 data/test/java/beans/PropertyEditor/TestIntegerTypeNull.java.i
-data/src/share/classes/sun/management/snmp/jvminstr/JvmMemManagerTableMetaImpl.java.i
+data/make/common/Cscope.gmk.i
 data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemPoolState.java.i
-data/src/solaris/hpi/native_threads/src/interrupt_md.c.i
 data/src/share/classes/java/awt/event/ComponentListener.java.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpStatusException.java.i
-data/src/share/classes/sun/text/resources/CollationData_vi.java.i
-data/src/share/native/sun/font/layout/GDEFMarkFilter.h.i
-data/test/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/Reference.java.i
-data/test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOff.java.i
-data/make/tools/src/build/tools/javazic/Mappings.java.i
-data/src/share/classes/sun/misc/ServiceConfigurationError.java.i
+data/make/common/CancelImplicits.gmk.i
+data/src/share/classes/sun/nio/cs/ArrayDecoder.java.i
+data/test/java/net/URLClassLoader/sealing/Makefile.i
+data/src/share/demo/nio/zipfs/META-INF/services/java.nio.file.spi.FileSystemProvider.i
+data/src/share/classes/sun/nio/cs/ext/MacCentralEurope.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_hu.properties.i
+data/test/java/nio/charset/spi/basic.sh.i
 data/src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java.i
 data/src/share/classes/sun/misc/ClassFileTransformer.java.i
-data/test/sun/security/pkcs11/fips/certs/ca.cer.i
-data/src/share/demo/jfc/Font2DTest/Font2DTest.html.i
-data/make/sun/xawt/Makefile.i
+data/src/share/classes/java/io/ObjectOutput.java.i
+data/test/java/awt/font/TextLayout/TestHebrewMark.java.i
+data/test/java/rmi/activation/Activatable/downloadParameterClass/manual.security.policy.i
 data/test/java/math/BigDecimal/AddTests.java.i
 data/make/netbeans/awt2d/build.properties.i
 data/src/share/classes/javax/management/OperationsException.java.i
-data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmThreadContentionMonitoring.java.i
+data/src/share/demo/nbproject/management/MemoryMonitor/nbproject/jdk.xml.i
 data/src/share/native/sun/security/ec/ecc_impl.h.i
-data/src/share/classes/org/openjdk/jigsaw/Trace.java.i
-data/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java.i
+data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKStyleFactory.java.i
+data/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerIntIntIntIntInt.java.i
 data/test/com/sun/crypto/provider/Cipher/CTS/CTSMode.java.i
 data/src/share/classes/sun/misc/CEFormatException.java.i
@@ -12331,111 +12087,107 @@ data/test/com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.sh.i
 data/test/java/awt/Focus/CloseDialogActivateOwnerTest/java.policy.i
 data/src/windows/native/sun/java2d/windows/WinBackBufferSurfaceData.cpp.i
 data/test/sun/security/pkcs11/KeyStore/ClientAuthData/secmod.db.i
-data/src/share/classes/sun/management/snmp/jvmmib/JVM_MANAGEMENT_MIBOidTable.java.i
-data/src/share/classes/sun/launcher/resources/launcher_fr.properties.i
+data/test/java/util/PluggableLocale/BreakIteratorProviderTest.java.i
+data/test/javax/management/relation/RelationNotificationSourceTest.java.i
 data/src/windows/native/sun/net/spi/DefaultProxySelector.c.i
 data/test/java/io/File/SetAccess.java.i
 data/make/tools/src/build/tools/makeclasslist/MakeClasslist.java.i
 data/src/solaris/classes/sun/awt/motif/MEmbedCanvasPeer.java.i
-data/src/share/classes/com/sun/tools/example/README.i
+data/src/share/classes/sun/security/krb5/internal/KRBPriv.java.i
 data/src/share/classes/java/awt/MenuComponent.java.i
-data/src/share/classes/java/awt/doc-files/GridBagLayout-baseline.png.i
+data/src/share/classes/sun/java2d/Disposer.java.i
 data/src/share/classes/java/util/FormatterClosedException.java.i
-data/src/windows/classes/sun/java2d/d3d/D3DSurfaceDataProxy.java.i
-data/src/solaris/classes/sun/nio/cs/ext/COMPOUND_TEXT_Encoder.java.i
-data/make/common/shared/Compiler-gcc.gmk.i
+data/test/java/lang/management/ThreadMXBean/LockedSynchronizers.java.i
+data/test/javax/management/monitor/CounterMonitorThresholdTest.java.i
+data/src/share/classes/sun/security/util/BitArray.java.i
 data/make/tools/src/build/tools/jdwpgen/ByteTypeNode.java.i
-data/src/share/classes/sun/tools/asm/NumberConstantData.java.i
+data/test/sun/tools/jps/usage.out.i
 data/src/share/classes/sun/awt/PaintEventDispatcher.java.i
-data/src/share/native/sun/awt/medialib/mlib_ImageAffineEdge.c.i
-data/src/windows/native/sun/jkernel/DownloadDialog.h.i
+data/src/linux/doc/man/jhat.1.i
 data/src/share/native/java/util/zip/zlib-1.1.3/minigzip.c.i
-data/src/share/classes/javax/swing/event/RowSorterListener.java.i
+data/src/share/classes/sun/security/krb5/internal/LastReq.java.i
 data/src/share/classes/javax/print/attribute/standard/DocumentName.java.i
 data/src/share/classes/java/io/CharConversionException.java.i
-data/src/share/native/sun/java2d/cmm/lcms/cmscam02.c.i
+data/src/solaris/native/sun/awt/list.c.i
 data/src/share/classes/javax/swing/plaf/metal/MetalTreeUI.java.i
-data/src/share/classes/sun/security/krb5/internal/HostAddresses.java.i
+data/make/com/sun/security/Makefile.i
 data/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor.i
 data/test/java/lang/annotation/Missing/D.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java.i
 data/make/javax/sound/Makefile.i
-data/src/share/classes/sun/security/krb5/KrbKdcRep.java.i
+data/src/solaris/classes/sun/java2d/x11/X11SurfaceDataProxy.java.i
 data/src/share/classes/sun/text/resources/FormatData_lv.java.i
 data/src/share/classes/sun/tools/tree/NullExpression.java.i
 data/src/share/native/sun/font/layout/OpenTypeTables.h.i
-data/src/share/classes/sun/nio/cs/ext/HKSCS_2001.java.i
+data/src/share/lib/images/cursors/invalid32x32.gif.i
 data/src/share/classes/sun/io/ByteToCharCp943.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/icons/DetailsView.gif.i
+data/test/java/io/LineNumberReader/MarkReset.java.i
 data/src/share/classes/sun/security/krb5/KrbCryptoException.java.i
 data/test/javax/security/auth/login/Configuration/GetInstanceSecurity.java.i
-data/src/share/classes/com/sun/servicetag/package.html.i
-data/test/java/io/RandomAccessFile/WriteBytesChars.java.i
-data/src/share/classes/com/sun/jndi/ldap/PersistentSearchControl.java.i
+data/test/javax/sound/midi/Gervill/SimpleSoundbank/SetVersion.java.i
+data/test/java/util/ServiceLoader/Load.java.i
+data/test/javax/sound/midi/Gervill/ModelStandardTransform/SetTransform.java.i
 data/src/share/classes/javax/net/ssl/X509ExtendedKeyManager.java.i
 data/src/share/classes/javax/crypto/ExemptionMechanismException.java.i
-data/src/solaris/doc/sun/man/man1/ja/rmiregistry.1.i
+data/test/javax/xml/crypto/dsig/GenerationTests.java.i
 data/test/com/sun/jdi/ReferrersTest.java.i
-data/src/share/classes/javax/swing/plaf/basic/BasicComboBoxRenderer.java.i
-data/test/sun/rmi/rmic/newrmic/equivalence/run.sh.i
-data/src/share/classes/sun/reflect/InstantiationExceptionConstructorAccessorImpl.java.i
-data/src/solaris/hpi/native_threads/include/np.h.i
-data/src/share/native/sun/awt/medialib/mlib_c_ImageConvClearEdge.c.i
-data/src/share/classes/sun/text/resources/FormatData_sk_SK.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/KeyStoreResolver.java.i
-data/src/share/classes/sun/text/resources/CollationData_pl.java.i
-data/src/solaris/native/sun/nio/ch/FileKey.c.i
-data/src/share/classes/sun/text/resources/FormatData_es_GT.java.i
+data/src/share/demo/jvmti/gctest/sample.makefile.txt.i
+data/test/javax/sound/midi/Gervill/SoftFilter/TestProcessAudio.java.i
+data/test/javax/sound/midi/Gervill/ModelByteBuffer/WriteTo.java.i
+data/test/java/net/Inet6Address/IPv6AddressTypes.java.i
+data/test/javax/sound/midi/Gervill/ModelSource/NewModelSourceModelIdentifierModelTransform.java.i
+data/test/java/net/Socket/AddressTest.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_zh.properties.i
 data/src/share/classes/javax/swing/JScrollPane.java.i
 data/src/share/classes/javax/swing/undo/package.html.i
-data/test/java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html.i
+data/test/java/rmi/activation/Activatable/shutdownGracefully/TestSecurityManager.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/NameSpaceSymbTable.java.i
-data/test/sun/tools/jrunscript/hello.js.i
+data/test/java/nio/channels/TestUtil.java.i
+data/test/com/sun/servicetag/InvalidServiceTag.java.i
 data/test/javax/crypto/Cipher/TestGetInstance.java.i
 data/test/java/beans/PropertyChangeSupport/TestListeners.java.i
-data/test/java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java.i
+data/test/java/io/Serializable/class/SerialA_2.java.i
 data/test/sun/net/www/protocol/ftp/UserAndPasswordTest.java.i
 data/test/javax/sound/midi/Gervill/SoftTuning/Load2.java.i
 data/test/sun/java2d/cmm/ColorConvertOp/ColConvTest.java.i
 data/test/java/security/KeyRep/Blowfish.pre.1.5.key.i
-data/test/java/util/jar/JarFile/bogus-signerinfo-attr.jar.i
-data/test/sun/security/validator/certreplace.sh.i
+data/src/share/classes/sun/security/provider/certpath/State.java.i
 data/make/tools/src/build/tools/jdwpgen/AbstractNamedNode.java.i
 data/src/share/classes/javax/swing/package.html.i
-data/src/share/classes/javax/swing/colorchooser/ColorSelectionModel.java.i
+data/src/share/classes/sun/nio/cs/ext/EUC_KR.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif.properties.i
-data/src/share/classes/sun/java2d/pisces/Stroker.java.i
-data/src/share/classes/javax/management/MBeanOperationInfo.java.i
+data/test/java/util/PluggableLocale/providersrc/LocaleNames_xx.properties.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/ExceptionSpec.java.i
-data/test/java/lang/instrument/MakeJAR3.sh.i
-data/src/share/classes/javax/net/ssl/SSLProtocolException.java.i
-data/src/share/classes/sun/security/x509/DNSName.java.i
+data/test/sun/management/jmxremote/bootstrap/jmxremote_test05_ko.access.in.i
+data/test/java/util/ResourceBundle/bug6572242.properties.i
+data/test/java/security/CodeSigner/Serialize.java.i
 data/src/share/classes/com/sun/beans/decoder/ValueObject.java.i
+data/test/tools/jar/JarEntryTime.java.i
 data/test/java/util/concurrent/Phaser/TieredArriveLoops.java.i
 data/src/share/classes/com/sun/jdi/request/ClassPrepareRequest.java.i
-data/test/java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.java.i
+data/test/sun/rmi/rmic/newrmic/equivalence/NotActivatableInterface.java.i
 data/test/sun/tools/jps/jps-q.sh.i
-data/test/java/lang/management/ThreadMXBean/AllThreadIds.java.i
+data/src/share/native/java/util/zip/zlib-1.1.3/example.c.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315WithComments.java.i
-data/src/share/native/java/lang/fdlibm/src/e_acosh.c.i
+data/test/javax/management/modelmbean/UnserializableTargetObjectTest.java.i
 data/test/javax/management/context/LocaleAwareBroadcasterTest.java.i
-data/make/sun/javazic/tzdata/systemv.i
-data/test/javax/print/attribute/GetCopiesSupported.java.i
-data/src/share/classes/javax/management/namespace/MBeanServerConnectionWrapper.java.i
+data/src/share/classes/sun/misc/ServiceConfigurationError.java.i
+data/src/windows/classes/sun/awt/windows/ThemeReader.java.i
 data/make/tools/src/build/tools/charsetmapping/GenerateDBCS.java.i
 data/test/java/io/FilePermission/SpecTests.java.i
-data/test/java/rmi/server/RMIClassLoader/spi/InvalidProperty.java.i
+data/src/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java.i
 data/src/share/demo/jfc/Font2DTest/resources/TextResources_ko.properties.i
-data/src/share/classes/sun/nio/cs/ext/MSISO2022JP.java.i
+data/test/java/io/Serializable/enum/ignoreSerializationFields/Test.java.i
 data/src/share/classes/java/lang/invoke/FilterOneArgument.java.i
 data/test/com/sun/jdi/BadHandshakeTest.java.i
 data/test/java/nio/channels/etc/Shadow.java.i
 data/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderResult.java.i
 data/src/share/classes/sun/awt/Mutex.java.i
+data/src/share/native/sun/font/layout/AlternateSubstSubtables.h.i
 data/src/windows/classes/sun/print/Win32PrintServiceLookup.java.i
-data/src/share/classes/sun/print/resources/oneside.png.i
+data/src/share/classes/sun/text/resources/CollationData_pl.java.i
 data/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c.i
-data/test/java/io/Serializable/skippedObjCNFException/Write.java.i
+data/test/java/util/regex/POSIX_Unicode.java.i
 data/test/javax/management/query/QueryDottedAttrTest.java.i
 data/src/share/classes/java/net/Inet4AddressImpl.java.i
 data/test/com/sun/jdi/NewInstanceTest.java.i
@@ -12443,7 +12195,7 @@ data/test/java/beans/PropertyEditor/TestColorClassNull.java.i
 data/make/tools/CharsetMapping/IBM939.nr.i
 data/test/java/text/Format/DateFormat/Bug4823811.java.i
 data/test/javax/xml/crypto/dsig/data/signature-enveloping-hmac-sha1.xml.i
-data/src/share/classes/sun/java2d/pipe/AAShapePipe.java.i
+data/make/common/Defs-solaris.gmk.i
 data/src/share/classes/com/sun/java/swing/plaf/nimbus/NimbusLookAndFeel.java.i
 data/src/share/native/sun/awt/libpng/pngpread.c.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/schema/xenc-schema.rng.i
@@ -12454,64 +12206,59 @@ data/make/common/shared/PrivateDefs.gmk-example.i
 data/src/share/classes/javax/print/attribute/standard/PrinterMessageFromOperator.java.i
 data/src/share/classes/sun/security/ssl/DHCrypt.java.i
 data/src/share/classes/java/nio/file/package-info.java.i
-data/src/solaris/classes/sun/nio/fs/SolarisNativeDispatcher.java.i
-data/src/share/classes/sun/reflect/MethodAccessor.java.i
+data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java.i
 data/src/share/back/debugDispatch.h.i
-data/test/sun/security/action/Generify.java.i
-data/src/share/native/sun/font/layout/LESwaps.h.i
+data/src/windows/native/sun/windows/awt_InputEvent.h.i
 data/src/share/classes/java/dyn/MethodHandleStatics.java.i
 data/test/javax/sound/midi/Gervill/AudioFloatInputStream/ReadFloatArray.java.i
-data/src/solaris/classes/sun/awt/motif/MToolkitThreadBlockedHandler.java.i
+data/test/sun/util/resources/Calendar/Bug4518811.java.i
 data/src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java.i
+data/src/share/classes/java/nio/file/SecureDirectoryStream.java.i
 data/src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodImpl.java.i
 data/src/share/classes/sun/security/provider/DigestBase.java.i
 data/src/solaris/native/sun/awt/awt_TextArea.h.i
 data/src/share/classes/java/awt/im/spi/InputMethodDescriptor.java.i
-data/src/share/classes/sun/io/CharToByteCp1149.java.i
+data/src/share/classes/sun/security/krb5/KrbKdcRep.java.i
 data/src/share/classes/java/nio/file/DirectoryStreamFilters.java.i
-data/src/share/native/sun/font/bidi/ubidi.c.i
+data/test/javax/management/proxy/ProxyObjectMethodsTest.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetLoadedInstruments.java.i
 data/src/share/classes/java/util/zip/ZipOutputStream.java.i
 data/test/java/io/PipedOutputStream/WriteAfterClose.java.i
 data/make/org/ietf/Makefile.i
 data/src/share/classes/sun/nio/cs/UTF_32BE_BOM.java.i
 data/src/share/back/eventHandler.c.i
-data/src/share/classes/com/sun/jdi/request/ThreadStartRequest.java.i
-data/src/share/classes/org/openjdk/internal/joptsimple/internal/Strings.java.i
+data/test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.java.i
+data/test/java/lang/Class/forName/NonJavaNames.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/KeyName.java.i
 data/src/solaris/doc/sun/man/man1/schemagen.1.i
 data/src/share/classes/com/sun/jdi/StringReference.java.i
+data/make/sun/xawt/ToBin.java.i
 data/test/java/net/URL/ftp_urls.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmThreadInstanceEntryMBean.java.i
 data/src/share/classes/java/io/DataOutput.java.i
-data/src/share/classes/sun/security/x509/RDN.java.i
+data/test/com/sun/jdi/AllLineLocations.java.i
 data/test/java/rmi/server/serverStackTrace/Impl2_Stub.java.i
-data/make/tools/CharsetMapping/IBM420.nr.i
+data/test/javax/swing/JSpinner/6463712/bug6463712.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_CN.properties.i
 data/test/javax/swing/JFileChooser/6550546/bug6550546.java.i
-data/src/share/classes/sun/nio/fs/BasicFileAttributesHolder.java.i
-data/test/sun/rmi/rmic/newrmic/equivalence/OrangeEchoImpl.java.i
-data/test/sun/nio/cs/OLD/IBM950_OLD.java.i
+data/test/sun/tools/jstat/gcPermCapacityOutput1.awk.i
+data/src/windows/classes/sun/awt/windows/WEmbeddedFramePeer.java.i
 data/src/share/classes/java/awt/image/ComponentColorModel.java.i
 data/test/sun/security/ssl/javax/net/ssl/SSLContextVersion.java.i
-data/test/javax/rmi/ssl/SSLSocketParametersTest.sh.i
+data/src/share/classes/javax/sound/sampled/AudioInputStream.java.i
 data/src/share/demo/nbproject/jfc/SwingApplet/nbproject/file-targets.xml.i
 data/src/share/classes/sun/net/ProgressEvent.java.i
-data/src/share/classes/java/io/SerializablePermission.java.i
+data/test/sun/tools/jps/jps-Vvm_Output1.awk.i
 data/src/share/classes/sun/util/resources/TimeZoneNames_en.java.i
-data/test/sun/security/ssl/sun/net/www/httpstest/HttpServer.java.i
-data/src/solaris/native/sun/awt/awt_Button.c.i
+data/src/windows/classes/sun/awt/windows/awtLocalization.properties.i
 data/src/share/classes/com/sun/jmx/interceptor/MBeanServerInterceptorSupport.java.i
-data/src/share/classes/sun/io/CharToByteTIS620.java.i
+data/src/solaris/doc/sun/man/man1/ja/rmiregistry.1.i
 data/src/share/classes/javax/swing/plaf/DesktopIconUI.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/XPathFuncHereAPI.java.i
+data/src/linux/doc/man/pack200.1.i
 data/src/share/classes/com/sun/jmx/interceptor/NamespaceDispatchInterceptor.java.i
-data/test/java/util/ResourceBundle/Control/PackagePrivateTest.java.i
 data/src/solaris/classes/sun/print/UnixPrintServiceLookup.java.i
 data/test/java/util/EnumSet/LargeEnumIteratorRemoveResilience.java.i
 data/test/javax/swing/SwingWorker/6480289/bug6480289.java.i
 data/src/share/instrument/JavaExceptions.h.i
-data/test/sun/net/www/http/HttpClient/ProxyTest.java.i
 data/src/share/demo/jvmti/minst/minst.h.i
 data/test/java/nio/channels/Selector/Connect.java.i
 data/test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_EmptyBorderUIResource.java.i
@@ -12521,94 +12268,94 @@ data/src/share/classes/javax/swing/colorchooser/ColorPanel.java.i
 data/test/java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java.i
 data/src/share/classes/com/sun/jmx/defaults/JmxProperties.java.i
 data/src/windows/native/java/util/TimeZone_md.c.i
-data/src/share/classes/javax/management/MBeanServerDelegate.java.i
-data/make/tools/CharsetMapping/IBM937.c2b.i
+data/src/share/classes/java/util/concurrent/atomic/AtomicBoolean.java.i
+data/src/share/classes/sun/tools/asm/FieldConstantData.java.i
+data/src/share/classes/sun/misc/FormattedFloatingDecimal.java.i
 data/src/share/native/sun/java2d/loops/Index12Gray.h.i
-data/src/share/classes/com/sun/tools/hat/internal/model/JavaClass.java.i
-data/src/windows/native/sun/security/provider/WinCAPISeedGenerator.c.i
-data/src/share/classes/com/sun/tools/jdi/GenericAttachingConnector.java.i
+data/test/java/beans/PropertyEditor/TestColorClassValue.java.i
+data/make/modules/tools/src/com/sun/classanalyzer/ConstantPoolAnalyzer.java.i
+data/test/java/io/charStreams/ABCInputStream.java.i
+data/test/sun/management/jmxremote/bootstrap/solaris-i586/launcher.i
+data/test/java/lang/management/RuntimeMXBean/UpTime.java.i
 data/src/share/demo/management/FullThreadDump/README.txt.i
-data/test/sun/tools/jps/jps-l_Output2.awk.i
 data/test/java/rmi/transport/readTimeout/TestIface.java.i
-data/test/java/beans/XMLEncoder/Test6921644.java.i
+data/test/java/lang/management/RuntimeMXBean/GetSystemProperties.java.i
 data/test/sun/security/provider/KeyStore/pw.jks.i
 data/src/share/classes/sun/text/resources/FormatData_ja.java.i
 data/test/java/nio/file/Files/walkFileTree/grantTopOnly.policy.i
 data/src/share/classes/java/lang/reflect/Constructor.java.i
-data/test/javax/management/modelmbean/LoggingExceptionTest.java.i
 data/test/java/util/concurrent/forkjoin/NQueensCS.java.i
-data/src/share/demo/jvmti/hprof/hprof_object.c.i
-data/make/tools/CharsetMapping/IBM775.map.i
+data/test/java/util/jar/JarFile/JarNoManifest.java.i
 data/test/java/awt/FontClass/CreateFont/DeleteFont.java.i
 data/make/mkdemo/management/JTop/Makefile.i
 data/src/share/native/sun/security/ec/impl/ec2_163.c.i
 data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libplc4.so.i
+data/src/share/classes/sun/misc/Version.java.template.i
+data/test/javax/management/remote/mandatory/subjectDelegation/policy22.i
 data/test/sun/rmi/rmic/classFileVersion/G1.java.i
 data/src/solaris/native/sun/awt/awt_AWTEvent.h.i
 data/test/com/sun/jdi/DeleteEventRequestsTest.java.i
 data/src/share/demo/nbproject/management/JTop/nbproject/jdk.xml.i
-data/src/share/classes/sun/management/MemoryImpl.java.i
+data/src/solaris/transport/socket/socket_md.h.i
 data/make/com/Makefile.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ProtocolVersion/HttpsProtocols.java.i
+data/make/modules/tools/src/com/sun/classanalyzer/ClassAnalyzer.java.i
+data/src/share/classes/sun/applet/AppletEventMulticaster.java.i
 data/src/share/native/sun/font/layout/LEInsertionList.h.i
 data/src/share/classes/java/lang/Short.java.i
 data/src/share/classes/javax/swing/text/html/HTMLWriter.java.i
 data/test/com/sun/tools/attach/ProviderTest.java.i
 data/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java.i
 data/src/windows/transport/shmem/shmem_md.c.i
-data/src/share/classes/javax/management/loading/MLetContent.java.i
+data/src/share/classes/javax/naming/ldap/Rdn.java.i
 data/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java.i
-data/test/sun/security/pkcs11/KeyStore/BasicData/pk3.key.i
 data/src/share/classes/sun/nio/cs/ext/IBM273.java.i
-data/src/share/classes/sun/swing/ImageCache.java.i
+data/src/share/classes/java/dyn/MemberName.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_TW.properties.i
 data/src/share/classes/javax/swing/text/MutableAttributeSet.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_sr.properties.i
-data/test/sun/util/resources/Calendar/Bug4518811.java.i
-data/src/windows/native/sun/java2d/d3d/D3DTestRaster.h.i
+data/src/solaris/native/sun/awt/awt_mgrsel.h.i
 data/test/java/security/cert/CertPathValidator/indirectCRL/CircularCRLTwoLevelRevoked.java.i
-data/test/com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java.i
-data/test/java/io/IOException/LastErrorString.java.i
+data/test/javax/management/MBeanInfo/NotificationInfoTest.java.i
+data/src/share/classes/java/security/cert/CollectionCertStoreParameters.java.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/Clear.java.i
 data/test/java/rmi/server/RMIClassLoader/useGetURLs/UseGetURLs.java.i
 data/test/com/sun/jdi/OptionTest.java.i
 data/test/java/beans/XMLEncoder/4741757/AbstractTest.java.i
 data/src/share/classes/sun/security/provider/PolicyFile.java.i
 data/make/java/fdlibm/Makefile.i
-data/test/com/sun/jdi/CompatibleConnectors.java.i
+data/src/share/classes/sun/misc/Timer.java.i
 data/src/share/classes/sun/security/provider/certpath/PolicyNodeImpl.java.i
-data/test/tools/launcher/DefaultLocaleTest.sh.i
 data/test/tools/pack200/pack200-verifier/src/xmlkit/CommandLineParser.java.i
-data/test/java/util/concurrent/BlockingQueue/PollMemoryLeak.java.i
+data/test/java/lang/ThreadGroup/SetMaxPriority.java.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/RemapInstrument.java.i
 data/src/share/classes/sun/nio/cs/IBM857.java.i
 data/src/share/classes/com/sun/jmx/snmp/internal/SnmpEngineImpl.java.i
 data/src/share/classes/java/awt/DefaultFocusTraversalPolicy.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libnssckbi.so.i
 data/test/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java.i
-data/src/solaris/doc/sun/man/man1/ja/jstatd.1.i
+data/test/java/net/URLConnection/xml/xml4.i
 data/src/share/classes/sun/security/util/PendingException.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibRequest.java.i
 data/src/share/native/sun/security/ec/ecl_mult.c.i
 data/test/javax/sound/midi/Gervill/AudioFloatInputStream/Read.java.i
-data/test/java/lang/instrument/TestClass3.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer11_OmitComments.java.i
-data/src/share/back/threadControl.c.i
-data/src/share/classes/javax/swing/ArrayTable.java.i
+data/test/java/util/prefs/ExportSubtree.java.i
+data/test/com/sun/security/auth/login/ConfigFile/InconsistentError.java.i
 data/make/sun/javazic/javatz/java_zone_ids.txt.i
-data/test/javax/swing/JFileChooser/6396844/TwentyThousandTest.java.i
 data/src/share/classes/com/sun/tools/jdi/MethodImpl.java.i
-data/src/share/classes/sun/text/resources/FormatData_pl.java.i
+data/test/java/lang/instrument/appendToClassLoaderSearch/InstrumentedApplication.java.i
 data/src/share/classes/java/util/regex/ASCII.java.i
 data/src/share/classes/java/beans/beancontext/BeanContextChild.java.i
 data/test/sun/nio/cs/EUC_TW_OLD.java.d
 data/test/sun/tools/jstat/jstatGcOldCapacityOutput1.sh.i
 data/test/javax/security/auth/SubjectDomainCombiner/Regression.java.i
-data/src/windows/native/sun/windows/awt_ScrollPane.cpp.i
-data/test/sun/nio/cs/EUC_TW_OLD.java.i
-data/make/com/sun/security/auth/module/FILES_export_windows.gmk.i
+data/test/javax/swing/system/6799345/TestShutdown.java.i
+data/src/share/classes/sun/io/CharToByteCp1149.java.i
+data/src/share/native/sun/awt/image/jpeg/jutils.c.i
 data/src/share/classes/sun/tools/jconsole/PlotterPanel.java.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedStaticDoubleFieldAccessorImpl.java.i
-data/src/share/classes/com/sun/tools/jdi/LineInfo.java.i
+data/src/share/classes/javax/xml/crypto/dsig/keyinfo/KeyValue.java.i
+data/src/solaris/doc/sun/man/man1/ja/jstat.1.i
 data/test/javax/script/Test2.java.i
 data/src/share/classes/javax/security/auth/kerberos/KerberosKey.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalUtils.java.i
@@ -12616,22 +12363,23 @@ data/src/share/classes/com/sun/java/swing/plaf/windows/icons/Directory.gif.i
 data/test/java/lang/instrument/appendToClassLoaderSearch/BootSupport.java.i
 data/src/share/classes/sun/security/x509/OIDMap.java.i
 data/test/java/io/Unicode.java.i
-data/test/java/util/Currency/currency.properties.i
 data/test/java/util/concurrent/ConcurrentHashMap/LoopHelpers.java.i
 data/test/javax/sound/midi/Gervill/SoftChannel/ProgramChange.java.i
 data/test/java/beans/XMLDecoder/spec/TestField.java.i
 data/test/java/lang/Double/BitwiseConversion.java.i
 data/test/sun/security/krb5/auto/NonMutualSpnego.java.i
 data/src/solaris/doc/sun/man/man1/ja/wsgen.1.i
+data/src/share/classes/com/sun/media/sound/ModelPatch.java.i
 data/src/share/classes/javax/swing/text/html/InlineView.java.i
-data/src/solaris/native/sun/java2d/loops/vis_IntArgbPre.c.i
-data/test/com/sun/nio/sctp/SctpChannel/Connect.java.i
+data/test/java/io/BufferedInputStream/ReadAfterClose.java.i
+data/test/java/beans/Introspector/4520754/WombatBeanInfo.java.i
 data/src/solaris/classes/sun/awt/X11/XDragSourceProtocolListener.java.i
 data/src/share/classes/org/openjdk/jigsaw/JigsawModuleSystem.java.i
 data/test/javax/management/MBeanServer/MBeanServerInvocationHandlerExceptionTest.java.i
 data/test/java/awt/Mixing/LWPopupMenu.java.i
-data/test/java/beans/Introspector/4520754/FooBarBeanInfo.java.i
-data/src/share/classes/java/awt/image/Raster.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipherInput.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConvIndex3_8_16nw.c.i
+data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_es.properties.i
 data/test/javax/management/remote/mandatory/subjectDelegation/policy13.i
 data/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java.i
 data/test/java/awt/Focus/ToFrontFocusTest/ToFrontFocus.java.i
@@ -12640,44 +12388,41 @@ data/test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh.i
 data/test/java/util/Collections/ReverseOrder2.java.i
 data/src/share/native/com/sun/media/sound/PlatformMidi.c.i
 data/src/share/classes/com/sun/jmx/remote/internal/ServerNotifForwarder.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTreeUI.java.i
 data/src/windows/classes/sun/java2d/windows/GDIRenderer.java.i
-data/src/solaris/native/sun/xawt/XlibWrapper.c.i
 data/src/share/classes/sun/font/FontStrike.java.i
 data/src/share/classes/javax/sql/rowset/serial/SQLOutputImpl.java.i
-data/test/java/io/Serializable/superclassDataLoss/A.java.i
 data/test/sun/management/jmxremote/bootstrap/jmxremote_test04_ok.password.in.i
 data/src/linux/doc/man/ja/keytool.1.i
-data/test/sun/security/smartcardio/TestMultiplePresent.java.i
 data/src/share/classes/java/util/FormatFlagsConversionMismatchException.java.i
 data/src/share/classes/java/nio/file/attribute/FileStoreAttributeView.java.i
-data/test/sun/security/pkcs11/Provider/ConfigQuotedString.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/AbstractMonitoredVm.java.i
 data/src/share/classes/javax/smartcardio/Card.java.i
 data/src/share/classes/sun/nio/cs/ext/MacGreek.java.i
 data/src/share/classes/sun/net/spi/nameservice/NameServiceDescriptor.java.i
-data/src/share/classes/javax/management/openmbean/OpenMBeanOperationInfo.java.i
-data/test/com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java.i
+data/test/java/awt/Mixing/Validating.java.i
+data/src/windows/native/sun/windows/awt_Dimension.h.i
+data/test/java/math/BigDecimal/FloatDoubleValueTests.java.i
 data/test/java/nio/file/Files/walkFileTree/PrintFileTree.java.i
 data/src/share/classes/org/openjdk/jigsaw/LocatableCatalog.java.i
 data/src/share/classes/javax/swing/DefaultButtonModel.java.i
 data/test/java/net/Socket/TestAfterClose.java.i
 data/src/share/back/classTrack.h.i
 data/src/share/classes/javax/swing/plaf/basic/BasicTextFieldUI.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/InterruptedIO.java.i
+data/src/share/classes/org/openjdk/internal/joptsimple/internal/Strings.java.i
 data/test/java/security/Provider/DefaultPKCS11.java.i
-data/src/share/classes/javax/swing/plaf/multi/MultiProgressBarUI.java.i
+data/src/share/classes/com/sun/net/httpserver/Filter.java.i
 data/src/share/npt/utf.c.i
 data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmRTBootClassPathSupport.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObjectVisitor.java.i
 data/test/java/awt/print/PageFormat/PageFormatFromAttributes.java.i
 data/src/share/classes/sun/tools/javac/SourceMember.java.i
-data/test/javax/management/mxbean/MerlinMXBean.java.i
+data/src/share/classes/java/awt/doc-files/FocusSpec.html.i
 data/make/tools/src/build/tools/jdwpgen/LongTypeNode.java.i
 data/src/share/classes/javax/management/namespace/MBeanServerSupport.java.i
-data/test/java/net/URL/TestIPv6Addresses.java.i
 data/src/share/classes/sun/management/GarbageCollectionNotifInfoCompositeData.java.i
 data/src/share/native/sun/java2d/loops/IntRgbx.c.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpUnknownSubSystemException.java.i
+data/test/sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java.i
 data/src/windows/native/sun/windows/ComCtl32Util.h.i
 data/test/java/util/HashMap/KeySetRemove.java.i
 data/src/windows/native/sun/jkernel/kernel_fr.rc.i
@@ -12686,9 +12431,10 @@ data/src/share/classes/com/sun/jdi/event/LocatableEvent.java.i
 data/test/javax/swing/JFileChooser/6798062/bug6798062.java.i
 data/src/share/classes/org/openjdk/jigsaw/FileConstants.java.i
 data/test/java/rmi/activation/Activatable/checkActivateRef/group.security.policy.i
+data/src/windows/native/sun/windows/awt_Multimon.h.i
+data/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java.i
 data/src/solaris/classes/sun/awt/X11/XScrollbar.java.i
-data/test/java/nio/file/Files/BytesAndLines.java.i
-data/src/windows/classes/sun/awt/windows/WMouseDragGestureRecognizer.java.i
+data/test/java/rmi/reliability/benchmark/bench/serial/SmallObjTrees.java.i
 data/test/javax/management/eventService/NotSerializableNotifTest.java.i
 data/test/java/net/URLConnection/contentHandler/COM/foo/content/text/plain.java.i
 data/src/share/classes/java/awt/RadialGradientPaint.java.i
@@ -12696,7 +12442,7 @@ data/make/sun/image/Makefile.i
 data/src/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemPoolType.java.i
 data/test/java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport.java.i
-data/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java.i
+data/test/sun/net/www/protocol/jar/foo.jar.i
 data/src/solaris/native/sun/nio/ch/nio_util.h.i
 data/src/share/classes/javax/management/event/EventClientDelegate.java.i
 data/test/java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java.i
@@ -12704,71 +12450,73 @@ data/src/share/classes/com/sun/servicetag/resources/javase_6_swordfish.propertie
 data/src/share/classes/java/lang/NoSuchMethodException.java.i
 data/src/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_BO.properties.i
-data/src/share/classes/javax/management/openmbean/OpenMBeanInfoSupport.java.i
+data/src/share/classes/javax/swing/text/LayeredHighlighter.java.i
 data/test/javax/management/MBeanInfo/SerializedMBeanInfo.java.i
 data/test/java/beans/XMLEncoder/Test4993777.java.i
-data/src/share/classes/sun/io/CharToByteGBK.java.i
+data/src/windows/native/sun/nio/ch/nio_util.h.i
 data/src/share/classes/javax/print/attribute/standard/JobImpressionsCompleted.java.i
-data/test/sun/tools/jstat/jstatGcOldOutput1.sh.i
 data/src/share/classes/org/openjdk/internal/joptsimple/IllegalOptionClusterException.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM948.java.i
 data/src/share/classes/java/util/concurrent/LinkedTransferQueue.java.i
-data/src/share/classes/java/beans/AppletInitializer.java.i
+data/src/solaris/doc/sun/man/man1/jstack.1.i
 data/src/share/instrument/FileSystemSupport.h.i
-data/src/share/classes/com/sun/servicetag/resources/register_ja.html.i
+data/src/share/classes/sun/security/x509/RDN.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmMemMgrPoolRelEntryMeta.java.i
 data/test/sun/net/idn/TestData.java.i
 data/src/share/classes/java/nio/file/attribute/AclEntryPermission.java.i
 data/src/share/classes/javax/swing/RowSorter.java.i
 data/test/java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java.i
-data/src/share/classes/sun/io/CharToByteCp1145.java.i
-data/src/share/classes/sun/applet/AppletResourceLoader.java.i
+data/make/tools/CharsetMapping/IBM420.nr.i
+data/test/com/sun/servicetag/servicetag5.properties.i
 data/src/share/classes/sun/reflect/generics/tree/ClassSignature.java.i
 data/test/java/io/BufferedReader/MarkedFillAtEOF.java.i
 data/test/sun/rmi/rmic/manifestClassPath/Util.sh.i
-data/test/java/io/Serializable/resolveClass/consTest/run.sh.i
 data/src/share/classes/java/nio/package.html.i
+data/make/sun/awt/FILES_c_windows.gmk.i
 data/src/linux/doc/man/ja/klist.1.i
 data/src/share/classes/org/openjdk/jigsaw/Configuration.java.i
 data/src/share/classes/sun/io/ByteToCharCp1046.java.i
-data/test/java/rmi/activation/Activatable/restartLatecomer/RestartLatecomer.java.i
+data/test/java/rmi/transport/readTimeout/security.policy.i
+data/src/share/classes/com/sun/media/sound/DLSSampleOptions.java.i
+data/src/share/classes/com/sun/media/sound/SoftJitterCorrector.java.i
 data/test/java/nio/channels/Selector/KeySets.java.i
 data/test/java/awt/regtesthelpers/Util.java.i
 data/test/sun/util/resources/TimeZone/Bug4848242.java.i
 data/test/sun/misc/JarIndex/metaInfFilenames/jarB/META-INF/services/no.name.service.i
 data/src/share/classes/com/sun/jmx/snmp/internal/SnmpSubSystem.java.i
 data/src/windows/native/sun/windows/WBufferStrategy.cpp.i
-data/test/java/util/concurrent/locks/Lock/FlakyMutex.java.i
+data/src/share/classes/java/net/SocketImplFactory.java.i
+data/test/tools/launcher/MultipleJRE.sh.i
 data/src/share/classes/javax/xml/crypto/dsig/Manifest.java.i
+data/src/share/classes/java/security/DigestOutputStream.java.i
 data/src/share/classes/com/sun/net/httpserver/HttpHandler.java.i
 data/test/java/awt/FontClass/LCDScale.java.i
-data/src/share/classes/sun/security/x509/CRLExtensions.java.i
+data/src/share/classes/com/sun/management/VMOption.java.i
 data/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java.i
 data/src/share/classes/java/awt/datatransfer/FlavorTable.java.i
 data/src/share/native/sun/java2d/loops/Index8Gray.h.i
 data/src/share/classes/javax/accessibility/AccessibleStateSet.java.i
-data/src/share/classes/com/sun/tools/hat/internal/model/JavaValue.java.i
-data/src/solaris/classes/sun/awt/X11/XRootWindow.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReuseAddr.java.i
+data/src/share/classes/javax/swing/AbstractSpinnerModel.java.i
 data/src/share/classes/javax/net/ssl/SSLServerSocket.java.i
-data/test/javax/sound/midi/Gervill/RiffReaderWriter/ReadString.java.i
-data/src/share/classes/javax/management/openmbean/InvalidKeyException.java.i
-data/src/share/classes/sun/util/resources/TimeZoneNames_ko.java.i
+data/src/share/classes/sun/text/resources/FormatData_sr_CS.java.i
+data/src/solaris/hpi/native_threads/include/threads_md.h.i
 data/make/tools/src/build/tools/jdwpgen/ReferenceTypeNode.java.i
 data/test/sun/net/www/protocol/http/BasicLongCredentials.java.i
 data/test/java/io/Serializable/resolveClass/deserializeButton/Foo.java.i
-data/test/sun/nio/cs/OLD/GBK_OLD.java.i
-data/src/share/classes/javax/swing/plaf/basic/icons/JavaCup16.png.i
+data/test/javax/sql/rowset/serial/SerialBlob/SetBinaryStream.java.i
+data/test/java/lang/ThreadGroup/Daemon.java.i
+data/src/share/classes/javax/smartcardio/CommandAPDU.java.i
 data/src/windows/native/sun/java2d/d3d/D3DBlitLoops.h.i
-data/src/share/classes/javax/xml/crypto/dsig/keyinfo/KeyValue.java.i
+data/test/sun/rmi/rmic/newrmic/equivalence/G1.java.i
 data/src/share/back/MethodImpl.h.i
-data/test/java/util/Hashtable/SimpleSerialization.java.i
 data/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java.i
 data/src/share/classes/org/openjdk/jigsaw/Files.java.i
 data/src/share/classes/java/awt/PointerInfo.java.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/CharArrayCalls.java.i
-data/test/sun/net/www/ftptest/FtpFileSystemHandler.java.i
-data/test/java/io/File/DeleteOnExitLong.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libnspr4.so.i
+data/test/sun/nio/cs/UkrainianIsNotRussian.java.i
+data/make/common/internal/BinaryPlugs.gmk.i
+data/src/share/classes/java/io/SerializablePermission.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmMemManagerTableMeta.java.i
 data/src/share/classes/sun/io/ByteToCharMacThai.java.i
 data/test/java/util/concurrent/ScheduledThreadPoolExecutor/Stress.java.i
@@ -12780,60 +12528,61 @@ data/make/sun/javazic/tzdata/solar87.i
 data/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java.i
 data/src/share/classes/sun/nio/cs/ext/ISO_8859_11.java.i
 data/test/sun/rmi/rmic/covariantReturns/run.sh.i
-data/src/share/classes/javax/swing/text/html/parser/DocumentParser.java.i
+data/src/share/classes/sun/security/provider/SHA5.java.i
 data/src/share/classes/sun/text/normalizer/SymbolTable.java.i
 data/test/sun/management/jmxremote/bootstrap/ssl/keystore.i
-data/test/sun/security/pkcs11/nss/lib/solaris-amd64/libnss3.so.d
 data/test/java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java.i
 data/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java.i
 data/src/windows/classes/sun/nio/fs/WindowsChannelFactory.java.i
 data/src/share/native/java/util/TimeZone.c.i
-data/make/tools/src/build/tools/charsetmapping/GenerateMapping.java.i
-data/src/share/classes/java/util/UUID.java.i
+data/src/share/classes/com/sun/beans/decoder/FalseElementHandler.java.i
+data/src/share/classes/javax/swing/plaf/synth/SynthParser.java.i
+data/test/sun/tools/jstat/jstatGcOldOutput1.sh.i
 data/src/share/classes/javax/management/relation/RelationTypeSupport.java.i
 data/src/share/classes/java/net/ContentHandler.java.i
 data/test/java/awt/FontClass/SurrogateTest/SupplementaryCanDisplayUpToTest.java.i
-data/src/share/classes/java/security/DigestOutputStream.java.i
-data/test/javax/sound/midi/File/SMPTESequence.java.i
-data/src/solaris/sample/dtrace/hotspot_jni/README.txt.i
+data/src/share/classes/sun/io/CharToByteTIS620.java.i
+data/src/share/classes/java/nio/ByteOrder.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NonAutoClose.java.i
 data/src/solaris/classes/sun/awt/X11ComponentPeer.java.i
 data/src/share/classes/sun/util/resources/TimeZoneNames_sv.java.i
 data/test/sun/misc/Safe.java.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/CountedTimerTask.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/XPathFuncHereAPI.java.i
 data/test/java/security/KeyStore/EntryMethods.pre15.keystore.i
 data/test/java/io/Serializable/parents/EvolvedClass.java.i
-data/test/java/nio/charset/coders/BashStreams.java.i
 data/src/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java.i
-data/src/share/classes/sun/io/ByteToCharCp1146.java.i
+data/src/share/native/sun/java2d/loops/AnyByte.h.i
 data/src/solaris/classes/sun/awt/X11/MotifColorUtilities.java.i
 data/test/java/lang/AssertionError/Cause.java.i
 data/test/sun/security/pkcs11/nss/db/secmod.db.i
 data/src/share/classes/sun/nio/cs/UTF_32LE_BOM.java.i
 data/src/solaris/native/sun/awt/jawt.c.i
-data/test/com/sun/jdi/NullLocalVariable.sh.i
+data/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java.i
 data/src/share/classes/sun/util/resources/CalendarData_en_MT.properties.i
-data/test/java/security/KeyFactory/Failover.java.i
 data/src/share/classes/com/sun/jmx/snmp/internal/SnmpTools.java.i
-data/test/javax/swing/JEditorPane/6917744/bug6917744.java.i
-data/test/javax/management/mxbean/InvalidMXBeanRegistrationTest.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_tr_TR.properties.i
+data/src/share/demo/nbproject/management/VerboseGC/nbproject/jdk.xml.i
+data/src/share/classes/javax/print/attribute/DocAttributeSet.java.i
+data/src/share/classes/sun/tools/asm/LocalVariableTable.java.i
 data/src/share/lib/security/java.security.i
+data/src/share/classes/sun/font/BidiUtils.java.i
 data/src/share/classes/com/sun/media/sound/WaveFileFormat.java.i
-data/src/share/classes/sun/net/www/content/text/plain.java.i
+data/test/com/sun/crypto/provider/Cipher/AES/Test4517355.java.i
 data/test/java/lang/instrument/RedefineClassesDisabledTest.java.i
-data/src/share/classes/com/sun/beans/decoder/ValueObjectImpl.java.i
-data/make/sun/jawt/Makefile.i
+data/make/tools/CharsetMapping/IBM942.c2b.i
+data/src/share/classes/sun/security/krb5/internal/SeqNumber.java.i
+data/src/share/sample/vm/clr-jvm/jinvoker.cpp.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ServerTimeout.java.i
 data/test/java/io/Serializable/InvalidClassException/noargctor/NonSerialize/PublicCtor.java.i
 data/test/java/beans/XMLEncoder/Test4994637.java.i
 data/src/share/classes/sun/nio/cs/ext/JIS_X_0208_MS5022X_Decoder.java.i
 data/src/share/classes/sun/font/Script.java.i
-data/src/windows/classes/sun/java2d/d3d/D3DTextRenderer.java.i
-data/src/share/classes/sun/security/krb5/internal/ccache/CCacheOutputStream.java.i
+data/test/java/io/Serializable/subclassGC/security.policy.i
 data/src/share/classes/javax/imageio/metadata/IIOMetadataFormat.java.i
-data/test/java/math/BigDecimal/PowTests.java.i
+data/make/tools/src/build/tools/generatebreakiteratordata/DictionaryBasedBreakIteratorBuilder.java.i
+data/test/java/awt/im/InputContext/bug4625203.java.i
 data/test/sun/security/provider/PolicyFile/TokenStore.java.i
 data/test/sun/tools/jrunscript/jrunscript-eTest.sh.i
+data/test/sun/security/ssl/javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java.i
 data/test/javax/sound/midi/Gervill/DLSSoundbankReader/TestGetSoundbankFile.java.i
 data/src/share/classes/sun/jkernel/KernelError.java.i
 data/make/java/net/mapfile-vers.i
@@ -12841,15 +12590,17 @@ data/test/javax/sound/midi/Gervill/SoftChannel/Mute.java.i
 data/src/share/classes/java/awt/peer/LightweightPeer.java.i
 data/src/share/classes/sun/security/tools/JarSignerResources.java.i
 data/src/solaris/native/java/lang/ProcessEnvironment_md.c.i
+data/test/java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java.i
 data/test/com/sun/servicetag/missing-environ-field.xml.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java.i
 data/test/sun/security/jgss/spnego/NegTokenTargFields.java.i
 data/src/share/classes/javax/swing/text/html/parser/Entity.java.i
+data/src/share/classes/sun/text/resources/FormatData_ms.java.i
 data/test/sun/tools/jrunscript/Hello.java.i
 data/src/share/classes/javax/sql/RowSetReader.java.i
-data/make/tools/CharsetMapping/IBM870.c2b.i
-data/src/share/classes/sun/util/resources/LocaleNames_hr.properties.i
+data/src/share/classes/sun/security/tools/KeyTool.java.i
 data/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationInfo.java.i
-data/test/sun/nio/cs/SurrogateTestEUCTW.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_mk_MK.properties.i
 data/test/javax/management/remote/mandatory/notif/NotificationSender.java.i
 data/test/sun/text/resources/LocaleDataTest.java.i
 data/make/netbeans/world/README.i
@@ -12864,32 +12615,34 @@ data/test/sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest
 data/src/windows/native/sun/jkernel/version.rc.i
 data/src/share/classes/sun/security/timestamp/TSResponse.java.i
 data/src/share/classes/com/sun/jndi/url/ldap/ldapURLContextFactory.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS16U8Func.c.i
+data/test/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java.i
 data/src/share/classes/sun/management/jmxremote/package.html.i
 data/src/share/classes/java/beans/Encoder.java.i
 data/src/share/classes/java/nio/file/attribute/AclEntryFlag.java.i
 data/src/share/classes/sun/awt/event/IgnorePaintEvent.java.i
+data/make/mkdemo/jfc/SwingApplet/Makefile.i
 data/src/share/classes/java/awt/peer/CheckboxPeer.java.i
-data/test/sun/java2d/cmm/ColorConvertOp/GRAY.png.i
+data/src/share/classes/sun/security/ssl/Record.java.i
 data/src/share/demo/jfc/SampleTree/DynamicTreeNode.java.i
 data/make/netbeans/common/architectures/name-SunOS.properties.i
 data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipPath.java.i
 data/test/java/lang/annotation/loaderLeak/C.java.i
 data/test/sun/security/pkcs11/nss/p11-deimos.txt.i
 data/src/share/classes/javax/swing/DefaultFocusManager.java.i
-data/test/sun/security/ec/truststore.i
 data/src/share/classes/sun/invoke/util/VerifyType.java.i
-data/src/share/native/sun/font/layout/SunLayoutEngine.cpp.i
+data/src/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java.i
+data/src/share/classes/javax/xml/crypto/dsig/dom/package.html.i
 data/test/java/nio/file/Files/PassThroughFileSystem.java.i
 data/src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java.i
-data/make/tools/generate_break_iterator/Makefile.i
-data/src/share/classes/javax/sound/midi/MidiSystem.java.i
+data/src/share/native/sun/security/pkcs11/wrapper/pkcs11.h.i
+data/test/java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java.i
 data/make/tools/CharsetMapping/IBM871.c2b.i
 data/src/share/classes/javax/swing/JLayer.java.i
 data/make/modules/update_module.sh.i
 data/test/java/nio/charset/Charset/AvailableCharsetNames.java.i
 data/src/share/classes/sun/java2d/pipe/GeneralCompositePipe.java.i
 data/test/javax/management/remote/mandatory/connection/ConnectionListenerNullTest.java.i
+data/src/share/classes/javax/management/openmbean/CompositeDataView.java.i
 data/src/share/classes/javax/crypto/interfaces/DHPrivateKey.java.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/policy.all.i
 data/src/solaris/native/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.c.i
@@ -12897,70 +12650,72 @@ data/test/sun/net/www/http/HttpClient/RetryPost.java.i
 data/test/java/nio/channels/Selector/CloseWhenKeyIdle.java.i
 data/test/java/util/Locale/data/deflocale.rhel5.fmtasdefault.i
 data/src/share/native/sun/awt/image/jpeg/jcmaster.c.i
-data/src/share/classes/com/sun/security/auth/NTSidPrimaryGroupPrincipal.java.i
-data/src/share/classes/sun/nio/cs/ext/MacHebrew.java.i
-data/test/javax/swing/JColorChooser/Test4380468.html.i
-data/src/share/instrument/EncodingSupport.c.i
+data/src/share/classes/javax/smartcardio/CardPermission.java.i
+data/src/share/classes/javax/management/MBeanServerDelegate.java.i
+data/test/sun/security/provider/PolicyParser/PrincipalExpansionError.policy.i
+data/src/windows/classes/com/sun/tools/jdi/SharedMemoryTransportService.java.i
 data/src/share/classes/sun/io/ByteToCharCp1255.java.i
 data/src/share/classes/javax/naming/MalformedLinkException.java.i
-data/src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h.i
-data/src/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java.i
+data/test/java/net/URL/Equals.java.i
+data/test/com/sun/net/httpserver/bugs/B6424196.java.i
 data/make/jpda/transport/socket/mapfile-vers.i
+data/make/sun/font/mapfile-vers.openjdk.i
 data/test/java/rmi/transport/httpSocket/HttpSocketTest_Stub.java.i
-data/src/share/classes/sun/security/provider/SeedGenerator.java.i
+data/make/tools/reorder/tests/Hello.java.i
 data/src/share/classes/javax/swing/event/MenuKeyListener.java.i
 data/src/share/back/debugInit.h.i
 data/src/share/demo/applets/BarChart/example2.html.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/SignatureProperty.java.i
+data/test/sun/management/HotspotRuntimeMBean/GetSafepointCount.java.i
 data/test/java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java.i
 data/test/sun/security/tools/keytool/PrintSSL.java.i
+data/make/javax/swing/plaf/FILES.gmk.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/HandshakeOutStream/NullCerts.java.i
 data/src/share/classes/com/sun/imageio/plugins/common/ImageUtil.java.i
 data/src/share/native/sun/font/layout/ContextualGlyphSubstProc.cpp.i
-data/src/share/classes/com/sun/tools/hat/internal/util/Comparer.java.i
+data/test/java/beans/PropertyEditor/TestByteClassJava.java.i
 data/test/javax/management/openmbean/CompositeDataToMapTest.java.i
 data/src/share/classes/sun/security/ssl/Handshaker.java.i
 data/src/share/classes/java/security/interfaces/DSAKeyPairGenerator.java.i
-data/test/java/util/jar/JarInputStream/EmptyJar.java.i
 data/src/share/classes/javax/swing/plaf/metal/icons/ocean/iconify-pressed.gif.i
 data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Makefile.i
-data/src/share/classes/javax/swing/undo/UndoableEdit.java.i
-data/src/solaris/demo/jigsaw/basic/Makefile.i
-data/src/share/classes/java/text/FieldPosition.java.i
-data/src/share/demo/nbproject/management/MemoryMonitor/nbproject/project.xml.i
+data/src/share/classes/sun/nio/ch/PollSelectorProvider.java.i
+data/src/share/classes/sun/print/PrintJobAttributeException.java.i
+data/src/share/classes/com/sun/media/sound/SoftProvider.java.i
+data/test/sun/security/x509/X500Name/RDNwithMultipleAVAs.java.i
+data/make/sun/jawt/Makefile.i
 data/test/tools/launcher/SolarisRunpath.sh.i
 data/test/com/sun/tracing/BasicFunctionality.java.i
-data/src/share/classes/com/sun/jmx/snmp/internal/SnmpSecurityCache.java.i
+data/src/share/classes/javax/swing/plaf/basic/BasicListUI.java.i
+data/test/java/io/IOException/LastErrorString.java.i
 data/test/sun/tools/jstat/lineCounts1.awk.i
-data/test/javax/swing/JSlider/6794831/bug6794831.java.i
-data/make/tools/reorder/Makefile.i
+data/test/java/nio/channels/Channels/Basic2.java.i
 data/src/share/classes/sun/tools/jstat/JStatLogger.java.i
-data/src/share/classes/sun/net/www/http/HttpCapture.java.i
-data/test/javax/imageio/stream/StreamCloserLeak/test/Main.java.i
+data/test/javax/imageio/plugins/png/ItxtUtf8Test.java.i
 data/test/java/nio/channels/Selector/RegAfterPreClose.java.i
 data/test/java/io/Serializable/resolveClass/consTest/Boot.java.i
-data/test/java/net/URLConnection/Connect.java.i
+data/test/javax/sound/midi/Gervill/SoftTuning/Load1.java.i
 data/src/share/native/sun/java2d/pipe/SpanIterator.h.i
 data/src/share/classes/sun/util/locale/Extension.java.i
 data/test/java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java.i
-data/src/share/classes/sun/font/Underline.java.i
+data/src/share/classes/com/sun/tools/jdi/GenericAttachingConnector.java.i
 data/src/share/classes/sun/awt/HToolkit.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java.i
+data/test/java/awt/Graphics2D/DrawString/AlphaSurfaceText.java.i
 data/src/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java.i
 data/src/share/classes/java/awt/event/ContainerEvent.java.i
 data/src/share/classes/java/util/concurrent/package-info.java.i
 data/src/share/native/sun/java2d/loops/AlphaMacros.h.i
 data/test/java/lang/instrument/TestClass1.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java.i
+data/test/java/nio/file/WatchService/LotsOfEvents.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTextUI.java.i
-data/src/solaris/native/sun/net/spi/DefaultProxySelector.c.i
+data/test/demo/jvmti/Hello.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_pl_PL.properties.i
-data/src/share/classes/java/io/FilterInputStream.java.i
+data/test/sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java.i
 data/test/sun/security/tools/keytool/selfissued.sh.i
 data/test/com/sun/crypto/provider/TLS/masterdata.txt.i
 data/test/com/sun/jdi/VMDeathRequestTest.java.i
 data/src/share/classes/java/net/ServerSocket.java.i
-data/src/share/classes/com/sun/jmx/snmp/agent/SnmpUserDataFactory.java.i
+data/test/sun/rmi/server/MarshalOutputStream/marshalForeignStub/MarshalForeignStub.java.i
+data/test/java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java.i
 data/test/java/util/Arrays/Correct.java.i
 data/test/javax/security/auth/login/LoginContext/DefaultHandlerModule.java.i
 data/src/share/classes/javax/swing/JEditorPane.java.i
@@ -12969,52 +12724,52 @@ data/src/share/classes/sun/nio/cs/ext/IBM1123.java.i
 data/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/security.policy.i
 data/src/share/classes/sun/tools/asm/NameAndTypeConstantData.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.java.i
-data/test/java/io/Serializable/6966692/Victim.java.i
+data/test/java/util/PluggableLocale/providersrc/LocaleNames_ja.properties.i
 data/src/share/classes/java/awt/event/package.html.i
 data/test/javax/security/auth/PrivateCredentialPermission/Subset.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsInternalFrameUI.java.i
-data/test/sun/management/jmxremote/bootstrap/Utils.java.i
+data/src/share/native/java/lang/fdlibm/src/k_tan.c.i
 data/test/java/rmi/reliability/benchmark/runSerialBench.sh.i
-data/test/java/util/AbstractList/HasNextAfterException.java.i
+data/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java.i
 data/src/share/classes/java/nio/file/OpenOption.java.i
-data/test/sun/security/provider/PolicyParser/ExtDirs1.policy.i
 data/test/sun/security/provider/KeyStore/WrongPassword.java.i
 data/test/javax/script/UnescapedBracketRegExTest.java.i
-data/src/share/classes/sun/tools/tree/BinaryAssignExpression.java.i
-data/test/com/sun/tools/attach/BadAgent.java.i
-data/test/sun/security/provider/PolicyParser/p002.policy.i
+data/src/share/classes/sun/reflect/UnsafeQualifiedIntegerFieldAccessorImpl.java.i
+data/src/share/classes/javax/swing/colorchooser/ColorSelectionModel.java.i
 data/test/sun/rmi/runtime/Log/checkLogging/CheckLogging.java.i
-data/test/java/awt/PrintJob/MultipleEnd/MultipleEnd.java.i
+data/test/sun/management/jmxremote/bootstrap/management_ssltest14_ko.properties.in.i
 data/src/share/classes/java/util/Arrays.java.i
 data/src/share/classes/java/nio/channels/Channel.java.i
 data/test/java/security/Provider/Turkish.java.i
-data/src/share/native/sun/security/ec/ecl.h.i
+data/test/java/lang/reflect/Method/invoke/IllegalAccessInInvoke.java.i
 data/test/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java.i
 data/src/share/classes/com/sun/jdi/request/DuplicateRequestException.java.i
 data/src/share/classes/sun/text/resources/FormatData_vi.java.i
 data/test/java/net/URL/RelativePath.java.i
-data/make/java/jexec/Makefile.i
+data/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java.i
+data/make/common/Release.gmk.i
 data/test/java/rmi/activation/Activatable/downloadParameterClass/Foo.java.i
-data/src/share/classes/sun/text/resources/CollationData.java.i
+data/test/java/beans/PropertyEditor/TestBooleanClassJava.java.i
 data/src/share/classes/sun/reflect/misc/ReflectUtil.java.i
 data/src/share/demo/jvmti/hprof/hprof_check.h.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509IssuerSerial.java.i
+data/src/share/classes/sun/dyn/AdapterMethodHandle.java.i
 data/src/share/classes/javax/imageio/metadata/doc-files/standard_metadata.html.i
-data/test/javax/management/ObjectName/DelegateNameWildcardNameTest.java.i
-data/test/com/sun/jdi/Redefine-g.sh.i
+data/src/share/classes/sun/security/provider/certpath/CollectionCertStore.java.i
+data/test/java/nio/channels/spi/AsynchronousChannelProvider/Provider1.java.i
 data/test/java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java.i
-data/test/java/io/Serializable/skipWriteObject/Read.java.i
 data/src/share/classes/javax/sql/rowset/serial/package.html.i
 data/test/tools/pack200/UnpackerMemoryTest.java.i
-data/src/share/classes/javax/print/attribute/PrintJobAttribute.java.i
-data/src/share/classes/sun/io/CharToByteUnicodeLittleUnmarked.java.i
+data/test/javax/management/MBeanServer/NotifDeadlockTest.java.i
+data/test/javax/sound/midi/Gervill/SF2SoundbankReader/TestGetSoundbankFile.java.i
 data/src/share/classes/sun/tracing/dtrace/DTraceProvider.java.i
 data/test/sun/rmi/transport/tcp/blockAccept/TestImpl.java.i
 data/test/Makefile.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU16S32Func.c.i
-data/src/share/sample/jmx/jmx-scandir/docfiles/scandir-config.jpg.i
+data/test/sun/security/provider/PolicyFile/SelfExpansion.java.i
+data/make/tools/swing-beans/beaninfo/images/JSplitPaneMono32.gif.i
 data/test/java/awt/GraphicsEnvironment/LoadLock/GE_init4.java.i
-data/src/share/classes/sun/dyn/anon/AnonymousClassLoader.java.i
+data/make/tools/CharsetMapping/IBM775.map.i
+data/src/share/classes/com/sun/tools/hat/internal/util/ArraySorter.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java.i
 data/src/share/classes/com/sun/jmx/snmp/daemon/CommunicationException.java.i
 data/src/share/classes/sun/text/resources/FormatData_ms_MY.java.i
@@ -13026,71 +12781,70 @@ data/src/share/classes/sun/security/provider/certpath/CertStoreHelper.java.i
 data/test/javax/management/namespace/RoutingServerProxyTest.java.i
 data/src/share/classes/sun/invoke/util/Wrapper.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14N11_WithComments.java.i
-data/src/share/classes/java/awt/font/OpenType.java.i
+data/src/share/classes/java/util/Locale.java.i
 data/src/share/demo/jvmti/hprof/hprof_class.h.i
-data/test/java/rmi/activation/Activatable/downloadParameterClass/group.security.policy.i
+data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ComKeyManagerFactoryImpl.java.i
 data/src/share/native/sun/java2d/loops/FourByteAbgrPre.h.i
 data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/SSLEngineResultArgs.java.i
-data/test/java/security/cert/CertPath/Serialize.java.i
 data/src/share/classes/com/sun/tools/example/debug/expr/Expr.jj.i
-data/test/java/nio/file/Path/CopyAndMove.java.i
+data/test/sun/net/www/protocol/file/GetContentType.java.i
 data/src/solaris/demo/jigsaw/basic/run.sh.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp.h.i
-data/test/java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.java.i
+data/src/share/classes/javax/management/namespace/JMXNamespace.java.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfig.java.i
 data/src/share/classes/javax/management/relation/RelationSupport.java.i
 data/test/sun/security/provider/PolicyParser/AvoidPropertyExpansionExceptions.java.i
 data/test/java/math/BigDecimal/LongValueExactTests.java.i
+data/src/share/classes/sun/reflect/ReflectionFactory.java.i
 data/test/java/beans/XMLEncoder/java_awt_Insets.java.i
 data/src/share/native/sun/font/layout/ValueRecords.h.i
 data/src/share/classes/com/sun/tools/example/debug/tty/ThreadIterator.java.i
 data/src/share/classes/javax/print/attribute/PrintRequestAttributeSet.java.i
 data/src/solaris/native/sun/awt/awt_AWTEvent.c.i
-data/src/windows/native/sun/java2d/windows/ddrawObject.h.i
+data/src/share/classes/java/nio/channels/Selector.java.i
 data/src/share/classes/sun/java2d/loops/ScaledBlit.java.i
 data/test/java/io/charStreams/Cat.java.i
-data/test/sun/security/ssl/README.i
 data/src/windows/native/sun/windows/UnicowsLoader.h.i
 data/src/share/classes/sun/io/CharToByteCp865.java.i
-data/src/share/classes/javax/swing/plaf/basic/BasicIconFactory.java.i
+data/src/share/classes/java/security/GeneralSecurityException.java.i
+data/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHTTPSConnection.java.i
 data/make/netbeans/awt2d/README.i
 data/test/com/sun/management/HotSpotDiagnosticMXBean/SetVMOption.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicRadioButtonUI.java.i
 data/src/share/classes/java/lang/ArithmeticException.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/Orange.java.i
 data/src/share/classes/javax/management/ClassAttributeValueExp.java.i
-data/test/java/util/zip/TestEmptyZip.java.i
-data/test/java/lang/instrument/NamedBuffer.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_pt_PT.properties.i
 data/src/share/classes/javax/swing/text/AbstractDocument.java.i
-data/test/tools/launcher/Test7029048.java.i
 data/test/com/sun/net/httpserver/bugs/B6393710.java.i
-data/src/windows/native/sun/windows/security_warning_bw.ico.i
 data/test/java/lang/System/ExitFinalizersAndJIT.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_PA.properties.i
+data/test/sun/java2d/loops/Bug7049339.java.i
 data/test/sun/misc/JarIndex/metaInfFilenames/jarA/com/message/spi/MessageService.java.i
-data/src/share/classes/java/text/Format.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/TestThread.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/package.html.i
 data/src/share/classes/sun/nio/ch/SctpStdSocketOption.java.i
 data/src/share/classes/java/awt/geom/Ellipse2D.java.i
-data/test/java/lang/Math/HyperbolicTests.java.i
 data/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java.i
-data/test/javax/swing/JColorChooser/Test4193384.java.i
+data/src/share/classes/java/io/CharArrayReader.java.i
 data/test/sun/tools/jps/jps-lm.sh.i
 data/src/share/classes/javax/management/remote/IdentityMBeanServerForwarder.java.i
+data/test/java/text/Bidi/Bug7051769.java.i
 data/src/share/classes/sun/awt/geom/Order3.java.i
-data/test/javax/script/DummyScriptEngine.java.i
 data/src/share/back/invoker.c.i
 data/test/sun/management/jmxremote/bootstrap/Makefile.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/Transform.java.i
 data/src/share/classes/com/sun/servicetag/SolarisSystemEnvironment.java.i
 data/src/share/classes/sun/jvmstat/monitor/remote/BufferedMonitoredVm.java.i
-data/src/solaris/classes/sun/nio/ch/EPollPort.java.i
+data/test/java/awt/Focus/TypeAhead/TestFocusFreeze.java.i
+data/make/tools/swing-beans/beaninfo/images/JEditorPaneColor16.gif.i
 data/test/java/lang/instrument/RedefineClassWithNativeMethodApp.java.i
-data/test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/ShutdownImpl_Stub.java.i
-data/make/modules/imagine.sh.i
+data/test/java/util/ResourceBundle/Bug6190861Data_en_US.properties.i
+data/make/mkdemo/jvmti/heapTracker/Makefile.i
 data/test/javax/management/remote/mandatory/util/CacheMapTest.java.i
-data/src/solaris/classes/sun/awt/X11/XModalityProtocol.java.i
+data/make/tools/src/build/tools/jdwpgen/OutNode.java.i
 data/test/java/security/Security/removing/RemoveStaticProvider.policy.i
+data/src/share/classes/java/lang/Shutdown.java.i
 data/test/java/beans/XMLEncoder/6380849/Bean.java.i
 data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/java.policy.pass.i
 data/test/java/net/URLClassLoader/jars/class_path_test.jar.i
@@ -13105,104 +12859,112 @@ data/src/share/native/sun/security/ec/mplogic.h.i
 data/test/sun/security/x509/X500Name/DerValueConstructor.java.i
 data/src/share/classes/java/net/package.html.i
 data/src/share/classes/sun/net/spi/DefaultProxySelector.java.i
-data/test/java/rmi/transport/readTimeout/security.policy.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509Data.java.i
+data/test/sun/rmi/rmic/newrmic/equivalence/run.sh.i
+data/src/windows/native/sun/windows/awt_ScrollPane.cpp.i
+data/src/share/classes/sun/io/ByteToCharDBCS_EBCDIC.java.i
+data/src/share/classes/javax/management/event/RMIPushServer.java.i
 data/src/share/classes/javax/sql/rowset/serial/SerialException.java.i
 data/test/java/io/Serializable/finalFields/FinalFields.java.i
 data/make/tools/swing-beans/beaninfo/images/JComboBoxMono32.gif.i
-data/test/java/rmi/registry/checkusage/CheckUsage.java.i
 data/src/share/classes/com/sun/jmx/interceptor/MBeanServerSupport.java.i
 data/src/share/classes/java/nio/channels/ByteChannel.java.i
 data/test/java/net/MulticastSocket/SetTTLAndGetTTL.java.i
-data/src/solaris/classes/sun/awt/motif/X11SunUnicode_0.java.i
-data/test/javax/management/eventService/UsingEventService.java.i
+data/src/share/classes/com/sun/tools/example/README.i
+data/src/share/demo/applets/Fractal/example1.html.i
 data/test/java/beans/Introspector/4520754/Wombat.java.i
-data/src/share/classes/javax/swing/undo/doc-files/UndoManager-2.gif.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuBarUI.java.i
 data/test/java/lang/reflect/Constructor/GenericStringTest.java.i
-data/test/java/nio/Buffer/CopyDirectIntMemory.java.i
+data/test/java/net/CookieHandler/B6644726.java.i
 data/test/javax/sound/midi/Gervill/ModelSource/NewModelSourceModelIdentifierBooleanBooleanInt.java.i
-data/test/javax/sound/midi/Gervill/ModelPerformer/GetOscillators.java.i
 data/test/com/sun/net/httpserver/Test9.java.i
 data/src/share/native/sun/java2d/pipe/Region.h.i
 data/make/tools/src/build/tools/fontchecker/FontCheckDummy.java.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/AnnotatedDependency.java.i
 data/test/java/security/ProtectionDomain/AllPerm.jar.i
 data/test/com/sun/security/sasl/gsskerb/NoSecurityLayer.java.i
+data/test/java/io/Serializable/badSerialPersistentField/BadSerialPersistentField.java.i
 data/src/share/demo/jfc/SwingApplet/SwingApplet.java.i
 data/src/share/classes/sun/launcher/resources/launcher.properties.i
-data/src/share/classes/javax/naming/CannotProceedException.java.i
-data/make/modules/modularize.i
-data/test/java/util/zip/ZipFile/CorruptedZipFiles.java.i
+data/test/javax/management/remote/mandatory/socketFactories/RMISocketFactoriesTest.java.i
+data/src/share/classes/java/util/AbstractSequentialList.java.i
 data/src/share/classes/sun/reflect/generics/tree/Wildcard.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibAgentMBean.java.i
 data/make/sun/cmm/kcms/mapfile-vers.i
+data/test/java/security/cert/PKIXParameters/InvalidParameters.java.i
 data/src/share/native/sun/awt/image/jpeg/jcapimin.c.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/BenchServer.java.i
 data/src/share/classes/com/sun/crypto/provider/PKCS5Padding.java.i
 data/src/share/native/java/nio/Bits.c.i
-data/src/share/classes/java/lang/doc-files/javalang.doc.anc41.gif.i
+data/src/windows/native/java/io/Win32FileSystem_md.c.i
 data/src/share/classes/javax/naming/spi/DirObjectFactory.java.i
-data/src/solaris/classes/sun/awt/X11/XUtilConstants.java.i
-data/test/java/rmi/server/RMIClassLoader/downloadArrayClass/Receiver.java.i
+data/test/java/util/ResourceBundle/Bug4257318Res_en.java.i
 data/src/share/native/sun/security/ec/ecl_curve.c.i
 data/test/java/nio/channels/DatagramChannel/ThereCanBeOnlyOne.java.i
 data/test/java/util/EnumSet/OneUniverse.java.i
 data/src/share/classes/javax/net/ssl/TrustManager.java.i
 data/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java.i
 data/src/share/demo/jfc/SampleTree/SampleTreeCellRenderer.java.i
-data/src/share/native/sun/font/layout/LETypes.h.i
+data/make/tools/src/build/tools/jarsplit/JarSplit.java.i
 data/src/solaris/classes/sun/awt/motif/X11JIS0201.java.i
 data/src/share/classes/sun/io/CharToByteJIS0201.java.i
-data/test/java/io/charStreams/StringGenerator.java.i
+data/make/sun/xawt/mapfile-vers.i
 data/test/demo/jvmti/compiledMethodLoad/CompiledMethodLoadTest.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_sv.properties.i
-data/make/java/nio/reorder-sparc.i
+data/src/share/native/sun/java2d/loops/MaskFill.c.i
 data/test/javax/management/remote/mandatory/connection/CloseServerTest.java.i
 data/src/solaris/doc/sun/man/man1/appletviewer.1.i
 data/src/share/classes/sun/java2d/pipe/NullPipe.java.i
+data/test/java/lang/management/ManagementFactory/StateTestMBean.java.i
 data/test/javax/sound/midi/Gervill/ModelStandardTransform/TransformLinear.java.i
 data/test/java/lang/ref/SoftReference/Pin.java.i
-data/test/java/beans/XMLEncoder/java_util_Collections_CheckedSortedSet.java.i
-data/test/java/beans/PropertyEditor/TestDoubleClassValue.java.i
-data/src/solaris/classes/java/net/PlainSocketImpl.java.i
+data/test/java/util/Collections/NullComparator.java.i
+data/test/sun/jvmstat/testlibrary/Sleeper.java.i
+data/src/share/demo/nbproject/jfc/Notepad/nbproject/file-targets.xml.i
 data/src/share/classes/sun/security/timestamp/HttpTimestamper.java.i
+data/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties.i
+data/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c.i
 data/src/share/classes/javax/security/sasl/Sasl.java.i
 data/test/com/sun/jdi/EventQueueDisconnectTest.java.i
-data/src/share/classes/java/awt/dnd/MouseDragGestureRecognizer.java.i
+data/test/java/beans/Introspector/memory/Test4809008.java.i
 data/test/javax/swing/JLayer/6875153/bug6875153.java.i
 data/test/java/util/concurrent/DelayQueue/PollUnexpired.java.i
 data/src/share/classes/java/util/regex/PatternSyntaxException.java.i
-data/src/share/classes/com/sun/beans/WildcardTypeImpl.java.i
+data/src/solaris/native/sun/nio/ch/SctpNet.c.i
 data/src/share/classes/sun/awt/ExtendedKeyCodes.java.i
+data/test/javax/management/mxbean/customtypes/IntegerIsStringFactory.java.i
 data/src/linux/doc/man/ja/javac.1.i
 data/src/share/classes/sun/text/normalizer/CharacterIteratorWrapper.java.i
 data/test/java/util/Calendar/WeekDateTest.java.i
-data/test/javax/sound/midi/Gervill/ModelIdentifier/SetVariable.java.i
-data/src/share/classes/com/sun/tools/example/debug/bdi/SpecListener.java.i
+data/src/windows/native/sun/java2d/d3d/D3DTestRaster.h.i
 data/src/share/classes/com/sun/jmx/mbeanserver/MXBeanIntrospector.java.i
-data/test/java/beans/Performance/TestVetoableChangeSupport.java.i
+data/make/netbeans/jarzip/build.xml.i
+data/src/share/classes/javax/management/loading/MLet.java.i
 data/src/share/demo/applets/GraphicsTest/example1.html.i
 data/src/share/classes/java/lang/doc-files/capchi.gif.i
-data/src/share/classes/java/awt/print/Printable.java.i
+data/src/share/native/sun/awt/image/jpeg/jquant1.c.i
 data/src/share/modules/jdk.tools/module-info.java.i
 data/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java.i
+data/src/share/classes/java/security/PolicySpi.java.i
 data/test/javax/crypto/spec/IvParameterSpec/InvalidArgs.java.i
+data/src/share/classes/sun/reflect/generics/repository/MethodRepository.java.i
 data/test/java/awt/Mixing/JButtonInGlassPane.java.i
 data/src/windows/native/sun/nio/ch/Net.c.i
 data/src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java.i
-data/test/java/io/Serializable/lookupInterfaceDesc/LookupInterfaceDesc.java.i
+data/test/com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java.i
+data/src/share/classes/java/awt/image/FilteredImageSource.java.i
+data/src/share/classes/com/sun/media/sound/SunFileReader.java.i
 data/src/share/classes/com/sun/crypto/provider/PBEKey.java.i
 data/src/share/classes/javax/swing/JPanel.java.i
 data/src/share/classes/java/rmi/server/SocketSecurityException.java.i
 data/src/share/classes/javax/management/relation/InvalidRelationTypeException.java.i
 data/test/java/io/FilterOutputStream/Write.java.i
-data/test/javax/management/mxbean/StandardMBeanOverrideTest.java.i
 data/src/share/classes/javax/management/relation/Role.java.i
 data/src/share/classes/javax/sound/sampled/DataLine.java.i
 data/src/share/classes/sun/tracing/dtrace/Activation.java.i
+data/src/share/sample/nio/server/N2.java.i
 data/test/java/nio/charset/StandardCharset/Standard.java.i
-data/test/javax/swing/JInternalFrame/6726866/bug6726866.java.i
+data/src/share/classes/javax/print/attribute/ResolutionSyntax.java.i
 data/src/share/classes/com/sun/crypto/provider/AESWrapCipher.java.i
 data/src/share/native/sun/awt/image/jpeg/jctrans.c.i
 data/src/share/classes/java/io/InvalidClassException.java.i
@@ -13212,7 +12974,7 @@ data/test/javax/crypto/Cipher/GCMAPI.java.i
 data/src/windows/native/sun/windows/awt_Choice.h.i
 data/make/tools/reorder/tools/Combine.java.i
 data/src/share/native/sun/font/layout/CanonData.cpp.i
-data/src/share/back/commonRef.c.i
+data/src/share/classes/com/sun/media/sound/JavaSoundAudioClip.java.i
 data/test/java/net/URL/PerConnectionProxy.java.i
 data/test/java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.html.i
 data/test/java/text/Bidi/Bug6850113.java.i
@@ -13224,14 +12986,12 @@ data/src/share/classes/javax/swing/plaf/nimbus/InnerGlowEffect.java.i
 data/test/java/awt/Robot/RobotExtraButton/RobotExtraButton.java.i
 data/test/javax/security/auth/login/LoginContext/DefaultHandler.java.i
 data/src/share/classes/javax/sql/rowset/spi/XmlReader.java.i
-data/src/share/native/sun/java2d/cmm/lcms/LCMS.c.i
-data/src/share/native/java/util/zip/zlib-1.2.3/inffast.c.i
-data/test/java/lang/reflect/Proxy/ClassRestrictions.java.i
+data/test/java/beans/XMLEncoder/Test4679556.java.i
 data/test/java/net/NetworkInterface/IPv4Only.java.i
-data/test/javax/management/MBeanInfo/NullInfoArraysTest.java.i
+data/src/share/native/sun/security/ec/impl/mpmontg.c.i
 data/src/share/classes/sun/io/ByteToCharCp437.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver.java.i
-data/src/share/classes/sun/text/resources/FormatData_es_PR.java.i
+data/test/com/sun/net/httpserver/Test8a.java.i
+data/make/javax/crypto/policy/limited/LIMITED.i
 data/src/share/classes/java/security/interfaces/RSAPublicKey.java.i
 data/src/share/classes/javax/print/attribute/standard/JobOriginatingUserName.java.i
 data/test/sun/net/ftp/FtpURL.java.i
@@ -13242,234 +13002,230 @@ data/test/javax/security/auth/login/LoginContext/ConfigConstructor.config.i
 data/src/share/classes/sun/nio/ch/DatagramSocketAdaptor.java.i
 data/test/sun/nio/cs/ISO8859x.java.i
 data/test/java/io/Serializable/proxy/skipMissing/Write.java.i
-data/src/share/classes/com/sun/media/sound/RIFFInvalidDataException.java.i
-data/src/share/classes/sun/font/TextSource.java.i
+data/src/share/native/java/lang/fdlibm/src/k_cos.c.i
+data/src/share/classes/javax/swing/event/AncestorListener.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalInternalFrameUI.java.i
 data/src/share/classes/sun/awt/image/ByteComponentRaster.java.i
 data/test/java/util/ResourceBundle/awtres.jar.i
-data/src/share/classes/sun/java2d/pipe/hw/AccelSurface.java.i
+data/test/java/util/Arrays/Fill.java.i
 data/test/java/lang/management/MemoryMXBean/MemoryTest.java.i
-data/test/java/io/Serializable/evolution/AddedSuperClass/README.i
+data/src/share/classes/sun/rmi/log/LogOutputStream.java.i
 data/src/share/classes/sun/security/jgss/spi/MechanismFactory.java.i
 data/make/tools/CharsetMapping/MS1252.map.i
-data/make/tools/GenerateCharacter/CharacterDataUndefined.java.template.i
-data/src/share/classes/com/sun/tools/hat/internal/server/FinalizerObjectsQuery.java.i
-data/src/windows/classes/sun/awt/windows/WDesktopProperties.java.i
+data/src/windows/native/sun/java2d/windows/GDIBlitLoops.cpp.i
+data/src/share/classes/com/sun/jdi/connect/LaunchingConnector.java.i
 data/src/share/classes/com/sun/net/httpserver/HttpExchange.java.i
 data/src/solaris/classes/sun/awt/X11/security-icon-yellow48.png.i
-data/src/share/classes/java/io/FileOutputStream.java.i
+data/test/java/security/UnresolvedPermission/DebugPermission1.java.i
 data/src/share/classes/sun/security/krb5/internal/LastReqEntry.java.i
 data/test/javax/sound/midi/Gervill/SoftChannel/NoteOn.java.i
-data/test/java/security/cert/CertificateFactory/invalidEncodedCerts/invalidcert.pem.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_C_INITIALIZE_ARGS.java.i
 data/src/share/classes/javax/swing/event/ChangeListener.java.i
-data/test/java/util/concurrent/ThreadPoolExecutor/ScheduledTickleService.java.i
-data/src/share/native/java/lang/fdlibm/src/e_gamma_r.c.i
 data/src/share/classes/sun/misc/Cleaner.java.i
-data/test/sun/rmi/transport/tcp/blockAccept/TestImpl_Stub.java.i
 data/test/sun/net/www/protocol/jar/GetContentType.java.i
 data/src/share/classes/sun/text/resources/FormatData_ga.java.i
 data/src/share/classes/sun/awt/image/ImageConsumerQueue.java.i
-data/test/javax/sound/midi/Gervill/SoftTuning/Load6.java.i
+data/src/share/native/sun/awt/image/jpeg/jcdctmgr.c.i
 data/make/tools/generatecurrencydata/Makefile.i
+data/test/sun/management/HotspotRuntimeMBean/GetSafepointSyncTime.java.i
 data/src/solaris/classes/sun/awt/X11/security-icon-interim24.png.i
 data/test/sun/security/provider/certpath/ReverseBuilder/mgrM2leadMA.i
-data/test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java.i
+data/src/share/classes/javax/naming/RefAddr.java.i
 data/test/java/io/pathNames/win32/DriveRelativePath.java.i
 data/src/share/classes/javax/swing/text/html/CSSBorder.java.i
 data/make/sun/net/spi/nameservice/dns/Makefile.i
-data/test/javax/crypto/SecretKeyFactory/FailOverTest.java.i
-data/test/java/util/ResourceBundle/Test4300693.java.i
-data/test/java/net/URLConnection/xml/xml4.i
-data/src/share/classes/sun/text/resources/CollationData_fr.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/SignatureAlgorithmSpi.java.i
-data/src/share/classes/sun/reflect/generics/tree/ByteSignature.java.i
+data/src/share/native/sun/security/ec/mpi.h.i
+data/test/java/nio/channels/FileChannel/TryLock.java.i
+data/test/javax/management/MBeanServer/PostExceptionTest.java.i
+data/src/share/classes/sun/java2d/cmm/ProfileActivator.java.i
+data/src/share/native/sun/security/ec/impl/ecl_mult.c.i
 data/make/tools/swing-beans/beaninfo/images/JSeparatorMono32.gif.i
 data/src/share/classes/java/awt/image/renderable/RenderableImageOp.java.i
 data/src/share/classes/com/sun/imageio/plugins/gif/GIFWritableStreamMetadata.java.i
-data/src/share/classes/com/sun/jmx/snmp/agent/SnmpTableEntryNotification.java.i
+data/test/sun/tools/jps/jps-Vvml_Output2.awk.i
 data/test/vm/verifier/VerifyProtectedConstructor.java.i
 data/src/windows/native/common/java_main_md.h.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseError.java.i
 data/make/tools/CharsetMapping/MS1258.map.i
-data/test/sun/security/pkcs11/KeyStore/BasicData/pk1.cert.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_PBE_PARAMS.java.i
 data/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted.java.i
 data/test/sun/net/sdp/Sanity.java.i
-data/src/share/native/sun/java2d/opengl/OGLFuncMacros.h.i
+data/src/share/classes/javax/management/AttributeChangeNotification.java.i
 data/src/share/classes/javax/management/openmbean/KeyAlreadyExistsException.java.i
 data/src/share/classes/sun/tools/asm/SwitchData.java.i
 data/test/java/lang/instrument/classpathAgent.mf.i
-data/test/javax/crypto/Mac/TestGetInstance.java.i
+data/src/share/native/sun/font/layout/DeviceTables.h.i
 data/src/share/classes/com/sun/jndi/ldap/NotifierArgs.java.i
 data/src/share/demo/jvmti/heapTracker/README.txt.i
 data/test/sun/rmi/rmic/defaultStubVersion/G1Impl.java.i
 data/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java.i
-data/test/javax/swing/JFileChooser/6484091/bug6484091.java.i
+data/src/share/classes/java/net/MulticastSocket.java.i
 data/make/tools/swing-beans/beaninfo/images/JTreeMono32.gif.i
-data/test/sun/nio/cs/OLD/EUC_CN_OLD.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_en_SG.properties.i
+data/src/share/classes/java/io/ObjectStreamConstants.java.i
 data/src/share/classes/sun/misc/UUDecoder.java.i
-data/make/modules/tools/src/com/sun/classanalyzer/ModuleConfig.java.i
+data/src/share/classes/sun/nio/cs/SingleByte.java.i
 data/test/java/nio/channels/FileChannel/Write.java.i
 data/test/javax/sound/midi/Gervill/SoftTuning/Load8.java.i
+data/test/sun/rmi/rmic/newrmic/equivalence/AppleEvent.java.i
 data/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java.i
 data/src/share/native/sun/awt/giflib/gif_lib_private.h.i
 data/src/windows/native/sun/windows/awt_Font.h.i
-data/test/java/lang/management/MemoryMXBean/LowMemoryTestParallelGC.sh.i
+data/src/solaris/native/sun/awt/awt_Choice12.c.i
 data/src/solaris/hpi/src/memory_md.c.i
-data/make/tools/CharsetMapping/IBM868.map.i
-data/src/share/classes/sun/reflect/BootstrapConstructorAccessorImpl.java.i
+data/test/sun/security/util/Resources/Format.config.i
 data/make/tools/CharsetMapping/MacRoman.map.i
 data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileAttributes.java.i
-data/test/com/sun/jdi/EnumTest.java.i
+data/test/sun/tools/jstat/jstatCompilerOutput1.sh.i
 data/test/java/util/concurrent/ScheduledThreadPoolExecutor/DelayOverflow.java.i
-data/src/share/classes/sun/net/NetworkClient.java.i
+data/src/share/classes/javax/swing/ArrayTable.java.i
 data/test/java/rmi/activation/Activatable/checkImplClassLoader/ActivatableImpl_Stub.java.i
 data/test/java/security/cert/CertificateFactory/invalidEncodedCerts/DetectInvalidEncoding.java.i
-data/test/sun/tools/jhat/hprof.bin.i
+data/make/tools/swing-beans/beaninfo/BeanInfoUtils.java.i
 data/src/share/classes/com/sun/media/sound/AbstractMixer.java.i
 data/src/share/classes/javax/print/Doc.java.i
 data/src/share/classes/sun/security/ssl/EngineInputRecord.java.i
-data/src/share/classes/sun/font/TextLineComponent.java.i
+data/src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServerBuilder.java.i
 data/src/windows/classes/sun/awt/windows/WKeyboardFocusManagerPeer.java.i
-data/src/share/classes/java/beans/XMLEncoder.java.i
+data/test/java/nio/channels/ServerSocketChannel/AdaptServerSocket.java.i
 data/src/windows/native/sun/java2d/windows/RegistryKey.h.i
 data/make/sun/rmi/cgi/Makefile.i
 data/src/share/classes/java/rmi/dgc/VMID.java.i
 data/src/share/classes/javax/swing/PopupFactory.java.i
-data/src/share/classes/sun/text/resources/CollationData_en.java.i
-data/src/share/classes/com/sun/imageio/plugins/png/RowFilter.java.i
+data/test/java/security/Policy/GetInstance/GetInstanceSecurity.java.i
+data/src/share/classes/javax/swing/JRootPane.java.i
 data/src/share/classes/com/sun/media/sound/MidiUtils.java.i
 data/src/share/classes/sun/security/ssl/SunJSSE.java.i
-data/test/java/rmi/reliability/benchmark/bench/serial/StreamBuffer.java.i
-data/src/share/classes/java/awt/peer/PanelPeer.java.i
-data/src/share/classes/sun/rmi/server/resources/rmid_zh_TW.properties.i
+data/test/javax/management/modelmbean/AddAttributeChangeNotificationListenerTest.java.i
+data/src/solaris/classes/sun/awt/motif/MCustomCursor.java.i
 data/test/org/openjdk/jigsaw/_JigsawVersion.java.i
 data/src/share/classes/javax/swing/text/html/LineView.java.i
 data/src/share/classes/sun/security/ssl/SessionId.java.i
 data/src/solaris/classes/sun/awt/X11/XDropTargetEventProcessor.java.i
 data/src/share/native/sun/java2d/loops/ByteGray.c.i
 data/test/java/net/MulticastSocket/TimeToLive.java.i
-data/src/share/classes/sun/text/resources/FormatData_lv_LV.java.i
-data/test/sun/management/jmxremote/bootstrap/rmiregistryssl.properties.i
-data/test/sun/security/tools/jarsigner/concise_jarsigner.sh.i
+data/src/share/classes/sun/text/resources/FormatData_pl.java.i
+data/src/solaris/classes/sun/awt/motif/MLabelPeer.java.i
 data/src/share/classes/com/sun/pept/ept/MessageInfo.java.i
-data/test/sun/security/provider/PolicyParser/UnresolvedProperty.policy.i
+data/src/share/classes/sun/security/provider/certpath/Vertex.java.i
 data/src/share/classes/javax/imageio/stream/MemoryCacheImageInputStream.java.i
 data/test/java/security/PermissionCollection/AddToReadOnlyPermissionCollection.java.i
 data/test/java/beans/PropertyEditor/TestEnumClassJava.java.i
-data/test/java/text/Format/DateFormat/Bug4396385.java.i
+data/src/share/native/java/lang/Runtime.c.i
 data/make/tools/reorder/tools/remove_mcount.c.i
-data/src/share/classes/javax/print/attribute/HashPrintJobAttributeSet.java.i
+data/make/tools/CharsetMapping/IBM1141.c2b.i
 data/make/tools/swing-beans/beaninfo/images/JTableMono16.gif.i
 data/src/share/classes/java/util/concurrent/CopyOnWriteArrayList.java.i
+data/test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.sh.i
+data/src/share/classes/sun/nio/ch/FileLockImpl.java.i
 data/src/share/classes/javax/swing/text/rtf/Constants.java.i
 data/src/share/demo/management/FullThreadDump/FullThreadDump.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_de.properties.i
 data/src/share/classes/java/security/cert/CertPathBuilderException.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/Floats.java.i
+data/src/share/demo/nbproject/management/JTop/nbproject/project.xml.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassListWriter.java.i
 data/src/share/native/java/lang/fdlibm/src/s_copysign.c.i
 data/make/sun/security/action/Makefile.i
 data/test/demo/jvmti/heapViewer/HeapViewerTest.java.i
-data/make/sun/awt/mawt.gmk.i
+data/src/solaris/native/sun/awt/VDrawingArea.c.i
+data/test/java/util/ResourceBundle/Test4314141B_en.properties.i
+data/src/windows/native/sun/windows/security_warning_int.ico.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/MissingResourceFailureException.java.i
-data/test/sun/nio/cs/EucJpLinuxDecoderRecoveryTest.java.i
-data/test/sun/net/www/protocol/http/SetIfModifiedSince.java.i
-data/src/share/classes/java/lang/VirtualMachineError.java.i
+data/make/tools/swing-beans/beaninfo/images/JMenuBarColor32.gif.i
+data/src/share/native/sun/awt/medialib/mlib_ImageAffineEdge.c.i
 data/src/share/classes/sun/nio/cs/ext/ISO2022_JP_2.java.i
 data/src/share/classes/java/util/concurrent/ConcurrentSkipListSet.java.i
 data/src/share/classes/java/text/spi/DateFormatProvider.java.i
-data/test/sun/net/www/protocol/http/ProxyTunnelServer.java.i
-data/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java.i
+data/test/java/io/Serializable/PutField/Write.java.i
 data/src/share/back/debugInit.c.i
+data/test/sun/nio/cs/EUC_TW_OLD.java.i
 data/test/demo/jvmti/hprof/DefineClass.java.i
-data/test/java/lang/StringBuffer/SetLength.java.i
-data/src/share/classes/sun/management/MethodInfo.java.i
+data/src/share/classes/sun/print/resources/oneside.png.i
+data/test/sun/net/InetAddress/nameservice/B6442088.java.i
 data/test/javax/swing/JSlider/6742358/bug6742358.html.i
-data/src/share/classes/java/text/CollationRules.java.i
+data/test/java/beans/XMLEncoder/javax_swing_plaf_ColorUIResource.java.i
 data/src/share/native/java/util/zip/zlib-1.2.3/README.i
 data/test/java/nio/channels/SocketChannel/BigReadWrite.java.i
 data/src/share/classes/java/util/SimpleTimeZone.java.i
-data/test/java/lang/management/ClassLoadingMXBean/LoadCounts.java.i
-data/src/share/classes/sun/nio/cs/CharsetMapping.java.i
+data/test/java/rmi/activation/CommandEnvironment/group.security.policy.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/jibxhelpers/ColorMapper.java.i
-data/test/java/security/cert/pkix/nameConstraintsMinMax/labs2isrg2.cer.i
 data/test/javax/sound/midi/Gervill/ModelDestination/NewModelDestinationModelIdentifier.java.i
 data/make/tools/src/build/tools/dirdiff/DirDiff.java.i
 data/test/javax/xml/crypto/dsig/data/signature-keyname.xml.i
 data/make/docs/NON_CORE_PKGS.gmk.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/StorageResolverSpi.java.i
+data/src/solaris/classes/sun/awt/X11/security-icon-yellow24.png.i
 data/test/java/util/Locale/serialized/java6locale_en_US_Java.i
 data/test/javax/print/attribute/Chroma.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipher.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties.i
-data/test/javax/security/auth/login/Configuration/Synchronize.config.i
+data/src/share/classes/com/sun/tools/jdi/LineInfo.java.i
 data/src/solaris/native/java/net/PlainSocketImpl.c.i
 data/src/share/classes/java/beans/beancontext/BeanContextServiceProviderBeanInfo.java.i
 data/make/common/Defs-linux.gmk.i
 data/src/share/classes/sun/net/httpserver/HttpError.java.i
 data/src/share/classes/javax/management/BadBinaryOpValueExpException.java.i
-data/src/share/classes/javax/swing/plaf/metal/MetalButtonUI.java.i
+data/src/share/classes/sun/tools/jconsole/ClassTab.java.i
+data/src/share/classes/javax/imageio/event/IIOWriteWarningListener.java.i
 data/test/java/io/ObjectInputStream/ResolveProxyClass.java.i
 data/test/java/nio/channels/ServerSocketChannel/NonBlockingAccept.java.i
 data/src/share/classes/sun/reflect/generics/reflectiveObjects/LazyReflectiveObjectGenerator.java.i
 data/src/share/classes/sun/management/HotspotRuntime.java.i
 data/src/share/classes/sun/swing/plaf/synth/SynthIcon.java.i
-data/src/share/classes/com/sun/jdi/request/StepRequest.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libsoftokn3.so.d
 data/src/solaris/classes/sun/nio/ch/EPollSelectorProvider.java.i
 data/test/java/beans/XMLEncoder/java_awt_GradientPaint.java.i
-data/src/share/classes/java/util/jar/Manifest.java.i
+data/test/java/awt/Paint/PgramUserBoundsTest.java.i
+data/src/windows/native/sun/windows/awt_DataTransferer.h.i
+data/test/java/util/ResourceBundle/Control/PrivateConstructorRB.java.i
 data/test/java/util/concurrent/CyclicBarrier/Basic.java.i
-data/test/sun/security/ssl/sanity/pluggability/MySSLSocketFacImpl.java.i
-data/src/share/demo/jvmti/agent_util/agent_util.h.i
+data/src/share/classes/sun/management/VMManagement.java.i
+data/src/share/classes/sun/io/CharToByteCp970.java.i
 data/src/share/classes/sun/rmi/server/resources/rmid_ko.properties.i
 data/test/java/awt/Toolkit/Headless/ExceptionContract/ExceptionContract.java.i
 data/test/java/rmi/activation/Activatable/checkAnnotations/rmid.security.policy.i
 data/make/tools/CharsetMapping/HKSCS2001.map.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/package.html.i
 data/src/share/classes/sun/text/resources/FormatData_ca_ES.java.i
-data/test/java/security/cert/PolicyNode/GetPolicyQualifiers.java.i
 data/src/share/classes/sun/security/pkcs11/P11SecureRandom.java.i
-data/src/share/classes/sun/font/ScriptRun.java.i
+data/src/share/classes/sun/security/acl/PrincipalImpl.java.i
 data/src/windows/native/sun/jkernel/kernel_ja.rc.i
 data/src/share/classes/sun/java2d/pipe/CompositePipe.java.i
 data/src/share/classes/sun/tools/tree/Node.java.i
-data/test/com/sun/servicetag/environ.properties.i
+data/src/share/classes/java/beans/PropertyChangeSupport.java.i
 data/src/share/demo/jfc/CodePointIM/README_ja.html.i
 data/src/share/classes/com/sun/media/sound/DLSSoundbank.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/report/HTMLSeriesReporter.java.i
+data/test/javax/management/modelmbean/SimpleModelMBean/policy.i
 data/src/share/classes/sun/tools/java/AmbiguousMember.java.i
 data/src/share/classes/sun/security/krb5/internal/util/KrbDataOutputStream.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipherParameters.java.i
-data/src/share/classes/org/openjdk/jigsaw/Launcher.java.i
+data/test/java/lang/Class/IsEnum.java.i
 data/src/share/classes/javax/accessibility/AccessibleHypertext.java.i
-data/test/java/awt/Robot/CtorTest/CtorTest.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_en_IE.properties.i
+data/test/java/awt/font/TextLayout/TestSinhalaChar.java.i
+data/src/share/classes/sun/java2d/pisces/Renderer.java.i
 data/src/share/classes/javax/swing/table/TableStringConverter.java.i
+data/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java.i
 data/src/share/classes/sun/tools/javac/Main.java.i
 data/src/share/classes/java/security/Policy.java.i
 data/src/share/native/sun/font/layout/LigatureSubstSubtables.cpp.i
 data/src/share/classes/sun/awt/geom/CurveLink.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU16S16Func.c.i
 data/src/share/native/sun/java2d/cmm/lcms/lcms2_internal.h.i
 data/src/share/classes/sun/io/CharToByteCp1140.java.i
 data/test/java/security/testlibrary/CertUtils.java.i
 data/make/mkdemo/nio/Makefile.i
-data/src/share/native/sun/font/layout/KhmerReordering.cpp.i
-data/test/javax/sound/midi/Gervill/ModelIdentifier/SetObject.java.i
+data/src/solaris/native/sun/java2d/loops/mlib_ImageZoom_NN.c.i
+data/make/tools/swing-beans/beaninfo/images/JComboBoxColor32.gif.i
 data/src/share/classes/sun/print/psfont.properties.ja.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmMemGCTableMeta.java.i
 data/make/mkdemo/applets/DitherTest/Makefile.i
 data/test/java/awt/geom/CubicCurve2D/ContainsTest.java.i
-data/src/windows/hpi/src/sys_api_md.c.i
-data/src/share/back/StringReferenceImpl.c.i
-data/src/linux/doc/man/ja/jstatd.1.i
+data/test/java/beans/XMLEncoder/Test6256805.java.i
+data/src/share/classes/sun/java2d/pipe/RenderBuffer.java.i
+data/src/share/classes/java/util/jar/package.html.i
 data/make/com/sun/jndi/rmi/registry/Makefile.i
 data/src/share/javavm/export/jmm.h.i
 data/src/share/classes/java/nio/channels/AsynchronousChannelGroup.java.i
 data/src/share/classes/sun/swing/text/CompoundPrintable.java.i
-data/src/share/classes/javax/security/sasl/package.html.i
+data/test/java/beans/PropertyEditor/TestByteClassNull.java.i
 data/make/netbeans/swing/nbproject/project.xml.i
 data/make/com/sun/inputmethods/thaiim/Makefile.i
 data/src/share/classes/sun/tools/java/SyntaxError.java.i
@@ -13482,58 +13238,57 @@ data/src/share/native/sun/java2d/cmm/lcms/lcms2_plugin.h.i
 data/src/windows/classes/sun/management/FileSystemImpl.java.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/Files.java.i
 data/test/sun/security/pkcs11/sslecc/JSSEServer.java.i
-data/test/java/lang/management/MemoryMXBean/Pending.java.i
+data/test/sun/nio/cs/OLD/GBK_OLD.java.i
 data/src/share/classes/com/sun/nio/sctp/HandlerResult.java.i
 data/src/share/demo/scripting/jconsole-plugin/src/scripts/sysprops.js.i
 data/test/java/util/ResourceBundle/Control/StressOut_en_CA.properties.i
 data/test/java/lang/management/CompositeData/MemoryUsageCompositeData.java.i
 data/src/share/classes/sun/tools/tree/ExpressionStatement.java.i
-data/test/java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java.i
+data/test/sun/tools/jstat/jstatLineCounts1.sh.i
 data/test/java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java.i
-data/src/share/classes/java/beans/SimpleBeanInfo.java.i
+data/src/share/classes/java/awt/event/InputEvent.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/dk/AesDkCrypto.java.i
 data/src/share/classes/java/awt/event/AWTEventListenerProxy.java.i
 data/src/linux/doc/man/ja/unpack200.1.i
-data/src/share/classes/com/sun/tools/example/debug/bdi/VMLaunchFailureException.java.i
+data/src/solaris/native/sun/awt/awt_KeyboardFocusManager.c.i
 data/src/share/classes/sunw/util/EventListener.java.i
 data/test/java/nio/channels/AsynchronousChannelGroup/Unbounded.java.i
 data/src/linux/doc/man/ja/ktab.1.i
-data/test/java/rmi/activation/Activatable/elucidateNoSuchMethod/ElucidateNoSuchMethod_Stub.java.i
-data/test/java/awt/Modal/SupportedTest/SupportedTest.java.i
+data/test/java/util/ResourceBundle/KeySetResources_ja_JP.properties.i
 data/make/tools/dtdbuilder/dtds/HTMLsymbol.sgml.i
-data/test/java/util/concurrent/ConcurrentLinkedQueue/LoopHelpers.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_es_SV.properties.i
 data/src/solaris/native/sun/nio/fs/SolarisNativeDispatcher.c.i
 data/make/netbeans/awt2d/build.xml.i
 data/src/share/classes/sun/rmi/rmic/newrmic/Constants.java.i
-data/src/share/classes/sun/misc/resources/Messages.java.i
-data/src/share/demo/jvmti/hprof/hprof_site.c.i
+data/src/share/classes/com/sun/jndi/dns/ResourceRecords.java.i
+data/test/java/io/Serializable/duplicateSerialFields/Test.java.i
 data/src/share/demo/jfc/Metalworks/PropertiesMetalTheme.java.i
-data/test/javax/imageio/CachePremissionsTest/CachePermissionsTest.java.i
-data/test/javax/swing/border/Test6978482.java.i
-data/src/share/classes/com/sun/nio/sctp/Notification.java.i
+data/src/share/classes/java/util/prefs/package.html.i
+data/src/share/classes/sun/nio/ch/SimpleAsynchronousFileChannelImpl.java.i
 data/src/share/classes/com/sun/tools/example/debug/tty/MessageOutput.java.i
 data/src/share/classes/sun/nio/cs/MS1252.java.i
 data/src/share/classes/sun/text/resources/FormatData_fi_FI.java.i
 data/test/sun/nio/cs/HWKatakanaMS932EncodeTest.java.i
 data/src/share/classes/sun/net/www/protocol/jar/Handler.java.i
+data/src/share/classes/sun/rmi/transport/tcp/TCPConnection.java.i
 data/src/share/classes/sun/nio/cs/ArrayEncoder.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/AppleUserImpl.java.i
 data/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Utils.h.i
 data/src/share/native/sun/awt/medialib/mlib_ImageAffine_BC_S32.c.i
 data/src/share/classes/javax/sound/sampled/spi/package.html.i
 data/src/solaris/classes/sun/management/FileSystemImpl.java.i
-data/test/java/net/Socket/GetLocalAddress.java.i
-data/test/java/net/MulticastSocket/B6427403.java.i
-data/src/share/classes/javax/swing/plaf/ProgressBarUI.java.i
+data/test/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.sh.i
+data/src/share/native/sun/java2d/SurfaceData.c.i
 data/make/com/sun/tools/attach/mapfile-solaris.i
-data/test/sun/tools/native2ascii/A2N_4630463.i
 data/src/share/native/sun/font/layout/GXLayoutEngine.h.i
 data/test/java/nio/Buffer/Chew.java.i
-data/make/tools/swing-beans/beaninfo/images/JCheckBoxMenuItemColor32.gif.i
+data/test/java/beans/Introspector/4520754/FooBarBeanInfo.java.i
+data/test/com/sun/jdi/DeferredStepTest.sh.i
+data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/CompressOutputStream.java.i
 data/src/share/demo/jfc/Notepad/resources/Notepad_zh_CN.properties.i
-data/make/netbeans/jarzip/README.i
+data/src/share/classes/javax/print/MimeType.java.i
 data/test/java/util/Vector/CopyInto.java.i
-data/test/sun/nio/cs/StreamEncoderClose.java.i
+data/src/share/classes/java/awt/image/Raster.java.i
 data/src/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthSequence.java.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/ShowDeps.java.i
 data/test/java/util/Collections/T6433170.java.i
@@ -13542,7 +13297,7 @@ data/test/java/net/Authenticator/Deadlock.java.i
 data/src/share/classes/sun/java2d/loops/FillPath.java.i
 data/test/java/nio/charset/spi/FooCharset.java.i
 data/src/share/classes/javax/swing/plaf/SliderUI.java.i
-data/test/com/sun/security/auth/callback/TextCallbackHandler/Confirm.java.i
+data/src/share/classes/java/awt/dnd/DragSourceMotionListener.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties.i
 data/make/mkdemo/jfc/SampleTree/Makefile.i
 data/test/java/util/jar/JarEntry/GetMethodsReturnClones.java.i
@@ -13553,7 +13308,7 @@ data/src/share/classes/sun/net/httpserver/Request.java.i
 data/src/share/classes/sun/dyn/DirectMethodHandle.java.i
 data/src/share/classes/javax/swing/JSeparator.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneUI.java.i
-data/src/share/classes/sun/java2d/pipe/TextRenderer.java.i
+data/test/java/beans/PropertyEditor/TestFloatTypeJava.java.i
 data/src/share/classes/sun/font/DelegatingShape.java.i
 data/src/share/sample/nio/server/AcceptHandler.java.i
 data/make/sun/javazic/tzdata/zone.tab.i
@@ -13562,18 +13317,21 @@ data/test/java/text/Bidi/Bug7041232.java.i
 data/test/com/sun/servicetag/InstanceUrnCheck.java.i
 data/src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c.i
 data/src/share/classes/sun/security/util/DerEncoder.java.i
-data/test/javax/management/remote/mandatory/subjectDelegation/policy22.i
+data/test/sun/nio/cs/TestISO2022JPSubBytes.java.i
 data/src/share/classes/sun/io/CharToByteHKSCS_2001.java.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/BooleanArrayCalls.java.i
 data/make/mkdemo/jfc/TransparentRuler/Makefile.i
 data/src/share/classes/sun/security/jca/JCAUtil.java.i
 data/src/share/native/java/lang/fdlibm/src/s_cbrt.c.i
-data/src/share/classes/com/sun/jmx/namespace/package.html.i
+data/src/share/classes/com/sun/jmx/defaults/package.html.i
+data/src/share/classes/javax/management/event/EventForwarder.java.i
+data/src/share/classes/java/security/PublicKey.java.i
 data/src/share/demo/nbproject/jfc/Font2DTest/nbproject/project.xml.i
 data/src/share/classes/sun/io/CharToByteMacUkraine.java.i
 data/src/share/classes/sun/security/krb5/EncryptionKey.java.i
 data/src/solaris/classes/sun/nio/fs/SolarisWatchService.java.i
 data/src/share/classes/com/sun/crypto/provider/DESedeCrypt.java.i
-data/test/java/util/Formatter/BasicShort.java.i
+data/src/share/classes/javax/naming/ReferralException.java.i
 data/src/share/native/sun/font/glyphblitting.h.i
 data/src/share/classes/sun/management/counter/perf/Prologue.java.i
 data/test/demo/jvmti/hprof/MonitorTest.java.i
@@ -13583,15 +13341,18 @@ data/src/share/classes/sun/tracing/ProbeSkeleton.java.i
 data/test/com/sun/jndi/ldap/BalancedParentheses.java.i
 data/test/java/rmi/reliability/scripts/run_rmibench.ksh.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ja.properties.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageFilters.h.i
+data/src/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java.i
 data/test/java/io/File/basic.sh.i
 data/src/share/sample/jmx/jmx-scandir/docfiles/connect-local-java-jar.jpg.i
 data/test/java/io/Serializable/packageAccess/B.java.i
+data/src/share/classes/sun/awt/HeadlessToolkit.java.i
 data/test/java/util/TimeZone/Bug6772689.java.i
 data/test/java/nio/charset/coders/ref.shift_jis.i
+data/src/share/classes/javax/swing/text/ParagraphView.java.i
 data/src/share/classes/sun/nio/cs/ext/MacArabic.java.i
 data/src/share/back/FrameID.c.i
 data/test/java/nio/Buffer/CopyDirectLongMemory.java.i
+data/src/windows/classes/sun/java2d/windows/WinBackBuffer.java.i
 data/src/share/classes/com/sun/tools/script/shell/messages.properties.i
 data/src/share/native/java/lang/fdlibm/src/e_sqrt.c.i
 data/test/java/util/zip/ZipFile/FinalizeInflater.java.i
@@ -13599,110 +13360,108 @@ data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/pac
 data/test/java/nio/file/Path/TemporaryFiles.java.i
 data/src/share/classes/java/security/interfaces/DSAPublicKey.java.i
 data/src/share/classes/sun/misc/JavaxSecurityAuthKerberosAccess.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformXSLT.java.i
-data/test/java/security/PrivilegedActionException/PrintWrappedException.java.i
-data/src/share/classes/sun/io/CharToByteUnicodeLittle.java.i
-data/test/sun/net/www/http/HttpClient/OpenServer.policy.i
+data/src/share/classes/java/lang/OutOfMemoryError.java.i
+data/test/java/net/URLConnection/UNCTest.sh.i
+data/test/java/net/InetAddress/GetLocalHostWithSM.java.i
 data/src/share/classes/sun/io/ByteToCharISO8859_15.java.i
-data/test/sun/tools/jstat/jstatHelp.sh.i
 data/src/windows/native/sun/windows/awt_Toolkit.cpp.i
-data/test/javax/naming/ldap/LdapName/RdnMisc.java.i
 data/src/share/lib/cmm/lcms/LINEAR_RGB.pf.i
 data/test/javax/sound/midi/Gervill/ModelByteBuffer/LoadAll.java.i
-data/src/share/classes/sun/security/jgss/krb5/WrapToken_v2.java.i
+data/src/share/classes/sun/security/x509/CertificatePolicyMap.java.i
 data/test/com/sun/crypto/provider/Cipher/DES/TestUtility.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/XPathFilterCHGPContainer.java.i
 data/test/java/lang/String/Regex.java.i
 data/src/share/classes/sun/io/CharToByteCp1123.java.i
 data/src/share/classes/javax/print/attribute/standard/PrinterMoreInfo.java.i
 data/test/java/lang/instrument/ExampleForBootClassPath.java.i
-data/src/share/classes/javax/swing/JWindow.java.i
+data/src/share/demo/jfc/Notepad/resources/Notepad_ja.properties.i
+data/test/com/sun/jdi/BreakpointWithFullGC.sh.i
 data/test/java/beans/Introspector/Test4274639.java.i
 data/src/share/native/sun/font/layout/AlternateSubstSubtables.cpp.i
 data/test/java/lang/management/RuntimeMXBean/PropertiesTest.java.i
 data/test/sun/security/util/BigInt/BigIntEqualsHashCode.java.i
-data/src/share/classes/com/sun/java/util/jar/pack/PropMap.java.i
-data/test/org/openjdk/jigsaw/optional-deps.sh.i
-data/test/java/util/Locale/bug6277243.java.i
+data/test/java/lang/annotation/Missing/B.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/CheckNullEntity.java.i
 data/test/java/beans/Introspector/4750368/Test4750368.java.i
 data/src/share/classes/sun/tools/jstat/OptionFormat.java.i
-data/make/common/Program.gmk.i
+data/src/solaris/classes/sun/font/XMap.java.i
 data/src/solaris/native/sun/java2d/opengl/OGLFuncs_md.h.i
 data/test/sun/security/tools/jarsigner/JavaApplication1.jar.i
-data/test/java/lang/instrument/bootreporter/StringIdCallbackReporter.java.i
+data/src/share/classes/com/sun/crypto/provider/DESParameters.java.i
 data/src/share/classes/com/sun/crypto/provider/ElectronicCodeBook.java.i
 data/src/share/classes/sun/java2d/opengl/OGLRenderQueue.java.i
-data/test/java/rmi/reliability/benchmark/bench/Makefile.i
-data/src/share/classes/java/security/UnrecoverableKeyException.java.i
+data/src/share/classes/javax/swing/event/AncestorEvent.java.i
+data/test/java/net/URLClassLoader/getresourceasstream/test.jar.i
 data/test/javax/management/Introspector/UnregisterMBeanExceptionTest.java.i
 data/test/java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html.i
 data/src/share/classes/sun/util/resources/CalendarData_es_ES.properties.i
-data/test/sun/management/HotspotClassLoadingMBean/GetMethodDataSize.java.i
 data/src/share/classes/javax/imageio/ImageIO.java.i
 data/test/sun/nio/cs/OLD/IBM935_OLD.java.i
-data/src/share/classes/sun/text/CodePointIterator.java.i
-data/test/java/awt/Color/OpacityChange/OpacityChange.java.i
+data/test/sun/rmi/transport/tcp/blockAccept/TestImpl_Stub.java.i
+data/src/share/classes/javax/print/StreamPrintServiceFactory.java.i
 data/test/java/net/Socket/asyncClose/Socket_getInputStream_read.java.i
+data/make/sun/security/jgss/wrapper/Makefile.i
 data/test/com/sun/security/auth/module/KeyStoreLoginModule/ReadOnly.java.i
+data/src/share/classes/javax/crypto/CipherInputStream.java.i
 data/src/share/classes/javax/print/MultiDoc.java.i
 data/src/share/back/SDE.c.i
 data/src/share/classes/javax/swing/plaf/multi/MultiMenuItemUI.java.i
-data/src/solaris/doc/sun/man/man1/jstat.1.i
 data/src/solaris/demo/jvmti/hprof/hprof_md.c.i
+data/test/javax/swing/text/html/TableView/7030332/sample1.png.i
 data/test/sun/security/mscapi/SignUsingSHA2withRSA.sh.i
 data/make/mkdemo/jfc/Laffy/Makefile.i
-data/src/share/classes/sun/util/logging/PlatformLogger.java.i
 data/src/share/classes/sun/io/CharToByteISO8859_1.java.i
-data/src/share/classes/java/lang/IncompatibleClassChangeError.java.i
-data/src/share/classes/sun/nio/cs/ext/IBM1148.java.i
-data/test/java/awt/xembed/server/RunTestXEmbed.java.i
+data/src/share/classes/java/io/FileSystem.java.i
+data/test/java/net/URLDecoder/EncodeDecode.java.i
+data/src/share/classes/java/util/ArrayDeque.java.i
 data/src/share/classes/sun/util/locale/BaseLocale.java.i
 data/test/javax/swing/UIDefaults/6622002/bug6622002.java.i
 data/src/share/classes/java/lang/ArrayStoreException.java.i
 data/src/share/native/sun/awt/image/awt_ImageRep.c.i
 data/test/java/awt/GraphicsEnvironment/LoadLock/GE_init3.java.i
 data/src/share/classes/java/util/Vector.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_es_DO.properties.i
+data/src/share/classes/sun/security/x509/CertificateExtensions.java.i
 data/src/solaris/native/sun/awt/awt_Canvas.c.i
 data/test/com/sun/jdi/MultiBreakpointsTest.java.i
 data/test/java/beans/PropertyEditor/Test6963811.java.i
 data/test/sun/java2d/cmm/ColorConvertOp/CIEXYZ.png.i
 data/test/com/sun/jdi/InstanceFilter.java.i
 data/src/share/classes/javax/swing/doc-files/JScrollPane-1.gif.i
-data/src/share/native/common/jlong.h.i
+data/test/java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java.i
 data/test/java/util/ResourceBundle/Test4314141A_.properties.i
+data/src/share/classes/sun/security/krb5/internal/KRBCred.java.i
 data/src/share/classes/java/awt/doc-files/CheckboxGroup-1.gif.i
-data/test/java/beans/Introspector/6380849/beans/FirstBean.java.i
+data/src/share/classes/sun/security/jgss/krb5/Krb5Util.java.i
 data/make/common/shared/Defs-utils.gmk.i
 data/src/windows/hpi/export/io_md.h.i
 data/src/share/classes/sun/security/x509/CertAndKeyGen.java.i
-data/src/share/classes/sun/security/provider/SHA.java.i
+data/src/share/classes/sun/security/krb5/Confounder.java.i
 data/src/share/classes/sun/misc/LRUCache.java.i
 data/test/javax/management/modelmbean/DescriptorSupportTest.java.i
-data/test/sun/tools/jstatd/jstatdDefaults.sh.i
-data/test/java/rmi/activation/CommandEnvironment/NullOptions.java.i
+data/make/tools/src/build/tools/jdwpgen/ArrayObjectTypeNode.java.i
 data/src/share/classes/javax/xml/crypto/dsig/spec/SignatureMethodParameterSpec.java.i
 data/make/mkdemo/scripting/jconsole-plugin/Makefile.i
 data/src/share/classes/sun/security/ssl/DefaultSSLContextImpl.java.i
 data/src/share/native/sun/security/ec/ec2_193.c.i
 data/src/share/classes/sun/text/resources/FormatData_fr.java.i
-data/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java.i
-data/src/share/demo/jfc/CodePointIM/resources/codepoint.properties.i
+data/test/java/lang/management/PlatformLoggingMXBean/PlatformLoggingMXBeanTest.java.i
 data/test/javax/crypto/spec/DESKeySpec/NullKey.java.i
 data/test/java/beans/XMLEncoder/javax_swing_Box_Filler.java.i
 data/make/sun/security/ec/Makefile.i
 data/src/solaris/classes/sun/awt/motif/X11Dingbats.java.i
 data/test/sun/nio/cs/Test4200310.sh.i
-data/src/share/classes/sun/io/ByteToCharCp424.java.i
+data/test/java/io/charStreams/RandomLines.java.i
+data/src/share/classes/com/sun/media/sound/StandardMidiFileReader.java.i
 data/src/share/classes/java/util/concurrent/ExecutorService.java.i
-data/src/share/classes/javax/naming/ldap/HasControls.java.i
+data/test/com/sun/tools/attach/SimpleProvider.java.i
 data/src/share/classes/java/awt/event/PaintEvent.java.i
-data/src/share/classes/sun/reflect/UnsafeQualifiedStaticShortFieldAccessorImpl.java.i
+data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/DirectoryScannerConfig.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyValue.java.i
-data/src/share/classes/javax/security/auth/login/AccountNotFoundException.java.i
-data/src/share/classes/sun/io/CharToByteEUC_CN.java.i
+data/test/javax/management/monitor/MBeanServerForwarderInvocationHandler.java.i
+data/make/tools/swing-beans/beaninfo/images/JButtonMono32.gif.i
+data/src/share/sample/scripting/scriptpad/src/resources/conc.js.i
 data/test/java/io/Serializable/longString/mesg.ser.i
-data/make/netbeans/common/closed-share-sources.ent.i
+data/test/javax/swing/JColorChooser/Test6348456.java.i
 data/test/java/awt/print/PrinterJob/ValidatePage/ValidatePage.java.i
 data/test/javax/imageio/metadata/DOML3Node.java.i
 data/src/share/classes/sun/reflect/UnsafeStaticBooleanFieldAccessorImpl.java.i
@@ -13713,318 +13472,315 @@ data/src/share/classes/com/sun/jdi/ClassObjectReference.java.i
 data/test/sun/security/krb5/etype/weakcrypto.conf.i
 data/test/javax/swing/JSlider/6579827/bug6579827.java.i
 data/test/java/lang/management/PlatformLoggingMXBean/LoggingMXBeanTest.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/CipherReference.java.i
+data/test/java/rmi/activation/Activatable/extLoadedImpl/security.policy.i
 data/src/share/classes/java/rmi/server/ExportException.java.i
-data/make/tools/CharsetMapping/IBM420.map.i
+data/test/sun/misc/URLClassPath/ClassnameCharTest.java.i
 data/src/share/classes/javax/naming/directory/SearchResult.java.i
 data/src/share/classes/javax/swing/BufferStrategyPaintManager.java.i
 data/src/windows/native/sun/java2d/d3d/D3DUtils.cpp.i
 data/make/com/sun/java/pack/mapfile-vers.i
 data/src/share/classes/sun/tools/tree/Expression.java.i
-data/test/com/sun/jdi/redefine/Different_RedefineSubTarg.java.i
 data/src/share/sample/nio/multicast/Reader.java.i
 data/test/java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html.i
 data/src/share/classes/sun/nio/cs/ext/IBM948.java.d
 data/src/share/classes/javax/swing/undo/StateEdit.java.i
-data/src/share/classes/com/sun/jdi/LongType.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/InterruptedIO.java.i
+data/make/tools/CharsetMapping/IBM420.map.i
 data/src/share/native/sun/font/layout/GlyphPositioningTables.cpp.i
 data/src/share/native/sun/java2d/loops/UshortIndexed.h.i
 data/test/java/net/DatagramSocket/Send12k.java.i
-data/src/solaris/classes/sun/awt/motif/MButtonPeer.java.i
+data/test/java/nio/channels/Selector/LotsOfUpdates.java.i
 data/src/share/classes/java/lang/module/Dependence.java.i
 data/test/java/beans/PropertyEditor/TestStringClass.java.i
-data/src/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java.i
+data/src/windows/native/sun/java2d/windows/dxCapabilities.cpp.i
 data/src/share/demo/jvmti/hprof/hprof_io.h.i
-data/src/share/classes/com/sun/jndi/cosnaming/CorbanameUrl.java.i
-data/test/java/rmi/transport/handshakeFailure/HandshakeFailure.java.i
-data/test/java/rmi/server/RemoteServer/setLogPermission/SetLogPermission.java.i
+data/test/java/net/Inet6Address/serialize/Readme.txt.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/FloatCalls.java.i
 data/src/share/classes/sun/nio/cs/ext/MS1258.java.i
 data/test/com/sun/jndi/rmi/registry/RegistryContext/UnbindIdempotent.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_MX.properties.i
 data/src/share/native/com/sun/media/sound/Ports.h.i
-data/test/java/beans/XMLDecoder/spec/TestNew.java.i
+data/test/java/util/Locale/bug6277243.java.i
 data/src/share/classes/com/sun/security/auth/NTNumericCredential.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_PR.properties.i
-data/test/javax/swing/JSlider/4252173/bug4252173.java.i
+data/make/mksample/nio/file/Makefile.i
 data/src/share/classes/javax/management/MBeanTrustPermission.java.i
 data/test/java/beans/Introspector/Test4935607.java.i
-data/test/java/awt/Cursor/PredefinedPrivate/PredefinedPrivate.java.i
 data/src/share/classes/javax/print/attribute/AttributeSetUtilities.java.i
-data/test/javax/sound/midi/Gervill/RiffReaderWriter/HasNextChunk.java.i
+data/src/share/classes/java/util/TimerTask.java.i
+data/test/java/rmi/reliability/benchmark/bench/serial/manifest.i
 data/src/share/classes/java/lang/Byte.java.i
 data/src/solaris/classes/sun/awt/X11/generator/functions.txt.i
-data/test/java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.java.i
+data/test/java/util/logging/AnonLoggerWeakRefLeak.java.i
 data/test/javax/management/namespace/VirtualMBeanTest.java.i
 data/test/java/net/SocketInputStream/SocketTimeout.java.i
 data/test/sun/tools/common/ApplicationSetup.sh.i
-data/src/share/classes/sun/misc/ExtensionInstallationException.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/exceptions/XMLSecurityException.java.i
 data/src/share/classes/com/sun/jndi/ldap/BerEncoder.java.i
 data/src/share/classes/sun/font/FontManager.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameTitlePane.java.i
-data/src/share/classes/sun/invoke/anon/AnonymousClassLoader.java.i
-data/test/java/util/PluggableLocale/providersrc/DateFormatProviderImpl.java.i
+data/src/share/classes/sun/tools/jconsole/resources/brandlogo.png.i
 data/src/share/classes/sun/security/krb5/internal/util/KerberosString.java.i
 data/src/share/classes/java/awt/image/AffineTransformOp.java.i
 data/src/windows/native/sun/java2d/d3d/D3DBadHardware.h.i
 data/src/share/classes/com/sun/security/auth/NTSidGroupPrincipal.java.i
+data/src/share/classes/java/text/spi/DateFormatSymbolsProvider.java.i
 data/src/share/classes/sun/text/resources/FormatData_ru_RU.java.i
 data/src/share/classes/com/sun/imageio/spi/OutputStreamImageOutputStreamSpi.java.i
 data/src/share/native/sun/java2d/Trace.h.i
 data/test/demo/jvmti/hprof/CpuSamplesTest.java.i
-data/test/org/openjdk/jigsaw/cli/ImportPrivateKey.java.i
-data/test/java/lang/reflect/Constructor/TestParameterAnnotations.java.i
+data/src/share/classes/java/security/cert/CertificateRevokedException.java.i
 data/src/share/classes/javax/swing/plaf/PopupMenuUI.java.i
-data/make/tools/classanalyzer/src/com/sun/classanalyzer/BootAnalyzer.java.i
-data/test/java/util/ResourceBundle/Bug4168625Resource3_en_IE.java.i
+data/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java.i
 data/test/java/net/URL/B5086147.sh.i
-data/src/solaris/classes/sun/awt/motif/X11DropTargetContextPeer.java.i
-data/test/javax/management/query/QueryNotifFilterTest.java.i
+data/test/javax/swing/JTable/6735286/bug6735286.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/AbstractOptionSpec.java.i
 data/test/java/nio/charset/spi/default-pol.i
 data/src/share/classes/java/sql/DriverManager.java.i
 data/src/share/classes/com/sun/servicetag/RegistrationDocument.java.i
-data/src/share/classes/java/nio/charset/StandardCharset.java.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpUnknownSubSystemException.java.i
 data/src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.properties.i
 data/src/share/classes/javax/swing/tree/TreePath.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java.i
-data/src/windows/native/sun/windows/awt_Robot.cpp.i
+data/test/java/rmi/server/RemoteObject/toStub/security.policy.i
 data/make/tools/UnicodeData/VERSION.i
 data/src/solaris/doc/sun/man/man1/ja/jsadebugd.1.i
 data/src/share/classes/com/sun/net/ssl/TrustManagerFactorySpi.java.i
 data/src/share/classes/javax/swing/ButtonModel.java.i
-data/test/javax/sound/midi/Gervill/SoftChannel/PitchBend.java.i
+data/src/share/classes/java/nio/channels/AsynchronousServerSocketChannel.java.i
 data/src/share/classes/javax/management/QueryEval.java.i
 data/make/tools/swing-beans/beaninfo/images/JAppletColor32.gif.i
 data/src/windows/classes/sun/awt/windows/WDesktopPeer.java.i
-data/test/javax/management/remote/mandatory/passwordAccessFile/SimpleStandardMBean.java.i
+data/make/java/zip/Makefile.i
 data/test/sun/nio/cs/TestISO2022JP.java.i
-data/test/com/sun/security/sasl/gsskerb/gsseg_jaas.conf.i
-data/src/share/classes/sun/audio/AudioStream.java.i
+data/src/share/classes/java/io/FilePermission.java.i
+data/src/share/classes/sun/tools/serialver/SerialVer.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM918.java.i
-data/make/javax/rmi/Makefile.i
+data/test/javax/imageio/plugins/bmp/BMPSubsamplingTest.java.i
 data/src/share/classes/javax/crypto/spec/RC2ParameterSpec.java.i
 data/test/sun/misc/ClassLoaderUtil/Test.java.i
-data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java.i
+data/test/java/lang/management/ClassLoadingMXBean/LoadCounts.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315.java.i
 data/src/solaris/classes/sun/awt/X11/ListHelper.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/GetResponseCode.java.i
 data/test/sun/net/idn/nfscis.spp.i
 data/test/javax/management/remote/mandatory/connection/RMISerializeTest.java.i
-data/src/share/classes/javax/sql/StatementEvent.java.i
+data/test/sun/security/pkcs11/tls/TestKeyMaterial.java.i
+data/make/tools/sharing/tests/GHello.java.i
 data/src/share/classes/java/security/acl/Group.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/Init.java.i
 data/src/share/classes/java/util/Formattable.java.i
 data/src/share/classes/sun/util/resources/CalendarData_ca.properties.i
-data/src/share/classes/sun/security/provider/certpath/ForwardState.java.i
+data/src/share/classes/sun/jvmstat/monitor/Variability.java.i
 data/test/com/sun/jdi/InstancesTest.java.i
 data/test/java/rmi/dgc/dgcImplInsulation/DGCImplInsulation.java.i
 data/src/share/classes/java/text/CollationKey.java.i
 data/test/java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport2_Stub.java.i
 data/src/share/classes/sun/io/CharToByteDoubleByte.java.i
-data/src/share/classes/java/nio/charset/Charset.java.i
+data/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java.i
 data/make/tools/src/build/tools/jdwpgen/EventNode.java.i
 data/test/javax/management/modelmbean/RequiredModelMBeanMethodTest.java.i
-data/make/tools/swing-beans/beaninfo/images/JFormattedTextFieldColor32.gif.i
+data/make/tools/src/build/tools/jdwpgen/Main.java.i
 data/test/sun/security/provider/PolicyFile/TrustedCert.java.i
 data/src/share/classes/sun/swing/plaf/WindowsKeybindings.java.i
 data/test/javax/management/mxbean/ThreadMXBeanTest.java.i
-data/src/share/classes/com/sun/media/sound/DLSSampleOptions.java.i
-data/test/java/io/LineNumberInputStream/Skip.java.i
-data/src/share/classes/java/net/HttpRetryException.java.i
+data/test/java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html.i
+data/test/java/util/Collections/SetFromMap.java.i
+data/src/share/native/sun/java2d/loops/FillSpans.c.i
 data/test/java/nio/file/Files/CreateFileTree.java.i
+data/src/share/classes/sun/security/x509/AlgIdDSA.java.i
 data/src/share/classes/javax/management/monitor/MonitorNotification.java.i
+data/src/share/native/sun/font/layout/SegmentSingleProcessor.cpp.i
 data/src/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java.i
 data/src/windows/bin/java_md.c.i
 data/src/share/classes/java/util/JumboEnumSet.java.i
-data/src/windows/back/path_md.h.i
 data/test/com/sun/servicetag/NewRegistrationData.java.i
 data/src/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java.i
-data/test/sun/security/provider/PolicyFile/CombinedPerms.java.i
 data/src/share/classes/sun/security/krb5/internal/util/KerberosFlags.java.i
 data/src/share/classes/javax/print/attribute/standard/PrinterIsAcceptingJobs.java.i
 data/test/java/util/Formatter/Constructors.java.i
+data/src/share/classes/com/sun/imageio/plugins/jpeg/DQTMarkerSegment.java.i
 data/src/solaris/native/sun/java2d/x11/XRSurfaceData.c.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpValue.java.i
 data/test/com/sun/net/httpserver/Test2.java.i
 data/test/java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java.i
 data/src/share/classes/sun/text/normalizer/UnicodeSetIterator.java.i
 data/test/sun/security/krb5/Krb5NameEquals.java.i
-data/test/javax/crypto/CryptoPermission/AllPermCheck.java.i
-data/test/java/io/PushbackReader/MarkReset.java.i
 data/src/share/demo/jfc/Notepad/resources/paste.gif.i
-data/src/share/classes/sun/text/normalizer/UnicodeMatcher.java.i
-data/make/sun/jpeg/mapfile-vers.i
+data/src/share/classes/javax/sql/rowset/Joinable.java.i
+data/test/sun/security/mscapi/IsSunMSCAPIAvailable.sh.i
 data/test/org/openjdk/jigsaw/_RepositoryCatalog.java.i
-data/src/share/classes/sun/util/resources/CalendarData_vi.properties.i
-data/src/share/sample/nio/server/BP.java.i
+data/test/java/beans/XMLEncoder/java_lang_reflect_Method.java.i
+data/test/sun/net/www/protocol/jar/B4756443.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/MonitorVersionException.java.i
 data/make/tools/swing-beans/beaninfo/images/JMenuItemColor32.gif.i
 data/src/share/classes/java/util/concurrent/locks/ReentrantLock.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformXPointer.java.i
-data/src/solaris/hpi/include/interrupt.h.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSessionImpl/HashCodeMissing.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/ClassDesc.java.i
 data/make/org/openjdk/Makefile.i
 data/src/share/classes/java/awt/print/PrinterAbortException.java.i
 data/src/share/demo/nbproject/jfc/TransparentRuler/nbproject/project.xml.i
 data/src/share/lib/logging.properties.i
 data/src/share/classes/sun/io/CharToByteCp874.java.i
-data/test/java/rmi/MarshalledObject/compare/NullReference.java.i
-data/src/share/classes/com/sun/media/sound/RealTimeSequencer.java.i
-data/test/sun/security/rsa/TestKeyPairGeneratorLength.java.i
-data/src/share/classes/java/awt/DefaultKeyboardFocusManager.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/keyvalues/KeyValueContent.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBuffer/WriteTo.java.i
-data/src/share/classes/sun/applet/AppletIOException.java.i
+data/src/share/native/java/lang/fdlibm/src/e_sinh.c.i
+data/test/java/rmi/reliability/benchmark/bench/Benchmark.java.i
+data/src/share/classes/javax/sound/sampled/Port.java.i
 data/test/java/lang/Math/CeilAndFloorTests.java.i
-data/test/javax/management/monitor/CounterMonitorThresholdTest.java.i
-data/test/java/util/Locale/bug4123285.java.i
-data/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubBulkRequestHandler.java.i
-data/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java.i
-data/test/java/lang/instrument/AInstrumentationTestCase.java.i
-data/src/share/classes/sun/text/bidi/BidiRun.java.i
+data/src/share/classes/java/awt/GridLayout.java.i
+data/src/share/native/sun/security/ec/impl/ec.h.i
+data/test/java/nio/channels/FileChannel/Position.java.i
+data/test/java/beans/PropertyChangeSupport/Test4985020.java.i
+data/test/java/rmi/reliability/benchmark/bench/serial/DoubleArrays.java.i
 data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_CommonUtils.h.i
 data/test/javax/swing/JFileChooser/6741890/bug6741890.java.i
-data/src/share/classes/sun/tools/tree/AssignShiftRightExpression.java.i
-data/src/share/classes/com/sun/java/swing/plaf/gtk/XColors.java.i
+data/src/windows/classes/com/sun/security/auth/module/README.i
+data/make/tools/src/build/tools/jdwpgen/UntaggedValueTypeNode.java.i
 data/src/share/classes/sun/awt/shell/ShellFolderManager.java.i
-data/test/java/net/DatagramPacket/CheckBoundaries.java.i
+data/test/sun/security/pkcs11/KeyStore/ClientAuthData/p11-nss.txt.i
 data/src/share/classes/java/security/cert/PKIXBuilderParameters.java.i
 data/test/java/net/Socket/asyncClose/ServerSocket_accept.java.i
-data/src/share/classes/javax/naming/ldap/UnsolicitedNotification.java.i
-data/test/java/lang/Throwable/LegacyChainedExceptionSerialization.java.i
+data/src/share/classes/sun/net/www/protocol/http/InMemoryCookieStore.java.i
+data/test/java/security/Provider/CaseSensitiveServices.java.i
 data/src/share/classes/sun/security/provider/certpath/BuildStep.java.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapItem.java.i
+data/test/java/beans/VetoableChangeSupport/1.6.0.ser.i
 data/src/share/classes/sun/security/ssl/HandshakeInStream.java.i
-data/test/java/awt/font/FontNames/LocaleFamilyNames.java.i
 data/src/windows/native/sun/windows/awt_FileDialog.h.i
-data/src/share/native/java/util/zip/zlib-1.1.3/zadler32.c.i
-data/make/mksample/nio/Makefile.i
+data/src/windows/bin/i586/jvm.cfg.i
+data/src/share/classes/java/awt/font/MultipleMaster.java.i
+data/src/share/native/sun/security/pkcs11/wrapper/pkcs11f.h.i
 data/test/java/beans/PropertyEditor/TestBooleanTypeJava.java.i
 data/test/java/security/Identity/EqualsHashCodeContract.java.i
+data/test/sun/security/util/DerValue/DerValueEqualsHashCode.java.i
 data/make/sun/xawt/FILES_export_unix.gmk.i
-data/make/tools/classanalyzer/src/com/sun/classanalyzer/ConstantPoolAnalyzer.java.i
+data/test/java/nio/channels/DatagramChannel/ChangingAddress.java.i
 data/test/java/io/Serializable/packageAccess/D.java.i
 data/test/java/util/ResourceBundle/Control/ControlFactoryTest.java.i
 data/src/share/classes/javax/smartcardio/CardTerminal.java.i
 data/make/tools/src/build/tools/jdwpgen/Parse.java.i
-data/src/share/classes/java/awt/print/PrinterGraphics.java.i
+data/make/tools/CharsetMapping/IBM500.c2b.i
+data/src/share/classes/sun/util/resources/CalendarData_ja.properties.i
 data/test/java/net/URLConnection/RequestPropertyValues.java.i
-data/make/mkdemo/applets/SimpleGraph/Makefile.i
+data/src/share/classes/sun/security/x509/X500Name.java.i
 data/test/java/io/PipedOutputStream/NotConnected.java.i
 data/test/java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html.i
 data/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java.i
-data/src/share/classes/java/awt/image/FilteredImageSource.java.i
+data/src/share/classes/sun/text/resources/FormatData_bg_BG.java.i
 data/src/share/classes/javax/management/AttributeValueExp.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/FuncHere.java.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_X9_42_DH1_DERIVE_PARAMS.java.i
-data/test/java/security/SecureRandom/sha1prng-old.bin.i
+data/src/share/classes/com/sun/tools/jdi/BooleanTypeImpl.java.i
+data/test/java/lang/instrument/appendToClassLoaderSearch/Tracer.java.i
 data/src/share/classes/java/awt/event/KeyAdapter.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-amd64/libnss3.so.i
-data/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageGenerator.java.i
-data/src/share/classes/javax/xml/crypto/dsig/spec/TransformParameterSpec.java.i
+data/test/sun/nio/cs/X11CNS11643.java.i
+data/test/java/lang/annotation/loaderLeak/A.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-amd64/libnss3.so.d
 data/make/tools/CharsetMapping/IBM874.nr.i
 data/src/share/classes/com/sun/rmi/rmid/ExecPermission.java.i
 data/src/share/classes/java/util/Map.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_sv.properties.i
+data/test/java/io/Serializable/6559775/README.i
+data/src/share/javavm/export/classfile_constants.h.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/SyntaxException.java.i
 data/test/java/rmi/reliability/README.i
 data/src/share/classes/java/util/Stack.java.i
 data/src/share/classes/java/awt/SystemColor.java.i
 data/test/java/beans/XMLEncoder/sun_swing_PrintColorUIResource.java.i
 data/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java.i
-data/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java.i
+data/test/demo/jvmti/hprof/HeapDumpTest.java.i
 data/src/share/classes/java/security/KeyManagementException.java.i
 data/src/share/classes/org/openjdk/jigsaw/Library.java.i
-data/test/java/rmi/activation/Activatable/checkActivateRef/ActivateMe.java.i
-data/src/share/classes/java/lang/TypeNotPresentException.java.i
-data/src/share/classes/java/util/regex/Matcher.java.i
+data/test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh.i
+data/test/java/util/AbstractMap/SimpleEntries.java.i
+data/src/share/classes/javax/management/openmbean/OpenMBeanInfoSupport.java.i
 data/make/tools/reorder/tests/JHello.java.i
 data/src/share/javavm/include/opcodes.length.i
 data/src/share/classes/java/security/acl/Permission.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMManifest.java.i
+data/src/share/classes/sun/security/rsa/RSAKeyFactory.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java.i
-data/src/share/classes/sun/font/AttributeMap.java.i
+data/test/java/awt/dnd/FileListBetweenJVMsTest/SourceFileListFrame.java.i
 data/test/java/rmi/RemoteException/chaining/Chaining.java.i
-data/src/share/classes/com/sun/jndi/toolkit/dir/ContainmentFilter.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/SignatureProperties.java.i
-data/test/java/lang/System/finalization/FinExit.java.i
+data/src/windows/classes/sun/security/smartcardio/PlatformPCSC.java.i
+data/test/javax/management/ObjectInstance/MBeanInfoFailTest.java.i
+data/src/share/classes/sun/io/CharToByteEUC.java.i
+data/src/share/classes/sun/io/CharToByteGBK.java.i
 data/test/java/beans/XMLEncoder/Test4950122.java.i
 data/test/java/io/File/DeleteOnExit.java.i
 data/src/share/classes/javax/imageio/spi/RegisterableService.java.i
-data/src/share/classes/sun/util/resources/CalendarData_pt.properties.i
+data/test/java/lang/instrument/IsModifiableClassAgent.java.i
 data/src/share/classes/sun/nio/cs/MS1250.java.i
 data/test/java/net/SocketInputStream/SocketClosedException.java.i
-data/test/sun/nio/cs/OLD/MS950_OLD.java.i
 data/src/share/classes/sun/java2d/pipe/ShapeSpanIterator.java.i
-data/src/share/classes/java/util/AbstractSet.java.i
-data/src/share/classes/sun/security/x509/AlgIdDSA.java.i
+data/src/share/classes/sun/io/ByteToCharMacCyrillic.java.i
+data/test/java/io/Serializable/skippedObjCNFException/Write.java.i
 data/src/windows/classes/sun/awt/windows/WClipboard.java.i
 data/src/share/classes/sun/reflect/package.html.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpBadSecurityLevelException.java.i
+data/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java.i
 data/src/share/classes/javax/net/ssl/SSLSession.java.i
-data/test/java/lang/management/ThreadMXBean/LockedSynchronizers.java.i
+data/src/share/classes/javax/xml/crypto/dsig/keyinfo/KeyInfo.java.i
 data/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java.i
 data/test/sun/net/InetAddress/nameservice/simple/DefaultCaching.java.i
 data/test/java/awt/Mixing/setComponentZOrder.java.i
-data/src/share/classes/sun/print/CustomMediaTray.java.i
-data/test/sun/rmi/rmic/newrmic/equivalence/NotActivatableInterface.java.i
+data/src/share/classes/sun/tools/jconsole/Plotter.java.i
 data/test/java/beans/XMLDecoder/spec/TestString.java.i
-data/src/share/classes/com/sun/crypto/provider/ARCFOURCipher.java.i
+data/src/share/native/java/lang/fdlibm/src/s_cos.c.i
 data/test/sun/security/provider/certpath/DisabledAlgorithms/README.i
 data/src/share/classes/com/sun/tools/attach/spi/package.html.i
 data/src/share/classes/com/sun/media/sound/AuFileFormat.java.i
 data/test/java/net/URLClassLoader/B6827999.java.i
-data/test/java/io/Serializable/class/SerialA_1.java.i
-data/make/common/shared/Compiler.gmk.i
-data/src/share/demo/jvmti/hprof/hprof_object.h.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/icons/ListView.gif.i
+data/src/share/classes/java/awt/AWTEvent.java.i
+data/test/java/security/Security/ClassLoaderDeadlock/CreateSerialized.java.i
 data/test/java/util/concurrent/locks/ReentrantReadWriteLock/Count.java.i
 data/test/java/net/URLClassLoader/closetest/test1/com/foo/Resource1.i
-data/src/share/classes/sun/security/krb5/KrbKdcReq.java.i
+data/test/sun/nio/cs/LatinCharReplacementTWTest.java.i
 data/test/java/util/EnumMap/ToArray.java.i
-data/src/share/classes/sun/security/ssl/X509TrustManagerImpl.java.i
-data/src/share/classes/com/sun/jdi/request/MonitorWaitedRequest.java.i
-data/test/java/nio/channels/TestThread.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifScrollBarUI.java.i
-data/test/sun/nio/cs/OLD/EUC_KR_OLD.java.i
+data/test/com/sun/servicetag/DuplicateNotFound.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties.i
+data/src/share/classes/com/sun/servicetag/resources/register_ja.html.i
+data/src/share/classes/com/sun/security/sasl/digest/SecurityCtx.java.i
+data/src/share/classes/javax/security/auth/callback/UnsupportedCallbackException.java.i
 data/src/solaris/native/sun/awt/awt_TextField.h.i
-data/src/share/classes/org/openjdk/internal/joptsimple/internal/ValueConverter.java.i
+data/src/share/classes/sun/management/snmp/jvminstr/JvmRTBootClassPathTableMetaImpl.java.i
 data/src/windows/native/common/jdk_util_md.c.i
-data/test/sun/security/provider/PolicyParser/PrincipalExpansionErrorAction.java.i
-data/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c.i
+data/src/share/classes/javax/sql/rowset/RowSetFactory.java.i
+data/src/share/classes/sun/tools/jconsole/resources/masthead-left.png.i
 data/src/share/native/sun/awt/libpng/LICENSE.i
 data/src/share/classes/sun/management/Sensor.java.i
-data/src/share/classes/sun/print/ImagePrinter.java.i
+data/make/netbeans/common/jtreg-view.ent.i
 data/src/share/classes/sun/io/ByteToCharDoubleByte.java.i
-data/src/share/classes/java/lang/annotation/Retention.java.i
-data/make/tools/swing-beans/beaninfo/images/JPopupMenuMono16.gif.i
-data/src/share/classes/sun/reflect/generics/tree/IntSignature.java.i
+data/src/share/classes/sun/misc/Cache.java.i
+data/src/share/classes/javax/swing/JComponent.java.i
+data/src/share/classes/sun/security/util/HostnameChecker.java.i
 data/src/share/classes/com/sun/tools/jdi/Packet.java.i
-data/src/share/demo/nbproject/jfc/Font2DTest/nbproject/file-targets.xml.i
+data/test/java/beans/XMLEncoder/javax_swing_border_EtchedBorder.java.i
 data/test/java/nio/charset/Charset/EncDec.java.i
 data/src/share/classes/java/net/SocketAddress.java.i
-data/src/share/classes/sun/tools/jconsole/resources/connected16.png.i
+data/src/solaris/doc/sun/man/man1/javap.1.i
 data/src/share/classes/sun/tools/jstat/RowClosure.java.i
-data/src/share/classes/sun/security/krb5/internal/crypto/dk/ArcFourCrypto.java.i
-data/src/share/classes/java/nio/X-Buffer-bin.java.template.i
-data/test/java/beans/EventHandler/Test6179222.java.i
+data/src/share/classes/sun/security/pkcs11/wrapper/Constants.java.i
+data/test/sun/net/www/protocol/jar/getcontenttype.sh.i
+data/test/java/lang/instrument/RedefineSetUp.sh.i
 data/src/share/classes/sun/util/logging/resources/logging.properties.i
-data/src/share/classes/sun/awt/TracedEventQueue.java.i
+data/src/share/classes/sun/nio/cs/ext/IBM1047.java.i
+data/test/sun/management/windows/revokeall.c.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmMemoryMetaImpl.java.i
 data/test/java/awt/AlphaComposite/TestAlphaCompositeForNaN.java.i
 data/src/share/native/java/lang/SecurityManager.c.i
 data/test/java/awt/dnd/ImageDecoratedDnDInOut/MyCursor.java.i
 data/src/share/classes/sun/text/resources/FormatData_ar.java.i
 data/test/java/rmi/activation/Activatable/checkActivateRef/rmid.security.policy.i
-data/test/java/beans/Statement/Test6788531.java.i
+data/test/java/lang/Class/IsSynthetic.java.i
 data/src/solaris/doc/sun/man/man1/ja/jinfo.1.i
 data/test/sun/security/tools/keytool/NewSize7.java.i
 data/src/share/classes/javax/swing/JFormattedTextField.java.i
 data/src/share/classes/sun/security/krb5/PrincipalName.java.i
-data/make/tools/CharsetMapping/IBM1025.map.i
-data/test/sun/nio/cs/FindDecoderBugs.java.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_RSA_PKCS_OAEP_PARAMS.java.i
-data/src/share/classes/javax/swing/event/RowSorterEvent.java.i
+data/test/javax/swing/JTabbedPane/6670274/bug6670274.java.i
+data/src/share/classes/java/security/interfaces/DSAKey.java.i
+data/src/share/classes/org/ietf/jgss/ChannelBinding.java.i
+data/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java.i
+data/src/share/classes/javax/swing/text/TabSet.java.i
 data/test/java/lang/reflect/Method/InheritedInterfaceMethods.java.i
-data/src/windows/native/sun/java2d/d3d/D3DRuntimeTest.cpp.i
-data/src/share/classes/com/sun/security/auth/LdapPrincipal.java.i
+data/test/org/openjdk/jigsaw/cli/TimestampTest.java.i
+data/make/sun/font/reorder-i586.i
 data/test/sun/security/krb5/auto/KeyTabCompat.java.i
 data/make/netbeans/common/architectures/arch-i386.properties.i
 data/src/share/classes/java/nio/channels/spi/SelectorProvider.java.i
@@ -14033,16 +13789,17 @@ data/src/share/classes/sun/print/resources/serviceui_ko.properties.i
 data/test/java/beans/XMLEncoder/java_util_Collections_SynchronizedSortedSet.java.i
 data/test/java/util/zip/InflateIn_DeflateOut.java.i
 data/test/javax/imageio/plugins/png/MergeStdCommentTest.java.i
-data/src/share/classes/javax/security/auth/callback/CallbackHandler.java.i
-data/test/java/rmi/reliability/benchmark/bench/serial/manifest.i
+data/src/share/classes/sun/text/normalizer/UCharacterProperty.java.i
+data/src/share/classes/com/sun/beans/decoder/StringElementHandler.java.i
 data/test/com/sun/nio/sctp/SctpChannel/Util.java.i
 data/test/sun/tools/jstat/hsperfdata_3433.i
-data/src/share/classes/java/lang/ClassCircularityError.java.i
-data/src/share/classes/com/sun/tools/attach/VirtualMachine.java.i
+data/src/share/native/sun/security/ec/mp_gf2m-priv.h.i
+data/src/share/classes/com/sun/beans/finder/PrimitiveTypeMap.java.i
 data/src/windows/bin/java_md.h.i
-data/test/java/lang/management/ManagementFactory/StateTest.java.i
-data/src/share/classes/com/sun/crypto/provider/BlowfishConstants.java.i
+data/src/share/classes/javax/swing/text/doc-files/Document-insert.gif.i
+data/src/share/classes/java/beans/ExceptionListener.java.i
 data/test/javax/security/auth/login/LoginContext/ResetModule.java.i
+data/src/share/classes/sun/reflect/generics/tree/TypeVariableSignature.java.i
 data/src/share/classes/java/nio/file/attribute/FileAttributeView.java.i
 data/test/java/lang/management/ThreadMXBean/LockingThread.java.i
 data/src/share/classes/sun/io/ByteToCharCp834.java.i
@@ -14050,63 +13807,61 @@ data/src/share/classes/com/sun/jdi/VMMismatchException.java.i
 data/src/share/classes/sun/security/krb5/internal/KDCRep.java.i
 data/src/share/classes/sun/java2d/opengl/OGLPaints.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/JavaUtils.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/Close.java.i
-data/src/share/classes/java/io/PushbackReader.java.i
+data/src/share/classes/sun/beans/editors/FontEditor.java.i
 data/src/share/classes/sun/tools/jstat/Jstat.java.i
 data/src/share/classes/javax/management/event/EventSubscriber.java.i
 data/src/share/native/sun/java2d/loops/MapAccelFunc.c.i
 data/src/share/classes/java/beans/PropertyEditorManager.java.i
-data/test/javax/crypto/Cipher/ByteBuffersNull.java.i
+data/src/share/classes/java/rmi/activation/ActivationGroup.java.i
 data/src/share/classes/com/sun/jndi/url/ldap/ldapURLContext.java.i
-data/test/java/lang/management/ThreadMXBean/ThreadCpuTime.java.i
-data/test/com/sun/crypto/provider/Cipher/AES/Test4517355.java.i
 data/src/share/classes/java/util/concurrent/Executors.java.i
-data/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java.i
-data/src/windows/classes/sun/awt/windows/WSystemTrayPeer.java.i
-data/src/share/native/sun/awt/image/cvutils/img_output8.h.i
+data/src/share/classes/sun/nio/cs/ext/ISO2022_CN.java.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/font/Typeface.java.i
+data/make/tools/swing-beans/beaninfo/images/JProgressBarColor16.gif.i
+data/src/share/classes/javax/net/ssl/CertPathTrustManagerParameters.java.i
 data/test/com/sun/jdi/ProcessAttachDebuggee.java.i
 data/src/share/demo/nbproject/jfc/Metalworks/nbproject/project.xml.i
-data/test/javax/management/ImplementationVersion/ImplVersionReader.java.i
+data/src/share/classes/sun/tools/tree/ByteExpression.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM1143.java.i
-data/src/share/demo/nbproject/management/VerboseGC/build.xml.i
+data/src/share/native/sun/java2d/pipe/RenderBuffer.c.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU16S16Func.c.i
 data/test/com/sun/crypto/provider/Cipher/DES/FlushBug.java.i
-data/test/java/lang/instrument/PremainClass/InheritAgent1011.java.i
-data/make/tools/classanalyzer/src/com/sun/classanalyzer/Module.java.i
+data/test/java/security/spec/ECCBasic.java.i
 data/test/sun/net/idn/PunycodeTest.java.i
 data/src/share/classes/sun/font/CompositeStrike.java.i
-data/src/share/classes/sun/security/provider/certpath/OCSPResponse.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/TruncateArray.java.i
 data/src/share/demo/java2d/J2DBench/resources/textdata/korean.ut8.txt.i
 data/src/share/back/ClassTypeImpl.h.i
 data/test/java/net/MulticastSocket/MulticastTTL.java.i
-data/make/tools/swing-beans/beaninfo/images/JButtonMono16.gif.i
-data/src/share/classes/sun/nio/cs/MS1257.java.i
+data/test/sun/security/krb5/IPv6.java.i
+data/src/share/classes/com/sun/nio/file/SensitivityWatchEventModifier.java.i
+data/test/java/util/concurrent/CopyOnWriteArrayList/EqualsRace.java.i
 data/src/share/classes/sun/net/util/IPAddressUtil.java.i
 data/src/share/classes/java/awt/dnd/package.html.i
 data/src/share/classes/sun/tools/jconsole/inspector/XMBeanOperations.java.i
+data/src/share/classes/sun/nio/cs/ext/IBM1046.java.i
 data/test/java/net/ResponseCache/ResponseCacheTest.java.i
 data/make/sun/security/Makefile.i
 data/test/java/rmi/activation/Activatable/checkImplClassLoader/rmid.security.policy.i
-data/test/java/security/cert/CertPathValidator/indirectCRL/CircularCRLTwoLevel.java.i
+data/test/sun/security/provider/PolicyFile/getinstance/GetInstance.java.i
 data/test/java/util/Scanner/FailingConstructors.java.i
 data/src/share/classes/javax/management/openmbean/OpenMBeanConstructorInfo.java.i
-data/src/share/classes/sun/text/resources/FormatData_ar_KW.java.i
-data/src/share/classes/com/sun/jdi/connect/ListeningConnector.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_no_NO_NY.properties.i
+data/test/sun/rmi/rmic/newrmic/equivalence/Agent.java.i
 data/make/java/nio/spp.sh.i
 data/src/share/classes/java/nio/file/FileTreeWalker.java.i
 data/src/share/native/sun/tracing/dtrace/JVM.c.i
 data/src/share/classes/com/sun/jdi/Method.java.i
+data/test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableCollection.java.i
 data/make/sun/nio/cs/FILES_java.gmk.i
 data/test/javax/management/query/QuerySubstringTest.java.i
-data/test/java/security/KeyRep/RC5.pre.1.5.key.i
 data/src/share/classes/sun/net/ResourceManager.java.i
-data/src/share/classes/sun/security/pkcs/EncodingException.java.i
-data/test/java/net/URLClassLoader/closetest/Common.java.i
 data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCMUtils.h.i
-data/src/share/classes/sun/text/normalizer/UProperty.java.i
+data/src/windows/classes/java/lang/Terminator.java.i
 data/make/tools/src/build/tools/charsetmapping/GenerateSBCS.java.i
 data/src/share/classes/sun/font/AttributeValues.java.i
 data/src/share/classes/java/awt/color/ColorSpace.java.i
-data/src/share/classes/java/sql/SQLPermission.java.i
+data/src/share/classes/sun/net/www/protocol/https/HttpsClient.java.i
 data/src/share/classes/javax/sql/rowset/RowSetMetaDataImpl.java.i
 data/src/share/classes/sun/swing/BakedArrayList.java.i
 data/src/share/classes/javax/management/relation/RoleResult.java.i
@@ -14114,899 +13869,904 @@ data/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java.i
 data/make/mkdemo/jvmti/compiledMethodLoad/Makefile.i
 data/test/java/util/jar/JarFile/no-manifest.jar.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/EchoImpl_Stub.java.i
-data/src/share/classes/sun/text/resources/FormatData_vi_VN.java.i
-data/test/java/rmi/server/useCustomRef/UseCustomRef.java.i
+data/test/sun/net/www/protocol/http/SetIfModifiedSince.java.i
+data/test/sun/security/pkcs11/ec/TestECDH.java.i
+data/src/share/classes/javax/print/attribute/Attribute.java.i
 data/src/share/classes/javax/security/cert/CertificateExpiredException.java.i
 data/src/share/classes/javax/imageio/metadata/doc-files/wbmp_metadata.html.i
 data/src/share/classes/javax/naming/ldap/package.html.i
+data/src/share/classes/javax/management/event/EventRelay.java.i
 data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/DirectoryScannerTest.java.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/OwnerImpl.java.i
-data/src/share/classes/java/util/CurrencyData.properties.i
-data/test/java/util/Locale/data/deflocale.input.i
-data/src/share/classes/sun/swing/UIClientPropertyKey.java.i
+data/src/share/classes/java/awt/geom/GeneralPath.java.i
+data/src/share/classes/sun/security/krb5/internal/crypto/CksumType.java.i
+data/test/javax/management/remote/mandatory/notif/NotificationBufferTest.java.i
+data/src/share/classes/sun/io/CharToByteISCII91.java.i
 data/src/share/classes/javax/accessibility/AccessibleAttributeSequence.java.i
-data/src/share/classes/sun/nio/cs/ext/IBM942.java.i
+data/src/share/instrument/Reentrancy.c.i
 data/src/share/classes/javax/swing/text/html/TextAreaDocument.java.i
-data/test/java/rmi/server/RMIClassLoader/useGetURLs/Dummy.java.i
 data/test/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java.i
 data/make/javax/sound/jsoundhs/Makefile.i
-data/test/java/net/DatagramSocket/SendSize.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/PerfDataBufferImpl.java.i
 data/test/java/nio/charset/CharsetEncoder/Flush.java.i
-data/src/share/classes/sun/font/SunFontManager.java.i
-data/src/linux/doc/man/ja/javadoc.1.d
+data/src/share/classes/sun/text/resources/FormatData_ko_KR.java.i
+data/src/share/classes/sun/jkernel/Mutex.java.i
 data/src/share/classes/com/sun/security/auth/module/Crypt.java.i
 data/src/share/classes/java/lang/reflect/ReflectPermission.java.i
 data/src/linux/doc/man/ja/javadoc.1.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReverseNameLookup.java.i
 data/src/share/classes/sun/misc/CharacterEncoder.java.i
-data/test/javax/xml/crypto/dsig/data/xml-stylesheet.b64.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_DATE.java.i
+data/src/share/classes/sun/rmi/server/resources/rmid.properties.i
 data/test/java/util/concurrent/ExecutorService/Invoke.java.i
-data/src/share/classes/java/lang/BootstrapMethodError.java.i
-data/src/share/classes/sun/applet/AppletPanel.java.i
-data/src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c.i
-data/src/share/classes/sun/beans/editors/LongEditor.java.i
+data/test/sun/tools/jps/jps-l_Output1.awk.i
+data/src/share/classes/sun/security/util/BigInt.java.i
+data/src/solaris/native/sun/security/pkcs11/wrapper/p11_md.c.i
+data/src/share/classes/sun/nio/cs/ext/JIS_X_0212.java.i
+data/src/share/classes/sun/font/CMap.java.i
 data/src/share/classes/javax/swing/ImageIcon.java.i
 data/src/share/classes/com/sun/jdi/request/EventRequestManager.java.i
-data/src/windows/native/sun/windows/awt_MouseEvent.cpp.i
-data/src/share/classes/org/openjdk/internal/joptsimple/OptionSpecBuilder.java.i
-data/src/share/classes/com/sun/rowset/WebRowSetImpl.java.i
+data/src/share/demo/jfc/Metalworks/UISwitchListener.java.i
+data/test/java/util/concurrent/locks/Lock/FlakyMutex.java.i
+data/test/java/io/Serializable/arraySuidConflict/Read.java.i
 data/test/sun/net/sdp/sanity.sh.i
-data/src/linux/doc/man/ja/pack200.1.i
-data/test/sun/nio/cs/OLD/TestIBMDB.java.i
-data/src/share/classes/java/lang/invoke/ConstantCallSite.java.i
-data/make/tools/CharsetMapping/IBM860.map.i
+data/test/java/awt/GraphicsEnvironment/TestGetDefScreenDevice.java.i
+data/make/tools/CharsetMapping/SingleByte-X.java.i
+data/src/share/classes/sun/io/ByteToCharJIS0208.java.i
 data/test/java/io/StreamTokenizer/input.txt.i
+data/make/modules/tools/src/com/sun/classanalyzer/ResolutionInfo.java.i
 data/test/sun/security/provider/PolicyFile/TrustedCert.policy.i
-data/test/java/nio/charset/RemovingSunIO/SunioAlias.java.i
-data/src/share/classes/sun/text/resources/FormatData_zh_SG.java.i
+data/test/java/util/Collections/Ser.java.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/SetPatch.java.i
 data/src/share/classes/javax/swing/text/DateFormatter.java.i
-data/src/share/classes/com/sun/jdi/request/EventRequest.java.i
+data/make/common/shared/Defs-windows.gmk.i
 data/test/java/beans/PropertyEditor/6380849/editors/SecondBeanEditor.java.i
 data/test/java/lang/Class/getModifiers/ForStaticInnerClass.java.i
 data/test/java/net/InetAddress/MyPrincipal.java.i
 data/src/share/classes/java/awt/doc-files/modal-example2.gif.i
 data/src/share/classes/sun/security/krb5/internal/crypto/HmacSha1Des3KdCksumType.java.i
 data/src/share/native/sun/java2d/loops/ParallelogramUtils.h.i
-data/src/share/classes/java/util/concurrent/FutureTask.java.i
+data/src/share/classes/javax/swing/InputVerifier.java.i
 data/test/java/rmi/server/RMIClassLoader/useCodebaseOnly/Receiver.java.i
-data/src/share/native/sun/security/ec/ECC_JNI.cpp.i
+data/src/share/classes/java/net/StandardSocketOption.java.i
 data/test/java/beans/PropertyEditor/TestBooleanClass.java.i
+data/src/share/classes/sun/security/util/DerIndefLenConverter.java.i
 data/src/windows/native/java/io/RandomAccessFile_md.c.i
 data/src/share/native/sun/font/layout/ThaiShaping.cpp.i
-data/test/java/net/URLClassLoader/getresourceasstream/test.sh.i
+data/test/java/rmi/activation/Activatable/nonExistentActivatable/group.security.policy.i
 data/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c.i
-data/test/sun/security/tools/policytool/ChangeUI.java.i
-data/src/share/classes/java/io/PrintStream.java.i
-data/src/share/classes/javax/net/ssl/KeyManager.java.i
-data/src/linux/doc/man/jsadebugd.1.i
+data/src/share/classes/sun/font/FontManagerFactory.java.i
+data/test/java/io/NegativeInitSize.java.i
+data/test/java/lang/ClassLoader/ExceptionHidingLoader.java.i
+data/test/javax/security/auth/Subject/Serial.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/CloseStart.java.i
 data/src/share/classes/sun/io/CharToByteCp833.java.i
-data/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java.i
+data/test/java/net/MulticastSocket/B6427403.java.i
 data/src/share/classes/com/sun/imageio/spi/InputStreamImageInputStreamSpi.java.i
-data/src/share/classes/java/awt/event/MouseMotionAdapter.java.i
-data/src/share/classes/com/sun/media/sound/ReferenceCountingDevice.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthCheckBoxUI.java.i
-data/test/java/nio/Buffer/BasicShort.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_ru.properties.i
+data/src/share/classes/sun/swing/PrintingStatus.java.i
+data/src/share/classes/sun/net/www/protocol/http/AuthScheme.java.i
+data/src/solaris/native/sun/awt/CUPSfuncs.c.i
 data/src/share/classes/com/sun/beans/decoder/NullElementHandler.java.i
 data/test/javax/naming/spi/DirectoryManager/DummyObjectFactory.java.i
 data/src/solaris/classes/sun/awt/X11/XVerticalScrollbar.java.i
+data/test/java/util/Locale/ThaiGov.java.i
 data/src/share/classes/com/sun/media/sound/PortMixerProvider.java.i
 data/src/share/sample/nio/server/Handler.java.i
-data/src/share/classes/javax/sound/midi/SysexMessage.java.i
+data/src/share/classes/com/sun/tools/hat/internal/model/JavaValue.java.i
 data/src/share/native/sun/font/layout/GlyphPositionAdjustments.h.i
-data/test/java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java.i
+data/test/java/net/URLConnection/ResendPostBody.java.i
 data/test/java/util/concurrent/Phaser/Arrive.java.i
-data/test/java/util/Locale/icuLocales.txt.i
-data/src/share/transport/socket/sysSocket.h.i
 data/test/com/sun/jdi/redefineMethod/RedefineTest.java.i
 data/test/java/nio/Buffer/Order.java.i
 data/test/javax/print/attribute/ChromaticityValues.java.i
 data/make/tools/src/build/tools/dtdbuilder/DTDInputStream.java.i
 data/src/share/classes/java/nio/file/Path.java.i
-data/test/sun/security/tools/policytool/ChangeUI.html.i
-data/test/com/sun/jdi/DeferredStepTest.sh.i
+data/test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/HelloImpl_Stub.java.i
+data/test/javax/security/auth/PrivateCredentialPermission/Subset.policy.i
 data/src/share/classes/javax/swing/ProgressMonitor.java.i
-data/src/share/classes/com/sun/media/sound/services/linux-i586/javax.sound.sampled.spi.MixerProvider.i
-data/src/share/classes/javax/naming/LinkRef.java.i
+data/test/java/lang/System/finalization/FinExit.java.i
+data/test/sun/security/mscapi/AccessKeyStore.sh.i
 data/src/share/classes/java/lang/Override.java.i
 data/src/share/classes/java/sql/PseudoColumnUsage.java.i
 data/test/java/lang/Double/ParseDouble.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpNull.java.i
 data/src/share/classes/javax/naming/SizeLimitExceededException.java.i
+data/src/share/classes/java/awt/color/ICC_ProfileRGB.java.i
 data/src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java.i
+data/src/share/classes/sun/tools/jconsole/inspector/XTable.java.i
 data/test/sun/nio/cs/OLD/DoubleByteDecoder.java.i
 data/src/share/classes/java/beans/ConstructorProperties.java.i
-data/test/java/util/Collections/CheckedNull.java.i
 data/src/share/classes/sun/applet/AppletProps.java.i
-data/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java.i
+data/test/java/beans/PropertyEditor/TestEnumSubclassJava.java.i
 data/src/share/classes/sun/java2d/opengl/OGLUtilities.java.i
-data/src/share/native/sun/font/layout/SimpleArrayProcessor.cpp.i
+data/test/java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext.java.i
 data/test/javax/swing/JPopupMenu/Separator/6547087/bug6547087.java.i
 data/src/share/classes/javax/management/remote/rmi/RMIServer.java.i
-data/src/share/demo/jfc/CodePointIM/CodePointInputMethod.java.i
+data/test/com/sun/jdi/redefine/RedefineSubTarg.java.i
 data/test/java/lang/instrument/RetransformAgent.java.i
 data/src/share/classes/sun/text/CompactByteArray.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageConvMxN_ext.c.i
-data/src/share/classes/com/sun/nio/sctp/AssociationChangeNotification.java.i
-data/test/java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html.i
-data/src/share/native/java/lang/fdlibm/src/s_erf.c.i
+data/src/share/classes/java/util/zip/GZIPInputStream.java.i
 data/src/share/classes/com/sun/crypto/provider/AESCrypt.java.i
 data/test/java/nio/file/Files/content_type.sh.i
 data/src/share/native/java/util/zip/zlib-1.2.3/zcrc32.c.i
-data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java.i
-data/test/javax/management/remote/mandatory/notif/NotificationSenderMBean.java.i
 data/test/java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java.i
 data/src/share/classes/sun/java2d/opengl/OGLContext.java.i
-data/src/share/classes/com/sun/media/sound/ModelOscillator.java.i
+data/src/share/demo/java2d/J2DBench/resources/textdata/greek.ut8.txt.i
 data/test/java/security/BasicPermission/EqualsImplies.java.i
-data/test/java/io/BufferedReader/Ready.java.i
+data/test/java/net/URLClassLoader/closetest/test2/com/foo/TestClass1.java.i
 data/test/java/net/URLConnection/ExifContentGuesser.java.i
 data/test/com/sun/jdi/ArgumentValuesTest.java.i
-data/src/share/classes/sun/awt/CausedFocusEvent.java.i
+data/src/solaris/classes/sun/nio/ch/PipeImpl.java.i
 data/test/java/util/HashMap/SetValue.java.i
-data/test/sun/management/jmxremote/bootstrap/jmxremote_test04_ok.access.in.i
 data/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_MidiIn.cpp.i
 data/src/solaris/native/sun/awt/awt_MenuBar.c.i
-data/test/sun/security/pkcs11/Signature/ByteBuffers.java.i
-data/test/java/awt/List/SingleModeDeselect/SingleModeDeselect.java.i
+data/src/share/classes/javax/swing/plaf/basic/icons/JavaCup16.png.i
+data/test/sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java.i
+data/test/java/io/Serializable/packageAccess/Test.java.i
 data/src/share/classes/sun/security/action/PutAllAction.java.i
 data/test/java/lang/management/ThreadMXBean/ThreadStackTrace.java.i
-data/src/windows/javavm/export/jni_md.h.i
+data/test/javax/imageio/stream/StreamCloserLeak/test/Main.java.i
 data/src/share/classes/sun/io/CharToByteMacHebrew.java.i
-data/test/java/net/URLEncoder/URLEncoderEncodeArgs.java.i
-data/src/share/classes/javax/management/relation/RelationType.java.i
-data/test/javax/sound/midi/Gervill/AudioFloatInputStream/Reset.java.i
+data/src/share/classes/sun/java2d/opengl/OGLGraphicsConfig.java.i
+data/test/sun/tools/jrunscript/jrunscript-helpTest.sh.i
 data/src/share/demo/java2d/J2DBench/nbproject/project.xml.i
 data/test/sun/net/www/http/HttpClient/RequestURI.java.i
-data/src/share/classes/sun/security/ssl/ProtocolList.java.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_PKCS5_PBKD2_PARAMS.java.i
+data/test/java/nio/channels/AsynchronousServerSocketChannel/Basic.java.i
+data/test/javax/swing/plaf/basic/BasicScrollPaneUI/Test6632810.java.i
 data/test/java/util/ArrayList/RangeCheckMicroBenchmark.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU8U16Func.c.i
-data/test/java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java.i
+data/test/javax/script/MyContext.java.i
+data/src/share/classes/javax/naming/spi/ResolveResult.java.i
 data/src/share/classes/sun/security/jgss/wrapper/GSSLibStub.java.i
-data/src/share/classes/sun/audio/AudioData.java.i
+data/test/java/io/Serializable/inactiveRegistration/InactiveRegistration.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicToggleButtonUI.java.i
-data/test/java/security/cert/pkix/nameConstraintsMinMax/sun.cer.i
-data/src/share/classes/com/sun/tools/example/debug/event/JDIListener.java.i
-data/test/sun/security/smartcardio/TestExclusive.java.i
-data/src/share/classes/sun/awt/KeyboardFocusManagerPeerProvider.java.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/MonitorDataException.java.i
-data/test/com/sun/net/httpserver/SimpleSSLContext.java.i
-data/src/share/classes/javax/management/relation/RelationNotification.java.i
+data/test/javax/sound/midi/Gervill/ModelPerformer/SetName.java.i
+data/test/lib/security/cacerts/VerifyCACerts.java.i
+data/test/java/nio/channels/DatagramChannel/IsConnected.java.i
+data/test/java/security/cert/pkix/policyChanges/ca.cer.i
 data/make/tools/swing-beans/beaninfo/images/JPopupMenuColor32.gif.i
-data/src/share/classes/sun/print/PSPathGraphics.java.i
+data/test/com/sun/crypto/provider/TLS/prf12data.txt.i
 data/test/java/math/BigInteger/StringConstructor.java.i
 data/src/share/classes/com/sun/imageio/plugins/bmp/BMPMetadataFormatResources.java.i
-data/test/java/util/Locale/Bug4210525.java.i
+data/test/javax/swing/border/Test6978482.java.i
 data/src/share/classes/java/util/zip/ZipException.java.i
 data/src/windows/native/java/io/dirent_md.h.i
-data/src/share/classes/org/openjdk/jigsaw/JigsawVersionQuery.java.i
+data/test/java/awt/regtesthelpers/Sysout.java.i
 data/make/tools/reorder/tests/LoadFrame.java.i
 data/make/tools/CharsetMapping/IBM935.nr.i
 data/src/share/classes/sun/tools/tree/NaryExpression.java.i
 data/test/sun/security/tools/jarsigner/ts.sh.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmOSMeta.java.i
+data/src/share/classes/sun/management/snmp/util/SnmpTableHandler.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/FixedList.java.i
 data/src/share/classes/sun/io/ByteToCharUnicodeLittle.java.i
-data/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java.i
-data/src/share/classes/java/beans/DesignMode.java.i
-data/src/share/classes/javax/swing/plaf/nimbus/DropShadowEffect.java.i
+data/src/share/classes/com/sun/imageio/plugins/png/PNGMetadataFormat.java.i
+data/test/java/nio/file/Files/BytesAndLines.java.i
+data/test/java/lang/Character/PropertyValueAliases.txt.i
+data/src/share/classes/sun/text/resources/FormatData_uk.java.i
 data/src/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java.i
 data/src/share/classes/sun/print/resources/serviceui_zh_TW.properties.i
 data/src/share/classes/org/openjdk/jigsaw/Loader.java.i
-data/test/java/io/Serializable/sanityCheck/SanityCheck.java.i
-data/src/share/native/java/util/zip/zlib-1.2.3/ChangeLog.i
-data/test/sun/rmi/rmic/oldjavacRemoved/Foo.java.i
+data/test/java/util/logging/ParentLoggersTest.props.i
+data/test/java/rmi/MarshalledObject/compare/NullReference.java.i
 data/src/share/classes/java/nio/file/LinkOption.java.i
 data/src/share/classes/java/awt/Stroke.java.i
-data/src/share/classes/javax/security/auth/login/AppConfigurationEntry.java.i
+data/test/java/math/BigDecimal/NegateTests.java.i
+data/test/com/sun/net/httpserver/Test10.java.i
 data/test/com/sun/jdi/connect/spi/META-INF/services/com.sun.jdi.connect.Connector.i
 data/src/share/demo/jvmti/heapTracker/heapTracker.h.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/BooleanArrayCalls.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/CertsInFilesystemDirectoryResolver.java.i
-data/test/sun/security/krb5/auto/BasicKrb5Test.java.i
-data/src/share/classes/sun/security/x509/X509Cert.java.i
+data/test/sun/security/krb5/auto/ok-as-delegate-xrealm.sh.i
+data/src/share/classes/javax/management/BadAttributeValueExpException.java.i
+data/test/java/security/KeyFactory/Failover.java.i
 data/test/java/security/cert/CertPathBuilder/targetConstraints/BuildEEBasicConstraints.java.i
 data/test/java/lang/instrument/ilib/ClassReaderWriter.java.i
+data/test/sun/security/pkcs11/Provider/Absolute.java.i
 data/make/java/verify/mapfile-vers.i
 data/test/java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java.i
 data/make/mksample/nio/multicast/Makefile.i
-data/src/share/classes/org/openjdk/jigsaw/ClassInfo.java.i
-data/src/share/classes/java/awt/AWTEventMulticaster.java.i
+data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBufferFloat.java.i
+data/src/share/classes/javax/xml/crypto/dsig/spec/XSLTTransformParameterSpec.java.i
+data/test/javax/swing/JColorChooser/Test4165217.java.i
+data/src/share/demo/jvmti/hprof/hprof_table.h.i
 data/test/java/io/PipedWriter/ConnectAfterReaderClose.java.i
 data/test/java/awt/print/PrinterJob/PrintAWTImage.java.i
-data/src/share/classes/com/sun/jmx/snmp/InetAddressAcl.java.i
+data/test/java/awt/List/SetFontTest/SetFontTest.java.i
+data/src/share/classes/javax/management/remote/JMXServiceURL.java.i
 data/src/windows/hpi/export/timeval_md.h.i
 data/test/java/io/ByteArrayOutputStream/ToString.java.i
+data/src/share/classes/sun/tools/tree/LessExpression.java.i
 data/src/share/demo/nbproject/jfc/TableExample/nbproject/netbeans-targets.xml.i
+data/src/share/classes/com/sun/servicetag/resources/javase_servicetag.properties.i
 data/src/share/classes/javax/swing/AncestorNotifier.java.i
+data/src/share/classes/org/relaxng/datatype/Datatype.java.i
 data/src/solaris/doc/sun/man/man1/unpack200.1.i
 data/src/share/classes/com/sun/tools/jdi/TypeComponentImpl.java.i
-data/test/java/awt/FullScreen/UninitializedDisplayModeChangeTest/UninitializedDisplayModeChangeTest.java.i
-data/src/share/classes/com/sun/crypto/provider/AESParameters.java.i
-data/src/share/classes/sun/io/ByteToCharCp935.java.i
+data/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/java/net/MyDatagramSocketImplFactory.java.i
+data/src/share/classes/javax/imageio/stream/package.html.i
+data/src/share/classes/sun/misc/JavaIOAccess.java.i
 data/make/java/main/javaw/Makefile.i
 data/src/share/classes/javax/management/JMX.java.i
-data/make/com/sun/jndi/dns/Makefile.i
+data/test/java/util/PluggableLocale/TimeZoneNameProviderTest.java.i
 data/src/share/classes/java/lang/InterruptedException.java.i
-data/test/org/openjdk/jigsaw/_Library.java.i
-data/test/javax/sound/midi/Gervill/SimpleSoundbank/SetVendor.java.i
+data/src/share/classes/javax/xml/crypto/dsig/dom/DOMSignContext.java.i
 data/src/solaris/classes/sun/font/NativeStrikeDisposer.java.i
 data/src/share/native/sun/security/ec/ec2_163.c.i
-data/src/share/classes/java/util/concurrent/Phaser.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/LoadAllInstruments.java.i
-data/src/share/classes/sun/management/CompilationImpl.java.i
+data/src/share/classes/javax/naming/CommunicationException.java.i
+data/src/share/classes/sun/rmi/runtime/RuntimeUtil.java.i
+data/test/javax/crypto/JceSecurity/MyProvider.java.i
 data/test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/ShutdownImpl.java.i
 data/make/sun/tools/Makefile.i
-data/src/share/classes/org/ietf/jgss/ChannelBinding.java.i
-data/test/java/lang/management/MemoryMXBean/GetMBeanInfo.java.i
-data/test/javax/management/eventService/EventDelegateSecurityTest.java.i
+data/src/share/classes/sun/text/resources/CollationData_iw.java.i
+data/src/share/classes/javax/swing/plaf/metal/icons/ocean/newFolder.gif.i
 data/test/java/io/Serializable/typeStringBackRef/TypeStringBackRef.java.i
+data/src/share/classes/java/lang/RuntimeException.java.i
 data/src/windows/classes/sun/net/www/protocol/file/Handler.java.i
-data/src/share/native/sun/font/layout/MPreFixups.h.i
+data/src/share/native/sun/security/ec/impl/mp_gf2m.h.i
 data/test/org/openjdk/jigsaw/hello.sh.i
 data/test/java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java.i
 data/src/share/native/sun/awt/debug/debug_assert.c.i
-data/src/solaris/native/sun/nio/ch/PollArrayWrapper.c.i
-data/src/windows/native/sun/jkernel/graphics/masthead.bmp.i
-data/test/java/util/ResourceBundle/Control/PrivateConstructorRB.java.i
+data/test/java/beans/XMLEncoder/java_util_Collections_CheckedMap.java.i
+data/test/java/nio/file/Files/walkFileTree/grantAll.policy.i
+data/src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java.i
 data/test/java/rmi/activation/Activatable/checkAnnotations/security.policy.i
 data/test/sun/management/jmxremote/bootstrap/management_ssltest12_ko.properties.in.i
 data/test/java/nio/file/WatchService/grantDirAndOneLevel.policy.i
 data/src/share/demo/jfc/Metalworks/resources/HelpFiles/duke.gif.i
 data/src/share/classes/javax/swing/plaf/basic/BasicViewportUI.java.i
 data/src/solaris/classes/sun/awt/motif/MFileDialogPeer.java.i
-data/src/share/classes/com/sun/media/sound/AudioSynthesizer.java.i
+data/src/share/classes/com/sun/media/sound/JARSoundbankReader.java.i
 data/test/javax/sound/midi/Gervill/SimpleSoundbank/AddInstrument.java.i
 data/test/javax/swing/text/WrappedPlainView/6857057/bug6857057.java.i
-data/src/solaris/classes/com/sun/management/UnixOperatingSystem.java.i
 data/make/tools/CharsetMapping/MS1251.map.i
 data/test/java/beans/Introspector/Test4072197.java.i
 data/make/java/main/java/mapfile-sparcv9.i
 data/test/java/lang/reflect/Modifier/toStringTest.java.i
-data/src/share/classes/sun/management/MemoryNotifInfoCompositeData.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCanonicalXMLC14NMethod.java.i
-data/src/share/classes/com/sun/jndi/ldap/ext/StartTlsResponseImpl.java.i
-data/src/solaris/classes/sun/awt/motif/MFontConfiguration.java.i
+data/test/com/sun/jndi/ldap/NoWaitForReplyTest.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMIpAddress.java.i
+data/src/share/classes/javax/management/loading/MLetMBean.java.i
+data/src/solaris/native/java/io/FileSystem_md.c.i
 data/src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java.i
-data/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh.i
-data/src/share/classes/sun/net/httpserver/DefaultHttpServerProvider.java.i
-data/test/sun/net/InetAddress/nameservice/chaining/Simple1NameServiceDescriptor.java.i
-data/make/mkdemo/jvmti/README.txt.i
+data/test/java/nio/Buffer/genBasic.sh.i
+data/src/share/demo/applets/WireFrame/example2.html.i
+data/make/mkdemo/jvmti/README.txt.i
 data/test/java/security/CodeSigner/cert_file.i
-data/src/share/classes/java/io/OutputStreamWriter.java.i
-data/src/share/classes/com/sun/tools/hat/internal/model/ReachableObjects.java.i
-data/src/share/classes/com/sun/media/sound/ModelByteBufferWavetable.java.i
+data/test/java/lang/ClassLoader/defineClass/DefineClassByteBuffer.java.i
+data/src/share/classes/javax/print/attribute/standard/OrientationRequested.java.i
+data/make/tools/src/build/tools/javazic/RuleDay.java.i
 data/test/java/rmi/transport/handshakeTimeout/HandshakeTimeout.java.i
 data/src/share/classes/sun/dc/DuctusRenderingEngine.java.i
-data/src/share/classes/com/sun/imageio/plugins/common/LZWStringTable.java.i
-data/src/solaris/classes/sun/nio/ch/SctpServerChannelImpl.java.i
-data/test/java/rmi/activation/Activatable/elucidateNoSuchMethod/group.security.policy.i
+data/test/org/openjdk/jigsaw/repolist.sh.i
+data/test/javax/swing/plaf/synth/6771547/synthconfig.xml.i
+data/src/share/classes/com/sun/jdi/event/ClassUnloadEvent.java.i
+data/test/java/net/Socket/ShutdownBoth.java.i
 data/src/share/classes/sun/security/jgss/GSSContextImpl.java.i
 data/src/share/classes/sun/text/resources/FormatData_no_NO.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_fr_CH.properties.i
 data/src/share/classes/sun/tools/java/ClassPath.java.i
 data/src/share/classes/java/net/URLStreamHandlerFactory.java.i
 data/test/java/awt/print/PrinterJob/SameService.java.i
-data/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java.i
-data/src/solaris/native/sun/awt/awt_InputMethod.c.i
-data/src/solaris/classes/sun/net/www/protocol/http/NTLMAuthentication.java.i
-data/make/javax/swing/Makefile.i
-data/make/tools/CharsetMapping/IBM1143.map.i
+data/test/sun/security/jgss/DefaultGssConfig.java.i
+data/src/share/native/sun/reflect/NativeAccessors.c.i
+data/src/solaris/native/sun/java2d/loops/vis_IntBgr.c.i
+data/src/solaris/doc/sun/man/man1/ja/jvisualvm.1.i
+data/test/sun/rmi/server/MarshalOutputStream/marshalForeignStub/Receiver.java.i
+data/test/sun/net/www/protocol/jar/copyin.sh.i
+data/src/share/native/sun/awt/medialib/mlib_ImageCreate.h.i
+data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/MyX509KeyManager.java.i
 data/test/sun/tools/jstat/jstatGcOutput1.sh.i
-data/test/javax/smartcardio/Serialize.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_en_GB.properties.i
 data/src/share/classes/javax/management/openmbean/OpenMBeanParameterInfo.java.i
 data/src/share/classes/sun/security/ec/ECKeyPairGenerator.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifTabbedPaneUI.java.i
+data/src/share/classes/sun/tools/tree/IncDecExpression.java.i
+data/src/share/classes/sun/security/jgss/krb5/WrapToken_v2.java.i
 data/test/java/beans/XMLEncoder/javax_swing_OverlayLayout.java.i
 data/test/java/nio/file/Files/walkFileTree/Nulls.java.i
-data/test/java/rmi/reliability/juicer/security.policy.i
 data/src/solaris/native/sun/awt/medialib/mlib_ImageConvCopyEdge_Fp.c.i
 data/src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java.i
-data/src/windows/native/sun/windows/awt_GDIObject.h.i
+data/src/share/classes/java/security/UnrecoverableKeyException.java.i
 data/src/share/demo/jfc/Metalworks/resources/HelpFiles/back.gif.i
-data/src/share/classes/java/lang/management/package.html.i
+data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsProxyStackOverflow.java.i
+data/make/tools/CharsetMapping/IBM1025.map.i
+data/src/share/classes/java/util/concurrent/ForkJoinPool.java.i
 data/test/com/sun/jdi/LocationTest.java.i
 data/test/java/io/Serializable/underlyingOutputStreamException/UnderlyingOutputStreamException.java.i
-data/src/share/classes/java/awt/font/MultipleMaster.java.i
-data/test/java/security/BasicPermission/ExitVMEquals.java.i
+data/src/share/classes/java/security/cert/package.html.i
 data/src/share/classes/sun/util/resources/TimeZoneNames_en_IE.java.i
-data/test/sun/nio/cs/SJISCanEncode.java.i
+data/test/sun/security/pkcs11/KeyStore/BasicData/pk1.cert2.i
 data/test/javax/sound/midi/Gervill/SF2SoundbankReader/TestGetSoundbankUrl.java.i
 data/src/share/native/com/sun/media/sound/PlatformMidi.h.i
-data/test/sun/security/provider/DSA/TestKeyPairGenerator.java.i
 data/test/javax/management/remote/mandatory/socketFactories/RMIServerFactory.java.i
-data/src/share/classes/javax/swing/SpinnerListModel.java.i
+data/src/solaris/native/sun/awt/awt_Checkbox.c.i
 data/src/share/classes/sun/security/ec/NamedCurve.java.i
-data/src/share/classes/javax/crypto/spec/DHParameterSpec.java.i
+data/test/javax/management/remote/mandatory/connection/IdleTimeoutTest.java.i
 data/test/sun/security/krb5/auto/Test5653.java.i
 data/src/share/classes/sun/tools/java/BinaryConstantPool.java.i
-data/test/sun/security/tools/jarsigner/diffend.sh.i
-data/src/share/classes/sun/io/ByteToCharCp964.java.i
+data/test/javax/sound/midi/Gervill/SF2SoundbankReader/TestGetSoundbankInputStream.java.i
 data/test/java/rmi/activation/Activatable/extLoadedImpl/ExtLoadedImpl_Stub.java.i
 data/test/java/util/concurrent/FutureTask/CancelledFutureLoops.java.i
-data/src/share/classes/sun/tools/java/BinaryExceptionHandler.java.i
-data/src/share/classes/com/sun/security/auth/SubjectCodeSource.java.i
+data/src/share/classes/sun/security/ssl/ProtocolList.java.i
+data/make/com/sun/java/browser/dom/Makefile.i
 data/src/share/demo/jfc/TableExample/TableMap.java.i
 data/src/share/classes/com/sun/beans/decoder/ArrayElementHandler.java.i
 data/src/share/classes/javax/imageio/event/IIOWriteProgressListener.java.i
-data/src/share/bin/splashscreen_stubs.c.i
+data/src/share/classes/sun/text/resources/FormatData_es_PA.java.i
 data/src/share/demo/nbproject/management/JTop/build.xml.i
 data/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider.i
-data/src/share/classes/java/text/Bidi.java.i
+data/src/share/demo/jvmti/hprof/hprof_tls.c.i
 data/src/share/sample/nio/server/B1.java.i
-data/src/solaris/native/com/sun/management/SolarisOperatingSystem.c.i
+data/test/java/util/zip/ZipFile/CorruptedZipFiles.java.i
+data/src/share/demo/jvmti/hprof/hprof_cpu.c.i
 data/test/java/rmi/registry/altSecurityManager/AltSecurityManager.java.i
 data/src/share/classes/sun/tools/tree/CharExpression.java.i
 data/test/java/rmi/activation/Activatable/unregisterInactive/UnregisterInactive.java.i
 data/test/sun/nio/cs/JISAutoDetectTest.java.i
-data/src/share/native/java/lang/fdlibm/src/w_log.c.i
 data/test/java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.java.i
 data/src/share/demo/java2d/J2DBench/resources/textdata/hindi.ut8.txt.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/SimpleShape.java.i
+data/src/share/classes/sun/nio/cs/ext/IBM949C.java.i
 data/src/windows/classes/sun/awt/Win32ColorModel24.java.i
-data/src/share/demo/jvmti/hprof/hprof_io.c.i
+data/test/java/rmi/activation/ActivationSystem/modifyDescriptor/rmid.security.policy.i
+data/test/java/lang/management/ThreadMXBean/Semaphore.java.i
 data/test/java/io/File/Basic.java.i
-data/src/share/classes/javax/xml/crypto/dsig/spec/HMACParameterSpec.java.i
+data/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt.i
+data/test/java/util/ResourceBundle/Test4318520.java.i
 data/test/java/net/DatagramSocket/SendDatagramToBadAddress.java.i
+data/src/windows/classes/sun/awt/windows/WCustomCursor.java.i
 data/test/java/lang/Character/CheckScript.java.i
+data/src/share/classes/sun/net/www/content/image/png.java.i
 data/test/java/net/ProxySelector/NullSelector.java.i
-data/src/solaris/bin/arm/jvm.cfg.i
-data/test/sun/java2d/cmm/ColorConvertOp/ColorConvertTest.java.i
-data/test/java/lang/Class/forName/Z.java.i
-data/src/share/native/sun/font/layout/MPreFixups.cpp.i
+data/test/javax/management/mxbean/MXBeanAnnotationTest.java.i
+data/test/java/net/DatagramSocket/SendSize.java.i
 data/test/sun/nio/cs/OLD/IBM948_OLD.java.d
 data/src/share/classes/sun/rmi/transport/LiveRef.java.i
 data/src/share/classes/sun/security/krb5/internal/TCPClient.java.i
 data/src/solaris/native/java/lang/java_props_md.c.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/icons/Warn.gif.i
+data/test/java/lang/instrument/DummyClass.java.i
 data/src/share/classes/sun/tools/tree/SwitchStatement.java.i
-data/src/share/native/sun/font/layout/ExtensionSubtables.cpp.i
-data/test/sun/security/pkcs11/rsa/KeyWrap.java.i
-data/src/solaris/classes/sun/awt/X11/XToolkitThreadBlockedHandler.java.i
+data/test/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java.i
+data/src/windows/classes/sun/nio/ch/DefaultSelectorProvider.java.i
 data/test/demo/jvmti/hprof/CpuOldTest.java.i
-data/src/share/classes/javax/imageio/spi/ImageReaderSpi.java.i
+data/make/PatchList.solaris.i
+data/test/sun/nio/cs/OLD/MS932_OLD.java.i
 data/test/javax/sound/midi/Gervill/SoftChannel/NoteOff.java.i
 data/test/java/security/Provider/ProviderInfoCheck.java.i
-data/test/javax/management/MBeanServer/InstanceNotFoundExceptionTest.java.i
 data/make/tools/CharsetMapping/ISO_8859_11.map.i
+data/src/share/classes/javax/swing/border/CompoundBorder.java.i
 data/src/windows/native/sun/java2d/d3d/D3DRenderQueue.h.i
 data/test/java/awt/image/GetDataElementsTest.java.i
 data/src/share/classes/sun/util/resources/CalendarData_ro.properties.i
-data/src/windows/native/sun/jkernel/kernel_en.rc.i
+data/test/sun/security/krb5/auto/Action.java.i
 data/test/sun/nio/cs/OLD/IBM943C_OLD.java.i
+data/src/share/classes/java/io/PipedOutputStream.java.i
 data/test/java/util/ResourceBundle/Bug6204853.java.i
-data/src/share/demo/jvmti/minst/minst.c.i
+data/src/share/native/sun/awt/image/DataBufferNative.c.i
 data/test/java/lang/invoke/6991596/Test6991596.java.i
 data/test/java/net/URLClassLoader/closetest/build.sh.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS16S16Func.c.i
 data/src/share/demo/java2d/J2DBench/options/default.opt.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/jibxhelpers/FontMapper.java.i
+data/src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java.i
+data/test/tools/pack200/pack200-verifier/data/README.i
 data/src/share/classes/com/sun/crypto/provider/AESCipher.java.i
 data/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.java.i
 data/src/share/classes/javax/crypto/KeyAgreement.java.i
-data/src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethod.java.i
+data/test/java/nio/file/TestUtil.java.i
 data/test/java/rmi/activation/Activatable/nestedActivate/NestedActivate.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/CountedTimerTask.java.i
 data/test/java/math/BigDecimal/DivideMcTests.java.i
 data/test/javax/sound/midi/Gervill/SoftChannel/PolyPressure.java.i
 data/test/sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java.i
 data/test/java/util/PluggableLocale/ExecTest.sh.i
-data/src/share/classes/sun/text/resources/FormatData_ms.java.i
-data/src/share/classes/sun/util/calendar/ZoneInfoFile.java.i
+data/src/solaris/classes/sun/nio/fs/UnixUserPrincipals.java.i
+data/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java.i
+data/src/share/classes/java/awt/DisplayMode.java.i
 data/test/java/net/InetAddress/Simple2NameServiceDescriptor.java.i
 data/src/solaris/classes/sun/awt/motif/MCheckboxMenuItemPeer.java.i
 data/src/share/classes/sun/security/x509/AttributeNameEnumeration.java.i
-data/test/javax/script/CommonSetup.sh.i
+data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGBuffer.java.i
 data/make/tools/src/build/tools/charsetmapping/Main.java.i
 data/src/share/classes/sun/security/util/ManifestDigester.java.i
-data/src/solaris/classes/sun/java2d/xr/GrowableIntArray.java.i
+data/src/solaris/classes/sun/nio/fs/UnixMountEntry.java.i
 data/test/java/util/jar/JarInputStream/ScanSignedJar.java.i
-data/src/share/classes/sun/font/FontLineMetrics.java.i
+data/test/java/net/Socket/AccurateTimeout.java.i
 data/test/java/io/charStreams/LineGenerator.java.i
-data/make/java/management/FILES_c.gmk.i
+data/test/java/rmi/server/RemoteObject/notExtending/NotExtending_Stub.java.i
 data/test/javax/sound/midi/Gervill/ModelPerformer/SetExclusiveClass.java.i
 data/make/tools/CharsetMapping/euc_tw.map.d
+data/test/org/openjdk/jigsaw/hello-optional.sh.i
 data/src/solaris/classes/sun/nio/ch/SctpAssociationImpl.java.i
 data/test/sun/nio/cs/EucJpLinux0212.java.i
 data/src/share/native/sun/font/layout/TrimmedArrayProcessor.h.i
 data/test/java/net/URL/ParseAuthority.java.i
 data/make/mkdemo/jfc/Makefile.i
-data/src/share/native/sun/java2d/cmm/lcms/cmsxform.c.i
-data/src/share/classes/com/sun/tools/hat/resources/platform_names.txt.i
-data/test/sun/net/www/protocol/file/GetContentType.java.i
-data/make/tools/CharsetMapping/euc_tw.map.i
-data/src/share/native/sun/awt/image/jpeg/jversion.h.i
+data/src/share/native/sun/java2d/pipe/PathConsumer2D.h.i
+data/src/share/native/sun/font/layout/LEGlyphStorage.cpp.i
+data/src/solaris/hpi/native_threads/include/porting.h.i
+data/make/tools/CharsetMapping/IBM284.map.i
 data/src/share/classes/java/rmi/server/RMIFailureHandler.java.i
-data/test/java/beans/Statement/Test6224433.java.i
-data/test/javax/management/remote/mandatory/provider/provider/JMXConnectorServerProviderImpl.java.i
+data/test/java/util/concurrent/ThreadPoolExecutor/CoreThreadTimeOut.java.i
 data/test/sun/security/pkcs11/fips/JSSEClient.java.i
 data/src/share/native/sun/font/layout/LEGlyphFilter.h.i
 data/src/solaris/native/sun/awt/medialib/vis_proto.h.i
 data/test/sun/security/provider/certpath/DisabledAlgorithms/openssl.cnf.i
 data/src/linux/doc/man/jstat.1.i
 data/src/solaris/classes/sun/awt/X11/XFileDialogPeer.java.i
-data/test/javax/management/relation/NonArrayListTest.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/XMLX509CRL.java.i
-data/test/java/rmi/reliability/scripts/create_benchmark_jars.ksh.i
+data/test/java/rmi/activation/Activatable/forceLogSnapshot/ActivateMe.java.i
+data/src/share/native/sun/java2d/opengl/OGLBlitLoops.h.i
+data/test/sun/nio/cs/BufferUnderflowEUCTWTest.java.i
 data/src/share/demo/java2d/J2DBench/resources/textdata/hebrew.ut8.txt.i
-data/src/share/classes/com/sun/jdi/connect/spi/package.html.i
+data/test/java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java.i
 data/src/share/classes/javax/swing/doc-files/groupLayout.2.gif.i
-data/src/share/classes/sun/nio/cs/IBM852.java.i
+data/test/java/beans/XMLEncoder/java_sql_Timestamp.java.i
 data/test/com/sun/jndi/ldap/LdapName/UnescapeTest.java.i
-data/src/share/classes/sun/invoke/util/ValueConversions.java.i
+data/test/java/net/B6499348.java.i
 data/src/share/classes/javax/naming/spi/DirectoryManager.java.i
-data/src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.c.i
+data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain0.txt.i
 data/src/share/classes/com/sun/jndi/toolkit/url/UrlUtil.java.i
 data/src/windows/native/sun/windows/awt_MouseEvent.h.i
 data/test/java/nio/channels/DatagramChannel/ReceiveISA.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/package.html.i
-data/src/share/classes/java/nio/file/FileVisitor.java.i
-data/src/solaris/classes/sun/nio/fs/UnixFileStore.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/AnimationController.java.i
+data/src/share/classes/sun/security/x509/X509Cert.java.i
+data/test/com/sun/jdi/NullLocalVariable.sh.i
+data/test/java/rmi/server/serverStackTrace/ServerStackTrace.java.i
+data/test/java/awt/image/MemoryLeakTest/MemoryLeakTest.java.i
 data/src/share/classes/com/sun/tools/example/debug/event/VMDisconnectEventSet.java.i
-data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/icons/ListView.gif.i
-data/test/com/sun/crypto/provider/Mac/MacClone.java.i
-data/src/share/classes/javax/swing/colorchooser/SyntheticImage.java.i
+data/test/java/security/Security/signedfirst/exp.jar.i
+data/src/share/classes/sun/management/snmp/util/SnmpListTableCache.java.i
+data/test/java/lang/annotation/AnnotationTypeMismatchException/FoundType.java.i
+data/make/javax/rmi/ssl/Makefile.i
 data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/JavaxSSLContextImpl.java.i
 data/make/tools/CharsetMapping/IBM833.map.i
 data/make/tools/CharsetMapping/ISO_8859_3.map.i
-data/src/share/classes/sun/security/internal/interfaces/TlsMasterSecret.java.i
-data/test/java/awt/Graphics2D/DrawString/LCDTextSrcEa.java.i
-data/src/share/classes/com/sun/security/auth/NTSidUserPrincipal.java.i
-data/test/com/sun/jdi/StepTest.java.i
+data/src/share/classes/javax/management/modelmbean/XMLParseException.java.i
+data/test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOn_Multiple.java.i
+data/test/java/beans/Introspector/Test6963811.java.i
 data/src/solaris/classes/sun/java2d/xr/XRRenderer.java.i
 data/test/java/io/Serializable/defaultReadObjectCNFException/DefaultReadObjectCNFException.java.i
 data/src/share/classes/java/awt/font/package.html.i
-data/src/share/classes/javax/net/ssl/HostnameVerifier.java.i
-data/test/javax/sound/midi/Gervill/SoftAudioBuffer/Array.java.i
+data/test/sun/tools/jstat/jstatHelp.sh.i
 data/src/share/native/sun/font/layout/SingleTableProcessor.cpp.i
-data/src/share/native/sun/awt/medialib/mlib_sys.h.i
+data/src/share/classes/sun/io/ByteToCharSingleByte.java.i
+data/test/sun/security/pkcs11/Provider/ConfigQuotedString.sh.i
 data/src/share/classes/com/sun/net/ssl/KeyManager.java.i
-data/src/share/classes/java/lang/IllegalThreadStateException.java.i
+data/src/share/classes/javax/smartcardio/CardChannel.java.i
+data/src/share/classes/java/sql/Clob.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java.i
-data/src/share/classes/java/io/DataInputStream.java.i
+data/test/java/security/cert/CertificateFactory/BadX509CertData.java.i
+data/src/share/classes/com/sun/imageio/spi/RAFImageOutputStreamSpi.java.i
 data/test/java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html.i
 data/test/java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java.i
 data/test/java/util/UUID/UUIDTest.java.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_CREATEMUTEX.java.i
+data/src/share/classes/com/sun/jdi/request/InvalidRequestStateException.java.i
+data/test/javax/swing/DataTransfer/6456844/bug6456844.java.i
 data/src/share/native/sun/font/layout/GlyphSubstLookupProc.cpp.i
 data/test/java/beans/XMLEncoder/Test6570354.java.i
 data/src/share/classes/sun/print/resources/serviceui.properties.i
-data/src/share/classes/sun/text/normalizer/UCharacterIterator.java.i
+data/test/java/net/URLConnection/xml/xml1.i
 data/test/java/util/logging/LoggerWeakRefLeak.sh.i
 data/src/windows/native/sun/windows/awt_DnDDT.cpp.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMHostTrap.java.i
+data/test/javax/management/mxbean/TypeNameTest.java.i
 data/src/windows/native/sun/windows/awt_Button.cpp.i
 data/make/tools/CharsetMapping/IBM1142.map.i
+data/src/solaris/classes/sun/nio/ch/SctpServerChannelImpl.java.i
 data/test/sun/security/pkcs11/fips/cert8.db.i
-data/src/share/classes/com/sun/media/sound/DLSInstrument.java.i
-data/src/share/classes/javax/swing/JMenuItem.java.i
+data/src/share/classes/sun/reflect/UnsafeQualifiedStaticBooleanFieldAccessorImpl.java.i
 data/test/demo/zipfs/basic.sh.i
-data/test/java/lang/StrictMath/HypotTests.java.i
+data/src/share/classes/com/sun/media/sound/SoftMixingMixer.java.i
 data/src/share/classes/com/sun/servicetag/LinuxSystemEnvironment.java.i
 data/make/tools/sharing/tests/JHello.java.i
-data/src/share/classes/sun/security/provider/SHA2.java.i
+data/src/share/classes/sun/tools/jconsole/inspector/XMBeanInfo.java.i
+data/test/com/sun/jdi/connect/spi/Foo.java.i
 data/src/share/classes/java/awt/GraphicsCallback.java.i
-data/src/share/classes/javax/security/auth/x500/X500Principal.java.i
+data/test/java/lang/instrument/PremainClass/InheritAgent0011.java.i
 data/test/java/lang/instrument/PremainClass/README.i
 data/test/java/util/ResourceBundle/Control/NonResourceBundle.java.i
 data/src/share/classes/com/sun/pept/transport/Connection.java.i
 data/src/share/classes/javax/swing/text/Caret.java.i
-data/make/tools/swing-beans/beaninfo/images/JCheckBoxMenuItemMono32.gif.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ipstore.i
-data/src/share/classes/javax/swing/plaf/metal/MetalInternalFrameTitlePane.java.i
+data/test/java/io/PrintWriter/OpsAfterClose.java.i
+data/src/solaris/native/sun/nio/ch/PollArrayWrapper.c.i
+data/src/share/classes/sun/tools/jar/resources/jar_de.properties.i
 data/src/solaris/native/sun/awt/awt_Cursor.h.i
 data/test/java/net/DatagramPacket/ReuseBuf.java.i
 data/src/share/classes/sun/io/CharToByteCp1143.java.i
 data/make/java/nio/FILES_java.gmk.i
-data/src/share/classes/sun/applet/AppletIllegalArgumentException.java.i
+data/src/share/classes/java/util/jar/Pack200.java.i
 data/src/share/classes/sun/applet/AppletAudioClip.java.i
-data/test/java/io/Serializable/unnamedPackageSwitch/A.java.i
+data/test/sun/rmi/rmic/newrmic/equivalence/OrangeEchoImpl.java.i
 data/src/share/classes/sun/security/krb5/Config.java.i
-data/src/windows/classes/sun/nio/ch/SourceChannelImpl.java.i
+data/src/share/native/java/lang/Class.c.i
 data/src/solaris/native/sun/security/pkcs11/wrapper/p11_md.h.i
+data/src/share/classes/sun/tools/tree/ForStatement.java.i
 data/test/java/lang/ThreadLocal/MemoryLeak.java.i
 data/test/java/rmi/server/RMIClassLoader/getClassLoader/GetClassLoader.java.i
-data/src/share/classes/java/util/concurrent/locks/ReadWriteLock.java.i
+data/make/mkdemo/applets/GraphicsTest/Makefile.i
 data/src/solaris/classes/sun/awt/X11/security-icon-interim48.png.i
-data/make/tools/sharing/tests/GHello.java.i
+data/test/java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java.i
 data/src/share/transport/shmem/shmemBase.h.i
 data/make/tools/swing-beans/beaninfo/images/JInternalFrameMono16.gif.i
-data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGBuffer.java.i
+data/make/java/nio/mxbean/Makefile.i
 data/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java.i
-data/src/share/native/sun/security/ec/impl/ec.c.i
+data/src/share/instrument/JPLISAgent.c.i
 data/src/share/hpi/src/hpi.c.i
 data/make/tools/src/build/tools/jdwpgen/ClassTypeNode.java.i
 data/test/java/nio/charset/CharsetDecoder/EmptyInput.java.i
 data/test/javax/swing/AbstractButton/6711682/bug6711682.java.i
 data/test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableSortedSet.java.i
-data/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java.i
-data/test/java/net/Authenticator/B4678055.java.i
+data/src/share/demo/jvmti/hprof/hprof_object.c.i
 data/test/javax/imageio/plugins/png/PngOutputTypeTest.java.i
 data/src/share/demo/jfc/Notepad/resources/cut.gif.i
 data/test/tools/launcher/lib/sparc/lib32/liblibrary.so.i
 data/src/share/native/sun/font/layout/GlyphPosnLookupProc.h.i
+data/test/java/io/Serializable/serialver/classpath/Test.java.i
 data/test/java/rmi/activation/Activatable/nestedActivate/ActivateMe.java.i
-data/src/share/sample/scripting/scriptpad/src/resources/conc.js.i
-data/test/java/util/Locale/serialized/java6locale__US.i
-data/src/share/classes/com/sun/jndi/dns/DnsNameParser.java.i
+data/test/sun/security/mscapi/KeyStoreCompatibilityMode.sh.i
+data/test/javax/management/ObjectName/ComparatorTest.java.i
+data/test/java/lang/InheritableThreadLocal/ITLRemoveTest.java.i
 data/test/com/sun/jdi/FilterNoMatch.java.i
-data/test/javax/management/modelmbean/ModelMBeanInfoSupport/GetAllDescriptorsTest.java.i
-data/src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BC_S16.c.i
+data/src/share/classes/sun/util/resources/CurrencyNames_nl_NL.properties.i
+data/test/java/beans/XMLEncoder/java_util_Collections_CheckedRandomAccessList.java.i
 data/test/com/sun/security/sasl/log.properties.i
-data/src/share/classes/java/lang/reflect/Modifier.java.i
-data/test/sun/jvmstat/perfdata/PrologSanity/PrologSizeSanityCheck.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_en_US.properties.i
 data/src/share/classes/sun/awt/util/IdentityLinkedList.java.i
 data/test/sun/tools/common/ShutdownSimpleApplication.java.i
-data/src/share/classes/javax/swing/plaf/multi/MultiScrollBarUI.java.i
-data/make/tools/CharsetMapping/MacRomania.map.i
+data/src/share/classes/sun/java2d/pipe/ShapeDrawPipe.java.i
+data/src/share/classes/sun/util/resources/CalendarData_pt.properties.i
+data/test/java/util/Currency/currency.properties.i
 data/src/share/classes/java/awt/doc-files/ImplicitFocusTransfer.gif.i
 data/src/share/classes/com/sun/media/sound/DataPusher.java.i
 data/test/java/lang/reflect/Generics/TestC1.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java.i
 data/src/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java.i
-data/src/share/classes/java/awt/Choice.java.i
-data/test/java/util/Hashtable/ReadObject.java.i
+data/src/share/classes/sun/text/resources/FormatData_de.java.i
+data/test/sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java.i
 data/test/javax/print/applet/applet1/Applet1.java.i
 data/src/share/classes/javax/swing/MenuSelectionManager.java.i
 data/src/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties.i
-data/src/share/native/sun/awt/giflib/dgif_lib.c.i
+data/test/java/security/cert/CertPathValidatorException/GetMessage.java.i
 data/src/share/demo/nbproject/jfc/Metalworks/nbproject/netbeans-targets.xml.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformXPath2Filter.java.i
-data/src/share/classes/sun/management/counter/perf/StringCounterSnapshot.java.i
+data/make/modules/jdk.tools.ls.i
+data/test/javax/print/DialogMargins.java.i
 data/src/share/classes/sun/awt/EmbeddedFrame.java.i
-data/src/share/classes/sun/security/pkcs12/MacData.java.i
+data/test/javax/management/modelmbean/ExoticTargetTypeTest.java.i
 data/src/share/classes/com/sun/media/sound/SunFileWriter.java.i
-data/test/java/nio/charset/Charset/default.sh.i
+data/test/org/openjdk/jigsaw/_Resolver.java.i
 data/test/javax/swing/border/Test4120351.java.i
 data/test/java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java.i
-data/test/javax/management/remote/mandatory/connectorServer/MBSFPreStartPostStartTest.java.i
-data/test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/Compress.java.i
-data/src/share/native/java/lang/fdlibm/src/s_expm1.c.i
+data/src/windows/native/sun/windows/awt_MenuItem.cpp.i
+data/src/share/classes/java/awt/geom/AffineTransform.java.i
+data/test/javax/sound/midi/Gervill/SoftTuning/Load4.java.i
+data/src/share/classes/com/sun/jmx/remote/internal/ProxyRef.java.i
 data/make/tools/swing-beans/beaninfo/images/JTextPaneMono16.gif.i
-data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ja.properties.i
+data/src/share/demo/applets/Clock/example1.html.i
 data/test/sun/security/pkcs11/KeyStore/ClientAuthData/truststore.i
-data/src/share/classes/javax/swing/DefaultDesktopManager.java.i
+data/test/java/beans/XMLEncoder/java_util_Collections_CheckedSortedMap.java.i
 data/test/java/lang/instrument/bootclasspathAgent.mf.i
-data/src/share/classes/javax/swing/plaf/metal/icons/ocean/maximize-pressed.gif.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/Makefile.i
 data/test/java/beans/XMLEncoder/6777487/TestCheckedSortedMap.java.i
-data/test/javax/print/applet/applet4/Applet4.java.i
-data/test/java/net/Socket/AddressTest.java.i
+data/test/javax/management/relation/NonArrayListTest.java.i
 data/src/share/classes/com/sun/servicetag/resources/Putback-Notes.txt.i
-data/src/share/classes/sun/io/ByteToCharGBK.java.i
+data/src/windows/native/java/lang/ProcessImpl_md.c.i
 data/src/solaris/classes/sun/java2d/xr/XcbRequestCounter.java.i
-data/test/javax/management/remote/mandatory/loading/TargetMBeanTest.java.i
 data/src/share/classes/javax/management/remote/JMXConnectorServerFactory.java.i
-data/src/share/classes/java/security/Guard.java.i
+data/test/java/beans/XMLEncoder/java_util_Collections_SynchronizedCollection.java.i
 data/src/solaris/native/sun/java2d/loops/vis_SrcMaskFill.c.i
-data/test/sun/security/ssl/templates/SSLEngineTemplate.java.i
+data/src/share/classes/javax/management/MBeanPermission.java.i
+data/src/share/classes/sun/nio/cs/ext/IBM1383.java.i
 data/src/share/classes/sun/reflect/generics/scope/Scope.java.i
 data/src/linux/doc/man/ja/rmic.1.i
 data/src/share/native/sun/awt/image/jpeg/jdapimin.c.i
-data/src/share/classes/java/dyn/MethodHandleProvider.java.i
-data/src/share/classes/javax/swing/text/IconView.java.i
+data/src/share/classes/javax/swing/text/TabableView.java.i
+data/src/share/classes/sun/print/CustomMediaSizeName.java.i
 data/src/share/classes/sun/font/TrueTypeGlyphMapper.java.i
-data/test/java/nio/channels/Selector/CheckLocking.java.i
 data/src/share/classes/java/lang/reflect/Proxy.java.i
 data/make/org/Makefile.i
-data/test/javax/management/MBeanServer/PreRegisterTest.java.i
 data/src/share/classes/java/util/concurrent/PriorityBlockingQueue.java.i
 data/src/share/modules/jdk.swing/module-info.java.i
-data/src/share/native/sun/java2d/loops/ImageData.h.i
-data/src/share/classes/sun/tools/jstat/Alignment.java.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpPduFactoryBER.java.i
-data/src/solaris/classes/sun/awt/X11/XScrollPanePeer.java.i
-data/test/java/awt/print/Dialog/DialogType.java.i
+data/test/java/security/cert/CertPathValidator/indirectCRL/generate.sh.i
+data/test/java/awt/image/ConvolveOp/EdgeNoOpCrash.java.i
+data/src/share/classes/com/sun/jmx/snmp/defaults/SnmpProperties.java.i
+data/test/java/rmi/activation/Activatable/nestedActivate/rmid.security.policy.i
+data/test/java/util/ResourceBundle/Bug4168625Resource2.java.i
 data/src/share/classes/sun/security/pkcs11/P11Signature.java.i
 data/src/share/classes/com/sun/imageio/plugins/bmp/BMPMetadata.java.i
 data/src/share/classes/sun/awt/geom/ChainEnd.java.i
-data/make/README.i
+data/src/share/classes/sun/tools/jconsole/inspector/IconManager.java.i
 data/src/solaris/doc/sun/man/man1/ja/jconsole.1.i
-data/src/share/native/sun/security/ec/mpi-priv.h.i
+data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/group.security.policy.i
 data/test/sun/misc/JarIndex/metaInfFilenames/jarC/META-INF/fonts/Company-corporate.ttf.i
 data/src/share/classes/com/sun/tools/hat/resources/hat.js.i
-data/test/java/security/Security/signedfirst/Static.sh.i
+data/test/java/lang/instrument/StressGetObjectSizeTest.sh.i
 data/test/javax/sound/midi/Gervill/SoftReceiver/Send_PitchBend.java.i
 data/src/share/classes/com/sun/jmx/remote/protocol/iiop/IIOPProxyImpl.java.i
-data/test/java/awt/font/TextLayout/UnderlinePositionTest.java.i
 data/make/tools/swing-beans/beaninfo/images/JViewportColor16.gif.i
 data/src/share/sample/vm/jvm-clr/invoker.java.i
 data/src/share/classes/com/sun/tools/hat/internal/util/CompositeEnumeration.java.i
-data/src/share/classes/javax/sound/midi/spi/MidiFileReader.java.i
+data/src/share/classes/sun/security/x509/RFC822Name.java.i
 data/test/sun/tools/jstat/jstatGcNewCapacityOutput1.sh.i
 data/test/sun/security/krb5/DnsFallback.java.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageConv_f.c.i
 data/test/java/lang/instrument/ParallelTransformerLoaderAgent.java.i
 data/test/java/awt/Component/isLightweightCrash/IsLightweightCrash.java.i
 data/test/java/beans/VetoableChangeSupport/TestListeners.java.i
-data/test/java/io/InputStream/OpsAfterClose.java.i
+data/test/sun/net/InetAddress/nameservice/CacheTest.java.i
 data/test/java/util/concurrent/locks/Lock/TimedAcquireLeak.java.i
-data/src/share/classes/sun/nio/cs/US_ASCII.java.i
-data/src/share/classes/sun/tools/jconsole/inspector/XOpenTypeViewer.java.i
+data/src/share/classes/sun/security/pkcs11/wrapper/Functions.java.i
+data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-i586/libLauncher.so.i
 data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/linux-i586/libLauncher.so.i
-data/test/java/rmi/activation/CommandEnvironment/group.security.policy.i
 data/test/java/rmi/reliability/benchmark/bench/serial/Main.java.i
+data/test/com/sun/jdi/MonitorEventTest.java.i
 data/src/share/classes/sun/security/pkcs11/P11Mac.java.i
+data/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.java.i
 data/src/share/classes/java/sql/Ref.java.i
 data/test/java/util/concurrent/atomic/VMSupportsCS8.java.i
-data/src/share/classes/javax/swing/plaf/ListUI.java.i
-data/make/mkdemo/applets/WireFrame/Makefile.i
+data/src/share/classes/java/sql/Array.java.i
+data/test/java/nio/charset/spi/Test.java.i
 data/src/share/classes/sun/io/CharToByteCp1258.java.i
 data/make/tools/CharsetMapping/IBM037.c2b.i
 data/src/share/classes/sun/nio/cs/StreamEncoder.java.i
-data/test/java/awt/im/InputContext/bug4625203.java.i
+data/test/sun/security/provider/certpath/DisabledAlgorithms/CPBuilder.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/SimpleNode.java.i
 data/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c.i
 data/src/share/classes/javax/swing/SwingPaintEventDispatcher.java.i
-data/src/share/classes/sun/dyn/util/BytecodeDescriptor.java.i
+data/test/demo/jvmti/DemoRun.java.i
 data/src/share/sample/nio/chatserver/DataReader.java.i
 data/src/share/classes/javax/naming/event/EventDirContext.java.i
-data/src/share/native/sun/awt/image/cvutils/img_icm.h.i
-data/test/javax/management/remote/mandatory/connection/RMIConnector_NPETest.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/ProxyArrayCalls.java.i
-data/src/share/classes/sun/text/resources/FormatData_ar_BH.java.i
+data/make/tools/src/build/tools/jdwpgen/CommandSetNode.java.i
+data/test/javax/rmi/ssl/SSLSocketParametersTest.java.i
+data/src/share/back/threadControl.c.i
 data/test/java/nio/channels/ServerSocketChannel/Open.java.i
-data/src/share/classes/com/sun/jndi/dns/DnsClient.java.i
-data/src/share/classes/sun/management/snmp/jvminstr/JvmRTInputArgsEntryImpl.java.i
+data/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java.i
 data/src/share/classes/com/sun/tools/jdi/VMAction.java.i
 data/test/javax/management/descriptor/MBeanInfoInteropTest.java.i
 data/src/share/classes/sun/nio/fs/Cancellable.java.i
 data/src/share/classes/java/lang/doc-files/sigma1.gif.i
 data/src/share/sample/nbproject/project.xml.i
-data/test/javax/sound/midi/Gervill/SoftAudioBuffer/Clear.java.i
-data/make/tools/swing-beans/beaninfo/images/JFrameColor32.gif.i
-data/test/java/net/URL/GetContent.java.i
-data/src/share/native/sun/java2d/loops/IntArgb.c.i
+data/test/sun/security/pkcs11/nss/lib/windows-i586/libnspr4.dll.i
+data/test/java/nio/file/DirectoryStream/SecureDS.java.i
+data/test/java/net/URLEncoder/Decoder.java.i
 data/test/java/net/Socks/SocksV4Test.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/main.java.i
-data/src/share/classes/javax/security/auth/kerberos/KerberosPrincipal.java.i
+data/test/java/beans/XMLEncoder/java_beans_Statement.java.i
 data/test/java/nio/file/Files/walkFileTree/CreateFileTree.java.i
 data/test/java/nio/charset/coders/SJISPropTest.java.i
 data/src/windows/classes/java/io/WinNTFileSystem.java.i
-data/src/share/classes/javax/swing/plaf/metal/sounds/FrameRestoreUp.wav.i
+data/src/share/sample/nio/chatserver/README.txt.i
 data/src/linux/doc/man/javap.1.i
 data/make/sun/javazic/tzdata/solar88.i
 data/test/javax/swing/JSlider/6587742/bug6587742.html.i
-data/src/share/native/java/lang/fdlibm/src/s_logb.c.i
-data/src/share/classes/sun/util/locale/LocaleUtils.java.i
+data/src/share/classes/java/lang/reflect/InvocationTargetException.java.i
+data/src/share/classes/java/beans/package.html.i
+data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmClassesVerboseLevel.java.i
 data/src/share/classes/com/sun/jmx/snmp/daemon/SnmpInformHandler.java.i
 data/src/share/classes/java/net/DatagramSocketImplFactory.java.i
 data/test/javax/swing/JSlider/6524424/bug6524424.html.i
 data/src/windows/classes/sun/awt/windows/WDragSourceContextPeer.java.i
 data/src/share/classes/javax/swing/text/Element.java.i
-data/make/sun/motif12/reorder-i586.i
+data/src/share/native/sun/font/layout/PairPositioningSubtables.h.i
 data/src/share/classes/javax/management/QualifiedAttributeValueExp.java.i
 data/src/share/classes/java/lang/Compiler.java.i
 data/src/solaris/native/sun/awt/awt_DataTransferer.h.i
 data/src/windows/native/sun/windows/awt_Debug.h.i
 data/src/share/native/sun/awt/image/cvutils/img_input32.h.i
-data/src/share/classes/sun/io/ByteToCharCp874.java.i
-data/src/share/classes/javax/management/DynamicMBean.java.i
+data/test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/Hello.java.i
+data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriterSpi.java.i
 data/test/java/lang/String/Exceptions.java.i
+data/test/sun/nio/cs/SurrogateTestEUCTW.java.i
 data/test/java/security/cert/CertPathValidator/nameConstraintsRFC822/ValidateCertPath.java.i
-data/src/share/classes/sun/text/resources/FormatData_cs_CZ.java.i
-data/test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_mix.java.i
+data/src/solaris/classes/sun/awt/X11/XFontPeer.java.i
 data/src/windows/native/sun/windows/awt_InputMethod.cpp.i
 data/src/share/classes/javax/swing/text/doc-files/OpenBookIcon.gif.i
 data/test/sun/java2d/SunGraphicsEnvironment/TestSGEuseAlternateFontforJALocales.java.i
-data/src/solaris/classes/sun/font/FontConfigManager.java.i
 data/src/solaris/native/sun/awt/awt_XmDnD.c.i
 data/src/windows/hpi/export/path_md.h.i
-data/src/share/classes/java/rmi/server/RMIServerSocketFactory.java.i
-data/test/sun/java2d/SunGraphics2D/DrawImageBilinear.java.i
-data/test/java/nio/channels/AsynchronousServerSocketChannel/java.policy.deny.i
-data/src/share/native/sun/font/layout/GDEFMarkFilter.cpp.i
+data/src/share/classes/javax/sql/rowset/serial/SQLInputImpl.java.i
+data/make/common/BuildToolJar.gmk.i
+data/test/java/security/Exceptions/ChainingConstructors.java.i
+data/test/sun/net/sdp/ProbeIB.java.i
 data/src/share/classes/java/lang/invoke/SwitchPoint.java.i
 data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/SSLEngineService.java.i
 data/test/javax/swing/JColorChooser/Test6977726.html.i
+data/src/share/native/sun/java2d/opengl/OGLPaints.c.i
 data/src/share/classes/sun/io/CharToByteCp297.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/InnerShadowEffect.java.i
-data/test/javax/management/Introspector/GetMBeanInfoExceptionTest.java.i
-data/src/share/classes/javax/swing/plaf/synth/DefaultMenuLayout.java.i
+data/test/java/beans/PropertyEditor/TestShortTypeValue.java.i
 data/src/solaris/bin/java_md.c.i
-data/src/share/classes/sun/util/resources/LocaleNames_fi.properties.i
+data/test/java/nio/channels/AsynchronousSocketChannel/Basic.java.i
 data/src/share/classes/sun/nio/fs/Reflect.java.i
-data/test/javax/swing/JLabel/7004134/bug7004134.java.i
-data/src/share/classes/javax/naming/ldap/StartTlsRequest.java.i
-data/src/share/classes/sun/tools/asm/NameAndTypeData.java.i
+data/src/share/demo/applets/WireFrame/Matrix3D.java.i
+data/test/sun/java2d/cmm/ProfileOp/SetDataTest.java.i
+data/src/share/native/sun/java2d/loops/IntRgb.c.i
+data/test/java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java.i
 data/make/tools/src/build/tools/javazic/Month.java.i
-data/make/tools/swing-beans/beaninfo/images/JPanelColor32.gif.i
-data/test/java/rmi/activation/Activatable/checkImplClassLoader/ActivatableImpl.java.i
+data/test/javax/xml/crypto/dsig/SecurityManager/policy.i
 data/src/linux/doc/man/jconsole.1.i
 data/src/share/classes/java/text/SimpleDateFormat.java.i
-data/src/share/classes/sun/security/util/DerValue.java.i
-data/test/java/io/Serializable/inactiveRegistration/InactiveRegistration.java.i
-data/test/sun/security/tools/policytool/Alias.html.i
+data/src/share/native/sun/awt/libpng/README.i
+data/test/javax/management/monitor/StringMonitorDeadlockTest.java.i
+data/src/share/classes/sun/util/resources/TimeZoneNames_en_CA.java.i
+data/src/share/classes/java/awt/event/FocusListener.java.i
 data/make/mkdemo/applets/Animator/Makefile.i
 data/make/tools/winver/src/winver.cpp.i
-data/src/share/classes/java/awt/dnd/DropTarget.java.i
+data/src/share/classes/javax/swing/plaf/DesktopPaneUI.java.i
 data/test/java/lang/Runtime/exec/ExecWithLotsOfArgs.java.i
 data/test/javax/swing/MultiUIDefaults/Test6860438.java.i
 data/src/share/classes/com/sun/tools/hat/internal/server/QueryHandler.java.i
 data/src/solaris/classes/sun/awt/motif/X11GBK.java.i
-data/src/solaris/native/sun/java2d/loops/vis_GlyphList.c.i
 data/src/share/classes/sun/rmi/transport/proxy/WrappedSocket.java.i
 data/src/share/classes/sun/io/CharToByteCp273.java.i
 data/test/sun/security/tools/policytool/OpenPolicy.java.i
 data/test/java/lang/management/ThreadMXBean/Barrier.java.i
-data/src/share/classes/javax/swing/plaf/synth/ImagePainter.java.i
-data/src/share/native/sun/awt/medialib/mlib_ImageAffine_BL_S32.c.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmThreadingMeta.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/Reference.java.i
+data/test/java/beans/XMLEncoder/java_awt_Point.java.i
 data/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java.i
-data/test/javax/print/applet/applet3/Applet3PrintService.java.i
-data/src/share/classes/java/io/InputStream.java.i
-data/src/share/classes/sun/security/action/GetLongAction.java.i
+data/src/share/back/stepControl.h.i
+data/make/tools/CharsetMapping/IBM1147.map.i
+data/src/share/sample/nio/server/Dispatcher1.java.i
 data/test/sun/security/pkcs11/Provider/csp.cfg.i
 data/src/share/classes/java/util/Dictionary.java.i
-data/src/share/classes/sun/rmi/rmic/resources/rmic.properties.i
+data/src/solaris/classes/sun/awt/X11/XToolkit.java.i
 data/test/sun/net/www/protocol/http/AsyncDisconnect.java.i
-data/src/share/classes/javax/print/ServiceUI.java.i
-data/test/javax/swing/JColorChooser/Test4380468.java.i
+data/test/javax/sound/midi/Gervill/SoftAudioBuffer/Array.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageCopy_f.h.i
 data/src/windows/native/sun/awt/splashscreen/splashscreen_config.h.i
 data/src/share/classes/sun/io/CharToByteISO8859_3.java.i
 data/src/share/classes/sun/nio/cs/ext/DoubleByteDecoder.java.i
-data/test/java/net/MulticastSocket/SetOutgoingIf.java.i
+data/make/modules/imagine.sh.i
 data/src/share/classes/java/awt/datatransfer/MimeType.java.i
-data/test/sun/util/resources/Locale/Bug4965260.java.i
 data/src/share/classes/javax/swing/TimerQueue.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU8S16Func.c.i
-data/test/java/nio/channels/FileChannel/TryLock.java.i
+data/test/javax/swing/JFileChooser/6520101/bug6520101.java.i
+data/test/javax/swing/JColorChooser/Test4222508.java.i
 data/test/sun/rmi/transport/tcp/blockAccept/security.policy.i
-data/test/sun/security/pkcs11/KeyStore/ClientAuthData/README.i
-data/src/share/classes/com/sun/management/package.html.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetMaxPolyphony.java.i
 data/src/share/classes/javax/naming/spi/ContinuationDirContext.java.i
-data/src/share/sample/scripting/scriptpad/src/scripts/textcolor.js.i
-data/src/share/classes/sun/misc/GC.java.i
+data/src/share/back/commonRef.c.i
+data/test/java/beans/Introspector/4750368/com/foo/test/Component.java.i
 data/test/sun/security/util/Resources/NewNamesFormat.java.i
-data/src/share/classes/javax/sound/sampled/FloatControl.java.i
+data/src/solaris/classes/sun/font/NativeGlyphMapper.java.i
 data/test/sun/security/pkcs11/Provider/cspPlus.cfg.i
 data/src/windows/native/sun/windows/check.bmp.i
 data/make/tools/swing-beans/beaninfo/images/JWindowColor16.gif.i
 data/src/solaris/native/sun/awt/awt_Menu.h.i
-data/src/share/classes/java/awt/event/ContainerAdapter.java.i
+data/test/javax/management/mxbean/SameObjectTwoNamesTest.java.i
 data/src/linux/doc/man/extcheck.1.i
-data/make/tools/src/build/tools/jdwpgen/CommandNode.java.i
-data/src/share/classes/java/awt/IllegalComponentStateException.java.i
+data/src/share/classes/javax/swing/plaf/package.html.i
+data/src/share/native/java/lang/fdlibm/src/s_rint.c.i
 data/src/share/classes/java/util/concurrent/SynchronousQueue.java.i
-data/test/java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java.i
+data/test/java/util/Timer/KillThread.java.i
 data/src/share/classes/java/security/NoSuchProviderException.java.i
-data/src/share/classes/java/lang/doc-files/captheta.gif.i
+data/test/org/openjdk/jigsaw/cli/expired-signer-cert.pem.i
 data/make/tools/swing-beans/beaninfo/images/JTableColor32.gif.i
 data/src/share/classes/com/sun/jndi/ldap/pool/PooledConnection.java.i
 data/src/windows/native/sun/windows/mlib_types_md.h.i
 data/test/javax/management/Introspector/Described.java.i
-data/test/javax/sound/midi/Gervill/ModelIdentifier/EqualsObject.java.i
+data/test/javax/management/remote/mandatory/loading/MethodResultTest.java.i
 data/src/share/classes/sun/font/Font2DHandle.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/XMLDSigRI.java.i
-data/src/share/classes/java/rmi/UnknownHostException.java.i
+data/test/javax/sound/midi/Gervill/RiffReaderWriter/WriteOutputStream.java.i
+data/test/javax/management/ImplementationVersion/ImplVersionCommand.java.i
 data/test/java/io/Serializable/6559775/Test6559775.sh.i
-data/test/sun/tools/jstat/timeStamp1.awk.i
+data/make/tools/CharsetMapping/KOI8_R.map.i
 data/test/java/net/URLConnection/HandleContentTypeWithAttrs.java.i
 data/src/share/classes/com/sun/security/ntlm/NTLMException.java.i
-data/test/javax/print/PrintSubInputStream/Example.java.i
-data/make/tools/CharsetMapping/MS1254.map.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/StorageResolverException.java.i
-data/src/share/native/sun/java2d/loops/ByteIndexed.c.i
-data/src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h.i
-data/src/share/javavm/include/opcodes.list.i
+data/src/share/demo/nio/zipfs/Demo.java.i
+data/src/share/classes/sun/security/ec/ECDHKeyAgreement.java.i
+data/src/solaris/native/sun/nio/ch/FileKey.c.i
+data/test/javax/print/applet/applet2/Applet2.java.i
+data/src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java.i
+data/test/com/sun/jdi/ExpiredRequestDeletionTest.java.i
+data/make/mkdemo/applets/MoleculeViewer/Makefile.i
 data/src/share/classes/sun/security/util/SecurityConstants.java.i
-data/test/java/awt/image/IncorrectSampleMaskTest.java.i
+data/src/share/classes/com/sun/beans/finder/AbstractFinder.java.i
 data/src/share/demo/jvmti/hprof/hprof_monitor.c.i
 data/src/solaris/native/sun/awt/multi_font.c.i
-data/make/tools/UnicodeData/PropList.txt.i
+data/test/javax/print/attribute/SidesPageRangesTest.java.i
 data/test/java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java.i
-data/src/share/classes/java/dyn/BootstrapMethod.java.i
-data/src/share/classes/javax/swing/event/TreeExpansionEvent.java.i
+data/test/tools/pack200/pack200-verifier/src/xmlkit/ClassReader.java.i
+data/src/share/classes/com/sun/security/sasl/digest/DigestMD5Client.java.i
+data/test/sun/misc/JarIndex/metaInfFilenames/jarC/META-INF/services/com.message.spi.MessageService.i
 data/src/share/classes/javax/security/sasl/AuthorizeCallback.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/G1Impl.java.i
 data/test/javax/sound/sampled/Clip/ClipSetPos.java.i
-data/src/share/classes/java/sql/DatabaseMetaData.java.i
-data/test/javax/swing/border/Test4124729.java.i
-data/test/sun/nio/cs/OLD/IBM1381_OLD.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract.c.i
-data/src/share/classes/sun/text/resources/FormatData_ar_SA.java.i
-data/test/java/io/Serializable/defaultDataEnd/DefaultDataEnd.java.i
-data/test/java/rmi/activation/Activatable/checkAnnotations/CheckAnnotations_Stub.java.i
+data/make/sun/headless/reorder-i586.i
+data/test/com/sun/security/sasl/ntlm/Conformance.java.i
+data/src/share/classes/sun/invoke/anon/AnonymousClassLoader.java.i
+data/test/sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.java.i
+data/test/javax/management/remote/mandatory/connection/AddressableTest.java.i
+data/test/java/util/prefs/PrefsSpi.sh.i
 data/src/share/classes/sun/jvmstat/monitor/Monitor.java.i
-data/src/share/classes/com/sun/tools/example/debug/event/AbstractEventSet.java.i
-data/src/share/classes/sun/io/CharToByteCp858.java.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/ImageTests.java.i
+data/test/java/beans/PropertyEditor/TestFontClassNull.java.i
 data/test/java/rmi/activation/Activatable/shutdownGracefully/security.policy.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/SSLSocketTimeoutNulls.java.i
-data/src/share/classes/sun/net/www/http/HttpClient.java.i
-data/src/share/classes/sun/nio/fs/Globs.java.i
+data/src/share/classes/sun/reflect/BootstrapConstructorAccessorImpl.java.i
+data/src/share/classes/sun/java2d/cmm/ColorTransform.java.i
+data/make/javax/swing/Makefile.i
 data/src/share/classes/sun/java2d/SurfaceDataProxy.java.i
-data/test/java/lang/instrument/ParallelTransformerLoader.sh.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/DummySourceDataLine.java.i
 data/src/share/classes/javax/print/attribute/standard/JobName.java.i
-data/src/share/classes/com/sun/java/util/jar/pack/Code.java.i
+data/src/solaris/sample/dtrace/hotspot_jni/README.txt.i
 data/test/sun/tools/native2ascii/test1.i
-data/src/share/classes/sun/io/CharToByteCp857.java.i
-data/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java.i
-data/src/share/classes/sun/security/x509/SerialNumber.java.i
-data/test/sun/security/tools/jarsigner/ec.sh.i
-data/src/share/classes/java/awt/Adjustable.java.i
+data/test/java/lang/Class/getField/Exceptions.java.i
+data/src/share/classes/sun/awt/image/ImageFormatException.java.i
+data/test/sun/nio/cs/OLD/IBM933_OLD.java.i
+data/test/java/io/Serializable/oldTests/CircularList.java.i
+data/src/share/native/sun/java2d/opengl/OGLMaskBlit.c.i
 data/src/solaris/native/sun/java2d/loops/vis_GlyphListXor.c.i
+data/test/javax/swing/JScrollPane/Test6526631.java.i
 data/src/share/classes/java/nio/file/spi/package-info.java.i
-data/src/share/classes/sun/text/resources/FormatData_it_CH.java.i
+data/src/share/classes/java/nio/channels/FileChannel.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_et.properties.i
 data/src/share/native/sun/java2d/opengl/OGLContext.h.i
-data/test/javax/smartcardio/HistoricalBytes.java.i
 data/src/share/classes/java/rmi/server/UID.java.i
-data/src/share/native/sun/management/Flag.c.i
+data/test/java/rmi/server/clientStackTrace/ClientStackTrace.java.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIRegion.java.i
 data/src/share/classes/javax/swing/text/NumberFormatter.java.i
-data/src/share/classes/javax/swing/text/DefaultCaret.java.i
-data/src/share/classes/sun/io/ByteToCharUnicodeBigUnmarked.java.i
+data/src/share/native/sun/java2d/loops/ByteBinary2Bit.c.i
+data/test/sun/nio/cs/ISCIITest.java.i
 data/src/share/classes/javax/swing/JPopupMenu.java.i
 data/src/share/classes/sun/util/TimeZoneNameUtility.java.i
 data/src/share/classes/javax/swing/plaf/basic/ComboPopup.java.i
-data/src/share/demo/nbproject/jfc/Metalworks/build.properties.i
+data/src/share/classes/sun/management/MemoryImpl.java.i
 data/test/sun/security/krb5/auto/OneKDC.java.i
-data/src/share/classes/java/security/spec/ECParameterSpec.java.i
-data/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html.i
-data/test/java/io/LineNumberReader/ReadReadLine.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTextAreaUI.java.i
-data/src/share/native/sun/awt/image/cvutils/img_dcm8.h.i
-data/src/share/classes/sun/awt/image/ImageDecoder.java.i
-data/src/share/demo/jvmti/hprof/hprof_class.c.i
-data/src/share/classes/sun/security/krb5/internal/ccache/FileCCacheConstants.java.i
+data/src/share/classes/sun/net/www/http/HttpCapture.java.i
+data/make/netbeans/awt2d/nbproject/project.xml.i
+data/src/share/classes/com/sun/tools/jdi/IntegerValueImpl.java.i
+data/src/share/classes/java/dyn/WrongMethodTypeException.java.i
+data/src/share/lib/calendars.properties.i
+data/test/sun/nio/cs/OLD/MS932DB.java.i
 data/src/windows/native/java/nio/MappedByteBuffer.c.i
 data/test/java/io/Serializable/oldTests/CheckingEquality.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_EC.properties.i
-data/src/share/classes/java/sql/Driver.java.i
+data/test/javax/swing/JSlider/6794831/bug6794831.java.i
 data/src/share/classes/java/dyn/MethodHandles.java.i
 data/src/solaris/classes/sun/java2d/jules/TileWorker.java.i
-data/src/share/classes/sun/security/provider/ConfigSpiFile.java.i
+data/src/share/demo/nbproject/jfc/Font2DTest/nbproject/jdk.xml.i
 data/test/tools/pack200/pack200-verifier/data/golden.jar.i
 data/src/share/native/sun/java2d/opengl/OGLPaints.h.i
 data/src/share/classes/javax/print/attribute/standard/PrinterState.java.i
 data/src/share/javavm/include/opcodes.wide.i
 data/src/share/classes/sun/util/resources/LocaleNames_el.properties.i
-data/src/share/classes/java/nio/file/attribute/PosixFilePermissions.java.i
-data/src/share/native/java/lang/fdlibm/src/e_lgamma.c.i
+data/test/sun/java2d/SunGraphics2D/SimplePrimQuality.java.i
+data/test/java/lang/instrument/GetAllLoadedClassesTest.java.i
 data/test/java/io/Serializable/InvalidClassException/noargctor/NonSerialize/PackageCtor.java.i
 data/test/javax/management/remote/mandatory/notif/NotificationAccessControllerTest.java.i
 data/src/share/classes/sun/tools/tree/AssignBitAndExpression.java.i
 data/src/share/classes/javax/security/cert/CertificateNotYetValidException.java.i
 data/src/share/classes/sun/applet/resources/MsgAppletViewer_it.java.i
-data/src/share/classes/java/nio/file/PathMatcher.java.i
+data/src/solaris/hpi/include/interrupt.h.i
 data/test/sun/text/resources/Format/Bug4994312.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_BA.properties.i
+data/test/java/lang/invoke/ClassValueTest.java.i
 data/test/java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html.i
-data/make/mksample/nio/file/Makefile.i
-data/src/share/classes/javax/swing/event/SwingPropertyChangeSupport.java.i
-data/src/share/classes/sun/io/CharToByteISO8859_7.java.i
+data/src/share/classes/java/nio/Heap-X-Buffer.java.i
+data/test/java/beans/Introspector/6380849/beans/ThirdBean.java.i
+data/test/javax/swing/JComponent/4337267/bug4337267.java.i
 data/test/java/awt/dnd/Button2DragTest/Button2DragTest.html.i
-data/src/share/demo/applets/SpreadSheet/SpreadSheet.java.i
-data/test/com/sun/jdi/sde/testString.i
-data/src/share/classes/com/sun/jndi/ldap/sasl/SaslOutputStream.java.i
-data/src/share/classes/javax/swing/event/UndoableEditListener.java.i
-data/test/sun/rmi/rmic/newrmic/equivalence/AppleEvent.java.i
-data/test/java/lang/ClassLoader/ExceptionHidingLoader.java.i
-data/make/templates/gpl-header.i
+data/src/share/classes/javax/swing/plaf/metal/MetalComboBoxButton.java.i
+data/src/share/demo/jfc/Metalworks/KhakiMetalTheme.java.i
+data/test/java/rmi/reliability/juicer/OrangeEcho.java.i
+data/test/sun/security/pkcs11/KeyStore/BasicData/pk3.key.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/CloseInboundException.java.i
+data/test/java/util/Arrays/CopyMethods.java.i
 data/test/java/nio/channels/Selector/SelectAndClose.java.i
-data/test/java/util/LinkedHashMap/Basic.java.i
 data/src/share/classes/java/beans/ReflectionUtils.java.i
 data/src/share/demo/applets/CardTest/CardTest.java.i
-data/src/share/classes/sun/awt/image/ToolkitImage.java.i
-data/test/javax/swing/JFileChooser/6840086/bug6840086.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/rmi/RemoteMonitoredVm.java.i
+data/test/sun/security/tools/keytool/SecretKeyKS.sh.i
 data/src/share/classes/com/sun/jmx/mbeanserver/MXBeanLookup.java.i
 data/make/tools/swing-beans/beaninfo/images/JColorChooserMono32.gif.i
 data/src/windows/classes/sun/awt/windows/WMenuItemPeer.java.i
 data/src/share/classes/java/awt/print/PageFormat.java.i
-data/test/java/util/Hashtable/HashCode.java.i
+data/test/java/util/ServiceLoader/FooProvider2.java.i
 data/test/java/rmi/transport/checkLeaseInfoLeak/LeaseLeak.java.i
 data/src/share/classes/sun/reflect/annotation/ExceptionProxy.java.i
-data/test/javax/imageio/plugins/png/ItxtUtf8Test.java.i
+data/test/java/io/etc/FileDescriptorSharing.java.i
 data/test/sun/nio/cs/OLD/TestX11CS.java.i
+data/src/share/classes/com/sun/jdi/request/AccessWatchpointRequest.java.i
 data/src/share/classes/com/sun/nio/sctp/AbstractNotificationHandler.java.i
-data/src/windows/classes/sun/net/NetHooks.java.i
+data/test/javax/management/remote/mandatory/subjectDelegation/policy11.i
 data/src/share/classes/sun/dyn/FilterOneArgument.java.i
-data/src/share/classes/java/util/concurrent/atomic/package-info.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/package.html.i
+data/make/tools/generate_break_iterator/Makefile.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/AclImpl.java.i
 data/make/javax/print/Makefile.i
-data/src/share/classes/sun/java2d/loops/FillRect.java.i
-data/src/share/classes/sun/security/acl/WorldGroupImpl.java.i
+data/src/share/native/java/util/zip/CRC32.c.i
+data/test/java/net/InetAddress/ptr/lookup.sh.i
 data/test/java/lang/StringBuffer/InsertNullString.java.i
 data/test/java/beans/XMLDecoder/spec/TestShort.java.i
 data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest10_ok.access.in.i
@@ -15014,86 +14774,91 @@ data/test/java/security/MessageDigest/ArgumentSanity.java.i
 data/src/share/classes/com/sun/beans/ObjectHandler.java.i
 data/test/javax/sound/midi/Gervill/AudioFloatInputStream/GetFrameLength.java.i
 data/src/share/classes/javax/swing/doc-files/groupLayout.example.png.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/package.html.i
+data/test/com/sun/tools/attach/BasicTests.sh.i
+data/src/share/native/sun/awt/medialib/mlib_ImageConvMxN.c.i
 data/test/java/util/zip/ConstructInflaterOutput.java.i
 data/test/sun/security/rsa/TestKeyFactory.java.i
-data/src/share/classes/sun/tools/tree/ExprExpression.java.i
-data/make/java/java/mapfile-vers.i
+data/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh.i
+data/src/share/native/sun/font/layout/SinglePositioningSubtables.cpp.i
 data/src/share/native/sun/font/layout/MarkToBasePosnSubtables.h.i
+data/src/share/classes/javax/xml/crypto/dsig/keyinfo/PGPData.java.i
 data/src/share/native/sun/management/management.c.i
 data/src/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties.i
 data/src/share/classes/sun/reflect/UnsafeDoubleFieldAccessorImpl.java.i
 data/src/share/classes/java/rmi/activation/UnknownObjectException.java.i
 data/src/share/classes/sun/rmi/rmic/BatchEnvironment.java.i
-data/src/share/classes/sun/reflect/UnsafeQualifiedShortFieldAccessorImpl.java.i
+data/test/java/util/PluggableLocale/providersrc/java.text.spi.CollatorProvider.i
 data/test/java/awt/font/TextLayout/TestOldHangul.java.i
-data/src/share/native/java/lang/fdlibm/src/e_lgamma_r.c.i
+data/src/share/native/sun/awt/image/cvutils/img_dcm8.h.i
 data/src/share/classes/sun/security/ssl/EngineOutputRecord.java.i
-data/src/share/classes/java/awt/event/MouseEvent.java.i
-data/src/share/classes/javax/xml/crypto/Data.java.i
+data/test/java/io/Serializable/corruptedUTFConsumption/CorruptedUTFConsumption.java.i
+data/src/solaris/classes/sun/awt/X11/XInputMethod.java.i
 data/test/sun/tools/jps/jps-m.sh.i
 data/test/sun/security/krb5/BadKdcDefaultValue.java.i
 data/src/solaris/native/sun/nio/ch/NativeThread.c.i
 data/make/tools/swing-beans/beaninfo/images/JPasswordFieldColor16.gif.i
-data/test/com/sun/jdi/DeoptimizeWalk.sh.i
+data/test/com/sun/jdi/InvokeTest.java.i
+data/src/share/classes/sun/io/CharToByteMacIceland.java.i
 data/src/share/classes/com/sun/security/auth/module/LdapLoginModule.java.i
 data/src/share/classes/java/util/logging/XMLFormatter.java.i
 data/make/netbeans/j2se/build.xml.i
 data/src/share/classes/sun/dyn/anon/ConstantPoolVisitor.java.i
-data/test/java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java.i
-data/src/windows/native/sun/windows/awt_Cursor.cpp.i
-data/src/share/native/java/lang/ClassLoader.c.i
+data/test/javax/security/auth/x500/X500Principal/RFC4514.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBuffer/GetRoot.java.i
-data/test/com/sun/jdi/SuspendThreadTest.java.i
-data/src/share/classes/sun/nio/cs/MS1251.java.i
-data/src/share/classes/javax/crypto/spec/OAEPParameterSpec.java.i
+data/test/sun/security/provider/PolicyParser/ExtDirs.policy.i
+data/make/netbeans/jdwpgen/nbproject/project.properties.i
+data/test/org/openjdk/jigsaw/security.sh.i
 data/src/share/classes/javax/print/attribute/standard/PrinterInfo.java.i
 data/test/javax/security/auth/login/LoginContext/DefaultHandler.config.i
-data/src/share/classes/java/beans/beancontext/BeanContextMembershipEvent.java.i
-data/make/tools/swing-beans/beaninfo/images/JViewportColor32.gif.i
+data/test/java/rmi/reliability/benchmark/bench/serial/StreamBuffer.java.i
+data/make/tools/swing-beans/beaninfo/images/JScrollBarColor16.gif.i
+data/src/solaris/native/sun/nio/ch/SocketDispatcher.c.i
 data/src/share/native/sun/font/layout/GlyphSubstitutionTables.h.i
 data/test/java/beans/Introspector/6380849/beans/SecondBean.java.i
 data/src/share/classes/java/beans/beancontext/BeanContextServices.java.i
-data/test/java/util/concurrent/ThreadPoolExecutor/SelfInterrupt.java.i
+data/test/java/net/MulticastSocket/SetOutgoingIf.java.i
+data/src/share/lib/images/cursors/win32_LinkDrop32x32.gif.i
 data/src/share/native/sun/font/layout/OpenTypeUtilities.h.i
-data/test/sun/security/smartcardio/TestDefault.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMHostTrap.java.i
 data/src/solaris/native/sun/awt/awt_UNIXToolkit.c.i
+data/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java.i
 data/test/javax/security/auth/PrivateCredentialPermission/EmptyName.java.i
+data/make/tools/CharsetMapping/JIS_X_0201.map.i
 data/test/sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java.i
-data/src/share/classes/com/sun/jmx/event/RepeatedSingletonJob.java.i
-data/test/sun/security/mscapi/SignUsingNONEwithRSA.java.i
+data/test/java/security/cert/CertificateFactory/GenerateCertificatesEmptyCollection.java.i
 data/src/share/classes/sun/io/CharToByteCp869.java.i
 data/test/java/lang/instrument/basicAgent.mf.i
 data/test/javax/script/Helper.java.i
 data/src/share/classes/javax/management/ReflectionException.java.i
-data/test/sun/security/tools/keytool/CloseFile.java.i
+data/src/share/classes/com/sun/security/auth/NTSidPrimaryGroupPrincipal.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java.i
-data/test/java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.java.i
+data/test/javax/management/mxbean/MBeanOperationInfoTest.java.i
 data/src/share/back/commonRef.h.i
-data/src/share/classes/sun/tools/jconsole/CreateMBeanDialog.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/Close.java.i
-data/src/share/classes/java/lang/invoke/MethodType.java.i
+data/src/share/classes/sun/nio/cs/ext/MacHebrew.java.i
+data/src/share/bin/java.h.i
 data/src/share/classes/javax/swing/text/html/ParagraphView.java.i
 data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/JarFileSystemProvider.java.i
+data/src/share/classes/sun/security/util/AuthResources.java.i
 data/test/java/nio/channels/SocketChannel/Hangup.java.i
 data/test/javax/print/CheckDupFlavor.java.i
 data/src/share/classes/javax/management/relation/RoleInfo.java.i
+data/test/javax/sql/rowset/serial/SerialClob/SetAsciiStream.java.i
 data/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c.i
 data/test/java/awt/Graphics/TextAAHintsTest.java.i
-data/test/sun/security/pkcs11/SecureRandom/TestDeserialization.java.i
+data/src/share/classes/java/awt/AttributeValue.java.i
 data/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java.i
-data/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/Handler.java.i
-data/src/share/classes/javax/swing/plaf/basic/DragRecognitionSupport.java.i
-data/test/java/awt/Graphics/DrawImageBG/SystemBgColorTest.java.i
-data/test/sun/security/x509/AlgorithmId/TurkishRegion.java.i
+data/src/share/classes/sun/java2d/pipe/RegionClipSpanIterator.java.i
+data/test/java/awt/Toolkit/HeadlessTray/HeadlessTray.java.i
+data/test/java/util/ResourceBundle/Bug4083270Test.java.i
+data/src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedFloatFieldAccessorImpl.java.i
-data/test/java/util/LinkedList/Clone.java.i
-data/src/share/native/sun/awt/medialib/awt_ImagingLib.c.i
+data/test/java/util/zip/ZipFile/ManyZipFiles.java.i
+data/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Ports.c.i
 data/src/share/classes/javax/swing/plaf/ToolTipUI.java.i
-data/src/share/classes/javax/management/IntrospectionException.java.i
+data/src/share/classes/java/awt/peer/FontPeer.java.i
 data/test/java/net/Inet4Address/textToNumericFormat.java.i
-data/test/java/lang/Thread/UncaughtExceptions.sh.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/rmi/package.html.i
+data/src/share/classes/sun/swing/ImageIconUIResource.java.i
 data/make/netbeans/jdwpgen/nbproject/genfiles.properties.i
 data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/config/XmlConfigUtilsTest.java.i
 data/src/share/classes/javax/swing/plaf/ToolBarUI.java.i
@@ -15103,214 +14868,217 @@ data/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java.i
 data/test/javax/sound/midi/Gervill/ModelStandardTransform/TransformConvex.java.i
 data/src/share/classes/sun/java2d/loops/TransformBlit.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java.i
-data/src/share/classes/java/lang/module/ModuleInfoReader.java.i
+data/make/modules/tools/Makefile.i
 data/src/share/classes/java/dyn/FilterGeneric.java.i
 data/make/javax/sound/SoundDefs.gmk.i
 data/test/java/rmi/server/RMIClassLoader/spi/Installed.java.i
 data/src/share/back/EventRequestImpl.h.i
 data/test/java/lang/management/MemoryPoolMXBean/ThresholdTest.java.i
-data/src/windows/native/sun/font/fontpath.c.i
+data/test/java/math/BigDecimal/PowTests.java.i
+data/make/java/invoke/Makefile.i
 data/src/share/classes/javax/management/NotQueryExp.java.i
 data/test/java/lang/reflect/Proxy/returnTypes/GetArray.java.i
-data/test/sun/security/krb5/auto/CleanState.java.i
-data/src/share/classes/javax/swing/ListModel.java.i
+data/src/share/native/sun/management/Flag.c.i
+data/src/share/classes/sun/java2d/loops/DrawLine.java.i
+data/src/share/classes/javax/print/attribute/URISyntax.java.i
 data/src/share/classes/java/rmi/NotBoundException.java.i
 data/src/share/classes/javax/sound/midi/MidiDeviceTransmitter.java.i
 data/test/java/util/zip/zip.java.i
 data/src/linux/doc/man/ja/jar.1.i
 data/src/share/classes/com/sun/accessibility/internal/resources/accessibility_sv.properties.i
-data/src/share/classes/sun/io/ByteToCharBig5_Solaris.java.i
+data/src/share/native/sun/awt/image/jpeg/jinclude.h.i
 data/src/share/classes/java/rmi/server/RMIClassLoaderSpi.java.i
-data/test/java/beans/PropertyEditor/TestIntegerClassNull.java.i
+data/test/sun/security/x509/AVA/AVAEqualsHashCode.java.i
 data/make/sun/misc/Makefile.i
-data/src/share/classes/java/util/NavigableSet.java.i
-data/src/share/classes/sun/dyn/package-info.java.i
-data/test/java/security/cert/PolicyNode/speech2eve.i
+data/src/share/classes/sun/security/provider/SeedGenerator.java.i
+data/src/share/classes/sun/swing/CachedPainter.java.i
+data/src/share/classes/sun/security/ssl/Debug.java.i
 data/src/share/demo/jvmti/mtrace/README.txt.i
 data/src/share/classes/sun/misc/JavaSecurityCodeSignerAccess.java.i
-data/src/share/classes/sun/security/ssl/SSLSessionImpl.java.i
-data/test/java/io/Serializable/enum/constantSubclasses/Write.java.i
-data/make/com/sun/tools/attach/FILES_c.gmk.i
+data/src/share/native/sun/java2d/cmm/lcms/cmspack.c.i
+data/test/java/lang/management/MemoryMXBean/GetMBeanInfo.java.i
+data/src/share/classes/javax/naming/event/NamespaceChangeListener.java.i
 data/src/share/classes/com/sun/servicetag/SystemEnvironment.java.i
-data/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp.c.i
 data/src/share/classes/sun/text/resources/FormatData_cs.java.i
 data/test/javax/swing/plaf/nimbus/Test6849805.java.i
-data/src/share/classes/sun/print/ProxyGraphics.java.i
-data/src/windows/classes/sun/awt/windows/WScrollPanePeer.java.i
-data/src/share/classes/sun/awt/ScrollPaneWheelScroller.java.i
-data/src/solaris/classes/sun/awt/X11/XFocusProxyWindow.java.i
+data/src/share/classes/sun/io/ByteToCharBig5_HKSCS.java.i
+data/src/windows/native/sun/jkernel/DownloadDialog.cpp.i
 data/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java.i
 data/make/tools/swing-beans/beaninfo/images/JTextPaneColor32.gif.i
-data/test/java/security/cert/CertPathValidator/nameConstraintsRFC822/jane2jane.cer.i
+data/test/javax/management/remote/mandatory/connectorServer/MBSFPreStartPostStartTest.java.i
 data/src/share/classes/sun/io/CharToByteDBCS_ASCII.java.i
-data/test/java/io/File/WinDeviceName.java.i
-data/test/java/lang/management/ManagementFactory/StateTestMBean.java.i
+data/test/java/lang/Thread/NullStackTrace.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/SignatureProperty.java.i
+data/src/share/classes/com/sun/crypto/provider/BlowfishConstants.java.i
 data/src/share/classes/javax/sql/rowset/serial/SerialStruct.java.i
 data/test/com/sun/jdi/NoLaunchOptionTest.java.i
 data/src/share/classes/javax/swing/plaf/metal/icons/ocean/computer.gif.i
 data/test/java/lang/Character/PropList.txt.i
-data/make/tools/classanalyzer/src/com/sun/classanalyzer/ConstantPoolParser.java.i
+data/test/java/rmi/activation/Activatable/downloadParameterClass/FooReceiverImpl_Stub.java.i
 data/test/sun/net/www/protocol/http/UserAgent.java.i
+data/src/share/classes/com/sun/beans/finder/BeanInfoFinder.java.i
 data/test/javax/swing/JColorChooser/Test6707406.java.i
 data/src/share/classes/sun/font/StrikeMetrics.java.i
 data/test/sun/security/provider/MessageDigest/DigestKAT.java.i
 data/test/java/rmi/transport/httpSocket/HttpSocketTest.java.i
-data/test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableRandomAccessList.java.i
 data/make/mkdemo/applets/DrawTest/Makefile.i
 data/src/share/classes/sun/misc/PerfCounter.java.i
 data/test/sun/rmi/rmic/defaultStubVersion/G1.java.i
-data/test/javax/sound/midi/Gervill/RiffReaderWriter/Read.java.i
 data/src/share/native/sun/security/ec/ec_naf.c.i
-data/make/java/net/Makefile.i
+data/src/share/classes/java/util/zip/CheckedOutputStream.java.i
+data/test/sun/rmi/log/ReliableLog/LogAlignmentTest.java.i
+data/src/share/classes/com/sun/tools/hat/internal/model/JavaObject.java.i
 data/test/java/util/TimeZone/OldIDMappingTest.java.i
-data/src/share/classes/javax/naming/InitialContext.java.i
-data/test/sun/nio/cs/FindASCIIRangeCodingBugs.java.i
+data/src/solaris/native/sun/awt/Xrandr.h.i
+data/test/sun/security/ec/truststore.i
 data/test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh.i
-data/src/share/classes/java/awt/event/WindowFocusListener.java.i
+data/test/sun/security/provider/certpath/speech2speech.i
+data/src/share/classes/java/awt/BorderLayout.java.i
 data/src/share/classes/java/nio/channels/exceptions.i
 data/src/share/sample/nio/server/BN.java.i
-data/src/share/classes/javax/print/attribute/DocAttributeSet.java.i
+data/src/windows/classes/sun/nio/ch/DatagramDispatcher.java.i
 data/test/java/rmi/Naming/legalRegistryNames/LegalRegistryNames_Stub.java.i
-data/src/share/classes/sun/java2d/cmm/lcms/LCMS.java.i
-data/src/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes256CksumType.java.i
+data/src/share/classes/sun/reflect/NativeMethodAccessorImpl.java.i
+data/test/sun/security/action/Generify.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/package.html.i
 data/test/java/nio/channels/AsynchronousChannelGroup/Identity.java.i
-data/test/javax/crypto/spec/GCMParameterSpec/GCMParameterSpecTest.java.i
-data/test/java/util/concurrent/Phaser/PhaseOverflow.java.i
-data/test/java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java.i
+data/src/share/classes/sun/reflect/generics/reflectiveObjects/NotImplementedException.java.i
+data/src/solaris/native/sun/java2d/loops/mlib_v_ImageZoom_NN_f.c.i
 data/test/com/sun/net/httpserver/bugs/B6421581.java.i
 data/src/share/classes/java/nio/file/attribute/PosixFilePermission.java.i
-data/src/solaris/hpi/native_threads/src/condvar_md.c.i
-data/test/javax/sound/midi/Gervill/ModelIdentifier/NewModelIdentifierStringStringInt.java.i
-data/test/com/sun/management/HotSpotDiagnosticMXBean/SetAllVMOptions.java.i
-data/src/solaris/classes/sun/awt/motif/MMenuPeer.java.i
+data/test/java/awt/dnd/URIListBetweenJVMsTest/SourceFileListFrame.java.i
+data/src/share/classes/com/sun/crypto/provider/HmacCore.java.i
+data/src/share/classes/com/sun/tools/hat/internal/util/Comparer.java.i
 data/test/java/nio/file/Files/InterruptCopy.java.i
 data/src/solaris/classes/sun/awt/X11/XAWTFormatter.java.i
 data/make/tools/swing-beans/beaninfo/images/JToggleButtonMono16.gif.i
 data/src/share/classes/sun/nio/cs/Unicode.java.i
-data/src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine.i
+data/test/com/sun/jdi/connect/spi/DebugUsingCustomConnector.java.i
 data/src/share/classes/javax/swing/event/CaretListener.java.i
 data/test/javax/management/loading/ParserInfiniteLoopTest.java.i
 data/src/share/classes/java/awt/image/renderable/package.html.i
-data/src/solaris/classes/sun/awt/X11/XWrapperBase.java.i
-data/src/share/classes/sun/nio/cs/ext/MS950_HKSCS_XP.java.i
+data/test/javax/sound/midi/Gervill/ModelIdentifier/EqualsObject.java.i
+data/src/share/classes/java/util/MissingResourceException.java.i
+data/test/java/lang/Class/forName/classes/right-square.class.i
 data/src/share/classes/java/awt/doc-files/MenuBar-1.gif.i
-data/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java.i
-data/src/solaris/classes/sun/awt/X11/InfoWindow.java.i
+data/src/windows/classes/java/util/prefs/WindowsPreferences.java.i
+data/test/java/lang/Runtime/exec/ConcurrentRead.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java.i
 data/test/java/beans/XMLEncoder/java_util_RegularEnumSet.java.i
-data/make/tools/src/build/tools/generatenimbus/UIStyle.java.i
-data/test/javax/swing/text/GlyphView/6539700/bug6539700.java.i
+data/make/tools/CharsetMapping/IBM273.map.i
+data/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h.i
 data/test/java/lang/String/Encodings.java.i
-data/src/share/classes/javax/swing/plaf/metal/icons/ocean/question.png.i
+data/src/share/classes/sun/tools/jstat/SyntaxException.java.i
 data/test/java/nio/channels/SocketChannel/IsConnectable.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/InvalidSignatureValueException.java.i
-data/test/javax/swing/JSlider/6923305/bug6923305.java.i
-data/make/sun/security/jgss/wrapper/Makefile.i
+data/src/share/sample/nio/file/AclEdit.java.i
+data/test/java/rmi/activation/Activatable/checkActivateRef/CheckActivateRef.java.i
+data/test/java/util/EnumMap/DistinctEntrySetElements.java.i
 data/test/java/beans/PropertyEditor/TestBooleanClassNull.java.i
 data/src/share/classes/javax/swing/colorchooser/DefaultColorSelectionModel.java.i
 data/src/windows/native/sun/windows/awt_Component.cpp.i
 data/src/windows/native/sun/windows/awt_Insets.h.i
 data/make/mkdemo/jni/Makefile.i
-data/src/windows/native/sun/windows/awt_Brush.cpp.i
+data/test/sun/security/rsa/TestKeyPairGenerator.java.i
 data/test/java/net/URLClassLoader/ClassLoad.java.i
-data/test/java/rmi/reliability/benchmark/bench/serial/Doubles.java.i
 data/test/javax/management/mxbean/customtypes/package-info.java.i
 data/src/share/classes/java/applet/AppletContext.java.i
-data/make/docs/CORE_PKGS.gmk.i
-data/test/java/rmi/activation/Activatable/restartCrashedService/security.policy.i
-data/make/tools/CharsetMapping/IBM1383.map.i
-data/src/solaris/native/sun/awt/awt_FileDialog.c.i
+data/src/share/classes/java/lang/Boolean.java.i
+data/src/share/classes/javax/print/attribute/standard/PDLOverrideSupported.java.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/BooleanCalls.java.i
+data/src/share/native/sun/security/ec/mpi-priv.h.i
+data/test/java/rmi/activation/ActivationSystem/modifyDescriptor/security.policy.i
+data/src/share/native/sun/awt/image/jpeg/jpegdecoder.c.i
+data/test/sun/net/www/ParseUtil_6478588.java.i
 data/src/solaris/lib/content-types.properties.i
-data/src/share/classes/sun/security/krb5/internal/KRBCred.java.i
-data/test/java/lang/reflect/Proxy/returnTypes/GetSerializable.java.i
+data/src/share/classes/sun/tools/tree/WhileStatement.java.i
+data/src/share/classes/java/text/FieldPosition.java.i
 data/make/tools/src/build/tools/jdwpgen/ThreadObjectTypeNode.java.i
 data/src/share/classes/sun/security/pkcs11/P11RSACipher.java.i
 data/test/java/nio/channels/AsynchronousFileChannel/CustomThreadPool.java.i
-data/test/java/lang/Float/ParseFloat.java.i
+data/src/share/classes/javax/security/cert/CertificateParsingException.java.i
 data/src/share/classes/sun/security/action/GetPropertyAction.java.i
-data/src/windows/native/sun/java2d/d3d/D3DPaints.cpp.i
+data/test/java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java.i
 data/test/javax/swing/JSlider/4987336/bug4987336.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIRegion.java.i
-data/src/solaris/classes/sun/awt/motif/MLabelPeer.java.i
+data/test/java/rmi/reliability/benchmark/bench/Makefile.i
+data/src/share/demo/nbproject/management/MemoryMonitor/nbproject/project.xml.i
+data/src/windows/classes/sun/awt/windows/WPopupMenuPeer.java.i
 data/src/share/classes/com/sun/crypto/provider/HmacMD5.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConvClearEdge.c.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpPduBulk.java.i
-data/test/sun/security/pkcs11/fips/TrustManagerTest.java.i
 data/src/share/bin/jli_util.c.i
 data/src/windows/native/sun/windows/awt_new.h.i
-data/src/share/classes/java/util/zip/CheckedOutputStream.java.i
+data/src/share/classes/java/awt/BufferCapabilities.java.i
 data/test/java/beans/XMLEncoder/javax_swing_border_LineBorder.java.i
 data/test/javax/management/remote/mandatory/notif/DeadListenerTest.java.i
-data/src/share/classes/com/sun/tools/example/trace/EventThread.java.i
-data/src/share/classes/javax/management/event/EventClientNotFoundException.java.i
+data/test/java/lang/StringBuilder/Exceptions.java.i
+data/src/share/classes/java/security/cert/CertSelector.java.i
+data/src/share/classes/sun/print/ImagePrinter.java.i
 data/test/java/nio/file/Files/CopyAndMove.java.i
 data/src/linux/doc/man/xjc.1.i
-data/test/sun/security/util/DerValue/EmptyValue.java.i
-data/src/share/classes/java/util/concurrent/atomic/AtomicLong.java.i
-data/test/sun/tools/jrunscript/dash-f.out.i
-data/test/java/security/Signature/NONEwithRSA.java.i
+data/src/share/classes/javax/security/auth/callback/LanguageCallback.java.i
+data/src/share/lib/images/cursors/win32_MoveDrop32x32.gif.i
+data/src/share/classes/sun/io/ByteToCharISO2022.java.i
+data/src/share/classes/com/sun/net/ssl/TrustManagerFactory.java.i
 data/test/java/net/URLClassLoader/closetest/test2/com/foo/Resource1.i
+data/test/com/sun/jdi/Java_gTest.java.i
 data/test/java/nio/channels/SocketChannel/Trivial.java.i
 data/src/windows/native/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.c.i
-data/src/share/classes/sun/tools/tree/GreaterExpression.java.i
+data/test/sun/security/tools/policytool/UsePolicy.sh.i
 data/src/share/classes/sun/security/krb5/Checksum.java.i
 data/test/javax/management/mxbean/customtypes/IntegerIsLongFactory.java.i
 data/test/javax/sound/midi/Gervill/SoftChannel/Solo.java.i
 data/src/share/classes/com/sun/tools/hat/internal/server/ObjectQuery.java.i
-data/src/share/classes/sun/io/ByteToCharCp948.java.i
-data/src/share/back/export/sys.h.i
-data/src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariInputMethodDescriptor.java.i
+data/test/javax/management/monitor/GaugeMonitorDeadlockTest.java.i
+data/src/share/classes/com/sun/tools/hat/internal/oql/OQLEngine.java.i
+data/src/share/demo/nbproject/management/FullThreadDump/build.xml.i
+data/test/com/sun/net/httpserver/bugs/FixedLengthInputStream.java.i
 data/test/java/util/Collections/Disjoint.java.i
-data/src/share/classes/sun/rmi/server/resources/rmid_sv.properties.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/Gradient.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_ar_LB.properties.i
 data/test/req.flg.i
 data/src/solaris/native/java/net/InetAddressImplFactory.c.i
-data/test/javax/management/openmbean/OpenTypeDescriptorTest.java.i
 data/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh.i
-data/test/sun/security/pkcs11/nss/lib/linux-amd64/libnss3.so.i
-data/src/share/classes/java/text/ChoiceFormat.java.i
-data/src/share/classes/java/lang/annotation/Target.java.i
+data/src/share/classes/com/sun/nio/sctp/PeerAddressChangeNotification.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/icons/HardDrive.gif.i
+data/test/java/io/File/MaxPath.java.i
 data/test/java/security/KeyRep/SerialDSAPubKey.java.i
-data/test/java/beans/PropertyEditor/TestDoubleClassNull.java.i
-data/test/javax/management/namespace/JMXNamespaceViewTest.java.i
+data/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp.i
 data/test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_BevelBorderUIResource.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageMetadataFormat.java.i
 data/src/solaris/classes/sun/java2d/x11/XSurfaceData.java.i
-data/src/share/classes/sun/text/resources/FormatData_be.java.i
+data/src/share/classes/sun/misc/UUEncoder.java.i
 data/test/java/rmi/Naming/LookupIPv6.java.i
-data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelInstrumentIntInt.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/icons/HardDrive.gif.i
-data/src/share/classes/com/sun/media/sound/JARSoundbankReader.java.i
-data/src/windows/native/sun/windows/awt_Checkbox.cpp.i
+data/src/share/classes/javax/swing/text/rtf/package.html.i
+data/src/share/classes/javax/swing/DesktopManager.java.i
 data/src/windows/native/java/io/io_util_md.c.i
-data/src/share/classes/sun/applet/AppletViewerFactory.java.i
+data/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java.i
 data/src/share/classes/org/relaxng/datatype/ValidationContext.java.i
 data/src/share/native/sun/java2d/loops/DrawPath.c.i
 data/test/java/util/concurrent/locks/Lock/TimedAcquire.java.i
 data/src/share/classes/sun/text/resources/FormatData_no.java.i
-data/src/solaris/bin/java_md.h.i
+data/test/javax/swing/JInternalFrame/6725409/bug6725409.java.i
 data/src/share/classes/java/nio/file/FileVisitOption.java.i
-data/src/share/classes/sun/nio/cs/ext/IBM871.java.i
-data/src/windows/native/sun/windows/security_warning_int.ico.i
-data/test/javax/sound/midi/Gervill/SoftTuning/Load1.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-i586/libplds4.so.i
+data/test/java/util/Arrays/ArrayObjectMethods.java.i
 data/src/share/classes/com/sun/net/ssl/SSLContextSpi.java.i
-data/src/share/classes/java/io/CharArrayWriter.java.i
-data/test/java/rmi/transport/checkLeaseInfoLeak/security.policy.i
-data/src/share/classes/java/awt/doc-files/MultiScreen.gif.i
-data/src/share/native/java/lang/Thread.c.i
-data/src/share/classes/sun/util/resources/CurrencyNames_ja.properties.i
+data/test/java/rmi/MarshalledObject/compare/Compare.java.i
+data/test/sun/rmi/rmic/manifestClassPath/run.sh.i
+data/src/windows/native/sun/security/pkcs11/j2secmod_md.h.i
+data/src/share/classes/sun/security/krb5/internal/crypto/Nonce.java.i
+data/test/java/net/MulticastSocket/JoinGroup.java.i
+data/src/share/classes/sun/io/ByteToCharCp874.java.i
 data/test/java/lang/annotation/loaderLeak/LoaderLeak.sh.i
 data/test/java/security/spec/EllipticCurveMatch.java.i
 data/test/javax/swing/JComponent/6683775/bug6683775.java.i
 data/test/javax/swing/LookAndFeel/6474153/bug6474153.java.i
 data/test/javax/management/namespace/JMXDomainTest.java.i
 data/src/solaris/native/sun/awt/XDrawingArea.c.i
-data/make/javax/swing/plaf/FILES.gmk.i
-data/src/share/classes/java/rmi/server/SkeletonNotFoundException.java.i
+data/test/java/awt/Mixing/MixingOnShrinkingHWButton.java.i
+data/src/share/classes/javax/swing/plaf/multi/MultiTreeUI.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/GetPitchCorrection.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties.i
-data/src/share/classes/sun/nio/cs/UTF_16LE.java.i
-data/src/solaris/classes/sun/awt/X11/XBaseWindow.java.i
+data/src/share/classes/com/sun/tools/hat/internal/server/HistogramQuery.java.i
+data/src/share/classes/sun/security/provider/certpath/IndexedCollectionCertStore.java.i
 data/src/share/classes/java/lang/UnknownError.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java.i
 data/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java.i
@@ -15319,410 +15087,426 @@ data/test/sun/security/tools/keytool/NoExtNPE.sh.i
 data/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c.i
 data/src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageCopy_f.c.i
-data/test/java/util/ResourceBundle/Test4314141A__DE.properties.i
+data/src/share/classes/com/sun/media/sound/SoftMixingMixerProvider.java.i
+data/src/share/classes/sun/nio/fs/AbstractWatchKey.java.i
 data/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp.i
-data/src/share/classes/sun/swing/text/html/FrameEditorPaneTag.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCryptoBinary.java.i
-data/src/share/classes/java/nio/file/attribute/PosixFileAttributeView.java.i
-data/test/javax/management/query/QueryParseTest.java.i
+data/test/java/security/BasicPermission/ExitVMEquals.java.i
+data/test/java/lang/instrument/BootClassPath/Agent.java.i
+data/test/com/sun/jdi/GetLocalVariables.java.i
 data/src/share/classes/javax/management/event/EventClient.java.i
 data/src/windows/native/sun/windows/awt_Color.cpp.i
-data/test/sun/net/www/protocol/http/UserAuth.java.i
 data/test/java/net/URLClassLoader/closetest/build2.sh.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/CriticalSubjectAltName.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmRTInputArgsEntryMBean.java.i
 data/src/share/classes/java/awt/im/InputMethodHighlight.java.i
 data/make/tools/swing-beans/beaninfo/images/JAppletMono16.gif.i
-data/make/tools/CharsetMapping/IBM918.map.i
-data/src/share/native/sun/font/layout/TrimmedArrayProcessor.cpp.i
-data/src/share/native/sun/security/ec/impl/ec2_193.c.i
-data/test/java/beans/XMLEncoder/java_io_File.java.i
+data/make/modules/tools/nbproject/project.properties.i
+data/src/windows/back/proc_md.h.i
+data/src/solaris/classes/sun/java2d/xr/XRMaskFill.java.i
+data/src/share/classes/java/io/UTFDataFormatException.java.i
 data/make/sun/security/krb5/Makefile.i
-data/make/tools/src/build/tools/dtdbuilder/PublicMapping.java.i
-data/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java.i
+data/src/solaris/native/sun/java2d/loops/vis_SrcOverMaskBlit.c.i
 data/test/java/rmi/activation/CommandEnvironment/SetChildEnv.java.i
-data/test/java/rmi/activation/ActivationSystem/modifyDescriptor/group.security.policy.i
+data/src/solaris/doc/sun/man/man1/ja/wsimport.1.i
 data/src/share/classes/javax/security/auth/package.html.i
-data/src/share/classes/sun/io/CharToByteISO8859_2.java.i
+data/test/com/sun/servicetag/servicetag4.properties.i
 data/test/javax/smartcardio/TestCardPermission.java.i
-data/src/share/classes/java/util/zip/DeflaterInputStream.java.i
+data/src/share/classes/com/sun/imageio/plugins/jpeg/SOFMarkerSegment.java.i
+data/src/share/demo/jfc/Font2DTest/resources/TextResources_en.properties.i
 data/src/share/classes/java/security/acl/Owner.java.i
-data/src/share/classes/com/sun/pept/encoding/Decoder.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/KeyUtils.java.i
+data/src/share/classes/sun/java2d/pipe/LoopPipe.java.i
+data/src/windows/classes/sun/awt/windows/WRobotPeer.java.i
+data/make/common/Library.gmk.i
+data/src/share/classes/sun/nio/cs/ext/MacRomania.java.i
 data/test/java/util/Collections/CheckedSetBash.java.i
-data/test/java/security/cert/CertPathBuilder/selfIssued/StatusLoopDependency.java.i
-data/src/share/classes/javax/crypto/CipherInputStream.java.i
-data/test/sun/security/krb5/auto/NoAddresses.java.i
+data/src/share/native/java/lang/fdlibm/src/e_asin.c.i
 data/src/share/classes/sun/rmi/transport/proxy/HttpInputStream.java.i
-data/src/share/classes/com/sun/tools/jdi/CommandSender.java.i
-data/test/java/util/zip/pkware123456789012345.zip.i
+data/test/javax/swing/JLabel/7004134/bug7004134.java.i
+data/test/java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java.i
 data/src/share/classes/sun/security/provider/certpath/ForwardBuilder.java.i
 data/src/solaris/native/java/net/Inet6AddressImpl.c.i
+data/src/share/classes/sun/tools/tree/BreakStatement.java.i
 data/test/java/io/File/GetCanonicalPath.java.i
-data/src/share/classes/javax/swing/plaf/metal/icons/ocean/collapsed.gif.i
-data/src/share/demo/jfc/SwingApplet/SwingApplet.html.i
+data/src/share/native/sun/security/ec/oid.c.i
+data/src/windows/classes/sun/java2d/d3d/D3DTextRenderer.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/SingleLeafTreeSelectionModel.java.i
 data/test/javax/management/remote/mandatory/notif/policy.negative.i
-data/src/share/classes/sun/misc/resources/Messages_es.java.i
-data/test/sun/text/resources/Format/Bug4807540.java.i
+data/src/share/classes/java/dyn/LinkagePermission.java.i
+data/src/share/classes/javax/swing/text/html/MinimalHTMLWriter.java.i
 data/test/java/lang/management/OperatingSystemMXBean/PlatformMXBeanTest.java.i
-data/test/javax/sound/midi/Gervill/SoftReceiver/Send_AllSoundOff.java.i
+data/src/share/classes/java/nio/file/attribute/DosFileAttributeView.java.i
 data/src/share/classes/sun/security/jgss/GSSHeader.java.i
-data/src/share/classes/sun/io/CharToByteCp943.java.i
+data/src/solaris/classes/sun/awt/X11/XListPeer.java.i
 data/src/share/classes/sun/util/locale/StringTokenIterator.java.i
-data/test/java/lang/management/RuntimeMXBean/TestInputArgument.sh.i
-data/test/java/nio/channels/DatagramChannel/Sender.java.i
+data/src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java.i
 data/src/share/classes/javax/imageio/stream/ImageInputStream.java.i
 data/src/share/bin/java.c.i
 data/test/java/net/InterfaceAddress/Equals.java.i
-data/test/sun/management/HotspotClassLoadingMBean/GetClassInitializationTime.java.i
 data/make/tools/swing-beans/beaninfo/images/JWindowMono16.gif.i
 data/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifComboBoxUI.java.i
-data/src/share/classes/java/awt/color/package.html.i
+data/src/share/classes/javax/security/auth/kerberos/ServicePermission.java.i
 data/src/share/classes/javax/management/loading/package.html.i
-data/src/share/classes/sun/security/ec/ECDHKeyAgreement.java.i
-data/src/share/classes/sun/font/FontAccess.java.i
+data/test/java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java.i
+data/test/java/lang/reflect/Proxy/returnTypes/GetSerializable.java.i
+data/test/java/beans/Introspector/6380849/beans/FirstBean.java.i
 data/src/share/classes/sun/awt/DebugSettings.java.i
-data/src/windows/native/sun/security/smartcardio/pcsc_md.c.i
+data/src/share/back/ReferenceTypeImpl.h.i
+data/test/com/sun/security/auth/module/KeyStoreLoginModule/OptionTest.keyPass.i
 data/test/tools/pack200/PackageVersionTest.java.i
-data/test/java/lang/String/CompareIC.java.i
-data/src/share/classes/javax/swing/plaf/metal/icons/ocean/minimize.gif.i
+data/src/share/classes/sun/management/jmxremote/LocalRMIServerSocketFactory.java.i
 data/make/common/Defs-embedded.gmk.i
-data/test/sun/nio/cs/SurrogateTestEUCTW.plane4.surrogates.i
 data/src/share/classes/sun/awt/resources/awt.properties.i
-data/test/java/lang/Runtime/exec/SetCwd.java.i
+data/src/share/classes/java/nio/file/DirectoryStream.java.i
+data/test/java/rmi/RMISecurityManager/checkPackageAccess/CheckPackageAccess.java.i
 data/test/java/beans/XMLEncoder/java_awt_LinearGradientPaint.java.i
 data/src/share/native/java/net/InetAddress.c.i
-data/src/share/classes/sun/nio/cs/ISO_8859_13.java.i
-data/src/share/classes/com/sun/servicetag/ServiceTag.java.i
+data/test/javax/management/loading/DocumentRootTest.java.i
+data/src/share/classes/com/sun/pept/ept/EPTFactory.java.i
 data/test/java/awt/FontClass/CreateFont/BigFont.java.i
-data/make/mkdemo/jfc/SwingApplet/Makefile.i
+data/src/share/classes/com/sun/rowset/internal/WebRowSetXmlWriter.java.i
+data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.java.i
 data/src/share/classes/javax/swing/text/html/FrameView.java.i
-data/test/java/util/Locale/bug4122700.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBuffer/NewModelByteBufferByteArray.java.i
-data/src/share/native/java/lang/fdlibm/src/w_cosh.c.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/EncryptedKeyResolver.java.i
+data/test/javax/swing/JFileChooser/6840086/bug6840086.java.i
+data/test/java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html.i
 data/src/share/classes/java/util/HashMap.java.i
 data/make/netbeans/common/make.xml.i
-data/src/share/classes/java/security/KeyStoreException.java.i
-data/test/javax/crypto/Cipher/Turkish.java.i
+data/src/share/classes/sun/security/provider/MD5.java.i
+data/test/sun/security/tools/jarsigner/oldsig.sh.i
 data/make/mkdemo/management/FullThreadDump/Makefile.i
-data/src/share/classes/java/util/logging/ErrorManager.java.i
+data/test/javax/sound/midi/Gervill/SoftTuning/RealTimeTuning.java.i
 data/test/com/sun/tools/attach/ApplicationSetup.sh.i
 data/src/share/classes/sun/nio/cs/UTF_32BE.java.i
 data/src/solaris/classes/sun/awt/motif/MDataTransferer.java.i
-data/make/java/beans/Makefile.i
+data/src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariTables.java.i
+data/test/java/awt/Graphics2D/DrawString/LCDTextSrcEa.java.i
 data/src/share/native/java/io/ObjectStreamClass.c.i
 data/test/java/beans/PropertyEditor/TestByteClassValue.java.i
 data/src/share/classes/sun/security/provider/MD4.java.i
 data/src/windows/native/sun/windows/awt_Mlib.cpp.i
-data/test/java/net/URLConnection/UnknownContentType.java.i
-data/make/tools/CharsetMapping/IBM1123.map.i
-data/make/tools/swing-beans/beaninfo/images/JFormattedTextFieldMono16.gif.i
+data/src/share/classes/sun/nio/fs/AbstractFileTypeDetector.java.i
+data/test/java/io/Serializable/subclass/AbstractObjectOutputStream.java.i
+data/test/org/openjdk/jigsaw/properties.xml.i
+data/src/windows/native/com/sun/management/OperatingSystem_md.c.i
+data/src/share/native/sun/font/layout/GlyphIterator.h.i
 data/src/share/classes/com/sun/media/sound/SF2GlobalRegion.java.i
 data/src/share/classes/java/lang/Process.java.i
 data/src/share/demo/scripting/jconsole-plugin/src/scripts/jtop.js.i
-data/test/sun/rmi/rmic/covariantReturns/G2Impl.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/FloatArrayCalls.java.i
-data/test/javax/crypto/spec/RC2ParameterSpec/RC2AlgorithmParameters.java.i
+data/src/share/classes/java/lang/BootstrapMethodError.java.i
+data/test/sun/text/resources/Format/Bug4651568.java.i
 data/src/share/native/java/sql/DriverManager.c.i
-data/src/share/native/sun/java2d/opengl/OGLBufImgOps.c.i
-data/test/org/openjdk/jigsaw/cli/prikey.pem.i
-data/src/share/classes/com/sun/media/sound/AbstractMidiDevice.java.i
+data/src/solaris/native/sun/xawt/XlibWrapper.c.i
+data/test/sun/security/tools/jarsigner/ec.sh.i
+data/src/share/native/sun/java2d/loops/Ushort555Rgb.h.i
 data/test/javax/management/remote/mandatory/connectorServer/SetMBeanServerForwarder.java.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmMemoryMeta.java.i
+data/src/windows/native/sun/java2d/d3d/D3DRenderQueue.cpp.i
 data/src/solaris/classes/sun/awt/X11/XTextTransferHelper.java.i
 data/src/share/classes/sun/tools/tree/AssignOpExpression.java.i
-data/make/tools/src/build/tools/jdwpgen/StringObjectTypeNode.java.i
+data/src/solaris/doc/sun/man/man1/ja/keytool.1.i
 data/test/java/math/BigInteger/ModPow65537.java.i
-data/src/share/classes/com/sun/crypto/provider/KeyGeneratorCore.java.i
+data/test/java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html.i
 data/test/java/lang/instrument/ParallelTransformerLoaderApp.java.i
-data/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java.i
-data/test/javax/naming/InitialContext/EnvClone.java.i
-data/src/share/native/sun/awt/image/jpeg/jcphuff.c.i
+data/make/tools/swing-beans/beaninfo/images/JPopupMenuColor16.gif.i
+data/test/javax/sound/midi/Gervill/SoftReceiver/Send_Omni.java.i
 data/src/share/classes/java/security/cert/CertPathHelperImpl.java.i
 data/src/share/javavm/include/opcodes.h.i
 data/src/windows/resource/java.rc.i
 data/src/share/classes/sun/awt/im/InputContext.java.i
 data/test/javax/management/monitor/MultiMonitorTest.java.i
+data/src/share/classes/com/sun/jdi/TypeComponent.java.i
+data/src/share/classes/java/lang/doc-files/javalang.doc.anc41.gif.i
 data/src/share/classes/sun/rmi/registry/resources/rmiregistry_ja.properties.i
 data/src/share/classes/javax/swing/LayoutFocusTraversalPolicy.java.i
 data/src/share/classes/javax/swing/colorchooser/ColorModelCMYK.java.i
-data/src/share/classes/com/sun/jmx/mbeanserver/DynamicMBean2.java.i
-data/src/share/classes/java/rmi/server/RemoteRef.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_de.properties.i
+data/test/java/beans/PropertyEditor/TestEnumClassNull.java.i
+data/src/share/classes/javax/swing/plaf/metal/icons/ocean/close-pressed.gif.i
+data/test/java/beans/XMLEncoder/java_sql_Time.java.i
 data/test/java/lang/Class/getModifiers/ResolveFrom.java.i
-data/src/windows/classes/java/net/TwoStacksPlainSocketImpl.java.i
-data/src/share/classes/sun/util/logging/resources/logging_it.properties.i
+data/test/javax/management/mxbean/AmbiguousConstructorTest.java.i
 data/src/share/classes/javax/sound/sampled/ReverbType.java.i
-data/src/share/classes/com/sun/jdi/request/ThreadDeathRequest.java.i
+data/test/javax/security/auth/kerberos/KerberosTixDateTest.java.i
 data/src/share/classes/javax/security/auth/kerberos/JavaxSecurityAuthKerberosAccessImpl.java.i
-data/src/share/classes/java/lang/reflect/Member.java.i
+data/test/java/rmi/Naming/RmiIsNoScheme.java.i
 data/test/javax/xml/crypto/dsig/data/signature-retrievalmethod-rawx509crt.xml.i
-data/test/java/rmi/Naming/legalRegistryNames/Legal.java.i
+data/src/share/classes/java/nio/channels/AsynchronousFileChannel.java.i
 data/src/share/classes/sun/security/krb5/KrbTgsReq.java.i
+data/test/javax/security/auth/x500/X500Principal/DerIsConstructor.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthRadioButtonMenuItemUI.java.i
 data/test/java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.html.i
-data/src/share/classes/java/util/RandomAccess.java.i
-data/src/solaris/doc/sun/man/man1/rmic.1.i
+data/src/share/classes/sun/security/x509/X509CertInfo.java.i
+data/test/java/beans/Introspector/memory/Bean4.java.i
 data/test/java/beans/XMLEncoder/java_sql_Date.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libnssckbi.so.i
 data/make/tools/sharing/classlist.solaris.i
 data/src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java.i
+data/src/share/demo/jvmti/minst/minst.c.i
 data/src/share/classes/com/sun/tools/example/debug/tty/TTY.java.i
 data/test/java/rmi/Naming/DefaultRegistryPort.java.i
 data/make/tools/dtdbuilder/Makefile.i
 data/src/share/classes/java/util/logging/LoggingProxyImpl.java.i
-data/src/share/demo/scripting/jconsole-plugin/src/META-INF/services/com.sun.tools.jconsole.JConsolePlugin.i
+data/src/solaris/native/sun/awt/color.h.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU8U8Func.c.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.policy.i
-data/test/javax/xml/crypto/dsig/data/exc-signature.xml.i
+data/test/java/util/AbstractList/HasNextAfterException.java.i
 data/test/javax/sound/midi/Gervill/ModelPerformer/SetSelfNonExclusive.java.i
+data/test/java/lang/reflect/Generics/SignatureTest.java.i
+data/src/share/classes/java/lang/invoke/CountingMethodHandle.java.i
 data/src/share/demo/jvmti/hprof/jvm.hprof.txt.i
 data/src/share/classes/java/awt/peer/DialogPeer.java.i
-data/test/java/lang/instrument/TransformMethodTest.java.i
-data/test/demo/jvmti/gctest/BigHello.java.i
+data/test/java/beans/Beans/Test4067824.java.i
+data/src/share/native/sun/awt/libpng/pnglibconf.h.i
 data/src/share/classes/java/rmi/activation/ActivationID.java.i
-data/test/java/net/SocketPermission/Equals.java.i
-data/make/java/redist/FILES.gmk.i
-data/test/java/beans/XMLEncoder/javax_swing_border_BevelBorder.java.i
+data/test/java/nio/channels/SocketChannel/Open.sh.i
 data/make/tools/src/build/tools/jdwpgen/ArrayRegionTypeNode.java.i
-data/test/javax/smartcardio/TestCommandAPDU.java.i
+data/test/sun/security/tools/keytool/DummyProvider.java.i
 data/src/solaris/sample/dtrace/hotspot/method_invocation_stat.d.i
-data/src/share/classes/javax/swing/AbstractAction.java.i
+data/src/share/native/sun/awt/image/jpeg/jquant2.c.i
 data/src/windows/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java.i
 data/src/share/classes/java/io/ObjectStreamClass.java.i
-data/make/sun/awt/README.i
-data/test/java/lang/Class/getMethod/NullInParamList.java.i
+data/src/share/classes/sun/management/snmp/jvmmib/package.html.i
+data/src/share/classes/javax/accessibility/AccessibleRelationSet.java.i
+data/test/com/sun/nio/sctp/SctpServerChannel/NonBlockingAccept.java.i
 data/src/share/classes/java/util/prefs/PreferencesFactory.java.i
 data/src/share/classes/java/util/TooManyListenersException.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmThreadingMBean.java.i
 data/src/share/classes/java/util/Properties.java.i
-data/src/share/classes/sun/awt/SubRegionShowable.java.i
 data/test/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java.i
-data/make/tools/swing-beans/beaninfo/images/JSeparatorColor16.gif.i
-data/test/sun/security/pkcs11/Secmod/nss.cfg.i
-data/test/java/util/ResourceBundle/Control/XmlRB_ja.xml.i
-data/test/javax/print/applet/applet2/META-INF/services/javax.print.PrintServiceLookup.i
+data/src/share/classes/sun/tools/jar/Main.java.i
+data/src/share/classes/java/awt/doc-files/GridLayout-2.gif.i
+data/test/javax/swing/JScrollBar/6924059/bug6924059.java.i
+data/test/sun/security/util/PropertyExpander/ExpandAndEncode.java.i
 data/src/solaris/native/sun/awt/fontconfig.h.i
 data/test/java/net/URL/Test.java.i
-data/make/netbeans/common/shared.xml.i
-data/src/share/classes/com/sun/media/sound/services/windows-i586/javax.sound.sampled.spi.MixerProvider.i
+data/test/javax/management/remote/mandatory/subjectDelegation/policy24.i
+data/make/sun/security/smartcardio/mapfile-vers.i
 data/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c.i
-data/test/javax/management/remote/mandatory/provider/META-INF/services/javax.management.remote.JMXConnectorServerProvider.i
-data/test/javax/management/remote/mandatory/connectorServer/StandardForwardersTest.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/RSAKeyValueResolver.java.i
-data/src/share/classes/com/sun/media/sound/AiffFileFormat.java.i
+data/test/com/sun/tools/attach/BadAgent.java.i
+data/src/share/demo/jfc/Metalworks/resources/HelpFiles/metalworks.html.i
+data/test/javax/print/attribute/ServiceDialogTest.java.i
+data/src/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes256CksumType.java.i
 data/test/java/lang/reflect/Field/GenericStringTest.java.i
-data/test/org/openjdk/jigsaw/cli/signer-prikey.pem.i
+data/src/share/classes/java/util/CurrencyData.properties.i
 data/test/java/beans/XMLEncoder/Test6187118.java.i
 data/src/share/classes/org/openjdk/jigsaw/cli/Signer.java.i
 data/src/share/classes/javax/sql/rowset/JoinRowSet.java.i
 data/src/share/classes/sun/java2d/pisces/Helpers.java.i
 data/test/sun/security/krb5/auto/ok-as-delegate.sh.i
-data/src/share/classes/java/rmi/activation/UnknownGroupException.java.i
-data/src/share/demo/jvmti/hprof/hprof_tracker.h.i
+data/test/java/nio/Buffer/CopyDirect-X-Memory.java.template.i
+data/src/share/instrument/JarFacade.h.i
 data/test/java/rmi/reliability/juicer/AppleUser.java.i
-data/src/windows/native/sun/windows/awt_ScrollPane.h.i
+data/test/java/io/LineNumberInputStream/Skip.java.i
 data/test/java/io/RandomAccessFile/ParameterCheck.java.i
-data/src/share/classes/sun/io/ByteToCharCp1145.java.i
+data/src/share/native/sun/reflect/Reflection.c.i
 data/test/sun/nio/cs/TestUni2HKSCS.java.i
+data/src/share/classes/java/awt/print/PrinterJob.java.i
 data/src/share/native/sun/awt/splashscreen/splashscreen_gfx_impl.c.i
+data/src/share/classes/java/awt/print/PrinterIOException.java.i
 data/test/java/rmi/reliability/benchmark/runRmiBench.sh.i
-data/src/share/classes/sun/java2d/opengl/OGLBufImgOps.java.i
-data/src/solaris/classes/sun/nio/fs/UnixFileSystem.java.i
-data/src/share/classes/sun/security/provider/certpath/ReverseBuilder.java.i
+data/src/share/native/sun/java2d/loops/DrawRect.c.i
+data/src/share/classes/java/lang/VirtualMachineError.java.i
+data/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java.i
 data/test/java/io/PrintWriter/CheckError.java.i
 data/test/sun/security/smartcardio/TestTransmit.java.i
 data/test/java/util/concurrent/forkjoin/Integrate.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/PerfIntegerMonitor.java.i
-data/src/solaris/bin/jexec.c.i
+data/test/javax/crypto/SealedObject/NullKeySealedObject.java.i
 data/src/windows/native/sun/tracing/dtrace/jvm_symbols_md.c.i
 data/src/share/classes/com/sun/media/sound/SoftMixingMainMixer.java.i
-data/src/share/classes/java/lang/doc-files/capsigma.gif.i
+data/test/sun/nio/cs/OLD/EUC_CN_OLD.java.i
 data/src/share/classes/sun/tools/tree/BinaryShiftExpression.java.i
 data/src/share/classes/java/rmi/activation/ActivationException.java.i
 data/test/sun/net/www/protocol/http/B6890349.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/XMLX509IssuerSerial.java.i
-data/src/share/classes/sun/security/ec/ECDSASignature.java.i
-data/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/CustomUIDefault.java.i
-data/src/share/classes/javax/imageio/ImageWriter.java.i
-data/src/share/classes/sun/reflect/generics/tree/BaseType.java.i
-data/src/share/classes/javax/imageio/metadata/doc-files/bmp_metadata.html.i
+data/src/solaris/native/java/io/canonicalize_md.c.i
+data/make/tools/swing-beans/beaninfo/images/JViewportColor32.gif.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/UnloadAllInstruments.java.i
+data/test/java/io/Serializable/packageAccess/C.java.i
+data/test/java/lang/StringCoding/CheckEncodings.sh.i
+data/src/share/classes/sun/security/pkcs/PKCS7.java.i
 data/test/java/rmi/registry/classPathCodebase/security.policy.i
-data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiIn.c.i
 data/test/java/net/URLClassLoader/sealing/b/p/B.java.i
 data/src/solaris/classes/sun/nio/fs/UnixPath.java.i
-data/test/java/nio/file/Files/ContentType.java.i
+data/test/java/util/concurrent/ConcurrentQueues/IteratorWeakConsistency.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java.i
-data/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java.i
-data/src/share/classes/java/nio/file/WatchKey.java.i
+data/test/sun/jvmstat/monitor/VmIdentifier/testcases.i
+data/src/solaris/classes/sun/awt/X11/security-icon-bw48.png.i
 data/src/share/classes/java/util/logging/Logging.java.i
 data/test/java/io/Serializable/explicitCNFException/ExplicitCNFException.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/InvalidDigestValueException.java.i
-data/src/share/classes/sun/java2d/loops/DrawLine.java.i
+data/src/share/back/eventFilter.h.i
 data/src/share/classes/sun/util/resources/CalendarData_sr_Latn_BA.properties.i
-data/test/java/lang/Class/forName/classes/3.class.i
+data/test/sun/jvmstat/testlibrary/utils.sh.i
 data/src/share/classes/sun/security/krb5/internal/crypto/DesMacCksumType.java.i
 data/test/javax/security/auth/login/Exceptions/NewExceptions.java.i
-data/make/sun/text/Makefile.i
-data/make/mkdemo/applets/TicTacToe/Makefile.i
+data/src/share/classes/sun/nio/cs/CharsetMapping.java.i
+data/make/tools/reorder/tests/LoadJFrame.java.i
 data/src/share/classes/java/lang/ref/WeakReference.java.i
 data/src/share/classes/java/nio/file/CopyOption.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/DayTimeInterface.java.i
-data/src/share/classes/java/lang/StringBuilder.java.i
+data/make/java/jexec/Makefile.i
 data/test/sun/security/provider/KeyStore/TestJKSWithSecretKey.java.i
 data/make/tools/swing-beans/beaninfo/images/JOptionPaneMono32.gif.i
 data/src/share/classes/java/awt/Polygon.java.i
 data/make/mkdemo/jvmti/minst/Makefile.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj.i
+data/src/windows/classes/sun/awt/windows/WDialogPeer.java.i
 data/test/com/sun/jdi/GetLocalVariables3Test.sh.i
 data/src/solaris/classes/sun/nio/fs/UnixSecureDirectoryStream.java.i
 data/src/share/classes/sun/awt/AWTSecurityManager.java.i
 data/test/javax/management/Introspector/annot/Name.java.i
 data/src/windows/classes/sun/nio/fs/WindowsDirectoryStream.java.i
-data/src/share/classes/javax/accessibility/AccessibleEditableText.java.i
-data/src/share/classes/javax/swing/event/package.html.i
-data/test/java/lang/Thread/StackTraces.java.i
+data/src/share/classes/sun/misc/JavaIODeleteOnExitAccess.java.i
+data/src/share/classes/sun/text/resources/CollationData.java.i
+data/test/java/util/ResourceBundle/Test4314141A_de_.properties.i
 data/make/sun/awt/Makefile.i
-data/test/java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsRadioButtonUI.java.i
+data/src/share/classes/java/awt/geom/PathIterator.java.i
+data/src/share/classes/javax/net/ssl/HostnameVerifier.java.i
+data/make/com/sun/jarsigner/Makefile.i
+data/src/share/classes/com/sun/jmx/remote/protocol/rmi/ServerProvider.java.i
+data/test/java/awt/dnd/URIListBetweenJVMsTest/InterprocessMessages.java.i
 data/src/share/classes/java/nio/file/FileAlreadyExistsException.java.i
-data/test/java/rmi/registry/interfaceHash/InterfaceHash.java.i
+data/test/java/util/ResourceBundle/Control/PackagePrivateRB.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMAccess.java.i
 data/src/windows/classes/sun/security/provider/NativePRNG.java.i
-data/src/share/classes/javax/sound/midi/ControllerEventListener.java.i
-data/src/share/native/sun/font/layout/SubtableProcessor.cpp.i
-data/src/share/classes/sun/rmi/transport/ConnectionInputStream.java.i
+data/test/javax/crypto/SecretKeyFactory/P2.jar.i
+data/test/java/text/Bidi/BidiConformance.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509IssuerSerial.java.i
+data/src/share/classes/java/rmi/server/RMISocketFactory.java.i
 data/src/solaris/classes/java/lang/UNIXProcess.java.linux.i
+data/src/share/demo/README.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java.i
-data/src/solaris/back/linker_md.c.i
-data/test/javax/management/remote/mandatory/notif/NotificationEmissionTest.java.i
+data/test/java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java.i
 data/src/share/classes/com/sun/security/sasl/ServerFactoryImpl.java.i
 data/src/share/classes/sun/rmi/transport/proxy/RMISocketInfo.java.i
 data/test/java/lang/reflect/Assignment/ArrayAssignment.java.i
 data/make/tools/swing-beans/beaninfo/images/JTableMono32.gif.i
 data/src/solaris/classes/sun/awt/motif/X11DragSourceContextPeer.java.i
-data/make/sun/security/pkcs11/Makefile.i
-data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/StateTestService.java.i
+data/src/share/classes/sun/print/ServiceDialog.java.i
+data/test/sun/security/pkcs11/rsa/TestSignatures.java.i
 data/src/share/classes/javax/print/attribute/standard/QueuedJobCount.java.i
-data/src/share/classes/com/sun/jdi/ThreadGroupReference.java.i
-data/src/share/classes/javax/swing/text/rtf/RTFAttribute.java.i
+data/test/javax/swing/JColorChooser/Test4380468.java.i
+data/test/java/rmi/Naming/LookupNameWithColon.java.i
 data/test/java/lang/instrument/TestClass2.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputImageTests.java.i
-data/src/share/classes/sun/io/ByteToCharCp1140.java.i
-data/make/tools/src/build/tools/javazic/RuleRec.java.i
+data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiIn.c.i
+data/src/share/classes/com/sun/tools/example/debug/gui/ClassTreeTool.java.i
+data/test/javax/swing/JPopupMenu/6691503/bug6691503.java.i
 data/test/java/lang/invoke/MethodHandlesTest.java.i
 data/src/share/classes/java/util/concurrent/locks/LockSupport.java.i
+data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java.i
 data/test/java/net/DatagramSocket/InheritHandle.java.i
 data/test/java/util/Formatter/BasicDouble.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java.i
-data/test/sun/security/provider/PolicyFile/Comparator.java.i
-data/test/java/util/concurrent/locks/ReentrantReadWriteLock/LoopHelpers.java.i
+data/src/share/sample/nio/server/URLDumper.java.i
+data/src/share/classes/java/rmi/server/Unreferenced.java.i
 data/src/share/classes/com/sun/tools/example/debug/expr/ASCII_UCodeESC_CharStream.java.i
 data/test/java/io/FileInputStream/LeadingSlash.java.i
-data/src/share/classes/sun/tools/tree/ConditionVars.java.i
-data/src/share/classes/java/lang/Float.java.i
+data/make/tools/swing-beans/beaninfo/images/JFormattedTextFieldMono16.gif.i
+data/src/windows/classes/sun/java2d/d3d/D3DRenderQueue.java.i
+data/test/javax/management/Introspector/GetMBeanInfoExceptionTest.java.i
 data/make/javax/swing/beaninfo/manifest.i
-data/src/share/classes/java/awt/im/package.html.i
+data/src/windows/classes/sun/awt/windows/WFontPeer.java.i
 data/src/share/classes/javax/swing/text/html/parser/DTD.java.i
 data/src/share/classes/javax/security/sasl/SaslServerFactory.java.i
-data/src/share/classes/javax/management/relation/Relation.java.i
-data/test/java/lang/Runtime/exec/Duped.java.i
-data/test/sun/management/HotspotThreadMBean/GetInternalThreads.java.i
-data/src/share/classes/javax/swing/border/AbstractBorder.java.i
-data/src/share/sample/scripting/scriptpad/README.txt.i
+data/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java.i
+data/src/share/classes/java/nio/charset/exceptions.i
+data/src/share/demo/jfc/SampleTree/resources/images/expanded.gif.i
+data/src/solaris/classes/sun/nio/ch/FileKey.java.i
 data/test/javax/security/auth/x500/X500Principal/EscapedChars.java.i
 data/src/share/classes/javax/swing/text/DocumentFilter.java.i
-data/src/windows/native/sun/windows/stdhdrs.h.i
+data/test/sun/security/pkcs11/Provider/Login-nss.txt.i
 data/src/solaris/native/sun/java2d/loops/vis_IntArgb.c.i
-data/make/modules/tools/src/com/sun/classanalyzer/CheckDeps.java.i
+data/src/share/native/sun/font/layout/ThaiLayoutEngine.cpp.i
 data/test/java/io/File/AccessDenied.java.i
+data/src/share/classes/java/awt/geom/Rectangle2D.java.i
 data/test/java/rmi/server/clientStackTrace/security.policy.i
 data/test/sun/security/krb5/auto/SSL.java.i
 data/src/share/classes/sun/nio/ch/SelectorImpl.java.i
-data/make/tools/CharsetMapping/MacCentralEurope.map.i
+data/test/java/math/BigInteger/ProbablePrime.java.i
 data/src/share/classes/sun/nio/cs/UTF_32.java.i
-data/test/java/net/URL/HashCode.java.i
 data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ArgCheck.java.i
 data/src/share/classes/sun/security/ssl/HelloExtensions.java.i
 data/src/share/classes/sun/security/krb5/internal/APReq.java.i
-data/src/share/classes/sun/print/PrintJob2D.java.i
+data/src/share/classes/java/awt/peer/ListPeer.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_it.properties.i
+data/test/org/openjdk/jigsaw/InstallFromRepo.java.i
 data/test/javax/management/remote/mandatory/notif/ListenerScaleTest.java.i
+data/src/share/native/common/gdefs.h.i
 data/src/windows/classes/sun/nio/ch/SctpServerChannelImpl.java.i
 data/test/javax/sound/midi/Gervill/ModelSource/NewModelSourceModelIdentifierBoolean.java.i
-data/src/share/classes/com/sun/tools/example/debug/bdi/VMNotInterruptedException.java.i
-data/src/share/classes/javax/crypto/ShortBufferException.java.i
+data/src/solaris/demo/jni/Poller/Poller.java.i
+data/src/share/classes/com/sun/jmx/remote/internal/IIOPHelper.java.i
 data/src/solaris/classes/sun/java2d/BackBufferCapsProvider.java.i
 data/src/share/classes/sun/text/resources/uprops.icu.i
 data/src/share/classes/javax/swing/filechooser/FileSystemView.java.i
-data/src/share/classes/sun/font/FileFont.java.i
-data/src/share/classes/com/sun/jndi/ldap/BindingWithControls.java.i
+data/test/com/sun/jdi/HelloWorld.java.i
+data/src/share/classes/sun/misc/BASE64Encoder.java.i
+data/src/share/classes/javax/net/ssl/ExtendedSSLSession.java.i
 data/test/java/io/charStreams/WriteLengths.java.i
 data/test/javax/management/remote/mandatory/notif/NotificationBufferCreationTest.java.i
-data/test/sun/tools/jps/jps-Vm_Output2.awk.i
-data/src/share/classes/com/sun/jdi/Value.java.i
-data/src/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifRadioButtonUI.java.i
-data/make/org/jcp/Makefile.i
+data/src/share/classes/sun/jvmstat/monitor/event/VmStatusChangeEvent.java.i
+data/src/share/classes/java/awt/event/MouseEvent.java.i
+data/src/share/classes/javax/swing/plaf/metal/icons/ocean/minimize-pressed.gif.i
+data/src/share/classes/sun/security/jgss/krb5/MicToken.java.i
 data/make/netbeans/jconsole/nbproject/project.xml.i
 data/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java.i
 data/test/sun/security/provider/MessageDigest/Offsets.java.i
 data/test/org/openjdk/jigsaw/cli/signed-module.sh.i
-data/make/java/invoke/Makefile.i
+data/test/java/lang/ClassLoader/Assert.java.i
 data/src/share/classes/sun/dyn/MethodHandleImpl.java.i
 data/test/java/beans/XMLDecoder/Test4864117.java.i
 data/src/share/sample/forkjoin/mergesort/MergeDemo.java.i
+data/test/sun/security/tools/jarsigner/LargeJarEntry.java.i
 data/test/sun/net/www/ftptest/FtpCommandHandler.java.i
-data/src/windows/native/sun/java2d/windows/ddrawUtils.h.i
-data/src/share/classes/sun/nio/cs/ext/IBM278.java.i
+data/src/share/sample/jmx/jmx-scandir/docfiles/scandir-config.jpg.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/ObjectCodeConvertors.java.i
+data/test/java/awt/FileDialog/MultipleMode/MultipleMode.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_de_CH.properties.i
 data/test/sun/rmi/rmic/newrmic/equivalence/Task.java.i
 data/src/share/classes/com/sun/media/sound/MidiDeviceReceiverEnvelope.java.i
-data/test/java/util/TimSort/README.i
+data/src/share/classes/sun/awt/AWTAccessor.java.i
 data/test/javax/swing/JEditorPane/6917744/test.html.i
 data/src/share/classes/java/awt/Point.java.i
-data/test/lib/security/java.policy/Ext_AllPolicy.java.i
-data/src/share/classes/java/net/SocketPermission.java.i
+data/src/share/classes/org/openjdk/internal/joptsimple/ArgumentAcceptingOptionSpec.java.i
+data/src/share/classes/javax/swing/LayoutStyle.java.i
 data/test/java/io/File/Unicode.java.i
 data/src/share/classes/sun/util/locale/LocaleSyntaxException.java.i
-data/make/sun/Makefile.i
+data/src/share/classes/javax/accessibility/AccessibleBundle.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/FuncHereContext.java.i
-data/make/sun/cmm/lcms/Makefile.i
-data/src/solaris/native/sun/java2d/x11/X11FontScaler_md.c.i
-data/src/share/classes/sun/security/krb5/KrbAsReq.java.i
+data/src/share/classes/sun/text/normalizer/ReplaceableString.java.i
+data/src/share/classes/com/sun/jdi/request/ThreadDeathRequest.java.i
+data/src/windows/native/sun/windows/awt_IconCursor.h.i
 data/test/java/lang/Runtime/exec/Status.java.i
-data/test/java/lang/instrument/PremainClass/PremainClassTest.sh.i
-data/test/sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java.i
+data/test/javax/sound/midi/Gervill/ModelPerformer/GetOscillators.java.i
+data/src/share/classes/sun/dyn/anon/AnonymousClassLoader.java.i
+data/test/sun/security/mscapi/RSAEncryptDecrypt.sh.i
+data/src/share/classes/sun/tools/tree/BitNotExpression.java.i
 data/src/share/classes/com/sun/security/sasl/Provider.java.i
-data/make/com/sun/tracing/dtrace/Makefile.i
-data/src/share/native/sun/font/layout/LigatureSubstProc.cpp.i
+data/test/java/util/ServiceLoader/FooService.java.i
+data/test/java/rmi/reliability/benchmark/bench/serial/FloatArrays.java.i
 data/test/java/nio/channels/Selector/lots_of_updates.sh.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/v2_0/PerfDataBuffer.java.i
+data/test/lib/security/java.policy/Ext_AllPolicy.sh.i
 data/test/java/net/InetAddress/SimpleNameService.java.i
 data/src/share/native/sun/security/ec/impl/ecp_521.c.i
-data/src/share/classes/javax/swing/JCheckBoxMenuItem.java.i
+data/src/solaris/instrument/FileSystemSupport_md.c.i
 data/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java.i
 data/src/share/classes/javax/management/RuntimeOperationsException.java.i
-data/src/share/classes/javax/print/attribute/standard/ReferenceUriSchemesSupported.java.i
-data/src/share/classes/javax/swing/plaf/TreeUI.java.i
-data/test/javax/management/MBeanInfo/SerializationTest.java.i
-data/src/share/native/java/util/concurrent/atomic/AtomicLong.c.i
-data/src/share/classes/javax/swing/text/TextLayoutStrategy.java.i
+data/test/javax/management/namespace/RemoveNotificationListenerTest.java.i
+data/make/tools/swing-beans/beaninfo/images/JPasswordFieldMono32.gif.i
+data/src/share/classes/javax/xml/crypto/URIDereferencer.java.i
+data/make/tools/src/build/tools/generatenimbus/Utils.java.i
+data/src/share/classes/org/ietf/jgss/GSSException.java.i
 data/test/javax/naming/ldap/LdapName/EscapeUnescapeTests.java.i
 data/test/java/util/LinkedList/Remove.java.i
 data/test/com/sun/jdi/DeleteAllBkptsTest.java.i
 data/src/windows/classes/sun/awt/windows/WPathGraphics.java.i
 data/test/sun/security/provider/PolicyFile/EmailAddress.policy.i
 data/test/java/net/URL/abnormal_http_urls.i
-data/make/tools/swing-beans/beaninfo/images/JToolBarMono16.gif.i
-data/src/share/classes/com/sun/jdi/connect/spi/TransportService.java.i
-data/src/share/classes/java/nio/Buffer.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU16U8Func.c.i
-data/src/share/classes/sun/util/resources/CalendarData.properties.i
+data/test/sun/net/www/http/ChunkedInputStream/ChunkedEncodingTest.java.i
+data/src/share/classes/org/relaxng/datatype/DatatypeLibrary.java.i
+data/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c.i
+data/test/java/net/BindException/Test.java.i
+data/test/java/util/EnumSet/RetainAll.java.i
+data/test/javax/management/remote/mandatory/passwordAuthenticator/SimpleStandardMBean.java.i
+data/test/java/rmi/reliability/benchmark/bench/serial/Doubles.java.i
 data/src/share/classes/java/util/AbstractMap.java.i
 data/src/share/classes/sun/tools/tree/StringExpression.java.i
 data/test/java/util/zip/InflaterBufferSize.java.i
@@ -15732,270 +15516,293 @@ data/src/share/classes/java/awt/image/package.html.i
 data/src/share/classes/sun/awt/image/BadDepthException.java.i
 data/test/javax/management/loading/mlet1.html.i
 data/test/sun/nio/ch/Basic.java.i
-data/test/java/beans/Introspector/6380849/infos/SecondBeanBeanInfo.java.i
+data/test/java/io/Serializable/classDescGetField/GetField.java.i
 data/test/sun/nio/cs/OLD/IBM930_OLD.java.i
-data/make/com/sun/nio/Makefile.i
+data/src/share/classes/com/sun/servicetag/RegistrationData.java.i
 data/test/java/rmi/activation/Activatable/extLoadedImpl/ExtLoadedImplTest.java.i
 data/src/share/classes/sun/reflect/annotation/AnnotationType.java.i
-data/src/share/bin/jli_util.h.i
+data/test/sun/misc/JarIndex/metaInfFilenames/jarA/META-INF/services/my.happy.land.i
 data/src/share/classes/com/sun/media/sound/AbstractDataLine.java.i
-data/src/share/classes/sun/security/ssl/ECDHClientKeyExchange.java.i
+data/test/sun/security/smartcardio/TestConnect.java.i
 data/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c.i
-data/make/jprt.config.i
+data/make/netbeans/jconsole/build.xml.i
 data/src/share/classes/sun/tools/tree/BooleanExpression.java.i
-data/test/java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java.i
+data/test/javax/management/namespace/VirtualPropsTest.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/internal/ReflectionException.java.i
-data/test/java/util/concurrent/Executors/Throws.java.i
-data/src/share/classes/javax/swing/table/TableRowSorter.java.i
+data/test/com/sun/crypto/provider/Cipher/DES/PerformanceTest.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/EncryptedKeyResolver.java.i
+data/test/java/lang/String/IndexOfEmptyInEmpty.java.i
 data/test/java/beans/Introspector/memory/Bean.java.i
 data/src/share/classes/sun/net/httpserver/UndefLengthOutputStream.java.i
+data/src/share/classes/javax/imageio/stream/MemoryCache.java.i
 data/src/share/classes/sun/io/CharToByteMacRoman.java.i
-data/src/share/classes/sun/io/CharToByteCp937.java.i
+data/src/share/classes/javax/management/MBeanConstructorInfo.java.i
 data/test/sun/security/pkcs11/fips/secmod.db.i
 data/src/share/classes/sun/security/krb5/internal/crypto/HmacMd5ArcFourCksumType.java.i
-data/src/share/classes/javax/management/remote/JMXPrincipal.java.i
-data/test/java/rmi/server/useCustomRef/UseCustomRef_Stub.java.i
+data/test/java/lang/StringBuffer/Supplementary.java.i
+data/src/share/classes/com/sun/jndi/ldap/VersionHelper.java.i
+data/test/java/lang/invoke/indify/Indify.java.i
 data/test/java/nio/file/Files/walk_file_tree.sh.i
 data/src/share/classes/javax/management/remote/JMXConnector.java.i
 data/test/java/lang/management/MemoryMXBean/CollectionUsageThreshold.java.i
-data/src/share/classes/sun/io/ByteToCharUTF8.java.i
+data/src/solaris/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java.i
 data/test/java/lang/Float/Extrema.java.i
 data/src/share/classes/sun/security/pkcs11/Config.java.i
-data/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c.i
-data/src/share/classes/sun/nio/cs/ArrayDecoder.java.i
+data/test/demo/jvmti/hprof/HelloWorld.java.i
+data/src/windows/native/sun/windows/stdhdrs.h.i
 data/src/share/native/sun/security/ec/ecl-priv.h.i
-data/test/java/nio/Buffer/SwapMicroBenchmark.java.i
+data/test/java/util/Objects/BasicObjectsTest.java.i
 data/src/solaris/doc/sun/man/man1/ja/tnameserv.1.i
-data/src/share/classes/sun/java2d/cmm/ProfileDeferralMgr.java.i
+data/src/share/native/sun/font/layout/GlyphDefinitionTables.h.i
 data/src/share/classes/com/sun/tools/jdi/SocketAttachingConnector.java.i
 data/src/windows/native/sun/windows/awt.rc.i
-data/src/share/classes/java/nio/Direct-X-Buffer.java.i
-data/src/share/classes/javax/swing/JTextField.java.i
-data/make/com/sun/tracing/Makefile.i
+data/src/share/classes/java/awt/Container.java.i
+data/test/java/nio/file/Files/walkFileTree/WalkWithSecurity.java.i
+data/make/sun/font/t2k/Makefile.i
+data/src/share/classes/sun/util/resources/CurrencyNames_fi_FI.properties.i
+data/src/share/classes/sun/nio/ch/NativeDispatcher.java.i
+data/src/share/classes/javax/swing/JTextField.java.i
+data/src/share/native/sun/java2d/cmm/lcms/cmsmd5.c.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/icons/Inform.gif.i
 data/test/com/sun/nio/sctp/SctpMultiChannel/SocketOptionTests.java.i
 data/src/solaris/classes/sun/awt/X11/XRobotPeer.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/Cons.java.i
-data/src/share/classes/javax/swing/plaf/SplitPaneUI.java.i
+data/src/share/classes/com/sun/tools/example/debug/tty/EventHandler.java.i
 data/test/org/openjdk/jigsaw/cli/keystore.pw.i
-data/test/sun/security/pkcs11/ec/TestECDSA.java.i
+data/src/share/classes/java/security/PermissionCollection.java.i
 data/src/share/classes/java/awt/peer/DesktopPeer.java.i
-data/src/share/native/java/lang/Shutdown.c.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32U8Func.c.i
 data/test/java/net/URLConnection/RequestProperties.java.i
-data/src/share/classes/sun/security/x509/IPAddressName.java.i
-data/src/solaris/demo/jni/Poller/PollingServer.java.i
-data/src/share/classes/java/io/LineNumberInputStream.java.i
+data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScannerMXBean.java.i
+data/test/sun/tools/native2ascii/N2A_4636448.expected.i
+data/test/javax/swing/JInternalFrame/6726866/bug6726866.html.i
 data/test/java/lang/Math/TanTests.java.i
-data/src/share/classes/sun/text/resources/FormatData_en_IE.java.i
+data/src/share/classes/sun/tools/javac/resources/javac.properties.i
 data/src/share/classes/java/lang/AbstractMethodError.java.i
-data/test/java/io/File/FileMethods.java.i
+data/test/java/util/concurrent/CountDownLatch/Basic.java.i
+data/src/share/demo/jvmti/index.html.i
 data/src/share/classes/sun/text/resources/FormatData_it_IT.java.i
 data/test/java/util/ResourceBundle/KeySetMessages_zh_CN.java.i
-data/src/share/classes/sun/awt/datatransfer/DataTransferer.java.i
-data/src/share/classes/sun/java2d/opengl/OGLMaskBlit.java.i
+data/src/share/classes/sun/awt/resources/awt_zh_TW.properties.i
+data/src/share/sample/nio/file/WatchDir.java.i
 data/test/sun/tools/jps/jps-l_2.sh.i
 data/test/javax/print/TestRaceCond.java.i
 data/src/share/classes/java/sql/Struct.java.i
 data/make/tools/commentchecker/Makefile.i
-data/src/share/classes/sun/util/resources/CalendarData_pl.properties.i
-data/src/share/classes/javax/swing/plaf/basic/BasicDesktopPaneUI.java.i
+data/test/java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.java.i
+data/test/java/security/cert/pkix/policyChanges/TestPolicy.java.i
+data/src/share/classes/sun/security/pkcs/PKCS9Attributes.java.i
 data/src/share/classes/sun/awt/DefaultMouseInfoPeer.java.i
 data/src/windows/native/sun/tools/attach/WindowsAttachProvider.c.i
-data/make/tools/CharsetMapping/IBM1141.map.i
-data/test/java/rmi/activation/Activatable/restartService/RestartService_Stub.java.i
+data/src/share/classes/javax/swing/plaf/metal/icons/ocean/paletteClose.gif.i
+data/test/java/util/concurrent/ConcurrentQueues/LoopHelpers.java.i
 data/test/sun/security/ssl/javax/net/ssl/HttpsURLConnection/DelayDefaultContextLoading.java.i
-data/src/share/classes/sun/tools/jconsole/LabeledComponent.java.i
-data/src/share/classes/sun/security/x509/OIDName.java.i
+data/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/test.html.i
+data/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/SetName.java.i
-data/make/modules/tools/Makefile.i
+data/src/share/classes/java/lang/module/ModuleInfoReader.java.i
 data/src/share/classes/sun/security/pkcs/SignerInfo.java.i
 data/test/sun/security/tools/jarsigner/nameclash.sh.i
 data/test/sun/net/www/protocol/http/spnegoLog.properties.i
+data/test/java/io/Serializable/unnamedPackageSwitch/Test.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/AgentServerImpl.java.i
 data/test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/InterprocessMessages.java.i
-data/src/share/native/sun/nio/ch/genSocketOptionRegistry.c.i
+data/test/java/net/Socket/setReuseAddress/Basic.java.i
+data/src/share/classes/sun/management/resources/agent_de.properties.i
+data/test/java/net/Socket/asyncClose/AsyncCloseTest.java.i
 data/test/java/io/Serializable/proxy/Basic.java.i
 data/test/java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.java.i
 data/src/share/classes/sun/nio/ch/AbstractFuture.java.i
 data/src/windows/classes/sun/awt/windows/WTextComponentPeer.java.i
 data/test/javax/management/remote/mandatory/loading/RMIDownloadTest.java.i
 data/src/share/classes/javax/management/relation/RoleList.java.i
-data/src/share/classes/sun/io/ByteToCharUnicodeBig.java.i
-data/src/share/classes/com/sun/jndi/toolkit/dir/AttrFilter.java.i
+data/test/java/security/cert/CertPathValidator/indirectCRL/CircularCRLTwoLevel.java.i
+data/make/sun/font/reorder-sparcv9.i
 data/src/share/classes/sun/net/idn/uidna.spp.i
 data/test/java/beans/Introspector/Test6707234.java.i
 data/make/javax/Makefile.i
 data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain9.txt.i
+data/test/org/openjdk/jigsaw/library.sh.i
 data/src/share/classes/java/io/DataInput.java.i
-data/src/share/classes/sun/security/x509/AuthorityKeyIdentifierExtension.java.i
+data/test/javax/management/modelmbean/LoggingExceptionTest.java.i
 data/src/share/classes/sun/security/util/AuthResources_pt_BR.java.i
 data/src/windows/native/java/io/FileOutputStream_md.c.i
-data/src/share/native/sun/awt/image/jpeg/jdapistd.c.i
-data/test/java/awt/FontClass/FontAccess.java.i
-data/test/com/sun/jdi/SuspendNoFlagTest.sh.i
+data/test/javax/swing/JComponent/6989617/bug6989617.java.i
+data/test/javax/management/remote/mandatory/loading/DeserializeEncodedURLTest.java.i
+data/src/share/classes/sun/net/www/protocol/http/HttpAuthenticator.java.i
+data/src/share/classes/javax/swing/text/html/parser/DocumentParser.java.i
+data/src/share/classes/java/nio/file/SimpleFileVisitor.java.i
 data/test/sun/rmi/runtime/Log/checkLogging/CheckLogStreams.java.i
 data/src/share/classes/sun/text/resources/FormatData_zh_HK.java.i
-data/src/share/transport/shmem/shmemBack.c.i
-data/src/share/classes/com/sun/tools/example/debug/event/JDIAdapter.java.i
+data/make/tools/src/build/tools/javazic/RuleRec.java.i
+data/test/sun/security/pkcs11/ec/pkcs12/sect193r1server-rsa1024ca.p12.i
+data/test/java/rmi/server/RMIClassLoader/getClassLoader/Foo.java.i
 data/src/share/classes/sun/text/resources/CollationData_sq.java.i
-data/src/share/classes/javax/swing/table/TableModel.java.i
+data/src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.5.9.properties.i
 data/test/java/util/Locale/LocaleCategory.sh.i
 data/test/java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java.i
 data/src/share/classes/com/sun/servicetag/BrowserSupport.java.i
 data/make/mksample/webservices/EbayServer/Makefile.i
-data/make/common/Defs-modules.gmk.i
-data/src/share/classes/com/sun/rowset/RowSetResourceBundle_fr.properties.i
+data/src/windows/native/sun/windows/awt_Brush.h.i
+data/test/java/rmi/server/Unreferenced/marshalledObjectGet/MarshalledObjectGet_Stub.java.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl.java.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/EchoImpl.java.i
 data/test/sun/misc/JarIndex/metaInfFilenames/Basic.java.i
-data/make/tools/src/build/tools/jdwpgen/CommentNode.java.i
+data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/README.i
+data/test/javax/swing/SwingUtilities/7088744/bug7088744.java.i
 data/src/share/classes/javax/swing/JProgressBar.java.i
-data/test/sun/security/pkcs11/Signature/TestDSA.java.i
 data/test/java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java.i
 data/src/share/classes/javax/swing/doc-files/JRootPane-2.gif.i
 data/src/share/classes/java/dyn/SpreadGeneric.java.i
 data/test/sun/rmi/log/ReliableLog/SnapshotSize.java.i
 data/src/share/demo/jfc/Metalworks/AquaMetalTheme.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmMemManagerEntryMeta.java.i
-data/src/share/instrument/PathCharsValidator.c.i
+data/src/windows/native/java/net/net_util_md.h.i
 data/src/share/classes/com/sun/servicetag/resources/jdk_header.png.i
 data/test/java/text/Bidi/Bug7002398.java.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpMsg.java.i
+data/src/share/classes/com/sun/servicetag/resources/javase_5_swordfish.properties.i
+data/src/share/classes/com/sun/media/sound/services/javax.sound.sampled.spi.MixerProvider.i
 data/test/javax/management/mxbean/PropertyNamesTest.java.i
-data/src/windows/native/sun/windows/awt_Pen.h.i
-data/test/java/net/URL/Protocol.java.i
+data/src/share/classes/java/nio/file/Paths.java.i
+data/test/java/util/Locale/serialized/java6locale_ROOT.i
 data/src/share/classes/com/sun/tools/jdi/BaseLineInfo.java.i
-data/make/netbeans/common/unix-sources.ent.i
+data/test/java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.java.i
 data/src/share/back/bag.c.i
-data/test/java/beans/XMLEncoder/Test6437265.java.i
+data/test/java/io/Serializable/class/SerialA_3.java.i
 data/src/share/classes/com/sun/tools/hat/Main.java.i
 data/test/java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java.i
-data/src/share/classes/javax/swing/undo/doc-files/UndoManager-4.gif.i
+data/src/windows/native/sun/windows/awt_Brush.cpp.i
 data/test/java/util/ResourceBundle/Control/AbstractRB.java.i
 data/src/share/classes/com/sun/pept/ept/Acceptor.java.i
 data/src/share/demo/jvmti/mtrace/mtrace.h.i
-data/test/java/awt/regtesthelpers/process/ProcessResults.java.i
+data/src/share/native/sun/awt/medialib/awt_ImagingLib.c.i
 data/test/java/security/Policy/Dynamic/TestDynamicPolicy.java.i
 data/src/linux/doc/man/ja/kinit.1.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/ShortArrayCalls.java.i
+data/src/share/classes/sun/nio/cs/ext/MS949.java.i
 data/src/share/classes/java/applet/AppletStub.java.i
-data/test/java/nio/channels/FileChannel/Pwrite.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConvIndex3_8_8nw.c.i
+data/test/sun/security/pkcs11/tls/keymatdata.txt.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/manifest.i
 data/test/java/util/Formatter/BasicChar.java.i
 data/test/sun/tools/native2ascii/A2N_4630463.expected.i
-data/src/share/classes/sun/io/ByteToCharCp875.java.i
+data/src/share/classes/sun/rmi/rmic/Names.java.i
+data/src/share/classes/javax/swing/RowFilter.java.i
 data/src/share/classes/sun/awt/ConstrainableGraphics.java.i
 data/make/tools/swing-beans/beaninfo/images/JTabbedPaneMono32.gif.i
 data/test/sun/net/InetAddress/nameservice/chaining/SimpleNameService.java.i
-data/src/solaris/classes/sun/awt/X11/XChoicePeer.java.i
+data/test/sample/chatserver/ChatTest.java.i
 data/test/java/io/FileOutputStream/OpsAfterClose.java.i
 data/src/share/classes/sun/tools/jps/Jps.java.i
 data/src/share/classes/javax/management/RuntimeErrorException.java.i
+data/test/java/util/ResourceBundle/Bug6299235Test.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageConvEdge.h.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_SSL3_MASTER_KEY_DERIVE_PARAMS.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCryptoBinary.java.i
 data/src/share/demo/nbproject/jfc/Notepad/nbproject/project.xml.i
-data/test/com/sun/jdi/ClassesByName2Test.java.i
+data/src/share/classes/com/sun/jmx/mbeanserver/SecureClassLoaderRepository.java.i
 data/test/com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java.i
-data/src/share/classes/sun/net/ftp/FtpDirEntry.java.i
+data/test/java/nio/file/Path/FileAttributes.java.i
 data/test/sun/security/pkcs11/KeyStore/Basic.sh.i
 data/src/share/sample/scripting/scriptpad/src/resources/scriptpad.js.i
+data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibEntry.java.i
 data/src/share/classes/sun/net/www/MeteredStream.java.i
-data/test/java/beans/XMLEncoder/java_awt_ScrollPane.java.i
+data/test/javax/xml/crypto/dsig/data/signature-external-b64-dsa.xml.i
 data/test/sun/management/jmxremote/bootstrap/management_test03_ko.properties.in.i
-data/src/share/native/java/lang/fdlibm/src/w_atanh.c.i
+data/src/windows/native/sun/windows/ComCtl32Util.cpp.i
 data/test/java/util/EnumSet/InsertWrongType.java.i
-data/make/tools/swing-beans/beaninfo/images/BoxColor32.gif.i
+data/test/java/net/DatagramSocket/BindFailTest.java.i
 data/test/java/rmi/activation/Activatable/restartService/rmid.security.policy.i
-data/test/sun/jvmstat/monitor/MonitoredVm/CR6672135.java.i
-data/make/com/sun/security/auth/Makefile.i
+data/src/share/classes/sun/reflect/SerializationConstructorAccessorImpl.java.i
 data/src/share/classes/sun/misc/Ref.java.i
 data/src/share/native/sun/font/freetypeScaler.c.i
-data/test/java/awt/List/SetBackgroundTest/SetBackgroundTest.java.i
-data/src/share/classes/sun/security/ssl/DHClientKeyExchange.java.i
+data/src/share/classes/sun/management/snmp/jvminstr/JvmThreadInstanceEntryImpl.java.i
+data/test/java/awt/dnd/Button2DragTest/Button2DragTest.java.i
 data/src/share/native/sun/awt/image/cvutils/img_fsgray.h.i
 data/src/share/classes/sun/security/ec/SunECEntries.java.i
-data/src/windows/classes/sun/nio/fs/WindowsSecurity.java.i
+data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipInfo.java.i
 data/src/share/classes/javax/sql/rowset/serial/SerialDatalink.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JJTParserState.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpTableEntryFactory.java.i
-data/src/windows/native/sun/java2d/d3d/D3DContext.h.i
+data/src/share/classes/sun/management/resources/agent_es.properties.i
 data/src/share/classes/sun/security/x509/CertAttrSet.java.i
-data/src/share/classes/sun/tools/jconsole/JConsole.java.i
-data/src/solaris/doc/sun/man/man1/keytool.1.i
-data/src/share/classes/sun/management/resources/agent_de.properties.i
+data/src/windows/native/sun/windows/awt_Frame.cpp.i
+data/src/share/classes/sun/rmi/server/ActivatableServerRef.java.i
 data/src/share/classes/sun/security/util/Resources_zh_TW.java.i
 data/src/share/classes/java/nio/file/ClosedWatchServiceException.java.i
+data/src/share/classes/sun/util/resources/CalendarData_et.properties.i
 data/test/com/sun/jdi/RedefineAnnotation.sh.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/EncryptionConstants.java.i
-data/test/com/sun/crypto/provider/Cipher/DES/PaddingTest.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/UnconnectedSocketWrongExceptions.java.i
-data/src/solaris/classes/sun/awt/X11/XSelection.java.i
+data/test/java/io/Serializable/GetField/Read.java.i
 data/src/share/classes/sun/rmi/transport/StreamRemoteCall.java.i
-data/src/share/native/java/lang/fdlibm/src/w_log10.c.i
+data/src/share/classes/javax/security/auth/callback/NameCallback.java.i
 data/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriterSpi.java.i
+data/make/sun/security/pkcs11/FILES_c.gmk.i
 data/src/share/classes/sun/awt/im/InputMethodManager.java.i
 data/src/share/classes/javax/sound/midi/MidiMessage.java.i
 data/src/share/classes/sun/nio/cs/ext/ISO2022.java.i
 data/test/demo/jvmti/minst/MinstExample.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmMemMgrPoolRelTableMetaImpl.java.i
 data/src/solaris/native/sun/java2d/opengl/GLXSurfaceData.h.i
-data/src/share/sample/vm/clr-jvm/Makefile.i
+data/test/java/util/concurrent/ConcurrentQueues/ConcurrentQueueLoops.java.i
 data/src/share/classes/sun/dyn/InvokeGeneric.java.i
 data/src/share/native/sun/font/layout/SegmentSingleProcessor.h.i
-data/src/share/sample/vm/clr-jvm/invoker.cs.i
-data/src/share/classes/java/awt/datatransfer/UnsupportedFlavorException.java.i
+data/make/tools/reorder/tests/LoadToolkit.java.i
+data/src/share/demo/jfc/Notepad/README.txt.i
+data/src/share/classes/java/awt/dnd/peer/DropTargetPeer.java.i
 data/test/java/util/ResourceBundle/Test4314141A.properties.i
-data/test/tools/pack200/pack200-verifier/src/sun/tools/pack/verify/ClassCompare.java.i
-data/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java.i
+data/src/share/classes/javax/swing/plaf/basic/BasicIconFactory.java.i
 data/src/share/native/sun/java2d/loops/Any4Byte.h.i
-data/test/java/rmi/activation/Activatable/nonExistentActivatable/security.policy.i
+data/src/share/classes/sun/net/www/protocol/ftp/Handler.java.i
 data/test/java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java.i
 data/src/share/classes/sun/tools/javac/ErrorConsumer.java.i
-data/src/share/classes/java/nio/file/DirectoryStream.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14NExclusive.java.i
-data/make/tools/GenerateCharacter/CharacterData02.java.template.i
+data/src/share/classes/javax/accessibility/AccessibleTable.java.i
+data/src/share/classes/java/rmi/UnexpectedException.java.i
+data/src/share/classes/com/sun/imageio/plugins/common/iio-plugin.properties.i
 data/src/share/native/java/util/zip/zlib-1.2.3/deflate.h.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmRuntimeMeta.java.i
+data/src/share/classes/sun/nio/cs/standard-charsets.i
 data/test/java/util/ArrayList/Bug6533203.java.i
 data/test/java/io/Serializable/classDescHooks/ClassDescHooks.java.i
-data/test/sun/security/ssl/etc/unknown_keystore.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/SPKIData.java.i
 data/make/tools/CharsetMapping/IBM870.nr.i
 data/src/share/classes/java/lang/module/ModuleInfo.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthMenuItemLayoutHelper.java.i
+data/test/java/util/concurrent/Executors/Throws.java.i
 data/src/share/native/sun/awt/image/cvutils/img_output16.h.i
 data/src/share/classes/javax/swing/plaf/metal/MetalRadioButtonUI.java.i
+data/test/java/io/Serializable/enum/ignoreSerializationMethods/Test.java.i
 data/make/mkdemo/jvmti/gctest/Makefile.i
 data/src/share/classes/javax/swing/plaf/synth/SynthStyleFactory.java.i
 data/test/javax/management/context/localizable/MBeanDescriptions.properties.i
-data/make/tools/CharsetMapping/IBM1026.c2b.i
-data/test/sun/management/jmxremote/bootstrap/management_test01_ok.properties.in.i
+data/src/share/native/sun/awt/splashscreen/splashscreen_png.c.i
+data/src/share/classes/javax/swing/plaf/multi/doc-files/multi_tsc.html.i
 data/src/share/classes/java/util/EventObject.java.i
 data/src/share/classes/sun/nio/cs/ext/DoubleByte.java.i
 data/src/windows/classes/sun/awt/windows/awtLocalization_it.properties.i
 data/make/java/security/Makefile.i
 data/src/share/classes/sun/io/ByteToCharCp869.java.i
 data/test/java/net/URL/OpenConnection.java.i
-data/src/share/classes/com/sun/nio/sctp/SctpServerChannel.java.i
+data/src/share/demo/jvmti/hprof/hprof_string.c.i
 data/test/com/sun/tools/attach/AgentSetup.sh.i
 data/src/share/native/sun/security/ec/logtab.h.i
+data/src/share/classes/com/sun/rowset/providers/RIXMLProvider.java.i
 data/test/sun/nio/cs/OLD/IBM950_OLD.java.d
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NonAutoClose.java.i
-data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanManagerTest.java.i
-data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScanner.java.i
+data/src/solaris/classes/sun/nio/fs/SolarisNativeDispatcher.java.i
+data/src/share/sample/vm/jvm-clr/Makefile.i
 data/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeDirContext.java.i
-data/test/java/net/URLClassLoader/closetest/CloseTest.java.i
-data/src/windows/classes/sun/awt/windows/WEmbeddedFramePeer.java.i
+data/src/share/classes/javax/swing/plaf/metal/MetalFontDesktopProperty.java.i
+data/test/javax/management/remote/mandatory/subjectDelegation/policy23.i
+data/test/sun/nio/cs/OLD/IBM950_OLD.java.i
 data/src/solaris/native/sun/awt/awt_TextArea.c.i
-data/make/tools/CharsetMapping/dbcs.i
-data/test/javax/management/remote/mandatory/loading/MethodResultTest.java.i
+data/src/share/classes/java/net/CookieHandler.java.i
+data/src/share/classes/com/sun/tools/example/debug/tty/EventNotifier.java.i
 data/test/java/nio/charset/Charset/CharsetContainmentTest.java.i
 data/test/java/net/PortUnreachableException/Test.java.i
 data/test/org/openjdk/jigsaw/eg/com/foo/bar/module-info.java.i
+data/src/solaris/native/sun/java2d/loops/vis_IntArgbPre.c.i
 data/make/tools/src/build/tools/spp/Spp.java.i
 data/src/share/classes/java/util/logging/SocketHandler.java.i
-data/test/sun/net/idn/nfsmxp.spp.i
+data/src/share/demo/jvmti/hprof/hprof_stack.h.i
 data/test/sun/management/jmxremote/LocalRMIServerSocketFactoryTest.java.i
-data/src/share/classes/sun/misc/Timer.java.i
+data/test/com/sun/jdi/CompatibleConnectors.java.i
 data/src/share/classes/com/sun/jndi/ldap/EventQueue.java.i
 data/src/share/classes/sun/security/krb5/KrbPriv.java.i
 data/test/java/lang/management/RuntimeMXBean/InputArgument.java.i
@@ -16006,595 +15813,621 @@ data/src/share/demo/jvmti/agent_util/agent_util.c.i
 data/test/sun/java2d/cmm/ColorConvertOp/LRGB.png.i
 data/test/java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.java.i
 data/src/share/classes/java/beans/beancontext/BeanContextEvent.java.i
-data/src/share/classes/sun/security/krb5/KdcComm.java.i
-data/src/share/classes/sun/tools/jar/resources/jar_pt_BR.properties.i
-data/test/java/lang/instrument/ExampleRedefine.java.i
-data/src/share/classes/sun/tools/jconsole/resources/mbean.gif.i
+data/src/share/classes/sun/launcher/resources/launcher_fr.properties.i
+data/test/sun/misc/JarIndex/metaInfFilenames/jarB/META-INF/JAVA2.DS.i
+data/src/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java.i
+data/test/com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java.i
 data/src/share/classes/sun/awt/FontConfiguration.java.i
-data/test/sun/security/krb5/auto/basic.sh.i
+data/test/sun/security/pkcs11/fips/TrustManagerTest.java.i
 data/src/share/classes/javax/crypto/SecretKey.java.i
 data/test/java/util/Arrays/Big.java.i
 data/test/javax/xml/crypto/dsig/SecurityManager/XMLDSigWithSecMgr.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_el_GR.properties.i
+data/test/java/math/BigInteger/ModPow.java.i
 data/src/share/classes/com/sun/jmx/namespace/serial/RewritingProcessor.java.i
-data/src/windows/native/sun/java2d/d3d/D3DShaderGen.c.i
-data/test/java/lang/management/ManagementFactory/ProxyExceptions.java.i
+data/test/sun/security/ssl/javax/net/ssl/NewAPIs/CheckMyTrustedKeystore.java.i
+data/test/javax/naming/InitialContext/EnvClone.java.i
 data/test/sun/nio/cs/OLD/MS936_OLD.java.i
 data/test/com/sun/crypto/provider/Cipher/UTIL/TestUtil.java.i
-data/test/java/beans/PropertyEditor/TestEnumSubclass.java.i
+data/src/share/back/debugLoop.h.i
 data/src/share/classes/java/beans/VetoableChangeListenerProxy.java.i
-data/src/share/classes/java/net/SocketImplFactory.java.i
+data/src/share/classes/com/sun/media/sound/services/linux-i586/javax.sound.sampled.spi.MixerProvider.i
 data/src/share/classes/sun/security/krb5/internal/ETypeInfo2.java.i
-data/src/share/classes/sun/reflect/UnsafeQualifiedIntegerFieldAccessorImpl.java.i
+data/test/tools/pack200/pack200-verifier/src/sun/tools/pack/verify/Main.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCanonicalXMLC14N11Method.java.i
-data/test/sun/security/pkcs11/nss/lib/linux-amd64/libsoftokn3.so.d
-data/test/java/io/Serializable/unshared/Read.java.i
-data/src/share/classes/java/lang/IndexOutOfBoundsException.java.i
+data/make/mkdemo/applets/WireFrame/Makefile.i
+data/test/sun/net/www/ftptest/FtpFileSystemHandler.java.i
+data/src/share/classes/sun/net/ftp/FtpProtocolException.java.i
 data/src/share/native/sun/awt/splashscreen/splashscreen_gfx_impl.h.i
-data/src/windows/npt/npt_md.h.i
+data/test/sun/security/pkcs11/KeyStore/ClientAuthData/key3.db.i
 data/src/share/classes/sun/awt/geom/AreaOp.java.i
-data/test/javax/swing/JPopupMenu/6987844/bug6987844.java.i
 data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiUtils.h.i
 data/test/java/rmi/reliability/benchmark/bench/serial/ObjArrays.java.i
 data/test/java/util/ResourceBundle/ResourceBundleTest.java.i
-data/make/sun/awt/mapfile-mawt-vers.i
+data/test/java/lang/instrument/NativeMethodPrefixAgent.java.i
+data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ja.properties.i
 data/test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/HelloImpl.java.i
 data/src/share/classes/sun/awt/resources/awt_fr.properties.i
-data/src/share/classes/com/sun/imageio/spi/RAFImageOutputStreamSpi.java.i
-data/test/javax/management/remote/mandatory/passwordAuthenticator/jmxremote.login.i
-data/test/java/beans/XMLEncoder/java_awt_BasicStroke.java.i
+data/test/javax/xml/crypto/dsig/data/signature.xml.i
+data/test/sun/tools/jstatd/usage.out.i
+data/src/share/classes/javax/security/auth/kerberos/KerberosPrincipal.java.i
 data/test/sun/net/InetAddress/nameservice/chaining/META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor.i
-data/src/windows/native/java/net/DualStackPlainSocketImpl.c.i
+data/test/java/nio/channels/FileChannel/ReadFull.java.i
 data/src/share/lib/images/cursors/motif_LinkDrop32x32.gif.i
-data/src/share/classes/com/sun/tools/jdi/CharValueImpl.java.i
+data/src/share/classes/sun/nio/cs/ISO_8859_4.java.i
 data/src/share/classes/com/sun/beans/finder/PersistenceDelegateFinder.java.i
 data/test/sun/security/pkcs11/tls/prfdata.txt.i
-data/make/tools/swing-beans/beaninfo/images/JMenuColor16.gif.i
-data/src/share/classes/java/util/concurrent/ThreadFactory.java.i
+data/test/java/lang/ThreadLocal/Basic.java.i
+data/src/share/classes/javax/print/attribute/TextSyntax.java.i
 data/src/share/classes/java/util/jar/JarEntry.java.i
-data/src/windows/classes/sun/awt/windows/WGlobalCursorManager.java.i
+data/test/sun/management/jmxremote/bootstrap/jmxremote_test02_ok.access.in.i
 data/make/tools/GenerateCharacter/CharacterDataPrivateUse.java.template.i
-data/test/java/security/Security/signedfirst/StaticSignedProvFirst.java.i
-data/test/java/util/PluggableLocale/ProviderTest.java.i
 data/test/java/net/Socket/SocketImplTest.java.i
-data/src/share/classes/sun/print/PrintJobAttributeException.java.i
+data/src/windows/classes/sun/java2d/windows/GDIWindowSurfaceData.java.i
 data/src/share/classes/sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl.java.i
-data/test/javax/swing/JLayer/6824395/bug6824395.java.i
+data/test/java/util/ResourceBundle/Control/BadStaticInitRB.java.i
 data/src/share/classes/java/security/UnrecoverableEntryException.java.i
 data/test/java/rmi/reliability/juicer/OrangeImpl.java.i
-data/src/share/classes/org/openjdk/internal/joptsimple/OptionException.java.i
+data/test/java/io/Serializable/6966692/Victim.java.i
+data/src/share/classes/sun/tools/jstat/Identifier.java.i
 data/test/java/io/Serializable/enum/array/Test.java.i
-data/src/share/classes/sun/nio/cs/ext/ISO2022_CN.java.i
+data/src/share/classes/sun/tools/tree/BinaryAssignExpression.java.i
 data/test/java/net/DatagramPacket/Constructor.java.i
 data/src/share/classes/sun/reflect/annotation/AnnotationTypeMismatchExceptionProxy.java.i
 data/src/windows/native/sun/java2d/d3d/D3DResourceManager.cpp.i
-data/src/share/classes/javax/swing/SwingUtilities.java.i
-data/src/share/classes/java/security/Principal.java.i
+data/test/com/sun/jdi/Redefine-g.sh.i
+data/test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java.i
 data/src/share/classes/sun/reflect/generics/repository/ConstructorRepository.java.i
 data/test/java/lang/StrictMath/Log10Tests.java.i
-data/test/java/nio/file/Files/MaxDepth.java.i
-data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames.properties.i
+data/make/mkdemo/jvmti/waiters/Makefile.i
+data/src/share/classes/com/sun/tools/example/debug/tty/AmbiguousMethodException.java.i
+data/test/javax/print/StreamPrintingOrientation.java.i
+data/make/mkdemo/applets/TicTacToe/Makefile.i
 data/test/java/net/Socket/OldSocketImpl.java.i
-data/src/share/classes/javax/crypto/NullCipher.java.i
+data/test/java/net/DatagramSocketImpl/CheckDiscard.java.i
 data/src/share/classes/sun/java2d/pipe/LCDTextRenderer.java.i
 data/test/java/security/cert/CertPathBuilder/targetConstraints/sun.cer.i
-data/src/share/classes/sun/util/resources/CurrencyNames_pt_PT.properties.i
+data/test/java/util/zip/TestEmptyZip.java.i
 data/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup_Stub.java.i
+data/src/windows/classes/sun/nio/fs/WindowsFileAttributeViews.java.i
 data/src/share/classes/sun/dyn/util/ValueConversions.java.i
+data/src/share/classes/sun/io/CharToByteUnicode.java.i
 data/test/java/beans/XMLEncoder/6380849/BeanPersistenceDelegate.java.i
-data/test/javax/sound/midi/Gervill/ModelStandardTransform/TransformSwitch.java.i
-data/src/share/classes/java/text/spi/NumberFormatProvider.java.i
+data/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java.i
+data/test/javax/swing/JColorChooser/Test4193384.java.i
 data/test/sun/management/HotspotClassLoadingMBean/GetUnloadedClassSize.java.i
-data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetChannels.java.i
-data/test/sun/nio/cs/EUCJPUnderflowDecodeTest.java.i
 data/src/share/native/sun/font/layout/SingleTableProcessor.h.i
 data/src/share/classes/java/lang/annotation/Annotation.java.i
 data/test/java/net/URLConnection/GetResponseCode.java.i
 data/test/java/nio/channels/Channels/Basic.java.i
 data/test/com/sun/jdi/GenericsTest.java.i
 data/src/share/classes/sun/tools/tree/BitAndExpression.java.i
-data/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java.i
+data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CookieHandlerTest.java.i
 data/test/java/net/URL/GetDefaultPort.java.i
-data/test/java/lang/Throwable/SuppressedExceptions.java.i
 data/src/share/classes/com/sun/beans/decoder/DoubleElementHandler.java.i
-data/src/share/native/sun/java2d/loops/Index8Gray.c.i
+data/test/java/io/InputStream/Skip.java.i
 data/src/share/classes/java/awt/FlowLayout.java.i
 data/test/javax/script/StringWriterPrintTest.java.i
+data/src/share/classes/java/awt/geom/Dimension2D.java.i
 data/src/windows/classes/sun/awt/windows/WObjectPeer.java.i
+data/make/javax/crypto/policy/unlimited/default_US_export.policy.i
 data/src/share/classes/sun/awt/RepaintArea.java.i
+data/src/share/classes/sun/security/ssl/CipherSuite.java.i
 data/test/sun/security/pkcs11/KeyStore/BasicData/pk3.cert.i
-data/make/javax/crypto/policy/limited/LIMITED.i
+data/src/share/classes/sun/text/resources/FormatData_es_PR.java.i
 data/src/share/classes/com/sun/nio/sctp/SctpChannel.java.i
 data/make/tools/swing-beans/beaninfo/images/JSliderColor32.gif.i
-data/src/share/classes/sun/rmi/log/LogOutputStream.java.i
-data/src/share/classes/com/sun/jdi/connect/LaunchingConnector.java.i
+data/test/com/sun/crypto/provider/Cipher/DES/PaddingTest.java.i
+data/src/share/classes/com/sun/tools/hat/internal/server/FinalizerObjectsQuery.java.i
+data/make/tools/classanalyzer/src/com/sun/classanalyzer/ConstantPoolParser.java.i
 data/src/share/classes/javax/sound/sampled/AudioSystem.java.i
-data/src/share/native/java/util/zip/zlib-1.1.3/README.i
-data/src/share/classes/javax/swing/plaf/basic/CenterLayout.java.i
-data/src/share/classes/javax/naming/RefAddr.java.i
-data/src/share/native/sun/security/ec/mpi.h.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_PBE_PARAMS.java.i
-data/src/share/native/sun/font/layout/DeviceTables.h.i
+data/test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java.i
+data/test/javax/crypto/SecretKeyFactory/FailOverTest.java.i
+data/src/share/classes/java/sql/Wrapper.java.i
+data/test/sun/security/pkcs11/KeyStore/BasicData/pk1.cert.i
+data/test/javax/crypto/Mac/TestGetInstance.java.i
 data/src/solaris/classes/sun/awt/X11/security-icon-yellow32.png.i
-data/src/share/classes/java/net/MulticastSocket.java.i
-data/src/share/classes/java/io/ObjectStreamConstants.java.i
+data/test/javax/swing/JFileChooser/6484091/bug6484091.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_en_SG.properties.i
 data/test/com/sun/jdi/JdbLockTest.sh.i
+data/src/share/classes/sun/util/resources/CalendarData_en.properties.i
 data/src/share/classes/sun/io/ByteToCharCp037.java.i
 data/test/sun/nio/cs/TestX11JIS0201.java.i
-data/test/java/net/CookieHandler/B6791927.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/CipherData.java.i
 data/make/java/java_crw_demo/mapfile-vers.i
-data/src/share/classes/sun/security/provider/certpath/Vertex.java.i
-data/make/tools/CharsetMapping/IBM1141.c2b.i
-data/test/java/io/Serializable/PutField/Write.java.i
+data/src/share/classes/com/sun/script/util/ScriptEngineFactoryBase.java.i
+data/src/share/classes/javax/print/attribute/HashPrintJobAttributeSet.java.i
+data/src/share/classes/java/beans/beancontext/BeanContextServiceAvailableEvent.java.i
+data/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMSecurityDefs.java.i
 data/src/share/modules/jdk.base/module-info.java.i
+data/make/sun/jawt/Depend.mak.i
 data/src/share/classes/sun/tools/tree/TryStatement.java.i
 data/src/share/classes/java/awt/peer/MenuComponentPeer.java.i
-data/test/sun/security/tools/keytool/readjar.sh.i
+data/test/java/beans/PropertyEditor/TestEnumSubclass.java.i
 data/src/share/classes/sun/io/CharToByteCp942C.java.i
-data/test/java/io/Serializable/primitiveClasses/PrimitiveClasses.java.i
-data/src/share/classes/sun/io/CharToByteCp970.java.i
+data/src/share/native/sun/font/fontscalerdefs.h.i
+data/src/share/demo/jvmti/agent_util/agent_util.h.i
 data/src/share/classes/sun/reflect/UnsafeStaticByteFieldAccessorImpl.java.i
-data/test/java/net/InetAddress/CheckJNI.java.i
+data/test/sun/util/resources/Calendar/Bug4527203.java.i
 data/test/java/rmi/activation/ActivationSystem/modifyDescriptor/ActivateMe.java.i
 data/src/share/classes/sun/nio/ch/Net.java.i
 data/test/java/io/Serializable/classDescHooks/Loopback.java.i
 data/test/java/beans/PropertyEditor/TestFloatTypeNull.java.i
-data/src/share/classes/sun/text/resources/FormatData_th_TH.java.i
-data/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c.i
+data/test/tools/pack200/MemoryAllocatorTest.java.i
+data/test/com/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider.i
 data/src/share/sample/jmx/jmx-scandir/logging.properties.i
-data/test/sun/security/krb5/auto/META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor.i
 data/src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java.i
 data/make/tools/CharsetMapping/ISO_8859_8.map.i
-data/src/share/classes/javax/swing/plaf/nimbus/DerivedColor.java.i
+data/src/share/classes/sun/misc/resources/Messages.java.i
 data/test/java/lang/ClassLoader/UninitializedParent.java.i
 data/test/sun/security/tools/policytool/OpenPolicy.sh.i
-data/src/share/classes/java/lang/ClassCastException.java.i
-data/src/share/classes/sun/java2d/SunCompositeContext.java.i
-data/test/tools/pack200/Pack200Props.java.i
+data/src/share/classes/sun/rmi/rmic/RMIConstants.java.i
+data/src/solaris/classes/sun/nio/ch/EPollPort.java.i
+data/test/java/util/ResourceBundle/Bug6355009.java.i
+data/test/java/beans/XMLEncoder/java_util_Collections_EmptyList.java.i
 data/src/share/classes/javax/print/attribute/UnmodifiableSetException.java.i
 data/test/java/util/concurrent/FutureTask/Throw.java.i
 data/test/java/awt/event/MouseEvent/CTORRestrictions/CTORRestrictions.java.i
 data/src/share/classes/sun/io/Converters.java.i
-data/test/java/net/URLEncoder/URLEncodeDecode.java.i
+data/test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.java.i
 data/test/java/awt/dnd/ImageDecoratedDnD/ImageGenerator.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NewSocketMethods.java.i
 data/test/sun/nio/cs/SurrogateTestHKSCS.java.i
 data/test/demo/zipfs/Basic.java.i
 data/src/share/classes/sun/java2d/NullSurfaceData.java.i
+data/src/share/classes/javax/swing/event/SwingPropertyChangeSupport.java.i
 data/test/java/text/Format/DateFormat/Bug6609750.java.i
-data/test/sun/security/util/DerValue/DerValueEqualsHashCode.java.i
 data/test/javax/management/Introspector/SetWrongTypeAttributeTest.java.i
 data/src/share/classes/sun/io/CharToByteMacCroatian.java.i
 data/test/java/beans/PropertyEditor/TestShortClass.java.i
 data/src/solaris/classes/sun/awt/motif/MMenuBarPeer.java.i
 data/src/share/classes/sun/security/x509/CertificateVersion.java.i
-data/src/share/lib/images/cursors/win32_LinkNoDrop32x32.gif.i
-data/make/tools/CharsetMapping/ISO_8859_6.map.i
-data/src/share/classes/com/sun/media/sound/StandardMidiFileReader.java.i
-data/src/share/classes/com/sun/jmx/mbeanserver/NotificationMBeanSupport.java.i
+data/test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/ShutdownImpl_Stub.java.i
+data/src/share/classes/javax/swing/text/rtf/RTFReader.java.i
+data/test/java/rmi/activation/Activatable/checkActivateRef/ActivateMe.java.i
+data/test/javax/swing/JColorChooser/Test4380468.html.i
 data/src/share/classes/java/nio/file/attribute/UserDefinedFileAttributeView.java.i
 data/src/share/back/ArrayTypeImpl.c.i
 data/src/share/native/com/sun/media/sound/MidiInDevice.c.i
 data/src/solaris/classes/sun/awt/X11/XWindow.java.i
 data/src/share/classes/java/awt/MediaTracker.java.i
 data/src/share/classes/sun/rmi/transport/proxy/HttpAwareServerSocket.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/CipherData.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/FloatCalls.java.i
-data/src/share/classes/sun/tools/tree/ConstantExpression.java.i
-data/src/share/native/sun/awt/image/cvutils/img_ordclruns.h.i
+data/test/java/lang/Float/BitwiseConversion.java.i
+data/test/java/rmi/transport/handshakeFailure/HandshakeFailure.java.i
+data/test/sun/security/provider/PolicyFile/nullDomain.java.i
 data/src/share/classes/sun/security/pkcs11/Secmod.java.i
-data/make/tools/fontchecker/Makefile.i
+data/test/javax/management/remote/mandatory/URLTest.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/JavaxKeyManagerFactoryImpl.java.i
 data/test/java/lang/management/MemoryMXBean/LowMemoryTest2.java.i
-data/src/share/classes/com/sun/imageio/stream/StreamFinalizer.java.i
+data/src/solaris/doc/sun/man/man1/idlj.1.i
 data/src/share/classes/sun/reflect/LangReflectAccess.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/CachedXPathFuncHereAPI.java.i
 data/test/java/security/BasicPermission/SerialVersion.1.4.i
-data/src/windows/native/sun/windows/awt_Window.cpp.i
-data/test/javax/management/remote/mandatory/subjectDelegation/policy14.i
+data/src/share/classes/java/awt/dnd/DragSourceDropEvent.java.i
+data/make/tools/CharsetMapping/IBM1141.map.i
 data/src/share/classes/sun/net/httpserver/FixedLengthOutputStream.java.i
-data/src/share/native/sun/java2d/opengl/OGLVertexCache.h.i
-data/src/share/classes/javax/sound/sampled/Port.java.i
+data/src/solaris/native/java/lang/locale_str.h.i
+data/test/java/io/Serializable/enum/constantSubclasses/Write.java.i
+data/src/share/classes/sun/net/httpserver/DefaultHttpServerProvider.java.i
+data/src/share/classes/sun/applet/AppletIOException.java.i
 data/src/share/classes/javax/naming/directory/DirContext.java.i
 data/src/share/classes/javax/management/remote/JMXConnectionNotification.java.i
 data/src/share/classes/sun/misc/InvalidJarIndexException.java.i
-data/src/solaris/doc/sun/man/man1/jsadebugd.1.i
-data/src/share/classes/com/sun/tools/jdi/BooleanTypeImpl.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/ClientServer.java.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_X9_42_DH1_DERIVE_PARAMS.java.i
 data/src/share/classes/sun/util/resources/CalendarData_el_CY.properties.i
 data/test/java/math/BigDecimal/StringConstructor.java.i
 data/src/share/classes/java/lang/invoke/BoundMethodHandle.java.i
 data/make/sun/javazic/tzdata/etcetera.i
-data/src/share/classes/sun/net/TransferProtocolClient.java.i
+data/src/share/classes/java/util/prefs/NodeChangeListener.java.i
 data/test/java/nio/file/WatchService/SensitivityModifier.java.i
 data/make/sun/javazic/Makefile.i
-data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ExtendedKeySocket.java.i
+data/src/share/classes/javax/swing/plaf/LabelUI.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIPaint.java.i
-data/src/share/classes/sun/tools/jconsole/resources/masthead-left.png.i
-data/src/share/classes/javax/management/openmbean/CompositeDataView.java.i
-data/test/java/net/InetAddress/WhiteSpaceHostTest.java.i
-data/test/java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html.i
-data/src/share/classes/java/security/interfaces/DSAKey.java.i
+data/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c.i
+data/test/java/util/EnumMap/EnumMapBash.java.i
+data/test/java/nio/channels/Selector/SelectNowWhenEmpty.java.i
+data/src/share/classes/java/awt/print/PrinterException.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/X509SKIResolver.java.i
 data/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java.i
-data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/CompressInputStream.java.i
-data/src/share/classes/java/security/AlgorithmConstraints.java.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver.java.i
+data/src/share/classes/sun/security/ssl/Krb5Proxy.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/CipherSuiteOrder.java.i
 data/test/javax/sound/midi/Gervill/SoftChannel/Mono.java.i
-data/src/share/classes/javax/net/ssl/CertPathTrustManagerParameters.java.i
+data/src/share/native/sun/awt/image/cvutils/img_output8.h.i
 data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/RenderTests.java.i
-data/test/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java.i
-data/src/share/classes/com/sun/media/sound/ModelStandardTransform.java.i
+data/src/share/classes/com/sun/tools/jdi/CommandSender.java.i
+data/test/java/net/URI/RelativeEncoding.java.i
 data/test/java/beans/PropertyEditor/TestShortTypeJava.java.i
-data/test/java/io/PipedReader/Ready.java.i
+data/src/share/classes/com/sun/tools/jdi/LocationImpl.java.i
 data/test/java/security/cert/pkix/policyChanges/anchor.cer.i
 data/src/share/classes/sun/net/httpserver/HttpServerImpl.java.i
 data/test/java/awt/font/Rotate/TestTransform.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIDimension.java.i
-data/src/share/classes/java/net/Socket.java.i
-data/src/share/classes/sun/rmi/server/resources/rmid.properties.i
+data/src/share/classes/sun/nio/cs/ext/IBM942.java.i
+data/src/share/classes/com/sun/media/sound/AudioSynthesizer.java.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_DATE.java.i
 data/src/share/classes/com/sun/tracing/Provider.java.i
 data/test/java/beans/PropertyEditor/TestShortClassJava.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_pt_BR.properties.i
 data/test/java/beans/XMLEncoder/Test4968523.java.i
 data/src/share/classes/javax/swing/text/html/FormView.java.i
-data/src/share/classes/sun/jvmstat/monitor/remote/package.html.i
-data/src/share/classes/sun/tools/jconsole/OverviewPanel.java.i
+data/test/java/rmi/activation/Activatable/notSerializable/NotSerializable.java.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/PixelTests.java.i
 data/src/share/classes/java/awt/doc-files/List-1.gif.i
 data/src/share/classes/com/sun/security/cert/internal/x509/X509V1CertImpl.java.i
 data/test/sun/security/smartcardio/README.txt.i
 data/test/java/util/zip/InterruptibleZip.java.i
+data/src/share/classes/java/security/cert/Extension.java.i
+data/test/java/beans/VetoableChangeSupport/TestEquals.java.i
 data/test/java/util/LinkedList/AddAll.java.i
 data/src/share/demo/management/MemoryMonitor/MemoryMonitor.java.i
-data/src/share/classes/sun/rmi/registry/resources/rmiregistry.properties.i
-data/test/java/util/Vector/IllegalConstructorArgs.java.i
+data/src/windows/javavm/export/jni_md.h.i
+data/test/javax/sound/midi/Gervill/AudioFloatInputStream/Reset.java.i
 data/src/windows/native/sun/windows/awt_TextComponent.h.i
-data/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java.i
-data/make/common/Mapfile-vers.gmk.i
-data/test/sun/security/tools/keytool/newhelp.sh.i
+data/src/share/classes/sun/audio/AudioData.java.i
+data/src/share/classes/sun/misc/SharedSecrets.java.i
+data/src/share/back/debugLoop.c.i
 data/src/share/classes/javax/management/MBeanRegistrationException.java.i
 data/make/tools/CharsetMapping/IBM1383.c2b.i
-data/make/mkdemo/applets/MoleculeViewer/Makefile.i
-data/src/solaris/native/sun/awt/awt_LoadLibrary.c.i
+data/test/java/io/RandomAccessFile/Close.java.i
+data/test/java/io/Serializable/sanityCheck/SanityCheck.java.i
 data/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java.i
-data/src/share/classes/javax/xml/crypto/dsig/spec/XSLTTransformParameterSpec.java.i
+data/src/share/classes/org/openjdk/jigsaw/ClassInfo.java.i
+data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java.i
 data/src/share/classes/sun/text/resources/FormatData_ar_SD.java.i
 data/test/javax/swing/text/CSSBorder/6796710/bug6796710.java.i
 data/src/share/classes/sun/security/x509/ExtendedKeyUsageExtension.java.i
-data/test/javax/management/namespace/RemoveNotificationListenerTest.java.i
+data/test/javax/sound/midi/Gervill/SimpleSoundbank/SetVendor.java.i
 data/test/java/security/ProtectionDomain/NullPerms.java.i
-data/src/share/classes/javax/swing/plaf/metal/icons/ocean/newFolder.gif.i
-data/make/tools/swing-beans/beaninfo/images/JEditorPaneColor16.gif.i
-data/src/share/classes/java/net/PasswordAuthentication.java.i
-data/test/java/lang/invoke/indify/Indify.java.i
+data/src/share/classes/java/security/DomainCombiner.java.i
+data/test/java/io/Serializable/concurrentClassDescLookup/ConcurrentClassDescLookup.java.i
+data/test/javax/swing/border/Test6625450.java.i
+data/test/javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java.i
 data/src/share/classes/javax/imageio/spi/ImageReaderWriterSpi.java.i
-data/src/share/native/sun/reflect/NativeAccessors.c.i
+data/src/share/classes/sun/nio/cs/ext/JIS_X_0208_MS5022X_Encoder.java.i
 data/test/java/math/BigDecimal/ToPlainStringTests.java.i
 data/test/java/net/URLConnection/SetIfModifiedSince.java.i
-data/src/share/classes/sun/instrument/TransformerManager.java.i
+data/src/share/classes/sun/awt/geom/Order1.java.i
+data/src/share/classes/sun/tools/java/BinaryExceptionHandler.java.i
 data/src/solaris/native/sun/awt/awt_motif12.c.i
 data/src/share/sample/jmx/jmx-scandir/keystore.i
 data/test/javax/script/PluggableContextTest.java.i
-data/src/share/classes/com/sun/imageio/plugins/png/PNGMetadataFormat.java.i
-data/src/share/classes/javax/swing/border/CompoundBorder.java.i
-data/test/sun/security/pkcs11/Cipher/TestRSACipher.java.i
+data/make/tools/swing-beans/beaninfo/images/JEditorPaneColor32.gif.i
+data/src/share/classes/javax/imageio/spi/ImageReaderSpi.java.i
+data/test/java/security/cert/PolicyNode/GetPolicyQualifiers.java.i
 data/test/javax/swing/JSlider/6524424/bug6524424.java.i
 data/src/share/classes/sun/io/ByteToCharMS932DB.java.i
 data/test/javax/swing/JEditorPane/bug4714674.java.i
 data/src/share/classes/java/awt/event/InputMethodListener.java.i
 data/src/share/classes/java/lang/invoke/WrongMethodTypeException.java.i
-data/test/java/nio/channels/SocketChannel/Bind.java.i
-data/make/tools/CharsetMapping/IBM284.map.i
-data/test/java/beans/PropertyEditor/TestByteTypeJava.java.i
+data/test/javax/management/remote/mandatory/notif/NotificationSenderMBean.java.i
+data/src/share/native/sun/awt/image/jpeg/jversion.h.i
 data/test/sun/net/InetAddress/nameservice/simple/SimpleNameService.java.i
-data/src/share/classes/sun/java2d/pipe/SolidTextRenderer.java.i
-data/make/tools/swing-beans/beaninfo/images/JRadioButtonMono16.gif.i
-data/src/share/native/java/lang/fdlibm/src/k_cos.c.i
+data/src/share/classes/sun/management/MemoryUsageCompositeData.java.i
+data/test/java/util/PluggableLocale/ClasspathTest.sh.i
+data/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BL.c.i
 data/test/sun/net/www/EmbeddedEquals.java.i
-data/src/share/classes/javax/smartcardio/CardChannel.java.i
+data/src/share/classes/com/sun/jmx/snmp/tasks/ThreadService.java.i
 data/test/javax/management/remote/mandatory/version/policy.i
-data/src/share/classes/com/sun/jdi/request/InvalidRequestStateException.java.i
-data/src/share/classes/sun/text/resources/CollationData_hr.java.i
-data/src/share/classes/com/sun/media/sound/SoftMixingMixer.java.i
-data/src/share/classes/sun/tools/jconsole/inspector/XMBeanInfo.java.i
-data/test/javax/management/modelmbean/SimpleModelMBean/policy.i
+data/src/share/classes/javax/swing/text/TextLayoutStrategy.java.i
+data/src/solaris/native/sun/nio/ch/SocketChannelImpl.c.i
+data/test/java/lang/StrictMath/HypotTests.java.i
+data/test/java/nio/channels/etc/NetworkChannelTests.java.i
 data/src/share/classes/javax/swing/event/TableColumnModelListener.java.i
-data/src/share/demo/jfc/TableExample/TableExample.java.i
+data/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/Echo.java.i
 data/test/javax/security/auth/SubjectDomainCombiner/Optimize.java.i
-data/src/share/classes/sun/tools/jconsole/Version-template.java.i
+data/src/share/classes/javax/swing/plaf/synth/SynthStyle.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageCopy.c.i
-data/src/share/native/java/lang/fdlibm/src/e_hypot.c.i
+data/test/com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java.i
 data/src/share/native/sun/font/layout/LigatureSubstSubtables.h.i
 data/test/java/util/PluggableLocale/LocaleNameProviderTest.sh.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolverException.java.i
+data/test/sun/security/provider/PolicyFile/CombinedPerms.java.i
 data/src/linux/doc/man/ja/orbd.1.i
-data/src/share/classes/sun/nio/ch/Interruptible.java.i
-data/src/share/classes/javax/print/attribute/standard/NumberOfDocuments.java.i
-data/src/share/classes/com/sun/jmx/remote/internal/ProxyRef.java.i
+data/src/share/classes/sun/nio/ch/ThreadPool.java.i
+data/test/tools/launcher/DefaultLocaleTest.sh.i
+data/src/share/native/java/lang/fdlibm/src/s_expm1.c.i
 data/src/share/classes/javax/management/QueryNotificationFilter.java.i
-data/src/share/bin/java.h.i
-data/src/share/classes/javax/management/MBeanPermission.java.i
-data/test/java/nio/channels/FileChannel/TransferToChannel.java.i
+data/test/javax/print/applet/applet4/Applet4.java.i
+data/test/sun/security/ssl/templates/SSLEngineTemplate.java.i
+data/test/java/nio/channels/Selector/CheckLocking.java.i
 data/src/share/classes/javax/swing/plaf/TabbedPaneUI.java.i
 data/src/share/classes/com/sun/media/sound/ModelWavetable.java.i
 data/test/java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java.i
+data/test/java/text/Format/DateFormat/WeekDateTest.java.i
 data/test/java/awt/List/ActionAfterRemove/ActionAfterRemove.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/XMLX509DataContent.java.i
-data/src/share/test/pack200/pack.conf.i
+data/src/windows/native/sun/jkernel/kernel_ko.rc.i
+data/src/solaris/classes/java/lang/ProcessEnvironment.java.i
 data/test/java/dyn/MethodTypeTest.java.i
 data/test/javax/management/Introspector/InvokeGettersTest.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/CommandTool.java.i
+data/src/share/classes/com/sun/crypto/provider/BlowfishParameters.java.i
 data/test/javax/management/namespace/EventWithNamespaceControlTest.java.i
-data/src/share/classes/sun/io/ByteToCharCp1112.java.i
-data/make/common/BuildToolJar.gmk.i
+data/src/solaris/classes/sun/font/FontConfigManager.java.i
+data/src/share/classes/java/rmi/server/RMIServerSocketFactory.java.i
 data/src/share/classes/sun/applet/AppletListener.java.i
 data/src/share/classes/javax/sql/RowSet.java.i
-data/test/org/openjdk/jigsaw/MockLibrary.java.i
-data/src/share/native/sun/font/layout/ContextualGlyphInsertion.h.i
-data/src/share/classes/javax/security/sasl/AuthenticationException.java.i
-data/src/share/classes/java/awt/image/ReplicateScaleFilter.java.i
-data/src/share/classes/sun/tools/jconsole/OutputViewer.java.i
-data/test/sun/security/krb5/ktab/HighestKvno.java.i
+data/src/solaris/native/sun/java2d/loops/vis_GlyphList.c.i
+data/src/share/classes/javax/swing/plaf/synth/ImagePainter.java.i
+data/test/com/sun/security/auth/login/ConfigFile/EmptyOption.java.i
+data/src/share/classes/sun/tools/jconsole/OutputViewer.java.i
 data/src/share/classes/sun/net/www/content/image/x_xpixmap.java.i
 data/src/share/classes/javax/sound/midi/InvalidMidiDataException.java.i
+data/test/java/security/Permission/ToString.java.i
 data/test/sun/security/pkcs11/nss/db/key3.db.i
-data/src/share/classes/sun/rmi/transport/ConnectionOutputStream.java.i
+data/src/solaris/classes/sun/nio/fs/UnixNativeDispatcher.java.i
 data/src/share/sample/nio/server/FileContent.java.i
-data/src/share/classes/com/sun/security/sasl/digest/DigestMD5Client.java.i
+data/src/share/classes/javax/swing/event/TreeExpansionEvent.java.i
 data/src/solaris/native/sun/awt/medialib/vis_asi.h.i
-data/test/javax/swing/JFileChooser/6489130/bug6489130.java.i
 data/src/share/classes/com/sun/tools/jdi/ProcessAttachingConnector.java.i
-data/src/share/classes/sun/util/calendar/AbstractCalendar.java.i
-data/src/share/classes/sun/dyn/SpreadGeneric.java.i
+data/test/javax/crypto/spec/GCMParameterSpec/GCMParameterSpecTest.java.i
+data/src/share/sample/scripting/scriptpad/src/scripts/memory.js.i
 data/test/sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java.i
 data/test/javax/sound/midi/Gervill/SoftChannel/NoteOff2.java.i
 data/src/share/classes/javax/xml/crypto/dsig/keyinfo/X509Data.java.i
 data/test/java/rmi/activation/Activatable/elucidateNoSuchMethod/security.policy.i
-data/src/share/classes/java/awt/datatransfer/FlavorEvent.java.i
+data/src/solaris/doc/sun/man/man1/javac.1.i
 data/test/java/io/PrintStream/NullConstructor.java.i
-data/test/java/security/KeyRep/SerialOld.policy.i
 data/test/sun/net/www/protocol/http/GetOutputStream.java.i
-data/src/share/classes/javax/swing/plaf/metal/MetalComboBoxButton.java.i
+data/test/com/sun/jdi/sde/testString.i
 data/test/java/beans/VetoableChangeSupport/Test4076065.java.i
 data/src/share/classes/com/sun/tools/jdi/RawCommandLineLauncher.java.i
-data/src/share/native/sun/font/layout/LookupTables.h.i
+data/test/java/nio/charset/Charset/default.sh.i
 data/src/share/classes/java/awt/image/ByteLookupTable.java.i
 data/src/share/classes/javax/management/openmbean/TabularDataSupport.java.i
-data/src/share/classes/com/sun/jdi/PrimitiveType.java.i
+data/src/share/classes/sun/reflect/UnsafeQualifiedShortFieldAccessorImpl.java.i
 data/src/share/classes/sun/invoke/anon/ConstantPoolVisitor.java.i
 data/src/share/classes/sun/net/ApplicationProxy.java.i
-data/test/sun/security/pkcs11/KeyStore/ClientAuth.java.i
 data/src/share/native/sun/font/layout/StateTables.h.i
 data/src/share/classes/sun/tools/tree/ArrayExpression.java.i
+data/src/solaris/classes/sun/awt/X11/OwnershipListener.java.i
 data/src/share/native/sun/java2d/loops/Ushort4444Argb.h.i
+data/src/share/sample/scripting/scriptpad/src/scripts/linewrap.js.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpPduRequest.java.i
-data/src/windows/native/sun/windows/awt_BitmapUtil.cpp.i
+data/test/sun/security/pkcs11/SecureRandom/TestDeserialization.java.i
 data/src/solaris/classes/sun/nio/ch/SctpNet.java.i
 data/test/sun/security/mscapi/IsSunMSCAPIAvailable.java.i
 data/test/javax/management/mxbean/TigerMXBean.java.i
 data/test/java/beans/XMLEncoder/BeanValidator.java.i
+data/make/sun/net/spi/Makefile.i
 data/src/share/classes/sun/print/resources/serviceui_pt_BR.properties.i
 data/src/share/classes/java/util/NavigableMap.java.i
-data/src/share/classes/sun/security/util/PathList.java.i
-data/make/tools/src/build/tools/generatenimbus/Shape.java.i
+data/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java.i
+data/src/share/classes/javax/swing/AbstractAction.java.i
 data/src/share/classes/com/sun/jdi/FloatType.java.i
 data/test/java/util/concurrent/Executors/AutoShutdown.java.i
-data/src/share/native/java/util/zip/zlib-1.2.3/uncompr.c.i
-data/make/sun/security/smartcardio/Makefile.i
+data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/Open.java.i
+data/src/share/native/sun/font/layout/GDEFMarkFilter.h.i
 data/test/java/security/KeyRep/DSA.1.5.key.i
+data/src/share/classes/sun/awt/WindowClosingListener.java.i
 data/test/java/nio/file/Files/denyAll.policy.i
-data/src/share/classes/com/sun/jmx/remote/internal/ClientCommunicatorAdmin.java.i
+data/test/javax/management/monitor/ThreadPoolAccTest.java.i
 data/src/share/classes/com/sun/tools/jdi/ByteTypeImpl.java.i
 data/src/share/classes/sun/nio/cs/ext/MacSymbol.java.i
-data/src/linux/doc/man/ja/javaws.1.i
+data/src/share/classes/javax/naming/CannotProceedException.java.i
 data/src/share/classes/sun/text/resources/ubidi.icu.i
-data/make/tools/src/build/tools/generatecharacter/CharacterScript.java.i
+data/test/java/util/ResourceBundle/Test4300693.java.i
 data/test/java/awt/Frame/ShownOnPack/ShownOnPack.html.i
-data/test/java/nio/charset/coders/Errors.java.i
 data/src/share/classes/sun/io/CharToByteEUC_JP.java.i
-data/src/share/classes/javax/management/openmbean/CompositeData.java.i
+data/src/share/classes/javax/swing/plaf/metal/icons/ocean/question.png.i
 data/test/java/lang/Class/forName/NonJavaNames.sh.i
 data/src/share/classes/sun/nio/fs/AbstractFileSystemProvider.java.i
 data/src/share/classes/javax/management/ImmutableDescriptor.java.i
-data/src/share/classes/java/lang/Boolean.java.i
+data/src/share/classes/sun/security/provider/SHA2.java.i
 data/src/solaris/demo/jigsaw/basic/src/module-info.java.i
 data/test/java/rmi/activation/Activatable/downloadParameterClass/FooReceiverImpl.java.i
-data/src/share/classes/sun/security/jgss/spi/GSSContextSpi.java.i
+data/src/share/classes/sun/io/ByteToCharGBK.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverAnonymous.java.i
 data/test/java/security/Security/SecurityPropFile/SecurityPropFile.file.i
-data/src/share/classes/java/util/TreeMap.java.i
+data/make/modules/modularize.i
 data/test/java/awt/Graphics2D/RenderClipTest/RenderClipTest.java.i
-data/src/share/classes/javax/management/loading/PrivateClassLoader.java.i
-data/test/java/io/Serializable/skipToEndOfBlockData/SkipToEndOfBlockData.java.i
-data/src/share/back/ClassObjectReferenceImpl.c.i
+data/src/share/classes/java/text/ChoiceFormat.java.i
+data/make/tools/CharsetMapping/IBM1145.c2b.i
+data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java.i
+data/test/javax/swing/JFileChooser/6524424/bug6524424.java.i
 data/test/java/nio/channels/AsynchronousDatagramChannel/Basic.java.i
-data/src/share/classes/java/lang/Shutdown.java.i
-data/src/share/native/sun/java2d/loops/AnyInt.h.i
+data/test/javax/xml/crypto/dsig/data/signature-x509-ski.xml.i
+data/src/solaris/classes/sun/awt/X11/XBaseWindow.java.i
 data/src/share/demo/jfc/Notepad/resources/save.gif.i
-data/src/share/classes/sun/tools/jconsole/inspector/XTable.java.i
-data/test/java/beans/XMLEncoder/Test5023559.java.i
-data/test/java/util/Map/Get.java.i
-data/make/modules/tools/nbproject/project.properties.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/package.html.i
+data/make/tools/CharsetMapping/IBM918.map.i
 data/test/java/rmi/reliability/juicer/AppleImpl.java.i
-data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_de.properties.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverXPointer.java.i
 data/src/share/classes/sun/security/krb5/internal/KrbCredInfo.java.i
 data/test/sun/rmi/rmic/minimizeWrapperInstances/PImpl.java.i
-data/test/java/net/URL/OpenStream.java.i
-data/src/share/back/stepControl.h.i
-data/src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java.i
-data/src/share/classes/java/awt/JobAttributes.java.i
+data/test/java/security/cert/CertPathValidator/indirectCRL/CircularCRLOneLevelRevoked.java.i
+data/src/share/classes/sun/security/pkcs/EncodingException.java.i
+data/test/java/nio/channels/DatagramChannel/Sender.java.i
+data/src/share/classes/java/awt/color/package.html.i
 data/make/tools/CharsetMapping/DoubleByte-X.java.i
+data/src/share/classes/java/util/logging/LoggingMXBean.java.i
 data/src/share/classes/sun/management/HotspotClassLoadingMBean.java.i
 data/src/share/classes/javax/script/SimpleScriptContext.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/package.html.i
-data/src/share/classes/javax/swing/event/AncestorEvent.java.i
-data/src/share/classes/java/lang/reflect/MalformedParameterizedTypeException.java.i
+data/test/javax/management/remote/mandatory/connection/CloseFailedClientTest.java.i
+data/test/sun/security/pkcs11/Provider/Login.sh.i
 data/make/com/sun/java/pack/Makefile.i
 data/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/security.policy.i
+data/src/share/classes/com/sun/security/sasl/CramMD5Server.java.i
 data/test/javax/sound/midi/Gervill/SoftAudioSynthesizer/OpenStream.java.i
 data/src/share/classes/sun/text/resources/CollationData_hu.java.i
 data/test/java/lang/reflect/Generics/TestParameterizedType.java.i
 data/src/share/classes/java/sql/RowIdLifetime.java.i
-data/make/tools/swing-beans/beaninfo/images/AbstractButtonColor16.gif.i
+data/src/share/classes/com/sun/jmx/mbeanserver/DynamicMBean2.java.i
 data/test/java/lang/StringBuffer/AppendCharSequence.java.i
-data/test/javax/crypto/SecretKeyFactory/Provider2.java.i
-data/src/share/classes/java/awt/im/spi/InputMethod.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsRadioButtonMenuItemUI.java.i
-data/src/share/classes/javax/security/auth/x500/package.html.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/Group.java.i
+data/src/share/classes/java/util/RandomAccess.java.i
+data/test/sun/text/resources/Format/Bug4621320.java.i
+data/test/javax/print/attribute/MediaMappingsTest.java.i
 data/test/java/util/zip/ZipFile/deletetempjar.sh.i
 data/src/windows/native/sun/java2d/windows/ddrawObject.cpp.i
-data/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h.i
-data/test/sun/tools/native2ascii/test3.i
+data/src/share/native/sun/java2d/opengl/OGLVertexCache.h.i
+data/test/java/net/Authenticator/B4769350.java.i
 data/test/java/rmi/transport/checkFQDN/CheckFQDN_Stub.java.i
 data/test/sun/security/util/HostnameMatcher/cert4.crt.i
 data/test/java/security/Security/SecurityPropFile/SecurityPropFile.java.i
-data/src/share/classes/com/sun/security/auth/UnixNumericUserPrincipal.java.i
+data/test/javax/sound/midi/Gervill/RiffReaderWriter/ReadString.java.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_SESSION_INFO.java.i
 data/make/mkdemo/nio/zipfs/Makefile.i
 data/src/share/demo/applets/ArcTest/example1.html.i
 data/test/sun/security/util/DerInputBuffer/PaddedBitString.java.i
-data/src/share/classes/sun/security/provider/certpath/PKIXMasterCertPathValidator.java.i
+data/test/sun/text/resources/Format/Bug4762201.java.i
 data/src/share/classes/sun/misc/Perf.java.i
-data/make/tools/CharsetMapping/HKSCS2008.c2b.i
-data/src/windows/native/sun/java2d/d3d/D3DResourceManager.h.i
-data/src/solaris/native/sun/nio/ch/UnixAsynchronousSocketChannelImpl.c.i
+data/test/javax/sound/midi/Gervill/ModelByteBuffer/NewModelByteBufferFile.java.i
+data/test/sun/security/krb5/NegativeNonce.java.i
+data/src/windows/native/sun/windows/awt_Panel.h.i
 data/src/share/classes/com/sun/media/sound/ModelIdentifier.java.i
-data/src/share/classes/com/sun/media/sound/SoftJitterCorrector.java.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmRTClassPathEntryMBean.java.i
 data/src/share/classes/com/sun/tracing/dtrace/FunctionAttributes.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringVariableMonitor.java.i
 data/src/share/demo/applets/DitherTest/DitherTest.java.i
 data/src/windows/classes/sun/java2d/windows/DDScaleLoops.java.i
-data/src/share/sample/nio/server/URLDumper.java.i
-data/test/java/io/Serializable/unnamedPackageSwitch/Test.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_nl_BE.properties.i
-data/make/netbeans/common/standard-bindings.ent.i
+data/src/solaris/classes/sun/awt/X11/XFocusProxyWindow.java.i
+data/test/javax/crypto/SecretKeyFactory/Provider2.java.i
+data/test/java/beans/XMLEncoder/Test6921644.java.i
+data/src/windows/native/java/util/logging.c.i
 data/src/solaris/classes/sun/java2d/xr/MaskTile.java.i
 data/src/share/classes/java/awt/Panel.java.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_ECDH2_DERIVE_PARAMS.java.i
 data/src/share/classes/java/util/concurrent/Future.java.i
+data/src/share/classes/javax/swing/DebugGraphicsInfo.java.i
 data/src/share/classes/com/sun/beans/decoder/IntElementHandler.java.i
 data/make/tools/swing-beans/beaninfo/images/JViewportMono16.gif.i
 data/make/sun/security/mscapi/FILES_cpp.gmk.i
-data/src/linux/doc/man/ja/jrunscript.1.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/package.html.i
+data/src/solaris/classes/sun/awt/X11/XUtilConstants.java.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/Main.java.i
 data/test/java/beans/beancontext/Test4132698.java.i
 data/test/java/awt/print/Dialog/DialogCopies.java.i
-data/src/share/classes/javax/print/attribute/standard/JobMediaSheetsCompleted.java.i
+data/src/share/classes/javax/xml/crypto/OctetStreamData.java.i
+data/src/share/classes/sun/text/resources/FormatData_es_GT.java.i
 data/src/solaris/classes/sun/awt/X11/XTranslateCoordinates.java.i
 data/src/share/classes/sun/java2d/loops/FillParallelogram.java.i
-data/test/com/sun/crypto/provider/Cipher/DES/PerformanceTest.java.i
-data/make/altclasses/Makefile.i
+data/src/share/classes/org/openjdk/internal/joptsimple/OptionMissingRequiredArgumentException.java.i
+data/make/tools/src/build/tools/charsetmapping/GenerateMapping.java.i
+data/test/java/lang/instrument/TestClass3.java.i
 data/test/java/io/RandomAccessFile/ReadWritePrimitives.java.i
-data/test/java/net/HttpURLConnection/getResponseCode.java.i
-data/src/windows/classes/sun/awt/windows/WPrinterJob.java.i
-data/src/share/classes/sun/security/x509/IssuerAlternativeNameExtension.java.i
+data/test/sun/net/www/protocol/jar/jarbug/src/test/RunAllTests.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_ca.properties.i
+data/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c.i
 data/make/netbeans/jconsole/README.i
 data/src/share/classes/sun/java2d/opengl/OGLTextRenderer.java.i
-data/src/share/classes/java/security/PermissionCollection.java.i
+data/test/sun/security/pkcs11/ec/TestECDSA.java.i
 data/make/javax/management/Makefile.i
-data/test/sun/security/ssl/sanity/pluggability/MySSLEngineImpl.java.i
-data/src/share/classes/java/security/GeneralSecurityException.java.i
+data/test/java/nio/file/Files/TerminateWalk.java.i
 data/test/javax/xml/crypto/dsig/data/certs/bres.crt.i
+data/make/com/sun/demo/Makefile.i
 data/src/share/classes/sun/applet/AppletSecurity.java.i
-data/test/javax/management/eventService/LeaseTest.java.i
-data/src/share/classes/sun/font/CompositeFont.java.i
-data/src/share/classes/org/openjdk/jigsaw/cli/Repositor.java.i
+data/src/solaris/native/common/jdk_util_md.c.i
+data/test/java/beans/XMLEncoder/java_util_Collections_SynchronizedSet.java.i
+data/src/share/classes/com/sun/imageio/plugins/gif/GIFImageWriter.java.i
 data/src/share/classes/java/awt/event/MouseWheelListener.java.i
 data/src/share/classes/com/sun/media/sound/SoftAbstractResampler.java.i
-data/test/sun/security/ec/keystore.i
-data/test/java/io/Writer/Append.java.i
+data/test/sun/security/pkcs11/Signature/TestDSA.java.i
+data/test/java/lang/annotation/Missing/Marker.java.i
 data/src/windows/classes/sun/nio/ch/NativeThread.java.i
-data/src/solaris/native/sun/java2d/loops/mlib_v_ImageLogic_proto.h.i
+data/test/sun/security/smartcardio/TestExclusive.java.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedStaticFloatFieldAccessorImpl.java.i
 data/test/java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html.i
-data/src/share/classes/sun/reflect/ByteVectorImpl.java.i
-data/src/share/classes/com/sun/jmx/mbeanserver/SecureClassLoaderRepository.java.i
+data/src/solaris/classes/sun/awt/X11/XChoicePeer.java.i
+data/test/com/sun/jdi/ClassesByName2Test.java.i
 data/make/mksample/forkjoin/mergesort/Makefile.i
 data/src/share/classes/javax/imageio/stream/IIOByteBuffer.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj.i
 data/src/share/classes/sun/io/ByteToCharCp1144.java.i
-data/src/share/classes/sun/io/ByteToCharDBCS_EBCDIC.java.i
+data/test/javax/management/mxbean/MerlinMXBean.java.i
+data/src/solaris/doc/sun/man/man1/keytool.1.i
 data/src/share/classes/com/sun/media/sound/AlawCodec.java.i
 data/src/share/classes/com/sun/jdi/event/BreakpointEvent.java.i
+data/src/share/sample/forkjoin/mergesort/MergeSort.java.i
 data/test/java/rmi/Naming/UnderscoreHost.java.i
 data/src/share/classes/java/util/logging/LogManager.java.i
 data/test/java/nio/channels/AsynchronousChannelGroup/Restart.java.i
-data/src/share/classes/javax/swing/plaf/multi/doc-files/multi_tsc.html.i
-data/test/demo/jvmti/hprof/HeapBinaryFormatTest.java.i
-data/make/sun/net/FILES_java.gmk.i
-data/src/share/native/sun/awt/image/jpeg/imageioJPEG.c.i
-data/src/share/classes/java/net/CookieHandler.java.i
-data/src/share/demo/jvmti/hprof/hprof_stack.h.i
-data/src/share/native/sun/font/layout/ExtensionSubtables.h.i
+data/test/sun/management/jmxremote/bootstrap/management_test01_ok.properties.in.i
+data/test/sun/util/resources/Locale/Bug6275682.java.i
+data/test/java/net/URLClassLoader/closetest/CloseTest.java.i
+data/make/tools/CharsetMapping/dbcs.i
+data/test/sun/net/idn/nfsmxp.spp.i
+data/src/share/classes/sun/net/httpserver/Code.java.i
 data/src/share/classes/javax/net/ssl/SSLEngine.java.i
 data/test/java/util/concurrent/Executors/PrivilegedCallables.java.i
-data/src/share/classes/com/sun/jdi/ByteValue.java.i
+data/test/sun/jvmstat/monitor/MonitoredVm/CR6672135.java.i
+data/src/share/classes/sun/dyn/Access.java.i
 data/test/java/io/Serializable/serialver/nested/Test.java.i
-data/test/java/lang/instrument/NoTransformerAddedTest.java.i
+data/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java.i
+data/test/java/rmi/server/RMIClassLoader/delegateToContextLoader/Dummy.java.i
 data/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java.i
-data/src/share/classes/com/sun/tools/hat/internal/server/InstancesQuery.java.i
+data/src/share/classes/sun/java2d/opengl/OGLBufImgOps.java.i
 data/src/share/lib/management/jmxremote.password.template.i
 data/test/java/lang/management/ThreadMXBean/LockedMonitors.java.i
-data/src/share/classes/com/sun/tools/example/debug/tty/AmbiguousMethodException.java.i
+data/test/java/nio/file/Files/MaxDepth.java.i
+data/src/share/classes/java/nio/charset/Charset.java.i
 data/test/javax/swing/JSlider/6918861/bug6918861.java.i
-data/test/com/sun/tools/attach/BasicTests.sh.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetChannels.java.i
 data/src/share/classes/sun/font/LayoutPathImpl.java.i
 data/test/sun/net/www/protocol/http/spnegoTest.i
+data/make/tools/swing-beans/beaninfo/images/BoxColor32.gif.i
+data/src/solaris/native/sun/awt/colordata.h.i
 data/test/sun/security/pkcs11/nss/lib/linux-amd64/libplc4.so.i
-data/src/share/classes/javax/management/timer/TimerAlarmClockNotification.java.i
+data/src/share/classes/javax/management/event/EventClientDelegateMBean.java.i
 data/src/share/classes/sun/io/CharToByteCp939.java.i
 data/test/javax/management/ObjectInstance/ToStringMethodTest.java.i
 data/src/share/native/sun/security/ec/mpi.c.i
 data/make/tools/CharsetMapping/IBM1123.nr.i
-data/src/share/classes/javax/print/attribute/standard/PagesPerMinuteColor.java.i
+data/make/java/nio/reorder-sparc.i
+data/src/share/classes/sun/util/calendar/CalendarUtils.java.i
 data/src/share/classes/sun/net/www/content/text/Generic.java.i
-data/test/javax/crypto/SecretKeyFactory/P1.jar.i
+data/src/share/classes/sun/management/snmp/package.html.i
 data/src/share/classes/sun/tools/asm/StringConstantData.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageCopy.h.i
-data/make/tools/src/build/tools/javazic/Zoneinfo.java.i
+data/test/java/util/Locale/data/deflocale.rhel5.i
+data/src/solaris/classes/sun/awt/X11/XAtom.java.i
 data/src/share/demo/nbproject/jfc/SampleTree/nbproject/netbeans-targets.xml.i
 data/src/share/native/java/lang/fdlibm/src/e_j0.c.i
-data/src/share/classes/java/awt/dnd/DragSourceDropEvent.java.i
+data/src/share/classes/sun/tools/tree/IfStatement.java.i
+data/test/javax/management/remote/mandatory/subjectDelegation/policy14.i
 data/src/share/demo/jfc/Notepad/resources/Notepad.properties.i
-data/src/share/classes/com/sun/tools/hat/internal/util/ArraySorter.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/LoopbackSSLSocket.java.i
 data/src/share/classes/javax/management/monitor/MonitorMBean.java.i
-data/src/share/classes/sun/applet/AppletMessageHandler.java.i
+data/test/java/nio/channels/Selector/ConnectWrite.java.i
 data/test/javax/swing/JTextArea/Test6593649.java.i
 data/test/java/net/URLClassLoader/extdir/extention.jar.i
 data/src/solaris/native/sun/awt/extutil.h.i
+data/src/share/classes/java/awt/datatransfer/ClipboardOwner.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmOSImpl.java.i
+data/make/java/hpi/windows/Makefile.i
 data/test/java/beans/Introspector/6380849/infos/ThirdBeanBeanInfo.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/Ints.java.i
 data/src/share/classes/javax/naming/directory/ModificationItem.java.i
-data/src/share/back/debugLoop.c.i
-data/test/java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.java.i
+data/test/sun/rmi/rmic/covariantReturns/G2Impl.java.i
+data/src/share/classes/sun/reflect/generics/tree/DoubleSignature.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaDouble.java.i
-data/test/sun/management/jmxremote/bootstrap/management_ssltest07_ok.properties.in.i
 data/test/java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java.i
 data/src/share/native/sun/awt/image/jpeg/README.i
-data/test/sun/management/jmxremote/bootstrap/jmxremote_test06_ok.password.in.i
-data/src/share/classes/com/sun/nio/sctp/IllegalReceiveException.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthStyle.java.i
+data/test/java/nio/file/Files/ContentType.java.i
+data/src/share/classes/com/sun/imageio/plugins/common/I18NImpl.java.i
+data/src/share/classes/sun/tools/jconsole/Version-template.java.i
 data/test/java/util/ResourceBundle/Control/TestResourceRB.java.i
+data/make/sun/rmi/rmic/FILES.gmk.i
 data/src/share/classes/sun/awt/PlatformFont.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_en_NZ.properties.i
-data/src/share/classes/javax/management/loading/MLetParser.java.i
+data/src/share/classes/sun/io/ByteToCharCp1112.java.i
 data/test/java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak_Stub.java.i
-data/test/sun/nio/cs/X11CNS11643.java.i
-data/make/tools/swing-beans/beaninfo/images/JToggleButtonColor32.gif.i
+data/test/sun/tools/jhat/hprof.bin.i
+data/test/java/rmi/activation/ActivationSystem/activeGroup/security.policy.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/jibxhelpers/CanvasMapper.java.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/ASCII_CharStream.README.i
-data/test/java/util/Collections/BinarySearchNullComparator.java.i
+data/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java.i
 data/src/solaris/native/sun/security/jgss/wrapper/NativeFunc.c.i
-data/src/share/classes/java/beans/package.html.i
-data/test/java/lang/Runtime/exec/setcwd.sh.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_INFO.java.i
+data/test/java/util/Locale/data/deflocale.input.i
 data/test/java/net/Authenticator/B4921848.java.i
 data/src/windows/native/sun/windows/awt_Scrollbar.h.i
 data/src/share/classes/sun/tools/serialver/serialver_zh_CN.properties.i
 data/test/java/nio/file/FileStore/Basic.java.i
 data/src/share/classes/sun/util/resources/CalendarData_hi.properties.i
 data/src/windows/native/sun/windows/awt_Label.h.i
-data/test/javax/management/remote/mandatory/subjectDelegation/SubjectDelegation3Test.java.i
-data/src/share/classes/javax/crypto/spec/DHPublicKeySpec.java.i
-data/src/share/classes/java/util/prefs/PreferenceChangeListener.java.i
+data/src/share/demo/nbproject/scripting/jconsole-plugin/build.properties.i
+data/test/sun/tools/jstat/jstatLineCounts3.sh.i
 data/test/java/lang/instrument/appendToClassLoaderSearch/CircularityErrorTest.java.i
 data/test/com/sun/jdi/ResumeOneThreadTest.java.i
 data/src/share/classes/java/text/spi/CollatorProvider.java.i
@@ -16602,132 +16435,137 @@ data/test/sun/misc/CopyMemory.java.i
 data/test/java/beans/Introspector/4168475/Test4168475.java.i
 data/test/javax/management/eventService/LeaseManagerDeadlockTest.java.i
 data/src/windows/native/sun/windows/awt_Rectangle.h.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifProgressBarUI.java.i
+data/src/windows/classes/java/net/TwoStacksPlainSocketImpl.java.i
 data/src/share/classes/sun/util/resources/CalendarData_sl.properties.i
-data/src/share/classes/java/lang/Comparable.java.i
+data/make/altclasses/Makefile.i
 data/test/sun/net/www/protocol/file/NonUTF8EncodedChar.java.i
 data/src/share/classes/sun/net/www/content/image/jpeg.java.i
-data/src/share/classes/java/nio/file/SimpleFileVisitor.java.i
+data/test/java/util/concurrent/ThreadPoolExecutor/ShutdownNowExecuteRace.java.i
 data/test/java/util/Formatter/BasicBigInteger.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java.i
-data/src/share/classes/sun/net/httpserver/Code.java.i
+data/src/share/native/sun/font/layout/ExtensionSubtables.h.i
 data/src/share/classes/sun/security/rsa/RSASignature.java.i
 data/src/share/classes/sun/tools/native2ascii/A2NFilter.java.i
 data/test/java/rmi/server/RemoteServer/AddrInUse.java.i
-data/src/share/classes/javax/management/event/EventClientDelegateMBean.java.i
-data/src/share/classes/sun/management/snmp/package.html.i
-data/test/java/beans/Performance/TestPropertyChangeSupport.java.i
-data/src/share/native/sun/security/jgss/wrapper/NativeUtil.c.i
-data/test/com/sun/jdi/RedefinePop.sh.i
-data/src/share/classes/sun/reflect/generics/tree/DoubleSignature.java.i
+data/src/share/classes/javax/management/timer/TimerAlarmClockNotification.java.i
+data/src/share/native/java/util/zip/zlib-1.2.3/ChangeLog.i
+data/test/javax/crypto/SecretKeyFactory/P1.jar.i
+data/src/solaris/native/sun/java2d/loops/vis_AlphaMaskBlit.c.i
+data/src/share/native/sun/security/jgss/wrapper/NativeUtil.c.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetDeviceInfo.java.i
+data/test/java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.java.i
 data/src/share/native/sun/java2d/cmm/lcms/cmspcs.c.i
 data/src/share/classes/javax/swing/JPasswordField.java.i
 data/src/share/classes/sun/java2d/loops/TransformHelper.java.i
 data/test/sun/awt/image/ImageRepresentation/LUTCompareTest.java.i
 data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/java.policy.fail.i
-data/src/share/classes/javax/print/AttributeException.java.i
-data/test/java/util/ResourceBundle/Control/ExpirationTest.java.i
-data/src/share/classes/javax/naming/event/NamingEvent.java.i
-data/test/sun/security/provider/SeedGenerator/Priority_Inversion.java.i
+data/test/java/net/InetAddress/WhiteSpaceHostTest.java.i
+data/test/java/lang/instrument/AppendToBootstrapClassPathTest.java.i
+data/src/share/classes/javax/management/remote/package.html.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpScopedPduBulk.java.i
-data/src/windows/resource/unpack200_proto.exe.manifest.i
-data/src/share/classes/sun/net/www/protocol/http/NegotiateCallbackHandler.java.i
+data/test/java/net/Authenticator/BasicTest4.java.i
 data/src/windows/hpi/src/system_md.c.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/ASCII_CharStream.java.i
+data/test/java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java.i
 data/src/share/native/com/sun/java/util/jar/pack/bands.cpp.i
 data/src/solaris/native/common/jni_util_md.c.i
-data/src/share/classes/java/io/DeleteOnExitHook.java.i
-data/src/share/classes/java/nio/file/attribute/AclEntryType.java.i
+data/src/share/classes/sun/security/krb5/internal/ccache/FileCCacheConstants.java.i
+data/src/share/classes/sun/util/logging/PlatformLogger.java.i
 data/test/java/lang/StrictMath/Log1pTests.java.i
 data/src/solaris/native/sun/awt/gtk2_interface.h.i
 data/src/share/classes/sun/util/resources/CurrencyNames_mt_MT.properties.i
-data/test/java/io/Serializable/ClassCastExceptionDetail/Write.java.i
+data/test/javax/swing/JSlider/6278700/bug6278700.java.i
 data/test/java/io/Serializable/subclassGC/SubclassOfOOS.java.i
-data/src/share/classes/sun/tools/jconsole/LocalVirtualMachine.java.i
-data/test/javax/security/auth/PrivateCredentialPermission/Serial.java.i
+data/src/share/instrument/JPLISAgent.h.i
+data/src/share/classes/sun/security/jgss/krb5/Krb5Token.java.i
 data/test/javax/crypto/NullCipher/TestNPE.java.i
 data/src/share/classes/com/sun/jdi/event/VMDeathEvent.java.i
-data/src/share/classes/javax/swing/plaf/nimbus/EffectUtils.java.i
+data/test/sun/tools/jps/jps-l_Output2.awk.i
 data/test/java/beans/XMLEncoder/java_beans_Expression.java.i
 data/src/share/demo/jfc/SampleTree/SampleTreeModel.java.i
 data/src/share/classes/sun/print/resources/serviceui_zh_CN.properties.i
 data/test/org/openjdk/jigsaw/_Configurator.java.i
-data/test/javax/management/remote/mandatory/connection/GetConnectionTest.java.i
+data/src/share/classes/sun/reflect/misc/ConstructorUtil.java.i
 data/test/java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport_Stub.java.i
-data/src/share/classes/sun/nio/cs/ext/Big5_Solaris.java.i
+data/test/java/security/ProtectionDomain/AllPerm.java.i
+data/src/share/classes/java/io/DeleteOnExitHook.java.i
 data/test/com/sun/net/httpserver/Test1.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthFormattedTextFieldUI.java.i
-data/test/sun/security/pkcs11/KeyStore/ClientAuthData/ibutton.cert.i
-data/src/share/classes/com/sun/accessibility/internal/resources/accessibility_zh_CN.properties.i
-data/src/share/classes/sun/nio/fs/AbstractPath.java.i
-data/src/share/native/com/sun/tools/jdi/SharedMemoryTransport.c.i
+data/src/share/native/sun/font/layout/CanonShaping.h.i
+data/test/sun/rmi/rmic/newrmic/equivalence/TestInterface.java.i
+data/test/javax/sound/midi/Gervill/SoftChannel/ChannelPressure.java.i
+data/test/java/security/KeyStore/keystore.jks.i
 data/src/share/native/sun/font/fontscaler.h.i
 data/src/share/classes/com/sun/servicetag/resources/register.html.i
-data/src/share/classes/java/beans/beancontext/BeanContextServiceRevokedListener.java.i
+data/src/share/demo/jvmti/heapViewer/sample.makefile.txt.i
 data/src/share/classes/javax/swing/MutableComboBoxModel.java.i
 data/test/java/net/URLClassLoader/sealing/CheckSealed.java.i
 data/src/windows/classes/java/net/DualStackPlainSocketImpl.java.i
-data/src/linux/doc/man/jrunscript.1.i
-data/src/windows/native/java/net/NetworkInterface_win9x.c.i
+data/test/com/sun/security/sasl/digest/AuthRealms.java.i
+data/test/java/io/File/Mkdir.java.i
+data/src/share/classes/java/awt/Choice.java.i
 data/test/java/rmi/server/UnicastRemoteObject/useDynamicProxies/UseDynamicProxies_Stub.java.i
 data/src/share/classes/sun/reflect/generics/tree/FormalTypeParameter.java.i
-data/src/share/classes/java/awt/font/FontRenderContext.java.i
+data/src/share/classes/sun/print/resources/serviceui_it.properties.i
 data/src/share/classes/com/sun/tools/jdi/ShortTypeImpl.java.i
-data/src/share/classes/javax/print/event/PrintServiceAttributeEvent.java.i
-data/make/tools/src/build/tools/javazic/Simple.java.i
+data/test/java/lang/StringBuffer/SetLength.java.i
+data/test/sun/security/krb5/auto/CrossRealm.java.i
 data/src/share/classes/sun/management/resources/agent_zh_TW.properties.i
+data/src/share/classes/sun/text/resources/FormatData_sr_BA.java.i
 data/src/share/native/sun/security/pkcs11/wrapper/pkcs11t.h.i
+data/src/share/classes/javax/swing/plaf/ComponentUI.java.i
 data/src/solaris/classes/sun/misc/OSEnvironment.java.i
 data/test/java/security/CodeSource/Implies.java.i
 data/test/javax/swing/border/Test4129681.html.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageAffine_NN.c.i
 data/src/share/classes/java/awt/event/MouseWheelEvent.java.i
-data/test/sun/net/util/IPAddressUtilTest.java.i
-data/src/share/back/eventHandlerRestricted.h.i
-data/src/share/classes/sun/tools/java/Environment.java.i
+data/test/sun/security/x509/X509CRLImpl/UnexpectedNPE.java.i
+data/test/sun/java2d/cmm/ColorConvertOp/ColConvDCMTest.java.i
+data/test/java/rmi/MarshalledObject/compare/annotatedRef.i
 data/src/windows/classes/sun/security/krb5/internal/tools/Kinit.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_sr_CS.properties.i
-data/src/share/classes/com/sun/tools/jdi/BooleanValueImpl.java.i
-data/src/share/classes/sun/io/CharToByteConverter.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_ar_OM.properties.i
-data/test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.sh.i
+data/test/javax/sound/midi/Gervill/SoftAudioSynthesizer/GetPropertyInfo.java.i
+data/test/java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java.i
+data/src/share/classes/sun/security/krb5/internal/HostAddress.java.i
+data/src/share/classes/com/sun/tools/example/debug/bdi/SpecListener.java.i
 data/src/share/demo/jfc/TableExample/TableExample2.java.i
-data/test/java/nio/file/Path/PassThroughFileSystem.java.i
-data/test/sun/security/provider/PolicyParser/PrincipalExpansionError.policy.i
+data/test/sun/net/www/ParseUtil_6306697.java.i
+data/test/javax/security/auth/PrivateCredentialPermission/Serial.java.i
 data/test/java/lang/instrument/AddTransformerTest.java.i
-data/make/tools/CharsetMapping/MS932.map.i
+data/test/java/nio/channels/FileChannel/Size.java.i
+data/src/share/classes/com/sun/tools/hat/internal/model/AbstractJavaHeapObjectVisitor.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/ProviderInit.java.i
 data/src/share/classes/sun/text/resources/CollationData_da.java.i
 data/src/share/npt/utf.h.i
 data/src/share/classes/sun/nio/cs/ext/DelegatableDecoder.java.i
-data/test/com/sun/tools/attach/RedefineAgent.java.i
+data/src/share/classes/sun/tools/native2ascii/resources/MsgNative2ascii_ja.java.i
 data/src/share/classes/sun/tools/jar/resources/jar_it.properties.i
 data/src/solaris/classes/sun/awt/motif/MMenuItemPeer.java.i
 data/src/share/classes/java/security/cert/CertStore.java.i
-data/test/javax/management/MBeanServer/NewMBeanListenerTest.java.i
 data/src/share/classes/sun/tools/jstat/OptionLister.java.i
-data/src/share/classes/com/sun/tools/example/debug/bdi/SourceNameReferenceTypeSpec.java.i
-data/src/share/classes/sun/text/resources/CollationData_uk.java.i
+data/src/share/classes/javax/swing/plaf/nimbus/EffectUtils.java.i
+data/src/share/classes/java/awt/doc-files/GridLayout-1.gif.i
 data/test/java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/RadialGradient.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509KeyManager/SelectOneKeyOutOfMany.java.i
 data/test/sun/rmi/rmic/covariantReturns/G5.java.i
 data/test/java/awt/dnd/ImageDecoratedDnDNegative/DnDSource.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpString.java.i
 data/test/java/util/ResourceBundle/Bug6299235Test.sh.i
-data/src/solaris/native/com/sun/management/UnixOperatingSystem_md.c.i
+data/test/java/rmi/activation/Activatable/checkAnnotations/CheckAnnotations.java.i
 data/test/java/beans/Introspector/Test6447751.java.i
 data/test/sun/net/www/protocol/http/TunnelThroughProxy.java.i
-data/src/share/classes/org/openjdk/jigsaw/RemoteRepositoryList.java.i
+data/make/tools/CharsetMapping/IBM871.nr.i
 data/test/java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolverException.java.i
-data/src/share/classes/com/sun/tools/jdi/VMListener.java.i
-data/test/javax/swing/text/html/parser/Parser/7003777/bug7003777.java.i
-data/src/windows/hpi/src/linker_md.c.i
-data/test/java/util/concurrent/ScheduledThreadPoolExecutor/DecorateTask.java.i
+data/src/share/classes/sun/io/ByteToCharCp948.java.i
+data/test/java/nio/channels/AsynchronousServerSocketChannel/java.policy.deny.i
+data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ComSSLContextImpl.java.i
+data/src/solaris/native/sun/java2d/loops/vis_ByteIndexed.c.i
+data/src/share/classes/sun/net/httpserver/HttpsExchangeImpl.java.i
+data/src/share/classes/com/sun/tools/example/debug/event/LocatableEventSet.java.i
 data/src/share/classes/sun/text/resources/CollationData_ca.java.i
-data/src/share/classes/sun/java2d/DefaultDisposerRecord.java.i
+data/test/java/io/Serializable/badSubstByReplace/BadSubstByReplace.java.i
 data/src/share/classes/sun/security/x509/DistributionPoint.java.i
-data/test/java/util/Locale/serialized/java6locale_th_TH_TH.i
+data/test/com/sun/jdi/CountFilterTest.java.i
 data/test/java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.java.i
 data/src/share/classes/sun/io/ByteToCharCp500.java.i
 data/make/tools/makeclasslist/Makefile.i
@@ -16735,59 +16573,69 @@ data/src/share/classes/sun/security/pkcs11/wrapper/CK_LOCKMUTEX.java.i
 data/make/java/text/base/Makefile.i
 data/test/java/awt/Window/WindowType/WindowType.java.i
 data/src/share/native/sun/security/smartcardio/pcsc.c.i
+data/src/share/demo/scripting/jconsole-plugin/src/scripts/hello.js.i
 data/test/java/util/EnumMap/SimpleSerialization.java.i
 data/src/share/classes/java/lang/reflect/Array.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315OmitComments.java.i
-data/test/java/util/zip/ConstructDeflaterInput.java.i
-data/src/share/classes/com/sun/media/sound/ModelPatch.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CloseSocketException.java.i
+data/src/share/classes/java/awt/print/Printable.java.i
 data/src/share/classes/java/util/concurrent/TimeUnit.java.i
 data/make/com/sun/tools/attach/Makefile.i
-data/src/windows/native/sun/windows/awt_TextField.h.i
-data/src/share/classes/com/sun/accessibility/internal/resources/accessibility_pt_BR.properties.i
+data/test/java/nio/file/Path/Links.java.i
+data/src/share/classes/sun/nio/cs/ext/Big5_Solaris.java.i
+data/src/share/classes/java/lang/management/PlatformComponent.java.i
+data/src/windows/native/sun/windows/awt_InputTextInfor.cpp.i
 data/src/share/classes/javax/swing/text/doc-files/editor.gif.i
-data/test/java/util/ResourceBundle/Bug6204853_Utf8.properties.i
+data/test/sun/tools/native2ascii/test2.i
+data/src/share/classes/javax/swing/plaf/synth/DefaultMenuLayout.java.i
+data/test/java/util/ResourceBundle/Control/Chinese_zh_TW.properties.i
+data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmThreadContentionMonitoring.java.i
 data/test/sun/awt/font/ClassLoaderLeakTest.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java.i
-data/src/share/classes/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java.i
-data/test/java/io/LineNumberReader/Read.java.i
+data/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c.i
+data/test/javax/management/MBeanServer/PostRegisterDeadlockTest2.java.i
+data/make/modules/modules.properties.i
 data/src/share/classes/com/sun/tools/hat/internal/server/PlatformClasses.java.i
 data/src/share/classes/sun/io/ByteToCharEUC_JP_LINUX.java.i
 data/src/solaris/classes/sun/nio/fs/LinuxWatchService.java.i
 data/test/javax/management/remote/mandatory/subjectDelegation/policy33.i
 data/src/share/classes/sun/util/resources/CurrencyNames_it_CH.properties.i
-data/test/com/sun/jdi/MixedSuspendTest.sh.i
-data/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/CompressOutputStream.java.i
+data/src/share/classes/java/rmi/ServerError.java.i
+data/test/javax/swing/SwingWorker/6493680/bug6493680.java.i
+data/src/share/classes/java/awt/image/RasterFormatException.java.i
 data/src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java.i
-data/src/share/native/sun/security/ec/impl/mpprime.h.i
-data/test/sun/security/mscapi/PublicKeyInterop.java.i
+data/src/windows/native/sun/windows/awt_Checkbox.cpp.i
+data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ExtendedKeySocket.java.i
 data/src/share/sample/nio/server/RequestHandler.java.i
 data/src/share/native/java/lang/fdlibm/src/e_acos.c.i
 data/test/java/lang/Math/Tests.java.i
-data/src/share/classes/sun/security/tools/PolicyTool.java.i
+data/src/share/classes/com/sun/accessibility/internal/resources/accessibility_zh_CN.properties.i
 data/src/share/classes/java/util/concurrent/ConcurrentSkipListMap.java.i
 data/src/share/classes/sun/tools/tree/InlineNewInstanceExpression.java.i
-data/src/share/classes/sun/security/ssl/SSLSocketFactoryImpl.java.i
+data/src/share/native/java/lang/Throwable.c.i
+data/src/share/classes/sun/nio/cs/ext/DoubleByteEncoder.java.i
 data/src/share/classes/java/awt/Graphics2D.java.i
 data/test/javax/swing/plaf/synth/Test6660049.java.i
 data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/ClosedStreams.java.i
-data/test/java/util/zip/DeflateIn_InflateOut.java.i
-data/test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall_Stub.java.i
+data/src/windows/native/sun/windows/awt_Pen.h.i
+data/src/linux/doc/man/ja/pack200.1.i
+data/src/share/native/com/sun/tools/jdi/SharedMemoryTransport.c.i
 data/test/java/nio/charset/Charset/NIOCharsetAvailabilityTest.java.i
-data/make/tools/CharsetMapping/IBM273.c2b.i
+data/src/share/classes/java/awt/geom/FlatteningPathIterator.java.i
 data/test/javax/management/remote/mandatory/notif/NotifBufferSizePropertyNameTest.java.i
-data/src/share/classes/java/util/concurrent/CopyOnWriteArraySet.java.i
-data/test/java/io/Serializable/stopCustomDeserialization/Read.java.i
+data/src/share/classes/sun/print/SunAlternateMedia.java.i
+data/src/share/classes/java/util/regex/package.html.i
 data/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriterSpi.java.i
+data/test/java/io/Serializable/lookupInterfaceDesc/LookupInterfaceDesc.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/internal/ColumnWidthCalculator.java.i
-data/src/windows/native/sun/windows/awt_TextField.cpp.i
+data/test/javax/xml/crypto/dsig/data/certs/user.crt.i
 data/src/share/classes/sun/awt/image/SunVolatileImage.java.i
 data/src/share/classes/java/beans/VetoableChangeSupport.java.i
 data/test/java/lang/management/MXBean/MXBeanBehavior.java.i
 data/test/java/lang/Class/getDeclaredClasses/TypeTag.java.i
 data/src/share/classes/sun/launcher/resources/launcher_zh_TW.properties.i
-data/test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/Read.java.i
-data/src/share/classes/java/awt/dnd/DragSourceDragEvent.java.i
-data/src/share/classes/com/sun/crypto/provider/PCBC.java.i
+data/src/share/classes/sun/io/CharToByteMacThai.java.i
+data/test/java/rmi/server/RemoteServer/setLogPermission/SetLogPermission.java.i
+data/src/share/classes/java/beans/beancontext/BeanContextServiceRevokedListener.java.i
 data/test/java/io/charStreams/LineLengths.java.i
 data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/IIOTests.java.i
 data/src/share/classes/javax/swing/text/GapVector.java.i
@@ -16800,270 +16648,294 @@ data/src/share/classes/sun/text/resources/FormatData_sq_AL.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c.i
 data/test/com/sun/jdi/LineNumberInfo.java.i
 data/src/share/classes/java/awt/event/ActionEvent.java.i
+data/test/javax/smartcardio/TestCommandAPDU.java.i
 data/src/share/classes/javax/swing/plaf/nimbus/LoweredBorder.java.i
 data/src/share/classes/java/awt/font/TextJustifier.java.i
-data/test/java/io/DataInputStream/ReadUTF.java.i
+data/src/share/classes/java/lang/ClassCastException.java.i
 data/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericBlockCipher.java.i
-data/src/share/classes/java/awt/ScrollPane.java.i
+data/test/java/beans/XMLEncoder/java_util_Collections_EmptySet.java.i
 data/test/java/net/PortUnreachableException/Concurrent.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM1149.java.i
-data/src/share/classes/javax/accessibility/AccessibleIcon.java.i
+data/test/java/text/Collator/Bug5047314.java.i
 data/src/share/classes/java/nio/channels/Channels.java.i
 data/test/java/util/ResourceBundle/Bug4179766Resource.java.i
 data/src/solaris/back/path_md.h.i
 data/test/java/beans/XMLDecoder/spec/TestArray.java.i
-data/src/share/demo/nbproject/jfc/SwingApplet/nbproject/netbeans-targets.xml.i
-data/test/sun/tools/jps/jps-Vvml_2.sh.i
+data/test/org/openjdk/jigsaw/MockLibrary.java.i
 data/src/share/demo/applets/MoleculeViewer/models/ethane.xyz.i
 data/test/java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html.i
-data/test/java/net/Socket/RST.java.i
+data/test/javax/management/eventService/ReconnectableConnectorTest.java.i
 data/make/tools/src/build/tools/automulti/README.txt.i
 data/test/com/sun/jdi/AfterThreadDeathTest.java.i
-data/src/share/native/sun/java2d/loops/MaskBlit.c.i
 data/src/share/classes/sun/security/action/LoadLibraryAction.java.i
+data/test/java/util/Currency/PropertiesTest.sh.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_OUT.java.i
-data/src/share/classes/sun/misc/resources/Messages_zh_TW.java.i
+data/src/windows/classes/sun/nio/ch/SourceChannelImpl.java.i
+data/src/linux/doc/man/jrunscript.1.i
 data/src/share/classes/sun/font/Type1GlyphMapper.java.i
 data/src/solaris/demo/jni/Poller/Client.java.i
 data/make/com/sun/jndi/ldap/Makefile.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/XPath2FilterContainer.java.i
 data/test/java/awt/FontClass/FontPrivilege.java.i
 data/test/sun/tools/jstat/jstatTimeStamp1.sh.i
-data/test/sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java.i
 data/src/share/native/sun/awt/debug/debug_trace.h.i
 data/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c.i
 data/test/java/lang/Float/Constants.java.i
+data/src/share/classes/java/awt/dnd/DropTargetListener.java.i
 data/test/java/security/ProtectionDomain/Recursion.policy.i
 data/src/share/classes/java/nio/file/attribute/FileTime.java.i
 data/test/java/util/PluggableLocale/providersrc/TimeZoneNameProviderImpl.java.i
-data/src/share/classes/javax/imageio/IIOParam.java.i
+data/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/CompressOutputStream.java.i
+data/test/java/util/zip/Bounds.java.i
 data/src/share/classes/java/lang/StringIndexOutOfBoundsException.java.i
-data/test/java/lang/management/MemoryMXBean/PendingAllGC.sh.i
+data/src/share/classes/sun/security/krb5/internal/HostAddresses.java.i
 data/src/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java.i
 data/test/javax/script/Test8.js.i
-data/src/windows/classes/sun/awt/windows/WRobotPeer.java.i
+data/test/sun/tools/jstat/lineCounts4.awk.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/InvalidTransformException.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/SourceTool.java.i
 data/src/share/classes/com/sun/media/sound/ModelSource.java.i
 data/src/solaris/native/sun/xawt/XWindow.c.i
-data/test/java/util/PluggableLocale/providersrc/java.util.spi.LocaleNameProvider.i
+data/src/share/classes/javax/swing/plaf/metal/sounds/FrameRestoreUp.wav.i
 data/test/java/util/logging/LoggingMXBeanTest2.java.i
-data/src/share/classes/javax/management/remote/package.html.i
+data/test/javax/script/DummyScriptEngine.java.i
 data/test/java/lang/Boolean/ParseBoolean.java.i
-data/src/share/classes/javax/swing/plaf/ColorUIResource.java.i
+data/src/share/classes/java/awt/font/FontRenderContext.java.i
 data/src/solaris/native/sun/nio/ch/SctpServerChannelImpl.c.i
 data/src/share/classes/sun/util/resources/CalendarData_sq.properties.i
 data/src/share/classes/javax/crypto/Mac.java.i
 data/src/share/demo/applets/WireFrame/example3.html.i
 data/test/sun/management/jmxremote/bootstrap/rmiregistry.properties.i
 data/src/share/classes/java/awt/dnd/peer/DragSourceContextPeer.java.i
-data/test/java/security/BasicPermission/NullOrEmptyName.java.i
 data/src/share/classes/java/text/DictionaryBasedBreakIterator.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpUnsignedInt.java.i
-data/src/share/classes/sun/tools/native2ascii/resources/MsgNative2ascii.java.i
+data/src/share/classes/sun/reflect/annotation/TypeNotPresentExceptionProxy.java.i
 data/test/com/sun/servicetag/SvcTagClient.java.i
+data/src/share/classes/javax/print/event/PrintServiceAttributeEvent.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM856.java.i
-data/test/java/rmi/activation/ActivateFailedException/activateFails/ActivateFails_Stub.java.i
-data/src/share/classes/sun/tools/tree/ReturnStatement.java.i
+data/test/javax/script/GetInterfaceTest.java.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/UnloadInstrument.java.i
+data/make/tools/src/build/tools/javazic/Simple.java.i
 data/src/share/native/sun/java2d/opengl/OGLRenderQueue.c.i
-data/src/share/classes/java/lang/CharSequence.java.i
+data/src/linux/doc/man/ja/jinfo.1.i
 data/src/share/classes/sun/awt/image/ByteBandedRaster.java.i
 data/src/share/native/sun/font/layout/KhmerReordering.h.i
 data/src/share/classes/sun/io/ByteToCharCp1122.java.i
 data/test/java/util/Formatter/BasicDoubleObject.java.i
-data/test/tools/launcher/6842838/CreateBadJar.java.i
-data/src/share/classes/javax/management/monitor/StringMonitorMBean.java.i
+data/make/tools/src/build/tools/fontchecker/README.txt.i
+data/src/share/classes/sun/rmi/server/resources/rmid_es.properties.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/NullCalls.java.i
 data/src/share/classes/org/openjdk/internal/joptsimple/OptionArgumentConversionException.java.i
-data/test/com/sun/jdi/connect/spi/Foo.java.i
-data/src/windows/classes/sun/awt/windows/WCustomCursor.java.i
-data/src/share/classes/javax/swing/plaf/synth/ColorType.java.i
-data/test/org/openjdk/jigsaw/ConfigurationBuilder.java.i
+data/test/java/util/Locale/Bug4184873_yi.i
+data/src/solaris/native/java/io/io_util_md.h.i
+data/test/java/awt/font/NumericShaper/EqualsTest.java.i
+data/test/com/sun/jdi/RedefinePop.sh.i
+data/src/share/classes/sun/management/MemoryNotifInfoCompositeData.java.i
 data/src/share/classes/java/awt/image/renderable/ContextualRenderedImageFactory.java.i
-data/make/tools/CharsetMapping/ISO_8859_2.map.i
+data/src/share/classes/javax/print/attribute/standard/JobHoldUntil.java.i
 data/src/share/classes/java/awt/image/DataBufferFloat.java.i
 data/src/share/classes/javax/swing/table/DefaultTableCellRenderer.java.i
+data/src/share/classes/com/sun/security/sasl/ExternalClient.java.i
 data/src/share/classes/com/sun/crypto/provider/DESConstants.java.i
-data/src/solaris/native/sun/awt/medialib/vis_64.il.i
+data/test/com/sun/jdi/redefine/Different_RedefineSubTarg.java.i
 data/src/share/classes/sun/applet/AppletObjectInputStream.java.i
 data/src/share/classes/sun/awt/Symbol.java.i
 data/src/share/demo/applets/SimpleGraph/GraphApplet.java.i
 data/test/java/rmi/server/serverStackTrace/SuppressStackTraces.java.i
 data/test/java/rmi/activation/ActivationSystem/activeGroup/IdempotentActiveGroup.java.i
+data/src/share/demo/jfc/SwingApplet/SwingApplet.html.i
 data/test/java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html.i
 data/test/org/openjdk/jigsaw/cli/JpkgArgsTest.java.i
-data/src/share/classes/javax/management/relation/RelationServiceMBean.java.i
+data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiUtils.c.i
+data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptJConsolePlugin.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java.i
-data/src/share/classes/com/sun/jmx/namespace/RoutingConnectionProxy.java.i
+data/make/tools/src/build/tools/javazic/Zoneinfo.java.i
 data/src/share/classes/javax/crypto/ExemptionMechanism.java.i
-data/src/solaris/classes/sun/awt/X11/XMenuWindow.java.i
-data/src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java.i
+data/src/solaris/native/sun/awt/awt_PopupMenu.h.i
+data/src/windows/bin/java-rmi.c.i
+data/test/java/rmi/reliability/benchmark/bench/HtmlReporter.java.i
 data/test/java/util/ResourceBundle/Bug4257318Res.java.i
 data/src/share/classes/java/util/concurrent/LinkedBlockingDeque.java.i
-data/make/java/hpi/windows/Makefile.i
-data/src/share/native/sun/awt/medialib/mlib_image.h.i
+data/test/java/security/cert/CertPathBuilder/selfIssued/StatusLoopDependency.java.i
+data/test/com/sun/jdi/sde/MangleStepTest.java.i
 data/test/java/util/Formatter/BasicBoolean.java.i
 data/src/share/classes/sun/invoke/package-info.java.i
-data/src/share/back/ReferenceTypeImpl.h.i
+data/src/share/classes/javax/swing/DebugGraphicsFilter.java.i
+data/src/share/classes/java/lang/reflect/GenericSignatureFormatError.java.i
 data/src/share/classes/java/awt/font/TextLine.java.i
-data/src/share/classes/javax/swing/plaf/InsetsUIResource.java.i
-data/make/tools/CharsetMapping/IBM875.map.i
+data/test/java/beans/EventHandler/Test6277266.java.i
+data/src/share/classes/sun/misc/Sort.java.i
 data/test/javax/imageio/metadata/BooleanAttributes.java.i
 data/src/share/classes/javax/print/attribute/standard/MediaTray.java.i
 data/src/share/classes/com/sun/jdi/connect/package.html.i
 data/src/share/classes/com/sun/crypto/provider/PKCS12PBECipherCore.java.i
 data/test/java/lang/ProcessBuilder/Zombies.java.i
-data/test/javax/management/mxbean/RandomMXBeanTest.java.i
+data/src/share/classes/java/lang/management/MemoryManagerMXBean.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-amd64/libsoftokn3.so.d
-data/src/share/classes/sun/io/MalformedInputException.java.i
-data/src/share/classes/com/sun/jmx/snmp/agent/SnmpRequestTree.java.i
-data/src/share/back/ThreadReferenceImpl.c.i
-data/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java.i
+data/src/share/back/eventHandlerRestricted.h.i
+data/src/share/classes/sun/tools/jconsole/inspector/XMBean.java.i
+data/test/sun/nio/cs/OLD/MS950_OLD.java.i
+data/test/java/text/BreakIterator/ExceptionTest.java.i
 data/src/windows/native/sun/jkernel/DownloadHelper.cpp.i
 data/src/share/classes/javax/management/namespace/JMXNamespacePermission.java.i
 data/test/sun/security/provider/PolicyParser/ExtDirsA/a.jar.i
+data/src/share/classes/sun/applet/AppletSecurityException.java.i
 data/src/share/classes/sun/security/ssl/SSLServerSocketImpl.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmThreadInstanceTableMeta.java.i
 data/test/java/io/Serializable/expectedStackTrace/ExpectedStackTrace.java.i
-data/src/solaris/classes/sun/java2d/opengl/GLXVolatileSurfaceManager.java.i
+data/test/java/util/zip/FlaterTest.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBuffer/Load.java.i
-data/src/solaris/native/sun/jdga/dgalock.c.i
+data/src/share/classes/com/sun/media/sound/SoftLimiter.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-amd64/libnssckbi.so.i
 data/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageWriterSpi.java.i
 data/test/javax/swing/JLabel/6596966/bug6596966.java.i
-data/src/share/classes/sun/io/ByteToCharCp1098.java.i
-data/src/share/modules/jdk/module-info.java.i
+data/src/share/classes/com/sun/tools/jdi/BooleanValueImpl.java.i
+data/test/sun/net/www/protocol/http/B6660405.java.i
 data/test/sun/security/smartcardio/TestChannel.java.i
 data/test/sun/management/jmxremote/bootstrap/management_ssltest11_ok.properties.in.i
-data/src/share/classes/javax/sound/midi/Soundbank.java.i
+data/src/share/classes/sun/io/CharToByteConverter.java.i
+data/make/netbeans/j2se/nbproject/project.xml.i
 data/test/sun/security/util/Resources/Format.policy.i
 data/src/share/classes/java/awt/datatransfer/SystemFlavorMap.java.i
-data/src/share/classes/javax/crypto/interfaces/DHPublicKey.java.i
+data/src/share/classes/javax/security/auth/login/AppConfigurationEntry.java.i
 data/test/sun/net/www/protocol/jar/jarbug/etc/jar1/jar1/bundle.properties.i
 data/test/java/io/Serializable/accessConstants/AccessConstants.java.i
 data/test/java/io/File/IsHidden.java.i
 data/src/solaris/native/com/sun/security/auth/module/Solaris.c.i
-data/src/share/classes/sun/rmi/server/WeakClassHashMap.java.i
+data/src/windows/native/sun/windows/awt_TextField.h.i
+data/test/java/lang/management/ThreadMXBean/AllThreadIds.java.i
 data/test/java/lang/System/System.policy.i
 data/src/share/classes/javax/swing/plaf/multi/MultiTabbedPaneUI.java.i
 data/test/java/security/cert/CertificateFactory/openssl/OpenSSLCert.java.i
 data/test/java/awt/EventQueue/6638195/bug6638195.java.i
 data/src/share/classes/sun/tools/tree/PostDecExpression.java.i
-data/test/java/io/Serializable/enum/ignoreSerializationMethods/Test.java.i
+data/src/share/classes/javax/swing/plaf/metal/MetalDesktopIconUI.java.i
 data/src/windows/native/sun/io/Win32ErrorMode.c.i
 data/src/share/classes/com/sun/jdi/event/MonitorContendedEnterEvent.java.i
-data/src/share/classes/javax/naming/NamingEnumeration.java.i
+data/test/java/awt/im/4959409/bug4959409.html.i
 data/test/org/openjdk/jigsaw/cli/ee-cert.pem.i
-data/src/share/classes/com/sun/imageio/plugins/jpeg/DHTMarkerSegment.java.i
-data/src/share/native/java/util/zip/zlib-1.1.3/zlib.h.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/package.html.i
+data/test/sun/net/www/ParseUtil_6274990.java.i
 data/src/share/classes/java/nio/file/spi/FileSystemProvider.java.i
 data/src/share/classes/sun/awt/datatransfer/SunClipboard.java.i
 data/.hgtags.i
 data/src/windows/native/sun/nio/ch/FileChannelImpl.c.i
 data/src/share/classes/javax/management/relation/InvalidRoleInfoException.java.i
 data/src/share/classes/sun/security/util/PermissionFactory.java.i
-data/test/sun/security/util/DerOutputStream/LocaleInTime.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/Set8BitExtensionBuffer.java.i
+data/make/sun/awt/mapfile-mawt-vers.i
+data/test/java/nio/file/Path/PassThroughFileSystem.java.i
 data/src/share/classes/sun/security/util/ObjectIdentifier.java.i
 data/src/share/classes/java/lang/ThreadGroup.java.i
 data/test/sun/security/provider/PolicyParser/ExtDirsChange.policy.i
-data/src/windows/back/util_md.h.i
+data/test/sun/net/www/http/HttpClient/ProxyTest.java.i
 data/src/share/classes/java/awt/PrintJob.java.i
 data/test/javax/security/auth/login/Configuration/ConfigFileWithBlank.java.i
 data/test/sun/rmi/runtime/Log/6409194/NoConsoleOutput.java.i
-data/test/java/lang/StringBuffer/AppendSB.java.i
-data/src/share/classes/com/sun/rowset/RowSetFactoryImpl.java.i
-data/test/java/net/SocketPermission/Ctor.java.i
+data/test/java/lang/Runtime/exec/ExecWithDir.java.i
+data/test/org/openjdk/jigsaw/cli/ImportPrivateKey.java.i
 data/test/java/awt/im/4490692/bug4490692.html.i
 data/test/sun/java2d/XRenderBlitsTest.java.i
 data/src/share/classes/sun/reflect/UnsafeStaticIntegerFieldAccessorImpl.java.i
-data/src/share/classes/java/lang/AssertionStatusDirectives.java.i
+data/test/java/nio/charset/RemovingSunIO/SunioAlias.java.i
 data/make/common/Release-embedded.gmk.i
 data/src/share/classes/javax/swing/plaf/basic/package.html.i
-data/src/share/classes/java/security/acl/AclNotFoundException.java.i
+data/test/sun/tools/jrunscript/dash-f.out.i
 data/test/sun/security/provider/certpath/SunCertPathBuilderExceptionTest.java.i
-data/src/solaris/classes/sun/awt/motif/X11GB18030_1.java.i
-data/test/com/sun/security/auth/login/ConfigFile/PropertyExpansion.config.i
-data/src/share/classes/com/sun/jndi/rmi/registry/RemoteReference.java.i
-data/src/share/classes/sun/dyn/util/VerifyAccess.java.i
+data/src/windows/native/sun/java2d/d3d/D3DRuntimeTest.h.i
+data/test/java/lang/instrument/PremainClass/PremainClassTest.sh.i
+data/test/java/util/ResourceBundle/Bug4083270Test.properties.i
+data/src/share/demo/nbproject/jfc/Font2DTest/build.properties.i
+data/make/tools/CharsetMapping/MS932.map.i
+data/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java.i
+data/src/share/classes/javax/swing/CellRendererPane.java.i
 data/test/sun/tools/jhat/HelloWorld.java.i
 data/test/java/util/concurrent/ConcurrentHashMap/MapCheck.java.i
+data/src/windows/hpi/src/sys_api_md.c.i
 data/test/java/rmi/server/RMIClassLoader/getClassAnnotation/NullClass.java.i
 data/src/share/demo/jvmti/java_crw_demo/README.txt.i
-data/test/java/util/zip/ZipFile/CopyJar.java.i
-data/make/tools/CharsetMapping/IBM1026.map.i
-data/src/share/classes/java/nio/channels/ReadableByteChannel.java.i
+data/src/share/classes/com/sun/jdi/event/ThreadStartEvent.java.i
+data/src/share/native/java/lang/fdlibm/src/w_sinh.c.i
+data/src/solaris/native/sun/awt/awt_dnd.h.i
 data/src/share/classes/sun/rmi/runtime/NewThreadAction.java.i
-data/src/solaris/doc/sun/man/man1/jdb.1.i
-data/src/windows/native/sun/windows/GDIHashtable.cpp.i
+data/test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_mix.java.i
+data/src/windows/native/sun/windows/awt_TextComponent.cpp.i
 data/src/share/native/sun/awt/medialib/mlib_ImageDivTables.c.i
 data/test/java/security/KeyRep/Serial.policy.i
-data/src/share/classes/java/dyn/package-info.java.i
+data/src/share/classes/com/sun/jndi/cosnaming/CorbanameUrl.java.i
 data/src/share/classes/java/util/SortedMap.java.i
-data/test/java/rmi/Naming/UnderscoreHost_Stub.java.i
+data/src/share/classes/javax/net/ssl/package.html.i
 data/test/java/io/FileInputStream/Available.java.i
 data/src/windows/classes/sun/security/mscapi/RSASignature.java.i
-data/src/share/classes/com/sun/jdi/InvalidStackFrameException.java.i
+data/test/java/io/Serializable/evolution/AddedSuperClass/README.i
 data/test/java/rmi/server/RMIClassLoader/spi/ContextInsulation.java.i
-data/test/javax/management/MBeanServer/AttributeListMapTest.java.i
-data/test/sun/net/www/http/HttpClient/ImplicitFileName.java.i
-data/src/share/classes/com/sun/tools/hat/MANIFEST.mf.i
-data/src/share/classes/javax/management/namespace/JMXNamespace.java.i
+data/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java.i
+data/test/sun/security/ec/keystore.i
 data/src/share/classes/sun/print/resources/serviceui_es.properties.i
 data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextRenderTests.java.i
 data/src/share/native/sun/awt/image/jpeg/jdct.h.i
+data/src/share/classes/sun/util/logging/resources/logging_sv.properties.i
+data/src/windows/native/sun/java2d/d3d/D3DTextRenderer.cpp.i
 data/test/com/sun/jdi/InvokeHangTest.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_CN.properties.i
-data/test/java/lang/reflect/Proxy/returnTypes/GetCloneable.java.i
-data/test/java/nio/MappedByteBuffer/Force.java.i
+data/test/java/util/concurrent/FutureTask/LoopHelpers.java.i
+data/src/share/native/sun/security/ec/ECC_JNI.cpp.i
 data/src/share/classes/sun/nio/cs/ext/IBM1026.java.i
 data/test/sun/tools/jps/jps-v_Output1.awk.i
 data/src/share/classes/sun/print/BackgroundLookupListener.java.i
 data/src/share/classes/sun/tools/java/ClassType.java.i
-data/test/java/io/File/Cons.java.i
-data/test/TEST.ROOT.i
+data/test/java/lang/instrument/RedefineMethodAddInvokeTarget_1.java.i
+data/test/javax/management/remote/mandatory/loading/UserClassLoaderTest.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/MonitorStructureException.java.i
-data/src/linux/doc/man/orbd.1.i
+data/test/javax/script/VersionTest.java.i
 data/src/share/classes/com/sun/tools/hat/internal/model/JavaStatic.java.i
 data/src/share/demo/jfc/Metalworks/resources/MyTheme.theme.i
-data/test/java/nio/channels/Channels/ShortWrite.java.i
+data/test/java/nio/channels/Channels/Write.java.i
 data/test/java/net/Authenticator/B4933582.java.i
 data/src/share/classes/sun/print/resources/serviceui_ja.properties.i
-data/test/java/awt/Frame/ShownOnPack/ShownOnPack.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/MyKeyManager.java.i
 data/src/share/classes/sun/security/provider/certpath/URICertStore.java.i
 data/test/java/net/URL/RelativeURL.java.i
+data/test/javax/management/remote/mandatory/connectorServer/StandardForwardersTest.java.i
 data/src/share/classes/sun/security/krb5/internal/util/KrbDataInputStream.java.i
+data/test/sun/awt/image/DrawByteBinary.java.i
 data/src/share/classes/com/sun/crypto/provider/HmacMD5KeyGenerator.java.i
-data/test/sun/rmi/rmic/newrmic/equivalence/MyObject.java.i
+data/src/share/classes/sun/text/resources/CollationData_uk.java.i
 data/src/solaris/classes/sun/nio/fs/UnixDirectoryStream.java.i
+data/src/share/classes/java/lang/annotation/Target.java.i
 data/test/java/lang/Long/GetLong.java.i
-data/test/com/sun/security/auth/CreateLdapPrincipals.java.i
+data/test/java/beans/Introspector/Test4948761.java.i
 data/src/share/demo/jvmti/minst/Minst.java.i
 data/src/share/native/sun/awt/image/cvutils/img_output8_16_32.h.i
+data/src/share/classes/javax/swing/filechooser/FileFilter.java.i
+data/src/share/classes/sun/rmi/rmic/resources/rmic.properties.i
 data/test/sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java.i
-data/src/share/classes/javax/naming/ldap/PagedResultsResponseControl.java.i
+data/test/javax/script/ProviderTest.sh.i
 data/test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh.i
-data/src/share/classes/javax/swing/plaf/basic/BasicGraphicsUtils.java.i
+data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/OriginServer.java.i
 data/src/share/classes/sun/java2d/pipe/PixelFillPipe.java.i
 data/test/java/awt/dnd/DnDFileGroupDescriptor/DnDTarget.java.i
 data/src/share/native/sun/awt/image/cvutils/img_output32.h.i
-data/src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java.i
+data/test/java/beans/Performance/TestVetoableChangeSupport.java.i
 data/src/share/classes/sun/nio/cs/UnicodeDecoder.java.i
 data/make/common/shared/Compiler-sun.gmk.i
 data/src/share/classes/sun/text/resources/CollationData_zh_TW.java.i
 data/src/windows/native/sun/security/mscapi/security.cpp.i
 data/test/java/util/Formatter/Flush.java.i
-data/src/share/classes/javax/swing/plaf/LabelUI.java.i
+data/src/share/classes/javax/swing/plaf/metal/icons/ocean/minimize.gif.i
 data/test/java/beans/PropertyEditor/TestShortTypeNull.java.i
 data/src/share/classes/sun/swing/SwingLazyValue.java.i
 data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/run_tests.sh.i
 data/test/start-Xvfb.sh.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/ObjTreeCalls.java.i
-data/src/share/classes/com/sun/imageio/plugins/png/PNGMetadataFormatResources.java.i
+data/src/windows/native/sun/windows/awt_Checkbox.h.i
 data/src/windows/classes/sun/awt/windows/WChoicePeer.java.i
-data/src/share/classes/java/security/cert/PKIXReason.java.i
-data/src/windows/classes/sun/awt/windows/WEmbeddedFrame.java.i
+data/test/java/util/logging/SimpleFormatterFormat.java.i
+data/test/javax/management/notification/FilterExceptionTest.java.i
 data/src/share/classes/sun/swing/icon/SortArrowIcon.java.i
-data/make/tools/CharsetMapping/IBM424.map.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/LoadAllInstruments.java.i
 data/test/com/sun/net/httpserver/bugs/B6339483.java.i
-data/src/share/classes/javax/accessibility/AccessibleExtendedText.java.i
+data/test/com/sun/management/ThreadMXBean/ThreadAllocatedMemoryArray.java.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_RSA_PKCS_PSS_PARAMS.java.i
 data/src/share/classes/javax/swing/ClientPropertyKey.java.i
 data/test/javax/swing/Security/6938813/bug6938813.java.i
 data/src/share/native/java/net/Inet4Address.c.i
@@ -17077,14 +16949,15 @@ data/src/windows/native/sun/windows/awt_Mlib.h.i
 data/src/share/classes/javax/management/openmbean/CompositeDataSupport.java.i
 data/test/java/lang/instrument/SimpleIdentityTransformer.java.i
 data/make/mkdemo/applets/CardTest/Makefile.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/SignatureProperties.java.i
 data/test/sun/tools/jhat/README.TXT.i
 data/src/share/native/sun/awt/image/jpeg/jcsample.c.i
 data/src/share/classes/java/sql/Blob.java.i
-data/src/share/classes/sun/security/jgss/krb5/SubjectComber.java.i
+data/test/java/lang/Class/forName/Z.java.i
 data/src/share/classes/javax/sound/midi/spi/MidiDeviceProvider.java.i
 data/src/share/classes/com/sun/tools/jdi/SunCommandLineLauncher.java.i
 data/src/share/classes/com/sun/net/ssl/SSLSecurity.java.i
-data/test/java/beans/PropertyEditor/TestFontClass.java.i
+data/src/share/back/ReferenceTypeImpl.c.i
 data/test/java/util/concurrent/Semaphore/PermitOverflow.java.i
 data/src/share/classes/javax/sql/XADataSource.java.i
 data/test/java/math/BigDecimal/DivideTests.java.i
@@ -17094,16 +16967,17 @@ data/src/share/classes/sun/io/CharToByteCp921.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBuffer/NewModelByteBufferFileLongLong.java.i
 data/test/java/nio/channels/Selector/Wakeup.java.i
 data/test/javax/management/remote/mandatory/provider/ProviderTest.java.i
-data/test/sun/tools/jps/jps-Vvml_Output1.awk.i
+data/src/share/classes/java/lang/doc-files/capsigma.gif.i
 data/src/share/native/sun/java2d/loops/Index12Gray.c.i
 data/test/java/util/zip/ZipFile/Assortment.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageAffine_BC_D64.c.i
-data/src/share/classes/javax/swing/text/MaskFormatter.java.i
-data/src/share/classes/sun/management/snmp/AdaptorBootstrap.java.i
-data/src/share/classes/com/sun/net/ssl/SSLPermission.java.i
-data/src/solaris/javavm/export/jni_md.h.i
+data/src/share/classes/sun/tools/jconsole/LocalVirtualMachine.java.i
+data/src/share/classes/sun/java2d/pipe/hw/AccelSurface.java.i
+data/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java.i
+data/src/share/demo/jfc/Notepad/resources/copy.gif.i
 data/src/share/classes/sun/io/ByteToCharCp937.java.i
 data/make/netbeans/jarzip/build.properties.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/J2DBench.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties.i
 data/test/com/sun/jdi/AnyDebuggeeTest.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemPoolCollectThreshdSupport.java.i
@@ -17113,77 +16987,82 @@ data/src/share/demo/jvmti/hprof/hprof_string.h.i
 data/src/share/classes/java/lang/Character.java.i
 data/src/share/classes/java/awt/color/CMMException.java.i
 data/test/javax/management/namespace/JMXRemoteNamespaceTest.java.i
-data/src/share/classes/com/sun/jmx/snmp/internal/SnmpIncomingResponse.java.i
+data/test/java/beans/XMLDecoder/spec/TestInt.java.i
+data/src/share/classes/java/awt/font/GlyphMetrics.java.i
 data/test/java/security/cert/GetInstance.java.i
 data/src/share/classes/java/security/cert/CertPathBuilder.java.i
-data/src/share/classes/org/openjdk/internal/joptsimple/internal/Column.java.i
+data/src/share/classes/sun/jvmstat/monitor/MonitoredVmUtil.java.i
 data/test/java/io/pathNames/win32/BadDriveLetter.java.i
 data/test/java/beans/PropertyEditor/TestFloatClass.java.i
 data/test/java/security/SecureClassLoader/TestClass.java.i
 data/make/tools/CharsetMapping/IBM424.c2b.i
-data/src/share/classes/sun/security/ssl/Alerts.java.i
+data/make/tools/GenerateCharacter/CharacterDataUndefined.java.template.i
 data/test/sun/nio/cs/TestIBM1364.java.i
-data/src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolverException.java.i
 data/src/share/classes/java/awt/image/DataBufferInt.java.i
-data/test/java/util/zip/ZipFile/ReleaseInflater.java.i
 data/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java.i
-data/src/solaris/native/sun/java2d/loops/mlib_v_ImageConstXor.c.i
-data/src/share/classes/sun/java2d/pipe/BufferedOpCodes.java.i
-data/test/java/net/URLConnection/UNCTest.java.i
+data/src/share/classes/com/sun/tools/jdi/VMListener.java.i
+data/test/sun/management/HotspotClassLoadingMBean/GetClassInitializationTime.java.i
+data/test/java/nio/channels/FileChannel/MapAssertions.java.i
 data/src/share/classes/sun/io/CharToByteISO8859_6.java.i
 data/make/netbeans/common/java-data-native.ent.i
-data/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java.i
+data/src/share/classes/sun/tools/tree/DivideExpression.java.i
 data/src/share/native/sun/awt/image/cvutils/img_anycm.h.i
-data/src/share/classes/sun/security/krb5/JavaxSecurityAuthKerberosAccess.java.i
-data/src/share/classes/java/security/KeyException.java.i
+data/src/windows/hpi/src/linker_md.c.i
+data/src/share/classes/sun/text/bidi/BidiLine.java.i
+data/src/share/classes/sun/jvmstat/monitor/LongMonitor.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_bg.properties.i
-data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/CloseTest.java.i
+data/src/share/classes/sun/tools/jconsole/inspector/TableSorter.java.i
 data/test/java/io/charStreams/ABCReader.java.i
 data/make/tools/CharsetMapping/IBM285.c2b.i
 data/test/sun/tools/jps/jps-V_Output2.awk.i
-data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKPainter.java.i
+data/test/java/lang/management/CompositeData/ThreadInfoCompositeData.java.i
 data/src/share/classes/sun/util/resources/CalendarData_hr.properties.i
-data/test/sun/security/util/DerInputBuffer/BigInteger0.java.i
 data/src/share/classes/javax/print/MultiDocPrintService.java.i
-data/make/sun/javazic/tzdata/antarctica.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/schema/xmldsig-core-schema.dtd.i
-data/test/java/net/MulticastSocket/TestInterfaces.java.i
+data/src/share/classes/sun/java2d/DefaultDisposerRecord.java.i
+data/src/windows/classes/sun/java2d/windows/WinVolatileSurfaceManager.java.i
+data/make/sun/dcpr/mapfile-vers.i
 data/src/share/classes/java/util/concurrent/AbstractExecutorService.java.i
-data/src/share/classes/com/sun/jndi/dns/Header.java.i
+data/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/NodeFilter.java.i
-data/test/java/io/FileOutputStream/AtomicAppend.java.i
 data/test/java/lang/instrument/RedefineMethodAddInvokeAgent.java.i
 data/src/solaris/doc/sun/man/man1/ja/jps.1.i
 data/test/java/net/DatagramSocket/B6411513.java.i
 data/test/java/lang/instrument/ilib/Injector.java.i
+data/src/windows/native/common/jdk_util_md.h.i
 data/src/share/classes/java/dyn/BoundMethodHandle.java.i
 data/src/share/classes/sun/management/counter/perf/LongCounterSnapshot.java.i
+data/test/java/security/ProtectionDomain/RecursionDebug.java.i
 data/test/javax/security/auth/Subject/Generic.java.i
 data/test/javax/management/ObjectName/SerialCompatTest.java.i
 data/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java.i
 data/src/share/classes/sun/tools/tree/RemainderExpression.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/IdResolver.java.i
+data/src/share/classes/sun/java2d/pipe/LoopBasedPipe.java.i
 data/test/sun/security/ssl/sanity/pluggability/MySSLServerSocketFacImpl.java.i
+data/test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh.i
+data/test/java/beans/Introspector/6380849/infos/SecondBeanBeanInfo.java.i
 data/src/solaris/native/sun/java2d/loops/vis_IntRgbx.c.i
 data/test/java/util/Formattable/StockName.java.i
-data/test/javax/management/generified/ListTypeCheckTest.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_el_GR.properties.i
 data/test/sun/management/AgentCheckTest.java.i
-data/src/share/native/sun/font/sunFont.c.i
-data/src/share/classes/sun/reflect/generics/scope/MethodScope.java.i
-data/src/share/native/sun/java2d/opengl/OGLContext.c.i
+data/src/share/classes/sun/management/counter/perf/PerfLongCounter.java.i
+data/test/com/sun/jdi/SourceNameFilterTest.java.i
+data/test/javax/management/namespace/JMXRemoteTargetNamespace.java.i
+data/make/netbeans/common/architectures/name-Linux.properties.i
+data/src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp.i
 data/test/javax/management/remote/mandatory/version/ImplVersionTest.java.i
 data/make/com/sun/nio/sctp/mapfile-vers.i
-data/test/java/awt/Dialog/ValidateOnShow/ValidateOnShow.java.i
+data/make/tools/CharsetMapping/MacRomania.map.i
 data/make/javax/crypto/policy/limited/exempt_local.policy.i
 data/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java.i
-data/test/java/net/Socket/setReuseAddress/Restart.java.i
-data/test/com/sun/security/jgss/InquireSecContextPermissionCheck.java.i
 data/src/share/classes/com/sun/jndi/ldap/LdapClientFactory.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CheckMethods.java.i
 data/test/java/lang/Double/ToString.java.i
 data/test/java/beans/PropertyEditor/TestBooleanClassValue.java.i
 data/src/share/classes/java/awt/image/renderable/RenderableImageProducer.java.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_ATTRIBUTE.java.i
 data/test/java/nio/file/attribute/FileStoreAttributeView/Basic.java.i
+data/test/java/lang/management/ThreadMXBean/Utils.java.i
 data/test/javax/print/PrintSE/PrintSE.java.i
 data/test/java/net/ResponseCache/getResponseCode.java.i
 data/test/com/sun/jdi/RedefineIntConstantToLong.sh.i
@@ -17191,7 +17070,7 @@ data/src/solaris/classes/sun/tools/attach/LinuxAttachProvider.java.i
 data/src/windows/classes/sun/net/www/protocol/http/NTLMAuthSequence.java.i
 data/test/java/io/Serializable/readObjectNoData/Write.java.i
 data/src/share/classes/sun/tools/tree/BinaryLogicalExpression.java.i
-data/test/javax/print/PrintSE/PrintSE.sh.i
+data/make/sun/awt/FILES_export_windows.gmk.i
 data/test/java/net/Socket/FDClose.java.i
 data/src/share/classes/javax/management/openmbean/OpenMBeanConstructorInfoSupport.java.i
 data/test/java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval.java.i
@@ -17200,28 +17079,29 @@ data/make/java/verify/reorder-sparc.i
 data/src/share/classes/java/lang/management/MemoryType.java.i
 data/test/sun/security/x509/AlgorithmId/AlgorithmIdEqualsHashCode.java.i
 data/src/share/sample/nio/server/MalformedRequestException.java.i
-data/src/share/classes/java/util/concurrent/locks/package-info.java.i
-data/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java.i
-data/src/share/native/sun/font/layout/LookupProcessor.h.i
+data/src/share/classes/com/sun/media/sound/DLSInstrument.java.i
+data/test/java/util/PluggableLocale/ClasspathTest.java.i
+data/test/javax/management/remote/mandatory/passwordAuthenticator/jmxremote.password.i
 data/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/MyActivationGroupImpl.java.i
-data/src/share/classes/java/nio/file/attribute/DosFileAttributeView.java.i
+data/src/share/classes/javax/swing/plaf/ListUI.java.i
 data/make/sun/font/t2k/FILES_c.gmk.i
 data/src/share/demo/jfc/CodePointIM/resources/codepoint_ja.properties.i
+data/src/share/classes/sun/rmi/server/resources/rmid_zh_TW.properties.i
 data/test/javax/sound/midi/Gervill/SoftSincResampler/Interpolate.java.i
 data/test/java/awt/Toolkit/SecurityTest/SecurityTest2.java.i
-data/test/java/beans/XMLEncoder/javax_swing_border_TitledBorder.java.i
+data/src/share/classes/sun/nio/ch/AllocatedNativeObject.java.i
 data/src/share/classes/sun/awt/InputMethodSupport.java.i
 data/test/java/security/Policy/Root/Root.policy.i
-data/src/share/classes/sun/util/resources/CalendarData_fi.properties.i
-data/make/templates/gpl-cp-header.i
+data/test/sun/security/pkcs11/nss/lib/linux-amd64/libsoftokn3.so.d
+data/src/share/classes/com/sun/tools/hat/README.txt.i
 data/src/share/classes/javax/swing/tree/TreeModel.java.i
 data/test/java/beans/PropertyEditor/TestLongTypeValue.java.i
 data/test/java/util/PriorityQueue/ForgetMeNot.java.i
-data/src/share/native/sun/awt/libpng/pngconf.h.i
-data/src/share/native/sun/java2d/loops/ThreeByteBgr.c.i
-data/src/share/classes/com/sun/media/sound/StandardMidiFileWriter.java.i
+data/src/share/classes/sun/reflect/UnsafeQualifiedStaticShortFieldAccessorImpl.java.i
+data/test/sun/security/krb5/ktab/HighestKvno.java.i
+data/src/windows/native/sun/windows/awt_Window.h.i
 data/test/sun/security/krb5/auto/BadKdc4.java.i
-data/make/java/zip/Makefile.i
+data/make/tools/src/build/tools/jdwpgen/TypeNode.java.i
 data/test/java/rmi/server/RMIClassLoader/useGetURLs/security.policy.i
 data/src/share/classes/org/openjdk/internal/joptsimple/internal/Classes.java.i
 data/src/share/classes/java/util/prefs/NodeChangeEvent.java.i
@@ -17230,45 +17110,44 @@ data/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/CompressCons
 data/make/java/nio/FILES_c.gmk.i
 data/test/sun/management/jmxremote/bootstrap/RmiSslNoKeyStoreTest.sh.i
 data/src/share/classes/javax/print/attribute/standard/RequestingUserName.java.i
-data/test/java/nio/channels/SocketChannel/CloseTimeoutChannel.java.i
+data/test/java/rmi/server/RMIClassLoader/useGetURLs/Dummy.java.i
 data/test/sun/security/provider/PolicyParser/PrincipalExpansionError.java.i
 data/make/java/nio/mapfile-linux.i
 data/test/javax/sound/midi/Gervill/ModelByteBuffer/GetInputStream.java.i
-data/test/java/rmi/server/getRemoteClass/GetRemoteClass.java.i
+data/src/share/classes/javax/swing/text/html/parser/Element.java.i
 data/test/java/nio/channels/Selector/SelectWrite.java.i
-data/src/share/classes/sun/security/provider/certpath/IndexedCollectionCertStore.java.i
-data/src/share/classes/java/awt/geom/AffineTransform.java.i
-data/src/solaris/classes/sun/awt/motif/X11CNS11643P2.java.i
+data/src/share/classes/sun/security/krb5/internal/KrbApErrException.java.i
+data/src/windows/native/sun/jkernel/stdafx.h.i
 data/test/sun/security/x509/AVA/EmptyValue.java.i
 data/src/share/classes/java/util/concurrent/BlockingDeque.java.i
 data/src/windows/classes/sun/awt/windows/WFontConfiguration.java.i
 data/src/share/classes/java/util/concurrent/CountDownLatch.java.i
 data/src/share/demo/nbproject/jfc/TableExample/build.xml.i
 data/test/java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java.i
-data/test/demo/jvmti/Hello.java.i
+data/src/share/classes/sun/reflect/generics/scope/ClassScope.java.i
 data/src/share/classes/javax/swing/event/MenuKeyEvent.java.i
 data/src/share/classes/com/sun/jndi/ldap/DigestClientId.java.i
 data/test/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java.i
+data/src/share/classes/java/util/concurrent/locks/package-info.java.i
 data/src/share/classes/javax/swing/SingleSelectionModel.java.i
 data/make/com/sun/java/pack/mapfile-vers-unpack200.i
-data/src/windows/native/sun/windows/awt_InputTextInfor.cpp.i
 data/test/java/util/PluggableLocale/providersrc/DateFormatSymbolsProviderImpl.java.i
 data/src/solaris/native/java/util/TimeZone_md.h.i
 data/test/com/sun/servicetag/servicetag1.properties.i
-data/test/com/sun/jdi/CatchPatternTest.sh.i
+data/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java.i
 data/test/com/sun/jdi/RedefineMulti.sh.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/PerfDataFile.java.i
-data/src/share/native/sun/font/layout/KernTable.h.i
+data/src/share/native/sun/font/layout/LayoutEngine.cpp.i
 data/src/share/classes/sun/reflect/generics/scope/DummyScope.java.i
 data/src/share/native/java/util/zip/Deflater.c.i
 data/src/share/classes/sun/java2d/loops/DrawPath.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpPduBulkType.java.i
 data/test/java/io/File/DeleteOnExitNPE.java.i
-data/test/com/sun/jdi/ShellScaffold.sh.i
+data/src/share/classes/com/sun/media/sound/SoftSynthesizer.java.i
 data/src/share/classes/java/security/spec/InvalidKeySpecException.java.i
-data/test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java.i
+data/src/share/classes/javax/security/auth/x500/package.html.i
 data/test/java/util/jar/TestExtra.java.i
-data/src/share/classes/javax/security/sasl/SaslException.java.i
+data/test/java/util/Locale/Bug4184873_id.i
 data/src/share/classes/sun/security/provider/certpath/ReverseState.java.i
 data/src/share/classes/com/sun/tools/jdi/resources/jdi_zh_CN.properties.i
 data/src/share/classes/java/util/Timer.java.i
@@ -17277,20 +17156,19 @@ data/src/share/classes/com/sun/media/sound/SoftProcess.java.i
 data/test/javax/management/openmbean/TabularDataOrderTest.java.i
 data/src/share/classes/javax/print/MultiDocPrintJob.java.i
 data/test/tools/launcher/6842838/Test6842838.sh.i
-data/src/share/sample/vm/clr-jvm/README.txt.i
 data/src/share/lib/security/cacerts.i
-data/src/share/classes/sun/rmi/server/Util.java.i
+data/src/solaris/native/sun/java2d/x11/X11FontScaler_md.c.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_fr.properties.i
 data/test/java/nio/Buffer/CopyDirectMemory.java.i
 data/make/tools/src/build/tools/generatenimbus/Paint.java.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmRTClassPathEntryMeta.java.i
+data/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java.i
 data/src/solaris/javavm/export/jvm_md.h.i
-data/test/sun/security/provider/PolicyParser/PrincipalExpansionError.sh.i
-data/test/java/io/Serializable/backRefCNFException/Read.java.i
+data/src/share/classes/javax/swing/Scrollable.java.i
+data/test/java/lang/Runtime/shutdown/ShutdownHooks.sh.i
 data/src/share/classes/java/lang/module/UnsupportedElementTypeException.java.i
 data/test/java/util/ResourceBundle/Bug6190861Data.properties.i
 data/src/share/classes/com/sun/pept/protocol/Interceptors.java.i
-data/test/javax/management/timer/StartTest.java.i
+data/src/share/classes/java/lang/doc-files/upsilon.gif.i
 data/src/share/classes/sun/io/ByteToCharJISAutoDetect.java.i
 data/src/share/classes/sun/io/ByteToCharJIS0212.java.i
 data/test/javax/management/namespace/VirtualNamespaceQueryTest.java.i
@@ -17298,162 +17176,170 @@ data/src/share/classes/javax/naming/ldap/InitialLdapContext.java.i
 data/test/javax/management/monitor/CounterMonitorTest.java.i
 data/src/share/native/sun/management/HotspotThread.c.i
 data/src/windows/native/sun/windows/awt_DesktopProperties.h.i
-data/src/solaris/classes/sun/awt/motif/X11GB2312.java.i
+data/test/java/io/RandomAccessFile/OpenSync.java.i
 data/test/com/sun/crypto/provider/Mac/HmacPBESHA1.java.i
 data/src/share/classes/javax/management/ObjectName.java.i
 data/src/share/native/java/lang/fdlibm/src/s_significand.c.i
 data/src/share/classes/sun/misc/Lock.java.i
-data/test/java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java.i
-data/test/java/awt/im/JTextFieldTest.html.i
-data/src/share/classes/com/sun/pept/presentation/Tie.java.i
-data/src/share/classes/javax/swing/tree/AbstractLayoutCache.java.i
+data/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserConstants.java.i
+data/test/java/util/zip/ZipFile/DeleteTempJar.java.i
+data/src/share/classes/sun/util/logging/resources/logging_zh_TW.properties.i
+data/src/share/sample/scripting/scriptpad/nbproject/netbeans-targets.xml.i
 data/src/share/classes/sun/io/CharToByteBig5_HKSCS.java.i
-data/src/share/classes/com/sun/media/sound/AiffFileReader.java.i
+data/src/share/classes/sun/text/resources/CollationData_fr.java.i
 data/src/share/classes/sun/security/util/Resources_it.java.i
 data/make/mksample/Makefile.i
-data/src/share/classes/sun/nio/fs/DynamicFileAttributeView.java.i
+data/src/share/classes/sun/io/ByteToCharCp1147.java.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuMouseListener.java.i
 data/make/netbeans/jmx/build.properties.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/SignatureAlgorithmSpi.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS16U8Func.c.i
 data/src/share/classes/javax/swing/plaf/BorderUIResource.java.i
 data/src/share/classes/sun/io/ByteToCharISCII91.java.i
-data/src/share/sample/nio/file/Xdd.java.i
+data/test/javax/management/MBeanInfo/SerializationTest.java.i
 data/make/tools/CharsetMapping/IBM1122.c2b.i
 data/test/java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot.java.i
 data/make/tools/swing-beans/beaninfo/images/JPasswordFieldMono16.gif.i
 data/src/windows/transport/socket/socket_md.c.i
-data/test/javax/imageio/CachePremissionsTest/w.policy.i
+data/src/share/classes/java/beans/Expression.java.i
 data/test/java/lang/management/ThreadMXBean/SynchronizerDeadlock.java.i
-data/src/share/classes/sun/text/resources/CollationData_ko.java.i
+data/test/java/io/PipedInputStream/CloseAndAvailableRC.java.i
 data/src/share/native/java/lang/ref/Finalizer.c.i
-data/src/share/classes/java/nio/ByteOrder.java.i
-data/src/share/classes/com/sun/tools/example/debug/event/LocatableEventSet.java.i
+data/src/share/demo/jvmti/hprof/hprof_tracker.h.i
+data/test/java/lang/Class/getMethod/NullInParamList.java.i
 data/test/java/text/Format/DateFormat/ISO8601ZoneTest.java.i
 data/src/share/classes/com/sun/crypto/provider/HmacSHA1KeyGenerator.java.i
-data/test/java/util/Locale/serialized/java6locale_en.i
-data/make/com/sun/java/browser/Makefile.i
+data/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java.i
+data/test/sun/security/pkcs11/Provider/ConfigShortPath.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_el_CY.properties.i
-data/src/share/classes/javax/swing/plaf/basic/BasicToolTipUI.java.i
+data/src/share/classes/com/sun/jmx/snmp/agent/SnmpTableEntryNotification.java.i
+data/test/java/util/zip/StreamIOAfterClose.java.i
 data/test/sun/tools/jstatd/jstatGcutilOutput1.awk.i
-data/src/share/native/sun/reflect/ConstantPool.c.i
+data/test/java/nio/file/WatchService/WithSecurityManager.java.i
 data/make/tools/swing-beans/beaninfo/images/JLabelMono16.gif.i
 data/test/javax/management/modelmbean/RequiredModelMBeanGetAttributeTest.java.i
-data/make/sun/jawt/mapfile-vers.i
+data/test/javax/print/applet/applet3/Applet3PrintService.java.i
 data/test/javax/swing/text/WrappedPlainView/6857057/StubBranchElement.java.i
 data/test/java/beans/XMLEncoder/java_util_Collections_SynchronizedMap.java.i
-data/test/com/sun/net/httpserver/Test10.java.i
+data/src/share/classes/java/awt/font/OpenType.java.i
 data/src/share/native/sun/java2d/loops/Any3Byte.c.i
-data/src/share/classes/sun/io/ByteToCharCp1147.java.i
-data/src/solaris/bin/ergo_i586.c.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmMemPoolTableMeta.java.i
+data/src/share/classes/com/sun/rowset/FilteredRowSetImpl.java.i
+data/src/share/classes/sun/security/rsa/RSACore.java.i
+data/test/java/awt/image/BufferedImage/TinyScale.java.i
+data/test/sun/security/ssl/javax/net/ssl/NewAPIs/HttpsURLConnectionLocalCertificateChain.java.i
+data/src/share/demo/java2d/J2DBench/resources/images/photo.jpg.i
+data/src/share/classes/javax/crypto/CryptoAllPermission.java.i
 data/test/com/sun/net/httpserver/Test12.java.i
-data/src/share/classes/java/rmi/server/RemoteServer.java.i
+data/src/share/classes/sun/text/resources/FormatData_hr_HR.java.i
 data/test/java/lang/ClassLoader/GetPackage.java.i
-data/make/tools/swing-beans/beaninfo/images/JLayeredPaneMono16.gif.i
-data/src/share/classes/sun/net/ftp/impl/DefaultFtpClientProvider.java.i
-data/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/IdResolver.java.i
+data/src/solaris/classes/sun/awt/X11/XWarningWindow.java.i
+data/test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_mix_mono_overdrive.java.i
 data/test/sun/tools/jrunscript/jrunscript-DTest.sh.i
 data/src/share/classes/sun/util/calendar/Era.java.i
 data/src/windows/native/sun/windows/awt_Robot.h.i
-data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java.i
-data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java.i
+data/src/share/classes/com/sun/media/sound/SoftVoice.java.i
+data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEG.java.i
 data/test/com/sun/net/httpserver/docs/test1/smallfile.txt.i
 data/test/java/rmi/activation/ActivationSystem/unregisterGroup/ActivateMe.java.i
 data/src/share/classes/java/lang/invoke/package-info.java.i
 data/test/java/io/Externalizable/definesWriteObject/DefinesWriteObject.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthPasswordFieldUI.java.i
-data/src/share/classes/sun/tools/jconsole/inspector/OperationEntry.java.i
-data/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleConfig.java.i
-data/src/share/classes/sun/tools/jconsole/MemoryTab.java.i
+data/src/share/sample/scripting/scriptpad/src/scripts/textcolor.js.i
+data/src/share/native/sun/security/ec/ecl_gf.c.i
+data/test/java/lang/instrument/ExampleForClassPath.java.i
+data/src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java.i
 data/src/share/classes/sun/util/resources/CalendarData_lv.properties.i
 data/src/windows/classes/sun/awt/windows/awtLocalization_es.properties.i
-data/src/solaris/classes/sun/awt/X11/XWINProtocol.java.i
+data/src/share/native/sun/security/ec/impl/mpprime.h.i
 data/src/windows/classes/sun/awt/Win32GraphicsDevice.java.i
 data/test/java/nio/channels/DatagramChannel/AdaptDatagramSocket.java.i
 data/src/solaris/classes/sun/java2d/xr/XRColor.java.i
 data/test/sun/security/tools/jarsigner/crl.sh.i
 data/src/share/classes/javax/management/InvalidApplicationException.java.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/MonitorTypeException.java.i
+data/test/sun/rmi/transport/tcp/disableMultiplexing/DisableMultiplexing_Stub.java.i
 data/src/share/classes/java/sql/Connection.java.i
 data/test/java/nio/channels/AsynchronousServerSocketChannel/WithSecurityManager.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmRuntimeMetaImpl.java.i
 data/test/tools/pack200/SegmentLimit.java.i
 data/src/solaris/doc/sun/man/man1/xjc.1.i
 data/test/sun/security/ec/certs/sunlabscerts.pem.i
-data/test/java/util/Formatter/Basic.java.i
-data/src/share/lib/images/cursors/motif_CopyDrop32x32.gif.i
-data/src/share/classes/sun/misc/JavaIOFileDescriptorAccess.java.i
-data/src/share/classes/sun/java2d/pipe/ShapeDrawPipe.java.i
-data/src/share/sample/nio/multicast/MulticastAddress.java.i
+data/test/sun/security/ssl/sun/net/www/httpstest/HttpServer.java.i
+data/src/share/classes/java/awt/geom/ArcIterator.java.i
+data/src/solaris/classes/com/sun/management/UnixOperatingSystem.java.i
+data/src/windows/native/sun/jkernel/DownloadDialog.h.i
+data/src/share/sample/nio/file/DiskUsage.java.i
+data/make/sun/nio/FILES_java.gmk.i
+data/test/java/rmi/reliability/benchmark/bench/serial/LongArrays.java.i
 data/src/windows/classes/sun/misc/FileURLMapper.java.i
 data/test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/RuntimeExceptionParameter.java.i
-data/src/share/classes/javax/swing/plaf/ComponentUI.java.i
-data/src/share/classes/sun/java2d/loops/ProcessPath.java.i
+data/src/share/native/sun/java2d/opengl/OGLFuncMacros.h.i
+data/src/share/native/sun/font/layout/ExtensionSubtables.cpp.i
 data/test/sun/tools/jstat/classloadOutput1.awk.i
-data/src/share/classes/javax/print/attribute/standard/Sides.java.i
+data/src/share/native/sun/awt/image/jpeg/jdhuff.h.i
 data/test/sun/nio/cs/SurrogateTestEUCTW.plane15.surrogates.i
-data/src/share/classes/sun/util/resources/CalendarData_el.properties.i
 data/src/windows/instrument/FileSystemSupport_md.c.i
 data/src/share/classes/javax/script/Bindings.java.i
-data/src/share/classes/sun/util/resources/CalendarData_en.properties.i
-data/src/share/classes/sun/net/www/protocol/http/ntlm/NTLMAuthenticationCallback.java.i
-data/src/windows/hpi/export/hpi_md.h.i
+data/test/java/nio/channels/Selector/OutOfBand.java.i
+data/test/javax/swing/RepaintManager/7013453/bug7013453.java.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/report/IIOComparator.java.i
+data/test/java/io/Serializable/longString/LongString.java.i
 data/test/com/sun/crypto/provider/Cipher/AES/Test4512524.java.i
 data/test/com/sun/jdi/TestScaffold.java.i
-data/src/share/classes/com/sun/jdi/ObjectCollectedException.java.i
-data/test/org/openjdk/jigsaw/cli/jmod-basic.sh.i
+data/src/share/sample/vm/jvm-clr/invoker.h.i
 data/src/solaris/classes/sun/nio/ch/NativeThread.java.i
-data/test/java/rmi/testlibrary/ActivationLibrary.java.i
+data/src/share/classes/sun/security/tools/PolicyTool.java.i
 data/test/java/nio/file/Files/delete_on_close.sh.i
 data/src/share/classes/com/sun/tools/example/debug/gui/JDBMenuBar.java.i
 data/src/share/native/java/util/zip/zlib-1.2.3/compress.c.i
 data/test/java/util/TreeMap/SubMap.java.i
-data/src/share/classes/java/nio/file/DirectoryIteratorException.java.i
-data/src/share/demo/jvmti/hprof/hprof_site.h.i
-data/src/share/classes/sun/nio/cs/ext/IBM1046.java.i
-data/src/solaris/classes/sun/awt/X11/XKeySymConstants.java.i
-data/src/share/classes/javax/swing/text/html/ListView.java.i
-data/make/netbeans/common/share-sources.ent.i
-data/test/java/beans/PropertyChangeSupport/Test4985020.java.i
-data/src/share/classes/java/util/LinkedHashMap.java.i
+data/test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall.java.i
+data/test/sun/net/www/http/ChunkedOutputStream/Test.java.i
+data/test/java/net/Socket/RST.java.i
+data/src/windows/native/sun/windows/awt_DataTransferer.cpp.i
+data/test/java/awt/dnd/URIListBetweenJVMsTest/TargetFileListFrame.java.i
+data/test/java/lang/instrument/appendToClassLoaderSearch/manifest.mf.i
+data/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java.i
+data/src/share/classes/sun/text/resources/FormatData_en.java.i
 data/test/javax/naming/ldap/LdapName/LdapNameConstruction.java.i
-data/src/share/classes/com/sun/media/sound/AuFileWriter.java.i
+data/src/share/classes/com/sun/crypto/provider/DESedeKey.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java.i
 data/src/share/native/common/check_code.c.i
 data/make/modules/bootmodule.roots.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/ElementCheckerImpl.java.i
+data/src/share/classes/com/sun/jmx/remote/internal/IIOPProxy.java.i
 data/src/share/classes/javax/swing/UnsupportedLookAndFeelException.java.i
 data/src/share/classes/javax/swing/plaf/PanelUI.java.i
-data/src/share/classes/com/sun/jndi/ldap/EntryChangeResponseControl.java.i
+data/test/java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html.i
 data/test/sun/security/provider/PolicyParser/p004.policy.i
-data/src/share/classes/com/sun/nio/sctp/InvalidStreamException.java.i
+data/src/solaris/classes/sun/awt/X11/XMouseInfoPeer.java.i
 data/test/java/io/File/ToURL.java.i
-data/src/share/classes/javax/sound/midi/Sequence.java.i
+data/test/java/rmi/activation/ActivateFailedException/activateFails/group.security.policy.i
 data/src/share/native/sun/awt/medialib/mlib_ImageLookUp.h.i
 data/src/share/classes/com/sun/net/httpserver/Headers.java.i
 data/src/share/classes/javax/swing/undo/AbstractUndoableEdit.java.i
 data/src/share/classes/javax/swing/tree/TreeCellEditor.java.i
 data/src/share/classes/sun/security/krb5/internal/TicketFlags.java.i
-data/src/share/classes/javax/crypto/NullCipherSpi.java.i
+data/src/share/classes/sun/tools/jinfo/JInfo.java.i
 data/src/share/classes/sun/tools/jstat/Closure.java.i
-data/src/share/classes/javax/swing/text/rtf/charsets/cpg850.txt.i
+data/src/share/classes/sun/text/resources/FormatData_mk_MK.java.i
 data/src/share/classes/javax/print/attribute/standard/PagesPerMinute.java.i
 data/src/share/classes/java/awt/BasicStroke.java.i
-data/test/com/sun/net/httpserver/bugs/B6526913.java.i
+data/test/java/util/Collections/CheckedNull.java.i
 data/src/windows/classes/sun/print/Win32PrintService.java.i
-data/test/javax/security/auth/Subject/doAs/policy.i
-data/src/share/classes/java/awt/image/renderable/RenderableImage.java.i
+data/test/sun/nio/cs/TestX11CNS.java.i
+data/src/share/classes/com/sun/tools/jdi/VMState.java.i
 data/src/share/classes/javax/net/ssl/SSLPeerUnverifiedException.java.i
-data/src/share/javavm/include/opcodes.weight.i
+data/src/share/classes/sun/tools/jconsole/inspector/Utils.java.i
+data/test/java/nio/file/WatchService/denyAll.policy.i
+data/src/share/classes/javax/print/attribute/Size2DSyntax.java.i
 data/src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java.i
-data/src/share/classes/com/sun/jdi/Field.java.i
+data/src/share/classes/com/sun/nio/sctp/IllegalReceiveException.java.i
 data/src/solaris/classes/sun/font/NativeFont.java.i
-data/test/java/io/Serializable/defaulted/GetFieldWrite.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/SignatureECDSA.java.i
-data/src/share/back/ObjectReferenceImpl.h.i
-data/src/share/classes/java/awt/dnd/peer/package.html.i
-data/test/java/security/UnresolvedPermission/DebugPermissionBad.java.i
+data/test/java/nio/channels/FileChannel/Transfers.java.i
+data/src/share/classes/com/sun/security/auth/X500Principal.java.i
+data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties.i
+data/src/share/classes/javax/print/attribute/standard/Severity.java.i
 data/make/tools/CharsetMapping/IBM277.c2b.i
-data/make/sun/text/FILES_properties.gmk.i
+data/src/share/classes/com/sun/security/auth/NTUserPrincipal.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties.i
 data/test/javax/management/modelmbean/InfoSupportTest.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicArrowButton.java.i
@@ -17461,862 +17347,912 @@ data/src/share/classes/javax/swing/plaf/synth/SynthListUI.java.i
 data/src/share/classes/java/net/SocketInputStream.java.i
 data/test/java/nio/file/FileSystem/Basic.java.i
 data/make/netbeans/jdwpgen/build.xml.i
-data/test/java/security/IdentityScope/NoDefaultSystemScope.java.i
+data/src/share/classes/com/sun/tools/example/debug/tty/ThreadInfo.java.i
+data/test/javax/crypto/Cipher/ByteBuffers.java.i
 data/test/java/util/logging/LoggingDeadlock3.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/infcodes.c.i
 data/src/share/classes/javax/swing/plaf/metal/icons/ocean/iconify.gif.i
 data/src/share/native/sun/awt/medialib/mlib_ImageDivTables.h.i
 data/test/com/sun/tools/attach/agent.mf.i
 data/test/java/io/StreamTokenizer/Reset.java.i
-data/test/java/beans/EventHandler/Test6277246.java.i
+data/test/java/security/Provider/CertStoreConstructorParam.java.i
 data/test/java/rmi/transport/closeServerSocket/CloseServerSocket.java.i
-data/src/share/demo/nbproject/management/FullThreadDump/nbproject/netbeans-targets.xml.i
+data/test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_CompoundBorderUIResource.java.i
 data/src/share/classes/sun/tools/jconsole/AboutDialog.java.i
-data/src/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html.i
-data/src/solaris/native/sun/java2d/loops/vis_AlphaMacros.h.i
-data/src/share/native/sun/font/layout/GXLayoutEngine.cpp.i
-data/make/sun/image/vis/FILES_c.gmk.i
-data/src/solaris/native/java/lang/UNIXProcess_md.c.i
+data/test/java/awt/Modal/LWModalTest/LWModalTest.java.i
+data/test/java/net/SocketPermission/Equals.java.i
+data/test/java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.java.i
+data/src/share/demo/jvmti/hprof/hprof_event.c.i
+data/test/java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java.i
 data/test/javax/swing/JSlider/4987336/cupanim.gif.i
-data/src/share/classes/javax/swing/table/TableColumnModel.java.i
-data/src/share/demo/applets/WireFrame/example4.html.i
+data/test/java/security/Security/signedfirst/Static.sh.i
+data/src/share/classes/sun/swing/text/html/FrameEditorPaneTag.java.i
+data/src/share/classes/sun/security/jgss/LoginConfigImpl.java.i
+data/src/solaris/classes/sun/java2d/SurfaceManagerFactory.java.i
 data/test/sun/security/pkcs11/nss/lib/linux-amd64/libnspr4.so.i
 data/src/share/native/sun/font/layout/SimpleArrayProcessor.h.i
 data/src/share/classes/sun/nio/cs/ext/IBM1141.java.i
-data/src/share/classes/sun/io/CharToByteCp1047.java.i
+data/test/java/util/AbstractList/CheckForComodification.java.i
 data/src/share/classes/sun/text/resources/CollationData_sl.java.i
 data/test/javax/xml/crypto/dsig/data/signature-enveloped-dsa.xml.i
-data/make/netbeans/README.i
+data/src/share/classes/javax/net/ssl/SSLSessionBindingEvent.java.i
 data/test/javax/management/eventService/SubUnsubTest.java.i
-data/src/share/classes/sun/nio/cs/SingleByte.java.i
-data/make/PatchList.solaris.i
-data/src/share/classes/com/sun/tools/hat/internal/oql/OQLEngine.java.i
+data/src/share/native/sun/awt/libpng/CHANGES.i
+data/src/share/classes/java/awt/event/AdjustmentListener.java.i
+data/src/share/classes/sun/tools/asm/NameAndTypeData.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/icons/Question.gif.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/Reference.java.i
+data/test/java/beans/PropertyEditor/TestFloatClassNull.java.i
+data/src/share/classes/javax/swing/undo/UndoableEditSupport.java.i
+data/test/com/sun/jdi/sde/FilterMangleTest.java.i
 data/test/java/net/URLClassLoader/sealing/b.jar.i
 data/test/java/nio/channels/DatagramChannel/SendToUnresolved.java.i
-data/src/share/native/java/lang/fdlibm/src/s_frexp.c.i
+data/test/java/awt/Modal/SupportedTest/SupportedTest.java.i
 data/src/share/native/sun/java2d/loops/AnyShort.h.i
 data/test/sun/net/www/protocol/jar/jarbug/src/jar1/LoadResourceBundle.java.i
-data/make/javax/imageio/Makefile.i
+data/test/javax/imageio/CachePremissionsTest/w.policy.i
 data/src/share/classes/sun/tools/java/MethodType.java.i
 data/src/share/native/sun/security/pkcs11/wrapper/p11_util.c.i
 data/src/share/classes/java/nio/file/AccessMode.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/v1_0/PerfDataBuffer.java.i
 data/src/share/classes/java/io/File.java.i
-data/src/share/classes/javax/xml/crypto/package.html.i
+data/test/java/util/PluggableLocale/NumberFormatProviderTest.sh.i
 data/src/windows/classes/sun/awt/windows/awtLocalization_zh_TW.properties.i
+data/src/share/classes/com/sun/crypto/provider/ARCFOURCipher.java.i
 data/src/share/classes/sun/font/FontStrikeDesc.java.i
-data/src/share/classes/com/sun/media/sound/Printer.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/LongCalls.java.i
+data/src/share/classes/sun/security/ssl/ClientHandshaker.java.i
+data/test/sun/security/provider/PolicyFile/getinstance/GetInstance.policy.i
 data/src/share/classes/com/sun/jmx/event/ReceiverBuffer.java.i
-data/test/java/util/AbstractSequentialList/AddAll.java.i
+data/test/javax/management/MustBeValidMBeanInfo/MustBeValidCommand.java.i
+data/src/share/classes/javax/management/relation/Relation.java.i
 data/src/share/classes/sun/reflect/ConstantPool.java.i
-data/make/tools/swing-beans/beaninfo/images/JScrollPaneColor32.gif.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformBase64Decode.java.i
-data/test/java/lang/String/Supplementary.java.i
-data/src/solaris/demo/jigsaw/basic/env.sh.i
+data/test/java/security/KeyPairGenerator/SolarisShortDSA.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/ServerHandler.java.i
+data/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java.i
+data/src/share/native/java/lang/fdlibm/src/w_remainder.c.i
+data/src/windows/resource/unpack200_proto.exe.manifest.i
 data/src/share/classes/org/openjdk/jigsaw/ModuleFileVerifier.java.i
-data/src/share/native/sun/java2d/pipe/PathConsumer2D.h.i
+data/src/share/classes/sun/security/rsa/RSAKeyPairGenerator.java.i
 data/test/javax/crypto/JceSecurity/SunJCE_BC_LoadOrdering.java.i
-data/src/share/native/sun/awt/libpng/pngwio.c.i
+data/test/java/rmi/activation/Activatable/restartService/group.security.policy.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_DESTROYMUTEX.java.i
+data/test/java/util/logging/RacingThreadsTest.java.i
 data/test/java/awt/GraphicsEnvironment/LoadLock/GE_init2.java.i
-data/src/share/classes/javax/swing/plaf/basic/icons/image-delayed.png.i
-data/src/share/classes/java/io/ByteArrayOutputStream.java.i
+data/test/javax/management/remote/mandatory/connectorServer/ForwarderChainTest.java.i
+data/src/windows/classes/sun/awt/windows/WLabelPeer.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMHostInform.java.i
-data/src/share/demo/jfc/Font2DTest/resources/resource.data.i
+data/test/java/security/cert/PolicyNode/speech2speech.i
+data/test/java/lang/management/MemoryMXBean/LowMemoryTestParallelGC.sh.i
 data/test/java/io/Serializable/enum/badResolve/Write.java.i
-data/src/share/classes/javax/script/Invocable.java.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpUnknownMsgProcModelException.java.i
+data/src/share/classes/sun/io/CharToByteCp930.java.i
+data/src/share/classes/sun/reflect/SignatureIterator.java.i
 data/src/share/classes/java/security/interfaces/ECKey.java.i
-data/src/share/classes/javax/management/monitor/StringMonitor.java.i
-data/test/java/lang/Compare.java.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpInt.java.i
 data/test/java/util/zip/ZipFile/Comment.java.i
-data/src/share/classes/java/sql/Statement.java.i
+data/src/share/classes/sun/text/IntHashtable.java.i
+data/src/solaris/lib/flavormap.properties.i
 data/src/share/classes/org/openjdk/jigsaw/Catalog.java.i
 data/test/java/rmi/server/RMIClassLoader/noSecurityManager/Dummy.java.i
 data/src/share/classes/sun/security/x509/SubjectInfoAccessExtension.java.i
-data/src/share/native/sun/security/ec/impl/ec2.h.i
+data/test/java/io/File/WinMaxPath.java.i
 data/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java.i
-data/src/share/classes/java/awt/event/ComponentEvent.java.i
+data/test/javax/management/MBeanInfo/MBeanInfoEqualsTest.java.i
 data/make/sun/security/jgss/Makefile.i
 data/test/com/sun/net/httpserver/docs/test1/largefile.txt.i
 data/src/share/classes/sun/nio/cs/ext/JIS_X_0201.java.i
 data/make/com/sun/jmx/snmp/Makefile.i
-data/test/sun/security/pkcs11/nss/lib/linux-amd64/libsoftokn3.so.i
-data/src/share/classes/java/lang/management/MemoryPoolMXBean.java.i
+data/src/share/classes/javax/print/CancelablePrintJob.java.i
 data/src/share/classes/java/security/UnresolvedPermissionCollection.java.i
-data/test/com/sun/security/sasl/digest/AuthRealms.java.i
-data/src/share/classes/java/dyn/AdapterMethodHandle.java.i
+data/src/share/classes/javax/management/openmbean/CompositeData.java.i
+data/test/com/sun/tools/attach/badagent.mf.i
 data/test/java/net/MulticastSocket/MulticastAddresses.java.i
-data/src/share/classes/com/sun/jmx/snmp/internal/SnmpDecryptedPdu.java.i
+data/test/java/security/Policy/Dynamic/setpolicy.jp.i
 data/src/share/classes/java/beans/Visibility.java.i
-data/test/com/sun/jdi/sde/TemperatureTable.jsp.i
+data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/StateTest.java.i
 data/src/share/classes/sun/io/ByteToCharCp1026.java.i
 data/make/modules/optional.depconfig.i
-data/test/java/net/PortUnreachableException/OneExceptionOnly.java.i
+data/test/javax/management/MBeanServer/AttributeListMapTest.java.i
 data/test/javax/imageio/plugins/jpeg/ConcurrentWritingTest.java.i
 data/src/share/classes/java/util/spi/TimeZoneNameProvider.java.i
-data/src/share/classes/sun/security/util/SignatureFileManifest.java.i
+data/src/share/demo/jfc/CodePointIM/resources/codepoint.properties.i
 data/src/share/classes/sun/util/resources/TimeZoneNames_it.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/JDBFileFilter.java.i
 data/test/java/io/Serializable/maskSyntheticModifier/Foo.class.i
-data/src/share/classes/java/net/DatagramSocket.java.i
+data/src/share/classes/sun/net/NetworkClient.java.i
 data/src/share/classes/java/sql/SQLWarning.java.i
-data/src/share/classes/sun/reflect/ReflectionFactory.java.i
+data/src/share/native/sun/security/ec/impl/ecp.h.i
+data/src/share/classes/java/io/FilenameFilter.java.i
 data/test/sun/nio/cs/TestCp93xSISO.java.i
-data/test/java/io/Serializable/auditStreamSubclass/AuditStreamSubclass.java.i
+data/src/share/classes/java/awt/dnd/DragSourceDragEvent.java.i
 data/src/share/classes/sun/tools/jar/resources/jar_es.properties.i
 data/test/java/lang/management/ManagementFactory/MXBeanException.java.i
-data/src/share/classes/javax/swing/text/html/parser/Parser.java.i
-data/src/solaris/classes/sun/java2d/xr/XRVolatileSurfaceManager.java.i
+data/test/java/nio/channels/DatagramChannel/EmptyBuffer.java.i
+data/src/share/classes/com/sun/crypto/provider/PCBC.java.i
 data/src/share/classes/java/awt/LayoutManager2.java.i
+data/test/java/awt/Mixing/MixingInHwPanel.java.i
 data/src/solaris/sample/dtrace/hotspot/monitors.d.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMCommunity.java.i
 data/test/java/net/URLEncoder/SurrogatePairs.java.i
 data/src/share/classes/java/io/FileInputStream.java.i
-data/src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BC.c.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32U16Func.c.i
 data/src/share/classes/java/util/InvalidPropertiesFormatException.java.i
-data/test/java/lang/Class/EnumPoseur.java.src.i
+data/src/share/classes/sun/jkernel/DigestOutputStream.java.i
+data/test/java/net/MulticastSocket/Leave.java.i
 data/src/share/classes/javax/naming/InsufficientResourcesException.java.i
 data/test/java/io/charStreams/LineNumbers.java.i
-data/test/java/util/ResourceBundle/Test4314141B_en.properties.i
+data/src/share/classes/sun/tools/java/Environment.java.i
 data/src/share/demo/nbproject/jfc/TableExample/nbproject/jdk.xml.i
-data/test/javax/swing/RepaintManager/6608456/bug6608456.java.i
+data/test/sun/management/jmxremote/bootstrap/management_ssltest10_ok.properties.in.i
 data/src/share/classes/java/awt/image/BufferedImage.java.i
-data/src/share/native/sun/font/layout/ContextualSubstSubtables.cpp.i
+data/test/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java.i
 data/test/java/util/PluggableLocale/DateFormatProviderTest.java.i
 data/test/java/util/BitSet/BSMethods.java.i
-data/src/share/demo/applets/MoleculeViewer/XYZApp.java.i
+data/test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java.i
 data/test/java/util/zip/FileBuilder.java.i
-data/test/sun/util/resources/TimeZone/Bug6317929.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMNetMask.java.i
-data/src/share/classes/javax/swing/border/EtchedBorder.java.i
+data/src/share/classes/javax/swing/text/AsyncBoxView.java.i
 data/src/share/classes/com/sun/tracing/dtrace/package-info.java.i
-data/src/share/classes/sun/nio/cs/KOI8_R.java.i
+data/test/java/rmi/activation/Activatable/unregisterInactive/UnregisterInactive_Stub.java.i
 data/test/java/util/ResourceBundle/Control/XMLResourceBundleTest.java.i
-data/src/solaris/bin/sparcv9/jvm.cfg.i
-data/make/tools/CharsetMapping/IBM970.c2b.i
-data/src/windows/native/sun/windows/awt_PrintDialog.cpp.i
-data/src/share/classes/javax/crypto/CryptoAllPermission.java.i
-data/src/share/classes/sun/io/CharToByteMS932DB.java.i
-data/test/java/io/PrintWriter/OpsAfterClose.java.i
-data/test/java/beans/XMLEncoder/java_util_Collections_SynchronizedList.java.i
+data/src/share/classes/java/beans/XMLEncoder.java.i
+data/src/share/native/java/util/zip/zip_util.c.i
+data/test/java/nio/channels/FileChannel/MapTest.java.i
+data/test/sun/security/pkcs11/KeyStore/ClientAuthData/README.i
+data/src/share/classes/java/util/ListIterator.java.i
+data/src/share/classes/java/awt/Adjustable.java.i
 data/test/com/sun/nio/sctp/SctpChannel/Bind.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/AdobeMarkerSegment.java.i
 data/src/share/npt/npt.c.i
-data/src/share/native/sun/font/layout/CanonShaping.h.i
-data/test/java/awt/List/SetFontTest/SetFontTest.java.i
-data/src/share/classes/java/util/zip/CRC32.java.i
+data/src/share/classes/com/sun/imageio/plugins/jpeg/DRIMarkerSegment.java.i
+data/test/java/util/Formatter/Basic.sh.i
+data/src/share/classes/sun/nio/cs/ext/GB18030.java.i
 data/test/java/lang/management/CompositeData/OpenTypeConverter.java.i
+data/src/share/classes/java/security/Provider.java.i
 data/test/tools/launcher/lib/sparc/lib64/lib64/liblibrary.so.i
 data/src/share/classes/sun/nio/cs/MS1253.java.i
 data/src/share/classes/com/sun/tools/hat/internal/server/ReachableQuery.java.i
 data/src/share/classes/javax/management/MalformedObjectNameException.java.i
-data/src/share/classes/javax/sound/midi/MetaMessage.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/EngineEnforceUseClientMode.java.i
 data/src/share/classes/sun/nio/cs/ext/GB18030.java.d
-data/src/share/classes/com/sun/jmx/event/LeaseManager.java.i
-data/src/share/classes/sun/text/UCompactIntArray.java.i
-data/src/solaris/native/sun/awt/MouseInfo.c.i
+data/test/java/util/jar/JarFile/MevNPE.java.i
+data/src/windows/back/mutex_md.h.i
+data/test/sun/security/tools/policytool/Alias.html.i
 data/src/share/native/java/lang/fdlibm/src/e_pow.c.i
 data/src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java.i
 data/src/solaris/doc/sun/man/man1/ja/pack200.1.i
-data/src/share/classes/sun/applet/AppletEventMulticaster.java.i
+data/src/share/classes/sun/nio/cs/ext/HKSCS_2001.java.i
 data/test/java/util/ResourceBundle/Bug4168625Test.java.i
-data/src/share/classes/sun/font/FontScaler.java.i
-data/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java.i
+data/test/javax/sound/midi/Gervill/SoftPointResampler/Interpolate.java.i
+data/src/share/back/ClassObjectReferenceImpl.c.i
 data/src/share/classes/sun/text/resources/CollationData_lt.java.i
-data/src/share/classes/javax/swing/event/DocumentListener.java.i
+data/test/java/io/Serializable/class/SerialA_1.java.i
 data/src/share/classes/com/sun/net/ssl/HostnameVerifier.java.i
-data/test/sun/rmi/rmic/newrmic/equivalence/AppleImpl.java.i
-data/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java.i
-data/src/share/classes/sun/reflect/UnsafeStaticLongFieldAccessorImpl.java.i
-data/src/share/back/util.c.i
+data/src/share/classes/sun/awt/image/PNGImageDecoder.java.i
+data/src/share/classes/sun/text/resources/CollationData_en.java.i
+data/test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh.i
+data/src/share/classes/sun/io/ByteToCharCp852.java.i
 data/src/share/classes/sun/nio/cs/ext/MS950_HKSCS.java.i
-data/src/linux/doc/man/ja/jmap.1.i
-data/src/share/native/sun/awt/medialib/mlib_status.h.i
-data/make/common/internal/BinaryPlugs.gmk.i
+data/src/windows/classes/sun/java2d/d3d/D3DVolatileSurfaceManager.java.i
+data/test/java/net/MulticastSocket/Test.java.i
+data/src/share/classes/sun/tools/jstat/ExpressionExecuter.java.i
 data/src/share/classes/javax/sql/rowset/serial/SerialClob.java.i
+data/src/share/classes/com/sun/imageio/plugins/png/RowFilter.java.i
+data/test/javax/swing/JFileChooser/6570445/bug6570445.java.i
+data/src/share/native/java/lang/fdlibm/src/s_floor.c.i
 data/test/java/nio/channels/FileChannel/ExpandingMap.java.i
 data/src/windows/native/sun/windows/awt_AWTEvent.h.i
-data/src/share/classes/java/util/spi/LocaleServiceProvider.java.i
+data/src/share/classes/sun/util/resources/CalendarData_iw.properties.i
 data/test/java/util/ResourceBundle/Bug6204853.properties.i
-data/src/share/classes/sun/io/CharToByteMacRomania.java.i
+data/src/share/classes/sun/rmi/server/Dispatcher.java.i
 data/make/java/hpi/native/Makefile.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConvClearEdge.c.i
+data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java.i
 data/src/windows/classes/sun/nio/fs/WindowsPath.java.i
 data/src/share/instrument/InvocationAdapter.c.i
 data/src/share/classes/java/nio/Direct-X-Buffer-bin.java.i
 data/test/javax/swing/text/LayoutQueue/Test6588003.java.i
 data/make/tools/swing-beans/beaninfo/images/JFormattedTextFieldColor16.gif.i
-data/src/share/classes/sun/management/resources/agent_it.properties.i
+data/test/java/nio/channels/AsynchronousChannelGroup/AsExecutor.java.i
 data/src/share/classes/sun/net/ProgressMeteringPolicy.java.i
 data/test/sun/tools/jinfo/Basic.sh.i
 data/src/share/classes/sun/java2d/pipe/SpanClipRenderer.java.i
 data/test/java/awt/FullScreen/UninitializedDisplayModeChangeTest/DisplayModeChanger.java.i
 data/test/com/sun/security/auth/login/ConfigFile/Override.java.i
+data/src/windows/native/sun/windows/awt_TextField.cpp.i
 data/test/sun/tools/native2ascii/A2N_4701617.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/XMLCipherInput.java.i
+data/src/solaris/demo/jigsaw/basic/setup.sh.i
+data/test/sun/security/pkcs11/rsa/TestCACerts.java.i
 data/test/javax/management/MustBeValidMBeanInfo/logging.properties.i
 data/src/share/classes/sun/rmi/server/MarshalOutputStream.java.i
-data/src/share/classes/sun/io/ByteToCharCp33722.java.i
+data/test/java/beans/PropertyEditor/TestByteTypeNull.java.i
 data/test/sun/net/www/http/ChunkedInputStream/test.txt.i
-data/src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.c.i
+data/test/sun/security/tools/keytool/CloseFile.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/metacity/SwingFallbackTheme/metacity-1/metacity-theme-1.xml.i
-data/src/share/classes/java/util/spi/LocaleNameProvider.java.i
-data/src/share/classes/sun/security/jgss/ProviderList.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/X509CertificateResolver.java.i
+data/test/java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java.i
 data/src/share/classes/java/nio/charset/Charset-X-Coder.java.template.i
 data/test/sun/net/www/protocol/jar/jarbug/src/test/TestBug4523159.java.i
-data/src/share/classes/sun/rmi/log/ReliableLog.java.i
-data/make/netbeans/jdwpgen/nbproject/sqe.properties.i
+data/test/sun/net/www/http/ChunkedInputStream/test.txt.d
+data/test/java/beans/XMLEncoder/Test6437265.java.i
+data/make/tools/CharsetMapping/ISO_8859_2.map.i
 data/src/share/classes/sun/awt/image/JPEGImageDecoder.java.i
 data/test/sun/security/tools/jarsigner/JarSigning_RU.jar.i
-data/src/share/classes/javax/imageio/stream/FileCacheImageInputStream.java.i
+data/src/share/native/sun/font/layout/MorphStateTables.h.i
 data/test/javax/xml/crypto/dsig/data/signature-enveloping-dsa.xml.i
-data/test/java/rmi/activation/Activatable/nestedActivate/security.policy.i
+data/src/share/classes/java/awt/font/StyledParagraph.java.i
+data/test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOn_AllChannels.java.i
+data/test/java/rmi/reliability/juicer/Apple.java.i
+data/src/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java.i
 data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargeBufs.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/SpecEvent.java.i
-data/src/share/classes/sun/tracing/dtrace/DTraceProbe.java.i
+data/test/com/sun/jdi/connect/spi/GeneratedConnectors.java.i
 data/src/share/sample/nio/multicast/Sender.java.i
 data/test/java/security/cert/CertPathBuilder/selfIssued/DisableRevocation.java.i
-data/src/share/native/sun/awt/splashscreen/splashscreen_gfx.h.i
-data/make/ASSEMBLY_EXCEPTION.i
+data/src/windows/classes/sun/awt/windows/WPrinterJob.java.i
+data/test/sun/security/pkcs11/KeyStore/BasicData/pkcs11_softtoken/objstore_info.i
 data/make/tools/CharsetMapping/IBM297.nr.i
-data/src/solaris/classes/sun/awt/motif/MInputMethodDescriptor.java.i
+data/src/share/classes/javax/accessibility/AccessibleIcon.java.i
 data/src/share/classes/sun/security/krb5/internal/EncASRepPart.java.i
 data/test/java/util/ResourceBundle/Bug4195978Test.java.i
-data/test/sun/tools/jstat/jstatLineCounts1.sh.i
 data/test/java/util/concurrent/Phaser/Basic.java.i
-data/test/java/math/BigDecimal/StrippingZerosTest.java.i
-data/src/share/classes/javax/xml/crypto/dsig/keyinfo/package.html.i
-data/src/share/classes/java/nio/channels/ScatteringByteChannel.java.i
-data/src/share/classes/java/net/CookieStore.java.i
-data/make/jpda/jdwp/jdwp.spec.i
+data/test/javax/swing/border/Test4124729.java.i
+data/test/java/util/Locale/bug4123285.java.i
+data/test/java/util/Collections/Enum.java.i
+data/src/solaris/classes/sun/awt/motif/X11Selection.java.i
+data/test/java/awt/FullScreen/UninitializedDisplayModeChangeTest/UninitializedDisplayModeChangeTest.java.i
 data/test/java/lang/annotation/PackageMain.java.i
 data/test/tools/jar/index/jarcontents/META-INF/services/A.i
-data/src/share/classes/sun/io/ByteToCharSJIS.java.i
+data/test/java/lang/instrument/PremainClass/InheritAgent0101.java.i
 data/src/solaris/doc/sun/man/man1/serialver.1.i
 data/src/share/classes/javax/swing/text/html/TableView.java.i
-data/test/sun/rmi/runtime/Log/4504153/Test4504153.java.i
-data/test/java/rmi/testlibrary/RMID.java.i
-data/src/share/classes/java/rmi/server/ObjID.java.i
-data/test/sun/security/pkcs11/fips/keystore.i
-data/src/share/classes/sun/security/x509/ReasonFlags.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/SignatureDSA.java.i
-data/test/javax/swing/UIDefaults/6795356/SwingLazyValueTest.java.i
+data/src/share/classes/sun/tools/jconsole/OverviewTab.java.i
+data/src/share/native/sun/security/ec/ecl-exp.h.i
+data/src/share/classes/sun/util/locale/ParseStatus.java.i
+data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java.i
+data/test/java/net/DatagramPacket/CheckBoundaries.java.i
+data/src/share/native/com/sun/media/sound/DirectAudioDevice.c.i
 data/src/share/classes/sun/util/resources/LocaleNames_ja.properties.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/PainterGenerator.java.i
+data/test/sun/net/TelnetTest.java.i
 data/test/sun/util/resources/Locale/Bug4429024.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthContext.java.i
+data/src/solaris/classes/sun/awt/motif/MDragSourceContextPeer.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java.i
 data/src/share/classes/com/sun/media/sound/JSSecurityManager.java.i
 data/src/share/classes/java/text/ParsePosition.java.i
-data/src/share/classes/com/sun/media/sound/DLSRegion.java.i
-data/src/share/sample/nio/server/Content.java.i
+data/test/java/beans/PropertyEditor/Test4968709.java.i
+data/test/com/sun/tools/attach/BasicTests.java.i
 data/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.java.i
-data/make/com/sun/org/Makefile.i
-data/make/jdk_generic_profile.sh.i
-data/src/share/classes/com/sun/rowset/providers/RIXMLProvider.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/KeyValue.java.i
+data/src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java.i
+data/src/share/classes/javax/swing/ListCellRenderer.java.i
+data/make/java/main/java/Makefile.i
+data/src/solaris/classes/sun/java2d/jules/JulesShapePipe.java.i
 data/src/share/classes/java/security/CodeSource.java.i
 data/test/sun/security/pkcs11/fips/JSSEServer.java.i
 data/test/java/rmi/server/Unmarshal/PrimitiveClasses.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java.i
-data/src/share/classes/sun/font/CMap.java.i
+data/src/share/classes/sun/util/resources/LocaleNames_hr.properties.i
 data/make/tools/swing-beans/beaninfo/images/JSpinnerColor16.gif.i
-data/src/share/classes/sun/misc/BASE64Encoder.java.i
+data/src/share/classes/sun/net/httpserver/ServerImpl.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libnss3.so.i
 data/src/share/classes/sun/security/ec/ECPrivateKeyImpl.java.i
-data/src/share/classes/javax/print/attribute/standard/DateTimeAtCreation.java.i
+data/src/solaris/native/sun/awt/awt_ScrollPane.c.i
 data/test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.sh.i
-data/test/java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html.i
-data/test/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java.i
-data/src/share/classes/com/sun/java/browser/dom/DOMService.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libnss3.so.d
 data/src/share/classes/sun/text/resources/FormatData_sl_SI.java.i
 data/test/java/lang/instrument/RedefineClassWithNativeMethodAgent.java.i
 data/src/share/classes/java/nio/channels/SocketChannel.java.i
-data/src/share/classes/javax/swing/FocusManager.java.i
+data/test/java/beans/PropertyEditor/TestByteTypeJava.java.i
 data/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java.i
 data/test/sun/nio/cs/EuroConverter.java.i
 data/test/sun/tools/jrunscript/common.sh.i
 data/test/sun/tools/jstat/gcCapacityOutput1.awk.i
 data/src/share/classes/sun/io/ByteToCharCp871.java.i
 data/src/share/classes/com/sun/jmx/interceptor/DispatchInterceptor.java.i
-data/src/solaris/native/sun/security/jgss/wrapper/NativeFunc.h.i
+data/src/windows/native/java/net/NetworkInterface_win9x.c.i
+data/src/share/classes/sun/util/resources/TimeZoneNames_de.java.i
 data/test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshall.java.i
-data/src/windows/classes/com/sun/tools/jdi/SunSDK.java.i
+data/test/java/awt/image/IncorrectSampleMaskTest.java.i
 data/make/modules/tools/src/com/sun/classanalyzer/ShowDeps.java.i
-data/src/share/classes/sun/nio/ch/Invoker.java.i
+data/test/java/awt/Graphics2D/DrawString/RotTransText.java.i
 data/test/javax/management/namespace/Wombat.java.i
 data/src/share/classes/sun/security/provider/DSAKeyPairGenerator.java.i
 data/test/java/io/Serializable/resolveClass/consTest/Test.java.i
 data/test/sun/security/provider/PolicyParser/ExtDirs3.policy.i
-data/test/java/rmi/activation/Activatable/forceLogSnapshot/rmid.security.policy.i
-data/src/share/classes/sun/util/resources/CurrencyNames_sr_ME.properties.i
+data/test/java/rmi/activation/Activatable/nonExistentActivatable/security.policy.i
+data/src/share/sample/jmx/jmx-scandir/src/etc/access.properties.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsMenuUI.java.i
 data/src/share/classes/sun/nio/ch/ExtendedSocketOption.java.i
 data/test/java/util/Observable/ClearChanged.java.i
-data/src/solaris/doc/sun/man/man1/ja/jvisualvm.1.i
+data/src/share/classes/java/awt/TexturePaint.java.i
 data/test/java/util/NavigableMap/LockStep.java.i
-data/src/share/native/sun/awt/medialib/mlib_ImageAffine_BC_F32.c.i
+data/test/sun/util/calendar/Bug6653944.java.i
 data/src/share/classes/java/io/ByteArrayInputStream.java.i
 data/test/java/security/cert/CertPathBuilder/NoExtensions.java.i
 data/test/java/util/ServiceLoader/basic.sh.i
-data/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties.i
+data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain10.txt.i
 data/src/share/classes/com/sun/tools/jdi/VirtualMachineManagerImpl.java.i
+data/test/java/net/URLClassLoader/B6896088.java.i
 data/src/share/classes/sun/io/ByteToCharCp277.java.i
-data/test/java/nio/file/Files/Links.java.i
-data/make/tools/swing-beans/beaninfo/images/JScrollBarColor16.gif.i
-data/src/share/classes/com/sun/tools/jdi/SocketTransportService.java.i
+data/src/share/classes/javax/sound/midi/SysexMessage.java.i
+data/test/java/util/PluggableLocale/ProviderTest.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalMonitoredVm.java.i
+data/src/share/native/sun/awt/debug/debug_mem.h.i
 data/test/sun/security/pkcs11/nss/lib/solaris-amd64/libsoftokn3.so.i
-data/src/share/classes/com/sun/media/sound/DirectAudioDeviceProvider.java.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver2.java.i
 data/test/com/sun/jdi/UnloadEventTarg.java.i
-data/src/share/classes/java/security/URIParameter.java.i
+data/src/share/classes/com/sun/rowset/CachedRowSetImpl.java.i
 data/src/solaris/doc/sun/man/man1/ja/apt.1.i
-data/src/share/classes/javax/swing/plaf/synth/SynthArrowButton.java.i
+data/src/windows/native/sun/windows/awt_Frame.h.i
 data/src/share/classes/java/io/ObjectInput.java.i
-data/test/java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.java.i
-data/src/share/classes/javax/management/event/EventRelay.java.i
-data/src/share/classes/javax/management/remote/rmi/RMIConnection.java.i
+data/test/javax/management/eventService/EventClientExecutorTest.java.i
+data/src/solaris/native/sun/awt/awt_Window.h.i
+data/src/share/classes/sun/security/jgss/spi/GSSContextSpi.java.i
+data/src/windows/native/sun/security/smartcardio/pcsc_md.c.i
 data/src/share/native/java/util/zip/zlib-1.2.3/gzio.c.i
 data/test/sun/net/www/httptest/HttpCallback.java.i
-data/test/java/util/jar/JarFile/test.jar.i
 data/src/share/classes/javax/swing/plaf/metal/MetalBorders.java.i
-data/test/sun/net/www/protocol/http/B6296310.java.i
-data/src/share/classes/javax/accessibility/AccessibleRelationSet.java.i
-data/src/share/classes/sun/tools/tree/NewInstanceExpression.java.i
+data/src/share/native/sun/java2d/loops/IntArgbPre.c.i
+data/test/java/beans/PropertyEditor/TestDoubleClassNull.java.i
+data/src/windows/classes/sun/java2d/windows/Win32OffScreenSurfaceData.java.i
 data/src/share/classes/sun/awt/image/URLImageSource.java.i
-data/test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableCollection.java.i
-data/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageWriter.java.i
+data/test/java/util/zip/ConstructDeflaterInput.java.i
+data/test/java/net/InetSocketAddress/CreateUnresolved.java.i
 data/src/share/native/sun/java2d/loops/IntBgr.h.i
 data/test/java/awt/PrintJob/SaveDialogTitleTest.java.i
-data/src/solaris/classes/sun/nio/fs/UnixFileKey.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/RadialGradient.java.i
-data/src/share/classes/sun/io/CharToByteCp1026.java.i
+data/src/share/classes/java/security/KeyException.java.i
+data/test/org/openjdk/jigsaw/pubrepo.sh.i
+data/test/java/io/Serializable/GetField/Read2.java.i
+data/test/java/awt/Cursor/PredefinedPrivate/PredefinedPrivate.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ar_LY.properties.i
-data/test/java/nio/Buffer/BasicDouble.java.i
+data/src/share/classes/sun/dyn/util/BytecodeDescriptor.java.i
 data/test/sun/java2d/cmm/ColorConvertOp/MTColConvTest.java.i
-data/src/share/demo/applets/MoleculeViewer/models/water.xyz.i
+data/src/share/demo/applets/SortDemo/BubbleSortAlgorithm.java.i
 data/test/java/lang/instrument/NativeMethodPrefixApp.java.i
-data/src/share/classes/javax/management/modelmbean/package.html.i
+data/src/share/classes/sun/io/ByteToCharCp1123.java.i
 data/src/share/classes/javax/swing/colorchooser/package.html.i
-data/make/sun/javazic/tzdata/africa.i
+data/src/share/classes/javax/naming/TimeLimitExceededException.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHostServer.java.i
 data/src/share/classes/sun/tools/jstack/JStack.java.i
 data/src/solaris/classes/sun/nio/ch/InheritedChannel.java.i
-data/src/share/classes/sun/tools/tree/LongExpression.java.i
+data/test/java/io/BufferedInputStream/Fill.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/schema/etsi.xsd.i
 data/test/sun/util/logging/PlatformLoggerTest.java.i
 data/src/share/classes/sun/awt/HKSCS.java.i
 data/test/sun/security/pkcs11/KeyStore/BasicData/pk1.key.i
-data/src/share/classes/com/sun/tools/jdi/JNITypeParser.java.i
-data/test/java/beans/XMLEncoder/Test4880633.java.i
+data/src/share/classes/java/awt/Frame.java.i
+data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest13_ok.ssl.in.i
+data/make/tools/CharsetMapping/MS936.map.d
 data/test/com/sun/jdi/ClassesByName.java.i
-data/make/netbeans/jmx/README.i
+data/test/java/awt/image/ImagingOpsNoExceptionsTest/ImagingOpsNoExceptionsTest.java.i
 data/src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h.i
 data/src/share/classes/java/sql/SQLNonTransientException.java.i
 data/test/sun/security/provider/SecureRandom/SelfSeed.java.i
-data/src/share/classes/sun/util/logging/resources/logging_sv.properties.i
-data/src/share/classes/javax/xml/crypto/dsig/keyinfo/PGPData.java.i
-data/test/java/beans/XMLEncoder/java_lang_reflect_Field.java.i
-data/test/sun/awt/image/DrawByteBinary.java.i
-data/src/share/classes/java/sql/ClientInfoStatus.java.i
+data/test/java/rmi/transport/readTimeout/ReadTimeoutTest.java.i
+data/src/share/classes/sun/java2d/pipe/BufferedTextPipe.java.i
+data/test/java/beans/XMLEncoder/java_lang_reflect_Field.java.i
+data/src/share/native/sun/font/bidi/ubidi.h.i
+data/test/tools/pack200/T7007157.java.i
+data/src/share/classes/sun/security/krb5/internal/Authenticator.java.i
 data/src/share/classes/sun/security/krb5/internal/crypto/Des3.java.i
-data/src/share/classes/java/text/spi/BreakIteratorProvider.java.i
-data/make/com/sun/java/browser/net/Makefile.i
+data/test/java/beans/XMLEncoder/Test5023557.java.i
+data/src/share/classes/sun/rmi/server/Util.java.i
 data/test/javax/sound/midi/Gervill/SoftTuning/NewSoftTuningPatch.java.i
 data/src/share/classes/com/sun/java/util/jar/pack/AdaptiveCoding.java.i
-data/src/share/classes/javax/xml/crypto/dsig/dom/DOMValidateContext.java.i
+data/test/java/util/ResourceBundle/Control/PackagePrivateTest.java.i
 data/test/sun/text/resources/Format/Bug4442855.java.i
-data/test/java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java.i
-data/src/share/classes/sun/net/www/protocol/http/NegotiatorImpl.java.i
+data/test/sun/nio/cs/ReadZero.java.i
+data/test/sun/security/tools/policytool/ChangeUI.java.i
 data/src/share/classes/java/net/UnknownServiceException.java.i
-data/src/share/native/java/lang/fdlibm/src/k_tan.c.i
+data/src/share/classes/java/beans/beancontext/package.html.i
+data/src/share/native/sun/awt/image/cvutils/img_icm.h.i
 data/test/java/util/Currency/Bug6807534.java.i
 data/test/java/lang/ClassLoader/package1/package3/Class3.java.i
 data/src/share/classes/java/awt/event/TextEvent.java.i
-data/make/netbeans/jdwpgen/nbproject/project.properties.i
+data/make/sun/xawt/FILES_c_unix.gmk.i
 data/src/share/classes/java/lang/SecurityException.java.i
-data/src/share/modules/jdk.awt/module-info.java.i
+data/test/java/rmi/reliability/benchmark/bench/serial/Chars.java.i
 data/src/share/classes/sun/nio/cs/ISO_8859_5.java.i
-data/make/java/main/java/mapfile-sparc.i
+data/test/sun/security/ssl/sanity/pluggability/MySSLEngineImpl.java.i
 data/make/com/sun/security/auth/module/FILES_c_solaris.gmk.i
 data/src/share/classes/java/util/logging/StreamHandler.java.i
-data/src/share/sample/jmx/jmx-scandir/build.xml.i
+data/src/share/classes/javax/security/auth/callback/Callback.java.i
 data/make/tools/CharsetMapping/IBM284.nr.i
-data/src/share/demo/scripting/jconsole-plugin/src/scripts/hello.js.i
-data/test/java/lang/StringBuffer/Capacity.java.i
-data/src/share/classes/sun/nio/cs/ext/IBM964.java.i
+data/src/share/classes/javax/sound/sampled/spi/MixerProvider.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/package.html.i
 data/src/solaris/native/sun/awt/awt_Plugin.c.i
-data/src/share/classes/sun/applet/resources/MsgAppletViewer_ko.java.i
-data/src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariTables.java.i
+data/src/share/classes/java/lang/IncompatibleClassChangeError.java.i
+data/src/windows/classes/sun/nio/fs/WindowsException.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_CN.properties.i
-data/make/sun/font/Makefile.i
-data/src/windows/classes/sun/misc/OSEnvironment.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifTextAreaUI.java.i
-data/src/share/native/java/lang/fdlibm/src/w_remainder.c.i
-data/src/share/classes/sun/awt/WindowClosingListener.java.i
+data/src/share/classes/com/sun/imageio/plugins/gif/GIFImageReader.java.i
+data/test/java/dyn/InvokeGenericTest.java.i
+data/test/java/rmi/server/RMIClassLoader/noSecurityManager/NoSecurityManager.java.i
+data/src/share/classes/sun/nio/cs/ext/ISO_8859_6.java.i
+data/test/java/lang/invoke/InvokeDynamicPrintArgs.java.i
+data/test/java/util/Locale/bug4123285.html.i
 data/test/java/beans/XMLEncoder/6777487/TestCheckedMap.java.i
-data/test/ProblemList.txt.i
 data/src/share/classes/javax/swing/undo/UndoManager.java.i
 data/make/java/jli/Makefile.i
-data/src/solaris/classes/sun/java2d/xr/GrowableEltArray.java.i
+data/test/java/net/URLConnection/Connect.java.i
 data/test/java/io/File/createTempFile/Patterns.java.i
-data/src/share/classes/sun/util/calendar/CalendarSystem.java.i
+data/test/java/dyn/indify/Indify.java.i
 data/src/share/demo/jvmti/minst/README.txt.i
-data/src/share/classes/java/awt/image/ImageConsumer.java.i
-data/test/java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.java.i
+data/src/share/classes/com/sun/tools/example/debug/gui/ClassManager.java.i
+data/make/sun/net/FILES_java.gmk.i
 data/src/share/classes/javax/management/InstanceNotFoundException.java.i
 data/make/tools/CharsetMapping/IBM1146.c2b.i
-data/test/sun/java2d/cmm/ProfileOp/MTReadProfileTest.java.i
+data/src/share/native/sun/java2d/opengl/OGLBufImgOps.c.i
 data/src/share/classes/sun/nio/cs/UTF_16.java.i
-data/src/share/classes/java/text/BreakDictionary.java.i
-data/src/share/classes/java/beans/MetaData.java.i
-data/src/share/classes/sun/util/resources/TimeZoneNames.java.i
+data/src/share/classes/java/util/zip/ZipInputStream.java.i
+data/test/java/net/Socket/TrafficClass.java.i
+data/test/java/rmi/reliability/benchmark/bench/ConfigFormatException.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicToolBarUI.java.i
 data/src/share/demo/applets.html.i
+data/src/share/classes/sun/java2d/pipe/hw/AccelTypedVolatileImage.java.i
 data/src/share/classes/sun/launcher/resources/launcher_zh_CN.properties.i
-data/test/java/util/PluggableLocale/providersrc/java.util.spi.CurrencyNameProvider.i
+data/test/java/lang/instrument/NoTransformerAddedTest.java.i
 data/src/share/classes/sun/text/resources/FormatData_hr.java.i
+data/src/share/classes/java/lang/reflect/TypeVariable.java.i
 data/src/share/demo/jfc/Font2DTest/resources/TextResources_ja.properties.i
-data/test/java/rmi/server/RMIClassLoader/delegateBeforePermissionCheck/Foo.java.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMCommunities.java.i
-data/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpFunc.h.i
 data/test/java/util/ResourceBundle/Bug4177489Test.java.i
-data/src/share/classes/javax/security/auth/login/Configuration.java.i
+data/test/tools/pack200/pack200-verifier/src/sun/tools/pack/verify/VerifyTreeSet.java.i
 data/src/share/classes/sun/security/rsa/RSAPublicKeyImpl.java.i
 data/test/sun/security/pkcs11/ec/ReadCertificates.java.i
 data/test/javax/xml/crypto/dsig/data/certs/xmldsig.jks.i
-data/test/java/io/PushbackReader/Skip.java.i
+data/src/share/demo/jvmti/minst/sample.makefile.txt.i
 data/src/share/classes/sun/tools/tree/LengthExpression.java.i
-data/src/windows/native/sun/windows/awt_PrintControl.h.i
+data/test/java/security/cert/CertificateFactory/SlowStream.java.i
 data/src/share/classes/java/util/logging/package.html.i
-data/make/tools/CharsetMapping/JIS_X_0201.map.i
-data/make/tools/src/build/tools/generatenimbus/SynthModel.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapBlock.java.i
+data/src/share/classes/javax/swing/plaf/TextUI.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_RS.properties.i
-data/src/share/classes/javax/sql/rowset/spi/SyncResolver.java.i
-data/src/share/native/sun/java2d/loops/DrawParallelogram.c.i
+data/test/java/beans/PropertyEditor/TestEnumSubclassNull.java.i
+data/test/java/lang/Throwable/SuppressedExceptions.java.i
 data/src/share/classes/sun/nio/cs/ext/ISO2022_JP.java.i
 data/test/com/sun/tools/attach/Application.java.i
-data/src/share/classes/sun/rmi/transport/DGCAckHandler.java.i
-data/test/java/nio/file/spi/SetDefaultProvider.java.i
-data/test/java/io/File/SetLastModified.java.i
-data/src/share/native/sun/management/MemoryImpl.c.i
+data/src/solaris/classes/sun/net/spi/SdpProvider.java.i
+data/src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethod.java.i
+data/src/share/classes/sun/management/MethodInfo.java.i
 data/src/share/classes/java/util/Set.java.i
-data/src/share/native/java/net/net_util.c.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/Canonicalizer.java.i
+data/src/share/native/sun/awt/image/jpeg/jmemmgr.c.i
+data/test/java/rmi/activation/ActivationSystem/unregisterGroup/security.policy.i
 data/src/share/classes/java/lang/Long.java.i
 data/src/solaris/native/sun/java2d/loops/mlib_v_ImageClear.c.i
+data/src/share/classes/javax/security/auth/SubjectDomainCombiner.java.i
 data/src/share/classes/com/sun/jdi/ReferenceType.java.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmClassLoadingMeta.java.i
-data/src/share/classes/sun/awt/image/BytePackedRaster.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/JavaxTrustManagerFactoryImpl.java.i
+data/src/share/classes/sun/net/httpserver/HttpsServerImpl.java.i
+data/src/share/classes/sun/management/HotspotClassLoading.java.i
 data/src/share/native/sun/awt/medialib/j2d_names.h.i
-data/src/share/classes/java/awt/dnd/DropTargetListener.java.i
-data/src/share/demo/nbproject/jfc/Notepad/nbproject/file-targets.xml.i
+data/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh.i
+data/test/sun/rmi/rmic/newrmic/equivalence/AppleImpl.java.i
 data/src/share/classes/sun/java2d/pipe/BufferedMaskBlit.java.i
-data/src/share/classes/java/nio/channels/DatagramChannel.java.i
-data/src/share/classes/javax/sql/rowset/serial/SQLInputImpl.java.i
+data/src/solaris/classes/sun/awt/motif/X11JIS0208.java.i
+data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.c.i
 data/src/share/classes/com/sun/crypto/provider/DESedeCipher.java.i
-data/src/share/classes/sun/java2d/pipe/OutlineTextRenderer.java.i
+data/test/javax/print/PrintSE/PrintSE.sh.i
+data/test/sun/security/ssl/sun/net/www/httpstest/ClosedChannelList.java.i
 data/src/share/classes/javax/management/NotCompliantMBeanException.java.i
-data/src/share/classes/java/security/acl/LastOwnerException.java.i
+data/src/share/classes/sun/tools/jconsole/inspector/XNodeInfo.java.i
 data/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/JavaxURLNulls.java.i
-data/src/share/classes/sun/rmi/registry/resources/rmiregistry_de.properties.i
+data/src/share/classes/sun/tools/java/CompilerError.java.i
 data/test/com/sun/security/sasl/gsskerb/log.properties.i
-data/src/share/classes/sun/security/x509/GeneralNameInterface.java.i
-data/make/mkdemo/jvmti/mtrace/Makefile.i
+data/test/java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.java.i
+data/src/share/demo/nbproject/management/VerboseGC/build.xml.i
+data/src/share/classes/java/beans/XMLDecoder.java.i
 data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/EchoTest.java.i
-data/test/java/awt/im/InputContext/InputContextTest.java.i
-data/src/share/classes/java/lang/invoke/MutableCallSite.java.i
+data/src/share/classes/java/text/CollationRules.java.i
+data/src/share/classes/javax/management/InstanceOfQueryExp.java.i
+data/src/share/classes/sun/io/CharToByteCp1145.java.i
+data/test/javax/swing/JOptionPane/6464022/bug6464022.java.i
+data/src/share/native/sun/security/ec/impl/secoidt.h.i
 data/src/share/classes/sun/io/ByteToCharUnicode.java.i
 data/test/sun/tools/native2ascii/NativeErrors.java.i
-data/src/share/classes/javax/swing/JToolBar.java.i
+data/src/share/classes/java/lang/invoke/Invokers.java.i
 data/src/share/classes/sun/swing/plaf/windows/ClassicSortArrowIcon.java.i
-data/src/share/classes/java/lang/reflect/TypeVariable.java.i
+data/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleInfo.java.i
 data/make/netbeans/common/architectures/README.i
 data/src/share/classes/sun/management/MappedMXBeanType.java.i
-data/test/sun/management/jmxremote/bootstrap/management_test02_ok.properties.in.i
 data/src/share/classes/java/awt/ActiveEvent.java.i
-data/src/share/classes/com/sun/tools/example/debug/event/ModificationWatchpointEventSet.java.i
-data/src/share/classes/sun/tools/serialver/serialver.properties.i
+data/src/share/native/com/sun/java/util/jar/pack/unpack.cpp.i
+data/src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c.i
 data/src/solaris/native/sun/net/dns/ResolverConfigurationImpl.c.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/v2_0/TypeCode.java.i
-data/test/java/rmi/server/RMIClassLoader/delegateToContextLoader/DelegateToContextLoader.java.i
-data/test/java/lang/Character/CheckProp.java.i
 data/src/share/classes/sun/tools/jconsole/inspector/ThreadDialog.java.i
 data/src/share/classes/sun/text/resources/FormatData_pt_BR.java.i
 data/test/java/util/BitSet/MemoryLeak.java.i
-data/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java.i
+data/src/share/classes/sun/java2d/cmm/ProfileDeferralMgr.java.i
 data/make/tools/swing-beans/beaninfo/images/JTextAreaColor32.gif.i
-data/src/share/classes/com/sun/tools/hat/internal/oql/OQLQuery.java.i
+data/test/java/security/AccessControlContext/NullCombinerEquals.java.i
 data/src/share/classes/sun/security/smartcardio/PCSCException.java.i
 data/src/share/native/sun/font/layout/AnchorTables.cpp.i
+data/make/sun/text/Makefile.i
 data/src/share/classes/javax/swing/text/html/MuxingAttributeSet.java.i
 data/src/share/classes/java/awt/MouseInfo.java.i
 data/src/share/classes/sun/io/CharToByteCp1147.java.i
-data/make/java/redist/fonts/Makefile.i
+data/src/windows/native/sun/windows/awt_Desktop.cpp.i
 data/src/share/classes/sun/text/resources/FormatData_nl_BE.java.i
-data/test/sun/misc/JarIndex/metaInfFilenames/jarB/b/B.java.i
-data/src/share/classes/com/sun/jmx/namespace/RoutingServerProxy.java.i
+data/test/com/sun/security/sasl/gsskerb/run-nosec-wjaas.csh.i
+data/src/share/classes/sun/misc/ProxyGenerator.java.i
+data/src/share/classes/org/openjdk/jigsaw/cli/Librarian.java.i
 data/test/sun/java2d/pisces/Renderer/TestNPE.java.i
 data/test/sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java.i
-data/make/java/zip/reorder-sparc.i
+data/src/share/classes/org/relaxng/datatype/DatatypeException.java.i
 data/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java.i
 data/src/share/classes/sun/rmi/transport/proxy/HttpOutputStream.java.i
-data/src/share/classes/org/openjdk/jigsaw/RemoteRepository.java.i
+data/test/java/nio/Buffer/CopyDirectByteMemory.java.i
+data/src/share/classes/java/nio/file/DirectoryIteratorException.java.i
 data/src/share/classes/com/sun/tools/hat/internal/parser/FileReadBuffer.java.i
 data/src/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java.i
 data/test/java/awt/font/Rotate/Shear.java.i
 data/src/share/classes/com/sun/beans/finder/PrimitiveWrapperMap.java.i
-data/src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java.i
-data/src/share/classes/sun/net/httpserver/HttpExchangeImpl.java.i
-data/test/java/nio/channels/TestUtil.java.i
-data/src/share/classes/javax/swing/WindowConstants.java.i
-data/test/sun/security/x509/X500Name/AllAttribs.java.i
+data/test/java/lang/Thread/UncaughtExceptions.sh.i
+data/src/windows/native/sun/windows/ShellFolder2.cpp.i
+data/test/sun/nio/cs/SurrogateTestEUCTW.plane7.surrogates.i
+data/src/share/classes/java/rmi/server/RemoteServer.java.i
+data/src/share/classes/java/security/cert/CertPathValidator.java.i
+data/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageGenerator.java.i
 data/test/com/sun/jdi/Unload1Targ.java.i
-data/test/java/lang/reflect/Method/invoke/ErrorInInvoke.java.i
-data/src/share/native/sun/java2d/loops/UshortGray.c.i
-data/test/java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.java.i
-data/src/share/classes/java/awt/event/FocusAdapter.java.i
+data/test/javax/management/Introspector/NotAnMBeanTest.java.i
+data/make/common/shared/Defs.gmk.i
+data/src/share/classes/sun/text/normalizer/NormalizerBase.java.i
 data/src/share/classes/javax/swing/text/DefaultFormatter.java.i
 data/test/java/net/Authenticator/B4722333.java.i
 data/src/solaris/native/sun/awt/randr.h.i
-data/src/share/classes/javax/management/openmbean/OpenMBeanInfo.java.i
-data/test/sun/nio/cs/DecoderOverflow.java.i
-data/test/java/lang/instrument/appendToClassLoaderSearch/Application.java.i
-data/test/sun/nio/cs/OLD/DBCS_ONLY_IBM_EBCDIC_Decoder.java.i
+data/src/share/native/java/lang/fdlibm/src/e_lgamma.c.i
+data/src/share/classes/javax/swing/ProgressMonitorInputStream.java.i
+data/make/sun/javazic/tzdata/systemv.i
+data/src/share/classes/sun/nio/cs/ext/MacCroatian.java.i
 data/src/share/classes/sun/rmi/server/ActivationGroupImpl.java.i
-data/src/solaris/native/sun/java2d/loops/vis_FourByteAbgrPre.c.i
-data/src/solaris/classes/sun/font/FcFontConfiguration.java.i
-data/test/sun/management/jmxremote/bootstrap/management_ssltest14_ko.properties.in.i
+data/test/javax/swing/JFileChooser/4847375/bug4847375.java.i
+data/test/java/util/concurrent/Exchanger/ExchangeLoops.java.i
 data/test/java/util/PriorityQueue/RemoveContains.java.i
-data/src/share/classes/sun/io/ByteToCharSingleByte.java.i
+data/src/share/classes/sun/nio/ch/OptionKey.java.i
 data/test/javax/management/Introspector/UnDescribed.java.i
 data/test/sun/security/util/HostnameMatcher/cert2.crt.i
 data/test/java/beans/PropertyEditor/TestEditor.java.i
-data/test/java/security/Policy/GetInstance/GetInstancePolicySpi.java.i
+data/src/share/classes/java/util/concurrent/Phaser.java.i
+data/test/sun/rmi/rmic/classFileVersion/run.sh.i
+data/test/com/sun/jdi/UnpreparedByName.java.i
 data/test/sun/security/pkcs11/nss/lib/linux-i586/libnspr4.so.i
+data/src/share/classes/com/sun/media/sound/ModelDirectedPlayer.java.i
 data/test/javax/sound/midi/Gervill/SoftTuning/NewSoftTuningByteArray.java.i
-data/src/share/native/sun/font/layout/MorphTables.h.i
+data/test/java/io/Serializable/NoClassDefFoundErrorTrap/NoClassDefFoundErrorTrap.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU8U8Func.c.i
 data/test/sun/java2d/pipe/Test7027667.java.i
 data/test/java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java.i
 data/src/share/classes/java/security/spec/package.html.i
-data/test/org/openjdk/jigsaw/tester.sh.i
 data/test/org/openjdk/jigsaw/cli/expired-signer-prikey.pem.i
 data/make/java/Makefile.i
-data/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java.i
-data/test/sun/security/util/asn1StringTypes/StringTypes.java.i
+data/src/windows/npt/npt_md.h.i
 data/test/java/util/Formatter/FailingConstructors.java.i
-data/src/windows/classes/sun/java2d/d3d/D3DDrawImage.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU8U16Func.c.i
+data/test/javax/management/remote/mandatory/provider/provider/JMXConnectorServerProviderImpl.java.i
+data/src/share/classes/javax/management/IntrospectionException.java.i
 data/test/java/lang/StringBuffer/IndexOf.java.i
+data/src/share/classes/sun/security/internal/interfaces/TlsMasterSecret.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU8S16Func.c.i
 data/src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c.i
-data/src/windows/native/sun/windows/awt_new.cpp.i
+data/src/share/classes/sun/tools/tree/ReturnStatement.java.i
 data/src/windows/demo/jvmti/hprof/hprof_md.c.i
-data/test/tools/jar/JarEntryTime.java.i
+data/src/share/demo/jvmti/hprof/hprof_b_spec.h.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/icons/Warn.gif.i
-data/src/share/classes/sun/security/pkcs11/JarVerifier.java.i
-data/src/share/classes/javax/management/event/NotificationManager.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_ca_ES.properties.i
+data/test/javax/security/auth/login/LoginContext/DefaultHandlerImpl.java.i
+data/src/share/classes/sun/management/snmp/jvminstr/JvmMemGCTableMetaImpl.java.i
 data/src/share/classes/sun/io/ByteToCharCp865.java.i
 data/test/java/io/Serializable/resolveClass/MethodTest.java.i
 data/test/java/beans/PropertyEditor/TestIntegerTypeValue.java.i
-data/test/java/rmi/reliability/benchmark/bench/rmi/ObjArrayCalls.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageMetadataFormatResources.java.i
-data/src/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java.i
+data/make/netbeans/world/nbproject/project.xml.i
 data/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM838.java.i
-data/src/share/classes/java/nio/file/FileRef.java.i
+data/src/share/classes/sun/util/logging/resources/logging_it.properties.i
+data/src/share/native/java/lang/fdlibm/src/w_lgamma_r.c.i
 data/test/javax/sound/midi/Gervill/SoftChannel/Omni.java.i
+data/src/share/classes/javax/management/loading/MLetContent.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/inffixed.h.i
+data/src/share/classes/javax/sql/ConnectionEventListener.java.i
 data/src/share/classes/sun/util/resources/CalendarData_hu.properties.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/package.html.i
-data/make/jpda/expr/Makefile.i
+data/test/sun/java2d/SunGraphics2D/DrawImageBilinear.java.i
 data/test/java/io/Serializable/resolveClass/deserializeButton/run.sh.i
-data/test/java/lang/Runtime/exec/WinCommand.java.i
-data/src/share/classes/sun/text/resources/FormatData_ga_IE.java.i
-data/test/javax/management/mxbean/customtypes/IntegerIsStringFactory.java.i
-data/src/share/native/sun/font/layout/LEStandalone.h.i
+data/src/share/classes/com/sun/tools/example/debug/bdi/ExecutionManager.java.i
+data/src/share/native/sun/java2d/pipe/ShapeSpanIterator.c.i
+data/src/share/classes/java/security/spec/DSAPublicKeySpec.java.i
+data/test/com/sun/org/apache/xml/internal/security/exceptions/LocaleTest.java.i
 data/src/windows/native/sun/java2d/d3d/D3DPaints.h.i
 data/make/mkdemo/applets/Clock/Makefile.i
-data/test/java/awt/geom/Arc2D/SerializationTest.java.i
-data/make/tools/src/build/tools/jdwpgen/ErrorSetNode.java.i
+data/test/java/util/zip/ZipFile/CopyJar.java.i
+data/test/javax/management/remote/mandatory/loading/DefaultProviderTest.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverFragment.java.i
 data/src/share/classes/sun/java2d/cmm/lcms/META-INF/services/sun.java2d.cmm.PCMM.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_ECDH1_DERIVE_PARAMS.java.i
 data/test/java/util/concurrent/Semaphore/RacingReleases.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/DoubleBean.java.i
-data/make/mkdemo/applets/NervousText/Makefile.i
+data/src/windows/native/sun/windows/img_util_md.h.i
+data/src/share/classes/com/sun/media/sound/RIFFReader.java.i
 data/src/share/classes/javax/xml/crypto/dsig/XMLSignatureException.java.i
-data/src/share/classes/javax/management/openmbean/InvalidOpenTypeException.java.i
-data/test/java/beans/XMLEncoder/java_awt_Dimension.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/XMLX509DataContent.java.i
+data/test/java/lang/Float/ParseFloat.java.i
 data/src/share/classes/javax/management/DescriptorRead.java.i
-data/src/solaris/native/com/sun/security/auth/module/Unix.c.i
+data/test/sun/nio/cs/OLD/IBM949C_OLD.java.i
+data/test/sun/rmi/rmic/extraCompilation/run.sh.i
 data/test/com/sun/tools/attach/application.mf.i
-data/test/javax/management/loading/LibraryLoader/jar_src/RandomGen.h.i
 data/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationBroadcaster.java.i
+data/test/com/sun/servicetag/servicetag2.properties.i
 data/src/solaris/classes/sun/awt/X11/XAwtState.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMBase64Transform.java.i
+data/test/java/lang/instrument/appendToClassLoaderSearch/ClassUnloadTest.sh.i
+data/test/com/sun/crypto/provider/Mac/MacClone.java.i
 data/make/sun/javazic/tzdata/solar89.i
 data/test/java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java.i
+data/src/share/demo/jvmti/agent_util/README.txt.i
 data/src/share/classes/javax/naming/directory/BasicAttributes.java.i
-data/test/java/lang/StringBuffer/Exceptions.java.i
-data/src/share/classes/sun/security/jgss/krb5/Krb5Util.java.i
-data/test/java/lang/instrument/StressGetObjectSizeTest.sh.i
+data/src/share/sample/jmx/jmx-scandir/docfiles/scandir-start.jpg.i
+data/src/solaris/classes/sun/nio/ch/PollArrayWrapper.java.i
+data/test/java/lang/management/MemoryMXBean/MemoryUtil.java.i
 data/src/share/classes/javax/naming/directory/AttributeInUseException.java.i
 data/test/java/beans/XMLEncoder/Test6531597.java.i
 data/test/java/io/Serializable/writeReplace/WriteReplace.java.i
 data/test/javax/swing/JFileChooser/6688203/bug6688203.java.i
 data/test/java/lang/StrictMath/HyperbolicTests.java.i
+data/test/java/util/ResourceBundle/TestResource_it.java.i
 data/test/com/sun/jdi/connect/spi/SimpleLaunchingConnector.java.i
 data/test/java/awt/font/TextLayout/AttributeValuesCastTest.java.i
 data/test/javax/swing/JColorChooser/Test4759934.java.i
-data/src/share/classes/javax/xml/crypto/dsig/SignatureMethod.java.i
-data/src/share/native/sun/security/jgss/wrapper/gssapi.h.i
+data/src/share/classes/sun/security/krb5/internal/TGSRep.java.i
+data/src/share/classes/sun/net/www/protocol/http/NegotiatorImpl.java.i
 data/src/share/classes/sun/nio/cs/ext/ISO2022_CN_CNS.java.i
 data/src/share/classes/javax/imageio/spi/PartiallyOrderedSet.java.i
-data/test/java/lang/instrument/PremainClass/InheritAgent1100.java.i
+data/src/share/classes/javax/management/monitor/StringMonitorMBean.java.i
 data/src/share/classes/sun/text/resources/FormatData_el_GR.java.i
+data/LICENSE.i
 data/test/javax/sound/midi/Gervill/RiffReaderWriter/ReadUnsignedShort.java.i
-data/test/java/io/DataInputStream/ReadFully.java.i
-data/src/share/classes/sun/java2d/pipe/hw/AccelTypedVolatileImage.java.i
-data/src/share/native/sun/font/layout/AlternateSubstSubtables.h.i
+data/test/java/rmi/activation/ActivationSystem/unregisterGroup/rmid.security.policy.i
+data/test/java/io/Serializable/oldTests/ArrayOpsTest.java.i
+data/test/java/rmi/activation/Activatable/checkImplClassLoader/ActivatableImpl.java.i
 data/src/share/classes/com/sun/media/sound/services/javax.sound.sampled.spi.AudioFileReader.i
-data/src/share/classes/java/sql/Date.java.i
-data/src/share/classes/sun/text/resources/FormatData_ca.java.i
-data/src/share/classes/com/sun/jmx/snmp/internal/SnmpModelLcd.java.i
+data/src/share/classes/com/sun/java/util/jar/pack/CodingMethod.java.i
+data/test/java/beans/Introspector/Test4634390.java.i
+data/src/share/classes/java/lang/annotation/AnnotationTypeMismatchException.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMRetrievalMethod.java.i
 data/make/tools/CharsetMapping/IBM1364.map.i
-data/src/windows/classes/sun/security/mscapi/RSAPrivateKey.java.i
-data/src/share/classes/javax/swing/plaf/basic/BasicListUI.java.i
+data/test/java/util/Vector/IllegalConstructorArgs.java.i
+data/src/share/classes/com/sun/jdi/request/StepRequest.java.i
 data/src/windows/native/java/net/DualStackPlainDatagramSocketImpl.c.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmMemGCEntryImpl.java.i
 data/src/share/demo/jvmti/hprof/hprof_error.h.i
-data/src/share/classes/sun/io/CharToByteCp949C.java.i
+data/test/com/sun/net/httpserver/bugs/B6526913.java.i
 data/test/java/beans/XMLEncoder/java_util_HashMap.java.i
 data/test/java/util/zip/ZipCoding.java.i
-data/test/com/sun/net/httpserver/Test5.java.i
+data/test/java/awt/geom/Arc2D/SerializationTest.java.i
 data/make/tools/reorder/tests/Exit.java.i
-data/make/common/shared/Defs-versions.gmk.i
-data/test/java/lang/ref/SoftReference/Bash.java.i
+data/test/sun/management/jmxremote/bootstrap/management_ssltest07_ok.properties.in.i
+data/test/com/sun/jdi/UnpreparedClasses.java.i
 data/test/javax/sound/midi/Gervill/RiffReaderWriter/ReadShort.java.i
 data/test/java/net/DatagramPacket/Unresolved.java.i
 data/src/share/classes/sun/io/CharToByteCp1124.java.i
-data/test/java/util/Locale/data/deflocale.sh.i
-data/src/share/classes/java/lang/annotation/Documented.java.i
+data/test/java/io/Serializable/lookupAnyInvocation/LookupAnyInvocation.java.i
+data/src/share/back/log_messages.c.i
 data/src/share/classes/com/sun/jndi/ldap/pool/PoolCallback.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifToggleButtonUI.java.i
 data/test/java/io/StreamTokenizer/QuoteTest.java.i
 data/src/share/classes/com/sun/jmx/remote/protocol/iiop/ClientProvider.java.i
 data/test/com/sun/jdi/DoubleAgentTest.java.i
 data/test/java/lang/ClassLoader/findSystemClass/Loader.java.i
-data/src/share/classes/javax/xml/crypto/dom/package.html.i
+data/test/com/sun/security/auth/module/LdapLoginModule/CheckConfigs.policy.i
 data/test/java/lang/Math/IeeeRecommendedTests.java.i
-data/src/share/classes/sun/util/resources/CalendarData_et.properties.i
-data/src/share/classes/java/awt/peer/ScrollbarPeer.java.i
-data/src/share/classes/java/io/StreamCorruptedException.java.i
+data/test/java/lang/instrument/TransformMethodTest.java.i
+data/test/java/util/ResourceBundle/Bug4396021SpecialMessages.java.i
+data/src/share/classes/sun/net/www/http/ChunkedInputStream.java.i
+data/src/solaris/classes/sun/awt/UNIXToolkit.java.i
 data/src/solaris/classes/sun/awt/X11/XQueryTree.java.i
-data/src/share/classes/javax/swing/border/MatteBorder.java.i
-data/test/com/sun/security/sasl/Cram.java.i
+data/src/share/classes/javax/swing/text/html/default.css.i
 data/test/java/io/FileOutputStream/FileOpen.sh.i
 data/make/tools/CharsetMapping/MS1257.map.i
+data/src/share/classes/javax/management/openmbean/InvalidOpenTypeException.java.i
 data/src/windows/native/sun/java2d/d3d/D3DPipeline.cpp.i
 data/test/javax/management/Introspector/MBeanDescriptionTest.java.i
-data/src/share/back/ClassObjectReferenceImpl.h.i
-data/test/java/rmi/reliability/benchmark/bench/serial/DoubleArrays.java.i
+data/src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipCoder.java.i
+data/test/javax/management/loading/LibraryLoader/jar_src/RandomGen.h.i
 data/src/share/native/sun/security/ec/ecp_192.c.i
 data/src/share/classes/sun/swing/plaf/synth/StyleAssociation.java.i
 data/make/mkdemo/applets/BarChart/Makefile.i
-data/src/solaris/native/sun/awt/medialib/vis_32.il.i
+data/test/javax/sound/midi/Gervill/SoftProvider/GetDevice.java.i
 data/test/java/lang/annotation/RecursiveAnnotation.java.i
 data/test/sun/security/pkcs11/nss/lib/linux-i586/libsoftokn3.so.d
-data/test/java/security/cert/CertPathValidator/nameConstraints/openssl.cnf.i
-data/src/share/classes/sun/util/resources/CalendarData_in_ID.properties.i
+data/test/sun/security/pkcs11/Secmod/TrustAnchors.java.i
+data/src/share/native/sun/awt/image/cvutils/img_input8.h.i
 data/src/share/classes/sun/io/ByteToCharMacArabic.java.i
-data/test/javax/sound/midi/Gervill/ModelIdentifier/NewModelIdentifierStringInt.java.i
-data/src/solaris/native/sun/nio/fs/genUnixConstants.c.i
+data/test/javax/imageio/plugins/png/GrayPngTest.java.i
 data/test/java/lang/instrument/Counter.java.i
 data/src/share/demo/jfc/Font2DTest/README.txt.i
 data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/GetLoopLength.java.i
 data/src/share/classes/javax/swing/plaf/metal/icons/sortUp.png.i
 data/src/share/native/sun/security/ec/impl/mplogic.h.i
-data/src/share/classes/javax/imageio/metadata/IIOMetadataNode.java.i
-data/make/modules/jdk.awt.ls.i
+data/src/share/classes/javax/swing/plaf/metal/icons/ocean/info.png.i
+data/src/share/classes/com/sun/imageio/plugins/gif/GIFMetadata.java.i
 data/src/share/classes/sun/nio/cs/ext/JIS_X_0208_MS932_Encoder.java.i
 data/make/netbeans/world/build.properties.i
 data/test/java/rmi/reliability/benchmark/bench/serial/Booleans.java.i
-data/src/share/classes/java/lang/reflect/InvocationTargetException.java.i
-data/test/java/io/PrintStream/ClearErrorStream.java.i
+data/src/share/classes/java/lang/UnsatisfiedLinkError.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/SignerOutputStream.java.i
 data/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted_Stub.java.i
 data/src/share/classes/com/sun/tools/jdi/VoidTypeImpl.java.i
-data/src/share/classes/sun/nio/cs/ext/IBM864.java.i
-data/src/share/classes/java/lang/invoke/Invokers.java.i
-data/test/java/math/BigDecimal/FloatDoubleValueTests.java.i
+data/test/sun/nio/cs/TestIBMBugs.java.i
+data/test/sun/nio/cs/OLD/X11KSC5601_OLD.java.i
 data/test/java/lang/management/ThreadMXBean/ThreadInfoArray.java.i
-data/make/sun/font/mapfile-vers.openjdk.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/Test.java.i
 data/src/share/classes/sun/net/www/protocol/gopher/GopherClient.java.i
 data/test/java/util/Locale/data/deflocale.winxp.i
-data/test/com/sun/security/auth/callback/DialogCallbackHandler/Default.java.i
+data/test/javax/sound/midi/Gervill/DLSSoundbankReader/TestGetSoundbankUrl.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/DefaultMXBeanMappingFactory.java.i
-data/test/sun/nio/cs/OLD/IBM949C_OLD.java.i
-data/src/share/classes/javax/swing/colorchooser/DefaultSwatchChooserPanel.java.i
-data/test/java/beans/PropertyChangeSupport/TestMethods.java.i
+data/src/share/lib/images/cursors/win32_LinkNoDrop32x32.gif.i
+data/test/sun/security/pkcs11/MessageDigest/ReinitDigest.java.i
+data/test/java/io/Serializable/backRefCNFException/Write.java.i
 data/test/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java.i
 data/src/windows/native/sun/windows/awt_Canvas.h.i
 data/test/javax/management/remote/mandatory/subjectDelegation/SimpleStandardMBean.java.i
 data/src/share/classes/java/nio/file/attribute/FileAttribute.java.i
 data/src/share/classes/javax/swing/ToolTipManager.java.i
+data/src/solaris/native/sun/awt/medialib/vis_64.il.i
+data/src/share/classes/sun/security/x509/PrivateKeyUsageExtension.java.i
 data/src/share/classes/java/awt/Dimension.java.i
-data/src/windows/classes/sun/awt/windows/WingDings.java.i
+data/test/java/lang/management/ThreadMXBean/ThreadBlockedCount.java.i
 data/src/share/classes/sun/print/OpenBook.java.i
 data/test/java/io/Serializable/oldTests/PrimitivesTest.java.i
 data/test/java/io/BufferedReader/ReadLine.java.i
 data/test/javax/sound/midi/Gervill/ModelDestination/SetIdentifier.java.i
+data/src/windows/classes/sun/java2d/windows/WindowsFlags.java.i
 data/src/solaris/classes/sun/nio/ch/SctpSendFailed.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/icons/Error.gif.i
-data/src/share/native/java/lang/reflect/Proxy.c.i
+data/src/share/bin/splashscreen_stubs.c.i
+data/src/share/classes/javax/print/attribute/PrintServiceAttributeSet.java.i
+data/test/sun/security/krb5/auto/CleanState.java.i
 data/src/solaris/classes/sun/awt/X11/XEmbeddingContainer.java.i
 data/src/share/native/com/sun/media/sound/SoundDefs.h.i
 data/src/share/classes/java/security/spec/ECFieldFp.java.i
-data/test/java/rmi/RMISecurityManager/checkPackageAccess/CheckPackageAccess.java.i
-data/make/tools/CharsetMapping/IBM943.map.i
+data/test/java/security/cert/CertPathValidator/nameConstraints/NameConstraintsWithRID.java.i
+data/src/share/classes/javax/swing/JMenuItem.java.i
+data/src/share/classes/sun/tools/jstat/Alignment.java.i
+data/test/javax/management/context/localizable/WhatsitMBean.java.i
 data/src/windows/classes/sun/awt/windows/WButtonPeer.java.i
 data/src/share/classes/sun/util/resources/CalendarData_ms_MY.properties.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/rmi/RemoteVmManager.java.i
-data/test/java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java.i
-data/test/com/sun/crypto/provider/TLS/TestPRF12.java.i
-data/make/tools/CharsetMapping/IBM037.nr.i
-data/test/java/math/RoundingMode/RoundingModeTests.java.i
+data/test/sun/net/www/http/HttpClient/ProxyFromCache.java.i
+data/test/sun/security/mscapi/SignUsingNONEwithRSA.java.i
+data/src/share/classes/java/awt/dnd/DropTargetEvent.java.i
+data/src/share/classes/javax/management/relation/RelationServiceMBean.java.i
+data/test/java/nio/MappedByteBuffer/Basic.java.i
 data/src/share/classes/javax/swing/plaf/metal/sounds/MenuItemCommand.wav.i
 data/src/share/classes/sun/text/resources/FormatData_fr_FR.java.i
-data/src/share/classes/javax/swing/undo/doc-files/UndoManager-3.gif.i
-data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/NullTest.java.i
+data/test/java/net/URLEncoder/URLEncoderEncodeArgs.java.i
+data/test/java/util/Collections/AsLifoQueue.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXSLTTransform.java.i
 data/src/solaris/native/java/net/net_util_md.h.i
 data/src/windows/native/sun/windows/awt_List.h.i
 data/src/share/classes/sun/security/jgss/krb5/WrapToken.java.i
 data/test/java/util/concurrent/ConcurrentMap/ConcurrentModification.java.i
-data/src/share/classes/javax/swing/plaf/nimbus/NimbusIcon.java.i
-data/test/java/util/logging/LoggerWeakRefLeak.java.i
-data/src/share/native/sun/awt/medialib/mlib_c_ImageBlendTable.h.i
-data/src/share/classes/java/awt/doc-files/Scrollbar-2.gif.i
+data/src/share/classes/java/awt/print/PrinterGraphics.java.i
+data/test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/Close.java.i
+data/src/share/classes/java/awt/image/RasterOp.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsSpinnerUI.java.i
+data/src/share/classes/sun/management/FileSystem.java.i
+data/test/javax/management/query/QueryParseTest.java.i
+data/test/java/lang/instrument/NamedBuffer.java.i
 data/test/java/lang/instrument/PremainClass/InheritAgent1000.java.i
-data/src/share/classes/javax/naming/LinkLoopException.java.i
-data/src/share/classes/com/sun/imageio/spi/FileImageOutputStreamSpi.java.i
+data/test/sun/net/util/IPAddressUtilTest.java.i
+data/test/java/lang/String/Split.java.i
 data/src/solaris/classes/sun/awt/motif/MDialogPeer.java.i
-data/src/share/classes/java/rmi/server/RMIClientSocketFactory.java.i
+data/src/share/classes/sun/rmi/transport/WeakRef.java.i
+data/src/share/classes/sun/awt/im/SimpleInputMethodWindow.java.i
 data/test/java/security/Signature/TestInitSignWithMyOwnRandom.java.i
 data/src/linux/doc/man/idlj.1.i
 data/test/sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java.i
-data/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java.i
+data/test/javax/crypto/Cipher/Turkish.java.i
 data/src/share/classes/javax/swing/event/CaretEvent.java.i
-data/src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java.i
 data/src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BC_U16.c.i
-data/src/share/classes/sun/security/provider/certpath/State.java.i
-data/test/java/util/ResourceBundle/Control/PackagePrivateRB.java.i
+data/src/windows/native/sun/java2d/d3d/D3DShaders.h.i
 data/test/com/sun/tools/attach/CommonSetup.sh.i
 data/test/com/sun/nio/sctp/SctpMultiChannel/Send.java.i
 data/test/java/util/concurrent/ThreadPoolExecutor/TimeOutShrink.java.i
-data/src/share/classes/sun/security/pkcs11/P11ECDHKeyAgreement.java.i
-data/src/share/classes/javax/swing/Autoscroller.java.i
-data/src/share/classes/java/awt/color/ICC_ProfileRGB.java.i
+data/test/java/lang/management/ThreadMXBean/ThreadStateTest.java.i
+data/test/java/io/Serializable/class/NonSerialA_2.java.i
+data/test/java/util/concurrent/ThreadPoolExecutor/ScheduledTickleService.java.i
 data/src/solaris/native/sun/awt/awt_Insets.c.i
 data/src/share/native/sun/font/layout/GlyphLookupTables.h.i
 data/src/share/classes/sun/text/resources/FormatData_th.java.i
 data/src/share/classes/com/sun/jdi/event/VMDisconnectEvent.java.i
-data/src/linux/doc/man/ja/jstack.1.i
+data/src/share/classes/sun/io/ByteToCharEUC2.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java.i
 data/test/sun/security/pkcs11/KeyStore/BasicData/random.cert.i
 data/src/share/native/java/util/zip/zlib-1.2.3/inflate.h.i
 data/test/com/sun/security/sasl/digest/AuthNoUtf8.java.i
 data/test/java/io/OutputStreamWriter/BoundsCheck.java.i
-data/test/java/nio/channels/ServerSocketChannel/Basic.java.i
+data/src/share/classes/sun/tools/jar/SignatureFile.java.i
 data/src/share/classes/java/util/ResourceBundle.java.i
-data/test/java/awt/Graphics2D/DrawString/EmptyAttrString.java.i
+data/test/java/math/BigDecimal/ZeroScalingTests.java.i
 data/test/java/net/URLConnection/B5052093.java.i
 data/test/com/sun/jdi/ImmutableResourceTest.java.i
+data/src/share/classes/javax/imageio/metadata/doc-files/gif_metadata.html.i
 data/src/share/classes/javax/accessibility/AccessibleSelection.java.i
-data/src/share/classes/com/sun/beans/decoder/FloatElementHandler.java.i
+data/test/java/lang/Double/ToHexString.java.i
 data/src/share/classes/sun/io/CharToByteEUC_JP_LINUX.java.i
 data/src/share/native/sun/awt/image/cvutils/img_globals.c.i
 data/make/sun/splashscreen/Makefile.i
-data/test/java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java.i
-data/src/share/classes/javax/swing/text/html/MinimalHTMLWriter.java.i
+data/src/share/classes/sun/tools/jconsole/inspector/OperationEntry.java.i
+data/src/share/classes/sun/management/manifest.i
 data/test/sun/security/tools/jarsigner/onlymanifest.sh.i
 data/src/share/classes/javax/management/event/RMIPushEventRelay.java.i
 data/src/solaris/classes/sun/awt/X11/XPanelPeer.java.i
 data/src/share/classes/javax/management/relation/MBeanServerNotificationFilter.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CloseKeepAliveCached.java.i
-data/src/share/classes/javax/swing/text/Document.java.i
+data/src/share/classes/sun/tools/java/Scanner.java.i
 data/src/share/classes/sun/tools/jstat/ColumnFormat.java.i
 data/make/sun/headless/mapfile-vers.i
-data/src/share/classes/sun/security/rsa/RSAKeyPairGenerator.java.i
+data/src/share/classes/sun/java2d/pipe/ValidatePipe.java.i
+data/test/com/sun/security/sasl/digest/Privacy.java.i
 data/src/share/classes/sun/io/ByteToCharCp862.java.i
 data/test/java/util/concurrent/LinkedBlockingQueue/ToArray.java.i
-data/src/share/classes/sun/net/www/protocol/http/HttpAuthenticator.java.i
-data/test/java/beans/VetoableChangeSupport/TestEquals.java.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/UnloadInstruments.java.i
+data/test/sun/security/pkcs11/KeyStore/ClientAuthData/server.keystore.i
 data/make/tools/CharsetMapping/IBM1046.map.i
 data/src/share/classes/sun/io/CharToByteCp1148.java.i
 data/src/share/classes/java/awt/event/WindowEvent.java.i
-data/src/share/classes/sun/io/ByteToCharISO8859_3.java.i
-data/src/share/classes/javax/accessibility/AccessibleStreamable.java.i
+data/make/common/shared/Defs-versions.gmk.i
+data/src/share/classes/sun/rmi/registry/RegistryImpl.java.i
 data/test/sun/rmi/rmic/covariantReturns/G2.java.i
-data/test/javax/swing/JColorChooser/Test4222508.java.i
 data/test/java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java.i
 data/src/share/demo/jfc/SampleTree/resources/images/collapsed.gif.i
-data/src/share/classes/java/awt/dnd/DropTargetAdapter.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolver.java.i
+data/src/share/classes/sun/security/krb5/Credentials.java.i
+data/test/java/util/ResourceBundle/Test4314141A__DE.properties.i
+data/src/share/classes/sun/management/counter/perf/StringCounterSnapshot.java.i
 data/src/share/classes/sun/nio/ch/MembershipRegistry.java.i
-data/src/share/classes/java/awt/image/RasterFormatException.java.i
+data/test/sun/net/InetAddress/nameservice/chaining/Providers.java.i
 data/make/modules/tools/nbproject/project.xml.i
 data/src/share/classes/sun/text/resources/FormatData_mk.java.i
 data/src/share/classes/sun/tools/java/ClassDefinition.java.i
 data/test/com/sun/net/httpserver/bugs/B6341616.java.i
 data/src/share/classes/com/sun/beans/finder/Signature.java.i
-data/src/share/classes/com/sun/tools/hat/internal/server/HistogramQuery.java.i
-data/test/java/lang/Throwable/NewChainedExceptions.java.i
-data/src/share/classes/java/awt/image/RasterOp.java.i
+data/src/share/classes/java/nio/channels/InterruptibleChannel.java.i
+data/test/javax/sound/midi/Gervill/SimpleSoundbank/RemoveInstrument.java.i
 data/src/share/classes/sun/text/resources/FormatData_nl.java.i
-data/test/java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html.i
-data/src/share/classes/sun/swing/AccessibleMethod.java.i
+data/test/java/util/Locale/bug4122700.java.i
+data/src/share/native/sun/awt/medialib/mlib_image.h.i
 data/make/com/sun/xml/Makefile.i
 data/src/share/classes/java/util/prefs/PreferenceChangeEvent.java.i
 data/src/share/classes/javax/print/attribute/standard/PrinterStateReason.java.i
 data/test/javax/management/remote/mandatory/notif/NotifReconnectDeadlockTest.java.i
-data/src/share/classes/sun/awt/HeadlessToolkit.java.i
-data/test/java/io/Serializable/oldTests/AnnotateClass.java.i
+data/src/share/native/sun/security/ec/ec.c.i
+data/src/share/classes/java/rmi/activation/Activator.java.i
 data/src/share/classes/java/dyn/VolatileCallSite.java.i
-data/test/java/lang/management/ManagementFactory/PlatformMBeanServerTest.java.i
+data/test/javax/management/remote/mandatory/socketFactories/RMIClientFactory.java.i
 data/src/solaris/classes/sun/awt/X11/XClipboard.java.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpIpAddress.java.i
+data/src/windows/native/sun/windows/awt_Label.cpp.i
 data/src/share/classes/org/openjdk/jigsaw/cli/package-info.java.i
-data/src/windows/native/sun/windows/awt_Scrollbar.cpp.i
+data/test/java/io/Serializable/evolution/RenamePackage/extension/ExtendedObjectInputStream.java.i
 data/src/share/native/sun/awt/libpng/pngtest.c.i
 data/src/share/classes/sun/management/snmp/jvminstr/package.html.i
 data/src/share/classes/sun/util/resources/TimeZoneNames_hi.java.i
-data/src/share/classes/javax/management/namespace/VirtualEventManager.java.i
+data/src/windows/classes/sun/java2d/windows/DDRenderer.java.i
+data/test/java/beans/Introspector/Test5102804.java.i
 data/test/sun/nio/cs/TestISCII91.java.i
-data/src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java.i
-data/src/share/classes/java/text/spi/DateFormatSymbolsProvider.java.i
+data/src/share/classes/sun/text/resources/FormatData_ar_JO.java.i
+data/src/share/classes/org/openjdk/jigsaw/SignedModule.java.i
+data/src/windows/native/common/locale_str.h.i
 data/src/share/classes/org/openjdk/jigsaw/KernelLoader.java.i
-data/src/windows/classes/sun/nio/fs/WindowsWatchService.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_en_IE.properties.i
 data/test/java/nio/file/Path/UriImportExport.java.i
 data/src/share/classes/sun/awt/AWTPermissionFactory.java.i
+data/make/ASSEMBLY_EXCEPTION.i
 data/test/java/net/URLClassLoader/sealing/a/p/A.java.i
 data/test/java/io/Serializable/class/Test.java.i
-data/src/share/classes/sun/rmi/rmic/Main.java.i
+data/test/java/lang/reflect/Module/ModuleAnnotationTest.java.i
 data/src/share/classes/java/beans/EventSetDescriptor.java.i
 data/test/java/util/concurrent/ConcurrentHashMap/toArray.java.i
-data/make/tools/swing-beans/beaninfo/images/JEditorPaneColor32.gif.i
+data/test/javax/swing/GroupLayout/7071166/bug7071166.java.i
+data/src/solaris/native/sun/java2d/x11/X11SurfaceData.h.i
 data/test/com/sun/servicetag/ValidRegistrationData.java.i
-data/src/solaris/classes/sun/nio/fs/UnixException.java.i
+data/test/com/sun/management/OperatingSystemMXBean/GetTotalSwapSpaceSize.java.i
 data/src/solaris/classes/sun/awt/X11/GtkFileDialogPeer.java.i
 data/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSocketInherit.java.i
-data/test/sun/nio/cs/TestUTF_16.java.i
 data/test/sun/net/idn/NFS4StringPrep.java.i
 data/src/share/classes/java/lang/UnsupportedOperationException.java.i
-data/src/share/classes/com/sun/tools/attach/VirtualMachineDescriptor.java.i
+data/test/org/openjdk/jigsaw/cli/tsa-prikey.pem.i
 data/src/share/native/sun/security/ec/impl/ecc_impl.h.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheTransform.java.i
 data/src/share/classes/javax/swing/filechooser/package.html.i
@@ -18325,90 +18261,96 @@ data/test/java/io/Serializable/unresolvedClassDesc/Write.java.i
 data/test/sun/rmi/rmic/classFileVersion/G1Impl.java.i
 data/test/java/lang/invoke/6987555/Test6987555.java.i
 data/src/windows/classes/sun/java2d/d3d/D3DMaskFill.java.i
-data/src/share/classes/sun/security/provider/DSAParameters.java.i
+data/test/java/security/Security/SecurityPropFile/SecurityPropFile.policy.i
 data/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java.i
-data/src/share/classes/javax/management/DescriptorAccess.java.i
-data/make/tools/src/build/tools/generatebreakiteratordata/RuleBasedBreakIteratorBuilder.java.i
-data/src/share/classes/java/lang/IllegalMonitorStateException.java.i
-data/src/windows/native/sun/windows/awt_Event.cpp.i
+data/make/mksample/scripting/Makefile.i
+data/test/java/beans/PropertyEditor/TestLongClassJava.java.i
+data/test/com/sun/servicetag/SystemRegistryTest.java.i
+data/test/java/security/KeyRep/AES.pre.1.5.key.i
 data/test/tools/pack200/CommandLineTests.java.i
-data/src/share/classes/sun/security/x509/PrivateKeyUsageExtension.java.i
+data/src/share/classes/sun/text/resources/FormatData_ko.java.i
 data/test/tools/pack200/AttributeTests.java.i
 data/src/windows/native/sun/windows/awt_TrayIcon.h.i
-data/src/share/classes/com/sun/tools/jdi/NonConcreteMethodImpl.java.i
+data/test/sun/security/provider/PolicyParser/UnresolvedProperty.policy.i
 data/src/share/classes/java/dyn/InvokeDynamic.java.i
-data/make/tools/CharsetMapping/MacGreek.map.i
+data/src/share/classes/javax/sound/sampled/Line.java.i
 data/src/share/classes/sun/misc/ExtensionInstallationProvider.java.i
 data/src/share/classes/sun/security/tools/policytool/PolicyTool.java.i
-data/src/windows/classes/sun/security/mscapi/RSAKeyPairGenerator.java.i
+data/test/java/security/SecureRandom/GetAlgorithm.java.i
 data/test/java/lang/reflect/Generics/StringsAndBounds.java.i
+data/src/share/back/ThreadGroupReferenceImpl.c.i
 data/src/share/classes/sun/tools/tree/CodeContext.java.i
-data/test/java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.java.i
+data/src/share/classes/java/nio/channels/SeekableByteChannel.java.i
 data/src/share/classes/sun/net/www/protocol/http/NegotiateAuthentication.java.i
 data/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_MidiOut.c.i
-data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparc/libLauncher.so.i
-data/src/share/classes/javax/imageio/stream/MemoryCache.java.i
+data/src/share/classes/javax/management/openmbean/OpenMBeanInfo.java.i
+data/test/java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java.i
 data/src/share/classes/javax/sound/sampled/package.html.i
-data/src/solaris/native/sun/java2d/loops/mlib_ImageZoom_NN.c.i
-data/test/java/nio/channels/FileChannel/ReadToLimit.java.i
+data/test/javax/swing/JLayer/6872503/bug6872503.java.i
 data/test/java/net/URL/runconstructor.sh.i
 data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipDirectoryStream.java.i
 data/test/java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java.i
+data/make/tools/src/build/tools/stripproperties/StripProperties.java.i
 data/src/solaris/classes/sun/java2d/x11/X11VolatileSurfaceManager.java.i
-data/test/sun/security/smartcardio/Utils.java.i
 data/src/share/classes/sun/net/SocksProxy.java.i
 data/src/share/classes/sun/security/util/PropertyExpander.java.i
 data/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageGenerator.java.i
-data/src/share/classes/java/rmi/Remote.java.i
-data/make/java/math/Makefile.i
-data/src/share/classes/javax/management/NotificationFilterSupport.java.i
+data/src/share/classes/sun/font/ScriptRun.java.i
+data/src/share/classes/sun/management/snmp/jvminstr/JvmRTInputArgsEntryImpl.java.i
+data/test/sun/security/provider/certpath/DisabledAlgorithms/generate.sh.i
+data/src/share/classes/javax/swing/Autoscroller.java.i
+data/src/share/classes/com/sun/jmx/snmp/agent/SnmpRequestTree.java.i
 data/test/java/security/Provider/ChangeProviders.java.i
-data/src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.cpp.i
-data/src/share/classes/java/awt/RenderingHints.java.i
+data/test/javax/management/remote/mandatory/subjectDelegation/SubjectDelegation3Test.java.i
+data/src/share/bin/version_comp.c.i
 data/src/share/native/sun/awt/image/cvutils/img_fsutil.h.i
 data/test/com/sun/jdi/ClassLoaderTarg.java.i
-data/src/share/classes/com/sun/tools/hat/internal/model/JavaChar.java.i
-data/src/share/classes/com/sun/tools/hat/internal/model/StackTrace.java.i
+data/src/share/classes/com/sun/jndi/rmi/registry/RemoteReference.java.i
+data/src/share/classes/javax/print/attribute/standard/Fidelity.java.i
 data/test/sun/tools/jhat/HatRun.java.i
+data/src/share/classes/javax/swing/undo/doc-files/UndoManager-2.gif.i
 data/src/share/classes/sun/util/resources/LocaleNames_da.properties.i
 data/src/share/native/com/sun/java/util/jar/pack/defines.h.i
 data/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_CommonUtils.c.i
+data/src/share/back/ThreadReferenceImpl.c.i
 data/test/javax/sound/midi/Gervill/ModelByteBuffer/NewModelByteBufferByteArrayIntInt.java.i
+data/make/tools/src/build/tools/generatenimbus/SynthModel.java.i
 data/src/share/classes/sun/security/ssl/BaseSSLSocketImpl.java.i
-data/src/share/bin/parse_manifest.c.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfo.java.i
-data/test/javax/swing/JLabel/6501991/bug6501991.java.i
+data/test/com/sun/net/httpserver/SelCacheTest.java.i
+data/test/sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java.i
+data/test/java/util/Vector/SimpleSerialization.java.i
+data/src/share/classes/java/security/Principal.java.i
+data/test/javax/swing/plaf/metal/MetalSliderUI/Test6657026.java.i
 data/src/share/classes/sun/management/snmp/jvminstr/JvmRTClassPathEntryImpl.java.i
-data/test/sun/security/validator/CertReplace.java.i
 data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest10_ok.password.in.i
-data/src/share/classes/java/awt/peer/MenuItemPeer.java.i
-data/test/javax/management/ImplementationVersion/policy.i
+data/test/java/security/cert/CertPathValidator/trustAnchor/ValidateNC.java.i
+data/test/sun/nio/cs/StreamEncoderClose.java.i
 data/test/javax/security/sasl/Sasl/PassSysProps.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/XMLSignatureException.java.i
 data/src/share/classes/sun/rmi/rmic/RMIGenerator.java.i
 data/src/share/native/sun/awt/libpng/png.h.i
 data/src/share/lib/cmm/lcms/sRGB.pf.i
-data/src/share/demo/jvmti/waiters/Thread.cpp.i
+data/src/linux/doc/man/ja/jstatd.1.i
 data/make/sun/javazic/tzdata/australasia.i
-data/make/tools/src/build/tools/jdwpgen/ValueTypeNode.java.i
-data/test/javax/sound/midi/Gervill/ModelPerformer/SetVelFrom.java.i
-data/src/windows/native/sun/security/pkcs11/wrapper/p11_md.h.i
+data/test/sun/net/InetAddress/nameservice/chaining/Simple1NameServiceDescriptor.java.i
+data/test/javax/security/auth/x500/X500Principal/KeywordMap.java.i
+data/src/share/classes/sun/tools/tree/BitOrExpression.java.i
 data/src/share/classes/sun/security/util/SignatureFileVerifier.java.i
 data/src/share/classes/sun/text/resources/CollationData_ru.java.i
-data/test/java/nio/channels/FileChannel/Transfer.java.i
-data/src/share/classes/java/awt/PopupMenu.java.i
-data/src/windows/native/sun/net/dns/ResolverConfigurationImpl.c.i
-data/src/share/classes/java/rmi/server/ServerNotActiveException.java.i
-data/src/share/classes/com/sun/media/sound/DLSInfo.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/X509ExtendedTMEnabled.java.i
+data/test/sun/net/www/protocol/http/ProxyTunnelServer.java.i
+data/src/windows/native/sun/windows/awt_dlls.h.i
+data/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/LoadInstrument.java.i
 data/src/share/demo/java2d/J2DBench/build.xml.i
 data/src/share/classes/java/nio/channels/AsynchronousDatagramChannel.java.i
 data/test/sun/tools/jstat/jstatGcPermCapacityOutput1.sh.i
 data/test/sun/nio/cs/OLD/IBM942_OLD.java.i
-data/test/java/nio/channels/FileChannel/Read.java.i
+data/src/solaris/classes/sun/java2d/opengl/GLXVolatileSurfaceManager.java.i
 data/src/share/demo/nbproject/jfc/SampleTree/build.xml.i
-data/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java.i
+data/test/sun/security/x509/X500Name/AllAttribs.java.i
 data/src/share/classes/java/awt/image/DataBufferByte.java.i
-data/test/java/io/Serializable/maskSyntheticModifier/Foo.java.i
+data/test/java/nio/channels/SocketChannel/ConnectState.java.i
 data/src/share/classes/com/sun/tracing/dtrace/ModuleName.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/NamedObject.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageConvKernelConvert.c.i
@@ -18417,77 +18359,82 @@ data/test/javax/swing/JColorChooser/Test6977726.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiPanelUI.java.i
 data/test/java/math/BigDecimal/SerializationTests.java.i
 data/src/share/classes/com/sun/tools/jdi/resources/jdi_ja.properties.i
-data/src/share/classes/javax/swing/event/MenuListener.java.i
+data/test/java/lang/management/ThreadMXBean/ThreadCpuTime.java.i
 data/src/share/javavm/include/sys_api.h.i
-data/src/share/classes/java/security/AlgorithmParametersSpi.java.i
+data/src/share/classes/javax/security/sasl/package.html.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringMonitor.java.i
-data/src/share/classes/javax/sql/rowset/RowSetFactory.java.i
+data/src/share/classes/sun/reflect/generics/tree/BottomSignature.java.i
 data/test/com/sun/jdi/GetLocalVariables4Test.sh.i
 data/src/share/classes/sun/io/CharToByteCp1383.java.i
-data/test/java/beans/Introspector/memory/Test4508780.java.i
-data/test/java/lang/Class/getClasses/Sanity.java.i
-data/src/share/demo/jfc/Notepad/resources/new.gif.i
-data/test/sun/security/pkcs11/KeyStore/Solaris.sh.i
+data/test/java/nio/MappedByteBuffer/Force.java.i
+data/test/sun/nio/cs/TestStringCoding.java.i
+data/src/share/native/java/util/zip/ZipEntry.c.i
+data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemManagerState.java.i
 data/src/solaris/classes/sun/net/NetHooks.java.i
 data/src/share/classes/javax/naming/ldap/SortResponseControl.java.i
-data/src/share/classes/sun/management/counter/perf/PerfDataType.java.i
+data/src/share/classes/java/io/BufferedOutputStream.java.i
+data/src/share/classes/sun/net/NetworkServer.java.i
 data/test/sun/security/pkcs11/KeyStore/ClientAuth.sh.i
 data/test/java/util/prefs/SerializeExceptions.java.i
-data/test/java/io/InputStreamReader/One.java.i
+data/make/tools/swing-beans/beaninfo/images/AbstractButtonColor16.gif.i
 data/make/com/sun/sql/FILES_java.gmk.i
 data/src/share/classes/com/sun/media/sound/SoftShortMessage.java.i
-data/test/java/util/Locale/ThaiGov.java.i
+data/src/share/classes/sun/tools/jconsole/resources/mbean.gif.i
+data/src/share/classes/com/sun/media/sound/AiffFileFormat.java.i
 data/test/javax/management/loading/SystemClassLoaderTest.java.i
-data/src/share/native/sun/java2d/loops/FillParallelogram.c.i
+data/src/share/classes/com/sun/crypto/provider/CipherTextStealing.java.i
+data/test/java/awt/FontClass/CreateFont/DeleteFont.sh.i
 data/test/sun/security/ssl/javax/net/ssl/GetInstance.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_iw_IL.properties.i
+data/src/share/classes/sun/io/ByteToCharCp1098.java.i
+data/src/share/classes/sun/security/krb5/internal/crypto/Aes256CtsHmacSha1EType.java.i
 data/src/share/classes/com/sun/jdi/ClassNotLoadedException.java.i
 data/test/sun/security/ssl/etc/keystore.i
 data/src/share/demo/nbproject/jfc/TableExample/nbproject/file-targets.xml.i
 data/test/sun/net/www/ParseUtil_6380332.java.i
 data/test/javax/swing/JColorChooser/Test4887836.html.i
-data/src/solaris/classes/sun/awt/X11/XCustomCursor.java.i
+data/test/sun/security/provider/PolicyFile/TrustedCert.keystore.i
 data/test/java/io/PrintWriter/ClearErrorWriter.java.i
 data/test/java/beans/XMLEncoder/java_util_Collections_CheckedSet.java.i
-data/src/share/lib/images/cursors/win32_MoveNoDrop32x32.gif.i
+data/test/sun/net/idn/nfscss.spp.i
 data/src/windows/classes/sun/java2d/d3d/D3DGraphicsConfig.java.i
 data/test/java/io/Serializable/6966692/README.i
 data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ScanManagerConfig.java.i
-data/test/java/rmi/activation/Activatable/checkActivateRef/security.policy.i
+data/test/java/util/zip/ZipFile/crash.jar.i
 data/test/java/io/BufferedInputStream/ReadZeroBytes.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/ApplicationTool.java.i
-data/src/share/demo/jfc/Metalworks/resources/HelpFiles/metalworks.html.i
+data/test/java/util/Arrays/Sorting.java.i
 data/src/share/classes/sun/applet/resources/MsgAppletViewer_zh_TW.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/Manifest.java.i
-data/make/tools/CharsetMapping/IBM863.map.i
+data/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c.i
+data/src/share/classes/javax/naming/ldap/ExtendedRequest.java.i
+data/src/solaris/native/sun/awt/awt_Label.c.i
 data/src/share/demo/jfc/TableExample/README.txt.i
 data/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java.i
-data/src/share/classes/sun/tools/tree/Context.java.i
-data/src/share/classes/sun/font/FileFontStrike.java.i
+data/test/java/nio/channels/Selector/TemporarySelector.java.i
+data/src/windows/native/sun/security/pkcs11/wrapper/p11_md.h.i
 data/test/javax/swing/JPopupMenu/6690791/bug6690791.java.i
-data/make/common/Rules-SCCS.gmk.i
-data/src/share/classes/com/sun/crypto/provider/JarVerifier.java.i
-data/test/com/sun/java/swing/plaf/windows/Test6824600.java.i
+data/src/solaris/classes/sun/nio/ch/PollSelectorImpl.java.i
+data/src/share/classes/javax/sound/midi/Soundbank.java.i
+data/test/java/util/concurrent/ThreadPoolExecutor/ModifyCorePoolSize.java.i
 data/test/javax/sound/midi/Gervill/RiffReaderWriter/ReadLong.java.i
 data/src/windows/classes/sun/awt/windows/WWindowPeer.java.i
-data/src/share/classes/java/nio/file/SecureDirectoryStream.java.i
-data/src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c.i
+data/test/java/rmi/server/RMIClassLoader/spi/security.policy.i
 data/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java.i
 data/src/share/classes/java/net/ProtocolFamily.java.i
-data/make/tools/src/build/tools/compileproperties/CompileProperties.java.i
-data/src/share/classes/java/util/jar/JarOutputStream.java.i
-data/make/tools/swing-beans/beaninfo/images/JRootPaneColor16.gif.i
+data/src/share/classes/sun/util/logging/resources/logging_ko.properties.i
+data/test/javax/naming/spi/DirectoryManager/DummyContext.java.i
+data/src/share/classes/sun/security/provider/VerificationProvider.java.i
 data/test/sun/security/util/DerInputBuffer/TimeParsing.java.i
-data/src/share/classes/java/awt/Composite.java.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIDefault.java.i
+data/src/windows/native/sun/windows/awt_Color.h.i
+data/src/share/classes/sun/tools/jconsole/VMInternalFrame.java.i
 data/test/java/net/URLConnection/xml/not-xml2.i
 data/test/org/openjdk/jigsaw/_RemoteRepository.java.i
-data/src/share/demo/applets/DrawTest/example1.html.i
-data/test/java/io/Serializable/class/run.sh.i
-data/src/share/classes/javax/print/StreamPrintServiceFactory.java.i
+data/src/share/classes/javax/crypto/interfaces/DHPublicKey.java.i
+data/test/java/io/CharArrayReader/Constructor.java.i
+data/test/java/lang/instrument/TransformerManagementThreadAddTests.java.i
 data/src/share/classes/sun/reflect/ConstructorAccessorImpl.java.i
+data/src/share/classes/sun/security/krb5/internal/MethodData.java.i
 data/test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.java.i
-data/src/share/classes/javax/management/Query.java.i
+data/src/share/lib/security/java.policy.i
 data/src/share/classes/sun/security/jgss/krb5/Krb5MechFactory.java.i
 data/src/share/classes/sun/io/CharToByteCp1252.java.i
 data/src/share/classes/sun/util/resources/LocaleNames_sv.properties.i
@@ -18499,18 +18446,19 @@ data/src/share/classes/sun/java2d/pisces/TransformingPathConsumer2D.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiMenuBarUI.java.i
 data/src/share/back/VirtualMachineImpl.h.i
 data/src/solaris/classes/sun/awt/X11InputMethodDescriptor.java.i
-data/src/share/lib/images/cursors/motif_MoveNoDrop32x32.gif.i
-data/src/share/classes/sun/security/provider/DSAPublicKey.java.i
+data/src/share/classes/com/sun/tools/example/debug/tty/Commands.java.i
+data/test/sun/security/tools/policytool/UpdatePermissions.sh.i
 data/src/share/native/sun/font/layout/ThaiStateTables.cpp.i
+data/make/sun/javazic/tzdata/africa.i
 data/test/java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java.i
-data/src/share/classes/sun/java2d/pipe/RenderQueue.java.i
+data/test/java/io/StringReader/ClosedReady.java.i
 data/src/share/classes/java/applet/Applet.java.i
 data/src/share/classes/javax/sound/sampled/spi/AudioFileReader.java.i
-data/test/java/beans/XMLEncoder/java_lang_reflect_Method.java.i
-data/src/share/classes/java/lang/StringBuffer.java.i
+data/test/java/nio/channels/SocketChannel/Bind.java.i
+data/src/share/classes/javax/net/ssl/SSLException.java.i
 data/src/share/native/java/lang/fdlibm/src/s_ldexp.c.i
 data/src/share/classes/javax/smartcardio/ResponseAPDU.java.i
-data/test/java/lang/ThreadLocal/TestThreadId.java.i
+data/test/java/net/URLClassLoader/GetURLsTest.java.i
 data/test/java/nio/channels/AsynchronousChannelGroup/Attack.java.i
 data/test/tools/launcher/ExecutionEnvironment.java.i
 data/src/share/classes/sun/nio/cs/UTF_32LE.java.i
@@ -18518,34 +18466,36 @@ data/src/solaris/native/sun/security/pkcs11/j2secmod_md.h.i
 data/src/share/classes/javax/crypto/interfaces/PBEKey.java.i
 data/src/share/native/java/lang/fdlibm/src/w_j1.c.i
 data/test/javax/management/openmbean/IsValueTest.java.i
-data/src/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java.i
-data/test/sun/text/resources/Format/Bug4651568.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/schema/etsi.xsd.i
+data/test/java/rmi/activation/Activatable/elucidateNoSuchMethod/rmid.security.policy.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract_f.c.i
 data/src/share/native/sun/java2d/opengl/OGLBufImgOps.h.i
 data/test/sun/security/provider/PolicyParser/p003.policy.i
-data/test/com/oracle/net/sanity.sh.i
+data/test/java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.java.i
 data/src/share/classes/sun/nio/cs/ext/IBM420.java.i
 data/src/share/classes/java/awt/doc-files/GridBagLayout-2.gif.i
-data/src/share/classes/com/sun/java/util/jar/pack/Package.java.i
-data/test/java/io/OutputStreamWriter/NullCreate.java.i
+data/src/share/classes/javax/sound/midi/SoundbankResource.java.i
+data/test/java/nio/file/DirectoryStream/Basic.java.i
+data/make/tools/swing-beans/beaninfo/images/JSeparatorColor16.gif.i
+data/src/share/classes/java/rmi/server/ObjID.java.i
 data/src/share/native/sun/rmi/server/MarshalInputStream.c.i
 data/test/sun/security/tools/jarsigner/oldsig/A.class.i
-data/src/share/back/eventFilter.c.i
+data/src/share/classes/com/sun/media/sound/SoftLinearResampler.java.i
+data/test/java/io/Serializable/noSuchFieldClarification/NoSuchFieldClarification.java.i
 data/make/tools/src/build/tools/javazic/Checksum.java.i
 data/test/sun/security/pkcs11/ec/TestECGenSpec.java.i
 data/src/share/classes/java/security/GuardedObject.java.i
 data/test/com/sun/awt/Translucency/WindowOpacity.java.i
-data/src/share/demo/jvmti/heapViewer/heapViewer.c.i
+data/src/share/classes/sun/security/ec/SunEC.java.i
+data/test/javax/management/MBeanServer/NewMBeanListenerTest.java.i
 data/test/sun/net/InetAddress/nameservice/META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor.i
 data/test/sun/nio/cs/X11CNS11643P3.java.i
-data/test/java/beans/Introspector/Test4918902.java.i
-data/test/javax/management/MBeanServer/PreDeregisterDeadlockTest.java.i
-data/src/share/demo/jvmti/hprof/hprof_cpu.h.i
-data/src/share/classes/sun/util/resources/CurrencyNames_nl_NL.properties.i
-data/src/share/classes/com/sun/media/sound/SoftMixingMixerProvider.java.i
+data/src/share/classes/sun/security/pkcs11/P11KeyGenerator.java.i
+data/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java.i
+data/src/share/classes/javax/swing/plaf/synth/SynthBorder.java.i
+data/src/windows/native/sun/java2d/d3d/D3DRenderer.h.i
 data/src/share/classes/java/util/SortedSet.java.i
 data/test/javax/sound/midi/Gervill/ModelSource/NewModelSource.java.i
-data/src/share/classes/com/sun/jndi/ldap/LdapSchemaCtx.java.i
+data/src/share/classes/sun/util/logging/resources/logging_de.properties.i
 data/src/share/classes/java/sql/SQLTimeoutException.java.i
 data/src/share/classes/sun/security/action/GetIntegerAction.java.i
 data/src/share/classes/java/net/HttpCookie.java.i
@@ -18553,10 +18503,10 @@ data/make/tools/src/build/tools/jdwpgen/RepeatNode.java.i
 data/src/share/classes/com/sun/awt/AWTUtilities.java.i
 data/make/tools/src/build/tools/charsetmapping/CharsetMapping.java.i
 data/src/share/classes/sun/invoke/util/BytecodeDescriptor.java.i
-data/src/share/demo/nbproject/project.xml.i
+data/src/share/native/java/util/zip/zlib-1.1.3/inffast.h.i
 data/test/javax/swing/JLayer/6994419/bug6994419.java.i
 data/src/share/native/sun/misc/Version.c.i
-data/src/share/classes/javax/swing/filechooser/FileFilter.java.i
+data/test/java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html.i
 data/test/java/util/PluggableLocale/providersrc/DecimalFormatSymbolsProviderImpl.java.i
 data/test/javax/print/applet/applet1/Applet1PrintService.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/GetChannels.java.i
@@ -18564,321 +18514,334 @@ data/src/share/classes/javax/swing/plaf/nimbus/InnerShadowEffect.java.i
 data/make/sun/javazic/tzdata_jdk/jdk11_backward.i
 data/src/share/classes/sun/rmi/server/LoaderHandler.java.i
 data/test/javax/management/monitor/InstantiateMonitorNotificationTest.java.i
-data/make/tools/CharsetMapping/EUC_CN.map.i
-data/src/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties.i
-data/src/share/classes/sun/util/resources/LocaleNamesBundle.java.i
+data/test/java/util/WeakHashMap/ZeroInitCap.java.i
+data/src/windows/classes/sun/awt/windows/WSystemTrayPeer.java.i
+data/src/solaris/classes/java/net/PlainSocketImpl.java.i
 data/src/share/classes/com/sun/tools/jdi/LongTypeImpl.java.i
-data/src/share/native/sun/management/GarbageCollectorImpl.c.i
+data/test/javax/sound/midi/Gervill/SimpleSoundbank/AddResource.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConvMxN_8ext.c.i
-data/test/java/io/Serializable/enum/classObject/Test.java.i
+data/test/sun/security/util/asn1StringTypes/StringTypes.java.i
+data/test/java/rmi/activation/Activatable/elucidateNoSuchMethod/ElucidateNoSuchMethod_Stub.java.i
+data/src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java.i
 data/src/share/classes/javax/xml/crypto/dsig/spec/ExcC14NParameterSpec.java.i
 data/make/tools/src/build/tools/jdwpgen/NameNode.java.i
 data/test/java/util/zip/ZipInputStream/Skip.java.i
-data/src/windows/native/sun/windows/awt_Win32GraphicsConfig.cpp.i
+data/test/java/security/PrivilegedActionException/PrintWrappedException.java.i
 data/src/share/classes/javax/naming/directory/InitialDirContext.java.i
 data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain4.txt.i
-data/src/share/classes/sun/security/x509/X509AttributeName.java.i
-data/src/share/classes/sun/rmi/transport/Channel.java.i
+data/src/share/classes/javax/naming/NamingEnumeration.java.i
+data/test/com/sun/net/httpserver/bugs/B6744329.java.i
 data/src/share/classes/javax/naming/spi/ContinuationContext.java.i
-data/src/share/classes/sun/text/resources/CollationData_is.java.i
-data/src/share/classes/javax/swing/CellRendererPane.java.i
+data/src/solaris/classes/sun/awt/X11/XMenuWindow.java.i
+data/test/sun/security/rsa/TestSignatures.java.i
 data/src/solaris/classes/sun/java2d/x11/X11Renderer.java.i
-data/test/javax/management/openmbean/EqualsTest.java.i
+data/src/windows/native/sun/windows/awt_Win32GraphicsConfig.cpp.i
+data/src/share/classes/javax/swing/event/package.html.i
 data/src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java.i
-data/make/tools/CharsetMapping/IBM1145.c2b.i
-data/src/share/native/sun/awt/medialib/mlib_ImageCreate.h.i
-data/make/netbeans/common/jtreg-view.ent.i
-data/src/share/classes/sun/font/FontUtilities.java.i
-data/src/share/classes/javax/swing/text/html/parser/DTDConstants.java.i
-data/src/share/classes/sun/security/x509/CertificateAlgorithmId.java.i
+data/src/share/classes/sun/nio/cs/ext/IBM871.java.i
+data/src/share/lib/images/cursors/motif_MoveNoDrop32x32.gif.i
+data/src/share/classes/javax/swing/JToolBar.java.i
+data/test/java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.java.i
+data/src/share/classes/java/util/AbstractCollection.java.i
+data/test/java/awt/xembed/server/RunTestXEmbed.java.i
 data/test/java/text/Collator/Bug6970930.java.i
 data/src/share/classes/com/sun/jdi/event/EventSet.java.i
-data/test/sun/security/pkcs11/Secmod/keystore.jks.i
+data/src/share/classes/java/awt/dnd/peer/package.html.i
 data/test/java/nio/channels/Channels/TinyBuffers.java.i
 data/make/tools/swing-beans/beaninfo/images/JSliderMono32.gif.i
 data/src/share/classes/javax/imageio/metadata/IIOMetadataFormatImpl.java.i
-data/test/com/sun/crypto/provider/Mac/HmacSaltLengths.java.i
+data/make/tools/src/build/tools/generatenimbus/Shape.java.i
 data/src/share/classes/javax/net/ssl/X509KeyManager.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_lt_LT.properties.i
+data/src/share/classes/sun/io/CharToByteISO8859_2.java.i
+data/test/sun/security/provider/PolicyParser/ExtDirs1.policy.i
 data/make/tools/swing-beans/beaninfo/images/JTextAreaMono16.gif.i
 data/test/java/io/Serializable/writeObjectMemory/WriteObjectMemory.java.i
-data/src/share/classes/javax/print/event/PrintEvent.java.i
-data/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.cpp.i
-data/test/java/util/WeakHashMap/GCDuringIteration.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/EmptyExtensionData.java.i
+data/test/javax/swing/JFileChooser/6489130/bug6489130.java.i
 data/src/solaris/native/sun/xawt/awt_Desktop.c.i
 data/src/solaris/sample/dtrace/hotspot/method_invocation_tree.d.i
 data/test/java/util/prefs/ConflictInFlush.java.i
-data/src/share/classes/javax/print/package.html.i
-data/make/javax/crypto/policy/unlimited/default_US_export.policy.i
-data/test/java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java.i
+data/src/share/classes/com/sun/jmx/remote/internal/ClientNotifForwarder.java.i
+data/test/java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java.i
+data/test/java/net/SocketPermission/ActionSpace.java.i
 data/test/java/io/Serializable/proxy/skipMissing/Read.java.i
+data/src/share/native/java/util/zip/zlib-1.1.3/zlib.h.i
 data/test/java/awt/geom/CubicCurve2D/SolveCubicTest.java.i
-data/src/share/classes/javax/swing/plaf/multi/MultiComboBoxUI.java.i
-data/src/share/classes/java/rmi/server/RemoteCall.java.i
+data/make/sun/awt/Depend.mak.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetAvailableInstruments2.java.i
+data/src/share/demo/jvmti/hprof/hprof_site.c.i
 data/src/share/classes/java/lang/instrument/ClassFileTransformer.java.i
 data/test/javax/sound/midi/Gervill/AudioFloatFormatConverter/SkipTest.java.i
 data/src/share/classes/sun/rmi/server/MarshalInputStream.java.i
+data/src/share/classes/com/sun/jmx/namespace/RoutingProxy.java.i
 data/test/java/nio/charset/coders/IsLegalReplacement.java.i
 data/src/share/sample/nio/server/RequestServicer.java.i
 data/src/share/demo/jvmti/hprof/hprof_init.c.i
 data/src/share/demo/nbproject/jfc/Notepad/build.properties.i
 data/test/com/sun/security/auth/login/ConfigFile/InconsistentError.config.i
-data/test/java/util/Vector/SerializationDeadlock.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14N.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/exceptions/package.html.i
 data/src/share/classes/javax/smartcardio/TerminalFactorySpi.java.i
 data/src/share/classes/sun/tools/jconsole/inspector/XPlotter.java.i
 data/test/sun/security/pkcs11/Cipher/ReinitCipher.java.i
-data/src/share/classes/java/beans/ExceptionListener.java.i
-data/src/share/demo/applets/MoleculeViewer/models/HyaluronicAcid.xyz.i
+data/src/share/classes/javax/accessibility/AccessibleResourceBundle.java.i
+data/src/share/classes/com/sun/tools/hat/MANIFEST.mf.i
 data/test/javax/management/remote/mandatory/serverError/JMXServerErrorTest.java.i
 data/src/share/classes/java/awt/peer/MouseInfoPeer.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract_1.c.i
-data/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java.i
-data/src/share/classes/javax/swing/event/PopupMenuListener.java.i
-data/src/share/classes/java/lang/reflect/UndeclaredThrowableException.java.i
+data/src/share/classes/com/sun/nio/sctp/Notification.java.i
+data/src/share/classes/java/io/LineNumberReader.java.i
+data/src/share/classes/sun/io/ByteToCharEUC_JP_Solaris.java.i
 data/test/java/net/DatagramSocket/TestAfterClose.java.i
-data/src/share/classes/org/relaxng/datatype/Datatype.java.i
-data/src/solaris/classes/sun/nio/ch/Port.java.i
-data/test/sun/net/www/protocol/file/GetContentLength.java.i
-data/src/share/classes/javax/management/event/EventReceiver.java.i
-data/test/sun/security/pkcs11/Secmod/key3.db.i
-data/test/java/io/PushbackInputStream/ClosedStream.java.i
-data/src/share/native/sun/awt/image/jpeg/jpeglib.h.i
+data/test/javax/management/query/CustomQueryTest.java.i
+data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/Set8BitExtensionBuffer.java.i
+data/make/modules/BuildPackages.gmk.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java.i
+data/test/sun/security/pkcs11/Secmod/key3.db.i
+data/test/java/io/PushbackInputStream/ClosedStream.java.i
+data/test/tools/launcher/PrintVersion.java.i
 data/src/share/classes/javax/imageio/ImageTranscoder.java.i
-data/test/java/awt/FullScreen/SetFSWindow/FSFrame.java.i
-data/src/share/classes/sun/dyn/Access.java.i
-data/test/java/lang/ProcessBuilder/FeelingLucky.java.i
+data/test/com/sun/security/auth/CreateLdapPrincipals.java.i
+data/src/share/classes/sun/net/www/http/KeepAliveCache.java.i
 data/test/com/sun/jdi/sde/TemperatureTableTest.java.i
 data/test/java/nio/Buffer/BasicLong.java.i
-data/test/com/sun/jdi/connect/spi/NullTransportService.java.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/README.update.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsPopupMenuSeparatorUI.java.i
+data/src/share/classes/com/sun/jdi/InconsistentDebugInfoException.java.i
 data/src/share/classes/com/sun/jndi/ldap/pool/ConnectionsRef.java.i
-data/src/share/classes/com/sun/beans/decoder/BooleanElementHandler.java.i
-data/src/share/classes/javax/imageio/ImageWriteParam.java.i
+data/test/javax/swing/border/Test7034614.java.i
+data/src/windows/back/util_md.h.i
+data/src/solaris/native/sun/java2d/loops/vis_ByteGray_FromRgb.c.i
 data/src/share/classes/sun/text/resources/FormatData_ru.java.i
 data/src/share/classes/javax/swing/text/html/ImageView.java.i
 data/test/com/sun/jdi/FramesTest.java.i
-data/make/mkdemo/management/MemoryMonitor/Makefile.i
+data/test/java/security/cert/CertificateFactory/ReturnStream.java.i
 data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributes.java.i
+data/src/share/classes/com/sun/security/auth/PrincipalComparator.java.i
 data/src/share/classes/com/sun/management/GarbageCollectorMXBean.java.i
 data/src/share/classes/sun/nio/cs/ext/DBCS_IBM_ASCII_Decoder.java.i
 data/src/share/classes/javax/swing/undo/CompoundEdit.java.i
 data/test/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java.i
-data/src/share/classes/javax/print/attribute/Attribute.java.i
+data/src/windows/native/sun/security/pkcs11/wrapper/p11_md.c.i
 data/src/share/classes/java/util/jar/JarVerifier.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/SignedInfo.java.i
+data/test/java/util/PluggableLocale/BreakIteratorProviderTest.sh.i
 data/test/java/io/Serializable/oldTests/CheckForException.java.i
 data/src/share/classes/sun/nio/ch/AbstractPollSelectorImpl.java.i
-data/src/share/classes/com/sun/jmx/snmp/BerEncoder.java.i
+data/src/share/classes/sun/text/resources/FormatData_fi.java.i
 data/src/share/classes/sun/reflect/DelegatingMethodAccessorImpl.java.i
-data/src/share/classes/javax/swing/text/doc-files/Document-remove.gif.i
-data/test/sun/tools/jstack/Basic.sh.i
-data/make/sun/security/mscapi/Makefile.i
-data/src/share/demo/jfc/Notepad/resources/open.gif.i
+data/test/java/lang/System/SecurityRace.java.i
+data/test/sun/misc/Version/Version.java.i
+data/src/share/classes/sun/io/CharToByteUnicodeBig.java.i
 data/make/tools/swing-beans/beaninfo/images/JRootPaneMono16.gif.i
 data/src/share/native/java/lang/fdlibm/src/w_jn.c.i
-data/src/share/classes/sun/management/FileSystem.java.i
+data/src/share/classes/java/io/FilterInputStream.java.i
 data/src/share/classes/javax/management/relation/RoleUnresolvedList.java.i
-data/src/share/classes/java/security/AuthProvider.java.i
-data/test/sun/security/pkcs11/fips/fips.cfg.i
-data/src/solaris/classes/sun/print/UnixPrintJob.java.i
+data/test/java/lang/Throwable/NewChainedExceptions.java.i
+data/src/share/classes/javax/swing/plaf/nimbus/DerivedColor.java.i
+data/src/windows/classes/sun/security/mscapi/RSAPrivateKey.java.i
+data/src/share/native/sun/awt/medialib/mlib_c_ImageBlendTable.h.i
+data/make/netbeans/common/unix-sources.ent.i
 data/src/share/classes/javax/xml/crypto/URIReferenceException.java.i
-data/make/tools/src/build/tools/javazic/BackEnd.java.i
-data/test/sun/security/x509/X509CRLImpl/UnexpectedNPE.java.i
-data/src/share/classes/sun/io/ByteToCharCp1143.java.i
+data/src/share/native/sun/font/layout/MorphTables.cpp.i
+data/test/java/net/URLConnection/GetLastModified.java.i
 data/src/share/classes/sun/misc/Timeable.java.i
 data/test/com/sun/jndi/ldap/LdapName/Case.java.i
-data/test/java/io/Reader/NullLock.java.i
-data/make/netbeans/common/share-view.ent.i
-data/make/sun/org/mozilla/Makefile.i
+data/test/java/net/Socket/GetLocalAddress.java.i
+data/test/com/sun/net/httpserver/bugs/B6433018.java.i
 data/src/share/classes/sun/nio/ch/SimpleAsynchronousDatagramChannelImpl.java.i
-data/test/javax/sound/midi/Gervill/DLSSoundbankReader/ding.dls.i
+data/src/share/classes/javax/management/NotificationInfos.java.i
 data/src/share/native/sun/awt/image/jpeg/jchuff.h.i
 data/test/javax/crypto/SecretKeyFactory/P2SecretKeyFactory.java.i
-data/src/share/demo/nbproject/README.txt.i
-data/src/share/classes/sun/tools/jstat/Arguments.java.i
+data/test/java/lang/StringBuilder/EnsureCapacity.java.i
+data/src/share/classes/sun/tools/tree/LocalMember.java.i
+data/src/windows/classes/sun/awt/windows/WFontMetrics.java.i
 data/make/tools/swing-beans/beaninfo/images/JTextPaneMono32.gif.i
-data/src/share/classes/javax/swing/text/ParagraphView.java.i
-data/src/share/classes/java/awt/ComponentOrientation.java.i
-data/src/share/classes/sun/net/httpserver/ContextList.java.i
-data/src/share/classes/sun/text/resources/thai_dict.i
-data/test/java/util/ArrayList/EnsureCapacity.java.i
-data/src/share/classes/sun/security/krb5/internal/crypto/KeyUsage.java.i
+data/test/javax/management/MBeanInfo/NullInfoArraysTest.java.i
+data/src/share/classes/sun/text/resources/thai_dict.d
+data/src/share/javavm/export/jvmticmlr.h.i
+data/src/share/classes/sun/beans/editors/LongEditor.java.i
+data/src/share/classes/sun/text/resources/FormatData_cs_CZ.java.i
+data/test/com/sun/jdi/StepTest.java.i
 data/src/share/classes/java/util/Comparator.java.i
 data/src/share/classes/sun/text/resources/FormatData_sk.java.i
-data/test/java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.java.i
-data/test/java/security/UnresolvedPermission/Equals.policy.i
-data/src/share/classes/java/nio/channels/MembershipKey.java.i
+data/src/share/classes/javax/swing/text/WhitespaceBasedBreakIterator.java.i
+data/src/share/classes/com/sun/management/package.html.i
+data/src/share/classes/java/lang/AssertionStatusDirectives.java.i
+data/src/share/native/sun/font/bidi/ubidi.c.i
 data/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPMetadata.java.i
 data/src/share/classes/javax/management/openmbean/OpenType.java.i
 data/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java.i
-data/make/java/java/reorder-sparc.i
-data/make/tools/src/build/tools/jdwpgen/AbstractCommandNode.java.i
-data/src/share/classes/com/sun/tools/jdi/InterfaceTypeImpl.java.i
+data/src/share/classes/java/net/HttpRetryException.java.i
+data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibAgent.java.i
+data/test/javax/management/openmbean/OpenTypeDescriptorTest.java.i
 data/src/share/classes/sun/management/counter/perf/InstrumentationException.java.i
 data/src/share/classes/java/awt/event/WindowAdapter.java.i
-data/src/share/demo/jfc/Font2DTest/resources/TextResources_en_GB.properties.i
+data/src/solaris/bin/ergo.h.i
+data/test/java/net/URLClassLoader/closetest/test1/com/foo/TestClass1.java.i
 data/test/java/lang/management/ThreadMXBean/SynchronizerLockingThread.java.i
 data/src/share/classes/javax/print/attribute/SetOfIntegerSyntax.java.i
 data/test/sun/security/ssl/etc/truststore.i
-data/src/share/classes/com/sun/java/swing/plaf/gtk/icons/File.gif.i
-data/src/windows/native/sun/jkernel/kernel_it.rc.i
-data/src/solaris/classes/sun/nio/ch/SctpAssocChange.java.i
+data/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java.i
+data/test/tools/launcher/Test7029048.java.i
+data/src/share/classes/java/security/acl/AclNotFoundException.java.i
 data/src/share/classes/sun/io/ByteToCharISO8859_5.java.i
 data/make/tools/dtdbuilder/dtds/public.map.i
 data/test/sun/security/tools/keytool/printssl.sh.i
 data/src/share/classes/sun/text/resources/FormatData_ar_DZ.java.i
 data/src/share/native/sun/font/layout/HanLayoutEngine.h.i
-data/test/java/util/IdentityHashMap/ToArray.java.i
-data/src/share/native/sun/java2d/loops/IntArgbPre.c.i
-data/src/solaris/classes/sun/awt/X11CustomCursor.java.i
+data/test/java/util/logging/PlatformLoggingMXBean/PlatformLoggingMXBeanTest.java.i
+data/test/org/openjdk/jigsaw/cli/signed-modular-jar.sh.i
+data/test/java/net/MulticastSocket/SetLoopbackMode.java.i
+data/src/share/classes/com/sun/security/auth/UnixNumericUserPrincipal.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ar_SA.properties.i
-data/src/share/classes/com/sun/jndi/ldap/LdapName.java.i
+data/src/share/demo/nbproject/jfc/TransparentRuler/nbproject/file-targets.xml.i
+data/test/java/io/charStreams/LineLengthsSource.java.i
 data/test/java/util/PluggableLocale/providersrc/java.util.spi.TimeZoneNameProvider.i
-data/src/share/classes/sun/font/FontScalerException.java.i
-data/test/java/beans/PropertyEditor/TestFloatClassNull.java.i
+data/src/share/sample/nio/chatserver/NameReader.java.i
+data/test/com/sun/security/auth/login/ConfigFile/PropertyExpansion.config.i
 data/src/share/classes/sun/net/www/protocol/http/HttpCallerInfo.java.i
-data/src/share/classes/javax/sql/ConnectionEventListener.java.i
-data/test/java/nio/channels/FileChannel/Size.java.i
+data/make/tools/swing-beans/beaninfo/images/JCheckBoxMenuItemColor32.gif.i
+data/src/share/classes/java/awt/geom/package.html.i
 data/test/javax/xml/crypto/dsig/data/signature-enveloping-hmac-sha1-trunclen-0-attack.xml.i
-data/test/sun/net/www/AuthHeaderTest.java.i
-data/src/share/classes/javax/crypto/SecretKeyFactorySpi.java.i
+data/test/org/openjdk/jigsaw/repocat.sh.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU8S32Func.c.i
-data/test/sun/tools/jstat/usage.out.i
-data/test/sun/nio/cs/TestUTF8BOM.java.i
 data/test/java/lang/instrument/PremainClass/Agent.jar.i
-data/src/share/native/sun/awt/giflib/gif_err.c.i
-data/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java.i
+data/test/javax/sound/midi/Gervill/SoftSynthesizer/TestDisableLoadDefaultSoundbank.java.i
+data/make/netbeans/jarzip/README.i
+data/src/share/classes/sun/tools/jconsole/CreateMBeanDialog.java.i
 data/test/java/dyn/6991596/Test6991596.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/report/IIOComparator.java.i
+data/test/java/nio/channels/SocketChannel/GetChannel.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ar_SD.properties.i
 data/test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/Shutdown.java.i
 data/test/java/nio/channels/FileChannel/MapReadOnly.java.i
-data/src/share/lib/audio/soundbank.gm.i
-data/test/java/beans/XMLEncoder/Test5023550.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_sq.properties.i
-data/make/tools/src/build/tools/jdwpgen/ClassObjectTypeNode.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConv_8nw.c.i
+data/test/sun/management/jmxremote/bootstrap/jmxremote_test02_ok.password.in.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelInsert.c.i
 data/test/java/lang/reflect/Field/4490864/StaticFieldTest.java.i
 data/test/sun/security/pkcs11/Mac/ReinitMac.java.i
-data/src/share/classes/sun/nio/fs/AbstractFileTypeDetector.java.i
+data/src/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java.i
 data/test/sun/security/pkcs11/nss/lib/linux-i586/libnss3.so.d
 data/src/windows/native/sun/windows/jawt.cpp.i
-data/src/share/classes/sun/util/resources/CurrencyNames_ar_EG.properties.i
+data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest11_ok.ssl.in.i
 data/make/tools/swing-beans/beaninfo/images/JButtonColor16.gif.i
 data/src/share/classes/java/io/InvalidObjectException.java.i
+data/src/share/demo/jvmti/hprof/hprof_trace.h.i
 data/test/javax/imageio/plugins/wbmp/CanDecodeTest.java.i
-data/src/share/classes/sun/text/resources/FormatData_is_IS.java.i
+data/test/java/io/Serializable/PutField/Write2.java.i
 data/src/share/classes/java/awt/datatransfer/MimeTypeParseException.java.i
-data/src/windows/native/common/gdefs_md.h.i
+data/test/sun/security/pkcs11/nss/lib/linux-i586/libnss3.so.i
 data/src/solaris/native/sun/awt/swing_GTKEngine.c.i
 data/make/tools/src/build/tools/charsetmapping/EUC_TW.java.i
-data/src/share/native/sun/awt/image/cvutils/img_output16_32.h.i
+data/test/java/lang/Thread/GenerifyStackTraces.java.i
 data/test/java/rmi/server/useCustomRef/Ping.java.i
-data/src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java.i
-data/test/java/io/File/ListNull.java.i
+data/test/java/lang/Class/forName/classes/period.class.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/TestEnvironment.java.i
 data/test/java/io/Serializable/enum/mismatchedTypecode/Test.java.i
 data/test/java/util/ResourceBundle/Bug4353454.java.i
-data/src/share/classes/sun/rmi/transport/tcp/TCPConnection.java.i
+data/test/java/io/pathNames/unix/TrailingSlash.java.i
 data/src/share/classes/com/sun/media/sound/DLSSoundbankReader.java.i
 data/test/sun/security/krb5/ktab/KeyTabIndex.java.i
 data/test/java/net/MulticastSocket/SetTTLTo0.java.i
 data/src/share/classes/com/sun/jmx/snmp/tasks/TaskServer.java.i
 data/test/javax/sound/midi/Gervill/SoftAudioSynthesizer/GetFormat.java.i
-data/src/share/demo/management/FullThreadDump/Deadlock.java.i
+data/src/share/classes/java/nio/channels/AsynchronousByteChannel.java.i
 data/src/windows/native/sun/windows/awt_Component.h.i
-data/src/share/classes/sun/security/util/DerIndefLenConverter.java.i
-data/src/share/classes/javax/imageio/ImageReader.java.i
-data/src/share/classes/sun/invoke/empty/Empty.java.i
-data/src/share/classes/sun/awt/image/PNGImageDecoder.java.i
-data/src/share/classes/sun/jkernel/BackgroundDownloader.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_ca_ES.properties.i
+data/src/solaris/classes/sun/awt/motif/MRobotPeer.java.i
+data/src/linux/doc/man/apt.1.i
+data/src/share/classes/sun/nio/cs/ext/HKSCS.java.i
+data/src/share/classes/javax/swing/JWindow.java.i
+data/src/share/classes/com/sun/imageio/plugins/common/LZWCompressor.java.i
+data/src/solaris/classes/sun/java2d/xr/XRPaints.java.i
+data/test/java/util/StringTokenizer/ResetPos.java.i
 data/test/sun/tools/jstat/gcNewCapacityOutput1.awk.i
 data/src/share/classes/com/sun/jmx/remote/internal/NotificationBuffer.java.i
-data/src/share/classes/java/security/spec/RSAPrivateKeySpec.java.i
+data/src/share/classes/com/sun/media/sound/SF2Instrument.java.i
 data/src/share/classes/sun/java2d/loops/DrawRect.java.i
 data/src/share/classes/javax/management/namespace/JMXDomain.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_en_CA.properties.i
-data/src/share/classes/sun/nio/fs/AbstractWatchKey.java.i
+data/test/java/rmi/testlibrary/TestParams.java.i
+data/src/solaris/native/sun/net/spi/SdpProvider.c.i
 data/test/java/io/PrintStream/EncodingConstructor.java.i
 data/src/share/classes/javax/swing/OverlayLayout.java.i
-data/test/java/beans/XMLEncoder/Test4646747.java.i
+data/src/share/classes/sun/rmi/transport/Channel.java.i
 data/test/sun/tools/jps/jps-Vm_2.sh.i
 data/test/javax/swing/border/Test6981576.java.i
 data/src/share/classes/com/sun/media/sound/SoftLowFrequencyOscillator.java.i
-data/test/javax/management/eventService/EventClientThreadTest.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsDesktopPaneUI.java.i
 data/src/share/classes/sun/nio/cs/ext/MS932.java.i
-data/test/sun/security/krb5/RFC396xTest.java.i
-data/make/java/sql/Makefile.i
-data/src/share/classes/javax/security/auth/login/AccountLockedException.java.i
+data/src/share/classes/sun/tools/tree/ConditionalExpression.java.i
+data/src/share/native/java/lang/fdlibm/src/w_exp.c.i
 data/src/share/classes/org/openjdk/jigsaw/ContextBuilder.java.i
-data/src/share/classes/java/rmi/registry/RegistryHandler.java.i
-data/src/share/native/sun/awt/image/imageInitIDs.h.i
+data/src/share/classes/sun/tools/asm/ArrayData.java.i
+data/src/share/native/sun/font/layout/ContextualGlyphSubstitution.h.i
 data/test/java/beans/XMLEncoder/javax_swing_JSplitPane.java.i
-data/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java.i
+data/test/com/sun/security/auth/callback/TextCallbackHandler/Confirm.java.i
+data/test/java/security/cert/pkix/nameConstraintsMinMax/labs2isrg2.cer.i
 data/test/java/lang/reflect/Method/InheritedMethods.java.i
-data/make/tools/swing-beans/beaninfo/images/JRadioButtonMenuItemMono32.gif.i
-data/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c.i
+data/src/share/classes/sun/java2d/pipe/RegionIterator.java.i
+data/test/java/net/URLClassLoader/URLParsing.java.i
 data/test/java/security/cert/CertPathBuilder/selfIssued/generate.sh.i
 data/test/java/lang/management/MemoryMXBean/MemoryManagement.java.i
 data/make/tools/swing-beans/beaninfo/images/JToggleButtonMono32.gif.i
 data/src/share/classes/com/sun/tools/example/debug/gui/SourcepathChangedEvent.java.i
 data/src/share/classes/com/sun/net/ssl/TrustManager.java.i
 data/src/share/classes/javax/management/openmbean/MXBeanMapping.java.i
-data/test/javax/management/remote/mandatory/passwordAccessFile/password.properties.i
+data/test/tools/pack200/TimeStamp.java.i
 data/src/share/classes/com/sun/tools/hat/internal/server/QueryListener.java.i
+data/src/share/classes/javax/swing/undo/doc-files/UndoManager-4.gif.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/I18n.java.i
-data/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java.i
-data/src/share/classes/java/awt/peer/MenuBarPeer.java.i
+data/src/solaris/classes/sun/awt/X11/XModalityProtocol.java.i
+data/make/tools/CharsetMapping/IBM1026.map.i
+data/test/java/net/URLClassLoader/closetest/Common.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/MotifPopupMenuSeparatorUI.java.i
 data/test/javax/swing/JTextArea/6925473/bug6925473.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapNum.java.i
 data/test/sun/management/jmxremote/bootstrap/management_test04_ok.properties.in.i
 data/test/sun/java2d/cmm/ColorConvertOp/ColCvtIntARGB.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ga_IE.properties.i
-data/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java.i
-data/test/java/util/ResourceBundle/Control/StressOut_zh_CN.properties.i
-data/test/java/io/File/WinSpecialFiles.java.i
+data/src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java.i
+data/src/share/classes/sun/rmi/transport/ConnectionOutputStream.java.i
+data/src/share/classes/javax/crypto/spec/DHPublicKeySpec.java.i
+data/test/java/util/ResourceBundle/Bug4177489_Resource_jf_JF.properties.i
 data/test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerArrayIntIntIntInt.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/inflate.c.i
-data/src/share/native/sun/awt/medialib/awt_ImagingLib.h.i
+data/src/solaris/classes/sun/awt/X11/XRepaintArea.java.i
 data/test/com/sun/jdi/BreakpointTest.java.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS_PRF_PARAMS.java.i
 data/src/share/classes/java/util/concurrent/Semaphore.java.i
 data/src/share/native/sun/java2d/cmm/lcms/cmssamp.c.i
-data/test/java/util/concurrent/ConcurrentQueues/RemovePollRace.java.i
-data/test/java/rmi/testlibrary/RegistryRunner.java.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/PerfDataBuffer.java.i
-data/src/share/classes/org/ietf/jgss/GSSName.java.i
+data/src/solaris/doc/sun/man/man1/jdb.1.i
+data/test/javax/swing/JDialog/6639507/bug6639507.java.i
+data/test/java/io/Serializable/classDescFlagConflict/Read.java.i
 data/test/org/openjdk/jigsaw/circular-deps.sh.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/SpecErrorEvent.java.i
-data/make/common/internal/Defs-corba.gmk.i
+data/src/share/classes/javax/swing/DefaultListModel.java.i
 data/test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/ReadByteIntInt.java.i
-data/test/com/sun/nio/sctp/SctpServerChannel/NonBlockingAccept.java.i
+data/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport2.java.i
 data/src/share/classes/java/security/PrivilegedExceptionAction.java.i
-data/src/share/native/sun/awt/image/jpeg/jdcolor.c.i
+data/test/java/net/InetSocketAddress/ToString.java.i
 data/src/share/classes/sun/dc/META-INF/services/sun.java2d.pipe.RenderingEngine.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/generator/ObjectCodeConvertors.java.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/synthdesigner/synthmodel/UIState.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/AgentServer.java.i
 data/src/share/classes/sun/tools/attach/HotSpotVirtualMachine.java.i
 data/src/share/classes/java/text/CharacterIterator.java.i
 data/src/share/classes/javax/sound/midi/MidiDeviceReceiver.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemPoolThreshdSupport.java.i
 data/test/javax/script/Test3.js.i
-data/src/share/classes/javax/sound/sampled/Clip.java.i
-data/src/share/classes/com/sun/tools/hat/internal/server/FinalizerSummaryQuery.java.i
+data/test/javax/crypto/CryptoPermission/RC4AliasPermCheck.java.i
+data/test/java/util/ArrayList/AddAll.java.i
 data/test/sun/security/provider/PolicyFile/getinstance/OneArgPermission.java.i
 data/src/solaris/native/java/net/PlainDatagramSocketImpl.c.i
+data/src/share/classes/sun/security/util/SignatureFileManifest.java.i
 data/test/javax/management/loading/MLetContentTest.java.i
 data/src/share/native/sun/awt/image/cvutils/img_output8_16_24.h.i
-data/src/share/classes/javax/xml/crypto/dsig/keyinfo/KeyInfo.java.i
-data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManager.java.i
-data/src/share/classes/java/awt/event/FocusListener.java.i
-data/src/share/classes/sun/reflect/generics/tree/TypeVariableSignature.java.i
-data/test/java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java.i
-data/src/share/classes/java/beans/beancontext/BeanContextServiceAvailableEvent.java.i
-data/src/windows/classes/sun/java2d/windows/WindowsFlags.java.i
+data/test/java/io/File/HashCodeEquals.java.i
+data/test/java/beans/Introspector/Test6194788.java.i
+data/test/sun/security/smartcardio/TestMultiplePresent.java.i
+data/test/java/security/Security/removing/RemoveStaticProvider.java.i
+data/src/share/classes/sun/java2d/pipe/TextRenderer.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/XPath2FilterContainer04.java.i
+data/test/java/io/Reader/SkipNegative.java.i
 data/make/tools/src/build/tools/dtdbuilder/README.txt.i
 data/src/windows/classes/sun/nio/fs/WindowsAclFileAttributeView.java.i
-data/src/windows/native/sun/java2d/d3d/D3DTextRenderer.cpp.i
+data/test/sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java.i
 data/src/share/sample/vm/jvm-clr/invoker.cpp.i
 data/src/share/classes/java/dyn/FromGeneric.java.i
 data/test/javax/xml/crypto/dsig/data/signature-enveloping-rsa.xml.i
@@ -18887,435 +18850,467 @@ data/test/java/rmi/reliability/benchmark/bench/serial/ObjTrees.java.i
 data/test/java/util/ResourceBundle/Bug4168625Resource3_en_CA.java.i
 data/test/java/io/InputStreamReader/NullCreate.java.i
 data/src/share/classes/com/sun/java/swing/Painter.java.i
-data/src/solaris/classes/sun/awt/X11/XWindowAttributesData.java.i
+data/src/windows/native/sun/windows/awt_MouseEvent.cpp.i
 data/src/share/classes/java/awt/font/GlyphVector.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/icons/Computer.gif.i
-data/src/share/classes/java/nio/channels/AsynchronousServerSocketChannel.java.i
-data/test/java/nio/charset/spi/charsetProvider.sp.i
+data/test/sun/security/pkcs11/nss/lib/linux-amd64/libfreebl3.so.i
+data/test/javax/management/remote/mandatory/notif/NotificationEmissionTest.java.i
+data/test/java/rmi/activation/Activatable/restartLatecomer/RestartLatecomer.java.i
 data/src/share/classes/com/sun/crypto/provider/AESKeyGenerator.java.i
 data/src/share/classes/javax/swing/colorchooser/SmartGridLayout.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/package.html.i
-data/test/java/security/cert/CertPathValidator/targetConstraints/ValidateTargetConstraints.java.i
+data/src/solaris/native/com/sun/management/SolarisOperatingSystem.c.i
 data/src/share/classes/sun/tracing/package-info.java.i
 data/test/java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.java.i
-data/test/java/util/Collections/CheckedListBash.java.i
+data/test/sun/security/rsa/TestKeyPairGeneratorLength.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/Designer.jibx.xml.i
 data/test/sun/security/pkcs11/nss/lib/windows-i586/softokn3.dll.i
-data/src/share/classes/sun/reflect/generics/visitor/Visitor.java.i
-data/test/javax/management/namespace/NamespaceCreationTest.java.i
-data/test/java/nio/file/Files/walkFileTree/SkipSiblings.java.i
+data/src/share/classes/sun/security/provider/certpath/KeyChecker.java.i
+data/test/java/net/PortUnreachableException/OneExceptionOnly.java.i
+data/test/java/util/LinkedHashMap/EmptyMapIterator.java.i
 data/src/share/classes/java/awt/font/ImageGraphicAttribute.java.i
-data/src/solaris/native/sun/awt/awt_Font.c.i
+data/src/share/classes/javax/crypto/NullCipher.java.i
+data/test/sun/tools/jstatd/jstatdUsage1.sh.i
 data/test/sun/security/provider/PolicyFile/getinstance/TwoArgNullActionsPermission.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/exceptions/AlgorithmAlreadyRegisteredException.java.i
-data/test/java/lang/String/SBConstructor.java.i
-data/src/share/classes/sun/io/ByteToCharISO2022CN.java.i
+data/test/javax/management/ImplementationVersion/ImplVersionReader.java.i
+data/src/share/classes/sun/util/ResourceBundleEnumeration.java.i
+data/test/java/security/Policy/GetInstance/GetInstancePolicySpi.java.i
+data/make/tools/swing-beans/beaninfo/images/JMenuBarMono32.gif.i
 data/make/modules/tools/src/com/sun/classanalyzer/ResourceFile.java.i
 data/src/share/native/java/util/zip/zlib-1.1.3/infblock.c.i
-data/src/share/classes/java/nio/charset/Charset-X-Coder.java.i
-data/src/share/demo/jfc/Metalworks/MetalThemeMenu.java.i
-data/src/share/classes/sun/io/CharToByteBig5_Solaris.java.i
+data/src/share/classes/com/sun/jmx/snmp/daemon/SnmpMibTree.java.i
+data/test/sun/security/tools/keytool/newhelp.sh.i
+data/test/javax/management/namespace/NamespaceCreationTest.java.i
 data/src/solaris/native/sun/java2d/loops/mlib_v_ImageClear_f.c.i
-data/src/share/classes/sun/security/ssl/CipherSuite.java.i
+data/test/java/text/Format/MessageFormat/Bug7003643.java.i
 data/src/share/classes/sun/misc/BASE64Decoder.java.i
-data/src/share/classes/sun/management/GcInfoCompositeData.java.i
+data/src/share/classes/sun/nio/cs/ISO_8859_9.java.i
 data/src/share/native/sun/java2d/loops/AlphaMath.c.i
-data/src/share/native/sun/java2d/pipe/RenderBuffer.c.i
+data/make/com/sun/jndi/Makefile.i
+data/test/java/nio/charset/coders/Errors.java.i
 data/src/share/hpi/include/vm_calls.h.i
 data/src/solaris/classes/sun/awt/X11/MotifDnDDragSourceProtocol.java.i
 data/make/netbeans/common/file-view.ent.i
-data/src/share/classes/sun/reflect/UnsafeStaticFieldAccessorImpl.java.i
-data/src/share/classes/sun/tools/tree/UnaryExpression.java.i
+data/test/java/net/SocketPermission/NoAction.java.i
+data/test/sun/security/tools/keytool/CloneKeyAskPassword.sh.i
 data/test/javax/management/mxbean/MXBeanFlagTest.java.i
 data/test/sun/tools/jstat/compilerOutput1.awk.i
-data/src/share/classes/java/lang/instrument/package.html.i
+data/src/share/native/sun/awt/libpng/pngerror.c.i
 data/test/sun/security/tools/policytool/SaveAs.java.i
 data/src/windows/native/sun/security/pkcs11/j2secmod_md.c.i
 data/test/javax/swing/border/Test4760089.html.i
 data/src/share/classes/sun/io/CharToByteUTF8.java.i
 data/test/java/util/prefs/CommentsInXml.java.i
-data/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/group.security.policy.i
+data/test/java/util/zip/GZIP/GZIPInputStreamRead.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/TransformParam.java.i
 data/src/share/classes/sun/awt/image/ImageAccessException.java.i
 data/make/tools/CharsetMapping/IBM1148.map.i
 data/make/common/Subdirs.gmk.i
-data/src/share/classes/java/net/CookiePolicy.java.i
-data/test/java/lang/instrument/RemoveTransformerTest.java.i
-data/src/share/demo/jvmti/hprof/hprof_trace.h.i
-data/src/share/classes/java/dyn/MethodHandleImpl.java.i
-data/src/share/native/sun/awt/image/cvutils/img_util.h.i
-data/make/tools/swing-beans/beaninfo/images/JScrollBarMono32.gif.i
-data/src/solaris/doc/sun/man/man1/ja/rmic.1.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputStreamTests.java.i
+data/src/share/classes/java/io/InterruptedIOException.java.i
+data/make/tools/swing-beans/beaninfo/images/JTextFieldColor32.gif.i
+data/test/sun/security/validator/CertReplace.java.i
+data/test/java/security/cert/CertPathValidatorException/cert_file.i
+data/src/solaris/classes/sun/awt/X11/XAtomList.java.i
+data/test/sun/security/ssl/sanity/pluggability/MySSLContextImpl.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConvIndex3_8_8nw.c.i
 data/src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java.i
-data/src/share/classes/com/sun/jdi/request/package.html.i
+data/test/java/io/PushbackInputStream/MarkReset.java.i
 data/test/java/lang/ClassLoader/LoadNullClass.java.i
-data/src/share/classes/sun/io/CharToByteCp1097.java.i
+data/src/share/classes/java/nio/file/StandardWatchEventKinds.java.i
+data/src/share/classes/javax/swing/plaf/InsetsUIResource.java.i
 data/test/sun/tools/native2ascii/A2N_4630971.i
 data/test/java/io/Serializable/evolution/AddedSuperClass/ReadAddedSuperClass.java.i
-data/src/share/classes/javax/swing/ScrollPaneConstants.java.i
+data/test/java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java.i
 data/test/java/lang/management/ThreadMXBean/MonitorDeadlock.java.i
 data/test/java/nio/channels/Selector/WakeupSpeed.java.i
 data/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java.i
-data/src/share/instrument/PathCharsValidator.h.i
+data/src/windows/native/java/net/net_util_md.c.i
 data/make/tools/CharsetMapping/Big5.map.i
 data/src/share/classes/com/sun/security/ntlm/NTLM.java.i
-data/src/share/classes/javax/swing/text/ZoneView.java.i
-data/src/share/classes/java/awt/BorderLayout.java.i
-data/make/tools/src/build/tools/javazic/Rule.java.i
+data/test/sun/tools/jps/jps-Vm_Output2.awk.i
+data/src/share/classes/javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java.i
+data/src/share/classes/javax/swing/text/html/parser/ParserDelegator.java.i
 data/test/java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html.i
-data/test/com/sun/crypto/provider/TLS/TestMasterSecret.java.i
+data/src/share/classes/sun/io/ByteToCharCp1146.java.i
 data/src/share/classes/sun/awt/image/NativeLibLoader.java.i
-data/src/windows/classes/sun/awt/windows/awtLocalization_ja.properties.i
+data/test/java/beans/XMLEncoder/javax_swing_border_BevelBorder.java.i
 data/src/share/classes/com/sun/tools/jdi/VoidValueImpl.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/keyvalues/package.html.i
-data/test/java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext.java.i
+data/src/share/classes/com/sun/jmx/namespace/package.html.i
+data/test/javax/smartcardio/HistoricalBytes.java.i
 data/src/solaris/sample/dtrace/hotspot/method_invocation_stat_filter.d.i
-data/src/share/classes/sun/management/snmp/jvmmib/JvmCompilationMBean.java.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmRTInputArgsTableMeta.java.i
+data/src/share/classes/sun/management/snmp/jvminstr/JvmMemManagerTableMetaImpl.java.i
 data/test/javax/security/auth/Subject/Synch2.java.i
-data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKGraphicsUtils.java.i
-data/src/share/classes/java/awt/HeadlessException.java.i
+data/test/javax/swing/text/GlyphView/6539700/bug6539700.java.i
+data/test/sun/security/krb5/auto/DynamicKeytab.java.i
 data/src/share/classes/com/sun/imageio/plugins/gif/GIFWritableImageMetadata.java.i
-data/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java.i
+data/test/java/util/Locale/serialized/java6locale_th_TH_TH.i
 data/test/javax/script/META-INF/services/javax.script.ScriptEngineFactory.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/package.html.i
+data/src/share/classes/javax/management/remote/JMXConnectorFactory.java.i
 data/src/share/classes/java/awt/peer/WindowPeer.java.i
 data/src/share/native/java/lang/fdlibm/src/w_lgamma.c.i
-data/src/share/classes/java/awt/PageAttributes.java.i
+data/src/windows/classes/java/io/FileDescriptor.java.i
 data/make/sun/beans/Makefile.i
 data/test/sun/net/www/protocol/http/Modified.java.i
 data/src/share/classes/com/sun/jmx/snmp/internal/SnmpAccessControlModel.java.i
 data/src/share/classes/sun/nio/ch/SocketOptsImpl.java.i
 data/test/java/net/DatagramSocket/LocalSocketAddress.java.i
-data/src/share/native/sun/security/ec/impl/ecdecode.c.i
+data/test/java/rmi/server/RMIClassLoader/noSecurityManager/LocalDummy.java.i
 data/src/share/classes/javax/sound/midi/spi/SoundbankReader.java.i
-data/src/share/classes/java/io/Bits.java.i
+data/src/share/classes/java/awt/peer/ScrollbarPeer.java.i
+data/test/java/security/cert/CertPathBuilder/targetConstraints/ee.cer.i
 data/src/share/native/sun/font/layout/GlyphLookupTables.cpp.i
 data/test/java/lang/Runtime/exec/SleepyCat.java.i
 data/test/sun/management/jmxremote/bootstrap/management_ssltest06_ok.properties.in.i
 data/src/windows/native/sun/java2d/d3d/D3DMaskBlit.h.i
 data/test/javax/security/auth/Subject/Serial.policy.i
-data/src/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadata.java.i
-data/src/share/classes/com/sun/media/sound/SimpleSoundbank.java.i
-data/src/share/classes/com/sun/jmx/snmp/daemon/CommunicatorServerMBean.java.i
-data/src/share/back/ThreadGroupReferenceImpl.c.i
-data/src/share/classes/sun/security/provider/PolicySpiFile.java.i
-data/src/share/classes/sun/text/resources/FormatData_sr_ME.java.i
-data/src/share/classes/sun/tools/tree/NegativeExpression.java.i
-data/src/share/classes/javax/swing/event/TreeModelEvent.java.i
+data/src/share/demo/nbproject/jfc/FileChooserDemo/nbproject/project.xml.i
+data/test/java/lang/Class/IsAnnotationType.java.i
+data/test/java/lang/Double/Constants.java.i
+data/src/share/native/sun/security/ec/impl/ecl_curve.c.i
+data/test/java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html.i
+data/src/windows/classes/sun/awt/windows/WInputMethodDescriptor.java.i
+data/test/java/io/File/Cons.java.i
+data/test/java/util/Collections/RacingCollections.java.i
 data/src/share/classes/sun/reflect/generics/tree/ReturnType.java.i
-data/make/java/java/reflect/Makefile.i
+data/make/tools/CharsetMapping/MacCentralEurope.map.i
+data/test/com/sun/net/httpserver/Test6.java.i
 data/src/share/demo/jfc/FileChooserDemo/ExampleFileSystemView.java.i
+data/src/solaris/native/sun/awt/awt_util.c.i
 data/test/javax/management/Introspector/ChangingNotifsTest.java.i
+data/src/share/classes/sun/misc/resources/Messages_zh_TW.java.i
 data/src/share/classes/sun/rmi/rmic/resources/rmic_zh_CN.properties.i
 data/src/share/classes/sun/security/x509/X509CertImpl.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_is_IS.properties.i
+data/src/share/transport/socket/sysSocket.h.i
 data/src/share/classes/sun/nio/cs/ISO_8859_7.java.i
 data/test/java/net/PlainSocketImpl/SetBufferSize.java.i
 data/src/share/classes/java/awt/peer/ButtonPeer.java.i
-data/src/share/classes/sun/tracing/dtrace/JVM.java.i
+data/test/java/io/Serializable/enum/badResolve/Read.java.i
+data/test/com/sun/security/auth/module/LdapLoginModule/CheckConfigs.java.i
 data/src/share/classes/com/sun/media/sound/SoftMainMixer.java.i
 data/src/share/classes/sun/tools/tree/ArrayAccessExpression.java.i
 data/src/share/classes/javax/net/ssl/SSLSocket.java.i
-data/src/windows/native/sun/windows/awt_MenuItem.cpp.i
-data/src/share/classes/javax/net/ssl/package.html.i
-data/src/share/classes/java/io/StringBufferInputStream.java.i
-data/src/solaris/classes/java/lang/UNIXProcess.java.solaris.i
+data/test/com/sun/crypto/provider/Mac/HmacSaltLengths.java.i
+data/test/sun/java2d/pisces/Renderer/Test7019861.java.i
+data/src/share/classes/sun/util/calendar/AbstractCalendar.java.i
+data/test/java/util/ResourceBundle/Control/LoadingStrategiesTest.java.i
+data/test/sun/tools/jstatd/jstatdPort.sh.i
 data/src/windows/native/sun/windows/awt_Event.h.i
 data/make/java/java/genlocales.gmk.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/AnimationController.java.i
+data/test/java/util/TimeZone/OldIDMappingTest.sh.i
 data/test/sun/pisces/ScaleTest.java.i
-data/src/share/native/sun/font/layout/GlyphPositioningTables.h.i
-data/src/share/classes/sun/net/www/protocol/http/Handler.java.i
+data/test/java/net/URLConnection/GetFileNameMap.java.i
+data/make/tools/swing-beans/beaninfo/images/JPanelColor32.gif.i
+data/src/share/classes/sun/nio/cs/FastCharsetProvider.java.i
 data/test/javax/security/auth/Subject/doAs/Test.sh.i
 data/src/share/native/sun/awt/image/jpeg/jmorecfg.h.i
 data/test/java/beans/Introspector/6380849/TestBeanInfo.java.i
 data/test/sun/net/www/protocol/http/B6518816.java.i
 data/test/javax/rmi/ssl/truststore.i
-data/test/java/io/SequenceInputStream/ConstructorNull.java.i
-data/test/java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.java.i
+data/test/java/io/Serializable/oldTests/AnnotateClass.java.i
+data/test/java/io/Serializable/illegalHandle/negativeHandle.ser.i
 data/test/javax/management/ImplementationVersion/ImplVersionTest.java.i
-data/src/share/demo/jfc/Notepad/resources/Notepad_ja.properties.i
+data/src/solaris/classes/sun/awt/X11InputMethod.java.i
 data/src/share/classes/javax/management/relation/RelationNotFoundException.java.i
 data/src/share/native/sun/security/ec/mpmontg.c.i
-data/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java.i
-data/src/share/classes/com/sun/tools/example/debug/bdi/FrameIndexOutOfBoundsException.java.i
-data/test/java/lang/Long/Decode.java.i
-data/make/tools/swing-beans/beaninfo/images/JToggleButtonColor16.gif.i
+data/test/javax/management/mxbean/InvalidMXBeanRegistrationTest.java.i
+data/src/share/classes/com/sun/jmx/snmp/agent/SnmpStandardMetaServer.java.i
+data/test/sun/security/jgss/CtorTests2.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS16U8Func.c.i
 data/test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableMap.java.i
-data/src/solaris/native/sun/awt/swing_GTKStyle.c.i
+data/test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/FileListTransferable.java.i
 data/src/solaris/classes/sun/java2d/xr/GrowableByteArray.java.i
-data/make/tools/swing-beans/beaninfo/images/JSplitPaneColor16.gif.i
+data/src/solaris/demo/jigsaw/basic/Makefile.i
 data/src/share/classes/javax/management/GenericMBeanException.java.i
 data/make/java/hpi/Makefile.i
-data/test/java/net/Socket/IDNTest.java.i
+data/test/java/beans/XMLEncoder/java_awt_Rectangle.java.i
 data/make/java/instrument/Makefile.i
 data/src/share/classes/sun/tracing/PrintStreamProviderFactory.java.i
 data/test/javax/swing/text/NavigationFilter/6735293/bug6735293.java.i
-data/src/solaris/doc/sun/man/man1/rmiregistry.1.i
+data/test/javax/security/auth/Subject/Synch2.policy.i
 data/src/share/classes/sun/text/resources/FormatData_es_PE.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/MyKeyManager.java.i
 data/src/share/classes/java/io/IOException.java.i
-data/test/sun/net/www/MarkResetTest.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageFilters.h.i
 data/src/share/demo/applets/Blink/Blink.java.i
 data/src/solaris/doc/sun/man/man1/jar.1.i
-data/src/share/classes/java/awt/dnd/DropTargetDragEvent.java.i
+data/src/share/native/java/util/zip/zlib-1.2.3/uncompr.c.i
+data/test/sun/security/krb5/tools/ktmissing.sh.i
 data/src/share/classes/java/awt/dnd/DnDConstants.java.i
-data/test/java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java.i
+data/test/sun/misc/JarIndex/metaInfFilenames/jarA/a/A.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java.i
-data/test/java/nio/channels/FileChannel/Lock.java.i
-data/src/share/javavm/export/classfile_constants.h.i
+data/src/share/native/sun/awt/medialib/mlib_sys.h.i
+data/test/sun/tools/jstat/jstatClassloadOutput1.sh.i
 data/src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java.i
 data/src/share/classes/java/awt/event/HierarchyListener.java.i
 data/test/javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java.i
 data/src/share/classes/sun/java2d/cmm/CMSManager.java.i
-data/src/share/classes/sun/security/ec/SunEC.java.i
-data/src/share/classes/sun/nio/cs/ext/IBM500.java.i
+data/test/java/awt/Toolkit/Headless/GetPrintJob/GetPrintJob.java.i
+data/test/java/util/TreeMap/EmptyMapAndNulls.java.i
+data/src/share/native/java/util/zip/zlib-1.2.3/inffast.c.i
 data/test/java/rmi/server/RemoteObject/notExtending/NotExtending.java.i
-data/src/share/classes/java/lang/reflect/package-info.java.i
-data/src/share/classes/com/sun/imageio/plugins/bmp/BMPConstants.java.i
+data/src/share/classes/sun/misc/PerformanceLogger.java.i
+data/test/java/beans/Introspector/Test4984912.java.i
 data/src/solaris/native/sun/awt/XDrawingArea.h.i
-data/test/java/lang/instrument/appendToClassLoaderSearch/A.1.i
+data/src/share/classes/sun/util/resources/LocaleNames_no.properties.i
+data/test/java/awt/FullScreen/SetFSWindow/FSFrame.java.i
 data/test/javax/print/attribute/PSCopiesFlavorTest.java.i
-data/src/share/classes/javax/management/remote/JMXProviderException.java.i
+data/src/share/classes/sun/io/ByteToCharCp737.java.i
+data/src/solaris/native/sun/xawt/XToolkit.c.i
 data/src/share/classes/sun/util/resources/LocaleNames_mk.properties.i
-data/test/com/sun/security/sasl/digest/pw.properties.i
+data/test/java/io/PushbackReader/MarkReset.java.i
 data/src/share/javavm/export/jvm.h.i
 data/test/java/lang/Math/AbsPositiveZero.java.i
+data/make/common/shared/Compiler-gcc.gmk.i
 data/src/share/sample/scripting/scriptpad/src/scripts/README.txt.i
 data/src/share/classes/sun/util/resources/LocaleNames_sl.properties.i
 data/src/share/classes/sun/security/krb5/internal/ccache/Tag.java.i
-data/test/com/sun/tools/attach/java.policy.allow.i
-data/src/share/classes/com/sun/naming/internal/NamedWeakReference.java.i
+data/test/java/beans/Introspector/memory/SimpleClassLoader.java.i
+data/test/sun/security/util/DerInputBuffer/BigInteger0.java.i
 data/test/sun/net/www/protocol/jar/jarbug/run.sh.i
-data/test/java/io/RandomAccessFile/OpsAfterClose.java.i
+data/test/sun/nio/cs/OLD/IBM1381_OLD.java.i
 data/src/share/classes/com/sun/crypto/provider/ConstructKeys.java.i
 data/test/java/beans/EventHandler/Test6788531.java.i
-data/src/share/classes/sun/tools/java/IdentifierToken.java.i
+data/src/share/classes/java/util/logging/ErrorManager.java.i
 data/src/share/classes/com/sun/tools/example/debug/tty/VMNotConnectedException.java.i
 data/test/sun/security/pkcs11/KeyStore/BasicData/p11-sca1000.txt.i
-data/src/share/classes/sun/util/resources/CurrencyNames_es_PY.properties.i
+data/test/java/nio/channels/Selector/CloseThenRegister.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/MessageDigestAlgorithm.java.i
 data/test/com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java.i
-data/make/sun/jdga/Makefile.i
+data/test/java/util/Vector/SerializationDeadlock.java.i
 data/src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java.i
-data/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java.i
-data/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c.i
+data/src/share/native/sun/awt/image/BufImgSurfaceData.h.i
+data/src/share/sample/nio/multicast/MulticastAddress.java.i
+data/make/common/shared/Compiler.gmk.i
 data/src/share/classes/javax/swing/plaf/basic/BasicButtonListener.java.i
-data/test/sun/security/krb5/auto/BadKdc.java.i
-data/src/solaris/native/sun/awt/awt_util.c.i
+data/src/share/classes/javax/swing/text/rtf/charsets/cpg437.txt.i
+data/test/java/security/SecureRandom/sha1prng-new.bin.i
+data/test/com/sun/net/httpserver/bugs/B6401598.java.i
 data/test/sun/java2d/cmm/ColorConvertOp/ColConvCCMTest.java.i
 data/src/share/classes/sun/reflect/misc/FieldUtil.java.i
-data/LICENSE.i
-data/src/share/classes/javax/naming/ReferralException.java.i
+data/src/share/native/sun/security/ec/impl/ecp_aff.c.i
+data/test/java/lang/management/MemoryMXBean/LowMemoryTestSerialGC.sh.i
 data/src/share/native/common/jdk_util.c.i
-data/test/sun/nio/cs/Test6254467.java.i
-data/src/solaris/native/sun/java2d/loops/vis_UshortGray_FromRgb.c.i
 data/test/sun/security/krb5/confplusprop.conf.i
-data/src/share/classes/java/util/StringTokenizer.java.i
-data/test/java/security/Security/signedfirst/Dyn.sh.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMAclItem.java.i
-data/test/java/awt/font/NumericShaper/ShapingTest.java.i
-data/test/java/beans/PropertyChangeSupport/1.5.0_10.ser.i
-data/test/sun/net/www/http/KeepAliveCache/B5045306.java.i
-data/src/share/classes/sun/io/ByteToCharMS932.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/icons/Inform.gif.i
+data/make/tools/CharsetMapping/MacDingbat.map.i
+data/make/tools/swing-beans/beaninfo/images/JRadioButtonColor32.gif.i
+data/test/java/nio/channels/SocketChannel/BufferSize.java.i
+data/test/java/beans/Introspector/memory/Bean2.java.i
+data/test/java/nio/channels/Selector/ByteServer.java.i
+data/test/sun/security/tools/policytool/i18n.sh.i
+data/src/share/native/java/lang/Float.c.i
+data/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java.i
 data/test/java/io/PipedInputStream/ClosedWriter.java.i
 data/src/share/classes/sun/management/counter/ByteArrayCounter.java.i
-data/test/javax/swing/SwingWorker/6493680/bug6493680.java.i
+data/src/share/classes/javax/imageio/metadata/IIOMetadataNode.java.i
 data/src/share/classes/sun/rmi/registry/resources/rmiregistry_fr.properties.i
-data/test/java/security/BasicPermission/PermClass.java.i
 data/test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_EtchedBorderUIResource.java.i
-data/src/share/classes/java/awt/Component.java.i
-data/test/java/lang/Math/Expm1Tests.java.i
-data/test/java/util/zip/ZipInputStream/Constructor.java.i
-data/src/share/classes/com/sun/jmx/remote/internal/NotificationBufferFilter.java.i
+data/test/javax/management/remote/mandatory/connectorServer/RMIExporterTest.java.i
+data/src/share/classes/java/awt/PageAttributes.java.i
+data/test/sun/security/provider/PolicyParser/PrincipalExpansionError.sh.i
+data/make/tools/jarreorder/Makefile.i
 data/test/sun/net/www/protocol/http/HttpInputStream.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageConvMxN_8.c.i
 data/test/sun/security/ssl/sun/net/www/httpstest/HttpCallback.java.i
-data/src/share/classes/java/lang/ref/FinalReference.java.i
+data/test/java/nio/MappedByteBuffer/Truncate.java.i
 data/test/java/rmi/activation/ActivateFailedException/activateFails/security.policy.i
 data/src/share/classes/java/text/Annotation.java.i
 data/test/java/lang/instrument/PremainClass/NoPremainAgent.java.i
 data/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentContext.java.i
-data/src/share/classes/javax/security/cert/CertificateEncodingException.java.i
+data/test/javax/security/auth/x500/X500Principal/Parse.java.i
+data/src/share/classes/sun/misc/CompoundEnumeration.java.i
+data/src/share/classes/javax/naming/ldap/PagedResultsResponseControl.java.i
 data/src/share/native/sun/security/ec/ecp_aff.c.i
-data/src/share/classes/javax/swing/text/StyleConstants.java.i
-data/test/java/beans/XMLEncoder/java_util_Collections_CheckedList.java.i
-data/src/solaris/classes/sun/awt/X11/java-icon32.png.i
-data/src/share/classes/sun/util/resources/CurrencyNames_zh_HK.java.i
-data/src/share/classes/sun/security/pkcs/PKCS9Attributes.java.i
+data/src/solaris/doc/sun/man/man1/jrunscript.1.i
+data/test/sun/security/pkcs11/Signature/ReinitSignature.java.i
+data/src/share/classes/com/sun/tools/hat/internal/model/JavaLazyReadObject.java.i
+data/src/share/classes/sun/awt/im/CompositionAreaHandler.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_zh_HK.java.i
+data/src/share/classes/javax/swing/plaf/basic/BasicGraphicsUtils.java.i
 data/src/share/classes/sun/java2d/loops/CompositeType.java.i
-data/src/share/classes/javax/swing/plaf/synth/SynthParser.java.i
-data/src/share/classes/javax/net/ssl/SSLSessionBindingListener.java.i
-data/src/share/classes/sun/text/resources/FormatData_sr_BA.java.i
-data/test/java/lang/ClassLoader/deadlock/SupBob.java.i
-data/src/share/classes/sun/text/IntHashtable.java.i
-data/src/share/classes/com/sun/jmx/remote/protocol/rmi/ServerProvider.java.i
-data/test/java/beans/XMLEncoder/java_awt_Rectangle.java.i
+data/src/share/classes/org/openjdk/jigsaw/Launcher.java.i
+data/test/sun/security/pkcs11/sslecc/truststore.i
+data/src/share/classes/org/openjdk/internal/joptsimple/OptionSpecTokenizer.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformXSLT.java.i
+data/test/sun/security/provider/DSA/TestDSA.java.i
+data/src/share/native/sun/font/layout/KhmerReordering.cpp.i
+data/src/windows/classes/sun/awt/windows/WDefaultFontCharset.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SelfIssuedCert.java.i
 data/src/share/classes/javax/smartcardio/package.html.i
-data/make/tools/jarsplit/Makefile.i
+data/src/share/native/sun/java2d/pipe/BufferedRenderPipe.c.i
+data/test/java/math/RoundingMode/RoundingModeTests.java.i
 data/test/java/lang/instrument/appendToClassLoaderSearch/Agent.java.i
-data/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.SuSE.properties.i
-data/src/share/native/sun/awt/libpng/pngwtran.c.i
+data/test/sun/management/jmxremote/bootstrap/jmxremote_test06_ok.password.in.i
+data/src/share/classes/sun/io/CharToByteUnicodeLittle.java.i
 data/src/share/classes/javax/print/attribute/DateTimeSyntax.java.i
-data/src/share/native/sun/java2d/loops/ByteBinary4Bit.c.i
+data/test/java/lang/Math/CubeRootTests.java.i
 data/test/javax/sound/sampled/AudioFormat/Matches_NOT_SPECIFIED.java.i
-data/make/tools/swing-beans/beaninfo/images/JMenuBarColor32.gif.i
+data/test/java/io/Serializable/superclassDataLoss/A.java.i
 data/test/java/nio/file/attribute/FileTime/Basic.java.i
 data/make/sun/motif12/reorder-sparcv9.i
-data/test/java/security/Security/Nulls.java.i
-data/src/share/classes/com/sun/pept/presentation/MessageStruct.java.i
-data/src/share/classes/javax/swing/plaf/metal/MetalFontDesktopProperty.java.i
-data/src/share/demo/applets/Fractal/example1.html.i
+data/src/share/classes/java/nio/channels/DatagramChannel.java.i
+data/src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java.i
+data/test/sun/nio/cs/SurrogateTestEUCTW.plane4.surrogates.i
+data/test/java/lang/Integer/Decode.java.i
 data/test/java/util/zip/GZIP/ReadUByte.java.i
-data/test/java/util/Currency/PropertiesTest.sh.i
+data/src/share/classes/org/openjdk/internal/joptsimple/OptionException.java.i
+data/src/share/classes/java/nio/channels/spi/AbstractSelectionKey.java.i
 data/src/share/classes/java/rmi/server/Skeleton.java.i
-data/test/java/awt/dnd/ImageDecoratedDnDNegative/MyCursor.java.i
-data/src/share/classes/sun/util/locale/LanguageTag.java.i
-data/make/common/BuildPackages.gmk.i
+data/test/java/security/cert/CertPathValidatorException/ReasonTest.java.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_PKCS5_PBKD2_PARAMS.java.i
+data/test/sun/security/pkcs11/Cipher/TestRSACipher.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/IntegrityHmac.java.i
-data/make/tools/CharsetMapping/sjis0213.map.i
+data/src/share/classes/sun/tools/tree/AssignDivideExpression.java.i
 data/test/java/lang/Class/getDeclaringClass/Sanity.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsScrollBarUI.java.i
-data/test/javax/management/mxbean/CustomTypeTest.java.i
+data/src/share/classes/sun/io/CharToByteCp949C.java.i
+data/src/share/classes/com/sun/jndi/ldap/EntryChangeResponseControl.java.i
 data/src/solaris/native/sun/awt/list.h.i
 data/src/share/classes/java/lang/module/ModuleSystem.java.i
-data/make/netbeans/common/windows-view.ent.i
-data/test/java/security/KeyRep/SerialOld.java.i
-data/src/share/classes/java/nio/file/StandardWatchEventKinds.java.i
+data/test/java/util/logging/GetGlobalTest.java.i
+data/src/share/classes/java/text/spi/BreakIteratorProvider.java.i
+data/src/share/classes/sun/java2d/SunGraphics2D.java.i
 data/test/javax/management/monitor/NonComparableAttributeValueTest.java.i
-data/src/share/classes/org/openjdk/jigsaw/Repository.java.i
+data/src/share/classes/sun/tools/jconsole/ProxyClient.java.i
+data/test/javax/management/timer/StartTest.java.i
 data/test/java/nio/channels/FileChannel/Mode.java.i
-data/src/share/classes/com/sun/java/util/jar/pack/Instruction.java.i
-data/test/java/io/Serializable/nonserializable/ExceptionDetail.java.i
+data/test/java/net/Socket/setReuseAddress/Restart.java.i
+data/make/tools/CharsetMapping/IBM868.map.i
 data/test/java/lang/instrument/NullTransformerAddTest.java.i
-data/src/share/classes/javax/swing/Scrollable.java.i
-data/test/java/lang/instrument/PremainClass/InheritAgent1010.java.i
+data/src/solaris/native/sun/java2d/loops/mlib_v_ImageXor.c.i
+data/test/javax/management/eventService/UsingEventService.java.i
 data/src/share/classes/java/security/cert/CRL.java.i
 data/src/share/native/sun/font/layout/NonContextualGlyphSubst.h.i
-data/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java.i
-data/src/share/classes/sun/tools/tree/PreIncExpression.java.i
-data/src/share/classes/javax/management/ValueExp.java.i
-data/src/share/classes/java/net/BindException.java.i
+data/test/java/security/Security/Nulls.java.i
+data/src/solaris/classes/sun/awt/X11/WindowPropertyGetter.java.i
+data/test/java/awt/font/NumericShaper/ShapingTest.java.i
+data/src/share/back/stream.c.i
 data/test/java/rmi/transport/checkFQDN/CheckFQDN.java.i
-data/src/share/classes/sun/rmi/server/resources/rmid_ja.properties.i
-data/src/share/classes/java/awt/TextComponent.java.i
-data/src/share/classes/sun/security/util/AuthResources.java.i
+data/src/share/classes/javax/security/auth/PrivateCredentialPermission.java.i
+data/src/share/classes/javax/print/attribute/standard/PrinterMakeAndModel.java.i
+data/test/sun/security/tools/jarsigner/diffend.sh.i
 data/src/share/classes/javax/naming/LinkException.java.i
-data/make/sun/awt/FILES_c_windows.gmk.i
+data/test/javax/management/remote/mandatory/passwordAccessFile/SimpleStandardMBean.java.i
 data/src/share/lib/net.properties.i
-data/src/share/classes/sun/tools/jstat/resources/jstat_options.i
-data/make/modules/modules.properties.i
+data/src/share/native/sun/font/layout/LELanguages.h.i
+data/src/share/classes/org/openjdk/jigsaw/Repository.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicHTML.java.i
 data/src/share/sample/vm/clr-jvm/jinvokerExp.h.i
 data/src/share/classes/com/sun/jmx/mbeanserver/package.html.i
-data/src/share/classes/sun/font/TextLabelFactory.java.i
-data/test/com/sun/jdi/DebuggerThreadTest.java.i
-data/test/javax/script/Test8.java.i
+data/test/javax/swing/JEditorPane/6917744/bug6917744.java.i
+data/src/share/classes/sun/java2d/SurfaceData.java.i
+data/src/share/classes/java/awt/KeyEventPostProcessor.java.i
+data/src/share/classes/sun/nio/cs/ext/IBM964.java.i
 data/src/share/native/sun/font/layout/Features.h.i
 data/test/javax/naming/Name/Serialized13Name.java.i
 data/src/share/classes/java/awt/image/ImageObserver.java.i
 data/test/javax/swing/plaf/metal/MetalBorders/Test6657026.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BC_U16.c.i
-data/src/share/classes/javax/security/sasl/RealmChoiceCallback.java.i
-data/test/javax/imageio/plugins/jpeg/WritingInterruptionTest.java.i
-data/test/javax/print/applet/applet4/Applet4PrintService.java.i
+data/src/share/classes/sun/nio/cs/MS1254.java.i
+data/test/sun/security/pkcs11/Signature/ByteBuffers.java.i
 data/test/java/io/Serializable/unresolvedClassDesc/Foo.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_en_PH.properties.i
-data/src/share/classes/com/sun/jndi/toolkit/dir/DirSearch.java.i
+data/test/java/nio/charset/coders/ref.windows-31j.i
+data/src/share/classes/com/sun/imageio/plugins/png/PNGMetadataFormatResources.java.i
 data/test/java/math/BigInteger/BigIntegerTest.java.i
 data/src/share/classes/sun/text/resources/FormatData_hu_HU.java.i
-data/test/sun/net/www/protocol/jar/foo1.jar.d
+data/src/share/classes/com/sun/jmx/snmp/SnmpIpAddress.java.i
 data/src/solaris/classes/sun/nio/ch/SolarisEventPort.java.i
-data/src/share/classes/sun/net/idn/StringPrepDataReader.java.i
-data/test/java/rmi/server/RMIClassLoader/downloadArrayClass/DownloadArrayClass.java.i
+data/test/java/io/DataInputStream/ReadUTF.java.i
+data/test/javax/swing/JScrollPane/6559589/bug6559589.java.i
 data/test/java/io/File/SetReadOnly.java.i
 data/test/javax/swing/JColorChooser/Test4759934.html.i
-data/test/java/io/Serializable/illegalHandle/negativeHandle.ser.i
+data/src/share/classes/java/security/cert/PKIXReason.java.i
 data/src/share/classes/javax/print/attribute/standard/JobSheets.java.i
-data/src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14NWithComments.java.i
+data/src/share/classes/sun/font/AttributeMap.java.i
 data/src/share/classes/javax/management/openmbean/CompositeType.java.i
-data/src/share/classes/com/sun/jdi/VoidType.java.i
+data/src/share/classes/sun/awt/FocusingTextField.java.i
 data/src/share/native/com/sun/java/util/jar/pack/jni.cpp.i
 data/test/java/lang/annotation/Missing/MissingTest.java.i
 data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfoFactory.java.i
-data/make/docs/Notes.html.i
-data/src/share/classes/javax/swing/event/ListSelectionListener.java.i
+data/src/windows/classes/sun/awt/windows/WToolkit.java.i
+data/src/solaris/sample/dtrace/hotspot/method_compile_stat.d.i
 data/test/java/lang/invoke/RicochetTest.java.i
-data/src/share/classes/sun/rmi/transport/tcp/MultiplexOutputStream.java.i
-data/src/share/classes/sun/io/CharToByteMacIceland.java.i
+data/src/share/classes/sun/reflect/UTF8.java.i
+data/test/java/util/logging/LoggingDeadlock.java.i
 data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain1.txt.i
 data/test/javax/management/MBeanInfo/TooManyFooTest.java.i
-data/make/netbeans/swing/build.properties.i
+data/src/share/native/java/lang/fdlibm/src/k_sin.c.i
 data/src/share/classes/sun/invoke/anon/InvalidConstantPoolFormatException.java.i
-data/src/share/classes/javax/swing/border/BevelBorder.java.i
+data/test/java/rmi/server/RMIClassLoader/delegateToContextLoader/DelegateToContextLoader.java.i
 data/src/share/classes/java/awt/doc-files/Scrollbar-1.gif.i
-data/src/share/demo/management/JTop/JTopPlugin.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java.i
-data/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptJConsolePlugin.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-i586/libnss3.so.i
+data/src/share/classes/sun/io/CharToByteCp1144.java.i
+data/make/tools/src/build/tools/dtdbuilder/PublicMapping.java.i
 data/test/java/lang/invoke/JavaDocExamplesTest.java.i
-data/src/share/classes/sun/nio/cs/ext/ISO_8859_8.java.i
-data/test/javax/management/remote/mandatory/passwordAuthenticator/jmxremote.password-alt.i
-data/src/share/classes/javax/swing/text/TabExpander.java.i
-data/src/share/classes/sun/management/MemoryPoolImpl.java.i
+data/test/sun/security/pkcs11/nss/lib/solaris-i586/libnss3.so.d
+data/src/share/native/sun/management/GarbageCollectorImpl.c.i
+data/test/sun/tools/jconsole/ResourceCheckTest.java.i
+data/test/java/io/Serializable/evolution/AddedField/ReadAddedField.java.i
+data/test/javax/sound/midi/Gervill/SF2SoundbankReader/ding.sf2.i
 data/src/share/classes/com/sun/servicetag/UnauthorizedAccessException.java.i
 data/test/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java.i
-data/test/java/io/Serializable/noSuchFieldClarification/NoSuchFieldClarification.java.i
-data/src/share/classes/com/sun/media/sound/SoftSincResampler.java.i
-data/test/sun/net/www/http/ChunkedInputStream/ChunkedEncodingTest.java.i
-data/src/share/classes/java/awt/doc-files/GridLayout-2.gif.i
-data/make/tools/strip_properties/Makefile.i
-data/test/java/awt/dnd/ImageDecoratedDnD/MyCursor.java.i
+data/test/java/beans/XMLEncoder/java_awt_Dimension.java.i
+data/test/java/security/cert/pkix/policyChanges/ee.cer.i
+data/src/share/classes/java/dyn/MethodType.java.i
+data/src/share/classes/com/sun/net/httpserver/HttpsExchange.java.i
+data/src/share/classes/sun/reflect/generics/tree/TypeSignature.java.i
+data/test/java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java.i
+data/src/windows/classes/com/sun/tools/jdi/SunSDK.java.i
+data/test/java/rmi/registry/checkusage/CheckUsage.java.i
 data/test/java/io/charStreams/SmallReads.java.i
+data/test/com/sun/net/httpserver/Test7a.java.i
 data/src/windows/native/sun/windows/awt_BitmapUtil.h.i
 data/test/java/lang/annotation/loaderLeak/B.java.i
 data/src/solaris/classes/sun/awt/motif/MFontPeer.java.i
-data/make/tools/src/build/tools/generatecharacter/CharacterName.java.i
+data/test/java/nio/channels/Selector/ReadAfterConnect.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/GetPropertyInfo.java.i
 data/test/java/net/URLConnection/6212146/test.sh.i
-data/test/java/rmi/reliability/benchmark/bench/serial/SmallObjTrees.java.i
-data/test/java/beans/PropertyEditor/TestLongClass.java.i
+data/test/javax/crypto/CryptoPermission/AllPermCheck.java.i
+data/test/java/lang/reflect/Array/ExceedMaxDim.java.i
 data/test/java/beans/PropertyEditor/6380849/FirstBeanEditor.java.i
-data/src/share/classes/javax/swing/plaf/metal/MetalMenuBarUI.java.i
-data/src/share/classes/sun/util/resources/CalendarData_be.properties.i
+data/test/javax/management/eventService/LeaseTest.java.i
+data/src/windows/native/sun/windows/awt_MenuBar.cpp.i
 data/src/share/classes/javax/swing/DefaultComboBoxModel.java.i
-data/src/share/classes/java/util/BitSet.java.i
+data/test/java/rmi/activation/Activatable/elucidateNoSuchMethod/ActivateMe.java.i
+data/src/share/classes/javax/swing/colorchooser/CenterLayout.java.i
 data/src/share/classes/java/security/spec/ECPoint.java.i
-data/test/sun/nio/cs/OLD/IBM933_OLD.java.i
-data/src/share/classes/com/sun/beans/finder/ClassFinder.java.i
-data/test/java/io/charStreams/RandomLines.java.i
-data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUp.c.i
+data/test/sun/tools/jrunscript/jrunscript-fTest.sh.i
+data/src/share/classes/sun/io/ByteToCharCp970.java.i
+data/test/java/util/concurrent/FutureTask/BlockingTaskExecutor.java.i
 data/src/share/classes/sun/misc/JarFilter.java.i
 data/src/share/classes/javax/print/attribute/HashPrintServiceAttributeSet.java.i
-data/src/share/classes/javax/swing/text/html/BlockView.java.i
+data/test/javax/sound/midi/Gervill/SoftTuning/NewSoftTuning.java.i
 data/src/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadataFormat.java.i
-data/src/share/demo/jvmti/hprof/hprof_tag.h.i
-data/test/java/rmi/activation/Activatable/checkRegisterInLog/group.security.policy.i
+data/test/sun/security/tools/policytool/SaveAs.html.i
 data/test/sun/text/resources/Format/Bug5096553.java.i
-data/src/share/classes/javax/imageio/spi/IIOServiceProvider.java.i
+data/src/share/classes/sun/rmi/transport/TransportConstants.java.i
 data/test/java/net/InetAddress/Simple1NameServiceDescriptor.java.i
 data/test/sun/misc/Encode/DecodeBuffer.java.i
-data/src/share/native/sun/awt/image/cvutils/README.i
+data/test/org/openjdk/jigsaw/ModuleInfoBuilder.java.i
 data/src/solaris/native/sun/management/FileSystemImpl.c.i
 data/test/java/lang/annotation/UnitTest.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/CheckNullEntity.java.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java.i
+data/src/share/classes/sun/print/PSStreamPrintJob.java.i
 data/src/share/classes/sun/security/ssl/SSLContextImpl.java.i
-data/src/share/native/sun/font/FontInstanceAdapter.cpp.i
-data/src/share/classes/sun/awt/resources/awt_ko.properties.i
+data/src/share/classes/com/sun/jdi/VoidType.java.i
+data/make/java/zip/reorder-i586.i
+data/src/share/classes/sun/util/resources/CalendarData_lt.properties.i
 data/src/share/sample/jmx/jmx-scandir/nbproject/netbeans-targets.xml.i
 data/test/sun/security/tools/keytool/i18n.sh.i
 data/src/share/native/java/lang/fdlibm/src/s_ilogb.c.i
 data/src/share/classes/overview-bundled.html.i
-data/src/solaris/classes/sun/awt/motif/MMouseDragGestureRecognizer.java.i
-data/src/share/classes/java/security/interfaces/DSAPrivateKey.java.i
+data/test/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement3.java.i
+data/src/share/classes/sun/security/provider/DSAPublicKey.java.i
+data/test/java/nio/channels/Pipe/EmptyRead.java.i
 data/src/solaris/doc/sun/man/man1/policytool.1.i
 data/test/javax/sound/midi/Gervill/SoftLinearResampler2/Interpolate.java.i
 data/src/share/classes/com/sun/imageio/plugins/gif/GIFStreamMetadata.java.i
 data/src/share/classes/sun/awt/datatransfer/ToolkitThreadBlockedHandler.java.i
+data/test/java/io/Serializable/packageAccess/A.java.i
 data/test/java/beans/XMLDecoder/4676532/Test4676532.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh.i
 data/src/share/classes/sun/text/resources/FormatData_iw_IL.java.i
-data/src/share/classes/javax/management/NotificationEmitter.java.i
+data/src/share/classes/sun/reflect/ClassDefiner.java.i
 data/src/share/classes/javax/naming/NameImpl.java.i
 data/test/java/security/Security/ClassLoaderDeadlock/Deadlock.java.i
 data/test/java/io/Serializable/enum/constantSubclasses/Read.java.i
@@ -19324,470 +19319,481 @@ data/src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java.i
 data/test/java/net/ProxySelector/NullArguments.java.i
 data/src/windows/hpi/src/memory_md.c.i
 data/test/sun/java2d/cmm/ColorConvertOp/SRGB.png.d
-data/src/share/classes/sun/tools/tree/AssignAddExpression.java.i
+data/src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java.i
 data/src/share/sample/jmx/jmx-scandir/truststore.i
 data/test/javax/imageio/plugins/gif/GifTransparencyTest.java.i
-data/src/share/classes/java/beans/beancontext/package.html.i
+data/src/share/classes/com/sun/media/sound/AbstractLine.java.i
 data/src/share/classes/sun/nio/ch/NativeObject.java.i
+data/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java.i
 data/make/javax/swing/html32dtd/Makefile.i
-data/src/share/classes/com/sun/net/httpserver/spi/package-info.java.i
+data/make/common/Program.gmk.i
 data/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java.i
-data/test/java/net/Socket/asyncClose/AsyncCloseTest.java.i
-data/test/java/lang/instrument/appendToClassLoaderSearch/DynamicTest.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-amd64/libplc4.so.i
+data/test/javax/management/MBeanServer/MBeanServerNotificationTest.java.i
+data/test/sun/security/pkcs11/Secmod/secmod.db.i
 data/make/tools/swing-beans/beaninfo/images/JFileChooserMono16.gif.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/RemoveMarkReset.java.i
-data/src/share/classes/javax/management/remote/JMXConnectorServer.java.i
+data/src/solaris/classes/sun/java2d/xr/XRCompositeManager.java.i
+data/test/java/net/InetAddress/CheckJNI.java.i
 data/src/share/classes/sun/java2d/SunGraphicsEnvironment.java.i
-data/src/windows/hpi/src/path_md.c.i
+data/test/sun/security/rsa/GenKeyStore.java.i
 data/test/tools/launcher/libraryCaller.java.i
-data/test/java/rmi/activation/ActivationSystem/modifyDescriptor/rmid.security.policy.i
+data/test/sun/net/www/MarkResetTest.java.i
 data/test/java/io/Serializable/validate/Validate.java.i
-data/test/javax/script/Test4.java.i
-data/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java.i
-data/src/share/demo/jvmti/hprof/hprof_b_spec.h.i
+data/test/java/beans/Beans/6669869/TestDesignTime.java.i
+data/test/java/io/Serializable/subclass/Test.java.i
 data/src/share/classes/com/sun/security/sasl/ntlm/FactoryImpl.java.i
 data/src/share/classes/com/sun/crypto/provider/KeyProtector.java.i
-data/src/share/classes/java/awt/peer/package.html.i
+data/src/share/classes/sun/security/jgss/krb5/SubjectComber.java.i
 data/src/share/classes/sun/misc/resources/Messages_sv.java.i
-data/test/javax/xml/crypto/dsig/data/certs/lugh.crt.i
+data/src/share/classes/javax/management/DescriptorKey.java.i
+data/test/sun/nio/cs/EUCJPUnderflowDecodeTest.java.i
+data/src/share/classes/java/beans/SimpleBeanInfo.java.i
 data/src/share/classes/javax/xml/crypto/dsig/spec/XPathType.java.i
 data/src/share/classes/java/security/cert/CertStoreSpi.java.i
 data/test/java/nio/channels/DatagramChannel/SocketOptionTests.java.i
-data/test/javax/swing/JFileChooser/6713352/bug6713352.java.i
-data/test/java/awt/Toolkit/Headless/AWTEventListener/AWTListener.java.i
+data/test/javax/swing/UIDefaults/6795356/SwingLazyValueTest.java.i
+data/src/share/classes/sun/tools/tree/LongExpression.java.i
+data/test/java/io/Serializable/superclassDataLoss/run.sh.i
 data/src/windows/native/sun/windows/DllUtil.h.i
 data/test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html.i
-data/test/javax/print/attribute/SupportedPrintableAreas.java.i
+data/test/java/lang/instrument/PremainClass/InheritAgent1100.java.i
+data/src/share/classes/java/awt/event/ContainerAdapter.java.i
 data/src/share/classes/sun/tools/jstat/SymbolResolutionClosure.java.i
-data/src/share/classes/sun/nio/cs/standard-charsets.i
+data/src/solaris/doc/sun/man/man1/ja/native2ascii.1.i
 data/test/java/nio/Buffer/CopyDirectCharMemory.java.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/MonitorDataException.java.i
 data/test/java/net/URLConnection/Redirect307Test.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_es_GT.properties.i
+data/test/com/sun/nio/sctp/SctpChannel/Connect.java.i
 data/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.java.i
-data/src/share/classes/javax/xml/crypto/dsig/dom/package.html.i
-data/src/share/classes/java/awt/font/LineMetrics.java.i
+data/src/share/classes/sun/io/CharToByteCp420.java.i
+data/test/java/security/KeyRep/SerialOld.policy.i
 data/src/share/classes/sun/tools/jconsole/Utilities.java.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadBlocksClose.java.i
-data/src/share/classes/sun/io/CharToByteCp870.java.i
-data/src/share/classes/javax/sql/rowset/spi/XmlWriter.java.i
-data/src/share/classes/java/awt/geom/Arc2D.java.i
+data/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_Util.c.i
+data/src/share/instrument/Utilities.h.i
+data/src/share/native/sun/font/layout/HanLayoutEngine.cpp.i
 data/src/share/classes/javax/management/JMRuntimeException.java.i
 data/test/java/security/Security/signedfirst/DynSignedProvFirst.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/DelegatedTaskWrongException.java.i
 data/src/share/classes/java/sql/DriverPropertyInfo.java.i
-data/src/solaris/classes/sun/nio/ch/SctpResultContainer.java.i
+data/test/com/sun/security/jgss/InquireSecContextPermissionCheck.java.i
 data/src/share/classes/org/openjdk/jigsaw/Manifest.java.i
-data/src/share/classes/javax/swing/text/BoxView.java.i
+data/src/share/demo/jfc/Font2DTest/resources/TextResources_en_GB.properties.i
 data/src/share/classes/sun/security/x509/CertificateIssuerUniqueIdentity.java.i
 data/test/java/nio/file/Files/grantTopOnly.policy.i
 data/src/share/classes/java/sql/BatchUpdateException.java.i
 data/test/sun/security/pkcs11/nss/lib/linux-i586/libplds4.so.i
-data/src/share/classes/sun/nio/ch/NativeDispatcher.java.i
+data/src/solaris/classes/sun/nio/cs/ext/COMPOUND_TEXT_Encoder.java.i
 data/src/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java.i
 data/src/share/classes/com/sun/jmx/remote/internal/Unmarshal.java.i
-data/test/java/lang/Math/Atan2Tests.java.i
+data/src/share/classes/com/sun/tools/hat/internal/oql/OQLQuery.java.i
+data/test/tools/launcher/CreatePlatformFile.java.i
 data/src/share/classes/javax/swing/event/ChangeEvent.java.i
-data/src/windows/native/sun/windows/awt_Multimon.h.i
-data/test/com/sun/servicetag/InvalidServiceTag.java.i
-data/src/share/native/com/sun/java/util/jar/pack/zip.h.i
+data/src/solaris/native/com/sun/management/UnixOperatingSystem_md.c.i
+data/src/share/classes/javax/xml/crypto/package.html.i
+data/test/javax/management/Introspector/ImmutableNotificationInfoTest.java.i
+data/test/sun/tools/jrunscript/hello.js.i
+data/test/sun/security/pkcs11/KeyStore/ClientAuthData/ibutton.cert.i
 data/test/java/beans/Introspector/BeanUtils.java.i
-data/src/share/classes/java/nio/file/attribute/AclFileAttributeView.java.i
+data/src/share/classes/sun/launcher/resources/launcher_ja.properties.i
 data/test/java/io/PipedInputStream/WriterLoop.java.i
-data/src/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java.i
-data/src/share/classes/java/util/jar/JavaUtilJarAccessImpl.java.i
+data/test/java/rmi/server/RMIClassLoader/spi/InvalidProperty.java.i
+data/src/windows/native/sun/tools/attach/WindowsVirtualMachine.c.i
 data/src/share/classes/sun/tools/jconsole/Tab.java.i
-data/test/tools/jar/ChangeDir.java.i
-data/make/common/Defs-solaris.gmk.i
-data/src/share/classes/sun/util/resources/CalendarData_sr_Latn_RS.properties.i
+data/src/share/classes/sun/java2d/pipe/AAShapePipe.java.i
+data/src/share/classes/sun/security/x509/AVA.java.i
+data/src/share/demo/jfc/Metalworks/resources/HelpFiles/javalogo.gif.i
 data/test/javax/management/MBeanServer/PostRegisterDeadlockTest.java.i
-data/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java.i
-data/src/share/classes/sun/java2d/pipe/ValidatePipe.java.i
+data/src/share/classes/com/sun/tools/example/debug/bdi/VMNotInterruptedException.java.i
+data/src/share/classes/sun/text/CodePointIterator.java.i
 data/test/javax/management/remote/mandatory/notif/NotificationBufferDeadlockTest.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmMemManagerEntryMBean.java.i
 data/src/share/classes/sun/security/ssl/KerberosClientKeyExchange.java.i
 data/src/share/classes/sun/security/ssl/RandomCookie.java.i
-data/src/share/classes/javax/sound/sampled/AudioInputStream.java.i
-data/src/share/native/com/sun/media/sound/DirectAudioDevice.c.i
+data/test/javax/rmi/ssl/SSLSocketParametersTest.sh.i
+data/src/solaris/native/sun/awt/awt_Button.c.i
 data/test/java/io/Serializable/unnamedPackageSwitch/run.sh.i
 data/test/sun/security/provider/certpath/ReverseBuilder/BuildPath.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-amd64/libplds4.so.i
+data/test/sun/security/provider/SeedGenerator/SeedGeneratorChoice.java.i
 data/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java.i
 data/test/sun/nio/cs/TestMiscEUC_JP.java.i
-data/src/share/classes/com/sun/tools/hat/internal/model/ReferenceChain.java.i
-data/test/sun/security/tools/jarsigner/LargeJarEntry.java.i
+data/src/share/native/sun/font/layout/ContextualSubstSubtables.h.i
 data/src/share/native/sun/java2d/opengl/OGLSurfaceData.h.i
-data/src/share/classes/javax/management/event/EventForwarder.java.i
+data/src/share/classes/java/awt/image/BandCombineOp.java.i
 data/test/sun/nio/cs/Test6275027.java.i
-data/test/javax/xml/crypto/dsig/data/signature-x509-crt-crl.xml.i
 data/src/share/classes/sun/tools/jconsole/HTMLPane.java.i
-data/make/mkdemo/applets/SpreadSheet/Makefile.i
+data/src/share/classes/sun/util/calendar/CalendarDate.java.i
+data/make/com/sun/security/auth/module/FILES_export_windows.gmk.i
 data/test/java/net/DatagramSocket/DatagramTimeout.java.i
 data/test/sun/security/pkcs12/PKCS12SameKeyId.java.i
 data/src/share/demo/jvmti/compiledMethodLoad/README.txt.i
-data/src/share/classes/sun/security/util/Password.java.i
+data/src/share/classes/sun/security/x509/IPAddressName.java.i
 data/test/java/beans/XMLEncoder/java_awt_RadialGradientPaint.java.i
 data/src/share/classes/com/sun/jdi/IncompatibleThreadStateException.java.i
 data/src/share/classes/javax/naming/directory/InvalidSearchFilterException.java.i
-data/src/solaris/native/sun/awt/awt_xembed_server.c.i
-data/src/share/classes/com/sun/nio/sctp/SctpMultiChannel.java.i
-data/src/share/native/sun/java2d/loops/IntRgb.c.i
-data/src/share/classes/com/sun/net/httpserver/Filter.java.i
+data/test/sun/tools/jps/jps-Vvml_Output1.awk.i
+data/src/share/classes/javax/management/openmbean/OpenMBeanOperationInfo.java.i
+data/make/tools/src/build/tools/compileproperties/CompileProperties.java.i
+data/src/share/classes/javax/swing/plaf/multi/MultiProgressBarUI.java.i
 data/test/java/rmi/dgc/dgcAckFailure/DGCAckFailure.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_de_GR.properties.i
-data/test/com/sun/jdi/ControlFlow.java.i
+data/src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java.i
 data/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c.i
-data/test/sun/nio/cs/NIOJISAutoDetectTest.java.i
+data/test/sun/security/pkcs11/Secmod/nss.cfg.i
 data/test/java/awt/font/NumericShaper/MTTest.java.i
 data/test/java/util/LinkedHashMap/Cache.java.i
-data/src/share/classes/sun/util/resources/LocaleNames_ca.properties.i
+data/test/java/net/URL/TestRFC2732.java.i
 data/src/windows/classes/sun/awt/windows/awtLocalization_zh_CN.properties.i
 data/src/share/native/com/sun/media/sound/MidiOutDeviceProvider.c.i
 data/src/share/classes/javax/swing/plaf/LayerUI.java.i
-data/src/share/classes/javax/swing/AbstractSpinnerModel.java.i
-data/src/share/classes/sun/awt/image/ImageWatched.java.i
+data/src/solaris/classes/sun/awt/X11/XRootWindow.java.i
+data/src/share/classes/java/security/spec/MGF1ParameterSpec.java.i
 data/test/com/sun/jdi/FinalizerTest.java.i
 data/src/share/classes/sun/rmi/rmic/newrmic/jrmp/JrmpGenerator.java.i
-data/src/share/classes/java/nio/file/LinkPermission.java.i
+data/src/share/classes/com/sun/media/sound/SimpleSoundbank.java.i
 data/test/com/sun/security/sasl/PropertiesFileCallbackHandler.java.i
-data/test/javax/print/applet/applet0/Applet0.java.i
+data/src/share/classes/com/sun/jdi/connect/spi/TransportService.java.i
+data/test/javax/sound/midi/File/SMPTESequence.java.i
 data/src/share/classes/sun/security/x509/X509CRLEntryImpl.java.i
 data/test/java/lang/module/module-info-annotation.sh.i
 data/src/windows/native/sun/java2d/windows/Win32SurfaceData.h.i
-data/src/share/classes/sun/tools/asm/LocalVariableTable.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14NWithComments.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_tr_TR.properties.i
+data/src/share/classes/sun/net/www/content/text/plain.java.i
 data/test/java/nio/Buffer/BasicChar.java.i
-data/make/sun/rmi/rmi/mapfile-vers.i
-data/test/sun/security/ssl/javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java.i
+data/src/share/classes/javax/swing/text/MaskFormatter.java.i
+data/make/tools/CharsetMapping/IBM863.map.i
+data/src/share/classes/sun/management/snmp/AdaptorBootstrap.java.i
 data/make/tools/classanalyzer/src/com/sun/classanalyzer/AnnotationParser.java.i
-data/src/share/classes/sun/nio/cs/ext/IBM285.java.i
+data/test/java/util/Locale/icuLocales.txt.i
 data/src/share/native/common/jio.c.i
-data/src/share/classes/sun/security/ssl/Record.java.i
-data/src/share/classes/sun/text/resources/FormatData_en_GB.java.i
+data/test/sun/java2d/cmm/ColorConvertOp/GRAY.png.i
+data/src/share/classes/javax/naming/LinkRef.java.i
+data/src/share/native/sun/font/layout/SunLayoutEngine.cpp.i
 data/src/windows/native/sun/jkernel/kernel_sv.rc.i
 data/src/solaris/native/sun/font/X11FontScaler.c.i
-data/src/share/back/eventHandler.h.i
+data/src/share/instrument/EncodingSupport.c.i
 data/test/com/sun/management/OperatingSystemMXBean/GetCommittedVirtualMemorySize.java.i
-data/src/share/classes/java/nio/channels/AsynchronousChannel.java.i
+data/src/share/classes/java/sql/Date.java.i
 data/test/java/nio/file/Files/probeContentType/SimpleFileTypeDetector.java.i
 data/src/share/classes/org/openjdk/jigsaw/cli/Packager.java.i
 data/test/java/util/ResourceBundle/Control/StressTest.java.i
 data/src/share/classes/javax/management/MBeanServerInvocationHandler.java.i
 data/src/windows/native/sun/jkernel/kernel.rc.i
 data/src/share/classes/java/util/ConcurrentModificationException.java.i
-data/src/share/classes/java/lang/reflect/ParameterizedType.java.i
-data/src/share/classes/com/sun/media/sound/ModelStandardIndexedDirector.java.i
+data/src/solaris/native/sun/net/spi/DefaultProxySelector.c.i
+data/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java.i
 data/src/share/classes/java/dyn/FilterOneArgument.java.i
-data/src/solaris/sample/dtrace/hotspot_jni/hotspot_jni_calls_tree.d.i
+data/test/java/awt/PrintJob/MultipleEnd/MultipleEnd.java.i
 data/make/netbeans/common/unix-view.ent.i
 data/src/share/classes/javax/naming/spi/NamingManager.java.i
-data/src/share/classes/sun/security/provider/certpath/CollectionCertStore.java.i
+data/test/javax/management/ObjectName/DelegateNameWildcardNameTest.java.i
 data/test/sun/net/www/protocol/http/B6641309.java.i
-data/src/share/classes/sun/tools/jar/resources/jar.properties.i
-data/make/sun/awt/Depend.sed.i
+data/src/solaris/classes/sun/print/services/javax.print.PrintServiceLookup.i
+data/src/share/classes/sun/nio/cs/ext/IBM1148.java.i
 data/test/sun/security/krb5/auto/NewSalt.java.i
-data/test/java/awt/Window/TranslucentShapedFrameTest/TSFrame.java.i
+data/test/javax/sound/midi/Gervill/ModelByteBuffer/SubbufferLong.java.i
+data/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java.i
 data/test/java/lang/instrument/PremainClass/InheritAgent0100.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/ImplicitOpenClose.java.i
-data/src/share/classes/java/nio/channels/Selector.java.i
-data/src/share/classes/sun/reflect/ByteVectorFactory.java.i
+data/src/windows/native/sun/java2d/windows/ddrawObject.h.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientTimeout.java.i
 data/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java.i
 data/test/java/io/pathNames/GeneralWin32.java.i
-data/src/share/classes/sun/beans/editors/FloatEditor.java.i
+data/src/windows/native/sun/windows/security_warning_bw.ico.i
+data/src/windows/classes/sun/misc/OSEnvironment.java.i
 data/src/share/native/sun/security/ec/ecp_jac.c.i
+data/test/java/lang/instrument/appendToClassLoaderSearch/run_tests.sh.i
 data/src/windows/classes/sun/awt/windows/fontconfig.properties.i
-data/src/share/classes/sun/nio/cs/ext/MacCroatian.java.i
+data/src/share/classes/sun/io/CharToByteUnicodeLittleUnmarked.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiLookAndFeel.java.i
 data/test/javax/swing/JFileChooser/6738668/security.policy.i
-data/src/share/classes/sun/text/normalizer/RangeValueIterator.java.i
-data/test/java/net/URLDecoder/EncodeDecode.java.i
-data/make/tools/reorder/tools/mcount.c.i
+data/src/solaris/classes/sun/java2d/opengl/GLXSurfaceData.java.i
+data/src/share/classes/javax/management/namespace/package-info.java.i
+data/test/java/beans/XMLEncoder/Test5023550.java.i
 data/src/share/classes/javax/swing/text/DefaultHighlighter.java.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/MonitoredHostProvider.java.i
+data/test/javax/crypto/spec/DESKeySpec/CheckWeakKeys.java.i
 data/src/share/classes/java/awt/Canvas.java.i
-data/test/java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java.i
-data/make/tools/src/build/tools/jarsplit/JarSplit.java.i
-data/make/sun/xawt/mapfile-vers.i
-data/test/javax/swing/border/Test7034614.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_ja.properties.i
+data/src/share/native/sun/font/layout/LETypes.h.i
+data/test/java/io/charStreams/StringGenerator.java.i
 data/src/share/classes/javax/security/auth/callback/TextInputCallback.java.i
-data/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java.i
-data/src/linux/doc/man/rmic.1.i
+data/src/share/classes/java/lang/IllegalThreadStateException.java.i
+data/src/share/classes/sun/reflect/MethodAccessor.java.i
 data/src/share/classes/com/sun/jdi/event/MonitorWaitedEvent.java.i
 data/test/java/beans/XMLEncoder/javax_swing_tree_TreePath.java.i
 data/test/java/io/Serializable/evolution/AddedExternField/ReadAddedField.java.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS16S16Func.c.i
 data/src/share/classes/com/sun/security/ntlm/Client.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTextPaneUI.java.i
-data/src/share/classes/javax/print/attribute/ResolutionSyntax.java.i
+data/test/javax/swing/JInternalFrame/6726866/bug6726866.java.i
 data/src/share/classes/java/security/interfaces/package.html.i
 data/src/share/demo/management/JTop/META-INF/services/com.sun.tools.jconsole.JConsolePlugin.i
-data/src/share/classes/sun/swing/PrintColorUIResource.java.i
+data/test/java/lang/reflect/Proxy/ClassRestrictions.java.i
 data/test/java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport2.java.i
 data/test/javax/security/auth/Subject/Synch3.java.i
-data/src/share/classes/java/util/concurrent/atomic/AtomicInteger.java.i
+data/src/share/classes/com/sun/media/sound/RIFFInvalidDataException.java.i
 data/src/share/classes/sun/io/ByteToCharCp857.java.i
-data/test/org/openjdk/jigsaw/InstallFromRepo.java.i
-data/src/share/classes/java/util/Enumeration.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/RemoveMarkReset.java.i
+data/src/share/classes/javax/management/AttributeChangeNotificationFilter.java.i
 data/src/share/classes/com/sun/jndi/ldap/BasicControl.java.i
-data/src/share/native/sun/awt/image/jpeg/jcdctmgr.c.i
-data/src/share/classes/com/sun/beans/finder/AbstractFinder.java.i
+data/test/javax/sound/midi/Gervill/SoftTuning/Load6.java.i
+data/make/README.i
+data/src/share/classes/javax/print/attribute/standard/MultipleDocumentHandling.java.i
 data/src/share/classes/java/io/BufferedWriter.java.i
 data/test/java/security/MessageDigest/ByteBuffers.java.i
-data/src/share/classes/sun/security/pkcs11/TemplateManager.java.i
-data/test/java/beans/XMLDecoder/spec/TestInt.java.i
+data/src/share/native/sun/java2d/loops/MaskBlit.c.i
+data/test/javax/management/ImplementationVersion/policy.i
 data/src/share/classes/java/awt/im/InputMethodRequests.java.i
 data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/TestUtils.java.i
 data/test/sun/net/www/http/ChunkedOutputStream/checkError.java.i
-data/src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServerBuilder.java.i
-data/src/share/native/java/lang/Runtime.c.i
-data/src/share/classes/sun/nio/ch/FileLockImpl.java.i
-data/test/tools/launcher/ChangeDataModel.sh.i
+data/src/share/classes/sun/font/TextLineComponent.java.i
+data/src/share/classes/com/sun/tools/hat/internal/oql/ObjectVisitor.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_es_DO.properties.i
+data/test/java/text/Format/DateFormat/Bug4396385.java.i
+data/test/java/security/cert/CertificateFactory/invalidEncodedCerts/invalidcert.pem.i
+data/src/share/classes/com/sun/jmx/snmp/internal/SnmpIncomingResponse.java.i
+data/src/share/classes/java/awt/image/ConvolveOp.java.i
 data/src/share/classes/sun/security/pkcs/PKCS8Key.java.i
 data/test/javax/imageio/plugins/jpeg/ConcurrentReadingTest.java.i
 data/test/java/rmi/server/UnicastRemoteObject/exportObject/GcDuringExport.java.i
-data/test/java/security/SecureClassLoader/DefineClassByteBuffer.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/XPathContainer.java.i
 data/test/sun/tools/jhat/ParseTest.sh.i
-data/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ComTrustManagerFactoryImpl.java.i
 data/src/share/demo/nbproject/jfc/SampleTree/nbproject/file-targets.xml.i
 data/test/sun/security/x509/AVA/Allow.policy.i
-data/src/share/classes/com/sun/jdi/ClassLoaderReference.java.i
+data/src/share/classes/javax/swing/plaf/metal/MetalButtonUI.java.i
 data/test/tools/jar/index/MetaInf.java.i
 data/src/share/classes/java/security/cert/CertStoreException.java.i
-data/test/java/rmi/activation/Activatable/checkImplClassLoader/CheckImplClassLoader.java.i
-data/src/share/classes/java/beans/PropertyChangeSupport.java.i
-data/make/java/jli/mapfile-vers.i
+data/src/share/classes/org/openjdk/internal/joptsimple/internal/Column.java.i
+data/test/com/sun/servicetag/environ.properties.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/report/HTMLSeriesReporter.java.i
 data/test/demo/jvmti/hprof/StackMapTableTest.java.i
-data/src/windows/native/sun/jkernel/kernel.def.i
+data/test/java/io/Serializable/duplicateSerialFields/Setup.java.i
 data/test/java/nio/channels/FileChannel/ScatteringRead.java.i
 data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ko.properties.i
 data/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java.i
+data/src/share/classes/com/sun/jmx/remote/internal/ClientCommunicatorAdmin.java.i
 data/test/sun/nio/cs/SurrogateTestEUCTW.plane6.surrogates.i
-data/test/java/lang/ClassLoader/deadlock/SupAlice.java.i
+data/test/java/util/Timer/Args.java.i
 data/src/share/classes/sun/io/ByteToCharISO8859_9.java.i
-data/src/share/classes/sun/text/resources/FormatData_sq.java.i
+data/test/java/rmi/server/RMIClassLoader/spi/TestProvider.java.i
 data/test/sun/util/resources/TimeZone/Bug6271396.java.i
 data/test/com/sun/crypto/provider/Cipher/DES/DesAPITest.java.i
 data/test/sun/security/pkcs11/fips/certs/anchor.cer.i
-data/src/share/classes/java/util/prefs/package.html.i
-data/src/share/classes/sun/security/tools/JarSignerResources_ja.java.i
-data/test/javax/swing/JFileChooser/6868611/bug6868611.java.i
-data/test/java/io/File/Create.java.i
+data/test/javax/imageio/CachePremissionsTest/CachePermissionsTest.java.i
+data/test/java/security/UnresolvedPermission/AccessorMethods.signer1.i
+data/test/sun/tools/native2ascii/A2N_4630463.i
+data/test/com/sun/tools/attach/java.policy.allow.i
+data/src/share/native/common/jlong.h.i
 data/src/share/native/sun/awt/image/cvutils/img_orddither.h.i
 data/test/sun/security/krb5/auto/MoreKvno.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_de_AT.properties.i
-data/src/share/classes/com/sun/jmx/defaults/package.html.i
-data/test/java/lang/Class/forName/classes/comma.class.i
-data/src/share/demo/nbproject/jfc/SwingApplet/build.xml.i
+data/src/solaris/classes/sun/nio/ch/SctpResultContainer.java.i
+data/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp.c.i
+data/test/java/util/Formatter/BasicShort.java.i
+data/test/java/rmi/registry/interfaceHash/InterfaceHash.java.i
 data/test/java/util/Formatter/BasicCharObject.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadKSProvider.java.i
-data/src/share/classes/java/lang/OutOfMemoryError.java.i
-data/src/windows/hpi/src/monitor_md.c.i
+data/src/share/demo/jvmti/hprof/hprof_tag.h.i
+data/src/windows/native/sun/windows/awt_PrintDialog.cpp.i
 data/src/share/classes/sun/util/resources/CalendarData_is.properties.i
 data/test/java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html.i
-data/src/share/classes/java/math/package-info.java.i
-data/src/share/classes/com/sun/crypto/provider/DESParameters.java.i
-data/test/com/sun/tools/extcheck/TestExtcheckArgs.java.i
+data/src/solaris/classes/sun/awt/motif/MScrollPanePeer.java.i
+data/test/java/lang/instrument/bootreporter/StringIdCallbackReporter.java.i
+data/test/java/nio/file/Files/walkFileTree/MaxDepth.java.i
 data/test/java/lang/Class/getMethods/StarInheritance.java.i
-data/make/tools/CharsetMapping/KOI8_R.map.i
-data/test/sun/tools/jrunscript/jrunscriptTest.sh.i
-data/test/java/io/charStreams/LineLengthsSource.java.i
+data/test/java/awt/Color/OpacityChange/OpacityChange.java.i
+data/src/share/classes/sun/font/FileFont.java.i
+data/test/sun/management/jmxremote/bootstrap/Utils.java.i
 data/src/share/classes/com/sun/accessibility/internal/resources/accessibility_en.properties.i
-data/test/sun/net/www/protocol/jar/B5105410.sh.i
 data/src/solaris/native/sun/awt/awt_Selection.c.i
-data/make/tools/src/build/tools/jdwpgen/ArrayObjectTypeNode.java.i
+data/test/java/rmi/activation/CommandEnvironment/NullOptions.java.i
 data/src/share/classes/java/awt/EventFilter.java.i
-data/test/com/sun/jdi/RedefineImplementor.sh.i
-data/src/share/classes/java/lang/annotation/IncompleteAnnotationException.java.i
+data/src/share/classes/sun/security/ssl/Alerts.java.i
+data/src/share/classes/sun/io/ByteToCharCp424.java.i
 data/test/java/nio/charset/coders/Surrogate.java.i
 data/src/share/classes/com/sun/imageio/plugins/png/PNGImageReaderSpi.java.i
 data/src/share/classes/sun/awt/resources/awt_es.properties.i
 data/test/javax/crypto/SecretKeyFactory/Provider1.java.i
-data/test/com/sun/org/apache/xml/internal/security/signature-enveloping-hmac-sha1-trunclen-8-attack.xml.i
+data/src/share/back/StringReferenceImpl.c.i
 data/src/share/native/sun/awt/image/cvutils/img_scaleloop.h.i
-data/test/java/nio/channels/Selector/ByteServer.java.i
-data/src/share/classes/java/util/TimerTask.java.i
+data/test/javax/sound/midi/Gervill/RiffReaderWriter/HasNextChunk.java.i
 data/test/sun/security/krb5/tools/KtabCheck.java.i
 data/src/share/classes/sun/rmi/server/UnicastServerRef2.java.i
-data/test/java/io/Serializable/replaceStringArray/ReplaceStringArray.java.i
+data/test/java/util/PluggableLocale/providersrc/DateFormatProviderImpl.java.i
+data/src/share/classes/sun/security/provider/SHA.java.i
 data/make/sun/awt/FILES_c_unix.gmk.i
-data/src/windows/classes/java/net/DualStackPlainDatagramSocketImpl.java.i
-data/test/java/io/Serializable/oldTests/WritePrimitive.java.i
-data/test/java/rmi/reliability/benchmark/bench/HtmlReporter.java.i
-data/test/java/util/ResourceBundle/Test4314141B_fr.properties.i
+data/src/share/classes/com/sun/jmx/mbeanserver/SunJmxMBeanServer.java.i
+data/test/java/util/ResourceBundle/Bug4168625Resource3_en_IE.java.i
 data/src/share/classes/sun/net/smtp/SmtpClient.java.i
-data/src/share/native/sun/security/ec/impl/ecl_mult.c.i
 data/test/javax/xml/crypto/dsig/keyinfo/KeyInfo/Marshal.java.i
 data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMNetMaskV6.java.i
-data/src/share/classes/sun/reflect/generics/repository/MethodRepository.java.i
-data/src/share/classes/sun/management/VMManagement.java.i
+data/test/java/net/URLEncoder/URLEncodeDecode.java.i
+data/src/share/classes/sun/security/provider/certpath/ForwardState.java.i
 data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMib.java.i
 data/src/share/classes/javax/swing/event/InternalFrameEvent.java.i
-data/src/share/classes/sun/management/snmp/jvminstr/JvmRuntimeImpl.java.i
-data/src/share/native/sun/font/layout/SegmentSingleProcessor.cpp.i
+data/test/java/nio/channels/Selector/KeysReady.java.i
+data/test/com/sun/crypto/provider/TLS/TestMasterSecret.java.i
 data/test/java/io/StringWriter/NegativeBufferSize.java.i
 data/test/javax/sound/midi/Gervill/SoftTuning/GetTuning.java.i
 data/src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java.i
-data/src/share/classes/javax/sql/rowset/Joinable.java.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/MonitorVersionException.java.i
-data/test/com/sun/security/sasl/gsskerb/AuthOnly.java.i
+data/src/share/classes/sun/text/normalizer/UnicodeMatcher.java.i
+data/src/share/sample/nio/server/BP.java.i
+data/test/com/sun/security/sasl/gsskerb/AuthOnly.java.i
 data/test/java/io/Serializable/InvalidClassException/noargctor/DefaultPackage.java.i
-data/src/share/classes/java/awt/GridLayout.java.i
-data/src/share/classes/sun/java2d/FontSupport.java.i
-data/src/share/instrument/InstrumentationImplNativeMethods.c.i
+data/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubBulkRequestHandler.java.i
+data/src/share/classes/sun/text/bidi/BidiRun.java.i
+data/test/java/util/ResourceBundle/Bug6204853_Utf8.properties.i
 data/test/javax/management/namespace/QueryNamesTest.java.i
-data/test/java/io/FileInputStream/FinalizeShdCallClose.java.i
 data/src/share/classes/sun/net/idn/UCharacterEnums.java.i
-data/src/share/classes/sun/tools/tree/ByteExpression.java.i
-data/src/share/classes/sun/tools/tree/ShortExpression.java.i
+data/src/solaris/native/sun/awt/fontpath.c.i
+data/test/sun/rmi/rmic/newrmic/equivalence/OrangeImpl.java.i
 data/test/java/beans/XMLEncoder/6380849/TestPersistenceDelegate.java.i
 data/test/java/lang/instrument/bootreporter/StringIdCallback.java.i
-data/src/share/classes/sun/util/calendar/CalendarUtils.java.i
+data/test/java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java.i
 data/src/share/native/sun/font/layout/GlyphSubstLookupProc.h.i
-data/src/windows/classes/sun/security/smartcardio/PlatformPCSC.java.i
-data/src/share/classes/sun/tools/tree/BitNotExpression.java.i
+data/src/share/classes/sun/java2d/pipe/BufferedOpCodes.java.i
+data/test/java/security/BasicPermission/PermClass.1.4.i
 data/test/java/beans/PropertyChangeSupport/Test4682386.java.i
-data/src/solaris/native/sun/awt/awt_Plugin.h.i
-data/src/share/classes/sun/security/x509/CertificatePolicyMap.java.i
+data/test/sun/nio/cs/NIOJISAutoDetectTest.java.i
 data/test/com/sun/security/sasl/ntlm/NTLMTest.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/icons/TreeLeaf.gif.i
+data/test/sun/management/jmxremote/bootstrap/rmiregistryssl.properties.i
 data/test/sun/security/provider/PolicyParser/ExtDirs.java.i
 data/test/java/rmi/server/RMIClassLoader/useCodebaseOnly/security.policy.i
-data/src/share/classes/sun/net/httpserver/HttpsServerImpl.java.i
-data/src/share/classes/javax/naming/ldap/ManageReferralControl.java.i
+data/src/share/classes/sun/security/pkcs11/wrapper/CK_RSA_PKCS_OAEP_PARAMS.java.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/IntArrayCalls.java.i
 data/test/sun/security/action/GetLongAction/ReturnNullIfNoDefault.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_fr_BE.properties.i
 data/test/javax/management/loading/GetMBeansFromURLTest.java.i
-data/make/tools/swing-beans/beaninfo/images/JProgressBarColor16.gif.i
+data/make/com/sun/jndi/cosnaming/Makefile.i
+data/test/java/nio/channels/SocketChannel/CloseTimeoutChannel.java.i
 data/src/share/demo/jfc/TableExample/OldJTable.java.i
 data/src/share/classes/sun/io/CharToByteCp1251.java.i
 data/src/share/classes/com/sun/naming/internal/VersionHelper.java.i
-data/src/share/classes/java/awt/doc-files/Checkbox-1.gif.i
+data/make/netbeans/common/closed-share-view.ent.i
 data/test/com/sun/nio/sctp/SctpMultiChannel/Branch.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/ClientThread.java.i
 data/test/com/sun/jdi/RedefineCrossStart.java.i
-data/test/com/sun/net/httpserver/Test8a.java.i
+data/test/javax/swing/JFileChooser/6396844/TwentyThousandTest.java.i
 data/src/share/classes/org/ietf/jgss/package.html.i
 data/test/java/beans/PropertyEditor/6380849/ThirdBean.java.i
 data/src/share/classes/java/beans/PropertyDescriptor.java.i
-data/src/share/demo/jfc/Metalworks/UISwitchListener.java.i
-data/test/javax/management/remote/mandatory/connection/RMIConnectionIdTest.java.i
+data/src/share/classes/java/sql/Driver.java.i
+data/test/java/io/LineNumberReader/ReadReadLine.java.i
+data/src/solaris/classes/sun/nio/ch/DevPollSelectorImpl.java.i
 data/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp.i
 data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipInfo.java.i
 data/src/share/sample/nio/server/Sendable.java.i
 data/src/solaris/classes/sun/nio/ch/SinkChannelImpl.java.i
+data/src/share/classes/com/sun/java/util/jar/pack/PropMap.java.i
 data/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c.i
-data/src/share/native/sun/java2d/loops/DrawRect.c.i
-data/src/solaris/native/java/io/io_util_md.h.i
-data/src/solaris/native/sun/awt/CUPSfuncs.c.i
-data/test/javax/sound/midi/Gervill/ModelStandardTransform/SetPolarity.java.i
+data/test/java/math/BigDecimal/StrippingZerosTest.java.i
+data/test/java/nio/Buffer/BasicShort.java.i
+data/src/share/classes/sun/security/krb5/JavaxSecurityAuthKerberosAccess.java.i
 data/src/share/classes/javax/swing/JMenuBar.java.i
-data/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java.i
+data/src/solaris/classes/sun/awt/X11/XDesktopPeer.java.i
 data/make/sun/javazic/tzdata_jdk/gmt.i
-data/src/share/classes/java/awt/Container.java.i
-data/test/javax/management/context/localizable/WhatsitMBean.java.i
+data/src/share/native/java/lang/fdlibm/src/s_erf.c.i
+data/src/share/classes/sun/io/ByteToCharUnicodeBig.java.i
 data/test/sample/mergesort/MergeSortTest.java.i
-data/src/share/native/sun/font/bidi/ubidi.h.i
-data/test/sun/security/ssl/sanity/interop/CipherTest.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/icons/image-failed.png.i
+data/test/com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java.i
+data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_de.properties.i
+data/src/windows/classes/sun/awt/windows/WMenuBarPeer.java.i
 data/src/share/classes/sun/security/pkcs/PKCS9Attribute.java.i
 data/test/tools/launcher/DefaultLocaleTest.java.i
 data/test/com/sun/jndi/cosnaming/IiopUrlIPv6.java.i
 data/test/java/net/URL/ParseURL.java.i
-data/make/sun/jawt/Depend.mak.i
-data/src/share/classes/java/awt/print/Paper.java.i
-data/src/share/classes/sun/tools/tree/BreakStatement.java.i
+data/src/share/classes/sun/util/resources/CalendarData_el.properties.i
+data/test/java/awt/regtesthelpers/process/ProcessResults.java.i
+data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparc/libLauncher.so.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLabelUI.java.i
-data/src/share/demo/jvmti/hprof/hprof_table.h.i
-data/src/share/classes/sun/rmi/server/Activation.java.i
+data/src/share/native/sun/java2d/opengl/OGLFuncs.h.i
+data/test/java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java.i
 data/src/solaris/classes/sun/nio/fs/UnixUriUtils.java.i
 data/src/share/classes/java/beans/DefaultPersistenceDelegate.java.i
-data/src/share/classes/javax/xml/crypto/dsig/dom/DOMSignContext.java.i
+data/test/org/openjdk/jigsaw/_Library.java.i
 data/test/org/openjdk/jigsaw/remrepo.sh.i
 data/src/windows/classes/sun/awt/windows/WTextFieldPeer.java.i
 data/make/tools/swing-beans/beaninfo/images/JMenuBarMono16.gif.i
-data/src/share/classes/java/security/PolicySpi.java.i
+data/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpecList.java.i
 data/src/share/classes/sun/text/resources/FormatData_es_CR.java.i
-data/src/solaris/doc/sun/man/man1/extcheck.1.i
-data/src/share/native/java/lang/fdlibm/src/s_matherr.c.i
-data/src/windows/native/common/jlong_md.h.i
-data/src/share/classes/javax/naming/NameClassPair.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_en_GB.properties.i
+data/src/share/classes/com/sun/jdi/ClassLoaderReference.java.i
+data/test/com/sun/jdi/SuspendThreadTest.java.i
+data/test/java/rmi/activation/Activatable/elucidateNoSuchMethod/group.security.policy.i
+data/test/java/util/concurrent/CopyOnWriteArraySet/RacingCows.java.i
+data/test/demo/jvmti/hprof/HeapBinaryFormatTest.java.i
+data/test/javax/smartcardio/Serialize.java.i
 data/test/javax/management/namespace/SerialParamProcessorTest.java.i
-data/src/share/native/sun/java2d/opengl/OGLPaints.c.i
-data/src/share/classes/sun/security/validator/Validator.java.i
-data/test/javax/management/remote/mandatory/connectorServer/CloseConnectionTest.java.i
+data/make/tools/CharsetMapping/IBM1026.c2b.i
+data/src/share/classes/javax/naming/ldap/HasControls.java.i
+data/src/share/classes/com/sun/tools/attach/AgentInitializationException.java.i
 data/src/share/classes/java/util/concurrent/ExecutorCompletionService.java.i
 data/test/sun/net/www/http/HttpClient/OpenServer.java.i
 data/src/share/native/java/lang/fdlibm/src/w_atan2.c.i
-data/test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/HelloImpl_Stub.java.i
+data/test/javax/naming/ldap/LdapName/RdnMisc.java.i
 data/src/share/classes/com/sun/media/sound/AbstractMidiDeviceProvider.java.i
-data/src/share/classes/javax/swing/text/html/HTMLFrameHyperlinkEvent.java.i
-data/src/share/classes/javax/swing/text/NavigationFilter.java.i
+data/test/javax/print/attribute/GetCopiesSupported.java.i
+data/src/share/classes/javax/swing/plaf/basic/BasicOptionPaneUI.java.i
 data/test/sun/java2d/cmm/ColorConvertOp/ImageComparator.java.i
-data/src/share/classes/sun/instrument/InstrumentationImpl.java.i
+data/test/java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.java.i
 data/src/share/javavm/include/typedefs.h.i
-data/src/share/classes/com/sun/beans/WeakCache.java.i
-data/src/windows/native/sun/windows/awt_DrawingSurface.cpp.i
+data/src/share/classes/sun/rmi/server/WeakClassHashMap.java.i
+data/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java.i
 data/make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java.i
-data/test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOn_AllChannels.java.i
+data/test/sun/rmi/rmic/newrmic/equivalence/CountServerImpl.java.i
 data/test/java/lang/reflect/Proxy/nonJavaNames/Test.java.i
-data/src/share/classes/java/awt/DisplayMode.java.i
-data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemManagerState.java.i
+data/src/share/classes/sun/util/calendar/ZoneInfoFile.java.i
+data/test/javax/script/CommonSetup.sh.i
 data/src/share/classes/javax/swing/event/DocumentEvent.java.i
-data/test/sun/net/www/http/ChunkedOutputStream/Test.java.i
-data/src/share/classes/sun/security/krb5/internal/MethodData.java.i
-data/make/tools/CharsetMapping/IBM939.c2b.i
-data/src/share/classes/sun/security/krb5/internal/rcache/CacheTable.java.i
-data/src/share/classes/com/sun/security/sasl/CramMD5Server.java.i
-data/test/java/awt/Mixing/MixingInHwPanel.java.i
+data/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java.i
+data/src/share/native/java/lang/fdlibm/src/e_gamma_r.c.i
+data/test/java/net/URLConnection/xml/xml3.i
+data/src/share/classes/javax/security/auth/login/AccountNotFoundException.java.i
+data/src/share/classes/com/sun/jdi/InvalidStackFrameException.java.i
+data/test/java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak.java.i
 data/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/JarFileSystemProvider.java.i
+data/src/share/classes/sun/io/CharToByteEUC_CN.java.i
 data/src/share/classes/sun/dyn/JavaMethodHandle.java.i
-data/src/share/classes/sun/security/acl/AllPermissionsImpl.java.i
+data/test/javax/management/modelmbean/SimpleModelMBean/logging.properties.i
 data/test/sun/tools/common/CommonTests.sh.i
-data/make/tools/src/build/tools/fontchecker/README.txt.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapNum.java.i
+data/test/java/rmi/activation/Activatable/restartLatecomer/rmid.security.policy.i
+data/test/java/beans/XMLEncoder/6329581/Test6329581.java.i
 data/src/share/classes/sun/tools/javac/BatchParser.java.i
-data/src/share/classes/java/net/URL.java.i
-data/src/share/classes/sun/tools/tree/ForStatement.java.i
-data/test/sun/security/provider/certpath/DisabledAlgorithms/CPValidatorIntermediate.java.i
-data/src/share/instrument/JPLISAgent.c.i
-data/test/java/nio/channels/Selector/SelectNowWhenEmpty.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-amd64/libnssckbi.so.i
+data/make/tools/swing-beans/beaninfo/images/JCheckBoxMenuItemMono32.gif.i
+data/test/java/util/ResourceBundle/Test4314141.java.i
+data/src/share/native/sun/security/ec/impl/ec.c.i
 data/src/share/native/sun/java2d/loops/IntArgbBm.h.i
 data/src/share/native/sun/java2d/cmm/lcms/cmserr.c.i
-data/src/share/classes/sun/nio/cs/ext/IBM1383.java.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/DoubleCalls.java.i
 data/make/sun/javazic/tzdata/asia.i
-data/src/share/classes/sun/security/internal/spec/TlsRsaPremasterSecretParameterSpec.java.i
-data/src/share/classes/sun/tools/jconsole/OverviewTab.java.i
+data/test/java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java.i
+data/test/java/awt/regtesthelpers/AbstractTest.java.i
 data/test/com/sun/jdi/connect/spi/META-INF/services/com.sun.jdi.connect.spi.TransportService.i
-data/test/java/text/Bidi/BidiConformance.java.i
+data/make/netbeans/common/closed-share-sources.ent.i
 data/make/com/sun/inputmethods/Makefile.i
-data/src/share/classes/java/awt/print/PrinterJob.java.i
+data/src/share/classes/java/security/Guard.java.i
 data/test/java/rmi/server/RMIClassLoader/spi/TestProvider2.java.i
-data/src/share/classes/sun/awt/im/SimpleInputMethodWindow.java.i
-data/src/share/classes/sun/tools/java/AmbiguousClass.java.i
+data/src/share/native/sun/nio/ch/genSocketOptionRegistry.c.i
+data/src/share/classes/java/awt/Component.java.i
+data/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java.i
 data/src/share/classes/java/dyn/JavaMethodHandle.java.i
 data/make/tools/swing-beans/beaninfo/images/JSpinnerColor32.gif.i
-data/src/share/native/sun/security/ec/impl/secitem.c.i
-data/src/share/classes/sun/text/resources/FormatData_en_IN.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/ReadByte.java.i
+data/test/org/openjdk/jigsaw/tester.sh.i
+data/src/share/classes/javax/swing/plaf/metal/MetalTextFieldUI.java.i
+data/src/share/classes/sun/management/jmxremote/SingleEntryRegistry.java.i
 data/src/share/native/sun/font/layout/IndicReordering.cpp.i
+data/src/solaris/classes/java/lang/UNIXProcess.java.solaris.i
 data/src/share/demo/nbproject/management/FullThreadDump/nbproject/file-targets.xml.i
 data/src/solaris/classes/sun/awt/motif/MComponentPeer.java.i
 data/test/java/io/PipedOutputStream/DeadReader.java.i
-data/src/share/native/common/jni_util.h.i
-data/test/com/sun/security/auth/callback/TextCallbackHandler/Default.java.i
-data/src/share/classes/java/lang/module/ModuleInfoAnnotation.java.i
-data/src/share/classes/sun/util/resources/CurrencyNames_es_SV.properties.i
+data/src/solaris/native/common/jlong_md.h.i
+data/test/java/security/UnresolvedPermission/Equals.policy.i
+data/src/share/classes/sun/security/util/DerValue.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/crisubn.jks.i
 data/src/share/classes/javax/swing/table/TableColumn.java.i
-data/src/share/classes/com/sun/management/UnixOperatingSystemMXBean.java.i
+data/test/sun/tools/jconsole/ImmutableResourceTest.sh.i
 data/src/share/classes/sun/util/resources/CurrencyNames_ja_JP.properties.i
 data/test/javax/security/auth/login/Configuration/GetInstanceSecurity.policy.i
-data/src/share/classes/java/awt/event/FocusEvent.java.i
+data/make/tools/src/build/tools/jdwpgen/CommandNode.java.i
 data/src/share/classes/sun/launcher/resources/launcher_pt_BR.properties.i
 data/test/java/io/Externalizable/compatibility/ExternalizableBlockData.java.i
-data/src/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template.i
+data/src/share/classes/sun/net/www/protocol/http/Negotiator.java.i
 data/make/sun/security/smartcardio/FILES_c.gmk.i
 data/src/share/hpi/export/dll.h.i
 data/test/java/util/Hashtable/EqualsCast.java.i
@@ -19797,726 +19803,792 @@ data/test/java/lang/Math/MinMax.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsSliderUI.java.i
 data/test/javax/sound/midi/Gervill/EmergencySoundbank/TestCreateSoundbank.java.i
 data/test/java/io/Serializable/resolveClassException/ResolveClassException.java.i
-data/src/share/classes/sun/tools/javac/BatchEnvironment.java.i
+data/src/windows/native/sun/windows/awt_BitmapUtil.cpp.i
 data/test/sun/security/provider/PolicyFile/TrustedCert.keystore1.i
 data/src/share/classes/javax/swing/doc-files/groupLayout.sequential.horizontal.gif.i
 data/src/share/classes/java/awt/peer/MenuPeer.java.i
-data/test/javax/management/mxbean/PreRegisterNameTest.java.i
-data/src/share/demo/nbproject/management/MemoryMonitor/build.xml.i
-data/test/sun/misc/EscapePath.java.i
+data/make/com/sun/servicetag/Makefile.i
+data/src/share/classes/com/sun/tools/hat/internal/server/FinalizerSummaryQuery.java.i
+data/make/tools/CharsetMapping/IBM875.map.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolverSpi.java.i
-data/src/share/classes/javax/swing/plaf/metal/icons/ocean/expanded.gif.i
+data/test/java/io/DataInputStream/ReadFully.java.i
 data/test/java/io/FileOutputStream/FinalizeShdCallClose.java.i
 data/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_es.properties.i
-data/src/share/demo/nbproject/management/JTop/nbproject/project.xml.i
-data/src/solaris/native/sun/java2d/loops/vis_ByteIndexed.c.i
-data/src/share/classes/javax/swing/KeyboardManager.java.i
-data/test/java/net/URLConnection/GetXmlContentType.java.i
-data/test/java/util/ResourceBundle/Bug6355009.java.i
+data/test/java/nio/channels/FileChannel/AtomicAppend.java.i
+data/src/windows/classes/sun/net/NetHooks.java.i
+data/src/share/classes/java/awt/package.html.i
+data/test/javax/security/auth/login/LoginContext/ResetConfigModule.java.i
+data/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java.i
+data/test/java/io/BufferedReader/ReadLineSync.java.i
 data/src/windows/native/sun/windows/GDIHashtable.h.i
+data/src/share/classes/javax/print/attribute/standard/PagesPerMinuteColor.java.i
 data/test/java/security/BasicPermission/SerialVersion.1.3.1.i
-data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/package.html.i
+data/src/share/native/java/lang/ClassLoader.c.i
+data/src/solaris/lib/sdp/sdp.conf.template.i
 data/test/java/util/ResourceBundle/TestBug4179766.java.i
 data/src/solaris/native/sun/awt/awt_PopupMenu.c.i
+data/test/java/rmi/server/getRemoteClass/GetRemoteClass.java.i
+data/test/sun/nio/cs/SJISCanEncode.java.i
 data/src/share/classes/javax/swing/SpinnerDateModel.java.i
 data/src/share/classes/com/sun/tools/jdi/ReferenceTypeImpl.java.i
-data/src/share/classes/java/util/ArrayDeque.java.i
-data/test/java/beans/XMLEncoder/java_util_Collections_EmptyList.java.i
+data/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/Handler.java.i
 data/test/java/util/zip/NoExtensionSignature.java.i
-data/src/share/classes/sun/java2d/pipe/BufferedRenderPipe.java.i
-data/src/share/classes/javax/print/attribute/URISyntax.java.i
+data/src/share/classes/javax/management/monitor/GaugeMonitorMBean.java.i
+data/src/share/classes/javax/swing/ListModel.java.i
+data/src/share/native/java/util/zip/zlib-1.2.3/inftrees.c.i
 data/test/java/util/jar/JarInputStream/TestIndexedJarWithBadSignature.java.i
-data/src/share/demo/jvmti/hprof/hprof_init.h.i
+data/src/share/classes/sun/security/validator/EndEntityChecker.java.i
+data/test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableRandomAccessList.java.i
+data/test/javax/sound/midi/Gervill/ModelStandardTransform/TransformSwitch.java.i
 data/test/java/lang/instrument/RedefineMethodAddInvokeApp.java.i
-data/src/share/classes/java/util/concurrent/atomic/AtomicBoolean.java.i
-data/src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.i
-data/src/share/classes/com/sun/crypto/provider/HmacCore.java.i
+data/test/javax/script/Test4.js.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/CipherReference.java.i
+data/test/org/openjdk/jigsaw/cli/tsca-cert.pem.i
+data/test/com/sun/management/HotSpotDiagnosticMXBean/SetAllVMOptions.java.i
 data/test/java/beans/XMLEncoder/java_util_Collections_SynchronizedSortedMap.java.i
 data/src/share/classes/com/sun/jmx/mbeanserver/MBeanServerDelegateImpl.java.i
 data/make/tools/CharsetMapping/IBM277.nr.i
 data/test/java/lang/instrument/NullTransformerRemoveTest.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsRadioButtonMenuItemUI.java.i
 data/src/share/classes/javax/security/auth/login/CredentialExpiredException.java.i
-data/test/sun/misc/URLClassPath/ClassnameCharTest.java.i
-data/src/windows/classes/sun/awt/windows/WPopupMenuPeer.java.i
-data/src/share/classes/java/io/PipedReader.java.i
+data/test/java/rmi/reliability/scripts/create_benchmark_jars.ksh.i
+data/make/sun/nio/Makefile.i
+data/src/share/classes/javax/swing/plaf/synth/ColorType.java.i
 data/src/windows/classes/sun/awt/windows/fontconfig.Me.properties.i
 data/make/modules/jdk7.depconfig.i
 data/src/windows/classes/com/sun/management/OperatingSystem.java.i
 data/src/windows/instrument/FileSystemSupport_md.h.i
 data/test/sun/security/pkcs11/nss/lib/linux-amd64/libnss3.so.d
-data/test/java/util/concurrent/ConcurrentHashMap/DistinctEntrySetElements.java.i
-data/src/share/classes/com/sun/nio/sctp/PeerAddressChangeNotification.java.i
-data/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp.i
+data/test/java/lang/ClassLoader/resource.jar.i
+data/test/sun/security/pkcs11/nss/lib/linux-amd64/libnss3.so.i
+data/test/javax/management/namespace/JMXNamespaceViewTest.java.i
 data/src/share/classes/javax/management/namespace/JMXRemoteNamespace.java.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpPduTrap.java.i
+data/test/javax/management/MBeanServer/PreRegisterTest.java.i
 data/test/com/sun/net/httpserver/Test.java.i
 data/test/java/util/ResourceBundle/Control/Bug6530694_de_DE.properties.i
-data/src/share/classes/java/security/interfaces/DSAParams.java.i
-data/src/share/classes/sun/io/CharToByteISO8859_5.java.i
+data/test/java/rmi/registry/interfaceHash/ReferenceRegistryStub.java.i
+data/src/share/classes/sun/nio/cs/UTF_16LE.java.i
+data/src/share/classes/javax/swing/plaf/MenuBarUI.java.i
 data/src/share/classes/sun/nio/ch/SocketChannelImpl.java.i
-data/test/java/security/cert/CertificateFactory/openssl/open.i
+data/src/share/classes/sun/text/normalizer/UCharacterPropertyReader.java.i
 data/test/java/security/UnresolvedPermission/AccessorMethods.java.i
 data/src/share/classes/java/nio/file/AtomicMoveNotSupportedException.java.i
-data/test/java/rmi/activation/Activatable/elucidateNoSuchMethod/ActivateMe.java.i
+data/src/share/classes/java/lang/reflect/ParameterizedType.java.i
 data/src/share/classes/javax/security/cert/package.html.i
-data/src/share/classes/javax/crypto/BadPaddingException.java.i
-data/src/share/classes/java/util/logging/Level.java.i
+data/src/share/classes/sun/beans/editors/IntegerEditor.java.i
+data/test/javax/sound/midi/Gervill/SoftReceiver/Send_AllSoundOff.java.i
 data/test/java/awt/EventQueue/SecondaryLoopTest/SecondaryLoopTest.java.i
-data/src/share/classes/java/nio/channels/package-info.java.i
+data/src/share/classes/javax/swing/WindowConstants.java.i
 data/test/javax/management/remote/mandatory/subjectDelegation/policy15.i
 data/src/share/classes/java/util/MissingFormatArgumentException.java.i
 data/test/java/security/KeyPairGenerator/GenerateRSAKeyPair.java.i
+data/src/share/classes/sun/dyn/SpreadGeneric.java.i
 data/src/share/back/debugDispatch.c.i
-data/src/share/classes/sun/security/provider/MD5.java.i
+data/src/solaris/demo/jigsaw/basic/env.sh.i
+data/src/share/classes/java/awt/geom/IllegalPathStateException.java.i
 data/test/java/lang/Byte/Decode.java.i
-data/test/java/io/Serializable/subclass/AbstractObjectOutputStream.java.i
-data/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java.i
-data/test/java/security/ProtectionDomain/RecursionDebug.java.i
-data/make/tools/CharsetMapping/IBM930.nr.i
-data/src/share/classes/javax/sound/sampled/UnsupportedAudioFileException.java.i
+data/make/sun/awt/mawt.gmk.i
+data/src/share/classes/java/nio/charset/StandardCharset.java.i
+data/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java.i
+data/test/org/openjdk/jigsaw/cli/prikey.pem.i
+data/src/share/sample/scripting/scriptpad/src/META-INF/manifest.mf.i
+data/src/windows/classes/sun/awt/windows/WScrollPanePeer.java.i
 data/src/share/classes/sun/tools/tree/AssignBitXorExpression.java.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_ATTRIBUTE.java.i
-data/make/modules/jdk.swing.ls.i
+data/make/tools/fontchecker/Makefile.i
+data/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScanner.java.i
 data/test/javax/imageio/stream/StreamCloserLeak/testapp/Main.java.i
-data/src/share/classes/sun/net/www/http/ChunkedInputStream.java.i
+data/test/java/rmi/server/RMIClassLoader/downloadArrayClass/Receiver.java.i
 data/src/share/classes/java/awt/font/ShapeGraphicAttribute.java.i
 data/test/org/openjdk/jigsaw/install-repo.sh.i
 data/test/javax/sound/midi/Gervill/AudioFloatInputStream/GetFormat.java.i
 data/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java.i
 data/src/share/classes/javax/management/Description.java.i
-data/src/linux/doc/man/appletviewer.1.i
+data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/package.html.i
+data/src/share/demo/java2d/J2DBench/src/j2dbench/Option.java.i
 data/src/share/classes/sun/management/LazyCompositeData.java.i
 data/test/javax/swing/SwingUtilities/6797139/bug6797139.java.i
 data/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/DelegateHttpsURLConnection.java.i
-data/test/java/lang/instrument/IsModifiableClassApp.java.i
-data/test/org/openjdk/jigsaw/resource.sh.i
+data/src/share/classes/sun/reflect/generics/scope/MethodScope.java.i
+data/src/share/classes/sun/security/ssl/SSLSessionImpl.java.i
 data/src/share/classes/sun/jvmstat/monitor/event/VmListener.java.i
-data/src/share/classes/org/openjdk/internal/joptsimple/OptionMissingRequiredArgumentException.java.i
+data/src/share/native/sun/security/ec/impl/ecl-curve.h.i
 data/test/sun/net/www/protocol/http/StackTraceTest.java.i
-data/test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.java.i
+data/test/javax/sound/midi/Gervill/ModelIdentifier/NewModelIdentifierStringInt.java.i
 data/test/java/util/ResourceBundle/Test4314141B.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpParams.java.i
+data/test/java/lang/Short/ByteSwap.java.i
 data/src/solaris/doc/sun/man/man1/apt.1.i
+data/src/share/classes/com/sun/imageio/plugins/common/LZWStringTable.java.i
 data/test/java/io/BufferedWriter/Cleanup.java.i
-data/src/share/classes/sun/rmi/runtime/RuntimeUtil.java.i
+data/src/share/classes/sun/rmi/transport/ConnectionInputStream.java.i
 data/test/java/awt/PrintJob/Text/stringwidth.sh.i
 data/src/share/native/sun/management/ClassLoadingImpl.c.i
-data/make/tools/swing-beans/beaninfo/images/JScrollBarColor32.gif.i
+data/src/share/classes/sun/print/PSPathGraphics.java.i
 data/src/share/classes/sun/util/calendar/TzIDOldMapping.java.i
 data/test/java/lang/instrument/RedefineMethodAddInvokeTarget_2.java.i
-data/test/javax/swing/JScrollPane/Test6526631.java.i
-data/test/sun/security/pkcs11/Provider/Login-nss.txt.i
+data/test/sun/management/HotspotThreadMBean/GetInternalThreads.java.i
+data/test/java/awt/Dialog/ValidateOnShow/ValidateOnShow.java.i
 data/test/java/beans/XMLEncoder/EnumPrivate.java.i
 data/test/javax/security/auth/login/Configuration/GetInstance.java.i
 data/src/share/classes/sun/io/ByteToCharCp1253.java.i
-data/src/share/classes/java/awt/peer/ListPeer.java.i
-data/src/share/native/common/gdefs.h.i
-data/src/share/native/sun/java2d/loops/AnyInt.c.i
+data/src/share/classes/sun/print/PrintJob2D.java.i
+data/test/java/util/ArrayList/EnsureCapacity.java.i
+data/src/share/classes/sun/java2d/pisces/LineSink.java.i
+data/test/sun/net/www/http/HttpClient/StreamingRetry.java.i
 data/test/java/lang/ThreadLocal/ImmutableLocal.java.i
+data/make/java/redist/fonts/Makefile.i
+data/src/share/classes/com/sun/tools/example/debug/bdi/Utils.java.i
 data/src/windows/native/sun/jkernel/graphics/java-icon.ico.i
-data/src/share/classes/sun/awt/AWTAccessor.java.i
-data/src/share/classes/javax/accessibility/AccessibleBundle.java.i
+data/test/java/util/TimSort/README.i
+data/make/sun/Makefile.i
 data/src/share/classes/sun/security/provider/ParameterCache.java.i
 data/src/windows/native/sun/security/smartcardio/pcsc_md.h.i
-data/test/java/security/cert/CertPathBuilder/GetInstance.java.i
-data/make/java/java_crw_demo/Makefile.i
+data/test/javax/sound/midi/Gervill/SoftAudioBuffer/Clear.java.i
+data/src/share/classes/com/sun/jdi/LongType.java.i
 data/src/share/classes/java/security/NoSuchAlgorithmException.java.i
 data/src/share/classes/javax/swing/SpringLayout.java.i
 data/src/windows/classes/sun/awt/windows/WPageDialog.java.i
 data/test/java/net/Socket/DeadlockTest.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTreeUI.java.i
+data/test/javax/script/RhinoExceptionTest.java.i
 data/make/tools/src/build/tools/javazic/Timezone.java.i
 data/src/share/classes/sun/io/CharToByteCp1142.java.i
-data/src/share/classes/com/sun/jndi/ldap/VersionHelper.java.i
+data/src/share/classes/com/sun/jmx/snmp/agent/SnmpIndex.java.i
+data/test/java/rmi/server/useCustomRef/UseCustomRef_Stub.java.i
 data/src/share/classes/sun/security/krb5/internal/Krb5.java.i
-data/test/javax/sound/midi/Gervill/ModelPerformer/SetDefaultConnectionsEnabled.java.i
-data/src/share/classes/javax/naming/ConfigurationException.java.i
-data/src/share/classes/com/sun/tools/example/debug/tty/EventHandler.java.i
+data/src/share/classes/sun/reflect/generics/visitor/Visitor.java.i
+data/make/tools/src/build/tools/generatenimbus/UIStyle.java.i
+data/test/java/lang/management/ManagementFactory/ProxyExceptions.java.i
+data/src/share/classes/javax/swing/plaf/SplitPaneUI.java.i
 data/test/java/beans/Statement/Test6707226.java.i
 data/test/java/lang/Class/forName/classes/plus.class.i
-data/src/solaris/demo/jigsaw/basic/setup.sh.i
-data/test/java/util/PluggableLocale/providersrc/LocaleNames_ja_JP_kyoto.properties.i
+data/test/java/io/File/FileMethods.java.i
+data/test/javax/sound/midi/Gervill/ModelIdentifier/SetObject.java.i
 data/src/share/classes/sun/text/resources/CollationData_zh.java.i
+data/test/java/io/Serializable/enum/classObject/Test.java.i
 data/src/share/classes/javax/sound/midi/VoiceStatus.java.i
-data/test/java/io/Serializable/packageAccess/A.java.i
+data/src/solaris/classes/sun/awt/motif/MButtonPeer.java.i
+data/src/share/classes/java/awt/image/ReplicateScaleFilter.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/package.html.i
 data/test/javax/script/Test2.js.i
-data/test/sun/nio/cs/OLD/X11GB2312_OLD.java.i
+data/src/windows/native/sun/nio/ch/SocketChannelImpl.c.i
+data/make/tools/classanalyzer/src/com/sun/classanalyzer/PackageInfo.java.i
 data/src/windows/native/sun/windows/awt_Font.cpp.i
+data/make/tools/reorder/Makefile.i
 data/src/share/classes/com/sun/java/browser/dom/DOMAction.java.i
 data/src/share/demo/applets/BarChart/example1.html.i
-data/test/java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.java.i
+data/test/java/nio/channels/FileChannel/Pwrite.java.i
+data/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java.i
 data/src/share/classes/com/sun/media/sound/Toolkit.java.i
 data/test/java/lang/management/ThreadMXBean/FindMonitorDeadlock.java.i
-data/src/share/classes/sun/awt/resources/awt_pt_BR.properties.i
-data/src/share/classes/sun/reflect/NativeMethodAccessorImpl.java.i
+data/src/windows/classes/sun/nio/fs/WindowsSecurity.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/resource/schema/xmldsig-core-schema.dtd.i
 data/src/solaris/classes/sun/awt/X11/XMSelection.java.i
 data/src/share/classes/sun/net/www/protocol/http/spnego/NegotiateCallbackHandler.java.i
-data/src/share/classes/java/rmi/server/RMISocketFactory.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifPopupMenuUI.java.i
+data/src/solaris/classes/sun/awt/X11/XSelection.java.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/rsa/BrokenRSAPrivateCrtKey.java.i
 data/test/sun/net/ftp/B6427768.java.i
-data/src/share/demo/jfc/Notepad/README.txt.i
-data/src/share/classes/java/io/FilenameFilter.java.i
+data/src/share/sample/vm/clr-jvm/invoker.cs.i
+data/make/tools/CharsetMapping/ISO_8859_6.map.i
 data/test/sun/security/pkcs11/nss/lib/solaris-i586/libnspr4.so.i
 data/src/share/native/sun/security/ec/impl/ecp_224.c.i
+data/test/java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.java.i
 data/test/java/net/URLClassLoader/ClassPathTest.java.i
 data/test/java/beans/XMLEncoder/java_awt_AWTKeyStroke.java.i
-data/src/share/classes/com/sun/nio/file/SensitivityWatchEventModifier.java.i
+data/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanManagerTest.java.i
 data/make/com/sun/sql/Makefile.i
 data/test/java/lang/Class/getEnclosingClass/EnclosingClass.java.i
-data/src/share/classes/java/lang/management/PlatformComponent.java.i
+data/src/share/classes/sun/swing/text/TextComponentPrintable.java.i
 data/test/java/rmi/transport/dgcDeadLock/security.policy.i
-data/test/java/lang/Double/ParseHexFloatingPoint.java.i
-data/src/windows/native/java/net/Inet6AddressImpl.c.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java.i
+data/test/java/rmi/activation/Activatable/restartCrashedService/ActivateMe.java.i
+data/test/java/lang/instrument/ExampleRedefine.java.i
+data/src/share/classes/sun/java2d/pipe/ParallelogramPipe.java.i
 data/test/java/nio/channels/spi/AsynchronousChannelProvider/CheckProvider.java.i
 data/src/share/classes/java/awt/image/CropImageFilter.java.i
-data/src/share/classes/com/sun/jndi/ldap/LdapResult.java.i
+data/test/javax/sound/midi/Gervill/SoftChannel/ProgramAndBankChange.java.i
 data/test/sun/security/tools/policytool/UpdatePermissions.java.i
-data/test/java/util/ResourceBundle/Control/BadStaticInitRB.java.i
-data/src/share/classes/sun/tools/jstat/Identifier.java.i
+data/test/javax/swing/JLayer/6824395/bug6824395.java.i
+data/test/javax/management/eventService/EventClientThreadTest.java.i
 data/src/windows/native/sun/nio/ch/FileDispatcherImpl.c.i
-data/make/mkdemo/jvmti/waiters/Makefile.i
+data/src/share/classes/sun/management/HotspotThreadMBean.java.i
 data/make/tools/CharsetMapping/IBM930.c2b.i
-data/src/share/classes/com/sun/jdi/AbsentInformationException.java.i
-data/test/java/net/InetAddress/HashSpread.java.i
+data/test/javax/crypto/spec/DESKeySpec/CheckParity.java.i
+data/test/java/rmi/activation/Activatable/restartLatecomer/RestartLatecomer_Stub.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_sr_RS.properties.i
 data/src/share/classes/sun/security/krb5/internal/crypto/Crc32CksumType.java.i
 data/test/javax/xml/crypto/dsig/data/certs/nemain.crt.i
 data/src/solaris/classes/sun/awt/X11/XDnDConstants.java.i
-data/src/windows/classes/sun/awt/windows/awtLocalization_sv.properties.i
 data/src/share/native/sun/awt/medialib/mlib_ImageCheck.h.i
-data/make/sun/font/t2k/mapfile-vers.i
-data/test/sun/java2d/cmm/ProfileOp/ReadWriteProfileTest.java.i
-data/src/share/classes/java/lang/reflect/GenericSignatureFormatError.java.i
-data/src/share/classes/com/sun/jdi/event/ThreadStartEvent.java.i
-data/test/javax/management/modelmbean/UnserializableTargetObjectTest.java.i
-data/make/tools/winver/bin/winver.exe.i
+data/src/share/classes/sun/reflect/ByteVectorImpl.java.i
+data/test/sun/security/krb5/auto/META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor.i
+data/test/sun/security/krb5/RFC396xTest.java.i
+data/src/share/classes/sun/java2d/SunCompositeContext.java.i
+data/test/java/beans/XMLDecoder/spec/TestNew.java.i
 data/src/share/native/sun/font/layout/SingleSubstitutionSubtables.h.i
 data/test/java/util/PluggableLocale/providersrc/java.text.spi.DecimalFormatSymbolsProvider.i
 data/test/java/net/InetAddress/CachedUnknownHostName.java.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/IntCalls.java.i
-data/src/share/classes/java/util/MissingResourceException.java.i
+data/test/tools/pack200/pack200-verifier/src/sun/tools/pack/verify/Globals.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/BooleanArrays.java.i
-data/src/share/classes/com/sun/crypto/provider/CipherTextStealing.java.i
-data/src/share/classes/java/awt/print/PrinterException.java.i
+data/src/share/classes/java/awt/dnd/DragSourceListener.java.i
+data/test/java/security/Signature/NONEwithRSA.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsOptionPaneUI.java.i
+data/test/javax/management/remote/mandatory/passwordAccessFile/SimpleStandard.java.i
 data/src/solaris/classes/sun/awt/X11/ToplevelStateListener.java.i
-data/src/share/classes/com/sun/tools/jdi/LocationImpl.java.i
-data/src/solaris/classes/sun/awt/X11/XStateProtocol.java.i
+data/src/share/classes/java/lang/ClassFormatError.java.i
+data/test/java/io/PipedReader/Ready.java.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/config.i
 data/make/tools/javazic/Makefile.i
-data/test/java/util/concurrent/FutureTask/LoopHelpers.java.i
+data/src/share/native/sun/awt/splashscreen/splashscreen_gif.c.i
 data/src/share/native/com/sun/media/sound/PortMixer.c.i
 data/src/share/classes/sun/java2d/pisces/PiscesRenderingEngine.java.i
-data/test/java/rmi/activation/Activatable/checkActivateRef/CheckActivateRef.java.i
-data/test/java/lang/Short/ByteSwap.java.i
-data/test/sun/rmi/rmic/defaultStubVersion/run.sh.i
+data/test/sun/net/www/protocol/jar/jarbug/src/jar1/GetResource.java.i
+data/src/share/classes/java/applet/package.html.i
+data/src/share/classes/com/sun/net/httpserver/package-info.java.i
+data/src/share/native/sun/awt/libpng/pngstruct.h.i
 data/src/share/classes/sun/util/resources/CalendarData_mt_MT.properties.i
 data/test/demo/jvmti/Context.java.i
-data/test/java/util/zip/ReadLoc.java.i
 data/src/share/classes/javax/swing/text/AbstractWriter.java.i
-data/src/share/native/sun/awt/image/gif/gifdecoder.c.i
-data/src/share/classes/com/sun/servicetag/SolarisServiceTag.java.i
-data/src/share/classes/com/sun/media/sound/services/javax.sound.midi.spi.MidiFileWriter.i
+data/src/share/native/sun/management/MemoryPoolImpl.c.i
+data/src/share/native/sun/java2d/loops/ByteIndexed.h.i
+data/src/share/classes/javax/print/attribute/standard/NumberOfDocuments.java.i
 data/src/share/classes/java/awt/peer/CanvasPeer.java.i
-data/test/java/beans/XMLDecoder/spec/TestClass.java.i
+data/src/share/classes/sun/rmi/rmic/Main.java.i
+data/test/sun/security/pkcs11/KeyStore/Basic.policy.i
 data/test/java/rmi/reliability/benchmark/bench/XmlReporter.java.i
 data/test/java/rmi/server/RemoteObject/toStub/ToStub.java.i
-data/src/linux/doc/man/ja/jps.1.i
-data/test/java/security/Permission/ToString.java.i
+data/src/share/native/sun/font/layout/ContextualGlyphInsertion.h.i
+data/src/windows/classes/sun/java2d/ScreenUpdateManager.java.i
 data/src/share/demo/jfc/TableExample/TableExample3.java.i
 data/test/java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html.i
-data/src/windows/resource/icons/awt.ico.i
+data/test/java/io/Reader/NullLock.java.i
+data/test/java/beans/Introspector/memory/Test4508780.java.i
 data/test/java/rmi/transport/dgcDeadLock/Test.java.i
-data/src/share/classes/com/sun/jmx/remote/internal/ClientListenerInfo.java.i
-data/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeContext.java.i
+data/src/share/classes/com/sun/jdi/PrimitiveType.java.i
+data/src/share/classes/sun/nio/cs/ext/SJIS_0213.java.i
 data/test/java/awt/MultipleGradientPaint/MultiGradientTest.java.i
 data/test/sun/tools/jstat/snap1.awk.i
-data/src/share/classes/java/io/InputStreamReader.java.i
+data/src/share/classes/sun/security/krb5/internal/AuthContext.java.i
 data/test/sun/net/www/protocol/http/ResponseCacheStream.java.i
 data/test/java/lang/instrument/ilib/Inject.java.i
+data/src/share/classes/javax/management/event/EventClientNotFoundException.java.i
 data/make/tools/CharsetMapping/IBM918.nr.i
-data/test/java/security/cert/CertPathValidatorException/jdk6.serial.i
-data/src/share/classes/sun/reflect/generics/tree/ClassTypeSignature.java.i
-data/test/java/net/Authenticator/B4769350.java.i
-data/src/share/classes/java/net/CookieManager.java.i
+data/src/share/native/sun/java2d/loops/AnyInt.h.i
+data/src/share/classes/sun/rmi/registry/resources/rmiregistry_zh_TW.properties.i
+data/test/sun/tools/native2ascii/test3.i
+data/src/windows/classes/sun/security/mscapi/Key.java.i
 data/src/share/native/sun/java2d/ShaderList.h.i
-data/src/share/classes/javax/swing/DebugGraphicsInfo.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/tests/GraphicsTests.java.i
+data/test/com/sun/jdi/DeoptimizeWalk.sh.i
+data/test/javax/sound/midi/Gervill/RiffReaderWriter/ReadByteArrayIntInt.java.i
 data/src/share/classes/javax/swing/plaf/basic/BasicTransferable.java.i
 data/test/java/util/PluggableLocale/CurrencyNameProviderTest.sh.i
 data/src/share/classes/sun/nio/ch/exceptions.i
-data/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c.i
+data/src/share/classes/javax/crypto/ShortBufferException.java.i
 data/src/share/classes/sun/util/resources/CurrencyNames_sr_Latn_ME.properties.i
 data/test/sun/security/ssl/sanity/interop/JSSEServer.java.i
 data/src/share/classes/sun/security/util/DerInputStream.java.i
 data/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.java.i
-data/test/java/awt/Mixing/Validating.java.i
-data/src/solaris/native/sun/awt/colordata.h.i
-data/src/share/classes/javax/swing/text/ChangedCharSetException.java.i
+data/src/share/classes/javax/swing/plaf/nimbus/PainterImpl.template.i
+data/test/javax/management/remote/mandatory/connection/RMIConnector_NPETest.java.i
+data/src/windows/native/sun/windows/awt_TrayIcon.cpp.i
 data/test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOn_Delayed.java.i
 data/src/share/classes/javax/net/SocketFactory.java.i
-data/make/sun/rmi/rmic/FILES.gmk.i
+data/src/share/classes/javax/swing/text/DefaultCaret.java.i
+data/src/share/back/export/sys.h.i
 data/test/javax/xml/crypto/dsig/data/certs/morigu.crt.i
 data/src/share/classes/sun/management/HotspotCompilation.java.i
-data/test/javax/sound/midi/Gervill/AudioFloatInputStream/Available.java.i
+data/make/com/sun/tracing/dtrace/Makefile.i
 data/test/javax/sound/midi/Gervill/SimpleSoundbank/GetInstrument.java.i
 data/test/sun/rmi/rmic/newrmic/equivalence/ServerImpl.java.i
 data/src/solaris/native/sun/java2d/loops/vis_FuncArray.c.i
 data/src/share/classes/javax/management/openmbean/MXBeanMappingFactoryClass.java.i
-data/src/solaris/native/sun/java2d/loops/vis_AlphaMaskBlit.c.i
+data/test/java/beans/Performance/TestPropertyChangeSupport.java.i
 data/src/share/classes/sun/tools/tree/InlineMethodExpression.java.i
-data/src/share/classes/javax/management/BetweenQueryExp.java.i
-data/src/share/classes/com/sun/script/javascript/JavaAdapter.java.i
+data/test/tools/pack200/Pack200Props.java.i
+data/src/share/classes/sun/misc/ExtensionInstallationException.java.i
 data/src/share/demo/jfc/Font2DTest/resources/TextResources_de.properties.i
-data/test/org/openjdk/jigsaw/_JigsawVersionQuery.java.i
+data/make/tools/CharsetMapping/IBM737.map.i
+data/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java.i
 data/test/sun/security/krb5/confplusprop2.conf.i
 data/test/com/sun/jdi/sde/InstallSDE.java.i
 data/src/share/classes/sun/tools/native2ascii/resources/MsgNative2ascii_zh_CN.java.i
-data/test/java/io/Serializable/badSerialPersistentField/BadSerialPersistentField.java.i
-data/src/share/native/sun/font/layout/HangulLayoutEngine.h.i
-data/src/share/classes/sun/io/ByteToCharISO2022.java.i
-data/src/share/classes/javax/swing/text/html/BRView.java.i
+data/src/linux/doc/man/jarsigner.1.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/UnsyncBufferedOutputStream.java.i
+data/src/share/classes/sun/tools/tree/ConstantExpression.java.i
+data/src/share/classes/com/sun/tools/example/debug/event/ModificationWatchpointEventSet.java.i
+data/src/share/native/java/util/zip/zlib-1.2.3/inffast.h.i
 data/test/java/util/zip/ZipFile/ShortRead.java.i
-data/src/share/classes/sun/tools/native2ascii/resources/MsgNative2ascii_ja.java.i
+data/test/com/sun/tools/attach/RedefineAgent.java.i
 data/src/share/classes/javax/management/remote/JMXAddressable.java.i
-data/src/share/classes/com/sun/media/sound/SunFileReader.java.i
-data/test/sun/net/www/ftptest/FtpAuthHandler.java.i
-data/src/share/classes/com/sun/tools/hat/internal/model/AbstractJavaHeapObjectVisitor.java.i
-data/test/com/sun/jdi/CountFilterTest.java.i
-data/src/share/classes/com/sun/jdi/TypeComponent.java.i
-data/src/share/classes/java/rmi/activation/ActivationGroup.java.i
+data/src/share/classes/com/sun/tools/attach/VirtualMachineDescriptor.java.i
+data/src/share/classes/java/util/logging/FileHandler.java.i
+data/test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/Available.java.i
+data/test/sun/security/provider/SeedGenerator/Priority_Inversion.java.i
+data/test/java/util/concurrent/ScheduledThreadPoolExecutor/DecorateTask.java.i
+data/test/com/sun/jdi/TemplateTest.java.i
+data/test/javax/management/query/QueryNotifFilterTest.java.i
+data/src/share/classes/com/sun/accessibility/internal/resources/accessibility_pt_BR.properties.i
+data/test/javax/swing/plaf/basic/Test6984643.java.i
 data/src/windows/classes/sun/java2d/d3d/D3DBackBufferSurfaceData.java.i
-data/src/share/classes/java/rmi/ServerError.java.i
+data/test/com/sun/jdi/MixedSuspendTest.sh.i
 data/src/share/native/sun/awt/image/jpeg/jconfig.h.i
 data/src/share/classes/com/sun/jdi/event/WatchpointEvent.java.i
 data/test/com/sun/crypto/provider/Cipher/RSA/oaep-vect.txt.i
 data/test/java/beans/XMLEncoder/Test4625418.java.i
-data/src/share/classes/sun/io/CharToByteMacThai.java.i
+data/test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/Read.java.i
 data/test/sun/security/pkcs11/nss/lib/windows-i586/nssckbi.dll.i
+data/src/share/sample/jmx/jmx-scandir/docfiles/connect-local-ant-run.jpg.i
+data/src/solaris/classes/sun/awt/X11/MWMConstants.java.i
 data/make/java/net/FILES_c.gmk.i
-data/src/share/classes/sun/tools/tree/BitOrExpression.java.i
+data/src/share/classes/java/lang/reflect/Modifier.java.i
 data/test/javax/crypto/Mac/ByteBuffers.java.i
-data/test/com/sun/net/httpserver/SelCacheTest.java.i
+data/test/java/util/PluggableLocale/providersrc/LocaleNames_ja_JP_kyoto.properties.i
 data/src/share/classes/javax/management/loading/ClassLoaderRepository.java.i
 data/test/org/openjdk/jigsaw/cli/jmod-signed.sh.i
 data/test/com/sun/jdi/FilterMatch.java.i
-data/src/share/classes/javax/print/attribute/PrintServiceAttribute.java.i
+data/test/java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java.i
 data/test/sun/security/pkcs11/Secmod/nsstrust.cfg.i
 data/test/javax/security/auth/login/LoginContext/ConfigConstructor.policy.i
 data/src/share/native/sun/security/ec/ecp_mont.c.i
-data/src/share/classes/sun/reflect/annotation/TypeNotPresentExceptionProxy.java.i
+data/src/share/classes/sun/tools/native2ascii/resources/MsgNative2ascii.java.i
 data/test/java/lang/instrument/appendToClassLoaderSearch/ClassUnloadTest.java.i
+data/src/share/classes/javax/sound/midi/ControllerEventListener.java.i
 data/src/share/classes/javax/accessibility/AccessibleExtendedComponent.java.i
 data/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalEventTimer.java.i
+data/src/share/native/java/lang/fdlibm/src/w_cosh.c.i
 data/src/share/classes/sun/management/resources/agent.properties.i
-data/test/java/rmi/server/RMIClassLoader/loadProxyClasses/FnnClass.java.i
-data/test/com/sun/net/httpserver/bugs/B6401598.java.i
+data/src/share/classes/java/sql/PreparedStatement.java.i
+data/src/share/classes/java/awt/font/LineMetrics.java.i
 data/src/solaris/classes/sun/awt/motif/MCanvasPeer.java.i
-data/src/share/classes/java/lang/management/MemoryManagerMXBean.java.i
+data/test/javax/management/mxbean/RandomMXBeanTest.java.i
 data/src/share/classes/sun/net/idn/UCharacterDirection.java.i
 data/test/sun/net/www/protocol/jar/jarbug/src/test/JarTest.java.i
 data/src/share/classes/java/security/interfaces/RSAPrivateCrtKey.java.i
-data/src/share/classes/java/security/cert/CollectionCertStoreParameters.java.i
-data/src/share/demo/scripting/jconsole-plugin/build.xml.i
-data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/LayerContainer.java.i
-data/src/windows/resource/version.rc.i
-data/src/share/classes/sun/tools/tree/IfStatement.java.i
+data/test/javax/sound/midi/Gervill/SimpleSoundbank/SetName.java.i
+data/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java.i
+data/test/java/util/EnumSet/SmallEnumIteratorRemoveResilience.java.i
+data/test/sun/security/krb5/ParseConfig.java.i
+data/test/java/io/File/MaxPathLength.java.i
 data/test/javax/sound/midi/Gervill/SoftSynthesizer/ding.sf2.i
-data/src/share/classes/java/awt/color/ICC_ColorSpace.java.i
+data/src/share/classes/com/sun/rowset/RowSetFactoryImpl.java.i
+data/test/java/beans/XMLEncoder/Test6176120.java.i
 data/src/share/classes/com/sun/tools/example/debug/bdi/ThreadGroupIterator.java.i
 data/src/share/native/sun/awt/image/jpeg/jdpostct.c.i
 data/src/share/demo/jvmti/hprof/hprof_check.c.i
 data/test/javax/sound/midi/MidiDeviceConnectors/TestAllDevices.java.i
-data/src/share/classes/sun/font/FontManagerFactory.java.i
-data/src/share/classes/java/awt/geom/PathIterator.java.i
-data/test/java/net/URLClassLoader/B6896088.java.i
+data/src/windows/classes/sun/awt/windows/awtLocalization_sv.properties.i
+data/test/java/security/KeyRep/RC5.pre.1.5.key.i
+data/test/java/rmi/Naming/UnderscoreHost_Stub.java.i
 data/test/java/lang/Boolean/MakeBooleanComparable.java.i
-data/src/solaris/native/sun/awt/awt_Scrollbar.c.i
+data/test/java/lang/reflect/Proxy/returnTypes/GetCloneable.java.i
 data/src/share/native/sun/font/layout/HebrewShaping.h.i
 data/src/share/classes/sun/security/pkcs11/Token.java.i
 data/src/share/classes/sun/misc/Signal.java.i
 data/src/share/classes/com/sun/media/sound/SF2Soundbank.java.i
-data/test/java/io/BufferedReader/Fill.java.i
-data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMDigestMethod.java.i
+data/src/share/classes/java/lang/annotation/Documented.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolverException.java.i
 data/src/share/classes/sun/dyn/util/VerifyType.java.i
+data/src/share/classes/sun/tools/tree/FieldExpression.java.i
 data/test/javax/swing/JFileChooser/4150029/bug4150029.html.i
-data/src/share/classes/sun/management/counter/perf/PerfByteArrayCounter.java.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_RSA_PKCS_PSS_PARAMS.java.i
+data/src/windows/classes/sun/awt/windows/WEmbeddedFrame.java.i
+data/make/netbeans/jdwpgen/nbproject/sqe.properties.i
 data/test/sun/security/jgss/GssNPE.java.i
-data/test/java/util/concurrent/BlockingQueue/Interrupt.java.i
-data/src/share/classes/java/security/cert/CertSelector.java.i
-data/test/java/text/Format/DateFormat/WeekDateTest.java.i
-data/test/java/util/ArrayList/IteratorMicroBenchmark.java.i
-data/src/share/classes/sun/tools/tree/LessExpression.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/J2DBench.java.i
+data/src/share/classes/java/io/PipedReader.java.i
+data/src/share/classes/java/rmi/server/RemoteCall.java.i
+data/test/java/util/Map/Get.java.i
+data/src/share/classes/javax/swing/event/MenuDragMouseListener.java.i
+data/src/share/native/sun/awt/libpng/pngconf.h.i
+data/src/solaris/javavm/export/jni_md.h.i
+data/src/solaris/classes/sun/awt/motif/X11SunUnicode_0.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/XMLX509Certificate.java.i
-data/test/java/nio/channels/AsynchronousChannelGroup/BadProperties.java.i
+data/src/share/native/sun/java2d/loops/ThreeByteBgr.c.i
 data/test/java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java.i
-data/src/share/sample/nio/server/N2.java.i
+data/test/java/util/zip/ZipFile/ReleaseInflater.java.i
 data/src/share/classes/sun/security/ssl/ServerHandshaker.java.i
 data/make/tools/CharsetMapping/IBM1112.map.i
-data/src/share/classes/sun/tools/jconsole/inspector/TableSorter.java.i
-data/src/share/classes/sun/io/CharToByteCp861.java.i
-data/test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh.i
+data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/CloseTest.java.i
+data/src/share/classes/com/sun/media/sound/StandardMidiFileWriter.java.i
+data/test/sun/security/pkcs11/Provider/ConfigQuotedString.java.i
 data/test/java/beans/PropertyEditor/TestDoubleTypeNull.java.i
-data/test/com/sun/security/auth/module/LdapLoginModule/CheckConfigs.java.i
-data/src/share/classes/sun/text/resources/unorm.icu.i
+data/src/solaris/classes/sun/awt/motif/X11GB18030_1.java.i
 data/test/java/util/TreeMap/NullAtEnd.java.i
-data/test/javax/swing/JTable/6777378/bug6777378.java.i
-data/test/java/io/Reader/OpsAfterClose.java.i
+data/test/java/security/Security/signedfirst/StaticSignedProvFirst.java.i
 data/test/sun/security/util/HostnameMatcher/TestHostnameChecker.java.i
-data/src/share/classes/sun/rmi/server/ActivatableRef.java.i
-data/src/solaris/classes/sun/nio/ch/DevPollSelectorImpl.java.i
+data/test/sun/security/util/BitArray/NamedBitList.java.i
+data/test/javax/management/remote/mandatory/loading/SingleClassLoader.java.i
 data/src/share/classes/com/sun/tools/attach/AttachPermission.java.i
 data/test/javax/script/Test7.js.i
-data/test/sun/nio/cs/TestISO2022CNDecoder.java.i
-data/src/share/classes/javax/management/DescriptorKey.java.i
+data/src/windows/hpi/src/path_md.c.i
+data/src/windows/classes/sun/java2d/d3d/D3DContext.java.i
 data/src/share/classes/javax/swing/JLabel.java.i
-data/src/share/classes/sun/nio/ch/AllocatedNativeObject.java.i
+data/test/sun/security/pkcs11/nss/lib/linux-amd64/libsoftokn3.so.i
+data/src/solaris/native/sun/java2d/j2d_md.h.i
 data/test/javax/xml/crypto/dsig/KeySelectors.java.i
 data/src/share/demo/nbproject/management/FullThreadDump/nbproject/project.xml.i
-data/src/share/classes/java/rmi/registry/LocateRegistry.java.i
-data/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java.i
-data/src/share/classes/sun/tools/jconsole/inspector/Utils.java.i
-data/src/share/native/java/lang/fdlibm/src/w_gamma.c.i
+data/test/java/lang/reflect/Constructor/TestParameterAnnotations.java.i
+data/test/com/sun/jdi/CatchPatternTest.sh.i
+data/test/javax/management/remote/mandatory/version/ImplVersionCommand.java.i
+data/test/com/sun/jdi/ShellScaffold.sh.i
 data/test/sun/security/util/Oid/S11N.sh.i
-data/src/share/classes/com/sun/imageio/stream/StreamCloser.java.i
-data/test/java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java.i
+data/src/share/classes/sun/management/snmp/jvmmib/JvmRTClassPathEntryMeta.java.i
+data/test/java/io/Serializable/backRefCNFException/Read.java.i
 data/src/share/classes/sun/text/resources/FormatData_de_CH.java.i
-data/test/java/awt/GraphicsEnvironment/PreferLocaleFonts.java.i
-data/src/share/classes/sun/net/httpserver/LeftOverInputStream.java.i
-data/src/share/classes/com/sun/net/ssl/TrustManagerFactory.java.i
+data/test/java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.java.i
+data/test/java/util/Hashtable/SimpleSerialization.java.i
+data/test/java/beans/PropertyEditor/TestEnumSubclassValue.java.i
 data/src/share/demo/nbproject/jfc/SampleTree/build.properties.i
 data/test/java/nio/charset/coders/FullRead.java.i
-data/src/share/classes/java/beans/Expression.java.i
-data/test/sun/management/jmxremote/bootstrap/solaris-i586/launcher.i
+data/src/share/classes/sun/management/snmp/util/SnmpNamedListTableCache.java.i
+data/make/tools/swing-beans/beaninfo/images/JMenuColor16.gif.i
 data/test/java/util/ResourceBundle/RBTestFmwk.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpSecurityParameters.java.i
-data/src/share/classes/javax/swing/tree/TreeSelectionModel.java.i
+data/src/share/classes/java/io/NotSerializableException.java.i
+data/src/share/classes/java/util/jar/JavaUtilJarAccessImpl.java.i
 data/src/share/classes/java/rmi/activation/ActivationSystem.java.i
 data/src/share/classes/java/lang/invoke/MethodHandleImpl.java.i
-data/test/java/rmi/activation/Activatable/restartService/security.policy.i
-data/test/sun/security/pkcs11/ec/p12passwords.txt.i
+data/src/share/demo/nio/zipfs/src/META-INF/services/java.nio.file.spi.FileSystemProvider.i
 data/test/java/io/charStreams/StringConvert.java.i
-data/src/share/classes/sun/java2d/cmm/lcms/LCMSTransform.java.i
+data/test/javax/print/PrintSubInputStream/Example.java.i
 data/src/share/native/sun/font/layout/LEScripts.h.i
 data/src/share/classes/sun/security/util/AuthResources_ko.java.i
-data/make/tools/reorder/tests/LoadToolkit.java.i
-data/test/javax/security/auth/x500/X500Principal/DerIsConstructor.java.i
+data/src/share/native/java/lang/fdlibm/src/e_acosh.c.i
+data/src/solaris/native/sun/awt/MouseInfo.c.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_UNLOCKMUTEX.java.i
-data/src/share/classes/sun/net/TelnetProtocolException.java.i
+data/make/tools/classanalyzer/src/com/sun/classanalyzer/BootAnalyzer.java.i
 data/test/sun/security/provider/PolicyParser/ExpansionErrorMisleading.policy.i
+data/src/share/classes/java/awt/doc-files/modal-example1.gif.i
+data/test/java/awt/Graphics/DrawImageBG/SystemBgColorTest.java.i
 data/src/share/classes/com/sun/servicetag/resources/register_zh_CN.html.i
 data/test/com/sun/crypto/provider/Cipher/DES/inputData/plain3.txt.i
-data/src/share/classes/java/security/SecureRandomSpi.java.i
-data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ProxyTunnelServer.java.i
-data/src/share/classes/sun/security/jgss/LoginConfigImpl.java.i
-data/src/share/classes/com/sun/tools/hat/internal/model/JavaLazyReadObject.java.i
-data/src/share/classes/javax/swing/undo/UndoableEditSupport.java.i
-data/src/share/classes/javax/smartcardio/CommandAPDU.java.i
-data/make/tools/src/build/tools/generatebreakiteratordata/DictionaryBasedBreakIteratorBuilder.java.i
-data/src/share/classes/javax/sound/midi/SoundbankResource.java.i
-data/src/share/classes/com/sun/jmx/snmp/SnmpInt.java.i
+data/test/com/sun/jdi/ControlFlow.java.i
+data/src/share/classes/sun/nio/cs/ext/MSISO2022JP.java.i
+data/test/sun/rmi/transport/tcp/blockAccept/BlockAcceptTest.java.i
+data/src/share/classes/sun/util/resources/TimeZoneNames_ko.java.i
+data/test/sun/nio/cs/TestCompoundTest.java.i
+data/src/share/classes/sun/io/CharToByteCp861.java.i
+data/test/java/lang/String/Supplementary.java.i
+data/src/share/native/sun/awt/libpng/pngwio.c.i
+data/src/share/classes/javax/management/monitor/StringMonitor.java.i
 data/test/java/util/prefs/PrefsSpi.java.i
-data/src/share/classes/java/io/ObjectOutput.java.i
-data/src/share/classes/java/lang/RuntimeException.java.i
-data/src/share/classes/java/lang/ClassLoader.java.i
-data/test/java/io/InputStreamReader/GrowAfterEOF.java.i
+data/test/java/net/Authenticator/B6870935.java.i
+data/src/share/classes/java/awt/im/spi/InputMethodContext.java.i
+data/test/com/sun/crypto/provider/Cipher/RSA/TestRSA.java.i
+data/test/java/net/CookieHandler/B6791927.java.i
 data/test/java/rmi/reliability/benchmark/bench/serial/CustomObjTrees.java.i
 data/src/solaris/classes/sun/awt/motif/X11JIS0212.java.i
 data/make/java/sun_nio/Makefile.i
 data/test/java/io/Serializable/6966692/Test6966692.sh.i
 data/test/java/beans/Performance/TestIntrospector.java.i
 data/test/com/sun/jdi/CatchAllTest.sh.i
-data/src/share/classes/java/security/Provider.java.i
+data/test/javax/management/remote/mandatory/connection/RMIConnectionIdTest.java.i
 data/src/share/classes/java/rmi/AccessException.java.i
-data/src/share/classes/com/sun/tools/example/debug/tty/ThreadInfo.java.i
+data/src/share/back/util.c.i
 data/src/share/classes/javax/security/auth/login/CredentialException.java.i
-data/src/share/native/sun/font/layout/CanonShaping.cpp.i
+data/src/share/native/sun/java2d/loops/UshortGray.c.i
 data/src/share/classes/sun/io/CharToByteCp856.java.i
-data/src/share/classes/sun/nio/cs/ext/ISO_8859_3.java.i
+data/test/java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html.i
+data/src/share/demo/jfc/CodePointIM/CodePointIM.java.i
 data/test/java/lang/instrument/PremainClass/InheritAgent0111.java.i
-data/make/modules/BuildPackages.gmk.i
-data/make/tools/classanalyzer/src/com/sun/classanalyzer/ShowRefs.java.i
-data/src/share/classes/org/openjdk/jigsaw/SignedModule.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/Destinations.java.i
+data/src/share/classes/sun/rmi/log/ReliableLog.java.i
+data/src/share/classes/java/sql/package.html.i
+data/test/java/rmi/activation/Activatable/nestedActivate/security.policy.i
+data/test/java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.java.i
 data/src/share/classes/java/security/KeyFactorySpi.java.i
-data/test/java/nio/charset/Charset/Default.java.i
+data/test/sun/text/resources/Format/Bug4807540.java.i
 data/src/solaris/doc/sun/man/man1/ja/javadoc.1.d
-data/test/java/util/PluggableLocale/CollatorProviderTest.sh.i
+data/test/javax/swing/JFileChooser/6342301/bug6342301.java.i
 data/src/share/classes/com/sun/servicetag/Installer.java.i
-data/make/tools/src/build/tools/javazic/Main.java.i
+data/test/java/rmi/activation/Activatable/checkRegisterInLog/CheckRegisterInLog.java.i
 data/test/sun/security/util/Oid/OidFormat.java.i
 data/src/share/classes/com/sun/tools/example/debug/gui/MonitorTool.java.i
 data/test/sun/nio/cs/CheckICNE.java.i
 data/src/share/classes/sun/security/jgss/HttpCaller.java.i
+data/src/share/classes/com/sun/java/util/jar/pack/Package.java.i
 data/src/solaris/doc/sun/man/man1/ja/javadoc.1.i
-data/test/sun/security/ssl/javax/net/ssl/SSLServerSocket/DefaultSSLServSocketFac.java.i
-data/src/share/classes/javax/swing/text/rtf/RTFGenerator.java.i
+data/src/share/classes/javax/security/auth/login/Configuration.java.i
+data/src/share/native/sun/awt/medialib/mlib_ImageColorTrue2Index.c.i
 data/src/share/native/sun/security/ec/impl/mpi-priv.h.i
 data/test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_overdrive_mono.java.i
-data/src/share/native/sun/awt/debug/debug_mem.h.i
-data/src/share/native/com/sun/media/sound/Platform.c.i
+data/src/share/sample/vm/clr-jvm/README.txt.i
+data/test/java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.java.i
+data/src/windows/native/sun/windows/awt_Robot.cpp.i
 data/test/java/net/Socket/NullHost.java.i
 data/test/javax/management/context/RemoteContextTest.java.i
 data/src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp.i
 data/src/share/classes/javax/swing/text/html/Map.java.i
-data/src/share/classes/java/awt/Frame.java.i
-data/src/share/classes/java/awt/KeyEventDispatcher.java.i
+data/make/tools/src/build/tools/automulti/TestALFGenerator.java.i
+data/src/solaris/classes/sun/awt/motif/X11CNS11643P2.java.i
 data/src/windows/classes/sun/tools/attach/WindowsAttachProvider.java.i
 data/src/share/classes/java/util/concurrent/TimeoutException.java.i
 data/src/share/classes/java/util/LinkedHashSet.java.i
-data/test/java/net/CookieHandler/B6644726.java.i
+data/test/java/nio/Buffer/CopyDirectIntMemory.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_de.properties.i
 data/make/common/shared/Compiler-msvc.gmk.i
-data/test/java/beans/XMLEncoder/6777487/TestEnumMap.java.i
+data/test/sun/tools/jps/jps-Vvml_2.sh.i
 data/src/share/classes/sun/tools/asm/Assembler.java.i
 data/src/share/classes/java/awt/image/DataBuffer.java.i
 data/src/share/classes/javax/swing/text/html/parser/ContentModelState.java.i
 data/test/sun/nio/cs/CheckCaseInsensitiveEncAliases.java.i
-data/make/tools/swing-beans/beaninfo/images/JPopupMenuMono32.gif.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.java.i
 data/src/windows/native/sun/windows/awt_Dimension.cpp.i
 data/test/java/net/Socket/asyncClose/DatagramSocket_receive.java.i
 data/src/share/classes/javax/management/BooleanValueExp.java.i
-data/src/share/classes/sun/tools/tree/DivideExpression.java.i
+data/test/java/util/logging/LoggingDeadlock2.java.i
 data/src/share/native/sun/java2d/opengl/OGLRenderer.h.i
 data/src/share/classes/sun/io/ByteToCharISO8859_1.java.i
-data/src/share/classes/java/util/Calendar.java.i
+data/src/share/classes/sun/java2d/pipe/OutlineTextRenderer.java.i
 data/test/java/io/Serializable/cloneArray/CloneArray.java.i
-data/src/share/classes/sun/text/normalizer/ICUBinary.java.i
+data/src/share/sample/nio/file/Xdd.java.i
+data/src/share/classes/java/lang/module/ModuleInfoAnnotation.java.i
+data/src/share/classes/sun/tools/serialver/serialver.properties.i
 data/test/java/util/Collection/IteratorAtEnd.java.i
 data/test/javax/management/remote/mandatory/connection/MultiThreadDeadLockTest.java.i
-data/test/sun/misc/JarIndex/metaInfFilenames/jarC/META-INF/services/com.message.spi.MessageService.i
+data/src/windows/native/sun/windows/awt_Scrollbar.cpp.i
+data/test/sun/rmi/rmic/newrmic/equivalence/MyObject.java.i
 data/test/javax/management/loading/LibraryLoader/jar_src/UseNativeLib.java.i
 data/src/solaris/classes/sun/awt/X11/XNETProtocol.java.i
-data/src/share/native/java/io/FileInputStream.c.i
+data/src/share/classes/sun/io/CharToByteCp948.java.i
 data/src/share/native/sun/security/ec/impl/mpi.c.i
-data/test/com/sun/jdi/UnpreparedByName.java.i
+data/test/com/sun/jdi/InnerTarg.java.i
+data/src/share/classes/com/sun/tools/example/trace/EventThread.java.i
 data/src/share/classes/java/util/DualPivotQuicksort.java.i
 data/src/share/classes/java/security/spec/RSAPublicKeySpec.java.i
 data/src/share/classes/com/sun/java/swing/plaf/gtk/GTKColorType.java.i
 data/src/share/classes/javax/swing/plaf/metal/MetalProgressBarUI.java.i
+data/test/javax/swing/text/html/TableView/7030332/bug7030332.java.i
 data/src/share/classes/sun/security/pkcs11/P11DHKeyFactory.java.i
-data/test/java/awt/im/4959409/bug4959409.java.i
-data/src/share/classes/com/sun/tools/example/debug/bdi/ExecutionManager.java.i
+data/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509Data.java.i
+data/test/java/lang/Runtime/exec/WinCommand.java.i
 data/src/solaris/bin/ia64/jvm.cfg.i
-data/src/share/classes/sun/util/resources/CalendarData_ja.properties.i
+data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBuffer.java.i
 data/test/java/nio/channels/SocketChannel/ExceptionTranslation.java.i
 data/test/java/io/Serializable/oldTests/BinaryTree.java.i
-data/test/com/sun/servicetag/servicetag2.properties.i
-data/src/share/sample/jmx/jmx-scandir/docfiles/scandir-start.jpg.i
+data/test/java/io/Serializable/unnamedPackageSwitch/A.java.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/MotifProgressBarUI.java.i
 data/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c.i
 data/src/share/classes/sun/security/util/Resources_es.java.i
-data/src/share/classes/java/nio/file/FileSystem.java.i
+data/src/share/classes/sun/security/provider/DSAParameters.java.i
+data/test/java/lang/Character/CheckProp.java.i
 data/src/share/classes/com/sun/media/sound/ModelAbstractChannelMixer.java.i
-data/test/sun/tools/jps/jps-m_Output2.awk.i
-data/test/com/sun/jdi/UnpreparedClasses.java.i
-data/test/java/io/Serializable/lookupAnyInvocation/LookupAnyInvocation.java.i
+data/test/java/lang/ref/SoftReference/Bash.java.i
+data/test/java/util/Locale/data/deflocale.sh.i
 data/test/java/rmi/activation/Activatable/unregisterInactive/group.security.policy.i
-data/src/solaris/native/java/io/FileDescriptor_md.c.i
-data/test/java/lang/instrument/appendToClassLoaderSearch/run_tests.sh.i
+data/make/sun/awt/README.i
+data/test/java/net/HttpURLConnection/HttpResponseCode.java.i
+data/test/sun/security/ssl/README.i
 data/src/solaris/native/sun/awt/multiVis.h.i
-data/test/java/io/PrintWriter/OversynchronizedTest.java.i
-data/src/share/native/java/util/zip/zlib-1.2.3/inftrees.c.i
-data/src/share/classes/javax/swing/Spring.java.i
+data/src/share/classes/sun/tools/tree/AssignAddExpression.java.i
+data/src/share/native/sun/awt/medialib/mlib_status.h.i
+data/src/share/classes/sun/audio/AudioStream.java.i
 data/src/windows/classes/sun/nio/ch/PendingIoCache.java.i
-data/test/com/sun/crypto/provider/Mac/MacKAT.java.i
-data/test/java/security/cert/CertPathValidator/OCSP/FailoverToCRL.java.i
-data/src/share/classes/sun/rmi/server/ActivationGroupInit.java.i
+data/src/share/classes/sun/net/ftp/impl/DefaultFtpClientProvider.java.i
+data/src/windows/native/sun/windows/GDIHashtable.cpp.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/signature/SignedInfo.java.i
+data/src/solaris/back/proc_md.h.i
 data/test/java/net/ServerSocket/ThreadStop.java.i
-data/src/share/classes/com/sun/tools/jdi/IntegerValueImpl.java.i
+data/make/tools/CharsetMapping/IBM037.nr.i
 data/src/share/classes/sun/print/AttributeUpdater.java.i
 data/test/java/beans/XMLEncoder/java_util_ArrayList.java.i
 data/src/share/classes/javax/net/ssl/HttpsURLConnection.java.i
-data/make/tools/CharsetMapping/IBM942.c2b.i
-data/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java.i
-data/src/share/classes/com/sun/tools/jdi/CharTypeImpl.java.i
+data/test/java/security/KeyRep/SerialDSAPubKey.policy.i
+data/test/java/security/KeyRep/RSA.pre.1.5.key.i
+data/test/com/sun/jdi/RefTypes.java.i
 data/test/java/util/zip/ZipFile/input.jar.i
-data/src/share/classes/javax/management/StandardEmitterMBean.java.i
-data/src/share/classes/javax/management/event/RMIPushEventForwarder.java.i
-data/src/share/demo/java2d/J2DBench/src/j2dbench/Option.java.i
-data/src/share/classes/javax/xml/crypto/OctetStreamData.java.i
-data/make/modules/tools/src/com/sun/classanalyzer/ResolutionInfo.java.i
+data/src/share/classes/sun/security/pkcs11/P11ECDHKeyAgreement.java.i
+data/make/javax/rmi/Makefile.i
+data/src/solaris/doc/sun/man/man1/extcheck.1.i
+data/src/share/classes/com/sun/media/sound/DLSRegion.java.i
+data/test/java/nio/channels/ServerSocketChannel/Basic.java.i
+data/test/java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.java.i
 data/src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java.i
-data/test/sun/misc/JarIndex/metaInfFilenames/jarC/META-INF/fonts.mf.i
-data/src/share/classes/sun/net/httpserver/HttpContextImpl.java.i
+data/src/share/classes/javax/print/attribute/standard/JobMediaSheetsCompleted.java.i
+data/src/share/classes/java/sql/Statement.java.i
+data/test/sun/nio/cs/OLD/IBM949_OLD.java.i
 data/src/share/classes/sun/reflect/Reflection.java.i
 data/src/share/classes/sun/reflect/generics/tree/ArrayTypeSignature.java.i
 data/src/windows/native/sun/windows/awt_Dialog.cpp.i
-data/src/share/classes/java/rmi/activation/Activator.java.i
+data/test/java/util/ArrayList/IteratorMicroBenchmark.java.i
 data/src/share/classes/javax/swing/plaf/DimensionUIResource.java.i
 data/src/share/classes/sun/text/normalizer/UCharacter.java.i
 data/test/java/security/AccessControlContext/CheckCtor.java.i
 data/src/share/demo/applets/MoleculeViewer/models/cyclohexane.xyz.i
 data/src/share/native/java/io/ObjectOutputStream.c.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/KeyInfoContent.java.i
-data/src/share/classes/sun/print/RasterPrinterJob.java.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_NN.c.i
 data/src/share/classes/javax/swing/text/Utilities.java.i
-data/src/share/classes/org/openjdk/jigsaw/Hi.java.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifDesktopPaneUI.java.i
-data/src/share/classes/java/nio/channels/SeekableByteChannel.java.i
+data/src/share/classes/sun/java2d/pisces/Stroker.java.i
+data/src/share/classes/javax/swing/border/BevelBorder.java.i
+data/test/java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.java.i
+data/test/java/rmi/activation/Activatable/checkImplClassLoader/CheckImplClassLoader.java.i
 data/src/share/classes/sun/text/resources/FormatData_en_PH.java.i
 data/test/javax/swing/JFileChooser/6698013/bug6698013.html.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelInsert_34.c.i
 data/test/sun/util/resources/TimeZone/IntlTest.java.i
 data/test/javax/management/context/ContextTest.java.i
 data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java.i
-data/src/solaris/native/sun/awt/initIDs.c.i
-data/test/java/net/URLConnection/DisconnectAfterEOF.java.i
+data/src/share/sample/jmx/jmx-scandir/build.xml.i
+data/test/sun/security/provider/certpath/ReverseBuilder/prjM2mgrM.i
 data/test/sun/security/pkcs11/Secmod/Crypto.java.i
-data/test/java/awt/Paint/PgramUserBoundsTest.java.i
-data/src/solaris/native/common/jdk_util_md.c.i
+data/test/java/nio/channels/FileChannel/Transfer.java.i
+data/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java.i
 data/src/share/demo/jfc/Metalworks/resources/HelpFiles/metal.html.i
 data/test/java/security/cert/X509Certificate/ExtKeyUsage.java.i
 data/src/share/classes/com/sun/pept/ept/ContactInfo.java.i
-data/src/share/classes/java/util/concurrent/ThreadLocalRandom.java.i
-data/src/share/classes/javax/sound/midi/spi/package.html.i
-data/src/share/classes/java/rmi/dgc/Lease.java.i
-data/src/share/classes/java/util/ListIterator.java.i
+data/test/java/net/URLDecoder/B6463990.java.i
+data/test/java/lang/Math/Atan2Tests.java.i
+data/test/javax/management/Introspector/ParameterNameTest.java.i
+data/src/share/native/sun/java2d/loops/FillParallelogram.c.i
 data/src/windows/native/sun/nio/ch/WindowsAsynchronousFileChannelImpl.c.i
-data/test/java/io/Serializable/serialver/classpath/Test.java.i
-data/src/share/classes/com/sun/beans/finder/BeanInfoFinder.java.i
+data/src/share/classes/java/util/logging/Level.java.i
+data/test/java/net/InetSocketAddress/B6469803.java.i
 data/test/java/util/Formatter/BasicBooleanObject.java.i
 data/src/share/back/inStream.c.i
-data/src/share/classes/javax/imageio/stream/ImageOutputStream.java.i
-data/test/java/lang/instrument/ATestCaseScaffold.java.i
+data/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Encoder.java.i
+data/test/java/rmi/server/RMIClassLoader/useCodebaseOnly/UseCodebaseOnly_Stub.java.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpPdu.java.i
 data/test/java/util/ResourceBundle/Bug4168625Resource3_en.java.i
 data/src/share/native/sun/font/layout/StateTableProcessor.h.i
-data/src/share/classes/com/sun/java/swing/plaf/motif/MotifRadioButtonMenuItemUI.java.i
-data/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibEntry.java.i
+data/test/java/lang/ThreadLocal/TestThreadId.java.i
+data/src/share/classes/sun/reflect/generics/reflectiveObjects/WildcardTypeImpl.java.i
 data/test/javax/swing/JScrollBar/6542335/bug6542335.java.i
-data/src/share/native/common/check_version.c.i
+data/test/sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java.i
 data/src/share/classes/javax/swing/plaf/metal/sounds/FrameMinimize.wav.i
 data/test/javax/management/modelmbean/SimpleModelMBean/SimpleModelMBeanCommand.java.i
-data/make/com/sun/tools/attach/FILES_java.gmk.i
-data/src/share/classes/sun/security/pkcs11/P11KeyGenerator.java.i
-data/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties.i
+data/test/com/sun/jdi/sde/MangleTest.java.i
+data/test/sun/tools/jstat/printCompilationOutput1.awk.i
+data/test/sun/security/ssl/sanity/pluggability/CheckSSLContextExport.java.i
+data/src/share/classes/javax/naming/LinkLoopException.java.i
 data/test/java/util/Deque/ChorusLine.java.i
 data/src/share/classes/sun/text/resources/FormatData_es_CL.java.i
-data/src/share/classes/sun/security/x509/GeneralSubtrees.java.i
-data/src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java.i
+data/src/share/classes/sun/text/resources/FormatData_th_TH_TH.java.i
+data/src/share/classes/sun/security/krb5/internal/crypto/ArcFourHmacEType.java.i
 data/src/solaris/sample/dtrace/hotspot_jni/CriticalSection_slow.d.i
 data/test/sun/tools/jps/jps-l_1.sh.i
-data/src/share/classes/javax/swing/plaf/multi/MultiInternalFrameUI.java.i
+data/src/share/native/sun/awt/medialib/mlib_ImageClipping.h.i
 data/test/javax/print/applet/YesNo.java.i
 data/src/share/classes/sun/security/jgss/krb5/Krb5CredElement.java.i
-data/make/sun/awt/Depend.mak.i
+data/src/share/classes/javax/swing/plaf/multi/MultiComboBoxUI.java.i
 data/src/share/native/sun/font/layout/KhmerLayoutEngine.h.i
 data/src/share/classes/sun/java2d/cmm/lcms/LCMSImageLayout.java.i
-data/src/share/classes/sun/security/krb5/internal/crypto/Aes256CtsHmacSha1EType.java.i
-data/src/windows/classes/sun/java2d/windows/WinBackBuffer.java.i
-data/test/java/lang/management/ThreadMXBean/Utils.java.i
-data/src/share/classes/java/awt/geom/ArcIterator.java.i
-data/test/javax/management/remote/mandatory/subjectDelegation/policy11.i
-data/src/share/classes/com/sun/tools/example/debug/tty/EventNotifier.java.i
-data/src/share/demo/jfc/FileChooserDemo/FileChooserDemo.java.i
+data/src/solaris/doc/sun/man/man1/ja/jstatd.1.i
+data/src/share/classes/javax/sql/StatementEvent.java.i
+data/src/share/classes/javax/swing/plaf/metal/MetalMenuBarUI.java.i
+data/test/sun/management/jmxremote/bootstrap/jmxremote_ssltest06_ok.access.in.i
+data/test/sun/net/www/protocol/file/GetContentLength.java.i
+data/src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp.i
+data/test/sun/nio/cs/OLD/IBM970_OLD.java.i
 data/test/java/io/Serializable/modifyStaticFields/ModifyStaticFields.java.i
-data/src/share/classes/java/awt/datatransfer/FlavorMap.java.i
+data/src/solaris/classes/sun/awt/motif/X11KSC5601.java.i
 data/test/sun/security/pkcs11/nss/lib/linux-amd64/libsoftokn3.chk.i
 data/src/share/classes/java/security/cert/CertificateEncodingException.java.i
 data/test/java/nio/file/attribute/AclFileAttributeView/Basic.java.i
-data/src/solaris/native/sun/awt/awt_motif.c.i
+data/test/java/net/Authenticator/B4678055.java.i
 data/test/java/util/PluggableLocale/providersrc/FooNumberFormat.java.i
 data/src/share/native/com/sun/tools/jdi/SharedMemoryConnection.c.i
 data/test/java/lang/instrument/MakeJAR.sh.i
-data/test/org/openjdk/jigsaw/library.sh.i
-data/make/modules/tools/src/com/sun/classanalyzer/ClassAnalyzer.java.i
-data/src/share/classes/sun/security/x509/SubjectKeyIdentifierExtension.java.i
-data/src/share/classes/javax/security/auth/login/AccountException.java.i
-data/src/share/classes/javax/swing/text/WhitespaceBasedBreakIterator.java.i
+data/src/share/classes/java/awt/print/Paper.java.i
+data/make/sun/org/mozilla/Makefile.i
+data/test/sun/security/x509/X500Name/NullX500Name.java.i
+data/test/com/sun/security/sasl/Cram.java.i
+data/test/java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.java.i
 data/src/share/classes/sun/jvmstat/monitor/IntegerMonitor.java.i
 data/src/windows/native/sun/awt/splashscreen/splashscreen_sys.c.i
-data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/PKIXExtendedTM.java.i
-data/src/share/classes/sun/tools/tree/CheckContext.java.i
+data/test/javax/management/remote/mandatory/passwordAccessFile/password.properties.i
+data/test/sun/security/ssl/sanity/interop/CipherTest.java.i
 data/src/share/bin/defines.h.i
 data/src/share/classes/java/awt/doc-files/RadialGradientPaint-1.png.i
-data/test/sun/management/HotspotRuntimeMBean/GetSafepointSyncTime.java.i
-data/test/java/lang/management/ThreadMXBean/MyOwnSynchronizer.java.i
-data/src/share/classes/com/sun/jmx/snmp/agent/SnmpIndex.java.i
-data/test/sun/security/pkcs11/KeyStore/BasicData/ca2.cert.i
-data/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java.i
-data/test/java/beans/PropertyEditor/TestFloatClassValue.java.i
-data/src/share/classes/sun/jkernel/DigestOutputStream.java.i
-data/src/share/classes/java/nio/channels/AsynchronousByteChannel.java.i
+data/test/sun/tools/jstat/usage.out.i
+data/test/javax/crypto/Cipher/ByteBuffersNull.java.i
+data/make/tools/src/build/tools/jdwpgen/ClassObjectTypeNode.java.i
+data/src/share/classes/java/lang/CharSequence.java.i
+data/src/share/classes/javax/swing/text/ZoneView.java.i
+data/test/java/lang/ClassLoader/deadlock/SupAlice.java.i
+data/test/javax/management/mxbean/LeakTest.java.i
+data/src/share/demo/management/FullThreadDump/Deadlock.java.i
 data/src/solaris/classes/sun/tools/attach/SolarisVirtualMachine.java.i
 data/src/share/native/sun/font/AccelGlyphCache.h.i
-data/src/share/classes/javax/swing/plaf/metal/sounds/OptionPaneWarning.wav.i
-data/src/share/classes/java/awt/doc-files/modal-example1.gif.i
+data/src/share/classes/sun/tools/jconsole/resources/JConsoleResources.java.i
+data/src/share/classes/java/rmi/registry/RegistryHandler.java.i
 data/test/sun/tools/jstat/fileURITest1.awk.i
-data/test/java/rmi/activation/ActivationGroupDesc/checkDefaultGroupName/CheckDefaultGroupName.java.i
-data/src/share/classes/java/lang/Exception.java.i
-data/test/sun/security/pkcs11/KeyStore/BasicData/p11-ibutton.txt.i
-data/src/share/classes/java/awt/image/TileObserver.java.i
-data/src/windows/native/sun/windows/README.JNI.i
+data/test/java/io/Serializable/InvalidClassException/noargctor/NonSerialize/ProtectedCtor.java.i
+data/src/share/classes/java/awt/event/InvocationEvent.java.i
+data/src/share/classes/sun/security/x509/X509AttributeName.java.i
+data/make/tools/swing-beans/beaninfo/images/JListMono16.gif.i
+data/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c.i
+data/test/java/lang/Class/forName/classes/Z.class.i
+data/test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java.i
+data/src/share/demo/jvmti/waiters/Thread.cpp.i
 data/test/java/nio/Buffer/BasicByte.java.i
 data/test/java/util/logging/ClassLoaderLeakTest.java.i
-data/src/share/sample/scripting/scriptpad/src/scripts/linewrap.js.i
+data/test/java/security/cert/CertPathValidator/targetConstraints/ValidateTargetConstraints.java.i
 data/test/java/lang/String/NonCharacterMapping.java.i
 data/src/solaris/doc/sun/man/man1/jmap.1.i
-data/src/share/classes/java/io/package.html.i
+data/make/common/shared/Defs-solaris.gmk.i
 data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU16U16Func.c.i
-data/test/com/sun/servicetag/TestLoadFromXML.java.i
-data/src/share/classes/java/io/InterruptedIOException.java.i
+data/test/javax/management/mxbean/GenericTypeTest.java.i
 data/src/solaris/native/sun/awt/awt_util.h.i
 data/src/share/classes/sun/io/ByteToCharCp922.java.i
 data/test/java/security/KeyPairGenerator/GenerateKeypair.java.i
 data/src/share/classes/sun/io/CharToByteMS936.java.i
-data/src/share/demo/jfc/Metalworks/resources/HelpFiles/toc.html.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/TransformationException.java.i
+data/src/share/classes/com/sun/java/swing/plaf/motif/icons/image-failed.png.i
+data/test/java/rmi/reliability/benchmark/bench/rmi/ProxyArrayCalls.java.i
 data/src/share/demo/applets/NervousText/NervousText.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_de_AT.properties.i
 data/src/share/classes/com/sun/media/sound/UlawCodec.java.i
-data/src/share/classes/sun/awt/ModalityListener.java.i
-data/src/share/classes/sun/security/krb5/internal/crypto/Aes256.java.i
-data/test/javax/management/openmbean/MBeanFeatureInfoSerialStore.java.i
+data/test/tools/launcher/VerifyExceptions.java.i
+data/src/share/classes/sun/text/resources/FormatData_sr_ME.java.i
+data/test/sun/tools/jps/jps-m_Output2.awk.i
 data/src/share/classes/sun/awt/im/InputMethodAdapter.java.i
 data/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ko.properties.i
 data/src/share/classes/sun/tools/javac/SourceClass.java.i
 data/test/java/lang/management/ThreadMXBean/ThreadDump.java.i
-data/test/java/util/Locale/data/deflocale.rhel5.i
+data/test/sun/nio/cs/Test6254467.java.i
 data/test/sun/security/pkcs11/KeyStore/SecretKeysBasic.java.i
+data/src/share/classes/java/io/FileOutputStream.java.i
 data/src/share/classes/sun/reflect/generics/visitor/TypeTreeVisitor.java.i
 data/src/share/classes/javax/net/ServerSocketFactory.java.i
-data/src/share/demo/jvmti/hprof/hprof_frame.c.i
-data/src/share/classes/javax/swing/text/rtf/charsets/cpg437.txt.i
-data/src/share/classes/sun/util/resources/LocaleNames_no.properties.i
-data/src/solaris/native/sun/xawt/XToolkit.c.i
-data/test/javax/management/namespace/namespace.policy.i
-data/src/share/classes/javax/security/auth/SubjectDomainCombiner.java.i
-data/src/share/classes/javax/swing/table/AbstractTableModel.java.i
-data/test/sun/security/pkcs11/nss/p11-nss.txt.i
+data/test/java/rmi/reliability/juicer/Orange.java.i
+data/test/java/security/KeyRep/SerialOld.java.i
+data/test/java/lang/instrument/appendToClassLoaderSearch/A.1.i
+data/src/share/classes/sun/io/ByteToCharCp860.java.i
+data/test/java/rmi/activation/Activatable/forceLogSnapshot/rmid.security.policy.i
+data/make/tools/swing-beans/beaninfo/images/JFormattedTextFieldColor32.gif.i
+data/src/share/demo/applets/SpreadSheet/SpreadSheet.java.i
 data/test/java/io/charStreams/BufferSizes.java.i
 data/test/sun/security/pkcs11/nss/lib/solaris-sparc/libfreebl_hybrid_3.so.i
 data/test/java/io/Externalizable/compatibility/old.ser.i
-data/src/share/classes/com/sun/security/sasl/ExternalClient.java.i
-data/test/java/io/Serializable/evolution/AddedField/ReadAddedField.java.i
+data/src/solaris/native/sun/java2d/loops/vis_UshortGray_FromRgb.c.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.policy.i
 data/src/share/classes/com/sun/jmx/defaults/ServiceName.java.i
 data/src/share/classes/javax/swing/text/StyleContext.java.i
-data/src/share/classes/sun/reflect/generics/reflectiveObjects/NotImplementedException.java.i
+data/src/share/native/sun/java2d/cmm/lcms/cmslut.c.i
 data/test/java/lang/ThreadLocal/InitialValue.java.i
 data/src/share/classes/java/awt/peer/ScrollPanePeer.java.i
-data/src/share/classes/com/sun/jndi/ldap/Ber.java.i
-data/make/tools/swing-beans/beaninfo/images/JProgressBarMono16.gif.i
+data/src/windows/native/sun/windows/awt_KeyEvent.cpp.i
+data/src/share/classes/javax/net/ssl/SSLSessionBindingListener.java.i
 data/test/java/math/BigDecimal/CompareToTests.java.i
-data/make/tools/src/build/tools/jdwpgen/ReferenceIDTypeNode.java.i
+data/test/javax/sql/rowset/serial/SerialClob/SetCharacterStream.java.i
+data/src/share/lib/images/cursors/motif_MoveDrop32x32.gif.i
 data/src/share/classes/sun/io/ByteToCharMacRomania.java.i
-data/test/java/lang/ThreadGroup/SetMaxPriority.java.i
+data/test/java/nio/Buffer/SwapMicroBenchmark.java.i
 data/test/sun/security/pkcs11/nss/lib/windows-i586/softokn3.dll.d
 data/test/sun/security/pkcs11/KeyStore/ClientAuthData/cert8.db.i
-data/src/share/classes/javax/security/auth/PrivateCredentialPermission.java.i
+data/src/share/classes/sun/rmi/server/resources/rmid_ja.properties.i
 data/src/windows/native/sun/java2d/windows/GDIRenderer.cpp.i
-data/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java.i
-data/src/solaris/native/sun/java2d/j2d_md.h.i
+data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ProtocolVersion/HttpsProtocols.java.i
+data/test/java/util/BitSet/PreviousBits.java.i
+data/test/java/security/SecureRandom/Serialize.java.i
+data/src/share/classes/java/awt/AWTEventMulticaster.java.i
 data/test/java/util/Hashtable/SerializationDeadlock.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/Init.java.i
-data/test/java/security/cert/PKIXParameters/InvalidParameters.java.i
-data/test/com/sun/net/httpserver/Test7a.java.i
+data/src/share/native/sun/font/layout/ShapingTypeData.cpp.i
+data/src/share/classes/com/sun/java/swing/plaf/gtk/XColors.java.i
+data/test/java/beans/PropertyChangeSupport/1.5.0_10.ser.i
+data/test/sun/nio/cs/LeftOverSurrogate.java.i
 data/test/java/util/PluggableLocale/GenericTest.sh.i
-data/src/share/classes/sun/tools/java/BinaryMember.java.i
-data/test/sun/tools/jrunscript/jrunscript-helpTest.sh.i
+data/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUp.c.i
+data/test/javax/management/openmbean/EqualsTest.java.i
 data/test/sun/net/InetAddress/nameservice/SimpleNameService.java.i
-data/test/java/beans/XMLEncoder/javax_swing_plaf_FontUIResource.java.i
-data/src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_es.properties.i
+data/test/java/lang/reflect/Method/invoke/ErrorInInvoke.java.i
+data/test/javax/security/auth/Subject/doAs/policy.i
 data/src/solaris/hpi/include/largefile_linux.h.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/ReferenceList.java.i
 data/src/solaris/classes/sun/java2d/xr/XRGraphicsConfig.java.i
@@ -20524,38 +20596,41 @@ data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SetClientM
 data/test/java/util/concurrent/Exchanger/LoopHelpers.java.i
 data/test/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiTableHeaderUI.java.i
-data/test/com/sun/jdi/ArrayRangeTest.java.i
-data/src/share/classes/java/awt/dnd/DragSourceAdapter.java.i
-data/src/solaris/doc/sun/man/man1/ja/native2ascii.1.i
+data/test/sun/tools/jrunscript/jrunscript-argsTest.sh.i
+data/test/java/awt/GraphicsEnvironment/PreferLocaleFonts.java.i
+data/test/sun/tools/jstatd/jstatdDefaults.sh.i
 data/test/javax/swing/JLayer/6875716/bug6875716.java.i
 data/test/sun/nio/cs/Decode.java.i
-data/src/share/classes/sun/net/httpserver/HttpConnection.java.i
+data/src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h.i
 data/src/share/classes/sun/nio/ch/SelChImpl.java.i
 data/test/java/util/Collections/EmptyCollectionSerialization.java.i
+data/src/share/classes/sun/text/resources/FormatData_en_GB.java.i
 data/src/share/classes/sun/security/rsa/RSAPadding.java.i
 data/src/share/classes/com/sun/jndi/ldap/UnsolicitedResponseImpl.java.i
 data/test/java/beans/XMLEncoder/javax_swing_JTree.java.i
-data/src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java.i
-data/test/com/sun/jdi/MonitorEventTest.java.i
-data/test/com/sun/jdi/FetchLocals.java.i
+data/test/java/util/EnumSet/EnumSetBash.java.i
+data/test/java/util/concurrent/ConcurrentLinkedQueue/LoopHelpers.java.i
+data/make/netbeans/jmx/README.i
+data/test/javax/swing/JPopupMenu/6987844/bug6987844.java.i
 data/make/tools/swing-beans/beaninfo/images/JListColor16.gif.i
 data/test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.sh.i
 data/src/share/classes/javax/print/attribute/standard/PageRanges.java.i
-data/src/solaris/bin/ergo.h.i
-data/src/share/classes/sun/java2d/pipe/hw/ExtendedBufferCapabilities.java.i
+data/test/java/util/Collections/CheckedIdentityMap.java.i
+data/src/windows/native/sun/windows/awt_Cursor.h.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/trusted.jks.i
 data/src/share/classes/sun/text/resources/FormatData_uk_UA.java.i
-data/src/share/classes/com/sun/imageio/plugins/jpeg/DQTMarkerSegment.java.i
-data/make/java/zip/reorder-i586.i
-data/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java.i
+data/test/sun/security/provider/PolicyFile/Comparator.java.i
+data/test/javax/swing/border/Test4243289.java.i
+data/src/share/native/java/lang/fdlibm/src/s_logb.c.i
 data/test/sun/tools/jstat/gcOutput1.awk.i
+data/test/com/sun/crypto/provider/TLS/TestKeyMaterial.java.i
 data/test/sun/nio/cs/TestCp834_SBCS.java.i
 data/test/java/beans/PropertyEditor/TestFloatTypeValue.java.i
-data/src/share/classes/javax/management/AttributeChangeNotificationFilter.java.i
-data/src/share/classes/javax/print/attribute/standard/MultipleDocumentHandling.java.i
+data/src/share/classes/java/util/Enumeration.java.i
+data/test/java/rmi/testlibrary/RMID.java.i
 data/src/share/classes/com/sun/jdi/connect/VMStartException.java.i
+data/src/share/classes/sun/tools/tree/NegativeExpression.java.i
 data/src/share/classes/sun/io/CharToByteCp918.java.i
-data/test/java/util/Vector/ComodifiedRemoveAllElements.java.i
 data/src/share/classes/java/text/DecimalFormatSymbols.java.i
 data/src/share/classes/java/lang/AbstractStringBuilder.java.i
 data/src/share/classes/javax/swing/plaf/metal/sounds/OptionPaneInformation.wav.i
@@ -20566,231 +20641,196 @@ data/make/tools/CharsetMapping/IBM838.map.i
 data/test/javax/management/remote/mandatory/version/ImplVersionReader.java.i
 data/src/share/classes/com/sun/crypto/provider/DHParameters.java.i
 data/src/share/classes/javax/management/MBeanServerDelegateMBean.java.i
-data/src/share/classes/com/sun/jmx/mbeanserver/SunJmxMBeanServer.java.i
+data/src/windows/classes/java/net/DualStackPlainDatagramSocketImpl.java.i
 data/test/sun/security/tools/keytool/standard.sh.i
-data/src/share/native/sun/awt/splashscreen/splashscreen_gif.c.i
-data/src/share/sample/scripting/scriptpad/nbproject/file-targets.xml.i
-data/src/share/classes/sun/reflect/generics/scope/ClassScope.java.i
+data/src/share/classes/javax/naming/NamingException.java.i
+data/src/share/classes/sun/nio/fs/AbstractWatchService.java.i
+data/test/java/lang/Compare.java.i
 data/src/share/native/sun/awt/medialib/mlib_ImageAffine_NN_Bit.c.i
-data/src/share/classes/javax/swing/text/rtf/RTFAttributes.java.i
+data/src/share/classes/sun/tools/tree/ShortExpression.java.i
 data/test/java/util/StringTokenizer/FormFeed.java.i
 data/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.cpp.i
+data/make/java/java/reorder-i586.i
 data/src/share/classes/sun/util/resources/CurrencyNames_es_UY.properties.i
-data/src/share/classes/javax/swing/DelegatingDefaultFocusManager.java.i
+data/src/share/modules/jdk/module-info.java.i
 data/test/java/nio/file/attribute/UserDefinedFileAttributeView/Basic.java.i
 data/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableStreamCipher.java.i
 data/src/share/classes/com/sun/jndi/ldap/pool/PooledConnectionFactory.java.i
-data/src/share/demo/jvmti/index.html.i
+data/test/javax/swing/JTable/6777378/bug6777378.java.i
 data/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHostClient.java.i
 data/src/share/classes/com/sun/jmx/namespace/RoutingMBeanServerConnection.java.i
 data/test/sun/security/provider/PolicyFile/SelfExpansion.policy.i
 data/make/java/java/reorder-sparcv9.i
-data/src/share/classes/com/sun/jmx/snmp/IPAcl/JDMSecurityDefs.java.i
-data/src/share/classes/com/sun/tools/attach/AgentInitializationException.java.i
+data/src/share/classes/sun/util/resources/CurrencyNames_en_PH.properties.i
+data/test/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java.i
+data/src/share/classes/com/sun/security/jgss/jgss-overview.html.i
 data/test/sun/nio/cs/FindASCIIReplBugs.java.i
 data/test/sun/security/provider/certpath/ReverseBuilder/prjM2divE.i
-data/src/share/classes/java/lang/CloneNotSupportedException.java.i
+data/src/share/classes/javax/swing/text/IconView.java.i
+data/src/share/classes/javax/swing/plaf/basic/BasicDesktopIconUI.java.i
 data/test/javax/management/query/InstanceOfExpTest.java.i
-data/src/share/classes/sun/net/www/URLConnection.java.i
+data/src/solaris/classes/sun/awt/X11CustomCursor.java.i
+data/src/share/classes/javax/net/ssl/SSLContext.java.i
 data/test/java/lang/management/ThreadMXBean/ThreadLists.java.i
-data/src/share/classes/sun/management/jmxremote/SingleEntryRegistry.java.i
+data/src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BC_S16.c.i
+data/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java.i
 data/test/java/util/ResourceBundle/RestrictedBundleTest.html.i
-data/src/share/classes/com/sun/media/sound/AudioSynthesizerPropertyInfo.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/utils/CachedXPathAPIHolder.java.i
+data/test/java/security/SecureClassLoader/DefineClassByteBuffer.java.i
 data/test/javax/security/auth/login/LoginContext/ConfigConstructor.java.i
-data/test/java/io/BufferedReader/ReadLineSync.java.i
-data/src/solaris/lib/sdp/sdp.conf.template.i
-data/test/sun/security/pkcs/EncryptedPrivateKeyInfo/EncryptedPKInfoEqualsHashCode.java.i
+data/src/solaris/classes/sun/awt/motif/X11GB2312.java.i
+data/src/share/classes/javax/print/package.html.i
 data/src/share/classes/sun/nio/cs/ext/GBK.java.i
 data/src/solaris/npt/utf_md.h.i
 data/test/java/lang/instrument/ilib/Info.java.i
 data/make/common/BuildNativePackages.gmk.i
-data/test/java/nio/charset/coders/ResetISO2022JP.java.i
+data/test/java/beans/XMLEncoder/java_awt_BasicStroke.java.i
 data/test/javax/sound/midi/Gervill/RiffReaderWriter/Available.java.i
-data/test/java/lang/ClassLoader/resource.jar.i
+data/test/java/util/concurrent/ConcurrentHashMap/DistinctEntrySetElements.java.i
 data/test/sun/tools/jstat/options1.out.i
 data/src/windows/classes/sun/java2d/d3d/D3DPaints.java.i
 data/test/java/nio/file/Path/SBC.java.i
-data/src/share/classes/com/sun/tools/extcheck/ExtCheck.java.i
-data/test/java/net/Socks/SocksServer.java.i
-data/make/tools/reorder/tools/util-i586.il.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/KeyStoreResolver.java.i
+data/test/java/util/jar/JarFile/test.jar.i
+data/make/tools/swing-beans/beaninfo/images/JLayeredPaneColor16.gif.i
 data/src/share/classes/com/sun/jmx/snmp/SnmpPduFactory.java.i
 data/src/share/classes/sun/nio/ch/Cancellable.java.i
-data/src/solaris/hpi/include/largefile.h.i
-data/src/share/classes/com/sun/tools/example/debug/bdi/Utils.java.i
+data/test/java/io/BufferedReader/Ready.java.i
+data/test/com/sun/jdi/EnumTest.java.i
 data/src/share/modules/jdk.boot/module-info.java.i
 data/src/share/classes/sun/util/PreHashedMap.java.i
-data/make/tools/src/build/tools/stripproperties/StripProperties.java.i
+data/test/javax/management/remote/mandatory/provider/META-INF/services/javax.management.remote.JMXConnectorProvider.i
+data/src/share/classes/sun/net/www/content/audio/x_aiff.java.i
 data/src/share/classes/sun/font/FontStrikeDisposer.java.i
-data/test/java/nio/channels/SocketChannel/Stream.java.i
-data/test/java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.java.i
+data/test/javax/xml/crypto/dsig/data/xml-stylesheet.b64.i
+data/test/java/awt/im/JTextFieldTest.html.i
 data/test/java/awt/Frame/FrameSize/TestFrameSize.java.i
 data/src/share/classes/java/net/FileNameMap.java.i
 data/make/mkdemo/management/README.txt.i
 data/test/sun/security/rsa/InvalidBitString.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsOptionPaneUI.java.i
-data/src/share/classes/java/lang/ClassFormatError.java.i
-data/src/share/classes/com/sun/net/httpserver/package-info.java.i
-data/test/java/lang/InheritableThreadLocal/Basic.java.i
-data/src/share/classes/javax/swing/text/Keymap.java.i
+data/src/share/classes/sun/security/x509/ReasonFlags.java.i
+data/src/share/sample/README.i
+data/src/share/classes/javax/swing/event/RowSorterListener.java.i
+data/src/share/classes/java/awt/doc-files/RadialGradientPaint-4.png.i
+data/test/sun/rmi/rmic/defaultStubVersion/run.sh.i
+data/src/share/classes/java/awt/Composite.java.i
 data/src/share/classes/sun/security/pkcs11/wrapper/CK_X9_42_DH2_DERIVE_PARAMS.java.i
 data/src/share/classes/java/lang/StackOverflowError.java.i
 data/test/java/rmi/testlibrary/README.jcov.i
 data/test/java/rmi/dgc/retryDirtyCalls/RetryDirtyCalls.java.i
 data/test/java/util/Locale/Bug4184873_he.i
-data/test/java/util/ResourceBundle/TestResource_it.java.i
-data/make/tools/CharsetMapping/IBM737.map.i
-data/src/share/classes/java/nio/channels/AsynchronousFileChannel.java.i
+data/src/share/classes/com/oracle/net/Sdp.java.i
+data/make/sun/jpeg/mapfile-vers.i
 data/test/java/rmi/reliability/benchmark/bench/rmi/DoubleArrayCalls.java.i
-data/test/java/rmi/activation/Activatable/restartCrashedService/RestartCrashedService.java.i
-data/make/com/sun/jndi/Makefile.i
-data/src/solaris/classes/sun/awt/X11/MWMConstants.java.i
-data/make/sun/org/Makefile.i
+data/src/share/classes/sun/io/ByteToCharUTF8.java.i
+data/test/java/util/concurrent/ConcurrentQueues/GCRetention.java.i
+data/src/windows/classes/sun/awt/windows/WDesktopProperties.java.i
+data/src/share/classes/javax/print/attribute/PrintServiceAttribute.java.i
 data/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/CanonicalizerBase.java.i
-data/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java.i
+data/src/solaris/native/sun/java2d/opengl/GLXGraphicsConfig.c.i
 data/src/share/classes/sun/text/resources/FormatData_sr_Latn_BA.java.i
-data/test/java/lang/annotation/Missing/A.java.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/InvalidTransformException.java.i
-data/src/solaris/native/sun/awt/awt_motif.h.i
-data/make/netbeans/jarzip/build.xml.i
+data/src/share/classes/java/io/ByteArrayOutputStream.java.i
+data/src/share/classes/com/sun/jmx/remote/internal/ClientListenerInfo.java.i
+data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java.i
+data/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/security.policy.i
+data/src/share/demo/applets/GraphicsTest/AppletFrame.java.i
 data/src/share/classes/com/sun/media/sound/services/javax.sound.midi.spi.MidiFileReader.i
 data/src/share/classes/sun/java2d/pipe/AATileGenerator.java.i
 data/src/share/classes/javax/swing/event/ListSelectionEvent.java.i
 data/test/com/sun/security/sasl/digest/log.properties.i
-data/src/share/demo/jvmti/minst/sample.makefile.txt.i
+data/src/share/classes/sun/nio/fs/DynamicFileAttributeView.java.i
 data/src/solaris/classes/sun/awt/motif/MTextFieldPeer.java.i
 data/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_es.properties.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsSpinnerUI.java.i
-data/src/share/classes/java/awt/print/PrinterIOException.java.i
+data/test/java/beans/XMLEncoder/javax_swing_border_TitledBorder.java.i
+data/src/share/classes/sun/reflect/misc/MethodUtil.java.i
+data/test/com/sun/jdi/FetchLocals.java.i
 data/src/share/classes/javax/sql/rowset/CachedRowSet.java.i
-data/test/java/util/zip/StreamIOAfterClose.java.i
+data/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformXPointer.java.i
 data/test/java/lang/Math/PowTests.java.i
 data/test/java/net/ServerSocket/TestAfterClose.java.i
 data/src/linux/doc/man/ja/schemagen.1.i
 data/src/windows/classes/sun/nio/ch/WindowsAsynchronousChannelProvider.java.i
 data/test/sun/jvmstat/monitor/VmIdentifier/VmIdentifierCreateResolve.java.i
 data/src/share/classes/sun/java2d/loops/DrawGlyphListAA.java.i
-data/src/share/classes/sun/nio/ch/SctpMessageInfoImpl.java.i
-data/src/share/classes/javax/swing/doc-files/BoxLayout-1.gif.i
+data/test/java/nio/charset/StandardCharsets/Standard.java.i
+data/src/windows/native/java/net/Inet6AddressImpl.c.i
 data/test/java/lang/StringCoding/Enormous.java.i
 data/test/java/net/Socket/InheritHandle.java.i
-data/src/share/classes/sun/io/CharToByteCp948.java.i
+data/src/share/native/java/io/FileInputStream.c.i
 data/test/sun/nio/cs/OLD/IBM948_OLD.java.i
-data/test/sun/nio/cs/StrCodingBenchmark.java.i
+data/test/java/text/Bidi/Bug7042148.java.i
 data/src/solaris/native/sun/jdga/jdga.h.i
 data/make/tools/Makefile.i
 data/src/share/classes/java/util/AbstractList.java.i
-data/test/com/sun/jdi/ClassLoaderClassesTest.java.i
-data/test/java/util/Locale/LocaleEnhanceTest.java.i
-data/test/sun/rmi/rmic/RMIGenerator/RmicDefault.java.i
-data/src/share/classes/sun/nio/cs/ext/JIS_X_0212_MS5022X_Encoder.java.i
+data/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/StateTestService.java.i
+data/test/java/nio/charset/Charset/Default.java.i
 data/src/share/native/sun/java2d/pipe/Region.c.i
-data/src/share/classes/sun/util/resources/LocaleNames_pl.properties.i
+data/src/share/classes/java/sql/SQLIntegrityConstraintViolationException.java.i
 data/src/share/back/ThreadGroupReferenceImpl.h.i
-data/src/share/classes/javax/print/attribute/Size2DSyntax.java.i
-data/make/common/Release.gmk.i
-data/src/share/classes/sun/reflect/UnsafeByteFieldAccessorImpl.java.i
-data/test/java/rmi/activation/Activatable/nonExistentActivatable/ActivateMe.java.i
-data/src/share/classes/com/sun/jdi/event/ClassUnloadEvent.java.i
-data/test/java/util/ResourceBundle/Bug6299235Test.java.i
-data/test/tools/pack200/pack200-verifier/src/xmlkit/ClassSyntax.java.i
+data/test/java/rmi/activation/Activatable/downloadParameterClass/group.security.policy.i
+data/src/share/classes/javax/sound/midi/spi/package.html.i
+data/test/sun/java2d/cmm/ColorConvertOp/LRGB555.png.i
+data/test/com/sun/tools/attach/ProviderTests.sh.i
+data/test/java/util/zip/ZipInputStream/Constructor.java.i
 data/src/share/classes/sun/reflect/UnsafeQualifiedCharacterFieldAccessorImpl.java.i
-data/src/share/classes/com/sun/media/sound/WaveFileReader.java.i
-data/src/share/classes/java/nio/channels/FileChannel.java.i
+data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/effects/InnerGlowEffect.java.i
+data/test/sun/security/provider/PolicyParser/EncodeURL.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemoryGCCall.java.i
-data/src/share/native/sun/security/jgss/wrapper/GSSLibStub.c.i
+data/test/javax/script/Test7.java.i
 data/src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_TW.properties.i
-data/test/java/io/Serializable/InvalidClassException/noargctor/NonSerialize/ProtectedCtor.java.i
-data/make/tools/swing-beans/beaninfo/images/JListMono16.gif.i
+data/test/java/rmi/activation/ActivationGroupDesc/checkDefaultGroupName/CheckDefaultGroupName.java.i
+data/test/sun/security/pkcs11/KeyStore/BasicData/p11-ibutton.txt.i
 data/test/java/beans/XMLEncoder/Test4822050.java.i
 data/make/tools/swing-nimbus/classes/org/jdesktop/swingx/designer/paint/AbstractGradient.java.i
+data/src/share/classes/com/sun/crypto/provider/JarVerifier.java.i
 data/src/share/classes/javax/naming/directory/SearchControls.java.i
 data/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java.i
-data/test/java/util/Formatter/BasicDateTime.java.i
+data/src/share/classes/sun/security/util/Password.java.i
 data/test/javax/sound/midi/Gervill/SoftTuning/Load5.java.i
 data/src/share/demo/java2d/J2DBench/src/j2dbench/ResultSet.java.i
 data/src/share/classes/sun/util/resources/CalendarData_cs.properties.i
-data/test/java/util/BitSet/PreviousBits.java.i
-data/src/share/classes/com/sun/media/sound/AiffFileWriter.java.i
-data/test/javax/swing/JColorChooser/Test4461329.java.i
-data/src/windows/lib/tzmappings.i
-data/src/share/classes/sun/security/pkcs11/wrapper/CK_SSL3_MASTER_KEY_DERIVE_PARAMS.java.i
+data/src/share/classes/javax/swing/SwingUtilities.java.i
+data/make/tools/swing-beans/beaninfo/images/JScrollPaneColor32.gif.i
+data/test/tools/pack200/dyn.jar.i
+data/src/solaris/native/common/gdefs_md.h.i
+data/test/com/sun/jdi/ArrayRangeTest.java.i
+data/test/sun/security/pkcs11/sslecc/CipherTest.java.i
+data/src/share/classes/java/awt/DefaultKeyboardFocusManager.java.i
 data/src/windows/native/sun/windows/awt_GDIObject.cpp.i
 data/test/java/nio/channels/FileChannel/MapOverEnd.java.i
 data/src/share/classes/javax/naming/ldap/SortControl.java.i
-data/test/com/sun/crypto/provider/TLS/TestKeyMaterial.java.i
-data/test/java/util/zip/FlaterCriticalArray.java.i
+data/test/java/lang/String/SBConstructor.java.i
+data/make/java/math/Makefile.i
 data/test/java/io/charStreams/ABCOutputStream.java.i
-data/src/share/demo/jvmti/agent_util/README.txt.i
-data/src/share/classes/com/sun/org/apache/xml/internal/security/encryption/EncryptedType.java.i
+data/test/javax/management/modelmbean/ModelMBeanInfoSupport/GetAllDescriptorsTest.java.i
+data/test/java/rmi/activation/Activatable/createPrivateActivable/group.security.policy.i
 data/src/solaris/classes/sun/java2d/jules/JulesPathBuf.java.i
+data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsMenuBarUI.java.i
+data/src/share/classes/java/util/LinkedHashMap.java.i
 data/src/share/classes/javax/swing/plaf/multi/MultiRootPaneUI.java.i
 data/src/share/classes/sun/management/snmp/jvmmib/JvmRTLibraryPathTableMeta.java.i
 data/test/java/security/BasicPermission/Homogeneity.java.i
-data/test/java/lang/instrument/appendToClassLoaderSearch/ClassUnloadTest.sh.i
-data/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java.i
+data/src/share/classes/com/sun/java/util/jar/pack/Attribute.java.i
+data/test/javax/sound/midi/Gervill/ModelStandardTransform/TransformConcave.java.i
 data/src/share/classes/com/sun/nio/file/ExtendedWatchEventModifier.java.i
 data/test/java/beans/PropertyChangeSupport/TestSynchronization.java.i
-data/src/share/classes/sun/security/x509/AVA.java.i
-data/src/share/classes/sun/misc/RegexpTarget.java.i
+data/src/share/classes/java/util/spi/LocaleNameProvider.java.i
+data/src/share/classes/com/sun/script/javascript/JavaAdapter.java.i
+data/src/share/classes/sun/tools/jstat/Scale.java.i
 data/src/share/classes/com/sun/tools/attach/package.html.i
-data/src/share/classes/sun/tools/tree/AssignUnsignedShiftRightExpression.java.i
-data/src/share/classes/java/io/BufferedOutputStream.java.i
+data/src/share/classes/com/sun/jmx/snmp/SnmpSecurityException.java.i
+data/test/java/util/zip/input.jar.i
+data/src/share/classes/sun/nio/fs/AbstractPath.java.i
 data/src/share/classes/sun/nio/cs/IBM437.java.i
-data/test/java/net/Inet6Address/B4923906.java.i
-data/test/javax/sound/midi/Gervill/ModelByteBufferWavetable/GetLoopStart.java.i
-data/make/tools/swing-beans/beaninfo/BeanInfoUtils.java.i
-data/test/java/util/zip/ZipFile/GetDirEntry.java.i
-data/src/share/classes/java/security/cert/CertPathValidator.java.i
-data/src/share/classes/java/nio/channels/spi/AbstractSelectionKey.java.i
+data/test/sun/rmi/rmic/RMIGenerator/RmicDefault.java.i
+data/src/share/classes/com/sun/jmx/namespace/NamespaceInterceptor.java.i
+data/test/sun/security/mscapi/KeyStoreCompatibilityMode.java.i
+data/test/java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.java.i
+data/src/share/classes/java/util/EnumSet.java.i
 data/test/java/io/LineNumberInputStream/MarkReset.java.i
-data/src/share/classes/com/sun/java/swing/plaf/windows/WindowsMenuBarUI.java.i
-data/test/java/security/PermissionCollection/Concurrent.java.i
-data/test/sun/security/pkcs11/nss/lib/solaris-sparcv9/libnspr4.so.i
+data/test/java/io/LineNumberReader/Read.java.i
+data/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java.i
 data/test/sun/security/tools/keytool/i18n.java.i
 data/src/share/classes/java/beans/beancontext/BeanContextProxy.java.i
 data/src/share/classes/com/sun/jndi/url/rmi/rmiURLContext.java.i
-data/test/javax/swing/plaf/basic/Test6984643.java.i
-data/src/share/classes/java/lang/invoke/MethodHandleProxies.java.i
-data/src/share/classes/sun/net/RegisteredDomain.java.i
-data/src/solaris/native/common/jdk_util_md.h.i
-data/src/windows/native/common/jdk_util_md.h.i
-data/test/java/awt/image/BufferedImage/TinyScale.java.i
-data/test/java/lang/annotation/TestIncompleteAnnotationExceptionNPE.java.i
-data/test/java/lang/invoke/PermuteArgsTest.java.i
-data/test/java/lang/invoke/ThrowExceptionsTest.java.i
-data/test/java/net/URLClassLoader/B7050028.java.i
-data/test/java/security/Policy/GetPermissions/JarURL.java.i
-data/test/java/security/Policy/GetPermissions/JarURL.policy.i
-data/test/java/security/SignedObject/Correctness.java.i
-data/test/java/security/testlibrary/ProvidersSnapshot.java.i
-data/test/java/util/logging/LoggerResourceBundleRace.java.i
-data/test/java/util/logging/RacingThreadsTest.java.i
-data/test/javax/swing/plaf/nimbus/Test7048204.java.i
-data/test/javax/swing/text/Utilities/bug7045593.java.i
-data/test/sun/java2d/cmm/ProfileOp/SetDataTest.java.i
-data/test/sun/java2d/loops/Bug7049339.java.i
-data/test/sun/security/krb5/tools/ktmissing.sh.i
-data/test/sun/security/pkcs11/Provider/Absolute.cfg.i
-data/test/sun/security/pkcs11/Provider/Absolute.java.i
-data/src/share/classes/java/lang/reflect/Executable.java.i
-data/test/java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java.i
-data/test/java/awt/Component/PaintAll/PaintAll.java.i
-data/test/java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java.i
-data/test/java/lang/reflect/Constructor/Equals.java.i
-data/test/java/net/SocketPermission/Wildcard.java.i
-data/test/java/text/Bidi/Bug7042148.java.i
-data/test/java/text/Bidi/Bug7051769.java.i
-data/test/javax/swing/GroupLayout/7071166/bug7071166.java.i
-data/test/sun/security/krb5/auto/PrincipalNameEquals.java.i
-data/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsProxyStackOverflow.java.i
-data/make/tools/classanalyzer/classanalyzer.html.i
-data/make/tools/classanalyzer/src/com/sun/classanalyzer/JigsawModuleBuilder.java.i
-data/make/tools/classanalyzer/src/com/sun/classanalyzer/PackageInfo.java.i
-data/src/share/classes/java/lang/module/ModuleNotPresentException.java.i
-data/src/share/classes/java/lang/module/RequireOptionalModule.java.i
-data/src/share/classes/sun/tools/jar/ModuleInfo.java.i
-data/test/org/openjdk/jigsaw/hello-optional.sh.i
-data/test/org/openjdk/jigsaw/optional-base.sh.i
-data/test/org/openjdk/jigsaw/optional-jaxp.sh.i
-data/test/org/openjdk/jigsaw/optional-reexport.sh.i
-data/test/org/openjdk/jigsaw/properties.xml.i
+data/src/share/classes/javax/management/DynamicMBean.java.i
diff --git a/jdk/.hg/store/undo b/jdk/.hg/store/undo
index 413c5a9..bd2040b 100644
Binary files a/jdk/.hg/store/undo and b/jdk/.hg/store/undo differ
diff --git a/jdk/.hg/undo.desc b/jdk/.hg/undo.desc
index f8fc0fa..421e889 100644
--- a/jdk/.hg/undo.desc
+++ b/jdk/.hg/undo.desc
@@ -1,3 +1,3 @@
-4707
+4708
 pull
 http://hg.openjdk.java.net/jigsaw/jigsaw/jdk
diff --git a/jdk/.hg/undo.dirstate b/jdk/.hg/undo.dirstate
index 2fe9e49..e7ab5d6 100644
Binary files a/jdk/.hg/undo.dirstate and b/jdk/.hg/undo.dirstate differ
diff --git a/jdk/.hgtags b/jdk/.hgtags
index 049ccc0..0bc01fd 100644
--- a/jdk/.hgtags
+++ b/jdk/.hgtags
@@ -130,3 +130,10 @@ efbf75c24b0f31847c9c403f6dc07dc80551908d jdk7-b143
 539e576793a8e64aaf160e0d6ab0b9723cd0bef0 jdk7-b146
 f097ca2434b1412b12ab4a5c2397ce271bf681e7 jdk7-b147
 2cdbbc4a63592be7f1556fffe37b1253a77bd481 jdk8-b01
+13e70aa1398eb959c54bc68b783ca0eef1286ad2 jdk8-b02
+7989ee9fe673a87f4db3917fa6a005732a6a9b85 jdk8-b03
+fc569517f3cf242f90ce3503b743eb5553938946 jdk8-b04
+0b32369b83d81c226a2e79e730f3a8c0d2595e92 jdk8-b05
+bdb870cc269ef8b221d17a217be89092400b59d2 jdk8-b06
+19f0a3db863cc491affc78b48c4a81a6679b2433 jdk8-b07
+1c023bcd0c5a01ac07bc7eea728aafbb0d8991e9 jdk8-b08
diff --git a/jdk/make/Makefile b/jdk/make/Makefile
index 48416ca..a414b8b 100644
--- a/jdk/make/Makefile
+++ b/jdk/make/Makefile
@@ -69,12 +69,12 @@ debug             -- build the core JDK in 'debug' mode (-g) \n\
 clean             -- remove all built and imported files \n\
 clobber           -- same as clean \n\
 docs              -- run javadoc to generate the JDK documentation \n\
-images            -- build the jdk and jre image directories \n\
+images            -- build the modules image directories \n\
+legacy-images     -- build the legacy jdk and jre image directories (TO BE REMOVED)\n\
 import            -- copy in the pre-built components (e.g. VM) \n\
 import_product    -- copy in the product components \n\
 import_fastdebug  -- copy in the fastdebug components \n\
 import_debug      -- copy in the debug components \n\
-modules           -- build the jdk and jre module images (experimental) \n\
 create_links      -- create softlinks in Solaris 32bit build to 64bit dirs \n\
 "
 
@@ -364,15 +364,15 @@ $(OUTPUTDIR)/test_failures.txt: $(OUTPUTDIR)/test_log.txt
 	@( $(EGREP) '^FAILED:' $< || $(ECHO) "" ) | $(NAWK) 'length>0' > $@
 
 # The resulting full jdk image (legacy or module image)
-JDK_IMAGE_NAME=j2sdk-image
-ifdef BUILD_MODULES
-  JDK_IMAGE_NAME=jdk-module-image
-endif
+JDK_MODULES_IMAGE_NAME=jdk-module-image
+JDK_LEGACY_IMAGE_NAME=j2sdk-image
 
 # Get log file of all tests run
 JDK_TO_TEST := $(shell 							\
-  if [ -d "$(ABS_OUTPUTDIR)/$(JDK_IMAGE_NAME)" ] ; then 		\
-    $(ECHO) "$(ABS_OUTPUTDIR)/$(JDK_IMAGE_NAME)"; 			\
+  if [ -d "$(ABS_OUTPUTDIR)/$(JDK_MODULES_IMAGE_NAME)" ] ; then 	\
+    $(ECHO) "$(ABS_OUTPUTDIR)/$(JDK_MODULES_IMAGE_NAME)"; 		\
+  elif [ -d "$(ABS_OUTPUTDIR)/$(JDK_LEGACY_IMAGE_NAME)" ] ; then 	\
+    $(ECHO) "$(ABS_OUTPUTDIR)/$(JDK_LEGACY_IMAGE_NAME)"; 		\
   elif [ -d "$(ABS_OUTPUTDIR)/bin" ] ; then 				\
     $(ECHO) "$(ABS_OUTPUTDIR)"; 					\
   elif [ "$(PRODUCT_HOME)" != "" -a -d "$(PRODUCT_HOME)/bin" ] ; then 	\
diff --git a/jdk/make/com/oracle/Makefile b/jdk/make/com/oracle/Makefile
index 7c70dc7..e6c6aed 100644
--- a/jdk/make/com/oracle/Makefile
+++ b/jdk/make/com/oracle/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -27,8 +27,13 @@ BUILDDIR = ../..
 PRODUCT = oracle
 include $(BUILDDIR)/common/Defs.gmk
 
-SUBDIRS = net
-include $(BUILDDIR)/common/Subdirs.gmk
+#
+# Files to compile
+#
+AUTO_FILES_JAVA_DIRS = com/oracle
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
 
-all build clean clobber::
-	$(SUBDIRS-loop)
diff --git a/jdk/make/com/sun/crypto/provider/Makefile b/jdk/make/com/sun/crypto/provider/Makefile
index d51add9..d9ad82e 100644
--- a/jdk/make/com/sun/crypto/provider/Makefile
+++ b/jdk/make/com/sun/crypto/provider/Makefile
@@ -113,6 +113,9 @@ ifndef OPENJDK
   endif
 endif
 
+JAVAC_MAX_WARNINGS = false
+JAVAC_LINT_OPTIONS = -Xlint:all,-deprecation
+JAVAC_WARNINGS_FATAL = true
 include $(BUILDDIR)/common/Defs.gmk
 
 #
diff --git a/jdk/make/com/sun/jndi/Makefile b/jdk/make/com/sun/jndi/Makefile
index 12f4318..aa3780b 100644
--- a/jdk/make/com/sun/jndi/Makefile
+++ b/jdk/make/com/sun/jndi/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,8 @@
 #
 
 BUILDDIR = ../../..
+SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true
+SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
 include $(BUILDDIR)/common/Defs.gmk
 
 SUBDIRS = toolkit cosnaming ldap rmi dns
diff --git a/jdk/make/com/sun/net/httpserver/Makefile b/jdk/make/com/sun/net/httpserver/Makefile
index 5c0e85c..2d2e6b8 100644
--- a/jdk/make/com/sun/net/httpserver/Makefile
+++ b/jdk/make/com/sun/net/httpserver/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,8 @@
 BUILDDIR = ../../../..
 PACKAGE = com.sun.net.httpserver
 PRODUCT = sun
+JAVAC_MAX_WARNINGS = true
+JAVAC_WARNINGS_FATAL = true
 include $(BUILDDIR)/common/Defs.gmk
 
 #
diff --git a/jdk/make/com/sun/net/ssl/Makefile b/jdk/make/com/sun/net/ssl/Makefile
index 4ec297c..b5c291e 100644
--- a/jdk/make/com/sun/net/ssl/Makefile
+++ b/jdk/make/com/sun/net/ssl/Makefile
@@ -26,6 +26,9 @@
 BUILDDIR = ../../../..
 PACKAGE = com.sun.net.ssl
 PRODUCT = sun
+JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation
+JAVAC_MAX_WARNINGS = true
+JAVAC_WARNINGS_FATAL = true
 include $(BUILDDIR)/common/Defs.gmk
 
 #
diff --git a/jdk/make/com/sun/security/Makefile b/jdk/make/com/sun/security/Makefile
index bdd6ece..3a6ae43 100644
--- a/jdk/make/com/sun/security/Makefile
+++ b/jdk/make/com/sun/security/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,10 @@
 #
 
 BUILDDIR = ../../..
+SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=false
+# TODO: Workaround for CR 7063027. Remove -path eventually.
+SUBDIRS_MAKEFLAGS += JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation,-path
+SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
 include $(BUILDDIR)/common/Defs.gmk
 
 SUBDIRS = auth
diff --git a/jdk/make/com/sun/servicetag/Makefile b/jdk/make/com/sun/servicetag/Makefile
index 2b916af..d218ac5 100644
--- a/jdk/make/com/sun/servicetag/Makefile
+++ b/jdk/make/com/sun/servicetag/Makefile
@@ -48,7 +48,7 @@ FILES_copy = $(SERVICETAG_RESOURCES_DIR)/product_registration.xsd \
 # Add all properties files to the FILES_copy list
 SWORDFISH_properties := $(shell \
        $(CD) $(SHARE_SRC)/classes/com/sun/servicetag/resources; \
-       $(FIND) . -name 'javase_*_swordfish.properties' -print ; \
+       $(FIND) . -name 'javase_*.properties' -print ; \
     )
 FILES_copy += $(shell \
    for f in $(SWORDFISH_properties) ; do \
diff --git a/jdk/make/common/Defs-linux.gmk b/jdk/make/common/Defs-linux.gmk
index 123d1b3..939d329 100644
--- a/jdk/make/common/Defs-linux.gmk
+++ b/jdk/make/common/Defs-linux.gmk
@@ -74,6 +74,57 @@ SCRIPT_SUFFIX =
 CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
 CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required!
 
+# Default OBJCOPY comes from GNU Binutils on Linux:
+DEF_OBJCOPY=/usr/bin/objcopy
+ifdef CROSS_COMPILE_ARCH
+  # don't try to generate .debuginfo files when cross compiling
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
+      "skipping .debuginfo generation.")
+  OBJCOPY=
+else
+  OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
+  ifneq ($(ALT_OBJCOPY),)
+    _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
+    # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
+    OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
+  endif
+endif
+
+ifdef LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
+# The setting of OBJCOPY above enables the JDK build to import
+# .debuginfo files from the HotSpot build. However, adding FDS
+# support to the JDK build will occur in phases so a different
+# make variable is used to indicate that a particular library
+# supports FDS.
+
+ifeq ($(OBJCOPY),)
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
+else
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
+
+  # Library stripping policies for .debuginfo configs:
+  #   all_strip - strips everything from the library
+  #   min_strip - strips most stuff from the library; leaves minimum symbols
+  #   no_strip  - does not strip the library at all
+  #
+  # Oracle security policy requires "all_strip". A waiver was granted on
+  # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
+  #
+  DEF_STRIP_POLICY="min_strip"
+  ifeq ($(ALT_STRIP_POLICY),)
+    STRIP_POLICY=$(DEF_STRIP_POLICY)
+  else
+    STRIP_POLICY=$(ALT_STRIP_POLICY)
+  endif
+
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
+endif
+endif
+
 #
 # Default optimization
 #
@@ -357,8 +408,8 @@ JA_SOURCE_ENCODING = eucJP
 JA_TARGET_ENCODINGS = UTF-8
 
 # Settings for the JDI - Serviceability Agent binding.
-HOTSPOT_SALIB_PATH   = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
 SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
+SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo
 
 # The JDI - Serviceability Agent binding is not currently supported
 # on Linux-ia64.
diff --git a/jdk/make/common/Defs-modules.gmk b/jdk/make/common/Defs-modules.gmk
index ee13f56..f77e470 100644
--- a/jdk/make/common/Defs-modules.gmk
+++ b/jdk/make/common/Defs-modules.gmk
@@ -72,8 +72,17 @@ XERCES_MODULE            = jdk.jaxp
 XALAN_MODULE             = jdk.jaxp
 JAXWS_MODULE             = jdk.jaxws
 JX_ANNOTATION_MODULE     = jdk.jx.annotations
-IDLJ_MODULE              = jdk.tools
 RMIC_MODULE              = jdk.tools
+COMPILER_MODULE          = jdk.compiler
+JAVAC_MODULE             = jdk.javac
+JAVAP_MODULE             = jdk.javap
+JAVAH_MODULE             = jdk.javah
+JAVADOC_MODULE           = jdk.javadoc
+APT_MODULE               = jdk.apt
+MIRROR_MODULE            = jdk.mirror
+
+# idlj is grouped with the corba runtime
+IDLJ_MODULE              = sun.corba
 
 JDK_BASE_MODULE          = jdk.base
 BASE_TOOLS_MODULE        = jdk.tools.base
diff --git a/jdk/make/common/Defs-solaris.gmk b/jdk/make/common/Defs-solaris.gmk
index c062f27..20e8984 100644
--- a/jdk/make/common/Defs-solaris.gmk
+++ b/jdk/make/common/Defs-solaris.gmk
@@ -74,6 +74,69 @@ SCRIPT_SUFFIX =
 CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
 CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required!
 
+ifdef ENABLE_FULL_DEBUG_SYMBOLS
+# Only check for Full Debug Symbols support on Solaris if it is
+# specifically enabled. Hopefully, it can be enabled by default
+# once the .debuginfo size issues are worked out.
+
+# Default OBJCOPY comes from the SUNWbinutils package:
+DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
+ifeq ($(PLATFORM)-$(LIBARCH), solaris-amd64)
+  # On Solaris AMD64/X64, gobjcopy is not happy and fails:
+  #
+  # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
+  # BFD: stKPaiop: Not enough room for program headers, try linking with -N
+  # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
+  # BFD: stKPaiop: Not enough room for program headers, try linking with -N
+  # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
+  # BFD: stKPaiop: Not enough room for program headers, try linking with -N
+  # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
+  OBJCOPY=
+else
+  OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
+  ifneq ($(ALT_OBJCOPY),)
+    _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
+    # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
+    OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
+  endif
+endif
+
+ifdef LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
+# The setting of OBJCOPY above enables the JDK build to import
+# .debuginfo files from the HotSpot build. However, adding FDS
+# support to the JDK build will occur in phases so a different
+# make variable is used to indicate that a particular library
+# supports FDS.
+
+ifeq ($(OBJCOPY),)
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
+else
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
+
+  # Library stripping policies for .debuginfo configs:
+  #   all_strip - strips everything from the library
+  #   min_strip - strips most stuff from the library; leaves minimum symbols
+  #   no_strip  - does not strip the library at all
+  #
+  # Oracle security policy requires "all_strip". A waiver was granted on
+  # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
+  #
+  DEF_STRIP_POLICY="min_strip"
+  ifeq ($(ALT_STRIP_POLICY),)
+    STRIP_POLICY=$(DEF_STRIP_POLICY)
+  else
+    STRIP_POLICY=$(ALT_STRIP_POLICY)
+  endif
+  _JUNK_ := $(shell \
+    echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
+endif
+endif
+endif
+
 #
 # Java default optimization (-x04/-O2) etc.  Applies to the VM.
 #
@@ -682,7 +745,7 @@ JA_SOURCE_ENCODING = eucJP
 JA_TARGET_ENCODINGS = eucJP UTF-8 PCK
 
 # Settings for the JDI - Serviceability Agent binding.
-HOTSPOT_SALIB_PATH   = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
 SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
+SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo
 INCLUDE_SA=true
 
diff --git a/jdk/make/common/Defs-windows.gmk b/jdk/make/common/Defs-windows.gmk
index d04d60a..dbac5a1 100644
--- a/jdk/make/common/Defs-windows.gmk
+++ b/jdk/make/common/Defs-windows.gmk
@@ -302,7 +302,6 @@ LIBRARY_SUFFIX = dll
 LIB_SUFFIX     = lib
 
 # Settings for the JDI - Serviceability Agent binding.
-HOTSPOT_SALIB_PATH   = $(HOTSPOT_IMPORT_PATH)/jre/bin
 SALIB_NAME = $(LIB_PREFIX)sawindbg.$(LIBRARY_SUFFIX)
 SAMAP_NAME = $(LIB_PREFIX)sawindbg.map
 SAPDB_NAME = $(LIB_PREFIX)sawindbg.pdb
diff --git a/jdk/make/common/Defs.gmk b/jdk/make/common/Defs.gmk
index 59a46e8..84da73c 100644
--- a/jdk/make/common/Defs.gmk
+++ b/jdk/make/common/Defs.gmk
@@ -294,12 +294,15 @@ ifndef MESSAGE_FILE
   MESSAGE_FILE = $(OUTPUTDIR)/sanityCheckMessages.txt
 endif
 
-JDK_IMAGE_DIR = $(ABS_OUTPUTDIR)/j2sdk-image
-JRE_IMAGE_DIR = $(ABS_OUTPUTDIR)/j2re-image
+JDK_LEGACY_IMAGE_DIR = $(ABS_OUTPUTDIR)/j2sdk-image
+JRE_LEGACY_IMAGE_DIR = $(ABS_OUTPUTDIR)/j2re-image
 
 #where the demo source can be found
 DEMOSRCDIR          = $(SHARE_SRC)/demo
 
+#where the sample source can be found
+SAMPLESRCDIR          = $(SHARE_SRC)/sample
+
 # An attempt is made to generate unique enough directories for the
 # generated files to not have name collisisons. Most build units
 # defines PRODUCT (except Release.gmk), but then they may or may 
diff --git a/jdk/make/common/Modules.gmk b/jdk/make/common/Modules.gmk
index 77c3469..2e4a2d1 100644
--- a/jdk/make/common/Modules.gmk
+++ b/jdk/make/common/Modules.gmk
@@ -24,7 +24,7 @@
 #
 
 #
-# modules           Target to build jigsaw modules images.
+# images            Target to build jigsaw modules images.
 # 
 # This target will build the modules images taking the jdk modules
 # under the $outputdir/modules directory. For incremental build,
@@ -82,10 +82,11 @@ ifeq ($(PLATFORM), solaris)
   endif
 endif
 
-
-modules modules-clobber::
+images modules modules-clobber::
 	@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
 
+images:: modules
+
 #
 # jdk-xxx-image depends on jre-xxx-image
 #
@@ -316,7 +317,7 @@ post-image-build:
 modules-clobber::
 	$(RM) -r $(MODULE_IMAGES_DIR)
 
-modules modules-clobber::
+images modules modules-clobber::
 	@$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
 	@$(java-vm-cleanup)
 
diff --git a/jdk/make/common/Release-embedded.gmk b/jdk/make/common/Release-embedded.gmk
index 655b324..fd6141d 100644
--- a/jdk/make/common/Release-embedded.gmk
+++ b/jdk/make/common/Release-embedded.gmk
@@ -32,7 +32,7 @@ reduced-image-jre reduced-headless-image-jre ::
 	@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
 
 # Add the reduced-jre images as pre-reqs. These will be processed last
-images:: reduced-image-jre reduced-headless-image-jre
+legacy-images:: reduced-image-jre reduced-headless-image-jre
 
 
 ######################################################
diff --git a/jdk/make/common/Release.gmk b/jdk/make/common/Release.gmk
index c3bc1a1..c40d854 100644
--- a/jdk/make/common/Release.gmk
+++ b/jdk/make/common/Release.gmk
@@ -32,10 +32,12 @@ THIS_JDK_VERSION := $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSIO
 #
 # Perform release engineering tasks.
 #
-# images    An image is what the product looks like when it is
-#           installed.
+# legacy-images    An image is what the product looks like when it is
+#                  installed.
 #
 
+JDK_IMAGE_DIR=$(JDK_LEGACY_IMAGE_DIR)
+JRE_IMAGE_DIR=$(JRE_LEGACY_IMAGE_DIR)
 IMAGE_BINDIR = bin
 
 # The compiler should not issue a "Proprietary" warning when compiling
@@ -60,7 +62,8 @@ EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf.windows  \
 # with a new module system (being discussed for JDK 8).
 #
 EXPORTED_PRIVATE_PKGS = com.sun.servicetag \
-                        com.oracle.net
+                        com.oracle.net \
+                        com.oracle.nio
 
 # 64-bit solaris has a few special cases. We define the variable
 # SOLARIS64 for use in this Makefile to easily test those cases
@@ -216,7 +219,7 @@ ifeq ($(PLATFORM), solaris)
   endif
 endif
 
-images images-clobber \
+legacy-images images-clobber \
 initial-image-jre initial-image-jdk \
 initial-image-jre-sol64 initial-image-jdk-sol64 \
 trim-image-jre trim-image-jdk \
@@ -227,7 +230,7 @@ sec-files sec-files-win jgss-files ::
 	@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
 
 # Order is important here, trim jre after jdk image is created
-images:: sanity-images post-sanity-images  \
+legacy-images:: sanity-images post-sanity-images  \
 	 $(INITIAL_IMAGE_JRE) $(INITIAL_IMAGE_JDK) \
 	 trim-image-jre trim-image-jdk \
          identify-image-jre identify-image-jdk \
@@ -1298,11 +1301,11 @@ endif
 	$(RM) -r $(JDK_IMAGE_DIR)
 	$(RM) -r $(JRE_IMAGE_DIR)
 
-images images-clobber::
+legacy-images images-clobber::
 	@$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
 	@$(java-vm-cleanup)
 
-.PHONY: images image-jre image-jdk \
+.PHONY: legacy-images image-jre image-jdk \
 	initial-image-jre initial-image-jdk \
 	initial-image-jre-sol64 initial-image-jdk-sol64 \
         initial-image-jdk-setup \
diff --git a/jdk/make/common/internal/Defs-langtools.gmk b/jdk/make/common/internal/Defs-langtools.gmk
index d20180b..7871718 100644
--- a/jdk/make/common/internal/Defs-langtools.gmk
+++ b/jdk/make/common/internal/Defs-langtools.gmk
@@ -42,3 +42,16 @@ IMPORT_TOOLS_PACKAGES +=            \
       com/sun/tools/javah           \
       com/sun/tools/javap
 
+#
+# Modules that contain IMPORT_RT_PACKAGES and IMPORT_TOOLS_PACKAGES
+#
+IMPORT_RT_MODULES += \
+     $(COMPILER_MODULE)
+
+IMPORT_TOOLS_MODULES += \
+     $(JAVAC_MODULE) \
+     $(JAVAP_MODULE) \
+     $(JAVAH_MODULE) \
+     $(JAVADOC_MODULE) \
+     $(APT_MODULE) \
+     $(MIRROR_MODULE)
diff --git a/jdk/make/common/shared/Defs-linux.gmk b/jdk/make/common/shared/Defs-linux.gmk
index ecdf5d7..8231b5b 100644
--- a/jdk/make/common/shared/Defs-linux.gmk
+++ b/jdk/make/common/shared/Defs-linux.gmk
@@ -167,12 +167,31 @@ else
 endif
 HOTSPOT_IMPORT_PATH:=$(call AltCheckValue,HOTSPOT_IMPORT_PATH)
 
+# check if the HOTSPOT_IMPORT_PATH is a modules image or not
+HOTSPOT_IMPORT_MODULES_IMAGE := $(shell \
+      if [ -d $(HOTSPOT_IMPORT_PATH)/jre/$(ARCH_VM_SUBDIR) ] ; then \
+        echo "false"; \
+      elif [ -d $(HOTSPOT_IMPORT_PATH)/lib/modules ] ; then \
+        echo "true"; \
+      else \
+        echo "false"; \
+      fi \
+      )
+
+ifeq ($(HOTSPOT_IMPORT_MODULES_IMAGE),true)
+  HOTSPOT_ARCH_VM_SUBDIR=$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)
+else
+  HOTSPOT_ARCH_VM_SUBDIR=$(HOTSPOT_IMPORT_PATH)/jre/$(ARCH_VM_SUBDIR)
+endif
+
+HOTSPOT_SALIB_PATH=$(HOTSPOT_ARCH_VM_SUBDIR)
+
 # HOTSPOT_CLIENT_PATH: location of client jvm library file.
 ifeq ($(ARCH_DATA_MODEL), 32)
   ifdef ALT_HOTSPOT_CLIENT_PATH
     HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
   else
-    HOTSPOT_CLIENT_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
+    HOTSPOT_CLIENT_PATH   =$(HOTSPOT_ARCH_VM_SUBDIR)/client
   endif
   HOTSPOT_CLIENT_PATH:=$(call AltCheckValue,HOTSPOT_CLIENT_PATH)
 endif
@@ -181,7 +200,7 @@ endif
 ifdef ALT_HOTSPOT_SERVER_PATH
   HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
 else
-  HOTSPOT_SERVER_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
+  HOTSPOT_SERVER_PATH   =$(HOTSPOT_ARCH_VM_SUBDIR)/server
 endif
 HOTSPOT_SERVER_PATH:=$(call AltCheckValue,HOTSPOT_SERVER_PATH)
 
diff --git a/jdk/make/common/shared/Defs-solaris.gmk b/jdk/make/common/shared/Defs-solaris.gmk
index 261583d..b084cbf 100644
--- a/jdk/make/common/shared/Defs-solaris.gmk
+++ b/jdk/make/common/shared/Defs-solaris.gmk
@@ -168,12 +168,30 @@ else
 endif
 HOTSPOT_IMPORT_PATH:=$(call AltCheckValue,HOTSPOT_IMPORT_PATH)
 
-# HOTSPOT_CLIENT_PATH: location of client jvm library file.
+# check if the HOTSPOT_IMPORT_PATH is a modules image or not
+HOTSPOT_IMPORT_MODULES_IMAGE := $(shell \
+      if [ -d $(HOTSPOT_IMPORT_PATH)/jre/$(ARCH_VM_SUBDIR) ] ; then \
+        echo "false"; \
+      elif [ -d $(HOTSPOT_IMPORT_PATH)/lib/modules ] ; then \
+        echo "true"; \
+      else \
+        echo "false"; \
+      fi \
+      )
+
+ifeq ($(HOTSPOT_IMPORT_MODULES_IMAGE),true)
+  HOTSPOT_ARCH_VM_SUBDIR=$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)
+else
+  HOTSPOT_ARCH_VM_SUBDIR=$(HOTSPOT_IMPORT_PATH)/jre/$(ARCH_VM_SUBDIR)
+endif
+
+HOTSPOT_SALIB_PATH=$(HOTSPOT_ARCH_VM_SUBDIR)
+
 ifeq ($(ARCH_DATA_MODEL), 32)
   ifdef ALT_HOTSPOT_CLIENT_PATH
     HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
   else
-    HOTSPOT_CLIENT_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
+    HOTSPOT_CLIENT_PATH   =$(HOTSPOT_ARCH_VM_SUBDIR)/client
   endif
   HOTSPOT_CLIENT_PATH:=$(call AltCheckValue,HOTSPOT_CLIENT_PATH)
 endif
@@ -182,7 +200,7 @@ endif
 ifdef ALT_HOTSPOT_SERVER_PATH
   HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
 else
-  HOTSPOT_SERVER_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
+  HOTSPOT_SERVER_PATH   =$(HOTSPOT_ARCH_VM_SUBDIR)/server
 endif
 HOTSPOT_SERVER_PATH:=$(call AltCheckValue,HOTSPOT_SERVER_PATH)
 
diff --git a/jdk/make/common/shared/Defs-windows.gmk b/jdk/make/common/shared/Defs-windows.gmk
index af611f3..eee4863 100644
--- a/jdk/make/common/shared/Defs-windows.gmk
+++ b/jdk/make/common/shared/Defs-windows.gmk
@@ -604,12 +604,31 @@ endif
 HOTSPOT_IMPORT_PATH:=$(call AltCheckSpaces,HOTSPOT_IMPORT_PATH)
 HOTSPOT_IMPORT_PATH:=$(call AltCheckValue,HOTSPOT_IMPORT_PATH)
 
+# check if the HOTSPOT_IMPORT_PATH is a modules image or not
+HOTSPOT_IMPORT_MODULES_IMAGE := $(shell \
+      if [ -d $(HOTSPOT_IMPORT_PATH)/jre/$(ARCH_VM_SUBDIR) ] ; then \
+        echo "false"; \
+      elif [ -d $(HOTSPOT_IMPORT_PATH)/lib/modules ] ; then \
+        echo "true"; \
+      else \
+        echo "false"; \
+      fi \
+      )
+
+ifeq ($(HOTSPOT_IMPORT_MODULES_IMAGE),true)
+  HOTSPOT_ARCH_VM_SUBDIR=$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)
+else
+  HOTSPOT_ARCH_VM_SUBDIR=$(HOTSPOT_IMPORT_PATH)/jre/$(ARCH_VM_SUBDIR)
+endif
+
+HOTSPOT_SALIB_PATH=$(HOTSPOT_ARCH_VM_SUBDIR)
+
 # HOTSPOT_CLIENT_PATH: location of client jvm library file.
 ifeq ($(ARCH_DATA_MODEL), 32)
   ifdef ALT_HOTSPOT_CLIENT_PATH
     HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
   else
-    HOTSPOT_CLIENT_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
+    HOTSPOT_CLIENT_PATH   =$(HOTSPOT_ARCH_VM_SUBDIR)/client
   endif
   HOTSPOT_CLIENT_PATH:=$(call AltCheckSpaces,HOTSPOT_CLIENT_PATH)
   HOTSPOT_CLIENT_PATH:=$(call AltCheckValue,HOTSPOT_CLIENT_PATH)
@@ -619,7 +638,7 @@ endif
 ifdef ALT_HOTSPOT_SERVER_PATH
   HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
 else
-  HOTSPOT_SERVER_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
+  HOTSPOT_SERVER_PATH   =$(HOTSPOT_ARCH_VM_SUBDIR)/server
 endif
 HOTSPOT_SERVER_PATH:=$(call AltCheckSpaces,HOTSPOT_SERVER_PATH)
 HOTSPOT_SERVER_PATH:=$(call AltCheckValue,HOTSPOT_SERVER_PATH)
diff --git a/jdk/make/common/shared/Platform.gmk b/jdk/make/common/shared/Platform.gmk
index 97cbc6e..ae5499d 100644
--- a/jdk/make/common/shared/Platform.gmk
+++ b/jdk/make/common/shared/Platform.gmk
@@ -56,7 +56,7 @@ PLATFORM_SHARED=done
 #     ARCH                        sparc, sparcv9, i586, amd64, or ia64
 #     ARCH_FAMILY                 sparc or i586
 #     ARCHPROP                    sparc or x86
-#     ARCH_VM_SUBDIR              jre/bin, jre/lib/sparc, etc.
+#     ARCH_VM_SUBDIR              bin, lib/sparc, etc.
 #     LIBARCH                     sparc, sparcv9, i386, amd64, or ia64
 #     DEV_NULL                    destination of /dev/null, NUL or /dev/NULL
 #     CLASSPATH_SEPARATOR         separator in classpath, ; or :
@@ -347,8 +347,7 @@ ifeq ($(PLATFORM), windows)
   else
     _USER:=$(USER)
   endif
-  # Location of client/server directories
-  ARCH_VM_SUBDIR=jre/bin
+  ARCH_VM_SUBDIR=bin
   # Suffix for file bundles used in previous release
   BUNDLE_FILE_SUFFIX=.tar
   # ISHIELD_TEMP_MIN is the difference of an empty C:\TEMP vs. one after a
@@ -422,7 +421,7 @@ ifneq ($(PLATFORM), windows)
     _USER:=$(USER)
   endif
   # Location of client/server directories
-  ARCH_VM_SUBDIR=jre/lib/$(LIBARCH)
+  ARCH_VM_SUBDIR=lib/$(LIBARCH)
 endif
 
 # Machines with 512Mb or less of real memory are considered low memory
diff --git a/jdk/make/java/java/FILES_java.gmk b/jdk/make/java/java/FILES_java.gmk
index 02cd286..47ae079 100644
--- a/jdk/make/java/java/FILES_java.gmk
+++ b/jdk/make/java/java/FILES_java.gmk
@@ -208,7 +208,6 @@ JAVA_JAVA_java = \
     java/util/Observable.java \
     java/util/Observer.java \
     java/util/Properties.java \
-        java/util/XMLUtils.java \
         java/util/InvalidPropertiesFormatException.java \
     java/util/PropertyPermission.java \
     java/util/PropertyResourceBundle.java \
diff --git a/jdk/make/java/java/Makefile b/jdk/make/java/java/Makefile
index 40fefe8..9d2d62f 100644
--- a/jdk/make/java/java/Makefile
+++ b/jdk/make/java/java/Makefile
@@ -35,6 +35,7 @@ LIBRARY = java
 PRODUCT = java
 SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true
 SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
+JAVAC_MAX_WARNINGS=true
 include $(BUILDDIR)/common/Defs.gmk
 
 # windows compiler flags
diff --git a/jdk/make/java/net/Makefile b/jdk/make/java/net/Makefile
index 73099e9..fd0b64f 100644
--- a/jdk/make/java/net/Makefile
+++ b/jdk/make/java/net/Makefile
@@ -28,6 +28,9 @@ MODULE  = base
 PACKAGE = java.net
 LIBRARY = net
 PRODUCT = sun
+JAVAC_MAX_WARNINGS = true
+JAVAC_WARNINGS_FATAL = true
+JAVAC_LINT_OPTIONS = -Xlint:all,-deprecation
 include $(BUILDDIR)/common/Defs.gmk
 
 #
diff --git a/jdk/make/java/nio/Makefile b/jdk/make/java/nio/Makefile
index 7e59a5f..79c9058 100644
--- a/jdk/make/java/nio/Makefile
+++ b/jdk/make/java/nio/Makefile
@@ -207,7 +207,6 @@ FILES_java += \
 	sun/nio/fs/LinuxUserDefinedFileAttributeView.java \
 	sun/nio/fs/LinuxNativeDispatcher.java \
 	sun/nio/fs/LinuxWatchService.java \
-	sun/nio/fs/PollingWatchService.java \
 	sun/nio/fs/UnixChannelFactory.java \
 	sun/nio/fs/UnixCopyFile.java \
 	sun/nio/fs/UnixDirectoryStream.java \
diff --git a/jdk/make/java/redist/Makefile b/jdk/make/java/redist/Makefile
index 7ee7af6..5bcb502 100644
--- a/jdk/make/java/redist/Makefile
+++ b/jdk/make/java/redist/Makefile
@@ -59,6 +59,11 @@ LIBJSIG_NAME           = $(LIB_PREFIX)jsig.$(LIBRARY_SUFFIX)
 JVMDB_NAME             = $(LIB_PREFIX)jvm$(DB_SUFFIX).$(LIBRARY_SUFFIX)
 JVMDTRACE_NAME         = $(LIB_PREFIX)jvm$(DTRACE_SUFFIX).$(LIBRARY_SUFFIX)
 
+JVM_DEBUGINFO_NAME       = $(LIB_PREFIX)jvm.debuginfo
+LIBJSIG_DEBUGINFO_NAME   = $(LIB_PREFIX)jsig.debuginfo
+JVMDB_DEBUGINFO_NAME     = $(LIB_PREFIX)jvm$(DB_SUFFIX).debuginfo
+JVMDTRACE_DEBUGINFO_NAME = $(LIB_PREFIX)jvm$(DTRACE_SUFFIX).debuginfo
+
 CLASSSHARINGDATA_DIR   = $(BUILDDIR)/tools/sharing
 
 # Needed to do file copy
@@ -80,6 +85,12 @@ INTERNAL_IMPORT_LIST = $(LIBDIR)/classlist
 ifndef BUILD_CLIENT_ONLY
   IMPORT_LIST = $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_NAME) \
                 $(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt
+  ifneq ($(OBJCOPY),)
+    # the import JDK may not contain .debuginfo files
+    ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVM_DEBUGINFO_NAME)),)
+      IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DEBUGINFO_NAME)
+    endif
+  endif
 else
   IMPORT_LIST =
 endif
@@ -89,6 +100,12 @@ ifneq ($(ZERO_BUILD), true)
 ifeq ($(ARCH_DATA_MODEL), 32)
   IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME) \
                  $(LIB_LOCATION)/$(CLIENT_LOCATION)/Xusage.txt
+  ifneq ($(OBJCOPY),)
+    # the import JDK may not contain .debuginfo files
+    ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVM_DEBUGINFO_NAME)),)
+      IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DEBUGINFO_NAME)
+    endif
+  endif
 endif
 endif
 
@@ -164,16 +181,40 @@ else # PLATFORM
 #  NOT Windows vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv  NOT Windows
 
 IMPORT_LIST += $(LIB_LOCATION)/$(LIBJSIG_NAME) 
+ifneq ($(OBJCOPY),)
+  # the import JDK may not contain .debuginfo files
+  ifneq ($(wildcard $(HOTSPOT_ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
+    IMPORT_LIST += $(LIB_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+  endif
+endif
 ifndef BUILD_CLIENT_ONLY
   IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_NAME)
+  ifneq ($(OBJCOPY),)
+    # the import JDK may not contain the target of the symlink
+    ifneq ($(wildcard $(HOTSPOT_ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
+      IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+    endif
+  endif
 endif
 
 ifeq ($(PLATFORM), solaris)
   ifndef BUILD_CLIENT_ONLY
     IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME)
+    ifneq ($(OBJCOPY),)
+      # the import JDK may not contain .debuginfo files
+      ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDB_DEBUGINFO_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_DEBUGINFO_NAME)
+      endif
+    endif
     # The conditional can be removed when import JDKs contain these files.
     ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_NAME)),)
       IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_NAME)
+      ifneq ($(OBJCOPY),)
+        # the import JDK may not contain .debuginfo files
+        ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)),)
+          IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME)
+        endif
+      endif
     else
       $(warning WARNING: $(HOTSPOT_SERVER_PATH)/$(JVMDB_NAME) not found!)
     endif 
@@ -184,17 +225,37 @@ ifneq ($(ZERO_BUILD), true)
 ifeq ($(ARCH_DATA_MODEL), 32)
 
 IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME)
+ifneq ($(OBJCOPY),)
+  # the import JDK may not contain the target of the symlink
+  ifneq ($(wildcard $(HOTSPOT_ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)),)
+    IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME)
+  endif
+endif
 
 ifeq ($(PLATFORM), solaris)
 #  solaris   vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv  solaris
 
 IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME)
+ifneq ($(OBJCOPY),)
+  # the import JDK may not contain .debuginfo files
+  ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDB_DEBUGINFO_NAME)),)
+    IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_DEBUGINFO_NAME)
+  endif
+endif
 
 # The conditional can be removed when import JDKs contain these files.
 ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME)),)
   IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_NAME)
   IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_NAME)
   IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_NAME)
+  ifneq ($(OBJCOPY),)
+    # the import JDK may not contain .debuginfo files
+    ifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)),)
+      IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME)
+      IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME)
+      IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME)
+  endif
+  endif
 else
   $(warning WARNING: $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME) not found!)
 endif
@@ -203,6 +264,12 @@ ifndef BUILD_CLIENT_ONLY
   # The conditional can be removed when import JDKs contain these files.
   ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME)),)
     IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_NAME)
+    ifneq ($(OBJCOPY),)
+      # the import JDK may not contain .debuginfo files
+      ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_DEBUGINFO_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME)
+      endif
+    endif
   else
     $(warning WARNING: $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME) not found!)
   endif
@@ -210,6 +277,12 @@ ifndef BUILD_CLIENT_ONLY
   # The conditional can be removed when import JDKs contain these files.
   ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME)),)
     IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_NAME)
+    ifneq ($(OBJCOPY),)
+      # the import JDK may not contain .debuginfo files
+      ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_DEBUGINFO_NAME)),)
+        IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME)
+      endif
+    endif
   else
     $(warning WARNING: $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME) not found!)
  endif
@@ -236,23 +309,46 @@ $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVM_NAM
 	$(install-import-file)
 	@$(call binary_file_verification,$@)
 
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVM_DEBUGINFO_NAME)
+	$(install-import-file)
+endif
+
 $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVM_NAME): $(HOTSPOT_KERNEL_PATH)/$(JVM_NAME)
 	$(install-file)
 	@$(call binary_file_verification,$@)
 
-$(LIB_LOCATION)/$(LIBJSIG_NAME): $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_NAME)
+$(LIB_LOCATION)/$(LIBJSIG_NAME): $(HOTSPOT_ARCH_VM_SUBDIR)/$(LIBJSIG_NAME)
 	$(install-import-file)
 	@$(call binary_file_verification,$@)
 
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME): $(HOTSPOT_ARCH_VM_SUBDIR)/$(LIBJSIG_DEBUGINFO_NAME)
+	$(install-import-file)
+endif
+
 ifndef BUILD_CLIENT_ONLY
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME) \
 $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_NAME):
 	@$(prep-target)
 	$(call install-sym-link, ../$(LIBJSIG_NAME))
+
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME) \
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME):
+	@$(prep-target)
+	$(call install-sym-link, ../$(LIBJSIG_DEBUGINFO_NAME))
+endif
 else
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME):
 	@$(prep-target)
 	$(call install-sym-link, ../$(LIBJSIG_NAME))
+
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_DEBUGINFO_NAME):
+	@$(prep-target)
+	$(call install-sym-link, ../$(LIBJSIG_DEBUGINFO_NAME))
+endif
 endif
 
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDB_NAME)
@@ -263,6 +359,14 @@ $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_NAME): $(HOTSPOT_CLIENT_PATH)/64/$
 	$(install-import-file)
 	@$(call binary_file_verification,$@)
 
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDB_DEBUGINFO_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDB_DEBUGINFO_NAME)
+	$(install-import-file)
+endif
+
 ifndef BUILD_CLIENT_ONLY
 $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDB_NAME)
 	$(install-import-file)
@@ -271,6 +375,14 @@ $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDB
 $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME)
 	$(install-import-file)
 	@$(call binary_file_verification,$@)
+
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDB_DEBUGINFO_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_DEBUGINFO_NAME)
+	$(install-import-file)
+endif
 endif
 
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME)
@@ -281,6 +393,14 @@ $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_NAME): $(HOTSPOT_CLIENT_PATH)/
 	$(install-import-file)
 	@$(call binary_file_verification,$@)
 
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDTRACE_DEBUGINFO_NAME)
+	$(install-import-file)
+endif
+
 ifndef BUILD_CLIENT_ONLY
 $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_NAME)
 	$(install-import-file)
@@ -294,6 +414,17 @@ $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_NAME): $(HOTSPOT_SERVER_PATH)/$(JVM_NAM
 	$(install-import-file)
 	@$(call binary_file_verification,$@)
 
+ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_DEBUGINFO_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_DEBUGINFO_NAME)
+	$(install-import-file)
+
+$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_DEBUGINFO_NAME): $(HOTSPOT_SERVER_PATH)/$(JVM_DEBUGINFO_NAME)
+	$(install-import-file)
+endif
+
 $(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt : $(HOTSPOT_SERVER_PATH)/Xusage.txt
 	$(install-import-file)
 endif
diff --git a/jdk/make/java/redist/sajdi/Makefile b/jdk/make/java/redist/sajdi/Makefile
index 5dafbef..38559d1 100644
--- a/jdk/make/java/redist/sajdi/Makefile
+++ b/jdk/make/java/redist/sajdi/Makefile
@@ -57,6 +57,12 @@ ifeq ($(INCLUDE_SA), true)
     IMPORT_LIST += $(LIB_LOCATION)/$(SAMAP_NAME) \
                    $(LIB_LOCATION)/$(SAPDB_NAME)
   endif
+  ifneq ($(OBJCOPY),)
+    # the import JDK may not contain .debuginfo files
+    ifneq ($(wildcard $(HOTSPOT_ARCH_VM_SUBDIR)/$(SA_DEBUGINFO_NAME)),)
+      IMPORT_LIST += $(LIB_LOCATION)/$(SA_DEBUGINFO_NAME)
+    endif
+  endif
 endif # INCLUDE_SA
 
 
@@ -80,6 +86,11 @@ $(LIB_LOCATION)/$(SAPDB_NAME): $(HOTSPOT_SALIB_PATH)/$(SAPDB_NAME)
 $(LIB_LOCATION)/$(SAMAP_NAME): $(HOTSPOT_SALIB_PATH)/$(SAMAP_NAME)
 	$(install-import-file)
 endif # windows
+
+  ifneq ($(OBJCOPY),)
+$(LIB_LOCATION)/$(SA_DEBUGINFO_NAME): $(HOTSPOT_SALIB_PATH)/$(SA_DEBUGINFO_NAME)
+	$(install-import-file)
+  endif
 endif # INCLUDE_SA
 
 all: $(IMPORT_LIST)
diff --git a/jdk/make/java/security/Makefile b/jdk/make/java/security/Makefile
index 146551e..dbd4639 100644
--- a/jdk/make/java/security/Makefile
+++ b/jdk/make/java/security/Makefile
@@ -27,6 +27,9 @@ BUILDDIR = ../..
 MODULE  = base
 PACKAGE = java.security
 PRODUCT = sun
+JAVAC_MAX_WARNINGS = false
+JAVAC_LINT_OPTIONS = -Xlint:all,-deprecation
+JAVAC_WARNINGS_FATAL = true
 include $(BUILDDIR)/common/Defs.gmk
 
 #
diff --git a/jdk/make/java/sun_nio/FILES_java.gmk b/jdk/make/java/sun_nio/FILES_java.gmk
index be1452d..b00fb04 100644
--- a/jdk/make/java/sun_nio/FILES_java.gmk
+++ b/jdk/make/java/sun_nio/FILES_java.gmk
@@ -76,63 +76,3 @@ FILES_java = \
     sun/nio/cs/UTF_32BE_BOM.java \
     sun/nio/cs/UTF_32LE_BOM.java
 
-
-FILES_java += \
-    sun/io/Converters.java \
-    sun/io/ByteToCharConverter.java \
-    sun/io/ByteToCharASCII.java \
-    sun/io/ByteToCharUTF8.java \
-    sun/io/ByteToCharUTF16.java \
-    sun/io/ByteToCharUnicode.java \
-    sun/io/ByteToCharUnicodeBig.java  \
-    sun/io/ByteToCharUnicodeBigUnmarked.java \
-    sun/io/ByteToCharUnicodeLittle.java \
-    sun/io/ByteToCharUnicodeLittleUnmarked.java \
-    sun/io/CharToByteConverter.java \
-    sun/io/CharToByteASCII.java \
-    sun/io/CharToByteUTF8.java \
-    sun/io/CharToByteUTF16.java \
-    sun/io/CharToByteUnicode.java \
-    sun/io/CharToByteUnicodeBig.java \
-    sun/io/CharToByteUnicodeBigUnmarked.java \
-    sun/io/CharToByteUnicodeLittle.java \
-    sun/io/CharToByteUnicodeLittleUnmarked.java \
-    sun/io/CharacterEncoding.java \
-    sun/io/ConversionBufferFullException.java \
-    sun/io/MalformedInputException.java \
-    sun/io/UnknownCharacterException.java \
-    sun/io/ByteToCharISO8859_1.java \
-    sun/io/CharToByteISO8859_1.java \
-    sun/io/ByteToCharISO8859_2.java \
-    sun/io/CharToByteISO8859_2.java \
-    sun/io/ByteToCharISO8859_4.java \
-    sun/io/CharToByteISO8859_4.java \
-    sun/io/ByteToCharISO8859_5.java \
-    sun/io/CharToByteISO8859_5.java \
-    sun/io/ByteToCharISO8859_7.java \
-    sun/io/CharToByteISO8859_7.java \
-    sun/io/ByteToCharISO8859_9.java \
-    sun/io/CharToByteISO8859_9.java \
-    sun/io/ByteToCharISO8859_13.java \
-    sun/io/CharToByteISO8859_13.java \
-    sun/io/ByteToCharISO8859_15.java \
-    sun/io/CharToByteISO8859_15.java \
-    sun/io/ByteToCharCp1250.java \
-    sun/io/CharToByteCp1250.java \
-    sun/io/ByteToCharCp1251.java \
-    sun/io/CharToByteCp1251.java \
-    sun/io/ByteToCharCp1252.java \
-    sun/io/CharToByteCp1252.java \
-    sun/io/ByteToCharCp1253.java \
-    sun/io/CharToByteCp1253.java \
-    sun/io/ByteToCharCp1254.java \
-    sun/io/CharToByteCp1254.java \
-    sun/io/ByteToCharCp1257.java \
-    sun/io/CharToByteCp1257.java \
-    sun/io/ByteToCharKOI8_R.java \
-    sun/io/CharToByteKOI8_R.java \
-    sun/io/ByteToCharSingleByte.java \
-    sun/io/CharToByteSingleByte.java
-
-
-
diff --git a/jdk/make/java/sun_nio/Makefile b/jdk/make/java/sun_nio/Makefile
index ebe1546..c3c11ac 100644
--- a/jdk/make/java/sun_nio/Makefile
+++ b/jdk/make/java/sun_nio/Makefile
@@ -31,8 +31,7 @@ BUILDDIR = ../..
 PACKAGE = sun.nio
 PRODUCT = sun
 
-JAVAC_MAX_WARNINGS = false
-JAVAC_LINT_OPTIONS = -Xlint:all,-deprecation
+JAVAC_MAX_WARNINGS = true
 JAVAC_WARNINGS_FATAL = true
 include $(BUILDDIR)/common/Defs.gmk
 
diff --git a/jdk/make/java/util/FILES_properties.gmk b/jdk/make/java/util/FILES_properties.gmk
index 4f9f7cd..5aa6cbf 100644
--- a/jdk/make/java/util/FILES_properties.gmk
+++ b/jdk/make/java/util/FILES_properties.gmk
@@ -151,6 +151,7 @@ FILES_compiled_properties = \
         sun/util/resources/CurrencyNames_es_CL.properties \
         sun/util/resources/CurrencyNames_es_CO.properties \
         sun/util/resources/CurrencyNames_es_CR.properties \
+        sun/util/resources/CurrencyNames_es_CU.properties \
         sun/util/resources/CurrencyNames_es_DO.properties \
         sun/util/resources/CurrencyNames_es_EC.properties \
         sun/util/resources/CurrencyNames_es_ES.properties \
diff --git a/jdk/make/javax/Makefile b/jdk/make/javax/Makefile
index a58a1b1..251628c 100644
--- a/jdk/make/javax/Makefile
+++ b/jdk/make/javax/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
diff --git a/jdk/make/javax/crypto/Makefile b/jdk/make/javax/crypto/Makefile
index 677c811..65f1cfc 100644
--- a/jdk/make/javax/crypto/Makefile
+++ b/jdk/make/javax/crypto/Makefile
@@ -129,6 +129,8 @@ ifndef OPENJDK
   endif
 endif
 
+JAVAC_MAX_WARNINGS = true
+JAVAC_WARNINGS_FATAL = true
 include $(BUILDDIR)/common/Defs.gmk
 
 #
diff --git a/jdk/make/javax/others/Makefile b/jdk/make/javax/others/Makefile
index bfe9365..1283dce 100644
--- a/jdk/make/javax/others/Makefile
+++ b/jdk/make/javax/others/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
diff --git a/jdk/make/jprt.gmk b/jdk/make/jprt.gmk
index 07d9126..226eb33 100644
--- a/jdk/make/jprt.gmk
+++ b/jdk/make/jprt.gmk
@@ -30,21 +30,17 @@ JPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zip
 JPRT_ARCHIVE_MODULES_BUNDLE=$(ABS_OUTPUTDIR)/$(DEFAULT_BUILD_FLAVOR)-modules-bundle.zip
 
 # jdk image to archive
-JPRT_ARCHIVE_IMAGE=j2sdk-image
-ifdef BUILD_MODULES
-  JPRT_ARCHIVE_IMAGE=jdk-module-image
-endif
-
-ifdef BUILD_MODULES
-  JPRT_BUILD_TARGETS = modules
-else
-  JPRT_BUILD_TARGETS = images
+JPRT_ARCHIVE_IMAGE=jdk-module-image
+JPRT_BUILD_TARGETS = images
+ifdef BUILD_LEGACY
+  JPRT_ARCHIVE_IMAGE=j2sdk-image
+  JPRT_BUILD_TARGETS=legacy-images
 endif
 
 jprt_build_product:  all $(JPRT_BUILD_TARGETS)
 	( $(CD) $(OUTPUTDIR)/$(JPRT_ARCHIVE_IMAGE) && \
 	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
-ifdef BUILD_MODULES
+ifndef BUILD_LEGACY
 	( $(CD) $(OUTPUTDIR) && \
           $(ZIPEXE) -q -r $(JPRT_ARCHIVE_MODULES_BUNDLE) jre-base-image jigsaw-pkgs)
 endif
@@ -52,7 +48,7 @@ endif
 jprt_build_fastdebug: fastdebug $(JPRT_BUILD_TARGETS)
 	( $(CD) $(OUTPUTDIR)/$(JPRT_ARCHIVE_IMAGE) && \
 	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
-ifdef BUILD_MODULES
+ifndef BUILD_LEGACY
 	( $(CD) $(OUTPUTDIR) && \
           $(ZIPEXE) -q -r $(JPRT_ARCHIVE_MODULES_BUNDLE) jre-base-image jigsaw-pkgs)
 endif
@@ -60,7 +56,7 @@ endif
 jprt_build_debug: debug $(JPRT_BUILD_TARGETS)
 	( $(CD) $(OUTPUTDIR)/$(JPRT_ARCHIVE_IMAGE) && \
 	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
-ifdef BUILD_MODULES
+ifndef BUILD_LEGACY
 	( $(CD) $(OUTPUTDIR) && \
           $(ZIPEXE) -q -r $(JPRT_ARCHIVE_MODULES_BUNDLE) jre-base-image jigsaw-pkgs)
 endif
diff --git a/jdk/make/jprt.properties b/jdk/make/jprt.properties
index 55da542..740fbb0 100644
--- a/jdk/make/jprt.properties
+++ b/jdk/make/jprt.properties
@@ -267,6 +267,15 @@ jprt.make.rule.all.test.targets=    				\
     windows_i586_5.1-product-c1-jdk_security3, 			\
     windows_x64_5.2-product-c2-jdk_security3, 			\
     								\
+    solaris_sparc_5.10-product-c1-jdk_sound, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_sound, 			\
+    solaris_i586_5.10-product-c1-jdk_sound, 			\
+    solaris_x64_5.10-product-c2-jdk_sound, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_sound, 			\
+    linux_x64_2.6-product-c2-jdk_sound, 			\
+    windows_i586_5.1-product-c1-jdk_sound, 			\
+    windows_x64_5.2-product-c2-jdk_sound, 			\
+    								\
     solaris_sparc_5.10-product-c1-jdk_swing, 			\
     solaris_sparcv9_5.10-product-c2-jdk_swing, 			\
     solaris_i586_5.10-product-c1-jdk_swing, 			\
diff --git a/jdk/make/mkdemo/Makefile b/jdk/make/mkdemo/Makefile
index c134316..6bf93e5 100644
--- a/jdk/make/mkdemo/Makefile
+++ b/jdk/make/mkdemo/Makefile
@@ -39,9 +39,14 @@ SUBDIRS_tools      = jpda jvmti
 
 include $(BUILDDIR)/common/Subdirs.gmk
 
+TOPLEVEL_FILES =							\
+	$(DEMODIR)/README
+
 all build:: nbproject
 	$(SUBDIRS-loop)
 
+all build:: $(TOPLEVEL_FILES)
+
 nbproject:
 	$(RM) -r $(DEMODIR)/nbproject
 	$(MKDIR) -p $(DEMODIR)
@@ -54,8 +59,10 @@ ifndef OPENJDK
 	  ( $(CD) $(DEMODIR) && $(TAR) -xf - )
 endif
 
+$(DEMODIR)/%: $(DEMOSRCDIR)/%
+	$(install-file)
+
 clean clobber::
 	$(SUBDIRS-loop)
 	$(RM) -r $(DEMODIR)
 	$(RM) -r $(DEMOCLASSDIR)
-
diff --git a/jdk/make/mksample/Makefile b/jdk/make/mksample/Makefile
index bdc770b..aa4e31d 100644
--- a/jdk/make/mksample/Makefile
+++ b/jdk/make/mksample/Makefile
@@ -49,8 +49,16 @@ endif
 
 include $(BUILDDIR)/common/Subdirs.gmk
 
+TOPLEVEL_FILES =							\
+	$(SAMPLEDIR)/README
+
 all build clean clobber::
 	$(SUBDIRS-loop)
 
+all build:: $(TOPLEVEL_FILES)
+
+$(SAMPLEDIR)/%: $(SAMPLESRCDIR)/%
+	$(install-file)
+
 clobber clean ::
 	$(RM) -r $(SAMPLEDIR)
diff --git a/jdk/make/modules/modules.config b/jdk/make/modules/modules.config
index 1c552a9..c06423b 100644
--- a/jdk/make/modules/modules.config
+++ b/jdk/make/modules/modules.config
@@ -99,7 +99,6 @@ module base {
             java.text.**;
 
     exclude java.util.jar.Pack200*,
-            java.util.XMLUtils,
             java.text.Bidi;
 
     include java.lang.invoke.**, sun.invoke.**;
@@ -107,6 +106,7 @@ module base {
     include java.io.*;
 
     include java.nio.**, com.sun.nio.file.*;
+    include com.oracle.nio.**;
     include sun.nio.fs.*, sun.nio.ch.*, sun.nio.ByteBuffered;
     exclude sun.nio.ch.Sctp*;
     exclude META-INF/services/java.nio.file.spi.FileSystemProvider;
@@ -268,11 +268,13 @@ module base {
             sun.misc.LIFOQueueEnumerator,
             sun.misc.GC,
             sun.misc.PerformanceLogger,
-            sun.misc.PostVMInitHook,
             sun.misc.Queue,
             sun.misc.QueueElement,
             sun.misc.Ref;
 
+    // include usage tracker 
+    include sun.usagetracker.*;
+
     // On Windows, OSEnvironment dependency
     include sun.io.Win32ErrorMode;
 
@@ -695,7 +697,7 @@ module jaxp-api {
             javax.xml.soap.**,
             javax.xml.ws.**;
 
-    include java.util.XMLUtils;
+    include sun.util.xml.*;
 }
 
 module jaxp-xerces-impl {
@@ -793,7 +795,7 @@ module common-annotations {
 /**************************************************************************/
 
 module tools.idlj {
-    include com.sun.tools.corba.se.idl.**;
+    include com.sun.tools.corba.**;
     class com.sun.tools.corba.se.idl.toJavaPortable.Compile;
 }
 
@@ -934,15 +936,6 @@ module net-compat {
 }
 
 /**************************************************************************
- *            J4B features                                                *
- **************************************************************************/
-
-module j4b {
-    include sun.misc.PostVMInitHook;
-    include sun.usagetracker.*;
-}
-
-/**************************************************************************
  *            language tools                                              *
  **************************************************************************/
 
@@ -1165,15 +1158,6 @@ module tools.pack200 {
     class com.sun.java.util.jar.pack.Driver;
 }
 
-module deprecated.tools {
-    // add deprecated security classes once b78 is promoted
-    include sun.tools.jar.JarImageSource; // see 6915797
-
-    // expect no com.sun.tools class in this module
-    // this include rule is for us to double check
-    include com.sun.tools.**;
-}
-
 /**************************************************************************/
 
 // these classes will be removed from JRE - see 6909002
diff --git a/jdk/make/modules/modules.group b/jdk/make/modules/modules.group
index af4ec5f..6dd06b8 100644
--- a/jdk/make/modules/modules.group
+++ b/jdk/make/modules/modules.group
@@ -76,12 +76,6 @@ module jdk.base {
     class org.openjdk.jigsaw.Hi;    // testing
 }
 
-module jdk.advanced {
-    // sun.misc.PostVMInitHook is loaded by the VM
-    requires local jdk.boot;
-    include j4b;
-}
-
 module jdk.instrument {
     requires local jdk.boot;
     include instrument;
diff --git a/jdk/make/netbeans/README b/jdk/make/netbeans/README
index a375b8b..ffae80f 100644
--- a/jdk/make/netbeans/README
+++ b/jdk/make/netbeans/README
@@ -5,7 +5,7 @@ Working on OpenJDK using NetBeans
 
 Getting Started
     In addition to the source bundle for Open JDK, you'll need to download
-    and install copies of the JDK and of NetBeans 6. And if you want to run
+    and install copies of the JDK and of NetBeans. And if you want to run
     tests on the JDK (you do want to run tests, right?), you'll need to
     install the jtreg test harness.
 
@@ -20,30 +20,28 @@ Getting Started
 
     Downloading the JDK
         You've probably done this a million times. Download and install it
-        from http://java.sun.com/javase
+        from http://www.oracle.com/technetwork/java/javase/overview/index.html
 
     Downloading the OpenJDK sources
         Since you're reading this, d you've already downloaded the OpenJDK
         source bundle.  Later in this document we'll refer to the location
         where you installed the Open JDK sources as *install-dir*.
 
-    Downloading a pre-built, JDK 7
+    Downloading a pre-built, JDK 8
         This will be necessary to do builds of some of the projects.  In
         general, you want to download and install a pre-built JDK that
         corresponds to the OpenJDK sources you download.  Building the entire
         OpenJDK depends on a few parts of the pre-built JDK.  Get this from
-        http://download.java.net/jdk7/binaries
+        http://download.java.net/jdk8/binaries
 
-        Note: For working on certain projects, like JMX and JConsole, you 
-              may find convenient to use a pre-built version of JDK 7 (or 
+        Note: For working on certain projects, like JMX and JConsole, you
+              may find convenient to use a pre-built version of JDK 8 (or
               OpenJDK) rather than building your own. This will allow you
               to build only that part of the OpenJDK sources which correspond
-              to that project. 
+              to that project.
 
-    NetBeans 6
-        Yep, NetBeans *6*. Nope, not FCS'd yet. We're on the edge here,
-        enjoy it! Get the latest working development build of NetBeans 6
-        from http://netbeans.org
+    NetBeans 7.0 or later
+        Older versions may also work but are unsupported.
 
     jtreg
         "jtreg" is the test harness for running OpenJDK's regression tests.
@@ -51,7 +49,7 @@ Getting Started
 
     Ant
        NetBeans comes with ant, but if you use a separately-installed copy
-       please make sure that it is at least version 1.7.0.
+       please make sure that it is at least version 1.8.1.
 
 Configuring
     Building OpenJDK is hard and complex. No, strike that. While it's not
@@ -92,8 +90,8 @@ Configuring
         situation:
 
         make.options=\
-            ALT_BOOTDIR=/home/me/bin/jdk1.6.0 \
-            ALT_JDK_IMPORT_PATH=/home/me/bin/jdk1.7.0 \
+            ALT_BOOTDIR=/home/me/bin/jdk1.7.0 \
+            ALT_JDK_IMPORT_PATH=/home/me/bin/jdk1.8.0 \
             OPENJDK=true
 
         The trailing '\' are important, so that make gets the above as a
@@ -107,7 +105,7 @@ Configuring
   Windows-specific configuration
     First, please note that the entire JDK cannot currently be built on
     Windows platforms.  This will likely limit your ability to build
-    make-based projects.  See 
+    make-based projects.  See
          *install-dir*/jdk/make/README-builds.html
     for full information on issues with building on the Windows platform.
 
@@ -141,7 +139,7 @@ Configuring
     editor.
 
   Locale Requirements
-    To build the Open JDK sources, be certain that you are using the "C"
+    To build the OpenJDK sources, be certain that you are using the "C"
     locale on Unix (R) platforms, or "English (United States)" locale on
     Windows.
 
@@ -220,13 +218,13 @@ Provided NetBeans projects
         running and debugging JConsole.
 
         This ant-based project does *not* require that you build the jdk
-        project first, provided that you use a pre-built version of JDK 7. 
+        project first, provided that you use a pre-built version of JDK 7.
 
     Java (TM) Management Extensions (JMX(TM)) API (directory "jmx")
         For working on JMX source code. Creates ../dist/lib/jmx.jar.
 
         This ant-based project does *not* require that you build the jdk
-        project first, provided that you use a pre-built version of JDK 7. 
+        project first, provided that you use a pre-built version of JDK 7.
 
     Jar & Zip (directory "jarzip")
         For working on jar & zip. It builds the zip library (including
@@ -242,12 +240,12 @@ Provided NetBeans projects
         running and debugging the SampleTree demo.
 
         This ant-based project does *not* require that you build the jdk
-        project first, provided that you use a pre-built version of JDK 7. 
+        project first, provided that you use a pre-built version of JDK 7.
 
     In addition, there are projects for building the compiler, javadoc,
     and related tools, in the OpenJDK langtools component.  These
     projects are separate from those described here, and have their
-    own set of guidelines and conventions. For more details, see the 
+    own set of guidelines and conventions. For more details, see the
     README files in make/netbeans in the OpenJDK langtools component.
 
 Running Tests
@@ -603,13 +601,6 @@ Appendix 1: Customizations
     * -clean-make
 
 Known Issues
-  Tests won't run: waiting for lock
-    Occasionally when running tests, there will be a delay, followed by a
-    message like this:
-        Waiting to lock test result cache for
-           /tmp/jdk/build/linux-i586/jtreg/jconsole/JTwork for 20 seconds
-    The workaround is to stop the tests, rm -rf the offending jtreg/<project>
-    directory by hand, and re-run the tests.
 
   Can't run nor debug a single test in the JConsole test
     In most projects, you can run a single test by opening it in the editor,
diff --git a/jdk/make/netbeans/common/closed-share-view.ent b/jdk/make/netbeans/common/closed-share-view.ent
index 6ef2933..82fe0ca 100644
--- a/jdk/make/netbeans/common/closed-share-view.ent
+++ b/jdk/make/netbeans/common/closed-share-view.ent
@@ -31,8 +31,8 @@
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 -->
 
-<source-folder style="packages">
-    <label>Closed-Source Packages</label>
+<source-folder style="tree">
+    <label>Closed Sources</label>
     <location>${root}/src/closed/share/classes</location>
     <includes>${includes}</includes>
     <excludes>${excludes}</excludes>
diff --git a/jdk/make/netbeans/common/java-data-native.ent b/jdk/make/netbeans/common/java-data-native.ent
index fb531ed..a801e82 100644
--- a/jdk/make/netbeans/common/java-data-native.ent
+++ b/jdk/make/netbeans/common/java-data-native.ent
@@ -38,7 +38,12 @@
         <package-root>${root}/src/solaris/classes</package-root>
         <classpath mode="boot">${bootstrap.jdk}/jre/lib/rt.jar</classpath>
         <built-to>${root}/build/${platform}-${arch}/classes</built-to>
-        <javadoc-built-to>${root}/build/javadoc/${name}</javadoc-built-to>
+        <javadoc-built-to>${root}/build/${platform}-${arch}/docs/api</javadoc-built-to>
+        <source-level>1.7</source-level>
+    </compilation-unit>
+    <compilation-unit>
+        <package-root>${root}/test</package-root>
+        <unit-tests/>
         <source-level>1.7</source-level>
     </compilation-unit>
 </java-data>
diff --git a/jdk/make/netbeans/common/java-data-no-native.ent b/jdk/make/netbeans/common/java-data-no-native.ent
index 2e1b791..a204f3a 100644
--- a/jdk/make/netbeans/common/java-data-no-native.ent
+++ b/jdk/make/netbeans/common/java-data-no-native.ent
@@ -36,7 +36,12 @@
         <package-root>${root}/src/share/classes</package-root>
         <classpath mode="boot">${bootstrap.jdk}/jre/lib/rt.jar</classpath>
         <built-to>${root}/build/${platform}-${arch}/classes</built-to>
-        <javadoc-built-to>${root}/build/javadoc/${name}</javadoc-built-to>
+        <javadoc-built-to>${root}/build/${platform}-${arch}/docs/api</javadoc-built-to>
+        <source-level>1.7</source-level>
+    </compilation-unit>
+    <compilation-unit>
+        <package-root>${root}/test</package-root>
+        <unit-tests/>
         <source-level>1.7</source-level>
     </compilation-unit>
 </java-data>
diff --git a/jdk/make/netbeans/common/jtreg-view.ent b/jdk/make/netbeans/common/jtreg-view.ent
index 899df88..ce0d2da 100644
--- a/jdk/make/netbeans/common/jtreg-view.ent
+++ b/jdk/make/netbeans/common/jtreg-view.ent
@@ -31,7 +31,7 @@
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 -->
 
-<source-folder style="packages">
+<source-folder style="tree">
     <label>Tests</label>
     <location>${root}/test</location>
     <includes>${jtreg.tests}</includes>
diff --git a/jdk/make/netbeans/common/sample-view.ent b/jdk/make/netbeans/common/sample-view.ent
index 70cdd23..9b470ef 100644
--- a/jdk/make/netbeans/common/sample-view.ent
+++ b/jdk/make/netbeans/common/sample-view.ent
@@ -31,7 +31,7 @@
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 -->
 
-<source-folder style="packages">
+<source-folder style="tree">
     <label>Samples</label>
     <location>${root}/src/share/sample</location>
     <includes>${samples}</includes>
diff --git a/jdk/make/netbeans/common/share-view.ent b/jdk/make/netbeans/common/share-view.ent
index 0b0dde0..2d60788 100644
--- a/jdk/make/netbeans/common/share-view.ent
+++ b/jdk/make/netbeans/common/share-view.ent
@@ -31,7 +31,7 @@
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 -->
 
-<source-folder style="packages">
+<source-folder style="tree">
     <label>Sources for All Platforms</label>
     <location>${root}/src/share/classes</location>
     <includes>${includes}</includes>
diff --git a/jdk/make/netbeans/common/unix-view.ent b/jdk/make/netbeans/common/unix-view.ent
index c1176f6..84f168b 100644
--- a/jdk/make/netbeans/common/unix-view.ent
+++ b/jdk/make/netbeans/common/unix-view.ent
@@ -35,7 +35,7 @@
   UNIX is a registered trademark in the United States and other countries,
   exclusively licensed through X/Open Company, Ltd.
 -->
-<source-folder style="packages">
+<source-folder style="tree">
     <label>Sources for Unix® Platform</label>
     <location>${root}/src/solaris/classes</location>
     <includes>${includes}</includes>
diff --git a/jdk/make/netbeans/common/windows-view.ent b/jdk/make/netbeans/common/windows-view.ent
index 38419c2..8e80c6c 100644
--- a/jdk/make/netbeans/common/windows-view.ent
+++ b/jdk/make/netbeans/common/windows-view.ent
@@ -31,7 +31,7 @@
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 -->
 
-<source-folder style="packages">
+<source-folder style="tree">
     <label>Sources for Windows Platform</label>
     <location>${root}/src/windows/classes</location>
     <includes>${includes}</includes>
diff --git a/jdk/make/netbeans/j2se/nbproject/project.xml b/jdk/make/netbeans/j2se/nbproject/project.xml
index 7cc5b51..784ab72 100644
--- a/jdk/make/netbeans/j2se/nbproject/project.xml
+++ b/jdk/make/netbeans/j2se/nbproject/project.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
- Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
 
  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
@@ -36,11 +36,13 @@
     <!ENTITY share-sources SYSTEM "../../common/share-sources.ent">
     <!ENTITY unix-sources SYSTEM "../../common/unix-sources.ent">
     <!ENTITY windows-sources SYSTEM "../../common/windows-sources.ent">
+    <!ENTITY jtreg-sources SYSTEM "../../common/jtreg-sources.ent">
     <!ENTITY build-folder SYSTEM "../../common/build-folder.ent">
     <!ENTITY standard-bindings SYSTEM "../../common/standard-bindings.ent">
     <!ENTITY share-view SYSTEM "../../common/share-view.ent">
     <!ENTITY unix-view SYSTEM "../../common/unix-view.ent">
     <!ENTITY windows-view SYSTEM "../../common/windows-view.ent">
+    <!ENTITY jtreg-view SYSTEM "../../common/jtreg-view.ent">
     <!ENTITY file-view SYSTEM "../../common/file-view.ent">
     <!ENTITY standard-actions SYSTEM "../../common/standard-actions.ent">
     <!ENTITY java-data-native SYSTEM "../../common/java-data-native.ent">
@@ -59,6 +61,7 @@
                 &unix-sources;
                 &windows-sources;
                 &build-folder;
+		&jtreg-sources;
             </folders>
             <ide-actions>
                 <action name="build">
@@ -82,6 +85,7 @@
                     &share-view;
                     &unix-view;
                     &windows-view;
+                    &jtreg-view;
                     &file-view;
                 </items>
                 <context-menu>
diff --git a/jdk/make/sun/Makefile b/jdk/make/sun/Makefile
index 4c19f4e..c3a8f18 100644
--- a/jdk/make/sun/Makefile
+++ b/jdk/make/sun/Makefile
@@ -68,7 +68,7 @@ else
 endif
 
 # nio need to be compiled before awt to have all charsets ready
-SUBDIRS            = jar security javazic misc net nio text launcher
+SUBDIRS            = jar security javazic misc net nio text util launcher
 
 ifdef BUILD_HEADLESS_ONLY
   DISPLAY_LIBS = awt $(HEADLESS_SUBDIR)
diff --git a/jdk/make/sun/javazic/tzdata/VERSION b/jdk/make/sun/javazic/tzdata/VERSION
index c520962..9ccfe4c 100644
--- a/jdk/make/sun/javazic/tzdata/VERSION
+++ b/jdk/make/sun/javazic/tzdata/VERSION
@@ -21,4 +21,4 @@
 # or visit www.oracle.com if you need additional information or have any
 # questions.
 #
-tzdata2011g
+tzdata2011j
diff --git a/jdk/make/sun/javazic/tzdata/africa b/jdk/make/sun/javazic/tzdata/africa
index a43e73c..6fb9d64 100644
--- a/jdk/make/sun/javazic/tzdata/africa
+++ b/jdk/make/sun/javazic/tzdata/africa
@@ -80,7 +80,7 @@
 # I invented the following abbreviations; corrections are welcome!
 #	 2:00	WAST	West Africa Summer Time
 #	 2:30	BEAT	British East Africa Time (no longer used)
-#	 2:44:45 BEAUT	British East Africa Unified Time (no longer used)
+#	 2:45	BEAUT	British East Africa Unified Time (no longer used)
 #	 3:00	CAST	Central Africa Summer Time (no longer used)
 #	 3:00	SAST	South Africa Summer Time (no longer used)
 #	 3:00	EAT	East Africa Time
@@ -418,7 +418,7 @@ Zone	Africa/Bissau	-1:02:20 -	LMT	1911 May 26
 Zone	Africa/Nairobi	2:27:16	-	LMT	1928 Jul
 			3:00	-	EAT	1930
 			2:30	-	BEAT	1940
-			2:44:45	-	BEAUT	1960
+			2:45	-	BEAUT	1960
 			3:00	-	EAT
 
 # Lesotho
@@ -979,6 +979,11 @@ Zone	Africa/Khartoum	2:10:08 -	LMT	1931
 			2:00	Sudan	CA%sT	2000 Jan 15 12:00
 			3:00	-	EAT
 
+# South Sudan
+Zone	Africa/Juba	2:06:24 -	LMT	1931
+			2:00	Sudan	CA%sT	2000 Jan 15 12:00
+			3:00	-	EAT
+
 # Swaziland
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Africa/Mbabane	2:04:24 -	LMT	1903 Mar
@@ -988,7 +993,7 @@ Zone	Africa/Mbabane	2:04:24 -	LMT	1903 Mar
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Africa/Dar_es_Salaam 2:37:08 -	LMT	1931
 			3:00	-	EAT	1948
-			2:44:45	-	BEAUT	1961
+			2:45	-	BEAUT	1961
 			3:00	-	EAT
 
 # Togo
@@ -1114,7 +1119,7 @@ Zone	Africa/Tunis	0:40:44 -	LMT	1881 May 12
 Zone	Africa/Kampala	2:09:40 -	LMT	1928 Jul
 			3:00	-	EAT	1930
 			2:30	-	BEAT	1948
-			2:44:45	-	BEAUT	1957
+			2:45	-	BEAUT	1957
 			3:00	-	EAT
 
 # Zambia
diff --git a/jdk/make/sun/javazic/tzdata/antarctica b/jdk/make/sun/javazic/tzdata/antarctica
index 17f44a8..2fa4232 100644
--- a/jdk/make/sun/javazic/tzdata/antarctica
+++ b/jdk/make/sun/javazic/tzdata/antarctica
@@ -41,18 +41,6 @@
 # I made up all time zone abbreviations mentioned here; corrections welcome!
 # FORMAT is `zzz' and GMTOFF is 0 for locations while uninhabited.
 
-# These rules are stolen from the `europe' file.
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	RussAQ	1981	1984	-	Apr	 1	 0:00	1:00	S
-Rule	RussAQ	1981	1983	-	Oct	 1	 0:00	0	-
-Rule	RussAQ	1984	1991	-	Sep	lastSun	 2:00s	0	-
-Rule	RussAQ	1985	1991	-	Mar	lastSun	 2:00s	1:00	S
-Rule	RussAQ	1992	only	-	Mar	lastSat	 23:00	1:00	S
-Rule	RussAQ	1992	only	-	Sep	lastSat	 23:00	0	-
-Rule	RussAQ	1993	max	-	Mar	lastSun	 2:00s	1:00	S
-Rule	RussAQ	1993	1995	-	Sep	lastSun	 2:00s	0	-
-Rule	RussAQ	1996	max	-	Oct	lastSun	 2:00s	0	-
-
 # These rules are stolen from the `southamerica' file.
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	ArgAQ	1964	1966	-	Mar	 1	0:00	0	-
diff --git a/jdk/make/sun/javazic/tzdata/asia b/jdk/make/sun/javazic/tzdata/asia
index d4d8ab1..36c5237 100644
--- a/jdk/make/sun/javazic/tzdata/asia
+++ b/jdk/make/sun/javazic/tzdata/asia
@@ -99,6 +99,10 @@ Rule RussiaAsia	1993	max	-	Mar	lastSun	 2:00s	1:00	S
 Rule RussiaAsia	1993	1995	-	Sep	lastSun	 2:00s	0	-
 Rule RussiaAsia	1996	max	-	Oct	lastSun	 2:00s	0	-
 
+# From Arthur David Olson (2011-06-15):
+# While Russia abandoned DST in 2011, Armenia may choose to
+# follow Russia's "old" rules.
+
 # Afghanistan
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Kabul	4:36:48 -	LMT	1890
diff --git a/jdk/make/sun/javazic/tzdata/australasia b/jdk/make/sun/javazic/tzdata/australasia
index 61d338f..0330fcd 100644
--- a/jdk/make/sun/javazic/tzdata/australasia
+++ b/jdk/make/sun/javazic/tzdata/australasia
@@ -521,7 +521,7 @@ Zone Pacific/Pago_Pago	 12:37:12 -	LMT	1879 Jul  5
 # http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20%28English%29%20-%20Final%207-7-091.pdf
 # </a>
 
-# From Raymond Hughes (2010-10-07):
+# From Laupue Raymond Hughes (2010-10-07):
 # Please see
 # <a href="http://www.mcil.gov.ws">
 # http://www.mcil.gov.ws
@@ -531,7 +531,7 @@ Zone Pacific/Pago_Pago	 12:37:12 -	LMT	1879 Jul  5
 # to 01:00am and First Sunday April 2011 (03/04/11) - adjust clocks
 # backwards from 1:00am to 12:00am"
 
-# From Raymond Hughes (2011-03-07)
+# From Laupue Raymond Hughes (2011-03-07):
 # I believe this will be posted shortly on the website
 # <a href="http://www.mcil.gov.ws">
 # www.mcil.gov.ws
@@ -551,12 +551,74 @@ Zone Pacific/Pago_Pago	 12:37:12 -	LMT	1879 Jul  5
 # Margaret Fruean ACTING CHIEF EXECUTIVE OFFICER MINISTRY OF COMMERCE,
 # INDUSTRY AND LABOUR 28th February 2011
 
+# From David Zuelke (2011-05-09):
+# Subject: Samoa to move timezone from east to west of international date line
+# 
+# <a href="http://www.morningstar.co.uk/uk/markets/newsfeeditem.aspx?id=138501958347963">
+# http://www.morningstar.co.uk/uk/markets/newsfeeditem.aspx?id=138501958347963
+# </a>
+
+# From Mark Sim-Smith (2011-08-17):
+# I have been in contact with Leilani Tuala Warren from the Samoa Law
+# Reform Commission, and she has sent me a copy of the Bill that she
+# confirmed has been passed...Most of the sections are about maps rather
+# than the time zone change, but I'll paste the relevant bits below. But
+# the essence is that at midnight 29 Dec (UTC-11 I suppose), Samoa
+# changes from UTC-11 to UTC+13:
+#
+# International Date Line Bill 2011
+#
+# AN ACT to provide for the change to standard time in Samoa and to make
+# consequential amendments to the position of the International Date
+# Line, and for related purposes.
+#
+# BE IT ENACTED by the Legislative Assembly of Samoa in Parliament
+# assembled as follows:
+#
+# 1. Short title and commencement-(1) This Act may be cited as the
+# International Date Line Act 2011. (2) Except for section 5(3) this Act
+# commences at 12 o'clock midnight, on Thursday 29th December 2011. (3)
+# Section 5(3) commences on the date of assent by the Head of State.
+#
+# [snip]
+#
+# 3. Interpretation - [snip] "Samoa standard time" in this Act and any
+# other statute of Samoa which refers to 'Samoa standard time' means the
+# time 13 hours in advance of Co-ordinated Universal Time.
+#
+# 4. Samoa standard time - (1) Upon the commencement of this Act, Samoa
+# standard time shall be set at 13 hours in advance of Co-ordinated
+# Universal Time for the whole of Samoa. (2) All references to Samoa's
+# time zone and to Samoa standard time in Samoa in all legislation and
+# instruments after the commencement of this Act shall be references to
+# Samoa standard time as provided for in this Act. (3) Nothing in this
+# Act affects the provisions of the Daylight Saving Act 2009, except that
+# it defines Samoa standard time....
+
+# From Laupue Raymond Hughes (2011-09-02):
+# <a href="http://www.mcil.gov.ws/mcil_publications.html">
+# http://www.mcil.gov.ws/mcil_publications.html
+# </a>
+#
+# here is the official website publication for Samoa DST and dateline change
+#
+# DST
+# Year	End	Time	Start	Time
+# 2011	- - -	- - -	24 September	3:00am to 4:00am
+# 2012	01 April	4:00am to 3:00am	- - -	- - -
+#
+# Dateline Change skip Friday 30th Dec 2011
+# Thursday 29th December 2011	23:59:59 Hours
+# Saturday 31st December 2011	00:00:00 Hours
 Zone Pacific/Apia	 12:33:04 -	LMT	1879 Jul  5
 			-11:26:56 -	LMT	1911
 			-11:30	-	SAMT	1950		# Samoa Time
 			-11:00	-	WST	2010 Sep 26
 			-11:00	1:00	WSDT	2011 Apr 2 4:00
-			-11:00	-	WST
+			-11:00	-	WST	2011 Sep 24 3:00
+			-11:00	1:00	WSDT	2011 Dec 30
+			 13:00	1:00	WSDT	2012 Apr 1 4:00
+			 13:00	-	WST
 
 # Solomon Is
 # excludes Bougainville, for which see Papua New Guinea
@@ -1228,7 +1290,7 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 # Lord Howe Island Board (controlling authority for the Island) is
 # seeking the community's views on various options for summer time
 # arrangements on the Island, e.g. advance clocks by 1 full hour
-# instead of only 30 minutes.  Dependant on the wishes of residents
+# instead of only 30 minutes.  [Dependent] on the wishes of residents
 # the Board may approach the NSW government to change the existing
 # arrangements.  The starting date for summer time on the Island will
 # however always coincide with the rest of NSW.
@@ -1354,7 +1416,7 @@ Zone	Pacific/Wallis	12:15:20 -	LMT	1901
 
 # From Paul Eggert (1996-01-22):
 # Today's _Wall Street Journal_ (page 1) reports that Kiribati
-# ``declared it the same day throught the country as of Jan. 1, 1995''
+# ``declared it the same day [throughout] the country as of Jan. 1, 1995''
 # as part of the competition to be first into the 21st century.
 
 
diff --git a/jdk/make/sun/javazic/tzdata/europe b/jdk/make/sun/javazic/tzdata/europe
index 89bf6c5..5c6abc1 100644
--- a/jdk/make/sun/javazic/tzdata/europe
+++ b/jdk/make/sun/javazic/tzdata/europe
@@ -587,6 +587,26 @@ Rule	Russia	1993	max	-	Mar	lastSun	 2:00s	1:00	S
 Rule	Russia	1993	1995	-	Sep	lastSun	 2:00s	0	-
 Rule	Russia	1996	max	-	Oct	lastSun	 2:00s	0	-
 
+# From Alexander Krivenyshev (2011-06-14):
+# According to Kremlin press service, Russian President Dmitry Medvedev
+# signed a federal law "On calculation of time" on June 9, 2011.
+# According to the law Russia is abolishing daylight saving time.
+# 
+# Medvedev signed a law "On the Calculation of Time" (in russian): 
+# <a href="http://bmockbe.ru/events/?ID=7583">
+# http://bmockbe.ru/events/?ID=7583
+# </a>
+# 
+# Medvedev signed a law on the calculation of the time (in russian):
+# <a href="http://www.regnum.ru/news/polit/1413906.html">
+# http://www.regnum.ru/news/polit/1413906.html
+# </a>
+
+# From Arthur David Olson (2011-06-15):
+# Take "abolishing daylight saving time" to mean that time is now considered
+# to be standard.
+# At least for now, keep the "old" Russia rules for the benefit of Belarus.
+
 # These are for backward compatibility with older versions.
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -2035,7 +2055,8 @@ Zone Europe/Kaliningrad	 1:22:00 -	LMT	1893 Apr
 			 1:00	C-Eur	CE%sT	1945
 			 2:00	Poland	CE%sT	1946
 			 3:00	Russia	MSK/MSD	1991 Mar 31 2:00s
-			 2:00	Russia	EE%sT
+			 2:00	Russia	EE%sT	2011 Mar 27 2:00s
+			 3:00	-	KALT
 #
 # From Oscar van Vlijmen (2001-08-25): [This region consists of]
 # Respublika Adygeya, Arkhangel'skaya oblast',
@@ -2064,7 +2085,8 @@ Zone Europe/Moscow	 2:30:20 -	LMT	1880
 			 2:00	-	EET	1930 Jun 21
 			 3:00	Russia	MSK/MSD	1991 Mar 31 2:00s
 			 2:00	Russia	EE%sT	1992 Jan 19 2:00s
-			 3:00	Russia	MSK/MSD
+			 3:00	Russia	MSK/MSD	2011 Mar 27 2:00s
+			 4:00	-	MSK
 #
 # Astrakhanskaya oblast', Kirovskaya oblast', Saratovskaya oblast',
 # Volgogradskaya oblast'.  Shanks & Pottenger say Kirov is still at +0400
@@ -2077,7 +2099,8 @@ Zone Europe/Volgograd	 2:57:40 -	LMT	1920 Jan  3
 			 4:00	Russia	VOL%sT	1989 Mar 26 2:00s # Volgograd T
 			 3:00	Russia	VOL%sT	1991 Mar 31 2:00s
 			 4:00	-	VOLT	1992 Mar 29 2:00s
-			 3:00	Russia	VOL%sT
+			 3:00	Russia	VOL%sT	2011 Mar 27 2:00s
+			 4:00	-	VOLT
 #
 # From Oscar van Vlijmen (2001-08-25): [This region consists of]
 # Samarskaya oblast', Udmyrtskaya respublika
@@ -2089,7 +2112,8 @@ Zone Europe/Samara	 3:20:36 -	LMT	1919 Jul  1 2:00
 			 2:00	Russia	KUY%sT	1991 Sep 29 2:00s
 			 3:00	-	KUYT	1991 Oct 20 3:00
 			 4:00	Russia	SAM%sT	2010 Mar 28 2:00s # Samara Time
-			 3:00	Russia	SAM%sT
+			 3:00	Russia	SAM%sT	2011 Mar 27 2:00s
+			 4:00	-	SAMT
 
 #
 # From Oscar van Vlijmen (2001-08-25): [This region consists of]
@@ -2102,7 +2126,8 @@ Zone Asia/Yekaterinburg	 4:02:24 -	LMT	1919 Jul 15 4:00
 			 4:00	-	SVET	1930 Jun 21 # Sverdlovsk Time
 			 5:00	Russia	SVE%sT	1991 Mar 31 2:00s
 			 4:00	Russia	SVE%sT	1992 Jan 19 2:00s
-			 5:00	Russia	YEK%sT	# Yekaterinburg Time
+			 5:00	Russia	YEK%sT	2011 Mar 27 2:00s
+			 6:00	-	YEKT	# Yekaterinburg Time
 #
 # From Oscar van Vlijmen (2001-08-25): [This region consists of]
 # Respublika Altaj, Altajskij kraj, Omskaya oblast'.
@@ -2110,7 +2135,8 @@ Zone Asia/Omsk		 4:53:36 -	LMT	1919 Nov 14
 			 5:00	-	OMST	1930 Jun 21 # Omsk TIme
 			 6:00	Russia	OMS%sT	1991 Mar 31 2:00s
 			 5:00	Russia	OMS%sT	1992 Jan 19 2:00s
-			 6:00	Russia	OMS%sT
+			 6:00	Russia	OMS%sT	2011 Mar 27 2:00s
+			 7:00	-	OMST
 #
 # From Paul Eggert (2006-08-19): I'm guessing about Tomsk here; it's
 # not clear when it switched from +7 to +6.
@@ -2120,7 +2146,8 @@ Zone Asia/Novosibirsk	 5:31:40 -	LMT	1919 Dec 14 6:00
 			 7:00	Russia	NOV%sT	1991 Mar 31 2:00s
 			 6:00	Russia	NOV%sT	1992 Jan 19 2:00s
 			 7:00	Russia	NOV%sT	1993 May 23 # say Shanks & P.
-			 6:00	Russia	NOV%sT
+			 6:00	Russia	NOV%sT	2011 Mar 27 2:00s
+			 7:00	-	NOVT
 
 # From Alexander Krivenyshev (2009-10-13):
 # Kemerovo oblast' (Kemerovo region) in Russia will change current time zone on
@@ -2153,7 +2180,8 @@ Zone Asia/Novokuznetsk	 5:48:48 -	NMT	1920 Jan  6
 			 7:00	Russia	KRA%sT	1991 Mar 31 2:00s
 			 6:00	Russia	KRA%sT	1992 Jan 19 2:00s
 			 7:00	Russia	KRA%sT	2010 Mar 28 2:00s
-			 6:00	Russia	NOV%sT # Novosibirsk/Novokuznetsk Time
+			 6:00	Russia	NOV%sT	2011 Mar 27 2:00s
+			 7:00	-	NOVT # Novosibirsk/Novokuznetsk Time
 
 #
 # From Oscar van Vlijmen (2001-08-25): [This region consists of]
@@ -2164,7 +2192,8 @@ Zone Asia/Krasnoyarsk	 6:11:20 -	LMT	1920 Jan  6
 			 6:00	-	KRAT	1930 Jun 21 # Krasnoyarsk Time
 			 7:00	Russia	KRA%sT	1991 Mar 31 2:00s
 			 6:00	Russia	KRA%sT	1992 Jan 19 2:00s
-			 7:00	Russia	KRA%sT
+			 7:00	Russia	KRA%sT	2011 Mar 27 2:00s
+			 8:00	-	KRAT
 #
 # From Oscar van Vlijmen (2001-08-25): [This region consists of]
 # Respublika Buryatiya, Irkutskaya oblast',
@@ -2174,7 +2203,8 @@ Zone Asia/Irkutsk	 6:57:20 -	LMT	1880
 			 7:00	-	IRKT	1930 Jun 21 # Irkutsk Time
 			 8:00	Russia	IRK%sT	1991 Mar 31 2:00s
 			 7:00	Russia	IRK%sT	1992 Jan 19 2:00s
-			 8:00	Russia	IRK%sT
+			 8:00	Russia	IRK%sT	2011 Mar 27 2:00s
+			 9:00	-	IRKT
 #
 # From Oscar van Vlijmen (2003-10-18): [This region consists of]
 # Aginskij Buryatskij avtonomnyj okrug, Amurskaya oblast',
@@ -2197,7 +2227,8 @@ Zone Asia/Yakutsk	 8:38:40 -	LMT	1919 Dec 15
 			 8:00	-	YAKT	1930 Jun 21 # Yakutsk Time
 			 9:00	Russia	YAK%sT	1991 Mar 31 2:00s
 			 8:00	Russia	YAK%sT	1992 Jan 19 2:00s
-			 9:00	Russia	YAK%sT
+			 9:00	Russia	YAK%sT	2011 Mar 27 2:00s
+			 10:00	-	YAKT
 #
 # From Oscar van Vlijmen (2003-10-18): [This region consists of]
 # Evrejskaya avtonomnaya oblast', Khabarovskij kraj, Primorskij kraj,
@@ -2210,7 +2241,8 @@ Zone Asia/Vladivostok	 8:47:44 -	LMT	1922 Nov 15
 			 9:00	-	VLAT	1930 Jun 21 # Vladivostok Time
 			10:00	Russia	VLA%sT	1991 Mar 31 2:00s
 			 9:00	Russia	VLA%sST	1992 Jan 19 2:00s
-			10:00	Russia	VLA%sT
+			10:00	Russia	VLA%sT	2011 Mar 27 2:00s
+			11:00	-	VLAT
 #
 # Sakhalinskaya oblast'.
 # The Zone name should be Yuzhno-Sakhalinsk, but that's too long.
@@ -2220,7 +2252,8 @@ Zone Asia/Sakhalin	 9:30:48 -	LMT	1905 Aug 23
 			11:00	Russia	SAK%sT	1991 Mar 31 2:00s # Sakhalin T.
 			10:00	Russia	SAK%sT	1992 Jan 19 2:00s
 			11:00	Russia	SAK%sT	1997 Mar lastSun 2:00s
-			10:00	Russia	SAK%sT
+			10:00	Russia	SAK%sT	2011 Mar 27 2:00s
+			11:00	-	SAKT
 #
 # From Oscar van Vlijmen (2003-10-18): [This region consists of]
 # Magadanskaya oblast', Respublika Sakha (Yakutiya).
@@ -2233,7 +2266,8 @@ Zone Asia/Magadan	10:03:12 -	LMT	1924 May  2
 			10:00	-	MAGT	1930 Jun 21 # Magadan Time
 			11:00	Russia	MAG%sT	1991 Mar 31 2:00s
 			10:00	Russia	MAG%sT	1992 Jan 19 2:00s
-			11:00	Russia	MAG%sT
+			11:00	Russia	MAG%sT	2011 Mar 27 2:00s
+			12:00	-	MAGT
 #
 # From Oscar van Vlijmen (2001-08-25): [This region consists of]
 # Kamchatskaya oblast', Koryakskij avtonomnyj okrug.
@@ -2244,7 +2278,8 @@ Zone Asia/Kamchatka	10:34:36 -	LMT	1922 Nov 10
 			12:00	Russia	PET%sT	1991 Mar 31 2:00s
 			11:00	Russia	PET%sT	1992 Jan 19 2:00s
 			12:00	Russia	PET%sT	2010 Mar 28 2:00s
-			11:00	Russia	PET%sT
+			11:00	Russia	PET%sT	2011 Mar 27 2:00s
+			12:00	-	PETT
 #
 # Chukotskij avtonomnyj okrug
 Zone Asia/Anadyr	11:49:56 -	LMT	1924 May  2
@@ -2253,7 +2288,8 @@ Zone Asia/Anadyr	11:49:56 -	LMT	1924 May  2
 			12:00	Russia	ANA%sT	1991 Mar 31 2:00s
 			11:00	Russia	ANA%sT	1992 Jan 19 2:00s
 			12:00	Russia	ANA%sT	2010 Mar 28 2:00s
-			11:00	Russia	ANA%sT
+			11:00	Russia	ANA%sT	2011 Mar 27 2:00s
+			12:00	-	ANAT
 
 # Serbia
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
diff --git a/jdk/make/sun/javazic/tzdata/iso3166.tab b/jdk/make/sun/javazic/tzdata/iso3166.tab
index f582cad..fee3f33 100644
--- a/jdk/make/sun/javazic/tzdata/iso3166.tab
+++ b/jdk/make/sun/javazic/tzdata/iso3166.tab
@@ -43,6 +43,9 @@
 #
 # Lines beginning with `#' are comments.
 #
+# From Arthur David Olson (2011-08-17):
+# Resynchronized today with the ISO 3166 site (adding SS for South Sudan).
+#
 #country-
 #code	country name
 AD	Andorra
@@ -52,7 +55,6 @@ AG	Antigua & Barbuda
 AI	Anguilla
 AL	Albania
 AM	Armenia
-AN	Netherlands Antilles
 AO	Angola
 AQ	Antarctica
 AR	Argentina
@@ -75,6 +77,7 @@ BL	St Barthelemy
 BM	Bermuda
 BN	Brunei
 BO	Bolivia
+BQ	Bonaire Sint Eustatius & Saba
 BR	Brazil
 BS	Bahamas
 BT	Bhutan
@@ -97,6 +100,7 @@ CO	Colombia
 CR	Costa Rica
 CU	Cuba
 CV	Cape Verde
+CW	Curacao
 CX	Christmas Island
 CY	Cyprus
 CZ	Czech Republic
@@ -251,8 +255,10 @@ SM	San Marino
 SN	Senegal
 SO	Somalia
 SR	Suriname
+SS	South Sudan
 ST	Sao Tome & Principe
 SV	El Salvador
+SX	Sint Maarten
 SY	Syria
 SZ	Swaziland
 TC	Turks & Caicos Is
diff --git a/jdk/make/sun/javazic/tzdata/northamerica b/jdk/make/sun/javazic/tzdata/northamerica
index 7111cb7..d31b7f0 100644
--- a/jdk/make/sun/javazic/tzdata/northamerica
+++ b/jdk/make/sun/javazic/tzdata/northamerica
@@ -490,6 +490,10 @@ Zone America/Los_Angeles -7:52:58 -	LMT	1883 Nov 18 12:07:02
 # own time. I asked about daylight saving; they said it wasn't used. I
 # did not inquire about practices in the past.
 
+# From Arthur David Olson (2011-08-17):
+# For lack of better information, assume that Metlakatla's
+# abandonment of use of daylight saving resulted from the 1983 vote.
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone America/Juneau	 15:02:19 -	LMT	1867 Oct 18
 			 -8:57:41 -	LMT	1900 Aug 20 12:00
@@ -515,7 +519,7 @@ Zone America/Metlakatla	 15:13:42 -	LMT	1867 Oct 18
 			 -8:00	US	P%sT	1946
 			 -8:00	-	PST	1969
 			 -8:00	US	P%sT	1983 Oct 30 2:00
-			 -8:00	US	MeST
+			 -8:00	-	MeST
 Zone America/Yakutat	 14:41:05 -	LMT	1867 Oct 18
 			 -9:18:55 -	LMT	1900 Aug 20 12:00
 			 -9:00	-	YST	1942
@@ -615,8 +619,8 @@ Zone Pacific/Honolulu	-10:31:26 -	LMT	1896 Jan 13 12:00 #Schmitt&Cox
 			-10:30	-	HST	1933 Apr 30 2:00 #Laws 1933
 			-10:30	1:00	HDT	1933 May 21 12:00 #Laws 1933+12
 			-10:30	-	HST	1942 Feb 09 2:00 #Schmitt&Cox+2
-			-10:30	1:00	HDT	1945 Sep 30 2:00 #Schmitt&Fox+2
-			-10:30	US	H%sT	1947 Jun  8 2:00 #Schmitt&Fox+2
+			-10:30	1:00	HDT	1945 Sep 30 2:00 #Schmitt&Cox+2
+			-10:30	-	HST	1947 Jun  8 2:00 #Schmitt&Cox+2
 			-10:00	-	HST
 
 # Now we turn to US areas that have diverged from the consensus since 1970.
@@ -1185,12 +1189,39 @@ Rule	StJohns	1960	1986	-	Oct	lastSun	2:00	0	S
 # From Paul Eggert (2000-10-02):
 # INMS (2000-09-12) says that, since 1988 at least, Newfoundland switches
 # at 00:01 local time.  For now, assume it started in 1987.
+
+# From Michael Pelley (2011-08-05):
+# The Government of Newfoundland and Labrador has pending changes to
+# modify the hour for daylight savings time to come into effect in
+# November 2011. This modification would change the time from 12:01AM to
+# 2:00AM on the dates of the switches of Daylight Savings Time to/from
+# Standard Time.
+#
+# As a matter of reference, in Canada provinces have the authority of
+# setting time zone information. The legislation has passed our
+# legislative body (The House of Assembly) and is awaiting the
+# proclamation to come into effect. You may find this information at:
+# <a href="http://www.assembly.nl.ca/legislation/sr/lists/Proclamation.htm">
+# http://www.assembly.nl.ca/legislation/sr/lists/Proclamation.htm
+# </a>
+# and
+# search within that web page for Standard Time (Amendment) Act. The Act
+# may be found at:
+# <a href="http://www.assembly.nl.ca/business/bills/Bill1106.htm">
+# http://www.assembly.nl.ca/business/bills/Bill1106.htm
+# </a>
+# ...
+# MICHAEL PELLEY | Manager of Enterprise Architecture - Solution Delivery
+# Office of the Chief Information Officer Executive Council Government of
+# Newfoundland & Labrador P.O. Box 8700, 40 Higgins Line, St. John's NL
+# A1B 4J6
+
 Rule	StJohns	1987	only	-	Apr	Sun>=1	0:01	1:00	D
 Rule	StJohns	1987	2006	-	Oct	lastSun	0:01	0	S
 Rule	StJohns	1988	only	-	Apr	Sun>=1	0:01	2:00	DD
 Rule	StJohns	1989	2006	-	Apr	Sun>=1	0:01	1:00	D
-Rule	StJohns	2007	max	-	Mar	Sun>=8	0:01	1:00	D
-Rule	StJohns	2007	max	-	Nov	Sun>=1	0:01	0	S
+Rule	StJohns	2007	2011	-	Mar	Sun>=8	0:01	1:00	D
+Rule	StJohns	2007	2010	-	Nov	Sun>=1	0:01	0	S
 #
 # St John's has an apostrophe, but Posix file names can't have apostrophes.
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -1200,7 +1231,8 @@ Zone America/St_Johns	-3:30:52 -	LMT	1884
 			-3:30:52 StJohns N%sT	1935 Mar 30
 			-3:30	StJohns	N%sT	1942 May 11
 			-3:30	Canada	N%sT	1946
-			-3:30	StJohns	N%sT
+			-3:30	StJohns	N%sT	2011 Nov
+			-3:30	Canada	N%sT
 
 # most of east Labrador
 
@@ -1214,7 +1246,8 @@ Zone America/Goose_Bay	-4:01:40 -	LMT	1884 # Happy Valley-Goose Bay
 			-3:30	StJohns	N%sT	1942 May 11
 			-3:30	Canada	N%sT	1946
 			-3:30	StJohns	N%sT	1966 Mar 15 2:00
-			-4:00	StJohns	A%sT
+			-4:00	StJohns	A%sT	2011 Nov
+			-4:00	Canada	A%sT
 
 
 # west Labrador, Nova Scotia, Prince Edward I
@@ -1946,20 +1979,69 @@ Zone America/Dawson_Creek -8:00:56 -	LMT	1884
 # daylight saving....
 # http://www.nnsl.com/frames/newspapers/2006-11/nov13_06none.html
 
-# From Chris Walton (2007-03-14):
-# Today I phoned the "hamlet office" to find out what Resolute was doing with
-# its clocks.
+# From Chris Walton (2011-03-21):
+# Back in 2007 I initiated the creation of a new "zone file" for Resolute
+# Bay. Resolute Bay is a small community located about 900km north of
+# the Arctic Circle. The zone file was required because Resolute Bay had
+# decided to use UTC-5 instead of UTC-6 for the winter of 2006-2007.
+#
+# According to new information which I received last week, Resolute Bay
+# went back to using UTC-6 in the winter of 2007-2008...
+#
+# On March 11/2007 most of Canada went onto daylight saving. On March
+# 14/2007 I phoned the Resolute Bay hamlet office to do a "time check." I
+# talked to somebody that was both knowledgeable and helpful. I was able
+# to confirm that Resolute Bay was still operating on UTC-5. It was
+# explained to me that Resolute Bay had been on the Eastern Time zone
+# (EST) in the winter, and was now back on the Central Time zone (CDT).
+# i.e. the time zone had changed twice in the last year but the clocks
+# had not moved. The residents had to know which time zone they were in
+# so they could follow the correct TV schedule...
+#
+# On Nov 02/2008 most of Canada went onto standard time. On Nov 03/2008 I
+# phoned the Resolute Bay hamlet office...[D]ue to the challenging nature
+# of the phone call, I decided to seek out an alternate source of
+# information. I found an e-mail address for somebody by the name of
+# Stephanie Adams whose job was listed as "Inns North Support Officer for
+# Arctic Co-operatives." I was under the impression that Stephanie lived
+# and worked in Resolute Bay...
+#
+# On March 14/2011 I phoned the hamlet office again. I was told that
+# Resolute Bay had been using Central Standard Time over the winter of
+# 2010-2011 and that the clocks had therefore been moved one hour ahead
+# on March 13/2011. The person I talked to was aware that Resolute Bay
+# had previously experimented with Eastern Standard Time but he could not
+# tell me when the practice had stopped.
+#
+# On March 17/2011 I searched the Web to find an e-mail address of
+# somebody that might be able to tell me exactly when Resolute Bay went
+# off Eastern Standard Time. I stumbled on the name "Aziz Kheraj." Aziz
+# used to be the mayor of Resolute Bay and he apparently owns half the
+# businesses including "South Camp Inn." This website has some info on
+# Aziz:
+# <a href="http://www.uphere.ca/node/493">
+# http://www.uphere.ca/node/493
+# </a>
 #
-# The individual that answered the phone confirmed that the clocks did not
-# move at the end of daylight saving on October 29/2006.  He also told me that
-# the clocks did not move this past weekend (March 11/2007)....
-
-# From Chris Walton (2008-11-13):
-# ...the residents of Resolute believe that they are changing "time zones"
-# twice a year.  In winter months, local time is qualified with "Eastern
-# Time" which is really "Eastern Standard Time (UTC-5)".  In summer
-# months, local time is qualified with "Central Time" which is really
-# "Central Daylight Time (UTC-5)"...
+# I sent Aziz an e-mail asking when Resolute Bay had stopped using
+# Eastern Standard Time.
+#
+# Aziz responded quickly with this: "hi, The time was not changed for the
+# 1 year only, the following year, the community went back to the old way
+# of "spring ahead-fall behind" currently we are zulu plus 5 hrs and in
+# the winter Zulu plus 6 hrs"
+#
+# This of course conflicted with everything I had ascertained in November 2008.
+#
+# I sent Aziz a copy of my 2008 e-mail exchange with Stephanie. Aziz
+# responded with this: "Hi, Stephanie lives in Winnipeg. I live here, You
+# may want to check with the weather office in Resolute Bay or do a
+# search on the weather through Env. Canada. web site"
+#
+# If I had realized the Stephanie did not live in Resolute Bay I would
+# never have contacted her.  I now believe that all the information I
+# obtained in November 2008 should be ignored...
+# I apologize for reporting incorrect information in 2008.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	NT_YK	1918	only	-	Apr	14	2:00	1:00	D
@@ -1987,14 +2069,12 @@ Zone America/Iqaluit	0	-	zzz	1942 Aug # Frobisher Bay est.
 			-6:00	Canada	C%sT	2000 Oct 29 2:00
 			-5:00	Canada	E%sT
 # aka Qausuittuq
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Resolute 2006	max	-	Nov	Sun>=1	2:00	0	ES
-Rule	Resolute 2007	max	-	Mar	Sun>=8	2:00	0	CD
 Zone America/Resolute	0	-	zzz	1947 Aug 31 # Resolute founded
 			-6:00	NT_YK	C%sT	2000 Oct 29 2:00
 			-5:00	-	EST	2001 Apr  1 3:00
 			-6:00	Canada	C%sT	2006 Oct 29 2:00
-			-5:00	Resolute	%sT
+			-5:00	-	EST	2007 Mar 11 3:00
+			-6:00	Canada	C%sT
 # aka Kangiqiniq
 Zone America/Rankin_Inlet 0	-	zzz	1957 # Rankin Inlet founded
 			-6:00	NT_YK	C%sT	2000 Oct 29 2:00
diff --git a/jdk/make/sun/javazic/tzdata/southamerica b/jdk/make/sun/javazic/tzdata/southamerica
index 7717d12..215d95d 100644
--- a/jdk/make/sun/javazic/tzdata/southamerica
+++ b/jdk/make/sun/javazic/tzdata/southamerica
@@ -1298,6 +1298,14 @@ Zone	America/Curacao	-4:35:44 -	LMT	1912 Feb 12	# Willemstad
 			-4:30	-	ANT	1965 # Netherlands Antilles Time
 			-4:00	-	AST
 
+# From Arthur David Olson (2011-06-15):
+# At least for now, use links for places with new iso3166 codes.
+# The name "Lower Prince's Quarter" is both longer than fourteen charaters
+# and contains an apostrophe; use "Lower_Princes" below.
+
+Link	America/Curacao	America/Lower_Princes # Sint Maarten
+Link	America/Curacao	America/Kralendijk # Bonaire, Sint Estatius and Saba
+
 # Ecuador
 #
 # From Paul Eggert (2007-03-04):
diff --git a/jdk/make/sun/javazic/tzdata/zone.tab b/jdk/make/sun/javazic/tzdata/zone.tab
index 0b158ec..81ce7f5 100644
--- a/jdk/make/sun/javazic/tzdata/zone.tab
+++ b/jdk/make/sun/javazic/tzdata/zone.tab
@@ -54,7 +54,6 @@ AG	+1703-06148	America/Antigua
 AI	+1812-06304	America/Anguilla
 AL	+4120+01950	Europe/Tirane
 AM	+4011+04430	Asia/Yerevan
-AN	+1211-06900	America/Curacao
 AO	-0848+01314	Africa/Luanda
 AQ	-7750+16636	Antarctica/McMurdo	McMurdo Station, Ross Island
 AQ	-9000+00000	Antarctica/South_Pole	Amundsen-Scott Station, South Pole
@@ -109,6 +108,7 @@ BL	+1753-06251	America/St_Barthelemy
 BM	+3217-06446	Atlantic/Bermuda
 BN	+0456+11455	Asia/Brunei
 BO	-1630-06809	America/La_Paz
+BQ	+120903-0681636	America/Kralendijk
 BR	-0351-03225	America/Noronha	Atlantic islands
 BR	-0127-04829	America/Belem	Amapa, E Para
 BR	-0343-03830	America/Fortaleza	NE Brazil (MA, PI, CE, RN, PB)
@@ -142,7 +142,7 @@ CA	+4901-08816	America/Nipigon	Eastern Time - Ontario & Quebec - places that did
 CA	+4823-08915	America/Thunder_Bay	Eastern Time - Thunder Bay, Ontario
 CA	+6344-06828	America/Iqaluit	Eastern Time - east Nunavut - most locations
 CA	+6608-06544	America/Pangnirtung	Eastern Time - Pangnirtung, Nunavut
-CA	+744144-0944945	America/Resolute	Eastern Standard Time - Resolute, Nunavut
+CA	+744144-0944945	America/Resolute	Central Standard Time - Resolute, Nunavut
 CA	+484531-0913718	America/Atikokan	Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
 CA	+624900-0920459	America/Rankin_Inlet	Central Time - central Nunavut
 CA	+4953-09709	America/Winnipeg	Central Time - Manitoba & west Ontario
@@ -177,6 +177,7 @@ CO	+0436-07405	America/Bogota
 CR	+0956-08405	America/Costa_Rica
 CU	+2308-08222	America/Havana
 CV	+1455-02331	Atlantic/Cape_Verde
+CW	+1211-06900	America/Curacao
 CX	-1025+10543	Indian/Christmas
 CY	+3510+03322	Asia/Nicosia
 CZ	+5005+01426	Europe/Prague
@@ -382,8 +383,10 @@ SM	+4355+01228	Europe/San_Marino
 SN	+1440-01726	Africa/Dakar
 SO	+0204+04522	Africa/Mogadishu
 SR	+0550-05510	America/Paramaribo
+SS	+0451+03136	Africa/Juba
 ST	+0020+00644	Africa/Sao_Tome
 SV	+1342-08912	America/El_Salvador
+SX	+180305-0630250	America/Lower_Princes
 SY	+3330+03618	Asia/Damascus
 SZ	-2618+03106	Africa/Mbabane
 TC	+2128-07108	America/Grand_Turk
diff --git a/jdk/make/sun/net/Makefile b/jdk/make/sun/net/Makefile
index 4a42785..3e56798 100644
--- a/jdk/make/sun/net/Makefile
+++ b/jdk/make/sun/net/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,8 @@
 BUILDDIR = ../..
 PACKAGE = sun.net
 PRODUCT = sun
+SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true
+SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
 include $(BUILDDIR)/common/Defs.gmk
 
 SUBDIRS = others spi
diff --git a/jdk/make/sun/net/spi/Makefile b/jdk/make/sun/net/spi/Makefile
index 1b2f8da..dc448cf 100644
--- a/jdk/make/sun/net/spi/Makefile
+++ b/jdk/make/sun/net/spi/Makefile
@@ -24,6 +24,8 @@
 #
 
 BUILDDIR = ../../..
+SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
+
 include $(BUILDDIR)/common/Defs.gmk
 
 SUBDIRS_misc = nameservice 
diff --git a/jdk/make/sun/net/spi/nameservice/dns/Makefile b/jdk/make/sun/net/spi/nameservice/dns/Makefile
index 5e3e1e8..5702fc8 100644
--- a/jdk/make/sun/net/spi/nameservice/dns/Makefile
+++ b/jdk/make/sun/net/spi/nameservice/dns/Makefile
@@ -28,7 +28,8 @@
 #
 
 BUILDDIR = ../../../../..
-
+JAVAC_MAX_WARNINGS = true
+JAVAC_WARNINGS_FATAL = true
 # dns should probably be its own module
 MODULE  = net-dns
 PACKAGE = sun.net.spi.nameservice.dns
diff --git a/jdk/make/sun/nio/cs/FILES_java.gmk b/jdk/make/sun/nio/cs/FILES_java.gmk
index c71ecf7..05d722b 100644
--- a/jdk/make/sun/nio/cs/FILES_java.gmk
+++ b/jdk/make/sun/nio/cs/FILES_java.gmk
@@ -29,277 +29,6 @@
 # Core character converters are built from make/java/java.
 #
 
-FILES_src = \
-	sun/io/ByteToCharDoubleByte.java \
-	sun/io/ByteToCharDBCS_ASCII.java \
-	sun/io/ByteToCharDBCS_EBCDIC.java \
-	sun/io/ByteToCharEUC.java \
-	sun/io/CharToByteDoubleByte.java \
-	sun/io/CharToByteDBCS_ASCII.java \
-	sun/io/CharToByteDBCS_EBCDIC.java \
-	sun/io/CharToByteEUC.java \
-	sun/io/ByteToCharBig5.java \
-	sun/io/ByteToCharBig5_Solaris.java \
-	sun/io/ByteToCharBig5_HKSCS.java \
-	sun/io/ByteToCharMS950_HKSCS.java \
-	sun/io/ByteToCharGB18030.java \
-	sun/io/ByteToCharGB18030DB.java \
-	sun/io/ByteToCharCp037.java \
-	sun/io/ByteToCharCp1006.java \
-	sun/io/ByteToCharCp1025.java \
-	sun/io/ByteToCharCp1026.java \
-	sun/io/ByteToCharCp1046.java \
-	sun/io/ByteToCharCp1047.java \
-	sun/io/ByteToCharCp1097.java \
-	sun/io/ByteToCharCp1098.java \
-	sun/io/ByteToCharCp1112.java \
-	sun/io/ByteToCharCp1122.java \
-	sun/io/ByteToCharCp1123.java \
-	sun/io/ByteToCharCp1124.java \
-	sun/io/ByteToCharCp1140.java \
-	sun/io/ByteToCharCp1141.java \
-	sun/io/ByteToCharCp1142.java \
-	sun/io/ByteToCharCp1143.java \
-	sun/io/ByteToCharCp1144.java \
-	sun/io/ByteToCharCp1145.java \
-	sun/io/ByteToCharCp1146.java \
-	sun/io/ByteToCharCp1147.java \
-	sun/io/ByteToCharCp1148.java \
-	sun/io/ByteToCharCp1149.java \
-	sun/io/ByteToCharCp1255.java \
-	sun/io/ByteToCharCp1256.java \
-	sun/io/ByteToCharCp1258.java \
-	sun/io/ByteToCharCp1381.java \
-	sun/io/ByteToCharCp1383.java \
-	sun/io/ByteToCharCp273.java \
-	sun/io/ByteToCharCp277.java \
-	sun/io/ByteToCharCp278.java \
-	sun/io/ByteToCharCp280.java \
-	sun/io/ByteToCharCp284.java \
-	sun/io/ByteToCharCp285.java \
-	sun/io/ByteToCharCp297.java \
-	sun/io/ByteToCharCp33722.java \
-	sun/io/ByteToCharCp420.java \
-	sun/io/ByteToCharCp424.java \
-	sun/io/ByteToCharCp437.java \
-	sun/io/ByteToCharCp500.java \
-	sun/io/ByteToCharCp737.java \
-	sun/io/ByteToCharCp775.java \
-	sun/io/ByteToCharCp833.java \
-	sun/io/ByteToCharCp834.java \
-	sun/io/ByteToCharCp838.java \
-	sun/io/ByteToCharCp850.java \
-	sun/io/ByteToCharCp852.java \
-	sun/io/ByteToCharCp855.java \
-	sun/io/ByteToCharCp856.java \
-	sun/io/ByteToCharCp857.java \
-	sun/io/ByteToCharCp858.java \
-	sun/io/ByteToCharCp860.java \
-	sun/io/ByteToCharCp861.java \
-	sun/io/ByteToCharCp862.java \
-	sun/io/ByteToCharCp863.java \
-	sun/io/ByteToCharCp864.java \
-	sun/io/ByteToCharCp865.java \
-	sun/io/ByteToCharCp866.java \
-	sun/io/ByteToCharCp868.java \
-	sun/io/ByteToCharCp869.java \
-	sun/io/ByteToCharCp870.java \
-	sun/io/ByteToCharCp871.java \
-	sun/io/ByteToCharCp874.java \
-	sun/io/ByteToCharCp875.java \
-	sun/io/ByteToCharCp918.java \
-	sun/io/ByteToCharCp921.java \
-	sun/io/ByteToCharCp922.java \
-	sun/io/ByteToCharCp930.java \
-	sun/io/ByteToCharCp933.java \
-	sun/io/ByteToCharCp935.java \
-	sun/io/ByteToCharCp937.java \
-	sun/io/ByteToCharCp939.java \
-	sun/io/ByteToCharCp942.java \
-	sun/io/ByteToCharCp942C.java \
-	sun/io/ByteToCharCp943.java \
-	sun/io/ByteToCharCp943C.java \
-	sun/io/ByteToCharCp948.java \
-	sun/io/ByteToCharCp949.java \
-	sun/io/ByteToCharCp949C.java \
-	sun/io/ByteToCharCp950.java \
-	sun/io/ByteToCharCp964.java \
-	sun/io/ByteToCharCp970.java \
-	sun/io/ByteToCharJIS0201.java \
-	sun/io/ByteToCharJIS0208.java \
-	sun/io/ByteToCharJIS0208_Solaris.java \
-	sun/io/ByteToCharJIS0212.java \
-	sun/io/ByteToCharJIS0212_Solaris.java \
-	sun/io/ByteToCharEUC_CN.java \
-	sun/io/ByteToCharEUC_JP.java \
-	sun/io/ByteToCharEUC_JP_LINUX.java \
-	sun/io/ByteToCharEUC_JP_Solaris.java \
-	sun/io/ByteToCharEUC_KR.java \
-	sun/io/ByteToCharEUC_TW.java \
-	sun/io/ByteToCharSJIS.java \
-	sun/io/ByteToCharPCK.java \
-	sun/io/ByteToCharGBK.java \
-	sun/io/ByteToCharISCII91.java \
-	sun/io/ByteToCharISO2022.java \
-	sun/io/ByteToCharISO2022CN.java \
-	sun/io/ByteToCharISO2022JP.java \
-	sun/io/ByteToCharISO2022KR.java \
-	sun/io/ByteToCharISO8859_3.java \
-	sun/io/ByteToCharISO8859_6.java \
-	sun/io/ByteToCharISO8859_8.java \
-	sun/io/ByteToCharJISAutoDetect.java \
-	sun/io/ByteToCharJohab.java \
-	sun/io/ByteToCharMS874.java \
-	sun/io/ByteToCharMS932.java \
-	sun/io/ByteToCharMS936.java \
-	sun/io/ByteToCharMS949.java \
-	sun/io/ByteToCharMS950.java \
-	sun/io/ByteToCharMacArabic.java \
-	sun/io/ByteToCharMacCentralEurope.java \
-	sun/io/ByteToCharMacCroatian.java \
-	sun/io/ByteToCharMacCyrillic.java \
-	sun/io/ByteToCharMacDingbat.java \
-	sun/io/ByteToCharMacGreek.java \
-	sun/io/ByteToCharMacHebrew.java \
-	sun/io/ByteToCharMacIceland.java \
-	sun/io/ByteToCharMacRoman.java \
-	sun/io/ByteToCharMacRomania.java \
-	sun/io/ByteToCharMacSymbol.java \
-	sun/io/ByteToCharMacThai.java \
-	sun/io/ByteToCharMacTurkish.java \
-	sun/io/ByteToCharMacUkraine.java \
-	sun/io/ByteToCharTIS620.java \
-	sun/io/CharToByteBig5.java \
-	sun/io/CharToByteBig5_Solaris.java \
-	sun/io/CharToByteBig5_HKSCS.java \
-	sun/io/CharToByteMS950_HKSCS.java \
-	sun/io/CharToByteGB18030.java \
-	sun/io/CharToByteCp037.java \
-	sun/io/CharToByteCp1006.java \
-	sun/io/CharToByteCp1025.java \
-	sun/io/CharToByteCp1026.java \
-	sun/io/CharToByteCp1046.java \
-	sun/io/CharToByteCp1047.java \
-	sun/io/CharToByteCp1097.java \
-	sun/io/CharToByteCp1098.java \
-	sun/io/CharToByteCp1112.java \
-	sun/io/CharToByteCp1122.java \
-	sun/io/CharToByteCp1123.java \
-	sun/io/CharToByteCp1124.java \
-	sun/io/CharToByteCp1140.java \
-	sun/io/CharToByteCp1141.java \
-	sun/io/CharToByteCp1142.java \
-	sun/io/CharToByteCp1143.java \
-	sun/io/CharToByteCp1144.java \
-	sun/io/CharToByteCp1145.java \
-	sun/io/CharToByteCp1146.java \
-	sun/io/CharToByteCp1147.java \
-	sun/io/CharToByteCp1148.java \
-	sun/io/CharToByteCp1149.java \
-	sun/io/CharToByteCp1255.java \
-	sun/io/CharToByteCp1256.java \
-	sun/io/CharToByteCp1258.java \
-	sun/io/CharToByteCp1381.java \
-	sun/io/CharToByteCp1383.java \
-	sun/io/CharToByteCp273.java \
-	sun/io/CharToByteCp277.java \
-	sun/io/CharToByteCp278.java \
-	sun/io/CharToByteCp280.java \
-	sun/io/CharToByteCp284.java \
-	sun/io/CharToByteCp285.java \
-	sun/io/CharToByteCp297.java \
-	sun/io/CharToByteCp33722.java \
-	sun/io/CharToByteCp420.java \
-	sun/io/CharToByteCp424.java \
-	sun/io/CharToByteCp437.java \
-	sun/io/CharToByteCp500.java \
-	sun/io/CharToByteCp737.java \
-	sun/io/CharToByteCp775.java \
-	sun/io/CharToByteCp833.java \
-	sun/io/CharToByteCp834.java \
-	sun/io/CharToByteCp838.java \
-	sun/io/CharToByteCp850.java \
-	sun/io/CharToByteCp852.java \
-	sun/io/CharToByteCp855.java \
-	sun/io/CharToByteCp856.java \
-	sun/io/CharToByteCp857.java \
-	sun/io/CharToByteCp858.java \
-	sun/io/CharToByteCp860.java \
-	sun/io/CharToByteCp861.java \
-	sun/io/CharToByteCp862.java \
-	sun/io/CharToByteCp863.java \
-	sun/io/CharToByteCp864.java \
-	sun/io/CharToByteCp865.java \
-	sun/io/CharToByteCp866.java \
-	sun/io/CharToByteCp868.java \
-	sun/io/CharToByteCp869.java \
-	sun/io/CharToByteCp870.java \
-	sun/io/CharToByteCp871.java \
-	sun/io/CharToByteCp874.java \
-	sun/io/CharToByteCp875.java \
-	sun/io/CharToByteCp918.java \
-	sun/io/CharToByteCp921.java \
-	sun/io/CharToByteCp922.java \
-	sun/io/CharToByteCp930.java \
-	sun/io/CharToByteCp933.java \
-	sun/io/CharToByteCp935.java \
-	sun/io/CharToByteCp937.java \
-	sun/io/CharToByteCp939.java \
-	sun/io/CharToByteCp942.java \
-	sun/io/CharToByteCp942C.java \
-	sun/io/CharToByteCp943.java \
-	sun/io/CharToByteCp943C.java \
-	sun/io/CharToByteCp948.java \
-	sun/io/CharToByteCp949.java \
-	sun/io/CharToByteCp949C.java \
-	sun/io/CharToByteCp950.java \
-	sun/io/CharToByteCp964.java \
-	sun/io/CharToByteCp970.java \
-	sun/io/CharToByteJIS0201.java \
-	sun/io/CharToByteJIS0208.java \
-	sun/io/CharToByteJIS0208_Solaris.java \
-	sun/io/CharToByteJIS0212.java \
-	sun/io/CharToByteJIS0212_Solaris.java \
-	sun/io/CharToByteEUC_CN.java \
-	sun/io/CharToByteEUC_JP.java \
-	sun/io/CharToByteEUC_JP_LINUX.java \
-	sun/io/CharToByteEUC_JP_Solaris.java \
-	sun/io/CharToByteEUC_KR.java \
-	sun/io/CharToByteEUC_TW.java \
-	sun/io/CharToByteSJIS.java \
-	sun/io/CharToBytePCK.java \
-	sun/io/CharToByteGBK.java \
-	sun/io/CharToByteISCII91.java \
-	sun/io/CharToByteISO2022.java \
-	sun/io/CharToByteISO2022CN_CNS.java \
-	sun/io/CharToByteISO2022CN_GB.java \
-	sun/io/CharToByteISO2022JP.java \
-	sun/io/CharToByteISO2022KR.java \
-	sun/io/CharToByteISO8859_3.java \
-	sun/io/CharToByteISO8859_6.java \
-	sun/io/CharToByteISO8859_8.java \
-	sun/io/CharToByteJohab.java \
-	sun/io/CharToByteMS874.java \
-	sun/io/CharToByteMS932.java \
-	sun/io/CharToByteMS936.java \
-	sun/io/CharToByteMS949.java \
-	sun/io/CharToByteMS950.java \
-	sun/io/CharToByteMacArabic.java \
-	sun/io/CharToByteMacCentralEurope.java \
-	sun/io/CharToByteMacCroatian.java \
-	sun/io/CharToByteMacCyrillic.java \
-	sun/io/CharToByteMacDingbat.java \
-	sun/io/CharToByteMacGreek.java \
-	sun/io/CharToByteMacHebrew.java \
-	sun/io/CharToByteMacIceland.java \
-	sun/io/CharToByteMacRoman.java \
-	sun/io/CharToByteMacRomania.java \
-	sun/io/CharToByteMacSymbol.java \
-	sun/io/CharToByteMacThai.java \
-	sun/io/CharToByteMacTurkish.java \
-	sun/io/CharToByteMacUkraine.java \
-	sun/io/CharToByteTIS620.java
-
 FILES_gen_extcs = \
 	sun/nio/cs/ext/IBM037.java \
 	sun/nio/cs/ext/IBM1006.java \
diff --git a/jdk/make/sun/security/Makefile b/jdk/make/sun/security/Makefile
index 6e03ffb..217a7ef 100644
--- a/jdk/make/sun/security/Makefile
+++ b/jdk/make/sun/security/Makefile
@@ -34,6 +34,8 @@
 #
 
 BUILDDIR = ../..
+SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true
+SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
 include $(BUILDDIR)/common/Defs.gmk
 
 # build sun/security/jgss/wrapper on non-windows platform
diff --git a/jdk/make/sun/security/ec/Makefile b/jdk/make/sun/security/ec/Makefile
index 4f02fd3..8946393 100644
--- a/jdk/make/sun/security/ec/Makefile
+++ b/jdk/make/sun/security/ec/Makefile
@@ -110,6 +110,9 @@ ifndef OPENJDK
   endif
 endif
 
+JAVAC_MAX_WARNINGS=false
+JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation
+JAVAC_WARNINGS_FATAL=true
 include $(BUILDDIR)/common/Defs.gmk
 
 #
diff --git a/jdk/make/sun/security/other/Makefile b/jdk/make/sun/security/other/Makefile
index f9c1c9b..ab74d58 100644
--- a/jdk/make/sun/security/other/Makefile
+++ b/jdk/make/sun/security/other/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1996, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,9 @@
 BUILDDIR = ../../..
 PACKAGE = sun.security.other
 PRODUCT = sun
+JAVAC_MAX_WARNINGS=false
+JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation
+JAVAC_WARNINGS_FATAL=true
 include $(BUILDDIR)/common/Defs.gmk
 
 #
diff --git a/jdk/make/sun/security/pkcs11/Makefile b/jdk/make/sun/security/pkcs11/Makefile
index 70f4ee9..851118e 100644
--- a/jdk/make/sun/security/pkcs11/Makefile
+++ b/jdk/make/sun/security/pkcs11/Makefile
@@ -111,6 +111,9 @@ ifndef OPENJDK
   endif
 endif
 
+JAVAC_MAX_WARNINGS=false
+JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation
+JAVAC_WARNINGS_FATAL=true
 # Set OTHER_* flags before including Defs.gmk
 CLASSDESTDIR = $(TEMPDIR)/classes
 OTHER_JAVAHFLAGS += -classpath $(CLASSDESTDIR)
diff --git a/jdk/make/sun/util/Makefile b/jdk/make/sun/util/Makefile
new file mode 100644
index 0000000..70d9075
--- /dev/null
+++ b/jdk/make/sun/util/Makefile
@@ -0,0 +1,40 @@
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+BUILDDIR = ../..
+PACKAGE = sun.util
+PRODUCT = sun
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files
+#
+AUTO_FILES_JAVA_DIRS = sun/util/xml
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
+
diff --git a/jdk/make/tools/CharsetMapping/SingleByte-X.java.template b/jdk/make/tools/CharsetMapping/SingleByte-X.java.template
index d0558e7..4de1faf 100644
--- a/jdk/make/tools/CharsetMapping/SingleByte-X.java.template
+++ b/jdk/make/tools/CharsetMapping/SingleByte-X.java.template
@@ -55,18 +55,6 @@ public class $NAME_CLZ$ extends Charset implements HistoricallyNamedCharset
         return new SingleByte.Encoder(this, c2b, c2bIndex);
     }
 
-    public String getDecoderSingleByteMappings() {
-        return b2cTable;
-    }
-
-    public char[] getEncoderIndex2() {
-        return c2b;
-    }
-
-    public char[] getEncoderIndex1() {
-        return c2bIndex;
-    }
-
     private final static String b2cTable = $B2CTABLE$
 
     private final static char[] b2c = b2cTable.toCharArray();
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/AnnotatedDependency.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/AnnotatedDependency.java
index 8c4a606..0c67038 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/AnnotatedDependency.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/AnnotatedDependency.java
@@ -30,19 +30,17 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
-import java.util.TreeSet;
-import java.util.Map;
 
 import com.sun.classanalyzer.Module.Reference;
 import com.sun.classanalyzer.ModuleInfo.Dependence;
-import java.util.LinkedList;
-import java.util.TreeMap;
 
 /**
- *
- * @author Mandy Chung
  */
 public abstract class AnnotatedDependency implements Comparable<AnnotatedDependency> {
 
@@ -563,7 +561,7 @@ public abstract class AnnotatedDependency implements Comparable<AnnotatedDepende
         // ensure it's initialized
         initDependencies();
 
-        Map<Reference, Set<AnnotatedDependency>> result = new TreeMap<Reference, Set<AnnotatedDependency>>();
+        Map<Reference, Set<AnnotatedDependency>> result = new HashMap<Reference, Set<AnnotatedDependency>>();
         for (Reference ref : annotatedDepsMap.keySet()) {
             if (m.contains(ref.referrer()) && m.isModuleDependence(ref.referree())) {
                 result.put(ref, annotatedDepsMap.get(ref));
@@ -576,7 +574,7 @@ public abstract class AnnotatedDependency implements Comparable<AnnotatedDepende
         // ensure it's initialized
         initDependencies();
 
-        Set<Dependence> deps = new TreeSet<Dependence>();
+        Set<Dependence> deps = new HashSet<Dependence>();
         for (Reference ref : annotatedDepsMap.keySet()) {
             if (m.contains(ref.referrer())) {
                 Module other = m.getModuleDependence(ref.referree());
@@ -597,8 +595,8 @@ public abstract class AnnotatedDependency implements Comparable<AnnotatedDepende
         }
 
         // Build a map of references to its dependencies
-        annotatedDepsMap = new TreeMap<Reference, Set<AnnotatedDependency>>();
-        optionalDepsMap = new TreeMap<Reference, Set<AnnotatedDependency>>();
+        annotatedDepsMap = new HashMap<Reference, Set<AnnotatedDependency>>();
+        optionalDepsMap = new HashMap<Reference, Set<AnnotatedDependency>>();
 
         for (Klass k : Klass.getAllClasses()) {
             for (AnnotatedDependency ad : annotatedDependencies) {
@@ -606,7 +604,7 @@ public abstract class AnnotatedDependency implements Comparable<AnnotatedDepende
                     Reference ref = new Reference(ad.from, k);
                     Set<AnnotatedDependency> set = annotatedDepsMap.get(ref);
                     if (set == null) {
-                        set = new TreeSet<AnnotatedDependency>();
+                        set = new HashSet<AnnotatedDependency>();
                         annotatedDepsMap.put(ref, set);
                     }
                     set.add(ad);
@@ -618,7 +616,7 @@ public abstract class AnnotatedDependency implements Comparable<AnnotatedDepende
                     Reference ref = new Reference(ad.from, k);
                     Set<AnnotatedDependency> set = optionalDepsMap.get(ref);
                     if (set == null) {
-                        set = new TreeSet<AnnotatedDependency>();
+                        set = new HashSet<AnnotatedDependency>();
                         optionalDepsMap.put(ref, set);
                     }
                     set.add(ad);
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/AnnotationParser.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/AnnotationParser.java
index 2bde5d4..95b98a5 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/AnnotationParser.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/AnnotationParser.java
@@ -42,8 +42,6 @@ import java.util.Map;
 import java.util.Set;
 
 /**
- *
- * @author Mandy Chung
  */
 public class AnnotationParser {
 
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/BootAnalyzer.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/BootAnalyzer.java
index 7a8fed1..d782120 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/BootAnalyzer.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/BootAnalyzer.java
@@ -78,7 +78,6 @@ import static com.sun.classanalyzer.Trace.*;
  *     the root set.</li>
  * </ul>
  *
- * @author Mandy Chung
  */
 public class BootAnalyzer {
     private static ClassPath cpath;
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassAnalyzer.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassAnalyzer.java
index b2645b9..edf1a30 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassAnalyzer.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassAnalyzer.java
@@ -53,7 +53,6 @@ import java.util.jar.JarFile;
  * The -update option can be specified to perform an incremental analysis
  * rather than parsing all class files.
  *
- * @author Mandy Chung
  */
 public class ClassAnalyzer {
 
@@ -209,8 +208,8 @@ public class ClassAnalyzer {
             updatedModules.addAll(builder.getModules());
         }
 
-        Module unknown = builder.getFactory().nullModule;
-        if (builder.getModules().contains(unknown))
+        Module unknown = builder.getFactory().unknownModule();
+        if (unknown != null && builder.getModules().contains(unknown))
             System.out.println("WARNING: classes are not assigned to any module."
                     + " Please see the unknown.classlist report.");
     }
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassFileParser.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassFileParser.java
index 11f4db5..bb115f1 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassFileParser.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassFileParser.java
@@ -35,11 +35,10 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.List;
 import java.util.Set;
-import java.util.TreeSet;
+import java.util.HashSet;
 
 /**
  *
- * @author Mandy Chung
  */
 public class ClassFileParser {
 
@@ -265,7 +264,7 @@ public class ClassFileParser {
     }
 
     private Set<Klass> getKlass(Type type) throws IOException {
-        Set<Klass> refTypes = new TreeSet<Klass>();
+        Set<Klass> refTypes = new HashSet<Klass>();
         if (!buildDeps) {
             return refTypes;
         }
@@ -582,7 +581,7 @@ public class ClassFileParser {
     }
 
     private Set<Klass> parseDescriptor(Descriptor d) {
-        Set<Klass> types = new TreeSet<Klass>();
+        Set<Klass> types = new HashSet<Klass>();
         try {
             String desc = d.getValue(classfile.constant_pool);
             int p = 0;
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassListWriter.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassListWriter.java
index f8712f7..1ac1c88 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassListWriter.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassListWriter.java
@@ -38,7 +38,6 @@ import com.sun.classanalyzer.Module.*;
  * <module>.summary,
  * <module>.dependencies.
  *
- * @author Mandy Chung
  */
 public class ClassListWriter {
     private final Module module;
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassPath.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassPath.java
index 06c7a87..d309bdc 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassPath.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ClassPath.java
@@ -39,7 +39,6 @@ import java.util.jar.JarFile;
  * and also recursive wildcard "**" that lists all jar files
  * recursively in the given directory and its subdirectories.
  *
- * @author Mandy Chung
  */
 public class ClassPath {
 
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/CodeAttributeParser.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/CodeAttributeParser.java
index b60fdcf..96878fb 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/CodeAttributeParser.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/CodeAttributeParser.java
@@ -36,7 +36,6 @@ import java.util.TreeSet;
 
 /**
  *
- * @author Mandy Chung
  */
 public class CodeAttributeParser {
     private final ClassFileParser cfparser;
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ConstantPoolAnalyzer.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ConstantPoolAnalyzer.java
index 6b2ae3b..cd52370 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ConstantPoolAnalyzer.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ConstantPoolAnalyzer.java
@@ -25,7 +25,6 @@ package com.sun.classanalyzer;
 
 /**
  *
- * @author Mandy Chung
  */
 public class ConstantPoolAnalyzer {
     public static void main(String[] args) throws Exception {
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ConstantPoolParser.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ConstantPoolParser.java
index 39b8516..ed670b1 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ConstantPoolParser.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ConstantPoolParser.java
@@ -28,7 +28,6 @@ import static com.sun.tools.classfile.ConstantPool.*;
 
 /**
  *
- * @author Mandy Chung
  */
 public class ConstantPoolParser {
 
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/DependencyConfig.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/DependencyConfig.java
index 9ea0301..e56e473 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/DependencyConfig.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/DependencyConfig.java
@@ -37,7 +37,6 @@ import java.util.List;
  *    @Provider and <value> is the service name
  *    @Providers and <value> is the list of the service names
  *
- * @author Mandy Chung
  */
 public class DependencyConfig {
     private DependencyConfig() {
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Files.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Files.java
index 7c6b84a..823f78a 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Files.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Files.java
@@ -30,7 +30,6 @@ import java.util.List;
 /**
  * Convenient methods for accessing files.
  *
- * @author Mandy Chung
  */
 public class Files {
 
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Klass.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Klass.java
index 0c03f51..b509ed2 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Klass.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Klass.java
@@ -30,16 +30,13 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import java.util.TreeSet;
+import java.util.HashSet;
 
 import com.sun.tools.classfile.AccessFlags;
 import java.util.Collections;
 
 /**
  *
- * @author Mandy Chung
  */
 public class Klass implements Comparable<Klass> {
     private final String classname;
@@ -51,8 +48,8 @@ public class Klass implements Comparable<Klass> {
     private AccessFlags accessFlags;
     private long filesize;
 
-    private SortedMap<Klass, Set<ResolutionInfo>> deps;
-    private SortedMap<Klass, Set<ResolutionInfo>> referrers;
+    private Map<Klass, Set<ResolutionInfo>> deps;
+    private Map<Klass, Set<ResolutionInfo>> referrers;
     private List<AnnotatedDependency> annotatedDeps;
     private Set<String> classForNameRefs;
 
@@ -60,11 +57,11 @@ public class Klass implements Comparable<Klass> {
         this.classname = classname;
         this.paths = classname.replace('.', '/').split("/");
         this.isJavaLangObject = classname.equals("java.lang.Object");
-        this.deps = new TreeMap<Klass, Set<ResolutionInfo>>();
-        this.referrers = new TreeMap<Klass, Set<ResolutionInfo>>();
+        this.deps = new HashMap<Klass, Set<ResolutionInfo>>();
+        this.referrers = new HashMap<Klass, Set<ResolutionInfo>>();
         this.methods = new HashMap<String, Set<Method>>();
         this.annotatedDeps = new ArrayList<AnnotatedDependency>();
-        this.classForNameRefs = new TreeSet<String>();
+        this.classForNameRefs = new HashSet<String>();
 
         int pos = classname.lastIndexOf('.');
         this.packagename = (pos > 0) ? classname.substring(0, pos) : "<unnamed>";
@@ -145,7 +142,7 @@ public class Klass implements Comparable<Klass> {
         }
         Set<ResolutionInfo> resInfos = deps.get(ref);
         if (resInfos == null) {
-            resInfos = new TreeSet<ResolutionInfo>();
+            resInfos = new HashSet<ResolutionInfo>();
             deps.put(ref, resInfos);
         }
         resInfos.add(ri);
@@ -161,7 +158,7 @@ public class Klass implements Comparable<Klass> {
         }
         Set<ResolutionInfo> resInfos = referrers.get(k);
         if (resInfos == null) {
-            resInfos = new TreeSet<ResolutionInfo>();
+            resInfos = new HashSet<ResolutionInfo>();
             referrers.put(k, resInfos);
         }
         resInfos.add(ri);
@@ -174,7 +171,7 @@ public class Klass implements Comparable<Klass> {
     Method getMethod(String name, String signature) {
         Set<Method> set = methods.get(name);
         if (set == null) {
-            set = new TreeSet<Method>();
+            set = new HashSet<Method>();
             methods.put(name, set);
         }
 
@@ -210,7 +207,7 @@ public class Klass implements Comparable<Klass> {
         return annotatedDeps;
     }
 
-    private static Map<String, Klass> classes = new TreeMap<String, Klass>();
+    private static Map<String, Klass> classes = new HashMap<String, Klass>();
 
     // cache the sorted list of classes for performance
     // No more class can be added after this point
@@ -218,8 +215,9 @@ public class Klass implements Comparable<Klass> {
     static synchronized Iterable<Klass> getAllClasses() {
         if (sortedClassList == null) {
             sortedClassList = new ArrayList<Klass>(classes.values());
+            Collections.sort(sortedClassList);
         }
-        return Collections.unmodifiableCollection(sortedClassList);
+        return Collections.unmodifiableList(sortedClassList);
     }
 
     static Klass findKlassFromPathname(String filename) {
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Modularizer.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Modularizer.java
index e37ebed..7813b46 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Modularizer.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Modularizer.java
@@ -33,7 +33,6 @@ import java.util.jar.JarFile;
  * Modularize classes and resources from legacy classpath to
  * a module path containing a list of modules, one directory per module.
  *
- * @author Mandy Chung
  */
 public class Modularizer {
 
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Module.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Module.java
index 60693e2..a3ea60d 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Module.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Module.java
@@ -43,7 +43,6 @@ import java.util.TreeSet;
 /**
  * Module contains a list of classes and resources.
  *
- * @author Mandy Chung
  */
 public class Module implements Comparable<Module> {
     private static String baseModuleName = "base";
@@ -106,7 +105,7 @@ public class Module implements Comparable<Module> {
         this.config = config;
         this.mainClassName = config.mainClass();
         this.unresolved = new HashSet<Reference>();
-        this.members = new TreeSet<Module>();
+        this.members = new HashSet<Module>();
         this.group = this; // initialize to itself
     }
 
@@ -366,8 +365,6 @@ public class Module implements Comparable<Module> {
 
         public final Set<Module> getAllModules() {
             Set<Module> ms = new LinkedHashSet<Module>(modules.values());
-            // always add nullModule the last as classes may be added later
-            ms.add(nullModule);
             return ms;
         }
 
@@ -392,9 +389,15 @@ public class Module implements Comparable<Module> {
             }
         }
 
-        Module nullModule = initNullModule();
-        private Module initNullModule() {
-            return this.newModule(new ModuleConfig("unknown", "unknown"));
+        private static Module unknown;
+        Module unknownModule() {
+            synchronized (Factory.class) {
+                if (unknown == null) {
+                    unknown = this.newModule(new ModuleConfig("unknown", "unknown"));
+                    addModule(unknown);
+                }
+            }
+            return unknown;
         }
 
         void buildModuleMembers() {
@@ -416,7 +419,7 @@ public class Module implements Comparable<Module> {
                     if (p.isBaseModule) {
                         // all members are also base
                         m.isBaseModule = true;
-                    }
+                   }
                 }
 
                 public void visited(Module m, Module child, Module p) {
@@ -432,7 +435,7 @@ public class Module implements Comparable<Module> {
             for (Module p : getAllModules()) {
                 for (Module m : p.members) {
                     if (m.group == m) {
-                        m.visitMembers(new TreeSet<Module>(), groupSetter, p);
+                        m.visitMembers(new HashSet<Module>(), groupSetter, p);
                     }
                 }
             }
@@ -450,8 +453,8 @@ public class Module implements Comparable<Module> {
                 }
             };
 
-            Set<Module> visited = new TreeSet<Module>();
-            Set<Module> groups = new TreeSet<Module>();
+            Set<Module> visited = new HashSet<Module>();
+            Set<Module> groups = new HashSet<Module>();
             for (Module m : getAllModules()) {
                 if (m.group() == m) {
                     groups.add(m);
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleBuilder.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleBuilder.java
index 7b1ad29..1714a01 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleBuilder.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleBuilder.java
@@ -38,7 +38,6 @@ import java.util.*;
  * Class.forName, JNI_FindClass, and service providers.
  *
  * @see DependencyConfig
- * @author mchung
  */
 public class ModuleBuilder {
     protected Set<Module> result = new LinkedHashSet<Module>();
@@ -125,6 +124,12 @@ public class ModuleBuilder {
             m.processRootsAndReferences();
         }
 
+        // add classes with null module to the default unknown module
+        for (Klass k : Klass.getAllClasses()) {
+            if (k.getModule() == null)
+                getFactory().unknownModule().addKlass(k);
+        }
+
         if (mergeModules) {
             // group fine-grained modules
             getFactory().buildModuleMembers();
@@ -155,7 +160,7 @@ public class ModuleBuilder {
 
     private void fixupPermits(List<ModuleInfo> minfos) {
         // backedges (i.e. reverse dependences)
-        Map<Module, Set<Module>> backedges = new TreeMap<Module, Set<Module>>();
+        Map<Module, Set<Module>> backedges = new HashMap<Module, Set<Module>>();
         Map<Module, ModuleInfo> map = new LinkedHashMap<Module, ModuleInfo>();
 
         // fixup permits after all ModuleInfo are created in two passes:
@@ -170,7 +175,7 @@ public class ModuleBuilder {
                 Module dep = d.getModule();
                 Set<Module> set = backedges.get(dep);
                 if (set == null) {
-                    set = new TreeSet<Module>();
+                    set = new HashSet<Module>();
                     backedges.put(dep, set);
                 }
                 set.add(mi.getModule());
@@ -213,7 +218,7 @@ public class ModuleBuilder {
         // add modules to the moduleinfos map in order
         // its dependences first before the module
         // TODO: what if there is a cycle??
-        Set<Module> visited = new TreeSet<Module>();
+        Set<Module> visited = new HashSet<Module>();
         Set<Module> orderedList = new LinkedHashSet<Module>();
         Dependence.Filter filter = new Dependence.Filter() {
 
@@ -234,7 +239,7 @@ public class ModuleBuilder {
 
     // module with split packages
     private final Map<String, Set<Module>> splitPackages =
-            new LinkedHashMap<String, Set<Module>>();
+            new TreeMap<String, Set<Module>>();
     public Map<String, Set<Module>> getSplitPackages() {
         return splitPackages;
     }
@@ -244,7 +249,7 @@ public class ModuleBuilder {
     protected void buildPackageInfos() {
         // package name to PackageInfo set
         Map<String, Set<PackageInfo>> packages =
-                new TreeMap<String, Set<PackageInfo>>();
+                new HashMap<String, Set<PackageInfo>>();
         // build the map of a package name to PackageInfo set
         // It only looks at its own list of modules.
         // Subclass of ModuleBuilder can exclude any modules
@@ -253,7 +258,7 @@ public class ModuleBuilder {
                 for (PackageInfo p : m.packages()) {
                     Set<PackageInfo> set = packages.get(p.pkgName);
                     if (set == null) {
-                        set = new TreeSet<PackageInfo>();
+                        set = new HashSet<PackageInfo>();
                         packages.put(p.pkgName, set);
                     }
                     set.add(p);
@@ -279,7 +284,7 @@ public class ModuleBuilder {
 
     protected ModuleInfo buildModuleInfo(Module m) {
         Map<Module, Dependence> requires = new LinkedHashMap<Module, Dependence>();
-        Set<Module> permits = new TreeSet<Module>();
+        Set<Module> permits = new HashSet<Module>();
 
         // add static dependences
         for (Klass from : m.classes()) {
@@ -287,9 +292,6 @@ public class ModuleBuilder {
                 if (m.isModuleDependence(to)) {
                     // is this dependence overridden as optional?
                     boolean optional = OptionalDependency.isOptional(from, to);
-                    // if class is not assigned to any module, assign it to unknown
-                    if (to.getModule() == null)
-                         getFactory().nullModule.addKlass(to);
                     addDependence(requires, to, optional);
                 }
             }
@@ -301,8 +303,6 @@ public class ModuleBuilder {
         // add dependency due to the main class
         Klass k = m.mainClass();
         if (k != null && m.isModuleDependence(k)) {
-            if (k.getModule() == null)
-                getFactory().nullModule.addKlass(k);
             addDependence(requires, k);
         }
 
@@ -335,7 +335,7 @@ public class ModuleBuilder {
         }
 
         ModuleInfo mi = new ModuleInfo(m,
-                new TreeSet<Dependence>(requires.values()),
+                new HashSet<Dependence>(requires.values()),
                 permits);
         return mi;
     }
@@ -400,7 +400,7 @@ public class ModuleBuilder {
             }
         };
 
-        Set<Module> visited = new TreeSet<Module>();
+        Set<Module> visited = new HashSet<Module>();
         // first add requires and permits for the module
         v.visited(module, module, null);
         // then visit their members
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleConfig.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleConfig.java
index 6f06f68..ce940d6 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleConfig.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleConfig.java
@@ -41,7 +41,6 @@ import com.sun.classanalyzer.ModuleInfo.Dependence.Modifier;
 
 /**
  *
- * @author Mandy Chung
  */
 public class ModuleConfig {
 
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleInfo.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleInfo.java
index e28ebe9..ca6736d 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleInfo.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleInfo.java
@@ -28,7 +28,6 @@ import java.util.*;
  * Information about a module.  ModuleInfo.toString() returns
  * a string representation of the module-info.java source file.
  *
- * @author Mandy Chung
  */
 public class ModuleInfo {
 
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/PackageInfo.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/PackageInfo.java
index 8c4f845..8c38257 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/PackageInfo.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/PackageInfo.java
@@ -24,9 +24,9 @@ package com.sun.classanalyzer;
 
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
-import java.util.TreeSet;
 
 /**
  * Package Information
@@ -126,13 +126,11 @@ public class PackageInfo implements Comparable<PackageInfo> {
                     }
                     @Override
                     public Void visitClass(Klass k, Map<String, PackageInfo> packages) {
-                        if (k.exists()) {
-                            // update package statistics
-                            String pkg = k.getPackageName();
-                            PackageInfo pkginfo = getPackageInfo(packages, pkg);
-                            // only count the class that is parsed
-                            pkginfo.addKlass(k);
-                        }
+                        // update package statistics
+                        String pkg = k.getPackageName();
+                        PackageInfo pkginfo = getPackageInfo(packages, pkg);
+                        // only count the class that is parsed
+                        pkginfo.addKlass(k);
                         return null;
                     }
 
@@ -152,7 +150,7 @@ public class PackageInfo implements Comparable<PackageInfo> {
         m.visit(visitor, packages);
         return packages.values();
     }
-    final static Set<String> exportedPackages = new TreeSet<String>();
+    final static Set<String> exportedPackages = new HashSet<String>();
 
     static {
         // if exported.packages property is not set,
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/PlatformModuleBuilder.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/PlatformModuleBuilder.java
index 0a09d8a..380f4e7 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/PlatformModuleBuilder.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/PlatformModuleBuilder.java
@@ -38,7 +38,6 @@ import java.util.*;
  * - one jdk.<m> aggregator module for each sun.<m> module to
  *   reexport its public APIs
  *
- * @author Mandy Chung
  */
 public class PlatformModuleBuilder extends ModuleBuilder {
     private final PlatformFactory factory;
@@ -155,7 +154,7 @@ public class PlatformModuleBuilder extends ModuleBuilder {
      * their dependencies with jdk.boot always be the first.
      */
     private Set<Module> orderedModuleList(Collection<ModuleInfo> minfos) {
-        Set<Module> visited = new TreeSet<Module>();
+        Set<Module> visited = new HashSet<Module>();
         Set<Module> orderedList = new LinkedHashSet<Module>();
         Dependence.Filter filter = new Dependence.Filter() {
 
@@ -185,7 +184,7 @@ public class PlatformModuleBuilder extends ModuleBuilder {
         ModuleInfo mi = super.buildModuleInfo(m);
 
         // use the module's exporter in the dependence
-        Set<Dependence> depset = new TreeSet<Dependence>();
+        Set<Dependence> depset = new HashSet<Dependence>();
         for (Dependence d : mi.requires()) {
             Dependence dep = d;
             if (!d.isInternal() && !d.isLocal()) {
@@ -204,7 +203,6 @@ public class PlatformModuleBuilder extends ModuleBuilder {
                 continue;
             }
             depset.add(dep);
-
         }
 
         // return a new ModuleInfo with patched dependences
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ResolutionInfo.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ResolutionInfo.java
index f8ccda9..4346ba0 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ResolutionInfo.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ResolutionInfo.java
@@ -28,7 +28,6 @@ import com.sun.classanalyzer.Klass.Method;
 
 /**
  *
- * @author mchung
  */
 public class ResolutionInfo implements Comparable<ResolutionInfo> {
 
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ResourceFile.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ResourceFile.java
index e874365..7d538ff 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ResourceFile.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/ResourceFile.java
@@ -36,7 +36,6 @@ import java.util.TreeSet;
 
 /**
  *
- * @author Mandy Chung
  */
 public class ResourceFile implements Comparable<ResourceFile> {
     private final String pathname;
@@ -87,7 +86,7 @@ public class ResourceFile implements Comparable<ResourceFile> {
         return name.compareTo(o.name);
     }
 
-    static Set<ResourceFile> resources = new TreeSet<ResourceFile>();
+    private static Set<ResourceFile> resources = new TreeSet<ResourceFile>();
 
     static boolean isResource(String pathname) {
         // skip these files
@@ -103,7 +102,6 @@ public class ResourceFile implements Comparable<ResourceFile> {
             return false;
         }
 
-
         return true;
     }
 
diff --git a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Trace.java b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Trace.java
index fd4ed19..a861408 100644
--- a/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Trace.java
+++ b/jdk/make/tools/classanalyzer/src/com/sun/classanalyzer/Trace.java
@@ -25,7 +25,6 @@ package com.sun.classanalyzer;
 
 /**
  *
- * @author Mandy Chung
  */
 public class Trace {
     // Turn on tracing by setting a system property "classanalyzer.debug"
diff --git a/jdk/make/tools/reorder/Makefile b/jdk/make/tools/reorder/Makefile
index 4ffa9e5..5e8efc3 100644
--- a/jdk/make/tools/reorder/Makefile
+++ b/jdk/make/tools/reorder/Makefile
@@ -52,9 +52,11 @@ SWINGSET2 = $(OUTPUTDIR)/demo/jfc/SwingSet2/SwingSet2.jar
 # Run java from the JRE image because using rt.jar requires a
 # larger list of classes, and these should appear in the list.
 #   FIXUP: adding rt.jar into bootclasspath?
-JRE_LIB = $(JRE_IMAGE_DIR)/lib
+#
+# This only applies to legacy images
+JRE_LIB = $(JRE_LEGACY_IMAGE_DIR)/lib
 BOOTPATH = -Xbootclasspath:$(JRE_LIB)/rt.jar:$(JRE_LIB)/charsets.jar
-JRE_JAVA = $(JRE_IMAGE_DIR)/bin/java
+JRE_JAVA = $(JRE_LEGACY_IMAGE_DIR)/bin/java
 
 JAVA_BIN = $(BINDIR)/java
 
diff --git a/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java b/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java
index 3c6aebf..0533517 100644
--- a/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java
+++ b/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java
@@ -120,7 +120,7 @@ public class GenerateCurrencyData {
     private static int[] specialCaseOldCurrenciesNumericCode = new int[maxSpecialCases];
     private static int[] specialCaseNewCurrenciesNumericCode = new int[maxSpecialCases];
 
-    private static final int maxOtherCurrencies = 65;
+    private static final int maxOtherCurrencies = 70;
     private static int otherCurrenciesCount = 0;
     private static StringBuffer otherCurrencies = new StringBuffer();
     private static int[] otherCurrenciesDefaultFractionDigits = new int[maxOtherCurrencies];
diff --git a/jdk/make/tools/src/build/tools/javazic/Mappings.java b/jdk/make/tools/src/build/tools/javazic/Mappings.java
index 954d3d5..5e5498a 100644
--- a/jdk/make/tools/src/build/tools/javazic/Mappings.java
+++ b/jdk/make/tools/src/build/tools/javazic/Mappings.java
@@ -76,8 +76,8 @@ class Mappings {
             // If the GMT offset of this Zone will change in some
             // future time, this Zone is added to the exclude list.
             boolean isExcluded = false;
-            if (zone.size() > 1) {
-                ZoneRec zrec = zone.get(zone.size()-2);
+            for (int i = 0; i < zone.size(); i++) {
+                ZoneRec zrec = zone.get(i);
                 if ((zrec.getGmtOffset() != rawOffset)
                     && (zrec.getUntilTime(0) > Time.getCurrentTime())) {
                     if (excludeList == null) {
@@ -85,6 +85,7 @@ class Mappings {
                     }
                     excludeList.add(zone.getName());
                     isExcluded = true;
+                    break;
                 }
             }
 
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java b/jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java
index 0940817..6f46e15 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -245,7 +245,7 @@ final class AESCrypt extends SymmetricCipher implements AESConstants
                     for (j = 0; j < 8; j++) {
                         tmp = AA[i][j];
                         AA[i][j] = AA[t][j];
-                        AA[t][j] = (byte) tmp;
+                        AA[t][j] = tmp;
                     }
                     pivot = AA[i][i];
                 }
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/AESParameters.java b/jdk/src/share/classes/com/sun/crypto/provider/AESParameters.java
index 2faf31d..6c2cdf2 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/AESParameters.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/AESParameters.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,13 +25,10 @@
 
 package com.sun.crypto.provider;
 
-import java.util.*;
 import java.io.*;
-import sun.security.util.*;
 import java.security.AlgorithmParametersSpi;
 import java.security.spec.AlgorithmParameterSpec;
 import java.security.spec.InvalidParameterSpecException;
-import javax.crypto.spec.IvParameterSpec;
 
 /**
  * This class implements the parameter (IV) used with the AES algorithm
@@ -67,9 +64,15 @@ public final class AESParameters extends AlgorithmParametersSpi {
         core.init(encoded, decodingMethod);
     }
 
-    protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec)
+    protected <T extends AlgorithmParameterSpec>
+        T engineGetParameterSpec(Class<T> paramSpec)
         throws InvalidParameterSpecException {
-        return core.getParameterSpec(paramSpec);
+        if (AlgorithmParameterSpec.class.isAssignableFrom(paramSpec)) {
+            return core.getParameterSpec(paramSpec);
+        } else {
+            throw new InvalidParameterSpecException
+                ("Inappropriate parameter Specification");
+        }
     }
 
     protected byte[] engineGetEncoded() throws IOException {
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/BlockCipherParamsCore.java b/jdk/src/share/classes/com/sun/crypto/provider/BlockCipherParamsCore.java
index 7466d55..d400925 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/BlockCipherParamsCore.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/BlockCipherParamsCore.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package com.sun.crypto.provider;
 
-import java.util.*;
 import java.io.*;
 import sun.security.util.*;
 import sun.misc.HexDumpEncoder;
@@ -64,7 +63,7 @@ final class BlockCipherParamsCore {
             throw new InvalidParameterSpecException("IV not " +
                         block_size + " bytes long");
         }
-        iv = (byte[]) tmpIv.clone();
+        iv = tmpIv.clone();
     }
 
     void init(byte[] encoded) throws IOException {
@@ -90,11 +89,11 @@ final class BlockCipherParamsCore {
         init(encoded);
     }
 
-    AlgorithmParameterSpec getParameterSpec(Class paramSpec)
+    <T extends AlgorithmParameterSpec> T getParameterSpec(Class<T> paramSpec)
         throws InvalidParameterSpecException
     {
         if (IvParameterSpec.class.isAssignableFrom(paramSpec)) {
-            return new IvParameterSpec(this.iv);
+            return paramSpec.cast(new IvParameterSpec(this.iv));
         } else {
             throw new InvalidParameterSpecException
                 ("Inappropriate parameter specification");
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/BlowfishParameters.java b/jdk/src/share/classes/com/sun/crypto/provider/BlowfishParameters.java
index 995da5a..beb2804 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/BlowfishParameters.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/BlowfishParameters.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,13 +25,10 @@
 
 package com.sun.crypto.provider;
 
-import java.util.*;
 import java.io.*;
-import sun.security.util.*;
 import java.security.AlgorithmParametersSpi;
 import java.security.spec.AlgorithmParameterSpec;
 import java.security.spec.InvalidParameterSpecException;
-import javax.crypto.spec.IvParameterSpec;
 
 /**
  * This class implements the parameter (IV) used with the Blowfish algorithm in
@@ -68,9 +65,15 @@ public final class BlowfishParameters extends AlgorithmParametersSpi {
         core.init(encoded, decodingMethod);
     }
 
-    protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec)
+    protected <T extends AlgorithmParameterSpec>
+        T engineGetParameterSpec(Class<T> paramSpec)
         throws InvalidParameterSpecException {
-        return core.getParameterSpec(paramSpec);
+        if (AlgorithmParameterSpec.class.isAssignableFrom(paramSpec)) {
+            return core.getParameterSpec(paramSpec);
+        } else {
+            throw new InvalidParameterSpecException
+                ("Inappropriate parameter Specification");
+        }
     }
 
     protected byte[] engineGetEncoded() throws IOException {
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/CipherBlockChaining.java b/jdk/src/share/classes/com/sun/crypto/provider/CipherBlockChaining.java
index 1291a6e..3ed00e0 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/CipherBlockChaining.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/CipherBlockChaining.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -193,7 +193,7 @@ class CipherBlockChaining extends FeedbackCipher  {
             // This is necessary because in this constellation, a
             // ciphertext block (or parts of it) will be overridden by
             // the plaintext result.
-            cipherOrig = (byte[])cipher.clone();
+            cipherOrig = cipher.clone();
         }
 
         for (; cipherOffset < endIndex;
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java b/jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java
index 80070b7..eb30879 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -301,7 +301,7 @@ final class CipherCore {
      */
     byte[] getIV() {
         byte[] iv = cipher.getIV();
-        return (iv == null) ? null : (byte[])iv.clone();
+        return (iv == null) ? null : iv.clone();
     }
 
     /**
@@ -475,8 +475,7 @@ final class CipherCore {
         IvParameterSpec ivSpec = null;
         if (params != null) {
             try {
-                ivSpec = (IvParameterSpec)params.getParameterSpec
-                    (IvParameterSpec.class);
+                ivSpec = params.getParameterSpec(IvParameterSpec.class);
             } catch (InvalidParameterSpecException ipse) {
                 throw new InvalidAlgorithmParameterException("Wrong parameter "
                                                              + "type: IV "
@@ -832,7 +831,7 @@ final class CipherCore {
         buffered = 0;
         diffBlocksize = blockSize;
         if (cipherMode != ECB_MODE) {
-            ((FeedbackCipher)cipher).reset();
+            cipher.reset();
         }
         return totalLen;
     }
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESCrypt.java b/jdk/src/share/classes/com/sun/crypto/provider/DESCrypt.java
index c8c01d8..b533cfd 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESCrypt.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESCrypt.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -622,17 +622,17 @@ class DESCrypt extends SymmetricCipher implements DESConstants {
             // mangler function:
             // every 6 bit is fed into the sbox, which
             // produces 4-bit output
-            left ^= s0p[(int)((temp & 0x3f) ^ key[j+0])]
-                ^ s1p[(int)(((temp >>  4) & 0x3f) ^ key[j+1])]
-                ^ s2p[(int)(((temp >>  8) & 0x3f) ^ key[j+2])]
-                ^ s3p[(int)(((temp >> 12) & 0x3f) ^ key[j+3])]
-                ^ s4p[(int)(((temp >> 16) & 0x3f) ^ key[j+4])]
-                ^ s5p[(int)(((temp >> 20) & 0x3f) ^ key[j+5])]
-                ^ s6p[(int)(((temp >> 24) & 0x3f) ^ key[j+6])];
+            left ^= s0p[(temp & 0x3f) ^ key[j+0]]
+                ^ s1p[((temp >>  4) & 0x3f) ^ key[j+1]]
+                ^ s2p[((temp >>  8) & 0x3f) ^ key[j+2]]
+                ^ s3p[((temp >> 12) & 0x3f) ^ key[j+3]]
+                ^ s4p[((temp >> 16) & 0x3f) ^ key[j+4]]
+                ^ s5p[((temp >> 20) & 0x3f) ^ key[j+5]]
+                ^ s6p[((temp >> 24) & 0x3f) ^ key[j+6]];
 
             // make the last sbox input the last bit from right[0]
             temp = ((right & 1) << 5) | ((right >> 27) & 0x1f);
-            left ^= s7p[(int)(temp ^ key[j+7])];
+            left ^= s7p[temp ^ key[j+7]];
             temp = left;
             left = right;
             right = temp;
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESKey.java b/jdk/src/share/classes/com/sun/crypto/provider/DESKey.java
index cb942e7..32564ce 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESKey.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESKey.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -78,7 +78,7 @@ final class DESKey implements SecretKey {
     public byte[] getEncoded() {
         // Return a copy of the key, rather than a reference,
         // so that the key data cannot be modified from outside
-        return (byte[])this.key.clone();
+        return this.key.clone();
     }
 
     public String getAlgorithm() {
@@ -126,7 +126,7 @@ final class DESKey implements SecretKey {
          throws java.io.IOException, ClassNotFoundException
     {
         s.defaultReadObject();
-        key = (byte[])key.clone();
+        key = key.clone();
     }
 
     /**
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java b/jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java
index 28ba8a4..47f0b26 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -92,7 +92,7 @@ public final class DESKeyFactory extends SecretKeyFactorySpi {
      * inappropriate for the given key, or the given key cannot be processed
      * (e.g., the given key has an unrecognized algorithm or format).
      */
-    protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec)
+    protected KeySpec engineGetKeySpec(SecretKey key, Class<?> keySpec)
         throws InvalidKeySpecException {
 
         try {
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESParameters.java b/jdk/src/share/classes/com/sun/crypto/provider/DESParameters.java
index 56e289e..a5ae615 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESParameters.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESParameters.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,13 +25,10 @@
 
 package com.sun.crypto.provider;
 
-import java.util.*;
 import java.io.*;
-import sun.security.util.*;
 import java.security.AlgorithmParametersSpi;
 import java.security.spec.AlgorithmParameterSpec;
 import java.security.spec.InvalidParameterSpecException;
-import javax.crypto.spec.IvParameterSpec;
 
 /**
  * This class implements the parameter (IV) used with the DES algorithm in
@@ -68,9 +65,15 @@ public final class DESParameters extends AlgorithmParametersSpi {
         core.init(encoded, decodingMethod);
     }
 
-    protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec)
+    protected <T extends AlgorithmParameterSpec>
+        T engineGetParameterSpec(Class<T> paramSpec)
         throws InvalidParameterSpecException {
-        return core.getParameterSpec(paramSpec);
+        if (AlgorithmParameterSpec.class.isAssignableFrom(paramSpec)) {
+            return core.getParameterSpec(paramSpec);
+        } else {
+            throw new InvalidParameterSpecException
+                ("Inappropriate parameter Specification");
+        }
     }
 
     protected byte[] engineGetEncoded() throws IOException {
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java
index 917c040..8f264b8 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -78,7 +78,7 @@ final class DESedeKey implements SecretKey {
     }
 
     public byte[] getEncoded() {
-        return (byte[])this.key.clone();
+        return this.key.clone();
     }
 
     public String getAlgorithm() {
@@ -127,7 +127,7 @@ final class DESedeKey implements SecretKey {
          throws java.io.IOException, ClassNotFoundException
     {
         s.defaultReadObject();
-        key = (byte[])key.clone();
+        key = key.clone();
     }
 
     /**
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java
index fd29754..9caabc3 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -92,7 +92,7 @@ public final class DESedeKeyFactory extends SecretKeyFactorySpi {
      * inappropriate for the given key, or the given key cannot be processed
      * (e.g., the given key has an unrecognized algorithm or format).
      */
-    protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec)
+    protected KeySpec engineGetKeySpec(SecretKey key, Class<?> keySpec)
         throws InvalidKeySpecException {
 
         try {
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESedeParameters.java b/jdk/src/share/classes/com/sun/crypto/provider/DESedeParameters.java
index 884a2ba..d2bba89 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeParameters.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeParameters.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,13 +25,10 @@
 
 package com.sun.crypto.provider;
 
-import java.util.*;
 import java.io.*;
-import sun.security.util.*;
 import java.security.AlgorithmParametersSpi;
 import java.security.spec.AlgorithmParameterSpec;
 import java.security.spec.InvalidParameterSpecException;
-import javax.crypto.spec.IvParameterSpec;
 
 /**
  * This class implements the parameter (IV) used with the Triple DES algorithm
@@ -67,9 +64,15 @@ public final class DESedeParameters extends AlgorithmParametersSpi {
         core.init(encoded, decodingMethod);
     }
 
-    protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec)
+    protected <T extends AlgorithmParameterSpec>
+        T engineGetParameterSpec(Class<T> paramSpec)
         throws InvalidParameterSpecException {
-        return core.getParameterSpec(paramSpec);
+        if (AlgorithmParameterSpec.class.isAssignableFrom(paramSpec)) {
+            return core.getParameterSpec(paramSpec);
+        } else {
+            throw new InvalidParameterSpecException
+                ("Inappropriate parameter Specification");
+        }
     }
 
     protected byte[] engineGetEncoded() throws IOException {
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java b/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java
index 8f73047..07b5a77 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package com.sun.crypto.provider;
 
-import java.util.Arrays;
 import java.security.*;
 import java.security.spec.*;
 import javax.crypto.*;
@@ -151,7 +150,7 @@ public final class DESedeWrapCipher extends CipherSpi {
      * been set.
      */
     protected byte[] engineGetIV() {
-        return (iv == null? null:(byte[]) iv.clone());
+        return (iv == null) ? null : iv.clone();
     }
 
     /**
@@ -277,8 +276,7 @@ public final class DESedeWrapCipher extends CipherSpi {
             try {
                 DESedeParameters paramsEng = new DESedeParameters();
                 paramsEng.engineInit(params.getEncoded());
-                ivSpec = (IvParameterSpec)
-                    paramsEng.engineGetParameterSpec(IvParameterSpec.class);
+                ivSpec = paramsEng.engineGetParameterSpec(IvParameterSpec.class);
             } catch (Exception ex) {
                 InvalidAlgorithmParameterException iape =
                     new InvalidAlgorithmParameterException
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java
index bb5e176..38e7d36 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,6 @@
 
 package com.sun.crypto.provider;
 
-import java.util.*;
-import java.lang.*;
 import java.security.Key;
 import java.security.PublicKey;
 import java.security.PrivateKey;
@@ -140,7 +138,8 @@ public final class DHKeyFactory extends KeyFactorySpi {
      * inappropriate for the given key, or the given key cannot be processed
      * (e.g., the given key has an unrecognized algorithm or format).
      */
-    protected KeySpec engineGetKeySpec(Key key, Class keySpec)
+    protected <T extends KeySpec>
+        T engineGetKeySpec(Key key, Class<T> keySpec)
         throws InvalidKeySpecException {
         DHParameterSpec params;
 
@@ -150,12 +149,12 @@ public final class DHKeyFactory extends KeyFactorySpi {
                 javax.crypto.interfaces.DHPublicKey dhPubKey
                     = (javax.crypto.interfaces.DHPublicKey) key;
                 params = dhPubKey.getParams();
-                return new DHPublicKeySpec(dhPubKey.getY(),
-                                           params.getP(),
-                                           params.getG());
+                return keySpec.cast(new DHPublicKeySpec(dhPubKey.getY(),
+                                                        params.getP(),
+                                                        params.getG()));
 
             } else if (X509EncodedKeySpec.class.isAssignableFrom(keySpec)) {
-                return new X509EncodedKeySpec(key.getEncoded());
+                return keySpec.cast(new X509EncodedKeySpec(key.getEncoded()));
 
             } else {
                 throw new InvalidKeySpecException
@@ -168,12 +167,12 @@ public final class DHKeyFactory extends KeyFactorySpi {
                 javax.crypto.interfaces.DHPrivateKey dhPrivKey
                     = (javax.crypto.interfaces.DHPrivateKey)key;
                 params = dhPrivKey.getParams();
-                return new DHPrivateKeySpec(dhPrivKey.getX(),
-                                            params.getP(),
-                                            params.getG());
+                return keySpec.cast(new DHPrivateKeySpec(dhPrivKey.getX(),
+                                                         params.getP(),
+                                                         params.getG()));
 
             } else if (PKCS8EncodedKeySpec.class.isAssignableFrom(keySpec)) {
-                return new PKCS8EncodedKeySpec(key.getEncoded());
+                return keySpec.cast(new PKCS8EncodedKeySpec(key.getEncoded()));
 
             } else {
                 throw new InvalidKeySpecException
@@ -208,8 +207,7 @@ public final class DHKeyFactory extends KeyFactorySpi {
                 }
                 // Convert key to spec
                 DHPublicKeySpec dhPubKeySpec
-                    = (DHPublicKeySpec)engineGetKeySpec
-                    (key, DHPublicKeySpec.class);
+                    = engineGetKeySpec(key, DHPublicKeySpec.class);
                 // Create key from spec, and return it
                 return engineGeneratePublic(dhPubKeySpec);
 
@@ -220,8 +218,7 @@ public final class DHKeyFactory extends KeyFactorySpi {
                 }
                 // Convert key to spec
                 DHPrivateKeySpec dhPrivKeySpec
-                    = (DHPrivateKeySpec)engineGetKeySpec
-                    (key, DHPrivateKeySpec.class);
+                    = engineGetKeySpec(key, DHPrivateKeySpec.class);
                 // Create key from spec, and return it
                 return engineGeneratePrivate(dhPrivKeySpec);
 
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java b/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java
index 9589fa6..0d2eec7 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package com.sun.crypto.provider;
 
-import java.math.BigInteger;
 import java.security.*;
 import java.security.spec.*;
 import javax.crypto.spec.DHParameterSpec;
@@ -141,8 +140,7 @@ extends AlgorithmParameterGeneratorSpi {
             paramGen = AlgorithmParameterGenerator.getInstance("DSA");
             paramGen.init(this.primeSize, random);
             algParams = paramGen.generateParameters();
-            dsaParamSpec = (DSAParameterSpec)
-                algParams.getParameterSpec(DSAParameterSpec.class);
+            dsaParamSpec = algParams.getParameterSpec(DSAParameterSpec.class);
 
             DHParameterSpec dhParamSpec;
             if (this.exponentSize > 0) {
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DHParameters.java b/jdk/src/share/classes/com/sun/crypto/provider/DHParameters.java
index 022a8de..57b0e7c 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHParameters.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DHParameters.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package com.sun.crypto.provider;
 
-import java.util.*;
 import java.io.*;
 import sun.security.util.*;
 import java.math.BigInteger;
@@ -95,11 +94,12 @@ public final class DHParameters extends AlgorithmParametersSpi {
             engineInit(params);
     }
 
-    protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec)
+    protected <T extends AlgorithmParameterSpec>
+        T engineGetParameterSpec(Class<T> paramSpec)
         throws InvalidParameterSpecException {
 
         if (DHParameterSpec.class.isAssignableFrom(paramSpec)) {
-            return new DHParameterSpec(this.p, this.g, this.l);
+            return paramSpec.cast(new DHParameterSpec(this.p, this.g, this.l));
         } else {
             throw new InvalidParameterSpecException
                 ("Inappropriate parameter Specification");
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java b/jdk/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java
index 4af003d..1653a23 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,6 @@ import java.security.KeyRep;
 import java.security.PrivateKey;
 import java.security.InvalidKeyException;
 import java.security.ProviderException;
-import javax.crypto.*;
 import javax.crypto.spec.DHParameterSpec;
 import sun.security.util.*;
 
@@ -182,7 +181,7 @@ javax.crypto.interfaces.DHPrivateKey, Serializable {
 
             // ignore OPTIONAL attributes
 
-            this.encodedKey = (byte[])encodedKey.clone();
+            this.encodedKey = encodedKey.clone();
 
         } catch (NumberFormatException e) {
             InvalidKeyException ike = new InvalidKeyException(
@@ -256,7 +255,7 @@ javax.crypto.interfaces.DHPrivateKey, Serializable {
                 return null;
             }
         }
-        return (byte[])this.encodedKey.clone();
+        return this.encodedKey.clone();
     }
 
     /**
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DHPublicKey.java b/jdk/src/share/classes/com/sun/crypto/provider/DHPublicKey.java
index 46bf602..a9062e5 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHPublicKey.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DHPublicKey.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,10 +29,8 @@ import java.io.*;
 import java.math.BigInteger;
 import java.security.KeyRep;
 import java.security.InvalidKeyException;
-import java.security.InvalidAlgorithmParameterException;
 import java.security.ProviderException;
 import java.security.PublicKey;
-import javax.crypto.*;
 import javax.crypto.spec.DHParameterSpec;
 import sun.security.util.*;
 
@@ -174,7 +172,7 @@ javax.crypto.interfaces.DHPublicKey, Serializable {
                 throw new InvalidKeyException("Excess key data");
             }
 
-            this.encodedKey = (byte[])encodedKey.clone();
+            this.encodedKey = encodedKey.clone();
 
         } catch (NumberFormatException e) {
             throw new InvalidKeyException("Private-value length too big");
@@ -237,7 +235,7 @@ javax.crypto.interfaces.DHPublicKey, Serializable {
                 return null;
             }
         }
-        return (byte[])this.encodedKey.clone();
+        return this.encodedKey.clone();
     }
 
     /**
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/EncryptedPrivateKeyInfo.java b/jdk/src/share/classes/com/sun/crypto/provider/EncryptedPrivateKeyInfo.java
index 2db02db..c6a4c0f 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/EncryptedPrivateKeyInfo.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/EncryptedPrivateKeyInfo.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -77,7 +77,7 @@ final class EncryptedPrivateKeyInfo {
         if (seq[1].data.available() != 0)
             throw new IOException("encryptedData field overrun");
 
-        this.encoded = (byte[])encoded.clone();
+        this.encoded = encoded.clone();
     }
 
     /**
@@ -86,7 +86,7 @@ final class EncryptedPrivateKeyInfo {
      */
     EncryptedPrivateKeyInfo(AlgorithmId algid, byte[] encryptedData) {
         this.algid = algid;
-        this.encryptedData = (byte[])encryptedData.clone();
+        this.encryptedData = encryptedData.clone();
         this.encoded = null; // lazy generation of encoding
     }
 
@@ -101,7 +101,7 @@ final class EncryptedPrivateKeyInfo {
      * Returns the encrypted data.
      */
     byte[] getEncryptedData() {
-        return (byte[])this.encryptedData.clone();
+        return this.encryptedData.clone();
     }
 
     /**
@@ -110,7 +110,7 @@ final class EncryptedPrivateKeyInfo {
     byte[] getEncoded()
         throws IOException
     {
-        if (this.encoded != null) return (byte[])this.encoded.clone();
+        if (this.encoded != null) return this.encoded.clone();
 
         DerOutputStream out = new DerOutputStream();
         DerOutputStream tmp = new DerOutputStream();
@@ -125,6 +125,6 @@ final class EncryptedPrivateKeyInfo {
         out.write(DerValue.tag_Sequence, tmp);
         this.encoded = out.toByteArray();
 
-        return (byte[])this.encoded.clone();
+        return this.encoded.clone();
     }
 }
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java b/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java
index 0683bc1..57aed3d 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -78,8 +78,8 @@ final class HmacCore implements Cloneable {
     private HmacCore(HmacCore other) throws CloneNotSupportedException {
         this.md = (MessageDigest)other.md.clone();
         this.blockLen = other.blockLen;
-        this.k_ipad = (byte[])other.k_ipad.clone();
-        this.k_opad = (byte[])other.k_opad.clone();
+        this.k_ipad = other.k_ipad.clone();
+        this.k_opad = other.k_opad.clone();
         this.first = other.first;
     }
 
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/JceKeyStore.java b/jdk/src/share/classes/com/sun/crypto/provider/JceKeyStore.java
index 1f37e18..5d48553 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/JceKeyStore.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/JceKeyStore.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,9 +38,7 @@ import java.security.KeyStoreException;
 import java.security.UnrecoverableKeyException;
 import java.security.cert.Certificate;
 import java.security.cert.CertificateFactory;
-import java.security.cert.X509Certificate;
 import java.security.cert.CertificateException;
-import java.security.spec.InvalidKeySpecException;
 import javax.crypto.SealedObject;
 
 /**
@@ -87,7 +85,7 @@ public final class JceKeyStore extends KeyStoreSpi {
      * Private keys and certificates are stored in a hashtable.
      * Hash entries are keyed by alias names.
      */
-    private Hashtable entries = new Hashtable();
+    private Hashtable<String, Object> entries = new Hashtable<String, Object>();
 
     /**
      * Returns the key associated with the given alias, using the given
@@ -156,7 +154,7 @@ public final class JceKeyStore extends KeyStoreSpi {
 
         if ((entry instanceof PrivateKeyEntry)
             && (((PrivateKeyEntry)entry).chain != null)) {
-            chain = (Certificate[])((PrivateKeyEntry)entry).chain.clone();
+            chain = ((PrivateKeyEntry)entry).chain.clone();
         }
 
         return chain;
@@ -262,7 +260,7 @@ public final class JceKeyStore extends KeyStoreSpi {
                     // clone the chain
                     if ((chain != null) &&
                         (chain.length !=0)) {
-                        entry.chain = (Certificate[])chain.clone();
+                        entry.chain = chain.clone();
                     } else {
                         entry.chain = null;
                     }
@@ -316,10 +314,10 @@ public final class JceKeyStore extends KeyStoreSpi {
             PrivateKeyEntry entry = new PrivateKeyEntry();
             entry.date = new Date();
 
-            entry.protectedKey = (byte[])key.clone();
+            entry.protectedKey = key.clone();
             if ((chain != null) &&
                 (chain.length != 0)) {
-                entry.chain = (Certificate[])chain.clone();
+                entry.chain = chain.clone();
             } else {
                 entry.chain = null;
             }
@@ -384,7 +382,7 @@ public final class JceKeyStore extends KeyStoreSpi {
      *
      * @return enumeration of the alias names
      */
-    public Enumeration engineAliases() {
+    public Enumeration<String> engineAliases() {
         return entries.keys();
     }
 
@@ -462,9 +460,9 @@ public final class JceKeyStore extends KeyStoreSpi {
     public String engineGetCertificateAlias(Certificate cert) {
         Certificate certElem;
 
-        Enumeration e = entries.keys();
+        Enumeration<String> e = entries.keys();
         while (e.hasMoreElements()) {
-            String alias = (String)e.nextElement();
+            String alias = e.nextElement();
             Object entry = entries.get(alias);
             if (entry instanceof TrustedCertEntry) {
                 certElem = ((TrustedCertEntry)entry).cert;
@@ -560,10 +558,10 @@ public final class JceKeyStore extends KeyStoreSpi {
 
                 dos.writeInt(entries.size());
 
-                Enumeration e = entries.keys();
+                Enumeration<String> e = entries.keys();
                 while (e.hasMoreElements()) {
 
-                    String alias = (String)e.nextElement();
+                    String alias = e.nextElement();
                     Object entry = entries.get(alias);
 
                     if (entry instanceof PrivateKeyEntry) {
@@ -677,7 +675,7 @@ public final class JceKeyStore extends KeyStoreSpi {
             DataInputStream dis;
             MessageDigest md = null;
             CertificateFactory cf = null;
-            Hashtable cfs = null;
+            Hashtable<String, CertificateFactory> cfs = null;
             ByteArrayInputStream bais = null;
             byte[] encoded = null;
 
@@ -713,7 +711,7 @@ public final class JceKeyStore extends KeyStoreSpi {
                     cf = CertificateFactory.getInstance("X509");
                 } else {
                     // version 2
-                    cfs = new Hashtable(3);
+                    cfs = new Hashtable<String, CertificateFactory>(3);
                 }
 
                 entries.clear();
@@ -761,7 +759,7 @@ public final class JceKeyStore extends KeyStoreSpi {
                                 String certType = dis.readUTF();
                                 if (cfs.containsKey(certType)) {
                                 // reuse certificate factory
-                                    cf = (CertificateFactory)cfs.get(certType);
+                                    cf = cfs.get(certType);
                                 } else {
                                 // create new certificate factory
                                     cf = CertificateFactory.getInstance(
@@ -803,7 +801,7 @@ public final class JceKeyStore extends KeyStoreSpi {
                             String certType = dis.readUTF();
                             if (cfs.containsKey(certType)) {
                                 // reuse certificate factory
-                                cf = (CertificateFactory)cfs.get(certType);
+                                cf = cfs.get(certType);
                             } else {
                                 // create new certificate factory
                                 cf = CertificateFactory.getInstance(certType);
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/KeyProtector.java b/jdk/src/share/classes/com/sun/crypto/provider/KeyProtector.java
index cd89dd7..6d38a1f 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/KeyProtector.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/KeyProtector.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,14 +25,8 @@
 
 package com.sun.crypto.provider;
 
-import java.io.UnsupportedEncodingException;
 import java.io.IOException;
 import java.io.Serializable;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.ObjectInputStream.GetField;
 import java.security.Security;
 import java.security.Key;
 import java.security.PrivateKey;
@@ -42,22 +36,14 @@ import java.security.MessageDigest;
 import java.security.GeneralSecurityException;
 import java.security.NoSuchAlgorithmException;
 import java.security.NoSuchProviderException;
-import java.security.SecureRandom;
 import java.security.UnrecoverableKeyException;
-import java.security.InvalidParameterException;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.InvalidKeyException;
 import java.security.AlgorithmParameters;
-import java.security.spec.InvalidParameterSpecException;
-import java.security.spec.InvalidKeySpecException;
 import java.security.spec.PKCS8EncodedKeySpec;
 
 import javax.crypto.Cipher;
 import javax.crypto.CipherSpi;
 import javax.crypto.SecretKey;
-import javax.crypto.NoSuchPaddingException;
 import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.BadPaddingException;
 import javax.crypto.SealedObject;
 import javax.crypto.spec.*;
 import sun.security.x509.AlgorithmId;
@@ -127,7 +113,7 @@ final class KeyProtector {
         PBEWithMD5AndTripleDESCipher cipher;
         cipher = new PBEWithMD5AndTripleDESCipher();
         cipher.engineInit(Cipher.ENCRYPT_MODE, sKey, pbeSpec, null);
-        byte[] plain = (byte[])key.getEncoded();
+        byte[] plain = key.getEncoded();
         byte[] encrKey = cipher.engineDoFinal(plain, 0, plain.length);
 
         // wrap encrypted private key in EncryptedPrivateKeyInfo
@@ -169,8 +155,8 @@ final class KeyProtector {
                 AlgorithmParameters pbeParams =
                     AlgorithmParameters.getInstance("PBE");
                 pbeParams.init(encodedParams);
-                PBEParameterSpec pbeSpec = (PBEParameterSpec)
-                    pbeParams.getParameterSpec(PBEParameterSpec.class);
+                PBEParameterSpec pbeSpec =
+                        pbeParams.getParameterSpec(PBEParameterSpec.class);
 
                 // create PBE key from password
                 PBEKeySpec pbeKeySpec = new PBEKeySpec(this.password);
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/OAEPParameters.java b/jdk/src/share/classes/com/sun/crypto/provider/OAEPParameters.java
index 07d613b..61423f0 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/OAEPParameters.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/OAEPParameters.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
 package com.sun.crypto.provider;
 
 import java.math.BigInteger;
-import java.util.*;
 import java.io.*;
 import sun.security.util.*;
 import sun.security.x509.*;
@@ -180,11 +179,13 @@ public final class OAEPParameters extends AlgorithmParametersSpi {
         engineInit(encoded);
     }
 
-    protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec)
+    protected <T extends AlgorithmParameterSpec>
+        T engineGetParameterSpec(Class<T> paramSpec)
         throws InvalidParameterSpecException {
         if (OAEPParameterSpec.class.isAssignableFrom(paramSpec)) {
-            return new OAEPParameterSpec(mdName, "MGF1", mgfSpec,
-                new PSource.PSpecified(p));
+            return paramSpec.cast(
+                new OAEPParameterSpec(mdName, "MGF1", mgfSpec,
+                                      new PSource.PSpecified(p)));
         } else {
             throw new InvalidParameterSpecException
                 ("Inappropriate parameter specification");
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/PBECipherCore.java b/jdk/src/share/classes/com/sun/crypto/provider/PBECipherCore.java
index 7a0179a..7181cee 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBECipherCore.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PBECipherCore.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package com.sun.crypto.provider;
 
-import java.io.UnsupportedEncodingException;
 import java.security.*;
 import java.security.spec.*;
 import javax.crypto.*;
@@ -326,8 +325,7 @@ final class PBECipherCore {
         PBEParameterSpec pbeSpec = null;
         if (params != null) {
             try {
-                pbeSpec = (PBEParameterSpec) params.getParameterSpec
-                    (PBEParameterSpec.class);
+                pbeSpec = params.getParameterSpec(PBEParameterSpec.class);
             } catch (InvalidParameterSpecException ipse) {
                 throw new InvalidAlgorithmParameterException("Wrong parameter "
                                                              + "type: PBE "
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java b/jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java
index 5678327..a650133 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package com.sun.crypto.provider;
 
-import java.io.UnsupportedEncodingException;
 import java.security.KeyRep;
 import java.security.spec.InvalidKeySpecException;
 import javax.crypto.SecretKey;
@@ -69,7 +68,7 @@ final class PBEKey implements SecretKey {
     }
 
     public byte[] getEncoded() {
-        return (byte[])this.key.clone();
+        return this.key.clone();
     }
 
     public String getAlgorithm() {
@@ -118,7 +117,7 @@ final class PBEKey implements SecretKey {
          throws java.io.IOException, ClassNotFoundException
     {
         s.defaultReadObject();
-        key = (byte[])key.clone();
+        key = key.clone();
     }
 
 
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java b/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java
index 1e46793..b246916 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package com.sun.crypto.provider;
 
-import java.io.UnsupportedEncodingException;
 import java.security.InvalidKeyException;
 import java.security.spec.KeySpec;
 import java.security.spec.InvalidKeySpecException;
@@ -132,7 +131,7 @@ abstract class PBEKeyFactory extends SecretKeyFactorySpi {
      * inappropriate for the given key, or the given key cannot be processed
      * (e.g., the given key has an unrecognized algorithm or format).
      */
-    protected KeySpec engineGetKeySpec(SecretKey key, Class keySpecCl)
+    protected KeySpec engineGetKeySpec(SecretKey key, Class<?> keySpecCl)
         throws InvalidKeySpecException {
         if ((key instanceof SecretKey)
             && (validTypes.contains(key.getAlgorithm().toUpperCase()))
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/PBEParameters.java b/jdk/src/share/classes/com/sun/crypto/provider/PBEParameters.java
index e902193..114303f 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBEParameters.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEParameters.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package com.sun.crypto.provider;
 
-import java.util.*;
 import java.io.*;
 import java.math.BigInteger;
 import java.security.AlgorithmParametersSpi;
@@ -65,7 +64,7 @@ public final class PBEParameters extends AlgorithmParametersSpi {
            throw new InvalidParameterSpecException
                ("Inappropriate parameter specification");
        }
-       this.salt = (byte[])((PBEParameterSpec)paramSpec).getSalt().clone();
+       this.salt = ((PBEParameterSpec)paramSpec).getSalt().clone();
        this.iCount = ((PBEParameterSpec)paramSpec).getIterationCount();
     }
 
@@ -98,11 +97,12 @@ public final class PBEParameters extends AlgorithmParametersSpi {
         engineInit(encoded);
     }
 
-    protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec)
+    protected <T extends AlgorithmParameterSpec>
+            T engineGetParameterSpec(Class<T> paramSpec)
         throws InvalidParameterSpecException
     {
         if (PBEParameterSpec.class.isAssignableFrom(paramSpec)) {
-            return new PBEParameterSpec(this.salt, this.iCount);
+            return paramSpec.cast(new PBEParameterSpec(this.salt, this.iCount));
         } else {
             throw new InvalidParameterSpecException
                 ("Inappropriate parameter specification");
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java b/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java
index da63fab..ae49c79 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,14 +25,12 @@
 
 package com.sun.crypto.provider;
 
-import java.io.*;
 import java.security.InvalidKeyException;
 import java.security.spec.KeySpec;
 import java.security.spec.InvalidKeySpecException;
 import javax.crypto.SecretKey;
 import javax.crypto.SecretKeyFactorySpi;
 import javax.crypto.spec.PBEKeySpec;
-import javax.crypto.spec.SecretKeySpec;
 
 /**
  * This class implements a key factory for PBE keys derived using
@@ -88,7 +86,7 @@ public final class PBKDF2HmacSHA1Factory extends SecretKeyFactorySpi {
      * given key cannot be processed (e.g., the given key has an
      * unrecognized algorithm or format).
      */
-    protected KeySpec engineGetKeySpec(SecretKey key, Class keySpecCl)
+    protected KeySpec engineGetKeySpec(SecretKey key, Class<?> keySpecCl)
         throws InvalidKeySpecException {
         if (key instanceof javax.crypto.interfaces.PBEKey) {
             // Check if requested key spec is amongst the valid ones
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java b/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java
index 7f74609..ec73014 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -133,6 +133,7 @@ final class PBKDF2KeyImpl implements javax.crypto.interfaces.PBEKey {
             byte[] ti = new byte[hlen];
             // SecretKeySpec cannot be used, since password can be empty here.
             SecretKey macKey = new SecretKey() {
+                private static final long serialVersionUID = 7874493593505141603L;
                 @Override
                 public String getAlgorithm() {
                     return prf.getAlgorithm();
@@ -194,7 +195,7 @@ final class PBKDF2KeyImpl implements javax.crypto.interfaces.PBEKey {
     }
 
     public byte[] getEncoded() {
-        return (byte[]) key.clone();
+        return key.clone();
     }
 
     public String getAlgorithm() {
@@ -206,7 +207,7 @@ final class PBKDF2KeyImpl implements javax.crypto.interfaces.PBEKey {
     }
 
     public char[] getPassword() {
-        return (char[]) passwd.clone();
+        return passwd.clone();
     }
 
     public byte[] getSalt() {
@@ -268,7 +269,7 @@ final class PBKDF2KeyImpl implements javax.crypto.interfaces.PBEKey {
     protected void finalize() throws Throwable {
         try {
             if (this.passwd != null) {
-                java.util.Arrays.fill(this.passwd, (char) '0');
+                java.util.Arrays.fill(this.passwd, '0');
                 this.passwd = null;
             }
             if (this.key != null) {
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/PCBC.java b/jdk/src/share/classes/com/sun/crypto/provider/PCBC.java
index d4c9037..aa47585 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/PCBC.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PCBC.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -145,7 +145,7 @@ final class PCBC extends FeedbackCipher {
         for (; plainOffset < endIndex;
              plainOffset += blockSize, cipherOffset += blockSize) {
             for (i=0; i<blockSize; i++) {
-                k[i] ^= (byte)(plain[i+plainOffset]);
+                k[i] ^= plain[i+plainOffset];
             }
             embeddedCipher.encryptBlock(k, 0, cipher, cipherOffset);
             for (i = 0; i < blockSize; i++) {
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/RC2Cipher.java b/jdk/src/share/classes/com/sun/crypto/provider/RC2Cipher.java
index e40e615..8096329 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/RC2Cipher.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/RC2Cipher.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -98,8 +98,8 @@ public final class RC2Cipher extends CipherSpi {
             throws InvalidKeyException, InvalidAlgorithmParameterException {
         if (params != null && params.getAlgorithm().equals("RC2")) {
             try {
-                RC2ParameterSpec rc2Params = (RC2ParameterSpec)
-                    params.getParameterSpec(RC2ParameterSpec.class);
+                RC2ParameterSpec rc2Params =
+                        params.getParameterSpec(RC2ParameterSpec.class);
                 engineInit(opmode, key, rc2Params, random);
             } catch (InvalidParameterSpecException ipse) {
                 throw new InvalidAlgorithmParameterException
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/RC2Parameters.java b/jdk/src/share/classes/com/sun/crypto/provider/RC2Parameters.java
index 87cadec..6178658 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/RC2Parameters.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/RC2Parameters.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,7 +55,6 @@ import sun.security.util.*;
  * @author Sean Mullan
  * @since 1.5
  */
-
 public final class RC2Parameters extends AlgorithmParametersSpi {
 
     // TABLE[EKB] from section 6 of RFC 2268, used to convert effective key
@@ -177,13 +176,14 @@ public final class RC2Parameters extends AlgorithmParametersSpi {
         engineInit(encoded);
     }
 
-    protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec)
+    protected <T extends AlgorithmParameterSpec>
+            T engineGetParameterSpec(Class<T> paramSpec)
         throws InvalidParameterSpecException {
 
         if (RC2ParameterSpec.class.isAssignableFrom(paramSpec)) {
-            return (iv == null ?
-                    new RC2ParameterSpec(effectiveKeySize) :
-                    new RC2ParameterSpec(effectiveKeySize, iv));
+            return paramSpec.cast((iv == null ?
+                                   new RC2ParameterSpec(effectiveKeySize) :
+                                   new RC2ParameterSpec(effectiveKeySize, iv)));
         } else {
             throw new InvalidParameterSpecException
                 ("Inappropriate parameter specification");
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java b/jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java
index 644813d..d636414 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -227,8 +227,8 @@ public final class RSACipher extends CipherSpi {
             init(opmode, key, random, null);
         } else {
             try {
-                OAEPParameterSpec spec = (OAEPParameterSpec)
-                    params.getParameterSpec(OAEPParameterSpec.class);
+                OAEPParameterSpec spec =
+                        params.getParameterSpec(OAEPParameterSpec.class);
                 init(opmode, key, random, spec);
             } catch (InvalidParameterSpecException ipse) {
                 InvalidAlgorithmParameterException iape =
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java b/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java
index 4b53f84..c58236b 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,11 +27,6 @@ package com.sun.crypto.provider;
 
 import java.security.AccessController;
 import java.security.Provider;
-import java.security.PrivilegedAction;
-import java.security.cert.*;
-import java.net.URL;
-import java.io.ByteArrayInputStream;
-import java.security.CodeSource;
 import java.security.SecureRandom;
 
 
@@ -105,352 +100,353 @@ public final class SunJCE extends Provider {
             "|OFB72|OFB80|OFB88|OFB96|OFB104|OFB112|OFB120|OFB128";
         final String BLOCK_PADS = "NOPADDING|PKCS5PADDING|ISO10126PADDING";
 
-        AccessController.doPrivileged(new java.security.PrivilegedAction() {
+        AccessController.doPrivileged(
+            new java.security.PrivilegedAction<Object>() {
                 public Object run() {
 
-                /*
-                 * Cipher engines
-                 */
-                put("Cipher.RSA", "com.sun.crypto.provider.RSACipher");
-                put("Cipher.RSA SupportedModes", "ECB");
-                put("Cipher.RSA SupportedPaddings",
-                        "NOPADDING|PKCS1PADDING|OAEPWITHMD5ANDMGF1PADDING"
-                        + "|OAEPWITHSHA1ANDMGF1PADDING"
-                        + "|OAEPWITHSHA-1ANDMGF1PADDING"
-                        + "|OAEPWITHSHA-256ANDMGF1PADDING"
-                        + "|OAEPWITHSHA-384ANDMGF1PADDING"
-                        + "|OAEPWITHSHA-512ANDMGF1PADDING");
-                put("Cipher.RSA SupportedKeyClasses",
-                        "java.security.interfaces.RSAPublicKey" +
-                        "|java.security.interfaces.RSAPrivateKey");
-
-                put("Cipher.DES", "com.sun.crypto.provider.DESCipher");
-                put("Cipher.DES SupportedModes", BLOCK_MODES);
-                put("Cipher.DES SupportedPaddings", BLOCK_PADS);
-                put("Cipher.DES SupportedKeyFormats", "RAW");
-
-                put("Cipher.DESede", "com.sun.crypto.provider.DESedeCipher");
-                put("Alg.Alias.Cipher.TripleDES", "DESede");
-                put("Cipher.DESede SupportedModes", BLOCK_MODES);
-                put("Cipher.DESede SupportedPaddings", BLOCK_PADS);
-                put("Cipher.DESede SupportedKeyFormats", "RAW");
-
-                put("Cipher.DESedeWrap",
-                    "com.sun.crypto.provider.DESedeWrapCipher");
-                put("Cipher.DESedeWrap SupportedModes", "CBC");
-                put("Cipher.DESedeWrap SupportedPaddings", "NOPADDING");
-                put("Cipher.DESedeWrap SupportedKeyFormats", "RAW");
-
-                put("Cipher.PBEWithMD5AndDES",
-                    "com.sun.crypto.provider.PBEWithMD5AndDESCipher");
-                put("Alg.Alias.Cipher.OID."+OID_PKCS5_MD5_DES,
-                    "PBEWithMD5AndDES");
-                put("Alg.Alias.Cipher."+OID_PKCS5_MD5_DES,
-                    "PBEWithMD5AndDES");
-                put("Cipher.PBEWithMD5AndTripleDES",
-                    "com.sun.crypto.provider.PBEWithMD5AndTripleDESCipher");
-                put("Cipher.PBEWithSHA1AndRC2_40",
-                    "com.sun.crypto.provider.PKCS12PBECipherCore$" +
-                    "PBEWithSHA1AndRC2_40");
-                put("Alg.Alias.Cipher.OID." + OID_PKCS12_RC2_40,
-                    "PBEWithSHA1AndRC2_40");
-                put("Alg.Alias.Cipher." + OID_PKCS12_RC2_40,
-                    "PBEWithSHA1AndRC2_40");
-                put("Cipher.PBEWithSHA1AndDESede",
-                    "com.sun.crypto.provider.PKCS12PBECipherCore$" +
-                    "PBEWithSHA1AndDESede");
-                put("Alg.Alias.Cipher.OID." + OID_PKCS12_DESede,
-                    "PBEWithSHA1AndDESede");
-                put("Alg.Alias.Cipher." + OID_PKCS12_DESede,
-                    "PBEWithSHA1AndDESede");
-
-                put("Cipher.Blowfish",
-                    "com.sun.crypto.provider.BlowfishCipher");
-                put("Cipher.Blowfish SupportedModes", BLOCK_MODES);
-                put("Cipher.Blowfish SupportedPaddings", BLOCK_PADS);
-                put("Cipher.Blowfish SupportedKeyFormats", "RAW");
-
-                put("Cipher.AES", "com.sun.crypto.provider.AESCipher");
-                put("Alg.Alias.Cipher.Rijndael", "AES");
-                put("Cipher.AES SupportedModes", BLOCK_MODES128);
-                put("Cipher.AES SupportedPaddings", BLOCK_PADS);
-                put("Cipher.AES SupportedKeyFormats", "RAW");
-
-                put("Cipher.AESWrap", "com.sun.crypto.provider.AESWrapCipher");
-                put("Cipher.AESWrap SupportedModes", "ECB");
-                put("Cipher.AESWrap SupportedPaddings", "NOPADDING");
-                put("Cipher.AESWrap SupportedKeyFormats", "RAW");
-
-                put("Cipher.RC2",
-                    "com.sun.crypto.provider.RC2Cipher");
-                put("Cipher.RC2 SupportedModes", BLOCK_MODES);
-                put("Cipher.RC2 SupportedPaddings", BLOCK_PADS);
-                put("Cipher.RC2 SupportedKeyFormats", "RAW");
-
-                put("Cipher.ARCFOUR",
-                    "com.sun.crypto.provider.ARCFOURCipher");
-                put("Alg.Alias.Cipher.RC4", "ARCFOUR");
-                put("Cipher.ARCFOUR SupportedModes", "ECB");
-                put("Cipher.ARCFOUR SupportedPaddings", "NOPADDING");
-                put("Cipher.ARCFOUR SupportedKeyFormats", "RAW");
-
-                /*
-                 *  Key(pair) Generator engines
-                 */
-                put("KeyGenerator.DES",
-                    "com.sun.crypto.provider.DESKeyGenerator");
-
-                put("KeyGenerator.DESede",
-                    "com.sun.crypto.provider.DESedeKeyGenerator");
-                put("Alg.Alias.KeyGenerator.TripleDES", "DESede");
-
-                put("KeyGenerator.Blowfish",
-                    "com.sun.crypto.provider.BlowfishKeyGenerator");
-
-                put("KeyGenerator.AES",
-                    "com.sun.crypto.provider.AESKeyGenerator");
-                put("Alg.Alias.KeyGenerator.Rijndael", "AES");
-
-                put("KeyGenerator.RC2",
-                    "com.sun.crypto.provider.KeyGeneratorCore$" +
-                    "RC2KeyGenerator");
-                put("KeyGenerator.ARCFOUR",
-                    "com.sun.crypto.provider.KeyGeneratorCore$" +
-                    "ARCFOURKeyGenerator");
-                put("Alg.Alias.KeyGenerator.RC4", "ARCFOUR");
-
-                put("KeyGenerator.HmacMD5",
-                    "com.sun.crypto.provider.HmacMD5KeyGenerator");
-
-                put("KeyGenerator.HmacSHA1",
-                    "com.sun.crypto.provider.HmacSHA1KeyGenerator");
-
-                put("KeyGenerator.HmacSHA256",
-                    "com.sun.crypto.provider.KeyGeneratorCore$HmacSHA256KG");
-                put("KeyGenerator.HmacSHA384",
-                    "com.sun.crypto.provider.KeyGeneratorCore$HmacSHA384KG");
-                put("KeyGenerator.HmacSHA512",
-                    "com.sun.crypto.provider.KeyGeneratorCore$HmacSHA512KG");
-
-                put("KeyPairGenerator.DiffieHellman",
-                    "com.sun.crypto.provider.DHKeyPairGenerator");
-                put("Alg.Alias.KeyPairGenerator.DH", "DiffieHellman");
-                put("Alg.Alias.KeyPairGenerator.OID."+OID_PKCS3,
-                    "DiffieHellman");
-                put("Alg.Alias.KeyPairGenerator."+OID_PKCS3,
-                    "DiffieHellman");
-                /*
-                 * Algorithm parameter generation engines
-                 */
-                put("AlgorithmParameterGenerator.DiffieHellman",
-                    "com.sun.crypto.provider.DHParameterGenerator");
-                put("Alg.Alias.AlgorithmParameterGenerator.DH",
-                    "DiffieHellman");
-                put("Alg.Alias.AlgorithmParameterGenerator.OID."+OID_PKCS3,
-                    "DiffieHellman");
-                put("Alg.Alias.AlgorithmParameterGenerator."+OID_PKCS3,
-                    "DiffieHellman");
-
-                /*
-                 * Key Agreement engines
-                 */
-                put("KeyAgreement.DiffieHellman",
-                    "com.sun.crypto.provider.DHKeyAgreement");
-                put("Alg.Alias.KeyAgreement.DH", "DiffieHellman");
-                put("Alg.Alias.KeyAgreement.OID."+OID_PKCS3, "DiffieHellman");
-                put("Alg.Alias.KeyAgreement."+OID_PKCS3, "DiffieHellman");
-
-                put("KeyAgreement.DiffieHellman SupportedKeyClasses",
-                    "javax.crypto.interfaces.DHPublicKey" +
-                    "|javax.crypto.interfaces.DHPrivateKey");
-
-                /*
-                 * Algorithm Parameter engines
-                 */
-                put("AlgorithmParameters.DiffieHellman",
-                    "com.sun.crypto.provider.DHParameters");
-                put("Alg.Alias.AlgorithmParameters.DH", "DiffieHellman");
-                put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS3,
-                    "DiffieHellman");
-                put("Alg.Alias.AlgorithmParameters."+OID_PKCS3,
-                    "DiffieHellman");
-
-                put("AlgorithmParameters.DES",
-                    "com.sun.crypto.provider.DESParameters");
-
-                put("AlgorithmParameters.DESede",
-                    "com.sun.crypto.provider.DESedeParameters");
-                put("Alg.Alias.AlgorithmParameters.TripleDES", "DESede");
-
-                put("AlgorithmParameters.PBE",
-                    "com.sun.crypto.provider.PBEParameters");
-
-                put("AlgorithmParameters.PBEWithMD5AndDES",
-                    "com.sun.crypto.provider.PBEParameters");
-                put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS5_MD5_DES,
-                    "PBEWithMD5AndDES");
-                put("Alg.Alias.AlgorithmParameters."+OID_PKCS5_MD5_DES,
-                    "PBEWithMD5AndDES");
-
-                put("AlgorithmParameters.PBEWithMD5AndTripleDES",
-                    "com.sun.crypto.provider.PBEParameters");
-
-                put("AlgorithmParameters.PBEWithSHA1AndDESede",
-                    "com.sun.crypto.provider.PBEParameters");
-                put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS12_DESede,
-                    "PBEWithSHA1AndDESede");
-                put("Alg.Alias.AlgorithmParameters."+OID_PKCS12_DESede,
-                    "PBEWithSHA1AndDESede");
-
-                put("AlgorithmParameters.PBEWithSHA1AndRC2_40",
-                    "com.sun.crypto.provider.PBEParameters");
-                put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS12_RC2_40,
-                    "PBEWithSHA1AndRC2_40");
-                put("Alg.Alias.AlgorithmParameters." + OID_PKCS12_RC2_40,
-                    "PBEWithSHA1AndRC2_40");
-
-                put("AlgorithmParameters.Blowfish",
-                    "com.sun.crypto.provider.BlowfishParameters");
-
-                put("AlgorithmParameters.AES",
-                    "com.sun.crypto.provider.AESParameters");
-                put("Alg.Alias.AlgorithmParameters.Rijndael", "AES");
-
-
-                put("AlgorithmParameters.RC2",
-                    "com.sun.crypto.provider.RC2Parameters");
-
-                put("AlgorithmParameters.OAEP",
-                    "com.sun.crypto.provider.OAEPParameters");
-
-
-                /*
-                 * Key factories
-                 */
-                put("KeyFactory.DiffieHellman",
-                    "com.sun.crypto.provider.DHKeyFactory");
-                put("Alg.Alias.KeyFactory.DH", "DiffieHellman");
-                put("Alg.Alias.KeyFactory.OID."+OID_PKCS3,
-                    "DiffieHellman");
-                put("Alg.Alias.KeyFactory."+OID_PKCS3, "DiffieHellman");
-                /*
-                 * Secret-key factories
-                 */
-                put("SecretKeyFactory.DES",
-                    "com.sun.crypto.provider.DESKeyFactory");
-
-                put("SecretKeyFactory.DESede",
-                    "com.sun.crypto.provider.DESedeKeyFactory");
-                put("Alg.Alias.SecretKeyFactory.TripleDES", "DESede");
-
-                put("SecretKeyFactory.PBEWithMD5AndDES",
-                    "com.sun.crypto.provider.PBEKeyFactory$PBEWithMD5AndDES"
-                    );
-                put("Alg.Alias.SecretKeyFactory.OID."+OID_PKCS5_MD5_DES,
-                    "PBEWithMD5AndDES");
-                put("Alg.Alias.SecretKeyFactory."+OID_PKCS5_MD5_DES,
-                    "PBEWithMD5AndDES");
-
-                put("Alg.Alias.SecretKeyFactory.PBE",
-                    "PBEWithMD5AndDES");
-
-                /*
-                 * Internal in-house crypto algorithm used for
-                 * the JCEKS keystore type.  Since this was developed
-                 * internally, there isn't an OID corresponding to this
-                 * algorithm.
-                 */
-                put("SecretKeyFactory.PBEWithMD5AndTripleDES",
-                    "com.sun.crypto.provider.PBEKeyFactory$" +
-                    "PBEWithMD5AndTripleDES"
-                    );
-
-                put("SecretKeyFactory.PBEWithSHA1AndDESede",
-                    "com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndDESede"
-                    );
-                put("Alg.Alias.SecretKeyFactory.OID."+OID_PKCS12_DESede,
-                    "PBEWithSHA1AndDESede");
-                put("Alg.Alias.SecretKeyFactory." + OID_PKCS12_DESede,
-                    "PBEWithSHA1AndDESede");
-
-                put("SecretKeyFactory.PBEWithSHA1AndRC2_40",
-                    "com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndRC2_40"
-                    );
-                put("Alg.Alias.SecretKeyFactory.OID." + OID_PKCS12_RC2_40,
-                    "PBEWithSHA1AndRC2_40");
-                put("Alg.Alias.SecretKeyFactory." + OID_PKCS12_RC2_40,
-                    "PBEWithSHA1AndRC2_40");
-
-                put("SecretKeyFactory.PBKDF2WithHmacSHA1",
-                    "com.sun.crypto.provider.PBKDF2HmacSHA1Factory");
-                put("Alg.Alias.SecretKeyFactory.OID." + OID_PKCS5_PBKDF2,
-                    "PBKDF2WithHmacSHA1");
-                put("Alg.Alias.SecretKeyFactory." + OID_PKCS5_PBKDF2,
-                    "PBKDF2WithHmacSHA1");
-
-                /*
-                 * MAC
-                 */
-                put("Mac.HmacMD5", "com.sun.crypto.provider.HmacMD5");
-                put("Mac.HmacSHA1", "com.sun.crypto.provider.HmacSHA1");
-                put("Mac.HmacSHA256",
-                    "com.sun.crypto.provider.HmacCore$HmacSHA256");
-                put("Mac.HmacSHA384",
-                    "com.sun.crypto.provider.HmacCore$HmacSHA384");
-                put("Mac.HmacSHA512",
-                    "com.sun.crypto.provider.HmacCore$HmacSHA512");
-                put("Mac.HmacPBESHA1",
-                    "com.sun.crypto.provider.HmacPKCS12PBESHA1");
-
-                put("Mac.SslMacMD5",
-                    "com.sun.crypto.provider.SslMacCore$SslMacMD5");
-                put("Mac.SslMacSHA1",
-                    "com.sun.crypto.provider.SslMacCore$SslMacSHA1");
-
-                put("Mac.HmacMD5 SupportedKeyFormats", "RAW");
-                put("Mac.HmacSHA1 SupportedKeyFormats", "RAW");
-                put("Mac.HmacSHA256 SupportedKeyFormats", "RAW");
-                put("Mac.HmacSHA384 SupportedKeyFormats", "RAW");
-                put("Mac.HmacSHA512 SupportedKeyFormats", "RAW");
-                put("Mac.HmacPBESHA1 SupportedKeyFormats", "RAW");
-                put("Mac.SslMacMD5 SupportedKeyFormats", "RAW");
-                put("Mac.SslMacSHA1 SupportedKeyFormats", "RAW");
-
-                /*
-                 * KeyStore
-                 */
-                put("KeyStore.JCEKS", "com.sun.crypto.provider.JceKeyStore");
-
-                /*
-                 * SSL/TLS mechanisms
-                 *
-                 * These are strictly internal implementations and may
-                 * be changed at any time.  These names were chosen
-                 * because PKCS11/SunPKCS11 does not yet have TLS1.2
-                 * mechanisms, and it will cause calls to come here.
-                 */
-                put("KeyGenerator.SunTlsPrf",
-                        "com.sun.crypto.provider.TlsPrfGenerator$V10");
-                put("KeyGenerator.SunTls12Prf",
-                        "com.sun.crypto.provider.TlsPrfGenerator$V12");
-
-                put("KeyGenerator.SunTlsMasterSecret",
-                    "com.sun.crypto.provider.TlsMasterSecretGenerator");
-                put("Alg.Alias.KeyGenerator.SunTls12MasterSecret",
-                    "SunTlsMasterSecret");
-
-                put("KeyGenerator.SunTlsKeyMaterial",
-                    "com.sun.crypto.provider.TlsKeyMaterialGenerator");
-                put("Alg.Alias.KeyGenerator.SunTls12KeyMaterial",
-                    "SunTlsKeyMaterial");
-
-                put("KeyGenerator.SunTlsRsaPremasterSecret",
-                    "com.sun.crypto.provider.TlsRsaPremasterSecretGenerator");
-                put("Alg.Alias.KeyGenerator.SunTls12RsaPremasterSecret",
-                    "SunTlsRsaPremasterSecret");
-
-                return null;
-            }
-        });
+                    /*
+                     * Cipher engines
+                     */
+                    put("Cipher.RSA", "com.sun.crypto.provider.RSACipher");
+                    put("Cipher.RSA SupportedModes", "ECB");
+                    put("Cipher.RSA SupportedPaddings",
+                            "NOPADDING|PKCS1PADDING|OAEPWITHMD5ANDMGF1PADDING"
+                            + "|OAEPWITHSHA1ANDMGF1PADDING"
+                            + "|OAEPWITHSHA-1ANDMGF1PADDING"
+                            + "|OAEPWITHSHA-256ANDMGF1PADDING"
+                            + "|OAEPWITHSHA-384ANDMGF1PADDING"
+                            + "|OAEPWITHSHA-512ANDMGF1PADDING");
+                    put("Cipher.RSA SupportedKeyClasses",
+                            "java.security.interfaces.RSAPublicKey" +
+                            "|java.security.interfaces.RSAPrivateKey");
+
+                    put("Cipher.DES", "com.sun.crypto.provider.DESCipher");
+                    put("Cipher.DES SupportedModes", BLOCK_MODES);
+                    put("Cipher.DES SupportedPaddings", BLOCK_PADS);
+                    put("Cipher.DES SupportedKeyFormats", "RAW");
+
+                    put("Cipher.DESede", "com.sun.crypto.provider.DESedeCipher");
+                    put("Alg.Alias.Cipher.TripleDES", "DESede");
+                    put("Cipher.DESede SupportedModes", BLOCK_MODES);
+                    put("Cipher.DESede SupportedPaddings", BLOCK_PADS);
+                    put("Cipher.DESede SupportedKeyFormats", "RAW");
+
+                    put("Cipher.DESedeWrap",
+                        "com.sun.crypto.provider.DESedeWrapCipher");
+                    put("Cipher.DESedeWrap SupportedModes", "CBC");
+                    put("Cipher.DESedeWrap SupportedPaddings", "NOPADDING");
+                    put("Cipher.DESedeWrap SupportedKeyFormats", "RAW");
+
+                    put("Cipher.PBEWithMD5AndDES",
+                        "com.sun.crypto.provider.PBEWithMD5AndDESCipher");
+                    put("Alg.Alias.Cipher.OID."+OID_PKCS5_MD5_DES,
+                        "PBEWithMD5AndDES");
+                    put("Alg.Alias.Cipher."+OID_PKCS5_MD5_DES,
+                        "PBEWithMD5AndDES");
+                    put("Cipher.PBEWithMD5AndTripleDES",
+                        "com.sun.crypto.provider.PBEWithMD5AndTripleDESCipher");
+                    put("Cipher.PBEWithSHA1AndRC2_40",
+                        "com.sun.crypto.provider.PKCS12PBECipherCore$" +
+                        "PBEWithSHA1AndRC2_40");
+                    put("Alg.Alias.Cipher.OID." + OID_PKCS12_RC2_40,
+                        "PBEWithSHA1AndRC2_40");
+                    put("Alg.Alias.Cipher." + OID_PKCS12_RC2_40,
+                        "PBEWithSHA1AndRC2_40");
+                    put("Cipher.PBEWithSHA1AndDESede",
+                        "com.sun.crypto.provider.PKCS12PBECipherCore$" +
+                        "PBEWithSHA1AndDESede");
+                    put("Alg.Alias.Cipher.OID." + OID_PKCS12_DESede,
+                        "PBEWithSHA1AndDESede");
+                    put("Alg.Alias.Cipher." + OID_PKCS12_DESede,
+                        "PBEWithSHA1AndDESede");
+
+                    put("Cipher.Blowfish",
+                        "com.sun.crypto.provider.BlowfishCipher");
+                    put("Cipher.Blowfish SupportedModes", BLOCK_MODES);
+                    put("Cipher.Blowfish SupportedPaddings", BLOCK_PADS);
+                    put("Cipher.Blowfish SupportedKeyFormats", "RAW");
+
+                    put("Cipher.AES", "com.sun.crypto.provider.AESCipher");
+                    put("Alg.Alias.Cipher.Rijndael", "AES");
+                    put("Cipher.AES SupportedModes", BLOCK_MODES128);
+                    put("Cipher.AES SupportedPaddings", BLOCK_PADS);
+                    put("Cipher.AES SupportedKeyFormats", "RAW");
+
+                    put("Cipher.AESWrap", "com.sun.crypto.provider.AESWrapCipher");
+                    put("Cipher.AESWrap SupportedModes", "ECB");
+                    put("Cipher.AESWrap SupportedPaddings", "NOPADDING");
+                    put("Cipher.AESWrap SupportedKeyFormats", "RAW");
+
+                    put("Cipher.RC2",
+                        "com.sun.crypto.provider.RC2Cipher");
+                    put("Cipher.RC2 SupportedModes", BLOCK_MODES);
+                    put("Cipher.RC2 SupportedPaddings", BLOCK_PADS);
+                    put("Cipher.RC2 SupportedKeyFormats", "RAW");
+
+                    put("Cipher.ARCFOUR",
+                        "com.sun.crypto.provider.ARCFOURCipher");
+                    put("Alg.Alias.Cipher.RC4", "ARCFOUR");
+                    put("Cipher.ARCFOUR SupportedModes", "ECB");
+                    put("Cipher.ARCFOUR SupportedPaddings", "NOPADDING");
+                    put("Cipher.ARCFOUR SupportedKeyFormats", "RAW");
+
+                    /*
+                     *  Key(pair) Generator engines
+                     */
+                    put("KeyGenerator.DES",
+                        "com.sun.crypto.provider.DESKeyGenerator");
+
+                    put("KeyGenerator.DESede",
+                        "com.sun.crypto.provider.DESedeKeyGenerator");
+                    put("Alg.Alias.KeyGenerator.TripleDES", "DESede");
+
+                    put("KeyGenerator.Blowfish",
+                        "com.sun.crypto.provider.BlowfishKeyGenerator");
+
+                    put("KeyGenerator.AES",
+                        "com.sun.crypto.provider.AESKeyGenerator");
+                    put("Alg.Alias.KeyGenerator.Rijndael", "AES");
+
+                    put("KeyGenerator.RC2",
+                        "com.sun.crypto.provider.KeyGeneratorCore$" +
+                        "RC2KeyGenerator");
+                    put("KeyGenerator.ARCFOUR",
+                        "com.sun.crypto.provider.KeyGeneratorCore$" +
+                        "ARCFOURKeyGenerator");
+                    put("Alg.Alias.KeyGenerator.RC4", "ARCFOUR");
+
+                    put("KeyGenerator.HmacMD5",
+                        "com.sun.crypto.provider.HmacMD5KeyGenerator");
+
+                    put("KeyGenerator.HmacSHA1",
+                        "com.sun.crypto.provider.HmacSHA1KeyGenerator");
+
+                    put("KeyGenerator.HmacSHA256",
+                        "com.sun.crypto.provider.KeyGeneratorCore$HmacSHA256KG");
+                    put("KeyGenerator.HmacSHA384",
+                        "com.sun.crypto.provider.KeyGeneratorCore$HmacSHA384KG");
+                    put("KeyGenerator.HmacSHA512",
+                        "com.sun.crypto.provider.KeyGeneratorCore$HmacSHA512KG");
+
+                    put("KeyPairGenerator.DiffieHellman",
+                        "com.sun.crypto.provider.DHKeyPairGenerator");
+                    put("Alg.Alias.KeyPairGenerator.DH", "DiffieHellman");
+                    put("Alg.Alias.KeyPairGenerator.OID."+OID_PKCS3,
+                        "DiffieHellman");
+                    put("Alg.Alias.KeyPairGenerator."+OID_PKCS3,
+                        "DiffieHellman");
+                    /*
+                     * Algorithm parameter generation engines
+                     */
+                    put("AlgorithmParameterGenerator.DiffieHellman",
+                        "com.sun.crypto.provider.DHParameterGenerator");
+                    put("Alg.Alias.AlgorithmParameterGenerator.DH",
+                        "DiffieHellman");
+                    put("Alg.Alias.AlgorithmParameterGenerator.OID."+OID_PKCS3,
+                        "DiffieHellman");
+                    put("Alg.Alias.AlgorithmParameterGenerator."+OID_PKCS3,
+                        "DiffieHellman");
+
+                    /*
+                     * Key Agreement engines
+                     */
+                    put("KeyAgreement.DiffieHellman",
+                        "com.sun.crypto.provider.DHKeyAgreement");
+                    put("Alg.Alias.KeyAgreement.DH", "DiffieHellman");
+                    put("Alg.Alias.KeyAgreement.OID."+OID_PKCS3, "DiffieHellman");
+                    put("Alg.Alias.KeyAgreement."+OID_PKCS3, "DiffieHellman");
+
+                    put("KeyAgreement.DiffieHellman SupportedKeyClasses",
+                        "javax.crypto.interfaces.DHPublicKey" +
+                        "|javax.crypto.interfaces.DHPrivateKey");
+
+                    /*
+                     * Algorithm Parameter engines
+                     */
+                    put("AlgorithmParameters.DiffieHellman",
+                        "com.sun.crypto.provider.DHParameters");
+                    put("Alg.Alias.AlgorithmParameters.DH", "DiffieHellman");
+                    put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS3,
+                        "DiffieHellman");
+                    put("Alg.Alias.AlgorithmParameters."+OID_PKCS3,
+                        "DiffieHellman");
+
+                    put("AlgorithmParameters.DES",
+                        "com.sun.crypto.provider.DESParameters");
+
+                    put("AlgorithmParameters.DESede",
+                        "com.sun.crypto.provider.DESedeParameters");
+                    put("Alg.Alias.AlgorithmParameters.TripleDES", "DESede");
+
+                    put("AlgorithmParameters.PBE",
+                        "com.sun.crypto.provider.PBEParameters");
+
+                    put("AlgorithmParameters.PBEWithMD5AndDES",
+                        "com.sun.crypto.provider.PBEParameters");
+                    put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS5_MD5_DES,
+                        "PBEWithMD5AndDES");
+                    put("Alg.Alias.AlgorithmParameters."+OID_PKCS5_MD5_DES,
+                        "PBEWithMD5AndDES");
+
+                    put("AlgorithmParameters.PBEWithMD5AndTripleDES",
+                        "com.sun.crypto.provider.PBEParameters");
+
+                    put("AlgorithmParameters.PBEWithSHA1AndDESede",
+                        "com.sun.crypto.provider.PBEParameters");
+                    put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS12_DESede,
+                        "PBEWithSHA1AndDESede");
+                    put("Alg.Alias.AlgorithmParameters."+OID_PKCS12_DESede,
+                        "PBEWithSHA1AndDESede");
+
+                    put("AlgorithmParameters.PBEWithSHA1AndRC2_40",
+                        "com.sun.crypto.provider.PBEParameters");
+                    put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS12_RC2_40,
+                        "PBEWithSHA1AndRC2_40");
+                    put("Alg.Alias.AlgorithmParameters." + OID_PKCS12_RC2_40,
+                        "PBEWithSHA1AndRC2_40");
+
+                    put("AlgorithmParameters.Blowfish",
+                        "com.sun.crypto.provider.BlowfishParameters");
+
+                    put("AlgorithmParameters.AES",
+                        "com.sun.crypto.provider.AESParameters");
+                    put("Alg.Alias.AlgorithmParameters.Rijndael", "AES");
+
+
+                    put("AlgorithmParameters.RC2",
+                        "com.sun.crypto.provider.RC2Parameters");
+
+                    put("AlgorithmParameters.OAEP",
+                        "com.sun.crypto.provider.OAEPParameters");
+
+
+                    /*
+                     * Key factories
+                     */
+                    put("KeyFactory.DiffieHellman",
+                        "com.sun.crypto.provider.DHKeyFactory");
+                    put("Alg.Alias.KeyFactory.DH", "DiffieHellman");
+                    put("Alg.Alias.KeyFactory.OID."+OID_PKCS3,
+                        "DiffieHellman");
+                    put("Alg.Alias.KeyFactory."+OID_PKCS3, "DiffieHellman");
+                    /*
+                     * Secret-key factories
+                     */
+                    put("SecretKeyFactory.DES",
+                        "com.sun.crypto.provider.DESKeyFactory");
+
+                    put("SecretKeyFactory.DESede",
+                        "com.sun.crypto.provider.DESedeKeyFactory");
+                    put("Alg.Alias.SecretKeyFactory.TripleDES", "DESede");
+
+                    put("SecretKeyFactory.PBEWithMD5AndDES",
+                        "com.sun.crypto.provider.PBEKeyFactory$PBEWithMD5AndDES"
+                        );
+                    put("Alg.Alias.SecretKeyFactory.OID."+OID_PKCS5_MD5_DES,
+                        "PBEWithMD5AndDES");
+                    put("Alg.Alias.SecretKeyFactory."+OID_PKCS5_MD5_DES,
+                        "PBEWithMD5AndDES");
+
+                    put("Alg.Alias.SecretKeyFactory.PBE",
+                        "PBEWithMD5AndDES");
+
+                    /*
+                     * Internal in-house crypto algorithm used for
+                     * the JCEKS keystore type.  Since this was developed
+                     * internally, there isn't an OID corresponding to this
+                     * algorithm.
+                     */
+                    put("SecretKeyFactory.PBEWithMD5AndTripleDES",
+                        "com.sun.crypto.provider.PBEKeyFactory$" +
+                        "PBEWithMD5AndTripleDES"
+                        );
+
+                    put("SecretKeyFactory.PBEWithSHA1AndDESede",
+                        "com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndDESede"
+                        );
+                    put("Alg.Alias.SecretKeyFactory.OID."+OID_PKCS12_DESede,
+                        "PBEWithSHA1AndDESede");
+                    put("Alg.Alias.SecretKeyFactory." + OID_PKCS12_DESede,
+                        "PBEWithSHA1AndDESede");
+
+                    put("SecretKeyFactory.PBEWithSHA1AndRC2_40",
+                        "com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndRC2_40"
+                        );
+                    put("Alg.Alias.SecretKeyFactory.OID." + OID_PKCS12_RC2_40,
+                        "PBEWithSHA1AndRC2_40");
+                    put("Alg.Alias.SecretKeyFactory." + OID_PKCS12_RC2_40,
+                        "PBEWithSHA1AndRC2_40");
+
+                    put("SecretKeyFactory.PBKDF2WithHmacSHA1",
+                        "com.sun.crypto.provider.PBKDF2HmacSHA1Factory");
+                    put("Alg.Alias.SecretKeyFactory.OID." + OID_PKCS5_PBKDF2,
+                        "PBKDF2WithHmacSHA1");
+                    put("Alg.Alias.SecretKeyFactory." + OID_PKCS5_PBKDF2,
+                        "PBKDF2WithHmacSHA1");
+
+                    /*
+                     * MAC
+                     */
+                    put("Mac.HmacMD5", "com.sun.crypto.provider.HmacMD5");
+                    put("Mac.HmacSHA1", "com.sun.crypto.provider.HmacSHA1");
+                    put("Mac.HmacSHA256",
+                        "com.sun.crypto.provider.HmacCore$HmacSHA256");
+                    put("Mac.HmacSHA384",
+                        "com.sun.crypto.provider.HmacCore$HmacSHA384");
+                    put("Mac.HmacSHA512",
+                        "com.sun.crypto.provider.HmacCore$HmacSHA512");
+                    put("Mac.HmacPBESHA1",
+                        "com.sun.crypto.provider.HmacPKCS12PBESHA1");
+
+                    put("Mac.SslMacMD5",
+                        "com.sun.crypto.provider.SslMacCore$SslMacMD5");
+                    put("Mac.SslMacSHA1",
+                        "com.sun.crypto.provider.SslMacCore$SslMacSHA1");
+
+                    put("Mac.HmacMD5 SupportedKeyFormats", "RAW");
+                    put("Mac.HmacSHA1 SupportedKeyFormats", "RAW");
+                    put("Mac.HmacSHA256 SupportedKeyFormats", "RAW");
+                    put("Mac.HmacSHA384 SupportedKeyFormats", "RAW");
+                    put("Mac.HmacSHA512 SupportedKeyFormats", "RAW");
+                    put("Mac.HmacPBESHA1 SupportedKeyFormats", "RAW");
+                    put("Mac.SslMacMD5 SupportedKeyFormats", "RAW");
+                    put("Mac.SslMacSHA1 SupportedKeyFormats", "RAW");
+
+                    /*
+                     * KeyStore
+                     */
+                    put("KeyStore.JCEKS", "com.sun.crypto.provider.JceKeyStore");
+
+                    /*
+                     * SSL/TLS mechanisms
+                     *
+                     * These are strictly internal implementations and may
+                     * be changed at any time.  These names were chosen
+                     * because PKCS11/SunPKCS11 does not yet have TLS1.2
+                     * mechanisms, and it will cause calls to come here.
+                     */
+                    put("KeyGenerator.SunTlsPrf",
+                            "com.sun.crypto.provider.TlsPrfGenerator$V10");
+                    put("KeyGenerator.SunTls12Prf",
+                            "com.sun.crypto.provider.TlsPrfGenerator$V12");
+
+                    put("KeyGenerator.SunTlsMasterSecret",
+                        "com.sun.crypto.provider.TlsMasterSecretGenerator");
+                    put("Alg.Alias.KeyGenerator.SunTls12MasterSecret",
+                        "SunTlsMasterSecret");
+
+                    put("KeyGenerator.SunTlsKeyMaterial",
+                        "com.sun.crypto.provider.TlsKeyMaterialGenerator");
+                    put("Alg.Alias.KeyGenerator.SunTls12KeyMaterial",
+                        "SunTlsKeyMaterial");
+
+                    put("KeyGenerator.SunTlsRsaPremasterSecret",
+                        "com.sun.crypto.provider.TlsRsaPremasterSecretGenerator");
+                    put("Alg.Alias.KeyGenerator.SunTls12RsaPremasterSecret",
+                        "SunTlsRsaPremasterSecret");
+
+                    return null;
+                }
+            });
     }
 }
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java b/jdk/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java
index 8e4f6a1..4146f19 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,6 @@ import java.security.spec.AlgorithmParameterSpec;
 import javax.crypto.*;
 import javax.crypto.spec.*;
 
-import sun.security.internal.interfaces.TlsMasterSecret;
 import sun.security.internal.spec.*;
 
 import static com.sun.crypto.provider.TlsPrfGenerator.*;
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java b/jdk/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java
index 1d5e97a..0efa0ae 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -140,6 +140,7 @@ public final class TlsMasterSecretGenerator extends KeyGeneratorSpi {
     }
 
     private static final class TlsMasterSecretKey implements TlsMasterSecret {
+        private static final long serialVersionUID = 1019571680375368880L;
 
         private byte[] key;
         private final int majorVersion, minorVersion;
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java
index 3adcddc..64d09af 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java
@@ -763,7 +763,7 @@ class JFIFMarkerSegment extends MarkerSegment {
                 }
             } catch (IllegalThumbException e) {
                 // Should never happen
-                throw new InternalError("Illegal thumb in setThumbnail!");
+                throw new InternalError("Illegal thumb in setThumbnail!", e);
             }
         }
 
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifFileChooserUI.java b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifFileChooserUI.java
index ada4992..048e766 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifFileChooserUI.java
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifFileChooserUI.java
@@ -529,21 +529,25 @@ public class MotifFileChooserUI extends BasicFileChooserUI {
         Locale l = fc.getLocale();
 
         enterFolderNameLabelText = UIManager.getString("FileChooser.enterFolderNameLabelText",l);
-        enterFolderNameLabelMnemonic = UIManager.getInt("FileChooser.enterFolderNameLabelMnemonic");
+        enterFolderNameLabelMnemonic = getMnemonic("FileChooser.enterFolderNameLabelMnemonic", l);
         enterFileNameLabelText = UIManager.getString("FileChooser.enterFileNameLabelText",l);
-        enterFileNameLabelMnemonic = UIManager.getInt("FileChooser.enterFileNameLabelMnemonic");
+        enterFileNameLabelMnemonic = getMnemonic("FileChooser.enterFileNameLabelMnemonic", l);
 
         filesLabelText = UIManager.getString("FileChooser.filesLabelText",l);
-        filesLabelMnemonic = UIManager.getInt("FileChooser.filesLabelMnemonic");
+        filesLabelMnemonic = getMnemonic("FileChooser.filesLabelMnemonic", l);
 
         foldersLabelText = UIManager.getString("FileChooser.foldersLabelText",l);
-        foldersLabelMnemonic = UIManager.getInt("FileChooser.foldersLabelMnemonic");
+        foldersLabelMnemonic = getMnemonic("FileChooser.foldersLabelMnemonic", l);
 
         pathLabelText = UIManager.getString("FileChooser.pathLabelText",l);
-        pathLabelMnemonic = UIManager.getInt("FileChooser.pathLabelMnemonic");
+        pathLabelMnemonic = getMnemonic("FileChooser.pathLabelMnemonic", l);
 
         filterLabelText = UIManager.getString("FileChooser.filterLabelText",l);
-        filterLabelMnemonic = UIManager.getInt("FileChooser.filterLabelMnemonic");
+        filterLabelMnemonic = getMnemonic("FileChooser.filterLabelMnemonic", l);
+    }
+
+    private Integer getMnemonic(String key, Locale l) {
+        return SwingUtilities2.getUIDefaultsInt(key, l);
     }
 
     protected void installIcons(JFileChooser fc) {
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java
index 60ab1ac..923cd9d 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java
@@ -1215,11 +1215,6 @@ public class MotifLookAndFeel extends BasicLookAndFeel
             "EditorPane.focusInputMap", multilineInputMap,
 
 
-            "FileChooser.pathLabelMnemonic", new Integer(KeyEvent.VK_P), // 'p'
-            "FileChooser.filterLabelMnemonic", new Integer (KeyEvent.VK_R), // 'r'
-            "FileChooser.foldersLabelMnemonic", new Integer (KeyEvent.VK_L), // 'l'
-            "FileChooser.filesLabelMnemonic", new Integer (KeyEvent.VK_I), // 'i'
-            "FileChooser.enterFileNameLabelMnemonic", new Integer (KeyEvent.VK_N), // 'n'
             "FileChooser.ancestorInputMap",
                new UIDefaults.LazyInputMap(new Object[] {
                      "ESCAPE", "cancelSelection"
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif.properties
index eb32a6d..d3fee30 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif.properties
@@ -27,10 +27,15 @@ FileChooser.openDialogTitleText=Open
 FileChooser.updateButtonText=Update
 FileChooser.helpButtonText=Help
 FileChooser.pathLabelText=Enter path or folder name:
+FileChooser.pathLabelMnemonic=80
 FileChooser.filterLabelText=Filter
+FileChooser.filterLabelMnemonic=82
 FileChooser.foldersLabelText=Folders
+FileChooser.foldersLabelMnemonic=76
 FileChooser.filesLabelText=Files
+FileChooser.filesLabelMnemonic=73
 FileChooser.enterFileNameLabelText=Enter file name:
+FileChooser.enterFileNameLabelMnemonic=78
 FileChooser.enterFolderNameLabelText=Enter folder name:
 
 FileChooser.cancelButtonToolTipText=Abort file chooser dialog.
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_de.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_de.properties
index f1ee7ed..e772357 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_de.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_de.properties
@@ -27,10 +27,15 @@ FileChooser.openDialogTitleText=\u00D6ffnen
 FileChooser.updateButtonText=Aktualisieren
 FileChooser.helpButtonText=Hilfe
 FileChooser.pathLabelText=Pfad- oder Ordnernamen eingeben:
+FileChooser.pathLabelMnemonic=80
 FileChooser.filterLabelText=Filter
+FileChooser.filterLabelMnemonic=82
 FileChooser.foldersLabelText=Ordner
+FileChooser.foldersLabelMnemonic=76
 FileChooser.filesLabelText=Dateien
+FileChooser.filesLabelMnemonic=73
 FileChooser.enterFileNameLabelText=Dateinamen eingeben:
+FileChooser.enterFileNameLabelMnemonic=78
 FileChooser.enterFolderNameLabelText=Ordnernamen eingeben:
 
 FileChooser.cancelButtonToolTipText=Dialogfeld f\u00FCr Dateiauswahl schlie\u00DFen.
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_es.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_es.properties
index c4e9108..6d9aa8f 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_es.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_es.properties
@@ -27,10 +27,15 @@ FileChooser.openDialogTitleText=Abrir
 FileChooser.updateButtonText=Actualizar
 FileChooser.helpButtonText=Ayuda
 FileChooser.pathLabelText=Introducir nombre de la ruta de acceso o carpeta:
+FileChooser.pathLabelMnemonic=80
 FileChooser.filterLabelText=Filtro
+FileChooser.filterLabelMnemonic=82
 FileChooser.foldersLabelText=Carpetas
+FileChooser.foldersLabelMnemonic=76
 FileChooser.filesLabelText=Archivos
+FileChooser.filesLabelMnemonic=73
 FileChooser.enterFileNameLabelText=Introducir nombre de archivo:
+FileChooser.enterFileNameLabelMnemonic=78
 FileChooser.enterFolderNameLabelText=Introducir nombre de carpeta:
 
 FileChooser.cancelButtonToolTipText=Abortar cuadro de di\u00E1logo del selector de archivos.
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_fr.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_fr.properties
index 8644dea..392ecee 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_fr.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_fr.properties
@@ -27,10 +27,15 @@ FileChooser.openDialogTitleText=Ouvrir
 FileChooser.updateButtonText=Mettre \u00E0 jour
 FileChooser.helpButtonText=Aide
 FileChooser.pathLabelText=Entrez le chemin ou le nom du dossier :
+FileChooser.pathLabelMnemonic=80
 FileChooser.filterLabelText=Filtre
+FileChooser.filterLabelMnemonic=82
 FileChooser.foldersLabelText=Dossiers
+FileChooser.foldersLabelMnemonic=76
 FileChooser.filesLabelText=Fichiers
+FileChooser.filesLabelMnemonic=73
 FileChooser.enterFileNameLabelText=Entrez le nom du fichier :
+FileChooser.enterFileNameLabelMnemonic=78
 FileChooser.enterFolderNameLabelText=Entrez le nom du dossier :
 
 FileChooser.cancelButtonToolTipText=Ferme la bo\u00EEte de dialogue du s\u00E9lecteur de fichiers.
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_it.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_it.properties
index e637d6b..9763045 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_it.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_it.properties
@@ -27,10 +27,15 @@ FileChooser.openDialogTitleText=Apri
 FileChooser.updateButtonText=Aggiorna
 FileChooser.helpButtonText=?
 FileChooser.pathLabelText=Percorso o nome cartella:
+FileChooser.pathLabelMnemonic=80
 FileChooser.filterLabelText=Filtro
+FileChooser.filterLabelMnemonic=82
 FileChooser.foldersLabelText=Cartelle
+FileChooser.foldersLabelMnemonic=76
 FileChooser.filesLabelText=File
+FileChooser.filesLabelMnemonic=73
 FileChooser.enterFileNameLabelText=Nome file:
+FileChooser.enterFileNameLabelMnemonic=78
 FileChooser.enterFolderNameLabelText=Nome cartella:
 
 FileChooser.cancelButtonToolTipText=Chiude la finestra di dialogo di selezione file.
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ja.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ja.properties
index 68342cc..97b505b 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ja.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ja.properties
@@ -27,10 +27,15 @@ FileChooser.openDialogTitleText=\u958B\u304F
 FileChooser.updateButtonText=\u66F4\u65B0
 FileChooser.helpButtonText=\u30D8\u30EB\u30D7
 FileChooser.pathLabelText=\u30D1\u30B9\u307E\u305F\u306F\u30D5\u30A9\u30EB\u30C0\u540D\u3092\u5165\u529B:
+FileChooser.pathLabelMnemonic=80
 FileChooser.filterLabelText=\u30D5\u30A3\u30EB\u30BF
+FileChooser.filterLabelMnemonic=82
 FileChooser.foldersLabelText=\u30D5\u30A9\u30EB\u30C0
+FileChooser.foldersLabelMnemonic=76
 FileChooser.filesLabelText=\u30D5\u30A1\u30A4\u30EB
+FileChooser.filesLabelMnemonic=73
 FileChooser.enterFileNameLabelText=\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u5165\u529B:
+FileChooser.enterFileNameLabelMnemonic=78
 FileChooser.enterFolderNameLabelText=\u30D5\u30A9\u30EB\u30C0\u540D\u3092\u5165\u529B:
 
 FileChooser.cancelButtonToolTipText=\u30D5\u30A1\u30A4\u30EB\u30FB\u30C1\u30E5\u30FC\u30B6\u30FB\u30C0\u30A4\u30A2\u30ED\u30B0\u3092\u7D42\u4E86\u3057\u307E\u3059\u3002
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ko.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ko.properties
index f522359..61c06c6 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ko.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ko.properties
@@ -27,10 +27,15 @@ FileChooser.openDialogTitleText=\uC5F4\uAE30
 FileChooser.updateButtonText=\uAC31\uC2E0
 FileChooser.helpButtonText=\uB3C4\uC6C0\uB9D0
 FileChooser.pathLabelText=\uACBD\uB85C \uB610\uB294 \uD3F4\uB354 \uC774\uB984 \uC785\uB825:
+FileChooser.pathLabelMnemonic=80
 FileChooser.filterLabelText=\uD544\uD130
+FileChooser.filterLabelMnemonic=82
 FileChooser.foldersLabelText=\uD3F4\uB354
+FileChooser.foldersLabelMnemonic=76
 FileChooser.filesLabelText=\uD30C\uC77C
+FileChooser.filesLabelMnemonic=73
 FileChooser.enterFileNameLabelText=\uD30C\uC77C \uC774\uB984 \uC785\uB825:
+FileChooser.enterFileNameLabelMnemonic=78
 FileChooser.enterFolderNameLabelText=\uD3F4\uB354 \uC774\uB984 \uC785\uB825:
 
 FileChooser.cancelButtonToolTipText=\uD30C\uC77C \uC120\uD0DD\uAE30 \uB300\uD654\uC0C1\uC790\uB97C \uC911\uB2E8\uD569\uB2C8\uB2E4.
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_pt_BR.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_pt_BR.properties
index 63b5d9d..6e40ef5 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_pt_BR.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_pt_BR.properties
@@ -27,10 +27,15 @@ FileChooser.openDialogTitleText=Abrir
 FileChooser.updateButtonText=Atualizar
 FileChooser.helpButtonText=Ajuda
 FileChooser.pathLabelText=Informar caminho ou nome da pasta:
+FileChooser.pathLabelMnemonic=80
 FileChooser.filterLabelText=Filtro
+FileChooser.filterLabelMnemonic=82
 FileChooser.foldersLabelText=Pastas
+FileChooser.foldersLabelMnemonic=76
 FileChooser.filesLabelText=Arquivos
+FileChooser.filesLabelMnemonic=73
 FileChooser.enterFileNameLabelText=Informar nome do arquivo:
+FileChooser.enterFileNameLabelMnemonic=78
 FileChooser.enterFolderNameLabelText=Informar nome da pasta:
 
 FileChooser.cancelButtonToolTipText=Abortar caixa de di\u00E1logo do seletor de arquivos.
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_sv.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_sv.properties
index 67a6c07..4cd736b 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_sv.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_sv.properties
@@ -27,10 +27,15 @@ FileChooser.openDialogTitleText=\u00D6ppna
 FileChooser.updateButtonText=Uppdatera
 FileChooser.helpButtonText=Hj\u00E4lp
 FileChooser.pathLabelText=Ange s\u00F6kv\u00E4g eller mappnamn:
+FileChooser.pathLabelMnemonic=80
 FileChooser.filterLabelText=Filter
+FileChooser.filterLabelMnemonic=82
 FileChooser.foldersLabelText=Mappar
+FileChooser.foldersLabelMnemonic=76
 FileChooser.filesLabelText=Filer
+FileChooser.filesLabelMnemonic=73
 FileChooser.enterFileNameLabelText=Ange filnamn:
+FileChooser.enterFileNameLabelMnemonic=78
 FileChooser.enterFolderNameLabelText=Ange ett mappnamn:
 
 FileChooser.cancelButtonToolTipText=Avbryt dialogrutan Filv\u00E4ljare.
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_zh_CN.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_zh_CN.properties
index a157661..121fe60 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_zh_CN.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_zh_CN.properties
@@ -27,10 +27,15 @@ FileChooser.openDialogTitleText=\u6253\u5F00
 FileChooser.updateButtonText=\u66F4\u65B0
 FileChooser.helpButtonText=\u5E2E\u52A9
 FileChooser.pathLabelText=\u952E\u5165\u8DEF\u5F84\u6216\u6587\u4EF6\u5939\u540D: 
+FileChooser.pathLabelMnemonic=80
 FileChooser.filterLabelText=\u7B5B\u9009\u5668
+FileChooser.filterLabelMnemonic=82
 FileChooser.foldersLabelText=\u6587\u4EF6\u5939
+FileChooser.foldersLabelMnemonic=76
 FileChooser.filesLabelText=\u6587\u4EF6
+FileChooser.filesLabelMnemonic=73
 FileChooser.enterFileNameLabelText=\u952E\u5165\u6587\u4EF6\u540D: 
+FileChooser.enterFileNameLabelMnemonic=78
 FileChooser.enterFolderNameLabelText=\u8F93\u5165\u6587\u4EF6\u5939\u540D:
 
 FileChooser.cancelButtonToolTipText=\u4E2D\u6B62\u6587\u4EF6\u9009\u62E9\u5668\u5BF9\u8BDD\u6846\u3002
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_zh_TW.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_zh_TW.properties
index f298549..1b2d9d7 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_zh_TW.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_zh_TW.properties
@@ -27,10 +27,15 @@ FileChooser.openDialogTitleText=\u958B\u555F
 FileChooser.updateButtonText=\u66F4\u65B0
 FileChooser.helpButtonText=\u8AAA\u660E
 FileChooser.pathLabelText=\u8F38\u5165\u8DEF\u5F91\u6216\u8CC7\u6599\u593E\u540D\u7A31:
+FileChooser.pathLabelMnemonic=80
 FileChooser.filterLabelText=\u7BE9\u9078
+FileChooser.filterLabelMnemonic=82
 FileChooser.foldersLabelText=\u8CC7\u6599\u593E
+FileChooser.foldersLabelMnemonic=76
 FileChooser.filesLabelText=\u6A94\u6848
+FileChooser.filesLabelMnemonic=73
 FileChooser.enterFileNameLabelText=\u8F38\u5165\u6A94\u6848\u540D\u7A31:
+FileChooser.enterFileNameLabelMnemonic=78
 FileChooser.enterFolderNameLabelText=\u8F38\u5165\u8CC7\u6599\u593E\u540D\u7A31:
 
 FileChooser.cancelButtonToolTipText=\u4E2D\u6B62\u6A94\u6848\u9078\u64C7\u5668\u5C0D\u8A71\u65B9\u584A\u3002
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java
index dec7d1b..2e11681 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java
@@ -528,16 +528,16 @@ public class WindowsFileChooserUI extends BasicFileChooserUI {
 
         Locale l = fc.getLocale();
 
-        lookInLabelMnemonic = UIManager.getInt("FileChooser.lookInLabelMnemonic");
+        lookInLabelMnemonic = getMnemonic("FileChooser.lookInLabelMnemonic", l);
         lookInLabelText = UIManager.getString("FileChooser.lookInLabelText",l);
         saveInLabelText = UIManager.getString("FileChooser.saveInLabelText",l);
 
-        fileNameLabelMnemonic = UIManager.getInt("FileChooser.fileNameLabelMnemonic");
+        fileNameLabelMnemonic = getMnemonic("FileChooser.fileNameLabelMnemonic", l);
         fileNameLabelText = UIManager.getString("FileChooser.fileNameLabelText",l);
-        folderNameLabelMnemonic = UIManager.getInt("FileChooser.folderNameLabelMnemonic");
+        folderNameLabelMnemonic = getMnemonic("FileChooser.folderNameLabelMnemonic", l);
         folderNameLabelText = UIManager.getString("FileChooser.folderNameLabelText",l);
 
-        filesOfTypeLabelMnemonic = UIManager.getInt("FileChooser.filesOfTypeLabelMnemonic");
+        filesOfTypeLabelMnemonic = getMnemonic("FileChooser.filesOfTypeLabelMnemonic", l);
         filesOfTypeLabelText = UIManager.getString("FileChooser.filesOfTypeLabelText",l);
 
         upFolderToolTipText =  UIManager.getString("FileChooser.upFolderToolTipText",l);
@@ -550,6 +550,10 @@ public class WindowsFileChooserUI extends BasicFileChooserUI {
         viewMenuButtonAccessibleName = UIManager.getString("FileChooser.viewMenuButtonAccessibleName",l);
     }
 
+    private Integer getMnemonic(String key, Locale l) {
+        return SwingUtilities2.getUIDefaultsInt(key, l);
+    }
+
     protected void installListeners(JFileChooser fc) {
         super.installListeners(fc);
         ActionMap actionMap = getActionMap();
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java
index 18c76d7..b872303 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java
@@ -770,9 +770,6 @@ public class WindowsLookAndFeel extends BasicLookAndFeel
                                                                "icons/NewFolder.gif"),
             "FileChooser.useSystemExtensionHiding", Boolean.TRUE,
 
-            "FileChooser.lookInLabelMnemonic", Integer.valueOf(KeyEvent.VK_I),
-            "FileChooser.fileNameLabelMnemonic", Integer.valueOf(KeyEvent.VK_N),
-            "FileChooser.filesOfTypeLabelMnemonic", Integer.valueOf(KeyEvent.VK_T),
             "FileChooser.usesSingleFilePane", Boolean.TRUE,
             "FileChooser.noPlacesBar", new DesktopProperty("win.comdlg.noPlacesBar",
                                                            Boolean.FALSE),
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows.properties
index 0900aa3..0f27244 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Look in:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Save in:
 FileChooser.fileNameLabelText=File name:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Folder name:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Files of type:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Up One Level
 FileChooser.upFolderAccessibleName=Up
 FileChooser.homeFolderToolTipText=Home
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_de.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_de.properties
index 993b264..b9d8c34 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_de.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_de.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Suchen in:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Speichern in:
 FileChooser.fileNameLabelText=Dateiname:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Ordnername:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Dateityp:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Eine Ebene h\u00F6her
 FileChooser.upFolderAccessibleName=Nach oben
 FileChooser.homeFolderToolTipText=Home
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_es.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_es.properties
index adf964b..d7b610e 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_es.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_es.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Buscar en:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Guardar en:
 FileChooser.fileNameLabelText=Nombre de Archivo:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Nombre de la Carpeta:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Archivos de Tipo:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Subir un Nivel
 FileChooser.upFolderAccessibleName=Arriba
 FileChooser.homeFolderToolTipText=Inicio
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_fr.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_fr.properties
index d4561da..3973648 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_fr.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_fr.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Rechercher dans :
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Enregistrer dans :
 FileChooser.fileNameLabelText=Nom du fichier :
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Nom du dossier :
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Fichiers de type :
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Remonte d'un niveau.
 FileChooser.upFolderAccessibleName=Monter
 FileChooser.homeFolderToolTipText=R\u00E9pertoire d'origine
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_it.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_it.properties
index 4edf194..5e3e6f1 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_it.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_it.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Cerca in:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Salva in:
 FileChooser.fileNameLabelText=Nome file:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Nome della cartella:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Tipo file:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Cartella superiore
 FileChooser.upFolderAccessibleName=Superiore
 FileChooser.homeFolderToolTipText=Home
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ja.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ja.properties
index 7c6c305..adc5d93 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ja.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ja.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=\u53C2\u7167:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=\u4FDD\u5B58:
 FileChooser.fileNameLabelText=\u30D5\u30A1\u30A4\u30EB\u540D:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=\u30D5\u30A9\u30EB\u30C0\u540D:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=\u30D5\u30A1\u30A4\u30EB\u306E\u30BF\u30A4\u30D7:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=1\u30EC\u30D9\u30EB\u4E0A\u3078
 FileChooser.upFolderAccessibleName=\u4E0A\u3078
 FileChooser.homeFolderToolTipText=\u30DB\u30FC\u30E0
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ko.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ko.properties
index 53dedb4..6922556 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ko.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_ko.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=\uAC80\uC0C9 \uC704\uCE58:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=\uC800\uC7A5 \uC704\uCE58:
 FileChooser.fileNameLabelText=\uD30C\uC77C \uC774\uB984:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=\uD3F4\uB354 \uC774\uB984:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=\uD30C\uC77C \uC720\uD615:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=\uD55C \uB808\uBCA8 \uC704\uB85C
 FileChooser.upFolderAccessibleName=\uC704\uB85C
 FileChooser.homeFolderToolTipText=\uD648
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_pt_BR.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_pt_BR.properties
index 526a0f9..7faf8c1 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_pt_BR.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_pt_BR.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Consultar em:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Salvar em:
 FileChooser.fileNameLabelText=Nome do arquivo:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Nome da pasta:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Arquivos do tipo:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Um N\u00EDvel Acima
 FileChooser.upFolderAccessibleName=Acima
 FileChooser.homeFolderToolTipText=In\u00EDcio
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties
index fc8358d..4e83498 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Leta i:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Spara i:
 FileChooser.fileNameLabelText=Filnamn:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Mapp:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Filformat:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Upp en niv\u00E5
 FileChooser.upFolderAccessibleName=Upp
 FileChooser.homeFolderToolTipText=Hem
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_CN.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_CN.properties
index ae6fe80..3a4c0cd 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_CN.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_CN.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=\u67E5\u770B: 
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=\u4FDD\u5B58: 
 FileChooser.fileNameLabelText=\u6587\u4EF6\u540D: 
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=\u6587\u4EF6\u5939\u540D: 
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=\u6587\u4EF6\u7C7B\u578B: 
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=\u5411\u4E0A\u4E00\u7EA7
 FileChooser.upFolderAccessibleName=\u5411\u4E0A
 FileChooser.homeFolderToolTipText=\u4E3B\u76EE\u5F55
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_TW.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_TW.properties
index fe18bdc..e4c8ad0 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_TW.properties
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_zh_TW.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=\u67E5\u8A62:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=\u5132\u5B58\u65BC: 
 FileChooser.fileNameLabelText=\u6A94\u6848\u540D\u7A31:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=\u8CC7\u6599\u593E\u540D\u7A31:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=\u6A94\u6848\u985E\u578B:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=\u5F80\u4E0A\u4E00\u5C64
 FileChooser.upFolderAccessibleName=\u5F80\u4E0A
 FileChooser.homeFolderToolTipText=\u4E3B\u76EE\u9304
diff --git a/jdk/src/share/classes/com/sun/jmx/snmp/SnmpCounter64.java b/jdk/src/share/classes/com/sun/jmx/snmp/SnmpCounter64.java
index 1289036..ed23942 100644
--- a/jdk/src/share/classes/com/sun/jmx/snmp/SnmpCounter64.java
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/SnmpCounter64.java
@@ -186,7 +186,7 @@ public class SnmpCounter64 extends SnmpValue {
             newclone = (SnmpCounter64) super.clone() ;
             newclone.value = value ;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError() ; // vm bug.
+            throw new InternalError(e) ; // vm bug.
         }
         return newclone ;
     }
diff --git a/jdk/src/share/classes/com/sun/jmx/snmp/SnmpInt.java b/jdk/src/share/classes/com/sun/jmx/snmp/SnmpInt.java
index a5faf5c..ca1cf52 100644
--- a/jdk/src/share/classes/com/sun/jmx/snmp/SnmpInt.java
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/SnmpInt.java
@@ -232,7 +232,7 @@ public class SnmpInt extends SnmpValue {
             newclone = (SnmpInt) super.clone() ;
             newclone.value = value ;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError() ; // vm bug.
+            throw new InternalError(e) ; // vm bug.
         }
         return newclone ;
     }
diff --git a/jdk/src/share/classes/com/sun/jmx/snmp/SnmpNull.java b/jdk/src/share/classes/com/sun/jmx/snmp/SnmpNull.java
index 18fe8b7..f6274b4 100644
--- a/jdk/src/share/classes/com/sun/jmx/snmp/SnmpNull.java
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/SnmpNull.java
@@ -129,7 +129,7 @@ public class SnmpNull extends SnmpValue {
             newclone = (SnmpNull) super.clone() ;
             newclone.tag = tag ;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError() ; // vm bug.
+            throw new InternalError(e) ; // vm bug.
         }
         return newclone ;
     }
diff --git a/jdk/src/share/classes/com/sun/jmx/snmp/SnmpString.java b/jdk/src/share/classes/com/sun/jmx/snmp/SnmpString.java
index 47cfbdf..1cf86ad 100644
--- a/jdk/src/share/classes/com/sun/jmx/snmp/SnmpString.java
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/SnmpString.java
@@ -250,7 +250,7 @@ public class SnmpString extends SnmpValue {
             newclone.value = new byte[value.length] ;
             System.arraycopy(value, 0, newclone.value, 0, value.length) ;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError() ; // vm bug.
+            throw new InternalError(e) ; // vm bug.
         }
         return newclone ;
     }
diff --git a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java
index 53b9f0b..dc32e6b 100644
--- a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java
@@ -921,7 +921,7 @@ class SnmpRequestHandler extends ClientHandler implements SnmpDefinitions {
                 SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                    "newTooBigMessage", "Internal error", x);
             }
-            throw new InternalError() ;
+            throw new InternalError(x) ;
         }
 
         return result ;
diff --git a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNBindingEnumeration.java b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNBindingEnumeration.java
index 2d5121d..ae5c61d 100644
--- a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNBindingEnumeration.java
+++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNBindingEnumeration.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,8 +32,6 @@ import java.util.NoSuchElementException;
 import java.util.Hashtable;
 
 import org.omg.CosNaming.*;
-import org.omg.CosNaming.NamingContextPackage.*;
-import org.omg.CORBA.*;
 
 /**
   * Implements the JNDI NamingEnumeration interface for COS
@@ -44,7 +42,8 @@ import org.omg.CORBA.*;
   * @author Rosanna Lee
   */
 
-final class CNBindingEnumeration implements NamingEnumeration {
+final class CNBindingEnumeration
+        implements NamingEnumeration<javax.naming.Binding> {
 
     private static final int DEFAULT_BATCHSIZE = 100;
     private BindingListHolder _bindingList; // list of bindings
@@ -52,105 +51,105 @@ final class CNBindingEnumeration implements NamingEnumeration {
     private int counter;                    // pointer in _bindingList
     private int batchsize = DEFAULT_BATCHSIZE;  // how many to ask for each time
     private CNCtx _ctx;                     // ctx to list
-    private Hashtable _env;                 // environment for getObjectInstance
+    private Hashtable<?,?> _env;            // environment for getObjectInstance
     private boolean more = false;           // iterator done?
     private boolean isLookedUpCtx = false;  // iterating on a context beneath this context ?
 
-  /**
-    * Creates a CNBindingEnumeration object.
-    * @param ctx Context to enumerate
-    */
-  CNBindingEnumeration(CNCtx ctx, boolean isLookedUpCtx, Hashtable env) {
-    // Get batch size to use
-    String batch = (env != null ?
-        (String)env.get(javax.naming.Context.BATCHSIZE) : null);
-    if (batch != null) {
-        try {
-            batchsize = Integer.parseInt(batch);
-        } catch (NumberFormatException e) {
-            throw new IllegalArgumentException("Batch size not numeric: " + batch);
+    /**
+     * Creates a CNBindingEnumeration object.
+     * @param ctx Context to enumerate
+     */
+    CNBindingEnumeration(CNCtx ctx, boolean isLookedUpCtx, Hashtable<?,?> env) {
+        // Get batch size to use
+        String batch = (env != null ?
+            (String)env.get(javax.naming.Context.BATCHSIZE) : null);
+        if (batch != null) {
+            try {
+                batchsize = Integer.parseInt(batch);
+            } catch (NumberFormatException e) {
+                throw new IllegalArgumentException("Batch size not numeric: " + batch);
+            }
         }
+        _ctx = ctx;
+        _ctx.incEnumCount();
+        this.isLookedUpCtx = isLookedUpCtx;
+        _env = env;
+        _bindingList = new BindingListHolder();
+        BindingIteratorHolder _bindingIterH = new BindingIteratorHolder();
+
+        // Perform listing and request that bindings be returned in _bindingIter
+        // Upon return,_bindingList returns a zero length list
+        _ctx._nc.list(0, _bindingList, _bindingIterH);
+
+        _bindingIter = _bindingIterH.value;
+
+        // Get first batch using _bindingIter
+        if (_bindingIter != null) {
+            more = _bindingIter.next_n(batchsize, _bindingList);
+        } else {
+            more = false;
+        }
+        counter = 0;
     }
-    _ctx = ctx;
-    _ctx.incEnumCount();
-    this.isLookedUpCtx = isLookedUpCtx;
-    _env = env;
-    _bindingList = new BindingListHolder();
-    BindingIteratorHolder _bindingIterH = new BindingIteratorHolder();
-
-    // Perform listing and request that bindings be returned in _bindingIter
-    // Upon return,_bindingList returns a zero length list
-    _ctx._nc.list(0, _bindingList, _bindingIterH);
-
-    _bindingIter = _bindingIterH.value;
-
-    // Get first batch using _bindingIter
-    if (_bindingIter != null) {
-        more = _bindingIter.next_n(batchsize, _bindingList);
-    } else {
-        more = false;
+
+    /**
+     * Returns the next binding in the list.
+     * @exception NamingException any naming exception.
+     */
+
+    public javax.naming.Binding next() throws NamingException {
+        if (more && counter >= _bindingList.value.length) {
+            getMore();
+        }
+        if (more && counter < _bindingList.value.length) {
+            org.omg.CosNaming.Binding bndg = _bindingList.value[counter];
+            counter++;
+            return mapBinding(bndg);
+        } else {
+            throw new NoSuchElementException();
+        }
     }
-    counter = 0;
-  }
 
-  /**
-    * Returns the next binding in the list.
-    * @exception NamingException any naming exception.
-    */
 
-  public java.lang.Object next() throws NamingException {
-      if (more && counter >= _bindingList.value.length) {
-          getMore();
-      }
-      if (more && counter < _bindingList.value.length) {
-          org.omg.CosNaming.Binding bndg = _bindingList.value[counter];
-          counter++;
-          return mapBinding(bndg);
-      } else {
-          throw new NoSuchElementException();
-      }
-  }
-
-
-  /**
+    /**
     * Returns true or false depending on whether there are more bindings.
     * @return boolean value
     */
 
-  public boolean hasMore() throws NamingException {
-      // If there's more, check whether current bindingList has been exhausted,
-      // and if so, try to get more.
-      // If no more, just say so.
-      return more ? (counter < _bindingList.value.length || getMore()) : false;
-  }
+    public boolean hasMore() throws NamingException {
+        // If there's more, check whether current bindingList has been exhausted,
+        // and if so, try to get more.
+        // If no more, just say so.
+        return more ? (counter < _bindingList.value.length || getMore()) : false;
+    }
 
-  /**
-    * Returns true or false depending on whether there are more bindings.
-    * Need to define this to satisfy the Enumeration api requirement.
-    * @return boolean value
-    */
+    /**
+     * Returns true or false depending on whether there are more bindings.
+     * Need to define this to satisfy the Enumeration api requirement.
+     * @return boolean value
+     */
 
-  public boolean hasMoreElements() {
-      try {
-          return hasMore();
-      } catch (NamingException e) {
-          return false;
-      }
-  }
+    public boolean hasMoreElements() {
+        try {
+            return hasMore();
+        } catch (NamingException e) {
+            return false;
+        }
+    }
 
-  /**
+    /**
     * Returns the next binding in the list.
     * @exception NoSuchElementException Thrown when the end of the
     * list is reached.
     */
 
-    public java.lang.Object nextElement() {
+    public javax.naming.Binding nextElement() {
         try {
             return next();
         } catch (NamingException ne) {
             throw new NoSuchElementException();
         }
-  }
+    }
 
     public void close() throws NamingException {
         more = false;
@@ -197,7 +196,7 @@ final class CNBindingEnumeration implements NamingEnumeration {
         return more;
     }
 
-  /**
+    /**
     * Constructs a JNDI Binding object from the COS Naming binding
     * object.
     * @exception NameNotFound No objects under the name.
@@ -232,5 +231,5 @@ final class CNBindingEnumeration implements NamingEnumeration {
         String fullName = CNNameParser.cosNameToInsString(comps);
         jbndg.setNameInNamespace(fullName);
         return jbndg;
-  }
+    }
 }
diff --git a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java
index 9e001fa..e266537 100644
--- a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java
+++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,6 @@ import javax.naming.spi.NamingManager;
 import javax.naming.spi.ResolveResult;
 
 import java.util.Hashtable;
-import java.util.Vector;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.io.InputStream;
@@ -63,7 +62,7 @@ public class CNCtx implements javax.naming.Context {
     public NamingContext _nc;   // public for accessing underlying NamingContext
     private NameComponent[] _name = null;
 
-    Hashtable _env; // used by ExceptionMapper
+    Hashtable<String, java.lang.Object> _env; // used by ExceptionMapper
     static final CNNameParser parser = new CNNameParser();
 
     private static final String FED_PROP = "com.sun.jndi.cosnaming.federation";
@@ -82,11 +81,12 @@ public class CNCtx implements javax.naming.Context {
       * @param env Environment properties for initializing name service.
       * @exception NamingException Cannot initialize ORB or naming context.
       */
-    CNCtx(Hashtable env) throws NamingException {
+    @SuppressWarnings("unchecked")
+    CNCtx(Hashtable<?,?> env) throws NamingException {
         if (env != null) {
-            env = (Hashtable) env.clone();
+            env = (Hashtable<?,?>)env.clone();
         }
-        _env = env;
+        _env = (Hashtable<String, java.lang.Object>)env;
         federation = "true".equals(env != null ? env.get(FED_PROP) : null);
         initOrbAndRootContext(env);
     }
@@ -97,13 +97,14 @@ public class CNCtx implements javax.naming.Context {
     /**
      * This method is used by the iiop and iiopname URL Context factories.
      */
-    public static ResolveResult createUsingURL(String url, Hashtable env)
+    @SuppressWarnings("unchecked")
+    public static ResolveResult createUsingURL(String url, Hashtable<?,?> env)
     throws NamingException {
         CNCtx ctx = new CNCtx();
         if (env != null) {
-            env = (Hashtable) env.clone();
+            env = (Hashtable<?,?>) env.clone();
         }
-        ctx._env = env;
+        ctx._env = (Hashtable<String, java.lang.Object>)env;
         String rest = ctx.initUsingUrl(
             env != null ?
                 (org.omg.CORBA.ORB) env.get("java.naming.corba.orb")
@@ -128,8 +129,8 @@ public class CNCtx implements javax.naming.Context {
       * @param name The name of this context relative to the root
       */
 
-    CNCtx(ORB orb, OrbReuseTracker tracker, NamingContext nctx, Hashtable env,
-                        NameComponent[]name)
+    CNCtx(ORB orb, OrbReuseTracker tracker, NamingContext nctx,
+          Hashtable<String, java.lang.Object> env, NameComponent[]name)
         throws NamingException {
             if (orb == null || nctx == null)
                 throw new ConfigurationException(
@@ -207,7 +208,7 @@ public class CNCtx implements javax.naming.Context {
       * @exception NamingException When an error occurs while initializing the
       * ORB or the naming context.
       */
-    private void initOrbAndRootContext(Hashtable env) throws NamingException {
+    private void initOrbAndRootContext(Hashtable<?,?> env) throws NamingException {
         org.omg.CORBA.ORB inOrb = null;
         String ncIor = null;
 
@@ -240,7 +241,7 @@ public class CNCtx implements javax.naming.Context {
 
             // If name supplied in URL, resolve it to a NamingContext
             if (insName.length() > 0) {
-                _name = parser.nameToCosName(parser.parse(insName));
+                _name = CNNameParser.nameToCosName(parser.parse(insName));
                 try {
                     org.omg.CORBA.Object obj = _nc.resolve(_name);
                     _nc = NamingContextHelper.narrow(obj);
@@ -271,7 +272,7 @@ public class CNCtx implements javax.naming.Context {
     }
 
 
-    private String initUsingUrl(ORB orb, String url, Hashtable env)
+    private String initUsingUrl(ORB orb, String url, Hashtable<?,?> env)
         throws NamingException {
         if (url.startsWith("iiop://") || url.startsWith("iiopname://")) {
             return initUsingIiopUrl(orb, url, env);
@@ -283,17 +284,14 @@ public class CNCtx implements javax.naming.Context {
     /**
      * Handles "iiop" and "iiopname" URLs (INS 98-10-11)
      */
-    private String initUsingIiopUrl(ORB defOrb, String url, Hashtable env)
+    private String initUsingIiopUrl(ORB defOrb, String url, Hashtable<?,?> env)
         throws NamingException {
         try {
             IiopUrl parsedUrl = new IiopUrl(url);
 
-            Vector addrs = parsedUrl.getAddresses();
-            IiopUrl.Address addr;
             NamingException savedException = null;
 
-            for (int i = 0; i < addrs.size(); i++) {
-                addr = (IiopUrl.Address)addrs.elementAt(i);
+            for (IiopUrl.Address addr : parsedUrl.getAddresses()) {
 
                 try {
                     if (defOrb != null) {
@@ -341,7 +339,7 @@ public class CNCtx implements javax.naming.Context {
     /**
      * Initializes using "corbaname" URL (INS 99-12-03)
      */
-    private String initUsingCorbanameUrl(ORB orb, String url, Hashtable env)
+    private String initUsingCorbanameUrl(ORB orb, String url, Hashtable<?,?> env)
         throws NamingException {
         try {
             CorbanameUrl parsedUrl = new CorbanameUrl(url);
@@ -731,7 +729,7 @@ public class CNCtx implements javax.naming.Context {
                 // as per JNDI spec
 
                 if (leafNotFound(e, path[path.length-1])) {
-                    ; // do nothing
+                    // do nothing
                 } else {
                     throw ExceptionMapper.mapException(e, this, path);
                 }
@@ -829,7 +827,7 @@ public class CNCtx implements javax.naming.Context {
       * with a non-null argument
       * @return a list of name-class objects as a NameClassEnumeration.
       */
-    public  NamingEnumeration list(String name) throws NamingException {
+    public  NamingEnumeration<NameClassPair> list(String name) throws NamingException {
             return list(new CompositeName(name));
     }
 
@@ -840,9 +838,10 @@ public class CNCtx implements javax.naming.Context {
       * @exception NamingException All exceptions thrown by lookup
       * @return a list of name-class objects as a NameClassEnumeration.
       */
-    public  NamingEnumeration list(Name name)
+    @SuppressWarnings("unchecked")
+    public  NamingEnumeration<NameClassPair> list(Name name)
         throws NamingException {
-            return listBindings(name);
+            return (NamingEnumeration)listBindings(name);
     }
 
     /**
@@ -852,7 +851,7 @@ public class CNCtx implements javax.naming.Context {
       * @exception NamingException all exceptions returned by lookup
       * @return a list of bindings as a BindingEnumeration.
       */
-    public  NamingEnumeration listBindings(String name)
+    public  NamingEnumeration<javax.naming.Binding> listBindings(String name)
         throws NamingException {
             return listBindings(new CompositeName(name));
     }
@@ -864,7 +863,7 @@ public class CNCtx implements javax.naming.Context {
       * @exception NamingException all exceptions returned by lookup.
       * @return a list of bindings as a BindingEnumeration.
       */
-    public  NamingEnumeration listBindings(Name name)
+    public  NamingEnumeration<javax.naming.Binding> listBindings(Name name)
         throws NamingException {
             if (_nc == null)
                 throw new ConfigurationException(
@@ -1064,11 +1063,12 @@ public class CNCtx implements javax.naming.Context {
       * Returns the current environment.
       * @return Environment.
       */
-    public  Hashtable getEnvironment() throws NamingException {
+    @SuppressWarnings("unchecked")
+    public  Hashtable<String, java.lang.Object> getEnvironment() throws NamingException {
         if (_env == null) {
-            return new Hashtable(5, 0.75f);
+            return new Hashtable<>(5, 0.75f);
         } else {
-            return (Hashtable)_env.clone();
+            return (Hashtable<String, java.lang.Object>)_env.clone();
         }
     }
 
@@ -1090,25 +1090,27 @@ public class CNCtx implements javax.naming.Context {
       * @param propVal  The ORB.
       * @return the previous value of this property if any.
       */
+    @SuppressWarnings("unchecked")
     public java.lang.Object addToEnvironment(String propName,
         java.lang.Object propValue)
         throws NamingException {
             if (_env == null) {
-                _env = new Hashtable(7, 0.75f);
+                _env = new Hashtable<>(7, 0.75f);
             } else {
                 // copy-on-write
-                _env = (Hashtable)_env.clone();
+                _env = (Hashtable<String, java.lang.Object>)_env.clone();
             }
 
             return _env.put(propName, propValue);
     }
 
     // Record change but do not reinitialize ORB
+    @SuppressWarnings("unchecked")
     public java.lang.Object removeFromEnvironment(String propName)
         throws NamingException {
             if (_env != null  && _env.get(propName) != null) {
                 // copy-on-write
-                _env = (Hashtable)_env.clone();
+                _env = (Hashtable<String, java.lang.Object>)_env.clone();
                 return _env.remove(propName);
             }
             return null;
diff --git a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java
index 846f85c..3b74652 100644
--- a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java
+++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,7 +67,7 @@ final public class CNNameParser implements NameParser {
     * @return a non-null CompoundName
     */
     public Name parse(String name) throws NamingException {
-        Vector comps = insStringToStringifiedComps(name);
+        Vector<String> comps = insStringToStringifiedComps(name);
         return new CNCompoundName(comps.elements());
     }
 
@@ -128,11 +128,11 @@ final public class CNNameParser implements NameParser {
      * each element of the vector contains a stringified form of
      * a NameComponent.
      */
-    private static Vector insStringToStringifiedComps(String str)
+    private static Vector<String> insStringToStringifiedComps(String str)
         throws InvalidNameException {
 
         int len = str.length();
-        Vector components = new Vector(10);
+        Vector<String> components = new Vector<>(10);
         char[] id = new char[len];
         char[] kind = new char[len];
         int idCount, kindCount;
@@ -306,7 +306,7 @@ final public class CNNameParser implements NameParser {
      * and stringifying code of the default CompoundName.
      */
     static final class CNCompoundName extends CompoundName {
-        CNCompoundName(Enumeration enum_) {
+        CNCompoundName(Enumeration<String> enum_) {
             super(enum_, CNNameParser.mySyntax);
         }
 
@@ -315,12 +315,12 @@ final public class CNNameParser implements NameParser {
         }
 
         public Name getPrefix(int posn) {
-            Enumeration comps = super.getPrefix(posn).getAll();
+            Enumeration<String> comps = super.getPrefix(posn).getAll();
             return new CNCompoundName(comps);
         }
 
         public Name getSuffix(int posn) {
-            Enumeration comps = super.getSuffix(posn).getAll();
+            Enumeration<String> comps = super.getSuffix(posn).getAll();
             return new CNCompoundName(comps);
         }
 
diff --git a/jdk/src/share/classes/com/sun/jndi/cosnaming/ExceptionMapper.java b/jdk/src/share/classes/com/sun/jndi/cosnaming/ExceptionMapper.java
index 53b71d5..a1e9fd6 100644
--- a/jdk/src/share/classes/com/sun/jndi/cosnaming/ExceptionMapper.java
+++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/ExceptionMapper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -102,10 +102,10 @@ public final class ExceptionMapper {
 
     private static final NamingException tryFed(NotFound e, CNCtx ctx,
         NameComponent[] inputName) throws NamingException {
-        NameComponent[] rest = ((NotFound) e).rest_of_name;
+        NameComponent[] rest = e.rest_of_name;
 
         if (debug) {
-            System.out.println(((NotFound)e).why.value());
+            System.out.println(e.why.value());
             System.out.println(rest.length);
         }
 
diff --git a/jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java b/jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java
index cf0307f..d6ed5fd 100644
--- a/jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java
+++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -68,7 +68,7 @@ public final class IiopUrl {
     static final private int DEFAULT_IIOPNAME_PORT = 9999;
     static final private int DEFAULT_IIOP_PORT = 900;
     static final private String DEFAULT_HOST = "localhost";
-    private Vector addresses;
+    private Vector<Address> addresses;
     private String stringName;
 
     public static class Address {
@@ -149,7 +149,7 @@ public final class IiopUrl {
         }
     }
 
-    public Vector getAddresses() {
+    public Vector<Address> getAddresses() {
         return addresses;
     }
 
@@ -185,7 +185,7 @@ public final class IiopUrl {
         } else {
             stringName = UrlUtil.decode(url.substring(addrEnd+1));
         }
-        addresses = new Vector(3);
+        addresses = new Vector<>(3);
         if (oldFormat) {
             // Only one host:port part, not multiple
             addresses.addElement(
diff --git a/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java b/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java
index 0078f60..65db51e 100644
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java
+++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -524,7 +524,7 @@ public class DnsClient {
                 "\tResponse Q:" + resps);
         }
         byte[] pkt;
-        if ((pkt = (byte[]) resps.get(xid)) != null) {
+        if ((pkt = resps.get(xid)) != null) {
             checkResponseCode(new Header(pkt, pkt.length));
             synchronized (queuesLock) {
                 resps.remove(xid);
diff --git a/jdk/src/share/classes/com/sun/jndi/dns/DnsContext.java b/jdk/src/share/classes/com/sun/jndi/dns/DnsContext.java
index 337fe8d..24f7343 100644
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@ public class DnsContext extends ComponentDirContext {
 
     DnsName domain;             // fully-qualified domain name of this context,
                                 // with a root (empty) label at position 0
-    Hashtable environment;
+    Hashtable<Object,Object> environment;
     private boolean envShared;  // true if environment is possibly shared
                                 // and so must be copied on write
     private boolean parentIsDns;        // was this DnsContext created by
@@ -95,14 +95,15 @@ public class DnsContext extends ComponentDirContext {
      * There must be at least one server.
      * The environment must not be null; it is cloned before being stored.
      */
-    public DnsContext(String domain, String[] servers, Hashtable environment)
+    @SuppressWarnings("unchecked")
+    public DnsContext(String domain, String[] servers, Hashtable<?,?> environment)
             throws NamingException {
 
         this.domain = new DnsName(domain.endsWith(".")
                                   ? domain
                                   : domain + ".");
         this.servers = servers;
-        this.environment = (Hashtable) environment.clone();
+        this.environment = (Hashtable<Object,Object>) environment.clone();
         envShared = false;
         parentIsDns = false;
         resolver = null;
@@ -154,14 +155,15 @@ public class DnsContext extends ComponentDirContext {
     /*
      * Override default with a noncloning version.
      */
-    protected Hashtable p_getEnvironment() {
+    protected Hashtable<?,?> p_getEnvironment() {
         return environment;
     }
 
-    public Hashtable getEnvironment() throws NamingException {
-        return (Hashtable) environment.clone();
+    public Hashtable<?,?> getEnvironment() throws NamingException {
+        return (Hashtable<?,?>) environment.clone();
     }
 
+    @SuppressWarnings("unchecked")
     public Object addToEnvironment(String propName, Object propVal)
             throws NamingException {
 
@@ -189,7 +191,7 @@ public class DnsContext extends ComponentDirContext {
             return environment.put(propName, propVal);
         } else if (environment.get(propName) != propVal) {
             // copy on write
-            environment = (Hashtable) environment.clone();
+            environment = (Hashtable<Object,Object>) environment.clone();
             envShared = false;
             return environment.put(propName, propVal);
         } else {
@@ -197,6 +199,7 @@ public class DnsContext extends ComponentDirContext {
         }
     }
 
+    @SuppressWarnings("unchecked")
     public Object removeFromEnvironment(String propName)
             throws NamingException {
 
@@ -222,7 +225,7 @@ public class DnsContext extends ComponentDirContext {
             return environment.remove(propName);
         } else if (environment.get(propName) != null) {
             // copy-on-write
-            environment = (Hashtable) environment.clone();
+            environment = (Hashtable<Object,Object>) environment.clone();
             envShared = false;
             return environment.remove(propName);
         } else {
@@ -307,7 +310,7 @@ public class DnsContext extends ComponentDirContext {
         return c_lookup(name, cont);
     }
 
-    public NamingEnumeration c_list(Name name, Continuation cont)
+    public NamingEnumeration<NameClassPair> c_list(Name name, Continuation cont)
             throws NamingException {
         cont.setSuccess();
         try {
@@ -322,7 +325,7 @@ public class DnsContext extends ComponentDirContext {
         }
     }
 
-    public NamingEnumeration c_listBindings(Name name, Continuation cont)
+    public NamingEnumeration<Binding> c_listBindings(Name name, Continuation cont)
             throws NamingException {
         cont.setSuccess();
         try {
@@ -457,7 +460,7 @@ public class DnsContext extends ComponentDirContext {
                 new OperationNotSupportedException());
     }
 
-    public NamingEnumeration c_search(Name name,
+    public NamingEnumeration<SearchResult> c_search(Name name,
                                       Attributes matchingAttributes,
                                       String[] attributesToReturn,
                                       Continuation cont)
@@ -465,7 +468,7 @@ public class DnsContext extends ComponentDirContext {
         throw new OperationNotSupportedException();
     }
 
-    public NamingEnumeration c_search(Name name,
+    public NamingEnumeration<SearchResult> c_search(Name name,
                                       String filter,
                                       SearchControls cons,
                                       Continuation cont)
@@ -473,7 +476,7 @@ public class DnsContext extends ComponentDirContext {
         throw new OperationNotSupportedException();
     }
 
-    public NamingEnumeration c_search(Name name,
+    public NamingEnumeration<SearchResult> c_search(Name name,
                                       String filterExpr,
                                       Object[] filterArgs,
                                       SearchControls cons,
@@ -608,7 +611,7 @@ public class DnsContext extends ComponentDirContext {
         BasicAttributes attrs = new BasicAttributes(true);
 
         for (int i = 0; i < rrs.answer.size(); i++) {
-            ResourceRecord rr = (ResourceRecord) rrs.answer.elementAt(i);
+            ResourceRecord rr = rrs.answer.elementAt(i);
             int rrtype  = rr.getType();
             int rrclass = rr.getRrclass();
 
@@ -952,19 +955,14 @@ class CT {
 //----------
 
 /*
- * An enumeration of name/classname pairs.
- *
- * Nodes that have children or that are zone cuts are returned with
- * classname DirContext.  Other nodes are returned with classname
- * Object even though they are DirContexts as well, since this might
- * make the namespace easier to browse.
+ * Common base class for NameClassPairEnumeration and BindingEnumeration.
  */
-class NameClassPairEnumeration implements NamingEnumeration {
+abstract class BaseNameClassPairEnumeration<T> implements NamingEnumeration<T> {
 
-    protected Enumeration nodes;    // nodes to be enumerated, or null if none
+    protected Enumeration<NameNode> nodes;    // nodes to be enumerated, or null if none
     protected DnsContext ctx;       // context being enumerated
 
-    NameClassPairEnumeration(DnsContext ctx, Hashtable nodes) {
+    BaseNameClassPairEnumeration(DnsContext ctx, Hashtable<String,NameNode> nodes) {
         this.ctx = ctx;
         this.nodes = (nodes != null)
             ? nodes.elements()
@@ -974,12 +972,12 @@ class NameClassPairEnumeration implements NamingEnumeration {
     /*
      * ctx will be set to null when no longer needed by the enumeration.
      */
-    public void close() {
+    public final void close() {
         nodes = null;
         ctx = null;
     }
 
-    public boolean hasMore() {
+    public final boolean hasMore() {
         boolean more = ((nodes != null) && nodes.hasMoreElements());
         if (!more) {
             close();
@@ -987,11 +985,46 @@ class NameClassPairEnumeration implements NamingEnumeration {
         return more;
     }
 
-    public Object next() throws NamingException {
+    public final boolean hasMoreElements() {
+        return hasMore();
+    }
+
+    abstract public T next() throws NamingException;
+
+    public final T nextElement() {
+        try {
+            return next();
+        } catch (NamingException e) {
+            java.util.NoSuchElementException nsee =
+                    new java.util.NoSuchElementException();
+            nsee.initCause(e);
+            throw nsee;
+        }
+    }
+}
+
+/*
+ * An enumeration of name/classname pairs.
+ *
+ * Nodes that have children or that are zone cuts are returned with
+ * classname DirContext.  Other nodes are returned with classname
+ * Object even though they are DirContexts as well, since this might
+ * make the namespace easier to browse.
+ */
+final class NameClassPairEnumeration
+        extends BaseNameClassPairEnumeration<NameClassPair>
+        implements NamingEnumeration<NameClassPair> {
+
+    NameClassPairEnumeration(DnsContext ctx, Hashtable<String,NameNode> nodes) {
+        super(ctx, nodes);
+    }
+
+    @Override
+    public NameClassPair next() throws NamingException {
         if (!hasMore()) {
             throw new java.util.NoSuchElementException();
         }
-        NameNode nnode = (NameNode) nodes.nextElement();
+        NameNode nnode = nodes.nextElement();
         String className = (nnode.isZoneCut() ||
                             (nnode.getChildren() != null))
             ? "javax.naming.directory.DirContext"
@@ -1005,28 +1038,15 @@ class NameClassPairEnumeration implements NamingEnumeration {
         ncp.setNameInNamespace(ctx.fullyQualify(cname).toString());
         return ncp;
     }
-
-    public boolean hasMoreElements() {
-        return hasMore();
-    }
-
-    public Object nextElement() {
-        try {
-            return next();
-        } catch (NamingException e) {
-            throw (new java.util.NoSuchElementException(
-                    "javax.naming.NamingException was thrown: " +
-                    e.getMessage()));
-        }
-    }
 }
 
 /*
  * An enumeration of Bindings.
  */
-class BindingEnumeration extends NameClassPairEnumeration {
+final class BindingEnumeration extends BaseNameClassPairEnumeration<Binding>
+                         implements NamingEnumeration<Binding> {
 
-    BindingEnumeration(DnsContext ctx, Hashtable nodes) {
+    BindingEnumeration(DnsContext ctx, Hashtable<String,NameNode> nodes) {
         super(ctx, nodes);
     }
 
@@ -1035,11 +1055,12 @@ class BindingEnumeration extends NameClassPairEnumeration {
 //      close();
 //  }
 
-    public Object next() throws NamingException {
+    @Override
+    public Binding next() throws NamingException {
         if (!hasMore()) {
             throw (new java.util.NoSuchElementException());
         }
-        NameNode nnode = (NameNode) nodes.nextElement();
+        NameNode nnode = nodes.nextElement();
 
         String label = nnode.getLabel();
         Name compName = (new DnsName()).add(label);
diff --git a/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java b/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java
index 2ce289e..587d9b2 100644
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java
+++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -59,7 +59,7 @@ public class DnsContextFactory implements InitialContextFactory {
 
     public Context getInitialContext(Hashtable<?,?> env) throws NamingException {
         if (env == null) {
-            env = new Hashtable(5);
+            env = new Hashtable<>(5);
         }
         return urlToContext(getInitCtxUrl(env), env);
     }
@@ -75,7 +75,7 @@ public class DnsContextFactory implements InitialContextFactory {
      * components are overridden by "domain".
      */
     public static DnsContext getContext(String domain,
-                                        DnsUrl[] urls, Hashtable env)
+                                        DnsUrl[] urls, Hashtable<?,?> env)
             throws NamingException {
 
         String[] servers = serversForUrls(urls);
@@ -95,7 +95,7 @@ public class DnsContextFactory implements InitialContextFactory {
                 ).isEmpty();
     }
 
-    private static Context urlToContext(String url, Hashtable env)
+    private static Context urlToContext(String url, Hashtable<?,?> env)
             throws NamingException {
 
         DnsUrl[] urls;
@@ -212,7 +212,7 @@ public class DnsContextFactory implements InitialContextFactory {
      * Reads environment to find URL(s) of initial context.
      * Default URL is "dns:".
      */
-    private static String getInitCtxUrl(Hashtable env) {
+    private static String getInitCtxUrl(Hashtable<?,?> env) {
         String url = (String) env.get(Context.PROVIDER_URL);
         return ((url != null) ? url : DEFAULT_URL);
     }
@@ -223,34 +223,31 @@ public class DnsContextFactory implements InitialContextFactory {
      * @param oneIsEnough return output once there exists one ok
      * @return the filtered list, all non-permitted input removed
      */
-    private static List filterNameServers(List input, boolean oneIsEnough) {
+    private static List<String> filterNameServers(List<String> input, boolean oneIsEnough) {
         SecurityManager security = System.getSecurityManager();
         if (security == null || input == null || input.isEmpty()) {
             return input;
         } else {
-            List output = new ArrayList();
-            for (Object o: input) {
-                if (o instanceof String) {
-                    String platformServer = (String)o;
-                    int colon = platformServer.indexOf(':',
-                            platformServer.indexOf(']') + 1);
+            List<String> output = new ArrayList<>();
+            for (String platformServer: input) {
+                int colon = platformServer.indexOf(':',
+                        platformServer.indexOf(']') + 1);
 
-                    int p = (colon < 0)
-                        ? DEFAULT_PORT
-                        : Integer.parseInt(
-                            platformServer.substring(colon + 1));
-                    String s = (colon < 0)
-                        ? platformServer
-                        : platformServer.substring(0, colon);
-                    try {
-                        security.checkConnect(s, p);
-                        output.add(platformServer);
-                        if (oneIsEnough) {
-                            return output;
-                        }
-                    } catch (SecurityException se) {
-                        continue;
+                int p = (colon < 0)
+                    ? DEFAULT_PORT
+                    : Integer.parseInt(
+                        platformServer.substring(colon + 1));
+                String s = (colon < 0)
+                    ? platformServer
+                    : platformServer.substring(0, colon);
+                try {
+                    security.checkConnect(s, p);
+                    output.add(platformServer);
+                    if (oneIsEnough) {
+                        return output;
                     }
+                } catch (SecurityException se) {
+                    continue;
                 }
             }
             return output;
diff --git a/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java b/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java
index 5bc2394..d2f76ad 100644
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java
+++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@ package com.sun.jndi.dns;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.Enumeration;
-import java.util.Iterator;
 
 import javax.naming.*;
 
@@ -111,7 +110,7 @@ public final class DnsName implements Name {
     // The labels of this domain name, as a list of strings.  Index 0
     // corresponds to the leftmost (least significant) label:  note that
     // this is the reverse of the ordering used by the Name interface.
-    private ArrayList labels = new ArrayList();
+    private ArrayList<String> labels = new ArrayList<>();
 
     // The number of octets needed to carry this domain name in a DNS
     // packet.  Equal to the sum of the lengths of each label, plus the
@@ -152,9 +151,7 @@ public final class DnsName implements Name {
             domain = n.domain;
             octets = n.octets;
         } else {
-            Iterator iter = labels.iterator();
-            while (iter.hasNext()) {
-                String label = (String) iter.next();
+            for (String label: labels) {
                 if (label.length() > 0) {
                     octets += (short) (label.length() + 1);
                 }
@@ -165,10 +162,8 @@ public final class DnsName implements Name {
 
     public String toString() {
         if (domain == null) {
-            StringBuffer buf = new StringBuffer();
-            Iterator iter = labels.iterator();
-            while (iter.hasNext()) {
-                String label = (String) iter.next();
+            StringBuilder buf = new StringBuilder();
+            for (String label: labels) {
                 if (buf.length() > 0 || label.length() == 0) {
                     buf.append('.');
                 }
@@ -183,9 +178,8 @@ public final class DnsName implements Name {
      * Does this domain name follow <em>host name</em> syntax?
      */
     public boolean isHostName() {
-        Iterator iter = labels.iterator();
-        while (iter.hasNext()) {
-            if (!isHostNameLabel((String) iter.next())) {
+        for (String label: labels) {
+            if (!isHostNameLabel(label)) {
                 return false;
             }
         }
@@ -241,16 +235,16 @@ public final class DnsName implements Name {
             throw new ArrayIndexOutOfBoundsException();
         }
         int i = size() - pos - 1;       // index of "pos" component in "labels"
-        return (String) labels.get(i);
+        return labels.get(i);
     }
 
-    public Enumeration getAll() {
-        return new Enumeration() {
+    public Enumeration<String> getAll() {
+        return new Enumeration<String>() {
             int pos = 0;
             public boolean hasMoreElements() {
                 return (pos < size());
             }
-            public Object nextElement() {
+            public String nextElement() {
                 if (pos < size()) {
                     return get(pos++);
                 }
@@ -276,7 +270,7 @@ public final class DnsName implements Name {
             throw new ArrayIndexOutOfBoundsException();
         }
         int i = size() - pos - 1;     // index of element to remove in "labels"
-        String label = (String) labels.remove(i);
+        String label = labels.remove(i);
         int len = label.length();
         if (len > 0) {
             octets -= (short) (len + 1);
@@ -530,7 +524,7 @@ public final class DnsName implements Name {
     /*
      * Append a label to buf, escaping as needed.
      */
-    private static void escape(StringBuffer buf, String label) {
+    private static void escape(StringBuilder buf, String label) {
         for (int i = 0; i < label.length(); i++) {
             char c = label.charAt(i);
             if (c == '.' || c == '\\') {
diff --git a/jdk/src/share/classes/com/sun/jndi/dns/NameNode.java b/jdk/src/share/classes/com/sun/jndi/dns/NameNode.java
index 02ab791..07cdde5 100644
--- a/jdk/src/share/classes/com/sun/jndi/dns/NameNode.java
+++ b/jdk/src/share/classes/com/sun/jndi/dns/NameNode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -52,7 +52,7 @@ class NameNode {
 
     private String label;               // name of this node relative to its
                                         // parent, or null for root of a tree
-    private Hashtable children = null;  // child nodes
+    private Hashtable<String,NameNode> children = null;  // child nodes
     private boolean isZoneCut = false;  // true if this node is a zone cut
     private int depth = 0;              // depth in tree (0 for root)
 
@@ -97,7 +97,7 @@ class NameNode {
      * Returns the children of this node, or null if there are none.
      * The caller must not modify the Hashtable returned.
      */
-    Hashtable getChildren() {
+    Hashtable<String,NameNode> getChildren() {
         return children;
     }
 
@@ -108,7 +108,7 @@ class NameNode {
      */
     NameNode get(String key) {
         return (children != null)
-            ? (NameNode) children.get(key)
+            ? children.get(key)
             : null;
     }
 
@@ -140,9 +140,9 @@ class NameNode {
 
             NameNode child = null;
             if (node.children == null) {
-                node.children = new Hashtable();
+                node.children = new Hashtable<>();
             } else {
-                child = (NameNode) node.children.get(key);
+                child = node.children.get(key);
             }
             if (child == null) {
                 child = newNameNode(label);
diff --git a/jdk/src/share/classes/com/sun/jndi/dns/Resolver.java b/jdk/src/share/classes/com/sun/jndi/dns/Resolver.java
index fac02e8..ec4e0b9 100644
--- a/jdk/src/share/classes/com/sun/jndi/dns/Resolver.java
+++ b/jdk/src/share/classes/com/sun/jndi/dns/Resolver.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -125,8 +125,7 @@ class Resolver {
                 }
                 // Look for an SOA record giving the zone's top node.
                 for (int i = 0; i < rrs.authority.size(); i++) {
-                    ResourceRecord rr = (ResourceRecord)
-                        rrs.authority.elementAt(i);
+                    ResourceRecord rr = rrs.authority.elementAt(i);
                     if (rr.getType() == ResourceRecord.TYPE_SOA) {
                         DnsName zone = rr.getName();
                         if (fqdn.endsWith(zone)) {
@@ -152,7 +151,7 @@ class Resolver {
         ResourceRecords rrs = query(zone, rrclass, ResourceRecord.TYPE_SOA,
                                     recursion, false);
         for (int i = 0; i < rrs.answer.size(); i++) {
-            ResourceRecord rr = (ResourceRecord) rrs.answer.elementAt(i);
+            ResourceRecord rr = rrs.answer.elementAt(i);
             if (rr.getType() == ResourceRecord.TYPE_SOA) {
                 return rr;
             }
@@ -175,8 +174,7 @@ class Resolver {
                   recursion, false);
         String[] ns = new String[rrs.answer.size()];
         for (int i = 0; i < ns.length; i++) {
-            ResourceRecord rr = (ResourceRecord)
-                rrs.answer.elementAt(i);
+            ResourceRecord rr = rrs.answer.elementAt(i);
             if (rr.getType() != ResourceRecord.TYPE_NS) {
                 throw new CommunicationException("Corrupted DNS message");
             }
diff --git a/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java b/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java
index ac49426..797c3be 100644
--- a/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java
+++ b/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,10 +45,10 @@ class ResourceRecords {
     // Four sections:  question, answer, authority, additional.
     // The question section is treated as being made up of (shortened)
     // resource records, although this isn't technically how it's defined.
-    Vector question = new Vector();
-    Vector answer = new Vector();
-    Vector authority = new Vector();
-    Vector additional = new Vector();
+    Vector<ResourceRecord> question = new Vector<>();
+    Vector<ResourceRecord> answer = new Vector<>();
+    Vector<ResourceRecord> authority = new Vector<>();
+    Vector<ResourceRecord> additional = new Vector<>();
 
     /*
      * True if these resource records are from a zone transfer.  In
@@ -80,7 +80,7 @@ class ResourceRecords {
         if (answer.size() == 0) {
             return -1;
         }
-        return ((ResourceRecord) answer.firstElement()).getType();
+        return answer.firstElement().getType();
     }
 
     /*
@@ -91,7 +91,7 @@ class ResourceRecords {
         if (answer.size() == 0) {
             return -1;
         }
-        return ((ResourceRecord) answer.lastElement()).getType();
+        return answer.lastElement().getType();
     }
 
     /*
diff --git a/jdk/src/share/classes/com/sun/jndi/dns/ZoneNode.java b/jdk/src/share/classes/com/sun/jndi/dns/ZoneNode.java
index f0dc591..f676d55 100644
--- a/jdk/src/share/classes/com/sun/jndi/dns/ZoneNode.java
+++ b/jdk/src/share/classes/com/sun/jndi/dns/ZoneNode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,7 +55,7 @@ import java.util.Vector;
 
 class ZoneNode extends NameNode {
 
-    private SoftReference contentsRef = null;   // the zone's namespace
+    private SoftReference<NameNode> contentsRef = null;   // the zone's namespace
     private long serialNumber = -1;     // the zone data's serial number
     private Date expiration = null;     // time when the zone's data expires
 
@@ -88,7 +88,7 @@ class ZoneNode extends NameNode {
      */
     synchronized NameNode getContents() {
         return (contentsRef != null)
-                ? (NameNode) contentsRef.get()
+                ? contentsRef.get()
                 : null;
     }
 
@@ -130,7 +130,7 @@ class ZoneNode extends NameNode {
         NameNode newContents = new NameNode(null);
 
         for (int i = 0; i < rrs.answer.size(); i++) {
-            ResourceRecord rr = (ResourceRecord) rrs.answer.elementAt(i);
+            ResourceRecord rr = rrs.answer.elementAt(i);
             DnsName n = rr.getName();
 
             // Ignore resource records whose names aren't within the zone's
@@ -144,9 +144,9 @@ class ZoneNode extends NameNode {
             }
         }
         // The zone's SOA record is the first record in the answer section.
-        ResourceRecord soa = (ResourceRecord) rrs.answer.firstElement();
+        ResourceRecord soa = rrs.answer.firstElement();
         synchronized (this) {
-            contentsRef = new SoftReference(newContents);
+            contentsRef = new SoftReference<NameNode>(newContents);
             serialNumber = getSerialNumber(soa);
             setExpiration(getMinimumTtl(soa));
             return newContents;
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java b/jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java
new file mode 100644
index 0000000..241105b
--- /dev/null
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java
@@ -0,0 +1,408 @@
+/*
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.jndi.ldap;
+
+import com.sun.jndi.toolkit.ctx.Continuation;
+import java.util.NoSuchElementException;
+import java.util.Vector;
+
+import javax.naming.*;
+import javax.naming.directory.Attributes;
+import javax.naming.ldap.Control;
+
+/**
+ * Basic enumeration for NameClassPair, Binding, and SearchResults.
+ */
+
+abstract class AbstractLdapNamingEnumeration<T extends NameClassPair>
+        implements NamingEnumeration<T>, ReferralEnumeration<T> {
+
+    protected Name listArg;
+
+    private boolean cleaned = false;
+    private LdapResult res;
+    private LdapClient enumClnt;
+    private Continuation cont;  // used to fill in exceptions
+    private Vector<LdapEntry> entries = null;
+    private int limit = 0;
+    private int posn = 0;
+    protected LdapCtx homeCtx;
+    private LdapReferralException refEx = null;
+    private NamingException errEx = null;
+
+    /*
+     * Record the next set of entries and/or referrals.
+     */
+    AbstractLdapNamingEnumeration(LdapCtx homeCtx, LdapResult answer, Name listArg,
+        Continuation cont) throws NamingException {
+
+            // These checks are to accommodate referrals and limit exceptions
+            // which will generate an enumeration and defer the exception
+            // to be thrown at the end of the enumeration.
+            // All other exceptions are thrown immediately.
+            // Exceptions shouldn't be thrown here anyhow because
+            // process_return_code() is called before the constructor
+            // is called, so these are just safety checks.
+
+            if ((answer.status != LdapClient.LDAP_SUCCESS) &&
+                (answer.status != LdapClient.LDAP_SIZE_LIMIT_EXCEEDED) &&
+                (answer.status != LdapClient.LDAP_TIME_LIMIT_EXCEEDED) &&
+                (answer.status != LdapClient.LDAP_ADMIN_LIMIT_EXCEEDED) &&
+                (answer.status != LdapClient.LDAP_REFERRAL) &&
+                (answer.status != LdapClient.LDAP_PARTIAL_RESULTS)) {
+
+                // %%% need to deal with referral
+                NamingException e = new NamingException(
+                                    LdapClient.getErrorMessage(
+                                    answer.status, answer.errorMessage));
+
+                throw cont.fillInException(e);
+            }
+
+            // otherwise continue
+
+            res = answer;
+            entries = answer.entries;
+            limit = (entries == null) ? 0 : entries.size(); // handle empty set
+            this.listArg = listArg;
+            this.cont = cont;
+
+            if (answer.refEx != null) {
+                refEx = answer.refEx;
+            }
+
+            // Ensures that context won't get closed from underneath us
+            this.homeCtx = homeCtx;
+            homeCtx.incEnumCount();
+            enumClnt = homeCtx.clnt; // remember
+    }
+
+    @Override
+    public final T nextElement() {
+        try {
+            return next();
+        } catch (NamingException e) {
+            // can't throw exception
+            cleanup();
+            return null;
+        }
+    }
+
+    @Override
+    public final boolean hasMoreElements() {
+        try {
+            return hasMore();
+        } catch (NamingException e) {
+            // can't throw exception
+            cleanup();
+            return false;
+        }
+    }
+
+    /*
+     * Retrieve the next set of entries and/or referrals.
+     */
+    private void getNextBatch() throws NamingException {
+
+        res = homeCtx.getSearchReply(enumClnt, res);
+        if (res == null) {
+            limit = posn = 0;
+            return;
+        }
+
+        entries = res.entries;
+        limit = (entries == null) ? 0 : entries.size(); // handle empty set
+        posn = 0; // reset
+
+        // mimimize the number of calls to processReturnCode()
+        // (expensive when batchSize is small and there are many results)
+        if ((res.status != LdapClient.LDAP_SUCCESS) ||
+            ((res.status == LdapClient.LDAP_SUCCESS) &&
+                (res.referrals != null))) {
+
+            try {
+                // convert referrals into a chain of LdapReferralException
+                homeCtx.processReturnCode(res, listArg);
+
+            } catch (LimitExceededException | PartialResultException e) {
+                setNamingException(e);
+
+            }
+        }
+
+        // merge any newly received referrals with any current referrals
+        if (res.refEx != null) {
+            if (refEx == null) {
+                refEx = res.refEx;
+            } else {
+                refEx = refEx.appendUnprocessedReferrals(res.refEx);
+            }
+            res.refEx = null; // reset
+        }
+
+        if (res.resControls != null) {
+            homeCtx.respCtls = res.resControls;
+        }
+    }
+
+    private boolean more = true;  // assume we have something to start with
+    private boolean hasMoreCalled = false;
+
+    /*
+     * Test if unprocessed entries or referrals exist.
+     */
+    @Override
+    public final boolean hasMore() throws NamingException {
+
+        if (hasMoreCalled) {
+            return more;
+        }
+
+        hasMoreCalled = true;
+
+        if (!more) {
+            return false;
+        } else {
+            return (more = hasMoreImpl());
+        }
+    }
+
+    /*
+     * Retrieve the next entry.
+     */
+    @Override
+    public final T next() throws NamingException {
+
+        if (!hasMoreCalled) {
+            hasMore();
+        }
+        hasMoreCalled = false;
+        return nextImpl();
+    }
+
+    /*
+     * Test if unprocessed entries or referrals exist.
+     */
+    private boolean hasMoreImpl() throws NamingException {
+        // when page size is supported, this
+        // might generate an exception while attempting
+        // to fetch the next batch to determine
+        // whether there are any more elements
+
+        // test if the current set of entries has been processed
+        if (posn == limit) {
+            getNextBatch();
+        }
+
+        // test if any unprocessed entries exist
+        if (posn < limit) {
+            return true;
+        } else {
+
+            try {
+                // try to process another referral
+                return hasMoreReferrals();
+
+            } catch (LdapReferralException |
+                     LimitExceededException |
+                     PartialResultException e) {
+                cleanup();
+                throw e;
+
+            } catch (NamingException e) {
+                cleanup();
+                PartialResultException pre = new PartialResultException();
+                pre.setRootCause(e);
+                throw pre;
+            }
+        }
+    }
+
+    /*
+     * Retrieve the next entry.
+     */
+    private T nextImpl() throws NamingException {
+        try {
+            return nextAux();
+        } catch (NamingException e) {
+            cleanup();
+            throw cont.fillInException(e);
+        }
+    }
+
+    private T nextAux() throws NamingException {
+        if (posn == limit) {
+            getNextBatch();  // updates posn and limit
+        }
+
+        if (posn >= limit) {
+            cleanup();
+            throw new NoSuchElementException("invalid enumeration handle");
+        }
+
+        LdapEntry result = entries.elementAt(posn++);
+
+        // gets and outputs DN from the entry
+        return createItem(result.DN, result.attributes, result.respCtls);
+    }
+
+    protected final String getAtom(String dn) {
+        // need to strip off all but lowest component of dn
+        // so that is relative to current context (currentDN)
+        try {
+            Name parsed = new LdapName(dn);
+            return parsed.get(parsed.size() - 1);
+        } catch (NamingException e) {
+            return dn;
+        }
+    }
+
+    protected abstract T createItem(String dn, Attributes attrs,
+        Vector<Control> respCtls) throws NamingException;
+
+    /*
+     * Append the supplied (chain of) referrals onto the
+     * end of the current (chain of) referrals.
+     */
+    @Override
+    public void appendUnprocessedReferrals(LdapReferralException ex) {
+        if (refEx != null) {
+            refEx = refEx.appendUnprocessedReferrals(ex);
+        } else {
+            refEx = ex.appendUnprocessedReferrals(refEx);
+        }
+    }
+
+    final void setNamingException(NamingException e) {
+        errEx = e;
+    }
+
+    protected abstract AbstractLdapNamingEnumeration<T> getReferredResults(
+            LdapReferralContext refCtx) throws NamingException;
+
+    /*
+     * Iterate through the URLs of a referral. If successful then perform
+     * a search operation and merge the received results with the current
+     * results.
+     */
+    protected final boolean hasMoreReferrals() throws NamingException {
+
+        if ((refEx != null) &&
+            (refEx.hasMoreReferrals() ||
+             refEx.hasMoreReferralExceptions())) {
+
+            if (homeCtx.handleReferrals == LdapClient.LDAP_REF_THROW) {
+                throw (NamingException)(refEx.fillInStackTrace());
+            }
+
+            // process the referrals sequentially
+            while (true) {
+
+                LdapReferralContext refCtx =
+                    (LdapReferralContext)refEx.getReferralContext(
+                    homeCtx.envprops, homeCtx.reqCtls);
+
+                try {
+
+                    update(getReferredResults(refCtx));
+                    break;
+
+                } catch (LdapReferralException re) {
+
+                    // record a previous exception
+                    if (errEx == null) {
+                        errEx = re.getNamingException();
+                    }
+                    refEx = re;
+                    continue;
+
+                } finally {
+                    // Make sure we close referral context
+                    refCtx.close();
+                }
+            }
+            return hasMoreImpl();
+
+        } else {
+            cleanup();
+
+            if (errEx != null) {
+                throw errEx;
+            }
+            return (false);
+        }
+    }
+
+    /*
+     * Merge the entries and/or referrals from the supplied enumeration
+     * with those of the current enumeration.
+     */
+    protected void update(AbstractLdapNamingEnumeration<T> ne) {
+        // Cleanup previous context first
+        homeCtx.decEnumCount();
+
+        // New enum will have already incremented enum count and recorded clnt
+        homeCtx = ne.homeCtx;
+        enumClnt = ne.enumClnt;
+
+        // Do this to prevent referral enumeration (ne) from decrementing
+        // enum count because we'll be doing that here from this
+        // enumeration.
+        ne.homeCtx = null;
+
+        // Record rest of information from new enum
+        posn = ne.posn;
+        limit = ne.limit;
+        res = ne.res;
+        entries = ne.entries;
+        refEx = ne.refEx;
+        listArg = ne.listArg;
+    }
+
+    protected final void finalize() {
+        cleanup();
+    }
+
+    protected final void cleanup() {
+        if (cleaned) return; // been there; done that
+
+        if(enumClnt != null) {
+            enumClnt.clearSearchReply(res, homeCtx.reqCtls);
+        }
+
+        enumClnt = null;
+        cleaned = true;
+        if (homeCtx != null) {
+            homeCtx.decEnumCount();
+            homeCtx = null;
+        }
+    }
+
+    @Override
+    public final void close() {
+        cleanup();
+    }
+}
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/Ber.java b/jdk/src/share/classes/com/sun/jndi/ldap/Ber.java
index 62a7e14..eed8817 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/Ber.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/Ber.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -94,12 +94,14 @@ public abstract class Ber {
     public static final int ASN_ENUMERATED      = 0x0a;
 
     final static class EncodeException extends IOException {
+        private static final long serialVersionUID = -5247359637775781768L;
         EncodeException(String msg) {
             super(msg);
         }
     }
 
     final static class DecodeException extends IOException {
+        private static final long serialVersionUID = 8735036969244425583L;
         DecodeException(String msg) {
             super(msg);
         }
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java b/jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java
index bfddd0a..9f75e83 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
 
 package com.sun.jndi.ldap;
 
+import java.util.Locale;
 import java.util.Arrays; // JDK 1.2
 import java.io.OutputStream;
 import javax.naming.ldap.Control;
@@ -71,10 +72,10 @@ class ClientId {
     ClientId(int version, String hostname, int port, String protocol,
             Control[] bindCtls, OutputStream trace, String socketFactory) {
         this.version = version;
-        this.hostname = hostname.toLowerCase();  // ignore case
+        this.hostname = hostname.toLowerCase(Locale.ENGLISH);  // ignore case
         this.port = port;
         this.protocol = protocol;
-        this.bindCtls = (bindCtls != null ? (Control[]) bindCtls.clone() : null);
+        this.bindCtls = (bindCtls != null ? bindCtls.clone() : null);
         this.trace = trace;
         //
         // Needed for custom socket factory pooling
@@ -83,13 +84,15 @@ class ClientId {
         if ((socketFactory != null) &&
              !socketFactory.equals(LdapCtx.DEFAULT_SSL_FACTORY)) {
             try {
-                Class socketFactoryClass = Obj.helper.loadClass(socketFactory);
-                Class objClass = Class.forName("java.lang.Object");
+                Class<?> socketFactoryClass =
+                        Obj.helper.loadClass(socketFactory);
+                Class<?> objClass = Class.forName("java.lang.Object");
                 this.sockComparator = socketFactoryClass.getMethod(
-                                "compare", new Class[]{objClass, objClass});
-                Method getDefault =
-                    socketFactoryClass.getMethod("getDefault", new Class[]{});
-                this.factory = (SocketFactory) getDefault.invoke(null, new Object[]{});
+                                "compare", new Class<?>[]{objClass, objClass});
+                Method getDefault = socketFactoryClass.getMethod(
+                                            "getDefault", new Class<?>[]{});
+                this.factory =
+                        (SocketFactory)getDefault.invoke(null, new Object[]{});
             } catch (Exception e) {
                 // Ignore it here, the same exceptions are/will be handled by
                 // LdapPoolManager and Connection classes.
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java b/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java
index 6ca3ae1..ee9ff2d 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java
@@ -238,27 +238,22 @@ public final class Connection implements Runnable {
             throws NoSuchMethodException {
 
         try {
-            Class inetSocketAddressClass =
+            Class<?> inetSocketAddressClass =
                 Class.forName("java.net.InetSocketAddress");
 
-            Constructor inetSocketAddressCons =
-                inetSocketAddressClass.getConstructor(new Class[]{
+            Constructor<?> inetSocketAddressCons =
+                inetSocketAddressClass.getConstructor(new Class<?>[]{
                 String.class, int.class});
 
             return inetSocketAddressCons.newInstance(new Object[]{
                 host, new Integer(port)});
 
-        } catch (ClassNotFoundException e) {
+        } catch (ClassNotFoundException |
+                 InstantiationException |
+                 InvocationTargetException |
+                 IllegalAccessException e) {
             throw new NoSuchMethodException();
 
-        } catch (InstantiationException e) {
-            throw new NoSuchMethodException();
-
-        } catch (InvocationTargetException e) {
-            throw new NoSuchMethodException();
-
-        } catch (IllegalAccessException e) {
-            throw new NoSuchMethodException();
         }
     }
 
@@ -280,9 +275,9 @@ public final class Connection implements Runnable {
 
             // create the factory
 
-            Class socketFactoryClass = Obj.helper.loadClass(socketFactory);
+            Class<?> socketFactoryClass = Obj.helper.loadClass(socketFactory);
             Method getDefault =
-                socketFactoryClass.getMethod("getDefault", new Class[]{});
+                socketFactoryClass.getMethod("getDefault", new Class<?>[]{});
             Object factory = getDefault.invoke(null, new Object[]{});
 
             // create the socket
@@ -293,10 +288,10 @@ public final class Connection implements Runnable {
 
                 try {
                     createSocket = socketFactoryClass.getMethod("createSocket",
-                        new Class[]{});
+                        new Class<?>[]{});
 
                     Method connect = Socket.class.getMethod("connect",
-                        new Class[]{Class.forName("java.net.SocketAddress"),
+                        new Class<?>[]{Class.forName("java.net.SocketAddress"),
                         int.class});
                     Object endpoint = createInetSocketAddress(host, port);
 
@@ -320,7 +315,7 @@ public final class Connection implements Runnable {
 
             if (socket == null) {
                 createSocket = socketFactoryClass.getMethod("createSocket",
-                    new Class[]{String.class, int.class});
+                    new Class<?>[]{String.class, int.class});
 
                 if (debug) {
                     System.err.println("Connection: creating socket using " +
@@ -335,15 +330,15 @@ public final class Connection implements Runnable {
             if (connectTimeout > 0) {
 
                 try {
-                    Constructor socketCons =
-                        Socket.class.getConstructor(new Class[]{});
+                    Constructor<Socket> socketCons =
+                        Socket.class.getConstructor(new Class<?>[]{});
 
                     Method connect = Socket.class.getMethod("connect",
-                        new Class[]{Class.forName("java.net.SocketAddress"),
+                        new Class<?>[]{Class.forName("java.net.SocketAddress"),
                         int.class});
                     Object endpoint = createInetSocketAddress(host, port);
 
-                    socket = (Socket) socketCons.newInstance(new Object[]{});
+                    socket = socketCons.newInstance(new Object[]{});
 
                     if (debug) {
                         System.err.println("Connection: creating socket with " +
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/DigestClientId.java b/jdk/src/share/classes/com/sun/jndi/ldap/DigestClientId.java
index b1cd1a8..b4f19d0 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/DigestClientId.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/DigestClientId.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -65,7 +65,7 @@ class DigestClientId extends SimpleClientId {
     DigestClientId(int version, String hostname, int port,
         String protocol, Control[] bindCtls, OutputStream trace,
         String socketFactory, String username,
-        Object passwd, Hashtable env) {
+        Object passwd, Hashtable<?,?> env) {
 
         super(version, hostname, port, protocol, bindCtls, trace,
             socketFactory, username, passwd);
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/EventQueue.java b/jdk/src/share/classes/com/sun/jndi/ldap/EventQueue.java
index c5eb655..db335f7 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/EventQueue.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/EventQueue.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package com.sun.jndi.ldap;
 
-import java.io.*;
 import java.util.Vector;
 import java.util.EventObject;
 
@@ -52,9 +51,9 @@ final class EventQueue implements Runnable {
         QueueElement next = null;
         QueueElement prev = null;
         EventObject event = null;
-        Vector vector = null;
+        Vector<NamingListener> vector = null;
 
-        QueueElement(EventObject event, Vector vector) {
+        QueueElement(EventObject event, Vector<NamingListener> vector) {
             this.event = event;
             this.vector = vector;
         }
@@ -87,7 +86,7 @@ final class EventQueue implements Runnable {
      * are notified.
      * @param vector List of NamingListeners that will be notified of event.
      */
-    synchronized void enqueue(EventObject event, Vector vector) {
+    synchronized void enqueue(EventObject event, Vector<NamingListener> vector) {
         QueueElement newElt = new QueueElement(event, vector);
 
         if (head == null) {
@@ -133,7 +132,7 @@ final class EventQueue implements Runnable {
         try {
             while ((qe = dequeue()) != null) {
                 EventObject e = qe.event;
-                Vector v = qe.vector;
+                Vector<NamingListener> v = qe.vector;
 
                 for (int i = 0; i < v.size(); i++) {
 
@@ -145,12 +144,11 @@ final class EventQueue implements Runnable {
                     // only enqueue events with listseners of the correct type.
 
                     if (e instanceof NamingEvent) {
-                        ((NamingEvent)e).dispatch((NamingListener)v.elementAt(i));
+                        ((NamingEvent)e).dispatch(v.elementAt(i));
 
                     // An exception occurred: if notify all naming listeners
                     } else if (e instanceof NamingExceptionEvent) {
-                        ((NamingExceptionEvent)e).dispatch(
-                            (NamingListener)v.elementAt(i));
+                        ((NamingExceptionEvent)e).dispatch(v.elementAt(i));
                     } else if (e instanceof UnsolicitedNotificationEvent) {
                         ((UnsolicitedNotificationEvent)e).dispatch(
                             (UnsolicitedNotificationListener)v.elementAt(i));
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java b/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java
index 671fee5..a9d45a2 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,11 +27,9 @@ package com.sun.jndi.ldap;
 
 import java.util.Hashtable;
 import java.util.Vector;
-import java.util.Enumeration;
 import java.util.EventObject;
 
 import javax.naming.*;
-import javax.naming.directory.*;
 import javax.naming.event.*;
 import javax.naming.directory.SearchControls;
 import javax.naming.ldap.UnsolicitedNotificationListener;
@@ -120,12 +118,13 @@ final class EventSupport {
     /**
      * NamingEventNotifiers; hashed by search arguments;
      */
-    private Hashtable notifiers = new Hashtable(11);
+    private Hashtable<NotifierArgs, NamingEventNotifier> notifiers =
+            new Hashtable<>(11);
 
     /**
      * List of unsolicited notification listeners.
      */
-    private Vector unsolicited = null;
+    private Vector<UnsolicitedNotificationListener> unsolicited = null;
 
     /**
      * Constructs EventSupport for ctx.
@@ -155,8 +154,7 @@ final class EventSupport {
             l instanceof NamespaceChangeListener) {
             NotifierArgs args = new NotifierArgs(nm, scope, l);
 
-            NamingEventNotifier notifier =
-                (NamingEventNotifier) notifiers.get(args);
+            NamingEventNotifier notifier = notifiers.get(args);
             if (notifier == null) {
                 notifier = new NamingEventNotifier(this, ctx, args, l);
                 notifiers.put(args, notifier);
@@ -167,10 +165,10 @@ final class EventSupport {
         if (l instanceof UnsolicitedNotificationListener) {
             // Add listener to this's list of unsolicited notifiers
             if (unsolicited == null) {
-                unsolicited = new Vector(3);
+                unsolicited = new Vector<>(3);
             }
 
-            unsolicited.addElement(l);
+            unsolicited.addElement((UnsolicitedNotificationListener)l);
         }
     }
 
@@ -185,8 +183,7 @@ final class EventSupport {
             l instanceof NamespaceChangeListener) {
             NotifierArgs args = new NotifierArgs(nm, filter, ctls, l);
 
-            NamingEventNotifier notifier =
-                (NamingEventNotifier) notifiers.get(args);
+            NamingEventNotifier notifier = notifiers.get(args);
             if (notifier == null) {
                 notifier = new NamingEventNotifier(this, ctx, args, l);
                 notifiers.put(args, notifier);
@@ -197,9 +194,9 @@ final class EventSupport {
         if (l instanceof UnsolicitedNotificationListener) {
             // Add listener to this's list of unsolicited notifiers
             if (unsolicited == null) {
-                unsolicited = new Vector(3);
+                unsolicited = new Vector<>(3);
             }
-            unsolicited.addElement(l);
+            unsolicited.addElement((UnsolicitedNotificationListener)l);
         }
     }
 
@@ -207,15 +204,11 @@ final class EventSupport {
      * Removes <tt>l</tt> from all notifiers in this context.
      */
     synchronized void removeNamingListener(NamingListener l) {
-        Enumeration allnotifiers = notifiers.elements();
-        NamingEventNotifier notifier;
-
         if (debug) System.err.println("EventSupport removing listener");
 
         // Go through list of notifiers, remove 'l' from each.
         // If 'l' is notifier's only listener, remove notifier too.
-        while (allnotifiers.hasMoreElements()) {
-            notifier = (NamingEventNotifier)allnotifiers.nextElement();
+        for (NamingEventNotifier notifier : notifiers.values()) {
             if (notifier != null) {
                 if (debug)
                     System.err.println("EventSupport removing listener from notifier");
@@ -305,8 +298,8 @@ final class EventSupport {
     synchronized void cleanup() {
         if (debug) System.err.println("EventSupport clean up");
         if (notifiers != null) {
-            for (Enumeration ns = notifiers.elements(); ns.hasMoreElements(); ) {
-                ((NamingEventNotifier) ns.nextElement()).stop();
+            for (NamingEventNotifier notifier : notifiers.values()) {
+                notifier.stop();
             }
             notifiers = null;
         }
@@ -328,7 +321,8 @@ final class EventSupport {
      * them to the registered listeners.
      * Package private; used by NamingEventNotifier to fire events
      */
-    synchronized void queueEvent(EventObject event, Vector vector) {
+    synchronized void queueEvent(EventObject event,
+                                 Vector<? extends NamingListener> vector) {
         if (eventQueue == null)
             eventQueue = new EventQueue();
 
@@ -340,7 +334,9 @@ final class EventSupport {
          * of this event will not take effect until after the event is
          * delivered.
          */
-        Vector v = (Vector)vector.clone();
+        @SuppressWarnings("unchecked") // clone()
+        Vector<NamingListener> v =
+                (Vector<NamingListener>)vector.clone();
         eventQueue.enqueue(event, v);
     }
 
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java
index 1ecaa10..7bb77cd 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,8 +26,6 @@
 package com.sun.jndi.ldap;
 
 import java.io.IOException;
-import java.io.Serializable;
-import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.Vector;
 import javax.naming.*;
@@ -50,11 +48,12 @@ final class LdapAttribute extends BasicAttribute {
     // these two are used to reconstruct the baseCtx if this attribute has
     // been serialized (
     private String baseCtxURL;
-    private Hashtable baseCtxEnv;
+    private Hashtable<String, ? super String> baseCtxEnv;
 
+    @SuppressWarnings("unchecked") // clone()
     public Object clone() {
         LdapAttribute attr = new LdapAttribute(this.attrID, baseCtx, rdn);
-        attr.values = (Vector)values.clone();
+        attr.values = (Vector<Object>)values.clone();
         return attr;
     }
 
@@ -112,7 +111,7 @@ final class LdapAttribute extends BasicAttribute {
     private DirContext getBaseCtx() throws NamingException {
         if(baseCtx == null) {
             if (baseCtxEnv == null) {
-                baseCtxEnv = new Hashtable(3);
+                baseCtxEnv = new Hashtable<String, String>(3);
             }
             baseCtxEnv.put(Context.INITIAL_CONTEXT_FACTORY,
                              "com.sun.jndi.ldap.LdapCtxFactory");
@@ -144,9 +143,10 @@ final class LdapAttribute extends BasicAttribute {
      * we are serialized. This must be called _before_ the object is
      * serialized!!!
      */
+    @SuppressWarnings("unchecked") // clone()
     private void setBaseCtxInfo() {
-        Hashtable realEnv = null;
-        Hashtable secureEnv = null;
+        Hashtable<String, Object> realEnv = null;
+        Hashtable<String, Object> secureEnv = null;
 
         if (baseCtx != null) {
             realEnv = ((LdapCtx)baseCtx).envprops;
@@ -156,16 +156,14 @@ final class LdapAttribute extends BasicAttribute {
         if(realEnv != null && realEnv.size() > 0 ) {
             // remove any security credentials - otherwise the serialized form
             // would store them in the clear
-            Enumeration keys = realEnv.keys();
-            while(keys.hasMoreElements()) {
-                String key = (String)keys.nextElement();
+            for (String key : realEnv.keySet()){
                 if (key.indexOf("security") != -1 ) {
 
                     //if we need to remove props, we must do it to a clone
                     //of the environment. cloning is expensive, so we only do
                     //it if we have to.
                     if(secureEnv == null) {
-                        secureEnv = (Hashtable)realEnv.clone();
+                        secureEnv = (Hashtable<String, Object>)realEnv.clone();
                     }
                     secureEnv.remove(key);
                 }
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java
index d3e247e..c0c4a2e 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,11 +28,13 @@ package com.sun.jndi.ldap;
 import java.util.Vector;
 import javax.naming.*;
 import javax.naming.directory.*;
+import javax.naming.ldap.Control;
 import javax.naming.spi.*;
 
 import com.sun.jndi.toolkit.ctx.Continuation;
 
-final class LdapBindingEnumeration extends LdapNamingEnumeration {
+final class LdapBindingEnumeration
+        extends AbstractLdapNamingEnumeration<Binding> {
 
     LdapBindingEnumeration(LdapCtx homeCtx, LdapResult answer, Name remain,
         Continuation cont) throws NamingException
@@ -40,8 +42,9 @@ final class LdapBindingEnumeration extends LdapNamingEnumeration {
         super(homeCtx, answer, remain, cont);
     }
 
-    protected NameClassPair
-      createItem(String dn, Attributes attrs, Vector respCtls)
+    @Override
+    protected Binding
+      createItem(String dn, Attributes attrs, Vector<Control> respCtls)
         throws NamingException {
 
         Object obj = null;
@@ -85,9 +88,10 @@ final class LdapBindingEnumeration extends LdapNamingEnumeration {
         return binding;
     }
 
-    protected LdapNamingEnumeration
-    getReferredResults(LdapReferralContext refCtx) throws NamingException{
+    @Override
+    protected LdapBindingEnumeration getReferredResults(
+            LdapReferralContext refCtx) throws NamingException{
         // repeat the original operation at the new context
-        return (LdapNamingEnumeration) refCtx.listBindings(listArg);
+        return (LdapBindingEnumeration)refCtx.listBindings(listArg);
     }
 }
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java
index 41a3dfb..0053758 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java
@@ -25,8 +25,8 @@
 
 package com.sun.jndi.ldap;
 
-import java.net.*;
 import java.io.*;
+import java.util.Locale;
 import java.util.Vector;
 import java.util.Hashtable;
 
@@ -81,7 +81,8 @@ public final class LdapClient implements PooledConnection {
     static final boolean caseIgnore = true;
 
     // Default list of binary attributes
-    private static final Hashtable defaultBinaryAttrs = new Hashtable(23,0.75f);
+    private static final Hashtable<String, Boolean> defaultBinaryAttrs =
+            new Hashtable<>(23,0.75f);
     static {
         defaultBinaryAttrs.put("userpassword", Boolean.TRUE);      //2.5.4.35
         defaultBinaryAttrs.put("javaserializeddata", Boolean.TRUE);
@@ -146,7 +147,7 @@ public final class LdapClient implements PooledConnection {
 
     synchronized LdapResult
     authenticate(boolean initial, String name, Object pw, int version,
-        String authMechanism, Control[] ctls,  Hashtable env)
+        String authMechanism, Control[] ctls,  Hashtable<?,?> env)
         throws NamingException {
 
         authenticateCalled = true;
@@ -516,8 +517,8 @@ public final class LdapClient implements PooledConnection {
     LdapResult search(String dn, int scope, int deref, int sizeLimit,
                       int timeLimit, boolean attrsOnly, String attrs[],
                       String filter, int batchSize, Control[] reqCtls,
-                      Hashtable binaryAttrs, boolean waitFirstReply,
-                      int replyQueueCapacity)
+                      Hashtable<String, Boolean> binaryAttrs,
+                      boolean waitFirstReply, int replyQueueCapacity)
         throws IOException, NamingException {
 
         ensureOpen();
@@ -586,7 +587,7 @@ public final class LdapClient implements PooledConnection {
      * Retrieve the next batch of entries and/or referrals.
      */
     LdapResult getSearchReply(int batchSize, LdapResult res,
-        Hashtable binaryAttrs) throws IOException, NamingException {
+        Hashtable<String, Boolean> binaryAttrs) throws IOException, NamingException {
 
         ensureOpen();
 
@@ -600,7 +601,7 @@ public final class LdapClient implements PooledConnection {
     }
 
     private LdapResult getSearchReply(LdapRequest req,
-        int batchSize, LdapResult res, Hashtable binaryAttrs)
+        int batchSize, LdapResult res, Hashtable<String, Boolean> binaryAttrs)
         throws IOException, NamingException {
 
         if (batchSize == 0)
@@ -610,7 +611,7 @@ public final class LdapClient implements PooledConnection {
             res.entries.setSize(0); // clear the (previous) set of entries
         } else {
             res.entries =
-                new Vector(batchSize == Integer.MAX_VALUE ? 32 : batchSize);
+                new Vector<>(batchSize == Integer.MAX_VALUE ? 32 : batchSize);
         }
 
         if (res.referrals != null) {
@@ -660,7 +661,7 @@ public final class LdapClient implements PooledConnection {
             } else if ((seq == LDAP_REP_SEARCH_REF) && isLdapv3) {
 
                 // handle LDAPv3 search reference
-                Vector URLs = new Vector(4);
+                Vector<String> URLs = new Vector<>(4);
 
                 // %%% Although not strictly correct, some LDAP servers
                 //     encode the SEQUENCE OF tag in the SearchResultRef
@@ -676,7 +677,7 @@ public final class LdapClient implements PooledConnection {
                 }
 
                 if (res.referrals == null) {
-                    res.referrals = new Vector(4);
+                    res.referrals = new Vector<>(4);
                 }
                 res.referrals.addElement(URLs);
                 res.resControls = isLdapv3 ? parseControls(replyBer) : null;
@@ -700,7 +701,8 @@ public final class LdapClient implements PooledConnection {
         return res;
     }
 
-    private Attribute parseAttribute(BerDecoder ber, Hashtable binaryAttrs)
+    private Attribute parseAttribute(BerDecoder ber,
+                                     Hashtable<String, Boolean> binaryAttrs)
         throws IOException {
 
         int len[] = new int[1];
@@ -737,13 +739,15 @@ public final class LdapClient implements PooledConnection {
         if (hasBinaryValues) {
             la.add(ber.parseOctetString(ber.peekByte(), len));
         } else {
-            la.add(ber.parseStringWithTag(Ber.ASN_SIMPLE_STRING, isLdapv3, len));
+            la.add(ber.parseStringWithTag(
+                                    Ber.ASN_SIMPLE_STRING, isLdapv3, len));
         }
         return len[0];
     }
 
-    private boolean isBinaryValued(String attrid, Hashtable binaryAttrs) {
-        String id = attrid.toLowerCase();
+    private boolean isBinaryValued(String attrid,
+                                   Hashtable<String, Boolean> binaryAttrs) {
+        String id = attrid.toLowerCase(Locale.ENGLISH);
 
         return ((id.indexOf(";binary") != -1) ||
             defaultBinaryAttrs.containsKey(id) ||
@@ -751,8 +755,8 @@ public final class LdapClient implements PooledConnection {
     }
 
     // package entry point; used by Connection
-    static void parseResult(BerDecoder replyBer, LdapResult res, boolean isLdapv3)
-        throws IOException {
+    static void parseResult(BerDecoder replyBer, LdapResult res,
+            boolean isLdapv3) throws IOException {
 
         res.status = replyBer.parseEnumeration();
         res.matchedDN = replyBer.parseString(isLdapv3);
@@ -763,7 +767,7 @@ public final class LdapClient implements PooledConnection {
             (replyBer.bytesLeft() > 0) &&
             (replyBer.peekByte() == LDAP_REP_REFERRAL)) {
 
-            Vector URLs = new Vector(4);
+            Vector<String> URLs = new Vector<>(4);
             int[] seqlen = new int[1];
 
             replyBer.parseSeq(seqlen);
@@ -775,18 +779,18 @@ public final class LdapClient implements PooledConnection {
             }
 
             if (res.referrals == null) {
-                res.referrals = new Vector(4);
+                res.referrals = new Vector<>(4);
             }
             res.referrals.addElement(URLs);
         }
     }
 
     // package entry point; used by Connection
-    static Vector parseControls(BerDecoder replyBer) throws IOException {
+    static Vector<Control> parseControls(BerDecoder replyBer) throws IOException {
 
         // handle LDAPv3 controls (if present)
         if ((replyBer.bytesLeft() > 0) && (replyBer.peekByte() == LDAP_CONTROLS)) {
-            Vector ctls = new Vector(4);
+            Vector<Control> ctls = new Vector<>(4);
             String controlOID;
             boolean criticality = false; // default
             byte[] controlValue = null;  // optional
@@ -957,7 +961,7 @@ public final class LdapClient implements PooledConnection {
         ber.beginSeq(Ber.ASN_SEQUENCE | Ber.ASN_CONSTRUCTOR);
             ber.encodeString(attr.getID(), isLdapv3);
             ber.beginSeq(Ber.ASN_SEQUENCE | Ber.ASN_CONSTRUCTOR | 1);
-                NamingEnumeration enum_ = attr.getAll();
+                NamingEnumeration<?> enum_ = attr.getAll();
                 Object val;
                 while (enum_.hasMore()) {
                     val = enum_.next();
@@ -1007,9 +1011,10 @@ public final class LdapClient implements PooledConnection {
                 ber.beginSeq(LDAP_REQ_ADD);
                     ber.encodeString(entry.DN, isLdapv3);
                     ber.beginSeq(Ber.ASN_SEQUENCE | Ber.ASN_CONSTRUCTOR);
-                        NamingEnumeration enum_ = entry.attributes.getAll();
+                        NamingEnumeration<? extends Attribute> enum_ =
+                                entry.attributes.getAll();
                         while (enum_.hasMore()) {
-                            attr = (Attribute)enum_.next();
+                            attr = enum_.next();
 
                             // zero values is not permitted
                             if (hasNoValue(attr)) {
@@ -1474,7 +1479,7 @@ public final class LdapClient implements PooledConnection {
     // removeUnsolicited() is invoked to remove an LdapCtx from this client.
     //
     ////////////////////////////////////////////////////////////////////////////
-    private Vector unsolicited = new Vector(3);
+    private Vector<LdapCtx> unsolicited = new Vector<>(3);
     void addUnsolicited(LdapCtx ctx) {
         if (debug > 0) {
             System.err.println("LdapClient.addUnsolicited" + ctx);
@@ -1500,70 +1505,70 @@ public final class LdapClient implements PooledConnection {
         if (debug > 0) {
             System.err.println("LdapClient.processUnsolicited");
         }
-      synchronized (unsolicited) {
-        try {
-            // Parse the response
-            LdapResult res = new LdapResult();
-
-            ber.parseSeq(null); // init seq
-            ber.parseInt();             // msg id; should be 0; ignored
-            if (ber.parseByte() != LDAP_REP_EXTENSION) {
-                throw new IOException(
-                    "Unsolicited Notification must be an Extended Response");
-            }
-            ber.parseLength();
-            parseExtResponse(ber, res);
-
-            if (DISCONNECT_OID.equals(res.extensionId)) {
-                // force closing of connection
-                forceClose(pooled);
-            }
+        synchronized (unsolicited) {
+            try {
+                // Parse the response
+                LdapResult res = new LdapResult();
+
+                ber.parseSeq(null); // init seq
+                ber.parseInt();             // msg id; should be 0; ignored
+                if (ber.parseByte() != LDAP_REP_EXTENSION) {
+                    throw new IOException(
+                        "Unsolicited Notification must be an Extended Response");
+                }
+                ber.parseLength();
+                parseExtResponse(ber, res);
 
-            if (unsolicited.size() > 0) {
-                // Create an UnsolicitedNotification using the parsed data
-                // Need a 'ctx' object because we want to use the context's
-                // list of provider control factories.
-                UnsolicitedNotification notice = new UnsolicitedResponseImpl(
-                    res.extensionId,
-                    res.extensionValue,
-                    res.referrals,
-                    res.status,
-                    res.errorMessage,
-                    res.matchedDN,
-                    (res.resControls != null) ?
-            ((LdapCtx)unsolicited.elementAt(0)).convertControls(res.resControls) :
-                    null);
-
-                // Fire UnsolicitedNotification events to listeners
-                notifyUnsolicited(notice);
-
-                // If "disconnect" notification,
-                // notify unsolicited listeners via NamingException
                 if (DISCONNECT_OID.equals(res.extensionId)) {
-                    notifyUnsolicited(
-                        new CommunicationException("Connection closed"));
+                    // force closing of connection
+                    forceClose(pooled);
                 }
-            }
-        } catch (IOException e) {
-            if (unsolicited.size() == 0)
-                return;  // no one registered; ignore
 
-            NamingException ne = new CommunicationException(
-                "Problem parsing unsolicited notification");
-            ne.setRootCause(e);
+                if (unsolicited.size() > 0) {
+                    // Create an UnsolicitedNotification using the parsed data
+                    // Need a 'ctx' object because we want to use the context's
+                    // list of provider control factories.
+                    UnsolicitedNotification notice = new UnsolicitedResponseImpl(
+                        res.extensionId,
+                        res.extensionValue,
+                        res.referrals,
+                        res.status,
+                        res.errorMessage,
+                        res.matchedDN,
+                        (res.resControls != null) ?
+                        unsolicited.elementAt(0).convertControls(res.resControls) :
+                        null);
+
+                    // Fire UnsolicitedNotification events to listeners
+                    notifyUnsolicited(notice);
+
+                    // If "disconnect" notification,
+                    // notify unsolicited listeners via NamingException
+                    if (DISCONNECT_OID.equals(res.extensionId)) {
+                        notifyUnsolicited(
+                            new CommunicationException("Connection closed"));
+                    }
+                }
+            } catch (IOException e) {
+                if (unsolicited.size() == 0)
+                    return;  // no one registered; ignore
+
+                NamingException ne = new CommunicationException(
+                    "Problem parsing unsolicited notification");
+                ne.setRootCause(e);
 
-            notifyUnsolicited(ne);
+                notifyUnsolicited(ne);
 
-        } catch (NamingException e) {
-            notifyUnsolicited(e);
+            } catch (NamingException e) {
+                notifyUnsolicited(e);
+            }
         }
-      }
     }
 
 
     private void notifyUnsolicited(Object e) {
         for (int i = 0; i < unsolicited.size(); i++) {
-            ((LdapCtx)unsolicited.elementAt(i)).fireUnsolicited(e);
+            unsolicited.elementAt(i).fireUnsolicited(e);
         }
         if (e instanceof NamingException) {
             unsolicited.setSize(0);  // no more listeners after exception
@@ -1584,7 +1589,7 @@ public final class LdapClient implements PooledConnection {
     static LdapClient getInstance(boolean usePool, String hostname, int port,
         String factory, int connectTimeout, int readTimeout, OutputStream trace,
         int version, String authMechanism, Control[] ctls, String protocol,
-        String user, Object passwd, Hashtable env) throws NamingException {
+        String user, Object passwd, Hashtable<?,?> env) throws NamingException {
 
         if (usePool) {
             if (LdapPoolManager.isPoolingAllowed(factory, trace,
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java
index 68b272e..b861ea0 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java
@@ -33,6 +33,7 @@ import javax.naming.ldap.*;
 import javax.naming.ldap.LdapName;
 import javax.naming.ldap.Rdn;
 
+import java.util.Locale;
 import java.util.Vector;
 import java.util.Hashtable;
 import java.util.List;
@@ -223,7 +224,7 @@ final public class LdapCtx extends ComponentDirContext
     String hostname = null;             // host name of server (no brackets
                                         //   for IPv6 literals)
     LdapClient clnt = null;             // connection handle
-    Hashtable envprops = null;          // environment properties of context
+    Hashtable<String, java.lang.Object> envprops = null; // environment properties of context
     int handleReferrals = DEFAULT_REFERRAL_MODE; // how referral is handled
     boolean hasLdapsScheme = false;     // true if the context was created
                                         //  using an LDAPS URL.
@@ -232,7 +233,7 @@ final public class LdapCtx extends ComponentDirContext
 
     String currentDN;                   // DN of this context
     Name currentParsedDN;               // DN of this context
-    Vector respCtls = null;             // Response controls read
+    Vector<Control> respCtls = null;    // Response controls read
     Control[] reqCtls = null;           // Controls to be sent with each request
 
 
@@ -244,14 +245,14 @@ final public class LdapCtx extends ComponentDirContext
     private boolean netscapeSchemaBug = false;       // workaround
     private Control[] bindCtls = null;  // Controls to be sent with LDAP "bind"
     private int referralHopLimit = DEFAULT_REFERRAL_LIMIT;  // max referral
-    private Hashtable schemaTrees = null; // schema root of this context
+    private Hashtable<String, DirContext> schemaTrees = null; // schema root of this context
     private int batchSize = DEFAULT_BATCH_SIZE;      // batch size for search results
     private boolean deleteRDN = DEFAULT_DELETE_RDN;  // delete the old RDN when modifying DN
     private boolean typesOnly = DEFAULT_TYPES_ONLY;  // return attribute types (no values)
     private int derefAliases = DEFAULT_DEREF_ALIASES;// de-reference alias entries during searching
     private char addrEncodingSeparator = DEFAULT_REF_SEPARATOR;  // encoding RefAddr
 
-    private Hashtable binaryAttrs = null;    // attr values returned as byte[]
+    private Hashtable<String, Boolean> binaryAttrs = null; // attr values returned as byte[]
     private int connectTimeout = -1;         // no timeout value
     private int readTimeout = -1;            // no timeout value
     private boolean waitForReply = true;     // wait for search response
@@ -272,13 +273,15 @@ final public class LdapCtx extends ComponentDirContext
 
     // -------------- Constructors  -----------------------------------
 
-    public LdapCtx(String dn, String host, int port_number, Hashtable props,
+    @SuppressWarnings("unchecked")
+    public LdapCtx(String dn, String host, int port_number,
+            Hashtable<?,?> props,
             boolean useSsl) throws NamingException {
 
         this.useSsl = this.hasLdapsScheme = useSsl;
 
         if (props != null) {
-            envprops = (Hashtable) props.clone();
+            envprops = (Hashtable<String, java.lang.Object>) props.clone();
 
             // SSL env prop overrides the useSsl argument
             if ("ssl".equals(envprops.get(Context.SECURITY_PROTOCOL))) {
@@ -310,7 +313,7 @@ final public class LdapCtx extends ComponentDirContext
             this.useDefaultPortNumber = true;
         }
 
-        schemaTrees = new Hashtable(11, 0.75f);
+        schemaTrees = new Hashtable<>(11, 0.75f);
         initEnv();
         try {
             connect(false);
@@ -557,9 +560,7 @@ final public class LdapCtx extends ComponentDirContext
                 if (answer.resControls != null) {
                     respCtls = appendVector(respCtls, answer.resControls);
                 }
-            } catch (NamingException ae) {
-                addEx = ae;
-            } catch (IOException ae) {
+            } catch (NamingException | IOException ae) {
                 addEx = ae;
             }
 
@@ -918,19 +919,17 @@ final public class LdapCtx extends ComponentDirContext
             }
 
             // Parse string name into list of RDNs
-            //List<Rdn> rdnList = (new LdapName(dn)).rdns();
-            List rdnList = (new LdapName(dn)).getRdns();
+            List<Rdn> rdnList = (new LdapName(dn)).getRdns();
 
             // Get leaf RDN
-            //Rdn rdn = rdnList.get(rdnList.size() - 1);
-            Rdn rdn = (Rdn) rdnList.get(rdnList.size() - 1);
+            Rdn rdn = rdnList.get(rdnList.size() - 1);
             Attributes nameAttrs = rdn.toAttributes();
 
             // Add attributes of RDN to attrs if not already there
-            NamingEnumeration enum_ = nameAttrs.getAll();
+            NamingEnumeration<? extends Attribute> enum_ = nameAttrs.getAll();
             Attribute nameAttr;
             while (enum_.hasMore()) {
-                nameAttr = (Attribute) enum_.next();
+                nameAttr = enum_.next();
 
                 // If attrs already has the attribute, don't change or add to it
                 if (attrs.get(nameAttr.getID()) ==  null) {
@@ -961,12 +960,12 @@ final public class LdapCtx extends ComponentDirContext
     }
 
 
-    private static boolean containsIgnoreCase(NamingEnumeration enumStr,
+    private static boolean containsIgnoreCase(NamingEnumeration<String> enumStr,
                                 String str) throws NamingException {
         String strEntry;
 
         while (enumStr.hasMore()) {
-             strEntry = (String) enumStr.next();
+             strEntry = enumStr.next();
              if (strEntry.equalsIgnoreCase(str)) {
                 return true;
              }
@@ -993,7 +992,7 @@ final public class LdapCtx extends ComponentDirContext
      * Append the the second Vector onto the first Vector
      * (v2 must be non-null)
      */
-    private static Vector appendVector(Vector v1, Vector v2) {
+    private static <T> Vector<T> appendVector(Vector<T> v1, Vector<T> v2) {
         if (v1 == null) {
             v1 = v2;
         } else {
@@ -1038,10 +1037,10 @@ final public class LdapCtx extends ComponentDirContext
                 // found it but got no attributes
                 attrs = new BasicAttributes(LdapClient.caseIgnore);
             } else {
-                LdapEntry entry = (LdapEntry)answer.entries.elementAt(0);
+                LdapEntry entry = answer.entries.elementAt(0);
                 attrs = entry.attributes;
 
-                Vector entryCtls = entry.respCtls; // retrieve entry controls
+                Vector<Control> entryCtls = entry.respCtls; // retrieve entry controls
                 if (entryCtls != null) {
                     appendVector(respCtls, entryCtls); // concatenate controls
                 }
@@ -1097,7 +1096,7 @@ final public class LdapCtx extends ComponentDirContext
         }
     }
 
-    protected NamingEnumeration c_list(Name name, Continuation cont)
+    protected NamingEnumeration<NameClassPair> c_list(Name name, Continuation cont)
             throws NamingException {
         SearchControls cons = new SearchControls();
         String[] classAttrs = new String[2];
@@ -1170,7 +1169,7 @@ final public class LdapCtx extends ComponentDirContext
         }
     }
 
-    protected NamingEnumeration c_listBindings(Name name, Continuation cont)
+    protected NamingEnumeration<Binding> c_listBindings(Name name, Continuation cont)
             throws NamingException {
 
         SearchControls cons = new SearchControls();
@@ -1198,7 +1197,7 @@ final public class LdapCtx extends ComponentDirContext
 
             // process the referrals sequentially
             while (true) {
-
+                @SuppressWarnings("unchecked")
                 LdapReferralContext refCtx =
                     (LdapReferralContext)e.getReferralContext(envprops, bindCtls);
 
@@ -1220,16 +1219,14 @@ final public class LdapCtx extends ComponentDirContext
             LdapBindingEnumeration res =
                 new LdapBindingEnumeration(this, answer, name, cont);
 
-            res.setNamingException(
-                    (LimitExceededException)cont.fillInException(e));
+            res.setNamingException(cont.fillInException(e));
             return res;
 
         } catch (PartialResultException e) {
             LdapBindingEnumeration res =
                 new LdapBindingEnumeration(this, answer, name, cont);
 
-            res.setNamingException(
-                    (PartialResultException)cont.fillInException(e));
+            res.setNamingException(cont.fillInException(e));
             return res;
 
         } catch (NamingException e) {
@@ -1337,9 +1334,9 @@ final public class LdapCtx extends ComponentDirContext
             }
 
             // get attributes from result
-            LdapEntry entry = (LdapEntry) answer.entries.elementAt(0);
+            LdapEntry entry = answer.entries.elementAt(0);
 
-            Vector entryCtls = entry.respCtls; // retrieve entry controls
+            Vector<Control> entryCtls = entry.respCtls; // retrieve entry controls
             if (entryCtls != null) {
                 appendVector(respCtls, entryCtls); // concatenate controls
             }
@@ -1398,10 +1395,10 @@ final public class LdapCtx extends ComponentDirContext
             int[] jmods = new int[attrs.size()];
             Attribute[] jattrs = new Attribute[attrs.size()];
 
-            NamingEnumeration ae = attrs.getAll();
+            NamingEnumeration<? extends Attribute> ae = attrs.getAll();
             for(int i = 0; i < jmods.length && ae.hasMore(); i++) {
                 jmods[i] = jmod_op;
-                jattrs[i] = (Attribute)ae.next();
+                jattrs[i] = ae.next();
             }
 
             LdapResult answer = clnt.modify(newDN, jmods, jattrs, reqCtls);
@@ -1565,7 +1562,7 @@ final public class LdapCtx extends ComponentDirContext
             HierMemDirCtx objectClassCtx = new HierMemDirCtx();
             DirContext objectClassDef;
             String objectClassName;
-            for (Enumeration objectClasses = objectClassAttr.getAll();
+            for (Enumeration<?> objectClasses = objectClassAttr.getAll();
                 objectClasses.hasMoreElements(); ) {
                 objectClassName = (String)objectClasses.nextElement();
                 // %%% Should we fail if not found, or just continue?
@@ -1591,7 +1588,7 @@ final public class LdapCtx extends ComponentDirContext
     private DirContext getSchemaTree(Name name) throws NamingException {
         String subschemasubentry = getSchemaEntry(name, true);
 
-        DirContext schemaTree = (DirContext)schemaTrees.get(subschemasubentry);
+        DirContext schemaTree = schemaTrees.get(subschemasubentry);
 
         if(schemaTree==null) {
             if(debug){System.err.println("LdapCtx: building new schema tree " + this);}
@@ -1621,7 +1618,7 @@ final public class LdapCtx extends ComponentDirContext
                 false /*deref link */ );
 
         Name sse = (new CompositeName()).add(subschemasubentry);
-        NamingEnumeration results =
+        NamingEnumeration<SearchResult> results =
             searchAux(sse, "(objectClass=subschema)", constraints,
             false, true, new Continuation());
 
@@ -1629,7 +1626,7 @@ final public class LdapCtx extends ComponentDirContext
             throw new OperationNotSupportedException(
                 "Cannot get read subschemasubentry: " + subschemasubentry);
         }
-        SearchResult result = (SearchResult)results.next();
+        SearchResult result = results.next();
         results.close();
 
         Object obj = result.getObject();
@@ -1674,7 +1671,7 @@ final public class LdapCtx extends ComponentDirContext
             false /* returning obj */,
             false /* deref link */);
 
-        NamingEnumeration results;
+        NamingEnumeration<SearchResult> results;
         try {
             results = searchAux(name, "objectclass=*", constraints, relative,
                 true, new Continuation());
@@ -1695,7 +1692,7 @@ final public class LdapCtx extends ComponentDirContext
                 "Requesting schema of nonexistent entry: " + name);
         }
 
-        SearchResult result = (SearchResult) results.next();
+        SearchResult result = results.next();
         results.close();
 
         Attribute schemaEntryAttr =
@@ -1720,7 +1717,7 @@ final public class LdapCtx extends ComponentDirContext
     // Set attributes to point to this context in case some one
     // asked for their schema
     void setParents(Attributes attrs, Name name) throws NamingException {
-        NamingEnumeration ae = attrs.getAll();
+        NamingEnumeration<? extends Attribute> ae = attrs.getAll();
         while(ae.hasMore()) {
             ((LdapAttribute) ae.next()).setParent(this, name);
         }
@@ -1740,14 +1737,14 @@ final public class LdapCtx extends ComponentDirContext
     }
 
    // --------------------- Searches -----------------------------
-    protected NamingEnumeration c_search(Name name,
+    protected NamingEnumeration<SearchResult> c_search(Name name,
                                          Attributes matchingAttributes,
                                          Continuation cont)
             throws NamingException {
         return c_search(name, matchingAttributes, null, cont);
     }
 
-    protected NamingEnumeration c_search(Name name,
+    protected NamingEnumeration<SearchResult> c_search(Name name,
                                          Attributes matchingAttributes,
                                          String[] attributesToReturn,
                                          Continuation cont)
@@ -1764,7 +1761,7 @@ final public class LdapCtx extends ComponentDirContext
         return c_search(name, filter, cons, cont);
     }
 
-    protected NamingEnumeration c_search(Name name,
+    protected NamingEnumeration<SearchResult> c_search(Name name,
                                          String filter,
                                          SearchControls cons,
                                          Continuation cont)
@@ -1773,7 +1770,7 @@ final public class LdapCtx extends ComponentDirContext
                  waitForReply, cont);
     }
 
-    protected NamingEnumeration c_search(Name name,
+    protected NamingEnumeration<SearchResult> c_search(Name name,
                                          String filterExpr,
                                          Object[] filterArgs,
                                          SearchControls cons,
@@ -1790,7 +1787,7 @@ final public class LdapCtx extends ComponentDirContext
     }
 
         // Used by NamingNotifier
-    NamingEnumeration searchAux(Name name,
+    NamingEnumeration<SearchResult> searchAux(Name name,
         String filter,
         SearchControls cons,
         boolean relative,
@@ -1849,7 +1846,8 @@ final public class LdapCtx extends ComponentDirContext
                 processReturnCode(answer, name);
             }
             return new LdapSearchEnumeration(this, answer,
-                fullyQualifiedName(name), args, cont);
+                                             fullyQualifiedName(name),
+                                             args, cont);
 
         } catch (LdapReferralException e) {
             if (handleReferrals == LdapClient.LDAP_REF_THROW)
@@ -1858,8 +1856,9 @@ final public class LdapCtx extends ComponentDirContext
             // process the referrals sequentially
             while (true) {
 
-                LdapReferralContext refCtx =
-                    (LdapReferralContext)e.getReferralContext(envprops, bindCtls);
+                @SuppressWarnings("unchecked")
+                LdapReferralContext refCtx = (LdapReferralContext)
+                        e.getReferralContext(envprops, bindCtls);
 
                 // repeat the original operation at the new context
                 try {
@@ -2143,16 +2142,18 @@ final public class LdapCtx extends ComponentDirContext
     /**
      * Override with noncloning version.
      */
-    protected Hashtable p_getEnvironment() {
+    protected Hashtable<String, Object> p_getEnvironment() {
         return envprops;
     }
 
-    public Hashtable getEnvironment() throws NamingException {
+    @SuppressWarnings("unchecked") // clone()
+    public Hashtable<String, Object> getEnvironment() throws NamingException {
         return (envprops == null
-                ? new Hashtable(5, 0.75f)
-                : (Hashtable)envprops.clone());
+                ? new Hashtable<String, Object>(5, 0.75f)
+                : (Hashtable<String, Object>)envprops.clone());
     }
 
+    @SuppressWarnings("unchecked") // clone()
     public Object removeFromEnvironment(String propName)
         throws NamingException {
 
@@ -2160,58 +2161,74 @@ final public class LdapCtx extends ComponentDirContext
         if (envprops == null || envprops.get(propName) == null) {
             return null;
         }
+        switch (propName) {
+            case REF_SEPARATOR:
+                addrEncodingSeparator = DEFAULT_REF_SEPARATOR;
+                break;
+            case TYPES_ONLY:
+                typesOnly = DEFAULT_TYPES_ONLY;
+                break;
+            case DELETE_RDN:
+                deleteRDN = DEFAULT_DELETE_RDN;
+                break;
+            case DEREF_ALIASES:
+                derefAliases = DEFAULT_DEREF_ALIASES;
+                break;
+            case Context.BATCHSIZE:
+                batchSize = DEFAULT_BATCH_SIZE;
+                break;
+            case REFERRAL_LIMIT:
+                referralHopLimit = DEFAULT_REFERRAL_LIMIT;
+                break;
+            case Context.REFERRAL:
+                setReferralMode(null, true);
+                break;
+            case BINARY_ATTRIBUTES:
+                setBinaryAttributes(null);
+                break;
+            case CONNECT_TIMEOUT:
+                connectTimeout = -1;
+                break;
+            case READ_TIMEOUT:
+                readTimeout = -1;
+                break;
+            case WAIT_FOR_REPLY:
+                waitForReply = true;
+                break;
+            case REPLY_QUEUE_SIZE:
+                replyQueueSize = -1;
+                break;
 
-        if (propName.equals(REF_SEPARATOR)) {
-            addrEncodingSeparator = DEFAULT_REF_SEPARATOR;
-        } else if (propName.equals(TYPES_ONLY)) {
-            typesOnly = DEFAULT_TYPES_ONLY;
-        } else if (propName.equals(DELETE_RDN)) {
-            deleteRDN = DEFAULT_DELETE_RDN;
-        } else if (propName.equals(DEREF_ALIASES)) {
-            derefAliases = DEFAULT_DEREF_ALIASES;
-        } else if (propName.equals(Context.BATCHSIZE)) {
-            batchSize = DEFAULT_BATCH_SIZE;
-        } else if (propName.equals(REFERRAL_LIMIT)) {
-            referralHopLimit = DEFAULT_REFERRAL_LIMIT;
-        } else if (propName.equals(Context.REFERRAL)) {
-            setReferralMode(null, true);
-        } else if (propName.equals(BINARY_ATTRIBUTES)) {
-            setBinaryAttributes(null);
-        } else if (propName.equals(CONNECT_TIMEOUT)) {
-            connectTimeout = -1;
-        } else if (propName.equals(READ_TIMEOUT)) {
-            readTimeout = -1;
-        } else if (propName.equals(WAIT_FOR_REPLY)) {
-            waitForReply = true;
-        } else if (propName.equals(REPLY_QUEUE_SIZE)) {
-            replyQueueSize = -1;
-
-// The following properties affect the connection
-
-        } else if (propName.equals(Context.SECURITY_PROTOCOL)) {
-            closeConnection(SOFT_CLOSE);
-            // De-activate SSL and reset the context's url and port number
-            if (useSsl && !hasLdapsScheme) {
-                useSsl = false;
-                url = null;
-                if (useDefaultPortNumber) {
-                    port_number = DEFAULT_PORT;
+            // The following properties affect the connection
+
+            case Context.SECURITY_PROTOCOL:
+                closeConnection(SOFT_CLOSE);
+                // De-activate SSL and reset the context's url and port number
+                if (useSsl && !hasLdapsScheme) {
+                    useSsl = false;
+                    url = null;
+                    if (useDefaultPortNumber) {
+                        port_number = DEFAULT_PORT;
+                    }
                 }
-            }
-        } else if (propName.equals(VERSION) ||
-            propName.equals(SOCKET_FACTORY)) {
-            closeConnection(SOFT_CLOSE);
-        } else if(propName.equals(Context.SECURITY_AUTHENTICATION) ||
-            propName.equals(Context.SECURITY_PRINCIPAL) ||
-            propName.equals(Context.SECURITY_CREDENTIALS)) {
-            sharable = false;
+                break;
+            case VERSION:
+            case SOCKET_FACTORY:
+                closeConnection(SOFT_CLOSE);
+                break;
+            case Context.SECURITY_AUTHENTICATION:
+            case Context.SECURITY_PRINCIPAL:
+            case Context.SECURITY_CREDENTIALS:
+                sharable = false;
+                break;
         }
 
         // Update environment; reconnection will use new props
-        envprops = (Hashtable)envprops.clone();
+        envprops = (Hashtable<String, Object>)envprops.clone();
         return envprops.remove(propName);
     }
 
+    @SuppressWarnings("unchecked") // clone()
     public Object addToEnvironment(String propName, Object propVal)
         throws NamingException {
 
@@ -2219,57 +2236,72 @@ final public class LdapCtx extends ComponentDirContext
             if (propVal == null) {
                 return removeFromEnvironment(propName);
             }
+            switch (propName) {
+                case REF_SEPARATOR:
+                    setRefSeparator((String)propVal);
+                    break;
+                case TYPES_ONLY:
+                    setTypesOnly((String)propVal);
+                    break;
+                case DELETE_RDN:
+                    setDeleteRDN((String)propVal);
+                    break;
+                case DEREF_ALIASES:
+                    setDerefAliases((String)propVal);
+                    break;
+                case Context.BATCHSIZE:
+                    setBatchSize((String)propVal);
+                    break;
+                case REFERRAL_LIMIT:
+                    setReferralLimit((String)propVal);
+                    break;
+                case Context.REFERRAL:
+                    setReferralMode((String)propVal, true);
+                    break;
+                case BINARY_ATTRIBUTES:
+                    setBinaryAttributes((String)propVal);
+                    break;
+                case CONNECT_TIMEOUT:
+                    setConnectTimeout((String)propVal);
+                    break;
+                case READ_TIMEOUT:
+                    setReadTimeout((String)propVal);
+                    break;
+                case WAIT_FOR_REPLY:
+                    setWaitForReply((String)propVal);
+                    break;
+                case REPLY_QUEUE_SIZE:
+                    setReplyQueueSize((String)propVal);
+                    break;
 
-            if (propName.equals(REF_SEPARATOR)) {
-                setRefSeparator((String)propVal);
-            } else if (propName.equals(TYPES_ONLY)) {
-                setTypesOnly((String)propVal);
-            } else if (propName.equals(DELETE_RDN)) {
-                setDeleteRDN((String)propVal);
-            } else if (propName.equals(DEREF_ALIASES)) {
-                setDerefAliases((String)propVal);
-            } else if (propName.equals(Context.BATCHSIZE)) {
-                setBatchSize((String)propVal);
-            } else if (propName.equals(REFERRAL_LIMIT)) {
-                setReferralLimit((String)propVal);
-            } else if (propName.equals(Context.REFERRAL)) {
-                setReferralMode((String)propVal, true);
-            } else if (propName.equals(BINARY_ATTRIBUTES)) {
-                setBinaryAttributes((String)propVal);
-            } else if (propName.equals(CONNECT_TIMEOUT)) {
-                setConnectTimeout((String)propVal);
-            } else if (propName.equals(READ_TIMEOUT)) {
-                setReadTimeout((String)propVal);
-            } else if (propName.equals(WAIT_FOR_REPLY)) {
-                setWaitForReply((String)propVal);
-            } else if (propName.equals(REPLY_QUEUE_SIZE)) {
-                setReplyQueueSize((String)propVal);
-
-// The following properties affect the connection
-
-            } else if (propName.equals(Context.SECURITY_PROTOCOL)) {
-                closeConnection(SOFT_CLOSE);
-                // Activate SSL and reset the context's url and port number
-                if ("ssl".equals(propVal)) {
-                    useSsl = true;
-                    url = null;
-                    if (useDefaultPortNumber) {
-                        port_number = DEFAULT_SSL_PORT;
+            // The following properties affect the connection
+
+                case Context.SECURITY_PROTOCOL:
+                    closeConnection(SOFT_CLOSE);
+                    // Activate SSL and reset the context's url and port number
+                    if ("ssl".equals(propVal)) {
+                        useSsl = true;
+                        url = null;
+                        if (useDefaultPortNumber) {
+                            port_number = DEFAULT_SSL_PORT;
+                        }
                     }
-                }
-            } else if (propName.equals(VERSION) ||
-                propName.equals(SOCKET_FACTORY)) {
-                closeConnection(SOFT_CLOSE);
-            } else if (propName.equals(Context.SECURITY_AUTHENTICATION) ||
-                propName.equals(Context.SECURITY_PRINCIPAL) ||
-                propName.equals(Context.SECURITY_CREDENTIALS)) {
-                sharable = false;
+                    break;
+                case VERSION:
+                case SOCKET_FACTORY:
+                    closeConnection(SOFT_CLOSE);
+                    break;
+                case Context.SECURITY_AUTHENTICATION:
+                case Context.SECURITY_PRINCIPAL:
+                case Context.SECURITY_CREDENTIALS:
+                    sharable = false;
+                    break;
             }
 
             // Update environment; reconnection will use new props
             envprops = (envprops == null
-                ? new Hashtable(5, 0.75f)
-                : (Hashtable)envprops.clone());
+                ? new Hashtable<String, Object>(5, 0.75f)
+                : (Hashtable<String, Object>)envprops.clone());
             return envprops.put(propName, propVal);
     }
 
@@ -2380,15 +2412,19 @@ final public class LdapCtx extends ComponentDirContext
     private void setReferralMode(String ref, boolean update) {
         // First determine the referral mode
         if (ref != null) {
-            if (ref.equals("follow")) {
-                handleReferrals = LdapClient.LDAP_REF_FOLLOW;
-            } else if (ref.equals("throw")) {
-                handleReferrals = LdapClient.LDAP_REF_THROW;
-            } else if (ref.equals("ignore")) {
-                handleReferrals = LdapClient.LDAP_REF_IGNORE;
-            } else {
-                throw new IllegalArgumentException(
-                    "Illegal value for " + Context.REFERRAL + " property.");
+            switch (ref) {
+                case "follow":
+                    handleReferrals = LdapClient.LDAP_REF_FOLLOW;
+                    break;
+                case "throw":
+                    handleReferrals = LdapClient.LDAP_REF_THROW;
+                    break;
+                case "ignore":
+                    handleReferrals = LdapClient.LDAP_REF_IGNORE;
+                    break;
+                default:
+                    throw new IllegalArgumentException(
+                        "Illegal value for " + Context.REFERRAL + " property.");
             }
         } else {
             handleReferrals = DEFAULT_REFERRAL_MODE;
@@ -2411,17 +2447,22 @@ final public class LdapCtx extends ComponentDirContext
      */
     private void setDerefAliases(String deref) {
         if (deref != null) {
-            if (deref.equals("never")) {
-                derefAliases = 0; // never de-reference aliases
-            } else if (deref.equals("searching")) {
-                derefAliases = 1; // de-reference aliases during searching
-            } else if (deref.equals("finding")) {
-                derefAliases = 2; // de-reference during name resolution
-            } else if (deref.equals("always")) {
-                derefAliases = 3; // always de-reference aliases
-            } else {
-                throw new IllegalArgumentException("Illegal value for " +
-                    DEREF_ALIASES + " property.");
+            switch (deref) {
+                case "never":
+                    derefAliases = 0; // never de-reference aliases
+                    break;
+                case "searching":
+                    derefAliases = 1; // de-reference aliases during searching
+                    break;
+                case "finding":
+                    derefAliases = 2; // de-reference during name resolution
+                    break;
+                case "always":
+                    derefAliases = 3; // always de-reference aliases
+                    break;
+                default:
+                    throw new IllegalArgumentException("Illegal value for " +
+                        DEREF_ALIASES + " property.");
             }
         } else {
             derefAliases = DEFAULT_DEREF_ALIASES;
@@ -2514,8 +2555,10 @@ final public class LdapCtx extends ComponentDirContext
      *     <ldapurls>   ::= <separator> <ldapurl> | <ldapurls>
      *     <separator>  ::= ASCII linefeed character (0x0a)
      *     <ldapurl>    ::= LDAP URL format (RFC 1959)
+     *
+     * Returns a Vector of single-String Vectors.
      */
-    private static Vector extractURLs(String refString) {
+    private static Vector<Vector<String>> extractURLs(String refString) {
 
         int separator = 0;
         int urlCount = 0;
@@ -2526,17 +2569,21 @@ final public class LdapCtx extends ComponentDirContext
             urlCount++;
         }
 
-        Vector referrals = new Vector(urlCount);
+        Vector<Vector<String>> referrals = new Vector<>(urlCount);
         int iURL;
         int i = 0;
 
         separator = refString.indexOf('\n');
         iURL = separator + 1;
         while ((separator = refString.indexOf('\n', iURL)) >= 0) {
-            referrals.addElement(refString.substring(iURL, separator));
+            Vector<String> referral = new Vector<>(1);
+            referral.addElement(refString.substring(iURL, separator));
+            referrals.addElement(referral);
             iURL = separator + 1;
         }
-        referrals.addElement(refString.substring(iURL));
+        Vector<String> referral = new Vector<>(1);
+        referral.addElement(refString.substring(iURL));
+        referrals.addElement(referral);
 
         return referrals;
     }
@@ -2549,9 +2596,9 @@ final public class LdapCtx extends ComponentDirContext
         if (attrIds == null) {
             binaryAttrs = null;
         } else {
-            binaryAttrs = new Hashtable(11, 0.75f);
+            binaryAttrs = new Hashtable<>(11, 0.75f);
             StringTokenizer tokens =
-                new StringTokenizer(attrIds.toLowerCase(), " ");
+                new StringTokenizer(attrIds.toLowerCase(Locale.ENGLISH), " ");
 
             while (tokens.hasMoreTokens()) {
                 binaryAttrs.put(tokens.nextToken(), Boolean.TRUE);
@@ -2601,11 +2648,12 @@ final public class LdapCtx extends ComponentDirContext
 */
     }
 
+    @SuppressWarnings("unchecked") // clone()
     public void reconnect(Control[] connCtls) throws NamingException {
         // Update environment
         envprops = (envprops == null
-                ? new Hashtable(5, 0.75f)
-                : (Hashtable)envprops.clone());
+                ? new Hashtable<String, Object>(5, 0.75f)
+                : (Hashtable<String, Object>)envprops.clone());
 
         if (connCtls == null) {
             envprops.remove(BIND_CONTROLS);
@@ -2631,7 +2679,7 @@ final public class LdapCtx extends ComponentDirContext
                 }
 
                 // reset the cache before a new connection is established
-                schemaTrees = new Hashtable(11, 0.75f);
+                schemaTrees = new Hashtable<>(11, 0.75f);
                 connect(startTLS);
 
             } else if (!sharable || startTLS) {
@@ -2644,7 +2692,7 @@ final public class LdapCtx extends ComponentDirContext
                     }
                 }
                 // reset the cache before a new connection is established
-                schemaTrees = new Hashtable(11, 0.75f);
+                schemaTrees = new Hashtable<>(11, 0.75f);
                 connect(startTLS);
             }
 
@@ -2846,7 +2894,7 @@ final public class LdapCtx extends ComponentDirContext
     }
 
     protected void processReturnCode(LdapResult res, Name resolvedName,
-        Object resolvedObj, Name remainName, Hashtable envprops, String fullDN)
+        Object resolvedObj, Name remainName, Hashtable<?,?> envprops, String fullDN)
     throws NamingException {
 
         String msg = LdapClient.getErrorMessage(res.status, res.errorMessage);
@@ -2880,7 +2928,7 @@ final public class LdapCtx extends ComponentDirContext
                     r = new LdapReferralException(resolvedName, resolvedObj,
                         remainName, msg, envprops, fullDN, handleReferrals,
                         reqCtls);
-                    r.setReferralInfo((Vector)res.referrals.elementAt(i), true);
+                    r.setReferralInfo(res.referrals.elementAt(i), true);
 
                     if (hopCount > 1) {
                         r.setHopCount(hopCount);
@@ -2927,7 +2975,7 @@ final public class LdapCtx extends ComponentDirContext
             r = new LdapReferralException(resolvedName, resolvedObj, remainName,
                 msg, envprops, fullDN, handleReferrals, reqCtls);
             // only one set of URLs is present
-            r.setReferralInfo((Vector)res.referrals.elementAt(0), false);
+            r.setReferralInfo(res.referrals.elementAt(0), false);
 
             if (hopCount > 1) {
                 r.setHopCount(hopCount);
@@ -2995,10 +3043,10 @@ final public class LdapCtx extends ComponentDirContext
              *     If 1 referral and 0 entries is received then
              *     assume name resolution has not yet completed.
              */
-            if (((res.entries == null) || (res.entries.size() == 0)) &&
+            if (((res.entries == null) || (res.entries.isEmpty())) &&
                 (res.referrals.size() == 1)) {
 
-                r.setReferralInfo((Vector)res.referrals, false);
+                r.setReferralInfo(res.referrals, false);
 
                 // check the hop limit
                 if (hopCount > referralHopLimit) {
@@ -3284,9 +3332,9 @@ final public class LdapCtx extends ComponentDirContext
 
     /**
      * Narrow controls using own default factory and ControlFactory.
-     * @param ctls A non-null Vector
+     * @param ctls A non-null Vector<Control>
      */
-    Control[] convertControls(Vector ctls) throws NamingException {
+    Control[] convertControls(Vector<Control> ctls) throws NamingException {
         int count = ctls.size();
 
         if (count == 0) {
@@ -3298,12 +3346,12 @@ final public class LdapCtx extends ComponentDirContext
         for (int i = 0; i < count; i++) {
             // Try own factory first
             controls[i] = myResponseControlFactory.getControlInstance(
-                (Control)ctls.elementAt(i));
+                ctls.elementAt(i));
 
             // Try assigned factories if own produced null
             if (controls[i] == null) {
                 controls[i] = ControlFactory.getControlInstance(
-                (Control)ctls.elementAt(i), this, envprops);
+                ctls.elementAt(i), this, envprops);
             }
         }
         return controls;
@@ -3448,7 +3496,7 @@ final public class LdapCtx extends ComponentDirContext
             if (nm.size() > 1) {
                 throw new InvalidNameException(
                     "Target cannot span multiple namespaces: " + nm);
-            } else if (nm.size() == 0) {
+            } else if (nm.isEmpty()) {
                 return "";
             } else {
                 return nm.get(0);
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java
index 7e18fe6..d6ab731 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,6 @@ package com.sun.jndi.ldap;
 import java.util.Hashtable;
 import java.util.Vector;
 import java.util.Enumeration;
-import java.net.MalformedURLException;
 
 import javax.naming.*;
 import javax.naming.directory.*;
@@ -119,9 +118,9 @@ final public class LdapCtxFactory implements ObjectFactory, InitialContextFactor
         int size = 0;   // number of URLs
         String[] urls = new String[ref.size()];
 
-        Enumeration addrs = ref.getAll();
+        Enumeration<RefAddr> addrs = ref.getAll();
         while (addrs.hasMoreElements()) {
-            RefAddr addr = (RefAddr)addrs.nextElement();
+            RefAddr addr = addrs.nextElement();
 
             if ((addr instanceof StringRefAddr) &&
                 addr.getType().equals(ADDRESS_TYPE)) {
@@ -145,7 +144,7 @@ final public class LdapCtxFactory implements ObjectFactory, InitialContextFactor
 
     // ------------ Utilities used by other classes ----------------
 
-    public static DirContext getLdapCtxInstance(Object urlInfo, Hashtable env)
+    public static DirContext getLdapCtxInstance(Object urlInfo, Hashtable<?,?> env)
             throws NamingException {
 
         if (urlInfo instanceof String) {
@@ -158,7 +157,7 @@ final public class LdapCtxFactory implements ObjectFactory, InitialContextFactor
         }
     }
 
-    private static DirContext getUsingURL(String url, Hashtable env)
+    private static DirContext getUsingURL(String url, Hashtable<?,?> env)
             throws NamingException {
         DirContext ctx = null;
         LdapURL ldapUrl = new LdapURL(url);
@@ -202,7 +201,7 @@ final public class LdapCtxFactory implements ObjectFactory, InitialContextFactor
      * If all URLs fail, throw one of the exceptions arbitrarily.
      * Not pretty, but potentially more informative than returning null.
      */
-    private static DirContext getUsingURLs(String[] urls, Hashtable env)
+    private static DirContext getUsingURLs(String[] urls, Hashtable<?,?> env)
             throws NamingException {
         NamingException ne = null;
         DirContext ctx = null;
@@ -221,8 +220,8 @@ final public class LdapCtxFactory implements ObjectFactory, InitialContextFactor
     /**
      * Used by Obj and obj/RemoteToAttrs too so must be public
      */
-    public static Attribute createTypeNameAttr(Class cl) {
-        Vector v = new Vector(10);
+    public static Attribute createTypeNameAttr(Class<?> cl) {
+        Vector<String> v = new Vector<>(10);
         String[] types = getTypeNames(cl, v);
         if (types.length > 0) {
             BasicAttribute tAttr =
@@ -235,7 +234,7 @@ final public class LdapCtxFactory implements ObjectFactory, InitialContextFactor
         return null;
     }
 
-    private static String[] getTypeNames(Class currentClass, Vector v) {
+    private static String[] getTypeNames(Class<?> currentClass, Vector<String> v) {
 
         getClassesAux(currentClass, v);
         Class[] members = currentClass.getInterfaces();
@@ -244,13 +243,14 @@ final public class LdapCtxFactory implements ObjectFactory, InitialContextFactor
         }
         String[] ret = new String[v.size()];
         int i = 0;
-        for (java.util.Enumeration e = v.elements(); e.hasMoreElements();) {
-            ret[i++] = (String)e.nextElement();
+
+        for (String name : v) {
+            ret[i++] = name;
         }
         return ret;
     }
 
-    private static void getClassesAux(Class currentClass, Vector v) {
+    private static void getClassesAux(Class<?> currentClass, Vector<String> v) {
         if (!v.contains(currentClass.getName())) {
             v.addElement(currentClass.getName());
         }
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapEntry.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapEntry.java
index 495137f..0cec2b5 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapEntry.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapEntry.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@ package com.sun.jndi.ldap;
 
 import java.util.Vector;
 import javax.naming.directory.Attributes;
-import javax.naming.directory.Attribute;
+import javax.naming.ldap.Control;
 
 /**
   * A holder for an LDAP entry read from an LDAP server.
@@ -38,14 +38,14 @@ import javax.naming.directory.Attribute;
 final class LdapEntry {
     String DN;
     Attributes attributes;
-    Vector respCtls = null;
+    Vector<Control> respCtls = null;
 
     LdapEntry(String DN, Attributes attrs) {
         this.DN = DN;
         this.attributes = attrs;
     }
 
-    LdapEntry(String DN, Attributes attrs, Vector respCtls) {
+    LdapEntry(String DN, Attributes attrs, Vector<Control> respCtls) {
         this.DN = DN;
         this.attributes = attrs;
         this.respCtls = respCtls;
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java
index 11445ab..5e2ec66 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@ package com.sun.jndi.ldap;
 
 import java.util.Enumeration;
 import java.util.Vector;
+import java.util.Locale;
 
 import javax.naming.*;
 import javax.naming.directory.Attributes;
@@ -78,7 +79,7 @@ import javax.naming.directory.BasicAttributes;
 public final class LdapName implements Name {
 
     private transient String unparsed;  // if non-null, the DN in unparsed form
-    private transient Vector rdns;      // parsed name components
+    private transient Vector<Rdn> rdns;      // parsed name components
     private transient boolean valuesCaseSensitive = false;
 
     /**
@@ -97,9 +98,10 @@ public final class LdapName implements Name {
      * Constructs an LDAP name given its parsed components and, optionally
      * (if "name" is not null), the unparsed DN.
      */
-    private LdapName(String name, Vector rdns) {
+    @SuppressWarnings("unchecked") // clone()
+    private LdapName(String name, Vector<Rdn> rdns) {
         unparsed = name;
-        this.rdns = (Vector)rdns.clone();
+        this.rdns = (Vector<Rdn>)rdns.clone();
     }
 
     /*
@@ -107,9 +109,9 @@ public final class LdapName implements Name {
      * of "rdns" in the range [beg,end)) and, optionally
      * (if "name" is not null), the unparsed DN.
      */
-    private LdapName(String name, Vector rdns, int beg, int end) {
+    private LdapName(String name, Vector<Rdn> rdns, int beg, int end) {
         unparsed = name;
-        this.rdns = new Vector();
+        this.rdns = new Vector<>();
         for (int i = beg; i < end; i++) {
             this.rdns.addElement(rdns.elementAt(i));
         }
@@ -130,7 +132,7 @@ public final class LdapName implements Name {
             if (i < rdns.size() - 1) {
                 buf.append(',');
             }
-            Rdn rdn = (Rdn)rdns.elementAt(i);
+            Rdn rdn = rdns.elementAt(i);
             buf.append(rdn);
         }
 
@@ -155,8 +157,8 @@ public final class LdapName implements Name {
         int minSize = Math.min(rdns.size(), that.rdns.size());
         for (int i = 0 ; i < minSize; i++) {
             // Compare a single pair of RDNs.
-            Rdn rdn1 = (Rdn)rdns.elementAt(i);
-            Rdn rdn2 = (Rdn)that.rdns.elementAt(i);
+            Rdn rdn1 = rdns.elementAt(i);
+            Rdn rdn2 = that.rdns.elementAt(i);
 
             int diff = rdn1.compareTo(rdn2);
             if (diff != 0) {
@@ -172,7 +174,7 @@ public final class LdapName implements Name {
 
         // For each RDN...
         for (int i = 0; i < rdns.size(); i++) {
-            Rdn rdn = (Rdn)rdns.elementAt(i);
+            Rdn rdn = rdns.elementAt(i);
             hash += rdn.hashCode();
         }
         return hash;
@@ -186,14 +188,14 @@ public final class LdapName implements Name {
         return rdns.isEmpty();
     }
 
-    public Enumeration getAll() {
-        final Enumeration enum_ = rdns.elements();
+    public Enumeration<String> getAll() {
+        final Enumeration<Rdn> enum_ = rdns.elements();
 
-        return new Enumeration () {
+        return new Enumeration<String>() {
             public boolean hasMoreElements() {
                 return enum_.hasMoreElements();
             }
-            public Object nextElement() {
+            public String nextElement() {
                 return enum_.nextElement().toString();
             }
         };
@@ -254,7 +256,7 @@ public final class LdapName implements Name {
             Rdn rdn;
             if (n instanceof LdapName) {
                 LdapName ln = (LdapName)n;
-                rdn = (Rdn)ln.rdns.elementAt(i - beg);
+                rdn = ln.rdns.elementAt(i - beg);
             } else {
                 String rdnString = n.get(i - beg);
                 try {
@@ -286,9 +288,9 @@ public final class LdapName implements Name {
                 rdns.insertElementAt(s.rdns.elementAt(i), pos++);
             }
         } else {
-            Enumeration comps = suffix.getAll();
+            Enumeration<String> comps = suffix.getAll();
             while (comps.hasMoreElements()) {
-                DnParser p = new DnParser((String)comps.nextElement(),
+                DnParser p = new DnParser(comps.nextElement(),
                     valuesCaseSensitive);
                 rdns.insertElementAt(p.getRdn(), pos++);
             }
@@ -406,9 +408,9 @@ public final class LdapName implements Name {
         /*
          * Parses the DN, returning a Vector of its RDNs.
          */
-        Vector getDn() throws InvalidNameException {
+        Vector<Rdn> getDn() throws InvalidNameException {
             cur = 0;
-            Vector rdns = new Vector(len / 3 + 10);  // leave room for growth
+            Vector<Rdn> rdns = new Vector<>(len / 3 + 10);  // leave room for growth
 
             if (len == 0) {
                 return rdns;
@@ -595,7 +597,7 @@ public final class LdapName implements Name {
          * A vector of the TypeAndValue elements of this Rdn.
          * It is sorted to facilitate set operations.
          */
-        private final Vector tvs = new Vector();
+        private final Vector<TypeAndValue> tvs = new Vector<>();
 
         void add(TypeAndValue tv) {
 
@@ -636,7 +638,7 @@ public final class LdapName implements Name {
             int minSize = Math.min(tvs.size(), that.tvs.size());
             for (int i = 0; i < minSize; i++) {
                 // Compare a single pair of type/value pairs.
-                TypeAndValue tv = (TypeAndValue)tvs.elementAt(i);
+                TypeAndValue tv = tvs.elementAt(i);
                 int diff = tv.compareTo(that.tvs.elementAt(i));
                 if (diff != 0) {
                     return diff;
@@ -662,7 +664,7 @@ public final class LdapName implements Name {
             Attribute attr;
 
             for (int i = 0; i < tvs.size(); i++) {
-                tv = (TypeAndValue) tvs.elementAt(i);
+                tv = tvs.elementAt(i);
                 if ((attr = attrs.get(tv.getType())) == null) {
                     attrs.put(tv.getType(), tv.getUnescapedValue());
                 } else {
@@ -706,7 +708,7 @@ public final class LdapName implements Name {
 
             TypeAndValue that = (TypeAndValue)obj;
 
-            int diff = type.toUpperCase().compareTo(that.type.toUpperCase());
+            int diff = type.compareToIgnoreCase(that.type);
             if (diff != 0) {
                 return diff;
             }
@@ -729,7 +731,7 @@ public final class LdapName implements Name {
 
         public int hashCode() {
             // If two objects are equal, their hash codes must match.
-            return (type.toUpperCase().hashCode() +
+            return (type.toUpperCase(Locale.ENGLISH).hashCode() +
                     getValueComparable().hashCode());
         }
 
@@ -763,11 +765,12 @@ public final class LdapName implements Name {
 
             // cache result
             if (binary) {
-                comparable = value.toUpperCase();
+                comparable = value.toUpperCase(Locale.ENGLISH);
             } else {
                 comparable = (String)unescapeValue(value);
                 if (!valueCaseSensitive) {
-                    comparable = comparable.toUpperCase(); // ignore case
+                    // ignore case
+                    comparable = comparable.toUpperCase(Locale.ENGLISH);
                 }
             }
             return comparable;
@@ -835,7 +838,7 @@ public final class LdapName implements Name {
                 buf.append(Character.forDigit(0xF & b, 16));
             }
 
-            return (new String(buf)).toUpperCase();
+            return (new String(buf)).toUpperCase(Locale.ENGLISH);
         }
 
         /*
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapNamingEnumeration.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapNamingEnumeration.java
index 05a5d18..422ce79 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapNamingEnumeration.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapNamingEnumeration.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,267 +27,25 @@ package com.sun.jndi.ldap;
 
 import javax.naming.*;
 import javax.naming.directory.*;
-import javax.naming.spi.*;
 
 import com.sun.jndi.toolkit.ctx.Continuation;
-import java.util.NoSuchElementException;
 import java.util.Vector;
-import javax.naming.ldap.LdapName;
+import javax.naming.ldap.Control;
 
-/**
-  * Basic enumeration for NameClassPair, Binding, and SearchResults.
-  */
 
-class LdapNamingEnumeration implements NamingEnumeration, ReferralEnumeration {
-    protected Name listArg;
-
-    private boolean cleaned = false;
-    private LdapResult res;
-    private LdapClient enumClnt;
-    private Continuation cont;  // used to fill in exceptions
-    private Vector entries = null;
-    private int limit = 0;
-    private int posn = 0;
-    protected LdapCtx homeCtx;
-    private LdapReferralException refEx = null;
-    private NamingException errEx = null;
+final class LdapNamingEnumeration
+        extends AbstractLdapNamingEnumeration<NameClassPair> {
 
     private static final String defaultClassName = DirContext.class.getName();
 
-    /*
-     * Record the next set of entries and/or referrals.
-     */
     LdapNamingEnumeration(LdapCtx homeCtx, LdapResult answer, Name listArg,
-        Continuation cont) throws NamingException {
-
-            // These checks are to accommodate referrals and limit exceptions
-            // which will generate an enumeration and defer the exception
-            // to be thrown at the end of the enumeration.
-            // All other exceptions are thrown immediately.
-            // Exceptions shouldn't be thrown here anyhow because
-            // process_return_code() is called before the constructor
-            // is called, so these are just safety checks.
-
-            if ((answer.status != LdapClient.LDAP_SUCCESS) &&
-                (answer.status != LdapClient.LDAP_SIZE_LIMIT_EXCEEDED) &&
-                (answer.status != LdapClient.LDAP_TIME_LIMIT_EXCEEDED) &&
-                (answer.status != LdapClient.LDAP_ADMIN_LIMIT_EXCEEDED) &&
-                (answer.status != LdapClient.LDAP_REFERRAL) &&
-                (answer.status != LdapClient.LDAP_PARTIAL_RESULTS)) {
-
-                // %%% need to deal with referral
-                NamingException e = new NamingException(
-                                    LdapClient.getErrorMessage(
-                                    answer.status, answer.errorMessage));
-
-                throw cont.fillInException(e);
-            }
-
-            // otherwise continue
-
-            res = answer;
-            entries = answer.entries;
-            limit = (entries == null) ? 0 : entries.size(); // handle empty set
-            this.listArg = listArg;
-            this.cont = cont;
-
-            if (answer.refEx != null) {
-                refEx = answer.refEx;
-            }
-
-            // Ensures that context won't get closed from underneath us
-            this.homeCtx = homeCtx;
-            homeCtx.incEnumCount();
-            enumClnt = homeCtx.clnt; // remember
-    }
-
-    public Object nextElement() {
-        try {
-            return next();
-        } catch (NamingException e) {
-            // can't throw exception
-            cleanup();
-            return null;
-        }
-    }
-
-    public boolean hasMoreElements() {
-        try {
-            return hasMore();
-        } catch (NamingException e) {
-            // can't throw exception
-            cleanup();
-            return false;
-        }
-    }
-
-    /*
-     * Retrieve the next set of entries and/or referrals.
-     */
-    private void getNextBatch() throws NamingException {
-
-        res = homeCtx.getSearchReply(enumClnt, res);
-        if (res == null) {
-            limit = posn = 0;
-            return;
-        }
-
-        entries = res.entries;
-        limit = (entries == null) ? 0 : entries.size(); // handle empty set
-        posn = 0; // reset
-
-        // mimimize the number of calls to processReturnCode()
-        // (expensive when batchSize is small and there are many results)
-        if ((res.status != LdapClient.LDAP_SUCCESS) ||
-            ((res.status == LdapClient.LDAP_SUCCESS) &&
-                (res.referrals != null))) {
-
-            try {
-                // convert referrals into a chain of LdapReferralException
-                homeCtx.processReturnCode(res, listArg);
-
-            } catch (LimitExceededException e) {
-                setNamingException(e);
-
-            } catch (PartialResultException e) {
-                setNamingException(e);
-            }
-        }
-
-        // merge any newly received referrals with any current referrals
-        if (res.refEx != null) {
-            if (refEx == null) {
-                refEx = res.refEx;
-            } else {
-                refEx = refEx.appendUnprocessedReferrals(res.refEx);
-            }
-            res.refEx = null; // reset
-        }
-
-        if (res.resControls != null) {
-            homeCtx.respCtls = res.resControls;
-        }
-    }
-
-    private boolean more = true;  // assume we have something to start with
-    private boolean hasMoreCalled = false;
-
-    /*
-     * Test if unprocessed entries or referrals exist.
-     */
-    public boolean hasMore() throws NamingException {
-
-        if (hasMoreCalled) {
-            return more;
-        }
-
-        hasMoreCalled = true;
-
-        if (!more) {
-            return false;
-        } else {
-            return (more = hasMoreImpl());
-        }
-    }
-
-    /*
-     * Retrieve the next entry.
-     */
-    public Object next() throws NamingException {
-
-        if (!hasMoreCalled) {
-            hasMore();
-        }
-        hasMoreCalled = false;
-        return nextImpl();
-    }
-
-    /*
-     * Test if unprocessed entries or referrals exist.
-     */
-    private boolean hasMoreImpl() throws NamingException {
-        // when page size is supported, this
-        // might generate an exception while attempting
-        // to fetch the next batch to determine
-        // whether there are any more elements
-
-        // test if the current set of entries has been processed
-        if (posn == limit) {
-            getNextBatch();
-        }
-
-        // test if any unprocessed entries exist
-        if (posn < limit) {
-            return true;
-        } else {
-
-            try {
-                // try to process another referral
-                return hasMoreReferrals();
-
-            } catch (LdapReferralException e) {
-                cleanup();
-                throw e;
-
-            } catch (LimitExceededException e) {
-                cleanup();
-                throw e;
-
-            } catch (PartialResultException e) {
-                cleanup();
-                throw e;
-
-            } catch (NamingException e) {
-                cleanup();
-                PartialResultException pre = new PartialResultException();
-                pre.setRootCause(e);
-                throw pre;
-            }
-        }
-    }
-
-    /*
-     * Retrieve the next entry.
-     */
-    private Object nextImpl() throws NamingException {
-        try {
-            return nextAux();
-        } catch (NamingException e) {
-            cleanup();
-            throw cont.fillInException(e);
-        }
-    }
-
-    private Object nextAux() throws NamingException {
-        if (posn == limit) {
-            getNextBatch();  // updates posn and limit
-        }
-
-        if (posn >= limit) {
-            cleanup();
-            throw new NoSuchElementException("invalid enumeration handle");
-        }
-
-        LdapEntry result = (LdapEntry)entries.elementAt(posn++);
-
-        // gets and outputs DN from the entry
-        return createItem(result.DN, result.attributes, result.respCtls);
-    }
-
-    protected String getAtom(String dn) {
-        String atom;
-        // need to strip off all but lowest component of dn
-        // so that is relative to current context (currentDN)
-        try {
-            Name parsed = new LdapName(dn);
-            return parsed.get(parsed.size() - 1);
-        } catch (NamingException e) {
-            return dn;
-        }
+                                 Continuation cont) throws NamingException {
+        super(homeCtx, answer, listArg, cont);
     }
 
+    @Override
     protected NameClassPair createItem(String dn, Attributes attrs,
-        Vector respCtls) throws NamingException {
+            Vector<Control> respCtls) throws NamingException {
 
         Attribute attr;
         String className = null;
@@ -313,128 +71,10 @@ class LdapNamingEnumeration implements NamingEnumeration, ReferralEnumeration {
         return ncp;
     }
 
-    /*
-     * Append the supplied (chain of) referrals onto the
-     * end of the current (chain of) referrals.
-     */
-    public void appendUnprocessedReferrals(LdapReferralException ex) {
-
-        if (refEx != null) {
-            refEx = refEx.appendUnprocessedReferrals(ex);
-        } else {
-            refEx = ex.appendUnprocessedReferrals(refEx);
-        }
-    }
-
-    void setNamingException(NamingException e) {
-        errEx = e;
-    }
-
-    protected LdapNamingEnumeration
-    getReferredResults(LdapReferralContext refCtx) throws NamingException {
+    @Override
+    protected LdapNamingEnumeration getReferredResults(
+            LdapReferralContext refCtx) throws NamingException {
         // repeat the original operation at the new context
         return (LdapNamingEnumeration)refCtx.list(listArg);
     }
-
-    /*
-     * Iterate through the URLs of a referral. If successful then perform
-     * a search operation and merge the received results with the current
-     * results.
-     */
-    protected boolean hasMoreReferrals() throws NamingException {
-
-        if ((refEx != null) &&
-            (refEx.hasMoreReferrals() ||
-             refEx.hasMoreReferralExceptions())) {
-
-            if (homeCtx.handleReferrals == LdapClient.LDAP_REF_THROW) {
-                throw (NamingException)(refEx.fillInStackTrace());
-            }
-
-            // process the referrals sequentially
-            while (true) {
-
-                LdapReferralContext refCtx =
-                    (LdapReferralContext)refEx.getReferralContext(
-                    homeCtx.envprops, homeCtx.reqCtls);
-
-                try {
-
-                    update(getReferredResults(refCtx));
-                    break;
-
-                } catch (LdapReferralException re) {
-
-                    // record a previous exception
-                    if (errEx == null) {
-                        errEx = re.getNamingException();
-                    }
-                    refEx = re;
-                    continue;
-
-                } finally {
-                    // Make sure we close referral context
-                    refCtx.close();
-                }
-            }
-            return hasMoreImpl();
-
-        } else {
-            cleanup();
-
-            if (errEx != null) {
-                throw errEx;
-            }
-            return (false);
-        }
-    }
-
-    /*
-     * Merge the entries and/or referrals from the supplied enumeration
-     * with those of the current enumeration.
-     */
-    protected void update(LdapNamingEnumeration ne) {
-        // Cleanup previous context first
-        homeCtx.decEnumCount();
-
-        // New enum will have already incremented enum count and recorded clnt
-        homeCtx = ne.homeCtx;
-        enumClnt = ne.enumClnt;
-
-        // Do this to prevent referral enumeration (ne) from decrementing
-        // enum count because we'll be doing that here from this
-        // enumeration.
-        ne.homeCtx = null;
-
-        // Record rest of information from new enum
-        posn = ne.posn;
-        limit = ne.limit;
-        res = ne.res;
-        entries = ne.entries;
-        refEx = ne.refEx;
-        listArg = ne.listArg;
-    }
-
-    protected void finalize() {
-        cleanup();
-    }
-
-    protected void cleanup() {
-        if (cleaned) return; // been there; done that
-
-        if(enumClnt != null) {
-            enumClnt.clearSearchReply(res, homeCtx.reqCtls);
-        }
-
-        enumClnt = null;
-        cleaned = true;
-        if (homeCtx != null) {
-            homeCtx.decEnumCount();
-            homeCtx = null;
-        }
-    }
-
-    public void close() {
-        cleanup();
-    }
 }
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapPoolManager.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapPoolManager.java
index f51d92c..b401c02 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapPoolManager.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapPoolManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@ package com.sun.jndi.ldap;
 import java.io.PrintStream;
 import java.io.OutputStream;
 import java.util.Hashtable;
+import java.util.Locale;
 import java.util.StringTokenizer;
 
 import javax.naming.ldap.Control;
@@ -133,7 +134,7 @@ public final class LdapPoolManager {
         String mech;
         int p;
         for (int i = 0; i < count; i++) {
-            mech = parser.nextToken().toLowerCase();
+            mech = parser.nextToken().toLowerCase(Locale.ENGLISH);
             if (mech.equals("anonymous")) {
                 mech = "none";
             }
@@ -214,7 +215,7 @@ public final class LdapPoolManager {
      *
      */
     static boolean isPoolingAllowed(String socketFactory, OutputStream trace,
-        String authMech, String protocol, Hashtable env)
+        String authMech, String protocol, Hashtable<?,?> env)
                 throws NamingException {
 
         if (trace != null && !debug
@@ -235,7 +236,7 @@ public final class LdapPoolManager {
         if ((socketFactory != null) &&
              !socketFactory.equals(LdapCtx.DEFAULT_SSL_FACTORY)) {
             try {
-                Class socketFactoryClass = Obj.helper.loadClass(socketFactory);
+                Class<?> socketFactoryClass = Obj.helper.loadClass(socketFactory);
                 Class[] interfaces = socketFactoryClass.getInterfaces();
                 for (int i = 0; i < interfaces.length; i++) {
                     if (interfaces[i].getCanonicalName().equals(COMPARATOR)) {
@@ -294,7 +295,7 @@ public final class LdapPoolManager {
     static LdapClient getLdapClient(String host, int port, String socketFactory,
         int connTimeout, int readTimeout, OutputStream trace, int version,
         String authMech, Control[] ctls, String protocol, String user,
-        Object passwd, Hashtable env) throws NamingException {
+        Object passwd, Hashtable<?,?> env) throws NamingException {
 
         // Create base identity for LdapClient
         ClientId id = null;
@@ -385,9 +386,9 @@ public final class LdapPoolManager {
 
     private static final String getProperty(final String propName,
         final String defVal) {
-        return (String) AccessController.doPrivileged(
-            new PrivilegedAction() {
-            public Object run() {
+        return AccessController.doPrivileged(
+            new PrivilegedAction<String>() {
+            public String run() {
                 try {
                     return System.getProperty(propName, defVal);
                 } catch (SecurityException e) {
@@ -399,9 +400,9 @@ public final class LdapPoolManager {
 
     private static final int getInteger(final String propName,
         final int defVal) {
-        Integer val = (Integer) AccessController.doPrivileged(
-            new PrivilegedAction() {
-            public Object run() {
+        Integer val = AccessController.doPrivileged(
+            new PrivilegedAction<Integer>() {
+            public Integer run() {
                 try {
                     return Integer.getInteger(propName, defVal);
                 } catch (SecurityException e) {
@@ -414,9 +415,9 @@ public final class LdapPoolManager {
 
     private static final long getLong(final String propName,
         final long defVal) {
-        Long val = (Long) AccessController.doPrivileged(
-            new PrivilegedAction() {
-            public Object run() {
+        Long val = AccessController.doPrivileged(
+            new PrivilegedAction<Long>() {
+            public Long run() {
                 try {
                     return Long.getLong(propName, defVal);
                 } catch (SecurityException e) {
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralContext.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralContext.java
index 068314c..0a09e0f 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -52,7 +52,9 @@ final class LdapReferralContext implements DirContext, LdapContext {
     private int hopCount = 1;
     private NamingException previousEx = null;
 
-    LdapReferralContext(LdapReferralException ex, Hashtable env,
+    @SuppressWarnings("unchecked") // clone()
+    LdapReferralContext(LdapReferralException ex,
+        Hashtable<?,?> env,
         Control[] connCtls,
         Control[] reqCtls,
         String nextName,
@@ -69,20 +71,21 @@ final class LdapReferralContext implements DirContext, LdapContext {
 
         // Make copies of environment and connect controls for our own use.
         if (env != null) {
-            env = (Hashtable) env.clone();
+            env = (Hashtable<?,?>) env.clone();
             // Remove old connect controls from environment, unless we have new
             // ones that will override them anyway.
             if (connCtls == null) {
                 env.remove(LdapCtx.BIND_CONTROLS);
             }
         } else if (connCtls != null) {
-            env = new Hashtable(5);
+            env = new Hashtable<String, Control[]>(5);
         }
         if (connCtls != null) {
             Control[] copiedCtls = new Control[connCtls.length];
             System.arraycopy(connCtls, 0, copiedCtls, 0, connCtls.length);
             // Add copied controls to environment, replacing any old ones.
-            env.put(LdapCtx.BIND_CONTROLS, copiedCtls);
+            ((Hashtable<? super String, ? super Control[]>)env)
+                    .put(LdapCtx.BIND_CONTROLS, copiedCtls);
         }
 
         while (true) {
@@ -260,24 +263,26 @@ final class LdapReferralContext implements DirContext, LdapContext {
         refCtx.rename(overrideName(oldName), toName(refEx.getNewRdn()));
     }
 
-    public NamingEnumeration list(String name) throws NamingException {
+    public NamingEnumeration<NameClassPair> list(String name) throws NamingException {
         return list(toName(name));
     }
 
-    public NamingEnumeration list(Name name) throws NamingException {
+    @SuppressWarnings("unchecked")
+    public NamingEnumeration<NameClassPair> list(Name name) throws NamingException {
         if (skipThisReferral) {
             throw (NamingException)
                 ((refEx.appendUnprocessedReferrals(null)).fillInStackTrace());
         }
         try {
-            NamingEnumeration ne = null;
+            NamingEnumeration<NameClassPair> ne = null;
 
             if (urlScope != null && urlScope.equals("base")) {
                 SearchControls cons = new SearchControls();
                 cons.setReturningObjFlag(true);
                 cons.setSearchScope(SearchControls.OBJECT_SCOPE);
 
-                ne = refCtx.search(overrideName(name), "(objectclass=*)", cons);
+                ne = (NamingEnumeration)
+                        refCtx.search(overrideName(name), "(objectclass=*)", cons);
 
             } else {
                 ne = refCtx.list(overrideName(name));
@@ -318,25 +323,29 @@ final class LdapReferralContext implements DirContext, LdapContext {
         }
     }
 
-    public NamingEnumeration listBindings(String name) throws NamingException {
+    public NamingEnumeration<Binding> listBindings(String name) throws
+            NamingException {
         return listBindings(toName(name));
     }
 
-    public NamingEnumeration listBindings(Name name) throws NamingException {
+    @SuppressWarnings("unchecked")
+    public NamingEnumeration<Binding> listBindings(Name name) throws
+            NamingException {
         if (skipThisReferral) {
             throw (NamingException)
                 ((refEx.appendUnprocessedReferrals(null)).fillInStackTrace());
         }
 
         try {
-            NamingEnumeration be = null;
+            NamingEnumeration<Binding> be = null;
 
             if (urlScope != null && urlScope.equals("base")) {
                 SearchControls cons = new SearchControls();
                 cons.setReturningObjFlag(true);
                 cons.setSearchScope(SearchControls.OBJECT_SCOPE);
 
-                be = refCtx.search(overrideName(name), "(objectclass=*)", cons);
+                be = (NamingEnumeration)refCtx.search(overrideName(name),
+                        "(objectclass=*)", cons);
 
             } else {
                 be = refCtx.listBindings(overrideName(name));
@@ -347,7 +356,7 @@ final class LdapReferralContext implements DirContext, LdapContext {
             // append (referrals from) the exception that generated this
             // context to the new search results, so that referral processing
             // can continue
-            ((ReferralEnumeration)be).appendUnprocessedReferrals(refEx);
+            ((ReferralEnumeration<Binding>)be).appendUnprocessedReferrals(refEx);
 
             return (be);
 
@@ -462,7 +471,7 @@ final class LdapReferralContext implements DirContext, LdapContext {
         return refCtx.removeFromEnvironment(propName);
     }
 
-    public Hashtable getEnvironment() throws NamingException {
+    public Hashtable<?,?> getEnvironment() throws NamingException {
         if (skipThisReferral) {
             throw (NamingException)
                 ((refEx.appendUnprocessedReferrals(null)).fillInStackTrace());
@@ -602,23 +611,23 @@ final class LdapReferralContext implements DirContext, LdapContext {
       return refCtx.getSchemaClassDefinition(overrideName(name));
     }
 
-    public NamingEnumeration search(String name,
-                                    Attributes matchingAttributes)
+    public NamingEnumeration<SearchResult> search(String name,
+                                                  Attributes matchingAttributes)
             throws NamingException {
         return search(toName(name), SearchFilter.format(matchingAttributes),
             new SearchControls());
     }
 
-    public NamingEnumeration search(Name name,
-                                    Attributes matchingAttributes)
+    public NamingEnumeration<SearchResult> search(Name name,
+                                                  Attributes matchingAttributes)
             throws NamingException {
         return search(name, SearchFilter.format(matchingAttributes),
             new SearchControls());
     }
 
-    public NamingEnumeration search(String name,
-                                    Attributes matchingAttributes,
-                                    String[] attributesToReturn)
+    public NamingEnumeration<SearchResult> search(String name,
+                                                  Attributes matchingAttributes,
+                                                  String[] attributesToReturn)
             throws NamingException {
         SearchControls cons = new SearchControls();
         cons.setReturningAttributes(attributesToReturn);
@@ -627,9 +636,9 @@ final class LdapReferralContext implements DirContext, LdapContext {
             cons);
     }
 
-    public NamingEnumeration search(Name name,
-                                    Attributes matchingAttributes,
-                                    String[] attributesToReturn)
+    public NamingEnumeration<SearchResult> search(Name name,
+                                                  Attributes matchingAttributes,
+                                                  String[] attributesToReturn)
             throws NamingException {
         SearchControls cons = new SearchControls();
         cons.setReturningAttributes(attributesToReturn);
@@ -637,15 +646,15 @@ final class LdapReferralContext implements DirContext, LdapContext {
         return search(name, SearchFilter.format(matchingAttributes), cons);
     }
 
-    public NamingEnumeration search(String name,
-                                    String filter,
-                                    SearchControls cons)
+    public NamingEnumeration<SearchResult> search(String name,
+                                                  String filter,
+                                                  SearchControls cons)
             throws NamingException {
         return search(toName(name), filter, cons);
     }
 
-    public NamingEnumeration search(Name name,
-                                    String filter,
+    public NamingEnumeration<SearchResult> search(Name name,
+                                                  String filter,
         SearchControls cons) throws NamingException {
 
         if (skipThisReferral) {
@@ -654,8 +663,10 @@ final class LdapReferralContext implements DirContext, LdapContext {
         }
 
         try {
-            NamingEnumeration se = refCtx.search(overrideName(name),
-                overrideFilter(filter), overrideAttributesAndScope(cons));
+            NamingEnumeration<SearchResult> se =
+                    refCtx.search(overrideName(name),
+                                  overrideFilter(filter),
+                                  overrideAttributesAndScope(cons));
 
             refEx.setNameResolved(true);
 
@@ -694,15 +705,15 @@ final class LdapReferralContext implements DirContext, LdapContext {
         }
     }
 
-    public NamingEnumeration search(String name,
-                                    String filterExpr,
-                                    Object[] filterArgs,
-                                    SearchControls cons)
+    public NamingEnumeration<SearchResult> search(String name,
+                                                  String filterExpr,
+                                                  Object[] filterArgs,
+                                                  SearchControls cons)
             throws NamingException {
         return search(toName(name), filterExpr, filterArgs, cons);
     }
 
-    public NamingEnumeration search(Name name,
+    public NamingEnumeration<SearchResult> search(Name name,
         String filterExpr,
         Object[] filterArgs,
         SearchControls cons) throws NamingException {
@@ -713,7 +724,7 @@ final class LdapReferralContext implements DirContext, LdapContext {
         }
 
         try {
-            NamingEnumeration se;
+            NamingEnumeration<SearchResult> se;
 
             if (urlFilter != null) {
                 se = refCtx.search(overrideName(name), urlFilter,
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java
index 92d6b50..53783ad 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
 package com.sun.jndi.ldap;
 
 import javax.naming.*;
-import javax.naming.spi.*;
 import javax.naming.ldap.Control;
 
 import java.util.Hashtable;
@@ -67,15 +66,16 @@ import java.util.Vector;
   */
 final public class LdapReferralException extends
     javax.naming.ldap.LdapReferralException {
+    private static final long serialVersionUID = 627059076356906399L;
 
         // ----------- fields initialized in constructor ---------------
     private int handleReferrals;
-    private Hashtable envprops;
+    private Hashtable<?,?> envprops;
     private String nextName;
     private Control[] reqCtls;
 
         // ----------- fields that have defaults -----------------------
-    private Vector referrals = null;    // alternatives,set by setReferralInfo()
+    private Vector<?> referrals = null; // alternatives,set by setReferralInfo()
     private int referralIndex = 0;      // index into referrals
     private int referralCount = 0;      // count of referrals
     private boolean foundEntry = false; // will stop when entry is found
@@ -98,7 +98,7 @@ final public class LdapReferralException extends
         Object resolvedObj,
         Name remainingName,
         String explanation,
-        Hashtable envprops,
+        Hashtable<?,?> envprops,
         String nextName,
         int handleReferrals,
         Control[] reqCtls) {
@@ -210,7 +210,7 @@ final public class LdapReferralException extends
     /**
      * Sets referral information.
      */
-    void setReferralInfo(Vector referrals, boolean continuationRef) {
+    void setReferralInfo(Vector<?> referrals, boolean continuationRef) {
         // %%% continuationRef is currently ignored
 
         if (debug)
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapResult.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapResult.java
index b923b1a..532d024 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapResult.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapResult.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@ package com.sun.jndi.ldap;
 import java.util.Vector;
 import javax.naming.directory.Attributes;
 import javax.naming.directory.BasicAttributes;
+import javax.naming.ldap.Control;
 
 /**
   * %%% public for use by LdapSasl %%%
@@ -37,10 +38,11 @@ public final class LdapResult {
     public int status;                  // %%% public for use by LdapSasl
     String matchedDN;
     String errorMessage;
-    Vector referrals = null;
+    // Vector<String | Vector<String>>
+    Vector<Vector<String>> referrals = null;
     LdapReferralException refEx = null;
-    Vector entries = null;
-    Vector resControls = null;
+    Vector<LdapEntry> entries = null;
+    Vector<Control> resControls = null;
     public byte[] serverCreds = null;   // %%% public for use by LdapSasl
     String extensionId = null;          // string OID
     byte[] extensionValue = null;       // BER OCTET STRING
@@ -57,7 +59,7 @@ public final class LdapResult {
         switch (status) {
             case LdapClient.LDAP_COMPARE_TRUE:
                 status = LdapClient.LDAP_SUCCESS;
-                entries = new Vector(1,1);
+                entries = new Vector<>(1,1);
                 Attributes attrs = new BasicAttributes(LdapClient.caseIgnore);
                 LdapEntry entry = new LdapEntry( name, attrs );
                 entries.addElement(entry);
@@ -66,7 +68,7 @@ public final class LdapResult {
 
             case LdapClient.LDAP_COMPARE_FALSE:
                 status = LdapClient.LDAP_SUCCESS;
-                entries = new Vector(0);
+                entries = new Vector<>(0);
                 successful = true;
                 break;
 
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaCtx.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaCtx.java
index 64d4a60..3fdf358 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaCtx.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaCtx.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -61,8 +61,9 @@ final class LdapSchemaCtx extends HierMemDirCtx {
 
     private int objectType;
 
-    static DirContext createSchemaTree(Hashtable env, String subschemasubentry,
-        LdapCtx schemaEntry, Attributes schemaAttrs, boolean netscapeBug)
+    static DirContext createSchemaTree(Hashtable<String,Object> env,
+            String subschemasubentry, LdapCtx schemaEntry,
+            Attributes schemaAttrs, boolean netscapeBug)
         throws NamingException {
             try {
                 LdapSchemaParser parser = new LdapSchemaParser(netscapeBug);
@@ -71,7 +72,7 @@ final class LdapSchemaCtx extends HierMemDirCtx {
                     schemaEntry, parser);
 
                 LdapSchemaCtx root = new LdapSchemaCtx(SCHEMA_ROOT, env, allinfo);
-                parser.LDAP2JNDISchema(schemaAttrs, root);
+                LdapSchemaParser.LDAP2JNDISchema(schemaAttrs, root);
                 return root;
             } catch (NamingException e) {
                 schemaEntry.close(); // cleanup
@@ -80,7 +81,8 @@ final class LdapSchemaCtx extends HierMemDirCtx {
     }
 
     // Called by createNewCtx
-    private LdapSchemaCtx(int objectType, Hashtable environment, SchemaInfo info) {
+    private LdapSchemaCtx(int objectType, Hashtable<String,Object> environment,
+                          SchemaInfo info) {
         super(environment, LdapClient.caseIgnore);
 
         this.objectType = objectType;
@@ -223,9 +225,9 @@ final class LdapSchemaCtx extends HierMemDirCtx {
     final private static Attributes deepClone(Attributes orig)
         throws NamingException {
         BasicAttributes copy = new BasicAttributes(true);
-        NamingEnumeration attrs = orig.getAll();
+        NamingEnumeration<? extends Attribute> attrs = orig.getAll();
         while (attrs.hasMore()) {
-            copy.put((Attribute)((Attribute)attrs.next()).clone());
+            copy.put((Attribute)attrs.next().clone());
         }
         return copy;
     }
@@ -409,13 +411,14 @@ final class LdapSchemaCtx extends HierMemDirCtx {
             }
         }
 
-        private LdapCtx reopenEntry(Hashtable env) throws NamingException {
+        private LdapCtx reopenEntry(Hashtable<?,?> env) throws NamingException {
             // Use subschemasubentry name as DN
             return new LdapCtx(schemaEntryName, host, port,
                                 env, hasLdapsScheme);
         }
 
-        synchronized void modifyAttributes(Hashtable env, ModificationItem[] mods)
+        synchronized void modifyAttributes(Hashtable<?,?> env,
+                                           ModificationItem[] mods)
             throws NamingException {
             if (schemaEntry == null) {
                 schemaEntry = reopenEntry(env);
@@ -423,7 +426,7 @@ final class LdapSchemaCtx extends HierMemDirCtx {
             schemaEntry.modifyAttributes("", mods);
         }
 
-        synchronized void modifyAttributes(Hashtable env, int mod,
+        synchronized void modifyAttributes(Hashtable<?,?> env, int mod,
             Attributes attrs) throws NamingException {
             if (schemaEntry == null) {
                 schemaEntry = reopenEntry(env);
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java
index 3696a96..7804314 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@ package com.sun.jndi.ldap;
 
 import javax.naming.*;
 import javax.naming.directory.*;
-import java.util.Hashtable;
 import java.util.Vector;
 
 /**
@@ -141,9 +140,9 @@ final class LdapSchemaParser {
                                                    LdapSchemaCtx schemaRoot)
         throws NamingException {
 
-        NamingEnumeration       objDescs;
-        Attributes      objDef;
-        LdapSchemaCtx   classDefTree;
+        NamingEnumeration<?> objDescs;
+        Attributes                objDef;
+        LdapSchemaCtx             classDefTree;
 
         // create the class def subtree
         Attributes attrs = new BasicAttributes(LdapClient.caseIgnore);
@@ -173,9 +172,9 @@ final class LdapSchemaParser {
                                                 LdapSchemaCtx schemaRoot)
         throws NamingException {
 
-        NamingEnumeration       attrDescs;
-        Attributes      attrDef;
-        LdapSchemaCtx   attrDefTree;
+        NamingEnumeration<?> attrDescs;
+        Attributes           attrDef;
+        LdapSchemaCtx        attrDefTree;
 
         // create the AttributeDef subtree
         Attributes attrs = new BasicAttributes(LdapClient.caseIgnore);
@@ -206,9 +205,9 @@ final class LdapSchemaParser {
                                                 LdapSchemaCtx schemaRoot)
         throws NamingException {
 
-        NamingEnumeration       syntaxDescs;
-        Attributes      syntaxDef;
-        LdapSchemaCtx   syntaxDefTree;
+        NamingEnumeration<?> syntaxDescs;
+        Attributes           syntaxDef;
+        LdapSchemaCtx        syntaxDefTree;
 
         // create the SyntaxDef subtree
         Attributes attrs = new BasicAttributes(LdapClient.caseIgnore);
@@ -239,9 +238,9 @@ final class LdapSchemaParser {
                                                 LdapSchemaCtx schemaRoot)
         throws NamingException {
 
-        NamingEnumeration       matchRuleDescs;
-        Attributes      matchRuleDef;
-        LdapSchemaCtx   matchRuleDefTree;
+        NamingEnumeration<?> matchRuleDescs;
+        Attributes           matchRuleDef;
+        LdapSchemaCtx        matchRuleDefTree;
 
         // create the MatchRuleDef subtree
         Attributes attrs = new BasicAttributes(LdapClient.caseIgnore);
@@ -519,8 +518,8 @@ final class LdapSchemaParser {
     final private static String[] readQDescrList(String string, int[] pos)
         throws NamingException {
 
-        int     begin, end;
-        Vector  values = new Vector(5);
+        int begin, end;
+        Vector<String> values = new Vector<>(5);
 
         if (debug) {
             System.err.println("ReadQDescrList: pos="+pos[0]);
@@ -553,7 +552,7 @@ final class LdapSchemaParser {
 
         String[] answer = new String[values.size()];
         for (int i = 0; i < answer.length; i++) {
-            answer[i] = (String)values.elementAt(i);
+            answer[i] = values.elementAt(i);
         }
         return answer;
     }
@@ -614,7 +613,7 @@ final class LdapSchemaParser {
 
         int     begin, cur, end;
         String  oidName = null;
-        Vector  values = new Vector(5);
+        Vector<String> values = new Vector<>(5);
 
         if (debug) {
             System.err.println("ReadOIDList: pos="+pos[0]);
@@ -663,7 +662,7 @@ final class LdapSchemaParser {
 
         String[] answer = new String[values.size()];
         for (int i = 0; i < answer.length; i++) {
-            answer[i] = (String)values.elementAt(i);
+            answer[i] = values.elementAt(i);
         }
         return answer;
     }
@@ -843,10 +842,10 @@ final class LdapSchemaParser {
             String attrId = null;
 
             // use enumeration because attribute ID is not known
-            for (NamingEnumeration ae = attrs.getAll();
+            for (NamingEnumeration<? extends Attribute> ae = attrs.getAll();
                 ae.hasMoreElements(); ) {
 
-                attr = (Attribute)ae.next();
+                attr = ae.next();
                 attrId = attr.getID();
 
                 // skip those already processed
@@ -973,10 +972,10 @@ final class LdapSchemaParser {
             String attrId = null;
 
             // use enumeration because attribute ID is not known
-            for (NamingEnumeration ae = attrs.getAll();
+            for (NamingEnumeration<? extends Attribute> ae = attrs.getAll();
                 ae.hasMoreElements(); ) {
 
-                attr = (Attribute)ae.next();
+                attr = ae.next();
                 attrId = attr.getID();
 
                 // skip those already processed
@@ -1040,10 +1039,10 @@ final class LdapSchemaParser {
             String attrId = null;
 
             // use enumeration because attribute ID is not known
-            for (NamingEnumeration ae = attrs.getAll();
+            for (NamingEnumeration<? extends Attribute> ae = attrs.getAll();
                 ae.hasMoreElements(); ) {
 
-                attr = (Attribute)ae.next();
+                attr = ae.next();
                 attrId = attr.getID();
 
                 // skip those already processed
@@ -1117,10 +1116,10 @@ final class LdapSchemaParser {
             String attrId = null;
 
             // use enumeration because attribute ID is not known
-            for (NamingEnumeration ae = attrs.getAll();
+            for (NamingEnumeration<? extends Attribute> ae = attrs.getAll();
                 ae.hasMoreElements(); ) {
 
-                attr = (Attribute)ae.next();
+                attr = ae.next();
                 attrId = attr.getID();
 
                 // skip those already processed
@@ -1201,7 +1200,7 @@ final class LdapSchemaParser {
         qdList.append(WHSP);
         qdList.append(OID_LIST_BEGIN);
 
-        NamingEnumeration values = attr.getAll();
+        NamingEnumeration<?> values = attr.getAll();
 
         while(values.hasMore()) {
             qdList.append(WHSP);
@@ -1238,7 +1237,7 @@ final class LdapSchemaParser {
         oidList.append(WHSP);
         oidList.append(OID_LIST_BEGIN);
 
-        NamingEnumeration values = oidsAttr.getAll();
+        NamingEnumeration<?> values = oidsAttr.getAll();
         oidList.append(WHSP);
         oidList.append(values.next());
 
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java b/jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java
index f1c1bba..814d97f 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,7 +34,8 @@ import javax.naming.ldap.LdapName;
 
 import com.sun.jndi.toolkit.ctx.Continuation;
 
-final class LdapSearchEnumeration extends LdapNamingEnumeration {
+final class LdapSearchEnumeration
+        extends AbstractLdapNamingEnumeration<SearchResult> {
 
     private Name startName;             // prefix of names of search results
     private LdapCtx.SearchArgs searchArgs = null;
@@ -52,9 +53,10 @@ final class LdapSearchEnumeration extends LdapNamingEnumeration {
         searchArgs = args;
     }
 
-    protected NameClassPair
-    createItem(String dn, Attributes attrs, Vector respCtls)
-        throws NamingException {
+    @Override
+    protected SearchResult createItem(String dn, Attributes attrs,
+                                      Vector<Control> respCtls)
+            throws NamingException {
 
         Object obj = null;
 
@@ -174,6 +176,7 @@ final class LdapSearchEnumeration extends LdapNamingEnumeration {
         return sr;
     }
 
+    @Override
     public void appendUnprocessedReferrals(LdapReferralException ex) {
 
         // a referral has been followed so do not create relative names
@@ -181,14 +184,16 @@ final class LdapSearchEnumeration extends LdapNamingEnumeration {
         super.appendUnprocessedReferrals(ex);
     }
 
-    protected LdapNamingEnumeration
-    getReferredResults(LdapReferralContext refCtx) throws NamingException {
+    @Override
+    protected LdapSearchEnumeration getReferredResults(
+            LdapReferralContext refCtx) throws NamingException {
         // repeat the original operation at the new context
-        return (LdapSearchEnumeration)
-            refCtx.search(searchArgs.name, searchArgs.filter, searchArgs.cons);
+        return (LdapSearchEnumeration)refCtx.search(
+                searchArgs.name, searchArgs.filter, searchArgs.cons);
     }
 
-    protected void update(LdapNamingEnumeration ne) {
+    @Override
+    protected void update(AbstractLdapNamingEnumeration<SearchResult> ne) {
         super.update(ne);
 
         // Update search-specific variables
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java b/jdk/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java
index 2d20a0f..d614aa9 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -50,12 +50,12 @@ import com.sun.jndi.toolkit.ctx.Continuation;
 final class NamingEventNotifier implements Runnable {
     private final static boolean debug = false;
 
-    private Vector namingListeners;
+    private Vector<NamingListener> namingListeners;
     private Thread worker;
     private LdapCtx context;
     private EventContext eventSrc;
     private EventSupport support;
-    private NamingEnumeration results;
+    private NamingEnumeration<SearchResult> results;
 
     // package private; used by EventSupport to remove it
     NotifierArgs info;
@@ -83,7 +83,7 @@ final class NamingEventNotifier implements Runnable {
         context = (LdapCtx)ctx.newInstance(new Control[]{psearch});
         eventSrc = ctx;
 
-        namingListeners = new Vector();
+        namingListeners = new Vector<>();
         namingListeners.addElement(firstListener);
 
         worker = Obj.helper.createThread(this);
@@ -124,7 +124,8 @@ final class NamingEventNotifier implements Runnable {
             // Change root of search results so that it will generate
             // names relative to the event context instead of that
             // named by nm
-            ((LdapSearchEnumeration)results).setStartName(context.currentParsedDN);
+            ((LdapSearchEnumeration)(NamingEnumeration)results)
+                    .setStartName(context.currentParsedDN);
 
             SearchResult si;
             Control[] respctls;
@@ -132,7 +133,7 @@ final class NamingEventNotifier implements Runnable {
             long changeNum;
 
             while (results.hasMore()) {
-                si = (SearchResult)results.next();
+                si = results.next();
                 respctls = (si instanceof HasControls) ?
                     ((HasControls) si).getControls() : null;
 
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/NotifierArgs.java b/jdk/src/share/classes/com/sun/jndi/ldap/NotifierArgs.java
index 39cab6f..81192f4 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/NotifierArgs.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/NotifierArgs.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -133,7 +133,7 @@ final class NotifierArgs {
     private int controlsCode() {
         if (controls == null) return 0;
 
-        int total = (int)controls.getTimeLimit() + (int)controls.getCountLimit() +
+        int total = controls.getTimeLimit() + (int)controls.getCountLimit() +
             (controls.getDerefLinkFlag() ? 1 : 0) +
             (controls.getReturningObjFlag() ? 1 : 0);
 
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java b/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java
index d7c14ec..6627ab3 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -84,6 +84,7 @@ final class Obj {
     /**
      * @deprecated
      */
+    @Deprecated
     private static final int REMOTE_LOC = 7;
 
     // LDAP object classes to support Java objects
@@ -206,13 +207,13 @@ final class Obj {
         } else {
             StringTokenizer parser =
                 new StringTokenizer((String)codebaseAttr.get());
-            Vector vec = new Vector(10);
+            Vector<String> vec = new Vector<>(10);
             while (parser.hasMoreTokens()) {
                 vec.addElement(parser.nextToken());
             }
             String[] answer = new String[vec.size()];
             for (int i = 0; i < answer.length; i++) {
-                answer[i] = (String)vec.elementAt(i);
+                answer[i] = vec.elementAt(i);
             }
             return answer;
         }
@@ -410,10 +411,10 @@ final class Obj {
              * Temporary Vector for decoded RefAddr addresses - used to ensure
              * unordered addresses are correctly re-ordered.
              */
-            Vector refAddrList = new Vector();
+            Vector<RefAddr> refAddrList = new Vector<>();
             refAddrList.setSize(attr.size());
 
-            for (NamingEnumeration vals = attr.getAll(); vals.hasMore(); ) {
+            for (NamingEnumeration<?> vals = attr.getAll(); vals.hasMore(); ) {
 
                 val = (String)vals.next();
 
@@ -488,7 +489,7 @@ final class Obj {
 
             // Copy to real reference
             for (int i = 0; i < refAddrList.size(); i++) {
-                ref.add((RefAddr)refAddrList.elementAt(i));
+                ref.add(refAddrList.elementAt(i));
             }
         }
 
@@ -502,9 +503,9 @@ final class Obj {
 
         try {
             ByteArrayOutputStream bytes = new ByteArrayOutputStream();
-            ObjectOutputStream serial = new ObjectOutputStream(bytes);
-            serial.writeObject(obj);
-            serial.close();
+            try (ObjectOutputStream serial = new ObjectOutputStream(bytes)) {
+                serial.writeObject(obj);
+            }
 
             return (bytes.toByteArray());
 
@@ -524,18 +525,14 @@ final class Obj {
         try {
             // Create ObjectInputStream for deserialization
             ByteArrayInputStream bytes = new ByteArrayInputStream(obj);
-            ObjectInputStream deserial = (cl == null ?
-                new ObjectInputStream(bytes) :
-                new LoaderInputStream(bytes, cl));
-
-            try {
+            try (ObjectInputStream deserial = cl == null ?
+                    new ObjectInputStream(bytes) :
+                    new LoaderInputStream(bytes, cl)) {
                 return deserial.readObject();
             } catch (ClassNotFoundException e) {
                 NamingException ne = new NamingException();
                 ne.setRootCause(e);
                 throw ne;
-            } finally {
-                deserial.close();
             }
         } catch (IOException e) {
             NamingException ne = new NamingException();
@@ -549,7 +546,7 @@ final class Obj {
       */
     static Attributes determineBindAttrs(
         char separator, Object obj, Attributes attrs, boolean cloned,
-        Name name, Context ctx, Hashtable env)
+        Name name, Context ctx, Hashtable<?,?> env)
         throws NamingException {
 
         // Call state factories to convert object and attrs
@@ -582,10 +579,10 @@ final class Obj {
 
         } else {
             // Get existing objectclass attribute
-            objectClass = (Attribute)attrs.get("objectClass");
+            objectClass = attrs.get("objectClass");
             if (objectClass == null && !attrs.isCaseIgnored()) {
                 // %%% workaround
-                objectClass = (Attribute)attrs.get("objectclass");
+                objectClass = attrs.get("objectclass");
             }
 
             // No objectclasses supplied, use "top" to start
@@ -614,8 +611,8 @@ final class Obj {
             classLoader = cl;
         }
 
-        protected Class resolveClass(ObjectStreamClass desc) throws IOException,
-            ClassNotFoundException {
+        protected Class<?> resolveClass(ObjectStreamClass desc) throws
+                IOException, ClassNotFoundException {
             try {
                 // %%% Should use Class.forName(desc.getName(), false, classLoader);
                 // except we can't because that is only available on JDK1.2
@@ -625,15 +622,15 @@ final class Obj {
             }
         }
 
-         protected Class resolveProxyClass(String[] interfaces) throws
+         protected Class<?> resolveProxyClass(String[] interfaces) throws
                 IOException, ClassNotFoundException {
              ClassLoader nonPublicLoader = null;
              boolean hasNonPublicInterface = false;
 
              // define proxy in class loader of non-public interface(s), if any
-             Class[] classObjs = new Class[interfaces.length];
+             Class<?>[] classObjs = new Class<?>[interfaces.length];
              for (int i = 0; i < interfaces.length; i++) {
-                 Class cl = Class.forName(interfaces[i], false, classLoader);
+                 Class<?> cl = Class.forName(interfaces[i], false, classLoader);
                  if ((cl.getModifiers() & Modifier.PUBLIC) == 0) {
                      if (hasNonPublicInterface) {
                          if (nonPublicLoader != cl.getClassLoader()) {
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/ReferralEnumeration.java b/jdk/src/share/classes/com/sun/jndi/ldap/ReferralEnumeration.java
index db4d815..5ed1207 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/ReferralEnumeration.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/ReferralEnumeration.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,6 @@ package com.sun.jndi.ldap;
 
 import javax.naming.NamingEnumeration;
 
-interface ReferralEnumeration extends NamingEnumeration {
+interface ReferralEnumeration<T> extends NamingEnumeration<T> {
     void appendUnprocessedReferrals(LdapReferralException ex);
 }
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java b/jdk/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java
index a51c3e0..5bbd58d 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,9 +26,7 @@
 package com.sun.jndi.ldap;
 
 import java.util.Arrays;
-import java.util.Enumeration;
 import java.util.Hashtable;
-import java.util.NoSuchElementException;
 import java.util.Random;
 import java.util.StringTokenizer;
 import java.util.List;
@@ -39,8 +37,6 @@ import javax.naming.spi.NamingManager;
 import javax.naming.ldap.LdapName;
 import javax.naming.ldap.Rdn;
 
-import com.sun.jndi.ldap.LdapURL;
-
 /**
  * This class discovers the location of LDAP services by querying DNS.
  * See http://www.ietf.org/internet-drafts/draft-ietf-ldapext-locate-07.txt
@@ -78,10 +74,10 @@ class ServiceLocator {
         // process RDNs left-to-right
         //List<Rdn> rdnList = ldapName.getRdns();
 
-        List rdnList = ldapName.getRdns();
+        List<Rdn> rdnList = ldapName.getRdns();
         for (int i = rdnList.size() - 1; i >= 0; i--) {
             //Rdn rdn = rdnList.get(i);
-            Rdn rdn = (Rdn) rdnList.get(i);
+            Rdn rdn = rdnList.get(i);
 
             // single-valued RDN with a DC attribute
             if ((rdn.size() == 1) &&
@@ -117,7 +113,7 @@ class ServiceLocator {
      * @return An ordered list of hostports for the LDAP service or null if
      *         the service has not been located.
      */
-    static String[] getLdapService(String domainName, Hashtable environment) {
+    static String[] getLdapService(String domainName, Hashtable<?,?> environment) {
 
         if (domainName == null || domainName.length() == 0) {
             return null;
@@ -252,7 +248,7 @@ class ServiceLocator {
  * See http://www.ietf.org/rfc/rfc2782.txt
  */
 
-static class SrvRecord implements Comparable {
+static class SrvRecord implements Comparable<SrvRecord> {
 
     int priority;
     int weight;
@@ -284,8 +280,7 @@ static class SrvRecord implements Comparable {
      * Sort records in ascending order of priority value. For records with
      * equal priority move those with weight 0 to the top of the list.
      */
-    public int compareTo(Object o) {
-        SrvRecord that = (SrvRecord) o;
+    public int compareTo(SrvRecord that) {
         if (priority > that.priority) {
             return 1; // this > that
         } else if (priority < that.priority) {
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/SimpleClientId.java b/jdk/src/share/classes/com/sun/jndi/ldap/SimpleClientId.java
index 0eda44f..6fa5471 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/SimpleClientId.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/SimpleClientId.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -54,9 +54,9 @@ class SimpleClientId extends ClientId {
         } else if (passwd instanceof String) {
             this.passwd = passwd;
         } else if (passwd instanceof byte[]) {
-            this.passwd = (byte[]) ((byte[])passwd).clone();
+            this.passwd = ((byte[])passwd).clone();
         } else if (passwd instanceof char[]) {
-            this.passwd = (char[]) ((char[])passwd).clone();
+            this.passwd = ((char[])passwd).clone();
         } else {
             this.passwd = passwd;
         }
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/UnsolicitedResponseImpl.java b/jdk/src/share/classes/com/sun/jndi/ldap/UnsolicitedResponseImpl.java
index aeb3269..cb03114 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/UnsolicitedResponseImpl.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/UnsolicitedResponseImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,7 @@ final class UnsolicitedResponseImpl implements UnsolicitedNotification {
     private NamingException exception;
     private Control[] controls;
 
-    UnsolicitedResponseImpl(String oid, byte[] berVal, Vector ref,
+    UnsolicitedResponseImpl(String oid, byte[] berVal, Vector<Vector<String>> ref,
         int status, String msg, String matchedDN, Control[] controls) {
         this.oid = oid;
         this.extensionValue = berVal;
@@ -50,7 +50,8 @@ final class UnsolicitedResponseImpl implements UnsolicitedNotification {
             int len = ref.size();
             referrals = new String[len];
             for (int i = 0; i < len; i++) {
-                referrals[i] = (String)ref.elementAt(i);
+                // ref is a list of single-String Vectors
+                referrals[i] = ref.elementAt(i).elementAt(0);
             }
         }
         exception = LdapCtx.mapErrorCode(status, msg);
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper.java b/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper.java
index 651edf1..2263538 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -72,7 +72,7 @@ abstract class VersionHelper {
         return urlArray;
     }
 
-    abstract Class loadClass(String className) throws ClassNotFoundException;
+    abstract Class<?> loadClass(String className) throws ClassNotFoundException;
 
     abstract Thread createThread(Runnable r);
 }
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java b/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java
index 47646d1..9e8854a 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -66,15 +66,15 @@ final class VersionHelper12 extends VersionHelper {
             }
     }
 
-    Class loadClass(String className) throws ClassNotFoundException {
+    Class<?> loadClass(String className) throws ClassNotFoundException {
         ClassLoader cl = getContextClassLoader();
         return Class.forName(className, true, cl);
     }
 
     private ClassLoader getContextClassLoader() {
-        return (ClassLoader) AccessController.doPrivileged(
-            new PrivilegedAction() {
-                public Object run() {
+        return AccessController.doPrivileged(
+            new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
                     return Thread.currentThread().getContextClassLoader();
                 }
             }
@@ -82,9 +82,9 @@ final class VersionHelper12 extends VersionHelper {
     }
 
     Thread createThread(final Runnable r) {
-        return (Thread) AccessController.doPrivileged(
-            new PrivilegedAction() {
-                public Object run() {
+        return AccessController.doPrivileged(
+            new PrivilegedAction<Thread>() {
+                public Thread run() {
                     return new Thread(r);
                 }
             }
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/ext/StartTlsResponseImpl.java b/jdk/src/share/classes/com/sun/jndi/ldap/ext/StartTlsResponseImpl.java
index 34bc049..7370361 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/ext/StartTlsResponseImpl.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/ext/StartTlsResponseImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,16 +27,8 @@ package com.sun.jndi.ldap.ext;
 
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
 import java.io.IOException;
 
-import java.net.Socket;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
 import java.security.Principal;
 import java.security.cert.X509Certificate;
 import java.security.cert.CertificateException;
@@ -45,11 +37,9 @@ import javax.net.ssl.SSLSession;
 import javax.net.ssl.SSLSocket;
 import javax.net.ssl.SSLSocketFactory;
 import javax.net.ssl.SSLPeerUnverifiedException;
-import javax.net.ssl.SSLContext;
 import javax.net.ssl.HostnameVerifier;
 import sun.security.util.HostnameChecker;
 
-import javax.naming.*;
 import javax.naming.ldap.*;
 import com.sun.jndi.ldap.Connection;
 
@@ -415,7 +405,7 @@ final public class StartTlsResponseImpl extends StartTlsResponse {
             // Use ciphersuite to determine whether Kerberos is active.
             if (session.getCipherSuite().startsWith("TLS_KRB5")) {
                 Principal principal = getPeerPrincipal(session);
-                if (!checker.match(hostname, principal)) {
+                if (!HostnameChecker.match(hostname, principal)) {
                     throw new SSLPeerUnverifiedException(
                         "hostname of the kerberos principal:" + principal +
                         " does not match the hostname:" + hostname);
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java b/jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java
index 2ee3062..2df1345 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -71,10 +71,10 @@ final class Connections implements PoolCallback {
 
     final private int maxSize;
     final private int prefSize;
-    final private List conns;
+    final private List<ConnectionDesc> conns;
 
     private boolean closed = false;   // Closed for business
-    private Reference ref; // maintains reference to id to prevent premature GC
+    private Reference<Object> ref; // maintains reference to id to prevent premature GC
 
     /**
      * @param id the identity (connection request) of the connections in the list
@@ -99,11 +99,11 @@ final class Connections implements PoolCallback {
         } else {
             this.prefSize = prefSize;
         }
-        conns = new ArrayList(maxSize > 0 ? maxSize : DEFAULT_SIZE);
+        conns = new ArrayList<>(maxSize > 0 ? maxSize : DEFAULT_SIZE);
 
         // Maintain soft ref to id so that this Connections' entry in
         // Pool doesn't get GC'ed prematurely
-        ref = new SoftReference(id);
+        ref = new SoftReference<>(id);
 
         d("init size=", initSize);
         d("max size=", maxSize);
@@ -186,7 +186,7 @@ final class Connections implements PoolCallback {
             // exceeds prefSize, then first look for an idle connection
             ConnectionDesc entry;
             for (int i = 0; i < size; i++) {
-                entry = (ConnectionDesc) conns.get(i);
+                entry = conns.get(i);
                 if ((conn = entry.tryUse()) != null) {
                     d("get(): use ", conn);
                     td("Use ", conn);
@@ -239,7 +239,7 @@ final class Connections implements PoolCallback {
                 td("Release ", conn);
 
                 // Get ConnectionDesc from list to get correct state info
-                entry = (ConnectionDesc) conns.get(loc);
+                entry = conns.get(loc);
                 // Return connection to list, ready for reuse
                 entry.release();
             }
@@ -291,10 +291,10 @@ final class Connections implements PoolCallback {
      * @return true if no more connections in list
      */
     synchronized boolean expire(long threshold) {
-        Iterator iter = conns.iterator();
+        Iterator<ConnectionDesc> iter = conns.iterator();
         ConnectionDesc entry;
         while (iter.hasNext()) {
-            entry = (ConnectionDesc) iter.next();
+            entry = iter.next();
             if (entry.expire(threshold)) {
                 d("expire(): removing ", entry);
                 td("Expired ", entry);
@@ -333,7 +333,7 @@ final class Connections implements PoolCallback {
 
             ConnectionDesc entry;
             for (int i = 0; i < len; i++) {
-                entry = (ConnectionDesc) conns.get(i);
+                entry = conns.get(i);
                 use += entry.getUseCount();
                 switch (entry.getState()) {
                 case ConnectionDesc.BUSY:
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/pool/ConnectionsWeakRef.java b/jdk/src/share/classes/com/sun/jndi/ldap/pool/ConnectionsWeakRef.java
index 24fc081..258bae9 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/pool/ConnectionsWeakRef.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/pool/ConnectionsWeakRef.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,11 +55,12 @@ import java.lang.ref.ReferenceQueue;
  * reference to Connections used for closing (which in turn terminates
  * the Connection thread) it by monitoring the ReferenceQueue.
  */
-class ConnectionsWeakRef extends WeakReference {
+class ConnectionsWeakRef extends WeakReference<ConnectionsRef> {
 
     private final Connections conns;
 
-    ConnectionsWeakRef (ConnectionsRef connsRef, ReferenceQueue queue) {
+    ConnectionsWeakRef (ConnectionsRef connsRef,
+                        ReferenceQueue<? super ConnectionsRef> queue) {
         super(connsRef, queue);
         this.conns = connsRef.getConnections();
     }
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java b/jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java
index 2274bf3..f9786ca 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,6 @@ import java.util.WeakHashMap;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
-import java.util.Set;
 import java.util.LinkedList;
 
 import java.io.PrintStream;
@@ -83,17 +82,18 @@ final public class Pool {
     /*
      * Used for connections cleanup
      */
-    private static final ReferenceQueue queue = new ReferenceQueue();
-    private static final Collection weakRefs =
-                Collections.synchronizedList(new LinkedList());
+    private static final ReferenceQueue<ConnectionsRef> queue =
+        new ReferenceQueue<>();
+    private static final Collection<Reference<ConnectionsRef>> weakRefs =
+        Collections.synchronizedList(new LinkedList<Reference<ConnectionsRef>>());
 
     final private int maxSize;    // max num of identical conn per pool
     final private int prefSize;   // preferred num of identical conn per pool
     final private int initSize;   // initial number of identical conn to create
-    final private Map map;
+    final private Map<Object, ConnectionsRef> map;
 
     public Pool(int initSize, int prefSize, int maxSize) {
-        map = new WeakHashMap();
+        map = new WeakHashMap<>();
         this.prefSize = prefSize;
         this.maxSize = maxSize;
         this.initSize = initSize;
@@ -135,7 +135,8 @@ final public class Pool {
                 map.put(id, connsRef);
 
                 // Create a weak reference to ConnectionsRef
-                Reference weakRef = new ConnectionsWeakRef(connsRef, queue);
+                Reference<ConnectionsRef> weakRef =
+                        new ConnectionsWeakRef(connsRef, queue);
 
                 // Keep the weak reference through the element of a linked list
                 weakRefs.add(weakRef);
@@ -148,7 +149,7 @@ final public class Pool {
     }
 
     private Connections getConnections(Object id) {
-        ConnectionsRef ref = (ConnectionsRef) map.get(id);
+        ConnectionsRef ref = map.get(id);
         return (ref != null) ? ref.getConnections() : null;
     }
 
@@ -163,11 +164,10 @@ final public class Pool {
      */
     public void expire(long threshold) {
         synchronized (map) {
-            Collection coll = map.values();
-            Iterator iter = coll.iterator();
+            Iterator<ConnectionsRef> iter = map.values().iterator();
             Connections conns;
             while (iter.hasNext()) {
-                conns = ((ConnectionsRef) (iter.next())).getConnections();
+                conns = iter.next().getConnections();
                 if (conns.expire(threshold)) {
                     d("expire(): removing ", conns);
                     iter.remove();
@@ -202,7 +202,6 @@ final public class Pool {
 
 
     public void showStats(PrintStream out) {
-        Map.Entry entry;
         Object id;
         Connections conns;
 
@@ -212,13 +211,9 @@ final public class Pool {
         out.println("initial pool size: " + initSize);
         out.println("current pool size: " + map.size());
 
-        Set entries = map.entrySet();
-        Iterator iter = entries.iterator();
-
-        while (iter.hasNext()) {
-            entry = (Map.Entry) iter.next();
+        for (Map.Entry<Object, ConnectionsRef> entry : map.entrySet()) {
             id = entry.getKey();
-            conns = ((ConnectionsRef) entry.getValue()).getConnections();
+            conns = entry.getValue().getConnections();
             out.println("   " + id + ":" + conns.getStats());
         }
 
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/pool/PoolCleaner.java b/jdk/src/share/classes/com/sun/jndi/ldap/pool/PoolCleaner.java
index a318a7c..9c1c3bf 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/pool/PoolCleaner.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/pool/PoolCleaner.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,7 @@ final public class PoolCleaner extends Thread {
     public PoolCleaner(long period, Pool[] pools) {
         super();
         this.period = period;
-        this.pools = (Pool[]) pools.clone();
+        this.pools = pools.clone();
         setDaemon(true);
     }
 
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java b/jdk/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java
index bc0940a..3bea1cc 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -57,7 +57,7 @@ final class DefaultCallbackHandler implements CallbackHandler {
         if (cred instanceof String) {
             passwd = ((String)cred).toCharArray();
         } else if (cred instanceof char[]) {
-            passwd = (char[])((char[])cred).clone();
+            passwd = ((char[])cred).clone();
         } else if (cred != null) {
             // assume UTF-8 encoding
             String orig = new String((byte[])cred, "UTF8");
diff --git a/jdk/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java b/jdk/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java
index 769a08f..ef52737 100644
--- a/jdk/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -89,9 +89,10 @@ final public class LdapSasl {
      * @param bindCtls The possibly null controls to accompany the bind
      * @return LdapResult containing status of the bind
      */
+    @SuppressWarnings("unchecked")
     public static LdapResult saslBind(LdapClient clnt, Connection conn,
         String server, String dn, Object pw,
-        String authMech, Hashtable env, Control[] bindCtls)
+        String authMech, Hashtable<?,?> env, Control[] bindCtls)
         throws IOException, NamingException {
 
         SaslClient saslClnt = null;
@@ -112,7 +113,7 @@ final public class LdapSasl {
         try {
             // Create SASL client to use using SASL package
             saslClnt = Sasl.createSaslClient(
-                mechs, authzId, "ldap", server, env, cbh);
+                mechs, authzId, "ldap", server, (Hashtable<String, ?>)env, cbh);
 
             if (saslClnt == null) {
                 throw new AuthenticationNotSupportedException(authMech);
@@ -185,13 +186,13 @@ final public class LdapSasl {
       */
     private static String[] getSaslMechanismNames(String str) {
         StringTokenizer parser = new StringTokenizer(str);
-        Vector mechs = new Vector(10);
+        Vector<String> mechs = new Vector<>(10);
         while (parser.hasMoreTokens()) {
             mechs.addElement(parser.nextToken());
         }
         String[] mechNames = new String[mechs.size()];
         for (int i = 0; i < mechs.size(); i++) {
-            mechNames[i] = (String)mechs.elementAt(i);
+            mechNames[i] = mechs.elementAt(i);
         }
         return mechNames;
     }
diff --git a/jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java b/jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java
index 8fde424..2990ed8 100644
--- a/jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -46,7 +46,7 @@ import javax.naming.spi.NamingManager;
 
 public class RegistryContext implements Context, Referenceable {
 
-    private Hashtable environment;
+    private Hashtable<String, Object> environment;
     private Registry registry;
     private String host;
     private int port;
@@ -67,10 +67,13 @@ public class RegistryContext implements Context, Referenceable {
      * Cloning of "env" is handled by caller; see comments within
      * RegistryContextFactory.getObjectInstance(), for example.
      */
-    public RegistryContext(String host, int port, Hashtable env)
+    @SuppressWarnings("unchecked")
+    public RegistryContext(String host, int port, Hashtable<?, ?> env)
             throws NamingException
     {
-        environment = ((env == null) ? new Hashtable(5) : env);
+        environment = (env == null)
+                      ? new Hashtable<String, Object>(5)
+                      : (Hashtable<String, Object>) env;
         if (environment.get(SECURITY_MGR) != null) {
             installSecurityMgr();
         }
@@ -93,8 +96,9 @@ public class RegistryContext implements Context, Referenceable {
      * won't close the other).
      */
     // %%% Alternatively, this could be done with a clone() method.
+    @SuppressWarnings("unchecked") // clone()
     RegistryContext(RegistryContext ctx) {
-        environment = (Hashtable)ctx.environment.clone();
+        environment = (Hashtable<String, Object>)ctx.environment.clone();
         registry = ctx.registry;
         host = ctx.host;
         port = ctx.port;
@@ -195,7 +199,8 @@ public class RegistryContext implements Context, Referenceable {
         rename(new CompositeName(name), new CompositeName(newName));
     }
 
-    public NamingEnumeration list(Name name)    throws NamingException {
+    public NamingEnumeration<NameClassPair> list(Name name) throws
+            NamingException {
         if (!name.isEmpty()) {
             throw (new InvalidNameException(
                     "RegistryContext: can only list \"\""));
@@ -208,11 +213,12 @@ public class RegistryContext implements Context, Referenceable {
         }
     }
 
-    public NamingEnumeration list(String name) throws NamingException {
+    public NamingEnumeration<NameClassPair> list(String name) throws
+            NamingException {
         return list(new CompositeName(name));
     }
 
-    public NamingEnumeration listBindings(Name name)
+    public NamingEnumeration<Binding> listBindings(Name name)
             throws NamingException
     {
         if (!name.isEmpty()) {
@@ -227,7 +233,8 @@ public class RegistryContext implements Context, Referenceable {
         }
     }
 
-    public NamingEnumeration listBindings(String name) throws NamingException {
+    public NamingEnumeration<Binding> listBindings(String name) throws
+            NamingException {
         return listBindings(new CompositeName(name));
     }
 
@@ -290,8 +297,9 @@ public class RegistryContext implements Context, Referenceable {
         return environment.put(propName, propVal);
     }
 
-    public Hashtable getEnvironment() throws NamingException {
-        return (Hashtable)environment.clone();
+    @SuppressWarnings("unchecked") // clone()
+    public Hashtable<String, Object> getEnvironment() throws NamingException {
+        return (Hashtable<String, Object>)environment.clone();
     }
 
     public void close() {
@@ -483,11 +491,9 @@ class AtomicNameParser implements NameParser {
 
 
 /**
- * An enumeration of name / class-name pairs.  Since we don't know anything
- * about the classes, each class name is returned as the generic
- * "java.lang.Object".
+ * An enumeration of name / class-name pairs.
  */
-class NameClassPairEnumeration implements NamingEnumeration {
+class NameClassPairEnumeration implements NamingEnumeration<NameClassPair> {
     private final String[] names;
     private int nextName;       // index into "names"
 
@@ -500,7 +506,7 @@ class NameClassPairEnumeration implements NamingEnumeration {
         return (nextName < names.length);
     }
 
-    public Object next() throws NamingException {
+    public NameClassPair next() throws NamingException {
         if (!hasMore()) {
             throw (new java.util.NoSuchElementException());
         }
@@ -518,7 +524,7 @@ class NameClassPairEnumeration implements NamingEnumeration {
         return hasMore();
     }
 
-    public Object nextElement() {
+    public NameClassPair nextElement() {
         try {
             return next();
         } catch (NamingException e) {   // should never happen
@@ -541,7 +547,7 @@ class NameClassPairEnumeration implements NamingEnumeration {
  * requested.  The problem with that approach is that Binding.getObject()
  * cannot throw NamingException.
  */
-class BindingEnumeration implements NamingEnumeration {
+class BindingEnumeration implements NamingEnumeration<Binding> {
     private RegistryContext ctx;
     private final String[] names;
     private int nextName;       // index into "names"
@@ -564,7 +570,7 @@ class BindingEnumeration implements NamingEnumeration {
         return (nextName < names.length);
     }
 
-    public Object next() throws NamingException {
+    public Binding next() throws NamingException {
         if (!hasMore()) {
             throw (new java.util.NoSuchElementException());
         }
@@ -584,7 +590,7 @@ class BindingEnumeration implements NamingEnumeration {
         return hasMore();
     }
 
-    public Object nextElement() {
+    public Binding nextElement() {
         try {
             return next();
         } catch (NamingException e) {
diff --git a/jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContextFactory.java b/jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContextFactory.java
index fdebea4..6746f3c 100644
--- a/jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContextFactory.java
+++ b/jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContextFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,7 +95,7 @@ public class RegistryContextFactory
         return obj;
     }
 
-    private static Context URLToContext(String url, Hashtable env)
+    private static Context URLToContext(String url, Hashtable<?,?> env)
             throws NamingException
     {
         rmiURLContextFactory factory = new rmiURLContextFactory();
@@ -108,7 +108,7 @@ public class RegistryContextFactory
         }
     }
 
-    private static Object URLsToObject(String[] urls, Hashtable env)
+    private static Object URLsToObject(String[] urls, Hashtable<?,?> env)
             throws NamingException
     {
         rmiURLContextFactory factory = new rmiURLContextFactory();
@@ -119,7 +119,7 @@ public class RegistryContextFactory
      * Reads environment to find URL of initial context.
      * The default URL is "rmi:".
      */
-    private static String getInitCtxURL(Hashtable env) {
+    private static String getInitCtxURL(Hashtable<?,?> env) {
 
         final String defaultURL = "rmi:";
 
@@ -152,9 +152,9 @@ public class RegistryContextFactory
         int size = 0;   // number of URLs
         String[] urls = new String[ref.size()];
 
-        Enumeration addrs = ref.getAll();
+        Enumeration<RefAddr> addrs = ref.getAll();
         while (addrs.hasMoreElements()) {
-            RefAddr addr = (RefAddr)addrs.nextElement();
+            RefAddr addr = addrs.nextElement();
 
             if ((addr instanceof StringRefAddr) &&
                 addr.getType().equals(ADDRESS_TYPE)) {
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java b/jdk/src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java
index c6965d2..dd32fef 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -158,7 +158,7 @@ public class CorbaUtils {
      *               Use all String properties from env for initializing ORB
      * @return A non-null ORB.
      */
-    public static ORB getOrb(String server, int port, Hashtable env) {
+    public static ORB getOrb(String server, int port, Hashtable<?,?> env) {
         // See if we can get info from environment
         Properties orbProp;
 
@@ -169,7 +169,7 @@ public class CorbaUtils {
                 orbProp = (Properties) env.clone();
             } else {
                 // Get all String properties
-                Enumeration envProp;
+                Enumeration<?> envProp;
                 orbProp = new Properties();
                 for (envProp = env.keys(); envProp.hasMoreElements();) {
                     String key = (String)envProp.nextElement();
@@ -239,7 +239,7 @@ public class CorbaUtils {
     // Fields used for reflection of RMI-IIOP
     private static Method toStubMethod = null;
     private static Method connectMethod = null;
-    private static Class corbaStubClass = null;
+    private static Class<?> corbaStubClass = null;
     /**
      * Initializes reflection method handles for RMI-IIOP.
      * @exception ClassNotFoundException javax.rmi.CORBA.* not available
@@ -252,19 +252,19 @@ public class CorbaUtils {
 
         try {
             connectMethod = corbaStubClass.getMethod("connect",
-                new Class[] {org.omg.CORBA.ORB.class});
+                new Class<?>[] {org.omg.CORBA.ORB.class});
         } catch (NoSuchMethodException e) {
             throw new IllegalStateException(
         "No method definition for javax.rmi.CORBA.Stub.connect(org.omg.CORBA.ORB)");
         }
 
-        // Get javax.rmi.PortableRemoteObject method
-        Class proClass = Class.forName("javax.rmi.PortableRemoteObject");
+        // Get javax.rmi.PortableRemoteObject class
+        Class<?> proClass = Class.forName("javax.rmi.PortableRemoteObject");
 
-        // Get javax.rmi.PortableRemoteObject(java.rmi.Remote) method
+        // Get javax.rmi.PortableRemoteObject.toStub(java.rmi.Remote) method
         try {
             toStubMethod = proClass.getMethod("toStub",
-                new Class[] {java.rmi.Remote.class});
+                new Class<?>[] {java.rmi.Remote.class});
 
         } catch (NoSuchMethodException e) {
             throw new IllegalStateException(
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicContext.java b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicContext.java
index a34188a..f8f41d5 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
 package com.sun.jndi.toolkit.ctx;
 
 import javax.naming.*;
-import javax.naming.spi.ResolveResult;
 
 /**
   * Clients: deal only with names for its own naming service
@@ -58,9 +57,9 @@ public abstract class AtomicContext extends ComponentContext {
     protected abstract Object a_lookupLink(String name, Continuation cont)
         throws NamingException;
 
-    protected abstract NamingEnumeration a_list(
+    protected abstract NamingEnumeration<NameClassPair> a_list(
         Continuation cont) throws NamingException;
-    protected abstract NamingEnumeration a_listBindings(
+    protected abstract NamingEnumeration<Binding> a_listBindings(
         Continuation cont) throws NamingException;
     protected abstract void a_bind(String name, Object obj, Continuation cont)
         throws NamingException;
@@ -193,12 +192,12 @@ public abstract class AtomicContext extends ComponentContext {
             return null;
         }
 
-    protected NamingEnumeration a_list_nns(Continuation cont)
+    protected NamingEnumeration<NameClassPair> a_list_nns(Continuation cont)
         throws NamingException {
             a_processJunction_nns(cont);
             return null;
         }
-    protected NamingEnumeration a_listBindings_nns(Continuation cont)
+    protected NamingEnumeration<Binding> a_listBindings_nns(Continuation cont)
         throws NamingException {
             a_processJunction_nns(cont);
             return null;
@@ -273,7 +272,7 @@ public abstract class AtomicContext extends ComponentContext {
             return null;
         }
 
-    protected NamingEnumeration c_list(Name name,
+    protected NamingEnumeration<NameClassPair> c_list(Name name,
         Continuation cont) throws NamingException {
             if (resolve_to_context(name, cont)) {
                 return a_list(cont);
@@ -281,7 +280,7 @@ public abstract class AtomicContext extends ComponentContext {
             return null;
         }
 
-    protected NamingEnumeration c_listBindings(Name name,
+    protected NamingEnumeration<Binding> c_listBindings(Name name,
         Continuation cont) throws NamingException {
             if (resolve_to_context(name, cont)) {
                 return a_listBindings(cont);
@@ -392,7 +391,7 @@ public abstract class AtomicContext extends ComponentContext {
             }
         }
 
-    protected NamingEnumeration c_list_nns(Name name,
+    protected NamingEnumeration<NameClassPair> c_list_nns(Name name,
         Continuation cont) throws NamingException {
             if (_contextType == _ATOMIC) {
                 resolve_to_nns_and_continue(name, cont);
@@ -403,14 +402,14 @@ public abstract class AtomicContext extends ComponentContext {
             }
         }
 
-    protected NamingEnumeration c_listBindings_nns(Name name,
+    protected NamingEnumeration<Binding> c_listBindings_nns(Name name,
         Continuation cont) throws NamingException {
             if (_contextType == _ATOMIC) {
                 resolve_to_nns_and_continue(name, cont);
                 return null;
             } else {
                 // use ComponentContext
-                return super.c_list_nns(name, cont);
+                return super.c_listBindings_nns(name, cont);
             }
         }
 
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicDirContext.java b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicDirContext.java
index b18795a..f7fdba4 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicDirContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicDirContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@ package com.sun.jndi.toolkit.ctx;
 
 import javax.naming.*;
 import javax.naming.directory.*;
-import javax.naming.spi.ResolveResult;
 
 /**
  * Direct subclasses of AtomicDirContext must provide implementations for
@@ -79,20 +78,25 @@ public abstract class AtomicDirContext extends ComponentDirContext {
                                                     Continuation cont)
         throws NamingException;
 
-    protected abstract NamingEnumeration a_search(Attributes matchingAttributes,
+    protected abstract NamingEnumeration<SearchResult> a_search(
+                                                  Attributes matchingAttributes,
                                                   String[] attributesToReturn,
                                                   Continuation cont)
         throws NamingException;
 
-    protected abstract NamingEnumeration a_search(String name,
+    protected abstract NamingEnumeration<SearchResult> a_search(
+                                                  String name,
                                                   String filterExpr,
                                                   Object[] filterArgs,
-                                                  SearchControls cons, Continuation cont)
+                                                  SearchControls cons,
+                                                  Continuation cont)
         throws NamingException;
 
-    protected abstract NamingEnumeration a_search(String name,
+    protected abstract NamingEnumeration<SearchResult> a_search(
+                                                  String name,
                                                   String filter,
-                                                  SearchControls cons, Continuation cont)
+                                                  SearchControls cons,
+                                                  Continuation cont)
         throws NamingException;
 
     protected abstract DirContext a_getSchema(Continuation cont)
@@ -163,7 +167,8 @@ public abstract class AtomicDirContext extends ComponentDirContext {
             return null;
         }
 
-    protected NamingEnumeration a_search_nns(Attributes matchingAttributes,
+    protected NamingEnumeration<SearchResult> a_search_nns(
+                                             Attributes matchingAttributes,
                                              String[] attributesToReturn,
                                              Continuation cont)
         throws NamingException {
@@ -171,20 +176,20 @@ public abstract class AtomicDirContext extends ComponentDirContext {
             return null;
         }
 
-    protected NamingEnumeration a_search_nns(String name,
-                                             String filterExpr,
-                                             Object[] filterArgs,
-                                             SearchControls cons,
-                                             Continuation cont)
+    protected NamingEnumeration<SearchResult> a_search_nns(String name,
+                                                           String filterExpr,
+                                                           Object[] filterArgs,
+                                                           SearchControls cons,
+                                                           Continuation cont)
         throws NamingException {
             a_processJunction_nns(name, cont);
             return null;
         }
 
-    protected NamingEnumeration a_search_nns(String name,
-                                             String filter,
-                                             SearchControls cons,
-                                             Continuation cont)
+    protected NamingEnumeration<SearchResult> a_search_nns(String name,
+                                                           String filter,
+                                                           SearchControls cons,
+                                                           Continuation cont)
         throws NamingException  {
             a_processJunction_nns(name, cont);
             return null;
@@ -250,7 +255,7 @@ public abstract class AtomicDirContext extends ComponentDirContext {
             return null;
         }
 
-    protected NamingEnumeration c_search(Name name,
+    protected NamingEnumeration<SearchResult> c_search(Name name,
                                          Attributes matchingAttributes,
                                          String[] attributesToReturn,
                                          Continuation cont)
@@ -260,19 +265,21 @@ public abstract class AtomicDirContext extends ComponentDirContext {
             return null;
         }
 
-    protected NamingEnumeration c_search(Name name,
-                                         String filter,
-                                         SearchControls cons, Continuation cont)
+    protected NamingEnumeration<SearchResult> c_search(Name name,
+                                                       String filter,
+                                                       SearchControls cons,
+                                                       Continuation cont)
         throws NamingException {
             if (resolve_to_penultimate_context(name, cont))
                 return a_search(name.toString(), filter, cons, cont);
             return null;
         }
 
-    protected NamingEnumeration c_search(Name name,
-                                         String filterExpr,
-                                         Object[] filterArgs,
-                                         SearchControls cons, Continuation cont)
+    protected NamingEnumeration<SearchResult> c_search(Name name,
+                                                       String filterExpr,
+                                                       Object[] filterArgs,
+                                                       SearchControls cons,
+                                                       Continuation cont)
         throws NamingException  {
             if (resolve_to_penultimate_context(name, cont))
                 return a_search(name.toString(), filterExpr, filterArgs, cons, cont);
@@ -340,7 +347,8 @@ public abstract class AtomicDirContext extends ComponentDirContext {
             return null;
         }
 
-    protected NamingEnumeration c_search_nns(Name name,
+    protected NamingEnumeration<SearchResult> c_search_nns(
+                                         Name name,
                                          Attributes matchingAttributes,
                                          String[] attributesToReturn,
                                          Continuation cont)
@@ -349,20 +357,21 @@ public abstract class AtomicDirContext extends ComponentDirContext {
             return null;
         }
 
-    protected NamingEnumeration c_search_nns(Name name,
-                                         String filter,
-                                         SearchControls cons, Continuation cont)
+    protected NamingEnumeration<SearchResult> c_search_nns(Name name,
+                                                           String filter,
+                                                           SearchControls cons,
+                                                           Continuation cont)
         throws NamingException {
             if (resolve_to_penultimate_context_nns(name, cont))
                 return a_search_nns(name.toString(), filter, cons, cont);
             return null;
         }
 
-    protected NamingEnumeration c_search_nns(Name name,
-                                             String filterExpr,
-                                             Object[] filterArgs,
-                                             SearchControls cons,
-                                             Continuation cont)
+    protected NamingEnumeration<SearchResult> c_search_nns(Name name,
+                                                           String filterExpr,
+                                                           Object[] filterArgs,
+                                                           SearchControls cons,
+                                                           Continuation cont)
         throws NamingException  {
             if (resolve_to_penultimate_context_nns(name, cont))
                 return a_search_nns(name.toString(), filterExpr, filterArgs,
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentContext.java b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentContext.java
index 0a9f706..351d6d7 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,6 @@
 
 package com.sun.jndi.toolkit.ctx;
 
-import java.util.Hashtable;
-
 import javax.naming.*;
 import javax.naming.spi.ResolveResult;
 
@@ -57,9 +55,9 @@ public abstract class ComponentContext extends PartialCompositeContext {
     protected abstract Object c_lookupLink(Name name, Continuation cont)
         throws NamingException;
 
-    protected abstract NamingEnumeration c_list(Name name,
+    protected abstract NamingEnumeration<NameClassPair> c_list(Name name,
         Continuation cont) throws NamingException;
-    protected abstract NamingEnumeration c_listBindings(Name name,
+    protected abstract NamingEnumeration<Binding> c_listBindings(Name name,
         Continuation cont) throws NamingException;
     protected abstract void c_bind(Name name, Object obj, Continuation cont)
         throws NamingException;
@@ -237,13 +235,13 @@ public abstract class ComponentContext extends PartialCompositeContext {
             return null;
         }
 
-    protected NamingEnumeration c_list_nns(Name name,
+    protected NamingEnumeration<NameClassPair> c_list_nns(Name name,
         Continuation cont) throws NamingException {
             c_processJunction_nns(name, cont);
             return null;
         }
 
-    protected NamingEnumeration c_listBindings_nns(Name name,
+    protected NamingEnumeration<Binding> c_listBindings_nns(Name name,
         Continuation cont) throws NamingException {
             c_processJunction_nns(name, cont);
             return null;
@@ -495,7 +493,7 @@ public abstract class ComponentContext extends PartialCompositeContext {
     /* implementation for Resolver method */
 
     protected ResolveResult p_resolveToClass(Name name,
-                                             Class contextType,
+                                             Class<?> contextType,
                                              Continuation cont)
             throws NamingException {
 
@@ -556,9 +554,9 @@ public abstract class ComponentContext extends PartialCompositeContext {
         return ret;
     }
 
-    protected NamingEnumeration p_list(Name name, Continuation cont)
+    protected NamingEnumeration<NameClassPair> p_list(Name name, Continuation cont)
         throws NamingException {
-        NamingEnumeration ret = null;
+        NamingEnumeration<NameClassPair> ret = null;
         HeadTail res = p_resolveIntermediate(name, cont);
         switch (res.getStatus()) {
             case TERMINAL_NNS_COMPONENT:
@@ -581,9 +579,9 @@ public abstract class ComponentContext extends PartialCompositeContext {
         return ret;
     }
 
-    protected NamingEnumeration p_listBindings(Name name, Continuation cont) throws
+    protected NamingEnumeration<Binding> p_listBindings(Name name, Continuation cont) throws
         NamingException {
-        NamingEnumeration ret = null;
+        NamingEnumeration<Binding> ret = null;
         HeadTail res = p_resolveIntermediate(name, cont);
         switch (res.getStatus()) {
             case TERMINAL_NNS_COMPONENT:
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentDirContext.java b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentDirContext.java
index c725153..11b1504 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentDirContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentDirContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,8 +28,6 @@ package com.sun.jndi.toolkit.ctx;
 import javax.naming.*;
 import javax.naming.directory.*;
 
-import javax.naming.spi.ResolveResult;
-
 /* Direct subclasses of ComponentDirContext must provide implementations for
  * the abstract c_ DirContext methods, and override the c_ Context methods
  * (which are no longer abstract because they have been overriden by
@@ -81,23 +79,26 @@ public abstract class ComponentDirContext extends PartialCompositeDirContext {
                                                     Continuation cont)
         throws NamingException;
 
-    protected abstract NamingEnumeration c_search(Name name,
-                                               Attributes matchingAttributes,
-                                               String[] attributesToReturn,
-                                               Continuation cont)
+    protected abstract NamingEnumeration<SearchResult> c_search(
+                            Name name,
+                            Attributes matchingAttributes,
+                            String[] attributesToReturn,
+                            Continuation cont)
         throws NamingException;
 
-    protected abstract NamingEnumeration c_search(Name name,
-                                               String filter,
-                                               SearchControls cons,
-                                               Continuation cont)
+    protected abstract NamingEnumeration<SearchResult> c_search(
+                            Name name,
+                            String filter,
+                            SearchControls cons,
+                            Continuation cont)
         throws NamingException;
 
-    protected abstract NamingEnumeration c_search(Name name,
-                                                  String filterExpr,
-                                                  Object[] filterArgs,
-                                                  SearchControls cons,
-                                                  Continuation cont)
+    protected abstract NamingEnumeration<SearchResult> c_search(
+                            Name name,
+                            String filterExpr,
+                            Object[] filterArgs,
+                            SearchControls cons,
+                            Continuation cont)
         throws NamingException;
 
     protected abstract DirContext c_getSchema(Name name, Continuation cont)
@@ -172,29 +173,32 @@ public abstract class ComponentDirContext extends PartialCompositeDirContext {
             return null;
         }
 
-    protected NamingEnumeration c_search_nns(Name name,
-                                          Attributes matchingAttributes,
-                                          String[] attributesToReturn,
-                                          Continuation cont)
+    protected NamingEnumeration<SearchResult> c_search_nns(
+                        Name name,
+                        Attributes matchingAttributes,
+                        String[] attributesToReturn,
+                        Continuation cont)
         throws NamingException {
             c_processJunction_nns(name, cont);
             return null;
         }
 
-    protected NamingEnumeration c_search_nns(Name name,
-                                          String filter,
-                                          SearchControls cons,
-                                          Continuation cont)
+    protected NamingEnumeration<SearchResult> c_search_nns(
+                        Name name,
+                        String filter,
+                        SearchControls cons,
+                        Continuation cont)
         throws NamingException  {
             c_processJunction_nns(name, cont);
             return null;
         }
 
-    protected NamingEnumeration c_search_nns(Name name,
-                                             String filterExpr,
-                                             Object[] filterArgs,
-                                             SearchControls cons,
-                                             Continuation cont)
+    protected NamingEnumeration<SearchResult> c_search_nns(
+                        Name name,
+                        String filterExpr,
+                        Object[] filterArgs,
+                        SearchControls cons,
+                        Continuation cont)
         throws NamingException  {
             c_processJunction_nns(name, cont);
             return null;
@@ -345,13 +349,14 @@ public abstract class ComponentDirContext extends PartialCompositeDirContext {
         return answer;
     }
 
-    protected NamingEnumeration p_search(Name name,
-                                      Attributes matchingAttributes,
-                                      String[] attributesToReturn,
-                                      Continuation cont)
+    protected NamingEnumeration<SearchResult> p_search(
+                    Name name,
+                    Attributes matchingAttributes,
+                    String[] attributesToReturn,
+                    Continuation cont)
         throws NamingException {
         HeadTail res = p_resolveIntermediate(name, cont);
-        NamingEnumeration answer = null;
+        NamingEnumeration<SearchResult> answer = null;
         switch (res.getStatus()) {
             case TERMINAL_NNS_COMPONENT:
                 answer = c_search_nns(res.getHead(), matchingAttributes,
@@ -371,12 +376,13 @@ public abstract class ComponentDirContext extends PartialCompositeDirContext {
         return answer;
     }
 
-    protected NamingEnumeration p_search(Name name,
-                                      String filter,
-                                      SearchControls cons, Continuation cont)
+    protected NamingEnumeration<SearchResult> p_search(Name name,
+                                                       String filter,
+                                                       SearchControls cons,
+                                                       Continuation cont)
         throws NamingException {
         HeadTail res = p_resolveIntermediate(name, cont);
-        NamingEnumeration answer = null;
+        NamingEnumeration<SearchResult> answer = null;
         switch (res.getStatus()) {
             case TERMINAL_NNS_COMPONENT:
                 answer = c_search_nns(res.getHead(), filter, cons, cont);
@@ -394,14 +400,14 @@ public abstract class ComponentDirContext extends PartialCompositeDirContext {
         return answer;
     }
 
-    protected NamingEnumeration p_search(Name name,
-                                         String filterExpr,
-                                         Object[] filterArgs,
-                                         SearchControls cons,
-                                         Continuation cont)
+    protected NamingEnumeration<SearchResult> p_search(Name name,
+                                                       String filterExpr,
+                                                       Object[] filterArgs,
+                                                       SearchControls cons,
+                                                       Continuation cont)
             throws NamingException {
         HeadTail res = p_resolveIntermediate(name, cont);
-        NamingEnumeration answer = null;
+        NamingEnumeration<SearchResult> answer = null;
         switch (res.getStatus()) {
             case TERMINAL_NNS_COMPONENT:
                 answer = c_search_nns(res.getHead(),
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java
index 50558ca..0e1ebe3 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java
@@ -57,7 +57,7 @@ public class Continuation extends ResolveResult {
      * The environment used by the caller. Initialized by constructor and
      * used when filling out a CannotProceedException.
      */
-    protected Hashtable environment = null;
+    protected Hashtable<?,?> environment = null;
 
     /**
      * Indicates whether the Continuation instance indicates that the operation
@@ -94,7 +94,7 @@ public class Continuation extends ResolveResult {
      * @param environment The environment used by the caller. It is used
      * when setting the "environment" of a CannotProceedException.
      */
-    public Continuation(Name top, Hashtable environment) {
+    public Continuation(Name top, Hashtable<?,?> environment) {
         super();
         starter = top;
         this.environment = environment;
@@ -154,8 +154,8 @@ public class Continuation extends ResolveResult {
 
         if ((e instanceof CannotProceedException)) {
             CannotProceedException cpe = (CannotProceedException)e;
-            Hashtable env = (environment == null ?
-                new Hashtable(11) : (Hashtable)environment.clone());
+            Hashtable<?,?> env = (environment == null ?
+                new Hashtable<>(11) : (Hashtable<?,?>)environment.clone());
             cpe.setEnvironment(env);
             cpe.setAltNameCtx(resolvedContext);
             cpe.setAltName(relativeResolvedName);
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeContext.java b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeContext.java
index d53b5ca..17d1cf0 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -77,16 +77,16 @@ public abstract class PartialCompositeContext implements Context, Resolver {
 
     /* Equivalent to method in  Resolver interface */
     protected abstract ResolveResult p_resolveToClass(Name name,
-        Class contextType, Continuation cont) throws NamingException;
+        Class<?> contextType, Continuation cont) throws NamingException;
 
     /* Equivalent to methods in Context interface */
     protected abstract Object p_lookup(Name name, Continuation cont)
         throws NamingException;
     protected abstract Object p_lookupLink(Name name, Continuation cont)
         throws NamingException;
-    protected abstract NamingEnumeration p_list(Name name,
+    protected abstract NamingEnumeration<NameClassPair> p_list(Name name,
         Continuation cont) throws NamingException;
-    protected abstract NamingEnumeration p_listBindings(Name name,
+    protected abstract NamingEnumeration<Binding> p_listBindings(Name name,
         Continuation cont) throws NamingException;
     protected abstract void p_bind(Name name, Object obj, Continuation cont)
         throws NamingException;
@@ -115,7 +115,7 @@ public abstract class PartialCompositeContext implements Context, Resolver {
      * The toolkit knows to clone when necessary.
      * @return The possibly null environment of the context.
      */
-    protected Hashtable p_getEnvironment() throws NamingException {
+    protected Hashtable<?,?> p_getEnvironment() throws NamingException {
         return getEnvironment();
     }
 
@@ -137,7 +137,7 @@ public abstract class PartialCompositeContext implements Context, Resolver {
         throws NamingException
     {
         PartialCompositeContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
         ResolveResult answer;
         Name nm = name;
@@ -168,7 +168,7 @@ public abstract class PartialCompositeContext implements Context, Resolver {
 
     public Object lookup(Name name) throws NamingException {
         PartialCompositeContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
         Object answer;
         Name nm = name;
@@ -194,7 +194,7 @@ public abstract class PartialCompositeContext implements Context, Resolver {
     public void bind(Name name, Object newObj) throws NamingException {
         PartialCompositeContext ctx = this;
         Name nm = name;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
 
         try {
@@ -216,7 +216,7 @@ public abstract class PartialCompositeContext implements Context, Resolver {
     public void rebind(Name name, Object newObj) throws NamingException {
         PartialCompositeContext ctx = this;
         Name nm = name;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
 
         try {
@@ -238,7 +238,7 @@ public abstract class PartialCompositeContext implements Context, Resolver {
     public void unbind(Name name) throws NamingException {
         PartialCompositeContext ctx = this;
         Name nm = name;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
 
         try {
@@ -262,7 +262,7 @@ public abstract class PartialCompositeContext implements Context, Resolver {
     {
         PartialCompositeContext ctx = this;
         Name nm = oldName;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(oldName, env);
 
         try {
@@ -293,8 +293,8 @@ public abstract class PartialCompositeContext implements Context, Resolver {
     {
         PartialCompositeContext ctx = this;
         Name nm = name;
-        NamingEnumeration answer;
-        Hashtable env = p_getEnvironment();
+        NamingEnumeration<NameClassPair> answer;
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
 
         try {
@@ -322,8 +322,8 @@ public abstract class PartialCompositeContext implements Context, Resolver {
     {
         PartialCompositeContext ctx = this;
         Name nm = name;
-        NamingEnumeration answer;
-        Hashtable env = p_getEnvironment();
+        NamingEnumeration<Binding> answer;
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
 
         try {
@@ -347,7 +347,7 @@ public abstract class PartialCompositeContext implements Context, Resolver {
     public void destroySubcontext(Name name) throws NamingException {
         PartialCompositeContext ctx = this;
         Name nm = name;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
 
         try {
@@ -371,7 +371,7 @@ public abstract class PartialCompositeContext implements Context, Resolver {
         PartialCompositeContext ctx = this;
         Name nm = name;
         Context answer;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
 
         try {
@@ -394,7 +394,7 @@ public abstract class PartialCompositeContext implements Context, Resolver {
 
     public Object lookupLink(Name name) throws NamingException {
         PartialCompositeContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
         Object answer;
         Name nm = name;
@@ -421,7 +421,7 @@ public abstract class PartialCompositeContext implements Context, Resolver {
         PartialCompositeContext ctx = this;
         Name nm = name;
         NameParser answer;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
 
         try {
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeDirContext.java b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeDirContext.java
index 29fc31e..cb36780 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeDirContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeDirContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@ import java.util.Hashtable;
 
 import javax.naming.*;
 import javax.naming.directory.*;
-import javax.naming.spi.NamingManager;
 import javax.naming.spi.DirectoryManager;
 
 /*
@@ -83,23 +82,26 @@ public abstract class PartialCompositeDirContext
                                                      Continuation cont)
          throws NamingException;
 
-     protected abstract NamingEnumeration p_search(Name name,
-                                                   Attributes matchingAttributes,
-                                                   String[] attributesToReturn,
-                                                   Continuation cont)
+     protected abstract NamingEnumeration<SearchResult> p_search(
+                            Name name,
+                            Attributes matchingAttributes,
+                            String[] attributesToReturn,
+                            Continuation cont)
          throws NamingException;
 
-     protected abstract NamingEnumeration p_search(Name name,
-                                                   String filter,
-                                                   SearchControls cons,
-                                                   Continuation cont)
+     protected abstract NamingEnumeration<SearchResult> p_search(
+                            Name name,
+                            String filter,
+                            SearchControls cons,
+                            Continuation cont)
          throws NamingException;
 
-     protected abstract NamingEnumeration p_search(Name name,
-                                                   String filterExpr,
-                                                   Object[] filterArgs,
-                                                   SearchControls cons,
-                                                   Continuation cont)
+     protected abstract NamingEnumeration<SearchResult> p_search(
+                            Name name,
+                            String filterExpr,
+                            Object[] filterArgs,
+                            SearchControls cons,
+                            Continuation cont)
          throws NamingException;
 
      protected abstract DirContext p_getSchema(Name name, Continuation cont)
@@ -130,7 +132,7 @@ public abstract class PartialCompositeDirContext
     public Attributes getAttributes(Name name, String[] attrIds)
             throws NamingException {
         PartialCompositeDirContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
         Attributes answer;
         Name nm = name;
@@ -157,7 +159,7 @@ public abstract class PartialCompositeDirContext
     public void modifyAttributes(Name name, int mod_op, Attributes attrs)
             throws NamingException {
         PartialCompositeDirContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
         Name nm = name;
 
@@ -182,7 +184,7 @@ public abstract class PartialCompositeDirContext
     public void modifyAttributes(Name name, ModificationItem[] mods)
             throws NamingException {
         PartialCompositeDirContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
         Name nm = name;
 
@@ -207,7 +209,7 @@ public abstract class PartialCompositeDirContext
     public void bind(Name name, Object obj, Attributes attrs)
             throws NamingException {
         PartialCompositeDirContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
         Name nm = name;
 
@@ -232,7 +234,7 @@ public abstract class PartialCompositeDirContext
     public void rebind(Name name, Object obj, Attributes attrs)
             throws NamingException {
         PartialCompositeDirContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
         Name nm = name;
 
@@ -257,7 +259,7 @@ public abstract class PartialCompositeDirContext
     public DirContext createSubcontext(Name name, Attributes attrs)
             throws NamingException {
         PartialCompositeDirContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
         DirContext answer;
         Name nm = name;
@@ -308,9 +310,9 @@ public abstract class PartialCompositeDirContext
     {
 
         PartialCompositeDirContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
-        NamingEnumeration answer;
+        NamingEnumeration<SearchResult> answer;
         Name nm = name;
 
         try {
@@ -347,9 +349,9 @@ public abstract class PartialCompositeDirContext
     {
 
         PartialCompositeDirContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
-        NamingEnumeration answer;
+        NamingEnumeration<SearchResult> answer;
         Name nm = name;
 
         try {
@@ -385,9 +387,9 @@ public abstract class PartialCompositeDirContext
     {
 
         PartialCompositeDirContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
-        NamingEnumeration answer;
+        NamingEnumeration<SearchResult> answer;
         Name nm = name;
 
         try {
@@ -411,7 +413,7 @@ public abstract class PartialCompositeDirContext
 
     public DirContext getSchema(Name name) throws NamingException {
         PartialCompositeDirContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
         DirContext answer;
         Name nm = name;
@@ -438,7 +440,7 @@ public abstract class PartialCompositeDirContext
     public DirContext getSchemaClassDefinition(Name name)
             throws NamingException {
         PartialCompositeDirContext ctx = this;
-        Hashtable env = p_getEnvironment();
+        Hashtable<?,?> env = p_getEnvironment();
         Continuation cont = new Continuation(name, env);
         DirContext answer;
         Name nm = name;
@@ -509,14 +511,14 @@ public abstract class PartialCompositeDirContext
             throw cont.fillInException(e);
         }
 
-    protected NamingEnumeration a_list(
+    protected NamingEnumeration<NameClassPair> a_list(
         Continuation cont) throws NamingException {
             OperationNotSupportedException e = new
                 OperationNotSupportedException();
             throw cont.fillInException(e);
         }
 
-    protected NamingEnumeration a_listBindings(
+    protected NamingEnumeration<Binding> a_listBindings(
         Continuation cont) throws NamingException {
             OperationNotSupportedException e = new
                 OperationNotSupportedException();
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContainmentFilter.java b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContainmentFilter.java
index ae6183e..3903f06 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContainmentFilter.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContainmentFilter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -56,19 +56,19 @@ public class ContainmentFilter implements AttrFilter {
           if (subset == null)
             return true;  // an empty set is always a subset
 
-            NamingEnumeration m = subset.getAll();
+            NamingEnumeration<? extends Attribute> m = subset.getAll();
             while (m.hasMore()) {
                 if (superset == null) {
                     return false;  // contains nothing
                 }
-                Attribute target = (Attribute) m.next();
+                Attribute target = m.next();
                 Attribute fromSuper = superset.get(target.getID());
                 if (fromSuper == null) {
                     return false;
                 } else {
                     // check whether attribute values match
                     if (target.size() > 0) {
-                        NamingEnumeration vals = target.getAll();
+                        NamingEnumeration<?> vals = target.getAll();
                         while (vals.hasMore()) {
                             if (!fromSuper.contains(vals.next())) {
                                 return false;
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java
index 90ae3f9..ac6eb40 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,10 +33,10 @@ import java.util.*;
   *
   * @author Jon Ruiz
   */
-public class ContextEnumerator implements NamingEnumeration {
+public class ContextEnumerator implements NamingEnumeration<Binding> {
 
     private static boolean debug = false;
-    private NamingEnumeration children = null;
+    private NamingEnumeration<Binding> children = null;
     private Binding currentChild = null;
     private boolean currentReturned = false;
     private Context root;
@@ -77,7 +77,7 @@ public class ContextEnumerator implements NamingEnumeration {
     }
 
     // Subclass should override if it wants to avoid calling obj factory
-    protected NamingEnumeration getImmediateChildren(Context ctx)
+    protected NamingEnumeration<Binding> getImmediateChildren(Context ctx)
         throws NamingException {
             return ctx.listBindings("");
     }
@@ -101,7 +101,7 @@ public class ContextEnumerator implements NamingEnumeration {
         }
     }
 
-    public Object nextElement() {
+    public Binding nextElement() {
         try {
             return next();
         } catch (NamingException e) {
@@ -109,7 +109,7 @@ public class ContextEnumerator implements NamingEnumeration {
         }
     }
 
-    public Object next() throws NamingException {
+    public Binding next() throws NamingException {
         if (!rootProcessed) {
             rootProcessed = true;
             return new Binding("", root.getClass().getName(),
@@ -132,7 +132,7 @@ public class ContextEnumerator implements NamingEnumeration {
     }
 
     private Binding getNextChild() throws NamingException {
-        Binding oldBinding = ((Binding)children.next());
+        Binding oldBinding = children.next();
         Binding newBinding = null;
 
         // if the name is relative, we need to add it to the name of this
@@ -192,7 +192,7 @@ public class ContextEnumerator implements NamingEnumeration {
             if(debug) {System.out.println("getNextDescedant: expanded case");}
 
             // if the current child is expanded, use it's enumerator
-            return (Binding)currentChildEnum.next();
+            return currentChildEnum.next();
 
         } else {
 
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/DirSearch.java b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/DirSearch.java
index 98e0e16..76e0030 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/DirSearch.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/DirSearch.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,7 +34,7 @@ import javax.naming.directory.*;
   * @author Jon Ruiz
   */
 public class DirSearch {
-   public static NamingEnumeration search(DirContext ctx,
+   public static NamingEnumeration<SearchResult> search(DirContext ctx,
        Attributes matchingAttributes,
        String[] attributesToReturn) throws NamingException {
         SearchControls cons = new SearchControls(
@@ -48,7 +48,7 @@ public class DirSearch {
             cons);
     }
 
-    public static NamingEnumeration search(DirContext ctx,
+    public static NamingEnumeration<SearchResult> search(DirContext ctx,
         String filter, SearchControls cons) throws NamingException {
 
         if (cons == null)
@@ -60,7 +60,7 @@ public class DirSearch {
             cons);
     }
 
-    public static NamingEnumeration search(DirContext ctx,
+    public static NamingEnumeration<SearchResult> search(DirContext ctx,
         String filterExpr, Object[] filterArgs, SearchControls cons)
         throws NamingException {
 
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java
index 48d7008..e10ee2a 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,8 +42,8 @@ public class HierMemDirCtx implements DirContext {
     static private final boolean debug = false;
     private static final NameParser defaultParser = new HierarchicalNameParser();
 
-    protected Hashtable myEnv;
-    protected Hashtable bindings;
+    protected Hashtable<String, Object> myEnv;
+    protected Hashtable<Name, Object> bindings;
     protected Attributes attrs;
     protected boolean ignoreCase = false;
     protected NamingException readOnlyEx = null;
@@ -70,12 +70,12 @@ public class HierMemDirCtx implements DirContext {
         this(null, ignoreCase, false);
     }
 
-    public HierMemDirCtx(Hashtable environment, boolean ignoreCase) {
+    public HierMemDirCtx(Hashtable<String, Object> environment, boolean ignoreCase) {
         this(environment, ignoreCase, false);
     }
 
-    protected HierMemDirCtx(Hashtable environment, boolean ignoreCase,
-        boolean useFac) {
+    protected HierMemDirCtx(Hashtable<String, Object> environment,
+        boolean ignoreCase, boolean useFac) {
         myEnv = environment;
         this.ignoreCase = ignoreCase;
         init();
@@ -84,7 +84,7 @@ public class HierMemDirCtx implements DirContext {
 
     private void init() {
         attrs = new BasicAttributes(ignoreCase);
-        bindings = new Hashtable(11, 0.75f);
+        bindings = new Hashtable<>(11, 0.75f);
     }
 
     public Object lookup(String name) throws NamingException {
@@ -326,30 +326,30 @@ public class HierMemDirCtx implements DirContext {
         bindings.put(newname, oldBinding);
     }
 
-    public NamingEnumeration list(String name) throws NamingException {
+    public NamingEnumeration<NameClassPair> list(String name) throws NamingException {
         return list(myParser.parse(name));
     }
 
-    public NamingEnumeration list(Name name) throws NamingException {
+    public NamingEnumeration<NameClassPair> list(Name name) throws NamingException {
         HierMemDirCtx ctx = (HierMemDirCtx) doLookup(name, false);
         return ctx.doList();
     }
 
-    protected NamingEnumeration doList () throws NamingException {
+    protected NamingEnumeration<NameClassPair> doList () throws NamingException {
         return new FlatNames(bindings.keys());
     }
 
 
-    public NamingEnumeration listBindings(String name) throws NamingException {
+    public NamingEnumeration<Binding> listBindings(String name) throws NamingException {
         return listBindings(myParser.parse(name));
     }
 
-    public NamingEnumeration listBindings(Name name) throws NamingException {
+    public NamingEnumeration<Binding> listBindings(Name name) throws NamingException {
         HierMemDirCtx ctx = (HierMemDirCtx)doLookup(name, false);
         return ctx.doListBindings(alwaysUseFactory);
     }
 
-    protected NamingEnumeration doListBindings(boolean useFactory)
+    protected NamingEnumeration<Binding> doListBindings(boolean useFactory)
         throws NamingException {
         return new FlatBindings(bindings, myEnv, useFactory);
     }
@@ -447,28 +447,32 @@ public class HierMemDirCtx implements DirContext {
         return result;
     }
 
+    @SuppressWarnings("unchecked") // clone()
     public Object addToEnvironment(String propName, Object propVal)
             throws NamingException {
-        myEnv = (myEnv == null) ?
-            new Hashtable(11, 0.75f) : (Hashtable)myEnv.clone();
+        myEnv = (myEnv == null)
+                ? new Hashtable<String, Object>(11, 0.75f)
+                : (Hashtable<String, Object>)myEnv.clone();
 
         return myEnv.put(propName, propVal);
     }
 
+    @SuppressWarnings("unchecked") // clone()
     public Object removeFromEnvironment(String propName)
             throws NamingException {
         if (myEnv == null)
             return null;
 
-        myEnv = (Hashtable)myEnv.clone();
+        myEnv = (Hashtable<String, Object>)myEnv.clone();
         return myEnv.remove(propName);
     }
 
-    public Hashtable getEnvironment() throws NamingException {
+    @SuppressWarnings("unchecked") // clone()
+    public Hashtable<String, Object> getEnvironment() throws NamingException {
         if (myEnv == null) {
-            return new Hashtable(5, 0.75f);
+            return new Hashtable<>(5, 0.75f);
         } else {
-            return (Hashtable)myEnv.clone();
+            return (Hashtable<String, Object>)myEnv.clone();
         }
     }
 
@@ -529,10 +533,10 @@ public class HierMemDirCtx implements DirContext {
         }
 
         // turn it into a modification Enumeration and pass it on
-        NamingEnumeration attrEnum = attrs.getAll();
+        NamingEnumeration<? extends Attribute> attrEnum = attrs.getAll();
         ModificationItem[] mods = new ModificationItem[attrs.size()];
         for (int i = 0; i < mods.length && attrEnum.hasMoreElements(); i++) {
-            mods[i] = new ModificationItem(mod_op, (Attribute)attrEnum.next());
+            mods[i] = new ModificationItem(mod_op, attrEnum.next());
         }
 
         modifyAttributes(name, mods);
@@ -564,7 +568,7 @@ public class HierMemDirCtx implements DirContext {
 
         ModificationItem mod;
         Attribute existingAttr, modAttr;
-        NamingEnumeration modVals;
+        NamingEnumeration<?> modVals;
 
         for (int i = 0; i < mods.length; i++) {
             mod = mods[i];
@@ -619,29 +623,29 @@ public class HierMemDirCtx implements DirContext {
         return orig;
     }
 
-    public NamingEnumeration search(String name,
-                                    Attributes matchingAttributes)
+    public NamingEnumeration<SearchResult> search(String name,
+                                                  Attributes matchingAttributes)
         throws NamingException {
         return search(name, matchingAttributes, null);
     }
 
-    public NamingEnumeration search(Name name,
-                                    Attributes matchingAttributes)
+    public NamingEnumeration<SearchResult> search(Name name,
+                                                  Attributes matchingAttributes)
         throws NamingException {
             return search(name, matchingAttributes, null);
     }
 
-     public NamingEnumeration search(String name,
-                                    Attributes matchingAttributes,
-                                    String[] attributesToReturn)
+     public NamingEnumeration<SearchResult> search(String name,
+                                                   Attributes matchingAttributes,
+                                                   String[] attributesToReturn)
         throws NamingException {
         return search(myParser.parse(name), matchingAttributes,
             attributesToReturn);
     }
 
-     public NamingEnumeration search(Name name,
-                                    Attributes matchingAttributes,
-                                    String[] attributesToReturn)
+     public NamingEnumeration<SearchResult> search(Name name,
+                                                   Attributes matchingAttributes,
+                                                   String[] attributesToReturn)
          throws NamingException {
 
         HierMemDirCtx target = (HierMemDirCtx) doLookup(name, false);
@@ -656,9 +660,9 @@ public class HierMemDirCtx implements DirContext {
             false); // alwaysUseFactory ignored because objReturnFlag == false
     }
 
-    public NamingEnumeration search(Name name,
-                                    String filter,
-                                    SearchControls cons)
+    public NamingEnumeration<SearchResult> search(Name name,
+                                                  String filter,
+                                                  SearchControls cons)
         throws NamingException {
         DirContext target = (DirContext) doLookup(name, false);
 
@@ -671,27 +675,27 @@ public class HierMemDirCtx implements DirContext {
             cons, this, myEnv, alwaysUseFactory);
     }
 
-     public NamingEnumeration search(Name name,
-                                    String filterExpr,
-                                    Object[] filterArgs,
-                                    SearchControls cons)
+     public NamingEnumeration<SearchResult> search(Name name,
+                                                   String filterExpr,
+                                                   Object[] filterArgs,
+                                                   SearchControls cons)
             throws NamingException {
 
         String strfilter = SearchFilter.format(filterExpr, filterArgs);
         return search(name, strfilter, cons);
     }
 
-    public NamingEnumeration search(String name,
-                                    String filter,
-                                    SearchControls cons)
+    public NamingEnumeration<SearchResult> search(String name,
+                                                  String filter,
+                                                  SearchControls cons)
         throws NamingException {
         return search(myParser.parse(name), filter, cons);
     }
 
-    public NamingEnumeration search(String name,
-                                    String filterExpr,
-                                    Object[] filterArgs,
-                                    SearchControls cons)
+    public NamingEnumeration<SearchResult> search(String name,
+                                                  String filterExpr,
+                                                  Object[] filterArgs,
+                                                  SearchControls cons)
             throws NamingException {
         return search(myParser.parse(name), filterExpr, filterArgs, cons);
     }
@@ -761,15 +765,17 @@ public class HierMemDirCtx implements DirContext {
         myParser = parser;
     }
 
-    // Class for enumerating name/class pairs
-    private class FlatNames implements NamingEnumeration {
-        Enumeration names;
+    /*
+     * Common base class for FlatNames and FlatBindings.
+     */
+    private abstract class BaseFlatNames<T> implements NamingEnumeration<T> {
+        Enumeration<Name> names;
 
-        FlatNames (Enumeration names) {
+        BaseFlatNames (Enumeration<Name> names) {
             this.names = names;
         }
 
-        public boolean hasMoreElements() {
+        public final boolean hasMoreElements() {
             try {
                 return hasMore();
             } catch (NamingException e) {
@@ -777,11 +783,11 @@ public class HierMemDirCtx implements DirContext {
             }
         }
 
-        public boolean hasMore() throws NamingException {
+        public final boolean hasMore() throws NamingException {
             return names.hasMoreElements();
         }
 
-        public Object nextElement() {
+        public final T nextElement() {
             try {
                 return next();
             } catch (NamingException e) {
@@ -789,32 +795,45 @@ public class HierMemDirCtx implements DirContext {
             }
         }
 
-        public Object next() throws NamingException {
-            Name name = (Name)names.nextElement();
-            String className = bindings.get(name).getClass().getName();
-            return new NameClassPair(name.toString(), className);
-        }
+        public abstract T next() throws NamingException;
 
-        public void close() {
+        public final void close() {
             names = null;
         }
     }
 
-   // Class for enumerating bindings
-    private final class FlatBindings extends FlatNames {
-        private Hashtable bds;
-        private Hashtable env;
+    // Class for enumerating name/class pairs
+    private final class FlatNames extends BaseFlatNames<NameClassPair> {
+        FlatNames (Enumeration<Name> names) {
+            super(names);
+        }
+
+        @Override
+        public NameClassPair next() throws NamingException {
+            Name name = names.nextElement();
+            String className = bindings.get(name).getClass().getName();
+            return new NameClassPair(name.toString(), className);
+        }
+    }
+
+    // Class for enumerating bindings
+    private final class FlatBindings extends BaseFlatNames<Binding> {
+        private Hashtable<Name, Object> bds;
+        private Hashtable<String, Object> env;
         private boolean useFactory;
 
-        FlatBindings(Hashtable bindings, Hashtable env, boolean useFactory) {
+        FlatBindings(Hashtable<Name, Object> bindings,
+                     Hashtable<String, Object> env,
+                     boolean useFactory) {
             super(bindings.keys());
             this.env = env;
             this.bds = bindings;
             this.useFactory = useFactory;
         }
 
-        public Object next() throws NamingException {
-            Name name = (Name)names.nextElement();
+        @Override
+        public Binding next() throws NamingException {
+            Name name = names.nextElement();
 
             HierMemDirCtx obj = (HierMemDirCtx)bds.get(name);
 
@@ -849,7 +868,7 @@ public class HierMemDirCtx implements DirContext {
             super(context, scope, contextName, returnSelf);
         }
 
-        protected NamingEnumeration getImmediateChildren(Context ctx)
+        protected NamingEnumeration<Binding> getImmediateChildren(Context ctx)
             throws NamingException {
                 return ((HierMemDirCtx)ctx).doListBindings(false);
         }
@@ -872,14 +891,14 @@ final class HierarchicalName extends CompoundName {
 
     // Creates an empty name
     HierarchicalName() {
-        super(new Enumeration() {
-            public boolean hasMoreElements() {return false;}
-            public Object nextElement() {throw new NoSuchElementException();}
-        },
-            HierarchicalNameParser.mySyntax);
+        super(new Enumeration<String>() {
+                  public boolean hasMoreElements() {return false;}
+                  public String nextElement() {throw new NoSuchElementException();}
+              },
+              HierarchicalNameParser.mySyntax);
     }
 
-    HierarchicalName(Enumeration comps, Properties syntax) {
+    HierarchicalName(Enumeration<String> comps, Properties syntax) {
         super(comps, syntax);
     }
 
@@ -891,7 +910,7 @@ final class HierarchicalName extends CompoundName {
     public int hashCode() {
         if (hashValue == -1) {
 
-            String name = toString().toUpperCase();
+            String name = toString().toUpperCase(Locale.ENGLISH);
             int len = name.length();
             int off = 0;
             char val[] = new char[len];
@@ -907,12 +926,12 @@ final class HierarchicalName extends CompoundName {
     }
 
     public Name getPrefix(int posn) {
-        Enumeration comps = super.getPrefix(posn).getAll();
+        Enumeration<String> comps = super.getPrefix(posn).getAll();
         return (new HierarchicalName(comps, mySyntax));
     }
 
     public Name getSuffix(int posn) {
-        Enumeration comps = super.getSuffix(posn).getAll();
+        Enumeration<String> comps = super.getSuffix(posn).getAll();
         return (new HierarchicalName(comps, mySyntax));
     }
 
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java
index f4a41f8..0456301 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,16 +47,17 @@ import javax.naming.spi.DirectoryManager;
 import java.util.NoSuchElementException;
 import java.util.Hashtable;
 
-final public class LazySearchEnumerationImpl implements NamingEnumeration {
-    private NamingEnumeration candidates;
+final public class LazySearchEnumerationImpl
+        implements NamingEnumeration<SearchResult> {
+    private NamingEnumeration<Binding> candidates;
     private SearchResult nextMatch = null;
     private SearchControls cons;
     private AttrFilter filter;
     private Context context;
-    private Hashtable env;
+    private Hashtable<String, Object> env;
     private boolean useFactory = true;
 
-    public LazySearchEnumerationImpl(NamingEnumeration candidates,
+    public LazySearchEnumerationImpl(NamingEnumeration<Binding> candidates,
         AttrFilter filter, SearchControls cons) throws NamingException {
             this.candidates = candidates;
             this.filter = filter;
@@ -68,9 +69,10 @@ final public class LazySearchEnumerationImpl implements NamingEnumeration {
             }
     }
 
-    public LazySearchEnumerationImpl(NamingEnumeration candidates,
+    public LazySearchEnumerationImpl(NamingEnumeration<Binding> candidates,
         AttrFilter filter, SearchControls cons,
-        Context ctx, Hashtable env, boolean useFactory) throws NamingException {
+        Context ctx, Hashtable<String, Object> env, boolean useFactory)
+        throws NamingException {
 
             this.candidates = candidates;
             this.filter = filter;
@@ -86,9 +88,9 @@ final public class LazySearchEnumerationImpl implements NamingEnumeration {
     }
 
 
-    public LazySearchEnumerationImpl(NamingEnumeration candidates,
+    public LazySearchEnumerationImpl(NamingEnumeration<Binding> candidates,
         AttrFilter filter, SearchControls cons,
-        Context ctx, Hashtable env) throws NamingException {
+        Context ctx, Hashtable<String, Object> env) throws NamingException {
             this(candidates, filter, cons, ctx, env, true);
     }
 
@@ -105,7 +107,7 @@ final public class LazySearchEnumerationImpl implements NamingEnumeration {
         }
     }
 
-    public Object nextElement() {
+    public SearchResult nextElement() {
         try {
             return findNextMatch(true);
         } catch (NamingException e) {
@@ -113,7 +115,7 @@ final public class LazySearchEnumerationImpl implements NamingEnumeration {
         }
     }
 
-    public Object next() throws NamingException {
+    public SearchResult next() throws NamingException {
         // find and remove from list
         return (findNextMatch(true));
     }
@@ -138,7 +140,7 @@ final public class LazySearchEnumerationImpl implements NamingEnumeration {
             Object obj;
             Attributes targetAttrs;
             while (candidates.hasMore()) {
-                next = (Binding)candidates.next();
+                next = candidates.next();
                 obj = next.getObject();
                 if (obj instanceof DirContext) {
                     targetAttrs = ((DirContext)(obj)).getAttributes("");
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java
index 5406d56..351e5f2 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@ import javax.naming.directory.*;
 import java.util.Enumeration;
 import java.util.StringTokenizer;
 import java.util.Vector;
+import java.util.Locale;
 
 /**
   * A class for parsing LDAP search filters (defined in RFC 1960, 2254)
@@ -203,11 +204,11 @@ public class SearchFilter implements AttrFilter {
      * A class for dealing with compound filters ("and" & "or" filters).
      */
     final class CompoundFilter implements StringFilter {
-        private Vector  subFilters;
+        private Vector<StringFilter>  subFilters;
         private boolean polarity;
 
         CompoundFilter(boolean polarity) {
-            subFilters = new Vector();
+            subFilters = new Vector<>();
             this.polarity = polarity;
         }
 
@@ -223,7 +224,7 @@ public class SearchFilter implements AttrFilter {
 
         public boolean check(Attributes targetAttrs) throws NamingException {
             for(int i = 0; i<subFilters.size(); i++) {
-                StringFilter filter = (StringFilter)subFilters.elementAt(i);
+                StringFilter filter = subFilters.elementAt(i);
                 if(filter.check(targetAttrs) != this.polarity) {
                     return !polarity;
                 }
@@ -330,7 +331,7 @@ public class SearchFilter implements AttrFilter {
         }
 
         public boolean check(Attributes targetAttrs) {
-            Enumeration candidates;
+            Enumeration<?> candidates;
 
             try {
                 Attribute attr = targetAttrs.get(attrID);
@@ -395,19 +396,21 @@ public class SearchFilter implements AttrFilter {
 
             // do we need to begin with the first token?
             if(proto.charAt(0) != WILDCARD_TOKEN &&
-               !value.toString().toLowerCase().startsWith(
-                      subStrs.nextToken().toLowerCase())) {
-                if(debug) {System.out.println("faild initial test");}
+                    !value.toString().toLowerCase(Locale.ENGLISH).startsWith(
+                        subStrs.nextToken().toLowerCase(Locale.ENGLISH))) {
+                if(debug) {
+                    System.out.println("faild initial test");
+                }
                 return false;
             }
 
-
             while(subStrs.hasMoreTokens()) {
                 String currentStr = subStrs.nextToken();
                 if (debug) {System.out.println("looking for \"" +
                                                currentStr +"\"");}
-                currentPos = value.toLowerCase().indexOf(
-                       currentStr.toLowerCase(), currentPos);
+                currentPos = value.toLowerCase(Locale.ENGLISH).indexOf(
+                       currentStr.toLowerCase(Locale.ENGLISH), currentPos);
+
                 if(currentPos == -1) {
                     return false;
                 }
@@ -441,15 +444,15 @@ public class SearchFilter implements AttrFilter {
         String answer;
         answer = "(& ";
         Attribute attr;
-        for (NamingEnumeration e = attrs.getAll(); e.hasMore(); ) {
-            attr = (Attribute)e.next();
+        for (NamingEnumeration<? extends Attribute> e = attrs.getAll();
+             e.hasMore(); ) {
+            attr = e.next();
             if (attr.size() == 0 || (attr.size() == 1 && attr.get() == null)) {
                 // only checking presence of attribute
                 answer += "(" + attr.getID() + "=" + "*)";
             } else {
-                for (NamingEnumeration ve = attr.getAll();
-                     ve.hasMore();
-                        ) {
+                for (NamingEnumeration<?> ve = attr.getAll();
+                     ve.hasMore(); ) {
                     String val = getEncodedStringRep(ve.next());
                     if (val != null) {
                         answer += "(" + attr.getID() + "=" + val + ")";
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java b/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java
index c6453f4..3d8757b 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -48,11 +48,12 @@ import java.net.MalformedURLException;
  * @author Rosanna Lee
  */
 abstract public class GenericURLContext implements Context {
-    protected Hashtable myEnv = null;
+    protected Hashtable<String, Object> myEnv = null;
 
-    public GenericURLContext(Hashtable env) {
+    @SuppressWarnings("unchecked") // Expect Hashtable<String, Object>
+    public GenericURLContext(Hashtable<?,?> env) {
         // context that is not tied to any specific URL
-        myEnv = env;  // copied on write
+        myEnv = (Hashtable<String, Object>)env;  // copied on write
     }
 
     public void close() throws NamingException {
@@ -75,7 +76,7 @@ abstract public class GenericURLContext implements Context {
       * must be in sync wrt how URLs are parsed and returned.
       */
     abstract protected ResolveResult getRootURLContext(String url,
-        Hashtable env) throws NamingException;
+        Hashtable<?,?> env) throws NamingException;
 
     /**
       * Returns the suffix of the url. The result should be identical to
@@ -487,27 +488,31 @@ abstract public class GenericURLContext implements Context {
         return result;
     }
 
+    @SuppressWarnings("unchecked") // clone()
     public Object removeFromEnvironment(String propName)
         throws NamingException {
             if (myEnv == null) {
                 return null;
             }
-            myEnv = (Hashtable)myEnv.clone();
+            myEnv = (Hashtable<String, Object>)myEnv.clone();
             return myEnv.remove(propName);
     }
 
+    @SuppressWarnings("unchecked") // clone()
     public Object addToEnvironment(String propName, Object propVal)
         throws NamingException {
-            myEnv = (myEnv == null) ?
-                new Hashtable(11, 0.75f) : (Hashtable)myEnv.clone();
+            myEnv = (myEnv == null)
+                    ? new Hashtable<String, Object>(11, 0.75f)
+                    : (Hashtable<String, Object>)myEnv.clone();
             return myEnv.put(propName, propVal);
     }
 
-    public Hashtable getEnvironment() throws NamingException {
+    @SuppressWarnings("unchecked") // clone()
+    public Hashtable<String, Object> getEnvironment() throws NamingException {
         if (myEnv == null) {
-            return new Hashtable(5, 0.75f);
+            return new Hashtable<>(5, 0.75f);
         } else {
-            return (Hashtable)myEnv.clone();
+            return (Hashtable<String, Object>)myEnv.clone();
         }
     }
 
diff --git a/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLDirContext.java b/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLDirContext.java
index c9da3fd..9d4755e 100644
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLDirContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLDirContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -50,7 +50,7 @@ import java.util.Hashtable;
 abstract public class GenericURLDirContext extends GenericURLContext
 implements DirContext {
 
-    protected GenericURLDirContext(Hashtable env) {
+    protected GenericURLDirContext(Hashtable<?,?> env) {
         super(env);
     }
 
diff --git a/jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContext.java b/jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContext.java
index 68df743..162da4b 100644
--- a/jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,7 +45,7 @@ import com.sun.jndi.toolkit.url.GenericURLDirContext;
 
 public class dnsURLContext extends GenericURLDirContext {
 
-    public dnsURLContext(Hashtable env) {
+    public dnsURLContext(Hashtable<?,?> env) {
         super(env);
     }
 
@@ -54,7 +54,7 @@ public class dnsURLContext extends GenericURLDirContext {
      * to the named DNS server, and returns the domain name as the
      * remaining name.
      */
-    protected ResolveResult getRootURLContext(String url, Hashtable env)
+    protected ResolveResult getRootURLContext(String url, Hashtable<?,?> env)
             throws NamingException {
 
         DnsUrl dnsUrl;
diff --git a/jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContextFactory.java b/jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContextFactory.java
index b0d345f..29530d9 100644
--- a/jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContextFactory.java
+++ b/jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContextFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -62,7 +62,7 @@ public class dnsURLContextFactory implements ObjectFactory {
         }
     }
 
-    private static Object getUsingURL(String url, Hashtable env)
+    private static Object getUsingURL(String url, Hashtable<?,?> env)
             throws NamingException {
 
         dnsURLContext urlCtx = new dnsURLContext(env);
@@ -78,7 +78,7 @@ public class dnsURLContextFactory implements ObjectFactory {
      * If all URLs fail, throw one of the exceptions arbitrarily.
      * Not pretty, but potentially more informative than returning null.
      */
-    private static Object getUsingURLs(String[] urls, Hashtable env)
+    private static Object getUsingURLs(String[] urls, Hashtable<?,?> env)
             throws NamingException {
 
         if (urls.length == 0) {
diff --git a/jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContext.java b/jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContext.java
index 8e3a2c9..445fa49 100644
--- a/jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,7 @@ import com.sun.jndi.cosnaming.CorbanameUrl;
 public class iiopURLContext
         extends com.sun.jndi.toolkit.url.GenericURLContext {
 
-    iiopURLContext(Hashtable env) {
+    iiopURLContext(Hashtable<?,?> env) {
         super(env);
     }
 
@@ -56,7 +56,7 @@ public class iiopURLContext
       * context on for the ORB at 'localhost' on port 900,
       * and returns as the remaining name "rest/of/name".
       */
-    protected ResolveResult getRootURLContext(String name, Hashtable env)
+    protected ResolveResult getRootURLContext(String name, Hashtable<?,?> env)
     throws NamingException {
         return iiopURLContextFactory.getUsingURLIgnoreRest(name, env);
     }
diff --git a/jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContextFactory.java b/jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContextFactory.java
index 59a7f78..1371581 100644
--- a/jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContextFactory.java
+++ b/jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContextFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -68,12 +68,12 @@ public class iiopURLContextFactory implements ObjectFactory {
       * context on for the ORB at 'localhost' on port 900,
       * and returns as the remaining name "rest/of/name".
       */
-    static ResolveResult getUsingURLIgnoreRest(String url, Hashtable env)
+    static ResolveResult getUsingURLIgnoreRest(String url, Hashtable<?,?> env)
         throws NamingException {
         return CNCtx.createUsingURL(url, env);
     }
 
-    private static Object getUsingURL(String url, Hashtable env)
+    private static Object getUsingURL(String url, Hashtable<?,?> env)
         throws NamingException {
         ResolveResult res = getUsingURLIgnoreRest(url, env);
 
@@ -85,7 +85,7 @@ public class iiopURLContextFactory implements ObjectFactory {
         }
     }
 
-    private static Object getUsingURLs(String[] urls, Hashtable env) {
+    private static Object getUsingURLs(String[] urls, Hashtable<?,?> env) {
         for (int i = 0; i < urls.length; i++) {
             String url = urls[i];
             try {
diff --git a/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContext.java b/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContext.java
index 8111aba..6143363 100644
--- a/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,7 @@ import com.sun.jndi.ldap.LdapURL;
 final public class ldapURLContext
         extends com.sun.jndi.toolkit.url.GenericURLDirContext {
 
-    ldapURLContext(Hashtable env) {
+    ldapURLContext(Hashtable<?,?> env) {
         super(env);
     }
 
@@ -56,7 +56,7 @@ final public class ldapURLContext
       * context on the server 'localhost' on port 389,
       * and returns as the remaining name "o=widget, c=us".
       */
-    protected ResolveResult getRootURLContext(String name, Hashtable env)
+    protected ResolveResult getRootURLContext(String name, Hashtable<?,?> env)
     throws NamingException {
         return ldapURLContextFactory.getUsingURLIgnoreRootDN(name, env);
     }
@@ -171,7 +171,8 @@ final public class ldapURLContext
         }
     }
 
-    public NamingEnumeration list(String name)  throws NamingException {
+    public NamingEnumeration<NameClassPair> list(String name)
+            throws NamingException {
         if (LdapURL.hasQueryComponents(name)) {
             throw new InvalidNameException(name);
         } else {
@@ -179,7 +180,8 @@ final public class ldapURLContext
         }
     }
 
-    public NamingEnumeration list(Name name) throws NamingException {
+    public NamingEnumeration<NameClassPair> list(Name name)
+            throws NamingException {
         if (LdapURL.hasQueryComponents(name.get(0))) {
             throw new InvalidNameException(name.toString());
         } else {
@@ -187,7 +189,8 @@ final public class ldapURLContext
         }
     }
 
-    public NamingEnumeration listBindings(String name) throws NamingException {
+    public NamingEnumeration<Binding> listBindings(String name)
+            throws NamingException {
         if (LdapURL.hasQueryComponents(name)) {
             throw new InvalidNameException(name);
         } else {
@@ -195,7 +198,8 @@ final public class ldapURLContext
         }
     }
 
-    public NamingEnumeration listBindings(Name name) throws NamingException {
+    public NamingEnumeration<Binding> listBindings(Name name)
+            throws NamingException {
         if (LdapURL.hasQueryComponents(name.get(0))) {
             throw new InvalidNameException(name.toString());
         } else {
@@ -447,7 +451,7 @@ final public class ldapURLContext
     }
 
     // divert the search operation when the LDAP URL has query components
-    public NamingEnumeration search(String name,
+    public NamingEnumeration<SearchResult> search(String name,
         Attributes matchingAttributes)
         throws NamingException {
 
@@ -459,7 +463,7 @@ final public class ldapURLContext
     }
 
     // divert the search operation when name has a single component
-    public NamingEnumeration search(Name name,
+    public NamingEnumeration<SearchResult> search(Name name,
         Attributes matchingAttributes)
         throws NamingException {
         if (name.size() == 1) {
@@ -472,7 +476,7 @@ final public class ldapURLContext
     }
 
     // divert the search operation when the LDAP URL has query components
-    public NamingEnumeration search(String name,
+    public NamingEnumeration<SearchResult> search(String name,
         Attributes matchingAttributes,
         String[] attributesToReturn)
         throws NamingException {
@@ -485,7 +489,7 @@ final public class ldapURLContext
     }
 
     // divert the search operation when name has a single component
-    public NamingEnumeration search(Name name,
+    public NamingEnumeration<SearchResult> search(Name name,
         Attributes matchingAttributes,
         String[] attributesToReturn)
         throws NamingException {
@@ -500,7 +504,7 @@ final public class ldapURLContext
     }
 
     // divert the search operation when the LDAP URL has query components
-    public NamingEnumeration search(String name,
+    public NamingEnumeration<SearchResult> search(String name,
         String filter,
         SearchControls cons)
         throws NamingException {
@@ -513,7 +517,7 @@ final public class ldapURLContext
     }
 
     // divert the search operation when name has a single component
-    public NamingEnumeration search(Name name,
+    public NamingEnumeration<SearchResult> search(Name name,
         String filter,
         SearchControls cons)
         throws NamingException {
@@ -528,7 +532,7 @@ final public class ldapURLContext
     }
 
     // divert the search operation when the LDAP URL has query components
-    public NamingEnumeration search(String name,
+    public NamingEnumeration<SearchResult> search(String name,
         String filterExpr,
         Object[] filterArgs,
         SearchControls cons)
@@ -542,7 +546,7 @@ final public class ldapURLContext
     }
 
     // divert the search operation when name has a single component
-    public NamingEnumeration search(Name name,
+    public NamingEnumeration<SearchResult> search(Name name,
         String filterExpr,
         Object[] filterArgs,
         SearchControls cons)
@@ -559,7 +563,7 @@ final public class ldapURLContext
 
     // Search using the LDAP URL in name.
     // LDAP URL query components override the search argments.
-    private NamingEnumeration searchUsingURL(String name)
+    private NamingEnumeration<SearchResult> searchUsingURL(String name)
         throws NamingException {
 
         LdapURL url = new LdapURL(name);
diff --git a/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContextFactory.java b/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContextFactory.java
index 72094c0..a79e691 100644
--- a/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContextFactory.java
+++ b/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContextFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -53,7 +53,7 @@ public class ldapURLContextFactory implements ObjectFactory {
         }
     }
 
-    static ResolveResult getUsingURLIgnoreRootDN(String url, Hashtable env)
+    static ResolveResult getUsingURLIgnoreRootDN(String url, Hashtable<?,?> env)
             throws NamingException {
         LdapURL ldapUrl = new LdapURL(url);
         DirContext ctx = new LdapCtx("", ldapUrl.getHost(), ldapUrl.getPort(),
diff --git a/jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContext.java b/jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContext.java
index 2ca9bec..4c6c781 100644
--- a/jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContext.java
+++ b/jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
 package com.sun.jndi.url.rmi;
 
 import java.util.Hashtable;
-import java.rmi.registry.LocateRegistry;
 
 import javax.naming.*;
 import javax.naming.spi.ResolveResult;
@@ -48,7 +47,7 @@ import com.sun.jndi.rmi.registry.RegistryContext;
  */
 public class rmiURLContext extends GenericURLContext {
 
-    public rmiURLContext(Hashtable env) {
+    public rmiURLContext(Hashtable<?,?> env) {
         super(env);
     }
 
@@ -57,7 +56,7 @@ public class rmiURLContext extends GenericURLContext {
      * RMI registry, and returns the atomic object name as the
      * remaining name.
      */
-    protected ResolveResult getRootURLContext(String url, Hashtable env)
+    protected ResolveResult getRootURLContext(String url, Hashtable<?,?> env)
             throws NamingException
     {
         if (!url.startsWith("rmi:")) {
diff --git a/jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContextFactory.java b/jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContextFactory.java
index cb137ae..314e450 100644
--- a/jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContextFactory.java
+++ b/jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContextFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -63,7 +63,7 @@ public class rmiURLContextFactory implements ObjectFactory {
         }
     }
 
-    private static Object getUsingURL(String url, Hashtable env)
+    private static Object getUsingURL(String url, Hashtable<?,?> env)
             throws NamingException
     {
         rmiURLContext urlCtx = new rmiURLContext(env);
@@ -79,7 +79,7 @@ public class rmiURLContextFactory implements ObjectFactory {
      * If all URLs fail, throw one of the exceptions arbitrarily.
      * Not pretty, but potentially more informative than returning null.
      */
-    private static Object getUsingURLs(String[] urls, Hashtable env)
+    private static Object getUsingURLs(String[] urls, Hashtable<?,?> env)
             throws NamingException
     {
         if (urls.length == 0) {
diff --git a/jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java b/jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java
index f5122d7..224367e 100644
--- a/jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java
+++ b/jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,8 @@ import javax.naming.NamingException;
 
 // no need to implement Enumeration since this is only for internal use
 public final class FactoryEnumeration {
-    private List factories;
+    // List<NamedWeakReference<Class | Object>>
+    private List<NamedWeakReference<Object>> factories;
     private int posn = 0;
     private ClassLoader loader;
 
@@ -59,7 +60,8 @@ public final class FactoryEnumeration {
      * @param factories A non-null list
      * @param loader    The class loader of the list's contents
      */
-    FactoryEnumeration(List factories, ClassLoader loader) {
+    FactoryEnumeration(List<NamedWeakReference<Object>> factories,
+                       ClassLoader loader) {
         this.factories = factories;
         this.loader = loader;
     }
@@ -67,7 +69,7 @@ public final class FactoryEnumeration {
     public Object next() throws NamingException {
         synchronized (factories) {
 
-            NamedWeakReference ref = (NamedWeakReference) factories.get(posn++);
+            NamedWeakReference<Object> ref = factories.get(posn++);
             Object answer = ref.get();
             if ((answer != null) && !(answer instanceof Class)) {
                 return answer;
@@ -81,7 +83,7 @@ public final class FactoryEnumeration {
                 }
                 // Instantiate Class to get factory
                 answer = ((Class) answer).newInstance();
-                ref = new NamedWeakReference(answer, className);
+                ref = new NamedWeakReference<>(answer, className);
                 factories.set(posn-1, ref);  // replace Class object or null
                 return answer;
             } catch (ClassNotFoundException e) {
diff --git a/jdk/src/share/classes/com/sun/naming/internal/NamedWeakReference.java b/jdk/src/share/classes/com/sun/naming/internal/NamedWeakReference.java
index 6f576cf..00c026a 100644
--- a/jdk/src/share/classes/com/sun/naming/internal/NamedWeakReference.java
+++ b/jdk/src/share/classes/com/sun/naming/internal/NamedWeakReference.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,11 +33,11 @@ package com.sun.naming.internal;
  */
 
 
-class NamedWeakReference extends java.lang.ref.WeakReference {
+class NamedWeakReference<T> extends java.lang.ref.WeakReference<T> {
 
     private final String name;
 
-    NamedWeakReference(Object referent, String name) {
+    NamedWeakReference(T referent, String name) {
         super(referent);
         this.name = name;
     }
diff --git a/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java b/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java
index db0cbd6..de0c110 100644
--- a/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java
+++ b/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,11 +27,9 @@ package com.sun.naming.internal;
 
 import java.io.InputStream;
 import java.io.IOException;
-import java.net.URL;
 import java.lang.ref.WeakReference;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Map;
@@ -89,7 +87,9 @@ public final class ResourceManager {
      * One from application resource files is keyed on the thread's
      * context class loader.
      */
-    private static final WeakHashMap propertiesCache = new WeakHashMap(11);
+    // WeakHashMap<Class | ClassLoader, Hashtable>
+    private static final WeakHashMap<Object, Hashtable<? super String, Object>>
+            propertiesCache = new WeakHashMap<>(11);
 
     /*
      * A cache of factory objects (ObjectFactory, StateFactory, ControlFactory).
@@ -99,7 +99,9 @@ public final class ResourceManager {
      * weakly referenced so as not to prevent GC of the class loader.
      * Used in getFactories().
      */
-    private static final WeakHashMap factoryCache = new WeakHashMap(11);
+    private static final
+        WeakHashMap<ClassLoader, Map<String, List<NamedWeakReference<Object>>>>
+            factoryCache = new WeakHashMap<>(11);
 
     /*
      * A cache of URL factory objects (ObjectFactory).
@@ -110,8 +112,11 @@ public final class ResourceManager {
      * NO_FACTORY if a previous search revealed no factory.  Used in
      * getFactory().
      */
-    private static final WeakHashMap urlFactoryCache = new WeakHashMap(11);
-    private static final WeakReference NO_FACTORY = new WeakReference(null);
+    private static final
+        WeakHashMap<ClassLoader, Map<String, WeakReference<Object>>>
+            urlFactoryCache = new WeakHashMap<>(11);
+    private static final WeakReference<Object> NO_FACTORY =
+            new WeakReference<>(null);
 
     /**
      * A class to allow JNDI properties be specified as applet parameters
@@ -152,10 +157,9 @@ public final class ResourceManager {
                 throw new ClassCastException(applet.getClass().getName());
             try {
                 return getMethod.invoke(applet, name);
-            } catch (InvocationTargetException e) {
+            } catch (InvocationTargetException |
+                     IllegalAccessException e) {
                 throw new AssertionError(e);
-            } catch (IllegalAccessException iae) {
-                throw new AssertionError(iae);
             }
         }
     }
@@ -183,12 +187,14 @@ public final class ResourceManager {
      * @throws NamingException if an error occurs while reading a
      *          resource file
      */
-    public static Hashtable getInitialEnvironment(Hashtable env)
+    @SuppressWarnings("unchecked")
+    public static Hashtable<?, ?> getInitialEnvironment(
+            Hashtable<?, ?> env)
             throws NamingException
     {
         String[] props = VersionHelper.PROPS;   // system/applet properties
         if (env == null) {
-            env = new Hashtable(11);
+            env = new Hashtable<>(11);
         }
         Object applet = env.get(Context.APPLET);
 
@@ -213,14 +219,14 @@ public final class ResourceManager {
                         : helper.getJndiProperty(i);
                 }
                 if (val != null) {
-                    env.put(props[i], val);
+                    ((Hashtable<String, Object>)env).put(props[i], val);
                 }
             }
         }
 
         // Merge the above with the values read from all application
         // resource files.  Colon-separated lists are concatenated.
-        mergeTables(env, getApplicationResources());
+        mergeTables((Hashtable<Object, Object>)env, getApplicationResources());
         return env;
     }
 
@@ -244,7 +250,7 @@ public final class ResourceManager {
       * @throws NamingException if an error occurs while reading the provider
       * resource file.
       */
-    public static String getProperty(String propName, Hashtable env,
+    public static String getProperty(String propName, Hashtable<?,?> env,
         Context ctx, boolean concat)
             throws NamingException {
 
@@ -305,8 +311,8 @@ public final class ResourceManager {
      * @see javax.naming.spi.DirectoryManager#getStateToBind
      * @see javax.naming.ldap.ControlFactory#getControlInstance
      */
-    public static FactoryEnumeration getFactories(String propName, Hashtable env,
-        Context ctx) throws NamingException {
+    public static FactoryEnumeration getFactories(String propName,
+        Hashtable<?,?> env, Context ctx) throws NamingException {
 
         String facProp = getProperty(propName, env, ctx, true);
         if (facProp == null)
@@ -315,17 +321,18 @@ public final class ResourceManager {
         // Cache is based on context class loader and property val
         ClassLoader loader = helper.getContextClassLoader();
 
-        Map perLoaderCache = null;
+        Map<String, List<NamedWeakReference<Object>>> perLoaderCache = null;
         synchronized (factoryCache) {
-            perLoaderCache = (Map) factoryCache.get(loader);
+            perLoaderCache = factoryCache.get(loader);
             if (perLoaderCache == null) {
-                perLoaderCache = new HashMap(11);
+                perLoaderCache = new HashMap<>(11);
                 factoryCache.put(loader, perLoaderCache);
             }
         }
 
         synchronized (perLoaderCache) {
-            List factories = (List) perLoaderCache.get(facProp);
+            List<NamedWeakReference<Object>> factories =
+                    perLoaderCache.get(facProp);
             if (factories != null) {
                 // Cached list
                 return factories.size() == 0 ? null
@@ -334,13 +341,13 @@ public final class ResourceManager {
                 // Populate list with classes named in facProp; skipping
                 // those that we cannot load
                 StringTokenizer parser = new StringTokenizer(facProp, ":");
-                factories = new ArrayList(5);
+                factories = new ArrayList<>(5);
                 while (parser.hasMoreTokens()) {
                     try {
                         // System.out.println("loading");
                         String className = parser.nextToken();
-                        Class c = helper.loadClass(className, loader);
-                        factories.add(new NamedWeakReference(c, className));
+                        Class<?> c = helper.loadClass(className, loader);
+                        factories.add(new NamedWeakReference<Object>(c, className));
                     } catch (Exception e) {
                         // ignore ClassNotFoundException, IllegalArgumentException
                     }
@@ -388,8 +395,9 @@ public final class ResourceManager {
      * @see javax.naming.spi.NamingManager#getURLContext
      * @see javax.naming.spi.NamingManager#getURLObject
      */
-    public static Object getFactory(String propName, Hashtable env, Context ctx,
-        String classSuffix, String defaultPkgPrefix) throws NamingException {
+    public static Object getFactory(String propName, Hashtable<?,?> env,
+            Context ctx, String classSuffix, String defaultPkgPrefix)
+            throws NamingException {
 
         // Merge property with provider property and supplied default
         String facProp = getProperty(propName, env, ctx, true);
@@ -403,11 +411,11 @@ public final class ResourceManager {
         ClassLoader loader = helper.getContextClassLoader();
         String key = classSuffix + " " + facProp;
 
-        Map perLoaderCache = null;
+        Map<String, WeakReference<Object>> perLoaderCache = null;
         synchronized (urlFactoryCache) {
-            perLoaderCache = (Map) urlFactoryCache.get(loader);
+            perLoaderCache = urlFactoryCache.get(loader);
             if (perLoaderCache == null) {
-                perLoaderCache = new HashMap(11);
+                perLoaderCache = new HashMap<>(11);
                 urlFactoryCache.put(loader, perLoaderCache);
             }
         }
@@ -415,7 +423,7 @@ public final class ResourceManager {
         synchronized (perLoaderCache) {
             Object factory = null;
 
-            WeakReference factoryRef = (WeakReference) perLoaderCache.get(key);
+            WeakReference<Object> factoryRef = perLoaderCache.get(key);
             if (factoryRef == NO_FACTORY) {
                 return null;
             } else if (factoryRef != null) {
@@ -451,7 +459,7 @@ public final class ResourceManager {
 
             // Cache it.
             perLoaderCache.put(key, (factory != null)
-                                        ? new WeakReference(factory)
+                                        ? new WeakReference<>(factory)
                                         : NO_FACTORY);
             return factory;
         }
@@ -468,16 +476,18 @@ public final class ResourceManager {
      *
      * @throws NamingException if an error occurs while reading the file.
      */
-    private static Hashtable getProviderResource(Object obj)
+    private static Hashtable<? super String, Object>
+        getProviderResource(Object obj)
             throws NamingException
     {
         if (obj == null) {
-            return (new Hashtable(1));
+            return (new Hashtable<>(1));
         }
         synchronized (propertiesCache) {
-            Class c = obj.getClass();
+            Class<?> c = obj.getClass();
 
-            Hashtable props = (Hashtable)propertiesCache.get(c);
+            Hashtable<? super String, Object> props =
+                    propertiesCache.get(c);
             if (props != null) {
                 return props;
             }
@@ -518,22 +528,23 @@ public final class ResourceManager {
      * @throws NamingException if an error occurs while reading a resource
      *  file.
      */
-    private static Hashtable getApplicationResources() throws NamingException {
+    private static Hashtable<? super String, Object> getApplicationResources()
+            throws NamingException {
 
         ClassLoader cl = helper.getContextClassLoader();
 
         synchronized (propertiesCache) {
-            Hashtable result = (Hashtable)propertiesCache.get(cl);
+            Hashtable<? super String, Object> result = propertiesCache.get(cl);
             if (result != null) {
                 return result;
             }
 
             try {
-                NamingEnumeration resources =
+                NamingEnumeration<InputStream> resources =
                     helper.getResources(cl, APP_RESOURCE_FILE_NAME);
                 while (resources.hasMore()) {
                     Properties props = new Properties();
-                    props.load((InputStream)resources.next());
+                    props.load(resources.next());
 
                     if (result == null) {
                         result = props;
@@ -563,7 +574,7 @@ public final class ResourceManager {
                 throw ne;
             }
             if (result == null) {
-                result = new Hashtable(11);
+                result = new Hashtable<>(11);
             }
             propertiesCache.put(cl, result);
             return result;
@@ -577,11 +588,10 @@ public final class ResourceManager {
      * standard JNDI properties that specify colon-separated lists,
      * the values are concatenated and stored in props1.
      */
-    private static void mergeTables(Hashtable props1, Hashtable props2) {
-        Enumeration keys = props2.keys();
-
-        while (keys.hasMoreElements()) {
-            String prop = (String)keys.nextElement();
+    private static void mergeTables(Hashtable<? super String, Object> props1,
+                                    Hashtable<? super String, Object> props2) {
+        for (Object key : props2.keySet()) {
+            String prop = (String)key;
             Object val1 = props1.get(prop);
             if (val1 == null) {
                 props1.put(prop, props2.get(prop));
diff --git a/jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java b/jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java
index 875360b..63590be 100644
--- a/jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java
+++ b/jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@ import java.io.InputStream;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.util.Enumeration;
 import java.util.StringTokenizer;
 import java.util.Vector;
 
@@ -78,13 +77,13 @@ public abstract class VersionHelper {
         return helper;
     }
 
-    public abstract Class loadClass(String className)
+    public abstract Class<?> loadClass(String className)
         throws ClassNotFoundException;
 
-    abstract Class loadClass(String className, ClassLoader cl)
+    abstract Class<?> loadClass(String className, ClassLoader cl)
         throws ClassNotFoundException;
 
-    public abstract Class loadClass(String className, String codebase)
+    public abstract Class<?> loadClass(String className, String codebase)
         throws ClassNotFoundException, MalformedURLException;
 
     /*
@@ -106,7 +105,7 @@ public abstract class VersionHelper {
      * Returns the resource of a given name associated with a particular
      * class (never null), or null if none can be found.
      */
-    abstract InputStream getResourceAsStream(Class c, String name);
+    abstract InputStream getResourceAsStream(Class<?> c, String name);
 
     /*
      * Returns an input stream for a file in <java.home>/lib,
@@ -122,7 +121,8 @@ public abstract class VersionHelper {
      * loader.  Null represents the bootstrap class loader in some
      * Java implementations.
      */
-    abstract NamingEnumeration getResources(ClassLoader cl, String name)
+    abstract NamingEnumeration<InputStream> getResources(
+            ClassLoader cl, String name)
         throws IOException;
 
     /*
@@ -137,13 +137,13 @@ public abstract class VersionHelper {
         throws MalformedURLException {
         // Parse codebase into separate URLs
         StringTokenizer parser = new StringTokenizer(codebase);
-        Vector vec = new Vector(10);
+        Vector<String> vec = new Vector<>(10);
         while (parser.hasMoreTokens()) {
             vec.addElement(parser.nextToken());
         }
         String[] url = new String[vec.size()];
         for (int i = 0; i < url.length; i++) {
-            url[i] = (String)vec.elementAt(i);
+            url[i] = vec.elementAt(i);
         }
 
         URL[] urlArray = new URL[url.length];
diff --git a/jdk/src/share/classes/com/sun/naming/internal/VersionHelper12.java b/jdk/src/share/classes/com/sun/naming/internal/VersionHelper12.java
index cf18386..6ea764b 100644
--- a/jdk/src/share/classes/com/sun/naming/internal/VersionHelper12.java
+++ b/jdk/src/share/classes/com/sun/naming/internal/VersionHelper12.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,7 +35,6 @@ import java.security.PrivilegedAction;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 import java.util.Enumeration;
-import java.util.Hashtable;
 import java.util.NoSuchElementException;
 import java.util.Properties;
 
@@ -58,7 +57,7 @@ final class VersionHelper12 extends VersionHelper {
 
     VersionHelper12() {} // Disallow external from creating one of these.
 
-    public Class loadClass(String className) throws ClassNotFoundException {
+    public Class<?> loadClass(String className) throws ClassNotFoundException {
         ClassLoader cl = getContextClassLoader();
         return Class.forName(className, true, cl);
     }
@@ -66,7 +65,7 @@ final class VersionHelper12 extends VersionHelper {
     /**
       * Package private.
       */
-    Class loadClass(String className, ClassLoader cl)
+    Class<?> loadClass(String className, ClassLoader cl)
         throws ClassNotFoundException {
         return Class.forName(className, true, cl);
     }
@@ -75,7 +74,7 @@ final class VersionHelper12 extends VersionHelper {
      * @param className A non-null fully qualified class name.
      * @param codebase A non-null, space-separated list of URL strings.
      */
-    public Class loadClass(String className, String codebase)
+    public Class<?> loadClass(String className, String codebase)
         throws ClassNotFoundException, MalformedURLException {
         ClassLoader cl;
 
@@ -86,9 +85,9 @@ final class VersionHelper12 extends VersionHelper {
     }
 
     String getJndiProperty(final int i) {
-        return (String) AccessController.doPrivileged(
-            new PrivilegedAction() {
-                public Object run() {
+        return AccessController.doPrivileged(
+            new PrivilegedAction<String>() {
+                public String run() {
                     try {
                         return System.getProperty(PROPS[i]);
                     } catch (SecurityException e) {
@@ -103,9 +102,9 @@ final class VersionHelper12 extends VersionHelper {
         if (getSystemPropsFailed) {
             return null;        // after one failure, don't bother trying again
         }
-        Properties sysProps = (Properties) AccessController.doPrivileged(
-            new PrivilegedAction() {
-                public Object run() {
+        Properties sysProps = AccessController.doPrivileged(
+            new PrivilegedAction<Properties>() {
+                public Properties run() {
                     try {
                         return System.getProperties();
                     } catch (SecurityException e) {
@@ -125,10 +124,10 @@ final class VersionHelper12 extends VersionHelper {
         return jProps;
     }
 
-    InputStream getResourceAsStream(final Class c, final String name) {
-        return (InputStream) AccessController.doPrivileged(
-            new PrivilegedAction() {
-                public Object run() {
+    InputStream getResourceAsStream(final Class<?> c, final String name) {
+        return AccessController.doPrivileged(
+            new PrivilegedAction<InputStream>() {
+                public InputStream run() {
                     return c.getResourceAsStream(name);
                 }
             }
@@ -136,9 +135,9 @@ final class VersionHelper12 extends VersionHelper {
     }
 
     InputStream getJavaHomeLibStream(final String filename) {
-        return (InputStream) AccessController.doPrivileged(
-            new PrivilegedAction() {
-                public Object run() {
+        return AccessController.doPrivileged(
+            new PrivilegedAction<InputStream>() {
+                public InputStream run() {
                     try {
                         String javahome = System.getProperty("java.home");
                         if (javahome == null) {
@@ -155,14 +154,13 @@ final class VersionHelper12 extends VersionHelper {
         );
     }
 
-    NamingEnumeration getResources(final ClassLoader cl, final String name)
-            throws IOException
-    {
-        Enumeration urls;
+    NamingEnumeration<InputStream> getResources(final ClassLoader cl,
+            final String name) throws IOException {
+        Enumeration<URL> urls;
         try {
-            urls = (Enumeration) AccessController.doPrivileged(
-                new PrivilegedExceptionAction() {
-                    public Object run() throws IOException {
+            urls = AccessController.doPrivileged(
+                new PrivilegedExceptionAction<Enumeration<URL>>() {
+                    public Enumeration<URL> run() throws IOException {
                         return (cl == null)
                             ? ClassLoader.getSystemResources(name)
                             : cl.getResources(name);
@@ -176,9 +174,9 @@ final class VersionHelper12 extends VersionHelper {
     }
 
     ClassLoader getContextClassLoader() {
-        return (ClassLoader) AccessController.doPrivileged(
-            new PrivilegedAction() {
-                public Object run() {
+        return AccessController.doPrivileged(
+            new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
                     return Thread.currentThread().getContextClassLoader();
                 }
             }
@@ -193,13 +191,13 @@ final class VersionHelper12 extends VersionHelper {
      * This is used to enumerate the resources under a foreign codebase.
      * This class is not MT-safe.
      */
-    class InputStreamEnumeration implements NamingEnumeration {
+    class InputStreamEnumeration implements NamingEnumeration<InputStream> {
 
-        private final Enumeration urls;
+        private final Enumeration<URL> urls;
 
-        private Object nextElement = null;
+        private InputStream nextElement = null;
 
-        InputStreamEnumeration(Enumeration urls) {
+        InputStreamEnumeration(Enumeration<URL> urls) {
             this.urls = urls;
         }
 
@@ -207,13 +205,13 @@ final class VersionHelper12 extends VersionHelper {
          * Returns the next InputStream, or null if there are no more.
          * An InputStream that cannot be opened is skipped.
          */
-        private Object getNextElement() {
+        private InputStream getNextElement() {
             return AccessController.doPrivileged(
-                new PrivilegedAction() {
-                    public Object run() {
+                new PrivilegedAction<InputStream>() {
+                    public InputStream run() {
                         while (urls.hasMoreElements()) {
                             try {
-                                return ((URL)urls.nextElement()).openStream();
+                                return urls.nextElement().openStream();
                             } catch (IOException e) {
                                 // skip this URL
                             }
@@ -236,9 +234,9 @@ final class VersionHelper12 extends VersionHelper {
             return hasMore();
         }
 
-        public Object next() {
+        public InputStream next() {
             if (hasMore()) {
-                Object res = nextElement;
+                InputStream res = nextElement;
                 nextElement = null;
                 return res;
             } else {
@@ -246,7 +244,7 @@ final class VersionHelper12 extends VersionHelper {
             }
         }
 
-        public Object nextElement() {
+        public InputStream nextElement() {
             return next();
         }
 
diff --git a/jdk/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java b/jdk/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java
index de749ff..781510a 100644
--- a/jdk/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java
+++ b/jdk/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -54,13 +54,13 @@ public abstract class BasicAuthenticator extends Authenticator {
 
     public Result authenticate (HttpExchange t)
     {
-        Headers rmap = (Headers) t.getRequestHeaders();
+        Headers rmap = t.getRequestHeaders();
         /*
          * look for auth token
          */
         String auth = rmap.getFirst ("Authorization");
         if (auth == null) {
-            Headers map = (Headers) t.getResponseHeaders();
+            Headers map = t.getResponseHeaders();
             map.set ("WWW-Authenticate", "Basic realm=" + "\""+realm+"\"");
             return new Authenticator.Retry (401);
         }
@@ -83,7 +83,7 @@ public abstract class BasicAuthenticator extends Authenticator {
         } else {
             /* reject the request again with 401 */
 
-            Headers map = (Headers) t.getResponseHeaders();
+            Headers map = t.getResponseHeaders();
             map.set ("WWW-Authenticate", "Basic realm=" + "\""+realm+"\"");
             return new Authenticator.Failure(401);
         }
diff --git a/jdk/src/share/classes/com/sun/net/httpserver/Headers.java b/jdk/src/share/classes/com/sun/net/httpserver/Headers.java
index 0d4172f..afe3c21 100644
--- a/jdk/src/share/classes/com/sun/net/httpserver/Headers.java
+++ b/jdk/src/share/classes/com/sun/net/httpserver/Headers.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -117,7 +117,7 @@ public class Headers implements Map<String,List<String>> {
          * @return the first string value associated with the key
          */
         public String getFirst (String key) {
-            List<String> l = map.get(normalize((String)key));
+            List<String> l = map.get(normalize(key));
             if (l == null) {
                 return null;
             }
diff --git a/jdk/src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java b/jdk/src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java
index 53ba648..ec8b91c 100644
--- a/jdk/src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java
+++ b/jdk/src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -81,29 +81,27 @@ public abstract class HttpServerProvider {
         if (cn == null)
             return false;
         try {
-            Class c = Class.forName(cn, true,
+            Class<?> c = Class.forName(cn, true,
                                     ClassLoader.getSystemClassLoader());
             provider = (HttpServerProvider)c.newInstance();
             return true;
-        } catch (ClassNotFoundException x) {
-            throw new ServiceConfigurationError(x);
-        } catch (IllegalAccessException x) {
-            throw new ServiceConfigurationError(x);
-        } catch (InstantiationException x) {
-            throw new ServiceConfigurationError(x);
-        } catch (SecurityException x) {
+        } catch (ClassNotFoundException |
+                 IllegalAccessException |
+                 InstantiationException |
+                 SecurityException x) {
             throw new ServiceConfigurationError(x);
         }
     }
 
     private static boolean loadProviderAsService() {
-        Iterator i = Service.providers(HttpServerProvider.class,
+        @SuppressWarnings("unchecked")
+        Iterator<HttpServerProvider> i = Service.providers(HttpServerProvider.class,
                                        ClassLoader.getSystemClassLoader());
         for (;;) {
             try {
                 if (!i.hasNext())
                     return false;
-                provider = (HttpServerProvider)i.next();
+                provider = i.next();
                 return true;
             } catch (ServiceConfigurationError sce) {
                 if (sce.getCause() instanceof SecurityException) {
diff --git a/jdk/src/share/classes/com/sun/net/ssl/SSLSecurity.java b/jdk/src/share/classes/com/sun/net/ssl/SSLSecurity.java
index ba80627..cac7298 100644
--- a/jdk/src/share/classes/com/sun/net/ssl/SSLSecurity.java
+++ b/jdk/src/share/classes/com/sun/net/ssl/SSLSecurity.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -77,7 +77,7 @@ final class SSLSecurity {
     {
         Provider provider = service.getProvider();
         String className = service.getClassName();
-        Class implClass;
+        Class<?> implClass;
         try {
             ClassLoader cl = provider.getClass().getClassLoader();
             if (cl == null) {
@@ -133,8 +133,8 @@ final class SSLSecurity {
              * or someone has removed classes from the jsse.jar file.
              */
 
-            Class typeClassJavax;
-            Class typeClassCom;
+            Class<?> typeClassJavax;
+            Class<?> typeClassCom;
             Object obj = null;
 
             /*
@@ -237,7 +237,7 @@ final class SSLSecurity {
     /*
      * Checks whether one class is the superclass of another
      */
-    private static boolean checkSuperclass(Class subclass, Class superclass) {
+    private static boolean checkSuperclass(Class<?> subclass, Class<?> superclass) {
         if ((subclass == null) || (superclass == null))
                 return false;
 
@@ -276,7 +276,6 @@ final class SSLSecurity {
  * object.  This also mean that anything going down into the SPI
  * needs to be wrapped, as well as anything coming back up.
  */
-
 final class SSLContextSpiWrapper extends SSLContextSpi {
 
     private javax.net.ssl.SSLContext theSSLContext;
diff --git a/jdk/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/DelegateHttpsURLConnection.java b/jdk/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/DelegateHttpsURLConnection.java
index 3dda066..2fcbc4e 100644
--- a/jdk/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/DelegateHttpsURLConnection.java
+++ b/jdk/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/DelegateHttpsURLConnection.java
@@ -165,10 +165,10 @@ class VerifierWrapper implements javax.net.ssl.HostnameVerifier {
     private static String getServername(X509Certificate peerCert) {
         try {
             // compare to subjectAltNames if dnsName is present
-            Collection subjAltNames = peerCert.getSubjectAlternativeNames();
+            Collection<List<?>> subjAltNames = peerCert.getSubjectAlternativeNames();
             if (subjAltNames != null) {
-                for (Iterator itr = subjAltNames.iterator(); itr.hasNext(); ) {
-                    List next = (List)itr.next();
+                for (Iterator<List<?>> itr = subjAltNames.iterator(); itr.hasNext(); ) {
+                    List<?> next = itr.next();
                     if (((Integer)next.get(0)).intValue() == 2) {
                         // compare dNSName with host in url
                         String dnsName = ((String)next.get(1));
diff --git a/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java b/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java
index 7646c26..43a0fc1 100644
--- a/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java
+++ b/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java
@@ -26,13 +26,10 @@
 package com.sun.security.auth;
 
 import java.io.*;
-import java.lang.RuntimePermission;
 import java.lang.reflect.*;
-import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.*;
 
-import java.security.AccessController;
 import java.security.CodeSource;
 import java.security.KeyStore;
 import java.security.KeyStoreException;
@@ -260,7 +257,7 @@ public class PolicyFile extends javax.security.auth.Policy {
     private static final String AUTH_POLICY_URL = "auth.policy.url.";
 
     private Vector<PolicyEntry> policyEntries;
-    private Hashtable aliasMapping;
+    private Hashtable<Object, Object> aliasMapping;
 
     private boolean initialized = false;
 
@@ -293,7 +290,7 @@ public class PolicyFile extends javax.security.auth.Policy {
             return;
 
         policyEntries = new Vector<PolicyEntry>();
-        aliasMapping = new Hashtable(11);
+        aliasMapping = new Hashtable<Object, Object>(11);
 
         initPolicyFile();
         initialized = true;
@@ -403,7 +400,7 @@ public class PolicyFile extends javax.security.auth.Policy {
                 }
                 try {
                     extra_policy = PropertyExpander.expand(extra_policy);
-                    URL policyURL;;
+                    URL policyURL;
                     File policyFile = new File(extra_policy);
                     if (policyFile.exists()) {
                         policyURL =
@@ -702,8 +699,8 @@ public class PolicyFile extends javax.security.auth.Policy {
                InvocationTargetException
     {
         //XXX we might want to keep a hash of created factories...
-        Class pc = Class.forName(type);
-        Constructor c = pc.getConstructor(PARAMS);
+        Class<?> pc = Class.forName(type);
+        Constructor<?> c = pc.getConstructor(PARAMS);
         return (Permission) c.newInstance(new Object[] { name, actions });
     }
 
@@ -1088,16 +1085,20 @@ public class PolicyFile extends javax.security.auth.Policy {
             // because the earlier CodeSource.implies succeeded
             SubjectCodeSource scs = (SubjectCodeSource)accCs;
 
-            Set<Principal> principalSet = null;
+            Set<? extends Principal> principalSet = null;
             try {
-                Class pClass = Class.forName(principal.principalClass, false,
-                                ClassLoader.getSystemClassLoader());
+                // principal.principalClass should extend Principal
+                // If it doesn't, we should stop here with a ClassCastException.
+                @SuppressWarnings("unchecked")
+                Class<? extends Principal> pClass = (Class<? extends Principal>)
+                        Class.forName(principal.principalClass, false,
+                                      ClassLoader.getSystemClassLoader());
                 principalSet = scs.getSubject().getPrincipals(pClass);
             } catch (Exception e) {
                 if (debug != null) {
                     debug.println("problem finding Principal Class " +
-                                "when expanding SELF permission: " +
-                                e.toString());
+                                  "when expanding SELF permission: " +
+                                  e.toString());
                 }
             }
 
@@ -1107,11 +1108,9 @@ public class PolicyFile extends javax.security.auth.Policy {
             }
 
             String[][] info = new String[principalSet.size()][2];
-            java.util.Iterator<Principal> pIterator = principalSet.iterator();
 
             int i = 0;
-            while (pIterator.hasNext()) {
-                Principal p = pIterator.next();
+            for (Principal p : principalSet) {
                 info[i][0] = p.getClass().getName();
                 info[i][1] = p.getName();
                 i++;
diff --git a/jdk/src/share/classes/com/sun/security/auth/SubjectCodeSource.java b/jdk/src/share/classes/com/sun/security/auth/SubjectCodeSource.java
index d149aac..35d3bf1 100644
--- a/jdk/src/share/classes/com/sun/security/auth/SubjectCodeSource.java
+++ b/jdk/src/share/classes/com/sun/security/auth/SubjectCodeSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -205,10 +205,9 @@ class SubjectCodeSource extends CodeSource implements java.io.Serializable {
 
                 // handle PrincipalComparators
 
-                Class principalComparator = Class.forName(pppe.principalClass,
-                                                        true,
-                                                        sysClassLoader);
-                Constructor c = principalComparator.getConstructor(PARAMS);
+                Class<?> principalComparator = Class.forName(
+                        pppe.principalClass, true, sysClassLoader);
+                Constructor<?> c = principalComparator.getConstructor(PARAMS);
                 PrincipalComparator pc =
                         (PrincipalComparator)c.newInstance
                         (new Object[] { pppe.principalName });
diff --git a/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java b/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java
index a19428e..cb68cfc 100644
--- a/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java
+++ b/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java
@@ -32,16 +32,13 @@ import javax.security.auth.spi.*;
 import javax.naming.*;
 import javax.naming.directory.*;
 
-import java.io.IOException;
 import java.util.Map;
 import java.util.LinkedList;
-import java.util.ResourceBundle;
 
 import com.sun.security.auth.UnixPrincipal;
 import com.sun.security.auth.UnixNumericUserPrincipal;
 import com.sun.security.auth.UnixNumericGroupPrincipal;
 
-import sun.security.util.AuthResources;
 
 /**
  * <p> The module prompts for a username and password
@@ -189,7 +186,7 @@ public class JndiLoginModule implements LoginModule {
     // initial state
     private Subject subject;
     private CallbackHandler callbackHandler;
-    private Map sharedState;
+    private Map<String, Object> sharedState;
     private Map<String, ?> options;
 
     private static final String CRYPT = "{crypt}";
@@ -217,13 +214,18 @@ public class JndiLoginModule implements LoginModule {
      *                  <code>Configuration</code> for this particular
      *                  <code>LoginModule</code>.
      */
+    // Unchecked warning from (Map<String, Object>)sharedState is safe
+    // since javax.security.auth.login.LoginContext passes a raw HashMap.
+    // Unchecked warnings from options.get(String) are safe since we are
+    // passing known keys.
+    @SuppressWarnings("unchecked")
     public void initialize(Subject subject, CallbackHandler callbackHandler,
                            Map<String,?> sharedState,
                            Map<String,?> options) {
 
         this.subject = subject;
         this.callbackHandler = callbackHandler;
-        this.sharedState = sharedState;
+        this.sharedState = (Map<String, Object>)sharedState;
         this.options = options;
 
         // initialize any configured options
diff --git a/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java b/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java
index ad18233..e5d88cf 100644
--- a/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java
+++ b/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java
@@ -25,11 +25,9 @@
 
 package com.sun.security.auth.module;
 
-import javax.security.auth.x500.X500Principal;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.PushbackInputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.security.AuthProvider;
@@ -39,7 +37,6 @@ import java.security.KeyStore;
 import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
 import java.security.NoSuchProviderException;
-import java.security.Principal;
 import java.security.PrivateKey;
 import java.security.Provider;
 import java.security.UnrecoverableKeyException;
@@ -49,13 +46,10 @@ import java.util.Arrays;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.Map;
-import java.util.ResourceBundle;
 import javax.security.auth.Destroyable;
 import javax.security.auth.DestroyFailedException;
 import javax.security.auth.Subject;
 import javax.security.auth.x500.*;
-import javax.security.auth.Subject;
-import javax.security.auth.x500.*;
 import javax.security.auth.callback.Callback;
 import javax.security.auth.callback.CallbackHandler;
 import javax.security.auth.callback.ConfirmationCallback;
@@ -67,7 +61,6 @@ import javax.security.auth.login.FailedLoginException;
 import javax.security.auth.login.LoginException;
 import javax.security.auth.spi.LoginModule;
 
-import sun.security.util.AuthResources;
 import sun.security.util.Password;
 
 /**
@@ -159,7 +152,7 @@ public class KeyStoreLoginModule implements LoginModule {
 
     private Subject subject;
     private CallbackHandler callbackHandler;
-    private Map sharedState;
+    private Map<String, Object> sharedState;
     private Map<String, ?> options;
 
     private char[] keyStorePassword;
@@ -202,7 +195,9 @@ public class KeyStoreLoginModule implements LoginModule {
      *                  <code>Configuration</code> for this particular
      *                  <code>LoginModule</code>.
      */
-
+    // Unchecked warning from (Map<String, Object>)sharedState is safe
+    // since javax.security.auth.login.LoginContext passes a raw HashMap.
+    @SuppressWarnings("unchecked")
     public void initialize(Subject subject,
                            CallbackHandler callbackHandler,
                            Map<String,?> sharedState,
@@ -210,7 +205,7 @@ public class KeyStoreLoginModule implements LoginModule {
     {
         this.subject = subject;
         this.callbackHandler = callbackHandler;
-        this.sharedState = sharedState;
+        this.sharedState = (Map<String, Object>)sharedState;
         this.options = options;
 
         processOptions();
@@ -337,6 +332,7 @@ public class KeyStoreLoginModule implements LoginModule {
     }
 
     /** Get the alias and passwords to use for looking up in the KeyStore. */
+    @SuppressWarnings("fallthrough")
     private void getAliasAndPasswords(int env) throws LoginException {
         if (callbackHandler == null) {
 
diff --git a/jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java b/jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java
index 5da153d..5c2580c 100644
--- a/jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java
+++ b/jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java
@@ -367,7 +367,7 @@ public class Krb5LoginModule implements LoginModule {
     // initial state
     private Subject subject;
     private CallbackHandler callbackHandler;
-    private Map sharedState;
+    private Map<String, Object> sharedState;
     private Map<String, ?> options;
 
     // configurable option
@@ -432,7 +432,11 @@ public class Krb5LoginModule implements LoginModule {
      *                  <code>Configuration</code> for this particular
      *                  <code>LoginModule</code>.
      */
-
+    // Unchecked warning from (Map<String, Object>)sharedState is safe
+    // since javax.security.auth.login.LoginContext passes a raw HashMap.
+    // Unchecked warnings from options.get(String) are safe since we are
+    // passing known keys.
+    @SuppressWarnings("unchecked")
     public void initialize(Subject subject,
                            CallbackHandler callbackHandler,
                            Map<String, ?> sharedState,
@@ -440,7 +444,7 @@ public class Krb5LoginModule implements LoginModule {
 
         this.subject = subject;
         this.callbackHandler = callbackHandler;
-        this.sharedState = sharedState;
+        this.sharedState = (Map<String, Object>)sharedState;
         this.options = options;
 
         // initialize any configured options
diff --git a/jdk/src/share/classes/com/sun/security/auth/module/LdapLoginModule.java b/jdk/src/share/classes/com/sun/security/auth/module/LdapLoginModule.java
index dbea72c..10fa6b6 100644
--- a/jdk/src/share/classes/com/sun/security/auth/module/LdapLoginModule.java
+++ b/jdk/src/share/classes/com/sun/security/auth/module/LdapLoginModule.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,14 +25,12 @@
 
 package com.sun.security.auth.module;
 
-import java.io.IOException;
 import java.security.AccessController;
 import java.net.SocketPermission;
 import java.security.Principal;
 import java.security.PrivilegedAction;
 import java.util.Arrays;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.ResourceBundle;
 import java.util.regex.Matcher;
@@ -50,7 +48,6 @@ import javax.security.auth.spi.*;
 import com.sun.security.auth.LdapPrincipal;
 import com.sun.security.auth.UserPrincipal;
 
-import sun.security.util.AuthResources;
 
 /**
  * This {@link LoginModule} performs LDAP-based authentication.
@@ -366,12 +363,12 @@ public class LdapLoginModule implements LoginModule {
     // Initial state
     private Subject subject;
     private CallbackHandler callbackHandler;
-    private Map sharedState;
+    private Map<String, Object> sharedState;
     private Map<String, ?> options;
     private LdapContext ctx;
     private Matcher identityMatcher = null;
     private Matcher filterMatcher = null;
-    private Hashtable ldapEnvironment;
+    private Hashtable<String, Object> ldapEnvironment;
     private SearchControls constraints = null;
 
     /**
@@ -385,15 +382,18 @@ public class LdapLoginModule implements LoginModule {
      *                  <code>Configuration</code> for this particular
      *                  <code>LoginModule</code>.
      */
+    // Unchecked warning from (Map<String, Object>)sharedState is safe
+    // since javax.security.auth.login.LoginContext passes a raw HashMap.
+    @SuppressWarnings("unchecked")
     public void initialize(Subject subject, CallbackHandler callbackHandler,
                         Map<String, ?> sharedState, Map<String, ?> options) {
 
         this.subject = subject;
         this.callbackHandler = callbackHandler;
-        this.sharedState = sharedState;
+        this.sharedState = (Map<String, Object>)sharedState;
         this.options = options;
 
-        ldapEnvironment = new Hashtable(9);
+        ldapEnvironment = new Hashtable<String, Object>(9);
         ldapEnvironment.put(Context.INITIAL_CONTEXT_FACTORY,
             "com.sun.jndi.ldap.LdapCtxFactory");
 
diff --git a/jdk/src/share/classes/com/sun/security/auth/module/NTSystem.java b/jdk/src/share/classes/com/sun/security/auth/module/NTSystem.java
index 5ed6c35..51f9a2c 100644
--- a/jdk/src/share/classes/com/sun/security/auth/module/NTSystem.java
+++ b/jdk/src/share/classes/com/sun/security/auth/module/NTSystem.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,7 @@ package com.sun.security.auth.module;
 public class NTSystem {
 
     private native void getCurrent(boolean debug);
+    private native long getImpersonationToken0();
 
     private String userName;
     private String domain;
@@ -132,10 +133,14 @@ public class NTSystem {
      *
      * @return an impersonation token for the current NT user.
      */
-    public long getImpersonationToken() {
+    public synchronized long getImpersonationToken() {
+        if (impersonationToken == 0) {
+            impersonationToken = getImpersonationToken0();
+        }
         return impersonationToken;
     }
 
+
     private void loadNative() {
         System.loadLibrary("jaas_nt");
     }
diff --git a/jdk/src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java b/jdk/src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java
index e56ff74..e07072d 100644
--- a/jdk/src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java
+++ b/jdk/src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@ import java.security.BasicPermission;
  * <p>The target name is the {@link InquireType} allowed.
  */
 public final class InquireSecContextPermission extends BasicPermission {
+    private static final long serialVersionUID = -7131173349668647297L;
 
     /**
      * Constructs a new {@code InquireSecContextPermission} object with
diff --git a/jdk/src/share/classes/com/sun/security/ntlm/Client.java b/jdk/src/share/classes/com/sun/security/ntlm/Client.java
index aed8f37..f4be91a 100644
--- a/jdk/src/share/classes/com/sun/security/ntlm/Client.java
+++ b/jdk/src/share/classes/com/sun/security/ntlm/Client.java
@@ -69,14 +69,16 @@ public final class Client extends NTLM {
      * This method does not make any modification to this parameter, it neither
      * needs to access the content of this parameter after this method call,
      * so you are free to modify or nullify this parameter after this call.
-     * @throws NullPointerException if {@code username} or {@code password} is null.
-     * @throws NTLMException if {@code version} is illegal
+     * @throws NTLMException if {@code username} or {@code password} is null,
+     * or {@code version} is illegal.
+     *
      */
     public Client(String version, String hostname, String username,
             String domain, char[] password) throws NTLMException {
         super(version);
         if ((username == null || password == null)) {
-            throw new NullPointerException("username/password cannot be null");
+            throw new NTLMException(NTLMException.PROTOCOL,
+                    "username/password cannot be null");
         }
         this.hostname = hostname;
         this.username = username;
@@ -117,13 +119,13 @@ public final class Client extends NTLM {
      * @param nonce random 8-byte array to be used in message generation,
      * must not be null except for original NTLM v1
      * @return the message generated
-     * @throws NullPointerException if {@code type2} or {@code nonce} is null
-     * for NTLM v1.
-     * @throws NTLMException if the incoming message is invalid
+     * @throws NTLMException if the incoming message is invalid, or
+     * {@code nonce} is null for NTLM v1.
      */
     public byte[] type3(byte[] type2, byte[] nonce) throws NTLMException {
         if (type2 == null || (v != Version.NTLM && nonce == null)) {
-            throw new NullPointerException("type2 and nonce cannot be null");
+            throw new NTLMException(NTLMException.PROTOCOL,
+                    "type2 and nonce cannot be null");
         }
         debug("NTLM Client: Type 2 received\n");
         debug(type2);
diff --git a/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java b/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java
index 226405e..b8e6092 100644
--- a/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java
+++ b/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java
@@ -33,6 +33,7 @@ import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.security.spec.InvalidKeySpecException;
 import java.util.Arrays;
+import java.util.Locale;
 import javax.crypto.BadPaddingException;
 import javax.crypto.Cipher;
 import javax.crypto.IllegalBlockSizeException;
@@ -410,7 +411,8 @@ class NTLM {
 
     static byte[] getP1(char[] password) {
         try {
-            return new String(password).toUpperCase().getBytes("ISO8859_1");
+            return new String(password).toUpperCase(
+                                    Locale.ENGLISH).getBytes("ISO8859_1");
         } catch (UnsupportedEncodingException ex) {
             return null;
         }
diff --git a/jdk/src/share/classes/com/sun/security/ntlm/NTLMException.java b/jdk/src/share/classes/com/sun/security/ntlm/NTLMException.java
index 273825d..7275b4a 100644
--- a/jdk/src/share/classes/com/sun/security/ntlm/NTLMException.java
+++ b/jdk/src/share/classes/com/sun/security/ntlm/NTLMException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@ import java.security.GeneralSecurityException;
  * An NTLM-related Exception
  */
 public final class NTLMException extends GeneralSecurityException {
+    private static final long serialVersionUID = -3298539507906689430L;
 
     /**
      * If the incoming packet is invalid.
@@ -64,6 +65,11 @@ public final class NTLMException extends GeneralSecurityException {
      */
     public final static int BAD_VERSION = 5;
 
+    /**
+     * Protocol errors.
+     */
+    public final static int PROTOCOL = 6;
+
     private int errorCode;
 
     /**
diff --git a/jdk/src/share/classes/com/sun/security/ntlm/Server.java b/jdk/src/share/classes/com/sun/security/ntlm/Server.java
index 1871375..bc23d47 100644
--- a/jdk/src/share/classes/com/sun/security/ntlm/Server.java
+++ b/jdk/src/share/classes/com/sun/security/ntlm/Server.java
@@ -62,12 +62,13 @@ public abstract class Server extends NTLM {
      * is selected, authentication succeeds if one of LM (or LMv2) or
      * NTLM (or NTLMv2) is verified.
      * @param domain the domain, must not be null
-     * @throws NullPointerException if {@code domain} is null.
+     * @throws NTLMException if {@code domain} is null.
      */
     public Server(String version, String domain) throws NTLMException {
         super(version);
         if (domain == null) {
-            throw new NullPointerException("domain cannot be null");
+            throw new NTLMException(NTLMException.PROTOCOL,
+                    "domain cannot be null");
         }
         this.allVersion = (version == null);
         this.domain = domain;
@@ -80,12 +81,13 @@ public abstract class Server extends NTLM {
      * @param nonce the random 8-byte array to be used in message generation,
      * must not be null
      * @return the message generated
-     * @throws NullPointerException if type1 or nonce is null
-     * @throws NTLMException if the incoming message is invalid
+     * @throws NTLMException if the incoming message is invalid, or
+     * {@code nonce} is null.
      */
-    public byte[] type2(byte[] type1, byte[] nonce) {
+    public byte[] type2(byte[] type1, byte[] nonce) throws NTLMException {
         if (nonce == null) {
-            throw new NullPointerException("nonce cannot be null");
+            throw new NTLMException(NTLMException.PROTOCOL,
+                    "nonce cannot be null");
         }
         debug("NTLM Server: Type 1 received\n");
         if (type1 != null) debug(type1);
@@ -105,13 +107,14 @@ public abstract class Server extends NTLM {
      * @param type3 the incoming Type3 message from client, must not be null
      * @param nonce the same nonce provided in {@link #type2}, must not be null
      * @return username and hostname of the client in a byte array
-     * @throws NullPointerException if {@code type3} or {@code nonce} is null
-     * @throws NTLMException if the incoming message is invalid
+     * @throws NTLMException if the incoming message is invalid, or
+     * {@code nonce} is null.
      */
     public String[] verify(byte[] type3, byte[] nonce)
             throws NTLMException {
         if (type3 == null || nonce == null) {
-            throw new NullPointerException("type1 or nonce cannot be null");
+            throw new NTLMException(NTLMException.PROTOCOL,
+                    "type1 or nonce cannot be null");
         }
         debug("NTLM Server: Type 3 received\n");
         if (type3 != null) debug(type3);
diff --git a/jdk/src/share/classes/com/sun/security/sasl/CramMD5Server.java b/jdk/src/share/classes/com/sun/security/sasl/CramMD5Server.java
index b7ea18d..74bc710 100644
--- a/jdk/src/share/classes/com/sun/security/sasl/CramMD5Server.java
+++ b/jdk/src/share/classes/com/sun/security/sasl/CramMD5Server.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,7 +33,6 @@ import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.security.NoSuchAlgorithmException;
 
-import java.util.logging.Logger;
 import java.util.logging.Level;
 
 /**
@@ -68,7 +67,7 @@ final class CramMD5Server extends CramMD5Base implements SaslServer {
      * @param pw A non-null String or byte[]
      * containing the password. If it is an array, it is first cloned.
      */
-    CramMD5Server(String protocol, String serverFqdn, Map props,
+    CramMD5Server(String protocol, String serverFqdn, Map<String, ?> props,
         CallbackHandler cbh) throws SaslException {
         if (serverFqdn == null) {
             throw new SaslException(
diff --git a/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java b/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java
index 049af07..100c5f5 100644
--- a/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java
+++ b/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,21 +28,15 @@ package com.sun.security.sasl.digest;
 import java.util.Map;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Set;
-import java.util.logging.Logger;
 import java.util.logging.Level;
 import java.math.BigInteger;
 import java.util.Random;
-import java.security.Provider;
 
-import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.UnsupportedEncodingException;
 import java.io.IOException;
 
 import java.security.MessageDigest;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
 import java.security.NoSuchAlgorithmException;
 import java.security.InvalidKeyException;
 import java.security.spec.KeySpec;
@@ -53,7 +47,6 @@ import javax.crypto.Cipher;
 import javax.crypto.SecretKey;
 import javax.crypto.Mac;
 import javax.crypto.SecretKeyFactory;
-import javax.crypto.BadPaddingException;
 import javax.crypto.NoSuchPaddingException;
 import javax.crypto.IllegalBlockSizeException;
 import javax.crypto.spec.IvParameterSpec;
@@ -175,8 +168,9 @@ abstract class DigestMD5Base extends AbstractSaslImpl {
      *
      * @throws SaslException If invalid value found in props.
      */
-    protected DigestMD5Base(Map props, String className, int firstStep,
-        String digestUri, CallbackHandler cbh) throws SaslException {
+    protected DigestMD5Base(Map<String, ?> props, String className,
+        int firstStep, String digestUri, CallbackHandler cbh)
+        throws SaslException {
         super(props, className); // sets QOP, STENGTH and BUFFER_SIZE
 
         step = firstStep;
@@ -791,7 +785,7 @@ abstract class DigestMD5Base extends AbstractSaslImpl {
                     }
                 } else if (realmChoices != null && i == realmIndex) {
                     // > 1 realm specified
-                    if (realmChoices.size() == 0) {
+                    if (realmChoices.isEmpty()) {
                         realmChoices.add(valueTable[i]); // add existing one
                     }
                     realmChoices.add(value);  // add new one
@@ -1585,47 +1579,45 @@ abstract class DigestMD5Base extends AbstractSaslImpl {
         KeySpec spec = null;
         SecretKeyFactory desFactory =
             SecretKeyFactory.getInstance(desStrength);
-
-        if (desStrength.equals("des")) {
-            spec = new DESKeySpec(subkey1, 0);
-            if (logger.isLoggable(Level.FINEST)) {
-                traceOutput(DP_CLASS_NAME, "makeDesKeys",
-                    "DIGEST42:DES key input: ", input);
-                traceOutput(DP_CLASS_NAME, "makeDesKeys",
-                    "DIGEST43:DES key parity-adjusted: ", subkey1);
-                traceOutput(DP_CLASS_NAME, "makeDesKeys",
-                    "DIGEST44:DES key material: ", ((DESKeySpec)spec).getKey());
-                logger.log(Level.FINEST, "DIGEST45: is parity-adjusted? {0}",
-                    Boolean.valueOf(DESKeySpec.isParityAdjusted(subkey1, 0)));
-            }
-
-        } else if (desStrength.equals("desede")) {
-
-            // Generate second subkey using second 7 bytes
-            byte[] subkey2 = addDesParity(input, 7, 7);
-
-            // Construct 24-byte encryption-decryption-encryption sequence
-            byte[] ede = new byte[subkey1.length*2+subkey2.length];
-            System.arraycopy(subkey1, 0, ede, 0, subkey1.length);
-            System.arraycopy(subkey2, 0, ede, subkey1.length, subkey2.length);
-            System.arraycopy(subkey1, 0, ede, subkey1.length+subkey2.length,
-                subkey1.length);
-
-            spec = new DESedeKeySpec(ede, 0);
-            if (logger.isLoggable(Level.FINEST)) {
-                traceOutput(DP_CLASS_NAME, "makeDesKeys",
-                    "DIGEST46:3DES key input: ", input);
-                traceOutput(DP_CLASS_NAME, "makeDesKeys",
-                    "DIGEST47:3DES key ede: ", ede);
-                traceOutput(DP_CLASS_NAME, "makeDesKeys",
-                    "DIGEST48:3DES key material: ",
-                    ((DESedeKeySpec)spec).getKey());
-                logger.log(Level.FINEST, "DIGEST49: is parity-adjusted? ",
-                    Boolean.valueOf(DESedeKeySpec.isParityAdjusted(ede, 0)));
-            }
-        } else {
-            throw new IllegalArgumentException("Invalid DES strength:" +
-                desStrength);
+        switch (desStrength) {
+            case "des":
+                spec = new DESKeySpec(subkey1, 0);
+                if (logger.isLoggable(Level.FINEST)) {
+                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
+                        "DIGEST42:DES key input: ", input);
+                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
+                        "DIGEST43:DES key parity-adjusted: ", subkey1);
+                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
+                        "DIGEST44:DES key material: ", ((DESKeySpec)spec).getKey());
+                    logger.log(Level.FINEST, "DIGEST45: is parity-adjusted? {0}",
+                        Boolean.valueOf(DESKeySpec.isParityAdjusted(subkey1, 0)));
+                }
+                break;
+            case "desede":
+                // Generate second subkey using second 7 bytes
+                byte[] subkey2 = addDesParity(input, 7, 7);
+                // Construct 24-byte encryption-decryption-encryption sequence
+                byte[] ede = new byte[subkey1.length*2+subkey2.length];
+                System.arraycopy(subkey1, 0, ede, 0, subkey1.length);
+                System.arraycopy(subkey2, 0, ede, subkey1.length, subkey2.length);
+                System.arraycopy(subkey1, 0, ede, subkey1.length+subkey2.length,
+                    subkey1.length);
+                spec = new DESedeKeySpec(ede, 0);
+                if (logger.isLoggable(Level.FINEST)) {
+                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
+                        "DIGEST46:3DES key input: ", input);
+                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
+                        "DIGEST47:3DES key ede: ", ede);
+                    traceOutput(DP_CLASS_NAME, "makeDesKeys",
+                        "DIGEST48:3DES key material: ",
+                        ((DESedeKeySpec)spec).getKey());
+                    logger.log(Level.FINEST, "DIGEST49: is parity-adjusted? ",
+                        Boolean.valueOf(DESedeKeySpec.isParityAdjusted(ede, 0)));
+                }
+                break;
+            default:
+                throw new IllegalArgumentException("Invalid DES strength:" +
+                    desStrength);
         }
         return desFactory.generateSecret(spec);
     }
diff --git a/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Client.java b/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Client.java
index 3c28cd9..07072e3 100644
--- a/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Client.java
+++ b/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Client.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,21 +25,16 @@
 
 package com.sun.security.sasl.digest;
 
-import java.security.AccessController;
-import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.io.ByteArrayOutputStream;
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.StringTokenizer;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.Arrays;
 
-import java.util.logging.Logger;
 import java.util.logging.Level;
 
 import javax.security.sasl.*;
@@ -153,7 +148,7 @@ final class DigestMD5Client extends DigestMD5Base implements SaslClient {
       * @throws SaslException if no authentication ID or password is supplied
       */
     DigestMD5Client(String authzid, String protocol, String serverName,
-        Map props, CallbackHandler cbh) throws SaslException {
+        Map<String, ?> props, CallbackHandler cbh) throws SaslException {
 
         super(props, MY_CLASS_NAME, 2, protocol + "/" + serverName, cbh);
 
diff --git a/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java b/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java
index 1b056b7..a5b638d 100644
--- a/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java
+++ b/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,23 +25,16 @@
 
 package com.sun.security.sasl.digest;
 
-import java.security.AccessController;
-import java.security.Provider;
-import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.io.ByteArrayOutputStream;
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
-import java.util.Random;
 import java.util.StringTokenizer;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.Arrays;
 
-import java.util.logging.Logger;
 import java.util.logging.Level;
 
 import javax.security.sasl.*;
@@ -147,7 +140,7 @@ final class DigestMD5Server extends DigestMD5Base implements SaslServer {
     private byte[] myCiphers;
     private List<String> serverRealms;
 
-    DigestMD5Server(String protocol, String serverName, Map props,
+    DigestMD5Server(String protocol, String serverName, Map<String, ?> props,
         CallbackHandler cbh) throws SaslException {
         super(props, MY_CLASS_NAME, 1, protocol + "/" + serverName, cbh);
 
@@ -179,7 +172,7 @@ final class DigestMD5Server extends DigestMD5Base implements SaslServer {
         encoding = (useUTF8 ? "UTF8" : "8859_1");
 
         // By default, use server name as realm
-        if (serverRealms.size() == 0) {
+        if (serverRealms.isEmpty()) {
             serverRealms.add(serverName);
         }
     }
@@ -468,19 +461,23 @@ final class DigestMD5Server extends DigestMD5Base implements SaslServer {
 
         // Check that QOP is one sent by server
         byte cQop;
-        if (negotiatedQop.equals("auth")) {
-            cQop = NO_PROTECTION;
-        } else if (negotiatedQop.equals("auth-int")) {
-            cQop = INTEGRITY_ONLY_PROTECTION;
-            integrity = true;
-            rawSendSize = sendMaxBufSize - 16;
-        } else if (negotiatedQop.equals("auth-conf")) {
-            cQop = PRIVACY_PROTECTION;
-            integrity = privacy = true;
-            rawSendSize = sendMaxBufSize - 26;
-        } else {
-            throw new SaslException("DIGEST-MD5: digest response format " +
-                "violation. Invalid QOP: " + negotiatedQop);
+        switch (negotiatedQop) {
+            case "auth":
+                cQop = NO_PROTECTION;
+                break;
+            case "auth-int":
+                cQop = INTEGRITY_ONLY_PROTECTION;
+                integrity = true;
+                rawSendSize = sendMaxBufSize - 16;
+                break;
+            case "auth-conf":
+                cQop = PRIVACY_PROTECTION;
+                integrity = privacy = true;
+                rawSendSize = sendMaxBufSize - 26;
+                break;
+            default:
+                throw new SaslException("DIGEST-MD5: digest response format " +
+                    "violation. Invalid QOP: " + negotiatedQop);
         }
         if ((cQop&allQop) == 0) {
             throw new SaslException("DIGEST-MD5: server does not support " +
diff --git a/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java b/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java
index bdc20de..fc5d13c 100644
--- a/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java
+++ b/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,9 +26,7 @@
 
 package com.sun.security.sasl.gsskerb;
 
-import java.io.IOException;
 import java.util.Map;
-import java.util.logging.Logger;
 import java.util.logging.Level;
 import javax.security.sasl.*;
 import com.sun.security.sasl.util.AbstractSaslImpl;
@@ -50,7 +48,8 @@ abstract class GssKrb5Base extends AbstractSaslImpl {
     protected MessageProp msgProp;              // QOP and privacy for unwrap
     protected static final int JGSS_QOP = 0;    // unrelated to SASL QOP mask
 
-    protected GssKrb5Base(Map props, String className) throws SaslException {
+    protected GssKrb5Base(Map<String, ?> props, String className)
+        throws SaslException {
         super(props, className);
     }
 
diff --git a/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java b/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java
index d61a7ee..15c89e6 100644
--- a/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java
+++ b/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@ package com.sun.security.sasl.gsskerb;
 
 import java.io.IOException;
 import java.util.Map;
-import java.util.logging.Logger;
 import java.util.logging.Level;
 import javax.security.sasl.*;
 
@@ -93,7 +92,7 @@ final class GssKrb5Client extends GssKrb5Base implements SaslClient {
      * with the server.
      */
     GssKrb5Client(String authzID, String protocol, String serverName,
-        Map props, CallbackHandler cbh) throws SaslException {
+        Map<String, ?> props, CallbackHandler cbh) throws SaslException {
 
         super(props, MY_CLASS_NAME);
 
diff --git a/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java b/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java
index 9d46d2b..523df78 100644
--- a/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java
+++ b/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,6 @@ package com.sun.security.sasl.gsskerb;
 import javax.security.sasl.*;
 import java.io.*;
 import java.util.Map;
-import java.util.logging.Logger;
 import java.util.logging.Level;
 
 // JAAS
@@ -77,7 +76,7 @@ final class GssKrb5Server extends GssKrb5Base implements SaslServer {
      * with the client.
      */
     GssKrb5Server(String protocol, String serverName,
-        Map props, CallbackHandler cbh) throws SaslException {
+        Map<String, ?> props, CallbackHandler cbh) throws SaslException {
 
         super(props, MY_CLASS_NAME);
 
diff --git a/jdk/src/share/classes/com/sun/security/sasl/ntlm/FactoryImpl.java b/jdk/src/share/classes/com/sun/security/sasl/ntlm/FactoryImpl.java
index 6ee1b66..af234bc 100644
--- a/jdk/src/share/classes/com/sun/security/sasl/ntlm/FactoryImpl.java
+++ b/jdk/src/share/classes/com/sun/security/sasl/ntlm/FactoryImpl.java
@@ -70,6 +70,12 @@ SaslServerFactory{
             if (mechs[i].equals("NTLM") &&
                     PolicyUtils.checkPolicy(mechPolicies[0], props)) {
 
+                if (cbh == null) {
+                    throw new SaslException(
+                        "Callback handler with support for " +
+                        "RealmCallback, NameCallback, and PasswordCallback " +
+                        "required");
+                }
                 return new NTLMClient(mechs[i], authorizationId,
                     protocol, serverName, props, cbh);
             }
@@ -98,9 +104,9 @@ SaslServerFactory{
              }
              if (cbh == null) {
                  throw new SaslException(
-                        "Callback handler with support for AuthorizeCallback, "+
-                        "RealmCallback, NameCallback, and PasswordCallback " +
-                        "required");
+                     "Callback handler with support for " +
+                     "RealmCallback, NameCallback, and PasswordCallback " +
+                     "required");
              }
              return new NTLMServer(mech, protocol, serverName, props, cbh);
          }
diff --git a/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java b/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java
index e574667..dbb1d61 100644
--- a/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java
+++ b/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -107,11 +107,11 @@ final class NTLMClient implements SaslClient {
      * @param protocol non-null for Sasl, useless for NTLM
      * @param serverName non-null for Sasl, but can be null for NTLM
      * @param props can be null
-     * @param cbh can be null for Sasl, but will throw NPE for NTLM
+     * @param cbh can be null for Sasl, already null-checked in factory
      * @throws SaslException
      */
     NTLMClient(String mech, String authzid, String protocol, String serverName,
-            Map props, CallbackHandler cbh) throws SaslException {
+            Map<String, ?> props, CallbackHandler cbh) throws SaslException {
 
         this.mech = mech;
         String version = null;
@@ -166,7 +166,7 @@ final class NTLMClient implements SaslClient {
                     pcb.getPassword());
         } catch (NTLMException ne) {
             throw new SaslException(
-                    "NTLM: Invalid version string: " + version, ne);
+                    "NTLM: client creation failure", ne);
         }
     }
 
@@ -183,23 +183,27 @@ final class NTLMClient implements SaslClient {
     @Override
     public byte[] unwrap(byte[] incoming, int offset, int len)
             throws SaslException {
-        throw new UnsupportedOperationException("Not supported.");
+        throw new IllegalStateException("Not supported.");
     }
 
     @Override
     public byte[] wrap(byte[] outgoing, int offset, int len)
             throws SaslException {
-        throw new UnsupportedOperationException("Not supported.");
+        throw new IllegalStateException("Not supported.");
     }
 
     @Override
     public Object getNegotiatedProperty(String propName) {
-        if (propName.equals(Sasl.QOP)) {
-            return "auth";
-        } else if (propName.equals(NTLM_DOMAIN)) {
-            return client.getDomain();
-        } else {
-            return null;
+        if (!isComplete()) {
+            throw new IllegalStateException("authentication not complete");
+        }
+        switch (propName) {
+            case Sasl.QOP:
+                return "auth";
+            case NTLM_DOMAIN:
+                return client.getDomain();
+            default:
+                return null;
         }
     }
 
diff --git a/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java b/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java
index 7adbeb7..916f769 100644
--- a/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java
+++ b/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -106,11 +106,12 @@ final class NTLMServer implements SaslServer {
      * @param serverName not null for Sasl, can be null in NTLM. If non-null,
      * might be used as domain if not provided in props
      * @param props can be null
-     * @param cbh can be null for Sasl, but will throw NPE in auth for NTLM
+     * @param cbh can be null for Sasl, already null-checked in factory
      * @throws SaslException
      */
     NTLMServer(String mech, String protocol, String serverName,
-            Map props, final CallbackHandler cbh) throws SaslException {
+            Map<String, ?> props, final CallbackHandler cbh)
+            throws SaslException {
 
         this.mech = mech;
         String version = null;
@@ -131,7 +132,7 @@ final class NTLMServer implements SaslServer {
             domain = serverName;
         }
         if (domain == null) {
-            throw new NullPointerException("Domain must be provided as"
+            throw new SaslException("Domain must be provided as"
                     + " the serverName argument or in props");
         }
 
@@ -158,7 +159,7 @@ final class NTLMServer implements SaslServer {
             };
         } catch (NTLMException ne) {
             throw new SaslException(
-                    "NTLM: Invalid version string: " + version, ne);
+                    "NTLM: server creation failure", ne);
         }
         nonce = new byte[8];
     }
@@ -181,8 +182,8 @@ final class NTLMServer implements SaslServer {
                 hostname = out[1];
                 return null;
             }
-        } catch (GeneralSecurityException ex) {
-            throw new SaslException("", ex);
+        } catch (NTLMException ex) {
+            throw new SaslException("NTLM: generate response failure", ex);
         }
     }
 
@@ -193,29 +194,36 @@ final class NTLMServer implements SaslServer {
 
     @Override
     public String getAuthorizationID() {
+        if (!isComplete()) {
+            throw new IllegalStateException("authentication not complete");
+        }
         return authzId;
     }
 
     @Override
     public byte[] unwrap(byte[] incoming, int offset, int len)
             throws SaslException {
-        throw new UnsupportedOperationException("Not supported yet.");
+        throw new IllegalStateException("Not supported yet.");
     }
 
     @Override
     public byte[] wrap(byte[] outgoing, int offset, int len)
             throws SaslException {
-        throw new UnsupportedOperationException("Not supported yet.");
+        throw new IllegalStateException("Not supported yet.");
     }
 
     @Override
     public Object getNegotiatedProperty(String propName) {
-        if (propName.equals(Sasl.QOP)) {
-            return "auth";
-        } else if (propName.equals(NTLM_HOSTNAME)) {
-            return hostname;
-        } else {
-            return null;
+        if (!isComplete()) {
+            throw new IllegalStateException("authentication not complete");
+        }
+        switch (propName) {
+            case Sasl.QOP:
+                return "auth";
+            case NTLM_HOSTNAME:
+                return hostname;
+            default:
+                return null;
         }
     }
 
diff --git a/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java b/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java
index 373aad6..aa3e473 100644
--- a/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java
+++ b/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,8 +29,6 @@ import javax.security.sasl.*;
 import java.io.*;
 import java.util.Map;
 import java.util.StringTokenizer;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
 
 import java.util.logging.Logger;
 import java.util.logging.Level;
@@ -63,7 +61,8 @@ public abstract class AbstractSaslImpl {
 
     protected String myClassName;
 
-    protected AbstractSaslImpl(Map props, String className) throws SaslException {
+    protected AbstractSaslImpl(Map<String, ?> props, String className)
+            throws SaslException {
         myClassName = className;
 
         // Parse properties  to set desired context options
@@ -156,23 +155,23 @@ public abstract class AbstractSaslImpl {
         if (!completed) {
             throw new IllegalStateException("SASL authentication not completed");
         }
-
-        if (propName.equals(Sasl.QOP)) {
-            if (privacy) {
-                return "auth-conf";
-            } else if (integrity) {
-                return "auth-int";
-            } else {
-                return "auth";
-            }
-        } else if (propName.equals(Sasl.MAX_BUFFER)) {
-            return Integer.toString(recvMaxBufSize);
-        } else if (propName.equals(Sasl.RAW_SEND_SIZE)) {
-            return Integer.toString(rawSendSize);
-        } else if (propName.equals(MAX_SEND_BUF)) {
-            return Integer.toString(sendMaxBufSize);
-        } else {
-            return null;
+        switch (propName) {
+            case Sasl.QOP:
+                if (privacy) {
+                    return "auth-conf";
+                } else if (integrity) {
+                    return "auth-int";
+                } else {
+                    return "auth";
+                }
+            case Sasl.MAX_BUFFER:
+                return Integer.toString(recvMaxBufSize);
+            case Sasl.RAW_SEND_SIZE:
+                return Integer.toString(rawSendSize);
+            case MAX_SEND_BUF:
+                return Integer.toString(sendMaxBufSize);
+            default:
+                return null;
         }
     }
 
diff --git a/jdk/src/share/classes/com/sun/security/sasl/util/PolicyUtils.java b/jdk/src/share/classes/com/sun/security/sasl/util/PolicyUtils.java
index cf6ddc3..4e5b78f 100644
--- a/jdk/src/share/classes/com/sun/security/sasl/util/PolicyUtils.java
+++ b/jdk/src/share/classes/com/sun/security/sasl/util/PolicyUtils.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -53,7 +53,7 @@ final public class PolicyUtils {
      * @param props The security policy properties to check
      * @return true if passes; false if fails
      */
-    public static boolean checkPolicy(int flags, Map props) {
+    public static boolean checkPolicy(int flags, Map<String, ?> props) {
         if (props == null) {
             return true;
         }
@@ -93,7 +93,7 @@ final public class PolicyUtils {
      *
      */
     public static String[] filterMechs(String[] mechs, int[] policies,
-        Map props) {
+        Map<String, ?> props) {
         if (props == null) {
             return mechs.clone();
         }
diff --git a/jdk/src/share/classes/com/sun/servicetag/BrowserSupport.java b/jdk/src/share/classes/com/sun/servicetag/BrowserSupport.java
index 442267b..86d9204 100644
--- a/jdk/src/share/classes/com/sun/servicetag/BrowserSupport.java
+++ b/jdk/src/share/classes/com/sun/servicetag/BrowserSupport.java
@@ -77,9 +77,7 @@ class BrowserSupport {
                         result = (Boolean) isDesktopSupportedMethod.invoke(null);
                     } catch (IllegalAccessException e) {
                         // should never reach here
-                        InternalError x =
-                            new InternalError("Desktop.getDesktop() method not found");
-                        x.initCause(e);
+                        throw new InternalError("Desktop.getDesktop() method not found", e);
                     } catch (InvocationTargetException e) {
                         // browser not supported
                         if (Util.isVerbose()) {
@@ -101,28 +99,10 @@ class BrowserSupport {
                 result = (Boolean) isSupportedMethod.invoke(desktopObj, browseField.get(null));
                 supported = result.booleanValue();
             }
-        } catch (ClassNotFoundException e) {
-            // browser not supported
-            if (Util.isVerbose()) {
-                e.printStackTrace();
-            }
-        } catch (NoSuchMethodException e) {
-            // browser not supported
-            if (Util.isVerbose()) {
-                e.printStackTrace();
-            }
-        } catch (NoSuchFieldException e) {
-            // browser not supported
-            if (Util.isVerbose()) {
-                e.printStackTrace();
-            }
         } catch (IllegalAccessException e) {
             // should never reach here
-            InternalError x =
-                    new InternalError("Desktop.getDesktop() method not found");
-            x.initCause(e);
-            throw x;
-        } catch (InvocationTargetException e) {
+            throw new InternalError("Desktop.getDesktop() method not found", e);
+        } catch (ReflectiveOperationException e) {
             // browser not supported
             if (Util.isVerbose()) {
                 e.printStackTrace();
@@ -175,10 +155,7 @@ class BrowserSupport {
             browseMethod.invoke(desktop, uri);
         } catch (IllegalAccessException e) {
             // should never reach here
-            InternalError x =
-                new InternalError("Desktop.getDesktop() method not found");
-            x.initCause(e);
-                throw x;
+            throw new InternalError("Desktop.getDesktop() method not found", e);
         } catch (InvocationTargetException e) {
             Throwable x = e.getCause();
             if (x != null) {
diff --git a/jdk/src/share/classes/com/sun/servicetag/Installer.java b/jdk/src/share/classes/com/sun/servicetag/Installer.java
index ae5ed4b..40ae99e 100644
--- a/jdk/src/share/classes/com/sun/servicetag/Installer.java
+++ b/jdk/src/share/classes/com/sun/servicetag/Installer.java
@@ -61,8 +61,8 @@ public class Installer {
     private static RegistrationData registration;
     private static boolean supportRegistration;
     private static String registerHtmlParent;
-    private static Set<Locale> supportedLocales = new HashSet<Locale>();
-    private static Properties swordfishProps = null;
+    private static Set<Locale> supportedLocales = new HashSet<>();
+    private static Properties svcTagProps = null;
     private static String[] jreArchs = null;
     static {
         String dir = System.getProperty(SVCTAG_DIR_PATH);
@@ -94,7 +94,7 @@ public class Installer {
         boolean cleanup = false;
         try {
             // Check if we have the swordfish entries for this JRE version
-            if (loadSwordfishEntries() == null) {
+            if (loadServiceTagProps() == null) {
                 return null;
             }
 
@@ -144,18 +144,14 @@ public class Installer {
             return registration;
         }
         if (regXmlFile.exists()) {
-            BufferedInputStream in = null;
-            try {
-                in = new BufferedInputStream(new FileInputStream(regXmlFile));
+            try (BufferedInputStream in =
+                    new BufferedInputStream(new FileInputStream(regXmlFile)))
+            {
                 registration = RegistrationData.loadFromXML(in);
             } catch (IllegalArgumentException ex) {
                 System.err.println("Error: Bad registration data \"" +
                                     regXmlFile + "\":" + ex.getMessage());
                 throw ex;
-            } finally {
-                if (in != null) {
-                    in.close();
-                }
             }
         } else {
             registration = new RegistrationData();
@@ -186,18 +182,14 @@ public class Installer {
         deleteRegistrationHtmlPage();
         getRegistrationHtmlPage();
 
-        BufferedOutputStream out = null;
-        try {
-            out = new BufferedOutputStream(new FileOutputStream(regXmlFile));
+        try (BufferedOutputStream out =
+                new BufferedOutputStream(new FileOutputStream(regXmlFile)))
+        {
             getRegistrationData().storeToXML(out);
         } catch (IllegalArgumentException ex) {
             System.err.println("Error: Bad registration data \"" +
                                 regXmlFile + "\":" + ex.getMessage());
             throw ex;
-        } finally {
-            if (out != null) {
-                out.close();
-            }
         }
     }
 
@@ -206,11 +198,9 @@ public class Installer {
      * or empty set if file not exists.
      */
     private static Set<String> getInstalledURNs() throws IOException {
-        Set<String> urnSet = new HashSet<String>();
+        Set<String> urnSet = new HashSet<>();
         if (serviceTagFile.exists()) {
-            BufferedReader in = null;
-            try {
-                in = new BufferedReader(new FileReader(serviceTagFile));
+            try (BufferedReader in = new BufferedReader(new FileReader(serviceTagFile))) {
                 String urn;
                 while ((urn = in.readLine()) != null) {
                     urn = urn.trim();
@@ -218,10 +208,6 @@ public class Installer {
                         urnSet.add(urn);
                     }
                 }
-            } finally {
-                if (in != null) {
-                    in.close();
-                }
             }
         }
         return urnSet;
@@ -237,9 +223,9 @@ public class Installer {
     private static ServiceTag[] getJavaServiceTagArray() throws IOException {
         RegistrationData regData = getRegistrationData();
         Set<ServiceTag> svcTags = regData.getServiceTags();
-        Set<ServiceTag> result = new HashSet<ServiceTag>();
+        Set<ServiceTag> result = new HashSet<>();
 
-        Properties props = loadSwordfishEntries();
+        Properties props = loadServiceTagProps();
         String jdkUrn = props.getProperty("servicetag.jdk.urn");
         String jreUrn = props.getProperty("servicetag.jre.urn");
         for (ServiceTag st : svcTags) {
@@ -343,8 +329,7 @@ public class Installer {
     }
 
     private static ServiceTag newServiceTag(String svcTagSource) throws IOException {
-        // Load the swoRDFish information for the service tag creation
-        Properties props = loadSwordfishEntries();
+        Properties props = loadServiceTagProps();
 
         // Determine the product URN and name
         String productURN;
@@ -442,52 +427,35 @@ public class Installer {
             return;
         }
 
-        PrintWriter out = null;
-        try {
-            out = new PrintWriter(serviceTagFile);
-
+        try (PrintWriter out = new PrintWriter(serviceTagFile)) {
             ServiceTag[] javaSvcTags = getJavaServiceTagArray();
             for (ServiceTag st : javaSvcTags) {
                 // Write the instance_run to the servicetag file
                 String instanceURN = st.getInstanceURN();
                 out.println(instanceURN);
             }
-        } finally {
-            if (out != null) {
-                out.close();
-            }
         }
     }
 
     /**
-     * Load the values associated with the swoRDFish metadata entries
-     * for Java SE. The swoRDFish metadata entries are different for
-     * different release.
+     * Load the properties for generating Java SE service tags.
      *
      * @param version Version of Java SE
      */
-    private static synchronized Properties loadSwordfishEntries() throws IOException {
-        if (swordfishProps != null) {
-            return swordfishProps;
+    private static synchronized Properties loadServiceTagProps() throws IOException {
+        if (svcTagProps != null) {
+            return svcTagProps;
         }
 
-        // The version string for Java SE 6 is 1.6.0
-        // We just need the minor number in the version string
-        int version = Util.getJdkVersion();
-
-        String filename = "/com/sun/servicetag/resources/javase_" +
-                version + "_swordfish.properties";
-        InputStream in = Installer.class.getResourceAsStream(filename);
-        if (in == null) {
-            return null;
-        }
-        swordfishProps = new Properties();
-        try {
-            swordfishProps.load(in);
-        } finally {
-            in.close();
+        // For Java SE 8 and later releases, JDK and JRE both use
+        // the same product number.  The sworRDFish metadata were
+        // for legacy Sun part number.
+        String filename = "/com/sun/servicetag/resources/javase_servicetag.properties";
+        try (InputStream in = Installer.class.getResourceAsStream(filename)) {
+            svcTagProps = new Properties();
+            svcTagProps.load(in);
         }
-        return swordfishProps;
+        return svcTagProps;
     }
 
     /**
@@ -546,7 +514,7 @@ public class Installer {
             return jreArchs;
         }
 
-        Set<String> archs = new HashSet<String>();
+        Set<String> archs = new HashSet<>();
 
         String os = System.getProperty("os.name");
         if (os.equals("SunOS") || os.equals("Linux")) {
@@ -681,16 +649,16 @@ public class Installer {
         String country = locale.getCountry();
         String variant = locale.getVariant();
 
-        List<Locale> locales = new ArrayList<Locale>(3);
+        List<Locale> locales = new ArrayList<>(3);
         if (variant.length() > 0) {
             locales.add(locale);
         }
         if (country.length() > 0) {
-            locales.add((locales.size() == 0) ?
+            locales.add((locales.isEmpty()) ?
                         locale : new Locale(language, country, ""));
         }
         if (language.length() > 0) {
-            locales.add((locales.size() == 0) ?
+            locales.add((locales.isEmpty()) ?
                         locale : new Locale(language, "", ""));
         }
         return locales;
@@ -788,14 +756,11 @@ public class Installer {
         // Format the registration data in one single line
         StringBuilder payload = new StringBuilder();
         String xml = regData.toString().replaceAll("\"", "%22");
-        BufferedReader reader = new BufferedReader(new StringReader(xml));
-        try {
+        try (BufferedReader reader = new BufferedReader(new StringReader(xml))) {
             String line = null;
             while ((line = reader.readLine()) != null) {
                 payload.append(line.trim());
             }
-        } finally {
-            reader.close();
         }
 
         String resourceFilename = "/com/sun/servicetag/resources/register";
diff --git a/jdk/src/share/classes/com/sun/servicetag/RegistrationDocument.java b/jdk/src/share/classes/com/sun/servicetag/RegistrationDocument.java
index 876446b..eb33570 100644
--- a/jdk/src/share/classes/com/sun/servicetag/RegistrationDocument.java
+++ b/jdk/src/share/classes/com/sun/servicetag/RegistrationDocument.java
@@ -150,9 +150,7 @@ class RegistrationDocument {
         } catch (ParserConfigurationException pce) {
             // Parser with specific options can't be built
             // should not reach here
-            InternalError x = new InternalError("Error in creating the new document");
-            x.initCause(pce);
-            throw x;
+            throw new InternalError("Error in creating the new document", pce);
         }
     }
 
@@ -172,9 +170,7 @@ class RegistrationDocument {
         } catch (ParserConfigurationException pce) {
             // Parser with specified options can't be built
             // should not reach here
-            InternalError x = new InternalError("Error in creating the new document");
-            x.initCause(pce);
-            throw x;
+            throw new InternalError("Error in creating the new document", pce);
         }
     }
 
@@ -195,20 +191,14 @@ class RegistrationDocument {
                 new StreamResult(new BufferedWriter(new OutputStreamWriter(os, "UTF-8"))));
         } catch (UnsupportedEncodingException ue) {
             // Should not reach here
-            InternalError x = new InternalError("Error generated during transformation");
-            x.initCause(ue);
-            throw x;
+            throw new InternalError("Error generated during transformation", ue);
         } catch (TransformerConfigurationException tce) {
             // Error generated by the parser
             // Should not reach here
-            InternalError x = new InternalError("Error in creating the new document");
-            x.initCause(tce);
-            throw x;
+            throw new InternalError("Error in creating the new document", tce);
         } catch (TransformerException te) {
             // Error generated by the transformer
-            InternalError x = new InternalError("Error generated during transformation");
-            x.initCause(te);
-            throw x;
+            throw new InternalError("Error generated during transformation", te);
         }
     }
 
diff --git a/jdk/src/share/classes/com/sun/servicetag/SunConnection.java b/jdk/src/share/classes/com/sun/servicetag/SunConnection.java
index a28fbf9..91ea977 100644
--- a/jdk/src/share/classes/com/sun/servicetag/SunConnection.java
+++ b/jdk/src/share/classes/com/sun/servicetag/SunConnection.java
@@ -101,10 +101,7 @@ class SunConnection {
             return new URL(registerURL);
         } catch (MalformedURLException ex) {
             // should never reach here
-            InternalError x =
-                new InternalError(ex.getMessage());
-            x.initCause(ex);
-            throw x;
+            throw new InternalError(ex.getMessage(), ex);
         }
     }
 
@@ -171,9 +168,7 @@ class SunConnection {
         try {
             BrowserSupport.browse(url.toURI());
         } catch (URISyntaxException ex) {
-            InternalError x = new InternalError("Error in registering: " + ex.getMessage());
-            x.initCause(ex);
-            throw x;
+            throw new InternalError("Error in registering: " + ex.getMessage(), ex);
         } catch (IllegalArgumentException ex) {
             if (Util.isVerbose()) {
                 ex.printStackTrace();
@@ -232,9 +227,7 @@ class SunConnection {
             return (returnCode == HttpURLConnection.HTTP_OK);
         } catch (MalformedURLException me) {
             // should never reach here
-            InternalError x = new InternalError("Error in registering: " + me.getMessage());
-            x.initCause(me);
-            throw x;
+            throw new InternalError("Error in registering: " + me.getMessage(), me);
         } catch (Exception ioe) {
             // SocketTimeoutException, IOException or UnknownHostException
             if (Util.isVerbose()) {
@@ -262,10 +255,9 @@ class SunConnection {
             BrowserSupport.browse(registerPage.toURI());
         } catch (FileNotFoundException ex) {
             // should never reach here
-            InternalError x =
-                new InternalError("Error in launching " + registerPage + ": " + ex.getMessage());
-            x.initCause(ex);
-            throw x;
+            throw new InternalError(
+                    "Error in launching " + registerPage + ": " + ex.getMessage()
+                    , ex);
         } catch (IllegalArgumentException ex) {
             if (Util.isVerbose()) {
                 ex.printStackTrace();
diff --git a/jdk/src/share/classes/com/sun/servicetag/resources/javase_servicetag.properties b/jdk/src/share/classes/com/sun/servicetag/resources/javase_servicetag.properties
new file mode 100644
index 0000000..7ff81b2
--- /dev/null
+++ b/jdk/src/share/classes/com/sun/servicetag/resources/javase_servicetag.properties
@@ -0,0 +1,29 @@
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+servicetag.jdk.urn     = Q8549
+servicetag.jdk.name    = Java Development Kit
+servicetag.jre.urn     = Q8549
+servicetag.jre.name    = Java Runtime Environment
+servicetag.parent.urn  = Q8549
+servicetag.parent.name = Java Platform, Standard Edition
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties
index 109538a..701ea8f 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties
@@ -91,6 +91,9 @@ FileChooser.updateButtonToolTipText=Update directory listing
 FileChooser.helpButtonToolTipText=FileChooser help
 FileChooser.directoryOpenButtonToolTipText=Open selected directory
 
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
 ############ COLOR CHOOSER STRINGS #############
 ColorChooser.previewText=Preview
 ColorChooser.okText=OK
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties
index 2306682..31cfad2 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties
@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Verzeichnisliste aktualisieren
 FileChooser.helpButtonToolTipText=FileChooser-Hilfe
 FileChooser.directoryOpenButtonToolTipText=Ausgew\u00E4hltes Verzeichnis \u00F6ffnen
 
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
 ############ COLOR CHOOSER STRINGS #############
 ColorChooser.previewText=Vorschau
 ColorChooser.okText=OK
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties
index 09b72da..912f836 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties
@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Actualizar lista de directorios
 FileChooser.helpButtonToolTipText=Ayuda del Selector de Archivos
 FileChooser.directoryOpenButtonToolTipText=Abrir directorio seleccionado
 
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
 ############ COLOR CHOOSER STRINGS #############
 ColorChooser.previewText=Presentaci\u00F3n Preliminar
 ColorChooser.okText=Aceptar
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties
index 8b3ba8f..ee529a1 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties
@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Met \u00E0 jour la liste des r\u00E9pertoire
 FileChooser.helpButtonToolTipText=Aide du s\u00E9lecteur de fichiers
 FileChooser.directoryOpenButtonToolTipText=Ouvre le r\u00E9pertoire s\u00E9lectionn\u00E9
 
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
 ############ COLOR CHOOSER STRINGS #############
 ColorChooser.previewText=Aper\u00E7u
 ColorChooser.okText=OK
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties
index e4c23c7..d28f891 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties
@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Aggiorna la lista directory
 FileChooser.helpButtonToolTipText=Guida FileChooser
 FileChooser.directoryOpenButtonToolTipText=Apre la directory selezionata
 
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
 ############ COLOR CHOOSER STRINGS #############
 ColorChooser.previewText=Anteprima
 ColorChooser.okText=OK
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties
index 7b94641..0630dbb 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties
@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u
 FileChooser.helpButtonToolTipText=FileChooser\u306E\u30D8\u30EB\u30D7\u3067\u3059
 FileChooser.directoryOpenButtonToolTipText=\u9078\u629E\u3057\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u958B\u304D\u307E\u3059
 
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
 ############ COLOR CHOOSER STRINGS #############
 ColorChooser.previewText=\u30D7\u30EC\u30D3\u30E5\u30FC
 ColorChooser.okText=OK
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties
index 8dd3f17..947319d 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties
@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=\uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D \uAC31
 FileChooser.helpButtonToolTipText=FileChooser \uB3C4\uC6C0\uB9D0
 FileChooser.directoryOpenButtonToolTipText=\uC120\uD0DD\uB41C \uB514\uB809\uD1A0\uB9AC \uC5F4\uAE30
 
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
 ############ COLOR CHOOSER STRINGS #############
 ColorChooser.previewText=\uBBF8\uB9AC\uBCF4\uAE30
 ColorChooser.okText=\uD655\uC778
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties
index cbc3c99..81ec864 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties
@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Atualizar lista de diret\u00F3rios
 FileChooser.helpButtonToolTipText=Ajuda do FileChooser
 FileChooser.directoryOpenButtonToolTipText=Abrir diret\u00F3rio selecionado
 
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
 ############ COLOR CHOOSER STRINGS #############
 ColorChooser.previewText=Visualizar
 ColorChooser.okText=OK
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties
index c28dfbd..c74c087 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties
@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Uppdatera kataloglistan
 FileChooser.helpButtonToolTipText=Hj\u00E4lp - Filv\u00E4ljare
 FileChooser.directoryOpenButtonToolTipText=\u00D6ppna vald katalog
 
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
 ############ COLOR CHOOSER STRINGS #############
 ColorChooser.previewText=Granska
 ColorChooser.okText=OK
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties
index bb9a6ca..01c83e3 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties
@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=\u66F4\u65B0\u76EE\u5F55\u5217\u8868
 FileChooser.helpButtonToolTipText=FileChooser \u5E2E\u52A9
 FileChooser.directoryOpenButtonToolTipText=\u6253\u5F00\u9009\u62E9\u7684\u76EE\u5F55
 
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
 ############ COLOR CHOOSER STRINGS #############
 ColorChooser.previewText=\u9884\u89C8
 ColorChooser.okText=\u786E\u5B9A
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties
index 24b5503..0caca8c 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties
@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=\u66F4\u65B0\u76EE\u9304\u6E05\u55AE
 FileChooser.helpButtonToolTipText=\u300C\u6A94\u6848\u9078\u64C7\u5668\u300D\u8AAA\u660E
 FileChooser.directoryOpenButtonToolTipText=\u958B\u555F\u9078\u53D6\u7684\u76EE\u9304
 
+FileChooser.filesListAccessibleName=Files List
+FileChooser.filesDetailsAccessibleName=Files Details
+
 ############ COLOR CHOOSER STRINGS #############
 ColorChooser.previewText=\u9810\u89BD
 ColorChooser.okText=\u78BA\u5B9A
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties
index f7fd7fc..3ae8205 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Look In:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Save In:
 FileChooser.fileNameLabelText=File Name:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Folder name:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Files of Type:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Up One Level
 FileChooser.upFolderAccessibleName=Up
 FileChooser.homeFolderToolTipText=Home
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_de.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_de.properties
index 14c676a..124449e 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_de.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_de.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Suchen in:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Speichern in:
 FileChooser.fileNameLabelText=Dateiname:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Ordnername:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Dateityp:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Eine Ebene h\u00F6her
 FileChooser.upFolderAccessibleName=Nach oben
 FileChooser.homeFolderToolTipText=Home
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_es.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_es.properties
index 6cd153b..4bfeaaf 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_es.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_es.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Buscar en:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Guardar en:
 FileChooser.fileNameLabelText=Nombre de Archivo:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Nombre de la Carpeta:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Archivos de Tipo:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Subir un Nivel
 FileChooser.upFolderAccessibleName=Arriba
 FileChooser.homeFolderToolTipText=Inicio
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties
index ae09968..2f91a50 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Rechercher dans :
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Enregistrer dans :
 FileChooser.fileNameLabelText=Nom du fichier :
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Nom du dossier :
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Fichiers de type :
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Remonte d'un niveau.
 FileChooser.upFolderAccessibleName=Monter
 FileChooser.homeFolderToolTipText=R\u00E9pertoire d'origine
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_it.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_it.properties
index ff581c7..b0bd9f0 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_it.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_it.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Cerca in:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Salva in:
 FileChooser.fileNameLabelText=Nome file:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Nome della cartella:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Tipo file:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Cartella superiore
 FileChooser.upFolderAccessibleName=Superiore
 FileChooser.homeFolderToolTipText=Home
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ja.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ja.properties
index d669fd5..4e467ce 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ja.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ja.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=\u53C2\u7167:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=\u4FDD\u5B58:
 FileChooser.fileNameLabelText=\u30D5\u30A1\u30A4\u30EB\u540D:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=\u30D5\u30A9\u30EB\u30C0\u540D:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=\u30D5\u30A1\u30A4\u30EB\u306E\u30BF\u30A4\u30D7:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=1\u30EC\u30D9\u30EB\u4E0A\u3078
 FileChooser.upFolderAccessibleName=\u4E0A\u3078
 FileChooser.homeFolderToolTipText=\u30DB\u30FC\u30E0
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ko.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ko.properties
index 7e8c3b4..3cd5e20 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ko.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_ko.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=\uAC80\uC0C9 \uC704\uCE58:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=\uC800\uC7A5 \uC704\uCE58:
 FileChooser.fileNameLabelText=\uD30C\uC77C \uC774\uB984:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=\uD3F4\uB354 \uC774\uB984:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=\uD30C\uC77C \uC720\uD615:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=\uD55C \uB808\uBCA8 \uC704\uB85C
 FileChooser.upFolderAccessibleName=\uC704\uB85C
 FileChooser.homeFolderToolTipText=\uD648
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_pt_BR.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_pt_BR.properties
index 4e0fb3e..903f1d1 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_pt_BR.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_pt_BR.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Consultar Em:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Salvar Em:
 FileChooser.fileNameLabelText=Nome do Arquivo:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Nome da pasta:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Arquivos do Tipo:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Um N\u00EDvel Acima
 FileChooser.upFolderAccessibleName=Acima
 FileChooser.homeFolderToolTipText=In\u00EDcio
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties
index df1a453..0f76c98 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Leta i:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Spara i:
 FileChooser.fileNameLabelText=Filnamn:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Mapp:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Filformat:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Upp en niv\u00E5
 FileChooser.upFolderAccessibleName=Upp
 FileChooser.homeFolderToolTipText=Hem
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_CN.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_CN.properties
index e3eca13..73405a0 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_CN.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_CN.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=\u67E5\u770B:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=\u4FDD\u5B58:
 FileChooser.fileNameLabelText=\u6587\u4EF6\u540D:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=\u6587\u4EF6\u5939\u540D:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=\u6587\u4EF6\u7C7B\u578B:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=\u5411\u4E0A\u4E00\u7EA7
 FileChooser.upFolderAccessibleName=\u5411\u4E0A
 FileChooser.homeFolderToolTipText=\u4E3B\u76EE\u5F55
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_TW.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_TW.properties
index a24f3e9..6f70ad7 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_TW.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_zh_TW.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=\u67E5\u8A62:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=\u5132\u5B58\u65BC:
 FileChooser.fileNameLabelText=\u6A94\u6848\u540D\u7A31:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=\u8CC7\u6599\u593E\u540D\u7A31:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=\u6A94\u6848\u985E\u578B:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=\u5F80\u4E0A\u4E00\u5C64
 FileChooser.upFolderAccessibleName=\u5F80\u4E0A
 FileChooser.homeFolderToolTipText=\u4E3B\u76EE\u9304
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties
index d222689..67e2890 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Look In:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Save In:
 FileChooser.fileNameLabelText=File Name:
-FileChooser.folderNameLabelText=Folder name:
+FileChooser.fileNameLabelMnemonic=78
+FileChooser.folderNameLabelText=Folder Name:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Files of Type:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Up One Level
 FileChooser.upFolderAccessibleName=Up
 FileChooser.homeFolderToolTipText=Home
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_de.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_de.properties
index 990f344..8da54b8 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_de.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_de.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Suchen in:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Speichern in:
 FileChooser.fileNameLabelText=Dateiname:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Ordnername:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Dateityp:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Eine Ebene h\u00F6her
 FileChooser.upFolderAccessibleName=Nach oben
 FileChooser.homeFolderToolTipText=Home
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_es.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_es.properties
index 03d2166..14229e8 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_es.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_es.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Buscar en:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Guardar en:
 FileChooser.fileNameLabelText=Nombre de Archivo:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Nombre de la Carpeta:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Archivos de Tipo:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Subir un Nivel
 FileChooser.upFolderAccessibleName=Arriba
 FileChooser.homeFolderToolTipText=Inicio
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties
index 273351d..7660e7d 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Rechercher dans :
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Enregistrer dans :
 FileChooser.fileNameLabelText=Nom du fichier :
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Nom du dossier :
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Fichiers de type :
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Remonte d'un niveau.
 FileChooser.upFolderAccessibleName=Monter
 FileChooser.homeFolderToolTipText=R\u00E9pertoire d'origine
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_it.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_it.properties
index da2e2c7..8a1535e 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_it.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_it.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Cerca in:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Salva in:
 FileChooser.fileNameLabelText=Nome file:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Nome della cartella:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Tipo file:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Cartella superiore
 FileChooser.upFolderAccessibleName=Superiore
 FileChooser.homeFolderToolTipText=Home
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ja.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ja.properties
index 382fcf8..d49e038 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ja.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ja.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=\u53C2\u7167:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=\u4FDD\u5B58:
 FileChooser.fileNameLabelText=\u30D5\u30A1\u30A4\u30EB\u540D:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=\u30D5\u30A9\u30EB\u30C0\u540D:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=\u30D5\u30A1\u30A4\u30EB\u306E\u30BF\u30A4\u30D7:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=1\u30EC\u30D9\u30EB\u4E0A\u3078
 FileChooser.upFolderAccessibleName=\u4E0A\u3078
 FileChooser.homeFolderToolTipText=\u30DB\u30FC\u30E0
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ko.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ko.properties
index adc9b1d..ff3b382 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ko.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ko.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=\uAC80\uC0C9 \uC704\uCE58:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=\uC800\uC7A5 \uC704\uCE58:
 FileChooser.fileNameLabelText=\uD30C\uC77C \uC774\uB984:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=\uD3F4\uB354 \uC774\uB984:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=\uD30C\uC77C \uC720\uD615:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=\uD55C \uB808\uBCA8 \uC704\uB85C
 FileChooser.upFolderAccessibleName=\uC704\uB85C
 FileChooser.homeFolderToolTipText=\uD648
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_pt_BR.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_pt_BR.properties
index b14a61f..bb94bb1 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_pt_BR.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_pt_BR.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Consultar Em:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Salvar Em:
 FileChooser.fileNameLabelText=Nome do Arquivo:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Nome da pasta:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Arquivos do Tipo:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Um N\u00EDvel Acima
 FileChooser.upFolderAccessibleName=Acima
 FileChooser.homeFolderToolTipText=In\u00EDcio
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties
index 9167b72..1d23ec8 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=Leta i:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=Spara i:
 FileChooser.fileNameLabelText=Filnamn:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=Mapp:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=Filformat:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=Upp en niv\u00E5
 FileChooser.upFolderAccessibleName=Upp
 FileChooser.homeFolderToolTipText=Hem
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_CN.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_CN.properties
index 547fd15..5269dcc 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_CN.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_CN.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=\u67E5\u770B: 
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=\u4FDD\u5B58: 
 FileChooser.fileNameLabelText=\u6587\u4EF6\u540D: 
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=\u6587\u4EF6\u5939\u540D: 
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=\u6587\u4EF6\u7C7B\u578B: 
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=\u5411\u4E0A\u4E00\u7EA7
 FileChooser.upFolderAccessibleName=\u5411\u4E0A
 FileChooser.homeFolderToolTipText=\u4E3B\u76EE\u5F55
diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_TW.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_TW.properties
index 1144f61..b76aa0b 100644
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_TW.properties
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_TW.properties
@@ -19,10 +19,14 @@
 ############ FILE CHOOSER STRINGS #############
 
 FileChooser.lookInLabelText=\u67E5\u8A62:
+FileChooser.lookInLabelMnemonic=73
 FileChooser.saveInLabelText=\u5132\u5B58\u65BC: 
 FileChooser.fileNameLabelText=\u6A94\u6848\u540D\u7A31:
+FileChooser.fileNameLabelMnemonic=78
 FileChooser.folderNameLabelText=\u8CC7\u6599\u593E\u540D\u7A31:
+FileChooser.folderNameLabelMnemonic=78
 FileChooser.filesOfTypeLabelText=\u6A94\u6848\u985E\u578B:
+FileChooser.filesOfTypeLabelMnemonic=84
 FileChooser.upFolderToolTipText=\u5F80\u4E0A\u4E00\u5C64
 FileChooser.upFolderAccessibleName=\u5F80\u4E0A
 FileChooser.homeFolderToolTipText=\u4E3B\u76EE\u9304
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AccessWatchpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AccessWatchpointSpec.java
index 09e3f7e..8cfe90f 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AccessWatchpointSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AccessWatchpointSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AmbiguousMethodException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AmbiguousMethodException.java
index 667cbb2..139d688 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AmbiguousMethodException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AmbiguousMethodException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public class AmbiguousMethodException extends Exception
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/BreakpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/BreakpointSpec.java
index 541582e..9e5da40 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/BreakpointSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/BreakpointSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public abstract class BreakpointSpec extends EventRequestSpec {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ChildSession.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ChildSession.java
index 917b0d8..7469709 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ChildSession.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ChildSession.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EvaluationException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EvaluationException.java
index 0e0a6b0..9163e5b 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EvaluationException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EvaluationException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public class EvaluationException extends Exception {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpec.java
index 796d580..5a9c1d7 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpecList.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpecList.java
index a489827..ce5dcce 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpecList.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpecList.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExceptionSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExceptionSpec.java
index fa3fcb3..c26d8b8 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExceptionSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExceptionSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.ReferenceType;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExecutionManager.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExecutionManager.java
index 35f2075..4a79f43 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExecutionManager.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExecutionManager.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/FrameIndexOutOfBoundsException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/FrameIndexOutOfBoundsException.java
index 5d70918..4f1ebd2 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/FrameIndexOutOfBoundsException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/FrameIndexOutOfBoundsException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public class FrameIndexOutOfBoundsException extends IndexOutOfBoundsException {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/InputListener.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/InputListener.java
index a06d39b..d32d1da 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/InputListener.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/InputListener.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public interface InputListener {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/JDIEventSource.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/JDIEventSource.java
index dedc247..bd34832 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/JDIEventSource.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/JDIEventSource.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java
index 0a1e0b1..838fe55 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineNotFoundException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineNotFoundException.java
index 6d906a8..97f023a 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineNotFoundException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineNotFoundException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public class LineNotFoundException extends Exception
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MalformedMemberNameException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MalformedMemberNameException.java
index c73e685..1dea517 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MalformedMemberNameException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MalformedMemberNameException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 class MalformedMemberNameException extends Exception {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java
index 7a9748a..387f92f 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodNotFoundException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodNotFoundException.java
index 9fd3aa9..75331cc 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodNotFoundException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodNotFoundException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public class MethodNotFoundException extends Exception
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ModificationWatchpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ModificationWatchpointSpec.java
index 7043d66..7d30378 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ModificationWatchpointSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ModificationWatchpointSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoSessionException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoSessionException.java
index 32988ab..df1c82d 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoSessionException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoSessionException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public class NoSessionException extends Exception {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoThreadException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoThreadException.java
index 460b1a4..48ed6ba 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoThreadException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoThreadException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public class NoThreadException extends Exception {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/OutputListener.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/OutputListener.java
index 777926b..2f5db08 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/OutputListener.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/OutputListener.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public interface OutputListener {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ParseException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ParseException.java
index c730c6c..413e7aa 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ParseException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ParseException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 // dummy placeholder for javaCC-generated code.
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/PatternReferenceTypeSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/PatternReferenceTypeSpec.java
index 4f6d73e..382b6da 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/PatternReferenceTypeSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/PatternReferenceTypeSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ReferenceTypeSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ReferenceTypeSpec.java
index fc47806..199df81 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ReferenceTypeSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ReferenceTypeSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Session.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Session.java
index 4599cb1..d2cd7ce 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Session.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Session.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.VirtualMachine;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SessionListener.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SessionListener.java
index df109a5..1b22055 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SessionListener.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SessionListener.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import java.util.EventObject;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SourceNameReferenceTypeSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SourceNameReferenceTypeSpec.java
index c788f5d..ff954d2 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SourceNameReferenceTypeSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SourceNameReferenceTypeSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecErrorEvent.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecErrorEvent.java
index c6b9f4e..2ba571e 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecErrorEvent.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecErrorEvent.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public class SpecErrorEvent extends SpecEvent {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecEvent.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecEvent.java
index 625a263..8492f4d 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecEvent.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecEvent.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import java.util.EventObject;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecListener.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecListener.java
index 9771e9f..a5d6bc4 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecListener.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecListener.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import java.util.EventListener;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadGroupIterator.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadGroupIterator.java
index c6ec121..736bf2e 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadGroupIterator.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadGroupIterator.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.ThreadGroupReference;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadInfo.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadInfo.java
index b9516c4..9f36408 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadInfo.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadInfo.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadIterator.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadIterator.java
index 6fafd71..ac61bbd 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadIterator.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadIterator.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 import com.sun.jdi.ThreadGroupReference;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Utils.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Utils.java
index d3e0173..3ccaad6 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Utils.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Utils.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;   //### does it belong here?
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMLaunchFailureException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMLaunchFailureException.java
index d0c482c..4996184 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMLaunchFailureException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMLaunchFailureException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public class VMLaunchFailureException extends Exception {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMNotInterruptedException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMNotInterruptedException.java
index ef12d6d..f14a5f4 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMNotInterruptedException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMNotInterruptedException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public class VMNotInterruptedException extends Exception {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/WatchpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/WatchpointSpec.java
index 469b423..7b77173 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/WatchpointSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/WatchpointSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.bdi;
 
 public abstract class WatchpointSpec extends EventRequestSpec {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/AbstractEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/AbstractEventSet.java
index 80cbd9a..c239f0f 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/AbstractEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/AbstractEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/AccessWatchpointEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/AccessWatchpointEventSet.java
index 37b73e5..e8b0f08 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/AccessWatchpointEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/AccessWatchpointEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.event.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassPrepareEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassPrepareEventSet.java
index 69050d3..09e8340 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassPrepareEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassPrepareEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassUnloadEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassUnloadEventSet.java
index c043b23..b9e70d6 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassUnloadEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassUnloadEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.event.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/ExceptionEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/ExceptionEventSet.java
index c94fa28..7c48539 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/ExceptionEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/ExceptionEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/JDIAdapter.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/JDIAdapter.java
index fb3e7a8..706e206 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/JDIAdapter.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/JDIAdapter.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 /**
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/JDIListener.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/JDIListener.java
index 16eef96..a0637e3 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/JDIListener.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/JDIListener.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import java.util.EventListener;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/LocatableEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/LocatableEventSet.java
index 303af12..6cafff9 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/LocatableEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/LocatableEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/LocationTriggerEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/LocationTriggerEventSet.java
index b30bea5..ab52678 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/LocationTriggerEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/LocationTriggerEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.event.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/ModificationWatchpointEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/ModificationWatchpointEventSet.java
index 382a8f3..591bcd5 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/ModificationWatchpointEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/ModificationWatchpointEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadDeathEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadDeathEventSet.java
index ad432f7..dd17a05 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadDeathEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadDeathEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadStartEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadStartEventSet.java
index 63b1fb4..c96e298 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadStartEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadStartEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDeathEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDeathEventSet.java
index 017f11f..ee05411 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDeathEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDeathEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.event.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDisconnectEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDisconnectEventSet.java
index 4edf4b8..0ac988c 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDisconnectEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDisconnectEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.event.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/VMStartEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/VMStartEventSet.java
index 896fa78..0de4700 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/VMStartEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/VMStartEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/WatchpointEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/WatchpointEventSet.java
index 628f21c..e662b10 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/event/WatchpointEventSet.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/WatchpointEventSet.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.event;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ASCII_UCodeESC_CharStream.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ASCII_UCodeESC_CharStream.java
index 1ec552e..69f2433 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ASCII_UCodeESC_CharStream.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ASCII_UCodeESC_CharStream.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Generated By:JavaCC: Do not edit this line. ASCII_UCodeESC_CharStream.java Version 0.7pre6 */
 
 package com.sun.tools.example.debug.expr;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java
index c2c7901..063c29d 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Generated By:JavaCC: Do not edit this line. ExpressionParser.java */
 package com.sun.tools.example.debug.expr;
 
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserConstants.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserConstants.java
index 9f1f725..390d238 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserConstants.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserConstants.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Generated By:JavaCC: Do not edit this line. ExpressionParserConstants.java */
 package com.sun.tools.example.debug.expr;
 
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java
index 9787d5d..6720997 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Generated By:JavaCC: Do not edit this line. ExpressionParserTokenManager.java */
 package com.sun.tools.example.debug.expr;
 
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/LValue.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/LValue.java
index 42ef296..57e2950 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/LValue.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/LValue.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.expr;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java
index 8ee5372..1f5c30b 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Generated By:JavaCC: Do not edit this line. ParseException.java Version 0.7pre6 */
 package com.sun.tools.example.debug.expr;
 
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/Token.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/Token.java
index 5341200..1b6a63d 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/Token.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/Token.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Generated By:JavaCC: Do not edit this line. Token.java Version 0.7pre3 */
 package com.sun.tools.example.debug.expr;
 
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java
index 16a40df..fc84002 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 0.7pre2 */
 package com.sun.tools.example.debug.expr;
 
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ApplicationTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ApplicationTool.java
index e9a4c0b..4157f98 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ApplicationTool.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ApplicationTool.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import javax.swing.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ClassManager.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ClassManager.java
index bdddc24..f5561d1 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ClassManager.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ClassManager.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 public class ClassManager {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ClassTreeTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ClassTreeTool.java
index 9452434..bc4a766 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ClassTreeTool.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ClassTreeTool.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.util.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java
index 97ab320..af1b9eb 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandTool.java
index 42157e4..1e0f78b 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandTool.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandTool.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextListener.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextListener.java
index 4ac03a0..b4b63f0 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextListener.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextListener.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 public interface ContextListener {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java
index 2ce0490..01f96d4 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CurrentFrameChangedEvent.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CurrentFrameChangedEvent.java
index 00c827f..90f2967 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CurrentFrameChangedEvent.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CurrentFrameChangedEvent.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/Environment.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/Environment.java
index f9884c7..6dc57a9 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/Environment.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/Environment.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/GUI.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/GUI.java
index 1fa88bb..b9ae173 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/GUI.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/GUI.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/Icons.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/Icons.java
index bdbb700..87173d2 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/Icons.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/Icons.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import javax.swing.Icon;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBFileFilter.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBFileFilter.java
index 3a6f107..6d6bf77 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBFileFilter.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBFileFilter.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.File;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBMenuBar.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBMenuBar.java
index c224b57..22329cf 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBMenuBar.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBMenuBar.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import javax.swing.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBToolBar.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBToolBar.java
index 02982b9..8031fab 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBToolBar.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBToolBar.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import javax.swing.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/LaunchTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/LaunchTool.java
index cb1d77b..febce66 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/LaunchTool.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/LaunchTool.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.util.List;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorListModel.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorListModel.java
index c46219f..9203206 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorListModel.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorListModel.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.util.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorTool.java
index cf7c10c..ebdca54 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorTool.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorTool.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import javax.swing.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/OutputSink.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/OutputSink.java
index 413878f..321e162 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/OutputSink.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/OutputSink.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SearchPath.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SearchPath.java
index 3090569..9e6da58 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SearchPath.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SearchPath.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SingleLeafTreeSelectionModel.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SingleLeafTreeSelectionModel.java
index 47df28d..0de002a 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SingleLeafTreeSelectionModel.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SingleLeafTreeSelectionModel.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import javax.swing.tree.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceListener.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceListener.java
index 94c1dbc..d98251a 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceListener.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceListener.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 public interface SourceListener {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceManager.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceManager.java
index eda8346..7465bfb 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceManager.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceManager.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java
index b65be0b..9510218 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTool.java
index cecbeaf..a358c71 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTool.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTool.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTreeTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTreeTool.java
index 5f572c7..e21b027 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTreeTool.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTreeTool.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourcepathChangedEvent.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourcepathChangedEvent.java
index 975571b..88a26f9 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourcepathChangedEvent.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourcepathChangedEvent.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.util.EventObject;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/StackTraceTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/StackTraceTool.java
index 1e3b68e..405c7ec 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/StackTraceTool.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/StackTraceTool.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import javax.swing.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ThreadTreeTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ThreadTreeTool.java
index 02cf374..05e1836 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ThreadTreeTool.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ThreadTreeTool.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.util.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScript.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScript.java
index c99a4cd..254e9fa 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScript.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScript.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.awt.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptOutputListener.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptOutputListener.java
index bb3cda6..e284e77 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptOutputListener.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptOutputListener.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import com.sun.tools.example.debug.bdi.OutputListener;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptWriter.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptWriter.java
index 64b5ec2..462d4a5 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptWriter.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptWriter.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.gui;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/AccessWatchpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/AccessWatchpointSpec.java
index 1b83363..0f72fb4 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/AccessWatchpointSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/AccessWatchpointSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/AmbiguousMethodException.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/AmbiguousMethodException.java
index eb210dd..35329bc 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/AmbiguousMethodException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/AmbiguousMethodException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 public class AmbiguousMethodException extends Exception
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java
index ed6c2a1..87a9a30 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/Commands.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/Commands.java
index 14a8826..d6fa909 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/Commands.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/Commands.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/Env.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/Env.java
index e397326..060f8a3 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/Env.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/Env.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventHandler.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventHandler.java
index 31e5035..55bf2bf 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventHandler.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventHandler.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventNotifier.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventNotifier.java
index f03e97d..97dabf9 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventNotifier.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventNotifier.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.event.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpec.java
index 5c0177b..ba668d2 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpecList.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpecList.java
index 58dc664..8ad6528 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpecList.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpecList.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.request.EventRequest;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ExceptionSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ExceptionSpec.java
index f1a3c27..8c1e652 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ExceptionSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ExceptionSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.ReferenceType;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/LineNotFoundException.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/LineNotFoundException.java
index 442b798..8e188aa 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/LineNotFoundException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/LineNotFoundException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 public class LineNotFoundException extends Exception
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/MalformedMemberNameException.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/MalformedMemberNameException.java
index 3f2bf46..3e64927 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/MalformedMemberNameException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/MalformedMemberNameException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 class MalformedMemberNameException extends Exception {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/MessageOutput.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/MessageOutput.java
index 54e3b37..b86d89f 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/MessageOutput.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/MessageOutput.java
@@ -22,6 +22,15 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
 package com.sun.tools.example.debug.tty;
 
 import java.util.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ModificationWatchpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ModificationWatchpointSpec.java
index ee3a63e..846f74b 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ModificationWatchpointSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ModificationWatchpointSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/PatternReferenceTypeSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/PatternReferenceTypeSpec.java
index cc4473c..e719222 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/PatternReferenceTypeSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/PatternReferenceTypeSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ReferenceTypeSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ReferenceTypeSpec.java
index 0e76be0..12f1fc6 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ReferenceTypeSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ReferenceTypeSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/SourceMapper.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/SourceMapper.java
index 941f6c2..e7f67f0 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/SourceMapper.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/SourceMapper.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.Location;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTY.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTY.java
index 6514592..f86f177 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTY.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTY.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources.java
index f6ba9d7..2c844c2 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 /**
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java
index 2dcace1..1a82e3b 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 /**
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_zh_CN.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_zh_CN.java
index dc84bdf..1bad495 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_zh_CN.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_zh_CN.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 /**
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadGroupIterator.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadGroupIterator.java
index dd3ad08..c361a83 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadGroupIterator.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadGroupIterator.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.ThreadGroupReference;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadInfo.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadInfo.java
index 8ac294f..b1654ac 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadInfo.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadInfo.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.ThreadReference;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadIterator.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadIterator.java
index 6acb2ea..31b996b 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadIterator.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadIterator.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.ThreadGroupReference;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java
index 0b77f98..73a075b 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMNotConnectedException.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMNotConnectedException.java
index 780301c..bde3c12 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMNotConnectedException.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMNotConnectedException.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 public class VMNotConnectedException extends RuntimeException {
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/WatchpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/WatchpointSpec.java
index 6c7da78..c9b3c4e 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/WatchpointSpec.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/WatchpointSpec.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.debug.tty;
 
 abstract class WatchpointSpec extends EventRequestSpec {
diff --git a/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java b/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java
index 229a416..22a3fdc 100644
--- a/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java
+++ b/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.trace;
 
 import com.sun.jdi.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java b/jdk/src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java
index b6e6e59..be5b028 100644
--- a/jdk/src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java
+++ b/jdk/src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.trace;
 
 import java.io.*;
diff --git a/jdk/src/share/classes/com/sun/tools/example/trace/Trace.java b/jdk/src/share/classes/com/sun/tools/example/trace/Trace.java
index 2e1b961..04fc096 100644
--- a/jdk/src/share/classes/com/sun/tools/example/trace/Trace.java
+++ b/jdk/src/share/classes/com/sun/tools/example/trace/Trace.java
@@ -23,6 +23,15 @@
  * questions.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.tools.example.trace;
 
 import com.sun.jdi.VirtualMachine;
diff --git a/jdk/src/share/classes/java/awt/AWTKeyStroke.java b/jdk/src/share/classes/java/awt/AWTKeyStroke.java
index 1f91e42..fc31153 100644
--- a/jdk/src/share/classes/java/awt/AWTKeyStroke.java
+++ b/jdk/src/share/classes/java/awt/AWTKeyStroke.java
@@ -777,10 +777,6 @@ public class AWTKeyStroke implements Serializable {
      */
     protected Object readResolve() throws java.io.ObjectStreamException {
         synchronized (AWTKeyStroke.class) {
-            Class newClass = getClass();
-            if (!newClass.equals(ctor.getDeclaringClass())) {
-                registerSubclass(newClass);
-            }
             return getCachedStroke(keyChar, keyCode, modifiers, onKeyRelease);
         }
     }
diff --git a/jdk/src/share/classes/java/awt/BufferCapabilities.java b/jdk/src/share/classes/java/awt/BufferCapabilities.java
index a4b860b..61ce15e 100644
--- a/jdk/src/share/classes/java/awt/BufferCapabilities.java
+++ b/jdk/src/share/classes/java/awt/BufferCapabilities.java
@@ -137,7 +137,7 @@ public class BufferCapabilities implements Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // Since we implement Cloneable, this should never happen
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/awt/Component.java b/jdk/src/share/classes/java/awt/Component.java
index 2225633..09d745f 100644
--- a/jdk/src/share/classes/java/awt/Component.java
+++ b/jdk/src/share/classes/java/awt/Component.java
@@ -3776,11 +3776,10 @@ public abstract class Component implements ImageObserver, MenuContainer,
             createBufferStrategy(numBuffers, bufferCaps);
             return; // Success
         } catch (AWTException e) {
-            // Failed
+            // Code should never reach here (an unaccelerated blitting
+            // strategy should always work)
+            throw new InternalError("Could not create a buffer strategy", e);
         }
-        // Code should never reach here (an unaccelerated blitting
-        // strategy should always work)
-        throw new InternalError("Could not create a buffer strategy");
     }
 
     /**
@@ -7910,7 +7909,7 @@ public abstract class Component implements ImageObserver, MenuContainer,
                 res = toFocus.requestFocusInWindow(CausedFocusEvent.Cause.TRAVERSAL_BACKWARD);
             }
         }
-        if (!res) {
+        if (clearOnFailure && !res) {
             if (focusLog.isLoggable(PlatformLogger.FINER)) {
                 focusLog.finer("clear global focus owner");
             }
diff --git a/jdk/src/share/classes/java/awt/EventDispatchThread.java b/jdk/src/share/classes/java/awt/EventDispatchThread.java
index b938ac8..c707f02 100644
--- a/jdk/src/share/classes/java/awt/EventDispatchThread.java
+++ b/jdk/src/share/classes/java/awt/EventDispatchThread.java
@@ -34,8 +34,10 @@ import java.security.AccessController;
 import sun.security.action.GetPropertyAction;
 import sun.awt.AWTAutoShutdown;
 import sun.awt.SunToolkit;
+import sun.awt.AppContext;
 
-import java.util.Vector;
+import java.util.ArrayList;
+import java.util.List;
 import sun.util.logging.PlatformLogger;
 
 import sun.awt.dnd.SunDragSourceContextPeer;
@@ -66,11 +68,11 @@ class EventDispatchThread extends Thread {
 
     private EventQueue theQueue;
     private boolean doDispatch = true;
-    private boolean threadDeathCaught = false;
+    private volatile boolean shutdown = false;
 
     private static final int ANY_EVENT = -1;
 
-    private Vector<EventFilter> eventFilters = new Vector<EventFilter>();
+    private ArrayList<EventFilter> eventFilters = new ArrayList<EventFilter>();
 
     EventDispatchThread(ThreadGroup group, String name, EventQueue queue) {
         super(group, name);
@@ -84,6 +86,11 @@ class EventDispatchThread extends Thread {
         doDispatch = false;
     }
 
+    public void interrupt() {
+        shutdown = true;
+        super.interrupt();
+    }
+
     public void run() {
         while (true) {
             try {
@@ -93,8 +100,7 @@ class EventDispatchThread extends Thread {
                     }
                 });
             } finally {
-                EventQueue eq = getEventQueue();
-                if (eq.detachDispatchThread(this) || threadDeathCaught) {
+                if(getEventQueue().detachDispatchThread(this, shutdown)) {
                     break;
                 }
             }
@@ -124,10 +130,9 @@ class EventDispatchThread extends Thread {
     void pumpEventsForFilter(int id, Conditional cond, EventFilter filter) {
         addEventFilter(filter);
         doDispatch = true;
-        while (doDispatch && cond.evaluate()) {
-            if (isInterrupted() || !pumpOneEventForFilters(id)) {
-                doDispatch = false;
-            }
+        shutdown |= isInterrupted();
+        while (doDispatch && !shutdown && cond.evaluate()) {
+            pumpOneEventForFilters(id);
         }
         removeEventFilter(filter);
     }
@@ -163,7 +168,7 @@ class EventDispatchThread extends Thread {
         }
     }
 
-    boolean pumpOneEventForFilters(int id) {
+    void pumpOneEventForFilters(int id) {
         AWTEvent event = null;
         boolean eventOK = false;
         try {
@@ -212,24 +217,18 @@ class EventDispatchThread extends Thread {
             if (delegate != null) {
                 delegate.afterDispatch(event, handle);
             }
-
-            return true;
         }
         catch (ThreadDeath death) {
-            threadDeathCaught = true;
-            return false;
-
+            shutdown = true;
+            throw death;
         }
         catch (InterruptedException interruptedException) {
-            return false; // AppContext.dispose() interrupts all
-                          // Threads in the AppContext
-
+            shutdown = true; // AppContext.dispose() interrupts all
+                             // Threads in the AppContext
         }
         catch (Throwable e) {
             processException(e);
         }
-
-        return true;
     }
 
     private void processException(Throwable e) {
diff --git a/jdk/src/share/classes/java/awt/EventQueue.java b/jdk/src/share/classes/java/awt/EventQueue.java
index efc231c..86ea84a 100644
--- a/jdk/src/share/classes/java/awt/EventQueue.java
+++ b/jdk/src/share/classes/java/awt/EventQueue.java
@@ -47,6 +47,7 @@ import sun.awt.AWTAccessor;
 
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.Lock;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import java.security.AccessControlContext;
 import java.security.ProtectionDomain;
@@ -99,12 +100,7 @@ import sun.misc.JavaSecurityAccess;
  * @since       1.1
  */
 public class EventQueue {
-
-    // From Thread.java
-    private static int threadInitNumber;
-    private static synchronized int nextThreadNum() {
-        return threadInitNumber++;
-    }
+    private static final AtomicInteger threadInitNumber = new AtomicInteger(0);
 
     private static final int LOW_PRIORITY = 0;
     private static final int NORM_PRIORITY = 1;
@@ -175,9 +171,9 @@ public class EventQueue {
      * Non-zero if a thread is waiting in getNextEvent(int) for an event of
      * a particular ID to be posted to the queue.
      */
-    private int waitForID;
+    private volatile int waitForID;
 
-    private final String name = "AWT-EventQueue-" + nextThreadNum();
+    private final String name = "AWT-EventQueue-" + threadInitNumber.getAndIncrement();
 
     private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.EventQueue");
 
@@ -1030,7 +1026,7 @@ public class EventQueue {
         }
     }
 
-    final boolean detachDispatchThread(EventDispatchThread edt) {
+    final boolean detachDispatchThread(EventDispatchThread edt, boolean forceDetach) {
         /*
          * This synchronized block is to secure that the event dispatch
          * thread won't die in the middle of posting a new event to the
@@ -1049,7 +1045,7 @@ public class EventQueue {
                  * Fix for 4648733. Check both the associated java event
                  * queue and the PostEventQueue.
                  */
-                if ((peekEvent() != null) || !SunToolkit.isPostEventQueueEmpty()) {
+                if (!forceDetach && (peekEvent() != null) || !SunToolkit.isPostEventQueueEmpty()) {
                     return false;
                 }
                 dispatchThread = null;
diff --git a/jdk/src/share/classes/java/awt/GridBagConstraints.java b/jdk/src/share/classes/java/awt/GridBagConstraints.java
index 9fb3093..c524efd 100644
--- a/jdk/src/share/classes/java/awt/GridBagConstraints.java
+++ b/jdk/src/share/classes/java/awt/GridBagConstraints.java
@@ -653,7 +653,7 @@ public class GridBagConstraints implements Cloneable, java.io.Serializable {
             return c;
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/awt/ImageCapabilities.java b/jdk/src/share/classes/java/awt/ImageCapabilities.java
index fb6ddc5..d0ad474 100644
--- a/jdk/src/share/classes/java/awt/ImageCapabilities.java
+++ b/jdk/src/share/classes/java/awt/ImageCapabilities.java
@@ -74,7 +74,7 @@ public class ImageCapabilities implements Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // Since we implement Cloneable, this should never happen
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/awt/Insets.java b/jdk/src/share/classes/java/awt/Insets.java
index c9e3805..f049a9e 100644
--- a/jdk/src/share/classes/java/awt/Insets.java
+++ b/jdk/src/share/classes/java/awt/Insets.java
@@ -177,7 +177,7 @@ public class Insets implements Cloneable, java.io.Serializable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
     /**
diff --git a/jdk/src/share/classes/java/awt/JobAttributes.java b/jdk/src/share/classes/java/awt/JobAttributes.java
index c144e1b..205b360 100644
--- a/jdk/src/share/classes/java/awt/JobAttributes.java
+++ b/jdk/src/share/classes/java/awt/JobAttributes.java
@@ -361,7 +361,7 @@ public final class JobAttributes implements Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // Since we implement Cloneable, this should never happen
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/awt/PageAttributes.java b/jdk/src/share/classes/java/awt/PageAttributes.java
index f5c8833..85f52ff 100644
--- a/jdk/src/share/classes/java/awt/PageAttributes.java
+++ b/jdk/src/share/classes/java/awt/PageAttributes.java
@@ -969,7 +969,7 @@ public final class PageAttributes implements Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // Since we implement Cloneable, this should never happen
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/awt/RenderingHints.java b/jdk/src/share/classes/java/awt/RenderingHints.java
index 7d33dbe..5b8daa9 100644
--- a/jdk/src/share/classes/java/awt/RenderingHints.java
+++ b/jdk/src/share/classes/java/awt/RenderingHints.java
@@ -1276,7 +1276,7 @@ public class RenderingHints
             }
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
 
         return rh;
diff --git a/jdk/src/share/classes/java/awt/font/TextLayout.java b/jdk/src/share/classes/java/awt/font/TextLayout.java
index c5e204a..51b0dc6 100644
--- a/jdk/src/share/classes/java/awt/font/TextLayout.java
+++ b/jdk/src/share/classes/java/awt/font/TextLayout.java
@@ -753,7 +753,7 @@ public final class TextLayout implements Cloneable {
             return super.clone();
         }
         catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/awt/geom/AffineTransform.java b/jdk/src/share/classes/java/awt/geom/AffineTransform.java
index a3b8134..2fa1dc2 100644
--- a/jdk/src/share/classes/java/awt/geom/AffineTransform.java
+++ b/jdk/src/share/classes/java/awt/geom/AffineTransform.java
@@ -3856,7 +3856,7 @@ public class AffineTransform implements Cloneable, java.io.Serializable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/awt/geom/CubicCurve2D.java b/jdk/src/share/classes/java/awt/geom/CubicCurve2D.java
index 3f6bc9d..5e1fc77 100644
--- a/jdk/src/share/classes/java/awt/geom/CubicCurve2D.java
+++ b/jdk/src/share/classes/java/awt/geom/CubicCurve2D.java
@@ -1569,7 +1569,7 @@ public abstract class CubicCurve2D implements Shape, Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 }
diff --git a/jdk/src/share/classes/java/awt/geom/Dimension2D.java b/jdk/src/share/classes/java/awt/geom/Dimension2D.java
index 437c827..3572539 100644
--- a/jdk/src/share/classes/java/awt/geom/Dimension2D.java
+++ b/jdk/src/share/classes/java/awt/geom/Dimension2D.java
@@ -108,7 +108,7 @@ public abstract class Dimension2D implements Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 }
diff --git a/jdk/src/share/classes/java/awt/geom/Line2D.java b/jdk/src/share/classes/java/awt/geom/Line2D.java
index 312a0e0..2eccbd0 100644
--- a/jdk/src/share/classes/java/awt/geom/Line2D.java
+++ b/jdk/src/share/classes/java/awt/geom/Line2D.java
@@ -1122,7 +1122,7 @@ public abstract class Line2D implements Shape, Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 }
diff --git a/jdk/src/share/classes/java/awt/geom/Point2D.java b/jdk/src/share/classes/java/awt/geom/Point2D.java
index d545505..2320ea8 100644
--- a/jdk/src/share/classes/java/awt/geom/Point2D.java
+++ b/jdk/src/share/classes/java/awt/geom/Point2D.java
@@ -393,7 +393,7 @@ public abstract class Point2D implements Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/awt/geom/QuadCurve2D.java b/jdk/src/share/classes/java/awt/geom/QuadCurve2D.java
index d2351bc..4df791e 100644
--- a/jdk/src/share/classes/java/awt/geom/QuadCurve2D.java
+++ b/jdk/src/share/classes/java/awt/geom/QuadCurve2D.java
@@ -1395,7 +1395,7 @@ public abstract class QuadCurve2D implements Shape, Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 }
diff --git a/jdk/src/share/classes/java/awt/geom/RectangularShape.java b/jdk/src/share/classes/java/awt/geom/RectangularShape.java
index 3c04832..1a468dd 100644
--- a/jdk/src/share/classes/java/awt/geom/RectangularShape.java
+++ b/jdk/src/share/classes/java/awt/geom/RectangularShape.java
@@ -391,7 +391,7 @@ public abstract class RectangularShape implements Shape, Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 }
diff --git a/jdk/src/share/classes/java/awt/image/ImageFilter.java b/jdk/src/share/classes/java/awt/image/ImageFilter.java
index 2cd0da2..7b72807 100644
--- a/jdk/src/share/classes/java/awt/image/ImageFilter.java
+++ b/jdk/src/share/classes/java/awt/image/ImageFilter.java
@@ -252,7 +252,7 @@ public class ImageFilter implements ImageConsumer, Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 }
diff --git a/jdk/src/share/classes/java/awt/image/Kernel.java b/jdk/src/share/classes/java/awt/image/Kernel.java
index e5da78c..a0f3ea6 100644
--- a/jdk/src/share/classes/java/awt/image/Kernel.java
+++ b/jdk/src/share/classes/java/awt/image/Kernel.java
@@ -147,7 +147,7 @@ public class Kernel implements Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 }
diff --git a/jdk/src/share/classes/java/io/BufferedReader.java b/jdk/src/share/classes/java/io/BufferedReader.java
index 51a6073..556abb2 100644
--- a/jdk/src/share/classes/java/io/BufferedReader.java
+++ b/jdk/src/share/classes/java/io/BufferedReader.java
@@ -514,9 +514,12 @@ public class BufferedReader extends Reader {
         synchronized (lock) {
             if (in == null)
                 return;
-            in.close();
-            in = null;
-            cb = null;
+            try {
+                in.close();
+            } finally {
+                in = null;
+                cb = null;
+            }
         }
     }
 }
diff --git a/jdk/src/share/classes/java/io/BufferedWriter.java b/jdk/src/share/classes/java/io/BufferedWriter.java
index 220a47e..83a467e 100644
--- a/jdk/src/share/classes/java/io/BufferedWriter.java
+++ b/jdk/src/share/classes/java/io/BufferedWriter.java
@@ -255,15 +255,15 @@ public class BufferedWriter extends Writer {
         }
     }
 
+    @SuppressWarnings("try")
     public void close() throws IOException {
         synchronized (lock) {
             if (out == null) {
                 return;
             }
-            try {
+            try (Writer w = out) {
                 flushBuffer();
             } finally {
-                out.close();
                 out = null;
                 cb = null;
             }
diff --git a/jdk/src/share/classes/java/io/Closeable.java b/jdk/src/share/classes/java/io/Closeable.java
index 7f3cc8d..e771989 100644
--- a/jdk/src/share/classes/java/io/Closeable.java
+++ b/jdk/src/share/classes/java/io/Closeable.java
@@ -42,6 +42,12 @@ public interface Closeable extends AutoCloseable {
      * with it. If the stream is already closed then invoking this
      * method has no effect.
      *
+     * <p> As noted in {@link AutoCloseable#close()}, cases where the
+     * close may fail require careful attention. It is strongly advised
+     * to relinquish the underlying resources and to internally
+     * <em>mark</em> the {@code Closeable} as closed, prior to throwing
+     * the {@code IOException}.
+     *
      * @throws IOException if an I/O error occurs
      */
     public void close() throws IOException;
diff --git a/jdk/src/share/classes/java/io/FileInputStream.java b/jdk/src/share/classes/java/io/FileInputStream.java
index 3aec508..9dc1955 100644
--- a/jdk/src/share/classes/java/io/FileInputStream.java
+++ b/jdk/src/share/classes/java/io/FileInputStream.java
@@ -56,16 +56,6 @@ class FileInputStream extends InputStream
     private final Object closeLock = new Object();
     private volatile boolean closed = false;
 
-    private static final ThreadLocal<Boolean> runningFinalize =
-        new ThreadLocal<>();
-
-    private static boolean isRunningFinalize() {
-        Boolean val;
-        if ((val = runningFinalize.get()) != null)
-            return val.booleanValue();
-        return false;
-    }
-
     /**
      * Creates a <code>FileInputStream</code> by
      * opening a connection to an actual file,
@@ -319,10 +309,10 @@ class FileInputStream extends InputStream
         int useCount = fd.decrementAndGetUseCount();
 
         /*
-         * If FileDescriptor is still in use by another stream, the finalizer
+         * If FileDescriptor is still in use by another stream, we
          * will not close it.
          */
-        if ((useCount <= 0) || !isRunningFinalize()) {
+        if (useCount <= 0) {
             close0();
         }
     }
@@ -391,18 +381,7 @@ class FileInputStream extends InputStream
      */
     protected void finalize() throws IOException {
         if ((fd != null) &&  (fd != FileDescriptor.in)) {
-
-            /*
-             * Finalizer should not release the FileDescriptor if another
-             * stream is still using it. If the user directly invokes
-             * close() then the FileDescriptor is also released.
-             */
-            runningFinalize.set(Boolean.TRUE);
-            try {
                 close();
-            } finally {
-                runningFinalize.set(Boolean.FALSE);
-            }
         }
     }
 }
diff --git a/jdk/src/share/classes/java/io/FileOutputStream.java b/jdk/src/share/classes/java/io/FileOutputStream.java
index 6f1a776..4a8a724 100644
--- a/jdk/src/share/classes/java/io/FileOutputStream.java
+++ b/jdk/src/share/classes/java/io/FileOutputStream.java
@@ -63,21 +63,12 @@ class FileOutputStream extends OutputStream
     private final boolean append;
 
     /**
-     * The associated channel, initalized lazily.
+     * The associated channel, initialized lazily.
      */
     private FileChannel channel;
 
     private final Object closeLock = new Object();
     private volatile boolean closed = false;
-    private static final ThreadLocal<Boolean> runningFinalize =
-        new ThreadLocal<>();
-
-    private static boolean isRunningFinalize() {
-        Boolean val;
-        if ((val = runningFinalize.get()) != null)
-            return val.booleanValue();
-        return false;
-    }
 
     /**
      * Creates a file output stream to write to the file with the
@@ -355,10 +346,10 @@ class FileOutputStream extends OutputStream
         int useCount = fd.decrementAndGetUseCount();
 
         /*
-         * If FileDescriptor is still in use by another stream, the finalizer
+         * If FileDescriptor is still in use by another stream, we
          * will not close it.
          */
-        if ((useCount <= 0) || !isRunningFinalize()) {
+        if (useCount <= 0) {
             close0();
         }
     }
@@ -424,18 +415,7 @@ class FileOutputStream extends OutputStream
             if (fd == FileDescriptor.out || fd == FileDescriptor.err) {
                 flush();
             } else {
-
-                /*
-                 * Finalizer should not release the FileDescriptor if another
-                 * stream is still using it. If the user directly invokes
-                 * close() then the FileDescriptor is also released.
-                 */
-                runningFinalize.set(Boolean.TRUE);
-                try {
                     close();
-                } finally {
-                    runningFinalize.set(Boolean.FALSE);
-                }
             }
         }
     }
diff --git a/jdk/src/share/classes/java/io/FilterOutputStream.java b/jdk/src/share/classes/java/io/FilterOutputStream.java
index 6de18f0..209e63b 100644
--- a/jdk/src/share/classes/java/io/FilterOutputStream.java
+++ b/jdk/src/share/classes/java/io/FilterOutputStream.java
@@ -152,11 +152,10 @@ class FilterOutputStream extends OutputStream {
      * @see        java.io.FilterOutputStream#flush()
      * @see        java.io.FilterOutputStream#out
      */
+    @SuppressWarnings("try")
     public void close() throws IOException {
-        try {
-          flush();
-        } catch (IOException ignored) {
+        try (OutputStream ostream = out) {
+            flush();
         }
-        out.close();
     }
 }
diff --git a/jdk/src/share/classes/java/io/ObjectStreamClass.java b/jdk/src/share/classes/java/io/ObjectStreamClass.java
index ec13d45..f1c0d5b 100644
--- a/jdk/src/share/classes/java/io/ObjectStreamClass.java
+++ b/jdk/src/share/classes/java/io/ObjectStreamClass.java
@@ -478,7 +478,7 @@ public class ObjectStreamClass implements Serializable {
             fieldRefl = getReflector(fields, this);
         } catch (InvalidClassException ex) {
             // field mismatches impossible when matching local fields vs. self
-            throw new InternalError();
+            throw new InternalError(ex);
         }
 
         if (deserializeEx == null) {
@@ -941,7 +941,7 @@ public class ObjectStreamClass implements Serializable {
                 return cons.newInstance();
             } catch (IllegalAccessException ex) {
                 // should not occur, as access checks have been suppressed
-                throw new InternalError();
+                throw new InternalError(ex);
             }
         } else {
             throw new UnsupportedOperationException();
@@ -969,7 +969,7 @@ public class ObjectStreamClass implements Serializable {
                 }
             } catch (IllegalAccessException ex) {
                 // should not occur, as access checks have been suppressed
-                throw new InternalError();
+                throw new InternalError(ex);
             }
         } else {
             throw new UnsupportedOperationException();
@@ -1000,7 +1000,7 @@ public class ObjectStreamClass implements Serializable {
                 }
             } catch (IllegalAccessException ex) {
                 // should not occur, as access checks have been suppressed
-                throw new InternalError();
+                throw new InternalError(ex);
             }
         } else {
             throw new UnsupportedOperationException();
@@ -1028,7 +1028,7 @@ public class ObjectStreamClass implements Serializable {
                 }
             } catch (IllegalAccessException ex) {
                 // should not occur, as access checks have been suppressed
-                throw new InternalError();
+                throw new InternalError(ex);
             }
         } else {
             throw new UnsupportedOperationException();
@@ -1053,11 +1053,11 @@ public class ObjectStreamClass implements Serializable {
                     throw (ObjectStreamException) th;
                 } else {
                     throwMiscException(th);
-                    throw new InternalError();  // never reached
+                    throw new InternalError(th);  // never reached
                 }
             } catch (IllegalAccessException ex) {
                 // should not occur, as access checks have been suppressed
-                throw new InternalError();
+                throw new InternalError(ex);
             }
         } else {
             throw new UnsupportedOperationException();
@@ -1082,11 +1082,11 @@ public class ObjectStreamClass implements Serializable {
                     throw (ObjectStreamException) th;
                 } else {
                     throwMiscException(th);
-                    throw new InternalError();  // never reached
+                    throw new InternalError(th);  // never reached
                 }
             } catch (IllegalAccessException ex) {
                 // should not occur, as access checks have been suppressed
-                throw new InternalError();
+                throw new InternalError(ex);
             }
         } else {
             throw new UnsupportedOperationException();
@@ -1774,7 +1774,7 @@ public class ObjectStreamClass implements Serializable {
             }
             return hash;
         } catch (IOException ex) {
-            throw new InternalError();
+            throw new InternalError(ex);
         } catch (NoSuchAlgorithmException ex) {
             throw new SecurityException(ex.getMessage());
         }
diff --git a/jdk/src/share/classes/java/io/RandomAccessFile.java b/jdk/src/share/classes/java/io/RandomAccessFile.java
index 2c16791..a2863c5 100644
--- a/jdk/src/share/classes/java/io/RandomAccessFile.java
+++ b/jdk/src/share/classes/java/io/RandomAccessFile.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1994, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -590,8 +590,15 @@ public class RandomAccessFile implements DataOutput, DataInput, Closeable {
          * Decrement FD use count associated with this stream.
          * The count got incremented by FileDescriptor during its construction.
          */
-        fd.decrementAndGetUseCount();
-        close0();
+        int useCount = fd.decrementAndGetUseCount();
+
+        /*
+         * If FileDescriptor is still in use by another stream, we
+         * will not close it.
+         */
+        if (useCount <= 0) {
+            close0();
+        }
     }
 
     //
diff --git a/jdk/src/share/classes/java/lang/AutoCloseable.java b/jdk/src/share/classes/java/lang/AutoCloseable.java
index 54ecda3..d928a9d 100644
--- a/jdk/src/share/classes/java/lang/AutoCloseable.java
+++ b/jdk/src/share/classes/java/lang/AutoCloseable.java
@@ -43,6 +43,15 @@ public interface AutoCloseable {
      * throw more specific exceptions, or to throw no exception at all
      * if the close operation cannot fail.
      *
+     * <p> Cases where the close operation may fail require careful
+     * attention by implementers. It is strongly advised to relinquish
+     * the underlying resources and to internally <em>mark</em> the
+     * resource as closed, prior to throwing the exception. The {@code
+     * close} method is unlikely to be invoked more than once and so
+     * this ensures that the resources are released in a timely manner.
+     * Furthermore it reduces problems that could arise when the resource
+     * wraps, or is wrapped, by another resource.
+     *
      * <p><em>Implementers of this interface are also strongly advised
      * to not have the {@code close} method throw {@link
      * InterruptedException}.</em>
diff --git a/jdk/src/share/classes/java/lang/Boolean.java b/jdk/src/share/classes/java/lang/Boolean.java
index ebe0b1f..9bf79a3 100644
--- a/jdk/src/share/classes/java/lang/Boolean.java
+++ b/jdk/src/share/classes/java/lang/Boolean.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1994, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -101,7 +101,7 @@ public final class Boolean implements java.io.Serializable,
      * @param   s   the string to be converted to a {@code Boolean}.
      */
     public Boolean(String s) {
-        this(toBoolean(s));
+        this(parseBoolean(s));
     }
 
     /**
@@ -118,7 +118,7 @@ public final class Boolean implements java.io.Serializable,
      * @since 1.5
      */
     public static boolean parseBoolean(String s) {
-        return toBoolean(s);
+        return ((s != null) && s.equalsIgnoreCase("true"));
     }
 
     /**
@@ -159,7 +159,7 @@ public final class Boolean implements java.io.Serializable,
      * @return  the {@code Boolean} value represented by the string.
      */
     public static Boolean valueOf(String s) {
-        return toBoolean(s) ? TRUE : FALSE;
+        return parseBoolean(s) ? TRUE : FALSE;
     }
 
     /**
@@ -229,15 +229,16 @@ public final class Boolean implements java.io.Serializable,
      *
      * @param   name   the system property name.
      * @return  the {@code boolean} value of the system property.
+     * @throws  SecurityException for the same reasons as
+     *          {@link System#getProperty(String) System.getProperty}
      * @see     java.lang.System#getProperty(java.lang.String)
      * @see     java.lang.System#getProperty(java.lang.String, java.lang.String)
      */
     public static boolean getBoolean(String name) {
         boolean result = false;
         try {
-            result = toBoolean(System.getProperty(name));
-        } catch (IllegalArgumentException e) {
-        } catch (NullPointerException e) {
+            result = parseBoolean(System.getProperty(name));
+        } catch (IllegalArgumentException | NullPointerException e) {
         }
         return result;
     }
@@ -275,8 +276,4 @@ public final class Boolean implements java.io.Serializable,
     public static int compare(boolean x, boolean y) {
         return (x == y) ? 0 : (x ? 1 : -1);
     }
-
-    private static boolean toBoolean(String name) {
-        return ((name != null) && name.equalsIgnoreCase("true"));
-    }
 }
diff --git a/jdk/src/share/classes/java/lang/CharacterName.java b/jdk/src/share/classes/java/lang/CharacterName.java
index fa0b2d6..a2d8463 100644
--- a/jdk/src/share/classes/java/lang/CharacterName.java
+++ b/jdk/src/share/classes/java/lang/CharacterName.java
@@ -83,7 +83,7 @@ class CharacterName {
             dis.readFully(strPool);
             refStrPool = new SoftReference<>(strPool);
         } catch (Exception x) {
-            throw new InternalError(x.getMessage());
+            throw new InternalError(x.getMessage(), x);
         } finally {
             try {
                 if (dis != null)
diff --git a/jdk/src/share/classes/java/lang/Class.java b/jdk/src/share/classes/java/lang/Class.java
index 6342acc..e6c709c 100644
--- a/jdk/src/share/classes/java/lang/Class.java
+++ b/jdk/src/share/classes/java/lang/Class.java
@@ -985,8 +985,7 @@ public final class Class<T>
                 descriptor      = (String)   enclosingInfo[2];
                 assert((name != null && descriptor != null) || name == descriptor);
             } catch (ClassCastException cce) {
-                throw (InternalError)
-                    new InternalError("Invalid type in enclosing method information").initCause(cce);
+                throw new InternalError("Invalid type in enclosing method information", cce);
             }
         }
 
@@ -1252,8 +1251,7 @@ public final class Class<T>
         try {
             return getName().substring(enclosingClass.getName().length());
         } catch (IndexOutOfBoundsException ex) {
-            throw (InternalError)
-                new InternalError("Malformed class name").initCause(ex);
+            throw new InternalError("Malformed class name", ex);
         }
     }
 
diff --git a/jdk/src/share/classes/java/lang/Double.java b/jdk/src/share/classes/java/lang/Double.java
index 6f8cdaf..7d42618 100644
--- a/jdk/src/share/classes/java/lang/Double.java
+++ b/jdk/src/share/classes/java/lang/Double.java
@@ -276,14 +276,14 @@ public final class Double extends Number implements Comparable<Double> {
          * 7.19.6.1; however, the output of this method is more
          * tightly specified.
          */
-        if (!FpUtils.isFinite(d) )
+        if (!isFinite(d) )
             // For infinity and NaN, use the decimal output.
             return Double.toString(d);
         else {
             // Initialized to maximum size of output.
             StringBuffer answer = new StringBuffer(24);
 
-            if (FpUtils.rawCopySign(1.0, d) == -1.0) // value is negative,
+            if (Math.copySign(1.0, d) == -1.0)    // value is negative,
                 answer.append("-");                  // so append sign info
 
             answer.append("0x");
@@ -322,7 +322,7 @@ public final class Double extends Number implements Comparable<Double> {
                 // E_min -1).
                 answer.append("p" + (subnormal ?
                                DoubleConsts.MIN_EXPONENT:
-                               FpUtils.getExponent(d) ));
+                               Math.getExponent(d) ));
             }
             return answer.toString();
         }
@@ -548,7 +548,7 @@ public final class Double extends Number implements Comparable<Double> {
      * @return  {@code true} if the value of the argument is NaN;
      *          {@code false} otherwise.
      */
-    static public boolean isNaN(double v) {
+    public static boolean isNaN(double v) {
         return (v != v);
     }
 
@@ -560,11 +560,25 @@ public final class Double extends Number implements Comparable<Double> {
      * @return  {@code true} if the value of the argument is positive
      *          infinity or negative infinity; {@code false} otherwise.
      */
-    static public boolean isInfinite(double v) {
+    public static boolean isInfinite(double v) {
         return (v == POSITIVE_INFINITY) || (v == NEGATIVE_INFINITY);
     }
 
     /**
+     * Returns {@code true} if the argument is a finite floating-point
+     * value; returns {@code false} otherwise (for NaN and infinity
+     * arguments).
+     *
+     * @param d the {@code double} value to be tested
+     * @return {@code true} if the argument is a finite
+     * floating-point value, {@code false} otherwise.
+     * @since 1.8
+     */
+    public static boolean isFinite(double d) {
+        return Math.abs(d) <= DoubleConsts.MAX_VALUE;
+    }
+
+    /**
      * The value of the Double.
      *
      * @serial
diff --git a/jdk/src/share/classes/java/lang/Float.java b/jdk/src/share/classes/java/lang/Float.java
index fa4bfb7..6aa381c 100644
--- a/jdk/src/share/classes/java/lang/Float.java
+++ b/jdk/src/share/classes/java/lang/Float.java
@@ -26,7 +26,6 @@
 package java.lang;
 
 import sun.misc.FloatingDecimal;
-import sun.misc.FpUtils;
 import sun.misc.FloatConsts;
 import sun.misc.DoubleConsts;
 
@@ -279,10 +278,10 @@ public final class Float extends Number implements Comparable<Float> {
             // Adjust exponent to create subnormal double, then
             // replace subnormal double exponent with subnormal float
             // exponent
-            String s = Double.toHexString(FpUtils.scalb((double)f,
-                                                        /* -1022+126 */
-                                                        DoubleConsts.MIN_EXPONENT-
-                                                        FloatConsts.MIN_EXPONENT));
+            String s = Double.toHexString(Math.scalb((double)f,
+                                                     /* -1022+126 */
+                                                     DoubleConsts.MIN_EXPONENT-
+                                                     FloatConsts.MIN_EXPONENT));
             return s.replaceFirst("p-1022$", "p-126");
         }
         else // double string will be the same as float string
@@ -460,7 +459,7 @@ public final class Float extends Number implements Comparable<Float> {
      * @return  {@code true} if the argument is NaN;
      *          {@code false} otherwise.
      */
-    static public boolean isNaN(float v) {
+    public static boolean isNaN(float v) {
         return (v != v);
     }
 
@@ -472,10 +471,25 @@ public final class Float extends Number implements Comparable<Float> {
      * @return  {@code true} if the argument is positive infinity or
      *          negative infinity; {@code false} otherwise.
      */
-    static public boolean isInfinite(float v) {
+    public static boolean isInfinite(float v) {
         return (v == POSITIVE_INFINITY) || (v == NEGATIVE_INFINITY);
     }
 
+
+    /**
+     * Returns {@code true} if the argument is a finite floating-point
+     * value; returns {@code false} otherwise (for NaN and infinity
+     * arguments).
+     *
+     * @param f the {@code float} value to be tested
+     * @return {@code true} if the argument is a finite
+     * floating-point value, {@code false} otherwise.
+     * @since 1.8
+     */
+     public static boolean isFinite(float f) {
+        return Math.abs(f) <= FloatConsts.MAX_VALUE;
+    }
+
     /**
      * The value of the Float.
      *
diff --git a/jdk/src/share/classes/java/lang/Integer.java b/jdk/src/share/classes/java/lang/Integer.java
index 605918c..f3bba73 100644
--- a/jdk/src/share/classes/java/lang/Integer.java
+++ b/jdk/src/share/classes/java/lang/Integer.java
@@ -776,17 +776,17 @@ public final class Integer extends Number implements Comparable<Integer> {
      * Determines the integer value of the system property with the
      * specified name.
      *
-     * <p>The first argument is treated as the name of a system property.
-     * System properties are accessible through the
-     * {@link java.lang.System#getProperty(java.lang.String)} method. The
+     * <p>The first argument is treated as the name of a system
+     * property.  System properties are accessible through the {@link
+     * java.lang.System#getProperty(java.lang.String)} method. The
      * string value of this property is then interpreted as an integer
-     * value and an {@code Integer} object representing this value is
-     * returned. Details of possible numeric formats can be found with
-     * the definition of {@code getProperty}.
+     * value using the grammar supported by {@link Integer#decode decode} and
+     * an {@code Integer} object representing this value is returned.
      *
-     * <p>If there is no property with the specified name, if the specified name
-     * is empty or {@code null}, or if the property does not have
-     * the correct numeric format, then {@code null} is returned.
+     * <p>If there is no property with the specified name, if the
+     * specified name is empty or {@code null}, or if the property
+     * does not have the correct numeric format, then {@code null} is
+     * returned.
      *
      * <p>In other words, this method returns an {@code Integer}
      * object equal to the value of:
@@ -797,6 +797,8 @@ public final class Integer extends Number implements Comparable<Integer> {
      *
      * @param   nm   property name.
      * @return  the {@code Integer} value of the property.
+     * @throws  SecurityException for the same reasons as
+     *          {@link System#getProperty(String) System.getProperty}
      * @see     java.lang.System#getProperty(java.lang.String)
      * @see     java.lang.System#getProperty(java.lang.String, java.lang.String)
      */
@@ -808,13 +810,12 @@ public final class Integer extends Number implements Comparable<Integer> {
      * Determines the integer value of the system property with the
      * specified name.
      *
-     * <p>The first argument is treated as the name of a system property.
-     * System properties are accessible through the {@link
+     * <p>The first argument is treated as the name of a system
+     * property.  System properties are accessible through the {@link
      * java.lang.System#getProperty(java.lang.String)} method. The
      * string value of this property is then interpreted as an integer
-     * value and an {@code Integer} object representing this value is
-     * returned. Details of possible numeric formats can be found with
-     * the definition of {@code getProperty}.
+     * value using the grammar supported by {@link Integer#decode decode} and
+     * an {@code Integer} object representing this value is returned.
      *
      * <p>The second argument is the default value. An {@code Integer} object
      * that represents the value of the second argument is returned if there
@@ -842,6 +843,8 @@ public final class Integer extends Number implements Comparable<Integer> {
      * @param   nm   property name.
      * @param   val   default value.
      * @return  the {@code Integer} value of the property.
+     * @throws  SecurityException for the same reasons as
+     *          {@link System#getProperty(String) System.getProperty}
      * @see     java.lang.System#getProperty(java.lang.String)
      * @see     java.lang.System#getProperty(java.lang.String, java.lang.String)
      */
@@ -856,9 +859,9 @@ public final class Integer extends Number implements Comparable<Integer> {
      * system property.  System properties are accessible through the
      * {@link java.lang.System#getProperty(java.lang.String)} method.
      * The string value of this property is then interpreted as an
-     * integer value, as per the {@code Integer.decode} method,
+     * integer value, as per the {@link Integer#decode decode} method,
      * and an {@code Integer} object representing this value is
-     * returned.
+     * returned; in summary:
      *
      * <ul><li>If the property value begins with the two ASCII characters
      *         {@code 0x} or the ASCII character {@code #}, not
@@ -882,16 +885,16 @@ public final class Integer extends Number implements Comparable<Integer> {
      * @param   nm   property name.
      * @param   val   default value.
      * @return  the {@code Integer} value of the property.
-     * @see     java.lang.System#getProperty(java.lang.String)
-     * @see java.lang.System#getProperty(java.lang.String, java.lang.String)
-     * @see java.lang.Integer#decode
+     * @throws  SecurityException for the same reasons as
+     *          {@link System#getProperty(String) System.getProperty}
+     * @see     System#getProperty(java.lang.String)
+     * @see     System#getProperty(java.lang.String, java.lang.String)
      */
     public static Integer getInteger(String nm, Integer val) {
         String v = null;
         try {
             v = System.getProperty(nm);
-        } catch (IllegalArgumentException e) {
-        } catch (NullPointerException e) {
+        } catch (IllegalArgumentException | NullPointerException e) {
         }
         if (v != null) {
             try {
diff --git a/jdk/src/share/classes/java/lang/InternalError.java b/jdk/src/share/classes/java/lang/InternalError.java
index f49e9c2..8d33821 100644
--- a/jdk/src/share/classes/java/lang/InternalError.java
+++ b/jdk/src/share/classes/java/lang/InternalError.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1994, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,8 +32,7 @@ package java.lang;
  * @author  unascribed
  * @since   JDK1.0
  */
-public
-class InternalError extends VirtualMachineError {
+public class InternalError extends VirtualMachineError {
     private static final long serialVersionUID = -9062593416125562365L;
 
     /**
@@ -47,9 +46,45 @@ class InternalError extends VirtualMachineError {
      * Constructs an <code>InternalError</code> with the specified
      * detail message.
      *
-     * @param   s   the detail message.
+     * @param   message   the detail message.
      */
-    public InternalError(String s) {
-        super(s);
+    public InternalError(String message) {
+        super(message);
     }
+
+
+    /**
+     * Constructs an {@code InternalError} with the specified detail
+     * message and cause.  <p>Note that the detail message associated
+     * with {@code cause} is <i>not</i> automatically incorporated in
+     * this error's detail message.
+     *
+     * @param  message the detail message (which is saved for later retrieval
+     *         by the {@link #getMessage()} method).
+     * @param  cause the cause (which is saved for later retrieval by the
+     *         {@link #getCause()} method).  (A {@code null} value is
+     *         permitted, and indicates that the cause is nonexistent or
+     *         unknown.)
+     * @since  1.8
+     */
+    public InternalError(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    /**
+     * Constructs an {@code InternalError} with the specified cause
+     * and a detail message of {@code (cause==null ? null :
+     * cause.toString())} (which typically contains the class and
+     * detail message of {@code cause}).
+     *
+     * @param  cause the cause (which is saved for later retrieval by the
+     *         {@link #getCause()} method).  (A {@code null} value is
+     *         permitted, and indicates that the cause is nonexistent or
+     *         unknown.)
+     * @since  1.8
+     */
+    public InternalError(Throwable cause) {
+        super(cause);
+    }
+
 }
diff --git a/jdk/src/share/classes/java/lang/Long.java b/jdk/src/share/classes/java/lang/Long.java
index 2c5905a..31648ed 100644
--- a/jdk/src/share/classes/java/lang/Long.java
+++ b/jdk/src/share/classes/java/lang/Long.java
@@ -806,22 +806,20 @@ public final class Long extends Number implements Comparable<Long> {
      * Determines the {@code long} value of the system property
      * with the specified name.
      *
-     * <p>The first argument is treated as the name of a system property.
-     * System properties are accessible through the {@link
+     * <p>The first argument is treated as the name of a system
+     * property.  System properties are accessible through the {@link
      * java.lang.System#getProperty(java.lang.String)} method. The
-     * string value of this property is then interpreted as a
-     * {@code long} value and a {@code Long} object
-     * representing this value is returned.  Details of possible
-     * numeric formats can be found with the definition of
-     * {@code getProperty}.
+     * string value of this property is then interpreted as a {@code
+     * long} value using the grammar supported by {@link Long#decode decode}
+     * and a {@code Long} object representing this value is returned.
      *
      * <p>If there is no property with the specified name, if the
-     * specified name is empty or {@code null}, or if the
-     * property does not have the correct numeric format, then
-     * {@code null} is returned.
+     * specified name is empty or {@code null}, or if the property
+     * does not have the correct numeric format, then {@code null} is
+     * returned.
      *
-     * <p>In other words, this method returns a {@code Long} object equal to
-     * the value of:
+     * <p>In other words, this method returns a {@code Long} object
+     * equal to the value of:
      *
      * <blockquote>
      *  {@code getLong(nm, null)}
@@ -829,6 +827,8 @@ public final class Long extends Number implements Comparable<Long> {
      *
      * @param   nm   property name.
      * @return  the {@code Long} value of the property.
+     * @throws  SecurityException for the same reasons as
+     *          {@link System#getProperty(String) System.getProperty}
      * @see     java.lang.System#getProperty(java.lang.String)
      * @see     java.lang.System#getProperty(java.lang.String, java.lang.String)
      */
@@ -840,14 +840,12 @@ public final class Long extends Number implements Comparable<Long> {
      * Determines the {@code long} value of the system property
      * with the specified name.
      *
-     * <p>The first argument is treated as the name of a system property.
-     * System properties are accessible through the {@link
+     * <p>The first argument is treated as the name of a system
+     * property.  System properties are accessible through the {@link
      * java.lang.System#getProperty(java.lang.String)} method. The
-     * string value of this property is then interpreted as a
-     * {@code long} value and a {@code Long} object
-     * representing this value is returned.  Details of possible
-     * numeric formats can be found with the definition of
-     * {@code getProperty}.
+     * string value of this property is then interpreted as a {@code
+     * long} value using the grammar supported by {@link Long#decode decode}
+     * and a {@code Long} object representing this value is returned.
      *
      * <p>The second argument is the default value. A {@code Long} object
      * that represents the value of the second argument is returned if there
@@ -874,6 +872,8 @@ public final class Long extends Number implements Comparable<Long> {
      * @param   nm    property name.
      * @param   val   default value.
      * @return  the {@code Long} value of the property.
+     * @throws  SecurityException for the same reasons as
+     *          {@link System#getProperty(String) System.getProperty}
      * @see     java.lang.System#getProperty(java.lang.String)
      * @see     java.lang.System#getProperty(java.lang.String, java.lang.String)
      */
@@ -889,8 +889,8 @@ public final class Long extends Number implements Comparable<Long> {
      * the {@link java.lang.System#getProperty(java.lang.String)}
      * method. The string value of this property is then interpreted
      * as a {@code long} value, as per the
-     * {@code Long.decode} method, and a {@code Long} object
-     * representing this value is returned.
+     * {@link Long#decode decode} method, and a {@code Long} object
+     * representing this value is returned; in summary:
      *
      * <ul>
      * <li>If the property value begins with the two ASCII characters
@@ -921,16 +921,16 @@ public final class Long extends Number implements Comparable<Long> {
      * @param   nm   property name.
      * @param   val   default value.
      * @return  the {@code Long} value of the property.
-     * @see     java.lang.System#getProperty(java.lang.String)
-     * @see java.lang.System#getProperty(java.lang.String, java.lang.String)
-     * @see java.lang.Long#decode
+     * @throws  SecurityException for the same reasons as
+     *          {@link System#getProperty(String) System.getProperty}
+     * @see     System#getProperty(java.lang.String)
+     * @see     System#getProperty(java.lang.String, java.lang.String)
      */
     public static Long getLong(String nm, Long val) {
         String v = null;
         try {
             v = System.getProperty(nm);
-        } catch (IllegalArgumentException e) {
-        } catch (NullPointerException e) {
+        } catch (IllegalArgumentException | NullPointerException e) {
         }
         if (v != null) {
             try {
diff --git a/jdk/src/share/classes/java/lang/Math.java b/jdk/src/share/classes/java/lang/Math.java
index 177d710..059c202 100644
--- a/jdk/src/share/classes/java/lang/Math.java
+++ b/jdk/src/share/classes/java/lang/Math.java
@@ -26,6 +26,8 @@
 package java.lang;
 import java.util.Random;
 
+import sun.misc.FloatConsts;
+import sun.misc.DoubleConsts;
 
 /**
  * The class {@code Math} contains methods for performing basic
@@ -963,7 +965,31 @@ public final class Math {
      * @since 1.5
      */
     public static double ulp(double d) {
-        return sun.misc.FpUtils.ulp(d);
+        int exp = getExponent(d);
+
+        switch(exp) {
+        case DoubleConsts.MAX_EXPONENT+1:       // NaN or infinity
+            return Math.abs(d);
+
+        case DoubleConsts.MIN_EXPONENT-1:       // zero or subnormal
+            return Double.MIN_VALUE;
+
+        default:
+            assert exp <= DoubleConsts.MAX_EXPONENT && exp >= DoubleConsts.MIN_EXPONENT;
+
+            // ulp(x) is usually 2^(SIGNIFICAND_WIDTH-1)*(2^ilogb(x))
+            exp = exp - (DoubleConsts.SIGNIFICAND_WIDTH-1);
+            if (exp >= DoubleConsts.MIN_EXPONENT) {
+                return powerOfTwoD(exp);
+            }
+            else {
+                // return a subnormal result; left shift integer
+                // representation of Double.MIN_VALUE appropriate
+                // number of positions
+                return Double.longBitsToDouble(1L <<
+                (exp - (DoubleConsts.MIN_EXPONENT - (DoubleConsts.SIGNIFICAND_WIDTH-1)) ));
+            }
+        }
     }
 
     /**
@@ -990,7 +1016,31 @@ public final class Math {
      * @since 1.5
      */
     public static float ulp(float f) {
-        return sun.misc.FpUtils.ulp(f);
+        int exp = getExponent(f);
+
+        switch(exp) {
+        case FloatConsts.MAX_EXPONENT+1:        // NaN or infinity
+            return Math.abs(f);
+
+        case FloatConsts.MIN_EXPONENT-1:        // zero or subnormal
+            return FloatConsts.MIN_VALUE;
+
+        default:
+            assert exp <= FloatConsts.MAX_EXPONENT && exp >= FloatConsts.MIN_EXPONENT;
+
+            // ulp(x) is usually 2^(SIGNIFICAND_WIDTH-1)*(2^ilogb(x))
+            exp = exp - (FloatConsts.SIGNIFICAND_WIDTH-1);
+            if (exp >= FloatConsts.MIN_EXPONENT) {
+                return powerOfTwoF(exp);
+            }
+            else {
+                // return a subnormal result; left shift integer
+                // representation of FloatConsts.MIN_VALUE appropriate
+                // number of positions
+                return Float.intBitsToFloat(1 <<
+                (exp - (FloatConsts.MIN_EXPONENT - (FloatConsts.SIGNIFICAND_WIDTH-1)) ));
+            }
+        }
     }
 
     /**
@@ -1011,7 +1061,7 @@ public final class Math {
      * @since 1.5
      */
     public static double signum(double d) {
-        return sun.misc.FpUtils.signum(d);
+        return (d == 0.0 || Double.isNaN(d))?d:copySign(1.0, d);
     }
 
     /**
@@ -1032,7 +1082,7 @@ public final class Math {
      * @since 1.5
      */
     public static float signum(float f) {
-        return sun.misc.FpUtils.signum(f);
+        return (f == 0.0f || Float.isNaN(f))?f:copySign(1.0f, f);
     }
 
     /**
@@ -1252,7 +1302,11 @@ public final class Math {
      * @since 1.6
      */
     public static double copySign(double magnitude, double sign) {
-        return sun.misc.FpUtils.rawCopySign(magnitude, sign);
+        return Double.longBitsToDouble((Double.doubleToRawLongBits(sign) &
+                                        (DoubleConsts.SIGN_BIT_MASK)) |
+                                       (Double.doubleToRawLongBits(magnitude) &
+                                        (DoubleConsts.EXP_BIT_MASK |
+                                         DoubleConsts.SIGNIF_BIT_MASK)));
     }
 
     /**
@@ -1271,7 +1325,11 @@ public final class Math {
      * @since 1.6
      */
     public static float copySign(float magnitude, float sign) {
-        return sun.misc.FpUtils.rawCopySign(magnitude, sign);
+        return Float.intBitsToFloat((Float.floatToRawIntBits(sign) &
+                                     (FloatConsts.SIGN_BIT_MASK)) |
+                                    (Float.floatToRawIntBits(magnitude) &
+                                     (FloatConsts.EXP_BIT_MASK |
+                                      FloatConsts.SIGNIF_BIT_MASK)));
     }
 
     /**
@@ -1289,7 +1347,13 @@ public final class Math {
      * @since 1.6
      */
     public static int getExponent(float f) {
-        return sun.misc.FpUtils.getExponent(f);
+        /*
+         * Bitwise convert f to integer, mask out exponent bits, shift
+         * to the right and then subtract out float's bias adjust to
+         * get true exponent value
+         */
+        return ((Float.floatToRawIntBits(f) & FloatConsts.EXP_BIT_MASK) >>
+                (FloatConsts.SIGNIFICAND_WIDTH - 1)) - FloatConsts.EXP_BIAS;
     }
 
     /**
@@ -1307,7 +1371,13 @@ public final class Math {
      * @since 1.6
      */
     public static int getExponent(double d) {
-        return sun.misc.FpUtils.getExponent(d);
+        /*
+         * Bitwise convert d to long, mask out exponent bits, shift
+         * to the right and then subtract out double's bias adjust to
+         * get true exponent value.
+         */
+        return (int)(((Double.doubleToRawLongBits(d) & DoubleConsts.EXP_BIT_MASK) >>
+                      (DoubleConsts.SIGNIFICAND_WIDTH - 1)) - DoubleConsts.EXP_BIAS);
     }
 
     /**
@@ -1351,7 +1421,63 @@ public final class Math {
      * @since 1.6
      */
     public static double nextAfter(double start, double direction) {
-        return sun.misc.FpUtils.nextAfter(start, direction);
+        /*
+         * The cases:
+         *
+         * nextAfter(+infinity, 0)  == MAX_VALUE
+         * nextAfter(+infinity, +infinity)  == +infinity
+         * nextAfter(-infinity, 0)  == -MAX_VALUE
+         * nextAfter(-infinity, -infinity)  == -infinity
+         *
+         * are naturally handled without any additional testing
+         */
+
+        // First check for NaN values
+        if (Double.isNaN(start) || Double.isNaN(direction)) {
+            // return a NaN derived from the input NaN(s)
+            return start + direction;
+        } else if (start == direction) {
+            return direction;
+        } else {        // start > direction or start < direction
+            // Add +0.0 to get rid of a -0.0 (+0.0 + -0.0 => +0.0)
+            // then bitwise convert start to integer.
+            long transducer = Double.doubleToRawLongBits(start + 0.0d);
+
+            /*
+             * IEEE 754 floating-point numbers are lexicographically
+             * ordered if treated as signed- magnitude integers .
+             * Since Java's integers are two's complement,
+             * incrementing" the two's complement representation of a
+             * logically negative floating-point value *decrements*
+             * the signed-magnitude representation. Therefore, when
+             * the integer representation of a floating-point values
+             * is less than zero, the adjustment to the representation
+             * is in the opposite direction than would be expected at
+             * first .
+             */
+            if (direction > start) { // Calculate next greater value
+                transducer = transducer + (transducer >= 0L ? 1L:-1L);
+            } else  { // Calculate next lesser value
+                assert direction < start;
+                if (transducer > 0L)
+                    --transducer;
+                else
+                    if (transducer < 0L )
+                        ++transducer;
+                    /*
+                     * transducer==0, the result is -MIN_VALUE
+                     *
+                     * The transition from zero (implicitly
+                     * positive) to the smallest negative
+                     * signed magnitude value must be done
+                     * explicitly.
+                     */
+                    else
+                        transducer = DoubleConsts.SIGN_BIT_MASK | 1L;
+            }
+
+            return Double.longBitsToDouble(transducer);
+        }
     }
 
     /**
@@ -1394,7 +1520,63 @@ public final class Math {
      * @since 1.6
      */
     public static float nextAfter(float start, double direction) {
-        return sun.misc.FpUtils.nextAfter(start, direction);
+        /*
+         * The cases:
+         *
+         * nextAfter(+infinity, 0)  == MAX_VALUE
+         * nextAfter(+infinity, +infinity)  == +infinity
+         * nextAfter(-infinity, 0)  == -MAX_VALUE
+         * nextAfter(-infinity, -infinity)  == -infinity
+         *
+         * are naturally handled without any additional testing
+         */
+
+        // First check for NaN values
+        if (Float.isNaN(start) || Double.isNaN(direction)) {
+            // return a NaN derived from the input NaN(s)
+            return start + (float)direction;
+        } else if (start == direction) {
+            return (float)direction;
+        } else {        // start > direction or start < direction
+            // Add +0.0 to get rid of a -0.0 (+0.0 + -0.0 => +0.0)
+            // then bitwise convert start to integer.
+            int transducer = Float.floatToRawIntBits(start + 0.0f);
+
+            /*
+             * IEEE 754 floating-point numbers are lexicographically
+             * ordered if treated as signed- magnitude integers .
+             * Since Java's integers are two's complement,
+             * incrementing" the two's complement representation of a
+             * logically negative floating-point value *decrements*
+             * the signed-magnitude representation. Therefore, when
+             * the integer representation of a floating-point values
+             * is less than zero, the adjustment to the representation
+             * is in the opposite direction than would be expected at
+             * first.
+             */
+            if (direction > start) {// Calculate next greater value
+                transducer = transducer + (transducer >= 0 ? 1:-1);
+            } else  { // Calculate next lesser value
+                assert direction < start;
+                if (transducer > 0)
+                    --transducer;
+                else
+                    if (transducer < 0 )
+                        ++transducer;
+                    /*
+                     * transducer==0, the result is -MIN_VALUE
+                     *
+                     * The transition from zero (implicitly
+                     * positive) to the smallest negative
+                     * signed magnitude value must be done
+                     * explicitly.
+                     */
+                    else
+                        transducer = FloatConsts.SIGN_BIT_MASK | 1;
+            }
+
+            return Float.intBitsToFloat(transducer);
+        }
     }
 
     /**
@@ -1423,7 +1605,13 @@ public final class Math {
      * @since 1.6
      */
     public static double nextUp(double d) {
-        return sun.misc.FpUtils.nextUp(d);
+        if( Double.isNaN(d) || d == Double.POSITIVE_INFINITY)
+            return d;
+        else {
+            d += 0.0d;
+            return Double.longBitsToDouble(Double.doubleToRawLongBits(d) +
+                                           ((d >= 0.0d)?+1L:-1L));
+        }
     }
 
     /**
@@ -1452,9 +1640,88 @@ public final class Math {
      * @since 1.6
      */
     public static float nextUp(float f) {
-        return sun.misc.FpUtils.nextUp(f);
+        if( Float.isNaN(f) || f == FloatConsts.POSITIVE_INFINITY)
+            return f;
+        else {
+            f += 0.0f;
+            return Float.intBitsToFloat(Float.floatToRawIntBits(f) +
+                                        ((f >= 0.0f)?+1:-1));
+        }
     }
 
+    /**
+     * Returns the floating-point value adjacent to {@code d} in
+     * the direction of negative infinity.  This method is
+     * semantically equivalent to {@code nextAfter(d,
+     * Double.NEGATIVE_INFINITY)}; however, a
+     * {@code nextDown} implementation may run faster than its
+     * equivalent {@code nextAfter} call.
+     *
+     * <p>Special Cases:
+     * <ul>
+     * <li> If the argument is NaN, the result is NaN.
+     *
+     * <li> If the argument is negative infinity, the result is
+     * negative infinity.
+     *
+     * <li> If the argument is zero, the result is
+     * {@code -Double.MIN_VALUE}
+     *
+     * </ul>
+     *
+     * @param d  starting floating-point value
+     * @return The adjacent floating-point value closer to negative
+     * infinity.
+     * @since 1.8
+     */
+    public static double nextDown(double d) {
+        if (Double.isNaN(d) || d == Double.NEGATIVE_INFINITY)
+            return d;
+        else {
+            if (d == 0.0)
+                return -Double.MIN_VALUE;
+            else
+                return Double.longBitsToDouble(Double.doubleToRawLongBits(d) +
+                                               ((d > 0.0d)?-1L:+1L));
+        }
+    }
+
+    /**
+     * Returns the floating-point value adjacent to {@code f} in
+     * the direction of negative infinity.  This method is
+     * semantically equivalent to {@code nextAfter(f,
+     * Float.NEGATIVE_INFINITY)}; however, a
+     * {@code nextDown} implementation may run faster than its
+     * equivalent {@code nextAfter} call.
+     *
+     * <p>Special Cases:
+     * <ul>
+     * <li> If the argument is NaN, the result is NaN.
+     *
+     * <li> If the argument is negative infinity, the result is
+     * negative infinity.
+     *
+     * <li> If the argument is zero, the result is
+     * {@code -Float.MIN_VALUE}
+     *
+     * </ul>
+     *
+     * @param f  starting floating-point value
+     * @return The adjacent floating-point value closer to negative
+     * infinity.
+     * @since 1.8
+     */
+    public static float nextDown(float f) {
+        if (Float.isNaN(f) || f == Float.NEGATIVE_INFINITY)
+            return f;
+        else {
+            if (f == 0.0f)
+                return -Float.MIN_VALUE;
+            else
+                return Float.intBitsToFloat(Float.floatToRawIntBits(f) +
+                                            ((f > 0.0f)?-1:+1));
+        }
+    }
 
     /**
      * Return {@code d} ×
@@ -1487,7 +1754,80 @@ public final class Math {
      * @since 1.6
      */
     public static double scalb(double d, int scaleFactor) {
-        return sun.misc.FpUtils.scalb(d, scaleFactor);
+        /*
+         * This method does not need to be declared strictfp to
+         * compute the same correct result on all platforms.  When
+         * scaling up, it does not matter what order the
+         * multiply-store operations are done; the result will be
+         * finite or overflow regardless of the operation ordering.
+         * However, to get the correct result when scaling down, a
+         * particular ordering must be used.
+         *
+         * When scaling down, the multiply-store operations are
+         * sequenced so that it is not possible for two consecutive
+         * multiply-stores to return subnormal results.  If one
+         * multiply-store result is subnormal, the next multiply will
+         * round it away to zero.  This is done by first multiplying
+         * by 2 ^ (scaleFactor % n) and then multiplying several
+         * times by by 2^n as needed where n is the exponent of number
+         * that is a covenient power of two.  In this way, at most one
+         * real rounding error occurs.  If the double value set is
+         * being used exclusively, the rounding will occur on a
+         * multiply.  If the double-extended-exponent value set is
+         * being used, the products will (perhaps) be exact but the
+         * stores to d are guaranteed to round to the double value
+         * set.
+         *
+         * It is _not_ a valid implementation to first multiply d by
+         * 2^MIN_EXPONENT and then by 2 ^ (scaleFactor %
+         * MIN_EXPONENT) since even in a strictfp program double
+         * rounding on underflow could occur; e.g. if the scaleFactor
+         * argument was (MIN_EXPONENT - n) and the exponent of d was a
+         * little less than -(MIN_EXPONENT - n), meaning the final
+         * result would be subnormal.
+         *
+         * Since exact reproducibility of this method can be achieved
+         * without any undue performance burden, there is no
+         * compelling reason to allow double rounding on underflow in
+         * scalb.
+         */
+
+        // magnitude of a power of two so large that scaling a finite
+        // nonzero value by it would be guaranteed to over or
+        // underflow; due to rounding, scaling down takes takes an
+        // additional power of two which is reflected here
+        final int MAX_SCALE = DoubleConsts.MAX_EXPONENT + -DoubleConsts.MIN_EXPONENT +
+                              DoubleConsts.SIGNIFICAND_WIDTH + 1;
+        int exp_adjust = 0;
+        int scale_increment = 0;
+        double exp_delta = Double.NaN;
+
+        // Make sure scaling factor is in a reasonable range
+
+        if(scaleFactor < 0) {
+            scaleFactor = Math.max(scaleFactor, -MAX_SCALE);
+            scale_increment = -512;
+            exp_delta = twoToTheDoubleScaleDown;
+        }
+        else {
+            scaleFactor = Math.min(scaleFactor, MAX_SCALE);
+            scale_increment = 512;
+            exp_delta = twoToTheDoubleScaleUp;
+        }
+
+        // Calculate (scaleFactor % +/-512), 512 = 2^9, using
+        // technique from "Hacker's Delight" section 10-2.
+        int t = (scaleFactor >> 9-1) >>> 32 - 9;
+        exp_adjust = ((scaleFactor + t) & (512 -1)) - t;
+
+        d *= powerOfTwoD(exp_adjust);
+        scaleFactor -= exp_adjust;
+
+        while(scaleFactor != 0) {
+            d *= exp_delta;
+            scaleFactor -= scale_increment;
+        }
+        return d;
     }
 
     /**
@@ -1521,6 +1861,49 @@ public final class Math {
      * @since 1.6
      */
     public static float scalb(float f, int scaleFactor) {
-        return sun.misc.FpUtils.scalb(f, scaleFactor);
+        // magnitude of a power of two so large that scaling a finite
+        // nonzero value by it would be guaranteed to over or
+        // underflow; due to rounding, scaling down takes takes an
+        // additional power of two which is reflected here
+        final int MAX_SCALE = FloatConsts.MAX_EXPONENT + -FloatConsts.MIN_EXPONENT +
+                              FloatConsts.SIGNIFICAND_WIDTH + 1;
+
+        // Make sure scaling factor is in a reasonable range
+        scaleFactor = Math.max(Math.min(scaleFactor, MAX_SCALE), -MAX_SCALE);
+
+        /*
+         * Since + MAX_SCALE for float fits well within the double
+         * exponent range and + float -> double conversion is exact
+         * the multiplication below will be exact. Therefore, the
+         * rounding that occurs when the double product is cast to
+         * float will be the correctly rounded float result.  Since
+         * all operations other than the final multiply will be exact,
+         * it is not necessary to declare this method strictfp.
+         */
+        return (float)((double)f*powerOfTwoD(scaleFactor));
+    }
+
+    // Constants used in scalb
+    static double twoToTheDoubleScaleUp = powerOfTwoD(512);
+    static double twoToTheDoubleScaleDown = powerOfTwoD(-512);
+
+    /**
+     * Returns a floating-point power of two in the normal range.
+     */
+    static double powerOfTwoD(int n) {
+        assert(n >= DoubleConsts.MIN_EXPONENT && n <= DoubleConsts.MAX_EXPONENT);
+        return Double.longBitsToDouble((((long)n + (long)DoubleConsts.EXP_BIAS) <<
+                                        (DoubleConsts.SIGNIFICAND_WIDTH-1))
+                                       & DoubleConsts.EXP_BIT_MASK);
+    }
+
+    /**
+     * Returns a floating-point power of two in the normal range.
+     */
+    public static float powerOfTwoF(int n) {
+        assert(n >= FloatConsts.MIN_EXPONENT && n <= FloatConsts.MAX_EXPONENT);
+        return Float.intBitsToFloat(((n + FloatConsts.EXP_BIAS) <<
+                                     (FloatConsts.SIGNIFICAND_WIDTH-1))
+                                    & FloatConsts.EXP_BIT_MASK);
     }
 }
diff --git a/jdk/src/share/classes/java/lang/SafeVarargs.java b/jdk/src/share/classes/java/lang/SafeVarargs.java
index 818ea21..cb14134 100644
--- a/jdk/src/share/classes/java/lang/SafeVarargs.java
+++ b/jdk/src/share/classes/java/lang/SafeVarargs.java
@@ -82,6 +82,7 @@ import java.lang.annotation.*;
  *
  * </ul>
  *
+ * @since 1.7
  * @jls 4.7 Reifiable Types
  * @jls 8.4.1 Formal Parameters
  */
diff --git a/jdk/src/share/classes/java/lang/StrictMath.java b/jdk/src/share/classes/java/lang/StrictMath.java
index 42c701f..723f1ec 100644
--- a/jdk/src/share/classes/java/lang/StrictMath.java
+++ b/jdk/src/share/classes/java/lang/StrictMath.java
@@ -25,7 +25,6 @@
 
 package java.lang;
 import java.util.Random;
-import sun.misc.FpUtils;
 import sun.misc.DoubleConsts;
 
 /**
@@ -428,7 +427,7 @@ public final class StrictMath {
          * 1.0, which is exact too.
          */
         double twoToThe52 = (double)(1L << 52); // 2^52
-        double sign = FpUtils.rawCopySign(1.0, a); // preserve sign info
+        double sign = Math.copySign(1.0, a); // preserve sign info
         a = Math.abs(a);
 
         if (a < twoToThe52) { // E_min <= ilogb(a) <= 51
@@ -955,7 +954,7 @@ public final class StrictMath {
      * @since 1.5
      */
     public static double ulp(double d) {
-        return sun.misc.FpUtils.ulp(d);
+        return Math.ulp(d);
     }
 
     /**
@@ -982,7 +981,7 @@ public final class StrictMath {
      * @since 1.5
      */
     public static float ulp(float f) {
-        return sun.misc.FpUtils.ulp(f);
+        return Math.ulp(f);
     }
 
     /**
@@ -1003,7 +1002,7 @@ public final class StrictMath {
      * @since 1.5
      */
     public static double signum(double d) {
-        return sun.misc.FpUtils.signum(d);
+        return Math.signum(d);
     }
 
     /**
@@ -1024,7 +1023,7 @@ public final class StrictMath {
      * @since 1.5
      */
     public static float signum(float f) {
-        return sun.misc.FpUtils.signum(f);
+        return Math.signum(f);
     }
 
     /**
@@ -1202,7 +1201,7 @@ public final class StrictMath {
      * @since 1.6
      */
     public static double copySign(double magnitude, double sign) {
-        return sun.misc.FpUtils.copySign(magnitude, sign);
+        return Math.copySign(magnitude, (Double.isNaN(sign)?1.0d:sign));
     }
 
     /**
@@ -1218,7 +1217,7 @@ public final class StrictMath {
      * @since 1.6
      */
     public static float copySign(float magnitude, float sign) {
-        return sun.misc.FpUtils.copySign(magnitude, sign);
+        return Math.copySign(magnitude, (Float.isNaN(sign)?1.0f:sign));
     }
     /**
      * Returns the unbiased exponent used in the representation of a
@@ -1234,7 +1233,7 @@ public final class StrictMath {
      * @since 1.6
      */
     public static int getExponent(float f) {
-        return sun.misc.FpUtils.getExponent(f);
+        return Math.getExponent(f);
     }
 
     /**
@@ -1251,7 +1250,7 @@ public final class StrictMath {
      * @since 1.6
      */
     public static int getExponent(double d) {
-        return sun.misc.FpUtils.getExponent(d);
+        return Math.getExponent(d);
     }
 
     /**
@@ -1294,7 +1293,7 @@ public final class StrictMath {
      * @since 1.6
      */
     public static double nextAfter(double start, double direction) {
-        return sun.misc.FpUtils.nextAfter(start, direction);
+        return Math.nextAfter(start, direction);
     }
 
     /**
@@ -1336,7 +1335,7 @@ public final class StrictMath {
      * @since 1.6
      */
     public static float nextAfter(float start, double direction) {
-        return sun.misc.FpUtils.nextAfter(start, direction);
+        return Math.nextAfter(start, direction);
     }
 
     /**
@@ -1365,7 +1364,7 @@ public final class StrictMath {
      * @since 1.6
      */
     public static double nextUp(double d) {
-        return sun.misc.FpUtils.nextUp(d);
+        return Math.nextUp(d);
     }
 
     /**
@@ -1394,9 +1393,66 @@ public final class StrictMath {
      * @since 1.6
      */
     public static float nextUp(float f) {
-        return sun.misc.FpUtils.nextUp(f);
+        return Math.nextUp(f);
     }
 
+    /**
+     * Returns the floating-point value adjacent to {@code d} in
+     * the direction of negative infinity.  This method is
+     * semantically equivalent to {@code nextAfter(d,
+     * Double.NEGATIVE_INFINITY)}; however, a
+     * {@code nextDown} implementation may run faster than its
+     * equivalent {@code nextAfter} call.
+     *
+     * <p>Special Cases:
+     * <ul>
+     * <li> If the argument is NaN, the result is NaN.
+     *
+     * <li> If the argument is negative infinity, the result is
+     * negative infinity.
+     *
+     * <li> If the argument is zero, the result is
+     * {@code -Double.MIN_VALUE}
+     *
+     * </ul>
+     *
+     * @param d  starting floating-point value
+     * @return The adjacent floating-point value closer to negative
+     * infinity.
+     * @since 1.8
+     */
+    public static double nextDown(double d) {
+        return Math.nextDown(d);
+    }
+
+    /**
+     * Returns the floating-point value adjacent to {@code f} in
+     * the direction of negative infinity.  This method is
+     * semantically equivalent to {@code nextAfter(f,
+     * Float.NEGATIVE_INFINITY)}; however, a
+     * {@code nextDown} implementation may run faster than its
+     * equivalent {@code nextAfter} call.
+     *
+     * <p>Special Cases:
+     * <ul>
+     * <li> If the argument is NaN, the result is NaN.
+     *
+     * <li> If the argument is negative infinity, the result is
+     * negative infinity.
+     *
+     * <li> If the argument is zero, the result is
+     * {@code -Float.MIN_VALUE}
+     *
+     * </ul>
+     *
+     * @param f  starting floating-point value
+     * @return The adjacent floating-point value closer to negative
+     * infinity.
+     * @since 1.8
+     */
+    public static float nextDown(float f) {
+        return Math.nextDown(f);
+    }
 
     /**
      * Return {@code d} ×
@@ -1429,7 +1485,7 @@ public final class StrictMath {
      * @since 1.6
      */
     public static double scalb(double d, int scaleFactor) {
-        return sun.misc.FpUtils.scalb(d, scaleFactor);
+        return Math.scalb(d, scaleFactor);
     }
 
     /**
@@ -1463,6 +1519,6 @@ public final class StrictMath {
      * @since 1.6
      */
     public static float scalb(float f, int scaleFactor) {
-        return sun.misc.FpUtils.scalb(f, scaleFactor);
+        return Math.scalb(f, scaleFactor);
     }
 }
diff --git a/jdk/src/share/classes/java/lang/System.java b/jdk/src/share/classes/java/lang/System.java
index 1ff7f97..303263a 100644
--- a/jdk/src/share/classes/java/lang/System.java
+++ b/jdk/src/share/classes/java/lang/System.java
@@ -633,6 +633,7 @@ public final class System {
      *
      * <p>On UNIX systems, it returns {@code "\n"}; on Microsoft
      * Windows systems it returns {@code "\r\n"}.
+     * @since 1.7
      */
     public static String lineSeparator() {
         return lineSeparator;
diff --git a/jdk/src/share/classes/java/lang/VirtualMachineError.java b/jdk/src/share/classes/java/lang/VirtualMachineError.java
index 2843147..c0a2a92 100644
--- a/jdk/src/share/classes/java/lang/VirtualMachineError.java
+++ b/jdk/src/share/classes/java/lang/VirtualMachineError.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 1997, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,9 @@ package java.lang;
  * @author  Frank Yellin
  * @since   JDK1.0
  */
-abstract public
-class VirtualMachineError extends Error {
+abstract public class VirtualMachineError extends Error {
+    private static final long serialVersionUID = 4161983926571568670L;
+
     /**
      * Constructs a <code>VirtualMachineError</code> with no detail message.
      */
@@ -46,9 +47,43 @@ class VirtualMachineError extends Error {
      * Constructs a <code>VirtualMachineError</code> with the specified
      * detail message.
      *
-     * @param   s   the detail message.
+     * @param   message   the detail message.
+     */
+    public VirtualMachineError(String message) {
+        super(message);
+    }
+
+    /**
+     * Constructs a {@code VirtualMachineError} with the specified
+     * detail message and cause.  <p>Note that the detail message
+     * associated with {@code cause} is <i>not</i> automatically
+     * incorporated in this error's detail message.
+     *
+     * @param  message the detail message (which is saved for later retrieval
+     *         by the {@link #getMessage()} method).
+     * @param  cause the cause (which is saved for later retrieval by the
+     *         {@link #getCause()} method).  (A {@code null} value is
+     *         permitted, and indicates that the cause is nonexistent or
+     *         unknown.)
+     * @since  1.8
+     */
+    public VirtualMachineError(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    /**
+     * Constructs an a {@code VirtualMachineError} with the specified
+     * cause and a detail message of {@code (cause==null ? null :
+     * cause.toString())} (which typically contains the class and
+     * detail message of {@code cause}).
+     *
+     * @param  cause the cause (which is saved for later retrieval by the
+     *         {@link #getCause()} method).  (A {@code null} value is
+     *         permitted, and indicates that the cause is nonexistent or
+     *         unknown.)
+     * @since  1.8
      */
-    public VirtualMachineError(String s) {
-        super(s);
+    public VirtualMachineError(Throwable cause) {
+        super(cause);
     }
 }
diff --git a/jdk/src/share/classes/java/lang/invoke/AdapterMethodHandle.java b/jdk/src/share/classes/java/lang/invoke/AdapterMethodHandle.java
index 0c7619d..7cfc774 100644
--- a/jdk/src/share/classes/java/lang/invoke/AdapterMethodHandle.java
+++ b/jdk/src/share/classes/java/lang/invoke/AdapterMethodHandle.java
@@ -53,7 +53,7 @@ class AdapterMethodHandle extends BoundMethodHandle {
         // JVM might update VM-specific bits of conversion (ignore)
         MethodHandleNatives.init(this, target, convArgPos(conv));
     }
-    private AdapterMethodHandle(MethodHandle target, MethodType newType,
+    AdapterMethodHandle(MethodHandle target, MethodType newType,
                 long conv) {
         this(target, newType, conv, null);
     }
@@ -423,7 +423,7 @@ class AdapterMethodHandle extends BoundMethodHandle {
                 insertStackMove(stackMove)
                 );
     }
-    private static long makeConv(int convOp) {
+    static long makeConv(int convOp) {
         assert(convOp == OP_RETYPE_ONLY || convOp == OP_RETYPE_RAW);
         return ((long)-1 << 32) | (convOp << CONV_OP_SHIFT);   // stackMove, src, dst all zero
     }
diff --git a/jdk/src/share/classes/java/lang/invoke/CallSite.java b/jdk/src/share/classes/java/lang/invoke/CallSite.java
index 276931a..465cd77 100644
--- a/jdk/src/share/classes/java/lang/invoke/CallSite.java
+++ b/jdk/src/share/classes/java/lang/invoke/CallSite.java
@@ -27,7 +27,6 @@ package java.lang.invoke;
 
 import sun.invoke.empty.Empty;
 import sun.misc.Unsafe;
-import static java.lang.invoke.MethodHandleStatics.*;
 import static java.lang.invoke.MethodHandles.Lookup.IMPL_LOOKUP;
 
 /**
@@ -244,8 +243,8 @@ public class CallSite {
         try {
             GET_TARGET = IMPL_LOOKUP.
                 findVirtual(CallSite.class, "getTarget", MethodType.methodType(MethodHandle.class));
-        } catch (ReflectiveOperationException ignore) {
-            throw new InternalError();
+        } catch (ReflectiveOperationException e) {
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/lang/invoke/CountingMethodHandle.java b/jdk/src/share/classes/java/lang/invoke/CountingMethodHandle.java
new file mode 100644
index 0000000..f8a0c6e
--- /dev/null
+++ b/jdk/src/share/classes/java/lang/invoke/CountingMethodHandle.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package java.lang.invoke;
+
+import static java.lang.invoke.MethodHandleNatives.Constants.*;
+
+/**
+ * This method handle is used to optionally provide a count of how
+ * many times it was invoked.
+ *
+ * @author never
+ */
+class CountingMethodHandle extends AdapterMethodHandle {
+    private int vmcount;
+
+    private CountingMethodHandle(MethodHandle target) {
+        super(target, target.type(), AdapterMethodHandle.makeConv(OP_RETYPE_ONLY));
+    }
+
+    /** Wrap the incoming MethodHandle in a CountingMethodHandle if they are enabled */
+    static MethodHandle wrap(MethodHandle mh) {
+        if (MethodHandleNatives.COUNT_GWT) {
+            return new CountingMethodHandle(mh);
+        }
+        return mh;
+    }
+}
diff --git a/jdk/src/share/classes/java/lang/invoke/Invokers.java b/jdk/src/share/classes/java/lang/invoke/Invokers.java
index 24b7d3e..a1ae374 100644
--- a/jdk/src/share/classes/java/lang/invoke/Invokers.java
+++ b/jdk/src/share/classes/java/lang/invoke/Invokers.java
@@ -88,7 +88,7 @@ class Invokers {
         try {
             invoker = IMPL_LOOKUP.findVirtual(MethodHandle.class, name, targetType);
         } catch (ReflectiveOperationException ex) {
-            throw new InternalError("JVM cannot find invoker for "+targetType);
+            throw new InternalError("JVM cannot find invoker for "+targetType, ex);
         }
         assert(invokerType(targetType) == invoker.type());
         assert(!invoker.isVarargsCollector());
diff --git a/jdk/src/share/classes/java/lang/invoke/MemberName.java b/jdk/src/share/classes/java/lang/invoke/MemberName.java
index 088c568..bf72c5b 100644
--- a/jdk/src/share/classes/java/lang/invoke/MemberName.java
+++ b/jdk/src/share/classes/java/lang/invoke/MemberName.java
@@ -382,7 +382,7 @@ import static java.lang.invoke.MethodHandleStatics.*;
         try {
             return (MemberName) super.clone();
         } catch (CloneNotSupportedException ex) {
-            throw new InternalError();
+            throw new InternalError(ex);
         }
      }
 
diff --git a/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java b/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java
index e817c00..6bf8079 100644
--- a/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java
+++ b/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java
@@ -749,8 +749,8 @@ import static java.lang.invoke.MethodHandles.Lookup.IMPL_LOOKUP;
         assert(target.type().equals(fallback.type()));
         MethodHandle tailcall = MethodHandles.exactInvoker(target.type());
         MethodHandle select = selectAlternative();
-        select = bindArgument(select, 2, fallback);
-        select = bindArgument(select, 1, target);
+        select = bindArgument(select, 2, CountingMethodHandle.wrap(fallback));
+        select = bindArgument(select, 1, CountingMethodHandle.wrap(target));
         // select(z: boolean) => (z ? target : fallback)
         MethodHandle filter = filterArgument(tailcall, 0, select);
         assert(filter.type().parameterType(0) == boolean.class);
diff --git a/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java b/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java
index bd7c386..e01d9b1 100644
--- a/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java
+++ b/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java
@@ -120,6 +120,8 @@ class MethodHandleNatives {
 
     static final int OP_ROT_ARGS_DOWN_LIMIT_BIAS;
 
+    static final boolean COUNT_GWT;
+
     private static native void registerNatives();
     static {
         registerNatives();
@@ -131,6 +133,7 @@ class MethodHandleNatives {
         k                           = getConstant(Constants.GC_OP_ROT_ARGS_DOWN_LIMIT_BIAS);
         OP_ROT_ARGS_DOWN_LIMIT_BIAS = (k != 0) ? (byte)k : -1;
         HAVE_RICOCHET_FRAMES        = (CONV_OP_IMPLEMENTED_MASK & (1<<OP_COLLECT_ARGS)) != 0;
+        COUNT_GWT                   = getConstant(Constants.GC_COUNT_GWT) != 0;
         //sun.reflect.Reflection.registerMethodsToFilter(MethodHandleImpl.class, "init");
     }
 
@@ -143,7 +146,8 @@ class MethodHandleNatives {
                 GC_JVM_PUSH_LIMIT = 0,
                 GC_JVM_STACK_MOVE_UNIT = 1,
                 GC_CONV_OP_IMPLEMENTED_MASK = 2,
-                GC_OP_ROT_ARGS_DOWN_LIMIT_BIAS = 3;
+                GC_OP_ROT_ARGS_DOWN_LIMIT_BIAS = 3,
+                GC_COUNT_GWT = 4;
         static final int
                 ETF_HANDLE_OR_METHOD_NAME = 0, // all available data (immediate MH or method)
                 ETF_DIRECT_HANDLE         = 1, // ultimate method handle (will be a DMH, may be self)
diff --git a/jdk/src/share/classes/java/lang/invoke/MethodHandleStatics.java b/jdk/src/share/classes/java/lang/invoke/MethodHandleStatics.java
index e812d24..3cad363 100644
--- a/jdk/src/share/classes/java/lang/invoke/MethodHandleStatics.java
+++ b/jdk/src/share/classes/java/lang/invoke/MethodHandleStatics.java
@@ -108,9 +108,7 @@ import java.security.PrivilegedAction;
         return new IllegalArgumentException(message(message, obj, obj2));
     }
     /*non-public*/ static Error uncaughtException(Exception ex) {
-        Error err = new InternalError("uncaught exception");
-        err.initCause(ex);
-        return err;
+        throw new InternalError("uncaught exception", ex);
     }
     private static String message(String message, Object obj) {
         if (obj != null)  message = message + ": " + obj;
diff --git a/jdk/src/share/classes/java/lang/invoke/MethodTypeForm.java b/jdk/src/share/classes/java/lang/invoke/MethodTypeForm.java
index 768d1ab..75b0538 100644
--- a/jdk/src/share/classes/java/lang/invoke/MethodTypeForm.java
+++ b/jdk/src/share/classes/java/lang/invoke/MethodTypeForm.java
@@ -461,7 +461,7 @@ class MethodTypeForm {
             // Trigger adapter creation.
             genericInvoker = InvokeGeneric.generalInvokerOf(erasedType);
         } catch (Exception ex) {
-            Error err = new InternalError("Exception while resolving inexact invoke");
+            Error err = new InternalError("Exception while resolving inexact invoke", ex);
             err.initCause(ex);
             throw err;
         }
diff --git a/jdk/src/share/classes/java/lang/module/ModuleInfoAnnotation.java b/jdk/src/share/classes/java/lang/module/ModuleInfoAnnotation.java
index 7e2a899..27422ec 100644
--- a/jdk/src/share/classes/java/lang/module/ModuleInfoAnnotation.java
+++ b/jdk/src/share/classes/java/lang/module/ModuleInfoAnnotation.java
@@ -157,6 +157,7 @@ import sun.reflect.generics.tree.*;
     /**
      * Returns Annotation object for a java.lang.reflect.Module
      */
+    @SuppressWarnings({"unchecked"})
     Annotation getAnnotation(Module module) {
         Class<? extends Annotation> annotationClass = null;
         try {
@@ -417,6 +418,8 @@ import sun.reflect.generics.tree.*;
 
     // proxy exception
     private static class UnsupportedElementTypeExceptionProxy extends ExceptionProxy {
+        static final long serialVersionUID = 7579289665484587465L;
+
         private List<String> typeSigs;
 
         UnsupportedElementTypeExceptionProxy(String sig) {
@@ -449,6 +452,8 @@ import sun.reflect.generics.tree.*;
     }
 
     private static class DefaultValueExceptionProxy extends ExceptionProxy {
+        static final long serialVersionUID = 1361256048223626671L;
+
         private List<String> typeNames = new ArrayList<String>();
 
         DefaultValueExceptionProxy(Class<?> cls) {
@@ -615,11 +620,12 @@ import sun.reflect.generics.tree.*;
             return ev.constValue;
         }
 
+        @SuppressWarnings({"unchecked", "rawtypes"})
         public Object visitEnum(EnumElementValue ev, Class<?> elementType) {
-            Class<? extends Enum> enumType = (Class<? extends Enum>) elementType;
+            Class<Enum<?>> enumType = (Class<Enum<?>>) elementType;
             Object value;
             try {
-                value = Enum.valueOf(enumType, ev.constName);
+                value = Enum.valueOf((Class)enumType, ev.constName);
             } catch (IllegalArgumentException ex) {
                 value = new EnumConstantNotPresentExceptionProxy(enumType, ev.constName);
             }
@@ -638,6 +644,7 @@ import sun.reflect.generics.tree.*;
             }
         }
 
+        @SuppressWarnings({"unchecked"})
         public Object visitAnnotation(AnnotationElementValue ev, Class<?> elementType) {
             Class<? extends Annotation> type = (Class<? extends Annotation>) elementType;
             return ev.annotationValue.generateAnnotation(type);
diff --git a/jdk/src/share/classes/java/lang/reflect/Array.java b/jdk/src/share/classes/java/lang/reflect/Array.java
index 186a428..07ec7f0 100644
--- a/jdk/src/share/classes/java/lang/reflect/Array.java
+++ b/jdk/src/share/classes/java/lang/reflect/Array.java
@@ -474,10 +474,10 @@ class Array {
      * Private
      */
 
-    private static native Object newArray(Class componentType, int length)
+    private static native Object newArray(Class<?> componentType, int length)
         throws NegativeArraySizeException;
 
-    private static native Object multiNewArray(Class componentType,
+    private static native Object multiNewArray(Class<?> componentType,
         int[] dimensions)
         throws IllegalArgumentException, NegativeArraySizeException;
 
diff --git a/jdk/src/share/classes/java/lang/reflect/Constructor.java b/jdk/src/share/classes/java/lang/reflect/Constructor.java
index ba4231c..fbf300b 100644
--- a/jdk/src/share/classes/java/lang/reflect/Constructor.java
+++ b/jdk/src/share/classes/java/lang/reflect/Constructor.java
@@ -27,14 +27,12 @@ package java.lang.reflect;
 
 import sun.reflect.ConstructorAccessor;
 import sun.reflect.Reflection;
-import sun.reflect.annotation.AnnotationParser;
 import sun.reflect.generics.repository.ConstructorRepository;
 import sun.reflect.generics.factory.CoreReflectionFactory;
 import sun.reflect.generics.factory.GenericsFactory;
 import sun.reflect.generics.scope.ConstructorScope;
 import java.lang.annotation.Annotation;
 import java.lang.annotation.AnnotationFormatError;
-import java.lang.reflect.Modifier;
 
 /**
  * {@code Constructor} provides information about, and access to, a single
@@ -184,6 +182,7 @@ public final class Constructor<T> extends Executable {
      * @since 1.5
      */
     @Override
+    @SuppressWarnings({ "rawtypes", "unchecked" })
     public TypeVariable<Constructor<T>>[] getTypeParameters() {
       if (getSignature() != null) {
         return (TypeVariable<Constructor<T>>[])getGenericInfo().getTypeParameters();
@@ -197,7 +196,7 @@ public final class Constructor<T> extends Executable {
      */
     @Override
     public Class<?>[] getParameterTypes() {
-        return (Class<?>[]) parameterTypes.clone();
+        return parameterTypes.clone();
     }
 
     /**
@@ -217,7 +216,7 @@ public final class Constructor<T> extends Executable {
      */
     @Override
     public Class<?>[] getExceptionTypes() {
-        return (Class<?>[])exceptionTypes.clone();
+        return exceptionTypes.clone();
     }
 
 
@@ -392,7 +391,9 @@ public final class Constructor<T> extends Executable {
         if (ca == null) {
             ca = acquireConstructorAccessor();
         }
-        return (T) ca.newInstance(initargs);
+        @SuppressWarnings("unchecked")
+        T inst = (T) ca.newInstance(initargs);
+        return inst;
     }
 
     /**
diff --git a/jdk/src/share/classes/java/lang/reflect/Executable.java b/jdk/src/share/classes/java/lang/reflect/Executable.java
index 21ce2d8..915918b 100644
--- a/jdk/src/share/classes/java/lang/reflect/Executable.java
+++ b/jdk/src/share/classes/java/lang/reflect/Executable.java
@@ -29,9 +29,6 @@ import java.lang.annotation.*;
 import java.util.Map;
 import sun.reflect.annotation.AnnotationParser;
 import sun.reflect.generics.repository.ConstructorRepository;
-import sun.reflect.generics.factory.CoreReflectionFactory;
-import sun.reflect.generics.factory.GenericsFactory;
-import sun.reflect.generics.scope.ConstructorScope;
 
 /**
  * A shared superclass for the common functionality of {@link Method}
@@ -366,8 +363,8 @@ public abstract class Executable extends AccessibleObject
      * {@inheritDoc}
      * @throws NullPointerException  {@inheritDoc}
      */
-     @SuppressWarnings("unchecked")
-     public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {
+    @SuppressWarnings("unchecked")
+    public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {
         if (annotationClass == null)
             throw new NullPointerException();
 
diff --git a/jdk/src/share/classes/java/lang/reflect/Field.java b/jdk/src/share/classes/java/lang/reflect/Field.java
index 1e6441a..de5a415 100644
--- a/jdk/src/share/classes/java/lang/reflect/Field.java
+++ b/jdk/src/share/classes/java/lang/reflect/Field.java
@@ -1012,6 +1012,7 @@ class Field extends AccessibleObject implements Member {
      * @throws NullPointerException {@inheritDoc}
      * @since 1.5
      */
+    @SuppressWarnings("unchecked")
     public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {
         if (annotationClass == null)
             throw new NullPointerException();
diff --git a/jdk/src/share/classes/java/lang/reflect/Method.java b/jdk/src/share/classes/java/lang/reflect/Method.java
index 2edd6c0..b940e23 100644
--- a/jdk/src/share/classes/java/lang/reflect/Method.java
+++ b/jdk/src/share/classes/java/lang/reflect/Method.java
@@ -194,6 +194,7 @@ public final class Method extends Executable {
      * @since 1.5
      */
     @Override
+    @SuppressWarnings({ "rawtypes", "unchecked" })
     public TypeVariable<Method>[] getTypeParameters() {
         if (getGenericSignature() != null)
             return (TypeVariable<Method>[])getGenericInfo().getTypeParameters();
@@ -246,7 +247,7 @@ public final class Method extends Executable {
      */
     @Override
     public Class<?>[] getParameterTypes() {
-        return (Class<?>[]) parameterTypes.clone();
+        return parameterTypes.clone();
     }
 
     /**
@@ -266,7 +267,7 @@ public final class Method extends Executable {
      */
     @Override
     public Class<?>[] getExceptionTypes() {
-        return (Class<?>[]) exceptionTypes.clone();
+        return exceptionTypes.clone();
     }
 
     /**
diff --git a/jdk/src/share/classes/java/lang/reflect/Proxy.java b/jdk/src/share/classes/java/lang/reflect/Proxy.java
index d25b7c8..c242091 100644
--- a/jdk/src/share/classes/java/lang/reflect/Proxy.java
+++ b/jdk/src/share/classes/java/lang/reflect/Proxy.java
@@ -604,16 +604,13 @@ public class Proxy implements java.io.Serializable {
          * Invoke its constructor with the designated invocation handler.
          */
         try {
-            Constructor cons = cl.getConstructor(constructorParams);
+            Constructor<?> cons = cl.getConstructor(constructorParams);
             return cons.newInstance(new Object[] { h });
-        } catch (NoSuchMethodException e) {
-            throw new InternalError(e.toString());
-        } catch (IllegalAccessException e) {
-            throw new InternalError(e.toString());
-        } catch (InstantiationException e) {
-            throw new InternalError(e.toString());
-        } catch (InvocationTargetException e) {
-            throw new InternalError(e.toString());
+        } catch (NoSuchMethodException |
+                 IllegalAccessException |
+                 InstantiationException |
+                 InvocationTargetException e) {
+            throw new InternalError(e.toString(), e);
         }
     }
 
@@ -661,6 +658,6 @@ public class Proxy implements java.io.Serializable {
         return p.h;
     }
 
-    private static native Class defineClass0(ClassLoader loader, String name,
-                                             byte[] b, int off, int len);
+    private static native Class<?> defineClass0(ClassLoader loader, String name,
+                                                byte[] b, int off, int len);
 }
diff --git a/jdk/src/share/classes/java/lang/reflect/TypeVariable.java b/jdk/src/share/classes/java/lang/reflect/TypeVariable.java
index 4c5d3de..b55a99f 100644
--- a/jdk/src/share/classes/java/lang/reflect/TypeVariable.java
+++ b/jdk/src/share/classes/java/lang/reflect/TypeVariable.java
@@ -48,7 +48,7 @@ package java.lang.reflect;
  *
  * @since 1.5
  */
-public interface TypeVariable<D extends GenericDeclaration> extends Type {
+public interface TypeVariable<D extends GenericDeclaration> extends Type, AnnotatedElement {
     /**
      * Returns an array of {@code Type} objects representing the
      * upper bound(s) of this type variable.  Note that if no upper bound is
diff --git a/jdk/src/share/classes/java/math/BigDecimal.java b/jdk/src/share/classes/java/math/BigDecimal.java
index 0549890..d95b1cb 100644
--- a/jdk/src/share/classes/java/math/BigDecimal.java
+++ b/jdk/src/share/classes/java/math/BigDecimal.java
@@ -215,6 +215,7 @@ import static java.math.BigInteger.LONG_MASK;
  * @author  Josh Bloch
  * @author  Mike Cowlishaw
  * @author  Joseph D. Darcy
+ * @author  Sergey V. Kuksenko
  */
 public class BigDecimal extends Number implements Comparable<BigDecimal> {
     /**
@@ -224,7 +225,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @serial
      * @see #unscaledValue
      */
-    private volatile BigInteger intVal;
+    private final BigInteger intVal;
 
     /**
      * The scale of this BigDecimal, as returned by {@link #scale}.
@@ -232,8 +233,9 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @serial
      * @see #scale
      */
-    private int scale;  // Note: this may have any value, so
-                        // calculations must be done in longs
+    private final int scale;  // Note: this may have any value, so
+                              // calculations must be done in longs
+
     /**
      * The number of decimal digits in this BigDecimal, or 0 if the
      * number of digits are not known (lookaside information).  If
@@ -256,19 +258,19 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      */
     static final long INFLATED = Long.MIN_VALUE;
 
+    private static final BigInteger INFLATED_BIGINT = BigInteger.valueOf(INFLATED);
+
     /**
      * If the absolute value of the significand of this BigDecimal is
      * less than or equal to {@code Long.MAX_VALUE}, the value can be
      * compactly stored in this field and used in computations.
      */
-    private transient long intCompact;
+    private final transient long intCompact;
 
     // All 18-digit base ten strings fit into a long; not all 19-digit
     // strings will
     private static final int MAX_COMPACT_DIGITS = 18;
 
-    private static final int MAX_BIGINT_BITS = 62;
-
     /* Appease the serialization gods */
     private static final long serialVersionUID = 6108874887143696463L;
 
@@ -282,17 +284,17 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
 
     // Cache of common small BigDecimal values.
     private static final BigDecimal zeroThroughTen[] = {
-        new BigDecimal(BigInteger.ZERO,         0,  0, 1),
-        new BigDecimal(BigInteger.ONE,          1,  0, 1),
-        new BigDecimal(BigInteger.valueOf(2),   2,  0, 1),
-        new BigDecimal(BigInteger.valueOf(3),   3,  0, 1),
-        new BigDecimal(BigInteger.valueOf(4),   4,  0, 1),
-        new BigDecimal(BigInteger.valueOf(5),   5,  0, 1),
-        new BigDecimal(BigInteger.valueOf(6),   6,  0, 1),
-        new BigDecimal(BigInteger.valueOf(7),   7,  0, 1),
-        new BigDecimal(BigInteger.valueOf(8),   8,  0, 1),
-        new BigDecimal(BigInteger.valueOf(9),   9,  0, 1),
-        new BigDecimal(BigInteger.TEN,          10, 0, 2),
+        new BigDecimal(BigInteger.ZERO,       0,  0, 1),
+        new BigDecimal(BigInteger.ONE,        1,  0, 1),
+        new BigDecimal(BigInteger.valueOf(2), 2,  0, 1),
+        new BigDecimal(BigInteger.valueOf(3), 3,  0, 1),
+        new BigDecimal(BigInteger.valueOf(4), 4,  0, 1),
+        new BigDecimal(BigInteger.valueOf(5), 5,  0, 1),
+        new BigDecimal(BigInteger.valueOf(6), 6,  0, 1),
+        new BigDecimal(BigInteger.valueOf(7), 7,  0, 1),
+        new BigDecimal(BigInteger.valueOf(8), 8,  0, 1),
+        new BigDecimal(BigInteger.valueOf(9), 9,  0, 1),
+        new BigDecimal(BigInteger.TEN,        10, 0, 2),
     };
 
     // Cache of zero scaled by 0 - 15
@@ -378,9 +380,36 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @since  1.5
      */
     public BigDecimal(char[] in, int offset, int len) {
+        this(in,offset,len,MathContext.UNLIMITED);
+    }
+
+    /**
+     * Translates a character array representation of a
+     * {@code BigDecimal} into a {@code BigDecimal}, accepting the
+     * same sequence of characters as the {@link #BigDecimal(String)}
+     * constructor, while allowing a sub-array to be specified and
+     * with rounding according to the context settings.
+     *
+     * <p>Note that if the sequence of characters is already available
+     * within a character array, using this constructor is faster than
+     * converting the {@code char} array to string and using the
+     * {@code BigDecimal(String)} constructor .
+     *
+     * @param  in {@code char} array that is the source of characters.
+     * @param  offset first character in the array to inspect.
+     * @param  len number of characters to consider..
+     * @param  mc the context to use.
+     * @throws ArithmeticException if the result is inexact but the
+     *         rounding mode is {@code UNNECESSARY}.
+     * @throws NumberFormatException if {@code in} is not a valid
+     *         representation of a {@code BigDecimal} or the defined subarray
+     *         is not wholly within {@code in}.
+     * @since  1.5
+     */
+    public BigDecimal(char[] in, int offset, int len, MathContext mc) {
         // protect against huge length.
-        if (offset+len > in.length || offset < 0)
-            throw new NumberFormatException();
+        if (offset + len > in.length || offset < 0)
+            throw new NumberFormatException("Bad offset or len arguments for char[] input.");
         // This is the primary string to BigDecimal constructor; all
         // incoming strings end up here; it uses explicit (inline)
         // parsing for speed and generates at most one intermediate
@@ -391,7 +420,6 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         int scl = 0;                  // record scale value
         long rs = 0;                  // the compact value in long
         BigInteger rb = null;         // the inflated value in BigInteger
-
         // use array bounds checking to handle too-long, len == 0,
         // bad offset, etc.
         try {
@@ -408,23 +436,39 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
 
             // should now be at numeric part of the significand
             boolean dot = false;             // true when there is a '.'
-            int cfirst = offset;             // record start of integer
             long exp = 0;                    // exponent
             char c;                          // current character
-
             boolean isCompact = (len <= MAX_COMPACT_DIGITS);
             // integer significand array & idx is the index to it. The array
             // is ONLY used when we can't use a compact representation.
-            char coeff[] = isCompact ? null : new char[len];
             int idx = 0;
-
-            for (; len > 0; offset++, len--) {
-                c = in[offset];
-                // have digit
-                if ((c >= '0' && c <= '9') || Character.isDigit(c)) {
-                    // First compact case, we need not to preserve the character
-                    // and we can just compute the value in place.
-                    if (isCompact) {
+            if (isCompact) {
+                // First compact case, we need not to preserve the character
+                // and we can just compute the value in place.
+                for (; len > 0; offset++, len--) {
+                    c = in[offset];
+                    if ((c == '0')) { // have zero
+                        if (prec == 0)
+                            prec = 1;
+                        else if (rs != 0) {
+                            rs *= 10;
+                            ++prec;
+                        } // else digit is a redundant leading zero
+                        if (dot)
+                            ++scl;
+                    } else if ((c >= '1' && c <= '9')) { // have digit
+                        int digit = c - '0';
+                        if (prec != 1 || rs != 0)
+                            ++prec; // prec unchanged if preceded by 0s
+                        rs = rs * 10 + digit;
+                        if (dot)
+                            ++scl;
+                    } else if (c == '.') {   // have dot
+                        // have dot
+                        if (dot) // two dots
+                            throw new NumberFormatException();
+                        dot = true;
+                    } else if (Character.isDigit(c)) { // slow path
                         int digit = Character.digit(c, 10);
                         if (digit == 0) {
                             if (prec == 0)
@@ -438,7 +482,44 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
                                 ++prec; // prec unchanged if preceded by 0s
                             rs = rs * 10 + digit;
                         }
-                    } else { // the unscaled value is likely a BigInteger object.
+                        if (dot)
+                            ++scl;
+                    } else if ((c == 'e') || (c == 'E')) {
+                        exp = parseExp(in, offset, len);
+                        // Next test is required for backwards compatibility
+                        if ((int) exp != exp) // overflow
+                            throw new NumberFormatException();
+                        break; // [saves a test]
+                    } else {
+                        throw new NumberFormatException();
+                    }
+                }
+                if (prec == 0) // no digits found
+                    throw new NumberFormatException();
+                // Adjust scale if exp is not zero.
+                if (exp != 0) { // had significant exponent
+                    scl = adjustScale(scl, exp);
+                }
+                rs = isneg ? -rs : rs;
+                int mcp = mc.precision;
+                int drop = prec - mcp; // prec has range [1, MAX_INT], mcp has range [0, MAX_INT];
+                                       // therefore, this subtract cannot overflow
+                if (mcp > 0 && drop > 0) {  // do rounding
+                    while (drop > 0) {
+                        scl = checkScaleNonZero((long) scl - drop);
+                        rs = divideAndRound(rs, LONG_TEN_POWERS_TABLE[drop], mc.roundingMode.oldMode);
+                        prec = longDigitLength(rs);
+                        drop = prec - mcp;
+                    }
+                }
+            } else {
+                char coeff[] = new char[len];
+                for (; len > 0; offset++, len--) {
+                    c = in[offset];
+                    // have digit
+                    if ((c >= '0' && c <= '9') || Character.isDigit(c)) {
+                        // First compact case, we need not to preserve the character
+                        // and we can just compute the value in place.
                         if (c == '0' || Character.digit(c, 10) == 0) {
                             if (prec == 0) {
                                 coeff[idx] = c;
@@ -452,94 +533,64 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
                                 ++prec; // prec unchanged if preceded by 0s
                             coeff[idx++] = c;
                         }
+                        if (dot)
+                            ++scl;
+                        continue;
                     }
-                    if (dot)
-                        ++scl;
-                    continue;
-                }
-                // have dot
-                if (c == '.') {
                     // have dot
-                    if (dot)         // two dots
-                        throw new NumberFormatException();
-                    dot = true;
-                    continue;
-                }
-                // exponent expected
-                if ((c != 'e') && (c != 'E'))
-                    throw new NumberFormatException();
-                offset++;
-                c = in[offset];
-                len--;
-                boolean negexp = (c == '-');
-                // optional sign
-                if (negexp || c == '+') {
-                    offset++;
-                    c = in[offset];
-                    len--;
-                }
-                if (len <= 0)    // no exponent digits
-                    throw new NumberFormatException();
-                // skip leading zeros in the exponent
-                while (len > 10 && Character.digit(c, 10) == 0) {
-                    offset++;
-                    c = in[offset];
-                    len--;
-                }
-                if (len > 10)  // too many nonzero exponent digits
-                    throw new NumberFormatException();
-                // c now holds first digit of exponent
-                for (;; len--) {
-                    int v;
-                    if (c >= '0' && c <= '9') {
-                        v = c - '0';
-                    } else {
-                        v = Character.digit(c, 10);
-                        if (v < 0)            // not a digit
+                    if (c == '.') {
+                        // have dot
+                        if (dot) // two dots
                             throw new NumberFormatException();
+                        dot = true;
+                        continue;
                     }
-                    exp = exp * 10 + v;
-                    if (len == 1)
-                        break;               // that was final character
-                    offset++;
-                    c = in[offset];
+                    // exponent expected
+                    if ((c != 'e') && (c != 'E'))
+                        throw new NumberFormatException();
+                    exp = parseExp(in, offset, len);
+                    // Next test is required for backwards compatibility
+                    if ((int) exp != exp) // overflow
+                        throw new NumberFormatException();
+                    break; // [saves a test]
                 }
-                if (negexp)                  // apply sign
-                    exp = -exp;
-                // Next test is required for backwards compatibility
-                if ((int)exp != exp)         // overflow
+                // here when no characters left
+                if (prec == 0) // no digits found
                     throw new NumberFormatException();
-                break;                       // [saves a test]
-            }
-            // here when no characters left
-            if (prec == 0)              // no digits found
-                throw new NumberFormatException();
-
-            // Adjust scale if exp is not zero.
-            if (exp != 0) {                  // had significant exponent
-                // Can't call checkScale which relies on proper fields value
-                long adjustedScale = scl - exp;
-                if (adjustedScale > Integer.MAX_VALUE ||
-                    adjustedScale < Integer.MIN_VALUE)
-                    throw new NumberFormatException("Scale out of range.");
-                scl = (int)adjustedScale;
-            }
-
-            // Remove leading zeros from precision (digits count)
-            if (isCompact) {
-                rs = isneg ? -rs : rs;
-            } else {
-                char quick[];
-                if (!isneg) {
-                    quick = (coeff.length != prec) ?
-                        Arrays.copyOf(coeff, prec) : coeff;
-                } else {
-                    quick = new char[prec + 1];
-                    quick[0] = '-';
-                    System.arraycopy(coeff, 0, quick, 1, prec);
+                // Adjust scale if exp is not zero.
+                if (exp != 0) { // had significant exponent
+                    scl = adjustScale(scl, exp);
                 }
-                rb = new BigInteger(quick);
+                // Remove leading zeros from precision (digits count)
+                rb = new BigInteger(coeff, isneg ? -1 : 1, prec);
                 rs = compactValFor(rb);
+                int mcp = mc.precision;
+                if (mcp > 0 && (prec > mcp)) {
+                    if (rs == INFLATED) {
+                        int drop = prec - mcp;
+                        while (drop > 0) {
+                            scl = checkScaleNonZero((long) scl - drop);
+                            rb = divideAndRoundByTenPow(rb, drop, mc.roundingMode.oldMode);
+                            rs = compactValFor(rb);
+                            if (rs != INFLATED) {
+                                prec = longDigitLength(rs);
+                                break;
+                            }
+                            prec = bigDigitLength(rb);
+                            drop = prec - mcp;
+                        }
+                    }
+                    if (rs != INFLATED) {
+                        int drop = prec - mcp;
+                        while (drop > 0) {
+                            scl = checkScaleNonZero((long) scl - drop);
+                            rs = divideAndRound(rs, LONG_TEN_POWERS_TABLE[drop], mc.roundingMode.oldMode);
+                            prec = longDigitLength(rs);
+                            drop = prec - mcp;
+                        }
+                        rb = null;
+                    }
+                }
             }
         } catch (ArrayIndexOutOfBoundsException e) {
             throw new NumberFormatException();
@@ -549,36 +600,61 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         this.scale = scl;
         this.precision = prec;
         this.intCompact = rs;
-        this.intVal = (rs != INFLATED) ? null : rb;
+        this.intVal = rb;
     }
 
-    /**
-     * Translates a character array representation of a
-     * {@code BigDecimal} into a {@code BigDecimal}, accepting the
-     * same sequence of characters as the {@link #BigDecimal(String)}
-     * constructor, while allowing a sub-array to be specified and
-     * with rounding according to the context settings.
-     *
-     * <p>Note that if the sequence of characters is already available
-     * within a character array, using this constructor is faster than
-     * converting the {@code char} array to string and using the
-     * {@code BigDecimal(String)} constructor .
-     *
-     * @param  in {@code char} array that is the source of characters.
-     * @param  offset first character in the array to inspect.
-     * @param  len number of characters to consider..
-     * @param  mc the context to use.
-     * @throws ArithmeticException if the result is inexact but the
-     *         rounding mode is {@code UNNECESSARY}.
-     * @throws NumberFormatException if {@code in} is not a valid
-     *         representation of a {@code BigDecimal} or the defined subarray
-     *         is not wholly within {@code in}.
-     * @since  1.5
+    private int adjustScale(int scl, long exp) {
+        long adjustedScale = scl - exp;
+        if (adjustedScale > Integer.MAX_VALUE || adjustedScale < Integer.MIN_VALUE)
+            throw new NumberFormatException("Scale out of range.");
+        scl = (int) adjustedScale;
+        return scl;
+    }
+
+    /*
+     * parse exponent
      */
-    public BigDecimal(char[] in, int offset, int len, MathContext mc) {
-        this(in, offset, len);
-        if (mc.precision > 0)
-            roundThis(mc);
+    private static long parseExp(char[] in, int offset, int len){
+        long exp = 0;
+        offset++;
+        char c = in[offset];
+        len--;
+        boolean negexp = (c == '-');
+        // optional sign
+        if (negexp || c == '+') {
+            offset++;
+            c = in[offset];
+            len--;
+        }
+        if (len <= 0) // no exponent digits
+            throw new NumberFormatException();
+        // skip leading zeros in the exponent
+        while (len > 10 && (c=='0' || (Character.digit(c, 10) == 0))) {
+            offset++;
+            c = in[offset];
+            len--;
+        }
+        if (len > 10) // too many nonzero exponent digits
+            throw new NumberFormatException();
+        // c now holds first digit of exponent
+        for (;; len--) {
+            int v;
+            if (c >= '0' && c <= '9') {
+                v = c - '0';
+            } else {
+                v = Character.digit(c, 10);
+                if (v < 0) // not a digit
+                    throw new NumberFormatException();
+            }
+            exp = exp * 10 + v;
+            if (len == 1)
+                break; // that was final character
+            offset++;
+            c = in[offset];
+        }
+        if (negexp) // apply sign
+            exp = -exp;
+        return exp;
     }
 
     /**
@@ -754,9 +830,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @since  1.5
      */
     public BigDecimal(String val, MathContext mc) {
-        this(val.toCharArray(), 0, val.length());
-        if (mc.precision > 0)
-            roundThis(mc);
+        this(val.toCharArray(), 0, val.length(), mc);
     }
 
     /**
@@ -804,49 +878,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @throws NumberFormatException if {@code val} is infinite or NaN.
      */
     public BigDecimal(double val) {
-        if (Double.isInfinite(val) || Double.isNaN(val))
-            throw new NumberFormatException("Infinite or NaN");
-
-        // Translate the double into sign, exponent and significand, according
-        // to the formulae in JLS, Section 20.10.22.
-        long valBits = Double.doubleToLongBits(val);
-        int sign = ((valBits >> 63)==0 ? 1 : -1);
-        int exponent = (int) ((valBits >> 52) & 0x7ffL);
-        long significand = (exponent==0 ? (valBits & ((1L<<52) - 1)) << 1
-                            : (valBits & ((1L<<52) - 1)) | (1L<<52));
-        exponent -= 1075;
-        // At this point, val == sign * significand * 2**exponent.
-
-        /*
-         * Special case zero to supress nonterminating normalization
-         * and bogus scale calculation.
-         */
-        if (significand == 0) {
-            intVal = BigInteger.ZERO;
-            intCompact = 0;
-            precision = 1;
-            return;
-        }
-
-        // Normalize
-        while((significand & 1) == 0) {    //  i.e., significand is even
-            significand >>= 1;
-            exponent++;
-        }
-
-        // Calculate intVal and scale
-        long s = sign * significand;
-        BigInteger b;
-        if (exponent < 0) {
-            b = BigInteger.valueOf(5).pow(-exponent).multiply(s);
-            scale = -exponent;
-        } else if (exponent > 0) {
-            b = BigInteger.valueOf(2).pow(exponent).multiply(s);
-        } else {
-            b = BigInteger.valueOf(s);
-        }
-        intCompact = compactValFor(b);
-        intVal = (intCompact != INFLATED) ? null : b;
+        this(val,MathContext.UNLIMITED);
     }
 
     /**
@@ -868,9 +900,85 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @since  1.5
      */
     public BigDecimal(double val, MathContext mc) {
-        this(val);
-        if (mc.precision > 0)
-            roundThis(mc);
+        if (Double.isInfinite(val) || Double.isNaN(val))
+            throw new NumberFormatException("Infinite or NaN");
+        // Translate the double into sign, exponent and significand, according
+        // to the formulae in JLS, Section 20.10.22.
+        long valBits = Double.doubleToLongBits(val);
+        int sign = ((valBits >> 63) == 0 ? 1 : -1);
+        int exponent = (int) ((valBits >> 52) & 0x7ffL);
+        long significand = (exponent == 0
+                ? (valBits & ((1L << 52) - 1)) << 1
+                : (valBits & ((1L << 52) - 1)) | (1L << 52));
+        exponent -= 1075;
+        // At this point, val == sign * significand * 2**exponent.
+
+        /*
+         * Special case zero to supress nonterminating normalization and bogus
+         * scale calculation.
+         */
+        if (significand == 0) {
+            this.intVal = BigInteger.ZERO;
+            this.scale = 0;
+            this.intCompact = 0;
+            this.precision = 1;
+            return;
+        }
+        // Normalize
+        while ((significand & 1) == 0) { // i.e., significand is even
+            significand >>= 1;
+            exponent++;
+        }
+        int scale = 0;
+        // Calculate intVal and scale
+        BigInteger intVal;
+        long compactVal = sign * significand;
+        if (exponent == 0) {
+            intVal = (compactVal == INFLATED) ? INFLATED_BIGINT : null;
+        } else {
+            if (exponent < 0) {
+                intVal = BigInteger.valueOf(5).pow(-exponent).multiply(compactVal);
+                scale = -exponent;
+            } else { //  (exponent > 0)
+                intVal = BigInteger.valueOf(2).pow(exponent).multiply(compactVal);
+            }
+            compactVal = compactValFor(intVal);
+        }
+        int prec = 0;
+        int mcp = mc.precision;
+        if (mcp > 0) { // do rounding
+            int mode = mc.roundingMode.oldMode;
+            int drop;
+            if (compactVal == INFLATED) {
+                prec = bigDigitLength(intVal);
+                drop = prec - mcp;
+                while (drop > 0) {
+                    scale = checkScaleNonZero((long) scale - drop);
+                    intVal = divideAndRoundByTenPow(intVal, drop, mode);
+                    compactVal = compactValFor(intVal);
+                    if (compactVal != INFLATED) {
+                        break;
+                    }
+                    prec = bigDigitLength(intVal);
+                    drop = prec - mcp;
+                }
+            }
+            if (compactVal != INFLATED) {
+                prec = longDigitLength(compactVal);
+                drop = prec - mcp;
+                while (drop > 0) {
+                    scale = checkScaleNonZero((long) scale - drop);
+                    compactVal = divideAndRound(compactVal, LONG_TEN_POWERS_TABLE[drop], mc.roundingMode.oldMode);
+                    prec = longDigitLength(compactVal);
+                    drop = prec - mcp;
+                }
+                intVal = null;
+            }
+        }
+        this.intVal = intVal;
+        this.intCompact = compactVal;
+        this.scale = scale;
+        this.precision = prec;
     }
 
     /**
@@ -881,8 +989,9 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      *            {@code BigDecimal}.
      */
     public BigDecimal(BigInteger val) {
+        scale = 0;
+        intVal = val;
         intCompact = compactValFor(val);
-        intVal = (intCompact != INFLATED) ? null : val;
     }
 
     /**
@@ -898,9 +1007,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @since  1.5
      */
     public BigDecimal(BigInteger val, MathContext mc) {
-        this(val);
-        if (mc.precision > 0)
-            roundThis(mc);
+        this(val,0,mc);
     }
 
     /**
@@ -914,7 +1021,8 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      */
     public BigDecimal(BigInteger unscaledVal, int scale) {
         // Negative scales are now allowed
-        this(unscaledVal);
+        this.intVal = unscaledVal;
+        this.intCompact = compactValFor(unscaledVal);
         this.scale = scale;
     }
 
@@ -934,10 +1042,41 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @since  1.5
      */
     public BigDecimal(BigInteger unscaledVal, int scale, MathContext mc) {
-        this(unscaledVal);
+        long compactVal = compactValFor(unscaledVal);
+        int mcp = mc.precision;
+        int prec = 0;
+        if (mcp > 0) { // do rounding
+            int mode = mc.roundingMode.oldMode;
+            if (compactVal == INFLATED) {
+                prec = bigDigitLength(unscaledVal);
+                int drop = prec - mcp;
+                while (drop > 0) {
+                    scale = checkScaleNonZero((long) scale - drop);
+                    unscaledVal = divideAndRoundByTenPow(unscaledVal, drop, mode);
+                    compactVal = compactValFor(unscaledVal);
+                    if (compactVal != INFLATED) {
+                        break;
+                    }
+                    prec = bigDigitLength(unscaledVal);
+                    drop = prec - mcp;
+                }
+            }
+            if (compactVal != INFLATED) {
+                prec = longDigitLength(compactVal);
+                int drop = prec - mcp;     // drop can't be more than 18
+                while (drop > 0) {
+                    scale = checkScaleNonZero((long) scale - drop);
+                    compactVal = divideAndRound(compactVal, LONG_TEN_POWERS_TABLE[drop], mode);
+                    prec = longDigitLength(compactVal);
+                    drop = prec - mcp;
+                }
+                unscaledVal = null;
+            }
+        }
+        this.intVal = unscaledVal;
+        this.intCompact = compactVal;
         this.scale = scale;
-        if (mc.precision > 0)
-            roundThis(mc);
+        this.precision = prec;
     }
 
     /**
@@ -949,7 +1088,9 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @since  1.5
      */
     public BigDecimal(int val) {
-        intCompact = val;
+        this.intCompact = val;
+        this.scale = 0;
+        this.intVal = null;
     }
 
     /**
@@ -964,9 +1105,24 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @since  1.5
      */
     public BigDecimal(int val, MathContext mc) {
-        intCompact = val;
-        if (mc.precision > 0)
-            roundThis(mc);
+        int mcp = mc.precision;
+        long compactVal = val;
+        int scale = 0;
+        int prec = 0;
+        if (mcp > 0) { // do rounding
+            prec = longDigitLength(compactVal);
+            int drop = prec - mcp; // drop can't be more than 18
+            while (drop > 0) {
+                scale = checkScaleNonZero((long) scale - drop);
+                compactVal = divideAndRound(compactVal, LONG_TEN_POWERS_TABLE[drop], mc.roundingMode.oldMode);
+                prec = longDigitLength(compactVal);
+                drop = prec - mcp;
+            }
+        }
+        this.intVal = null;
+        this.intCompact = compactVal;
+        this.scale = scale;
+        this.precision = prec;
     }
 
     /**
@@ -978,7 +1134,8 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      */
     public BigDecimal(long val) {
         this.intCompact = val;
-        this.intVal = (val == INFLATED) ? BigInteger.valueOf(val) : null;
+        this.intVal = (val == INFLATED) ? INFLATED_BIGINT : null;
+        this.scale = 0;
     }
 
     /**
@@ -993,9 +1150,42 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @since  1.5
      */
     public BigDecimal(long val, MathContext mc) {
-        this(val);
-        if (mc.precision > 0)
-            roundThis(mc);
+        int mcp = mc.precision;
+        int mode = mc.roundingMode.oldMode;
+        int prec = 0;
+        int scale = 0;
+        BigInteger intVal = (val == INFLATED) ? INFLATED_BIGINT : null;
+        if (mcp > 0) { // do rounding
+            if (val == INFLATED) {
+                prec = 19;
+                int drop = prec - mcp;
+                while (drop > 0) {
+                    scale = checkScaleNonZero((long) scale - drop);
+                    intVal = divideAndRoundByTenPow(intVal, drop, mode);
+                    val = compactValFor(intVal);
+                    if (val != INFLATED) {
+                        break;
+                    }
+                    prec = bigDigitLength(intVal);
+                    drop = prec - mcp;
+                }
+            }
+            if (val != INFLATED) {
+                prec = longDigitLength(val);
+                int drop = prec - mcp;
+                while (drop > 0) {
+                    scale = checkScaleNonZero((long) scale - drop);
+                    val = divideAndRound(val, LONG_TEN_POWERS_TABLE[drop], mc.roundingMode.oldMode);
+                    prec = longDigitLength(val);
+                    drop = prec - mcp;
+                }
+                intVal = null;
+            }
+        }
+        this.intVal = intVal;
+        this.intCompact = val;
+        this.scale = scale;
+        this.precision = prec;
     }
 
     // Static Factory Methods
@@ -1016,13 +1206,10 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         if (scale == 0)
             return valueOf(unscaledVal);
         else if (unscaledVal == 0) {
-            if (scale > 0 && scale < ZERO_SCALED_BY.length)
-                return ZERO_SCALED_BY[scale];
-            else
-                return new BigDecimal(BigInteger.ZERO, 0, scale, 1);
+            return zeroValueOf(scale);
         }
         return new BigDecimal(unscaledVal == INFLATED ?
-                              BigInteger.valueOf(unscaledVal) : null,
+                              INFLATED_BIGINT : null,
                               unscaledVal, scale, 0);
     }
 
@@ -1041,7 +1228,34 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
             return zeroThroughTen[(int)val];
         else if (val != INFLATED)
             return new BigDecimal(null, val, 0, 0);
-        return new BigDecimal(BigInteger.valueOf(val), val, 0, 0);
+        return new BigDecimal(INFLATED_BIGINT, val, 0, 0);
+    }
+
+    static BigDecimal valueOf(long unscaledVal, int scale, int prec) {
+        if (scale == 0 && unscaledVal >= 0 && unscaledVal < zeroThroughTen.length) {
+            return zeroThroughTen[(int) unscaledVal];
+        } else if (unscaledVal == 0) {
+            return zeroValueOf(scale);
+        }
+        return new BigDecimal(unscaledVal == INFLATED ? INFLATED_BIGINT : null,
+                unscaledVal, scale, prec);
+    }
+
+    static BigDecimal valueOf(BigInteger intVal, int scale, int prec) {
+        long val = compactValFor(intVal);
+        if (val == 0) {
+            return zeroValueOf(scale);
+        } else if (scale == 0 && val >= 0 && val < zeroThroughTen.length) {
+            return zeroThroughTen[(int) val];
+        }
+        return new BigDecimal(intVal, val, scale, prec);
+    }
+
+    static BigDecimal zeroValueOf(int scale) {
+        if (scale >= 0 && scale < ZERO_SCALED_BY.length)
+            return ZERO_SCALED_BY[scale];
+        else
+            return new BigDecimal(BigInteger.ZERO, 0, scale, 1);
     }
 
     /**
@@ -1079,42 +1293,19 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @return {@code this + augend}
      */
     public BigDecimal add(BigDecimal augend) {
-        long xs = this.intCompact;
-        long ys = augend.intCompact;
-        BigInteger fst = (xs != INFLATED) ? null : this.intVal;
-        BigInteger snd = (ys != INFLATED) ? null : augend.intVal;
-        int rscale = this.scale;
-
-        long sdiff = (long)rscale - augend.scale;
-        if (sdiff != 0) {
-            if (sdiff < 0) {
-                int raise = checkScale(-sdiff);
-                rscale = augend.scale;
-                if (xs == INFLATED ||
-                    (xs = longMultiplyPowerTen(xs, raise)) == INFLATED)
-                    fst = bigMultiplyPowerTen(raise);
+        if (this.intCompact != INFLATED) {
+            if ((augend.intCompact != INFLATED)) {
+                return add(this.intCompact, this.scale, augend.intCompact, augend.scale);
             } else {
-                int raise = augend.checkScale(sdiff);
-                if (ys == INFLATED ||
-                    (ys = longMultiplyPowerTen(ys, raise)) == INFLATED)
-                    snd = augend.bigMultiplyPowerTen(raise);
-            }
-        }
-        if (xs != INFLATED && ys != INFLATED) {
-            long sum = xs + ys;
-            // See "Hacker's Delight" section 2-12 for explanation of
-            // the overflow test.
-            if ( (((sum ^ xs) & (sum ^ ys))) >= 0L) // not overflowed
-                return BigDecimal.valueOf(sum, rscale);
-        }
-        if (fst == null)
-            fst = BigInteger.valueOf(xs);
-        if (snd == null)
-            snd = BigInteger.valueOf(ys);
-        BigInteger sum = fst.add(snd);
-        return (fst.signum == snd.signum) ?
-            new BigDecimal(sum, INFLATED, rscale, 0) :
-            new BigDecimal(sum, rscale);
+                return add(this.intCompact, this.scale, augend.intVal, augend.scale);
+            }
+        } else {
+            if ((augend.intCompact != INFLATED)) {
+                return add(augend.intCompact, augend.scale, this.intVal, this.scale);
+            } else {
+                return add(this.intVal, this.scale, augend.intVal, augend.scale);
+            }
+        }
     }
 
     /**
@@ -1136,10 +1327,6 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
             return add(augend);
         BigDecimal lhs = this;
 
-        // Could optimize if values are compact
-        this.inflate();
-        augend.inflate();
-
         // If either number is zero then the other number, rounded and
         // scaled if necessary, is used as the result.
         {
@@ -1150,20 +1337,14 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
                 int preferredScale = Math.max(lhs.scale(), augend.scale());
                 BigDecimal result;
 
-                // Could use a factory for zero instead of a new object
                 if (lhsIsZero && augendIsZero)
-                    return new BigDecimal(BigInteger.ZERO, 0, preferredScale, 0);
-
+                    return zeroValueOf(preferredScale);
                 result = lhsIsZero ? doRound(augend, mc) : doRound(lhs, mc);
 
                 if (result.scale() == preferredScale)
                     return result;
                 else if (result.scale() > preferredScale) {
-                    BigDecimal scaledResult =
-                        new BigDecimal(result.intVal, result.intCompact,
-                                       result.scale, 0);
-                    scaledResult.stripZerosToMatchScale(preferredScale);
-                    return scaledResult;
+                    return stripZerosToMatchScale(result.intVal, result.intCompact, result.scale, preferredScale);
                 } else { // result.scale < preferredScale
                     int precisionDiff = mc.precision - result.precision();
                     int scaleDiff     = preferredScale - result.scale();
@@ -1176,17 +1357,14 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
             }
         }
 
-        long padding = (long)lhs.scale - augend.scale;
-        if (padding != 0) {        // scales differ; alignment needed
+        long padding = (long) lhs.scale - augend.scale;
+        if (padding != 0) { // scales differ; alignment needed
             BigDecimal arg[] = preAlign(lhs, augend, padding, mc);
             matchScale(arg);
-            lhs    = arg[0];
+            lhs = arg[0];
             augend = arg[1];
         }
-
-        BigDecimal d = new BigDecimal(lhs.inflate().add(augend.inflate()),
-                                      lhs.scale);
-        return doRound(d, mc);
+        return doRound(lhs.inflated().add(augend.inflated()), lhs.scale, mc);
     }
 
     /**
@@ -1211,27 +1389,26 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * that the number of digits of the smaller operand could be
      * reduced even though the significands partially overlapped.
      */
-    private BigDecimal[] preAlign(BigDecimal lhs, BigDecimal augend,
-                                  long padding, MathContext mc) {
+    private BigDecimal[] preAlign(BigDecimal lhs, BigDecimal augend, long padding, MathContext mc) {
         assert padding != 0;
         BigDecimal big;
         BigDecimal small;
 
-        if (padding < 0) {     // lhs is big;   augend is small
-            big   = lhs;
+        if (padding < 0) { // lhs is big; augend is small
+            big = lhs;
             small = augend;
-        } else {               // lhs is small; augend is big
-            big   = augend;
+        } else { // lhs is small; augend is big
+            big = augend;
             small = lhs;
         }
 
         /*
-         * This is the estimated scale of an ulp of the result; it
-         * assumes that the result doesn't have a carry-out on a true
-         * add (e.g. 999 + 1 => 1000) or any subtractive cancellation
-         * on borrowing (e.g. 100 - 1.2 => 98.8)
+         * This is the estimated scale of an ulp of the result; it assumes that
+         * the result doesn't have a carry-out on a true add (e.g. 999 + 1 =>
+         * 1000) or any subtractive cancellation on borrowing (e.g. 100 - 1.2 =>
+         * 98.8)
          */
-        long estResultUlpScale = (long)big.scale - big.precision() + mc.precision;
+        long estResultUlpScale = (long) big.scale - big.precision() + mc.precision;
 
         /*
          * The low-order digit position of big is big.scale().  This
@@ -1242,11 +1419,10 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
          * disjoint *and* the digit positions of small should not be
          * directly visible in the result.
          */
-        long smallHighDigitPos = (long)small.scale - small.precision() + 1;
-        if (smallHighDigitPos > big.scale + 2 &&         // big and small disjoint
+        long smallHighDigitPos = (long) small.scale - small.precision() + 1;
+        if (smallHighDigitPos > big.scale + 2 && // big and small disjoint
             smallHighDigitPos > estResultUlpScale + 2) { // small digits not visible
-            small = BigDecimal.valueOf(small.signum(),
-                                       this.checkScale(Math.max(big.scale, estResultUlpScale) + 3));
+            small = BigDecimal.valueOf(small.signum(), this.checkScale(Math.max(big.scale, estResultUlpScale) + 3));
         }
 
         // Since addition is symmetric, preserving input order in
@@ -1264,7 +1440,22 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @return {@code this - subtrahend}
      */
     public BigDecimal subtract(BigDecimal subtrahend) {
-        return add(subtrahend.negate());
+        if (this.intCompact != INFLATED) {
+            if ((subtrahend.intCompact != INFLATED)) {
+                return add(this.intCompact, this.scale, -subtrahend.intCompact, subtrahend.scale);
+            } else {
+                return add(this.intCompact, this.scale, subtrahend.intVal.negate(), subtrahend.scale);
+            }
+        } else {
+            if ((subtrahend.intCompact != INFLATED)) {
+                // Pair of subtrahend values given before pair of
+                // values from this BigDecimal to avoid need for
+                // method overloading on the specialized add method
+                return add(-subtrahend.intCompact, subtrahend.scale, this.intVal, this.scale);
+            } else {
+                return add(this.intVal, this.scale, subtrahend.intVal.negate(), subtrahend.scale);
+            }
+        }
     }
 
     /**
@@ -1282,11 +1473,10 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @since  1.5
      */
     public BigDecimal subtract(BigDecimal subtrahend, MathContext mc) {
-        BigDecimal nsubtrahend = subtrahend.negate();
         if (mc.precision == 0)
-            return add(nsubtrahend);
+            return subtract(subtrahend);
         // share the special rounding code in add()
-        return add(nsubtrahend, mc);
+        return add(subtrahend.negate(), mc);
     }
 
     /**
@@ -1298,37 +1488,20 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @return {@code this * multiplicand}
      */
     public BigDecimal multiply(BigDecimal multiplicand) {
-        long x = this.intCompact;
-        long y = multiplicand.intCompact;
-        int productScale = checkScale((long)scale + multiplicand.scale);
-
-        // Might be able to do a more clever check incorporating the
-        // inflated check into the overflow computation.
-        if (x != INFLATED && y != INFLATED) {
-            /*
-             * If the product is not an overflowed value, continue
-             * to use the compact representation.  if either of x or y
-             * is INFLATED, the product should also be regarded as
-             * an overflow. Before using the overflow test suggested in
-             * "Hacker's Delight" section 2-12, we perform quick checks
-             * using the precision information to see whether the overflow
-             * would occur since division is expensive on most CPUs.
-             */
-            long product = x * y;
-            long prec = this.precision() + multiplicand.precision();
-            if (prec < 19 || (prec < 21 && (y == 0 || product / y == x)))
-                return BigDecimal.valueOf(product, productScale);
-            return new BigDecimal(BigInteger.valueOf(x).multiply(y), INFLATED,
-                                  productScale, 0);
-        }
-        BigInteger rb;
-        if (x == INFLATED && y == INFLATED)
-            rb = this.intVal.multiply(multiplicand.intVal);
-        else if (x != INFLATED)
-            rb = multiplicand.intVal.multiply(x);
-        else
-            rb = this.intVal.multiply(y);
-        return new BigDecimal(rb, INFLATED, productScale, 0);
+        int productScale = checkScale((long) scale + multiplicand.scale);
+        if (this.intCompact != INFLATED) {
+            if ((multiplicand.intCompact != INFLATED)) {
+                return multiply(this.intCompact, multiplicand.intCompact, productScale);
+            } else {
+                return multiply(this.intCompact, multiplicand.intVal, productScale);
+            }
+        } else {
+            if ((multiplicand.intCompact != INFLATED)) {
+                return multiply(multiplicand.intCompact, this.intVal, productScale);
+            } else {
+                return multiply(this.intVal, multiplicand.intVal, productScale);
+            }
+        }
     }
 
     /**
@@ -1345,7 +1518,20 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
     public BigDecimal multiply(BigDecimal multiplicand, MathContext mc) {
         if (mc.precision == 0)
             return multiply(multiplicand);
-        return doRound(this.multiply(multiplicand), mc);
+        int productScale = checkScale((long) scale + multiplicand.scale);
+        if (this.intCompact != INFLATED) {
+            if ((multiplicand.intCompact != INFLATED)) {
+                return multiplyAndRound(this.intCompact, multiplicand.intCompact, productScale, mc);
+            } else {
+                return multiplyAndRound(this.intCompact, multiplicand.intVal, productScale, mc);
+            }
+        } else {
+            if ((multiplicand.intCompact != INFLATED)) {
+                return multiplyAndRound(multiplicand.intCompact, this.intVal, productScale, mc);
+            } else {
+                return multiplyAndRound(this.intVal, multiplicand.intVal, productScale, mc);
+            }
+        }
     }
 
     /**
@@ -1377,120 +1563,21 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @see    #ROUND_UNNECESSARY
      */
     public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) {
-        /*
-         * IMPLEMENTATION NOTE: This method *must* return a new object
-         * since divideAndRound uses divide to generate a value whose
-         * scale is then modified.
-         */
         if (roundingMode < ROUND_UP || roundingMode > ROUND_UNNECESSARY)
             throw new IllegalArgumentException("Invalid rounding mode");
-        /*
-         * Rescale dividend or divisor (whichever can be "upscaled" to
-         * produce correctly scaled quotient).
-         * Take care to detect out-of-range scales
-         */
-        BigDecimal dividend = this;
-        if (checkScale((long)scale + divisor.scale) > this.scale)
-            dividend = this.setScale(scale + divisor.scale, ROUND_UNNECESSARY);
-        else
-            divisor = divisor.setScale(checkScale((long)this.scale - scale),
-                                       ROUND_UNNECESSARY);
-        return divideAndRound(dividend.intCompact, dividend.intVal,
-                              divisor.intCompact, divisor.intVal,
-                              scale, roundingMode, scale);
-    }
-
-    /**
-     * Internally used for division operation. The dividend and divisor are
-     * passed both in {@code long} format and {@code BigInteger} format. The
-     * returned {@code BigDecimal} object is the quotient whose scale is set to
-     * the passed in scale. If the remainder is not zero, it will be rounded
-     * based on the passed in roundingMode. Also, if the remainder is zero and
-     * the last parameter, i.e. preferredScale is NOT equal to scale, the
-     * trailing zeros of the result is stripped to match the preferredScale.
-     */
-    private static BigDecimal divideAndRound(long ldividend, BigInteger bdividend,
-                                             long ldivisor,  BigInteger bdivisor,
-                                             int scale, int roundingMode,
-                                             int preferredScale) {
-        boolean isRemainderZero;       // record remainder is zero or not
-        int qsign;                     // quotient sign
-        long q = 0, r = 0;             // store quotient & remainder in long
-        MutableBigInteger mq = null;   // store quotient
-        MutableBigInteger mr = null;   // store remainder
-        MutableBigInteger mdivisor = null;
-        boolean isLongDivision = (ldividend != INFLATED && ldivisor != INFLATED);
-        if (isLongDivision) {
-            q = ldividend / ldivisor;
-            if (roundingMode == ROUND_DOWN && scale == preferredScale)
-                return new BigDecimal(null, q, scale, 0);
-            r = ldividend % ldivisor;
-            isRemainderZero = (r == 0);
-            qsign = ((ldividend < 0) == (ldivisor < 0)) ? 1 : -1;
-        } else {
-            if (bdividend == null)
-                bdividend = BigInteger.valueOf(ldividend);
-            // Descend into mutables for faster remainder checks
-            MutableBigInteger mdividend = new MutableBigInteger(bdividend.mag);
-            mq = new MutableBigInteger();
-            if (ldivisor != INFLATED) {
-                r = mdividend.divide(ldivisor, mq);
-                isRemainderZero = (r == 0);
-                qsign = (ldivisor < 0) ? -bdividend.signum : bdividend.signum;
+        if (this.intCompact != INFLATED) {
+            if ((divisor.intCompact != INFLATED)) {
+                return divide(this.intCompact, this.scale, divisor.intCompact, divisor.scale, scale, roundingMode);
             } else {
-                mdivisor = new MutableBigInteger(bdivisor.mag);
-                mr = mdividend.divide(mdivisor, mq);
-                isRemainderZero = mr.isZero();
-                qsign = (bdividend.signum != bdivisor.signum) ? -1 : 1;
+                return divide(this.intCompact, this.scale, divisor.intVal, divisor.scale, scale, roundingMode);
             }
-        }
-        boolean increment = false;
-        if (!isRemainderZero) {
-            int cmpFracHalf;
-            /* Round as appropriate */
-            if (roundingMode == ROUND_UNNECESSARY) {  // Rounding prohibited
-                throw new ArithmeticException("Rounding necessary");
-            } else if (roundingMode == ROUND_UP) {      // Away from zero
-                increment = true;
-            } else if (roundingMode == ROUND_DOWN) {    // Towards zero
-                increment = false;
-            } else if (roundingMode == ROUND_CEILING) { // Towards +infinity
-                increment = (qsign > 0);
-            } else if (roundingMode == ROUND_FLOOR) {   // Towards -infinity
-                increment = (qsign < 0);
+        } else {
+            if ((divisor.intCompact != INFLATED)) {
+                return divide(this.intVal, this.scale, divisor.intCompact, divisor.scale, scale, roundingMode);
             } else {
-                if (isLongDivision || ldivisor != INFLATED) {
-                    if (r <= HALF_LONG_MIN_VALUE || r > HALF_LONG_MAX_VALUE) {
-                        cmpFracHalf = 1;    // 2 * r can't fit into long
-                    } else {
-                        cmpFracHalf = longCompareMagnitude(2 * r, ldivisor);
-                    }
-                } else {
-                    cmpFracHalf = mr.compareHalf(mdivisor);
-                }
-                if (cmpFracHalf < 0)
-                    increment = false;     // We're closer to higher digit
-                else if (cmpFracHalf > 0)  // We're closer to lower digit
-                    increment = true;
-                else if (roundingMode == ROUND_HALF_UP)
-                    increment = true;
-                else if (roundingMode == ROUND_HALF_DOWN)
-                    increment = false;
-                else  // roundingMode == ROUND_HALF_EVEN, true iff quotient is odd
-                    increment = isLongDivision ? (q & 1L) != 0L : mq.isOdd();
-            }
-        }
-        BigDecimal res;
-        if (isLongDivision)
-            res = new BigDecimal(null, (increment ? q + qsign : q), scale, 0);
-        else {
-            if (increment)
-                mq.add(MutableBigInteger.ONE);
-            res = mq.toBigDecimal(qsign, scale);
+                return divide(this.intVal, this.scale, divisor.intVal, divisor.scale, scale, roundingMode);
+            }
         }
-        if (isRemainderZero && preferredScale != scale)
-            res.stripZerosToMatchScale(preferredScale);
-        return res;
     }
 
     /**
@@ -1541,7 +1628,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @see    #ROUND_UNNECESSARY
      */
     public BigDecimal divide(BigDecimal divisor, int roundingMode) {
-            return this.divide(divisor, scale, roundingMode);
+        return this.divide(divisor, scale, roundingMode);
     }
 
     /**
@@ -1588,15 +1675,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         }
 
         // Calculate preferred scale
-        int preferredScale = saturateLong((long)this.scale - divisor.scale);
-        if (this.signum() == 0)        // 0/y
-            return (preferredScale >= 0 &&
-                    preferredScale < ZERO_SCALED_BY.length) ?
-                ZERO_SCALED_BY[preferredScale] :
-                BigDecimal.valueOf(0, preferredScale);
+        int preferredScale = saturateLong((long) this.scale - divisor.scale);
+
+        if (this.signum() == 0) // 0/y
+            return zeroValueOf(preferredScale);
         else {
-            this.inflate();
-            divisor.inflate();
             /*
              * If the quotient this/divisor has a terminating decimal
              * expansion, the expansion can have no more than
@@ -1623,7 +1706,6 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
             // the desired one by removing trailing zeros; since the
             // exact divide method does not have an explicit digit
             // limit, we can add zeros too.
-
             if (preferredScale > quotientScale)
                 return quotient.setScale(preferredScale, ROUND_UNNECESSARY);
 
@@ -1668,38 +1750,23 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
                 throw new ArithmeticException("Division undefined");  // NaN
             throw new ArithmeticException("Division by zero");
         }
-        if (dividend.signum() == 0)        // 0/y
-            return new BigDecimal(BigInteger.ZERO, 0,
-                                  saturateLong(preferredScale), 1);
-
-        // Normalize dividend & divisor so that both fall into [0.1, 0.999...]
+        if (dividend.signum() == 0) // 0/y
+            return zeroValueOf(saturateLong(preferredScale));
         int xscale = dividend.precision();
         int yscale = divisor.precision();
-        dividend = new BigDecimal(dividend.intVal, dividend.intCompact,
-                                  xscale, xscale);
-        divisor = new BigDecimal(divisor.intVal, divisor.intCompact,
-                                 yscale, yscale);
-        if (dividend.compareMagnitude(divisor) > 0) // satisfy constraint (b)
-            yscale = divisor.scale -= 1;            // [that is, divisor *= 10]
-
-        // In order to find out whether the divide generates the exact result,
-        // we avoid calling the above divide method. 'quotient' holds the
-        // return BigDecimal object whose scale will be set to 'scl'.
-        BigDecimal quotient;
-        int scl = checkScale(preferredScale + yscale - xscale + mcp);
-        if (checkScale((long)mcp + yscale) > xscale)
-            dividend = dividend.setScale(mcp + yscale, ROUND_UNNECESSARY);
-        else
-            divisor = divisor.setScale(checkScale((long)xscale - mcp),
-                                       ROUND_UNNECESSARY);
-        quotient = divideAndRound(dividend.intCompact, dividend.intVal,
-                                  divisor.intCompact, divisor.intVal,
-                                  scl, mc.roundingMode.oldMode,
-                                  checkScale(preferredScale));
-        // doRound, here, only affects 1000000000 case.
-        quotient = doRound(quotient, mc);
-
-        return quotient;
+        if(dividend.intCompact!=INFLATED) {
+            if(divisor.intCompact!=INFLATED) {
+                return divide(dividend.intCompact, xscale, divisor.intCompact, yscale, preferredScale, mc);
+            } else {
+                return divide(dividend.intCompact, xscale, divisor.intVal, yscale, preferredScale, mc);
+            }
+        } else {
+            if(divisor.intCompact!=INFLATED) {
+                return divide(dividend.intVal, xscale, divisor.intCompact, yscale, preferredScale, mc);
+            } else {
+                return divide(dividend.intVal, xscale, divisor.intVal, yscale, preferredScale, mc);
+            }
+        }
     }
 
     /**
@@ -1715,13 +1782,13 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      */
     public BigDecimal divideToIntegralValue(BigDecimal divisor) {
         // Calculate preferred scale
-        int preferredScale = saturateLong((long)this.scale - divisor.scale);
+        int preferredScale = saturateLong((long) this.scale - divisor.scale);
         if (this.compareMagnitude(divisor) < 0) {
             // much faster when this << divisor
-            return BigDecimal.valueOf(0, preferredScale);
+            return zeroValueOf(preferredScale);
         }
 
-        if(this.signum() == 0 && divisor.signum() != 0)
+        if (this.signum() == 0 && divisor.signum() != 0)
             return this.setScale(preferredScale, ROUND_UNNECESSARY);
 
         // Perform a divide with enough digits to round to a correct
@@ -1735,13 +1802,14 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
                                                                    RoundingMode.DOWN));
         if (quotient.scale > 0) {
             quotient = quotient.setScale(0, RoundingMode.DOWN);
-            quotient.stripZerosToMatchScale(preferredScale);
+            quotient = stripZerosToMatchScale(quotient.intVal, quotient.intCompact, quotient.scale, preferredScale);
         }
 
         if (quotient.scale < preferredScale) {
             // pad with zeros if necessary
             quotient = quotient.setScale(preferredScale, ROUND_UNNECESSARY);
         }
+
         return quotient;
     }
 
@@ -1766,8 +1834,8 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @author Joseph D. Darcy
      */
     public BigDecimal divideToIntegralValue(BigDecimal divisor, MathContext mc) {
-        if (mc.precision == 0 ||                        // exact result
-            (this.compareMagnitude(divisor) < 0) )      // zero result
+        if (mc.precision == 0 || // exact result
+            (this.compareMagnitude(divisor) < 0)) // zero result
             return divideToIntegralValue(divisor);
 
         // Calculate preferred scale
@@ -1780,8 +1848,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
          * digits.  Next, remove any fractional digits from the
          * quotient and adjust the scale to the preferred value.
          */
-        BigDecimal result = this.
-            divide(divisor, new MathContext(mc.precision, RoundingMode.DOWN));
+        BigDecimal result = this.divide(divisor, new MathContext(mc.precision, RoundingMode.DOWN));
 
         if (result.scale() < 0) {
             /*
@@ -1811,8 +1878,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
             return result.setScale(result.scale() +
                                    Math.min(precisionDiff, preferredScale - result.scale) );
         } else {
-            result.stripZerosToMatchScale(preferredScale);
-            return result;
+            return stripZerosToMatchScale(result.intVal,result.intCompact,result.scale,preferredScale);
         }
     }
 
@@ -1954,8 +2020,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         // No need to calculate pow(n) if result will over/underflow.
         // Don't attempt to support "supernormal" numbers.
         int newScale = checkScale((long)scale * n);
-        this.inflate();
-        return new BigDecimal(intVal.pow(n), newScale);
+        return new BigDecimal(this.inflated().pow(n), newScale);
     }
 
 
@@ -2016,12 +2081,10 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
             throw new ArithmeticException("Invalid operation");
         if (n == 0)
             return ONE;                      // x**0 == 1 in X3.274
-        this.inflate();
         BigDecimal lhs = this;
         MathContext workmc = mc;           // working settings
         int mag = Math.abs(n);               // magnitude of n
         if (mc.precision > 0) {
-
             int elength = longDigitLength(mag); // length of n in digits
             if (elength > mc.precision)        // X3.274 rule
                 throw new ArithmeticException("Invalid operation");
@@ -2044,7 +2107,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
                 // else (!seenbit) no point in squaring ONE
         }
         // if negative n, calculate the reciprocal using working precision
-        if (n<0)                          // [hence mc.precision>0]
+        if (n < 0) // [hence mc.precision>0]
             acc=ONE.divide(acc, workmc);
         // round to final precision and strip zeros
         return doRound(acc, mc);
@@ -2083,14 +2146,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @return {@code -this}.
      */
     public BigDecimal negate() {
-        BigDecimal result;
-        if (intCompact != INFLATED)
-            result = BigDecimal.valueOf(-intCompact, scale);
-        else {
-            result = new BigDecimal(intVal.negate(), scale);
-            result.precision = precision;
+        if (intCompact == INFLATED) {
+            return new BigDecimal(intVal.negate(), INFLATED, scale, precision);
+        } else {
+            return valueOf(-intCompact, scale, precision);
         }
-        return result;
     }
 
     /**
@@ -2186,7 +2246,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
             if (s != INFLATED)
                 result = longDigitLength(s);
             else
-                result = bigDigitLength(inflate());
+                result = bigDigitLength(intVal);
             precision = result;
         }
         return result;
@@ -2202,7 +2262,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @since  1.2
      */
     public BigInteger unscaledValue() {
-        return this.inflate();
+        return this.inflated();
     }
 
     // Rounding Modes
@@ -2383,29 +2443,41 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         if (newScale == oldScale)        // easy case
             return this;
         if (this.signum() == 0)            // zero can have any scale
-            return BigDecimal.valueOf(0, newScale);
-
-        long rs = this.intCompact;
-        if (newScale > oldScale) {
-            int raise = checkScale((long)newScale - oldScale);
-            BigInteger rb = null;
-            if (rs == INFLATED ||
-                (rs = longMultiplyPowerTen(rs, raise)) == INFLATED)
-                rb = bigMultiplyPowerTen(raise);
-            return new BigDecimal(rb, rs, newScale,
-                                  (precision > 0) ? precision + raise : 0);
+            return zeroValueOf(newScale);
+        if(this.intCompact!=INFLATED) {
+            long rs = this.intCompact;
+            if (newScale > oldScale) {
+                int raise = checkScale((long) newScale - oldScale);
+                if ((rs = longMultiplyPowerTen(rs, raise)) != INFLATED) {
+                    return valueOf(rs,newScale);
+                }
+                BigInteger rb = bigMultiplyPowerTen(raise);
+                return new BigDecimal(rb, INFLATED, newScale, (precision > 0) ? precision + raise : 0);
+            } else {
+                // newScale < oldScale -- drop some digits
+                // Can't predict the precision due to the effect of rounding.
+                int drop = checkScale((long) oldScale - newScale);
+                if (drop < LONG_TEN_POWERS_TABLE.length) {
+                    return divideAndRound(rs, LONG_TEN_POWERS_TABLE[drop], newScale, roundingMode, newScale);
+                } else {
+                    return divideAndRound(this.inflated(), bigTenToThe(drop), newScale, roundingMode, newScale);
+                }
+            }
         } else {
-            // newScale < oldScale -- drop some digits
-            // Can't predict the precision due to the effect of rounding.
-            int drop = checkScale((long)oldScale - newScale);
-            if (drop < LONG_TEN_POWERS_TABLE.length)
-                return divideAndRound(rs, this.intVal,
-                                      LONG_TEN_POWERS_TABLE[drop], null,
-                                      newScale, roundingMode, newScale);
-            else
-                return divideAndRound(rs, this.intVal,
-                                      INFLATED, bigTenToThe(drop),
-                                      newScale, roundingMode, newScale);
+            if (newScale > oldScale) {
+                int raise = checkScale((long) newScale - oldScale);
+                BigInteger rb = bigMultiplyPowerTen(this.intVal,raise);
+                return new BigDecimal(rb, INFLATED, newScale, (precision > 0) ? precision + raise : 0);
+            } else {
+                // newScale < oldScale -- drop some digits
+                // Can't predict the precision due to the effect of rounding.
+                int drop = checkScale((long) oldScale - newScale);
+                if (drop < LONG_TEN_POWERS_TABLE.length)
+                    return divideAndRound(this.intVal, LONG_TEN_POWERS_TABLE[drop], newScale, roundingMode,
+                                          newScale);
+                else
+                    return divideAndRound(this.intVal,  bigTenToThe(drop), newScale, roundingMode, newScale);
+            }
         }
     }
 
@@ -2524,10 +2596,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @since 1.5
      */
     public BigDecimal stripTrailingZeros() {
-        this.inflate();
-        BigDecimal result = new BigDecimal(intVal, scale);
-        result.stripZerosToMatchScale(Long.MIN_VALUE);
-        return result;
+        if(intCompact!=INFLATED) {
+            return createAndStripZerosToMatchScale(intCompact, scale, Long.MIN_VALUE);
+        } else {
+            return createAndStripZerosToMatchScale(intVal, scale, Long.MIN_VALUE);
+        }
     }
 
     // Comparison Operations
@@ -2647,7 +2720,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         } else if (xs != INFLATED)
             return xs == compactValFor(this.intVal);
 
-        return this.inflate().equals(xDec.inflate());
+        return this.inflated().equals(xDec.inflated());
     }
 
     /**
@@ -2872,13 +2945,38 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @see #toEngineeringString()
      */
     public String toPlainString() {
-        BigDecimal bd = this;
-        if (bd.scale < 0)
-            bd = bd.setScale(0);
-        bd.inflate();
-        if (bd.scale == 0)      // No decimal point
-            return bd.intVal.toString();
-        return bd.getValueString(bd.signum(), bd.intVal.abs().toString(), bd.scale);
+        if(scale==0) {
+            if(intCompact!=INFLATED) {
+                return Long.toString(intCompact);
+            } else {
+                return intVal.toString();
+            }
+        }
+        if(this.scale<0) { // No decimal point
+            if(signum()==0) {
+                return "0";
+            }
+            int tailingZeros = checkScaleNonZero((-(long)scale));
+            StringBuilder buf;
+            if(intCompact!=INFLATED) {
+                buf = new StringBuilder(20+tailingZeros);
+                buf.append(intCompact);
+            } else {
+                String str = intVal.toString();
+                buf = new StringBuilder(str.length()+tailingZeros);
+                buf.append(str);
+            }
+            for (int i = 0; i < tailingZeros; i++)
+                buf.append('0');
+            return buf.toString();
+        }
+        String str ;
+        if(intCompact!=INFLATED) {
+            str = Long.toString(Math.abs(intCompact));
+        } else {
+            str = intVal.abs().toString();
+        }
+        return getValueString(signum(), str, scale);
     }
 
     /* Returns a digit.digit string */
@@ -2922,7 +3020,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      */
     public BigInteger toBigInteger() {
         // force to an integer, quietly
-        return this.setScale(0, ROUND_DOWN).inflate();
+        return this.setScale(0, ROUND_DOWN).inflated();
     }
 
     /**
@@ -2937,7 +3035,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      */
     public BigInteger toBigIntegerExact() {
         // round to an integer, with Exception if decimal part non-0
-        return this.setScale(0, ROUND_UNNECESSARY).inflate();
+        return this.setScale(0, ROUND_UNNECESSARY).inflated();
     }
 
     /**
@@ -2990,7 +3088,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         BigDecimal num = this.setScale(0, ROUND_UNNECESSARY);
         if (num.precision() >= 19) // need to check carefully
             LongOverflow.check(num);
-        return num.inflate().longValue();
+        return num.inflated().longValue();
     }
 
     private static class LongOverflow {
@@ -3001,9 +3099,9 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         private static final BigInteger LONGMAX = BigInteger.valueOf(Long.MAX_VALUE);
 
         public static void check(BigDecimal num) {
-            num.inflate();
-            if ((num.intVal.compareTo(LONGMIN) < 0) ||
-                (num.intVal.compareTo(LONGMAX) > 0))
+            BigInteger intVal = num.inflated();
+            if (intVal.compareTo(LONGMIN) < 0 ||
+                intVal.compareTo(LONGMAX) > 0)
                 throw new java.lang.ArithmeticException("Overflow");
         }
     }
@@ -3107,8 +3205,28 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @return this {@code BigDecimal} converted to a {@code float}.
      */
     public float floatValue(){
-        if (scale == 0 && intCompact != INFLATED)
+        if(intCompact != INFLATED) {
+            if (scale == 0) {
                 return (float)intCompact;
+            } else {
+                /*
+                 * If both intCompact and the scale can be exactly
+                 * represented as float values, perform a single float
+                 * multiply or divide to compute the (properly
+                 * rounded) result.
+                 */
+                if (Math.abs(intCompact) < 1L<<22 ) {
+                    // Don't have too guard against
+                    // Math.abs(MIN_VALUE) because of outer check
+                    // against INFLATED.
+                    if (scale > 0 && scale < float10pow.length) {
+                        return (float)intCompact / float10pow[scale];
+                    } else if (scale < 0 && scale > -float10pow.length) {
+                        return (float)intCompact * float10pow[-scale];
+                    }
+                }
+            }
+        }
         // Somewhat inefficient, but guaranteed to work.
         return Float.parseFloat(this.toString());
     }
@@ -3130,13 +3248,53 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @return this {@code BigDecimal} converted to a {@code double}.
      */
     public double doubleValue(){
-        if (scale == 0 && intCompact != INFLATED)
-            return (double)intCompact;
+        if(intCompact != INFLATED) {
+            if (scale == 0) {
+                return (double)intCompact;
+            } else {
+                /*
+                 * If both intCompact and the scale can be exactly
+                 * represented as double values, perform a single
+                 * double multiply or divide to compute the (properly
+                 * rounded) result.
+                 */
+                if (Math.abs(intCompact) < 1L<<52 ) {
+                    // Don't have too guard against
+                    // Math.abs(MIN_VALUE) because of outer check
+                    // against INFLATED.
+                    if (scale > 0 && scale < double10pow.length) {
+                        return (double)intCompact / double10pow[scale];
+                    } else if (scale < 0 && scale > -double10pow.length) {
+                        return (double)intCompact * double10pow[-scale];
+                    }
+                }
+            }
+        }
         // Somewhat inefficient, but guaranteed to work.
         return Double.parseDouble(this.toString());
     }
 
     /**
+     * Powers of 10 which can be represented exactly in {@code
+     * double}.
+     */
+    private static final double double10pow[] = {
+        1.0e0,  1.0e1,  1.0e2,  1.0e3,  1.0e4,  1.0e5,
+        1.0e6,  1.0e7,  1.0e8,  1.0e9,  1.0e10, 1.0e11,
+        1.0e12, 1.0e13, 1.0e14, 1.0e15, 1.0e16, 1.0e17,
+        1.0e18, 1.0e19, 1.0e20, 1.0e21, 1.0e22
+    };
+
+    /**
+     * Powers of 10 which can be represented exactly in {@code
+     * float}.
+     */
+    private static final float float10pow[] = {
+        1.0e0f, 1.0e1f, 1.0e2f, 1.0e3f, 1.0e4f, 1.0e5f,
+        1.0e6f, 1.0e7f, 1.0e8f, 1.0e9f, 1.0e10f
+    };
+
+    /**
      * Returns the size of an ulp, a unit in the last place, of this
      * {@code BigDecimal}.  An ulp of a nonzero {@code BigDecimal}
      * value is the positive distance between this value and the
@@ -3151,10 +3309,9 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @since 1.5
      */
     public BigDecimal ulp() {
-        return BigDecimal.valueOf(1, this.scale());
+        return BigDecimal.valueOf(1, this.scale(), 1);
     }
 
-
     // Private class to build a string representation for BigDecimal object.
     // "StringBuilderHelper" is constructed as a thread local variable so it is
     // thread safe. The StringBuilder field acts as a buffer to hold the temporary
@@ -3268,6 +3425,15 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
             return (intCompact != INFLATED) ?
                 Long.toString(intCompact):
                 intVal.toString();
+        if (scale == 2  &&
+            intCompact >= 0 && intCompact < Integer.MAX_VALUE) {
+            // currency fast path
+            int lowInt = (int)intCompact % 100;
+            int highInt = (int)intCompact / 100;
+            return (Integer.toString(highInt) + '.' +
+                    StringBuilderHelper.DIGIT_TENS[lowInt] +
+                    StringBuilderHelper.DIGIT_ONES[lowInt]) ;
+        }
 
         StringBuilderHelper sbHelper = threadLocalStringBuilderHelper.get();
         char[] coeff;
@@ -3377,7 +3543,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         tenpow[0] = '1';
         for (int i = 1; i <= n; i++)
             tenpow[i] = '0';
-        return new BigInteger(tenpow);
+        return new BigInteger(tenpow,1, tenpow.length);
     }
 
     /**
@@ -3433,11 +3599,16 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         1000000000000000000L   // 18 / 10^18
     };
 
-    private static volatile BigInteger BIG_TEN_POWERS_TABLE[] = {BigInteger.ONE,
-        BigInteger.valueOf(10),       BigInteger.valueOf(100),
-        BigInteger.valueOf(1000),     BigInteger.valueOf(10000),
-        BigInteger.valueOf(100000),   BigInteger.valueOf(1000000),
-        BigInteger.valueOf(10000000), BigInteger.valueOf(100000000),
+    private static volatile BigInteger BIG_TEN_POWERS_TABLE[] = {
+        BigInteger.ONE,
+        BigInteger.valueOf(10),
+        BigInteger.valueOf(100),
+        BigInteger.valueOf(1000),
+        BigInteger.valueOf(10000),
+        BigInteger.valueOf(100000),
+        BigInteger.valueOf(1000000),
+        BigInteger.valueOf(10000000),
+        BigInteger.valueOf(100000000),
         BigInteger.valueOf(1000000000),
         BigInteger.valueOf(10000000000L),
         BigInteger.valueOf(100000000000L),
@@ -3502,7 +3673,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      */
     private BigInteger bigMultiplyPowerTen(int n) {
         if (n <= 0)
-            return this.inflate();
+            return this.inflated();
 
         if (intCompact != INFLATED)
             return bigTenToThe(n).multiply(intCompact);
@@ -3511,12 +3682,13 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
     }
 
     /**
-     * Assign appropriate BigInteger to intVal field if intVal is
+     * Returns appropriate BigInteger from intVal field if intVal is
      * null, i.e. the compact representation is in use.
      */
-    private BigInteger inflate() {
-        if (intVal == null)
-            intVal = BigInteger.valueOf(intCompact);
+    private BigInteger inflated() {
+        if (intVal == null) {
+            return BigInteger.valueOf(intCompact);
+        }
         return intVal;
     }
 
@@ -3543,6 +3715,30 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         }
     }
 
+    private static class UnsafeHolder {
+        private static final sun.misc.Unsafe unsafe;
+        private static final long intCompactOffset;
+        private static final long intValOffset;
+        static {
+            try {
+                unsafe = sun.misc.Unsafe.getUnsafe();
+                intCompactOffset = unsafe.objectFieldOffset
+                    (BigDecimal.class.getDeclaredField("intCompact"));
+                intValOffset = unsafe.objectFieldOffset
+                    (BigDecimal.class.getDeclaredField("intVal"));
+            } catch (Exception ex) {
+                throw new ExceptionInInitializerError(ex);
+            }
+        }
+        static void setIntCompactVolatile(BigDecimal bd, long val) {
+            unsafe.putLongVolatile(bd, intCompactOffset, val);
+        }
+
+        static void setIntValVolatile(BigDecimal bd, BigInteger val) {
+            unsafe.putObjectVolatile(bd, intValOffset, val);
+        }
+    }
+
     /**
      * Reconstitute the {@code BigDecimal} instance from a stream (that is,
      * deserialize it).
@@ -3559,7 +3755,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
             throw new java.io.StreamCorruptedException(message);
         // [all values of scale are now allowed]
         }
-        intCompact = compactValFor(intVal);
+        UnsafeHolder.setIntCompactVolatile(this, compactValFor(intVal));
     }
 
    /**
@@ -3570,13 +3766,12 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
    private void writeObject(java.io.ObjectOutputStream s)
        throws java.io.IOException {
        // Must inflate to maintain compatible serial form.
-       this.inflate();
-
-       // Write proper fields
+       if (this.intVal == null)
+           UnsafeHolder.setIntValVolatile(this, BigInteger.valueOf(this.intCompact));
+       // Could reset intVal back to null if it has to be set.
        s.defaultWriteObject();
    }
 
-
     /**
      * Returns the length of the absolute value of a {@code long}, in decimal
      * digits.
@@ -3584,36 +3779,29 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
      * @param x the {@code long}
      * @return the length of the unscaled value, in deciaml digits.
      */
-    private static int longDigitLength(long x) {
+    static int longDigitLength(long x) {
         /*
          * As described in "Bit Twiddling Hacks" by Sean Anderson,
          * (http://graphics.stanford.edu/~seander/bithacks.html)
-         * integer log 10 of x is within 1 of
-         * (1233/4096)* (1 + integer log 2 of x).
-         * The fraction 1233/4096 approximates log10(2). So we first
-         * do a version of log2 (a variant of Long class with
-         * pre-checks and opposite directionality) and then scale and
-         * check against powers table. This is a little simpler in
-         * present context than the version in Hacker's Delight sec
-         * 11-4.  Adding one to bit length allows comparing downward
-         * from the LONG_TEN_POWERS_TABLE that we need anyway.
+         * integer log 10 of x is within 1 of (1233/4096)* (1 +
+         * integer log 2 of x). The fraction 1233/4096 approximates
+         * log10(2). So we first do a version of log2 (a variant of
+         * Long class with pre-checks and opposite directionality) and
+         * then scale and check against powers table. This is a little
+         * simpler in present context than the version in Hacker's
+         * Delight sec 11-4. Adding one to bit length allows comparing
+         * downward from the LONG_TEN_POWERS_TABLE that we need
+         * anyway.
          */
-        assert x != INFLATED;
+        assert x != BigDecimal.INFLATED;
         if (x < 0)
             x = -x;
         if (x < 10) // must screen for 0, might as well 10
             return 1;
-        int n = 64; // not 63, to avoid needing to add 1 later
-        int y = (int)(x >>> 32);
-        if (y == 0) { n -= 32; y = (int)x; }
-        if (y >>> 16 == 0) { n -= 16; y <<= 16; }
-        if (y >>> 24 == 0) { n -=  8; y <<=  8; }
-        if (y >>> 28 == 0) { n -=  4; y <<=  4; }
-        if (y >>> 30 == 0) { n -=  2; y <<=  2; }
-        int r = (((y >>> 31) + n) * 1233) >>> 12;
+        int r = ((64 - Long.numberOfLeadingZeros(x) + 1) * 1233) >>> 12;
         long[] tab = LONG_TEN_POWERS_TABLE;
         // if r >= length, must have max possible digits for long
-        return (r >= tab.length || x < tab[r])? r : r+1;
+        return (r >= tab.length || x < tab[r]) ? r : r + 1;
     }
 
     /**
@@ -3635,41 +3823,6 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         return b.compareMagnitude(bigTenToThe(r)) < 0? r : r+1;
     }
 
-
-    /**
-     * Remove insignificant trailing zeros from this
-     * {@code BigDecimal} until the preferred scale is reached or no
-     * more zeros can be removed.  If the preferred scale is less than
-     * Integer.MIN_VALUE, all the trailing zeros will be removed.
-     *
-     * {@code BigInteger} assistance could help, here?
-     *
-     * <p>WARNING: This method should only be called on new objects as
-     * it mutates the value fields.
-     *
-     * @return this {@code BigDecimal} with a scale possibly reduced
-     * to be closed to the preferred scale.
-     */
-    private BigDecimal stripZerosToMatchScale(long preferredScale) {
-        this.inflate();
-        BigInteger qr[];                // quotient-remainder pair
-        while ( intVal.compareMagnitude(BigInteger.TEN) >= 0 &&
-                scale > preferredScale) {
-            if (intVal.testBit(0))
-                break;                  // odd number cannot end in 0
-            qr = intVal.divideAndRemainder(BigInteger.TEN);
-            if (qr[1].signum() != 0)
-                break;                  // non-0 remainder
-            intVal=qr[0];
-            scale = checkScale((long)scale-1);  // could Overflow
-            if (precision > 0)          // adjust precision if known
-              precision--;
-        }
-        if (intVal != null)
-            intCompact = compactValFor(intVal);
-        return this;
-    }
-
     /**
      * Check a scale for Underflow or Overflow.  If this BigDecimal is
      * nonzero, throw an exception if the scale is outof range. If this
@@ -3693,74 +3846,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         return asInt;
     }
 
-    /**
-     * Round an operand; used only if digits > 0.  Does not change
-     * {@code this}; if rounding is needed a new {@code BigDecimal}
-     * is created and returned.
-     *
-     * @param mc the context to use.
-     * @throws ArithmeticException if the result is inexact but the
-     *         rounding mode is {@code UNNECESSARY}.
-     */
-    private BigDecimal roundOp(MathContext mc) {
-        BigDecimal rounded = doRound(this, mc);
-        return rounded;
-    }
-
-    /** Round this BigDecimal according to the MathContext settings;
-     *  used only if precision {@literal >} 0.
-     *
-     * <p>WARNING: This method should only be called on new objects as
-     * it mutates the value fields.
-     *
-     * @param mc the context to use.
-     * @throws ArithmeticException if the rounding mode is
-     *         {@code RoundingMode.UNNECESSARY} and the
-     *         {@code BigDecimal} operation would require rounding.
-     */
-    private void roundThis(MathContext mc) {
-        BigDecimal rounded = doRound(this, mc);
-        if (rounded == this)                 // wasn't rounded
-            return;
-        this.intVal     = rounded.intVal;
-        this.intCompact = rounded.intCompact;
-        this.scale      = rounded.scale;
-        this.precision  = rounded.precision;
-    }
-
-    /**
-     * Returns a {@code BigDecimal} rounded according to the
-     * MathContext settings; used only if {@code mc.precision > 0}.
-     * Does not change {@code this}; if rounding is needed a new
-     * {@code BigDecimal} is created and returned.
-     *
-     * @param mc the context to use.
-     * @return a {@code BigDecimal} rounded according to the MathContext
-     *         settings.  May return this, if no rounding needed.
-     * @throws ArithmeticException if the rounding mode is
-     *         {@code RoundingMode.UNNECESSARY} and the
-     *         result is inexact.
-     */
-    private static BigDecimal doRound(BigDecimal d, MathContext mc) {
-        int mcp = mc.precision;
-        int drop;
-        // This might (rarely) iterate to cover the 999=>1000 case
-        while ((drop = d.precision() - mcp) > 0) {
-            int newScale = d.checkScale((long)d.scale - drop);
-            int mode = mc.roundingMode.oldMode;
-            if (drop < LONG_TEN_POWERS_TABLE.length)
-                d = divideAndRound(d.intCompact, d.intVal,
-                                   LONG_TEN_POWERS_TABLE[drop], null,
-                                   newScale, mode, newScale);
-            else
-                d = divideAndRound(d.intCompact, d.intVal,
-                                   INFLATED, bigTenToThe(drop),
-                                   newScale, mode, newScale);
-        }
-        return d;
-    }
-
-    /**
+   /**
      * Returns the compact value for given {@code BigInteger}, or
      * INFLATED if too big. Relies on internal representation of
      * {@code BigInteger}.
@@ -3852,4 +3938,1290 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> {
         }
         return this;
     }
+
+    /* the same as checkScale where value!=0 */
+    private static int checkScaleNonZero(long val) {
+        int asInt = (int)val;
+        if (asInt != val) {
+            throw new ArithmeticException(asInt>0 ? "Underflow":"Overflow");
+        }
+        return asInt;
+    }
+
+    private static int checkScale(long intCompact, long val) {
+        int asInt = (int)val;
+        if (asInt != val) {
+            asInt = val>Integer.MAX_VALUE ? Integer.MAX_VALUE : Integer.MIN_VALUE;
+            if (intCompact != 0)
+                throw new ArithmeticException(asInt>0 ? "Underflow":"Overflow");
+        }
+        return asInt;
+    }
+
+    private static int checkScale(BigInteger intVal, long val) {
+        int asInt = (int)val;
+        if (asInt != val) {
+            asInt = val>Integer.MAX_VALUE ? Integer.MAX_VALUE : Integer.MIN_VALUE;
+            if (intVal.signum() != 0)
+                throw new ArithmeticException(asInt>0 ? "Underflow":"Overflow");
+        }
+        return asInt;
+    }
+
+    /**
+     * Returns a {@code BigDecimal} rounded according to the MathContext
+     * settings;
+     * If rounding is needed a new {@code BigDecimal} is created and returned.
+     *
+     * @param val the value to be rounded
+     * @param mc the context to use.
+     * @return a {@code BigDecimal} rounded according to the MathContext
+     *         settings.  May return {@code value}, if no rounding needed.
+     * @throws ArithmeticException if the rounding mode is
+     *         {@code RoundingMode.UNNECESSARY} and the
+     *         result is inexact.
+     */
+    private static BigDecimal doRound(BigDecimal val, MathContext mc) {
+        int mcp = mc.precision;
+        boolean wasDivided = false;
+        if (mcp > 0) {
+            BigInteger intVal = val.intVal;
+            long compactVal = val.intCompact;
+            int scale = val.scale;
+            int prec = val.precision();
+            int mode = mc.roundingMode.oldMode;
+            int drop;
+            if (compactVal == INFLATED) {
+                drop = prec - mcp;
+                while (drop > 0) {
+                    scale = checkScaleNonZero((long) scale - drop);
+                    intVal = divideAndRoundByTenPow(intVal, drop, mode);
+                    wasDivided = true;
+                    compactVal = compactValFor(intVal);
+                    if (compactVal != INFLATED) {
+                        prec = longDigitLength(compactVal);
+                        break;
+                    }
+                    prec = bigDigitLength(intVal);
+                    drop = prec - mcp;
+                }
+            }
+            if (compactVal != INFLATED) {
+                drop = prec - mcp;  // drop can't be more than 18
+                while (drop > 0) {
+                    scale = checkScaleNonZero((long) scale - drop);
+                    compactVal = divideAndRound(compactVal, LONG_TEN_POWERS_TABLE[drop], mc.roundingMode.oldMode);
+                    wasDivided = true;
+                    prec = longDigitLength(compactVal);
+                    drop = prec - mcp;
+                    intVal = null;
+                }
+            }
+            return wasDivided ? new BigDecimal(intVal,compactVal,scale,prec) : val;
+        }
+        return val;
+    }
+
+    /*
+     * Returns a {@code BigDecimal} created from {@code long} value with
+     * given scale rounded according to the MathContext settings
+     */
+    private static BigDecimal doRound(long compactVal, int scale, MathContext mc) {
+        int mcp = mc.precision;
+        if (mcp > 0 && mcp < 19) {
+            int prec = longDigitLength(compactVal);
+            int drop = prec - mcp;  // drop can't be more than 18
+            while (drop > 0) {
+                scale = checkScaleNonZero((long) scale - drop);
+                compactVal = divideAndRound(compactVal, LONG_TEN_POWERS_TABLE[drop], mc.roundingMode.oldMode);
+                prec = longDigitLength(compactVal);
+                drop = prec - mcp;
+            }
+            return valueOf(compactVal, scale, prec);
+        }
+        return valueOf(compactVal, scale);
+    }
+
+    /*
+     * Returns a {@code BigDecimal} created from {@code BigInteger} value with
+     * given scale rounded according to the MathContext settings
+     */
+    private static BigDecimal doRound(BigInteger intVal, int scale, MathContext mc) {
+        int mcp = mc.precision;
+        int prec = 0;
+        if (mcp > 0) {
+            long compactVal = compactValFor(intVal);
+            int mode = mc.roundingMode.oldMode;
+            int drop;
+            if (compactVal == INFLATED) {
+                prec = bigDigitLength(intVal);
+                drop = prec - mcp;
+                while (drop > 0) {
+                    scale = checkScaleNonZero((long) scale - drop);
+                    intVal = divideAndRoundByTenPow(intVal, drop, mode);
+                    compactVal = compactValFor(intVal);
+                    if (compactVal != INFLATED) {
+                        break;
+                    }
+                    prec = bigDigitLength(intVal);
+                    drop = prec - mcp;
+                }
+            }
+            if (compactVal != INFLATED) {
+                prec = longDigitLength(compactVal);
+                drop = prec - mcp;     // drop can't be more than 18
+                while (drop > 0) {
+                    scale = checkScaleNonZero((long) scale - drop);
+                    compactVal = divideAndRound(compactVal, LONG_TEN_POWERS_TABLE[drop], mc.roundingMode.oldMode);
+                    prec = longDigitLength(compactVal);
+                    drop = prec - mcp;
+                }
+                return valueOf(compactVal,scale,prec);
+            }
+        }
+        return new BigDecimal(intVal,INFLATED,scale,prec);
+    }
+
+    /*
+     * Divides {@code BigInteger} value by ten power.
+     */
+    private static BigInteger divideAndRoundByTenPow(BigInteger intVal, int tenPow, int roundingMode) {
+        if (tenPow < LONG_TEN_POWERS_TABLE.length)
+            intVal = divideAndRound(intVal, LONG_TEN_POWERS_TABLE[tenPow], roundingMode);
+        else
+            intVal = divideAndRound(intVal, bigTenToThe(tenPow), roundingMode);
+        return intVal;
+    }
+
+    /**
+     * Internally used for division operation for division {@code long} by
+     * {@code long}.
+     * The returned {@code BigDecimal} object is the quotient whose scale is set
+     * to the passed in scale. If the remainder is not zero, it will be rounded
+     * based on the passed in roundingMode. Also, if the remainder is zero and
+     * the last parameter, i.e. preferredScale is NOT equal to scale, the
+     * trailing zeros of the result is stripped to match the preferredScale.
+     */
+    private static BigDecimal divideAndRound(long ldividend, long ldivisor, int scale, int roundingMode,
+                                             int preferredScale) {
+
+        int qsign; // quotient sign
+        long q = ldividend / ldivisor; // store quotient in long
+        if (roundingMode == ROUND_DOWN && scale == preferredScale)
+            return valueOf(q, scale);
+        long r = ldividend % ldivisor; // store remainder in long
+        qsign = ((ldividend < 0) == (ldivisor < 0)) ? 1 : -1;
+        if (r != 0) {
+            boolean increment = needIncrement(ldivisor, roundingMode, qsign, q, r);
+            return valueOf((increment ? q + qsign : q), scale);
+        } else {
+            if (preferredScale != scale)
+                return createAndStripZerosToMatchScale(q, scale, preferredScale);
+            else
+                return valueOf(q, scale);
+        }
+    }
+
+    /**
+     * Divides {@code long} by {@code long} and do rounding based on the
+     * passed in roundingMode.
+     */
+    private static long divideAndRound(long ldividend, long ldivisor, int roundingMode) {
+        int qsign; // quotient sign
+        long q = ldividend / ldivisor; // store quotient in long
+        if (roundingMode == ROUND_DOWN)
+            return q;
+        long r = ldividend % ldivisor; // store remainder in long
+        qsign = ((ldividend < 0) == (ldivisor < 0)) ? 1 : -1;
+        if (r != 0) {
+            boolean increment = needIncrement(ldivisor, roundingMode, qsign, q,     r);
+            return increment ? q + qsign : q;
+        } else {
+            return q;
+        }
+    }
+
+    /**
+     * Shared logic of need increment computation.
+     */
+    private static boolean commonNeedIncrement(int roundingMode, int qsign,
+                                        int cmpFracHalf, boolean oddQuot) {
+        switch(roundingMode) {
+        case ROUND_UNNECESSARY:
+            throw new ArithmeticException("Rounding necessary");
+
+        case ROUND_UP: // Away from zero
+            return true;
+
+        case ROUND_DOWN: // Towards zero
+            return false;
+
+        case ROUND_CEILING: // Towards +infinity
+            return qsign > 0;
+
+        case ROUND_FLOOR: // Towards -infinity
+            return qsign < 0;
+
+        default: // Some kind of half-way rounding
+            assert roundingMode >= ROUND_HALF_UP &&
+                roundingMode <= ROUND_HALF_EVEN: "Unexpected rounding mode" + RoundingMode.valueOf(roundingMode);
+
+            if (cmpFracHalf < 0 ) // We're closer to higher digit
+                return false;
+            else if (cmpFracHalf > 0 ) // We're closer to lower digit
+                return true;
+            else { // half-way
+                assert cmpFracHalf == 0;
+
+                switch(roundingMode) {
+                case ROUND_HALF_DOWN:
+                    return false;
+
+                case ROUND_HALF_UP:
+                    return true;
+
+                case ROUND_HALF_EVEN:
+                    return oddQuot;
+
+                default:
+                    throw new AssertionError("Unexpected rounding mode" + roundingMode);
+                }
+            }
+        }
+    }
+
+    /**
+     * Tests if quotient has to be incremented according the roundingMode
+     */
+    private static boolean needIncrement(long ldivisor, int roundingMode,
+                                         int qsign, long q, long r) {
+        assert r != 0L;
+
+        int cmpFracHalf;
+        if (r <= HALF_LONG_MIN_VALUE || r > HALF_LONG_MAX_VALUE) {
+            cmpFracHalf = 1; // 2 * r can't fit into long
+        } else {
+            cmpFracHalf = longCompareMagnitude(2 * r, ldivisor);
+        }
+
+        return commonNeedIncrement(roundingMode, qsign, cmpFracHalf, (q & 1L) != 0L);
+    }
+
+    /**
+     * Divides {@code BigInteger} value by {@code long} value and
+     * do rounding based on the passed in roundingMode.
+     */
+    private static BigInteger divideAndRound(BigInteger bdividend, long ldivisor, int roundingMode) {
+        boolean isRemainderZero; // record remainder is zero or not
+        int qsign; // quotient sign
+        long r = 0; // store quotient & remainder in long
+        MutableBigInteger mq = null; // store quotient
+        // Descend into mutables for faster remainder checks
+        MutableBigInteger mdividend = new MutableBigInteger(bdividend.mag);
+        mq = new MutableBigInteger();
+        r = mdividend.divide(ldivisor, mq);
+        isRemainderZero = (r == 0);
+        qsign = (ldivisor < 0) ? -bdividend.signum : bdividend.signum;
+        if (!isRemainderZero) {
+            if(needIncrement(ldivisor, roundingMode, qsign, mq, r)) {
+                mq.add(MutableBigInteger.ONE);
+            }
+        }
+        return mq.toBigInteger(qsign);
+    }
+
+    /**
+     * Internally used for division operation for division {@code BigInteger}
+     * by {@code long}.
+     * The returned {@code BigDecimal} object is the quotient whose scale is set
+     * to the passed in scale. If the remainder is not zero, it will be rounded
+     * based on the passed in roundingMode. Also, if the remainder is zero and
+     * the last parameter, i.e. preferredScale is NOT equal to scale, the
+     * trailing zeros of the result is stripped to match the preferredScale.
+     */
+    private static BigDecimal divideAndRound(BigInteger bdividend,
+                                             long ldivisor, int scale, int roundingMode, int preferredScale) {
+        boolean isRemainderZero; // record remainder is zero or not
+        int qsign; // quotient sign
+        long r = 0; // store quotient & remainder in long
+        MutableBigInteger mq = null; // store quotient
+        // Descend into mutables for faster remainder checks
+        MutableBigInteger mdividend = new MutableBigInteger(bdividend.mag);
+        mq = new MutableBigInteger();
+        r = mdividend.divide(ldivisor, mq);
+        isRemainderZero = (r == 0);
+        qsign = (ldivisor < 0) ? -bdividend.signum : bdividend.signum;
+        if (!isRemainderZero) {
+            if(needIncrement(ldivisor, roundingMode, qsign, mq, r)) {
+                mq.add(MutableBigInteger.ONE);
+            }
+            return mq.toBigDecimal(qsign, scale);
+        } else {
+            if (preferredScale != scale) {
+                long compactVal = mq.toCompactValue(qsign);
+                if(compactVal!=INFLATED) {
+                    return createAndStripZerosToMatchScale(compactVal, scale, preferredScale);
+                }
+                BigInteger intVal =  mq.toBigInteger(qsign);
+                return createAndStripZerosToMatchScale(intVal,scale, preferredScale);
+            } else {
+                return mq.toBigDecimal(qsign, scale);
+            }
+        }
+    }
+
+    /**
+     * Tests if quotient has to be incremented according the roundingMode
+     */
+    private static boolean needIncrement(long ldivisor, int roundingMode,
+                                         int qsign, MutableBigInteger mq, long r) {
+        assert r != 0L;
+
+        int cmpFracHalf;
+        if (r <= HALF_LONG_MIN_VALUE || r > HALF_LONG_MAX_VALUE) {
+            cmpFracHalf = 1; // 2 * r can't fit into long
+        } else {
+            cmpFracHalf = longCompareMagnitude(2 * r, ldivisor);
+        }
+
+        return commonNeedIncrement(roundingMode, qsign, cmpFracHalf, mq.isOdd());
+    }
+
+    /**
+     * Divides {@code BigInteger} value by {@code BigInteger} value and
+     * do rounding based on the passed in roundingMode.
+     */
+    private static BigInteger divideAndRound(BigInteger bdividend, BigInteger bdivisor, int roundingMode) {
+        boolean isRemainderZero; // record remainder is zero or not
+        int qsign; // quotient sign
+        // Descend into mutables for faster remainder checks
+        MutableBigInteger mdividend = new MutableBigInteger(bdividend.mag);
+        MutableBigInteger mq = new MutableBigInteger();
+        MutableBigInteger mdivisor = new MutableBigInteger(bdivisor.mag);
+        MutableBigInteger mr = mdividend.divide(mdivisor, mq);
+        isRemainderZero = mr.isZero();
+        qsign = (bdividend.signum != bdivisor.signum) ? -1 : 1;
+        if (!isRemainderZero) {
+            if (needIncrement(mdivisor, roundingMode, qsign, mq, mr)) {
+                mq.add(MutableBigInteger.ONE);
+            }
+        }
+        return mq.toBigInteger(qsign);
+    }
+
+    /**
+     * Internally used for division operation for division {@code BigInteger}
+     * by {@code BigInteger}.
+     * The returned {@code BigDecimal} object is the quotient whose scale is set
+     * to the passed in scale. If the remainder is not zero, it will be rounded
+     * based on the passed in roundingMode. Also, if the remainder is zero and
+     * the last parameter, i.e. preferredScale is NOT equal to scale, the
+     * trailing zeros of the result is stripped to match the preferredScale.
+     */
+    private static BigDecimal divideAndRound(BigInteger bdividend, BigInteger bdivisor, int scale, int roundingMode,
+                                             int preferredScale) {
+        boolean isRemainderZero; // record remainder is zero or not
+        int qsign; // quotient sign
+        // Descend into mutables for faster remainder checks
+        MutableBigInteger mdividend = new MutableBigInteger(bdividend.mag);
+        MutableBigInteger mq = new MutableBigInteger();
+        MutableBigInteger mdivisor = new MutableBigInteger(bdivisor.mag);
+        MutableBigInteger mr = mdividend.divide(mdivisor, mq);
+        isRemainderZero = mr.isZero();
+        qsign = (bdividend.signum != bdivisor.signum) ? -1 : 1;
+        if (!isRemainderZero) {
+            if (needIncrement(mdivisor, roundingMode, qsign, mq, mr)) {
+                mq.add(MutableBigInteger.ONE);
+            }
+            return mq.toBigDecimal(qsign, scale);
+        } else {
+            if (preferredScale != scale) {
+                long compactVal = mq.toCompactValue(qsign);
+                if (compactVal != INFLATED) {
+                    return createAndStripZerosToMatchScale(compactVal, scale, preferredScale);
+                }
+                BigInteger intVal = mq.toBigInteger(qsign);
+                return createAndStripZerosToMatchScale(intVal, scale, preferredScale);
+            } else {
+                return mq.toBigDecimal(qsign, scale);
+            }
+        }
+    }
+
+    /**
+     * Tests if quotient has to be incremented according the roundingMode
+     */
+    private static boolean needIncrement(MutableBigInteger mdivisor, int roundingMode,
+                                         int qsign, MutableBigInteger mq, MutableBigInteger mr) {
+        assert !mr.isZero();
+        int cmpFracHalf = mr.compareHalf(mdivisor);
+        return commonNeedIncrement(roundingMode, qsign, cmpFracHalf, mq.isOdd());
+    }
+
+    /**
+     * Remove insignificant trailing zeros from this
+     * {@code BigInteger} value until the preferred scale is reached or no
+     * more zeros can be removed.  If the preferred scale is less than
+     * Integer.MIN_VALUE, all the trailing zeros will be removed.
+     *
+     * @return new {@code BigDecimal} with a scale possibly reduced
+     * to be closed to the preferred scale.
+     */
+    private static BigDecimal createAndStripZerosToMatchScale(BigInteger intVal, int scale, long preferredScale) {
+        BigInteger qr[]; // quotient-remainder pair
+        while (intVal.compareMagnitude(BigInteger.TEN) >= 0
+               && scale > preferredScale) {
+            if (intVal.testBit(0))
+                break; // odd number cannot end in 0
+            qr = intVal.divideAndRemainder(BigInteger.TEN);
+            if (qr[1].signum() != 0)
+                break; // non-0 remainder
+            intVal = qr[0];
+            scale = checkScale(intVal,(long) scale - 1); // could Overflow
+        }
+        return valueOf(intVal, scale, 0);
+    }
+
+    /**
+     * Remove insignificant trailing zeros from this
+     * {@code long} value until the preferred scale is reached or no
+     * more zeros can be removed.  If the preferred scale is less than
+     * Integer.MIN_VALUE, all the trailing zeros will be removed.
+     *
+     * @return new {@code BigDecimal} with a scale possibly reduced
+     * to be closed to the preferred scale.
+     */
+    private static BigDecimal createAndStripZerosToMatchScale(long compactVal, int scale, long preferredScale) {
+        while (Math.abs(compactVal) >= 10L && scale > preferredScale) {
+            if ((compactVal & 1L) != 0L)
+                break; // odd number cannot end in 0
+            long r = compactVal % 10L;
+            if (r != 0L)
+                break; // non-0 remainder
+            compactVal /= 10;
+            scale = checkScale(compactVal, (long) scale - 1); // could Overflow
+        }
+        return valueOf(compactVal, scale);
+    }
+
+    private static BigDecimal stripZerosToMatchScale(BigInteger intVal, long intCompact, int scale, int preferredScale) {
+        if(intCompact!=INFLATED) {
+            return createAndStripZerosToMatchScale(intCompact, scale, preferredScale);
+        } else {
+            return createAndStripZerosToMatchScale(intVal==null ? INFLATED_BIGINT : intVal,
+                                                   scale, preferredScale);
+        }
+    }
+
+    /*
+     * returns INFLATED if oveflow
+     */
+    private static long add(long xs, long ys){
+        long sum = xs + ys;
+        // See "Hacker's Delight" section 2-12 for explanation of
+        // the overflow test.
+        if ( (((sum ^ xs) & (sum ^ ys))) >= 0L) { // not overflowed
+            return sum;
+        }
+        return INFLATED;
+    }
+
+    private static BigDecimal add(long xs, long ys, int scale){
+        long sum = add(xs, ys);
+        if (sum!=INFLATED)
+            return BigDecimal.valueOf(sum, scale);
+        return new BigDecimal(BigInteger.valueOf(xs).add(ys), scale);
+    }
+
+    private static BigDecimal add(final long xs, int scale1, final long ys, int scale2) {
+        long sdiff = (long) scale1 - scale2;
+        if (sdiff == 0) {
+            return add(xs, ys, scale1);
+        } else if (sdiff < 0) {
+            int raise = checkScale(xs,-sdiff);
+            long scaledX = longMultiplyPowerTen(xs, raise);
+            if (scaledX != INFLATED) {
+                return add(scaledX, ys, scale2);
+            } else {
+                BigInteger bigsum = bigMultiplyPowerTen(xs,raise).add(ys);
+                return ((xs^ys)>=0) ? // same sign test
+                    new BigDecimal(bigsum, INFLATED, scale2, 0)
+                    : valueOf(bigsum, scale2, 0);
+            }
+        } else {
+            int raise = checkScale(ys,sdiff);
+            long scaledY = longMultiplyPowerTen(ys, raise);
+            if (scaledY != INFLATED) {
+                return add(xs, scaledY, scale1);
+            } else {
+                BigInteger bigsum = bigMultiplyPowerTen(ys,raise).add(xs);
+                return ((xs^ys)>=0) ?
+                    new BigDecimal(bigsum, INFLATED, scale1, 0)
+                    : valueOf(bigsum, scale1, 0);
+            }
+        }
+    }
+
+    private static BigDecimal add(final long xs, int scale1, BigInteger snd, int scale2) {
+        int rscale = scale1;
+        long sdiff = (long)rscale - scale2;
+        boolean sameSigns =  (Long.signum(xs) == snd.signum);
+        BigInteger sum;
+        if (sdiff < 0) {
+            int raise = checkScale(xs,-sdiff);
+            rscale = scale2;
+            long scaledX = longMultiplyPowerTen(xs, raise);
+            if (scaledX == INFLATED) {
+                sum = snd.add(bigMultiplyPowerTen(xs,raise));
+            } else {
+                sum = snd.add(scaledX);
+            }
+        } else { //if (sdiff > 0) {
+            int raise = checkScale(snd,sdiff);
+            snd = bigMultiplyPowerTen(snd,raise);
+            sum = snd.add(xs);
+        }
+        return (sameSigns) ?
+            new BigDecimal(sum, INFLATED, rscale, 0) :
+            valueOf(sum, rscale, 0);
+    }
+
+    private static BigDecimal add(BigInteger fst, int scale1, BigInteger snd, int scale2) {
+        int rscale = scale1;
+        long sdiff = (long)rscale - scale2;
+        if (sdiff != 0) {
+            if (sdiff < 0) {
+                int raise = checkScale(fst,-sdiff);
+                rscale = scale2;
+                fst = bigMultiplyPowerTen(fst,raise);
+            } else {
+                int raise = checkScale(snd,sdiff);
+                snd = bigMultiplyPowerTen(snd,raise);
+            }
+        }
+        BigInteger sum = fst.add(snd);
+        return (fst.signum == snd.signum) ?
+                new BigDecimal(sum, INFLATED, rscale, 0) :
+                valueOf(sum, rscale, 0);
+    }
+
+    private static BigInteger bigMultiplyPowerTen(long value, int n) {
+        if (n <= 0)
+            return BigInteger.valueOf(value);
+        return bigTenToThe(n).multiply(value);
+    }
+
+    private static BigInteger bigMultiplyPowerTen(BigInteger value, int n) {
+        if (n <= 0)
+            return value;
+        if(n<LONG_TEN_POWERS_TABLE.length) {
+                return value.multiply(LONG_TEN_POWERS_TABLE[n]);
+        }
+        return value.multiply(bigTenToThe(n));
+    }
+
+    /**
+     * Returns a {@code BigDecimal} whose value is {@code (xs /
+     * ys)}, with rounding according to the context settings.
+     *
+     * Fast path - used only when (xscale <= yscale && yscale < 18
+     *  && mc.presision<18) {
+     */
+    private static BigDecimal divideSmallFastPath(final long xs, int xscale,
+                                                  final long ys, int yscale,
+                                                  long preferredScale, MathContext mc) {
+        int mcp = mc.precision;
+        int roundingMode = mc.roundingMode.oldMode;
+
+        assert (xscale <= yscale) && (yscale < 18) && (mcp < 18);
+        int xraise = yscale - xscale; // xraise >=0
+        long scaledX = (xraise==0) ? xs :
+            longMultiplyPowerTen(xs, xraise); // can't overflow here!
+        BigDecimal quotient;
+
+        int cmp = longCompareMagnitude(scaledX, ys);
+        if(cmp > 0) { // satisfy constraint (b)
+            yscale -= 1; // [that is, divisor *= 10]
+            int scl = checkScaleNonZero(preferredScale + yscale - xscale + mcp);
+            if (checkScaleNonZero((long) mcp + yscale) > xscale) {
+                // assert newScale >= xscale
+                int raise = checkScaleNonZero((long) mcp + yscale - xscale);
+                long scaledXs;
+                if ((scaledXs = longMultiplyPowerTen(xs, raise)) == INFLATED) {
+                    quotient = null;
+                    if((mcp-1) >=0 && (mcp-1)<LONG_TEN_POWERS_TABLE.length) {
+                        quotient = multiplyDivideAndRound(LONG_TEN_POWERS_TABLE[mcp-1], scaledX, ys, scl, roundingMode, checkScaleNonZero(preferredScale));
+                    }
+                    if(quotient==null) {
+                        BigInteger rb = bigMultiplyPowerTen(scaledX,mcp-1);
+                        quotient = divideAndRound(rb, ys,
+                                                  scl, roundingMode, checkScaleNonZero(preferredScale));
+                    }
+                } else {
+                    quotient = divideAndRound(scaledXs, ys, scl, roundingMode, checkScaleNonZero(preferredScale));
+                }
+            } else {
+                int newScale = checkScaleNonZero((long) xscale - mcp);
+                // assert newScale >= yscale
+                if (newScale == yscale) { // easy case
+                    quotient = divideAndRound(xs, ys, scl, roundingMode,checkScaleNonZero(preferredScale));
+                } else {
+                    int raise = checkScaleNonZero((long) newScale - yscale);
+                    long scaledYs;
+                    if ((scaledYs = longMultiplyPowerTen(ys, raise)) == INFLATED) {
+                        BigInteger rb = bigMultiplyPowerTen(ys,raise);
+                        quotient = divideAndRound(BigInteger.valueOf(xs),
+                                                  rb, scl, roundingMode,checkScaleNonZero(preferredScale));
+                    } else {
+                        quotient = divideAndRound(xs, scaledYs, scl, roundingMode,checkScaleNonZero(preferredScale));
+                    }
+                }
+            }
+        } else {
+            // abs(scaledX) <= abs(ys)
+            // result is "scaledX * 10^msp / ys"
+            int scl = checkScaleNonZero(preferredScale + yscale - xscale + mcp);
+            if(cmp==0) {
+                // abs(scaleX)== abs(ys) => result will be scaled 10^mcp + correct sign
+                quotient = roundedTenPower(((scaledX < 0) == (ys < 0)) ? 1 : -1, mcp, scl, checkScaleNonZero(preferredScale));
+            } else {
+                // abs(scaledX) < abs(ys)
+                long scaledXs;
+                if ((scaledXs = longMultiplyPowerTen(scaledX, mcp)) == INFLATED) {
+                    quotient = null;
+                    if(mcp<LONG_TEN_POWERS_TABLE.length) {
+                        quotient = multiplyDivideAndRound(LONG_TEN_POWERS_TABLE[mcp], scaledX, ys, scl, roundingMode, checkScaleNonZero(preferredScale));
+                    }
+                    if(quotient==null) {
+                        BigInteger rb = bigMultiplyPowerTen(scaledX,mcp);
+                        quotient = divideAndRound(rb, ys,
+                                                  scl, roundingMode, checkScaleNonZero(preferredScale));
+                    }
+                } else {
+                    quotient = divideAndRound(scaledXs, ys, scl, roundingMode, checkScaleNonZero(preferredScale));
+                }
+            }
+        }
+        // doRound, here, only affects 1000000000 case.
+        return doRound(quotient,mc);
+    }
+
+    /**
+     * Returns a {@code BigDecimal} whose value is {@code (xs /
+     * ys)}, with rounding according to the context settings.
+     */
+    private static BigDecimal divide(final long xs, int xscale, final long ys, int yscale, long preferredScale, MathContext mc) {
+        int mcp = mc.precision;
+        if(xscale <= yscale && yscale < 18 && mcp<18) {
+            return divideSmallFastPath(xs, xscale, ys, yscale, preferredScale, mc);
+        }
+        if (compareMagnitudeNormalized(xs, xscale, ys, yscale) > 0) {// satisfy constraint (b)
+            yscale -= 1; // [that is, divisor *= 10]
+        }
+        int roundingMode = mc.roundingMode.oldMode;
+        // In order to find out whether the divide generates the exact result,
+        // we avoid calling the above divide method. 'quotient' holds the
+        // return BigDecimal object whose scale will be set to 'scl'.
+        int scl = checkScaleNonZero(preferredScale + yscale - xscale + mcp);
+        BigDecimal quotient;
+        if (checkScaleNonZero((long) mcp + yscale) > xscale) {
+            int raise = checkScaleNonZero((long) mcp + yscale - xscale);
+            long scaledXs;
+            if ((scaledXs = longMultiplyPowerTen(xs, raise)) == INFLATED) {
+                BigInteger rb = bigMultiplyPowerTen(xs,raise);
+                quotient = divideAndRound(rb, ys, scl, roundingMode, checkScaleNonZero(preferredScale));
+            } else {
+                quotient = divideAndRound(scaledXs, ys, scl, roundingMode, checkScaleNonZero(preferredScale));
+            }
+        } else {
+            int newScale = checkScaleNonZero((long) xscale - mcp);
+            // assert newScale >= yscale
+            if (newScale == yscale) { // easy case
+                quotient = divideAndRound(xs, ys, scl, roundingMode,checkScaleNonZero(preferredScale));
+            } else {
+                int raise = checkScaleNonZero((long) newScale - yscale);
+                long scaledYs;
+                if ((scaledYs = longMultiplyPowerTen(ys, raise)) == INFLATED) {
+                    BigInteger rb = bigMultiplyPowerTen(ys,raise);
+                    quotient = divideAndRound(BigInteger.valueOf(xs),
+                                              rb, scl, roundingMode,checkScaleNonZero(preferredScale));
+                } else {
+                    quotient = divideAndRound(xs, scaledYs, scl, roundingMode,checkScaleNonZero(preferredScale));
+                }
+            }
+        }
+        // doRound, here, only affects 1000000000 case.
+        return doRound(quotient,mc);
+    }
+
+    /**
+     * Returns a {@code BigDecimal} whose value is {@code (xs /
+     * ys)}, with rounding according to the context settings.
+     */
+    private static BigDecimal divide(BigInteger xs, int xscale, long ys, int yscale, long preferredScale, MathContext mc) {
+        // Normalize dividend & divisor so that both fall into [0.1, 0.999...]
+        if ((-compareMagnitudeNormalized(ys, yscale, xs, xscale)) > 0) {// satisfy constraint (b)
+            yscale -= 1; // [that is, divisor *= 10]
+        }
+        int mcp = mc.precision;
+        int roundingMode = mc.roundingMode.oldMode;
+
+        // In order to find out whether the divide generates the exact result,
+        // we avoid calling the above divide method. 'quotient' holds the
+        // return BigDecimal object whose scale will be set to 'scl'.
+        BigDecimal quotient;
+        int scl = checkScaleNonZero(preferredScale + yscale - xscale + mcp);
+        if (checkScaleNonZero((long) mcp + yscale) > xscale) {
+            int raise = checkScaleNonZero((long) mcp + yscale - xscale);
+            BigInteger rb = bigMultiplyPowerTen(xs,raise);
+            quotient = divideAndRound(rb, ys, scl, roundingMode, checkScaleNonZero(preferredScale));
+        } else {
+            int newScale = checkScaleNonZero((long) xscale - mcp);
+            // assert newScale >= yscale
+            if (newScale == yscale) { // easy case
+                quotient = divideAndRound(xs, ys, scl, roundingMode,checkScaleNonZero(preferredScale));
+            } else {
+                int raise = checkScaleNonZero((long) newScale - yscale);
+                long scaledYs;
+                if ((scaledYs = longMultiplyPowerTen(ys, raise)) == INFLATED) {
+                    BigInteger rb = bigMultiplyPowerTen(ys,raise);
+                    quotient = divideAndRound(xs, rb, scl, roundingMode,checkScaleNonZero(preferredScale));
+                } else {
+                    quotient = divideAndRound(xs, scaledYs, scl, roundingMode,checkScaleNonZero(preferredScale));
+                }
+            }
+        }
+        // doRound, here, only affects 1000000000 case.
+        return doRound(quotient, mc);
+    }
+
+    /**
+     * Returns a {@code BigDecimal} whose value is {@code (xs /
+     * ys)}, with rounding according to the context settings.
+     */
+    private static BigDecimal divide(long xs, int xscale, BigInteger ys, int yscale, long preferredScale, MathContext mc) {
+        // Normalize dividend & divisor so that both fall into [0.1, 0.999...]
+        if (compareMagnitudeNormalized(xs, xscale, ys, yscale) > 0) {// satisfy constraint (b)
+            yscale -= 1; // [that is, divisor *= 10]
+        }
+        int mcp = mc.precision;
+        int roundingMode = mc.roundingMode.oldMode;
+
+        // In order to find out whether the divide generates the exact result,
+        // we avoid calling the above divide method. 'quotient' holds the
+        // return BigDecimal object whose scale will be set to 'scl'.
+        BigDecimal quotient;
+        int scl = checkScaleNonZero(preferredScale + yscale - xscale + mcp);
+        if (checkScaleNonZero((long) mcp + yscale) > xscale) {
+            int raise = checkScaleNonZero((long) mcp + yscale - xscale);
+            BigInteger rb = bigMultiplyPowerTen(xs,raise);
+            quotient = divideAndRound(rb, ys, scl, roundingMode, checkScaleNonZero(preferredScale));
+        } else {
+            int newScale = checkScaleNonZero((long) xscale - mcp);
+            int raise = checkScaleNonZero((long) newScale - yscale);
+            BigInteger rb = bigMultiplyPowerTen(ys,raise);
+            quotient = divideAndRound(BigInteger.valueOf(xs), rb, scl, roundingMode,checkScaleNonZero(preferredScale));
+        }
+        // doRound, here, only affects 1000000000 case.
+        return doRound(quotient, mc);
+    }
+
+    /**
+     * Returns a {@code BigDecimal} whose value is {@code (xs /
+     * ys)}, with rounding according to the context settings.
+     */
+    private static BigDecimal divide(BigInteger xs, int xscale, BigInteger ys, int yscale, long preferredScale, MathContext mc) {
+        // Normalize dividend & divisor so that both fall into [0.1, 0.999...]
+        if (compareMagnitudeNormalized(xs, xscale, ys, yscale) > 0) {// satisfy constraint (b)
+            yscale -= 1; // [that is, divisor *= 10]
+        }
+        int mcp = mc.precision;
+        int roundingMode = mc.roundingMode.oldMode;
+
+        // In order to find out whether the divide generates the exact result,
+        // we avoid calling the above divide method. 'quotient' holds the
+        // return BigDecimal object whose scale will be set to 'scl'.
+        BigDecimal quotient;
+        int scl = checkScaleNonZero(preferredScale + yscale - xscale + mcp);
+        if (checkScaleNonZero((long) mcp + yscale) > xscale) {
+            int raise = checkScaleNonZero((long) mcp + yscale - xscale);
+            BigInteger rb = bigMultiplyPowerTen(xs,raise);
+            quotient = divideAndRound(rb, ys, scl, roundingMode, checkScaleNonZero(preferredScale));
+        } else {
+            int newScale = checkScaleNonZero((long) xscale - mcp);
+            int raise = checkScaleNonZero((long) newScale - yscale);
+            BigInteger rb = bigMultiplyPowerTen(ys,raise);
+            quotient = divideAndRound(xs, rb, scl, roundingMode,checkScaleNonZero(preferredScale));
+        }
+        // doRound, here, only affects 1000000000 case.
+        return doRound(quotient, mc);
+    }
+
+    /*
+     * performs divideAndRound for (dividend0*dividend1, divisor)
+     * returns null if quotient can't fit into long value;
+     */
+    private static BigDecimal multiplyDivideAndRound(long dividend0, long dividend1, long divisor, int scale, int roundingMode,
+                                                     int preferredScale) {
+        int qsign = Long.signum(dividend0)*Long.signum(dividend1)*Long.signum(divisor);
+        dividend0 = Math.abs(dividend0);
+        dividend1 = Math.abs(dividend1);
+        divisor = Math.abs(divisor);
+        // multiply dividend0 * dividend1
+        long d0_hi = dividend0 >>> 32;
+        long d0_lo = dividend0 & LONG_MASK;
+        long d1_hi = dividend1 >>> 32;
+        long d1_lo = dividend1 & LONG_MASK;
+        long product = d0_lo * d1_lo;
+        long d0 = product & LONG_MASK;
+        long d1 = product >>> 32;
+        product = d0_hi * d1_lo + d1;
+        d1 = product & LONG_MASK;
+        long d2 = product >>> 32;
+        product = d0_lo * d1_hi + d1;
+        d1 = product & LONG_MASK;
+        d2 += product >>> 32;
+        long d3 = d2>>>32;
+        d2 &= LONG_MASK;
+        product = d0_hi*d1_hi + d2;
+        d2 = product & LONG_MASK;
+        d3 = ((product>>>32) + d3) & LONG_MASK;
+        final long dividendHi = make64(d3,d2);
+        final long dividendLo = make64(d1,d0);
+        // divide
+        return divideAndRound128(dividendHi, dividendLo, divisor, qsign, scale, roundingMode, preferredScale);
+    }
+
+    private static final long DIV_NUM_BASE = (1L<<32); // Number base (32 bits).
+
+    /*
+     * divideAndRound 128-bit value by long divisor.
+     * returns null if quotient can't fit into long value;
+     * Specialized version of Knuth's division
+     */
+    private static BigDecimal divideAndRound128(final long dividendHi, final long dividendLo, long divisor, int sign,
+                                                int scale, int roundingMode, int preferredScale) {
+        if (dividendHi >= divisor) {
+            return null;
+        }
+        final int shift = Long.numberOfLeadingZeros(divisor);
+        divisor <<= shift;
+
+        final long v1 = divisor >>> 32;
+        final long v0 = divisor & LONG_MASK;
+
+        long q1, q0;
+        long r_tmp;
+
+        long tmp = dividendLo << shift;
+        long u1 = tmp >>> 32;
+        long u0 = tmp & LONG_MASK;
+
+        tmp = (dividendHi << shift) | (dividendLo >>> 64 - shift);
+        long u2 = tmp & LONG_MASK;
+        tmp = divWord(tmp,v1);
+        q1 = tmp & LONG_MASK;
+        r_tmp = tmp >>> 32;
+        while(q1 >= DIV_NUM_BASE || unsignedLongCompare(q1*v0, make64(r_tmp, u1))) {
+            q1--;
+            r_tmp += v1;
+            if (r_tmp >= DIV_NUM_BASE)
+                break;
+        }
+        tmp = mulsub(u2,u1,v1,v0,q1);
+        u1 = tmp & LONG_MASK;
+        tmp = divWord(tmp,v1);
+        q0 = tmp & LONG_MASK;
+        r_tmp = tmp >>> 32;
+        while(q0 >= DIV_NUM_BASE || unsignedLongCompare(q0*v0,make64(r_tmp,u0))) {
+            q0--;
+            r_tmp += v1;
+            if (r_tmp >= DIV_NUM_BASE)
+                break;
+        }
+        if((int)q1 < 0) {
+            // result (which is positive and unsigned here)
+            // can't fit into long due to sign bit is used for value
+            MutableBigInteger mq = new MutableBigInteger(new int[]{(int)q1, (int)q0});
+            if (roundingMode == ROUND_DOWN && scale == preferredScale) {
+                return mq.toBigDecimal(sign, scale);
+            }
+            long r = mulsub(u1, u0, v1, v0, q0) >>> shift;
+            if (r != 0) {
+                if(needIncrement(divisor >>> shift, roundingMode, sign, mq, r)){
+                    mq.add(MutableBigInteger.ONE);
+                }
+                return mq.toBigDecimal(sign, scale);
+            } else {
+                if (preferredScale != scale) {
+                    BigInteger intVal =  mq.toBigInteger(sign);
+                    return createAndStripZerosToMatchScale(intVal,scale, preferredScale);
+                } else {
+                    return mq.toBigDecimal(sign, scale);
+                }
+            }
+        }
+        long q = make64(q1,q0);
+        q*=sign;
+        if (roundingMode == ROUND_DOWN && scale == preferredScale)
+            return valueOf(q, scale);
+        long r = mulsub(u1, u0, v1, v0, q0) >>> shift;
+        if (r != 0) {
+            boolean increment = needIncrement(divisor >>> shift, roundingMode, sign, q, r);
+            return valueOf((increment ? q + sign : q), scale);
+        } else {
+            if (preferredScale != scale) {
+                return createAndStripZerosToMatchScale(q, scale, preferredScale);
+            } else {
+                return valueOf(q, scale);
+            }
+        }
+    }
+
+    /*
+     * calculate divideAndRound for ldividend*10^raise / divisor
+     * when abs(dividend)==abs(divisor);
+     */
+    private static BigDecimal roundedTenPower(int qsign, int raise, int scale, int preferredScale) {
+        if (scale > preferredScale) {
+            int diff = scale - preferredScale;
+            if(diff < raise) {
+                return scaledTenPow(raise - diff, qsign, preferredScale);
+            } else {
+                return valueOf(qsign,scale-raise);
+            }
+        } else {
+            return scaledTenPow(raise, qsign, scale);
+        }
+    }
+
+    static BigDecimal scaledTenPow(int n, int sign, int scale) {
+        if (n < LONG_TEN_POWERS_TABLE.length)
+            return valueOf(sign*LONG_TEN_POWERS_TABLE[n],scale);
+        else {
+            BigInteger unscaledVal = bigTenToThe(n);
+            if(sign==-1) {
+                unscaledVal = unscaledVal.negate();
+            }
+            return new BigDecimal(unscaledVal, INFLATED, scale, n+1);
+        }
+    }
+
+    private static long divWord(long n, long dLong) {
+        long r;
+        long q;
+        if (dLong == 1) {
+            q = (int)n;
+            return (q & LONG_MASK);
+        }
+        // Approximate the quotient and remainder
+        q = (n >>> 1) / (dLong >>> 1);
+        r = n - q*dLong;
+
+        // Correct the approximation
+        while (r < 0) {
+            r += dLong;
+            q--;
+        }
+        while (r >= dLong) {
+            r -= dLong;
+            q++;
+        }
+        // n - q*dlong == r && 0 <= r <dLong, hence we're done.
+        return (r << 32) | (q & LONG_MASK);
+    }
+
+    private static long make64(long hi, long lo) {
+        return hi<<32 | lo;
+    }
+
+    private static long mulsub(long u1, long u0, final long v1, final long v0, long q0) {
+        long tmp = u0 - q0*v0;
+        return make64(u1 + (tmp>>>32) - q0*v1,tmp & LONG_MASK);
+    }
+
+    private static boolean unsignedLongCompare(long one, long two) {
+        return (one+Long.MIN_VALUE) > (two+Long.MIN_VALUE);
+    }
+
+    private static boolean unsignedLongCompareEq(long one, long two) {
+        return (one+Long.MIN_VALUE) >= (two+Long.MIN_VALUE);
+    }
+
+
+    // Compare Normalize dividend & divisor so that both fall into [0.1, 0.999...]
+    private static int compareMagnitudeNormalized(long xs, int xscale, long ys, int yscale) {
+        // assert xs!=0 && ys!=0
+        int sdiff = xscale - yscale;
+        if (sdiff != 0) {
+            if (sdiff < 0) {
+                xs = longMultiplyPowerTen(xs, -sdiff);
+            } else { // sdiff > 0
+                ys = longMultiplyPowerTen(ys, sdiff);
+            }
+        }
+        if (xs != INFLATED)
+            return (ys != INFLATED) ? longCompareMagnitude(xs, ys) : -1;
+        else
+            return 1;
+    }
+
+    // Compare Normalize dividend & divisor so that both fall into [0.1, 0.999...]
+    private static int compareMagnitudeNormalized(long xs, int xscale, BigInteger ys, int yscale) {
+        // assert "ys can't be represented as long"
+        if (xs == 0)
+            return -1;
+        int sdiff = xscale - yscale;
+        if (sdiff < 0) {
+            if (longMultiplyPowerTen(xs, -sdiff) == INFLATED ) {
+                return bigMultiplyPowerTen(xs, -sdiff).compareMagnitude(ys);
+            }
+        }
+        return -1;
+    }
+
+    // Compare Normalize dividend & divisor so that both fall into [0.1, 0.999...]
+    private static int compareMagnitudeNormalized(BigInteger xs, int xscale, BigInteger ys, int yscale) {
+        int sdiff = xscale - yscale;
+        if (sdiff < 0) {
+            return bigMultiplyPowerTen(xs, -sdiff).compareMagnitude(ys);
+        } else { // sdiff >= 0
+            return xs.compareMagnitude(bigMultiplyPowerTen(ys, sdiff));
+        }
+    }
+
+    private static long multiply(long x, long y){
+                long product = x * y;
+        long ax = Math.abs(x);
+        long ay = Math.abs(y);
+        if (((ax | ay) >>> 31 == 0) || (y == 0) || (product / y == x)){
+                        return product;
+                }
+        return INFLATED;
+    }
+
+    private static BigDecimal multiply(long x, long y, int scale) {
+        long product = multiply(x, y);
+        if(product!=INFLATED) {
+            return valueOf(product,scale);
+        }
+        return new BigDecimal(BigInteger.valueOf(x).multiply(y),INFLATED,scale,0);
+    }
+
+    private static BigDecimal multiply(long x, BigInteger y, int scale) {
+        if(x==0) {
+            return zeroValueOf(scale);
+        }
+        return new BigDecimal(y.multiply(x),INFLATED,scale,0);
+    }
+
+    private static BigDecimal multiply(BigInteger x, BigInteger y, int scale) {
+        return new BigDecimal(x.multiply(y),INFLATED,scale,0);
+    }
+
+    /**
+     * Multiplies two long values and rounds according {@code MathContext}
+     */
+    private static BigDecimal multiplyAndRound(long x, long y, int scale, MathContext mc) {
+        long product = multiply(x, y);
+        if(product!=INFLATED) {
+            return doRound(product, scale, mc);
+        }
+        // attempt to do it in 128 bits
+        int rsign = 1;
+        if(x < 0) {
+            x = -x;
+            rsign = -1;
+        }
+        if(y < 0) {
+            y = -y;
+            rsign *= -1;
+        }
+        // multiply dividend0 * dividend1
+        long m0_hi = x >>> 32;
+        long m0_lo = x & LONG_MASK;
+        long m1_hi = y >>> 32;
+        long m1_lo = y & LONG_MASK;
+        product = m0_lo * m1_lo;
+        long m0 = product & LONG_MASK;
+        long m1 = product >>> 32;
+        product = m0_hi * m1_lo + m1;
+        m1 = product & LONG_MASK;
+        long m2 = product >>> 32;
+        product = m0_lo * m1_hi + m1;
+        m1 = product & LONG_MASK;
+        m2 += product >>> 32;
+        long m3 = m2>>>32;
+        m2 &= LONG_MASK;
+        product = m0_hi*m1_hi + m2;
+        m2 = product & LONG_MASK;
+        m3 = ((product>>>32) + m3) & LONG_MASK;
+        final long mHi = make64(m3,m2);
+        final long mLo = make64(m1,m0);
+        BigDecimal res = doRound128(mHi, mLo, rsign, scale, mc);
+        if(res!=null) {
+            return res;
+        }
+        res = new BigDecimal(BigInteger.valueOf(x).multiply(y*rsign), INFLATED, scale, 0);
+        return doRound(res,mc);
+    }
+
+    private static BigDecimal multiplyAndRound(long x, BigInteger y, int scale, MathContext mc) {
+        if(x==0) {
+            return zeroValueOf(scale);
+        }
+        return doRound(y.multiply(x), scale, mc);
+    }
+
+    private static BigDecimal multiplyAndRound(BigInteger x, BigInteger y, int scale, MathContext mc) {
+        return doRound(x.multiply(y), scale, mc);
+    }
+
+    /**
+     * rounds 128-bit value according {@code MathContext}
+     * returns null if result can't be repsented as compact BigDecimal.
+     */
+    private static BigDecimal doRound128(long hi, long lo, int sign, int scale, MathContext mc) {
+        int mcp = mc.precision;
+        int drop;
+        BigDecimal res = null;
+        if(((drop = precision(hi, lo) - mcp) > 0)&&(drop<LONG_TEN_POWERS_TABLE.length)) {
+            scale = checkScaleNonZero((long)scale - drop);
+            res = divideAndRound128(hi, lo, LONG_TEN_POWERS_TABLE[drop], sign, scale, mc.roundingMode.oldMode, scale);
+        }
+        if(res!=null) {
+            return doRound(res,mc);
+        }
+        return null;
+    }
+
+    private static final long[][] LONGLONG_TEN_POWERS_TABLE = {
+        {   0L, 0x8AC7230489E80000L },  //10^19
+        {       0x5L, 0x6bc75e2d63100000L },  //10^20
+        {       0x36L, 0x35c9adc5dea00000L },  //10^21
+        {       0x21eL, 0x19e0c9bab2400000L  },  //10^22
+        {       0x152dL, 0x02c7e14af6800000L  },  //10^23
+        {       0xd3c2L, 0x1bcecceda1000000L  },  //10^24
+        {       0x84595L, 0x161401484a000000L  },  //10^25
+        {       0x52b7d2L, 0xdcc80cd2e4000000L  },  //10^26
+        {       0x33b2e3cL, 0x9fd0803ce8000000L  },  //10^27
+        {       0x204fce5eL, 0x3e25026110000000L  },  //10^28
+        {       0x1431e0faeL, 0x6d7217caa0000000L  },  //10^29
+        {       0xc9f2c9cd0L, 0x4674edea40000000L  },  //10^30
+        {       0x7e37be2022L, 0xc0914b2680000000L  },  //10^31
+        {       0x4ee2d6d415bL, 0x85acef8100000000L  },  //10^32
+        {       0x314dc6448d93L, 0x38c15b0a00000000L  },  //10^33
+        {       0x1ed09bead87c0L, 0x378d8e6400000000L  },  //10^34
+        {       0x13426172c74d82L, 0x2b878fe800000000L  },  //10^35
+        {       0xc097ce7bc90715L, 0xb34b9f1000000000L  },  //10^36
+        {       0x785ee10d5da46d9L, 0x00f436a000000000L  },  //10^37
+        {       0x4b3b4ca85a86c47aL, 0x098a224000000000L  },  //10^38
+    };
+
+    /*
+     * returns precision of 128-bit value
+     */
+    private static int precision(long hi, long lo){
+        if(hi==0) {
+            if(lo>=0) {
+                return longDigitLength(lo);
+            }
+            return (unsignedLongCompareEq(lo, LONGLONG_TEN_POWERS_TABLE[0][1])) ? 20 : 19;
+            // 0x8AC7230489E80000L  = unsigned 2^19
+        }
+        int r = ((128 - Long.numberOfLeadingZeros(hi) + 1) * 1233) >>> 12;
+        int idx = r-19;
+        return (idx >= LONGLONG_TEN_POWERS_TABLE.length || longLongCompareMagnitude(hi, lo,
+                                                                                    LONGLONG_TEN_POWERS_TABLE[idx][0], LONGLONG_TEN_POWERS_TABLE[idx][1])) ? r : r + 1;
+    }
+
+    /*
+     * returns true if 128 bit number <hi0,lo0> is less then <hi1,lo1>
+     * hi0 & hi1 should be non-negative
+     */
+    private static boolean longLongCompareMagnitude(long hi0, long lo0, long hi1, long lo1) {
+        if(hi0!=hi1) {
+            return hi0<hi1;
+        }
+        return (lo0+Long.MIN_VALUE) <(lo1+Long.MIN_VALUE);
+    }
+
+    private static BigDecimal divide(long dividend, int dividendScale, long divisor, int divisorScale, int scale, int roundingMode) {
+        if (checkScale(dividend,(long)scale + divisorScale) > dividendScale) {
+            int newScale = scale + divisorScale;
+            int raise = newScale - dividendScale;
+            if(raise<LONG_TEN_POWERS_TABLE.length) {
+                long xs = dividend;
+                if ((xs = longMultiplyPowerTen(xs, raise)) != INFLATED) {
+                    return divideAndRound(xs, divisor, scale, roundingMode, scale);
+                }
+                BigDecimal q = multiplyDivideAndRound(LONG_TEN_POWERS_TABLE[raise], dividend, divisor, scale, roundingMode, scale);
+                if(q!=null) {
+                    return q;
+                }
+            }
+            BigInteger scaledDividend = bigMultiplyPowerTen(dividend, raise);
+            return divideAndRound(scaledDividend, divisor, scale, roundingMode, scale);
+        } else {
+            int newScale = checkScale(divisor,(long)dividendScale - scale);
+            int raise = newScale - divisorScale;
+            if(raise<LONG_TEN_POWERS_TABLE.length) {
+                long ys = divisor;
+                if ((ys = longMultiplyPowerTen(ys, raise)) != INFLATED) {
+                    return divideAndRound(dividend, ys, scale, roundingMode, scale);
+                }
+            }
+            BigInteger scaledDivisor = bigMultiplyPowerTen(divisor, raise);
+            return divideAndRound(BigInteger.valueOf(dividend), scaledDivisor, scale, roundingMode, scale);
+        }
+    }
+
+    private static BigDecimal divide(BigInteger dividend, int dividendScale, long divisor, int divisorScale, int scale, int roundingMode) {
+        if (checkScale(dividend,(long)scale + divisorScale) > dividendScale) {
+            int newScale = scale + divisorScale;
+            int raise = newScale - dividendScale;
+            BigInteger scaledDividend = bigMultiplyPowerTen(dividend, raise);
+            return divideAndRound(scaledDividend, divisor, scale, roundingMode, scale);
+        } else {
+            int newScale = checkScale(divisor,(long)dividendScale - scale);
+            int raise = newScale - divisorScale;
+            if(raise<LONG_TEN_POWERS_TABLE.length) {
+                long ys = divisor;
+                if ((ys = longMultiplyPowerTen(ys, raise)) != INFLATED) {
+                    return divideAndRound(dividend, ys, scale, roundingMode, scale);
+                }
+            }
+            BigInteger scaledDivisor = bigMultiplyPowerTen(divisor, raise);
+            return divideAndRound(dividend, scaledDivisor, scale, roundingMode, scale);
+        }
+    }
+
+    private static BigDecimal divide(long dividend, int dividendScale, BigInteger divisor, int divisorScale, int scale, int roundingMode) {
+        if (checkScale(dividend,(long)scale + divisorScale) > dividendScale) {
+            int newScale = scale + divisorScale;
+            int raise = newScale - dividendScale;
+            BigInteger scaledDividend = bigMultiplyPowerTen(dividend, raise);
+            return divideAndRound(scaledDividend, divisor, scale, roundingMode, scale);
+        } else {
+            int newScale = checkScale(divisor,(long)dividendScale - scale);
+            int raise = newScale - divisorScale;
+            BigInteger scaledDivisor = bigMultiplyPowerTen(divisor, raise);
+            return divideAndRound(BigInteger.valueOf(dividend), scaledDivisor, scale, roundingMode, scale);
+        }
+    }
+
+    private static BigDecimal divide(BigInteger dividend, int dividendScale, BigInteger divisor, int divisorScale, int scale, int roundingMode) {
+        if (checkScale(dividend,(long)scale + divisorScale) > dividendScale) {
+            int newScale = scale + divisorScale;
+            int raise = newScale - dividendScale;
+            BigInteger scaledDividend = bigMultiplyPowerTen(dividend, raise);
+            return divideAndRound(scaledDividend, divisor, scale, roundingMode, scale);
+        } else {
+            int newScale = checkScale(divisor,(long)dividendScale - scale);
+            int raise = newScale - divisorScale;
+            BigInteger scaledDivisor = bigMultiplyPowerTen(divisor, raise);
+            return divideAndRound(dividend, scaledDivisor, scale, roundingMode, scale);
+        }
+    }
+
 }
diff --git a/jdk/src/share/classes/java/math/BigInteger.java b/jdk/src/share/classes/java/math/BigInteger.java
index 4fcce19..a4988de 100644
--- a/jdk/src/share/classes/java/math/BigInteger.java
+++ b/jdk/src/share/classes/java/math/BigInteger.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@ package java.math;
 
 import java.util.Random;
 import java.io.*;
+import java.util.Arrays;
 
 /**
  * Immutable arbitrary-precision integers.  All operations behave as if
@@ -353,27 +354,17 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
         mag = trustedStripLeadingZeroInts(magnitude);
     }
 
-    // Constructs a new BigInteger using a char array with radix=10
-    BigInteger(char[] val) {
+    /*
+     * Constructs a new BigInteger using a char array with radix=10.
+     * Sign is precalculated outside and not allowed in the val.
+     */
+    BigInteger(char[] val, int sign, int len) {
         int cursor = 0, numDigits;
-        int len = val.length;
-
-        // Check for leading minus sign
-        int sign = 1;
-        if (val[0] == '-') {
-            if (len == 1)
-                throw new NumberFormatException("Zero length BigInteger");
-            sign = -1;
-            cursor = 1;
-        } else if (val[0] == '+') {
-            if (len == 1)
-                throw new NumberFormatException("Zero length BigInteger");
-            cursor = 1;
-        }
 
         // Skip leading zeros and compute number of digits in magnitude
-        while (cursor < len && Character.digit(val[cursor], 10) == 0)
+        while (cursor < len && Character.digit(val[cursor], 10) == 0) {
             cursor++;
+        }
         if (cursor == len) {
             signum = 0;
             mag = ZERO.mag;
@@ -382,7 +373,6 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
 
         numDigits = len - cursor;
         signum = sign;
-
         // Pre-allocate array of expected size
         int numWords;
         if (len < 10) {
@@ -1058,6 +1048,73 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
     }
 
     /**
+     * Package private methods used by BigDecimal code to add a BigInteger
+     * with a long. Assumes val is not equal to INFLATED.
+     */
+    BigInteger add(long val) {
+        if (val == 0)
+            return this;
+        if (signum == 0)
+            return valueOf(val);
+        if (Long.signum(val) == signum)
+            return new BigInteger(add(mag, Math.abs(val)), signum);
+        int cmp = compareMagnitude(val);
+        if (cmp == 0)
+            return ZERO;
+        int[] resultMag = (cmp > 0 ? subtract(mag, Math.abs(val)) : subtract(Math.abs(val), mag));
+        resultMag = trustedStripLeadingZeroInts(resultMag);
+        return new BigInteger(resultMag, cmp == signum ? 1 : -1);
+    }
+
+    /**
+     * Adds the contents of the int array x and long value val. This
+     * method allocates a new int array to hold the answer and returns
+     * a reference to that array.  Assumes x.length > 0 and val is
+     * non-negative
+     */
+    private static int[] add(int[] x, long val) {
+        int[] y;
+        long sum = 0;
+        int xIndex = x.length;
+        int[] result;
+        int highWord = (int)(val >>> 32);
+        if (highWord==0) {
+            result = new int[xIndex];
+            sum = (x[--xIndex] & LONG_MASK) + val;
+            result[xIndex] = (int)sum;
+        } else {
+            if (xIndex == 1) {
+                result = new int[2];
+                sum = val  + (x[0] & LONG_MASK);
+                result[1] = (int)sum;
+                result[0] = (int)(sum >>> 32);
+                return result;
+            } else {
+                result = new int[xIndex];
+                sum = (x[--xIndex] & LONG_MASK) + (val & LONG_MASK);
+                result[xIndex] = (int)sum;
+                sum = (x[--xIndex] & LONG_MASK) + (highWord & LONG_MASK) + (sum >>> 32);
+                result[xIndex] = (int)sum;
+            }
+        }
+        // Copy remainder of longer number while carry propagation is required
+        boolean carry = (sum >>> 32 != 0);
+        while (xIndex > 0 && carry)
+            carry = ((result[--xIndex] = x[xIndex] + 1) == 0);
+        // Copy remainder of longer number
+        while (xIndex > 0)
+            result[--xIndex] = x[xIndex];
+        // Grow result if necessary
+        if (carry) {
+            int bigger[] = new int[result.length + 1];
+            System.arraycopy(result, 0, bigger, 1, result.length);
+            bigger[0] = 0x01;
+            return bigger;
+        }
+        return result;
+    }
+
+    /**
      * Adds the contents of the int arrays x and y. This method allocates
      * a new int array to hold the answer and returns a reference to that
      * array.
@@ -1074,14 +1131,17 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
         int yIndex = y.length;
         int result[] = new int[xIndex];
         long sum = 0;
-
-        // Add common parts of both numbers
-        while(yIndex > 0) {
-            sum = (x[--xIndex] & LONG_MASK) +
-                  (y[--yIndex] & LONG_MASK) + (sum >>> 32);
+        if(yIndex==1) {
+            sum = (x[--xIndex] & LONG_MASK) + (y[0] & LONG_MASK) ;
             result[xIndex] = (int)sum;
+        } else {
+            // Add common parts of both numbers
+            while(yIndex > 0) {
+                sum = (x[--xIndex] & LONG_MASK) +
+                      (y[--yIndex] & LONG_MASK) + (sum >>> 32);
+                result[xIndex] = (int)sum;
+            }
         }
-
         // Copy remainder of longer number while carry propagation is required
         boolean carry = (sum >>> 32 != 0);
         while (xIndex > 0 && carry)
@@ -1101,6 +1161,71 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
         return result;
     }
 
+    private static int[] subtract(long val, int[] little) {
+        int highWord = (int)(val >>> 32);
+        if (highWord==0) {
+            int result[] = new int[1];
+            result[0] = (int)(val - (little[0] & LONG_MASK));
+            return result;
+        } else {
+            int result[] = new int[2];
+            if(little.length==1) {
+                long difference = ((int)val & LONG_MASK) - (little[0] & LONG_MASK);
+                result[1] = (int)difference;
+                // Subtract remainder of longer number while borrow propagates
+                boolean borrow = (difference >> 32 != 0);
+                if(borrow) {
+                    result[0] = highWord - 1;
+                } else {        // Copy remainder of longer number
+                    result[0] = highWord;
+                }
+                return result;
+            } else { // little.length==2
+                long difference = ((int)val & LONG_MASK) - (little[1] & LONG_MASK);
+                result[1] = (int)difference;
+                difference = (highWord & LONG_MASK) - (little[0] & LONG_MASK) + (difference >> 32);
+                result[0] = (int)difference;
+                return result;
+            }
+        }
+    }
+
+    /**
+     * Subtracts the contents of the second argument (val) from the
+     * first (big).  The first int array (big) must represent a larger number
+     * than the second.  This method allocates the space necessary to hold the
+     * answer.
+     * assumes val >= 0
+     */
+    private static int[] subtract(int[] big, long val) {
+        int highWord = (int)(val >>> 32);
+        int bigIndex = big.length;
+        int result[] = new int[bigIndex];
+        long difference = 0;
+
+        if (highWord==0) {
+            difference = (big[--bigIndex] & LONG_MASK) - val;
+            result[bigIndex] = (int)difference;
+        } else {
+            difference = (big[--bigIndex] & LONG_MASK) - (val & LONG_MASK);
+            result[bigIndex] = (int)difference;
+            difference = (big[--bigIndex] & LONG_MASK) - (highWord & LONG_MASK) + (difference >> 32);
+            result[bigIndex] = (int)difference;
+        }
+
+
+        // Subtract remainder of longer number while borrow propagates
+        boolean borrow = (difference >> 32 != 0);
+        while (bigIndex > 0 && borrow)
+            borrow = ((result[--bigIndex] = big[bigIndex] - 1) == -1);
+
+        // Copy remainder of longer number
+        while (bigIndex > 0)
+            result[--bigIndex] = big[bigIndex];
+
+        return result;
+    }
+
     /**
      * Returns a BigInteger whose value is {@code (this - val)}.
      *
@@ -1165,11 +1290,39 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
     public BigInteger multiply(BigInteger val) {
         if (val.signum == 0 || signum == 0)
             return ZERO;
-
+        int resultSign = signum == val.signum ? 1 : -1;
+        if (val.mag.length == 1) {
+            return  multiplyByInt(mag,val.mag[0], resultSign);
+        }
+        if(mag.length == 1) {
+            return multiplyByInt(val.mag,mag[0], resultSign);
+        }
         int[] result = multiplyToLen(mag, mag.length,
                                      val.mag, val.mag.length, null);
         result = trustedStripLeadingZeroInts(result);
-        return new BigInteger(result, signum == val.signum ? 1 : -1);
+        return new BigInteger(result, resultSign);
+    }
+
+    private static BigInteger multiplyByInt(int[] x, int y, int sign) {
+        if(Integer.bitCount(y)==1) {
+            return new BigInteger(shiftLeft(x,Integer.numberOfTrailingZeros(y)), sign);
+        }
+        int xlen = x.length;
+        int[] rmag =  new int[xlen + 1];
+        long carry = 0;
+        long yl = y & LONG_MASK;
+        int rstart = rmag.length - 1;
+        for (int i = xlen - 1; i >= 0; i--) {
+            long product = (x[i] & LONG_MASK) * yl + carry;
+            rmag[rstart--] = (int)product;
+            carry = product >>> 32;
+        }
+        if (carry == 0L) {
+            rmag = java.util.Arrays.copyOfRange(rmag, 1, rmag.length);
+        } else {
+            rmag[rstart] = (int)carry;
+        }
+        return new BigInteger(rmag, sign);
     }
 
     /**
@@ -1339,8 +1492,8 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
                           a = new MutableBigInteger(this.mag),
                           b = new MutableBigInteger(val.mag);
 
-        a.divide(b, q);
-        return q.toBigInteger(this.signum == val.signum ? 1 : -1);
+        a.divide(b, q, false);
+        return q.toBigInteger(this.signum * val.signum);
     }
 
     /**
@@ -1460,14 +1613,12 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
         } else { // Array must be resized
             if (nBits <= (32-bitsInHighWord)) {
                 int result[] = new int[nInts+len];
-                for (int i=0; i<len; i++)
-                    result[i] = a[i];
+                System.arraycopy(a, 0, result, 0, len);
                 primitiveLeftShift(result, result.length, nBits);
                 return result;
             } else {
                 int result[] = new int[nInts+len+1];
-                for (int i=0; i<len; i++)
-                    result[i] = a[i];
+                System.arraycopy(a, 0, result, 0, len);
                 primitiveRightShift(result, result.length, 32 - nBits);
                 return result;
             }
@@ -1755,9 +1906,7 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
         b = montReduce(b, mod, modLen, inv);
 
         // Set t to high half of b
-        int[] t = new int[modLen];
-        for(int i=0; i<modLen; i++)
-            t[i] = b[i];
+        int[] t = Arrays.copyOf(b, modLen);
 
         // Fill in the table with odd powers of the base
         for (int i=1; i<tblmask; i++) {
@@ -1854,14 +2003,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
 
         // Convert result out of Montgomery form and return
         int[] t2 = new int[2*modLen];
-        for(int i=0; i<modLen; i++)
-            t2[i+modLen] = b[i];
+        System.arraycopy(b, 0, t2, modLen, modLen);
 
         b = montReduce(t2, mod, modLen, inv);
 
-        t2 = new int[modLen];
-        for(int i=0; i<modLen; i++)
-            t2[i] = b[i];
+        t2 = Arrays.copyOf(b, modLen);
 
         return new BigInteger(1, t2);
     }
@@ -2002,8 +2148,7 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
         // Copy remaining ints of mag
         int numInts = (p + 31) >>> 5;
         int[] mag = new int[numInts];
-        for (int i=0; i<numInts; i++)
-            mag[i] = this.mag[i + (this.mag.length - numInts)];
+        System.arraycopy(this.mag, (this.mag.length - numInts), mag, 0, numInts);
 
         // Mask out any excess bits
         int excessBits = (numInts << 5) - p;
@@ -2069,7 +2214,12 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
                 return shiftRight(-n);
             }
         }
+        int[] newMag = shiftLeft(mag, n);
+
+        return new BigInteger(newMag, signum);
+    }
 
+    private static int[] shiftLeft(int[] mag, int n) {
         int nInts = n >>> 5;
         int nBits = n & 0x1f;
         int magLen = mag.length;
@@ -2077,8 +2227,7 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
 
         if (nBits == 0) {
             newMag = new int[magLen + nInts];
-            for (int i=0; i<magLen; i++)
-                newMag[i] = mag[i];
+            System.arraycopy(mag, 0, newMag, 0, magLen);
         } else {
             int i = 0;
             int nBits2 = 32 - nBits;
@@ -2094,8 +2243,7 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
                 newMag[i++] = mag[j++] << nBits | mag[j] >>> nBits2;
             newMag[i] = mag[j] << nBits;
         }
-
-        return new BigInteger(newMag, signum);
+        return newMag;
     }
 
     /**
@@ -2132,9 +2280,7 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
 
         if (nBits == 0) {
             int newMagLen = magLen - nInts;
-            newMag = new int[newMagLen];
-            for (int i=0; i<newMagLen; i++)
-                newMag[i] = mag[i];
+            newMag = Arrays.copyOf(mag, newMagLen);
         } else {
             int i = 0;
             int highBits = mag[0] >>> nBits;
@@ -2405,7 +2551,7 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
                  if (signum < 0) {
                      // Check if magnitude is a power of two
                      boolean pow2 = (Integer.bitCount(mag[0]) == 1);
-                     for(int i=1; i< len && pow2; i++)
+                     for (int i=1; i< len && pow2; i++)
                          pow2 = (mag[i] == 0);
 
                      n = (pow2 ? magBitLength -1 : magBitLength);
@@ -2530,6 +2676,49 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
     }
 
     /**
+     * Version of compareMagnitude that compares magnitude with long value.
+     * val can't be Long.MIN_VALUE.
+     */
+    final int compareMagnitude(long val) {
+        assert val != Long.MIN_VALUE;
+        int[] m1 = mag;
+        int len = m1.length;
+        if(len > 2) {
+            return 1;
+        }
+        if (val < 0) {
+            val = -val;
+        }
+        int highWord = (int)(val >>> 32);
+        if (highWord==0) {
+            if (len < 1)
+                return -1;
+            if (len > 1)
+                return 1;
+            int a = m1[0];
+            int b = (int)val;
+            if (a != b) {
+                return ((a & LONG_MASK) < (b & LONG_MASK))? -1 : 1;
+            }
+            return 0;
+        } else {
+            if (len < 2)
+                return -1;
+            int a = m1[0];
+            int b = highWord;
+            if (a != b) {
+                return ((a & LONG_MASK) < (b & LONG_MASK))? -1 : 1;
+            }
+            a = m1[1];
+            b = (int)val;
+            if (a != b) {
+                return ((a & LONG_MASK) < (b & LONG_MASK))? -1 : 1;
+            }
+            return 0;
+        }
+    }
+
+    /**
      * Compares this BigInteger with the specified Object for equality.
      *
      * @param  x Object to which this BigInteger is to be compared.
@@ -2730,6 +2919,7 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
      * result with the opposite sign.
      *
      * @return this BigInteger converted to an {@code int}.
+     * @see #intValueExact()
      */
     public int intValue() {
         int result = 0;
@@ -2750,6 +2940,7 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
      * result with the opposite sign.
      *
      * @return this BigInteger converted to a {@code long}.
+     * @see #longValueExact()
      */
     public long longValue() {
         long result = 0;
@@ -3114,25 +3305,35 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
         }
 
         // Commit final fields via Unsafe
-        unsafe.putIntVolatile(this, signumOffset, sign);
+        UnsafeHolder.putSign(this, sign);
 
         // Calculate mag field from magnitude and discard magnitude
-        unsafe.putObjectVolatile(this, magOffset,
-                                 stripLeadingZeroBytes(magnitude));
+        UnsafeHolder.putMag(this, stripLeadingZeroBytes(magnitude));
     }
 
     // Support for resetting final fields while deserializing
-    private static final sun.misc.Unsafe unsafe = sun.misc.Unsafe.getUnsafe();
-    private static final long signumOffset;
-    private static final long magOffset;
-    static {
-        try {
-            signumOffset = unsafe.objectFieldOffset
-                (BigInteger.class.getDeclaredField("signum"));
-            magOffset = unsafe.objectFieldOffset
-                (BigInteger.class.getDeclaredField("mag"));
-        } catch (Exception ex) {
-            throw new Error(ex);
+    private static class UnsafeHolder {
+        private static final sun.misc.Unsafe unsafe;
+        private static final long signumOffset;
+        private static final long magOffset;
+        static {
+            try {
+                unsafe = sun.misc.Unsafe.getUnsafe();
+                signumOffset = unsafe.objectFieldOffset
+                    (BigInteger.class.getDeclaredField("signum"));
+                magOffset = unsafe.objectFieldOffset
+                    (BigInteger.class.getDeclaredField("mag"));
+            } catch (Exception ex) {
+                throw new ExceptionInInitializerError(ex);
+            }
+        }
+
+        static void putSign(BigInteger bi, int sign) {
+            unsafe.putIntVolatile(bi, signumOffset, sign);
+        }
+
+        static void putMag(BigInteger bi, int[] magnitude) {
+            unsafe.putObjectVolatile(bi, magOffset, magnitude);
         }
     }
 
@@ -3183,4 +3384,84 @@ public class BigInteger extends Number implements Comparable<BigInteger> {
         }
         return result;
     }
+
+    /**
+     * Converts this {@code BigInteger} to a {@code long}, checking
+     * for lost information.  If the value of this {@code BigInteger}
+     * is out of the range of the {@code long} type, then an
+     * {@code ArithmeticException} is thrown.
+     *
+     * @return this {@code BigInteger} converted to a {@code long}.
+     * @throws ArithmeticException if the value of {@code this} will
+     * not exactly fit in a {@code long}.
+     * @see BigInteger#longValue
+     * @since  1.8
+     */
+    public long longValueExact() {
+        if (mag.length <= 2 && bitLength() <= 63)
+            return longValue();
+        else
+            throw new ArithmeticException("BigInteger out of long range");
+    }
+
+    /**
+     * Converts this {@code BigInteger} to an {@code int}, checking
+     * for lost information.  If the value of this {@code BigInteger}
+     * is out of the range of the {@code int} type, then an
+     * {@code ArithmeticException} is thrown.
+     *
+     * @return this {@code BigInteger} converted to an {@code int}.
+     * @throws ArithmeticException if the value of {@code this} will
+     * not exactly fit in a {@code int}.
+     * @see BigInteger#intValue
+     * @since  1.8
+     */
+    public int intValueExact() {
+        if (mag.length <= 1 && bitLength() <= 31)
+            return intValue();
+        else
+            throw new ArithmeticException("BigInteger out of int range");
+    }
+
+    /**
+     * Converts this {@code BigInteger} to a {@code short}, checking
+     * for lost information.  If the value of this {@code BigInteger}
+     * is out of the range of the {@code short} type, then an
+     * {@code ArithmeticException} is thrown.
+     *
+     * @return this {@code BigInteger} converted to a {@code short}.
+     * @throws ArithmeticException if the value of {@code this} will
+     * not exactly fit in a {@code short}.
+     * @see BigInteger#shortValue
+     * @since  1.8
+     */
+    public short shortValueExact() {
+        if (mag.length <= 1 && bitLength() <= 31) {
+            int value = intValue();
+            if (value >= Short.MIN_VALUE && value <= Short.MAX_VALUE)
+                return shortValue();
+        }
+        throw new ArithmeticException("BigInteger out of short range");
+    }
+
+    /**
+     * Converts this {@code BigInteger} to a {@code byte}, checking
+     * for lost information.  If the value of this {@code BigInteger}
+     * is out of the range of the {@code byte} type, then an
+     * {@code ArithmeticException} is thrown.
+     *
+     * @return this {@code BigInteger} converted to a {@code byte}.
+     * @throws ArithmeticException if the value of {@code this} will
+     * not exactly fit in a {@code byte}.
+     * @see BigInteger#byteValue
+     * @since  1.8
+     */
+    public byte byteValueExact() {
+        if (mag.length <= 1 && bitLength() <= 31) {
+            int value = intValue();
+            if (value >= Byte.MIN_VALUE && value <= Byte.MAX_VALUE)
+                return byteValue();
+        }
+        throw new ArithmeticException("BigInteger out of byte range");
+    }
 }
diff --git a/jdk/src/share/classes/java/math/MutableBigInteger.java b/jdk/src/share/classes/java/math/MutableBigInteger.java
index 0cb1544..363e5d4 100644
--- a/jdk/src/share/classes/java/math/MutableBigInteger.java
+++ b/jdk/src/share/classes/java/math/MutableBigInteger.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -160,7 +160,7 @@ class MutableBigInteger {
      */
     BigDecimal toBigDecimal(int sign, int scale) {
         if (intLen == 0 || sign == 0)
-            return BigDecimal.valueOf(0, scale);
+            return BigDecimal.zeroValueOf(scale);
         int[] mag = getMagnitudeArray();
         int len = mag.length;
         int d = mag[0];
@@ -171,7 +171,28 @@ class MutableBigInteger {
         long v = (len == 2) ?
             ((mag[1] & LONG_MASK) | (d & LONG_MASK) << 32) :
             d & LONG_MASK;
-        return new BigDecimal(null, sign == -1 ? -v : v, scale, 0);
+        return BigDecimal.valueOf(sign == -1 ? -v : v, scale);
+    }
+
+    /**
+     * This is for internal use in converting from a MutableBigInteger
+     * object into a long value given a specified sign.
+     * returns INFLATED if value is not fit into long
+     */
+    long toCompactValue(int sign) {
+        if (intLen == 0 || sign == 0)
+            return 0L;
+        int[] mag = getMagnitudeArray();
+        int len = mag.length;
+        int d = mag[0];
+        // If this MutableBigInteger can not be fitted into long, we need to
+        // make a BigInteger object for the resultant BigDecimal object.
+        if (len > 2 || (d < 0 && len == 2))
+            return INFLATED;
+        long v = (len == 2) ?
+            ((mag[1] & LONG_MASK) | (d & LONG_MASK) << 32) :
+            d & LONG_MASK;
+        return sign == -1 ? -v : v;
     }
 
     /**
@@ -544,6 +565,24 @@ class MutableBigInteger {
     }
 
     /**
+     * The method is the same as mulsun, except the fact that q array is not
+     * updated, the only result of the method is borrow flag.
+     */
+    private int mulsubBorrow(int[] q, int[] a, int x, int len, int offset) {
+        long xLong = x & LONG_MASK;
+        long carry = 0;
+        offset += len;
+        for (int j=len-1; j >= 0; j--) {
+            long product = (a[j] & LONG_MASK) * xLong + carry;
+            long difference = q[offset--] - product;
+            carry = (product >>> 32)
+                     + (((difference & LONG_MASK) >
+                         (((~(int)product) & LONG_MASK))) ? 1:0);
+        }
+        return (int)carry;
+    }
+
+    /**
      * Right shift this MutableBigInteger n bits, where n is
      * less than 32.
      * Assumes that intLen > 0, n > 0 for speed
@@ -842,20 +881,20 @@ class MutableBigInteger {
             rem = (int) (remLong - (quotient.value[0] * divisorLong));
             remLong = rem & LONG_MASK;
         }
-
         int xlen = intLen;
-        int[] qWord = new int[2];
         while (--xlen > 0) {
-            long dividendEstimate = (remLong<<32) |
-                (value[offset + intLen - xlen] & LONG_MASK);
+            long dividendEstimate = (remLong << 32) |
+                    (value[offset + intLen - xlen] & LONG_MASK);
+            int q;
             if (dividendEstimate >= 0) {
-                qWord[0] = (int) (dividendEstimate / divisorLong);
-                qWord[1] = (int) (dividendEstimate - qWord[0] * divisorLong);
+                q = (int) (dividendEstimate / divisorLong);
+                rem = (int) (dividendEstimate - q * divisorLong);
             } else {
-                divWord(qWord, dividendEstimate, divisor);
+                long tmp = divWord(dividendEstimate, divisor);
+                q = (int) (tmp & LONG_MASK);
+                rem = (int) (tmp >>> 32);
             }
-            quotient.value[intLen - xlen] = qWord[0];
-            rem = qWord[1];
+            quotient.value[intLen - xlen] = q;
             remLong = rem & LONG_MASK;
         }
 
@@ -879,40 +918,45 @@ class MutableBigInteger {
      *
      */
     MutableBigInteger divide(MutableBigInteger b, MutableBigInteger quotient) {
+        return divide(b,quotient,true);
+    }
+
+    MutableBigInteger divide(MutableBigInteger b, MutableBigInteger quotient, boolean needReminder) {
         if (b.intLen == 0)
             throw new ArithmeticException("BigInteger divide by zero");
 
         // Dividend is zero
         if (intLen == 0) {
             quotient.intLen = quotient.offset;
-            return new MutableBigInteger();
+            return needReminder ? new MutableBigInteger() : null;
         }
 
         int cmp = compare(b);
         // Dividend less than divisor
         if (cmp < 0) {
             quotient.intLen = quotient.offset = 0;
-            return new MutableBigInteger(this);
+            return needReminder ? new MutableBigInteger(this) : null;
         }
         // Dividend equal to divisor
         if (cmp == 0) {
             quotient.value[0] = quotient.intLen = 1;
             quotient.offset = 0;
-            return new MutableBigInteger();
+            return needReminder ? new MutableBigInteger() : null;
         }
 
         quotient.clear();
         // Special case one word divisor
         if (b.intLen == 1) {
             int r = divideOneWord(b.value[b.offset], quotient);
-            if (r == 0)
-                return new MutableBigInteger();
-            return new MutableBigInteger(r);
+            if(needReminder) {
+                if (r == 0)
+                    return new MutableBigInteger();
+                return new MutableBigInteger(r);
+            } else {
+                return null;
+            }
         }
-
-        // Copy divisor value to protect divisor
-        int[] div = Arrays.copyOfRange(b.value, b.offset, b.offset + b.intLen);
-        return divideMagnitude(div, quotient);
+        return divideMagnitude(b, quotient, needReminder);
     }
 
     /**
@@ -940,30 +984,72 @@ class MutableBigInteger {
         if (d == 0)
             return divideOneWord((int)v, quotient) & LONG_MASK;
         else {
-            int[] div = new int[]{ d, (int)(v & LONG_MASK) };
-            return divideMagnitude(div, quotient).toLong();
+            return divideLongMagnitude(v, quotient).toLong();
+        }
+    }
+
+    private static void copyAndShift(int[] src, int srcFrom, int srcLen, int[] dst, int dstFrom, int shift) {
+        int n2 = 32 - shift;
+        int c=src[srcFrom];
+        for (int i=0; i < srcLen-1; i++) {
+            int b = c;
+            c = src[++srcFrom];
+            dst[dstFrom+i] = (b << shift) | (c >>> n2);
         }
+        dst[dstFrom+srcLen-1] = c << shift;
     }
 
     /**
-     * Divide this MutableBigInteger by the divisor represented by its magnitude
-     * array. The quotient will be placed into the provided quotient object &
+     * Divide this MutableBigInteger by the divisor.
+     * The quotient will be placed into the provided quotient object &
      * the remainder object is returned.
      */
-    private MutableBigInteger divideMagnitude(int[] divisor,
-                                              MutableBigInteger quotient) {
-
-        // Remainder starts as dividend with space for a leading zero
-        MutableBigInteger rem = new MutableBigInteger(new int[intLen + 1]);
-        System.arraycopy(value, offset, rem.value, 1, intLen);
-        rem.intLen = intLen;
-        rem.offset = 1;
+    private MutableBigInteger divideMagnitude(MutableBigInteger div,
+                                              MutableBigInteger quotient,
+                                              boolean needReminder ) {
+        // assert div.intLen > 1
+        // D1 normalize the divisor
+        int shift = Integer.numberOfLeadingZeros(div.value[div.offset]);
+        // Copy divisor value to protect divisor
+        final int dlen = div.intLen;
+        int[] divisor;
+        MutableBigInteger rem; // Remainder starts as dividend with space for a leading zero
+        if (shift > 0) {
+            divisor = new int[dlen];
+            copyAndShift(div.value,div.offset,dlen,divisor,0,shift);
+            if(Integer.numberOfLeadingZeros(value[offset])>=shift) {
+                int[] remarr = new int[intLen + 1];
+                rem = new MutableBigInteger(remarr);
+                rem.intLen = intLen;
+                rem.offset = 1;
+                copyAndShift(value,offset,intLen,remarr,1,shift);
+            } else {
+                int[] remarr = new int[intLen + 2];
+                rem = new MutableBigInteger(remarr);
+                rem.intLen = intLen+1;
+                rem.offset = 1;
+                int rFrom = offset;
+                int c=0;
+                int n2 = 32 - shift;
+                for (int i=1; i < intLen+1; i++,rFrom++) {
+                    int b = c;
+                    c = value[rFrom];
+                    remarr[i] = (b << shift) | (c >>> n2);
+                }
+                remarr[intLen+1] = c << shift;
+            }
+        } else {
+            divisor = Arrays.copyOfRange(div.value, div.offset, div.offset + div.intLen);
+            rem = new MutableBigInteger(new int[intLen + 1]);
+            System.arraycopy(value, offset, rem.value, 1, intLen);
+            rem.intLen = intLen;
+            rem.offset = 1;
+        }
 
         int nlen = rem.intLen;
 
         // Set the quotient size
-        int dlen = divisor.length;
-        int limit = nlen - dlen + 1;
+        final int limit = nlen - dlen + 1;
         if (quotient.value.length < limit) {
             quotient.value = new int[limit];
             quotient.offset = 0;
@@ -971,14 +1057,6 @@ class MutableBigInteger {
         quotient.intLen = limit;
         int[] q = quotient.value;
 
-        // D1 normalize the divisor
-        int shift = Integer.numberOfLeadingZeros(divisor[0]);
-        if (shift > 0) {
-            // First shift will not grow array
-            BigInteger.primitiveLeftShift(divisor, dlen, shift);
-            // But this one might
-            rem.leftShift(shift);
-        }
 
         // Must insert leading 0 in rem if its length did not change
         if (rem.intLen == nlen) {
@@ -990,10 +1068,9 @@ class MutableBigInteger {
         int dh = divisor[0];
         long dhLong = dh & LONG_MASK;
         int dl = divisor[1];
-        int[] qWord = new int[2];
 
         // D2 Initialize j
-        for(int j=0; j<limit; j++) {
+        for(int j=0; j<limit-1; j++) {
             // D3 Calculate qhat
             // estimate qhat
             int qhat = 0;
@@ -1013,9 +1090,9 @@ class MutableBigInteger {
                     qhat = (int) (nChunk / dhLong);
                     qrem = (int) (nChunk - (qhat * dhLong));
                 } else {
-                    divWord(qWord, nChunk, dh);
-                    qhat = qWord[0];
-                    qrem = qWord[1];
+                    long tmp = divWord(nChunk, dh);
+                    qhat = (int) (tmp & LONG_MASK);
+                    qrem = (int) (tmp >>> 32);
                 }
             }
 
@@ -1053,6 +1130,181 @@ class MutableBigInteger {
             // Store the quotient digit
             q[j] = qhat;
         } // D7 loop on j
+        // D3 Calculate qhat
+        // estimate qhat
+        int qhat = 0;
+        int qrem = 0;
+        boolean skipCorrection = false;
+        int nh = rem.value[limit - 1 + rem.offset];
+        int nh2 = nh + 0x80000000;
+        int nm = rem.value[limit + rem.offset];
+
+        if (nh == dh) {
+            qhat = ~0;
+            qrem = nh + nm;
+            skipCorrection = qrem + 0x80000000 < nh2;
+        } else {
+            long nChunk = (((long) nh) << 32) | (nm & LONG_MASK);
+            if (nChunk >= 0) {
+                qhat = (int) (nChunk / dhLong);
+                qrem = (int) (nChunk - (qhat * dhLong));
+            } else {
+                long tmp = divWord(nChunk, dh);
+                qhat = (int) (tmp & LONG_MASK);
+                qrem = (int) (tmp >>> 32);
+            }
+        }
+        if (qhat != 0) {
+            if (!skipCorrection) { // Correct qhat
+                long nl = rem.value[limit + 1 + rem.offset] & LONG_MASK;
+                long rs = ((qrem & LONG_MASK) << 32) | nl;
+                long estProduct = (dl & LONG_MASK) * (qhat & LONG_MASK);
+
+                if (unsignedLongCompare(estProduct, rs)) {
+                    qhat--;
+                    qrem = (int) ((qrem & LONG_MASK) + dhLong);
+                    if ((qrem & LONG_MASK) >= dhLong) {
+                        estProduct -= (dl & LONG_MASK);
+                        rs = ((qrem & LONG_MASK) << 32) | nl;
+                        if (unsignedLongCompare(estProduct, rs))
+                            qhat--;
+                    }
+                }
+            }
+
+
+            // D4 Multiply and subtract
+            int borrow;
+            rem.value[limit - 1 + rem.offset] = 0;
+            if(needReminder)
+                borrow = mulsub(rem.value, divisor, qhat, dlen, limit - 1 + rem.offset);
+            else
+                borrow = mulsubBorrow(rem.value, divisor, qhat, dlen, limit - 1 + rem.offset);
+
+            // D5 Test remainder
+            if (borrow + 0x80000000 > nh2) {
+                // D6 Add back
+                if(needReminder)
+                    divadd(divisor, rem.value, limit - 1 + 1 + rem.offset);
+                qhat--;
+            }
+
+            // Store the quotient digit
+            q[(limit - 1)] = qhat;
+        }
+
+
+        if(needReminder) {
+            // D8 Unnormalize
+            if (shift > 0)
+                rem.rightShift(shift);
+            rem.normalize();
+        }
+        quotient.normalize();
+        return needReminder ? rem : null;
+    }
+
+    /**
+     * Divide this MutableBigInteger by the divisor represented by positive long
+     * value. The quotient will be placed into the provided quotient object &
+     * the remainder object is returned.
+     */
+    private MutableBigInteger divideLongMagnitude(long ldivisor, MutableBigInteger quotient) {
+        // Remainder starts as dividend with space for a leading zero
+        MutableBigInteger rem = new MutableBigInteger(new int[intLen + 1]);
+        System.arraycopy(value, offset, rem.value, 1, intLen);
+        rem.intLen = intLen;
+        rem.offset = 1;
+
+        int nlen = rem.intLen;
+
+        int limit = nlen - 2 + 1;
+        if (quotient.value.length < limit) {
+            quotient.value = new int[limit];
+            quotient.offset = 0;
+        }
+        quotient.intLen = limit;
+        int[] q = quotient.value;
+
+        // D1 normalize the divisor
+        int shift = Long.numberOfLeadingZeros(ldivisor);
+        if (shift > 0) {
+            ldivisor<<=shift;
+            rem.leftShift(shift);
+        }
+
+        // Must insert leading 0 in rem if its length did not change
+        if (rem.intLen == nlen) {
+            rem.offset = 0;
+            rem.value[0] = 0;
+            rem.intLen++;
+        }
+
+        int dh = (int)(ldivisor >>> 32);
+        long dhLong = dh & LONG_MASK;
+        int dl = (int)(ldivisor & LONG_MASK);
+
+        // D2 Initialize j
+        for (int j = 0; j < limit; j++) {
+            // D3 Calculate qhat
+            // estimate qhat
+            int qhat = 0;
+            int qrem = 0;
+            boolean skipCorrection = false;
+            int nh = rem.value[j + rem.offset];
+            int nh2 = nh + 0x80000000;
+            int nm = rem.value[j + 1 + rem.offset];
+
+            if (nh == dh) {
+                qhat = ~0;
+                qrem = nh + nm;
+                skipCorrection = qrem + 0x80000000 < nh2;
+            } else {
+                long nChunk = (((long) nh) << 32) | (nm & LONG_MASK);
+                if (nChunk >= 0) {
+                    qhat = (int) (nChunk / dhLong);
+                    qrem = (int) (nChunk - (qhat * dhLong));
+                } else {
+                    long tmp = divWord(nChunk, dh);
+                    qhat =(int)(tmp & LONG_MASK);
+                    qrem = (int)(tmp>>>32);
+                }
+            }
+
+            if (qhat == 0)
+                continue;
+
+            if (!skipCorrection) { // Correct qhat
+                long nl = rem.value[j + 2 + rem.offset] & LONG_MASK;
+                long rs = ((qrem & LONG_MASK) << 32) | nl;
+                long estProduct = (dl & LONG_MASK) * (qhat & LONG_MASK);
+
+                if (unsignedLongCompare(estProduct, rs)) {
+                    qhat--;
+                    qrem = (int) ((qrem & LONG_MASK) + dhLong);
+                    if ((qrem & LONG_MASK) >= dhLong) {
+                        estProduct -= (dl & LONG_MASK);
+                        rs = ((qrem & LONG_MASK) << 32) | nl;
+                        if (unsignedLongCompare(estProduct, rs))
+                            qhat--;
+                    }
+                }
+            }
+
+            // D4 Multiply and subtract
+            rem.value[j + rem.offset] = 0;
+            int borrow = mulsubLong(rem.value, dh, dl, qhat,  j + rem.offset);
+
+            // D5 Test remainder
+            if (borrow + 0x80000000 > nh2) {
+                // D6 Add back
+                divaddLong(dh,dl, rem.value, j + 1 + rem.offset);
+                qhat--;
+            }
+
+            // Store the quotient digit
+            q[j] = qhat;
+        } // D7 loop on j
 
         // D8 Unnormalize
         if (shift > 0)
@@ -1064,6 +1316,46 @@ class MutableBigInteger {
     }
 
     /**
+     * A primitive used for division by long.
+     * Specialized version of the method divadd.
+     * dh is a high part of the divisor, dl is a low part
+     */
+    private int divaddLong(int dh, int dl, int[] result, int offset) {
+        long carry = 0;
+
+        long sum = (dl & LONG_MASK) + (result[1+offset] & LONG_MASK);
+        result[1+offset] = (int)sum;
+
+        sum = (dh & LONG_MASK) + (result[offset] & LONG_MASK) + carry;
+        result[offset] = (int)sum;
+        carry = sum >>> 32;
+        return (int)carry;
+    }
+
+    /**
+     * This method is used for division by long.
+     * Specialized version of the method sulsub.
+     * dh is a high part of the divisor, dl is a low part
+     */
+    private int mulsubLong(int[] q, int dh, int dl, int x, int offset) {
+        long xLong = x & LONG_MASK;
+        offset += 2;
+        long product = (dl & LONG_MASK) * xLong;
+        long difference = q[offset] - product;
+        q[offset--] = (int)difference;
+        long carry = (product >>> 32)
+                 + (((difference & LONG_MASK) >
+                     (((~(int)product) & LONG_MASK))) ? 1:0);
+        product = (dh & LONG_MASK) * xLong + carry;
+        difference = q[offset] - product;
+        q[offset--] = (int)difference;
+        carry = (product >>> 32)
+                 + (((difference & LONG_MASK) >
+                     (((~(int)product) & LONG_MASK))) ? 1:0);
+        return (int)carry;
+    }
+
+    /**
      * Compare two longs as if they were unsigned.
      * Returns true iff one is bigger than two.
      */
@@ -1075,19 +1367,22 @@ class MutableBigInteger {
      * This method divides a long quantity by an int to estimate
      * qhat for two multi precision numbers. It is used when
      * the signed value of n is less than zero.
+     * Returns long value where high 32 bits contain reminder value and
+     * low 32 bits contain quotient value.
      */
-    private void divWord(int[] result, long n, int d) {
+    static long divWord(long n, int d) {
         long dLong = d & LONG_MASK;
-
+        long r;
+        long q;
         if (dLong == 1) {
-            result[0] = (int)n;
-            result[1] = 0;
-            return;
+            q = (int)n;
+            r = 0;
+            return (r << 32) | (q & LONG_MASK);
         }
 
         // Approximate the quotient and remainder
-        long q = (n >>> 1) / (dLong >>> 1);
-        long r = n - q*dLong;
+        q = (n >>> 1) / (dLong >>> 1);
+        r = n - q*dLong;
 
         // Correct the approximation
         while (r < 0) {
@@ -1098,10 +1393,8 @@ class MutableBigInteger {
             r -= dLong;
             q++;
         }
-
         // n - q*dlong == r && 0 <= r <dLong, hence we're done.
-        result[0] = (int)q;
-        result[1] = (int)r;
+        return (r << 32) | (q & LONG_MASK);
     }
 
     /**
@@ -1473,5 +1766,4 @@ class MutableBigInteger {
         mod.subtract(t1);
         return mod;
     }
-
 }
diff --git a/jdk/src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java b/jdk/src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java
index a772b7c..0d03a40 100644
--- a/jdk/src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java
+++ b/jdk/src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java
@@ -26,8 +26,6 @@ package java.net;
 
 import java.io.FileDescriptor;
 import java.io.IOException;
-import java.io.InterruptedIOException;
-import java.util.Enumeration;
 import sun.net.ResourceManager;
 
 /**
@@ -66,8 +64,8 @@ abstract class AbstractPlainDatagramSocketImpl extends DatagramSocketImpl
      * Creates a datagram socket
      */
     protected synchronized void create() throws SocketException {
-        fd = new FileDescriptor();
         ResourceManager.beforeUdpCreate();
+        fd = new FileDescriptor();
         try {
             datagramSocketCreate();
         } catch (SocketException ioe) {
@@ -153,11 +151,13 @@ abstract class AbstractPlainDatagramSocketImpl extends DatagramSocketImpl
      * Set the TTL (time-to-live) option.
      * @param TTL to be set.
      */
+    @Deprecated
     protected abstract void setTTL(byte ttl) throws IOException;
 
     /**
      * Get the TTL (time-to-live) option.
      */
+    @Deprecated
     protected abstract byte getTTL() throws IOException;
 
     /**
diff --git a/jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java b/jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java
index 8b2cc70..4265315 100644
--- a/jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java
+++ b/jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java
@@ -457,10 +457,10 @@ abstract class AbstractPlainSocketImpl extends SocketImpl
         }
 
         /*
-         * If connection has been reset then return 0 to indicate
-         * there are no buffered bytes.
+         * If connection has been reset or shut down for input, then return 0
+         * to indicate there are no buffered bytes.
          */
-        if (isConnectionReset()) {
+        if (isConnectionReset() || shut_rd) {
             return 0;
         }
 
diff --git a/jdk/src/share/classes/java/net/ContentHandler.java b/jdk/src/share/classes/java/net/ContentHandler.java
index 9460f25..319e619 100644
--- a/jdk/src/share/classes/java/net/ContentHandler.java
+++ b/jdk/src/share/classes/java/net/ContentHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -96,7 +96,7 @@ abstract public class ContentHandler {
      * @exception  IOException  if an I/O error occurs while reading the object.
      * @since 1.3
      */
-    public Object getContent(URLConnection urlc, Class[] classes) throws IOException {
+    public Object getContent(URLConnection urlc, Class<?>[] classes) throws IOException {
         Object obj = getContent(urlc);
 
         for (int i = 0; i < classes.length; i++) {
diff --git a/jdk/src/share/classes/java/net/CookieManager.java b/jdk/src/share/classes/java/net/CookieManager.java
index 532999b..b9de719 100644
--- a/jdk/src/share/classes/java/net/CookieManager.java
+++ b/jdk/src/share/classes/java/net/CookieManager.java
@@ -249,7 +249,6 @@ public class CookieManager extends CookieHandler
         return Collections.unmodifiableMap(cookieMap);
     }
 
-
     public void
         put(URI uri, Map<String, List<String>> responseHeaders)
         throws IOException
@@ -284,7 +283,7 @@ public class CookieManager extends CookieHandler
                         cookies = HttpCookie.parse(headerValue);
                     } catch (IllegalArgumentException e) {
                         // Bogus header, make an empty list and log the error
-                        cookies = java.util.Collections.EMPTY_LIST;
+                        cookies = java.util.Collections.emptyList();
                         if (logger.isLoggable(PlatformLogger.SEVERE)) {
                             logger.severe("Invalid cookie for " + uri + ": " + headerValue);
                         }
diff --git a/jdk/src/share/classes/java/net/DatagramSocket.java b/jdk/src/share/classes/java/net/DatagramSocket.java
index 31db339..5d73de6 100644
--- a/jdk/src/share/classes/java/net/DatagramSocket.java
+++ b/jdk/src/share/classes/java/net/DatagramSocket.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,9 +25,7 @@
 
 package java.net;
 
-import java.io.FileDescriptor;
 import java.io.IOException;
-import java.io.InterruptedIOException;
 import java.nio.channels.DatagramChannel;
 import java.security.AccessController;
 import java.security.PrivilegedExceptionAction;
@@ -174,9 +172,7 @@ class DatagramSocket implements java.io.Closeable {
      * @see SecurityManager#checkListen
      */
     public DatagramSocket() throws SocketException {
-        // create a datagram socket.
-        createImpl();
-        bind(new InetSocketAddress(0));
+        this(new InetSocketAddress(0));
     }
 
     /**
@@ -221,7 +217,12 @@ class DatagramSocket implements java.io.Closeable {
         // create a datagram socket.
         createImpl();
         if (bindaddr != null) {
-            bind(bindaddr);
+            try {
+                bind(bindaddr);
+            } finally {
+                if (!isBound())
+                    close();
+            }
         }
     }
 
@@ -297,7 +298,7 @@ class DatagramSocket implements java.io.Closeable {
         }
     }
 
-    static Class implClass = null;
+    static Class<?> implClass = null;
 
     void createImpl() throws SocketException {
         if (impl == null) {
diff --git a/jdk/src/share/classes/java/net/HttpCookie.java b/jdk/src/share/classes/java/net/HttpCookie.java
index 34e6012..a932a5f 100644
--- a/jdk/src/share/classes/java/net/HttpCookie.java
+++ b/jdk/src/share/classes/java/net/HttpCookie.java
@@ -748,10 +748,14 @@ public final class HttpCookie implements Cloneable {
             && (embeddedDotInDomain == -1 || embeddedDotInDomain == domain.length() - 1))
             return false;
 
-        // if the host name contains no dot and the domain name is .local
+        // if the host name contains no dot and the domain name
+        // is .local or host.local
         int firstDotInHost = host.indexOf('.');
-        if (firstDotInHost == -1 && isLocalDomain)
+        if (firstDotInHost == -1 &&
+            (isLocalDomain ||
+             domain.equalsIgnoreCase(host + ".local"))) {
             return true;
+        }
 
         int domainLength = domain.length();
         int lengthDiff = host.length() - domainLength;
diff --git a/jdk/src/share/classes/java/net/HttpURLConnection.java b/jdk/src/share/classes/java/net/HttpURLConnection.java
index f88e9ef..d52c267 100644
--- a/jdk/src/share/classes/java/net/HttpURLConnection.java
+++ b/jdk/src/share/classes/java/net/HttpURLConnection.java
@@ -535,6 +535,7 @@ abstract public class HttpURLConnection extends URLConnection {
         return responseMessage;
     }
 
+    @SuppressWarnings("deprecation")
     public long getHeaderFieldDate(String name, long Default) {
         String dateString = getHeaderField(name);
         try {
diff --git a/jdk/src/share/classes/java/net/Inet4Address.java b/jdk/src/share/classes/java/net/Inet4Address.java
index af83346..190b563 100644
--- a/jdk/src/share/classes/java/net/Inet4Address.java
+++ b/jdk/src/share/classes/java/net/Inet4Address.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,9 +25,7 @@
 
 package java.net;
 
-import java.security.AccessController;
 import java.io.ObjectStreamException;
-import sun.security.action.*;
 
 /**
  * This class represents an Internet Protocol version 4 (IPv4) address.
diff --git a/jdk/src/share/classes/java/net/Inet4AddressImpl.java b/jdk/src/share/classes/java/net/Inet4AddressImpl.java
index 86ff9d3..367ca22 100644
--- a/jdk/src/share/classes/java/net/Inet4AddressImpl.java
+++ b/jdk/src/share/classes/java/net/Inet4AddressImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -59,11 +59,11 @@ class Inet4AddressImpl implements InetAddressImpl {
           /*
            * Let's make sure we use an address of the proper family
            */
-          java.util.Enumeration it = netif.getInetAddresses();
+          java.util.Enumeration<InetAddress> it = netif.getInetAddresses();
           InetAddress inetaddr = null;
           while (!(inetaddr instanceof Inet4Address) &&
                  it.hasMoreElements())
-              inetaddr = (InetAddress) it.nextElement();
+              inetaddr = it.nextElement();
           if (inetaddr instanceof Inet4Address)
               ifaddr = inetaddr.getAddress();
       }
diff --git a/jdk/src/share/classes/java/net/Inet6Address.java b/jdk/src/share/classes/java/net/Inet6Address.java
index 4236ddc..77e7cf8 100644
--- a/jdk/src/share/classes/java/net/Inet6Address.java
+++ b/jdk/src/share/classes/java/net/Inet6Address.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -383,9 +383,9 @@ class Inet6Address extends InetAddress {
         while (en.hasMoreElements()) {
             NetworkInterface ifc = en.nextElement();
             if (ifc.getName().equals (ifname)) {
-                Enumeration addresses = ifc.getInetAddresses();
+                Enumeration<InetAddress> addresses = ifc.getInetAddresses();
                 while (addresses.hasMoreElements()) {
-                    InetAddress addr = (InetAddress)addresses.nextElement();
+                    InetAddress addr = addresses.nextElement();
                     if (!(addr instanceof Inet6Address)) {
                         continue;
                     }
diff --git a/jdk/src/share/classes/java/net/Inet6AddressImpl.java b/jdk/src/share/classes/java/net/Inet6AddressImpl.java
index 3c23410..663c77e 100644
--- a/jdk/src/share/classes/java/net/Inet6AddressImpl.java
+++ b/jdk/src/share/classes/java/net/Inet6AddressImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -54,10 +54,10 @@ class Inet6AddressImpl implements InetAddressImpl {
              * be either an IPv6 address or an IPv4 address (case of a dual
              * stack system).
              */
-            java.util.Enumeration it = netif.getInetAddresses();
+            java.util.Enumeration<InetAddress> it = netif.getInetAddresses();
             InetAddress inetaddr = null;
             while (it.hasMoreElements()) {
-                inetaddr = (InetAddress) it.nextElement();
+                inetaddr = it.nextElement();
                 if (inetaddr.getClass().isInstance(addr)) {
                     ifaddr = inetaddr.getAddress();
                     if (inetaddr instanceof Inet6Address) {
diff --git a/jdk/src/share/classes/java/net/MulticastSocket.java b/jdk/src/share/classes/java/net/MulticastSocket.java
index 4ec3a2d..0171315 100644
--- a/jdk/src/share/classes/java/net/MulticastSocket.java
+++ b/jdk/src/share/classes/java/net/MulticastSocket.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
 package java.net;
 
 import java.io.IOException;
-import java.io.InterruptedIOException;
 import java.util.Enumeration;
 
 /**
@@ -162,7 +161,12 @@ class MulticastSocket extends DatagramSocket {
         setReuseAddress(true);
 
         if (bindaddr != null) {
-            bind(bindaddr);
+            try {
+                bind(bindaddr);
+            } finally {
+                if (!isBound())
+                    close();
+            }
         }
     }
 
@@ -495,9 +499,9 @@ class MulticastSocket extends DatagramSocket {
              */
             try {
                 NetworkInterface ni = NetworkInterface.getByInetAddress(ia);
-                Enumeration addrs = ni.getInetAddresses();
+                Enumeration<InetAddress> addrs = ni.getInetAddresses();
                 while (addrs.hasMoreElements()) {
-                    InetAddress addr = (InetAddress)(addrs.nextElement());
+                    InetAddress addr = addrs.nextElement();
                     if (addr.equals(infAddress)) {
                         return infAddress;
                     }
diff --git a/jdk/src/share/classes/java/net/Proxy.java b/jdk/src/share/classes/java/net/Proxy.java
index 333067d..4b8b6f1 100644
--- a/jdk/src/share/classes/java/net/Proxy.java
+++ b/jdk/src/share/classes/java/net/Proxy.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -73,7 +73,7 @@ public class Proxy {
 
     // Creates the proxy that represents a <code>DIRECT</code> connection.
     private Proxy() {
-        type = type.DIRECT;
+        type = Type.DIRECT;
         sa = null;
     }
 
diff --git a/jdk/src/share/classes/java/net/ProxySelector.java b/jdk/src/share/classes/java/net/ProxySelector.java
index 9a62e13..88f24a2 100644
--- a/jdk/src/share/classes/java/net/ProxySelector.java
+++ b/jdk/src/share/classes/java/net/ProxySelector.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -69,7 +69,7 @@ public abstract class ProxySelector {
 
     static {
         try {
-            Class c = Class.forName("sun.net.spi.DefaultProxySelector");
+            Class<?> c = Class.forName("sun.net.spi.DefaultProxySelector");
             if (c != null && ProxySelector.class.isAssignableFrom(c)) {
                 theProxySelector = (ProxySelector) c.newInstance();
             }
diff --git a/jdk/src/share/classes/java/net/Socket.java b/jdk/src/share/classes/java/net/Socket.java
index bf145dc..22d4d6a 100644
--- a/jdk/src/share/classes/java/net/Socket.java
+++ b/jdk/src/share/classes/java/net/Socket.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,6 @@ package java.net;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.IOException;
-import java.io.InterruptedIOException;
 import java.nio.channels.SocketChannel;
 import java.security.AccessController;
 import java.security.PrivilegedExceptionAction;
@@ -421,10 +420,13 @@ class Socket implements java.io.Closeable {
             createImpl(stream);
             if (localAddr != null)
                 bind(localAddr);
-            if (address != null)
-                connect(address);
-        } catch (IOException e) {
-            close();
+            connect(address);
+        } catch (IOException | IllegalArgumentException | SecurityException e) {
+            try {
+                close();
+            } catch (IOException ce) {
+                e.addSuppressed(ce);
+            }
             throw e;
         }
     }
@@ -457,13 +459,10 @@ class Socket implements java.io.Closeable {
         oldImpl = AccessController.doPrivileged
                                 (new PrivilegedAction<Boolean>() {
             public Boolean run() {
-                Class[] cl = new Class[2];
-                cl[0] = SocketAddress.class;
-                cl[1] = Integer.TYPE;
-                Class clazz = impl.getClass();
+                Class<?> clazz = impl.getClass();
                 while (true) {
                     try {
-                        clazz.getDeclaredMethod("connect", cl);
+                        clazz.getDeclaredMethod("connect", SocketAddress.class, int.class);
                         return Boolean.FALSE;
                     } catch (NoSuchMethodException e) {
                         clazz = clazz.getSuperclass();
@@ -1436,8 +1435,9 @@ class Socket implements java.io.Closeable {
      * Any data sent to the input stream side of the socket is acknowledged
      * and then silently discarded.
      * <p>
-     * If you read from a socket input stream after invoking
-     * shutdownInput() on the socket, the stream will return EOF.
+     * If you read from a socket input stream after invoking this method on the
+     * socket, the stream's {@code available} method will return 0, and its
+     * {@code read} methods will return {@code -1} (end of stream).
      *
      * @exception IOException if an I/O error occurs when shutting down this
      * socket.
diff --git a/jdk/src/share/classes/java/net/SocketImpl.java b/jdk/src/share/classes/java/net/SocketImpl.java
index 495b18f..3a4cf7a 100644
--- a/jdk/src/share/classes/java/net/SocketImpl.java
+++ b/jdk/src/share/classes/java/net/SocketImpl.java
@@ -181,8 +181,9 @@ public abstract class SocketImpl implements SocketOptions {
      * Any data sent to this socket is acknowledged and then
      * silently discarded.
      *
-     * If you read from a socket input stream after invoking
-     * shutdownInput() on the socket, the stream will return EOF.
+     * If you read from a socket input stream after invoking this method on the
+     * socket, the stream's {@code available} method will return 0, and its
+     * {@code read} methods will return {@code -1} (end of stream).
      *
      * @exception IOException if an I/O error occurs when shutting down this
      * socket.
diff --git a/jdk/src/share/classes/java/net/SocketPermission.java b/jdk/src/share/classes/java/net/SocketPermission.java
index a0fdbb8..b20563b 100644
--- a/jdk/src/share/classes/java/net/SocketPermission.java
+++ b/jdk/src/share/classes/java/net/SocketPermission.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -467,6 +467,7 @@ implements java.io.Serializable
      * @param action the action string
      * @return the action mask
      */
+    @SuppressWarnings("fallthrough")
     private static int getMask(String action) {
 
         if (action == null) {
@@ -1231,7 +1232,7 @@ final class SocketPermissionCollection extends PermissionCollection
 implements Serializable
 {
     // Not serialized; see serialization section at end of class
-    private transient List perms;
+    private transient List<SocketPermission> perms;
 
     /**
      * Create an empty SocketPermissions object.
@@ -1239,7 +1240,7 @@ implements Serializable
      */
 
     public SocketPermissionCollection() {
-        perms = new ArrayList();
+        perms = new ArrayList<SocketPermission>();
     }
 
     /**
@@ -1267,7 +1268,7 @@ implements Serializable
         // optimization to ensure perms most likely to be tested
         // show up early (4301064)
         synchronized (this) {
-            perms.add(0, permission);
+            perms.add(0, (SocketPermission)permission);
         }
     }
 
@@ -1296,7 +1297,7 @@ implements Serializable
             int len = perms.size();
             //System.out.println("implies "+np);
             for (int i = 0; i < len; i++) {
-                SocketPermission x = (SocketPermission) perms.get(i);
+                SocketPermission x = perms.get(i);
                 //System.out.println("  trying "+x);
                 if (((needed & x.getMask()) != 0) && x.impliesIgnoreMask(np)) {
                     effective |=  x.getMask();
@@ -1316,10 +1317,11 @@ implements Serializable
      * @return an enumeration of all the SocketPermission objects.
      */
 
-    public Enumeration elements() {
+    @SuppressWarnings("unchecked")
+    public Enumeration<Permission> elements() {
         // Convert Iterator into Enumeration
         synchronized (this) {
-            return Collections.enumeration(perms);
+            return Collections.enumeration((List<Permission>)(List)perms);
         }
     }
 
@@ -1353,7 +1355,7 @@ implements Serializable
         // Don't call out.defaultWriteObject()
 
         // Write out Vector
-        Vector permissions = new Vector(perms.size());
+        Vector<SocketPermission> permissions = new Vector<>(perms.size());
 
         synchronized (this) {
             permissions.addAll(perms);
@@ -1375,8 +1377,9 @@ implements Serializable
         ObjectInputStream.GetField gfields = in.readFields();
 
         // Get the one we want
-        Vector permissions = (Vector)gfields.get("permissions", null);
-        perms = new ArrayList(permissions.size());
+        @SuppressWarnings("unchecked")
+        Vector<SocketPermission> permissions = (Vector<SocketPermission>)gfields.get("permissions", null);
+        perms = new ArrayList<SocketPermission>(permissions.size());
         perms.addAll(permissions);
     }
 }
diff --git a/jdk/src/share/classes/java/net/URI.java b/jdk/src/share/classes/java/net/URI.java
index 5712821..6997a42 100644
--- a/jdk/src/share/classes/java/net/URI.java
+++ b/jdk/src/share/classes/java/net/URI.java
@@ -1711,6 +1711,8 @@ public final class URI
                     i++;
                     continue;
                 }
+                if (d != '%')
+                    return false;
                 i++;
                 if (toLower(s.charAt(i)) != toLower(t.charAt(i)))
                     return false;
diff --git a/jdk/src/share/classes/java/net/URL.java b/jdk/src/share/classes/java/net/URL.java
index 06222c6..e7e9dda 100644
--- a/jdk/src/share/classes/java/net/URL.java
+++ b/jdk/src/share/classes/java/net/URL.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@ package java.net;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
 import java.util.Hashtable;
 import java.util.StringTokenizer;
 import sun.security.util.SecurityConstants;
@@ -1113,7 +1112,7 @@ public final class URL implements java.io.Serializable {
     /**
      * A table of protocol handlers.
      */
-    static Hashtable handlers = new Hashtable();
+    static Hashtable<String,URLStreamHandler> handlers = new Hashtable<>();
     private static Object streamHandlerLock = new Object();
 
     /**
@@ -1122,7 +1121,7 @@ public final class URL implements java.io.Serializable {
      */
     static URLStreamHandler getURLStreamHandler(String protocol) {
 
-        URLStreamHandler handler = (URLStreamHandler)handlers.get(protocol);
+        URLStreamHandler handler = handlers.get(protocol);
         if (handler == null) {
 
             boolean checkedWithFactory = false;
@@ -1160,7 +1159,7 @@ public final class URL implements java.io.Serializable {
                     try {
                         String clsName = packagePrefix + "." + protocol +
                           ".Handler";
-                        Class cls = null;
+                        Class<?> cls = null;
                         try {
                             cls = Class.forName(clsName);
                         } catch (ClassNotFoundException e) {
@@ -1185,7 +1184,7 @@ public final class URL implements java.io.Serializable {
 
                 // Check again with hashtable just in case another
                 // thread created a handler since we last checked
-                handler2 = (URLStreamHandler)handlers.get(protocol);
+                handler2 = handlers.get(protocol);
 
                 if (handler2 != null) {
                     return handler2;
diff --git a/jdk/src/share/classes/java/net/URLClassLoader.java b/jdk/src/share/classes/java/net/URLClassLoader.java
index 4f28be6..fb0fe47 100644
--- a/jdk/src/share/classes/java/net/URLClassLoader.java
+++ b/jdk/src/share/classes/java/net/URLClassLoader.java
@@ -25,14 +25,7 @@
 
 package java.net;
 
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.lang.ref.*;
 import java.io.*;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLStreamHandlerFactory;
-import java.util.Enumeration;
 import java.util.*;
 import java.util.jar.Manifest;
 import java.util.jar.JarFile;
@@ -352,8 +345,8 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
     {
         try {
             return AccessController.doPrivileged(
-                new PrivilegedExceptionAction<Class>() {
-                    public Class run() throws ClassNotFoundException {
+                new PrivilegedExceptionAction<Class<?>>() {
+                    public Class<?> run() throws ClassNotFoundException {
                         String path = name.replace('.', '/').concat(".class");
                         Resource res = ucp.getResource(path, false);
                         if (res != null) {
@@ -406,7 +399,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
      * Resource. The resulting Class must be resolved before it can be
      * used.
      */
-    private Class defineClass(String name, Resource res) throws IOException {
+    private Class<?> defineClass(String name, Resource res) throws IOException {
         long t0 = System.nanoTime();
         int i = name.lastIndexOf('.');
         URL url = res.getCodeSourceURL();
@@ -774,7 +767,7 @@ final class FactoryURLClassLoader extends URLClassLoader {
         super(urls, acc);
     }
 
-    public final Class loadClass(String name, boolean resolve)
+    public final Class<?> loadClass(String name, boolean resolve)
         throws ClassNotFoundException
     {
         // First check if we have permission to access the package. This
diff --git a/jdk/src/share/classes/java/net/URLConnection.java b/jdk/src/share/classes/java/net/URLConnection.java
index 976e8f6..cc747a8 100644
--- a/jdk/src/share/classes/java/net/URLConnection.java
+++ b/jdk/src/share/classes/java/net/URLConnection.java
@@ -595,7 +595,7 @@ public abstract class URLConnection {
      * @since 1.4
      */
     public Map<String,List<String>> getHeaderFields() {
-        return Collections.EMPTY_MAP;
+        return Collections.emptyMap();
     }
 
     /**
@@ -659,6 +659,7 @@ public abstract class URLConnection {
      *          <code>Default</code> argument is returned if the field is
      *          missing or malformed.
      */
+    @SuppressWarnings("deprecation")
     public long getHeaderFieldDate(String name, long Default) {
         String value = getHeaderField(name);
         try {
@@ -1153,7 +1154,7 @@ public abstract class URLConnection {
             throw new IllegalStateException("Already connected");
 
         if (requests == null)
-            return Collections.EMPTY_MAP;
+            return Collections.emptyMap();
 
         return requests.getHeaders(null);
     }
@@ -1236,7 +1237,7 @@ public abstract class URLConnection {
         factory = fac;
     }
 
-    private static Hashtable handlers = new Hashtable();
+    private static Hashtable<String, ContentHandler> handlers = new Hashtable<>();
 
     /**
      * Gets the Content Handler appropriate for this connection.
@@ -1250,7 +1251,7 @@ public abstract class URLConnection {
         if (contentType == null)
             throw new UnknownServiceException("no content-type");
         try {
-            handler = (ContentHandler) handlers.get(contentType);
+            handler = handlers.get(contentType);
             if (handler != null)
                 return handler;
         } catch(Exception e) {
@@ -1316,7 +1317,7 @@ public abstract class URLConnection {
 
             try {
                 String clsName = packagePrefix + "." + contentHandlerClassName;
-                Class cls = null;
+                Class<?> cls = null;
                 try {
                     cls = Class.forName(clsName);
                 } catch (ClassNotFoundException e) {
diff --git a/jdk/src/share/classes/java/nio/Bits.java b/jdk/src/share/classes/java/nio/Bits.java
index b158322..5f1eabe 100644
--- a/jdk/src/share/classes/java/nio/Bits.java
+++ b/jdk/src/share/classes/java/nio/Bits.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -699,6 +699,14 @@ class Bits {                            // package-private
                         }
                     };
                 }
+                @Override
+                public ByteBuffer newDirectByteBuffer(long addr, int cap, Object ob) {
+                    return new DirectByteBuffer(addr, cap, ob);
+                }
+                @Override
+                public void truncate(Buffer buf) {
+                    buf.truncate();
+                }
         });
     }
 
diff --git a/jdk/src/share/classes/java/nio/Buffer.java b/jdk/src/share/classes/java/nio/Buffer.java
index e75fa3e..1c0591f 100644
--- a/jdk/src/share/classes/java/nio/Buffer.java
+++ b/jdk/src/share/classes/java/nio/Buffer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -543,6 +543,13 @@ public abstract class Buffer {
         return mark;
     }
 
+    final void truncate() {                             // package-private
+        mark = -1;
+        position = 0;
+        limit = 0;
+        capacity = 0;
+    }
+
     final void discardMark() {                          // package-private
         mark = -1;
     }
diff --git a/jdk/src/share/classes/java/nio/Direct-X-Buffer.java.template b/jdk/src/share/classes/java/nio/Direct-X-Buffer.java.template
index a33f1e8..d01e873 100644
--- a/jdk/src/share/classes/java/nio/Direct-X-Buffer.java.template
+++ b/jdk/src/share/classes/java/nio/Direct-X-Buffer.java.template
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -58,12 +58,13 @@ class Direct$Type$Buffer$RW$$BO$
     // NOTE: moved up to Buffer.java for speed in JNI GetDirectBufferAddress
     //    protected long address;
 
-    // If this buffer is a view of another buffer then we keep a reference to
-    // that buffer so that its memory isn't freed before we're done with it
-    protected Object viewedBuffer = null;
+    // An object attached to this buffer. If this buffer is a view of another
+    // buffer then we use this field to keep a reference to that buffer to
+    // ensure that its memory isn't freed before we are done with it.
+    private final Object att;
 
-    public Object viewedBuffer() {
-        return viewedBuffer;
+    public Object attachment() {
+        return att;
     }
 
 #if[byte]
@@ -136,6 +137,7 @@ class Direct$Type$Buffer$RW$$BO$
             address = base;
         }
         cleaner = Cleaner.create(this, new Deallocator(base, size, cap));
+        att = null;
 #else[rw]
         super(cap);
 #end[rw]
@@ -143,12 +145,24 @@ class Direct$Type$Buffer$RW$$BO$
 
 #if[rw]
 
+    // Invoked to construct a direct ByteBuffer referring to the block of
+    // memory. A given arbitrary object may also be attached to the buffer.
+    //
+    Direct$Type$Buffer(long addr, int cap, Object ob) {
+        super(-1, 0, cap, cap);
+        address = addr;
+        cleaner = null;
+        att = ob;
+    }
+
+
     // Invoked only by JNI: NewDirectByteBuffer(void*, long)
     //
     private Direct$Type$Buffer(long addr, int cap) {
         super(-1, 0, cap, cap);
         address = addr;
         cleaner = null;
+        att = null;
     }
 
 #end[rw]
@@ -162,8 +176,8 @@ class Direct$Type$Buffer$RW$$BO$
 #if[rw]
         super(-1, 0, cap, cap, fd);
         address = addr;
-        viewedBuffer = null;
         cleaner = Cleaner.create(this, unmapper);
+        att = null;
 #else[rw]
         super(cap, addr, fd, unmapper);
 #end[rw]
@@ -180,10 +194,10 @@ class Direct$Type$Buffer$RW$$BO$
 #if[rw]
         super(mark, pos, lim, cap);
         address = db.address() + off;
-        viewedBuffer = db;
 #if[byte]
         cleaner = null;
 #end[byte]
+        att = db;
 #else[rw]
         super(db, mark, pos, lim, cap, off);
 #end[rw]
diff --git a/jdk/src/share/classes/java/rmi/dgc/VMID.java b/jdk/src/share/classes/java/rmi/dgc/VMID.java
index b4e48b3..c9f1647 100644
--- a/jdk/src/share/classes/java/rmi/dgc/VMID.java
+++ b/jdk/src/share/classes/java/rmi/dgc/VMID.java
@@ -170,7 +170,7 @@ public final class VMID implements java.io.Serializable {
             /* can't happen, but be deterministic anyway. */
             addrHash = new byte[0];
         } catch (NoSuchAlgorithmException complain) {
-            throw new InternalError(complain.toString());
+            throw new InternalError(complain.toString(), complain);
         }
         return addrHash;
     }
diff --git a/jdk/src/share/classes/java/security/AccessControlContext.java b/jdk/src/share/classes/java/security/AccessControlContext.java
index 8a431df..ba088af 100644
--- a/jdk/src/share/classes/java/security/AccessControlContext.java
+++ b/jdk/src/share/classes/java/security/AccessControlContext.java
@@ -29,8 +29,6 @@ import java.util.ArrayList;
 import java.util.List;
 import sun.security.util.Debug;
 import sun.security.util.SecurityConstants;
-import sun.misc.JavaSecurityAccess;
-import sun.misc.SharedSecrets;
 
 
 /**
@@ -312,7 +310,7 @@ public final class AccessControlContext {
                 Debug.isOn("permission=" + perm.getClass().getCanonicalName());
 
             if (dumpDebug && Debug.isOn("stack")) {
-                Thread.currentThread().dumpStack();
+                Thread.dumpStack();
             }
 
             if (dumpDebug && Debug.isOn("domain")) {
@@ -353,7 +351,7 @@ public final class AccessControlContext {
                     if (!dumpDebug) {
                         debug.println("access denied " + perm);
                     }
-                    Thread.currentThread().dumpStack();
+                    Thread.dumpStack();
                     final ProtectionDomain pd = context[i];
                     final Debug db = debug;
                     AccessController.doPrivileged (new PrivilegedAction<Void>() {
@@ -561,7 +559,7 @@ public final class AccessControlContext {
                     match = (that.context[j] == null);
                 }
             } else {
-                Class thisPdClass = thisPd.getClass();
+                Class<?> thisPdClass = thisPd.getClass();
                 ProtectionDomain thatPd;
                 for (int j = 0; (j < that.context.length) && !match; j++) {
                     thatPd = that.context[j];
diff --git a/jdk/src/share/classes/java/security/AccessController.java b/jdk/src/share/classes/java/security/AccessController.java
index 338b9b7..97383f5 100644
--- a/jdk/src/share/classes/java/security/AccessController.java
+++ b/jdk/src/share/classes/java/security/AccessController.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -406,7 +406,7 @@ public final class AccessController {
          * callerClass[2] = AccessController.doPrivileged
          * callerClass[3] = caller
          */
-        final Class callerClass = sun.reflect.Reflection.getCallerClass(3);
+        final Class<?> callerClass = sun.reflect.Reflection.getCallerClass(3);
         ProtectionDomain callerPd = doPrivileged
             (new PrivilegedAction<ProtectionDomain>() {
             public ProtectionDomain run() {
@@ -538,7 +538,7 @@ public final class AccessController {
             }
 
             if (dumpDebug && Debug.isOn("stack")) {
-                Thread.currentThread().dumpStack();
+                Thread.dumpStack();
             }
 
             if (dumpDebug && Debug.isOn("domain")) {
diff --git a/jdk/src/share/classes/java/security/BasicPermission.java b/jdk/src/share/classes/java/security/BasicPermission.java
index 3b5a459..e6a28cb 100644
--- a/jdk/src/share/classes/java/security/BasicPermission.java
+++ b/jdk/src/share/classes/java/security/BasicPermission.java
@@ -25,7 +25,6 @@
 
 package java.security;
 
-import java.security.*;
 import java.util.Enumeration;
 import java.util.Map;
 import java.util.HashMap;
@@ -333,14 +332,14 @@ implements java.io.Serializable
      *
      * @see #serialPersistentFields
      */
-    private Class permClass;
+    private Class<?> permClass;
 
     /**
      * Create an empty BasicPermissionCollection object.
      *
      */
 
-    public BasicPermissionCollection(Class clazz) {
+    public BasicPermissionCollection(Class<?> clazz) {
         perms = new HashMap<String, Permission>(11);
         all_allowed = false;
         permClass = clazz;
@@ -542,6 +541,9 @@ implements java.io.Serializable
         ObjectInputStream.GetField gfields = in.readFields();
 
         // Get permissions
+        // writeObject writes a Hashtable<String, Permission> for the
+        // permissions key, so this cast is safe, unless the data is corrupt.
+        @SuppressWarnings("unchecked")
         Hashtable<String, Permission> permissions =
                 (Hashtable<String, Permission>)gfields.get("permissions", null);
         perms = new HashMap<String, Permission>(permissions.size()*2);
@@ -551,7 +553,7 @@ implements java.io.Serializable
         all_allowed = gfields.get("all_allowed", false);
 
         // Get permClass
-        permClass = (Class) gfields.get("permClass", null);
+        permClass = (Class<?>) gfields.get("permClass", null);
 
         if (permClass == null) {
             // set permClass
diff --git a/jdk/src/share/classes/java/security/KeyRep.java b/jdk/src/share/classes/java/security/KeyRep.java
index b7d94f1..11f3e63 100644
--- a/jdk/src/share/classes/java/security/KeyRep.java
+++ b/jdk/src/share/classes/java/security/KeyRep.java
@@ -26,6 +26,7 @@
 package java.security;
 
 import java.io.*;
+import java.util.Locale;
 
 import java.security.spec.PKCS8EncodedKeySpec;
 import java.security.spec.X509EncodedKeySpec;
@@ -137,7 +138,7 @@ public class KeyRep implements Serializable {
 
         this.type = type;
         this.algorithm = algorithm;
-        this.format = format.toUpperCase();
+        this.format = format.toUpperCase(Locale.ENGLISH);
         this.encoded = encoded.clone();
     }
 
diff --git a/jdk/src/share/classes/java/security/Permissions.java b/jdk/src/share/classes/java/security/Permissions.java
index 1f9f8b0..986fd4b 100644
--- a/jdk/src/share/classes/java/security/Permissions.java
+++ b/jdk/src/share/classes/java/security/Permissions.java
@@ -31,7 +31,6 @@ import java.util.NoSuchElementException;
 import java.util.Map;
 import java.util.HashMap;
 import java.util.List;
-import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.Collections;
 import java.io.Serializable;
@@ -238,7 +237,7 @@ implements Serializable
      */
     private PermissionCollection getPermissionCollection(Permission p,
         boolean createEmpty) {
-        Class c = p.getClass();
+        Class<?> c = p.getClass();
 
         PermissionCollection pc = permsMap.get(c);
 
@@ -390,6 +389,9 @@ implements Serializable
         allPermission = (PermissionCollection) gfields.get("allPermission", null);
 
         // Get permissions
+        // writeObject writes a Hashtable<Class<?>, PermissionCollection> for
+        // the perms key, so this cast is safe, unless the data is corrupt.
+        @SuppressWarnings("unchecked")
         Hashtable<Class<?>, PermissionCollection> perms =
             (Hashtable<Class<?>, PermissionCollection>)gfields.get("perms", null);
         permsMap = new HashMap<Class<?>, PermissionCollection>(perms.size()*2);
@@ -590,6 +592,9 @@ implements Serializable
         ObjectInputStream.GetField gfields = in.readFields();
 
         // Get permissions
+        // writeObject writes a Hashtable<Class<?>, PermissionCollection> for
+        // the perms key, so this cast is safe, unless the data is corrupt.
+        @SuppressWarnings("unchecked")
         Hashtable<Permission, Permission> perms =
                 (Hashtable<Permission, Permission>)gfields.get("perms", null);
         permsMap = new HashMap<Permission, Permission>(perms.size()*2);
diff --git a/jdk/src/share/classes/java/security/Policy.java b/jdk/src/share/classes/java/security/Policy.java
index 5a029a3..7ed0ce2 100644
--- a/jdk/src/share/classes/java/security/Policy.java
+++ b/jdk/src/share/classes/java/security/Policy.java
@@ -26,16 +26,7 @@
 
 package java.security;
 
-import java.io.*;
-import java.lang.RuntimePermission;
-import java.lang.reflect.*;
-import java.net.MalformedURLException;
-import java.net.URL;
 import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.PropertyPermission;
-import java.util.StringTokenizer;
-import java.util.Vector;
 import java.util.WeakHashMap;
 import sun.security.jca.GetInstance;
 import sun.security.util.Debug;
@@ -786,6 +777,8 @@ public abstract class Policy {
     private static class UnsupportedEmptyCollection
         extends PermissionCollection {
 
+        private static final long serialVersionUID = -8492269157353014774L;
+
         private Permissions perms;
 
         /**
diff --git a/jdk/src/share/classes/java/security/ProtectionDomain.java b/jdk/src/share/classes/java/security/ProtectionDomain.java
index b9716c3..16551a0 100644
--- a/jdk/src/share/classes/java/security/ProtectionDomain.java
+++ b/jdk/src/share/classes/java/security/ProtectionDomain.java
@@ -33,7 +33,6 @@ import java.util.Map;
 import java.util.WeakHashMap;
 import sun.misc.JavaSecurityProtectionDomainAccess;
 import static sun.misc.JavaSecurityProtectionDomainAccess.ProtectionDomainCache;
-import sun.misc.SharedSecrets;
 import sun.security.util.Debug;
 import sun.security.util.SecurityConstants;
 import sun.misc.JavaSecurityAccess;
@@ -403,7 +402,7 @@ public class ProtectionDomain {
                 e = permissions.elements();   // domain vs policy
                 while (e.hasMoreElements()) {
                     Permission pdp = e.nextElement();
-                    Class pdpClass = pdp.getClass();
+                    Class<?> pdpClass = pdp.getClass();
                     String pdpActions = pdp.getActions();
                     String pdpName = pdp.getName();
                     for (int i = 0; i < plVector.size(); i++) {
diff --git a/jdk/src/share/classes/java/security/Provider.java b/jdk/src/share/classes/java/security/Provider.java
index a4b3b24..72fcabb 100644
--- a/jdk/src/share/classes/java/security/Provider.java
+++ b/jdk/src/share/classes/java/security/Provider.java
@@ -31,9 +31,6 @@ import static java.util.Locale.ENGLISH;
 import java.lang.ref.*;
 import java.lang.reflect.*;
 
-import java.security.cert.CertStoreParameters;
-import javax.security.auth.login.Configuration;
-
 /**
  * This class represents a "provider" for the
  * Java Security API, where a provider implements some or all parts of
@@ -453,8 +450,8 @@ public abstract class Provider extends Properties {
      * Internal method to be called AFTER the security check has been
      * performed.
      */
-    private void implPutAll(Map t) {
-        for (Map.Entry e : ((Map<?,?>)t).entrySet()) {
+    private void implPutAll(Map<?,?> t) {
+        for (Map.Entry<?,?> e : t.entrySet()) {
             implPut(e.getKey(), e.getValue());
         }
     }
@@ -562,9 +559,9 @@ public abstract class Provider extends Properties {
      * occur if the legacy properties are inconsistent or incomplete.
      */
     private void removeInvalidServices(Map<ServiceKey,Service> map) {
-        for (Iterator t = map.entrySet().iterator(); t.hasNext(); ) {
-            Map.Entry entry = (Map.Entry)t.next();
-            Service s = (Service)entry.getValue();
+        for (Iterator<Map.Entry<ServiceKey, Service>> t =
+                map.entrySet().iterator(); t.hasNext(); ) {
+            Service s = t.next().getValue();
             if (s.isValid() == false) {
                 t.remove();
             }
@@ -918,15 +915,15 @@ public abstract class Provider extends Properties {
         final String name;
         final boolean supportsParameter;
         final String constructorParameterClassName;
-        private volatile Class constructorParameterClass;
+        private volatile Class<?> constructorParameterClass;
 
         EngineDescription(String name, boolean sp, String paramName) {
             this.name = name;
             this.supportsParameter = sp;
             this.constructorParameterClassName = paramName;
         }
-        Class getConstructorParameterClass() throws ClassNotFoundException {
-            Class clazz = constructorParameterClass;
+        Class<?> getConstructorParameterClass() throws ClassNotFoundException {
+            Class<?> clazz = constructorParameterClass;
             if (clazz == null) {
                 clazz = Class.forName(constructorParameterClassName);
                 constructorParameterClass = clazz;
@@ -1038,7 +1035,7 @@ public abstract class Provider extends Properties {
         private Map<UString,String> attributes;
 
         // Reference to the cached implementation Class object
-        private volatile Reference<Class> classRef;
+        private volatile Reference<Class<?>> classRef;
 
         // flag indicating whether this service has its attributes for
         // supportedKeyFormats or supportedKeyClasses set
@@ -1055,7 +1052,7 @@ public abstract class Provider extends Properties {
         // whether this service has been registered with the Provider
         private boolean registered;
 
-        private static final Class[] CLASS0 = new Class[0];
+        private static final Class<?>[] CLASS0 = new Class<?>[0];
 
         // this constructor and these methods are used for parsing
         // the legacy string properties.
@@ -1234,12 +1231,12 @@ public abstract class Provider extends Properties {
                             ("constructorParameter not used with " + type
                             + " engines");
                     }
-                    Class clazz = getImplClass();
+                    Class<?> clazz = getImplClass();
                     return clazz.newInstance();
                 } else {
-                    Class paramClass = cap.getConstructorParameterClass();
+                    Class<?> paramClass = cap.getConstructorParameterClass();
                     if (constructorParameter != null) {
-                        Class argClass = constructorParameter.getClass();
+                        Class<?> argClass = constructorParameter.getClass();
                         if (paramClass.isAssignableFrom(argClass) == false) {
                             throw new InvalidParameterException
                             ("constructorParameter must be instanceof "
@@ -1247,8 +1244,8 @@ public abstract class Provider extends Properties {
                             + " for engine type " + type);
                         }
                     }
-                    Class clazz = getImplClass();
-                    Constructor cons = clazz.getConstructor(paramClass);
+                    Class<?> clazz = getImplClass();
+                    Constructor<?> cons = clazz.getConstructor(paramClass);
                     return cons.newInstance(constructorParameter);
                 }
             } catch (NoSuchAlgorithmException e) {
@@ -1267,10 +1264,10 @@ public abstract class Provider extends Properties {
         }
 
         // return the implementation Class object for this service
-        private Class getImplClass() throws NoSuchAlgorithmException {
+        private Class<?> getImplClass() throws NoSuchAlgorithmException {
             try {
-                Reference<Class> ref = classRef;
-                Class clazz = (ref == null) ? null : ref.get();
+                Reference<Class<?>> ref = classRef;
+                Class<?> clazz = (ref == null) ? null : ref.get();
                 if (clazz == null) {
                     ClassLoader cl = provider.getClass().getClassLoader();
                     if (cl == null) {
@@ -1278,7 +1275,7 @@ public abstract class Provider extends Properties {
                     } else {
                         clazz = cl.loadClass(className);
                     }
-                    classRef = new WeakReference<Class>(clazz);
+                    classRef = new WeakReference<Class<?>>(clazz);
                 }
                 return clazz;
             } catch (ClassNotFoundException e) {
@@ -1295,18 +1292,18 @@ public abstract class Provider extends Properties {
          */
         private Object newInstanceGeneric(Object constructorParameter)
                 throws Exception {
-            Class clazz = getImplClass();
+            Class<?> clazz = getImplClass();
             if (constructorParameter == null) {
                 Object o = clazz.newInstance();
                 return o;
             }
-            Class argClass = constructorParameter.getClass();
+            Class<?> argClass = constructorParameter.getClass();
             Constructor[] cons = clazz.getConstructors();
             // find first public constructor that can take the
             // argument as parameter
             for (int i = 0; i < cons.length; i++) {
-                Constructor con = cons[i];
-                Class[] paramTypes = con.getParameterTypes();
+                Constructor<?> con = cons[i];
+                Class<?>[] paramTypes = con.getParameterTypes();
                 if (paramTypes.length != 1) {
                     continue;
                 }
@@ -1394,10 +1391,10 @@ public abstract class Provider extends Properties {
                     s = getAttribute("SupportedKeyClasses");
                     if (s != null) {
                         String[] classNames = s.split("\\|");
-                        List<Class> classList =
+                        List<Class<?>> classList =
                             new ArrayList<>(classNames.length);
                         for (String className : classNames) {
-                            Class clazz = getKeyClass(className);
+                            Class<?> clazz = getKeyClass(className);
                             if (clazz != null) {
                                 classList.add(clazz);
                             }
@@ -1414,7 +1411,7 @@ public abstract class Provider extends Properties {
         }
 
         // get the key class object of the specified name
-        private Class getKeyClass(String name) {
+        private Class<?> getKeyClass(String name) {
             try {
                 return Class.forName(name);
             } catch (ClassNotFoundException e) {
@@ -1451,8 +1448,8 @@ public abstract class Provider extends Properties {
             if (supportedClasses == null) {
                 return false;
             }
-            Class keyClass = key.getClass();
-            for (Class clazz : supportedClasses) {
+            Class<?> keyClass = key.getClass();
+            for (Class<?> clazz : supportedClasses) {
                 if (clazz.isAssignableFrom(keyClass)) {
                     return true;
                 }
diff --git a/jdk/src/share/classes/java/security/Security.java b/jdk/src/share/classes/java/security/Security.java
index 85b2462..b9dd144 100644
--- a/jdk/src/share/classes/java/security/Security.java
+++ b/jdk/src/share/classes/java/security/Security.java
@@ -33,8 +33,6 @@ import java.net.URL;
 import sun.security.util.Debug;
 import sun.security.util.PropertyExpander;
 
-import java.security.Provider.Service;
-
 import sun.security.jca.*;
 
 /**
@@ -660,15 +658,16 @@ public final class Security {
     }
 
     // Map containing cached Spi Class objects of the specified type
-    private static final Map<String, Class> spiMap = new ConcurrentHashMap<>();
+    private static final Map<String, Class<?>> spiMap =
+            new ConcurrentHashMap<>();
 
     /**
      * Return the Class object for the given engine type
      * (e.g. "MessageDigest"). Works for Spis in the java.security package
      * only.
      */
-    private static Class getSpiClass(String type) {
-        Class clazz = spiMap.get(type);
+    private static Class<?> getSpiClass(String type) {
+        Class<?> clazz = spiMap.get(type);
         if (clazz != null) {
             return clazz;
         }
@@ -1078,7 +1077,7 @@ public final class Security {
 
         if ((serviceName == null) || (serviceName.length() == 0) ||
             (serviceName.endsWith("."))) {
-            return Collections.EMPTY_SET;
+            return Collections.emptySet();
         }
 
         HashSet<String> result = new HashSet<>();
@@ -1088,8 +1087,10 @@ public final class Security {
             // Check the keys for each provider.
             for (Enumeration<Object> e = providers[i].keys();
                                                 e.hasMoreElements(); ) {
-                String currentKey = ((String)e.nextElement()).toUpperCase();
-                if (currentKey.startsWith(serviceName.toUpperCase())) {
+                String currentKey =
+                        ((String)e.nextElement()).toUpperCase(Locale.ENGLISH);
+                if (currentKey.startsWith(
+                        serviceName.toUpperCase(Locale.ENGLISH))) {
                     // We should skip the currentKey if it contains a
                     // whitespace. The reason is: such an entry in the
                     // provider property contains attributes for the
@@ -1097,7 +1098,8 @@ public final class Security {
                     // in entries which lead to the implementation
                     // classes.
                     if (currentKey.indexOf(" ") < 0) {
-                        result.add(currentKey.substring(serviceName.length() + 1));
+                        result.add(currentKey.substring(
+                                                serviceName.length() + 1));
                     }
                 }
             }
diff --git a/jdk/src/share/classes/java/security/UnresolvedPermission.java b/jdk/src/share/classes/java/security/UnresolvedPermission.java
index ffeaac9..5428d17 100644
--- a/jdk/src/share/classes/java/security/UnresolvedPermission.java
+++ b/jdk/src/share/classes/java/security/UnresolvedPermission.java
@@ -28,9 +28,7 @@ package java.security;
 import java.io.IOException;
 import java.io.ByteArrayInputStream;
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.Hashtable;
-import java.util.Vector;
 import java.lang.reflect.*;
 import java.security.cert.*;
 
@@ -247,19 +245,19 @@ implements java.io.Serializable
             }
         }
         try {
-            Class pc = p.getClass();
+            Class<?> pc = p.getClass();
 
             if (name == null && actions == null) {
                 try {
-                    Constructor c = pc.getConstructor(PARAMS0);
+                    Constructor<?> c = pc.getConstructor(PARAMS0);
                     return (Permission)c.newInstance(new Object[] {});
                 } catch (NoSuchMethodException ne) {
                     try {
-                        Constructor c = pc.getConstructor(PARAMS1);
+                        Constructor<?> c = pc.getConstructor(PARAMS1);
                         return (Permission) c.newInstance(
                               new Object[] { name});
                     } catch (NoSuchMethodException ne1) {
-                        Constructor c = pc.getConstructor(PARAMS2);
+                        Constructor<?> c = pc.getConstructor(PARAMS2);
                         return (Permission) c.newInstance(
                               new Object[] { name, actions });
                     }
@@ -267,16 +265,16 @@ implements java.io.Serializable
             } else {
                 if (name != null && actions == null) {
                     try {
-                        Constructor c = pc.getConstructor(PARAMS1);
+                        Constructor<?> c = pc.getConstructor(PARAMS1);
                         return (Permission) c.newInstance(
                               new Object[] { name});
                     } catch (NoSuchMethodException ne) {
-                        Constructor c = pc.getConstructor(PARAMS2);
+                        Constructor<?> c = pc.getConstructor(PARAMS2);
                         return (Permission) c.newInstance(
                               new Object[] { name, actions });
                     }
                 } else {
-                    Constructor c = pc.getConstructor(PARAMS2);
+                    Constructor<?> c = pc.getConstructor(PARAMS2);
                     return (Permission) c.newInstance(
                           new Object[] { name, actions });
                 }
diff --git a/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java b/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java
index 69f6e60..7633648 100644
--- a/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java
+++ b/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java
@@ -197,8 +197,12 @@ implements java.io.Serializable
         ObjectInputStream.GetField gfields = in.readFields();
 
         // Get permissions
+        @SuppressWarnings("unchecked")
+        // writeObject writes a Hashtable<String, Vector<UnresolvedPermission>>
+        // for the permissions key, so this cast is safe, unless the data is corrupt.
         Hashtable<String, Vector<UnresolvedPermission>> permissions =
-                (Hashtable<String, Vector<UnresolvedPermission>>)gfields.get("permissions", null);
+                (Hashtable<String, Vector<UnresolvedPermission>>)
+                gfields.get("permissions", null);
         perms = new HashMap<String, List<UnresolvedPermission>>(permissions.size()*2);
 
         // Convert each entry (Vector) into a List
diff --git a/jdk/src/share/classes/java/security/cert/CertificateRevokedException.java b/jdk/src/share/classes/java/security/cert/CertificateRevokedException.java
index a76299c..b812689 100644
--- a/jdk/src/share/classes/java/security/cert/CertificateRevokedException.java
+++ b/jdk/src/share/classes/java/security/cert/CertificateRevokedException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,6 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Map.Entry;
 import javax.security.auth.x500.X500Principal;
 
 import sun.security.util.ObjectIdentifier;
@@ -95,7 +94,7 @@ public class CertificateRevokedException extends CertificateException {
         this.revocationDate = new Date(revocationDate.getTime());
         this.reason = reason;
         this.authority = authority;
-        this.extensions = new HashMap(extensions);
+        this.extensions = new HashMap<String, Extension>(extensions);
     }
 
     /**
@@ -148,8 +147,7 @@ public class CertificateRevokedException extends CertificateException {
             return null;
         } else {
             try {
-                Date invalidity =
-                    (Date) InvalidityDateExtension.toImpl(ext).get("DATE");
+                Date invalidity = InvalidityDateExtension.toImpl(ext).get("DATE");
                 return new Date(invalidity.getTime());
             } catch (IOException ioe) {
                 return null;
diff --git a/jdk/src/share/classes/java/security/cert/CollectionCertStoreParameters.java b/jdk/src/share/classes/java/security/cert/CollectionCertStoreParameters.java
index ddeea61..cad34ac 100644
--- a/jdk/src/share/classes/java/security/cert/CollectionCertStoreParameters.java
+++ b/jdk/src/share/classes/java/security/cert/CollectionCertStoreParameters.java
@@ -122,7 +122,7 @@ public class CollectionCertStoreParameters
             return super.clone();
         } catch (CloneNotSupportedException e) {
             /* Cannot happen */
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/security/cert/LDAPCertStoreParameters.java b/jdk/src/share/classes/java/security/cert/LDAPCertStoreParameters.java
index 00bf2af..9c5109e 100644
--- a/jdk/src/share/classes/java/security/cert/LDAPCertStoreParameters.java
+++ b/jdk/src/share/classes/java/security/cert/LDAPCertStoreParameters.java
@@ -128,7 +128,7 @@ public class LDAPCertStoreParameters implements CertStoreParameters {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             /* Cannot happen */
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/security/cert/PKIXCertPathChecker.java b/jdk/src/share/classes/java/security/cert/PKIXCertPathChecker.java
index 0cca284..656a517 100644
--- a/jdk/src/share/classes/java/security/cert/PKIXCertPathChecker.java
+++ b/jdk/src/share/classes/java/security/cert/PKIXCertPathChecker.java
@@ -175,7 +175,7 @@ public abstract class PKIXCertPathChecker implements Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             /* Cannot happen */
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
     }
 }
diff --git a/jdk/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java b/jdk/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java
index caea7a2..9bdf006 100644
--- a/jdk/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java
+++ b/jdk/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java
@@ -136,7 +136,7 @@ public class PKIXCertPathValidatorResult implements CertPathValidatorResult {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             /* Cannot happen */
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/security/cert/PKIXParameters.java b/jdk/src/share/classes/java/security/cert/PKIXParameters.java
index 6f4d385..ff3b335 100644
--- a/jdk/src/share/classes/java/security/cert/PKIXParameters.java
+++ b/jdk/src/share/classes/java/security/cert/PKIXParameters.java
@@ -683,7 +683,7 @@ public class PKIXParameters implements CertPathParameters {
             return copy;
         } catch (CloneNotSupportedException e) {
             /* Cannot happen */
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/security/cert/X509CRLSelector.java b/jdk/src/share/classes/java/security/cert/X509CRLSelector.java
index 7e702d2..4258da3 100644
--- a/jdk/src/share/classes/java/security/cert/X509CRLSelector.java
+++ b/jdk/src/share/classes/java/security/cert/X509CRLSelector.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -632,7 +632,7 @@ public class X509CRLSelector implements CRLSelector {
                 byte[] encoded = in.getOctetString();
                 CRLNumberExtension crlNumExt =
                     new CRLNumberExtension(Boolean.FALSE, encoded);
-                crlNum = (BigInteger)crlNumExt.get(CRLNumberExtension.NUMBER);
+                crlNum = crlNumExt.get(CRLNumberExtension.NUMBER);
             } catch (IOException ex) {
                 if (debug != null) {
                     debug.println("X509CRLSelector.match: exception in "
@@ -708,7 +708,7 @@ public class X509CRLSelector implements CRLSelector {
             return copy;
         } catch (CloneNotSupportedException e) {
             /* Cannot happen */
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
     }
 }
diff --git a/jdk/src/share/classes/java/security/cert/X509CertSelector.java b/jdk/src/share/classes/java/security/cert/X509CertSelector.java
index 1de5257..19ca2cb 100644
--- a/jdk/src/share/classes/java/security/cert/X509CertSelector.java
+++ b/jdk/src/share/classes/java/security/cert/X509CertSelector.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -277,7 +277,7 @@ public class X509CertSelector implements CertSelector {
         try {
             issuer = (issuerDN == null ? null : new X500Principal(issuerDN));
         } catch (IllegalArgumentException e) {
-            throw (IOException)new IOException("Invalid name").initCause(e);
+            throw new IOException("Invalid name", e);
         }
     }
 
@@ -341,7 +341,7 @@ public class X509CertSelector implements CertSelector {
         try {
             subject = (subjectDN == null ? null : new X500Principal(subjectDN));
         } catch (IllegalArgumentException e) {
-            throw (IOException)new IOException("Invalid name").initCause(e);
+            throw new IOException("Invalid name", e);
         }
     }
 
@@ -872,7 +872,7 @@ public class X509CertSelector implements CertSelector {
      * @param object2 a Collection containing the second object to compare
      * @return true if the objects are equal, false otherwise
      */
-    static boolean equalNames(Collection object1, Collection object2) {
+    static boolean equalNames(Collection<?> object1, Collection<?> object2) {
         if ((object1 == null) || (object2 == null)) {
             return object1 == object2;
         }
@@ -1672,19 +1672,15 @@ public class X509CertSelector implements CertSelector {
     private static Set<List<?>> cloneAndCheckNames(Collection<List<?>> names) throws IOException {
         // Copy the Lists and Collection
         Set<List<?>> namesCopy = new HashSet<List<?>>();
-        Iterator<List<?>> i = names.iterator();
-        while (i.hasNext()) {
-            Object o = i.next();
-            if (!(o instanceof List)) {
-                throw new IOException("expected a List");
-            }
-            namesCopy.add(new ArrayList<Object>((List<?>)o));
+        for (List<?> o : names)
+        {
+            namesCopy.add(new ArrayList<Object>(o));
         }
 
         // Check the contents of the Lists and clone any byte arrays
-        i = namesCopy.iterator();
-        while (i.hasNext()) {
-            List<Object> nameList = (List<Object>)i.next();
+        for (List<?> list : namesCopy) {
+            @SuppressWarnings("unchecked") // See javadoc for parameter "names".
+            List<Object> nameList = (List<Object>)list;
             if (nameList.size() != 2) {
                 throw new IOException("name list size not 2");
             }
@@ -2184,8 +2180,7 @@ public class X509CertSelector implements CertSelector {
             if (debug != null) {
                 String time = "n/a";
                 try {
-                    Date notAfter =
-                        (Date)ext.get(PrivateKeyUsageExtension.NOT_AFTER);
+                    Date notAfter = ext.get(PrivateKeyUsageExtension.NOT_AFTER);
                     time = notAfter.toString();
                 } catch (CertificateException ex) {
                     // not able to retrieve notAfter value
@@ -2201,8 +2196,7 @@ public class X509CertSelector implements CertSelector {
             if (debug != null) {
                 String time = "n/a";
                 try {
-                    Date notBefore = (Date)
-                        ext.get(PrivateKeyUsageExtension.NOT_BEFORE);
+                    Date notBefore = ext.get(PrivateKeyUsageExtension.NOT_BEFORE);
                     time = notBefore.toString();
                 } catch (CertificateException ex) {
                     // not able to retrieve notBefore value
@@ -2214,14 +2208,6 @@ public class X509CertSelector implements CertSelector {
                 e2.printStackTrace();
             }
             return false;
-        } catch (CertificateException e3) {
-            if (debug != null) {
-                debug.println("X509CertSelector.match: CertificateException "
-                    + "in private key usage check; X509CertSelector: "
-                    + this.toString());
-                e3.printStackTrace();
-            }
-            return false;
         } catch (IOException e4) {
             if (debug != null) {
                 debug.println("X509CertSelector.match: IOException in "
@@ -2252,7 +2238,7 @@ public class X509CertSelector implements CertSelector {
                     + subjectPublicKeyAlgID + ", xcert subjectPublicKeyAlgID = "
                     + algID.getOID());
             }
-            if (!subjectPublicKeyAlgID.equals(algID.getOID())) {
+            if (!subjectPublicKeyAlgID.equals((Object)algID.getOID())) {
                 if (debug != null) {
                     debug.println("X509CertSelector.match: "
                         + "subject public key alg IDs don't match");
@@ -2301,7 +2287,7 @@ public class X509CertSelector implements CertSelector {
                                                 EXTENDED_KEY_USAGE_ID);
             if (ext != null) {
                 Vector<ObjectIdentifier> certKeyPurposeVector =
-                    (Vector<ObjectIdentifier>)ext.get(ExtendedKeyUsageExtension.USAGES);
+                    ext.get(ExtendedKeyUsageExtension.USAGES);
                 if (!certKeyPurposeVector.contains(ANY_EXTENDED_KEY_USAGE)
                         && !certKeyPurposeVector.containsAll(keyPurposeOIDSet)) {
                     if (debug != null) {
@@ -2337,8 +2323,8 @@ public class X509CertSelector implements CertSelector {
                 }
                 return false;
             }
-            GeneralNames certNames = (GeneralNames)
-                sanExt.get(SubjectAlternativeNameExtension.SUBJECT_NAME);
+            GeneralNames certNames =
+                    sanExt.get(SubjectAlternativeNameExtension.SUBJECT_NAME);
             Iterator<GeneralNameInterface> i =
                                 subjectAlternativeGeneralNames.iterator();
             while (i.hasNext()) {
@@ -2406,7 +2392,7 @@ public class X509CertSelector implements CertSelector {
                 }
                 return false;
             }
-            List<PolicyInformation> policies = (List<PolicyInformation>)ext.get(CertificatePoliciesExtension.POLICIES);
+            List<PolicyInformation> policies = ext.get(CertificatePoliciesExtension.POLICIES);
             /*
              * Convert the Vector of PolicyInformation to a Vector
              * of CertificatePolicyIds for easier comparison.
@@ -2467,7 +2453,7 @@ public class X509CertSelector implements CertSelector {
             if (ext == null) {
                 return true;
             }
-            if ((debug != null) && debug.isOn("certpath")) {
+            if ((debug != null) && Debug.isOn("certpath")) {
                 debug.println("X509CertSelector.match pathToNames:\n");
                 Iterator<GeneralNameInterface> i =
                                         pathToGeneralNames.iterator();
@@ -2476,10 +2462,10 @@ public class X509CertSelector implements CertSelector {
                 }
             }
 
-            GeneralSubtrees permitted = (GeneralSubtrees)
-                ext.get(NameConstraintsExtension.PERMITTED_SUBTREES);
-            GeneralSubtrees excluded = (GeneralSubtrees)
-                ext.get(NameConstraintsExtension.EXCLUDED_SUBTREES);
+            GeneralSubtrees permitted =
+                    ext.get(NameConstraintsExtension.PERMITTED_SUBTREES);
+            GeneralSubtrees excluded =
+                    ext.get(NameConstraintsExtension.EXCLUDED_SUBTREES);
             if (excluded != null) {
                 if (matchExcluded(excluded) == false) {
                     return false;
@@ -2597,12 +2583,13 @@ public class X509CertSelector implements CertSelector {
         return true;
     }
 
-    private static Set<?> cloneSet(Set<?> set) {
+    @SuppressWarnings("unchecked") // Safe casts assuming clone() works correctly
+    private static <T> Set<T> cloneSet(Set<T> set) {
         if (set instanceof HashSet) {
-            Object clone = ((HashSet<?>)set).clone();
-            return (Set<?>)clone;
+            Object clone = ((HashSet<T>)set).clone();
+            return (Set<T>)clone;
         } else {
-            return new HashSet<Object>(set);
+            return new HashSet<T>(set);
         }
     }
 
@@ -2617,22 +2604,18 @@ public class X509CertSelector implements CertSelector {
             // Must clone these because addPathToName et al. modify them
             if (subjectAlternativeNames != null) {
                 copy.subjectAlternativeNames =
-                        (Set<List<?>>)cloneSet(subjectAlternativeNames);
+                        cloneSet(subjectAlternativeNames);
                 copy.subjectAlternativeGeneralNames =
-                        (Set<GeneralNameInterface>)cloneSet
-                                (subjectAlternativeGeneralNames);
+                        cloneSet(subjectAlternativeGeneralNames);
             }
             if (pathToGeneralNames != null) {
-                copy.pathToNames =
-                        (Set<List<?>>)cloneSet(pathToNames);
-                copy.pathToGeneralNames =
-                        (Set<GeneralNameInterface>)cloneSet
-                                (pathToGeneralNames);
+                copy.pathToNames = cloneSet(pathToNames);
+                copy.pathToGeneralNames = cloneSet(pathToGeneralNames);
             }
             return copy;
         } catch (CloneNotSupportedException e) {
             /* Cannot happen */
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
     }
 }
diff --git a/jdk/src/share/classes/java/text/AttributedString.java b/jdk/src/share/classes/java/text/AttributedString.java
index 0296525..c7c1f05 100644
--- a/jdk/src/share/classes/java/text/AttributedString.java
+++ b/jdk/src/share/classes/java/text/AttributedString.java
@@ -794,7 +794,7 @@ public class AttributedString {
                 return other;
             }
             catch (CloneNotSupportedException e) {
-                throw new InternalError();
+                throw new InternalError(e);
             }
         }
 
diff --git a/jdk/src/share/classes/java/text/BreakDictionary.java b/jdk/src/share/classes/java/text/BreakDictionary.java
index 0f61805..1e34503 100644
--- a/jdk/src/share/classes/java/text/BreakDictionary.java
+++ b/jdk/src/share/classes/java/text/BreakDictionary.java
@@ -154,7 +154,7 @@ class BreakDictionary {
             );
         }
         catch (PrivilegedActionException e) {
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
 
         byte[] buf = new byte[8];
diff --git a/jdk/src/share/classes/java/text/BreakIterator.java b/jdk/src/share/classes/java/text/BreakIterator.java
index 59f24a4..e00e09a 100644
--- a/jdk/src/share/classes/java/text/BreakIterator.java
+++ b/jdk/src/share/classes/java/text/BreakIterator.java
@@ -254,7 +254,7 @@ public abstract class BreakIterator implements Cloneable
             return super.clone();
         }
         catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
@@ -617,9 +617,7 @@ public abstract class BreakIterator implements Cloneable
             }
         }
         catch (Exception e) {
-            Error err = new InternalError(e.toString());
-            err.initCause(e);
-            throw err;
+            throw new InternalError(e.toString(), e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/text/Collator.java b/jdk/src/share/classes/java/text/Collator.java
index 555930b..9b03d16 100644
--- a/jdk/src/share/classes/java/text/Collator.java
+++ b/jdk/src/share/classes/java/text/Collator.java
@@ -461,7 +461,7 @@ public abstract class Collator
         try {
             return (Collator)super.clone();
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/text/DateFormatSymbols.java b/jdk/src/share/classes/java/text/DateFormatSymbols.java
index 2eeb07e..e5b44c6 100644
--- a/jdk/src/share/classes/java/text/DateFormatSymbols.java
+++ b/jdk/src/share/classes/java/text/DateFormatSymbols.java
@@ -597,7 +597,7 @@ public class DateFormatSymbols implements Serializable, Cloneable {
             copyMembers(this, other);
             return other;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/text/DecimalFormat.java b/jdk/src/share/classes/java/text/DecimalFormat.java
index 9004348..3dd9a5b 100644
--- a/jdk/src/share/classes/java/text/DecimalFormat.java
+++ b/jdk/src/share/classes/java/text/DecimalFormat.java
@@ -1891,14 +1891,10 @@ public class DecimalFormat extends NumberFormat {
      * Standard override; no change in semantics.
      */
     public Object clone() {
-        try {
-            DecimalFormat other = (DecimalFormat) super.clone();
-            other.symbols = (DecimalFormatSymbols) symbols.clone();
-            other.digitList = (DigitList) digitList.clone();
-            return other;
-        } catch (Exception e) {
-            throw new InternalError();
-        }
+        DecimalFormat other = (DecimalFormat) super.clone();
+        other.symbols = (DecimalFormatSymbols) symbols.clone();
+        other.digitList = (DigitList) digitList.clone();
+        return other;
     }
 
     /**
diff --git a/jdk/src/share/classes/java/text/DecimalFormatSymbols.java b/jdk/src/share/classes/java/text/DecimalFormatSymbols.java
index b3c55b8..71fd1fa 100644
--- a/jdk/src/share/classes/java/text/DecimalFormatSymbols.java
+++ b/jdk/src/share/classes/java/text/DecimalFormatSymbols.java
@@ -479,7 +479,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
             return (DecimalFormatSymbols)super.clone();
             // other fields are bit-copied
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/text/DigitList.java b/jdk/src/share/classes/java/text/DigitList.java
index a355944..ec489db 100644
--- a/jdk/src/share/classes/java/text/DigitList.java
+++ b/jdk/src/share/classes/java/text/DigitList.java
@@ -632,7 +632,7 @@ final class DigitList implements Cloneable {
             other.tempBuffer = null;
             return other;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/text/Format.java b/jdk/src/share/classes/java/text/Format.java
index a0ed993..2eec667 100644
--- a/jdk/src/share/classes/java/text/Format.java
+++ b/jdk/src/share/classes/java/text/Format.java
@@ -258,7 +258,7 @@ public abstract class Format implements Serializable, Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // will never happen
-            return null;
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/text/RuleBasedBreakIterator.java b/jdk/src/share/classes/java/text/RuleBasedBreakIterator.java
index c607d2c..201eee7 100644
--- a/jdk/src/share/classes/java/text/RuleBasedBreakIterator.java
+++ b/jdk/src/share/classes/java/text/RuleBasedBreakIterator.java
@@ -453,7 +453,7 @@ class RuleBasedBreakIterator extends BreakIterator {
             );
         }
         catch (PrivilegedActionException e) {
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
 
         int offset = 0;
diff --git a/jdk/src/share/classes/java/text/StringCharacterIterator.java b/jdk/src/share/classes/java/text/StringCharacterIterator.java
index 4d10518..6a24bb4 100644
--- a/jdk/src/share/classes/java/text/StringCharacterIterator.java
+++ b/jdk/src/share/classes/java/text/StringCharacterIterator.java
@@ -272,7 +272,7 @@ public final class StringCharacterIterator implements CharacterIterator
             return other;
         }
         catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/ArrayList.java b/jdk/src/share/classes/java/util/ArrayList.java
index 14b0fbf..3b02927 100644
--- a/jdk/src/share/classes/java/util/ArrayList.java
+++ b/jdk/src/share/classes/java/util/ArrayList.java
@@ -307,7 +307,7 @@ public class ArrayList<E> extends AbstractList<E>
             return v;
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/BitSet.java b/jdk/src/share/classes/java/util/BitSet.java
index fa0be57..e8f242c 100644
--- a/jdk/src/share/classes/java/util/BitSet.java
+++ b/jdk/src/share/classes/java/util/BitSet.java
@@ -1092,7 +1092,7 @@ public class BitSet implements Cloneable, java.io.Serializable {
             result.checkInvariants();
             return result;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/Calendar.java b/jdk/src/share/classes/java/util/Calendar.java
index 897a891..51ec6be 100644
--- a/jdk/src/share/classes/java/util/Calendar.java
+++ b/jdk/src/share/classes/java/util/Calendar.java
@@ -2512,7 +2512,7 @@ public abstract class Calendar implements Serializable, Cloneable, Comparable<Ca
         }
         catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/Currency.java b/jdk/src/share/classes/java/util/Currency.java
index 275413c..dc9271a 100644
--- a/jdk/src/share/classes/java/util/Currency.java
+++ b/jdk/src/share/classes/java/util/Currency.java
@@ -221,9 +221,7 @@ public final class Currency implements Serializable {
                     otherCurrenciesNumericCode = readIntArray(dis, ocCount);
                     dis.close();
                 } catch (IOException e) {
-                    InternalError ie = new InternalError();
-                    ie.initCause(e);
-                    throw ie;
+                    throw new InternalError(e);
                 }
 
                 // look for the properties file for overrides
diff --git a/jdk/src/share/classes/java/util/CurrencyData.properties b/jdk/src/share/classes/java/util/CurrencyData.properties
index 20425d0..5cfc139 100644
--- a/jdk/src/share/classes/java/util/CurrencyData.properties
+++ b/jdk/src/share/classes/java/util/CurrencyData.properties
@@ -29,7 +29,7 @@ formatVersion=1
 # It is a serial number that accompanies with each amendment, such as 
 # 'MAxxx.doc'
 
-dataVersion=140
+dataVersion=151
 
 # List of all valid ISO 4217 currency codes.
 # To ensure compatibility, do not remove codes.
@@ -37,7 +37,7 @@ dataVersion=140
 all=ADP020-AED784-AFA004-AFN971-ALL008-AMD051-ANG532-AOA973-ARS032-ATS040-AUD036-\
     AWG533-AYM945-AZM031-AZN944-BAM977-BBD052-BDT050-BEF056-BGL100-BGN975-BHD048-BIF108-\
     BMD060-BND096-BOB068-BOV984-BRL986-BSD044-BTN064-BWP072-BYB112-BYR974-\
-    BZD084-CAD124-CDF976-CHF756-CLF990-CLP152-CNY156-COP170-CRC188-CSD891-CUP192-\
+    BZD084-CAD124-CDF976-CHF756-CLF990-CLP152-CNY156-COP170-CRC188-CSD891-CUP192-CUC931-\
     CVE132-CYP196-CZK203-DEM276-DJF262-DKK208-DOP214-DZD012-EEK233-EGP818-\
     ERN232-ESP724-ETB230-EUR978-FIM246-FJD242-FKP238-FRF250-GBP826-GEL981-\
     GHC288-GHS936-GIP292-GMD270-GNF324-GRD300-GTQ320-GWP624-GYD328-HKD344-HNL340-\
@@ -49,11 +49,11 @@ all=ADP020-AED784-AFA004-AFN971-ALL008-AMD051-ANG532-AOA973-ARS032-ATS040-AUD036
     NIO558-NLG528-NOK578-NPR524-NZD554-OMR512-PAB590-PEN604-PGK598-PHP608-\
     PKR586-PLN985-PTE620-PYG600-QAR634-ROL946-RON946-RSD941-RUB643-RUR810-RWF646-SAR682-\
     SBD090-SCR690-SDD736-SDG938-SEK752-SGD702-SHP654-SIT705-SKK703-SLL694-SOS706-\
-    SRD968-SRG740-STD678-SVC222-SYP760-SZL748-THB764-TJS972-TMM795-TND788-TOP776-\
+    SRD968-SRG740-STD678-SVC222-SYP760-SZL748-THB764-TJS972-TMM795-TMT934-TND788-TOP776-\
     TPE626-TRL792-TRY949-TTD780-TWD901-TZS834-UAH980-UGX800-USD840-USN997-USS998-\
     UYU858-UZS860-VEB862-VEF937-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\
     XBB956-XBC957-XBD958-XCD951-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\
-    XPT962-XTS963-XXX999-YER886-YUM891-ZAR710-ZMK894-ZWD716-ZWN942
+    XPT962-XSU994-XTS963-XUA965-XXX999-YER886-YUM891-ZAR710-ZMK894-ZWD716-ZWL932-ZWN942-ZWR935
 
 
 # Mappings from ISO 3166 country codes to ISO 4217 currency codes.
@@ -124,6 +124,8 @@ BZ=BZD
 BJ=XOF
 # BERMUDA
 BM=BMD
+# Bonaire, Sint Eustatius and Saba
+BQ=USD
 # BHUTAN
 BT=BTN
 # BOLIVIA
@@ -186,6 +188,8 @@ CI=XOF
 HR=HRK
 # CUBA
 CU=CUP
+# Cura\u00e7ao
+CW=ANG
 # CYPRUS
 CY=EUR
 # CZECH REPUBLIC
@@ -210,7 +214,7 @@ GQ=XAF
 # ERITREA
 ER=ERN
 # ESTONIA
-EE=EEK
+EE=EUR
 # ETHIOPIA
 ET=ETB
 # FALKLAND ISLANDS (MALVINAS)
@@ -476,7 +480,7 @@ SL=SLL
 # SINGAPORE
 SG=SGD
 # SLOVAKIA
-SK=SKK
+SK=EUR
 # SLOVENIA
 SI=EUR
 # SOLOMON ISLANDS
@@ -497,6 +501,8 @@ SD=SDG
 SR=SRD
 # SVALBARD AND JAN MAYEN
 SJ=NOK
+# Sint Maarten (Dutch part)
+SX=ANG
 # SWAZILAND
 SZ=SZL
 # SWEDEN
@@ -528,7 +534,7 @@ TN=TND
 # TURKEY
 TR=TRL;2004-12-31-22-00-00;TRY
 # TURKMENISTAN
-TM=TMM
+TM=TMT
 # TURKS AND CAICOS ISLANDS
 TC=USD
 # TUVALU
@@ -568,7 +574,7 @@ YE=YER
 # ZAMBIA
 ZM=ZMK
 # ZIMBABWE
-ZW=ZWD
+ZW=ZWL
 
 
 # List of currencies with 0, 1, OR 3 decimals for minor units, or where there
@@ -583,4 +589,4 @@ minor3=\
     BHD-IQD-JOD-KWD-LYD-OMR-TND
 minorUndefined=\
     XAG-XAU-XBA-XBB-XBC-XBD-XDR-XFO-XFU-XPD-\
-    XPT-XTS-XXX
+    XPT-XSU-XTS-XUA-XXX
diff --git a/jdk/src/share/classes/java/util/Formatter.java b/jdk/src/share/classes/java/util/Formatter.java
index bcd36ea..038ec6e 100644
--- a/jdk/src/share/classes/java/util/Formatter.java
+++ b/jdk/src/share/classes/java/util/Formatter.java
@@ -50,7 +50,6 @@ import java.text.NumberFormat;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import sun.misc.FpUtils;
 import sun.misc.DoubleConsts;
 import sun.misc.FormattedFloatingDecimal;
 
@@ -3417,24 +3416,24 @@ public final class Formatter implements Closeable, Flushable {
         // Method assumes that d > 0.
         private String hexDouble(double d, int prec) {
             // Let Double.toHexString handle simple cases
-            if(!FpUtils.isFinite(d) || d == 0.0 || prec == 0 || prec >= 13)
+            if(!Double.isFinite(d) || d == 0.0 || prec == 0 || prec >= 13)
                 // remove "0x"
                 return Double.toHexString(d).substring(2);
             else {
                 assert(prec >= 1 && prec <= 12);
 
-                int exponent  = FpUtils.getExponent(d);
+                int exponent  = Math.getExponent(d);
                 boolean subnormal
                     = (exponent == DoubleConsts.MIN_EXPONENT - 1);
 
                 // If this is subnormal input so normalize (could be faster to
                 // do as integer operation).
                 if (subnormal) {
-                    scaleUp = FpUtils.scalb(1.0, 54);
+                    scaleUp = Math.scalb(1.0, 54);
                     d *= scaleUp;
                     // Calculate the exponent.  This is not just exponent + 54
                     // since the former is not the normalized exponent.
-                    exponent = FpUtils.getExponent(d);
+                    exponent = Math.getExponent(d);
                     assert exponent >= DoubleConsts.MIN_EXPONENT &&
                         exponent <= DoubleConsts.MAX_EXPONENT: exponent;
                 }
diff --git a/jdk/src/share/classes/java/util/HashSet.java b/jdk/src/share/classes/java/util/HashSet.java
index 9e53917..ba6ea97 100644
--- a/jdk/src/share/classes/java/util/HashSet.java
+++ b/jdk/src/share/classes/java/util/HashSet.java
@@ -253,7 +253,7 @@ public class HashSet<E>
             newSet.map = (HashMap<E, Object>) map.clone();
             return newSet;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/Hashtable.java b/jdk/src/share/classes/java/util/Hashtable.java
index 0ad5e5a..e134716 100644
--- a/jdk/src/share/classes/java/util/Hashtable.java
+++ b/jdk/src/share/classes/java/util/Hashtable.java
@@ -537,7 +537,7 @@ public class Hashtable<K,V>
             return t;
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/IdentityHashMap.java b/jdk/src/share/classes/java/util/IdentityHashMap.java
index 95ff9f0..930c3ac 100644
--- a/jdk/src/share/classes/java/util/IdentityHashMap.java
+++ b/jdk/src/share/classes/java/util/IdentityHashMap.java
@@ -703,7 +703,7 @@ public class IdentityHashMap<K,V>
             m.table = table.clone();
             return m;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/LinkedList.java b/jdk/src/share/classes/java/util/LinkedList.java
index 94508da..fd8f181 100644
--- a/jdk/src/share/classes/java/util/LinkedList.java
+++ b/jdk/src/share/classes/java/util/LinkedList.java
@@ -994,7 +994,7 @@ public class LinkedList<E>
         try {
             return (LinkedList<E>) super.clone();
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/Locale.java b/jdk/src/share/classes/java/util/Locale.java
index 363d285..100144e 100644
--- a/jdk/src/share/classes/java/util/Locale.java
+++ b/jdk/src/share/classes/java/util/Locale.java
@@ -1589,7 +1589,7 @@ public final class Locale implements Cloneable, Serializable {
      * @since 1.7
      */
     public String getDisplayScript() {
-        return getDisplayScript(getDefault());
+        return getDisplayScript(getDefault(Category.DISPLAY));
     }
 
     /**
@@ -1859,7 +1859,7 @@ public final class Locale implements Cloneable, Serializable {
             Locale that = (Locale)super.clone();
             return that;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/LocaleISOData.java b/jdk/src/share/classes/java/util/LocaleISOData.java
index 5fe3fb5..6330c34 100644
--- a/jdk/src/share/classes/java/util/LocaleISOData.java
+++ b/jdk/src/share/classes/java/util/LocaleISOData.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -254,6 +254,7 @@ class LocaleISOData {
         + "BM" + "BMU"  // Bermuda
         + "BN" + "BRN"  // Brunei Darussalam
         + "BO" + "BOL"  // Bolivia, Republic of
+        + "BQ" + "BES"  // Bonaire, Sint Eustatius and Saba
         + "BR" + "BRA"  // Brazil, Federative Republic of
         + "BS" + "BHS"  // Bahamas, Commonwealth of the
         + "BT" + "BTN"  // Bhutan, Kingdom of
@@ -277,6 +278,7 @@ class LocaleISOData {
 //      + "CS" + "SCG"  // Serbia and Montenegro
         + "CU" + "CUB"  // Cuba, Republic of
         + "CV" + "CPV"  // Cape Verde, Republic of
+        + "CW" + "CUW"  // Cura\u00e7ao
         + "CX" + "CXR"  // Christmas Island
         + "CY" + "CYP"  // Cyprus, Republic of
         + "CZ" + "CZE"  // Czech Republic
@@ -433,6 +435,7 @@ class LocaleISOData {
         + "SR" + "SUR"  // Suriname, Republic of
         + "ST" + "STP"  // Sao Tome and Principe, Democratic Republic of
         + "SV" + "SLV"  // El Salvador, Republic of
+        + "SX" + "SXM"  // Sint Maarten (Dutch part)
         + "SY" + "SYR"  // Syrian Arab Republic
         + "SZ" + "SWZ"  // Swaziland, Kingdom of
         + "TC" + "TCA"  // Turks and Caicos Islands
diff --git a/jdk/src/share/classes/java/util/Observable.java b/jdk/src/share/classes/java/util/Observable.java
index a208303..7104071 100644
--- a/jdk/src/share/classes/java/util/Observable.java
+++ b/jdk/src/share/classes/java/util/Observable.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1994, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -44,7 +44,7 @@ package java.util;
  * notifications on separate threads, or may guarantee that their
  * subclass follows this order, as they choose.
  * <p>
- * Note that this notification mechanism is has nothing to do with threads
+ * Note that this notification mechanism has nothing to do with threads
  * and is completely separate from the <tt>wait</tt> and <tt>notify</tt>
  * mechanism of class <tt>Object</tt>.
  * <p>
diff --git a/jdk/src/share/classes/java/util/Properties.java b/jdk/src/share/classes/java/util/Properties.java
index 6b6f0d1..50eb436 100644
--- a/jdk/src/share/classes/java/util/Properties.java
+++ b/jdk/src/share/classes/java/util/Properties.java
@@ -34,6 +34,7 @@ import java.io.Reader;
 import java.io.Writer;
 import java.io.OutputStreamWriter;
 import java.io.BufferedWriter;
+import java.lang.reflect.*;
 import java.lang.module.RequireOptionalModule;
 import java.lang.module.ModuleNotPresentException;
 
@@ -1125,4 +1126,60 @@ class Properties extends Hashtable<Object,Object> {
     private static final char[] hexDigit = {
         '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
     };
+
+
+    private static class XMLUtils {
+        private static Method load = null;
+        private static Method save = null;
+        static {
+            try {
+                // reference sun.util.xml.Utils reflectively
+                // to allow the Properties class be compiled in
+                // the absence of XML
+                Class<?> c = Class.forName("sun.util.xml.XMLUtils", true, null);
+                load = c.getMethod("load", Properties.class, InputStream.class);
+                save = c.getMethod("save", Properties.class, OutputStream.class,
+                                   String.class, String.class);
+            } catch (ClassNotFoundException cnf) {
+                throw new AssertionError(cnf);
+            } catch (NoSuchMethodException e) {
+                throw new AssertionError(e);
+            }
+        }
+
+        static void invoke(Method m, Object... args) throws IOException {
+            try {
+                m.invoke(null, args);
+            } catch (IllegalAccessException e) {
+                throw new AssertionError(e);
+            } catch (InvocationTargetException e) {
+                Throwable t = e.getCause();
+                if (t instanceof RuntimeException)
+                    throw (RuntimeException)t;
+
+                if (t instanceof IOException) {
+                    throw (IOException)t;
+                } else {
+                    throw new AssertionError(t);
+                }
+            }
+        }
+
+        static void load(Properties props, InputStream in)
+            throws IOException, InvalidPropertiesFormatException
+        {
+            if (load == null)
+                throw new InternalError("sun.util.xml.XMLUtils not found");
+            invoke(load, props, in);
+        }
+
+        static void save(Properties props, OutputStream os, String comment,
+                         String encoding)
+            throws IOException
+        {
+            if (save == null)
+                throw new InternalError("sun.util.xml.XMLUtils not found");
+            invoke(save, props, os, comment, encoding);
+        }
+    }
 }
diff --git a/jdk/src/share/classes/java/util/ResourceBundle.java b/jdk/src/share/classes/java/util/ResourceBundle.java
index 51b8487..a4a4d55 100644
--- a/jdk/src/share/classes/java/util/ResourceBundle.java
+++ b/jdk/src/share/classes/java/util/ResourceBundle.java
@@ -614,7 +614,7 @@ public abstract class ResourceBundle {
                 return clone;
             } catch (CloneNotSupportedException e) {
                 //this should never happen
-                throw new InternalError();
+                throw new InternalError(e);
             }
         }
 
diff --git a/jdk/src/share/classes/java/util/TimeZone.java b/jdk/src/share/classes/java/util/TimeZone.java
index 266f627..2da2de2 100644
--- a/jdk/src/share/classes/java/util/TimeZone.java
+++ b/jdk/src/share/classes/java/util/TimeZone.java
@@ -739,7 +739,7 @@ abstract public class TimeZone implements Serializable, Cloneable {
             other.ID = ID;
             return other;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/TreeMap.java b/jdk/src/share/classes/java/util/TreeMap.java
index 6e92b8d..c7aae65 100644
--- a/jdk/src/share/classes/java/util/TreeMap.java
+++ b/jdk/src/share/classes/java/util/TreeMap.java
@@ -622,7 +622,7 @@ public class TreeMap<K,V>
         try {
             clone = (TreeMap<K,V>) super.clone();
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
 
         // Put clone into "virgin" state (except for comparator)
diff --git a/jdk/src/share/classes/java/util/TreeSet.java b/jdk/src/share/classes/java/util/TreeSet.java
index 3eee2a8..6b2a33d 100644
--- a/jdk/src/share/classes/java/util/TreeSet.java
+++ b/jdk/src/share/classes/java/util/TreeSet.java
@@ -474,7 +474,7 @@ public class TreeSet<E> extends AbstractSet<E>
         try {
             clone = (TreeSet<E>) super.clone();
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
 
         clone.m = new TreeMap<>(m);
diff --git a/jdk/src/share/classes/java/util/UUID.java b/jdk/src/share/classes/java/util/UUID.java
index c7948c9..4484298 100644
--- a/jdk/src/share/classes/java/util/UUID.java
+++ b/jdk/src/share/classes/java/util/UUID.java
@@ -165,7 +165,7 @@ public final class UUID implements java.io.Serializable, Comparable<UUID> {
         try {
             md = MessageDigest.getInstance("MD5");
         } catch (NoSuchAlgorithmException nsae) {
-            throw new InternalError("MD5 not supported");
+            throw new InternalError("MD5 not supported", nsae);
         }
         byte[] md5Bytes = md.digest(name);
         md5Bytes[6]  &= 0x0f;  /* clear version        */
diff --git a/jdk/src/share/classes/java/util/Vector.java b/jdk/src/share/classes/java/util/Vector.java
index 0d69591..be74f61 100644
--- a/jdk/src/share/classes/java/util/Vector.java
+++ b/jdk/src/share/classes/java/util/Vector.java
@@ -673,7 +673,7 @@ public class Vector<E>
             return v;
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java b/jdk/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java
index 6be3074..5101a9c 100644
--- a/jdk/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java
+++ b/jdk/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java
@@ -330,7 +330,7 @@ public class ScheduledThreadPoolExecutor
                 remove(task))
                 task.cancel(false);
             else
-                prestartCoreThread();
+                ensurePrestart();
         }
     }
 
@@ -346,7 +346,7 @@ public class ScheduledThreadPoolExecutor
             if (!canRunInCurrentRunState(true) && remove(task))
                 task.cancel(false);
             else
-                prestartCoreThread();
+                ensurePrestart();
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java b/jdk/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java
index c989121..db7adf0 100644
--- a/jdk/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java
+++ b/jdk/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java
@@ -1546,6 +1546,18 @@ public class ThreadPoolExecutor extends AbstractExecutorService {
     }
 
     /**
+     * Same as prestartCoreThread except arranges that at least one
+     * thread is started even if corePoolSize is 0.
+     */
+    void ensurePrestart() {
+        int wc = workerCountOf(ctl.get());
+        if (wc < corePoolSize)
+            addWorker(null, true);
+        else if (wc == 0)
+            addWorker(null, false);
+    }
+
+    /**
      * Starts all core threads, causing them to idly wait for work. This
      * overrides the default policy of starting core threads only when
      * new tasks are executed.
diff --git a/jdk/src/share/classes/java/util/prefs/Preferences.java b/jdk/src/share/classes/java/util/prefs/Preferences.java
index 8a3fce2..0124f12 100644
--- a/jdk/src/share/classes/java/util/prefs/Preferences.java
+++ b/jdk/src/share/classes/java/util/prefs/Preferences.java
@@ -259,11 +259,9 @@ public abstract class Preferences {
                                       .getContextClassLoader())
                         .newInstance();
                 } catch (Exception e) {
-                    InternalError error = new InternalError(
+                    throw new InternalError(
                         "Can't instantiate Preferences factory "
-                        + factoryName);
-                    error.initCause(e);
-                    throw error;
+                        + factoryName, e);
                 }
             }
         }
@@ -302,11 +300,9 @@ public abstract class Preferences {
             return (PreferencesFactory)
                 Class.forName(platformFactory, false, null).newInstance();
         } catch (Exception e) {
-            InternalError error = new InternalError(
+            throw new InternalError(
                 "Can't instantiate platform default Preferences factory "
-                + platformFactory);
-            error.initCause(e);
-            throw error;
+                + platformFactory, e);
         }
     }
 
diff --git a/jdk/src/share/classes/java/util/regex/Matcher.java b/jdk/src/share/classes/java/util/regex/Matcher.java
index a2f3cc6..d654790 100644
--- a/jdk/src/share/classes/java/util/regex/Matcher.java
+++ b/jdk/src/share/classes/java/util/regex/Matcher.java
@@ -515,6 +515,7 @@ public final class Matcher implements MatchResult {
      * @throws  IllegalArgumentException
      *          If there is no capturing group in the pattern
      *          with the given name
+     * @since 1.7
      */
     public String group(String name) {
         if (name == null)
diff --git a/jdk/src/share/classes/java/util/zip/ZipEntry.java b/jdk/src/share/classes/java/util/zip/ZipEntry.java
index b2b2562..8ade6d6 100644
--- a/jdk/src/share/classes/java/util/zip/ZipEntry.java
+++ b/jdk/src/share/classes/java/util/zip/ZipEntry.java
@@ -321,7 +321,7 @@ class ZipEntry implements ZipConstants, Cloneable {
             return e;
         } catch (CloneNotSupportedException e) {
             // This should never happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 }
diff --git a/jdk/src/share/classes/javax/crypto/Cipher.java b/jdk/src/share/classes/javax/crypto/Cipher.java
index bd17f02..8aa8b18 100644
--- a/jdk/src/share/classes/javax/crypto/Cipher.java
+++ b/jdk/src/share/classes/javax/crypto/Cipher.java
@@ -28,7 +28,6 @@ package javax.crypto;
 import java.util.*;
 import java.util.regex.*;
 
-import static java.util.Locale.ENGLISH;
 
 import java.security.*;
 import java.security.Provider.Service;
@@ -44,7 +43,6 @@ import java.nio.ReadOnlyBufferException;
 
 import sun.security.util.Debug;
 import sun.security.jca.*;
-import sun.security.jca.GetInstance.Instance;
 
 /**
  * This class provides the functionality of a cryptographic cipher for
@@ -227,10 +225,10 @@ public class Cipher {
 
     // remaining services to try in provider selection
     // null once provider is selected
-    private Iterator serviceIterator;
+    private Iterator<Service> serviceIterator;
 
     // list of transform Strings to lookup in the provider
-    private List transforms;
+    private List<Transform> transforms;
 
     private final Object lock;
 
@@ -271,7 +269,8 @@ public class Cipher {
     }
 
     private Cipher(CipherSpi firstSpi, Service firstService,
-            Iterator serviceIterator, String transformation, List transforms) {
+            Iterator<Service> serviceIterator, String transformation,
+            List<Transform> transforms) {
         this.firstSpi = firstSpi;
         this.firstService = firstService;
         this.serviceIterator = serviceIterator;
@@ -392,11 +391,11 @@ public class Cipher {
 
         // Map<String,Pattern> for previously compiled patterns
         // XXX use ConcurrentHashMap once available
-        private final static Map patternCache =
-            Collections.synchronizedMap(new HashMap());
+        private final static Map<String, Pattern> patternCache =
+            Collections.synchronizedMap(new HashMap<String, Pattern>());
 
         private static boolean matches(String regexp, String str) {
-            Pattern pattern = (Pattern)patternCache.get(regexp);
+            Pattern pattern = patternCache.get(regexp);
             if (pattern == null) {
                 pattern = Pattern.compile(regexp);
                 patternCache.put(regexp, pattern);
@@ -406,7 +405,7 @@ public class Cipher {
 
     }
 
-    private static List getTransforms(String transformation)
+    private static List<Transform> getTransforms(String transformation)
             throws NoSuchAlgorithmException {
         String[] parts = tokenizeTransformation(transformation);
 
@@ -426,7 +425,7 @@ public class Cipher {
             return Collections.singletonList(tr);
         } else { // if ((mode != null) && (pad != null)) {
             // DES/CBC/PKCS5Padding
-            List list = new ArrayList(4);
+            List<Transform> list = new ArrayList<>(4);
             list.add(new Transform(alg, "/" + mode + "/" + pad, null, null));
             list.add(new Transform(alg, "/" + mode, null, pad));
             list.add(new Transform(alg, "//" + pad, mode, null));
@@ -436,10 +435,10 @@ public class Cipher {
     }
 
     // get the transform matching the specified service
-    private static Transform getTransform(Service s, List transforms) {
+    private static Transform getTransform(Service s,
+                                          List<Transform> transforms) {
         String alg = s.getAlgorithm().toUpperCase(Locale.ENGLISH);
-        for (Iterator t = transforms.iterator(); t.hasNext(); ) {
-            Transform tr = (Transform)t.next();
+        for (Transform tr : transforms) {
             if (alg.endsWith(tr.suffix)) {
                 return tr;
             }
@@ -482,19 +481,18 @@ public class Cipher {
     public static final Cipher getInstance(String transformation)
             throws NoSuchAlgorithmException, NoSuchPaddingException
     {
-        List transforms = getTransforms(transformation);
-        List cipherServices = new ArrayList(transforms.size());
-        for (Iterator t = transforms.iterator(); t.hasNext(); ) {
-            Transform transform = (Transform)t.next();
+        List<Transform> transforms = getTransforms(transformation);
+        List<ServiceId> cipherServices = new ArrayList<>(transforms.size());
+        for (Transform transform : transforms) {
             cipherServices.add(new ServiceId("Cipher", transform.transform));
         }
-        List services = GetInstance.getServices(cipherServices);
+        List<Service> services = GetInstance.getServices(cipherServices);
         // make sure there is at least one service from a signed provider
         // and that it can use the specified mode and padding
-        Iterator t = services.iterator();
+        Iterator<Service> t = services.iterator();
         Exception failure = null;
         while (t.hasNext()) {
-            Service s = (Service)t.next();
+            Service s = t.next();
             if (JceSecurity.canUseProvider(s.getProvider()) == false) {
                 continue;
             }
@@ -620,11 +618,10 @@ public class Cipher {
             throw new IllegalArgumentException("Missing provider");
         }
         Exception failure = null;
-        List transforms = getTransforms(transformation);
+        List<Transform> transforms = getTransforms(transformation);
         boolean providerChecked = false;
         String paddingError = null;
-        for (Iterator t = transforms.iterator(); t.hasNext();) {
-            Transform tr = (Transform)t.next();
+        for (Transform tr : transforms) {
             Service s = provider.getService("Cipher", tr.transform);
             if (s == null) {
                 continue;
@@ -727,7 +724,7 @@ public class Cipher {
                     firstService = null;
                     firstSpi = null;
                 } else {
-                    s = (Service)serviceIterator.next();
+                    s = serviceIterator.next();
                     thisSpi = null;
                 }
                 if (JceSecurity.canUseProvider(s.getProvider()) == false) {
@@ -821,7 +818,7 @@ public class Cipher {
                     firstService = null;
                     firstSpi = null;
                 } else {
-                    s = (Service)serviceIterator.next();
+                    s = serviceIterator.next();
                     thisSpi = null;
                 }
                 // if provider says it does not support this key, ignore it
@@ -1622,7 +1619,7 @@ public class Cipher {
             // Check whether the cert has a key usage extension
             // marked as a critical extension.
             X509Certificate cert = (X509Certificate)certificate;
-            Set critSet = cert.getCriticalExtensionOIDs();
+            Set<String> critSet = cert.getCriticalExtensionOIDs();
 
             if (critSet != null && !critSet.isEmpty()
                 && critSet.contains(KEY_USAGE_EXTENSION_OID)) {
diff --git a/jdk/src/share/classes/javax/crypto/CryptoAllPermission.java b/jdk/src/share/classes/javax/crypto/CryptoAllPermission.java
index 2cea7b6..ad5e7fb 100644
--- a/jdk/src/share/classes/javax/crypto/CryptoAllPermission.java
+++ b/jdk/src/share/classes/javax/crypto/CryptoAllPermission.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -171,8 +171,8 @@ final class CryptoAllPermissionCollection extends PermissionCollection
      *
      * @return an enumeration of all the CryptoAllPermission objects.
      */
-    public Enumeration elements() {
-        Vector v = new Vector(1);
+    public Enumeration<Permission> elements() {
+        Vector<Permission> v = new Vector<>(1);
         if (all_allowed) v.add(CryptoAllPermission.INSTANCE);
         return v.elements();
     }
diff --git a/jdk/src/share/classes/javax/crypto/CryptoPermission.java b/jdk/src/share/classes/javax/crypto/CryptoPermission.java
index 75c43e8..6241e5f 100644
--- a/jdk/src/share/classes/javax/crypto/CryptoPermission.java
+++ b/jdk/src/share/classes/javax/crypto/CryptoPermission.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -475,14 +475,14 @@ implements Serializable {
 
     private static final long serialVersionUID = -511215555898802763L;
 
-    private Vector permissions;
+    private Vector<Permission> permissions;
 
     /**
      * Creates an empty CryptoPermissionCollection
      * object.
      */
     CryptoPermissionCollection() {
-        permissions = new Vector(3);
+        permissions = new Vector<Permission>(3);
     }
 
     /**
@@ -520,7 +520,7 @@ implements Serializable {
 
         CryptoPermission cp = (CryptoPermission)permission;
 
-        Enumeration e = permissions.elements();
+        Enumeration<Permission> e = permissions.elements();
 
         while (e.hasMoreElements()) {
             CryptoPermission x = (CryptoPermission) e.nextElement();
@@ -538,7 +538,7 @@ implements Serializable {
      * @return an enumeration of all the CryptoPermission objects.
      */
 
-    public Enumeration elements()
+    public Enumeration<Permission> elements()
     {
         return permissions.elements();
     }
diff --git a/jdk/src/share/classes/javax/crypto/CryptoPermissions.java b/jdk/src/share/classes/javax/crypto/CryptoPermissions.java
index a054c42..50c76b9 100644
--- a/jdk/src/share/classes/javax/crypto/CryptoPermissions.java
+++ b/jdk/src/share/classes/javax/crypto/CryptoPermissions.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -62,14 +62,14 @@ implements Serializable {
     private static final long serialVersionUID = 4946547168093391015L;
 
     // This class is similar to java.security.Permissions
-    private Hashtable perms;
+    private Hashtable<String, PermissionCollection> perms;
 
     /**
      * Creates a new CryptoPermissions object containing
      * no CryptoPermissionCollections.
      */
     CryptoPermissions() {
-        perms = new Hashtable(7);
+        perms = new Hashtable<String, PermissionCollection>(7);
     }
 
     /**
@@ -166,7 +166,7 @@ implements Serializable {
      *
      * @return an enumeration of all the Permissions.
      */
-    public Enumeration elements() {
+    public Enumeration<Permission> elements() {
         // go through each Permissions in the hash table
         // and call their elements() function.
         return new PermissionsEnumerator(perms.elements());
@@ -198,8 +198,7 @@ implements Serializable {
 
 
         PermissionCollection thatWildcard =
-            (PermissionCollection)other.perms.get(
-                                        CryptoPermission.ALG_NAME_WILDCARD);
+                other.perms.get(CryptoPermission.ALG_NAME_WILDCARD);
         int maxKeySize = 0;
         if (thatWildcard != null) {
             maxKeySize = ((CryptoPermission)
@@ -208,14 +207,12 @@ implements Serializable {
         // For each algorithm in this CryptoPermissions,
         // find out if there is anything we should add into
         // ret.
-        Enumeration thisKeys = this.perms.keys();
+        Enumeration<String> thisKeys = this.perms.keys();
         while (thisKeys.hasMoreElements()) {
-            String alg = (String)thisKeys.nextElement();
+            String alg = thisKeys.nextElement();
 
-            PermissionCollection thisPc =
-                (PermissionCollection)this.perms.get(alg);
-            PermissionCollection thatPc =
-                (PermissionCollection)other.perms.get(alg);
+            PermissionCollection thisPc = this.perms.get(alg);
+            PermissionCollection thatPc = other.perms.get(alg);
 
             CryptoPermission[] partialResult;
 
@@ -238,8 +235,7 @@ implements Serializable {
         }
 
         PermissionCollection thisWildcard =
-            (PermissionCollection)this.perms.get(
-                                      CryptoPermission.ALG_NAME_WILDCARD);
+                this.perms.get(CryptoPermission.ALG_NAME_WILDCARD);
 
         // If this CryptoPermissions doesn't
         // have a wildcard, we are done.
@@ -252,16 +248,15 @@ implements Serializable {
         maxKeySize =
             ((CryptoPermission)
                     thisWildcard.elements().nextElement()).getMaxKeySize();
-        Enumeration thatKeys = other.perms.keys();
+        Enumeration<String> thatKeys = other.perms.keys();
         while (thatKeys.hasMoreElements()) {
-            String alg = (String)thatKeys.nextElement();
+            String alg = thatKeys.nextElement();
 
             if (this.perms.containsKey(alg)) {
                 continue;
             }
 
-            PermissionCollection thatPc =
-                (PermissionCollection)other.perms.get(alg);
+            PermissionCollection thatPc = other.perms.get(alg);
 
             CryptoPermission[] partialResult;
 
@@ -286,9 +281,9 @@ implements Serializable {
      */
     private CryptoPermission[] getMinimum(PermissionCollection thisPc,
                                           PermissionCollection thatPc) {
-        Vector permVector = new Vector(2);
+        Vector<CryptoPermission> permVector = new Vector<>(2);
 
-        Enumeration thisPcPermissions = thisPc.elements();
+        Enumeration<Permission> thisPcPermissions = thisPc.elements();
 
         // For each CryptoPermission in
         // thisPc object, do the following:
@@ -307,7 +302,7 @@ implements Serializable {
             CryptoPermission thisCp =
                 (CryptoPermission)thisPcPermissions.nextElement();
 
-            Enumeration thatPcPermissions = thatPc.elements();
+            Enumeration<Permission> thatPcPermissions = thatPc.elements();
             while (thatPcPermissions.hasMoreElements()) {
                 CryptoPermission thatCp =
                     (CryptoPermission)thatPcPermissions.nextElement();
@@ -342,9 +337,9 @@ implements Serializable {
      */
     private CryptoPermission[] getMinimum(int maxKeySize,
                                           PermissionCollection pc) {
-        Vector permVector = new Vector(1);
+        Vector<CryptoPermission> permVector = new Vector<>(1);
 
-        Enumeration enum_ = pc.elements();
+        Enumeration<Permission> enum_ = pc.elements();
 
         while (enum_.hasMoreElements()) {
             CryptoPermission cp =
@@ -383,19 +378,17 @@ implements Serializable {
         // If this CryptoPermissions includes CryptoAllPermission,
         // we should return CryptoAllPermission.
         if (perms.containsKey(CryptoAllPermission.ALG_NAME)) {
-            return
-                (PermissionCollection)(perms.get(CryptoAllPermission.ALG_NAME));
+            return perms.get(CryptoAllPermission.ALG_NAME);
         }
 
-        PermissionCollection pc = (PermissionCollection)perms.get(alg);
+        PermissionCollection pc = perms.get(alg);
 
         // If there isn't a PermissionCollection for
         // the given algorithm,we should return the
         // PermissionCollection for the wildcard
         // if there is one.
         if (pc == null) {
-            pc = (PermissionCollection)perms.get(
-                                       CryptoPermission.ALG_NAME_WILDCARD);
+            pc = perms.get(CryptoPermission.ALG_NAME_WILDCARD);
         }
         return pc;
     }
@@ -414,7 +407,7 @@ implements Serializable {
 
         String alg = cryptoPerm.getAlgorithm();
 
-        PermissionCollection pc = (PermissionCollection)perms.get(alg);
+        PermissionCollection pc = perms.get(alg);
 
         if (pc == null) {
             pc = cryptoPerm.newPermissionCollection();
@@ -423,14 +416,14 @@ implements Serializable {
     }
 }
 
-final class PermissionsEnumerator implements Enumeration {
+final class PermissionsEnumerator implements Enumeration<Permission> {
 
     // all the perms
-    private Enumeration perms;
+    private Enumeration<PermissionCollection> perms;
     // the current set
-    private Enumeration permset;
+    private Enumeration<Permission> permset;
 
-    PermissionsEnumerator(Enumeration e) {
+    PermissionsEnumerator(Enumeration<PermissionCollection> e) {
         perms = e;
         permset = getNextEnumWithMore();
     }
@@ -454,7 +447,7 @@ final class PermissionsEnumerator implements Enumeration {
         return (permset != null);
     }
 
-    public synchronized Object nextElement() {
+    public synchronized Permission nextElement() {
         // hasMoreElements will update permset to the next permset
         // with something in it...
 
@@ -466,11 +459,10 @@ final class PermissionsEnumerator implements Enumeration {
 
     }
 
-    private Enumeration getNextEnumWithMore() {
+    private Enumeration<Permission> getNextEnumWithMore() {
         while (perms.hasMoreElements()) {
-            PermissionCollection pc =
-                (PermissionCollection) perms.nextElement();
-            Enumeration next = pc.elements();
+            PermissionCollection pc = perms.nextElement();
+            Enumeration<Permission> next = pc.elements();
             if (next.hasMoreElements())
                 return next;
         }
diff --git a/jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java b/jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java
index c7bdb33..e44d329 100644
--- a/jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java
+++ b/jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@ import java.io.*;
 import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.Vector;
-import java.util.StringTokenizer;
 import static java.util.Locale.ENGLISH;
 
 import java.security.GeneralSecurityException;
@@ -64,7 +63,7 @@ import java.lang.reflect.*;
 
 final class CryptoPolicyParser {
 
-    private Vector grantEntries;
+    private Vector<GrantEntry> grantEntries;
 
     // Convenience variables for parsing
     private StreamTokenizer st;
@@ -74,7 +73,7 @@ final class CryptoPolicyParser {
      * Creates a CryptoPolicyParser object.
      */
     CryptoPolicyParser() {
-        grantEntries = new Vector();
+        grantEntries = new Vector<GrantEntry>();
     }
 
     /**
@@ -127,7 +126,7 @@ final class CryptoPolicyParser {
          * The crypto jurisdiction policy must be consistent. The
          * following hashtable is used for checking consistency.
          */
-        Hashtable processedPermissions = null;
+        Hashtable<String, Vector<String>> processedPermissions = null;
 
         /*
          * The main parsing loop.  The loop is executed once for each entry
@@ -152,7 +151,8 @@ final class CryptoPolicyParser {
     /**
      * parse a Grant entry
      */
-    private GrantEntry parseGrantEntry(Hashtable processedPermissions)
+    private GrantEntry parseGrantEntry(
+            Hashtable<String, Vector<String>> processedPermissions)
         throws ParsingException, IOException
     {
         GrantEntry e = new GrantEntry();
@@ -180,7 +180,7 @@ final class CryptoPolicyParser {
      * parse a CryptoPermission entry
      */
     private CryptoPermissionEntry parsePermissionEntry(
-                                       Hashtable processedPermissions)
+            Hashtable<String, Vector<String>> processedPermissions)
         throws ParsingException, IOException
     {
         CryptoPermissionEntry e = new CryptoPermissionEntry();
@@ -252,7 +252,7 @@ final class CryptoPolicyParser {
             // AlgorithmParameterSpec class name.
             String algParamSpecClassName = match("quoted string");
 
-            Vector paramsV = new Vector(1);
+            Vector<Integer> paramsV = new Vector<>(1);
             while (peek(",")) {
                 match(",");
                 if (peek("number")) {
@@ -285,14 +285,14 @@ final class CryptoPolicyParser {
         AlgorithmParameterSpec ret = null;
 
         try {
-            Class apsClass = Class.forName(type);
-            Class[] paramClasses = new Class[params.length];
+            Class<?> apsClass = Class.forName(type);
+            Class<?>[] paramClasses = new Class<?>[params.length];
 
             for (int i = 0; i < params.length; i++) {
                 paramClasses[i] = int.class;
             }
 
-            Constructor c = apsClass.getConstructor(paramClasses);
+            Constructor<?> c = apsClass.getConstructor(paramClasses);
             ret = (AlgorithmParameterSpec) c.newInstance((Object[]) params);
         } catch (Exception e) {
             throw new ParsingException("Cannot call the constructor of " +
@@ -456,15 +456,15 @@ final class CryptoPolicyParser {
     }
 
     CryptoPermission[] getPermissions() {
-        Vector result = new Vector();
+        Vector<CryptoPermission> result = new Vector<>();
 
-        Enumeration grantEnum = grantEntries.elements();
+        Enumeration<GrantEntry> grantEnum = grantEntries.elements();
         while (grantEnum.hasMoreElements()) {
-            GrantEntry ge = (GrantEntry)grantEnum.nextElement();
-            Enumeration permEnum = ge.permissionElements();
+            GrantEntry ge = grantEnum.nextElement();
+            Enumeration<CryptoPermissionEntry> permEnum =
+                    ge.permissionElements();
             while (permEnum.hasMoreElements()) {
-                CryptoPermissionEntry pe =
-                    (CryptoPermissionEntry)permEnum.nextElement();
+                CryptoPermissionEntry pe = permEnum.nextElement();
                 if (pe.cryptoPermission.equals(
                                         "javax.crypto.CryptoAllPermission")) {
                     result.addElement(CryptoAllPermission.INSTANCE);
@@ -491,15 +491,14 @@ final class CryptoPolicyParser {
         return ret;
     }
 
-    private boolean isConsistent(String alg,
-                                 String exemptionMechanism,
-                                 Hashtable processedPermissions) {
+    private boolean isConsistent(String alg, String exemptionMechanism,
+            Hashtable<String, Vector<String>> processedPermissions) {
         String thisExemptionMechanism =
             exemptionMechanism == null ? "none" : exemptionMechanism;
 
         if (processedPermissions == null) {
-            processedPermissions = new Hashtable();
-            Vector exemptionMechanisms = new Vector(1);
+            processedPermissions = new Hashtable<String, Vector<String>>();
+            Vector<String> exemptionMechanisms = new Vector<>(1);
             exemptionMechanisms.addElement(thisExemptionMechanism);
             processedPermissions.put(alg, exemptionMechanisms);
             return true;
@@ -509,15 +508,15 @@ final class CryptoPolicyParser {
             return false;
         }
 
-        Vector exemptionMechanisms;
+        Vector<String> exemptionMechanisms;
 
         if (processedPermissions.containsKey(alg)) {
-            exemptionMechanisms = (Vector)processedPermissions.get(alg);
+            exemptionMechanisms = processedPermissions.get(alg);
             if (exemptionMechanisms.contains(thisExemptionMechanism)) {
                 return false;
             }
         } else {
-            exemptionMechanisms = new Vector(1);
+            exemptionMechanisms = new Vector<String>(1);
         }
 
         exemptionMechanisms.addElement(thisExemptionMechanism);
@@ -556,10 +555,10 @@ final class CryptoPolicyParser {
 
     private static class GrantEntry {
 
-        private Vector permissionEntries;
+        private Vector<CryptoPermissionEntry> permissionEntries;
 
         GrantEntry() {
-            permissionEntries = new Vector();
+            permissionEntries = new Vector<CryptoPermissionEntry>();
         }
 
         void add(CryptoPermissionEntry pe)
@@ -580,7 +579,7 @@ final class CryptoPolicyParser {
         /**
          * Enumerate all the permission entries in this GrantEntry.
          */
-        Enumeration permissionElements(){
+        Enumeration<CryptoPermissionEntry> permissionElements(){
             return permissionEntries.elements();
         }
 
diff --git a/jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java b/jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java
index 92cc1eb..5eeb481 100644
--- a/jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java
+++ b/jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -80,7 +80,7 @@ public class EncryptedPrivateKeyInfo {
             throw new NullPointerException("the encoded parameter " +
                                            "must be non-null");
         }
-        this.encoded = (byte[])encoded.clone();
+        this.encoded = encoded.clone();
         DerValue val = new DerValue(this.encoded);
 
         DerValue[] seq = new DerValue[2];
@@ -143,7 +143,7 @@ public class EncryptedPrivateKeyInfo {
             throw new IllegalArgumentException("the encryptedData " +
                                                 "parameter must not be empty");
         } else {
-            this.encryptedData = (byte[])encryptedData.clone();
+            this.encryptedData = encryptedData.clone();
         }
         // delay the generation of ASN.1 encoding until
         // getEncoded() is called
@@ -183,7 +183,7 @@ public class EncryptedPrivateKeyInfo {
             throw new IllegalArgumentException("the encryptedData " +
                                                 "parameter must not be empty");
         } else {
-            this.encryptedData = (byte[])encryptedData.clone();
+            this.encryptedData = encryptedData.clone();
         }
 
         // delay the generation of ASN.1 encoding until
@@ -222,7 +222,7 @@ public class EncryptedPrivateKeyInfo {
      * each time this method is called.
      */
     public byte[] getEncryptedData() {
-        return (byte[])this.encryptedData.clone();
+        return this.encryptedData.clone();
     }
 
     /**
@@ -247,26 +247,13 @@ public class EncryptedPrivateKeyInfo {
         throws InvalidKeySpecException {
         byte[] encoded = null;
         try {
-            encoded = cipher.doFinal((byte[])encryptedData);
+            encoded = cipher.doFinal(encryptedData);
             checkPKCS8Encoding(encoded);
-        } catch (GeneralSecurityException gse) {
-            InvalidKeySpecException ikse = new
-                InvalidKeySpecException(
-                    "Cannot retrieve the PKCS8EncodedKeySpec");
-            ikse.initCause(gse);
-            throw ikse;
-        } catch (IOException ioe) {
-            InvalidKeySpecException ikse = new
-                InvalidKeySpecException(
-                    "Cannot retrieve the PKCS8EncodedKeySpec");
-            ikse.initCause(ioe);
-            throw ikse;
-        } catch (IllegalStateException ise) {
-            InvalidKeySpecException ikse = new
-                InvalidKeySpecException(
-                    "Cannot retrieve the PKCS8EncodedKeySpec");
-            ikse.initCause(ise);
-            throw ikse;
+        } catch (GeneralSecurityException |
+                 IOException |
+                 IllegalStateException ex) {
+            throw new InvalidKeySpecException(
+                    "Cannot retrieve the PKCS8EncodedKeySpec", ex);
         }
         return new PKCS8EncodedKeySpec(encoded);
     }
@@ -289,16 +276,9 @@ public class EncryptedPrivateKeyInfo {
         } catch (NoSuchAlgorithmException nsae) {
             // rethrow
             throw nsae;
-        } catch (GeneralSecurityException gse) {
-            InvalidKeyException ike = new InvalidKeyException
-                ("Cannot retrieve the PKCS8EncodedKeySpec");
-            ike.initCause(gse);
-            throw ike;
-        } catch (IOException ioe) {
-            InvalidKeyException ike = new InvalidKeyException
-                ("Cannot retrieve the PKCS8EncodedKeySpec");
-            ike.initCause(ioe);
-            throw ike;
+        } catch (GeneralSecurityException | IOException ex) {
+            throw new InvalidKeyException(
+                    "Cannot retrieve the PKCS8EncodedKeySpec", ex);
         }
         return new PKCS8EncodedKeySpec(encoded);
     }
@@ -413,7 +393,7 @@ public class EncryptedPrivateKeyInfo {
             out.write(DerValue.tag_Sequence, tmp);
             this.encoded = out.toByteArray();
         }
-        return (byte[])this.encoded.clone();
+        return this.encoded.clone();
     }
 
     private static void checkTag(DerValue val, byte tag, String valName)
@@ -424,6 +404,7 @@ public class EncryptedPrivateKeyInfo {
         }
     }
 
+    @SuppressWarnings("fallthrough")
     private static void checkPKCS8Encoding(byte[] encodedKey)
         throws IOException {
         DerInputStream in = new DerInputStream(encodedKey);
@@ -432,6 +413,7 @@ public class EncryptedPrivateKeyInfo {
         switch (values.length) {
         case 4:
             checkTag(values[3], DerValue.TAG_CONTEXT, "attributes");
+            /* fall through */
         case 3:
             checkTag(values[0], DerValue.tag_Integer, "version");
             DerInputStream algid = values[1].toDerInputStream();
diff --git a/jdk/src/share/classes/javax/crypto/JarVerifier.java b/jdk/src/share/classes/javax/crypto/JarVerifier.java
index 68f9eb6..c56a0d1 100644
--- a/jdk/src/share/classes/javax/crypto/JarVerifier.java
+++ b/jdk/src/share/classes/javax/crypto/JarVerifier.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -86,23 +86,19 @@ final class JarVerifier {
 
             // Get a link to the Jarfile to search.
             try {
-                jf = (JarFile)
-                    AccessController.doPrivileged(
-                        new PrivilegedExceptionAction() {
-                            public Object run() throws Exception {
-                                JarURLConnection conn =
-                                    (JarURLConnection) url.openConnection();
-                                // You could do some caching here as
-                                // an optimization.
-                                conn.setUseCaches(false);
-                                return conn.getJarFile();
-                            }
-                        });
+                jf = AccessController.doPrivileged(
+                         new PrivilegedExceptionAction<JarFile>() {
+                             public JarFile run() throws Exception {
+                                 JarURLConnection conn =
+                                     (JarURLConnection) url.openConnection();
+                                 // You could do some caching here as
+                                 // an optimization.
+                                 conn.setUseCaches(false);
+                                 return conn.getJarFile();
+                             }
+                         });
             } catch (java.security.PrivilegedActionException pae) {
-                SecurityException se = new SecurityException(
-                    "Cannot load " + url.toString());
-                se.initCause(pae);
-                throw se;
+                throw new SecurityException("Cannot load " + url.toString(), pae);
             }
 
             if (jf != null) {
diff --git a/jdk/src/share/classes/javax/crypto/JceSecurity.java b/jdk/src/share/classes/javax/crypto/JceSecurity.java
index cac9cc7..7e06246 100644
--- a/jdk/src/share/classes/javax/crypto/JceSecurity.java
+++ b/jdk/src/share/classes/javax/crypto/JceSecurity.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -57,10 +57,12 @@ final class JceSecurity {
     // Map<Provider,?> of the providers we already have verified
     // value == PROVIDER_VERIFIED is successfully verified
     // value is failure cause Exception in error case
-    private final static Map verificationResults = new IdentityHashMap();
+    private final static Map<Provider, Object> verificationResults =
+            new IdentityHashMap<>();
 
     // Map<Provider,?> of the providers currently being verified
-    private final static Map verifyingProviders = new IdentityHashMap();
+    private final static Map<Provider, Object> verifyingProviders =
+            new IdentityHashMap<>();
 
     // Set the default value. May be changed in the static initializer.
     private static boolean isRestricted = true;
@@ -73,25 +75,23 @@ final class JceSecurity {
 
     static {
         try {
-            AccessController.doPrivileged(new PrivilegedExceptionAction() {
-                public Object run() throws Exception {
-                    setupJurisdictionPolicies();
-                    return null;
-                }
-            });
+            AccessController.doPrivileged(
+                new PrivilegedExceptionAction<Object>() {
+                    public Object run() throws Exception {
+                        setupJurisdictionPolicies();
+                        return null;
+                    }
+                });
 
             isRestricted = defaultPolicy.implies(
                 CryptoAllPermission.INSTANCE) ? false : true;
         } catch (Exception e) {
-            SecurityException se =
-                new SecurityException(
-                    "Can not initialize cryptographic mechanism");
-            se.initCause(e);
-            throw se;
+            throw new SecurityException(
+                    "Can not initialize cryptographic mechanism", e);
         }
     }
 
-    static Instance getInstance(String type, Class clazz, String algorithm,
+    static Instance getInstance(String type, Class<?> clazz, String algorithm,
             String provider) throws NoSuchAlgorithmException,
             NoSuchProviderException {
         Service s = GetInstance.getService(type, algorithm, provider);
@@ -104,7 +104,7 @@ final class JceSecurity {
         return GetInstance.getInstance(s, clazz);
     }
 
-    static Instance getInstance(String type, Class clazz, String algorithm,
+    static Instance getInstance(String type, Class<?> clazz, String algorithm,
             Provider provider) throws NoSuchAlgorithmException {
         Service s = GetInstance.getService(type, algorithm, provider);
         Exception ve = JceSecurity.getVerificationResult(provider);
@@ -116,12 +116,11 @@ final class JceSecurity {
         return GetInstance.getInstance(s, clazz);
     }
 
-    static Instance getInstance(String type, Class clazz, String algorithm)
+    static Instance getInstance(String type, Class<?> clazz, String algorithm)
             throws NoSuchAlgorithmException {
-        List services = GetInstance.getServices(type, algorithm);
+        List<Service> services = GetInstance.getServices(type, algorithm);
         NoSuchAlgorithmException failure = null;
-        for (Iterator t = services.iterator(); t.hasNext(); ) {
-            Service s = (Service)t.next();
+        for (Service s : services) {
             if (canUseProvider(s.getProvider()) == false) {
                 // allow only signed providers
                 continue;
@@ -213,16 +212,17 @@ final class JceSecurity {
     }
 
     // reference to a Map we use as a cache for codebases
-    private static final Map codeBaseCacheRef = new WeakHashMap();
+    private static final Map<Class<?>, URL> codeBaseCacheRef =
+            new WeakHashMap<>();
 
     /*
      * Retuns the CodeBase for the given class.
      */
-    static URL getCodeBase(final Class clazz) {
-        URL url = (URL)codeBaseCacheRef.get(clazz);
+    static URL getCodeBase(final Class<?> clazz) {
+        URL url = codeBaseCacheRef.get(clazz);
         if (url == null) {
-            url = (URL)AccessController.doPrivileged(new PrivilegedAction() {
-                public Object run() {
+            url = AccessController.doPrivileged(new PrivilegedAction<URL>() {
+                public URL run() {
                     ProtectionDomain pd = clazz.getProtectionDomain();
                     if (pd != null) {
                         CodeSource cs = pd.getCodeSource();
@@ -290,9 +290,9 @@ final class JceSecurity {
 
         JarFile jf = new JarFile(jarPathName);
 
-        Enumeration entries = jf.entries();
+        Enumeration<JarEntry> entries = jf.entries();
         while (entries.hasMoreElements()) {
-            JarEntry je = (JarEntry)entries.nextElement();
+            JarEntry je = entries.nextElement();
             InputStream is = null;
             try {
                 if (je.getName().startsWith("default_")) {
diff --git a/jdk/src/share/classes/javax/crypto/JceSecurityManager.java b/jdk/src/share/classes/javax/crypto/JceSecurityManager.java
index ef925fa..c05a200 100644
--- a/jdk/src/share/classes/javax/crypto/JceSecurityManager.java
+++ b/jdk/src/share/classes/javax/crypto/JceSecurityManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,6 @@ package javax.crypto;
 import java.security.*;
 import java.net.*;
 import java.util.*;
-import java.util.jar.*;
 
 /**
  * The JCE security manager.
@@ -50,8 +49,10 @@ final class JceSecurityManager extends SecurityManager {
     private static final CryptoPermissions defaultPolicy;
     private static final CryptoPermissions exemptPolicy;
     private static final CryptoAllPermission allPerm;
-    private static final Vector TrustedCallersCache = new Vector(2);
-    private static final Map exemptCache = new HashMap();
+    private static final Vector<Class<?>> TrustedCallersCache =
+            new Vector<>(2);
+    private static final Map<URL, CryptoPermissions> exemptCache =
+            new HashMap<>();
 
     // singleton instance
     static final JceSecurityManager INSTANCE;
@@ -60,12 +61,12 @@ final class JceSecurityManager extends SecurityManager {
         defaultPolicy = JceSecurity.getDefaultPolicy();
         exemptPolicy = JceSecurity.getExemptPolicy();
         allPerm = CryptoAllPermission.INSTANCE;
-        INSTANCE = (JceSecurityManager)
-              AccessController.doPrivileged(new PrivilegedAction() {
-                  public Object run() {
-                      return new JceSecurityManager();
-                  }
-              });
+        INSTANCE = AccessController.doPrivileged(
+                new PrivilegedAction<JceSecurityManager>() {
+                    public JceSecurityManager run() {
+                        return new JceSecurityManager();
+                    }
+                });
     }
 
     private JceSecurityManager() {
@@ -94,11 +95,11 @@ final class JceSecurityManager extends SecurityManager {
         // javax.crypto.* packages.
         // NOTE: javax.crypto.* package maybe subject to package
         // insertion, so need to check its classloader as well.
-        Class[] context = getClassContext();
+        Class<?>[] context = getClassContext();
         URL callerCodeBase = null;
         int i;
         for (i=0; i<context.length; i++) {
-            Class cls = context[i];
+            Class<?> cls = context[i];
             callerCodeBase = JceSecurity.getCodeBase(cls);
             if (callerCodeBase != null) {
                 break;
@@ -119,7 +120,7 @@ final class JceSecurityManager extends SecurityManager {
         CryptoPermissions appPerms;
         synchronized (this.getClass()) {
             if (exemptCache.containsKey(callerCodeBase)) {
-                appPerms = (CryptoPermissions)exemptCache.get(callerCodeBase);
+                appPerms = exemptCache.get(callerCodeBase);
             } else {
                 appPerms = getAppPermissions(callerCodeBase);
                 exemptCache.put(callerCodeBase, appPerms);
@@ -143,7 +144,7 @@ final class JceSecurityManager extends SecurityManager {
         if (appPc == null) {
             return defaultPerm;
         }
-        Enumeration enum_ = appPc.elements();
+        Enumeration<Permission> enum_ = appPc.elements();
         while (enum_.hasMoreElements()) {
             CryptoPermission cp = (CryptoPermission)enum_.nextElement();
             if (cp.getExemptionMechanism() == null) {
@@ -215,7 +216,7 @@ final class JceSecurityManager extends SecurityManager {
      * Returns the default permission for the given algorithm.
      */
     private CryptoPermission getDefaultPermission(String alg) {
-        Enumeration enum_ =
+        Enumeration<Permission> enum_ =
             defaultPolicy.getPermissionCollection(alg).elements();
         return (CryptoPermission)enum_.nextElement();
     }
diff --git a/jdk/src/share/classes/javax/crypto/KeyAgreement.java b/jdk/src/share/classes/javax/crypto/KeyAgreement.java
index 7bebc67..cb85cb5 100644
--- a/jdk/src/share/classes/javax/crypto/KeyAgreement.java
+++ b/jdk/src/share/classes/javax/crypto/KeyAgreement.java
@@ -93,7 +93,7 @@ public class KeyAgreement {
 
     // remaining services to try in provider selection
     // null once provider is selected
-    private Iterator serviceIterator;
+    private Iterator<Service> serviceIterator;
 
     private final Object lock;
 
@@ -112,7 +112,7 @@ public class KeyAgreement {
         lock = null;
     }
 
-    private KeyAgreement(Service s, Iterator t, String algorithm) {
+    private KeyAgreement(Service s, Iterator<Service> t, String algorithm) {
         firstService = s;
         serviceIterator = t;
         this.algorithm = algorithm;
@@ -165,11 +165,12 @@ public class KeyAgreement {
      */
     public static final KeyAgreement getInstance(String algorithm)
             throws NoSuchAlgorithmException {
-        List services = GetInstance.getServices("KeyAgreement", algorithm);
+        List<Service> services =
+                GetInstance.getServices("KeyAgreement", algorithm);
         // make sure there is at least one service from a signed provider
-        Iterator t = services.iterator();
+        Iterator<Service> t = services.iterator();
         while (t.hasNext()) {
-            Service s = (Service)t.next();
+            Service s = t.next();
             if (JceSecurity.canUseProvider(s.getProvider()) == false) {
                 continue;
             }
@@ -301,7 +302,7 @@ public class KeyAgreement {
                     s = firstService;
                     firstService = null;
                 } else {
-                    s = (Service)serviceIterator.next();
+                    s = serviceIterator.next();
                 }
                 if (JceSecurity.canUseProvider(s.getProvider()) == false) {
                     continue;
@@ -358,7 +359,7 @@ public class KeyAgreement {
                     s = firstService;
                     firstService = null;
                 } else {
-                    s = (Service)serviceIterator.next();
+                    s = serviceIterator.next();
                 }
                 // if provider says it does not support this key, ignore it
                 if (s.supportsParameter(key) == false) {
diff --git a/jdk/src/share/classes/javax/crypto/KeyGenerator.java b/jdk/src/share/classes/javax/crypto/KeyGenerator.java
index 8358f53..fee0839 100644
--- a/jdk/src/share/classes/javax/crypto/KeyGenerator.java
+++ b/jdk/src/share/classes/javax/crypto/KeyGenerator.java
@@ -127,7 +127,7 @@ public class KeyGenerator {
 
     private final Object lock = new Object();
 
-    private Iterator serviceIterator;
+    private Iterator<Service> serviceIterator;
 
     private int initType;
     private int initKeySize;
@@ -150,7 +150,8 @@ public class KeyGenerator {
 
     private KeyGenerator(String algorithm) throws NoSuchAlgorithmException {
         this.algorithm = algorithm;
-        List list = GetInstance.getServices("KeyGenerator", algorithm);
+        List<Service> list =
+                GetInstance.getServices("KeyGenerator", algorithm);
         serviceIterator = list.iterator();
         initType = I_NONE;
         // fetch and instantiate initial spi
@@ -320,7 +321,7 @@ public class KeyGenerator {
                 return null;
             }
             while (serviceIterator.hasNext()) {
-                Service s = (Service)serviceIterator.next();
+                Service s = serviceIterator.next();
                 if (JceSecurity.canUseProvider(s.getProvider()) == false) {
                     continue;
                 }
diff --git a/jdk/src/share/classes/javax/crypto/Mac.java b/jdk/src/share/classes/javax/crypto/Mac.java
index b178988..d0e241d 100644
--- a/jdk/src/share/classes/javax/crypto/Mac.java
+++ b/jdk/src/share/classes/javax/crypto/Mac.java
@@ -95,7 +95,7 @@ public class Mac implements Cloneable {
 
     // remaining services to try in provider selection
     // null once provider is selected
-    private Iterator serviceIterator;
+    private Iterator<Service> serviceIterator;
 
     private final Object lock;
 
@@ -114,7 +114,7 @@ public class Mac implements Cloneable {
         lock = null;
     }
 
-    private Mac(Service s, Iterator t, String algorithm) {
+    private Mac(Service s, Iterator<Service> t, String algorithm) {
         firstService = s;
         serviceIterator = t;
         this.algorithm = algorithm;
@@ -163,11 +163,11 @@ public class Mac implements Cloneable {
      */
     public static final Mac getInstance(String algorithm)
             throws NoSuchAlgorithmException {
-        List services = GetInstance.getServices("Mac", algorithm);
+        List<Service> services = GetInstance.getServices("Mac", algorithm);
         // make sure there is at least one service from a signed provider
-        Iterator t = services.iterator();
+        Iterator<Service> t = services.iterator();
         while (t.hasNext()) {
-            Service s = (Service)t.next();
+            Service s = t.next();
             if (JceSecurity.canUseProvider(s.getProvider()) == false) {
                 continue;
             }
@@ -288,7 +288,7 @@ public class Mac implements Cloneable {
                     s = firstService;
                     firstService = null;
                 } else {
-                    s = (Service)serviceIterator.next();
+                    s = serviceIterator.next();
                 }
                 if (JceSecurity.canUseProvider(s.getProvider()) == false) {
                     continue;
@@ -331,7 +331,7 @@ public class Mac implements Cloneable {
                     s = firstService;
                     firstService = null;
                 } else {
-                    s = (Service)serviceIterator.next();
+                    s = serviceIterator.next();
                 }
                 // if provider says it does not support this key, ignore it
                 if (s.supportsParameter(key) == false) {
diff --git a/jdk/src/share/classes/javax/crypto/SealedObject.java b/jdk/src/share/classes/javax/crypto/SealedObject.java
index 543c30b..9166c28 100644
--- a/jdk/src/share/classes/javax/crypto/SealedObject.java
+++ b/jdk/src/share/classes/javax/crypto/SealedObject.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -193,11 +193,11 @@ public class SealedObject implements Serializable {
      * @exception NullPointerException if the given sealed object is null.
      */
     protected SealedObject(SealedObject so) {
-        this.encryptedContent = (byte[]) so.encryptedContent.clone();
+        this.encryptedContent = so.encryptedContent.clone();
         this.sealAlg = so.sealAlg;
         this.paramsAlg = so.paramsAlg;
         if (so.encodedParams != null) {
-            this.encodedParams = (byte[]) so.encodedParams.clone();
+            this.encodedParams = so.encodedParams.clone();
         } else {
             this.encodedParams = null;
         }
@@ -353,10 +353,8 @@ public class SealedObject implements Serializable {
 
         try {
             return unseal(key, provider);
-        } catch (IllegalBlockSizeException ibse) {
-            throw new InvalidKeyException(ibse.getMessage());
-        } catch (BadPaddingException bpe) {
-            throw new InvalidKeyException(bpe.getMessage());
+        } catch (IllegalBlockSizeException | BadPaddingException ex) {
+            throw new InvalidKeyException(ex.getMessage());
         }
     }
 
@@ -450,9 +448,9 @@ public class SealedObject implements Serializable {
     {
         s.defaultReadObject();
         if (encryptedContent != null)
-            encryptedContent = (byte[])encryptedContent.clone();
+            encryptedContent = encryptedContent.clone();
         if (encodedParams != null)
-            encodedParams = (byte[])encodedParams.clone();
+            encodedParams = encodedParams.clone();
     }
 }
 
@@ -465,7 +463,7 @@ final class extObjectInputStream extends ObjectInputStream {
         super(in);
     }
 
-    protected Class resolveClass(ObjectStreamClass v)
+    protected Class<?> resolveClass(ObjectStreamClass v)
         throws IOException, ClassNotFoundException
     {
 
diff --git a/jdk/src/share/classes/javax/crypto/SecretKeyFactory.java b/jdk/src/share/classes/javax/crypto/SecretKeyFactory.java
index bf32bae..4160147 100644
--- a/jdk/src/share/classes/javax/crypto/SecretKeyFactory.java
+++ b/jdk/src/share/classes/javax/crypto/SecretKeyFactory.java
@@ -96,7 +96,7 @@ public class SecretKeyFactory {
 
     // remaining services to try in provider selection
     // null once provider is selected
-    private Iterator serviceIterator;
+    private Iterator<Service> serviceIterator;
 
     /**
      * Creates a SecretKeyFactory object.
@@ -114,7 +114,8 @@ public class SecretKeyFactory {
 
     private SecretKeyFactory(String algorithm) throws NoSuchAlgorithmException {
         this.algorithm = algorithm;
-        List list = GetInstance.getServices("SecretKeyFactory", algorithm);
+        List<Service> list =
+                GetInstance.getServices("SecretKeyFactory", algorithm);
         serviceIterator = list.iterator();
         // fetch and instantiate initial spi
         if (nextSpi(null) == null) {
@@ -290,7 +291,7 @@ public class SecretKeyFactory {
                 return null;
             }
             while (serviceIterator.hasNext()) {
-                Service s = (Service)serviceIterator.next();
+                Service s = serviceIterator.next();
                 if (JceSecurity.canUseProvider(s.getProvider()) == false) {
                     continue;
                 }
@@ -367,7 +368,7 @@ public class SecretKeyFactory {
      * (e.g., the given key has an algorithm or format not supported by this
      * secret-key factory).
      */
-    public final KeySpec getKeySpec(SecretKey key, Class keySpec)
+    public final KeySpec getKeySpec(SecretKey key, Class<?> keySpec)
             throws InvalidKeySpecException {
         if (serviceIterator == null) {
             return spi.engineGetKeySpec(key, keySpec);
diff --git a/jdk/src/share/classes/javax/crypto/SecretKeyFactorySpi.java b/jdk/src/share/classes/javax/crypto/SecretKeyFactorySpi.java
index 17acfad..342a5c7 100644
--- a/jdk/src/share/classes/javax/crypto/SecretKeyFactorySpi.java
+++ b/jdk/src/share/classes/javax/crypto/SecretKeyFactorySpi.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -88,7 +88,7 @@ public abstract class SecretKeyFactorySpi {
      * (e.g., the given key has an algorithm or format not supported by this
      * secret-key factory).
      */
-    protected abstract KeySpec engineGetKeySpec(SecretKey key, Class keySpec)
+    protected abstract KeySpec engineGetKeySpec(SecretKey key, Class<?> keySpec)
         throws InvalidKeySpecException;
 
     /**
diff --git a/jdk/src/share/classes/javax/crypto/spec/DESKeySpec.java b/jdk/src/share/classes/javax/crypto/spec/DESKeySpec.java
index 998bb94..2d35f0a 100644
--- a/jdk/src/share/classes/javax/crypto/spec/DESKeySpec.java
+++ b/jdk/src/share/classes/javax/crypto/spec/DESKeySpec.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -165,7 +165,7 @@ public class DESKeySpec implements java.security.spec.KeySpec {
      * each time this method is called.
      */
     public byte[] getKey() {
-        return (byte[])this.key.clone();
+        return this.key.clone();
     }
 
     /**
diff --git a/jdk/src/share/classes/javax/crypto/spec/DESedeKeySpec.java b/jdk/src/share/classes/javax/crypto/spec/DESedeKeySpec.java
index 4b84a85..32454de 100644
--- a/jdk/src/share/classes/javax/crypto/spec/DESedeKeySpec.java
+++ b/jdk/src/share/classes/javax/crypto/spec/DESedeKeySpec.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,7 +95,7 @@ public class DESedeKeySpec implements java.security.spec.KeySpec {
      * each time this method is called.
      */
     public byte[] getKey() {
-        return (byte[])this.key.clone();
+        return this.key.clone();
     }
 
     /**
diff --git a/jdk/src/share/classes/javax/crypto/spec/IvParameterSpec.java b/jdk/src/share/classes/javax/crypto/spec/IvParameterSpec.java
index c14b95a..e396c5b 100644
--- a/jdk/src/share/classes/javax/crypto/spec/IvParameterSpec.java
+++ b/jdk/src/share/classes/javax/crypto/spec/IvParameterSpec.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -94,6 +94,6 @@ public class IvParameterSpec implements AlgorithmParameterSpec {
      * each time this method is called.
      */
     public byte[] getIV() {
-        return (byte[])this.iv.clone();
+        return this.iv.clone();
     }
 }
diff --git a/jdk/src/share/classes/javax/crypto/spec/PBEKeySpec.java b/jdk/src/share/classes/javax/crypto/spec/PBEKeySpec.java
index 7792e33..239231d 100644
--- a/jdk/src/share/classes/javax/crypto/spec/PBEKeySpec.java
+++ b/jdk/src/share/classes/javax/crypto/spec/PBEKeySpec.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -80,7 +80,7 @@ public class PBEKeySpec implements KeySpec {
         if ((password == null) || (password.length == 0)) {
             this.password = new char[0];
         } else {
-            this.password = (char[])password.clone();
+            this.password = password.clone();
         }
     }
 
@@ -109,7 +109,7 @@ public class PBEKeySpec implements KeySpec {
         if ((password == null) || (password.length == 0)) {
             this.password = new char[0];
         } else {
-            this.password = (char[])password.clone();
+            this.password = password.clone();
         }
         if (salt == null) {
             throw new NullPointerException("the salt parameter " +
@@ -118,7 +118,7 @@ public class PBEKeySpec implements KeySpec {
             throw new IllegalArgumentException("the salt parameter " +
                                                 "must not be empty");
         } else {
-            this.salt = (byte[]) salt.clone();
+            this.salt = salt.clone();
         }
         if (iterationCount<=0) {
             throw new IllegalArgumentException("invalid iterationCount value");
@@ -151,7 +151,7 @@ public class PBEKeySpec implements KeySpec {
         if ((password == null) || (password.length == 0)) {
             this.password = new char[0];
         } else {
-            this.password = (char[])password.clone();
+            this.password = password.clone();
         }
         if (salt == null) {
             throw new NullPointerException("the salt parameter " +
@@ -160,7 +160,7 @@ public class PBEKeySpec implements KeySpec {
             throw new IllegalArgumentException("the salt parameter " +
                                                 "must not be empty");
         } else {
-            this.salt = (byte[]) salt.clone();
+            this.salt = salt.clone();
         }
         if (iterationCount<=0) {
             throw new IllegalArgumentException("invalid iterationCount value");
@@ -196,7 +196,7 @@ public class PBEKeySpec implements KeySpec {
         if (password == null) {
             throw new IllegalStateException("password has been cleared");
         }
-        return (char[]) password.clone();
+        return password.clone();
     }
 
     /**
@@ -210,7 +210,7 @@ public class PBEKeySpec implements KeySpec {
      */
     public final byte[] getSalt() {
         if (salt != null) {
-            return (byte[]) salt.clone();
+            return salt.clone();
         } else {
             return null;
         }
diff --git a/jdk/src/share/classes/javax/crypto/spec/PBEParameterSpec.java b/jdk/src/share/classes/javax/crypto/spec/PBEParameterSpec.java
index baf3518..b33d5bd 100644
--- a/jdk/src/share/classes/javax/crypto/spec/PBEParameterSpec.java
+++ b/jdk/src/share/classes/javax/crypto/spec/PBEParameterSpec.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package javax.crypto.spec;
 
-import java.math.BigInteger;
 import java.security.spec.AlgorithmParameterSpec;
 
 /**
@@ -53,7 +52,7 @@ public class PBEParameterSpec implements AlgorithmParameterSpec {
      * @exception NullPointerException if <code>salt</code> is null.
      */
     public PBEParameterSpec(byte[] salt, int iterationCount) {
-        this.salt = (byte[])salt.clone();
+        this.salt = salt.clone();
         this.iterationCount = iterationCount;
     }
 
@@ -64,7 +63,7 @@ public class PBEParameterSpec implements AlgorithmParameterSpec {
      * each time this method is called.
      */
     public byte[] getSalt() {
-        return (byte[])this.salt.clone();
+        return this.salt.clone();
     }
 
     /**
diff --git a/jdk/src/share/classes/javax/crypto/spec/PSource.java b/jdk/src/share/classes/javax/crypto/spec/PSource.java
index 1c4a5a1..a3d2efe 100644
--- a/jdk/src/share/classes/javax/crypto/spec/PSource.java
+++ b/jdk/src/share/classes/javax/crypto/spec/PSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,9 +25,6 @@
 
 package javax.crypto.spec;
 
-import java.math.BigInteger;
-import java.security.spec.AlgorithmParameterSpec;
-
 /**
  * This class specifies the source for encoding input P in OAEP Padding,
  * as defined in the
@@ -97,7 +94,7 @@ public class PSource {
          */
         public PSpecified(byte[] p) {
             super("PSpecified");
-            this.p = (byte[]) p.clone();
+            this.p = p.clone();
         }
         /**
          * Returns the value of encoding input P.
@@ -105,7 +102,7 @@ public class PSource {
          * returned each time this method is called.
          */
         public byte[] getValue() {
-            return (p.length==0? p: (byte[])p.clone());
+            return (p.length==0? p: p.clone());
         }
     }
 }
diff --git a/jdk/src/share/classes/javax/crypto/spec/RC2ParameterSpec.java b/jdk/src/share/classes/javax/crypto/spec/RC2ParameterSpec.java
index ff62222..766b317 100644
--- a/jdk/src/share/classes/javax/crypto/spec/RC2ParameterSpec.java
+++ b/jdk/src/share/classes/javax/crypto/spec/RC2ParameterSpec.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -117,7 +117,7 @@ public class RC2ParameterSpec implements AlgorithmParameterSpec {
      * Returns a new array each time this method is called.
      */
     public byte[] getIV() {
-        return (iv == null? null:(byte[])iv.clone());
+        return (iv == null? null:iv.clone());
     }
 
    /**
diff --git a/jdk/src/share/classes/javax/crypto/spec/RC5ParameterSpec.java b/jdk/src/share/classes/javax/crypto/spec/RC5ParameterSpec.java
index 000e629..7248eef 100644
--- a/jdk/src/share/classes/javax/crypto/spec/RC5ParameterSpec.java
+++ b/jdk/src/share/classes/javax/crypto/spec/RC5ParameterSpec.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -157,7 +157,7 @@ public class RC5ParameterSpec implements AlgorithmParameterSpec {
      * Returns a new array each time this method is called.
      */
     public byte[] getIV() {
-        return (iv == null? null:(byte[])iv.clone());
+        return (iv == null? null:iv.clone());
     }
 
    /**
diff --git a/jdk/src/share/classes/javax/crypto/spec/SecretKeySpec.java b/jdk/src/share/classes/javax/crypto/spec/SecretKeySpec.java
index 0dc7f27..827be0f 100644
--- a/jdk/src/share/classes/javax/crypto/spec/SecretKeySpec.java
+++ b/jdk/src/share/classes/javax/crypto/spec/SecretKeySpec.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,6 @@
 
 package javax.crypto.spec;
 
-import java.io.UnsupportedEncodingException;
-import java.security.Key;
 import java.security.spec.KeySpec;
 import javax.crypto.SecretKey;
 
@@ -95,7 +93,7 @@ public class SecretKeySpec implements KeySpec, SecretKey {
         if (key.length == 0) {
             throw new IllegalArgumentException("Empty key");
         }
-        this.key = (byte[])key.clone();
+        this.key = key.clone();
         this.algorithm = algorithm;
     }
 
@@ -181,7 +179,7 @@ public class SecretKeySpec implements KeySpec, SecretKey {
      * each time this method is called.
      */
     public byte[] getEncoded() {
-        return (byte[])this.key.clone();
+        return this.key.clone();
     }
 
     /**
diff --git a/jdk/src/share/classes/javax/management/openmbean/TabularDataSupport.java b/jdk/src/share/classes/javax/management/openmbean/TabularDataSupport.java
index cac5bf1..d41baae 100644
--- a/jdk/src/share/classes/javax/management/openmbean/TabularDataSupport.java
+++ b/jdk/src/share/classes/javax/management/openmbean/TabularDataSupport.java
@@ -671,7 +671,7 @@ public class TabularDataSupport
             return c;
         }
         catch (CloneNotSupportedException e) {
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
     }
 
diff --git a/jdk/src/share/classes/javax/naming/CompositeName.java b/jdk/src/share/classes/javax/naming/CompositeName.java
index 0eee140..fe9a099 100644
--- a/jdk/src/share/classes/javax/naming/CompositeName.java
+++ b/jdk/src/share/classes/javax/naming/CompositeName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -394,7 +394,7 @@ public class CompositeName implements Name {
       *         If posn is outside the specified range.
       */
     public Name getPrefix(int posn) {
-        Enumeration comps = impl.getPrefix(posn);
+        Enumeration<String> comps = impl.getPrefix(posn);
         return (new CompositeName(comps));
     }
 
@@ -412,7 +412,7 @@ public class CompositeName implements Name {
       *         If posn is outside the specified range.
       */
     public Name getSuffix(int posn) {
-        Enumeration comps = impl.getSuffix(posn);
+        Enumeration<String> comps = impl.getSuffix(posn);
         return (new CompositeName(comps));
     }
 
@@ -563,7 +563,7 @@ public class CompositeName implements Name {
     private void writeObject(java.io.ObjectOutputStream s)
             throws java.io.IOException {
         s.writeInt(size());
-        Enumeration comps = getAll();
+        Enumeration<String> comps = getAll();
         while (comps.hasMoreElements()) {
             s.writeObject(comps.nextElement());
         }
diff --git a/jdk/src/share/classes/javax/naming/CompoundName.java b/jdk/src/share/classes/javax/naming/CompoundName.java
index 53f2a21..76bd672 100644
--- a/jdk/src/share/classes/javax/naming/CompoundName.java
+++ b/jdk/src/share/classes/javax/naming/CompoundName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -376,7 +376,7 @@ public class CompoundName implements Name {
       *         If posn is outside the specified range.
       */
     public Name getPrefix(int posn) {
-        Enumeration comps = impl.getPrefix(posn);
+        Enumeration<String> comps = impl.getPrefix(posn);
         return (new CompoundName(comps, mySyntax));
     }
 
@@ -396,7 +396,7 @@ public class CompoundName implements Name {
       *         If posn is outside the specified range.
       */
     public Name getSuffix(int posn) {
-        Enumeration comps = impl.getSuffix(posn);
+        Enumeration<String> comps = impl.getSuffix(posn);
         return (new CompoundName(comps, mySyntax));
     }
 
@@ -557,7 +557,7 @@ public class CompoundName implements Name {
             throws java.io.IOException {
         s.writeObject(mySyntax);
         s.writeInt(size());
-        Enumeration comps = getAll();
+        Enumeration<String> comps = getAll();
         while (comps.hasMoreElements()) {
             s.writeObject(comps.nextElement());
         }
diff --git a/jdk/src/share/classes/javax/naming/InitialContext.java b/jdk/src/share/classes/javax/naming/InitialContext.java
index 04e7f4c..6dbc5be 100644
--- a/jdk/src/share/classes/javax/naming/InitialContext.java
+++ b/jdk/src/share/classes/javax/naming/InitialContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -232,10 +232,12 @@ public class InitialContext implements Context {
      * @see #InitialContext(boolean)
      * @since 1.3
      */
+    @SuppressWarnings("unchecked")
     protected void init(Hashtable<?,?> environment)
         throws NamingException
     {
-        myProps = ResourceManager.getInitialEnvironment(environment);
+        myProps = (Hashtable<Object,Object>)
+                ResourceManager.getInitialEnvironment(environment);
 
         if (myProps.get(Context.INITIAL_CONTEXT_FACTORY) != null) {
             // user has specified initial context factory; try to get it
@@ -265,6 +267,7 @@ public class InitialContext implements Context {
      * @see #lookup(Name)
      * @since 1.6
      */
+    @SuppressWarnings("unchecked")
     public static <T> T doLookup(Name name)
         throws NamingException {
         return (T) (new InitialContext()).lookup(name);
@@ -279,6 +282,7 @@ public class InitialContext implements Context {
      * @throws  NamingException if a naming exception is encountered
       * @since 1.6
      */
+    @SuppressWarnings("unchecked")
     public static <T> T doLookup(String name)
         throws NamingException {
         return (T) (new InitialContext()).lookup(name);
diff --git a/jdk/src/share/classes/javax/naming/NameImpl.java b/jdk/src/share/classes/javax/naming/NameImpl.java
index e5c8344..f964305 100644
--- a/jdk/src/share/classes/javax/naming/NameImpl.java
+++ b/jdk/src/share/classes/javax/naming/NameImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
 
 package javax.naming;
 
+import java.util.Locale;
 import java.util.Vector;
 import java.util.Enumeration;
 import java.util.Properties;
@@ -45,7 +46,7 @@ class NameImpl {
     private static final byte RIGHT_TO_LEFT = 2;
     private static final byte FLAT = 0;
 
-    private Vector components;
+    private Vector<String> components;
 
     private byte syntaxDirection = LEFT_TO_RIGHT;
     private String syntaxSeparator = "/";
@@ -97,7 +98,7 @@ class NameImpl {
         return (i);
     }
 
-    private final int extractComp(String name, int i, int len, Vector comps)
+    private final int extractComp(String name, int i, int len, Vector<String> comps)
     throws InvalidNameException {
         String beginQuote;
         String endQuote;
@@ -216,7 +217,8 @@ class NameImpl {
     }
 
     private static boolean toBoolean(String name) {
-        return ((name != null) && name.toLowerCase().equals("true"));
+        return ((name != null) &&
+            name.toLowerCase(Locale.ENGLISH).equals("true"));
     }
 
     private final void recordNamingConvention(Properties p) {
@@ -270,7 +272,7 @@ class NameImpl {
         if (syntax != null) {
             recordNamingConvention(syntax);
         }
-        components = new Vector();
+        components = new Vector<>();
     }
 
     NameImpl(Properties syntax, String n) throws InvalidNameException {
@@ -284,8 +286,8 @@ class NameImpl {
             i = extractComp(n, i, len, components);
 
             String comp = rToL
-                ? (String)components.firstElement()
-                : (String)components.lastElement();
+                ? components.firstElement()
+                : components.lastElement();
             if (comp.length() >= 1) {
                 compsAllEmpty = false;
             }
@@ -304,7 +306,7 @@ class NameImpl {
         }
     }
 
-    NameImpl(Properties syntax, Enumeration comps) {
+    NameImpl(Properties syntax, Enumeration<String> comps) {
         this(syntax);
 
         // %% comps could shrink in the middle.
@@ -455,9 +457,9 @@ class NameImpl {
         for (int i = 0; i < size; i++) {
             if (syntaxDirection == RIGHT_TO_LEFT) {
                 comp =
-                    stringifyComp((String) components.elementAt(size - 1 - i));
+                    stringifyComp(components.elementAt(size - 1 - i));
             } else {
-                comp = stringifyComp((String) components.elementAt(i));
+                comp = stringifyComp(components.elementAt(i));
             }
             if ((i != 0) && (syntaxSeparator != null))
                 answer.append(syntaxSeparator);
@@ -474,12 +476,12 @@ class NameImpl {
         if ((obj != null) && (obj instanceof NameImpl)) {
             NameImpl target = (NameImpl)obj;
             if (target.size() ==  this.size()) {
-                Enumeration mycomps = getAll();
-                Enumeration comps = target.getAll();
+                Enumeration<String> mycomps = getAll();
+                Enumeration<String> comps = target.getAll();
                 while (mycomps.hasMoreElements()) {
                     // %% comps could shrink in the middle.
-                    String my = (String)mycomps.nextElement();
-                    String his = (String)comps.nextElement();
+                    String my = mycomps.nextElement();
+                    String his = comps.nextElement();
                     if (syntaxTrimBlanks) {
                         my = my.trim();
                         his = his.trim();
@@ -526,11 +528,14 @@ class NameImpl {
                 comp1 = comp1.trim();
                 comp2 = comp2.trim();
             }
+
+            int local;
             if (syntaxCaseInsensitive) {
-                comp1 = comp1.toLowerCase();
-                comp2 = comp2.toLowerCase();
+                local = comp1.compareToIgnoreCase(comp2);
+            } else {
+                local = comp1.compareTo(comp2);
             }
-            int local = comp1.compareTo(comp2);
+
             if (local != 0) {
                 return local;
             }
@@ -543,22 +548,22 @@ class NameImpl {
         return (components.size());
     }
 
-    public Enumeration getAll() {
+    public Enumeration<String> getAll() {
         return components.elements();
     }
 
     public String get(int posn) {
-        return ((String) components.elementAt(posn));
+        return components.elementAt(posn);
     }
 
-    public Enumeration getPrefix(int posn) {
+    public Enumeration<String> getPrefix(int posn) {
         if (posn < 0 || posn > size()) {
             throw new ArrayIndexOutOfBoundsException(posn);
         }
         return new NameImplEnumerator(components, 0, posn);
     }
 
-    public Enumeration getSuffix(int posn) {
+    public Enumeration<String> getSuffix(int posn) {
         int cnt = size();
         if (posn < 0 || posn > cnt) {
             throw new ArrayIndexOutOfBoundsException(posn);
@@ -570,15 +575,15 @@ class NameImpl {
         return (components.isEmpty());
     }
 
-    public boolean startsWith(int posn, Enumeration prefix) {
+    public boolean startsWith(int posn, Enumeration<String> prefix) {
         if (posn < 0 || posn > size()) {
             return false;
         }
         try {
-            Enumeration mycomps = getPrefix(posn);
+            Enumeration<String> mycomps = getPrefix(posn);
             while (mycomps.hasMoreElements()) {
-                String my = (String)mycomps.nextElement();
-                String his = (String)prefix.nextElement();
+                String my = mycomps.nextElement();
+                String his = prefix.nextElement();
                 if (syntaxTrimBlanks) {
                     my = my.trim();
                     his = his.trim();
@@ -597,7 +602,7 @@ class NameImpl {
         return true;
     }
 
-    public boolean endsWith(int posn, Enumeration suffix) {
+    public boolean endsWith(int posn, Enumeration<String> suffix) {
         // posn is number of elements in suffix
         // startIndex is the starting position in this name
         // at which to start the comparison. It is calculated by
@@ -607,10 +612,10 @@ class NameImpl {
             return false;
         }
         try {
-            Enumeration mycomps = getSuffix(startIndex);
+            Enumeration<String> mycomps = getSuffix(startIndex);
             while (mycomps.hasMoreElements()) {
-                String my = (String)mycomps.nextElement();
-                String his = (String)suffix.nextElement();
+                String my = mycomps.nextElement();
+                String his = suffix.nextElement();
                 if (syntaxTrimBlanks) {
                     my = my.trim();
                     his = his.trim();
@@ -629,11 +634,11 @@ class NameImpl {
         return true;
     }
 
-    public boolean addAll(Enumeration comps) throws InvalidNameException {
+    public boolean addAll(Enumeration<String> comps) throws InvalidNameException {
         boolean added = false;
         while (comps.hasMoreElements()) {
             try {
-                Object comp = comps.nextElement();
+                String comp = comps.nextElement();
                 if (size() > 0 && syntaxDirection == FLAT) {
                     throw new InvalidNameException(
                         "A flat name can only have a single component");
@@ -647,12 +652,12 @@ class NameImpl {
         return added;
     }
 
-    public boolean addAll(int posn, Enumeration comps)
+    public boolean addAll(int posn, Enumeration<String> comps)
     throws InvalidNameException {
         boolean added = false;
         for (int i = posn; comps.hasMoreElements(); i++) {
             try {
-                Object comp = comps.nextElement();
+                String comp = comps.nextElement();
                 if (size() > 0 && syntaxDirection == FLAT) {
                     throw new InvalidNameException(
                         "A flat name can only have a single component");
@@ -690,13 +695,13 @@ class NameImpl {
 
     public int hashCode() {
         int hash = 0;
-        for (Enumeration e = getAll(); e.hasMoreElements();) {
-            String comp = (String)e.nextElement();
+        for (Enumeration<String> e = getAll(); e.hasMoreElements();) {
+            String comp = e.nextElement();
             if (syntaxTrimBlanks) {
                 comp = comp.trim();
             }
             if (syntaxCaseInsensitive) {
-                comp = comp.toLowerCase();
+                comp = comp.toLowerCase(Locale.ENGLISH);
             }
 
             hash += comp.hashCode();
@@ -706,12 +711,12 @@ class NameImpl {
 }
 
 final
-class NameImplEnumerator implements Enumeration {
-    Vector vector;
+class NameImplEnumerator implements Enumeration<String> {
+    Vector<String> vector;
     int count;
     int limit;
 
-    NameImplEnumerator(Vector v, int start, int lim) {
+    NameImplEnumerator(Vector<String> v, int start, int lim) {
         vector = v;
         count = start;
         limit = lim;
@@ -721,7 +726,7 @@ class NameImplEnumerator implements Enumeration {
         return count < limit;
     }
 
-    public Object nextElement() {
+    public String nextElement() {
         if (count < limit) {
             return vector.elementAt(count++);
         }
diff --git a/jdk/src/share/classes/javax/naming/Reference.java b/jdk/src/share/classes/javax/naming/Reference.java
index 854b718..51e0be7 100644
--- a/jdk/src/share/classes/javax/naming/Reference.java
+++ b/jdk/src/share/classes/javax/naming/Reference.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -120,7 +120,7 @@ public class Reference implements Cloneable, java.io.Serializable {
       */
     public Reference(String className) {
         this.className  = className;
-        addrs = new Vector();
+        addrs = new Vector<>();
     }
 
     /**
@@ -134,7 +134,7 @@ public class Reference implements Cloneable, java.io.Serializable {
       */
     public Reference(String className, RefAddr addr) {
         this.className = className;
-        addrs = new Vector();
+        addrs = new Vector<>();
         addrs.addElement(addr);
     }
 
@@ -225,7 +225,7 @@ public class Reference implements Cloneable, java.io.Serializable {
         int len = addrs.size();
         RefAddr addr;
         for (int i = 0; i < len; i++) {
-            addr = (RefAddr) addrs.elementAt(i);
+            addr = addrs.elementAt(i);
             if (addr.getType().compareTo(addrType) == 0)
                 return addr;
         }
@@ -241,7 +241,7 @@ public class Reference implements Cloneable, java.io.Serializable {
       *         range.
       */
     public RefAddr get(int posn) {
-        return ((RefAddr) addrs.elementAt(posn));
+        return addrs.elementAt(posn);
     }
 
     /**
@@ -331,8 +331,8 @@ public class Reference implements Cloneable, java.io.Serializable {
             // ignore factory information
             if (target.className.equals(this.className) &&
                 target.size() ==  this.size()) {
-                Enumeration mycomps = getAll();
-                Enumeration comps = target.getAll();
+                Enumeration<RefAddr> mycomps = getAll();
+                Enumeration<RefAddr> comps = target.getAll();
                 while (mycomps.hasMoreElements())
                     if (!(mycomps.nextElement().equals(comps.nextElement())))
                         return false;
@@ -350,7 +350,7 @@ public class Reference implements Cloneable, java.io.Serializable {
       */
     public int hashCode() {
         int hash = className.hashCode();
-        for (Enumeration e = getAll(); e.hasMoreElements();)
+        for (Enumeration<RefAddr> e = getAll(); e.hasMoreElements();)
             hash += e.nextElement().hashCode();
         return hash;
     }
@@ -382,7 +382,7 @@ public class Reference implements Cloneable, java.io.Serializable {
     public Object clone() {
         Reference r = new Reference(className, classFactory, classFactoryLocation);
         Enumeration<RefAddr> a = getAll();
-        r.addrs = new Vector();
+        r.addrs = new Vector<>();
 
         while (a.hasMoreElements())
             r.addrs.addElement(a.nextElement());
diff --git a/jdk/src/share/classes/javax/naming/directory/BasicAttribute.java b/jdk/src/share/classes/javax/naming/directory/BasicAttribute.java
index 762fbaa..dadd87d 100644
--- a/jdk/src/share/classes/javax/naming/directory/BasicAttribute.java
+++ b/jdk/src/share/classes/javax/naming/directory/BasicAttribute.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -91,6 +91,7 @@ public class BasicAttribute implements Attribute {
      */
     protected boolean ordered = false;
 
+    @SuppressWarnings("unchecked")
     public Object clone() {
         BasicAttribute attr;
         try {
@@ -98,7 +99,7 @@ public class BasicAttribute implements Attribute {
         } catch (CloneNotSupportedException e) {
             attr = new BasicAttribute(attrID, ordered);
         }
-        attr.values = (Vector)values.clone();
+        attr.values = (Vector<Object>)values.clone();
         return attr;
     }
 
@@ -149,7 +150,7 @@ public class BasicAttribute implements Attribute {
                         }
                     } else {
                         // order is not relevant; check for existence
-                        Enumeration theirs = target.getAll();
+                        Enumeration<?> theirs = target.getAll();
                         while (theirs.hasMoreElements()) {
                             if (find(theirs.nextElement()) < 0)
                                 return false;
@@ -215,7 +216,7 @@ public class BasicAttribute implements Attribute {
             answer.append("No values");
         } else {
             boolean start = true;
-            for (Enumeration e = values.elements(); e.hasMoreElements(); ) {
+            for (Enumeration<Object> e = values.elements(); e.hasMoreElements(); ) {
                 if (!start)
                     answer.append(", ");
                 answer.append(e.nextElement());
@@ -254,7 +255,7 @@ public class BasicAttribute implements Attribute {
       */
     public BasicAttribute(String id, boolean ordered) {
         attrID = id;
-        values = new Vector();
+        values = new Vector<>();
         this.ordered = ordered;
     }
 
@@ -327,7 +328,7 @@ public class BasicAttribute implements Attribute {
     // For finding first element that has a null in JDK1.1 Vector.
     // In the Java 2 platform, can just replace this with Vector.indexOf(target);
     private int find(Object target) {
-        Class cl;
+        Class<?> cl;
         if (target == null) {
             int ct = values.size();
             for (int i = 0 ; i < ct ; i++) {
@@ -514,7 +515,7 @@ public class BasicAttribute implements Attribute {
             throws java.io.IOException, ClassNotFoundException {
         s.defaultReadObject();  // read in the attrID
         int n = s.readInt();    // number of values
-        values = new Vector(n);
+        values = new Vector<>(n);
         while (--n >= 0) {
             values.addElement(s.readObject());
         }
@@ -522,31 +523,31 @@ public class BasicAttribute implements Attribute {
 
 
     class ValuesEnumImpl implements NamingEnumeration<Object> {
-    Enumeration list;
+        Enumeration<Object> list;
 
-    ValuesEnumImpl() {
-        list = values.elements();
-    }
+        ValuesEnumImpl() {
+            list = values.elements();
+        }
 
-    public boolean hasMoreElements() {
-        return list.hasMoreElements();
-    }
+        public boolean hasMoreElements() {
+            return list.hasMoreElements();
+        }
 
-    public Object nextElement() {
-        return(list.nextElement());
-    }
+        public Object nextElement() {
+            return(list.nextElement());
+        }
 
-    public Object next() throws NamingException {
-        return list.nextElement();
-    }
+        public Object next() throws NamingException {
+            return list.nextElement();
+        }
 
-    public boolean hasMore() throws NamingException {
-        return list.hasMoreElements();
-    }
+        public boolean hasMore() throws NamingException {
+            return list.hasMoreElements();
+        }
 
-    public void close() throws NamingException {
-        list = null;
-    }
+        public void close() throws NamingException {
+            list = null;
+        }
     }
 
     /**
diff --git a/jdk/src/share/classes/javax/naming/directory/BasicAttributes.java b/jdk/src/share/classes/javax/naming/directory/BasicAttributes.java
index a8b5c33..70ed5f4 100644
--- a/jdk/src/share/classes/javax/naming/directory/BasicAttributes.java
+++ b/jdk/src/share/classes/javax/naming/directory/BasicAttributes.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@ package javax.naming.directory;
 
 import java.util.Hashtable;
 import java.util.Enumeration;
+import java.util.Locale;
 
 import javax.naming.NamingException;
 import javax.naming.NamingEnumeration;
@@ -78,7 +79,7 @@ public class BasicAttributes implements Attributes {
     // If ignoreCase is true, key is aways lowercase.
     // If ignoreCase is false, key is stored as supplied by put().
     // %%% Not declared "private" due to bug 4064984.
-    transient Hashtable attrs = new Hashtable(11);
+    transient Hashtable<String,Attribute> attrs = new Hashtable<>(11);
 
     /**
       * Constructs a new instance of Attributes.
@@ -138,6 +139,7 @@ public class BasicAttributes implements Attributes {
         this.put(new BasicAttribute(attrID, val));
     }
 
+    @SuppressWarnings("unchecked")
     public Object clone() {
         BasicAttributes attrset;
         try {
@@ -145,7 +147,7 @@ public class BasicAttributes implements Attributes {
         } catch (CloneNotSupportedException e) {
             attrset = new BasicAttributes(ignoreCase);
         }
-        attrset.attrs = (Hashtable)attrs.clone();
+        attrset.attrs = (Hashtable<String,Attribute>)attrs.clone();
         return attrset;
     }
 
@@ -158,8 +160,8 @@ public class BasicAttributes implements Attributes {
     }
 
     public Attribute get(String attrID) {
-        Attribute attr = (Attribute) attrs.get(
-                ignoreCase ? attrID.toLowerCase() : attrID);
+        Attribute attr = attrs.get(
+                ignoreCase ? attrID.toLowerCase(Locale.ENGLISH) : attrID);
         return (attr);
     }
 
@@ -178,14 +180,14 @@ public class BasicAttributes implements Attributes {
     public Attribute put(Attribute attr) {
         String id = attr.getID();
         if (ignoreCase) {
-            id = id.toLowerCase();
+            id = id.toLowerCase(Locale.ENGLISH);
         }
-        return (Attribute)attrs.put(id, attr);
+        return attrs.put(id, attr);
     }
 
     public Attribute remove(String attrID) {
-        String id = (ignoreCase ? attrID.toLowerCase() : attrID);
-        return (Attribute)attrs.remove(id);
+        String id = (ignoreCase ? attrID.toLowerCase(Locale.ENGLISH) : attrID);
+        return attrs.remove(id);
     }
 
     /**
@@ -234,7 +236,7 @@ public class BasicAttributes implements Attributes {
             if (size() == target.size()) {
                 Attribute their, mine;
                 try {
-                    NamingEnumeration theirs = target.getAll();
+                    NamingEnumeration<?> theirs = target.getAll();
                     while (theirs.hasMore()) {
                         their = (Attribute)theirs.next();
                         mine = get(their.getID());
@@ -268,7 +270,7 @@ public class BasicAttributes implements Attributes {
     public int hashCode() {
         int hash = (ignoreCase ? 1 : 0);
         try {
-            NamingEnumeration all = getAll();
+            NamingEnumeration<?> all = getAll();
             while (all.hasMore()) {
                 hash += all.next().hashCode();
             }
@@ -286,7 +288,7 @@ public class BasicAttributes implements Attributes {
             throws java.io.IOException {
         s.defaultWriteObject(); // write out the ignoreCase flag
         s.writeInt(attrs.size());
-        Enumeration attrEnum = attrs.elements();
+        Enumeration<Attribute> attrEnum = attrs.elements();
         while (attrEnum.hasMoreElements()) {
             s.writeObject(attrEnum.nextElement());
         }
@@ -300,8 +302,8 @@ public class BasicAttributes implements Attributes {
         s.defaultReadObject();  // read in the ignoreCase flag
         int n = s.readInt();    // number of attributes
         attrs = (n >= 1)
-            ? new Hashtable(n * 2)
-            : new Hashtable(2); // can't have initial size of 0 (grrr...)
+            ? new Hashtable<String,Attribute>(n * 2)
+            : new Hashtable<String,Attribute>(2); // can't have initial size of 0 (grrr...)
         while (--n >= 0) {
             put((Attribute)s.readObject());
         }
diff --git a/jdk/src/share/classes/javax/naming/ldap/InitialLdapContext.java b/jdk/src/share/classes/javax/naming/ldap/InitialLdapContext.java
index 7404cab..df77164 100644
--- a/jdk/src/share/classes/javax/naming/ldap/InitialLdapContext.java
+++ b/jdk/src/share/classes/javax/naming/ldap/InitialLdapContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -129,15 +129,16 @@ public class InitialLdapContext extends InitialDirContext implements LdapContext
      * @see #reconnect
      * @see LdapContext#reconnect
      */
+    @SuppressWarnings("unchecked")
     public InitialLdapContext(Hashtable<?,?> environment,
                               Control[] connCtls)
             throws NamingException {
         super(true); // don't initialize yet
 
         // Clone environment since caller owns it.
-        Hashtable env = (environment == null)
-            ? new Hashtable(11)
-            : (Hashtable)environment.clone();
+        Hashtable<Object,Object> env = (environment == null)
+            ? new Hashtable<>(11)
+            : (Hashtable<Object,Object>)environment.clone();
 
         // Put connect controls into environment.  Copy them first since
         // caller owns the array.
diff --git a/jdk/src/share/classes/javax/naming/ldap/LdapName.java b/jdk/src/share/classes/javax/naming/ldap/LdapName.java
index 30e173f..256f753 100644
--- a/jdk/src/share/classes/javax/naming/ldap/LdapName.java
+++ b/jdk/src/share/classes/javax/naming/ldap/LdapName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -104,9 +104,7 @@ import java.io.IOException;
 
 public class LdapName implements Name {
 
-    // private transient ArrayList<Rdn> rdns;   // parsed name components
-
-    private transient ArrayList rdns;   // parsed name components
+    private transient List<Rdn> rdns;   // parsed name components
     private transient String unparsed;  // if non-null, the DN in unparsed form
     private static final long serialVersionUID = -1595520034788997356L;
 
@@ -144,14 +142,14 @@ public class LdapName implements Name {
         //              "Invalid entries, list entries must be of type Rdn");
         //  }
 
-        this.rdns = new ArrayList(rdns.size());
+        this.rdns = new ArrayList<>(rdns.size());
         for (int i = 0; i < rdns.size(); i++) {
             Object obj = rdns.get(i);
             if (!(obj instanceof Rdn)) {
                 throw new IllegalArgumentException("Entry:" + obj +
                         "  not a valid type;list entries must be of type Rdn");
             }
-            this.rdns.add(obj);
+            this.rdns.add((Rdn)obj);
         }
     }
 
@@ -161,14 +159,12 @@ public class LdapName implements Name {
      * (if "name" is not null), the unparsed DN.
      *
      */
-    // private LdapName(String name, List<Rdn> rdns, int beg, int end) {
-
-    private LdapName(String name, ArrayList rdns, int beg, int end) {
+    private LdapName(String name, List<Rdn> rdns, int beg, int end) {
         unparsed = name;
         // this.rdns = rdns.subList(beg, end);
 
-        List sList = rdns.subList(beg, end);
-        this.rdns = new ArrayList(sList);
+        List<Rdn> sList = rdns.subList(beg, end);
+        this.rdns = new ArrayList<>(sList);
     }
 
     /**
@@ -201,7 +197,7 @@ public class LdapName implements Name {
      * Each element of the enumeration is of class String.
      */
     public Enumeration<String> getAll() {
-        final Iterator iter = rdns.iterator();
+        final Iterator<Rdn> iter = rdns.iterator();
 
         return new Enumeration<String>() {
             public boolean hasMoreElements() {
@@ -234,7 +230,7 @@ public class LdapName implements Name {
      *            specified range.
      */
     public Rdn getRdn(int posn) {
-        return (Rdn) rdns.get(posn);
+        return rdns.get(posn);
     }
 
     /**
@@ -370,7 +366,7 @@ public class LdapName implements Name {
                 doesListMatch(len1 - len2, len1, rdns));
     }
 
-    private boolean doesListMatch(int beg, int end, List rdns) {
+    private boolean doesListMatch(int beg, int end, List<Rdn> rdns) {
         for (int i = beg; i < end; i++) {
             if (!this.rdns.get(i).equals(rdns.get(i - beg))) {
                 return false;
@@ -457,10 +453,10 @@ public class LdapName implements Name {
             LdapName s = (LdapName) suffix;
             rdns.addAll(posn, s.rdns);
         } else {
-            Enumeration comps = suffix.getAll();
+            Enumeration<String> comps = suffix.getAll();
             while (comps.hasMoreElements()) {
                 rdns.add(posn++,
-                    (new Rfc2253Parser((String) comps.nextElement()).
+                    (new Rfc2253Parser(comps.nextElement()).
                     parseRdn()));
             }
         }
@@ -489,7 +485,7 @@ public class LdapName implements Name {
                 throw new IllegalArgumentException("Entry:" + obj +
                 "  not a valid type;suffix list entries must be of type Rdn");
             }
-            rdns.add(i + posn, obj);
+            rdns.add(i + posn, (Rdn)obj);
         }
         return this;
     }
@@ -627,11 +623,11 @@ public class LdapName implements Name {
         StringBuilder builder = new StringBuilder();
         int size = rdns.size();
         if ((size - 1) >= 0) {
-            builder.append((Rdn) rdns.get(size - 1));
+            builder.append(rdns.get(size - 1));
         }
         for (int next = size - 2; next >= 0; next--) {
             builder.append(',');
-            builder.append((Rdn) rdns.get(next));
+            builder.append(rdns.get(next));
         }
         unparsed = builder.toString();
         return unparsed;
@@ -672,8 +668,8 @@ public class LdapName implements Name {
         // Compare RDNs one by one for equality
         for (int i = 0; i < rdns.size(); i++) {
             // Compare a single pair of RDNs.
-            Rdn rdn1 = (Rdn) rdns.get(i);
-            Rdn rdn2 = (Rdn) that.rdns.get(i);
+            Rdn rdn1 = rdns.get(i);
+            Rdn rdn2 = that.rdns.get(i);
             if (!rdn1.equals(rdn2)) {
                 return false;
             }
@@ -727,8 +723,8 @@ public class LdapName implements Name {
         int minSize = Math.min(rdns.size(), that.rdns.size());
         for (int i = 0; i < minSize; i++) {
             // Compare a single pair of RDNs.
-            Rdn rdn1 = (Rdn)rdns.get(i);
-            Rdn rdn2 = (Rdn)that.rdns.get(i);
+            Rdn rdn1 = rdns.get(i);
+            Rdn rdn2 = that.rdns.get(i);
 
             int diff = rdn1.compareTo(rdn2);
             if (diff != 0) {
@@ -752,7 +748,7 @@ public class LdapName implements Name {
 
         // For each RDN...
         for (int i = 0; i < rdns.size(); i++) {
-            Rdn rdn = (Rdn) rdns.get(i);
+            Rdn rdn = rdns.get(i);
             hash += rdn.hashCode();
         }
         return hash;
@@ -786,6 +782,6 @@ public class LdapName implements Name {
     private void parse() throws InvalidNameException {
         // rdns = (ArrayList<Rdn>) (new RFC2253Parser(unparsed)).getDN();
 
-        rdns = (ArrayList) (new Rfc2253Parser(unparsed)).parseDn();
+        rdns = new Rfc2253Parser(unparsed).parseDn();
     }
 }
diff --git a/jdk/src/share/classes/javax/naming/ldap/Rdn.java b/jdk/src/share/classes/javax/naming/ldap/Rdn.java
index 7a17b8c..b9f305e 100644
--- a/jdk/src/share/classes/javax/naming/ldap/Rdn.java
+++ b/jdk/src/share/classes/javax/naming/ldap/Rdn.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@ package javax.naming.ldap;
 import java.util.Iterator;
 import java.util.NoSuchElementException;
 import java.util.ArrayList;
+import java.util.Locale;
 import java.util.Collections;
 
 import javax.naming.InvalidNameException;
@@ -104,8 +105,7 @@ import java.io.IOException;
 
 public class Rdn implements Serializable, Comparable<Object> {
 
-    // private transient ArrayList<RdnEntry> entries;
-    private transient ArrayList entries;
+    private transient ArrayList<RdnEntry> entries;
 
     // The common case.
     private static final int DEFAULT_SIZE = 1;
@@ -130,12 +130,12 @@ public class Rdn implements Serializable, Comparable<Object> {
         if (attrSet.size() == 0) {
             throw new InvalidNameException("Attributes cannot be empty");
         }
-        entries = new ArrayList(attrSet.size());
-        NamingEnumeration attrs = attrSet.getAll();
+        entries = new ArrayList<>(attrSet.size());
+        NamingEnumeration<? extends Attribute> attrs = attrSet.getAll();
         try {
             for (int nEntries = 0; attrs.hasMore(); nEntries++) {
                 RdnEntry entry = new RdnEntry();
-                Attribute attr = (Attribute) attrs.next();
+                Attribute attr = attrs.next();
                 entry.type = attr.getID();
                 entry.value = attr.get();
                 entries.add(nEntries, entry);
@@ -161,7 +161,7 @@ public class Rdn implements Serializable, Comparable<Object> {
      *                  parsing of the rdnString.
      */
     public Rdn(String rdnString) throws InvalidNameException {
-        entries = new ArrayList(DEFAULT_SIZE);
+        entries = new ArrayList<>(DEFAULT_SIZE);
         (new Rfc2253Parser(rdnString)).parseRdn(this);
     }
 
@@ -172,7 +172,7 @@ public class Rdn implements Serializable, Comparable<Object> {
      * @param rdn The non-null Rdn to be copied.
      */
     public Rdn(Rdn rdn) {
-        entries = new ArrayList(rdn.entries.size());
+        entries = new ArrayList<>(rdn.entries.size());
         entries.addAll(rdn.entries);
     }
 
@@ -199,7 +199,7 @@ public class Rdn implements Serializable, Comparable<Object> {
                 "type or value cannot be empty, type:" + type +
                 " value:" + value);
         }
-        entries = new ArrayList(DEFAULT_SIZE);
+        entries = new ArrayList<>(DEFAULT_SIZE);
         put(type, value);
     }
 
@@ -210,7 +210,7 @@ public class Rdn implements Serializable, Comparable<Object> {
 
     // An empty constructor used by the parser
     Rdn() {
-        entries = new ArrayList(DEFAULT_SIZE);
+        entries = new ArrayList<>(DEFAULT_SIZE);
     }
 
     /*
@@ -257,7 +257,7 @@ public class Rdn implements Serializable, Comparable<Object> {
      * @return The non-null attribute value.
      */
     public Object getValue() {
-        return ((RdnEntry) entries.get(0)).getValue();
+        return entries.get(0).getValue();
     }
 
     /**
@@ -275,7 +275,7 @@ public class Rdn implements Serializable, Comparable<Object> {
      * @return The non-null attribute type.
      */
     public String getType() {
-        return ((RdnEntry) entries.get(0)).getType();
+        return entries.get(0).getType();
     }
 
     /**
@@ -329,8 +329,7 @@ public class Rdn implements Serializable, Comparable<Object> {
         for (int i = 0; i < minSize; i++) {
 
             // Compare a single pair of type/value pairs.
-            int diff = ((RdnEntry) entries.get(i)).compareTo(
-                                        that.entries.get(i));
+            int diff = entries.get(i).compareTo(that.entries.get(i));
             if (diff != 0) {
                 return diff;
             }
@@ -408,7 +407,7 @@ public class Rdn implements Serializable, Comparable<Object> {
     public Attributes toAttributes() {
         Attributes attrs = new BasicAttributes(true);
         for (int i = 0; i < entries.size(); i++) {
-            RdnEntry entry = (RdnEntry) entries.get(i);
+            RdnEntry entry = entries.get(i);
             Attribute attr = attrs.put(entry.getType(), entry.getValue());
             if (attr != null) {
                 attr.add(entry.getValue());
@@ -419,7 +418,7 @@ public class Rdn implements Serializable, Comparable<Object> {
     }
 
 
-    private static class RdnEntry implements Comparable {
+    private static class RdnEntry implements Comparable<RdnEntry> {
         private String type;
         private Object value;
 
@@ -435,14 +434,8 @@ public class Rdn implements Serializable, Comparable<Object> {
             return value;
         }
 
-        public int compareTo(Object obj) {
-
-            // Any change here affecting equality must be
-            // reflected in hashCode().
-            RdnEntry that = (RdnEntry) obj;
-
-            int diff = type.toUpperCase().compareTo(
-                        that.type.toUpperCase());
+        public int compareTo(RdnEntry that) {
+            int diff = type.compareToIgnoreCase(that.type);
             if (diff != 0) {
                 return diff;
             }
@@ -469,7 +462,7 @@ public class Rdn implements Serializable, Comparable<Object> {
         }
 
         public int hashCode() {
-            return (type.toUpperCase().hashCode() +
+            return (type.toUpperCase(Locale.ENGLISH).hashCode() +
                 getValueComparable().hashCode());
         }
 
@@ -486,7 +479,7 @@ public class Rdn implements Serializable, Comparable<Object> {
             if (value instanceof byte[]) {
                 comparable = escapeBinaryValue((byte[]) value);
             } else {
-                comparable = ((String) value).toUpperCase();
+                comparable = ((String) value).toUpperCase(Locale.ENGLISH);
             }
             return comparable;
         }
@@ -576,7 +569,6 @@ public class Rdn implements Serializable, Comparable<Object> {
             builder.append(Character.forDigit(0xF & b, 16));
         }
         return builder.toString();
-        // return builder.toString().toUpperCase();
     }
 
     /**
@@ -755,7 +747,7 @@ public class Rdn implements Serializable, Comparable<Object> {
     private void readObject(ObjectInputStream s)
             throws IOException, ClassNotFoundException {
         s.defaultReadObject();
-        entries = new ArrayList(DEFAULT_SIZE);
+        entries = new ArrayList<>(DEFAULT_SIZE);
         String unparsed = (String) s.readObject();
         try {
             (new Rfc2253Parser(unparsed)).parseRdn(this);
diff --git a/jdk/src/share/classes/javax/naming/ldap/Rfc2253Parser.java b/jdk/src/share/classes/javax/naming/ldap/Rfc2253Parser.java
index cbb5153..1ca63ec 100644
--- a/jdk/src/share/classes/javax/naming/ldap/Rfc2253Parser.java
+++ b/jdk/src/share/classes/javax/naming/ldap/Rfc2253Parser.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -54,14 +54,14 @@ final class Rfc2253Parser {
          */
         // public List<Rdn> getDN() throws InvalidNameException {
 
-        List parseDn() throws InvalidNameException {
+        List<Rdn> parseDn() throws InvalidNameException {
             cur = 0;
 
             // ArrayList<Rdn> rdns =
             //  new ArrayList<Rdn>(len / 3 + 10);  // leave room for growth
 
-            ArrayList rdns =
-                new ArrayList(len / 3 + 10);  // leave room for growth
+            ArrayList<Rdn> rdns =
+                new ArrayList<>(len / 3 + 10);  // leave room for growth
 
             if (len == 0) {
                 return rdns;
diff --git a/jdk/src/share/classes/javax/naming/ldap/StartTlsRequest.java b/jdk/src/share/classes/javax/naming/ldap/StartTlsRequest.java
index 82e7ef0..508a168 100644
--- a/jdk/src/share/classes/javax/naming/ldap/StartTlsRequest.java
+++ b/jdk/src/share/classes/javax/naming/ldap/StartTlsRequest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -192,7 +192,7 @@ public class StartTlsRequest implements ExtendedRequest {
         }
         try {
             VersionHelper helper = VersionHelper.getVersionHelper();
-            Class clas = helper.loadClass(
+            Class<?> clas = helper.loadClass(
                 "com.sun.jndi.ldap.ext.StartTlsResponseImpl");
 
             resp = (StartTlsResponse) clas.newInstance();
@@ -226,19 +226,19 @@ public class StartTlsRequest implements ExtendedRequest {
      * Acquire the class loader associated with this thread.
      */
     private final ClassLoader getContextClassLoader() {
-        return (ClassLoader) AccessController.doPrivileged(
-            new PrivilegedAction() {
-                public Object run() {
+        return AccessController.doPrivileged(
+            new PrivilegedAction<ClassLoader>() {
+                public ClassLoader run() {
                     return Thread.currentThread().getContextClassLoader();
                 }
             }
         );
     }
 
-    private final static boolean privilegedHasNext(final Iterator iter) {
-        Boolean answer = (Boolean) AccessController.doPrivileged(
-            new PrivilegedAction() {
-            public Object run() {
+    private final static boolean privilegedHasNext(final Iterator<StartTlsResponse> iter) {
+        Boolean answer = AccessController.doPrivileged(
+            new PrivilegedAction<Boolean>() {
+            public Boolean run() {
                 return Boolean.valueOf(iter.hasNext());
             }
         });
diff --git a/jdk/src/share/classes/javax/naming/spi/ContinuationContext.java b/jdk/src/share/classes/javax/naming/spi/ContinuationContext.java
index df1a81d..9f90aee 100644
--- a/jdk/src/share/classes/javax/naming/spi/ContinuationContext.java
+++ b/jdk/src/share/classes/javax/naming/spi/ContinuationContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,11 +38,11 @@ import javax.naming.*;
 
 class ContinuationContext implements Context, Resolver {
     protected CannotProceedException cpe;
-    protected Hashtable env;
+    protected Hashtable<?,?> env;
     protected Context contCtx = null;
 
     protected ContinuationContext(CannotProceedException cpe,
-                        Hashtable env) {
+                        Hashtable<?,?> env) {
         this.cpe = cpe;
         this.env = env;
     }
@@ -109,24 +109,24 @@ class ContinuationContext implements Context, Resolver {
         ctx.rename(name, newName);
     }
 
-    public NamingEnumeration list(Name name) throws NamingException {
+    public NamingEnumeration<NameClassPair> list(Name name) throws NamingException {
         Context ctx = getTargetContext();
         return ctx.list(name);
     }
-    public NamingEnumeration list(String name) throws NamingException {
+    public NamingEnumeration<NameClassPair> list(String name) throws NamingException {
         Context ctx = getTargetContext();
         return ctx.list(name);
     }
 
 
-    public NamingEnumeration listBindings(Name name)
+    public NamingEnumeration<Binding> listBindings(Name name)
         throws NamingException
     {
         Context ctx = getTargetContext();
         return ctx.listBindings(name);
     }
 
-    public NamingEnumeration listBindings(String name) throws NamingException {
+    public NamingEnumeration<Binding> listBindings(String name) throws NamingException {
         Context ctx = getTargetContext();
         return ctx.listBindings(name);
     }
@@ -193,7 +193,7 @@ class ContinuationContext implements Context, Resolver {
         return ctx.removeFromEnvironment(propName);
     }
 
-    public Hashtable getEnvironment() throws NamingException {
+    public Hashtable<?,?> getEnvironment() throws NamingException {
         Context ctx = getTargetContext();
         return ctx.getEnvironment();
     }
diff --git a/jdk/src/share/classes/javax/naming/spi/ContinuationDirContext.java b/jdk/src/share/classes/javax/naming/spi/ContinuationDirContext.java
index 6fdb054..47c94b6 100644
--- a/jdk/src/share/classes/javax/naming/spi/ContinuationDirContext.java
+++ b/jdk/src/share/classes/javax/naming/spi/ContinuationDirContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,6 +38,7 @@ import javax.naming.Context;
 import javax.naming.directory.DirContext;
 import javax.naming.directory.Attributes;
 import javax.naming.directory.SearchControls;
+import javax.naming.directory.SearchResult;
 import javax.naming.directory.ModificationItem;
 
 /**
@@ -50,7 +51,7 @@ import javax.naming.directory.ModificationItem;
 
 class ContinuationDirContext extends ContinuationContext implements DirContext {
 
-    ContinuationDirContext(CannotProceedException cpe, Hashtable env) {
+    ContinuationDirContext(CannotProceedException cpe, Hashtable<?,?> env) {
         super(cpe, env);
     }
 
@@ -204,7 +205,7 @@ class ContinuationDirContext extends ContinuationContext implements DirContext {
                 res.getDirContext().createSubcontext(res.getString(), attrs);
         }
 
-    public NamingEnumeration search(Name name,
+    public NamingEnumeration<SearchResult> search(Name name,
                                     Attributes matchingAttributes,
                                     String[] attributesToReturn)
         throws NamingException  {
@@ -213,7 +214,7 @@ class ContinuationDirContext extends ContinuationContext implements DirContext {
                                              attributesToReturn);
         }
 
-    public NamingEnumeration search(String name,
+    public NamingEnumeration<SearchResult> search(String name,
                                     Attributes matchingAttributes,
                                     String[] attributesToReturn)
         throws NamingException  {
@@ -223,13 +224,13 @@ class ContinuationDirContext extends ContinuationContext implements DirContext {
                                              attributesToReturn);
         }
 
-    public NamingEnumeration search(Name name,
+    public NamingEnumeration<SearchResult> search(Name name,
                                     Attributes matchingAttributes)
         throws NamingException  {
             DirContextNamePair res = getTargetContext(name);
             return res.getDirContext().search(res.getName(), matchingAttributes);
         }
-    public NamingEnumeration search(String name,
+    public NamingEnumeration<SearchResult> search(String name,
                                     Attributes matchingAttributes)
         throws NamingException  {
             DirContextStringPair res = getTargetContext(name);
@@ -237,7 +238,7 @@ class ContinuationDirContext extends ContinuationContext implements DirContext {
                                              matchingAttributes);
         }
 
-    public NamingEnumeration search(Name name,
+    public NamingEnumeration<SearchResult> search(Name name,
                                     String filter,
                                     SearchControls cons)
         throws NamingException {
@@ -245,7 +246,7 @@ class ContinuationDirContext extends ContinuationContext implements DirContext {
             return res.getDirContext().search(res.getName(), filter, cons);
         }
 
-    public NamingEnumeration search(String name,
+    public NamingEnumeration<SearchResult> search(String name,
                                     String filter,
                                     SearchControls cons)
         throws NamingException {
@@ -253,7 +254,7 @@ class ContinuationDirContext extends ContinuationContext implements DirContext {
             return res.getDirContext().search(res.getString(), filter, cons);
         }
 
-    public NamingEnumeration search(Name name,
+    public NamingEnumeration<SearchResult> search(Name name,
                                     String filterExpr,
                                     Object[] args,
                                     SearchControls cons)
@@ -263,7 +264,7 @@ class ContinuationDirContext extends ContinuationContext implements DirContext {
                                              cons);
         }
 
-    public NamingEnumeration search(String name,
+    public NamingEnumeration<SearchResult> search(String name,
                                     String filterExpr,
                                     Object[] args,
                                     SearchControls cons)
diff --git a/jdk/src/share/classes/javax/naming/spi/DirectoryManager.java b/jdk/src/share/classes/javax/naming/spi/DirectoryManager.java
index f86727f..523175c 100644
--- a/jdk/src/share/classes/javax/naming/spi/DirectoryManager.java
+++ b/jdk/src/share/classes/javax/naming/spi/DirectoryManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -84,15 +84,16 @@ public class DirectoryManager extends NamingManager {
       *
       * @see NamingManager#getContinuationContext(CannotProceedException)
       */
+    @SuppressWarnings("unchecked")
     public static DirContext getContinuationDirContext(
             CannotProceedException cpe) throws NamingException {
 
-        Hashtable env = cpe.getEnvironment();
+        Hashtable<Object,Object> env = (Hashtable<Object,Object>)cpe.getEnvironment();
         if (env == null) {
-            env = new Hashtable(7);
+            env = new Hashtable<>(7);
         } else {
             // Make a (shallow) copy of the environment.
-            env = (Hashtable) env.clone();
+            env = (Hashtable<Object,Object>) env.clone();
         }
         env.put(CPE, cpe);
 
@@ -217,7 +218,7 @@ public class DirectoryManager extends NamingManager {
     }
 
     private static Object createObjectFromFactories(Object obj, Name name,
-            Context nameCtx, Hashtable environment, Attributes attrs)
+            Context nameCtx, Hashtable<?,?> environment, Attributes attrs)
         throws Exception {
 
         FactoryEnumeration factories = ResourceManager.getFactories(
diff --git a/jdk/src/share/classes/javax/naming/spi/NamingManager.java b/jdk/src/share/classes/javax/naming/spi/NamingManager.java
index ca0cad6..13bd529 100644
--- a/jdk/src/share/classes/javax/naming/spi/NamingManager.java
+++ b/jdk/src/share/classes/javax/naming/spi/NamingManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -139,7 +139,7 @@ public class NamingManager {
         throws IllegalAccessException,
         InstantiationException,
         MalformedURLException {
-        Class clas = null;
+        Class<?> clas = null;
 
         // Try to use current class loader
         try {
@@ -172,7 +172,7 @@ public class NamingManager {
      * @return factory created; null if cannot create
      */
     private static Object createObjectFromFactories(Object obj, Name name,
-            Context nameCtx, Hashtable environment) throws Exception {
+            Context nameCtx, Hashtable<?,?> environment) throws Exception {
 
         FactoryEnumeration factories = ResourceManager.getFactories(
             Context.OBJECT_FACTORIES, environment, nameCtx);
@@ -349,7 +349,7 @@ public class NamingManager {
      * invoking a factory.
      */
     static Object processURLAddrs(Reference ref, Name name, Context nameCtx,
-                                  Hashtable environment)
+                                  Hashtable<?,?> environment)
             throws NamingException {
 
         for (int i = 0; i < ref.size(); i++) {
@@ -368,7 +368,7 @@ public class NamingManager {
     }
 
     private static Object processURL(Object refInfo, Name name,
-                                     Context nameCtx, Hashtable environment)
+                                     Context nameCtx, Hashtable<?,?> environment)
             throws NamingException {
         Object answer;
 
@@ -427,7 +427,7 @@ public class NamingManager {
      * @see #getObjectInstance
      */
     static Context getContext(Object obj, Name name, Context nameCtx,
-                              Hashtable environment) throws NamingException {
+                              Hashtable<?,?> environment) throws NamingException {
         Object answer;
 
         if (obj instanceof Context) {
@@ -452,7 +452,7 @@ public class NamingManager {
 
     // Used by ContinuationContext
     static Resolver getResolver(Object obj, Name name, Context nameCtx,
-                                Hashtable environment) throws NamingException {
+                                Hashtable<?,?> environment) throws NamingException {
         Object answer;
 
         if (obj instanceof Resolver) {
@@ -585,7 +585,7 @@ public class NamingManager {
      */
     private static Object getURLObject(String scheme, Object urlInfo,
                                        Name name, Context nameCtx,
-                                       Hashtable environment)
+                                       Hashtable<?,?> environment)
             throws NamingException {
 
         // e.g. "ftpURLContextFactory"
@@ -771,15 +771,16 @@ public class NamingManager {
      * @return A non-null Context object for continuing the operation.
      * @exception NamingException If a naming exception occurred.
      */
+    @SuppressWarnings("unchecked")
     public static Context getContinuationContext(CannotProceedException cpe)
             throws NamingException {
 
-        Hashtable env = cpe.getEnvironment();
+        Hashtable<Object,Object> env = (Hashtable<Object,Object>)cpe.getEnvironment();
         if (env == null) {
-            env = new Hashtable(7);
+            env = new Hashtable<>(7);
         } else {
             // Make a (shallow) copy of the environment.
-            env = (Hashtable) env.clone();
+            env = (Hashtable<Object,Object>)env.clone();
         }
         env.put(CPE, cpe);
 
diff --git a/jdk/src/share/classes/javax/net/ssl/HttpsURLConnection.java b/jdk/src/share/classes/javax/net/ssl/HttpsURLConnection.java
index 6d799e3..fbd8fca 100644
--- a/jdk/src/share/classes/javax/net/ssl/HttpsURLConnection.java
+++ b/jdk/src/share/classes/javax/net/ssl/HttpsURLConnection.java
@@ -144,8 +144,7 @@ class HttpsURLConnection extends HttpURLConnection
             throws SSLPeerUnverifiedException {
 
         java.security.cert.Certificate[] certs = getServerCertificates();
-        return ((X500Principal)
-                ((X509Certificate)certs[0]).getSubjectX500Principal());
+        return ((X509Certificate)certs[0]).getSubjectX500Principal();
     }
 
     /**
@@ -173,8 +172,7 @@ class HttpsURLConnection extends HttpURLConnection
 
         java.security.cert.Certificate[] certs = getLocalCertificates();
         if (certs != null) {
-            return ((X500Principal)
-                ((X509Certificate)certs[0]).getSubjectX500Principal());
+            return ((X509Certificate)certs[0]).getSubjectX500Principal();
         } else {
             return null;
         }
diff --git a/jdk/src/share/classes/javax/net/ssl/SSLServerSocketFactory.java b/jdk/src/share/classes/javax/net/ssl/SSLServerSocketFactory.java
index dc32d14..2491129 100644
--- a/jdk/src/share/classes/javax/net/ssl/SSLServerSocketFactory.java
+++ b/jdk/src/share/classes/javax/net/ssl/SSLServerSocketFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -87,7 +87,7 @@ public abstract class SSLServerSocketFactory extends ServerSocketFactory
             if (clsName != null) {
                 log("setting up default SSLServerSocketFactory");
                 try {
-                    Class cls = null;
+                    Class<?> cls = null;
                     try {
                         cls = Class.forName(clsName);
                     } catch (ClassNotFoundException e) {
diff --git a/jdk/src/share/classes/javax/net/ssl/SSLSocketFactory.java b/jdk/src/share/classes/javax/net/ssl/SSLSocketFactory.java
index f7d5e5b..c3d33c3 100644
--- a/jdk/src/share/classes/javax/net/ssl/SSLSocketFactory.java
+++ b/jdk/src/share/classes/javax/net/ssl/SSLSocketFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,7 +95,7 @@ public abstract class SSLSocketFactory extends SocketFactory
             if (clsName != null) {
                 log("setting up default SSLSocketFactory");
                 try {
-                    Class cls = null;
+                    Class<?> cls = null;
                     try {
                         cls = Class.forName(clsName);
                     } catch (ClassNotFoundException e) {
diff --git a/jdk/src/share/classes/javax/sql/rowset/serial/SerialBlob.java b/jdk/src/share/classes/javax/sql/rowset/serial/SerialBlob.java
index aed1124..795e404 100644
--- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialBlob.java
+++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialBlob.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -382,7 +382,7 @@ public class SerialBlob implements Blob, Serializable, Cloneable {
      */
     public java.io.OutputStream setBinaryStream(long pos)
         throws SerialException, SQLException {
-        if (this.blob.setBinaryStream(pos) != null) {
+        if (this.blob != null) {
             return this.blob.setBinaryStream(pos);
         } else {
             throw new SerialException("Unsupported operation. SerialBlob cannot " +
diff --git a/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java b/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java
index 3792ebd..97e8995 100644
--- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java
+++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java
@@ -436,7 +436,7 @@ public class SerialClob implements Clob, Serializable, Cloneable {
      */
     public java.io.OutputStream setAsciiStream(long pos)
         throws SerialException, SQLException {
-         if (this.clob.setAsciiStream(pos) != null) {
+         if (this.clob != null) {
              return this.clob.setAsciiStream(pos);
          } else {
              throw new SerialException("Unsupported operation. SerialClob cannot " +
@@ -466,7 +466,7 @@ public class SerialClob implements Clob, Serializable, Cloneable {
      */
     public java.io.Writer setCharacterStream(long pos)
         throws SerialException, SQLException {
-        if (this.clob.setCharacterStream(pos) != null) {
+        if (this.clob != null) {
             return this.clob.setCharacterStream(pos);
         } else {
             throw new SerialException("Unsupported operation. SerialClob cannot " +
diff --git a/jdk/src/share/classes/javax/swing/AbstractButton.java b/jdk/src/share/classes/javax/swing/AbstractButton.java
index 50eb66e..d95f1d4 100644
--- a/jdk/src/share/classes/javax/swing/AbstractButton.java
+++ b/jdk/src/share/classes/javax/swing/AbstractButton.java
@@ -981,6 +981,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
      * @param exception the message to use in the
      *        {@code IllegalArgumentException} that is thrown for an invalid
      *        value
+     * @return the {@code key} argument
      * @exception IllegalArgumentException if key is not one of the legal
      *            values listed above
      * @see #setHorizontalTextPosition
@@ -1011,6 +1012,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
      * @param exception the message to use in the
      *        {@code IllegalArgumentException} that is thrown for an invalid
      *        value
+     * @return the {@code key} argument
      * @exception IllegalArgumentException if key is not one of the legal
      *            values listed above
      */
diff --git a/jdk/src/share/classes/javax/swing/SwingUtilities.java b/jdk/src/share/classes/javax/swing/SwingUtilities.java
index 06d59c6..6566444 100644
--- a/jdk/src/share/classes/javax/swing/SwingUtilities.java
+++ b/jdk/src/share/classes/javax/swing/SwingUtilities.java
@@ -792,7 +792,7 @@ public class SwingUtilities implements SwingConstants
      * @return true if the left mouse button was active
      */
     public static boolean isLeftMouseButton(MouseEvent anEvent) {
-         return ((anEvent.getModifiers() & InputEvent.BUTTON1_MASK) != 0);
+         return (anEvent.getButton() == MouseEvent.BUTTON1);
     }
 
     /**
@@ -802,7 +802,7 @@ public class SwingUtilities implements SwingConstants
      * @return true if the middle mouse button was active
      */
     public static boolean isMiddleMouseButton(MouseEvent anEvent) {
-        return ((anEvent.getModifiers() & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK);
+        return (anEvent.getButton() == MouseEvent.BUTTON2);
     }
 
     /**
@@ -812,7 +812,7 @@ public class SwingUtilities implements SwingConstants
      * @return true if the right mouse button was active
      */
     public static boolean isRightMouseButton(MouseEvent anEvent) {
-        return ((anEvent.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK);
+        return (anEvent.getButton() == MouseEvent.BUTTON3);
     }
 
     /**
@@ -1274,8 +1274,7 @@ public class SwingUtilities implements SwingConstants
      * <p>
      * Additional documentation and examples for this method can be
      * found in
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How to Use Threads</a>,
-     * in <em>The Java Tutorial</em>.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency in Swing</a>.
      * <p>
      * As of 1.3 this method is just a cover for <code>java.awt.EventQueue.invokeLater()</code>.
      * <p>
@@ -1326,8 +1325,7 @@ public class SwingUtilities implements SwingConstants
      * <p>
      * Additional documentation and examples for this method can be
      * found in
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How to Use Threads</a>,
-     * in <em>The Java Tutorial</em>.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency in Swing</a>.
      * <p>
      * As of 1.3 this method is just a cover for
      * <code>java.awt.EventQueue.invokeAndWait()</code>.
diff --git a/jdk/src/share/classes/javax/swing/SwingWorker.java b/jdk/src/share/classes/javax/swing/SwingWorker.java
index 8bad4c9..2948081 100644
--- a/jdk/src/share/classes/javax/swing/SwingWorker.java
+++ b/jdk/src/share/classes/javax/swing/SwingWorker.java
@@ -50,8 +50,8 @@ import sun.swing.AccumulativeRunnable;
  * When writing a multi-threaded application using Swing, there are
  * two constraints to keep in mind:
  * (refer to
- * <a href="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">
- *   How to Use Threads
+ * <a href="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">
+ *   Concurrency in Swing
  * </a> for more details):
  * <ul>
  *   <li> Time-consuming tasks should not be run on the <i>Event
diff --git a/jdk/src/share/classes/javax/swing/package.html b/jdk/src/share/classes/javax/swing/package.html
index 9399248..fcf18c2 100644
--- a/jdk/src/share/classes/javax/swing/package.html
+++ b/jdk/src/share/classes/javax/swing/package.html
@@ -119,9 +119,9 @@ input. Refer to {@link javax.swing.SwingWorker} for the preferred way to do such
 processing when working with Swing.
 <p>
 More information on this topic can be found in the
-<a href="http://java.sun.com/docs/books/tutorial/uiswing/">Swing tutorial</a>,
+<a href="http://download.oracle.com/javase/tutorial/uiswing/">Swing tutorial</a>,
 in particular the section on
-<a href="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How to Use Threads</a>.
+<a href="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency in Swing</a>.
 
 
 <H2>
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java
index 21623c1..1f3d97e 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java
@@ -1153,10 +1153,15 @@ public class BasicFileChooserUI extends FileChooserUI {
                 if (shellFolder.isLink()) {
                     File linkedTo = shellFolder.getLinkLocation();
 
-                    if (linkedTo != null && fc.isTraversable(linkedTo)) {
-                        dir = linkedTo;
+                    // If linkedTo is null we try to use dir
+                    if (linkedTo != null) {
+                        if (fc.isTraversable(linkedTo)) {
+                            dir = linkedTo;
+                        } else {
+                            return;
+                        }
                     } else {
-                        return;
+                        dir = shellFolder;
                     }
                 }
             } catch (FileNotFoundException ex) {
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java
index b3d3847..27c5195 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java
@@ -461,16 +461,16 @@ public class MetalFileChooserUI extends BasicFileChooserUI {
 
         Locale l = fc.getLocale();
 
-        lookInLabelMnemonic = UIManager.getInt("FileChooser.lookInLabelMnemonic");
+        lookInLabelMnemonic = getMnemonic("FileChooser.lookInLabelMnemonic", l);
         lookInLabelText = UIManager.getString("FileChooser.lookInLabelText",l);
         saveInLabelText = UIManager.getString("FileChooser.saveInLabelText",l);
 
-        fileNameLabelMnemonic = UIManager.getInt("FileChooser.fileNameLabelMnemonic");
+        fileNameLabelMnemonic = getMnemonic("FileChooser.fileNameLabelMnemonic", l);
         fileNameLabelText = UIManager.getString("FileChooser.fileNameLabelText",l);
-        folderNameLabelMnemonic = UIManager.getInt("FileChooser.folderNameLabelMnemonic");
+        folderNameLabelMnemonic = getMnemonic("FileChooser.folderNameLabelMnemonic", l);
         folderNameLabelText = UIManager.getString("FileChooser.folderNameLabelText",l);
 
-        filesOfTypeLabelMnemonic = UIManager.getInt("FileChooser.filesOfTypeLabelMnemonic");
+        filesOfTypeLabelMnemonic = getMnemonic("FileChooser.filesOfTypeLabelMnemonic", l);
         filesOfTypeLabelText = UIManager.getString("FileChooser.filesOfTypeLabelText",l);
 
         upFolderToolTipText =  UIManager.getString("FileChooser.upFolderToolTipText",l);
@@ -489,6 +489,10 @@ public class MetalFileChooserUI extends BasicFileChooserUI {
         detailsViewButtonAccessibleName = UIManager.getString("FileChooser.detailsViewButtonAccessibleName",l);
     }
 
+    private Integer getMnemonic(String key, Locale l) {
+        return SwingUtilities2.getUIDefaultsInt(key, l);
+    }
+
     protected void installListeners(JFileChooser fc) {
         super.installListeners(fc);
         ActionMap actionMap = getActionMap();
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java
index f06d6d7..23debc1 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java
@@ -844,9 +844,6 @@ public class MetalLookAndFeel extends BasicLookAndFeel
             "FileChooser.newFolderIcon", new SwingLazyValue("javax.swing.plaf.metal.MetalIconFactory", "getFileChooserNewFolderIcon"),
             "FileChooser.upFolderIcon", new SwingLazyValue("javax.swing.plaf.metal.MetalIconFactory", "getFileChooserUpFolderIcon"),
 
-            "FileChooser.lookInLabelMnemonic", new Integer(KeyEvent.VK_I),
-            "FileChooser.fileNameLabelMnemonic", new Integer(KeyEvent.VK_N),
-            "FileChooser.filesOfTypeLabelMnemonic", new Integer(KeyEvent.VK_T),
             "FileChooser.usesSingleFilePane", Boolean.TRUE,
             "FileChooser.ancestorInputMap",
                new UIDefaults.LazyInputMap(new Object[] {
diff --git a/jdk/src/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html b/jdk/src/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html
index 1e170c4..bedeffb 100644
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html
+++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html
@@ -1,6 +1,5 @@
 <html>
 <head>
-<link href="style.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
 <h1 id="primaryColors">Primary Colors</h1>
diff --git a/jdk/src/share/classes/javax/swing/text/AbstractDocument.java b/jdk/src/share/classes/javax/swing/text/AbstractDocument.java
index 97c8dfe..7dbc9ec 100644
--- a/jdk/src/share/classes/javax/swing/text/AbstractDocument.java
+++ b/jdk/src/share/classes/javax/swing/text/AbstractDocument.java
@@ -409,8 +409,8 @@ public abstract class AbstractDocument implements Document, Serializable {
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param r the renderer to execute
      */
@@ -570,8 +570,8 @@ public abstract class AbstractDocument implements Document, Serializable {
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param offs the starting offset >= 0
      * @param len the number of characters to remove >= 0
@@ -683,8 +683,8 @@ public abstract class AbstractDocument implements Document, Serializable {
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param offs the starting offset >= 0
      * @param str the string to insert; does nothing with null/empty strings
@@ -818,8 +818,8 @@ public abstract class AbstractDocument implements Document, Serializable {
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param offs the position in the model >= 0
      * @return the position
diff --git a/jdk/src/share/classes/javax/swing/text/DefaultCaret.java b/jdk/src/share/classes/javax/swing/text/DefaultCaret.java
index 4cfddbe..ecbfdf0 100644
--- a/jdk/src/share/classes/javax/swing/text/DefaultCaret.java
+++ b/jdk/src/share/classes/javax/swing/text/DefaultCaret.java
@@ -237,8 +237,8 @@ public class DefaultCaret extends Rectangle implements Caret, FocusListener, Mou
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      */
     protected final synchronized void repaint() {
         if (component != null) {
diff --git a/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java b/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java
index 8552eb9..0ab766b 100644
--- a/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java
+++ b/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java
@@ -173,8 +173,8 @@ public class DefaultStyledDocument extends AbstractDocument implements StyledDoc
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param offset the starting offset >= 0
      * @param data the element data
@@ -426,8 +426,8 @@ public class DefaultStyledDocument extends AbstractDocument implements StyledDoc
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param pos the offset from the start of the document >= 0
      * @param s  the logical style to assign to the paragraph, null if none
@@ -483,8 +483,8 @@ public class DefaultStyledDocument extends AbstractDocument implements StyledDoc
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param offset the offset in the document >= 0
      * @param length the length >= 0
@@ -536,8 +536,8 @@ public class DefaultStyledDocument extends AbstractDocument implements StyledDoc
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param offset the offset into the paragraph >= 0
      * @param length the number of characters affected >= 0
diff --git a/jdk/src/share/classes/javax/swing/text/ElementIterator.java b/jdk/src/share/classes/javax/swing/text/ElementIterator.java
index 6bde7ec..6b749e0 100644
--- a/jdk/src/share/classes/javax/swing/text/ElementIterator.java
+++ b/jdk/src/share/classes/javax/swing/text/ElementIterator.java
@@ -157,7 +157,7 @@ public class ElementIterator implements Cloneable {
             }
             return it;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/javax/swing/text/JTextComponent.java b/jdk/src/share/classes/javax/swing/text/JTextComponent.java
index 113fd58..274ae9d 100644
--- a/jdk/src/share/classes/javax/swing/text/JTextComponent.java
+++ b/jdk/src/share/classes/javax/swing/text/JTextComponent.java
@@ -2213,8 +2213,8 @@ public abstract class JTextComponent extends JComponent implements Scrollable, A
      * <p>
      * This method is thread-safe, although most Swing methods are not. Please
      * see <A
-     * HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">
-     * How to Use Threads</A> for more information.
+     * HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">
+     * Concurrency in Swing</A> for more information.
      *
      * <p>
      * <b>Sample Usage</b>. This code snippet shows a cross-platform print
@@ -2471,8 +2471,8 @@ public abstract class JTextComponent extends JComponent implements Scrollable, A
      * <p>
      * This method is thread-safe, although most Swing methods are not. Please
      * see <A
-     * HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">
-     * How to Use Threads</A> for more information.
+     * HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">
+     * Concurrency in Swing</A> for more information.
      *
      * <p>
      * The returned {@code Printable} can be printed on any thread.
diff --git a/jdk/src/share/classes/javax/swing/text/PlainDocument.java b/jdk/src/share/classes/javax/swing/text/PlainDocument.java
index 84dc684..05fd221 100644
--- a/jdk/src/share/classes/javax/swing/text/PlainDocument.java
+++ b/jdk/src/share/classes/javax/swing/text/PlainDocument.java
@@ -100,8 +100,8 @@ public class PlainDocument extends AbstractDocument {
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param offs the starting offset >= 0
      * @param str the string to insert; does nothing with null/empty strings
diff --git a/jdk/src/share/classes/javax/swing/text/StyleContext.java b/jdk/src/share/classes/javax/swing/text/StyleContext.java
index c81b0f8..ca0eeea 100644
--- a/jdk/src/share/classes/javax/swing/text/StyleContext.java
+++ b/jdk/src/share/classes/javax/swing/text/StyleContext.java
@@ -292,8 +292,8 @@ public class StyleContext implements Serializable, AbstractDocument.AttributeCon
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param old the old attribute set
      * @param name the non-null attribute name
@@ -321,8 +321,8 @@ public class StyleContext implements Serializable, AbstractDocument.AttributeCon
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param old the old attribute set
      * @param attr the attributes to add
@@ -349,8 +349,8 @@ public class StyleContext implements Serializable, AbstractDocument.AttributeCon
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param old the old set of attributes
      * @param name the non-null attribute name
@@ -377,8 +377,8 @@ public class StyleContext implements Serializable, AbstractDocument.AttributeCon
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param old the old attribute set
      * @param names the attribute names
@@ -405,8 +405,8 @@ public class StyleContext implements Serializable, AbstractDocument.AttributeCon
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param old the old attribute set
      * @param attrs the attributes
@@ -445,8 +445,8 @@ public class StyleContext implements Serializable, AbstractDocument.AttributeCon
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param a the set to reclaim
      */
diff --git a/jdk/src/share/classes/javax/swing/text/html/CSS.java b/jdk/src/share/classes/javax/swing/text/html/CSS.java
index 60efa6c..f0f8cb2 100644
--- a/jdk/src/share/classes/javax/swing/text/html/CSS.java
+++ b/jdk/src/share/classes/javax/swing/text/html/CSS.java
@@ -806,15 +806,11 @@ public class CSS implements Serializable {
             // translate border width into the cells, if it has non-zero value.
             AttributeSet tableAttr = elem.getParentElement().
                                      getParentElement().getAttributes();
-            int borderWidth;
-            try {
-                borderWidth = Integer.parseInt(
-                    (String) tableAttr.getAttribute(HTML.Attribute.BORDER));
-            } catch (NumberFormatException e) {
-                borderWidth = 0;
-            }
+
+            int borderWidth = getTableBorder(tableAttr);
             if (borderWidth > 0) {
-                translateAttribute(HTML.Attribute.BORDER, tableAttr, cssAttrSet);
+                // If table contains the BORDER attribute cells should have border width equals 1
+                translateAttribute(HTML.Attribute.BORDER, "1", cssAttrSet);
             }
             String pad = (String)tableAttr.getAttribute(HTML.Attribute.CELLPADDING);
             if (pad != null) {
@@ -850,6 +846,21 @@ public class CSS implements Serializable {
         return cssAttrSet;
     }
 
+    private static int getTableBorder(AttributeSet tableAttr) {
+        String borderValue = (String) tableAttr.getAttribute(HTML.Attribute.BORDER);
+
+        if (borderValue == HTML.NULL_ATTRIBUTE_VALUE || "".equals(borderValue)) {
+            // Some browsers accept <TABLE BORDER> and <TABLE BORDER=""> with the same semantics as BORDER=1
+            return 1;
+        }
+
+        try {
+            return Integer.parseInt(borderValue);
+        } catch (NumberFormatException e) {
+            return 0;
+        }
+    }
+
     private static final Hashtable<String, Attribute> attributeMap = new Hashtable<String, Attribute>();
     private static final Hashtable<String, Value> valueMap = new Hashtable<String, Value>();
 
@@ -1400,17 +1411,20 @@ public class CSS implements Serializable {
                         }
                     }
                 } else {
-
-                    /*
-                     * The html size attribute has a mapping in the CSS world only
-                     * if it is par of a font or base font tag.
-                     */
-
                     if (key == HTML.Attribute.SIZE && !isHTMLFontTag(tag)) {
-                        continue;
+                        /*
+                         * The html size attribute has a mapping in the CSS world only
+                         * if it is par of a font or base font tag.
+                         */
+                    } else if (tag == HTML.Tag.TABLE && key == HTML.Attribute.BORDER) {
+                        int borderWidth = getTableBorder(htmlAttrSet);
+
+                        if (borderWidth > 0) {
+                            translateAttribute(HTML.Attribute.BORDER, Integer.toString(borderWidth), cssAttrSet);
+                        }
+                    } else {
+                        translateAttribute(key, (String) htmlAttrSet.getAttribute(key), cssAttrSet);
                     }
-
-                    translateAttribute(key, htmlAttrSet, cssAttrSet);
                 }
             } else if (name instanceof CSS.Attribute) {
                 cssAttrSet.addAttribute(name, htmlAttrSet.getAttribute(name));
@@ -1419,7 +1433,7 @@ public class CSS implements Serializable {
     }
 
     private void translateAttribute(HTML.Attribute key,
-                                           AttributeSet htmlAttrSet,
+                                           String htmlAttrValue,
                                            MutableAttributeSet cssAttrSet) {
         /*
          * In the case of all remaining HTML.Attribute's they
@@ -1427,8 +1441,6 @@ public class CSS implements Serializable {
          */
         CSS.Attribute[] cssAttrList = getCssAttribute(key);
 
-        String htmlAttrValue = (String)htmlAttrSet.getAttribute(key);
-
         if (cssAttrList == null || htmlAttrValue == null) {
             return;
         }
diff --git a/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java b/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java
index 1ce7893..5fc8c0f 100644
--- a/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java
+++ b/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java
@@ -474,8 +474,8 @@ public class HTMLDocument extends DefaultStyledDocument {
      * <p>
      * This method is thread safe, although most Swing methods
      * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
+     * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+     * in Swing</A> for more information.
      *
      * @param offset the offset into the paragraph (must be at least 0)
      * @param length the number of characters affected (must be at least 0)
diff --git a/jdk/src/share/classes/javax/swing/text/html/TableView.java b/jdk/src/share/classes/javax/swing/text/html/TableView.java
index a941fbd..65f4fc0 100644
--- a/jdk/src/share/classes/javax/swing/text/html/TableView.java
+++ b/jdk/src/share/classes/javax/swing/text/html/TableView.java
@@ -242,7 +242,8 @@ import javax.swing.text.*;
             if (lv != null) {
                 cellSpacing = (int) lv.getValue();
             } else {
-                cellSpacing = 0;
+                // Default cell spacing equals 2
+                cellSpacing = 2;
             }
             lv = (CSS.LengthValue)
                     attr.getAttribute(CSS.Attribute.BORDER_TOP_WIDTH);
@@ -251,8 +252,7 @@ import javax.swing.text.*;
             } else {
                     borderWidth = 0;
             }
-
-                }
+        }
     }
 
     /**
diff --git a/jdk/src/share/classes/javax/swing/text/rtf/RTFReader.java b/jdk/src/share/classes/javax/swing/text/rtf/RTFReader.java
index 7eac944..5fd4824 100644
--- a/jdk/src/share/classes/javax/swing/text/rtf/RTFReader.java
+++ b/jdk/src/share/classes/javax/swing/text/rtf/RTFReader.java
@@ -528,7 +528,7 @@ public void setCharacterSet(String name)
             try {
                 translationTable = (char[])getCharacterSet("ansi");
             } catch (IOException e) {
-                throw new InternalError("RTFReader: Unable to find character set resources (" + e + ")");
+                throw new InternalError("RTFReader: Unable to find character set resources (" + e + ")", e);
             }
         }
     }
@@ -1614,7 +1614,7 @@ class DocumentDestination
         } catch (BadLocationException ble) {
             /* This shouldn't be able to happen, of course */
             /* TODO is InternalError the correct error to throw? */
-            throw new InternalError(ble.getMessage());
+            throw new InternalError(ble.getMessage(), ble);
         }
     }
 
@@ -1628,7 +1628,7 @@ class DocumentDestination
         } catch (BadLocationException ble) {
             /* This shouldn't be able to happen, of course */
             /* TODO is InternalError the correct error to throw? */
-            throw new InternalError(ble.getMessage());
+            throw new InternalError(ble.getMessage(), ble);
         }
     }
 
diff --git a/jdk/src/share/classes/org/ietf/jgss/Oid.java b/jdk/src/share/classes/org/ietf/jgss/Oid.java
index 294ec1f..eb55ff9 100644
--- a/jdk/src/share/classes/org/ietf/jgss/Oid.java
+++ b/jdk/src/share/classes/org/ietf/jgss/Oid.java
@@ -157,7 +157,7 @@ public class Oid {
             return (true);
 
         if (other instanceof Oid)
-            return this.oid.equals(((Oid) other).oid);
+            return this.oid.equals((Object)((Oid) other).oid);
         else if (other instanceof ObjectIdentifier)
             return this.oid.equals(other);
         else
diff --git a/jdk/src/share/classes/org/openjdk/jigsaw/BootLoader.java b/jdk/src/share/classes/org/openjdk/jigsaw/BootLoader.java
index 209839b..2aba6d8 100644
--- a/jdk/src/share/classes/org/openjdk/jigsaw/BootLoader.java
+++ b/jdk/src/share/classes/org/openjdk/jigsaw/BootLoader.java
@@ -97,9 +97,8 @@ public final class BootLoader    // ## TEMPORARY should be package-private
     }
 
     public static BootLoader getLoader() {
-        if (bootLoader == null)
-            throw new AssertionError("BootLoader not initialized: booted=" +
-                sun.misc.VM.isBooted());
+        // ### this may return null as VM bypasses the library
+        // ### to load system classes.  Revisit in the VM support.
         return bootLoader;
     }
 
diff --git a/jdk/src/share/classes/org/openjdk/jigsaw/Hi.java b/jdk/src/share/classes/org/openjdk/jigsaw/Hi.java
index f0f3921..56fb9bc 100644
--- a/jdk/src/share/classes/org/openjdk/jigsaw/Hi.java
+++ b/jdk/src/share/classes/org/openjdk/jigsaw/Hi.java
@@ -29,14 +29,14 @@ package org.openjdk.jigsaw;
 // Trivial main class for the JDK boot module, for testing only
 //
 //   $ java -m jdk
-//   The JDK boot module is brought to you by the letter 'J' and the number 7.
+//   The JDK boot module is brought to you by the letter 'J' and the number 8.
 //   $
 
 public final class Hi {
 
     public static void main(String[] args) {
         System.out.println("The JDK boot module is brought to you by"
-                           + " the letter 'J' and the number 7.");
+                           + " the letter 'J' and the number 8.");
     }
 
 }
diff --git a/jdk/src/share/classes/sun/awt/FontConfiguration.java b/jdk/src/share/classes/sun/awt/FontConfiguration.java
index 231f6a4..1744d08 100644
--- a/jdk/src/share/classes/sun/awt/FontConfiguration.java
+++ b/jdk/src/share/classes/sun/awt/FontConfiguration.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -266,11 +266,20 @@ public abstract class FontConfiguration {
     private File findFontConfigFile(String javaLib) {
         String baseName = javaLib + File.separator + "fontconfig";
         File configFile;
+        String osMajorVersion = null;
         if (osVersion != null && osName != null) {
             configFile = findImpl(baseName + "." + osName + "." + osVersion);
             if (configFile != null) {
                 return configFile;
             }
+            int decimalPointIndex = osVersion.indexOf(".");
+            if (decimalPointIndex != -1) {
+                osMajorVersion = osVersion.substring(0, osVersion.indexOf("."));
+                configFile = findImpl(baseName + "." + osName + "." + osMajorVersion);
+                if (configFile != null) {
+                    return configFile;
+                }
+            }
         }
         if (osName != null) {
             configFile = findImpl(baseName + "." + osName);
@@ -283,6 +292,12 @@ public abstract class FontConfiguration {
             if (configFile != null) {
                 return configFile;
             }
+            if (osMajorVersion != null) {
+                configFile = findImpl(baseName + "." + osMajorVersion);
+                if (configFile != null) {
+                    return configFile;
+                }
+            }
         }
         foundOsSpecificFile = false;
 
diff --git a/jdk/src/share/classes/sun/dc/DuctusRenderingEngine.java b/jdk/src/share/classes/sun/dc/DuctusRenderingEngine.java
index 51f398a..ae9340b 100644
--- a/jdk/src/share/classes/sun/dc/DuctusRenderingEngine.java
+++ b/jdk/src/share/classes/sun/dc/DuctusRenderingEngine.java
@@ -158,7 +158,7 @@ public class DuctusRenderingEngine extends RenderingEngine {
             feedConsumer(pi, consumer, normalize, 0.25f);
         } catch (PathException e) {
             throw new InternalError("Unable to Stroke shape ("+
-                                    e.getMessage()+")");
+                                    e.getMessage()+")", e);
         } finally {
             while (consumer != null && consumer != sr) {
                 PathConsumer next = consumer.getConsumer();
@@ -763,7 +763,7 @@ public class DuctusRenderingEngine extends RenderingEngine {
             consumer.endPath();
         } catch (PathException e) {
             throw new InternalError("Unable to Stroke shape ("+
-                                    e.getMessage()+")");
+                                    e.getMessage()+")", e);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/font/FontLineMetrics.java b/jdk/src/share/classes/sun/font/FontLineMetrics.java
index b2e3e5c..57e1ffa 100644
--- a/jdk/src/share/classes/sun/font/FontLineMetrics.java
+++ b/jdk/src/share/classes/sun/font/FontLineMetrics.java
@@ -113,7 +113,7 @@ public final class FontLineMetrics extends LineMetrics implements Cloneable {
             return super.clone();
         }
         catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 }
diff --git a/jdk/src/share/classes/sun/font/FontManagerFactory.java b/jdk/src/share/classes/sun/font/FontManagerFactory.java
index b9f4a6f..20618e2 100644
--- a/jdk/src/share/classes/sun/font/FontManagerFactory.java
+++ b/jdk/src/share/classes/sun/font/FontManagerFactory.java
@@ -78,20 +78,11 @@ public final class FontManagerFactory {
                     ClassLoader cl = ClassLoader.getSystemClassLoader();
                     Class fmClass = Class.forName(fmClassName, true, cl);
                     instance = (FontManager) fmClass.newInstance();
-                } catch (ClassNotFoundException ex) {
-                    InternalError err = new InternalError();
-                    err.initCause(ex);
-                    throw err;
+                } catch (ClassNotFoundException |
+                         InstantiationException |
+                         IllegalAccessException ex) {
+                    throw new InternalError(ex);
 
-                } catch (InstantiationException ex) {
-                    InternalError err = new InternalError();
-                    err.initCause(ex);
-                    throw err;
-
-                } catch (IllegalAccessException ex) {
-                    InternalError err = new InternalError();
-                    err.initCause(ex);
-                    throw err;
                 }
                 return null;
             }
diff --git a/jdk/src/share/classes/sun/font/GlyphLayout.java b/jdk/src/share/classes/sun/font/GlyphLayout.java
index 03537b4..100b66b 100644
--- a/jdk/src/share/classes/sun/font/GlyphLayout.java
+++ b/jdk/src/share/classes/sun/font/GlyphLayout.java
@@ -233,7 +233,7 @@ public final class GlyphLayout {
                     invdtx = dtx.createInverse();
                 }
                 catch (NoninvertibleTransformException e) {
-                    throw new InternalError();
+                    throw new InternalError(e);
                 }
             }
 
diff --git a/jdk/src/share/classes/sun/invoke/util/ValueConversions.java b/jdk/src/share/classes/sun/invoke/util/ValueConversions.java
index 9179785..cab961a 100644
--- a/jdk/src/share/classes/sun/invoke/util/ValueConversions.java
+++ b/jdk/src/share/classes/sun/invoke/util/ValueConversions.java
@@ -677,9 +677,7 @@ public class ValueConversions {
             EMPTY = IMPL_LOOKUP.findStatic(THIS_CLASS, "empty", ignoreType.dropParameterTypes(0, 1));
             NEW_ARRAY = IMPL_LOOKUP.findStatic(THIS_CLASS, "newArray", MethodType.methodType(Object[].class, int.class));
         } catch (NoSuchMethodException | IllegalAccessException ex) {
-            Error err = new InternalError("uncaught exception");
-            err.initCause(ex);
-            throw err;
+            throw new InternalError("uncaught exception", ex);
         }
     }
 
@@ -693,9 +691,7 @@ public class ValueConversions {
                 COPY_AS_PRIMITIVE_ARRAY = IMPL_LOOKUP.findStatic(THIS_CLASS, "copyAsPrimitiveArray", MethodType.methodType(Object.class, Wrapper.class, Object[].class));
                 MAKE_LIST = IMPL_LOOKUP.findStatic(THIS_CLASS, "makeList", MethodType.methodType(List.class, Object[].class));
             } catch (ReflectiveOperationException ex) {
-                Error err = new InternalError("uncaught exception");
-                err.initCause(ex);
-                throw err;
+                throw new InternalError("uncaught exception", ex);
             }
         }
     }
diff --git a/jdk/src/share/classes/sun/java2d/pipe/LoopPipe.java b/jdk/src/share/classes/sun/java2d/pipe/LoopPipe.java
index 3df4adc..e975cc9 100644
--- a/jdk/src/share/classes/sun/java2d/pipe/LoopPipe.java
+++ b/jdk/src/share/classes/sun/java2d/pipe/LoopPipe.java
@@ -281,9 +281,8 @@ public class LoopPipe
         } catch (Throwable t) {
             sr.dispose();
             sr = null;
-            t.printStackTrace();
             throw new InternalError("Unable to Stroke shape ("+
-                                    t.getMessage()+")");
+                                    t.getMessage()+")", t);
         }
         return sr;
     }
diff --git a/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java b/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java
index 64ac47f..d290106 100644
--- a/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java
+++ b/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java
@@ -171,7 +171,8 @@ public class ManagementFactoryHelper {
             ObjectName result = objname;
             if (result == null) {
                 synchronized (this) {
-                    if (objname == null) {
+                    result = objname;
+                    if (result == null) {
                         result = Util.newObjectName(LOGGING_MXBEAN_NAME);
                         objname = result;
                     }
@@ -228,7 +229,8 @@ public class ManagementFactoryHelper {
                 ObjectName result = objname;
                 if (result == null) {
                     synchronized (this) {
-                        if (objname == null) {
+                        result = objname;
+                        if (result == null) {
                             result = Util.newObjectName(BUFFER_POOL_MXBEAN_NAME +
                                 ",name=" + pool.getName());
                             objname = result;
diff --git a/jdk/src/share/classes/sun/management/counter/perf/PerfDataEntry.java b/jdk/src/share/classes/sun/management/counter/perf/PerfDataEntry.java
index 8a38b6e..0136d2e 100644
--- a/jdk/src/share/classes/sun/management/counter/perf/PerfDataEntry.java
+++ b/jdk/src/share/classes/sun/management/counter/perf/PerfDataEntry.java
@@ -133,7 +133,7 @@ class PerfDataEntry {
         catch (UnsupportedEncodingException e) {
             // should not reach here
             // "UTF-8" is always a known encoding
-            throw new InternalError(e.getMessage());
+            throw new InternalError(e.getMessage(), e);
         }
 
         if (variability == Variability.INVALID) {
diff --git a/jdk/src/share/classes/sun/management/counter/perf/PerfDataType.java b/jdk/src/share/classes/sun/management/counter/perf/PerfDataType.java
index aba2831..215003e 100644
--- a/jdk/src/share/classes/sun/management/counter/perf/PerfDataType.java
+++ b/jdk/src/share/classes/sun/management/counter/perf/PerfDataType.java
@@ -93,7 +93,7 @@ class PerfDataType {
             this.value = b[0];
         } catch (UnsupportedEncodingException e) {
             // ignore, "UTF-8" is always a known encoding
-            throw new InternalError("Unknown encoding");
+            throw new InternalError("Unknown encoding", e);
         }
     }
 }
diff --git a/jdk/src/share/classes/sun/misc/FloatingDecimal.java b/jdk/src/share/classes/sun/misc/FloatingDecimal.java
index 1e3a25e..4df0487 100644
--- a/jdk/src/share/classes/sun/misc/FloatingDecimal.java
+++ b/jdk/src/share/classes/sun/misc/FloatingDecimal.java
@@ -25,7 +25,6 @@
 
 package sun.misc;
 
-import sun.misc.FpUtils;
 import sun.misc.DoubleConsts;
 import sun.misc.FloatConsts;
 import java.util.regex.*;
@@ -2297,9 +2296,9 @@ public class FloatingDecimal{
                     significand++;
                 }
 
-                FloatingDecimal fd = new FloatingDecimal(FpUtils.rawCopySign(
-                                                                 Double.longBitsToDouble(significand),
-                                                                 sign));
+                FloatingDecimal fd = new FloatingDecimal(Math.copySign(
+                                                              Double.longBitsToDouble(significand),
+                                                              sign));
 
                 /*
                  * Set roundingDir variable field of fd properly so
diff --git a/jdk/src/share/classes/sun/misc/FormattedFloatingDecimal.java b/jdk/src/share/classes/sun/misc/FormattedFloatingDecimal.java
index 0b6dd85..261dbc0 100644
--- a/jdk/src/share/classes/sun/misc/FormattedFloatingDecimal.java
+++ b/jdk/src/share/classes/sun/misc/FormattedFloatingDecimal.java
@@ -25,7 +25,6 @@
 
 package sun.misc;
 
-import sun.misc.FpUtils;
 import sun.misc.DoubleConsts;
 import sun.misc.FloatConsts;
 import java.util.regex.*;
diff --git a/jdk/src/share/classes/sun/misc/FpUtils.java b/jdk/src/share/classes/sun/misc/FpUtils.java
index 1050d32..a874c80 100644
--- a/jdk/src/share/classes/sun/misc/FpUtils.java
+++ b/jdk/src/share/classes/sun/misc/FpUtils.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -125,10 +125,6 @@ public class FpUtils {
      */
     private FpUtils() {}
 
-    // Constants used in scalb
-    static double twoToTheDoubleScaleUp = powerOfTwoD(512);
-    static double twoToTheDoubleScaleDown = powerOfTwoD(-512);
-
     // Helper Methods
 
     // The following helper methods are used in the implementation of
@@ -137,49 +133,22 @@ public class FpUtils {
 
     /**
      * Returns unbiased exponent of a {@code double}.
+     * @deprecated Use Math.getExponent.
      */
+    @Deprecated
     public static int getExponent(double d){
-        /*
-         * Bitwise convert d to long, mask out exponent bits, shift
-         * to the right and then subtract out double's bias adjust to
-         * get true exponent value.
-         */
-        return (int)(((Double.doubleToRawLongBits(d) & DoubleConsts.EXP_BIT_MASK) >>
-                      (DoubleConsts.SIGNIFICAND_WIDTH - 1)) - DoubleConsts.EXP_BIAS);
+        return Math.getExponent(d);
     }
 
     /**
      * Returns unbiased exponent of a {@code float}.
+     * @deprecated Use Math.getExponent.
      */
+    @Deprecated
     public static int getExponent(float f){
-        /*
-         * Bitwise convert f to integer, mask out exponent bits, shift
-         * to the right and then subtract out float's bias adjust to
-         * get true exponent value
-         */
-        return ((Float.floatToRawIntBits(f) & FloatConsts.EXP_BIT_MASK) >>
-                (FloatConsts.SIGNIFICAND_WIDTH - 1)) - FloatConsts.EXP_BIAS;
+        return Math.getExponent(f);
     }
 
-    /**
-     * Returns a floating-point power of two in the normal range.
-     */
-    static double powerOfTwoD(int n) {
-        assert(n >= DoubleConsts.MIN_EXPONENT && n <= DoubleConsts.MAX_EXPONENT);
-        return Double.longBitsToDouble((((long)n + (long)DoubleConsts.EXP_BIAS) <<
-                                        (DoubleConsts.SIGNIFICAND_WIDTH-1))
-                                       & DoubleConsts.EXP_BIT_MASK);
-    }
-
-    /**
-     * Returns a floating-point power of two in the normal range.
-     */
-    static float powerOfTwoF(int n) {
-        assert(n >= FloatConsts.MIN_EXPONENT && n <= FloatConsts.MAX_EXPONENT);
-        return Float.intBitsToFloat(((n + FloatConsts.EXP_BIAS) <<
-                                     (FloatConsts.SIGNIFICAND_WIDTH-1))
-                                    & FloatConsts.EXP_BIT_MASK);
-    }
 
     /**
      * Returns the first floating-point argument with the sign of the
@@ -195,13 +164,11 @@ public class FpUtils {
      * @return a value with the magnitude of {@code magnitude}
      * and the sign of {@code sign}.
      * @author Joseph D. Darcy
+     * @deprecated Use Math.copySign.
      */
+    @Deprecated
     public static double rawCopySign(double magnitude, double sign) {
-        return Double.longBitsToDouble((Double.doubleToRawLongBits(sign) &
-                                        (DoubleConsts.SIGN_BIT_MASK)) |
-                                       (Double.doubleToRawLongBits(magnitude) &
-                                        (DoubleConsts.EXP_BIT_MASK |
-                                         DoubleConsts.SIGNIF_BIT_MASK)));
+        return Math.copySign(magnitude, sign);
     }
 
     /**
@@ -218,13 +185,11 @@ public class FpUtils {
      * @return a value with the magnitude of {@code magnitude}
      * and the sign of {@code sign}.
      * @author Joseph D. Darcy
+     * @deprecated Use Math.copySign.
      */
+    @Deprecated
     public static float rawCopySign(float magnitude, float sign) {
-        return Float.intBitsToFloat((Float.floatToRawIntBits(sign) &
-                                     (FloatConsts.SIGN_BIT_MASK)) |
-                                    (Float.floatToRawIntBits(magnitude) &
-                                     (FloatConsts.EXP_BIT_MASK |
-                                      FloatConsts.SIGNIF_BIT_MASK)));
+        return Math.copySign(magnitude, sign);
     }
 
     /* ***************************************************************** */
@@ -237,9 +202,11 @@ public class FpUtils {
      * @param d the {@code double} value to be tested
      * @return {@code true} if the argument is a finite
      * floating-point value, {@code false} otherwise.
+     * @deprecated Use Double.isFinite.
      */
+    @Deprecated
     public static boolean isFinite(double d) {
-        return Math.abs(d) <= DoubleConsts.MAX_VALUE;
+        return Double.isFinite(d);
     }
 
     /**
@@ -250,9 +217,11 @@ public class FpUtils {
      * @param f the {@code float} value to be tested
      * @return {@code true} if the argument is a finite
      * floating-point value, {@code false} otherwise.
+     * @deprecated Use Float.isFinite.
      */
+     @Deprecated
      public static boolean isFinite(float f) {
-        return Math.abs(f) <= FloatConsts.MAX_VALUE;
+         return Float.isFinite(f);
     }
 
     /**
@@ -558,82 +527,11 @@ public class FpUtils {
      * @param scale_factor power of 2 used to scale {@code d}
      * @return {@code d * }2<sup>{@code scale_factor}</sup>
      * @author Joseph D. Darcy
+     * @deprecated Use Math.scalb.
      */
+    @Deprecated
     public static double scalb(double d, int scale_factor) {
-        /*
-         * This method does not need to be declared strictfp to
-         * compute the same correct result on all platforms.  When
-         * scaling up, it does not matter what order the
-         * multiply-store operations are done; the result will be
-         * finite or overflow regardless of the operation ordering.
-         * However, to get the correct result when scaling down, a
-         * particular ordering must be used.
-         *
-         * When scaling down, the multiply-store operations are
-         * sequenced so that it is not possible for two consecutive
-         * multiply-stores to return subnormal results.  If one
-         * multiply-store result is subnormal, the next multiply will
-         * round it away to zero.  This is done by first multiplying
-         * by 2 ^ (scale_factor % n) and then multiplying several
-         * times by by 2^n as needed where n is the exponent of number
-         * that is a covenient power of two.  In this way, at most one
-         * real rounding error occurs.  If the double value set is
-         * being used exclusively, the rounding will occur on a
-         * multiply.  If the double-extended-exponent value set is
-         * being used, the products will (perhaps) be exact but the
-         * stores to d are guaranteed to round to the double value
-         * set.
-         *
-         * It is _not_ a valid implementation to first multiply d by
-         * 2^MIN_EXPONENT and then by 2 ^ (scale_factor %
-         * MIN_EXPONENT) since even in a strictfp program double
-         * rounding on underflow could occur; e.g. if the scale_factor
-         * argument was (MIN_EXPONENT - n) and the exponent of d was a
-         * little less than -(MIN_EXPONENT - n), meaning the final
-         * result would be subnormal.
-         *
-         * Since exact reproducibility of this method can be achieved
-         * without any undue performance burden, there is no
-         * compelling reason to allow double rounding on underflow in
-         * scalb.
-         */
-
-        // magnitude of a power of two so large that scaling a finite
-        // nonzero value by it would be guaranteed to over or
-        // underflow; due to rounding, scaling down takes takes an
-        // additional power of two which is reflected here
-        final int MAX_SCALE = DoubleConsts.MAX_EXPONENT + -DoubleConsts.MIN_EXPONENT +
-                              DoubleConsts.SIGNIFICAND_WIDTH + 1;
-        int exp_adjust = 0;
-        int scale_increment = 0;
-        double exp_delta = Double.NaN;
-
-        // Make sure scaling factor is in a reasonable range
-
-        if(scale_factor < 0) {
-            scale_factor = Math.max(scale_factor, -MAX_SCALE);
-            scale_increment = -512;
-            exp_delta = twoToTheDoubleScaleDown;
-        }
-        else {
-            scale_factor = Math.min(scale_factor, MAX_SCALE);
-            scale_increment = 512;
-            exp_delta = twoToTheDoubleScaleUp;
-        }
-
-        // Calculate (scale_factor % +/-512), 512 = 2^9, using
-        // technique from "Hacker's Delight" section 10-2.
-        int t = (scale_factor >> 9-1) >>> 32 - 9;
-        exp_adjust = ((scale_factor + t) & (512 -1)) - t;
-
-        d *= powerOfTwoD(exp_adjust);
-        scale_factor -= exp_adjust;
-
-        while(scale_factor != 0) {
-            d *= exp_delta;
-            scale_factor -= scale_increment;
-        }
-        return d;
+        return Math.scalb(d, scale_factor);
     }
 
     /**
@@ -667,28 +565,11 @@ public class FpUtils {
      * @param scale_factor power of 2 used to scale {@code f}
      * @return {@code f * }2<sup>{@code scale_factor}</sup>
      * @author Joseph D. Darcy
+     * @deprecated Use Math.scalb.
      */
-     public static float scalb(float f, int scale_factor) {
-        // magnitude of a power of two so large that scaling a finite
-        // nonzero value by it would be guaranteed to over or
-        // underflow; due to rounding, scaling down takes takes an
-        // additional power of two which is reflected here
-        final int MAX_SCALE = FloatConsts.MAX_EXPONENT + -FloatConsts.MIN_EXPONENT +
-                              FloatConsts.SIGNIFICAND_WIDTH + 1;
-
-        // Make sure scaling factor is in a reasonable range
-        scale_factor = Math.max(Math.min(scale_factor, MAX_SCALE), -MAX_SCALE);
-
-        /*
-         * Since + MAX_SCALE for float fits well within the double
-         * exponent range and + float -> double conversion is exact
-         * the multiplication below will be exact. Therefore, the
-         * rounding that occurs when the double product is cast to
-         * float will be the correctly rounded float result.  Since
-         * all operations other than the final multiply will be exact,
-         * it is not necessary to declare this method strictfp.
-         */
-        return (float)((double)f*powerOfTwoD(scale_factor));
+    @Deprecated
+    public static float scalb(float f, int scale_factor) {
+        return Math.scalb(f, scale_factor);
     }
 
     /**
@@ -730,65 +611,11 @@ public class FpUtils {
      * @return The floating-point number adjacent to {@code start} in the
      * direction of {@code direction}.
      * @author Joseph D. Darcy
+     * @deprecated Use Math.nextAfter
      */
+    @Deprecated
     public static double nextAfter(double start, double direction) {
-        /*
-         * The cases:
-         *
-         * nextAfter(+infinity, 0)  == MAX_VALUE
-         * nextAfter(+infinity, +infinity)  == +infinity
-         * nextAfter(-infinity, 0)  == -MAX_VALUE
-         * nextAfter(-infinity, -infinity)  == -infinity
-         *
-         * are naturally handled without any additional testing
-         */
-
-        // First check for NaN values
-        if (isNaN(start) || isNaN(direction)) {
-            // return a NaN derived from the input NaN(s)
-            return start + direction;
-        } else if (start == direction) {
-            return direction;
-        } else {        // start > direction or start < direction
-            // Add +0.0 to get rid of a -0.0 (+0.0 + -0.0 => +0.0)
-            // then bitwise convert start to integer.
-            long transducer = Double.doubleToRawLongBits(start + 0.0d);
-
-            /*
-             * IEEE 754 floating-point numbers are lexicographically
-             * ordered if treated as signed- magnitude integers .
-             * Since Java's integers are two's complement,
-             * incrementing" the two's complement representation of a
-             * logically negative floating-point value *decrements*
-             * the signed-magnitude representation. Therefore, when
-             * the integer representation of a floating-point values
-             * is less than zero, the adjustment to the representation
-             * is in the opposite direction than would be expected at
-             * first .
-             */
-            if (direction > start) { // Calculate next greater value
-                transducer = transducer + (transducer >= 0L ? 1L:-1L);
-            } else  { // Calculate next lesser value
-                assert direction < start;
-                if (transducer > 0L)
-                    --transducer;
-                else
-                    if (transducer < 0L )
-                        ++transducer;
-                    /*
-                     * transducer==0, the result is -MIN_VALUE
-                     *
-                     * The transition from zero (implicitly
-                     * positive) to the smallest negative
-                     * signed magnitude value must be done
-                     * explicitly.
-                     */
-                    else
-                        transducer = DoubleConsts.SIGN_BIT_MASK | 1L;
-            }
-
-            return Double.longBitsToDouble(transducer);
-        }
+        return Math.nextAfter(start, direction);
     }
 
     /**
@@ -830,65 +657,11 @@ public class FpUtils {
      * @return The floating-point number adjacent to {@code start} in the
      * direction of {@code direction}.
      * @author Joseph D. Darcy
+     * @deprecated Use Math.nextAfter.
      */
-     public static float nextAfter(float start, double direction) {
-        /*
-         * The cases:
-         *
-         * nextAfter(+infinity, 0)  == MAX_VALUE
-         * nextAfter(+infinity, +infinity)  == +infinity
-         * nextAfter(-infinity, 0)  == -MAX_VALUE
-         * nextAfter(-infinity, -infinity)  == -infinity
-         *
-         * are naturally handled without any additional testing
-         */
-
-        // First check for NaN values
-        if (isNaN(start) || isNaN(direction)) {
-            // return a NaN derived from the input NaN(s)
-            return start + (float)direction;
-        } else if (start == direction) {
-            return (float)direction;
-        } else {        // start > direction or start < direction
-            // Add +0.0 to get rid of a -0.0 (+0.0 + -0.0 => +0.0)
-            // then bitwise convert start to integer.
-            int transducer = Float.floatToRawIntBits(start + 0.0f);
-
-            /*
-             * IEEE 754 floating-point numbers are lexicographically
-             * ordered if treated as signed- magnitude integers .
-             * Since Java's integers are two's complement,
-             * incrementing" the two's complement representation of a
-             * logically negative floating-point value *decrements*
-             * the signed-magnitude representation. Therefore, when
-             * the integer representation of a floating-point values
-             * is less than zero, the adjustment to the representation
-             * is in the opposite direction than would be expected at
-             * first.
-             */
-            if (direction > start) {// Calculate next greater value
-                transducer = transducer + (transducer >= 0 ? 1:-1);
-            } else  { // Calculate next lesser value
-                assert direction < start;
-                if (transducer > 0)
-                    --transducer;
-                else
-                    if (transducer < 0 )
-                        ++transducer;
-                    /*
-                     * transducer==0, the result is -MIN_VALUE
-                     *
-                     * The transition from zero (implicitly
-                     * positive) to the smallest negative
-                     * signed magnitude value must be done
-                     * explicitly.
-                     */
-                    else
-                        transducer = FloatConsts.SIGN_BIT_MASK | 1;
-            }
-
-            return Float.intBitsToFloat(transducer);
-        }
+    @Deprecated
+    public static float nextAfter(float start, double direction) {
+        return Math.nextAfter(start, direction);
     }
 
     /**
@@ -915,15 +688,11 @@ public class FpUtils {
      * @return The adjacent floating-point value closer to positive
      * infinity.
      * @author Joseph D. Darcy
+     * @deprecated use Math.nextUp.
      */
+    @Deprecated
     public static double nextUp(double d) {
-        if( isNaN(d) || d == Double.POSITIVE_INFINITY)
-            return d;
-        else {
-            d += 0.0d;
-            return Double.longBitsToDouble(Double.doubleToRawLongBits(d) +
-                                           ((d >= 0.0d)?+1L:-1L));
-        }
+        return Math.nextUp(d);
     }
 
     /**
@@ -950,15 +719,11 @@ public class FpUtils {
      * @return The adjacent floating-point value closer to positive
      * infinity.
      * @author Joseph D. Darcy
+     * @deprecated Use Math.nextUp.
      */
-     public static float nextUp(float f) {
-        if( isNaN(f) || f == FloatConsts.POSITIVE_INFINITY)
-            return f;
-        else {
-            f += 0.0f;
-            return Float.intBitsToFloat(Float.floatToRawIntBits(f) +
-                                        ((f >= 0.0f)?+1:-1));
-        }
+    @Deprecated
+    public static float nextUp(float f) {
+        return Math.nextUp(f);
     }
 
     /**
@@ -985,17 +750,11 @@ public class FpUtils {
      * @return The adjacent floating-point value closer to negative
      * infinity.
      * @author Joseph D. Darcy
+     * @deprecated Use Math.nextDown.
      */
+    @Deprecated
     public static double nextDown(double d) {
-        if( isNaN(d) || d == Double.NEGATIVE_INFINITY)
-            return d;
-        else {
-            if (d == 0.0)
-                return -Double.MIN_VALUE;
-            else
-                return Double.longBitsToDouble(Double.doubleToRawLongBits(d) +
-                                               ((d > 0.0d)?-1L:+1L));
-        }
+        return Math.nextDown(d);
     }
 
     /**
@@ -1022,17 +781,11 @@ public class FpUtils {
      * @return The adjacent floating-point value closer to negative
      * infinity.
      * @author Joseph D. Darcy
+     * @deprecated Use Math.nextDown.
      */
+    @Deprecated
     public static double nextDown(float f) {
-        if( isNaN(f) || f == Float.NEGATIVE_INFINITY)
-            return f;
-        else {
-            if (f == 0.0f)
-                return -Float.MIN_VALUE;
-            else
-                return Float.intBitsToFloat(Float.floatToRawIntBits(f) +
-                                            ((f > 0.0f)?-1:+1));
-        }
+        return Math.nextDown(f);
     }
 
     /**
@@ -1047,9 +800,11 @@ public class FpUtils {
      * and the sign of {@code sign}.
      * @author Joseph D. Darcy
      * @since 1.5
+     * @deprecated Use StrictMath.copySign.
      */
+    @Deprecated
     public static double copySign(double magnitude, double sign) {
-        return rawCopySign(magnitude, (isNaN(sign)?1.0d:sign));
+        return StrictMath.copySign(magnitude, sign);
     }
 
     /**
@@ -1063,9 +818,11 @@ public class FpUtils {
      * @return a value with the magnitude of {@code magnitude}
      * and the sign of {@code sign}.
      * @author Joseph D. Darcy
+     * @deprecated Use StrictMath.copySign.
      */
-     public static float copySign(float magnitude, float sign) {
-        return rawCopySign(magnitude, (isNaN(sign)?1.0f:sign));
+    @Deprecated
+    public static float copySign(float magnitude, float sign) {
+        return StrictMath.copySign(magnitude, sign);
     }
 
     /**
@@ -1090,33 +847,11 @@ public class FpUtils {
      * @return the size of an ulp of the argument
      * @author Joseph D. Darcy
      * @since 1.5
+     * @deprecated Use Math.ulp.
      */
+    @Deprecated
     public static double ulp(double d) {
-        int exp = getExponent(d);
-
-        switch(exp) {
-        case DoubleConsts.MAX_EXPONENT+1:       // NaN or infinity
-            return Math.abs(d);
-
-        case DoubleConsts.MIN_EXPONENT-1:       // zero or subnormal
-            return Double.MIN_VALUE;
-
-        default:
-            assert exp <= DoubleConsts.MAX_EXPONENT && exp >= DoubleConsts.MIN_EXPONENT;
-
-            // ulp(x) is usually 2^(SIGNIFICAND_WIDTH-1)*(2^ilogb(x))
-            exp = exp - (DoubleConsts.SIGNIFICAND_WIDTH-1);
-            if (exp >= DoubleConsts.MIN_EXPONENT) {
-                return powerOfTwoD(exp);
-            }
-            else {
-                // return a subnormal result; left shift integer
-                // representation of Double.MIN_VALUE appropriate
-                // number of positions
-                return Double.longBitsToDouble(1L <<
-                (exp - (DoubleConsts.MIN_EXPONENT - (DoubleConsts.SIGNIFICAND_WIDTH-1)) ));
-            }
-        }
+        return Math.ulp(d);
     }
 
     /**
@@ -1141,33 +876,11 @@ public class FpUtils {
      * @return the size of an ulp of the argument
      * @author Joseph D. Darcy
      * @since 1.5
+     * @deprecated Use Math.ulp.
      */
+     @Deprecated
      public static float ulp(float f) {
-        int exp = getExponent(f);
-
-        switch(exp) {
-        case FloatConsts.MAX_EXPONENT+1:        // NaN or infinity
-            return Math.abs(f);
-
-        case FloatConsts.MIN_EXPONENT-1:        // zero or subnormal
-            return FloatConsts.MIN_VALUE;
-
-        default:
-            assert exp <= FloatConsts.MAX_EXPONENT && exp >= FloatConsts.MIN_EXPONENT;
-
-            // ulp(x) is usually 2^(SIGNIFICAND_WIDTH-1)*(2^ilogb(x))
-            exp = exp - (FloatConsts.SIGNIFICAND_WIDTH-1);
-            if (exp >= FloatConsts.MIN_EXPONENT) {
-                return powerOfTwoF(exp);
-            }
-            else {
-                // return a subnormal result; left shift integer
-                // representation of FloatConsts.MIN_VALUE appropriate
-                // number of positions
-                return Float.intBitsToFloat(1 <<
-                (exp - (FloatConsts.MIN_EXPONENT - (FloatConsts.SIGNIFICAND_WIDTH-1)) ));
-            }
-        }
+        return Math.ulp(f);
      }
 
     /**
@@ -1186,9 +899,11 @@ public class FpUtils {
      * @return the signum function of the argument
      * @author Joseph D. Darcy
      * @since 1.5
+     * @deprecated Use Math.signum.
      */
+    @Deprecated
     public static double signum(double d) {
-        return (d == 0.0 || isNaN(d))?d:copySign(1.0, d);
+        return Math.signum(d);
     }
 
     /**
@@ -1207,9 +922,10 @@ public class FpUtils {
      * @return the signum function of the argument
      * @author Joseph D. Darcy
      * @since 1.5
+     * @deprecated Use Math.signum.
      */
+    @Deprecated
     public static float signum(float f) {
-        return (f == 0.0f || isNaN(f))?f:copySign(1.0f, f);
+        return Math.signum(f);
     }
-
 }
diff --git a/jdk/src/share/classes/sun/misc/JavaNioAccess.java b/jdk/src/share/classes/sun/misc/JavaNioAccess.java
index 22860b2..e4f0a78 100644
--- a/jdk/src/share/classes/sun/misc/JavaNioAccess.java
+++ b/jdk/src/share/classes/sun/misc/JavaNioAccess.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,9 @@
 
 package sun.misc;
 
+import java.nio.Buffer;
+import java.nio.ByteBuffer;
+
 public interface JavaNioAccess {
     /**
      * Provides access to information on buffer usage.
@@ -36,4 +39,18 @@ public interface JavaNioAccess {
         long getMemoryUsed();
     }
     BufferPool getDirectBufferPool();
+
+    /**
+     * Constructs a direct ByteBuffer referring to the block of memory starting
+     * at the given memory address and and extending {@code cap} bytes.
+     * The {@code ob} parameter is an arbitrary object that is attached
+     * to the resulting buffer.
+     */
+    ByteBuffer newDirectByteBuffer(long addr, int cap, Object ob);
+
+    /**
+     * Truncates a buffer by changing its capacity to 0.
+     */
+    void truncate(Buffer buf);
+
 }
diff --git a/jdk/src/share/classes/sun/misc/Launcher.java b/jdk/src/share/classes/sun/misc/Launcher.java
index 97d437e..3d9b336 100644
--- a/jdk/src/share/classes/sun/misc/Launcher.java
+++ b/jdk/src/share/classes/sun/misc/Launcher.java
@@ -71,7 +71,7 @@ public class Launcher {
             extcl = ExtClassLoader.getExtClassLoader();
         } catch (IOException e) {
             throw new InternalError(
-                "Could not create extension class loader");
+                "Could not create extension class loader", e);
         }
 
         // Now create the class loader to use to launch the application
@@ -79,7 +79,7 @@ public class Launcher {
             loader = AppClassLoader.getAppClassLoader(extcl);
         } catch (IOException e) {
             throw new InternalError(
-                "Could not create application class loader");
+                "Could not create application class loader", e);
         }
 
         // Also set the context class loader for the primordial thread.
@@ -460,7 +460,7 @@ public class Launcher {
             return ParseUtil.fileToEncodedURL(file);
         } catch (MalformedURLException e) {
             // Should never happen since we specify the protocol...
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
@@ -475,15 +475,10 @@ public class Launcher {
             try {
                 Class c = Class.forName(name);
                 return (URLStreamHandler)c.newInstance();
-            } catch (ClassNotFoundException e) {
-                e.printStackTrace();
-            } catch (InstantiationException e) {
-                e.printStackTrace();
-            } catch (IllegalAccessException e) {
-                e.printStackTrace();
+            } catch (ReflectiveOperationException e) {
+                throw new InternalError("could not load " + protocol +
+                                        "system protocol handler", e);
             }
-            throw new InternalError("could not load " + protocol +
-                                    "system protocol handler");
         }
     }
 }
diff --git a/jdk/src/share/classes/sun/misc/ProxyGenerator.java b/jdk/src/share/classes/sun/misc/ProxyGenerator.java
index 7e3cc91..c66f82c 100644
--- a/jdk/src/share/classes/sun/misc/ProxyGenerator.java
+++ b/jdk/src/share/classes/sun/misc/ProxyGenerator.java
@@ -460,7 +460,7 @@ public class ProxyGenerator {
             methods.add(generateStaticInitializer());
 
         } catch (IOException e) {
-            throw new InternalError("unexpected I/O Exception");
+            throw new InternalError("unexpected I/O Exception", e);
         }
 
         if (methods.size() > 65535) {
@@ -540,7 +540,7 @@ public class ProxyGenerator {
             dout.writeShort(0); // (no ClassFile attributes for proxy classes)
 
         } catch (IOException e) {
-            throw new InternalError("unexpected I/O Exception");
+            throw new InternalError("unexpected I/O Exception", e);
         }
 
         return bout.toByteArray();
diff --git a/jdk/src/share/classes/sun/misc/REException.java b/jdk/src/share/classes/sun/misc/REException.java
index 1799e82..2b091cd 100644
--- a/jdk/src/share/classes/sun/misc/REException.java
+++ b/jdk/src/share/classes/sun/misc/REException.java
@@ -31,6 +31,9 @@ package sun.misc;
  */
 
 public class REException extends Exception {
+
+    private static final long serialVersionUID = 4656584872733646963L;
+
     REException (String s) {
         super(s);
     }
diff --git a/jdk/src/share/classes/sun/misc/URLClassPath.java b/jdk/src/share/classes/sun/misc/URLClassPath.java
index 5db540d..cee9823 100644
--- a/jdk/src/share/classes/sun/misc/URLClassPath.java
+++ b/jdk/src/share/classes/sun/misc/URLClassPath.java
@@ -717,7 +717,7 @@ public class URLClassPath {
             try {
                 ensureOpen();
             } catch (IOException e) {
-                throw (InternalError) new InternalError().initCause(e);
+                throw new InternalError(e);
             }
             return index;
         }
@@ -812,7 +812,7 @@ public class URLClassPath {
             try {
                 ensureOpen();
             } catch (IOException e) {
-                throw (InternalError) new InternalError().initCause(e);
+                throw new InternalError(e);
             }
             final JarEntry entry = jar.getJarEntry(name);
             if (entry != null)
@@ -900,7 +900,7 @@ public class URLClassPath {
                         try {
                             newLoader.ensureOpen();
                         } catch (IOException e) {
-                            throw (InternalError) new InternalError().initCause(e);
+                            throw new InternalError(e);
                         }
                         final JarEntry entry = newLoader.jar.getJarEntry(name);
                         if (entry != null) {
diff --git a/jdk/src/share/classes/sun/net/NetworkClient.java b/jdk/src/share/classes/sun/net/NetworkClient.java
index 89d4994..8b7886d 100644
--- a/jdk/src/share/classes/sun/net/NetworkClient.java
+++ b/jdk/src/share/classes/sun/net/NetworkClient.java
@@ -139,7 +139,7 @@ public class NetworkClient {
                                         serverSocket.getOutputStream()),
                                         true, encoding);
         } catch (UnsupportedEncodingException e) {
-            throw new InternalError(encoding +"encoding not found");
+            throw new InternalError(encoding +"encoding not found", e);
         }
         serverInput = new BufferedInputStream(serverSocket.getInputStream());
     }
diff --git a/jdk/src/share/classes/sun/net/NetworkServer.java b/jdk/src/share/classes/sun/net/NetworkServer.java
index cb6d4c8..fb54aa2 100644
--- a/jdk/src/share/classes/sun/net/NetworkServer.java
+++ b/jdk/src/share/classes/sun/net/NetworkServer.java
@@ -142,7 +142,7 @@ public class NetworkServer implements Runnable, Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/net/TransferProtocolClient.java b/jdk/src/share/classes/sun/net/TransferProtocolClient.java
index 2b74b62..79f9e13 100644
--- a/jdk/src/share/classes/sun/net/TransferProtocolClient.java
+++ b/jdk/src/share/classes/sun/net/TransferProtocolClient.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1994, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,10 +25,8 @@
 
 package sun.net;
 
-import java.lang.StringIndexOutOfBoundsException;
 import java.io.*;
 import java.util.Vector;
-import sun.net.NetworkClient;
 
 /**
  * This class implements that basic intefaces of transfer protocols.
@@ -44,7 +42,7 @@ public class TransferProtocolClient extends NetworkClient {
 
     /** Array of strings (usually 1 entry) for the last reply
         from the server. */
-    protected Vector    serverResponse = new Vector(1);
+    protected Vector<String> serverResponse = new Vector<>(1);
 
     /** code for last reply */
     protected int       lastReplyCode;
@@ -123,11 +121,11 @@ public class TransferProtocolClient extends NetworkClient {
 
     /** converts the server response into a string. */
     public String getResponseString() {
-        return (String) serverResponse.elementAt(0);
+        return serverResponse.elementAt(0);
     }
 
     /** Returns all server response strings. */
-    public Vector getResponseStrings() {
+    public Vector<String> getResponseStrings() {
         return serverResponse;
     }
 
diff --git a/jdk/src/share/classes/sun/net/ftp/FtpClientProvider.java b/jdk/src/share/classes/sun/net/ftp/FtpClientProvider.java
index 71cd134..7a09810 100644
--- a/jdk/src/share/classes/sun/net/ftp/FtpClientProvider.java
+++ b/jdk/src/share/classes/sun/net/ftp/FtpClientProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,16 +67,13 @@ public abstract class FtpClientProvider {
             return false;
         }
         try {
-            Class c = Class.forName(cm, true, null);
+            Class<?> c = Class.forName(cm, true, null);
             provider = (FtpClientProvider) c.newInstance();
             return true;
-        } catch (ClassNotFoundException x) {
-            throw new ServiceConfigurationError(x.toString());
-        } catch (IllegalAccessException x) {
-            throw new ServiceConfigurationError(x.toString());
-        } catch (InstantiationException x) {
-            throw new ServiceConfigurationError(x.toString());
-        } catch (SecurityException x) {
+        } catch (ClassNotFoundException |
+                 IllegalAccessException |
+                 InstantiationException |
+                 SecurityException x) {
             throw new ServiceConfigurationError(x.toString());
         }
     }
diff --git a/jdk/src/share/classes/sun/net/ftp/impl/FtpClient.java b/jdk/src/share/classes/sun/net/ftp/impl/FtpClient.java
index 1406674..885d858 100644
--- a/jdk/src/share/classes/sun/net/ftp/impl/FtpClient.java
+++ b/jdk/src/share/classes/sun/net/ftp/impl/FtpClient.java
@@ -905,7 +905,7 @@ public class FtpClient extends sun.net.ftp.FtpClient {
             out = new PrintStream(new BufferedOutputStream(server.getOutputStream()),
                     true, encoding);
         } catch (UnsupportedEncodingException e) {
-            throw new InternalError(encoding + "encoding not found");
+            throw new InternalError(encoding + "encoding not found", e);
         }
         in = new BufferedInputStream(server.getInputStream());
     }
@@ -1621,7 +1621,7 @@ public class FtpClient extends sun.net.ftp.FtpClient {
                     out = new PrintStream(new BufferedOutputStream(server.getOutputStream()),
                             true, encoding);
                 } catch (UnsupportedEncodingException e) {
-                    throw new InternalError(encoding + "encoding not found");
+                    throw new InternalError(encoding + "encoding not found", e);
                 }
                 in = new BufferedInputStream(server.getInputStream());
             }
@@ -2056,7 +2056,7 @@ public class FtpClient extends sun.net.ftp.FtpClient {
             out = new PrintStream(new BufferedOutputStream(server.getOutputStream()),
                     true, encoding);
         } catch (UnsupportedEncodingException e) {
-            throw new InternalError(encoding + "encoding not found");
+            throw new InternalError(encoding + "encoding not found", e);
         }
         in = new BufferedInputStream(server.getInputStream());
 
@@ -2090,7 +2090,7 @@ public class FtpClient extends sun.net.ftp.FtpClient {
             out = new PrintStream(new BufferedOutputStream(server.getOutputStream()),
                     true, encoding);
         } catch (UnsupportedEncodingException e) {
-            throw new InternalError(encoding + "encoding not found");
+            throw new InternalError(encoding + "encoding not found", e);
         }
         in = new BufferedInputStream(server.getInputStream());
 
diff --git a/jdk/src/share/classes/sun/net/httpserver/Request.java b/jdk/src/share/classes/sun/net/httpserver/Request.java
index ee2db48..f0b56e1 100644
--- a/jdk/src/share/classes/sun/net/httpserver/Request.java
+++ b/jdk/src/share/classes/sun/net/httpserver/Request.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,13 +25,10 @@
 
 package sun.net.httpserver;
 
-import java.util.*;
 import java.nio.*;
-import java.net.*;
 import java.io.*;
 import java.nio.channels.*;
 import com.sun.net.httpserver.*;
-import com.sun.net.httpserver.spi.*;
 
 /**
  */
@@ -47,7 +44,6 @@ class Request {
     private OutputStream os;
 
     Request (InputStream rawInputStream, OutputStream rawout) throws IOException {
-        this.chan = chan;
         is = rawInputStream;
         os = rawout;
         do {
@@ -121,7 +117,7 @@ class Request {
     }
 
     Headers hdrs = null;
-
+    @SuppressWarnings("fallthrough")
     Headers headers () throws IOException {
         if (hdrs != null) {
             return hdrs;
@@ -152,6 +148,7 @@ class Request {
     parseloop:{
                 while ((c = is.read()) >= 0) {
                     switch (c) {
+                      /*fallthrough*/
                       case ':':
                         if (inKey && len > 0)
                             keyend = len;
diff --git a/jdk/src/share/classes/sun/net/httpserver/SSLStreams.java b/jdk/src/share/classes/sun/net/httpserver/SSLStreams.java
index c6b87cd..6e362d0 100644
--- a/jdk/src/share/classes/sun/net/httpserver/SSLStreams.java
+++ b/jdk/src/share/classes/sun/net/httpserver/SSLStreams.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,13 +29,10 @@ import java.net.*;
 import java.nio.*;
 import java.io.*;
 import java.nio.channels.*;
-import java.util.*;
-import java.util.concurrent.*;
 import java.util.concurrent.locks.*;
 import javax.net.ssl.*;
 import javax.net.ssl.SSLEngineResult.*;
 import com.sun.net.httpserver.*;
-import com.sun.net.httpserver.spi.*;
 
 /**
  * given a non-blocking SocketChannel, it produces
@@ -448,6 +445,7 @@ class SSLStreams {
      * on the wrapper methods being idempotent. eg. if wrapAndSend()
      * is called with no data to send then there must be no problem
      */
+    @SuppressWarnings("fallthrough")
     void doHandshake (HandshakeStatus hs_status) throws IOException {
         try {
             handshaking.lock();
diff --git a/jdk/src/share/classes/sun/net/httpserver/ServerImpl.java b/jdk/src/share/classes/sun/net/httpserver/ServerImpl.java
index 5b53389..cce9c13 100644
--- a/jdk/src/share/classes/sun/net/httpserver/ServerImpl.java
+++ b/jdk/src/share/classes/sun/net/httpserver/ServerImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -593,8 +593,8 @@ class ServerImpl implements TimeSource {
                         rheaders.set ("Connection", "close");
                     } else if (chdr.equalsIgnoreCase ("keep-alive")) {
                         rheaders.set ("Connection", "keep-alive");
-                        int idle=(int)ServerConfig.getIdleInterval()/1000;
-                        int max=(int)ServerConfig.getMaxIdleConnections();
+                        int idle=(int)(ServerConfig.getIdleInterval()/1000);
+                        int max=ServerConfig.getMaxIdleConnections();
                         String val = "timeout="+idle+", max="+max;
                         rheaders.set ("Keep-Alive", val);
                     }
diff --git a/jdk/src/share/classes/sun/net/idn/UCharacterEnums.java b/jdk/src/share/classes/sun/net/idn/UCharacterEnums.java
index 660d055..eef2fdd 100644
--- a/jdk/src/share/classes/sun/net/idn/UCharacterEnums.java
+++ b/jdk/src/share/classes/sun/net/idn/UCharacterEnums.java
@@ -33,6 +33,22 @@
 //          - copy this file from icu4jsrc_3_2/src/com/ibm/icu/lang/UCharacterEnums.java
 //          - move from package com.ibm.icu.lang to package sun.net.idn
 //
+//      2011-09-06 Kurchi Subhra Hazra
+//          - Added @Deprecated tag to the following:
+//            - class UCharacterEnums
+//            - interfaces ECharacterCategory, ECharacterDirection
+//            - fields INITIAL_QUOTE_PUNCTUATION, FINAL_QUOTE_PUNCTUATION,
+//              DIRECTIONALITY_LEFT_TO_RIGHT, DIRECTIONALITY_RIGHT_TO_LEFT,
+//              DIRECTIONALITY_EUROPEAN_NUMBER, DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR
+//              DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR, DIRECTIONALITY_ARABIC_NUMBER,
+//              DIRECTIONALITY_COMMON_NUMBER_SEPARATOR, DIRECTIONALITY_PARAGRAPH_SEPARATOR,
+//              DIRECTIONALITY_SEGMENT_SEPARATOR, DIRECTIONALITY_WHITESPACE,
+//              DIRECTIONALITY_OTHER_NEUTRALS, DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING,
+//              DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE, DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC,
+//              DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING, DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE,
+//              DIRECTIONALITY_POP_DIRECTIONAL_FORMAT, DIRECTIONALITY_NON_SPACING_MARK,
+//              DIRECTIONALITY_BOUNDARY_NEUTRAL, DIRECTIONALITY_UNDEFINED
+//
 
 package sun.net.idn;
 
@@ -41,6 +57,8 @@ package sun.net.idn;
  * @draft ICU 3.0
  * @deprecated This is a draft API and might change in a future release of ICU.
  */
+
+ at Deprecated
 class UCharacterEnums {
 
     /** This is just a namespace, it is not instantiatable. */
@@ -54,6 +72,7 @@ class UCharacterEnums {
      * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
      */
+    @Deprecated
     public static interface ECharacterCategory {
         /**
          * Unassigned character type
@@ -245,6 +264,7 @@ class UCharacterEnums {
          * @draft ICU 2.8
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final int INITIAL_QUOTE_PUNCTUATION = 28;
 
         /**
@@ -261,6 +281,7 @@ class UCharacterEnums {
          * @draft ICU 2.8
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final int FINAL_QUOTE_PUNCTUATION   = 29;
 
         /**
@@ -279,6 +300,8 @@ class UCharacterEnums {
      * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
      */
+
+    @Deprecated
     public static interface ECharacterDirection {
         /**
          * Directional type L
@@ -291,6 +314,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_LEFT_TO_RIGHT = (byte)LEFT_TO_RIGHT;
 
         /**
@@ -304,6 +328,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_RIGHT_TO_LEFT = (byte)RIGHT_TO_LEFT;
 
         /**
@@ -317,6 +342,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_EUROPEAN_NUMBER = (byte)EUROPEAN_NUMBER;
 
         /**
@@ -330,6 +356,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR = (byte)EUROPEAN_NUMBER_SEPARATOR;
 
         /**
@@ -343,6 +370,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR = (byte)EUROPEAN_NUMBER_TERMINATOR;
 
         /**
@@ -356,6 +384,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_ARABIC_NUMBER = (byte)ARABIC_NUMBER;
 
         /**
@@ -369,6 +398,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR = (byte)COMMON_NUMBER_SEPARATOR;
 
         /**
@@ -382,6 +412,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_PARAGRAPH_SEPARATOR = (byte)BLOCK_SEPARATOR;
 
         /**
@@ -395,6 +426,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_SEGMENT_SEPARATOR = (byte)SEGMENT_SEPARATOR;
 
         /**
@@ -408,6 +440,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_WHITESPACE = (byte)WHITE_SPACE_NEUTRAL;
 
         /**
@@ -421,6 +454,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_OTHER_NEUTRALS = (byte)OTHER_NEUTRAL;
 
         /**
@@ -434,6 +468,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING = (byte)LEFT_TO_RIGHT_EMBEDDING;
 
         /**
@@ -447,6 +482,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE = (byte)LEFT_TO_RIGHT_OVERRIDE;
 
         /**
@@ -460,6 +496,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC = (byte)RIGHT_TO_LEFT_ARABIC;
 
         /**
@@ -473,6 +510,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING = (byte)RIGHT_TO_LEFT_EMBEDDING;
 
         /**
@@ -486,6 +524,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE = (byte)RIGHT_TO_LEFT_OVERRIDE;
 
         /**
@@ -499,6 +538,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT = (byte)POP_DIRECTIONAL_FORMAT;
 
         /**
@@ -512,6 +552,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_NON_SPACING_MARK = (byte)DIR_NON_SPACING_MARK;
 
         /**
@@ -525,6 +566,7 @@ class UCharacterEnums {
          * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_BOUNDARY_NEUTRAL = (byte)BOUNDARY_NEUTRAL;
 
         /**
@@ -539,6 +581,7 @@ class UCharacterEnums {
      * @draft ICU 3.0
      * @deprecated This is a draft API and might change in a future release of ICU.
          */
+        @Deprecated
         public static final byte DIRECTIONALITY_UNDEFINED = -1;
     }
 }
diff --git a/jdk/src/share/classes/sun/net/smtp/SmtpClient.java b/jdk/src/share/classes/sun/net/smtp/SmtpClient.java
index d97b16a..7886220 100644
--- a/jdk/src/share/classes/sun/net/smtp/SmtpClient.java
+++ b/jdk/src/share/classes/sun/net/smtp/SmtpClient.java
@@ -134,7 +134,7 @@ public class SmtpClient extends TransferProtocolClient {
         try {
             message = new SmtpPrintStream(serverOutput, this);
         } catch (UnsupportedEncodingException e) {
-            throw new InternalError(encoding+" encoding not found");
+            throw new InternalError(encoding+" encoding not found", e);
         }
         return message;
     }
diff --git a/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java b/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java
index 9142de0..5b11fe3 100644
--- a/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java
+++ b/jdk/src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -140,7 +140,7 @@ public final class DNSNameService implements NameService {
             // create new soft reference to our thread context
             //
             thrCtxt = new ThreadContext(dirCtxt, nsList);
-            contextRef.set(new SoftReference(thrCtxt));
+            contextRef.set(new SoftReference<ThreadContext>(thrCtxt));
         }
 
         return thrCtxt.dirContext();
@@ -193,7 +193,7 @@ public final class DNSNameService implements NameService {
                 Attribute attr = ne.next();
                 String attrID = attr.getID();
 
-                for (NamingEnumeration e = attr.getAll(); e.hasMoreElements();) {
+                for (NamingEnumeration<?> e = attr.getAll(); e.hasMoreElements();) {
                     String addr = (String)e.next();
 
                     // for canoncical name records do recursive lookup
@@ -233,7 +233,7 @@ public final class DNSNameService implements NameService {
         String domain = AccessController.doPrivileged(
             new GetPropertyAction("sun.net.spi.nameservice.domain"));
         if (domain != null && domain.length() > 0) {
-            domainList = new LinkedList();
+            domainList = new LinkedList<String>();
             domainList.add(domain);
         }
 
@@ -282,7 +282,7 @@ public final class DNSNameService implements NameService {
             throw new Error(nx);
         }
 
-        ArrayList results = null;
+        ArrayList<String> results = null;
         UnknownHostException uhe = null;
 
         // If host already contains a domain name then just look it up
@@ -365,7 +365,7 @@ public final class DNSNameService implements NameService {
         InetAddress[] addrs = new InetAddress[results.size()];
         int count = 0;
         for (int i=0; i<results.size(); i++) {
-            String addrString = (String)results.get(i);
+            String addrString = results.get(i);
             byte addr[] = IPAddressUtil.textToNumericFormatV4(addrString);
             if (addr == null) {
                 addr = IPAddressUtil.textToNumericFormatV6(addrString);
diff --git a/jdk/src/share/classes/sun/net/www/HeaderParser.java b/jdk/src/share/classes/sun/net/www/HeaderParser.java
index a16b267..3f1629f 100644
--- a/jdk/src/share/classes/sun/net/www/HeaderParser.java
+++ b/jdk/src/share/classes/sun/net/www/HeaderParser.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -192,7 +192,7 @@ public class HeaderParser {
         return Default;
     }
 
-    class ParserIterator implements Iterator {
+    class ParserIterator implements Iterator<String> {
         int index;
         boolean returnsValue; // or key
 
@@ -202,7 +202,7 @@ public class HeaderParser {
         public boolean hasNext () {
             return index<nkeys;
         }
-        public Object next () {
+        public String next () {
             return tab[index++][returnsValue?1:0];
         }
         public void remove () {
@@ -210,20 +210,20 @@ public class HeaderParser {
         }
     }
 
-    public Iterator keys () {
+    public Iterator<String> keys () {
         return new ParserIterator (false);
     }
 
-    public Iterator values () {
+    public Iterator<String> values () {
         return new ParserIterator (true);
     }
 
     public String toString () {
-        Iterator k = keys();
+        Iterator<String> k = keys();
         StringBuffer sbuf = new StringBuffer();
         sbuf.append ("{size="+asize+" nkeys="+nkeys+" ");
         for (int i=0; k.hasNext(); i++) {
-            String key = (String)k.next();
+            String key = k.next();
             String val = findValue (i);
             if (val != null && "".equals (val)) {
                 val = null;
diff --git a/jdk/src/share/classes/sun/net/www/MessageHeader.java b/jdk/src/share/classes/sun/net/www/MessageHeader.java
index 9f2ad57..dbb2cfc 100644
--- a/jdk/src/share/classes/sun/net/www/MessageHeader.java
+++ b/jdk/src/share/classes/sun/net/www/MessageHeader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,7 +35,6 @@ import java.util.Map;
 import java.util.HashMap;
 import java.util.List;
 import java.util.ArrayList;
-import java.util.Set;
 import java.util.Iterator;
 import java.util.NoSuchElementException;
 
@@ -199,7 +198,8 @@ class MessageHeader {
         return filterAndAddHeaders(excludeList, null);
     }
 
-    public synchronized Map<String, List<String>> filterAndAddHeaders(String[] excludeList, Map<String, List<String>>  include) {
+    public synchronized Map<String, List<String>> filterAndAddHeaders(
+            String[] excludeList, Map<String, List<String>>  include) {
         boolean skipIt = false;
         Map<String, List<String>> m = new HashMap<String, List<String>>();
         for (int i = nkeys; --i >= 0;) {
@@ -228,15 +228,13 @@ class MessageHeader {
         }
 
         if (include != null) {
-            Iterator entries = include.entrySet().iterator();
-            while (entries.hasNext()) {
-                Map.Entry entry = (Map.Entry)entries.next();
-                List l = (List)m.get(entry.getKey());
+                for (Map.Entry<String,List<String>> entry: include.entrySet()) {
+                List<String> l = m.get(entry.getKey());
                 if (l == null) {
-                    l = new ArrayList();
-                    m.put((String)entry.getKey(), l);
+                    l = new ArrayList<String>();
+                    m.put(entry.getKey(), l);
                 }
-                l.add(entry.getValue());
+                l.addAll(entry.getValue());
             }
         }
 
@@ -400,6 +398,7 @@ class MessageHeader {
     }
 
     /** Parse and merge a MIME header from an input stream. */
+    @SuppressWarnings("fallthrough")
     public void mergeHeader(InputStream is) throws java.io.IOException {
         if (is == null)
             return;
@@ -421,6 +420,7 @@ class MessageHeader {
                         break;
                       case '\t':
                         c = ' ';
+                      /*fall through*/
                       case ' ':
                         inKey = false;
                         break;
diff --git a/jdk/src/share/classes/sun/net/www/MimeTable.java b/jdk/src/share/classes/sun/net/www/MimeTable.java
index b8b70fd..cab244c 100644
--- a/jdk/src/share/classes/sun/net/www/MimeTable.java
+++ b/jdk/src/share/classes/sun/net/www/MimeTable.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,10 +25,6 @@
 
 package sun.net.www;
 import java.io.*;
-import java.util.Calendar;
-import java.util.Date;
-import java.text.SimpleDateFormat;
-import java.net.URL;
 import java.net.FileNameMap;
 import java.util.Hashtable;
 import java.util.Enumeration;
@@ -271,7 +267,7 @@ public class MimeTable implements FileNameMap {
         String tempFileTemplate = (String)entries.get("temp.file.template");
         if (tempFileTemplate != null) {
             entries.remove("temp.file.template");
-            this.tempFileTemplate = tempFileTemplate;
+            MimeTable.tempFileTemplate = tempFileTemplate;
         }
 
         // now, parse the mime-type spec's
@@ -417,10 +413,10 @@ public class MimeTable implements FileNameMap {
             String user = System.getProperty("user.name");
             if (user != null) {
                 tag = "; customized for " + user;
-                properties.save(os, filePreamble + tag);
+                properties.store(os, filePreamble + tag);
             }
             else {
-                properties.save(os, filePreamble);
+                properties.store(os, filePreamble);
             }
         }
         catch (IOException e) {
diff --git a/jdk/src/share/classes/sun/net/www/URLConnection.java b/jdk/src/share/classes/sun/net/www/URLConnection.java
index 2760acc..c495928 100644
--- a/jdk/src/share/classes/sun/net/www/URLConnection.java
+++ b/jdk/src/share/classes/sun/net/www/URLConnection.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,12 +26,7 @@
 package sun.net.www;
 
 import java.net.URL;
-import java.net.ContentHandler;
 import java.util.*;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.BufferedInputStream;
-import java.net.UnknownServiceException;
 
 /**
  * A class to represent an active connection to an object
@@ -99,7 +94,7 @@ abstract public class URLConnection extends java.net.URLConnection {
     public Map<String,List<String>> getRequestProperties() {
         if (connected)
             throw new IllegalStateException("Already connected");
-        return Collections.EMPTY_MAP;
+        return Collections.emptyMap();
     }
 
     public String getHeaderField(String name) {
diff --git a/jdk/src/share/classes/sun/net/www/content/image/gif.java b/jdk/src/share/classes/sun/net/www/content/image/gif.java
index d388fad..adba0c1 100644
--- a/jdk/src/share/classes/sun/net/www/content/image/gif.java
+++ b/jdk/src/share/classes/sun/net/www/content/image/gif.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1994, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,11 +25,8 @@
 
 package sun.net.www.content.image;
 
-import java.net.URL;
-import java.net.URLConnection;
 import java.net.*;
 import sun.awt.image.*;
-import java.io.InputStream;
 import java.io.IOException;
 import java.awt.Image;
 import java.awt.Toolkit;
@@ -40,7 +37,7 @@ public class gif extends ContentHandler {
         return new URLImageSource(urlc);
     }
 
-    public Object getContent(URLConnection urlc, Class[] classes) throws IOException {
+    public Object getContent(URLConnection urlc, Class<?>[] classes) throws IOException {
         for (int i = 0; i < classes.length; i++) {
           if (classes[i].isAssignableFrom(URLImageSource.class)) {
                 return new URLImageSource(urlc);
diff --git a/jdk/src/share/classes/sun/net/www/content/image/jpeg.java b/jdk/src/share/classes/sun/net/www/content/image/jpeg.java
index 382d363..8076954 100644
--- a/jdk/src/share/classes/sun/net/www/content/image/jpeg.java
+++ b/jdk/src/share/classes/sun/net/www/content/image/jpeg.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,11 +25,8 @@
 
 package sun.net.www.content.image;
 
-import java.net.URL;
-import java.net.URLConnection;
 import java.net.*;
 import sun.awt.image.*;
-import java.io.InputStream;
 import java.io.IOException;
 import java.awt.Image;
 import java.awt.Toolkit;
@@ -39,7 +36,7 @@ public class jpeg extends ContentHandler {
         return new URLImageSource(urlc);
     }
 
-    public Object getContent(URLConnection urlc, Class[] classes) throws IOException {
+    public Object getContent(URLConnection urlc, Class<?>[] classes) throws IOException {
         for (int i = 0; i < classes.length; i++) {
           if (classes[i].isAssignableFrom(URLImageSource.class)) {
                 return new URLImageSource(urlc);
diff --git a/jdk/src/share/classes/sun/net/www/content/image/png.java b/jdk/src/share/classes/sun/net/www/content/image/png.java
index 607402c..88026de 100644
--- a/jdk/src/share/classes/sun/net/www/content/image/png.java
+++ b/jdk/src/share/classes/sun/net/www/content/image/png.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,10 +25,7 @@
 
 package sun.net.www.content.image;
 
-import java.net.URL;
-import java.net.URLConnection;
 import java.net.*;
-import java.io.InputStream;
 import java.io.IOException;
 import sun.awt.image.*;
 import java.awt.Image;
@@ -39,7 +36,7 @@ public class png extends ContentHandler {
         return new URLImageSource(urlc);
     }
 
-    public Object getContent(URLConnection urlc, Class[] classes) throws IOException {
+    public Object getContent(URLConnection urlc, Class<?>[] classes) throws IOException {
         for (int i = 0; i < classes.length; i++) {
           if (classes[i].isAssignableFrom(URLImageSource.class)) {
                 return new URLImageSource(urlc);
diff --git a/jdk/src/share/classes/sun/net/www/content/image/x_xbitmap.java b/jdk/src/share/classes/sun/net/www/content/image/x_xbitmap.java
index eea24fd..10e7246 100644
--- a/jdk/src/share/classes/sun/net/www/content/image/x_xbitmap.java
+++ b/jdk/src/share/classes/sun/net/www/content/image/x_xbitmap.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1994, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,7 +35,7 @@ public class x_xbitmap extends ContentHandler {
         return new URLImageSource(urlc);
     }
 
-    public Object getContent(URLConnection urlc, Class[] classes) throws java.io.IOException {
+    public Object getContent(URLConnection urlc, Class<?>[] classes) throws java.io.IOException {
         for (int i = 0; i < classes.length; i++) {
           if (classes[i].isAssignableFrom(URLImageSource.class)) {
                 return new URLImageSource(urlc);
diff --git a/jdk/src/share/classes/sun/net/www/content/image/x_xpixmap.java b/jdk/src/share/classes/sun/net/www/content/image/x_xpixmap.java
index 31e83aa..3b3ed40 100644
--- a/jdk/src/share/classes/sun/net/www/content/image/x_xpixmap.java
+++ b/jdk/src/share/classes/sun/net/www/content/image/x_xpixmap.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1994, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,7 +35,7 @@ public class x_xpixmap extends ContentHandler {
         return new URLImageSource(urlc);
     }
 
-    public Object getContent(URLConnection urlc, Class[] classes) throws java.io.IOException {
+    public Object getContent(URLConnection urlc, Class<?>[] classes) throws java.io.IOException {
         for (int i = 0; i < classes.length; i++) {
           if (classes[i].isAssignableFrom(URLImageSource.class)) {
                 return new URLImageSource(urlc);
diff --git a/jdk/src/share/classes/sun/net/www/http/ChunkedOutputStream.java b/jdk/src/share/classes/sun/net/www/http/ChunkedOutputStream.java
index 2a0e35a..dfe57c4 100644
--- a/jdk/src/share/classes/sun/net/www/http/ChunkedOutputStream.java
+++ b/jdk/src/share/classes/sun/net/www/http/ChunkedOutputStream.java
@@ -79,7 +79,7 @@ public class ChunkedOutputStream extends PrintStream {
             return header;
         } catch (java.io.UnsupportedEncodingException e) {
             /* This should never happen */
-            throw new InternalError(e.getMessage());
+            throw new InternalError(e.getMessage(), e);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/net/www/http/HttpClient.java b/jdk/src/share/classes/sun/net/www/http/HttpClient.java
index 966fd82..fa8184f 100644
--- a/jdk/src/share/classes/sun/net/www/http/HttpClient.java
+++ b/jdk/src/share/classes/sun/net/www/http/HttpClient.java
@@ -395,7 +395,7 @@ public class HttpClient extends NetworkClient {
                 new BufferedOutputStream(out),
                                          false, encoding);
         } catch (UnsupportedEncodingException e) {
-            throw new InternalError(encoding+" encoding not found");
+            throw new InternalError(encoding+" encoding not found", e);
         }
         serverSocket.setTcpNoDelay(true);
     }
diff --git a/jdk/src/share/classes/sun/net/www/http/KeepAliveStream.java b/jdk/src/share/classes/sun/net/www/http/KeepAliveStream.java
index 5d7bb57..db9b7b0 100644
--- a/jdk/src/share/classes/sun/net/www/http/KeepAliveStream.java
+++ b/jdk/src/share/classes/sun/net/www/http/KeepAliveStream.java
@@ -81,7 +81,7 @@ class KeepAliveStream extends MeteredStream implements Hurryable {
         // NOTE: Don't close super class
         try {
             if (expected > count) {
-                long nskip = (long) (expected - count);
+                long nskip = expected - count;
                 if (nskip <= available()) {
                     long n = 0;
                     while (n < nskip) {
diff --git a/jdk/src/share/classes/sun/net/www/protocol/gopher/GopherClient.java b/jdk/src/share/classes/sun/net/www/protocol/gopher/GopherClient.java
index dd19d40..0347063 100644
--- a/jdk/src/share/classes/sun/net/www/protocol/gopher/GopherClient.java
+++ b/jdk/src/share/classes/sun/net/www/protocol/gopher/GopherClient.java
@@ -281,7 +281,7 @@ public class GopherClient extends NetworkClient implements Runnable {
                 ps.print("</title></head>\n<body>\n<H1>");
                 ps.print(title);
                 ps.print("</h1><dl compact>\n");
-                DataInputStream ds = new DataInputStream(serverInput);
+                BufferedReader ds = new BufferedReader(new InputStreamReader(serverInput));
                 String s;
                 while ((s = ds.readLine()) != null) {
                     int len = s.length();
@@ -324,7 +324,7 @@ public class GopherClient extends NetworkClient implements Runnable {
            }
 
        } catch (UnsupportedEncodingException e) {
-            throw new InternalError(encoding+ " encoding not found");
+            throw new InternalError(encoding+ " encoding not found", e);
        } catch (IOException e) {
        } finally {
            try {
diff --git a/jdk/src/share/classes/sun/net/www/protocol/http/AuthCacheImpl.java b/jdk/src/share/classes/sun/net/www/protocol/http/AuthCacheImpl.java
index c2ebf42..45a5a0e 100644
--- a/jdk/src/share/classes/sun/net/www/protocol/http/AuthCacheImpl.java
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/AuthCacheImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,12 +25,8 @@
 
 package sun.net.www.protocol.http;
 
-import java.io.IOException;
-import java.net.URL;
-import java.util.Hashtable;
 import java.util.LinkedList;
 import java.util.ListIterator;
-import java.util.Enumeration;
 import java.util.HashMap;
 
 /**
@@ -38,13 +34,13 @@ import java.util.HashMap;
  */
 
 public class AuthCacheImpl implements AuthCache {
-    HashMap hashtable;
+    HashMap<String,LinkedList<AuthCacheValue>> hashtable;
 
     public AuthCacheImpl () {
-        hashtable = new HashMap ();
+        hashtable = new HashMap<String,LinkedList<AuthCacheValue>>();
     }
 
-    public void setMap (HashMap map) {
+    public void setMap (HashMap<String,LinkedList<AuthCacheValue>> map) {
         hashtable = map;
     }
 
@@ -52,21 +48,21 @@ public class AuthCacheImpl implements AuthCache {
     // is the path field of AuthenticationInfo
 
     public synchronized void put (String pkey, AuthCacheValue value) {
-        LinkedList list = (LinkedList) hashtable.get (pkey);
+        LinkedList<AuthCacheValue> list = hashtable.get (pkey);
         String skey = value.getPath();
         if (list == null) {
-            list = new LinkedList ();
-            hashtable.put (pkey, list);
+            list = new LinkedList<AuthCacheValue>();
+            hashtable.put(pkey, list);
         }
         // Check if the path already exists or a super-set of it exists
-        ListIterator iter = list.listIterator();
+        ListIterator<AuthCacheValue> iter = list.listIterator();
         while (iter.hasNext()) {
             AuthenticationInfo inf = (AuthenticationInfo)iter.next();
             if (inf.path == null || inf.path.startsWith (skey)) {
                 iter.remove ();
             }
         }
-        iter.add (value);
+        iter.add(value);
     }
 
     // get a value from map checking both primary
@@ -74,7 +70,7 @@ public class AuthCacheImpl implements AuthCache {
 
     public synchronized AuthCacheValue get (String pkey, String skey) {
         AuthenticationInfo result = null;
-        LinkedList list = (LinkedList) hashtable.get (pkey);
+        LinkedList<AuthCacheValue> list = hashtable.get (pkey);
         if (list == null || list.size() == 0) {
             return null;
         }
@@ -82,7 +78,7 @@ public class AuthCacheImpl implements AuthCache {
             // list should contain only one element
             return (AuthenticationInfo)list.get (0);
         }
-        ListIterator iter = list.listIterator();
+        ListIterator<AuthCacheValue> iter = list.listIterator();
         while (iter.hasNext()) {
             AuthenticationInfo inf = (AuthenticationInfo)iter.next();
             if (skey.startsWith (inf.path)) {
@@ -93,7 +89,7 @@ public class AuthCacheImpl implements AuthCache {
     }
 
     public synchronized void remove (String pkey, AuthCacheValue entry) {
-        LinkedList list = (LinkedList) hashtable.get (pkey);
+        LinkedList<AuthCacheValue> list = hashtable.get (pkey);
         if (list == null) {
             return;
         }
@@ -101,7 +97,7 @@ public class AuthCacheImpl implements AuthCache {
             list.clear();
             return;
         }
-        ListIterator iter = list.listIterator ();
+        ListIterator<AuthCacheValue> iter = list.listIterator ();
         while (iter.hasNext()) {
             AuthenticationInfo inf = (AuthenticationInfo)iter.next();
             if (entry.equals(inf)) {
diff --git a/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java b/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java
index eee2579..3908982 100644
--- a/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -122,7 +122,7 @@ public class AuthenticationHeader {
         this.dontUseNegotiate = dontUseNegotiate;
         rsp = response;
         this.hdrname = hdrname;
-        schemes = new HashMap();
+        schemes = new HashMap<String,SchemeMapValue>();
         parse();
     }
 
@@ -136,7 +136,7 @@ public class AuthenticationHeader {
         HeaderParser parser;
     }
 
-    HashMap schemes;
+    HashMap<String, SchemeMapValue> schemes;
 
     /* Iterate through each header line, and then within each line.
      * If multiple entries exist for a particular scheme (unlikely)
@@ -144,11 +144,11 @@ public class AuthenticationHeader {
      * preferred scheme that we support will be used.
      */
     private void parse () {
-        Iterator iter = rsp.multiValueIterator (hdrname);
+        Iterator<String> iter = rsp.multiValueIterator(hdrname);
         while (iter.hasNext()) {
-            String raw = (String)iter.next();
-            HeaderParser hp = new HeaderParser (raw);
-            Iterator keys = hp.keys();
+            String raw = iter.next();
+            HeaderParser hp = new HeaderParser(raw);
+            Iterator<String> keys = hp.keys();
             int i, lastSchemeIndex;
             for (i=0, lastSchemeIndex = -1; keys.hasNext(); i++) {
                 keys.next();
@@ -164,7 +164,7 @@ public class AuthenticationHeader {
             if (i > lastSchemeIndex) {
                 HeaderParser hpn = hp.subsequence (lastSchemeIndex, i);
                 String scheme = hpn.findKey(0);
-                schemes.put (scheme, new SchemeMapValue (hpn, raw));
+                schemes.put(scheme, new SchemeMapValue (hpn, raw));
             }
         }
 
@@ -172,10 +172,10 @@ public class AuthenticationHeader {
          * negotiate -> kerberos -> digest -> ntlm -> basic
          */
         SchemeMapValue v = null;
-        if (authPref == null || (v=(SchemeMapValue)schemes.get (authPref)) == null) {
+        if (authPref == null || (v=schemes.get (authPref)) == null) {
 
             if(v == null && !dontUseNegotiate) {
-                SchemeMapValue tmp = (SchemeMapValue)schemes.get("negotiate");
+                SchemeMapValue tmp = schemes.get("negotiate");
                 if(tmp != null) {
                     if(hci == null || !NegotiateAuthentication.isSupported(new HttpCallerInfo(hci, "Negotiate"))) {
                         tmp = null;
@@ -185,7 +185,7 @@ public class AuthenticationHeader {
             }
 
             if(v == null && !dontUseNegotiate) {
-                SchemeMapValue tmp = (SchemeMapValue)schemes.get("kerberos");
+                SchemeMapValue tmp = schemes.get("kerberos");
                 if(tmp != null) {
                     // the Kerberos scheme is only observed in MS ISA Server. In
                     // fact i think it's a Kerberos-mechnism-only Negotiate.
@@ -205,9 +205,9 @@ public class AuthenticationHeader {
             }
 
             if(v == null) {
-                if ((v=(SchemeMapValue)schemes.get ("digest")) == null) {
-                    if (((v=(SchemeMapValue)schemes.get("ntlm"))==null)) {
-                        v = (SchemeMapValue)schemes.get ("basic");
+                if ((v=schemes.get ("digest")) == null) {
+                    if (((v=schemes.get("ntlm"))==null)) {
+                        v = schemes.get ("basic");
                     }
                 }
             }
diff --git a/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java b/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java
index 4b297b8..e14ce8d 100644
--- a/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java
@@ -25,6 +25,7 @@
 
 package sun.net.www.protocol.http;
 
+import java.util.Arrays;
 import java.net.URL;
 import java.net.URLConnection;
 import java.net.ProtocolException;
@@ -229,9 +230,9 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
             bufSize4ES = 4096; // use the default
         }
 
-        allowRestrictedHeaders = ((Boolean)java.security.AccessController.doPrivileged(
+        allowRestrictedHeaders = java.security.AccessController.doPrivileged(
                 new sun.security.action.GetBooleanAction(
-                    "sun.net.http.allowRestrictedHeaders"))).booleanValue();
+                    "sun.net.http.allowRestrictedHeaders")).booleanValue();
         if (!allowRestrictedHeaders) {
             restrictedHeaderSet = new HashSet<String>(restrictedHeaders.length);
             for (int i=0; i < restrictedHeaders.length; i++) {
@@ -289,6 +290,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
      * REMIND:  backwards compatibility with JDK 1.1.  Should be
      * eliminated for JDK 2.0.
      */
+    @Deprecated
     private static HttpAuthenticator defaultAuth;
 
     /* all the headers we send
@@ -750,6 +752,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
     /**
      * @deprecated.  Use java.net.Authenticator.setDefault() instead.
      */
+    @Deprecated
     public static void setDefaultAuthenticator(HttpAuthenticator a) {
         defaultAuth = a;
     }
@@ -830,8 +833,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
                     InetAddress a1 = InetAddress.getByName(h1);
                     InetAddress a2 = InetAddress.getByName(h2);
                     result[0] = a1.equals(a2);
-                } catch(UnknownHostException e) {
-                } catch(SecurityException e) {
+                } catch(UnknownHostException | SecurityException e) {
                 }
                 return null;
             }
@@ -1336,9 +1338,9 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
 
                     // Read comments labeled "Failed Negotiate" for details.
                     boolean dontUseNegotiate = false;
-                    Iterator iter = responses.multiValueIterator("Proxy-Authenticate");
+                    Iterator<String> iter = responses.multiValueIterator("Proxy-Authenticate");
                     while (iter.hasNext()) {
-                        String value = ((String)iter.next()).trim();
+                        String value = iter.next().trim();
                         if (value.equalsIgnoreCase("Negotiate") ||
                                 value.equalsIgnoreCase("Kerberos")) {
                             if (!inNegotiateProxy) {
@@ -1414,9 +1416,9 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
 
                     // Read comments labeled "Failed Negotiate" for details.
                     boolean dontUseNegotiate = false;
-                    Iterator iter = responses.multiValueIterator("WWW-Authenticate");
+                    Iterator<String> iter = responses.multiValueIterator("WWW-Authenticate");
                     while (iter.hasNext()) {
-                        String value = ((String)iter.next()).trim();
+                        String value = iter.next().trim();
                         if (value.equalsIgnoreCase("Negotiate") ||
                                 value.equalsIgnoreCase("Kerberos")) {
                             if (!inNegotiate) {
@@ -1585,9 +1587,8 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
                                 // HttpsURLConnection instance saved in
                                 // DelegateHttpsURLConnection
                                 uconn = (URLConnection)this.getClass().getField("httpsURLConnection").get(this);
-                                } catch (IllegalAccessException iae) {
-                                    // ignored; use 'this'
-                                } catch (NoSuchFieldException nsfe) {
+                                } catch (IllegalAccessException |
+                                         NoSuchFieldException e) {
                                     // ignored; use 'this'
                                 }
                             }
@@ -1786,9 +1787,9 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
                 if (respCode == HTTP_PROXY_AUTH) {
                     // Read comments labeled "Failed Negotiate" for details.
                     boolean dontUseNegotiate = false;
-                    Iterator iter = responses.multiValueIterator("Proxy-Authenticate");
+                    Iterator<String> iter = responses.multiValueIterator("Proxy-Authenticate");
                     while (iter.hasNext()) {
-                        String value = ((String)iter.next()).trim();
+                        String value = iter.next().trim();
                         if (value.equalsIgnoreCase("Negotiate") ||
                                 value.equalsIgnoreCase("Kerberos")) {
                             if (!inNegotiateProxy) {
@@ -1938,6 +1939,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
      * Gets the authentication for an HTTP proxy, and applies it to
      * the connection.
      */
+    @SuppressWarnings("fallthrough")
     private AuthenticationInfo getHttpProxyAuthentication (AuthenticationHeader authhdr) {
         /* get authorization from authenticator */
         AuthenticationInfo ret = null;
@@ -2004,13 +2006,13 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
                     }
                     break;
                 case NTLM:
-                    if (NTLMAuthenticationProxy.proxy.supported) {
+                    if (NTLMAuthenticationProxy.supported) {
                         /* tryTransparentNTLMProxy will always be true the first
                          * time around, but verify that the platform supports it
                          * otherwise don't try. */
                         if (tryTransparentNTLMProxy) {
                             tryTransparentNTLMProxy =
-                                    NTLMAuthenticationProxy.proxy.supportsTransparentAuth;
+                                    NTLMAuthenticationProxy.supportsTransparentAuth;
                         }
                         a = null;
                         if (tryTransparentNTLMProxy) {
@@ -2043,6 +2045,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
                     break;
                 case UNKNOWN:
                     logger.finest("Unknown/Unsupported authentication scheme: " + scheme);
+                /*fall through*/
                 default:
                     throw new AssertionError("should not reach here");
                 }
@@ -2080,6 +2083,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
      * @param authHdr the AuthenticationHeader which tells what auth scheme is
      * prefered.
      */
+    @SuppressWarnings("fallthrough")
     private AuthenticationInfo getServerAuthentication (AuthenticationHeader authhdr) {
         /* get authorization from authenticator */
         AuthenticationInfo ret = null;
@@ -2150,7 +2154,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
                     }
                     break;
                 case NTLM:
-                    if (NTLMAuthenticationProxy.proxy.supported) {
+                    if (NTLMAuthenticationProxy.supported) {
                         URL url1;
                         try {
                             url1 = new URL (url, "/"); /* truncate the path */
@@ -2163,13 +2167,13 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
                          * otherwise don't try. */
                         if (tryTransparentNTLMServer) {
                             tryTransparentNTLMServer =
-                                    NTLMAuthenticationProxy.proxy.supportsTransparentAuth;
+                                    NTLMAuthenticationProxy.supportsTransparentAuth;
                             /* If the platform supports transparent authentication
                              * then check if we are in a secure environment
                              * whether, or not, we should try transparent authentication.*/
                             if (tryTransparentNTLMServer) {
                                 tryTransparentNTLMServer =
-                                        NTLMAuthenticationProxy.proxy.isTrustedSite(url);
+                                        NTLMAuthenticationProxy.isTrustedSite(url);
                             }
                         }
                         a = null;
@@ -2198,6 +2202,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
                     break;
                 case UNKNOWN:
                     logger.finest("Unknown/Unsupported authentication scheme: " + scheme);
+                /*fall through*/
                 default:
                     throw new AssertionError("should not reach here");
                 }
@@ -2745,14 +2750,14 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
          * The cookies in the requests message headers may have
          * been modified. Use the saved user cookies instead.
          */
-        Map userCookiesMap = null;
+        Map<String, List<String>> userCookiesMap = null;
         if (userCookies != null || userCookies2 != null) {
-            userCookiesMap = new HashMap();
+            userCookiesMap = new HashMap<>();
             if (userCookies != null) {
-                userCookiesMap.put("Cookie", userCookies);
+                userCookiesMap.put("Cookie", Arrays.asList(userCookies));
             }
             if (userCookies2 != null) {
-                userCookiesMap.put("Cookie2", userCookies2);
+                userCookiesMap.put("Cookie2", Arrays.asList(userCookies2));
             }
         }
         return requests.filterAndAddHeaders(EXCLUDE_HEADERS2, userCookiesMap);
diff --git a/jdk/src/share/classes/sun/net/www/protocol/http/Negotiator.java b/jdk/src/share/classes/sun/net/www/protocol/http/Negotiator.java
index 522d6fb..32446f6 100644
--- a/jdk/src/share/classes/sun/net/www/protocol/http/Negotiator.java
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/Negotiator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,8 +45,8 @@ public abstract class Negotiator {
         // Makes NegotiatorImpl, and the security classes it references, a
         // runtime dependency rather than a static one.
 
-        Class clazz;
-        Constructor c;
+        Class<?> clazz;
+        Constructor<?> c;
         try {
             clazz = Class.forName("sun.net.www.protocol.http.spnego.NegotiatorImpl", true, null);
             c = clazz.getConstructor(HttpCallerInfo.class);
diff --git a/jdk/src/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java b/jdk/src/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java
index ecc75ef..88c62594 100644
--- a/jdk/src/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java
+++ b/jdk/src/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -221,11 +221,11 @@ public abstract class AbstractDelegateHttpsURLConnection extends
      */
     public java.security.cert.Certificate[] getLocalCertificates() {
         if (cachedResponse != null) {
-            List l = ((SecureCacheResponse)cachedResponse).getLocalCertificateChain();
+            List<java.security.cert.Certificate> l = ((SecureCacheResponse)cachedResponse).getLocalCertificateChain();
             if (l == null) {
                 return null;
             } else {
-                return (java.security.cert.Certificate[])l.toArray();
+                return l.toArray(new java.security.cert.Certificate[0]);
             }
         }
         if (http == null) {
@@ -243,11 +243,11 @@ public abstract class AbstractDelegateHttpsURLConnection extends
     public java.security.cert.Certificate[] getServerCertificates()
             throws SSLPeerUnverifiedException {
         if (cachedResponse != null) {
-            List l = ((SecureCacheResponse)cachedResponse).getServerCertificateChain();
+            List<java.security.cert.Certificate> l = ((SecureCacheResponse)cachedResponse).getServerCertificateChain();
             if (l == null) {
                 return null;
             } else {
-                return (java.security.cert.Certificate[])l.toArray();
+                return l.toArray(new java.security.cert.Certificate[0]);
             }
         }
 
diff --git a/jdk/src/share/classes/sun/net/www/protocol/https/HttpsClient.java b/jdk/src/share/classes/sun/net/www/protocol/https/HttpsClient.java
index 24618e8..c83860b 100644
--- a/jdk/src/share/classes/sun/net/www/protocol/https/HttpsClient.java
+++ b/jdk/src/share/classes/sun/net/www/protocol/https/HttpsClient.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -623,7 +623,7 @@ final class HttpsClient extends HttpClient
      */
     @Override
     public void closeIdleConnection() {
-        HttpClient http = (HttpClient) kac.get(url, sslSocketFactory);
+        HttpClient http = kac.get(url, sslSocketFactory);
         if (http != null) {
             http.closeServer();
         }
@@ -681,8 +681,7 @@ final class HttpsClient extends HttpClient
             // return the X500Principal of the end-entity cert.
             java.security.cert.Certificate[] certs =
                         session.getPeerCertificates();
-            principal = (X500Principal)
-                ((X509Certificate)certs[0]).getSubjectX500Principal();
+            principal = ((X509Certificate)certs[0]).getSubjectX500Principal();
         }
         return principal;
     }
@@ -703,8 +702,7 @@ final class HttpsClient extends HttpClient
             java.security.cert.Certificate[] certs =
                         session.getLocalCertificates();
             if (certs != null) {
-                principal = (X500Principal)
-                    ((X509Certificate)certs[0]).getSubjectX500Principal();
+                principal = ((X509Certificate)certs[0]).getSubjectX500Principal();
             }
         }
         return principal;
diff --git a/jdk/src/share/classes/sun/net/www/protocol/mailto/Handler.java b/jdk/src/share/classes/sun/net/www/protocol/mailto/Handler.java
index 10fe684..13076fc 100644
--- a/jdk/src/share/classes/sun/net/www/protocol/mailto/Handler.java
+++ b/jdk/src/share/classes/sun/net/www/protocol/mailto/Handler.java
@@ -139,6 +139,20 @@ public class Handler extends URLStreamHandler {
         }
         if (nogood)
             throw new RuntimeException("No email address");
-        setURL(u, protocol, host, port, file, null);
+        setURLHandler(u, protocol, host, port, file, null);
+    }
+
+    /**
+     * This method is used to suppress the deprecated warning
+     *
+     * @param   u the URL to receive the result of parsing the spec
+     * @param   spec the URL string to parse
+     * @param   start the character position to start parsing at.  This is
+     *          just past the ':'.
+     * @param   limit the character position to stop parsing at.
+     */
+    @SuppressWarnings("deprecation")
+    private void setURLHandler(URL u, String protocol, String host, int port, String file, String ref) {
+        setURL(u,protocol,host,port,file,null);
     }
 }
diff --git a/jdk/src/share/classes/sun/nio/ch/DirectBuffer.java b/jdk/src/share/classes/sun/nio/ch/DirectBuffer.java
index 985bf66..577ed7b 100644
--- a/jdk/src/share/classes/sun/nio/ch/DirectBuffer.java
+++ b/jdk/src/share/classes/sun/nio/ch/DirectBuffer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,7 @@ public interface DirectBuffer {
 
     public long address();
 
-    public Object viewedBuffer();
+    public Object attachment();
 
     public Cleaner cleaner();
 
diff --git a/jdk/src/share/classes/sun/nio/ch/Util.java b/jdk/src/share/classes/sun/nio/ch/Util.java
index 514bb27..9aa7c16 100644
--- a/jdk/src/share/classes/sun/nio/ch/Util.java
+++ b/jdk/src/share/classes/sun/nio/ch/Util.java
@@ -373,7 +373,7 @@ class Util {
                              NoSuchMethodException    |
                              IllegalArgumentException |
                              ClassCastException x) {
-                        throw new InternalError();
+                        throw new InternalError(x);
                     }
                     return null;
                 }});
@@ -395,7 +395,7 @@ class Util {
         } catch (InstantiationException |
                  IllegalAccessException |
                  InvocationTargetException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
         return dbb;
     }
@@ -418,7 +418,7 @@ class Util {
                              NoSuchMethodException |
                              IllegalArgumentException |
                              ClassCastException x) {
-                        throw new InternalError();
+                        throw new InternalError(x);
                     }
                     return null;
                 }});
@@ -440,7 +440,7 @@ class Util {
         } catch (InstantiationException |
                  IllegalAccessException |
                  InvocationTargetException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
         return dbb;
     }
diff --git a/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java b/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java
index f1714ea..60d9896 100644
--- a/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java
+++ b/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java
@@ -179,7 +179,9 @@ public class AbstractCharsetProvider
 
                 public Charset next() {
                     String csn = i.next();
-                    return lookup(csn);
+                    synchronized (AbstractCharsetProvider.this) {
+                        return lookup(csn);
+                    }
                 }
 
                 public void remove() {
diff --git a/jdk/src/share/classes/sun/nio/cs/ext/GB18030.java b/jdk/src/share/classes/sun/nio/cs/ext/GB18030.java
index daffbe4..97be5c5 100644
--- a/jdk/src/share/classes/sun/nio/cs/ext/GB18030.java
+++ b/jdk/src/share/classes/sun/nio/cs/ext/GB18030.java
@@ -47,30 +47,6 @@ public class GB18030
         super("GB18030", ExtendedCharsets.aliasesFor("GB18030"));
     }
 
-    public short[] getDecoderIndex1() {
-        return decoderIndex1;
-    }
-
-    public String[] getDecoderIndex2() {
-        return decoderIndex2;
-    }
-
-    public short[] getSubDecoderIndex1() {
-        return index1;
-    }
-
-    public String[] getSubDecoderIndex2() {
-        return index2;
-    }
-
-    public short[] getEncoderIndex1() {
-        return encoderIndex1;
-    }
-
-    public String[] getEncoderIndex2() {
-        return encoderIndex2;
-    }
-
     public boolean contains(Charset cs) {
         return ((cs.name().equals("US-ASCII"))
                 || (cs.name().equals("GBK"))
diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM33722.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM33722.java
index b9063e5..407b1cc 100644
--- a/jdk/src/share/classes/sun/nio/cs/ext/IBM33722.java
+++ b/jdk/src/share/classes/sun/nio/cs/ext/IBM33722.java
@@ -62,47 +62,6 @@ public class IBM33722
         return new Encoder(this);
     }
 
-
-    /**
-     * These accessors are temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unncessary and should be removed
-     */
-
-    public String getDecoderSingleByteMappings() {
-        return Decoder.byteToCharTable;
-    }
-
-    public String getDecoderMappingTableG1() {
-        return Decoder.mappingTableG1;
-    }
-
-    public String getDecoderMappingTableG2() {
-        return Decoder.mappingTableG2;
-    }
-
-    public String getDecoderMappingTableG3() {
-        return Decoder.mappingTableG3;
-    }
-
-    public short[] getEncoderIndex1() {
-        return Encoder.index1;
-
-    }
-    public String getEncoderIndex2() {
-        return Encoder.index2;
-    }
-
-    public String getEncoderIndex2a() {
-        return Encoder.index2a;
-    }
-
-    public String getEncoderIndex2b() {
-        return Encoder.index2b;
-    }
-
     protected static class Decoder extends CharsetDecoder {
 
         private final int G0 = 0;
diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM964.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM964.java
index 4635f86..ab6eff0 100644
--- a/jdk/src/share/classes/sun/nio/cs/ext/IBM964.java
+++ b/jdk/src/share/classes/sun/nio/cs/ext/IBM964.java
@@ -62,54 +62,6 @@ public class IBM964
         return new Encoder(this);
     }
 
-
-    /**
-     * These accessors are temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unncessary and should be removed
-     */
-
-    public String getDecoderSingleByteMappings() {
-        return Decoder.byteToCharTable;
-    }
-
-    public String getDecoderMappingTableG1() {
-        return Decoder.mappingTableG1;
-    }
-
-    public String getDecoderMappingTableG2a2() {
-        return Decoder.mappingTableG2a2;
-    }
-
-    public String getDecoderMappingTableG2ac() {
-        return Decoder.mappingTableG2ac;
-    }
-
-    public String getDecoderMappingTableG2ad() {
-        return Decoder.mappingTableG2ad;
-    }
-
-    public short[] getEncoderIndex1() {
-        return Encoder.index1;
-
-    }
-    public String getEncoderIndex2() {
-        return Encoder.index2;
-
-    }
-    public String getEncoderIndex2a() {
-        return Encoder.index2a;
-    }
-
-    public String getEncoderIndex2b() {
-        return Encoder.index2b;
-    }
-
-    public String getEncoderIndex2c() {
-        return Encoder.index2c;
-    }
     protected static class Decoder extends CharsetDecoder {
         private final int SS2 =  0x8E;
         private final int SS3 =  0x8F;
diff --git a/jdk/src/share/classes/sun/nio/cs/ext/ISCII91.java b/jdk/src/share/classes/sun/nio/cs/ext/ISCII91.java
index 50c7663..3d360fd 100644
--- a/jdk/src/share/classes/sun/nio/cs/ext/ISCII91.java
+++ b/jdk/src/share/classes/sun/nio/cs/ext/ISCII91.java
@@ -331,18 +331,6 @@ public class ISCII91 extends Charset implements HistoricallyNamedCharset
         '\uffff'  // ff -- This position shall not be used
     }; //end of table definition
 
-    /**
-     * This accessor is temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unnecessary and should be removed
-     */
-
-    public static char[] getDirectMapTable() {
-        return directMapTable;
-    }
-
     private static final byte[] encoderMappingTable = {
     NO_CHAR,NO_CHAR, //0900 <reserved>
     (byte)161,NO_CHAR, //0901 -- DEVANAGARI SIGN CANDRABINDU = anunasika
@@ -474,20 +462,6 @@ public class ISCII91 extends Charset implements HistoricallyNamedCharset
     NO_CHAR,NO_CHAR  //097f -- reserved
     }; //end of table definition
 
-
-    /**
-     * This accessor is temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unnecessary and should be removed
-     */
-
-    public static byte[] getEncoderMappingTable() {
-        return encoderMappingTable;
-    }
-
-
     private static class Decoder extends CharsetDecoder {
 
         private static final char ZWNJ_CHAR = '\u200c';
diff --git a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Decoder.java b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Decoder.java
index 552ca60..ae70911 100644
--- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Decoder.java
+++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Decoder.java
@@ -1000,18 +1000,11 @@ public class JIS_X_0208_Decoder extends DoubleByteDecoder
         return REPLACE_CHAR;
     }
 
-    /**
-     * These accessors are temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unncessary and should be removed
-     */
-    public static short[] getIndex1() {
+    static short[] getIndex1() {
        return index1;
     }
 
-    public static String[] getIndex2() {
+    static String[] getIndex2() {
        return index2;
     }
 }
diff --git a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Encoder.java b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Encoder.java
index 1cfd1df..e4407a5 100644
--- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Encoder.java
+++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Encoder.java
@@ -65,19 +65,11 @@ public class JIS_X_0208_Encoder extends DoubleByteEncoder
         return -1;
     }
 
-    /**
-     * These accessors are temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unncessary and should be removed
-     */
-
-    public static short[] getIndex1() {
+    static short[] getIndex1() {
        return index1;
     }
 
-    public static String[] getIndex2() {
+    static String[] getIndex2() {
        return index2;
     }
 
diff --git a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Solaris_Decoder.java b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Solaris_Decoder.java
index 390d7e3..65a51c5 100644
--- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Solaris_Decoder.java
+++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Solaris_Decoder.java
@@ -201,19 +201,11 @@ public class JIS_X_0208_Solaris_Decoder extends DoubleByteDecoder
     }
 
 
-    /**
-     * These accessors are temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unncessary and should be removed
-     */
-
-    public static short[] getIndex1() {
+    static short[] getIndex1() {
        return index1;
     }
 
-    public static String[] getIndex2() {
+    static String[] getIndex2() {
        return index2;
     }
 }
diff --git a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Decoder.java b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Decoder.java
index 7434ac7..4838ffc 100644
--- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Decoder.java
+++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Decoder.java
@@ -42,21 +42,6 @@ public class JIS_X_0212_Decoder extends DoubleByteDecoder
               0x7E);
     }
 
-    /**
-     * These accessors are temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unncessary and should be removed
-     */
-
-    public static short[] getIndex1() {
-        return index1;
-    }
-    public static String[] getIndex2() {
-        return index2;
-    }
-
     private final static String innerIndex0=
         "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
         "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
diff --git a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Encoder.java b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Encoder.java
index 4551859..fd9c826 100644
--- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Encoder.java
+++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Encoder.java
@@ -58,20 +58,6 @@ public class JIS_X_0212_Encoder extends DoubleByteEncoder
         return -1;
     }
 
-    /**
-     * These accessors are temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unncessary and should be removed
-     */
-    public static short[] getIndex1() {
-        return index1;
-    }
-    public static String[] getIndex2() {
-        return index2;
-    }
-
     private final static String innerIndex0=
         "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
         "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
diff --git a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Decoder.java b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Decoder.java
index 0ffd4a5..21bf704 100644
--- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Decoder.java
+++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Decoder.java
@@ -41,21 +41,6 @@ public class JIS_X_0212_Solaris_Decoder extends DoubleByteDecoder
               0x7E);
     }
 
-    /**
-     * These accessors are temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unncessary and should be removed
-     */
-
-    public static short[] getIndex1() {
-        return index1;
-    }
-    public static String[] getIndex2() {
-        return index2;
-    }
-
     private final static String innerIndex0=
         "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
         "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
diff --git a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Encoder.java b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Encoder.java
index 26cb5d3..2bd596b 100644
--- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Encoder.java
+++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Encoder.java
@@ -48,21 +48,6 @@ public class JIS_X_0212_Solaris_Encoder extends DoubleByteEncoder
         return -1;
     }
 
-    /**
-     * These accessors are temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unncessary and should be removed
-     */
-
-    public static short[] getIndex1() {
-        return index1;
-    }
-    public static String[] getIndex2() {
-        return index2;
-    }
-
     private final static String innerIndex0=
         "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
         "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
diff --git a/jdk/src/share/classes/sun/reflect/AccessorGenerator.java b/jdk/src/share/classes/sun/reflect/AccessorGenerator.java
index c4c3337..e4bb291 100644
--- a/jdk/src/share/classes/sun/reflect/AccessorGenerator.java
+++ b/jdk/src/share/classes/sun/reflect/AccessorGenerator.java
@@ -382,7 +382,7 @@ class AccessorGenerator implements ClassFileConstants {
     /** Returns class name in "internal" form (i.e., '/' separators
         instead of '.') */
     protected static String getClassName
-        (Class c, boolean addPrefixAndSuffixForNonPrimitiveTypes)
+        (Class<?> c, boolean addPrefixAndSuffixForNonPrimitiveTypes)
     {
         if (c.isPrimitive()) {
             if (c == Boolean.TYPE) {
@@ -490,7 +490,7 @@ class AccessorGenerator implements ClassFileConstants {
         }
     }
 
-    protected short indexForPrimitiveType(Class type) {
+    protected short indexForPrimitiveType(Class<?> type) {
         if (type == Boolean.TYPE) {
             return booleanIdx;
         } else if (type == Byte.TYPE) {
@@ -511,7 +511,7 @@ class AccessorGenerator implements ClassFileConstants {
         throw new InternalError("Should have found primitive type");
     }
 
-    protected short ctorIndexForPrimitiveType(Class type) {
+    protected short ctorIndexForPrimitiveType(Class<?> type) {
         if (type == Boolean.TYPE) {
             return booleanCtorIdx;
         } else if (type == Byte.TYPE) {
@@ -534,7 +534,7 @@ class AccessorGenerator implements ClassFileConstants {
 
     /** Returns true for widening or identity conversions for primitive
         types only */
-    protected static boolean canWidenTo(Class type, Class otherType) {
+    protected static boolean canWidenTo(Class<?> type, Class<?> otherType) {
         if (!type.isPrimitive()) {
             return false;
         }
@@ -609,8 +609,8 @@ class AccessorGenerator implements ClassFileConstants {
         called and returned true. */
     protected static void emitWideningBytecodeForPrimitiveConversion
         (ClassFileAssembler cb,
-         Class fromType,
-         Class toType)
+         Class<?> fromType,
+         Class<?> toType)
     {
         // Note that widening conversions for integral types (i.e., "b2s",
         // "s2i") are no-ops since values on the Java stack are
@@ -650,7 +650,7 @@ class AccessorGenerator implements ClassFileConstants {
         // Otherwise, was identity or no-op conversion. Fall through.
     }
 
-    protected short unboxingMethodForPrimitiveType(Class primType) {
+    protected short unboxingMethodForPrimitiveType(Class<?> primType) {
         if (primType == Boolean.TYPE) {
             return booleanUnboxIdx;
         } else if (primType == Byte.TYPE) {
@@ -671,7 +671,7 @@ class AccessorGenerator implements ClassFileConstants {
         throw new InternalError("Illegal primitive type " + primType.getName());
     }
 
-    protected static final Class[] primitiveTypes = new Class[] {
+    protected static final Class<?>[] primitiveTypes = new Class<?>[] {
         Boolean.TYPE,
         Byte.TYPE,
         Character.TYPE,
@@ -683,11 +683,11 @@ class AccessorGenerator implements ClassFileConstants {
     };
 
     /** We don't consider "Void" to be a primitive type */
-    protected static boolean isPrimitive(Class c) {
+    protected static boolean isPrimitive(Class<?> c) {
         return (c.isPrimitive() && c != Void.TYPE);
     }
 
-    protected int typeSizeInStackSlots(Class c) {
+    protected int typeSizeInStackSlots(Class<?> c) {
         if (c == Void.TYPE) {
             return 0;
         }
diff --git a/jdk/src/share/classes/sun/reflect/BootstrapConstructorAccessorImpl.java b/jdk/src/share/classes/sun/reflect/BootstrapConstructorAccessorImpl.java
index 62bf886..a889f03 100644
--- a/jdk/src/share/classes/sun/reflect/BootstrapConstructorAccessorImpl.java
+++ b/jdk/src/share/classes/sun/reflect/BootstrapConstructorAccessorImpl.java
@@ -32,9 +32,9 @@ import java.lang.reflect.Constructor;
     bootstrapping. */
 
 class BootstrapConstructorAccessorImpl extends ConstructorAccessorImpl {
-    private Constructor constructor;
+    private Constructor<?> constructor;
 
-    BootstrapConstructorAccessorImpl(Constructor c) {
+    BootstrapConstructorAccessorImpl(Constructor<?> c) {
         this.constructor = c;
     }
 
diff --git a/jdk/src/share/classes/sun/reflect/ClassDefiner.java b/jdk/src/share/classes/sun/reflect/ClassDefiner.java
index 9ec4015..3d182b8 100644
--- a/jdk/src/share/classes/sun/reflect/ClassDefiner.java
+++ b/jdk/src/share/classes/sun/reflect/ClassDefiner.java
@@ -51,8 +51,8 @@ class ClassDefiner {
       than would otherwise be possible, decreasing run-time
       footprint. </P>
     */
-    static Class defineClass(String name, byte[] bytes, int off, int len,
-                             final ClassLoader parentClassLoader)
+    static Class<?> defineClass(String name, byte[] bytes, int off, int len,
+                                final ClassLoader parentClassLoader)
     {
         ClassLoader newLoader = AccessController.doPrivileged(
             new PrivilegedAction<ClassLoader>() {
diff --git a/jdk/src/share/classes/sun/reflect/ConstantPool.java b/jdk/src/share/classes/sun/reflect/ConstantPool.java
index 5df2344..1374bf2 100644
--- a/jdk/src/share/classes/sun/reflect/ConstantPool.java
+++ b/jdk/src/share/classes/sun/reflect/ConstantPool.java
@@ -34,8 +34,8 @@ import java.lang.reflect.*;
 public class ConstantPool {
   // Number of entries in this constant pool (= maximum valid constant pool index)
   public int      getSize()                      { return getSize0            (constantPoolOop);        }
-  public Class    getClassAt         (int index) { return getClassAt0         (constantPoolOop, index); }
-  public Class    getClassAtIfLoaded (int index) { return getClassAtIfLoaded0 (constantPoolOop, index); }
+  public Class<?> getClassAt         (int index) { return getClassAt0         (constantPoolOop, index); }
+  public Class<?> getClassAtIfLoaded (int index) { return getClassAtIfLoaded0 (constantPoolOop, index); }
   // Returns either a Method or Constructor.
   // Static initializers are returned as Method objects.
   public Member   getMethodAt        (int index) { return getMethodAt0        (constantPoolOop, index); }
@@ -64,8 +64,8 @@ public class ConstantPool {
   private Object constantPoolOop;
 
   private native int      getSize0            (Object constantPoolOop);
-  private native Class    getClassAt0         (Object constantPoolOop, int index);
-  private native Class    getClassAtIfLoaded0 (Object constantPoolOop, int index);
+  private native Class<?> getClassAt0         (Object constantPoolOop, int index);
+  private native Class<?> getClassAtIfLoaded0 (Object constantPoolOop, int index);
   private native Member   getMethodAt0        (Object constantPoolOop, int index);
   private native Member   getMethodAtIfLoaded0(Object constantPoolOop, int index);
   private native Field    getFieldAt0         (Object constantPoolOop, int index);
diff --git a/jdk/src/share/classes/sun/reflect/Label.java b/jdk/src/share/classes/sun/reflect/Label.java
index e4092d8..785172d 100644
--- a/jdk/src/share/classes/sun/reflect/Label.java
+++ b/jdk/src/share/classes/sun/reflect/Label.java
@@ -25,7 +25,6 @@
 
 package sun.reflect;
 
-import java.util.Iterator;
 import java.util.List;
 import java.util.ArrayList;
 
@@ -53,7 +52,7 @@ class Label {
         short patchBCI;
         int   stackDepth;
     }
-    private List/*<PatchInfo>*/ patches = new ArrayList();
+    private List<PatchInfo> patches = new ArrayList<>();
 
     public Label() {
     }
@@ -67,8 +66,7 @@ class Label {
     }
 
     public void bind() {
-        for (Iterator iter = patches.iterator(); iter.hasNext(); ) {
-            PatchInfo patch = (PatchInfo) iter.next();
+        for (PatchInfo patch : patches){
             short curBCI = patch.asm.getLength();
             short offset = (short) (curBCI - patch.instrBCI);
             patch.asm.emitShort(patch.patchBCI, offset);
diff --git a/jdk/src/share/classes/sun/reflect/MethodAccessorGenerator.java b/jdk/src/share/classes/sun/reflect/MethodAccessorGenerator.java
index f312f3e..a489f52 100644
--- a/jdk/src/share/classes/sun/reflect/MethodAccessorGenerator.java
+++ b/jdk/src/share/classes/sun/reflect/MethodAccessorGenerator.java
@@ -25,10 +25,8 @@
 
 package sun.reflect;
 
-import java.lang.reflect.*;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
-import sun.misc.Unsafe;
 
 /** Generator for sun.reflect.MethodAccessor and
     sun.reflect.ConstructorAccessor objects using bytecodes to
@@ -50,11 +48,11 @@ class MethodAccessorGenerator extends AccessorGenerator {
     private static volatile int constructorSymnum = 0;
     private static volatile int serializationConstructorSymnum = 0;
 
-    private Class   declaringClass;
-    private Class[] parameterTypes;
-    private Class   returnType;
-    private boolean isConstructor;
-    private boolean forSerialization;
+    private Class<?>   declaringClass;
+    private Class<?>[] parameterTypes;
+    private Class<?>   returnType;
+    private boolean    isConstructor;
+    private boolean    forSerialization;
 
     private short targetMethodRef;
     private short invokeIdx;
@@ -67,11 +65,11 @@ class MethodAccessorGenerator extends AccessorGenerator {
     }
 
     /** This routine is not thread-safe */
-    public MethodAccessor generateMethod(Class declaringClass,
-                                         String name,
-                                         Class[] parameterTypes,
-                                         Class   returnType,
-                                         Class[] checkedExceptions,
+    public MethodAccessor generateMethod(Class<?> declaringClass,
+                                         String   name,
+                                         Class<?>[] parameterTypes,
+                                         Class<?>   returnType,
+                                         Class<?>[] checkedExceptions,
                                          int modifiers)
     {
         return (MethodAccessor) generate(declaringClass,
@@ -86,9 +84,9 @@ class MethodAccessorGenerator extends AccessorGenerator {
     }
 
     /** This routine is not thread-safe */
-    public ConstructorAccessor generateConstructor(Class declaringClass,
-                                                   Class[] parameterTypes,
-                                                   Class[] checkedExceptions,
+    public ConstructorAccessor generateConstructor(Class<?> declaringClass,
+                                                   Class<?>[] parameterTypes,
+                                                   Class<?>[] checkedExceptions,
                                                    int modifiers)
     {
         return (ConstructorAccessor) generate(declaringClass,
@@ -104,11 +102,11 @@ class MethodAccessorGenerator extends AccessorGenerator {
 
     /** This routine is not thread-safe */
     public SerializationConstructorAccessorImpl
-    generateSerializationConstructor(Class declaringClass,
-                                     Class[] parameterTypes,
-                                     Class[] checkedExceptions,
+    generateSerializationConstructor(Class<?> declaringClass,
+                                     Class<?>[] parameterTypes,
+                                     Class<?>[] checkedExceptions,
                                      int modifiers,
-                                     Class targetConstructorClass)
+                                     Class<?> targetConstructorClass)
     {
         return (SerializationConstructorAccessorImpl)
             generate(declaringClass,
@@ -123,15 +121,15 @@ class MethodAccessorGenerator extends AccessorGenerator {
     }
 
     /** This routine is not thread-safe */
-    private MagicAccessorImpl generate(final Class declaringClass,
+    private MagicAccessorImpl generate(final Class<?> declaringClass,
                                        String name,
-                                       Class[] parameterTypes,
-                                       Class   returnType,
-                                       Class[] checkedExceptions,
+                                       Class<?>[] parameterTypes,
+                                       Class<?>   returnType,
+                                       Class<?>[] checkedExceptions,
                                        int modifiers,
                                        boolean isConstructor,
                                        boolean forSerialization,
-                                       Class serializationTargetClass)
+                                       Class<?> serializationTargetClass)
     {
         ByteVector vec = ByteVectorFactory.create();
         asm = new ClassFileAssembler(vec);
@@ -340,7 +338,7 @@ class MethodAccessorGenerator extends AccessorGenerator {
         // Output class information for non-primitive parameter types
         nonPrimitiveParametersBaseIdx = add(asm.cpi(), S2);
         for (int i = 0; i < parameterTypes.length; i++) {
-            Class c = parameterTypes[i];
+            Class<?> c = parameterTypes[i];
             if (!isPrimitive(c)) {
                 asm.emitConstantPoolUTF8(getClassName(c, false));
                 asm.emitConstantPoolClass(asm.cpi());
@@ -403,12 +401,8 @@ class MethodAccessorGenerator extends AccessorGenerator {
                                  0,
                                  bytes.length,
                                  declaringClass.getClassLoader()).newInstance();
-                        } catch (InstantiationException e) {
-                            throw (InternalError)
-                                new InternalError().initCause(e);
-                        } catch (IllegalAccessException e) {
-                            throw (InternalError)
-                                new InternalError().initCause(e);
+                        } catch (InstantiationException | IllegalAccessException e) {
+                            throw new InternalError(e);
                         }
                     }
                 });
@@ -530,7 +524,7 @@ class MethodAccessorGenerator extends AccessorGenerator {
         byte count = 1; // both invokeinterface opcode's "count" as well as
         // num args of other invoke bytecodes
         for (int i = 0; i < parameterTypes.length; i++) {
-            Class paramType = parameterTypes[i];
+            Class<?> paramType = parameterTypes[i];
             count += (byte) typeSizeInStackSlots(paramType);
             if (nextParamLabel != null) {
                 nextParamLabel.bind();
@@ -577,7 +571,7 @@ class MethodAccessorGenerator extends AccessorGenerator {
                 nextParamLabel = new Label();
 
                 for (int j = 0; j < primitiveTypes.length; j++) {
-                    Class c = primitiveTypes[j];
+                    Class<?> c = primitiveTypes[j];
                     if (canWidenTo(c, paramType)) {
                         if (l != null) {
                             l.bind();
diff --git a/jdk/src/share/classes/sun/reflect/NativeConstructorAccessorImpl.java b/jdk/src/share/classes/sun/reflect/NativeConstructorAccessorImpl.java
index 91d3d6d..85d3a03 100644
--- a/jdk/src/share/classes/sun/reflect/NativeConstructorAccessorImpl.java
+++ b/jdk/src/share/classes/sun/reflect/NativeConstructorAccessorImpl.java
@@ -31,11 +31,11 @@ import java.lang.reflect.*;
     afterward, switches to bytecode-based implementation */
 
 class NativeConstructorAccessorImpl extends ConstructorAccessorImpl {
-    private Constructor c;
+    private Constructor<?> c;
     private DelegatingConstructorAccessorImpl parent;
     private int numInvocations;
 
-    NativeConstructorAccessorImpl(Constructor c) {
+    NativeConstructorAccessorImpl(Constructor<?> c) {
         this.c = c;
     }
 
@@ -61,7 +61,7 @@ class NativeConstructorAccessorImpl extends ConstructorAccessorImpl {
         this.parent = parent;
     }
 
-    private static native Object newInstance0(Constructor c, Object[] args)
+    private static native Object newInstance0(Constructor<?> c, Object[] args)
         throws InstantiationException,
                IllegalArgumentException,
                InvocationTargetException;
diff --git a/jdk/src/share/classes/sun/reflect/Reflection.java b/jdk/src/share/classes/sun/reflect/Reflection.java
index 64953ca..12bdd6a 100644
--- a/jdk/src/share/classes/sun/reflect/Reflection.java
+++ b/jdk/src/share/classes/sun/reflect/Reflection.java
@@ -26,7 +26,6 @@
 package sun.reflect;
 
 import java.lang.reflect.*;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -39,17 +38,17 @@ public class Reflection {
         view, where they are sensitive or they may contain VM-internal objects.
         These Maps are updated very rarely. Rather than synchronize on
         each access, we use copy-on-write */
-    private static volatile Map<Class,String[]> fieldFilterMap;
-    private static volatile Map<Class,String[]> methodFilterMap;
+    private static volatile Map<Class<?>,String[]> fieldFilterMap;
+    private static volatile Map<Class<?>,String[]> methodFilterMap;
 
     static {
-        Map<Class,String[]> map = new HashMap<Class,String[]>();
+        Map<Class<?>,String[]> map = new HashMap<Class<?>,String[]>();
         map.put(Reflection.class,
             new String[] {"fieldFilterMap", "methodFilterMap"});
         map.put(System.class, new String[] {"security"});
         fieldFilterMap = map;
 
-        methodFilterMap = new HashMap<Class,String[]>();
+        methodFilterMap = new HashMap<>();
     }
 
     /** Returns the class of the method <code>realFramesToSkip</code>
@@ -61,7 +60,7 @@ public class Reflection {
         java.lang.reflect.Method.invoke() and its implementation are
         completely ignored and do not count toward the number of "real"
         frames skipped. */
-    public static native Class getCallerClass(int realFramesToSkip);
+    public static native Class<?> getCallerClass(int realFramesToSkip);
 
     /** Retrieves the access flags written to the class file. For
         inner classes these flags may differ from those returned by
@@ -71,18 +70,18 @@ public class Reflection {
         to compatibility reasons; see 4471811. Only the values of the
         low 13 bits (i.e., a mask of 0x1FFF) are guaranteed to be
         valid. */
-    private static native int getClassAccessFlags(Class c);
+    private static native int getClassAccessFlags(Class<?> c);
 
     /** A quick "fast-path" check to try to avoid getCallerClass()
         calls. */
-    public static boolean quickCheckMemberAccess(Class memberClass,
+    public static boolean quickCheckMemberAccess(Class<?> memberClass,
                                                  int modifiers)
     {
         return Modifier.isPublic(getClassAccessFlags(memberClass) & modifiers);
     }
 
-    public static void ensureMemberAccess(Class currentClass,
-                                          Class memberClass,
+    public static void ensureMemberAccess(Class<?> currentClass,
+                                          Class<?> memberClass,
                                           Object target,
                                           int modifiers)
         throws IllegalAccessException
@@ -101,13 +100,13 @@ public class Reflection {
         }
     }
 
-    public static boolean verifyMemberAccess(Class currentClass,
+    public static boolean verifyMemberAccess(Class<?> currentClass,
                                              // Declaring class of field
                                              // or method
-                                             Class  memberClass,
+                                             Class<?> memberClass,
                                              // May be NULL in case of statics
-                                             Object target,
-                                             int    modifiers)
+                                             Object   target,
+                                             int      modifiers)
     {
         // Verify that currentClass can access a field, method, or
         // constructor of memberClass, where that member's access bits are
@@ -162,7 +161,7 @@ public class Reflection {
 
         if (Modifier.isProtected(modifiers)) {
             // Additional test for protected members: JLS 6.6.2
-            Class targetClass = (target == null ? memberClass : target.getClass());
+            Class<?> targetClass = (target == null ? memberClass : target.getClass());
             if (targetClass != currentClass) {
                 if (!gotIsSameClassPackage) {
                     isSameClassPackage = isSameClassPackage(currentClass, memberClass);
@@ -179,7 +178,7 @@ public class Reflection {
         return true;
     }
 
-    private static boolean isSameClassPackage(Class c1, Class c2) {
+    private static boolean isSameClassPackage(Class<?> c1, Class<?> c2) {
         return isSameClassPackage(c1.getClassLoader(), c1.getName(),
                                   c2.getClassLoader(), c2.getName());
     }
@@ -234,8 +233,8 @@ public class Reflection {
         }
     }
 
-    static boolean isSubclassOf(Class queryClass,
-                                Class ofClass)
+    static boolean isSubclassOf(Class<?> queryClass,
+                                Class<?> ofClass)
     {
         while (queryClass != null) {
             if (queryClass == ofClass) {
@@ -247,31 +246,31 @@ public class Reflection {
     }
 
     // fieldNames must contain only interned Strings
-    public static synchronized void registerFieldsToFilter(Class containingClass,
+    public static synchronized void registerFieldsToFilter(Class<?> containingClass,
                                               String ... fieldNames) {
         fieldFilterMap =
             registerFilter(fieldFilterMap, containingClass, fieldNames);
     }
 
     // methodNames must contain only interned Strings
-    public static synchronized void registerMethodsToFilter(Class containingClass,
+    public static synchronized void registerMethodsToFilter(Class<?> containingClass,
                                               String ... methodNames) {
         methodFilterMap =
             registerFilter(methodFilterMap, containingClass, methodNames);
     }
 
-    private static Map<Class,String[]> registerFilter(Map<Class,String[]> map,
-            Class containingClass, String ... names) {
+    private static Map<Class<?>,String[]> registerFilter(Map<Class<?>,String[]> map,
+            Class<?> containingClass, String ... names) {
         if (map.get(containingClass) != null) {
             throw new IllegalArgumentException
                             ("Filter already registered: " + containingClass);
         }
-        map = new HashMap<Class,String[]>(map);
+        map = new HashMap<Class<?>,String[]>(map);
         map.put(containingClass, names);
         return map;
     }
 
-    public static Field[] filterFields(Class containingClass,
+    public static Field[] filterFields(Class<?> containingClass,
                                        Field[] fields) {
         if (fieldFilterMap == null) {
             // Bootstrapping
@@ -280,7 +279,7 @@ public class Reflection {
         return (Field[])filter(fields, fieldFilterMap.get(containingClass));
     }
 
-    public static Method[] filterMethods(Class containingClass, Method[] methods) {
+    public static Method[] filterMethods(Class<?> containingClass, Method[] methods) {
         if (methodFilterMap == null) {
             // Bootstrapping
             return methods;
diff --git a/jdk/src/share/classes/sun/reflect/ReflectionFactory.java b/jdk/src/share/classes/sun/reflect/ReflectionFactory.java
index 7a9a03a..baa2263 100644
--- a/jdk/src/share/classes/sun/reflect/ReflectionFactory.java
+++ b/jdk/src/share/classes/sun/reflect/ReflectionFactory.java
@@ -165,7 +165,7 @@ public class ReflectionFactory {
         }
     }
 
-    public ConstructorAccessor newConstructorAccessor(Constructor c) {
+    public ConstructorAccessor newConstructorAccessor(Constructor<?> c) {
         checkInitted();
 
         Class<?> declaringClass = c.getDeclaringClass();
@@ -254,14 +254,14 @@ public class ReflectionFactory {
 
     /** Creates a new java.lang.reflect.Constructor. Access checks as
         per java.lang.reflect.AccessibleObject are not overridden. */
-    public Constructor newConstructor(Class<?> declaringClass,
-                                      Class<?>[] parameterTypes,
-                                      Class<?>[] checkedExceptions,
-                                      int modifiers,
-                                      int slot,
-                                      String signature,
-                                      byte[] annotations,
-                                      byte[] parameterAnnotations)
+    public Constructor<?> newConstructor(Class<?> declaringClass,
+                                         Class<?>[] parameterTypes,
+                                         Class<?>[] checkedExceptions,
+                                         int modifiers,
+                                         int slot,
+                                         String signature,
+                                         byte[] annotations,
+                                         byte[] parameterAnnotations)
     {
         return langReflectAccess().newConstructor(declaringClass,
                                                   parameterTypes,
@@ -292,13 +292,13 @@ public class ReflectionFactory {
 
     /** Gets the ConstructorAccessor object for a
         java.lang.reflect.Constructor */
-    public ConstructorAccessor getConstructorAccessor(Constructor c) {
+    public ConstructorAccessor getConstructorAccessor(Constructor<?> c) {
         return langReflectAccess().getConstructorAccessor(c);
     }
 
     /** Sets the ConstructorAccessor object for a
         java.lang.reflect.Constructor */
-    public void setConstructorAccessor(Constructor c,
+    public void setConstructorAccessor(Constructor<?> c,
                                        ConstructorAccessor accessor)
     {
         langReflectAccess().setConstructorAccessor(c, accessor);
@@ -331,8 +331,8 @@ public class ReflectionFactory {
     //
     //
 
-    public Constructor newConstructorForSerialization
-        (Class<?> classToInstantiate, Constructor constructorToCall)
+    public Constructor<?> newConstructorForSerialization
+        (Class<?> classToInstantiate, Constructor<?> constructorToCall)
     {
         // Fast path
         if (constructorToCall.getDeclaringClass() == classToInstantiate) {
@@ -345,18 +345,18 @@ public class ReflectionFactory {
                                              constructorToCall.getExceptionTypes(),
                                              constructorToCall.getModifiers(),
                                              constructorToCall.getDeclaringClass());
-        Constructor c = newConstructor(constructorToCall.getDeclaringClass(),
-                                       constructorToCall.getParameterTypes(),
-                                       constructorToCall.getExceptionTypes(),
-                                       constructorToCall.getModifiers(),
-                                       langReflectAccess().
-                                       getConstructorSlot(constructorToCall),
-                                       langReflectAccess().
-                                       getConstructorSignature(constructorToCall),
-                                       langReflectAccess().
-                                       getConstructorAnnotations(constructorToCall),
-                                       langReflectAccess().
-                                       getConstructorParameterAnnotations(constructorToCall));
+        Constructor<?> c = newConstructor(constructorToCall.getDeclaringClass(),
+                                          constructorToCall.getParameterTypes(),
+                                          constructorToCall.getExceptionTypes(),
+                                          constructorToCall.getModifiers(),
+                                          langReflectAccess().
+                                          getConstructorSlot(constructorToCall),
+                                          langReflectAccess().
+                                          getConstructorSignature(constructorToCall),
+                                          langReflectAccess().
+                                          getConstructorAnnotations(constructorToCall),
+                                          langReflectAccess().
+                                          getConstructorParameterAnnotations(constructorToCall));
         setConstructorAccessor(c, acc);
         return c;
     }
@@ -404,9 +404,7 @@ public class ReflectionFactory {
                         try {
                             inflationThreshold = Integer.parseInt(val);
                         } catch (NumberFormatException e) {
-                            throw (RuntimeException)
-                                new RuntimeException("Unable to parse property sun.reflect.inflationThreshold").
-                                    initCause(e);
+                            throw new RuntimeException("Unable to parse property sun.reflect.inflationThreshold", e);
                         }
                     }
 
diff --git a/jdk/src/share/classes/sun/reflect/UTF8.java b/jdk/src/share/classes/sun/reflect/UTF8.java
index 22f6c77..fa791eb 100644
--- a/jdk/src/share/classes/sun/reflect/UTF8.java
+++ b/jdk/src/share/classes/sun/reflect/UTF8.java
@@ -52,7 +52,7 @@ class UTF8 {
             }
         } catch (ArrayIndexOutOfBoundsException e) {
             throw new InternalError
-                ("Bug in sun.reflect bootstrap UTF-8 encoder");
+                ("Bug in sun.reflect bootstrap UTF-8 encoder", e);
         }
         return res;
     }
diff --git a/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorFactory.java b/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorFactory.java
index 0da2480..b40dc08 100644
--- a/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorFactory.java
+++ b/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorFactory.java
@@ -30,7 +30,7 @@ import java.lang.reflect.Modifier;
 
 class UnsafeFieldAccessorFactory {
     static FieldAccessor newFieldAccessor(Field field, boolean override) {
-        Class type = field.getType();
+        Class<?> type = field.getType();
         boolean isStatic = Modifier.isStatic(field.getModifiers());
         boolean isFinal = Modifier.isFinal(field.getModifiers());
         boolean isVolatile = Modifier.isVolatile(field.getModifiers());
diff --git a/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java b/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java
index f8d474c..54c0d6d 100644
--- a/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java
+++ b/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java
@@ -40,12 +40,15 @@ abstract class UnsafeFieldAccessorImpl extends FieldAccessorImpl {
     static final Unsafe unsafe = Unsafe.getUnsafe();
 
     protected final Field   field;
-    protected final int     fieldOffset;
+    protected final long    fieldOffset;
     protected final boolean isFinal;
 
     UnsafeFieldAccessorImpl(Field field) {
         this.field = field;
-        fieldOffset = unsafe.fieldOffset(field);
+        if (Modifier.isStatic(field.getModifiers()))
+            fieldOffset = unsafe.staticFieldOffset(field);
+        else
+            fieldOffset = unsafe.objectFieldOffset(field);
         isFinal = Modifier.isFinal(field.getModifiers());
     }
 
diff --git a/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java b/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java
index 6bfe8b3..d3cff57 100644
--- a/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java
+++ b/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -40,6 +40,7 @@ import java.security.PrivilegedAction;
  * @since   1.5
  */
 class AnnotationInvocationHandler implements InvocationHandler, Serializable {
+    private static final long serialVersionUID = 6182022883658399397L;
     private final Class<? extends Annotation> type;
     private final Map<String, Object> memberValues;
 
diff --git a/jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java b/jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java
index d42bb90..f8a36de 100644
--- a/jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java
+++ b/jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java
@@ -187,6 +187,7 @@ public class AnnotationParser {
      * TypeNotPresentException if a referenced annotation type is not
      * available at runtime
      */
+    @SuppressWarnings("unchecked")
     private static Annotation parseAnnotation(ByteBuffer buf,
                                               ConstantPool constPool,
                                               Class<?> container,
@@ -200,7 +201,7 @@ public class AnnotationParser {
                 annotationClass = (Class<? extends Annotation>)parseSig(sig, container);
             } catch (IllegalArgumentException ex) {
                 // support obsolete early jsr175 format class files
-                annotationClass = constPool.getClassAt(typeIndex);
+                annotationClass = (Class<? extends Annotation>)constPool.getClassAt(typeIndex);
             }
         } catch (NoClassDefFoundError e) {
             if (exceptionOnMissingAnnotationClass)
@@ -256,7 +257,7 @@ public class AnnotationParser {
         Class<? extends Annotation> type, Map<String, Object> memberValues)
     {
         return (Annotation) Proxy.newProxyInstance(
-            type.getClassLoader(), new Class[] { type },
+            type.getClassLoader(), new Class<?>[] { type },
             new AnnotationInvocationHandler(type, memberValues));
     }
 
@@ -287,6 +288,7 @@ public class AnnotationParser {
      * The member must be of the indicated type. If it is not, this
      * method returns an AnnotationTypeMismatchExceptionProxy.
      */
+    @SuppressWarnings("unchecked")
     public static Object parseMemberValue(Class<?> memberType,
                                           ByteBuffer buf,
                                           ConstantPool constPool,
@@ -411,6 +413,7 @@ public class AnnotationParser {
      *           u2   const_name_index;
      *       } enum_const_value;
      */
+    @SuppressWarnings({"rawtypes", "unchecked"})
     private static Object parseEnumValue(Class<? extends Enum> enumType, ByteBuffer buf,
                                          ConstantPool constPool,
                                          Class<?> container) {
@@ -433,7 +436,7 @@ public class AnnotationParser {
             return  Enum.valueOf(enumType, constName);
         } catch(IllegalArgumentException e) {
             return new EnumConstantNotPresentExceptionProxy(
-                (Class<? extends Enum>)enumType, constName);
+                (Class<? extends Enum<?>>)enumType, constName);
         }
     }
 
@@ -451,6 +454,7 @@ public class AnnotationParser {
      * If the array values do not match arrayType, an
      * AnnotationTypeMismatchExceptionProxy will be returned.
      */
+    @SuppressWarnings("unchecked")
     private static Object parseArray(Class<?> arrayType,
                                      ByteBuffer buf,
                                      ConstantPool constPool,
@@ -479,7 +483,7 @@ public class AnnotationParser {
         } else if (componentType == Class.class) {
             return parseClassArray(length, buf, constPool, container);
         } else if (componentType.isEnum()) {
-            return parseEnumArray(length, (Class<? extends Enum>)componentType, buf,
+            return parseEnumArray(length, (Class<? extends Enum<?>>)componentType, buf,
                                   constPool, container);
         } else {
             assert componentType.isAnnotation();
@@ -679,7 +683,7 @@ public class AnnotationParser {
         return typeMismatch ? exceptionProxy(tag) : result;
     }
 
-    private static Object parseEnumArray(int length, Class<? extends Enum> enumType,
+    private static Object parseEnumArray(int length, Class<? extends Enum<?>> enumType,
                                          ByteBuffer buf,
                                          ConstantPool constPool,
                                          Class<?> container) {
diff --git a/jdk/src/share/classes/sun/reflect/annotation/AnnotationTypeMismatchExceptionProxy.java b/jdk/src/share/classes/sun/reflect/annotation/AnnotationTypeMismatchExceptionProxy.java
index 9c60803..c69fe48 100644
--- a/jdk/src/share/classes/sun/reflect/annotation/AnnotationTypeMismatchExceptionProxy.java
+++ b/jdk/src/share/classes/sun/reflect/annotation/AnnotationTypeMismatchExceptionProxy.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,6 +34,7 @@ import java.lang.reflect.Method;
  * @since   1.5
  */
 class AnnotationTypeMismatchExceptionProxy extends ExceptionProxy {
+    private static final long serialVersionUID = 7844069490309503934L;
     private Method member;
     private String foundType;
 
diff --git a/jdk/src/share/classes/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java b/jdk/src/share/classes/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java
index 34666e1..b229c00 100644
--- a/jdk/src/share/classes/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java
+++ b/jdk/src/share/classes/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,6 @@
  */
 
 package sun.reflect.annotation;
-import java.lang.annotation.*;
 
 /**
  * ExceptionProxy for EnumConstantNotPresentException.
@@ -33,10 +32,11 @@ import java.lang.annotation.*;
  * @since   1.5
  */
 public class EnumConstantNotPresentExceptionProxy extends ExceptionProxy {
-    Class<? extends Enum> enumType;
+    private static final long serialVersionUID = -604662101303187330L;
+    Class<? extends Enum<?>> enumType;
     String constName;
 
-    public EnumConstantNotPresentExceptionProxy(Class<? extends Enum> enumType,
+    public EnumConstantNotPresentExceptionProxy(Class<? extends Enum<?>> enumType,
                                                 String constName) {
         this.enumType = enumType;
         this.constName = constName;
diff --git a/jdk/src/share/classes/sun/reflect/annotation/TypeNotPresentExceptionProxy.java b/jdk/src/share/classes/sun/reflect/annotation/TypeNotPresentExceptionProxy.java
index de3a92f..76cba1d 100644
--- a/jdk/src/share/classes/sun/reflect/annotation/TypeNotPresentExceptionProxy.java
+++ b/jdk/src/share/classes/sun/reflect/annotation/TypeNotPresentExceptionProxy.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,7 @@ import java.lang.annotation.*;
  * @since   1.5
  */
 public class TypeNotPresentExceptionProxy extends ExceptionProxy {
+    private static final long serialVersionUID = 5565925172427947573L;
     String typeName;
     Throwable cause;
 
diff --git a/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java b/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java
index 62ed0d7..16a7f0a 100644
--- a/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java
+++ b/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,17 +25,15 @@
 
 package sun.reflect.generics.parser;
 
-
 import java.lang.reflect.GenericSignatureFormatError;
 import java.util.*;
 import sun.reflect.generics.tree.*;
 
-
 /**
  * Parser for type signatures, as defined in the Java Virtual
-// Machine Specification (JVMS) chapter 4.
+ * Machine Specification (JVMS) chapter 4.
  * Converts the signatures into an abstract syntax tree (AST) representation.
-// See the package sun.reflect.generics.tree for details of the AST.
+ * See the package sun.reflect.generics.tree for details of the AST.
  */
 public class SignatureParser {
     // The input is conceptually a character stream (though currently it's
@@ -58,8 +56,8 @@ public class SignatureParser {
     // if (current != x {error("expected an x");
     //
     // where x is some character constant.
-    // The assertion inidcates, that, as currently written,
-    // the code should nver reach this point unless the input is an
+    // The assertion indicates, that, as currently written,
+    // the code should never reach this point unless the input is an
     // x. On the other hand, the test is there to check the legality
     // of the input wrt to a given production. It may be that at a later
     // time the code might be called directly, and if the input is
@@ -68,7 +66,7 @@ public class SignatureParser {
 
     private char[] input; // the input signature
     private int index = 0; // index into the input
-// used to mark end of input
+    // used to mark end of input
     private static final char EOI = ':';
     private static final boolean DEBUG = false;
 
@@ -104,6 +102,11 @@ public class SignatureParser {
         index++;
     }
 
+    // For debugging, prints current character to the end of the input.
+    private String remainder() {
+        return new String(input, index, input.length-index);
+    }
+
     // Match c against a "set" of characters
     private boolean matches(char c, char... set) {
         for (char e : set) {
@@ -117,8 +120,17 @@ public class SignatureParser {
     // Currently throws a GenericSignatureFormatError.
 
     private Error error(String errorMsg) {
-        if (DEBUG) System.out.println("Parse error:" + errorMsg);
-        return new GenericSignatureFormatError();
+        return new GenericSignatureFormatError("Signature Parse error: " + errorMsg +
+                                               "\n\tRemaining input: " + remainder());
+    }
+
+    /**
+     * Verify the parse has made forward progress; throw an exception
+     * if no progress.
+     */
+    private void progress(int startingPosition) {
+        if (index <= startingPosition)
+            throw error("Failure to make progress!");
     }
 
     /**
@@ -163,6 +175,7 @@ public class SignatureParser {
     /**
      * Parses a type signature
      * and produces an abstract syntax tree representing it.
+     *
      * @param s a string representing the input type signature
      * @return An abstract syntax tree for a type signature
      * corresponding to the input string
@@ -183,38 +196,58 @@ public class SignatureParser {
     // and when it completes parsing, it leaves the input at the first
     // character after the input parses.
 
-    // parse a class signature based on the implicit input.
+    /*
+     * Note on grammar conventions: a trailing "*" matches zero or
+     * more occurrences, a trailing "+" matches one or more occurrences,
+     * "_opt" indicates an optional component.
+     */
+
+    /**
+     * ClassSignature:
+     *     FormalTypeParameters_opt SuperclassSignature SuperinterfaceSignature*
+     */
     private ClassSignature parseClassSignature() {
+        // parse a class signature based on the implicit input.
         assert(index == 0);
         return ClassSignature.make(parseZeroOrMoreFormalTypeParameters(),
-                                   parseClassTypeSignature(),
+                                   parseClassTypeSignature(), // Only rule for SuperclassSignature
                                    parseSuperInterfaces());
     }
 
     private FormalTypeParameter[] parseZeroOrMoreFormalTypeParameters(){
-        if (current() == '<') { return parseFormalTypeParameters();}
-        else {return new FormalTypeParameter[0];}
+        if (current() == '<') {
+            return parseFormalTypeParameters();
+        } else {
+            return new FormalTypeParameter[0];
+        }
     }
 
-
+    /**
+     * FormalTypeParameters:
+     *     "<" FormalTypeParameter+ ">"
+     */
     private FormalTypeParameter[] parseFormalTypeParameters(){
-        Collection<FormalTypeParameter> ftps =
-            new ArrayList<FormalTypeParameter>(3);
+        List<FormalTypeParameter> ftps =  new ArrayList<>(3);
         assert(current() == '<'); // should not have been called at all
-        if (current() != '<') { throw error("expected <");}
+        if (current() != '<') { throw error("expected '<'");}
         advance();
         ftps.add(parseFormalTypeParameter());
         while (current() != '>') {
+            int startingPosition = index;
             ftps.add(parseFormalTypeParameter());
+            progress(startingPosition);
         }
         advance();
-        FormalTypeParameter[] ftpa = new FormalTypeParameter[ftps.size()];
-        return ftps.toArray(ftpa);
+        return ftps.toArray(new FormalTypeParameter[ftps.size()]);
     }
 
+    /**
+     * FormalTypeParameter:
+     *     Identifier ClassBound InterfaceBound*
+     */
     private FormalTypeParameter parseFormalTypeParameter(){
         String id = parseIdentifier();
-        FieldTypeSignature[] bs = parseZeroOrMoreBounds();
+        FieldTypeSignature[] bs = parseBounds();
         return FormalTypeParameter.make(id, bs);
     }
 
@@ -229,7 +262,8 @@ public class SignatureParser {
             case '[':
             case ':':
             case '>':
-            case '<': return result.toString();
+            case '<':
+                return result.toString();
             default:{
                 result.append(c);
                 advance();
@@ -239,26 +273,42 @@ public class SignatureParser {
         }
         return result.toString();
     }
-
+    /**
+     * FieldTypeSignature:
+     *     ClassTypeSignature
+     *     ArrayTypeSignature
+     *     TypeVariableSignature
+     */
     private FieldTypeSignature parseFieldTypeSignature() {
+        return parseFieldTypeSignature(true);
+    }
+
+    private FieldTypeSignature parseFieldTypeSignature(boolean allowArrays) {
         switch(current()) {
         case 'L':
            return parseClassTypeSignature();
         case 'T':
             return parseTypeVariableSignature();
         case '[':
-            return parseArrayTypeSignature();
+            if (allowArrays)
+                return parseArrayTypeSignature();
+            else
+                throw error("Array signature not allowed here.");
         default: throw error("Expected Field Type Signature");
         }
     }
 
+    /**
+     * ClassTypeSignature:
+     *     "L" PackageSpecifier_opt SimpleClassTypeSignature ClassTypeSignatureSuffix* ";"
+     */
     private ClassTypeSignature parseClassTypeSignature(){
         assert(current() == 'L');
         if (current() != 'L') { throw error("expected a class type");}
         advance();
-        List<SimpleClassTypeSignature> scts =
-            new ArrayList<SimpleClassTypeSignature>(5);
-        scts.add(parseSimpleClassTypeSignature(false));
+        List<SimpleClassTypeSignature> scts = new ArrayList<>(5);
+        scts.add(parsePackageNameAndSimpleClassTypeSignature());
+
         parseClassTypeSignatureSuffix(scts);
         if (current() != ';')
             throw error("expected ';' got '" + current() + "'");
@@ -267,25 +317,65 @@ public class SignatureParser {
         return ClassTypeSignature.make(scts);
     }
 
-    private SimpleClassTypeSignature parseSimpleClassTypeSignature(boolean dollar){
-            String id = parseIdentifier();
-            char c = current();
-            switch (c) {
-            case ';':
-            case '/':
-                return SimpleClassTypeSignature.make(id, dollar, new TypeArgument[0]) ;
-            case '<': {
-                return SimpleClassTypeSignature.make(id, dollar, parseTypeArguments());
-            }
-            default: {throw error("expected < or ; or /");}
+    /**
+     * PackageSpecifier:
+     *     Identifier "/" PackageSpecifier*
+     */
+    private SimpleClassTypeSignature parsePackageNameAndSimpleClassTypeSignature() {
+        // Parse both any optional leading PackageSpecifier as well as
+        // the following SimpleClassTypeSignature.
+
+        String id = parseIdentifier();
+
+        if (current() == '/') { // package name
+            StringBuilder idBuild = new StringBuilder(id);
+
+            while(current() == '/') {
+                advance();
+                idBuild.append(".");
+                idBuild.append(parseIdentifier());
             }
+            id = idBuild.toString();
+        }
+
+        switch (current()) {
+        case ';':
+            return SimpleClassTypeSignature.make(id, false, new TypeArgument[0]); // all done!
+        case '<':
+            if (DEBUG) System.out.println("\t remainder: " + remainder());
+            return SimpleClassTypeSignature.make(id, false, parseTypeArguments());
+        default:
+            throw error("expected '<' or ';' but got " + current());
+        }
     }
 
+    /**
+     * SimpleClassTypeSignature:
+     *     Identifier TypeArguments_opt
+     */
+    private SimpleClassTypeSignature parseSimpleClassTypeSignature(boolean dollar){
+        String id = parseIdentifier();
+        char c = current();
+
+        switch (c) {
+        case ';':
+        case '.':
+            return SimpleClassTypeSignature.make(id, dollar, new TypeArgument[0]) ;
+        case '<':
+            return SimpleClassTypeSignature.make(id, dollar, parseTypeArguments());
+        default:
+            throw error("expected '<' or ';' or '.', got '" + c + "'.");
+        }
+    }
+
+    /**
+     * ClassTypeSignatureSuffix:
+     *     "." SimpleClassTypeSignature
+     */
     private void parseClassTypeSignatureSuffix(List<SimpleClassTypeSignature> scts) {
-        while (current() == '/' || current() == '.') {
-            boolean dollar = (current() == '.');
+        while (current() == '.') {
             advance();
-            scts.add(parseSimpleClassTypeSignature(dollar));
+            scts.add(parseSimpleClassTypeSignature(true));
         }
     }
 
@@ -294,10 +384,14 @@ public class SignatureParser {
         else {return new TypeArgument[0];}
     }
 
+    /**
+     * TypeArguments:
+     *     "<" TypeArgument+ ">"
+     */
     private TypeArgument[] parseTypeArguments() {
-        Collection<TypeArgument> tas = new ArrayList<TypeArgument>(3);
+        List<TypeArgument> tas = new ArrayList<>(3);
         assert(current() == '<');
-        if (current() != '<') { throw error("expected <");}
+        if (current() != '<') { throw error("expected '<'");}
         advance();
         tas.add(parseTypeArgument());
         while (current() != '>') {
@@ -305,10 +399,14 @@ public class SignatureParser {
             tas.add(parseTypeArgument());
         }
         advance();
-        TypeArgument[] taa = new TypeArgument[tas.size()];
-        return tas.toArray(taa);
+        return tas.toArray(new TypeArgument[tas.size()]);
     }
 
+    /**
+     * TypeArgument:
+     *     WildcardIndicator_opt FieldTypeSignature
+     *     "*"
+     */
     private TypeArgument parseTypeArgument() {
         FieldTypeSignature[] ub, lb;
         ub = new FieldTypeSignature[1];
@@ -334,18 +432,20 @@ public class SignatureParser {
             ub[0] = SimpleClassTypeSignature.make("java.lang.Object", false, ta);
             return Wildcard.make(ub, lb);
         }
-        default: return parseFieldTypeSignature();
+        default:
+            return parseFieldTypeSignature();
         }
     }
 
-    // TypeVariableSignature -> T identifier
-
-    private TypeVariableSignature parseTypeVariableSignature(){
+    /**
+     * TypeVariableSignature:
+     *     "T" Identifier ";"
+     */
+    private TypeVariableSignature parseTypeVariableSignature() {
         assert(current() == 'T');
         if (current() != 'T') { throw error("expected a type variable usage");}
         advance();
-        TypeVariableSignature ts =
-            TypeVariableSignature.make(parseIdentifier());
+        TypeVariableSignature ts = TypeVariableSignature.make(parseIdentifier());
         if (current() != ';') {
             throw error("; expected in signature of type variable named" +
                   ts.getIdentifier());
@@ -354,16 +454,21 @@ public class SignatureParser {
         return ts;
     }
 
-        // ArrayTypeSignature -> [ TypeSignature
-
+    /**
+     * ArrayTypeSignature:
+     *     "[" TypeSignature
+     */
     private ArrayTypeSignature parseArrayTypeSignature() {
         if (current() != '[') {throw error("expected array type signature");}
         advance();
         return ArrayTypeSignature.make(parseTypeSignature());
     }
 
-    // TypeSignature -> BaseType | FieldTypeSignature
-
+    /**
+     * TypeSignature:
+     *     FieldTypeSignature
+     *     BaseType
+     */
     private TypeSignature parseTypeSignature() {
         switch (current()) {
         case 'B':
@@ -373,8 +478,11 @@ public class SignatureParser {
         case 'I':
         case 'J':
         case 'S':
-        case 'Z':return parseBaseType();
-        default: return parseFieldTypeSignature();
+        case 'Z':
+            return parseBaseType();
+
+        default:
+            return parseFieldTypeSignature();
         }
     }
 
@@ -408,12 +516,18 @@ public class SignatureParser {
             assert(false);
             throw error("expected primitive type");
         }
-    }
+        }
     }
 
-    private FieldTypeSignature[] parseZeroOrMoreBounds() {
-        Collection<FieldTypeSignature> fts =
-            new ArrayList<FieldTypeSignature>(3);
+    /**
+     * ClassBound:
+     *     ":" FieldTypeSignature_opt
+     *
+     * InterfaceBound:
+     *     ":" FieldTypeSignature
+     */
+    private FieldTypeSignature[] parseBounds() {
+        List<FieldTypeSignature> fts = new ArrayList<>(3);
 
         if (current() == ':') {
             advance();
@@ -430,24 +544,31 @@ public class SignatureParser {
                 advance();
                 fts.add(parseFieldTypeSignature());
             }
-        }
+        } else
+            error("Bound expected");
 
-        FieldTypeSignature[] fta = new FieldTypeSignature[fts.size()];
-        return fts.toArray(fta);
+        return fts.toArray(new FieldTypeSignature[fts.size()]);
     }
 
+    /**
+     * SuperclassSignature:
+     *     ClassTypeSignature
+     */
     private ClassTypeSignature[] parseSuperInterfaces() {
-        Collection<ClassTypeSignature> cts =
-            new ArrayList<ClassTypeSignature>(5);
+        List<ClassTypeSignature> cts = new ArrayList<>(5);
         while(current() == 'L') {
             cts.add(parseClassTypeSignature());
         }
-        ClassTypeSignature[] cta = new ClassTypeSignature[cts.size()];
-        return cts.toArray(cta);
+        return cts.toArray(new ClassTypeSignature[cts.size()]);
     }
 
-    // parse a method signature based on the implicit input.
+
+    /**
+     * MethodTypeSignature:
+     *     FormalTypeParameters_opt "(" TypeSignature* ")" ReturnType ThrowsSignature*
+     */
     private MethodTypeSignature parseMethodTypeSignature() {
+        // Parse a method signature based on the implicit input.
         FieldTypeSignature[] ets;
 
         assert(index == 0);
@@ -457,19 +578,19 @@ public class SignatureParser {
                                         parseZeroOrMoreThrowsSignatures());
     }
 
-    // (TypeSignature*)
+    // "(" TypeSignature* ")"
     private TypeSignature[] parseFormalParameters() {
-        if (current() != '(') {throw error("expected (");}
+        if (current() != '(') {throw error("expected '('");}
         advance();
         TypeSignature[] pts = parseZeroOrMoreTypeSignatures();
-        if (current() != ')') {throw error("expected )");}
+        if (current() != ')') {throw error("expected ')'");}
         advance();
         return pts;
     }
 
-        // TypeSignature*
+    // TypeSignature*
     private TypeSignature[] parseZeroOrMoreTypeSignatures() {
-        Collection<TypeSignature> ts = new ArrayList<TypeSignature>();
+        List<TypeSignature> ts = new ArrayList<>();
         boolean stop = false;
         while (!stop) {
             switch(current()) {
@@ -484,47 +605,46 @@ public class SignatureParser {
             case 'L':
             case 'T':
             case '[': {
-                    ts.add(parseTypeSignature());
-                    break;
-                }
+                ts.add(parseTypeSignature());
+                break;
+            }
             default: stop = true;
             }
         }
-        /*      while( matches(current(),
-                       'B', 'C', 'D', 'F', 'I', 'J', 'S', 'Z', 'L', 'T', '[')
-               ) {
-            ts.add(parseTypeSignature());
-            }*/
-        TypeSignature[] ta = new TypeSignature[ts.size()];
-        return ts.toArray(ta);
+        return ts.toArray(new TypeSignature[ts.size()]);
     }
 
-    // ReturnType -> V | TypeSignature
-
+    /**
+     * ReturnType:
+     *     TypeSignature
+     *     VoidDescriptor
+     */
     private ReturnType parseReturnType(){
-        if  (current() == 'V') {
+        if (current() == 'V') {
             advance();
             return VoidDescriptor.make();
-        } else return parseTypeSignature();
+        } else
+            return parseTypeSignature();
     }
 
     // ThrowSignature*
     private FieldTypeSignature[] parseZeroOrMoreThrowsSignatures(){
-        Collection<FieldTypeSignature> ets =
-            new ArrayList<FieldTypeSignature>(3);
+        List<FieldTypeSignature> ets = new ArrayList<>(3);
         while( current() == '^') {
             ets.add(parseThrowsSignature());
         }
-        FieldTypeSignature[] eta = new FieldTypeSignature[ets.size()];
-        return ets.toArray(eta);
+        return ets.toArray(new FieldTypeSignature[ets.size()]);
     }
 
-    // ThrowSignature -> ^ FieldTypeSignature
-
+    /**
+     * ThrowsSignature:
+     *     "^" ClassTypeSignature
+     *     "^" TypeVariableSignature
+     */
     private FieldTypeSignature parseThrowsSignature() {
         assert(current() == '^');
         if (current() != '^') { throw error("expected throws signature");}
         advance();
-        return parseFieldTypeSignature();
+        return parseFieldTypeSignature(false);
     }
  }
diff --git a/jdk/src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java b/jdk/src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java
index 6f0dc6d..5eab5e8 100644
--- a/jdk/src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java
+++ b/jdk/src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java
@@ -25,9 +25,11 @@
 
 package sun.reflect.generics.reflectiveObjects;
 
+import java.lang.annotation.Annotation;
 import java.lang.reflect.GenericDeclaration;
 import java.lang.reflect.Type;
 import java.lang.reflect.TypeVariable;
+import java.util.Objects;
 
 import sun.reflect.generics.factory.GenericsFactory;
 import sun.reflect.generics.tree.FieldTypeSignature;
@@ -157,7 +159,7 @@ public class TypeVariableImpl<D extends GenericDeclaration>
     @Override
     public boolean equals(Object o) {
         if (o instanceof TypeVariable) {
-            TypeVariable that = (TypeVariable) o;
+            TypeVariable<?> that = (TypeVariable<?>) o;
 
             GenericDeclaration thatDecl = that.getGenericDeclaration();
             String thatName = that.getName();
@@ -178,4 +180,27 @@ public class TypeVariableImpl<D extends GenericDeclaration>
     public int hashCode() {
         return genericDeclaration.hashCode() ^ name.hashCode();
     }
+
+    // Currently vacuous implementations of AnnotatedElement methods.
+    public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) {
+        Objects.requireNonNull(annotationClass);
+        return false;
+    }
+
+    public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {
+        Objects.requireNonNull(annotationClass);
+        return null;
+    }
+
+    public Annotation[] getAnnotations() {
+        // Since zero-length, don't need defensive clone
+        return EMPTY_ANNOTATION_ARRAY;
+    }
+
+    public Annotation[] getDeclaredAnnotations() {
+        // Since zero-length, don't need defensive clone
+        return EMPTY_ANNOTATION_ARRAY;
+    }
+
+    private static final Annotation[] EMPTY_ANNOTATION_ARRAY = new Annotation[0];
 }
diff --git a/jdk/src/share/classes/sun/reflect/generics/repository/GenericDeclRepository.java b/jdk/src/share/classes/sun/reflect/generics/repository/GenericDeclRepository.java
index 2a22803..2178a3c 100644
--- a/jdk/src/share/classes/sun/reflect/generics/repository/GenericDeclRepository.java
+++ b/jdk/src/share/classes/sun/reflect/generics/repository/GenericDeclRepository.java
@@ -69,7 +69,7 @@ public abstract class GenericDeclRepository<S extends Signature>
             // first, extract type parameter subtree(s) from AST
             FormalTypeParameter[] ftps = getTree().getFormalTypeParameters();
             // create array to store reified subtree(s)
-            TypeVariable[] tps = new TypeVariable[ftps.length];
+            TypeVariable<?>[] tps = new TypeVariable<?>[ftps.length];
             // reify all subtrees
             for (int i = 0; i < ftps.length; i++) {
                 Reifier r = getReifier(); // obtain visitor
diff --git a/jdk/src/share/classes/sun/reflect/generics/scope/AbstractScope.java b/jdk/src/share/classes/sun/reflect/generics/scope/AbstractScope.java
index 3eee4bd..e040eb2 100644
--- a/jdk/src/share/classes/sun/reflect/generics/scope/AbstractScope.java
+++ b/jdk/src/share/classes/sun/reflect/generics/scope/AbstractScope.java
@@ -83,8 +83,8 @@ public abstract class AbstractScope<D extends GenericDeclaration>
      * @return the requested type variable, if found
      */
     public TypeVariable<?> lookup(String name) {
-        TypeVariable[] tas = getRecvr().getTypeParameters();
-        for (TypeVariable/*<?>*/ tv : tas) {
+        TypeVariable<?>[] tas = getRecvr().getTypeParameters();
+        for (TypeVariable<?> tv : tas) {
             if (tv.getName().equals(name)) {return tv;}
         }
         return getEnclosingScope().lookup(name);
diff --git a/jdk/src/share/classes/sun/reflect/generics/scope/ConstructorScope.java b/jdk/src/share/classes/sun/reflect/generics/scope/ConstructorScope.java
index 2953037..0b0c8b1 100644
--- a/jdk/src/share/classes/sun/reflect/generics/scope/ConstructorScope.java
+++ b/jdk/src/share/classes/sun/reflect/generics/scope/ConstructorScope.java
@@ -32,10 +32,10 @@ import java.lang.reflect.Constructor;
  * This class represents the scope containing the type variables of
  * a constructor.
  */
-public class ConstructorScope extends AbstractScope<Constructor> {
+public class ConstructorScope extends AbstractScope<Constructor<?>> {
 
     // constructor is private to enforce use of factory method
-    private ConstructorScope(Constructor c){
+    private ConstructorScope(Constructor<?> c){
         super(c);
     }
 
@@ -61,7 +61,7 @@ public class ConstructorScope extends AbstractScope<Constructor> {
      * @param m - A Constructor whose scope we want to obtain
      * @return The type-variable scope for the constructor m
      */
-    public static ConstructorScope make(Constructor c) {
+    public static ConstructorScope make(Constructor<?> c) {
         return new ConstructorScope(c);
     }
 }
diff --git a/jdk/src/share/classes/sun/reflect/generics/tree/ClassSignature.java b/jdk/src/share/classes/sun/reflect/generics/tree/ClassSignature.java
index 7856dd2..dde4f61 100644
--- a/jdk/src/share/classes/sun/reflect/generics/tree/ClassSignature.java
+++ b/jdk/src/share/classes/sun/reflect/generics/tree/ClassSignature.java
@@ -52,5 +52,5 @@ public class ClassSignature implements Signature {
     public ClassTypeSignature getSuperclass(){return superclass;}
     public ClassTypeSignature[] getSuperInterfaces(){return superInterfaces;}
 
-    public void accept(Visitor v){v.visitClassSignature(this);}
+    public void accept(Visitor<?> v){v.visitClassSignature(this);}
 }
diff --git a/jdk/src/share/classes/sun/reflect/generics/tree/MethodTypeSignature.java b/jdk/src/share/classes/sun/reflect/generics/tree/MethodTypeSignature.java
index e741905..7d65d6e 100644
--- a/jdk/src/share/classes/sun/reflect/generics/tree/MethodTypeSignature.java
+++ b/jdk/src/share/classes/sun/reflect/generics/tree/MethodTypeSignature.java
@@ -57,5 +57,5 @@ public class MethodTypeSignature implements Signature {
     public ReturnType getReturnType(){return returnType;}
     public FieldTypeSignature[] getExceptionTypes(){return exceptionTypes;}
 
-    public void accept(Visitor v){v.visitMethodTypeSignature(this);}
+    public void accept(Visitor<?> v){v.visitMethodTypeSignature(this);}
 }
diff --git a/jdk/src/share/classes/sun/reflect/misc/MethodUtil.java b/jdk/src/share/classes/sun/reflect/misc/MethodUtil.java
index bdb3f30..0eade8d 100644
--- a/jdk/src/share/classes/sun/reflect/misc/MethodUtil.java
+++ b/jdk/src/share/classes/sun/reflect/misc/MethodUtil.java
@@ -292,9 +292,7 @@ public final class MethodUtil extends SecureClassLoader {
                 }
             });
         } catch (Exception e) {
-            Error err = new InternalError("bouncer cannot be found");
-            err.initCause(e);
-            throw err;
+            throw new InternalError("bouncer cannot be found", e);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/rmi/transport/LiveRef.java b/jdk/src/share/classes/sun/rmi/transport/LiveRef.java
index 8643a06..3cde2f9 100644
--- a/jdk/src/share/classes/sun/rmi/transport/LiveRef.java
+++ b/jdk/src/share/classes/sun/rmi/transport/LiveRef.java
@@ -111,7 +111,7 @@ public class LiveRef implements Cloneable {
             LiveRef newRef = (LiveRef) super.clone();
             return newRef;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java b/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java
index 0397234..79479f2 100644
--- a/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java
+++ b/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java
@@ -25,7 +25,6 @@
 package sun.security.acl;
 
 import java.util.*;
-import java.io.*;
 import java.security.Principal;
 import java.security.acl.*;
 
@@ -162,6 +161,7 @@ public class AclEntryImpl implements AclEntry {
     /**
      * Clones an AclEntry.
      */
+    @SuppressWarnings("unchecked") // Safe casts assuming clone() works correctly
     public synchronized Object clone() {
         AclEntryImpl cloned;
         cloned = new AclEntryImpl(user);
diff --git a/jdk/src/share/classes/sun/security/action/PutAllAction.java b/jdk/src/share/classes/sun/security/action/PutAllAction.java
index b58da23..d8b1799 100644
--- a/jdk/src/share/classes/sun/security/action/PutAllAction.java
+++ b/jdk/src/share/classes/sun/security/action/PutAllAction.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,9 +41,9 @@ import java.security.PrivilegedAction;
 public class PutAllAction implements PrivilegedAction<Void> {
 
     private final Provider provider;
-    private final Map map;
+    private final Map<?, ?> map;
 
-    public PutAllAction(Provider provider, Map map) {
+    public PutAllAction(Provider provider, Map<?, ?> map) {
         this.provider = provider;
         this.map = map;
     }
diff --git a/jdk/src/share/classes/sun/security/ec/ECDSASignature.java b/jdk/src/share/classes/sun/security/ec/ECDSASignature.java
index 500a964..0d68225 100644
--- a/jdk/src/share/classes/sun/security/ec/ECDSASignature.java
+++ b/jdk/src/share/classes/sun/security/ec/ECDSASignature.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,10 +25,8 @@
 
 package sun.security.ec;
 
-import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.math.BigInteger;
-import java.util.Arrays;
 
 import java.security.*;
 import java.security.interfaces.*;
@@ -36,7 +34,6 @@ import java.security.spec.*;
 
 import sun.security.jca.JCAUtil;
 import sun.security.util.*;
-import sun.security.x509.AlgorithmId;
 
 /**
  * ECDSA signature implementation. This class currently supports the
diff --git a/jdk/src/share/classes/sun/security/ec/ECKeyFactory.java b/jdk/src/share/classes/sun/security/ec/ECKeyFactory.java
index 1e154f3..cd35c91 100644
--- a/jdk/src/share/classes/sun/security/ec/ECKeyFactory.java
+++ b/jdk/src/share/classes/sun/security/ec/ECKeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -61,7 +61,9 @@ public final class ECKeyFactory extends KeyFactorySpi {
     public final static Provider ecInternalProvider;
 
     static {
-        final Provider p = new Provider("SunEC-Internal", 1.0d, null) {};
+        final Provider p = new Provider("SunEC-Internal", 1.0d, null) {
+            private static final long serialVersionUID = 970685700309471261L;
+        };
         AccessController.doPrivileged(new PrivilegedAction<Void>() {
             public Void run() {
                 p.put("KeyFactory.EC", "sun.security.ec.ECKeyFactory");
@@ -262,12 +264,12 @@ public final class ECKeyFactory extends KeyFactorySpi {
         if (key instanceof ECPublicKey) {
             ECPublicKey ecKey = (ECPublicKey)key;
             if (ECPublicKeySpec.class.isAssignableFrom(keySpec)) {
-                return (T) new ECPublicKeySpec(
+                return keySpec.cast(new ECPublicKeySpec(
                     ecKey.getW(),
                     ecKey.getParams()
-                );
+                ));
             } else if (X509EncodedKeySpec.class.isAssignableFrom(keySpec)) {
-                return (T) new X509EncodedKeySpec(key.getEncoded());
+                return keySpec.cast(new X509EncodedKeySpec(key.getEncoded()));
             } else {
                 throw new InvalidKeySpecException
                         ("KeySpec must be ECPublicKeySpec or "
@@ -275,13 +277,13 @@ public final class ECKeyFactory extends KeyFactorySpi {
             }
         } else if (key instanceof ECPrivateKey) {
             if (PKCS8EncodedKeySpec.class.isAssignableFrom(keySpec)) {
-                return (T) new PKCS8EncodedKeySpec(key.getEncoded());
+                return keySpec.cast(new PKCS8EncodedKeySpec(key.getEncoded()));
             } else if (ECPrivateKeySpec.class.isAssignableFrom(keySpec)) {
                 ECPrivateKey ecKey = (ECPrivateKey)key;
-                return (T) new ECPrivateKeySpec(
+                return keySpec.cast(new ECPrivateKeySpec(
                     ecKey.getS(),
                     ecKey.getParams()
-                );
+                ));
             } else {
                 throw new InvalidKeySpecException
                         ("KeySpec must be ECPrivateKeySpec or "
diff --git a/jdk/src/share/classes/sun/security/ec/ECParameters.java b/jdk/src/share/classes/sun/security/ec/ECParameters.java
index cf66984..9d15995 100644
--- a/jdk/src/share/classes/sun/security/ec/ECParameters.java
+++ b/jdk/src/share/classes/sun/security/ec/ECParameters.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -326,9 +326,9 @@ public final class ECParameters extends AlgorithmParametersSpi {
     protected <T extends AlgorithmParameterSpec> T engineGetParameterSpec(Class<T> spec)
             throws InvalidParameterSpecException {
         if (spec.isAssignableFrom(ECParameterSpec.class)) {
-            return (T)paramSpec;
+            return spec.cast(paramSpec);
         } else if (spec.isAssignableFrom(ECGenParameterSpec.class)) {
-            return (T)new ECGenParameterSpec(getCurveName(paramSpec));
+            return spec.cast(new ECGenParameterSpec(getCurveName(paramSpec)));
         } else {
             throw new InvalidParameterSpecException
                 ("Only ECParameterSpec and ECGenParameterSpec supported");
diff --git a/jdk/src/share/classes/sun/security/jca/GetInstance.java b/jdk/src/share/classes/sun/security/jca/GetInstance.java
index c1d20ea..9a34a85 100644
--- a/jdk/src/share/classes/sun/security/jca/GetInstance.java
+++ b/jdk/src/share/classes/sun/security/jca/GetInstance.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -149,7 +149,7 @@ public class GetInstance {
      * There are overloaded methods for all the permutations.
      */
 
-    public static Instance getInstance(String type, Class clazz,
+    public static Instance getInstance(String type, Class<?> clazz,
             String algorithm) throws NoSuchAlgorithmException {
         // in the almost all cases, the first service will work
         // avoid taking long path if so
@@ -181,7 +181,7 @@ public class GetInstance {
         throw failure;
     }
 
-    public static Instance getInstance(String type, Class clazz,
+    public static Instance getInstance(String type, Class<?> clazz,
             String algorithm, Object param) throws NoSuchAlgorithmException {
         List<Service> services = getServices(type, algorithm);
         NoSuchAlgorithmException failure = null;
@@ -200,25 +200,25 @@ public class GetInstance {
         }
     }
 
-    public static Instance getInstance(String type, Class clazz,
+    public static Instance getInstance(String type, Class<?> clazz,
             String algorithm, String provider) throws NoSuchAlgorithmException,
             NoSuchProviderException {
         return getInstance(getService(type, algorithm, provider), clazz);
     }
 
-    public static Instance getInstance(String type, Class clazz,
+    public static Instance getInstance(String type, Class<?> clazz,
             String algorithm, Object param, String provider)
             throws NoSuchAlgorithmException, NoSuchProviderException {
         return getInstance(getService(type, algorithm, provider), clazz, param);
     }
 
-    public static Instance getInstance(String type, Class clazz,
+    public static Instance getInstance(String type, Class<?> clazz,
             String algorithm, Provider provider)
             throws NoSuchAlgorithmException {
         return getInstance(getService(type, algorithm, provider), clazz);
     }
 
-    public static Instance getInstance(String type, Class clazz,
+    public static Instance getInstance(String type, Class<?> clazz,
             String algorithm, Object param, Provider provider)
             throws NoSuchAlgorithmException {
         return getInstance(getService(type, algorithm, provider), clazz, param);
@@ -231,14 +231,14 @@ public class GetInstance {
      * Signature class.
      */
 
-    public static Instance getInstance(Service s, Class clazz)
+    public static Instance getInstance(Service s, Class<?> clazz)
             throws NoSuchAlgorithmException {
         Object instance = s.newInstance(null);
         checkSuperClass(s, instance.getClass(), clazz);
         return new Instance(s.getProvider(), instance);
     }
 
-    public static Instance getInstance(Service s, Class clazz,
+    public static Instance getInstance(Service s, Class<?> clazz,
             Object param) throws NoSuchAlgorithmException {
         Object instance = s.newInstance(param);
         checkSuperClass(s, instance.getClass(), clazz);
@@ -249,8 +249,8 @@ public class GetInstance {
      * Check is subClass is a subclass of superClass. If not,
      * throw a NoSuchAlgorithmException.
      */
-    public static void checkSuperClass(Service s, Class subClass,
-            Class superClass) throws NoSuchAlgorithmException {
+    public static void checkSuperClass(Service s, Class<?> subClass,
+            Class<?> superClass) throws NoSuchAlgorithmException {
         if (superClass == null) {
             return;
         }
diff --git a/jdk/src/share/classes/sun/security/jca/ProviderList.java b/jdk/src/share/classes/sun/security/jca/ProviderList.java
index 615cba0..66c8262 100644
--- a/jdk/src/share/classes/sun/security/jca/ProviderList.java
+++ b/jdk/src/share/classes/sun/security/jca/ProviderList.java
@@ -69,6 +69,7 @@ public final class ProviderList {
     // used to avoid explicit null checks in various places
     private static final Provider EMPTY_PROVIDER =
         new Provider("##Empty##", 1.0d, "initialization in progress") {
+            private static final long serialVersionUID = 1151354171352296389L;
             // override getService() to return null slightly faster
             public Service getService(String type, String algorithm) {
                 return null;
diff --git a/jdk/src/share/classes/sun/security/jca/Providers.java b/jdk/src/share/classes/sun/security/jca/Providers.java
index b9c51bc..b0c39bf 100644
--- a/jdk/src/share/classes/sun/security/jca/Providers.java
+++ b/jdk/src/share/classes/sun/security/jca/Providers.java
@@ -25,10 +25,7 @@
 
 package sun.security.jca;
 
-import java.util.*;
-
 import java.security.Provider;
-import java.security.Security;
 
 /**
  * Collection of methods to get and set provider list. Also includes
@@ -97,11 +94,11 @@ public class Providers {
     // sun.security.util.ManifestEntryVerifier and java.security.SecureRandom.
     public static Provider getSunProvider() {
         try {
-            Class clazz = Class.forName(jarVerificationProviders[0]);
+            Class<?> clazz = Class.forName(jarVerificationProviders[0]);
             return (Provider)clazz.newInstance();
         } catch (Exception e) {
             try {
-                Class clazz = Class.forName(BACKUP_PROVIDER_CLASSNAME);
+                Class<?> clazz = Class.forName(BACKUP_PROVIDER_CLASSNAME);
                 return (Provider)clazz.newInstance();
             } catch (Exception ee) {
                 throw new RuntimeException("Sun provider not found", e);
diff --git a/jdk/src/share/classes/sun/security/jgss/GSSUtil.java b/jdk/src/share/classes/sun/security/jgss/GSSUtil.java
index 1e7da08..f2d9f37 100644
--- a/jdk/src/share/classes/sun/security/jgss/GSSUtil.java
+++ b/jdk/src/share/classes/sun/security/jgss/GSSUtil.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -316,24 +316,25 @@ public class GSSUtil {
      * no Subject present or a Vector which contains 0 or more
      * matching GSSCredentialSpi objects.
      */
-    public static Vector searchSubject(final GSSNameSpi name,
-                                       final Oid mech,
-                                       final boolean initiate,
-                                       final Class credCls) {
+    public static <T extends GSSCredentialSpi> Vector<T>
+            searchSubject(final GSSNameSpi name,
+                          final Oid mech,
+                          final boolean initiate,
+                          final Class<? extends T> credCls) {
         debug("Search Subject for " + getMechStr(mech) +
               (initiate? " INIT" : " ACCEPT") + " cred (" +
               (name == null? "<<DEF>>" : name.toString()) + ", " +
               credCls.getName() + ")");
         final AccessControlContext acc = AccessController.getContext();
         try {
-            Vector creds =
+            Vector<T> creds =
                 AccessController.doPrivileged
-                (new PrivilegedExceptionAction<Vector>() {
-                    public Vector run() throws Exception {
+                (new PrivilegedExceptionAction<Vector<T>>() {
+                    public Vector<T> run() throws Exception {
                         Subject accSubj = Subject.getSubject(acc);
-                        Vector<GSSCredentialSpi> result = null;
+                        Vector<T> result = null;
                         if (accSubj != null) {
-                            result = new Vector<GSSCredentialSpi>();
+                            result = new Vector<T>();
                             Iterator<GSSCredentialImpl> iterator =
                                 accSubj.getPrivateCredentials
                                 (GSSCredentialImpl.class).iterator();
@@ -347,7 +348,7 @@ public class GSSUtil {
                                     if (ce.getClass().equals(credCls) &&
                                         (name == null ||
                                          name.equals((Object) ce.getName()))) {
-                                        result.add(ce);
+                                        result.add(credCls.cast(ce));
                                     } else {
                                         debug("......Discard element");
                                     }
diff --git a/jdk/src/share/classes/sun/security/jgss/krb5/CipherHelper.java b/jdk/src/share/classes/sun/security/jgss/krb5/CipherHelper.java
index 51172ca..c637b01 100644
--- a/jdk/src/share/classes/sun/security/jgss/krb5/CipherHelper.java
+++ b/jdk/src/share/classes/sun/security/jgss/krb5/CipherHelper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -139,6 +139,7 @@ class CipherHelper {
         return flag;
     }
 
+    @SuppressWarnings("fallthrough")
     byte[] calculateChecksum(int alg, byte[] header, byte[] trailer,
         byte[] data, int start, int len, int tokenId) throws GSSException {
 
@@ -1265,7 +1266,7 @@ class CipherHelper {
         // Note: When using this RC4 based encryption type, the sequence number
         // is always sent in big-endian rather than little-endian order.
         byte[] seqNum = new byte[4];
-        token.writeBigEndian(token.getSequenceNumber(), seqNum);
+        WrapToken.writeBigEndian(token.getSequenceNumber(), seqNum);
 
         // Krb5Token.debug("\narcFourEncrypt:" + Krb5Token.getHexBytes(all));
 
diff --git a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Context.java b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Context.java
index 8570601..3b6467d 100644
--- a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Context.java
+++ b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Context.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1310,6 +1310,8 @@ class Krb5Context implements GSSContextSpi {
      * The session key returned by inquireSecContext(KRB5_INQ_SSPI_SESSION_KEY)
      */
     static class KerberosSessionKey implements Key {
+        private static final long serialVersionUID = 699307378954123869L;
+
         private final EncryptionKey key;
 
         KerberosSessionKey(EncryptionKey key) {
diff --git a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5NameElement.java b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5NameElement.java
index 876cd6c..1fb1bb0 100644
--- a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5NameElement.java
+++ b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5NameElement.java
@@ -35,6 +35,7 @@ import java.io.UnsupportedEncodingException;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.security.Provider;
+import java.util.Locale;
 
 /**
  * Implements the GSSNameSpi for the krb5 mechanism.
@@ -184,7 +185,7 @@ public class Krb5NameElement
             } catch (UnknownHostException e) {
                 // use hostname as it is
             }
-            hostName = hostName.toLowerCase();
+            hostName = hostName.toLowerCase(Locale.ENGLISH);
 
             temp = temp.append('/').append(hostName);
             return temp.toString();
diff --git a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java
index c511388..28df952 100644
--- a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java
+++ b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java
@@ -193,6 +193,8 @@ public class Krb5Util {
     // Each time new keys are read from KeyTab objects in the private
     // credentials set, old ones are removed and new ones added.
     public static class KeysFromKeyTab extends KerberosKey {
+        private static final long serialVersionUID = 8238092170252746927L;
+
         public KeysFromKeyTab(KerberosKey key) {
             super(key.getPrincipal(), key.getEncoded(),
                     key.getKeyType(), key.getVersionNumber());
diff --git a/jdk/src/share/classes/sun/security/jgss/krb5/MessageToken.java b/jdk/src/share/classes/sun/security/jgss/krb5/MessageToken.java
index 1507df8..5763fd1 100644
--- a/jdk/src/share/classes/sun/security/jgss/krb5/MessageToken.java
+++ b/jdk/src/share/classes/sun/security/jgss/krb5/MessageToken.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,12 +27,10 @@ package sun.security.jgss.krb5;
 
 import org.ietf.jgss.*;
 import sun.security.jgss.*;
-import sun.security.krb5.*;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.IOException;
 import java.io.ByteArrayInputStream;
-import java.security.GeneralSecurityException;
 import java.security.MessageDigest;
 
 /**
@@ -184,7 +182,7 @@ abstract class MessageToken extends Krb5Token {
         try {
             gssHeader = new GSSHeader(is);
 
-            if (!gssHeader.getOid().equals(OID)) {
+            if (!gssHeader.getOid().equals((Object)OID)) {
                 throw new GSSException(GSSException.DEFECTIVE_TOKEN, -1,
                                        getTokenName(tokenId));
             }
diff --git a/jdk/src/share/classes/sun/security/jgss/krb5/SubjectComber.java b/jdk/src/share/classes/sun/security/jgss/krb5/SubjectComber.java
index c7269cb..65ff946 100644
--- a/jdk/src/share/classes/sun/security/jgss/krb5/SubjectComber.java
+++ b/jdk/src/share/classes/sun/security/jgss/krb5/SubjectComber.java
@@ -56,15 +56,17 @@ class SubjectComber {
     static <T> T find(Subject subject, String serverPrincipal,
         String clientPrincipal, Class<T> credClass) {
 
-        return (T)findAux(subject, serverPrincipal, clientPrincipal, credClass,
-            true);
+        // findAux returns T if oneOnly.
+        return credClass.cast(findAux(subject, serverPrincipal,
+                                      clientPrincipal, credClass, true));
     }
 
+    @SuppressWarnings("unchecked") // findAux returns List<T> if !oneOnly.
     static <T> List<T> findMany(Subject subject, String serverPrincipal,
         String clientPrincipal, Class<T> credClass) {
 
-        return (List<T>)findAux(subject, serverPrincipal, clientPrincipal, credClass,
-            false);
+        return (List<T>)findAux(subject, serverPrincipal, clientPrincipal,
+            credClass, false);
     }
 
     /**
@@ -73,6 +75,7 @@ class SubjectComber {
      *
      * @return the private credentials
      */
+    // Returns T if oneOnly and List<T> if !oneOnly.
     private static <T> Object findAux(Subject subject, String serverPrincipal,
         String clientPrincipal, Class<T> credClass, boolean oneOnly) {
 
@@ -98,11 +101,11 @@ class SubjectComber {
                 }
             } else if (credClass == KerberosKey.class) {
                 // We are looking for credentials for the serverPrincipal
-                Iterator<T> iterator =
-                    subject.getPrivateCredentials(credClass).iterator();
+                Iterator<KerberosKey> iterator =
+                    subject.getPrivateCredentials(KerberosKey.class).iterator();
                 while (iterator.hasNext()) {
-                    T t = iterator.next();
-                    String name = ((KerberosKey)t).getPrincipal().getName();
+                    KerberosKey t = iterator.next();
+                    String name = t.getPrincipal().getName();
                     if (serverPrincipal == null || serverPrincipal.equals(name)) {
                          if (DEBUG) {
                              System.out.println("Found " +
@@ -116,7 +119,7 @@ class SubjectComber {
                                  // belong to the same principal
                                  serverPrincipal = name;
                              }
-                             answer.add(t);
+                             answer.add(credClass.cast(t));
                          }
                     }
                 }
@@ -129,6 +132,7 @@ class SubjectComber {
                     while (iterator.hasNext()) {
                         Object obj = iterator.next();
                         if (obj instanceof KerberosTicket) {
+                            @SuppressWarnings("unchecked")
                             KerberosTicket ticket = (KerberosTicket)obj;
                             if (DEBUG) {
                                 System.out.println("Found ticket for "
@@ -180,7 +184,7 @@ class SubjectComber {
                                                 serverPrincipal =
                                                 ticket.getServer().getName();
                                             }
-                                            answer.add((T)ticket);
+                                            answer.add(credClass.cast(ticket));
                                         }
                                     }
                                 }
diff --git a/jdk/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java b/jdk/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java
index 5181a3c..849737a 100644
--- a/jdk/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java
+++ b/jdk/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1016,7 +1016,7 @@ public class SpNegoContext implements GSSContextSpi {
         // get the peer name for the mechanism
         if (mechContext != null) {
             GSSNameImpl targName = (GSSNameImpl)mechContext.getTargName();
-            peerName = (GSSNameSpi) targName.getElement(internal_mech);
+            peerName = targName.getElement(internal_mech);
             return peerName;
         } else {
             if (DEBUG) {
@@ -1032,7 +1032,7 @@ public class SpNegoContext implements GSSContextSpi {
         // get the src name for the mechanism
         if (mechContext != null) {
             GSSNameImpl srcName = (GSSNameImpl)mechContext.getSrcName();
-            myName = (GSSNameSpi) srcName.getElement(internal_mech);
+            myName = srcName.getElement(internal_mech);
             return myName;
         } else {
             if (DEBUG) {
@@ -1064,8 +1064,8 @@ public class SpNegoContext implements GSSContextSpi {
             if (delegCred.getUsage() == GSSCredential.INITIATE_ONLY) {
                 initiate = true;
             }
-            GSSCredentialSpi mechCred = (GSSCredentialSpi)
-                                delegCred.getElement(internal_mech, initiate);
+            GSSCredentialSpi mechCred =
+                    delegCred.getElement(internal_mech, initiate);
             SpNegoCredElement cred = new SpNegoCredElement(mechCred);
             return cred.getInternalCred();
         } else {
diff --git a/jdk/src/share/classes/sun/security/jgss/wrapper/NativeGSSFactory.java b/jdk/src/share/classes/sun/security/jgss/wrapper/NativeGSSFactory.java
index 02556a8..8901272 100644
--- a/jdk/src/share/classes/sun/security/jgss/wrapper/NativeGSSFactory.java
+++ b/jdk/src/share/classes/sun/security/jgss/wrapper/NativeGSSFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -113,8 +113,7 @@ public final class NativeGSSFactory implements MechanismFactory {
         }
 
         GSSCredElement credElement =
-            getCredFromSubject((GSSNameElement) nname,
-                               (usage == GSSCredential.INITIATE_ONLY));
+            getCredFromSubject(nname, (usage == GSSCredential.INITIATE_ONLY));
 
         if (credElement == null) {
             // No cred in the Subject
diff --git a/jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java b/jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java
index f9c36b2..94edd11 100644
--- a/jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java
+++ b/jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java
@@ -52,7 +52,7 @@ public final class SunNativeProvider extends Provider {
         "sun.security.jgss.wrapper.NativeGSSFactory";
     private static final String LIB_PROP = "sun.security.jgss.lib";
     private static final String DEBUG_PROP = "sun.security.nativegss.debug";
-    private static HashMap MECH_MAP;
+    private static HashMap<String, String> MECH_MAP;
     static final Provider INSTANCE = new SunNativeProvider();
     static boolean DEBUG;
     static void debug(String message) {
@@ -66,8 +66,9 @@ public final class SunNativeProvider extends Provider {
 
     static {
         MECH_MAP =
-            AccessController.doPrivileged(new PrivilegedAction<HashMap>() {
-                    public HashMap run() {
+            AccessController.doPrivileged(
+                new PrivilegedAction<HashMap<String, String>>() {
+                    public HashMap<String, String> run() {
                         DEBUG = Boolean.parseBoolean
                             (System.getProperty(DEBUG_PROP));
                         try {
diff --git a/jdk/src/share/classes/sun/security/krb5/Checksum.java b/jdk/src/share/classes/sun/security/krb5/Checksum.java
index 0474195..4cc5820 100644
--- a/jdk/src/share/classes/sun/security/krb5/Checksum.java
+++ b/jdk/src/share/classes/sun/security/krb5/Checksum.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -199,7 +199,7 @@ public class Checksum {
         if (cksumType != cksum.cksumType)
             return false;
         CksumType cksumEngine = CksumType.getInstance(cksumType);
-        return cksumEngine.isChecksumEqual(checksum, cksum.checksum);
+        return CksumType.isChecksumEqual(checksum, cksum.checksum);
     }
 
     /**
diff --git a/jdk/src/share/classes/sun/security/krb5/Config.java b/jdk/src/share/classes/sun/security/krb5/Config.java
index 2ec4e12..ff4ae84 100644
--- a/jdk/src/share/classes/sun/security/krb5/Config.java
+++ b/jdk/src/share/classes/sun/security/krb5/Config.java
@@ -45,7 +45,6 @@ import java.net.UnknownHostException;
 import java.util.List;
 import sun.net.dns.ResolverConfiguration;
 import sun.security.krb5.internal.crypto.EType;
-import sun.security.krb5.internal.ktab.*;
 import sun.security.krb5.internal.Krb5;
 
 /**
@@ -233,15 +232,18 @@ public class Config {
      * @return the value found in config file, returns null if no value
      * matched with the key is found.
      */
-    private String getDefault(String k, Hashtable t) {
+    private String getDefault(String k, Hashtable<String, Object> t) {
         String result = null;
         String key;
         if (stanzaTable != null) {
-            for (Enumeration e = t.keys(); e.hasMoreElements(); ) {
-                key = (String)e.nextElement();
+            for (Enumeration<String> e = t.keys(); e.hasMoreElements(); ) {
+                key = e.nextElement();
                 Object ob = t.get(key);
                 if (ob instanceof Hashtable) {
-                    result = getDefault(k, (Hashtable)ob);
+                    @SuppressWarnings("unchecked") // Checked with an instanceof check
+                    Hashtable<String, Object> table =
+                            (Hashtable<String, Object>)ob;
+                    result = getDefault(k, table);
                     if (result != null) {
                         return result;
                     }
@@ -276,15 +278,20 @@ public class Config {
      * @param section the name of the section.
      * @return the default value, null is returned if it cannot be found.
      */
+    // stanzaTable leads to a lot of unchecked casts since its value type is
+    // STANZATABLE = String | Hashtable<String, STANZATABLE>
+    @SuppressWarnings("unchecked")
     public String getDefault(String name, String section) {
         String stanzaName;
         String result = null;
-        Hashtable subTable;
+        Hashtable<String, Object> subTable;
 
         if (stanzaTable != null) {
-            for (Enumeration e = stanzaTable.keys(); e.hasMoreElements(); ) {
-                stanzaName = (String)e.nextElement();
-                subTable = (Hashtable)stanzaTable.get(stanzaName);
+            for (Enumeration<String> e = stanzaTable.keys();
+                 e.hasMoreElements(); ) {
+                stanzaName = e.nextElement();
+                subTable = (Hashtable<String, Object>)
+                        stanzaTable.get(stanzaName);
                 if (stanzaName.equalsIgnoreCase(section)) {
                     if (subTable.containsKey(name)) {
                         return (String)(subTable.get(name));
@@ -292,7 +299,8 @@ public class Config {
                 } else if (subTable.containsKey(section)) {
                     Object ob = subTable.get(section);
                     if (ob instanceof Hashtable) {
-                        Hashtable temp = (Hashtable)ob;
+                        Hashtable<String, Object> temp =
+                                (Hashtable<String, Object>)ob;
                         if (temp.containsKey(name)) {
                             Object object = temp.get(name);
                             if (object instanceof Vector) {
@@ -819,10 +827,10 @@ public class Config {
     /**
      * Compares the key with the known keys to see if it exists.
      */
-    private boolean exists(String key, Vector v) {
+    private boolean exists(String key, Vector<String> v) {
         boolean exists = false;
         for (int i = 0; i < v.size(); i++) {
-            if (((String)(v.elementAt(i))).equals(key)) {
+            if (v.elementAt(i).equals(key)) {
                 exists = true;
             }
         }
@@ -837,12 +845,15 @@ public class Config {
         listTable(stanzaTable);
     }
 
-    private void listTable(Hashtable table) {
-        Vector v = new Vector();
+    // stanzaTable leads to a lot of unchecked casts since its value type is
+    // STANZATABLE = String | Hashtable<String, STANZATABLE>
+    @SuppressWarnings("unchecked")
+    private void listTable(Hashtable<String, Object> table) {
+        Vector<String> v = new Vector<String>();
         String key;
         if (stanzaTable != null) {
-            for (Enumeration e = table.keys(); e.hasMoreElements(); ) {
-                key = (String)e.nextElement();
+            for (Enumeration<String> e = table.keys(); e.hasMoreElements(); ) {
+                key = e.nextElement();
                 Object object = table.get(key);
                 if (table == stanzaTable) {
                     System.out.println("[" + key + "]");
@@ -850,7 +861,7 @@ public class Config {
                 if (object instanceof Hashtable) {
                     if (table != stanzaTable)
                         System.out.println("\t" + key + " = {");
-                    listTable((Hashtable)object);
+                    listTable((Hashtable<String, Object>)object);
                     if (table != stanzaTable)
                         System.out.println("\t}");
 
@@ -858,10 +869,9 @@ public class Config {
                     System.out.println("\t" + key + " = " +
                                 (String)table.get(key));
                 } else if (object instanceof Vector) {
-                    v = (Vector)object;
+                    v = (Vector<String>)object;
                     for (int i = 0; i < v.size(); i++) {
-                        System.out.println("\t" + key + " = " +
-                                (String)v.elementAt(i));
+                        System.out.println("\t" + key + " = " + v.elementAt(i));
                     }
                 }
             }
@@ -906,7 +916,7 @@ public class Config {
                     ls.add(type);
                 }
             }
-            if (ls.size() == 0) {
+            if (ls.isEmpty()) {
                 if (DEBUG) {
                     System.out.println(
                         "no supported default etypes for " + enctypes);
@@ -1296,7 +1306,7 @@ public class Config {
             sb.append(obj);
             sb.append('\n');
         } else if (obj instanceof Hashtable) {
-            Hashtable tab = (Hashtable)obj;
+            Hashtable<?, ?> tab = (Hashtable<?, ?>)obj;
             for (Object o: tab.keySet()) {
                 sb.append(prefix);
                 sb.append(o);
@@ -1305,7 +1315,7 @@ public class Config {
                 sb.append(prefix + "}\n");
             }
         } else if (obj instanceof Vector) {
-            Vector v = (Vector)obj;
+            Vector<?> v = (Vector<?>)obj;
             for (Object o: v.toArray()) {
                 toStringIndented(prefix + "    ", o, sb);
             }
diff --git a/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java b/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java
index 1de0329..ebf794e 100644
--- a/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java
+++ b/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java
@@ -151,11 +151,36 @@ public class EncryptionKey
     }
 
     /**
+     * Obtains a key for a given etype of a principal with possible new salt
+     * and s2kparams
+     * @param cname NOT null
+     * @param password NOT null
+     * @param etype
+     * @param snp can be NULL
+     * @returns never null
+     */
+    public static EncryptionKey acquireSecretKey(PrincipalName cname,
+            char[] password, int etype, PAData.SaltAndParams snp)
+            throws KrbException {
+        String salt;
+        byte[] s2kparams;
+        if (snp != null) {
+            salt = snp.salt != null ? snp.salt : cname.getSalt();
+            s2kparams = snp.params;
+        } else {
+            salt = cname.getSalt();
+            s2kparams = null;
+        }
+        return acquireSecretKey(password, salt, etype, s2kparams);
+    }
+
+    /**
      * Obtains a key for a given etype with salt and optional s2kparams
      * @param password NOT null
      * @param salt NOT null
      * @param etype
      * @param s2kparams can be NULL
+     * @returns never null
      */
     public static EncryptionKey acquireSecretKey(char[] password,
             String salt, int etype, byte[] s2kparams)
diff --git a/jdk/src/share/classes/sun/security/krb5/KrbAsRep.java b/jdk/src/share/classes/sun/security/krb5/KrbAsRep.java
index 29a7a5b..c2b0df3 100644
--- a/jdk/src/share/classes/sun/security/krb5/KrbAsRep.java
+++ b/jdk/src/share/classes/sun/security/krb5/KrbAsRep.java
@@ -131,13 +131,11 @@ class KrbAsRep extends KrbKdcRep {
             KrbAsReq asReq, PrincipalName cname)
             throws KrbException, Asn1Exception, IOException {
         int encPartKeyType = rep.encPart.getEType();
-        PAData.SaltAndParams snp =
-                PAData.getSaltAndParams(encPartKeyType, rep.pAData);
-        EncryptionKey dkey = null;
-        dkey = EncryptionKey.acquireSecretKey(password,
-                snp.salt == null ? cname.getSalt() : snp.salt,
+        EncryptionKey dkey = EncryptionKey.acquireSecretKey(
+                cname,
+                password,
                 encPartKeyType,
-                snp.params);
+                PAData.getSaltAndParams(encPartKeyType, rep.pAData));
         decrypt(dkey, asReq);
     }
 
diff --git a/jdk/src/share/classes/sun/security/krb5/KrbAsReqBuilder.java b/jdk/src/share/classes/sun/security/krb5/KrbAsReqBuilder.java
index dd9b8dc..3426d8b 100644
--- a/jdk/src/share/classes/sun/security/krb5/KrbAsReqBuilder.java
+++ b/jdk/src/share/classes/sun/security/krb5/KrbAsReqBuilder.java
@@ -169,34 +169,44 @@ public final class KrbAsReqBuilder {
              * from a keytab on acceptor, but unfortunately (?) Java supports
              * acceptor using password. In this case, if the service ticket is
              * encrypted using an etype which we don't have PA-DATA new salt,
-             * using the default salt is normally wrong (say, case-insensitive
+             * using the default salt might be wrong (say, case-insensitive
              * user name). Instead, we would use the new salt of another etype.
              */
 
             String salt = null;     // the saved new salt
-            for (int i=0; i<eTypes.length; i++) {
-                PAData.SaltAndParams snp =
-                        PAData.getSaltAndParams(eTypes[i], paList);
-                // First round, only calculate those with new salt
-                if (snp.salt != null) {
-                    salt = snp.salt;
-                    result[i] = EncryptionKey.acquireSecretKey(password,
-                            snp.salt,
-                            eTypes[i],
-                            snp.params);
-                }
-            }
-            if (salt == null) salt = cname.getSalt();
-            for (int i=0; i<eTypes.length; i++) {
-                // Second round, calculate those with no new salt
-                if (result[i] == null) {
+            try {
+                for (int i=0; i<eTypes.length; i++) {
+                    // First round, only calculate those have a PA entry
                     PAData.SaltAndParams snp =
                             PAData.getSaltAndParams(eTypes[i], paList);
-                    result[i] = EncryptionKey.acquireSecretKey(password,
-                            salt,
-                            eTypes[i],
-                            snp.params);
+                    if (snp != null) {
+                        // Never uses a salt for rc4-hmac, it does not use
+                        // a salt at all
+                        if (eTypes[i] != EncryptedData.ETYPE_ARCFOUR_HMAC &&
+                                snp.salt != null) {
+                            salt = snp.salt;
+                        }
+                        result[i] = EncryptionKey.acquireSecretKey(cname,
+                                password,
+                                eTypes[i],
+                                snp);
+                    }
+                }
+                // No new salt from PA, maybe empty, maybe only rc4-hmac
+                if (salt == null) salt = cname.getSalt();
+                for (int i=0; i<eTypes.length; i++) {
+                    // Second round, calculate those with no PA entry
+                    if (result[i] == null) {
+                        result[i] = EncryptionKey.acquireSecretKey(password,
+                                salt,
+                                eTypes[i],
+                                null);
+                    }
                 }
+            } catch (IOException ioe) {
+                KrbException ke = new KrbException(Krb5.ASN1_PARSE_ERROR);
+                ke.initCause(ioe);
+                throw ke;
             }
             return result;
         } else {
@@ -315,27 +325,19 @@ public final class KrbAsReqBuilder {
                     }
                     preAuthFailedOnce = true;
                     KRBError kerr = ke.getError();
+                    int paEType = PAData.getPreferredEType(kerr.getPA(),
+                            EType.getDefaults("default_tkt_enctypes")[0]);
                     if (password == null) {
                         EncryptionKey[] ks = Krb5Util.keysFromJavaxKeyTab(ktab, cname);
-                        pakey = EncryptionKey.findKey(kerr.getEType(), ks);
+                        pakey = EncryptionKey.findKey(paEType, ks);
                         if (pakey != null) pakey = (EncryptionKey)pakey.clone();
                         for (EncryptionKey k: ks) k.destroy();
                     } else {
-                        PAData.SaltAndParams snp = PAData.getSaltAndParams(
-                                kerr.getEType(), kerr.getPA());
-                        if (kerr.getEType() == 0) {
-                            // Possible if PA-PW-SALT is in KRB-ERROR. RFC
-                            // does not recommend this
-                            pakey = EncryptionKey.acquireSecretKey(password,
-                                    snp.salt == null ? cname.getSalt() : snp.salt,
-                                    EType.getDefaults("default_tkt_enctypes")[0],
-                                    null);
-                        } else {
-                            pakey = EncryptionKey.acquireSecretKey(password,
-                                    snp.salt == null ? cname.getSalt() : snp.salt,
-                                    kerr.getEType(),
-                                    snp.params);
-                        }
+                        pakey = EncryptionKey.acquireSecretKey(cname,
+                                password,
+                                paEType,
+                                PAData.getSaltAndParams(
+                                    paEType, kerr.getPA()));
                     }
                     paList = kerr.getPA();  // Update current paList
                 } else {
diff --git a/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java b/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java
index f4dddc1..fa557c3 100644
--- a/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java
+++ b/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,12 +26,9 @@
 package sun.security.krb5;
 
 import java.util.Arrays;
-import java.util.Enumeration;
 import java.util.Hashtable;
-import java.util.NoSuchElementException;
 import java.util.Random;
 import java.util.StringTokenizer;
-import java.util.List;
 
 import javax.naming.*;
 import javax.naming.directory.*;
@@ -80,7 +77,7 @@ class KrbServiceLocator {
             // the initial context constructor. This avoids having the initial
             // context constructor call itself (when processing the URL
             // argument in the getAttributes call).
-            Context ctx = NamingManager.getURLContext("dns", new Hashtable(0));
+            Context ctx = NamingManager.getURLContext("dns", new Hashtable<>(0));
             if (!(ctx instanceof DirContext)) {
                 return null; // cannot create a DNS context
             }
@@ -141,7 +138,7 @@ class KrbServiceLocator {
             // the initial context constructor. This avoids having the initial
             // context constructor call itself (when processing the URL
             // argument in the getAttributes call).
-            Context ctx = NamingManager.getURLContext("dns", new Hashtable(0));
+            Context ctx = NamingManager.getURLContext("dns", new Hashtable<>(0));
             if (!(ctx instanceof DirContext)) {
                 return null; // cannot create a DNS context
             }
@@ -263,7 +260,7 @@ class KrbServiceLocator {
  * See http://www.ietf.org/rfc/rfc2782.txt
  */
 
-static class SrvRecord implements Comparable {
+static class SrvRecord implements Comparable<SrvRecord> {
 
     int priority;
     int weight;
@@ -295,8 +292,7 @@ static class SrvRecord implements Comparable {
      * Sort records in ascending order of priority value. For records with
      * equal priority move those with weight 0 to the top of the list.
      */
-    public int compareTo(Object o) {
-        SrvRecord that = (SrvRecord) o;
+    public int compareTo(SrvRecord that) {
         if (priority > that.priority) {
             return 1; // this > that
         } else if (priority < that.priority) {
diff --git a/jdk/src/share/classes/sun/security/krb5/PrincipalName.java b/jdk/src/share/classes/sun/security/krb5/PrincipalName.java
index 86094d6..d03e2fe 100644
--- a/jdk/src/share/classes/sun/security/krb5/PrincipalName.java
+++ b/jdk/src/share/classes/sun/security/krb5/PrincipalName.java
@@ -35,6 +35,7 @@ import sun.security.krb5.internal.*;
 import sun.security.util.*;
 import java.net.*;
 import java.util.Vector;
+import java.util.Locale;
 import java.io.IOException;
 import java.math.BigInteger;
 import sun.security.krb5.internal.ccache.CCacheOutputStream;
@@ -389,14 +390,14 @@ public class PrincipalName
                     // Looks if canonicalized is a longer format of hostName,
                     // we accept cases like
                     //     bunny -> bunny.rabbit.hole
-                    if (canonicalized.toLowerCase()
-                            .startsWith(hostName.toLowerCase()+".")) {
+                    if (canonicalized.toLowerCase(Locale.ENGLISH).startsWith(
+                                hostName.toLowerCase(Locale.ENGLISH)+".")) {
                         hostName = canonicalized;
                     }
                 } catch (UnknownHostException e) {
                     // no canonicalization, use old
                 }
-                nameParts[1] = hostName.toLowerCase();
+                nameParts[1] = hostName.toLowerCase(Locale.ENGLISH);
             }
             nameStrings = nameParts;
             nameType = type;
diff --git a/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java b/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java
index 30ba326..a8b117e 100644
--- a/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java
+++ b/jdk/src/share/classes/sun/security/krb5/internal/KRBError.java
@@ -99,7 +99,6 @@ public class KRBError implements java.io.Serializable {
     private Checksum eCksum; //optional
 
     private PAData[] pa;    // PA-DATA in eData
-    private int pa_eType;   // The 1st etype appeared in salt-related PAData
 
     private static boolean DEBUG = Krb5.DEBUG;
 
@@ -266,50 +265,8 @@ public class KRBError implements java.io.Serializable {
             DerValue tmp = derPA.data.getDerValue();
             PAData pa_data = new PAData(tmp);
             paList.add(pa_data);
-            int pa_type = pa_data.getType();
-            byte[] pa_value = pa_data.getValue();
             if (DEBUG) {
-                System.out.println(">>>Pre-Authentication Data:");
-                System.out.println("\t PA-DATA type = " + pa_type);
-            }
-
-            switch(pa_type) {
-                case Krb5.PA_ENC_TIMESTAMP:
-                    if (DEBUG) {
-                        System.out.println("\t PA-ENC-TIMESTAMP");
-                    }
-                    break;
-                case Krb5.PA_ETYPE_INFO:
-                    if (pa_value != null) {
-                        DerValue der = new DerValue(pa_value);
-                        while (der.data.available() > 0) {
-                            DerValue value = der.data.getDerValue();
-                            ETypeInfo info = new ETypeInfo(value);
-                            if (pa_eType == 0) pa_eType = info.getEType();
-                            if (DEBUG) {
-                                System.out.println("\t PA-ETYPE-INFO etype = " + info.getEType());
-                                System.out.println("\t PA-ETYPE-INFO salt = " + info.getSalt());
-                            }
-                        }
-                    }
-                    break;
-                case Krb5.PA_ETYPE_INFO2:
-                    if (pa_value != null) {
-                        DerValue der = new DerValue(pa_value);
-                        while (der.data.available() > 0) {
-                            DerValue value = der.data.getDerValue();
-                            ETypeInfo2 info2 = new ETypeInfo2(value);
-                            if (pa_eType == 0) pa_eType = info2.getEType();
-                            if (DEBUG) {
-                                System.out.println("\t PA-ETYPE-INFO2 etype = " + info2.getEType());
-                                System.out.println("\t PA-ETYPE-INFO2 salt = " + info2.getSalt());
-                            }
-                        }
-                    }
-                    break;
-                default:
-                    // Unknown Pre-auth type
-                    break;
+                System.out.println(pa_data);
             }
         }
         pa = paList.toArray(new PAData[paList.size()]);
@@ -340,10 +297,6 @@ public class KRBError implements java.io.Serializable {
         return pa;
     }
 
-    public final int getEType() {
-        return pa_eType;
-    }
-
     public final String getErrorString() {
         return eText;
     }
diff --git a/jdk/src/share/classes/sun/security/krb5/internal/PAData.java b/jdk/src/share/classes/sun/security/krb5/internal/PAData.java
index d32bbc4..573b4f2 100644
--- a/jdk/src/share/classes/sun/security/krb5/internal/PAData.java
+++ b/jdk/src/share/classes/sun/security/krb5/internal/PAData.java
@@ -139,9 +139,56 @@ public class PAData {
     }
 
     /**
+     * Gets the preferred etype from the PAData array.
+     * 1. ETYPE-INFO2-ENTRY with unknown s2kparams ignored
+     * 2. ETYPE-INFO2 preferred to ETYPE-INFO
+     * 3. multiple entries for same etype in one PA-DATA, use the first one.
+     * 4. Multiple PA-DATA with same type, choose the last one
+     * (This is useful when PA-DATAs from KRB-ERROR and AS-REP are combined).
+     * @return the etype, or defaultEType if not enough info
+     * @throws Asn1Exception|IOException if there is an encoding error
+     */
+    public static int getPreferredEType(PAData[] pas, int defaultEType)
+            throws IOException, Asn1Exception {
+
+        if (pas == null) return defaultEType;
+
+        DerValue d = null, d2 = null;
+        for (PAData p: pas) {
+            if (p.getValue() == null) continue;
+            switch (p.getType()) {
+                case Krb5.PA_ETYPE_INFO:
+                    d = new DerValue(p.getValue());
+                    break;
+                case Krb5.PA_ETYPE_INFO2:
+                    d2 = new DerValue(p.getValue());
+                    break;
+            }
+        }
+        if (d2 != null) {
+            while (d2.data.available() > 0) {
+                DerValue value = d2.data.getDerValue();
+                ETypeInfo2 tmp = new ETypeInfo2(value);
+                if (tmp.getParams() == null) {
+                    // we don't support non-null s2kparams
+                    return tmp.getEType();
+                }
+            }
+        }
+        if (d != null) {
+            while (d.data.available() > 0) {
+                DerValue value = d.data.getDerValue();
+                ETypeInfo tmp = new ETypeInfo(value);
+                return tmp.getEType();
+            }
+        }
+        return defaultEType;
+    }
+
+    /**
      * A place to store a pair of salt and s2kparams.
-     * An empty salt is changed to null, to be interopable
-     * with Windows 2000 server.
+     * An empty salt is changed to null, to be interoperable
+     * with Windows 2000 server. This is in fact not correct.
      */
     public static class SaltAndParams {
         public final String salt;
@@ -155,57 +202,120 @@ public class PAData {
 
     /**
      * Fetches salt and s2kparams value for eType in a series of PA-DATAs.
-     * The preference order is PA-ETYPE-INFO2 > PA-ETYPE-INFO > PA-PW-SALT.
-     * If multiple PA-DATA for the same etype appears, use the last one.
+     * 1. ETYPE-INFO2-ENTRY with unknown s2kparams ignored
+     * 2. PA-ETYPE-INFO2 preferred to PA-ETYPE-INFO preferred to PA-PW-SALT.
+     * 3. multiple entries for same etype in one PA-DATA, use the first one.
+     * 4. Multiple PA-DATA with same type, choose the last one
      * (This is useful when PA-DATAs from KRB-ERROR and AS-REP are combined).
-     * @return salt and s2kparams. never null, its field might be null.
+     * @return salt and s2kparams. can be null if not found
      */
     public static SaltAndParams getSaltAndParams(int eType, PAData[] pas)
-            throws Asn1Exception, KrbException {
+            throws Asn1Exception, IOException {
 
-        if (pas == null || pas.length == 0) {
-            return new SaltAndParams(null, null);
-        }
+        if (pas == null) return null;
 
+        DerValue d = null, d2 = null;
         String paPwSalt = null;
-        ETypeInfo2 info2 = null;
-        ETypeInfo info = null;
 
         for (PAData p: pas) {
-            if (p.getValue() != null) {
-                try {
-                    switch (p.getType()) {
-                        case Krb5.PA_PW_SALT:
-                            paPwSalt = new String(p.getValue(),
-                                    KerberosString.MSNAME?"UTF8":"8859_1");
-                            break;
-                        case Krb5.PA_ETYPE_INFO:
-                            DerValue der = new DerValue(p.getValue());
-                            while (der.data.available() > 0) {
-                                DerValue value = der.data.getDerValue();
-                                ETypeInfo tmp = new ETypeInfo(value);
-                                if (tmp.getEType() == eType) info = tmp;
-                            }
-                            break;
-                        case Krb5.PA_ETYPE_INFO2:
-                            der = new DerValue(p.getValue());
-                            while (der.data.available() > 0) {
-                                DerValue value = der.data.getDerValue();
-                                ETypeInfo2 tmp = new ETypeInfo2(value);
-                                if (tmp.getEType() == eType) info2 = tmp;
-                            }
-                            break;
-                    }
-                } catch (IOException ioe) {
-                    // Ignored
+            if (p.getValue() == null) continue;
+            switch (p.getType()) {
+                case Krb5.PA_PW_SALT:
+                    paPwSalt = new String(p.getValue(),
+                            KerberosString.MSNAME?"UTF8":"8859_1");
+                    break;
+                case Krb5.PA_ETYPE_INFO:
+                    d = new DerValue(p.getValue());
+                    break;
+                case Krb5.PA_ETYPE_INFO2:
+                    d2 = new DerValue(p.getValue());
+                    break;
+            }
+        }
+        if (d2 != null) {
+            while (d2.data.available() > 0) {
+                DerValue value = d2.data.getDerValue();
+                ETypeInfo2 tmp = new ETypeInfo2(value);
+                if (tmp.getParams() == null && tmp.getEType() == eType) {
+                    // we don't support non-null s2kparams
+                    return new SaltAndParams(tmp.getSalt(), tmp.getParams());
                 }
             }
         }
-        if (info2 != null) {
-            return new SaltAndParams(info2.getSalt(), info2.getParams());
-        } else if (info != null) {
-            return new SaltAndParams(info.getSalt(), null);
+        if (d != null) {
+            while (d.data.available() > 0) {
+                DerValue value = d.data.getDerValue();
+                ETypeInfo tmp = new ETypeInfo(value);
+                if (tmp.getEType() == eType) {
+                    return new SaltAndParams(tmp.getSalt(), null);
+                }
+            }
+        }
+        if (paPwSalt != null) {
+            return new SaltAndParams(paPwSalt, null);
+        }
+        return null;
+    }
+
+    @Override
+    public String toString(){
+        StringBuilder sb = new StringBuilder();
+        sb.append(">>>Pre-Authentication Data:\n\t PA-DATA type = ")
+                .append(pADataType).append('\n');
+
+        switch(pADataType) {
+            case Krb5.PA_ENC_TIMESTAMP:
+                sb.append("\t PA-ENC-TIMESTAMP");
+                break;
+            case Krb5.PA_ETYPE_INFO:
+                if (pADataValue != null) {
+                    try {
+                        DerValue der = new DerValue(pADataValue);
+                        while (der.data.available() > 0) {
+                            DerValue value = der.data.getDerValue();
+                            ETypeInfo info = new ETypeInfo(value);
+                            sb.append("\t PA-ETYPE-INFO etype = ")
+                                    .append(info.getEType())
+                                    .append(", salt = ")
+                                    .append(info.getSalt())
+                                    .append('\n');
+                        }
+                    } catch (IOException|Asn1Exception e) {
+                        sb.append("\t <Unparseable PA-ETYPE-INFO>\n");
+                    }
+                }
+                break;
+            case Krb5.PA_ETYPE_INFO2:
+                if (pADataValue != null) {
+                    try {
+                        DerValue der = new DerValue(pADataValue);
+                        while (der.data.available() > 0) {
+                            DerValue value = der.data.getDerValue();
+                            ETypeInfo2 info2 = new ETypeInfo2(value);
+                            sb.append("\t PA-ETYPE-INFO2 etype = ")
+                                    .append(info2.getEType())
+                                    .append(", salt = ")
+                                    .append(info2.getSalt())
+                                    .append(", s2kparams = ");
+                            byte[] s2kparams = info2.getParams();
+                            if (s2kparams == null) {
+                                sb.append("null\n");
+                            } else if (s2kparams.length == 0) {
+                                sb.append("empty\n");
+                            } else {
+                                sb.append(new sun.misc.HexDumpEncoder()
+                                        .encodeBuffer(s2kparams));
+                            }
+                        }
+                    } catch (IOException|Asn1Exception e) {
+                        sb.append("\t <Unparseable PA-ETYPE-INFO>\n");
+                    }
+                }
+                break;
+            default:
+                // Unknown Pre-auth type
+                break;
         }
-        return new SaltAndParams(paPwSalt, null);
+        return sb.toString();
     }
 }
diff --git a/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java b/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
index f9b901f..803d0ae 100644
--- a/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
+++ b/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java
@@ -69,9 +69,9 @@ public class FileCredentialsCache extends CredentialsCache
         try {
             FileCredentialsCache fcc = new FileCredentialsCache();
             if (cache == null) {
-                cacheName = fcc.getDefaultCacheName();
+                cacheName = FileCredentialsCache.getDefaultCacheName();
             } else {
-                cacheName = fcc.checkValidation(cache);
+                cacheName = FileCredentialsCache.checkValidation(cache);
             }
             if ((cacheName == null) || !(new File(cacheName)).exists()) {
                 // invalid cache name or the file doesn't exist
@@ -105,7 +105,7 @@ public class FileCredentialsCache extends CredentialsCache
                                                 String name) {
         try {
             FileCredentialsCache fcc = new FileCredentialsCache();
-            cacheName = fcc.checkValidation(name);
+            cacheName = FileCredentialsCache.checkValidation(name);
             if (cacheName == null) {
                 // invalid cache name or the file doesn't exist
                 return null;
@@ -123,7 +123,7 @@ public class FileCredentialsCache extends CredentialsCache
     static synchronized FileCredentialsCache New(PrincipalName principal) {
         try {
             FileCredentialsCache fcc = new FileCredentialsCache();
-            cacheName = fcc.getDefaultCacheName();
+            cacheName = FileCredentialsCache.getDefaultCacheName();
             fcc.init(principal, cacheName);
             return fcc;
         }
diff --git a/jdk/src/share/classes/sun/security/pkcs/ContentInfo.java b/jdk/src/share/classes/sun/security/pkcs/ContentInfo.java
index a798dfc..5439d34 100644
--- a/jdk/src/share/classes/sun/security/pkcs/ContentInfo.java
+++ b/jdk/src/share/classes/sun/security/pkcs/ContentInfo.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -164,9 +164,9 @@ public class ContentInfo {
     }
 
     public byte[] getData() throws IOException {
-        if (contentType.equals(DATA_OID) ||
-            contentType.equals(OLD_DATA_OID) ||
-            contentType.equals(TIMESTAMP_TOKEN_INFO_OID)) {
+        if (contentType.equals((Object)DATA_OID) ||
+            contentType.equals((Object)OLD_DATA_OID) ||
+            contentType.equals((Object)TIMESTAMP_TOKEN_INFO_OID)) {
             if (content == null)
                 return null;
             else
diff --git a/jdk/src/share/classes/sun/security/pkcs/PKCS10.java b/jdk/src/share/classes/sun/security/pkcs/PKCS10.java
index a1c0b9f..6303c8b 100644
--- a/jdk/src/share/classes/sun/security/pkcs/PKCS10.java
+++ b/jdk/src/share/classes/sun/security/pkcs/PKCS10.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
 
 package sun.security.pkcs;
 
-import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
 import java.io.IOException;
 import java.math.BigInteger;
@@ -225,7 +224,7 @@ public class PKCS10 {
          */
         AlgorithmId algId = null;
         try {
-            algId = AlgorithmId.getAlgorithmId(signature.getAlgorithm());
+            algId = AlgorithmId.get(signature.getAlgorithm());
         } catch (NoSuchAlgorithmException nsae) {
             throw new SignatureException(nsae);
         }
diff --git a/jdk/src/share/classes/sun/security/pkcs/PKCS7.java b/jdk/src/share/classes/sun/security/pkcs/PKCS7.java
index f786b80..cd7c1c0 100644
--- a/jdk/src/share/classes/sun/security/pkcs/PKCS7.java
+++ b/jdk/src/share/classes/sun/security/pkcs/PKCS7.java
@@ -179,12 +179,13 @@ public class PKCS7 {
         contentType = contentInfo.contentType;
         DerValue content = contentInfo.getContent();
 
-        if (contentType.equals(ContentInfo.SIGNED_DATA_OID)) {
+        if (contentType.equals((Object)ContentInfo.SIGNED_DATA_OID)) {
             parseSignedData(content);
-        } else if (contentType.equals(ContentInfo.OLD_SIGNED_DATA_OID)) {
+        } else if (contentType.equals((Object)ContentInfo.OLD_SIGNED_DATA_OID)) {
             // This is for backwards compatibility with JDK 1.1.x
             parseOldSignedData(content);
-        } else if (contentType.equals(ContentInfo.NETSCAPE_CERT_SEQUENCE_OID)){
+        } else if (contentType.equals((Object)
+                       ContentInfo.NETSCAPE_CERT_SEQUENCE_OID)){
             parseNetscapeCertChain(content);
         } else {
             throw new ParsingException("content type " + contentType +
@@ -503,9 +504,7 @@ public class PKCS7 {
                         byte[] encoded = certificates[i].getEncoded();
                         implCerts[i] = new X509CertImpl(encoded);
                     } catch (CertificateException ce) {
-                        IOException ie = new IOException(ce.getMessage());
-                        ie.initCause(ce);
-                        throw ie;
+                        throw new IOException(ce);
                     }
                 }
             }
@@ -527,9 +526,7 @@ public class PKCS7 {
                         byte[] encoded = crl.getEncoded();
                         implCRLs.add(new X509CRLImpl(encoded));
                     } catch (CRLException ce) {
-                        IOException ie = new IOException(ce.getMessage());
-                        ie.initCause(ce);
-                        throw ie;
+                        throw new IOException(ce);
                     }
                 }
             }
@@ -588,7 +585,7 @@ public class PKCS7 {
                 intResult.addElement(signerInfo);
             }
         }
-        if (intResult.size() != 0) {
+        if (!intResult.isEmpty()) {
 
             SignerInfo[] result = new SignerInfo[intResult.size()];
             intResult.copyInto(result);
diff --git a/jdk/src/share/classes/sun/security/pkcs/PKCS8Key.java b/jdk/src/share/classes/sun/security/pkcs/PKCS8Key.java
index 6405c9f..c53b421 100644
--- a/jdk/src/share/classes/sun/security/pkcs/PKCS8Key.java
+++ b/jdk/src/share/classes/sun/security/pkcs/PKCS8Key.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -208,7 +208,7 @@ public class PKCS8Key implements PrivateKey {
                 throw new InstantiationException();
             }
 
-            Class keyClass = null;
+            Class<?> keyClass = null;
             try {
                 keyClass = Class.forName(classname);
             } catch (ClassNotFoundException e) {
@@ -342,9 +342,9 @@ public class PKCS8Key implements PrivateKey {
 
 
             BigInteger version = val.data.getBigInteger();
-            if (!version.equals(this.version)) {
+            if (!version.equals(PKCS8Key.version)) {
                 throw new IOException("version mismatch: (supported: " +
-                                      Debug.toHexString(this.version) +
+                                      Debug.toHexString(PKCS8Key.version) +
                                       ", parsed: " +
                                       Debug.toHexString(version));
             }
diff --git a/jdk/src/share/classes/sun/security/pkcs/PKCS9Attribute.java b/jdk/src/share/classes/sun/security/pkcs/PKCS9Attribute.java
index fb1862f..64ead04 100644
--- a/jdk/src/share/classes/sun/security/pkcs/PKCS9Attribute.java
+++ b/jdk/src/share/classes/sun/security/pkcs/PKCS9Attribute.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -320,11 +320,11 @@ public class PKCS9Attribute implements DerEncoder {
         {new Byte(DerValue.tag_Sequence)}     // SignatureTimestampToken
     };
 
-    private static final Class[] VALUE_CLASSES = new Class[18];
+    private static final Class<?>[] VALUE_CLASSES = new Class<?>[18];
 
     static {
         try {
-            Class str = Class.forName("[Ljava.lang.String;");
+            Class<?> str = Class.forName("[Ljava.lang.String;");
 
             VALUE_CLASSES[0] = null;  // not used
             VALUE_CLASSES[1] = str;   // EMailAddress
diff --git a/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java b/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java
index b246887..5a4a1a3 100644
--- a/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java
+++ b/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java
@@ -40,7 +40,6 @@ import sun.security.util.*;
 import sun.security.x509.AlgorithmId;
 import sun.security.x509.X500Name;
 import sun.security.x509.KeyUsageExtension;
-import sun.security.x509.PKIXExtensions;
 import sun.misc.HexDumpEncoder;
 
 /**
@@ -306,7 +305,7 @@ public class SignerInfo implements DerEncoder {
                        authenticatedAttributes.getAttributeValue(
                          PKCS9Attribute.CONTENT_TYPE_OID);
                 if (contentType == null ||
-                    !contentType.equals(content.contentType))
+                    !contentType.equals((Object)content.contentType))
                     return null;  // contentType does not match, bad SignerInfo
 
                 // now, check message digest
@@ -377,11 +376,11 @@ public class SignerInfo implements DerEncoder {
                                                  + "extension");
                 }
 
-                boolean digSigAllowed = ((Boolean)keyUsage.get(
-                        KeyUsageExtension.DIGITAL_SIGNATURE)).booleanValue();
+                boolean digSigAllowed = keyUsage.get(
+                        KeyUsageExtension.DIGITAL_SIGNATURE).booleanValue();
 
-                boolean nonRepuAllowed = ((Boolean)keyUsage.get(
-                        KeyUsageExtension.NON_REPUDIATION)).booleanValue();
+                boolean nonRepuAllowed = keyUsage.get(
+                        KeyUsageExtension.NON_REPUDIATION).booleanValue();
 
                 if (!digSigAllowed && !nonRepuAllowed) {
                     throw new SignatureException("Key usage restricted: "
diff --git a/jdk/src/share/classes/sun/security/pkcs11/Config.java b/jdk/src/share/classes/sun/security/pkcs11/Config.java
index 46a0075..dbed2cf 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/Config.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/Config.java
@@ -552,12 +552,13 @@ final class Config {
 
     private boolean parseBoolean() throws IOException {
         String val = parseWord();
-        if (val.equals("true")) {
-            return true;
-        } else if (val.equals("false")) {
-            return false;
-        } else {
-            throw excToken("Expected boolean value, read:");
+        switch (val) {
+            case "true":
+                return true;
+            case "false":
+                return false;
+            default:
+                throw excToken("Expected boolean value, read:");
         }
     }
 
@@ -886,14 +887,15 @@ final class Config {
 
     private String parseOperation() throws IOException {
         String op = parseWord();
-        if (op.equals("*")) {
-            return TemplateManager.O_ANY;
-        } else if (op.equals("generate")) {
-            return TemplateManager.O_GENERATE;
-        } else if (op.equals("import")) {
-            return TemplateManager.O_IMPORT;
-        } else {
-            throw excLine("Unknown operation " + op);
+        switch (op) {
+            case "*":
+                return TemplateManager.O_ANY;
+            case "generate":
+                return TemplateManager.O_GENERATE;
+            case "import":
+                return TemplateManager.O_IMPORT;
+            default:
+                throw excLine("Unknown operation " + op);
         }
     }
 
@@ -978,6 +980,7 @@ final class Config {
 }
 
 class ConfigurationException extends IOException {
+    private static final long serialVersionUID = 254492758807673194L;
     ConfigurationException(String msg) {
         super(msg);
     }
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11Cipher.java b/jdk/src/share/classes/sun/security/pkcs11/P11Cipher.java
index 5257859..b6e3788 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11Cipher.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11Cipher.java
@@ -258,7 +258,7 @@ final class P11Cipher extends CipherSpi {
 
     // see JCE spec
     protected byte[] engineGetIV() {
-        return (iv == null) ? null : (byte[]) iv.clone();
+        return (iv == null) ? null : iv.clone();
     }
 
     // see JCE spec
@@ -315,7 +315,7 @@ final class P11Cipher extends CipherSpi {
         byte[] ivValue;
         if (params != null) {
             try {
-                IvParameterSpec ivSpec = (IvParameterSpec)
+                IvParameterSpec ivSpec =
                         params.getParameterSpec(IvParameterSpec.class);
                 ivValue = ivSpec.getIV();
             } catch (InvalidParameterSpecException e) {
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11DHKeyFactory.java b/jdk/src/share/classes/sun/security/pkcs11/P11DHKeyFactory.java
index 3c4c024..03a74b8 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11DHKeyFactory.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11DHKeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -212,8 +212,8 @@ final class P11DHKeyFactory extends P11KeyFactory {
         }
     }
 
-    KeySpec implGetPublicKeySpec(P11Key key, Class keySpec, Session[] session)
-            throws PKCS11Exception, InvalidKeySpecException {
+    <T extends KeySpec> T implGetPublicKeySpec(P11Key key, Class<T> keySpec,
+            Session[] session) throws PKCS11Exception, InvalidKeySpecException {
         if (DHPublicKeySpec.class.isAssignableFrom(keySpec)) {
             session[0] = token.getObjSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -227,15 +227,15 @@ final class P11DHKeyFactory extends P11KeyFactory {
                 attributes[1].getBigInteger(),
                 attributes[2].getBigInteger()
             );
-            return spec;
+            return keySpec.cast(spec);
         } else { // X.509 handled in superclass
             throw new InvalidKeySpecException("Only DHPublicKeySpec and "
                 + "X509EncodedKeySpec supported for DH public keys");
         }
     }
 
-    KeySpec implGetPrivateKeySpec(P11Key key, Class keySpec, Session[] session)
-            throws PKCS11Exception, InvalidKeySpecException {
+    <T extends KeySpec> T implGetPrivateKeySpec(P11Key key, Class<T> keySpec,
+            Session[] session) throws PKCS11Exception, InvalidKeySpecException {
         if (DHPrivateKeySpec.class.isAssignableFrom(keySpec)) {
             session[0] = token.getObjSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -249,7 +249,7 @@ final class P11DHKeyFactory extends P11KeyFactory {
                 attributes[1].getBigInteger(),
                 attributes[2].getBigInteger()
             );
-            return spec;
+            return keySpec.cast(spec);
         } else { // PKCS#8 handled in superclass
             throw new InvalidKeySpecException("Only DHPrivateKeySpec "
                 + "and PKCS8EncodedKeySpec supported for DH private keys");
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11DSAKeyFactory.java b/jdk/src/share/classes/sun/security/pkcs11/P11DSAKeyFactory.java
index 1c71667..c7577b0 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11DSAKeyFactory.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11DSAKeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -208,8 +208,8 @@ final class P11DSAKeyFactory extends P11KeyFactory {
         }
     }
 
-    KeySpec implGetPublicKeySpec(P11Key key, Class keySpec, Session[] session)
-            throws PKCS11Exception, InvalidKeySpecException {
+    <T extends KeySpec> T implGetPublicKeySpec(P11Key key, Class<T> keySpec,
+            Session[] session) throws PKCS11Exception, InvalidKeySpecException {
         if (DSAPublicKeySpec.class.isAssignableFrom(keySpec)) {
             session[0] = token.getObjSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -225,15 +225,15 @@ final class P11DSAKeyFactory extends P11KeyFactory {
                 attributes[2].getBigInteger(),
                 attributes[3].getBigInteger()
             );
-            return spec;
+            return keySpec.cast(spec);
         } else { // X.509 handled in superclass
             throw new InvalidKeySpecException("Only DSAPublicKeySpec and "
                 + "X509EncodedKeySpec supported for DSA public keys");
         }
     }
 
-    KeySpec implGetPrivateKeySpec(P11Key key, Class keySpec, Session[] session)
-            throws PKCS11Exception, InvalidKeySpecException {
+    <T extends KeySpec> T implGetPrivateKeySpec(P11Key key, Class<T> keySpec,
+            Session[] session) throws PKCS11Exception, InvalidKeySpecException {
         if (DSAPrivateKeySpec.class.isAssignableFrom(keySpec)) {
             session[0] = token.getObjSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -249,7 +249,7 @@ final class P11DSAKeyFactory extends P11KeyFactory {
                 attributes[2].getBigInteger(),
                 attributes[3].getBigInteger()
             );
-            return spec;
+            return keySpec.cast(spec);
         } else { // PKCS#8 handled in superclass
             throw new InvalidKeySpecException("Only DSAPrivateKeySpec "
                 + "and PKCS8EncodedKeySpec supported for DSA private keys");
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java b/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java
index 08c0768..d44231a 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -253,8 +253,8 @@ final class P11ECKeyFactory extends P11KeyFactory {
         }
     }
 
-    KeySpec implGetPublicKeySpec(P11Key key, Class keySpec, Session[] session)
-            throws PKCS11Exception, InvalidKeySpecException {
+    <T extends KeySpec> T implGetPublicKeySpec(P11Key key, Class<T> keySpec,
+            Session[] session) throws PKCS11Exception, InvalidKeySpecException {
         if (ECPublicKeySpec.class.isAssignableFrom(keySpec)) {
             session[0] = token.getObjSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -265,7 +265,7 @@ final class P11ECKeyFactory extends P11KeyFactory {
             try {
                 ECParameterSpec params = decodeParameters(attributes[1].getByteArray());
                 ECPoint point = decodePoint(attributes[0].getByteArray(), params.getCurve());
-                return new ECPublicKeySpec(point, params);
+                return keySpec.cast(new ECPublicKeySpec(point, params));
             } catch (IOException e) {
                 throw new InvalidKeySpecException("Could not parse key", e);
             }
@@ -275,8 +275,8 @@ final class P11ECKeyFactory extends P11KeyFactory {
         }
     }
 
-    KeySpec implGetPrivateKeySpec(P11Key key, Class keySpec, Session[] session)
-            throws PKCS11Exception, InvalidKeySpecException {
+    <T extends KeySpec> T implGetPrivateKeySpec(P11Key key, Class<T> keySpec,
+            Session[] session) throws PKCS11Exception, InvalidKeySpecException {
         if (ECPrivateKeySpec.class.isAssignableFrom(keySpec)) {
             session[0] = token.getObjSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -286,7 +286,8 @@ final class P11ECKeyFactory extends P11KeyFactory {
             token.p11.C_GetAttributeValue(session[0].id(), key.keyID, attributes);
             try {
                 ECParameterSpec params = decodeParameters(attributes[1].getByteArray());
-                return new ECPrivateKeySpec(attributes[0].getBigInteger(), params);
+                return keySpec.cast(
+                    new ECPrivateKeySpec(attributes[0].getBigInteger(), params));
             } catch (IOException e) {
                 throw new InvalidKeySpecException("Could not parse key", e);
             }
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11Key.java b/jdk/src/share/classes/sun/security/pkcs11/P11Key.java
index 9380dc1..54ccd32 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11Key.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11Key.java
@@ -128,7 +128,7 @@ abstract class P11Key implements Key {
     // see JCA spec
     public final byte[] getEncoded() {
         byte[] b = getEncodedInternal();
-        return (b == null) ? null : (byte[])b.clone();
+        return (b == null) ? null : b.clone();
     }
 
     abstract byte[] getEncodedInternal();
@@ -299,21 +299,22 @@ abstract class P11Key implements Key {
     // we assume that all components of public keys are always accessible
     static PublicKey publicKey(Session session, long keyID, String algorithm,
             int keyLength, CK_ATTRIBUTE[] attributes) {
-        if (algorithm.equals("RSA")) {
-            return new P11RSAPublicKey
-                (session, keyID, algorithm, keyLength, attributes);
-        } else if (algorithm.equals("DSA")) {
-            return new P11DSAPublicKey
-                (session, keyID, algorithm, keyLength, attributes);
-        } else if (algorithm.equals("DH")) {
-            return new P11DHPublicKey
-                (session, keyID, algorithm, keyLength, attributes);
-        } else if (algorithm.equals("EC")) {
-            return new P11ECPublicKey
-                (session, keyID, algorithm, keyLength, attributes);
-        } else {
-            throw new ProviderException
-                ("Unknown public key algorithm " + algorithm);
+        switch (algorithm) {
+            case "RSA":
+                return new P11RSAPublicKey
+                    (session, keyID, algorithm, keyLength, attributes);
+            case "DSA":
+                return new P11DSAPublicKey
+                    (session, keyID, algorithm, keyLength, attributes);
+            case "DH":
+                return new P11DHPublicKey
+                    (session, keyID, algorithm, keyLength, attributes);
+            case "EC":
+                return new P11ECPublicKey
+                    (session, keyID, algorithm, keyLength, attributes);
+            default:
+                throw new ProviderException
+                    ("Unknown public key algorithm " + algorithm);
         }
     }
 
@@ -328,42 +329,43 @@ abstract class P11Key implements Key {
             return new P11PrivateKey
                 (session, keyID, algorithm, keyLength, attributes);
         } else {
-            if (algorithm.equals("RSA")) {
-                // XXX better test for RSA CRT keys (single getAttributes() call)
-                // we need to determine whether this is a CRT key
-                // see if we can obtain the public exponent
-                // this should also be readable for sensitive/extractable keys
-                CK_ATTRIBUTE[] attrs2 = new CK_ATTRIBUTE[] {
-                    new CK_ATTRIBUTE(CKA_PUBLIC_EXPONENT),
-                };
-                boolean crtKey;
-                try {
-                    session.token.p11.C_GetAttributeValue
-                        (session.id(), keyID, attrs2);
-                    crtKey = (attrs2[0].pValue instanceof byte[]);
-                } catch (PKCS11Exception e) {
-                    // ignore, assume not available
-                    crtKey = false;
-                }
-                if (crtKey) {
-                    return new P11RSAPrivateKey
+            switch (algorithm) {
+                case "RSA":
+                    // XXX better test for RSA CRT keys (single getAttributes() call)
+                    // we need to determine whether this is a CRT key
+                    // see if we can obtain the public exponent
+                    // this should also be readable for sensitive/extractable keys
+                    CK_ATTRIBUTE[] attrs2 = new CK_ATTRIBUTE[] {
+                        new CK_ATTRIBUTE(CKA_PUBLIC_EXPONENT),
+                    };
+                    boolean crtKey;
+                    try {
+                        session.token.p11.C_GetAttributeValue
+                            (session.id(), keyID, attrs2);
+                        crtKey = (attrs2[0].pValue instanceof byte[]);
+                    } catch (PKCS11Exception e) {
+                        // ignore, assume not available
+                        crtKey = false;
+                    }
+                    if (crtKey) {
+                        return new P11RSAPrivateKey
+                                (session, keyID, algorithm, keyLength, attributes);
+                    } else {
+                        return new P11RSAPrivateNonCRTKey
+                                (session, keyID, algorithm, keyLength, attributes);
+                    }
+                case "DSA":
+                    return new P11DSAPrivateKey
                             (session, keyID, algorithm, keyLength, attributes);
-                } else {
-                    return new P11RSAPrivateNonCRTKey
+                case "DH":
+                    return new P11DHPrivateKey
                             (session, keyID, algorithm, keyLength, attributes);
-                }
-            } else if (algorithm.equals("DSA")) {
-                return new P11DSAPrivateKey
-                        (session, keyID, algorithm, keyLength, attributes);
-            } else if (algorithm.equals("DH")) {
-                return new P11DHPrivateKey
-                        (session, keyID, algorithm, keyLength, attributes);
-            } else if (algorithm.equals("EC")) {
-                return new P11ECPrivateKey
-                        (session, keyID, algorithm, keyLength, attributes);
-            } else {
-                throw new ProviderException
-                        ("Unknown private key algorithm " + algorithm);
+                case "EC":
+                    return new P11ECPrivateKey
+                            (session, keyID, algorithm, keyLength, attributes);
+                default:
+                    throw new ProviderException
+                            ("Unknown private key algorithm " + algorithm);
             }
         }
     }
@@ -371,6 +373,8 @@ abstract class P11Key implements Key {
     // class for sensitive and unextractable private keys
     private static final class P11PrivateKey extends P11Key
                                                 implements PrivateKey {
+        private static final long serialVersionUID = -2138581185214187615L;
+
         P11PrivateKey(Session session, long keyID, String algorithm,
                 int keyLength, CK_ATTRIBUTE[] attributes) {
             super(PRIVATE, session, keyID, algorithm, keyLength, attributes);
@@ -387,6 +391,7 @@ abstract class P11Key implements Key {
     }
 
     private static class P11SecretKey extends P11Key implements SecretKey {
+        private static final long serialVersionUID = -7828241727014329084L;
         private volatile byte[] encoded;
         P11SecretKey(Session session, long keyID, String algorithm,
                 int keyLength, CK_ATTRIBUTE[] attributes) {
@@ -434,6 +439,8 @@ abstract class P11Key implements Key {
 
     private static class P11TlsMasterSecretKey extends P11SecretKey
             implements TlsMasterSecret {
+        private static final long serialVersionUID = -1318560923770573441L;
+
         private final int majorVersion, minorVersion;
         P11TlsMasterSecretKey(Session session, long keyID, String algorithm,
                 int keyLength, CK_ATTRIBUTE[] attributes, int major, int minor) {
@@ -453,6 +460,8 @@ abstract class P11Key implements Key {
     // RSA CRT private key
     private static final class P11RSAPrivateKey extends P11Key
                 implements RSAPrivateCrtKey {
+        private static final long serialVersionUID = 9215872438913515220L;
+
         private BigInteger n, e, d, p, q, pe, qe, coeff;
         private byte[] encoded;
         P11RSAPrivateKey(Session session, long keyID, String algorithm,
@@ -563,6 +572,8 @@ abstract class P11Key implements Key {
     // RSA non-CRT private key
     private static final class P11RSAPrivateNonCRTKey extends P11Key
                 implements RSAPrivateKey {
+        private static final long serialVersionUID = 1137764983777411481L;
+
         private BigInteger n, d;
         private byte[] encoded;
         P11RSAPrivateNonCRTKey(Session session, long keyID, String algorithm,
@@ -624,6 +635,8 @@ abstract class P11Key implements Key {
 
     private static final class P11RSAPublicKey extends P11Key
                                                 implements RSAPublicKey {
+        private static final long serialVersionUID = -826726289023854455L;
+
         private BigInteger n, e;
         private byte[] encoded;
         P11RSAPublicKey(Session session, long keyID, String algorithm,
@@ -676,6 +689,8 @@ abstract class P11Key implements Key {
 
     private static final class P11DSAPublicKey extends P11Key
                                                 implements DSAPublicKey {
+        private static final long serialVersionUID = 5989753793316396637L;
+
         private BigInteger y;
         private DSAParams params;
         private byte[] encoded;
@@ -737,6 +752,8 @@ abstract class P11Key implements Key {
 
     private static final class P11DSAPrivateKey extends P11Key
                                                 implements DSAPrivateKey {
+        private static final long serialVersionUID = 3119629997181999389L;
+
         private BigInteger x;
         private DSAParams params;
         private byte[] encoded;
@@ -798,6 +815,8 @@ abstract class P11Key implements Key {
 
     private static final class P11DHPrivateKey extends P11Key
                                                 implements DHPrivateKey {
+        private static final long serialVersionUID = -1698576167364928838L;
+
         private BigInteger x;
         private DHParameterSpec params;
         private byte[] encoded;
@@ -860,6 +879,8 @@ abstract class P11Key implements Key {
 
     private static final class P11DHPublicKey extends P11Key
                                                 implements DHPublicKey {
+        static final long serialVersionUID = -598383872153843657L;
+
         private BigInteger y;
         private DHParameterSpec params;
         private byte[] encoded;
@@ -922,6 +943,8 @@ abstract class P11Key implements Key {
 
     private static final class P11ECPrivateKey extends P11Key
                                                 implements ECPrivateKey {
+        private static final long serialVersionUID = -7786054399510515515L;
+
         private BigInteger s;
         private ECParameterSpec params;
         private byte[] encoded;
@@ -982,6 +1005,8 @@ abstract class P11Key implements Key {
 
     private static final class P11ECPublicKey extends P11Key
                                                 implements ECPublicKey {
+        private static final long serialVersionUID = -6371481375154806089L;
+
         private ECPoint w;
         private ECParameterSpec params;
         private byte[] encoded;
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java b/jdk/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java
index 2183a7d..1ebe17b 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -143,8 +143,8 @@ final class P11KeyAgreement extends KeyAgreementSpi {
             // just in case not, attempt conversion
             P11DHKeyFactory kf = new P11DHKeyFactory(token, "DH");
             try {
-                DHPublicKeySpec spec = (DHPublicKeySpec)kf.engineGetKeySpec
-                                                (key, DHPublicKeySpec.class);
+                DHPublicKeySpec spec = kf.engineGetKeySpec(
+                        key, DHPublicKeySpec.class);
                 y = spec.getY();
                 p = spec.getP();
                 g = spec.getG();
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11KeyFactory.java b/jdk/src/share/classes/sun/security/pkcs11/P11KeyFactory.java
index becf2f0..0442203 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11KeyFactory.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11KeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@ import java.security.*;
 import java.security.spec.*;
 
 import sun.security.pkcs11.wrapper.PKCS11Exception;
-import static sun.security.pkcs11.wrapper.PKCS11Constants.*;
 
 /**
  * KeyFactory base class. Provides common infrastructure for the RSA, DSA,
@@ -77,7 +76,7 @@ abstract class P11KeyFactory extends KeyFactorySpi {
         if (PKCS8EncodedKeySpec.class.isAssignableFrom(keySpec)
                 || X509EncodedKeySpec.class.isAssignableFrom(keySpec)) {
             try {
-                return (T)implGetSoftwareFactory().getKeySpec(key, keySpec);
+                return implGetSoftwareFactory().getKeySpec(key, keySpec);
             } catch (GeneralSecurityException e) {
                 throw new InvalidKeySpecException("Could not encode key", e);
             }
@@ -92,9 +91,9 @@ abstract class P11KeyFactory extends KeyFactorySpi {
         Session[] session = new Session[1];
         try {
             if (p11Key.isPublic()) {
-                return (T)implGetPublicKeySpec(p11Key, keySpec, session);
+                return implGetPublicKeySpec(p11Key, keySpec, session);
             } else {
-                return (T)implGetPrivateKeySpec(p11Key, keySpec, session);
+                return implGetPrivateKeySpec(p11Key, keySpec, session);
             }
         } catch (PKCS11Exception e) {
             throw new InvalidKeySpecException("Could not generate KeySpec", e);
@@ -138,10 +137,10 @@ abstract class P11KeyFactory extends KeyFactorySpi {
         }
     }
 
-    abstract KeySpec implGetPublicKeySpec(P11Key key, Class keySpec,
+    abstract <T extends KeySpec> T  implGetPublicKeySpec(P11Key key, Class<T> keySpec,
             Session[] session) throws PKCS11Exception, InvalidKeySpecException;
 
-    abstract KeySpec implGetPrivateKeySpec(P11Key key, Class keySpec,
+    abstract <T extends KeySpec> T  implGetPrivateKeySpec(P11Key key, Class<T> keySpec,
             Session[] session) throws PKCS11Exception, InvalidKeySpecException;
 
     abstract PublicKey implTranslatePublicKey(PublicKey key)
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java b/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java
index 9cd7d4b..cbca68f 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,12 +34,9 @@ import java.io.ByteArrayInputStream;
 import java.io.UnsupportedEncodingException;
 
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
 import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.HashMap;
@@ -48,7 +45,6 @@ import java.util.Set;
 import java.security.*;
 import java.security.KeyStore.*;
 
-import java.security.cert.CertPath;
 import java.security.cert.Certificate;
 import java.security.cert.X509Certificate;
 import java.security.cert.CertificateFactory;
@@ -60,7 +56,6 @@ import java.security.spec.*;
 import javax.crypto.SecretKey;
 import javax.crypto.interfaces.*;
 
-import javax.security.auth.Subject;
 import javax.security.auth.x500.X500Principal;
 import javax.security.auth.login.LoginException;
 import javax.security.auth.callback.Callback;
@@ -69,7 +64,6 @@ import javax.security.auth.callback.CallbackHandler;
 import javax.security.auth.callback.UnsupportedCallbackException;
 
 import sun.security.util.Debug;
-import sun.security.x509.SerialNumber;
 import sun.security.util.DerValue;
 
 import sun.security.ec.ECParameters;
@@ -235,7 +229,7 @@ final class P11KeyStore extends KeyStoreSpi {
 
         private PasswordCallbackHandler(char[] password) {
             if (password != null) {
-                this.password = (char[])password.clone();
+                this.password = password.clone();
             }
         }
 
@@ -331,10 +325,8 @@ final class P11KeyStore extends KeyStoreSpi {
 
             // did not find anything
             return null;
-        } catch (PKCS11Exception pe) {
-            throw new ProviderException(pe);
-        } catch (KeyStoreException ke) {
-            throw new ProviderException(ke);
+        } catch (PKCS11Exception | KeyStoreException e) {
+            throw new ProviderException(e);
         } finally {
             token.releaseSession(session);
         }
@@ -458,10 +450,8 @@ final class P11KeyStore extends KeyStoreSpi {
             } else if (key instanceof SecretKey) {
                 entry = new KeyStore.SecretKeyEntry((SecretKey)key);
             }
-        } catch (NullPointerException npe) {
-            throw new KeyStoreException(npe);
-        } catch (IllegalArgumentException iae) {
-            throw new KeyStoreException(iae);
+        } catch (NullPointerException | IllegalArgumentException e) {
+            throw new KeyStoreException(e);
         }
         engineSetEntry(alias, entry, new KeyStore.PasswordProtection(password));
     }
@@ -566,10 +556,8 @@ final class P11KeyStore extends KeyStoreSpi {
                 } else {
                     throw new KeyStoreException("unexpected entry type");
                 }
-            } catch (PKCS11Exception pe) {
-                throw new KeyStoreException(pe);
-            } catch (CertificateException ce) {
-                throw new KeyStoreException(ce);
+            } catch (PKCS11Exception | CertificateException e) {
+                throw new KeyStoreException(e);
             }
         }
         return false;
@@ -770,18 +758,8 @@ final class P11KeyStore extends KeyStoreSpi {
             if (debug != null) {
                 dumpTokenMap();
             }
-        } catch (LoginException le) {
-            IOException ioe = new IOException("load failed");
-            ioe.initCause(le);
-            throw ioe;
-        } catch (KeyStoreException kse) {
-            IOException ioe = new IOException("load failed");
-            ioe.initCause(kse);
-            throw ioe;
-        } catch (PKCS11Exception pe) {
-            IOException ioe = new IOException("load failed");
-            ioe.initCause(pe);
-            throw ioe;
+        } catch (LoginException | KeyStoreException | PKCS11Exception e) {
+            throw new IOException("load failed", e);
         }
     }
 
@@ -860,11 +838,7 @@ final class P11KeyStore extends KeyStoreSpi {
             if (debug != null) {
                 dumpTokenMap();
             }
-        } catch (LoginException e) {
-            throw new IOException("load failed", e);
-        } catch (KeyStoreException e) {
-            throw new IOException("load failed", e);
-        } catch (PKCS11Exception e) {
+        } catch (LoginException | KeyStoreException | PKCS11Exception e) {
             throw new IOException("load failed", e);
         }
     }
@@ -1054,9 +1028,7 @@ final class P11KeyStore extends KeyStoreSpi {
                 storeCert(alias, xcert);
                 module.setTrust(token, xcert);
                 mapLabels();
-            } catch (PKCS11Exception e) {
-                throw new KeyStoreException(e);
-            } catch (CertificateException e) {
+            } catch (PKCS11Exception | CertificateException e) {
                 throw new KeyStoreException(e);
             }
 
@@ -1118,10 +1090,8 @@ final class P11KeyStore extends KeyStoreSpi {
                         storePkey(alias, (KeyStore.PrivateKeyEntry)entry);
                     }
 
-                } catch (PKCS11Exception pe) {
+                } catch (PKCS11Exception | CertificateException pe) {
                     throw new KeyStoreException(pe);
-                } catch (CertificateException ce) {
-                    throw new KeyStoreException(ce);
                 }
 
             } else if (entry instanceof KeyStore.SecretKeyEntry) {
@@ -1158,10 +1128,8 @@ final class P11KeyStore extends KeyStoreSpi {
                 if (debug != null) {
                     dumpTokenMap();
                 }
-            } catch (PKCS11Exception pe) {
+            } catch (PKCS11Exception | CertificateException pe) {
                 throw new KeyStoreException(pe);
-            } catch (CertificateException ce) {
-                throw new KeyStoreException(ce);
             }
         }
 
@@ -1870,7 +1838,7 @@ final class P11KeyStore extends KeyStoreSpi {
                 debug.println("creating RSAPrivateKey attrs");
             }
 
-            RSAPrivateKey rsaKey = (RSAPrivateKey)key;
+            RSAPrivateKey rsaKey = key;
 
             attrs = new CK_ATTRIBUTE[] {
                 ATTR_TOKEN_TRUE,
@@ -2662,7 +2630,7 @@ final class P11KeyStore extends KeyStoreSpi {
     private void dumpTokenMap() {
         Set<String> aliases = aliasMap.keySet();
         System.out.println("Token Alias Map:");
-        if (aliases.size() == 0) {
+        if (aliases.isEmpty()) {
             System.out.println("  [empty]");
         } else {
             for (String s : aliases) {
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java b/jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java
index 963ac8a..0c75ac9 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -130,10 +130,7 @@ final class P11RSAKeyFactory extends P11KeyFactory {
                 rs.getModulus(),
                 rs.getPublicExponent()
             );
-        } catch (PKCS11Exception e) {
-            throw new InvalidKeySpecException
-                ("Could not create RSA public key", e);
-        } catch (InvalidKeyException e) {
+        } catch (PKCS11Exception | InvalidKeyException e) {
             throw new InvalidKeySpecException
                 ("Could not create RSA public key", e);
         }
@@ -177,10 +174,7 @@ final class P11RSAKeyFactory extends P11KeyFactory {
                 throw new InvalidKeySpecException("Only RSAPrivate(Crt)KeySpec "
                     + "and PKCS8EncodedKeySpec supported for RSA private keys");
             }
-        } catch (PKCS11Exception e) {
-            throw new InvalidKeySpecException
-                ("Could not create RSA private key", e);
-        } catch (InvalidKeyException e) {
+        } catch (PKCS11Exception | InvalidKeyException e) {
             throw new InvalidKeySpecException
                 ("Could not create RSA private key", e);
         }
@@ -260,8 +254,8 @@ final class P11RSAKeyFactory extends P11KeyFactory {
         }
     }
 
-    KeySpec implGetPublicKeySpec(P11Key key, Class keySpec, Session[] session)
-            throws PKCS11Exception, InvalidKeySpecException {
+    <T extends KeySpec> T implGetPublicKeySpec(P11Key key, Class<T> keySpec,
+            Session[] session) throws PKCS11Exception, InvalidKeySpecException {
         if (RSAPublicKeySpec.class.isAssignableFrom(keySpec)) {
             session[0] = token.getObjSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -273,15 +267,15 @@ final class P11RSAKeyFactory extends P11KeyFactory {
                 attributes[0].getBigInteger(),
                 attributes[1].getBigInteger()
             );
-            return spec;
+            return keySpec.cast(spec);
         } else { // X.509 handled in superclass
             throw new InvalidKeySpecException("Only RSAPublicKeySpec and "
                 + "X509EncodedKeySpec supported for RSA public keys");
         }
     }
 
-    KeySpec implGetPrivateKeySpec(P11Key key, Class keySpec, Session[] session)
-            throws PKCS11Exception, InvalidKeySpecException {
+    <T extends KeySpec> T implGetPrivateKeySpec(P11Key key, Class<T> keySpec,
+            Session[] session) throws PKCS11Exception, InvalidKeySpecException {
         if (RSAPrivateCrtKeySpec.class.isAssignableFrom(keySpec)) {
             session[0] = token.getObjSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -305,7 +299,7 @@ final class P11RSAKeyFactory extends P11KeyFactory {
                 attributes[6].getBigInteger(),
                 attributes[7].getBigInteger()
             );
-            return spec;
+            return keySpec.cast(spec);
         } else if (RSAPrivateKeySpec.class.isAssignableFrom(keySpec)) {
             session[0] = token.getObjSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -317,7 +311,7 @@ final class P11RSAKeyFactory extends P11KeyFactory {
                 attributes[0].getBigInteger(),
                 attributes[1].getBigInteger()
             );
-            return spec;
+            return keySpec.cast(spec);
         } else { // PKCS#8 handled in superclass
             throw new InvalidKeySpecException("Only RSAPrivate(Crt)KeySpec "
                 + "and PKCS8EncodedKeySpec supported for RSA private keys");
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java b/jdk/src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java
index 5a5a610..f4306b3 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -319,7 +319,7 @@ final class P11SecretKeyFactory extends SecretKeyFactorySpi {
     }
 
     // see JCE spec
-    protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec)
+    protected KeySpec engineGetKeySpec(SecretKey key, Class<?> keySpec)
             throws InvalidKeySpecException {
         token.ensureValid();
         if ((key == null) || (keySpec == null)) {
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java b/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java
index 7489d3f..009c263 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -396,7 +396,7 @@ final class P11Signature extends SignatureSpi {
         ensureInitialized();
         switch (type) {
         case T_UPDATE:
-            buffer[0] = (byte)b;
+            buffer[0] = b;
             engineUpdate(buffer, 0, 1);
             break;
         case T_DIGEST:
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java b/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java
index e5be541..8f75b1e 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -98,6 +98,8 @@ final class P11TlsPrfGenerator extends KeyGeneratorSpi {
 
     // SecretKeySpec does not allow zero length keys, so we define our own class.
     private static final SecretKey NULL_KEY = new SecretKey() {
+        private static final long serialVersionUID = -8090049519656411362L;
+
         public byte[] getEncoded() {
             return new byte[0];
         }
diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11Util.java b/jdk/src/share/classes/sun/security/pkcs11/P11Util.java
index 885734e..d405743 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/P11Util.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11Util.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -88,7 +88,7 @@ public final class P11Util {
         p = Security.getProvider(providerName);
         if (p == null) {
             try {
-                Class clazz = Class.forName(className);
+                Class<?> clazz = Class.forName(className);
                 p = (Provider)clazz.newInstance();
             } catch (Exception e) {
                 throw new ProviderException
diff --git a/jdk/src/share/classes/sun/security/pkcs11/Secmod.java b/jdk/src/share/classes/sun/security/pkcs11/Secmod.java
index 4f32e33..351a920 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/Secmod.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/Secmod.java
@@ -236,6 +236,7 @@ public final class Secmod {
             throw new IllegalStateException(e);
         }
         if (modules == null) {
+            @SuppressWarnings("unchecked")
             List<Module> modules = (List<Module>)nssGetModuleList(nssHandle,
                 nssLibDir);
             this.modules = Collections.unmodifiableList(modules);
diff --git a/jdk/src/share/classes/sun/security/pkcs11/Session.java b/jdk/src/share/classes/sun/security/pkcs11/Session.java
index 308b754..99d6da7 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/Session.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/Session.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -87,7 +87,7 @@ final class Session implements Comparable<Session> {
     }
 
     long id() {
-        if (token.isPresent(this) == false) {
+        if (token.isPresent(this.id) == false) {
             throw new ProviderException("Token has been removed");
         }
         lastAccess = System.currentTimeMillis();
@@ -167,7 +167,9 @@ final class SessionRef extends PhantomReference<Session>
     void dispose() {
         refList.remove(this);
         try {
-            token.p11.C_CloseSession(id);
+            if (token.isPresent(id)) {
+                token.p11.C_CloseSession(id);
+            }
         } catch (PKCS11Exception e1) {
             // ignore
         } catch (ProviderException e2) {
diff --git a/jdk/src/share/classes/sun/security/pkcs11/Token.java b/jdk/src/share/classes/sun/security/pkcs11/Token.java
index dcb3e61..f19f8b7 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/Token.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/Token.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -217,7 +217,7 @@ class Token implements Serializable {
 
     // return whether a token is present (i.e. token not removed)
     // returns cached value if current, otherwise performs new check
-    boolean isPresent(Session session) {
+    boolean isPresent(long sessionID) {
         if (removable == false) {
             return true;
         }
@@ -238,7 +238,7 @@ class Token implements Serializable {
                             // the token should return an error
                             CK_SESSION_INFO sessInfo =
                                     provider.p11.C_GetSessionInfo
-                                    (session.idInternal());
+                                    (sessionID);
                             ok = true;
                         }
                     } catch (PKCS11Exception e) {
diff --git a/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java b/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java
index 146f145..fa7ad07 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  */
 
 /* Copyright  (c) 2002 Graz University of Technology. All rights reserved.
@@ -517,7 +517,7 @@ public class Functions {
 
         if (array != null) {
             for (int i = 0; (i < 4) && (i < array.length); i++) {
-                hash ^= ((int) (0xFF & array[i])) << ((i%4) << 3);
+                hash ^= (0xFF & array[i]) << ((i%4) << 3);
             }
         }
 
@@ -537,7 +537,7 @@ public class Functions {
 
         if (array != null) {
             for (int i = 0; (i < 4) && (i < array.length); i++) {
-                hash ^= ((int) (0xFFFF & array[i])) << ((i%2) << 4);
+                hash ^= (0xFFFF & array[i]) << ((i%2) << 4);
             }
         }
 
@@ -557,18 +557,18 @@ public class Functions {
 
         if (date != null) {
             if (date.year.length == 4) {
-                hash ^= ((int) (0xFFFF & date.year[0])) << 16;
-                hash ^= (int) (0xFFFF & date.year[1]);
-                hash ^= ((int) (0xFFFF & date.year[2])) << 16;
-                hash ^= (int) (0xFFFF & date.year[3]);
+                hash ^= (0xFFFF & date.year[0]) << 16;
+                hash ^= 0xFFFF & date.year[1];
+                hash ^= (0xFFFF & date.year[2]) << 16;
+                hash ^= 0xFFFF & date.year[3];
             }
             if (date.month.length == 2) {
-                hash ^= ((int) (0xFFFF & date.month[0])) << 16;
-                hash ^= (int) (0xFFFF & date.month[1]);
+                hash ^= (0xFFFF & date.month[0]) << 16;
+                hash ^= 0xFFFF & date.month[1];
             }
             if (date.day.length == 2) {
-                hash ^= ((int) (0xFFFF & date.day[0])) << 16;
-                hash ^= (int) (0xFFFF & date.day[1]);
+                hash ^= (0xFFFF & date.day[0]) << 16;
+                hash ^= 0xFFFF & date.day[1];
             }
         }
 
diff --git a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java
index ffde3d1..68163a0 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  */
 
 /* Copyright  (c) 2002 Graz University of Technology. All rights reserved.
@@ -63,6 +63,7 @@ import java.util.*;
  * @invariants
  */
 public class PKCS11Exception extends Exception {
+    private static final long serialVersionUID = 4877072363729195L;
 
     /**
      * The code of the error which was the reason for this exception.
diff --git a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11RuntimeException.java b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11RuntimeException.java
index 0c65381..538e380 100644
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11RuntimeException.java
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11RuntimeException.java
@@ -57,6 +57,7 @@ package sun.security.pkcs11.wrapper;
  * @invariants
  */
 public class PKCS11RuntimeException extends RuntimeException {
+    private static final long serialVersionUID = 7889842162743590564L;
 
     /**
      * Empty constructor.
diff --git a/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java b/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java
index 7776044..f6bada9 100644
--- a/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java
+++ b/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,13 +41,10 @@ import java.security.cert.X509Certificate;
 import java.security.cert.CertificateException;
 import java.security.spec.PKCS8EncodedKeySpec;
 import java.util.*;
-import java.math.*;
 
 import java.security.AlgorithmParameters;
-import java.security.spec.AlgorithmParameterSpec;
 import javax.crypto.spec.PBEParameterSpec;
 import javax.crypto.spec.PBEKeySpec;
-import javax.crypto.spec.SecretKeySpec;
 import javax.crypto.SecretKeyFactory;
 import javax.crypto.SecretKey;
 import javax.crypto.Cipher;
@@ -222,7 +219,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
     public Key engineGetKey(String alias, char[] password)
         throws NoSuchAlgorithmException, UnrecoverableKeyException
     {
-        KeyEntry entry = entries.get(alias.toLowerCase());
+        KeyEntry entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
         Key key = null;
 
         if (entry == null) {
@@ -299,7 +296,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
      * <i>key entry</i> without a certificate chain).
      */
     public Certificate[] engineGetCertificateChain(String alias) {
-        KeyEntry entry = entries.get(alias.toLowerCase());
+        KeyEntry entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
         if (entry != null) {
             if (entry.chain == null) {
                 return null;
@@ -327,7 +324,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
      * does not contain a certificate.
      */
     public Certificate engineGetCertificate(String alias) {
-        KeyEntry entry = entries.get(alias.toLowerCase());
+        KeyEntry entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
         if (entry != null) {
             if (entry.chain == null) {
                 return null;
@@ -348,7 +345,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
      * not exist
      */
     public Date engineGetCreationDate(String alias) {
-        KeyEntry entry = entries.get(alias.toLowerCase());
+        KeyEntry entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
         if (entry != null) {
             return new Date(entry.date.getTime());
         } else {
@@ -412,15 +409,13 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
             // set the keyId to current date
             entry.keyId = ("Time " + (entry.date).getTime()).getBytes("UTF8");
             // set the alias
-            entry.alias = alias.toLowerCase();
+            entry.alias = alias.toLowerCase(Locale.ENGLISH);
 
             // add the entry
-            entries.put(alias.toLowerCase(), entry);
+            entries.put(alias.toLowerCase(Locale.ENGLISH), entry);
         } catch (Exception nsae) {
-            KeyStoreException ke = new KeyStoreException("Key protection " +
-                                        " algorithm not found: " + nsae);
-            ke.initCause(nsae);
-            throw ke;
+            throw new KeyStoreException("Key protection " +
+                       " algorithm not found: " + nsae, nsae);
         }
     }
 
@@ -456,10 +451,8 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
         try {
             new EncryptedPrivateKeyInfo(key);
         } catch (IOException ioe) {
-            KeyStoreException ke = new KeyStoreException("Private key is not"
-                        + " stored as PKCS#8 EncryptedPrivateKeyInfo: " + ioe);
-            ke.initCause(ioe);
-            throw ke;
+            throw new KeyStoreException("Private key is not stored"
+                    + " as PKCS#8 EncryptedPrivateKeyInfo: " + ioe, ioe);
         }
 
         KeyEntry entry = new KeyEntry();
@@ -472,7 +465,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
             // Won't happen
         }
         // set the alias
-        entry.alias = alias.toLowerCase();
+        entry.alias = alias.toLowerCase(Locale.ENGLISH);
 
         entry.protectedPrivKey = key.clone();
         if (chain != null) {
@@ -480,7 +473,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
         }
 
         // add the entry
-        entries.put(alias.toLowerCase(), entry);
+        entries.put(alias.toLowerCase(Locale.ENGLISH), entry);
     }
 
 
@@ -513,11 +506,8 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
            algParams = AlgorithmParameters.getInstance(algorithm);
            algParams.init(paramSpec);
         } catch (Exception e) {
-           IOException ioe =
-                new IOException("getAlgorithmParameters failed: " +
-                                e.getMessage());
-           ioe.initCause(e);
-           throw ioe;
+           throw new IOException("getAlgorithmParameters failed: " +
+                                 e.getMessage(), e);
         }
         return algParams;
     }
@@ -544,11 +534,8 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
                 algParams.init(params.toByteArray());
             }
         } catch (Exception e) {
-           IOException ioe =
-                new IOException("parseAlgParameters failed: " +
-                                e.getMessage());
-           ioe.initCause(e);
-           throw ioe;
+           throw new IOException("parseAlgParameters failed: " +
+                                 e.getMessage(), e);
         }
         return algParams;
     }
@@ -565,10 +552,8 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
             SecretKeyFactory skFac = SecretKeyFactory.getInstance("PBE");
             skey = skFac.generateSecret(keySpec);
         } catch (Exception e) {
-           IOException ioe = new IOException("getSecretKey failed: " +
-                                        e.getMessage());
-           ioe.initCause(e);
-           throw ioe;
+           throw new IOException("getSecretKey failed: " +
+                                 e.getMessage(), e);
         }
         return skey;
     }
@@ -633,7 +618,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
     public synchronized void engineSetCertificateEntry(String alias,
         Certificate cert) throws KeyStoreException
     {
-        KeyEntry entry = entries.get(alias.toLowerCase());
+        KeyEntry entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
         if (entry != null) {
             throw new KeyStoreException("Cannot overwrite own certificate");
         } else
@@ -650,7 +635,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
     public synchronized void engineDeleteEntry(String alias)
         throws KeyStoreException
     {
-        entries.remove(alias.toLowerCase());
+        entries.remove(alias.toLowerCase(Locale.ENGLISH));
     }
 
     /**
@@ -670,7 +655,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
      * @return true if the alias exists, false otherwise
      */
     public boolean engineContainsAlias(String alias) {
-        return entries.containsKey(alias.toLowerCase());
+        return entries.containsKey(alias.toLowerCase(Locale.ENGLISH));
     }
 
     /**
@@ -690,7 +675,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
      * <i>key entry</i>, false otherwise.
      */
     public boolean engineIsKeyEntry(String alias) {
-        KeyEntry entry = entries.get(alias.toLowerCase());
+        KeyEntry entry = entries.get(alias.toLowerCase(Locale.ENGLISH));
         if (entry != null) {
             return true;
         } else {
@@ -826,9 +811,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
             md.update(data);
             digest = md.digest();
         } catch (Exception e) {
-            IOException ioe = new IOException("generateHash failed: " + e);
-            ioe.initCause(e);
-            throw ioe;
+            throw new IOException("generateHash failed: " + e, e);
         }
         return digest;
     }
@@ -866,9 +849,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
             bytes.write(macData.getEncoded());
             mData = bytes.toByteArray();
         } catch (Exception e) {
-            IOException ioe = new IOException("calculateMac failed: " + e);
-            ioe.initCause(e);
-            throw ioe;
+            throw new IOException("calculateMac failed: " + e, e);
         }
         return mData;
     }
@@ -1149,10 +1130,8 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
             encryptedData = cipher.doFinal(data);
 
         } catch (Exception e) {
-            IOException ioe = new IOException("Failed to encrypt" +
-                                " safe contents entry: " + e);
-            ioe.initCause(e);
-            throw ioe;
+            throw new IOException("Failed to encrypt" +
+                    " safe contents entry: " + e, e);
         }
 
         // create EncryptedContentInfo
@@ -1220,7 +1199,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
         ContentInfo authSafe = new ContentInfo(s);
         ObjectIdentifier contentType = authSafe.getContentType();
 
-        if (contentType.equals(ContentInfo.DATA_OID)) {
+        if (contentType.equals((Object)ContentInfo.DATA_OID)) {
            authSafeData = authSafe.getData();
         } else /* signed data */ {
            throw new IOException("public key protected PKCS12 not supported");
@@ -1246,7 +1225,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
             safeContents = new ContentInfo(sci);
             contentType = safeContents.getContentType();
             safeContentsData = null;
-            if (contentType.equals(ContentInfo.DATA_OID)) {
+            if (contentType.equals((Object)ContentInfo.DATA_OID)) {
                 safeContentsData = safeContents.getData();
             } else if (contentType.equals(ContentInfo.ENCRYPTED_DATA_OID)) {
                 if (password == null) {
@@ -1280,10 +1259,8 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
                     safeContentsData = cipher.doFinal(safeContentsData);
 
                 } catch (Exception e) {
-                    IOException ioe = new IOException("failed to decrypt safe"
-                                        + " contents entry: " + e);
-                    ioe.initCause(e);
-                    throw ioe;
+                    throw new IOException("failed to decrypt safe"
+                            + " contents entry: " + e, e);
                 }
             } else {
                 throw new IOException("public key protected PKCS12" +
@@ -1297,7 +1274,8 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
         if (password != null && s.available() > 0) {
            MacData macData = new MacData(s);
            try {
-                String algName = macData.getDigestAlgName().toUpperCase();
+                String algName =
+                        macData.getDigestAlgName().toUpperCase(Locale.ENGLISH);
                 if (algName.equals("SHA")  ||
                     algName.equals("SHA1") ||
                     algName.equals("SHA-1")) {
@@ -1319,10 +1297,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
                                         " integrity checking");
                 }
            } catch (Exception e) {
-                IOException ioe =
-                        new IOException("Integrity check failed: " + e);
-                ioe.initCause(e);
-                throw ioe;
+                throw new IOException("Integrity check failed: " + e, e);
            }
         }
 
@@ -1402,12 +1377,12 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
                                         + bagValue.tag);
             }
             bagValue = bagValue.data.getDerValue();
-            if (bagId.equals(PKCS8ShroudedKeyBag_OID)) {
+            if (bagId.equals((Object)PKCS8ShroudedKeyBag_OID)) {
                 KeyEntry kEntry = new KeyEntry();
                 kEntry.protectedPrivKey = bagValue.toByteArray();
                 bagItem = kEntry;
                 privateKeyCount++;
-            } else if (bagId.equals(CertBag_OID)) {
+            } else if (bagId.equals((Object)CertBag_OID)) {
                 DerInputStream cs = new DerInputStream(bagValue.toByteArray());
                 DerValue[] certValues = cs.getSequence(2);
                 ObjectIdentifier certId = certValues[0].getOID();
@@ -1453,9 +1428,9 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
                         throw new IOException("Attribute " + attrId +
                                 " should have a value " + e.getMessage());
                     }
-                    if (attrId.equals(PKCS9FriendlyName_OID)) {
+                    if (attrId.equals((Object)PKCS9FriendlyName_OID)) {
                         alias = valSet[0].getBMPString();
-                    } else if (attrId.equals(PKCS9LocalKeyId_OID)) {
+                    } else if (attrId.equals((Object)PKCS9LocalKeyId_OID)) {
                         keyId = valSet[0].getOctetString();
                     } else {
                         // log error message for "unknown attr"
@@ -1505,7 +1480,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
                 if (alias == null)
                    alias = getUnfriendlyName();
                 entry.alias = alias;
-                entries.put(alias.toLowerCase(), entry);
+                entries.put(alias.toLowerCase(Locale.ENGLISH), entry);
             } else if (bagItem instanceof X509Certificate) {
                 X509Certificate cert = (X509Certificate)bagItem;
                 // Insert a localKeyID for the corresponding cert
diff --git a/jdk/src/share/classes/sun/security/provider/DSAKeyFactory.java b/jdk/src/share/classes/sun/security/provider/DSAKeyFactory.java
index ea74aff..72797ae 100644
--- a/jdk/src/share/classes/sun/security/provider/DSAKeyFactory.java
+++ b/jdk/src/share/classes/sun/security/provider/DSAKeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,15 +25,12 @@
 
 package sun.security.provider;
 
-import java.util.*;
-import java.lang.*;
 import java.security.Key;
 import java.security.PublicKey;
 import java.security.PrivateKey;
 import java.security.KeyFactorySpi;
 import java.security.InvalidKeyException;
 import java.security.AccessController;
-import java.security.PrivilegedAction;
 import java.security.interfaces.DSAParams;
 import java.security.spec.DSAPublicKeySpec;
 import java.security.spec.DSAPrivateKeySpec;
@@ -194,13 +191,13 @@ public class DSAKeyFactory extends KeyFactorySpi {
                     java.security.interfaces.DSAPublicKey dsaPubKey
                         = (java.security.interfaces.DSAPublicKey)key;
                     params = dsaPubKey.getParams();
-                    return (T) new DSAPublicKeySpec(dsaPubKey.getY(),
-                                                    params.getP(),
-                                                    params.getQ(),
-                                                    params.getG());
+                    return keySpec.cast(new DSAPublicKeySpec(dsaPubKey.getY(),
+                                                             params.getP(),
+                                                             params.getQ(),
+                                                             params.getG()));
 
                 } else if (x509KeySpec.isAssignableFrom(keySpec)) {
-                    return (T) new X509EncodedKeySpec(key.getEncoded());
+                    return keySpec.cast(new X509EncodedKeySpec(key.getEncoded()));
 
                 } else {
                     throw new InvalidKeySpecException
@@ -219,13 +216,13 @@ public class DSAKeyFactory extends KeyFactorySpi {
                     java.security.interfaces.DSAPrivateKey dsaPrivKey
                         = (java.security.interfaces.DSAPrivateKey)key;
                     params = dsaPrivKey.getParams();
-                    return (T) new DSAPrivateKeySpec(dsaPrivKey.getX(),
-                                                     params.getP(),
-                                                     params.getQ(),
-                                                     params.getG());
+                    return keySpec.cast(new DSAPrivateKeySpec(dsaPrivKey.getX(),
+                                                              params.getP(),
+                                                              params.getQ(),
+                                                              params.getG()));
 
                 } else if (pkcs8KeySpec.isAssignableFrom(keySpec)) {
-                    return (T) new PKCS8EncodedKeySpec(key.getEncoded());
+                    return keySpec.cast(new PKCS8EncodedKeySpec(key.getEncoded()));
 
                 } else {
                     throw new InvalidKeySpecException
diff --git a/jdk/src/share/classes/sun/security/provider/DSAParameters.java b/jdk/src/share/classes/sun/security/provider/DSAParameters.java
index 5d388dd..9a71ae1 100644
--- a/jdk/src/share/classes/sun/security/provider/DSAParameters.java
+++ b/jdk/src/share/classes/sun/security/provider/DSAParameters.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package sun.security.provider;
 
-import java.util.*;
 import java.io.*;
 import java.math.BigInteger;
 import java.security.AlgorithmParametersSpi;
@@ -103,7 +102,8 @@ public class DSAParameters extends AlgorithmParametersSpi {
                 Class<?> dsaParamSpec = Class.forName
                     ("java.security.spec.DSAParameterSpec");
                 if (dsaParamSpec.isAssignableFrom(paramSpec)) {
-                    return (T)new DSAParameterSpec(this.p, this.q, this.g);
+                    return paramSpec.cast(
+                            new DSAParameterSpec(this.p, this.q, this.g));
                 } else {
                     throw new InvalidParameterSpecException
                         ("Inappropriate parameter Specification");
diff --git a/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java b/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java
index 1a89986..2335a17 100644
--- a/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java
+++ b/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java
@@ -54,7 +54,7 @@ abstract class JavaKeyStore extends KeyStoreSpi {
     // regular JKS
     public static final class JKS extends JavaKeyStore {
         String convertAlias(String alias) {
-            return alias.toLowerCase();
+            return alias.toLowerCase(Locale.ENGLISH);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/security/provider/MD4.java b/jdk/src/share/classes/sun/security/provider/MD4.java
index b44a24d..56ff5a0 100644
--- a/jdk/src/share/classes/sun/security/provider/MD4.java
+++ b/jdk/src/share/classes/sun/security/provider/MD4.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -65,7 +65,9 @@ public final class MD4 extends DigestBase {
     private final static Provider md4Provider;
 
     static {
-        md4Provider = new Provider("MD4Provider", 1.0d, "MD4 MessageDigest") {};
+        md4Provider = new Provider("MD4Provider", 1.0d, "MD4 MessageDigest") {
+            private static final long serialVersionUID = -8850464997518327965L;
+        };
         AccessController.doPrivileged(new PrivilegedAction<Void>() {
             public Void run() {
                 md4Provider.put("MessageDigest.MD4", "sun.security.provider.MD4");
diff --git a/jdk/src/share/classes/sun/security/provider/PolicyFile.java b/jdk/src/share/classes/sun/security/provider/PolicyFile.java
index b9a8ec2..c97ad19 100644
--- a/jdk/src/share/classes/sun/security/provider/PolicyFile.java
+++ b/jdk/src/share/classes/sun/security/provider/PolicyFile.java
@@ -26,27 +26,21 @@
 package sun.security.provider;
 
 import java.io.*;
-import java.lang.RuntimePermission;
 import java.lang.reflect.*;
-import java.lang.ref.*;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URI;
 import java.util.*;
 import java.util.Enumeration;
-import java.util.Hashtable;
 import java.util.List;
 import java.util.StringTokenizer;
-import java.util.PropertyPermission;
 import java.util.ArrayList;
 import java.util.ListIterator;
-import java.util.WeakHashMap;
 import java.text.MessageFormat;
 import com.sun.security.auth.PrincipalComparator;
 import java.security.*;
 import java.security.cert.Certificate;
 import java.security.cert.X509Certificate;
-import javax.security.auth.PrivateCredentialPermission;
 import javax.security.auth.Subject;
 import javax.security.auth.x500.X500Principal;
 import java.io.FilePermission;
@@ -68,7 +62,6 @@ import javax.net.ssl.SSLPermission;
 import sun.misc.JavaSecurityProtectionDomainAccess;
 import static sun.misc.JavaSecurityProtectionDomainAccess.ProtectionDomainCache;
 import sun.misc.SharedSecrets;
-import sun.security.util.Password;
 import sun.security.util.PolicyUtil;
 import sun.security.util.PropertyExpander;
 import sun.security.util.Debug;
@@ -1006,7 +999,7 @@ public class PolicyFile extends java.security.Policy {
      * via reflection. Keep list short to not penalize non-JDK-defined
      * permissions.
      */
-    private static final Permission getKnownInstance(Class claz,
+    private static final Permission getKnownInstance(Class<?> claz,
         String name, String actions) {
         // XXX shorten list to most popular ones?
         if (claz.equals(FilePermission.class)) {
@@ -1346,7 +1339,7 @@ public class PolicyFile extends java.security.Policy {
                 "\tActive Principals: " + accPs);
         }
 
-        if (entryPs == null || entryPs.size() == 0) {
+        if (entryPs == null || entryPs.isEmpty()) {
 
             // policy entry has no principals -
             // add perms regardless of principals in current ACC
@@ -1547,7 +1540,7 @@ public class PolicyFile extends java.security.Policy {
                             Principal[] pdp,
                             Permissions perms) {
 
-        if (entryPs == null || entryPs.size() == 0) {
+        if (entryPs == null || entryPs.isEmpty()) {
             // No principals in the grant to substitute
             if (debug != null) {
                 debug.println("Ignoring permission "
@@ -1890,7 +1883,7 @@ public class PolicyFile extends java.security.Policy {
     private boolean replacePrincipals(
         List<PolicyParser.PrincipalEntry> principals, KeyStore keystore) {
 
-        if (principals == null || principals.size() == 0 || keystore == null)
+        if (principals == null || principals.isEmpty() || keystore == null)
             return true;
 
         ListIterator<PolicyParser.PrincipalEntry> i = principals.listIterator();
@@ -2403,7 +2396,7 @@ public class PolicyFile extends java.security.Policy {
         final List<PolicyEntry> identityPolicyEntries;
 
         // Maps aliases to certs
-        final Map aliasMapping;
+        final Map<Object, Object> aliasMapping;
 
         // Maps ProtectionDomain to PermissionCollection
         private final ProtectionDomainCache[] pdMapping;
@@ -2413,7 +2406,8 @@ public class PolicyFile extends java.security.Policy {
             policyEntries = new ArrayList<PolicyEntry>();
             identityPolicyEntries =
                 Collections.synchronizedList(new ArrayList<PolicyEntry>(2));
-            aliasMapping = Collections.synchronizedMap(new HashMap(11));
+            aliasMapping = Collections.synchronizedMap(
+                    new HashMap<Object, Object>(11));
 
             pdMapping = new ProtectionDomainCache[numCaches];
             JavaSecurityProtectionDomainAccess jspda
diff --git a/jdk/src/share/classes/sun/security/provider/SecureRandom.java b/jdk/src/share/classes/sun/security/provider/SecureRandom.java
index 0435b64..c2d795c 100644
--- a/jdk/src/share/classes/sun/security/provider/SecureRandom.java
+++ b/jdk/src/share/classes/sun/security/provider/SecureRandom.java
@@ -251,7 +251,7 @@ implements java.io.Serializable {
         try {
             digest = MessageDigest.getInstance ("SHA");
         } catch (NoSuchAlgorithmException e) {
-            throw new InternalError("internal error: SHA-1 not available.");
+            throw new InternalError("internal error: SHA-1 not available.", e);
         }
     }
 }
diff --git a/jdk/src/share/classes/sun/security/provider/SeedGenerator.java b/jdk/src/share/classes/sun/security/provider/SeedGenerator.java
index efbfba9..8f6127a 100644
--- a/jdk/src/share/classes/sun/security/provider/SeedGenerator.java
+++ b/jdk/src/share/classes/sun/security/provider/SeedGenerator.java
@@ -151,7 +151,8 @@ abstract class SeedGenerator {
         try {
             md = MessageDigest.getInstance("SHA");
         } catch (NoSuchAlgorithmException nsae) {
-            throw new InternalError("internal error: SHA-1 not available.");
+            throw new InternalError("internal error: SHA-1 not available."
+                    , nsae);
         }
 
         // The current time in millis
@@ -258,7 +259,8 @@ abstract class SeedGenerator {
             try {
                 digest = MessageDigest.getInstance("SHA");
             } catch (NoSuchAlgorithmException e) {
-                throw new InternalError("internal error: SHA-1 not available.");
+                throw new InternalError("internal error: SHA-1 not available."
+                        , e);
             }
 
             final ThreadGroup[] finalsg = new ThreadGroup[1];
@@ -311,7 +313,8 @@ abstract class SeedGenerator {
                             t.start();
                         } catch (Exception e) {
                             throw new InternalError("internal error: " +
-                                                    "SeedGenerator thread creation error.");
+                                                    "SeedGenerator thread creation error."
+                                    , e);
                         }
 
                         // We wait 250milli quanta, so the minimum wait time
@@ -344,7 +347,8 @@ abstract class SeedGenerator {
                 }
             } catch (Exception e) {
                 throw new InternalError("internal error: " +
-                                        "SeedGenerator thread generated an exception.");
+                                        "SeedGenerator thread generated an exception."
+                        , e);
             }
         }
 
@@ -367,7 +371,8 @@ abstract class SeedGenerator {
             } catch (Exception e) {
                 if (count <= 0)
                     throw new InternalError("internal error: " +
-                                            "SeedGenerator thread generated an exception.");
+                                            "SeedGenerator thread generated an exception."
+                            ,e);
             }
 
             synchronized(this) {
@@ -533,7 +538,7 @@ abstract class SeedGenerator {
             } catch (IOException ioe) {
                 throw new InternalError("URLSeedGenerator " + deviceName +
                                         " generated exception: " +
-                                        ioe.getMessage());
+                                        ioe.getMessage(), ioe);
             }
         }
 
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java b/jdk/src/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java
index 959ac59..680795c 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java
@@ -101,7 +101,8 @@ class AdaptableX509CertSelector extends X509CertSelector {
     void parseAuthorityKeyIdentifierExtension(
             AuthorityKeyIdentifierExtension akidext) throws IOException {
         if (akidext != null) {
-            KeyIdentifier akid = (KeyIdentifier)akidext.get(akidext.KEY_ID);
+            KeyIdentifier akid = (KeyIdentifier)akidext.get(
+                    AuthorityKeyIdentifierExtension.KEY_ID);
             if (akid != null) {
                 // Do not override the previous setting for initial selection.
                 if (isSKIDSensitive || getSubjectKeyIdentifier() == null) {
@@ -113,8 +114,8 @@ class AdaptableX509CertSelector extends X509CertSelector {
                 }
             }
 
-            SerialNumber asn =
-                (SerialNumber)akidext.get(akidext.SERIAL_NUMBER);
+            SerialNumber asn = (SerialNumber)akidext.get(
+                    AuthorityKeyIdentifierExtension.SERIAL_NUMBER);
             if (asn != null) {
                 // Do not override the previous setting for initial selection.
                 if (isSNSensitive || getSerialNumber() == null) {
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/Builder.java b/jdk/src/share/classes/sun/security/provider/certpath/Builder.java
index 4d46174..182a0d2 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/Builder.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/Builder.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -153,6 +153,7 @@ public abstract class Builder {
             if (debug != null) {
                 debug.println("Builder.distance(): Names are different types");
             }
+            return incomparable;
         case GeneralNameInterface.NAME_SAME_TYPE:
             if (debug != null) {
                 debug.println("Builder.distance(): Names are same type but " +
@@ -306,8 +307,8 @@ public abstract class Builder {
         SubjectAlternativeNameExtension altNameExt =
             certImpl.getSubjectAlternativeNameExtension();
         if (altNameExt != null) {
-            GeneralNames altNames =
-                (GeneralNames)altNameExt.get(altNameExt.SUBJECT_NAME);
+            GeneralNames altNames = altNameExt.get(
+                    SubjectAlternativeNameExtension.SUBJECT_NAME);
             /* see if any alternative name matches target */
             if (altNames != null) {
                 for (int j = 0, n = altNames.size(); j < n; j++) {
@@ -343,10 +344,10 @@ public abstract class Builder {
                 + String.valueOf(constraints));
         }
         /* reduce permitted by excluded */
-        GeneralSubtrees permitted = (GeneralSubtrees)
-            constraints.get(constraints.PERMITTED_SUBTREES);
-        GeneralSubtrees excluded = (GeneralSubtrees)
-            constraints.get(constraints.EXCLUDED_SUBTREES);
+        GeneralSubtrees permitted =
+                constraints.get(NameConstraintsExtension.PERMITTED_SUBTREES);
+        GeneralSubtrees excluded =
+                constraints.get(NameConstraintsExtension.EXCLUDED_SUBTREES);
         if (permitted != null) {
             permitted.reduce(excluded);
         }
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java b/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java
index 977d465..8552e63 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java
@@ -41,7 +41,6 @@ import java.security.PublicKey;
 import java.security.cert.*;
 import java.security.cert.CertPathValidatorException.BasicReason;
 import java.security.interfaces.DSAPublicKey;
-import javax.security.auth.x500.X500Principal;
 import sun.security.util.Debug;
 import sun.security.x509.AccessDescription;
 import sun.security.x509.AuthorityInfoAccessExtension;
@@ -758,8 +757,7 @@ class CrlRevocationChecker extends PKIXCertPathChecker {
                      null, null);
                 points = Collections.singletonList(point);
             } else {
-                points = (List<DistributionPoint>)ext.get(
-                                        CRLDistributionPointsExtension.POINTS);
+                points = ext.get(CRLDistributionPointsExtension.POINTS);
             }
             Set<X509CRL> results = new HashSet<X509CRL>();
             DistributionPointFetcher dpf =
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java b/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java
index 35d7b2c..b335557 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java
@@ -114,8 +114,8 @@ class DistributionPointFetcher {
                 }
                 return Collections.emptySet();
             }
-            List<DistributionPoint> points = (List<DistributionPoint>)ext.get(
-                                        CRLDistributionPointsExtension.POINTS);
+            List<DistributionPoint> points =
+                    ext.get(CRLDistributionPointsExtension.POINTS);
             Set<X509CRL> results = new HashSet<X509CRL>();
             for (Iterator<DistributionPoint> t = points.iterator();
                  t.hasNext() && !Arrays.equals(reasonsMask, ALL_REASONS); ) {
@@ -570,15 +570,16 @@ class DistributionPointFetcher {
             AuthorityKeyIdentifierExtension akidext =
                                             crlImpl.getAuthKeyIdExtension();
             if (akidext != null) {
-                KeyIdentifier akid = (KeyIdentifier)akidext.get(akidext.KEY_ID);
+                KeyIdentifier akid = (KeyIdentifier)akidext.get(
+                        AuthorityKeyIdentifierExtension.KEY_ID);
                 if (akid != null) {
                     DerOutputStream derout = new DerOutputStream();
                     derout.putOctetString(akid.getIdentifier());
                     certSel.setSubjectKeyIdentifier(derout.toByteArray());
                 }
 
-                SerialNumber asn =
-                    (SerialNumber)akidext.get(akidext.SERIAL_NUMBER);
+                SerialNumber asn = (SerialNumber)akidext.get(
+                        AuthorityKeyIdentifierExtension.SERIAL_NUMBER);
                 if (asn != null) {
                     certSel.setSerialNumber(asn.getNumber());
                 }
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/ForwardBuilder.java b/jdk/src/share/classes/sun/security/provider/certpath/ForwardBuilder.java
index e2666a6..60d0886 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/ForwardBuilder.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/ForwardBuilder.java
@@ -30,7 +30,6 @@ import java.util.*;
 
 import java.security.GeneralSecurityException;
 import java.security.InvalidKeyException;
-import java.security.cert.Certificate;
 import java.security.cert.CertificateException;
 import java.security.cert.CertPathValidatorException;
 import java.security.cert.PKIXReason;
@@ -44,22 +43,13 @@ import java.security.cert.X509CertSelector;
 import javax.security.auth.x500.X500Principal;
 
 import sun.security.util.Debug;
-import sun.security.util.DerOutputStream;
 import sun.security.x509.AccessDescription;
 import sun.security.x509.AuthorityInfoAccessExtension;
 import sun.security.x509.PKIXExtensions;
 import sun.security.x509.PolicyMappingsExtension;
 import sun.security.x509.X500Name;
 import sun.security.x509.X509CertImpl;
-import sun.security.x509.X509CRLImpl;
 import sun.security.x509.AuthorityKeyIdentifierExtension;
-import sun.security.x509.KeyIdentifier;
-import sun.security.x509.SubjectKeyIdentifierExtension;
-import sun.security.x509.SerialNumber;
-import sun.security.x509.GeneralNames;
-import sun.security.x509.GeneralName;
-import sun.security.x509.GeneralNameInterface;
-import java.math.BigInteger;
 
 /**
  * This class represents a forward builder, which is able to retrieve
@@ -362,6 +352,9 @@ class ForwardBuilder extends Builder {
      * Download Certificates from the given AIA and add them to the
      * specified Collection.
      */
+    // cs.getCertificates(caSelector) returns a collection of X509Certificate's
+    // because of the selector, so the cast is safe
+    @SuppressWarnings("unchecked")
     private boolean getCerts(AuthorityInfoAccessExtension aiaExt,
         Collection<X509Certificate> certs) {
         if (Builder.USE_AIA == false) {
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/ForwardState.java b/jdk/src/share/classes/sun/security/provider/certpath/ForwardState.java
index d1acf79..60de904 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/ForwardState.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/ForwardState.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -206,8 +206,8 @@ class ForwardState implements State {
                 SubjectAlternativeNameExtension subjAltNameExt
                     = icert.getSubjectAlternativeNameExtension();
                 if (subjAltNameExt != null) {
-                    GeneralNames gNames = (GeneralNames)
-                        subjAltNameExt.get(SubjectAlternativeNameExtension.SUBJECT_NAME);
+                    GeneralNames gNames = subjAltNameExt.get(
+                            SubjectAlternativeNameExtension.SUBJECT_NAME);
                     for (Iterator<GeneralName> t = gNames.iterator();
                                 t.hasNext(); ) {
                         GeneralNameInterface gName = t.next().getName();
@@ -236,6 +236,7 @@ class ForwardState implements State {
      * because some of them will
      * not have their contents modified by subsequent calls to updateState.
      */
+    @SuppressWarnings("unchecked") // Safe casts assuming clone() works correctly
     public Object clone() {
         try {
             ForwardState clonedState = (ForwardState) super.clone();
@@ -261,7 +262,7 @@ class ForwardState implements State {
                 = (HashSet<GeneralNameInterface>)subjectNamesTraversed.clone();
             return clonedState;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
     }
 }
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/IndexedCollectionCertStore.java b/jdk/src/share/classes/sun/security/provider/certpath/IndexedCollectionCertStore.java
index 167e286..79f0c96 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/IndexedCollectionCertStore.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/IndexedCollectionCertStore.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -185,6 +185,7 @@ public class IndexedCollectionCertStore extends CertStoreSpi {
                 list.add((X509Certificate)oldEntry);
                 certSubjects.put(subject, list);
             } else {
+                @SuppressWarnings("unchecked") // See certSubjects javadoc.
                 List<X509Certificate> list = (List<X509Certificate>)oldEntry;
                 if (list.contains(cert) == false) {
                     list.add(cert);
@@ -210,6 +211,8 @@ public class IndexedCollectionCertStore extends CertStoreSpi {
                 list.add((X509CRL)oldEntry);
                 crlIssuers.put(issuer, list);
             } else {
+                // See crlIssuers javadoc.
+                @SuppressWarnings("unchecked")
                 List<X509CRL> list = (List<X509CRL>)oldEntry;
                 if (list.contains(crl) == false) {
                     list.add(crl);
@@ -279,6 +282,8 @@ public class IndexedCollectionCertStore extends CertStoreSpi {
                     return Collections.<X509Certificate>emptySet();
                 }
             } else {
+                // See certSubjects javadoc.
+                @SuppressWarnings("unchecked")
                 List<X509Certificate> list = (List<X509Certificate>)entry;
                 Set<X509Certificate> matches = new HashSet<X509Certificate>(16);
                 for (X509Certificate cert : list) {
@@ -309,6 +314,8 @@ public class IndexedCollectionCertStore extends CertStoreSpi {
                     matches.add(cert);
                 }
             } else {
+                // See certSubjects javadoc.
+                @SuppressWarnings("unchecked")
                 List<X509Certificate> list = (List<X509Certificate>)obj;
                 for (X509Certificate cert : list) {
                     if (selector.match(cert)) {
@@ -370,6 +377,8 @@ public class IndexedCollectionCertStore extends CertStoreSpi {
                         matches.add(crl);
                     }
                 } else { // List
+                    // See crlIssuers javadoc.
+                    @SuppressWarnings("unchecked")
                     List<X509CRL> list = (List<X509CRL>)entry;
                     for (X509CRL crl : list) {
                         if (x509Selector.match(crl)) {
@@ -398,6 +407,8 @@ public class IndexedCollectionCertStore extends CertStoreSpi {
                     matches.add(crl);
                 }
             } else {
+                // See crlIssuers javadoc.
+                @SuppressWarnings("unchecked")
                 List<X509CRL> list = (List<X509CRL>)obj;
                 for (X509CRL crl : list) {
                     if (selector.match(crl)) {
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/OCSP.java b/jdk/src/share/classes/sun/security/provider/certpath/OCSP.java
index 4f6f135..bd426c5 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/OCSP.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/OCSP.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -291,7 +291,7 @@ public final class OCSP {
 
         List<AccessDescription> descriptions = aia.getAccessDescriptions();
         for (AccessDescription description : descriptions) {
-            if (description.getAccessMethod().equals(
+            if (description.getAccessMethod().equals((Object)
                 AccessDescription.Ad_OCSP_Id)) {
 
                 GeneralName generalName = description.getAccessLocation();
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/OCSPChecker.java b/jdk/src/share/classes/sun/security/provider/certpath/OCSPChecker.java
index d734ff9..8eb4551 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/OCSPChecker.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/OCSPChecker.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -300,7 +300,7 @@ class OCSPChecker extends PKIXCertPathChecker {
                 if (filter != null) {
                     List<CertStore> certStores = pkixParams.getCertStores();
                     for (CertStore certStore : certStores) {
-                        Iterator i = null;
+                        Iterator<? extends Certificate> i = null;
                         try {
                             i = certStore.getCertificates(filter).iterator();
                         } catch (CertStoreException cse) {
@@ -392,7 +392,7 @@ class OCSPChecker extends PKIXCertPathChecker {
 
         List<AccessDescription> descriptions = aia.getAccessDescriptions();
         for (AccessDescription description : descriptions) {
-            if (description.getAccessMethod().equals(
+            if (description.getAccessMethod().equals((Object)
                 AccessDescription.Ad_OCSP_Id)) {
 
                 GeneralName generalName = description.getAccessLocation();
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java b/jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java
index 63566dd..0eb3d28 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
 package sun.security.provider.certpath;
 
 import java.io.*;
-import java.math.BigInteger;
 import java.security.*;
 import java.security.cert.CertificateException;
 import java.security.cert.CertificateParsingException;
@@ -206,7 +205,7 @@ public final class OCSPResponse {
         // responseType
         derIn = tmp.data;
         ObjectIdentifier responseType = derIn.getOID();
-        if (responseType.equals(OCSP_BASIC_RESPONSE_OID)) {
+        if (responseType.equals((Object)OCSP_BASIC_RESPONSE_OID)) {
             if (DEBUG != null) {
                 DEBUG.println("OCSP response type: basic");
             }
@@ -301,7 +300,7 @@ public final class OCSPResponse {
                     if (DEBUG != null) {
                         DEBUG.println("OCSP extension: " + responseExtension);
                     }
-                    if (responseExtension.getExtensionId().equals(
+                    if (responseExtension.getExtensionId().equals((Object)
                         OCSP_NONCE_EXTENSION_OID)) {
                         /*
                         ocspNonce =
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java b/jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java
index 63989de..6c075d6 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java
@@ -25,7 +25,6 @@
 
 package sun.security.provider.certpath;
 
-import java.io.IOException;
 import java.security.AccessController;
 import java.security.InvalidAlgorithmParameterException;
 import java.security.cert.CertPath;
@@ -40,13 +39,11 @@ import java.security.cert.PKIXReason;
 import java.security.cert.PolicyNode;
 import java.security.cert.TrustAnchor;
 import java.security.cert.X509Certificate;
-import java.security.cert.X509CertSelector;
 import java.util.Collections;
 import java.util.List;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Set;
-import javax.security.auth.x500.X500Principal;
 import sun.security.action.GetBooleanSecurityPropertyAction;
 import sun.security.util.Debug;
 
@@ -130,6 +127,9 @@ public class PKIXCertPathValidator extends CertPathValidatorSpi {
 
         // Must copy elements of certList into a new modifiable List before
         // calling Collections.reverse().
+        // If cp is not an X.509 or X509 certpath, an
+        // InvalidAlgorithmParameterException will have been thrown by now.
+        @SuppressWarnings("unchecked")
         ArrayList<X509Certificate> certList = new ArrayList<X509Certificate>
             ((List<X509Certificate>)cp.getCertificates());
         if (debug != null) {
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/PolicyChecker.java b/jdk/src/share/classes/sun/security/provider/certpath/PolicyChecker.java
index a4acc87..e5b35a7 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/PolicyChecker.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/PolicyChecker.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -274,8 +274,8 @@ class PolicyChecker extends PKIXCertPathChecker {
                 = currCert.getPolicyConstraintsExtension();
             if (polConstExt == null)
                 return explicitPolicy;
-            int require = ((Integer)
-                polConstExt.get(PolicyConstraintsExtension.REQUIRE)).intValue();
+            int require =
+                polConstExt.get(PolicyConstraintsExtension.REQUIRE).intValue();
             if (debug != null) {
                 debug.println("PolicyChecker.mergeExplicitPolicy() "
                    + "require Index from cert = " + require);
@@ -328,8 +328,8 @@ class PolicyChecker extends PKIXCertPathChecker {
             if (polConstExt == null)
                 return policyMapping;
 
-            int inhibit = ((Integer)
-                polConstExt.get(PolicyConstraintsExtension.INHIBIT)).intValue();
+            int inhibit =
+                polConstExt.get(PolicyConstraintsExtension.INHIBIT).intValue();
             if (debug != null)
                 debug.println("PolicyChecker.mergePolicyMapping() "
                     + "inhibit Index from cert = " + inhibit);
@@ -376,8 +376,8 @@ class PolicyChecker extends PKIXCertPathChecker {
             if (inhAnyPolExt == null)
                 return inhibitAnyPolicy;
 
-            int skipCerts = ((Integer)
-                inhAnyPolExt.get(InhibitAnyPolicyExtension.SKIP_CERTS)).intValue();
+            int skipCerts =
+                inhAnyPolExt.get(InhibitAnyPolicyExtension.SKIP_CERTS).intValue();
             if (debug != null)
                 debug.println("PolicyChecker.mergeInhibitAnyPolicy() "
                     + "skipCerts Index from cert = " + skipCerts);
@@ -448,8 +448,7 @@ class PolicyChecker extends PKIXCertPathChecker {
                     + "policiesCritical = " + policiesCritical);
 
             try {
-                policyInfo = (List<PolicyInformation>)
-                    currCertPolicies.get(CertificatePoliciesExtension.POLICIES);
+                policyInfo = currCertPolicies.get(CertificatePoliciesExtension.POLICIES);
             } catch (IOException ioe) {
                 throw new CertPathValidatorException("Exception while "
                     + "retrieving policyOIDs", ioe);
@@ -751,8 +750,7 @@ class PolicyChecker extends PKIXCertPathChecker {
 
         List<CertificatePolicyMap> maps = null;
         try {
-            maps = (List<CertificatePolicyMap>)polMappingsExt.get
-                                        (PolicyMappingsExtension.MAP);
+            maps = polMappingsExt.get(PolicyMappingsExtension.MAP);
         } catch (IOException e) {
             if (debug != null) {
                 debug.println("PolicyChecker.processPolicyMappings() "
@@ -860,8 +858,7 @@ class PolicyChecker extends PKIXCertPathChecker {
     {
         List<PolicyInformation> policyInfo = null;
         try {
-            policyInfo = (List<PolicyInformation>)
-                currCertPolicies.get(CertificatePoliciesExtension.POLICIES);
+            policyInfo = currCertPolicies.get(CertificatePoliciesExtension.POLICIES);
         } catch (IOException ioe) {
             throw new CertPathValidatorException("Exception while "
                 + "retrieving policyOIDs", ioe);
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/ReverseState.java b/jdk/src/share/classes/sun/security/provider/certpath/ReverseState.java
index b7285a1..a5e8093 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/ReverseState.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/ReverseState.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -365,6 +365,7 @@ class ReverseState implements State {
      * because some of them (e.g., subjKeyId) will
      * not have their contents modified by subsequent calls to updateState.
      */
+    @SuppressWarnings("unchecked") // Safe casts assuming clone() works correctly
     public Object clone() {
         try {
             ReverseState clonedState = (ReverseState) super.clone();
@@ -393,7 +394,7 @@ class ReverseState implements State {
 
             return clonedState;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
     }
 }
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java b/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java
index 3a2b24c..321f915 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -209,7 +209,8 @@ class URICertStore extends CertStoreSpi {
      * object of a certificate's Authority Information Access Extension.
      */
     static CertStore getInstance(AccessDescription ad) {
-        if (!ad.getAccessMethod().equals(AccessDescription.Ad_CAISSUERS_Id)) {
+        if (!ad.getAccessMethod().equals((Object)
+                AccessDescription.Ad_CAISSUERS_Id)) {
             return null;
         }
         GeneralNameInterface gn = ad.getAccessLocation().getName();
@@ -241,6 +242,7 @@ class URICertStore extends CertStoreSpi {
      *         match the specified selector
      * @throws CertStoreException if an exception occurs
      */
+    @SuppressWarnings("unchecked")
     public synchronized Collection<X509Certificate> engineGetCertificates
         (CertSelector selector) throws CertStoreException {
 
@@ -255,6 +257,7 @@ class URICertStore extends CertStoreSpi {
             }
             // Fetch the certificates via LDAP. LDAPCertStore has its own
             // caching mechanism, see the class description for more info.
+            // Safe cast since xsel is an X509 certificate selector.
             return (Collection<X509Certificate>)
                 ldapCertStore.getCertificates(xsel);
         }
@@ -300,6 +303,7 @@ class URICertStore extends CertStoreSpi {
             if (debug != null) {
                 debug.println("Downloading new certificates...");
             }
+            // Safe cast since factory is an X.509 certificate factory
             certs = (Collection<X509Certificate>)
                 factory.generateCertificates(in);
             return getMatchingCerts(certs, selector);
@@ -361,6 +365,7 @@ class URICertStore extends CertStoreSpi {
      *         match the specified selector
      * @throws CertStoreException if an exception occurs
      */
+    @SuppressWarnings("unchecked")
     public synchronized Collection<X509CRL> engineGetCRLs(CRLSelector selector)
         throws CertStoreException {
 
@@ -375,6 +380,7 @@ class URICertStore extends CertStoreSpi {
             }
             // Fetch the CRLs via LDAP. LDAPCertStore has its own
             // caching mechanism, see the class description for more info.
+            // Safe cast since xsel is an X509 certificate selector.
             return (Collection<X509CRL>) ldapCertStore.getCRLs(xsel);
         }
 
@@ -488,7 +494,7 @@ class URICertStore extends CertStoreSpi {
                 return super.clone();
             } catch (CloneNotSupportedException e) {
                 /* Cannot happen */
-                throw new InternalError(e.toString());
+                throw new InternalError(e.toString(), e);
             }
         }
     }
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/Vertex.java b/jdk/src/share/classes/sun/security/provider/certpath/Vertex.java
index 38df9d9..cfc5c2f 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/Vertex.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/Vertex.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -171,7 +171,8 @@ public class Vertex {
         try {
             sKeyID = x509Cert.getSubjectKeyIdentifierExtension();
             if (sKeyID != null) {
-                KeyIdentifier keyID = (KeyIdentifier)sKeyID.get(sKeyID.KEY_ID);
+                KeyIdentifier keyID = sKeyID.get(
+                        SubjectKeyIdentifierExtension.KEY_ID);
                 out = out + "SubjKeyID:  " + keyID.toString();
             }
         } catch (Exception e) {
@@ -184,7 +185,8 @@ public class Vertex {
         try {
             aKeyID = x509Cert.getAuthorityKeyIdentifierExtension();
             if (aKeyID != null) {
-                KeyIdentifier keyID = (KeyIdentifier)aKeyID.get(aKeyID.KEY_ID);
+                KeyIdentifier keyID = (KeyIdentifier)aKeyID.get(
+                        AuthorityKeyIdentifierExtension.KEY_ID);
                 out = out + "AuthKeyID:  " + keyID.toString();
             }
         } catch (Exception e) {
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java b/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java
index 27465b5..9180a50 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package sun.security.provider.certpath;
 
-import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -101,11 +100,18 @@ public class X509CertPath extends CertPath {
      * @exception CertificateException if <code>certs</code> contains an element
      *                      that is not an <code>X509Certificate</code>
      */
+    @SuppressWarnings("unchecked")
     public X509CertPath(List<? extends Certificate> certs) throws CertificateException {
         super("X.509");
 
         // Ensure that the List contains only X509Certificates
-        for (Object obj : (List<?>)certs) {
+        //
+        // Note; The certs parameter is not necessarily to be of Certificate
+        // for some old code. For compatibility, to make sure the exception
+        // is CertificateException, rather than ClassCastException, please
+        // don't use
+        //     for (Certificate obj : certs)
+        for (Object obj : certs) {
             if (obj instanceof X509Certificate == false) {
                 throw new CertificateException
                     ("List is not all X509Certificates: "
@@ -147,12 +153,15 @@ public class X509CertPath extends CertPath {
             throws CertificateException {
         super("X.509");
 
-        if (PKIPATH_ENCODING.equals(encoding)) {
-            certs = parsePKIPATH(is);
-        } else if (PKCS7_ENCODING.equals(encoding)) {
-            certs = parsePKCS7(is);
-        } else {
-            throw new CertificateException("unsupported encoding");
+        switch (encoding) {
+            case PKIPATH_ENCODING:
+                certs = parsePKIPATH(is);
+                break;
+            case PKCS7_ENCODING:
+                certs = parsePKCS7(is);
+                break;
+            default:
+                throw new CertificateException("unsupported encoding");
         }
     }
 
@@ -192,10 +201,8 @@ public class X509CertPath extends CertPath {
             return Collections.unmodifiableList(certList);
 
         } catch (IOException ioe) {
-            CertificateException ce = new CertificateException("IOException" +
-                " parsing PkiPath data: " + ioe);
-            ce.initCause(ioe);
-            throw ce;
+            throw new CertificateException("IOException parsing PkiPath data: "
+                    + ioe, ioe);
         }
     }
 
@@ -220,7 +227,7 @@ public class X509CertPath extends CertPath {
                 // Copy the entire input stream into an InputStream that does
                 // support mark
                 is = new ByteArrayInputStream(readAllBytes(is));
-            };
+            }
             PKCS7 pkcs7 = new PKCS7(is);
 
             X509Certificate[] certArray = pkcs7.getCertificates();
@@ -301,10 +308,8 @@ public class X509CertPath extends CertPath {
             return derout.toByteArray();
 
         } catch (IOException ioe) {
-           CertificateEncodingException ce = new CertificateEncodingException
-                ("IOException encoding PkiPath data: " + ioe);
-           ce.initCause(ioe);
-           throw ce;
+           throw new CertificateEncodingException("IOException encoding " +
+                   "PkiPath data: " + ioe, ioe);
         }
     }
 
@@ -339,12 +344,13 @@ public class X509CertPath extends CertPath {
      */
     public byte[] getEncoded(String encoding)
             throws CertificateEncodingException {
-        if (PKIPATH_ENCODING.equals(encoding)) {
-            return encodePKIPATH();
-        } else if (PKCS7_ENCODING.equals(encoding)) {
-            return encodePKCS7();
-        } else {
-            throw new CertificateEncodingException("unsupported encoding");
+        switch (encoding) {
+            case PKIPATH_ENCODING:
+                return encodePKIPATH();
+            case PKCS7_ENCODING:
+                return encodePKCS7();
+            default:
+                throw new CertificateEncodingException("unsupported encoding");
         }
     }
 
diff --git a/jdk/src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java b/jdk/src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java
index 0c037a5..d86404d 100644
--- a/jdk/src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java
+++ b/jdk/src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java
@@ -879,7 +879,8 @@ public class LDAPCertStore extends CertStoreSpi {
             if (hashCode == 0) {
                 int result = 17;
                 result = 37*result + getPort();
-                result = 37*result + getServerName().toLowerCase().hashCode();
+                result = 37*result +
+                    getServerName().toLowerCase(Locale.ENGLISH).hashCode();
                 hashCode = result;
             }
             return hashCode;
diff --git a/jdk/src/share/classes/sun/security/rsa/RSAKeyFactory.java b/jdk/src/share/classes/sun/security/rsa/RSAKeyFactory.java
index 42001f2..54aa0d2 100644
--- a/jdk/src/share/classes/sun/security/rsa/RSAKeyFactory.java
+++ b/jdk/src/share/classes/sun/security/rsa/RSAKeyFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -351,12 +351,12 @@ public final class RSAKeyFactory extends KeyFactorySpi {
         if (key instanceof RSAPublicKey) {
             RSAPublicKey rsaKey = (RSAPublicKey)key;
             if (rsaPublicKeySpecClass.isAssignableFrom(keySpec)) {
-                return (T) new RSAPublicKeySpec(
+                return keySpec.cast(new RSAPublicKeySpec(
                     rsaKey.getModulus(),
                     rsaKey.getPublicExponent()
-                );
+                ));
             } else if (x509KeySpecClass.isAssignableFrom(keySpec)) {
-                return (T) new X509EncodedKeySpec(key.getEncoded());
+                return keySpec.cast(new X509EncodedKeySpec(key.getEncoded()));
             } else {
                 throw new InvalidKeySpecException
                         ("KeySpec must be RSAPublicKeySpec or "
@@ -364,11 +364,11 @@ public final class RSAKeyFactory extends KeyFactorySpi {
             }
         } else if (key instanceof RSAPrivateKey) {
             if (pkcs8KeySpecClass.isAssignableFrom(keySpec)) {
-                return (T) new PKCS8EncodedKeySpec(key.getEncoded());
+                return keySpec.cast(new PKCS8EncodedKeySpec(key.getEncoded()));
             } else if (rsaPrivateCrtKeySpecClass.isAssignableFrom(keySpec)) {
                 if (key instanceof RSAPrivateCrtKey) {
                     RSAPrivateCrtKey crtKey = (RSAPrivateCrtKey)key;
-                    return (T) new RSAPrivateCrtKeySpec(
+                    return keySpec.cast(new RSAPrivateCrtKeySpec(
                         crtKey.getModulus(),
                         crtKey.getPublicExponent(),
                         crtKey.getPrivateExponent(),
@@ -377,17 +377,17 @@ public final class RSAKeyFactory extends KeyFactorySpi {
                         crtKey.getPrimeExponentP(),
                         crtKey.getPrimeExponentQ(),
                         crtKey.getCrtCoefficient()
-                    );
+                    ));
                 } else {
                     throw new InvalidKeySpecException
                     ("RSAPrivateCrtKeySpec can only be used with CRT keys");
                 }
             } else if (rsaPrivateKeySpecClass.isAssignableFrom(keySpec)) {
                 RSAPrivateKey rsaKey = (RSAPrivateKey)key;
-                return (T) new RSAPrivateKeySpec(
+                return keySpec.cast(new RSAPrivateKeySpec(
                     rsaKey.getModulus(),
                     rsaKey.getPrivateExponent()
-                );
+                ));
             } else {
                 throw new InvalidKeySpecException
                         ("KeySpec must be RSAPrivate(Crt)KeySpec or "
diff --git a/jdk/src/share/classes/sun/security/rsa/RSASignature.java b/jdk/src/share/classes/sun/security/rsa/RSASignature.java
index c510413..a98ed88 100644
--- a/jdk/src/share/classes/sun/security/rsa/RSASignature.java
+++ b/jdk/src/share/classes/sun/security/rsa/RSASignature.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@ package sun.security.rsa;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
-import java.math.BigInteger;
 import java.util.Arrays;
 
 import java.security.*;
@@ -202,8 +201,6 @@ public abstract class RSASignature extends SignatureSpi {
             // return false rather than propagating the exception for
             // compatibility/ease of use
             return false;
-        } catch (GeneralSecurityException e) {
-            throw new SignatureException("Signature verification failed", e);
         } catch (IOException e) {
             throw new SignatureException("Signature encoding error", e);
         }
@@ -235,7 +232,7 @@ public abstract class RSASignature extends SignatureSpi {
             throw new IOException("SEQUENCE length error");
         }
         AlgorithmId algId = AlgorithmId.parse(values[0]);
-        if (algId.getOID().equals(oid) == false) {
+        if (algId.getOID().equals((Object)oid) == false) {
             throw new IOException("ObjectIdentifier mismatch: "
                 + algId.getOID());
         }
diff --git a/jdk/src/share/classes/sun/security/ssl/CipherSuite.java b/jdk/src/share/classes/sun/security/ssl/CipherSuite.java
index 38734b7..116afa4 100644
--- a/jdk/src/share/classes/sun/security/ssl/CipherSuite.java
+++ b/jdk/src/share/classes/sun/security/ssl/CipherSuite.java
@@ -65,7 +65,7 @@ import static sun.security.ssl.JsseJce.*;
  *    unavailable or disabled at compile time
  *
  */
-final class CipherSuite implements Comparable {
+final class CipherSuite implements Comparable<CipherSuite> {
 
     // minimum priority for supported CipherSuites
     final static int SUPPORTED_SUITES_PRIORITY = 1;
@@ -202,8 +202,8 @@ final class CipherSuite implements Comparable {
      * Note that for unsupported CipherSuites parsed from a handshake
      * message we violate the equals() contract.
      */
-    public int compareTo(Object o) {
-        return ((CipherSuite)o).priority - priority;
+    public int compareTo(CipherSuite o) {
+        return o.priority - priority;
     }
 
     /**
diff --git a/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java b/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java
index 13cadcf..4b952fe 100644
--- a/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java
+++ b/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java
@@ -811,13 +811,16 @@ class DH_ServerKeyExchange extends ServerKeyExchange
             sig = JsseJce.getSignature(
                         preferableSignatureAlgorithm.getAlgorithmName());
         } else {
-            if (algorithm.equals("DSA")) {
-                sig = JsseJce.getSignature(JsseJce.SIGNATURE_DSA);
-            } else if (algorithm.equals("RSA")) {
-                sig = RSASignature.getInstance();
-            } else {
-                throw new SSLKeyException("neither an RSA or a DSA key");
-            }
+                switch (algorithm) {
+                    case "DSA":
+                        sig = JsseJce.getSignature(JsseJce.SIGNATURE_DSA);
+                        break;
+                    case "RSA":
+                        sig = RSASignature.getInstance();
+                        break;
+                    default:
+                        throw new SSLKeyException("neither an RSA or a DSA key");
+                }
         }
 
         sig.initVerify(publicKey);
@@ -1097,13 +1100,14 @@ class ECDH_ServerKeyExchange extends ServerKeyExchange {
 
     private static Signature getSignature(String keyAlgorithm)
             throws NoSuchAlgorithmException {
-        if (keyAlgorithm.equals("EC")) {
-            return JsseJce.getSignature(JsseJce.SIGNATURE_ECDSA);
-        } else if (keyAlgorithm.equals("RSA")) {
-            return RSASignature.getInstance();
-        } else {
-            throw new NoSuchAlgorithmException("neither an RSA or a EC key");
-        }
+            switch (keyAlgorithm) {
+                case "EC":
+                    return JsseJce.getSignature(JsseJce.SIGNATURE_ECDSA);
+                case "RSA":
+                    return RSASignature.getInstance();
+                default:
+                    throw new NoSuchAlgorithmException("neither an RSA or a EC key");
+            }
     }
 
     private void updateSignature(Signature sig, byte clntNonce[],
@@ -1611,16 +1615,17 @@ static final class CertificateVerify extends HandshakeMessage {
      */
     private static Signature getSignature(ProtocolVersion protocolVersion,
             String algorithm) throws GeneralSecurityException {
-        if (algorithm.equals("RSA")) {
-            return RSASignature.getInternalInstance();
-        } else if (algorithm.equals("DSA")) {
-            return JsseJce.getSignature(JsseJce.SIGNATURE_RAWDSA);
-        } else if (algorithm.equals("EC")) {
-            return JsseJce.getSignature(JsseJce.SIGNATURE_RAWECDSA);
-        } else {
-            throw new SignatureException("Unrecognized algorithm: "
-                + algorithm);
-        }
+            switch (algorithm) {
+                case "RSA":
+                    return RSASignature.getInternalInstance();
+                case "DSA":
+                    return JsseJce.getSignature(JsseJce.SIGNATURE_RAWDSA);
+                case "EC":
+                    return JsseJce.getSignature(JsseJce.SIGNATURE_RAWECDSA);
+                default:
+                    throw new SignatureException("Unrecognized algorithm: "
+                        + algorithm);
+            }
     }
 
     /*
@@ -1696,7 +1701,7 @@ static final class CertificateVerify extends HandshakeMessage {
         md.update(temp);
     }
 
-    private final static Class delegate;
+    private final static Class<?> delegate;
     private final static Field spiField;
 
     static {
@@ -1724,7 +1729,7 @@ static final class CertificateVerify extends HandshakeMessage {
     // cache Method objects per Spi class
     // Note that this will prevent the Spi classes from being GC'd. We assume
     // that is not a problem.
-    private final static Map<Class,Object> methodCache =
+    private final static Map<Class<?>,Object> methodCache =
                                         new ConcurrentHashMap<>();
 
     private static void digestKey(MessageDigest md, SecretKey key) {
diff --git a/jdk/src/share/classes/sun/security/ssl/Handshaker.java b/jdk/src/share/classes/sun/security/ssl/Handshaker.java
index d4a04df..4fb7fec 100644
--- a/jdk/src/share/classes/sun/security/ssl/Handshaker.java
+++ b/jdk/src/share/classes/sun/security/ssl/Handshaker.java
@@ -154,7 +154,7 @@ abstract class Handshaker {
      * Data is protected by the SSLEngine.this lock.
      */
     private volatile boolean taskDelegated = false;
-    private volatile DelegatedTask delegatedTask = null;
+    private volatile DelegatedTask<?> delegatedTask = null;
     private volatile Exception thrown = null;
 
     // Could probably use a java.util.concurrent.atomic.AtomicReference
@@ -1316,7 +1316,7 @@ abstract class Handshaker {
         thrown = null;
     }
 
-    DelegatedTask getTask() {
+    DelegatedTask<?> getTask() {
         if (!taskDelegated) {
             taskDelegated = true;
             return delegatedTask;
@@ -1358,8 +1358,7 @@ abstract class Handshaker {
                 thrown = null;
 
                 if (e instanceof RuntimeException) {
-                    throw (RuntimeException)
-                        new RuntimeException(msg).initCause(e);
+                    throw new RuntimeException(msg, e);
                 } else if (e instanceof SSLHandshakeException) {
                     throw (SSLHandshakeException)
                         new SSLHandshakeException(msg).initCause(e);
@@ -1377,8 +1376,7 @@ abstract class Handshaker {
                      * If it's SSLException or any other Exception,
                      * we'll wrap it in an SSLException.
                      */
-                    throw (SSLException)
-                        new SSLException(msg).initCause(e);
+                    throw new SSLException(msg, e);
                 }
             }
         }
diff --git a/jdk/src/share/classes/sun/security/ssl/JsseJce.java b/jdk/src/share/classes/sun/security/ssl/JsseJce.java
index d91b8f4..ee8348b 100644
--- a/jdk/src/share/classes/sun/security/ssl/JsseJce.java
+++ b/jdk/src/share/classes/sun/security/ssl/JsseJce.java
@@ -30,7 +30,6 @@ import java.math.BigInteger;
 
 import java.security.*;
 import java.security.interfaces.RSAPublicKey;
-import java.security.spec.RSAPublicKeySpec;
 import java.security.spec.*;
 
 import javax.crypto.*;
@@ -110,6 +109,8 @@ final class JsseJce {
     }
 
     private static final class SunCertificates extends Provider {
+        private static final long serialVersionUID = -3284138292032213752L;
+
         SunCertificates(final Provider p) {
             super("SunCertificates", 1.0d, "SunJSSE internal");
             AccessController.doPrivileged(new PrivilegedAction<Object>() {
@@ -372,7 +373,7 @@ final class JsseJce {
             KeyFactory factory = JsseJce.getKeyFactory("RSA");
             return factory.getKeySpec(key, RSAPublicKeySpec.class);
         } catch (Exception e) {
-            throw (RuntimeException)new RuntimeException().initCause(e);
+            throw new RuntimeException(e);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java
index ce78c10..461cbaa 100644
--- a/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java
+++ b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java
@@ -27,8 +27,6 @@ package sun.security.ssl;
 
 import java.io.*;
 import java.nio.*;
-import java.nio.ReadOnlyBufferException;
-import java.util.LinkedList;
 import java.security.*;
 
 import javax.crypto.BadPaddingException;
@@ -36,7 +34,6 @@ import javax.crypto.BadPaddingException;
 import javax.net.ssl.*;
 import javax.net.ssl.SSLEngineResult.*;
 
-import com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager;
 
 /**
  * Implementation of an non-blocking SSLEngine.
@@ -574,8 +571,7 @@ final public class SSLEngineImpl extends SSLEngine {
             readMAC = handshaker.newReadMAC();
         } catch (GeneralSecurityException e) {
             // "can't happen"
-            throw (SSLException)new SSLException
-                                ("Algorithm missing:  ").initCause(e);
+            throw new SSLException("Algorithm missing:  ", e);
         }
 
         /*
@@ -611,8 +607,7 @@ final public class SSLEngineImpl extends SSLEngine {
             writeMAC = handshaker.newWriteMAC();
         } catch (GeneralSecurityException e) {
             // "can't happen"
-            throw (SSLException)new SSLException
-                                ("Algorithm missing:  ").initCause(e);
+            throw new SSLException("Algorithm missing:  ", e);
         }
 
         // See comment above.
@@ -877,9 +872,7 @@ final public class SSLEngineImpl extends SSLEngine {
         } catch (SSLException e) {
             throw e;
         } catch (IOException e) {
-            SSLException ex = new SSLException("readRecord");
-            ex.initCause(e);
-            throw ex;
+            throw new SSLException("readRecord", e);
         }
 
         /*
@@ -1151,7 +1144,7 @@ final public class SSLEngineImpl extends SSLEngine {
          * For now, force it to be large enough to handle any
          * valid SSL/TLS record.
          */
-        if (netData.remaining() < outputRecord.maxRecordSize) {
+        if (netData.remaining() < EngineOutputRecord.maxRecordSize) {
             return new SSLEngineResult(
                 Status.BUFFER_OVERFLOW, getHSStatus(null), 0, 0);
         }
@@ -1248,9 +1241,7 @@ final public class SSLEngineImpl extends SSLEngine {
         } catch (SSLException e) {
             throw e;
         } catch (IOException e) {
-            SSLException ex = new SSLException("Write problems");
-            ex.initCause(e);
-            throw ex;
+            throw new SSLException("Write problems", e);
         }
 
         /*
@@ -1624,10 +1615,7 @@ final public class SSLEngineImpl extends SSLEngine {
             } else if (cause instanceof SSLException) {
                 throw (SSLException)cause;
             } else if (cause instanceof Exception) {
-                SSLException ssle = new SSLException(
-                    "fatal SSLEngine condition");
-                ssle.initCause(cause);
-                throw ssle;
+                throw new SSLException("fatal SSLEngine condition", cause);
             }
         }
 
@@ -1875,6 +1863,7 @@ final public class SSLEngineImpl extends SSLEngine {
      * client or server mode.  Must be called before any SSL
      * traffic has started.
      */
+    @SuppressWarnings("fallthrough")
     synchronized public void setUseClientMode(boolean flag) {
         switch (connectionState) {
 
diff --git a/jdk/src/share/classes/sun/security/ssl/SSLSessionContextImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLSessionContextImpl.java
index 15ac884..ce1336b 100644
--- a/jdk/src/share/classes/sun/security/ssl/SSLSessionContextImpl.java
+++ b/jdk/src/share/classes/sun/security/ssl/SSLSessionContextImpl.java
@@ -33,6 +33,7 @@ import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.NoSuchElementException;
 import java.util.Vector;
+import java.util.Locale;
 
 import javax.net.ssl.SSLSession;
 import javax.net.ssl.SSLSessionContext;
@@ -166,7 +167,8 @@ final class SSLSessionContextImpl implements SSLSessionContext {
     }
 
     private String getKey(String hostname, int port) {
-        return (hostname + ":" + String.valueOf(port)).toLowerCase();
+        return (hostname + ":" +
+            String.valueOf(port)).toLowerCase(Locale.ENGLISH);
     }
 
     // cache a SSLSession
diff --git a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java
index 8990793..5bfdd46 100644
--- a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java
+++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java
@@ -41,8 +41,6 @@ import javax.crypto.BadPaddingException;
 
 import javax.net.ssl.*;
 
-import com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager;
-
 /**
  * Implementation of an SSL socket.  This is a normal connection type
  * socket, implementing SSL over some lower level socket, such as TCP.
@@ -1996,8 +1994,7 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl {
             readMAC = handshaker.newReadMAC();
         } catch (GeneralSecurityException e) {
             // "can't happen"
-            throw (SSLException)new SSLException
-                                ("Algorithm missing:  ").initCause(e);
+            throw new SSLException("Algorithm missing:  ", e);
         }
 
         /*
@@ -2028,8 +2025,7 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl {
             writeMAC = handshaker.newWriteMAC();
         } catch (GeneralSecurityException e) {
             // "can't happen"
-            throw (SSLException)new SSLException
-                                ("Algorithm missing:  ").initCause(e);
+            throw new SSLException("Algorithm missing:  ", e);
         }
 
         // See comment above.
@@ -2217,6 +2213,7 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl {
      * client or server mode.  Must be called before any SSL
      * traffic has started.
      */
+    @SuppressWarnings("fallthrough")
     synchronized public void setUseClientMode(boolean flag) {
         switch (connectionState) {
 
diff --git a/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java b/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java
index bdf113d..eb0cca2 100644
--- a/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java
+++ b/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java
@@ -84,7 +84,7 @@ final class SunX509KeyManagerImpl extends X509ExtendedKeyManager {
      *
      * Map: String(keyType) -> String[](alias)
      */
-    private Map<String,String[]> serverAliasCache;
+    private final Map<String,String[]> serverAliasCache;
 
     /*
      * Basic container for credentials implemented as an inner class.
@@ -113,11 +113,13 @@ final class SunX509KeyManagerImpl extends X509ExtendedKeyManager {
         }
     }
 
-    SunX509KeyManagerImpl(KeyStore ks, char[] password) throws KeyStoreException,
+    SunX509KeyManagerImpl(KeyStore ks, char[] password)
+            throws KeyStoreException,
             NoSuchAlgorithmException, UnrecoverableKeyException {
 
         credentialsMap = new HashMap<String,X509Credentials>();
-        serverAliasCache = new HashMap<String,String[]>();
+        serverAliasCache = Collections.synchronizedMap(
+                            new HashMap<String,String[]>());
         if (ks == null) {
             return;
         }
@@ -352,15 +354,17 @@ final class SunX509KeyManagerImpl extends X509ExtendedKeyManager {
             if (sigType != null) {
                 if (certs.length > 1) {
                     // if possible, check the public key in the issuer cert
-                    if (!sigType.equals(certs[1].getPublicKey().getAlgorithm())) {
+                    if (!sigType.equals(
+                            certs[1].getPublicKey().getAlgorithm())) {
                         continue;
                     }
                 } else {
                     // Check the signature algorithm of the certificate itself.
                     // Look for the "withRSA" in "SHA1withRSA", etc.
                     String sigAlgName =
-                            certs[0].getSigAlgName().toUpperCase(Locale.ENGLISH);
-                    String pattern = "WITH" + sigType.toUpperCase(Locale.ENGLISH);
+                        certs[0].getSigAlgName().toUpperCase(Locale.ENGLISH);
+                    String pattern = "WITH" +
+                        sigType.toUpperCase(Locale.ENGLISH);
                     if (sigAlgName.contains(pattern) == false) {
                         continue;
                     }
@@ -412,5 +416,4 @@ final class SunX509KeyManagerImpl extends X509ExtendedKeyManager {
         }
         return list.toArray(new X500Principal[list.size()]);
     }
-
 }
diff --git a/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java b/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java
index 426f5bf..45e6c99 100644
--- a/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java
+++ b/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java
@@ -91,6 +91,8 @@ final class X509KeyManagerImpl extends X509ExtendedKeyManager
     // LinkedHashMap with a max size of 10
     // see LinkedHashMap JavaDocs
     private static class SizedMap<K,V> extends LinkedHashMap<K,V> {
+        private static final long serialVersionUID = -8211222668790986062L;
+
         @Override protected boolean removeEldestEntry(Map.Entry<K,V> eldest) {
             return size() > 10;
         }
@@ -247,7 +249,7 @@ final class X509KeyManagerImpl extends X509ExtendedKeyManager
                 return null;
             }
             entry = (PrivateKeyEntry)newEntry;
-            entryCacheMap.put(alias, new SoftReference(entry));
+            entryCacheMap.put(alias, new SoftReference<PrivateKeyEntry>(entry));
             return entry;
         } catch (Exception e) {
             // ignore
@@ -329,7 +331,7 @@ final class X509KeyManagerImpl extends X509ExtendedKeyManager
      */
     private String chooseAlias(List<KeyType> keyTypeList, Principal[] issuers,
             CheckType checkType, AlgorithmConstraints constraints) {
-        if (keyTypeList == null || keyTypeList.size() == 0) {
+        if (keyTypeList == null || keyTypeList.isEmpty()) {
             return null;
         }
 
@@ -403,7 +405,7 @@ final class X509KeyManagerImpl extends X509ExtendedKeyManager
                 // ignore
             }
         }
-        if (allResults == null || allResults.size() == 0) {
+        if (allResults == null || allResults.isEmpty()) {
             if (useDebug) {
                 debug.println("KeyMgr: no matching alias found");
             }
@@ -523,38 +525,43 @@ final class X509KeyManagerImpl extends X509ExtendedKeyManager
                 if (ku != null) {
                     String algorithm = cert.getPublicKey().getAlgorithm();
                     boolean kuSignature = getBit(ku, 0);
-                    if (algorithm.equals("RSA")) {
-                        // require either signature bit
-                        // or if server also allow key encipherment bit
-                        if (kuSignature == false) {
-                            if ((this == CLIENT) || (getBit(ku, 2) == false)) {
+                    switch (algorithm) {
+                        case "RSA":
+                            // require either signature bit
+                            // or if server also allow key encipherment bit
+                            if (kuSignature == false) {
+                                if ((this == CLIENT) || (getBit(ku, 2) == false)) {
+                                    return CheckResult.EXTENSION_MISMATCH;
+                                }
+                            }
+                            break;
+                        case "DSA":
+                            // require signature bit
+                            if (kuSignature == false) {
                                 return CheckResult.EXTENSION_MISMATCH;
                             }
-                        }
-                    } else if (algorithm.equals("DSA")) {
-                        // require signature bit
-                        if (kuSignature == false) {
-                            return CheckResult.EXTENSION_MISMATCH;
-                        }
-                    } else if (algorithm.equals("DH")) {
-                        // require keyagreement bit
-                        if (getBit(ku, 4) == false) {
-                            return CheckResult.EXTENSION_MISMATCH;
-                        }
-                    } else if (algorithm.equals("EC")) {
-                        // require signature bit
-                        if (kuSignature == false) {
-                            return CheckResult.EXTENSION_MISMATCH;
-                        }
-                        // For servers, also require key agreement.
-                        // This is not totally accurate as the keyAgreement bit
-                        // is only necessary for static ECDH key exchange and
-                        // not ephemeral ECDH. We leave it in for now until
-                        // there are signs that this check causes problems
-                        // for real world EC certificates.
-                        if ((this == SERVER) && (getBit(ku, 4) == false)) {
-                            return CheckResult.EXTENSION_MISMATCH;
-                        }
+                            break;
+                        case "DH":
+                            // require keyagreement bit
+                            if (getBit(ku, 4) == false) {
+                                return CheckResult.EXTENSION_MISMATCH;
+                            }
+                            break;
+                        case "EC":
+                            // require signature bit
+                            if (kuSignature == false) {
+                                return CheckResult.EXTENSION_MISMATCH;
+                            }
+                            // For servers, also require key agreement.
+                            // This is not totally accurate as the keyAgreement bit
+                            // is only necessary for static ECDH key exchange and
+                            // not ephemeral ECDH. We leave it in for now until
+                            // there are signs that this check causes problems
+                            // for real world EC certificates.
+                            if ((this == SERVER) && (getBit(ku, 4) == false)) {
+                                return CheckResult.EXTENSION_MISMATCH;
+                            }
+                            break;
                     }
                 }
             } catch (CertificateException e) {
diff --git a/jdk/src/share/classes/sun/security/timestamp/TSResponse.java b/jdk/src/share/classes/sun/security/timestamp/TSResponse.java
index ddda753..a6c10cc 100644
--- a/jdk/src/share/classes/sun/security/timestamp/TSResponse.java
+++ b/jdk/src/share/classes/sun/security/timestamp/TSResponse.java
@@ -372,6 +372,8 @@ public class TSResponse {
     }
 
     final static class TimestampException extends IOException {
+        private static final long serialVersionUID = -1631631794891940953L;
+
         TimestampException(String message) {
             super(message);
         }
diff --git a/jdk/src/share/classes/sun/security/tools/JarSigner.java b/jdk/src/share/classes/sun/security/tools/JarSigner.java
index a014dcc..fe3944f 100644
--- a/jdk/src/share/classes/sun/security/tools/JarSigner.java
+++ b/jdk/src/share/classes/sun/security/tools/JarSigner.java
@@ -1424,6 +1424,7 @@ public class JarSigner {
      * lines of attributes plus an empty line. The empty line is included
      * in the header.
      */
+    @SuppressWarnings("fallthrough")
     private int findHeaderEnd(byte[] bs) {
         // Initial state true to deal with empty header
         boolean newline = true;     // just met a newline
@@ -1504,6 +1505,9 @@ public class JarSigner {
             CertPath cp = certificateFactory.generateCertPath(certs);
             validator.validate(cp, pkixParameters);
         } catch (Exception e) {
+            if (debug) {
+                e.printStackTrace();
+            }
             chainNotValidated = true;
             s.append(tab + rb.getString(".CertPath.not.validated.") +
                     e.getLocalizedMessage() + "]\n");   // TODO
@@ -1560,6 +1564,27 @@ public class JarSigner {
         }
 
         try {
+
+            certificateFactory = CertificateFactory.getInstance("X.509");
+            validator = CertPathValidator.getInstance("PKIX");
+            Set<TrustAnchor> tas = new HashSet<>();
+            try {
+                KeyStore caks = KeyTool.getCacertsKeyStore();
+                if (caks != null) {
+                    Enumeration<String> aliases = caks.aliases();
+                    while (aliases.hasMoreElements()) {
+                        String a = aliases.nextElement();
+                        try {
+                            tas.add(new TrustAnchor((X509Certificate)caks.getCertificate(a), null));
+                        } catch (Exception e2) {
+                            // ignore, when a SecretkeyEntry does not include a cert
+                        }
+                    }
+                }
+            } catch (Exception e) {
+                // Ignore, if cacerts cannot be loaded
+            }
+
             if (providerName == null) {
                 store = KeyStore.getInstance(storetype);
             } else {
@@ -1578,45 +1603,28 @@ public class JarSigner {
                         (rb.getString("Enter.Passphrase.for.keystore."));
             }
 
-            if (nullStream) {
-                store.load(null, storepass);
-            } else {
-                keyStoreName = keyStoreName.replace(File.separatorChar, '/');
-                URL url = null;
-                try {
-                    url = new URL(keyStoreName);
-                } catch (java.net.MalformedURLException e) {
-                    // try as file
-                    url = new File(keyStoreName).toURI().toURL();
-                }
-                InputStream is = null;
-                try {
-                    is = url.openStream();
-                    store.load(is, storepass);
-                } finally {
-                    if (is != null) {
-                        is.close();
-                    }
-                }
-            }
-            Set<TrustAnchor> tas = new HashSet<>();
             try {
-                KeyStore caks = KeyTool.getCacertsKeyStore();
-                if (caks != null) {
-                    Enumeration<String> aliases = caks.aliases();
-                    while (aliases.hasMoreElements()) {
-                        String a = aliases.nextElement();
-                        try {
-                            tas.add(new TrustAnchor((X509Certificate)caks.getCertificate(a), null));
-                        } catch (Exception e2) {
-                            // ignore, when a SecretkeyEntry does not include a cert
+                if (nullStream) {
+                    store.load(null, storepass);
+                } else {
+                    keyStoreName = keyStoreName.replace(File.separatorChar, '/');
+                    URL url = null;
+                    try {
+                        url = new URL(keyStoreName);
+                    } catch (java.net.MalformedURLException e) {
+                        // try as file
+                        url = new File(keyStoreName).toURI().toURL();
+                    }
+                    InputStream is = null;
+                    try {
+                        is = url.openStream();
+                        store.load(is, storepass);
+                    } finally {
+                        if (is != null) {
+                            is.close();
                         }
                     }
                 }
-            } catch (Exception e) {
-                // Ignore, if cacerts cannot be loaded
-            }
-            if (store != null) {
                 Enumeration<String> aliases = store.aliases();
                 while (aliases.hasMoreElements()) {
                     String a = aliases.nextElement();
@@ -1632,14 +1640,13 @@ public class JarSigner {
                         // ignore, when a SecretkeyEntry does not include a cert
                     }
                 }
-            }
-            certificateFactory = CertificateFactory.getInstance("X.509");
-            validator = CertPathValidator.getInstance("PKIX");
-            try {
-                pkixParameters = new PKIXParameters(tas);
-                pkixParameters.setRevocationEnabled(false);
-            } catch (InvalidAlgorithmParameterException ex) {
-                // Only if tas is empty
+            } finally {
+                try {
+                    pkixParameters = new PKIXParameters(tas);
+                    pkixParameters.setRevocationEnabled(false);
+                } catch (InvalidAlgorithmParameterException ex) {
+                    // Only if tas is empty
+                }
             }
         } catch (IOException ioe) {
             throw new RuntimeException(rb.getString("keystore.load.") +
@@ -1738,8 +1745,7 @@ public class JarSigner {
                 NetscapeCertTypeExtension extn =
                         new NetscapeCertTypeExtension(encoded);
 
-                Boolean val = (Boolean)extn.get(
-                        NetscapeCertTypeExtension.OBJECT_SIGNING);
+                Boolean val = extn.get(NetscapeCertTypeExtension.OBJECT_SIGNING);
                 if (!val) {
                     if (bad != null) {
                         bad[2] = true;
@@ -1804,6 +1810,9 @@ public class JarSigner {
                 CertPath cp = certificateFactory.generateCertPath(Arrays.asList(certChain));
                 validator.validate(cp, pkixParameters);
             } catch (Exception e) {
+                if (debug) {
+                    e.printStackTrace();
+                }
                 chainNotValidated = true;
             }
 
@@ -2053,7 +2062,7 @@ public class JarSigner {
         ClassLoader appClassLoader = new URLClassLoader(urls);
 
         // attempt to find signer
-        Class signerClass = appClassLoader.loadClass(signerClassName);
+        Class<?> signerClass = appClassLoader.loadClass(signerClassName);
 
         // Check that it implements ContentSigner
         Object signer = signerClass.newInstance();
@@ -2296,9 +2305,7 @@ class SignatureFile {
                     tsaUri = new URI(tsaUrl);
                 }
             } catch (URISyntaxException e) {
-                IOException ioe = new IOException();
-                ioe.initCause(e);
-                throw ioe;
+                throw new IOException(e);
             }
 
             // Assemble parameters for the signing mechanism
diff --git a/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java b/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
index 8e03355..679a247 100644
--- a/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
+++ b/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
@@ -25,6 +25,8 @@
 
 package sun.security.tools;
 
+import java.util.Locale;
+
 /**
  * <p> This class provides several utilities to <code>KeyStore</code>.
  *
@@ -63,7 +65,7 @@ public class KeyStoreUtil {
         } else if(storetype.equalsIgnoreCase("Windows-ROOT")) {
             return "Windows-ROOT";
         } else {
-            return storetype.toUpperCase();
+            return storetype.toUpperCase(Locale.ENGLISH);
         }
     }
 }
diff --git a/jdk/src/share/classes/sun/security/tools/KeyTool.java b/jdk/src/share/classes/sun/security/tools/KeyTool.java
index 2259c03..2e67bce 100644
--- a/jdk/src/share/classes/sun/security/tools/KeyTool.java
+++ b/jdk/src/share/classes/sun/security/tools/KeyTool.java
@@ -1141,17 +1141,14 @@ public final class KeyTool {
             if (token) {
                 keyStore.store(null, null);
             } else {
-                FileOutputStream fout = null;
-                try {
-                    fout = (nullStream ?
-                                        (FileOutputStream)null :
-                                        new FileOutputStream(ksfname));
-                    keyStore.store
-                        (fout,
-                        (storePassNew!=null) ? storePassNew : storePass);
-                } finally {
-                    if (fout != null) {
-                        fout.close();
+                char[] pass = (storePassNew!=null) ? storePassNew : storePass;
+                if (nullStream) {
+                    keyStore.store(null, pass);
+                } else {
+                    ByteArrayOutputStream bout = new ByteArrayOutputStream();
+                    keyStore.store(bout, pass);
+                    try (FileOutputStream fout = new FileOutputStream(ksfname)) {
+                        fout.write(bout.toByteArray());
                     }
                 }
             }
@@ -1197,7 +1194,7 @@ public final class KeyTool {
                     new CertificateVersion(CertificateVersion.V3));
         info.set(X509CertInfo.ALGORITHM_ID,
                     new CertificateAlgorithmId(
-                        AlgorithmId.getAlgorithmId(sigAlgName)));
+                        AlgorithmId.get(sigAlgName)));
         info.set(X509CertInfo.ISSUER, new CertificateIssuerName(issuer));
 
         BufferedReader reader = new BufferedReader(new InputStreamReader(in));
@@ -1227,7 +1224,7 @@ public final class KeyTool {
         Iterator<PKCS10Attribute> attrs = req.getAttributes().getAttributes().iterator();
         while (attrs.hasNext()) {
             PKCS10Attribute attr = attrs.next();
-            if (attr.getAttributeId().equals(PKCS9Attribute.EXTENSION_REQUEST_OID)) {
+            if (attr.getAttributeId().equals((Object)PKCS9Attribute.EXTENSION_REQUEST_OID)) {
                 reqex = (CertificateExtensions)attr.getAttributeValue();
             }
         }
@@ -1266,7 +1263,7 @@ public final class KeyTool {
 
         Date firstDate = getStartDate(startDate);
         Date lastDate = (Date) firstDate.clone();
-        lastDate.setTime(lastDate.getTime() + (long)validity*1000*24*60*60);
+        lastDate.setTime(lastDate.getTime() + validity*1000*24*60*60);
         CertificateValidity interval = new CertificateValidity(firstDate,
                                                                lastDate);
 
@@ -1399,7 +1396,7 @@ public final class KeyTool {
     private char[] promptForKeyPass(String alias, String orig, char[] origPass) throws Exception{
         if (P12KEYSTORE.equalsIgnoreCase(storetype)) {
             return origPass;
-        } else if (!token) {
+        } else if (!token && !protectedPath) {
             // Prompt for key password
             int count;
             for (count = 0; count < 3; count++) {
@@ -1446,7 +1443,7 @@ public final class KeyTool {
                 }
             }
         }
-        return null;    // PKCS11
+        return null;    // PKCS11, MSCAPI, or -protected
     }
     /**
      * Creates a new secret key.
@@ -2093,8 +2090,9 @@ public final class KeyTool {
         CRLDistributionPointsExtension ext =
                 X509CertImpl.toImpl(cert).getCRLDistributionPointsExtension();
         if (ext == null) return crls;
-        for (DistributionPoint o: (List<DistributionPoint>)
-                ext.get(CRLDistributionPointsExtension.POINTS)) {
+        List<DistributionPoint> distPoints =
+                ext.get(CRLDistributionPointsExtension.POINTS);
+        for (DistributionPoint o: distPoints) {
             GeneralNames names = o.getFullName();
             if (names != null) {
                 for (GeneralName name: names.names()) {
@@ -2199,7 +2197,7 @@ public final class KeyTool {
                 req.getSubjectName(), pkey.getFormat(), pkey.getAlgorithm());
         for (PKCS10Attribute attr: req.getAttributes().getAttributes()) {
             ObjectIdentifier oid = attr.getAttributeId();
-            if (oid.equals(PKCS9Attribute.EXTENSION_REQUEST_OID)) {
+            if (oid.equals((Object)PKCS9Attribute.EXTENSION_REQUEST_OID)) {
                 CertificateExtensions exts = (CertificateExtensions)attr.getAttributeValue();
                 if (exts != null) {
                     printExtensions(rb.getString("Extension.Request."), exts, out);
@@ -2314,7 +2312,7 @@ public final class KeyTool {
                 }
             }
             jf.close();
-            if (ss.size() == 0) {
+            if (ss.isEmpty()) {
                 out.println(rb.getString("Not.a.signed.jar.file"));
             }
         } else if (sslserver != null) {
@@ -3745,7 +3743,7 @@ public final class KeyTool {
                             }
                             String n = reqex.getNameByOid(findOidForExtName(type));
                             if (add) {
-                                Extension e = (Extension)reqex.get(n);
+                                Extension e = reqex.get(n);
                                 if (!e.isCritical() && action == 0
                                         || e.isCritical() && action == 1) {
                                     e = Extension.newExtension(
diff --git a/jdk/src/share/classes/sun/security/tools/TimestampedSigner.java b/jdk/src/share/classes/sun/security/tools/TimestampedSigner.java
index 7d12ae3..b58405a 100644
--- a/jdk/src/share/classes/sun/security/tools/TimestampedSigner.java
+++ b/jdk/src/share/classes/sun/security/tools/TimestampedSigner.java
@@ -166,7 +166,8 @@ public final class TimestampedSigner extends ContentSigner {
             URIName uri;
             for (int i = 0; i < derValue.length; i++) {
                 description = new AccessDescription(derValue[i]);
-                if (description.getAccessMethod().equals(AD_TIMESTAMPING_Id)) {
+                if (description.getAccessMethod()
+                        .equals((Object)AD_TIMESTAMPING_Id)) {
                     location = description.getAccessLocation();
                     if (location.getType() == GeneralNameInterface.NAME_URI) {
                         uri = (URIName) location.getName();
diff --git a/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java b/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java
index 0325b59..267cc01 100644
--- a/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java
+++ b/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java
@@ -123,7 +123,7 @@ public class PolicyTool {
      * set the PolicyFileName
      */
     void setPolicyFileName(String policyFileName) {
-        this.policyFileName = policyFileName;
+        PolicyTool.policyFileName = policyFileName;
     }
 
    /**
@@ -605,7 +605,7 @@ public class PolicyTool {
         if (type.equals(PolicyParser.PrincipalEntry.WILDCARD_CLASS) ||
             type.equals(PolicyParser.REPLACE_NAME)) {
             return;
-        };
+        }
         Class<?> PRIN = Class.forName("java.security.Principal");
         Class<?> pc = Class.forName(type, true,
                 Thread.currentThread().getContextClassLoader());
@@ -629,6 +629,7 @@ public class PolicyTool {
     /**
      * Check to see if the Permission contents are OK
      */
+    @SuppressWarnings("fallthrough")
     void verifyPermission(String type,
                                     String name,
                                     String actions)
@@ -655,6 +656,7 @@ public class PolicyTool {
                 // proceed to the one-param constructor
                 objects.add(null);
             }
+            /* fall through */
         case 1:
             try {
                 c = pc.getConstructor(ONEPARAMS);
@@ -663,6 +665,7 @@ public class PolicyTool {
                 // proceed to the two-param constructor
                 objects.add(null);
             }
+            /* fall through */
         case 2:
             c = pc.getConstructor(TWOPARAMS);
             break;
@@ -1553,16 +1556,15 @@ class ToolDialog extends Dialog {
         if (edit) {
             // get the selected item
             entries = tool.getEntry();
-            List policyList = (List)tw.getComponent(tw.MW_POLICY_LIST);
+            List policyList = (List)tw.getComponent(ToolWindow.MW_POLICY_LIST);
             listIndex = policyList.getSelectedIndex();
 
             // get principal list
-            LinkedList principals =
+            LinkedList<PolicyParser.PrincipalEntry> principals =
                 entries[listIndex].getGrantEntry().principals;
             for (int i = 0; i < principals.size(); i++) {
                 String prinString = null;
-                PolicyParser.PrincipalEntry nextPrin =
-                        (PolicyParser.PrincipalEntry)principals.get(i);
+                PolicyParser.PrincipalEntry nextPrin = principals.get(i);
                 prinList.addTaggedItem(PrincipalEntryToUserFriendlyString(nextPrin), nextPrin);
             }
 
@@ -1631,10 +1633,10 @@ class ToolDialog extends Dialog {
         label = new Label(PolicyTool.rb.getString("Principals."));
         tw.addNewComponent(this, label, PE_PRIN_LABEL,
                            0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.BOTTOM_PADDING);
+                           ToolWindow.BOTTOM_PADDING);
         tw.addNewComponent(this, prinList, PE_PRIN_LIST,
                            1, 3, 3, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.BOTTOM_PADDING);
+                           ToolWindow.BOTTOM_PADDING);
 
         // panel for permission buttons
         panel = new Panel();
@@ -1661,12 +1663,12 @@ class ToolDialog extends Dialog {
 
         tw.addNewComponent(this, panel, PE_PANEL1,
                 0, 4, 2, 1, 0.0, 0.0, GridBagConstraints.HORIZONTAL,
-                tw.LITE_BOTTOM_PADDING);
+                ToolWindow.LITE_BOTTOM_PADDING);
 
         // permission list
         tw.addNewComponent(this, permList, PE_PERM_LIST,
                            0, 5, 3, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.BOTTOM_PADDING);
+                           ToolWindow.BOTTOM_PADDING);
 
 
         // panel for Done and Cancel buttons
@@ -1679,14 +1681,14 @@ class ToolDialog extends Dialog {
                 (new AddEntryDoneButtonListener(tool, tw, this, edit));
         tw.addNewComponent(panel, button, PE_DONE_BUTTON,
                            0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
 
         // Cancel Button
         button = new Button(PolicyTool.rb.getString("Cancel"));
         button.addActionListener(new CancelButtonListener(this));
         tw.addNewComponent(panel, button, PE_CANCEL_BUTTON,
                            1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
 
         // add the panel
         tw.addNewComponent(this, panel, PE_PANEL2,
@@ -1760,7 +1762,7 @@ class ToolDialog extends Dialog {
                         (PolicyTool.rb.getString("KeyStore.URL."));
             tw.addNewComponent(this, label, KSD_NAME_LABEL,
                                0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                               tw.BOTTOM_PADDING);
+                               ToolWindow.BOTTOM_PADDING);
             TextField tf = new TextField(tool.getKeyStoreName(), 30);
 
             // URL to U R L, so that accessibility reader will pronounce well
@@ -1768,45 +1770,45 @@ class ToolDialog extends Dialog {
                 PolicyTool.rb.getString("KeyStore.U.R.L."));
             tw.addNewComponent(this, tf, KSD_NAME_TEXTFIELD,
                                1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                               tw.BOTTOM_PADDING);
+                               ToolWindow.BOTTOM_PADDING);
 
             // KeyStore type and textfield
             label = new Label(PolicyTool.rb.getString("KeyStore.Type."));
             tw.addNewComponent(this, label, KSD_TYPE_LABEL,
                                0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                               tw.BOTTOM_PADDING);
+                               ToolWindow.BOTTOM_PADDING);
             tf = new TextField(tool.getKeyStoreType(), 30);
             tf.getAccessibleContext().setAccessibleName(
                 PolicyTool.rb.getString("KeyStore.Type."));
             tw.addNewComponent(this, tf, KSD_TYPE_TEXTFIELD,
                                1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                               tw.BOTTOM_PADDING);
+                               ToolWindow.BOTTOM_PADDING);
 
             // KeyStore provider and textfield
             label = new Label(PolicyTool.rb.getString
                                 ("KeyStore.Provider."));
             tw.addNewComponent(this, label, KSD_PROVIDER_LABEL,
                                0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                               tw.BOTTOM_PADDING);
+                               ToolWindow.BOTTOM_PADDING);
             tf = new TextField(tool.getKeyStoreProvider(), 30);
             tf.getAccessibleContext().setAccessibleName(
                 PolicyTool.rb.getString("KeyStore.Provider."));
             tw.addNewComponent(this, tf, KSD_PROVIDER_TEXTFIELD,
                                1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                               tw.BOTTOM_PADDING);
+                               ToolWindow.BOTTOM_PADDING);
 
             // KeyStore password URL and textfield
             label = new Label(PolicyTool.rb.getString
                                 ("KeyStore.Password.URL."));
             tw.addNewComponent(this, label, KSD_PWD_URL_LABEL,
                                0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                               tw.BOTTOM_PADDING);
+                               ToolWindow.BOTTOM_PADDING);
             tf = new TextField(tool.getKeyStorePwdURL(), 30);
             tf.getAccessibleContext().setAccessibleName(
                 PolicyTool.rb.getString("KeyStore.Password.U.R.L."));
             tw.addNewComponent(this, tf, KSD_PWD_URL_TEXTFIELD,
                                1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                               tw.BOTTOM_PADDING);
+                               ToolWindow.BOTTOM_PADDING);
 
             // OK button
             Button okButton = new Button(PolicyTool.rb.getString("OK"));
@@ -1862,7 +1864,7 @@ class ToolDialog extends Dialog {
                 new Label(PolicyTool.rb.getString(".Add.New.Principal.")));
         tw.addNewComponent(newTD, label, PRD_DESC_LABEL,
                            0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.TOP_BOTTOM_PADDING);
+                           ToolWindow.TOP_BOTTOM_PADDING);
 
         // principal choice
         Choice choice = new Choice();
@@ -1888,7 +1890,7 @@ class ToolDialog extends Dialog {
 
         tw.addNewComponent(newTD, choice, PRD_PRIN_CHOICE,
                            0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
 
         // principal textfield
         TextField tf;
@@ -1898,7 +1900,7 @@ class ToolDialog extends Dialog {
         tf.getAccessibleContext().setAccessibleName(PRIN_TYPE);
         tw.addNewComponent(newTD, tf, PRD_PRIN_TEXTFIELD,
                            1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
 
         // name label and textfield
         label = new Label(PRIN_NAME);
@@ -1909,10 +1911,10 @@ class ToolDialog extends Dialog {
 
         tw.addNewComponent(newTD, label, PRD_NAME_LABEL,
                            0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
         tw.addNewComponent(newTD, tf, PRD_NAME_TEXTFIELD,
                            1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
 
         // OK button
         Button okButton = new Button(PolicyTool.rb.getString("OK"));
@@ -1921,13 +1923,13 @@ class ToolDialog extends Dialog {
                                         (tool, tw, this, newTD, edit));
         tw.addNewComponent(newTD, okButton, PRD_OK_BUTTON,
                            0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL,
-                           tw.TOP_BOTTOM_PADDING);
+                           ToolWindow.TOP_BOTTOM_PADDING);
         // cancel button
         Button cancelButton = new Button(PolicyTool.rb.getString("Cancel"));
         cancelButton.addActionListener(new CancelButtonListener(newTD));
         tw.addNewComponent(newTD, cancelButton, PRD_CANCEL_BUTTON,
                            1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL,
-                           tw.TOP_BOTTOM_PADDING);
+                           ToolWindow.TOP_BOTTOM_PADDING);
 
         newTD.setVisible(true);
     }
@@ -1969,7 +1971,7 @@ class ToolDialog extends Dialog {
                 new Label(PolicyTool.rb.getString(".Add.New.Permission.")));
         tw.addNewComponent(newTD, label, PD_DESC_LABEL,
                            0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.TOP_BOTTOM_PADDING);
+                           ToolWindow.TOP_BOTTOM_PADDING);
 
         // permission choice (added in alphabetical order)
         Choice choice = new Choice();
@@ -1982,7 +1984,7 @@ class ToolDialog extends Dialog {
         choice.addItemListener(new PermissionMenuListener(newTD));
         tw.addNewComponent(newTD, choice, PD_PERM_CHOICE,
                            0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
 
         // permission textfield
         TextField tf;
@@ -1996,7 +1998,7 @@ class ToolDialog extends Dialog {
         }
         tw.addNewComponent(newTD, tf, PD_PERM_TEXTFIELD,
                            1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
 
         // name label and textfield
         choice = new Choice();
@@ -2010,10 +2012,10 @@ class ToolDialog extends Dialog {
         }
         tw.addNewComponent(newTD, choice, PD_NAME_CHOICE,
                            0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
         tw.addNewComponent(newTD, tf, PD_NAME_TEXTFIELD,
                            1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
 
         // actions label and textfield
         choice = new Choice();
@@ -2027,22 +2029,22 @@ class ToolDialog extends Dialog {
         }
         tw.addNewComponent(newTD, choice, PD_ACTIONS_CHOICE,
                            0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
         tw.addNewComponent(newTD, tf, PD_ACTIONS_TEXTFIELD,
                            1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
 
         // signedby label and textfield
         label = new Label(PolicyTool.rb.getString("Signed.By."));
         tw.addNewComponent(newTD, label, PD_SIGNEDBY_LABEL,
                            0, 4, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
         tf = (edit ? new TextField(editMe.signedBy, 40) : new TextField(40));
         tf.getAccessibleContext().setAccessibleName(
                 PolicyTool.rb.getString("Signed.By."));
         tw.addNewComponent(newTD, tf, PD_SIGNEDBY_TEXTFIELD,
                            1, 4, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.LR_PADDING);
+                           ToolWindow.LR_PADDING);
 
         // OK button
         Button okButton = new Button(PolicyTool.rb.getString("OK"));
@@ -2051,14 +2053,14 @@ class ToolDialog extends Dialog {
                                     (tool, tw, this, newTD, edit));
         tw.addNewComponent(newTD, okButton, PD_OK_BUTTON,
                            0, 5, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL,
-                           tw.TOP_BOTTOM_PADDING);
+                           ToolWindow.TOP_BOTTOM_PADDING);
 
         // cancel button
         Button cancelButton = new Button(PolicyTool.rb.getString("Cancel"));
         cancelButton.addActionListener(new CancelButtonListener(newTD));
         tw.addNewComponent(newTD, cancelButton, PD_CANCEL_BUTTON,
                            1, 5, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL,
-                           tw.TOP_BOTTOM_PADDING);
+                           ToolWindow.TOP_BOTTOM_PADDING);
 
         newTD.setVisible(true);
     }
@@ -2205,7 +2207,7 @@ class ToolDialog extends Dialog {
     void displayConfirmRemovePolicyEntry() {
 
         // find the entry to be removed
-        List list = (List)tw.getComponent(tw.MW_POLICY_LIST);
+        List list = (List)tw.getComponent(ToolWindow.MW_POLICY_LIST);
         int index = list.getSelectedIndex();
         PolicyEntry entries[] = tool.getEntry();
 
@@ -2219,7 +2221,7 @@ class ToolDialog extends Dialog {
                 (PolicyTool.rb.getString("Remove.this.Policy.Entry."));
         tw.addNewComponent(this, label, CRPE_LABEL1,
                            0, 0, 2, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                           tw.BOTTOM_PADDING);
+                           ToolWindow.BOTTOM_PADDING);
 
         // display the policy entry
         label = new Label(entries[index].codebaseToString());
@@ -2237,7 +2239,8 @@ class ToolDialog extends Dialog {
             if (i == (perms.size()-1)) {
                 tw.addNewComponent(this, label, CRPE_LABEL2 + 2 + i,
                                  1, 3 + i, 1, 1, 0.0, 0.0,
-                                 GridBagConstraints.BOTH, tw.BOTTOM_PADDING);
+                                 GridBagConstraints.BOTH,
+                                 ToolWindow.BOTTOM_PADDING);
             } else {
                 tw.addNewComponent(this, label, CRPE_LABEL2 + 2 + i,
                                  1, 3 + i, 1, 1, 0.0, 0.0,
@@ -2256,18 +2259,18 @@ class ToolDialog extends Dialog {
                 (new ConfirmRemovePolicyEntryOKButtonListener(tool, tw, this));
         tw.addNewComponent(panel, okButton, CRPE_PANEL_OK,
                            0, 0, 1, 1, 0.0, 0.0,
-                           GridBagConstraints.VERTICAL, tw.LR_PADDING);
+                           GridBagConstraints.VERTICAL, ToolWindow.LR_PADDING);
 
         // cancel button
         Button cancelButton = new Button(PolicyTool.rb.getString("Cancel"));
         cancelButton.addActionListener(new CancelButtonListener(this));
         tw.addNewComponent(panel, cancelButton, CRPE_PANEL_CANCEL,
                            1, 0, 1, 1, 0.0, 0.0,
-                           GridBagConstraints.VERTICAL, tw.LR_PADDING);
+                           GridBagConstraints.VERTICAL, ToolWindow.LR_PADDING);
 
         tw.addNewComponent(this, panel, CRPE_LABEL2 + 2 + perms.size(),
                            0, 3 + perms.size(), 2, 1, 0.0, 0.0,
-                           GridBagConstraints.VERTICAL, tw.TOP_BOTTOM_PADDING);
+                           GridBagConstraints.VERTICAL, ToolWindow.TOP_BOTTOM_PADDING);
 
         pack();
         setVisible(true);
@@ -2310,7 +2313,7 @@ class ToolDialog extends Dialog {
 
             // display the new policy filename
             TextField newFilename = (TextField)tw.getComponent
-                            (tw.MW_FILENAME_TEXTFIELD);
+                            (ToolWindow.MW_FILENAME_TEXTFIELD);
             newFilename.setText(filename);
             tw.setVisible(true);
 
@@ -2346,7 +2349,7 @@ class ToolDialog extends Dialog {
                 (PolicyTool.rb.getString("Save.changes."));
             tw.addNewComponent(this, label, USC_LABEL,
                                0, 0, 3, 1, 0.0, 0.0, GridBagConstraints.BOTH,
-                               tw.L_TOP_BOTTOM_PADDING);
+                               ToolWindow.L_TOP_BOTTOM_PADDING);
 
             Panel panel = new Panel();
             panel.setLayout(new GridBagLayout());
@@ -2357,21 +2360,21 @@ class ToolDialog extends Dialog {
             tw.addNewComponent(panel, yesButton, USC_YES_BUTTON,
                                0, 0, 1, 1, 0.0, 0.0,
                                GridBagConstraints.VERTICAL,
-                               tw.LR_BOTTOM_PADDING);
+                               ToolWindow.LR_BOTTOM_PADDING);
             Button noButton = new Button(PolicyTool.rb.getString("No"));
             noButton.addActionListener
                         (new UserSaveNoButtonListener(this, tool, tw, select));
             tw.addNewComponent(panel, noButton, USC_NO_BUTTON,
                                1, 0, 1, 1, 0.0, 0.0,
                                GridBagConstraints.VERTICAL,
-                               tw.LR_BOTTOM_PADDING);
+                               ToolWindow.LR_BOTTOM_PADDING);
             Button cancelButton = new Button(PolicyTool.rb.getString("Cancel"));
             cancelButton.addActionListener
                         (new UserSaveCancelButtonListener(this));
             tw.addNewComponent(panel, cancelButton, USC_CANCEL_BUTTON,
                                2, 0, 1, 1, 0.0, 0.0,
                                GridBagConstraints.VERTICAL,
-                               tw.LR_BOTTOM_PADDING);
+                               ToolWindow.LR_BOTTOM_PADDING);
 
             tw.addNewComponent(this, panel, USC_PANEL,
                                0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH);
@@ -2391,6 +2394,7 @@ class ToolDialog extends Dialog {
      * (either QUITting, opening NEW policy file, or OPENing an existing
      * policy file.  do that now.
      */
+    @SuppressWarnings("fallthrough")
     void userSaveContinue(PolicyTool tool, ToolWindow tw,
                         ToolDialog us, int select) {
 
@@ -2417,8 +2421,8 @@ class ToolDialog extends Dialog {
             tw.replacePolicyList(list);
 
             // display null policy filename and keystore
-            TextField newFilename = (TextField)
-                                tw.getComponent(tw.MW_FILENAME_TEXTFIELD);
+            TextField newFilename = (TextField)tw.getComponent(
+                    ToolWindow.MW_FILENAME_TEXTFIELD);
             newFilename.setText("");
             tw.setVisible(true);
             break;
@@ -2459,8 +2463,8 @@ class ToolDialog extends Dialog {
                 tool.modified = false;
 
                 // display the new policy filename
-                newFilename = (TextField)
-                                tw.getComponent(tw.MW_FILENAME_TEXTFIELD);
+                newFilename = (TextField)tw.getComponent(
+                        ToolWindow.MW_FILENAME_TEXTFIELD);
                 newFilename.setText(policyFile);
                 tw.setVisible(true);
 
@@ -2479,8 +2483,8 @@ class ToolDialog extends Dialog {
                 tool.modified = false;
 
                 // display a null policy filename
-                newFilename = (TextField)
-                                tw.getComponent(tw.MW_FILENAME_TEXTFIELD);
+                newFilename = (TextField)tw.getComponent(
+                        ToolWindow.MW_FILENAME_TEXTFIELD);
                 newFilename.setText("");
                 tw.setVisible(true);
 
@@ -2658,51 +2662,52 @@ class FileMenuListener implements ActionListener {
 
     public void actionPerformed(ActionEvent e) {
 
-        if (PolicyTool.collator.compare(e.getActionCommand(), tw.QUIT) == 0) {
+        if (PolicyTool.collator.compare(e.getActionCommand(),
+                                       ToolWindow.QUIT) == 0) {
 
             // ask user if they want to save changes
             ToolDialog td = new ToolDialog
                 (PolicyTool.rb.getString("Save.Changes"), tool, tw, true);
-            td.displayUserSave(td.QUIT);
+            td.displayUserSave(ToolDialog.QUIT);
 
             // the above method will perform the QUIT as long as the
             // user does not CANCEL the request
 
         } else if (PolicyTool.collator.compare(e.getActionCommand(),
-                                        tw.NEW_POLICY_FILE) == 0) {
+                                   ToolWindow.NEW_POLICY_FILE) == 0) {
 
             // ask user if they want to save changes
             ToolDialog td = new ToolDialog
                 (PolicyTool.rb.getString("Save.Changes"), tool, tw, true);
-            td.displayUserSave(td.NEW);
+            td.displayUserSave(ToolDialog.NEW);
 
             // the above method will perform the NEW as long as the
             // user does not CANCEL the request
 
         } else if (PolicyTool.collator.compare(e.getActionCommand(),
-                                        tw.OPEN_POLICY_FILE) == 0) {
+                                  ToolWindow.OPEN_POLICY_FILE) == 0) {
 
             // ask user if they want to save changes
             ToolDialog td = new ToolDialog
                 (PolicyTool.rb.getString("Save.Changes"), tool, tw, true);
-            td.displayUserSave(td.OPEN);
+            td.displayUserSave(ToolDialog.OPEN);
 
             // the above method will perform the OPEN as long as the
             // user does not CANCEL the request
 
         } else if (PolicyTool.collator.compare(e.getActionCommand(),
-                                        tw.SAVE_POLICY_FILE) == 0) {
+                                  ToolWindow.SAVE_POLICY_FILE) == 0) {
 
             // get the previously entered filename
-            String filename = ((TextField)
-                    tw.getComponent(tw.MW_FILENAME_TEXTFIELD)).getText();
+            String filename = ((TextField)tw.getComponent(
+                    ToolWindow.MW_FILENAME_TEXTFIELD)).getText();
 
             // if there is no filename, do a SAVE_AS
             if (filename == null || filename.length() == 0) {
                 // user wants to SAVE AS
                 ToolDialog td = new ToolDialog
                         (PolicyTool.rb.getString("Save.As"), tool, tw, true);
-                td.displaySaveAsDialog(td.NOACTION);
+                td.displaySaveAsDialog(ToolDialog.NOACTION);
             } else {
                 try {
                     // save the policy entries to a file
@@ -2726,15 +2731,15 @@ class FileMenuListener implements ActionListener {
                 }
             }
         } else if (PolicyTool.collator.compare(e.getActionCommand(),
-                                                tw.SAVE_AS_POLICY_FILE) == 0) {
+                               ToolWindow.SAVE_AS_POLICY_FILE) == 0) {
 
             // user wants to SAVE AS
             ToolDialog td = new ToolDialog
                 (PolicyTool.rb.getString("Save.As"), tool, tw, true);
-            td.displaySaveAsDialog(td.NOACTION);
+            td.displaySaveAsDialog(ToolDialog.NOACTION);
 
         } else if (PolicyTool.collator.compare(e.getActionCommand(),
-                                                tw.VIEW_WARNINGS) == 0) {
+                                     ToolWindow.VIEW_WARNINGS) == 0) {
             tw.displayWarningLog(null);
         }
     }
@@ -2756,7 +2761,7 @@ class MainWindowListener implements ActionListener {
     public void actionPerformed(ActionEvent e) {
 
         if (PolicyTool.collator.compare(e.getActionCommand(),
-                                        tw.ADD_POLICY_ENTRY) == 0) {
+                           ToolWindow.ADD_POLICY_ENTRY) == 0) {
 
             // display a dialog box for the user to enter policy info
             ToolDialog td = new ToolDialog
@@ -2764,10 +2769,10 @@ class MainWindowListener implements ActionListener {
             td.displayPolicyEntryDialog(false);
 
         } else if (PolicyTool.collator.compare(e.getActionCommand(),
-                                        tw.REMOVE_POLICY_ENTRY) == 0) {
+                               ToolWindow.REMOVE_POLICY_ENTRY) == 0) {
 
             // get the selected entry
-            List list = (List)tw.getComponent(tw.MW_POLICY_LIST);
+            List list = (List)tw.getComponent(ToolWindow.MW_POLICY_LIST);
             int index = list.getSelectedIndex();
             if (index < 0) {
                 tw.displayErrorDialog(null, new Exception
@@ -2781,10 +2786,10 @@ class MainWindowListener implements ActionListener {
             td.displayConfirmRemovePolicyEntry();
 
         } else if (PolicyTool.collator.compare(e.getActionCommand(),
-                                        tw.EDIT_POLICY_ENTRY) == 0) {
+                                 ToolWindow.EDIT_POLICY_ENTRY) == 0) {
 
             // get the selected entry
-            List list = (List)tw.getComponent(tw.MW_POLICY_LIST);
+            List list = (List)tw.getComponent(ToolWindow.MW_POLICY_LIST);
             int index = list.getSelectedIndex();
             if (index < 0) {
                 tw.displayErrorDialog(null, new Exception
@@ -2798,12 +2803,12 @@ class MainWindowListener implements ActionListener {
             td.displayPolicyEntryDialog(true);
 
         } else if (PolicyTool.collator.compare(e.getActionCommand(),
-                                        tw.EDIT_KEYSTORE) == 0) {
+                                     ToolWindow.EDIT_KEYSTORE) == 0) {
 
             // display a dialog box for the user to enter keystore info
             ToolDialog td = new ToolDialog
                 (PolicyTool.rb.getString("KeyStore"), tool, tw, true);
-            td.keyStoreDialog(td.EDIT_KEYSTORE);
+            td.keyStoreDialog(ToolDialog.EDIT_KEYSTORE);
         }
     }
 }
@@ -2855,7 +2860,7 @@ class AddEntryDoneButtonListener implements ActionListener {
             }
 
             // add the entry
-            List policyList = (List)tw.getComponent(tw.MW_POLICY_LIST);
+            List policyList = (List)tw.getComponent(ToolWindow.MW_POLICY_LIST);
             if (edit) {
                 int listIndex = policyList.getSelectedIndex();
                 tool.addEntry(newEntry, listIndex);
@@ -2896,14 +2901,14 @@ class ChangeKeyStoreOKButtonListener implements ActionListener {
 
     public void actionPerformed(ActionEvent e) {
 
-        String URLString = ((TextField)
-                td.getComponent(td.KSD_NAME_TEXTFIELD)).getText().trim();
-        String type = ((TextField)
-                td.getComponent(td.KSD_TYPE_TEXTFIELD)).getText().trim();
-        String provider = ((TextField)
-                td.getComponent(td.KSD_PROVIDER_TEXTFIELD)).getText().trim();
-        String pwdURL = ((TextField)
-                td.getComponent(td.KSD_PWD_URL_TEXTFIELD)).getText().trim();
+        String URLString = ((TextField)td.getComponent(
+                ToolDialog.KSD_NAME_TEXTFIELD)).getText().trim();
+        String type = ((TextField)td.getComponent(
+                ToolDialog.KSD_TYPE_TEXTFIELD)).getText().trim();
+        String provider = ((TextField)td.getComponent(
+                ToolDialog.KSD_PROVIDER_TEXTFIELD)).getText().trim();
+        String pwdURL = ((TextField)td.getComponent(
+                ToolDialog.KSD_PWD_URL_TEXTFIELD)).getText().trim();
 
         try {
             tool.openKeyStore
@@ -3018,7 +3023,7 @@ class NewPolicyPrinOKButtonListener implements ActionListener {
 
                 // add the principal to the GUI principal list
                 TaggedList prinList =
-                    (TaggedList)listDialog.getComponent(listDialog.PE_PRIN_LIST);
+                    (TaggedList)listDialog.getComponent(ToolDialog.PE_PRIN_LIST);
 
                 String prinString = ToolDialog.PrincipalEntryToUserFriendlyString(pppe);
                 if (edit) {
@@ -3079,7 +3084,7 @@ class NewPolicyPermOKButtonListener implements ActionListener {
 
             // add the permission to the GUI permission list
             TaggedList permList =
-                (TaggedList)listDialog.getComponent(listDialog.PE_PERM_LIST);
+                (TaggedList)listDialog.getComponent(ToolDialog.PE_PERM_LIST);
 
             String permString = ToolDialog.PermissionEntryToUserFriendlyString(pppe);
             if (edit) {
@@ -3121,7 +3126,8 @@ class RemovePrinButtonListener implements ActionListener {
     public void actionPerformed(ActionEvent e) {
 
         // get the Principal selected from the Principal List
-        TaggedList prinList = (TaggedList)td.getComponent(td.PE_PRIN_LIST);
+        TaggedList prinList = (TaggedList)td.getComponent(
+                ToolDialog.PE_PRIN_LIST);
         int prinIndex = prinList.getSelectedIndex();
 
         if (prinIndex < 0) {
@@ -3155,7 +3161,8 @@ class RemovePermButtonListener implements ActionListener {
     public void actionPerformed(ActionEvent e) {
 
         // get the Permission selected from the Permission List
-        TaggedList permList = (TaggedList)td.getComponent(td.PE_PERM_LIST);
+        TaggedList permList = (TaggedList)td.getComponent(
+                ToolDialog.PE_PERM_LIST);
         int permIndex = permList.getSelectedIndex();
 
         if (permIndex < 0) {
@@ -3196,7 +3203,8 @@ class EditPrinButtonListener implements ActionListener {
     public void actionPerformed(ActionEvent e) {
 
         // get the Principal selected from the Principal List
-        TaggedList list = (TaggedList)td.getComponent(td.PE_PRIN_LIST);
+        TaggedList list = (TaggedList)td.getComponent(
+                ToolDialog.PE_PRIN_LIST);
         int prinIndex = list.getSelectedIndex();
 
         if (prinIndex < 0) {
@@ -3235,7 +3243,7 @@ class EditPermButtonListener implements ActionListener {
     public void actionPerformed(ActionEvent e) {
 
         // get the Permission selected from the Permission List
-        List list = (List)td.getComponent(td.PE_PERM_LIST);
+        List list = (List)td.getComponent(ToolDialog.PE_PERM_LIST);
         int permIndex = list.getSelectedIndex();
 
         if (permIndex < 0) {
@@ -3260,19 +3268,19 @@ class PrincipalTypeMenuListener implements ItemListener {
 
     public void itemStateChanged(ItemEvent e) {
 
-        Choice prin = (Choice)td.getComponent(td.PRD_PRIN_CHOICE);
-        TextField prinField =
-                        (TextField)td.getComponent(td.PRD_PRIN_TEXTFIELD);
-        TextField nameField =
-                        (TextField)td.getComponent(td.PRD_NAME_TEXTFIELD);
+        Choice prin = (Choice)td.getComponent(ToolDialog.PRD_PRIN_CHOICE);
+        TextField prinField = (TextField)td.getComponent(
+                ToolDialog.PRD_PRIN_TEXTFIELD);
+        TextField nameField = (TextField)td.getComponent(
+                ToolDialog.PRD_NAME_TEXTFIELD);
 
         prin.getAccessibleContext().setAccessibleName(
             PolicyTool.splitToWords((String)e.getItem()));
-        if (((String)e.getItem()).equals(td.PRIN_TYPE)) {
+        if (((String)e.getItem()).equals(ToolDialog.PRIN_TYPE)) {
             // ignore if they choose "Principal Type:" item
             if (prinField.getText() != null &&
                 prinField.getText().length() > 0) {
-                Prin inputPrin = td.getPrin(prinField.getText(), true);
+                Prin inputPrin = ToolDialog.getPrin(prinField.getText(), true);
                 prin.select(inputPrin.CLASS);
             }
             return;
@@ -3286,7 +3294,7 @@ class PrincipalTypeMenuListener implements ItemListener {
         // set the text in the textfield and also modify the
         // pull-down choice menus to reflect the correct possible
         // set of names and actions
-        Prin inputPrin = td.getPrin((String)e.getItem(), false);
+        Prin inputPrin = ToolDialog.getPrin((String)e.getItem(), false);
         if (inputPrin != null) {
             prinField.setText(inputPrin.FULL_CLASS);
         }
@@ -3306,26 +3314,31 @@ class PermissionMenuListener implements ItemListener {
 
     public void itemStateChanged(ItemEvent e) {
 
-        Choice perms = (Choice)td.getComponent(td.PD_PERM_CHOICE);
-        Choice names = (Choice)td.getComponent(td.PD_NAME_CHOICE);
-        Choice actions = (Choice)td.getComponent(td.PD_ACTIONS_CHOICE);
-        TextField nameField =
-                        (TextField)td.getComponent(td.PD_NAME_TEXTFIELD);
-        TextField actionsField =
-                        (TextField)td.getComponent(td.PD_ACTIONS_TEXTFIELD);
-        TextField permField = (TextField)td.getComponent(td.PD_PERM_TEXTFIELD);
-        TextField signedbyField =
-                        (TextField)td.getComponent(td.PD_SIGNEDBY_TEXTFIELD);
+        Choice perms = (Choice)td.getComponent(
+                ToolDialog.PD_PERM_CHOICE);
+        Choice names = (Choice)td.getComponent(
+                ToolDialog.PD_NAME_CHOICE);
+        Choice actions = (Choice)td.getComponent(
+                ToolDialog.PD_ACTIONS_CHOICE);
+        TextField nameField = (TextField)td.getComponent(
+                ToolDialog.PD_NAME_TEXTFIELD);
+        TextField actionsField = (TextField)td.getComponent(
+                ToolDialog.PD_ACTIONS_TEXTFIELD);
+        TextField permField = (TextField)td.getComponent(
+                ToolDialog.PD_PERM_TEXTFIELD);
+        TextField signedbyField = (TextField)td.getComponent(
+                ToolDialog.PD_SIGNEDBY_TEXTFIELD);
 
         perms.getAccessibleContext().setAccessibleName(
             PolicyTool.splitToWords((String)e.getItem()));
 
         // ignore if they choose the 'Permission:' item
-        if (PolicyTool.collator.compare((String)e.getItem(), td.PERM) == 0) {
+        if (PolicyTool.collator.compare((String)e.getItem(),
+                                      ToolDialog.PERM) == 0) {
             if (permField.getText() != null &&
                 permField.getText().length() > 0) {
 
-                Perm inputPerm = td.getPerm(permField.getText(), true);
+                Perm inputPerm = ToolDialog.getPerm(permField.getText(), true);
                 if (inputPerm != null) {
                     perms.select(inputPerm.CLASS);
                 }
@@ -3344,7 +3357,7 @@ class PermissionMenuListener implements ItemListener {
         // pull-down choice menus to reflect the correct possible
         // set of names and actions
 
-        Perm inputPerm = td.getPerm((String)e.getItem(), false);
+        Perm inputPerm = ToolDialog.getPerm((String)e.getItem(), false);
         if (inputPerm == null) {
             permField.setText("");
         } else {
@@ -3368,14 +3381,14 @@ class PermissionNameMenuListener implements ItemListener {
 
     public void itemStateChanged(ItemEvent e) {
 
-        Choice names = (Choice)td.getComponent(td.PD_NAME_CHOICE);
+        Choice names = (Choice)td.getComponent(ToolDialog.PD_NAME_CHOICE);
         names.getAccessibleContext().setAccessibleName(
             PolicyTool.splitToWords((String)e.getItem()));
 
-        if (((String)e.getItem()).indexOf(td.PERM_NAME) != -1)
+        if (((String)e.getItem()).indexOf(ToolDialog.PERM_NAME) != -1)
             return;
 
-        TextField tf = (TextField)td.getComponent(td.PD_NAME_TEXTFIELD);
+        TextField tf = (TextField)td.getComponent(ToolDialog.PD_NAME_TEXTFIELD);
         tf.setText((String)e.getItem());
     }
 }
@@ -3393,13 +3406,15 @@ class PermissionActionsMenuListener implements ItemListener {
 
     public void itemStateChanged(ItemEvent e) {
 
-        Choice actions = (Choice)td.getComponent(td.PD_ACTIONS_CHOICE);
+        Choice actions = (Choice)td.getComponent(
+                ToolDialog.PD_ACTIONS_CHOICE);
         actions.getAccessibleContext().setAccessibleName((String)e.getItem());
 
-        if (((String)e.getItem()).indexOf(td.PERM_ACTIONS) != -1)
+        if (((String)e.getItem()).indexOf(ToolDialog.PERM_ACTIONS) != -1)
             return;
 
-        TextField tf = (TextField)td.getComponent(td.PD_ACTIONS_TEXTFIELD);
+        TextField tf = (TextField)td.getComponent(
+                ToolDialog.PD_ACTIONS_TEXTFIELD);
         if (tf.getText() == null || tf.getText().equals("")) {
             tf.setText((String)e.getItem());
         } else {
@@ -3521,8 +3536,8 @@ class UserSaveYesButtonListener implements ActionListener {
         us.dispose();
 
         try {
-            String filename = ((TextField)
-                    tw.getComponent(tw.MW_FILENAME_TEXTFIELD)).getText();
+            String filename = ((TextField)tw.getComponent(
+                    ToolWindow.MW_FILENAME_TEXTFIELD)).getText();
             if (filename == null || filename.equals("")) {
                 us.displaySaveAsDialog(select);
 
@@ -3616,7 +3631,7 @@ class ConfirmRemovePolicyEntryOKButtonListener implements ActionListener {
 
     public void actionPerformed(ActionEvent e) {
         // remove the entry
-        List list = (List)tw.getComponent(tw.MW_POLICY_LIST);
+        List list = (List)tw.getComponent(ToolWindow.MW_POLICY_LIST);
         int index = list.getSelectedIndex();
         PolicyEntry entries[] = tool.getEntry();
         tool.removeEntry(entries[index]);
@@ -3640,13 +3655,15 @@ class ConfirmRemovePolicyEntryOKButtonListener implements ActionListener {
  * it's special, and does not pop out a warning box.
  */
 class NoDisplayException extends RuntimeException {
-
+    private static final long serialVersionUID = -4611761427108719794L;
 }
 
 /**
  * This is a java.awt.List that bind an Object to each String it holds.
  */
 class TaggedList extends List {
+    private static final long serialVersionUID = -5676238110427785853L;
+
     private java.util.List<Object> data = new LinkedList<>();
     public TaggedList(int i, boolean b) {
         super(i, b);
diff --git a/jdk/src/share/classes/sun/security/util/Cache.java b/jdk/src/share/classes/sun/security/util/Cache.java
index 031b56c..7c7f072 100644
--- a/jdk/src/share/classes/sun/security/util/Cache.java
+++ b/jdk/src/share/classes/sun/security/util/Cache.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -251,7 +251,7 @@ class MemoryCache extends Cache {
     private final Map<Object, CacheEntry> cacheMap;
     private int maxSize;
     private long lifetime;
-    private final ReferenceQueue queue;
+    private final ReferenceQueue<Object> queue;
 
     public MemoryCache(boolean soft, int maxSize) {
         this(soft, maxSize, 0);
@@ -260,7 +260,7 @@ class MemoryCache extends Cache {
     public MemoryCache(boolean soft, int maxSize, int lifetime) {
         this.maxSize = maxSize;
         this.lifetime = lifetime * 1000;
-        this.queue = soft ? new ReferenceQueue() : null;
+        this.queue = soft ? new ReferenceQueue<Object>() : null;
         int buckets = (int)(maxSize / LOAD_FACTOR) + 1;
         cacheMap = new LinkedHashMap<Object, CacheEntry>(buckets,
                                                         LOAD_FACTOR, true);
@@ -449,7 +449,7 @@ class MemoryCache extends Cache {
     }
 
     protected CacheEntry newEntry(Object key, Object value,
-            long expirationTime, ReferenceQueue queue) {
+            long expirationTime, ReferenceQueue<Object> queue) {
         if (queue != null) {
             return new SoftCacheEntry(key, value, expirationTime, queue);
         } else {
@@ -504,13 +504,13 @@ class MemoryCache extends Cache {
     }
 
     private static class SoftCacheEntry
-            extends SoftReference implements CacheEntry {
+            extends SoftReference<Object> implements CacheEntry {
 
         private Object key;
         private long expirationTime;
 
         SoftCacheEntry(Object key, Object value, long expirationTime,
-                ReferenceQueue queue) {
+                ReferenceQueue<Object> queue) {
             super(value, queue);
             this.key = key;
             this.expirationTime = expirationTime;
diff --git a/jdk/src/share/classes/sun/security/util/HostnameChecker.java b/jdk/src/share/classes/sun/security/util/HostnameChecker.java
index b3e8971..313ddb1 100644
--- a/jdk/src/share/classes/sun/security/util/HostnameChecker.java
+++ b/jdk/src/share/classes/sun/security/util/HostnameChecker.java
@@ -266,8 +266,8 @@ public class HostnameChecker {
      */
     private static boolean matchAllWildcards(String name,
          String template) {
-        name = name.toLowerCase();
-        template = template.toLowerCase();
+        name = name.toLowerCase(Locale.ENGLISH);
+        template = template.toLowerCase(Locale.ENGLISH);
         StringTokenizer nameSt = new StringTokenizer(name, ".");
         StringTokenizer templateSt = new StringTokenizer(template, ".");
 
@@ -296,8 +296,8 @@ public class HostnameChecker {
      */
     private static boolean matchLeftmostWildcard(String name,
                          String template) {
-        name = name.toLowerCase();
-        template = template.toLowerCase();
+        name = name.toLowerCase(Locale.ENGLISH);
+        template = template.toLowerCase(Locale.ENGLISH);
 
         // Retreive leftmost component
         int templateIdx = template.indexOf(".");
diff --git a/jdk/src/share/classes/sun/security/util/ManifestDigester.java b/jdk/src/share/classes/sun/security/util/ManifestDigester.java
index 50573d6..fc9ccd3 100644
--- a/jdk/src/share/classes/sun/security/util/ManifestDigester.java
+++ b/jdk/src/share/classes/sun/security/util/ManifestDigester.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -62,6 +62,7 @@ public class ManifestDigester {
      * @returns false if end of bytes has been reached, otherwise returns
      *          true
      */
+    @SuppressWarnings("fallthrough")
     private boolean findSection(int offset, Position pos)
     {
         int i = offset, len = rawBytes.length;
@@ -79,6 +80,7 @@ public class ManifestDigester {
                     pos.endOfFirstLine = i-1;
                 if ((i < len) &&  (rawBytes[i+1] == '\n'))
                     i++;
+                /* fall through */
             case '\n':
                 if (pos.endOfFirstLine == -1)
                     pos.endOfFirstLine = i-1;
diff --git a/jdk/src/share/classes/sun/security/util/Password.java b/jdk/src/share/classes/sun/security/util/Password.java
index 26653b4..619011f 100644
--- a/jdk/src/share/classes/sun/security/util/Password.java
+++ b/jdk/src/share/classes/sun/security/util/Password.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,6 +43,7 @@ public class Password {
     /** Reads user password from given input stream.
      * @param isEchoOn true if the password should be echoed on the screen
      */
+    @SuppressWarnings("fallthrough")
     public static char[] readPassword(InputStream in, boolean isEchoOn)
             throws IOException {
 
@@ -95,7 +96,7 @@ public class Password {
                         done = true;
                         break;
                     }
-
+                    /* fall through */
                   default:
                     if (--room < 0) {
                         buf = new char[offset + 128];
diff --git a/jdk/src/share/classes/sun/security/util/SecurityConstants.java b/jdk/src/share/classes/sun/security/util/SecurityConstants.java
index f11a486..08bdaeb 100644
--- a/jdk/src/share/classes/sun/security/util/SecurityConstants.java
+++ b/jdk/src/share/classes/sun/security/util/SecurityConstants.java
@@ -127,10 +127,8 @@ public final class SecurityConstants {
                 // AWT present
                 try {
                     return (PermissionFactory<?>)c.newInstance();
-                } catch (InstantiationException x) {
-                    throw new InternalError(x.getMessage());
-                } catch (IllegalAccessException x) {
-                    throw new InternalError(x.getMessage());
+                } catch (ReflectiveOperationException x) {
+                    throw new InternalError(x.getMessage(), x);
                 }
             } else {
                 // AWT not present
diff --git a/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java b/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java
index 9c258f8..715a5da 100644
--- a/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java
+++ b/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java
@@ -180,7 +180,7 @@ public class SignatureFileVerifier {
      *
      */
     public void process(Hashtable<String, CodeSigner[]> signers,
-            List manifestDigests)
+            List<Object> manifestDigests)
         throws IOException, SignatureException, NoSuchAlgorithmException,
             JarException, CertificateException
     {
@@ -197,7 +197,7 @@ public class SignatureFileVerifier {
     }
 
     private void processImpl(Hashtable<String, CodeSigner[]> signers,
-            List manifestDigests)
+            List<Object> manifestDigests)
         throws IOException, SignatureException, NoSuchAlgorithmException,
             JarException, CertificateException
     {
@@ -276,7 +276,7 @@ public class SignatureFileVerifier {
     private boolean verifyManifestHash(Manifest sf,
                                        ManifestDigester md,
                                        BASE64Decoder decoder,
-                                       List manifestDigests)
+                                       List<Object> manifestDigests)
          throws IOException
     {
         Attributes mattr = sf.getMainAttributes();
diff --git a/jdk/src/share/classes/sun/security/validator/SimpleValidator.java b/jdk/src/share/classes/sun/security/validator/SimpleValidator.java
index 9ad04b8..dc68032 100644
--- a/jdk/src/share/classes/sun/security/validator/SimpleValidator.java
+++ b/jdk/src/share/classes/sun/security/validator/SimpleValidator.java
@@ -37,7 +37,6 @@ import sun.security.x509.X509CertImpl;
 import sun.security.x509.NetscapeCertTypeExtension;
 import sun.security.util.DerValue;
 import sun.security.util.DerInputStream;
-import sun.security.util.DerOutputStream;
 import sun.security.util.ObjectIdentifier;
 
 import sun.security.provider.certpath.AlgorithmChecker;
@@ -275,7 +274,7 @@ public final class SimpleValidator extends Validator {
                                                                 .toByteArray();
                 ext = new NetscapeCertTypeExtension(encoded);
             }
-            Boolean val = (Boolean)ext.get(type);
+            Boolean val = ext.get(type);
             return val.booleanValue();
         } catch (IOException e) {
             return false;
diff --git a/jdk/src/share/classes/sun/security/x509/AVA.java b/jdk/src/share/classes/sun/security/x509/AVA.java
index e889474..b07e565 100644
--- a/jdk/src/share/classes/sun/security/x509/AVA.java
+++ b/jdk/src/share/classes/sun/security/x509/AVA.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,7 @@ import sun.security.pkcs.PKCS9Attribute;
  * X.500 Attribute-Value-Assertion (AVA):  an attribute, as identified by
  * some attribute ID, has some particular value.  Values are as a rule ASN.1
  * printable strings.  A conventional set of type IDs is recognized when
- * parsing (and generating) RFC 1779 or RFC 2253 syntax strings.
+ * parsing (and generating) RFC 1779, 2253 or 4514 syntax strings.
  *
  * <P>AVAs are components of X.500 relative names.  Think of them as being
  * individual fields of a database record.  The attribute ID is how you
@@ -92,18 +92,20 @@ public class AVA implements DerEncoder {
      * Leading and trailing spaces, also multiple internal spaces, also
      * call for quoting the whole string.
      */
-    private static final String specialChars = ",+=\n<>#;";
+    private static final String specialChars1779 = ",=\n+<>#;\\\"";
 
     /*
      * In RFC2253, if the value has any of these characters in it, it
      * must be quoted by a preceding \.
      */
-    private static final String specialChars2253 = ",+\"\\<>;";
+    private static final String specialChars2253 = ",=+<>#;\\\"";
 
     /*
-     * includes special chars from RFC1779 and RFC2253, as well as ' '
+     * includes special chars from RFC1779 and RFC2253, as well as ' ' from
+     * RFC 4514.
      */
-    private static final String specialCharsAll = ",=\n+<>#;\\\" ";
+    private static final String specialCharsDefault = ",=\n+<>#;\\\" ";
+    private static final String escapedDefault = ",+<>;\"";
 
     /*
      * Values that aren't printable strings are emitted as BER-encoded
@@ -120,26 +122,26 @@ public class AVA implements DerEncoder {
     }
 
     /**
-     * Parse an RFC 1779 or RFC 2253 style AVA string:  CN=fee fie foe fum
+     * Parse an RFC 1779, 2253 or 4514 style AVA string:  CN=fee fie foe fum
      * or perhaps with quotes.  Not all defined AVA tags are supported;
      * of current note are X.400 related ones (PRMD, ADMD, etc).
      *
      * This terminates at unescaped AVA separators ("+") or RDN
-     * separators (",", ";"), or DN terminators (">"), and removes
-     * cosmetic whitespace at the end of values.
+     * separators (",", ";"), and removes cosmetic whitespace at the end of
+     * values.
      */
     AVA(Reader in) throws IOException {
         this(in, DEFAULT);
     }
 
     /**
-     * Parse an RFC 1779 or RFC 2253 style AVA string:  CN=fee fie foe fum
+     * Parse an RFC 1779, 2253 or 4514 style AVA string:  CN=fee fie foe fum
      * or perhaps with quotes. Additional keywords can be specified in the
      * keyword/OID map.
      *
      * This terminates at unescaped AVA separators ("+") or RDN
-     * separators (",", ";"), or DN terminators (">"), and removes
-     * cosmetic whitespace at the end of values.
+     * separators (",", ";"), and removes cosmetic whitespace at the end of
+     * values.
      */
     AVA(Reader in, Map<String, String> keywordMap) throws IOException {
         this(in, DEFAULT, keywordMap);
@@ -147,9 +149,6 @@ public class AVA implements DerEncoder {
 
     /**
      * Parse an AVA string formatted according to format.
-     *
-     * XXX format RFC1779 should only allow RFC1779 syntax but is
-     * actually DEFAULT with RFC1779 keywords.
      */
     AVA(Reader in, int format) throws IOException {
         this(in, format, Collections.<String, String>emptyMap());
@@ -158,9 +157,6 @@ public class AVA implements DerEncoder {
     /**
      * Parse an AVA string formatted according to format.
      *
-     * XXX format RFC1779 should only allow RFC1779 syntax but is
-     * actually DEFAULT with RFC1779 keywords.
-     *
      * @param in Reader containing AVA String
      * @param format parsing format
      * @param keywordMap a Map where a keyword String maps to a corresponding
@@ -168,11 +164,11 @@ public class AVA implements DerEncoder {
      *   If an entry does not exist, it will fallback to the builtin
      *   keyword/OID mapping.
      * @throws IOException if the AVA String is not valid in the specified
-     *   standard or an OID String from the keywordMap is improperly formatted
+     *   format or an OID String from the keywordMap is improperly formatted
      */
     AVA(Reader in, int format, Map<String, String> keywordMap)
         throws IOException {
-        // assume format is one of DEFAULT, RFC1779, RFC2253
+        // assume format is one of DEFAULT or RFC2253
 
         StringBuilder   temp = new StringBuilder();
         int             c;
@@ -193,7 +189,7 @@ public class AVA implements DerEncoder {
 
         /*
          * Now parse the value.  "#hex", a quoted string, or a string
-         * terminated by "+", ",", ";", ">".  Whitespace before or after
+         * terminated by "+", ",", ";".  Whitespace before or after
          * the value is stripped away unless format is RFC2253.
          */
         temp.setLength(0);
@@ -202,7 +198,7 @@ public class AVA implements DerEncoder {
             c = in.read();
             if (c == ' ') {
                 throw new IOException("Incorrect AVA RFC2253 format - " +
-                                        "leading space must be escaped");
+                                      "leading space must be escaped");
             }
         } else {
             // read next character skipping whitespace
@@ -331,8 +327,7 @@ public class AVA implements DerEncoder {
                     continue;
                 }
 
-                if (c != '\\' && c != '"' &&
-                    specialChars.indexOf((char)c) < 0) {
+                if (specialChars1779.indexOf((char)c) < 0) {
                     throw new IOException
                         ("Invalid escaped character in AVA: " +
                         (char)c);
@@ -369,8 +364,8 @@ public class AVA implements DerEncoder {
 
         // encode as PrintableString unless value contains
         // non-PrintableString chars
-        if (this.oid.equals(PKCS9Attribute.EMAIL_ADDRESS_OID) ||
-            (this.oid.equals(X500Name.DOMAIN_COMPONENT_OID) &&
+        if (this.oid.equals((Object)PKCS9Attribute.EMAIL_ADDRESS_OID) ||
+            (this.oid.equals((Object)X500Name.DOMAIN_COMPONENT_OID) &&
                 PRESERVE_OLD_DC_ENCODING == false)) {
             // EmailAddress and DomainComponent must be IA5String
             return new DerValue(DerValue.tag_IA5String,
@@ -386,7 +381,7 @@ public class AVA implements DerEncoder {
     private DerValue parseString
         (Reader in, int c, int format, StringBuilder temp) throws IOException {
 
-        List<Byte> embeddedHex = new ArrayList<Byte>();
+        List<Byte> embeddedHex = new ArrayList<>();
         boolean isPrintableString = true;
         boolean escape = false;
         boolean leadingChar = true;
@@ -413,24 +408,19 @@ public class AVA implements DerEncoder {
                 }
 
                 // check if character was improperly escaped
-                if ((format == DEFAULT &&
-                        specialCharsAll.indexOf((char)c) == -1) ||
-                    (format == RFC1779  &&
-                        specialChars.indexOf((char)c) == -1 &&
-                        c != '\\' && c != '\"')) {
-
+                if (format == DEFAULT &&
+                       specialCharsDefault.indexOf((char)c) == -1) {
                     throw new IOException
                         ("Invalid escaped character in AVA: '" +
                         (char)c + "'");
-
                 } else if (format == RFC2253) {
                     if (c == ' ') {
                         // only leading/trailing space can be escaped
                         if (!leadingChar && !trailingSpace(in)) {
-                                throw new IOException
-                                        ("Invalid escaped space character " +
-                                        "in AVA.  Only a leading or trailing " +
-                                        "space character can be escaped.");
+                            throw new IOException
+                                    ("Invalid escaped space character " +
+                                    "in AVA.  Only a leading or trailing " +
+                                    "space character can be escaped.");
                         }
                     } else if (c == '#') {
                         // only leading '#' can be escaped
@@ -443,18 +433,20 @@ public class AVA implements DerEncoder {
                         throw new IOException
                                 ("Invalid escaped character in AVA: '" +
                                 (char)c + "'");
-
                     }
                 }
-
             } else {
                 // check if character should have been escaped
                 if (format == RFC2253) {
                     if (specialChars2253.indexOf((char)c) != -1) {
                         throw new IOException
                                 ("Character '" + (char)c +
-                                "' in AVA appears without escape");
+                                 "' in AVA appears without escape");
                     }
+                } else if (escapedDefault.indexOf((char)c) != -1) {
+                    throw new IOException
+                            ("Character '" + (char)c +
+                            "' in AVA appears without escape");
                 }
             }
 
@@ -503,8 +495,8 @@ public class AVA implements DerEncoder {
 
         // encode as PrintableString unless value contains
         // non-PrintableString chars
-        if (this.oid.equals(PKCS9Attribute.EMAIL_ADDRESS_OID) ||
-            (this.oid.equals(X500Name.DOMAIN_COMPONENT_OID) &&
+        if (this.oid.equals((Object)PKCS9Attribute.EMAIL_ADDRESS_OID) ||
+            (this.oid.equals((Object)X500Name.DOMAIN_COMPONENT_OID) &&
                 PRESERVE_OLD_DC_ENCODING == false)) {
             // EmailAddress and DomainComponent must be IA5String
             return new DerValue(DerValue.tag_IA5String, temp.toString());
@@ -551,7 +543,6 @@ public class AVA implements DerEncoder {
         case ',':
             return true;
         case ';':
-        case '>':
             return format != RFC2253;
         default:
             return false;
@@ -1080,8 +1071,17 @@ public class AVA implements DerEncoder {
                  * to need quoting, or at least escaping.  So do leading or
                  * trailing spaces, and multiple internal spaces.
                  */
-                for (int i = 0; i < valStr.length(); i++) {
+                int length = valStr.length();
+                boolean alreadyQuoted =
+                    (length > 1 && valStr.charAt(0) == '\"'
+                     && valStr.charAt(length - 1) == '\"');
+
+                for (int i = 0; i < length; i++) {
                     char c = valStr.charAt(i);
+                    if (alreadyQuoted && (i == 0 || i == length - 1)) {
+                        sbuffer.append(c);
+                        continue;
+                    }
                     if (DerValue.isPrintableStringChar(c) ||
                         escapees.indexOf(c) >= 0) {
 
@@ -1145,7 +1145,8 @@ public class AVA implements DerEncoder {
                 }
 
                 // Emit the string ... quote it if needed
-                if (quoteNeeded) {
+                // if string is already quoted, don't re-quote
+                if (!alreadyQuoted && quoteNeeded) {
                     retval.append("\"" + sbuffer.toString() + "\"");
                 } else {
                     retval.append(sbuffer.toString());
@@ -1204,18 +1205,6 @@ class AVAKeyword {
      * Get an object identifier representing the specified keyword (or
      * string encoded object identifier) in the given standard.
      *
-     * @throws IOException If the keyword is not valid in the specified standard
-     */
-    static ObjectIdentifier getOID(String keyword, int standard)
-            throws IOException {
-        return getOID
-            (keyword, standard, Collections.<String, String>emptyMap());
-    }
-
-    /**
-     * Get an object identifier representing the specified keyword (or
-     * string encoded object identifier) in the given standard.
-     *
      * @param keywordMap a Map where a keyword String maps to a corresponding
      *   OID String. Each AVA keyword will be mapped to the corresponding OID.
      *   If an entry does not exist, it will fallback to the builtin
@@ -1249,19 +1238,11 @@ class AVAKeyword {
             return new ObjectIdentifier(oidString);
         }
 
-        // no keyword found or not standard compliant, check if OID string
-
-        // RFC1779 requires, DEFAULT allows OID. prefix
-        if (standard == AVA.RFC1779) {
-            if (keyword.startsWith("OID.") == false) {
-                throw new IOException("Invalid RFC1779 keyword: " + keyword);
-            }
+        // no keyword found, check if OID string
+        if (standard == AVA.DEFAULT && keyword.startsWith("OID.")) {
             keyword = keyword.substring(4);
-        } else if (standard == AVA.DEFAULT) {
-            if (keyword.startsWith("OID.")) {
-                keyword = keyword.substring(4);
-            }
         }
+
         boolean number = false;
         if (keyword.length() != 0) {
             char ch = keyword.charAt(0);
diff --git a/jdk/src/share/classes/sun/security/x509/AccessDescription.java b/jdk/src/share/classes/sun/security/x509/AccessDescription.java
index fd05f28..fbf4bed 100644
--- a/jdk/src/share/classes/sun/security/x509/AccessDescription.java
+++ b/jdk/src/share/classes/sun/security/x509/AccessDescription.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 package sun.security.x509;
 
-import java.security.cert.*;
 import java.io.IOException;
 
 import sun.security.util.*;
@@ -96,19 +95,19 @@ public final class AccessDescription {
         if (this == that) {
             return true;
         }
-        return (accessMethod.equals(that.getAccessMethod()) &&
+        return (accessMethod.equals((Object)that.getAccessMethod()) &&
             accessLocation.equals(that.getAccessLocation()));
     }
 
     public String toString() {
         String method = null;
-        if (accessMethod.equals(Ad_CAISSUERS_Id)) {
+        if (accessMethod.equals((Object)Ad_CAISSUERS_Id)) {
             method = "caIssuers";
-        } else if (accessMethod.equals(Ad_CAREPOSITORY_Id)) {
+        } else if (accessMethod.equals((Object)Ad_CAREPOSITORY_Id)) {
             method = "caRepository";
-        } else if (accessMethod.equals(Ad_TIMESTAMPING_Id)) {
+        } else if (accessMethod.equals((Object)Ad_TIMESTAMPING_Id)) {
             method = "timeStamping";
-        } else if (accessMethod.equals(Ad_OCSP_Id)) {
+        } else if (accessMethod.equals((Object)Ad_OCSP_Id)) {
             method = "ocsp";
         } else {
             method = accessMethod.toString();
diff --git a/jdk/src/share/classes/sun/security/x509/AlgorithmId.java b/jdk/src/share/classes/sun/security/x509/AlgorithmId.java
index e28c344..4602248 100644
--- a/jdk/src/share/classes/sun/security/x509/AlgorithmId.java
+++ b/jdk/src/share/classes/sun/security/x509/AlgorithmId.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -236,7 +236,7 @@ public class AlgorithmId implements Serializable, DerEncoder {
         if (algName != null) {
             return algName;
         }
-        if ((params != null) && algid.equals(specifiedWithECDSA_oid)) {
+        if ((params != null) && algid.equals((Object)specifiedWithECDSA_oid)) {
             try {
                 AlgorithmId paramsId =
                         AlgorithmId.parse(new DerValue(getEncodedParams()));
@@ -273,7 +273,7 @@ public class AlgorithmId implements Serializable, DerEncoder {
     public boolean equals(AlgorithmId other) {
         boolean paramsEqual =
           (params == null ? other.params == null : params.equals(other.params));
-        return (algid.equals(other.algid) && paramsEqual);
+        return (algid.equals((Object)other.algid) && paramsEqual);
     }
 
     /**
@@ -301,7 +301,7 @@ public class AlgorithmId implements Serializable, DerEncoder {
      * they are the same algorithm, ignoring algorithm parameters.
      */
     public final boolean equals(ObjectIdentifier id) {
-        return algid.equals(id);
+        return algid.equals((Object)id);
     }
 
     /**
diff --git a/jdk/src/share/classes/sun/security/x509/AuthorityInfoAccessExtension.java b/jdk/src/share/classes/sun/security/x509/AuthorityInfoAccessExtension.java
index 0247f34..725c753 100644
--- a/jdk/src/share/classes/sun/security/x509/AuthorityInfoAccessExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/AuthorityInfoAccessExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -163,6 +163,7 @@ public class AuthorityInfoAccessExtension extends Extension
     /**
      * Set the attribute value.
      */
+    @SuppressWarnings("unchecked") // Checked with an instanceof check
     public void set(String name, Object obj) throws IOException {
         if (name.equalsIgnoreCase(DESCRIPTIONS)) {
             if (!(obj instanceof List)) {
@@ -180,7 +181,7 @@ public class AuthorityInfoAccessExtension extends Extension
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public List<AccessDescription> get(String name) throws IOException {
         if (name.equalsIgnoreCase(DESCRIPTIONS)) {
             return accessDescriptions;
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/CRLDistributionPointsExtension.java b/jdk/src/share/classes/sun/security/x509/CRLDistributionPointsExtension.java
index e2df22d..c381430 100644
--- a/jdk/src/share/classes/sun/security/x509/CRLDistributionPointsExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/CRLDistributionPointsExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -222,6 +222,7 @@ public class CRLDistributionPointsExtension extends Extension
     /**
      * Set the attribute value.
      */
+    @SuppressWarnings("unchecked") // Checked with instanceof
     public void set(String name, Object obj) throws IOException {
         if (name.equalsIgnoreCase(POINTS)) {
             if (!(obj instanceof List)) {
@@ -239,7 +240,7 @@ public class CRLDistributionPointsExtension extends Extension
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public List<DistributionPoint> get(String name) throws IOException {
         if (name.equalsIgnoreCase(POINTS)) {
             return distributionPoints;
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/CRLExtensions.java b/jdk/src/share/classes/sun/security/x509/CRLExtensions.java
index 7b6c34b..e761ba4 100644
--- a/jdk/src/share/classes/sun/security/x509/CRLExtensions.java
+++ b/jdk/src/share/classes/sun/security/x509/CRLExtensions.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,6 @@ import java.util.Enumeration;
 import java.util.Hashtable;
 
 import sun.security.util.*;
-import sun.misc.HexDumpEncoder;
 
 /**
  * This class defines the CRL Extensions.
@@ -109,7 +108,7 @@ public class CRLExtensions {
     // Parse the encoded extension
     private void parseExtension(Extension ext) throws CRLException {
         try {
-            Class extClass = OIDMap.getClass(ext.getExtensionId());
+            Class<?> extClass = OIDMap.getClass(ext.getExtensionId());
             if (extClass == null) {   // Unsupported extension
                 if (ext.isCritical())
                     unsupportedCritExt = true;
@@ -117,10 +116,10 @@ public class CRLExtensions {
                     throw new CRLException("Duplicate extensions not allowed");
                 return;
             }
-            Constructor cons = ((Class<?>)extClass).getConstructor(PARAMS);
+            Constructor<?> cons = extClass.getConstructor(PARAMS);
             Object[] passed = new Object[] {Boolean.valueOf(ext.isCritical()),
                                             ext.getExtensionValue()};
-            CertAttrSet crlExt = (CertAttrSet)cons.newInstance(passed);
+            CertAttrSet<?> crlExt = (CertAttrSet<?>)cons.newInstance(passed);
             if (map.put(crlExt.getName(), (Extension)crlExt) != null) {
                 throw new CRLException("Duplicate extensions not allowed");
             }
diff --git a/jdk/src/share/classes/sun/security/x509/CRLNumberExtension.java b/jdk/src/share/classes/sun/security/x509/CRLNumberExtension.java
index 342b4a9..9649df6 100644
--- a/jdk/src/share/classes/sun/security/x509/CRLNumberExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/CRLNumberExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -155,7 +155,7 @@ implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public BigInteger get(String name) throws IOException {
         if (name.equalsIgnoreCase(NUMBER)) {
             if (crlNumber == null) return null;
             else return crlNumber;
diff --git a/jdk/src/share/classes/sun/security/x509/CRLReasonCodeExtension.java b/jdk/src/share/classes/sun/security/x509/CRLReasonCodeExtension.java
index 6bbb383..0016bc1 100644
--- a/jdk/src/share/classes/sun/security/x509/CRLReasonCodeExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/CRLReasonCodeExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -155,7 +155,7 @@ public class CRLReasonCodeExtension extends Extension
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public Integer get(String name) throws IOException {
         if (name.equalsIgnoreCase(REASON)) {
             return new Integer(reasonCode);
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/CertAndKeyGen.java b/jdk/src/share/classes/sun/security/x509/CertAndKeyGen.java
index f5963db..f1560c7 100644
--- a/jdk/src/share/classes/sun/security/x509/CertAndKeyGen.java
+++ b/jdk/src/share/classes/sun/security/x509/CertAndKeyGen.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -229,7 +229,7 @@ public final class CertAndKeyGen {
                      new CertificateVersion(CertificateVersion.V3));
             info.set(X509CertInfo.SERIAL_NUMBER, new CertificateSerialNumber(
                     new java.util.Random().nextInt() & 0x7fffffff));
-            AlgorithmId algID = AlgorithmId.getAlgorithmId(sigAlg);
+            AlgorithmId algID = AlgorithmId.get(sigAlg);
             info.set(X509CertInfo.ALGORITHM_ID,
                      new CertificateAlgorithmId(algID));
             info.set(X509CertInfo.SUBJECT, new CertificateSubjectName(myname));
diff --git a/jdk/src/share/classes/sun/security/x509/CertificateAlgorithmId.java b/jdk/src/share/classes/sun/security/x509/CertificateAlgorithmId.java
index 5efdb40..a7d6e25 100644
--- a/jdk/src/share/classes/sun/security/x509/CertificateAlgorithmId.java
+++ b/jdk/src/share/classes/sun/security/x509/CertificateAlgorithmId.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -130,7 +130,7 @@ public class CertificateAlgorithmId implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public AlgorithmId get(String name) throws IOException {
         if (name.equalsIgnoreCase(ALGORITHM)) {
             return (algId);
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/CertificateExtensions.java b/jdk/src/share/classes/sun/security/x509/CertificateExtensions.java
index b1dc936..e2a9581 100644
--- a/jdk/src/share/classes/sun/security/x509/CertificateExtensions.java
+++ b/jdk/src/share/classes/sun/security/x509/CertificateExtensions.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -93,7 +93,7 @@ public class CertificateExtensions implements CertAttrSet<Extension> {
     // Parse the encoded extension
     private void parseExtension(Extension ext) throws IOException {
         try {
-            Class extClass = OIDMap.getClass(ext.getExtensionId());
+            Class<?> extClass = OIDMap.getClass(ext.getExtensionId());
             if (extClass == null) {   // Unsupported extension
                 if (ext.isCritical()) {
                     unsupportedCritExt = true;
@@ -104,11 +104,12 @@ public class CertificateExtensions implements CertAttrSet<Extension> {
                     throw new IOException("Duplicate extensions not allowed");
                 }
             }
-            Constructor cons = ((Class<?>)extClass).getConstructor(PARAMS);
+            Constructor<?> cons = extClass.getConstructor(PARAMS);
 
             Object[] passed = new Object[] {Boolean.valueOf(ext.isCritical()),
                     ext.getExtensionValue()};
-                    CertAttrSet certExt = (CertAttrSet)cons.newInstance(passed);
+                    CertAttrSet<?> certExt = (CertAttrSet<?>)
+                            cons.newInstance(passed);
                     if (map.put(certExt.getName(), (Extension)certExt) != null) {
                         throw new IOException("Duplicate extensions not allowed");
                     }
@@ -132,12 +133,12 @@ public class CertificateExtensions implements CertAttrSet<Extension> {
             if (e instanceof IOException) {
                 throw (IOException)e;
             } else {
-                throw (IOException)new IOException(e.toString()).initCause(e);
+                throw new IOException(e);
             }
         } catch (IOException e) {
             throw e;
         } catch (Exception e) {
-            throw (IOException)new IOException(e.toString()).initCause(e);
+            throw new IOException(e);
         }
     }
 
@@ -210,8 +211,8 @@ public class CertificateExtensions implements CertAttrSet<Extension> {
      * @param name the extension name used in the lookup.
      * @exception IOException if named extension is not found.
      */
-    public Object get(String name) throws IOException {
-        Object obj = map.get(name);
+    public Extension get(String name) throws IOException {
+        Extension obj = map.get(name);
         if (obj == null) {
             throw new IOException("No extension found with name " + name);
         }
@@ -233,7 +234,7 @@ public class CertificateExtensions implements CertAttrSet<Extension> {
 
     public String getNameByOid(ObjectIdentifier oid) throws IOException {
         for (String name: map.keySet()) {
-            if (map.get(name).getExtensionId().equals(oid)) {
+            if (map.get(name).getExtensionId().equals((Object)oid)) {
                 return name;
             }
         }
@@ -353,7 +354,7 @@ class UnparseableExtension extends Extension {
 
         name = "";
         try {
-            Class extClass = OIDMap.getClass(ext.getExtensionId());
+            Class<?> extClass = OIDMap.getClass(ext.getExtensionId());
             if (extClass != null) {
                 Field field = extClass.getDeclaredField("NAME");
                 name = (String)(field.get(null)) + " ";
diff --git a/jdk/src/share/classes/sun/security/x509/CertificateIssuerExtension.java b/jdk/src/share/classes/sun/security/x509/CertificateIssuerExtension.java
index 23676d7..b773970 100644
--- a/jdk/src/share/classes/sun/security/x509/CertificateIssuerExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/CertificateIssuerExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -141,7 +141,7 @@ public class CertificateIssuerExtension extends Extension
      *
      * @throws IOException on error
      */
-    public Object get(String name) throws IOException {
+    public GeneralNames get(String name) throws IOException {
         if (name.equalsIgnoreCase(ISSUER)) {
             return names;
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/CertificateIssuerUniqueIdentity.java b/jdk/src/share/classes/sun/security/x509/CertificateIssuerUniqueIdentity.java
index cf3bfd8..26595b0 100644
--- a/jdk/src/share/classes/sun/security/x509/CertificateIssuerUniqueIdentity.java
+++ b/jdk/src/share/classes/sun/security/x509/CertificateIssuerUniqueIdentity.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -136,7 +136,7 @@ public class CertificateIssuerUniqueIdentity implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public UniqueIdentity get(String name) throws IOException {
         if (name.equalsIgnoreCase(ID)) {
             return (id);
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/CertificatePoliciesExtension.java b/jdk/src/share/classes/sun/security/x509/CertificatePoliciesExtension.java
index 2d53b42..4f04bed 100644
--- a/jdk/src/share/classes/sun/security/x509/CertificatePoliciesExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/CertificatePoliciesExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -189,6 +189,7 @@ implements CertAttrSet<String> {
     /**
      * Set the attribute value.
      */
+    @SuppressWarnings("unchecked") // Checked with an instanceof check
     public void set(String name, Object obj) throws IOException {
         if (name.equalsIgnoreCase(POLICIES)) {
             if (!(obj instanceof List)) {
@@ -206,7 +207,7 @@ implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public List<PolicyInformation> get(String name) throws IOException {
         if (name.equalsIgnoreCase(POLICIES)) {
             //XXXX May want to consider cloning this
             return certPolicies;
diff --git a/jdk/src/share/classes/sun/security/x509/CertificatePolicyId.java b/jdk/src/share/classes/sun/security/x509/CertificatePolicyId.java
index 331acaf..5f281bf 100644
--- a/jdk/src/share/classes/sun/security/x509/CertificatePolicyId.java
+++ b/jdk/src/share/classes/sun/security/x509/CertificatePolicyId.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -93,7 +93,8 @@ public class CertificatePolicyId {
      */
     public boolean equals(Object other) {
         if (other instanceof CertificatePolicyId)
-            return id.equals(((CertificatePolicyId) other).getIdentifier());
+            return id.equals((Object)
+                    ((CertificatePolicyId) other).getIdentifier());
         else
             return false;
     }
diff --git a/jdk/src/share/classes/sun/security/x509/CertificateSerialNumber.java b/jdk/src/share/classes/sun/security/x509/CertificateSerialNumber.java
index 440f5d5..0e47fc8 100644
--- a/jdk/src/share/classes/sun/security/x509/CertificateSerialNumber.java
+++ b/jdk/src/share/classes/sun/security/x509/CertificateSerialNumber.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -141,7 +141,7 @@ public class CertificateSerialNumber implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public SerialNumber get(String name) throws IOException {
         if (name.equalsIgnoreCase(NUMBER)) {
             return (serial);
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/CertificateSubjectUniqueIdentity.java b/jdk/src/share/classes/sun/security/x509/CertificateSubjectUniqueIdentity.java
index f9cca49..7e43941 100644
--- a/jdk/src/share/classes/sun/security/x509/CertificateSubjectUniqueIdentity.java
+++ b/jdk/src/share/classes/sun/security/x509/CertificateSubjectUniqueIdentity.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -135,7 +135,7 @@ public class CertificateSubjectUniqueIdentity implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public UniqueIdentity get(String name) throws IOException {
         if (name.equalsIgnoreCase(ID)) {
             return(id);
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/CertificateValidity.java b/jdk/src/share/classes/sun/security/x509/CertificateValidity.java
index 5273535..cd9b00f 100644
--- a/jdk/src/share/classes/sun/security/x509/CertificateValidity.java
+++ b/jdk/src/share/classes/sun/security/x509/CertificateValidity.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -190,7 +190,7 @@ public class CertificateValidity implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public Date get(String name) throws IOException {
         if (name.equalsIgnoreCase(NOT_BEFORE)) {
             return (getNotBefore());
         } else if (name.equalsIgnoreCase(NOT_AFTER)) {
diff --git a/jdk/src/share/classes/sun/security/x509/CertificateVersion.java b/jdk/src/share/classes/sun/security/x509/CertificateVersion.java
index c5fcbdc..040b3be 100644
--- a/jdk/src/share/classes/sun/security/x509/CertificateVersion.java
+++ b/jdk/src/share/classes/sun/security/x509/CertificateVersion.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -191,7 +191,7 @@ public class CertificateVersion implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public Integer get(String name) throws IOException {
         if (name.equalsIgnoreCase(VERSION)) {
             return(new Integer(getVersion()));
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/CertificateX509Key.java b/jdk/src/share/classes/sun/security/x509/CertificateX509Key.java
index 1cabf59..d78d618 100644
--- a/jdk/src/share/classes/sun/security/x509/CertificateX509Key.java
+++ b/jdk/src/share/classes/sun/security/x509/CertificateX509Key.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -122,7 +122,7 @@ public class CertificateX509Key implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public PublicKey get(String name) throws IOException {
         if (name.equalsIgnoreCase(KEY)) {
             return(key);
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/DNSName.java b/jdk/src/share/classes/sun/security/x509/DNSName.java
index 398e93f..b571e0e 100644
--- a/jdk/src/share/classes/sun/security/x509/DNSName.java
+++ b/jdk/src/share/classes/sun/security/x509/DNSName.java
@@ -159,7 +159,7 @@ public class DNSName implements GeneralNameInterface {
      * @return a hash code value for this object.
      */
     public int hashCode() {
-        return name.toUpperCase().hashCode();
+        return name.toUpperCase(Locale.ENGLISH).hashCode();
     }
 
     /**
diff --git a/jdk/src/share/classes/sun/security/x509/ExtendedKeyUsageExtension.java b/jdk/src/share/classes/sun/security/x509/ExtendedKeyUsageExtension.java
index b0bac3d..6808460 100644
--- a/jdk/src/share/classes/sun/security/x509/ExtendedKeyUsageExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/ExtendedKeyUsageExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -241,6 +241,7 @@ implements CertAttrSet<String> {
     /**
      * Set the attribute value.
      */
+    @SuppressWarnings("unchecked") // Checked with instanceof
     public void set(String name, Object obj) throws IOException {
         if (name.equalsIgnoreCase(USAGES)) {
             if (!(obj instanceof Vector)) {
@@ -258,7 +259,7 @@ implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public Vector<ObjectIdentifier> get(String name) throws IOException {
         if (name.equalsIgnoreCase(USAGES)) {
             //XXXX May want to consider cloning this
             return keyUsages;
diff --git a/jdk/src/share/classes/sun/security/x509/Extension.java b/jdk/src/share/classes/sun/security/x509/Extension.java
index 77a2da2..a5bcc86 100644
--- a/jdk/src/share/classes/sun/security/x509/Extension.java
+++ b/jdk/src/share/classes/sun/security/x509/Extension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -269,7 +269,7 @@ public class Extension implements java.security.cert.Extension {
         Extension otherExt = (Extension) other;
         if (critical != otherExt.critical)
             return false;
-        if (!extensionId.equals(otherExt.extensionId))
+        if (!extensionId.equals((Object)otherExt.extensionId))
             return false;
         return Arrays.equals(extensionValue, otherExt.extensionValue);
     }
diff --git a/jdk/src/share/classes/sun/security/x509/InhibitAnyPolicyExtension.java b/jdk/src/share/classes/sun/security/x509/InhibitAnyPolicyExtension.java
index ffc7572..26de497 100644
--- a/jdk/src/share/classes/sun/security/x509/InhibitAnyPolicyExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/InhibitAnyPolicyExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -215,7 +215,7 @@ implements CertAttrSet<String> {
      *          Integer.
      * @throws IOException on error
      */
-    public Object get(String name) throws IOException {
+    public Integer get(String name) throws IOException {
         if (name.equalsIgnoreCase(SKIP_CERTS))
             return (new Integer(skipCerts));
         else
diff --git a/jdk/src/share/classes/sun/security/x509/InvalidityDateExtension.java b/jdk/src/share/classes/sun/security/x509/InvalidityDateExtension.java
index 7e8e48c..eda0216 100644
--- a/jdk/src/share/classes/sun/security/x509/InvalidityDateExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/InvalidityDateExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -138,7 +138,7 @@ public class InvalidityDateExtension extends Extension
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public Date get(String name) throws IOException {
         if (name.equalsIgnoreCase(DATE)) {
             if (date == null) {
                 return null;
diff --git a/jdk/src/share/classes/sun/security/x509/IssuerAlternativeNameExtension.java b/jdk/src/share/classes/sun/security/x509/IssuerAlternativeNameExtension.java
index 654932c..ba1f584 100644
--- a/jdk/src/share/classes/sun/security/x509/IssuerAlternativeNameExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/IssuerAlternativeNameExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -190,7 +190,7 @@ extends Extension implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public GeneralNames get(String name) throws IOException {
         if (name.equalsIgnoreCase(ISSUER_NAME)) {
             return (names);
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/KeyUsageExtension.java b/jdk/src/share/classes/sun/security/x509/KeyUsageExtension.java
index a96ce97..0f1242d 100644
--- a/jdk/src/share/classes/sun/security/x509/KeyUsageExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/KeyUsageExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -217,7 +217,7 @@ implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public Boolean get(String name) throws IOException {
         if (name.equalsIgnoreCase(DIGITAL_SIGNATURE)) {
             return Boolean.valueOf(isSet(0));
         } else if (name.equalsIgnoreCase(NON_REPUDIATION)) {
diff --git a/jdk/src/share/classes/sun/security/x509/NameConstraintsExtension.java b/jdk/src/share/classes/sun/security/x509/NameConstraintsExtension.java
index 3ca995e..f043183 100644
--- a/jdk/src/share/classes/sun/security/x509/NameConstraintsExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/NameConstraintsExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,10 +27,7 @@ package sun.security.x509;
 
 import java.io.IOException;
 import java.io.OutputStream;
-import java.security.Principal;
-import java.security.cert.CertificateEncodingException;
 import java.security.cert.CertificateException;
-import java.security.cert.CertificateParsingException;
 import java.security.cert.X509Certificate;
 import java.util.*;
 
@@ -268,7 +265,7 @@ implements CertAttrSet<String>, Cloneable {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public GeneralSubtrees get(String name) throws IOException {
         if (name.equalsIgnoreCase(PERMITTED_SUBTREES)) {
             return (permitted);
         } else if (name.equalsIgnoreCase(EXCLUDED_SUBTREES)) {
@@ -349,8 +346,7 @@ implements CertAttrSet<String>, Cloneable {
          * value and the value indicated in the extension field.
          */
 
-        GeneralSubtrees newExcluded =
-                        (GeneralSubtrees)newConstraints.get(EXCLUDED_SUBTREES);
+        GeneralSubtrees newExcluded = newConstraints.get(EXCLUDED_SUBTREES);
         if (excluded == null) {
             excluded = (newExcluded != null) ?
                         (GeneralSubtrees)newExcluded.clone() : null;
@@ -367,8 +363,7 @@ implements CertAttrSet<String>, Cloneable {
          * previous value and the value indicated in the extension field.
          */
 
-        GeneralSubtrees newPermitted =
-                (GeneralSubtrees)newConstraints.get(PERMITTED_SUBTREES);
+        GeneralSubtrees newPermitted = newConstraints.get(PERMITTED_SUBTREES);
         if (permitted == null) {
             permitted = (newPermitted != null) ?
                         (GeneralSubtrees)newPermitted.clone() : null;
@@ -455,8 +450,8 @@ implements CertAttrSet<String>, Cloneable {
             if (altNameExt != null) {
                 // extract altNames from extension; this call does not
                 // return an IOException on null altnames
-                altNames = (GeneralNames)
-                            (altNameExt.get(altNameExt.SUBJECT_NAME));
+                altNames = altNameExt.get(
+                        SubjectAlternativeNameExtension.SUBJECT_NAME);
             }
         } catch (CertificateException ce) {
             throw new IOException("Unable to extract extensions from " +
@@ -575,10 +570,9 @@ implements CertAttrSet<String>, Cloneable {
      * @throws IOException on error
      */
     public boolean verifyRFC822SpecialCase(X500Name subject) throws IOException {
-        for (Iterator t = subject.allAvas().iterator(); t.hasNext(); ) {
-            AVA ava = (AVA)t.next();
+        for (AVA ava : subject.allAvas()) {
             ObjectIdentifier attrOID = ava.getObjectIdentifier();
-            if (attrOID.equals(PKCS9Attribute.EMAIL_ADDRESS_OID)) {
+            if (attrOID.equals((Object)PKCS9Attribute.EMAIL_ADDRESS_OID)) {
                 String attrValue = ava.getValueString();
                 if (attrValue != null) {
                     RFC822Name emailName;
diff --git a/jdk/src/share/classes/sun/security/x509/NetscapeCertTypeExtension.java b/jdk/src/share/classes/sun/security/x509/NetscapeCertTypeExtension.java
index 182e86f..d6d4efd 100644
--- a/jdk/src/share/classes/sun/security/x509/NetscapeCertTypeExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/NetscapeCertTypeExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -220,7 +220,7 @@ implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public Boolean get(String name) throws IOException {
         return Boolean.valueOf(isSet(getPosition(name)));
     }
 
@@ -306,15 +306,15 @@ implements CertAttrSet<String> {
             if (isSet(getPosition(SSL_CLIENT)) ||
                 isSet(getPosition(S_MIME)) ||
                 isSet(getPosition(OBJECT_SIGNING)))
-                keyUsage.set(keyUsage.DIGITAL_SIGNATURE, val);
+                keyUsage.set(KeyUsageExtension.DIGITAL_SIGNATURE, val);
 
             if (isSet(getPosition(SSL_SERVER)))
-                keyUsage.set(keyUsage.KEY_ENCIPHERMENT, val);
+                keyUsage.set(KeyUsageExtension.KEY_ENCIPHERMENT, val);
 
             if (isSet(getPosition(SSL_CA)) ||
                 isSet(getPosition(S_MIME_CA)) ||
                 isSet(getPosition(OBJECT_SIGNING_CA)))
-                keyUsage.set(keyUsage.KEY_CERTSIGN, val);
+                keyUsage.set(KeyUsageExtension.KEY_CERTSIGN, val);
         } catch (IOException e) { }
         return keyUsage.getBits();
     }
diff --git a/jdk/src/share/classes/sun/security/x509/OIDMap.java b/jdk/src/share/classes/sun/security/x509/OIDMap.java
index c73452c..f6358b9 100644
--- a/jdk/src/share/classes/sun/security/x509/OIDMap.java
+++ b/jdk/src/share/classes/sun/security/x509/OIDMap.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@ import java.util.*;
 import java.io.IOException;
 
 import java.security.cert.CertificateException;
-import java.security.cert.CertificateParsingException;
 
 import sun.security.util.*;
 
@@ -186,7 +185,7 @@ public class OIDMap {
         final ObjectIdentifier oid;
         final String name;
         final String className;
-        private volatile Class clazz;
+        private volatile Class<?> clazz;
 
         OIDInfo(String name, ObjectIdentifier oid, String className) {
             this.name = name;
@@ -194,7 +193,7 @@ public class OIDMap {
             this.className = className;
         }
 
-        OIDInfo(String name, ObjectIdentifier oid, Class clazz) {
+        OIDInfo(String name, ObjectIdentifier oid, Class<?> clazz) {
             this.name = name;
             this.oid = oid;
             this.className = clazz.getName();
@@ -204,17 +203,16 @@ public class OIDMap {
         /**
          * Return the Class object associated with this attribute.
          */
-        Class getClazz() throws CertificateException {
+        Class<?> getClazz() throws CertificateException {
             try {
-                Class c = clazz;
+                Class<?> c = clazz;
                 if (c == null) {
                     c = Class.forName(className);
                     clazz = c;
                 }
                 return c;
             } catch (ClassNotFoundException e) {
-                throw (CertificateException)new CertificateException
-                                ("Could not load class: " + e).initCause(e);
+                throw new CertificateException("Could not load class: " + e, e);
             }
         }
     }
@@ -228,7 +226,7 @@ public class OIDMap {
      * @param clazz the Class object associated with this attribute
      * @exception CertificateException on errors.
      */
-    public static void addAttribute(String name, String oid, Class clazz)
+    public static void addAttribute(String name, String oid, Class<?> clazz)
             throws CertificateException {
         ObjectIdentifier objId;
         try {
@@ -277,7 +275,7 @@ public class OIDMap {
      * @param name the user friendly name.
      * @exception CertificateException if class cannot be instantiated.
      */
-    public static Class getClass(String name) throws CertificateException {
+    public static Class<?> getClass(String name) throws CertificateException {
         OIDInfo info = nameMap.get(name);
         return (info == null) ? null : info.getClazz();
     }
@@ -288,7 +286,7 @@ public class OIDMap {
      * @param oid the name of the object identifier to be returned.
      * @exception CertificateException if class cannot be instatiated.
      */
-    public static Class getClass(ObjectIdentifier oid)
+    public static Class<?> getClass(ObjectIdentifier oid)
             throws CertificateException {
         OIDInfo info = oidMap.get(oid);
         return (info == null) ? null : info.getClazz();
diff --git a/jdk/src/share/classes/sun/security/x509/OIDName.java b/jdk/src/share/classes/sun/security/x509/OIDName.java
index 9dee515..44187b0 100644
--- a/jdk/src/share/classes/sun/security/x509/OIDName.java
+++ b/jdk/src/share/classes/sun/security/x509/OIDName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -120,7 +120,7 @@ public class OIDName implements GeneralNameInterface {
 
         OIDName other = (OIDName)obj;
 
-        return oid.equals(other.oid);
+        return oid.equals((Object)other.oid);
     }
 
     /**
diff --git a/jdk/src/share/classes/sun/security/x509/OtherName.java b/jdk/src/share/classes/sun/security/x509/OtherName.java
index bb3a205..d2b68da 100644
--- a/jdk/src/share/classes/sun/security/x509/OtherName.java
+++ b/jdk/src/share/classes/sun/security/x509/OtherName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -120,19 +120,19 @@ public class OtherName implements GeneralNameInterface {
     private GeneralNameInterface getGNI(ObjectIdentifier oid, byte[] nameValue)
             throws IOException {
         try {
-            Class extClass = OIDMap.getClass(oid);
+            Class<?> extClass = OIDMap.getClass(oid);
             if (extClass == null) {   // Unsupported OtherName
                 return null;
             }
-            Class[] params = { Object.class };
-            Constructor cons = ((Class<?>)extClass).getConstructor(params);
+            Class<?>[] params = { Object.class };
+            Constructor<?> cons = extClass.getConstructor(params);
 
             Object[] passed = new Object[] { nameValue };
             GeneralNameInterface gni =
                        (GeneralNameInterface)cons.newInstance(passed);
             return gni;
         } catch (Exception e) {
-            throw (IOException)new IOException("Instantiation error: " + e).initCause(e);
+            throw new IOException("Instantiation error: " + e, e);
         }
     }
 
@@ -176,7 +176,7 @@ public class OtherName implements GeneralNameInterface {
             return false;
         }
         OtherName otherOther = (OtherName)other;
-        if (!(otherOther.oid.equals(oid))) {
+        if (!(otherOther.oid.equals((Object)oid))) {
             return false;
         }
         GeneralNameInterface otherGNI = null;
diff --git a/jdk/src/share/classes/sun/security/x509/PolicyConstraintsExtension.java b/jdk/src/share/classes/sun/security/x509/PolicyConstraintsExtension.java
index c9b1ea7..fe7ede3 100644
--- a/jdk/src/share/classes/sun/security/x509/PolicyConstraintsExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/PolicyConstraintsExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -231,7 +231,7 @@ implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public Integer get(String name) throws IOException {
         if (name.equalsIgnoreCase(REQUIRE)) {
             return new Integer(require);
         } else if (name.equalsIgnoreCase(INHIBIT)) {
diff --git a/jdk/src/share/classes/sun/security/x509/PolicyInformation.java b/jdk/src/share/classes/sun/security/x509/PolicyInformation.java
index a8eb9fa..0e98e42 100644
--- a/jdk/src/share/classes/sun/security/x509/PolicyInformation.java
+++ b/jdk/src/share/classes/sun/security/x509/PolicyInformation.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -186,6 +186,7 @@ public class PolicyInformation {
     /**
      * Set the attribute value.
      */
+    @SuppressWarnings("unchecked") // Checked with instanceof
     public void set(String name, Object obj) throws IOException {
         if (name.equalsIgnoreCase(ID)) {
             if (obj instanceof CertificatePolicyId)
diff --git a/jdk/src/share/classes/sun/security/x509/PolicyMappingsExtension.java b/jdk/src/share/classes/sun/security/x509/PolicyMappingsExtension.java
index acdbdb9..fba5104 100644
--- a/jdk/src/share/classes/sun/security/x509/PolicyMappingsExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/PolicyMappingsExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,8 +29,6 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.util.*;
 
-import java.security.cert.CertificateException;
-
 import sun.security.util.*;
 
 /**
@@ -165,6 +163,7 @@ implements CertAttrSet<String> {
     /**
      * Set the attribute value.
      */
+    @SuppressWarnings("unchecked") // Checked with instanceof
     public void set(String name, Object obj) throws IOException {
         if (name.equalsIgnoreCase(MAP)) {
             if (!(obj instanceof List)) {
@@ -182,7 +181,7 @@ implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public List<CertificatePolicyMap> get(String name) throws IOException {
         if (name.equalsIgnoreCase(MAP)) {
             return (maps);
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/PrivateKeyUsageExtension.java b/jdk/src/share/classes/sun/security/x509/PrivateKeyUsageExtension.java
index 43b3ddc..c20d855 100644
--- a/jdk/src/share/classes/sun/security/x509/PrivateKeyUsageExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/PrivateKeyUsageExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -262,7 +262,7 @@ implements CertAttrSet<String> {
      * Get the attribute value.
      * @exception CertificateException on attribute handling errors.
      */
-    public Object get(String name) throws CertificateException {
+    public Date get(String name) throws CertificateException {
       if (name.equalsIgnoreCase(NOT_BEFORE)) {
           return (new Date(notBefore.getTime()));
       } else if (name.equalsIgnoreCase(NOT_AFTER)) {
diff --git a/jdk/src/share/classes/sun/security/x509/RDN.java b/jdk/src/share/classes/sun/security/x509/RDN.java
index 27c10d0..0582259 100644
--- a/jdk/src/share/classes/sun/security/x509/RDN.java
+++ b/jdk/src/share/classes/sun/security/x509/RDN.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,17 +25,11 @@
 
 package sun.security.x509;
 
-import java.lang.reflect.*;
 import java.io.IOException;
 import java.io.StringReader;
-import java.security.PrivilegedExceptionAction;
-import java.security.AccessController;
-import java.security.Principal;
 import java.util.*;
 
 import sun.security.util.*;
-import sun.security.pkcs.PKCS9Attribute;
-import javax.security.auth.x500.X500Principal;
 
 /**
  * RDNs are a set of {attribute = value} assertions.  Some of those
@@ -327,7 +321,7 @@ public class RDN {
      */
     DerValue findAttribute(ObjectIdentifier oid) {
         for (int i = 0; i < assertion.length; i++) {
-            if (assertion[i].oid.equals(oid)) {
+            if (assertion[i].oid.equals((Object)oid)) {
                 return assertion[i].value;
             }
         }
diff --git a/jdk/src/share/classes/sun/security/x509/RFC822Name.java b/jdk/src/share/classes/sun/security/x509/RFC822Name.java
index 8f56903..a477174 100644
--- a/jdk/src/share/classes/sun/security/x509/RFC822Name.java
+++ b/jdk/src/share/classes/sun/security/x509/RFC822Name.java
@@ -153,7 +153,7 @@ public class RFC822Name implements GeneralNameInterface
      * @return a hash code value for this object.
      */
     public int hashCode() {
-        return name.toUpperCase().hashCode();
+        return name.toUpperCase(Locale.ENGLISH).hashCode();
     }
 
     /**
diff --git a/jdk/src/share/classes/sun/security/x509/SubjectAlternativeNameExtension.java b/jdk/src/share/classes/sun/security/x509/SubjectAlternativeNameExtension.java
index 5d74cc4..95eb67e 100644
--- a/jdk/src/share/classes/sun/security/x509/SubjectAlternativeNameExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/SubjectAlternativeNameExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -195,7 +195,7 @@ implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public GeneralNames get(String name) throws IOException {
         if (name.equalsIgnoreCase(SUBJECT_NAME)) {
             return (names);
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/SubjectInfoAccessExtension.java b/jdk/src/share/classes/sun/security/x509/SubjectInfoAccessExtension.java
index 8e08b9a..2f851f7 100644
--- a/jdk/src/share/classes/sun/security/x509/SubjectInfoAccessExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/SubjectInfoAccessExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -167,6 +167,7 @@ public class SubjectInfoAccessExtension extends Extension
     /**
      * Set the attribute value.
      */
+    @SuppressWarnings("unchecked") // Checked with instanceof
     public void set(String name, Object obj) throws IOException {
         if (name.equalsIgnoreCase(DESCRIPTIONS)) {
             if (!(obj instanceof List)) {
@@ -184,7 +185,7 @@ public class SubjectInfoAccessExtension extends Extension
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public List<AccessDescription> get(String name) throws IOException {
         if (name.equalsIgnoreCase(DESCRIPTIONS)) {
             return accessDescriptions;
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/SubjectKeyIdentifierExtension.java b/jdk/src/share/classes/sun/security/x509/SubjectKeyIdentifierExtension.java
index a22129f..79482c9 100644
--- a/jdk/src/share/classes/sun/security/x509/SubjectKeyIdentifierExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/SubjectKeyIdentifierExtension.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -156,7 +156,7 @@ implements CertAttrSet<String> {
     /**
      * Get the attribute value.
      */
-    public Object get(String name) throws IOException {
+    public KeyIdentifier get(String name) throws IOException {
         if (name.equalsIgnoreCase(KEY_ID)) {
             return (id);
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/X500Name.java b/jdk/src/share/classes/sun/security/x509/X500Name.java
index 57af558..3cc7b93 100644
--- a/jdk/src/share/classes/sun/security/x509/X500Name.java
+++ b/jdk/src/share/classes/sun/security/x509/X500Name.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,14 +27,12 @@ package sun.security.x509;
 
 import java.lang.reflect.*;
 import java.io.IOException;
-import java.io.StringReader;
 import java.security.PrivilegedExceptionAction;
 import java.security.AccessController;
 import java.security.Principal;
 import java.util.*;
 
 import sun.security.util.*;
-import sun.security.pkcs.PKCS9Attribute;
 import javax.security.auth.x500.X500Principal;
 
 /**
@@ -144,9 +142,9 @@ public class X500Name implements GeneralNameInterface, Principal {
     /**
      * Constructs a name from a conventionally formatted string, such
      * as "CN=Dave, OU=JavaSoft, O=Sun Microsystems, C=US".
-     * (RFC 1779 or RFC 2253 style).
+     * (RFC 1779, 2253, or 4514 style).
      *
-     * @param DN X.500 Distinguished Name
+     * @param dname the X.500 Distinguished Name
      */
     public X500Name(String dname) throws IOException {
         this(dname, Collections.<String, String>emptyMap());
@@ -155,9 +153,9 @@ public class X500Name implements GeneralNameInterface, Principal {
     /**
      * Constructs a name from a conventionally formatted string, such
      * as "CN=Dave, OU=JavaSoft, O=Sun Microsystems, C=US".
-     * (RFC 1779 or RFC 2253 style).
+     * (RFC 1779, 2253, or 4514 style).
      *
-     * @param DN X.500 Distinguished Name
+     * @param dname the X.500 Distinguished Name
      * @param keywordMap an additional keyword/OID map
      */
     public X500Name(String dname, Map<String, String> keywordMap)
@@ -169,10 +167,11 @@ public class X500Name implements GeneralNameInterface, Principal {
      * Constructs a name from a string formatted according to format.
      * Currently, the formats DEFAULT and RFC2253 are supported.
      * DEFAULT is the default format used by the X500Name(String)
-     * constructor. RFC2253 is format strictly according to RFC2253
+     * constructor. RFC2253 is the format strictly according to RFC2253
      * without extensions.
      *
-     * @param DN X.500 Distinguished Name
+     * @param dname the X.500 Distinguished Name
+     * @param format the specified format of the String DN
      */
     public X500Name(String dname, String format) throws IOException {
         if (dname == null) {
@@ -867,8 +866,8 @@ public class X500Name implements GeneralNameInterface, Principal {
      *     O="Sue, Grabbit and Runn" or
      *     O=Sue\, Grabbit and Runn
      *
-     * This method can parse 1779 or 2253 DNs and non-standard 3280 keywords.
-     * Additional keywords can be specified in the keyword/OID map.
+     * This method can parse RFC 1779, 2253 or 4514 DNs and non-standard 3280
+     * keywords. Additional keywords can be specified in the keyword/OID map.
      */
     private void parseDN(String input, Map<String, String> keywordMap)
         throws IOException {
@@ -877,7 +876,7 @@ public class X500Name implements GeneralNameInterface, Principal {
             return;
         }
 
-        List<RDN> dnVector = new ArrayList<RDN>();
+        List<RDN> dnVector = new ArrayList<>();
         int dnOffset = 0;
         int rdnEnd;
         String rdnString;
@@ -947,52 +946,51 @@ public class X500Name implements GeneralNameInterface, Principal {
         if (dnString.length() == 0) {
             names = new RDN[0];
             return;
-        }
-
-        List<RDN> dnVector = new ArrayList<RDN>();
-        int dnOffset = 0;
-        String rdnString;
-
-        int searchOffset = 0;
-        int rdnEnd = dnString.indexOf(',');
-        while (rdnEnd >=0) {
-            /*
-             * We have encountered an RDN delimiter (comma).
-             * If the comma in the RDN under consideration is
-             * preceded by a backslash (escape), it
-             * is part of the RDN. Otherwise, it is used as a separator, to
-             * delimit the RDN under consideration from any subsequent RDNs.
-             */
-            if (rdnEnd > 0 && !escaped(rdnEnd, searchOffset, dnString)) {
-
-                /*
-                 * Comma is a separator
-                 */
-                rdnString = dnString.substring(dnOffset, rdnEnd);
-
-                // Parse RDN, and store it in vector
-                RDN rdn = new RDN(rdnString, "RFC2253");
-                dnVector.add(rdn);
-
-                // Increase the offset
-                dnOffset = rdnEnd + 1;
-            }
-
-            searchOffset = rdnEnd + 1;
-            rdnEnd = dnString.indexOf(',', searchOffset);
-        }
-
-        // Parse last or only RDN, and store it in vector
-        rdnString = dnString.substring(dnOffset);
-        RDN rdn = new RDN(rdnString, "RFC2253");
-        dnVector.add(rdn);
-
-        /*
-         * Store the vector elements as an array of RDNs
-         * NOTE: It's only on output that little-endian ordering is used.
-         */
-        Collections.reverse(dnVector);
-        names = dnVector.toArray(new RDN[dnVector.size()]);
+         }
+
+         List<RDN> dnVector = new ArrayList<>();
+         int dnOffset = 0;
+         String rdnString;
+         int searchOffset = 0;
+         int rdnEnd = dnString.indexOf(',');
+         while (rdnEnd >=0) {
+             /*
+              * We have encountered an RDN delimiter (comma).
+              * If the comma in the RDN under consideration is
+              * preceded by a backslash (escape), it
+              * is part of the RDN. Otherwise, it is used as a separator, to
+              * delimit the RDN under consideration from any subsequent RDNs.
+              */
+             if (rdnEnd > 0 && !escaped(rdnEnd, searchOffset, dnString)) {
+
+                 /*
+                  * Comma is a separator
+                  */
+                 rdnString = dnString.substring(dnOffset, rdnEnd);
+
+                 // Parse RDN, and store it in vector
+                 RDN rdn = new RDN(rdnString, "RFC2253");
+                 dnVector.add(rdn);
+
+                 // Increase the offset
+                 dnOffset = rdnEnd + 1;
+             }
+
+             searchOffset = rdnEnd + 1;
+             rdnEnd = dnString.indexOf(',', searchOffset);
+         }
+
+         // Parse last or only RDN, and store it in vector
+         rdnString = dnString.substring(dnOffset);
+         RDN rdn = new RDN(rdnString, "RFC2253");
+         dnVector.add(rdn);
+
+         /*
+          * Store the vector elements as an array of RDNs
+          * NOTE: It's only on output that little-endian ordering is used.
+          */
+         Collections.reverse(dnVector);
+         names = dnVector.toArray(new RDN[dnVector.size()]);
     }
 
     /*
@@ -1371,7 +1369,7 @@ public class X500Name implements GeneralNameInterface, Principal {
     /**
      * Constructor object for use by asX500Principal().
      */
-    private static final Constructor principalConstructor;
+    private static final Constructor<X500Principal> principalConstructor;
 
     /**
      * Field object for use by asX500Name().
@@ -1386,9 +1384,9 @@ public class X500Name implements GeneralNameInterface, Principal {
         PrivilegedExceptionAction<Object[]> pa =
                 new PrivilegedExceptionAction<Object[]>() {
             public Object[] run() throws Exception {
-                Class pClass = X500Principal.class;
-                Class[] args = new Class[] {X500Name.class};
-                Constructor cons = ((Class<?>)pClass).getDeclaredConstructor(args);
+                Class<X500Principal> pClass = X500Principal.class;
+                Class<?>[] args = new Class<?>[] { X500Name.class };
+                Constructor<X500Principal> cons = pClass.getDeclaredConstructor(args);
                 cons.setAccessible(true);
                 Field field = pClass.getDeclaredField("thisX500Name");
                 field.setAccessible(true);
@@ -1397,11 +1395,13 @@ public class X500Name implements GeneralNameInterface, Principal {
         };
         try {
             Object[] result = AccessController.doPrivileged(pa);
-            principalConstructor = (Constructor)result[0];
+            @SuppressWarnings("unchecked")
+            Constructor<X500Principal> constr =
+                    (Constructor<X500Principal>)result[0];
+            principalConstructor = constr;
             principalField = (Field)result[1];
         } catch (Exception e) {
-            throw (InternalError)new InternalError("Could not obtain "
-                + "X500Principal access").initCause(e);
+            throw new InternalError("Could not obtain X500Principal access", e);
         }
     }
 
@@ -1415,8 +1415,7 @@ public class X500Name implements GeneralNameInterface, Principal {
         if (x500Principal == null) {
             try {
                 Object[] args = new Object[] {this};
-                x500Principal =
-                        (X500Principal)principalConstructor.newInstance(args);
+                x500Principal = principalConstructor.newInstance(args);
             } catch (Exception e) {
                 throw new RuntimeException("Unexpected exception", e);
             }
diff --git a/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java b/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java
index 495cc06..26f344b 100644
--- a/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java
+++ b/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,11 +25,9 @@
 
 package sun.security.x509;
 
-import java.io.InputStream;
 import java.io.IOException;
 import java.security.cert.CRLException;
 import java.security.cert.CRLReason;
-import java.security.cert.CertificateException;
 import java.security.cert.X509CRLEntry;
 import java.math.BigInteger;
 import java.util.Collection;
@@ -281,7 +279,7 @@ public class X509CRLEntryImpl extends X509CRLEntry {
         if (obj == null)
             return null;
         CRLReasonCodeExtension reasonCode = (CRLReasonCodeExtension)obj;
-        return (Integer)(reasonCode.get(reasonCode.REASON));
+        return reasonCode.get(CRLReasonCodeExtension.REASON);
     }
 
     /**
@@ -299,13 +297,13 @@ public class X509CRLEntryImpl extends X509CRLEntry {
             sb.append("\n    Certificate issuer: " + certIssuer);
         }
         if (extensions != null) {
-            Collection allEntryExts = extensions.getAllExtensions();
-            Object[] objs = allEntryExts.toArray();
+            Collection<Extension> allEntryExts = extensions.getAllExtensions();
+            Extension[] exts = allEntryExts.toArray(new Extension[0]);
 
-            sb.append("\n    CRL Entry Extensions: " + objs.length);
-            for (int i = 0; i < objs.length; i++) {
+            sb.append("\n    CRL Entry Extensions: " + exts.length);
+            for (int i = 0; i < exts.length; i++) {
                 sb.append("\n    [" + (i+1) + "]: ");
-                Extension ext = (Extension)objs[i];
+                Extension ext = exts[i];
                 try {
                     if (OIDMap.getClass(ext.getExtensionId()) == null) {
                         sb.append(ext.toString());
@@ -409,7 +407,7 @@ public class X509CRLEntryImpl extends X509CRLEntry {
                                                  e.hasMoreElements();) {
                     ex = e.nextElement();
                     inCertOID = ex.getExtensionId();
-                    if (inCertOID.equals(findOID)) {
+                    if (inCertOID.equals((Object)findOID)) {
                         crlExt = ex;
                         break;
                     }
diff --git a/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java b/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java
index b99bc44..7e67990 100644
--- a/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java
+++ b/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,6 @@ import java.math.BigInteger;
 import java.security.Principal;
 import java.security.PublicKey;
 import java.security.PrivateKey;
-import java.security.Security;
 import java.security.Signature;
 import java.security.NoSuchAlgorithmException;
 import java.security.InvalidKeyException;
@@ -782,7 +781,8 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
     public KeyIdentifier getAuthKeyId() throws IOException {
         AuthorityKeyIdentifierExtension aki = getAuthKeyIdExtension();
         if (aki != null) {
-            KeyIdentifier keyId = (KeyIdentifier)aki.get(aki.KEY_ID);
+            KeyIdentifier keyId = (KeyIdentifier)aki.get(
+                    AuthorityKeyIdentifierExtension.KEY_ID);
             return keyId;
         } else {
             return null;
@@ -821,7 +821,7 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
     public BigInteger getCRLNumber() throws IOException {
         CRLNumberExtension numExt = getCRLNumberExtension();
         if (numExt != null) {
-            BigInteger num = (BigInteger)numExt.get(numExt.NUMBER);
+            BigInteger num = numExt.get(CRLNumberExtension.NUMBER);
             return num;
         } else {
             return null;
@@ -850,7 +850,7 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
     public BigInteger getBaseCRLNumber() throws IOException {
         DeltaCRLIndicatorExtension dciExt = getDeltaCRLIndicatorExtension();
         if (dciExt != null) {
-            BigInteger num = (BigInteger)dciExt.get(dciExt.NUMBER);
+            BigInteger num = dciExt.get(DeltaCRLIndicatorExtension.NUMBER);
             return num;
         } else {
             return null;
@@ -961,7 +961,7 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
                                                  e.hasMoreElements();) {
                     ex = e.nextElement();
                     inCertOID = ex.getExtensionId();
-                    if (inCertOID.equals(findOID)) {
+                    if (inCertOID.equals((Object)findOID)) {
                         crlExt = ex;
                         break;
                     }
@@ -1189,8 +1189,7 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
         CertificateIssuerExtension ciExt =
             entry.getCertificateIssuerExtension();
         if (ciExt != null) {
-            GeneralNames names = (GeneralNames)
-                ciExt.get(CertificateIssuerExtension.ISSUER);
+            GeneralNames names = ciExt.get(CertificateIssuerExtension.ISSUER);
             X500Name issuerDN = (X500Name) names.get(0).getName();
             return issuerDN.asX500Principal();
         } else {
diff --git a/jdk/src/share/classes/sun/security/x509/X509CertImpl.java b/jdk/src/share/classes/sun/security/x509/X509CertImpl.java
index eb7dc39..83f9588 100644
--- a/jdk/src/share/classes/sun/security/x509/X509CertImpl.java
+++ b/jdk/src/share/classes/sun/security/x509/X509CertImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -196,10 +196,7 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
             parse(new DerValue(certData));
         } catch (IOException e) {
             signedCert = null;
-            CertificateException ce = new
-                CertificateException("Unable to initialize, " + e);
-            ce.initCause(e);
-            throw ce;
+            throw new CertificateException("Unable to initialize, " + e, e);
         }
     }
 
@@ -231,25 +228,19 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
                 inBuffered.reset();
                 der = new DerValue(inBuffered);
             } catch (IOException ioe1) {
-                CertificateException ce = new
-                    CertificateException("Input stream must be " +
-                                         "either DER-encoded bytes " +
-                                         "or RFC1421 hex-encoded " +
-                                         "DER-encoded bytes: " +
-                                         ioe1.getMessage());
-                ce.initCause(ioe1);
-                throw ce;
+                throw new CertificateException("Input stream must be " +
+                                               "either DER-encoded bytes " +
+                                               "or RFC1421 hex-encoded " +
+                                               "DER-encoded bytes: " +
+                                               ioe1.getMessage(), ioe1);
             }
         }
         try {
             parse(der);
         } catch (IOException ioe) {
             signedCert = null;
-            CertificateException ce = new
-                CertificateException("Unable to parse DER value of " +
-                                     "certificate, " + ioe);
-            ce.initCause(ioe);
-            throw ce;
+            throw new CertificateException("Unable to parse DER value of " +
+                                           "certificate, " + ioe, ioe);
         }
     }
 
@@ -320,10 +311,7 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
             parse(derVal);
         } catch (IOException e) {
             signedCert = null;
-            CertificateException ce = new
-                CertificateException("Unable to initialize, " + e);
-            ce.initCause(e);
-            throw ce;
+            throw new CertificateException("Unable to initialize, " + e, e);
         }
     }
 
@@ -1279,7 +1267,7 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
                 return null;
             } else {
                 for (Extension ex : extensions.getAllExtensions()) {
-                    if (ex.getExtensionId().equals(oid)) {
+                    if (ex.getExtensionId().equals((Object)oid)) {
                         //XXXX May want to consider cloning this
                         return ex;
                     }
@@ -1434,10 +1422,7 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
                 new ExtendedKeyUsageExtension(Boolean.FALSE, data);
             return Collections.unmodifiableList(ekuExt.getExtendedKeyUsage());
         } catch (IOException ioe) {
-            CertificateParsingException cpe =
-                new CertificateParsingException();
-            cpe.initCause(ioe);
-            throw cpe;
+            throw new CertificateParsingException(ioe);
         }
     }
 
@@ -1578,8 +1563,8 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
         }
         GeneralNames names;
         try {
-            names = (GeneralNames) subjectAltNameExt.get
-                (SubjectAlternativeNameExtension.SUBJECT_NAME);
+            names = subjectAltNameExt.get(
+                    SubjectAlternativeNameExtension.SUBJECT_NAME);
         } catch (IOException ioe) {
             // should not occur
             return Collections.<List<?>>emptySet();
@@ -1610,18 +1595,15 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
 
             GeneralNames names;
             try {
-                names = (GeneralNames) subjectAltNameExt.get
-                    (SubjectAlternativeNameExtension.SUBJECT_NAME);
+                names = subjectAltNameExt.get(
+                        SubjectAlternativeNameExtension.SUBJECT_NAME);
             }  catch (IOException ioe) {
                 // should not occur
                 return Collections.<List<?>>emptySet();
             }
             return makeAltNames(names);
         } catch (IOException ioe) {
-            CertificateParsingException cpe =
-                new CertificateParsingException();
-            cpe.initCause(ioe);
-            throw cpe;
+            throw new CertificateParsingException(ioe);
         }
     }
 
@@ -1644,8 +1626,8 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
         }
         GeneralNames names;
         try {
-            names = (GeneralNames) issuerAltNameExt.get
-                (IssuerAlternativeNameExtension.ISSUER_NAME);
+            names = issuerAltNameExt.get(
+                    IssuerAlternativeNameExtension.ISSUER_NAME);
         } catch (IOException ioe) {
             // should not occur
             return Collections.<List<?>>emptySet();
@@ -1676,18 +1658,15 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
                                                     data);
             GeneralNames names;
             try {
-                names = (GeneralNames) issuerAltNameExt.get
-                    (IssuerAlternativeNameExtension.ISSUER_NAME);
+                names = issuerAltNameExt.get(
+                        IssuerAlternativeNameExtension.ISSUER_NAME);
             }  catch (IOException ioe) {
                 // should not occur
                 return Collections.<List<?>>emptySet();
             }
             return makeAltNames(names);
         } catch (IOException ioe) {
-            CertificateParsingException cpe =
-                new CertificateParsingException();
-            cpe.initCause(ioe);
-            throw cpe;
+            throw new CertificateParsingException(ioe);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/security/x509/X509CertInfo.java b/jdk/src/share/classes/sun/security/x509/X509CertInfo.java
index 419f1e7..d654a58 100644
--- a/jdk/src/share/classes/sun/security/x509/X509CertInfo.java
+++ b/jdk/src/share/classes/sun/security/x509/X509CertInfo.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -149,10 +149,7 @@ public class X509CertInfo implements CertAttrSet<String> {
 
             parse(in);
         } catch (IOException e) {
-            CertificateParsingException parseException =
-                        new CertificateParsingException(e.toString());
-            parseException.initCause(e);
-            throw parseException;
+            throw new CertificateParsingException(e);
         }
     }
 
@@ -168,10 +165,7 @@ public class X509CertInfo implements CertAttrSet<String> {
         try {
             parse(derVal);
         } catch (IOException e) {
-            CertificateParsingException parseException =
-                        new CertificateParsingException(e.toString());
-            parseException.initCause(e);
-            throw parseException;
+            throw new CertificateParsingException(e);
         }
     }
 
@@ -319,12 +313,12 @@ public class X509CertInfo implements CertAttrSet<String> {
             sb.append("  Subject Id:\n" + subjectUniqueId.toString() + "\n");
         }
         if (extensions != null) {
-            Collection allExts = extensions.getAllExtensions();
-            Object[] objs = allExts.toArray();
-            sb.append("\nCertificate Extensions: " + objs.length);
-            for (int i = 0; i < objs.length; i++) {
+            Collection<Extension> allExts = extensions.getAllExtensions();
+            Extension[] exts = allExts.toArray(new Extension[0]);
+            sb.append("\nCertificate Extensions: " + exts.length);
+            for (int i = 0; i < exts.length; i++) {
                 sb.append("\n[" + (i+1) + "]: ");
-                Extension ext = (Extension)objs[i];
+                Extension ext = exts[i];
                 try {
                     if (OIDMap.getClass(ext.getExtensionId()) == null) {
                         sb.append(ext.toString());
@@ -766,8 +760,8 @@ public class X509CertInfo implements CertAttrSet<String> {
             try {
                 subjectAltNameExt = (SubjectAlternativeNameExtension)
                         extensions.get(SubjectAlternativeNameExtension.NAME);
-                names = (GeneralNames) subjectAltNameExt.get
-                        (SubjectAlternativeNameExtension.SUBJECT_NAME);
+                names = subjectAltNameExt.get(
+                        SubjectAlternativeNameExtension.SUBJECT_NAME);
             } catch (IOException e) {
                 throw new CertificateParsingException("X.509 Certificate is " +
                         "incomplete: subject field is empty, and " +
diff --git a/jdk/src/share/classes/sun/security/x509/X509Key.java b/jdk/src/share/classes/sun/security/x509/X509Key.java
index 109cedf..135aa2e 100644
--- a/jdk/src/share/classes/sun/security/x509/X509Key.java
+++ b/jdk/src/share/classes/sun/security/x509/X509Key.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,6 @@ import java.util.Properties;
 import java.security.Key;
 import java.security.PublicKey;
 import java.security.KeyFactory;
-import java.security.KeyRep;
 import java.security.Security;
 import java.security.Provider;
 import java.security.InvalidKeyException;
@@ -245,7 +244,7 @@ public class X509Key implements PublicKey {
                 throw new InstantiationException();
             }
 
-            Class keyClass = null;
+            Class<?> keyClass = null;
             try {
                 keyClass = Class.forName(classname);
             } catch (ClassNotFoundException e) {
diff --git a/jdk/src/share/classes/sun/swing/FilePane.java b/jdk/src/share/classes/sun/swing/FilePane.java
index 9a95220..8dbaab5 100644
--- a/jdk/src/share/classes/sun/swing/FilePane.java
+++ b/jdk/src/share/classes/sun/swing/FilePane.java
@@ -35,6 +35,7 @@ import java.util.*;
 import java.util.List;
 import java.util.concurrent.Callable;
 
+import javax.accessibility.AccessibleContext;
 import javax.swing.*;
 import javax.swing.border.*;
 import javax.swing.event.*;
@@ -82,6 +83,9 @@ public class FilePane extends JPanel implements PropertyChangeListener {
     private JPanel currentViewPanel;
     private String[] viewTypeActionNames;
 
+    private String filesListAccessibleName = null;
+    private String filesDetailsAccessibleName = null;
+
     private JPopupMenu contextMenu;
     private JMenu viewMenu;
 
@@ -450,6 +454,9 @@ public class FilePane extends JPanel implements PropertyChangeListener {
         gigaByteString = UIManager.getString("FileChooser.fileSizeGigaBytes", l);
         fullRowSelection = UIManager.getBoolean("FileView.fullRowSelection");
 
+        filesListAccessibleName = UIManager.getString("FileChooser.filesListAccessibleName", l);
+        filesDetailsAccessibleName = UIManager.getString("FileChooser.filesDetailsAccessibleName", l);
+
         renameErrorTitleText = UIManager.getString("FileChooser.renameErrorTitleText", l);
         renameErrorText = UIManager.getString("FileChooser.renameErrorText", l);
         renameErrorFileExistsText = UIManager.getString("FileChooser.renameErrorFileExistsText", l);
@@ -634,6 +641,9 @@ public class FilePane extends JPanel implements PropertyChangeListener {
         if (listViewBorder != null) {
             scrollpane.setBorder(listViewBorder);
         }
+
+        list.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, filesListAccessibleName);
+
         p.add(scrollpane, BorderLayout.CENTER);
         return p;
     }
@@ -1228,6 +1238,8 @@ public class FilePane extends JPanel implements PropertyChangeListener {
 
         detailsTableModel.fireTableStructureChanged();
 
+        detailsTable.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, filesDetailsAccessibleName);
+
         return p;
     } // createDetailsView
 
diff --git a/jdk/src/share/classes/sun/swing/PrintingStatus.java b/jdk/src/share/classes/sun/swing/PrintingStatus.java
index 19b26da..af3658b 100644
--- a/jdk/src/share/classes/sun/swing/PrintingStatus.java
+++ b/jdk/src/share/classes/sun/swing/PrintingStatus.java
@@ -43,8 +43,8 @@ import java.lang.reflect.InvocationTargetException;
  * <p/>
  * Methods of these class are thread safe, although most Swing methods
  * are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
  *
  * @author Alexander Potochkin
  * @since 1.6
diff --git a/jdk/src/share/classes/sun/text/CompactByteArray.java b/jdk/src/share/classes/sun/text/CompactByteArray.java
index 3e42e3c..042d88f 100644
--- a/jdk/src/share/classes/sun/text/CompactByteArray.java
+++ b/jdk/src/share/classes/sun/text/CompactByteArray.java
@@ -269,7 +269,7 @@ public final class CompactByteArray implements Cloneable {
             if (hashes != null) other.hashes = (int[])hashes.clone();
             return other;
         } catch (CloneNotSupportedException e) {
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/text/normalizer/NormalizerBase.java b/jdk/src/share/classes/sun/text/normalizer/NormalizerBase.java
index 5282294..576e67b 100644
--- a/jdk/src/share/classes/sun/text/normalizer/NormalizerBase.java
+++ b/jdk/src/share/classes/sun/text/normalizer/NormalizerBase.java
@@ -636,7 +636,7 @@ public final class NormalizerBase implements Cloneable {
             return copy;
         }
         catch (CloneNotSupportedException e) {
-            throw new InternalError(e.toString());
+            throw new InternalError(e.toString(), e);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/tools/attach/HotSpotAttachProvider.java b/jdk/src/share/classes/sun/tools/attach/HotSpotAttachProvider.java
index a2339fc..08535a1 100644
--- a/jdk/src/share/classes/sun/tools/attach/HotSpotAttachProvider.java
+++ b/jdk/src/share/classes/sun/tools/attach/HotSpotAttachProvider.java
@@ -89,7 +89,7 @@ public abstract class HotSpotAttachProvider extends AttachProvider {
             if (t instanceof SecurityException) {
                 return result;
             }
-            throw new InternalError();          // shouldn't happen
+            throw new InternalError(t);          // shouldn't happen
         }
 
         for (Object vmid: vms) {
diff --git a/jdk/src/share/classes/sun/tools/attach/HotSpotVirtualMachine.java b/jdk/src/share/classes/sun/tools/attach/HotSpotVirtualMachine.java
index feb8628..2a21773 100644
--- a/jdk/src/share/classes/sun/tools/attach/HotSpotVirtualMachine.java
+++ b/jdk/src/share/classes/sun/tools/attach/HotSpotVirtualMachine.java
@@ -102,7 +102,7 @@ public abstract class HotSpotVirtualMachine extends VirtualMachine {
         try {
             loadAgentLibrary("instrument", args);
         } catch (AgentLoadException x) {
-            throw new InternalError("instrument library is missing in target VM");
+            throw new InternalError("instrument library is missing in target VM", x);
         } catch (AgentInitializationException x) {
             /*
              * Translate interesting errors into the right exception and
@@ -212,7 +212,7 @@ public abstract class HotSpotVirtualMachine extends VirtualMachine {
         try {
             return execute(cmd, args);
         } catch (AgentLoadException x) {
-            throw new InternalError("Should not get here");
+            throw new InternalError("Should not get here", x);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/tools/jconsole/LocalVirtualMachine.java b/jdk/src/share/classes/sun/tools/jconsole/LocalVirtualMachine.java
index e41ae7c..c99f99f 100644
--- a/jdk/src/share/classes/sun/tools/jconsole/LocalVirtualMachine.java
+++ b/jdk/src/share/classes/sun/tools/jconsole/LocalVirtualMachine.java
@@ -135,10 +135,8 @@ public class LocalVirtualMachine {
         try {
             host = MonitoredHost.getMonitoredHost(new HostIdentifier((String)null));
             vms = host.activeVms();
-        } catch (java.net.URISyntaxException sx) {
-            throw new InternalError(sx.getMessage());
-        } catch (MonitorException mx) {
-            throw new InternalError(mx.getMessage());
+        } catch (java.net.URISyntaxException | MonitorException x) {
+            throw new InternalError(x.getMessage(), x);
         }
         for (Object vmid: vms) {
             if (vmid instanceof Integer) {
diff --git a/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java b/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java
index 1078003..6e129fd 100644
--- a/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java
+++ b/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java
@@ -208,7 +208,7 @@ public class ProxyClient implements JConsoleContext {
             serverStubClass = Class.forName(rmiServerImplStubClassName).asSubclass(Remote.class);
         } catch (ClassNotFoundException e) {
             // should never reach here
-            throw (InternalError) new InternalError(e.getMessage()).initCause(e);
+            throw new InternalError(e.getMessage(), e);
         }
         rmiServerImplStubClass = serverStubClass;
     }
@@ -395,18 +395,10 @@ public class ProxyClient implements JConsoleContext {
         } catch (MalformedObjectNameException e) {
             // should not reach here
             throw new InternalError(e.getMessage());
-        } catch (IntrospectionException e) {
-            InternalError ie = new InternalError(e.getMessage());
-            ie.initCause(e);
-            throw ie;
-        } catch (InstanceNotFoundException e) {
-            InternalError ie = new InternalError(e.getMessage());
-            ie.initCause(e);
-            throw ie;
-        } catch (ReflectionException e) {
-            InternalError ie = new InternalError(e.getMessage());
-            ie.initCause(e);
-            throw ie;
+        } catch (IntrospectionException |
+                 InstanceNotFoundException |
+                 ReflectionException e) {
+            throw new InternalError(e.getMessage(), e);
         }
 
         if (hasPlatformMXBeans) {
diff --git a/jdk/src/share/classes/sun/tools/tree/Node.java b/jdk/src/share/classes/sun/tools/tree/Node.java
index 44cc4e9..da71ec5 100644
--- a/jdk/src/share/classes/sun/tools/tree/Node.java
+++ b/jdk/src/share/classes/sun/tools/tree/Node.java
@@ -108,7 +108,7 @@ class Node implements Constants, Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen, since we are Cloneable
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/tracing/dtrace/DTraceProvider.java b/jdk/src/share/classes/sun/tracing/dtrace/DTraceProvider.java
index 77cba5b..4321999 100644
--- a/jdk/src/share/classes/sun/tracing/dtrace/DTraceProvider.java
+++ b/jdk/src/share/classes/sun/tracing/dtrace/DTraceProvider.java
@@ -26,18 +26,15 @@
 package sun.tracing.dtrace;
 
 import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Modifier;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.annotation.Annotation;
-import java.util.HashMap;
 
 import sun.tracing.ProviderSkeleton;
 import sun.tracing.ProbeSkeleton;
 import com.sun.tracing.Provider;
-import com.sun.tracing.ProviderName;
 import com.sun.tracing.ProbeName;
 import com.sun.tracing.dtrace.Attributes;
 import com.sun.tracing.dtrace.ModuleName;
@@ -140,14 +137,8 @@ class DTraceProvider extends ProviderSkeleton {
         try {
             Constructor cons = proxyClass.getConstructor(constructorParams);
             return (T)cons.newInstance(new Object[] { this });
-        } catch (NoSuchMethodException e) {
-            throw new InternalError(e.toString());
-        } catch (IllegalAccessException e) {
-            throw new InternalError(e.toString());
-        } catch (InstantiationException e) {
-            throw new InternalError(e.toString());
-        } catch (InvocationTargetException e) {
-            throw new InternalError(e.toString());
+        } catch (ReflectiveOperationException e) {
+            throw new InternalError(e.toString(), e);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/util/calendar/CalendarDate.java b/jdk/src/share/classes/sun/util/calendar/CalendarDate.java
index 205415e..70c1bed 100644
--- a/jdk/src/share/classes/sun/util/calendar/CalendarDate.java
+++ b/jdk/src/share/classes/sun/util/calendar/CalendarDate.java
@@ -435,7 +435,7 @@ public abstract class CalendarDate implements Cloneable {
             return super.clone();
         } catch (CloneNotSupportedException e) {
             // this shouldn't happen
-            throw new InternalError();
+            throw new InternalError(e);
         }
     }
 
diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames.properties
index 6fac2dd..1339e05 100644
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames.properties
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames.properties
@@ -106,6 +106,7 @@ CNY=CNY
 COP=COP
 CRC=CRC
 CSD=CSD
+CUC=CUC
 CUP=CUP
 CVE=CVE
 CYP=CYP
@@ -232,6 +233,7 @@ SZL=SZL
 THB=THB
 TJS=TJS
 TMM=TMM
+TMT=TMT
 TND=TND
 TOP=TOP
 TPE=TPE
@@ -267,14 +269,18 @@ XOF=XOF
 XPD=XPD
 XPF=XPF
 XPT=XPT
+XSU=XSU
 XTS=XTS
+XUA=XUA
 XXX=XXX
 YER=YER
 YUM=YUM
 ZAR=ZAR
 ZMK=ZMK
 ZWD=ZWD
+ZWL=ZWL
 ZWN=ZWN
+ZWR=ZWR
 adp=Andorran Peseta
 aed=United Arab Emirates Dirham
 afa=Afghan Afghani (1927-2002)
@@ -317,6 +323,7 @@ cny=Chinese Yuan
 cop=Colombian Peso
 crc=Costa Rican Col\u00f3n
 csd=Serbian Dinar (2002-2006)
+cuc=Cuban Convertible Peso
 cup=Cuban Peso
 cve=Cape Verdean Escudo
 cyp=Cypriot Pound
@@ -443,6 +450,7 @@ szl=Swazi Lilangeni
 thb=Thai Baht
 tjs=Tajikistani Somoni
 tmm=Turkmenistani Manat (1993-2009)
+tmt=Turkmenistani Manat
 tnd=Tunisian Dinar
 top=Tongan Pa\u02bbanga
 tpe=Timorese Escudo
@@ -485,3 +493,5 @@ yum=Yugoslavian New Dinar (1994-2002)
 zar=South African Rand
 zmk=Zambian Kwacha
 zwd=Zimbabwean Dollar (1980-2008)
+zwl=Zimbabwean Dollar (2009)
+zwr=Zimbabwean Dollar (2008)
diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_de.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_de.properties
index 5e8f14b..7f193bc 100644
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_de.properties
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_de.properties
@@ -105,6 +105,7 @@ cny=Renminbi Yuan
 cop=Kolumbianischer Peso
 crc=Costa Rica Colon
 csd=Alter Serbischer Dinar
+cuc=Kubanischer Peso (konvertibel)
 cup=Kubanischer Peso
 cve=Kap Verde Escudo
 cyp=Zypern-Pfund
@@ -229,6 +230,7 @@ szl=Lilangeni
 thb=Baht
 tjs=Tadschikistan Somoni
 tmm=Turkmenistan-Manat
+tmt=Neuer Turkmenistan-Manat
 tnd=Tunesischer Dinar
 top=Pa\u02bbanga
 tpe=Timor-Escudo
@@ -270,3 +272,4 @@ yum=Neuer Dinar
 zar=S\u00fcdafrikanischer Rand
 zmk=Kwacha
 zwd=Simbabwe-Dollar
+zwl=Simbabwe-Dollar (2009)
diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_es.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_es.properties
index c973b48..9ea7553 100644
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_es.properties
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_es.properties
@@ -105,6 +105,7 @@ cny=yuan renminbi chino
 cop=peso colombiano
 crc=col\u00f3n costarricense
 csd=antiguo dinar serbio
+cuc=peso cubano convertible
 cup=peso cubano
 cve=escudo de Cabo Verde
 cyp=libra chipriota
@@ -231,6 +232,7 @@ szl=lilangeni suazi
 thb=baht tailand\u00e9s
 tjs=somoni tayiko
 tmm=manat turcomano
+tmt=nuevo manat turcomano
 tnd=dinar tunecino
 top=pa\u02bbanga tongano
 tpe=escudo timorense
@@ -273,3 +275,4 @@ yum=super dinar yugoslavo
 zar=rand sudafricano
 zmk=kwacha zambiano
 zwd=d\u00f3lar de Zimbabue
+zwl=d\u00f3lar zimbabuense
diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_es_CU.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_es_CU.properties
new file mode 100644
index 0000000..23ebbef
--- /dev/null
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_es_CU.properties
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+#
+# COPYRIGHT AND PERMISSION NOTICE
+#
+# Copyright (C) 1991-2011 Unicode, Inc. All rights reserved.
+# Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of the Unicode data files and any associated documentation (the
+# "Data Files") or Unicode software and any associated documentation
+# (the "Software") to deal in the Data Files or Software without
+# restriction, including without limitation the rights to use, copy,
+# modify, merge, publish, distribute, and/or sell copies of the Data
+# Files or Software, and to permit persons to whom the Data Files or
+# Software are furnished to do so, provided that (a) the above copyright
+# notice(s) and this permission notice appear with all copies of the
+# Data Files or Software, (b) both the above copyright notice(s) and
+# this permission notice appear in associated documentation, and (c)
+# there is clear notice in each modified Data File or in the Software as
+# well as in the documentation associated with the Data File(s) or
+# Software that the data or software has been modified.
+#
+# THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+# ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT
+# HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR
+# ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR
+# SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in these Data Files or Software without prior
+# written authorization of the copyright holder.
+
+#
+# Generated automatically from the Common Locale Data Repository. DO NOT EDIT!
+#
+CUP=CU$
+CUC=CUC$
diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties
index d2f9259..333360e 100644
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties
@@ -1,5 +1,5 @@
-# 
-# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+#
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -21,18 +21,49 @@
 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 # or visit www.oracle.com if you need additional information or have any
 # questions.
-# 
+#
 
-# (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved
-# (C) Copyright IBM Corp. 1996 - 1999 - All Rights Reserved
 #
-# The original version of this source code and documentation
-# is copyrighted and owned by Taligent, Inc., a wholly-owned
-# subsidiary of IBM. These materials are provided under terms
-# of a License Agreement between Taligent and Sun. This technology
-# is protected by multiple US and International patents.
+# COPYRIGHT AND PERMISSION NOTICE
+#
+# Copyright (C) 1991-2011 Unicode, Inc. All rights reserved.
+# Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of the Unicode data files and any associated documentation (the
+# "Data Files") or Unicode software and any associated documentation
+# (the "Software") to deal in the Data Files or Software without
+# restriction, including without limitation the rights to use, copy,
+# modify, merge, publish, distribute, and/or sell copies of the Data
+# Files or Software, and to permit persons to whom the Data Files or
+# Software are furnished to do so, provided that (a) the above copyright
+# notice(s) and this permission notice appear with all copies of the
+# Data Files or Software, (b) both the above copyright notice(s) and
+# this permission notice appear in associated documentation, and (c)
+# there is clear notice in each modified Data File or in the Software as
+# well as in the documentation associated with the Data File(s) or
+# Software that the data or software has been modified.
 #
-# This notice and attribution to Taligent may not be removed.
-# Taligent is a registered trademark of Taligent, Inc.
+# THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+# ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT
+# HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR
+# ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR
+# SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in these Data Files or Software without prior
+# written authorization of the copyright holder.
 
+#
+# Generated automatically from the Common Locale Data Repository. DO NOT EDIT!
+#
 EEK=kr
+eek=Eesti kroon
+EUR=\u20ac
+eur=euro
diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_fr.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_fr.properties
index 3bea1c0..ecba10c 100644
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_fr.properties
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_fr.properties
@@ -105,6 +105,7 @@ cny=yuan renminbi chinois
 cop=peso colombien
 crc=col\u00f3n costaricain
 csd=dinar serbo-mont\u00e9n\u00e9grin
+cuc=peso cubain convertible
 cup=peso cubain
 cve=escudo capverdien
 cyp=livre chypriote
@@ -231,6 +232,7 @@ szl=lilangeni swazi
 thb=baht tha\u00eflandais
 tjs=somoni tadjik
 tmm=manat turkm\u00e8ne
+tmt=nouveau manat turkm\u00e8ne
 tnd=dinar tunisien
 top=pa\u2019anga tongan
 tpe=escudo timorais
diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_ja.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_ja.properties
index a476238..afbc0c7 100644
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_ja.properties
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_ja.properties
@@ -105,6 +105,7 @@ cny=\u4e2d\u56fd\u4eba\u6c11\u5143
 cop=\u30b3\u30ed\u30f3\u30d3\u30a2 \u30da\u30bd
 crc=\u30b3\u30b9\u30bf\u30ea\u30ab \u30b3\u30ed\u30f3
 csd=\u30bb\u30eb\u30d3\u30a2\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
+cuc=\u30ad\u30e5\u30fc\u30d0 \u514c\u63db\u30da\u30bd
 cup=\u30ad\u30e5\u30fc\u30d0 \u30da\u30bd
 cve=\u30ab\u30fc\u30dc\u30d9\u30eb\u30c7 \u30a8\u30b9\u30af\u30fc\u30c9
 cyp=\u30ad\u30d7\u30ed\u30b9 \u30dd\u30f3\u30c9
@@ -231,6 +232,7 @@ szl=\u30b9\u30ef\u30b8\u30e9\u30f3\u30c9 \u30ea\u30e9\u30f3\u30b2\u30cb
 thb=\u30bf\u30a4 \u30d0\u30fc\u30c4
 tjs=\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3 \u30bd\u30e2\u30cb
 tmm=\u30c8\u30eb\u30af\u30e1\u30cb\u30b9\u30bf\u30f3 \u30de\u30ca\u30c8
+tmt=\u30c8\u30eb\u30af\u30e1\u30cb\u30b9\u30bf\u30f3 \u65b0\u30de\u30ca\u30c8
 tnd=\u30c1\u30e5\u30cb\u30b8\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
 top=\u30c8\u30f3\u30ac \u30d1\u30fb\u30a2\u30f3\u30ac
 tpe=\u30c6\u30a3\u30e2\u30fc\u30eb \u30a8\u30b9\u30af\u30fc\u30c9
@@ -273,3 +275,4 @@ yum=\u30e6\u30fc\u30b4\u30b9\u30e9\u30d3\u30a2 \u30b9\u30fc\u30d1\u30fc \u30c7\u
 zar=\u5357\u30a2\u30d5\u30ea\u30ab \u30e9\u30f3\u30c9
 zmk=\u30b6\u30f3\u30d3\u30a2 \u30af\u30ef\u30c1\u30e3
 zwd=\u30b8\u30f3\u30d0\u30d6\u30a8 \u30c9\u30eb
+zwl=\u30b8\u30f3\u30d0\u30d6\u30a8 \u30c9\u30eb (2009)
diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_ko.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_ko.properties
index 608e5d5..959bf7c 100644
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_ko.properties
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_ko.properties
@@ -105,6 +105,7 @@ cny=\uc911\uad6d \uc704\uc548 \uc778\ubbfc\ud3d0
 cop=\ucf5c\ub86c\ube44\uc544 \ud398\uc18c
 crc=\ucf54\uc2a4\ud0c0\ub9ac\uce74 \ucf5c\ub860
 csd=\uace0 \uc138\ub974\ube44\uc544 \ub514\ub098\ub974
+cuc=\ucfe0\ubc14 \ud0dc\ud658 \ud398\uc18c
 cup=\ucfe0\ubc14 \ud398\uc18c
 cve=\uce74\ubcf4\ubca0\ub974\ub370 \uc5d0\uc2a4\ucfe0\ub3c4
 cyp=\uc2f8\uc774\ud504\ub7ec\uc2a4 \ud30c\uc6b4\ub4dc
diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_pt.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_pt.properties
index d033ea7..20a62c8 100644
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_pt.properties
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_pt.properties
@@ -87,6 +87,7 @@ bhd=Dinar bareinita
 bif=Franco do Burundi
 bmd=D\u00f3lar das Bermudas
 bnd=D\u00f3lar do Brunei
+bob=Boliviano
 bov=Mvdol boliviano
 brl=Real brasileiro
 bsd=D\u00f3lar das Bahamas
@@ -104,6 +105,7 @@ cny=Yuan Renminbi chin\u00eas
 cop=Peso colombiano
 crc=Colon da Costa Rica
 csd=Dinar s\u00e9rvio antigo
+cuc=Peso cubano convers\u00edvel
 cup=Peso cubano
 cve=Escudo cabo-verdiano
 cyp=Libra cipriota
@@ -229,6 +231,7 @@ szl=Lilangeni da Suazil\u00e2ndia
 thb=Baht tailand\u00eas
 tjs=Somoni tadjique
 tmm=Manat do Turcomenist\u00e3o
+tmt=Novo Manat do Turcomenist\u00e3o
 tnd=Dinar tunisiano
 top=Pa\u02bbanga de Tonga
 tpe=Escudo timorense
@@ -271,3 +274,5 @@ yum=Dinar noviy iugoslavo
 zar=Rand sul-africano
 zmk=Cuacha zambiano
 zwd=D\u00f3lar do Zimb\u00e1bue
+zwl=D\u00f3lar do Zimb\u00e1bue (2009)
+zwr=D\u00f3lar do Zimb\u00e1bue (2008)
diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties
index a2130a2..eb10a65 100644
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties
@@ -1,5 +1,5 @@
-# 
-# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+#
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -21,18 +21,48 @@
 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 # or visit www.oracle.com if you need additional information or have any
 # questions.
-# 
+#
 
-# (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved
-# (C) Copyright IBM Corp. 1996 - 1999 - All Rights Reserved
 #
-# The original version of this source code and documentation
-# is copyrighted and owned by Taligent, Inc., a wholly-owned
-# subsidiary of IBM. These materials are provided under terms
-# of a License Agreement between Taligent and Sun. This technology
-# is protected by multiple US and International patents.
+# COPYRIGHT AND PERMISSION NOTICE
+#
+# Copyright (C) 1991-2011 Unicode, Inc. All rights reserved.
+# Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of the Unicode data files and any associated documentation (the
+# "Data Files") or Unicode software and any associated documentation
+# (the "Software") to deal in the Data Files or Software without
+# restriction, including without limitation the rights to use, copy,
+# modify, merge, publish, distribute, and/or sell copies of the Data
+# Files or Software, and to permit persons to whom the Data Files or
+# Software are furnished to do so, provided that (a) the above copyright
+# notice(s) and this permission notice appear with all copies of the
+# Data Files or Software, (b) both the above copyright notice(s) and
+# this permission notice appear in associated documentation, and (c)
+# there is clear notice in each modified Data File or in the Software as
+# well as in the documentation associated with the Data File(s) or
+# Software that the data or software has been modified.
 #
-# This notice and attribution to Taligent may not be removed.
-# Taligent is a registered trademark of Taligent, Inc.
+# THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+# ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT
+# HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR
+# ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR
+# SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in these Data Files or Software without prior
+# written authorization of the copyright holder.
 
+#
+# Generated automatically from the Common Locale Data Repository. DO NOT EDIT!
+#
 SKK=Sk
+skk=Slovensk\u00e1 koruna
+EUR=\u20ac
diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties
index ed541a1..804ac91 100644
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties
@@ -106,6 +106,7 @@ clp=\u667a\u5229\u6bd4\u7d22
 cop=\u54e5\u4f26\u6bd4\u4e9a\u6bd4\u7d22
 crc=\u54e5\u65af\u8fbe\u9ece\u52a0\u79d1\u6717
 csd=\u65e7\u585e\u5c14\u7ef4\u4e9a\u7b2c\u7eb3\u5c14
+cuc=\u53e4\u5df4\u53ef\u5151\u6362\u6bd4\u7d22
 cup=\u53e4\u5df4\u6bd4\u7d22
 cve=\u4f5b\u5f97\u89d2\u57c3\u65af\u5e93\u591a
 cyp=\u585e\u6d66\u8def\u65af\u9551
@@ -231,6 +232,7 @@ szl=\u65af\u5a01\u58eb\u5170\u91cc\u5170\u5409\u5c3c
 thb=\u6cf0\u94e2
 tjs=\u5854\u5409\u514b\u65af\u5766\u7d22\u83ab\u5c3c
 tmm=\u571f\u5e93\u66fc\u65af\u5766\u9a6c\u7eb3\u7279
+tmt=\u571f\u5e93\u66fc\u65af\u5766\u65b0\u9a6c\u7eb3\u7279
 tnd=\u7a81\u5c3c\u65af\u7b2c\u7eb3\u5c14
 top=\u6c64\u52a0\u6f58\u52a0
 tpe=\u5e1d\u6c76\u57c3\u65af\u5e93\u591a
@@ -273,3 +275,4 @@ yum=\u5357\u65af\u62c9\u592b\u504c\u5a01\u7b2c\u7eb3\u5c14
 zar=\u5357\u975e\u5170\u7279
 zmk=\u8d5e\u6bd4\u4e9a\u514b\u74e6\u67e5
 zwd=\u6d25\u5df4\u5e03\u97e6\u5143
+zwl=\u6d25\u5df4\u5e03\u97e6\u5143 (2009)
diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties
index 9630c6e..3ec99f1 100644
--- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties
+++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties
@@ -107,6 +107,7 @@ cny=\u4eba\u6c11\u5e63
 cop=\u54e5\u502b\u6bd4\u4e9e\u62ab\u7d22
 crc=\u54e5\u65af\u5927\u9ece\u52a0\u79d1\u90ce
 csd=\u65e7\u585e\u5c14\u7ef4\u4e9a\u7b2c\u7eb3\u5c14
+cuc=\u53e4\u5df4\u53ef\u8f49\u63db\u62ab\u7d22
 cup=\u53e4\u5df4\u62ab\u7d22
 cve=\u7dad\u5fb7\u89d2\u57c3\u65af\u5eab\u591a
 cyp=\u8cfd\u666e\u52d2\u65af\u938a
@@ -233,6 +234,7 @@ szl=\u65af\u5a01\u58eb\u5170\u91cc\u5170\u5409\u5c3c
 thb=\u6cf0\u9296
 tjs=\u5854\u5409\u514b\u65af\u5766\u7d22\u83ab\u5c3c
 tmm=\u571f\u5eab\u66fc\u99ac\u7d0d\u7279
+tmt=\u571f\u5eab\u66fc\u65b0\u99ac\u7d0d\u7279
 tnd=\u7a81\u5c3c\u897f\u4e9e\u7b2c\u7d0d\u723e
 top=\u6771\u52a0\u6f58\u52a0
 tpe=\u5e1d\u6c76\u57c3\u65af\u5e93\u591a
@@ -274,3 +276,4 @@ yum=\u5357\u65af\u62c9\u592b\u632a\u5a01\u4e9e\u7b2c\u7d0d\u723e
 zar=\u5357\u975e\u862d\u7279
 zmk=\u5c1a\u6bd4\u4e9e\u514b\u74e6\u67e5
 zwd=\u8f9b\u5df4\u5a01\u5143
+zwl=\u8f9b\u5df4\u5a01\u5143 (2009)
diff --git a/jdk/src/share/classes/sun/util/resources/LocaleNames.properties b/jdk/src/share/classes/sun/util/resources/LocaleNames.properties
index 6756add..0552c94 100644
--- a/jdk/src/share/classes/sun/util/resources/LocaleNames.properties
+++ b/jdk/src/share/classes/sun/util/resources/LocaleNames.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -898,6 +898,7 @@ BL=Saint Barth\u00e9lemy
 BM=Bermuda
 BN=Brunei
 BO=Bolivia
+BQ=Bonaire, Sint Eustatius and Saba
 BR=Brazil
 BS=Bahamas
 BT=Bhutan
@@ -921,6 +922,7 @@ CR=Costa Rica
 CS=Serbia and Montenegro
 CU=Cuba
 CV=Cape Verde
+CW=Cura\u00e7ao
 CX=Christmas Island
 CY=Cyprus
 CZ=Czech Republic
@@ -1077,6 +1079,7 @@ SO=Somalia
 SR=Suriname
 ST=Sao Tome And Principe
 SV=El Salvador
+SX=Sint Maarten (Dutch part)
 SY=Syria
 SZ=Swaziland
 TC=Turks And Caicos Islands
diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
index f39fae2..c4862dc 100644
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
@@ -159,8 +159,6 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
                                       "Pohnpei Summer Time", "PONST"};
         String PST[] = new String[] {"Pacific Standard Time", "PST",
                                      "Pacific Daylight Time", "PDT"};
-        String RST[] = new String[] {"Eastern Standard Time", "EST",
-                                     "Central Daylight Time", "CDT"};
         String SAST[] = new String[] {"South Africa Standard Time", "SAST",
                                       "South Africa Summer Time", "SAST"};
         String SBT[] = new String[] {"Solomon Is. Time", "SBT",
@@ -262,6 +260,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
             {"Africa/Gaborone", CAT},
             {"Africa/Harare", CAT},
             {"Africa/Johannesburg", SAST},
+            {"Africa/Juba", EAT},
             {"Africa/Kampala", EAT},
             {"Africa/Khartoum", EAT},
             {"Africa/Kigali", CAT},
@@ -378,11 +377,13 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
             {"America/Kentucky/Louisville", EST},
             {"America/Kentucky/Monticello", EST},
             {"America/Knox_IN", CST},
+            {"America/Kralendijk", AST},
             {"America/La_Paz", new String[] {"Bolivia Time", "BOT",
                                              "Bolivia Summer Time", "BOST"}},
             {"America/Lima", new String[] {"Peru Time", "PET",
                                            "Peru Summer Time", "PEST"}},
             {"America/Louisville", EST},
+            {"America/Lower_Princes", AST},
             {"America/Maceio", BRT},
             {"America/Managua", CST},
             {"America/Manaus", AMT},
@@ -425,7 +426,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
             {"America/Rankin_Inlet", CST},
             {"America/Recife", BRT},
             {"America/Regina", CST},
-            {"America/Resolute", RST},
+            {"America/Resolute", CST},
             {"America/Rio_Branco", AMT},
             {"America/Rosario", AGT},
             {"America/Santa_Isabel", PST},
@@ -673,7 +674,8 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
             {"Europe/Isle_of_Man", GMTBST},
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
-            {"Europe/Kaliningrad", EET},
+            {"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
+                                                 "Kaliningrad Summer Time", "KALST"}},
             {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java
index e74074f..763f7f5 100644
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java
@@ -159,8 +159,6 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
                                       "Pohnpei Summer Time", "PONST"};
         String PST[] = new String[] {"Pazifische Normalzeit", "PST",
                                      "Pazifische Sommerzeit", "PDT"};
-        String RST[] = new String[] {"\u00d6stliche Normalzeit", "EST",
-                                     "Zentrale Sommerzeit", "CDT"};
         String SAST[] = new String[] {"S\u00fcdafrikanische Normalzeit", "SAST",
                                       "S\u00fcdafrikanische Sommerzeit", "SAST"};
         String SBT[] = new String[] {"Salomoninseln Zeit", "SBT",
@@ -262,6 +260,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
             {"Africa/Gaborone", CAT},
             {"Africa/Harare", CAT},
             {"Africa/Johannesburg", SAST},
+            {"Africa/Juba", EAT},
             {"Africa/Kampala", EAT},
             {"Africa/Khartoum", EAT},
             {"Africa/Kigali", CAT},
@@ -378,11 +377,13 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
             {"America/Kentucky/Louisville", EST},
             {"America/Kentucky/Monticello", EST},
             {"America/Knox_IN", CST},
+            {"America/Kralendijk", AST},
             {"America/La_Paz", new String[] {"Bolivianische Zeit", "BOT",
                                              "Bolivianische Sommerzeit", "BOST"}},
             {"America/Lima", new String[] {"Peruanische Zeit", "PET",
                                            "Peruanische Sommerzeit", "PEST"}},
             {"America/Louisville", EST},
+            {"America/Lower_Princes", AST},
             {"America/Maceio", BRT},
             {"America/Managua", CST},
             {"America/Manaus", AMT},
@@ -425,7 +426,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
             {"America/Rankin_Inlet", CST},
             {"America/Recife", BRT},
             {"America/Regina", CST},
-            {"America/Resolute", RST},
+            {"America/Resolute", CST},
             {"America/Rio_Branco", AMT},
             {"America/Rosario", AGT},
             {"America/Santa_Isabel", PST},
@@ -673,7 +674,8 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
             {"Europe/Isle_of_Man", GMTBST},
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
-            {"Europe/Kaliningrad", EET},
+            {"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
+                                                 "Kaliningrad Summer Time", "KALST"}},
             {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java
index 1a87c33..1c09f1e 100644
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java
@@ -159,8 +159,6 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
                                       "Pohnpei Summer Time", "PONST"};
         String PST[] = new String[] {"Hora est\u00e1ndar del Pac\u00edfico", "PST",
                                      "Hora de verano del Pac\u00edfico", "PDT"};
-        String RST[] = new String[] {"Hora est\u00e1ndar Oriental", "EST",
-                                     "Hora de verano Central", "CDT"};
         String SAST[] = new String[] {"Hora est\u00e1ndar de Sud\u00e1frica", "SAST",
                                       "Hora de verano de Sud\u00e1frica", "SAST"};
         String SBT[] = new String[] {"Hora de las Islas Solomon", "SBT",
@@ -262,6 +260,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
             {"Africa/Gaborone", CAT},
             {"Africa/Harare", CAT},
             {"Africa/Johannesburg", SAST},
+            {"Africa/Juba", EAT},
             {"Africa/Kampala", EAT},
             {"Africa/Khartoum", EAT},
             {"Africa/Kigali", CAT},
@@ -378,11 +377,13 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
             {"America/Kentucky/Louisville", EST},
             {"America/Kentucky/Monticello", EST},
             {"America/Knox_IN", CST},
+            {"America/Kralendijk", AST},
             {"America/La_Paz", new String[] {"Hora de Bolivia", "BOT",
                                              "Hora de verano de Bolivia", "BOST"}},
             {"America/Lima", new String[] {"Hora de Per\u00fa", "PET",
                                            "Hora de verano de Per\u00fa", "PEST"}},
             {"America/Louisville", EST},
+            {"America/Lower_Princes", AST},
             {"America/Maceio", BRT},
             {"America/Managua", CST},
             {"America/Manaus", AMT},
@@ -425,7 +426,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
             {"America/Rankin_Inlet", CST},
             {"America/Recife", BRT},
             {"America/Regina", CST},
-            {"America/Resolute", RST},
+            {"America/Resolute", CST},
             {"America/Rio_Branco", AMT},
             {"America/Rosario", AGT},
             {"America/Santa_Isabel", PST},
@@ -673,7 +674,8 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
             {"Europe/Isle_of_Man", GMTBST},
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
-            {"Europe/Kaliningrad", EET},
+            {"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
+                                                 "Kaliningrad Summer Time", "KALST"}},
             {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java
index 56701d6..fba1e82 100644
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java
@@ -159,8 +159,6 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
                                       "Pohnpei Summer Time", "PONST"};
         String PST[] = new String[] {"Heure normale du Pacifique", "PST",
                                      "Heure avanc\u00e9e du Pacifique", "PDT"} ;
-        String RST[] = new String[] {"Heure normale de l'Est", "EST",
-                                     "Heure avanc\u00e9e du Centre", "CDT"} ;
         String SAST[] = new String[] {"Heure normale d'Afrique du Sud", "SAST",
                                       "Heure d'\u00e9t\u00e9 d'Afrique du Sud", "SAST"} ;
         String SBT[] = new String[] {"Heure des \u00celes Salomon", "SBT",
@@ -262,6 +260,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
             {"Africa/Gaborone", CAT},
             {"Africa/Harare", CAT},
             {"Africa/Johannesburg", SAST},
+            {"Africa/Juba", EAT},
             {"Africa/Kampala", EAT},
             {"Africa/Khartoum", EAT},
             {"Africa/Kigali", CAT},
@@ -378,11 +377,13 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
             {"America/Kentucky/Louisville", EST},
             {"America/Kentucky/Monticello", EST},
             {"America/Knox_IN", CST},
+            {"America/Kralendijk", AST},
             {"America/La_Paz", new String[] {"Heure de Bolivie", "BOT",
                                              "Heure d'\u00e9t\u00e9 de Bolivie", "BOST"}},
             {"America/Lima", new String[] {"Heure du P\u00e9rou", "PET",
                                            "Heure d'\u00e9t\u00e9 du P\u00e9rou", "PEST"}},
             {"America/Louisville", EST},
+            {"America/Lower_Princes", AST},
             {"America/Maceio", BRT},
             {"America/Managua", CST},
             {"America/Manaus", AMT},
@@ -425,7 +426,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
             {"America/Rankin_Inlet", CST},
             {"America/Recife", BRT},
             {"America/Regina", CST},
-            {"America/Resolute", RST},
+            {"America/Resolute", CST},
             {"America/Rio_Branco", AMT},
             {"America/Rosario", AGT},
             {"America/Santa_Isabel", PST},
@@ -673,7 +674,8 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
             {"Europe/Isle_of_Man", GMTBST},
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
-            {"Europe/Kaliningrad", EET},
+            {"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
+                                                 "Kaliningrad Summer Time", "KALST"}},
             {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java
index a02535f..c2bb1d6 100644
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java
@@ -159,8 +159,6 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
                                       "Pohnpei Summer Time", "PONST"};
         String PST[] = new String[] {"Ora solare della costa occidentale USA", "PST",
                                      "Ora legale della costa occidentale USA", "PDT"};
-        String RST[] = new String[] {"Ora solare USA orientale", "EST",
-                                     "Ora legale USA centrale", "CDT"};
         String SAST[] = new String[] {"Ora solare del Sudafrica", "SAST",
                                       "Ora estiva del Sudafrica", "SAST"};
         String SBT[] = new String[] {"Ora delle Isole Salomone", "SBT",
@@ -262,6 +260,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
             {"Africa/Gaborone", CAT},
             {"Africa/Harare", CAT},
             {"Africa/Johannesburg", SAST},
+            {"Africa/Juba", EAT},
             {"Africa/Kampala", EAT},
             {"Africa/Khartoum", EAT},
             {"Africa/Kigali", CAT},
@@ -378,11 +377,13 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
             {"America/Kentucky/Louisville", EST},
             {"America/Kentucky/Monticello", EST},
             {"America/Knox_IN", CST},
+            {"America/Kralendijk", AST},
             {"America/La_Paz", new String[] {"Ora della Bolivia", "BOT",
                                              "Ora estiva della Bolivia", "BOST"}},
             {"America/Lima", new String[] {"Ora del Per\u00f9", "PET",
                                            "Ora estiva del Per\u00f9", "PEST"}},
             {"America/Louisville", EST},
+            {"America/Lower_Princes", AST},
             {"America/Maceio", BRT},
             {"America/Managua", CST},
             {"America/Manaus", AMT},
@@ -425,7 +426,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
             {"America/Rankin_Inlet", CST},
             {"America/Recife", BRT},
             {"America/Regina", CST},
-            {"America/Resolute", RST},
+            {"America/Resolute", CST},
             {"America/Rio_Branco", AMT},
             {"America/Rosario", AGT},
             {"America/Santa_Isabel", PST},
@@ -673,7 +674,8 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
             {"Europe/Isle_of_Man", GMTBST},
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
-            {"Europe/Kaliningrad", EET},
+            {"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
+                                                 "Kaliningrad Summer Time", "KALST"}},
             {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java
index bb28e3c..a0d9d7c 100644
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java
@@ -159,8 +159,6 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
                                       "Pohnpei Summer Time", "PONST"};
         String PST[] = new String[] {"\u592a\u5e73\u6d0b\u6a19\u6e96\u6642", "PST",
                                      "\u592a\u5e73\u6d0b\u590f\u6642\u9593", "PDT"};
-        String RST[] = new String[] {"\u6771\u90e8\u6a19\u6e96\u6642", "EST",
-                                     "\u4e2d\u90e8\u590f\u6642\u9593", "CDT"};
         String SAST[] = new String[] {"\u5357\u30a2\u30d5\u30ea\u30ab\u6a19\u6e96\u6642", "SAST",
                                       "\u5357\u30a2\u30d5\u30ea\u30ab\u590f\u6642\u9593", "SAST"};
         String SBT[] = new String[] {"\u30bd\u30ed\u30e2\u30f3\u8af8\u5cf6\u6642\u9593", "SBT",
@@ -262,6 +260,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
             {"Africa/Gaborone", CAT},
             {"Africa/Harare", CAT},
             {"Africa/Johannesburg", SAST},
+            {"Africa/Juba", EAT},
             {"Africa/Kampala", EAT},
             {"Africa/Khartoum", EAT},
             {"Africa/Kigali", CAT},
@@ -378,11 +377,13 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
             {"America/Kentucky/Louisville", EST},
             {"America/Kentucky/Monticello", EST},
             {"America/Knox_IN", CST},
+            {"America/Kralendijk", AST},
             {"America/La_Paz", new String[] {"\u30dc\u30ea\u30d3\u30a2\u6642\u9593", "BOT",
                                              "\u30dc\u30ea\u30d3\u30a2\u590f\u6642\u9593", "BOST"}},
             {"America/Lima", new String[] {"\u30da\u30eb\u30fc\u6642\u9593", "PET",
                                            "\u30da\u30eb\u30fc\u590f\u6642\u9593", "PEST"}},
             {"America/Louisville", EST},
+            {"America/Lower_Princes", AST},
             {"America/Maceio", BRT},
             {"America/Managua", CST},
             {"America/Manaus", AMT},
@@ -425,7 +426,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
             {"America/Rankin_Inlet", CST},
             {"America/Recife", BRT},
             {"America/Regina", CST},
-            {"America/Resolute", RST},
+            {"America/Resolute", CST},
             {"America/Rio_Branco", AMT},
             {"America/Rosario", AGT},
             {"America/Santa_Isabel", PST},
@@ -673,7 +674,8 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
             {"Europe/Isle_of_Man", GMTBST},
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
-            {"Europe/Kaliningrad", EET},
+            {"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
+                                                 "Kaliningrad Summer Time", "KALST"}},
             {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java
index baaa5f0..2079655 100644
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java
@@ -159,8 +159,6 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
                                       "Pohnpei Summer Time", "PONST"};
         String PST[] = new String[] {"\ud0dc\ud3c9\uc591 \ud45c\uc900\uc2dc", "PST",
                                      "\ud0dc\ud3c9\uc591 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "PDT"};
-        String RST[] = new String[] {"\ub3d9\ubd80 \ud45c\uc900\uc2dc", "EST",
-                                     "\uc911\ubd80 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "CDT"};
         String SAST[] = new String[] {"\ub0a8\uc544\ud504\ub9ac\uce74 \ud45c\uc900\uc2dc", "SAST",
                                       "\ub0a8\uc544\ud504\ub9ac\uce74 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "SAST"};
         String SBT[] = new String[] {"\uc194\ub85c\ubaac \uad70\ub3c4 \uc2dc\uac04", "SBT",
@@ -262,6 +260,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
             {"Africa/Gaborone", CAT},
             {"Africa/Harare", CAT},
             {"Africa/Johannesburg", SAST},
+            {"Africa/Juba", EAT},
             {"Africa/Kampala", EAT},
             {"Africa/Khartoum", EAT},
             {"Africa/Kigali", CAT},
@@ -378,11 +377,13 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
             {"America/Kentucky/Louisville", EST},
             {"America/Kentucky/Monticello", EST},
             {"America/Knox_IN", CST},
+            {"America/Kralendijk", AST},
             {"America/La_Paz", new String[] {"\ubcfc\ub9ac\ube44\uc544 \uc2dc\uac04", "BOT",
                                             "\ubcfc\ub9ac\ube44\uc544 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "BOST"}},
             {"America/Lima", new String[] {"\ud398\ub8e8 \uc2dc\uac04", "PET",
                                             "\ud398\ub8e8 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "PEST"}},
             {"America/Louisville", EST},
+            {"America/Lower_Princes", AST},
             {"America/Maceio", BRT},
             {"America/Managua", CST},
             {"America/Manaus", AMT},
@@ -425,7 +426,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
             {"America/Rankin_Inlet", CST},
             {"America/Recife", BRT},
             {"America/Regina", CST},
-            {"America/Resolute", RST},
+            {"America/Resolute", CST},
             {"America/Rio_Branco", AMT},
             {"America/Rosario", AGT},
             {"America/Santa_Isabel", PST},
@@ -673,7 +674,8 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
             {"Europe/Isle_of_Man", GMTBST},
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
-            {"Europe/Kaliningrad", EET},
+            {"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
+                                                 "Kaliningrad Summer Time", "KALST"}},
             {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java
index d7b485b..89191d0 100644
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java
@@ -157,8 +157,6 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
                                       "Fuso hor\u00e1rio de ver\u00e3o de Pohnpei", "PONST"};
         String PST[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o do Pac\u00edfico", "PST",
                                      "Hor\u00e1rio de luz natural do Pac\u00edfico", "PDT"};
-        String RST[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o oriental", "EST",
-                                     "Hor\u00e1rio de luz natural central", "CDT"};
         String SAST[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o da \u00c1frica do Sul", "SAST",
                                       "Fuso hor\u00e1rio de ver\u00e3o da \u00c1frica do Sul", "SAST"};
         String SBT[] = new String[] {"Fuso hor\u00e1rio das Ilhas Salom\u00e3o", "SBT",
@@ -262,6 +260,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
             {"Africa/Gaborone", CAT},
             {"Africa/Harare", CAT},
             {"Africa/Johannesburg", SAST},
+            {"Africa/Juba", EAT},
             {"Africa/Kampala", EAT},
             {"Africa/Khartoum", EAT},
             {"Africa/Kigali", CAT},
@@ -378,11 +377,13 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
             {"America/Kentucky/Louisville", EST},
             {"America/Kentucky/Monticello", EST},
             {"America/Knox_IN", CST},
+            {"America/Kralendijk", AST},
             {"America/La_Paz", new String[] {"Fuso hor\u00e1rio da Bol\u00edvia", "BOT",
                                              "Fuso hor\u00e1rio de ver\u00e3o da Bol\u00edvia", "BOST"}},
             {"America/Lima", new String[] {"Fuso hor\u00e1rio do Peru", "PET",
                                            "Fuso hor\u00e1rio de ver\u00e3o do Peru", "PEST"}},
             {"America/Louisville", EST},
+            {"America/Lower_Princes", AST},
             {"America/Maceio", BRT},
             {"America/Managua", CST},
             {"America/Manaus", AMT},
@@ -425,7 +426,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
             {"America/Rankin_Inlet", CST},
             {"America/Recife", BRT},
             {"America/Regina", CST},
-            {"America/Resolute", RST},
+            {"America/Resolute", CST},
             {"America/Rio_Branco", AMT},
             {"America/Rosario", AGT},
             {"America/Santa_Isabel", PST},
@@ -673,7 +674,8 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
             {"Europe/Isle_of_Man", GMTBST},
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
-            {"Europe/Kaliningrad", EET},
+            {"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
+                                                 "Kaliningrad Summer Time", "KALST"}},
             {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java
index 0ddaa34..007e553 100644
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java
@@ -159,8 +159,6 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
                                       "Pohnpei Summer Time", "PONST"};
         String PST[] = new String[] {"Stilla havet, normaltid", "PST",
                                      "Stilla havet, sommartid", "PDT"};
-        String RST[] = new String[] {"Eastern, normaltid", "EST",
-                                     "Central sommartid", "CDT"};
         String SAST[] = new String[] {"Sydafrika, normaltid", "SAST",
                                       "Sydafrika, sommartid", "SAST"};
         String SBT[] = new String[] {"Salomon\u00f6arna, normaltid", "SBT",
@@ -262,6 +260,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
             {"Africa/Gaborone", CAT},
             {"Africa/Harare", CAT},
             {"Africa/Johannesburg", SAST},
+            {"Africa/Juba", EAT},
             {"Africa/Kampala", EAT},
             {"Africa/Khartoum", EAT},
             {"Africa/Kigali", CAT},
@@ -378,11 +377,13 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
             {"America/Kentucky/Louisville", EST},
             {"America/Kentucky/Monticello", EST},
             {"America/Knox_IN", CST},
+            {"America/Kralendijk", AST},
             {"America/La_Paz", new String[] {"Bolivia, normaltid", "BOT",
                                              "Bolivia, sommartid", "BOST"}},
             {"America/Lima", new String[] {"Peru, normaltid", "PET",
                                            "Peru, sommartid", "PEST"}},
             {"America/Louisville", EST},
+            {"America/Lower_Princes", AST},
             {"America/Maceio", BRT},
             {"America/Managua", CST},
             {"America/Manaus", AMT},
@@ -425,7 +426,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
             {"America/Rankin_Inlet", CST},
             {"America/Recife", BRT},
             {"America/Regina", CST},
-            {"America/Resolute", RST},
+            {"America/Resolute", CST},
             {"America/Rio_Branco", AMT},
             {"America/Rosario", AGT},
             {"America/Santa_Isabel", PST},
@@ -673,7 +674,8 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
             {"Europe/Isle_of_Man", GMTBST},
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
-            {"Europe/Kaliningrad", EET},
+            {"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
+                                                 "Kaliningrad Summer Time", "KALST"}},
             {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java
index 17f72a6..d752137 100644
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java
@@ -159,8 +159,6 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
                                       "Pohnpei Summer Time", "PONST"};
         String PST[] = new String[] {"\u592a\u5e73\u6d0b\u6807\u51c6\u65f6\u95f4", "PST",
                                      "\u592a\u5e73\u6d0b\u590f\u4ee4\u65f6", "PDT"};
-        String RST[] = new String[] {"\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4", "EST",
-                                     "\u4e2d\u592e\u590f\u4ee4\u65f6", "CDT"};
         String SAST[] = new String[] {"\u5357\u975e\u6807\u51c6\u65f6\u95f4", "SAST",
                                       "\u5357\u975e\u590f\u4ee4\u65f6", "SAST"};
         String SBT[] = new String[] {"\u6240\u7f57\u95e8\u7fa4\u5c9b\u65f6\u95f4", "SBT",
@@ -262,6 +260,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
             {"Africa/Gaborone", CAT},
             {"Africa/Harare", CAT},
             {"Africa/Johannesburg", SAST},
+            {"Africa/Juba", EAT},
             {"Africa/Kampala", EAT},
             {"Africa/Khartoum", EAT},
             {"Africa/Kigali", CAT},
@@ -378,11 +377,13 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
             {"America/Kentucky/Louisville", EST},
             {"America/Kentucky/Monticello", EST},
             {"America/Knox_IN", CST},
+            {"America/Kralendijk", AST},
             {"America/La_Paz", new String[] {"\u73bb\u5229\u7ef4\u4e9a\u65f6\u95f4", "BOT",
                                              "\u73bb\u5229\u7ef4\u4e9a\u590f\u4ee4\u65f6", "BOST"}},
             {"America/Lima", new String[] {"\u79d8\u9c81\u65f6\u95f4", "PET",
                                            "\u79d8\u9c81\u590f\u4ee4\u65f6", "PEST"}},
             {"America/Louisville", EST},
+            {"America/Lower_Princes", AST},
             {"America/Maceio", BRT},
             {"America/Managua", CST},
             {"America/Manaus", AMT},
@@ -425,7 +426,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
             {"America/Rankin_Inlet", CST},
             {"America/Recife", BRT},
             {"America/Regina", CST},
-            {"America/Resolute", RST},
+            {"America/Resolute", CST},
             {"America/Rio_Branco", AMT},
             {"America/Rosario", AGT},
             {"America/Santa_Isabel", PST},
@@ -673,7 +674,8 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
             {"Europe/Isle_of_Man", GMTBST},
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
-            {"Europe/Kaliningrad", EET},
+            {"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
+                                                 "Kaliningrad Summer Time", "KALST"}},
             {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java
index d7f1b10..9a7fbe9 100644
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java
@@ -159,8 +159,6 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
                                       "Pohnpei Summer Time", "PONST"};
         String PST[] = new String[] {"\u592a\u5e73\u6d0b\u6a19\u6e96\u6642\u9593", "PST",
                                      "\u592a\u5e73\u6d0b\u65e5\u5149\u7bc0\u7d04\u6642\u9593", "PDT"};
-        String RST[] = new String[] {"\u6771\u65b9\u6a19\u6e96\u6642\u9593", "EST",
-                                     "\u4e2d\u592e\u65e5\u5149\u7bc0\u7d04\u6642\u9593", "CDT"};
         String SAST[] = new String[] {"\u5357\u975e\u6a19\u6e96\u6642\u9593", "SAST",
                                       "\u5357\u975e\u590f\u4ee4\u6642\u9593", "SAST"};
         String SBT[] = new String[] {"\u6240\u7f85\u9580\u7fa4\u5cf6\u6642\u9593", "SBT",
@@ -262,6 +260,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
             {"Africa/Gaborone", CAT},
             {"Africa/Harare", CAT},
             {"Africa/Johannesburg", SAST},
+            {"Africa/Juba", EAT},
             {"Africa/Kampala", EAT},
             {"Africa/Khartoum", EAT},
             {"Africa/Kigali", CAT},
@@ -378,11 +377,13 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
             {"America/Kentucky/Louisville", EST},
             {"America/Kentucky/Monticello", EST},
             {"America/Knox_IN", CST},
+            {"America/Kralendijk", AST},
             {"America/La_Paz", new String[] {"\u73bb\u5229\u7dad\u4e9e\u6642\u9593", "BOT",
                                              "\u73bb\u5229\u7dad\u4e9e\u590f\u4ee4\u6642\u9593", "BOST"}},
             {"America/Lima", new String[] {"\u7955\u9b6f\u6642\u9593", "PET",
                                            "\u7955\u9b6f\u590f\u4ee4\u6642\u9593", "PEST"}},
             {"America/Louisville", EST},
+            {"America/Lower_Princes", AST},
             {"America/Maceio", BRT},
             {"America/Managua", CST},
             {"America/Manaus", AMT},
@@ -425,7 +426,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
             {"America/Rankin_Inlet", CST},
             {"America/Recife", BRT},
             {"America/Regina", CST},
-            {"America/Resolute", RST},
+            {"America/Resolute", CST},
             {"America/Rio_Branco", AMT},
             {"America/Rosario", AGT},
             {"America/Santa_Isabel", PST},
@@ -674,7 +675,8 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
             {"Europe/Isle_of_Man", GMTBST},
             {"Europe/Istanbul", EET},
             {"Europe/Jersey", GMTBST},
-            {"Europe/Kaliningrad", EET},
+            {"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
+                                                 "Kaliningrad Summer Time", "KALST"}},
             {"Europe/Kiev", EET},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
diff --git a/jdk/src/share/classes/sun/util/xml/XMLUtils.java b/jdk/src/share/classes/sun/util/xml/XMLUtils.java
new file mode 100644
index 0000000..ab7ca85
--- /dev/null
+++ b/jdk/src/share/classes/sun/util/xml/XMLUtils.java
@@ -0,0 +1,207 @@
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package sun.util.xml;
+
+import java.io.*;
+import java.util.*;
+import org.xml.sax.*;
+import org.xml.sax.helpers.*;
+import org.w3c.dom.*;
+import javax.xml.parsers.*;
+import javax.xml.transform.*;
+import javax.xml.transform.dom.*;
+import javax.xml.transform.stream.*;
+
+/**
+ * A class used to aid in Properties load and save in XML. Keeping this
+ * code outside of Properties helps reduce the number of classes loaded
+ * when Properties is loaded.
+ *
+ * @author  Michael McCloskey
+ * @since   1.3
+ */
+public class XMLUtils {
+
+    // XML loading and saving methods for Properties
+
+    // The required DTD URI for exported properties
+    private static final String PROPS_DTD_URI =
+    "http://java.sun.com/dtd/properties.dtd";
+
+    private static final String PROPS_DTD =
+    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
+    "<!-- DTD for properties -->"                +
+    "<!ELEMENT properties ( comment?, entry* ) >"+
+    "<!ATTLIST properties"                       +
+        " version CDATA #FIXED \"1.0\">"         +
+    "<!ELEMENT comment (#PCDATA) >"              +
+    "<!ELEMENT entry (#PCDATA) >"                +
+    "<!ATTLIST entry "                           +
+        " key CDATA #REQUIRED>";
+
+    /**
+     * Version number for the format of exported properties files.
+     */
+    private static final String EXTERNAL_XML_VERSION = "1.0";
+
+    public static void load(Properties props, InputStream in)
+        throws IOException, InvalidPropertiesFormatException
+    {
+        Document doc = null;
+        try {
+            doc = getLoadingDoc(in);
+        } catch (SAXException saxe) {
+            throw new InvalidPropertiesFormatException(saxe);
+        }
+        Element propertiesElement = (Element)doc.getChildNodes().item(1);
+        String xmlVersion = propertiesElement.getAttribute("version");
+        if (xmlVersion.compareTo(EXTERNAL_XML_VERSION) > 0)
+            throw new InvalidPropertiesFormatException(
+                "Exported Properties file format version " + xmlVersion +
+                " is not supported. This java installation can read" +
+                " versions " + EXTERNAL_XML_VERSION + " or older. You" +
+                " may need to install a newer version of JDK.");
+        importProperties(props, propertiesElement);
+    }
+
+    static Document getLoadingDoc(InputStream in)
+        throws SAXException, IOException
+    {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        dbf.setIgnoringElementContentWhitespace(true);
+        dbf.setValidating(true);
+        dbf.setCoalescing(true);
+        dbf.setIgnoringComments(true);
+        try {
+            DocumentBuilder db = dbf.newDocumentBuilder();
+            db.setEntityResolver(new Resolver());
+            db.setErrorHandler(new EH());
+            InputSource is = new InputSource(in);
+            return db.parse(is);
+        } catch (ParserConfigurationException x) {
+            throw new Error(x);
+        }
+    }
+
+    static void importProperties(Properties props, Element propertiesElement) {
+        NodeList entries = propertiesElement.getChildNodes();
+        int numEntries = entries.getLength();
+        int start = numEntries > 0 &&
+            entries.item(0).getNodeName().equals("comment") ? 1 : 0;
+        for (int i=start; i<numEntries; i++) {
+            Element entry = (Element)entries.item(i);
+            if (entry.hasAttribute("key")) {
+                Node n = entry.getFirstChild();
+                String val = (n == null) ? "" : n.getNodeValue();
+                props.setProperty(entry.getAttribute("key"), val);
+            }
+        }
+    }
+
+    public static void save(Properties props, OutputStream os, String comment,
+                     String encoding)
+        throws IOException
+    {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        DocumentBuilder db = null;
+        try {
+            db = dbf.newDocumentBuilder();
+        } catch (ParserConfigurationException pce) {
+            assert(false);
+        }
+        Document doc = db.newDocument();
+        Element properties =  (Element)
+            doc.appendChild(doc.createElement("properties"));
+
+        if (comment != null) {
+            Element comments = (Element)properties.appendChild(
+                doc.createElement("comment"));
+            comments.appendChild(doc.createTextNode(comment));
+        }
+
+        synchronized (props) {
+            for (String key : props.stringPropertyNames()) {
+                Element entry = (Element)properties.appendChild(
+                    doc.createElement("entry"));
+                entry.setAttribute("key", key);
+                entry.appendChild(doc.createTextNode(props.getProperty(key)));
+            }
+        }
+        emitDocument(doc, os, encoding);
+    }
+
+    static void emitDocument(Document doc, OutputStream os, String encoding)
+        throws IOException
+    {
+        TransformerFactory tf = TransformerFactory.newInstance();
+        Transformer t = null;
+        try {
+            t = tf.newTransformer();
+            t.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, PROPS_DTD_URI);
+            t.setOutputProperty(OutputKeys.INDENT, "yes");
+            t.setOutputProperty(OutputKeys.METHOD, "xml");
+            t.setOutputProperty(OutputKeys.ENCODING, encoding);
+        } catch (TransformerConfigurationException tce) {
+            assert(false);
+        }
+        DOMSource doms = new DOMSource(doc);
+        StreamResult sr = new StreamResult(os);
+        try {
+            t.transform(doms, sr);
+        } catch (TransformerException te) {
+            IOException ioe = new IOException();
+            ioe.initCause(te);
+            throw ioe;
+        }
+    }
+
+    private static class Resolver implements EntityResolver {
+        public InputSource resolveEntity(String pid, String sid)
+            throws SAXException
+        {
+            if (sid.equals(PROPS_DTD_URI)) {
+                InputSource is;
+                is = new InputSource(new StringReader(PROPS_DTD));
+                is.setSystemId(PROPS_DTD_URI);
+                return is;
+            }
+            throw new SAXException("Invalid system identifier: " + sid);
+        }
+    }
+
+    private static class EH implements ErrorHandler {
+        public void error(SAXParseException x) throws SAXException {
+            throw x;
+        }
+        public void fatalError(SAXParseException x) throws SAXException {
+            throw x;
+        }
+        public void warning(SAXParseException x) throws SAXException {
+            throw x;
+        }
+    }
+
+}
diff --git a/jdk/src/share/demo/README b/jdk/src/share/demo/README
new file mode 100644
index 0000000..ae56b64
--- /dev/null
+++ b/jdk/src/share/demo/README
@@ -0,0 +1,6 @@
+The source code provided with samples and demos for the JDK is meant
+to illustrate the usage of a given feature or technique and has been
+deliberately simplified. Additional steps required for a
+production-quality application, such as security checks, input
+validation, and proper error handling, might not be present in the
+sample code.
diff --git a/jdk/src/share/demo/applets/ArcTest/ArcTest.java b/jdk/src/share/demo/applets/ArcTest/ArcTest.java
index d58ef44..9e9e02c 100644
--- a/jdk/src/share/demo/applets/ArcTest/ArcTest.java
+++ b/jdk/src/share/demo/applets/ArcTest/ArcTest.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.*;
 import java.awt.event.*;
diff --git a/jdk/src/share/demo/applets/BarChart/BarChart.java b/jdk/src/share/demo/applets/BarChart/BarChart.java
index 81cab8f..7bac8af 100644
--- a/jdk/src/share/demo/applets/BarChart/BarChart.java
+++ b/jdk/src/share/demo/applets/BarChart/BarChart.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.*;
 
diff --git a/jdk/src/share/demo/applets/Blink/Blink.java b/jdk/src/share/demo/applets/Blink/Blink.java
index ab6f979..de3f69f 100644
--- a/jdk/src/share/demo/applets/Blink/Blink.java
+++ b/jdk/src/share/demo/applets/Blink/Blink.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 /**
  * I love blinking things.
diff --git a/jdk/src/share/demo/applets/CardTest/CardTest.java b/jdk/src/share/demo/applets/CardTest/CardTest.java
index 38110ef..b1395a4 100644
--- a/jdk/src/share/demo/applets/CardTest/CardTest.java
+++ b/jdk/src/share/demo/applets/CardTest/CardTest.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.applet.Applet;
 import java.awt.BorderLayout;
diff --git a/jdk/src/share/demo/applets/Clock/Clock.java b/jdk/src/share/demo/applets/Clock/Clock.java
index ea698ff..6a41b45 100644
--- a/jdk/src/share/demo/applets/Clock/Clock.java
+++ b/jdk/src/share/demo/applets/Clock/Clock.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.applet.Applet;
 import java.awt.Color;
diff --git a/jdk/src/share/demo/applets/DitherTest/DitherTest.java b/jdk/src/share/demo/applets/DitherTest/DitherTest.java
index 0416573..4875042 100644
--- a/jdk/src/share/demo/applets/DitherTest/DitherTest.java
+++ b/jdk/src/share/demo/applets/DitherTest/DitherTest.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.applet.Applet;
 import java.awt.AWTEvent;
diff --git a/jdk/src/share/demo/applets/DrawTest/DrawTest.java b/jdk/src/share/demo/applets/DrawTest/DrawTest.java
index 50af991..b2edecd 100644
--- a/jdk/src/share/demo/applets/DrawTest/DrawTest.java
+++ b/jdk/src/share/demo/applets/DrawTest/DrawTest.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.applet.Applet;
 import java.awt.BorderLayout;
diff --git a/jdk/src/share/demo/applets/Fractal/CLSFractal.java b/jdk/src/share/demo/applets/Fractal/CLSFractal.java
index be391e6..9f7812c 100644
--- a/jdk/src/share/demo/applets/Fractal/CLSFractal.java
+++ b/jdk/src/share/demo/applets/Fractal/CLSFractal.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.Graphics;
 import java.util.Stack;
diff --git a/jdk/src/share/demo/applets/GraphicsTest/AppletFrame.java b/jdk/src/share/demo/applets/GraphicsTest/AppletFrame.java
index bf61a18..53b7628 100644
--- a/jdk/src/share/demo/applets/GraphicsTest/AppletFrame.java
+++ b/jdk/src/share/demo/applets/GraphicsTest/AppletFrame.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.Frame;
 import java.awt.Event;
diff --git a/jdk/src/share/demo/applets/GraphicsTest/GraphicsTest.java b/jdk/src/share/demo/applets/GraphicsTest/GraphicsTest.java
index 821b119..573c587 100644
--- a/jdk/src/share/demo/applets/GraphicsTest/GraphicsTest.java
+++ b/jdk/src/share/demo/applets/GraphicsTest/GraphicsTest.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.*;
 import java.util.*;
diff --git a/jdk/src/share/demo/applets/MoleculeViewer/Matrix3D.java b/jdk/src/share/demo/applets/MoleculeViewer/Matrix3D.java
index 0dda042..e7afced 100644
--- a/jdk/src/share/demo/applets/MoleculeViewer/Matrix3D.java
+++ b/jdk/src/share/demo/applets/MoleculeViewer/Matrix3D.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 /** A fairly conventional 3D matrix object that can transform sets of
 3D points and perform a variety of manipulations on the transform */
diff --git a/jdk/src/share/demo/applets/MoleculeViewer/XYZApp.java b/jdk/src/share/demo/applets/MoleculeViewer/XYZApp.java
index 78717be..5ee3afe 100644
--- a/jdk/src/share/demo/applets/MoleculeViewer/XYZApp.java
+++ b/jdk/src/share/demo/applets/MoleculeViewer/XYZApp.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.applet.Applet;
 import java.awt.Image;
diff --git a/jdk/src/share/demo/applets/NervousText/NervousText.java b/jdk/src/share/demo/applets/NervousText/NervousText.java
index c3d8d08..12dd678 100644
--- a/jdk/src/share/demo/applets/NervousText/NervousText.java
+++ b/jdk/src/share/demo/applets/NervousText/NervousText.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.Graphics;
 import java.awt.Font;
diff --git a/jdk/src/share/demo/applets/SimpleGraph/GraphApplet.java b/jdk/src/share/demo/applets/SimpleGraph/GraphApplet.java
index b1d166a..dabbc20 100644
--- a/jdk/src/share/demo/applets/SimpleGraph/GraphApplet.java
+++ b/jdk/src/share/demo/applets/SimpleGraph/GraphApplet.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.Graphics;
 
diff --git a/jdk/src/share/demo/applets/SortDemo/BidirBubbleSortAlgorithm.java b/jdk/src/share/demo/applets/SortDemo/BidirBubbleSortAlgorithm.java
index 6a54d64..c2478f8 100644
--- a/jdk/src/share/demo/applets/SortDemo/BidirBubbleSortAlgorithm.java
+++ b/jdk/src/share/demo/applets/SortDemo/BidirBubbleSortAlgorithm.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 /**
  * A bi-directional bubble sort demonstration algorithm
diff --git a/jdk/src/share/demo/applets/SortDemo/BubbleSortAlgorithm.java b/jdk/src/share/demo/applets/SortDemo/BubbleSortAlgorithm.java
index 62be88c..946c864 100644
--- a/jdk/src/share/demo/applets/SortDemo/BubbleSortAlgorithm.java
+++ b/jdk/src/share/demo/applets/SortDemo/BubbleSortAlgorithm.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 /**
  * A bubble sort demonstration algorithm
diff --git a/jdk/src/share/demo/applets/SortDemo/QSortAlgorithm.java b/jdk/src/share/demo/applets/SortDemo/QSortAlgorithm.java
index 7fa4890..045f222 100644
--- a/jdk/src/share/demo/applets/SortDemo/QSortAlgorithm.java
+++ b/jdk/src/share/demo/applets/SortDemo/QSortAlgorithm.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 /**
  * A quick sort demonstration algorithm
diff --git a/jdk/src/share/demo/applets/SortDemo/SortAlgorithm.java b/jdk/src/share/demo/applets/SortDemo/SortAlgorithm.java
index 8917cf9..c1a80aa 100644
--- a/jdk/src/share/demo/applets/SortDemo/SortAlgorithm.java
+++ b/jdk/src/share/demo/applets/SortDemo/SortAlgorithm.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 /**
  * A generic sort demonstration algorithm
diff --git a/jdk/src/share/demo/applets/SortDemo/SortItem.java b/jdk/src/share/demo/applets/SortDemo/SortItem.java
index 9a155e3..0ee60c9 100644
--- a/jdk/src/share/demo/applets/SortDemo/SortItem.java
+++ b/jdk/src/share/demo/applets/SortDemo/SortItem.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.Color;
 import java.awt.Dimension;
diff --git a/jdk/src/share/demo/applets/SpreadSheet/SpreadSheet.java b/jdk/src/share/demo/applets/SpreadSheet/SpreadSheet.java
index d221e34..9aa3286 100644
--- a/jdk/src/share/demo/applets/SpreadSheet/SpreadSheet.java
+++ b/jdk/src/share/demo/applets/SpreadSheet/SpreadSheet.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.applet.Applet;
 import java.awt.*;
diff --git a/jdk/src/share/demo/applets/WireFrame/Matrix3D.java b/jdk/src/share/demo/applets/WireFrame/Matrix3D.java
index 0dda042..e7afced 100644
--- a/jdk/src/share/demo/applets/WireFrame/Matrix3D.java
+++ b/jdk/src/share/demo/applets/WireFrame/Matrix3D.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 /** A fairly conventional 3D matrix object that can transform sets of
 3D points and perform a variety of manipulations on the transform */
diff --git a/jdk/src/share/demo/applets/WireFrame/ThreeD.java b/jdk/src/share/demo/applets/WireFrame/ThreeD.java
index 7f22833..935ca0a 100644
--- a/jdk/src/share/demo/applets/WireFrame/ThreeD.java
+++ b/jdk/src/share/demo/applets/WireFrame/ThreeD.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.applet.Applet;
 import java.awt.Graphics;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Destinations.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Destinations.java
index 9cd94a5..a0a70e1 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Destinations.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Destinations.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench;
 
 import java.awt.Image;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Group.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Group.java
index 713a716..007df98 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Group.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Group.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench;
 
 import java.io.PrintWriter;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/J2DBench.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/J2DBench.java
index c4d5055..15eb0c5 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/J2DBench.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/J2DBench.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench;
 
 import java.io.PrintWriter;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Modifier.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Modifier.java
index 3f07b2d..32c4ad9 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Modifier.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Modifier.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench;
 
 public interface Modifier {
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Node.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Node.java
index d8430e0..a725757 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Node.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Node.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench;
 
 import java.io.PrintWriter;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Option.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Option.java
index 1266eda..88656a1 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Option.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Option.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench;
 
 import java.awt.BorderLayout;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Result.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Result.java
index a89342f..2f40cd2 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Result.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Result.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench;
 
 import java.util.Vector;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/ResultSet.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/ResultSet.java
index 862498f..7b17770 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/ResultSet.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/ResultSet.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench;
 
 import java.util.Hashtable;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Test.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Test.java
index ffd2ca9..d727aaa 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Test.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/Test.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench;
 
 public abstract class Test extends Option.Enable {
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/TestEnvironment.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/TestEnvironment.java
index 0dccbed..c0211a8 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/TestEnvironment.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/TestEnvironment.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench;
 
 import java.awt.Canvas;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/HTMLSeriesReporter.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/HTMLSeriesReporter.java
index 7ac7ee0..fa0838c 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/HTMLSeriesReporter.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/HTMLSeriesReporter.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /**
  * HTMLSeriesReporter.java
  *
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/IIOComparator.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/IIOComparator.java
index 85c8782..e0399f0 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/IIOComparator.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/IIOComparator.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.report;
 
 import java.io.*;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/J2DAnalyzer.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/J2DAnalyzer.java
index 5f5b945..a30e1aa 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/J2DAnalyzer.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/J2DAnalyzer.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.report;
 
 import java.util.Vector;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/XMLHTMLReporter.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/XMLHTMLReporter.java
index b10017c..f72f902 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/XMLHTMLReporter.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/report/XMLHTMLReporter.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /**
  * XMLHTMLReporter.java
  *
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/GraphicsTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/GraphicsTests.java
index 3b04ad1..92cfe7c 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/GraphicsTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/GraphicsTests.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.tests;
 
 import java.awt.Graphics;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/ImageTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/ImageTests.java
index 813995e..52378b2 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/ImageTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/ImageTests.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.tests;
 
 import j2dbench.Destinations;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/MiscTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/MiscTests.java
index 1d25d0f..84bddea 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/MiscTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/MiscTests.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.tests;
 
 import java.awt.Dimension;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/PixelTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/PixelTests.java
index 8184c1a..99f6113 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/PixelTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/PixelTests.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.tests;
 
 import j2dbench.Destinations;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/RenderTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/RenderTests.java
index 769b372..addba01 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/RenderTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/RenderTests.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.tests;
 
 import java.awt.Graphics;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/IIOTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/IIOTests.java
index 5b23e1a..d535fe6 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/IIOTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/IIOTests.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.tests.iio;
 
 import java.awt.AlphaComposite;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputImageTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputImageTests.java
index c530253..b0c9a94 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputImageTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputImageTests.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.tests.iio;
 
 import java.awt.Component;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputStreamTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputStreamTests.java
index d76d0fd..ec54485 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputStreamTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputStreamTests.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.tests.iio;
 
 import java.io.File;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputTests.java
index 57a6a06..d643de4 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputTests.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.tests.iio;
 
 import java.io.BufferedInputStream;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputImageTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputImageTests.java
index 583986e..0eea6e2 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputImageTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputImageTests.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.tests.iio;
 
 import java.awt.Graphics;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputStreamTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputStreamTests.java
index 36b48b6..bf1da9a 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputStreamTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputStreamTests.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.tests.iio;
 
 import java.io.File;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputTests.java
index 86f1937..a1662c3 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputTests.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.tests.iio;
 
 import java.io.BufferedOutputStream;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextConstructionTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextConstructionTests.java
index e91c607..cd92674 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextConstructionTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextConstructionTests.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * (C) Copyright IBM Corp. 2003, All Rights Reserved.
  * This technology is protected by multiple US and International
  * patents. This notice and attribution to IBM may not be removed.
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextMeasureTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextMeasureTests.java
index 51fb975..1fb4863 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextMeasureTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextMeasureTests.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * (C) Copyright IBM Corp. 2003, All Rights Reserved.
  * This technology is protected by multiple US and International
  * patents. This notice and attribution to IBM may not be removed.
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextRenderTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextRenderTests.java
index f6cad64..3f5c385 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextRenderTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextRenderTests.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * (C) Copyright IBM Corp. 2003, All Rights Reserved.
  * This technology is protected by multiple US and International
  * patents. This notice and attribution to IBM may not be removed.
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextTests.java
index 1569f9d..deb78a4 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextTests.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextTests.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * (C) Copyright IBM Corp. 2003, All Rights Reserved.
  * This technology is protected by multiple US and International
  * patents. This notice and attribution to IBM may not be removed.
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/ui/CompactLayout.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/ui/CompactLayout.java
index 06be9e6..40ed4e6 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/ui/CompactLayout.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/ui/CompactLayout.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.ui;
 
 import java.awt.Dimension;
diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/ui/EnableButton.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/ui/EnableButton.java
index acebd6c..0663a59 100644
--- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/ui/EnableButton.java
+++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/ui/EnableButton.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package j2dbench.ui;
 
 import j2dbench.Group;
diff --git a/jdk/src/share/demo/jfc/CodePointIM/CodePointIM.java b/jdk/src/share/demo/jfc/CodePointIM/CodePointIM.java
index 6d02ecd..6345e61 100644
--- a/jdk/src/share/demo/jfc/CodePointIM/CodePointIM.java
+++ b/jdk/src/share/demo/jfc/CodePointIM/CodePointIM.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.util.Locale;
 import java.util.MissingResourceException;
diff --git a/jdk/src/share/demo/jfc/CodePointIM/CodePointInputMethod.java b/jdk/src/share/demo/jfc/CodePointIM/CodePointInputMethod.java
index 67ff106..add460a 100644
--- a/jdk/src/share/demo/jfc/CodePointIM/CodePointInputMethod.java
+++ b/jdk/src/share/demo/jfc/CodePointIM/CodePointInputMethod.java
@@ -28,6 +28,15 @@
  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
 package com.sun.inputmethods.internal.codepointim;
 
 
diff --git a/jdk/src/share/demo/jfc/CodePointIM/CodePointInputMethodDescriptor.java b/jdk/src/share/demo/jfc/CodePointIM/CodePointInputMethodDescriptor.java
index 1ee6216..ee8ccb5 100644
--- a/jdk/src/share/demo/jfc/CodePointIM/CodePointInputMethodDescriptor.java
+++ b/jdk/src/share/demo/jfc/CodePointIM/CodePointInputMethodDescriptor.java
@@ -28,6 +28,15 @@
  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
 package com.sun.inputmethods.internal.codepointim;
 
 
diff --git a/jdk/src/share/demo/jfc/FileChooserDemo/ExampleFileSystemView.java b/jdk/src/share/demo/jfc/FileChooserDemo/ExampleFileSystemView.java
index 3a0897b..f557bde 100644
--- a/jdk/src/share/demo/jfc/FileChooserDemo/ExampleFileSystemView.java
+++ b/jdk/src/share/demo/jfc/FileChooserDemo/ExampleFileSystemView.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.io.File;
 import java.io.IOException;
diff --git a/jdk/src/share/demo/jfc/FileChooserDemo/ExampleFileView.java b/jdk/src/share/demo/jfc/FileChooserDemo/ExampleFileView.java
index cec4e72..52c486d 100644
--- a/jdk/src/share/demo/jfc/FileChooserDemo/ExampleFileView.java
+++ b/jdk/src/share/demo/jfc/FileChooserDemo/ExampleFileView.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.*;
 import javax.swing.filechooser.*;
diff --git a/jdk/src/share/demo/jfc/FileChooserDemo/FileChooserDemo.java b/jdk/src/share/demo/jfc/FileChooserDemo/FileChooserDemo.java
index 67e1dae..bfb74b4 100644
--- a/jdk/src/share/demo/jfc/FileChooserDemo/FileChooserDemo.java
+++ b/jdk/src/share/demo/jfc/FileChooserDemo/FileChooserDemo.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.logging.Level;
diff --git a/jdk/src/share/demo/jfc/Font2DTest/Font2DTest.java b/jdk/src/share/demo/jfc/Font2DTest/Font2DTest.java
index 5625d96..1487c42 100644
--- a/jdk/src/share/demo/jfc/Font2DTest/Font2DTest.java
+++ b/jdk/src/share/demo/jfc/Font2DTest/Font2DTest.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.Color;
 import java.awt.Component;
diff --git a/jdk/src/share/demo/jfc/Font2DTest/Font2DTestApplet.java b/jdk/src/share/demo/jfc/Font2DTest/Font2DTestApplet.java
index 4ee1168..7e663c2 100644
--- a/jdk/src/share/demo/jfc/Font2DTest/Font2DTestApplet.java
+++ b/jdk/src/share/demo/jfc/Font2DTest/Font2DTestApplet.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  */
 
 import java.awt.AWTPermission;
diff --git a/jdk/src/share/demo/jfc/Font2DTest/FontPanel.java b/jdk/src/share/demo/jfc/Font2DTest/FontPanel.java
index 5506051..c939f0b 100644
--- a/jdk/src/share/demo/jfc/Font2DTest/FontPanel.java
+++ b/jdk/src/share/demo/jfc/Font2DTest/FontPanel.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.BorderLayout;
 import java.awt.Color;
diff --git a/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java b/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java
index 20a3113..54b6ad8 100644
--- a/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java
+++ b/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  */
 
 import java.awt.BorderLayout;
diff --git a/jdk/src/share/demo/jfc/Metalworks/AquaMetalTheme.java b/jdk/src/share/demo/jfc/Metalworks/AquaMetalTheme.java
index 363a0cf..3510f7a 100644
--- a/jdk/src/share/demo/jfc/Metalworks/AquaMetalTheme.java
+++ b/jdk/src/share/demo/jfc/Metalworks/AquaMetalTheme.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.plaf.ColorUIResource;
 import javax.swing.plaf.metal.DefaultMetalTheme;
diff --git a/jdk/src/share/demo/jfc/Metalworks/BigContrastMetalTheme.java b/jdk/src/share/demo/jfc/Metalworks/BigContrastMetalTheme.java
index 3402320..d965d63 100644
--- a/jdk/src/share/demo/jfc/Metalworks/BigContrastMetalTheme.java
+++ b/jdk/src/share/demo/jfc/Metalworks/BigContrastMetalTheme.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.plaf.*;
 import javax.swing.plaf.metal.*;
diff --git a/jdk/src/share/demo/jfc/Metalworks/ContrastMetalTheme.java b/jdk/src/share/demo/jfc/Metalworks/ContrastMetalTheme.java
index 62d7f39..4d19ed1 100644
--- a/jdk/src/share/demo/jfc/Metalworks/ContrastMetalTheme.java
+++ b/jdk/src/share/demo/jfc/Metalworks/ContrastMetalTheme.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.UIDefaults;
 import javax.swing.border.Border;
diff --git a/jdk/src/share/demo/jfc/Metalworks/DemoMetalTheme.java b/jdk/src/share/demo/jfc/Metalworks/DemoMetalTheme.java
index 3724630..865932c 100644
--- a/jdk/src/share/demo/jfc/Metalworks/DemoMetalTheme.java
+++ b/jdk/src/share/demo/jfc/Metalworks/DemoMetalTheme.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.Font;
 import javax.swing.UIDefaults;
diff --git a/jdk/src/share/demo/jfc/Metalworks/GreenMetalTheme.java b/jdk/src/share/demo/jfc/Metalworks/GreenMetalTheme.java
index ceb299d..45c9ab4 100644
--- a/jdk/src/share/demo/jfc/Metalworks/GreenMetalTheme.java
+++ b/jdk/src/share/demo/jfc/Metalworks/GreenMetalTheme.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.plaf.ColorUIResource;
 import javax.swing.plaf.metal.DefaultMetalTheme;
diff --git a/jdk/src/share/demo/jfc/Metalworks/KhakiMetalTheme.java b/jdk/src/share/demo/jfc/Metalworks/KhakiMetalTheme.java
index 90e1259..3074fd8 100644
--- a/jdk/src/share/demo/jfc/Metalworks/KhakiMetalTheme.java
+++ b/jdk/src/share/demo/jfc/Metalworks/KhakiMetalTheme.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.plaf.ColorUIResource;
 import javax.swing.plaf.metal.DefaultMetalTheme;
diff --git a/jdk/src/share/demo/jfc/Metalworks/MetalThemeMenu.java b/jdk/src/share/demo/jfc/Metalworks/MetalThemeMenu.java
index a837228..e7947d7 100644
--- a/jdk/src/share/demo/jfc/Metalworks/MetalThemeMenu.java
+++ b/jdk/src/share/demo/jfc/Metalworks/MetalThemeMenu.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
diff --git a/jdk/src/share/demo/jfc/Metalworks/Metalworks.java b/jdk/src/share/demo/jfc/Metalworks/Metalworks.java
index 22322c2..3db6eaa 100644
--- a/jdk/src/share/demo/jfc/Metalworks/Metalworks.java
+++ b/jdk/src/share/demo/jfc/Metalworks/Metalworks.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.Toolkit;
 import javax.swing.JDialog;
diff --git a/jdk/src/share/demo/jfc/Metalworks/MetalworksDocumentFrame.java b/jdk/src/share/demo/jfc/Metalworks/MetalworksDocumentFrame.java
index 5802e77..813e3b7 100644
--- a/jdk/src/share/demo/jfc/Metalworks/MetalworksDocumentFrame.java
+++ b/jdk/src/share/demo/jfc/Metalworks/MetalworksDocumentFrame.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.BorderLayout;
 import java.awt.Component;
diff --git a/jdk/src/share/demo/jfc/Metalworks/MetalworksFrame.java b/jdk/src/share/demo/jfc/Metalworks/MetalworksFrame.java
index 77fa685..4333d7b 100644
--- a/jdk/src/share/demo/jfc/Metalworks/MetalworksFrame.java
+++ b/jdk/src/share/demo/jfc/Metalworks/MetalworksFrame.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.Dimension;
 import java.awt.Toolkit;
diff --git a/jdk/src/share/demo/jfc/Metalworks/MetalworksHelp.java b/jdk/src/share/demo/jfc/Metalworks/MetalworksHelp.java
index f9dd142..d46bc7b 100644
--- a/jdk/src/share/demo/jfc/Metalworks/MetalworksHelp.java
+++ b/jdk/src/share/demo/jfc/Metalworks/MetalworksHelp.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.*;
 import java.awt.*;
diff --git a/jdk/src/share/demo/jfc/Metalworks/MetalworksInBox.java b/jdk/src/share/demo/jfc/Metalworks/MetalworksInBox.java
index 48e71ca..e165723 100644
--- a/jdk/src/share/demo/jfc/Metalworks/MetalworksInBox.java
+++ b/jdk/src/share/demo/jfc/Metalworks/MetalworksInBox.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.JInternalFrame;
 import javax.swing.JScrollPane;
diff --git a/jdk/src/share/demo/jfc/Metalworks/MetalworksPrefs.java b/jdk/src/share/demo/jfc/Metalworks/MetalworksPrefs.java
index fa88a88..36626ee 100644
--- a/jdk/src/share/demo/jfc/Metalworks/MetalworksPrefs.java
+++ b/jdk/src/share/demo/jfc/Metalworks/MetalworksPrefs.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.BorderLayout;
 import java.awt.Component;
diff --git a/jdk/src/share/demo/jfc/Metalworks/PropertiesMetalTheme.java b/jdk/src/share/demo/jfc/Metalworks/PropertiesMetalTheme.java
index ec729f1..af1abf2 100644
--- a/jdk/src/share/demo/jfc/Metalworks/PropertiesMetalTheme.java
+++ b/jdk/src/share/demo/jfc/Metalworks/PropertiesMetalTheme.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/jdk/src/share/demo/jfc/Metalworks/UISwitchListener.java b/jdk/src/share/demo/jfc/Metalworks/UISwitchListener.java
index d75fb3f..6dc77ce 100644
--- a/jdk/src/share/demo/jfc/Metalworks/UISwitchListener.java
+++ b/jdk/src/share/demo/jfc/Metalworks/UISwitchListener.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
diff --git a/jdk/src/share/demo/jfc/Notepad/ElementTreePanel.java b/jdk/src/share/demo/jfc/Notepad/ElementTreePanel.java
index 0a208c9..e1bac63 100644
--- a/jdk/src/share/demo/jfc/Notepad/ElementTreePanel.java
+++ b/jdk/src/share/demo/jfc/Notepad/ElementTreePanel.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.BorderLayout;
 import java.awt.Dimension;
diff --git a/jdk/src/share/demo/jfc/Notepad/Notepad.java b/jdk/src/share/demo/jfc/Notepad/Notepad.java
index a6d7e03..c809669 100644
--- a/jdk/src/share/demo/jfc/Notepad/Notepad.java
+++ b/jdk/src/share/demo/jfc/Notepad/Notepad.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.BorderLayout;
 import java.awt.Color;
diff --git a/jdk/src/share/demo/jfc/SampleTree/DynamicTreeNode.java b/jdk/src/share/demo/jfc/SampleTree/DynamicTreeNode.java
index fa6db4d..60a11fe 100644
--- a/jdk/src/share/demo/jfc/SampleTree/DynamicTreeNode.java
+++ b/jdk/src/share/demo/jfc/SampleTree/DynamicTreeNode.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.Color;
 import java.awt.Font;
diff --git a/jdk/src/share/demo/jfc/SampleTree/SampleData.java b/jdk/src/share/demo/jfc/SampleTree/SampleData.java
index 48a92dd..66f7c16 100644
--- a/jdk/src/share/demo/jfc/SampleTree/SampleData.java
+++ b/jdk/src/share/demo/jfc/SampleTree/SampleData.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.Color;
 import java.awt.Font;
diff --git a/jdk/src/share/demo/jfc/SampleTree/SampleTree.java b/jdk/src/share/demo/jfc/SampleTree/SampleTree.java
index 831d70c..efde28f 100644
--- a/jdk/src/share/demo/jfc/SampleTree/SampleTree.java
+++ b/jdk/src/share/demo/jfc/SampleTree/SampleTree.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.logging.Level;
diff --git a/jdk/src/share/demo/jfc/SampleTree/SampleTreeCellRenderer.java b/jdk/src/share/demo/jfc/SampleTree/SampleTreeCellRenderer.java
index d45bf4e..9e9a04b 100644
--- a/jdk/src/share/demo/jfc/SampleTree/SampleTreeCellRenderer.java
+++ b/jdk/src/share/demo/jfc/SampleTree/SampleTreeCellRenderer.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.Icon;
 import javax.swing.ImageIcon;
diff --git a/jdk/src/share/demo/jfc/SampleTree/SampleTreeModel.java b/jdk/src/share/demo/jfc/SampleTree/SampleTreeModel.java
index 51ee2da..1d7bfdc 100644
--- a/jdk/src/share/demo/jfc/SampleTree/SampleTreeModel.java
+++ b/jdk/src/share/demo/jfc/SampleTree/SampleTreeModel.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.tree.DefaultTreeModel;
 import javax.swing.tree.TreeNode;
diff --git a/jdk/src/share/demo/jfc/SwingApplet/SwingApplet.java b/jdk/src/share/demo/jfc/SwingApplet/SwingApplet.java
index 281ca70..b239893 100644
--- a/jdk/src/share/demo/jfc/SwingApplet/SwingApplet.java
+++ b/jdk/src/share/demo/jfc/SwingApplet/SwingApplet.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.FlowLayout;
 import java.lang.reflect.InvocationTargetException;
diff --git a/jdk/src/share/demo/jfc/TableExample/JDBCAdapter.java b/jdk/src/share/demo/jfc/TableExample/JDBCAdapter.java
index 4dbfe42..02d0d38 100644
--- a/jdk/src/share/demo/jfc/TableExample/JDBCAdapter.java
+++ b/jdk/src/share/demo/jfc/TableExample/JDBCAdapter.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.sql.Connection;
 import java.sql.DriverManager;
diff --git a/jdk/src/share/demo/jfc/TableExample/OldJTable.java b/jdk/src/share/demo/jfc/TableExample/OldJTable.java
index 28a3f21..bc90794 100644
--- a/jdk/src/share/demo/jfc/TableExample/OldJTable.java
+++ b/jdk/src/share/demo/jfc/TableExample/OldJTable.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.util.EventObject;
 import java.util.List;
diff --git a/jdk/src/share/demo/jfc/TableExample/TableExample.java b/jdk/src/share/demo/jfc/TableExample/TableExample.java
index 03d798f..f046e2f 100644
--- a/jdk/src/share/demo/jfc/TableExample/TableExample.java
+++ b/jdk/src/share/demo/jfc/TableExample/TableExample.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 /**
  * A a UI around the JDBCAdaptor, allowing database data to be interactively
diff --git a/jdk/src/share/demo/jfc/TableExample/TableExample2.java b/jdk/src/share/demo/jfc/TableExample/TableExample2.java
index 9423f17..e7fc9be 100644
--- a/jdk/src/share/demo/jfc/TableExample/TableExample2.java
+++ b/jdk/src/share/demo/jfc/TableExample/TableExample2.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
diff --git a/jdk/src/share/demo/jfc/TableExample/TableExample3.java b/jdk/src/share/demo/jfc/TableExample/TableExample3.java
index 5164639..ba10101 100644
--- a/jdk/src/share/demo/jfc/TableExample/TableExample3.java
+++ b/jdk/src/share/demo/jfc/TableExample/TableExample3.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.*;
 import javax.swing.table.*;
diff --git a/jdk/src/share/demo/jfc/TableExample/TableExample4.java b/jdk/src/share/demo/jfc/TableExample/TableExample4.java
index e75e2db..9ea30b8 100644
--- a/jdk/src/share/demo/jfc/TableExample/TableExample4.java
+++ b/jdk/src/share/demo/jfc/TableExample/TableExample4.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.*;
 import javax.swing.table.*;
diff --git a/jdk/src/share/demo/jfc/TableExample/TableMap.java b/jdk/src/share/demo/jfc/TableExample/TableMap.java
index 2511397..b0c24f0 100644
--- a/jdk/src/share/demo/jfc/TableExample/TableMap.java
+++ b/jdk/src/share/demo/jfc/TableExample/TableMap.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 /**
  * In a chain of data manipulators some behaviour is common. TableMap
diff --git a/jdk/src/share/demo/jfc/TableExample/TableSorter.java b/jdk/src/share/demo/jfc/TableExample/TableSorter.java
index 625b6f2..0ec49b7 100644
--- a/jdk/src/share/demo/jfc/TableExample/TableSorter.java
+++ b/jdk/src/share/demo/jfc/TableExample/TableSorter.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 import javax.swing.table.TableModel;
 import javax.swing.event.TableModelEvent;
diff --git a/jdk/src/share/demo/jfc/TransparentRuler/transparentruler/Ruler.java b/jdk/src/share/demo/jfc/TransparentRuler/transparentruler/Ruler.java
index 707151f..fcba7ac 100644
--- a/jdk/src/share/demo/jfc/TransparentRuler/transparentruler/Ruler.java
+++ b/jdk/src/share/demo/jfc/TransparentRuler/transparentruler/Ruler.java
@@ -28,6 +28,15 @@
  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
 package transparentruler;
 
 
diff --git a/jdk/src/share/demo/jvmti/agent_util/agent_util.c b/jdk/src/share/demo/jvmti/agent_util/agent_util.c
index 74796a9..18558855 100644
--- a/jdk/src/share/demo/jvmti/agent_util/agent_util.c
+++ b/jdk/src/share/demo/jvmti/agent_util/agent_util.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include <agent_util.h>
 
 /* ------------------------------------------------------------------- */
diff --git a/jdk/src/share/demo/jvmti/agent_util/agent_util.h b/jdk/src/share/demo/jvmti/agent_util/agent_util.h
index 14ec703..1518e93 100644
--- a/jdk/src/share/demo/jvmti/agent_util/agent_util.h
+++ b/jdk/src/share/demo/jvmti/agent_util/agent_util.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef AGENT_UTIL_H
 #define AGENT_UTIL_H
 
diff --git a/jdk/src/share/demo/jvmti/compiledMethodLoad/compiledMethodLoad.c b/jdk/src/share/demo/jvmti/compiledMethodLoad/compiledMethodLoad.c
index 5117c93..cfc9ab2 100644
--- a/jdk/src/share/demo/jvmti/compiledMethodLoad/compiledMethodLoad.c
+++ b/jdk/src/share/demo/jvmti/compiledMethodLoad/compiledMethodLoad.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/jdk/src/share/demo/jvmti/gctest/gctest.c b/jdk/src/share/demo/jvmti/gctest/gctest.c
index f982b3f..7d430f4 100644
--- a/jdk/src/share/demo/jvmti/gctest/gctest.c
+++ b/jdk/src/share/demo/jvmti/gctest/gctest.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Example of using JVMTI_EVENT_GARBAGE_COLLECTION_START and
  *                  JVMTI_EVENT_GARBAGE_COLLECTION_FINISH events.
  */
diff --git a/jdk/src/share/demo/jvmti/heapTracker/HeapTracker.java b/jdk/src/share/demo/jvmti/heapTracker/HeapTracker.java
index faec6ba..041c88b 100644
--- a/jdk/src/share/demo/jvmti/heapTracker/HeapTracker.java
+++ b/jdk/src/share/demo/jvmti/heapTracker/HeapTracker.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 /* Java class to hold static methods which will be called in byte code
  *    injections of all class files.
diff --git a/jdk/src/share/demo/jvmti/heapTracker/heapTracker.c b/jdk/src/share/demo/jvmti/heapTracker/heapTracker.c
index 439de6e..c1019ad 100644
--- a/jdk/src/share/demo/jvmti/heapTracker/heapTracker.c
+++ b/jdk/src/share/demo/jvmti/heapTracker/heapTracker.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include "stdlib.h"
 
 #include "heapTracker.h"
diff --git a/jdk/src/share/demo/jvmti/heapTracker/heapTracker.h b/jdk/src/share/demo/jvmti/heapTracker/heapTracker.h
index 0cc49c0..b0df4bb 100644
--- a/jdk/src/share/demo/jvmti/heapTracker/heapTracker.h
+++ b/jdk/src/share/demo/jvmti/heapTracker/heapTracker.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Primary heapTracker #include file, should be included by most if not
  *    all heapTracker source files. Gives access to the global data structure
  *    and all global macros.
diff --git a/jdk/src/share/demo/jvmti/heapViewer/heapViewer.c b/jdk/src/share/demo/jvmti/heapViewer/heapViewer.c
index 1d4742d..a6da56d 100644
--- a/jdk/src/share/demo/jvmti/heapViewer/heapViewer.c
+++ b/jdk/src/share/demo/jvmti/heapViewer/heapViewer.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include <stdio.h>
 #include <stddef.h>
 #include <stdlib.h>
diff --git a/jdk/src/share/demo/jvmti/hprof/debug_malloc.c b/jdk/src/share/demo/jvmti/hprof/debug_malloc.c
index ea7fece..a0155c0 100644
--- a/jdk/src/share/demo/jvmti/hprof/debug_malloc.c
+++ b/jdk/src/share/demo/jvmti/hprof/debug_malloc.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* **************************************************************************
  *
  * Set of malloc/realloc/calloc/strdup/free replacement macros that
diff --git a/jdk/src/share/demo/jvmti/hprof/debug_malloc.h b/jdk/src/share/demo/jvmti/hprof/debug_malloc.h
index 1325f94..6b6b4c6 100644
--- a/jdk/src/share/demo/jvmti/hprof/debug_malloc.h
+++ b/jdk/src/share/demo/jvmti/hprof/debug_malloc.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* ***********************************************************************
  *
  * The source file debug_malloc.c should be included with your sources.
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof.h b/jdk/src/share/demo/jvmti/hprof/hprof.h
index a577f88..44afbf4 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Primary hprof #include file, should be included by most if not
  *    all hprof source files. Gives access to the global data structure
  *    and all global macros, and everything declared in the #include
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_blocks.c b/jdk/src/share/demo/jvmti/hprof/hprof_blocks.c
index 1405665..13534a9 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_blocks.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_blocks.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Allocations from large blocks, no individual free's */
 
 #include "hprof.h"
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_blocks.h b/jdk/src/share/demo/jvmti/hprof/hprof_blocks.h
index cf3157a..e35433e 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_blocks.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_blocks.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_BLOCKS_H
 #define HPROF_BLOCKS_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_check.c b/jdk/src/share/demo/jvmti/hprof/hprof_check.c
index b26a413..c91a54a 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_check.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_check.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Functionality for checking hprof format=b output. */
 
 /* ONLY used with logflags=4. */
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_check.h b/jdk/src/share/demo/jvmti/hprof/hprof_check.h
index 2861306..2840bf1 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_check.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_check.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_CHECK_H
 #define HPROF_CHECK_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_class.c b/jdk/src/share/demo/jvmti/hprof/hprof_class.c
index 8ffc41e..d89a804 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_class.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_class.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Table of class information.
  *
  *   Each element in this table is identified with a ClassIndex.
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_class.h b/jdk/src/share/demo/jvmti/hprof/hprof_class.h
index 270bf08..5bcf1b8 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_class.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_class.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_CLASS_H
 #define HPROF_CLASS_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_cpu.c b/jdk/src/share/demo/jvmti/hprof/hprof_cpu.c
index 7726289..358b478 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_cpu.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_cpu.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include "hprof.h"
 
 /* This file contains the cpu loop for the option cpu=samples */
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_cpu.h b/jdk/src/share/demo/jvmti/hprof/hprof_cpu.h
index b22744f..6a96239 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_cpu.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_cpu.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_CPU_H
 #define HPROF_CPU_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_error.c b/jdk/src/share/demo/jvmti/hprof/hprof_error.c
index c7ddd62..8088a49 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_error.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_error.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include "hprof.h"
 
 /* The error handling logic. */
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_error.h b/jdk/src/share/demo/jvmti/hprof/hprof_error.h
index 968c31f..c0d6aed 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_error.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_error.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_ERROR_H
 #define HPROF_ERROR_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_event.c b/jdk/src/share/demo/jvmti/hprof/hprof_event.c
index 734d8af..66d89e7 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_event.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_event.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* This file contains all class, method and allocation event support functions,
  *   both JVMTI and BCI events.
  *   (See hprof_monitor.c for the monitor event handlers).
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_event.h b/jdk/src/share/demo/jvmti/hprof/hprof_event.h
index 207f875..198824a 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_event.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_event.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_EVENT_H
 #define HPROF_EVENT_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_frame.c b/jdk/src/share/demo/jvmti/hprof/hprof_frame.c
index 23a1606..284b6a5 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_frame.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_frame.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* This file contains support for handling frames, or (method,location) pairs. */
 
 #include "hprof.h"
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_frame.h b/jdk/src/share/demo/jvmti/hprof/hprof_frame.h
index 5f9798c..8443aee 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_frame.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_frame.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_FRAME_H
 #define HPROF_FRAME_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_init.c b/jdk/src/share/demo/jvmti/hprof/hprof_init.c
index 9ac1733..e3add30 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_init.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_init.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Main source file, the basic JVMTI connection/startup code. */
 
 #include "hprof.h"
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_init.h b/jdk/src/share/demo/jvmti/hprof/hprof_init.h
index 413e3e0..5004917 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_init.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_init.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_INIT_H
 #define HPROF_INIT_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_io.c b/jdk/src/share/demo/jvmti/hprof/hprof_io.c
index 9d9c0ae..51c7c25 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_io.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_io.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* All I/O functionality for hprof. */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_io.h b/jdk/src/share/demo/jvmti/hprof/hprof_io.h
index 29cae3a..0cb7d85 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_io.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_io.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_IO_H
 #define HPROF_IO_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_ioname.c b/jdk/src/share/demo/jvmti/hprof/hprof_ioname.c
index 4935e21..b14ecb1 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_ioname.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_ioname.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Used to store strings written out to the binary format (see hprof_io.c) */
 
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_ioname.h b/jdk/src/share/demo/jvmti/hprof/hprof_ioname.h
index c070491..03ac048 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_ioname.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_ioname.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_IONAME_H
 #define HPROF_IONAME_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_listener.c b/jdk/src/share/demo/jvmti/hprof/hprof_listener.c
index 05d4768..f5fb896 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_listener.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_listener.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* The hprof listener loop thread. net=hostname:port option */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_listener.h b/jdk/src/share/demo/jvmti/hprof/hprof_listener.h
index d077f4f..1e82ca5 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_listener.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_listener.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_LISTENER_H
 #define HPROF_LISTENER_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_loader.c b/jdk/src/share/demo/jvmti/hprof/hprof_loader.c
index eaabed6..f0c1f1d 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_loader.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_loader.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* The Class Loader table. */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_loader.h b/jdk/src/share/demo/jvmti/hprof/hprof_loader.h
index ec40c32..ef15f76 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_loader.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_loader.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_LOADER_H
 #define HPROF_LOADER_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_md.h b/jdk/src/share/demo/jvmti/hprof/hprof_md.h
index 9396381..6145a03 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_md.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_md.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_MD_H
 #define HPROF_MD_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_monitor.c b/jdk/src/share/demo/jvmti/hprof/hprof_monitor.c
index 81c9dc1..65495df 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_monitor.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_monitor.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Monitor contention tracking and monitor wait handling. */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_monitor.h b/jdk/src/share/demo/jvmti/hprof/hprof_monitor.h
index 752c1c1..1356163 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_monitor.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_monitor.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_MONITOR_H
 #define HPROF_MONITOR_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_object.c b/jdk/src/share/demo/jvmti/hprof/hprof_object.c
index 619cf3f..ce21c23 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_object.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_object.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Object table. */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_object.h b/jdk/src/share/demo/jvmti/hprof/hprof_object.h
index efa643a..ccbf8e0 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_object.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_object.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_OBJECT_H
 #define HPROF_OBJECT_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_reference.c b/jdk/src/share/demo/jvmti/hprof/hprof_reference.c
index fafaf82..e7a668d 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_reference.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_reference.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Object references table (used in hprof_object.c). */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_reference.h b/jdk/src/share/demo/jvmti/hprof/hprof_reference.h
index c6b36f0..2464f58 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_reference.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_reference.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_REFERENCE_H
 #define HPROF_REFERENCE_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_site.c b/jdk/src/share/demo/jvmti/hprof/hprof_site.c
index b90cf4f..f1ae184 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_site.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_site.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Allocation site table. */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_site.h b/jdk/src/share/demo/jvmti/hprof/hprof_site.h
index cf6f04c..b922981 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_site.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_site.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_SITE_H
 #define HPROF_SITE_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_stack.c b/jdk/src/share/demo/jvmti/hprof/hprof_stack.c
index f283866..2f0127c 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_stack.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_stack.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Simple stack storage mechanism (or simple List). */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_stack.h b/jdk/src/share/demo/jvmti/hprof/hprof_stack.h
index 7aaa8ae..32efdce 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_stack.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_stack.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_STACK_H
 #define HPROF_STACK_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_string.c b/jdk/src/share/demo/jvmti/hprof/hprof_string.c
index 1937488..f2f53a4 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_string.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_string.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Table of byte arrays (e.g. char* string + NULL byte) */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_string.h b/jdk/src/share/demo/jvmti/hprof/hprof_string.h
index ed58c98..13e4f42 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_string.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_string.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_STRING_H
 #define HPROF_STRING_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_table.c b/jdk/src/share/demo/jvmti/hprof/hprof_table.c
index d78719c..19b0c42 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_table.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_table.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Lookup Table of generic elements. */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_table.h b/jdk/src/share/demo/jvmti/hprof/hprof_table.h
index e2ded55..84e3acd 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_table.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_table.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_TABLE_H
 #define HPROF_TABLE_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_tag.c b/jdk/src/share/demo/jvmti/hprof/hprof_tag.c
index d2cdcda..363be9a 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_tag.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_tag.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* JVMTI tag definitions. */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_tag.h b/jdk/src/share/demo/jvmti/hprof/hprof_tag.h
index 54e339a..14ef616 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_tag.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_tag.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_TAG_H
 #define HPROF_TAG_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_tls.c b/jdk/src/share/demo/jvmti/hprof/hprof_tls.c
index 9925b64..3c62aac 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_tls.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_tls.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include "hprof.h"
 
 /* Thread Local Storage Table and method entry/exit handling. */
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_tls.h b/jdk/src/share/demo/jvmti/hprof/hprof_tls.h
index 8bd5cee..695e78a 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_tls.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_tls.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_TLS_H
 #define HPROF_TLS_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_trace.c b/jdk/src/share/demo/jvmti/hprof/hprof_trace.c
index bc6e2f0..e56bfe9 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_trace.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_trace.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Trace table. */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_trace.h b/jdk/src/share/demo/jvmti/hprof/hprof_trace.h
index 06b87ae..b24ac1e 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_trace.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_trace.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_TRACE_H
 #define HPROF_TRACE_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_tracker.c b/jdk/src/share/demo/jvmti/hprof/hprof_tracker.c
index 0d07e55..56e1125 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_tracker.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_tracker.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Tracker class support functions. */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_tracker.h b/jdk/src/share/demo/jvmti/hprof/hprof_tracker.h
index 4c35b20..9aec082 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_tracker.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_tracker.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_TRACKER_H
 #define HPROF_TRACKER_H
 
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_util.c b/jdk/src/share/demo/jvmti/hprof/hprof_util.c
index 2948483..0a19117 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_util.c
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_util.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* General utility functions. */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/hprof/hprof_util.h b/jdk/src/share/demo/jvmti/hprof/hprof_util.h
index aebf2a1..c052394 100644
--- a/jdk/src/share/demo/jvmti/hprof/hprof_util.h
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_util.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef HPROF_UTIL_H
 #define HPROF_UTIL_H
 
diff --git a/jdk/src/share/demo/jvmti/java_crw_demo/java_crw_demo.c b/jdk/src/share/demo/jvmti/java_crw_demo/java_crw_demo.c
index 2add266..28ef3b6 100644
--- a/jdk/src/share/demo/jvmti/java_crw_demo/java_crw_demo.c
+++ b/jdk/src/share/demo/jvmti/java_crw_demo/java_crw_demo.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Class reader writer (java_crw_demo) for instrumenting bytecodes */
 
 /*
diff --git a/jdk/src/share/demo/jvmti/java_crw_demo/java_crw_demo.h b/jdk/src/share/demo/jvmti/java_crw_demo/java_crw_demo.h
index c8c80ed..06b6e01 100644
--- a/jdk/src/share/demo/jvmti/java_crw_demo/java_crw_demo.h
+++ b/jdk/src/share/demo/jvmti/java_crw_demo/java_crw_demo.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef JAVA_CRW_DEMO_H
 #define JAVA_CRW_DEMO_H
 
diff --git a/jdk/src/share/demo/jvmti/minst/Minst.java b/jdk/src/share/demo/jvmti/minst/Minst.java
index 04504c7..c75edfe 100644
--- a/jdk/src/share/demo/jvmti/minst/Minst.java
+++ b/jdk/src/share/demo/jvmti/minst/Minst.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 /* Java class to hold static methods which will be called in byte code
  *    injections of all class files.
diff --git a/jdk/src/share/demo/jvmti/minst/minst.c b/jdk/src/share/demo/jvmti/minst/minst.c
index ea70fcd..e811c63 100644
--- a/jdk/src/share/demo/jvmti/minst/minst.c
+++ b/jdk/src/share/demo/jvmti/minst/minst.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include "stdlib.h"
 
 #include "minst.h"
diff --git a/jdk/src/share/demo/jvmti/minst/minst.h b/jdk/src/share/demo/jvmti/minst/minst.h
index e2e3ece..8ffc14c 100644
--- a/jdk/src/share/demo/jvmti/minst/minst.h
+++ b/jdk/src/share/demo/jvmti/minst/minst.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Primary minst #include file, should be included by most if not
  *    all minst source files. Gives access to the global data structure
  *    and all global macros.
diff --git a/jdk/src/share/demo/jvmti/mtrace/Mtrace.java b/jdk/src/share/demo/jvmti/mtrace/Mtrace.java
index 085d5a6..061400a 100644
--- a/jdk/src/share/demo/jvmti/mtrace/Mtrace.java
+++ b/jdk/src/share/demo/jvmti/mtrace/Mtrace.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 /* Java class to hold static methods which will be called in byte code
  *    injections of all class files.
diff --git a/jdk/src/share/demo/jvmti/mtrace/mtrace.c b/jdk/src/share/demo/jvmti/mtrace/mtrace.c
index 86e8e60..4a43b54 100644
--- a/jdk/src/share/demo/jvmti/mtrace/mtrace.c
+++ b/jdk/src/share/demo/jvmti/mtrace/mtrace.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include "stdlib.h"
 
 #include "mtrace.h"
diff --git a/jdk/src/share/demo/jvmti/mtrace/mtrace.h b/jdk/src/share/demo/jvmti/mtrace/mtrace.h
index c442c19..15c0824 100644
--- a/jdk/src/share/demo/jvmti/mtrace/mtrace.h
+++ b/jdk/src/share/demo/jvmti/mtrace/mtrace.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Primary mtrace #include file, should be included by most if not
  *    all mtrace source files. Gives access to the global data structure
  *    and all global macros.
diff --git a/jdk/src/share/demo/jvmti/versionCheck/versionCheck.c b/jdk/src/share/demo/jvmti/versionCheck/versionCheck.c
index 5dd6140..b49d7b8 100644
--- a/jdk/src/share/demo/jvmti/versionCheck/versionCheck.c
+++ b/jdk/src/share/demo/jvmti/versionCheck/versionCheck.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/jdk/src/share/demo/jvmti/waiters/Agent.cpp b/jdk/src/share/demo/jvmti/waiters/Agent.cpp
index 551c75d..4fd87d0 100644
--- a/jdk/src/share/demo/jvmti/waiters/Agent.cpp
+++ b/jdk/src/share/demo/jvmti/waiters/Agent.cpp
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/jdk/src/share/demo/jvmti/waiters/Agent.hpp b/jdk/src/share/demo/jvmti/waiters/Agent.hpp
index 79ea61c..c508863 100644
--- a/jdk/src/share/demo/jvmti/waiters/Agent.hpp
+++ b/jdk/src/share/demo/jvmti/waiters/Agent.hpp
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* C++ Agent class */
 
 class Agent {
diff --git a/jdk/src/share/demo/jvmti/waiters/Monitor.cpp b/jdk/src/share/demo/jvmti/waiters/Monitor.cpp
index 9e19708..a99d5a6 100644
--- a/jdk/src/share/demo/jvmti/waiters/Monitor.cpp
+++ b/jdk/src/share/demo/jvmti/waiters/Monitor.cpp
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/jdk/src/share/demo/jvmti/waiters/Monitor.hpp b/jdk/src/share/demo/jvmti/waiters/Monitor.hpp
index 3508ea0..cd5444b 100644
--- a/jdk/src/share/demo/jvmti/waiters/Monitor.hpp
+++ b/jdk/src/share/demo/jvmti/waiters/Monitor.hpp
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* C++ Monitor class */
 
 class Monitor {
diff --git a/jdk/src/share/demo/jvmti/waiters/Thread.cpp b/jdk/src/share/demo/jvmti/waiters/Thread.cpp
index 7e12d4e..ca90567 100644
--- a/jdk/src/share/demo/jvmti/waiters/Thread.cpp
+++ b/jdk/src/share/demo/jvmti/waiters/Thread.cpp
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/jdk/src/share/demo/jvmti/waiters/Thread.hpp b/jdk/src/share/demo/jvmti/waiters/Thread.hpp
index 19adb98..32697c0 100644
--- a/jdk/src/share/demo/jvmti/waiters/Thread.hpp
+++ b/jdk/src/share/demo/jvmti/waiters/Thread.hpp
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* C++ Thread class */
 
 class Thread {
diff --git a/jdk/src/share/demo/jvmti/waiters/waiters.cpp b/jdk/src/share/demo/jvmti/waiters/waiters.cpp
index 1bc53f7..c6d34c3 100644
--- a/jdk/src/share/demo/jvmti/waiters/waiters.cpp
+++ b/jdk/src/share/demo/jvmti/waiters/waiters.cpp
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* Example of using JVMTI events:
  *      JVMTI_EVENT_VM_INIT
  *      JVMTI_EVENT_VM_DEATH
diff --git a/jdk/src/share/demo/management/FullThreadDump/Deadlock.java b/jdk/src/share/demo/management/FullThreadDump/Deadlock.java
index 2cc2d3e..452335f 100644
--- a/jdk/src/share/demo/management/FullThreadDump/Deadlock.java
+++ b/jdk/src/share/demo/management/FullThreadDump/Deadlock.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  */
 
 import java.util.concurrent.CyclicBarrier;
diff --git a/jdk/src/share/demo/management/FullThreadDump/FullThreadDump.java b/jdk/src/share/demo/management/FullThreadDump/FullThreadDump.java
index 15c95de..09e85ee 100644
--- a/jdk/src/share/demo/management/FullThreadDump/FullThreadDump.java
+++ b/jdk/src/share/demo/management/FullThreadDump/FullThreadDump.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  */
 
 import javax.management.*;
diff --git a/jdk/src/share/demo/management/FullThreadDump/ThreadMonitor.java b/jdk/src/share/demo/management/FullThreadDump/ThreadMonitor.java
index eb4ed78..2942ce1 100644
--- a/jdk/src/share/demo/management/FullThreadDump/ThreadMonitor.java
+++ b/jdk/src/share/demo/management/FullThreadDump/ThreadMonitor.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  */
 
 import static java.lang.management.ManagementFactory.*;
diff --git a/jdk/src/share/demo/management/JTop/JTop.java b/jdk/src/share/demo/management/JTop/JTop.java
index 39f4cab..4c1539d 100644
--- a/jdk/src/share/demo/management/JTop/JTop.java
+++ b/jdk/src/share/demo/management/JTop/JTop.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  *
  * Example of using the java.lang.management API to sort threads
  * by CPU usage.
diff --git a/jdk/src/share/demo/management/JTop/JTopPlugin.java b/jdk/src/share/demo/management/JTop/JTopPlugin.java
index 9586f9a..478d865 100644
--- a/jdk/src/share/demo/management/JTop/JTopPlugin.java
+++ b/jdk/src/share/demo/management/JTop/JTopPlugin.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  *
  * Example of a JConsole Plugin.  This loads JTop as a JConsole tab.
  *
diff --git a/jdk/src/share/demo/management/MemoryMonitor/MemoryMonitor.java b/jdk/src/share/demo/management/MemoryMonitor/MemoryMonitor.java
index 676b698..717e34b 100644
--- a/jdk/src/share/demo/management/MemoryMonitor/MemoryMonitor.java
+++ b/jdk/src/share/demo/management/MemoryMonitor/MemoryMonitor.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  */
 
 import java.awt.*;
diff --git a/jdk/src/share/demo/management/VerboseGC/PrintGCStat.java b/jdk/src/share/demo/management/VerboseGC/PrintGCStat.java
index d448504..d3f84df 100644
--- a/jdk/src/share/demo/management/VerboseGC/PrintGCStat.java
+++ b/jdk/src/share/demo/management/VerboseGC/PrintGCStat.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  */
 
 import static java.lang.management.ManagementFactory.*;
diff --git a/jdk/src/share/demo/management/VerboseGC/VerboseGC.java b/jdk/src/share/demo/management/VerboseGC/VerboseGC.java
index 9633894..b70cebb 100644
--- a/jdk/src/share/demo/management/VerboseGC/VerboseGC.java
+++ b/jdk/src/share/demo/management/VerboseGC/VerboseGC.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  */
 
 import javax.management.*;
diff --git a/jdk/src/share/demo/nio/zipfs/Demo.java b/jdk/src/share/demo/nio/zipfs/Demo.java
index 394a5f7..17927b1 100644
--- a/jdk/src/share/demo/nio/zipfs/Demo.java
+++ b/jdk/src/share/demo/nio/zipfs/Demo.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.*;
 import java.nio.channels.*;
diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/JarFileSystemProvider.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/JarFileSystemProvider.java
index b9ea826..72dc217 100644
--- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/JarFileSystemProvider.java
+++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/JarFileSystemProvider.java
@@ -28,6 +28,15 @@
  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
 package com.sun.nio.zipfs;
 
 import java.nio.file.*;
diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java
index 92c5535..d78c485 100644
--- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java
+++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipCoder.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.nio.zipfs;
 
 import java.nio.ByteBuffer;
diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipConstants.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipConstants.java
index 24c28cf..dd15bf8 100644
--- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipConstants.java
+++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipConstants.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.nio.zipfs;
 
 
diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipDirectoryStream.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipDirectoryStream.java
index 543220f..7ee803c 100644
--- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipDirectoryStream.java
+++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipDirectoryStream.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.nio.zipfs;
 
 import java.nio.file.DirectoryStream;
diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java
index c646a09..2498acd 100644
--- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java
+++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributeView.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 package com.sun.nio.zipfs;
 
diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributes.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributes.java
index 687f926..7e532ca 100644
--- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributes.java
+++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileAttributes.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 
 package com.sun.nio.zipfs;
 
diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileStore.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileStore.java
index 94ec030..996f7cc 100644
--- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileStore.java
+++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileStore.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.nio.zipfs;
 
 import java.io.IOException;
diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java
index 3994535..d09da8e 100644
--- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java
+++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java
@@ -29,8 +29,18 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.nio.zipfs;
 
+import java.io.BufferedOutputStream;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.EOFException;
@@ -1165,7 +1175,6 @@ public class ZipFileSystem extends FileSystem {
     // sync the zip file system, if there is any udpate
     private void sync() throws IOException {
         //System.out.printf("->sync(%s) starting....!%n", toString());
-
         // check ex-closer
         if (!exChClosers.isEmpty()) {
             for (ExChannelCloser ecc : exChClosers) {
@@ -1179,84 +1188,84 @@ public class ZipFileSystem extends FileSystem {
         if (!hasUpdate)
             return;
         Path tmpFile = createTempFileInSameDirectoryAs(zfpath);
-        OutputStream os = Files.newOutputStream(tmpFile, WRITE);
-        ArrayList<Entry> elist = new ArrayList<>(inodes.size());
-        long written = 0;
-        byte[] buf = new byte[8192];
-        Entry e = null;
-
-        // write loc
-        for (IndexNode inode : inodes.values()) {
-            if (inode instanceof Entry) {    // an updated inode
-                e = (Entry)inode;
-                try {
-                    if (e.type == Entry.COPY) {
-                        // entry copy: the only thing changed is the "name"
-                        // and "nlen" in LOC header, so we udpate/rewrite the
-                        // LOC in new file and simply copy the rest (data and
-                        // ext) without enflating/deflating from the old zip
-                        // file LOC entry.
-                        written += copyLOCEntry(e, true, os, written, buf);
-                    } else {                          // NEW, FILECH or CEN
-                        e.locoff = written;
-                        written += e.writeLOC(os);    // write loc header
-                        if (e.bytes != null) {        // in-memory, deflated
-                            os.write(e.bytes);        // already
-                            written += e.bytes.length;
-                        } else if (e.file != null) {  // tmp file
-                            try (InputStream is = Files.newInputStream(e.file)) {
-                                int n;
-                                if (e.type == Entry.NEW) {  // deflated already
-                                    while ((n = is.read(buf)) != -1) {
-                                        os.write(buf, 0, n);
-                                        written += n;
-                                    }
-                                } else if (e.type == Entry.FILECH) {
-                                    // the data are not deflated, use ZEOS
-                                    try (OutputStream os2 = new EntryOutputStream(e, os)) {
+        try (OutputStream os = new BufferedOutputStream(Files.newOutputStream(tmpFile, WRITE)))
+        {
+            ArrayList<Entry> elist = new ArrayList<>(inodes.size());
+            long written = 0;
+            byte[] buf = new byte[8192];
+            Entry e = null;
+
+            // write loc
+            for (IndexNode inode : inodes.values()) {
+                if (inode instanceof Entry) {    // an updated inode
+                    e = (Entry)inode;
+                    try {
+                        if (e.type == Entry.COPY) {
+                            // entry copy: the only thing changed is the "name"
+                            // and "nlen" in LOC header, so we udpate/rewrite the
+                            // LOC in new file and simply copy the rest (data and
+                            // ext) without enflating/deflating from the old zip
+                            // file LOC entry.
+                            written += copyLOCEntry(e, true, os, written, buf);
+                        } else {                          // NEW, FILECH or CEN
+                            e.locoff = written;
+                            written += e.writeLOC(os);    // write loc header
+                            if (e.bytes != null) {        // in-memory, deflated
+                                os.write(e.bytes);        // already
+                                written += e.bytes.length;
+                            } else if (e.file != null) {  // tmp file
+                                try (InputStream is = Files.newInputStream(e.file)) {
+                                    int n;
+                                    if (e.type == Entry.NEW) {  // deflated already
                                         while ((n = is.read(buf)) != -1) {
-                                            os2.write(buf, 0, n);
+                                            os.write(buf, 0, n);
+                                            written += n;
                                         }
+                                    } else if (e.type == Entry.FILECH) {
+                                        // the data are not deflated, use ZEOS
+                                        try (OutputStream os2 = new EntryOutputStream(e, os)) {
+                                            while ((n = is.read(buf)) != -1) {
+                                                os2.write(buf, 0, n);
+                                            }
+                                        }
+                                        written += e.csize;
+                                        if ((e.flag & FLAG_DATADESCR) != 0)
+                                            written += e.writeEXT(os);
                                     }
-                                    written += e.csize;
-                                    if ((e.flag & FLAG_DATADESCR) != 0)
-                                        written += e.writeEXT(os);
                                 }
+                                Files.delete(e.file);
+                                tmppaths.remove(e.file);
+                            } else {
+                                // dir, 0-length data
                             }
-                            Files.delete(e.file);
-                            tmppaths.remove(e.file);
-                        } else {
-                            // dir, 0-length data
                         }
+                        elist.add(e);
+                    } catch (IOException x) {
+                        x.printStackTrace();    // skip any in-accurate entry
+                    }
+                } else {                        // unchanged inode
+                    if (inode.pos == -1) {
+                        continue;               // pseudo directory node
+                    }
+                    e = Entry.readCEN(this, inode.pos);
+                    try {
+                        written += copyLOCEntry(e, false, os, written, buf);
+                        elist.add(e);
+                    } catch (IOException x) {
+                        x.printStackTrace();    // skip any wrong entry
                     }
-                    elist.add(e);
-                } catch (IOException x) {
-                    x.printStackTrace();    // skip any in-accurate entry
-                }
-            } else {                        // unchanged inode
-                if (inode.pos == -1) {
-                    continue;               // pseudo directory node
-                }
-                e = Entry.readCEN(this, inode.pos);
-                try {
-                    written += copyLOCEntry(e, false, os, written, buf);
-                    elist.add(e);
-                } catch (IOException x) {
-                    x.printStackTrace();    // skip any wrong entry
                 }
             }
-        }
 
-        // now write back the cen and end table
-        end.cenoff = written;
-        for (Entry entry : elist) {
-            written += entry.writeCEN(os);
+            // now write back the cen and end table
+            end.cenoff = written;
+            for (Entry entry : elist) {
+                written += entry.writeCEN(os);
+            }
+            end.centot = elist.size();
+            end.cenlen = written - end.cenoff;
+            end.write(os, written);
         }
-        end.centot = elist.size();
-        end.cenlen = written - end.cenoff;
-        end.write(os, written);
-        os.close();
-
         if (!streams.isEmpty()) {
             //
             // TBD: ExChannelCloser should not be necessary if we only
@@ -1959,7 +1968,7 @@ public class ZipFileSystem extends FileSystem {
             writeBytes(os, name);
             if (elen64 != 0) {
                 writeShort(os, EXTID_ZIP64);// Zip64 extra
-                writeShort(os, elen64);     // size of "this" extra block
+                writeShort(os, elen64 - 4); // size of "this" extra block
                 if (size0 == ZIP64_MINVAL)
                     writeLong(os, size);
                 if (csize0 == ZIP64_MINVAL)
diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java
index c6dd243..49d9ee7 100644
--- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java
+++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystemProvider.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.nio.zipfs;
 
 import java.io.*;
diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipInfo.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipInfo.java
index 56954e1..71274e2 100644
--- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipInfo.java
+++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipInfo.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.nio.zipfs;
 
 import java.nio.file.Paths;
diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipPath.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipPath.java
index 8c97818..3527e5d 100644
--- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipPath.java
+++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipPath.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.nio.zipfs;
 
 import java.io.*;
diff --git a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipUtils.java b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipUtils.java
index cddec6f..8938d9e 100644
--- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipUtils.java
+++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipUtils.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.nio.zipfs;
 
 import java.io.IOException;
diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/EditableAtEndDocument.java b/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/EditableAtEndDocument.java
index fa9bf1d..9dbc34e 100644
--- a/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/EditableAtEndDocument.java
+++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/EditableAtEndDocument.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.demo.scripting.jconsole;
 
 import javax.swing.text.*;
diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptJConsolePlugin.java b/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptJConsolePlugin.java
index 6bae2c8..330fd7d 100644
--- a/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptJConsolePlugin.java
+++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptJConsolePlugin.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.demo.scripting.jconsole;
 
 import com.sun.tools.jconsole.*;
diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java b/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java
index 54731af..c6b87d6 100644
--- a/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java
+++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.demo.scripting.jconsole;
 
 import java.awt.*;
diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js b/jdk/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js
index dd1f724..f7253b3 100644
--- a/jdk/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js
+++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/heapdump.js b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/heapdump.js
index 2577b2a..d2af00d 100644
--- a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/heapdump.js
+++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/heapdump.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This file defines heapdump function to heap dump
  * in binary format. User can call this function
  * based on events. For example, a timer thread can
diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/hello.js b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/hello.js
index 1454cc7..0cbdb6d 100644
--- a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/hello.js
+++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/hello.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This is sample JavaScript file that can be loaded into script console.
  * This file prints "hello, world".
  */
diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/invoke.js b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/invoke.js
index 09a060a..4bac941 100644
--- a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/invoke.js
+++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/invoke.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This script demonstrates "invokeMBean" function. Instead 
  * of using MXBean proxy or script wrapper object returned by
  * 'mbean' function, this file uses direct invoke on MBean.
diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/jstack.js b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/jstack.js
index 831377d..2114b6e 100644
--- a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/jstack.js
+++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/jstack.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This file defines 'jstack' function to print stack traces of
  * threads.'jstack' function which can be called once or periodically 
  * from a timer thread (calling it periodically would slow down the target
diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/jtop.js b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/jtop.js
index 55e75ac..ff79bf6 100644
--- a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/jtop.js
+++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/jtop.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This code is "ported" from JTop demo. This file defines
  * 'jtop' function. jtop prints threads sorting by CPU time. 
  * jtop can be called once or periodically from a timer thread. 
diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/sysprops.js b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/sysprops.js
index 012b92b..a78fde4 100644
--- a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/sysprops.js
+++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/sysprops.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This file defines 'sysprops' function to print Java System
  * properties.'sysprops' function which can be called once or periodically 
  * from a timer thread (calling it periodically would slow down the target
diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/verbose.js b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/verbose.js
index b57011e..4e5bb97 100644
--- a/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/verbose.js
+++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/scripts/verbose.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This script demonstrates "getMBeanAttribute"
  * and "setMBeanAttribute" functions. Instead of using
  * MXBean proxy or script wrapper object returned by
diff --git a/jdk/src/share/native/sun/awt/libpng/CHANGES b/jdk/src/share/native/sun/awt/libpng/CHANGES
index 20ce7cf..3d472f5 100644
--- a/jdk/src/share/native/sun/awt/libpng/CHANGES
+++ b/jdk/src/share/native/sun/awt/libpng/CHANGES
@@ -1,5 +1,5 @@
-/* 
- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,13 +23,15 @@
  * questions.
  */
 
+#if 0
+libpng_changes(){ /*
 CHANGES - changes for libpng
 
-version 0.2
+Version 0.2
   added reader into png.h
   fixed small problems in stub file
 
-version 0.3
+Version 0.3
   added pull reader
   split up pngwrite.c to several files
   added pnglib.txt
@@ -38,9 +40,9 @@ version 0.3
   fixed some bugs in writer
   interfaced with zlib 0.5
   added K&R support
-  added check for 64 KB blocks for 16 bit machines
+  added check for 64 KB blocks for 16-bit machines
 
-version 0.4
+Version 0.4
   cleaned up code and commented code
   simplified time handling into png_time
   created png_color_16 and png_color_8 to handle color needs
@@ -51,28 +53,28 @@ version 0.4
   cleaned up zTXt reader and writer (using zlib's Reset functions)
   split transformations into pngrtran.c and pngwtran.c
 
-version 0.5
+Version 0.5
   interfaced with zlib 0.8
   fixed many reading and writing bugs
   saved using 3 spaces instead of tabs
 
-version 0.6
+Version 0.6
   added png_large_malloc() and png_large_free()
   added png_size_t
   cleaned up some compiler warnings
   added png_start_read_image()
 
-version 0.7
+Version 0.7
   cleaned up lots of bugs
   finished dithering and other stuff
   added test program
   changed name from pnglib to libpng
 
-version 0.71 [June, 1995]
+Version 0.71 [June, 1995]
   changed pngtest.png for zlib 0.93
   fixed error in libpng.txt and example.c
 
-version 0.8
+Version 0.8
   cleaned up some bugs
   added png_set_filler()
   split up pngstub.c into pngmem.c, pngio.c, and pngerror.c
@@ -86,191 +88,194 @@ version 0.8
   changed external functions passing floats to doubles (k&r problems?)
   put all the configurable stuff in pngconf.h
   enabled png_set_shift to work with paletted images on read
-  added png_read_update_info() - updates info structure with
-     transformations
+  added png_read_update_info() - updates info structure with transformations
 
-version 0.81 [August, 1995]
+Version 0.81 [August, 1995]
   incorporated Tim Wegner's medium model code (thanks, Tim)
 
-version 0.82 [September, 1995]
+Version 0.82 [September, 1995]
   [unspecified changes]
 
-version 0.85 [December, 1995]
+Version 0.85 [December, 1995]
   added more medium model code (almost everything's a far)
   added i/o, error, and memory callback functions
-  fixed some bugs (16 bit, 4 bit interlaced, etc.)
+  fixed some bugs (16-bit, 4-bit interlaced, etc.)
   added first run progressive reader (barely tested)
 
-version 0.86 [January, 1996]
+Version 0.86 [January, 1996]
   fixed bugs
   improved documentation
 
-version 0.87 [January, 1996]
+Version 0.87 [January, 1996]
   fixed medium model bugs
   fixed other bugs introduced in 0.85 and 0.86
   added some minor documentation
 
-version 0.88 [January, 1996]
+Version 0.88 [January, 1996]
   fixed progressive bugs
   replaced tabs with spaces
   cleaned up documentation
   added callbacks for read/write and warning/error functions
 
-version 0.89 [July, 1996]
-  added new initialization API to make libpng work better with shared libs
-     we now have png_create_read_struct(), png_create_write_struct(),
-     png_create_info_struct(), png_destroy_read_struct(), and
-     png_destroy_write_struct() instead of the separate calls to
-     malloc and png_read_init(), png_info_init(), and png_write_init()
-  changed warning/error callback functions to fix bug - this means you
-     should use the new initialization API if you were using the old
-     png_set_message_fn() calls, and that the old API no longer exists
-     so that people are aware that they need to change their code
-  changed filter selection API to allow selection of multiple filters
-     since it didn't work in previous versions of libpng anyways
-  optimized filter selection code
-  fixed png_set_background() to allow using an arbitrary RGB color for
-     paletted images
-  fixed gamma and background correction for paletted images, so
-     png_correct_palette is not needed unless you are correcting an
-     external palette (you will need to #define PNG_CORRECT_PALETTE_SUPPORTED
-     in pngconf.h) - if nobody uses this, it may disappear in the future.
-  fixed bug with Borland 64K memory allocation (Alexander Lehmann)
-  fixed bug in interlace handling (Smarasderagd, I think)
-  added more error checking for writing and image to reduce invalid files
-  separated read and write functions so that they won't both be linked
-     into a binary when only reading or writing functionality is used
-  new pngtest image also has interlacing and zTXt
-  updated documentation to reflect new API
-
-version 0.90 [January, 1997]
-  made CRC errors/warnings on critical and ancillary chunks configurable
+Version 0.89 [July, 1996]
+  Added new initialization API to make libpng work better with shared libs
+    we now have png_create_read_struct(), png_create_write_struct(),
+    png_create_info_struct(), png_destroy_read_struct(), and
+    png_destroy_write_struct() instead of the separate calls to
+    malloc and png_read_init(), png_info_init(), and png_write_init()
+  Changed warning/error callback functions to fix bug - this means you
+    should use the new initialization API if you were using the old
+    png_set_message_fn() calls, and that the old API no longer exists
+    so that people are aware that they need to change their code
+  Changed filter selection API to allow selection of multiple filters
+    since it didn't work in previous versions of libpng anyways
+  Optimized filter selection code
+  Fixed png_set_background() to allow using an arbitrary RGB color for
+    paletted images
+  Fixed gamma and background correction for paletted images, so
+    png_correct_palette is not needed unless you are correcting an
+    external palette (you will need to #define PNG_CORRECT_PALETTE_SUPPORTED
+    in pngconf.h) - if nobody uses this, it may disappear in the future.
+  Fixed bug with Borland 64K memory allocation (Alexander Lehmann)
+  Fixed bug in interlace handling (Smarasderagd, I think)
+  Added more error checking for writing and image to reduce invalid files
+  Separated read and write functions so that they won't both be linked
+    into a binary when only reading or writing functionality is used
+  New pngtest image also has interlacing and zTXt
+  Updated documentation to reflect new API
+
+Version 0.90 [January, 1997]
+  Made CRC errors/warnings on critical and ancillary chunks configurable
   libpng will use the zlib CRC routines by (compile-time) default
-  changed DOS small/medium model memory support - needs zlib 1.04 (Tim Wegner)
-  added external C++ wrapper statements to png.h (Gilles Dauphin)
-  allow PNG file to be read when some or all of file signature has already
-     been read from the beginning of the stream.  ****This affects the size
-     of info_struct and invalidates all programs that use a shared libpng****
-  fixed png_filler() declarations
-  fixed? background color conversions
-  fixed order of error function pointers to match documentation
-  current chunk name is now available in png_struct to reduce the number
-     of nearly identical error messages (will simplify multi-lingual
-     support when available)
-  try to get ready for unknown-chunk callback functions:
-     - previously read critical chunks are flagged, so the chunk handling
-       routines can determine if the chunk is in the right place
-     - all chunk handling routines have the same prototypes, so we will
-       be able to handle all chunks via a callback mechanism
-  try to fix Linux "setjmp" buffer size problems
-  removed png_large_malloc, png_large_free, and png_realloc functions.
-
-version 0.95 [March, 1997]
-  fixed bug in pngwutil.c allocating "up_row" twice and "avg_row" never
-  fixed bug in PNG file signature compares when start != 0
-  changed parameter type of png_set_filler(...filler...) from png_byte
-     to png_uint_32
-  added test for MACOS to ensure that both math.h and fp.h are not #included
-  added macros for libpng to be compiled as a Windows DLL (Andreas Kupries)
-  added "packswap" transformation, which changes the endianness of
-     packed-pixel bytes (Kevin Bracey)
-  added "strip_alpha" transformation, which removes the alpha channel of
-     input images without using it (not necessarily a good idea)
-  added "swap_alpha" transformation, which puts the alpha channel in front
-     of the color bytes instead of after
-  removed all implicit variable tests which assume NULL == 0 (I think)
-  changed several variables to "png_size_t" to show 16/32-bit limitations
-  added new pCAL chunk read/write support
-  added experimental filter selection weighting (Greg Roelofs)
-  removed old png_set_rgbx() and png_set_xrgb() functions that have been
+  Changed DOS small/medium model memory support - needs zlib 1.04 (Tim Wegner)
+  Added external C++ wrapper statements to png.h (Gilles Dauphin)
+  Allow PNG file to be read when some or all of file signature has already
+    been read from the beginning of the stream.  ****This affects the size
+    of info_struct and invalidates all programs that use a shared libpng****
+  Fixed png_filler() declarations
+  Fixed? background color conversions
+  Fixed order of error function pointers to match documentation
+  Current chunk name is now available in png_struct to reduce the number
+    of nearly identical error messages (will simplify multi-lingual
+    support when available)
+  Try to get ready for unknown-chunk callback functions:
+    - previously read critical chunks are flagged, so the chunk handling
+      routines can determine if the chunk is in the right place
+    - all chunk handling routines have the same prototypes, so we will
+      be able to handle all chunks via a callback mechanism
+  Try to fix Linux "setjmp" buffer size problems
+  Removed png_large_malloc, png_large_free, and png_realloc functions.
+
+Version 0.95 [March, 1997]
+  Fixed bug in pngwutil.c allocating "up_row" twice and "avg_row" never
+  Fixed bug in PNG file signature compares when start != 0
+  Changed parameter type of png_set_filler(...filler...) from png_byte
+    to png_uint_32
+  Added test for MACOS to ensure that both math.h and fp.h are not #included
+  Added macros for libpng to be compiled as a Windows DLL (Andreas Kupries)
+  Added "packswap" transformation, which changes the endianness of
+    packed-pixel bytes (Kevin Bracey)
+  Added "strip_alpha" transformation, which removes the alpha channel of
+    input images without using it (not necessarily a good idea)
+  Added "swap_alpha" transformation, which puts the alpha channel in front
+    of the color bytes instead of after
+  Removed all implicit variable tests which assume NULL == 0 (I think)
+  Changed several variables to "png_size_t" to show 16/32-bit limitations
+  Added new pCAL chunk read/write support
+  Added experimental filter selection weighting (Greg Roelofs)
+  Removed old png_set_rgbx() and png_set_xrgb() functions that have been
      obsolete for about 2 years now (use png_set_filler() instead)
-  added macros to read 16- and 32-bit ints directly from buffer, to be
-     used only on those systems that support it (namely PowerPC and 680x0)
-     With some testing, this may become the default for MACOS/PPC systems.
-  only calculate CRC on data if we are going to use it
-  added macros for zTXt compression type PNG_zTXt_COMPRESSION_???
-  added macros for simple libpng debugging output selectable at compile time
-  removed PNG_READ_END_MODE in progressive reader (Smarasderagd)
-  more description of info_struct in libpng.txt and png.h
-  more instructions in example.c
-  more chunk types tested in pngtest.c
-  renamed pngrcb.c to pngset.c, and all png_read_<chunk> functions to be
-     png_set_<chunk>.  We now have corresponding png_get_<chunk>
-     functions in pngget.c to get information in info_ptr.  This isolates
-     the application from the internal organization of png_info_struct
-     (good for shared library implementations).
-
-version 0.96 [May, 1997]
-  fixed serious bug with < 8bpp images introduced in 0.95
-  fixed 256-color transparency bug (Greg Roelofs)
-  fixed up documentation (Greg Roelofs, Laszlo Nyul)
-  fixed "error" in pngconf.h for Linux setjmp() behaviour
-  fixed DOS medium model support (Tim Wegner)
-  fixed png_check_keyword() for case with error in static string text
-  added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul)
-  added typecasts to quiet compiler errors
-  added more debugging info
-
-version 0.97 [January, 1998]
-  removed PNG_USE_OWN_CRC capability
-  relocated png_set_crc_action from pngrutil.c to pngrtran.c
-  fixed typecasts of "new_key", etc. (Andreas Dilger)
-  added RFC 1152 [sic] date support
-  fixed bug in gamma handling of 4-bit grayscale
-  added 2-bit grayscale gamma handling (Glenn R-P)
-  added more typecasts. 65536L becomes (png_uint_32)65536L, etc. (Glenn R-P)
-  minor corrections in libpng.txt
-  added simple sRGB support (Glenn R-P)
-  easier conditional compiling, e.g. define PNG_READ/WRITE_NOT_FULLY_SUPPORTED;
-     all configurable options can be selected from command-line instead
-     of having to edit pngconf.h (Glenn R-P)
-  fixed memory leak in pngwrite.c (free info_ptr->text) (Glenn R-P)
-  added more conditions for png_do_background, to avoid changing
-     black pixels to background when a background is supplied and
-     no pixels are transparent
-  repaired PNG_NO_STDIO behaviour
-  tested NODIV support and made it default behaviour (Greg Roelofs)
-  added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler)
-  regularized version numbering scheme and bumped shared-library major
+  Added macros to read 16- and 32-bit ints directly from buffer, to be
+    used only on those systems that support it (namely PowerPC and 680x0)
+    With some testing, this may become the default for MACOS/PPC systems.
+  Only calculate CRC on data if we are going to use it
+  Added macros for zTXt compression type PNG_zTXt_COMPRESSION_???
+  Added macros for simple libpng debugging output selectable at compile time
+  Removed PNG_READ_END_MODE in progressive reader (Smarasderagd)
+  More description of info_struct in libpng.txt and png.h
+  More instructions in example.c
+  More chunk types tested in pngtest.c
+  Renamed pngrcb.c to pngset.c, and all png_read_<chunk> functions to be
+    png_set_<chunk>.  We now have corresponding png_get_<chunk>
+    functions in pngget.c to get information in info_ptr.  This isolates
+    the application from the internal organization of png_info_struct
+    (good for shared library implementations).
+
+Version 0.96 [May, 1997]
+  Fixed serious bug with < 8bpp images introduced in 0.95
+  Fixed 256-color transparency bug (Greg Roelofs)
+  Fixed up documentation (Greg Roelofs, Laszlo Nyul)
+  Fixed "error" in pngconf.h for Linux setjmp() behaviour
+  Fixed DOS medium model support (Tim Wegner)
+  Fixed png_check_keyword() for case with error in static string text
+  Added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul)
+  Added typecasts to quiet compiler errors
+  Added more debugging info
+
+Version 0.97 [January, 1998]
+  Removed PNG_USE_OWN_CRC capability
+  Relocated png_set_crc_action from pngrutil.c to pngrtran.c
+  Fixed typecasts of "new_key", etc. (Andreas Dilger)
+  Added RFC 1152 [sic] date support
+  Fixed bug in gamma handling of 4-bit grayscale
+  Added 2-bit grayscale gamma handling (Glenn R-P)
+  Added more typecasts. 65536L becomes (png_uint_32)65536L, etc. (Glenn R-P)
+  Minor corrections in libpng.txt
+  Added simple sRGB support (Glenn R-P)
+  Easier conditional compiling, e.g. define PNG_READ/WRITE_NOT_FULLY_SUPPORTED;
+    all configurable options can be selected from command-line instead
+    of having to edit pngconf.h (Glenn R-P)
+  Fixed memory leak in pngwrite.c (free info_ptr->text) (Glenn R-P)
+  Added more conditions for png_do_background, to avoid changing
+    black pixels to background when a background is supplied and
+    no pixels are transparent
+  Repaired PNG_NO_STDIO behaviour
+  Tested NODIV support and made it default behaviour (Greg Roelofs)
+  Added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler)
+  Regularized version numbering scheme and bumped shared-library major
      version number to 2 to avoid problems with libpng 0.89 apps (Greg Roelofs)
 
-version 0.98 [January, 1998]
-  cleaned up some typos in libpng.txt and in code documentation
-  fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler)
-  cosmetic change "display_gamma" to "screen_gamma" in pngrtran.c
-  changed recommendation about file_gamma for PC images to .51 from .45,
-     in example.c and libpng.txt, added comments to distinguish between
-     screen_gamma, viewing_gamma, and display_gamma.
-  changed all references to RFC1152 to read RFC1123 and changed the
-     PNG_TIME_RFC1152_SUPPORTED macro to PNG_TIME_RFC1123_SUPPORTED
-  added png_invert_alpha capability (Glenn R-P -- suggestion by Jon Vincent)
-  changed srgb_intent from png_byte to int to avoid compiler bugs
-
-version 0.99 [January 30, 1998]
-  free info_ptr->text instead of end_info_ptr->text in pngread.c (John Bowler)
-  fixed a longstanding "packswap" bug in pngtrans.c
-  fixed some inconsistencies in pngconf.h that prevented compiling with
-     PNG_READ_GAMMA_SUPPORTED and PNG_READ_hIST_SUPPORTED undefined
-  fixed some typos and made other minor rearrangement of libpng.txt (Andreas)
-  changed recommendation about file_gamma for PC images to .50 from .51 in
-     example.c and libpng.txt, and changed file_gamma for sRGB images to .45
-  added a number of functions to access information from the png structure
-     png_get_image_height(), etc. (Glenn R-P, suggestion by Brad Pettit)
-  added TARGET_MACOS similar to zlib-1.0.8
-  define PNG_ALWAYS_EXTERN when __MWERKS__ && WIN32 are defined
-  added type casting to all png_malloc() function calls
-version 0.99a [January 31, 1998]
+Version 0.98 [January, 1998]
+  Cleaned up some typos in libpng.txt and in code documentation
+  Fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler)
+  Cosmetic change "display_gamma" to "screen_gamma" in pngrtran.c
+  Changed recommendation about file_gamma for PC images to .51 from .45,
+    in example.c and libpng.txt, added comments to distinguish between
+    screen_gamma, viewing_gamma, and display_gamma.
+  Changed all references to RFC1152 to read RFC1123 and changed the
+    PNG_TIME_RFC1152_SUPPORTED macro to PNG_TIME_RFC1123_SUPPORTED
+  Added png_invert_alpha capability (Glenn R-P -- suggestion by Jon Vincent)
+  Changed srgb_intent from png_byte to int to avoid compiler bugs
+
+Version 0.99 [January 30, 1998]
+  Free info_ptr->text instead of end_info_ptr->text in pngread.c (John Bowler)
+  Fixed a longstanding "packswap" bug in pngtrans.c
+  Fixed some inconsistencies in pngconf.h that prevented compiling with
+    PNG_READ_GAMMA_SUPPORTED and PNG_READ_hIST_SUPPORTED undefined
+  Fixed some typos and made other minor rearrangement of libpng.txt (Andreas)
+  Changed recommendation about file_gamma for PC images to .50 from .51 in
+    example.c and libpng.txt, and changed file_gamma for sRGB images to .45
+  Added a number of functions to access information from the png structure
+    png_get_image_height(), etc. (Glenn R-P, suggestion by Brad Pettit)
+  Added TARGET_MACOS similar to zlib-1.0.8
+  Define PNG_ALWAYS_EXTERN when __MWERKS__ && WIN32 are defined
+  Added type casting to all png_malloc() function calls
+
+Version 0.99a [January 31, 1998]
   Added type casts and parentheses to all returns that return a value.(Tim W.)
-version 0.99b [February 4, 1998]
+
+Version 0.99b [February 4, 1998]
   Added type cast png_uint_32 on malloc function calls where needed.
   Changed type of num_hist from png_uint_32 to int (same as num_palette).
   Added checks for rowbytes overflow, in case png_size_t is less than 32 bits.
   Renamed makefile.elf to makefile.lnx.
-version 0.99c [February 7, 1998]
+
+Version 0.99c [February 7, 1998]
   More type casting.  Removed erroneous overflow test in pngmem.c.
   Added png_buffered_memcpy() and png_buffered_memset(), apply them to rowbytes.
   Added UNIX manual pages libpng.3 (incorporating libpng.txt) and  png.5.
-version 0.99d [February 11, 1998]
+
+Version 0.99d [February 11, 1998]
   Renamed "far_to_near()" "png_far_to_near()"
   Revised libpng.3
   Version 99c "buffered" operations didn't work as intended.  Replaced them
@@ -280,7 +285,8 @@ version 0.99d [February 11, 1998]
   Check for overlength tRNS chunk present when indexed-color PLTE is read.
   Cleaned up spelling errors in libpng.3/libpng.txt
   Corrected a problem with png_get_tRNS() which returned undefined trans array
-version 0.99e [February 28, 1998]
+
+Version 0.99e [February 28, 1998]
   Corrected png_get_tRNS() again.
   Add parentheses for easier reading of pngget.c, fixed "||" should be "&&".
   Touched up example.c to make more of it compileable, although the entire
@@ -290,53 +296,59 @@ version 0.99e [February 28, 1998]
   Replaced pngtest.png with one created with zlib 1.1.1
   Changed pngtest to report PASS even when file size is different (Jean-loup G.)
   Corrected some logic errors in png_do_invert_alpha() (Chris Patterson)
-version 0.99f [March 5, 1998]
+
+Version 0.99f [March 5, 1998]
   Corrected a bug in pngpread() introduced in version 99c (Kevin Bracey)
   Moved makefiles into a "scripts" directory, and added INSTALL instruction file
   Added makefile.os2 and pngos2.def (A. Zabolotny) and makefile.s2x (W. Sebok)
   Added pointers to "note on libpng versions" in makefile.lnx and README
   Added row callback feature when reading and writing nonprogressive rows
-     and added a test of this feature in pngtest.c
+    and added a test of this feature in pngtest.c
   Added user transform callbacks, with test of the feature in pngtest.c
-version 0.99g [March 6, 1998, morning]
+
+Version 0.99g [March 6, 1998, morning]
   Minor changes to pngtest.c to suppress compiler warnings.
   Removed "beta" language from documentation.
-version 0.99h [March 6, 1998, evening]
+
+Version 0.99h [March 6, 1998, evening]
   Minor changes to previous minor changes to pngtest.c
   Changed PNG_READ_NOT_FULLY_SUPPORTED to PNG_READ_TRANSFORMS_NOT_SUPPORTED
-  and added PNG_PROGRESSIVE_READ_NOT_SUPPORTED macro
+    and added PNG_PROGRESSIVE_READ_NOT_SUPPORTED macro
   Added user transform capability
 
-version 1.00 [March 7, 1998]
+Version 1.00 [March 7, 1998]
   Changed several typedefs in pngrutil.c
   Added makefile.wat (Pawel Mrochen), updated makefile.tc3 (Willem van Schaik)
-  replaced "while(1)" with "for(;;)"
-  added PNGARG() to prototypes in pngtest.c and removed some prototypes
-  updated some of the makefiles (Tom Lane)
-  changed some typedefs (s_start, etc.) in pngrutil.c
-  fixed dimensions of "short_months" array in pngwrite.c
+  Replaced "while(1)" with "for(;;)"
+  Added PNGARG() to prototypes in pngtest.c and removed some prototypes
+  Updated some of the makefiles (Tom Lane)
+  Changed some typedefs (s_start, etc.) in pngrutil.c
+  Fixed dimensions of "short_months" array in pngwrite.c
   Replaced ansi2knr.c with the one from jpeg-v6
 
-version 1.0.0 [March 8, 1998]
+Version 1.0.0 [March 8, 1998]
   Changed name from 1.00 to 1.0.0 (Adam Costello)
   Added smakefile.ppc (with SCOPTIONS.ppc) for Amiga PPC (Andreas Kleinert)
-version 1.0.0a [March 9, 1998]
+
+Version 1.0.0a [March 9, 1998]
   Fixed three bugs in pngrtran.c to make gamma+background handling consistent
-  (Greg Roelofs)
+    (Greg Roelofs)
   Changed format of the PNG_LIBPNG_VER integer to xyyzz instead of xyz
-  for major, minor, and bugfix releases.  This is 10001. (Adam Costello,
-  Tom Lane)
+    for major, minor, and bugfix releases.  This is 10001. (Adam Costello,
+    Tom Lane)
   Make months range from 1-12 in png_convert_to_rfc1123
-version 1.0.0b [March 13, 1998]
+
+Version 1.0.0b [March 13, 1998]
   Quieted compiler complaints about two empty "for" loops in pngrutil.c
   Minor changes to makefile.s2x
   Removed #ifdef/#endif around a png_free() in pngread.c
 
-version 1.0.1 [March 14, 1998]
+Version 1.0.1 [March 14, 1998]
   Changed makefile.s2x to reduce security risk of using a relative pathname
   Fixed some typos in the documentation (Greg).
   Fixed a problem with value of "channels" returned by png_read_update_info()
-version 1.0.1a [April 21, 1998]
+
+Version 1.0.1a [April 21, 1998]
   Optimized Paeth calculations by replacing abs() function calls with intrinsics
   plus other loop optimizations. Improves avg decoding speed by about 20%.
   Commented out i386istic "align" compiler flags in makefile.lnx.
@@ -350,19 +362,24 @@ version 1.0.1a [April 21, 1998]
   Moved a misplaced pngrutil code block that truncates tRNS if it has more
     than num_palette entries -- test was done before num_palette was defined.
   Fixed a png_convert_to_rfc1123() bug that converts day 31 to 0 (Steve Eddins).
-  Changed compiler flags in makefile.wat for better optimization (Pawel Mrochen).
-version 1.0.1b [May 2, 1998]
+  Changed compiler flags in makefile.wat for better optimization
+    (Pawel Mrochen).
+
+Version 1.0.1b [May 2, 1998]
   Relocated png_do_gray_to_rgb() within png_do_read_transformations() (Greg).
   Relocated the png_composite macros from pngrtran.c to png.h (Greg).
   Added makefile.sco (contributed by Mike Hopkirk).
   Fixed two bugs (missing definitions of "istop") introduced in libpng-1.0.1a.
   Fixed a bug in pngrtran.c that would set channels=5 under some circumstances.
-  More work on the Paeth-filtering, achieving imperceptible speedup (A Kleinert).
-  More work on loop optimization which may help when compiled with C++ compilers.
+  More work on the Paeth-filtering, achieving imperceptible speedup
+    (A Kleinert).
+  More work on loop optimization which may help when compiled with C++
+    compilers.
   Added warnings when people try to use transforms they've defined out.
   Collapsed 4 "i" and "c" loops into single "i" loops in pngrtran and pngwtran.
   Revised paragraph about png_set_expand() in libpng.txt and libpng.3 (Greg)
-version 1.0.1c [May 11, 1998]
+
+Version 1.0.1c [May 11, 1998]
   Fixed a bug in pngrtran.c (introduced in libpng-1.0.1a) where the masks for
     filler bytes should have been 0xff instead of 0xf.
   Added max_pixel_depth=32 in pngrutil.c when using FILLER with palette images.
@@ -374,7 +391,8 @@ version 1.0.1c [May 11, 1998]
     to remove unwanted capabilities via the compile line
   Made some corrections to grammar (which, it's) in documentation (Greg).
   Corrected example.c, use of row_pointers in png_write_image().
-version 1.0.1d [May 24, 1998]
+
+Version 1.0.1d [May 24, 1998]
   Corrected several statements that used side effects illegally in pngrutil.c
     and pngtrans.c, that were introduced in version 1.0.1b
   Revised png_read_rows() to avoid repeated if-testing for NULL (A Kleinert)
@@ -384,7 +402,8 @@ version 1.0.1d [May 24, 1998]
     Bob Dellaca, to make a png32bd.dll with Borland C++ 4.5
   Fixed error in example.c with png_set_text: num_text is 3, not 2 (Guido V.)
   Changed several loops from count-down to count-up, for consistency.
-version 1.0.1e [June 6, 1998]
+
+Version 1.0.1e [June 6, 1998]
   Revised libpng.txt and libpng.3 description of png_set_read|write_fn(), and
     added warnings when people try to set png_read_fn and png_write_fn in
     the same structure.
@@ -401,9 +420,10 @@ version 1.0.1e [June 6, 1998]
     PNGTEST_DEBUG_MEM feature.
   Added makefile.w32, for Microsoft C++ 4.0 and later (Tim Wegner).
 
-version 1.0.2 [June 14, 1998]
+Version 1.0.2 [June 14, 1998]
   Fixed two bugs in makefile.bor .
-version 1.0.2a [December 30, 1998]
+
+Version 1.0.2a [December 30, 1998]
   Replaced and extended code that was removed from png_set_filler() in 1.0.1a.
   Fixed a bug in png_do_filler() that made it fail to write filler bytes in
     the left-most pixel of each row (Kevin Bracey).
@@ -425,21 +445,24 @@ version 1.0.2a [December 30, 1998]
   Added png_get_copyright() and png_get_header_version() functions.
   Revised comments on png_set_progressive_read_fn() in libpng.txt and example.c
   Added information about debugging in libpng.txt and libpng.3 .
-  Changed "ln -sf" to "ln -s -f" in makefile.s2x, makefile.lnx, and makefile.sco.
+  Changed "ln -sf" to "ln -s -f" in makefile.s2x, makefile.lnx, and
+    makefile.sco.
   Removed lines after Dynamic Dependencies" in makefile.aco .
   Revised makefile.dec to make a shared library (Jeremie Petit).
   Removed trailing blanks from all files.
-version 1.0.2a [January 6, 1999]
+
+Version 1.0.2a [January 6, 1999]
   Removed misplaced #endif and #ifdef PNG_NO_EXTERN near the end of png.h
   Added "if" tests to silence complaints about unused png_ptr in png.h and png.c
   Changed "check_if_png" function in example.c to return true (nonzero) if PNG.
   Changed libpng.txt to demonstrate png_sig_cmp() instead of png_check_sig()
     which is obsolete.
 
-version 1.0.3 [January 14, 1999]
+Version 1.0.3 [January 14, 1999]
   Added makefile.hux, for Hewlett Packard HPUX 10.20 and 11.00 (Jim Rice)
   Added a statement of Y2K compliance in png.h, libpng.3, and Y2KINFO.
-version 1.0.3a [August 12, 1999]
+
+Version 1.0.3a [August 12, 1999]
   Added check for PNG_READ_INTERLACE_SUPPORTED in pngread.c; issue a warning
      if an attempt is made to read an interlaced image when it's not supported.
   Added check if png_ptr->trans is defined before freeing it in pngread.c
@@ -466,13 +489,15 @@ version 1.0.3a [August 12, 1999]
   Correct gamma with srgb is 45455 instead of 45000 in pngrutil.c, to be
     consistent with PNG-1.2, and allow variance of 500 before complaining.
   Added assembler code contributed by Intel in file pngvcrd.c and modified
-    makefile.w32 to use it (Nirav Chhatrapati, INTEL Corporation, Gilles Vollant)
+    makefile.w32 to use it (Nirav Chhatrapati, INTEL Corporation,
+    Gilles Vollant)
   Changed "ln -s -f" to "ln -f -s" in the makefiles to make Solaris happy.
   Added some aliases for png_set_expand() in pngrtran.c, namely
     png_set_expand_PLTE(), png_set_expand_depth(), and png_set_expand_tRNS()
     (Greg Roelofs, in "PNG: The Definitive Guide").
   Added makefile.beo for BEOS on X86, contributed by Sander Stok.
-version 1.0.3b [August 26, 1999]
+
+Version 1.0.3b [August 26, 1999]
   Replaced 2147483647L several places with PNG_MAX_UINT macro, defined in png.h
   Changed leading blanks to tabs in all makefiles.
   Define PNG_USE_PNGVCRD in makefile.w32, to get MMX assembler code.
@@ -484,12 +509,13 @@ version 1.0.3b [August 26, 1999]
     negative shift distance, whose results are undefined in the C language.
   Added a check in pngset.c to prevent writing multiple tIME chunks.
   Added a check in pngwrite.c to detect invalid small window_bits sizes.
-version 1.0.3d [September 4, 1999]
+
+Version 1.0.3d [September 4, 1999]
   Fixed type casting of igamma in pngrutil.c
   Added new png_expand functions to scripts/pngdef.pas and pngos2.def
   Added a demo read_user_transform_fn that examines the row filters in pngtest.c
 
-version 1.0.4 [September 24, 1999]
+Version 1.0.4 [September 24, 1999]
   Define PNG_ALWAYS_EXTERN in pngconf.h if __STDC__ is defined
   Delete #define PNG_INTERNAL and include "png.h" from pngasmrd.h
   Made several minor corrections to pngtest.c
@@ -503,24 +529,30 @@ version 1.0.4 [September 24, 1999]
     assembler code) and makefile.vcwin32 (doesn't).
   Added a CPU timing report to pngtest.c (enabled by defining PNGTEST_TIMING)
   Added a copy of pngnow.png to the distribution.
-version 1.0.4a [September 25, 1999]
+
+Version 1.0.4a [September 25, 1999]
   Increase max_pixel_depth in pngrutil.c if a user transform needs it.
   Changed several division operations to right-shifts in pngvcrd.c
-version 1.0.4b [September 30, 1999]
+
+Version 1.0.4b [September 30, 1999]
   Added parentheses in line 3732 of pngvcrd.c
   Added a comment in makefile.linux warning about buggy -O3 in pgcc 2.95.1
-version 1.0.4c [October 1, 1999]
+
+Version 1.0.4c [October 1, 1999]
   Added a "png_check_version" function in png.c and pngtest.c that will generate
     a helpful compiler error if an old png.h is found in the search path.
   Changed type of png_user_transform_depth|channels from int to png_byte.
-version 1.0.4d [October 6, 1999]
+
+Version 1.0.4d [October 6, 1999]
   Changed 0.45 to 0.45455 in png_set_sRGB()
   Removed unused PLTE entries from pngnow.png
   Re-enabled some parts of pngvcrd.c (png_combine_row) that work properly.
-version 1.0.4e [October 10, 1999]
+
+Version 1.0.4e [October 10, 1999]
   Fixed sign error in pngvcrd.c (Greg Roelofs)
   Replaced some instances of memcpy with simple assignments in pngvcrd (GR-P)
-version 1.0.4f [October 15, 1999]
+
+Version 1.0.4f [October 15, 1999]
   Surrounded example.c code with #if 0 .. #endif to prevent people from
     inadvertently trying to compile it.
   Changed png_get_header_version() from a function to a macro in png.h
@@ -528,9 +560,10 @@ version 1.0.4f [October 15, 1999]
   Removed some pointless "ptr = NULL" in pngmem.c
   Added a "contrib" directory containing the source code from Greg's book.
 
-version 1.0.5 [October 15, 1999]
+Version 1.0.5 [October 15, 1999]
   Minor editing of the INSTALL and README files.
-version 1.0.5a [October 23, 1999]
+
+Version 1.0.5a [October 23, 1999]
   Added contrib/pngsuite and contrib/pngminus (Willem van Schaik)
   Fixed a typo in the png_set_sRGB() function call in example.c (Jan Nijtmans)
   Further optimization and bugfix of pngvcrd.c
@@ -538,14 +571,16 @@ version 1.0.5a [October 23, 1999]
     text_ptr structure.  Instead, it makes its own copy.
   Created separate write_end_info_struct in pngtest.c for a more severe test.
   Added code in pngwrite.c to free info_ptr->text[i].key to stop a memory leak.
-version 1.0.5b [November 23, 1999]
+
+Version 1.0.5b [November 23, 1999]
   Moved PNG_FLAG_HAVE_CHUNK_HEADER, PNG_FLAG_BACKGROUND_IS_GRAY and
     PNG_FLAG_WROTE_tIME from flags to mode.
   Added png_write_info_before_PLTE() function.
   Fixed some typecasting in contrib/gregbook/*.c
   Updated scripts/makevms.com and added makevms.com to contrib/gregbook
     and contrib/pngminus (Martin Zinser)
-version 1.0.5c [November 26, 1999]
+
+Version 1.0.5c [November 26, 1999]
   Moved png_get_header_version from png.h to png.c, to accommodate ansi2knr.
   Removed all global arrays (according to PNG_NO_GLOBAL_ARRAYS macro), to
     accommodate making DLL's: Moved usr_png_ver from global variable to function
@@ -558,14 +593,17 @@ version 1.0.5c [November 26, 1999]
   Removed some extraneous "-I" from contrib/pngminus/makefile.std
   Changed the PNG_sRGB_INTENT macros in png.h to be consistent with PNG-1.2.
   Change PNG_SRGB_INTENT to PNG_sRGB_INTENT in libpng.txt and libpng.3
-version 1.0.5d [November 29, 1999]
+
+Version 1.0.5d [November 29, 1999]
   Add type cast (png_const_charp) two places in png.c
   Eliminated pngtypes.h; use macros instead to declare PNG_CHNK arrays.
   Renamed "PNG_GLOBAL_ARRAYS" to "PNG_USE_GLOBAL_ARRAYS" and made available
     to applications a macro "PNG_USE_LOCAL_ARRAYS".
-  #ifdef out all the new declarations when PNG_USE_GLOBAL_ARRAYS is defined.
+  comment out (with #ifdef) all the new declarations when
+    PNG_USE_GLOBAL_ARRAYS is defined.
   Added PNG_EXPORT_VAR macro to accommodate making DLL's.
-version 1.0.5e [November 30, 1999]
+
+Version 1.0.5e [November 30, 1999]
   Added iCCP, iTXt, and sPLT support; added "lang" member to the png_text
     structure; refactored the inflate/deflate support to make adding new chunks
     with trailing compressed parts easier in the future, and added new functions
@@ -586,18 +624,21 @@ version 1.0.5e [November 30, 1999]
     PNG_cHNK_SUPPORTED and combined the three types of PNG_text_SUPPORTED
     macros, leaving the separate macros also available.
   Removed comments on #endifs at the end of many short, non-nested #if-blocks.
-version 1.0.5f [December 6, 1999]
+
+Version 1.0.5f [December 6, 1999]
   Changed makefile.solaris to issue a warning about potential problems when
     the ucb "ld" is in the path ahead of the ccs "ld".
   Removed "- [date]" from the "synopsis" line in libpng.3 and libpngpf.3.
   Added sCAL chunk support (Eric S. Raymond).
-version 1.0.5g [December 7, 1999]
+
+Version 1.0.5g [December 7, 1999]
   Fixed "png_free_spallettes" typo in png.h
   Added code to handle new chunks in pngpread.c
   Moved PNG_CHNK string macro definitions outside of PNG_NO_EXTERN block
   Added "translated_key" to png_text structure and png_write_iTXt().
   Added code in pngwrite.c to work around a newly discovered zlib bug.
-version 1.0.5h [December 10, 1999]
+
+Version 1.0.5h [December 10, 1999]
   NOTE: regarding the note for version 1.0.5e, the following must also
     be included in your code:
         png_text[i].translated_key = NULL;
@@ -605,7 +646,8 @@ version 1.0.5h [December 10, 1999]
   Option to eliminate all floating point support was added.  Some new
     fixed-point functions such as png_set_gAMA_fixed() were added.
   Expanded tabs and removed trailing blanks in source files.
-version 1.0.5i [December 13, 1999]
+
+Version 1.0.5i [December 13, 1999]
   Added some type casts to silence compiler warnings.
   Renamed "png_free_spalette" to "png_free_spalettes" for consistency.
   Removed leading blanks from a #define in pngvcrd.c
@@ -617,7 +659,8 @@ version 1.0.5i [December 13, 1999]
   Added png_free_hIST() function.
   Various patches to fix bugs in the sCAL and integer cHRM processing,
     and to add some convenience macros for use with sCAL.
-version 1.0.5j [December 21, 1999]
+
+Version 1.0.5j [December 21, 1999]
   Changed "unit" parameter of png_write_sCAL from png_byte to int, to work
     around buggy compilers.
   Added new type "png_fixed_point" for integers that hold float*100000 values
@@ -633,7 +676,8 @@ version 1.0.5j [December 21, 1999]
     and to write the iTXt chunk after IDAT if it appears in the end_ptr.
   Added pnggccrd.c, version of pngvcrd.c Intel assembler for gcc (Greg Roelofs)
   Reversed the order of trying to write floating-point and fixed-point gAMA.
-version 1.0.5k [December 27, 1999]
+
+Version 1.0.5k [December 27, 1999]
   Added many parentheses, e.g., "if (a && b & c)" becomes "if (a && (b & c))"
   Added png_handle_as_unknown() function (Glenn)
   Added png_free_chunk_list() function and chunk_list and num_chunk_list members
@@ -644,33 +688,41 @@ version 1.0.5k [December 27, 1999]
   Added png_free_tRNS(); png_set_tRNS() now malloc's its own trans array (ESR).
   Define png_get_int_32 when oFFs chunk is supported as well as when pCAL is.
   Changed type of proflen from png_int_32 to png_uint_32 in png_get_iCCP().
-version 1.0.5l [January 1, 2000]
+
+Version 1.0.5l [January 1, 2000]
   Added functions png_set_read_user_chunk_fn() and png_get_user_chunk_ptr()
     for setting a callback function to handle unknown chunks and for
     retrieving the associated user pointer (Glenn).
-version 1.0.5m [January 7, 2000]
+
+Version 1.0.5m [January 7, 2000]
   Added high-level functions png_read_png(), png_write_png(), png_free_pixels().
-version 1.0.5n [January 9, 2000]
+
+Version 1.0.5n [January 9, 2000]
   Added png_free_PLTE() function, and modified png_set_PLTE() to malloc its
     own memory for info_ptr->palette.  This makes it safe for the calling
     application to free its copy of the palette any time after it calls
     png_set_PLTE().
-version 1.0.5o [January 20, 2000]
+
+Version 1.0.5o [January 20, 2000]
   Cosmetic changes only (removed some trailing blanks and TABs)
-version 1.0.5p [January 31, 2000]
+
+Version 1.0.5p [January 31, 2000]
   Renamed pngdll.mak to makefile.bd32
   Cosmetic changes in pngtest.c
-version 1.0.5q [February 5, 2000]
+
+Version 1.0.5q [February 5, 2000]
   Relocated the makefile.solaris warning about PATH problems.
   Fixed pngvcrd.c bug by pushing/popping registers in mmxsupport (Bruce Oberg)
   Revised makefile.gcmmx
   Added PNG_SETJMP_SUPPORTED, PNG_SETJMP_NOT_SUPPORTED, and PNG_ABORT() macros
-version 1.0.5r [February 7, 2000]
+
+Version 1.0.5r [February 7, 2000]
   Removed superfluous prototype for png_get_itxt from png.h
   Fixed a bug in pngrtran.c that improperly expanded the background color.
   Return *num_text=0 from png_get_text() when appropriate, and fix documentation
     of png_get_text() in libpng.txt/libpng.3.
-version 1.0.5s [February 18, 2000]
+
+Version 1.0.5s [February 18, 2000]
   Added "png_jmp_env()" macro to pngconf.h, to help people migrate to the
     new error handler that's planned for the next libpng release, and changed
     example.c, pngtest.c, and contrib programs to use this macro.
@@ -689,7 +741,8 @@ version 1.0.5s [February 18, 2000]
   Added png_set_rows() and png_get_rows(), for use with png_read|write_png().
   Modified png_read_png() to allocate info_ptr->row_pointers only if it
     hasn't already been allocated.
-version 1.0.5t [March 4, 2000]
+
+Version 1.0.5t [March 4, 2000]
   Changed png_jmp_env() migration aiding macro to png_jmpbuf().
   Fixed "interlace" typo (should be "interlaced") in contrib/gregbook/read2-x.c
   Fixed bug with use of PNG_BEFORE_IHDR bit in png_ptr->mode, introduced when
@@ -698,13 +751,15 @@ version 1.0.5t [March 4, 2000]
     a 24-bit visual if one is available, and to allow abbreviated options.
   Files in contrib/pngminus were revised to use the png_jmpbuf() macro.
   Removed spaces in makefile.linux and makefile.gcmmx, introduced in 1.0.5s
-version 1.0.5u [March 5, 2000]
+
+Version 1.0.5u [March 5, 2000]
   Simplified the code that detects old png.h in png.c and pngtest.c
   Renamed png_spalette (_p, _pp) to png_sPLT_t (_tp, _tpp)
   Increased precision of rgb_to_gray calculations from 8 to 15 bits and
     added png_set_rgb_to_gray_fixed() function.
   Added makefile.bc32 (32-bit Borland C++, C mode)
-version 1.0.5v [March 11, 2000]
+
+Version 1.0.5v [March 11, 2000]
   Added some parentheses to the png_jmpbuf macro definition.
   Updated references to the zlib home page, which has moved to freesoftware.com.
   Corrected bugs in documentation regarding png_read_row() and png_write_row().
@@ -712,10 +767,11 @@ version 1.0.5v [March 11, 2000]
   Renamed makefile.borland,turboc3 back to makefile.bor,tc3 as in version 1.0.3,
     revised borland makefiles; added makefile.ibmvac3 and makefile.gcc (Cosmin)
 
-version 1.0.6 [March 20, 2000]
+Version 1.0.6 [March 20, 2000]
   Minor revisions of makefile.bor, libpng.txt, and gregbook/rpng2-win.c
   Added makefile.sggcc (SGI IRIX with gcc)
-version 1.0.6d [April 7, 2000]
+
+Version 1.0.6d [April 7, 2000]
   Changed sprintf() to strcpy() in png_write_sCAL_s() to work without STDIO
   Added data_length parameter to png_decompress_chunk() function
   Revised documentation to remove reference to abandoned png_free_chnk functions
@@ -724,7 +780,8 @@ version 1.0.6d [April 7, 2000]
   Renamed makefile.ibmvac3 to makefile.ibmc, added libpng.icc IBM project file
   Added a check for info_ptr->free_me&PNG_FREE_TEXT when freeing text in png.c
   Simplify png_sig_bytes() function to remove use of non-ISO-C strdup().
-version 1.0.6e [April 9, 2000]
+
+Version 1.0.6e [April 9, 2000]
   Added png_data_freer() function.
   In the code that checks for over-length tRNS chunks, added check of
     info_ptr->num_trans as well as png_ptr->num_trans (Matthias Benckmann)
@@ -735,25 +792,29 @@ version 1.0.6e [April 9, 2000]
     is defined.
   Changed several instances of PNG_NO_CONSOLE_ID to PNG_NO_STDIO in pngrutil.c
     and mentioned the purposes of the two macros in libpng.txt/libpng.3.
-version 1.0.6f [April 14, 2000]
+
+Version 1.0.6f [April 14, 2000]
   Revised png_set_iCCP() and png_set_rows() to avoid prematurely freeing data.
   Add checks in png_set_text() for NULL members of the input text structure.
   Revised libpng.txt/libpng.3.
-  Removed superfluous prototype for png_set_itxt from png.h
+  Removed superfluous prototype for png_set_iTXt from png.h
   Removed "else" from pngread.c, after png_error(), and changed "0" to "length".
   Changed several png_errors about malformed ancillary chunks to png_warnings.
-version 1.0.6g [April 24, 2000]
+
+Version 1.0.6g [April 24, 2000]
   Added png_pass-* arrays to pnggccrd.c when PNG_USE_LOCAL_ARRAYS is defined.
   Relocated paragraph about png_set_background() in libpng.3/libpng.txt
     and other revisions (Matthias Benckmann)
   Relocated info_ptr->free_me, png_ptr->free_me, and other info_ptr and
     png_ptr members to restore binary compatibility with libpng-1.0.5
     (breaks compatibility with libpng-1.0.6).
-version 1.0.6h [April 24, 2000]
+
+Version 1.0.6h [April 24, 2000]
   Changed shared library so-number pattern from 2.x.y.z to xy.z (this builds
     libpng.so.10 & libpng.so.10.6h instead of libpng.so.2 & libpng.so.2.1.0.6h)
     This is a temporary change for test purposes.
-version 1.0.6i [May 2, 2000]
+
+Version 1.0.6i [May 2, 2000]
   Rearranged some members at the end of png_info and png_struct, to put
     unknown_chunks_num and free_me within the original size of the png_structs
     and free_me, png_read_user_fn, and png_free_fn within the original png_info,
@@ -778,11 +839,13 @@ version 1.0.6i [May 2, 2000]
     generate a libpng error if the modes aren't set and PNG_LEGACY_SUPPORTED
     was not defined.
   Added makefile.intel and updated makefile.watcom (Pawel Mrochen)
-version 1.0.6j [May 3, 2000]
+
+Version 1.0.6j [May 3, 2000]
   Overloaded png_read_init() and png_write_init() with macros that convert
     calls to png_read_init_2() or png_write_init_2() that check the version
     and structure sizes.
-version 1.0.7beta11 [May 7, 2000]
+
+Version 1.0.7beta11 [May 7, 2000]
   Removed the new PNG_CREATED_READ_STRUCT and PNG_CREATED_WRITE_STRUCT modes
     which are no longer used.
   Eliminated the three new members of png_text when PNG_LEGACY_SUPPORTED is
@@ -793,7 +856,8 @@ version 1.0.7beta11 [May 7, 2000]
   Added PNGAPI macro, and added it to the definitions of all exported functions.
   Relocated version macro definitions ahead of the includes of zlib.h and
     pngconf.h in png.h.
-version 1.0.7beta12 [May 12, 2000]
+
+Version 1.0.7beta12 [May 12, 2000]
   Revised pngset.c to avoid a problem with expanding the png_debug macro.
   Deleted some extraneous defines from pngconf.h
   Made PNG_NO_CONSOLE_IO the default condition when PNG_BUILD_DLL is defined.
@@ -801,7 +865,8 @@ version 1.0.7beta12 [May 12, 2000]
   Added png_access_version_number() function.
   Check for mask&PNG_FREE_CHNK (for TEXT, SCAL, PCAL) in png_free_data().
   Expanded libpng.3/libpng.txt information about png_data_freer().
-version 1.0.7beta14 [May 17, 2000] (beta13 was not published)
+
+Version 1.0.7beta14 [May 17, 2000] (beta13 was not published)
   Changed pnggccrd.c and pngvcrd.c to handle bad adaptive filter types as
     warnings instead of errors, as pngrutil.c does.
   Set the PNG_INFO_IDAT valid flag in png_set_rows() so png_write_png()
@@ -813,7 +878,8 @@ version 1.0.7beta14 [May 17, 2000] (beta13 was not published)
   Removed info_ptr->valid tests from png_free_data(), as in version 1.0.5.
   Added png_set_invalid() function.
   Fixed incorrect illustrations of png_destroy_write_struct() in example.c.
-version 1.0.7beta15 [May 30, 2000]
+
+Version 1.0.7beta15 [May 30, 2000]
   Revised the deliberately erroneous Linux setjmp code in pngconf.h to produce
     fewer error messages.
   Rearranged checks for Z_OK to check the most likely path first in pngpread.c
@@ -825,9 +891,11 @@ version 1.0.7beta15 [May 30, 2000]
   Fixed some bugs in the unused PNG_INCH_CONVERSIONS functions in pngget.c
   Set each pointer to NULL after freeing it in png_free_data().
   Worked around a problem in pngconf.h; AIX's strings.h defines an "index"
-    macro that conflicts with libpng's png_color_16.index. (Dimitri Papadapoulos)
+    macro that conflicts with libpng's png_color_16.index. (Dimitri
+    Papadapoulos)
   Added "msvc" directory with MSVC++ project files (Simon-Pierre Cadieux).
-version 1.0.7beta16 [June 4, 2000]
+
+Version 1.0.7beta16 [June 4, 2000]
   Revised the workaround of AIX string.h "index" bug.
   Added a check for overlength PLTE chunk in pngrutil.c.
   Added PNG_NO_POINTER_INDEXING macro to use array-indexing instead of pointer
@@ -837,23 +905,27 @@ version 1.0.7beta16 [June 4, 2000]
   Added PNG_USE_DLL macro.
   Revised the copyright/disclaimer/license notice.
   Added contrib/msvctest directory
-version 1.0.7rc1 [June 9, 2000]
+
+Version 1.0.7rc1 [June 9, 2000]
   Corrected the definition of PNG_TRANSFORM_INVERT_ALPHA  (0x0400 not 0x0200)
   Added contrib/visupng directory (Willem van Schaik)
-version 1.0.7beta18 [June 23, 2000]
+
+Version 1.0.7beta18 [June 23, 2000]
   Revised PNGAPI definition, and pngvcrd.c to work with __GCC__
     and do not redefine PNGAPI if it is passed in via a compiler directive.
   Revised visupng/PngFile.c to remove returns from within the Try block.
   Removed leading underscores from "_PNG_H" and "_PNG_SAVE_BSD_SOURCE" macros.
   Updated contrib/visupng/cexcept.h to version 1.0.0.
   Fixed bugs in pngwrite.c and pngwutil.c that prevented writing iCCP chunks.
-version 1.0.7rc2 [June 28, 2000]
+
+Version 1.0.7rc2 [June 28, 2000]
   Updated license to include disclaimers required by UCITA.
   Fixed "DJBPP" typo in pnggccrd.c introduced in beta18.
 
-version 1.0.7 [July 1, 2000]
+Version 1.0.7 [July 1, 2000]
   Revised the definition of "trans_values" in libpng.3/libpng.txt
-version 1.0.8beta1 [July 8, 2000]
+
+Version 1.0.8beta1 [July 8, 2000]
   Added png_free(png_ptr, key) two places in pngpread.c to stop memory leaks.
   Changed PNG_NO_STDIO to PNG_NO_CONSOLE_IO, several places in pngrutil.c and
      pngwutil.c.
@@ -861,25 +933,30 @@ version 1.0.8beta1 [July 8, 2000]
   Removed unused "#include <assert.h>" from png.c
   Added WindowsCE support.
   Revised pnggccrd.c to work with gcc-2.95.2 and in the Cygwin environment.
-version 1.0.8beta2 [July 10, 2000]
+
+Version 1.0.8beta2 [July 10, 2000]
   Added project files to the wince directory and made further revisions
      of pngtest.c, pngrio.c, and pngwio.c in support of WindowsCE.
-version 1.0.8beta3 [July 11, 2000]
+
+Version 1.0.8beta3 [July 11, 2000]
   Only set the PNG_FLAG_FREE_TRNS or PNG_FREE_TRNS flag in png_handle_tRNS()
      for indexed-color input files to avoid potential double-freeing trans array
      under some unusual conditions; problem was introduced in version 1.0.6f.
   Further revisions to pngtest.c and files in the wince subdirectory.
-version 1.0.8beta4 [July 14, 2000]
+
+Version 1.0.8beta4 [July 14, 2000]
   Added the files pngbar.png and pngbar.jpg to the distribution.
   Added makefile.cygwin, and cygwin support in pngconf.h
   Added PNG_NO_ZALLOC_ZERO macro (makes png_zalloc skip zeroing memory)
-version 1.0.8rc1 [July 16, 2000]
+
+Version 1.0.8rc1 [July 16, 2000]
   Revised png_debug() macros and statements to eliminate compiler warnings.
 
-version 1.0.8 [July 24, 2000]
+Version 1.0.8 [July 24, 2000]
   Added png_flush() in pngwrite.c, after png_write_IEND().
   Updated makefile.hpux to build a shared library.
-version 1.0.9beta1 [November 10, 2000]
+
+Version 1.0.9beta1 [November 10, 2000]
   Fixed typo in scripts/makefile.hpux
   Updated makevms.com in scripts and contrib/* and contrib/* (Martin Zinser)
   Fixed seqence-point bug in contrib/pngminus/png2pnm (Martin Zinser)
@@ -898,59 +975,72 @@ version 1.0.9beta1 [November 10, 2000]
   Revised makefile.cygwin
   Fixed bugs in iCCP support in pngrutil.c and pngwutil.c.
   Replaced png_set_empty_plte_permitted() with png_permit_mng_features().
-version 1.0.9beta2 [November 19, 2000]
+
+Version 1.0.9beta2 [November 19, 2000]
   Renamed the "dll" subdirectory "projects".
   Added borland project files to "projects" subdirectory.
   Set VS_FF_PRERELEASE and VS_FF_PATCHED flags in msvc/png.rc when appropriate.
   Add error message in png_set_compression_buffer_size() when malloc fails.
-version 1.0.9beta3 [November 23, 2000]
+
+Version 1.0.9beta3 [November 23, 2000]
   Revised PNG_LIBPNG_BUILD_TYPE macro in png.h, used in the msvc project.
   Removed the png_flush() in pngwrite.c that crashes some applications
     that don't set png_output_flush_fn.
   Added makefile.macosx and makefile.aix to scripts directory.
-version 1.0.9beta4 [December 1, 2000]
+
+Version 1.0.9beta4 [December 1, 2000]
   Change png_chunk_warning to png_warning in png_check_keyword().
   Increased the first part of msg buffer from 16 to 18 in png_chunk_error().
-version 1.0.9beta5 [December 15, 2000]
+
+Version 1.0.9beta5 [December 15, 2000]
   Added support for filter method 64 (for PNG datastreams embedded in MNG).
-version 1.0.9beta6 [December 18, 2000]
+
+Version 1.0.9beta6 [December 18, 2000]
   Revised png_set_filter() to accept filter method 64 when appropriate.
   Added new PNG_HAVE_PNG_SIGNATURE bit to png_ptr->mode and use it to
     help prevent applications from using MNG features in PNG datastreams.
   Added png_permit_mng_features() function.
   Revised libpng.3/libpng.txt.  Changed "filter type" to "filter method".
-version 1.0.9rc1 [December 23, 2000]
+
+Version 1.0.9rc1 [December 23, 2000]
   Revised test for PNG_HAVE_PNG_SIGNATURE in pngrutil.c
   Fixed error handling of unknown compression type in png_decompress_chunk().
   In pngconf.h, define __cdecl when _MSC_VER is defined.
-version 1.0.9beta7 [December 28, 2000]
+
+Version 1.0.9beta7 [December 28, 2000]
   Changed PNG_TEXT_COMPRESSION_zTXt to PNG_COMPRESSION_TYPE_BASE several places.
   Revised memory management in png_set_hIST and png_handle_hIST in a backward
     compatible manner.  PLTE and tRNS were revised similarly.
   Revised the iCCP chunk reader to ignore trailing garbage.
-version 1.0.9beta8 [January 12, 2001]
+
+Version 1.0.9beta8 [January 12, 2001]
   Moved pngasmrd.h into pngconf.h.
   Improved handling of out-of-spec garbage iCCP chunks generated by PhotoShop.
-version 1.0.9beta9 [January 15, 2001]
+
+Version 1.0.9beta9 [January 15, 2001]
   Added png_set_invalid, png_permit_mng_features, and png_mmx_supported to
     wince and msvc project module definition files.
   Minor revision of makefile.cygwin.
   Fixed bug with progressive reading of narrow interlaced images in pngpread.c
-version 1.0.9beta10 [January 16, 2001]
+
+Version 1.0.9beta10 [January 16, 2001]
   Do not typedef png_FILE_p in pngconf.h when PNG_NO_STDIO is defined.
   Fixed "png_mmx_supported" typo in project definition files.
-version 1.0.9beta11 [January 19, 2001]
+
+Version 1.0.9beta11 [January 19, 2001]
   Updated makefile.sgi to make shared library.
   Removed png_mmx_support() function and disabled PNG_MNG_FEATURES_SUPPORTED
     by default, for the benefit of DLL forward compatibility.  These will
     be re-enabled in version 1.2.0.
-version 1.0.9rc2 [January 22, 2001]
+
+Version 1.0.9rc2 [January 22, 2001]
   Revised cygwin support.
 
-version 1.0.9 [January 31, 2001]
+Version 1.0.9 [January 31, 2001]
   Added check of cygwin's ALL_STATIC in pngconf.h
   Added "-nommx" parameter to contrib/gregbook/rpng2-win and rpng2-x demos.
-version 1.0.10beta1 [March 14, 2001]
+
+Version 1.0.10beta1 [March 14, 2001]
   Revised makefile.dec, makefile.sgi, and makefile.sggcc; added makefile.hpgcc.
   Reformatted libpng.3 to eliminate bad line breaks.
   Added checks for _mmx_supported in the read_filter_row function of pnggccrd.c
@@ -963,33 +1053,39 @@ version 1.0.10beta1 [March 14, 2001]
   Fixed bugs in png_combine_row() in pnggccrd.c and pngvcrd.c (C version)
   Added warnings when retrieving or setting gamma=0.
   Increased the first part of msg buffer from 16 to 18 in png_chunk_warning().
-version 1.0.10rc1 [March 23, 2001]
+
+Version 1.0.10rc1 [March 23, 2001]
   Changed all instances of memcpy, strcpy, and strlen to png_memcpy, png_strcpy,
     and png_strlen.
   Revised png_mmx_supported() function in pnggccrd.c to return proper value.
   Fixed bug in progressive reading (pngpread.c) with small images (height < 8).
 
-version 1.0.10 [March 30, 2001]
+Version 1.0.10 [March 30, 2001]
   Deleted extraneous space (introduced in 1.0.9) from line 42 of makefile.cygwin
   Added beos project files (Chris Herborth)
-version 1.0.11beta1 [April 3, 2001]
+
+Version 1.0.11beta1 [April 3, 2001]
   Added type casts on several png_malloc() calls (Dimitri Papadapoulos).
   Removed a no-longer needed AIX work-around from pngconf.h
   Changed several "//" single-line comments to C-style in pnggccrd.c
-version 1.0.11beta2 [April 11, 2001]
+
+Version 1.0.11beta2 [April 11, 2001]
   Removed PNGAPI from several functions whose prototypes did not have PNGAPI.
   Updated scripts/pngos2.def
-version 1.0.11beta3 [April 14, 2001]
+
+Version 1.0.11beta3 [April 14, 2001]
   Added checking the results of many instances of png_malloc() for NULL
-version 1.0.11beta4 [April 20, 2001]
+
+Version 1.0.11beta4 [April 20, 2001]
   Undid the changes from version 1.0.11beta3.  Added a check for NULL return
     from user's malloc_fn().
   Removed some useless type casts of the NULL pointer.
   Added makefile.netbsd
 
-version 1.0.11 [April 27, 2001]
+Version 1.0.11 [April 27, 2001]
   Revised makefile.netbsd
-version 1.0.12beta1 [May 14, 2001]
+
+Version 1.0.12beta1 [May 14, 2001]
   Test for Windows platform in pngconf.h when including malloc.h (Emmanuel Blot)
   Updated makefile.cygwin and handling of Cygwin's ALL_STATIC in pngconf.h
   Added some never-to-be-executed code in pnggccrd.c to quiet compiler warnings.
@@ -997,21 +1093,25 @@ version 1.0.12beta1 [May 14, 2001]
     libpng will reallocate the png_struct and info_struct if they are too small.
     This retains future binary compatibility for old applications written for
     libpng-0.88 and earlier.
-version 1.2.0beta1 [May 6, 2001]
+
+Version 1.2.0beta1 [May 6, 2001]
   Bumped DLLNUM to 2.
   Re-enabled PNG_MNG_FEATURES_SUPPORTED and enabled PNG_ASSEMBLER_CODE_SUPPORTED
     by default.
   Added runtime selection of MMX features.
   Added png_set_strip_error_numbers function and related macros.
-version 1.2.0beta2 [May 7, 2001]
+
+Version 1.2.0beta2 [May 7, 2001]
   Finished merging 1.2.0beta1 with version 1.0.11
   Added a check for attempts to read or write PLTE in grayscale PNG datastreams.
-version 1.2.0beta3 [May 17, 2001]
+
+Version 1.2.0beta3 [May 17, 2001]
   Enabled user memory function by default.
   Modified png_create_struct so it passes user mem_ptr to user memory allocator.
   Increased png_mng_features flag from png_byte to png_uint_32.
   Bumped shared-library (so-number) and dll-number to 3.
-version 1.2.0beta4 [June 23, 2001]
+
+Version 1.2.0beta4 [June 23, 2001]
   Check for missing profile length field in iCCP chunk and free chunk_data
      in case of truncated iCCP chunk.
   Bumped shared-library number to 3 in makefile.sgi and makefile.sggcc
@@ -1025,7 +1125,8 @@ version 1.2.0beta4 [June 23, 2001]
      of png_write_oFFS width and height from png_uint_32 to png_int_32.
   Updated example.c
   Revised prototypes for png_debug_malloc and png_debug_free in pngtest.c
-version 1.2.0beta5 [August 8, 2001]
+
+Version 1.2.0beta5 [August 8, 2001]
   Revised contrib/gregbook
   Revised makefile.gcmmx
   Revised pnggccrd.c to conditionally compile some thread-unsafe code only
@@ -1036,27 +1137,32 @@ version 1.2.0beta5 [August 8, 2001]
   Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c
   Removed restriction that do_invert_mono only operate on 1-bit opaque files
 
-version 1.2.0 [September 1, 2001]
+Version 1.2.0 [September 1, 2001]
   Changed a png_warning() to png_debug() in pnggccrd.c
   Fixed contrib/gregbook/rpng-x.c, rpng2-x.c to avoid crash with XFreeGC().
-version 1.2.1beta1 [October 19, 2001]
+
+Version 1.2.1beta1 [October 19, 2001]
   Revised makefile.std in contrib/pngminus
   Include background_1 in png_struct regardless of gamma support.
   Revised makefile.netbsd and makefile.macosx, added makefile.darwin.
   Revised example.c to provide more details about using row_callback().
-version 1.2.1beta2 [October 25, 2001]
+
+Version 1.2.1beta2 [October 25, 2001]
   Added type cast to each NULL appearing in a function call, except for
     WINCE functions.
   Added makefile.so9.
-version 1.2.1beta3 [October 27, 2001]
+
+Version 1.2.1beta3 [October 27, 2001]
   Removed type casts from all NULLs.
   Simplified png_create_struct_2().
-version 1.2.1beta4 [November 7, 2001]
+
+Version 1.2.1beta4 [November 7, 2001]
   Revised png_create_info_struct() and png_creat_struct_2().
   Added error message if png_write_info() was omitted.
   Type cast NULLs appearing in function calls when _NO_PROTO or
     PNG_TYPECAST_NULL is defined.
-version 1.2.1rc1 [November 24, 2001]
+
+Version 1.2.1rc1 [November 24, 2001]
   Type cast NULLs appearing in function calls except when PNG_NO_TYPECAST_NULL
     is defined.
   Changed typecast of "size" argument to png_size_t in pngmem.c calls to
@@ -1065,14 +1171,16 @@ version 1.2.1rc1 [November 24, 2001]
   Updated makefile.sgi to recognize LIBPATH and INCPATH.
   Updated various makefiles so "make clean" does not remove previous major
     version of the shared library.
-version 1.2.1rc2 [December 4, 2001]
+
+Version 1.2.1rc2 [December 4, 2001]
   Always allocate 256-entry internal palette, hist, and trans arrays, to
     avoid out-of-bounds memory reference caused by invalid PNG datastreams.
   Added a check for prefix_length > data_length in iCCP chunk handler.
 
-version 1.2.1 [December 7, 2001]
+Version 1.2.1 [December 7, 2001]
   None.
-version 1.2.2beta1 [February 22, 2002]
+
+Version 1.2.2beta1 [February 22, 2002]
   Fixed a bug with reading the length of iCCP profiles (Larry Reeves).
   Revised makefile.linux, makefile.gcmmx, and makefile.sgi to generate
     libpng.a, libpng12.so (not libpng.so.3), and libpng12/png.h
@@ -1082,13 +1190,15 @@ version 1.2.2beta1 [February 22, 2002]
   Revised calls to png_create_read_struct() and png_create_write_struct()
     for simpler debugging.
   Revised png_zalloc() so zlib handles errors (uses PNG_FLAG_MALLOC_NULL_MEM_OK)
-version 1.2.2beta2 [February 23, 2002]
+
+Version 1.2.2beta2 [February 23, 2002]
   Check chunk_length and idat_size for invalid (over PNG_MAX_UINT) lengths.
   Check for invalid image dimensions in png_get_IHDR.
   Added missing "fi;" in the install target of the SGI makefiles.
   Added install-static to all makefiles that make shared libraries.
   Always do gamma compensation when image is partially transparent.
-version 1.2.2beta3 [March 7, 2002]
+
+Version 1.2.2beta3 [March 7, 2002]
   Compute background.gray and background_1.gray even when color_type is RGB
     in case image gets reduced to gray later.
   Modified shared-library makefiles to install pkgconfig/libpngNN.pc.
@@ -1098,12 +1208,14 @@ version 1.2.2beta3 [March 7, 2002]
   Added install-shared target to all makefiles that make shared libraries.
   Stopped a double free of palette, hist, and trans when not using free_me.
   Added makefile.32sunu for Sun Ultra 32 and makefile.64sunu for Sun Ultra 64.
-version 1.2.2beta4 [March 8, 2002]
+
+Version 1.2.2beta4 [March 8, 2002]
   Compute background.gray and background_1.gray even when color_type is RGB
     in case image gets reduced to gray later (Jason Summers).
   Relocated a misplaced /bin/rm in the "install-shared" makefile targets
   Added PNG_1_0_X macro which can be used to build a 1.0.x-compatible library.
-version 1.2.2beta5 [March 26, 2002]
+
+Version 1.2.2beta5 [March 26, 2002]
   Added missing PNGAPI to several function definitions.
   Check for invalid bit_depth or color_type in png_get_IHDR(), and
     check for missing PLTE or IHDR in png_push_read_chunk() (Matthias Clasen).
@@ -1112,33 +1224,45 @@ version 1.2.2beta5 [March 26, 2002]
   Changed "()" to "{}" in scripts/libpng.pc.in.
   Revised makefiles to put png.h and pngconf.h only in $prefix/include/libpngNN
   Revised makefiles to make symlink to libpng.so.NN in addition to libpngNN.so
-version 1.2.2beta6 [March 31, 2002]
-version 1.0.13beta1 [March 31, 2002]
+
+Version 1.2.2beta6 [March 31, 2002]
+
+Version 1.0.13beta1 [March 31, 2002]
   Prevent png_zalloc() from trying to memset memory that it failed to acquire.
   Add typecasts of PNG_MAX_UINT in pngset_cHRM_fixed() (Matt Holgate).
   Ensure that the right function (user or default) is used to free the
     png_struct after an error in png_create_read_struct_2().
-version 1.2.2rc1 [April 7, 2002]
-version 1.0.13rc1 [April 7, 2002]
+
+Version 1.2.2rc1 [April 7, 2002]
+
+Version 1.0.13rc1 [April 7, 2002]
   Save the ebx register in pnggccrd.c (Sami Farin)
   Add "mem_ptr = png_ptr->mem_ptr" in png_destroy_write_struct() (Paul Gardner).
   Updated makefiles to put headers in include/libpng and remove old include/*.h.
 
-version 1.2.2 [April 15, 2002]
-version 1.0.13 [April 15, 2002]
+Version 1.2.2 [April 15, 2002]
+
+Version 1.0.13 [April 15, 2002]
   Revised description of png_set_filter() in libpng.3/libpng.txt.
   Revised makefile.netbsd and added makefile.neNNbsd and makefile.freebsd
-version 1.0.13patch01 [April 17, 2002]
-version 1.2.2patch01 [April 17, 2002]
-  Changed ${PNGMAJ}.${PNGVER} bug to ${PNGVER} in makefile.sgi and makefile.sggcc
-  Fixed VER -> PNGVER typo in makefile.macosx and added install-static to install
+
+Version 1.0.13patch01 [April 17, 2002]
+
+Version 1.2.2patch01 [April 17, 2002]
+  Changed ${PNGMAJ}.${PNGVER} bug to ${PNGVER} in makefile.sgi and
+    makefile.sggcc
+  Fixed VER -> PNGVER typo in makefile.macosx and added install-static to
+    install
   Added install: target to makefile.32sunu and makefile.64sunu
-version 1.0.13patch03 [April 18, 2002]
-version 1.2.2patch03 [April 18, 2002]
+
+Version 1.0.13patch03 [April 18, 2002]
+
+Version 1.2.2patch03 [April 18, 2002]
   Revised 15 makefiles to link libpng.a to libpngNN.a and the include libpng
   subdirectory to libpngNN subdirectory without the full pathname.
   Moved generation of libpng.pc from "install" to "all" in 15 makefiles.
-version 1.2.3rc1 [April 28, 2002]
+
+Version 1.2.3rc1 [April 28, 2002]
   Added install-man target to 15 makefiles (Dimitri Papadopolous-Orfanos).
   Added $(DESTDIR) feature to 24 makefiles (Tim Mooney)
   Fixed bug with $prefix, should be $(prefix) in makefile.hpux.
@@ -1150,70 +1274,83 @@ version 1.2.3rc1 [April 28, 2002]
     to put one in their application.
   Restored png_zalloc() and png_zfree() prototypes to version 1.2.1 and
     removed them from module definition files.
-version 1.2.3rc2 [May 1, 2002]
+
+Version 1.2.3rc2 [May 1, 2002]
   Fixed bug in reporting number of channels in pngget.c and pngset.c,
     that was introduced in version 1.2.2beta5.
   Exported png_zalloc(), png_zfree(), png_default_read(), png_default_write(),
     png_default_flush(), and png_push_fill_buffer() and included them in
     module definition files.
   Added "libpng.pc" dependency to the "install-shared" target in 15 makefiles.
-version 1.2.3rc3 [May 1, 2002]
+
+Version 1.2.3rc3 [May 1, 2002]
   Revised prototype for png_default_flush()
   Remove old libpng.pc and libpngNN.pc before installing new ones.
-version 1.2.3rc4 [May 2, 2002]
+
+Version 1.2.3rc4 [May 2, 2002]
   Typos in *.def files (png_default_read|write -> png_default_read|write_data)
   In makefiles, changed rm libpng.NN.pc to rm libpngNN.pc
-  Added libpng-config and libpngNN-config and modified makefiles to install them.
+  Added libpng-config and libpngNN-config and modified makefiles to install
+    them.
   Changed $(MANPATH) to $(DESTDIR)$(MANPATH) in makefiles
   Added "Win32 DLL VB" configuration to projects/msvc/libpng.dsp
-version 1.2.3rc5 [May 11, 2002]
+
+Version 1.2.3rc5 [May 11, 2002]
   Changed "error" and "message" in prototypes to "error_message" and
     "warning_message" to avoid namespace conflict.
   Revised 15 makefiles to build libpng-config from libpng-config-*.in
   Once more restored png_zalloc and png_zfree to regular nonexported form.
   Restored png_default_read|write_data, png_default_flush, png_read_fill_buffer
-    to nonexported form, but with PNGAPI, and removed them from module def files.
-version 1.2.3rc6 [May 14, 2002]
+    to nonexported form, but with PNGAPI, and removed them from module def
+    files.
+
+Version 1.2.3rc6 [May 14, 2002]
   Removed "PNGAPI" from png_zalloc() and png_zfree() in png.c
   Changed "Gz" to "Gd" in projects/msvc/libpng.dsp and zlib.dsp.
   Removed leftover libpng-config "sed" script from four makefiles.
   Revised libpng-config creating script in 16 makefiles.
 
-version 1.2.3 [May 22, 2002]
+Version 1.2.3 [May 22, 2002]
   Revised libpng-config target in makefile.cygwin.
   Removed description of png_set_mem_fn() from documentation.
   Revised makefile.freebsd.
   Minor cosmetic changes to 15 makefiles, e.g., $(DI) = $(DESTDIR)/$(INCDIR).
   Revised projects/msvc/README.txt
   Changed -lpng to -lpngNN in LDFLAGS in several makefiles.
-version 1.2.4beta1 [May 24, 2002]
+
+Version 1.2.4beta1 [May 24, 2002]
   Added libpng.pc and libpng-config to "all:" target in 16 makefiles.
   Fixed bug in 16 makefiles: $(DESTDIR)/$(LIBPATH) to $(DESTDIR)$(LIBPATH)
   Added missing "\" before closing double quote in makefile.gcmmx.
   Plugged various memory leaks; added png_malloc_warn() and png_set_text_2()
     functions.
-version 1.2.4beta2 [June 25, 2002]
+
+Version 1.2.4beta2 [June 25, 2002]
   Plugged memory leak of png_ptr->current_text (Matt Holgate).
   Check for buffer overflow before reading CRC in pngpread.c (Warwick Allison)
   Added -soname to the loader flags in makefile.dec, makefile.sgi, and
     makefile.sggcc.
   Added "test-installed" target to makefile.linux, makefile.gcmmx,
     makefile.sgi, and makefile.sggcc.
-version 1.2.4beta3 [June 28, 2002]
+
+Version 1.2.4beta3 [June 28, 2002]
   Plugged memory leak of row_buf in pngtest.c when there is a png_error().
   Detect buffer overflow in pngpread.c when IDAT is corrupted with extra data.
   Added "test-installed" target to makefile.32sunu, makefile.64sunu,
-    makefile.beos, makefile.darwin, makefile.dec, makefile.macosx, 
+    makefile.beos, makefile.darwin, makefile.dec, makefile.macosx,
     makefile.solaris, makefile.hpux, makefile.hpgcc, and makefile.so9.
-version 1.2.4rc1 and 1.0.14rc1 [July 2, 2002]
+
+Version 1.2.4rc1 and 1.0.14rc1 [July 2, 2002]
   Added "test-installed" target to makefile.cygwin and makefile.sco.
   Revised pnggccrd.c to be able to back out version 1.0.x via PNG_1_0_X macro.
 
-version 1.2.4 and 1.0.14 [July 8, 2002]
+Version 1.2.4 and 1.0.14 [July 8, 2002]
   Changed png_warning() to png_error() when width is too large to process.
-version 1.2.4patch01 [July 20, 2002]
+
+Version 1.2.4patch01 [July 20, 2002]
   Revised makefile.cygwin to use DLL number 12 instead of 13.
-version 1.2.5beta1 [August 6, 2002]
+
+Version 1.2.5beta1 [August 6, 2002]
   Added code to contrib/gregbook/readpng2.c to ignore unused chunks.
   Replaced toucan.png in contrib/gregbook (it has been corrupt since 1.0.11)
   Removed some stray *.o files from contrib/gregbook.
@@ -1222,36 +1359,43 @@ version 1.2.5beta1 [August 6, 2002]
   Prevent png_ptr->pass from exceeding 7 in png_push_finish_row().
   Updated makefile.hpgcc
   Updated png.c and pnggccrd.c handling of return from png_mmx_support()
-version 1.2.5beta2 [August 15, 2002]
+
+Version 1.2.5beta2 [August 15, 2002]
   Only issue png_warning() about "Too much data" in pngpread.c when avail_in
     is nonzero.
   Updated makefiles to install a separate libpng.so.3 with its own rpath.
-version 1.2.5rc1 and 1.0.15rc1 [August 24, 2002]
+
+Version 1.2.5rc1 and 1.0.15rc1 [August 24, 2002]
   Revised makefiles to not remove previous minor versions of shared libraries.
-version 1.2.5rc2 and 1.0.15rc2 [September 16, 2002]
+
+Version 1.2.5rc2 and 1.0.15rc2 [September 16, 2002]
   Revised 13 makefiles to remove "-lz" and "-L$(ZLIBLIB)", etc., from shared
     library loader directive.
   Added missing "$OBJSDLL" line to makefile.gcmmx.
   Added missing "; fi" to makefile.32sunu.
-version 1.2.5rc3 and 1.0.15rc3 [September 18, 2002]
+
+Version 1.2.5rc3 and 1.0.15rc3 [September 18, 2002]
   Revised libpng-config script.
 
-version 1.2.5 and 1.0.15 [October 3, 2002]
+Version 1.2.5 and 1.0.15 [October 3, 2002]
   Revised makefile.macosx, makefile.darwin, makefile.hpgcc, and makefile.hpux,
     and makefile.aix.
   Relocated two misplaced PNGAPI lines in pngtest.c
-version 1.2.6beta1 [October 22, 2002]
+
+Version 1.2.6beta1 [October 22, 2002]
   Commented out warning about uninitialized mmx_support in pnggccrd.c.
   Changed "IBMCPP__" flag to "__IBMCPP__" in pngconf.h.
   Relocated two more misplaced PNGAPI lines in pngtest.c
   Fixed memory overrun bug in png_do_read_filler() with 16-bit datastreams,
     introduced in version 1.0.2.
   Revised makefile.macosx, makefile.dec, makefile.aix, and makefile.32sunu.
-version 1.2.6beta2 [November 1, 2002]
+
+Version 1.2.6beta2 [November 1, 2002]
   Added libpng-config "--ldopts" output.
   Added "AR=ar" and "ARFLAGS=rc" and changed "ar rc" to "$(AR) $(ARFLAGS)"
     in makefiles.
-version 1.2.6beta3 [July 18, 2004]
+
+Version 1.2.6beta3 [July 18, 2004]
   Reverted makefile changes from version 1.2.6beta2 and some of the changes
     from version 1.2.6beta1; these will be postponed until version 1.2.7.
     Version 1.2.6 is going to be a simple bugfix release.
@@ -1304,7 +1448,8 @@ version 1.2.6beta3 [July 18, 2004]
   Updated contrib/visupng/VisualPng.dsp (Cosmin).
   Updated contrib/visupng/cexcept.h to version 2.0.0 (Cosmin).
   Added a separate distribution with "configure" and supporting files (Junichi).
-version 1.2.6beta4 [July 28, 2004]
+
+Version 1.2.6beta4 [July 28, 2004]
   Added user ability to change png_size_t via a PNG_SIZE_T macro.
   Added png_sizeof() and png_convert_size() functions.
   Added PNG_SIZE_MAX (maximum value of a png_size_t variable.
@@ -1324,9 +1469,10 @@ version 1.2.6beta4 [July 28, 2004]
   Added PNG_NO_SEQUENTIAL_READ_SUPPORTED macro to conditionally remove
     sequential read support.
   Added some "#if PNG_WRITE_SUPPORTED" blocks.
-  #ifdef'ed out some redundancy in png_malloc_default().
+  Added #ifdef to remove some redundancy in png_malloc_default().
   Use png_malloc instead of png_zalloc to allocate the pallete.
-version 1.0.16rc1 and 1.2.6rc1 [August 4, 2004]
+
+Version 1.0.16rc1 and 1.2.6rc1 [August 4, 2004]
   Fixed buffer overflow vulnerability in png_handle_tRNS()
   Fixed integer arithmetic overflow vulnerability in png_read_png().
   Fixed some harmless bugs in png_handle_sBIT, etc, that would cause
@@ -1341,7 +1487,8 @@ version 1.0.16rc1 and 1.2.6rc1 [August 4, 2004]
   Fixed wrong cast of returns from png_get_user_width|height_max().
   Changed some "keep the compiler happy" from empty statements to returns,
   Revised libpng.txt to remove 1.2.x stuff from the 1.0.x distribution
-version 1.0.16rc2 and 1.2.6rc2 [August 7, 2004]
+
+Version 1.0.16rc2 and 1.2.6rc2 [August 7, 2004]
   Revised makefile.darwin and makefile.solaris.  Removed makefile.macosx.
   Revised pngtest's png_debug_malloc() to use png_malloc() instead of
     png_malloc_default() which is not supposed to be exported.
@@ -1355,90 +1502,106 @@ version 1.0.16rc2 and 1.2.6rc2 [August 7, 2004]
   Changed "HANDLE_CHUNK_*" to "PNG_HANDLE_CHUNK_*" (Cosmin)
   Added "-@/bin/rm -f $(DL)/$(LIBNAME).so.$(PNGMAJ)" to 15 *NIX makefiles.
   Added code to update the row_info->colortype in png_do_read_filler() (MSB).
-version 1.0.16rc3 and 1.2.6rc3 [August 9, 2004]
+
+Version 1.0.16rc3 and 1.2.6rc3 [August 9, 2004]
   Eliminated use of "abs()" in testing cHRM and gAMA values, to avoid
     trouble with some 64-bit compilers.  Created PNG_OUT_OF_RANGE() macro.
   Revised documentation of png_set_keep_unknown_chunks().
   Check handle_as_unknown status in pngpread.c, as in pngread.c previously.
   Moved  "PNG_HANDLE_CHUNK_*" macros out of PNG_INTERNAL section of png.h
   Added "rim" definitions for CONST4 and CONST6 in pnggccrd.c
-version 1.0.16rc4 and 1.2.6rc4 [August 10, 2004]
+
+Version 1.0.16rc4 and 1.2.6rc4 [August 10, 2004]
   Fixed mistake in pngtest.c introduced in 1.2.6rc2 (declaration of
     "pinfo" was out of place).
-version 1.0.16rc5 and 1.2.6rc5 [August 10, 2004]
+
+Version 1.0.16rc5 and 1.2.6rc5 [August 10, 2004]
   Moved  "PNG_HANDLE_CHUNK_*" macros out of PNG_ASSEMBLER_CODE_SUPPORTED
      section of png.h where they were inadvertently placed in version rc3.
 
-version 1.2.6 and 1.0.16 [August 15, 2004]
+Version 1.2.6 and 1.0.16 [August 15, 2004]
   Revised pngtest so memory allocation testing is only done when PNG_DEBUG==1.
-version 1.2.7beta1 [August 26, 2004]
+
+Version 1.2.7beta1 [August 26, 2004]
   Removed unused pngasmrd.h file.
   Removed references to uu.net for archived files.  Added references to
     PNG Spec (second edition) and the PNG ISO/IEC Standard.
   Added "test-dd" target in 15 makefiles, to run pngtest in DESTDIR.
   Fixed bug with "optimized window size" in the IDAT datastream, that
     causes libpng to write PNG files with incorrect zlib header bytes.
-version 1.2.7beta2 [August 28, 2004]
+
+Version 1.2.7beta2 [August 28, 2004]
   Fixed bug with sCAL chunk and big-endian machines (David Munro).
   Undid new code added in 1.2.6rc2 to update the color_type in
     png_set_filler().
   Added png_set_add_alpha() that updates color type.
-version 1.0.17rc1 and 1.2.7rc1 [September 4, 2004]
+
+Version 1.0.17rc1 and 1.2.7rc1 [September 4, 2004]
   Revised png_set_strip_filler() to not remove alpha if color_type has alpha.
 
-version 1.2.7 and 1.0.17 [September 12, 2004]
+Version 1.2.7 and 1.0.17 [September 12, 2004]
   Added makefile.hp64
   Changed projects/msvc/png32ms.def to scripts/png32ms.def in makefile.cygwin
-version 1.2.8beta1 [November 1, 2004]
+
+Version 1.2.8beta1 [November 1, 2004]
   Fixed bug in png_text_compress() that would fail to complete a large block.
   Fixed bug, introduced in libpng-1.2.7, that overruns a buffer during
     strip alpha operation in png_do_strip_filler().
   Added PNG_1_2_X definition in pngconf.h
-  #ifdef out png_info_init in png.c and png_read_init in pngread.c (as of 1.3.0)
-version 1.2.8beta2 [November 2, 2004]
+  Use #ifdef to comment out png_info_init in png.c and png_read_init in
+    pngread.c (as of 1.3.0)
+
+Version 1.2.8beta2 [November 2, 2004]
   Reduce color_type to a nonalpha type after strip alpha operation in
     png_do_strip_filler().
-version 1.2.8beta3 [November 3, 2004]
+
+Version 1.2.8beta3 [November 3, 2004]
   Revised definitions of PNG_MAX_UINT_32, PNG_MAX_SIZE, and PNG_MAXSUM
-version 1.2.8beta4 [November 12, 2004]
+
+Version 1.2.8beta4 [November 12, 2004]
   Fixed (again) definition of PNG_LIBPNG_VER_DLLNUM in png.h (Cosmin).
   Added PNG_LIBPNG_BUILD_PRIVATE in png.h (Cosmin).
   Set png_ptr->zstream.data_type to Z_BINARY, to avoid unnecessary detection
     of data type in deflate (Cosmin).
   Deprecated but continue to support SPECIALBUILD and PRIVATEBUILD in favor of
     PNG_LIBPNG_BUILD_SPECIAL_STRING and PNG_LIBPNG_BUILD_PRIVATE_STRING.
-version 1.2.8beta5 [November 20, 2004]
+
+Version 1.2.8beta5 [November 20, 2004]
   Use png_ptr->flags instead of png_ptr->transformations to pass
     PNG_STRIP_ALPHA info to png_do_strip_filler(), to preserve ABI
     compatibility.
-  Revised handling of SPECIALBUILD, PRIVATEBUILD, 
+  Revised handling of SPECIALBUILD, PRIVATEBUILD,
     PNG_LIBPNG_BUILD_SPECIAL_STRING and PNG_LIBPNG_BUILD_PRIVATE_STRING.
-version 1.2.8rc1 [November 24, 2004]
+
+Version 1.2.8rc1 [November 24, 2004]
   Moved handling of BUILD macros from pngconf.h to png.h
   Added definition of PNG_LIBPNG_BASE_TYPE in png.h, inadvertently
     omitted from beta5.
   Revised scripts/pngw32.rc
   Despammed mailing addresses by masking "@" with "at".
   Inadvertently installed a supposedly faster test version of pngrutil.c
-version 1.2.8rc2 [November 26, 2004]
+
+Version 1.2.8rc2 [November 26, 2004]
   Added two missing "\" in png.h
   Change tests in pngread.c and pngpread.c to
     if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA))
        png_do_read_transformations(png_ptr);
-version 1.2.8rc3 [November 28, 2004]
+
+Version 1.2.8rc3 [November 28, 2004]
   Reverted pngrutil.c to version libpng-1.2.8beta5.
   Added scripts/makefile.elf with supporting code in pngconf.h for symbol
     versioning (John Bowler).
-version 1.2.8rc4 [November 29, 2004]
+
+Version 1.2.8rc4 [November 29, 2004]
   Added projects/visualc7 (Simon-pierre).
-version 1.2.8rc5 [November 29, 2004]
+
+Version 1.2.8rc5 [November 29, 2004]
   Fixed new typo in scripts/pngw32.rc
 
-version 1.2.8 [December 3, 2004]
+Version 1.2.8 [December 3, 2004]
   Removed projects/visualc7, added projects/visualc71.
 
-version 1.2.9beta1 [February 21, 2006]
-
+Version 1.2.9beta1 [February 21, 2006]
   Initialized some structure members in pngwutil.c to avoid gcc-4.0.0 complaints
   Revised man page and libpng.txt to make it clear that one should not call
     png_read_end or png_write_end after png_read_png or png_write_png.
@@ -1460,8 +1623,7 @@ version 1.2.9beta1 [February 21, 2006]
   Fixed scripts/makefile.cygwin (Christian Biesinger, Cosmin).
   Default iTXt support was inadvertently enabled.
 
-version 1.2.9beta2 [February 21, 2006]
-
+Version 1.2.9beta2 [February 21, 2006]
   Check for png_rgb_to_gray and png_gray_to_rgb read transformations before
     checking for png_read_dither in pngrtran.c
   Revised checking of chromaticity limits to accommodate extended RGB
@@ -1474,8 +1636,7 @@ version 1.2.9beta2 [February 21, 2006]
   Eliminated distributions without the "configure" script.
   Updated INSTALL instructions.
 
-version 1.2.9beta3 [February 24, 2006]
-
+Version 1.2.9beta3 [February 24, 2006]
   Fixed CRCRLF line endings in contrib/visupng/VisualPng.dsp
   Made libpng.pc respect EXEC_PREFIX (D. P. Kreil, J. Bowler)
   Removed reference to pngasmrd.h from Makefile.am
@@ -1484,8 +1645,7 @@ version 1.2.9beta3 [February 24, 2006]
   Renamed ANNOUNCE to NEWS.
   Created AUTHORS file.
 
-version 1.2.9beta4 [March 3, 2006]
-
+Version 1.2.9beta4 [March 3, 2006]
   Changed definition of PKGCONFIG from $prefix/lib to $libdir in configure.ac
   Reverted to filenames LICENSE and ANNOUNCE; removed AUTHORS and COPYING.
   Removed newline from the end of some error and warning messages.
@@ -1496,17 +1656,17 @@ version 1.2.9beta4 [March 3, 2006]
   Added "OS2" to list of systems that don't need underscores, in pnggccrd.c
   Removed libpng version and date from *.c files.
 
-version 1.2.9beta5 [March 4, 2006]
+Version 1.2.9beta5 [March 4, 2006]
   Removed trailing blanks from source files.
   Put version and date of latest change in each source file, and changed
     copyright year accordingly.
-  More cleanup of configure.ac, Makefile.ac, and associated scripts.
+  More cleanup of configure.ac, Makefile.am, and associated scripts.
   Restored scripts/makefile.elf which was inadvertently deleted.
 
-version 1.2.9beta6 [March 6, 2006]
-  Fixed typo (18) in configuration files.
+Version 1.2.9beta6 [March 6, 2006]
+  Fixed typo (RELEASE) in configuration files.
 
-version 1.2.9beta7 [March 7, 2006]
+Version 1.2.9beta7 [March 7, 2006]
   Removed libpng.vers and libpng.sym from libpng12_la_SOURCES in Makefile.am
   Fixed inconsistent #ifdef's around png_sig_bytes() and png_set_sCAL_s()
     in png.h.
@@ -1514,7 +1674,7 @@ version 1.2.9beta7 [March 7, 2006]
   Made cosmetic changes to some makefiles, adding LN_SF and other macros.
   Made some makefiles accept "exec_prefix".
 
-version 1.2.9beta8 [March 9, 2006]
+Version 1.2.9beta8 [March 9, 2006]
   Fixed some "#if defined (..." which should be "#if defined(..."
     Bug introduced in libpng-1.2.8.
   Fixed inconsistency in definition of png_default_read_data()
@@ -1525,82 +1685,82 @@ version 1.2.9beta8 [March 9, 2006]
   Added png_set_expand_gray_1_2_4_to_8() and deprecated
     png_set_gray_1_2_4_to_8() which also expands tRNS to alpha.
 
-version 1.2.9beta9 [March 10, 2006]
+Version 1.2.9beta9 [March 10, 2006]
   Include "config.h" in pngconf.h when available.
   Added some checks for NULL png_ptr or NULL info_ptr (timeless)
 
-version 1.2.9beta10 [March 20, 2006]
+Version 1.2.9beta10 [March 20, 2006]
   Removed extra CR from contrib/visualpng/VisualPng.dsw (Cosmin)
   Made pnggccrd.c PIC-compliant (Christian Aichinger).
   Added makefile.mingw (Wolfgang Glas).
   Revised pngconf.h MMX checking.
 
-version 1.2.9beta11 [March 22, 2006]
+Version 1.2.9beta11 [March 22, 2006]
   Fixed out-of-order declaration in pngwrite.c that was introduced in beta9
   Simplified some makefiles by using LIBSO, LIBSOMAJ, and LIBSOVER macros.
 
-version 1.2.9rc1 [March 31, 2006]
+Version 1.2.9rc1 [March 31, 2006]
   Defined PNG_USER_PRIVATEBUILD when including "pngusr.h" (Cosmin).
   Removed nonsensical assertion check from pngtest.c (Cosmin).
 
-version 1.2.9 [April 14, 2006]
+Version 1.2.9 [April 14, 2006]
   Revised makefile.beos and added "none" selector in ltmain.sh
 
-version 1.2.10beta1 [April 15, 2006]
+Version 1.2.10beta1 [April 15, 2006]
   Renamed "config.h" to "png_conf.h" and revised Makefile.am to add
     -DPNG_BUILDING_LIBPNG to compile directive, and modified pngconf.h
     to include png_conf.h only when PNG_BUILDING_LIBPNG is defined.
 
-version 1.2.10beta2 [April 15, 2006]
+Version 1.2.10beta2 [April 15, 2006]
   Manually updated Makefile.in and configure.  Changed png_conf.h.in
     back to config.h.
 
-version 1.2.10beta3 [April 15, 2006]
+Version 1.2.10beta3 [April 15, 2006]
   Change png_conf.h back to config.h in pngconf.h.
 
-version 1.2.10beta4 [April 16, 2006]
+Version 1.2.10beta4 [April 16, 2006]
   Change PNG_BUILDING_LIBPNG to PNG_CONFIGURE_LIBPNG in config/Makefile*.
 
-version 1.2.10beta5 [April 16, 2006]
+Version 1.2.10beta5 [April 16, 2006]
   Added a configure check for compiling assembler code in pnggccrd.c
 
-version 1.2.10beta6 [April 17, 2006]
+Version 1.2.10beta6 [April 17, 2006]
   Revised the configure check for pnggccrd.c
   Moved -DPNG_CONFIGURE_LIBPNG into @LIBPNG_DEFINES@
   Added @LIBPNG_DEFINES@ to arguments when building libpng.sym
 
-version 1.2.10beta7 [April 18, 2006]
+Version 1.2.10beta7 [April 18, 2006]
   Change "exec_prefix=$prefix" to "exec_prefix=$(prefix)" in makefiles.
 
-version 1.2.10rc1 [April 19, 2006]
+Version 1.2.10rc1 [April 19, 2006]
   Ensure pngconf.h doesn't define both PNG_USE_PNGGCCRD and PNG_USE_PNGVCRD
   Fixed "LN_FS" typo in makefile.sco and makefile.solaris.
 
-version 1.2.10rc2 [April 20, 2006]
+Version 1.2.10rc2 [April 20, 2006]
   Added a backslash between -DPNG_CONFIGURE_LIBPNG and -DPNG_NO_ASSEMBLER_CODE
    in configure.ac and configure
   Made the configure warning about versioned symbols less arrogant.
 
-version 1.2.10rc3 [April 21, 2006]
+Version 1.2.10rc3 [April 21, 2006]
   Added a note in libpng.txt that png_set_sig_bytes(8) can be used when
     writing an embedded PNG without the 8-byte signature.
   Revised makefiles and configure to avoid making links to libpng.so.*
 
-version 1.2.10 [April 23, 2006]
+Version 1.2.10 [April 23, 2006]
   Reverted configure to "rc2" state.
 
-version 1.2.11beta1 [May 31, 2006]
+Version 1.2.11beta1 [May 31, 2006]
   scripts/libpng.pc.in contained "configure" style version info and would
     not work with makefiles.
   The shared-library makefiles were linking to libpng.so.0 instead of
     libpng.so.3 compatibility as the library.
 
-version 1.2.11beta2 [June 2, 2006]
+Version 1.2.11beta2 [June 2, 2006]
   Increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid
     buffer overflow.
   Fixed bug in example.c (png_set_palette_rgb -> png_set_palette_to_rgb)
 
-version 1.2.11beta3 [June 5, 2006]
+Version 1.2.11beta3 [June 5, 2006]
   Prepended "#! /bin/sh" to ltmail.sh and contrib/pngminus/*.sh (Cosmin).
   Removed the accidental leftover Makefile.in~ (Cosmin).
   Avoided potential buffer overflow and optimized buffer in
@@ -1608,116 +1768,116 @@ version 1.2.11beta3 [June 5, 2006]
   Removed the include directories and libraries from CFLAGS and LDFLAGS
     in scripts/makefile.gcc (Nelson A. de Oliveira, Cosmin).
 
-version 1.2.11beta4 [June 6, 2006]
+Version 1.2.11beta4 [June 6, 2006]
   Allow zero-length IDAT chunks after the entire zlib datastream, but not
     after another intervening chunk type.
 
-version 1.0.19rc1, 1.2.11rc1 [June 13, 2006]
+Version 1.0.19rc1, 1.2.11rc1 [June 13, 2006]
   Deleted extraneous square brackets from [config.h] in configure.ac
 
-version 1.0.19rc2, 1.2.11rc2 [June 14, 2006]
+Version 1.0.19rc2, 1.2.11rc2 [June 14, 2006]
   Added prototypes for PNG_INCH_CONVERSIONS functions to png.h
   Revised INSTALL and autogen.sh
   Fixed typo in several makefiles (-W1 should be -Wl)
   Added typedef for png_int_32 and png_uint_32 on 64-bit systems.
 
-version 1.0.19rc3, 1.2.11rc3 [June 15, 2006]
+Version 1.0.19rc3, 1.2.11rc3 [June 15, 2006]
   Removed the new typedefs for 64-bit systems (delay until version 1.4.0)
   Added one zero element to png_gamma_shift[] array in pngrtran.c to avoid
     reading out of bounds.
 
-version 1.0.19rc4, 1.2.11rc4 [June 15, 2006]
+Version 1.0.19rc4, 1.2.11rc4 [June 15, 2006]
   Really removed the new typedefs for 64-bit systems.
 
-version 1.0.19rc5, 1.2.11rc5 [June 22, 2006]
+Version 1.0.19rc5, 1.2.11rc5 [June 22, 2006]
   Removed png_sig_bytes entry from scripts/pngw32.def
 
-version 1.0.19, 1.2.11 [June 26, 2006]
+Version 1.0.19, 1.2.11 [June 26, 2006]
   None.
 
-version 1.0.20, 1.2.12 [June 27, 2006]
+Version 1.0.20, 1.2.12 [June 27, 2006]
   Really increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid
     buffer overflow.
 
-version 1.2.13beta1 [October 2, 2006]
+Version 1.2.13beta1 [October 2, 2006]
   Removed AC_FUNC_MALLOC from configure.ac
   Work around Intel-Mac compiler bug by setting PNG_NO_MMX_CODE in pngconf.h
   Change "logical" to "bitwise" throughout documentation.
   Detect and fix attempt to write wrong iCCP profile length.
 
-version 1.0.21, 1.2.13 [November 14, 2006]
+Version 1.0.21, 1.2.13 [November 14, 2006]
   Fix potential buffer overflow in sPLT chunk handler.
   Fix Makefile.am to not try to link to noexistent files.
   Check all exported functions for NULL png_ptr.
 
-version 1.2.14beta1 [November 17, 2006]
+Version 1.2.14beta1 [November 17, 2006]
   Relocated three misplaced tests for NULL png_ptr.
   Built Makefile.in with automake-1.9.6 instead of 1.9.2.
   Build configure with autoconf-2.60 instead of 2.59
 
-version 1.2.14beta2 [November 17, 2006]
+Version 1.2.14beta2 [November 17, 2006]
   Added some typecasts in png_zalloc().
 
-version 1.2.14rc1 [November 20, 2006]
+Version 1.2.14rc1 [November 20, 2006]
   Changed "strtod" to "png_strtod" in pngrutil.c
 
-version 1.0.22, 1.2.14    [November 27, 2006]
+Version 1.0.22, 1.2.14    [November 27, 2006]
   Added missing "$(srcdir)" in Makefile.am and Makefile.in
 
-version 1.2.15beta1 [December 3, 2006]
+Version 1.2.15beta1 [December 3, 2006]
   Generated configure with autoconf-2.61 instead of 2.60
   Revised configure.ac to update libpng.pc and libpng-config.
 
-version 1.2.15beta2 [December 3, 2006]
+Version 1.2.15beta2 [December 3, 2006]
   Always export MMX asm functions, just stubs if not building pnggccrd.c
 
-version 1.2.15beta3 [December 4, 2006]
+Version 1.2.15beta3 [December 4, 2006]
   Add "png_bytep" typecast to profile while calculating length in pngwutil.c
 
-version 1.2.15beta4 [December 7, 2006]
+Version 1.2.15beta4 [December 7, 2006]
   Added scripts/CMakeLists.txt
   Changed PNG_NO_ASSEMBLER_CODE to PNG_NO_MMX_CODE in scripts, like 1.4.0beta
 
-version 1.2.15beta5 [December 7, 2006]
+Version 1.2.15beta5 [December 7, 2006]
   Changed some instances of PNG_ASSEMBLER_* to PNG_MMX_* in pnggccrd.c
   Revised scripts/CMakeLists.txt
 
-version 1.2.15beta6 [December 13, 2006]
+Version 1.2.15beta6 [December 13, 2006]
   Revised scripts/CMakeLists.txt and configure.ac
 
-version 1.2.15rc1 [December 18, 2006]
+Version 1.2.15rc1 [December 18, 2006]
   Revised scripts/CMakeLists.txt
 
-version 1.2.15rc2 [December 21, 2006]
+Version 1.2.15rc2 [December 21, 2006]
   Added conditional #undef jmpbuf in pngtest.c to undo #define in AIX headers.
   Added scripts/makefile.nommx
 
-version 1.2.15rc3 [December 25, 2006]
-  Fixed shared library numbering error that was intruduced in 1.2.15beta6.
+Version 1.2.15rc3 [December 25, 2006]
+  Fixed shared library numbering error that was introduced in 1.2.15beta6.
 
-version 1.2.15rc4 [December 27, 2006]
+Version 1.2.15rc4 [December 27, 2006]
   Fixed handling of rgb_to_gray when png_ptr->color.gray isn't set.
 
-version 1.2.15rc5 [December 31, 2006]
+Version 1.2.15rc5 [December 31, 2006]
   Revised handling of rgb_to_gray.
 
-version 1.2.15 [January 5, 2007]
+Version 1.2.15 [January 5, 2007]
   Added some (unsigned long) typecasts in pngtest.c to avoid printing errors.
 
-version 1.2.16beta1 [January 6, 2007]
+Version 1.2.16beta1 [January 6, 2007]
   Fix bugs in makefile.nommx
 
-version 1.2.16beta2 [January 16, 2007]
+Version 1.2.16beta2 [January 16, 2007]
   Revised scripts/CMakeLists.txt
- 
-version 1.2.16 [January 31, 2007]
+
+Version 1.2.16 [January 31, 2007]
   No changes.
- 
-version 1.2.17beta1 [March 6, 2007]
+
+Version 1.2.17beta1 [March 6, 2007]
   Revised scripts/CMakeLists.txt to install both shared and static libraries.
   Deleted a redundant line from pngset.c.
- 
-version 1.2.17beta2 [April 26, 2007]
+
+Version 1.2.17beta2 [April 26, 2007]
   Relocated misplaced test for png_ptr == NULL in pngpread.c
   Change "==" to "&" for testing PNG_RGB_TO_GRAY_ERR & PNG_RGB_TO_GRAY_WARN
     flags.
@@ -1726,10 +1886,10 @@ version 1.2.17beta2 [April 26, 2007]
   Added "const" to some array declarations.
   Mention examples of libpng usage in the libpng*.txt and libpng.3 documents.
 
-version 1.2.17rc1 [May 4, 2007]
+Version 1.2.17rc1 [May 4, 2007]
   No changes.
 
-version 1.2.17rc2 [May 8, 2007]
+Version 1.2.17rc2 [May 8, 2007]
   Moved several PNG_HAVE_* macros out of PNG_INTERNAL because applications
     calling set_unknown_chunk_location() need them.
   Changed transformation flag from PNG_EXPAND_tRNS to PNG_EXPAND in
@@ -1737,22 +1897,1642 @@ version 1.2.17rc2 [May 8, 2007]
   Added png_ptr->unknown_chunk to hold working unknown chunk data, so it
     can be free'ed in case of error.  Revised unknown chunk handling in
     pngrutil.c and pngpread.c to use this structure.
- 
-version 1.2.17rc3 [May 8, 2007]
+
+Version 1.2.17rc3 [May 8, 2007]
   Revised symbol-handling in configure script.
 
-version 1.2.17rc4 [May 10, 2007]
+Version 1.2.17rc4 [May 10, 2007]
   Revised unknown chunk handling to avoid storing unknown critical chunks.
 
-version 1.0.25 [May 15, 2007]
-version 1.2.17 [May 15, 2007]
+Version 1.0.25 [May 15, 2007]
+Version 1.2.17 [May 15, 2007]
   Added "png_ptr->num_trans=0" before error return in png_handle_tRNS,
-    to eliminate a vulnerability (CVE-2007-2554, CERT VU#684664)
+    to eliminate a vulnerability (CVE-2007-2445, CERT VU#684664)
 
-version 1.0.26 [May 15, 2007]
-version 1.2.18 [May 15, 2007]
+Version 1.0.26 [May 15, 2007]
+Version 1.2.18 [May 15, 2007]
   Reverted the libpng-1.2.17rc3 change to symbol-handling in configure script
 
+Version 1.2.19beta1 [May 18, 2007]
+  Changed "const static" to "static PNG_CONST" everywhere, mostly undoing
+    change of libpng-1.2.17beta2.  Changed other "const" to "PNG_CONST"
+  Changed some handling of unused parameters, to avoid compiler warnings.
+    "if (unused == NULL) return;" becomes "unused = unused".
+
+Version 1.2.19beta2 [May 18, 2007]
+  Only use the valid bits of tRNS value in png_do_expand() (Brian Cartier)
+
+Version 1.2.19beta3 [May 19, 2007]
+  Add some "png_byte" typecasts in png_check_keyword() and write new_key
+  instead of key in zTXt chunk (Kevin Ryde).
+
+Version 1.2.19beta4 [May 21, 2007]
+  Add png_snprintf() function and use it in place of sprint() for improved
+    defense against buffer overflows.
+
+Version 1.2.19beta5 [May 21, 2007]
+  Fixed png_handle_tRNS() to only use the valid bits of tRNS value.
+  Changed handling of more unused parameters, to avoid compiler warnings.
+  Removed some PNG_CONST in pngwutil.c to avoid compiler warnings.
+
+Version 1.2.19beta6 [May 22, 2007]
+  Added some #ifdef PNG_MMX_CODE_SUPPORTED where needed in pngvcrd.c
+  Added a special "_MSC_VER" case that defines png_snprintf to _snprintf
+
+Version 1.2.19beta7 [May 22, 2007]
+  Squelched png_squelch_warnings() in pnggccrd.c and added
+    an #ifdef PNG_MMX_CODE_SUPPORTED block around the declarations that caused
+    the warnings that png_squelch_warnings was squelching.
+
+Version 1.2.19beta8 [May 22, 2007]
+  Removed __MMX__ from test in pngconf.h.
+
+Version 1.2.19beta9 [May 23, 2007]
+  Made png_squelch_warnings() available via PNG_SQUELCH_WARNINGS macro.
+  Revised png_squelch_warnings() so it might work.
+  Updated makefile.sgcc and makefile.solaris; added makefile.solaris-x86.
+
+Version 1.2.19beta10 [May 24, 2007]
+  Resquelched png_squelch_warnings(), use "__attribute__((used))" instead.
+
+Version 1.4.0beta1 [April 20, 2006]
+  Enabled iTXt support (changes png_struct, thus requires so-number change).
+  Cleaned up PNG_ASSEMBLER_CODE_SUPPORTED vs PNG_MMX_CODE_SUPPORTED
+  Eliminated PNG_1_0_X and PNG_1_2_X macros.
+  Removed deprecated functions png_read_init, png_write_init, png_info_init,
+    png_permit_empty_plte, png_set_gray_1_2_4_to_8, png_check_sig, and
+    removed the deprecated macro PNG_MAX_UINT.
+  Moved "PNG_INTERNAL" parts of png.h and pngconf.h into pngintrn.h
+  Removed many WIN32_WCE #ifdefs (Cosmin).
+  Reduced dependency on C-runtime library when on Windows (Simon-Pierre)
+  Replaced sprintf() with png_sprintf() (Simon-Pierre)
+
+Version 1.4.0beta2 [April 20, 2006]
+  Revised makefiles and configure to avoid making links to libpng.so.*
+  Moved some leftover MMX-related defines from pngconf.h to pngintrn.h
+  Updated scripts/pngos2.def, pngw32.def, and projects/wince/png32ce.def
+
+Version 1.4.0beta3 [May 10, 2006]
+  Updated scripts/pngw32.def to comment out MMX functions.
+  Added PNG_NO_GET_INT_32 and PNG_NO_SAVE_INT_32 macros.
+  Scripts/libpng.pc.in contained "configure" style version info and would
+    not work with makefiles.
+  Revised pngconf.h and added pngconf.h.in, so makefiles and configure can
+    pass defines to libpng and applications.
+
+Version 1.4.0beta4 [May 11, 2006]
+  Revised configure.ac, Makefile.am, and many of the makefiles to write
+    their defines in pngconf.h.
+
+Version 1.4.0beta5 [May 15, 2006]
+  Added a missing semicolon in Makefile.am and Makefile.in
+  Deleted extraneous square brackets from configure.ac
+
+Version 1.4.0beta6 [June 2, 2006]
+  Increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid
+    buffer overflow.
+  Changed sonum from 0 to 1.
+  Removed unused prototype for png_check_sig() from png.h
+
+Version 1.4.0beta7 [June 16, 2006]
+  Exported png_write_sig (Cosmin).
+  Optimized buffer in png_handle_cHRM() (Cosmin).
+  Set pHYs = 2835 x 2835 pixels per meter, and added
+    sCAL = 0.352778e-3 x 0.352778e-3 meters, in pngtest.png (Cosmin).
+  Added png_set_benign_errors(), png_benign_error(), png_chunk_benign_error().
+  Added typedef for png_int_32 and png_uint_32 on 64-bit systems.
+  Added "(unsigned long)" typecast on png_uint_32 variables in printf lists.
+
+Version 1.4.0beta8 [June 22, 2006]
+  Added demonstration of user chunk support in pngtest.c, to support the
+    public sTER chunk and a private vpAg chunk.
+
+Version 1.4.0beta9 [July 3, 2006]
+  Removed ordinals from scripts/pngw32.def and removed png_info_int and
+    png_set_gray_1_2_4_to_8 entries.
+  Inline call of png_get_uint_32() in png_get_uint_31().
+  Use png_get_uint_31() to get vpAg width and height in pngtest.c
+  Removed WINCE and Netware projects.
+  Removed standalone Y2KINFO file.
+
+Version 1.4.0beta10 [July 12, 2006]
+  Eliminated automatic copy of pngconf.h to pngconf.h.in from configure and
+    some makefiles, because it was not working reliably.  Instead, distribute
+    pngconf.h.in along with pngconf.h and cause configure and some of the
+    makefiles to update pngconf.h from pngconf.h.in.
+  Added pngconf.h to DEPENDENCIES in Makefile.am
+
+Version 1.4.0beta11 [August 19, 2006]
+  Removed AC_FUNC_MALLOC from configure.ac.
+  Added a warning when writing iCCP profile with mismatched profile length.
+  Patched pnggccrd.c to assemble on x86_64 platforms.
+  Moved chunk header reading into a separate function png_read_chunk_header()
+    in pngrutil.c.  The chunk header (len+sig) is now serialized in a single
+    operation (Cosmin).
+  Implemented support for I/O states. Added png_ptr member io_state, and
+    functions png_get_io_chunk_name() and png_get_io_state() in pngget.c
+    (Cosmin).
+  Added png_get_io_chunk_name and png_get_io_state to scripts/*.def (Cosmin).
+  Renamed scripts/pngw32.* to scripts/pngwin.* (Cosmin).
+  Removed the include directories and libraries from CFLAGS and LDFLAGS
+    in scripts/makefile.gcc (Cosmin).
+  Used png_save_uint_32() to set vpAg width and height in pngtest.c (Cosmin).
+  Cast to proper type when getting/setting vpAg units in pngtest.c (Cosmin).
+  Added pngintrn.h to the Visual C++ projects (Cosmin).
+  Removed scripts/list (Cosmin).
+  Updated copyright year in scripts/pngwin.def (Cosmin).
+  Removed PNG_TYPECAST_NULL and used standard NULL consistently (Cosmin).
+  Disallowed the user to redefine png_size_t, and enforced a consistent use
+    of png_size_t across libpng (Cosmin).
+  Changed the type of png_ptr->rowbytes, PNG_ROWBYTES() and friends
+    to png_size_t (Cosmin).
+  Removed png_convert_size() and replaced png_sizeof with sizeof (Cosmin).
+  Removed some unnecessary type casts (Cosmin).
+  Changed prototype of png_get_compression_buffer_size() and
+    png_set_compression_buffer_size() to work with png_size_t instead of
+    png_uint_32 (Cosmin).
+  Removed png_memcpy_check() and png_memset_check() (Cosmin).
+  Fixed a typo (png_byte --> png_bytep) in libpng.3 and libpng.txt (Cosmin).
+  Clarified that png_zalloc() does not clear the allocated memory,
+    and png_zalloc() and png_zfree() cannot be PNGAPI (Cosmin).
+  Renamed png_mem_size_t to png_alloc_size_t, fixed its definition in
+    pngconf.h, and used it in all memory allocation functions (Cosmin).
+  Renamed pngintrn.h to pngpriv.h, added a comment at the top of the file
+    mentioning that the symbols declared in that file are private, and
+    updated the scripts and the Visual C++ projects accordingly (Cosmin).
+  Removed circular references between pngconf.h and pngconf.h.in in
+    scripts/makefile.vc*win32 (Cosmin).
+  Removing trailing '.' from the warning and error messages (Cosmin).
+  Added pngdefs.h that is built by makefile or configure, instead of
+    pngconf.h.in (Glenn).
+  Detect and fix attempt to write wrong iCCP profile length.
+
+Version 1.4.0beta12 [October 19, 2006]
+  Changed "logical" to "bitwise" in the documentation.
+  Work around Intel-Mac compiler bug by setting PNG_NO_MMX_CODE in pngconf.h
+  Add a typecast to stifle compiler warning in pngrutil.c
+
+Version 1.4.0beta13 [November 10, 2006]
+  Fix potential buffer overflow in sPLT chunk handler.
+  Fix Makefile.am to not try to link to noexistent files.
+
+Version 1.4.0beta14 [November 15, 2006]
+  Check all exported functions for NULL png_ptr.
+
+Version 1.4.0beta15 [November 17, 2006]
+  Relocated two misplaced tests for NULL png_ptr.
+  Built Makefile.in with automake-1.9.6 instead of 1.9.2.
+  Build configure with autoconf-2.60 instead of 2.59
+  Add "install: all" in Makefile.am so "configure; make install" will work.
+
+Version 1.4.0beta16 [November 17, 2006]
+  Added a typecast in png_zalloc().
+
+Version 1.4.0beta17 [December 4, 2006]
+  Changed "new_key[79] = '\0';" to "(*new_key)[79] = '\0';" in pngwutil.c
+  Add "png_bytep" typecast to profile while calculating length in pngwutil.c
+
+Version 1.4.0beta18 [December 7, 2006]
+  Added scripts/CMakeLists.txt
+
+Version 1.4.0beta19 [May 16, 2007]
+  Revised scripts/CMakeLists.txt
+  Rebuilt configure and Makefile.in with newer tools.
+  Added conditional #undef jmpbuf in pngtest.c to undo #define in AIX headers.
+  Added scripts/makefile.nommx
+
+Version 1.4.0beta20 [July 9, 2008]
+  Moved several PNG_HAVE_* macros from pngpriv.h to png.h because applications
+    calling set_unknown_chunk_location() need them.
+  Moved several macro definitions from pngpriv.h to pngconf.h
+  Merge with changes to the 1.2.X branch, as of 1.2.30beta04.
+  Deleted all use of the MMX assembler code and Intel-licensed optimizations.
+  Revised makefile.mingw
+
+Version 1.4.0beta21 [July 21, 2008]
+  Moved local array "chunkdata" from pngrutil.c to the png_struct, so
+    it will be freed by png_read_destroy() in case of a read error (Kurt
+    Christensen).
+
+Version 1.4.0beta22 [July 21, 2008]
+  Change "purpose" and "buffer" to png_ptr->chunkdata to avoid memory leaking.
+
+Version 1.4.0beta23 [July 22, 2008]
+  Change "chunkdata = NULL" to "png_ptr->chunkdata = NULL" several places in
+    png_decompress_chunk().
+
+Version 1.4.0beta24 [July 25, 2008]
+  Change all remaining "chunkdata" to "png_ptr->chunkdata" in
+    png_decompress_chunk(), and remove "chunkdata" from parameter list.
+  Put a call to png_check_chunk_name() in png_read_chunk_header().
+  Revised png_check_chunk_name() to reject a name with a lowercase 3rd byte.
+  Removed two calls to png_check_chunk_name() occuring later in the process.
+  Define PNG_NO_ERROR_NUMBERS by default in pngconf.h
+
+Version 1.4.0beta25 [July 30, 2008]
+  Added a call to png_check_chunk_name() in pngpread.c
+  Reverted png_check_chunk_name() to accept a name with a lowercase 3rd byte.
+  Added png_push_have_buffer() function to pngpread.c
+  Eliminated PNG_BIG_ENDIAN_SUPPORTED and associated png_get_* macros.
+  Made inline expansion of png_get_*() optional with PNG_USE_READ_MACROS.
+  Eliminated all PNG_USELESS_TESTS and PNG_CORRECT_PALETTE_SUPPORTED code.
+  Synced contrib directory and configure files with libpng-1.2.30beta06.
+  Eliminated no-longer-used pngdefs.h (but it's still built in the makefiles)
+  Relocated a misplaced "#endif /* PNG_NO_WRITE_FILTER */" in pngwutil.c
+
+Version 1.4.0beta26 [August 4, 2008]
+  Removed png_push_have_buffer() function in pngpread.c.  It increased the
+    compiled library size slightly.
+  Changed "-Wall" to "-W -Wall" in the CFLAGS in all makefiles (Cosmin Truta)
+  Declared png_ptr "volatile" in pngread.c and pngwrite.c to avoid warnings.
+  Updated contrib/visupng/cexcept.h to version 2.0.1
+  Added PNG_LITERAL_CHARACTER macros for #, [, and ].
+
+Version 1.4.0beta27 [August 5, 2008]
+  Revised usage of PNG_LITERAL_SHARP in pngerror.c.
+  Moved newline character from individual png_debug messages into the
+    png_debug macros.
+  Allow user to #define their own png_debug, png_debug1, and png_debug2.
+
+Version 1.4.0beta28 [August 5, 2008]
+  Revised usage of PNG_LITERAL_SHARP in pngerror.c.
+  Added PNG_STRING_NEWLINE macro
+
+Version 1.4.0beta29 [August 9, 2008]
+  Revised usage of PNG_STRING_NEWLINE to work on non-ISO compilers.
+  Added PNG_STRING_COPYRIGHT macro.
+  Added non-ISO versions of png_debug macros.
+
+Version 1.4.0beta30 [August 14, 2008]
+  Added premultiplied alpha feature (Volker Wiendl).
+
+Version 1.4.0beta31 [August 18, 2008]
+  Moved png_set_premultiply_alpha from pngtrans.c to pngrtran.c
+  Removed extra crc check at the end of png_handle_cHRM().  Bug introduced
+    in libpng-1.4.0beta20.
+
+Version 1.4.0beta32 [August 19, 2008]
+  Added PNG_WRITE_FLUSH_SUPPORTED block around new png_flush() call.
+  Revised PNG_NO_STDIO version of png_write_flush()
+
+Version 1.4.0beta33 [August 20, 2008]
+  Added png_get|set_chunk_cache_max() to limit the total number of sPLT,
+    text, and unknown chunks that can be stored.
+
+Version 1.4.0beta34 [September 6, 2008]
+  Shortened tIME_string to 29 bytes in pngtest.c
+  Fixed off-by-one error introduced in png_push_read_zTXt() function in
+    libpng-1.2.30beta04/pngpread.c (Harald van Dijk)
+
+Version 1.4.0beta35 [October 6, 2008]
+  Changed "trans_values" to "trans_color".
+  Changed so-number from 0 to 14.  Some OS do not like 0.
+  Revised makefile.darwin to fix shared library numbering.
+  Change png_set_gray_1_2_4_to_8() to png_set_expand_gray_1_2_4_to_8()
+    in example.c (debian bug report)
+
+Version 1.4.0beta36 [October 25, 2008]
+  Sync with tEXt vulnerability fix in libpng-1.2.33rc02.
+
+Version 1.4.0beta37 [November 13, 2008]
+  Added png_check_cHRM in png.c and moved checking from pngget.c, pngrutil.c,
+    and pngwrite.c
+
+Version 1.4.0beta38 [November 22, 2008]
+  Added check for zero-area RGB cHRM triangle in png_check_cHRM() and
+    png_check_cHRM_fixed().
+
+Version 1.4.0beta39 [November 23, 2008]
+  Revised png_warning() to write its message on standard output by default
+    when warning_fn is NULL.
+
+Version 1.4.0beta40 [November 24, 2008]
+  Eliminated png_check_cHRM().  Instead, always use png_check_cHRM_fixed().
+  In png_check_cHRM_fixed(), ensure white_y is > 0, and removed redundant
+    check for all-zero coordinates that is detected by the triangle check.
+
+Version 1.4.0beta41 [November 26, 2008]
+  Fixed string vs pointer-to-string error in png_check_keyword().
+  Rearranged test expressions in png_check_cHRM_fixed() to avoid internal
+    overflows.
+  Added PNG_NO_CHECK_cHRM conditional.
+
+Version 1.4.0beta42, 43 [December 1, 2008]
+  Merge png_debug with version 1.2.34beta04.
+
+Version 1.4.0beta44 [December 6, 2008]
+  Removed redundant check for key==NULL before calling png_check_keyword()
+    to ensure that new_key gets initialized and removed extra warning
+    (Merge with version 1.2.34beta05 -- Arvan Pritchard).
+
+Version 1.4.0beta45 [December 9, 2008]
+  In png_write_png(), respect the placement of the filler bytes in an earlier
+    call to png_set_filler() (Jim Barry).
+
+Version 1.4.0beta46 [December 10, 2008]
+  Undid previous change and added PNG_TRANSFORM_STRIP_FILLER_BEFORE and
+    PNG_TRANSFORM_STRIP_FILLER_AFTER conditionals and deprecated
+    PNG_TRANSFORM_STRIP_FILLER (Jim Barry).
+
+Version 1.4.0beta47 [December 15, 2008]
+  Support for dithering was disabled by default, because it has never
+    been well tested and doesn't work very well.  The code has not
+    been removed, however, and can be enabled by building libpng with
+    PNG_READ_DITHER_SUPPORTED defined.
+
+Version 1.4.0beta48 [February 14, 2009]
+  Added new exported function png_calloc().
+  Combined several instances of png_malloc(); png_memset() into png_calloc().
+  Removed prototype for png_freeptr() that was added in libpng-1.4.0beta24
+    but was never defined.
+
+Version 1.4.0beta49 [February 28, 2009]
+  Added png_fileno() macro to pngconf.h, used in pngwio.c
+  Corrected order of #ifdef's in png_debug definition in png.h
+  Fixed bug introduced in libpng-1.4.0beta48 with the memset arguments
+    for pcal_params.
+  Fixed order of #ifdef directives in the png_debug defines in png.h
+    (bug introduced in libpng-1.2.34/1.4.0beta29).
+  Revised comments in png_set_read_fn() and png_set_write_fn().
+
+Version 1.4.0beta50 [March 18, 2009]
+  Use png_calloc() instead of png_malloc() to allocate big_row_buf when
+    reading an interlaced file, to avoid a possible UMR.
+  Undid revision of PNG_NO_STDIO version of png_write_flush().  Users
+    having trouble with fflush() can build with PNG_NO_WRITE_FLUSH defined
+    or supply their own flush_fn() replacement.
+  Revised libpng*.txt and png.h documentation about use of png_write_flush()
+    and png_set_write_fn().
+  Removed fflush() from pngtest.c.
+  Added "#define PNG_NO_WRITE_FLUSH" to contrib/pngminim/encoder/pngusr.h
+
+Version 1.4.0beta51 [March 21, 2009]
+  Removed new png_fileno() macro from pngconf.h .
+
+Version 1.4.0beta52 [March 27, 2009]
+  Relocated png_do_chop() ahead of building gamma tables in pngrtran.c
+    This avoids building 16-bit gamma tables unnecessarily.
+  Removed fflush() from pngtest.c.
+  Added "#define PNG_NO_WRITE_FLUSH" to contrib/pngminim/encoder/pngusr.h
+  Added a section on differences between 1.0.x and 1.2.x to libpng.3/libpng.txt
+
+Version 1.4.0beta53 [April 1, 2009]
+  Removed some remaining MMX macros from pngpriv.h
+  Fixed potential memory leak of "new_name" in png_write_iCCP() (Ralph Giles)
+
+Version 1.4.0beta54 [April 13, 2009]
+  Added "ifndef PNG_SKIP_SETJMP_CHECK" block in pngconf.h to allow
+    application code writers to bypass the check for multiple inclusion
+    of setjmp.h when they know that it is safe to ignore the situation.
+  Eliminated internal use of setjmp() in pngread.c and pngwrite.c
+  Reordered ancillary chunks in pngtest.png to be the same as what
+    pngtest now produces, and made some cosmetic changes to pngtest output.
+  Eliminated deprecated png_read_init_3() and png_write_init_3() functions.
+
+Version 1.4.0beta55 [April 15, 2009]
+  Simplified error handling in pngread.c and pngwrite.c by putting
+    the new png_read_cleanup() and png_write_cleanup() functions inline.
+
+Version 1.4.0beta56 [April 25, 2009]
+  Renamed "user_chunk_data" to "my_user_chunk_data" in pngtest.c to suppress
+    "shadowed declaration" warning from gcc-4.3.3.
+  Renamed "gamma" to "png_gamma" in pngset.c to avoid "shadowed declaration"
+    warning about a global "gamma" variable in math.h on some platforms.
+
+Version 1.4.0beta57 [May 2, 2009]
+  Removed prototype for png_freeptr() that was added in libpng-1.4.0beta24
+    but was never defined (again).
+  Rebuilt configure scripts with autoconf-2.63 instead of 2.62
+  Removed pngprefs.h and MMX from makefiles
+
+Version 1.4.0beta58 [May 14, 2009]
+  Changed pngw32.def to pngwin.def in makefile.mingw (typo was introduced
+    in beta57).
+  Clarified usage of sig_bit versus sig_bit_p in example.c (Vincent Torri)
+
+Version 1.4.0beta59 [May 15, 2009]
+  Reformated sources in libpng style (3-space intentation, comment format)
+  Fixed typo in libpng docs (PNG_FILTER_AVE should be PNG_FILTER_AVG)
+  Added sections about the git repository and our coding style to the
+    documentation
+  Relocated misplaced #endif in pngwrite.c, sCAL chunk handler.
+
+Version 1.4.0beta60 [May 19, 2009]
+  Conditionally compile png_read_finish_row() which is not used by
+    progressive readers.
+  Added contrib/pngminim/preader to demonstrate building minimal progressive
+    decoder, based on contrib/gregbook with embedded libpng and zlib.
+
+Version 1.4.0beta61 [May 20, 2009]
+  In contrib/pngminim/*, renamed "makefile.std" to "makefile", since there
+    is only one makefile in those directories, and revised the README files
+    accordingly.
+  More reformatting of comments, mostly to capitalize sentences.
+
+Version 1.4.0beta62 [June 2, 2009]
+  Added "#define PNG_NO_WRITE_SWAP" to contrib/pngminim/encoder/pngusr.h
+    and "define PNG_NO_READ_SWAP" to decoder/pngusr.h and preader/pngusr.h
+  Reformatted several remaining "else statement" into two lines.
+  Added a section to the libpng documentation about using png_get_io_ptr()
+    in configure scripts to detect the presence of libpng.
+
+Version 1.4.0beta63 [June 15, 2009]
+  Revised libpng*.txt and libpng.3 to mention calling png_set_IHDR()
+    multiple times and to specify the sample order in the tRNS chunk,
+    because the ISO PNG specification has a typo in the tRNS table.
+  Changed several PNG_UNKNOWN_CHUNK_SUPPORTED to
+    PNG_HANDLE_AS_UNKNOWN_SUPPORTED, to make the png_set_keep mechanism
+    available for ignoring known chunks even when not saving unknown chunks.
+  Adopted preference for consistent use of "#ifdef" and "#ifndef" versus
+    "#if defined()" and "if !defined()" where possible.
+
+Version 1.4.0beta64 [June 24, 2009]
+  Eliminated PNG_LEGACY_SUPPORTED code.
+  Moved the various unknown chunk macro definitions outside of the
+     PNG_READ|WRITE_ANCILLARY_CHUNK_SUPPORTED blocks.
+
+Version 1.4.0beta65 [June 26, 2009]
+  Added a reference to the libpng license in each file.
+
+Version 1.4.0beta66 [June 27, 2009]
+  Refer to the libpng license instead of the libpng license in each file.
+
+Version 1.4.0beta67 [July 6, 2009]
+  Relocated INVERT_ALPHA within png_read_png() and png_write_png().
+  Added high-level API transform PNG_TRANSFORM_GRAY_TO_RGB.
+  Added an "xcode" project to the projects directory (Alam Arias).
+
+Version 1.4.0beta68 [July 19, 2009]
+  Avoid some tests in filter selection in pngwutil.c
+
+Version 1.4.0beta69 [July 25, 2009]
+  Simplified the new filter-selection test.  This runs faster in the
+    common "PNG_ALL_FILTERS" and PNG_FILTER_NONE cases.
+  Removed extraneous declaration from the new call to png_read_gray_to_rgb()
+    (bug introduced in libpng-1.4.0beta67).
+  Fixed up xcode project (Alam Arias)
+  Added a prototype for png_64bit_product() in png.c
+
+Version 1.4.0beta70 [July 27, 2009]
+  Avoid a possible NULL dereference in debug build, in png_set_text_2().
+    (bug introduced in libpng-0.95, discovered by Evan Rouault)
+
+Version 1.4.0beta71 [July 29, 2009]
+  Rebuilt configure scripts with autoconf-2.64.
+
+Version 1.4.0beta72 [August 1, 2009]
+  Replaced *.tar.lzma with *.tar.xz in distribution.  Get the xz codec
+    from <http://tukaani.org/xz>.
+
+Version 1.4.0beta73 [August 1, 2009]
+  Reject attempt to write iCCP chunk with negative embedded profile length
+    (JD Chen)
+
+Version 1.4.0beta74 [August 8, 2009]
+  Changed png_ptr and info_ptr member "trans" to "trans_alpha".
+
+Version 1.4.0beta75 [August 21, 2009]
+  Removed an extra png_debug() recently added to png_write_find_filter().
+  Fixed incorrect #ifdef in pngset.c regarding unknown chunk support.
+
+Version 1.4.0beta76 [August 22, 2009]
+  Moved an incorrectly located test in png_read_row() in pngread.c
+
+Version 1.4.0beta77 [August 27, 2009]
+  Removed lpXYZ.tar.bz2 (with CRLF), KNOWNBUG, libpng-x.y.z-KNOWNBUG.txt,
+    and the "noconfig" files from the distribution.
+  Moved CMakeLists.txt from scripts into the main libpng directory.
+  Various bugfixes and improvements to CMakeLists.txt (Philip Lowman)
+
+Version 1.4.0beta78 [August 31, 2009]
+  Converted all PNG_NO_* tests to PNG_*_SUPPORTED everywhere except pngconf.h
+  Eliminated PNG_NO_FREE_ME and PNG_FREE_ME_SUPPORTED macros.
+  Use png_malloc plus a loop instead of png_calloc() to initialize
+    row_pointers in png_read_png().
+
+Version 1.4.0beta79 [September 1, 2009]
+  Eliminated PNG_GLOBAL_ARRAYS and PNG_LOCAL_ARRAYS; always use local arrays.
+  Eliminated PNG_CALLOC_SUPPORTED macro and always provide png_calloc().
+
+Version 1.4.0beta80 [September 17, 2009]
+  Removed scripts/libpng.icc
+  Changed typecast of filler from png_byte to png_uint_16 in png_set_filler().
+    (Dennis Gustafsson)
+  Fixed typo introduced in beta78 in pngtest.c ("#if def " should be "#ifdef ")
+
+Version 1.4.0beta81 [September 23, 2009]
+  Eliminated unused PNG_FLAG_FREE_* defines from pngpriv.h
+  Expanded TAB characters in pngrtran.c
+  Removed PNG_CONST from all "PNG_CONST PNG_CHNK" declarations to avoid
+    compiler complaints about doubly declaring things "const".
+  Changed all "#if [!]defined(X)" to "if[n]def X" where possible.
+  Eliminated unused png_ptr->row_buf_size
+
+Version 1.4.0beta82 [September 25, 2009]
+  Moved redundant IHDR checking into new png_check_IHDR() in png.c
+    and report all errors found in the IHDR data.
+  Eliminated useless call to png_check_cHRM() from pngset.c
+
+Version 1.4.0beta83 [September 25, 2009]
+  Revised png_check_IHDR() to eliminate bogus complaint about filter_type.
+
+Version 1.4.0beta84 [September 30, 2009]
+  Fixed some inconsistent indentation in pngconf.h
+  Revised png_check_IHDR() to add a test for width variable less than 32-bit.
+
+Version 1.4.0beta85 [October 1, 2009]
+  Revised png_check_IHDR() again, to check info_ptr members instead of
+    the contents of the returned parameters.
+
+Version 1.4.0beta86 [October 9, 2009]
+  Updated the "xcode" project (Alam Arias).
+  Eliminated a shadowed declaration of "pp" in png_handle_sPLT().
+
+Version 1.4.0rc01 [October 19, 2009]
+  Trivial cosmetic changes.
+
+Version 1.4.0beta87 [October 30, 2009]
+  Moved version 1.4.0 back into beta.
+
+Version 1.4.0beta88 [October 30, 2009]
+  Revised libpng*.txt section about differences between 1.2.x and 1.4.0
+    because most of the new features have now been ported back to 1.2.41
+
+Version 1.4.0beta89 [November 1, 2009]
+  More bugfixes and improvements to CMakeLists.txt (Philip Lowman)
+  Removed a harmless extra png_set_invert_alpha() from pngwrite.c
+  Apply png_user_chunk_cache_max within png_decompress_chunk().
+  Merged libpng-1.2.41.txt with libpng-1.4.0.txt where appropriate.
+
+Version 1.4.0beta90 [November 2, 2009]
+  Removed all remaining WIN32_WCE #ifdefs except those involving the
+    time.h "tm" structure
+
+Version 1.4.0beta91 [November 3, 2009]
+  Updated scripts/pngw32.def and projects/wince/png32ce.def
+  Copied projects/wince/png32ce.def to the scripts directory.
+  Added scripts/makefile.wce
+  Patched ltmain.sh for wince support.
+  Added PNG_CONVERT_tIME_SUPPORTED macro.
+
+Version 1.4.0beta92 [November 4, 2009]
+  Make inclusion of time.h in pngconf.h depend on PNG_CONVERT_tIME_SUPPORTED
+  Make #define PNG_CONVERT_tIME_SUPPORTED depend on PNG_WRITE_tIME_SUPPORTED
+  Revised libpng*.txt to describe differences from 1.2.40 to 1.4.0 (instead
+    of differences from 1.2.41 to 1.4.0)
+
+Version 1.4.0beta93 [November 7, 2009]
+  Added PNG_DEPSTRUCT, PNG_DEPRECATED, PNG_USE_RESULT, PNG_NORETURN, and
+    PNG_ALLOCATED macros to detect deprecated direct access to the
+    png_struct or info_struct members and other deprecated usage in
+    applications (John Bowler).
+  Updated scripts/makefile* to add "-DPNG_CONFIGURE_LIBPNG" to CFLAGS,
+    to prevent warnings about direct access to png structs by libpng
+    functions while building libpng.  They need to be tested, especially
+    those using compilers other than gcc.
+  Updated projects/visualc6 and visualc71 with "/d PNG_CONFIGURE_LIBPNG".
+    They should work but still need to be updated to remove
+    references to pnggccrd.c or pngvcrd.c and ASM building.
+  Added README.txt to the beos, cbuilder5, netware, and xcode projects warning
+    that they need to be updated, to remove references to pnggccrd.c and
+    pngvcrd.c and to depend on pngpriv.h
+  Removed three direct references to read_info_ptr members in pngtest.c
+    that were detected by the new PNG_DEPSTRUCT macro.
+  Moved the png_debug macro definitions and the png_read_destroy(),
+    png_write_destroy() and png_far_to_near() prototypes from png.h
+    to pngpriv.h (John Bowler)
+  Moved the synopsis lines for png_read_destroy(), png_write_destroy()
+    png_debug(), png_debug1(), and png_debug2() from libpng.3 to libpngpf.3.
+
+Version 1.4.0beta94 [November 9, 2009]
+  Removed the obsolete, unused pnggccrd.c and pngvcrd.c files.
+  Updated CMakeLists.txt to add "-DPNG_CONFIGURE_LIBPNG" to the definitions.
+  Removed dependency of pngtest.o on pngpriv.h in the makefiles.
+  Only #define PNG_DEPSTRUCT, etc. in pngconf.h if not already defined.
+
+Version 1.4.0beta95 [November 10, 2009]
+  Changed png_check_sig() to !png_sig_cmp() in contrib programs.
+  Added -DPNG_CONFIGURE_LIBPNG to contrib/pngminm/*/makefile
+  Changed png_check_sig() to !png_sig_cmp() in contrib programs.
+  Corrected the png_get_IHDR() call in contrib/gregbook/readpng2.c
+  Changed pngminim/*/gather.sh to stop trying to remove pnggccrd.c and pngvcrd.c
+  Added dependency on pngpriv.h in contrib/pngminim/*/makefile
+
+Version 1.4.0beta96 [November 12, 2009]
+  Renamed scripts/makefile.wce to scripts/makefile.cegcc
+  Revised Makefile.am to use libpng.sys while building libpng.so
+    so that only PNG_EXPORT functions are exported.
+  Removed the deprecated png_check_sig() function/macro.
+  Removed recently removed function names from scripts/*.def
+  Revised pngtest.png to put chunks in the same order written by pngtest
+    (evidently the same change made in libpng-1.0beta54 was lost).
+  Added PNG_PRIVATE macro definition in pngconf.h for possible future use.
+
+Version 1.4.0beta97 [November 13, 2009]
+  Restored pngtest.png to the libpng-1.4.0beta7 version.
+  Removed projects/beos and netware.txt; no one seems to be supporting them.
+  Revised Makefile.in
+
+Version 1.4.0beta98 [November 13, 2009]
+  Added the "xcode" project to zip distributions,
+  Fixed a typo in scripts/pngwin.def introduced in beta97.
+
+Version 1.4.0beta99 [November 14, 2009]
+  Moved libpng-config.in and libpng.pc-configure.in out of the scripts
+    directory, to libpng-config.in and libpng-pc.in, respectively, and
+    modified Makefile.am and configure.ac accordingly.  Now "configure"
+    needs nothing from the "scripts" directory.
+  Avoid redefining PNG_CONST in pngconf.h
+
+Version 1.4.0beta100 [November 14, 2009]
+  Removed ASM builds from projects/visualc6 and projects/visualc71
+  Removed scripts/makefile.nommx and makefile.vcawin32
+  Revised CMakeLists.txt to account for new location of libpng-config.in
+    and libpng-pc.in
+  Updated INSTALL to reflect removal and relocation of files.
+
+Version 1.4.0beta101 [November 14, 2009]
+  Restored the binary files (*.jpg, *.png, some project files) that were
+    accidentally deleted from the zip and 7z distributions when the xcode
+    project was added.
+
+Version 1.4.0beta102 [November 18, 2009]
+  Added libpng-config.in and libpng-pc.in to the zip and 7z distributions.
+  Fixed a typo in projects/visualc6/pngtest.dsp, introduced in beta100.
+  Moved descriptions of makefiles and other scripts out of INSTALL into
+    scripts/README.txt
+  Updated the copyright year in scripts/pngwin.rc from 2006 to 2009.
+
+Version 1.4.0beta103 [November 21, 2009]
+  Removed obsolete comments about ASM from projects/visualc71/README_zlib.txt
+  Align row_buf on 16-byte boundary in memory.
+  Restored the PNG_WRITE_FLUSH_AFTER_IEND_SUPPORTED guard around the call
+    to png_flush() after png_write_IEND().  See 1.4.0beta32, 1.4.0beta50
+    changes above and 1.2.30, 1.2.30rc01 and rc03 in 1.2.41 CHANGES.  Someone
+    needs this feature.
+  Make the 'png_jmpbuf' macro expand to a call that records the correct
+    longjmp function as well as returning a pointer to the setjmp
+    jmp_buf buffer, and marked direct access to jmpbuf 'deprecated'.
+    (John Bowler)
+
+Version 1.4.0beta104 [November 22, 2009]
+  Removed png_longjmp_ptr from scripts/*.def and libpng.3
+  Rebuilt configure scripts with autoconf-2.65
+
+Version 1.4.0beta105 [November 25, 2009]
+  Use fast integer PNG_DIVIDE_BY_255() or PNG_DIVIDE_BY_65535()
+    to accomplish alpha premultiplication when
+    PNG_READ_COMPOSITE_NODIV_SUPPORTED is defined.
+  Changed "/255" to "/255.0" in background calculations to make it clear
+    that the 255 is used as a double.
+
+Version 1.4.0beta106 [November 27, 2009]
+  Removed premultiplied alpha feature.
+
+Version 1.4.0beta107 [December 4, 2009]
+  Updated README
+  Added "#define PNG_NO_PEDANTIC_WARNINGS" in the libpng source files.
+  Removed "-DPNG_CONFIGURE_LIBPNG" from the makefiles and projects.
+  Revised scripts/makefile.netbsd, makefile.openbsd, and makefile.sco
+    to put png.h and pngconf.h in $prefix/include, like the other scripts,
+    instead of in $prefix/include/libpng.  Also revised makefile.sco
+    to put them in $prefix/include/libpng15 instead of in
+    $prefix/include/libpng/libpng15.
+
+Version 1.4.0beta108 [December 11, 2009]
+  Removed leftover "-DPNG_CONFIGURE_LIBPNG" from contrib/pngminim/*/makefile
+  Relocated png_do_chop() to its original position in pngrtran.c; the
+    change in version 1.2.41beta08 caused transparency to be handled wrong
+    in some 16-bit datastreams (Yusaku Sugai).
+
+Version 1.4.0beta109 [December 13, 2009]
+  Added "bit_depth" parameter to the private png_build_gamma_table() function.
+  Pass bit_depth=8 to png_build_gamma_table() when bit_depth is 16 but the
+    PNG_16_TO_8 transform has been set, to avoid unnecessary build of 16-bit
+    tables.
+
+Version 1.4.0rc02 [December 20, 2009]
+  Declared png_cleanup_needed "volatile" in pngread.c and pngwrite.c
+
+Version 1.4.0rc03 [December 22, 2009]
+  Renamed libpng-pc.in back to libpng.pc.in and revised CMakeLists.txt
+    (revising the change in 1.4.0beta99)
+
+Version 1.4.0rc04 [December 25, 2009]
+  Swapped PNG_UNKNOWN_CHUNKS_SUPPORTED and PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+    in pngset.c to be consistent with other changes in version 1.2.38.
+
+Version 1.4.0rc05 [December 25, 2009]
+  Changed "libpng-pc.in" to "libpng.pc.in" in configure.ac, configure, and
+    Makefile.in to be consistent with changes in libpng-1.4.0rc03
+
+Version 1.4.0rc06 [December 29, 2009]
+  Reverted the gamma_table changes from libpng-1.4.0beta109.
+  Fixed some indentation errors.
+
+Version 1.4.0rc07 [January 1, 2010]
+  Revised libpng*.txt and libpng.3 about 1.2.x->1.4.x differences.
+  Use png_calloc() instead of png_malloc(); png_memset() in pngrutil.c
+  Update copyright year to 2010.
+
+Version 1.4.0rc08 [January 2, 2010]
+  Avoid deprecated references to png_ptr-io_ptr and png_ptr->error_ptr
+    in pngtest.c
+
+Version 1.4.0 [January 3, 2010]
+  No changes.
+
+Version 1.4.1beta01 [January 8, 2010]
+  Updated CMakeLists.txt for consistent indentation and to avoid an
+    unclosed if-statement warning (Philip Lowman).
+  Revised Makefile.am and Makefile.in to remove references to Y2KINFO,
+    KNOWNBUG, and libpng.la (Robert Schwebel).
+  Revised the makefiles to install the same files and symbolic
+    links as configure, except for libpng.la and libpng14.la.
+  Make png_set|get_compression_buffer_size() available even when
+    PNG_WRITE_SUPPORTED is not enabled.
+  Revised Makefile.am and Makefile.in to simplify their maintenance.
+  Revised scripts/makefile.linux to install a link to libpng14.so.14.1
+
+Version 1.4.1beta02 [January 9, 2010]
+  Revised the rest of the makefiles to install a link to libpng14.so.14.1
+
+Version 1.4.1beta03 [January 10, 2010]
+  Removed png_set_premultiply_alpha() from scripts/*.def
+
+Version 1.4.1rc01 [January 16, 2010]
+  No changes.
+
+Version 1.4.1beta04 [January 23, 2010]
+  Revised png_decompress_chunk() to improve speed and memory usage when
+    decoding large chunks.
+  Added png_set|get_chunk_malloc_max() functions.
+
+Version 1.4.1beta05 [January 26, 2010]
+  Relocated "int k" declaration in pngtest.c to minimize its scope.
+
+Version 1.4.1beta06 [January 28, 2010]
+  Revised png_decompress_chunk() to use a two-pass method suggested by
+    John Bowler.
+
+Version 1.4.1beta07 [February 6, 2010]
+  Folded some long lines in the source files.
+  Added defineable PNG_USER_CHUNK_CACHE_MAX, PNG_USER_CHUNK_MALLOC_MAX,
+    and a PNG_USER_LIMITS_SUPPORTED flag.
+  Eliminated use of png_ptr->irowbytes and reused the slot in png_ptr as
+    png_ptr->png_user_chunk_malloc_max.
+  Revised png_push_save_buffer() to do fewer but larger png_malloc() calls.
+
+Version 1.4.1beta08 [February 6, 2010]
+  Minor cleanup and updating of dates and copyright year.
+
+Version 1.5.0beta01 [February 7, 2010]
+  Moved declaration of png_struct into private pngstruct.h and png_info
+    into pnginfo.h
+
+Version 1.4.1beta09 and 1.5.0beta02 [February 7, 2010]
+  Reverted to original png_push_save_buffer() code.
+
+Version 1.4.1beta10 and 1.5.0beta03 [February 8, 2010]
+  Return allocated "old_buffer" in png_push_save_buffer() before
+    calling png_error(), to avoid a potential memory leak.
+  Updated configure script to use SO number 15.
+
+Version 1.5.0beta04 [February 9, 2010]
+  Removed malformed "incomplete struct declaration" of png_info from png.h
+
+Version 1.5.0beta05 [February 12, 2010]
+  Removed PNG_DEPSTRUCT markup in pngstruct.h and pnginfo.h, and undid the
+    linewrapping that it entailed.
+  Revised comments in pngstruct.h and pnginfo.h and added pointers to
+    the libpng license.
+  Changed PNG_INTERNAL to PNG_EXPOSE_INTERNAL_STRUCTURES
+  Removed the cbuilder5 project, which has not been updated to 1.4.0.
+
+Version 1.4.1beta12 and 1.5.0beta06 [February 14, 2010]
+  Fixed type declaration of png_get_chunk_malloc_max() in pngget.c (Daisuke
+    Nishikawa)
+
+Version 1.5.0beta07 [omitted]
+
+Version 1.5.0beta08 [February 19, 2010]
+  Changed #ifdef PNG_NO_STDIO_SUPPORTED to #ifdef PNG_NO_CONSOLE_IO_SUPPORTED
+    wherever png_snprintf() is used to construct error and warning messages.
+  Noted in scripts/makefile.mingw that it expects to be run under MSYS.
+  Removed obsolete unused MMX-querying support from contrib/gregbook
+  Added exported png_longjmp() function.
+  Removed the AIX redefinition of jmpbuf in png.h
+  Added -D_ALLSOURCE in configure.ac, makefile.aix, and CMakeLists.txt
+    when building on AIX.
+
+Version 1.5.0beta09 [February 19, 2010]
+  Removed -D_ALLSOURCE from configure.ac, makefile.aix, and CMakeLists.txt.
+  Changed the name of png_ptr->jmpbuf to png_ptr->png_jmpbuf in pngstruct.h
+
+Version 1.5.0beta10 [February 25, 2010]
+  Removed unused gzio.c from contrib/pngminim gather and makefile scripts
+  Removed replacement error handlers from contrib/gregbook.  Because of
+    the new png_longjmp() function they are no longer needed.
+
+Version 1.5.0beta11 [March 6, 2010]
+  Removed checking for already-included setjmp.h from pngconf.h
+  Fixed inconsistent indentations and made numerous cosmetic changes.
+  Revised the "SEE ALSO" style of libpng.3, libpngpf.3, and png.5
+
+Version 1.5.0beta12 [March 9, 2010]
+  Moved "#include png.h" inside pngpriv.h and removed "#include png.h" from
+    the source files, along with "#define PNG_EXPOSE_INTERNAL_STRUCTURES"
+    and "#define PNG_NO_PEDANTIC_WARNINGS" (John Bowler).
+  Created new pngdebug.h and moved debug definitions there.
+
+Version 1.5.0beta13 [March 10, 2010]
+  Protect pngstruct.h, pnginfo.h, and pngdebug.h from being included twice.
+  Revise the "#ifdef" blocks in png_inflate() so it will compile when neither
+    PNG_USER_CHUNK_MALLOC_MAX nor PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
+    is defined.
+  Removed unused png_measure_compressed_chunk() from pngpriv.h and libpngpf.3
+  Moved the 'config.h' support from pngconf.h to pngpriv.h
+  Removed PNGAPI from the png_longjmp_ptr typedef.
+  Eliminated dependence of pngtest.c on the private pngdebug.h file.
+  Make all png_debug macros into *unterminated* statements or
+    expressions (i.e. a trailing ';' must always be added) and correct
+    the format statements in various png_debug messages.
+
+Version 1.5.0beta14 [March 14, 2010]
+  Removed direct access to png_ptr->io_ptr from the Windows code in pngtest.c
+  Revised Makefile.am to account for recent additions and replacements.
+  Corrected CE and OS/2 DEF files (scripts/png*def) for symbols removed and
+    added ordinal numbers to the Windows DEF file and corrected the duplicated
+    ordinal numbers on CE symbols that are commented out.
+  Added back in export symbols that can be present in the Windows build but
+    are disabled by default.
+  PNG_EXPORT changed to include an 'ordinal' field for DEF file generation.
+    PNG_CALLBACK added to make callback definitions uniform.  PNGAPI split
+    into PNGCAPI (base C form), PNGAPI (exports) and PNGCBAPI (callbacks),
+    and appropriate changes made to all files.  Cygwin builds re-hinged to
+    allow procedure call standard changes and to remove the need for the DEF
+    file (fixes build on Cygwin).
+  Enabled 'attribute' warnings that are relevant to library APIs and callbacks.
+  Changed rules for generation of the various symbol files and added a new
+    rule for a DEF file (which is also added to the distribution).
+  Updated the symbol file generation to stop it adding spurious spaces
+    to EOL (coming from preprocessor macro expansion).  Added a facility
+    to join tokens in the output and rewrite *.dfn to use this.
+  Eliminated scripts/*.def in favor of libpng.def; updated projects/visualc71
+    and removed scripts/makefile.cygwin.
+  Made PNG_BUILD_DLL safe: it can be set whenever a DLL is being built.
+  Removed the include of sys/types.h - apparently unnecessary now on the
+    platforms on which it happened (all but Mac OS and RISC OS).
+  Moved the Mac OS test into pngpriv.h (the only place it is used.)
+
+Version 1.5.0beta15 [March 17, 2010]
+  Added symbols.chk target to Makefile.am to validate the symbols in png.h
+    against the new DEF file scripts/symbols.def.
+  Changed the default DEF file back to pngwin.def.
+  Removed makefile.mingw.
+  Eliminated PNG_NO_EXTERN and PNG_ALL_EXTERN
+
+Version 1.5.0beta16 [April 1, 2010]
+  Make png_text_struct independent of PNG_iTXt_SUPPORTED, so that
+    fields are initialized in all configurations.  The READ/WRITE
+    macros (PNG_(READ|WRITE)_iTXt_SUPPORTED) still function as
+    before to disable code to actually read or write iTXt chunks
+    and iTXt_SUPPORTED can be used to detect presence of either
+    read or write support (but it is probably better to check for
+    the one actually required - read or write.)
+  Combined multiple png_warning() calls for a single error.
+  Restored the macro definition of png_check_sig().
+
+Version 1.5.0beta17 [April 17, 2010]
+  Added some "(long)" typecasts to printf calls in png_handle_cHRM().
+  Documented the fact that png_set_dither() was disabled since libpng-1.4.0.
+  Reenabled png_set_dither() but renamed it to png_set_quantize() to reflect
+    more accurately what it actually does.  At the same time, renamed
+    the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros to
+    PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS.
+  Added some "(long)" typecasts to printf calls in png_handle_cHRM().
+  Freeze build-time only configuration in the build.
+    In all prior versions of libpng most configuration options
+    controlled by compiler #defines had to be repeated by the
+    application code that used libpng.  This patch changes this
+    so that compilation options that can only be changed at build
+    time are frozen in the build.  Options that are compiler
+    dependent (and those that are system dependent) are evaluated
+    each time - pngconf.h holds these.  Options that can be changed
+    per-file in the application are in png.h.  Frozen options are
+    in the new installed header file pnglibconf.h (John Bowler)
+  Removed the xcode project because it has not been updated to work
+    with libpng-1.5.0.
+  Removed the ability to include optional pngusr.h
+
+Version 1.5.0beta18 [April 17, 2010]
+  Restored the ability to include optional pngusr.h
+  Moved replacements for png_error() and png_warning() from the
+    contrib/pngminim project to pngerror.c, for use when warnings or
+    errors are disabled via PNG_NO_WARN or PNG_NO_ERROR_TEXT, to avoid
+    storing unneeded error/warning text.
+  Updated contrib/pngminim project to work with the new pnglibconf.h
+  Added some PNG_NO_* defines to contrib/pngminim/*/pngusr.h to save space.
+
+Version 1.5.0beta19 [April 24, 2010]
+  Added PNG_{READ,WRITE}_INT_FUNCTIONS_SUPPORTED.  This allows the functions
+    to read and write ints to be disabled independently of PNG_USE_READ_MACROS,
+    which allows libpng to be built with the functions even though the default
+    is to use the macros - this allows applications to choose at app build
+    time whether or not to use macros (previously impossible because the
+    functions weren't in the default build.)
+  Changed Windows calling convention back to __cdecl for API functions.
+    For Windows/x86 platforms only:
+      __stdcall is no longer needed for Visual Basic, so libpng-1.5.0 uses
+      __cdecl throughout (both API functions and callbacks) on Windows/x86
+      platforms.
+  Replaced visualc6 and visualc71 projects with new vstudio project
+  Relaxed the overly-restrictive permissions of some files.
+
+Version 1.5.0beta20 [April 24, 2010]
+  Relaxed more overly-restrictive permissions of some files.
+
+Version 1.5.0beta21 [April 27, 2010]
+  Removed some unwanted binary bytes and changed CRLF to NEWLINE in the new
+    vstudio project files, and some trivial editing of some files in the
+    scripts directory.
+  Set PNG_NO_READ_BGR, PNG_NO_IO_STATE, and PNG_NO_TIME_RFC1123 in
+    contrib/pngminim/decoder/pngusr.h to make a smaller decoder application.
+
+Version 1.5.0beta22 [April 28, 2010]
+  Fixed dependencies of GET_INT_32 - it does not require READ_INT_FUNCTIONS
+    because it has a macro equivalent.
+  Improved the options.awk script; added an "everything off" option.
+  Revised contrib/pngminim to use the "everything off" option in pngusr.dfa.
+
+Version 1.5.0beta23 [April 29, 2010]
+  Corrected PNG_REMOVED macro to take five arguments.
+    The macro was documented with two arguments (name,ordinal), however
+    the symbol checking .dfn files assumed five arguments.  The five
+    argument form seems more useful so it is changed to that.
+  Corrected PNG_UNKNOWN_CHUNKS_SUPPORTED to PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+    in gregbook/readpng2.c
+  Corrected protection of png_get_user_transform_ptr. The API declaration in
+    png.h is removed if both READ and WRITE USER_TRANSFORM are turned off
+    but was left defined in pngtrans.c
+  Added logunsupported=1 to cause pnglibconf.h to document disabled options.
+    This makes the installed pnglibconf.h more readable but causes no
+    other change.  The intention is that users of libpng will find it
+    easier to understand if an API they need is missing.
+  Include png_reset_zstream() in png.c only when PNG_READ_SUPPORTED is defined.
+  Removed dummy_inflate.c from contrib/pngminim/encoder
+  Removed contrib/pngminim/*/gather.sh; gathering is now done in the makefile.
+
+Version 1.5.0beta24 [May 7, 2010]
+  Use bitwise "&" instead of arithmetic mod in pngrutil.c calculation of the
+    offset of the png_ptr->rowbuf pointer into png_ptr->big_row_buf.
+  Added more blank lines for readability.
+
+Version 1.5.0beta25 [June 18, 2010]
+  In pngpread.c: png_push_have_row() add check for new_row > height
+  Removed the now-redundant check for out-of-bounds new_row from example.c
+
+Version 1.5.0beta26 [June 18, 2010]
+  In pngpread.c: png_push_process_row() add check for too many rows.
+
+Version 1.5.0beta27 [June 18, 2010]
+  Removed the check added in beta25 as it is now redundant.
+
+Version 1.5.0beta28 [June 20, 2010]
+  Rewrote png_process_IDAT_data to consistently treat extra data as warnings
+    and handle end conditions more cleanly.
+  Removed the new (beta26) check in png_push_process_row().
+
+Version 1.5.0beta29 [June 21, 2010]
+  Revised scripts/options.awk to work on Sunos (but still doesn't work)
+  Added comment to options.awk and contrib/pngminim/*/makefile to try nawk.
+
+Version 1.5.0beta30 [June 22, 2010]
+  Stop memory leak when reading a malformed sCAL chunk.
+
+Version 1.5.0beta31 [June 26, 2010]
+  Revised pngpread.c patch of beta28 to avoid an endless loop.
+  Removed some trailing blanks.
+
+Version 1.5.0beta32 [June 26, 2010]
+  Removed leftover scripts/options.patch and scripts/options.rej
+
+Version 1.5.0beta33 [July 6, 3010]
+  Made FIXED and FLOATING options consistent in the APIs they enable and
+    disable.  Corrected scripts/options.awk to handle both command line
+    options and options specified in the .dfa files.
+  Changed char *msg to PNG_CONST char *msg in pngrutil.c
+  Make png_set_sRGB_gAMA_and_cHRM set values using either the fixed or
+    floating point APIs, but not both.
+  Reversed patch to remove error handler when the jmp_buf is stored in the
+    main program structure, not the png_struct.
+    The error handler is needed because the default handler in libpng will
+    always use the jmp_buf in the library control structure; this is never
+    set.  The gregbook code is a useful example because, even though it
+    uses setjmp/longjmp, it shows how error handling can be implemented
+    using control mechanisms not directly supported by libpng.  The
+    technique will work correctly with mechanisms such as Microsoft
+    Structure Exceptions or C++ exceptions (compiler willing - note that gcc
+    does not by default support interworking of C and C++ error handling.)
+  Reverted changes to call png_longjmp in contrib/gregbook where it is not
+    appropriate.  If mainprog->jmpbuf is used by setjmp, then png_longjmp
+    cannot be used.
+  Changed "extern PNG_EXPORT" to "PNG_EXPORT" in png.h (Jan Nijtmans)
+  Changed "extern" to "PNG_EXTERN" in pngpriv.h (except for the 'extern "C" {')
+
+Version 1.5.0beta34 [July 12, 2010]
+  Put #ifndef PNG_EXTERN, #endif around the define PNG_EXTERN in pngpriv.h
+
+Version 1.5.0beta35 [July 24, 2010]
+  Removed some newly-added TAB characters.
+  Added -DNO_PNG_SNPRINTF to CFLAGS in scripts/makefile.dj2
+  Moved the definition of png_snprintf() outside of the enclosing
+    #ifdef blocks in pngconf.h
+
+Version 1.5.0beta36 [July 29, 2010]
+  Patches by John Bowler:
+  Fixed point APIs are now supported throughout (no missing APIs).
+  Internal fixed point arithmetic support exists for all internal floating
+    point operations.
+  sCAL validates the floating point strings it is passed.
+  Safe, albeit rudimentary, Watcom support is provided by PNG_API_RULE==2
+  Two new APIs exist to get the number of passes without turning on the
+    PNG_INTERLACE transform and to get the number of rows in the current
+    pass.
+  A new test program, pngvalid.c, validates the gamma code.
+  Errors in the 16-bit gamma correction (overflows) have been corrected.
+  cHRM chunk testing is done consistently (previously the floating point
+    API bypassed it, because the test really didn't work on FP, now the test
+    is performed on the actual values to be stored in the PNG file so it
+    works in the FP case too.)
+  Most floating point APIs now simply call the fixed point APIs after
+    converting the values to the fixed point form used in the PNG file.
+  The standard headers no longer include zlib.h, which is currently only
+    required for pngstruct.h and can therefore be internal.
+  Revised png_get_int_32 to undo the PNG two's complement representation of
+    negative numbers.
+
+Version 1.5.0beta37 [July 30, 2010]
+  Added a typecast in png_get_int_32() in png.h and pngrutil.h to avoid
+    a compiler warning.
+  Replaced oFFs 0,0 with oFFs -10,20 in pngtest.png
+
+Version 1.5.0beta38 [July 31, 2010]
+  Implemented remaining "_fixed" functions.
+  Corrected a number of recently introduced warnings mostly resulting from
+    safe but uncast assignments to shorter integers.  Also added a zlib
+    VStudio release library project because the latest zlib Official Windows
+    build does not include such a thing.
+  Revised png_get_int_16() to be similar to png_get_int_32().
+  Restored projects/visualc71.
+
+Version 1.5.0beta39 [August 2, 2010]
+  VisualC/GCC warning fixes, VisualC build fixes
+  The changes include support for function attributes in VC in addition to
+    those already present in GCC - necessary because without these some
+    warnings are unavoidable.  Fixes include signed/unsigned fixes in
+    pngvalid and checks with gcc -Wall -Wextra -Wunused.
+  VC requires function attributes on function definitions as well as
+    declarations, PNG_FUNCTION has been added to enable this and the
+    relevant function definitions changed.
+
+Version 1.5.0beta40 [August 6, 2010]
+  Correct use of _WINDOWS_ in pngconf.h
+  Removed png_mem_ #defines; they are no longer used.
+  Added the sRGB chunk to pngtest.png
+
+Version 1.5.0beta41 [August 11, 2010]
+  Added the cHRM chunk to pngtest.png
+  Don't try to use version-script with cygwin/mingw.
+  Revised contrib/gregbook to work under cygwin/mingw.
+
+Version 1.5.0beta42 [August 18, 2010]
+  Add .dll.a to the list of extensions to be symlinked by Makefile.am (Yaakov)
+  Made all API functions that have const arguments and constant string
+    literal pointers declare them (John Bowler).
+
+Version 1.5.0beta43 [August 20, 2010]
+  Removed spurious tabs, shorten long lines (no source change)
+    Also added scripts/chkfmt to validate the format of all the files that can
+    reasonably be validated (it is suggested to run "make distclean" before
+    checking, because some machine generated files have long lines.)
+  Reformatted the CHANGES file to be more consistent throughout.
+  Made changes to address various issues identified by GCC, mostly
+    signed/unsigned and shortening problems on assignment but also a few
+    difficult to optimize (for GCC) loops.
+  Fixed non-GCC fixed point builds.  In png.c a declaration was misplaced
+    in an earlier update.  Fixed to declare the auto variables at the head.
+  Use cexcept.h in pngvalid.c.
+
+Version 1.5.0beta44 [August 24, 2010]
+  Updated CMakeLists.txt to use CMAKE_INSTALL_LIBDIR variable; useful for
+    installing libpng in /usr/lib64 (Funda Wang).
+  Revised CMakeLists.txt to put the man pages in share/man/man* not man/man*
+  Revised CMakeLists.txt to make symlinks instead of copies when installing.
+  Changed PNG_LIB_NAME from pngNN to libpngNN in CMakeLists.txt (Philip Lowman)
+  Implemented memory checks within pngvalid
+  Reformatted/rearranged pngvalid.c to assist use of progressive reader.
+  Check interlaced images in pngvalid
+  Clarified pngusr.h comments in pnglibconf.dfa
+  Simplified the pngvalid error-handling code now that cexcept.h is in place.
+  Implemented progressive reader in pngvalid.c for standard tests
+  Implemented progressive read in pngvalid.c gamma tests
+  Turn on progressive reader in pngvalid.c by default and tidy code.
+
+Version 1.5.0beta45 [August 26, 2010]
+  Added an explicit make step to projects/vstudio for pnglibconf.h
+    Also corrected zlib.vcxproj into which Visual Studio had introduced
+    what it calls an "authoring error".  The change to make pnglibconf.h
+    simply copies the file; in the future it may actually generate the
+    file from scripts/pnglibconf.dfa as the other build systems do.
+  Changed pngvalid to work when floating point APIs are disabled
+  Renamed the prebuilt scripts/pnglibconf.h to scripts/pnglibconf.h.prebuilt
+  Supply default values for PNG_USER_PRIVATEBUILD and PNG_USER_DLLFNAME_POSTFIX
+    in pngpriv.h in case the user neglected to define them in their pngusr.h
+
+Version 1.5.0beta46 [August 28, 2010]
+  Added new private header files to libpng_sources in CMakeLists.txt
+  Added PNG_READ_16BIT, PNG_WRITE_16BIT, and PNG_16BIT options.
+  Added reference to scripts/pnglibconf.h.prebuilt in the visualc71 project.
+
+Version 1.5.0beta47 [September 11, 2010]
+  Fixed a number of problems with 64-bit compilation reported by Visual
+    Studio 2010 (John Bowler).
+
+Version 1.5.0beta48 [October 4, 2010]
+  Updated CMakeLists.txt (Philip Lowman).
+  Revised autogen.sh to recognize and use $AUTOCONF, $AUTOMAKE, $AUTOHEADER,
+    $AUTOPOINT, $ACLOCAL and $LIBTOOLIZE
+  Fixed problem with symbols creation in Makefile.am which was assuming that
+    all versions of ccp write to standard output by default (Martin Banky). The
+    bug was introduced in libpng-1.2.9beta5.
+  Removed unused mkinstalldirs.
+
+Version 1.5.0beta49 [October 8, 2010]
+  Undid Makefile.am revision of 1.5.0beta48.
+
+Version 1.5.0beta50 [October 14, 2010]
+  Revised Makefile.in to account for mkinstalldirs being removed.
+  Added some "(unsigned long)" typecasts in printf statements in pngvalid.c.
+  Suppressed a compiler warning in png_handle_sPLT().
+  Check for out-of-range text compression mode in png_set_text().
+
+Version 1.5.0beta51 [October 15, 2010]
+  Changed embedded dates to "(PENDING RELEASE) in beta releases (and future
+    rc releases) to minimize the difference between releases.
+
+Version 1.5.0beta52 [October 16, 2010]
+  Restored some of the embedded dates (in png.h, png.c, documentation, etc.)
+
+Version 1.5.0beta53 [October 18, 2010]
+  Updated INSTALL to mention using "make maintainer-clean" and to remove
+    obsolete statement about a custom ltmain.sh
+  Disabled "color-tests" by default in Makefile.am so it will work with
+    automake versions earlier than 1.11.1
+  Use document name "libpng-manual.txt" instead of "libpng-<version>.txt"
+    to simplify version differences.
+  Removed obsolete remarks about setjmp handling from INSTALL.
+  Revised and renamed the typedef in png.h and png.c that was designed
+    to catch library and header mismatch.
+
+Version 1.5.0beta54 [November 10, 2010]
+  Require 48 bytes, not 64 bytes, for big_row_buf in overflow checks.
+  Used a consistent structure for the pngget.c functions.
+
+Version 1.5.0beta55 [November 21, 2010]
+  Revised png_get_uint_32, png_get_int_32, png_get_uint_16 (Cosmin)
+  Moved reading of file signature into png_read_sig (Cosmin)
+  Fixed atomicity of chunk header serialization (Cosmin)
+  Added test for io_state in pngtest.c (Cosmin)
+  Added "#!/bin/sh" at the top of contrib/pngminim/*/gather.sh scripts.
+  Changes to remove gcc warnings (John Bowler)
+    Certain optional gcc warning flags resulted in warnings in libpng code.
+    With these changes only -Wconversion and -Wcast-qual cannot be turned on.
+    Changes are trivial rearrangements of code.  -Wconversion is not possible
+    for pngrutil.c (because of the widespread use of += et al on variables
+    smaller than (int) or (unsigned int)) and -Wcast-qual is not possible
+    with pngwio.c and pngwutil.c because the 'write' callback and zlib
+    compression both fail to declare their input buffers with 'const'.
+
+Version 1.5.0beta56 [December 7, 2010]
+  Added the private PNG_UNUSED() macro definition in pngpriv.h.
+  Added some commentary about PNG_EXPORT in png.h and pngconf.h
+  Revised PNG_EXPORT() macro and added PNG_EXPORTA() macro, with the
+    objective of simplifying and improving the cosmetic appearance of png.h.
+  Fixed some incorrect "=" macro names in pnglibconf.dfa
+  Included documentation of changes in 1.5.0 from 1.4.x in libpng-manual.txt
+
+Version 1.5.0beta57 [December 9, 2010]
+  Documented the pngvalid gamma error summary with additional comments and
+    print statements.
+  Improved missing symbol handling in checksym.awk; symbols missing in both
+    the old and new files can now be optionally ignored, treated as errors
+    or warnings.
+  Removed references to pngvcrd.c and pnggccrd.c from the vstudio project.
+  Updated "libpng14" to "libpng15" in the visualc71 project.
+  Enabled the strip16 tests in pngvalid.`
+  Don't display test results (except PASS/FAIL) when running "make test".
+    Instead put them in pngtest-log.txt
+  Added "--with-zprefix=<string>" to configure.ac
+  Updated the prebuilt configuration files to autoconf version 2.68
+
+Version 1.5.0beta58 [December 19, 2010]
+  Fixed interlace image handling and add test cases (John Bowler)
+  Fixed the clean rule in Makefile.am to remove pngtest-log.txt
+  Made minor changes to work around warnings in gcc 3.4
+
+Version 1.5.0rc01 [December 27, 2010]
+  No changes.
+
+Version 1.5.0rc02 [December 27, 2010]
+  Eliminated references to the scripts/*.def files in project/visualc71.
+
+Version 1.5.0rc03 [December 28, 2010]
+  Eliminated scripts/*.def and revised Makefile.am accordingly
+
+Version 1.5.0rc04 [December 29, 2010]
+  Fixed bug in background transformation handling in pngrtran.c (it was
+    looking for the flag in png_ptr->transformations instead of in
+    png_ptr->flags) (David Raymond).
+
+Version 1.5.0rc05 [December 31, 2010]
+  Fixed typo in a comment in CMakeLists.txt (libpng14 => libpng15) (Cosmin)
+
+Version 1.5.0rc06 [January 4, 2011]
+  Changed the new configure option "zprefix=string" to "zlib-prefix=string"
+
+Version 1.5.0rc07 [January 4, 2011]
+  Updated copyright year.
+
+Version 1.5.0 [January 6, 2011]
+  No changes.
+
+version 1.5.1beta01 [January 8, 2011]
+  Added description of png_set_crc_action() to the manual.
+  Added a note in the manual that the type of the iCCP profile was changed
+    from png_charpp to png_bytepp in png_get_iCCP().  This change happened
+    in version 1.5.0beta36 but is not noted in the CHANGES.  Similarly,
+    it was changed from png_charpp to png_const_bytepp in png_set_iCCP().
+  Ensure that png_rgb_to_gray ignores palette mapped images, if libpng
+    internally happens to call it with one.
+  Fixed a failure to handle palette mapped images correctly.
+
+Version 1.5.1beta02 [January 14, 2011]
+  Fixed a bug in handling of interlaced images (bero at arklinux.org).
+  Updated CMakeLists.txt (Clifford Yapp)
+
+Version 1.5.1beta03 [January 14, 2011]
+  Fixed typecasting of some png_debug() statements (Cosmin)
+
+Version 1.5.1beta04 [January 16, 2011]
+  Updated documentation of png_set|get_tRNS() (Thomas Klausner).
+  Mentioned in the documentation that applications must #include "zlib.h"
+    if they need access to anything in zlib.h, and that a number of
+    macros such as png_memset() are no longer accessible by applications.
+  Corrected pngvalid gamma test "sample" function to access all of the color
+    samples of each pixel, instead of sampling the red channel three times.
+  Prefixed variable names index, div, exp, gamma with "png_" to avoid "shadow"
+    warnings, and (mistakenly) changed png_exp() to exp().
+
+Version 1.5.1beta05 [January 16, 2011]
+  Changed variable names png_index, png_div, png_exp, and png_gamma to
+    char_index, divisor, exp_b10, and gamma_val, respectively, and
+    changed exp() back to png_exp().
+
+Version 1.5.1beta06 [January 20, 2011]
+  Prevent png_push_crc_skip() from hanging while reading an unknown chunk
+    or an over-large compressed zTXt chunk with the progressive reader.
+  Eliminated more GCC "shadow" warnings.
+  Revised png_fixed() in png.c to avoid compiler warning about reaching the
+    end without returning anything.
+
+Version 1.5.1beta07 [January 22, 2011]
+  In the manual, describe the png_get_IHDR() arguments in the correct order.
+  Added const_png_structp and const_png_infop types, and used them in
+    prototypes for most png_get_*() functions.
+
+Version 1.5.1beta08 [January 23, 2011]
+  Added png_get_io_chunk_type() and deprecated png_get_io_chunk_name()
+  Added synopses for the IO_STATE functions and other missing synopses
+    to the manual. Removed the synopses from libpngpf.3 because they
+    were out of date and no longer useful.  Better information can be
+    obtained by reading the prototypes and comments in pngpriv.h
+  Attempted to fix cpp on Solaris with S. Studio 12 cc, fix build
+    Added a make macro DFNCPP that is a CPP that will accept the tokens in
+    a .dfn file and adds configure stuff to test for such a CPP.  ./configure
+    should fail if one is not available.
+  Corrected const_png_ in png.h to png_const_ to avoid polluting the namespace.
+  Added png_get_current_row_number and png_get_current_pass_number for the
+    benefit of the user transform callback.
+  Added png_process_data_pause and png_process_data_skip for the benefit of
+    progressive readers that need to stop data processing or want to optimize
+    skipping of unread data (e.g., if the reader marks a chunk to be skipped.)
+
+Version 1.5.1beta09 [January 24, 2011]
+  Enhanced pngvalid, corrected an error in gray_to_rgb, corrected doc error.
+    pngvalid contains tests of transforms, which tests are currently disabled
+    because they are incompletely tested.  gray_to_rgb was failing to expand
+    the bit depth for smaller bit depth images; this seems to be a long
+    standing error and resulted, apparently, in invalid output
+    (CVE-2011-0408, CERT VU#643140).  The documentation did not accurately
+    describe what libpng really does when converting RGB to gray.
+
+Version 1.5.1beta10 [January 27, 2010]
+  Fixed incorrect examples of callback prototypes in the manual, that were
+    introduced in libpng-1.0.0.
+  In addition the order of the png_get_uint macros with respect to the
+    relevant function definitions has been reversed.  This helps the
+    preprocessing of the symbol files be more robust.  Furthermore, the
+    symbol file preprocessing now uses -DPNG_NO_USE_READ_MACROS even when
+    the library may actually be built with PNG_USE_READ_MACROS; this stops
+    the read macros interfering with the symbol file format.
+  Made the manual, synopses, and function prototypes use the function
+    argument names file_gamma, int_file_gamma, and srgb_intent consistently.
+
+Version 1.5.1beta11 [January 28, 2011]
+  Changed PNG_UNUSED from "param=param;" to "{if(param){}}".
+  Corrected local variable type in new API png_process_data_skip()
+    The type was self-evidently incorrect but only causes problems on 64-bit
+    architectures.
+  Added transform tests to pngvalid and simplified the arguments.
+
+Version 1.5.1rc01 [January 29, 2011]
+  No changes.
+
+Version 1.5.1rc02 [January 31, 2011]
+  Added a request in the manual that applications do not use "png_" or
+    "PNG_" to begin any of their own symbols.
+  Changed PNG_UNUSED to "(void)param;" and updated the commentary in pngpriv.h
+
+Version 1.5.1 [February 3, 2011]
+  No changes.
+
+Version 1.5.2beta01 [February 13, 2011]
+  More -Wshadow fixes for older gcc compilers.  Older gcc versions apparently
+    check formal parameters names in function declarations (as well as
+    definitions) to see if they match a name in the global namespace.
+  Revised PNG_EXPORTA macro to not use an empty parameter, to accommodate the
+    old VisualC++ preprocessor.
+  Turned on interlace handling in png_read_png().
+  Fixed gcc pendantic warnings.
+  Handle longjmp in Cygwin.
+  Fixed png_get_current_row_number() in the interlaced case.
+  Cleaned up ALPHA flags and transformations.
+  Implemented expansion to 16 bits.
+
+Version 1.5.2beta02 [February 19, 2011]
+  Fixed mistake in the descriptions of user read_transform and write_transform
+    function prototypes in the manual.  The row_info struct is png_row_infop.
+  Reverted png_get_current_row_number() to previous (1.5.2beta01) behavior.
+  Corrected png_get_current_row_number documentation
+  Fixed the read/write row callback documentation.
+    This documents the current behavior, where the callback is called after
+    every row with information pertaining to the next row.
+
+Version 1.5.2beta03 [March 3, 2011]
+  Fixed scripts/makefile.vcwin32
+  Updated contrib/pngsuite/README to add the word "modify".
+  Define PNG_ALLOCATED to blank when _MSC_VER<1300.
+
+Version 1.5.2rc01 [March 19, 2011]
+  Define remaining attributes to blank when MSC_VER<1300.
+  ifdef out mask arrays in pngread.c when interlacing is not supported.
+
+Version 1.5.2rc02 [March 22, 2011]
+  Added a hint to try CPP=/bin/cpp if "cpp -E" fails in scripts/pnglibconf.mak
+    and in contrib/pngminim/*/makefile, eg., on SunOS 5.10, and removed "strip"
+    from the makefiles.
+  Fixed a bug (present since libpng-1.0.7) that makes png_handle_sPLT() fail
+    to compile when PNG_NO_POINTER_INDEXING is defined (Chubanov Kirill)
+
+Version 1.5.2rc03 [March 24, 2011]
+  Don't include standard header files in png.h while building the symbol table,
+    to avoid cpp failure on SunOS (introduced PNG_BUILDING_SYMBOL_TABLE macro).
+
+Version 1.5.2 [March 31, 2011]
+  No changes.
+
+Version 1.5.3beta01 [April 1, 2011]
+  Re-initialize the zlib compressor before compressing non-IDAT chunks.
+  Added API functions to set parameters for zlib compression of non-IDAT
+    chunks.
+
+Version 1.5.3beta02 [April 3, 2011]
+  Updated scripts/symbols.def with new API functions.
+  Only compile the new zlib re-initializing code when text or iCCP is
+    supported, using PNG_WRITE_COMPRESSED_TEXT_SUPPORTED macro.
+  Improved the optimization of the zlib CMF byte (see libpng-1.2.6beta03).
+  Optimize the zlib CMF byte in non-IDAT compressed chunks
+
+Version 1.5.3beta03 [April 16, 2011]
+  Fixed gcc -ansi -pedantic compile. A strict ANSI system does not have
+    snprintf, and the "__STRICT_ANSI__" detects that condition more reliably
+    than __STDC__ (John Bowler).
+  Removed the PNG_PTR_NORETURN attribute because it too dangerous. It tells
+    the compiler that a user supplied callback (the error handler) does not
+    return, yet there is no guarantee in practice that the application code
+    will correctly implement the error handler because the compiler only
+    issues a warning if there is a mistake (John Bowler).
+  Removed the no-longer-used PNG_DEPSTRUCT macro.
+  Updated the zlib version to 1.2.5 in the VStudio project.
+  Fixed 64-bit builds where png_uint_32 is smaller than png_size_t in
+    pngwutil.c (John Bowler).
+  Fixed bug with stripping the filler or alpha channel when writing, that
+    was introduced in libpng-1.5.2beta01 (bug report by Andrew Church).
+
+Version 1.5.3beta04 [April 27, 2011]
+  Updated pngtest.png with the new zlib CMF optimization.
+  Cleaned up conditional compilation code and of background/gamma handling
+    Internal changes only except a new option to avoid compiling the
+    png_build_grayscale_palette API (which is not used at all internally.)
+    The main change is to move the transform tests (READ_TRANSFORMS,
+    WRITE_TRANSFORMS) up one level to the caller of the APIs.  This avoids
+    calls to spurious functions if all transforms are disabled and slightly
+    simplifies those functions.  Pngvalid modified to handle this.
+    A minor change is to stop the strip_16 and expand_16 interfaces from
+    disabling each other; this allows the future alpha premultiplication
+    code to use 16-bit intermediate values while still producing 8-bit output.
+    png_do_background and png_do_gamma have been simplified to take a single
+    pointer to the png_struct rather than pointers to every item required
+    from the png_struct. This makes no practical difference to the internal
+    code.
+  A serious bug in the pngvalid internal routine 'standard_display_init' has
+    been fixed - this failed to initialize the red channel and accidentally
+    initialized the alpha channel twice.
+  Changed png_struct jmp_buf member name from png_jmpbuf to tmp_jmpbuf to
+    avoid a possible clash with the png_jmpbuf macro on some platforms.
+
+Version 1.5.3beta05 [May 6, 2011]
+  Added the "_POSIX_SOURCE" feature test macro to ensure libpng sees the
+    correct API. _POSIX_SOURCE is defined in pngpriv.h, pngtest.c and
+    pngvalid.c to ensure that POSIX conformant systems disable non-POSIX APIs.
+  Removed png_snprintf and added formatted warning messages.  This change adds
+    internal APIs to allow png_warning messages to have parameters without
+    requiring the host OS to implement snprintf.  As a side effect the
+    dependency of the tIME-supporting RFC1132 code on stdio is removed and
+    PNG_NO_WARNINGS does actually work now.
+  Pass "" instead of '\0' to png_default_error() in png_err().  This mistake
+    was introduced in libpng-1.2.20beta01.
+  Added PNG_WRITE_OPTIMIZE_CMF_SUPPORTED macro to make the zlib "CMF" byte
+    optimization configureable.
+  IDAT compression failed if preceded by a compressed text chunk (bug
+    introduced in libpng-1.5.3beta01-02).  This was because the attempt to
+    reset the zlib stream in png_write_IDAT happened after the first IDAT
+    chunk had been deflated - much too late.  In this change internal
+    functions were added to claim/release the z_stream and, hopefully, make
+    the code more robust.  Also deflateEnd checking is added - previously
+    libpng would ignore an error at the end of the stream.
+
+Version 1.5.3beta06 [May 8, 2011]
+  Removed the -D_ALL_SOURCE from definitions for AIX in CMakeLists.txt
+  Implemented premultiplied alpha support: png_set_alpha_mode API
+
+Version 1.5.3beta07 [May 11, 2011]
+  Added expand_16 support to the high level interface.
+  Added named value and 'flag' gamma support to png_set_gamma.  Made a minor
+    change from the previous (unreleased) ABI/API to hide the exact value used
+    for Macs - it's not a good idea to embed this in the ABI!
+  Moved macro definitions for PNG_HAVE_IHDR, PNG_HAVE_PLTE, and PNG_AFTER_IDAT
+    from pngpriv.h to png.h because they must be visible to applications
+    that call png_set_unknown_chunks().
+  Check for up->location !PNG_AFTER_IDAT when writing unknown chunks
+    before IDAT.
+
+Version 1.5.3beta08 [May 16, 2011]
+  Improved "pngvalid --speed" to exclude more of pngvalid from the time.
+  Documented png_set_alpha_mode(), other changes in libpng.3/libpng-manual.txt
+  The cHRM chunk now sets the defaults for png_set_rgb_to_gray() (when negative
+    parameters are supplied by the caller), while in the absence of cHRM
+    sRGB/Rec 709 values are still used.
+  The bKGD chunk no longer overwrites the background value set by
+    png_set_background(), allowing the latter to be used before the file
+    header is read. It never performed any useful function to override
+    the default anyway.
+  Added memory overwrite and palette image checks to pngvalid.c
+    Previously palette image code was poorly checked. Since the transformation
+    code has a special palette path in most cases this was a severe weakness.
+  Minor cleanup and some extra checking in pngrutil.c and pngrtran.c. When
+    expanding an indexed image, always expand to RGBA if transparency is
+    present.
+
+Version 1.5.3beta09 [May 17, 2011]
+  Reversed earlier 1.5.3 change of transformation order; move png_expand_16
+    back where it was.  The change doesn't work because it requires 16-bit
+    gamma tables when the code only generates 8-bit ones.  This fails
+    silently; the libpng code just doesn't do any gamma correction.  Moving
+    the tests back leaves the old, inaccurate, 8-bit gamma calculations, but
+    these are clearly better than none!
+
+Version 1.5.3beta10 [May 20, 2011]
+
+  png_set_background() and png_expand_16() did not work together correctly.
+    This problem is present in 1.5.2; if png_set_background is called with
+    need_expand false and the matching 16 bit color libpng erroneously just
+    treats it as an 8-bit color because of where png_do_expand_16 is in the
+    transform list.  This simple fix reduces the supplied colour to 8-bits,
+    so it gets smashed, but this is better than the current behavior.
+  Added tests for expand16, more fixes for palette image tests to pngvalid.
+    Corrects the code for palette image tests and disables attempts to
+    validate palette colors.
+
+Version 1.5.3rc01 [June 3, 2011]
+  No changes.
+
+Version 1.5.3rc02 [June 8, 2011]
+  Fixed uninitialized memory read in png_format_buffer() (Bug report by
+    Frank Busse, CVE-2011-2501, related to CVE-2004-0421).
+
+Version 1.5.3beta11 [June 11, 2011]
+  Fixed png_handle_sCAL which is broken in 1.5; added sCAL to pngtest.png
+  Revised documentation about png_set_user_limits() to say that it also affects
+    png writing.
+  Revised handling of png_set_user_limits() so that it can increase the
+    limit beyond the PNG_USER_WIDTH|HEIGHT_MAX; previously it could only
+    reduce it.
+  Make the 16-to-8 scaling accurate. Dividing by 256 with no rounding is
+    wrong (high by one) 25% of the time. Dividing by 257 with rounding is
+    wrong in 128 out of 65536 cases. Getting the right answer all the time
+    without division is easy.
+  Added "_SUPPORTED" to the PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION macro.
+  Added projects/owatcom, an IDE project for OpenWatcom to replace
+    scripts/makefile.watcom.  This project works with OpenWatcom 1.9. The
+    IDE autogenerates appropriate makefiles (libpng.mk) for batch processing.
+    The project is configurable, unlike the Visual Studio project, so long
+    as the developer has an awk.
+  Changed png_set_gAMA to limit the gamma value range so that the inverse
+    of the stored value cannot overflow the fixed point representation,
+    and changed other things OpenWatcom warns about.
+  Revised pngvalid.c to test PNG_ALPHA_MODE_SUPPORTED correctly. This allows
+    pngvalid to build when ALPHA_MODE is not supported, which is required if
+    it is to build on libpng 1.4.
+  Removed string/memory macros that are no longer used and are not
+    necessarily fully supportable, particularly png_strncpy and png_snprintf.
+  Added log option to pngvalid.c and attempted to improve gamma messages.
+  
+Version 1.5.3 [omitted]
+  People found the presence of a beta release following an rc release
+    to be confusing; therefore we bump the version to libpng-1.5.4beta01
+    and there will be no libpng-1.5.3 release.
+
+Version 1.5.4beta01 [June 14, 2011]
+  Made it possible to undefine PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
+    to get the same (inaccurate) output as libpng-1.5.2 and earlier.
+  Moved definitions of PNG_HAVE_IHDR, PNG_AFTER_IDAT, and PNG_HAVE_PLTE
+    outside of an unknown-chunk block in png.h because they are also
+    needed for other uses.
+
+Version 1.5.4beta02 [June 14, 2011]
+  Fixed and clarified LEGACY 16-to-8 scaling code.
+  Added png_set_chop_16() API, to match inaccurate results from previous
+    libpng versions.
+  Removed the ACCURATE and LEGACY options (they are no longer useable)
+  Use the old scaling method for background if png_set_chop_16() was
+    called.
+  Made png_set_chop_16() API removeable by disabling PNG_CHOP_16_TO_8_SUPPORTED
+
+Version 1.5.4beta03 [June 15, 2011]
+  Fixed a problem in png_do_expand_palette() exposed by optimization in
+    1.5.3beta06
+  Also removed a spurious and confusing "trans" member ("trans") from png_info.
+  The palette expand optimization prevented expansion to an intermediate RGBA
+    form if tRNS was present but alpha was marked to be stripped; this exposed
+    a check for tRNS in png_do_expand_palette() which is inconsistent with the
+    code elsewhere in libpng.
+  Correction to the expand_16 code; removed extra instance of
+    png_set_scale_16_to_8 from pngpriv.h
+
+Version 1.5.4beta04 [June 16, 2011]
+  Added a missing "#ifdef PNG_READ_BACKGROUND_SUPPORTED/#endif" in pngrtran.c
+  Added PNG_TRANSFORM_CHOP_16 to the high-level read transforms.
+  Made PNG_READ_16_TO_8_ACCURATE_SCALE configurable again.  If this is
+    not enabled, png_set_strip_16() and png_do_scale_16_to_8() aren't built.
+  Revised contrib/visupng, gregbook, and pngminim to demonstrate chop_16_to_8
+
+Version 1.5.4beta05 [June 16, 2011]
+  Renamed png_set_strip_16() to png_set_scale_16() and renamed
+    png_set_chop_16() to png_set_strip(16) in an attempt to minimize the
+    behavior changes between libpng14 and libpng15.
+
+Version 1.5.4beta06 [June 18, 2011]
+  Fixed new bug that was causing both strip_16 and scale_16 to be applied.
+
+Version 1.5.4beta07 [June 19, 2011]
+  Fixed pngvalid, simplified macros, added checking for 0 in sCAL.
+    The ACCURATE scale macro is no longer defined in 1.5 - call the
+    png_scale_16_to_8 API.  Made sure that PNG_READ_16_TO_8 is still defined
+    if the png_strip_16_to_8 API is present.  png_check_fp_number now
+    maintains some state so that positive, negative and zero values are
+    identified.  sCAL uses these to be strictly spec conformant.
+
+Version 1.5.4beta08 [June 23, 2011]
+  Fixed pngvalid if ACCURATE_SCALE is defined.
+  Updated scripts/pnglibconf.h.prebuilt.
+
+Version 1.5.4rc01 [June 30, 2011]
+  Define PNG_ALLOCATED to "restrict" only if MSC_VER >= 1400.
+
+Version 1.5.4 [July 7, 2011]
+
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
@@ -1760,3 +3540,5 @@ to subscribe)
 or to glennrp at users.sourceforge.net
 
 Glenn R-P
+*/ }
+#endif
diff --git a/jdk/src/share/native/sun/awt/libpng/LICENSE b/jdk/src/share/native/sun/awt/libpng/LICENSE
index 1d62448..89f5243 100644
--- a/jdk/src/share/native/sun/awt/libpng/LICENSE
+++ b/jdk/src/share/native/sun/awt/libpng/LICENSE
@@ -8,8 +8,10 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng versions 1.2.6, August 15, 2004, through 1.2.18, May 15, 2007, are
-Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are
+This code is released under the libpng license.
+
+libpng versions 1.2.6, August 15, 2004, through 1.5.4, July 7, 2011, are
+Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.2.5
 with the following individual added to the list of Contributing Authors
 
@@ -106,4 +108,4 @@ certification mark of the Open Source Initiative.
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-May 15, 2007
+July 7, 2011
diff --git a/jdk/src/share/native/sun/awt/libpng/README b/jdk/src/share/native/sun/awt/libpng/README
index 94d64aa..71396a8 100644
--- a/jdk/src/share/native/sun/awt/libpng/README
+++ b/jdk/src/share/native/sun/awt/libpng/README
@@ -1,11 +1,11 @@
-README for libpng version 1.2.18 - May 15, 2007 (shared library 12.0)
+README for libpng version 1.5.4 - July 7, 2011 (shared library 15.0)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
 
-Libpng comes in several distribution formats.  Get libpng-*.tar.gz
-or libpng-*.tar.bz2 if you want UNIX-style line endings in the text
-files, or lpng*.zip if you want DOS-style line endings.
+Libpng comes in several distribution formats.  Get libpng-*.tar.gz,
+libpng-*.tar.xz or libpng-*.tar.bz2 if you want UNIX-style line endings
+in the text files, or lpng*.zip if you want DOS-style line endings.
 
 Version 0.89 was the first official release of libpng.  Don't let the
 fact that it's the first release fool you.  The libpng library has been in
@@ -54,11 +54,11 @@ to set different actions based on whether the CRC error occurred in a
 critical or an ancillary chunk.
 
 The changes made to the library, and bugs fixed are based on discussions
-on the PNG-implement mailing list
-and not on material submitted privately to Guy, Andreas, or Glenn.  They will
-forward any good suggestions to the list.
+on the PNG-implement mailing list and not on material submitted
+privately to Guy, Andreas, or Glenn.  They will forward any good
+suggestions to the list.
 
-For a detailed description on using libpng, read libpng.txt.  For
+For a detailed description on using libpng, read libpng-manual.txt.  For
 examples of libpng in a program, see example.c and pngtest.c.  For usage
 information and restrictions (what little they are) on libpng, see
 png.h.  For a description on using zlib (the compression library used by
@@ -101,31 +101,29 @@ Finally, if you get any warning messages when compiling libpng
 fix.  Please mention "libpng" somewhere in the subject line.  Thanks.
 
 This release was created and will be supported by myself (of course
-based in a large way on Guy's and Andreas' earlier work), and the PNG group.
+based in a large way on Guy's and Andreas' earlier work), and the PNG
+development group.
 
-Send comments/corrections/commendations to png-mng-implement at lists.sf.net
-(subscription required; visit 
+Send comments/corrections/commendations to png-mng-implement at
+lists.sourceforge.net (subscription required; visit 
 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
 to subscribe) or to glennrp at users.sourceforge.net
 
 You can't reach Guy, the original libpng author, at the addresses
-given in previous versions of this document.  He and Andreas will read mail
-addressed to the png-implement list, however.
+given in previous versions of this document.  He and Andreas will
+read mail addressed to the png-implement list, however.
 
 Please do not send general questions about PNG.  Send them to
-the (png-list at ccrc.wustl.edu, subscription required, write to
-majordomo at ccrc.wustl.edu with "subscribe png-list" in your message).
-On the other hand,
-please do not send libpng questions to that address, send them to me
-or to the png-implement list.  I'll
-get them in the end anyway.  If you have a question about something
+png-mng-misc at lists.sf.net (subscription required; visit
+https://lists.sourceforge.net/lists/listinfo/png-mng-misc to
+subscribe).  If you have a question about something
 in the PNG specification that is related to using libpng, send it
 to me.  Send me any questions that start with "I was using libpng,
 and ...".  If in doubt, send questions to me.  I'll bounce them
 to others, if necessary.
 
 Please do not send suggestions on how to change PNG.  We have
-been discussing PNG for nine years now, and it is official and
+been discussing PNG for sixteen years now, and it is official and
 finished.  If you have suggestions for libpng, however, I'll
 gladly listen.  Even if your suggestion is not used immediately,
 it may be used later.
@@ -140,14 +138,17 @@ Files in this distribution:
       TODO          =>  Things not implemented in the current library
       Y2KINFO       =>  Statement of Y2K compliance
       example.c     =>  Example code for using libpng functions
-      libpng.3      =>  manual page for libpng (includes libpng.txt)
-      libpng.txt    =>  Description of libpng and its functions
+      libpng.3      =>  manual page for libpng (includes libpng-manual.txt)
+      libpng-manual.txt  =>  Description of libpng and its functions
       libpngpf.3    =>  manual page for libpng's private functions
       png.5         =>  manual page for the PNG format
       png.c         =>  Basic interface functions common to library
-      png.h         =>  Library function and interface declarations
-      pngconf.h     =>  System specific library configuration
-      pngasmrd.h    =>  Header file for assembler-coded functions
+      png.h         =>  Library function and interface declarations (public)
+      pngpriv.h     =>  Library function and interface declarations (private)
+      pngconf.h     =>  System specific library configuration (public)
+      pngstruct.h   =>  png_struct declaration (private)
+      pnginfo.h     =>  png_info struct declaration (private)
+      pngdebug.h    =>  debugging macros (private)
       pngerror.c    =>  Error/warning message I/O functions
       pngget.c      =>  Functions for retrieving info from struct
       pngmem.c      =>  Memory handling functions
@@ -174,84 +175,22 @@ Files in this distribution:
        pngminus     =>  Simple pnm2png and png2pnm programs
        pngsuite     =>  Test images
        visupng      =>  Contains a MSVC workspace for VisualPng
-      projects      =>  Contains project files and workspaces for building DLL
-       beos             =>  Contains a Beos workspace for building libpng
-       c5builder        =>  Contains a Borland workspace for building libpng
-                            and zlib
-       visualc6         =>  Contains a Microsoft Visual C++ (MSVC) workspace
-                            for building libpng and zlib
-       netware.txt      =>  Contains instructions for downloading a set of
-                            project files for building libpng and zlib on
-                            Netware.
-       wince.txt        =>  Contains instructions for downloading a Microsoft
-                            Visual C++ (Windows CD Toolkit) workspace for
-                            building libpng and zlib on WindowsCE
+      projects      =>  Contains project files and workspaces for
+                        building a DLL
+       cbuilder5        =>  Contains a Borland workspace for building
+                            libpng and zlib
+       visualc6         =>  Contains a Microsoft Visual C++ (MSVC)
+                            workspace for building libpng and zlib
+       visualc71        =>  Contains a Microsoft Visual C++ (MSVC)
+                            workspace for building libpng and zlib
+       xcode            =>  Contains an Apple xcode
+                            workspace for building libpng and zlib
       scripts       =>  Directory containing scripts for building libpng:
-       descrip.mms      =>  VMS makefile for MMS or MMK
-       makefile.std     =>  Generic UNIX makefile (cc, creates static libpng.a)
-       makefile.elf     =>  Linux/ELF makefile symbol versioning,
-                            gcc, creates libpng12.so.0.1.2.18)
-       makefile.linux   =>  Linux/ELF makefile
-                            (gcc, creates libpng12.so.0.1.2.18)
-       makefile.gcmmx   =>  Linux/ELF makefile
-                            (gcc, creates libpng12.so.0.1.2.18,
-                            uses assembler code tuned for Intel MMX platform)
-       makefile.gcc     =>  Generic makefile (gcc, creates static libpng.a)
-       makefile.knr     =>  Archaic UNIX Makefile that converts files with
-                            ansi2knr (Requires ansi2knr.c from
-                            ftp://ftp.cs.wisc.edu/ghost)
-       makefile.aix     =>  AIX makefile
-       makefile.cygwin  =>  Cygwin/gcc makefile
-       makefile.darwin  =>  Darwin makefile
-       makefile.dec     =>  DEC Alpha UNIX makefile
-       makefile.freebsd =>  FreeBSD makefile
-       makefile.hpgcc   =>  HPUX makefile using gcc
-       makefile.hpux    =>  HPUX (10.20 and 11.00) makefile
-       makefile.hp64    =>  HPUX (10.20 and 11.00) makefile, 64 bit
-       makefile.ibmc    =>  IBM C/C++ version 3.x for Win32 and OS/2 (static)
-       makefile.intel   =>  Intel C/C++ version 4.0 and later
-       libpng.icc       =>  Project file, IBM VisualAge/C++ 4.0 or later
-       makefile.netbsd  =>  NetBSD/cc makefile, PNGGCCRD, makes libpng.so.
-       makefile.ne12bsd  =>  NetBSD/cc makefile, PNGGCCRD, makes libpng12.so
-       makefile.openbsd =>  OpenBSD makefile
-       makefile.sgi     =>  Silicon Graphics IRIX (cc, creates static lib)
-       makefile.sggcc   =>  Silicon Graphics
-                            (gcc, creates libpng12.so.0.1.2.18)
-       makefile.sunos   =>  Sun makefile
-       makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng12.so.0.1.2.18)
-       makefile.so9     =>  Solaris 9 makefile
-                            (gcc, creates libpng12.so.0.1.2.18)
-       makefile.32sunu  =>  Sun Ultra 32-bit makefile
-       makefile.64sunu  =>  Sun Ultra 64-bit makefile
-       makefile.sco     =>  For SCO OSr5  ELF and Unixware 7 with Native cc
-       makefile.mips    =>  MIPS makefile
-       makefile.acorn   =>  Acorn makefile
-       makefile.amiga   =>  Amiga makefile
-       smakefile.ppc    =>  AMIGA smakefile for SAS C V6.58/7.00 PPC
-                            compiler (Requires SCOPTIONS, copied from
-                            scripts/SCOPTIONS.ppc)
-       makefile.atari   =>  Atari makefile
-       makefile.beos    =>  BEOS makefile for X86
-       makefile.bor     =>  Borland makefile (uses bcc)
-       makefile.bc32    =>  32-bit Borland C++ (all modules compiled in C mode)
-       makefile.tc3     =>  Turbo C 3.0 makefile
-       makefile.dj2     =>  DJGPP 2 makefile
-       makefile.msc     =>  Microsoft C makefile
-       makefile.vcawin32=>  makefile for Microsoft Visual C++ 5.0 and
-                            later (uses assembler code tuned for Intel MMX
-                            platform)
-       makefile.vcwin32 =>  makefile for Microsoft Visual C++ 4.0 and
-                            later (does not use assembler code)
-       makefile.os2     =>  OS/2 Makefile (gcc and emx, requires pngos2.def)
-       pngos2.def       =>  OS/2 module definition file used by makefile.os2
-       makefile.watcom  =>  Watcom 10a+ Makefile, 32-bit flat memory model
-       makevms.com      =>  VMS build script
-       SCOPTIONS.ppc    =>  Used with smakefile.ppc
+                            (see scripts/README.txt for the list of scripts)
 
 Good luck, and happy coding.
 
--Glenn Randers-Pehrson (current maintainer)
+-Glenn Randers-Pehrson (current maintainer, since 1998)
  Internet: glennrp at users.sourceforge.net
 
 -Andreas Eric Dilger (former maintainer, 1996-1997)
diff --git a/jdk/src/share/native/sun/awt/libpng/png.c b/jdk/src/share/native/sun/awt/libpng/png.c
index 3458d19..23dd8c5 100644
--- a/jdk/src/share/native/sun/awt/libpng/png.c
+++ b/jdk/src/share/native/sun/awt/libpng/png.c
@@ -29,91 +29,20 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.17 May 15, 2007
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
  */
 
-#define PNG_INTERNAL
-#define PNG_NO_EXTERN
-#include "png.h"
+#include "pngpriv.h"
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_18 Your_png_h_is_not_version_1_2_18;
-
-/* Version information for C files.  This had better match the version
- * string defined in png.h.  */
-
-#ifdef PNG_USE_GLOBAL_ARRAYS
-/* png_libpng_ver was changed to a function in version 1.0.5c */
-const char png_libpng_ver[18] = PNG_LIBPNG_VER_STRING;
-
-#ifdef PNG_READ_SUPPORTED
-
-/* png_sig was changed to a function in version 1.0.5c */
-/* Place to hold the signature string for a PNG file. */
-const png_byte FARDATA png_sig[8] = {137, 80, 78, 71, 13, 10, 26, 10};
-#endif /* PNG_READ_SUPPORTED */
-
-/* Invoke global declarations for constant strings for known chunk types */
-PNG_IHDR;
-PNG_IDAT;
-PNG_IEND;
-PNG_PLTE;
-PNG_bKGD;
-PNG_cHRM;
-PNG_gAMA;
-PNG_hIST;
-PNG_iCCP;
-PNG_iTXt;
-PNG_oFFs;
-PNG_pCAL;
-PNG_sCAL;
-PNG_pHYs;
-PNG_sBIT;
-PNG_sPLT;
-PNG_sRGB;
-PNG_tEXt;
-PNG_tIME;
-PNG_tRNS;
-PNG_zTXt;
-
-#ifdef PNG_READ_SUPPORTED
-/* arrays to facilitate easy interlacing - use pass (0 - 6) as index */
-
-/* start of interlace block */
-const int FARDATA png_pass_start[] = {0, 4, 0, 2, 0, 1, 0};
-
-/* offset to next interlace block */
-const int FARDATA png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1};
-
-/* start of interlace block in the y direction */
-const int FARDATA png_pass_ystart[] = {0, 0, 4, 0, 2, 0, 1};
-
-/* offset to next interlace block in the y direction */
-const int FARDATA png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2};
-
-/* width of interlace block (used in assembler routines only) */
-#ifdef PNG_HAVE_MMX_COMBINE_ROW
-const int FARDATA png_pass_width[] = {8, 4, 4, 2, 2, 1, 1};
-#endif
-
-/* Height of interlace block.  This is not currently used - if you need
- * it, uncomment it here and in png.h
-const int FARDATA png_pass_height[] = {8, 8, 4, 4, 2, 2, 1};
-*/
-
-/* Mask to determine which pixels are valid in a pass */
-const int FARDATA png_pass_mask[] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff};
-
-/* Mask to determine which pixels to overwrite while displaying */
-const int FARDATA png_pass_dsp_mask[]
-   = {0xff, 0x0f, 0xff, 0x33, 0xff, 0x55, 0xff};
-
-#endif /* PNG_READ_SUPPORTED */
-#endif /* PNG_USE_GLOBAL_ARRAYS */
+typedef png_libpng_version_1_5_4 Your_png_h_is_not_version_1_5_4;
 
 /* Tells libpng that we have already handled the first "num_bytes" bytes
  * of the PNG file signature.  If the PNG data is embedded into another
@@ -125,10 +54,13 @@ const int FARDATA png_pass_dsp_mask[]
 void PNGAPI
 png_set_sig_bytes(png_structp png_ptr, int num_bytes)
 {
-   if(png_ptr == NULL) return;
-   png_debug(1, "in png_set_sig_bytes\n");
+   png_debug(1, "in png_set_sig_bytes");
+
+   if (png_ptr == NULL)
+      return;
+
    if (num_bytes > 8)
-      png_error(png_ptr, "Too many bytes for PNG signature.");
+      png_error(png_ptr, "Too many bytes for PNG signature");
 
    png_ptr->sig_bytes = (png_byte)(num_bytes < 0 ? 0 : num_bytes);
 }
@@ -142,11 +74,13 @@ png_set_sig_bytes(png_structp png_ptr, int num_bytes)
  * PNG signature (this is the same behaviour as strcmp, memcmp, etc).
  */
 int PNGAPI
-png_sig_cmp(png_bytep sig, png_size_t start, png_size_t num_to_check)
+png_sig_cmp(png_const_bytep sig, png_size_t start, png_size_t num_to_check)
 {
    png_byte png_signature[8] = {137, 80, 78, 71, 13, 10, 26, 10};
+
    if (num_to_check > 8)
       num_to_check = 8;
+
    else if (num_to_check < 1)
       return (-1);
 
@@ -159,69 +93,37 @@ png_sig_cmp(png_bytep sig, png_size_t start, png_size_t num_to_check)
    return ((int)(png_memcmp(&sig[start], &png_signature[start], num_to_check)));
 }
 
-#if defined(PNG_1_0_X) || defined(PNG_1_2_X)
-/* (Obsolete) function to check signature bytes.  It does not allow one
- * to check a partial signature.  This function might be removed in the
- * future - use png_sig_cmp().  Returns true (nonzero) if the file is a PNG.
- */
-int PNGAPI
-png_check_sig(png_bytep sig, int num)
-{
-  return ((int)!png_sig_cmp(sig, (png_size_t)0, (png_size_t)num));
-}
-#endif
 #endif /* PNG_READ_SUPPORTED */
 
 #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
-/* Function to allocate memory for zlib and clear it to 0. */
-#ifdef PNG_1_0_X
-voidpf PNGAPI
-#else
-voidpf /* private */
-#endif
-png_zalloc(voidpf png_ptr, uInt items, uInt size)
+/* Function to allocate memory for zlib */
+PNG_FUNCTION(voidpf /* PRIVATE */,
+png_zalloc,(voidpf png_ptr, uInt items, uInt size),PNG_ALLOCATED)
 {
    png_voidp ptr;
    png_structp p=(png_structp)png_ptr;
    png_uint_32 save_flags=p->flags;
-   png_uint_32 num_bytes;
+   png_alloc_size_t num_bytes;
+
+   if (png_ptr == NULL)
+      return (NULL);
 
-   if(png_ptr == NULL) return (NULL);
    if (items > PNG_UINT_32_MAX/size)
    {
      png_warning (p, "Potential overflow in png_zalloc()");
      return (NULL);
    }
-   num_bytes = (png_uint_32)items * size;
+   num_bytes = (png_alloc_size_t)items * size;
 
    p->flags|=PNG_FLAG_MALLOC_NULL_MEM_OK;
    ptr = (png_voidp)png_malloc((png_structp)png_ptr, num_bytes);
    p->flags=save_flags;
 
-#if defined(PNG_1_0_X) && !defined(PNG_NO_ZALLOC_ZERO)
-   if (ptr == NULL)
-       return ((voidpf)ptr);
-
-   if (num_bytes > (png_uint_32)0x8000L)
-   {
-      png_memset(ptr, 0, (png_size_t)0x8000L);
-      png_memset((png_bytep)ptr + (png_size_t)0x8000L, 0,
-         (png_size_t)(num_bytes - (png_uint_32)0x8000L));
-   }
-   else
-   {
-      png_memset(ptr, 0, (png_size_t)num_bytes);
-   }
-#endif
    return ((voidpf)ptr);
 }
 
-/* function to free memory for zlib */
-#ifdef PNG_1_0_X
-void PNGAPI
-#else
-void /* private */
-#endif
+/* Function to free memory for zlib */
+void /* PRIVATE */
 png_zfree(voidpf png_ptr, voidpf ptr)
 {
    png_free((png_structp)png_ptr, (png_voidp)ptr);
@@ -242,7 +144,7 @@ png_reset_crc(png_structp png_ptr)
  * trouble of calculating it.
  */
 void /* PRIVATE */
-png_calculate_crc(png_structp png_ptr, png_bytep ptr, png_size_t length)
+png_calculate_crc(png_structp png_ptr, png_const_bytep ptr, png_size_t length)
 {
    int need_crc = 1;
 
@@ -252,6 +154,7 @@ png_calculate_crc(png_structp png_ptr, png_bytep ptr, png_size_t length)
           (PNG_FLAG_CRC_ANCILLARY_USE | PNG_FLAG_CRC_ANCILLARY_NOWARN))
          need_crc = 0;
    }
+
    else                                                    /* critical */
    {
       if (png_ptr->flags & PNG_FLAG_CRC_CRITICAL_IGNORE)
@@ -262,19 +165,77 @@ png_calculate_crc(png_structp png_ptr, png_bytep ptr, png_size_t length)
       png_ptr->crc = crc32(png_ptr->crc, ptr, (uInt)length);
 }
 
+/* Check a user supplied version number, called from both read and write
+ * functions that create a png_struct
+ */
+int
+png_user_version_check(png_structp png_ptr, png_const_charp user_png_ver)
+{
+   if (user_png_ver)
+   {
+      int i = 0;
+
+      do
+      {
+         if (user_png_ver[i] != png_libpng_ver[i])
+            png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
+      } while (png_libpng_ver[i++]);
+   }
+
+   else
+      png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
+
+   if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH)
+   {
+     /* Libpng 0.90 and later are binary incompatible with libpng 0.89, so
+      * we must recompile any applications that use any older library version.
+      * For versions after libpng 1.0, we will be compatible, so we need
+      * only check the first digit.
+      */
+      if (user_png_ver == NULL || user_png_ver[0] != png_libpng_ver[0] ||
+          (user_png_ver[0] == '1' && user_png_ver[2] != png_libpng_ver[2]) ||
+          (user_png_ver[0] == '0' && user_png_ver[2] < '9'))
+      {
+#ifdef PNG_WARNINGS_SUPPORTED
+         size_t pos = 0;
+         char m[128];
+
+         pos = png_safecat(m, sizeof m, pos, "Application built with libpng-");
+         pos = png_safecat(m, sizeof m, pos, user_png_ver);
+         pos = png_safecat(m, sizeof m, pos, " but running with ");
+         pos = png_safecat(m, sizeof m, pos, png_libpng_ver);
+
+         png_warning(png_ptr, m);
+#endif
+
+#ifdef PNG_ERROR_NUMBERS_SUPPORTED
+         png_ptr->flags = 0;
+#endif
+
+         return 0;
+      }
+   }
+
+   /* Success return. */
+   return 1;
+}
+
 /* Allocate the memory for an info_struct for the application.  We don't
  * really need the png_ptr, but it could potentially be useful in the
  * future.  This should be used in favour of malloc(png_sizeof(png_info))
  * and png_info_init() so that applications that want to use a shared
  * libpng don't have to be recompiled if png_info changes size.
  */
-png_infop PNGAPI
-png_create_info_struct(png_structp png_ptr)
+PNG_FUNCTION(png_infop,PNGAPI
+png_create_info_struct,(png_structp png_ptr),PNG_ALLOCATED)
 {
    png_infop info_ptr;
 
-   png_debug(1, "in png_create_info_struct\n");
-   if(png_ptr == NULL) return (NULL);
+   png_debug(1, "in png_create_info_struct");
+
+   if (png_ptr == NULL)
+      return (NULL);
+
 #ifdef PNG_USER_MEM_SUPPORTED
    info_ptr = (png_infop)png_create_struct_2(PNG_STRUCT_INFO,
       png_ptr->malloc_fn, png_ptr->mem_ptr);
@@ -296,9 +257,12 @@ void PNGAPI
 png_destroy_info_struct(png_structp png_ptr, png_infopp info_ptr_ptr)
 {
    png_infop info_ptr = NULL;
-   if(png_ptr == NULL) return;
 
-   png_debug(1, "in png_destroy_info_struct\n");
+   png_debug(1, "in png_destroy_info_struct");
+
+   if (png_ptr == NULL)
+      return;
+
    if (info_ptr_ptr != NULL)
       info_ptr = *info_ptr_ptr;
 
@@ -320,302 +284,248 @@ png_destroy_info_struct(png_structp png_ptr, png_infopp info_ptr_ptr)
  * and applications using it are urged to use png_create_info_struct()
  * instead.
  */
-#if defined(PNG_1_0_X) || defined(PNG_1_2_X)
-#undef png_info_init
-void PNGAPI
-png_info_init(png_infop info_ptr)
-{
-   /* We only come here via pre-1.0.12-compiled applications */
-   png_info_init_3(&info_ptr, 0);
-}
-#endif
 
 void PNGAPI
 png_info_init_3(png_infopp ptr_ptr, png_size_t png_info_struct_size)
 {
    png_infop info_ptr = *ptr_ptr;
 
-   if(info_ptr == NULL) return;
+   png_debug(1, "in png_info_init_3");
 
-   png_debug(1, "in png_info_init_3\n");
+   if (info_ptr == NULL)
+      return;
 
-   if(png_sizeof(png_info) > png_info_struct_size)
-     {
-       png_destroy_struct(info_ptr);
-       info_ptr = (png_infop)png_create_struct(PNG_STRUCT_INFO);
-       *ptr_ptr = info_ptr;
-     }
+   if (png_sizeof(png_info) > png_info_struct_size)
+   {
+      png_destroy_struct(info_ptr);
+      info_ptr = (png_infop)png_create_struct(PNG_STRUCT_INFO);
+      *ptr_ptr = info_ptr;
+   }
 
-   /* set everything to 0 */
-   png_memset(info_ptr, 0, png_sizeof (png_info));
+   /* Set everything to 0 */
+   png_memset(info_ptr, 0, png_sizeof(png_info));
 }
 
-#ifdef PNG_FREE_ME_SUPPORTED
 void PNGAPI
 png_data_freer(png_structp png_ptr, png_infop info_ptr,
    int freer, png_uint_32 mask)
 {
-   png_debug(1, "in png_data_freer\n");
+   png_debug(1, "in png_data_freer");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
-   if(freer == PNG_DESTROY_WILL_FREE_DATA)
+
+   if (freer == PNG_DESTROY_WILL_FREE_DATA)
       info_ptr->free_me |= mask;
-   else if(freer == PNG_USER_WILL_FREE_DATA)
+
+   else if (freer == PNG_USER_WILL_FREE_DATA)
       info_ptr->free_me &= ~mask;
+
    else
       png_warning(png_ptr,
-         "Unknown freer parameter in png_data_freer.");
+         "Unknown freer parameter in png_data_freer");
 }
-#endif
 
 void PNGAPI
 png_free_data(png_structp png_ptr, png_infop info_ptr, png_uint_32 mask,
    int num)
 {
-   png_debug(1, "in png_free_data\n");
+   png_debug(1, "in png_free_data");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
-#if defined(PNG_TEXT_SUPPORTED)
-/* free text item num or (if num == -1) all text items */
-#ifdef PNG_FREE_ME_SUPPORTED
-if ((mask & PNG_FREE_TEXT) & info_ptr->free_me)
-#else
-if (mask & PNG_FREE_TEXT)
-#endif
-{
-   if (num != -1)
-   {
-     if (info_ptr->text && info_ptr->text[num].key)
-     {
-         png_free(png_ptr, info_ptr->text[num].key);
-         info_ptr->text[num].key = NULL;
-     }
-   }
-   else
+#ifdef PNG_TEXT_SUPPORTED
+   /* Free text item num or (if num == -1) all text items */
+   if ((mask & PNG_FREE_TEXT) & info_ptr->free_me)
    {
-       int i;
-       for (i = 0; i < info_ptr->num_text; i++)
-           png_free_data(png_ptr, info_ptr, PNG_FREE_TEXT, i);
-       png_free(png_ptr, info_ptr->text);
-       info_ptr->text = NULL;
-       info_ptr->num_text=0;
+      if (num != -1)
+      {
+         if (info_ptr->text && info_ptr->text[num].key)
+         {
+            png_free(png_ptr, info_ptr->text[num].key);
+            info_ptr->text[num].key = NULL;
+         }
+      }
+
+      else
+      {
+         int i;
+         for (i = 0; i < info_ptr->num_text; i++)
+             png_free_data(png_ptr, info_ptr, PNG_FREE_TEXT, i);
+         png_free(png_ptr, info_ptr->text);
+         info_ptr->text = NULL;
+         info_ptr->num_text=0;
+      }
    }
-}
 #endif
 
-#if defined(PNG_tRNS_SUPPORTED)
-/* free any tRNS entry */
-#ifdef PNG_FREE_ME_SUPPORTED
-if ((mask & PNG_FREE_TRNS) & info_ptr->free_me)
-#else
-if ((mask & PNG_FREE_TRNS) && (png_ptr->flags & PNG_FLAG_FREE_TRNS))
-#endif
-{
-    png_free(png_ptr, info_ptr->trans);
-    info_ptr->valid &= ~PNG_INFO_tRNS;
-#ifndef PNG_FREE_ME_SUPPORTED
-    png_ptr->flags &= ~PNG_FLAG_FREE_TRNS;
-#endif
-    info_ptr->trans = NULL;
-}
+#ifdef PNG_tRNS_SUPPORTED
+   /* Free any tRNS entry */
+   if ((mask & PNG_FREE_TRNS) & info_ptr->free_me)
+   {
+      png_free(png_ptr, info_ptr->trans_alpha);
+      info_ptr->trans_alpha = NULL;
+      info_ptr->valid &= ~PNG_INFO_tRNS;
+   }
 #endif
 
-#if defined(PNG_sCAL_SUPPORTED)
-/* free any sCAL entry */
-#ifdef PNG_FREE_ME_SUPPORTED
-if ((mask & PNG_FREE_SCAL) & info_ptr->free_me)
-#else
-if (mask & PNG_FREE_SCAL)
-#endif
-{
-#if defined(PNG_FIXED_POINT_SUPPORTED) && !defined(PNG_FLOATING_POINT_SUPPORTED)
-    png_free(png_ptr, info_ptr->scal_s_width);
-    png_free(png_ptr, info_ptr->scal_s_height);
-    info_ptr->scal_s_width = NULL;
-    info_ptr->scal_s_height = NULL;
-#endif
-    info_ptr->valid &= ~PNG_INFO_sCAL;
-}
+#ifdef PNG_sCAL_SUPPORTED
+   /* Free any sCAL entry */
+   if ((mask & PNG_FREE_SCAL) & info_ptr->free_me)
+   {
+      png_free(png_ptr, info_ptr->scal_s_width);
+      png_free(png_ptr, info_ptr->scal_s_height);
+      info_ptr->scal_s_width = NULL;
+      info_ptr->scal_s_height = NULL;
+      info_ptr->valid &= ~PNG_INFO_sCAL;
+   }
 #endif
 
-#if defined(PNG_pCAL_SUPPORTED)
-/* free any pCAL entry */
-#ifdef PNG_FREE_ME_SUPPORTED
-if ((mask & PNG_FREE_PCAL) & info_ptr->free_me)
-#else
-if (mask & PNG_FREE_PCAL)
-#endif
-{
-    png_free(png_ptr, info_ptr->pcal_purpose);
-    png_free(png_ptr, info_ptr->pcal_units);
-    info_ptr->pcal_purpose = NULL;
-    info_ptr->pcal_units = NULL;
-    if (info_ptr->pcal_params != NULL)
-    {
-        int i;
-        for (i = 0; i < (int)info_ptr->pcal_nparams; i++)
-        {
-          png_free(png_ptr, info_ptr->pcal_params[i]);
-          info_ptr->pcal_params[i]=NULL;
-        }
-        png_free(png_ptr, info_ptr->pcal_params);
-        info_ptr->pcal_params = NULL;
-    }
-    info_ptr->valid &= ~PNG_INFO_pCAL;
-}
+#ifdef PNG_pCAL_SUPPORTED
+   /* Free any pCAL entry */
+   if ((mask & PNG_FREE_PCAL) & info_ptr->free_me)
+   {
+      png_free(png_ptr, info_ptr->pcal_purpose);
+      png_free(png_ptr, info_ptr->pcal_units);
+      info_ptr->pcal_purpose = NULL;
+      info_ptr->pcal_units = NULL;
+      if (info_ptr->pcal_params != NULL)
+         {
+            int i;
+            for (i = 0; i < (int)info_ptr->pcal_nparams; i++)
+            {
+               png_free(png_ptr, info_ptr->pcal_params[i]);
+               info_ptr->pcal_params[i] = NULL;
+            }
+            png_free(png_ptr, info_ptr->pcal_params);
+            info_ptr->pcal_params = NULL;
+         }
+      info_ptr->valid &= ~PNG_INFO_pCAL;
+   }
 #endif
 
-#if defined(PNG_iCCP_SUPPORTED)
-/* free any iCCP entry */
-#ifdef PNG_FREE_ME_SUPPORTED
-if ((mask & PNG_FREE_ICCP) & info_ptr->free_me)
-#else
-if (mask & PNG_FREE_ICCP)
-#endif
-{
-    png_free(png_ptr, info_ptr->iccp_name);
-    png_free(png_ptr, info_ptr->iccp_profile);
-    info_ptr->iccp_name = NULL;
-    info_ptr->iccp_profile = NULL;
-    info_ptr->valid &= ~PNG_INFO_iCCP;
-}
+#ifdef PNG_iCCP_SUPPORTED
+   /* Free any iCCP entry */
+   if ((mask & PNG_FREE_ICCP) & info_ptr->free_me)
+   {
+      png_free(png_ptr, info_ptr->iccp_name);
+      png_free(png_ptr, info_ptr->iccp_profile);
+      info_ptr->iccp_name = NULL;
+      info_ptr->iccp_profile = NULL;
+      info_ptr->valid &= ~PNG_INFO_iCCP;
+   }
 #endif
 
-#if defined(PNG_sPLT_SUPPORTED)
-/* free a given sPLT entry, or (if num == -1) all sPLT entries */
-#ifdef PNG_FREE_ME_SUPPORTED
-if ((mask & PNG_FREE_SPLT) & info_ptr->free_me)
-#else
-if (mask & PNG_FREE_SPLT)
-#endif
-{
-   if (num != -1)
+#ifdef PNG_sPLT_SUPPORTED
+   /* Free a given sPLT entry, or (if num == -1) all sPLT entries */
+   if ((mask & PNG_FREE_SPLT) & info_ptr->free_me)
    {
-      if(info_ptr->splt_palettes)
+      if (num != -1)
       {
-          png_free(png_ptr, info_ptr->splt_palettes[num].name);
-          png_free(png_ptr, info_ptr->splt_palettes[num].entries);
-          info_ptr->splt_palettes[num].name = NULL;
-          info_ptr->splt_palettes[num].entries = NULL;
+         if (info_ptr->splt_palettes)
+         {
+            png_free(png_ptr, info_ptr->splt_palettes[num].name);
+            png_free(png_ptr, info_ptr->splt_palettes[num].entries);
+            info_ptr->splt_palettes[num].name = NULL;
+            info_ptr->splt_palettes[num].entries = NULL;
+         }
       }
-   }
-   else
-   {
-       if(info_ptr->splt_palettes_num)
-       {
-         int i;
-         for (i = 0; i < (int)info_ptr->splt_palettes_num; i++)
-            png_free_data(png_ptr, info_ptr, PNG_FREE_SPLT, i);
 
-         png_free(png_ptr, info_ptr->splt_palettes);
-         info_ptr->splt_palettes = NULL;
-         info_ptr->splt_palettes_num = 0;
-       }
-       info_ptr->valid &= ~PNG_INFO_sPLT;
+      else
+      {
+         if (info_ptr->splt_palettes_num)
+         {
+            int i;
+            for (i = 0; i < (int)info_ptr->splt_palettes_num; i++)
+               png_free_data(png_ptr, info_ptr, PNG_FREE_SPLT, i);
+
+            png_free(png_ptr, info_ptr->splt_palettes);
+            info_ptr->splt_palettes = NULL;
+            info_ptr->splt_palettes_num = 0;
+         }
+         info_ptr->valid &= ~PNG_INFO_sPLT;
+      }
    }
-}
 #endif
 
-#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
-  if(png_ptr->unknown_chunk.data)
-  {
-    png_free(png_ptr, png_ptr->unknown_chunk.data);
-    png_ptr->unknown_chunk.data = NULL;
-  }
-#ifdef PNG_FREE_ME_SUPPORTED
-if ((mask & PNG_FREE_UNKN) & info_ptr->free_me)
-#else
-if (mask & PNG_FREE_UNKN)
-#endif
-{
-   if (num != -1)
+#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
+   if (png_ptr->unknown_chunk.data)
    {
-       if(info_ptr->unknown_chunks)
-       {
-          png_free(png_ptr, info_ptr->unknown_chunks[num].data);
-          info_ptr->unknown_chunks[num].data = NULL;
-       }
+      png_free(png_ptr, png_ptr->unknown_chunk.data);
+      png_ptr->unknown_chunk.data = NULL;
    }
-   else
+
+   if ((mask & PNG_FREE_UNKN) & info_ptr->free_me)
    {
-       int i;
+      if (num != -1)
+      {
+          if (info_ptr->unknown_chunks)
+          {
+             png_free(png_ptr, info_ptr->unknown_chunks[num].data);
+             info_ptr->unknown_chunks[num].data = NULL;
+          }
+      }
 
-       if(info_ptr->unknown_chunks_num)
-       {
-         for (i = 0; i < (int)info_ptr->unknown_chunks_num; i++)
-            png_free_data(png_ptr, info_ptr, PNG_FREE_UNKN, i);
+      else
+      {
+         int i;
 
-         png_free(png_ptr, info_ptr->unknown_chunks);
-         info_ptr->unknown_chunks = NULL;
-         info_ptr->unknown_chunks_num = 0;
-       }
+         if (info_ptr->unknown_chunks_num)
+         {
+            for (i = 0; i < info_ptr->unknown_chunks_num; i++)
+               png_free_data(png_ptr, info_ptr, PNG_FREE_UNKN, i);
+
+            png_free(png_ptr, info_ptr->unknown_chunks);
+            info_ptr->unknown_chunks = NULL;
+            info_ptr->unknown_chunks_num = 0;
+         }
+      }
    }
-}
 #endif
 
-#if defined(PNG_hIST_SUPPORTED)
-/* free any hIST entry */
-#ifdef PNG_FREE_ME_SUPPORTED
-if ((mask & PNG_FREE_HIST)  & info_ptr->free_me)
-#else
-if ((mask & PNG_FREE_HIST) && (png_ptr->flags & PNG_FLAG_FREE_HIST))
-#endif
-{
-    png_free(png_ptr, info_ptr->hist);
-    info_ptr->hist = NULL;
-    info_ptr->valid &= ~PNG_INFO_hIST;
-#ifndef PNG_FREE_ME_SUPPORTED
-    png_ptr->flags &= ~PNG_FLAG_FREE_HIST;
-#endif
-}
+#ifdef PNG_hIST_SUPPORTED
+   /* Free any hIST entry */
+   if ((mask & PNG_FREE_HIST)  & info_ptr->free_me)
+   {
+      png_free(png_ptr, info_ptr->hist);
+      info_ptr->hist = NULL;
+      info_ptr->valid &= ~PNG_INFO_hIST;
+   }
 #endif
 
-/* free any PLTE entry that was internally allocated */
-#ifdef PNG_FREE_ME_SUPPORTED
-if ((mask & PNG_FREE_PLTE) & info_ptr->free_me)
-#else
-if ((mask & PNG_FREE_PLTE) && (png_ptr->flags & PNG_FLAG_FREE_PLTE))
-#endif
-{
-    png_zfree(png_ptr, info_ptr->palette);
-    info_ptr->palette = NULL;
-    info_ptr->valid &= ~PNG_INFO_PLTE;
-#ifndef PNG_FREE_ME_SUPPORTED
-    png_ptr->flags &= ~PNG_FLAG_FREE_PLTE;
-#endif
-    info_ptr->num_palette = 0;
-}
+   /* Free any PLTE entry that was internally allocated */
+   if ((mask & PNG_FREE_PLTE) & info_ptr->free_me)
+   {
+      png_zfree(png_ptr, info_ptr->palette);
+      info_ptr->palette = NULL;
+      info_ptr->valid &= ~PNG_INFO_PLTE;
+      info_ptr->num_palette = 0;
+   }
 
-#if defined(PNG_INFO_IMAGE_SUPPORTED)
-/* free any image bits attached to the info structure */
-#ifdef PNG_FREE_ME_SUPPORTED
-if ((mask & PNG_FREE_ROWS) & info_ptr->free_me)
-#else
-if (mask & PNG_FREE_ROWS)
-#endif
-{
-    if(info_ptr->row_pointers)
-    {
-       int row;
-       for (row = 0; row < (int)info_ptr->height; row++)
-       {
-          png_free(png_ptr, info_ptr->row_pointers[row]);
-          info_ptr->row_pointers[row]=NULL;
-       }
-       png_free(png_ptr, info_ptr->row_pointers);
-       info_ptr->row_pointers=NULL;
-    }
-    info_ptr->valid &= ~PNG_INFO_IDAT;
-}
+#ifdef PNG_INFO_IMAGE_SUPPORTED
+   /* Free any image bits attached to the info structure */
+   if ((mask & PNG_FREE_ROWS) & info_ptr->free_me)
+   {
+      if (info_ptr->row_pointers)
+      {
+         int row;
+         for (row = 0; row < (int)info_ptr->height; row++)
+         {
+            png_free(png_ptr, info_ptr->row_pointers[row]);
+            info_ptr->row_pointers[row] = NULL;
+         }
+         png_free(png_ptr, info_ptr->row_pointers);
+         info_ptr->row_pointers = NULL;
+      }
+      info_ptr->valid &= ~PNG_INFO_IDAT;
+   }
 #endif
 
-#ifdef PNG_FREE_ME_SUPPORTED
-   if(num == -1)
-     info_ptr->free_me &= ~mask;
-   else
-     info_ptr->free_me &= ~(mask & ~PNG_FREE_MUL);
-#endif
+   if (num != -1)
+      mask &= ~PNG_FREE_MUL;
+
+   info_ptr->free_me &= ~mask;
 }
 
 /* This is an internal routine to free any memory that the info struct is
@@ -625,16 +535,16 @@ if (mask & PNG_FREE_ROWS)
 void /* PRIVATE */
 png_info_destroy(png_structp png_ptr, png_infop info_ptr)
 {
-   png_debug(1, "in png_info_destroy\n");
+   png_debug(1, "in png_info_destroy");
 
    png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
 
-#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
+#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
    if (png_ptr->num_chunk_list)
    {
-       png_free(png_ptr, png_ptr->chunk_list);
-       png_ptr->chunk_list=NULL;
-       png_ptr->num_chunk_list=0;
+      png_free(png_ptr, png_ptr->chunk_list);
+      png_ptr->chunk_list = NULL;
+      png_ptr->num_chunk_list = 0;
    }
 #endif
 
@@ -649,12 +559,14 @@ png_info_destroy(png_structp png_ptr, png_infop info_ptr)
 png_voidp PNGAPI
 png_get_io_ptr(png_structp png_ptr)
 {
-   if(png_ptr == NULL) return (NULL);
+   if (png_ptr == NULL)
+      return (NULL);
+
    return (png_ptr->io_ptr);
 }
 
 #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
-#if !defined(PNG_NO_STDIO)
+#  ifdef PNG_STDIO_SUPPORTED
 /* Initialize the default input/output functions for the PNG file.  If you
  * use your own read or write routines, you can call either png_set_read_fn()
  * or png_set_write_fn() instead of png_init_io().  If you have defined
@@ -664,81 +576,87 @@ png_get_io_ptr(png_structp png_ptr)
 void PNGAPI
 png_init_io(png_structp png_ptr, png_FILE_p fp)
 {
-   png_debug(1, "in png_init_io\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_init_io");
+
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->io_ptr = (png_voidp)fp;
 }
-#endif
+#  endif
 
-#if defined(PNG_TIME_RFC1123_SUPPORTED)
+#  ifdef PNG_TIME_RFC1123_SUPPORTED
 /* Convert the supplied time into an RFC 1123 string suitable for use in
  * a "Creation Time" or other text-based time string.
  */
-png_charp PNGAPI
-png_convert_to_rfc1123(png_structp png_ptr, png_timep ptime)
+png_const_charp PNGAPI
+png_convert_to_rfc1123(png_structp png_ptr, png_const_timep ptime)
 {
    static PNG_CONST char short_months[12][4] =
         {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
          "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
 
-   if(png_ptr == NULL) return (NULL);
-   if (png_ptr->time_buffer == NULL)
-   {
-      png_ptr->time_buffer = (png_charp)png_malloc(png_ptr, (png_uint_32)(29*
-         png_sizeof(char)));
-   }
+   if (png_ptr == NULL)
+      return (NULL);
 
-#if defined(_WIN32_WCE)
-   {
-      wchar_t time_buf[29];
-      wsprintf(time_buf, TEXT("%d %S %d %02d:%02d:%02d +0000"),
-          ptime->day % 32, short_months[(ptime->month - 1) % 12],
-        ptime->year, ptime->hour % 24, ptime->minute % 60,
-          ptime->second % 61);
-      WideCharToMultiByte(CP_ACP, 0, time_buf, -1, png_ptr->time_buffer, 29,
-          NULL, NULL);
-   }
-#else
-#ifdef USE_FAR_KEYWORD
    {
-      char near_time_buf[29];
-      sprintf(near_time_buf, "%d %s %d %02d:%02d:%02d +0000",
-          ptime->day % 32, short_months[(ptime->month - 1) % 12],
-          ptime->year, ptime->hour % 24, ptime->minute % 60,
-          ptime->second % 61);
-      png_memcpy(png_ptr->time_buffer, near_time_buf,
-          29*png_sizeof(char));
+      size_t pos = 0;
+      char number_buf[5]; /* enough for a four digit year */
+
+#     define APPEND_STRING(string)\
+         pos = png_safecat(png_ptr->time_buffer, sizeof png_ptr->time_buffer,\
+            pos, (string))
+#     define APPEND_NUMBER(format, value)\
+         APPEND_STRING(PNG_FORMAT_NUMBER(number_buf, format, (value)))
+#     define APPEND(ch)\
+         if (pos < (sizeof png_ptr->time_buffer)-1)\
+            png_ptr->time_buffer[pos++] = (ch)
+
+      APPEND_NUMBER(PNG_NUMBER_FORMAT_u, (unsigned)ptime->day % 32);
+      APPEND(' ');
+      APPEND_STRING(short_months[(ptime->month - 1) % 12]);
+      APPEND(' ');
+      APPEND_NUMBER(PNG_NUMBER_FORMAT_u, ptime->year);
+      APPEND(' ');
+      APPEND_NUMBER(PNG_NUMBER_FORMAT_02u, (unsigned)ptime->hour % 24);
+      APPEND(':');
+      APPEND_NUMBER(PNG_NUMBER_FORMAT_02u, (unsigned)ptime->minute % 60);
+      APPEND(':');
+      APPEND_NUMBER(PNG_NUMBER_FORMAT_02u, (unsigned)ptime->second % 61);
+      APPEND_STRING(" +0000"); /* This reliably terminates the buffer */
+
+#     undef APPEND
+#     undef APPEND_NUMBER
+#     undef APPEND_STRING
    }
-#else
-   sprintf(png_ptr->time_buffer, "%d %s %d %02d:%02d:%02d +0000",
-       ptime->day % 32, short_months[(ptime->month - 1) % 12],
-       ptime->year, ptime->hour % 24, ptime->minute % 60,
-       ptime->second % 61);
-#endif
-#endif /* _WIN32_WCE */
-   return ((png_charp)png_ptr->time_buffer);
-}
-#endif /* PNG_TIME_RFC1123_SUPPORTED */
 
-#if 0
-/* Signature string for a PNG file. */
-png_bytep PNGAPI
-png_sig_bytes(void)
-{
-   return ((png_bytep)"\211\120\116\107\015\012\032\012");
+   return png_ptr->time_buffer;
 }
-#endif
+#  endif /* PNG_TIME_RFC1123_SUPPORTED */
+
 #endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */
 
-png_charp PNGAPI
-png_get_copyright(png_structp png_ptr)
+png_const_charp PNGAPI
+png_get_copyright(png_const_structp png_ptr)
 {
-   if (&png_ptr != NULL)  /* silence compiler warning about unused png_ptr */
-   return ((png_charp) "\n libpng version 1.2.18 - May 15, 2007\n\
-   Copyright (c) 1998-2007 Glenn Randers-Pehrson\n\
-   Copyright (c) 1996-1997 Andreas Dilger\n\
-   Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
-   return ((png_charp) "");
+   PNG_UNUSED(png_ptr)  /* Silence compiler warning about unused png_ptr */
+#ifdef PNG_STRING_COPYRIGHT
+   return PNG_STRING_COPYRIGHT
+#else
+#  ifdef __STDC__
+   return PNG_STRING_NEWLINE \
+     "libpng version 1.5.4 - July 7, 2011" PNG_STRING_NEWLINE \
+     "Copyright (c) 1998-2011 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
+     "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
+     "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
+     PNG_STRING_NEWLINE;
+#  else
+      return "libpng version 1.5.4 - July 7, 2011\
+      Copyright (c) 1998-2011 Glenn Randers-Pehrson\
+      Copyright (c) 1996-1997 Andreas Dilger\
+      Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
+#  endif
+#endif
 }
 
 /* The following return the library version as a short string in the
@@ -749,141 +667,1784 @@ png_get_copyright(png_structp png_ptr)
  * png_get_header_ver().  Due to the version_nn_nn_nn typedef guard,
  * it is guaranteed that png.c uses the correct version of png.h.
  */
-png_charp PNGAPI
-png_get_libpng_ver(png_structp png_ptr)
+png_const_charp PNGAPI
+png_get_libpng_ver(png_const_structp png_ptr)
 {
    /* Version of *.c files used when building libpng */
-   if (&png_ptr != NULL)  /* silence compiler warning about unused png_ptr */
-      return ((png_charp) PNG_LIBPNG_VER_STRING);
-   return ((png_charp) "");
+   return png_get_header_ver(png_ptr);
 }
 
-png_charp PNGAPI
-png_get_header_ver(png_structp png_ptr)
+png_const_charp PNGAPI
+png_get_header_ver(png_const_structp png_ptr)
 {
    /* Version of *.h files used when building libpng */
-   if (&png_ptr != NULL)  /* silence compiler warning about unused png_ptr */
-      return ((png_charp) PNG_LIBPNG_VER_STRING);
-   return ((png_charp) "");
+   PNG_UNUSED(png_ptr)  /* Silence compiler warning about unused png_ptr */
+   return PNG_LIBPNG_VER_STRING;
 }
 
-png_charp PNGAPI
-png_get_header_version(png_structp png_ptr)
+png_const_charp PNGAPI
+png_get_header_version(png_const_structp png_ptr)
 {
    /* Returns longer string containing both version and date */
-   if (&png_ptr != NULL)  /* silence compiler warning about unused png_ptr */
-      return ((png_charp) PNG_HEADER_VERSION_STRING);
-   return ((png_charp) "");
+   PNG_UNUSED(png_ptr)  /* Silence compiler warning about unused png_ptr */
+#ifdef __STDC__
+   return PNG_HEADER_VERSION_STRING
+#  ifndef PNG_READ_SUPPORTED
+   "     (NO READ SUPPORT)"
+#  endif
+   PNG_STRING_NEWLINE;
+#else
+   return PNG_HEADER_VERSION_STRING;
+#endif
 }
 
 #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
-#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+#  ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
 int PNGAPI
-png_handle_as_unknown(png_structp png_ptr, png_bytep chunk_name)
+png_handle_as_unknown(png_structp png_ptr, png_const_bytep chunk_name)
 {
-   /* check chunk_name and return "keep" value if it's on the list, else 0 */
+   /* Check chunk_name and return "keep" value if it's on the list, else 0 */
    int i;
    png_bytep p;
-   if((png_ptr == NULL && chunk_name == NULL) || png_ptr->num_chunk_list<=0)
+   if (png_ptr == NULL || chunk_name == NULL || png_ptr->num_chunk_list<=0)
       return 0;
-   p=png_ptr->chunk_list+png_ptr->num_chunk_list*5-5;
-   for (i = png_ptr->num_chunk_list; i; i--, p-=5)
+
+   p = png_ptr->chunk_list + png_ptr->num_chunk_list*5 - 5;
+   for (i = png_ptr->num_chunk_list; i; i--, p -= 5)
       if (!png_memcmp(chunk_name, p, 4))
-        return ((int)*(p+4));
+        return ((int)*(p + 4));
    return 0;
 }
-#endif
+#  endif
+#endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */
 
+#ifdef PNG_READ_SUPPORTED
 /* This function, added to libpng-1.0.6g, is untested. */
 int PNGAPI
 png_reset_zstream(png_structp png_ptr)
 {
-   if (png_ptr == NULL) return Z_STREAM_ERROR;
+   if (png_ptr == NULL)
+      return Z_STREAM_ERROR;
+
    return (inflateReset(&png_ptr->zstream));
 }
-#endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */
+#endif /* PNG_READ_SUPPORTED */
 
 /* This function was added to libpng-1.0.7 */
 png_uint_32 PNGAPI
 png_access_version_number(void)
 {
    /* Version of *.c files used when building libpng */
-   return((png_uint_32) PNG_LIBPNG_VER);
+   return((png_uint_32)PNG_LIBPNG_VER);
 }
 
 
-#if defined(PNG_READ_SUPPORTED) && defined(PNG_ASSEMBLER_CODE_SUPPORTED)
-#if !defined(PNG_1_0_X)
-#if defined(PNG_MMX_CODE_SUPPORTED)
-/* this INTERNAL function was added to libpng 1.2.0 */
-void /* PRIVATE */
-png_init_mmx_flags (png_structp png_ptr)
-{
-    if(png_ptr == NULL) return;
-    png_ptr->mmx_rowbytes_threshold = 0;
-    png_ptr->mmx_bitdepth_threshold = 0;
-
-#  if (defined(PNG_USE_PNGVCRD) || defined(PNG_USE_PNGGCCRD))
-
-    png_ptr->asm_flags |= PNG_ASM_FLAG_MMX_SUPPORT_COMPILED;
-
-    if (png_mmx_support() > 0) {
-        png_ptr->asm_flags |= PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU
-#    ifdef PNG_HAVE_MMX_COMBINE_ROW
-                              | PNG_ASM_FLAG_MMX_READ_COMBINE_ROW
-#    endif
-#    ifdef PNG_HAVE_MMX_READ_INTERLACE
-                              | PNG_ASM_FLAG_MMX_READ_INTERLACE
-#    endif
-#    ifndef PNG_HAVE_MMX_READ_FILTER_ROW
-                              ;
-#    else
-                              | PNG_ASM_FLAG_MMX_READ_FILTER_SUB
-                              | PNG_ASM_FLAG_MMX_READ_FILTER_UP
-                              | PNG_ASM_FLAG_MMX_READ_FILTER_AVG
-                              | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ;
-
-        png_ptr->mmx_rowbytes_threshold = PNG_MMX_ROWBYTES_THRESHOLD_DEFAULT;
-        png_ptr->mmx_bitdepth_threshold = PNG_MMX_BITDEPTH_THRESHOLD_DEFAULT;
-#    endif
-    } else {
-        png_ptr->asm_flags &= ~( PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU
-                               | PNG_MMX_READ_FLAGS
-                               | PNG_MMX_WRITE_FLAGS );
-    }
-
-#  else /* !(PNGVCRD || PNGGCCRD) */
-
-    /* clear all MMX flags; no support is compiled in */
-    png_ptr->asm_flags &= ~( PNG_MMX_FLAGS );
-
-#  endif /* ?(PNGVCRD || PNGGCCRD) */
-}
-
-#endif /* !(PNG_MMX_CODE_SUPPORTED) */
-
-/* this function was added to libpng 1.2.0 */
-#if !defined(PNG_USE_PNGGCCRD) && \
-    !(defined(PNG_MMX_CODE_SUPPORTED) && defined(PNG_USE_PNGVCRD))
-int PNGAPI
-png_mmx_support(void)
-{
-    return -1;
-}
-#endif
-#endif /* PNG_1_0_X  && PNG_ASSEMBLER_CODE_SUPPORTED */
-#endif /* PNG_READ_SUPPORTED */
 
 #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
-#ifdef PNG_SIZE_T
+#  ifdef PNG_SIZE_T
 /* Added at libpng version 1.2.6 */
    PNG_EXTERN png_size_t PNGAPI png_convert_size PNGARG((size_t size));
 png_size_t PNGAPI
 png_convert_size(size_t size)
 {
-  if (size > (png_size_t)-1)
-     PNG_ABORT();  /* We haven't got access to png_ptr, so no png_error() */
-  return ((png_size_t)size);
+   if (size > (png_size_t)-1)
+      PNG_ABORT();  /* We haven't got access to png_ptr, so no png_error() */
+
+   return ((png_size_t)size);
+}
+#  endif /* PNG_SIZE_T */
+
+/* Added at libpng version 1.2.34 and 1.4.0 (moved from pngset.c) */
+#  ifdef PNG_CHECK_cHRM_SUPPORTED
+
+int /* PRIVATE */
+png_check_cHRM_fixed(png_structp png_ptr,
+   png_fixed_point white_x, png_fixed_point white_y, png_fixed_point red_x,
+   png_fixed_point red_y, png_fixed_point green_x, png_fixed_point green_y,
+   png_fixed_point blue_x, png_fixed_point blue_y)
+{
+   int ret = 1;
+   unsigned long xy_hi,xy_lo,yx_hi,yx_lo;
+
+   png_debug(1, "in function png_check_cHRM_fixed");
+
+   if (png_ptr == NULL)
+      return 0;
+
+   /* (x,y,z) values are first limited to 0..100000 (PNG_FP_1), the white
+    * y must also be greater than 0.  To test for the upper limit calculate
+    * (PNG_FP_1-y) - x must be <= to this for z to be >= 0 (and the expression
+    * cannot overflow.)  At this point we know x and y are >= 0 and (x+y) is
+    * <= PNG_FP_1.  The previous test on PNG_MAX_UINT_31 is removed because it
+    * pointless (and it produces compiler warnings!)
+    */
+   if (white_x < 0 || white_y <= 0 ||
+         red_x < 0 ||   red_y <  0 ||
+       green_x < 0 || green_y <  0 ||
+        blue_x < 0 ||  blue_y <  0)
+   {
+      png_warning(png_ptr,
+        "Ignoring attempt to set negative chromaticity value");
+      ret = 0;
+   }
+   /* And (x+y) must be <= PNG_FP_1 (so z is >= 0) */
+   if (white_x > PNG_FP_1 - white_y)
+   {
+      png_warning(png_ptr, "Invalid cHRM white point");
+      ret = 0;
+   }
+
+   if (red_x > PNG_FP_1 - red_y)
+   {
+      png_warning(png_ptr, "Invalid cHRM red point");
+      ret = 0;
+   }
+
+   if (green_x > PNG_FP_1 - green_y)
+   {
+      png_warning(png_ptr, "Invalid cHRM green point");
+      ret = 0;
+   }
+
+   if (blue_x > PNG_FP_1 - blue_y)
+   {
+      png_warning(png_ptr, "Invalid cHRM blue point");
+      ret = 0;
+   }
+
+   png_64bit_product(green_x - red_x, blue_y - red_y, &xy_hi, &xy_lo);
+   png_64bit_product(green_y - red_y, blue_x - red_x, &yx_hi, &yx_lo);
+
+   if (xy_hi == yx_hi && xy_lo == yx_lo)
+   {
+      png_warning(png_ptr,
+         "Ignoring attempt to set cHRM RGB triangle with zero area");
+      ret = 0;
+   }
+
+   return ret;
+}
+#  endif /* PNG_CHECK_cHRM_SUPPORTED */
+
+void /* PRIVATE */
+png_check_IHDR(png_structp png_ptr,
+   png_uint_32 width, png_uint_32 height, int bit_depth,
+   int color_type, int interlace_type, int compression_type,
+   int filter_type)
+{
+   int error = 0;
+
+   /* Check for width and height valid values */
+   if (width == 0)
+   {
+      png_warning(png_ptr, "Image width is zero in IHDR");
+      error = 1;
+   }
+
+   if (height == 0)
+   {
+      png_warning(png_ptr, "Image height is zero in IHDR");
+      error = 1;
+   }
+
+#  ifdef PNG_SET_USER_LIMITS_SUPPORTED
+   if (width > png_ptr->user_width_max)
+
+#  else
+   if (width > PNG_USER_WIDTH_MAX)
+#  endif
+   {
+      png_warning(png_ptr, "Image width exceeds user limit in IHDR");
+      error = 1;
+   }
+
+#  ifdef PNG_SET_USER_LIMITS_SUPPORTED
+   if (height > png_ptr->user_height_max)
+#  else
+   if (height > PNG_USER_HEIGHT_MAX)
+#  endif
+   {
+      png_warning(png_ptr, "Image height exceeds user limit in IHDR");
+      error = 1;
+   }
+
+   if (width > PNG_UINT_31_MAX)
+   {
+      png_warning(png_ptr, "Invalid image width in IHDR");
+      error = 1;
+   }
+
+   if (height > PNG_UINT_31_MAX)
+   {
+      png_warning(png_ptr, "Invalid image height in IHDR");
+      error = 1;
+   }
+
+   if (width > (PNG_UINT_32_MAX
+                 >> 3)      /* 8-byte RGBA pixels */
+                 - 48       /* bigrowbuf hack */
+                 - 1        /* filter byte */
+                 - 7*8      /* rounding of width to multiple of 8 pixels */
+                 - 8)       /* extra max_pixel_depth pad */
+      png_warning(png_ptr, "Width is too large for libpng to process pixels");
+
+   /* Check other values */
+   if (bit_depth != 1 && bit_depth != 2 && bit_depth != 4 &&
+       bit_depth != 8 && bit_depth != 16)
+   {
+      png_warning(png_ptr, "Invalid bit depth in IHDR");
+      error = 1;
+   }
+
+   if (color_type < 0 || color_type == 1 ||
+       color_type == 5 || color_type > 6)
+   {
+      png_warning(png_ptr, "Invalid color type in IHDR");
+      error = 1;
+   }
+
+   if (((color_type == PNG_COLOR_TYPE_PALETTE) && bit_depth > 8) ||
+       ((color_type == PNG_COLOR_TYPE_RGB ||
+         color_type == PNG_COLOR_TYPE_GRAY_ALPHA ||
+         color_type == PNG_COLOR_TYPE_RGB_ALPHA) && bit_depth < 8))
+   {
+      png_warning(png_ptr, "Invalid color type/bit depth combination in IHDR");
+      error = 1;
+   }
+
+   if (interlace_type >= PNG_INTERLACE_LAST)
+   {
+      png_warning(png_ptr, "Unknown interlace method in IHDR");
+      error = 1;
+   }
+
+   if (compression_type != PNG_COMPRESSION_TYPE_BASE)
+   {
+      png_warning(png_ptr, "Unknown compression method in IHDR");
+      error = 1;
+   }
+
+#  ifdef PNG_MNG_FEATURES_SUPPORTED
+   /* Accept filter_method 64 (intrapixel differencing) only if
+    * 1. Libpng was compiled with PNG_MNG_FEATURES_SUPPORTED and
+    * 2. Libpng did not read a PNG signature (this filter_method is only
+    *    used in PNG datastreams that are embedded in MNG datastreams) and
+    * 3. The application called png_permit_mng_features with a mask that
+    *    included PNG_FLAG_MNG_FILTER_64 and
+    * 4. The filter_method is 64 and
+    * 5. The color_type is RGB or RGBA
+    */
+   if ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) &&
+       png_ptr->mng_features_permitted)
+      png_warning(png_ptr, "MNG features are not allowed in a PNG datastream");
+
+   if (filter_type != PNG_FILTER_TYPE_BASE)
+   {
+      if (!((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
+          (filter_type == PNG_INTRAPIXEL_DIFFERENCING) &&
+          ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) == 0) &&
+          (color_type == PNG_COLOR_TYPE_RGB ||
+          color_type == PNG_COLOR_TYPE_RGB_ALPHA)))
+      {
+         png_warning(png_ptr, "Unknown filter method in IHDR");
+         error = 1;
+      }
+
+      if (png_ptr->mode & PNG_HAVE_PNG_SIGNATURE)
+      {
+         png_warning(png_ptr, "Invalid filter method in IHDR");
+         error = 1;
+      }
+   }
+
+#  else
+   if (filter_type != PNG_FILTER_TYPE_BASE)
+   {
+      png_warning(png_ptr, "Unknown filter method in IHDR");
+      error = 1;
+   }
+#  endif
+
+   if (error == 1)
+      png_error(png_ptr, "Invalid IHDR data");
+}
+
+#if defined(PNG_sCAL_SUPPORTED) || defined(PNG_pCAL_SUPPORTED)
+/* ASCII to fp functions */
+/* Check an ASCII formated floating point value, see the more detailed
+ * comments in pngpriv.h
+ */
+/* The following is used internally to preserve the sticky flags */
+#define png_fp_add(state, flags) ((state) |= (flags))
+#define png_fp_set(state, value) ((state) = (value) | ((state) & PNG_FP_STICKY))
+
+int /* PRIVATE */
+png_check_fp_number(png_const_charp string, png_size_t size, int *statep,
+   png_size_tp whereami)
+{
+   int state = *statep;
+   png_size_t i = *whereami;
+
+   while (i < size)
+   {
+      int type;
+      /* First find the type of the next character */
+      switch (string[i])
+      {
+      case 43:  type = PNG_FP_SAW_SIGN;                   break;
+      case 45:  type = PNG_FP_SAW_SIGN + PNG_FP_NEGATIVE; break;
+      case 46:  type = PNG_FP_SAW_DOT;                    break;
+      case 48:  type = PNG_FP_SAW_DIGIT;                  break;
+      case 49: case 50: case 51: case 52:
+      case 53: case 54: case 55: case 56:
+      case 57:  type = PNG_FP_SAW_DIGIT + PNG_FP_NONZERO; break;
+      case 69:
+      case 101: type = PNG_FP_SAW_E;                      break;
+      default:  goto PNG_FP_End;
+      }
+
+      /* Now deal with this type according to the current
+       * state, the type is arranged to not overlap the
+       * bits of the PNG_FP_STATE.
+       */
+      switch ((state & PNG_FP_STATE) + (type & PNG_FP_SAW_ANY))
+      {
+      case PNG_FP_INTEGER + PNG_FP_SAW_SIGN:
+         if (state & PNG_FP_SAW_ANY)
+            goto PNG_FP_End; /* not a part of the number */
+
+         png_fp_add(state, type);
+         break;
+
+      case PNG_FP_INTEGER + PNG_FP_SAW_DOT:
+         /* Ok as trailer, ok as lead of fraction. */
+         if (state & PNG_FP_SAW_DOT) /* two dots */
+            goto PNG_FP_End;
+
+         else if (state & PNG_FP_SAW_DIGIT) /* trailing dot? */
+            png_fp_add(state, type);
+
+         else
+            png_fp_set(state, PNG_FP_FRACTION | type);
+
+         break;
+
+      case PNG_FP_INTEGER + PNG_FP_SAW_DIGIT:
+         if (state & PNG_FP_SAW_DOT) /* delayed fraction */
+            png_fp_set(state, PNG_FP_FRACTION | PNG_FP_SAW_DOT);
+
+         png_fp_add(state, type | PNG_FP_WAS_VALID);
+
+         break;
+
+      case PNG_FP_INTEGER + PNG_FP_SAW_E:
+         if ((state & PNG_FP_SAW_DIGIT) == 0)
+            goto PNG_FP_End;
+
+         png_fp_set(state, PNG_FP_EXPONENT);
+
+         break;
+
+   /* case PNG_FP_FRACTION + PNG_FP_SAW_SIGN:
+         goto PNG_FP_End; ** no sign in fraction */
+
+   /* case PNG_FP_FRACTION + PNG_FP_SAW_DOT:
+         goto PNG_FP_End; ** Because SAW_DOT is always set */
+
+      case PNG_FP_FRACTION + PNG_FP_SAW_DIGIT:
+         png_fp_add(state, type | PNG_FP_WAS_VALID);
+         break;
+
+      case PNG_FP_FRACTION + PNG_FP_SAW_E:
+         /* This is correct because the trailing '.' on an
+          * integer is handled above - so we can only get here
+          * with the sequence ".E" (with no preceding digits).
+          */
+         if ((state & PNG_FP_SAW_DIGIT) == 0)
+            goto PNG_FP_End;
+
+         png_fp_set(state, PNG_FP_EXPONENT);
+
+         break;
+
+      case PNG_FP_EXPONENT + PNG_FP_SAW_SIGN:
+         if (state & PNG_FP_SAW_ANY)
+            goto PNG_FP_End; /* not a part of the number */
+
+         png_fp_add(state, PNG_FP_SAW_SIGN);
+
+         break;
+
+   /* case PNG_FP_EXPONENT + PNG_FP_SAW_DOT:
+         goto PNG_FP_End; */
+
+      case PNG_FP_EXPONENT + PNG_FP_SAW_DIGIT:
+         png_fp_add(state, PNG_FP_SAW_DIGIT | PNG_FP_WAS_VALID);
+
+         break;
+
+   /* case PNG_FP_EXPONEXT + PNG_FP_SAW_E:
+         goto PNG_FP_End; */
+
+      default: goto PNG_FP_End; /* I.e. break 2 */
+      }
+
+      /* The character seems ok, continue. */
+      ++i;
+   }
+
+PNG_FP_End:
+   /* Here at the end, update the state and return the correct
+    * return code.
+    */
+   *statep = state;
+   *whereami = i;
+
+   return (state & PNG_FP_SAW_DIGIT) != 0;
+}
+
+
+/* The same but for a complete string. */
+int
+png_check_fp_string(png_const_charp string, png_size_t size)
+{
+   int        state=0;
+   png_size_t char_index=0;
+
+   if (png_check_fp_number(string, size, &state, &char_index) &&
+      (char_index == size || string[char_index] == 0))
+      return state /* must be non-zero - see above */;
+
+   return 0; /* i.e. fail */
+}
+#endif /* pCAL or sCAL */
+
+#ifdef PNG_READ_sCAL_SUPPORTED
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
+/* Utility used below - a simple accurate power of ten from an integral
+ * exponent.
+ */
+static double
+png_pow10(int power)
+{
+   int recip = 0;
+   double d = 1;
+
+   /* Handle negative exponent with a reciprocal at the end because
+    * 10 is exact whereas .1 is inexact in base 2
+    */
+   if (power < 0)
+   {
+      if (power < DBL_MIN_10_EXP) return 0;
+      recip = 1, power = -power;
+   }
+
+   if (power > 0)
+   {
+      /* Decompose power bitwise. */
+      double mult = 10;
+      do
+      {
+         if (power & 1) d *= mult;
+         mult *= mult;
+         power >>= 1;
+      }
+      while (power > 0);
+
+      if (recip) d = 1/d;
+   }
+   /* else power is 0 and d is 1 */
+
+   return d;
+}
+
+/* Function to format a floating point value in ASCII with a given
+ * precision.
+ */
+void /* PRIVATE */
+png_ascii_from_fp(png_structp png_ptr, png_charp ascii, png_size_t size,
+    double fp, unsigned int precision)
+{
+   /* We use standard functions from math.h, but not printf because
+    * that would require stdio.  The caller must supply a buffer of
+    * sufficient size or we will png_error.  The tests on size and
+    * the space in ascii[] consumed are indicated below.
+    */
+   if (precision < 1)
+      precision = DBL_DIG;
+
+   /* Enforce the limit of the implementation precision too. */
+   if (precision > DBL_DIG+1)
+      precision = DBL_DIG+1;
+
+   /* Basic sanity checks */
+   if (size >= precision+5) /* See the requirements below. */
+   {
+      if (fp < 0)
+      {
+         fp = -fp;
+         *ascii++ = 45; /* '-'  PLUS 1 TOTAL 1 */
+         --size;
+      }
+
+      if (fp >= DBL_MIN && fp <= DBL_MAX)
+      {
+         int exp_b10;       /* A base 10 exponent */
+         double base;   /* 10^exp_b10 */
+
+         /* First extract a base 10 exponent of the number,
+          * the calculation below rounds down when converting
+          * from base 2 to base 10 (multiply by log10(2) -
+          * 0.3010, but 77/256 is 0.3008, so exp_b10 needs to
+          * be increased.  Note that the arithmetic shift
+          * performs a floor() unlike C arithmetic - using a
+          * C multiply would break the following for negative
+          * exponents.
+          */
+         (void)frexp(fp, &exp_b10); /* exponent to base 2 */
+
+         exp_b10 = (exp_b10 * 77) >> 8; /* <= exponent to base 10 */
+
+         /* Avoid underflow here. */
+         base = png_pow10(exp_b10); /* May underflow */
+
+         while (base < DBL_MIN || base < fp)
+         {
+            /* And this may overflow. */
+            double test = png_pow10(exp_b10+1);
+
+            if (test <= DBL_MAX)
+               ++exp_b10, base = test;
+
+            else
+               break;
+         }
+
+         /* Normalize fp and correct exp_b10, after this fp is in the
+          * range [.1,1) and exp_b10 is both the exponent and the digit
+          * *before* which the decimal point should be inserted
+          * (starting with 0 for the first digit).  Note that this
+          * works even if 10^exp_b10 is out of range because of the
+          * test on DBL_MAX above.
+          */
+         fp /= base;
+         while (fp >= 1) fp /= 10, ++exp_b10;
+
+         /* Because of the code above fp may, at this point, be
+          * less than .1, this is ok because the code below can
+          * handle the leading zeros this generates, so no attempt
+          * is made to correct that here.
+          */
+
+         {
+            int czero, clead, cdigits;
+            char exponent[10];
+
+            /* Allow up to two leading zeros - this will not lengthen
+             * the number compared to using E-n.
+             */
+            if (exp_b10 < 0 && exp_b10 > -3) /* PLUS 3 TOTAL 4 */
+            {
+               czero = -exp_b10; /* PLUS 2 digits: TOTAL 3 */
+               exp_b10 = 0;      /* Dot added below before first output. */
+            }
+            else
+               czero = 0;    /* No zeros to add */
+
+            /* Generate the digit list, stripping trailing zeros and
+             * inserting a '.' before a digit if the exponent is 0.
+             */
+            clead = czero; /* Count of leading zeros */
+            cdigits = 0;   /* Count of digits in list. */
+
+            do
+            {
+               double d;
+
+               fp *= 10;
+               /* Use modf here, not floor and subtract, so that
+                * the separation is done in one step.  At the end
+                * of the loop don't break the number into parts so
+                * that the final digit is rounded.
+                */
+               if (cdigits+czero-clead+1 < (int)precision)
+                  fp = modf(fp, &d);
+
+               else
+               {
+                  d = floor(fp + .5);
+
+                  if (d > 9)
+                  {
+                     /* Rounding up to 10, handle that here. */
+                     if (czero > 0)
+                     {
+                        --czero, d = 1;
+                        if (cdigits == 0) --clead;
+                     }
+                     else
+                     {
+                        while (cdigits > 0 && d > 9)
+                        {
+                           int ch = *--ascii;
+
+                           if (exp_b10 != (-1))
+                              ++exp_b10;
+
+                           else if (ch == 46)
+                           {
+                              ch = *--ascii, ++size;
+                              /* Advance exp_b10 to '1', so that the
+                               * decimal point happens after the
+                               * previous digit.
+                               */
+                              exp_b10 = 1;
+                           }
+
+                           --cdigits;
+                           d = ch - 47;  /* I.e. 1+(ch-48) */
+                        }
+
+                        /* Did we reach the beginning? If so adjust the
+                         * exponent but take into account the leading
+                         * decimal point.
+                         */
+                        if (d > 9)  /* cdigits == 0 */
+                        {
+                           if (exp_b10 == (-1))
+                           {
+                              /* Leading decimal point (plus zeros?), if
+                               * we lose the decimal point here it must
+                               * be reentered below.
+                               */
+                              int ch = *--ascii;
+
+                              if (ch == 46)
+                                 ++size, exp_b10 = 1;
+
+                              /* Else lost a leading zero, so 'exp_b10' is
+                               * still ok at (-1)
+                               */
+                           }
+                           else
+                              ++exp_b10;
+
+                           /* In all cases we output a '1' */
+                           d = 1;
+                        }
+                     }
+                  }
+                  fp = 0; /* Guarantees termination below. */
+               }
+
+               if (d == 0)
+               {
+                  ++czero;
+                  if (cdigits == 0) ++clead;
+               }
+               else
+               {
+                  /* Included embedded zeros in the digit count. */
+                  cdigits += czero - clead;
+                  clead = 0;
+
+                  while (czero > 0)
+                  {
+                     /* exp_b10 == (-1) means we just output the decimal
+                      * place - after the DP don't adjust 'exp_b10' any
+                      * more!
+                      */
+                     if (exp_b10 != (-1))
+                     {
+                        if (exp_b10 == 0) *ascii++ = 46, --size;
+                        /* PLUS 1: TOTAL 4 */
+                        --exp_b10;
+                     }
+                     *ascii++ = 48, --czero;
+                  }
+
+                  if (exp_b10 != (-1))
+                  {
+                     if (exp_b10 == 0) *ascii++ = 46, --size; /* counted
+                                                                 above */
+                     --exp_b10;
+                  }
+                  *ascii++ = (char)(48 + (int)d), ++cdigits;
+               }
+            }
+            while (cdigits+czero-clead < (int)precision && fp > DBL_MIN);
+
+            /* The total output count (max) is now 4+precision */
+
+            /* Check for an exponent, if we don't need one we are
+             * done and just need to terminate the string.  At
+             * this point exp_b10==(-1) is effectively if flag - it got
+             * to '-1' because of the decrement after outputing
+             * the decimal point above (the exponent required is
+             * *not* -1!)
+             */
+            if (exp_b10 >= (-1) && exp_b10 <= 2)
+            {
+               /* The following only happens if we didn't output the
+                * leading zeros above for negative exponent, so this
+                * doest add to the digit requirement.  Note that the
+                * two zeros here can only be output if the two leading
+                * zeros were *not* output, so this doesn't increase
+                * the output count.
+                */
+               while (--exp_b10 >= 0) *ascii++ = 48;
+
+               *ascii = 0;
+
+               /* Total buffer requirement (including the '\0') is
+                * 5+precision - see check at the start.
+                */
+               return;
+            }
+
+            /* Here if an exponent is required, adjust size for
+             * the digits we output but did not count.  The total
+             * digit output here so far is at most 1+precision - no
+             * decimal point and no leading or trailing zeros have
+             * been output.
+             */
+            size -= cdigits;
+
+            *ascii++ = 69, --size;    /* 'E': PLUS 1 TOTAL 2+precision */
+            if (exp_b10 < 0)
+            {
+               *ascii++ = 45, --size; /* '-': PLUS 1 TOTAL 3+precision */
+               exp_b10 = -exp_b10;
+            }
+
+            cdigits = 0;
+
+            while (exp_b10 > 0)
+            {
+               exponent[cdigits++] = (char)(48 + exp_b10 % 10);
+               exp_b10 /= 10;
+            }
+
+            /* Need another size check here for the exponent digits, so
+             * this need not be considered above.
+             */
+            if ((int)size > cdigits)
+            {
+               while (cdigits > 0) *ascii++ = exponent[--cdigits];
+
+               *ascii = 0;
+
+               return;
+            }
+         }
+      }
+      else if (!(fp >= DBL_MIN))
+      {
+         *ascii++ = 48; /* '0' */
+         *ascii = 0;
+         return;
+      }
+      else
+      {
+         *ascii++ = 105; /* 'i' */
+         *ascii++ = 110; /* 'n' */
+         *ascii++ = 102; /* 'f' */
+         *ascii = 0;
+         return;
+      }
+   }
+
+   /* Here on buffer too small. */
+   png_error(png_ptr, "ASCII conversion buffer too small");
+}
+
+#  endif /* FLOATING_POINT */
+
+#  ifdef PNG_FIXED_POINT_SUPPORTED
+/* Function to format a fixed point value in ASCII.
+ */
+void /* PRIVATE */
+png_ascii_from_fixed(png_structp png_ptr, png_charp ascii, png_size_t size,
+    png_fixed_point fp)
+{
+   /* Require space for 10 decimal digits, a decimal point, a minus sign and a
+    * trailing \0, 13 characters:
+    */
+   if (size > 12)
+   {
+      png_uint_32 num;
+
+      /* Avoid overflow here on the minimum integer. */
+      if (fp < 0)
+         *ascii++ = 45, --size, num = -fp;
+      else
+         num = fp;
+
+      if (num <= 0x80000000U) /* else overflowed */
+      {
+         unsigned int ndigits = 0, first = 16 /* flag value */;
+         char digits[10];
+
+         while (num)
+         {
+            /* Split the low digit off num: */
+            unsigned int tmp = num/10;
+            num -= tmp*10;
+            digits[ndigits++] = (char)(48 + num);
+            /* Record the first non-zero digit, note that this is a number
+             * starting at 1, it's not actually the array index.
+             */
+            if (first == 16 && num > 0)
+               first = ndigits;
+            num = tmp;
+         }
+
+         if (ndigits > 0)
+         {
+            while (ndigits > 5) *ascii++ = digits[--ndigits];
+            /* The remaining digits are fractional digits, ndigits is '5' or
+             * smaller at this point.  It is certainly not zero.  Check for a
+             * non-zero fractional digit:
+             */
+            if (first <= 5)
+            {
+               unsigned int i;
+               *ascii++ = 46; /* decimal point */
+               /* ndigits may be <5 for small numbers, output leading zeros
+                * then ndigits digits to first:
+                */
+               i = 5;
+               while (ndigits < i) *ascii++ = 48, --i;
+               while (ndigits >= first) *ascii++ = digits[--ndigits];
+               /* Don't output the trailing zeros! */
+            }
+         }
+         else
+            *ascii++ = 48;
+
+         /* And null terminate the string: */
+         *ascii = 0;
+         return;
+      }
+   }
+
+   /* Here on buffer too small. */
+   png_error(png_ptr, "ASCII conversion buffer too small");
+}
+#   endif /* FIXED_POINT */
+#endif /* READ_SCAL */
+
+#if defined(PNG_FLOATING_POINT_SUPPORTED) && \
+   !defined(PNG_FIXED_POINT_MACRO_SUPPORTED)
+png_fixed_point
+png_fixed(png_structp png_ptr, double fp, png_const_charp text)
+{
+   double r = floor(100000 * fp + .5);
+
+   if (r > 2147483647. || r < -2147483648.)
+      png_fixed_error(png_ptr, text);
+
+   return (png_fixed_point)r;
+}
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || \
+    defined(PNG_INCH_CONVERSIONS_SUPPORTED) || defined(PNG__READ_pHYs_SUPPORTED)
+/* muldiv functions */
+/* This API takes signed arguments and rounds the result to the nearest
+ * integer (or, for a fixed point number - the standard argument - to
+ * the nearest .00001).  Overflow and divide by zero are signalled in
+ * the result, a boolean - true on success, false on overflow.
+ */
+int
+png_muldiv(png_fixed_point_p res, png_fixed_point a, png_int_32 times,
+    png_int_32 divisor)
+{
+   /* Return a * times / divisor, rounded. */
+   if (divisor != 0)
+   {
+      if (a == 0 || times == 0)
+      {
+         *res = 0;
+         return 1;
+      }
+      else
+      {
+#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
+         double r = a;
+         r *= times;
+         r /= divisor;
+         r = floor(r+.5);
+
+         /* A png_fixed_point is a 32-bit integer. */
+         if (r <= 2147483647. && r >= -2147483648.)
+         {
+            *res = (png_fixed_point)r;
+            return 1;
+         }
+#else
+         int negative = 0;
+         png_uint_32 A, T, D;
+         png_uint_32 s16, s32, s00;
+
+         if (a < 0)
+            negative = 1, A = -a;
+         else
+            A = a;
+
+         if (times < 0)
+            negative = !negative, T = -times;
+         else
+            T = times;
+
+         if (divisor < 0)
+            negative = !negative, D = -divisor;
+         else
+            D = divisor;
+
+         /* Following can't overflow because the arguments only
+          * have 31 bits each, however the result may be 32 bits.
+          */
+         s16 = (A >> 16) * (T & 0xffff) +
+                           (A & 0xffff) * (T >> 16);
+         /* Can't overflow because the a*times bit is only 30
+          * bits at most.
+          */
+         s32 = (A >> 16) * (T >> 16) + (s16 >> 16);
+         s00 = (A & 0xffff) * (T & 0xffff);
+
+         s16 = (s16 & 0xffff) << 16;
+         s00 += s16;
+
+         if (s00 < s16)
+            ++s32; /* carry */
+
+         if (s32 < D) /* else overflow */
+         {
+            /* s32.s00 is now the 64-bit product, do a standard
+             * division, we know that s32 < D, so the maximum
+             * required shift is 31.
+             */
+            int bitshift = 32;
+            png_fixed_point result = 0; /* NOTE: signed */
+
+            while (--bitshift >= 0)
+            {
+               png_uint_32 d32, d00;
+
+               if (bitshift > 0)
+                  d32 = D >> (32-bitshift), d00 = D << bitshift;
+
+               else
+                  d32 = 0, d00 = D;
+
+               if (s32 > d32)
+               {
+                  if (s00 < d00) --s32; /* carry */
+                  s32 -= d32, s00 -= d00, result += 1<<bitshift;
+               }
+
+               else
+                  if (s32 == d32 && s00 >= d00)
+                     s32 = 0, s00 -= d00, result += 1<<bitshift;
+            }
+
+            /* Handle the rounding. */
+            if (s00 >= (D >> 1))
+               ++result;
+
+            if (negative)
+               result = -result;
+
+            /* Check for overflow. */
+            if ((negative && result <= 0) || (!negative && result >= 0))
+            {
+               *res = result;
+               return 1;
+            }
+         }
+#endif
+      }
+   }
+
+   return 0;
+}
+#endif /* READ_GAMMA || INCH_CONVERSIONS */
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_INCH_CONVERSIONS_SUPPORTED)
+/* The following is for when the caller doesn't much care about the
+ * result.
+ */
+png_fixed_point
+png_muldiv_warn(png_structp png_ptr, png_fixed_point a, png_int_32 times,
+    png_int_32 divisor)
+{
+   png_fixed_point result;
+
+   if (png_muldiv(&result, a, times, divisor))
+      return result;
+
+   png_warning(png_ptr, "fixed point overflow ignored");
+   return 0;
+}
+#endif
+
+#ifdef PNG_READ_GAMMA_SUPPORTED /* more fixed point functions for gammma */
+/* Calculate a reciprocal, return 0 on div-by-zero or overflow. */
+png_fixed_point
+png_reciprocal(png_fixed_point a)
+{
+#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
+   double r = floor(1E10/a+.5);
+
+   if (r <= 2147483647. && r >= -2147483648.)
+      return (png_fixed_point)r;
+#else
+   png_fixed_point res;
+
+   if (png_muldiv(&res, 100000, 100000, a))
+      return res;
+#endif
+
+   return 0; /* error/overflow */
+}
+
+/* A local convenience routine. */
+static png_fixed_point
+png_product2(png_fixed_point a, png_fixed_point b)
+{
+   /* The required result is 1/a * 1/b; the following preserves accuracy. */
+#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
+   double r = a * 1E-5;
+   r *= b;
+   r = floor(r+.5);
+
+   if (r <= 2147483647. && r >= -2147483648.)
+      return (png_fixed_point)r;
+#else
+   png_fixed_point res;
+
+   if (png_muldiv(&res, a, b, 100000))
+      return res;
+#endif
+
+   return 0; /* overflow */
+}
+
+/* The inverse of the above. */
+png_fixed_point
+png_reciprocal2(png_fixed_point a, png_fixed_point b)
+{
+   /* The required result is 1/a * 1/b; the following preserves accuracy. */
+#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
+   double r = 1E15/a;
+   r /= b;
+   r = floor(r+.5);
+
+   if (r <= 2147483647. && r >= -2147483648.)
+      return (png_fixed_point)r;
+#else
+   /* This may overflow because the range of png_fixed_point isn't symmetric,
+    * but this API is only used for the product of file and screen gamma so it
+    * doesn't matter that the smallest number it can produce is 1/21474, not
+    * 1/100000
+    */
+   png_fixed_point res = png_product2(a, b);
+
+   if (res != 0)
+      return png_reciprocal(res);
+#endif
+
+   return 0; /* overflow */
+}
+#endif /* READ_GAMMA */
+
+#ifdef PNG_CHECK_cHRM_SUPPORTED
+/* Added at libpng version 1.2.34 (Dec 8, 2008) and 1.4.0 (Jan 2,
+ * 2010: moved from pngset.c) */
+/*
+ *    Multiply two 32-bit numbers, V1 and V2, using 32-bit
+ *    arithmetic, to produce a 64-bit result in the HI/LO words.
+ *
+ *                  A B
+ *                x C D
+ *               ------
+ *              AD || BD
+ *        AC || CB || 0
+ *
+ *    where A and B are the high and low 16-bit words of V1,
+ *    C and D are the 16-bit words of V2, AD is the product of
+ *    A and D, and X || Y is (X << 16) + Y.
+*/
+
+void /* PRIVATE */
+png_64bit_product (long v1, long v2, unsigned long *hi_product,
+    unsigned long *lo_product)
+{
+   int a, b, c, d;
+   long lo, hi, x, y;
+
+   a = (v1 >> 16) & 0xffff;
+   b = v1 & 0xffff;
+   c = (v2 >> 16) & 0xffff;
+   d = v2 & 0xffff;
+
+   lo = b * d;                   /* BD */
+   x = a * d + c * b;            /* AD + CB */
+   y = ((lo >> 16) & 0xffff) + x;
+
+   lo = (lo & 0xffff) | ((y & 0xffff) << 16);
+   hi = (y >> 16) & 0xffff;
+
+   hi += a * c;                  /* AC */
+
+   *hi_product = (unsigned long)hi;
+   *lo_product = (unsigned long)lo;
+}
+#endif /* CHECK_cHRM */
+
+#ifdef PNG_READ_GAMMA_SUPPORTED /* gamma table code */
+#ifndef PNG_FLOATING_ARITHMETIC_SUPPORTED
+/* Fixed point gamma.
+ *
+ * To calculate gamma this code implements fast log() and exp() calls using only
+ * fixed point arithmetic.  This code has sufficient precision for either 8-bit
+ * or 16-bit sample values.
+ *
+ * The tables used here were calculated using simple 'bc' programs, but C double
+ * precision floating point arithmetic would work fine.  The programs are given
+ * at the head of each table.
+ *
+ * 8-bit log table
+ *   This is a table of -log(value/255)/log(2) for 'value' in the range 128 to
+ *   255, so it's the base 2 logarithm of a normalized 8-bit floating point
+ *   mantissa.  The numbers are 32-bit fractions.
+ */
+static png_uint_32
+png_8bit_l2[128] =
+{
+#  if PNG_DO_BC
+      for (i=128;i<256;++i) { .5 - l(i/255)/l(2)*65536*65536; }
+#  endif
+   4270715492U, 4222494797U, 4174646467U, 4127164793U, 4080044201U, 4033279239U,
+   3986864580U, 3940795015U, 3895065449U, 3849670902U, 3804606499U, 3759867474U,
+   3715449162U, 3671346997U, 3627556511U, 3584073329U, 3540893168U, 3498011834U,
+   3455425220U, 3413129301U, 3371120137U, 3329393864U, 3287946700U, 3246774933U,
+   3205874930U, 3165243125U, 3124876025U, 3084770202U, 3044922296U, 3005329011U,
+   2965987113U, 2926893432U, 2888044853U, 2849438323U, 2811070844U, 2772939474U,
+   2735041326U, 2697373562U, 2659933400U, 2622718104U, 2585724991U, 2548951424U,
+   2512394810U, 2476052606U, 2439922311U, 2404001468U, 2368287663U, 2332778523U,
+   2297471715U, 2262364947U, 2227455964U, 2192742551U, 2158222529U, 2123893754U,
+   2089754119U, 2055801552U, 2022034013U, 1988449497U, 1955046031U, 1921821672U,
+   1888774511U, 1855902668U, 1823204291U, 1790677560U, 1758320682U, 1726131893U,
+   1694109454U, 1662251657U, 1630556815U, 1599023271U, 1567649391U, 1536433567U,
+   1505374214U, 1474469770U, 1443718700U, 1413119487U, 1382670639U, 1352370686U,
+   1322218179U, 1292211689U, 1262349810U, 1232631153U, 1203054352U, 1173618059U,
+   1144320946U, 1115161701U, 1086139034U, 1057251672U, 1028498358U, 999877854U,
+   971388940U, 943030410U, 914801076U, 886699767U, 858725327U, 830876614U,
+   803152505U, 775551890U, 748073672U, 720716771U, 693480120U, 666362667U,
+   639363374U, 612481215U, 585715177U, 559064263U, 532527486U, 506103872U,
+   479792461U, 453592303U, 427502463U, 401522014U, 375650043U, 349885648U,
+   324227938U, 298676034U, 273229066U, 247886176U, 222646516U, 197509248U,
+   172473545U, 147538590U, 122703574U, 97967701U, 73330182U, 48790236U,
+   24347096U, 0U
+#if 0
+   /* The following are the values for 16-bit tables - these work fine for the
+    * 8-bit conversions but produce very slightly larger errors in the 16-bit
+    * log (about 1.2 as opposed to 0.7 absolute error in the final value).  To
+    * use these all the shifts below must be adjusted appropriately.
+    */
+   65166, 64430, 63700, 62976, 62257, 61543, 60835, 60132, 59434, 58741, 58054,
+   57371, 56693, 56020, 55352, 54689, 54030, 53375, 52726, 52080, 51439, 50803,
+   50170, 49542, 48918, 48298, 47682, 47070, 46462, 45858, 45257, 44661, 44068,
+   43479, 42894, 42312, 41733, 41159, 40587, 40020, 39455, 38894, 38336, 37782,
+   37230, 36682, 36137, 35595, 35057, 34521, 33988, 33459, 32932, 32408, 31887,
+   31369, 30854, 30341, 29832, 29325, 28820, 28319, 27820, 27324, 26830, 26339,
+   25850, 25364, 24880, 24399, 23920, 23444, 22970, 22499, 22029, 21562, 21098,
+   20636, 20175, 19718, 19262, 18808, 18357, 17908, 17461, 17016, 16573, 16132,
+   15694, 15257, 14822, 14390, 13959, 13530, 13103, 12678, 12255, 11834, 11415,
+   10997, 10582, 10168, 9756, 9346, 8937, 8531, 8126, 7723, 7321, 6921, 6523,
+   6127, 5732, 5339, 4947, 4557, 4169, 3782, 3397, 3014, 2632, 2251, 1872, 1495,
+   1119, 744, 372
+#endif
+};
+
+PNG_STATIC png_int_32
+png_log8bit(unsigned int x)
+{
+   unsigned int lg2 = 0;
+   /* Each time 'x' is multiplied by 2, 1 must be subtracted off the final log,
+    * because the log is actually negate that means adding 1.  The final
+    * returned value thus has the range 0 (for 255 input) to 7.994 (for 1
+    * input), return 7.99998 for the overflow (log 0) case - so the result is
+    * always at most 19 bits.
+    */
+   if ((x &= 0xff) == 0)
+      return 0xffffffff;
+
+   if ((x & 0xf0) == 0)
+      lg2  = 4, x <<= 4;
+
+   if ((x & 0xc0) == 0)
+      lg2 += 2, x <<= 2;
+
+   if ((x & 0x80) == 0)
+      lg2 += 1, x <<= 1;
+
+   /* result is at most 19 bits, so this cast is safe: */
+   return (png_int_32)((lg2 << 16) + ((png_8bit_l2[x-128]+32768)>>16));
+}
+
+/* The above gives exact (to 16 binary places) log2 values for 8-bit images,
+ * for 16-bit images we use the most significant 8 bits of the 16-bit value to
+ * get an approximation then multiply the approximation by a correction factor
+ * determined by the remaining up to 8 bits.  This requires an additional step
+ * in the 16-bit case.
+ *
+ * We want log2(value/65535), we have log2(v'/255), where:
+ *
+ *    value = v' * 256 + v''
+ *          = v' * f
+ *
+ * So f is value/v', which is equal to (256+v''/v') since v' is in the range 128
+ * to 255 and v'' is in the range 0 to 255 f will be in the range 256 to less
+ * than 258.  The final factor also needs to correct for the fact that our 8-bit
+ * value is scaled by 255, whereas the 16-bit values must be scaled by 65535.
+ *
+ * This gives a final formula using a calculated value 'x' which is value/v' and
+ * scaling by 65536 to match the above table:
+ *
+ *   log2(x/257) * 65536
+ *
+ * Since these numbers are so close to '1' we can use simple linear
+ * interpolation between the two end values 256/257 (result -368.61) and 258/257
+ * (result 367.179).  The values used below are scaled by a further 64 to give
+ * 16-bit precision in the interpolation:
+ *
+ * Start (256): -23591
+ * Zero  (257):      0
+ * End   (258):  23499
+ */
+PNG_STATIC png_int_32
+png_log16bit(png_uint_32 x)
+{
+   unsigned int lg2 = 0;
+
+   /* As above, but now the input has 16 bits. */
+   if ((x &= 0xffff) == 0)
+      return 0xffffffff;
+
+   if ((x & 0xff00) == 0)
+      lg2  = 8, x <<= 8;
+
+   if ((x & 0xf000) == 0)
+      lg2 += 4, x <<= 4;
+
+   if ((x & 0xc000) == 0)
+      lg2 += 2, x <<= 2;
+
+   if ((x & 0x8000) == 0)
+      lg2 += 1, x <<= 1;
+
+   /* Calculate the base logarithm from the top 8 bits as a 28-bit fractional
+    * value.
+    */
+   lg2 <<= 28;
+   lg2 += (png_8bit_l2[(x>>8)-128]+8) >> 4;
+
+   /* Now we need to interpolate the factor, this requires a division by the top
+    * 8 bits.  Do this with maximum precision.
+    */
+   x = ((x << 16) + (x >> 9)) / (x >> 8);
+
+   /* Since we divided by the top 8 bits of 'x' there will be a '1' at 1<<24,
+    * the value at 1<<16 (ignoring this) will be 0 or 1; this gives us exactly
+    * 16 bits to interpolate to get the low bits of the result.  Round the
+    * answer.  Note that the end point values are scaled by 64 to retain overall
+    * precision and that 'lg2' is current scaled by an extra 12 bits, so adjust
+    * the overall scaling by 6-12.  Round at every step.
+    */
+   x -= 1U << 24;
+
+   if (x <= 65536U) /* <= '257' */
+      lg2 += ((23591U * (65536U-x)) + (1U << (16+6-12-1))) >> (16+6-12);
+
+   else
+      lg2 -= ((23499U * (x-65536U)) + (1U << (16+6-12-1))) >> (16+6-12);
+
+   /* Safe, because the result can't have more than 20 bits: */
+   return (png_int_32)((lg2 + 2048) >> 12);
+}
+
+/* The 'exp()' case must invert the above, taking a 20-bit fixed point
+ * logarithmic value and returning a 16 or 8-bit number as appropriate.  In
+ * each case only the low 16 bits are relevant - the fraction - since the
+ * integer bits (the top 4) simply determine a shift.
+ *
+ * The worst case is the 16-bit distinction between 65535 and 65534, this
+ * requires perhaps spurious accuracty in the decoding of the logarithm to
+ * distinguish log2(65535/65534.5) - 10^-5 or 17 bits.  There is little chance
+ * of getting this accuracy in practice.
+ *
+ * To deal with this the following exp() function works out the exponent of the
+ * frational part of the logarithm by using an accurate 32-bit value from the
+ * top four fractional bits then multiplying in the remaining bits.
+ */
+static png_uint_32
+png_32bit_exp[16] =
+{
+#  if PNG_DO_BC
+      for (i=0;i<16;++i) { .5 + e(-i/16*l(2))*2^32; }
+#  endif
+   /* NOTE: the first entry is deliberately set to the maximum 32-bit value. */
+   4294967295U, 4112874773U, 3938502376U, 3771522796U, 3611622603U, 3458501653U,
+   3311872529U, 3171459999U, 3037000500U, 2908241642U, 2784941738U, 2666869345U,
+   2553802834U, 2445529972U, 2341847524U, 2242560872U
+};
+
+/* Adjustment table; provided to explain the numbers in the code below. */
+#if PNG_DO_BC
+for (i=11;i>=0;--i){ print i, " ", (1 - e(-(2^i)/65536*l(2))) * 2^(32-i), "\n"}
+   11 44937.64284865548751208448
+   10 45180.98734845585101160448
+    9 45303.31936980687359311872
+    8 45364.65110595323018870784
+    7 45395.35850361789624614912
+    6 45410.72259715102037508096
+    5 45418.40724413220722311168
+    4 45422.25021786898173001728
+    3 45424.17186732298419044352
+    2 45425.13273269940811464704
+    1 45425.61317555035558641664
+    0 45425.85339951654943850496
+#endif
+
+PNG_STATIC png_uint_32
+png_exp(png_fixed_point x)
+{
+   if (x > 0 && x <= 0xfffff) /* Else overflow or zero (underflow) */
+   {
+      /* Obtain a 4-bit approximation */
+      png_uint_32 e = png_32bit_exp[(x >> 12) & 0xf];
+
+      /* Incorporate the low 12 bits - these decrease the returned value by
+       * multiplying by a number less than 1 if the bit is set.  The multiplier
+       * is determined by the above table and the shift. Notice that the values
+       * converge on 45426 and this is used to allow linear interpolation of the
+       * low bits.
+       */
+      if (x & 0x800)
+         e -= (((e >> 16) * 44938U) +  16U) >> 5;
+
+      if (x & 0x400)
+         e -= (((e >> 16) * 45181U) +  32U) >> 6;
+
+      if (x & 0x200)
+         e -= (((e >> 16) * 45303U) +  64U) >> 7;
+
+      if (x & 0x100)
+         e -= (((e >> 16) * 45365U) + 128U) >> 8;
+
+      if (x & 0x080)
+         e -= (((e >> 16) * 45395U) + 256U) >> 9;
+
+      if (x & 0x040)
+         e -= (((e >> 16) * 45410U) + 512U) >> 10;
+
+      /* And handle the low 6 bits in a single block. */
+      e -= (((e >> 16) * 355U * (x & 0x3fU)) + 256U) >> 9;
+
+      /* Handle the upper bits of x. */
+      e >>= x >> 16;
+      return e;
+   }
+
+   /* Check for overflow */
+   if (x <= 0)
+      return png_32bit_exp[0];
+
+   /* Else underflow */
+   return 0;
+}
+
+PNG_STATIC png_byte
+png_exp8bit(png_fixed_point lg2)
+{
+   /* Get a 32-bit value: */
+   png_uint_32 x = png_exp(lg2);
+
+   /* Convert the 32-bit value to 0..255 by multiplying by 256-1, note that the
+    * second, rounding, step can't overflow because of the first, subtraction,
+    * step.
+    */
+   x -= x >> 8;
+   return (png_byte)((x + 0x7fffffU) >> 24);
+}
+
+PNG_STATIC png_uint_16
+png_exp16bit(png_fixed_point lg2)
+{
+   /* Get a 32-bit value: */
+   png_uint_32 x = png_exp(lg2);
+
+   /* Convert the 32-bit value to 0..65535 by multiplying by 65536-1: */
+   x -= x >> 16;
+   return (png_uint_16)((x + 32767U) >> 16);
+}
+#endif /* FLOATING_ARITHMETIC */
+
+png_byte
+png_gamma_8bit_correct(unsigned int value, png_fixed_point gamma_val)
+{
+   if (value > 0 && value < 255)
+   {
+#     ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
+         double r = floor(255*pow(value/255.,gamma_val*.00001)+.5);
+         return (png_byte)r;
+#     else
+         png_int_32 lg2 = png_log8bit(value);
+         png_fixed_point res;
+
+         if (png_muldiv(&res, gamma_val, lg2, PNG_FP_1))
+            return png_exp8bit(res);
+
+         /* Overflow. */
+         value = 0;
+#     endif
+   }
+
+   return (png_byte)value;
+}
+
+png_uint_16
+png_gamma_16bit_correct(unsigned int value, png_fixed_point gamma_val)
+{
+   if (value > 0 && value < 65535)
+   {
+#     ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
+         double r = floor(65535*pow(value/65535.,gamma_val*.00001)+.5);
+         return (png_uint_16)r;
+#     else
+         png_int_32 lg2 = png_log16bit(value);
+         png_fixed_point res;
+
+         if (png_muldiv(&res, gamma_val, lg2, PNG_FP_1))
+            return png_exp16bit(res);
+
+         /* Overflow. */
+         value = 0;
+#     endif
+   }
+
+   return (png_uint_16)value;
+}
+
+/* This does the right thing based on the bit_depth field of the
+ * png_struct, interpreting values as 8-bit or 16-bit.  While the result
+ * is nominally a 16-bit value if bit depth is 8 then the result is
+ * 8-bit (as are the arguments.)
+ */
+png_uint_16 /* PRIVATE */
+png_gamma_correct(png_structp png_ptr, unsigned int value,
+    png_fixed_point gamma_val)
+{
+   if (png_ptr->bit_depth == 8)
+      return png_gamma_8bit_correct(value, gamma_val);
+
+   else
+      return png_gamma_16bit_correct(value, gamma_val);
+}
+
+/* This is the shared test on whether a gamma value is 'significant' - whether
+ * it is worth doing gamma correction.
+ */
+int /* PRIVATE */
+png_gamma_significant(png_fixed_point gamma_val)
+{
+   return gamma_val < PNG_FP_1 - PNG_GAMMA_THRESHOLD_FIXED ||
+       gamma_val > PNG_FP_1 + PNG_GAMMA_THRESHOLD_FIXED;
+}
+
+/* Internal function to build a single 16-bit table - the table consists of
+ * 'num' 256 entry subtables, where 'num' is determined by 'shift' - the amount
+ * to shift the input values right (or 16-number_of_signifiant_bits).
+ *
+ * The caller is responsible for ensuring that the table gets cleaned up on
+ * png_error (i.e. if one of the mallocs below fails) - i.e. the *table argument
+ * should be somewhere that will be cleaned.
+ */
+static void
+png_build_16bit_table(png_structp png_ptr, png_uint_16pp *ptable,
+   PNG_CONST unsigned int shift, PNG_CONST png_fixed_point gamma_val)
+{
+   /* Various values derived from 'shift': */
+   PNG_CONST unsigned int num = 1U << (8U - shift);
+   PNG_CONST unsigned int max = (1U << (16U - shift))-1U;
+   PNG_CONST unsigned int max_by_2 = 1U << (15U-shift);
+   unsigned int i;
+
+   png_uint_16pp table = *ptable =
+       (png_uint_16pp)png_calloc(png_ptr, num * png_sizeof(png_uint_16p));
+
+   for (i = 0; i < num; i++)
+   {
+      png_uint_16p sub_table = table[i] =
+          (png_uint_16p)png_malloc(png_ptr, 256 * png_sizeof(png_uint_16));
+
+      /* The 'threshold' test is repeated here because it can arise for one of
+       * the 16-bit tables even if the others don't hit it.
+       */
+      if (png_gamma_significant(gamma_val))
+      {
+         /* The old code would overflow at the end and this would cause the
+          * 'pow' function to return a result >1, resulting in an
+          * arithmetic error.  This code follows the spec exactly; ig is
+          * the recovered input sample, it always has 8-16 bits.
+          *
+          * We want input * 65535/max, rounded, the arithmetic fits in 32
+          * bits (unsigned) so long as max <= 32767.
+          */
+         unsigned int j;
+         for (j = 0; j < 256; j++)
+         {
+            png_uint_32 ig = (j << (8-shift)) + i;
+#           ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
+               /* Inline the 'max' scaling operation: */
+               double d = floor(65535*pow(ig/(double)max, gamma_val*.00001)+.5);
+               sub_table[j] = (png_uint_16)d;
+#           else
+               if (shift)
+                  ig = (ig * 65535U + max_by_2)/max;
+
+               sub_table[j] = png_gamma_16bit_correct(ig, gamma_val);
+#           endif
+         }
+      }
+      else
+      {
+         /* We must still build a table, but do it the fast way. */
+         unsigned int j;
+
+         for (j = 0; j < 256; j++)
+         {
+            png_uint_32 ig = (j << (8-shift)) + i;
+
+            if (shift)
+               ig = (ig * 65535U + max_by_2)/max;
+
+            sub_table[j] = (png_uint_16)ig;
+         }
+      }
+   }
+}
+
+/* NOTE: this function expects the *inverse* of the overall gamma transformation
+ * required.
+ */
+static void
+png_build_16to8_table(png_structp png_ptr, png_uint_16pp *ptable,
+   PNG_CONST unsigned int shift, PNG_CONST png_fixed_point gamma_val)
+{
+   PNG_CONST unsigned int num = 1U << (8U - shift);
+   PNG_CONST unsigned int max = (1U << (16U - shift))-1U;
+   unsigned int i;
+   png_uint_32 last;
+
+   png_uint_16pp table = *ptable =
+       (png_uint_16pp)png_calloc(png_ptr, num * png_sizeof(png_uint_16p));
+
+   /* 'num' is the number of tables and also the number of low bits of low
+    * bits of the input 16-bit value used to select a table.  Each table is
+    * itself index by the high 8 bits of the value.
+    */
+   for (i = 0; i < num; i++)
+      table[i] = (png_uint_16p)png_malloc(png_ptr,
+          256 * png_sizeof(png_uint_16));
+
+   /* 'gamma_val' is set to the reciprocal of the value calculated above, so
+    * pow(out,g) is an *input* value.  'last' is the last input value set.
+    *
+    * In the loop 'i' is used to find output values.  Since the output is
+    * 8-bit there are only 256 possible values.  The tables are set up to
+    * select the closest possible output value for each input by finding
+    * the input value at the boundary between each pair of output values
+    * and filling the table up to that boundary with the lower output
+    * value.
+    *
+    * The boundary values are 0.5,1.5..253.5,254.5.  Since these are 9-bit
+    * values the code below uses a 16-bit value in i; the values start at
+    * 128.5 (for 0.5) and step by 257, for a total of 254 values (the last
+    * entries are filled with 255).  Start i at 128 and fill all 'last'
+    * table entries <= 'max'
+    */
+   last = 0;
+   for (i = 0; i < 255; ++i) /* 8-bit output value */
+   {
+      /* Find the corresponding maximum input value */
+      png_uint_16 out = (png_uint_16)(i * 257U); /* 16-bit output value */
+
+      /* Find the boundary value in 16 bits: */
+      png_uint_32 bound = png_gamma_16bit_correct(out+128U, gamma_val);
+
+      /* Adjust (round) to (16-shift) bits: */
+      bound = (bound * max + 32768U)/65535U + 1U;
+
+      while (last < bound)
+      {
+         table[last & (0xffU >> shift)][last >> (8U - shift)] = out;
+         last++;
+      }
+   }
+
+   /* And fill in the final entries. */
+   while (last < (num << 8))
+   {
+      table[last & (0xff >> shift)][last >> (8U - shift)] = 65535U;
+      last++;
+   }
+}
+
+/* Build a single 8-bit table: same as the 16-bit case but much simpler (and
+ * typically much faster).  Note that libpng currently does no sBIT processing
+ * (apparently contrary to the spec) so a 256 entry table is always generated.
+ */
+static void
+png_build_8bit_table(png_structp png_ptr, png_bytepp ptable,
+   PNG_CONST png_fixed_point gamma_val)
+{
+   unsigned int i;
+   png_bytep table = *ptable = (png_bytep)png_malloc(png_ptr, 256);
+
+   if (png_gamma_significant(gamma_val)) for (i=0; i<256; i++)
+      table[i] = png_gamma_8bit_correct(i, gamma_val);
+
+   else for (i=0; i<256; ++i)
+      table[i] = (png_byte)i;
+}
+
+/* We build the 8- or 16-bit gamma tables here.  Note that for 16-bit
+ * tables, we don't make a full table if we are reducing to 8-bit in
+ * the future.  Note also how the gamma_16 tables are segmented so that
+ * we don't need to allocate > 64K chunks for a full 16-bit table.
+ */
+void /* PRIVATE */
+png_build_gamma_table(png_structp png_ptr, int bit_depth)
+{
+  png_debug(1, "in png_build_gamma_table");
+
+  if (bit_depth <= 8)
+  {
+     png_build_8bit_table(png_ptr, &png_ptr->gamma_table,
+         png_ptr->screen_gamma > 0 ?  png_reciprocal2(png_ptr->gamma,
+         png_ptr->screen_gamma) : PNG_FP_1);
+
+#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \
+   defined(PNG_READ_ALPHA_MODE_SUPPORTED) || \
+   defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
+     if (png_ptr->transformations & (PNG_COMPOSE | PNG_RGB_TO_GRAY))
+     {
+        png_build_8bit_table(png_ptr, &png_ptr->gamma_to_1,
+            png_reciprocal(png_ptr->gamma));
+
+        png_build_8bit_table(png_ptr, &png_ptr->gamma_from_1,
+            png_ptr->screen_gamma > 0 ?  png_reciprocal(png_ptr->screen_gamma) :
+            png_ptr->gamma/* Probably doing rgb_to_gray */);
+     }
+#endif /* READ_BACKGROUND || READ_ALPHA_MODE || RGB_TO_GRAY */
+  }
+  else
+  {
+     png_byte shift, sig_bit;
+
+     if (png_ptr->color_type & PNG_COLOR_MASK_COLOR)
+     {
+        sig_bit = png_ptr->sig_bit.red;
+
+        if (png_ptr->sig_bit.green > sig_bit)
+           sig_bit = png_ptr->sig_bit.green;
+
+        if (png_ptr->sig_bit.blue > sig_bit)
+           sig_bit = png_ptr->sig_bit.blue;
+     }
+     else
+        sig_bit = png_ptr->sig_bit.gray;
+
+     /* 16-bit gamma code uses this equation:
+      *
+      *   ov = table[(iv & 0xff) >> gamma_shift][iv >> 8]
+      *
+      * Where 'iv' is the input color value and 'ov' is the output value -
+      * pow(iv, gamma).
+      *
+      * Thus the gamma table consists of up to 256 256 entry tables.  The table
+      * is selected by the (8-gamma_shift) most significant of the low 8 bits of
+      * the color value then indexed by the upper 8 bits:
+      *
+      *   table[low bits][high 8 bits]
+      *
+      * So the table 'n' corresponds to all those 'iv' of:
+      *
+      *   <all high 8-bit values><n << gamma_shift>..<(n+1 << gamma_shift)-1>
+      *
+      */
+     if (sig_bit > 0 && sig_bit < 16U)
+        shift = (png_byte)(16U - sig_bit); /* shift == insignificant bits */
+
+     else
+        shift = 0; /* keep all 16 bits */
+
+     if (png_ptr->transformations & (PNG_16_TO_8 | PNG_SCALE_16_TO_8))
+     {
+        /* PNG_MAX_GAMMA_8 is the number of bits to keep - effectively
+         * the significant bits in the *input* when the output will
+         * eventually be 8 bits.  By default it is 11.
+         */
+        if (shift < (16U - PNG_MAX_GAMMA_8))
+           shift = (16U - PNG_MAX_GAMMA_8);
+     }
+
+     if (shift > 8U)
+        shift = 8U; /* Guarantees at least one table! */
+
+     png_ptr->gamma_shift = shift;
+
+#ifdef PNG_16BIT_SUPPORTED
+     /* NOTE: prior to 1.5.4 this test used to include PNG_BACKGROUND (now
+      * PNG_COMPOSE).  This effectively smashed the background calculation for
+      * 16-bit output because the 8-bit table assumes the result will be reduced
+      * to 8 bits.
+      */
+     if (png_ptr->transformations & (PNG_16_TO_8 | PNG_SCALE_16_TO_8))
+#endif
+         png_build_16to8_table(png_ptr, &png_ptr->gamma_16_table, shift,
+         png_ptr->screen_gamma > 0 ? png_product2(png_ptr->gamma,
+         png_ptr->screen_gamma) : PNG_FP_1);
+
+#ifdef PNG_16BIT_SUPPORTED
+     else
+         png_build_16bit_table(png_ptr, &png_ptr->gamma_16_table, shift,
+         png_ptr->screen_gamma > 0 ? png_reciprocal2(png_ptr->gamma,
+         png_ptr->screen_gamma) : PNG_FP_1);
+#endif
+
+#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \
+   defined(PNG_READ_ALPHA_MODE_SUPPORTED) || \
+   defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
+     if (png_ptr->transformations & (PNG_COMPOSE | PNG_RGB_TO_GRAY))
+     {
+        png_build_16bit_table(png_ptr, &png_ptr->gamma_16_to_1, shift,
+            png_reciprocal(png_ptr->gamma));
+
+        /* Notice that the '16 from 1' table should be full precision, however
+         * the lookup on this table still uses gamma_shift, so it can't be.
+         * TODO: fix this.
+         */
+        png_build_16bit_table(png_ptr, &png_ptr->gamma_16_from_1, shift,
+            png_ptr->screen_gamma > 0 ? png_reciprocal(png_ptr->screen_gamma) :
+            png_ptr->gamma/* Probably doing rgb_to_gray */);
+     }
+#endif /* READ_BACKGROUND || READ_ALPHA_MODE || RGB_TO_GRAY */
+  }
 }
-#endif /* PNG_SIZE_T */
+#endif /* READ_GAMMA */
 #endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */
diff --git a/jdk/src/share/native/sun/awt/libpng/png.h b/jdk/src/share/native/sun/awt/libpng/png.h
index cbfa8d4..636745e 100644
--- a/jdk/src/share/native/sun/awt/libpng/png.h
+++ b/jdk/src/share/native/sun/awt/libpng/png.h
@@ -29,24 +29,26 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * libpng version 1.2.18 - May 15, 2007
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * libpng version 1.5.4 - July 7, 2011
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
+ * This code is released under the libpng license (See LICENSE, below)
+ *
  * Authors and maintainers:
- *  libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
- *  libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
- *  libpng versions 0.97, January 1998, through 1.2.18 - May 15, 2007: Glenn
- *  See also "Contributing Authors", below.
+ *   libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
+ *   libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
+ *   libpng versions 0.97, January 1998, through 1.5.4 - July 7, 2011: Glenn
+ *   See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
  *
- *    Due to various miscommunications, unforeseen code incompatibilities
- *    and occasional factors outside the authors' control, version numbering
- *    on the library has not always been consistent and straightforward.
- *    The following table summarizes matters since version 0.89c, which was
- *    the first widely used release:
+ *   Due to various miscommunications, unforeseen code incompatibilities
+ *   and occasional factors outside the authors' control, version numbering
+ *   on the library has not always been consistent and straightforward.
+ *   The following table summarizes matters since version 0.89c, which was
+ *   the first widely used release:
  *
  *    source                 png.h  png.h  shared-lib
  *    version                string   int  version
@@ -131,74 +133,79 @@
  *    1.0.16                  10    10016  10.so.0.1.0.16
  *    1.2.6                   13    10206  12.so.0.1.2.6
  *    1.2.7beta1-2            13    10207  12.so.0.1.2.7beta1-2
- *    1.0.17rc1               10    10017  10.so.0.1.0.17rc1
+ *    1.0.17rc1               10    10017  12.so.0.1.0.17rc1
  *    1.2.7rc1                13    10207  12.so.0.1.2.7rc1
- *    1.0.17                  10    10017  10.so.0.1.0.17
+ *    1.0.17                  10    10017  12.so.0.1.0.17
  *    1.2.7                   13    10207  12.so.0.1.2.7
  *    1.2.8beta1-5            13    10208  12.so.0.1.2.8beta1-5
- *    1.0.18rc1-5             10    10018  10.so.0.1.0.18rc1-5
+ *    1.0.18rc1-5             10    10018  12.so.0.1.0.18rc1-5
  *    1.2.8rc1-5              13    10208  12.so.0.1.2.8rc1-5
- *    1.0.18                  10    10018  10.so.0.1.0.18
+ *    1.0.18                  10    10018  12.so.0.1.0.18
  *    1.2.8                   13    10208  12.so.0.1.2.8
  *    1.2.9beta1-3            13    10209  12.so.0.1.2.9beta1-3
  *    1.2.9beta4-11           13    10209  12.so.0.9[.0]
  *    1.2.9rc1                13    10209  12.so.0.9[.0]
  *    1.2.9                   13    10209  12.so.0.9[.0]
- *    1.2.10beta1-8           13    10210  12.so.0.10[.0]
- *    1.2.10rc1-3             13    10210  12.so.0.10[.0]
+ *    1.2.10beta1-7           13    10210  12.so.0.10[.0]
+ *    1.2.10rc1-2             13    10210  12.so.0.10[.0]
  *    1.2.10                  13    10210  12.so.0.10[.0]
+ *    1.4.0beta1-5            14    10400  14.so.0.0[.0]
  *    1.2.11beta1-4           13    10211  12.so.0.11[.0]
- *    1.0.19rc1-5             10    10019  10.so.0.19[.0]
- *    1.2.11rc1-5             13    10211  12.so.0.11[.0]
- *    1.0.19                  10    10019  10.so.0.19[.0]
+ *    1.4.0beta7-8            14    10400  14.so.0.0[.0]
  *    1.2.11                  13    10211  12.so.0.11[.0]
- *    1.0.20                  10    10020  10.so.0.20[.0]
  *    1.2.12                  13    10212  12.so.0.12[.0]
- *    1.2.13beta1             13    10213  12.so.0.13[.0]
- *    1.0.21                  10    10021  10.so.0.21[.0]
+ *    1.4.0beta9-14           14    10400  14.so.0.0[.0]
  *    1.2.13                  13    10213  12.so.0.13[.0]
- *    1.2.14beta1-2           13    10214  12.so.0.14[.0]
- *    1.0.22rc1               10    10022  10.so.0.22[.0]
- *    1.2.14rc1               13    10214  12.so.0.14[.0]
- *    1.0.22                  10    10022  10.so.0.22[.0]
- *    1.2.14                  13    10214  12.so.0.14[.0]
- *    1.2.15beta1-6           13    10215  12.so.0.15[.0]
- *    1.0.23rc1-5             10    10023  10.so.0.23[.0]
- *    1.2.15rc1-5             13    10215  12.so.0.15[.0]
- *    1.0.23                  10    10023  10.so.0.23[.0]
- *    1.2.15                  13    10215  12.so.0.15[.0]
- *    1.2.16beta1-2           13    10216  12.so.0.16[.0]
- *    1.2.16rc1               13    10216  12.so.0.16[.0]
- *    1.0.24                  10    10024  10.so.0.24[.0]
- *    1.2.16                  13    10216  12.so.0.16[.0]
- *    1.2.17beta1-2           13    10217  12.so.0.17[.0]
- *    1.0.25rc1               10    10025  10.so.0.25[.0]
- *    1.2.17rc1-3             13    10217  12.so.0.17[.0]
- *    1.0.25                  10    10025  10.so.0.25[.0]
- *    1.2.17                  13    10217  12.so.0.17[.0]
- *    1.0.26                  10    10026  10.so.0.26[.0]
- *    1.2.18                  13    10218  12.so.0.18[.0]
- *
- *    Henceforth the source version will match the shared-library major
- *    and minor numbers; the shared-library major version number will be
- *    used for changes in backward compatibility, as it is intended.  The
- *    PNG_LIBPNG_VER macro, which is not used within libpng but is available
- *    for applications, is an unsigned integer of the form xyyzz corresponding
- *    to the source version x.y.z (leading zeros in y and z).  Beta versions
- *    were given the previous public release number plus a letter, until
- *    version 1.0.6j; from then on they were given the upcoming public
- *    release number plus "betaNN" or "rcN".
- *
- *    Binary incompatibility exists only when applications make direct access
- *    to the info_ptr or png_ptr members through png.h, and the compiled
- *    application is loaded with a different version of the library.
- *
- *    DLLNUM will change each time there are forward or backward changes
- *    in binary compatibility (e.g., when a new feature is added).
- *
- * See libpng.txt or libpng.3 for more information.  The PNG specification
- * is available as a W3C Recommendation and as an ISO Specification,
- * <http://www.w3.org/TR/2003/REC-PNG-20031110/
+ *    1.4.0beta15-36          14    10400  14.so.0.0[.0]
+ *    1.4.0beta37-87          14    10400  14.so.14.0[.0]
+ *    1.4.0rc01               14    10400  14.so.14.0[.0]
+ *    1.4.0beta88-109         14    10400  14.so.14.0[.0]
+ *    1.4.0rc02-08            14    10400  14.so.14.0[.0]
+ *    1.4.0                   14    10400  14.so.14.0[.0]
+ *    1.4.1beta01-03          14    10401  14.so.14.1[.0]
+ *    1.4.1rc01               14    10401  14.so.14.1[.0]
+ *    1.4.1beta04-12          14    10401  14.so.14.1[.0]
+ *    1.4.1                   14    10401  14.so.14.1[.0]
+ *    1.4.2                   14    10402  14.so.14.2[.0]
+ *    1.4.3                   14    10403  14.so.14.3[.0]
+ *    1.4.4                   14    10404  14.so.14.4[.0]
+ *    1.5.0beta01-58          15    10500  15.so.15.0[.0]
+ *    1.5.0rc01-07            15    10500  15.so.15.0[.0]
+ *    1.5.0                   15    10500  15.so.15.0[.0]
+ *    1.5.1beta01-11          15    10501  15.so.15.1[.0]
+ *    1.5.1rc01-02            15    10501  15.so.15.1[.0]
+ *    1.5.1                   15    10501  15.so.15.1[.0]
+ *    1.5.2beta01-03          15    10502  15.so.15.2[.0]
+ *    1.5.2rc01-03            15    10502  15.so.15.2[.0]
+ *    1.5.2                   15    10502  15.so.15.2[.0]
+ *    1.5.3beta01-10          15    10503  15.so.15.3[.0]
+ *    1.5.3rc01-02            15    10503  15.so.15.3[.0]
+ *    1.5.3beta11             15    10503  15.so.15.3[.0]
+ *    1.5.3 [omitted]
+ *    1.5.4beta01-08          15    10504  15.so.15.4[.0]
+ *    1.5.4rc01               15    10504  15.so.15.4[.0]
+ *    1.5.4                   15    10504  15.so.15.4[.0]
+ *
+ *   Henceforth the source version will match the shared-library major
+ *   and minor numbers; the shared-library major version number will be
+ *   used for changes in backward compatibility, as it is intended.  The
+ *   PNG_LIBPNG_VER macro, which is not used within libpng but is available
+ *   for applications, is an unsigned integer of the form xyyzz corresponding
+ *   to the source version x.y.z (leading zeros in y and z).  Beta versions
+ *   were given the previous public release number plus a letter, until
+ *   version 1.0.6j; from then on they were given the upcoming public
+ *   release number plus "betaNN" or "rcN".
+ *
+ *   Binary incompatibility exists only when applications make direct access
+ *   to the info_ptr or png_ptr members through png.h, and the compiled
+ *   application is loaded with a different version of the library.
+ *
+ *   DLLNUM will change each time there are forward or backward changes
+ *   in binary compatibility (e.g., when a new feature is added).
+ *
+ * See libpng-manual.txt or libpng.3 for more information.  The PNG
+ * specification is available as a W3C Recommendation and as an ISO
+ * Specification, <http://www.w3.org/TR/2003/REC-PNG-20031110/
  */
 
 /*
@@ -207,8 +214,10 @@
  * If you modify libpng you may insert additional notices immediately following
  * this sentence.
  *
- * libpng versions 1.2.6, August 15, 2004, through 1.2.18, May 15, 2007, are
- * Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are
+ * This code is released under the libpng license.
+ *
+ * libpng versions 1.2.6, August 15, 2004, through 1.5.4, July 7, 2011, are
+ * Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
  * distributed according to the same disclaimer and license as libpng-1.2.5
  * with the following individual added to the list of Contributing Authors:
  *
@@ -277,13 +286,13 @@
  * source code, or portions hereof, for any purpose, without fee, subject
  * to the following restrictions:
  *
- * 1. The origin of this source code must not be misrepresented.
+ *   1. The origin of this source code must not be misrepresented.
  *
- * 2. Altered versions must be plainly marked as such and
- * must not be misrepresented as being the original source.
+ *   2. Altered versions must be plainly marked as such and must not
+ *      be misrepresented as being the original source.
  *
- * 3. This Copyright notice may not be removed or altered from
- *    any source or altered source distribution.
+ *   3. This Copyright notice may not be removed or altered from
+ *      any source or altered source distribution.
  *
  * The Contributing Authors and Group 42, Inc. specifically permit, without
  * fee, and encourage the use of this source code as a component to
@@ -296,7 +305,7 @@
  * A "png_get_copyright" function is available, for convenient use in "about"
  * boxes and the like:
  *
- * printf("%s",png_get_copyright(NULL));
+ *     printf("%s", png_get_copyright(NULL));
  *
  * Also, the PNG logo (in PNG format, of course) is supplied in the
  * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
@@ -319,25 +328,24 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    May 15, 2007
+ *    July 7, 2011
  *
  *    Since the PNG Development group is an ad-hoc body, we can't make
  *    an official declaration.
  *
  *    This is your unofficial assurance that libpng from version 0.71 and
- *    upward through 1.2.18 are Y2K compliant.  It is my belief that earlier
- *    versions were also Y2K compliant.
+ *    upward through 1.5.4 are Y2K compliant.  It is my belief that
+ *    earlier versions were also Y2K compliant.
  *
- *    Libpng only has three year fields.  One is a 2-byte unsigned integer
- *    that will hold years up to 65535.  The other two hold the date in text
+ *    Libpng only has two year fields.  One is a 2-byte unsigned integer
+ *    that will hold years up to 65535.  The other holds the date in text
  *    format, and will hold years up to 9999.
  *
  *    The integer is
  *        "png_uint_16 year" in png_time_struct.
  *
- *    The strings are
- *        "png_charp time_buffer" in png_struct and
- *        "near_time_buffer", which is a local character string in png.c.
+ *    The string is
+ *        "png_char time_buffer" in png_struct
  *
  *    There are seven time-related functions:
  *        png.c: png_convert_to_rfc_1123() in png.c
@@ -374,26 +382,27 @@
 #ifndef PNG_H
 #define PNG_H
 
-/* This is not the place to learn how to use libpng.  The file libpng.txt
+/* This is not the place to learn how to use libpng. The file libpng-manual.txt
  * describes how to use libpng, and the file example.c summarizes it
  * with some code on which to build.  This file is useful for looking
  * at the actual function definitions and structure components.
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.2.18"
+#define PNG_LIBPNG_VER_STRING "1.5.4"
 #define PNG_HEADER_VERSION_STRING \
-   " libpng version 1.2.18 - May 15, 2007 (header)\n"
+     " libpng version 1.5.4 - July 7, 2011\n"
 
-#define PNG_LIBPNG_VER_SONUM   0
-#define PNG_LIBPNG_VER_DLLNUM  13
+#define PNG_LIBPNG_VER_SONUM   15
+#define PNG_LIBPNG_VER_DLLNUM  15
 
 /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
 #define PNG_LIBPNG_VER_MAJOR   1
-#define PNG_LIBPNG_VER_MINOR   2
-#define PNG_LIBPNG_VER_RELEASE 18
+#define PNG_LIBPNG_VER_MINOR   5
+#define PNG_LIBPNG_VER_RELEASE 4
 /* This should match the numeric part of the final component of
- * PNG_LIBPNG_VER_STRING, omitting any leading zero: */
+ * PNG_LIBPNG_VER_STRING, omitting any leading zero:
+ */
 
 #define PNG_LIBPNG_VER_BUILD  0
 
@@ -412,26 +421,53 @@
 #define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with
                                        PNG_LIBPNG_BUILD_PRIVATE */
 
-#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE
+#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_BETA
 
 /* Careful here.  At one time, Guy wanted to use 082, but that would be octal.
  * We must not include leading zeros.
  * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
  * version 1.0.0 was mis-numbered 100 instead of 10000).  From
- * version 1.0.1 it's    xxyyzz, where x=major, y=minor, z=release */
-#define PNG_LIBPNG_VER 10218 /* 1.2.18 */
+ * version 1.0.1 it's    xxyyzz, where x=major, y=minor, z=release
+ */
+#define PNG_LIBPNG_VER 10504 /* 1.5.4 */
 
-#ifndef PNG_VERSION_INFO_ONLY
-/* include the compression library's header */
-#include "zlib.h"
+/* Library configuration: these options cannot be changed after
+ * the library has been built.
+ */
+#ifndef PNGLCONF_H
+    /* If pnglibconf.h is missing, you can
+     * copy scripts/pnglibconf.h.prebuilt to pnglibconf.h
+     */
+#   include "pnglibconf.h"
 #endif
 
-/* include all user configurable info, including optional assembler routines */
-#include "pngconf.h"
+#ifndef PNG_VERSION_INFO_ONLY
+#  ifndef PNG_BUILDING_SYMBOL_TABLE
+  /*
+   *   Standard header files (not needed for the version info or while
+   *   building symbol table -- see scripts/pnglibconf.dfa)
+   */
+#    ifdef PNG_SETJMP_SUPPORTED
+#      include <setjmp.h>
+#    endif
+
+    /* Need the time information for converting tIME chunks, it
+     * defines struct tm:
+     */
+#    ifdef PNG_CONVERT_tIME_SUPPORTED
+       /* "time.h" functions are not supported on all operating systems */
+#      include <time.h>
+#    endif
+#  endif
+
+/* Machine specific configuration. */
+#  include "pngconf.h"
+#endif
 
 /*
- * Added at libpng-1.2.8 */
-/* Ref MSDN: Private as priority over Special
+ * Added at libpng-1.2.8
+ *
+ * Ref MSDN: Private as priority over Special
  * VS_FF_PRIVATEBUILD File *was not* built using standard release
  * procedures. If this value is given, the StringFileInfo block must
  * contain a PrivateBuild string.
@@ -442,13 +478,13 @@
  * StringFileInfo block must contain a SpecialBuild string.
  */
 
-#if defined(PNG_USER_PRIVATEBUILD)
+#ifdef PNG_USER_PRIVATEBUILD /* From pnglibconf.h */
 #  define PNG_LIBPNG_BUILD_TYPE \
-          (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE)
+       (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE)
 #else
-#  if defined(PNG_LIBPNG_SPECIALBUILD)
+#  ifdef PNG_LIBPNG_SPECIALBUILD
 #    define PNG_LIBPNG_BUILD_TYPE \
-            (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL)
+         (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL)
 #  else
 #    define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE)
 #  endif
@@ -461,76 +497,61 @@
 extern "C" {
 #endif /* __cplusplus */
 
-/* This file is arranged in several sections.  The first section contains
- * structure and type definitions.  The second section contains the external
- * library functions, while the third has the internal library functions,
- * which applications aren't expected to use directly.
- */
-
-#ifndef PNG_NO_TYPECAST_NULL
-#define int_p_NULL                (int *)NULL
-#define png_bytep_NULL            (png_bytep)NULL
-#define png_bytepp_NULL           (png_bytepp)NULL
-#define png_doublep_NULL          (png_doublep)NULL
-#define png_error_ptr_NULL        (png_error_ptr)NULL
-#define png_flush_ptr_NULL        (png_flush_ptr)NULL
-#define png_free_ptr_NULL         (png_free_ptr)NULL
-#define png_infopp_NULL           (png_infopp)NULL
-#define png_malloc_ptr_NULL       (png_malloc_ptr)NULL
-#define png_read_status_ptr_NULL  (png_read_status_ptr)NULL
-#define png_rw_ptr_NULL           (png_rw_ptr)NULL
-#define png_structp_NULL          (png_structp)NULL
-#define png_uint_16p_NULL         (png_uint_16p)NULL
-#define png_voidp_NULL            (png_voidp)NULL
-#define png_write_status_ptr_NULL (png_write_status_ptr)NULL
-#else
-#define int_p_NULL                NULL
-#define png_bytep_NULL            NULL
-#define png_bytepp_NULL           NULL
-#define png_doublep_NULL          NULL
-#define png_error_ptr_NULL        NULL
-#define png_flush_ptr_NULL        NULL
-#define png_free_ptr_NULL         NULL
-#define png_infopp_NULL           NULL
-#define png_malloc_ptr_NULL       NULL
-#define png_read_status_ptr_NULL  NULL
-#define png_rw_ptr_NULL           NULL
-#define png_structp_NULL          NULL
-#define png_uint_16p_NULL         NULL
-#define png_voidp_NULL            NULL
-#define png_write_status_ptr_NULL NULL
-#endif
-
-/* variables declared in png.c - only it needs to define PNG_NO_EXTERN */
-#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
 /* Version information for C files, stored in png.c.  This had better match
  * the version above.
  */
-#ifdef PNG_USE_GLOBAL_ARRAYS
-PNG_EXPORT_VAR (const char) png_libpng_ver[18];
-  /* need room for 99.99.99beta99z */
-#else
 #define png_libpng_ver png_get_header_ver(NULL)
-#endif
 
-#ifdef PNG_USE_GLOBAL_ARRAYS
-/* This was removed in version 1.0.5c */
-/* Structures to facilitate easy interlacing.  See png.c for more details */
-PNG_EXPORT_VAR (const int FARDATA) png_pass_start[7];
-PNG_EXPORT_VAR (const int FARDATA) png_pass_inc[7];
-PNG_EXPORT_VAR (const int FARDATA) png_pass_ystart[7];
-PNG_EXPORT_VAR (const int FARDATA) png_pass_yinc[7];
-PNG_EXPORT_VAR (const int FARDATA) png_pass_mask[7];
-PNG_EXPORT_VAR (const int FARDATA) png_pass_dsp_mask[7];
-#ifdef PNG_USE_PNGGCCRD
-PNG_EXPORT_VAR (const int FARDATA) png_pass_width[7];
-#endif
-/* This isn't currently used.  If you need it, see png.c for more details.
-PNG_EXPORT_VAR (const int FARDATA) png_pass_height[7];
-*/
-#endif
+/* This file is arranged in several sections:
+ *
+ * 1. Any configuration options that can be specified by for the application
+ *    code when it is built.  (Build time configuration is in pnglibconf.h)
+ * 2. Type definitions (base types are defined in pngconf.h), structure
+ *    definitions.
+ * 3. Exported library functions.
+ *
+ * The library source code has additional files (principally pngpriv.h) that
+ * allow configuration of the library.
+ */
+/* Section 1: run time configuration
+ * See pnglibconf.h for build time configuration
+ *
+ * Run time configuration allows the application to choose between
+ * implementations of certain arithmetic APIs.  The default is set
+ * at build time and recorded in pnglibconf.h, but it is safe to
+ * override these (and only these) settings.  Note that this won't
+ * change what the library does, only application code, and the
+ * settings can (and probably should) be made on a per-file basis
+ * by setting the #defines before including png.h
+ *
+ * Use macros to read integers from PNG data or use the exported
+ * functions?
+ *   PNG_USE_READ_MACROS: use the macros (see below)  Note that
+ *     the macros evaluate their argument multiple times.
+ *   PNG_NO_USE_READ_MACROS: call the relevant library function.
+ *
+ * Use the alternative algorithm for compositing alpha samples that
+ * does not use division?
+ *   PNG_READ_COMPOSITE_NODIV_SUPPORTED: use the 'no division'
+ *      algorithm.
+ *   PNG_NO_READ_COMPOSITE_NODIV: use the 'division' algorithm.
+ *
+ * How to handle benign errors if PNG_ALLOW_BENIGN_ERRORS is
+ * false?
+ *   PNG_ALLOW_BENIGN_ERRORS: map calls to the benign error
+ *      APIs to png_warning.
+ * Otherwise the calls are mapped to png_error.
+ */
+
+/* Section 2: type definitions, including structures and compile time
+ * constants.
+ * See pngconf.h for base types that vary by machine/system
+ */
 
-#endif /* PNG_NO_EXTERN */
+/* This triggers a compiler error in png.c, if png.c and png.h
+ * do not agree upon the version number.
+ */
+typedef char* png_libpng_version_1_5_4;
 
 /* Three color definitions.  The order of the red, green, and blue, (and the
  * exact size) is not important, although the size of the fields need to
@@ -543,6 +564,7 @@ typedef struct png_color_struct
    png_byte blue;
 } png_color;
 typedef png_color FAR * png_colorp;
+typedef PNG_CONST png_color FAR * png_const_colorp;
 typedef png_color FAR * FAR * png_colorpp;
 
 typedef struct png_color_16_struct
@@ -554,6 +576,7 @@ typedef struct png_color_16_struct
    png_uint_16 gray;  /* for use in grayscale files */
 } png_color_16;
 typedef png_color_16 FAR * png_color_16p;
+typedef PNG_CONST png_color_16 FAR * png_const_color_16p;
 typedef png_color_16 FAR * FAR * png_color_16pp;
 
 typedef struct png_color_8_struct
@@ -565,6 +588,7 @@ typedef struct png_color_8_struct
    png_byte alpha; /* for alpha channel files */
 } png_color_8;
 typedef png_color_8 FAR * png_color_8p;
+typedef PNG_CONST png_color_8 FAR * png_const_color_8p;
 typedef png_color_8 FAR * FAR * png_color_8pp;
 
 /*
@@ -580,6 +604,7 @@ typedef struct png_sPLT_entry_struct
    png_uint_16 frequency;
 } png_sPLT_entry;
 typedef png_sPLT_entry FAR * png_sPLT_entryp;
+typedef PNG_CONST png_sPLT_entry FAR * png_const_sPLT_entryp;
 typedef png_sPLT_entry FAR * FAR * png_sPLT_entrypp;
 
 /*  When the depth of the sPLT palette is 8 bits, the color and alpha samples
@@ -595,6 +620,7 @@ typedef struct png_sPLT_struct
    png_int_32 nentries;      /* number of palette entries */
 } png_sPLT_t;
 typedef png_sPLT_t FAR * png_sPLT_tp;
+typedef PNG_CONST png_sPLT_t FAR * png_const_sPLT_tp;
 typedef png_sPLT_t FAR * FAR * png_sPLT_tpp;
 
 #ifdef PNG_TEXT_SUPPORTED
@@ -602,7 +628,7 @@ typedef png_sPLT_t FAR * FAR * png_sPLT_tpp;
  * and whether that contents is compressed or not.  The "key" field
  * points to a regular zero-terminated C string.  The "text", "lang", and
  * "lang_key" fields can be regular C strings, empty strings, or NULL pointers.
- * However, the * structure returned by png_get_text() will always contain
+ * However, the structure returned by png_get_text() will always contain
  * regular zero-terminated C strings (possibly empty), never NULL pointers,
  * so they can be safely used in printf() and other string-handling functions.
  */
@@ -617,15 +643,14 @@ typedef struct png_text_struct
    png_charp text;         /* comment, may be an empty string (ie "")
                               or a NULL pointer */
    png_size_t text_length; /* length of the text string */
-#ifdef PNG_iTXt_SUPPORTED
    png_size_t itxt_length; /* length of the itxt string */
    png_charp lang;         /* language code, 0-79 characters
                               or a NULL pointer */
    png_charp lang_key;     /* keyword translated UTF-8 string, 0 or more
                               chars or a NULL pointer */
-#endif
 } png_text;
 typedef png_text FAR * png_textp;
+typedef PNG_CONST png_text FAR * png_const_textp;
 typedef png_text FAR * FAR * png_textpp;
 #endif
 
@@ -655,9 +680,11 @@ typedef struct png_time_struct
    png_byte second;  /* second of minute, 0 - 60 (for leap seconds) */
 } png_time;
 typedef png_time FAR * png_timep;
+typedef PNG_CONST png_time FAR * png_const_timep;
 typedef png_time FAR * FAR * png_timepp;
 
-#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
+#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
+    defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
 /* png_unknown_chunk is a structure to hold queued chunks for which there is
  * no specific support.  The idea is that we can use this to queue
  * up private chunks for output even though the library doesn't actually
@@ -672,299 +699,41 @@ typedef struct png_unknown_chunk_t
     /* libpng-using applications should NOT directly modify this byte. */
     png_byte location; /* mode of operation at read time */
 }
+
+
 png_unknown_chunk;
 typedef png_unknown_chunk FAR * png_unknown_chunkp;
+typedef PNG_CONST png_unknown_chunk FAR * png_const_unknown_chunkp;
 typedef png_unknown_chunk FAR * FAR * png_unknown_chunkpp;
 #endif
 
-/* png_info is a structure that holds the information in a PNG file so
- * that the application can find out the characteristics of the image.
- * If you are reading the file, this structure will tell you what is
- * in the PNG file.  If you are writing the file, fill in the information
- * you want to put into the PNG file, then call png_write_info().
- * The names chosen should be very close to the PNG specification, so
- * consult that document for information about the meaning of each field.
- *
- * With libpng < 0.95, it was only possible to directly set and read the
- * the values in the png_info_struct, which meant that the contents and
- * order of the values had to remain fixed.  With libpng 0.95 and later,
- * however, there are now functions that abstract the contents of
- * png_info_struct from the application, so this makes it easier to use
- * libpng with dynamic libraries, and even makes it possible to use
- * libraries that don't have all of the libpng ancillary chunk-handing
- * functionality.
- *
- * In any case, the order of the parameters in png_info_struct should NOT
- * be changed for as long as possible to keep compatibility with applications
- * that use the old direct-access method with png_info_struct.
- *
- * The following members may have allocated storage attached that should be
- * cleaned up before the structure is discarded: palette, trans, text,
- * pcal_purpose, pcal_units, pcal_params, hist, iccp_name, iccp_profile,
- * splt_palettes, scal_unit, row_pointers, and unknowns.   By default, these
- * are automatically freed when the info structure is deallocated, if they were
- * allocated internally by libpng.  This behavior can be changed by means
- * of the png_data_freer() function.
- *
- * More allocation details: all the chunk-reading functions that
- * change these members go through the corresponding png_set_*
- * functions.  A function to clear these members is available: see
- * png_free_data().  The png_set_* functions do not depend on being
- * able to point info structure members to any of the storage they are
- * passed (they make their own copies), EXCEPT that the png_set_text
- * functions use the same storage passed to them in the text_ptr or
- * itxt_ptr structure argument, and the png_set_rows and png_set_unknowns
- * functions do not make their own copies.
- */
-typedef struct png_info_struct
-{
-   /* the following are necessary for every PNG file */
-   png_uint_32 width;       /* width of image in pixels (from IHDR) */
-   png_uint_32 height;      /* height of image in pixels (from IHDR) */
-   png_uint_32 valid;       /* valid chunk data (see PNG_INFO_ below) */
-   png_uint_32 rowbytes;    /* bytes needed to hold an untransformed row */
-   png_colorp palette;      /* array of color values (valid & PNG_INFO_PLTE) */
-   png_uint_16 num_palette; /* number of color entries in "palette" (PLTE) */
-   png_uint_16 num_trans;   /* number of transparent palette color (tRNS) */
-   png_byte bit_depth;      /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */
-   png_byte color_type;     /* see PNG_COLOR_TYPE_ below (from IHDR) */
-   /* The following three should have been named *_method not *_type */
-   png_byte compression_type; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */
-   png_byte filter_type;    /* must be PNG_FILTER_TYPE_BASE (from IHDR) */
-   png_byte interlace_type; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */
-
-   /* The following is informational only on read, and not used on writes. */
-   png_byte channels;       /* number of data channels per pixel (1, 2, 3, 4) */
-   png_byte pixel_depth;    /* number of bits per pixel */
-   png_byte spare_byte;     /* to align the data, and for future use */
-   png_byte signature[8];   /* magic bytes read by libpng from start of file */
-
-   /* The rest of the data is optional.  If you are reading, check the
-    * valid field to see if the information in these are valid.  If you
-    * are writing, set the valid field to those chunks you want written,
-    * and initialize the appropriate fields below.
-    */
-
-#if defined(PNG_gAMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED)
-   /* The gAMA chunk describes the gamma characteristics of the system
-    * on which the image was created, normally in the range [1.0, 2.5].
-    * Data is valid if (valid & PNG_INFO_gAMA) is non-zero.
-    */
-   float gamma; /* gamma value of image, if (valid & PNG_INFO_gAMA) */
-#endif
-
-#if defined(PNG_sRGB_SUPPORTED)
-    /* GR-P, 0.96a */
-    /* Data valid if (valid & PNG_INFO_sRGB) non-zero. */
-   png_byte srgb_intent; /* sRGB rendering intent [0, 1, 2, or 3] */
-#endif
-
-#if defined(PNG_TEXT_SUPPORTED)
-   /* The tEXt, and zTXt chunks contain human-readable textual data in
-    * uncompressed, compressed, and optionally compressed forms, respectively.
-    * The data in "text" is an array of pointers to uncompressed,
-    * null-terminated C strings. Each chunk has a keyword that describes the
-    * textual data contained in that chunk.  Keywords are not required to be
-    * unique, and the text string may be empty.  Any number of text chunks may
-    * be in an image.
-    */
-   int num_text; /* number of comments read/to write */
-   int max_text; /* current size of text array */
-   png_textp text; /* array of comments read/to write */
-#endif /* PNG_TEXT_SUPPORTED */
-
-#if defined(PNG_tIME_SUPPORTED)
-   /* The tIME chunk holds the last time the displayed image data was
-    * modified.  See the png_time struct for the contents of this struct.
-    */
-   png_time mod_time;
-#endif
-
-#if defined(PNG_sBIT_SUPPORTED)
-   /* The sBIT chunk specifies the number of significant high-order bits
-    * in the pixel data.  Values are in the range [1, bit_depth], and are
-    * only specified for the channels in the pixel data.  The contents of
-    * the low-order bits is not specified.  Data is valid if
-    * (valid & PNG_INFO_sBIT) is non-zero.
-    */
-   png_color_8 sig_bit; /* significant bits in color channels */
-#endif
-
-#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \
-defined(PNG_READ_BACKGROUND_SUPPORTED)
-   /* The tRNS chunk supplies transparency data for paletted images and
-    * other image types that don't need a full alpha channel.  There are
-    * "num_trans" transparency values for a paletted image, stored in the
-    * same order as the palette colors, starting from index 0.  Values
-    * for the data are in the range [0, 255], ranging from fully transparent
-    * to fully opaque, respectively.  For non-paletted images, there is a
-    * single color specified that should be treated as fully transparent.
-    * Data is valid if (valid & PNG_INFO_tRNS) is non-zero.
-    */
-   png_bytep trans; /* transparent values for paletted image */
-   png_color_16 trans_values; /* transparent color for non-palette image */
-#endif
-
-#if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
-   /* The bKGD chunk gives the suggested image background color if the
-    * display program does not have its own background color and the image
-    * is needs to composited onto a background before display.  The colors
-    * in "background" are normally in the same color space/depth as the
-    * pixel data.  Data is valid if (valid & PNG_INFO_bKGD) is non-zero.
-    */
-   png_color_16 background;
-#endif
-
-#if defined(PNG_oFFs_SUPPORTED)
-   /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards
-    * and downwards from the top-left corner of the display, page, or other
-    * application-specific co-ordinate space.  See the PNG_OFFSET_ defines
-    * below for the unit types.  Valid if (valid & PNG_INFO_oFFs) non-zero.
-    */
-   png_int_32 x_offset; /* x offset on page */
-   png_int_32 y_offset; /* y offset on page */
-   png_byte offset_unit_type; /* offset units type */
-#endif
-
-#if defined(PNG_pHYs_SUPPORTED)
-   /* The pHYs chunk gives the physical pixel density of the image for
-    * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_
-    * defines below).  Data is valid if (valid & PNG_INFO_pHYs) is non-zero.
-    */
-   png_uint_32 x_pixels_per_unit; /* horizontal pixel density */
-   png_uint_32 y_pixels_per_unit; /* vertical pixel density */
-   png_byte phys_unit_type; /* resolution type (see PNG_RESOLUTION_ below) */
-#endif
-
-#if defined(PNG_hIST_SUPPORTED)
-   /* The hIST chunk contains the relative frequency or importance of the
-    * various palette entries, so that a viewer can intelligently select a
-    * reduced-color palette, if required.  Data is an array of "num_palette"
-    * values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST)
-    * is non-zero.
-    */
-   png_uint_16p hist;
-#endif
-
-#ifdef PNG_cHRM_SUPPORTED
-   /* The cHRM chunk describes the CIE color characteristics of the monitor
-    * on which the PNG was created.  This data allows the viewer to do gamut
-    * mapping of the input image to ensure that the viewer sees the same
-    * colors in the image as the creator.  Values are in the range
-    * [0.0, 0.8].  Data valid if (valid & PNG_INFO_cHRM) non-zero.
-    */
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   float x_white;
-   float y_white;
-   float x_red;
-   float y_red;
-   float x_green;
-   float y_green;
-   float x_blue;
-   float y_blue;
-#endif
-#endif
-
-#if defined(PNG_pCAL_SUPPORTED)
-   /* The pCAL chunk describes a transformation between the stored pixel
-    * values and original physical data values used to create the image.
-    * The integer range [0, 2^bit_depth - 1] maps to the floating-point
-    * range given by [pcal_X0, pcal_X1], and are further transformed by a
-    * (possibly non-linear) transformation function given by "pcal_type"
-    * and "pcal_params" into "pcal_units".  Please see the PNG_EQUATION_
-    * defines below, and the PNG-Group's PNG extensions document for a
-    * complete description of the transformations and how they should be
-    * implemented, and for a description of the ASCII parameter strings.
-    * Data values are valid if (valid & PNG_INFO_pCAL) non-zero.
-    */
-   png_charp pcal_purpose;  /* pCAL chunk description string */
-   png_int_32 pcal_X0;      /* minimum value */
-   png_int_32 pcal_X1;      /* maximum value */
-   png_charp pcal_units;    /* Latin-1 string giving physical units */
-   png_charpp pcal_params;  /* ASCII strings containing parameter values */
-   png_byte pcal_type;      /* equation type (see PNG_EQUATION_ below) */
-   png_byte pcal_nparams;   /* number of parameters given in pcal_params */
-#endif
-
-/* New members added in libpng-1.0.6 */
-#ifdef PNG_FREE_ME_SUPPORTED
-   png_uint_32 free_me;     /* flags items libpng is responsible for freeing */
-#endif
-
-#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
-   /* storage for unknown chunks that the library doesn't recognize. */
-   png_unknown_chunkp unknown_chunks;
-   png_size_t unknown_chunks_num;
-#endif
-
-#if defined(PNG_iCCP_SUPPORTED)
-   /* iCCP chunk data. */
-   png_charp iccp_name;     /* profile name */
-   png_charp iccp_profile;  /* International Color Consortium profile data */
-                            /* Note to maintainer: should be png_bytep */
-   png_uint_32 iccp_proflen;  /* ICC profile data length */
-   png_byte iccp_compression; /* Always zero */
-#endif
-
-#if defined(PNG_sPLT_SUPPORTED)
-   /* data on sPLT chunks (there may be more than one). */
-   png_sPLT_tp splt_palettes;
-   png_uint_32 splt_palettes_num;
-#endif
-
-#if defined(PNG_sCAL_SUPPORTED)
-   /* The sCAL chunk describes the actual physical dimensions of the
-    * subject matter of the graphic.  The chunk contains a unit specification
-    * a byte value, and two ASCII strings representing floating-point
-    * values.  The values are width and height corresponsing to one pixel
-    * in the image.  This external representation is converted to double
-    * here.  Data values are valid if (valid & PNG_INFO_sCAL) is non-zero.
-    */
-   png_byte scal_unit;         /* unit of physical scale */
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   double scal_pixel_width;    /* width of one pixel */
-   double scal_pixel_height;   /* height of one pixel */
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   png_charp scal_s_width;     /* string containing height */
-   png_charp scal_s_height;    /* string containing width */
-#endif
-#endif
-
-#if defined(PNG_INFO_IMAGE_SUPPORTED)
-   /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS) non-zero */
-   /* Data valid if (valid & PNG_INFO_IDAT) non-zero */
-   png_bytepp row_pointers;        /* the image bits */
-#endif
-
-#if defined(PNG_FIXED_POINT_SUPPORTED) && defined(PNG_gAMA_SUPPORTED)
-   png_fixed_point int_gamma; /* gamma of image, if (valid & PNG_INFO_gAMA) */
-#endif
+/* Values for the unknown chunk location byte */
 
-#if defined(PNG_cHRM_SUPPORTED) && defined(PNG_FIXED_POINT_SUPPORTED)
-   png_fixed_point int_x_white;
-   png_fixed_point int_y_white;
-   png_fixed_point int_x_red;
-   png_fixed_point int_y_red;
-   png_fixed_point int_x_green;
-   png_fixed_point int_y_green;
-   png_fixed_point int_x_blue;
-   png_fixed_point int_y_blue;
-#endif
-
-} png_info;
+#define PNG_HAVE_IHDR  0x01
+#define PNG_HAVE_PLTE  0x02
+#define PNG_AFTER_IDAT 0x08
 
+/* The complete definition of png_info has, as of libpng-1.5.0,
+ * been moved into a separate header file that is not accessible to
+ * applications.  Read libpng-manual.txt or libpng.3 for more info.
+ */
+typedef struct png_info_def png_info;
 typedef png_info FAR * png_infop;
+typedef PNG_CONST png_info FAR * png_const_infop;
 typedef png_info FAR * FAR * png_infopp;
 
 /* Maximum positive integer used in PNG is (2^31)-1 */
 #define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL)
 #define PNG_UINT_32_MAX ((png_uint_32)(-1))
 #define PNG_SIZE_MAX ((png_size_t)(-1))
-#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
-/* PNG_MAX_UINT is deprecated; use PNG_UINT_31_MAX instead. */
-#define PNG_MAX_UINT PNG_UINT_31_MAX
-#endif
+
+/* These are constants for fixed point values encoded in the
+ * PNG specification manner (x100000)
+ */
+#define PNG_FP_1    100000
+#define PNG_FP_HALF  50000
+#define PNG_FP_MAX  ((png_fixed_point)0x7fffffffL)
+#define PNG_FP_MIN  (-PNG_FP_MAX)
 
 /* These describe the color_type field in png_info. */
 /* color type masks */
@@ -1060,53 +829,86 @@ typedef png_info FAR * FAR * png_infopp;
  */
 typedef struct png_row_info_struct
 {
-   png_uint_32 width; /* width of row */
-   png_uint_32 rowbytes; /* number of bytes in row */
-   png_byte color_type; /* color type of row */
-   png_byte bit_depth; /* bit depth of row */
-   png_byte channels; /* number of channels (1, 2, 3, or 4) */
+   png_uint_32 width;    /* width of row */
+   png_size_t rowbytes;  /* number of bytes in row */
+   png_byte color_type;  /* color type of row */
+   png_byte bit_depth;   /* bit depth of row */
+   png_byte channels;    /* number of channels (1, 2, 3, or 4) */
    png_byte pixel_depth; /* bits per pixel (depth * channels) */
 } png_row_info;
 
 typedef png_row_info FAR * png_row_infop;
 typedef png_row_info FAR * FAR * png_row_infopp;
 
+/* The complete definition of png_struct has, as of libpng-1.5.0,
+ * been moved into a separate header file that is not accessible to
+ * applications.  Read libpng-manual.txt or libpng.3 for more info.
+ */
+typedef struct png_struct_def png_struct;
+typedef PNG_CONST png_struct FAR * png_const_structp;
+typedef png_struct FAR * png_structp;
+
 /* These are the function types for the I/O functions and for the functions
  * that allow the user to override the default I/O functions with his or her
  * own.  The png_error_ptr type should match that of user-supplied warning
  * and error functions, while the png_rw_ptr type should match that of the
- * user read/write data functions.
+ * user read/write data functions.  Note that the 'write' function must not
+ * modify the buffer it is passed. The 'read' function, on the other hand, is
+ * expected to return the read data in the buffer.
  */
-typedef struct png_struct_def png_struct;
-typedef png_struct FAR * png_structp;
-
-typedef void (PNGAPI *png_error_ptr) PNGARG((png_structp, png_const_charp));
-typedef void (PNGAPI *png_rw_ptr) PNGARG((png_structp, png_bytep, png_size_t));
-typedef void (PNGAPI *png_flush_ptr) PNGARG((png_structp));
-typedef void (PNGAPI *png_read_status_ptr) PNGARG((png_structp, png_uint_32,
-   int));
-typedef void (PNGAPI *png_write_status_ptr) PNGARG((png_structp, png_uint_32,
-   int));
+typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp));
+typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, png_size_t));
+typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp));
+typedef PNG_CALLBACK(void, *png_read_status_ptr, (png_structp, png_uint_32,
+    int));
+typedef PNG_CALLBACK(void, *png_write_status_ptr, (png_structp, png_uint_32,
+    int));
 
 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
-typedef void (PNGAPI *png_progressive_info_ptr) PNGARG((png_structp, png_infop));
-typedef void (PNGAPI *png_progressive_end_ptr) PNGARG((png_structp, png_infop));
-typedef void (PNGAPI *png_progressive_row_ptr) PNGARG((png_structp, png_bytep,
-   png_uint_32, int));
+typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop));
+typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop));
+
+/* The following callback receives png_uint_32 row_number, int pass for the
+ * png_bytep data of the row.  When transforming an interlaced image the
+ * row number is the row number within the sub-image of the interlace pass, so
+ * the value will increase to the height of the sub-image (not the full image)
+ * then reset to 0 for the next pass.
+ *
+ * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to
+ * find the output pixel (x,y) given an interlaced sub-image pixel
+ * (row,col,pass).  (See below for these macros.)
+ */
+typedef PNG_CALLBACK(void, *png_progressive_row_ptr, (png_structp, png_bytep,
+    png_uint_32, int));
 #endif
 
 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
-    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
-    defined(PNG_LEGACY_SUPPORTED)
-typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp,
-    png_row_infop, png_bytep));
+    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+typedef PNG_CALLBACK(void, *png_user_transform_ptr, (png_structp, png_row_infop,
+    png_bytep));
 #endif
 
-#if defined(PNG_USER_CHUNKS_SUPPORTED)
-typedef int (PNGAPI *png_user_chunk_ptr) PNGARG((png_structp, png_unknown_chunkp));
+#ifdef PNG_USER_CHUNKS_SUPPORTED
+typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp,
+    png_unknown_chunkp));
+#endif
+#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
+typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp));
 #endif
-#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
-typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp));
+
+#ifdef PNG_SETJMP_SUPPORTED
+/* This must match the function definition in <setjmp.h>, and the application
+ * must include this before png.h to obtain the definition of jmp_buf.  The
+ * function is required to be PNG_NORETURN, but this is not checked.  If the
+ * function does return the application will crash via an abort() or similar
+ * system level call.
+ *
+ * If you get a warning here while building the library you may need to make
+ * changes to ensure that pnglibconf.h records the calling convention used by
+ * your compiler.  This may be very difficult - try using a different compiler
+ * to build the library!
+ */
+PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), typedef);
 #endif
 
 /* Transform masks for the high-level interface */
@@ -1122,667 +924,653 @@ typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp));
 #define PNG_TRANSFORM_SWAP_ALPHA     0x0100    /* read and write */
 #define PNG_TRANSFORM_SWAP_ENDIAN    0x0200    /* read and write */
 #define PNG_TRANSFORM_INVERT_ALPHA   0x0400    /* read and write */
-#define PNG_TRANSFORM_STRIP_FILLER   0x0800    /* WRITE only */
+#define PNG_TRANSFORM_STRIP_FILLER   0x0800    /* write only */
+/* Added to libpng-1.2.34 */
+#define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER
+#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */
+/* Added to libpng-1.4.0 */
+#define PNG_TRANSFORM_GRAY_TO_RGB   0x2000      /* read only */
+/* Added to libpng-1.5.4 */
+#define PNG_TRANSFORM_EXPAND_16     0x4000      /* read only */
+#define PNG_TRANSFORM_SCALE_16      0x8000      /* read only */
 
 /* Flags for MNG supported features */
 #define PNG_FLAG_MNG_EMPTY_PLTE     0x01
 #define PNG_FLAG_MNG_FILTER_64      0x04
 #define PNG_ALL_MNG_FEATURES        0x05
 
-typedef png_voidp (*png_malloc_ptr) PNGARG((png_structp, png_size_t));
-typedef void (*png_free_ptr) PNGARG((png_structp, png_voidp));
-
-/* The structure that holds the information to read and write PNG files.
- * The only people who need to care about what is inside of this are the
- * people who will be modifying the library for their own special needs.
- * It should NOT be accessed directly by an application, except to store
- * the jmp_buf.
- */
-
-struct png_struct_def
-{
-#ifdef PNG_SETJMP_SUPPORTED
-   jmp_buf jmpbuf;            /* used in png_error */
-#endif
-   png_error_ptr error_fn;    /* function for printing errors and aborting */
-   png_error_ptr warning_fn;  /* function for printing warnings */
-   png_voidp error_ptr;       /* user supplied struct for error functions */
-   png_rw_ptr write_data_fn;  /* function for writing output data */
-   png_rw_ptr read_data_fn;   /* function for reading input data */
-   png_voidp io_ptr;          /* ptr to application struct for I/O functions */
-
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
-   png_user_transform_ptr read_user_transform_fn; /* user read transform */
-#endif
-
-#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
-   png_user_transform_ptr write_user_transform_fn; /* user write transform */
-#endif
-
-/* These were added in libpng-1.0.2 */
-#if defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
-    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
-   png_voidp user_transform_ptr; /* user supplied struct for user transform */
-   png_byte user_transform_depth;    /* bit depth of user transformed pixels */
-   png_byte user_transform_channels; /* channels in user transformed pixels */
-#endif
-#endif
-
-   png_uint_32 mode;          /* tells us where we are in the PNG file */
-   png_uint_32 flags;         /* flags indicating various things to libpng */
-   png_uint_32 transformations; /* which transformations to perform */
-
-   z_stream zstream;          /* pointer to decompression structure (below) */
-   png_bytep zbuf;            /* buffer for zlib */
-   png_size_t zbuf_size;      /* size of zbuf */
-   int zlib_level;            /* holds zlib compression level */
-   int zlib_method;           /* holds zlib compression method */
-   int zlib_window_bits;      /* holds zlib compression window bits */
-   int zlib_mem_level;        /* holds zlib compression memory level */
-   int zlib_strategy;         /* holds zlib compression strategy */
-
-   png_uint_32 width;         /* width of image in pixels */
-   png_uint_32 height;        /* height of image in pixels */
-   png_uint_32 num_rows;      /* number of rows in current pass */
-   png_uint_32 usr_width;     /* width of row at start of write */
-   png_uint_32 rowbytes;      /* size of row in bytes */
-   png_uint_32 irowbytes;     /* size of current interlaced row in bytes */
-   png_uint_32 iwidth;        /* width of current interlaced row in pixels */
-   png_uint_32 row_number;    /* current row in interlace pass */
-   png_bytep prev_row;        /* buffer to save previous (unfiltered) row */
-   png_bytep row_buf;         /* buffer to save current (unfiltered) row */
-   png_bytep sub_row;         /* buffer to save "sub" row when filtering */
-   png_bytep up_row;          /* buffer to save "up" row when filtering */
-   png_bytep avg_row;         /* buffer to save "avg" row when filtering */
-   png_bytep paeth_row;       /* buffer to save "Paeth" row when filtering */
-   png_row_info row_info;     /* used for transformation routines */
-
-   png_uint_32 idat_size;     /* current IDAT size for read */
-   png_uint_32 crc;           /* current chunk CRC value */
-   png_colorp palette;        /* palette from the input file */
-   png_uint_16 num_palette;   /* number of color entries in palette */
-   png_uint_16 num_trans;     /* number of transparency values */
-   png_byte chunk_name[5];    /* null-terminated name of current chunk */
-   png_byte compression;      /* file compression type (always 0) */
-   png_byte filter;           /* file filter type (always 0) */
-   png_byte interlaced;       /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */
-   png_byte pass;             /* current interlace pass (0 - 6) */
-   png_byte do_filter;        /* row filter flags (see PNG_FILTER_ below ) */
-   png_byte color_type;       /* color type of file */
-   png_byte bit_depth;        /* bit depth of file */
-   png_byte usr_bit_depth;    /* bit depth of users row */
-   png_byte pixel_depth;      /* number of bits per pixel */
-   png_byte channels;         /* number of channels in file */
-   png_byte usr_channels;     /* channels at start of write */
-   png_byte sig_bytes;        /* magic bytes read/written from start of file */
-
-#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
-#ifdef PNG_LEGACY_SUPPORTED
-   png_byte filler;           /* filler byte for pixel expansion */
-#else
-   png_uint_16 filler;           /* filler bytes for pixel expansion */
-#endif
-#endif
-
-#if defined(PNG_bKGD_SUPPORTED)
-   png_byte background_gamma_type;
-#  ifdef PNG_FLOATING_POINT_SUPPORTED
-   float background_gamma;
-#  endif
-   png_color_16 background;   /* background color in screen gamma space */
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-   png_color_16 background_1; /* background normalized to gamma 1.0 */
-#endif
-#endif /* PNG_bKGD_SUPPORTED */
-
-#if defined(PNG_WRITE_FLUSH_SUPPORTED)
-   png_flush_ptr output_flush_fn;/* Function for flushing output */
-   png_uint_32 flush_dist;    /* how many rows apart to flush, 0 - no flush */
-   png_uint_32 flush_rows;    /* number of rows written since last flush */
-#endif
-
-#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
-   int gamma_shift;      /* number of "insignificant" bits 16-bit gamma */
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   float gamma;          /* file gamma value */
-   float screen_gamma;   /* screen gamma value (display_exponent) */
-#endif
-#endif
-
-#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
-   png_bytep gamma_table;     /* gamma table for 8-bit depth files */
-   png_bytep gamma_from_1;    /* converts from 1.0 to screen */
-   png_bytep gamma_to_1;      /* converts from file to 1.0 */
-   png_uint_16pp gamma_16_table; /* gamma table for 16-bit depth files */
-   png_uint_16pp gamma_16_from_1; /* converts from 1.0 to screen */
-   png_uint_16pp gamma_16_to_1; /* converts from file to 1.0 */
-#endif
-
-#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED)
-   png_color_8 sig_bit;       /* significant bits in each available channel */
-#endif
-
-#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED)
-   png_color_8 shift;         /* shift for significant bit tranformation */
-#endif
-
-#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \
- || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
-   png_bytep trans;           /* transparency values for paletted files */
-   png_color_16 trans_values; /* transparency values for non-paletted files */
-#endif
-
-   png_read_status_ptr read_row_fn;   /* called after each row is decoded */
-   png_write_status_ptr write_row_fn; /* called after each row is encoded */
-#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
-   png_progressive_info_ptr info_fn; /* called after header data fully read */
-   png_progressive_row_ptr row_fn;   /* called after each prog. row is decoded */
-   png_progressive_end_ptr end_fn;   /* called after image is complete */
-   png_bytep save_buffer_ptr;        /* current location in save_buffer */
-   png_bytep save_buffer;            /* buffer for previously read data */
-   png_bytep current_buffer_ptr;     /* current location in current_buffer */
-   png_bytep current_buffer;         /* buffer for recently used data */
-   png_uint_32 push_length;          /* size of current input chunk */
-   png_uint_32 skip_length;          /* bytes to skip in input data */
-   png_size_t save_buffer_size;      /* amount of data now in save_buffer */
-   png_size_t save_buffer_max;       /* total size of save_buffer */
-   png_size_t buffer_size;           /* total amount of available input data */
-   png_size_t current_buffer_size;   /* amount of data now in current_buffer */
-   int process_mode;                 /* what push library is currently doing */
-   int cur_palette;                  /* current push library palette index */
-
-#  if defined(PNG_TEXT_SUPPORTED)
-     png_size_t current_text_size;   /* current size of text input data */
-     png_size_t current_text_left;   /* how much text left to read in input */
-     png_charp current_text;         /* current text chunk buffer */
-     png_charp current_text_ptr;     /* current location in current_text */
-#  endif /* PNG_PROGRESSIVE_READ_SUPPORTED && PNG_TEXT_SUPPORTED */
-
-#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
-
-#if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__)
-/* for the Borland special 64K segment handler */
-   png_bytepp offset_table_ptr;
-   png_bytep offset_table;
-   png_uint_16 offset_table_number;
-   png_uint_16 offset_table_count;
-   png_uint_16 offset_table_count_free;
-#endif
-
-#if defined(PNG_READ_DITHER_SUPPORTED)
-   png_bytep palette_lookup;         /* lookup table for dithering */
-   png_bytep dither_index;           /* index translation for palette files */
-#endif
-
-#if defined(PNG_READ_DITHER_SUPPORTED) || defined(PNG_hIST_SUPPORTED)
-   png_uint_16p hist;                /* histogram */
-#endif
-
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
-   png_byte heuristic_method;        /* heuristic for row filter selection */
-   png_byte num_prev_filters;        /* number of weights for previous rows */
-   png_bytep prev_filters;           /* filter type(s) of previous row(s) */
-   png_uint_16p filter_weights;      /* weight(s) for previous line(s) */
-   png_uint_16p inv_filter_weights;  /* 1/weight(s) for previous line(s) */
-   png_uint_16p filter_costs;        /* relative filter calculation cost */
-   png_uint_16p inv_filter_costs;    /* 1/relative filter calculation cost */
-#endif
-
-#if defined(PNG_TIME_RFC1123_SUPPORTED)
-   png_charp time_buffer;            /* String to hold RFC 1123 time text */
-#endif
-
-/* New members added in libpng-1.0.6 */
-
-#ifdef PNG_FREE_ME_SUPPORTED
-   png_uint_32 free_me;       /* flags items libpng is responsible for freeing */
-#endif
-
-#if defined(PNG_USER_CHUNKS_SUPPORTED)
-   png_voidp user_chunk_ptr;
-   png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */
-#endif
-
-#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
-   int num_chunk_list;
-   png_bytep chunk_list;
-#endif
-
-/* New members added in libpng-1.0.3 */
-#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
-   png_byte rgb_to_gray_status;
-   /* These were changed from png_byte in libpng-1.0.6 */
-   png_uint_16 rgb_to_gray_red_coeff;
-   png_uint_16 rgb_to_gray_green_coeff;
-   png_uint_16 rgb_to_gray_blue_coeff;
-#endif
-
-/* New member added in libpng-1.0.4 (renamed in 1.0.9) */
-#if defined(PNG_MNG_FEATURES_SUPPORTED) || \
-    defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \
-    defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)
-/* changed from png_byte to png_uint_32 at version 1.2.0 */
-#ifdef PNG_1_0_X
-   png_byte mng_features_permitted;
-#else
-   png_uint_32 mng_features_permitted;
-#endif /* PNG_1_0_X */
-#endif
-
-/* New member added in libpng-1.0.7 */
-#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
-   png_fixed_point int_gamma;
-#endif
-
-/* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
-   png_byte filter_type;
-#endif
-
-#if defined(PNG_1_0_X) || (defined(PNG_DEBUG) && defined(PNG_USE_PNGGCCRD))
-/* New member added in libpng-1.0.10, ifdef'ed out in 1.2.0 */
-   png_uint_32 row_buf_size;
-#endif
-
-/* New members added in libpng-1.2.0 */
-#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
-#  if !defined(PNG_1_0_X)
-#    if defined(PNG_MMX_CODE_SUPPORTED)
-   png_byte     mmx_bitdepth_threshold;
-   png_uint_32  mmx_rowbytes_threshold;
-#    endif
-   png_uint_32  asm_flags;
-#  endif
-#endif
-
-/* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
-#ifdef PNG_USER_MEM_SUPPORTED
-   png_voidp mem_ptr;                /* user supplied struct for mem functions */
-   png_malloc_ptr malloc_fn;         /* function for allocating memory */
-   png_free_ptr free_fn;             /* function for freeing memory */
-#endif
-
-/* New member added in libpng-1.0.13 and 1.2.0 */
-   png_bytep big_row_buf;         /* buffer to save current (unfiltered) row */
-
-#if defined(PNG_READ_DITHER_SUPPORTED)
-/* The following three members were added at version 1.0.14 and 1.2.4 */
-   png_bytep dither_sort;            /* working sort array */
-   png_bytep index_to_palette;       /* where the original index currently is */
-                                     /* in the palette */
-   png_bytep palette_to_index;       /* which original index points to this */
-                                     /* palette color */
-#endif
-
-/* New members added in libpng-1.0.16 and 1.2.6 */
-   png_byte compression_type;
-
-#ifdef PNG_SET_USER_LIMITS_SUPPORTED
-   png_uint_32 user_width_max;
-   png_uint_32 user_height_max;
-#endif
-
-/* New member added in libpng-1.0.25 and 1.2.17 */
-#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
-   /* storage for unknown chunk that the library doesn't recognize. */
-   png_unknown_chunk unknown_chunk;
-#endif
-};
-
-
-/* This triggers a compiler error in png.c, if png.c and png.h
- * do not agree upon the version number.
+/* NOTE: prior to 1.5 these functions had no 'API' style declaration,
+ * this allowed the zlib default functions to be used on Windows
+ * platforms.  In 1.5 the zlib default malloc (which just calls malloc and
+ * ignores the first argument) should be completely compatible with the
+ * following.
  */
-typedef png_structp version_1_2_18;
+typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp,
+    png_alloc_size_t));
+typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp));
 
 typedef png_struct FAR * FAR * png_structpp;
 
-/* Here are the function definitions most commonly used.  This is not
- * the place to find out how to use libpng.  See libpng.txt for the
+/* Section 3: exported functions
+ * Here are the function definitions most commonly used.  This is not
+ * the place to find out how to use libpng.  See libpng-manual.txt for the
  * full explanation, see example.c for the summary.  This just provides
  * a simple one line description of the use of each function.
+ *
+ * The PNG_EXPORT() and PNG_EXPORTA() macros used below are defined in
+ * pngconf.h and in the *.dfn files in the scripts directory.
+ *
+ *   PNG_EXPORT(ordinal, type, name, (args));
+ *
+ *       ordinal:    ordinal that is used while building
+ *                   *.def files. The ordinal value is only
+ *                   relevant when preprocessing png.h with
+ *                   the *.dfn files for building symbol table
+ *                   entries, and are removed by pngconf.h.
+ *       type:       return type of the function
+ *       name:       function name
+ *       args:       function arguments, with types
+ *
+ * When we wish to append attributes to a function prototype we use
+ * the PNG_EXPORTA() macro instead.
+ *
+ *   PNG_EXPORTA(ordinal, type, name, (args), attributes);
+ *
+ *       ordinal, type, name, and args: same as in PNG_EXPORT().
+ *       attributes: function attributes
  */
 
 /* Returns the version number of the library */
-extern PNG_EXPORT(png_uint_32,png_access_version_number) PNGARG((void));
+PNG_EXPORT(1, png_uint_32, png_access_version_number, (void));
 
 /* Tell lib we have already handled the first <num_bytes> magic bytes.
  * Handling more than 8 bytes from the beginning of the file is an error.
  */
-extern PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr,
-   int num_bytes));
+PNG_EXPORT(2, void, png_set_sig_bytes, (png_structp png_ptr, int num_bytes));
 
 /* Check sig[start] through sig[start + num_to_check - 1] to see if it's a
  * PNG file.  Returns zero if the supplied bytes match the 8-byte PNG
  * signature, and non-zero otherwise.  Having num_to_check == 0 or
  * start > 7 will always fail (ie return non-zero).
  */
-extern PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start,
-   png_size_t num_to_check));
+PNG_EXPORT(3, int, png_sig_cmp, (png_const_bytep sig, png_size_t start,
+    png_size_t num_to_check));
 
 /* Simple signature checking function.  This is the same as calling
  * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n).
  */
-extern PNG_EXPORT(int,png_check_sig) PNGARG((png_bytep sig, int num));
+#define png_check_sig(sig, n) !png_sig_cmp((sig), 0, (n))
 
 /* Allocate and initialize png_ptr struct for reading, and any other memory. */
-extern PNG_EXPORT(png_structp,png_create_read_struct)
-   PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
-   png_error_ptr error_fn, png_error_ptr warn_fn));
+PNG_EXPORTA(4, png_structp, png_create_read_struct,
+    (png_const_charp user_png_ver, png_voidp error_ptr,
+    png_error_ptr error_fn, png_error_ptr warn_fn),
+    PNG_ALLOCATED);
 
 /* Allocate and initialize png_ptr struct for writing, and any other memory */
-extern PNG_EXPORT(png_structp,png_create_write_struct)
-   PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
-   png_error_ptr error_fn, png_error_ptr warn_fn));
+PNG_EXPORTA(5, png_structp, png_create_write_struct,
+    (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn,
+    png_error_ptr warn_fn),
+    PNG_ALLOCATED);
 
-#ifdef PNG_WRITE_SUPPORTED
-extern PNG_EXPORT(png_uint_32,png_get_compression_buffer_size)
-   PNGARG((png_structp png_ptr));
-#endif
+PNG_EXPORT(6, png_size_t, png_get_compression_buffer_size,
+    (png_const_structp png_ptr));
 
-#ifdef PNG_WRITE_SUPPORTED
-extern PNG_EXPORT(void,png_set_compression_buffer_size)
-   PNGARG((png_structp png_ptr, png_uint_32 size));
+PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structp png_ptr,
+    png_size_t size));
+
+/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp
+ * match up.
+ */
+#ifdef PNG_SETJMP_SUPPORTED
+/* This function returns the jmp_buf built in to *png_ptr.  It must be
+ * supplied with an appropriate 'longjmp' function to use on that jmp_buf
+ * unless the default error function is overridden in which case NULL is
+ * acceptable.  The size of the jmp_buf is checked against the actual size
+ * allocated by the library - the call will return NULL on a mismatch
+ * indicating an ABI mismatch.
+ */
+PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structp png_ptr,
+    png_longjmp_ptr longjmp_fn, size_t jmp_buf_size));
+#  define png_jmpbuf(png_ptr) \
+      (*png_set_longjmp_fn((png_ptr), longjmp, sizeof (jmp_buf)))
+#else
+#  define png_jmpbuf(png_ptr) \
+      (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP)
 #endif
+/* This function should be used by libpng applications in place of
+ * longjmp(png_ptr->jmpbuf, val).  If longjmp_fn() has been set, it
+ * will use it; otherwise it will call PNG_ABORT().  This function was
+ * added in libpng-1.5.0.
+ */
+PNG_EXPORTA(9, void, png_longjmp, (png_structp png_ptr, int val),
+    PNG_NORETURN);
 
+#ifdef PNG_READ_SUPPORTED
 /* Reset the compression stream */
-extern PNG_EXPORT(int,png_reset_zstream) PNGARG((png_structp png_ptr));
+PNG_EXPORT(10, int, png_reset_zstream, (png_structp png_ptr));
+#endif
 
 /* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */
 #ifdef PNG_USER_MEM_SUPPORTED
-extern PNG_EXPORT(png_structp,png_create_read_struct_2)
-   PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
-   png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
-   png_malloc_ptr malloc_fn, png_free_ptr free_fn));
-extern PNG_EXPORT(png_structp,png_create_write_struct_2)
-   PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
-   png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
-   png_malloc_ptr malloc_fn, png_free_ptr free_fn));
+PNG_EXPORTA(11, png_structp, png_create_read_struct_2,
+    (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn,
+    png_error_ptr warn_fn,
+    png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn),
+    PNG_ALLOCATED);
+PNG_EXPORTA(12, png_structp, png_create_write_struct_2,
+    (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn,
+    png_error_ptr warn_fn,
+    png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn),
+    PNG_ALLOCATED);
 #endif
 
+/* Write the PNG file signature. */
+PNG_EXPORT(13, void, png_write_sig, (png_structp png_ptr));
+
 /* Write a PNG chunk - size, type, (optional) data, CRC. */
-extern PNG_EXPORT(void,png_write_chunk) PNGARG((png_structp png_ptr,
-   png_bytep chunk_name, png_bytep data, png_size_t length));
+PNG_EXPORT(14, void, png_write_chunk, (png_structp png_ptr, png_const_bytep
+    chunk_name, png_const_bytep data, png_size_t length));
 
 /* Write the start of a PNG chunk - length and chunk name. */
-extern PNG_EXPORT(void,png_write_chunk_start) PNGARG((png_structp png_ptr,
-   png_bytep chunk_name, png_uint_32 length));
+PNG_EXPORT(15, void, png_write_chunk_start, (png_structp png_ptr,
+    png_const_bytep chunk_name, png_uint_32 length));
 
 /* Write the data of a PNG chunk started with png_write_chunk_start(). */
-extern PNG_EXPORT(void,png_write_chunk_data) PNGARG((png_structp png_ptr,
-   png_bytep data, png_size_t length));
+PNG_EXPORT(16, void, png_write_chunk_data, (png_structp png_ptr,
+    png_const_bytep data, png_size_t length));
 
 /* Finish a chunk started with png_write_chunk_start() (includes CRC). */
-extern PNG_EXPORT(void,png_write_chunk_end) PNGARG((png_structp png_ptr));
+PNG_EXPORT(17, void, png_write_chunk_end, (png_structp png_ptr));
 
 /* Allocate and initialize the info structure */
-extern PNG_EXPORT(png_infop,png_create_info_struct)
-   PNGARG((png_structp png_ptr));
-
-#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
-/* Initialize the info structure (old interface - DEPRECATED) */
-extern PNG_EXPORT(void,png_info_init) PNGARG((png_infop info_ptr));
-#undef png_info_init
-#define png_info_init(info_ptr) png_info_init_3(&info_ptr,\
-    png_sizeof(png_info));
-#endif
+PNG_EXPORTA(18, png_infop, png_create_info_struct, (png_structp png_ptr),
+    PNG_ALLOCATED);
 
-extern PNG_EXPORT(void,png_info_init_3) PNGARG((png_infopp info_ptr,
+PNG_EXPORT(19, void, png_info_init_3, (png_infopp info_ptr,
     png_size_t png_info_struct_size));
 
 /* Writes all the PNG information before the image. */
-extern PNG_EXPORT(void,png_write_info_before_PLTE) PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
-extern PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
+PNG_EXPORT(20, void, png_write_info_before_PLTE,
+    (png_structp png_ptr, png_infop info_ptr));
+PNG_EXPORT(21, void, png_write_info,
+    (png_structp png_ptr, png_infop info_ptr));
 
-#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
-/* read the information before the actual image data. */
-extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
+/* Read the information before the actual image data. */
+PNG_EXPORT(22, void, png_read_info,
+    (png_structp png_ptr, png_infop info_ptr));
 #endif
 
-#if defined(PNG_TIME_RFC1123_SUPPORTED)
-extern PNG_EXPORT(png_charp,png_convert_to_rfc1123)
-   PNGARG((png_structp png_ptr, png_timep ptime));
+#ifdef PNG_TIME_RFC1123_SUPPORTED
+PNG_EXPORT(23, png_const_charp, png_convert_to_rfc1123,
+    (png_structp png_ptr,
+    png_const_timep ptime));
 #endif
 
-#if !defined(_WIN32_WCE)
-/* "time.h" functions are not supported on WindowsCE */
-#if defined(PNG_WRITE_tIME_SUPPORTED)
-/* convert from a struct tm to png_time */
-extern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime,
-   struct tm FAR * ttime));
+#ifdef PNG_CONVERT_tIME_SUPPORTED
+/* Convert from a struct tm to png_time */
+PNG_EXPORT(24, void, png_convert_from_struct_tm, (png_timep ptime,
+    PNG_CONST struct tm FAR * ttime));
 
-/* convert from time_t to png_time.  Uses gmtime() */
-extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime,
-   time_t ttime));
-#endif /* PNG_WRITE_tIME_SUPPORTED */
-#endif /* _WIN32_WCE */
+/* Convert from time_t to png_time.  Uses gmtime() */
+PNG_EXPORT(25, void, png_convert_from_time_t,
+    (png_timep ptime, time_t ttime));
+#endif /* PNG_CONVERT_tIME_SUPPORTED */
 
-#if defined(PNG_READ_EXPAND_SUPPORTED)
+#ifdef PNG_READ_EXPAND_SUPPORTED
 /* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */
-extern PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr));
-#if !defined(PNG_1_0_X)
-extern PNG_EXPORT(void,png_set_expand_gray_1_2_4_to_8) PNGARG((png_structp
-  png_ptr));
-#endif
-extern PNG_EXPORT(void,png_set_palette_to_rgb) PNGARG((png_structp png_ptr));
-extern PNG_EXPORT(void,png_set_tRNS_to_alpha) PNGARG((png_structp png_ptr));
-#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
-/* Deprecated */
-extern PNG_EXPORT(void,png_set_gray_1_2_4_to_8) PNGARG((png_structp png_ptr));
+PNG_EXPORT(26, void, png_set_expand, (png_structp png_ptr));
+PNG_EXPORT(27, void, png_set_expand_gray_1_2_4_to_8, (png_structp png_ptr));
+PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structp png_ptr));
+PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structp png_ptr));
 #endif
+
+#ifdef PNG_READ_EXPAND_16_SUPPORTED
+/* Expand to 16-bit channels, forces conversion of palette to RGB and expansion
+ * of a tRNS chunk if present.
+ */
+PNG_EXPORT(221, void, png_set_expand_16, (png_structp png_ptr));
 #endif
 
 #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
 /* Use blue, green, red order for pixels. */
-extern PNG_EXPORT(void,png_set_bgr) PNGARG((png_structp png_ptr));
+PNG_EXPORT(30, void, png_set_bgr, (png_structp png_ptr));
 #endif
 
-#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
+#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
 /* Expand the grayscale to 24-bit RGB if necessary. */
-extern PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr));
+PNG_EXPORT(31, void, png_set_gray_to_rgb, (png_structp png_ptr));
 #endif
 
-#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
+#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
 /* Reduce RGB to grayscale. */
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-extern PNG_EXPORT(void,png_set_rgb_to_gray) PNGARG((png_structp png_ptr,
-   int error_action, double red, double green ));
+PNG_FP_EXPORT(32, void, png_set_rgb_to_gray, (png_structp png_ptr,
+    int error_action, double red, double green));
+PNG_FIXED_EXPORT(33, void, png_set_rgb_to_gray_fixed, (png_structp png_ptr,
+    int error_action, png_fixed_point red, png_fixed_point green));
+
+PNG_EXPORT(34, png_byte, png_get_rgb_to_gray_status, (png_const_structp
+    png_ptr));
 #endif
-extern PNG_EXPORT(void,png_set_rgb_to_gray_fixed) PNGARG((png_structp png_ptr,
-   int error_action, png_fixed_point red, png_fixed_point green ));
-extern PNG_EXPORT(png_byte,png_get_rgb_to_gray_status) PNGARG((png_structp
-   png_ptr));
+
+#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED
+PNG_EXPORT(35, void, png_build_grayscale_palette, (int bit_depth,
+    png_colorp palette));
+#endif
+
+#ifdef PNG_READ_ALPHA_MODE_SUPPORTED
+/* How the alpha channel is interpreted - this affects how the color channels of
+ * a PNG file are returned when an alpha channel, or tRNS chunk in a palette
+ * file, is present.
+ *
+ * This has no effect on the way pixels are written into a PNG output
+ * datastream. The color samples in a PNG datastream are never premultiplied
+ * with the alpha samples.
+ *
+ * The default is to return data according to the PNG specification: the alpha
+ * channel is a linear measure of the contribution of the pixel to the
+ * corresponding composited pixel.  The gamma encoded color channels must be
+ * scaled according to the contribution and to do this it is necessary to undo
+ * the encoding, scale the color values, perform the composition and reencode
+ * the values.  This is the 'PNG' mode.
+ *
+ * The alternative is to 'associate' the alpha with the color information by
+ * storing color channel values that have been scaled by the alpha.  The
+ * advantage is that the color channels can be resampled (the image can be
+ * scaled) in this form.  The disadvantage is that normal practice is to store
+ * linear, not (gamma) encoded, values and this requires 16-bit channels for
+ * still images rather than the 8-bit channels that are just about sufficient if
+ * gamma encoding is used.  In addition all non-transparent pixel values,
+ * including completely opaque ones, must be gamma encoded to produce the final
+ * image.  This is the 'STANDARD', 'ASSOCIATED' or 'PREMULTIPLIED' mode (the
+ * latter being the two common names for associated alpha color channels.)
+ *
+ * Since it is not necessary to perform arithmetic on opaque color values so
+ * long as they are not to be resampled and are in the final color space it is
+ * possible to optimize the handling of alpha by storing the opaque pixels in
+ * the PNG format (adjusted for the output color space) while storing partially
+ * opaque pixels in the standard, linear, format.  The accuracy required for
+ * standard alpha composition is relatively low, because the pixels are
+ * isolated, therefore typically the accuracy loss in storing 8-bit linear
+ * values is acceptable.  (This is not true if the alpha channel is used to
+ * simulate transparency over large areas - use 16 bits or the PNG mode in
+ * this case!)  This is the 'OPTIMIZED' mode.  For this mode a pixel is
+ * treated as opaque only if the alpha value is equal to the maximum value.
+ *
+ * The final choice is to gamma encode the alpha channel as well.  This is
+ * broken because, in practice, no implementation that uses this choice
+ * correctly undoes the encoding before handling alpha composition.  Use this
+ * choice only if other serious errors in the software or hardware you use
+ * mandate it; the typical serious error is for dark halos to appear around
+ * opaque areas of the composited PNG image because of arithmetic overflow.
+ *
+ * The API function png_set_alpha_mode specifies which of these choices to use
+ * with an enumerated 'mode' value and the gamma of the required output:
+ */
+#define PNG_ALPHA_PNG           0 /* according to the PNG standard */
+#define PNG_ALPHA_STANDARD      1 /* according to Porter/Duff */
+#define PNG_ALPHA_ASSOCIATED    1 /* as above; this is the normal practice */
+#define PNG_ALPHA_PREMULTIPLIED 1 /* as above */
+#define PNG_ALPHA_OPTIMIZED     2 /* 'PNG' for opaque pixels, else 'STANDARD' */
+#define PNG_ALPHA_BROKEN        3 /* the alpha channel is gamma encoded */
+
+PNG_FP_EXPORT(227, void, png_set_alpha_mode, (png_structp png_ptr, int mode,
+    double output_gamma));
+PNG_FIXED_EXPORT(228, void, png_set_alpha_mode_fixed, (png_structp png_ptr,
+    int mode, png_fixed_point output_gamma));
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_ALPHA_MODE_SUPPORTED)
+/* The output_gamma value is a screen gamma in libpng terminology: it expresses
+ * how to decode the output values, not how they are encoded.  The values used
+ * correspond to the normal numbers used to describe the overall gamma of a
+ * computer display system; for example 2.2 for an sRGB conformant system.  The
+ * values are scaled by 100000 in the _fixed version of the API (so 220000 for
+ * sRGB.)
+ *
+ * The inverse of the value is always used to provide a default for the PNG file
+ * encoding if it has no gAMA chunk and if png_set_gamma() has not been called
+ * to override the PNG gamma information.
+ *
+ * When the ALPHA_OPTIMIZED mode is selected the output gamma is used to encode
+ * opaque pixels however pixels with lower alpha values are not encoded,
+ * regardless of the output gamma setting.
+ *
+ * When the standard Porter Duff handling is requested with mode 1 the output
+ * encoding is set to be linear and the output_gamma value is only relevant
+ * as a default for input data that has no gamma information.  The linear output
+ * encoding will be overridden if png_set_gamma() is called - the results may be
+ * highly unexpected!
+ *
+ * The following numbers are derived from the sRGB standard and the research
+ * behind it.  sRGB is defined to be approximated by a PNG gAMA chunk value of
+ * 0.45455 (1/2.2) for PNG.  The value implicitly includes any viewing
+ * correction required to take account of any differences in the color
+ * environment of the original scene and the intended display environment; the
+ * value expresses how to *decode* the image for display, not how the original
+ * data was *encoded*.
+ *
+ * sRGB provides a peg for the PNG standard by defining a viewing environment.
+ * sRGB itself, and earlier TV standards, actually use a more complex transform
+ * (a linear portion then a gamma 2.4 power law) than PNG can express.  (PNG is
+ * limited to simple power laws.)  By saying that an image for direct display on
+ * an sRGB conformant system should be stored with a gAMA chunk value of 45455
+ * (11.3.3.2 and 11.3.3.5 of the ISO PNG specification) the PNG specification
+ * makes it possible to derive values for other display systems and
+ * environments.
+ *
+ * The Mac value is deduced from the sRGB based on an assumption that the actual
+ * extra viewing correction used in early Mac display systems was implemented as
+ * a power 1.45 lookup table.
+ *
+ * Any system where a programmable lookup table is used or where the behavior of
+ * the final display device characteristics can be changed requires system
+ * specific code to obtain the current characteristic.  However this can be
+ * difficult and most PNG gamma correction only requires an approximate value.
+ *
+ * By default, if png_set_alpha_mode() is not called, libpng assumes that all
+ * values are unencoded, linear, values and that the output device also has a
+ * linear characteristic.  This is only very rarely correct - it is invariably
+ * better to call png_set_alpha_mode() with PNG_DEFAULT_sRGB than rely on the
+ * default if you don't know what the right answer is!
+ *
+ * The special value PNG_GAMMA_MAC_18 indicates an older Mac system (pre Mac OS
+ * 10.6) which used a correction table to implement a somewhat lower gamma on an
+ * otherwise sRGB system.
+ *
+ * Both these values are reserved (not simple gamma values) in order to allow
+ * more precise correction internally in the future.
+ *
+ * NOTE: the following values can be passed to either the fixed or floating
+ * point APIs, but the floating point API will also accept floating point
+ * values.
+ */
+#define PNG_DEFAULT_sRGB -1       /* sRGB gamma and color space */
+#define PNG_GAMMA_MAC_18 -2       /* Old Mac '1.8' gamma and color space */
+#define PNG_GAMMA_sRGB   220000   /* Television standards--matches sRGB gamma */
+#define PNG_GAMMA_LINEAR PNG_FP_1 /* Linear */
 #endif
 
-extern PNG_EXPORT(void,png_build_grayscale_palette) PNGARG((int bit_depth,
-   png_colorp palette));
+/* The following are examples of calls to png_set_alpha_mode to achieve the
+ * required overall gamma correction and, where necessary, alpha
+ * premultiplication.
+ *
+ * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB);
+ *    This is the default libpng handling of the alpha channel - it is not
+ *    pre-multiplied into the color components.  In addition the call states
+ *    that the output is for a sRGB system and causes all PNG files without gAMA
+ *    chunks to be assumed to be encoded using sRGB.
+ *
+ * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC);
+ *    In this case the output is assumed to be something like an sRGB conformant
+ *    display preceeded by a power-law lookup table of power 1.45.  This is how
+ *    early Mac systems behaved.
+ *
+ * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_GAMMA_LINEAR);
+ *    This is the classic Jim Blinn approach and will work in academic
+ *    environments where everything is done by the book.  It has the shortcoming
+ *    of assuming that input PNG data with no gamma information is linear - this
+ *    is unlikely to be correct unless the PNG files where generated locally.
+ *    Most of the time the output precision will be so low as to show
+ *    significant banding in dark areas of the image.
+ *
+ * png_set_expand_16(pp);
+ * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_DEFAULT_sRGB);
+ *    This is a somewhat more realistic Jim Blinn inspired approach.  PNG files
+ *    are assumed to have the sRGB encoding if not marked with a gamma value and
+ *    the output is always 16 bits per component.  This permits accurate scaling
+ *    and processing of the data.  If you know that your input PNG files were
+ *    generated locally you might need to replace PNG_DEFAULT_sRGB with the
+ *    correct value for your system.
+ *
+ * png_set_alpha_mode(pp, PNG_ALPHA_OPTIMIZED, PNG_DEFAULT_sRGB);
+ *    If you just need to composite the PNG image onto an existing background
+ *    and if you control the code that does this you can use the optimization
+ *    setting.  In this case you just copy completely opaque pixels to the
+ *    output.  For pixels that are not completely transparent (you just skip
+ *    those) you do the composition math using png_composite or png_composite_16
+ *    below then encode the resultant 8-bit or 16-bit values to match the output
+ *    encoding.
+ *
+ * Other cases
+ *    If neither the PNG nor the standard linear encoding work for you because
+ *    of the software or hardware you use then you have a big problem.  The PNG
+ *    case will probably result in halos around the image.  The linear encoding
+ *    will probably result in a washed out, too bright, image (it's actually too
+ *    contrasty.)  Try the ALPHA_OPTIMIZED mode above - this will probably
+ *    substantially reduce the halos.  Alternatively try:
+ *
+ * png_set_alpha_mode(pp, PNG_ALPHA_BROKEN, PNG_DEFAULT_sRGB);
+ *    This option will also reduce the halos, but there will be slight dark
+ *    halos round the opaque parts of the image where the background is light.
+ *    In the OPTIMIZED mode the halos will be light halos where the background
+ *    is dark.  Take your pick - the halos are unavoidable unless you can get
+ *    your hardware/software fixed!  (The OPTIMIZED approach is slightly
+ *    faster.)
+ *
+ * When the default gamma of PNG files doesn't match the output gamma.
+ *    If you have PNG files with no gamma information png_set_alpha_mode allows
+ *    you to provide a default gamma, but it also sets the ouput gamma to the
+ *    matching value.  If you know your PNG files have a gamma that doesn't
+ *    match the output you can take advantage of the fact that
+ *    png_set_alpha_mode always sets the output gamma but only sets the PNG
+ *    default if it is not already set:
+ *
+ * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB);
+ * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC);
+ *    The first call sets both the default and the output gamma values, the
+ *    second call overrides the output gamma without changing the default.  This
+ *    is easier than achieving the same effect with png_set_gamma.  You must use
+ *    PNG_ALPHA_PNG for the first call - internal checking in png_set_alpha will
+ *    fire if more than one call to png_set_alpha_mode and png_set_background is
+ *    made in the same read operation, however multiple calls with PNG_ALPHA_PNG
+ *    are ignored.
+ */
 
-#if defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
-extern PNG_EXPORT(void,png_set_strip_alpha) PNGARG((png_structp png_ptr));
+#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
+PNG_EXPORT(36, void, png_set_strip_alpha, (png_structp png_ptr));
 #endif
 
 #if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \
     defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
-extern PNG_EXPORT(void,png_set_swap_alpha) PNGARG((png_structp png_ptr));
+PNG_EXPORT(37, void, png_set_swap_alpha, (png_structp png_ptr));
 #endif
 
 #if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \
     defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
-extern PNG_EXPORT(void,png_set_invert_alpha) PNGARG((png_structp png_ptr));
+PNG_EXPORT(38, void, png_set_invert_alpha, (png_structp png_ptr));
 #endif
 
 #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
 /* Add a filler byte to 8-bit Gray or 24-bit RGB images. */
-extern PNG_EXPORT(void,png_set_filler) PNGARG((png_structp png_ptr,
-   png_uint_32 filler, int flags));
+PNG_EXPORT(39, void, png_set_filler, (png_structp png_ptr, png_uint_32 filler,
+    int flags));
 /* The values of the PNG_FILLER_ defines should NOT be changed */
-#define PNG_FILLER_BEFORE 0
-#define PNG_FILLER_AFTER 1
+#  define PNG_FILLER_BEFORE 0
+#  define PNG_FILLER_AFTER 1
 /* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */
-#if !defined(PNG_1_0_X)
-extern PNG_EXPORT(void,png_set_add_alpha) PNGARG((png_structp png_ptr,
-   png_uint_32 filler, int flags));
-#endif
+PNG_EXPORT(40, void, png_set_add_alpha,
+    (png_structp png_ptr, png_uint_32 filler,
+    int flags));
 #endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */
 
 #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
 /* Swap bytes in 16-bit depth files. */
-extern PNG_EXPORT(void,png_set_swap) PNGARG((png_structp png_ptr));
+PNG_EXPORT(41, void, png_set_swap, (png_structp png_ptr));
 #endif
 
 #if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED)
 /* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */
-extern PNG_EXPORT(void,png_set_packing) PNGARG((png_structp png_ptr));
+PNG_EXPORT(42, void, png_set_packing, (png_structp png_ptr));
 #endif
 
-#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED)
+#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \
+    defined(PNG_WRITE_PACKSWAP_SUPPORTED)
 /* Swap packing order of pixels in bytes. */
-extern PNG_EXPORT(void,png_set_packswap) PNGARG((png_structp png_ptr));
+PNG_EXPORT(43, void, png_set_packswap, (png_structp png_ptr));
 #endif
 
 #if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED)
 /* Converts files to legal bit depths. */
-extern PNG_EXPORT(void,png_set_shift) PNGARG((png_structp png_ptr,
-   png_color_8p true_bits));
+PNG_EXPORT(44, void, png_set_shift, (png_structp png_ptr, png_const_color_8p
+    true_bits));
 #endif
 
 #if defined(PNG_READ_INTERLACING_SUPPORTED) || \
     defined(PNG_WRITE_INTERLACING_SUPPORTED)
-/* Have the code handle the interlacing.  Returns the number of passes. */
-extern PNG_EXPORT(int,png_set_interlace_handling) PNGARG((png_structp png_ptr));
+/* Have the code handle the interlacing.  Returns the number of passes.
+ * MUST be called before png_read_update_info or png_start_read_image,
+ * otherwise it will not have the desired effect.  Note that it is still
+ * necessary to call png_read_row or png_read_rows png_get_image_height
+ * times for each pass.
+*/
+PNG_EXPORT(45, int, png_set_interlace_handling, (png_structp png_ptr));
 #endif
 
 #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)
 /* Invert monochrome files */
-extern PNG_EXPORT(void,png_set_invert_mono) PNGARG((png_structp png_ptr));
+PNG_EXPORT(46, void, png_set_invert_mono, (png_structp png_ptr));
 #endif
 
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
-/* Handle alpha and tRNS by replacing with a background color. */
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-extern PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr,
-   png_color_16p background_color, int background_gamma_code,
-   int need_expand, double background_gamma));
+#ifdef PNG_READ_BACKGROUND_SUPPORTED
+/* Handle alpha and tRNS by replacing with a background color.  Prior to
+ * libpng-1.5.4 this API must not be called before the PNG file header has been
+ * read.  Doing so will result in unexpected behavior and possible warnings or
+ * errors if the PNG file contains a bKGD chunk.
+ */
+PNG_FP_EXPORT(47, void, png_set_background, (png_structp png_ptr,
+    png_const_color_16p background_color, int background_gamma_code,
+    int need_expand, double background_gamma));
+PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structp png_ptr,
+    png_const_color_16p background_color, int background_gamma_code,
+    int need_expand, png_fixed_point background_gamma));
 #endif
-#define PNG_BACKGROUND_GAMMA_UNKNOWN 0
-#define PNG_BACKGROUND_GAMMA_SCREEN  1
-#define PNG_BACKGROUND_GAMMA_FILE    2
-#define PNG_BACKGROUND_GAMMA_UNIQUE  3
+#ifdef PNG_READ_BACKGROUND_SUPPORTED
+#  define PNG_BACKGROUND_GAMMA_UNKNOWN 0
+#  define PNG_BACKGROUND_GAMMA_SCREEN  1
+#  define PNG_BACKGROUND_GAMMA_FILE    2
+#  define PNG_BACKGROUND_GAMMA_UNIQUE  3
 #endif
 
-#if defined(PNG_READ_16_TO_8_SUPPORTED)
-/* strip the second byte of information from a 16-bit depth file. */
-extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr));
+#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
+/* Scale a 16-bit depth file down to 8-bit, accurately. */
+PNG_EXPORT(229, void, png_set_scale_16, (png_structp png_ptr));
 #endif
 
-#if defined(PNG_READ_DITHER_SUPPORTED)
-/* Turn on dithering, and reduce the palette to the number of colors available. */
-extern PNG_EXPORT(void,png_set_dither) PNGARG((png_structp png_ptr,
-   png_colorp palette, int num_palette, int maximum_colors,
-   png_uint_16p histogram, int full_dither));
+#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
+#define PNG_READ_16_TO_8 SUPPORTED /* Name prior to 1.5.4 */
+/* Strip the second byte of information from a 16-bit depth file. */
+PNG_EXPORT(48, void, png_set_strip_16, (png_structp png_ptr));
 #endif
 
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-/* Handle gamma correction. Screen_gamma=(display_exponent) */
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-extern PNG_EXPORT(void,png_set_gamma) PNGARG((png_structp png_ptr,
-   double screen_gamma, double default_file_gamma));
-#endif
+#ifdef PNG_READ_QUANTIZE_SUPPORTED
+/* Turn on quantizing, and reduce the palette to the number of colors
+ * available.
+ */
+PNG_EXPORT(49, void, png_set_quantize,
+    (png_structp png_ptr, png_colorp palette,
+    int num_palette, int maximum_colors, png_const_uint_16p histogram,
+    int full_quantize));
 #endif
 
-#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
-#if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \
-    defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)
-/* Permit or disallow empty PLTE (0: not permitted, 1: permitted) */
-/* Deprecated and will be removed.  Use png_permit_mng_features() instead. */
-extern PNG_EXPORT(void,png_permit_empty_plte) PNGARG((png_structp png_ptr,
-   int empty_plte_permitted));
-#endif
+#ifdef PNG_READ_GAMMA_SUPPORTED
+/* The threshold on gamma processing is configurable but hard-wired into the
+ * library.  The following is the floating point variant.
+ */
+#define PNG_GAMMA_THRESHOLD (PNG_GAMMA_THRESHOLD_FIXED*.00001)
+
+/* Handle gamma correction. Screen_gamma=(display_exponent).
+ * NOTE: this API simply sets the screen and file gamma values. It will
+ * therefore override the value for gamma in a PNG file if it is called after
+ * the file header has been read - use with care  - call before reading the PNG
+ * file for best results!
+ *
+ * These routines accept the same gamma values as png_set_alpha_mode (described
+ * above).  The PNG_GAMMA_ defines and PNG_DEFAULT_sRGB can be passed to either
+ * API (floating point or fixed.)  Notice, however, that the 'file_gamma' value
+ * is the inverse of a 'screen gamma' value.
+ */
+PNG_FP_EXPORT(50, void, png_set_gamma,
+    (png_structp png_ptr, double screen_gamma,
+    double override_file_gamma));
+PNG_FIXED_EXPORT(208, void, png_set_gamma_fixed, (png_structp png_ptr,
+    png_fixed_point screen_gamma, png_fixed_point override_file_gamma));
 #endif
 
-#if defined(PNG_WRITE_FLUSH_SUPPORTED)
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
 /* Set how many lines between output flushes - 0 for no flushing */
-extern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows));
+PNG_EXPORT(51, void, png_set_flush, (png_structp png_ptr, int nrows));
 /* Flush the current PNG output buffer */
-extern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr));
+PNG_EXPORT(52, void, png_write_flush, (png_structp png_ptr));
 #endif
 
-/* optional update palette with requested transformations */
-extern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr));
+/* Optional update palette with requested transformations */
+PNG_EXPORT(53, void, png_start_read_image, (png_structp png_ptr));
 
-/* optional call to update the users info structure */
-extern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
+/* Optional call to update the users info structure */
+PNG_EXPORT(54, void, png_read_update_info,
+    (png_structp png_ptr, png_infop info_ptr));
 
-#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
-/* read one or more rows of image data. */
-extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr,
-   png_bytepp row, png_bytepp display_row, png_uint_32 num_rows));
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
+/* Read one or more rows of image data. */
+PNG_EXPORT(55, void, png_read_rows, (png_structp png_ptr, png_bytepp row,
+    png_bytepp display_row, png_uint_32 num_rows));
 #endif
 
-#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
-/* read a row of data. */
-extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr,
-   png_bytep row,
-   png_bytep display_row));
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
+/* Read a row of data. */
+PNG_EXPORT(56, void, png_read_row, (png_structp png_ptr, png_bytep row,
+    png_bytep display_row));
 #endif
 
-#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
-/* read the whole image into memory at once. */
-extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr,
-   png_bytepp image));
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
+/* Read the whole image into memory at once. */
+PNG_EXPORT(57, void, png_read_image, (png_structp png_ptr, png_bytepp image));
 #endif
 
-/* write a row of image data */
-extern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr,
-   png_bytep row));
+/* Write a row of image data */
+PNG_EXPORT(58, void, png_write_row,
+    (png_structp png_ptr, png_const_bytep row));
 
-/* write a few rows of image data */
-extern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr,
-   png_bytepp row, png_uint_32 num_rows));
+/* Write a few rows of image data: (*row) is not written; however, the type
+ * is declared as writeable to maintain compatibility with previous versions
+ * of libpng and to allow the 'display_row' array from read_rows to be passed
+ * unchanged to write_rows.
+ */
+PNG_EXPORT(59, void, png_write_rows, (png_structp png_ptr, png_bytepp row,
+    png_uint_32 num_rows));
 
-/* write the image data */
-extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr,
-   png_bytepp image));
+/* Write the image data */
+PNG_EXPORT(60, void, png_write_image,
+    (png_structp png_ptr, png_bytepp image));
 
-/* writes the end of the PNG file. */
-extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
+/* Write the end of the PNG file. */
+PNG_EXPORT(61, void, png_write_end,
+    (png_structp png_ptr, png_infop info_ptr));
 
-#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
-/* read the end of the PNG file. */
-extern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
+/* Read the end of the PNG file. */
+PNG_EXPORT(62, void, png_read_end, (png_structp png_ptr, png_infop info_ptr));
 #endif
 
-/* free any memory associated with the png_info_struct */
-extern PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr,
-   png_infopp info_ptr_ptr));
-
-/* free any memory associated with the png_struct and the png_info_structs */
-extern PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp
-   png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr));
+/* Free any memory associated with the png_info_struct */
+PNG_EXPORT(63, void, png_destroy_info_struct, (png_structp png_ptr,
+    png_infopp info_ptr_ptr));
 
-/* free all memory used by the read (old method - NOT DLL EXPORTED) */
-extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_infop end_info_ptr));
+/* Free any memory associated with the png_struct and the png_info_structs */
+PNG_EXPORT(64, void, png_destroy_read_struct, (png_structpp png_ptr_ptr,
+    png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr));
 
-/* free any memory associated with the png_struct and the png_info_structs */
-extern PNG_EXPORT(void,png_destroy_write_struct)
-   PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr));
+/* Free any memory associated with the png_struct and the png_info_structs */
+PNG_EXPORT(65, void, png_destroy_write_struct, (png_structpp png_ptr_ptr,
+    png_infopp info_ptr_ptr));
 
-/* free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */
-extern void png_write_destroy PNGARG((png_structp png_ptr));
+/* Set the libpng method of handling chunk CRC errors */
+PNG_EXPORT(66, void, png_set_crc_action,
+    (png_structp png_ptr, int crit_action, int ancil_action));
 
-/* set the libpng method of handling chunk CRC errors */
-extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr,
-   int crit_action, int ancil_action));
-
-/* Values for png_set_crc_action() to say how to handle CRC errors in
+/* Values for png_set_crc_action() say how to handle CRC errors in
  * ancillary and critical chunks, and whether to use the data contained
  * therein.  Note that it is impossible to "discard" data in a critical
  * chunk.  For versions prior to 0.90, the action was always error/quit,
@@ -1806,11 +1594,11 @@ extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr,
  * header file (zlib.h) for an explination of the compression functions.
  */
 
-/* set the filtering method(s) used by libpng.  Currently, the only valid
+/* Set the filtering method(s) used by libpng.  Currently, the only valid
  * value for "method" is 0.
  */
-extern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method,
-   int filters));
+PNG_EXPORT(67, void, png_set_filter,
+    (png_structp png_ptr, int method, int filters));
 
 /* Flags for png_set_filter() to say which filters to use.  The flags
  * are chosen so that they don't conflict with real filter types
@@ -1836,7 +1624,7 @@ extern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method,
 #define PNG_FILTER_VALUE_PAETH 4
 #define PNG_FILTER_VALUE_LAST  5
 
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) /* EXPERIMENTAL */
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* EXPERIMENTAL */
 /* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_
  * defines, either the default (minimum-sum-of-absolute-differences), or
  * the experimental method (weighted-minimum-sum-of-absolute-differences).
@@ -1865,11 +1653,13 @@ extern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method,
  * the weights and costs are set to 1.0, this degenerates the WEIGHTED method
  * to the UNWEIGHTED method, but with added encoding time/computation.
  */
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-extern PNG_EXPORT(void,png_set_filter_heuristics) PNGARG((png_structp png_ptr,
-   int heuristic_method, int num_weights, png_doublep filter_weights,
-   png_doublep filter_costs));
-#endif
+PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structp png_ptr,
+    int heuristic_method, int num_weights, png_const_doublep filter_weights,
+    png_const_doublep filter_costs));
+PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed,
+    (png_structp png_ptr,
+    int heuristic_method, int num_weights, png_const_fixed_point_p
+    filter_weights, png_const_fixed_point_p filter_costs));
 #endif /*  PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */
 
 /* Heuristic used for row filter selection.  These defines should NOT be
@@ -1880,6 +1670,7 @@ extern PNG_EXPORT(void,png_set_filter_heuristics) PNGARG((png_structp png_ptr,
 #define PNG_FILTER_HEURISTIC_WEIGHTED   2  /* Experimental feature */
 #define PNG_FILTER_HEURISTIC_LAST       3  /* Not a valid value */
 
+#ifdef PNG_WRITE_SUPPORTED
 /* Set the library compression level.  Currently, valid values range from
  * 0 - 9, corresponding directly to the zlib compression levels 0 - 9
  * (0 - no compression, 9 - "maximal" compression).  Note that tests have
@@ -1887,33 +1678,58 @@ extern PNG_EXPORT(void,png_set_filter_heuristics) PNGARG((png_structp png_ptr,
  * for PNG images, and do considerably fewer caclulations.  In the future,
  * these values may not correspond directly to the zlib compression levels.
  */
-extern PNG_EXPORT(void,png_set_compression_level) PNGARG((png_structp png_ptr,
-   int level));
+PNG_EXPORT(69, void, png_set_compression_level,
+    (png_structp png_ptr, int level));
+
+PNG_EXPORT(70, void, png_set_compression_mem_level, (png_structp png_ptr,
+    int mem_level));
 
-extern PNG_EXPORT(void,png_set_compression_mem_level)
-   PNGARG((png_structp png_ptr, int mem_level));
+PNG_EXPORT(71, void, png_set_compression_strategy, (png_structp png_ptr,
+    int strategy));
 
-extern PNG_EXPORT(void,png_set_compression_strategy)
-   PNGARG((png_structp png_ptr, int strategy));
+/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a
+ * smaller value of window_bits if it can do so safely.
+ */
+PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structp png_ptr,
+    int window_bits));
+
+PNG_EXPORT(73, void, png_set_compression_method, (png_structp png_ptr,
+    int method));
+#endif
 
-extern PNG_EXPORT(void,png_set_compression_window_bits)
-   PNGARG((png_structp png_ptr, int window_bits));
+#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED
+/* Also set zlib parameters for compressing non-IDAT chunks */
+PNG_EXPORT(222, void, png_set_text_compression_level,
+    (png_structp png_ptr, int level));
+
+PNG_EXPORT(223, void, png_set_text_compression_mem_level, (png_structp png_ptr,
+    int mem_level));
+
+PNG_EXPORT(224, void, png_set_text_compression_strategy, (png_structp png_ptr,
+    int strategy));
+
+/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a
+ * smaller value of window_bits if it can do so safely.
+ */
+PNG_EXPORT(225, void, png_set_text_compression_window_bits, (png_structp
+    png_ptr, int window_bits));
 
-extern PNG_EXPORT(void,png_set_compression_method) PNGARG((png_structp png_ptr,
-   int method));
+PNG_EXPORT(226, void, png_set_text_compression_method, (png_structp png_ptr,
+    int method));
+#endif /* PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
 
 /* These next functions are called for input/output, memory, and error
  * handling.  They are in the file pngrio.c, pngwio.c, and pngerror.c,
  * and call standard C I/O routines such as fread(), fwrite(), and
  * fprintf().  These functions can be made to use other I/O routines
  * at run time for those applications that need to handle I/O in a
- * different manner by calling png_set_???_fn().  See libpng.txt for
+ * different manner by calling png_set_???_fn().  See libpng-manual.txt for
  * more information.
  */
 
-#if !defined(PNG_NO_STDIO)
+#ifdef PNG_STDIO_SUPPORTED
 /* Initialize the input/output for the PNG file to the default functions. */
-extern PNG_EXPORT(void,png_init_io) PNGARG((png_structp png_ptr, png_FILE_p fp));
+PNG_EXPORT(74, void, png_init_io, (png_structp png_ptr, png_FILE_p fp));
 #endif
 
 /* Replace the (error and abort), and warning functions with user
@@ -1924,128 +1740,155 @@ extern PNG_EXPORT(void,png_init_io) PNGARG((png_structp png_ptr, png_FILE_p fp))
  * default function will be used.
  */
 
-extern PNG_EXPORT(void,png_set_error_fn) PNGARG((png_structp png_ptr,
-   png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn));
+PNG_EXPORT(75, void, png_set_error_fn,
+    (png_structp png_ptr, png_voidp error_ptr,
+    png_error_ptr error_fn, png_error_ptr warning_fn));
 
 /* Return the user pointer associated with the error functions */
-extern PNG_EXPORT(png_voidp,png_get_error_ptr) PNGARG((png_structp png_ptr));
+PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structp png_ptr));
 
 /* Replace the default data output functions with a user supplied one(s).
  * If buffered output is not used, then output_flush_fn can be set to NULL.
  * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time
  * output_flush_fn will be ignored (and thus can be NULL).
+ * It is probably a mistake to use NULL for output_flush_fn if
+ * write_data_fn is not also NULL unless you have built libpng with
+ * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's
+ * default flush function, which uses the standard *FILE structure, will
+ * be used.
  */
-extern PNG_EXPORT(void,png_set_write_fn) PNGARG((png_structp png_ptr,
-   png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn));
+PNG_EXPORT(77, void, png_set_write_fn, (png_structp png_ptr, png_voidp io_ptr,
+    png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn));
 
 /* Replace the default data input function with a user supplied one. */
-extern PNG_EXPORT(void,png_set_read_fn) PNGARG((png_structp png_ptr,
-   png_voidp io_ptr, png_rw_ptr read_data_fn));
+PNG_EXPORT(78, void, png_set_read_fn, (png_structp png_ptr, png_voidp io_ptr,
+    png_rw_ptr read_data_fn));
 
 /* Return the user pointer associated with the I/O functions */
-extern PNG_EXPORT(png_voidp,png_get_io_ptr) PNGARG((png_structp png_ptr));
+PNG_EXPORT(79, png_voidp, png_get_io_ptr, (png_structp png_ptr));
 
-extern PNG_EXPORT(void,png_set_read_status_fn) PNGARG((png_structp png_ptr,
-   png_read_status_ptr read_row_fn));
+PNG_EXPORT(80, void, png_set_read_status_fn, (png_structp png_ptr,
+    png_read_status_ptr read_row_fn));
 
-extern PNG_EXPORT(void,png_set_write_status_fn) PNGARG((png_structp png_ptr,
-   png_write_status_ptr write_row_fn));
+PNG_EXPORT(81, void, png_set_write_status_fn, (png_structp png_ptr,
+    png_write_status_ptr write_row_fn));
 
 #ifdef PNG_USER_MEM_SUPPORTED
 /* Replace the default memory allocation functions with user supplied one(s). */
-extern PNG_EXPORT(void,png_set_mem_fn) PNGARG((png_structp png_ptr,
-   png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn));
+PNG_EXPORT(82, void, png_set_mem_fn, (png_structp png_ptr, png_voidp mem_ptr,
+    png_malloc_ptr malloc_fn, png_free_ptr free_fn));
 /* Return the user pointer associated with the memory functions */
-extern PNG_EXPORT(png_voidp,png_get_mem_ptr) PNGARG((png_structp png_ptr));
+PNG_EXPORT(83, png_voidp, png_get_mem_ptr, (png_const_structp png_ptr));
 #endif
 
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
-    defined(PNG_LEGACY_SUPPORTED)
-extern PNG_EXPORT(void,png_set_read_user_transform_fn) PNGARG((png_structp
-   png_ptr, png_user_transform_ptr read_user_transform_fn));
+#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
+PNG_EXPORT(84, void, png_set_read_user_transform_fn, (png_structp png_ptr,
+    png_user_transform_ptr read_user_transform_fn));
 #endif
 
-#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
-    defined(PNG_LEGACY_SUPPORTED)
-extern PNG_EXPORT(void,png_set_write_user_transform_fn) PNGARG((png_structp
-   png_ptr, png_user_transform_ptr write_user_transform_fn));
+#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
+PNG_EXPORT(85, void, png_set_write_user_transform_fn, (png_structp png_ptr,
+    png_user_transform_ptr write_user_transform_fn));
 #endif
 
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
-    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
-    defined(PNG_LEGACY_SUPPORTED)
-extern PNG_EXPORT(void,png_set_user_transform_info) PNGARG((png_structp
-   png_ptr, png_voidp user_transform_ptr, int user_transform_depth,
-   int user_transform_channels));
+#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED
+PNG_EXPORT(86, void, png_set_user_transform_info, (png_structp png_ptr,
+    png_voidp user_transform_ptr, int user_transform_depth,
+    int user_transform_channels));
 /* Return the user pointer associated with the user transform functions */
-extern PNG_EXPORT(png_voidp,png_get_user_transform_ptr)
-   PNGARG((png_structp png_ptr));
+PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr,
+    (png_const_structp png_ptr));
+#endif
+
+#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED
+/* Return information about the row currently being processed.  Note that these
+ * APIs do not fail but will return unexpected results if called outside a user
+ * transform callback.  Also note that when transforming an interlaced image the
+ * row number is the row number within the sub-image of the interlace pass, so
+ * the value will increase to the height of the sub-image (not the full image)
+ * then reset to 0 for the next pass.
+ *
+ * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to
+ * find the output pixel (x,y) given an interlaced sub-image pixel
+ * (row,col,pass).  (See below for these macros.)
+ */
+PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structp));
+PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structp));
 #endif
 
 #ifdef PNG_USER_CHUNKS_SUPPORTED
-extern PNG_EXPORT(void,png_set_read_user_chunk_fn) PNGARG((png_structp png_ptr,
-   png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn));
-extern PNG_EXPORT(png_voidp,png_get_user_chunk_ptr) PNGARG((png_structp
-   png_ptr));
+PNG_EXPORT(88, void, png_set_read_user_chunk_fn, (png_structp png_ptr,
+    png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn));
+PNG_EXPORT(89, png_voidp, png_get_user_chunk_ptr, (png_const_structp png_ptr));
 #endif
 
 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
 /* Sets the function callbacks for the push reader, and a pointer to a
  * user-defined structure available to the callback functions.
  */
-extern PNG_EXPORT(void,png_set_progressive_read_fn) PNGARG((png_structp png_ptr,
-   png_voidp progressive_ptr,
-   png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn,
-   png_progressive_end_ptr end_fn));
-
-/* returns the user pointer associated with the push read functions */
-extern PNG_EXPORT(png_voidp,png_get_progressive_ptr)
-   PNGARG((png_structp png_ptr));
+PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structp png_ptr,
+    png_voidp progressive_ptr, png_progressive_info_ptr info_fn,
+    png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn));
+
+/* Returns the user pointer associated with the push read functions */
+PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, (png_const_structp png_ptr));
+
+/* Function to be called when data becomes available */
+PNG_EXPORT(92, void, png_process_data,
+    (png_structp png_ptr, png_infop info_ptr,
+    png_bytep buffer, png_size_t buffer_size));
+
+/* A function which may be called *only* within png_process_data to stop the
+ * processing of any more data.  The function returns the number of bytes
+ * remaining, excluding any that libpng has cached internally.  A subsequent
+ * call to png_process_data must supply these bytes again.  If the argument
+ * 'save' is set to true the routine will first save all the pending data and
+ * will always return 0.
+ */
+PNG_EXPORT(219, png_size_t, png_process_data_pause, (png_structp, int save));
 
-/* function to be called when data becomes available */
-extern PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_bytep buffer, png_size_t buffer_size));
+/* A function which may be called *only* outside (after) a call to
+ * png_process_data.  It returns the number of bytes of data to skip in the
+ * input.  Normally it will return 0, but if it returns a non-zero value the
+ * application must skip than number of bytes of input data and pass the
+ * following data to the next call to png_process_data.
+ */
+PNG_EXPORT(220, png_uint_32, png_process_data_skip, (png_structp));
 
-/* function that combines rows.  Not very much different than the
- * png_combine_row() call.  Is this even used?????
+/* Function that combines rows.  'new_row' is a flag that should come from
+ * the callback and be non-NULL if anything needs to be done; the library
+ * stores its own version of the new data internally and ignores the passed
+ * in value.
  */
-extern PNG_EXPORT(void,png_progressive_combine_row) PNGARG((png_structp png_ptr,
-   png_bytep old_row, png_bytep new_row));
+PNG_EXPORT(93, void, png_progressive_combine_row, (png_structp png_ptr,
+    png_bytep old_row, png_const_bytep new_row));
 #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
 
-extern PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr,
-   png_uint_32 size));
+PNG_EXPORTA(94, png_voidp, png_malloc,
+    (png_structp png_ptr, png_alloc_size_t size),
+    PNG_ALLOCATED);
+/* Added at libpng version 1.4.0 */
+PNG_EXPORTA(95, png_voidp, png_calloc,
+    (png_structp png_ptr, png_alloc_size_t size),
+    PNG_ALLOCATED);
 
-#if defined(PNG_1_0_X)
-#  define png_malloc_warn png_malloc
-#else
 /* Added at libpng version 1.2.4 */
-extern PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr,
-   png_uint_32 size));
-#endif
-
-/* frees a pointer allocated by png_malloc() */
-extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr));
+PNG_EXPORTA(96, png_voidp, png_malloc_warn, (png_structp png_ptr,
+    png_alloc_size_t size), PNG_ALLOCATED);
 
-#if defined(PNG_1_0_X)
-/* Function to allocate memory for zlib. */
-extern PNG_EXPORT(voidpf,png_zalloc) PNGARG((voidpf png_ptr, uInt items,
-   uInt size));
-
-/* Function to free memory for zlib */
-extern PNG_EXPORT(void,png_zfree) PNGARG((voidpf png_ptr, voidpf ptr));
-#endif
+/* Frees a pointer allocated by png_malloc() */
+PNG_EXPORT(97, void, png_free, (png_structp png_ptr, png_voidp ptr));
 
 /* Free data that was allocated internally */
-extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_uint_32 free_me, int num));
-#ifdef PNG_FREE_ME_SUPPORTED
+PNG_EXPORT(98, void, png_free_data,
+    (png_structp png_ptr, png_infop info_ptr, png_uint_32 free_me, int num));
+
 /* Reassign responsibility for freeing existing data, whether allocated
  * by libpng or by the application */
-extern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, int freer, png_uint_32 mask));
-#endif
-/* assignments for png_data_freer */
+PNG_EXPORT(99, void, png_data_freer,
+    (png_structp png_ptr, png_infop info_ptr, int freer, png_uint_32 mask));
+
+/* Assignments for png_data_freer */
 #define PNG_DESTROY_WILL_FREE_DATA 1
 #define PNG_SET_WILL_FREE_DATA 1
 #define PNG_USER_WILL_FREE_DATA 2
@@ -2065,38 +1908,59 @@ extern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr,
 #define PNG_FREE_MUL  0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */
 
 #ifdef PNG_USER_MEM_SUPPORTED
-extern PNG_EXPORT(png_voidp,png_malloc_default) PNGARG((png_structp png_ptr,
-   png_uint_32 size));
-extern PNG_EXPORT(void,png_free_default) PNGARG((png_structp png_ptr,
-   png_voidp ptr));
+PNG_EXPORTA(100, png_voidp, png_malloc_default, (png_structp png_ptr,
+    png_alloc_size_t size), PNG_ALLOCATED);
+PNG_EXPORT(101, void, png_free_default, (png_structp png_ptr, png_voidp ptr));
 #endif
 
-extern PNG_EXPORT(png_voidp,png_memcpy_check) PNGARG((png_structp png_ptr,
-   png_voidp s1, png_voidp s2, png_uint_32 size));
-
-extern PNG_EXPORT(png_voidp,png_memset_check) PNGARG((png_structp png_ptr,
-   png_voidp s1, int value, png_uint_32 size));
-
-#if defined(USE_FAR_KEYWORD)  /* memory model conversion function */
-extern void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr,
-   int check));
-#endif /* USE_FAR_KEYWORD */
-
+#ifdef PNG_ERROR_TEXT_SUPPORTED
 /* Fatal error in PNG image of libpng - can't continue */
-extern PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr,
-   png_const_charp error_message));
+PNG_EXPORTA(102, void, png_error,
+    (png_structp png_ptr, png_const_charp error_message),
+    PNG_NORETURN);
 
 /* The same, but the chunk name is prepended to the error string. */
-extern PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr,
-   png_const_charp error_message));
+PNG_EXPORTA(103, void, png_chunk_error, (png_structp png_ptr,
+    png_const_charp error_message), PNG_NORETURN);
+
+#else
+/* Fatal error in PNG image of libpng - can't continue */
+PNG_EXPORTA(104, void, png_err, (png_structp png_ptr), PNG_NORETURN);
+#endif
 
+#ifdef PNG_WARNINGS_SUPPORTED
 /* Non-fatal error in libpng.  Can continue, but may have a problem. */
-extern PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr,
-   png_const_charp warning_message));
+PNG_EXPORT(105, void, png_warning, (png_structp png_ptr,
+    png_const_charp warning_message));
 
 /* Non-fatal error in libpng, chunk name is prepended to message. */
-extern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr,
-   png_const_charp warning_message));
+PNG_EXPORT(106, void, png_chunk_warning, (png_structp png_ptr,
+    png_const_charp warning_message));
+#endif
+
+#ifdef PNG_BENIGN_ERRORS_SUPPORTED
+/* Benign error in libpng.  Can continue, but may have a problem.
+ * User can choose whether to handle as a fatal error or as a warning. */
+#  undef png_benign_error
+PNG_EXPORT(107, void, png_benign_error, (png_structp png_ptr,
+    png_const_charp warning_message));
+
+/* Same, chunk name is prepended to message. */
+#  undef png_chunk_benign_error
+PNG_EXPORT(108, void, png_chunk_benign_error, (png_structp png_ptr,
+    png_const_charp warning_message));
+
+PNG_EXPORT(109, void, png_set_benign_errors,
+    (png_structp png_ptr, int allowed));
+#else
+#  ifdef PNG_ALLOW_BENIGN_ERRORS
+#    define png_benign_error png_warning
+#    define png_chunk_benign_error png_chunk_warning
+#  else
+#    define png_benign_error png_error
+#    define png_chunk_benign_error png_chunk_error
+#  endif
+#endif
 
 /* The png_set_<chunk> functions are for storing values in the png_info_struct.
  * Similarly, the png_get_<chunk> calls are used to read values from the
@@ -2111,322 +1975,338 @@ extern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr,
  * png_info_struct.
  */
 /* Returns "flag" if chunk data is valid in info_ptr. */
-extern PNG_EXPORT(png_uint_32,png_get_valid) PNGARG((png_structp png_ptr,
-png_infop info_ptr, png_uint_32 flag));
+PNG_EXPORT(110, png_uint_32, png_get_valid,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    png_uint_32 flag));
 
 /* Returns number of bytes needed to hold a transformed row. */
-extern PNG_EXPORT(png_uint_32,png_get_rowbytes) PNGARG((png_structp png_ptr,
-png_infop info_ptr));
+PNG_EXPORT(111, png_size_t, png_get_rowbytes, (png_const_structp png_ptr,
+    png_const_infop info_ptr));
 
-#if defined(PNG_INFO_IMAGE_SUPPORTED)
+#ifdef PNG_INFO_IMAGE_SUPPORTED
 /* Returns row_pointers, which is an array of pointers to scanlines that was
-returned from png_read_png(). */
-extern PNG_EXPORT(png_bytepp,png_get_rows) PNGARG((png_structp png_ptr,
-png_infop info_ptr));
+ * returned from png_read_png().
+ */
+PNG_EXPORT(112, png_bytepp, png_get_rows,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
 /* Set row_pointers, which is an array of pointers to scanlines for use
-by png_write_png(). */
-extern PNG_EXPORT(void,png_set_rows) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_bytepp row_pointers));
+ * by png_write_png().
+ */
+PNG_EXPORT(113, void, png_set_rows, (png_structp png_ptr,
+    png_infop info_ptr, png_bytepp row_pointers));
 #endif
 
 /* Returns number of color channels in image. */
-extern PNG_EXPORT(png_byte,png_get_channels) PNGARG((png_structp png_ptr,
-png_infop info_ptr));
+PNG_EXPORT(114, png_byte, png_get_channels,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
 
 #ifdef PNG_EASY_ACCESS_SUPPORTED
 /* Returns image width in pixels. */
-extern PNG_EXPORT(png_uint_32, png_get_image_width) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
+PNG_EXPORT(115, png_uint_32, png_get_image_width, (png_const_structp png_ptr,
+    png_const_infop info_ptr));
 
 /* Returns image height in pixels. */
-extern PNG_EXPORT(png_uint_32, png_get_image_height) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
+PNG_EXPORT(116, png_uint_32, png_get_image_height, (png_const_structp png_ptr,
+    png_const_infop info_ptr));
 
 /* Returns image bit_depth. */
-extern PNG_EXPORT(png_byte, png_get_bit_depth) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
+PNG_EXPORT(117, png_byte, png_get_bit_depth,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
 
 /* Returns image color_type. */
-extern PNG_EXPORT(png_byte, png_get_color_type) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
+PNG_EXPORT(118, png_byte, png_get_color_type, (png_const_structp png_ptr,
+    png_const_infop info_ptr));
 
 /* Returns image filter_type. */
-extern PNG_EXPORT(png_byte, png_get_filter_type) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
+PNG_EXPORT(119, png_byte, png_get_filter_type, (png_const_structp png_ptr,
+    png_const_infop info_ptr));
 
 /* Returns image interlace_type. */
-extern PNG_EXPORT(png_byte, png_get_interlace_type) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
+PNG_EXPORT(120, png_byte, png_get_interlace_type, (png_const_structp png_ptr,
+    png_const_infop info_ptr));
 
 /* Returns image compression_type. */
-extern PNG_EXPORT(png_byte, png_get_compression_type) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
+PNG_EXPORT(121, png_byte, png_get_compression_type, (png_const_structp png_ptr,
+    png_const_infop info_ptr));
 
 /* Returns image resolution in pixels per meter, from pHYs chunk data. */
-extern PNG_EXPORT(png_uint_32, png_get_pixels_per_meter) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
-extern PNG_EXPORT(png_uint_32, png_get_x_pixels_per_meter) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
-extern PNG_EXPORT(png_uint_32, png_get_y_pixels_per_meter) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
+PNG_EXPORT(122, png_uint_32, png_get_pixels_per_meter,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
+PNG_EXPORT(123, png_uint_32, png_get_x_pixels_per_meter,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
+PNG_EXPORT(124, png_uint_32, png_get_y_pixels_per_meter,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
 
 /* Returns pixel aspect ratio, computed from pHYs chunk data.  */
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-extern PNG_EXPORT(float, png_get_pixel_aspect_ratio) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
-#endif
+PNG_FP_EXPORT(125, float, png_get_pixel_aspect_ratio,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
+PNG_FIXED_EXPORT(210, png_fixed_point, png_get_pixel_aspect_ratio_fixed,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
 
 /* Returns image x, y offset in pixels or microns, from oFFs chunk data. */
-extern PNG_EXPORT(png_int_32, png_get_x_offset_pixels) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
-extern PNG_EXPORT(png_int_32, png_get_y_offset_pixels) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
-extern PNG_EXPORT(png_int_32, png_get_x_offset_microns) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
-extern PNG_EXPORT(png_int_32, png_get_y_offset_microns) PNGARG((png_structp
-png_ptr, png_infop info_ptr));
+PNG_EXPORT(126, png_int_32, png_get_x_offset_pixels,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
+PNG_EXPORT(127, png_int_32, png_get_y_offset_pixels,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
+PNG_EXPORT(128, png_int_32, png_get_x_offset_microns,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
+PNG_EXPORT(129, png_int_32, png_get_y_offset_microns,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
 
 #endif /* PNG_EASY_ACCESS_SUPPORTED */
 
 /* Returns pointer to signature string read from PNG header */
-extern PNG_EXPORT(png_bytep,png_get_signature) PNGARG((png_structp png_ptr,
-png_infop info_ptr));
+PNG_EXPORT(130, png_const_bytep, png_get_signature,
+    (png_const_structp png_ptr, png_infop info_ptr));
 
-#if defined(PNG_bKGD_SUPPORTED)
-extern PNG_EXPORT(png_uint_32,png_get_bKGD) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_color_16p *background));
+#ifdef PNG_bKGD_SUPPORTED
+PNG_EXPORT(131, png_uint_32, png_get_bKGD,
+    (png_const_structp png_ptr, png_infop info_ptr,
+    png_color_16p *background));
 #endif
 
-#if defined(PNG_bKGD_SUPPORTED)
-extern PNG_EXPORT(void,png_set_bKGD) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_color_16p background));
+#ifdef PNG_bKGD_SUPPORTED
+PNG_EXPORT(132, void, png_set_bKGD, (png_structp png_ptr, png_infop info_ptr,
+    png_const_color_16p background));
 #endif
 
-#if defined(PNG_cHRM_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-extern PNG_EXPORT(png_uint_32,png_get_cHRM) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, double *white_x, double *white_y, double *red_x,
-   double *red_y, double *green_x, double *green_y, double *blue_x,
-   double *blue_y));
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
-extern PNG_EXPORT(png_uint_32,png_get_cHRM_fixed) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_fixed_point *int_white_x, png_fixed_point
-   *int_white_y, png_fixed_point *int_red_x, png_fixed_point *int_red_y,
-   png_fixed_point *int_green_x, png_fixed_point *int_green_y, png_fixed_point
-   *int_blue_x, png_fixed_point *int_blue_y));
+#ifdef PNG_cHRM_SUPPORTED
+PNG_FP_EXPORT(133, png_uint_32, png_get_cHRM, (png_const_structp png_ptr,
+   png_const_infop info_ptr, double *white_x, double *white_y, double *red_x,
+    double *red_y, double *green_x, double *green_y, double *blue_x,
+    double *blue_y));
+#ifdef PNG_FIXED_POINT_SUPPORTED /* Otherwise not implemented */
+PNG_FIXED_EXPORT(134, png_uint_32, png_get_cHRM_fixed,
+    (png_const_structp png_ptr,
+    png_const_infop info_ptr, png_fixed_point *int_white_x,
+    png_fixed_point *int_white_y, png_fixed_point *int_red_x,
+    png_fixed_point *int_red_y, png_fixed_point *int_green_x,
+    png_fixed_point *int_green_y, png_fixed_point *int_blue_x,
+    png_fixed_point *int_blue_y));
 #endif
 #endif
 
-#if defined(PNG_cHRM_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-extern PNG_EXPORT(void,png_set_cHRM) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, double white_x, double white_y, double red_x,
-   double red_y, double green_x, double green_y, double blue_x, double blue_y));
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
-extern PNG_EXPORT(void,png_set_cHRM_fixed) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_fixed_point int_white_x, png_fixed_point int_white_y,
-   png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
-   int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
-   png_fixed_point int_blue_y));
-#endif
+#ifdef PNG_cHRM_SUPPORTED
+PNG_FP_EXPORT(135, void, png_set_cHRM,
+    (png_structp png_ptr, png_infop info_ptr,
+    double white_x, double white_y, double red_x, double red_y, double green_x,
+    double green_y, double blue_x, double blue_y));
+PNG_FIXED_EXPORT(136, void, png_set_cHRM_fixed, (png_structp png_ptr,
+    png_infop info_ptr, png_fixed_point int_white_x,
+    png_fixed_point int_white_y, png_fixed_point int_red_x,
+    png_fixed_point int_red_y, png_fixed_point int_green_x,
+    png_fixed_point int_green_y, png_fixed_point int_blue_x,
+    png_fixed_point int_blue_y));
 #endif
 
-#if defined(PNG_gAMA_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-extern PNG_EXPORT(png_uint_32,png_get_gAMA) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, double *file_gamma));
-#endif
-extern PNG_EXPORT(png_uint_32,png_get_gAMA_fixed) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_fixed_point *int_file_gamma));
+#ifdef PNG_gAMA_SUPPORTED
+PNG_FP_EXPORT(137, png_uint_32, png_get_gAMA,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    double *file_gamma));
+PNG_FIXED_EXPORT(138, png_uint_32, png_get_gAMA_fixed,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    png_fixed_point *int_file_gamma));
 #endif
 
-#if defined(PNG_gAMA_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-extern PNG_EXPORT(void,png_set_gAMA) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, double file_gamma));
-#endif
-extern PNG_EXPORT(void,png_set_gAMA_fixed) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_fixed_point int_file_gamma));
+#ifdef PNG_gAMA_SUPPORTED
+PNG_FP_EXPORT(139, void, png_set_gAMA, (png_structp png_ptr,
+    png_infop info_ptr, double file_gamma));
+PNG_FIXED_EXPORT(140, void, png_set_gAMA_fixed, (png_structp png_ptr,
+    png_infop info_ptr, png_fixed_point int_file_gamma));
 #endif
 
-#if defined(PNG_hIST_SUPPORTED)
-extern PNG_EXPORT(png_uint_32,png_get_hIST) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_uint_16p *hist));
+#ifdef PNG_hIST_SUPPORTED
+PNG_EXPORT(141, png_uint_32, png_get_hIST,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    png_uint_16p *hist));
 #endif
 
-#if defined(PNG_hIST_SUPPORTED)
-extern PNG_EXPORT(void,png_set_hIST) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_uint_16p hist));
+#ifdef PNG_hIST_SUPPORTED
+PNG_EXPORT(142, void, png_set_hIST, (png_structp png_ptr,
+    png_infop info_ptr, png_const_uint_16p hist));
 #endif
 
-extern PNG_EXPORT(png_uint_32,png_get_IHDR) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_uint_32 *width, png_uint_32 *height,
-   int *bit_depth, int *color_type, int *interlace_method,
-   int *compression_method, int *filter_method));
+PNG_EXPORT(143, png_uint_32, png_get_IHDR,
+    (png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type,
+    int *interlace_method, int *compression_method, int *filter_method));
 
-extern PNG_EXPORT(void,png_set_IHDR) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth,
-   int color_type, int interlace_method, int compression_method,
-   int filter_method));
+PNG_EXPORT(144, void, png_set_IHDR,
+    (png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 width, png_uint_32 height, int bit_depth, int color_type,
+    int interlace_method, int compression_method, int filter_method));
 
-#if defined(PNG_oFFs_SUPPORTED)
-extern PNG_EXPORT(png_uint_32,png_get_oFFs) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y,
-   int *unit_type));
+#ifdef PNG_oFFs_SUPPORTED
+PNG_EXPORT(145, png_uint_32, png_get_oFFs,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type));
 #endif
 
-#if defined(PNG_oFFs_SUPPORTED)
-extern PNG_EXPORT(void,png_set_oFFs) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y,
-   int unit_type));
+#ifdef PNG_oFFs_SUPPORTED
+PNG_EXPORT(146, void, png_set_oFFs,
+    (png_structp png_ptr, png_infop info_ptr,
+    png_int_32 offset_x, png_int_32 offset_y, int unit_type));
 #endif
 
-#if defined(PNG_pCAL_SUPPORTED)
-extern PNG_EXPORT(png_uint_32,png_get_pCAL) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1,
-   int *type, int *nparams, png_charp *units, png_charpp *params));
+#ifdef PNG_pCAL_SUPPORTED
+PNG_EXPORT(147, png_uint_32, png_get_pCAL,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type,
+    int *nparams,
+    png_charp *units, png_charpp *params));
 #endif
 
-#if defined(PNG_pCAL_SUPPORTED)
-extern PNG_EXPORT(void,png_set_pCAL) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1,
-   int type, int nparams, png_charp units, png_charpp params));
+#ifdef PNG_pCAL_SUPPORTED
+PNG_EXPORT(148, void, png_set_pCAL, (png_structp png_ptr,
+    png_infop info_ptr,
+    png_const_charp purpose, png_int_32 X0, png_int_32 X1, int type,
+    int nparams, png_const_charp units, png_charpp params));
 #endif
 
-#if defined(PNG_pHYs_SUPPORTED)
-extern PNG_EXPORT(png_uint_32,png_get_pHYs) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type));
+#ifdef PNG_pHYs_SUPPORTED
+PNG_EXPORT(149, png_uint_32, png_get_pHYs,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type));
 #endif
 
-#if defined(PNG_pHYs_SUPPORTED)
-extern PNG_EXPORT(void,png_set_pHYs) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type));
+#ifdef PNG_pHYs_SUPPORTED
+PNG_EXPORT(150, void, png_set_pHYs,
+    (png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 res_x, png_uint_32 res_y, int unit_type));
 #endif
 
-extern PNG_EXPORT(png_uint_32,png_get_PLTE) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_colorp *palette, int *num_palette));
+PNG_EXPORT(151, png_uint_32, png_get_PLTE,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    png_colorp *palette, int *num_palette));
 
-extern PNG_EXPORT(void,png_set_PLTE) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_colorp palette, int num_palette));
+PNG_EXPORT(152, void, png_set_PLTE,
+    (png_structp png_ptr, png_infop info_ptr,
+    png_const_colorp palette, int num_palette));
 
-#if defined(PNG_sBIT_SUPPORTED)
-extern PNG_EXPORT(png_uint_32,png_get_sBIT) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_color_8p *sig_bit));
+#ifdef PNG_sBIT_SUPPORTED
+PNG_EXPORT(153, png_uint_32, png_get_sBIT,
+    (png_const_structp png_ptr, png_infop info_ptr,
+    png_color_8p *sig_bit));
 #endif
 
-#if defined(PNG_sBIT_SUPPORTED)
-extern PNG_EXPORT(void,png_set_sBIT) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_color_8p sig_bit));
+#ifdef PNG_sBIT_SUPPORTED
+PNG_EXPORT(154, void, png_set_sBIT,
+    (png_structp png_ptr, png_infop info_ptr, png_const_color_8p sig_bit));
 #endif
 
-#if defined(PNG_sRGB_SUPPORTED)
-extern PNG_EXPORT(png_uint_32,png_get_sRGB) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, int *intent));
+#ifdef PNG_sRGB_SUPPORTED
+PNG_EXPORT(155, png_uint_32, png_get_sRGB, (png_const_structp png_ptr,
+    png_const_infop info_ptr, int *file_srgb_intent));
 #endif
 
-#if defined(PNG_sRGB_SUPPORTED)
-extern PNG_EXPORT(void,png_set_sRGB) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, int intent));
-extern PNG_EXPORT(void,png_set_sRGB_gAMA_and_cHRM) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, int intent));
+#ifdef PNG_sRGB_SUPPORTED
+PNG_EXPORT(156, void, png_set_sRGB,
+    (png_structp png_ptr, png_infop info_ptr, int srgb_intent));
+PNG_EXPORT(157, void, png_set_sRGB_gAMA_and_cHRM, (png_structp png_ptr,
+    png_infop info_ptr, int srgb_intent));
 #endif
 
-#if defined(PNG_iCCP_SUPPORTED)
-extern PNG_EXPORT(png_uint_32,png_get_iCCP) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_charpp name, int *compression_type,
-   png_charpp profile, png_uint_32 *proflen));
-   /* Note to maintainer: profile should be png_bytepp */
+#ifdef PNG_iCCP_SUPPORTED
+PNG_EXPORT(158, png_uint_32, png_get_iCCP,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    png_charpp name, int *compression_type, png_bytepp profile,
+    png_uint_32 *proflen));
 #endif
 
-#if defined(PNG_iCCP_SUPPORTED)
-extern PNG_EXPORT(void,png_set_iCCP) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_charp name, int compression_type,
-   png_charp profile, png_uint_32 proflen));
-   /* Note to maintainer: profile should be png_bytep */
+#ifdef PNG_iCCP_SUPPORTED
+PNG_EXPORT(159, void, png_set_iCCP,
+    (png_structp png_ptr, png_infop info_ptr,
+    png_const_charp name, int compression_type, png_const_bytep profile,
+    png_uint_32 proflen));
 #endif
 
-#if defined(PNG_sPLT_SUPPORTED)
-extern PNG_EXPORT(png_uint_32,png_get_sPLT) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_sPLT_tpp entries));
+#ifdef PNG_sPLT_SUPPORTED
+PNG_EXPORT(160, png_uint_32, png_get_sPLT,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    png_sPLT_tpp entries));
 #endif
 
-#if defined(PNG_sPLT_SUPPORTED)
-extern PNG_EXPORT(void,png_set_sPLT) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_sPLT_tp entries, int nentries));
+#ifdef PNG_sPLT_SUPPORTED
+PNG_EXPORT(161, void, png_set_sPLT,
+    (png_structp png_ptr, png_infop info_ptr,
+    png_const_sPLT_tp entries, int nentries));
 #endif
 
-#if defined(PNG_TEXT_SUPPORTED)
+#ifdef PNG_TEXT_SUPPORTED
 /* png_get_text also returns the number of text chunks in *num_text */
-extern PNG_EXPORT(png_uint_32,png_get_text) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_textp *text_ptr, int *num_text));
+PNG_EXPORT(162, png_uint_32, png_get_text,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    png_textp *text_ptr, int *num_text));
 #endif
 
-/*
- *  Note while png_set_text() will accept a structure whose text,
- *  language, and  translated keywords are NULL pointers, the structure
- *  returned by png_get_text will always contain regular
- *  zero-terminated C strings.  They might be empty strings but
- *  they will never be NULL pointers.
+/* Note while png_set_text() will accept a structure whose text,
+ * language, and  translated keywords are NULL pointers, the structure
+ * returned by png_get_text will always contain regular
+ * zero-terminated C strings.  They might be empty strings but
+ * they will never be NULL pointers.
  */
 
-#if defined(PNG_TEXT_SUPPORTED)
-extern PNG_EXPORT(void,png_set_text) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_textp text_ptr, int num_text));
-#endif
-
-#if defined(PNG_tIME_SUPPORTED)
-extern PNG_EXPORT(png_uint_32,png_get_tIME) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_timep *mod_time));
+#ifdef PNG_TEXT_SUPPORTED
+PNG_EXPORT(163, void, png_set_text,
+    (png_structp png_ptr, png_infop info_ptr,
+    png_const_textp text_ptr, int num_text));
 #endif
 
-#if defined(PNG_tIME_SUPPORTED)
-extern PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_timep mod_time));
+#ifdef PNG_tIME_SUPPORTED
+PNG_EXPORT(164, png_uint_32, png_get_tIME,
+    (png_const_structp png_ptr, png_infop info_ptr, png_timep *mod_time));
 #endif
 
-#if defined(PNG_tRNS_SUPPORTED)
-extern PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_bytep *trans, int *num_trans,
-   png_color_16p *trans_values));
+#ifdef PNG_tIME_SUPPORTED
+PNG_EXPORT(165, void, png_set_tIME,
+    (png_structp png_ptr, png_infop info_ptr, png_const_timep mod_time));
 #endif
 
-#if defined(PNG_tRNS_SUPPORTED)
-extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_bytep trans, int num_trans,
-   png_color_16p trans_values));
+#ifdef PNG_tRNS_SUPPORTED
+PNG_EXPORT(166, png_uint_32, png_get_tRNS,
+    (png_const_structp png_ptr, png_infop info_ptr,
+    png_bytep *trans_alpha, int *num_trans, png_color_16p *trans_color));
 #endif
 
-#if defined(PNG_tRNS_SUPPORTED)
+#ifdef PNG_tRNS_SUPPORTED
+PNG_EXPORT(167, void, png_set_tRNS,
+    (png_structp png_ptr, png_infop info_ptr,
+    png_const_bytep trans_alpha, int num_trans,
+    png_const_color_16p trans_color));
 #endif
 
-#if defined(PNG_sCAL_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-extern PNG_EXPORT(png_uint_32,png_get_sCAL) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, int *unit, double *width, double *height));
-#else
-#ifdef PNG_FIXED_POINT_SUPPORTED
-extern PNG_EXPORT(png_uint_32,png_get_sCAL_s) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight));
-#endif
-#endif
+#ifdef PNG_sCAL_SUPPORTED
+PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    int *unit, double *width, double *height));
+#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
+/* NOTE: this API is currently implemented using floating point arithmetic,
+ * consequently it can only be used on systems with floating point support.
+ * In any case the range of values supported by png_fixed_point is small and it
+ * is highly recommended that png_get_sCAL_s be used instead.
+ */
+PNG_FIXED_EXPORT(214, png_uint_32, png_get_sCAL_fixed,
+    (png_structp png_ptr, png_const_infop info_ptr, int *unit,
+    png_fixed_point *width,
+    png_fixed_point *height));
+#endif
+PNG_EXPORT(169, png_uint_32, png_get_sCAL_s,
+    (png_const_structp png_ptr, png_const_infop info_ptr,
+    int *unit, png_charpp swidth, png_charpp sheight));
+
+PNG_FP_EXPORT(170, void, png_set_sCAL,
+    (png_structp png_ptr, png_infop info_ptr,
+    int unit, double width, double height));
+PNG_FIXED_EXPORT(213, void, png_set_sCAL_fixed, (png_structp png_ptr,
+   png_infop info_ptr, int unit, png_fixed_point width,
+   png_fixed_point height));
+PNG_EXPORT(171, void, png_set_sCAL_s,
+    (png_structp png_ptr, png_infop info_ptr,
+    int unit, png_const_charp swidth, png_const_charp sheight));
 #endif /* PNG_sCAL_SUPPORTED */
 
-#if defined(PNG_sCAL_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-extern PNG_EXPORT(void,png_set_sCAL) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, int unit, double width, double height));
-#else
-#ifdef PNG_FIXED_POINT_SUPPORTED
-extern PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, int unit, png_charp swidth, png_charp sheight));
-#endif
-#endif
-#endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */
-
-#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
-/* provide a list of chunks and how they are to be handled, if the built-in
+#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+/* Provide a list of chunks and how they are to be handled, if the built-in
    handling or default unknown chunk handling is not desired.  Any chunks not
    listed will be handled in the default manner.  The IHDR and IEND chunks
    must not be listed.
@@ -2435,101 +2315,49 @@ extern PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr,
            = 2: keep only if safe-to-copy
            = 3: keep even if unsafe-to-copy
 */
-extern PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp
-   png_ptr, int keep, png_bytep chunk_list, int num_chunks));
-extern PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns));
-extern PNG_EXPORT(void, png_set_unknown_chunk_location)
-   PNGARG((png_structp png_ptr, png_infop info_ptr, int chunk, int location));
-extern PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp
-   png_ptr, png_infop info_ptr, png_unknown_chunkpp entries));
-#endif
-#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
-PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep
-   chunk_name));
+PNG_EXPORT(172, void, png_set_keep_unknown_chunks,
+    (png_structp png_ptr, int keep,
+    png_const_bytep chunk_list, int num_chunks));
+PNG_EXPORT(173, int, png_handle_as_unknown, (png_structp png_ptr,
+    png_const_bytep chunk_name));
+#endif
+#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
+PNG_EXPORT(174, void, png_set_unknown_chunks, (png_structp png_ptr,
+    png_infop info_ptr, png_const_unknown_chunkp unknowns,
+    int num_unknowns));
+PNG_EXPORT(175, void, png_set_unknown_chunk_location,
+    (png_structp png_ptr, png_infop info_ptr, int chunk, int location));
+PNG_EXPORT(176, int, png_get_unknown_chunks, (png_const_structp png_ptr,
+    png_const_infop info_ptr, png_unknown_chunkpp entries));
 #endif
 
 /* Png_free_data() will turn off the "valid" flag for anything it frees.
-   If you need to turn it off for a chunk that your application has freed,
-   you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); */
-extern PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr,
-   png_infop info_ptr, int mask));
+ * If you need to turn it off for a chunk that your application has freed,
+ * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK);
+ */
+PNG_EXPORT(177, void, png_set_invalid,
+    (png_structp png_ptr, png_infop info_ptr, int mask));
 
-#if defined(PNG_INFO_IMAGE_SUPPORTED)
+#ifdef PNG_INFO_IMAGE_SUPPORTED
 /* The "params" pointer is currently not used and is for future expansion. */
-extern PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr,
-                        png_infop info_ptr,
-                        int transforms,
-                        png_voidp params));
-extern PNG_EXPORT(void, png_write_png) PNGARG((png_structp png_ptr,
-                        png_infop info_ptr,
-                        int transforms,
-                        png_voidp params));
-#endif
-
-/* Define PNG_DEBUG at compile time for debugging information.  Higher
- * numbers for PNG_DEBUG mean more debugging information.  This has
- * only been added since version 0.95 so it is not implemented throughout
- * libpng yet, but more support will be added as needed.
- */
-#ifdef PNG_DEBUG
-#if (PNG_DEBUG > 0)
-#if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER)
-#include <crtdbg.h>
-#if (PNG_DEBUG > 1)
-#define png_debug(l,m)  _RPT0(_CRT_WARN,m)
-#define png_debug1(l,m,p1)  _RPT1(_CRT_WARN,m,p1)
-#define png_debug2(l,m,p1,p2) _RPT2(_CRT_WARN,m,p1,p2)
-#endif
-#else /* PNG_DEBUG_FILE || !_MSC_VER */
-#ifndef PNG_DEBUG_FILE
-#define PNG_DEBUG_FILE stderr
-#endif /* PNG_DEBUG_FILE */
-#if (PNG_DEBUG > 1)
-#define png_debug(l,m) \
-{ \
-     int num_tabs=l; \
-     fprintf(PNG_DEBUG_FILE,"%s"m,(num_tabs==1 ? "\t" : \
-       (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \
-}
-#define png_debug1(l,m,p1) \
-{ \
-     int num_tabs=l; \
-     fprintf(PNG_DEBUG_FILE,"%s"m,(num_tabs==1 ? "\t" : \
-       (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \
-}
-#define png_debug2(l,m,p1,p2) \
-{ \
-     int num_tabs=l; \
-     fprintf(PNG_DEBUG_FILE,"%s"m,(num_tabs==1 ? "\t" : \
-       (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \
-}
-#endif /* (PNG_DEBUG > 1) */
-#endif /* _MSC_VER */
-#endif /* (PNG_DEBUG > 0) */
-#endif /* PNG_DEBUG */
-#ifndef png_debug
-#define png_debug(l, m)
-#endif
-#ifndef png_debug1
-#define png_debug1(l, m, p1)
-#endif
-#ifndef png_debug2
-#define png_debug2(l, m, p1, p2)
+PNG_EXPORT(178, void, png_read_png, (png_structp png_ptr, png_infop info_ptr,
+    int transforms, png_voidp params));
+PNG_EXPORT(179, void, png_write_png, (png_structp png_ptr, png_infop info_ptr,
+    int transforms, png_voidp params));
 #endif
 
-#if 0
-extern PNG_EXPORT(png_bytep,png_sig_bytes) PNGARG((void));
-#endif
-
-extern PNG_EXPORT(png_charp,png_get_copyright) PNGARG((png_structp png_ptr));
-extern PNG_EXPORT(png_charp,png_get_header_ver) PNGARG((png_structp png_ptr));
-extern PNG_EXPORT(png_charp,png_get_header_version) PNGARG((png_structp png_ptr));
-extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr));
+PNG_EXPORT(180, png_const_charp, png_get_copyright,
+    (png_const_structp png_ptr));
+PNG_EXPORT(181, png_const_charp, png_get_header_ver,
+    (png_const_structp png_ptr));
+PNG_EXPORT(182, png_const_charp, png_get_header_version,
+    (png_const_structp png_ptr));
+PNG_EXPORT(183, png_const_charp, png_get_libpng_ver,
+    (png_const_structp png_ptr));
 
 #ifdef PNG_MNG_FEATURES_SUPPORTED
-extern PNG_EXPORT(png_uint_32,png_permit_mng_features) PNGARG((png_structp
-   png_ptr, png_uint_32 mng_features_permitted));
+PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structp png_ptr,
+    png_uint_32 mng_features_permitted));
 #endif
 
 /* For use in png_set_keep_unknown, added to version 1.2.6 */
@@ -2538,93 +2366,140 @@ extern PNG_EXPORT(png_uint_32,png_permit_mng_features) PNGARG((png_structp
 #define PNG_HANDLE_CHUNK_IF_SAFE      2
 #define PNG_HANDLE_CHUNK_ALWAYS       3
 
-/* Added to version 1.2.0 */
-#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
-#if defined(PNG_MMX_CODE_SUPPORTED)
-#define PNG_ASM_FLAG_MMX_SUPPORT_COMPILED  0x01  /* not user-settable */
-#define PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU    0x02  /* not user-settable */
-#define PNG_ASM_FLAG_MMX_READ_COMBINE_ROW  0x04
-#define PNG_ASM_FLAG_MMX_READ_INTERLACE    0x08
-#define PNG_ASM_FLAG_MMX_READ_FILTER_SUB   0x10
-#define PNG_ASM_FLAG_MMX_READ_FILTER_UP    0x20
-#define PNG_ASM_FLAG_MMX_READ_FILTER_AVG   0x40
-#define PNG_ASM_FLAG_MMX_READ_FILTER_PAETH 0x80
-#define PNG_ASM_FLAGS_INITIALIZED          0x80000000  /* not user-settable */
-
-#define PNG_MMX_READ_FLAGS ( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW  \
-                           | PNG_ASM_FLAG_MMX_READ_INTERLACE    \
-                           | PNG_ASM_FLAG_MMX_READ_FILTER_SUB   \
-                           | PNG_ASM_FLAG_MMX_READ_FILTER_UP    \
-                           | PNG_ASM_FLAG_MMX_READ_FILTER_AVG   \
-                           | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH )
-#define PNG_MMX_WRITE_FLAGS ( 0 )
-
-#define PNG_MMX_FLAGS ( PNG_ASM_FLAG_MMX_SUPPORT_COMPILED \
-                      | PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU   \
-                      | PNG_MMX_READ_FLAGS                \
-                      | PNG_MMX_WRITE_FLAGS )
-
-#define PNG_SELECT_READ   1
-#define PNG_SELECT_WRITE  2
-#endif /* PNG_MMX_CODE_SUPPORTED */
-
-#if !defined(PNG_1_0_X)
-/* pngget.c */
-extern PNG_EXPORT(png_uint_32,png_get_mmx_flagmask)
-   PNGARG((int flag_select, int *compilerID));
-
-/* pngget.c */
-extern PNG_EXPORT(png_uint_32,png_get_asm_flagmask)
-   PNGARG((int flag_select));
-
-/* pngget.c */
-extern PNG_EXPORT(png_uint_32,png_get_asm_flags)
-   PNGARG((png_structp png_ptr));
-
-/* pngget.c */
-extern PNG_EXPORT(png_byte,png_get_mmx_bitdepth_threshold)
-   PNGARG((png_structp png_ptr));
-
-/* pngget.c */
-extern PNG_EXPORT(png_uint_32,png_get_mmx_rowbytes_threshold)
-   PNGARG((png_structp png_ptr));
-
-/* pngset.c */
-extern PNG_EXPORT(void,png_set_asm_flags)
-   PNGARG((png_structp png_ptr, png_uint_32 asm_flags));
-
-/* pngset.c */
-extern PNG_EXPORT(void,png_set_mmx_thresholds)
-   PNGARG((png_structp png_ptr, png_byte mmx_bitdepth_threshold,
-   png_uint_32 mmx_rowbytes_threshold));
-
-#endif /* PNG_1_0_X */
-
-#if !defined(PNG_1_0_X)
-/* png.c, pnggccrd.c, or pngvcrd.c */
-extern PNG_EXPORT(int,png_mmx_support) PNGARG((void));
-#endif /* PNG_ASSEMBLER_CODE_SUPPORTED */
-
 /* Strip the prepended error numbers ("#nnn ") from error and warning
- * messages before passing them to the error or warning handler. */
+ * messages before passing them to the error or warning handler.
+ */
 #ifdef PNG_ERROR_NUMBERS_SUPPORTED
-extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
-   png_ptr, png_uint_32 strip_mode));
+PNG_EXPORT(185, void, png_set_strip_error_numbers,
+    (png_structp png_ptr,
+    png_uint_32 strip_mode));
 #endif
 
-#endif /* PNG_1_0_X */
-
-/* Added at libpng-1.2.6 */
+/* Added in libpng-1.2.6 */
 #ifdef PNG_SET_USER_LIMITS_SUPPORTED
-extern PNG_EXPORT(void,png_set_user_limits) PNGARG((png_structp
-   png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max));
-extern PNG_EXPORT(png_uint_32,png_get_user_width_max) PNGARG((png_structp
-   png_ptr));
-extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp
-   png_ptr));
-#endif
+PNG_EXPORT(186, void, png_set_user_limits, (png_structp png_ptr,
+    png_uint_32 user_width_max, png_uint_32 user_height_max));
+PNG_EXPORT(187, png_uint_32, png_get_user_width_max,
+    (png_const_structp png_ptr));
+PNG_EXPORT(188, png_uint_32, png_get_user_height_max,
+    (png_const_structp png_ptr));
+/* Added in libpng-1.4.0 */
+PNG_EXPORT(189, void, png_set_chunk_cache_max, (png_structp png_ptr,
+    png_uint_32 user_chunk_cache_max));
+PNG_EXPORT(190, png_uint_32, png_get_chunk_cache_max,
+    (png_const_structp png_ptr));
+/* Added in libpng-1.4.1 */
+PNG_EXPORT(191, void, png_set_chunk_malloc_max, (png_structp png_ptr,
+    png_alloc_size_t user_chunk_cache_max));
+PNG_EXPORT(192, png_alloc_size_t, png_get_chunk_malloc_max,
+    (png_const_structp png_ptr));
+#endif
+
+#if defined(PNG_INCH_CONVERSIONS_SUPPORTED)
+PNG_EXPORT(193, png_uint_32, png_get_pixels_per_inch,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
+
+PNG_EXPORT(194, png_uint_32, png_get_x_pixels_per_inch,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
+
+PNG_EXPORT(195, png_uint_32, png_get_y_pixels_per_inch,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
+
+PNG_FP_EXPORT(196, float, png_get_x_offset_inches,
+    (png_const_structp png_ptr, png_const_infop info_ptr));
+#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */
+PNG_FIXED_EXPORT(211, png_fixed_point, png_get_x_offset_inches_fixed,
+    (png_structp png_ptr, png_const_infop info_ptr));
+#endif
+
+PNG_FP_EXPORT(197, float, png_get_y_offset_inches, (png_const_structp png_ptr,
+    png_const_infop info_ptr));
+#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */
+PNG_FIXED_EXPORT(212, png_fixed_point, png_get_y_offset_inches_fixed,
+    (png_structp png_ptr, png_const_infop info_ptr));
+#endif
+
+#  ifdef PNG_pHYs_SUPPORTED
+PNG_EXPORT(198, png_uint_32, png_get_pHYs_dpi, (png_const_structp png_ptr,
+    png_const_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y,
+    int *unit_type));
+#  endif /* PNG_pHYs_SUPPORTED */
+#endif  /* PNG_INCH_CONVERSIONS_SUPPORTED */
+
+/* Added in libpng-1.4.0 */
+#ifdef PNG_IO_STATE_SUPPORTED
+PNG_EXPORT(199, png_uint_32, png_get_io_state, (png_structp png_ptr));
+
+PNG_EXPORTA(200, png_const_bytep, png_get_io_chunk_name,
+    (png_structp png_ptr), PNG_DEPRECATED);
+PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type,
+    (png_const_structp png_ptr));
+
+/* The flags returned by png_get_io_state() are the following: */
+#  define PNG_IO_NONE        0x0000   /* no I/O at this moment */
+#  define PNG_IO_READING     0x0001   /* currently reading */
+#  define PNG_IO_WRITING     0x0002   /* currently writing */
+#  define PNG_IO_SIGNATURE   0x0010   /* currently at the file signature */
+#  define PNG_IO_CHUNK_HDR   0x0020   /* currently at the chunk header */
+#  define PNG_IO_CHUNK_DATA  0x0040   /* currently at the chunk data */
+#  define PNG_IO_CHUNK_CRC   0x0080   /* currently at the chunk crc */
+#  define PNG_IO_MASK_OP     0x000f   /* current operation: reading/writing */
+#  define PNG_IO_MASK_LOC    0x00f0   /* current location: sig/hdr/data/crc */
+#endif /* ?PNG_IO_STATE_SUPPORTED */
+
+/* Interlace support.  The following macros are always defined so that if
+ * libpng interlace handling is turned off the macros may be used to handle
+ * interlaced images within the application.
+ */
+#define PNG_INTERLACE_ADAM7_PASSES 7
+
+/* Two macros to return the first row and first column of the original,
+ * full, image which appears in a given pass.  'pass' is in the range 0
+ * to 6 and the result is in the range 0 to 7.
+ */
+#define PNG_PASS_START_ROW(pass) (((1U&~(pass))<<(3-((pass)>>1)))&7)
+#define PNG_PASS_START_COL(pass) (((1U& (pass))<<(3-(((pass)+1)>>1)))&7)
 
-/* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs */
+/* Two macros to help evaluate the number of rows or columns in each
+ * pass.  This is expressed as a shift - effectively log2 of the number or
+ * rows or columns in each 8x8 tile of the original image.
+ */
+#define PNG_PASS_ROW_SHIFT(pass) ((pass)>2?(8-(pass))>>1:3)
+#define PNG_PASS_COL_SHIFT(pass) ((pass)>1?(7-(pass))>>1:3)
+
+/* Hence two macros to determine the number of rows or columns in a given
+ * pass of an image given its height or width.  In fact these macros may
+ * return non-zero even though the sub-image is empty, because the other
+ * dimension may be empty for a small image.
+ */
+#define PNG_PASS_ROWS(height, pass) (((height)+(((1<<PNG_PASS_ROW_SHIFT(pass))\
+   -1)-PNG_PASS_START_ROW(pass)))>>PNG_PASS_ROW_SHIFT(pass))
+#define PNG_PASS_COLS(width, pass) (((width)+(((1<<PNG_PASS_COL_SHIFT(pass))\
+   -1)-PNG_PASS_START_COL(pass)))>>PNG_PASS_COL_SHIFT(pass))
+
+/* For the reader row callbacks (both progressive and sequential) it is
+ * necessary to find the row in the output image given a row in an interlaced
+ * image, so two more macros:
+ */
+#define PNG_ROW_FROM_PASS_ROW(yIn, pass) \
+   (((yIn)<<PNG_PASS_ROW_SHIFT(pass))+PNG_PASS_START_ROW(pass))
+#define PNG_COL_FROM_PASS_COL(xIn, pass) \
+   (((xIn)<<PNG_PASS_COL_SHIFT(pass))+PNG_PASS_START_COL(pass))
+
+/* Two macros which return a boolean (0 or 1) saying whether the given row
+ * or column is in a particular pass.  These use a common utility macro that
+ * returns a mask for a given pass - the offset 'off' selects the row or
+ * column version.  The mask has the appropriate bit set for each column in
+ * the tile.
+ */
+#define PNG_PASS_MASK(pass,off) ( \
+   ((0x110145AFU>>(((7-(off))-(pass))<<2)) & 0xFU) | \
+   ((0x01145AF0U>>(((7-(off))-(pass))<<2)) & 0xF0U))
+
+#define PNG_ROW_IN_INTERLACE_PASS(y, pass) \
+   ((PNG_PASS_MASK(pass,0) >> ((y)&7)) & 1)
+#define PNG_COL_IN_INTERLACE_PASS(x, pass) \
+   ((PNG_PASS_MASK(pass,1) >> ((x)&7)) & 1)
 
 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
 /* With these routines we avoid an integer divide, which will be slower on
@@ -2639,913 +2514,103 @@ extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp
  * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ]
  */
 
- /* fg and bg should be in `gamma 1.0' space; alpha is the opacity          */
+ /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */
 
-#  define png_composite(composite, fg, alpha, bg)                            \
-     { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) * (png_uint_16)(alpha) \
-                        +        (png_uint_16)(bg)*(png_uint_16)(255 -       \
-                        (png_uint_16)(alpha)) + (png_uint_16)128);           \
+#  define png_composite(composite, fg, alpha, bg)         \
+     { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \
+           * (png_uint_16)(alpha)                         \
+           + (png_uint_16)(bg)*(png_uint_16)(255          \
+           - (png_uint_16)(alpha)) + (png_uint_16)128);   \
        (composite) = (png_byte)((temp + (temp >> 8)) >> 8); }
 
-#  define png_composite_16(composite, fg, alpha, bg)                         \
-     { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) * (png_uint_32)(alpha) \
-                        + (png_uint_32)(bg)*(png_uint_32)(65535L -           \
-                        (png_uint_32)(alpha)) + (png_uint_32)32768L);        \
+#  define png_composite_16(composite, fg, alpha, bg)       \
+     { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg)  \
+           * (png_uint_32)(alpha)                          \
+           + (png_uint_32)(bg)*(png_uint_32)(65535L        \
+           - (png_uint_32)(alpha)) + (png_uint_32)32768L); \
        (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); }
 
-#else  /* standard method using integer division */
+#else  /* Standard method using integer division */
 
-#  define png_composite(composite, fg, alpha, bg)                            \
-     (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) +    \
-       (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) +       \
-       (png_uint_16)127) / 255)
+#  define png_composite(composite, fg, alpha, bg)                          \
+     (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) +  \
+     (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) +       \
+     (png_uint_16)127) / 255)
 
 #  define png_composite_16(composite, fg, alpha, bg)                         \
      (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \
-       (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) +      \
-       (png_uint_32)32767) / (png_uint_32)65535L)
-
+     (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) +        \
+     (png_uint_32)32767) / (png_uint_32)65535L)
 #endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */
 
-/* Inline macros to do direct reads of bytes from the input buffer.  These
- * require that you are using an architecture that uses PNG byte ordering
- * (MSB first) and supports unaligned data storage.  I think that PowerPC
- * in big-endian mode and 680x0 are the only ones that will support this.
- * The x86 line of processors definitely do not.  The png_get_int_32()
- * routine also assumes we are using two's complement format for negative
- * values, which is almost certainly true.
- */
-#if defined(PNG_READ_BIG_ENDIAN_SUPPORTED)
-#  define png_get_uint_32(buf) ( *((png_uint_32p) (buf)))
-#  define png_get_uint_16(buf) ( *((png_uint_16p) (buf)))
-#  define png_get_int_32(buf)  ( *((png_int_32p)  (buf)))
-#else
-extern PNG_EXPORT(png_uint_32,png_get_uint_32) PNGARG((png_bytep buf));
-extern PNG_EXPORT(png_uint_16,png_get_uint_16) PNGARG((png_bytep buf));
-extern PNG_EXPORT(png_int_32,png_get_int_32) PNGARG((png_bytep buf));
-#endif /* !PNG_READ_BIG_ENDIAN_SUPPORTED */
-extern PNG_EXPORT(png_uint_32,png_get_uint_31)
-  PNGARG((png_structp png_ptr, png_bytep buf));
+#ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED
+PNG_EXPORT(201, png_uint_32, png_get_uint_32, (png_const_bytep buf));
+PNG_EXPORT(202, png_uint_16, png_get_uint_16, (png_const_bytep buf));
+PNG_EXPORT(203, png_int_32, png_get_int_32, (png_const_bytep buf));
+#endif
+
+PNG_EXPORT(204, png_uint_32, png_get_uint_31, (png_structp png_ptr,
+    png_const_bytep buf));
 /* No png_get_int_16 -- may be added if there's a real need for it. */
 
-/* Place a 32-bit number into a buffer in PNG byte order (big-endian).
- */
-extern PNG_EXPORT(void,png_save_uint_32)
-   PNGARG((png_bytep buf, png_uint_32 i));
-extern PNG_EXPORT(void,png_save_int_32)
-   PNGARG((png_bytep buf, png_int_32 i));
+/* Place a 32-bit number into a buffer in PNG byte order (big-endian). */
+#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED
+PNG_EXPORT(205, void, png_save_uint_32, (png_bytep buf, png_uint_32 i));
+#endif
+#ifdef PNG_SAVE_INT_32_SUPPORTED
+PNG_EXPORT(206, void, png_save_int_32, (png_bytep buf, png_int_32 i));
+#endif
 
 /* Place a 16-bit number into a buffer in PNG byte order.
  * The parameter is declared unsigned int, not png_uint_16,
  * just to avoid potential problems on pre-ANSI C compilers.
  */
-extern PNG_EXPORT(void,png_save_uint_16)
-   PNGARG((png_bytep buf, unsigned int i));
+#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED
+PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i));
 /* No png_save_int_16 -- may be added if there's a real need for it. */
-
-/* ************************************************************************* */
-
-/* These next functions are used internally in the code.  They generally
- * shouldn't be used unless you are writing code to add or replace some
- * functionality in libpng.  More information about most functions can
- * be found in the files where the functions are located.
- */
-
-
-/* Various modes of operation, that are visible to applications because
- * they are used for unknown chunk location.
- */
-#define PNG_HAVE_IHDR               0x01
-#define PNG_HAVE_PLTE               0x02
-#define PNG_HAVE_IDAT               0x04
-#define PNG_AFTER_IDAT              0x08 /* Have complete zlib datastream */
-#define PNG_HAVE_IEND               0x10
-
-#if defined(PNG_INTERNAL)
-
-/* More modes of operation.  Note that after an init, mode is set to
- * zero automatically when the structure is created.
- */
-#define PNG_HAVE_gAMA               0x20
-#define PNG_HAVE_cHRM               0x40
-#define PNG_HAVE_sRGB               0x80
-#define PNG_HAVE_CHUNK_HEADER      0x100
-#define PNG_WROTE_tIME             0x200
-#define PNG_WROTE_INFO_BEFORE_PLTE 0x400
-#define PNG_BACKGROUND_IS_GRAY     0x800
-#define PNG_HAVE_PNG_SIGNATURE    0x1000
-#define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */
-
-/* flags for the transformations the PNG library does on the image data */
-#define PNG_BGR                0x0001
-#define PNG_INTERLACE          0x0002
-#define PNG_PACK               0x0004
-#define PNG_SHIFT              0x0008
-#define PNG_SWAP_BYTES         0x0010
-#define PNG_INVERT_MONO        0x0020
-#define PNG_DITHER             0x0040
-#define PNG_BACKGROUND         0x0080
-#define PNG_BACKGROUND_EXPAND  0x0100
-                          /*   0x0200 unused */
-#define PNG_16_TO_8            0x0400
-#define PNG_RGBA               0x0800
-#define PNG_EXPAND             0x1000
-#define PNG_GAMMA              0x2000
-#define PNG_GRAY_TO_RGB        0x4000
-#define PNG_FILLER             0x8000L
-#define PNG_PACKSWAP          0x10000L
-#define PNG_SWAP_ALPHA        0x20000L
-#define PNG_STRIP_ALPHA       0x40000L
-#define PNG_INVERT_ALPHA      0x80000L
-#define PNG_USER_TRANSFORM   0x100000L
-#define PNG_RGB_TO_GRAY_ERR  0x200000L
-#define PNG_RGB_TO_GRAY_WARN 0x400000L
-#define PNG_RGB_TO_GRAY      0x600000L  /* two bits, RGB_TO_GRAY_ERR|WARN */
-                       /*    0x800000L     Unused */
-#define PNG_ADD_ALPHA       0x1000000L  /* Added to libpng-1.2.7 */
-#define PNG_EXPAND_tRNS     0x2000000L  /* Added to libpng-1.2.9 */
-                       /*   0x4000000L  unused */
-                       /*   0x8000000L  unused */
-                       /*  0x10000000L  unused */
-                       /*  0x20000000L  unused */
-                       /*  0x40000000L  unused */
-
-/* flags for png_create_struct */
-#define PNG_STRUCT_PNG   0x0001
-#define PNG_STRUCT_INFO  0x0002
-
-/* Scaling factor for filter heuristic weighting calculations */
-#define PNG_WEIGHT_SHIFT 8
-#define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT))
-#define PNG_COST_SHIFT 3
-#define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT))
-
-/* flags for the png_ptr->flags rather than declaring a byte for each one */
-#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY     0x0001
-#define PNG_FLAG_ZLIB_CUSTOM_LEVEL        0x0002
-#define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL    0x0004
-#define PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS  0x0008
-#define PNG_FLAG_ZLIB_CUSTOM_METHOD       0x0010
-#define PNG_FLAG_ZLIB_FINISHED            0x0020
-#define PNG_FLAG_ROW_INIT                 0x0040
-#define PNG_FLAG_FILLER_AFTER             0x0080
-#define PNG_FLAG_CRC_ANCILLARY_USE        0x0100
-#define PNG_FLAG_CRC_ANCILLARY_NOWARN     0x0200
-#define PNG_FLAG_CRC_CRITICAL_USE         0x0400
-#define PNG_FLAG_CRC_CRITICAL_IGNORE      0x0800
-#define PNG_FLAG_FREE_PLTE                0x1000
-#define PNG_FLAG_FREE_TRNS                0x2000
-#define PNG_FLAG_FREE_HIST                0x4000
-#define PNG_FLAG_KEEP_UNKNOWN_CHUNKS      0x8000L
-#define PNG_FLAG_KEEP_UNSAFE_CHUNKS       0x10000L
-#define PNG_FLAG_LIBRARY_MISMATCH         0x20000L
-#define PNG_FLAG_STRIP_ERROR_NUMBERS      0x40000L
-#define PNG_FLAG_STRIP_ERROR_TEXT         0x80000L
-#define PNG_FLAG_MALLOC_NULL_MEM_OK       0x100000L
-#define PNG_FLAG_ADD_ALPHA                0x200000L  /* Added to libpng-1.2.8 */
-#define PNG_FLAG_STRIP_ALPHA              0x400000L  /* Added to libpng-1.2.8 */
-                                  /*      0x800000L  unused */
-                                  /*     0x1000000L  unused */
-                                  /*     0x2000000L  unused */
-                                  /*     0x4000000L  unused */
-                                  /*     0x8000000L  unused */
-                                  /*    0x10000000L  unused */
-                                  /*    0x20000000L  unused */
-                                  /*    0x40000000L  unused */
-
-#define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \
-                                     PNG_FLAG_CRC_ANCILLARY_NOWARN)
-
-#define PNG_FLAG_CRC_CRITICAL_MASK  (PNG_FLAG_CRC_CRITICAL_USE | \
-                                     PNG_FLAG_CRC_CRITICAL_IGNORE)
-
-#define PNG_FLAG_CRC_MASK           (PNG_FLAG_CRC_ANCILLARY_MASK | \
-                                     PNG_FLAG_CRC_CRITICAL_MASK)
-
-/* save typing and make code easier to understand */
-
-#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \
-   abs((int)((c1).green) - (int)((c2).green)) + \
-   abs((int)((c1).blue) - (int)((c2).blue)))
-
-/* Added to libpng-1.2.6 JB */
-#define PNG_ROWBYTES(pixel_bits, width) \
-    ((pixel_bits) >= 8 ? \
-    ((width) * (((png_uint_32)(pixel_bits)) >> 3)) : \
-    (( ((width) * ((png_uint_32)(pixel_bits))) + 7) >> 3) )
-
-/* PNG_OUT_OF_RANGE returns true if value is outside the range
-   ideal-delta..ideal+delta.  Each argument is evaluated twice.
-   "ideal" and "delta" should be constants, normally simple
-   integers, "value" a variable. Added to libpng-1.2.6 JB */
-#define PNG_OUT_OF_RANGE(value, ideal, delta) \
-        ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) )
-
-/* variables declared in png.c - only it needs to define PNG_NO_EXTERN */
-#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
-/* place to hold the signature string for a PNG file. */
-#ifdef PNG_USE_GLOBAL_ARRAYS
-   PNG_EXPORT_VAR (const png_byte FARDATA) png_sig[8];
-#else
-#if 0
-#define png_sig png_sig_bytes(NULL)
-#endif
-#endif
-#endif /* PNG_NO_EXTERN */
-
-/* Constant strings for known chunk types.  If you need to add a chunk,
- * define the name here, and add an invocation of the macro in png.c and
- * wherever it's needed.
- */
-#define PNG_IHDR const png_byte png_IHDR[5] = { 73,  72,  68,  82, '\0'}
-#define PNG_IDAT const png_byte png_IDAT[5] = { 73,  68,  65,  84, '\0'}
-#define PNG_IEND const png_byte png_IEND[5] = { 73,  69,  78,  68, '\0'}
-#define PNG_PLTE const png_byte png_PLTE[5] = { 80,  76,  84,  69, '\0'}
-#define PNG_bKGD const png_byte png_bKGD[5] = { 98,  75,  71,  68, '\0'}
-#define PNG_cHRM const png_byte png_cHRM[5] = { 99,  72,  82,  77, '\0'}
-#define PNG_gAMA const png_byte png_gAMA[5] = {103,  65,  77,  65, '\0'}
-#define PNG_hIST const png_byte png_hIST[5] = {104,  73,  83,  84, '\0'}
-#define PNG_iCCP const png_byte png_iCCP[5] = {105,  67,  67,  80, '\0'}
-#define PNG_iTXt const png_byte png_iTXt[5] = {105,  84,  88, 116, '\0'}
-#define PNG_oFFs const png_byte png_oFFs[5] = {111,  70,  70, 115, '\0'}
-#define PNG_pCAL const png_byte png_pCAL[5] = {112,  67,  65,  76, '\0'}
-#define PNG_sCAL const png_byte png_sCAL[5] = {115,  67,  65,  76, '\0'}
-#define PNG_pHYs const png_byte png_pHYs[5] = {112,  72,  89, 115, '\0'}
-#define PNG_sBIT const png_byte png_sBIT[5] = {115,  66,  73,  84, '\0'}
-#define PNG_sPLT const png_byte png_sPLT[5] = {115,  80,  76,  84, '\0'}
-#define PNG_sRGB const png_byte png_sRGB[5] = {115,  82,  71,  66, '\0'}
-#define PNG_tEXt const png_byte png_tEXt[5] = {116,  69,  88, 116, '\0'}
-#define PNG_tIME const png_byte png_tIME[5] = {116,  73,  77,  69, '\0'}
-#define PNG_tRNS const png_byte png_tRNS[5] = {116,  82,  78,  83, '\0'}
-#define PNG_zTXt const png_byte png_zTXt[5] = {122,  84,  88, 116, '\0'}
-
-#ifdef PNG_USE_GLOBAL_ARRAYS
-PNG_EXPORT_VAR (const png_byte FARDATA) png_IHDR[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_IDAT[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_IEND[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_PLTE[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_bKGD[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_cHRM[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_gAMA[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_hIST[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_iCCP[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_iTXt[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_oFFs[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_pCAL[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_sCAL[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_pHYs[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_sBIT[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_sPLT[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_sRGB[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_tEXt[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_tIME[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_tRNS[5];
-PNG_EXPORT_VAR (const png_byte FARDATA) png_zTXt[5];
-#endif /* PNG_USE_GLOBAL_ARRAYS */
-
-#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
-/* Initialize png_ptr struct for reading, and allocate any other memory.
- * (old interface - DEPRECATED - use png_create_read_struct instead).
- */
-extern PNG_EXPORT(void,png_read_init) PNGARG((png_structp png_ptr));
-#undef png_read_init
-#define png_read_init(png_ptr) png_read_init_3(&png_ptr, \
-    PNG_LIBPNG_VER_STRING,  png_sizeof(png_struct));
-#endif
-
-extern PNG_EXPORT(void,png_read_init_3) PNGARG((png_structpp ptr_ptr,
-    png_const_charp user_png_ver, png_size_t png_struct_size));
-#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
-extern PNG_EXPORT(void,png_read_init_2) PNGARG((png_structp png_ptr,
-    png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t
-    png_info_size));
-#endif
-
-#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
-/* Initialize png_ptr struct for writing, and allocate any other memory.
- * (old interface - DEPRECATED - use png_create_write_struct instead).
- */
-extern PNG_EXPORT(void,png_write_init) PNGARG((png_structp png_ptr));
-#undef png_write_init
-#define png_write_init(png_ptr) png_write_init_3(&png_ptr, \
-    PNG_LIBPNG_VER_STRING, png_sizeof(png_struct));
-#endif
-
-extern PNG_EXPORT(void,png_write_init_3) PNGARG((png_structpp ptr_ptr,
-    png_const_charp user_png_ver, png_size_t png_struct_size));
-extern PNG_EXPORT(void,png_write_init_2) PNGARG((png_structp png_ptr,
-    png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t
-    png_info_size));
-
-/* Allocate memory for an internal libpng struct */
-PNG_EXTERN png_voidp png_create_struct PNGARG((int type));
-
-/* Free memory from internal libpng struct */
-PNG_EXTERN void png_destroy_struct PNGARG((png_voidp struct_ptr));
-
-PNG_EXTERN png_voidp png_create_struct_2 PNGARG((int type, png_malloc_ptr
-  malloc_fn, png_voidp mem_ptr));
-PNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr,
-   png_free_ptr free_fn, png_voidp mem_ptr));
-
-/* Free any memory that info_ptr points to and reset struct. */
-PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
-
-#ifndef PNG_1_0_X
-/* Function to allocate memory for zlib. */
-PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, uInt size));
-
-/* Function to free memory for zlib */
-PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr));
-
-#ifdef PNG_SIZE_T
-/* Function to convert a sizeof an item to png_sizeof item */
-   PNG_EXTERN png_size_t PNGAPI png_convert_size PNGARG((size_t size));
-#endif
-
-/* Next four functions are used internally as callbacks.  PNGAPI is required
- * but not PNG_EXPORT.  PNGAPI added at libpng version 1.2.3. */
-
-PNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr,
-   png_bytep data, png_size_t length));
-
-#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
-PNG_EXTERN void PNGAPI png_push_fill_buffer PNGARG((png_structp png_ptr,
-   png_bytep buffer, png_size_t length));
 #endif
 
-PNG_EXTERN void PNGAPI png_default_write_data PNGARG((png_structp png_ptr,
-   png_bytep data, png_size_t length));
-
-#if defined(PNG_WRITE_FLUSH_SUPPORTED)
-#if !defined(PNG_NO_STDIO)
-PNG_EXTERN void PNGAPI png_default_flush PNGARG((png_structp png_ptr));
-#endif
-#endif
-#else /* PNG_1_0_X */
-#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
-PNG_EXTERN void png_push_fill_buffer PNGARG((png_structp png_ptr,
-   png_bytep buffer, png_size_t length));
-#endif
-#endif /* PNG_1_0_X */
-
-/* Reset the CRC variable */
-PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr));
-
-/* Write the "data" buffer to whatever output you are using. */
-PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, png_bytep data,
-   png_size_t length));
-
-/* Read data from whatever input you are using into the "data" buffer */
-PNG_EXTERN void png_read_data PNGARG((png_structp png_ptr, png_bytep data,
-   png_size_t length));
-
-/* Read bytes into buf, and update png_ptr->crc */
-PNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf,
-   png_size_t length));
-
-/* Decompress data in a chunk that uses compression */
-#if defined(PNG_zTXt_SUPPORTED) || defined(PNG_iTXt_SUPPORTED) || \
-    defined(PNG_iCCP_SUPPORTED) || defined(PNG_sPLT_SUPPORTED)
-PNG_EXTERN png_charp png_decompress_chunk PNGARG((png_structp png_ptr,
-   int comp_type, png_charp chunkdata, png_size_t chunklength,
-   png_size_t prefix_length, png_size_t *data_length));
-#endif
-
-/* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */
-PNG_EXTERN int png_crc_finish PNGARG((png_structp png_ptr, png_uint_32 skip));
-
-/* Read the CRC from the file and compare it to the libpng calculated CRC */
-PNG_EXTERN int png_crc_error PNGARG((png_structp png_ptr));
-
-/* Calculate the CRC over a section of data.  Note that we are only
- * passing a maximum of 64K on systems that have this as a memory limit,
- * since this is the maximum buffer size we can specify.
- */
-PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, png_bytep ptr,
-   png_size_t length));
-
-#if defined(PNG_WRITE_FLUSH_SUPPORTED)
-PNG_EXTERN void png_flush PNGARG((png_structp png_ptr));
-#endif
-
-/* simple function to write the signature */
-PNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr));
-
-/* write various chunks */
-
-/* Write the IHDR chunk, and update the png_struct with the necessary
- * information.
+#ifdef PNG_USE_READ_MACROS
+/* Inline macros to do direct reads of bytes from the input buffer.
+ * The png_get_int_32() routine assumes we are using two's complement
+ * format for negative values, which is almost certainly true.
  */
-PNG_EXTERN void png_write_IHDR PNGARG((png_structp png_ptr, png_uint_32 width,
-   png_uint_32 height,
-   int bit_depth, int color_type, int compression_method, int filter_method,
-   int interlace_method));
-
-PNG_EXTERN void png_write_PLTE PNGARG((png_structp png_ptr, png_colorp palette,
-   png_uint_32 num_pal));
-
-PNG_EXTERN void png_write_IDAT PNGARG((png_structp png_ptr, png_bytep data,
-   png_size_t length));
-
-PNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr));
-
-#if defined(PNG_WRITE_gAMA_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma));
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
-PNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr, png_fixed_point
-    file_gamma));
-#endif
-#endif
-
-#if defined(PNG_WRITE_sBIT_SUPPORTED)
-PNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr, png_color_8p sbit,
-   int color_type));
-#endif
-
-#if defined(PNG_WRITE_cHRM_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-PNG_EXTERN void png_write_cHRM PNGARG((png_structp png_ptr,
-   double white_x, double white_y,
-   double red_x, double red_y, double green_x, double green_y,
-   double blue_x, double blue_y));
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
-PNG_EXTERN void png_write_cHRM_fixed PNGARG((png_structp png_ptr,
-   png_fixed_point int_white_x, png_fixed_point int_white_y,
-   png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
-   int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
-   png_fixed_point int_blue_y));
-#endif
-#endif
-
-#if defined(PNG_WRITE_sRGB_SUPPORTED)
-PNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr,
-   int intent));
-#endif
-
-#if defined(PNG_WRITE_iCCP_SUPPORTED)
-PNG_EXTERN void png_write_iCCP PNGARG((png_structp png_ptr,
-   png_charp name, int compression_type,
-   png_charp profile, int proflen));
-   /* Note to maintainer: profile should be png_bytep */
-#endif
-
-#if defined(PNG_WRITE_sPLT_SUPPORTED)
-PNG_EXTERN void png_write_sPLT PNGARG((png_structp png_ptr,
-   png_sPLT_tp palette));
-#endif
-
-#if defined(PNG_WRITE_tRNS_SUPPORTED)
-PNG_EXTERN void png_write_tRNS PNGARG((png_structp png_ptr, png_bytep trans,
-   png_color_16p values, int number, int color_type));
-#endif
-
-#if defined(PNG_WRITE_bKGD_SUPPORTED)
-PNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr,
-   png_color_16p values, int color_type));
-#endif
-
-#if defined(PNG_WRITE_hIST_SUPPORTED)
-PNG_EXTERN void png_write_hIST PNGARG((png_structp png_ptr, png_uint_16p hist,
-   int num_hist));
-#endif
-
-#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \
-    defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED)
-PNG_EXTERN png_size_t png_check_keyword PNGARG((png_structp png_ptr,
-   png_charp key, png_charpp new_key));
-#endif
-
-#if defined(PNG_WRITE_tEXt_SUPPORTED)
-PNG_EXTERN void png_write_tEXt PNGARG((png_structp png_ptr, png_charp key,
-   png_charp text, png_size_t text_len));
-#endif
-
-#if defined(PNG_WRITE_zTXt_SUPPORTED)
-PNG_EXTERN void png_write_zTXt PNGARG((png_structp png_ptr, png_charp key,
-   png_charp text, png_size_t text_len, int compression));
-#endif
-
-#if defined(PNG_WRITE_iTXt_SUPPORTED)
-PNG_EXTERN void png_write_iTXt PNGARG((png_structp png_ptr,
-   int compression, png_charp key, png_charp lang, png_charp lang_key,
-   png_charp text));
-#endif
-
-#if defined(PNG_TEXT_SUPPORTED)  /* Added at version 1.0.14 and 1.2.4 */
-PNG_EXTERN int png_set_text_2 PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_textp text_ptr, int num_text));
-#endif
-
-#if defined(PNG_WRITE_oFFs_SUPPORTED)
-PNG_EXTERN void png_write_oFFs PNGARG((png_structp png_ptr,
-   png_int_32 x_offset, png_int_32 y_offset, int unit_type));
-#endif
-
-#if defined(PNG_WRITE_pCAL_SUPPORTED)
-PNG_EXTERN void png_write_pCAL PNGARG((png_structp png_ptr, png_charp purpose,
-   png_int_32 X0, png_int_32 X1, int type, int nparams,
-   png_charp units, png_charpp params));
-#endif
-
-#if defined(PNG_WRITE_pHYs_SUPPORTED)
-PNG_EXTERN void png_write_pHYs PNGARG((png_structp png_ptr,
-   png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit,
-   int unit_type));
-#endif
-
-#if defined(PNG_WRITE_tIME_SUPPORTED)
-PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr,
-   png_timep mod_time));
-#endif
-
-#if defined(PNG_WRITE_sCAL_SUPPORTED)
-#if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO)
-PNG_EXTERN void png_write_sCAL PNGARG((png_structp png_ptr,
-   int unit, double width, double height));
-#else
-#ifdef PNG_FIXED_POINT_SUPPORTED
-PNG_EXTERN void png_write_sCAL_s PNGARG((png_structp png_ptr,
-   int unit, png_charp width, png_charp height));
-#endif
-#endif
-#endif
-
-/* Called when finished processing a row of data */
-PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr));
-
-/* Internal use only.   Called before first row of data */
-PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr));
+#  define png_get_uint_32(buf) \
+     (((png_uint_32)(*(buf)) << 24) + \
+      ((png_uint_32)(*((buf) + 1)) << 16) + \
+      ((png_uint_32)(*((buf) + 2)) << 8) + \
+      ((png_uint_32)(*((buf) + 3))))
+
+   /* From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the
+    * function) incorrectly returned a value of type png_uint_32.
+    */
+#  define png_get_uint_16(buf) \
+     ((png_uint_16) \
+      (((unsigned int)(*(buf)) << 8) + \
+       ((unsigned int)(*((buf) + 1)))))
 
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr));
+#  define png_get_int_32(buf) \
+     ((png_int_32)((*(buf) & 0x80) \
+      ? -((png_int_32)((png_get_uint_32(buf) ^ 0xffffffffL) + 1)) \
+      : (png_int_32)png_get_uint_32(buf)))
 #endif
 
-/* combine a row of data, dealing with alpha, etc. if requested */
-PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row,
-   int mask));
-
-#if defined(PNG_READ_INTERLACING_SUPPORTED)
-/* expand an interlaced row */
-/* OLD pre-1.0.9 interface:
-PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info,
-   png_bytep row, int pass, png_uint_32 transformations));
+/* Maintainer: Put new public prototypes here ^, in libpng.3, and project
+ * defs
  */
-PNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr));
-#endif
-
-/* GRR TO DO (2.0 or whenever):  simplify other internal calling interfaces */
-
-#if defined(PNG_WRITE_INTERLACING_SUPPORTED)
-/* grab pixels out of a row for an interlaced pass */
-PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info,
-   png_bytep row, int pass));
-#endif
-
-/* unfilter a row */
-PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr,
-   png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter));
-
-/* Choose the best filter to use and filter the row data */
-PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr,
-   png_row_infop row_info));
-
-/* Write out the filtered row. */
-PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr,
-   png_bytep filtered_row));
-/* finish a row while reading, dealing with interlacing passes, etc. */
-PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr));
-
-/* initialize the row buffers, etc. */
-PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr));
-/* optional call to update the users info structure */
-PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
-
-/* these are the functions that do the transformations */
-#if defined(PNG_READ_FILLER_SUPPORTED)
-PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info,
-   png_bytep row, png_uint_32 filler, png_uint_32 flags));
-#endif
-
-#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED)
-PNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info,
-   png_bytep row));
-#endif
-
-#if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
-PNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info,
-   png_bytep row));
-#endif
-
-#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED)
-PNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info,
-   png_bytep row));
-#endif
-
-#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
-PNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info,
-   png_bytep row));
-#endif
-
-#if defined(PNG_WRITE_FILLER_SUPPORTED) || \
-    defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
-PNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info,
-   png_bytep row, png_uint_32 flags));
-#endif
-
-#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
-PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info, png_bytep row));
-#endif
-
-#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED)
-PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info, png_bytep row));
-#endif
-
-#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
-PNG_EXTERN int png_do_rgb_to_gray PNGARG((png_structp png_ptr, png_row_infop
-   row_info, png_bytep row));
-#endif
-
-#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
-PNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info,
-   png_bytep row));
-#endif
-
-#if defined(PNG_READ_PACK_SUPPORTED)
-PNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info, png_bytep row));
-#endif
-
-#if defined(PNG_READ_SHIFT_SUPPORTED)
-PNG_EXTERN void png_do_unshift PNGARG((png_row_infop row_info, png_bytep row,
-   png_color_8p sig_bits));
-#endif
-
-#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)
-PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info, png_bytep row));
-#endif
-
-#if defined(PNG_READ_16_TO_8_SUPPORTED)
-PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, png_bytep row));
-#endif
-
-#if defined(PNG_READ_DITHER_SUPPORTED)
-PNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info,
-   png_bytep row, png_bytep palette_lookup, png_bytep dither_lookup));
 
-#  if defined(PNG_CORRECT_PALETTE_SUPPORTED)
-PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr,
-   png_colorp palette, int num_palette));
-#  endif
-#endif
-
-#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
-PNG_EXTERN void png_do_bgr PNGARG((png_row_infop row_info, png_bytep row));
-#endif
-
-#if defined(PNG_WRITE_PACK_SUPPORTED)
-PNG_EXTERN void png_do_pack PNGARG((png_row_infop row_info,
-   png_bytep row, png_uint_32 bit_depth));
-#endif
-
-#if defined(PNG_WRITE_SHIFT_SUPPORTED)
-PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, png_bytep row,
-   png_color_8p bit_depth));
-#endif
-
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,
-   png_color_16p trans_values, png_color_16p background,
-   png_color_16p background_1,
-   png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1,
-   png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1,
-   png_uint_16pp gamma_16_to_1, int gamma_shift));
-#else
-PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,
-   png_color_16p trans_values, png_color_16p background));
-#endif
-#endif
-
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-PNG_EXTERN void png_do_gamma PNGARG((png_row_infop row_info, png_bytep row,
-   png_bytep gamma_table, png_uint_16pp gamma_16_table,
-   int gamma_shift));
-#endif
-
-#if defined(PNG_READ_EXPAND_SUPPORTED)
-PNG_EXTERN void png_do_expand_palette PNGARG((png_row_infop row_info,
-   png_bytep row, png_colorp palette, png_bytep trans, int num_trans));
-PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info,
-   png_bytep row, png_color_16p trans_value));
-#endif
-
-/* The following decodes the appropriate chunks, and does error correction,
- * then calls the appropriate callback for the chunk if it is valid.
+/* The last ordinal number (this is the *last* one already used; the next
+ * one to use is one more than this.)  Maintainer, remember to add an entry to
+ * scripts/symbols.def as well.
  */
-
-/* decode the IHDR chunk */
-PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-PNG_EXTERN void png_handle_IEND PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-
-#if defined(PNG_READ_bKGD_SUPPORTED)
-PNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_cHRM_SUPPORTED)
-PNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_gAMA_SUPPORTED)
-PNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_hIST_SUPPORTED)
-PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_iCCP_SUPPORTED)
-extern void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif /* PNG_READ_iCCP_SUPPORTED */
-
-#if defined(PNG_READ_iTXt_SUPPORTED)
-PNG_EXTERN void png_handle_iTXt PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_oFFs_SUPPORTED)
-PNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_pCAL_SUPPORTED)
-PNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_pHYs_SUPPORTED)
-PNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_sBIT_SUPPORTED)
-PNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
+#ifdef PNG_EXPORT_LAST_ORDINAL
+  PNG_EXPORT_LAST_ORDINAL(229);
 #endif
 
-#if defined(PNG_READ_sCAL_SUPPORTED)
-PNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_sPLT_SUPPORTED)
-extern void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif /* PNG_READ_sPLT_SUPPORTED */
-
-#if defined(PNG_READ_sRGB_SUPPORTED)
-PNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_tEXt_SUPPORTED)
-PNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_tIME_SUPPORTED)
-PNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_tRNS_SUPPORTED)
-PNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-#if defined(PNG_READ_zTXt_SUPPORTED)
-PNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 length));
-#endif
-
-PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_uint_32 length));
-
-PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr,
-   png_bytep chunk_name));
-
-/* handle the transformations for reading and writing */
-PNG_EXTERN void png_do_read_transformations PNGARG((png_structp png_ptr));
-PNG_EXTERN void png_do_write_transformations PNGARG((png_structp png_ptr));
-
-PNG_EXTERN void png_init_read_transformations PNGARG((png_structp png_ptr));
-
-#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
-PNG_EXTERN void png_push_read_chunk PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
-PNG_EXTERN void png_push_read_sig PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
-PNG_EXTERN void png_push_check_crc PNGARG((png_structp png_ptr));
-PNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr,
-   png_uint_32 length));
-PNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr));
-PNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr));
-PNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr,
-   png_bytep buffer, png_size_t buffer_length));
-PNG_EXTERN void png_push_read_IDAT PNGARG((png_structp png_ptr));
-PNG_EXTERN void png_process_IDAT_data PNGARG((png_structp png_ptr,
-   png_bytep buffer, png_size_t buffer_length));
-PNG_EXTERN void png_push_process_row PNGARG((png_structp png_ptr));
-PNG_EXTERN void png_push_handle_unknown PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_uint_32 length));
-PNG_EXTERN void png_push_have_info PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
-PNG_EXTERN void png_push_have_end PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
-PNG_EXTERN void png_push_have_row PNGARG((png_structp png_ptr, png_bytep row));
-PNG_EXTERN void png_push_read_end PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
-PNG_EXTERN void png_process_some_data PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
-PNG_EXTERN void png_read_push_finish_row PNGARG((png_structp png_ptr));
-#if defined(PNG_READ_tEXt_SUPPORTED)
-PNG_EXTERN void png_push_handle_tEXt PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_uint_32 length));
-PNG_EXTERN void png_push_read_tEXt PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
-#endif
-#if defined(PNG_READ_zTXt_SUPPORTED)
-PNG_EXTERN void png_push_handle_zTXt PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_uint_32 length));
-PNG_EXTERN void png_push_read_zTXt PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
-#endif
-#if defined(PNG_READ_iTXt_SUPPORTED)
-PNG_EXTERN void png_push_handle_iTXt PNGARG((png_structp png_ptr,
-   png_infop info_ptr, png_uint_32 length));
-PNG_EXTERN void png_push_read_iTXt PNGARG((png_structp png_ptr,
-   png_infop info_ptr));
-#endif
-
-#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
-
-#ifdef PNG_MNG_FEATURES_SUPPORTED
-PNG_EXTERN void png_do_read_intrapixel PNGARG((png_row_infop row_info,
-   png_bytep row));
-PNG_EXTERN void png_do_write_intrapixel PNGARG((png_row_infop row_info,
-   png_bytep row));
-#endif
-
-#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
-#if defined(PNG_MMX_CODE_SUPPORTED)
-/* png.c */ /* PRIVATE */
-PNG_EXTERN void png_init_mmx_flags PNGARG((png_structp png_ptr));
-#endif
-#endif
-
-#if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED)
-PNG_EXTERN png_uint_32 png_get_pixels_per_inch PNGARG((png_structp png_ptr,
-png_infop info_ptr));
-
-PNG_EXTERN png_uint_32 png_get_x_pixels_per_inch PNGARG((png_structp png_ptr,
-png_infop info_ptr));
-
-PNG_EXTERN png_uint_32 png_get_y_pixels_per_inch PNGARG((png_structp png_ptr,
-png_infop info_ptr));
-
-PNG_EXTERN float png_get_x_offset_inches PNGARG((png_structp png_ptr,
-png_infop info_ptr));
-
-PNG_EXTERN float png_get_y_offset_inches PNGARG((png_structp png_ptr,
-png_infop info_ptr));
-
-#if defined(PNG_pHYs_SUPPORTED)
-PNG_EXTERN png_uint_32 png_get_pHYs_dpi PNGARG((png_structp png_ptr,
-png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type));
-#endif /* PNG_pHYs_SUPPORTED */
-#endif  /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */
-
-/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
-
-#endif /* PNG_INTERNAL */
-
 #ifdef __cplusplus
 }
 #endif
 
 #endif /* PNG_VERSION_INFO_ONLY */
-/* do not put anything past this line */
+/* Do not put anything past this line */
 #endif /* PNG_H */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngconf.h b/jdk/src/share/native/sun/awt/libpng/pngconf.h
index 868cdcd..083e90b 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngconf.h
+++ b/jdk/src/share/native/sun/awt/libpng/pngconf.h
@@ -29,11 +29,16 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * libpng version 1.2.18 - May 15, 2007
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * libpng version 1.5.4 - July 7, 2011
+ *
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ *
  */
 
 /* Any machine specific code is near the front of this file, so if you
@@ -45,244 +50,57 @@
 #ifndef PNGCONF_H
 #define PNGCONF_H
 
-#define PNG_1_2_X
-
-/*
- * PNG_USER_CONFIG has to be defined on the compiler command line. This
- * includes the resource compiler for Windows DLL configurations.
+#ifndef PNG_BUILDING_SYMBOL_TABLE
+/* PNG_NO_LIMITS_H may be used to turn off the use of the standard C
+ * definition file for  machine specific limits, this may impact the
+ * correctness of the definitons below (see uses of INT_MAX).
  */
-#ifdef PNG_USER_CONFIG
-#  ifndef PNG_USER_PRIVATEBUILD
-#    define PNG_USER_PRIVATEBUILD
+#  ifndef PNG_NO_LIMITS_H
+#    include <limits.h>
 #  endif
-#include "pngusr.h"
-#endif
-
-/* PNG_CONFIGURE_LIBPNG is set by the "configure" script. */
-#ifdef PNG_CONFIGURE_LIBPNG
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#endif
-
-/*
- * Added at libpng-1.2.8
- *
- * If you create a private DLL you need to define in "pngusr.h" the followings:
- * #define PNG_USER_PRIVATEBUILD <Describes by whom and why this version of
- *        the DLL was built>
- *  e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons."
- * #define PNG_USER_DLLFNAME_POSTFIX <two-letter postfix that serve to
- *        distinguish your DLL from those of the official release. These
- *        correspond to the trailing letters that come after the version
- *        number and must match your private DLL name>
- *  e.g. // private DLL "libpng13gx.dll"
- *       #define PNG_USER_DLLFNAME_POSTFIX "gx"
- *
- * The following macros are also at your disposal if you want to complete the
- * DLL VERSIONINFO structure.
- * - PNG_USER_VERSIONINFO_COMMENTS
- * - PNG_USER_VERSIONINFO_COMPANYNAME
- * - PNG_USER_VERSIONINFO_LEGALTRADEMARKS
- */
-
-#ifdef __STDC__
-#ifdef SPECIALBUILD
-#  pragma message("PNG_LIBPNG_SPECIALBUILD (and deprecated SPECIALBUILD)\
- are now LIBPNG reserved macros. Use PNG_USER_PRIVATEBUILD instead.")
-#endif
-
-#ifdef PRIVATEBUILD
-# pragma message("PRIVATEBUILD is deprecated.\
- Use PNG_USER_PRIVATEBUILD instead.")
-# define PNG_USER_PRIVATEBUILD PRIVATEBUILD
-#endif
-#endif /* __STDC__ */
-
-#ifndef PNG_VERSION_INFO_ONLY
-
-/* End of material added to libpng-1.2.8 */
 
-/* This is the size of the compression buffer, and thus the size of
- * an IDAT chunk.  Make this whatever size you feel is best for your
- * machine.  One of these will be allocated per png_struct.  When this
- * is full, it writes the data to the disk, and does some other
- * calculations.  Making this an extremely small size will slow
- * the library down, but you may want to experiment to determine
- * where it becomes significant, if you are concerned with memory
- * usage.  Note that zlib allocates at least 32Kb also.  For readers,
- * this describes the size of the buffer available to read the data in.
- * Unless this gets smaller than the size of a row (compressed),
- * it should not make much difference how big this is.
+/* For the memory copy APIs (i.e. the standard definitions of these),
+ * because this file defines png_memcpy and so on the base APIs must
+ * be defined here.
  */
-
-#ifndef PNG_ZBUF_SIZE
-#  define PNG_ZBUF_SIZE 8192
-#endif
-
-/* Enable if you want a write-only libpng */
-
-#ifndef PNG_NO_READ_SUPPORTED
-#  define PNG_READ_SUPPORTED
-#endif
-
-/* Enable if you want a read-only libpng */
-
-#ifndef PNG_NO_WRITE_SUPPORTED
-#  define PNG_WRITE_SUPPORTED
-#endif
-
-/* Enabled by default in 1.2.0.  You can disable this if you don't need to
-   support PNGs that are embedded in MNG datastreams */
-#if !defined(PNG_1_0_X) && !defined(PNG_NO_MNG_FEATURES)
-#  ifndef PNG_MNG_FEATURES_SUPPORTED
-#    define PNG_MNG_FEATURES_SUPPORTED
+#  ifdef BSD
+#    include <strings.h>
+#  else
+#    include <string.h>
 #  endif
-#endif
 
-#ifndef PNG_NO_FLOATING_POINT_SUPPORTED
-#  ifndef PNG_FLOATING_POINT_SUPPORTED
-#    define PNG_FLOATING_POINT_SUPPORTED
+/* For png_FILE_p - this provides the standard definition of a
+ * FILE
+ */
+#  ifdef PNG_STDIO_SUPPORTED
+#    include <stdio.h>
 #  endif
 #endif
 
-/* If you are running on a machine where you cannot allocate more
- * than 64K of memory at once, uncomment this.  While libpng will not
- * normally need that much memory in a chunk (unless you load up a very
- * large file), zlib needs to know how big of a chunk it can use, and
- * libpng thus makes sure to check any memory allocation to verify it
- * will fit into memory.
-#define PNG_MAX_MALLOC_64K
+/* This controls optimization of the reading of 16 and 32 bit values
+ * from PNG files.  It can be set on a per-app-file basis - it
+ * just changes whether a macro is used to the function is called.
+ * The library builder sets the default, if read functions are not
+ * built into the library the macro implementation is forced on.
  */
-#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K)
-#  define PNG_MAX_MALLOC_64K
+#ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED
+#  define PNG_USE_READ_MACROS
 #endif
-
-/* Special munging to support doing things the 'cygwin' way:
- * 'Normal' png-on-win32 defines/defaults:
- *   PNG_BUILD_DLL -- building dll
- *   PNG_USE_DLL   -- building an application, linking to dll
- *   (no define)   -- building static library, or building an
- *                    application and linking to the static lib
- * 'Cygwin' defines/defaults:
- *   PNG_BUILD_DLL -- (ignored) building the dll
- *   (no define)   -- (ignored) building an application, linking to the dll
- *   PNG_STATIC    -- (ignored) building the static lib, or building an
- *                    application that links to the static lib.
- *   ALL_STATIC    -- (ignored) building various static libs, or building an
- *                    application that links to the static libs.
- * Thus,
- * a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and
- * this bit of #ifdefs will define the 'correct' config variables based on
- * that. If a cygwin user *wants* to define 'PNG_USE_DLL' that's okay, but
- * unnecessary.
- *
- * Also, the precedence order is:
- *   ALL_STATIC (since we can't #undef something outside our namespace)
- *   PNG_BUILD_DLL
- *   PNG_STATIC
- *   (nothing) == PNG_USE_DLL
- *
- * CYGWIN (2002-01-20): The preceding is now obsolete. With the advent
- *   of auto-import in binutils, we no longer need to worry about
- *   __declspec(dllexport) / __declspec(dllimport) and friends.  Therefore,
- *   we don't need to worry about PNG_STATIC or ALL_STATIC when it comes
- *   to __declspec() stuff.  However, we DO need to worry about
- *   PNG_BUILD_DLL and PNG_STATIC because those change some defaults
- *   such as CONSOLE_IO and whether GLOBAL_ARRAYS are allowed.
- */
-#if defined(__CYGWIN__)
-#  if defined(ALL_STATIC)
-#    if defined(PNG_BUILD_DLL)
-#      undef PNG_BUILD_DLL
-#    endif
-#    if defined(PNG_USE_DLL)
-#      undef PNG_USE_DLL
-#    endif
-#    if defined(PNG_DLL)
-#      undef PNG_DLL
-#    endif
-#    if !defined(PNG_STATIC)
-#      define PNG_STATIC
-#    endif
-#  else
-#    if defined (PNG_BUILD_DLL)
-#      if defined(PNG_STATIC)
-#        undef PNG_STATIC
-#      endif
-#      if defined(PNG_USE_DLL)
-#        undef PNG_USE_DLL
-#      endif
-#      if !defined(PNG_DLL)
-#        define PNG_DLL
-#      endif
-#    else
-#      if defined(PNG_STATIC)
-#        if defined(PNG_USE_DLL)
-#          undef PNG_USE_DLL
-#        endif
-#        if defined(PNG_DLL)
-#          undef PNG_DLL
-#        endif
-#      else
-#        if !defined(PNG_USE_DLL)
-#          define PNG_USE_DLL
-#        endif
-#        if !defined(PNG_DLL)
-#          define PNG_DLL
-#        endif
-#      endif
-#    endif
+#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS)
+#  if PNG_DEFAULT_READ_MACROS
+#    define PNG_USE_READ_MACROS
 #  endif
 #endif
 
-/* This protects us against compilers that run on a windowing system
- * and thus don't have or would rather us not use the stdio types:
- * stdin, stdout, and stderr.  The only one currently used is stderr
- * in png_error() and png_warning().  #defining PNG_NO_CONSOLE_IO will
- * prevent these from being compiled and used. #defining PNG_NO_STDIO
- * will also prevent these, plus will prevent the entire set of stdio
- * macros and functions (FILE *, printf, etc.) from being compiled and used,
- * unless (PNG_DEBUG > 0) has been #defined.
+/* COMPILER SPECIFIC OPTIONS.
  *
- * #define PNG_NO_CONSOLE_IO
- * #define PNG_NO_STDIO
+ * These options are provided so that a variety of difficult compilers
+ * can be used.  Some are fixed at build time (e.g. PNG_API_RULE
+ * below) but still have compiler specific implementations, others
+ * may be changed on a per-file basis when compiling against libpng.
  */
 
-#if defined(_WIN32_WCE)
-#  include <windows.h>
-   /* Console I/O functions are not supported on WindowsCE */
-#  define PNG_NO_CONSOLE_IO
-#  ifdef PNG_DEBUG
-#    undef PNG_DEBUG
-#  endif
-#endif
-
-#ifdef PNG_BUILD_DLL
-#  ifndef PNG_CONSOLE_IO_SUPPORTED
-#    ifndef PNG_NO_CONSOLE_IO
-#      define PNG_NO_CONSOLE_IO
-#    endif
-#  endif
-#endif
-
-#  ifdef PNG_NO_STDIO
-#    ifndef PNG_NO_CONSOLE_IO
-#      define PNG_NO_CONSOLE_IO
-#    endif
-#    ifdef PNG_DEBUG
-#      if (PNG_DEBUG > 0)
-#        include <stdio.h>
-#      endif
-#    endif
-#  else
-#    if !defined(_WIN32_WCE)
-/* "stdio.h" functions are not supported on WindowsCE */
-#      include <stdio.h>
-#    endif
-#  endif
-
-/* This macro protects us against machines that don't have function
+/* The PNGARG macro protects us against machines that don't have function
  * prototypes (ie K&R style headers).  If your compiler does not handle
  * function prototypes, define this macro and use the included ansi2knr.
  * I've always been able to use _NO_PROTO as the indicator, but you may
@@ -291,824 +109,374 @@
  */
 #ifndef PNGARG
 
-#ifdef OF /* zlib prototype munger */
-#  define PNGARG(arglist) OF(arglist)
-#else
+#  ifdef OF /* zlib prototype munger */
+#    define PNGARG(arglist) OF(arglist)
+#  else
 
-#ifdef _NO_PROTO
-#  define PNGARG(arglist) ()
-#  ifndef PNG_TYPECAST_NULL
-#     define PNG_TYPECAST_NULL
-#  endif
-#else
-#  define PNGARG(arglist) arglist
-#endif /* _NO_PROTO */
+#    ifdef _NO_PROTO
+#      define PNGARG(arglist) ()
+#    else
+#      define PNGARG(arglist) arglist
+#    endif /* _NO_PROTO */
 
-#endif /* OF */
+#  endif /* OF */
 
 #endif /* PNGARG */
 
-/* Try to determine if we are compiling on a Mac.  Note that testing for
- * just __MWERKS__ is not good enough, because the Codewarrior is now used
- * on non-Mac platforms.
- */
-#ifndef MACOS
-#  if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \
-      defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC)
-#    define MACOS
-#  endif
-#endif
-
-/* enough people need this for various reasons to include it here */
-#if !defined(MACOS) && !defined(RISCOS) && !defined(_WIN32_WCE)
-#  include <sys/types.h>
-#endif
-
-#if !defined(PNG_SETJMP_NOT_SUPPORTED) && !defined(PNG_NO_SETJMP_SUPPORTED)
-#  define PNG_SETJMP_SUPPORTED
-#endif
-
-#ifdef PNG_SETJMP_SUPPORTED
-/* This is an attempt to force a single setjmp behaviour on Linux.  If
- * the X config stuff didn't define _BSD_SOURCE we wouldn't need this.
- */
-
-#  ifdef __linux__
-#    ifdef _BSD_SOURCE
-#      define PNG_SAVE_BSD_SOURCE
-#      undef _BSD_SOURCE
+/* Function calling conventions.
+ * =============================
+ * Normally it is not necessary to specify to the compiler how to call
+ * a function - it just does it - however on x86 systems derived from
+ * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems
+ * and some others) there are multiple ways to call a function and the
+ * default can be changed on the compiler command line.  For this reason
+ * libpng specifies the calling convention of every exported function and
+ * every function called via a user supplied function pointer.  This is
+ * done in this file by defining the following macros:
+ *
+ * PNGAPI    Calling convention for exported functions.
+ * PNGCBAPI  Calling convention for user provided (callback) functions.
+ * PNGCAPI   Calling convention used by the ANSI-C library (required
+ *           for longjmp callbacks and sometimes used internally to
+ *           specify the calling convention for zlib).
+ *
+ * These macros should never be overridden.  If it is necessary to
+ * change calling convention in a private build this can be done
+ * by setting PNG_API_RULE (which defaults to 0) to one of the values
+ * below to select the correct 'API' variants.
+ *
+ * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout.
+ *                This is correct in every known environment.
+ * PNG_API_RULE=1 Use the operating system convention for PNGAPI and
+ *                the 'C' calling convention (from PNGCAPI) for
+ *                callbacks (PNGCBAPI).  This is no longer required
+ *                in any known environment - if it has to be used
+ *                please post an explanation of the problem to the
+ *                libpng mailing list.
+ *
+ * These cases only differ if the operating system does not use the C
+ * calling convention, at present this just means the above cases
+ * (x86 DOS/Windows sytems) and, even then, this does not apply to
+ * Cygwin running on those systems.
+ *
+ * Note that the value must be defined in pnglibconf.h so that what
+ * the application uses to call the library matches the conventions
+ * set when building the library.
+ */
+
+/* Symbol export
+ * =============
+ * When building a shared library it is almost always necessary to tell
+ * the compiler which symbols to export.  The png.h macro 'PNG_EXPORT'
+ * is used to mark the symbols.  On some systems these symbols can be
+ * extracted at link time and need no special processing by the compiler,
+ * on other systems the symbols are flagged by the compiler and just
+ * the declaration requires a special tag applied (unfortunately) in a
+ * compiler dependent way.  Some systems can do either.
+ *
+ * A small number of older systems also require a symbol from a DLL to
+ * be flagged to the program that calls it.  This is a problem because
+ * we do not know in the header file included by application code that
+ * the symbol will come from a shared library, as opposed to a statically
+ * linked one.  For this reason the application must tell us by setting
+ * the magic flag PNG_USE_DLL to turn on the special processing before
+ * it includes png.h.
+ *
+ * Four additional macros are used to make this happen:
+ *
+ * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from
+ *            the build or imported if PNG_USE_DLL is set - compiler
+ *            and system specific.
+ *
+ * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to
+ *                       'type', compiler specific.
+ *
+ * PNG_DLL_EXPORT Set to the magic to use during a libpng build to
+ *                make a symbol exported from the DLL.
+ *
+ * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come
+ *                from a DLL - used to define PNG_IMPEXP when
+ *                PNG_USE_DLL is set.
+ */
+
+/* System specific discovery.
+ * ==========================
+ * This code is used at build time to find PNG_IMPEXP, the API settings
+ * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL
+ * import processing is possible.  On Windows/x86 systems it also sets
+ * compiler-specific macros to the values required to change the calling
+ * conventions of the various functions.
+ */
+#if ( defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\
+      defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) ) &&\
+    ( defined(_X86_) || defined(_X64_) || defined(_M_IX86) ||\
+      defined(_M_X64) || defined(_M_IA64) )
+  /* Windows system (DOS doesn't support DLLs) running on x86/x64.  Includes
+   * builds under Cygwin or MinGW.  Also includes Watcom builds but these need
+   * special treatment because they are not compatible with GCC or Visual C
+   * because of different calling conventions.
+   */
+#  if PNG_API_RULE == 2
+    /* If this line results in an error, either because __watcall is not
+     * understood or because of a redefine just below you cannot use *this*
+     * build of the library with the compiler you are using.  *This* build was
+     * build using Watcom and applications must also be built using Watcom!
+     */
+#    define PNGCAPI __watcall
+#  endif
+
+#  if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800))
+#    define PNGCAPI __cdecl
+#    if PNG_API_RULE == 1
+#      define PNGAPI __stdcall
 #    endif
-#    ifdef _SETJMP_H
-     /* If you encounter a compiler error here, see the explanation
-      * near the end of INSTALL.
-      */
-         __png.h__ already includes setjmp.h;
-         __dont__ include it again.;
+#  else
+    /* An older compiler, or one not detected (erroneously) above,
+     * if necessary override on the command line to get the correct
+     * variants for the compiler.
+     */
+#    ifndef PNGCAPI
+#      define PNGCAPI _cdecl
 #    endif
-#  endif /* __linux__ */
-
-   /* include setjmp.h for error handling */
-#  include <setjmp.h>
-
-#  ifdef __linux__
-#    ifdef PNG_SAVE_BSD_SOURCE
-#      define _BSD_SOURCE
-#      undef PNG_SAVE_BSD_SOURCE
+#    if PNG_API_RULE == 1 && !defined(PNGAPI)
+#      define PNGAPI _stdcall
 #    endif
-#  endif /* __linux__ */
-#endif /* PNG_SETJMP_SUPPORTED */
-
-#ifdef BSD
-#  include <strings.h>
-#else
-#  include <string.h>
-#endif
-
-/* Other defines for things like memory and the like can go here.  */
-#ifdef PNG_INTERNAL
-
-#include <stdlib.h>
-
-/* The functions exported by PNG_EXTERN are PNG_INTERNAL functions, which
- * aren't usually used outside the library (as far as I know), so it is
- * debatable if they should be exported at all.  In the future, when it is
- * possible to have run-time registry of chunk-handling functions, some of
- * these will be made available again.
-#define PNG_EXTERN extern
- */
-#define PNG_EXTERN
-
-/* Other defines specific to compilers can go here.  Try to keep
- * them inside an appropriate ifdef/endif pair for portability.
- */
+#  endif /* compiler/api */
+  /* NOTE: PNGCBAPI always defaults to PNGCAPI. */
 
-#if defined(PNG_FLOATING_POINT_SUPPORTED)
-#  if defined(MACOS)
-     /* We need to check that <math.h> hasn't already been included earlier
-      * as it seems it doesn't agree with <fp.h>, yet we should really use
-      * <fp.h> if possible.
-      */
-#    if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__)
-#      include <fp.h>
-#    endif
-#  else
-#    include <math.h>
+#  if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD)
+   ERROR: PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed
 #  endif
-#  if defined(_AMIGA) && defined(__SASC) && defined(_M68881)
-     /* Amiga SAS/C: We must include builtin FPU functions when compiling using
-      * MATH=68881
-      */
-#    include <m68881.h>
-#  endif
-#endif
 
-/* Codewarrior on NT has linking problems without this. */
-#if (defined(__MWERKS__) && defined(WIN32)) || defined(__STDC__)
-#  define PNG_ALWAYS_EXTERN
-#endif
-
-/* This provides the non-ANSI (far) memory allocation routines. */
-#if defined(__TURBOC__) && defined(__MSDOS__)
-#  include <mem.h>
-#  include <alloc.h>
-#endif
-
-/* I have no idea why is this necessary... */
-#if defined(_MSC_VER) && (defined(WIN32) || defined(_Windows) || \
-    defined(_WINDOWS) || defined(_WIN32) || defined(__WIN32__))
-#  include <malloc.h>
-#endif
-
-/* This controls how fine the dithering gets.  As this allocates
- * a largish chunk of memory (32K), those who are not as concerned
- * with dithering quality can decrease some or all of these.
- */
-#ifndef PNG_DITHER_RED_BITS
-#  define PNG_DITHER_RED_BITS 5
-#endif
-#ifndef PNG_DITHER_GREEN_BITS
-#  define PNG_DITHER_GREEN_BITS 5
-#endif
-#ifndef PNG_DITHER_BLUE_BITS
-#  define PNG_DITHER_BLUE_BITS 5
-#endif
+#  if (defined(_MSC_VER) && _MSC_VER < 800) ||\
+      (defined(__BORLANDC__) && __BORLANDC__ < 0x500)
+    /* older Borland and MSC
+     * compilers used '__export' and required this to be after
+     * the type.
+     */
+#    ifndef PNG_EXPORT_TYPE
+#      define PNG_EXPORT_TYPE(type) type PNG_IMPEXP
+#    endif
+#    define PNG_DLL_EXPORT __export
+#  else /* newer compiler */
+#    define PNG_DLL_EXPORT __declspec(dllexport)
+#    ifndef PNG_DLL_IMPORT
+#      define PNG_DLL_IMPORT __declspec(dllimport)
+#    endif
+#  endif /* compiler */
 
-/* This controls how fine the gamma correction becomes when you
- * are only interested in 8 bits anyway.  Increasing this value
- * results in more memory being used, and more pow() functions
- * being called to fill in the gamma tables.  Don't set this value
- * less then 8, and even that may not work (I haven't tested it).
- */
+#else /* !Windows/x86 */
+#  if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__)
+#    define PNGAPI _System
+#  else /* !Windows/x86 && !OS/2 */
+    /* Use the defaults, or define PNG*API on the command line (but
+     * this will have to be done for every compile!)
+     */
+#  endif /* other system, !OS/2 */
+#endif /* !Windows/x86 */
 
-#ifndef PNG_MAX_GAMMA_8
-#  define PNG_MAX_GAMMA_8 11
+/* Now do all the defaulting . */
+#ifndef PNGCAPI
+#  define PNGCAPI
 #endif
-
-/* This controls how much a difference in gamma we can tolerate before
- * we actually start doing gamma conversion.
- */
-#ifndef PNG_GAMMA_THRESHOLD
-#  define PNG_GAMMA_THRESHOLD 0.05
+#ifndef PNGCBAPI
+#  define PNGCBAPI PNGCAPI
 #endif
-
-#endif /* PNG_INTERNAL */
-
-/* The following uses const char * instead of char * for error
- * and warning message functions, so some compilers won't complain.
- * If you do not want to use const, define PNG_NO_CONST here.
- */
-
-#ifndef PNG_NO_CONST
-#  define PNG_CONST const
-#else
-#  define PNG_CONST
+#ifndef PNGAPI
+#  define PNGAPI PNGCAPI
 #endif
 
-/* The following defines give you the ability to remove code from the
- * library that you will not be using.  I wish I could figure out how to
- * automate this, but I can't do that without making it seriously hard
- * on the users.  So if you are not using an ability, change the #define
- * to and #undef, and that part of the library will not be compiled.  If
- * your linker can't find a function, you may want to make sure the
- * ability is defined here.  Some of these depend upon some others being
- * defined.  I haven't figured out all the interactions here, so you may
- * have to experiment awhile to get everything to compile.  If you are
- * creating or using a shared library, you probably shouldn't touch this,
- * as it will affect the size of the structures, and this will cause bad
- * things to happen if the library and/or application ever change.
- */
-
-/* Any features you will not be using can be undef'ed here */
-
-/* GR-P, 0.96a: Set "*TRANSFORMS_SUPPORTED as default but allow user
- * to turn it off with "*TRANSFORMS_NOT_SUPPORTED" or *PNG_NO_*_TRANSFORMS
- * on the compile line, then pick and choose which ones to define without
- * having to edit this file. It is safe to use the *TRANSFORMS_NOT_SUPPORTED
- * if you only want to have a png-compliant reader/writer but don't need
- * any of the extra transformations.  This saves about 80 kbytes in a
- * typical installation of the library. (PNG_NO_* form added in version
- * 1.0.1c, for consistency)
+/* The default for PNG_IMPEXP depends on whether the library is
+ * being built or used.
  */
-
-/* The size of the png_text structure changed in libpng-1.0.6 when
- * iTXt support was added.  iTXt support was turned off by default through
- * libpng-1.2.x, to support old apps that malloc the png_text structure
- * instead of calling png_set_text() and letting libpng malloc it.  It
- * was turned on by default in libpng-1.3.0.
- */
-
-#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
-#  ifndef PNG_NO_iTXt_SUPPORTED
-#    define PNG_NO_iTXt_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_iTXt
-#    define PNG_NO_READ_iTXt
-#  endif
-#  ifndef PNG_NO_WRITE_iTXt
-#    define PNG_NO_WRITE_iTXt
+#ifndef PNG_IMPEXP
+#  ifdef PNGLIB_BUILD
+    /* Building the library */
+#    if (defined(DLL_EXPORT)/*from libtool*/ ||\
+        defined(_WINDLL) || defined(_DLL) || defined(__DLL__) ||\
+        defined(_USRDLL) ||\
+        defined(PNG_BUILD_DLL)) && defined(PNG_DLL_EXPORT)
+      /* Building a DLL. */
+#      define PNG_IMPEXP PNG_DLL_EXPORT
+#    endif /* DLL */
+#  else
+    /* Using the library */
+#    if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT)
+      /* This forces use of a DLL, disallowing static linking */
+#      define PNG_IMPEXP PNG_DLL_IMPORT
+#    endif
 #  endif
-#endif
 
-#if !defined(PNG_NO_iTXt_SUPPORTED)
-#  if !defined(PNG_READ_iTXt_SUPPORTED) && !defined(PNG_NO_READ_iTXt)
-#    define PNG_READ_iTXt
-#  endif
-#  if !defined(PNG_WRITE_iTXt_SUPPORTED) && !defined(PNG_NO_WRITE_iTXt)
-#    define PNG_WRITE_iTXt
+#  ifndef PNG_IMPEXP
+#    define PNG_IMPEXP
 #  endif
 #endif
 
-/* The following support, added after version 1.0.0, can be turned off here en
- * masse by defining PNG_LEGACY_SUPPORTED in case you need binary compatibility
- * with old applications that require the length of png_struct and png_info
- * to remain unchanged.
+/* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat
+ * 'attributes' as a storage class - the attributes go at the start of the
+ * function definition, and attributes are always appended regardless of the
+ * compiler.  This considerably simplifies these macros but may cause problems
+ * if any compilers both need function attributes and fail to handle them as
+ * a storage class (this is unlikely.)
  */
-
-#ifdef PNG_LEGACY_SUPPORTED
-#  define PNG_NO_FREE_ME
-#  define PNG_NO_READ_UNKNOWN_CHUNKS
-#  define PNG_NO_WRITE_UNKNOWN_CHUNKS
-#  define PNG_NO_READ_USER_CHUNKS
-#  define PNG_NO_READ_iCCP
-#  define PNG_NO_WRITE_iCCP
-#  define PNG_NO_READ_iTXt
-#  define PNG_NO_WRITE_iTXt
-#  define PNG_NO_READ_sCAL
-#  define PNG_NO_WRITE_sCAL
-#  define PNG_NO_READ_sPLT
-#  define PNG_NO_WRITE_sPLT
-#  define PNG_NO_INFO_IMAGE
-#  define PNG_NO_READ_RGB_TO_GRAY
-#  define PNG_NO_READ_USER_TRANSFORM
-#  define PNG_NO_WRITE_USER_TRANSFORM
-#  define PNG_NO_USER_MEM
-#  define PNG_NO_READ_EMPTY_PLTE
-#  define PNG_NO_MNG_FEATURES
-#  define PNG_NO_FIXED_POINT_SUPPORTED
-#endif
-
-/* Ignore attempt to turn off both floating and fixed point support */
-#if !defined(PNG_FLOATING_POINT_SUPPORTED) || \
-    !defined(PNG_NO_FIXED_POINT_SUPPORTED)
-#  define PNG_FIXED_POINT_SUPPORTED
+#ifndef PNG_FUNCTION
+#  define PNG_FUNCTION(type, name, args, attributes) attributes type name args
 #endif
 
-#ifndef PNG_NO_FREE_ME
-#  define PNG_FREE_ME_SUPPORTED
+#ifndef PNG_EXPORT_TYPE
+#  define PNG_EXPORT_TYPE(type) PNG_IMPEXP type
 #endif
 
-#if defined(PNG_READ_SUPPORTED)
+   /* The ordinal value is only relevant when preprocessing png.h for symbol
+    * table entries, so we discard it here.  See the .dfn files in the
+    * scripts directory.
+    */
+#ifndef PNG_EXPORTA
 
-#if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \
-      !defined(PNG_NO_READ_TRANSFORMS)
-#  define PNG_READ_TRANSFORMS_SUPPORTED
-#endif
-
-#ifdef PNG_READ_TRANSFORMS_SUPPORTED
-#  ifndef PNG_NO_READ_EXPAND
-#    define PNG_READ_EXPAND_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_SHIFT
-#    define PNG_READ_SHIFT_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_PACK
-#    define PNG_READ_PACK_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_BGR
-#    define PNG_READ_BGR_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_SWAP
-#    define PNG_READ_SWAP_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_PACKSWAP
-#    define PNG_READ_PACKSWAP_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_INVERT
-#    define PNG_READ_INVERT_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_DITHER
-#    define PNG_READ_DITHER_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_BACKGROUND
-#    define PNG_READ_BACKGROUND_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_16_TO_8
-#    define PNG_READ_16_TO_8_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_FILLER
-#    define PNG_READ_FILLER_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_GAMMA
-#    define PNG_READ_GAMMA_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_GRAY_TO_RGB
-#    define PNG_READ_GRAY_TO_RGB_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_SWAP_ALPHA
-#    define PNG_READ_SWAP_ALPHA_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_INVERT_ALPHA
-#    define PNG_READ_INVERT_ALPHA_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_STRIP_ALPHA
-#    define PNG_READ_STRIP_ALPHA_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_USER_TRANSFORM
-#    define PNG_READ_USER_TRANSFORM_SUPPORTED
-#  endif
-#  ifndef PNG_NO_READ_RGB_TO_GRAY
-#    define PNG_READ_RGB_TO_GRAY_SUPPORTED
-#  endif
-#endif /* PNG_READ_TRANSFORMS_SUPPORTED */
-
-#if !defined(PNG_NO_PROGRESSIVE_READ) && \
- !defined(PNG_PROGRESSIVE_READ_NOT_SUPPORTED)  /* if you don't do progressive */
-#  define PNG_PROGRESSIVE_READ_SUPPORTED     /* reading.  This is not talking */
-#endif                               /* about interlacing capability!  You'll */
-              /* still have interlacing unless you change the following line: */
-
-#define PNG_READ_INTERLACING_SUPPORTED /* required for PNG-compliant decoders */
-
-#ifndef PNG_NO_READ_COMPOSITE_NODIV
-#  ifndef PNG_NO_READ_COMPOSITED_NODIV  /* libpng-1.0.x misspelling */
-#    define PNG_READ_COMPOSITE_NODIV_SUPPORTED   /* well tested on Intel, SGI */
-#  endif
-#endif
-
-#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
-/* Deprecated, will be removed from version 2.0.0.
-   Use PNG_MNG_FEATURES_SUPPORTED instead. */
-#ifndef PNG_NO_READ_EMPTY_PLTE
-#  define PNG_READ_EMPTY_PLTE_SUPPORTED
-#endif
-#endif
-
-#endif /* PNG_READ_SUPPORTED */
-
-#if defined(PNG_WRITE_SUPPORTED)
-
-# if !defined(PNG_WRITE_TRANSFORMS_NOT_SUPPORTED) && \
-    !defined(PNG_NO_WRITE_TRANSFORMS)
-#  define PNG_WRITE_TRANSFORMS_SUPPORTED
-#endif
-
-#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED
-#  ifndef PNG_NO_WRITE_SHIFT
-#    define PNG_WRITE_SHIFT_SUPPORTED
-#  endif
-#  ifndef PNG_NO_WRITE_PACK
-#    define PNG_WRITE_PACK_SUPPORTED
-#  endif
-#  ifndef PNG_NO_WRITE_BGR
-#    define PNG_WRITE_BGR_SUPPORTED
-#  endif
-#  ifndef PNG_NO_WRITE_SWAP
-#    define PNG_WRITE_SWAP_SUPPORTED
-#  endif
-#  ifndef PNG_NO_WRITE_PACKSWAP
-#    define PNG_WRITE_PACKSWAP_SUPPORTED
-#  endif
-#  ifndef PNG_NO_WRITE_INVERT
-#    define PNG_WRITE_INVERT_SUPPORTED
-#  endif
-#  ifndef PNG_NO_WRITE_FILLER
-#    define PNG_WRITE_FILLER_SUPPORTED   /* same as WRITE_STRIP_ALPHA */
-#  endif
-#  ifndef PNG_NO_WRITE_SWAP_ALPHA
-#    define PNG_WRITE_SWAP_ALPHA_SUPPORTED
-#  endif
-#  ifndef PNG_NO_WRITE_INVERT_ALPHA
-#    define PNG_WRITE_INVERT_ALPHA_SUPPORTED
-#  endif
-#  ifndef PNG_NO_WRITE_USER_TRANSFORM
-#    define PNG_WRITE_USER_TRANSFORM_SUPPORTED
-#  endif
-#endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */
-
-#if !defined(PNG_NO_WRITE_INTERLACING_SUPPORTED) && \
-    !defined(PNG_WRITE_INTERLACING_SUPPORTED)
-#define PNG_WRITE_INTERLACING_SUPPORTED  /* not required for PNG-compliant
-                                            encoders, but can cause trouble
-                                            if left undefined */
-#endif
-
-#if !defined(PNG_NO_WRITE_WEIGHTED_FILTER) && \
-    !defined(PNG_WRITE_WEIGHTED_FILTER) && \
-     defined(PNG_FLOATING_POINT_SUPPORTED)
-#  define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
-#endif
-
-#ifndef PNG_NO_WRITE_FLUSH
-#  define PNG_WRITE_FLUSH_SUPPORTED
-#endif
-
-#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
-/* Deprecated, see PNG_MNG_FEATURES_SUPPORTED, above */
-#ifndef PNG_NO_WRITE_EMPTY_PLTE
-#  define PNG_WRITE_EMPTY_PLTE_SUPPORTED
-#endif
-#endif
-
-#endif /* PNG_WRITE_SUPPORTED */
-
-#ifndef PNG_1_0_X
-#  ifndef PNG_NO_ERROR_NUMBERS
-#    define PNG_ERROR_NUMBERS_SUPPORTED
-#  endif
-#endif /* PNG_1_0_X */
-
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
-    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
-#  ifndef PNG_NO_USER_TRANSFORM_PTR
-#    define PNG_USER_TRANSFORM_PTR_SUPPORTED
-#  endif
+#  define PNG_EXPORTA(ordinal, type, name, args, attributes)\
+      PNG_FUNCTION(PNG_EXPORT_TYPE(type),(PNGAPI name),PNGARG(args), \
+        extern attributes)
 #endif
 
-#ifndef PNG_NO_STDIO
-#  define PNG_TIME_RFC1123_SUPPORTED
-#endif
-
-/* This adds extra functions in pngget.c for accessing data from the
- * info pointer (added in version 0.99)
- * png_get_image_width()
- * png_get_image_height()
- * png_get_bit_depth()
- * png_get_color_type()
- * png_get_compression_type()
- * png_get_filter_type()
- * png_get_interlace_type()
- * png_get_pixel_aspect_ratio()
- * png_get_pixels_per_meter()
- * png_get_x_offset_pixels()
- * png_get_y_offset_pixels()
- * png_get_x_offset_microns()
- * png_get_y_offset_microns()
+/* ANSI-C (C90) does not permit a macro to be invoked with an empty argument,
+ * so make something non-empty to satisfy the requirement:
  */
-#if !defined(PNG_NO_EASY_ACCESS) && !defined(PNG_EASY_ACCESS_SUPPORTED)
-#  define PNG_EASY_ACCESS_SUPPORTED
-#endif
+#define PNG_EMPTY /*empty list*/
 
-/* PNG_ASSEMBLER_CODE was enabled by default in version 1.2.0
- * even when PNG_USE_PNGVCRD or PNG_USE_PNGGCCRD is not defined.
- *
- * PNG_NO_ASSEMBLER_CODE disables use of all assembler code and optimized C,
- * and removes or includes several functions in the API.
- *
- * PNG_NO_MMX_CODE disables the use of MMX code without changing the API.
- * When MMX code is off, then optimized C replacement functions are used.
-*/
-#if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_ASSEMBLER_CODE)
-#  ifndef PNG_ASSEMBLER_CODE_SUPPORTED
-#    define PNG_ASSEMBLER_CODE_SUPPORTED
-#  endif
-#  if defined(XP_MACOSX) && !defined(PNG_NO_MMX_CODE)
-     /* work around Intel-Mac compiler bug */
-#    define PNG_NO_MMX_CODE
-#  endif
-#  if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) && \
-     defined(__MMX__)
-#    define PNG_MMX_CODE_SUPPORTED
-#  endif
-#  if !defined(PNG_USE_PNGGCCRD) && !defined(PNG_NO_MMX_CODE) && \
-     !defined(PNG_USE_PNGVCRD) && defined(__MMX__)
-#    define PNG_USE_PNGGCCRD
-#  endif
-#endif
+#define PNG_EXPORT(ordinal, type, name, args)\
+   PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY)
 
-/* If you are sure that you don't need thread safety and you are compiling
-   with PNG_USE_PNGCCRD for an MMX application, you can define this for
-   faster execution.  See pnggccrd.c.
-#define PNG_THREAD_UNSAFE_OK
-*/
-
-#if !defined(PNG_1_0_X)
-#if !defined(PNG_NO_USER_MEM) && !defined(PNG_USER_MEM_SUPPORTED)
-#  define PNG_USER_MEM_SUPPORTED
+/* Use PNG_REMOVED to comment out a removed interface. */
+#ifndef PNG_REMOVED
+#  define PNG_REMOVED(ordinal, type, name, args, attributes)
 #endif
-#endif /* PNG_1_0_X */
 
-/* Added at libpng-1.2.6 */
-#if !defined(PNG_1_0_X)
-#ifndef PNG_SET_USER_LIMITS_SUPPORTED
-#if !defined(PNG_NO_SET_USER_LIMITS) && !defined(PNG_SET_USER_LIMITS_SUPPORTED)
-#  define PNG_SET_USER_LIMITS_SUPPORTED
-#endif
+#ifndef PNG_CALLBACK
+#  define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args)
 #endif
-#endif /* PNG_1_0_X */
 
-/* Added at libpng-1.0.16 and 1.2.6.  To accept all valid PNGS no matter
- * how large, set these limits to 0x7fffffffL
+/* Support for compiler specific function attributes.  These are used
+ * so that where compiler support is available incorrect use of API
+ * functions in png.h will generate compiler warnings.
+ *
+ * Added at libpng-1.2.41.
  */
-#ifndef PNG_USER_WIDTH_MAX
-#  define PNG_USER_WIDTH_MAX 1000000L
-#endif
-#ifndef PNG_USER_HEIGHT_MAX
-#  define PNG_USER_HEIGHT_MAX 1000000L
-#endif
 
-/* These are currently experimental features, define them if you want */
-
-/* very little testing */
-/*
-#ifdef PNG_READ_SUPPORTED
-#  ifndef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
-#    define PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
+#ifndef PNG_NO_PEDANTIC_WARNINGS
+#  ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED
+#    define PNG_PEDANTIC_WARNINGS_SUPPORTED
 #  endif
 #endif
-*/
-
-/* This is only for PowerPC big-endian and 680x0 systems */
-/* some testing */
-/*
-#ifndef PNG_READ_BIG_ENDIAN_SUPPORTED
-#  define PNG_READ_BIG_ENDIAN_SUPPORTED
-#endif
-*/
-
-/* Buggy compilers (e.g., gcc 2.7.2.2) need this */
-/*
-#define PNG_NO_POINTER_INDEXING
-*/
-
-/* These functions are turned off by default, as they will be phased out. */
-/*
-#define  PNG_USELESS_TESTS_SUPPORTED
-#define  PNG_CORRECT_PALETTE_SUPPORTED
-*/
-
-/* Any chunks you are not interested in, you can undef here.  The
- * ones that allocate memory may be expecially important (hIST,
- * tEXt, zTXt, tRNS, pCAL).  Others will just save time and make png_info
- * a bit smaller.
- */
-
-#if defined(PNG_READ_SUPPORTED) && \
-    !defined(PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \
-    !defined(PNG_NO_READ_ANCILLARY_CHUNKS)
-#  define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
-#endif
-
-#if defined(PNG_WRITE_SUPPORTED) && \
-    !defined(PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \
-    !defined(PNG_NO_WRITE_ANCILLARY_CHUNKS)
-#  define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
-#endif
 
-#ifdef PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
+#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED
+  /* Support for compiler specific function attributes.  These are used
+   * so that where compiler support is available incorrect use of API
+   * functions in png.h will generate compiler warnings.  Added at libpng
+   * version 1.2.41.
+   */
+#  if defined(__GNUC__)
+#    ifndef PNG_USE_RESULT
+#      define PNG_USE_RESULT __attribute__((__warn_unused_result__))
+#    endif
+#    ifndef PNG_NORETURN
+#      define PNG_NORETURN   __attribute__((__noreturn__))
+#    endif
+#    ifndef PNG_ALLOCATED
+#      define PNG_ALLOCATED  __attribute__((__malloc__))
+#    endif
 
-#ifdef PNG_NO_READ_TEXT
-#  define PNG_NO_READ_iTXt
-#  define PNG_NO_READ_tEXt
-#  define PNG_NO_READ_zTXt
-#endif
-#ifndef PNG_NO_READ_bKGD
-#  define PNG_READ_bKGD_SUPPORTED
-#  define PNG_bKGD_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_cHRM
-#  define PNG_READ_cHRM_SUPPORTED
-#  define PNG_cHRM_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_gAMA
-#  define PNG_READ_gAMA_SUPPORTED
-#  define PNG_gAMA_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_hIST
-#  define PNG_READ_hIST_SUPPORTED
-#  define PNG_hIST_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_iCCP
-#  define PNG_READ_iCCP_SUPPORTED
-#  define PNG_iCCP_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_iTXt
-#  ifndef PNG_READ_iTXt_SUPPORTED
-#    define PNG_READ_iTXt_SUPPORTED
-#  endif
-#  ifndef PNG_iTXt_SUPPORTED
-#    define PNG_iTXt_SUPPORTED
-#  endif
-#endif
-#ifndef PNG_NO_READ_oFFs
-#  define PNG_READ_oFFs_SUPPORTED
-#  define PNG_oFFs_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_pCAL
-#  define PNG_READ_pCAL_SUPPORTED
-#  define PNG_pCAL_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_sCAL
-#  define PNG_READ_sCAL_SUPPORTED
-#  define PNG_sCAL_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_pHYs
-#  define PNG_READ_pHYs_SUPPORTED
-#  define PNG_pHYs_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_sBIT
-#  define PNG_READ_sBIT_SUPPORTED
-#  define PNG_sBIT_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_sPLT
-#  define PNG_READ_sPLT_SUPPORTED
-#  define PNG_sPLT_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_sRGB
-#  define PNG_READ_sRGB_SUPPORTED
-#  define PNG_sRGB_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_tEXt
-#  define PNG_READ_tEXt_SUPPORTED
-#  define PNG_tEXt_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_tIME
-#  define PNG_READ_tIME_SUPPORTED
-#  define PNG_tIME_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_tRNS
-#  define PNG_READ_tRNS_SUPPORTED
-#  define PNG_tRNS_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_zTXt
-#  define PNG_READ_zTXt_SUPPORTED
-#  define PNG_zTXt_SUPPORTED
-#endif
-#ifndef PNG_NO_READ_UNKNOWN_CHUNKS
-#  define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
-#  ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
-#    define PNG_UNKNOWN_CHUNKS_SUPPORTED
-#  endif
-#  ifndef PNG_NO_HANDLE_AS_UNKNOWN
-#    define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
-#  endif
-#endif
-#if !defined(PNG_NO_READ_USER_CHUNKS) && \
-     defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
-#  define PNG_READ_USER_CHUNKS_SUPPORTED
-#  define PNG_USER_CHUNKS_SUPPORTED
-#  ifdef PNG_NO_READ_UNKNOWN_CHUNKS
-#    undef PNG_NO_READ_UNKNOWN_CHUNKS
-#  endif
-#  ifdef PNG_NO_HANDLE_AS_UNKNOWN
-#    undef PNG_NO_HANDLE_AS_UNKNOWN
-#  endif
-#endif
-#ifndef PNG_NO_READ_OPT_PLTE
-#  define PNG_READ_OPT_PLTE_SUPPORTED /* only affects support of the */
-#endif                      /* optional PLTE chunk in RGB and RGBA images */
-#if defined(PNG_READ_iTXt_SUPPORTED) || defined(PNG_READ_tEXt_SUPPORTED) || \
-    defined(PNG_READ_zTXt_SUPPORTED)
-#  define PNG_READ_TEXT_SUPPORTED
-#  define PNG_TEXT_SUPPORTED
-#endif
+    /* This specifically protects structure members that should only be
+     * accessed from within the library, therefore should be empty during
+     * a library build.
+     */
+#    ifndef PNGLIB_BUILD
+#      ifndef PNG_DEPRECATED
+#        define PNG_DEPRECATED __attribute__((__deprecated__))
+#      endif
+#      ifndef PNG_PRIVATE
+#        if 0 /* Doesn't work so we use deprecated instead*/
+#          define PNG_PRIVATE \
+            __attribute__((warning("This function is not exported by libpng.")))
+#        else
+#          define PNG_PRIVATE \
+            __attribute__((__deprecated__))
+#        endif
+#      endif
+#    endif /* PNGLIB_BUILD */
+#  endif /* __GNUC__ */
 
-#endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */
+#  if defined(_MSC_VER)  && (_MSC_VER >= 1300)
+#    ifndef PNG_USE_RESULT
+#      define PNG_USE_RESULT /* not supported */
+#    endif
+#    ifndef PNG_NORETURN
+#      define PNG_NORETURN   __declspec(noreturn)
+#    endif
+#    ifndef PNG_ALLOCATED
+#      if (_MSC_VER >= 1400)
+#        define PNG_ALLOCATED __declspec(restrict)
+#      endif
+#    endif
 
-#ifdef PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
+    /* This specifically protects structure members that should only be
+     * accessed from within the library, therefore should be empty during
+     * a library build.
+     */
+#    ifndef PNGLIB_BUILD
+#      ifndef PNG_DEPRECATED
+#        define PNG_DEPRECATED __declspec(deprecated)
+#      endif
+#      ifndef PNG_PRIVATE
+#        define PNG_PRIVATE __declspec(deprecated)
+#      endif
+#    endif /* PNGLIB_BUILD */
+#  endif /* _MSC_VER */
+#endif /* PNG_PEDANTIC_WARNINGS */
 
-#ifdef PNG_NO_WRITE_TEXT
-#  define PNG_NO_WRITE_iTXt
-#  define PNG_NO_WRITE_tEXt
-#  define PNG_NO_WRITE_zTXt
+#ifndef PNG_DEPRECATED
+#  define PNG_DEPRECATED  /* Use of this function is deprecated */
 #endif
-#ifndef PNG_NO_WRITE_bKGD
-#  define PNG_WRITE_bKGD_SUPPORTED
-#  ifndef PNG_bKGD_SUPPORTED
-#    define PNG_bKGD_SUPPORTED
-#  endif
+#ifndef PNG_USE_RESULT
+#  define PNG_USE_RESULT  /* The result of this function must be checked */
 #endif
-#ifndef PNG_NO_WRITE_cHRM
-#  define PNG_WRITE_cHRM_SUPPORTED
-#  ifndef PNG_cHRM_SUPPORTED
-#    define PNG_cHRM_SUPPORTED
-#  endif
+#ifndef PNG_NORETURN
+#  define PNG_NORETURN    /* This function does not return */
 #endif
-#ifndef PNG_NO_WRITE_gAMA
-#  define PNG_WRITE_gAMA_SUPPORTED
-#  ifndef PNG_gAMA_SUPPORTED
-#    define PNG_gAMA_SUPPORTED
-#  endif
-#endif
-#ifndef PNG_NO_WRITE_hIST
-#  define PNG_WRITE_hIST_SUPPORTED
-#  ifndef PNG_hIST_SUPPORTED
-#    define PNG_hIST_SUPPORTED
-#  endif
+#ifndef PNG_ALLOCATED
+#  define PNG_ALLOCATED   /* The result of the function is new memory */
 #endif
-#ifndef PNG_NO_WRITE_iCCP
-#  define PNG_WRITE_iCCP_SUPPORTED
-#  ifndef PNG_iCCP_SUPPORTED
-#    define PNG_iCCP_SUPPORTED
-#  endif
+#ifndef PNG_PRIVATE
+#  define PNG_PRIVATE     /* This is a private libpng function */
 #endif
-#ifndef PNG_NO_WRITE_iTXt
-#  ifndef PNG_WRITE_iTXt_SUPPORTED
-#    define PNG_WRITE_iTXt_SUPPORTED
-#  endif
-#  ifndef PNG_iTXt_SUPPORTED
-#    define PNG_iTXt_SUPPORTED
+#ifndef PNG_FP_EXPORT     /* A floating point API. */
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
+#     define PNG_FP_EXPORT(ordinal, type, name, args)\
+         PNG_EXPORT(ordinal, type, name, args)
+#  else                   /* No floating point APIs */
+#     define PNG_FP_EXPORT(ordinal, type, name, args)
 #  endif
 #endif
-#ifndef PNG_NO_WRITE_oFFs
-#  define PNG_WRITE_oFFs_SUPPORTED
-#  ifndef PNG_oFFs_SUPPORTED
-#    define PNG_oFFs_SUPPORTED
+#ifndef PNG_FIXED_EXPORT  /* A fixed point API. */
+#  ifdef PNG_FIXED_POINT_SUPPORTED
+#     define PNG_FIXED_EXPORT(ordinal, type, name, args)\
+         PNG_EXPORT(ordinal, type, name, args)
+#  else                   /* No fixed point APIs */
+#     define PNG_FIXED_EXPORT(ordinal, type, name, args)
 #  endif
 #endif
-#ifndef PNG_NO_WRITE_pCAL
-#  define PNG_WRITE_pCAL_SUPPORTED
-#  ifndef PNG_pCAL_SUPPORTED
-#    define PNG_pCAL_SUPPORTED
-#  endif
-#endif
-#ifndef PNG_NO_WRITE_sCAL
-#  define PNG_WRITE_sCAL_SUPPORTED
-#  ifndef PNG_sCAL_SUPPORTED
-#    define PNG_sCAL_SUPPORTED
-#  endif
-#endif
-#ifndef PNG_NO_WRITE_pHYs
-#  define PNG_WRITE_pHYs_SUPPORTED
-#  ifndef PNG_pHYs_SUPPORTED
-#    define PNG_pHYs_SUPPORTED
-#  endif
-#endif
-#ifndef PNG_NO_WRITE_sBIT
-#  define PNG_WRITE_sBIT_SUPPORTED
-#  ifndef PNG_sBIT_SUPPORTED
-#    define PNG_sBIT_SUPPORTED
-#  endif
-#endif
-#ifndef PNG_NO_WRITE_sPLT
-#  define PNG_WRITE_sPLT_SUPPORTED
-#  ifndef PNG_sPLT_SUPPORTED
-#    define PNG_sPLT_SUPPORTED
-#  endif
-#endif
-#ifndef PNG_NO_WRITE_sRGB
-#  define PNG_WRITE_sRGB_SUPPORTED
-#  ifndef PNG_sRGB_SUPPORTED
-#    define PNG_sRGB_SUPPORTED
-#  endif
-#endif
-#ifndef PNG_NO_WRITE_tEXt
-#  define PNG_WRITE_tEXt_SUPPORTED
-#  ifndef PNG_tEXt_SUPPORTED
-#    define PNG_tEXt_SUPPORTED
-#  endif
-#endif
-#ifndef PNG_NO_WRITE_tIME
-#  define PNG_WRITE_tIME_SUPPORTED
-#  ifndef PNG_tIME_SUPPORTED
-#    define PNG_tIME_SUPPORTED
-#  endif
-#endif
-#ifndef PNG_NO_WRITE_tRNS
-#  define PNG_WRITE_tRNS_SUPPORTED
-#  ifndef PNG_tRNS_SUPPORTED
-#    define PNG_tRNS_SUPPORTED
-#  endif
-#endif
-#ifndef PNG_NO_WRITE_zTXt
-#  define PNG_WRITE_zTXt_SUPPORTED
-#  ifndef PNG_zTXt_SUPPORTED
-#    define PNG_zTXt_SUPPORTED
-#  endif
-#endif
-#ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS
-#  define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
-#  ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
-#    define PNG_UNKNOWN_CHUNKS_SUPPORTED
-#  endif
-#  ifndef PNG_NO_HANDLE_AS_UNKNOWN
-#     ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
-#       define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
-#     endif
-#  endif
-#endif
-#if defined(PNG_WRITE_iTXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \
-    defined(PNG_WRITE_zTXt_SUPPORTED)
-#  define PNG_WRITE_TEXT_SUPPORTED
-#  ifndef PNG_TEXT_SUPPORTED
-#    define PNG_TEXT_SUPPORTED
-#  endif
-#endif
-
-#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */
 
-/* Turn this off to disable png_read_png() and
- * png_write_png() and leave the row_pointers member
- * out of the info structure.
+/* The following uses const char * instead of char * for error
+ * and warning message functions, so some compilers won't complain.
+ * If you do not want to use const, define PNG_NO_CONST here.
+ *
+ * This should not change how the APIs are called, so it can be done
+ * on a per-file basis in the application.
  */
-#ifndef PNG_NO_INFO_IMAGE
-#  define PNG_INFO_IMAGE_SUPPORTED
-#endif
-
-/* need the time information for reading tIME chunks */
-#if defined(PNG_tIME_SUPPORTED)
-#  if !defined(_WIN32_WCE)
-     /* "time.h" functions are not supported on WindowsCE */
-#    include <time.h>
+#ifndef PNG_CONST
+#  ifndef PNG_NO_CONST
+#    define PNG_CONST const
+#  else
+#    define PNG_CONST
 #  endif
 #endif
 
@@ -1117,28 +485,29 @@
  * numbers suggest (a png_uint_32 must be at least 32 bits long), but they
  * don't have to be exactly that size.  Some compilers dislike passing
  * unsigned shorts as function parameters, so you may be better off using
- * unsigned int for png_uint_16.  Likewise, for 64-bit systems, you may
- * want to have unsigned int for png_uint_32 instead of unsigned long.
+ * unsigned int for png_uint_16.
  */
 
+#if defined(INT_MAX) && (INT_MAX > 0x7ffffffeL)
+typedef unsigned int png_uint_32;
+typedef int png_int_32;
+#else
 typedef unsigned long png_uint_32;
 typedef long png_int_32;
+#endif
 typedef unsigned short png_uint_16;
 typedef short png_int_16;
 typedef unsigned char png_byte;
 
-/* This is usually size_t.  It is typedef'ed just in case you need it to
-   change (I'm not sure if you will or not, so I thought I'd be safe) */
-#ifdef PNG_SIZE_T
-   typedef PNG_SIZE_T png_size_t;
-#  define png_sizeof(x) png_convert_size(sizeof (x))
+#ifdef PNG_NO_SIZE_T
+typedef unsigned int png_size_t;
 #else
-   typedef size_t png_size_t;
-#  define png_sizeof(x) sizeof (x)
+typedef size_t png_size_t;
 #endif
+#define png_sizeof(x) (sizeof (x))
 
 /* The following is needed for medium model support.  It cannot be in the
- * PNG_INTERNAL section.  Needs modification for other compilers besides
+ * pngpriv.h header.  Needs modification for other compilers besides
  * MSC.  Model independent support declares all arrays and pointers to be
  * large using the far keyword.  The zlib version used must also support
  * model independent data.  As of version zlib 1.0.4, the necessary changes
@@ -1147,27 +516,28 @@ typedef unsigned char png_byte;
  */
 
 /* Separate compiler dependencies (problem here is that zlib.h always
-   defines FAR. (SJT) */
+ * defines FAR. (SJT)
+ */
 #ifdef __BORLANDC__
 #  if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__)
 #    define LDATA 1
 #  else
 #    define LDATA 0
 #  endif
-   /* GRR:  why is Cygwin in here?  Cygwin is not Borland C... */
+  /* GRR:  why is Cygwin in here?  Cygwin is not Borland C... */
 #  if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__)
-#    define PNG_MAX_MALLOC_64K
+#    define PNG_MAX_MALLOC_64K /* only used in build */
 #    if (LDATA != 1)
 #      ifndef FAR
 #        define FAR __far
 #      endif
 #      define USE_FAR_KEYWORD
 #    endif   /* LDATA != 1 */
-     /* Possibly useful for moving data out of default segment.
-      * Uncomment it if you want. Could also define FARDATA as
-      * const if your compiler supports it. (SJT)
-#    define FARDATA FAR
-      */
+         /* Possibly useful for moving data out of default segment.
+          * Uncomment it if you want. Could also define FARDATA as
+          * const if your compiler supports it. (SJT)
+#        define FARDATA FAR
+          */
 #  endif  /* __WIN32__, __FLAT__, __CYGWIN__ */
 #endif   /* __BORLANDC__ */
 
@@ -1178,8 +548,8 @@ typedef unsigned char png_byte;
  */
 
 /* MSC Medium model */
-#if defined(FAR)
-#  if defined(M_I86MM)
+#ifdef FAR
+#  ifdef M_I86MM
 #    define USE_FAR_KEYWORD
 #    define FARDATA FAR
 #    include <dos.h>
@@ -1197,30 +567,37 @@ typedef unsigned char png_byte;
 #endif
 
 /* Typedef for floating-point numbers that are converted
-   to fixed-point with a multiple of 100,000, e.g., int_gamma */
+ * to fixed-point with a multiple of 100,000, e.g., gamma
+ */
 typedef png_int_32 png_fixed_point;
 
 /* Add typedefs for pointers */
-typedef void            FAR * png_voidp;
-typedef png_byte        FAR * png_bytep;
-typedef png_uint_32     FAR * png_uint_32p;
-typedef png_int_32      FAR * png_int_32p;
-typedef png_uint_16     FAR * png_uint_16p;
-typedef png_int_16      FAR * png_int_16p;
-typedef PNG_CONST char  FAR * png_const_charp;
-typedef char            FAR * png_charp;
-typedef png_fixed_point FAR * png_fixed_point_p;
-
-#ifndef PNG_NO_STDIO
-#if defined(_WIN32_WCE)
-typedef HANDLE                png_FILE_p;
-#else
-typedef FILE                * png_FILE_p;
-#endif
+typedef void                      FAR * png_voidp;
+typedef PNG_CONST void            FAR * png_const_voidp;
+typedef png_byte                  FAR * png_bytep;
+typedef PNG_CONST png_byte        FAR * png_const_bytep;
+typedef png_uint_32               FAR * png_uint_32p;
+typedef PNG_CONST png_uint_32     FAR * png_const_uint_32p;
+typedef png_int_32                FAR * png_int_32p;
+typedef PNG_CONST png_int_32      FAR * png_const_int_32p;
+typedef png_uint_16               FAR * png_uint_16p;
+typedef PNG_CONST png_uint_16     FAR * png_const_uint_16p;
+typedef png_int_16                FAR * png_int_16p;
+typedef PNG_CONST png_int_16      FAR * png_const_int_16p;
+typedef char                      FAR * png_charp;
+typedef PNG_CONST char            FAR * png_const_charp;
+typedef png_fixed_point           FAR * png_fixed_point_p;
+typedef PNG_CONST png_fixed_point FAR * png_const_fixed_point_p;
+typedef png_size_t                FAR * png_size_tp;
+typedef PNG_CONST png_size_t      FAR * png_const_size_tp;
+
+#ifdef PNG_STDIO_SUPPORTED
+typedef FILE            * png_FILE_p;
 #endif
 
 #ifdef PNG_FLOATING_POINT_SUPPORTED
-typedef double          FAR * png_doublep;
+typedef double           FAR * png_doublep;
+typedef PNG_CONST double FAR * png_const_doublep;
 #endif
 
 /* Pointers to pointers; i.e. arrays */
@@ -1239,273 +616,32 @@ typedef double          FAR * FAR * png_doublepp;
 /* Pointers to pointers to pointers; i.e., pointer to array */
 typedef char            FAR * FAR * FAR * png_charppp;
 
-#if defined(PNG_1_0_X) || defined(PNG_1_2_X)
-/* SPC -  Is this stuff deprecated? */
-/* It'll be removed as of libpng-1.3.0 - GR-P */
-/* libpng typedefs for types in zlib. If zlib changes
- * or another compression library is used, then change these.
- * Eliminates need to change all the source files.
- */
-typedef charf *         png_zcharp;
-typedef charf * FAR *   png_zcharpp;
-typedef z_stream FAR *  png_zstreamp;
-#endif /* (PNG_1_0_X) || defined(PNG_1_2_X) */
-
-/*
- * Define PNG_BUILD_DLL if the module being built is a Windows
- * LIBPNG DLL.
- *
- * Define PNG_USE_DLL if you want to *link* to the Windows LIBPNG DLL.
- * It is equivalent to Microsoft predefined macro _DLL that is
- * automatically defined when you compile using the share
- * version of the CRT (C Run-Time library)
- *
- * The cygwin mods make this behavior a little different:
- * Define PNG_BUILD_DLL if you are building a dll for use with cygwin
- * Define PNG_STATIC if you are building a static library for use with cygwin,
- *   -or- if you are building an application that you want to link to the
- *   static library.
- * PNG_USE_DLL is defined by default (no user action needed) unless one of
- *   the other flags is defined.
- */
-
-#if !defined(PNG_DLL) && (defined(PNG_BUILD_DLL) || defined(PNG_USE_DLL))
-#  define PNG_DLL
-#endif
-/* If CYGWIN, then disallow GLOBAL ARRAYS unless building a static lib.
- * When building a static lib, default to no GLOBAL ARRAYS, but allow
- * command-line override
- */
-#if defined(__CYGWIN__)
-#  if !defined(PNG_STATIC)
-#    if defined(PNG_USE_GLOBAL_ARRAYS)
-#      undef PNG_USE_GLOBAL_ARRAYS
-#    endif
-#    if !defined(PNG_USE_LOCAL_ARRAYS)
-#      define PNG_USE_LOCAL_ARRAYS
-#    endif
-#  else
-#    if defined(PNG_USE_LOCAL_ARRAYS) || defined(PNG_NO_GLOBAL_ARRAYS)
-#      if defined(PNG_USE_GLOBAL_ARRAYS)
-#        undef PNG_USE_GLOBAL_ARRAYS
-#      endif
-#    endif
-#  endif
-#  if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS)
-#    define PNG_USE_LOCAL_ARRAYS
-#  endif
-#endif
-
-/* Do not use global arrays (helps with building DLL's)
- * They are no longer used in libpng itself, since version 1.0.5c,
- * but might be required for some pre-1.0.5c applications.
- */
-#if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS)
-#  if defined(PNG_NO_GLOBAL_ARRAYS) || (defined(__GNUC__) && defined(PNG_DLL))
-#    define PNG_USE_LOCAL_ARRAYS
+/* png_alloc_size_t is guaranteed to be no smaller than png_size_t,
+ * and no smaller than png_uint_32.  Casts from png_size_t or png_uint_32
+ * to png_alloc_size_t are not necessary; in fact, it is recommended
+ * not to use them at all so that the compiler can complain when something
+ * turns out to be problematic.
+ * Casts in the other direction (from png_alloc_size_t to png_size_t or
+ * png_uint_32) should be explicitly applied; however, we do not expect
+ * to encounter practical situations that require such conversions.
+ */
+#if defined(__TURBOC__) && !defined(__FLAT__)
+   typedef unsigned long png_alloc_size_t;
+#else
+#  if defined(_MSC_VER) && defined(MAXSEG_64K)
+     typedef unsigned long    png_alloc_size_t;
 #  else
-#    define PNG_USE_GLOBAL_ARRAYS
-#  endif
-#endif
-
-#if defined(__CYGWIN__)
-#  undef PNGAPI
-#  define PNGAPI __cdecl
-#  undef PNG_IMPEXP
-#  define PNG_IMPEXP
-#endif
-
-/* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall",
- * you may get warnings regarding the linkage of png_zalloc and png_zfree.
- * Don't ignore those warnings; you must also reset the default calling
- * convention in your compiler to match your PNGAPI, and you must build
- * zlib and your applications the same way you build libpng.
- */
-
-#if defined(__MINGW32__) && !defined(PNG_MODULEDEF)
-#  ifndef PNG_NO_MODULEDEF
-#    define PNG_NO_MODULEDEF
-#  endif
-#endif
-
-#if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF)
-#  define PNG_IMPEXP
-#endif
-
-#if defined(PNG_DLL) || defined(_DLL) || defined(__DLL__ ) || \
-    (( defined(_Windows) || defined(_WINDOWS) || \
-       defined(WIN32) || defined(_WIN32) || defined(__WIN32__) ))
-
-#  ifndef PNGAPI
-#     if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800))
-#        define PNGAPI __cdecl
-#     else
-#        define PNGAPI _cdecl
-#     endif
-#  endif
-
-#  if !defined(PNG_IMPEXP) && (!defined(PNG_DLL) || \
-       0 /* WINCOMPILER_WITH_NO_SUPPORT_FOR_DECLIMPEXP */)
-#     define PNG_IMPEXP
-#  endif
-
-#  if !defined(PNG_IMPEXP)
-
-#     define PNG_EXPORT_TYPE1(type,symbol)  PNG_IMPEXP type PNGAPI symbol
-#     define PNG_EXPORT_TYPE2(type,symbol)  type PNG_IMPEXP PNGAPI symbol
-
-      /* Borland/Microsoft */
-#     if defined(_MSC_VER) || defined(__BORLANDC__)
-#        if (_MSC_VER >= 800) || (__BORLANDC__ >= 0x500)
-#           define PNG_EXPORT PNG_EXPORT_TYPE1
-#        else
-#           define PNG_EXPORT PNG_EXPORT_TYPE2
-#           if defined(PNG_BUILD_DLL)
-#              define PNG_IMPEXP __export
-#           else
-#              define PNG_IMPEXP /*__import */ /* doesn't exist AFAIK in
-                                                 VC++ */
-#           endif                             /* Exists in Borland C++ for
-                                                 C++ classes (== huge) */
-#        endif
-#     endif
-
-#     if !defined(PNG_IMPEXP)
-#        if defined(PNG_BUILD_DLL)
-#           define PNG_IMPEXP __declspec(dllexport)
-#        else
-#           define PNG_IMPEXP __declspec(dllimport)
-#        endif
-#     endif
-#  endif  /* PNG_IMPEXP */
-#else /* !(DLL || non-cygwin WINDOWS) */
-#   if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__)
-#      ifndef PNGAPI
-#         define PNGAPI _System
-#      endif
-#   else
-#      if 0 /* ... other platforms, with other meanings */
-#      endif
-#   endif
-#endif
-
-#ifndef PNGAPI
-#  define PNGAPI
-#endif
-#ifndef PNG_IMPEXP
-#  define PNG_IMPEXP
-#endif
-
-#ifdef PNG_BUILDSYMS
-#  ifndef PNG_EXPORT
-#    define PNG_EXPORT(type,symbol) PNG_FUNCTION_EXPORT symbol END
-#  endif
-#  ifdef PNG_USE_GLOBAL_ARRAYS
-#    ifndef PNG_EXPORT_VAR
-#      define PNG_EXPORT_VAR(type) PNG_DATA_EXPORT
+     /* This is an attempt to detect an old Windows system where (int) is
+      * actually 16 bits, in that case png_malloc must have an argument with a
+      * bigger size to accomodate the requirements of the library.
+      */
+#    if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_)) && \
+        (!defined(INT_MAX) || INT_MAX <= 0x7ffffffeL)
+       typedef DWORD         png_alloc_size_t;
+#    else
+       typedef png_size_t    png_alloc_size_t;
 #    endif
 #  endif
 #endif
 
-#ifndef PNG_EXPORT
-#  define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol
-#endif
-
-#ifdef PNG_USE_GLOBAL_ARRAYS
-#  ifndef PNG_EXPORT_VAR
-#    define PNG_EXPORT_VAR(type) extern PNG_IMPEXP type
-#  endif
-#endif
-
-/* User may want to use these so they are not in PNG_INTERNAL. Any library
- * functions that are passed far data must be model independent.
- */
-
-#ifndef PNG_ABORT
-#  define PNG_ABORT() abort()
-#endif
-
-#ifdef PNG_SETJMP_SUPPORTED
-#  define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf)
-#else
-#  define png_jmpbuf(png_ptr) \
-   (LIBPNG_WAS_COMPILED_WITH__PNG_SETJMP_NOT_SUPPORTED)
-#endif
-
-#if defined(USE_FAR_KEYWORD)  /* memory model independent fns */
-/* use this to make far-to-near assignments */
-#  define CHECK   1
-#  define NOCHECK 0
-#  define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK))
-#  define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK))
-#  define png_strcpy  _fstrcpy
-#  define png_strncpy _fstrncpy   /* Added to v 1.2.6 */
-#  define png_strlen  _fstrlen
-#  define png_memcmp  _fmemcmp    /* SJT: added */
-#  define png_memcpy  _fmemcpy
-#  define png_memset  _fmemset
-#else /* use the usual functions */
-#  define CVT_PTR(ptr)         (ptr)
-#  define CVT_PTR_NOCHECK(ptr) (ptr)
-#  define png_strcpy  strcpy
-#  define png_strncpy strncpy     /* Added to v 1.2.6 */
-#  define png_strlen  strlen
-#  define png_memcmp  memcmp      /* SJT: added */
-#  define png_memcpy  memcpy
-#  define png_memset  memset
-#endif
-/* End of memory model independent support */
-
-/* Just a little check that someone hasn't tried to define something
- * contradictory.
- */
-#if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K)
-#  undef PNG_ZBUF_SIZE
-#  define PNG_ZBUF_SIZE 65536L
-#endif
-
-#ifdef PNG_READ_SUPPORTED
-/* Prior to libpng-1.0.9, this block was in pngasmrd.h */
-#if defined(PNG_INTERNAL)
-
-/* These are the default thresholds before the MMX code kicks in; if either
- * rowbytes or bitdepth is below the threshold, plain C code is used.  These
- * can be overridden at runtime via the png_set_mmx_thresholds() call in
- * libpng 1.2.0 and later.  The values below were chosen by Intel.
- */
-
-#ifndef PNG_MMX_ROWBYTES_THRESHOLD_DEFAULT
-#  define PNG_MMX_ROWBYTES_THRESHOLD_DEFAULT  128  /*  >=  */
-#endif
-#ifndef PNG_MMX_BITDEPTH_THRESHOLD_DEFAULT
-#  define PNG_MMX_BITDEPTH_THRESHOLD_DEFAULT  9    /*  >=  */
-#endif
-
-/* Set this in the makefile for VC++ on Pentium, not here. */
-/* Platform must be Pentium.  Makefile must assemble and load pngvcrd.c .
- * MMX will be detected at run time and used if present.
- */
-#ifdef PNG_USE_PNGVCRD
-#  define PNG_HAVE_MMX_COMBINE_ROW
-#  define PNG_HAVE_MMX_READ_INTERLACE
-#  define PNG_HAVE_MMX_READ_FILTER_ROW
-#endif
-
-/* Set this in the makefile for gcc/as on Pentium, not here. */
-/* Platform must be Pentium.  Makefile must assemble and load pnggccrd.c .
- * MMX will be detected at run time and used if present.
- */
-#ifdef PNG_USE_PNGGCCRD
-#  define PNG_HAVE_MMX_COMBINE_ROW
-#  define PNG_HAVE_MMX_READ_INTERLACE
-#  define PNG_HAVE_MMX_READ_FILTER_ROW
-#endif
-/* - see pnggccrd.c for info about what is currently enabled */
-
-#endif /* PNG_INTERNAL */
-#endif /* PNG_READ_SUPPORTED */
-
-/* Added at libpng-1.2.8 */
-#endif /* PNG_VERSION_INFO_ONLY */
-
 #endif /* PNGCONF_H */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngdebug.h b/jdk/src/share/native/sun/awt/libpng/pngdebug.h
new file mode 100644
index 0000000..33e6fca
--- /dev/null
+++ b/jdk/src/share/native/sun/awt/libpng/pngdebug.h
@@ -0,0 +1,185 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* pngdebug.h - Debugging macros for libpng, also used in pngtest.c
+ *
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
+ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
+ * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * Last changed in libpng 1.5.0 [January 6, 2011]
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ */
+
+/* Define PNG_DEBUG at compile time for debugging information.  Higher
+ * numbers for PNG_DEBUG mean more debugging information.  This has
+ * only been added since version 0.95 so it is not implemented throughout
+ * libpng yet, but more support will be added as needed.
+ *
+ * png_debug[1-2]?(level, message ,arg{0-2})
+ *   Expands to a statement (either a simple expression or a compound
+ *   do..while(0) statement) that outputs a message with parameter
+ *   substitution if PNG_DEBUG is defined to 2 or more.  If PNG_DEBUG
+ *   is undefined, 0 or 1 every png_debug expands to a simple expression
+ *   (actually ((void)0)).
+ *
+ *   level: level of detail of message, starting at 0.  A level 'n'
+ *          message is preceded by 'n' tab characters (not implemented
+ *          on Microsoft compilers unless PNG_DEBUG_FILE is also
+ *          defined, to allow debug DLL compilation with no standard IO).
+ *   message: a printf(3) style text string.  A trailing '\n' is added
+ *            to the message.
+ *   arg: 0 to 2 arguments for printf(3) style substitution in message.
+ */
+#ifndef PNGDEBUG_H
+#define PNGDEBUG_H
+/* These settings control the formatting of messages in png.c and pngerror.c */
+/* Moved to pngdebug.h at 1.5.0 */
+#  ifndef PNG_LITERAL_SHARP
+#    define PNG_LITERAL_SHARP 0x23
+#  endif
+#  ifndef PNG_LITERAL_LEFT_SQUARE_BRACKET
+#    define PNG_LITERAL_LEFT_SQUARE_BRACKET 0x5b
+#  endif
+#  ifndef PNG_LITERAL_RIGHT_SQUARE_BRACKET
+#    define PNG_LITERAL_RIGHT_SQUARE_BRACKET 0x5d
+#  endif
+#  ifndef PNG_STRING_NEWLINE
+#    define PNG_STRING_NEWLINE "\n"
+#  endif
+
+#ifdef PNG_DEBUG
+#  if (PNG_DEBUG > 0)
+#    if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER)
+#      include <crtdbg.h>
+#      if (PNG_DEBUG > 1)
+#        ifndef _DEBUG
+#          define _DEBUG
+#        endif
+#        ifndef png_debug
+#          define png_debug(l,m)  _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE)
+#        endif
+#        ifndef png_debug1
+#          define png_debug1(l,m,p1)  _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1)
+#        endif
+#        ifndef png_debug2
+#          define png_debug2(l,m,p1,p2) \
+             _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2)
+#        endif
+#      endif
+#    else /* PNG_DEBUG_FILE || !_MSC_VER */
+#      ifndef PNG_STDIO_SUPPORTED
+#        include <stdio.h> /* not included yet */
+#      endif
+#      ifndef PNG_DEBUG_FILE
+#        define PNG_DEBUG_FILE stderr
+#      endif /* PNG_DEBUG_FILE */
+
+#      if (PNG_DEBUG > 1)
+/* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on
+ * non-ISO compilers
+ */
+#        ifdef __STDC__
+#          ifndef png_debug
+#            define png_debug(l,m) \
+       do { \
+       int num_tabs=l; \
+       fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
+         (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \
+       } while (0)
+#          endif
+#          ifndef png_debug1
+#            define png_debug1(l,m,p1) \
+       do { \
+       int num_tabs=l; \
+       fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
+         (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \
+       } while (0)
+#          endif
+#          ifndef png_debug2
+#            define png_debug2(l,m,p1,p2) \
+       do { \
+       int num_tabs=l; \
+       fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
+         (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \
+       } while (0)
+#          endif
+#        else /* __STDC __ */
+#          ifndef png_debug
+#            define png_debug(l,m) \
+       do { \
+       int num_tabs=l; \
+       char format[256]; \
+       snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
+         (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
+         m,PNG_STRING_NEWLINE); \
+       fprintf(PNG_DEBUG_FILE,format); \
+       } while (0)
+#          endif
+#          ifndef png_debug1
+#            define png_debug1(l,m,p1) \
+       do { \
+       int num_tabs=l; \
+       char format[256]; \
+       snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
+         (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
+         m,PNG_STRING_NEWLINE); \
+       fprintf(PNG_DEBUG_FILE,format,p1); \
+       } while (0)
+#          endif
+#          ifndef png_debug2
+#            define png_debug2(l,m,p1,p2) \
+       do { \
+       int num_tabs=l; \
+       char format[256]; \
+       snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
+         (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
+         m,PNG_STRING_NEWLINE); \
+       fprintf(PNG_DEBUG_FILE,format,p1,p2); \
+       } while (0)
+#          endif
+#        endif /* __STDC __ */
+#      endif /* (PNG_DEBUG > 1) */
+
+#    endif /* _MSC_VER */
+#  endif /* (PNG_DEBUG > 0) */
+#endif /* PNG_DEBUG */
+#ifndef png_debug
+#  define png_debug(l, m) ((void)0)
+#endif
+#ifndef png_debug1
+#  define png_debug1(l, m, p1) ((void)0)
+#endif
+#ifndef png_debug2
+#  define png_debug2(l, m, p1, p2) ((void)0)
+#endif
+#endif /* PNGDEBUG_H */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngerror.c b/jdk/src/share/native/sun/awt/libpng/pngerror.c
index 65d0d88..2fbcb6e 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngerror.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngerror.c
@@ -20,8 +20,6 @@
  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  * or visit www.oracle.com if you need additional information or have any
  * questions.
- *
- * THIS FILE WAS MODIFIED BY SUN MICROSYSTEMS, INC.
  */
 
 /* pngerror.c - stub functions for i/o and memory allocation
@@ -31,69 +29,79 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.13 November 13, 2006
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2006 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ *
  * This file provides a location for all error handling.  Users who
  * need special error handling are expected to write replacement functions
  * and use png_set_error_fn() to use those functions.  See the instructions
  * at each function.
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
 
 #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
-static void /* PRIVATE */
-png_default_error PNGARG((png_structp png_ptr,
-  png_const_charp error_message));
+
+static PNG_FUNCTION(void, png_default_error,PNGARG((png_structp png_ptr,
+    png_const_charp error_message)),PNG_NORETURN);
+
+#ifdef PNG_WARNINGS_SUPPORTED
 static void /* PRIVATE */
 png_default_warning PNGARG((png_structp png_ptr,
-  png_const_charp warning_message));
+   png_const_charp warning_message));
+#endif /* PNG_WARNINGS_SUPPORTED */
 
 /* This function is called whenever there is a fatal error.  This function
  * should not be changed.  If there is a need to handle errors differently,
  * you should supply a replacement error function and use png_set_error_fn()
  * to replace the error function at run-time.
  */
-void PNGAPI
-png_error(png_structp png_ptr, png_const_charp error_message)
+#ifdef PNG_ERROR_TEXT_SUPPORTED
+PNG_FUNCTION(void,PNGAPI
+png_error,(png_structp png_ptr, png_const_charp error_message),PNG_NORETURN)
 {
 #ifdef PNG_ERROR_NUMBERS_SUPPORTED
    char msg[16];
    if (png_ptr != NULL)
    {
-     if (png_ptr->flags&
-       (PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))
-     {
-       if (*error_message == '#')
-       {
-           int offset;
-           for (offset=1; offset<15; offset++)
-              if (*(error_message+offset) == ' ')
+      if (png_ptr->flags&
+         (PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))
+      {
+         if (*error_message == PNG_LITERAL_SHARP)
+         {
+            /* Strip "#nnnn " from beginning of error message. */
+            int offset;
+            for (offset = 1; offset<15; offset++)
+               if (error_message[offset] == ' ')
                   break;
-           if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT)
-           {
-              int i;
-              for (i=0; i<offset-1; i++)
-                 msg[i]=error_message[i+1];
-              msg[i]='\0';
-              error_message=msg;
-           }
-           else
-              error_message+=offset;
-       }
-       else
-       {
-           if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT)
-           {
-              msg[0]='0';
-              msg[1]='\0';
-              error_message=msg;
-           }
+
+            if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT)
+            {
+               int i;
+               for (i = 0; i < offset - 1; i++)
+                  msg[i] = error_message[i + 1];
+               msg[i - 1] = '\0';
+               error_message = msg;
+            }
+
+            else
+               error_message += offset;
+      }
+
+      else
+      {
+         if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT)
+         {
+            msg[0] = '0';
+            msg[1] = '\0';
+            error_message = msg;
+         }
        }
      }
    }
@@ -105,7 +113,126 @@ png_error(png_structp png_ptr, png_const_charp error_message)
       use the default handler, which will not return. */
    png_default_error(png_ptr, error_message);
 }
+#else
+PNG_FUNCTION(void,PNGAPI
+png_err,(png_structp png_ptr),PNG_NORETURN)
+{
+   /* Prior to 1.5.2 the error_fn received a NULL pointer, expressed
+    * erroneously as '\0', instead of the empty string "".  This was
+    * apparently an error, introduced in libpng-1.2.20, and png_default_error
+    * will crash in this case.
+    */
+   if (png_ptr != NULL && png_ptr->error_fn != NULL)
+      (*(png_ptr->error_fn))(png_ptr, "");
 
+   /* If the custom handler doesn't exist, or if it returns,
+      use the default handler, which will not return. */
+   png_default_error(png_ptr, "");
+}
+#endif /* PNG_ERROR_TEXT_SUPPORTED */
+
+/* Utility to safely appends strings to a buffer.  This never errors out so
+ * error checking is not required in the caller.
+ */
+size_t
+png_safecat(png_charp buffer, size_t bufsize, size_t pos,
+   png_const_charp string)
+{
+   if (buffer != NULL && pos < bufsize)
+   {
+      if (string != NULL)
+         while (*string != '\0' && pos < bufsize-1)
+           buffer[pos++] = *string++;
+
+      buffer[pos] = '\0';
+   }
+
+   return pos;
+}
+
+#if defined(PNG_WARNINGS_SUPPORTED) || defined(PNG_TIME_RFC1123_SUPPORTED)
+/* Utility to dump an unsigned value into a buffer, given a start pointer and
+ * and end pointer (which should point just *beyond* the end of the buffer!)
+ * Returns the pointer to the start of the formatted string.
+ */
+png_charp
+png_format_number(png_const_charp start, png_charp end, int format,
+   png_alloc_size_t number)
+{
+   int count = 0;    /* number of digits output */
+   int mincount = 1; /* minimum number required */
+   int output = 0;   /* digit output (for the fixed point format) */
+
+   *--end = '\0';
+
+   /* This is written so that the loop always runs at least once, even with
+    * number zero.
+    */
+   while (end > start && (number != 0 || count < mincount))
+   {
+
+      static const char digits[] = "0123456789ABCDEF";
+
+      switch (format)
+      {
+         case PNG_NUMBER_FORMAT_fixed:
+            /* Needs five digits (the fraction) */
+            mincount = 5;
+            if (output || number % 10 != 0)
+            {
+               *--end = digits[number % 10];
+               output = 1;
+            }
+            number /= 10;
+            break;
+
+         case PNG_NUMBER_FORMAT_02u:
+            /* Expects at least 2 digits. */
+            mincount = 2;
+            /* fall through */
+
+         case PNG_NUMBER_FORMAT_u:
+            *--end = digits[number % 10];
+            number /= 10;
+            break;
+
+         case PNG_NUMBER_FORMAT_02x:
+            /* This format expects at least two digits */
+            mincount = 2;
+            /* fall through */
+
+         case PNG_NUMBER_FORMAT_x:
+            *--end = digits[number & 0xf];
+            number >>= 4;
+            break;
+
+         default: /* an error */
+            number = 0;
+            break;
+      }
+
+      /* Keep track of the number of digits added */
+      ++count;
+
+      /* Float a fixed number here: */
+      if (format == PNG_NUMBER_FORMAT_fixed) if (count == 5) if (end > start)
+      {
+         /* End of the fraction, but maybe nothing was output?  In that case
+          * drop the decimal point.  If the number is a true zero handle that
+          * here.
+          */
+         if (output)
+            *--end = '.';
+         else if (number == 0) /* and !output */
+            *--end = '0';
+      }
+   }
+
+   return end;
+}
+#endif
+
+#ifdef PNG_WARNINGS_SUPPORTED
 /* This function is called whenever there is a non-fatal error.  This function
  * should not be changed.  If there is a need to handle warnings differently,
  * you should supply a replacement warning function and use
@@ -119,22 +246,143 @@ png_warning(png_structp png_ptr, png_const_charp warning_message)
    {
 #ifdef PNG_ERROR_NUMBERS_SUPPORTED
    if (png_ptr->flags&
-     (PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))
+       (PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))
 #endif
-     {
-       if (*warning_message == '#')
-       {
-           for (offset=1; offset<15; offset++)
-              if (*(warning_message+offset) == ' ')
+      {
+         if (*warning_message == PNG_LITERAL_SHARP)
+         {
+            for (offset = 1; offset < 15; offset++)
+               if (warning_message[offset] == ' ')
                   break;
-       }
-     }
-     if (png_ptr != NULL && png_ptr->warning_fn != NULL)
-        (*(png_ptr->warning_fn))(png_ptr, warning_message+offset);
+         }
+      }
    }
+   if (png_ptr != NULL && png_ptr->warning_fn != NULL)
+      (*(png_ptr->warning_fn))(png_ptr, warning_message + offset);
    else
-      png_default_warning(png_ptr, warning_message+offset);
+      png_default_warning(png_ptr, warning_message + offset);
+}
+
+/* These functions support 'formatted' warning messages with up to
+ * PNG_WARNING_PARAMETER_COUNT parameters.  In the format string the parameter
+ * is introduced by @<number>, where 'number' starts at 1.  This follows the
+ * standard established by X/Open for internationalizable error messages.
+ */
+void
+png_warning_parameter(png_warning_parameters p, int number,
+   png_const_charp string)
+{
+   if (number > 0 && number <= PNG_WARNING_PARAMETER_COUNT)
+      (void)png_safecat(p[number-1], (sizeof p[number-1]), 0, string);
+}
+
+void
+png_warning_parameter_unsigned(png_warning_parameters p, int number, int format,
+   png_alloc_size_t value)
+{
+   char buffer[PNG_NUMBER_BUFFER_SIZE];
+   png_warning_parameter(p, number, PNG_FORMAT_NUMBER(buffer, format, value));
+}
+
+void
+png_warning_parameter_signed(png_warning_parameters p, int number, int format,
+   png_int_32 value)
+{
+   png_alloc_size_t u;
+   png_charp str;
+   char buffer[PNG_NUMBER_BUFFER_SIZE];
+
+   /* Avoid overflow by doing the negate in a png_alloc_size_t: */
+   u = (png_alloc_size_t)value;
+   if (value < 0)
+      u = ~u + 1;
+
+   str = PNG_FORMAT_NUMBER(buffer, format, u);
+
+   if (value < 0 && str > buffer)
+      *--str = '-';
+
+   png_warning_parameter(p, number, str);
+}
+
+void
+png_formatted_warning(png_structp png_ptr, png_warning_parameters p,
+   png_const_charp message)
+{
+   /* The internal buffer is just 128 bytes - enough for all our messages,
+    * overflow doesn't happen because this code checks!
+    */
+   size_t i;
+   char msg[128];
+
+   for (i=0; i<(sizeof msg)-1 && *message != '\0'; ++i)
+   {
+      if (*message == '@')
+      {
+         int parameter = -1;
+         switch (*++message)
+         {
+            case '1':
+               parameter = 0;
+               break;
+
+            case '2':
+               parameter = 1;
+               break;
+
+            case '\0':
+               continue; /* To break out of the for loop above. */
+
+            default:
+               break;
+         }
+
+         if (parameter >= 0 && parameter < PNG_WARNING_PARAMETER_COUNT)
+         {
+            /* Append this parameter */
+            png_const_charp parm = p[parameter];
+            png_const_charp pend = p[parameter] + (sizeof p[parameter]);
+
+            /* No need to copy the trailing '\0' here, but there is no guarantee
+             * that parm[] has been initialized, so there is no guarantee of a
+             * trailing '\0':
+             */
+            for (; i<(sizeof msg)-1 && parm != '\0' && parm < pend; ++i)
+               msg[i] = *parm++;
+
+            ++message;
+            continue;
+         }
+
+         /* else not a parameter and there is a character after the @ sign; just
+          * copy that.
+          */
+      }
+
+      /* At this point *message can't be '\0', even in the bad parameter case
+       * above where there is a lone '@' at the end of the message string.
+       */
+      msg[i] = *message++;
+   }
+
+   /* i is always less than (sizeof msg), so: */
+   msg[i] = '\0';
+
+   /* And this is the formatted message: */
+   png_warning(png_ptr, msg);
+}
+#endif /* PNG_WARNINGS_SUPPORTED */
+
+#ifdef PNG_BENIGN_ERRORS_SUPPORTED
+void PNGAPI
+png_benign_error(png_structp png_ptr, png_const_charp error_message)
+{
+  if (png_ptr->flags & PNG_FLAG_BENIGN_ERRORS_WARN)
+     png_warning(png_ptr, error_message);
+  else
+     png_error(png_ptr, error_message);
 }
+#endif
 
 /* These utilities are used internally to build an error message that relates
  * to the current chunk.  The chunk name comes from png_ptr->chunk_name,
@@ -148,9 +396,11 @@ static PNG_CONST char png_digit[16] = {
    'A', 'B', 'C', 'D', 'E', 'F'
 };
 
+#define PNG_MAX_ERROR_TEXT 64
+#if defined(PNG_WARNINGS_SUPPORTED) || defined(PNG_ERROR_TEXT_SUPPORTED)
 static void /* PRIVATE */
 png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp
-   error_message)
+    error_message)
 {
    int iout = 0, iin = 0;
 
@@ -159,11 +409,12 @@ png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp
       int c = png_ptr->chunk_name[iin++];
       if (isnonalpha(c))
       {
-         buffer[iout++] = '[';
+         buffer[iout++] = PNG_LITERAL_LEFT_SQUARE_BRACKET;
          buffer[iout++] = png_digit[(c & 0xf0) >> 4];
          buffer[iout++] = png_digit[c & 0x0f];
-         buffer[iout++] = ']';
+         buffer[iout++] = PNG_LITERAL_RIGHT_SQUARE_BRACKET;
       }
+
       else
       {
          buffer[iout++] = (png_byte)c;
@@ -171,99 +422,183 @@ png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp
    }
 
    if (error_message == NULL)
-      buffer[iout] = 0;
+      buffer[iout] = '\0';
+
    else
    {
       buffer[iout++] = ':';
       buffer[iout++] = ' ';
-      png_strncpy(buffer+iout, error_message, 63);
-      buffer[iout+63] = 0;
+
+      iin = 0;
+      while (iin < PNG_MAX_ERROR_TEXT-1 && error_message[iin] != '\0')
+         buffer[iout++] = error_message[iin++];
+
+      /* iin < PNG_MAX_ERROR_TEXT, so the following is safe: */
+      buffer[iout] = '\0';
    }
 }
+#endif /* PNG_WARNINGS_SUPPORTED || PNG_ERROR_TEXT_SUPPORTED */
 
-void PNGAPI
-png_chunk_error(png_structp png_ptr, png_const_charp error_message)
+#if defined(PNG_READ_SUPPORTED) && defined(PNG_ERROR_TEXT_SUPPORTED)
+PNG_FUNCTION(void,PNGAPI
+png_chunk_error,(png_structp png_ptr, png_const_charp error_message),
+   PNG_NORETURN)
 {
-   char msg[18+64];
+   char msg[18+PNG_MAX_ERROR_TEXT];
    if (png_ptr == NULL)
-     png_error(png_ptr, error_message);
+      png_error(png_ptr, error_message);
+
    else
    {
-     png_format_buffer(png_ptr, msg, error_message);
-     png_error(png_ptr, msg);
+      png_format_buffer(png_ptr, msg, error_message);
+      png_error(png_ptr, msg);
    }
 }
+#endif /* PNG_READ_SUPPORTED && PNG_ERROR_TEXT_SUPPORTED */
 
+#ifdef PNG_WARNINGS_SUPPORTED
 void PNGAPI
 png_chunk_warning(png_structp png_ptr, png_const_charp warning_message)
 {
-   char msg[18+64];
+   char msg[18+PNG_MAX_ERROR_TEXT];
    if (png_ptr == NULL)
-     png_warning(png_ptr, warning_message);
+      png_warning(png_ptr, warning_message);
+
    else
    {
-     png_format_buffer(png_ptr, msg, warning_message);
-     png_warning(png_ptr, msg);
+      png_format_buffer(png_ptr, msg, warning_message);
+      png_warning(png_ptr, msg);
    }
 }
+#endif /* PNG_WARNINGS_SUPPORTED */
+
+#ifdef PNG_READ_SUPPORTED
+#ifdef PNG_BENIGN_ERRORS_SUPPORTED
+void PNGAPI
+png_chunk_benign_error(png_structp png_ptr, png_const_charp error_message)
+{
+   if (png_ptr->flags & PNG_FLAG_BENIGN_ERRORS_WARN)
+      png_chunk_warning(png_ptr, error_message);
+
+   else
+      png_chunk_error(png_ptr, error_message);
+}
+#endif
+#endif /* PNG_READ_SUPPORTED */
+
+#ifdef PNG_ERROR_TEXT_SUPPORTED
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_FUNCTION(void,
+png_fixed_error,(png_structp png_ptr, png_const_charp name),PNG_NORETURN)
+{
+#  define fixed_message "fixed point overflow in "
+#  define fixed_message_ln ((sizeof fixed_message)-1)
+   int  iin;
+   char msg[fixed_message_ln+PNG_MAX_ERROR_TEXT];
+   png_memcpy(msg, fixed_message, fixed_message_ln);
+   iin = 0;
+   if (name != NULL) while (iin < (PNG_MAX_ERROR_TEXT-1) && name[iin] != 0)
+   {
+      msg[fixed_message_ln + iin] = name[iin];
+      ++iin;
+   }
+   msg[fixed_message_ln + iin] = 0;
+   png_error(png_ptr, msg);
+}
+#endif
+#endif
+
+#ifdef PNG_SETJMP_SUPPORTED
+/* This API only exists if ANSI-C style error handling is used,
+ * otherwise it is necessary for png_default_error to be overridden.
+ */
+jmp_buf* PNGAPI
+png_set_longjmp_fn(png_structp png_ptr, png_longjmp_ptr longjmp_fn,
+    size_t jmp_buf_size)
+{
+   if (png_ptr == NULL || jmp_buf_size != png_sizeof(jmp_buf))
+      return NULL;
+
+   png_ptr->longjmp_fn = longjmp_fn;
+   return &png_ptr->longjmp_buffer;
+}
+#endif
 
 /* This is the default error handling function.  Note that replacements for
  * this function MUST NOT RETURN, or the program will likely crash.  This
  * function is used by default, or if the program supplies NULL for the
  * error function pointer in png_set_error_fn().
  */
-static void /* PRIVATE */
-png_default_error(png_structp png_ptr, png_const_charp error_message)
+static PNG_FUNCTION(void /* PRIVATE */,
+png_default_error,(png_structp png_ptr, png_const_charp error_message),
+   PNG_NORETURN)
 {
-#ifndef PNG_NO_CONSOLE_IO
+#ifdef PNG_CONSOLE_IO_SUPPORTED
 #ifdef PNG_ERROR_NUMBERS_SUPPORTED
-   if (*error_message == '#')
+   /* Check on NULL only added in 1.5.4 */
+   if (error_message != NULL && *error_message == PNG_LITERAL_SHARP)
    {
-     int offset;
-     char error_number[16];
-     for (offset=0; offset<15; offset++)
-     {
-         error_number[offset] = *(error_message+offset+1);
-         if (*(error_message+offset) == ' ')
-             break;
-     }
-     if((offset > 1) && (offset < 15))
-     {
-       error_number[offset-1]='\0';
-       fprintf(stderr, "libpng error no. %s: %s\n", error_number,
-          error_message+offset);
-     }
-     else
-       fprintf(stderr, "libpng error: %s, offset=%d\n", error_message,offset);
+      /* Strip "#nnnn " from beginning of error message. */
+      int offset;
+      char error_number[16];
+      for (offset = 0; offset<15; offset++)
+      {
+         error_number[offset] = error_message[offset + 1];
+         if (error_message[offset] == ' ')
+            break;
+      }
+
+      if ((offset > 1) && (offset < 15))
+      {
+         error_number[offset - 1] = '\0';
+         fprintf(stderr, "libpng error no. %s: %s",
+             error_number, error_message + offset + 1);
+         fprintf(stderr, PNG_STRING_NEWLINE);
+      }
+
+      else
+      {
+         fprintf(stderr, "libpng error: %s, offset=%d",
+             error_message, offset);
+         fprintf(stderr, PNG_STRING_NEWLINE);
+      }
    }
    else
 #endif
-   fprintf(stderr, "libpng error: %s\n", error_message);
+   {
+      fprintf(stderr, "libpng error: %s", error_message ? error_message :
+         "undefined");
+      fprintf(stderr, PNG_STRING_NEWLINE);
+   }
+#else
+   PNG_UNUSED(error_message) /* Make compiler happy */
 #endif
+   png_longjmp(png_ptr, 1);
+}
 
+PNG_FUNCTION(void,PNGAPI
+png_longjmp,(png_structp png_ptr, int val),PNG_NORETURN)
+{
 #ifdef PNG_SETJMP_SUPPORTED
-   if (png_ptr)
+   if (png_ptr && png_ptr->longjmp_fn)
    {
 #  ifdef USE_FAR_KEYWORD
-   {
-      jmp_buf jmpbuf;
-      png_memcpy(jmpbuf,png_ptr->jmpbuf,png_sizeof(jmp_buf));
-      longjmp(jmpbuf, 1);
-   }
+      {
+         jmp_buf tmp_jmpbuf;
+         png_memcpy(tmp_jmpbuf, png_ptr->longjmp_buffer, png_sizeof(jmp_buf));
+         png_ptr->longjmp_fn(tmp_jmpbuf, val);
+      }
+
 #  else
-   longjmp(png_ptr->jmpbuf, 1);
+   png_ptr->longjmp_fn(png_ptr->longjmp_buffer, val);
 #  endif
    }
-#else
-   PNG_ABORT();
-#endif
-#ifdef PNG_NO_CONSOLE_IO
-   /* make compiler happy */ ;
-   if (&error_message != NULL)
-      return;
 #endif
+   /* Here if not setjmp support or if png_ptr is null. */
+   PNG_ABORT();
 }
 
+#ifdef PNG_WARNINGS_SUPPORTED
 /* This function is called when there is a warning, but the library thinks
  * it can continue anyway.  Replacement functions don't have to do anything
  * here if you don't want them to.  In the default configuration, png_ptr is
@@ -272,54 +607,67 @@ png_default_error(png_structp png_ptr, png_const_charp error_message)
 static void /* PRIVATE */
 png_default_warning(png_structp png_ptr, png_const_charp warning_message)
 {
-#ifndef PNG_NO_CONSOLE_IO
+#ifdef PNG_CONSOLE_IO_SUPPORTED
 #  ifdef PNG_ERROR_NUMBERS_SUPPORTED
-   if (*warning_message == '#')
+   if (*warning_message == PNG_LITERAL_SHARP)
    {
-     int offset;
-     char warning_number[16];
-     for (offset=0; offset<15; offset++)
-     {
-        warning_number[offset]=*(warning_message+offset+1);
-        if (*(warning_message+offset) == ' ')
+      int offset;
+      char warning_number[16];
+      for (offset = 0; offset < 15; offset++)
+      {
+         warning_number[offset] = warning_message[offset + 1];
+         if (warning_message[offset] == ' ')
             break;
-     }
-     if((offset > 1) && (offset < 15))
-     {
-       warning_number[offset-1]='\0';
-       fprintf(stderr, "libpng warning no. %s: %s\n", warning_number,
-          warning_message+offset);
-     }
-     else
-       fprintf(stderr, "libpng warning: %s\n", warning_message);
+      }
+
+      if ((offset > 1) && (offset < 15))
+      {
+         warning_number[offset + 1] = '\0';
+         fprintf(stderr, "libpng warning no. %s: %s",
+             warning_number, warning_message + offset);
+         fprintf(stderr, PNG_STRING_NEWLINE);
+      }
+
+      else
+      {
+         fprintf(stderr, "libpng warning: %s",
+             warning_message);
+         fprintf(stderr, PNG_STRING_NEWLINE);
+      }
    }
    else
 #  endif
-     fprintf(stderr, "libpng warning: %s\n", warning_message);
+
+   {
+      fprintf(stderr, "libpng warning: %s", warning_message);
+      fprintf(stderr, PNG_STRING_NEWLINE);
+   }
 #else
-   /* make compiler happy */ ;
-   if (warning_message)
-     return;
+   PNG_UNUSED(warning_message) /* Make compiler happy */
 #endif
-   /* make compiler happy */ ;
-   if (png_ptr)
-      return;
+   PNG_UNUSED(png_ptr) /* Make compiler happy */
 }
+#endif /* PNG_WARNINGS_SUPPORTED */
 
 /* This function is called when the application wants to use another method
  * of handling errors and warnings.  Note that the error function MUST NOT
  * return to the calling routine or serious problems will occur.  The return
- * method used in the default routine calls longjmp(png_ptr->jmpbuf, 1)
+ * method used in the default routine calls longjmp(png_ptr->longjmp_buffer, 1)
  */
 void PNGAPI
 png_set_error_fn(png_structp png_ptr, png_voidp error_ptr,
-   png_error_ptr error_fn, png_error_ptr warning_fn)
+    png_error_ptr error_fn, png_error_ptr warning_fn)
 {
    if (png_ptr == NULL)
       return;
+
    png_ptr->error_ptr = error_ptr;
    png_ptr->error_fn = error_fn;
+#ifdef PNG_WARNINGS_SUPPORTED
    png_ptr->warning_fn = warning_fn;
+#else
+   PNG_UNUSED(warning_fn)
+#endif
 }
 
 
@@ -328,10 +676,11 @@ png_set_error_fn(png_structp png_ptr, png_voidp error_ptr,
  * pointer before png_write_destroy and png_read_destroy are called.
  */
 png_voidp PNGAPI
-png_get_error_ptr(png_structp png_ptr)
+png_get_error_ptr(png_const_structp png_ptr)
 {
    if (png_ptr == NULL)
       return NULL;
+
    return ((png_voidp)png_ptr->error_ptr);
 }
 
@@ -340,10 +689,11 @@ png_get_error_ptr(png_structp png_ptr)
 void PNGAPI
 png_set_strip_error_numbers(png_structp png_ptr, png_uint_32 strip_mode)
 {
-   if(png_ptr != NULL)
+   if (png_ptr != NULL)
    {
-     png_ptr->flags &=
-       ((~(PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))&strip_mode);
+      png_ptr->flags &=
+         ((~(PNG_FLAG_STRIP_ERROR_NUMBERS |
+         PNG_FLAG_STRIP_ERROR_TEXT))&strip_mode);
    }
 }
 #endif
diff --git a/jdk/src/share/native/sun/awt/libpng/pngget.c b/jdk/src/share/native/sun/awt/libpng/pngget.c
index b068fee..ea27004 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngget.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngget.c
@@ -29,612 +29,712 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.15 January 5, 2007
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.1 [February 3, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ *
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
 
 #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
 
 png_uint_32 PNGAPI
-png_get_valid(png_structp png_ptr, png_infop info_ptr, png_uint_32 flag)
+png_get_valid(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_uint_32 flag)
 {
    if (png_ptr != NULL && info_ptr != NULL)
       return(info_ptr->valid & flag);
-   else
-      return(0);
+
+   return(0);
 }
 
-png_uint_32 PNGAPI
-png_get_rowbytes(png_structp png_ptr, png_infop info_ptr)
+png_size_t PNGAPI
+png_get_rowbytes(png_const_structp png_ptr, png_const_infop info_ptr)
 {
    if (png_ptr != NULL && info_ptr != NULL)
       return(info_ptr->rowbytes);
-   else
-      return(0);
+
+   return(0);
 }
 
-#if defined(PNG_INFO_IMAGE_SUPPORTED)
+#ifdef PNG_INFO_IMAGE_SUPPORTED
 png_bytepp PNGAPI
-png_get_rows(png_structp png_ptr, png_infop info_ptr)
+png_get_rows(png_const_structp png_ptr, png_const_infop info_ptr)
 {
    if (png_ptr != NULL && info_ptr != NULL)
       return(info_ptr->row_pointers);
-   else
-      return(0);
+
+   return(0);
 }
 #endif
 
 #ifdef PNG_EASY_ACCESS_SUPPORTED
-/* easy access to info, added in libpng-0.99 */
+/* Easy access to info, added in libpng-0.99 */
 png_uint_32 PNGAPI
-png_get_image_width(png_structp png_ptr, png_infop info_ptr)
+png_get_image_width(png_const_structp png_ptr, png_const_infop info_ptr)
 {
    if (png_ptr != NULL && info_ptr != NULL)
-   {
       return info_ptr->width;
-   }
+
    return (0);
 }
 
 png_uint_32 PNGAPI
-png_get_image_height(png_structp png_ptr, png_infop info_ptr)
+png_get_image_height(png_const_structp png_ptr, png_const_infop info_ptr)
 {
    if (png_ptr != NULL && info_ptr != NULL)
-   {
       return info_ptr->height;
-   }
+
    return (0);
 }
 
 png_byte PNGAPI
-png_get_bit_depth(png_structp png_ptr, png_infop info_ptr)
+png_get_bit_depth(png_const_structp png_ptr, png_const_infop info_ptr)
 {
    if (png_ptr != NULL && info_ptr != NULL)
-   {
       return info_ptr->bit_depth;
-   }
+
    return (0);
 }
 
 png_byte PNGAPI
-png_get_color_type(png_structp png_ptr, png_infop info_ptr)
+png_get_color_type(png_const_structp png_ptr, png_const_infop info_ptr)
 {
    if (png_ptr != NULL && info_ptr != NULL)
-   {
       return info_ptr->color_type;
-   }
+
    return (0);
 }
 
 png_byte PNGAPI
-png_get_filter_type(png_structp png_ptr, png_infop info_ptr)
+png_get_filter_type(png_const_structp png_ptr, png_const_infop info_ptr)
 {
    if (png_ptr != NULL && info_ptr != NULL)
-   {
       return info_ptr->filter_type;
-   }
+
    return (0);
 }
 
 png_byte PNGAPI
-png_get_interlace_type(png_structp png_ptr, png_infop info_ptr)
+png_get_interlace_type(png_const_structp png_ptr, png_const_infop info_ptr)
 {
    if (png_ptr != NULL && info_ptr != NULL)
-   {
       return info_ptr->interlace_type;
-   }
+
    return (0);
 }
 
 png_byte PNGAPI
-png_get_compression_type(png_structp png_ptr, png_infop info_ptr)
+png_get_compression_type(png_const_structp png_ptr, png_const_infop info_ptr)
 {
    if (png_ptr != NULL && info_ptr != NULL)
-   {
       return info_ptr->compression_type;
-   }
+
    return (0);
 }
 
 png_uint_32 PNGAPI
-png_get_x_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
+png_get_x_pixels_per_meter(png_const_structp png_ptr, png_const_infop info_ptr)
 {
-   if (png_ptr != NULL && info_ptr != NULL)
-#if defined(PNG_pHYs_SUPPORTED)
-   if (info_ptr->valid & PNG_INFO_pHYs)
-   {
-      png_debug1(1, "in %s retrieval function\n", "png_get_x_pixels_per_meter");
-      if(info_ptr->phys_unit_type != PNG_RESOLUTION_METER)
-          return (0);
-      else return (info_ptr->x_pixels_per_unit);
-   }
-#else
-   return (0);
+#ifdef PNG_pHYs_SUPPORTED
+   if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs))
+      {
+         png_debug1(1, "in %s retrieval function",
+             "png_get_x_pixels_per_meter");
+
+         if (info_ptr->phys_unit_type == PNG_RESOLUTION_METER)
+            return (info_ptr->x_pixels_per_unit);
+      }
 #endif
+
    return (0);
 }
 
 png_uint_32 PNGAPI
-png_get_y_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
+png_get_y_pixels_per_meter(png_const_structp png_ptr, png_const_infop info_ptr)
 {
-   if (png_ptr != NULL && info_ptr != NULL)
-#if defined(PNG_pHYs_SUPPORTED)
-   if (info_ptr->valid & PNG_INFO_pHYs)
+#ifdef PNG_pHYs_SUPPORTED
+   if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs))
    {
-      png_debug1(1, "in %s retrieval function\n", "png_get_y_pixels_per_meter");
-      if(info_ptr->phys_unit_type != PNG_RESOLUTION_METER)
-          return (0);
-      else return (info_ptr->y_pixels_per_unit);
+      png_debug1(1, "in %s retrieval function",
+          "png_get_y_pixels_per_meter");
+
+      if (info_ptr->phys_unit_type == PNG_RESOLUTION_METER)
+         return (info_ptr->y_pixels_per_unit);
    }
-#else
-   return (0);
 #endif
+
    return (0);
 }
 
 png_uint_32 PNGAPI
-png_get_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
+png_get_pixels_per_meter(png_const_structp png_ptr, png_const_infop info_ptr)
 {
-   if (png_ptr != NULL && info_ptr != NULL)
-#if defined(PNG_pHYs_SUPPORTED)
-   if (info_ptr->valid & PNG_INFO_pHYs)
+#ifdef PNG_pHYs_SUPPORTED
+   if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs))
    {
-      png_debug1(1, "in %s retrieval function\n", "png_get_pixels_per_meter");
-      if(info_ptr->phys_unit_type != PNG_RESOLUTION_METER ||
-         info_ptr->x_pixels_per_unit != info_ptr->y_pixels_per_unit)
-          return (0);
-      else return (info_ptr->x_pixels_per_unit);
+      png_debug1(1, "in %s retrieval function", "png_get_pixels_per_meter");
+
+      if (info_ptr->phys_unit_type == PNG_RESOLUTION_METER &&
+          info_ptr->x_pixels_per_unit == info_ptr->y_pixels_per_unit)
+         return (info_ptr->x_pixels_per_unit);
    }
-#else
-   return (0);
 #endif
+
    return (0);
 }
 
 #ifdef PNG_FLOATING_POINT_SUPPORTED
 float PNGAPI
-png_get_pixel_aspect_ratio(png_structp png_ptr, png_infop info_ptr)
-   {
-   if (png_ptr != NULL && info_ptr != NULL)
-#if defined(PNG_pHYs_SUPPORTED)
-   if (info_ptr->valid & PNG_INFO_pHYs)
+png_get_pixel_aspect_ratio(png_const_structp png_ptr, png_const_infop info_ptr)
+{
+#ifdef PNG_READ_pHYs_SUPPORTED
+   if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs))
    {
-      png_debug1(1, "in %s retrieval function\n", "png_get_aspect_ratio");
-      if (info_ptr->x_pixels_per_unit == 0)
-         return ((float)0.0);
-      else
+      png_debug1(1, "in %s retrieval function", "png_get_aspect_ratio");
+
+      if (info_ptr->x_pixels_per_unit != 0)
          return ((float)((float)info_ptr->y_pixels_per_unit
-            /(float)info_ptr->x_pixels_per_unit));
+             /(float)info_ptr->x_pixels_per_unit));
    }
-#else
-   return (0.0);
 #endif
+
    return ((float)0.0);
 }
 #endif
 
+#ifdef PNG_FIXED_POINT_SUPPORTED
+png_fixed_point PNGAPI
+png_get_pixel_aspect_ratio_fixed(png_const_structp png_ptr,
+    png_const_infop info_ptr)
+{
+#ifdef PNG_READ_pHYs_SUPPORTED
+   if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs)
+       && info_ptr->x_pixels_per_unit > 0 && info_ptr->y_pixels_per_unit > 0
+       && info_ptr->x_pixels_per_unit <= PNG_UINT_31_MAX
+       && info_ptr->y_pixels_per_unit <= PNG_UINT_31_MAX)
+   {
+      png_fixed_point res;
+
+      png_debug1(1, "in %s retrieval function", "png_get_aspect_ratio_fixed");
+
+      /* The following casts work because a PNG 4 byte integer only has a valid
+       * range of 0..2^31-1; otherwise the cast might overflow.
+       */
+      if (png_muldiv(&res, (png_int_32)info_ptr->y_pixels_per_unit, PNG_FP_1,
+          (png_int_32)info_ptr->x_pixels_per_unit))
+         return res;
+   }
+#endif
+
+   return 0;
+}
+#endif
+
 png_int_32 PNGAPI
-png_get_x_offset_microns(png_structp png_ptr, png_infop info_ptr)
+png_get_x_offset_microns(png_const_structp png_ptr, png_const_infop info_ptr)
 {
-   if (png_ptr != NULL && info_ptr != NULL)
-#if defined(PNG_oFFs_SUPPORTED)
-   if (info_ptr->valid & PNG_INFO_oFFs)
+#ifdef PNG_oFFs_SUPPORTED
+   if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs))
    {
-      png_debug1(1, "in %s retrieval function\n", "png_get_x_offset_microns");
-      if(info_ptr->offset_unit_type != PNG_OFFSET_MICROMETER)
-          return (0);
-      else return (info_ptr->x_offset);
+      png_debug1(1, "in %s retrieval function", "png_get_x_offset_microns");
+
+      if (info_ptr->offset_unit_type == PNG_OFFSET_MICROMETER)
+         return (info_ptr->x_offset);
    }
-#else
-   return (0);
 #endif
+
    return (0);
 }
 
 png_int_32 PNGAPI
-png_get_y_offset_microns(png_structp png_ptr, png_infop info_ptr)
+png_get_y_offset_microns(png_const_structp png_ptr, png_const_infop info_ptr)
 {
-   if (png_ptr != NULL && info_ptr != NULL)
-#if defined(PNG_oFFs_SUPPORTED)
-   if (info_ptr->valid & PNG_INFO_oFFs)
+#ifdef PNG_oFFs_SUPPORTED
+   if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs))
    {
-      png_debug1(1, "in %s retrieval function\n", "png_get_y_offset_microns");
-      if(info_ptr->offset_unit_type != PNG_OFFSET_MICROMETER)
-          return (0);
-      else return (info_ptr->y_offset);
+      png_debug1(1, "in %s retrieval function", "png_get_y_offset_microns");
+
+      if (info_ptr->offset_unit_type == PNG_OFFSET_MICROMETER)
+         return (info_ptr->y_offset);
    }
-#else
-   return (0);
 #endif
+
    return (0);
 }
 
 png_int_32 PNGAPI
-png_get_x_offset_pixels(png_structp png_ptr, png_infop info_ptr)
+png_get_x_offset_pixels(png_const_structp png_ptr, png_const_infop info_ptr)
 {
-   if (png_ptr != NULL && info_ptr != NULL)
-#if defined(PNG_oFFs_SUPPORTED)
-   if (info_ptr->valid & PNG_INFO_oFFs)
+#ifdef PNG_oFFs_SUPPORTED
+   if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs))
    {
-      png_debug1(1, "in %s retrieval function\n", "png_get_x_offset_microns");
-      if(info_ptr->offset_unit_type != PNG_OFFSET_PIXEL)
-          return (0);
-      else return (info_ptr->x_offset);
+      png_debug1(1, "in %s retrieval function", "png_get_x_offset_pixels");
+
+      if (info_ptr->offset_unit_type == PNG_OFFSET_PIXEL)
+         return (info_ptr->x_offset);
    }
-#else
-   return (0);
 #endif
+
    return (0);
 }
 
 png_int_32 PNGAPI
-png_get_y_offset_pixels(png_structp png_ptr, png_infop info_ptr)
+png_get_y_offset_pixels(png_const_structp png_ptr, png_const_infop info_ptr)
 {
-   if (png_ptr != NULL && info_ptr != NULL)
-#if defined(PNG_oFFs_SUPPORTED)
-   if (info_ptr->valid & PNG_INFO_oFFs)
+#ifdef PNG_oFFs_SUPPORTED
+   if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs))
    {
-      png_debug1(1, "in %s retrieval function\n", "png_get_y_offset_microns");
-      if(info_ptr->offset_unit_type != PNG_OFFSET_PIXEL)
-          return (0);
-      else return (info_ptr->y_offset);
+      png_debug1(1, "in %s retrieval function", "png_get_y_offset_pixels");
+
+      if (info_ptr->offset_unit_type == PNG_OFFSET_PIXEL)
+         return (info_ptr->y_offset);
    }
-#else
-   return (0);
 #endif
+
    return (0);
 }
 
-#if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED)
+#ifdef PNG_INCH_CONVERSIONS_SUPPORTED
+static png_uint_32
+ppi_from_ppm(png_uint_32 ppm)
+{
+#if 0
+   /* The conversion is *(2.54/100), in binary (32 digits):
+    * .00000110100000001001110101001001
+    */
+   png_uint_32 t1001, t1101;
+   ppm >>= 1;                  /* .1 */
+   t1001 = ppm + (ppm >> 3);   /* .1001 */
+   t1101 = t1001 + (ppm >> 1); /* .1101 */
+   ppm >>= 20;                 /* .000000000000000000001 */
+   t1101 += t1101 >> 15;       /* .1101000000000001101 */
+   t1001 >>= 11;               /* .000000000001001 */
+   t1001 += t1001 >> 12;       /* .000000000001001000000001001 */
+   ppm += t1001;               /* .000000000001001000001001001 */
+   ppm += t1101;               /* .110100000001001110101001001 */
+   return (ppm + 16) >> 5;/* .00000110100000001001110101001001 */
+#else
+   /* The argument is a PNG unsigned integer, so it is not permitted
+    * to be bigger than 2^31.
+    */
+   png_fixed_point result;
+   if (ppm <= PNG_UINT_31_MAX && png_muldiv(&result, (png_int_32)ppm, 127,
+       5000))
+      return result;
+
+   /* Overflow. */
+   return 0;
+#endif
+}
+
 png_uint_32 PNGAPI
-png_get_pixels_per_inch(png_structp png_ptr, png_infop info_ptr)
+png_get_pixels_per_inch(png_const_structp png_ptr, png_const_infop info_ptr)
 {
-   return ((png_uint_32)((float)png_get_pixels_per_meter(png_ptr, info_ptr)
-     *.0254 +.5));
+   return ppi_from_ppm(png_get_pixels_per_meter(png_ptr, info_ptr));
 }
 
 png_uint_32 PNGAPI
-png_get_x_pixels_per_inch(png_structp png_ptr, png_infop info_ptr)
+png_get_x_pixels_per_inch(png_const_structp png_ptr, png_const_infop info_ptr)
 {
-   return ((png_uint_32)((float)png_get_x_pixels_per_meter(png_ptr, info_ptr)
-     *.0254 +.5));
+   return ppi_from_ppm(png_get_x_pixels_per_meter(png_ptr, info_ptr));
 }
 
 png_uint_32 PNGAPI
-png_get_y_pixels_per_inch(png_structp png_ptr, png_infop info_ptr)
+png_get_y_pixels_per_inch(png_const_structp png_ptr, png_const_infop info_ptr)
 {
-   return ((png_uint_32)((float)png_get_y_pixels_per_meter(png_ptr, info_ptr)
-     *.0254 +.5));
+   return ppi_from_ppm(png_get_y_pixels_per_meter(png_ptr, info_ptr));
 }
 
+#ifdef PNG_FIXED_POINT_SUPPORTED
+static png_fixed_point
+png_fixed_inches_from_microns(png_structp png_ptr, png_int_32 microns)
+{
+   /* Convert from metres * 1,000,000 to inches * 100,000, meters to
+    * inches is simply *(100/2.54), so we want *(10/2.54) == 500/127.
+    * Notice that this can overflow - a warning is output and 0 is
+    * returned.
+    */
+   return png_muldiv_warn(png_ptr, microns, 500, 127);
+}
+
+png_fixed_point PNGAPI
+png_get_x_offset_inches_fixed(png_structp png_ptr,
+    png_const_infop info_ptr)
+{
+   return png_fixed_inches_from_microns(png_ptr,
+       png_get_x_offset_microns(png_ptr, info_ptr));
+}
+#endif
+
+#ifdef PNG_FIXED_POINT_SUPPORTED
+png_fixed_point PNGAPI
+png_get_y_offset_inches_fixed(png_structp png_ptr,
+    png_const_infop info_ptr)
+{
+   return png_fixed_inches_from_microns(png_ptr,
+       png_get_y_offset_microns(png_ptr, info_ptr));
+}
+#endif
+
+#ifdef PNG_FLOATING_POINT_SUPPORTED
 float PNGAPI
-png_get_x_offset_inches(png_structp png_ptr, png_infop info_ptr)
+png_get_x_offset_inches(png_const_structp png_ptr, png_const_infop info_ptr)
 {
-   return ((float)png_get_x_offset_microns(png_ptr, info_ptr)
-     *.00003937);
+   /* To avoid the overflow do the conversion directly in floating
+    * point.
+    */
+   return (float)(png_get_x_offset_microns(png_ptr, info_ptr) * .00003937);
 }
+#endif
 
+#ifdef PNG_FLOATING_POINT_SUPPORTED
 float PNGAPI
-png_get_y_offset_inches(png_structp png_ptr, png_infop info_ptr)
+png_get_y_offset_inches(png_const_structp png_ptr, png_const_infop info_ptr)
 {
-   return ((float)png_get_y_offset_microns(png_ptr, info_ptr)
-     *.00003937);
+   /* To avoid the overflow do the conversion directly in floating
+    * point.
+    */
+   return (float)(png_get_y_offset_microns(png_ptr, info_ptr) * .00003937);
 }
+#endif
 
-#if defined(PNG_pHYs_SUPPORTED)
+#ifdef PNG_pHYs_SUPPORTED
 png_uint_32 PNGAPI
-png_get_pHYs_dpi(png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
+png_get_pHYs_dpi(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
 {
    png_uint_32 retval = 0;
 
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs))
    {
-      png_debug1(1, "in %s retrieval function\n", "pHYs");
+      png_debug1(1, "in %s retrieval function", "pHYs");
+
       if (res_x != NULL)
       {
          *res_x = info_ptr->x_pixels_per_unit;
          retval |= PNG_INFO_pHYs;
       }
+
       if (res_y != NULL)
       {
          *res_y = info_ptr->y_pixels_per_unit;
          retval |= PNG_INFO_pHYs;
       }
+
       if (unit_type != NULL)
       {
          *unit_type = (int)info_ptr->phys_unit_type;
          retval |= PNG_INFO_pHYs;
-         if(*unit_type == 1)
+
+         if (*unit_type == 1)
          {
             if (res_x != NULL) *res_x = (png_uint_32)(*res_x * .0254 + .50);
             if (res_y != NULL) *res_y = (png_uint_32)(*res_y * .0254 + .50);
          }
       }
    }
+
    return (retval);
 }
 #endif /* PNG_pHYs_SUPPORTED */
-#endif  /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */
+#endif  /* PNG_INCH_CONVERSIONS_SUPPORTED */
 
 /* png_get_channels really belongs in here, too, but it's been around longer */
 
 #endif  /* PNG_EASY_ACCESS_SUPPORTED */
 
 png_byte PNGAPI
-png_get_channels(png_structp png_ptr, png_infop info_ptr)
+png_get_channels(png_const_structp png_ptr, png_const_infop info_ptr)
 {
    if (png_ptr != NULL && info_ptr != NULL)
       return(info_ptr->channels);
-   else
-      return (0);
+
+   return (0);
 }
 
-png_bytep PNGAPI
-png_get_signature(png_structp png_ptr, png_infop info_ptr)
+png_const_bytep PNGAPI
+png_get_signature(png_const_structp png_ptr, png_infop info_ptr)
 {
    if (png_ptr != NULL && info_ptr != NULL)
       return(info_ptr->signature);
-   else
-      return (NULL);
+
+   return (NULL);
 }
 
-#if defined(PNG_bKGD_SUPPORTED)
+#ifdef PNG_bKGD_SUPPORTED
 png_uint_32 PNGAPI
-png_get_bKGD(png_structp png_ptr, png_infop info_ptr,
+png_get_bKGD(png_const_structp png_ptr, png_infop info_ptr,
    png_color_16p *background)
 {
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_bKGD)
-      && background != NULL)
+       && background != NULL)
    {
-      png_debug1(1, "in %s retrieval function\n", "bKGD");
+      png_debug1(1, "in %s retrieval function", "bKGD");
+
       *background = &(info_ptr->background);
       return (PNG_INFO_bKGD);
    }
+
    return (0);
 }
 #endif
 
-#if defined(PNG_cHRM_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
+#ifdef PNG_cHRM_SUPPORTED
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
 png_uint_32 PNGAPI
-png_get_cHRM(png_structp png_ptr, png_infop info_ptr,
-   double *white_x, double *white_y, double *red_x, double *red_y,
-   double *green_x, double *green_y, double *blue_x, double *blue_y)
+png_get_cHRM(png_const_structp png_ptr, png_const_infop info_ptr,
+    double *white_x, double *white_y, double *red_x, double *red_y,
+    double *green_x, double *green_y, double *blue_x, double *blue_y)
 {
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_cHRM))
    {
-      png_debug1(1, "in %s retrieval function\n", "cHRM");
+      png_debug1(1, "in %s retrieval function", "cHRM");
+
       if (white_x != NULL)
-         *white_x = (double)info_ptr->x_white;
+         *white_x = png_float(png_ptr, info_ptr->x_white, "cHRM white X");
       if (white_y != NULL)
-         *white_y = (double)info_ptr->y_white;
+         *white_y = png_float(png_ptr, info_ptr->y_white, "cHRM white Y");
       if (red_x != NULL)
-         *red_x = (double)info_ptr->x_red;
+         *red_x = png_float(png_ptr, info_ptr->x_red, "cHRM red X");
       if (red_y != NULL)
-         *red_y = (double)info_ptr->y_red;
+         *red_y = png_float(png_ptr, info_ptr->y_red, "cHRM red Y");
       if (green_x != NULL)
-         *green_x = (double)info_ptr->x_green;
+         *green_x = png_float(png_ptr, info_ptr->x_green, "cHRM green X");
       if (green_y != NULL)
-         *green_y = (double)info_ptr->y_green;
+         *green_y = png_float(png_ptr, info_ptr->y_green, "cHRM green Y");
       if (blue_x != NULL)
-         *blue_x = (double)info_ptr->x_blue;
+         *blue_x = png_float(png_ptr, info_ptr->x_blue, "cHRM blue X");
       if (blue_y != NULL)
-         *blue_y = (double)info_ptr->y_blue;
+         *blue_y = png_float(png_ptr, info_ptr->y_blue, "cHRM blue Y");
       return (PNG_INFO_cHRM);
    }
+
    return (0);
 }
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
+#  endif
+
+#  ifdef PNG_FIXED_POINT_SUPPORTED
 png_uint_32 PNGAPI
-png_get_cHRM_fixed(png_structp png_ptr, png_infop info_ptr,
-   png_fixed_point *white_x, png_fixed_point *white_y, png_fixed_point *red_x,
-   png_fixed_point *red_y, png_fixed_point *green_x, png_fixed_point *green_y,
-   png_fixed_point *blue_x, png_fixed_point *blue_y)
+png_get_cHRM_fixed(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_fixed_point *white_x, png_fixed_point *white_y, png_fixed_point *red_x,
+    png_fixed_point *red_y, png_fixed_point *green_x, png_fixed_point *green_y,
+    png_fixed_point *blue_x, png_fixed_point *blue_y)
 {
+   png_debug1(1, "in %s retrieval function", "cHRM");
+
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_cHRM))
    {
-      png_debug1(1, "in %s retrieval function\n", "cHRM");
       if (white_x != NULL)
-         *white_x = info_ptr->int_x_white;
+         *white_x = info_ptr->x_white;
       if (white_y != NULL)
-         *white_y = info_ptr->int_y_white;
+         *white_y = info_ptr->y_white;
       if (red_x != NULL)
-         *red_x = info_ptr->int_x_red;
+         *red_x = info_ptr->x_red;
       if (red_y != NULL)
-         *red_y = info_ptr->int_y_red;
+         *red_y = info_ptr->y_red;
       if (green_x != NULL)
-         *green_x = info_ptr->int_x_green;
+         *green_x = info_ptr->x_green;
       if (green_y != NULL)
-         *green_y = info_ptr->int_y_green;
+         *green_y = info_ptr->y_green;
       if (blue_x != NULL)
-         *blue_x = info_ptr->int_x_blue;
+         *blue_x = info_ptr->x_blue;
       if (blue_y != NULL)
-         *blue_y = info_ptr->int_y_blue;
+         *blue_y = info_ptr->y_blue;
       return (PNG_INFO_cHRM);
    }
+
    return (0);
 }
-#endif
+#  endif
 #endif
 
-#if defined(PNG_gAMA_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-png_uint_32 PNGAPI
-png_get_gAMA(png_structp png_ptr, png_infop info_ptr, double *file_gamma)
+#ifdef PNG_gAMA_SUPPORTED
+png_uint_32 PNGFAPI
+png_get_gAMA_fixed(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_fixed_point *file_gamma)
 {
+   png_debug1(1, "in %s retrieval function", "gAMA");
+
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_gAMA)
-      && file_gamma != NULL)
+       && file_gamma != NULL)
    {
-      png_debug1(1, "in %s retrieval function\n", "gAMA");
-      *file_gamma = (double)info_ptr->gamma;
+      *file_gamma = info_ptr->gamma;
       return (PNG_INFO_gAMA);
    }
+
    return (0);
 }
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
 png_uint_32 PNGAPI
-png_get_gAMA_fixed(png_structp png_ptr, png_infop info_ptr,
-    png_fixed_point *int_file_gamma)
+png_get_gAMA(png_const_structp png_ptr, png_const_infop info_ptr,
+    double *file_gamma)
 {
-   if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_gAMA)
-      && int_file_gamma != NULL)
-   {
-      png_debug1(1, "in %s retrieval function\n", "gAMA");
-      *int_file_gamma = info_ptr->int_gamma;
-      return (PNG_INFO_gAMA);
-   }
-   return (0);
+   png_fixed_point igamma;
+   png_uint_32 ok = png_get_gAMA_fixed(png_ptr, info_ptr, &igamma);
+
+   if (ok)
+      *file_gamma = png_float(png_ptr, igamma, "png_get_gAMA");
+
+   return ok;
 }
-#endif
+
+#  endif
 #endif
 
-#if defined(PNG_sRGB_SUPPORTED)
+#ifdef PNG_sRGB_SUPPORTED
 png_uint_32 PNGAPI
-png_get_sRGB(png_structp png_ptr, png_infop info_ptr, int *file_srgb_intent)
+png_get_sRGB(png_const_structp png_ptr, png_const_infop info_ptr,
+    int *file_srgb_intent)
 {
+   png_debug1(1, "in %s retrieval function", "sRGB");
+
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_sRGB)
-      && file_srgb_intent != NULL)
+       && file_srgb_intent != NULL)
    {
-      png_debug1(1, "in %s retrieval function\n", "sRGB");
       *file_srgb_intent = (int)info_ptr->srgb_intent;
       return (PNG_INFO_sRGB);
    }
+
    return (0);
 }
 #endif
 
-#if defined(PNG_iCCP_SUPPORTED)
+#ifdef PNG_iCCP_SUPPORTED
 png_uint_32 PNGAPI
-png_get_iCCP(png_structp png_ptr, png_infop info_ptr,
-             png_charpp name, int *compression_type,
-             png_charpp profile, png_uint_32 *proflen)
+png_get_iCCP(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_charpp name, int *compression_type,
+    png_bytepp profile, png_uint_32 *proflen)
 {
+   png_debug1(1, "in %s retrieval function", "iCCP");
+
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_iCCP)
-      && name != NULL && profile != NULL && proflen != NULL)
+       && name != NULL && profile != NULL && proflen != NULL)
    {
-      png_debug1(1, "in %s retrieval function\n", "iCCP");
       *name = info_ptr->iccp_name;
       *profile = info_ptr->iccp_profile;
-      /* compression_type is a dummy so the API won't have to change
-         if we introduce multiple compression types later. */
+      /* Compression_type is a dummy so the API won't have to change
+       * if we introduce multiple compression types later.
+       */
       *proflen = (int)info_ptr->iccp_proflen;
       *compression_type = (int)info_ptr->iccp_compression;
       return (PNG_INFO_iCCP);
    }
+
    return (0);
 }
 #endif
 
-#if defined(PNG_sPLT_SUPPORTED)
+#ifdef PNG_sPLT_SUPPORTED
 png_uint_32 PNGAPI
-png_get_sPLT(png_structp png_ptr, png_infop info_ptr,
-             png_sPLT_tpp spalettes)
+png_get_sPLT(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_sPLT_tpp spalettes)
 {
    if (png_ptr != NULL && info_ptr != NULL && spalettes != NULL)
-     *spalettes = info_ptr->splt_palettes;
-   return ((png_uint_32)info_ptr->splt_palettes_num);
+   {
+      *spalettes = info_ptr->splt_palettes;
+      return ((png_uint_32)info_ptr->splt_palettes_num);
+   }
+
+   return (0);
 }
 #endif
 
-#if defined(PNG_hIST_SUPPORTED)
+#ifdef PNG_hIST_SUPPORTED
 png_uint_32 PNGAPI
-png_get_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p *hist)
+png_get_hIST(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_uint_16p *hist)
 {
+   png_debug1(1, "in %s retrieval function", "hIST");
+
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_hIST)
-      && hist != NULL)
+       && hist != NULL)
    {
-      png_debug1(1, "in %s retrieval function\n", "hIST");
       *hist = info_ptr->hist;
       return (PNG_INFO_hIST);
    }
+
    return (0);
 }
 #endif
 
 png_uint_32 PNGAPI
 png_get_IHDR(png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 *width, png_uint_32 *height, int *bit_depth,
-   int *color_type, int *interlace_type, int *compression_type,
-   int *filter_type)
+    png_uint_32 *width, png_uint_32 *height, int *bit_depth,
+    int *color_type, int *interlace_type, int *compression_type,
+    int *filter_type)
 
 {
-   if (png_ptr != NULL && info_ptr != NULL && width != NULL && height != NULL &&
-      bit_depth != NULL && color_type != NULL)
-   {
-      png_debug1(1, "in %s retrieval function\n", "IHDR");
-      *width = info_ptr->width;
-      *height = info_ptr->height;
-      *bit_depth = info_ptr->bit_depth;
-      if (info_ptr->bit_depth < 1 || info_ptr->bit_depth > 16)
-        png_error(png_ptr, "Invalid bit depth");
-      *color_type = info_ptr->color_type;
-      if (info_ptr->color_type > 6)
-        png_error(png_ptr, "Invalid color type");
-      if (compression_type != NULL)
-         *compression_type = info_ptr->compression_type;
-      if (filter_type != NULL)
-         *filter_type = info_ptr->filter_type;
-      if (interlace_type != NULL)
-         *interlace_type = info_ptr->interlace_type;
-
-      /* check for potential overflow of rowbytes */
-      if (*width == 0 || *width > PNG_UINT_31_MAX)
-        png_error(png_ptr, "Invalid image width");
-      if (*height == 0 || *height > PNG_UINT_31_MAX)
-        png_error(png_ptr, "Invalid image height");
-      if (info_ptr->width > (PNG_UINT_32_MAX
-                 >> 3)      /* 8-byte RGBA pixels */
-                 - 64       /* bigrowbuf hack */
-                 - 1        /* filter byte */
-                 - 7*8      /* rounding of width to multiple of 8 pixels */
-                 - 8)       /* extra max_pixel_depth pad */
-      {
-         png_warning(png_ptr,
-            "Width too large for libpng to process image data.");
-      }
-      return (1);
-   }
-   return (0);
+   png_debug1(1, "in %s retrieval function", "IHDR");
+
+   if (png_ptr == NULL || info_ptr == NULL || width == NULL ||
+       height == NULL || bit_depth == NULL || color_type == NULL)
+      return (0);
+
+   *width = info_ptr->width;
+   *height = info_ptr->height;
+   *bit_depth = info_ptr->bit_depth;
+   *color_type = info_ptr->color_type;
+
+   if (compression_type != NULL)
+      *compression_type = info_ptr->compression_type;
+
+   if (filter_type != NULL)
+      *filter_type = info_ptr->filter_type;
+
+   if (interlace_type != NULL)
+      *interlace_type = info_ptr->interlace_type;
+
+   /* This is redundant if we can be sure that the info_ptr values were all
+    * assigned in png_set_IHDR().  We do the check anyhow in case an
+    * application has ignored our advice not to mess with the members
+    * of info_ptr directly.
+    */
+   png_check_IHDR (png_ptr, info_ptr->width, info_ptr->height,
+       info_ptr->bit_depth, info_ptr->color_type, info_ptr->interlace_type,
+       info_ptr->compression_type, info_ptr->filter_type);
+
+   return (1);
 }
 
-#if defined(PNG_oFFs_SUPPORTED)
+#ifdef PNG_oFFs_SUPPORTED
 png_uint_32 PNGAPI
-png_get_oFFs(png_structp png_ptr, png_infop info_ptr,
-   png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type)
+png_get_oFFs(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type)
 {
+   png_debug1(1, "in %s retrieval function", "oFFs");
+
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs)
-      && offset_x != NULL && offset_y != NULL && unit_type != NULL)
+       && offset_x != NULL && offset_y != NULL && unit_type != NULL)
    {
-      png_debug1(1, "in %s retrieval function\n", "oFFs");
       *offset_x = info_ptr->x_offset;
       *offset_y = info_ptr->y_offset;
       *unit_type = (int)info_ptr->offset_unit_type;
       return (PNG_INFO_oFFs);
    }
+
    return (0);
 }
 #endif
 
-#if defined(PNG_pCAL_SUPPORTED)
+#ifdef PNG_pCAL_SUPPORTED
 png_uint_32 PNGAPI
-png_get_pCAL(png_structp png_ptr, png_infop info_ptr,
-   png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams,
-   png_charp *units, png_charpp *params)
+png_get_pCAL(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams,
+    png_charp *units, png_charpp *params)
 {
+   png_debug1(1, "in %s retrieval function", "pCAL");
+
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pCAL)
-      && purpose != NULL && X0 != NULL && X1 != NULL && type != NULL &&
-      nparams != NULL && units != NULL && params != NULL)
+       && purpose != NULL && X0 != NULL && X1 != NULL && type != NULL &&
+       nparams != NULL && units != NULL && params != NULL)
    {
-      png_debug1(1, "in %s retrieval function\n", "pCAL");
       *purpose = info_ptr->pcal_purpose;
       *X0 = info_ptr->pcal_X0;
       *X1 = info_ptr->pcal_X1;
@@ -644,340 +744,317 @@ png_get_pCAL(png_structp png_ptr, png_infop info_ptr,
       *params = info_ptr->pcal_params;
       return (PNG_INFO_pCAL);
    }
+
    return (0);
 }
 #endif
 
-#if defined(PNG_sCAL_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
+#ifdef PNG_sCAL_SUPPORTED
+#  ifdef PNG_FIXED_POINT_SUPPORTED
+#    ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
 png_uint_32 PNGAPI
-png_get_sCAL(png_structp png_ptr, png_infop info_ptr,
-             int *unit, double *width, double *height)
+png_get_sCAL_fixed(png_structp png_ptr, png_const_infop info_ptr,
+    int *unit, png_fixed_point *width, png_fixed_point *height)
 {
-    if (png_ptr != NULL && info_ptr != NULL &&
+   if (png_ptr != NULL && info_ptr != NULL &&
        (info_ptr->valid & PNG_INFO_sCAL))
-    {
-        *unit = info_ptr->scal_unit;
-        *width = info_ptr->scal_pixel_width;
-        *height = info_ptr->scal_pixel_height;
-        return (PNG_INFO_sCAL);
-    }
-    return(0);
+   {
+      *unit = info_ptr->scal_unit;
+      /*TODO: make this work without FP support */
+      *width = png_fixed(png_ptr, atof(info_ptr->scal_s_width), "sCAL width");
+      *height = png_fixed(png_ptr, atof(info_ptr->scal_s_height),
+         "sCAL height");
+      return (PNG_INFO_sCAL);
+   }
+
+   return(0);
 }
-#else
-#ifdef PNG_FIXED_POINT_SUPPORTED
+#    endif /* FLOATING_ARITHMETIC */
+#  endif /* FIXED_POINT */
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
 png_uint_32 PNGAPI
-png_get_sCAL_s(png_structp png_ptr, png_infop info_ptr,
-             int *unit, png_charpp width, png_charpp height)
+png_get_sCAL(png_const_structp png_ptr, png_const_infop info_ptr,
+    int *unit, double *width, double *height)
 {
-    if (png_ptr != NULL && info_ptr != NULL &&
+   if (png_ptr != NULL && info_ptr != NULL &&
        (info_ptr->valid & PNG_INFO_sCAL))
-    {
-        *unit = info_ptr->scal_unit;
-        *width = info_ptr->scal_s_width;
-        *height = info_ptr->scal_s_height;
-        return (PNG_INFO_sCAL);
-    }
-    return(0);
+   {
+      *unit = info_ptr->scal_unit;
+      *width = atof(info_ptr->scal_s_width);
+      *height = atof(info_ptr->scal_s_height);
+      return (PNG_INFO_sCAL);
+   }
+
+   return(0);
 }
-#endif
-#endif
-#endif
+#  endif /* FLOATING POINT */
+png_uint_32 PNGAPI
+png_get_sCAL_s(png_const_structp png_ptr, png_const_infop info_ptr,
+    int *unit, png_charpp width, png_charpp height)
+{
+   if (png_ptr != NULL && info_ptr != NULL &&
+       (info_ptr->valid & PNG_INFO_sCAL))
+   {
+      *unit = info_ptr->scal_unit;
+      *width = info_ptr->scal_s_width;
+      *height = info_ptr->scal_s_height;
+      return (PNG_INFO_sCAL);
+   }
+
+   return(0);
+}
+#endif /* sCAL */
 
-#if defined(PNG_pHYs_SUPPORTED)
+#ifdef PNG_pHYs_SUPPORTED
 png_uint_32 PNGAPI
-png_get_pHYs(png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
+png_get_pHYs(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
 {
    png_uint_32 retval = 0;
 
+   png_debug1(1, "in %s retrieval function", "pHYs");
+
    if (png_ptr != NULL && info_ptr != NULL &&
-      (info_ptr->valid & PNG_INFO_pHYs))
+       (info_ptr->valid & PNG_INFO_pHYs))
    {
-      png_debug1(1, "in %s retrieval function\n", "pHYs");
       if (res_x != NULL)
       {
          *res_x = info_ptr->x_pixels_per_unit;
          retval |= PNG_INFO_pHYs;
       }
+
       if (res_y != NULL)
       {
          *res_y = info_ptr->y_pixels_per_unit;
          retval |= PNG_INFO_pHYs;
       }
+
       if (unit_type != NULL)
       {
          *unit_type = (int)info_ptr->phys_unit_type;
          retval |= PNG_INFO_pHYs;
       }
    }
+
    return (retval);
 }
-#endif
+#endif /* pHYs */
 
 png_uint_32 PNGAPI
-png_get_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp *palette,
-   int *num_palette)
+png_get_PLTE(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_colorp *palette, int *num_palette)
 {
+   png_debug1(1, "in %s retrieval function", "PLTE");
+
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_PLTE)
        && palette != NULL)
    {
-      png_debug1(1, "in %s retrieval function\n", "PLTE");
       *palette = info_ptr->palette;
       *num_palette = info_ptr->num_palette;
-      png_debug1(3, "num_palette = %d\n", *num_palette);
+      png_debug1(3, "num_palette = %d", *num_palette);
       return (PNG_INFO_PLTE);
    }
+
    return (0);
 }
 
-#if defined(PNG_sBIT_SUPPORTED)
+#ifdef PNG_sBIT_SUPPORTED
 png_uint_32 PNGAPI
-png_get_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit)
+png_get_sBIT(png_const_structp png_ptr, png_infop info_ptr,
+    png_color_8p *sig_bit)
 {
+   png_debug1(1, "in %s retrieval function", "sBIT");
+
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_sBIT)
-      && sig_bit != NULL)
+       && sig_bit != NULL)
    {
-      png_debug1(1, "in %s retrieval function\n", "sBIT");
       *sig_bit = &(info_ptr->sig_bit);
       return (PNG_INFO_sBIT);
    }
+
    return (0);
 }
 #endif
 
-#if defined(PNG_TEXT_SUPPORTED)
+#ifdef PNG_TEXT_SUPPORTED
 png_uint_32 PNGAPI
-png_get_text(png_structp png_ptr, png_infop info_ptr, png_textp *text_ptr,
-   int *num_text)
+png_get_text(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_textp *text_ptr, int *num_text)
 {
    if (png_ptr != NULL && info_ptr != NULL && info_ptr->num_text > 0)
    {
-      png_debug1(1, "in %s retrieval function\n",
-         (png_ptr->chunk_name[0] == '\0' ? "text"
-             : (png_const_charp)png_ptr->chunk_name));
+      png_debug1(1, "in %s retrieval function",
+          (png_ptr->chunk_name[0] == '\0' ? "text" :
+          (png_const_charp)png_ptr->chunk_name));
+
       if (text_ptr != NULL)
          *text_ptr = info_ptr->text;
+
       if (num_text != NULL)
          *num_text = info_ptr->num_text;
+
       return ((png_uint_32)info_ptr->num_text);
    }
+
    if (num_text != NULL)
-     *num_text = 0;
+      *num_text = 0;
+
    return(0);
 }
 #endif
 
-#if defined(PNG_tIME_SUPPORTED)
+#ifdef PNG_tIME_SUPPORTED
 png_uint_32 PNGAPI
-png_get_tIME(png_structp png_ptr, png_infop info_ptr, png_timep *mod_time)
+png_get_tIME(png_const_structp png_ptr, png_infop info_ptr, png_timep *mod_time)
 {
+   png_debug1(1, "in %s retrieval function", "tIME");
+
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_tIME)
        && mod_time != NULL)
    {
-      png_debug1(1, "in %s retrieval function\n", "tIME");
       *mod_time = &(info_ptr->mod_time);
       return (PNG_INFO_tIME);
    }
+
    return (0);
 }
 #endif
 
-#if defined(PNG_tRNS_SUPPORTED)
+#ifdef PNG_tRNS_SUPPORTED
 png_uint_32 PNGAPI
-png_get_tRNS(png_structp png_ptr, png_infop info_ptr,
-   png_bytep *trans, int *num_trans, png_color_16p *trans_values)
+png_get_tRNS(png_const_structp png_ptr, png_infop info_ptr,
+    png_bytep *trans_alpha, int *num_trans, png_color_16p *trans_color)
 {
    png_uint_32 retval = 0;
    if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_tRNS))
    {
-      png_debug1(1, "in %s retrieval function\n", "tRNS");
+      png_debug1(1, "in %s retrieval function", "tRNS");
+
       if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
       {
-          if (trans != NULL)
-          {
-             *trans = info_ptr->trans;
-             retval |= PNG_INFO_tRNS;
-          }
-          if (trans_values != NULL)
-             *trans_values = &(info_ptr->trans_values);
+         if (trans_alpha != NULL)
+         {
+            *trans_alpha = info_ptr->trans_alpha;
+            retval |= PNG_INFO_tRNS;
+         }
+
+         if (trans_color != NULL)
+            *trans_color = &(info_ptr->trans_color);
       }
+
       else /* if (info_ptr->color_type != PNG_COLOR_TYPE_PALETTE) */
       {
-          if (trans_values != NULL)
-          {
-             *trans_values = &(info_ptr->trans_values);
-             retval |= PNG_INFO_tRNS;
-          }
-          if(trans != NULL)
-             *trans = NULL;
+         if (trans_color != NULL)
+         {
+            *trans_color = &(info_ptr->trans_color);
+            retval |= PNG_INFO_tRNS;
+         }
+
+         if (trans_alpha != NULL)
+            *trans_alpha = NULL;
       }
-      if(num_trans != NULL)
+
+      if (num_trans != NULL)
       {
          *num_trans = info_ptr->num_trans;
          retval |= PNG_INFO_tRNS;
       }
    }
+
    return (retval);
 }
 #endif
 
-#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
-png_uint_32 PNGAPI
-png_get_unknown_chunks(png_structp png_ptr, png_infop info_ptr,
-             png_unknown_chunkpp unknowns)
+#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
+int PNGAPI
+png_get_unknown_chunks(png_const_structp png_ptr, png_const_infop info_ptr,
+    png_unknown_chunkpp unknowns)
 {
    if (png_ptr != NULL && info_ptr != NULL && unknowns != NULL)
-     *unknowns = info_ptr->unknown_chunks;
-   return ((png_uint_32)info_ptr->unknown_chunks_num);
+   {
+      *unknowns = info_ptr->unknown_chunks;
+      return info_ptr->unknown_chunks_num;
+   }
+
+   return (0);
 }
 #endif
 
-#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
+#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
 png_byte PNGAPI
-png_get_rgb_to_gray_status (png_structp png_ptr)
+png_get_rgb_to_gray_status (png_const_structp png_ptr)
 {
-   return (png_byte)(png_ptr? png_ptr->rgb_to_gray_status : 0);
+   return (png_byte)(png_ptr ? png_ptr->rgb_to_gray_status : 0);
 }
 #endif
 
-#if defined(PNG_USER_CHUNKS_SUPPORTED)
+#ifdef PNG_USER_CHUNKS_SUPPORTED
 png_voidp PNGAPI
-png_get_user_chunk_ptr(png_structp png_ptr)
+png_get_user_chunk_ptr(png_const_structp png_ptr)
 {
-   return (png_ptr? png_ptr->user_chunk_ptr : NULL);
+   return (png_ptr ? png_ptr->user_chunk_ptr : NULL);
 }
 #endif
 
-#ifdef PNG_WRITE_SUPPORTED
-png_uint_32 PNGAPI
-png_get_compression_buffer_size(png_structp png_ptr)
+png_size_t PNGAPI
+png_get_compression_buffer_size(png_const_structp png_ptr)
 {
-   return (png_uint_32)(png_ptr? png_ptr->zbuf_size : 0L);
+   return (png_ptr ? png_ptr->zbuf_size : 0L);
 }
-#endif
 
-#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
-#ifndef PNG_1_0_X
-/* this function was added to libpng 1.2.0 and should exist by default */
+
+#ifdef PNG_SET_USER_LIMITS_SUPPORTED
+/* These functions were added to libpng 1.2.6 and were enabled
+ * by default in libpng-1.4.0 */
 png_uint_32 PNGAPI
-png_get_asm_flags (png_structp png_ptr)
+png_get_user_width_max (png_const_structp png_ptr)
 {
-#ifdef PNG_MMX_CODE_SUPPORTED
-    return (png_uint_32)(png_ptr? png_ptr->asm_flags : 0L);
-#else
-    return (png_ptr? 0L: 0L);
-#endif
+   return (png_ptr ? png_ptr->user_width_max : 0);
 }
 
-/* this function was added to libpng 1.2.0 and should exist by default */
 png_uint_32 PNGAPI
-png_get_asm_flagmask (int flag_select)
+png_get_user_height_max (png_const_structp png_ptr)
 {
-#ifdef PNG_MMX_CODE_SUPPORTED
-    png_uint_32 settable_asm_flags = 0;
-
-    if (flag_select & PNG_SELECT_READ)
-        settable_asm_flags |=
-          PNG_ASM_FLAG_MMX_READ_COMBINE_ROW  |
-          PNG_ASM_FLAG_MMX_READ_INTERLACE    |
-          PNG_ASM_FLAG_MMX_READ_FILTER_SUB   |
-          PNG_ASM_FLAG_MMX_READ_FILTER_UP    |
-          PNG_ASM_FLAG_MMX_READ_FILTER_AVG   |
-          PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ;
-          /* no non-MMX flags yet */
-
-#if 0
-    /* GRR:  no write-flags yet, either, but someday... */
-    if (flag_select & PNG_SELECT_WRITE)
-        settable_asm_flags |=
-          PNG_ASM_FLAG_MMX_WRITE_ [whatever] ;
-#endif /* 0 */
-
-    return settable_asm_flags;  /* _theoretically_ settable capabilities only */
-#else
-    return (0L);
-#endif /* PNG_MMX_CODE_SUPPORTED */
+   return (png_ptr ? png_ptr->user_height_max : 0);
 }
 
-
-    /* GRR:  could add this:   && defined(PNG_MMX_CODE_SUPPORTED) */
-/* this function was added to libpng 1.2.0 */
+/* This function was added to libpng 1.4.0 */
 png_uint_32 PNGAPI
-png_get_mmx_flagmask (int flag_select, int *compilerID)
+png_get_chunk_cache_max (png_const_structp png_ptr)
 {
-#if defined(PNG_MMX_CODE_SUPPORTED)
-    png_uint_32 settable_mmx_flags = 0;
-
-    if (flag_select & PNG_SELECT_READ)
-        settable_mmx_flags |=
-          PNG_ASM_FLAG_MMX_READ_COMBINE_ROW  |
-          PNG_ASM_FLAG_MMX_READ_INTERLACE    |
-          PNG_ASM_FLAG_MMX_READ_FILTER_SUB   |
-          PNG_ASM_FLAG_MMX_READ_FILTER_UP    |
-          PNG_ASM_FLAG_MMX_READ_FILTER_AVG   |
-          PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ;
-#if 0
-    /* GRR:  no MMX write support yet, but someday... */
-    if (flag_select & PNG_SELECT_WRITE)
-        settable_mmx_flags |=
-          PNG_ASM_FLAG_MMX_WRITE_ [whatever] ;
-#endif /* 0 */
-
-    if (compilerID != NULL) {
-#ifdef PNG_USE_PNGVCRD
-        *compilerID = 1;    /* MSVC */
-#else
-#ifdef PNG_USE_PNGGCCRD
-        *compilerID = 2;    /* gcc/gas */
-#else
-        *compilerID = -1;   /* unknown (i.e., no asm/MMX code compiled) */
-#endif
-#endif
-    }
-
-    return settable_mmx_flags;  /* _theoretically_ settable capabilities only */
-#else
-    return (0L);
-#endif /* ?PNG_MMX_CODE_SUPPORTED */
+   return (png_ptr ? png_ptr->user_chunk_cache_max : 0);
 }
 
-/* this function was added to libpng 1.2.0 */
-png_byte PNGAPI
-png_get_mmx_bitdepth_threshold (png_structp png_ptr)
+/* This function was added to libpng 1.4.1 */
+png_alloc_size_t PNGAPI
+png_get_chunk_malloc_max (png_const_structp png_ptr)
 {
-#if defined(PNG_MMX_CODE_SUPPORTED)
-    return (png_byte)(png_ptr? png_ptr->mmx_bitdepth_threshold : 0);
-#else
-    return (png_ptr? 0: 0);
-#endif /* ?PNG_MMX_CODE_SUPPORTED */
+   return (png_ptr ? png_ptr->user_chunk_malloc_max : 0);
 }
+#endif /* ?PNG_SET_USER_LIMITS_SUPPORTED */
 
-/* this function was added to libpng 1.2.0 */
+/* These functions were added to libpng 1.4.0 */
+#ifdef PNG_IO_STATE_SUPPORTED
 png_uint_32 PNGAPI
-png_get_mmx_rowbytes_threshold (png_structp png_ptr)
+png_get_io_state (png_structp png_ptr)
 {
-#if defined(PNG_MMX_CODE_SUPPORTED)
-    return (png_uint_32)(png_ptr? png_ptr->mmx_rowbytes_threshold : 0L);
-#else
-    return (png_ptr? 0L: 0L);
-#endif /* ?PNG_MMX_CODE_SUPPORTED */
+   return png_ptr->io_state;
 }
-#endif /* ?PNG_1_0_X */
-#endif /* ?PNG_ASSEMBLER_CODE_SUPPORTED */
 
-#ifdef PNG_SET_USER_LIMITS_SUPPORTED
-/* these functions were added to libpng 1.2.6 */
 png_uint_32 PNGAPI
-png_get_user_width_max (png_structp png_ptr)
+png_get_io_chunk_type (png_const_structp png_ptr)
 {
-    return (png_ptr? png_ptr->user_width_max : 0);
+   return ((png_ptr->chunk_name[0] << 24) +
+           (png_ptr->chunk_name[1] << 16) +
+           (png_ptr->chunk_name[2] <<  8) +
+           (png_ptr->chunk_name[3]));
 }
-png_uint_32 PNGAPI
-png_get_user_height_max (png_structp png_ptr)
+
+png_const_bytep PNGAPI
+png_get_io_chunk_name (png_structp png_ptr)
 {
-    return (png_ptr? png_ptr->user_height_max : 0);
+   return png_ptr->chunk_name;
 }
-#endif /* ?PNG_SET_USER_LIMITS_SUPPORTED */
+#endif /* ?PNG_IO_STATE_SUPPORTED */
 
 #endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */
diff --git a/jdk/src/share/native/sun/awt/libpng/pnginfo.h b/jdk/src/share/native/sun/awt/libpng/pnginfo.h
new file mode 100644
index 0000000..be9a738
--- /dev/null
+++ b/jdk/src/share/native/sun/awt/libpng/pnginfo.h
@@ -0,0 +1,297 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* pnginfo.h - header file for PNG reference library
+ *
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
+ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
+ * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * Last changed in libpng 1.5.0 [January 6, 2011]
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ */
+
+ /* png_info is a structure that holds the information in a PNG file so
+ * that the application can find out the characteristics of the image.
+ * If you are reading the file, this structure will tell you what is
+ * in the PNG file.  If you are writing the file, fill in the information
+ * you want to put into the PNG file, using png_set_*() functions, then
+ * call png_write_info().
+ *
+ * The names chosen should be very close to the PNG specification, so
+ * consult that document for information about the meaning of each field.
+ *
+ * With libpng < 0.95, it was only possible to directly set and read the
+ * the values in the png_info_struct, which meant that the contents and
+ * order of the values had to remain fixed.  With libpng 0.95 and later,
+ * however, there are now functions that abstract the contents of
+ * png_info_struct from the application, so this makes it easier to use
+ * libpng with dynamic libraries, and even makes it possible to use
+ * libraries that don't have all of the libpng ancillary chunk-handing
+ * functionality.  In libpng-1.5.0 this was moved into a separate private
+ * file that is not visible to applications.
+ *
+ * The following members may have allocated storage attached that should be
+ * cleaned up before the structure is discarded: palette, trans, text,
+ * pcal_purpose, pcal_units, pcal_params, hist, iccp_name, iccp_profile,
+ * splt_palettes, scal_unit, row_pointers, and unknowns.   By default, these
+ * are automatically freed when the info structure is deallocated, if they were
+ * allocated internally by libpng.  This behavior can be changed by means
+ * of the png_data_freer() function.
+ *
+ * More allocation details: all the chunk-reading functions that
+ * change these members go through the corresponding png_set_*
+ * functions.  A function to clear these members is available: see
+ * png_free_data().  The png_set_* functions do not depend on being
+ * able to point info structure members to any of the storage they are
+ * passed (they make their own copies), EXCEPT that the png_set_text
+ * functions use the same storage passed to them in the text_ptr or
+ * itxt_ptr structure argument, and the png_set_rows and png_set_unknowns
+ * functions do not make their own copies.
+ */
+#ifndef PNGINFO_H
+#define PNGINFO_H
+
+struct png_info_def
+{
+   /* the following are necessary for every PNG file */
+   png_uint_32 width;  /* width of image in pixels (from IHDR) */
+   png_uint_32 height; /* height of image in pixels (from IHDR) */
+   png_uint_32 valid;  /* valid chunk data (see PNG_INFO_ below) */
+   png_size_t rowbytes; /* bytes needed to hold an untransformed row */
+   png_colorp palette;      /* array of color values (valid & PNG_INFO_PLTE) */
+   png_uint_16 num_palette; /* number of color entries in "palette" (PLTE) */
+   png_uint_16 num_trans;   /* number of transparent palette color (tRNS) */
+   png_byte bit_depth;      /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */
+   png_byte color_type;     /* see PNG_COLOR_TYPE_ below (from IHDR) */
+   /* The following three should have been named *_method not *_type */
+   png_byte compression_type; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */
+   png_byte filter_type;    /* must be PNG_FILTER_TYPE_BASE (from IHDR) */
+   png_byte interlace_type; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */
+
+   /* The following is informational only on read, and not used on writes. */
+   png_byte channels;       /* number of data channels per pixel (1, 2, 3, 4) */
+   png_byte pixel_depth;    /* number of bits per pixel */
+   png_byte spare_byte;     /* to align the data, and for future use */
+   png_byte signature[8];   /* magic bytes read by libpng from start of file */
+
+   /* The rest of the data is optional.  If you are reading, check the
+    * valid field to see if the information in these are valid.  If you
+    * are writing, set the valid field to those chunks you want written,
+    * and initialize the appropriate fields below.
+    */
+
+#if defined(PNG_gAMA_SUPPORTED)
+   /* The gAMA chunk describes the gamma characteristics of the system
+    * on which the image was created, normally in the range [1.0, 2.5].
+    * Data is valid if (valid & PNG_INFO_gAMA) is non-zero.
+    */
+   png_fixed_point gamma;
+#endif
+
+#ifdef PNG_sRGB_SUPPORTED
+    /* GR-P, 0.96a */
+    /* Data valid if (valid & PNG_INFO_sRGB) non-zero. */
+   png_byte srgb_intent; /* sRGB rendering intent [0, 1, 2, or 3] */
+#endif
+
+#ifdef PNG_TEXT_SUPPORTED
+   /* The tEXt, and zTXt chunks contain human-readable textual data in
+    * uncompressed, compressed, and optionally compressed forms, respectively.
+    * The data in "text" is an array of pointers to uncompressed,
+    * null-terminated C strings. Each chunk has a keyword that describes the
+    * textual data contained in that chunk.  Keywords are not required to be
+    * unique, and the text string may be empty.  Any number of text chunks may
+    * be in an image.
+    */
+   int num_text; /* number of comments read or comments to write */
+   int max_text; /* current size of text array */
+   png_textp text; /* array of comments read or comments to write */
+#endif /* PNG_TEXT_SUPPORTED */
+
+#ifdef PNG_tIME_SUPPORTED
+   /* The tIME chunk holds the last time the displayed image data was
+    * modified.  See the png_time struct for the contents of this struct.
+    */
+   png_time mod_time;
+#endif
+
+#ifdef PNG_sBIT_SUPPORTED
+   /* The sBIT chunk specifies the number of significant high-order bits
+    * in the pixel data.  Values are in the range [1, bit_depth], and are
+    * only specified for the channels in the pixel data.  The contents of
+    * the low-order bits is not specified.  Data is valid if
+    * (valid & PNG_INFO_sBIT) is non-zero.
+    */
+   png_color_8 sig_bit; /* significant bits in color channels */
+#endif
+
+#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \
+defined(PNG_READ_BACKGROUND_SUPPORTED)
+   /* The tRNS chunk supplies transparency data for paletted images and
+    * other image types that don't need a full alpha channel.  There are
+    * "num_trans" transparency values for a paletted image, stored in the
+    * same order as the palette colors, starting from index 0.  Values
+    * for the data are in the range [0, 255], ranging from fully transparent
+    * to fully opaque, respectively.  For non-paletted images, there is a
+    * single color specified that should be treated as fully transparent.
+    * Data is valid if (valid & PNG_INFO_tRNS) is non-zero.
+    */
+   png_bytep trans_alpha;    /* alpha values for paletted image */
+   png_color_16 trans_color; /* transparent color for non-palette image */
+#endif
+
+#if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
+   /* The bKGD chunk gives the suggested image background color if the
+    * display program does not have its own background color and the image
+    * is needs to composited onto a background before display.  The colors
+    * in "background" are normally in the same color space/depth as the
+    * pixel data.  Data is valid if (valid & PNG_INFO_bKGD) is non-zero.
+    */
+   png_color_16 background;
+#endif
+
+#ifdef PNG_oFFs_SUPPORTED
+   /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards
+    * and downwards from the top-left corner of the display, page, or other
+    * application-specific co-ordinate space.  See the PNG_OFFSET_ defines
+    * below for the unit types.  Valid if (valid & PNG_INFO_oFFs) non-zero.
+    */
+   png_int_32 x_offset; /* x offset on page */
+   png_int_32 y_offset; /* y offset on page */
+   png_byte offset_unit_type; /* offset units type */
+#endif
+
+#ifdef PNG_pHYs_SUPPORTED
+   /* The pHYs chunk gives the physical pixel density of the image for
+    * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_
+    * defines below).  Data is valid if (valid & PNG_INFO_pHYs) is non-zero.
+    */
+   png_uint_32 x_pixels_per_unit; /* horizontal pixel density */
+   png_uint_32 y_pixels_per_unit; /* vertical pixel density */
+   png_byte phys_unit_type; /* resolution type (see PNG_RESOLUTION_ below) */
+#endif
+
+#ifdef PNG_hIST_SUPPORTED
+   /* The hIST chunk contains the relative frequency or importance of the
+    * various palette entries, so that a viewer can intelligently select a
+    * reduced-color palette, if required.  Data is an array of "num_palette"
+    * values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST)
+    * is non-zero.
+    */
+   png_uint_16p hist;
+#endif
+
+#ifdef PNG_cHRM_SUPPORTED
+   /* The cHRM chunk describes the CIE color characteristics of the monitor
+    * on which the PNG was created.  This data allows the viewer to do gamut
+    * mapping of the input image to ensure that the viewer sees the same
+    * colors in the image as the creator.  Values are in the range
+    * [0.0, 0.8].  Data valid if (valid & PNG_INFO_cHRM) non-zero.
+    */
+   png_fixed_point x_white;
+   png_fixed_point y_white;
+   png_fixed_point x_red;
+   png_fixed_point y_red;
+   png_fixed_point x_green;
+   png_fixed_point y_green;
+   png_fixed_point x_blue;
+   png_fixed_point y_blue;
+#endif
+
+#ifdef PNG_pCAL_SUPPORTED
+   /* The pCAL chunk describes a transformation between the stored pixel
+    * values and original physical data values used to create the image.
+    * The integer range [0, 2^bit_depth - 1] maps to the floating-point
+    * range given by [pcal_X0, pcal_X1], and are further transformed by a
+    * (possibly non-linear) transformation function given by "pcal_type"
+    * and "pcal_params" into "pcal_units".  Please see the PNG_EQUATION_
+    * defines below, and the PNG-Group's PNG extensions document for a
+    * complete description of the transformations and how they should be
+    * implemented, and for a description of the ASCII parameter strings.
+    * Data values are valid if (valid & PNG_INFO_pCAL) non-zero.
+    */
+   png_charp pcal_purpose;  /* pCAL chunk description string */
+   png_int_32 pcal_X0;      /* minimum value */
+   png_int_32 pcal_X1;      /* maximum value */
+   png_charp pcal_units;    /* Latin-1 string giving physical units */
+   png_charpp pcal_params;  /* ASCII strings containing parameter values */
+   png_byte pcal_type;      /* equation type (see PNG_EQUATION_ below) */
+   png_byte pcal_nparams;   /* number of parameters given in pcal_params */
+#endif
+
+/* New members added in libpng-1.0.6 */
+   png_uint_32 free_me;     /* flags items libpng is responsible for freeing */
+
+#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
+ defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
+   /* Storage for unknown chunks that the library doesn't recognize. */
+   png_unknown_chunkp unknown_chunks;
+   int unknown_chunks_num;
+#endif
+
+#ifdef PNG_iCCP_SUPPORTED
+   /* iCCP chunk data. */
+   png_charp iccp_name;     /* profile name */
+   png_bytep iccp_profile;  /* International Color Consortium profile data */
+   png_uint_32 iccp_proflen;  /* ICC profile data length */
+   png_byte iccp_compression; /* Always zero */
+#endif
+
+#ifdef PNG_sPLT_SUPPORTED
+   /* Data on sPLT chunks (there may be more than one). */
+   png_sPLT_tp splt_palettes;
+   png_uint_32 splt_palettes_num;
+#endif
+
+#ifdef PNG_sCAL_SUPPORTED
+   /* The sCAL chunk describes the actual physical dimensions of the
+    * subject matter of the graphic.  The chunk contains a unit specification
+    * a byte value, and two ASCII strings representing floating-point
+    * values.  The values are width and height corresponsing to one pixel
+    * in the image.  Data values are valid if (valid & PNG_INFO_sCAL) is
+    * non-zero.
+    */
+   png_byte scal_unit;         /* unit of physical scale */
+   png_charp scal_s_width;     /* string containing height */
+   png_charp scal_s_height;    /* string containing width */
+#endif
+
+#ifdef PNG_INFO_IMAGE_SUPPORTED
+   /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS)
+      non-zero */
+   /* Data valid if (valid & PNG_INFO_IDAT) non-zero */
+   png_bytepp row_pointers;        /* the image bits */
+#endif
+
+};
+#endif /* PNGINFO_H */
diff --git a/jdk/src/share/native/sun/awt/libpng/pnglibconf.h b/jdk/src/share/native/sun/awt/libpng/pnglibconf.h
new file mode 100644
index 0000000..c78fa66
--- /dev/null
+++ b/jdk/src/share/native/sun/awt/libpng/pnglibconf.h
@@ -0,0 +1,177 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ * THIS FILE WAS MODIFIED BY ORACLE, INC.
+ */
+
+/* libpng STANDARD API DEFINITION */
+
+/* pnglibconf.h - library build configuration */
+
+/* This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ */
+
+/* libpng version 1.5.4 - last changed on June 22, 2011 */
+
+/* Copyright (c) 1998-2011 Glenn Randers-Pehrson */
+
+/* This code is released under the libpng license. */
+/* For conditions of distribution and use, see the disclaimer */
+/* and license in png.h */
+
+/* pnglibconf.h */
+/* Derived from: scripts/pnglibconf.dfa */
+/* If you edit this file by hand you must obey the rules expressed in */
+/* pnglibconf.dfa with respect to the dependencies between the following */
+/* symbols.  It is much better to generate a new file using */
+/* scripts/libpngconf.mak */
+
+#ifndef PNGLCONF_H
+#define PNGLCONF_H
+/* settings */
+#define PNG_API_RULE 0
+#define PNG_CALLOC_SUPPORTED
+#define PNG_COST_SHIFT 3
+#define PNG_DEFAULT_READ_MACROS 1
+#define PNG_GAMMA_THRESHOLD_FIXED 5000
+#define PNG_MAX_GAMMA_8 11
+#define PNG_QUANTIZE_BLUE_BITS 5
+#define PNG_QUANTIZE_GREEN_BITS 5
+#define PNG_QUANTIZE_RED_BITS 5
+#define PNG_sCAL_PRECISION 5
+#define PNG_USER_CHUNK_CACHE_MAX 0
+#define PNG_USER_CHUNK_MALLOC_MAX 0
+#define PNG_USER_HEIGHT_MAX 1000000L
+#define PNG_USER_WIDTH_MAX 1000000L
+#define PNG_WEIGHT_SHIFT 8
+#define PNG_ZBUF_SIZE 8192
+/* end of settings */
+/* options */
+#define PNG_16BIT_SUPPORTED
+#define PNG_ALIGN_MEMORY_SUPPORTED
+#define PNG_BENIGN_ERRORS_SUPPORTED
+#define PNG_bKGD_SUPPORTED
+#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED
+#define PNG_CHECK_cHRM_SUPPORTED
+#define PNG_cHRM_SUPPORTED
+#define PNG_CONSOLE_IO_SUPPORTED
+#define PNG_CONVERT_tIME_SUPPORTED
+#define PNG_EASY_ACCESS_SUPPORTED
+/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/
+#define PNG_ERROR_TEXT_SUPPORTED
+#define PNG_FIXED_POINT_SUPPORTED
+#define PNG_FLOATING_ARITHMETIC_SUPPORTED
+#define PNG_FLOATING_POINT_SUPPORTED
+#define PNG_gAMA_SUPPORTED
+#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+#define PNG_hIST_SUPPORTED
+#define PNG_iCCP_SUPPORTED
+#define PNG_INCH_CONVERSIONS_SUPPORTED
+#define PNG_INFO_IMAGE_SUPPORTED
+#define PNG_IO_STATE_SUPPORTED
+#define PNG_iTXt_SUPPORTED
+#define PNG_MNG_FEATURES_SUPPORTED
+#define PNG_oFFs_SUPPORTED
+#define PNG_pCAL_SUPPORTED
+#define PNG_pHYs_SUPPORTED
+#define PNG_POINTER_INDEXING_SUPPORTED
+#define PNG_PROGRESSIVE_READ_SUPPORTED
+#define PNG_READ_16BIT_SUPPORTED
+#define PNG_READ_ALPHA_MODE_SUPPORTED
+#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
+#define PNG_READ_BACKGROUND_SUPPORTED
+#define PNG_READ_BGR_SUPPORTED
+#define PNG_READ_bKGD_SUPPORTED
+#define PNG_READ_cHRM_SUPPORTED
+#define PNG_READ_COMPOSITE_NODIV_SUPPORTED
+#define PNG_READ_COMPRESSED_TEXT_SUPPORTED
+#define PNG_READ_EXPAND_16_SUPPORTED
+#define PNG_READ_EXPAND_SUPPORTED
+#define PNG_READ_FILLER_SUPPORTED
+#define PNG_READ_gAMA_SUPPORTED
+#define PNG_READ_GAMMA_SUPPORTED
+#define PNG_READ_GRAY_TO_RGB_SUPPORTED
+#define PNG_READ_hIST_SUPPORTED
+#define PNG_READ_iCCP_SUPPORTED
+#define PNG_READ_INTERLACING_SUPPORTED
+#define PNG_READ_INT_FUNCTIONS_SUPPORTED
+#define PNG_READ_INVERT_ALPHA_SUPPORTED
+#define PNG_READ_INVERT_SUPPORTED
+#define PNG_READ_iTXt_SUPPORTED
+#define PNG_READ_oFFs_SUPPORTED
+#define PNG_READ_OPT_PLTE_SUPPORTED
+#define PNG_READ_PACK_SUPPORTED
+#define PNG_READ_PACKSWAP_SUPPORTED
+#define PNG_READ_pCAL_SUPPORTED
+#define PNG_READ_pHYs_SUPPORTED
+#define PNG_READ_QUANTIZE_SUPPORTED
+#define PNG_READ_RGB_TO_GRAY_SUPPORTED
+#define PNG_READ_sBIT_SUPPORTED
+#define PNG_READ_SCALE_16_TO_8_SUPPORTED
+#define PNG_READ_sCAL_SUPPORTED
+#define PNG_READ_SHIFT_SUPPORTED
+#define PNG_READ_sPLT_SUPPORTED
+#define PNG_READ_sRGB_SUPPORTED
+#define PNG_READ_STRIP_16_TO_8_SUPPORTED
+#define PNG_READ_STRIP_ALPHA_SUPPORTED
+#define PNG_READ_SUPPORTED
+#define PNG_READ_SWAP_ALPHA_SUPPORTED
+#define PNG_READ_SWAP_SUPPORTED
+#define PNG_READ_tEXt_SUPPORTED
+#define PNG_READ_TEXT_SUPPORTED
+#define PNG_READ_tIME_SUPPORTED
+#define PNG_READ_TRANSFORMS_SUPPORTED
+#define PNG_READ_tRNS_SUPPORTED
+#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
+#define PNG_READ_USER_CHUNKS_SUPPORTED
+#define PNG_READ_USER_TRANSFORM_SUPPORTED
+#define PNG_READ_zTXt_SUPPORTED
+#define PNG_SAVE_INT_32_SUPPORTED
+#define PNG_sBIT_SUPPORTED
+#define PNG_sCAL_SUPPORTED
+#define PNG_SEQUENTIAL_READ_SUPPORTED
+#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED
+#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
+#define PNG_SETJMP_SUPPORTED
+#define PNG_SET_USER_LIMITS_SUPPORTED
+#define PNG_sPLT_SUPPORTED
+#define PNG_sRGB_SUPPORTED
+#define PNG_STDIO_SUPPORTED
+#define PNG_tEXt_SUPPORTED
+#define PNG_TEXT_SUPPORTED
+#define PNG_TIME_RFC1123_SUPPORTED
+#define PNG_tIME_SUPPORTED
+#define PNG_tRNS_SUPPORTED
+#define PNG_UNKNOWN_CHUNKS_SUPPORTED
+#define PNG_USER_CHUNKS_SUPPORTED
+#define PNG_USER_LIMITS_SUPPORTED
+#define PNG_USER_MEM_SUPPORTED
+#define PNG_USER_TRANSFORM_INFO_SUPPORTED
+#define PNG_USER_TRANSFORM_PTR_SUPPORTED
+#define PNG_WARNINGS_SUPPORTED
+#define PNG_zTXt_SUPPORTED
+/* end of options */
+#endif /* PNGLCONF_H */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngmem.c b/jdk/src/share/native/sun/awt/libpng/pngmem.c
index cee2fa7..88e7815 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngmem.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngmem.c
@@ -29,12 +29,15 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.13 November 13, 2006
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2006 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ *
  * This file provides a location for all memory allocation.  Users who
  * need special memory handling are expected to supply replacement
  * functions for png_malloc() and png_free(), and to use
@@ -42,52 +45,56 @@
  * identify the replacement functions.
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
 
 #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
 
 /* Borland DOS special memory handler */
 #if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__)
-/* if you change this, be sure to change the one in png.h also */
+/* If you change this, be sure to change the one in png.h also */
 
 /* Allocate memory for a png_struct.  The malloc and memset can be replaced
    by a single call to calloc() if this is thought to improve performance. */
-png_voidp /* PRIVATE */
-png_create_struct(int type)
+PNG_FUNCTION(png_voidp /* PRIVATE */,
+png_create_struct,(int type),PNG_ALLOCATED)
 {
-#ifdef PNG_USER_MEM_SUPPORTED
-   return (png_create_struct_2(type, png_malloc_ptr_NULL, png_voidp_NULL));
+#  ifdef PNG_USER_MEM_SUPPORTED
+   return (png_create_struct_2(type, NULL, NULL));
 }
 
 /* Alternate version of png_create_struct, for use with user-defined malloc. */
-png_voidp /* PRIVATE */
-png_create_struct_2(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr)
+PNG_FUNCTION(png_voidp /* PRIVATE */,
+png_create_struct_2,(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr),
+   PNG_ALLOCATED)
 {
-#endif /* PNG_USER_MEM_SUPPORTED */
+#  endif /* PNG_USER_MEM_SUPPORTED */
    png_size_t size;
    png_voidp struct_ptr;
 
    if (type == PNG_STRUCT_INFO)
-     size = png_sizeof(png_info);
+      size = png_sizeof(png_info);
+
    else if (type == PNG_STRUCT_PNG)
-     size = png_sizeof(png_struct);
+      size = png_sizeof(png_struct);
+
    else
-     return (png_get_copyright(NULL));
+      return (png_get_copyright(NULL));
 
-#ifdef PNG_USER_MEM_SUPPORTED
-   if(malloc_fn != NULL)
+#  ifdef PNG_USER_MEM_SUPPORTED
+   if (malloc_fn != NULL)
    {
       png_struct dummy_struct;
       png_structp png_ptr = &dummy_struct;
       png_ptr->mem_ptr=mem_ptr;
       struct_ptr = (*(malloc_fn))(png_ptr, (png_uint_32)size);
    }
+
    else
-#endif /* PNG_USER_MEM_SUPPORTED */
-      struct_ptr = (png_voidp)farmalloc(size);
+#  endif /* PNG_USER_MEM_SUPPORTED */
+   struct_ptr = (png_voidp)farmalloc(size);
    if (struct_ptr != NULL)
       png_memset(struct_ptr, 0, size);
+
    return (struct_ptr);
 }
 
@@ -95,8 +102,8 @@ png_create_struct_2(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr)
 void /* PRIVATE */
 png_destroy_struct(png_voidp struct_ptr)
 {
-#ifdef PNG_USER_MEM_SUPPORTED
-   png_destroy_struct_2(struct_ptr, png_free_ptr_NULL, png_voidp_NULL);
+#  ifdef PNG_USER_MEM_SUPPORTED
+   png_destroy_struct_2(struct_ptr, NULL, NULL);
 }
 
 /* Free memory allocated by a png_create_struct() call */
@@ -104,11 +111,11 @@ void /* PRIVATE */
 png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn,
     png_voidp mem_ptr)
 {
-#endif
+#  endif
    if (struct_ptr != NULL)
    {
-#ifdef PNG_USER_MEM_SUPPORTED
-      if(free_fn != NULL)
+#  ifdef PNG_USER_MEM_SUPPORTED
+      if (free_fn != NULL)
       {
          png_struct dummy_struct;
          png_structp png_ptr = &dummy_struct;
@@ -116,7 +123,8 @@ png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn,
          (*(free_fn))(png_ptr, struct_ptr);
          return;
       }
-#endif /* PNG_USER_MEM_SUPPORTED */
+
+#  endif /* PNG_USER_MEM_SUPPORTED */
       farfree (struct_ptr);
    }
 }
@@ -140,58 +148,76 @@ png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn,
  * result, we would be truncating potentially larger memory requests
  * (which should cause a fatal error) and introducing major problems.
  */
+PNG_FUNCTION(png_voidp,PNGAPI
+png_calloc,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED)
+{
+   png_voidp ret;
 
-png_voidp PNGAPI
-png_malloc(png_structp png_ptr, png_uint_32 size)
+   ret = (png_malloc(png_ptr, size));
+
+   if (ret != NULL)
+      png_memset(ret,0,(png_size_t)size);
+
+   return (ret);
+}
+
+PNG_FUNCTION(png_voidp,PNGAPI
+png_malloc,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED)
 {
    png_voidp ret;
 
    if (png_ptr == NULL || size == 0)
       return (NULL);
 
-#ifdef PNG_USER_MEM_SUPPORTED
-   if(png_ptr->malloc_fn != NULL)
-       ret = ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, (png_size_t)size));
+#  ifdef PNG_USER_MEM_SUPPORTED
+   if (png_ptr->malloc_fn != NULL)
+      ret = ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, (png_size_t)size));
+
    else
-       ret = (png_malloc_default(png_ptr, size));
+      ret = (png_malloc_default(png_ptr, size));
+
    if (ret == NULL && (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
-       png_error(png_ptr, "Out of memory!");
+       png_error(png_ptr, "Out of memory");
+
    return (ret);
 }
 
-png_voidp PNGAPI
-png_malloc_default(png_structp png_ptr, png_uint_32 size)
+PNG_FUNCTION(png_voidp,PNGAPI
+png_malloc_default,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED)
 {
    png_voidp ret;
-#endif /* PNG_USER_MEM_SUPPORTED */
+#  endif /* PNG_USER_MEM_SUPPORTED */
 
    if (png_ptr == NULL || size == 0)
       return (NULL);
 
-#ifdef PNG_MAX_MALLOC_64K
+#  ifdef PNG_MAX_MALLOC_64K
    if (size > (png_uint_32)65536L)
    {
       png_warning(png_ptr, "Cannot Allocate > 64K");
       ret = NULL;
    }
+
    else
-#endif
+#  endif
 
    if (size != (size_t)size)
-     ret = NULL;
+      ret = NULL;
+
    else if (size == (png_uint_32)65536L)
    {
       if (png_ptr->offset_table == NULL)
       {
-         /* try to see if we need to do any of this fancy stuff */
+         /* Try to see if we need to do any of this fancy stuff */
          ret = farmalloc(size);
          if (ret == NULL || ((png_size_t)ret & 0xffff))
          {
             int num_blocks;
             png_uint_32 total_size;
             png_bytep table;
-            int i;
+            int i, mem_level, window_bits;
             png_byte huge * hptr;
+            int window_bits
 
             if (ret != NULL)
             {
@@ -199,12 +225,23 @@ png_malloc_default(png_structp png_ptr, png_uint_32 size)
                ret = NULL;
             }
 
-            if(png_ptr->zlib_window_bits > 14)
-               num_blocks = (int)(1 << (png_ptr->zlib_window_bits - 14));
+            window_bits =
+                png_ptr->zlib_window_bits >= png_ptr->zlib_text_window_bits ?
+                png_ptr->zlib_window_bits : png_ptr->zlib_text_window_bits;
+
+            if (window_bits > 14)
+               num_blocks = (int)(1 << (window_bits - 14));
+
             else
                num_blocks = 1;
-            if (png_ptr->zlib_mem_level >= 7)
-               num_blocks += (int)(1 << (png_ptr->zlib_mem_level - 7));
+
+            mem_level =
+                png_ptr->zlib_mem_level >= png_ptr->zlib_text_mem_level ?
+                png_ptr->zlib_mem_level : png_ptr->zlib_text_mem_level;
+
+            if (mem_level >= 7)
+               num_blocks += (int)(1 << (mem_level - 7));
+
             else
                num_blocks++;
 
@@ -214,40 +251,43 @@ png_malloc_default(png_structp png_ptr, png_uint_32 size)
 
             if (table == NULL)
             {
-#ifndef PNG_USER_MEM_SUPPORTED
+#  ifndef PNG_USER_MEM_SUPPORTED
                if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
-                  png_error(png_ptr, "Out Of Memory."); /* Note "O" and "M" */
+                  png_error(png_ptr, "Out Of Memory"); /* Note "O", "M" */
+
                else
-                  png_warning(png_ptr, "Out Of Memory.");
-#endif
+                  png_warning(png_ptr, "Out Of Memory");
+#  endif
                return (NULL);
             }
 
             if ((png_size_t)table & 0xfff0)
             {
-#ifndef PNG_USER_MEM_SUPPORTED
+#  ifndef PNG_USER_MEM_SUPPORTED
                if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
                   png_error(png_ptr,
                     "Farmalloc didn't return normalized pointer");
+
                else
                   png_warning(png_ptr,
                     "Farmalloc didn't return normalized pointer");
-#endif
+#  endif
                return (NULL);
             }
 
             png_ptr->offset_table = table;
             png_ptr->offset_table_ptr = farmalloc(num_blocks *
-               png_sizeof (png_bytep));
+               png_sizeof(png_bytep));
 
             if (png_ptr->offset_table_ptr == NULL)
             {
-#ifndef PNG_USER_MEM_SUPPORTED
+#  ifndef PNG_USER_MEM_SUPPORTED
                if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
-                  png_error(png_ptr, "Out Of memory."); /* Note "O" and "M" */
+                  png_error(png_ptr, "Out Of memory"); /* Note "O", "m" */
+
                else
-                  png_warning(png_ptr, "Out Of memory.");
-#endif
+                  png_warning(png_ptr, "Out Of memory");
+#  endif
                return (NULL);
             }
 
@@ -257,6 +297,7 @@ png_malloc_default(png_structp png_ptr, png_uint_32 size)
                hptr = (png_byte huge *)((long)(hptr) & 0xfffffff0L);
                hptr = hptr + 16L;  /* "hptr += 16L" fails on Turbo C++ 3.0 */
             }
+
             for (i = 0; i < num_blocks; i++)
             {
                png_ptr->offset_table_ptr[i] = (png_bytep)hptr;
@@ -271,57 +312,64 @@ png_malloc_default(png_structp png_ptr, png_uint_32 size)
 
       if (png_ptr->offset_table_count >= png_ptr->offset_table_number)
       {
-#ifndef PNG_USER_MEM_SUPPORTED
+#  ifndef PNG_USER_MEM_SUPPORTED
          if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
-            png_error(png_ptr, "Out of Memory."); /* Note "o" and "M" */
+            png_error(png_ptr, "Out of Memory"); /* Note "O" and "M" */
+
          else
-            png_warning(png_ptr, "Out of Memory.");
-#endif
+            png_warning(png_ptr, "Out of Memory");
+#  endif
          return (NULL);
       }
 
       ret = png_ptr->offset_table_ptr[png_ptr->offset_table_count++];
    }
+
    else
       ret = farmalloc(size);
 
-#ifndef PNG_USER_MEM_SUPPORTED
+#  ifndef PNG_USER_MEM_SUPPORTED
    if (ret == NULL)
    {
       if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
-         png_error(png_ptr, "Out of memory."); /* Note "o" and "m" */
+         png_error(png_ptr, "Out of memory"); /* Note "o" and "m" */
+
       else
-         png_warning(png_ptr, "Out of memory."); /* Note "o" and "m" */
+         png_warning(png_ptr, "Out of memory"); /* Note "o" and "m" */
    }
-#endif
+#  endif
 
    return (ret);
 }
 
-/* free a pointer allocated by png_malloc().  In the default
-   configuration, png_ptr is not used, but is passed in case it
-   is needed.  If ptr is NULL, return without taking any action. */
+/* Free a pointer allocated by png_malloc().  In the default
+ * configuration, png_ptr is not used, but is passed in case it
+ * is needed.  If ptr is NULL, return without taking any action.
+ */
 void PNGAPI
 png_free(png_structp png_ptr, png_voidp ptr)
 {
    if (png_ptr == NULL || ptr == NULL)
       return;
 
-#ifdef PNG_USER_MEM_SUPPORTED
+#  ifdef PNG_USER_MEM_SUPPORTED
    if (png_ptr->free_fn != NULL)
    {
       (*(png_ptr->free_fn))(png_ptr, ptr);
       return;
    }
-   else png_free_default(png_ptr, ptr);
+
+   else
+      png_free_default(png_ptr, ptr);
 }
 
 void PNGAPI
 png_free_default(png_structp png_ptr, png_voidp ptr)
 {
-#endif /* PNG_USER_MEM_SUPPORTED */
+#  endif /* PNG_USER_MEM_SUPPORTED */
 
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL || ptr == NULL)
+      return;
 
    if (png_ptr->offset_table != NULL)
    {
@@ -346,9 +394,7 @@ png_free_default(png_structp png_ptr, png_voidp ptr)
    }
 
    if (ptr != NULL)
-   {
       farfree(ptr);
-   }
 }
 
 #else /* Not the Borland DOS special memory handler */
@@ -356,52 +402,58 @@ png_free_default(png_structp png_ptr, png_voidp ptr)
 /* Allocate memory for a png_struct or a png_info.  The malloc and
    memset can be replaced by a single call to calloc() if this is thought
    to improve performance noticably. */
-png_voidp /* PRIVATE */
-png_create_struct(int type)
+PNG_FUNCTION(png_voidp /* PRIVATE */,
+png_create_struct,(int type),PNG_ALLOCATED)
 {
-#ifdef PNG_USER_MEM_SUPPORTED
-   return (png_create_struct_2(type, png_malloc_ptr_NULL, png_voidp_NULL));
+#  ifdef PNG_USER_MEM_SUPPORTED
+   return (png_create_struct_2(type, NULL, NULL));
 }
 
 /* Allocate memory for a png_struct or a png_info.  The malloc and
    memset can be replaced by a single call to calloc() if this is thought
    to improve performance noticably. */
-png_voidp /* PRIVATE */
-png_create_struct_2(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr)
+PNG_FUNCTION(png_voidp /* PRIVATE */,
+png_create_struct_2,(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr),
+   PNG_ALLOCATED)
 {
-#endif /* PNG_USER_MEM_SUPPORTED */
+#  endif /* PNG_USER_MEM_SUPPORTED */
    png_size_t size;
    png_voidp struct_ptr;
 
    if (type == PNG_STRUCT_INFO)
       size = png_sizeof(png_info);
+
    else if (type == PNG_STRUCT_PNG)
       size = png_sizeof(png_struct);
+
    else
       return (NULL);
 
-#ifdef PNG_USER_MEM_SUPPORTED
-   if(malloc_fn != NULL)
+#  ifdef PNG_USER_MEM_SUPPORTED
+   if (malloc_fn != NULL)
    {
       png_struct dummy_struct;
       png_structp png_ptr = &dummy_struct;
       png_ptr->mem_ptr=mem_ptr;
       struct_ptr = (*(malloc_fn))(png_ptr, size);
+
       if (struct_ptr != NULL)
          png_memset(struct_ptr, 0, size);
+
       return (struct_ptr);
    }
-#endif /* PNG_USER_MEM_SUPPORTED */
+#  endif /* PNG_USER_MEM_SUPPORTED */
 
-#if defined(__TURBOC__) && !defined(__FLAT__)
+#  if defined(__TURBOC__) && !defined(__FLAT__)
    struct_ptr = (png_voidp)farmalloc(size);
-#else
-# if defined(_MSC_VER) && defined(MAXSEG_64K)
-   struct_ptr = (png_voidp)halloc(size,1);
-# else
+#  else
+#    if defined(_MSC_VER) && defined(MAXSEG_64K)
+   struct_ptr = (png_voidp)halloc(size, 1);
+#    else
    struct_ptr = (png_voidp)malloc(size);
-# endif
-#endif
+#    endif
+#  endif
+
    if (struct_ptr != NULL)
       png_memset(struct_ptr, 0, size);
 
@@ -413,8 +465,8 @@ png_create_struct_2(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr)
 void /* PRIVATE */
 png_destroy_struct(png_voidp struct_ptr)
 {
-#ifdef PNG_USER_MEM_SUPPORTED
-   png_destroy_struct_2(struct_ptr, png_free_ptr_NULL, png_voidp_NULL);
+#  ifdef PNG_USER_MEM_SUPPORTED
+   png_destroy_struct_2(struct_ptr, NULL, NULL);
 }
 
 /* Free memory allocated by a png_create_struct() call */
@@ -422,11 +474,11 @@ void /* PRIVATE */
 png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn,
     png_voidp mem_ptr)
 {
-#endif /* PNG_USER_MEM_SUPPORTED */
+#  endif /* PNG_USER_MEM_SUPPORTED */
    if (struct_ptr != NULL)
    {
-#ifdef PNG_USER_MEM_SUPPORTED
-      if(free_fn != NULL)
+#  ifdef PNG_USER_MEM_SUPPORTED
+      if (free_fn != NULL)
       {
          png_struct dummy_struct;
          png_structp png_ptr = &dummy_struct;
@@ -434,178 +486,182 @@ png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn,
          (*(free_fn))(png_ptr, struct_ptr);
          return;
       }
-#endif /* PNG_USER_MEM_SUPPORTED */
-#if defined(__TURBOC__) && !defined(__FLAT__)
+#  endif /* PNG_USER_MEM_SUPPORTED */
+#  if defined(__TURBOC__) && !defined(__FLAT__)
       farfree(struct_ptr);
-#else
-# if defined(_MSC_VER) && defined(MAXSEG_64K)
+
+#  else
+#    if defined(_MSC_VER) && defined(MAXSEG_64K)
       hfree(struct_ptr);
-# else
+
+#    else
       free(struct_ptr);
-# endif
-#endif
+
+#    endif
+#  endif
    }
 }
 
 /* Allocate memory.  For reasonable files, size should never exceed
-   64K.  However, zlib may allocate more then 64K if you don't tell
-   it not to.  See zconf.h and png.h for more information.  zlib does
-   need to allocate exactly 64K, so whatever you call here must
-   have the ability to do that. */
+ * 64K.  However, zlib may allocate more then 64K if you don't tell
+ * it not to.  See zconf.h and png.h for more information.  zlib does
+ * need to allocate exactly 64K, so whatever you call here must
+ * have the ability to do that.
+ */
 
-png_voidp PNGAPI
-png_malloc(png_structp png_ptr, png_uint_32 size)
+PNG_FUNCTION(png_voidp,PNGAPI
+png_calloc,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED)
 {
    png_voidp ret;
 
-#ifdef PNG_USER_MEM_SUPPORTED
+   ret = (png_malloc(png_ptr, size));
+
+   if (ret != NULL)
+      png_memset(ret,0,(png_size_t)size);
+
+   return (ret);
+}
+
+PNG_FUNCTION(png_voidp,PNGAPI
+png_malloc,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED)
+{
+   png_voidp ret;
+
+#  ifdef PNG_USER_MEM_SUPPORTED
    if (png_ptr == NULL || size == 0)
       return (NULL);
 
-   if(png_ptr->malloc_fn != NULL)
-       ret = ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, (png_size_t)size));
+   if (png_ptr->malloc_fn != NULL)
+      ret = ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, (png_size_t)size));
+
    else
-       ret = (png_malloc_default(png_ptr, size));
+      ret = (png_malloc_default(png_ptr, size));
+
    if (ret == NULL && (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
-       png_error(png_ptr, "Out of Memory!");
+       png_error(png_ptr, "Out of Memory");
+
    return (ret);
 }
 
-png_voidp PNGAPI
-png_malloc_default(png_structp png_ptr, png_uint_32 size)
+PNG_FUNCTION(png_voidp,PNGAPI
+png_malloc_default,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED)
 {
    png_voidp ret;
-#endif /* PNG_USER_MEM_SUPPORTED */
+#  endif /* PNG_USER_MEM_SUPPORTED */
 
    if (png_ptr == NULL || size == 0)
       return (NULL);
 
-#ifdef PNG_MAX_MALLOC_64K
+#  ifdef PNG_MAX_MALLOC_64K
    if (size > (png_uint_32)65536L)
    {
-#ifndef PNG_USER_MEM_SUPPORTED
-      if(png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
+#    ifndef PNG_USER_MEM_SUPPORTED
+      if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
          png_error(png_ptr, "Cannot Allocate > 64K");
+
       else
-#endif
+#    endif
          return NULL;
    }
-#endif
-
- /* Check for overflow */
-#if defined(__TURBOC__) && !defined(__FLAT__)
- if (size != (unsigned long)size)
-   ret = NULL;
- else
-   ret = farmalloc(size);
-#else
-# if defined(_MSC_VER) && defined(MAXSEG_64K)
- if (size != (unsigned long)size)
-   ret = NULL;
- else
-   ret = halloc(size, 1);
-# else
- if (size != (size_t)size)
-   ret = NULL;
- else
-   ret = malloc((size_t)size);
-# endif
-#endif
-
-#ifndef PNG_USER_MEM_SUPPORTED
+#  endif
+
+   /* Check for overflow */
+#  if defined(__TURBOC__) && !defined(__FLAT__)
+
+   if (size != (unsigned long)size)
+      ret = NULL;
+
+   else
+      ret = farmalloc(size);
+
+#  else
+#    if defined(_MSC_VER) && defined(MAXSEG_64K)
+   if (size != (unsigned long)size)
+      ret = NULL;
+
+   else
+      ret = halloc(size, 1);
+
+#    else
+   if (size != (size_t)size)
+      ret = NULL;
+
+   else
+      ret = malloc((size_t)size);
+#    endif
+#  endif
+
+#  ifndef PNG_USER_MEM_SUPPORTED
    if (ret == NULL && (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
       png_error(png_ptr, "Out of Memory");
-#endif
+#  endif
 
    return (ret);
 }
 
 /* Free a pointer allocated by png_malloc().  If ptr is NULL, return
-   without taking any action. */
+ * without taking any action.
+ */
 void PNGAPI
 png_free(png_structp png_ptr, png_voidp ptr)
 {
    if (png_ptr == NULL || ptr == NULL)
       return;
 
-#ifdef PNG_USER_MEM_SUPPORTED
+#  ifdef PNG_USER_MEM_SUPPORTED
    if (png_ptr->free_fn != NULL)
    {
       (*(png_ptr->free_fn))(png_ptr, ptr);
       return;
    }
-   else png_free_default(png_ptr, ptr);
+
+   else
+      png_free_default(png_ptr, ptr);
 }
+
 void PNGAPI
 png_free_default(png_structp png_ptr, png_voidp ptr)
 {
    if (png_ptr == NULL || ptr == NULL)
       return;
 
-#endif /* PNG_USER_MEM_SUPPORTED */
+#  endif /* PNG_USER_MEM_SUPPORTED */
 
-#if defined(__TURBOC__) && !defined(__FLAT__)
+#  if defined(__TURBOC__) && !defined(__FLAT__)
    farfree(ptr);
-#else
-# if defined(_MSC_VER) && defined(MAXSEG_64K)
+
+#  else
+#    if defined(_MSC_VER) && defined(MAXSEG_64K)
    hfree(ptr);
-# else
+
+#    else
    free(ptr);
-# endif
-#endif
-}
 
+#    endif
+#  endif
+}
 #endif /* Not Borland DOS special memory handler */
 
-#if defined(PNG_1_0_X)
-#  define png_malloc_warn png_malloc
-#else
 /* This function was added at libpng version 1.2.3.  The png_malloc_warn()
  * function will set up png_malloc() to issue a png_warning and return NULL
  * instead of issuing a png_error, if it fails to allocate the requested
  * memory.
  */
-png_voidp PNGAPI
-png_malloc_warn(png_structp png_ptr, png_uint_32 size)
+PNG_FUNCTION(png_voidp,PNGAPI
+png_malloc_warn,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED)
 {
    png_voidp ptr;
    png_uint_32 save_flags;
-   if(png_ptr == NULL) return (NULL);
+   if (png_ptr == NULL)
+      return (NULL);
 
-   save_flags=png_ptr->flags;
+   save_flags = png_ptr->flags;
    png_ptr->flags|=PNG_FLAG_MALLOC_NULL_MEM_OK;
    ptr = (png_voidp)png_malloc((png_structp)png_ptr, size);
    png_ptr->flags=save_flags;
    return(ptr);
 }
-#endif
 
-png_voidp PNGAPI
-png_memcpy_check (png_structp png_ptr, png_voidp s1, png_voidp s2,
-   png_uint_32 length)
-{
-   png_size_t size;
-
-   size = (png_size_t)length;
-   if ((png_uint_32)size != length)
-      png_error(png_ptr,"Overflow in png_memcpy_check.");
-
-   return(png_memcpy (s1, s2, size));
-}
-
-png_voidp PNGAPI
-png_memset_check (png_structp png_ptr, png_voidp s1, int value,
-   png_uint_32 length)
-{
-   png_size_t size;
-
-   size = (png_size_t)length;
-   if ((png_uint_32)size != length)
-      png_error(png_ptr,"Overflow in png_memset_check.");
-
-   return (png_memset (s1, value, size));
-
-}
 
 #ifdef PNG_USER_MEM_SUPPORTED
 /* This function is called when the application wants to use another method
@@ -615,10 +671,11 @@ void PNGAPI
 png_set_mem_fn(png_structp png_ptr, png_voidp mem_ptr, png_malloc_ptr
   malloc_fn, png_free_ptr free_fn)
 {
-   if(png_ptr != NULL) {
-   png_ptr->mem_ptr = mem_ptr;
-   png_ptr->malloc_fn = malloc_fn;
-   png_ptr->free_fn = free_fn;
+   if (png_ptr != NULL)
+   {
+      png_ptr->mem_ptr = mem_ptr;
+      png_ptr->malloc_fn = malloc_fn;
+      png_ptr->free_fn = free_fn;
    }
 }
 
@@ -627,9 +684,11 @@ png_set_mem_fn(png_structp png_ptr, png_voidp mem_ptr, png_malloc_ptr
  * pointer before png_write_destroy and png_read_destroy are called.
  */
 png_voidp PNGAPI
-png_get_mem_ptr(png_structp png_ptr)
+png_get_mem_ptr(png_const_structp png_ptr)
 {
-   if(png_ptr == NULL) return (NULL);
+   if (png_ptr == NULL)
+      return (NULL);
+
    return ((png_voidp)png_ptr->mem_ptr);
 }
 #endif /* PNG_USER_MEM_SUPPORTED */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngpread.c b/jdk/src/share/native/sun/awt/libpng/pngpread.c
index d0fc863..258a163 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngpread.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngpread.c
@@ -29,19 +29,21 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.17 May 15, 2007
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.2 [March 31, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
 
 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
 
-/* push model modes */
+/* Push model modes */
 #define PNG_READ_SIG_MODE   0
 #define PNG_READ_CHUNK_MODE 1
 #define PNG_READ_IDAT_MODE  2
@@ -54,9 +56,11 @@
 
 void PNGAPI
 png_process_data(png_structp png_ptr, png_infop info_ptr,
-   png_bytep buffer, png_size_t buffer_size)
+    png_bytep buffer, png_size_t buffer_size)
 {
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL || info_ptr == NULL)
+      return;
+
    png_push_restore_buffer(png_ptr, buffer, buffer_size);
 
    while (png_ptr->buffer_size)
@@ -65,13 +69,73 @@ png_process_data(png_structp png_ptr, png_infop info_ptr,
    }
 }
 
+png_size_t PNGAPI
+png_process_data_pause(png_structp png_ptr, int save)
+{
+   if (png_ptr != NULL)
+   {
+      /* It's easiest for the caller if we do the save, then the caller doesn't
+       * have to supply the same data again:
+       */
+      if (save)
+         png_push_save_buffer(png_ptr);
+      else
+      {
+         /* This includes any pending saved bytes: */
+         png_size_t remaining = png_ptr->buffer_size;
+         png_ptr->buffer_size = 0;
+
+         /* So subtract the saved buffer size, unless all the data
+          * is actually 'saved', in which case we just return 0
+          */
+         if (png_ptr->save_buffer_size < remaining)
+            return remaining - png_ptr->save_buffer_size;
+      }
+   }
+
+   return 0;
+}
+
+png_uint_32 PNGAPI
+png_process_data_skip(png_structp png_ptr)
+{
+   png_uint_32 remaining = 0;
+
+   if (png_ptr != NULL && png_ptr->process_mode == PNG_SKIP_MODE &&
+      png_ptr->skip_length > 0)
+   {
+      /* At the end of png_process_data the buffer size must be 0 (see the loop
+       * above) so we can detect a broken call here:
+       */
+      if (png_ptr->buffer_size != 0)
+         png_error(png_ptr,
+            "png_process_data_skip called inside png_process_data");
+
+      /* If is impossible for there to be a saved buffer at this point -
+       * otherwise we could not be in SKIP mode.  This will also happen if
+       * png_process_skip is called inside png_process_data (but only very
+       * rarely.)
+       */
+      if (png_ptr->save_buffer_size != 0)
+         png_error(png_ptr, "png_process_data_skip called with saved data");
+
+      remaining = png_ptr->skip_length;
+      png_ptr->skip_length = 0;
+      png_ptr->process_mode = PNG_READ_CHUNK_MODE;
+   }
+
+   return remaining;
+}
+
 /* What we do with the incoming data depends on what we were previously
  * doing before we ran out of data...
  */
 void /* PRIVATE */
 png_process_some_data(png_structp png_ptr, png_infop info_ptr)
 {
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL)
+      return;
+
    switch (png_ptr->process_mode)
    {
       case PNG_READ_SIG_MODE:
@@ -79,42 +143,49 @@ png_process_some_data(png_structp png_ptr, png_infop info_ptr)
          png_push_read_sig(png_ptr, info_ptr);
          break;
       }
+
       case PNG_READ_CHUNK_MODE:
       {
          png_push_read_chunk(png_ptr, info_ptr);
          break;
       }
+
       case PNG_READ_IDAT_MODE:
       {
          png_push_read_IDAT(png_ptr);
          break;
       }
-#if defined(PNG_READ_tEXt_SUPPORTED)
+
+#ifdef PNG_READ_tEXt_SUPPORTED
       case PNG_READ_tEXt_MODE:
       {
          png_push_read_tEXt(png_ptr, info_ptr);
          break;
       }
+
 #endif
-#if defined(PNG_READ_zTXt_SUPPORTED)
+#ifdef PNG_READ_zTXt_SUPPORTED
       case PNG_READ_zTXt_MODE:
       {
          png_push_read_zTXt(png_ptr, info_ptr);
          break;
       }
+
 #endif
-#if defined(PNG_READ_iTXt_SUPPORTED)
+#ifdef PNG_READ_iTXt_SUPPORTED
       case PNG_READ_iTXt_MODE:
       {
          png_push_read_iTXt(png_ptr, info_ptr);
          break;
       }
+
 #endif
       case PNG_SKIP_MODE:
       {
          png_push_crc_finish(png_ptr);
          break;
       }
+
       default:
       {
          png_ptr->buffer_size = 0;
@@ -141,14 +212,15 @@ png_push_read_sig(png_structp png_ptr, png_infop info_ptr)
    }
 
    png_push_fill_buffer(png_ptr, &(info_ptr->signature[num_checked]),
-      num_to_check);
-   png_ptr->sig_bytes = (png_byte)(png_ptr->sig_bytes+num_to_check);
+       num_to_check);
+   png_ptr->sig_bytes = (png_byte)(png_ptr->sig_bytes + num_to_check);
 
    if (png_sig_cmp(info_ptr->signature, num_checked, num_to_check))
    {
       if (num_checked < 4 &&
           png_sig_cmp(info_ptr->signature, num_checked, num_to_check - 4))
          png_error(png_ptr, "Not a PNG file");
+
       else
          png_error(png_ptr, "PNG file corrupted by ASCII conversion");
    }
@@ -164,63 +236,62 @@ png_push_read_sig(png_structp png_ptr, png_infop info_ptr)
 void /* PRIVATE */
 png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
       PNG_IHDR;
       PNG_IDAT;
       PNG_IEND;
       PNG_PLTE;
-#if defined(PNG_READ_bKGD_SUPPORTED)
+#ifdef PNG_READ_bKGD_SUPPORTED
       PNG_bKGD;
 #endif
-#if defined(PNG_READ_cHRM_SUPPORTED)
+#ifdef PNG_READ_cHRM_SUPPORTED
       PNG_cHRM;
 #endif
-#if defined(PNG_READ_gAMA_SUPPORTED)
+#ifdef PNG_READ_gAMA_SUPPORTED
       PNG_gAMA;
 #endif
-#if defined(PNG_READ_hIST_SUPPORTED)
+#ifdef PNG_READ_hIST_SUPPORTED
       PNG_hIST;
 #endif
-#if defined(PNG_READ_iCCP_SUPPORTED)
+#ifdef PNG_READ_iCCP_SUPPORTED
       PNG_iCCP;
 #endif
-#if defined(PNG_READ_iTXt_SUPPORTED)
+#ifdef PNG_READ_iTXt_SUPPORTED
       PNG_iTXt;
 #endif
-#if defined(PNG_READ_oFFs_SUPPORTED)
+#ifdef PNG_READ_oFFs_SUPPORTED
       PNG_oFFs;
 #endif
-#if defined(PNG_READ_pCAL_SUPPORTED)
+#ifdef PNG_READ_pCAL_SUPPORTED
       PNG_pCAL;
 #endif
-#if defined(PNG_READ_pHYs_SUPPORTED)
+#ifdef PNG_READ_pHYs_SUPPORTED
       PNG_pHYs;
 #endif
-#if defined(PNG_READ_sBIT_SUPPORTED)
+#ifdef PNG_READ_sBIT_SUPPORTED
       PNG_sBIT;
 #endif
-#if defined(PNG_READ_sCAL_SUPPORTED)
+#ifdef PNG_READ_sCAL_SUPPORTED
       PNG_sCAL;
 #endif
-#if defined(PNG_READ_sRGB_SUPPORTED)
+#ifdef PNG_READ_sRGB_SUPPORTED
       PNG_sRGB;
 #endif
-#if defined(PNG_READ_sPLT_SUPPORTED)
+#ifdef PNG_READ_sPLT_SUPPORTED
       PNG_sPLT;
 #endif
-#if defined(PNG_READ_tEXt_SUPPORTED)
+#ifdef PNG_READ_tEXt_SUPPORTED
       PNG_tEXt;
 #endif
-#if defined(PNG_READ_tIME_SUPPORTED)
+#ifdef PNG_READ_tIME_SUPPORTED
       PNG_tIME;
 #endif
-#if defined(PNG_READ_tRNS_SUPPORTED)
+#ifdef PNG_READ_tRNS_SUPPORTED
       PNG_tRNS;
 #endif
-#if defined(PNG_READ_zTXt_SUPPORTED)
+#ifdef PNG_READ_zTXt_SUPPORTED
       PNG_zTXt;
 #endif
-#endif /* PNG_USE_LOCAL_ARRAYS */
+
    /* First we make sure we have enough data for the 4 byte chunk name
     * and the 4 byte chunk length before proceeding with decoding the
     * chunk data.  To fully decode each of these chunks, we also make
@@ -238,25 +309,31 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
       }
 
       png_push_fill_buffer(png_ptr, chunk_length, 4);
-      png_ptr->push_length = png_get_uint_31(png_ptr,chunk_length);
+      png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length);
       png_reset_crc(png_ptr);
       png_crc_read(png_ptr, png_ptr->chunk_name, 4);
+      png_check_chunk_name(png_ptr, png_ptr->chunk_name);
       png_ptr->mode |= PNG_HAVE_CHUNK_HEADER;
    }
 
-   if (!png_memcmp(png_ptr->chunk_name, (png_bytep)png_IDAT, 4))
-     if(png_ptr->mode & PNG_AFTER_IDAT)
-        png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT;
+   if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
+      if (png_ptr->mode & PNG_AFTER_IDAT)
+         png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT;
 
    if (!png_memcmp(png_ptr->chunk_name, png_IHDR, 4))
    {
+      if (png_ptr->push_length != 13)
+         png_error(png_ptr, "Invalid IHDR length");
+
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
       {
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_IHDR(png_ptr, info_ptr, png_ptr->push_length);
    }
+
    else if (!png_memcmp(png_ptr->chunk_name, png_IEND, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -264,11 +341,13 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_IEND(png_ptr, info_ptr, png_ptr->push_length);
 
       png_ptr->process_mode = PNG_READ_DONE_MODE;
       png_push_have_end(png_ptr, info_ptr);
    }
+
 #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
    else if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name))
    {
@@ -277,20 +356,26 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
          png_ptr->mode |= PNG_HAVE_IDAT;
+
       png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length);
+
       if (!png_memcmp(png_ptr->chunk_name, png_PLTE, 4))
          png_ptr->mode |= PNG_HAVE_PLTE;
+
       else if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
       {
          if (!(png_ptr->mode & PNG_HAVE_IHDR))
             png_error(png_ptr, "Missing IHDR before IDAT");
+
          else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE &&
-                  !(png_ptr->mode & PNG_HAVE_PLTE))
+             !(png_ptr->mode & PNG_HAVE_PLTE))
             png_error(png_ptr, "Missing PLTE before IDAT");
       }
    }
+
 #endif
    else if (!png_memcmp(png_ptr->chunk_name, png_PLTE, 4))
    {
@@ -301,37 +386,43 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
       }
       png_handle_PLTE(png_ptr, info_ptr, png_ptr->push_length);
    }
-   else if (!png_memcmp(png_ptr->chunk_name, (png_bytep)png_IDAT, 4))
+
+   else if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
    {
       /* If we reach an IDAT chunk, this means we have read all of the
        * header chunks, and we can start reading the image (or if this
        * is called after the image has been read - we have an error).
        */
-     if (!(png_ptr->mode & PNG_HAVE_IHDR))
-       png_error(png_ptr, "Missing IHDR before IDAT");
-     else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE &&
-         !(png_ptr->mode & PNG_HAVE_PLTE))
-       png_error(png_ptr, "Missing PLTE before IDAT");
+
+      if (!(png_ptr->mode & PNG_HAVE_IHDR))
+         png_error(png_ptr, "Missing IHDR before IDAT");
+
+      else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE &&
+          !(png_ptr->mode & PNG_HAVE_PLTE))
+         png_error(png_ptr, "Missing PLTE before IDAT");
 
       if (png_ptr->mode & PNG_HAVE_IDAT)
       {
          if (!(png_ptr->mode & PNG_HAVE_CHUNK_AFTER_IDAT))
-           if (png_ptr->push_length == 0)
-              return;
+            if (png_ptr->push_length == 0)
+               return;
 
          if (png_ptr->mode & PNG_AFTER_IDAT)
-            png_error(png_ptr, "Too many IDAT's found");
+            png_benign_error(png_ptr, "Too many IDATs found");
       }
 
       png_ptr->idat_size = png_ptr->push_length;
       png_ptr->mode |= PNG_HAVE_IDAT;
       png_ptr->process_mode = PNG_READ_IDAT_MODE;
       png_push_have_info(png_ptr, info_ptr);
-      png_ptr->zstream.avail_out = (uInt)png_ptr->irowbytes;
+      png_ptr->zstream.avail_out =
+          (uInt) PNG_ROWBYTES(png_ptr->pixel_depth,
+          png_ptr->iwidth) + 1;
       png_ptr->zstream.next_out = png_ptr->row_buf;
       return;
    }
-#if defined(PNG_READ_gAMA_SUPPORTED)
+
+#ifdef PNG_READ_gAMA_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_gAMA, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -339,10 +430,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_gAMA(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_sBIT_SUPPORTED)
+#ifdef PNG_READ_sBIT_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_sBIT, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -350,10 +443,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_sBIT(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_cHRM_SUPPORTED)
+#ifdef PNG_READ_cHRM_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_cHRM, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -361,10 +456,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_cHRM(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_sRGB_SUPPORTED)
+#ifdef PNG_READ_sRGB_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_sRGB, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -372,10 +469,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_sRGB(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_iCCP_SUPPORTED)
+#ifdef PNG_READ_iCCP_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_iCCP, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -383,10 +482,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_iCCP(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_sPLT_SUPPORTED)
+#ifdef PNG_READ_sPLT_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_sPLT, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -394,10 +495,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_sPLT(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_tRNS_SUPPORTED)
+#ifdef PNG_READ_tRNS_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_tRNS, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -405,10 +508,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_tRNS(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_bKGD_SUPPORTED)
+#ifdef PNG_READ_bKGD_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_bKGD, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -416,10 +521,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_bKGD(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_hIST_SUPPORTED)
+#ifdef PNG_READ_hIST_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_hIST, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -427,10 +534,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_hIST(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_pHYs_SUPPORTED)
+#ifdef PNG_READ_pHYs_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_pHYs, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -438,10 +547,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_pHYs(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_oFFs_SUPPORTED)
+#ifdef PNG_READ_oFFs_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_oFFs, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -449,10 +560,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_oFFs(png_ptr, info_ptr, png_ptr->push_length);
    }
 #endif
-#if defined(PNG_READ_pCAL_SUPPORTED)
+
+#ifdef PNG_READ_pCAL_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_pCAL, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -460,10 +573,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_pCAL(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_sCAL_SUPPORTED)
+#ifdef PNG_READ_sCAL_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_sCAL, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -471,10 +586,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_sCAL(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_tIME_SUPPORTED)
+#ifdef PNG_READ_tIME_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_tIME, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -482,10 +599,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_handle_tIME(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_tEXt_SUPPORTED)
+#ifdef PNG_READ_tEXt_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_tEXt, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -493,10 +612,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_push_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_zTXt_SUPPORTED)
+#ifdef PNG_READ_zTXt_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_zTXt, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -504,10 +625,12 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_push_handle_zTXt(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
-#if defined(PNG_READ_iTXt_SUPPORTED)
+#ifdef PNG_READ_iTXt_SUPPORTED
    else if (!png_memcmp(png_ptr->chunk_name, png_iTXt, 4))
    {
       if (png_ptr->push_length + 4 > png_ptr->buffer_size)
@@ -515,8 +638,10 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
          png_push_save_buffer(png_ptr);
          return;
       }
+
       png_push_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length);
    }
+
 #endif
    else
    {
@@ -543,32 +668,45 @@ png_push_crc_finish(png_structp png_ptr)
 {
    if (png_ptr->skip_length && png_ptr->save_buffer_size)
    {
-      png_size_t save_size;
+      png_size_t save_size = png_ptr->save_buffer_size;
+      png_uint_32 skip_length = png_ptr->skip_length;
+
+      /* We want the smaller of 'skip_length' and 'save_buffer_size', but
+       * they are of different types and we don't know which variable has the
+       * fewest bits.  Carefully select the smaller and cast it to the type of
+       * the larger - this cannot overflow.  Do not cast in the following test
+       * - it will break on either 16 or 64 bit platforms.
+       */
+      if (skip_length < save_size)
+         save_size = (png_size_t)skip_length;
 
-      if (png_ptr->skip_length < (png_uint_32)png_ptr->save_buffer_size)
-         save_size = (png_size_t)png_ptr->skip_length;
       else
-         save_size = png_ptr->save_buffer_size;
+         skip_length = (png_uint_32)save_size;
 
       png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size);
 
-      png_ptr->skip_length -= save_size;
+      png_ptr->skip_length -= skip_length;
       png_ptr->buffer_size -= save_size;
       png_ptr->save_buffer_size -= save_size;
       png_ptr->save_buffer_ptr += save_size;
    }
    if (png_ptr->skip_length && png_ptr->current_buffer_size)
    {
-      png_size_t save_size;
+      png_size_t save_size = png_ptr->current_buffer_size;
+      png_uint_32 skip_length = png_ptr->skip_length;
+
+      /* We want the smaller of 'skip_length' and 'current_buffer_size', here,
+       * the same problem exists as above and the same solution.
+       */
+      if (skip_length < save_size)
+         save_size = (png_size_t)skip_length;
 
-      if (png_ptr->skip_length < (png_uint_32)png_ptr->current_buffer_size)
-         save_size = (png_size_t)png_ptr->skip_length;
       else
-         save_size = png_ptr->current_buffer_size;
+         skip_length = (png_uint_32)save_size;
 
       png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size);
 
-      png_ptr->skip_length -= save_size;
+      png_ptr->skip_length -= skip_length;
       png_ptr->buffer_size -= save_size;
       png_ptr->current_buffer_size -= save_size;
       png_ptr->current_buffer_ptr += save_size;
@@ -586,12 +724,14 @@ png_push_crc_finish(png_structp png_ptr)
    }
 }
 
-void PNGAPI
+void PNGCBAPI
 png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, png_size_t length)
 {
    png_bytep ptr;
 
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL)
+      return;
+
    ptr = buffer;
    if (png_ptr->save_buffer_size)
    {
@@ -599,6 +739,7 @@ png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, png_size_t length)
 
       if (length < png_ptr->save_buffer_size)
          save_size = length;
+
       else
          save_size = png_ptr->save_buffer_size;
 
@@ -615,6 +756,7 @@ png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, png_size_t length)
 
       if (length < png_ptr->current_buffer_size)
          save_size = length;
+
       else
          save_size = png_ptr->current_buffer_size;
 
@@ -632,33 +774,41 @@ png_push_save_buffer(png_structp png_ptr)
    {
       if (png_ptr->save_buffer_ptr != png_ptr->save_buffer)
       {
-         png_size_t i,istop;
+         png_size_t i, istop;
          png_bytep sp;
          png_bytep dp;
 
          istop = png_ptr->save_buffer_size;
          for (i = 0, sp = png_ptr->save_buffer_ptr, dp = png_ptr->save_buffer;
-            i < istop; i++, sp++, dp++)
+             i < istop; i++, sp++, dp++)
          {
             *dp = *sp;
          }
       }
    }
    if (png_ptr->save_buffer_size + png_ptr->current_buffer_size >
-      png_ptr->save_buffer_max)
+       png_ptr->save_buffer_max)
    {
       png_size_t new_max;
       png_bytep old_buffer;
 
       if (png_ptr->save_buffer_size > PNG_SIZE_MAX -
-         (png_ptr->current_buffer_size + 256))
+          (png_ptr->current_buffer_size + 256))
       {
-        png_error(png_ptr, "Potential overflow of save_buffer");
+         png_error(png_ptr, "Potential overflow of save_buffer");
       }
+
       new_max = png_ptr->save_buffer_size + png_ptr->current_buffer_size + 256;
       old_buffer = png_ptr->save_buffer;
-      png_ptr->save_buffer = (png_bytep)png_malloc(png_ptr,
-         (png_uint_32)new_max);
+      png_ptr->save_buffer = (png_bytep)png_malloc_warn(png_ptr,
+          (png_size_t)new_max);
+
+      if (png_ptr->save_buffer == NULL)
+      {
+         png_free(png_ptr, old_buffer);
+         png_error(png_ptr, "Insufficient memory for save_buffer");
+      }
+
       png_memcpy(png_ptr->save_buffer, old_buffer, png_ptr->save_buffer_size);
       png_free(png_ptr, old_buffer);
       png_ptr->save_buffer_max = new_max;
@@ -687,9 +837,7 @@ png_push_restore_buffer(png_structp png_ptr, png_bytep buffer,
 void /* PRIVATE */
 png_push_read_IDAT(png_structp png_ptr)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_IDAT;
-#endif
    if (!(png_ptr->mode & PNG_HAVE_CHUNK_HEADER))
    {
       png_byte chunk_length[4];
@@ -701,16 +849,18 @@ png_push_read_IDAT(png_structp png_ptr)
       }
 
       png_push_fill_buffer(png_ptr, chunk_length, 4);
-      png_ptr->push_length = png_get_uint_31(png_ptr,chunk_length);
+      png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length);
       png_reset_crc(png_ptr);
       png_crc_read(png_ptr, png_ptr->chunk_name, 4);
       png_ptr->mode |= PNG_HAVE_CHUNK_HEADER;
 
-      if (png_memcmp(png_ptr->chunk_name, (png_bytep)png_IDAT, 4))
+      if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
       {
          png_ptr->process_mode = PNG_READ_CHUNK_MODE;
+
          if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
             png_error(png_ptr, "Not enough compressed data");
+
          return;
       }
 
@@ -718,45 +868,52 @@ png_push_read_IDAT(png_structp png_ptr)
    }
    if (png_ptr->idat_size && png_ptr->save_buffer_size)
    {
-      png_size_t save_size;
+      png_size_t save_size = png_ptr->save_buffer_size;
+      png_uint_32 idat_size = png_ptr->idat_size;
+
+      /* We want the smaller of 'idat_size' and 'current_buffer_size', but they
+       * are of different types and we don't know which variable has the fewest
+       * bits.  Carefully select the smaller and cast it to the type of the
+       * larger - this cannot overflow.  Do not cast in the following test - it
+       * will break on either 16 or 64 bit platforms.
+       */
+      if (idat_size < save_size)
+         save_size = (png_size_t)idat_size;
 
-      if (png_ptr->idat_size < (png_uint_32)png_ptr->save_buffer_size)
-      {
-         save_size = (png_size_t)png_ptr->idat_size;
-         /* check for overflow */
-         if((png_uint_32)save_size != png_ptr->idat_size)
-            png_error(png_ptr, "save_size overflowed in pngpread");
-      }
       else
-         save_size = png_ptr->save_buffer_size;
+         idat_size = (png_uint_32)save_size;
 
       png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size);
-      if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
-         png_process_IDAT_data(png_ptr, png_ptr->save_buffer_ptr, save_size);
-      png_ptr->idat_size -= save_size;
+
+      png_process_IDAT_data(png_ptr, png_ptr->save_buffer_ptr, save_size);
+
+      png_ptr->idat_size -= idat_size;
       png_ptr->buffer_size -= save_size;
       png_ptr->save_buffer_size -= save_size;
       png_ptr->save_buffer_ptr += save_size;
    }
+
    if (png_ptr->idat_size && png_ptr->current_buffer_size)
    {
-      png_size_t save_size;
+      png_size_t save_size = png_ptr->current_buffer_size;
+      png_uint_32 idat_size = png_ptr->idat_size;
+
+      /* We want the smaller of 'idat_size' and 'current_buffer_size', but they
+       * are of different types and we don't know which variable has the fewest
+       * bits.  Carefully select the smaller and cast it to the type of the
+       * larger - this cannot overflow.
+       */
+      if (idat_size < save_size)
+         save_size = (png_size_t)idat_size;
 
-      if (png_ptr->idat_size < (png_uint_32)png_ptr->current_buffer_size)
-      {
-         save_size = (png_size_t)png_ptr->idat_size;
-         /* check for overflow */
-         if((png_uint_32)save_size != png_ptr->idat_size)
-            png_error(png_ptr, "save_size overflowed in pngpread");
-      }
       else
-         save_size = png_ptr->current_buffer_size;
+         idat_size = (png_uint_32)save_size;
 
       png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size);
-      if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
-        png_process_IDAT_data(png_ptr, png_ptr->current_buffer_ptr, save_size);
 
-      png_ptr->idat_size -= save_size;
+      png_process_IDAT_data(png_ptr, png_ptr->current_buffer_ptr, save_size);
+
+      png_ptr->idat_size -= idat_size;
       png_ptr->buffer_size -= save_size;
       png_ptr->current_buffer_size -= save_size;
       png_ptr->current_buffer_ptr += save_size;
@@ -779,57 +936,104 @@ void /* PRIVATE */
 png_process_IDAT_data(png_structp png_ptr, png_bytep buffer,
    png_size_t buffer_length)
 {
-   int ret;
-
-   if ((png_ptr->flags & PNG_FLAG_ZLIB_FINISHED) && buffer_length)
-      png_error(png_ptr, "Extra compression data");
+   /* The caller checks for a non-zero buffer length. */
+   if (!(buffer_length > 0) || buffer == NULL)
+      png_error(png_ptr, "No IDAT data (internal error)");
 
+   /* This routine must process all the data it has been given
+    * before returning, calling the row callback as required to
+    * handle the uncompressed results.
+    */
    png_ptr->zstream.next_in = buffer;
    png_ptr->zstream.avail_in = (uInt)buffer_length;
-   for(;;)
+
+   /* Keep going until the decompressed data is all processed
+    * or the stream marked as finished.
+    */
+   while (png_ptr->zstream.avail_in > 0 &&
+          !(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
    {
-      ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH);
-      if (ret != Z_OK)
+      int ret;
+
+      /* We have data for zlib, but we must check that zlib
+       * has someplace to put the results.  It doesn't matter
+       * if we don't expect any results -- it may be the input
+       * data is just the LZ end code.
+       */
+      if (!(png_ptr->zstream.avail_out > 0))
       {
-         if (ret == Z_STREAM_END)
-         {
-            if (png_ptr->zstream.avail_in)
-               png_error(png_ptr, "Extra compressed data");
-            if (!(png_ptr->zstream.avail_out))
-            {
-               png_push_process_row(png_ptr);
-            }
+         png_ptr->zstream.avail_out =
+             (uInt) PNG_ROWBYTES(png_ptr->pixel_depth,
+             png_ptr->iwidth) + 1;
+
+         png_ptr->zstream.next_out = png_ptr->row_buf;
+      }
+
+      /* Using Z_SYNC_FLUSH here means that an unterminated
+       * LZ stream (a stream with a missing end code) can still
+       * be handled, otherwise (Z_NO_FLUSH) a future zlib
+       * implementation might defer output and therefore
+       * change the current behavior (see comments in inflate.c
+       * for why this doesn't happen at present with zlib 1.2.5).
+       */
+      ret = inflate(&png_ptr->zstream, Z_SYNC_FLUSH);
+
+      /* Check for any failure before proceeding. */
+      if (ret != Z_OK && ret != Z_STREAM_END)
+      {
+         /* Terminate the decompression. */
+         png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
+
+         /* This may be a truncated stream (missing or
+          * damaged end code).  Treat that as a warning.
+          */
+         if (png_ptr->row_number >= png_ptr->num_rows ||
+             png_ptr->pass > 6)
+            png_warning(png_ptr, "Truncated compressed data in IDAT");
 
-            png_ptr->mode |= PNG_AFTER_IDAT;
-            png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
-            break;
-         }
-         else if (ret == Z_BUF_ERROR)
-            break;
          else
-            png_error(png_ptr, "Decompression Error");
+            png_error(png_ptr, "Decompression error in IDAT");
+
+         /* Skip the check on unprocessed input */
+         return;
       }
-      if (!(png_ptr->zstream.avail_out))
+
+      /* Did inflate output any data? */
+      if (png_ptr->zstream.next_out != png_ptr->row_buf)
       {
-         if ((
-#if defined(PNG_READ_INTERLACING_SUPPORTED)
-             png_ptr->interlaced && png_ptr->pass > 6) ||
-             (!png_ptr->interlaced &&
-#endif
-             png_ptr->row_number == png_ptr->num_rows))
+         /* Is this unexpected data after the last row?
+          * If it is, artificially terminate the LZ output
+          * here.
+          */
+         if (png_ptr->row_number >= png_ptr->num_rows ||
+             png_ptr->pass > 6)
          {
-           if (png_ptr->zstream.avail_in)
-             png_warning(png_ptr, "Too much data in IDAT chunks");
-           png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
-           break;
+            /* Extra data. */
+            png_warning(png_ptr, "Extra compressed data in IDAT");
+            png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
+
+            /* Do no more processing; skip the unprocessed
+             * input check below.
+             */
+            return;
          }
-         png_push_process_row(png_ptr);
-         png_ptr->zstream.avail_out = (uInt)png_ptr->irowbytes;
-         png_ptr->zstream.next_out = png_ptr->row_buf;
+
+         /* Do we have a complete row? */
+         if (png_ptr->zstream.avail_out == 0)
+            png_push_process_row(png_ptr);
       }
-      else
-         break;
+
+      /* And check for the end of the stream. */
+      if (ret == Z_STREAM_END)
+         png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
    }
+
+   /* All the data should have been processed, if anything
+    * is left at this point we have bytes of IDAT data
+    * after the zlib end code.
+    */
+   if (png_ptr->zstream.avail_in > 0)
+      png_warning(png_ptr, "Extra compression data in IDAT");
 }
 
 void /* PRIVATE */
@@ -845,23 +1049,24 @@ png_push_process_row(png_structp png_ptr)
        png_ptr->row_info.width);
 
    png_read_filter_row(png_ptr, &(png_ptr->row_info),
-      png_ptr->row_buf + 1, png_ptr->prev_row + 1,
-      (int)(png_ptr->row_buf[0]));
+       png_ptr->row_buf + 1, png_ptr->prev_row + 1,
+       (int)(png_ptr->row_buf[0]));
 
-   png_memcpy_check(png_ptr, png_ptr->prev_row, png_ptr->row_buf,
-      png_ptr->rowbytes + 1);
+   png_memcpy(png_ptr->prev_row, png_ptr->row_buf, png_ptr->rowbytes + 1);
 
-   if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA))
+#ifdef PNG_READ_TRANSFORMS_SUPPORTED
+   if (png_ptr->transformations)
       png_do_read_transformations(png_ptr);
+#endif
 
-#if defined(PNG_READ_INTERLACING_SUPPORTED)
-   /* blow up interlaced rows to full size */
+#ifdef PNG_READ_INTERLACING_SUPPORTED
+   /* Blow up interlaced rows to full size */
    if (png_ptr->interlaced && (png_ptr->transformations & PNG_INTERLACE))
    {
       if (png_ptr->pass < 6)
 /*       old interface (pre-1.0.9):
          png_do_read_interlace(&(png_ptr->row_info),
-            png_ptr->row_buf + 1, png_ptr->pass, png_ptr->transformations);
+             png_ptr->row_buf + 1, png_ptr->pass, png_ptr->transformations);
  */
          png_do_read_interlace(png_ptr);
 
@@ -873,31 +1078,36 @@ png_push_process_row(png_structp png_ptr)
             for (i = 0; i < 8 && png_ptr->pass == 0; i++)
             {
                png_push_have_row(png_ptr, png_ptr->row_buf + 1);
-               png_read_push_finish_row(png_ptr); /* updates png_ptr->pass */
+               png_read_push_finish_row(png_ptr); /* Updates png_ptr->pass */
             }
-            if (png_ptr->pass == 2) /* pass 1 might be empty */
+
+            if (png_ptr->pass == 2) /* Pass 1 might be empty */
             {
                for (i = 0; i < 4 && png_ptr->pass == 2; i++)
                {
-                  png_push_have_row(png_ptr, png_bytep_NULL);
+                  png_push_have_row(png_ptr, NULL);
                   png_read_push_finish_row(png_ptr);
                }
             }
+
             if (png_ptr->pass == 4 && png_ptr->height <= 4)
             {
                for (i = 0; i < 2 && png_ptr->pass == 4; i++)
                {
-                  png_push_have_row(png_ptr, png_bytep_NULL);
+                  png_push_have_row(png_ptr, NULL);
                   png_read_push_finish_row(png_ptr);
                }
             }
+
             if (png_ptr->pass == 6 && png_ptr->height <= 4)
             {
-                png_push_have_row(png_ptr, png_bytep_NULL);
+                png_push_have_row(png_ptr, NULL);
                 png_read_push_finish_row(png_ptr);
             }
+
             break;
          }
+
          case 1:
          {
             int i;
@@ -906,99 +1116,123 @@ png_push_process_row(png_structp png_ptr)
                png_push_have_row(png_ptr, png_ptr->row_buf + 1);
                png_read_push_finish_row(png_ptr);
             }
-            if (png_ptr->pass == 2) /* skip top 4 generated rows */
+
+            if (png_ptr->pass == 2) /* Skip top 4 generated rows */
             {
                for (i = 0; i < 4 && png_ptr->pass == 2; i++)
                {
-                  png_push_have_row(png_ptr, png_bytep_NULL);
+                  png_push_have_row(png_ptr, NULL);
                   png_read_push_finish_row(png_ptr);
                }
             }
+
             break;
          }
+
          case 2:
          {
             int i;
+
             for (i = 0; i < 4 && png_ptr->pass == 2; i++)
             {
                png_push_have_row(png_ptr, png_ptr->row_buf + 1);
                png_read_push_finish_row(png_ptr);
             }
+
             for (i = 0; i < 4 && png_ptr->pass == 2; i++)
             {
-               png_push_have_row(png_ptr, png_bytep_NULL);
+               png_push_have_row(png_ptr, NULL);
                png_read_push_finish_row(png_ptr);
             }
-            if (png_ptr->pass == 4) /* pass 3 might be empty */
+
+            if (png_ptr->pass == 4) /* Pass 3 might be empty */
             {
                for (i = 0; i < 2 && png_ptr->pass == 4; i++)
                {
-                  png_push_have_row(png_ptr, png_bytep_NULL);
+                  png_push_have_row(png_ptr, NULL);
                   png_read_push_finish_row(png_ptr);
                }
             }
+
             break;
          }
+
          case 3:
          {
             int i;
+
             for (i = 0; i < 4 && png_ptr->pass == 3; i++)
             {
                png_push_have_row(png_ptr, png_ptr->row_buf + 1);
                png_read_push_finish_row(png_ptr);
             }
-            if (png_ptr->pass == 4) /* skip top two generated rows */
+
+            if (png_ptr->pass == 4) /* Skip top two generated rows */
             {
                for (i = 0; i < 2 && png_ptr->pass == 4; i++)
                {
-                  png_push_have_row(png_ptr, png_bytep_NULL);
+                  png_push_have_row(png_ptr, NULL);
                   png_read_push_finish_row(png_ptr);
                }
             }
+
             break;
          }
+
          case 4:
          {
             int i;
+
             for (i = 0; i < 2 && png_ptr->pass == 4; i++)
             {
                png_push_have_row(png_ptr, png_ptr->row_buf + 1);
                png_read_push_finish_row(png_ptr);
             }
+
             for (i = 0; i < 2 && png_ptr->pass == 4; i++)
             {
-               png_push_have_row(png_ptr, png_bytep_NULL);
+               png_push_have_row(png_ptr, NULL);
                png_read_push_finish_row(png_ptr);
             }
-            if (png_ptr->pass == 6) /* pass 5 might be empty */
+
+            if (png_ptr->pass == 6) /* Pass 5 might be empty */
             {
-               png_push_have_row(png_ptr, png_bytep_NULL);
+               png_push_have_row(png_ptr, NULL);
                png_read_push_finish_row(png_ptr);
             }
+
             break;
          }
+
          case 5:
          {
             int i;
+
             for (i = 0; i < 2 && png_ptr->pass == 5; i++)
             {
                png_push_have_row(png_ptr, png_ptr->row_buf + 1);
                png_read_push_finish_row(png_ptr);
             }
-            if (png_ptr->pass == 6) /* skip top generated row */
+
+            if (png_ptr->pass == 6) /* Skip top generated row */
             {
-               png_push_have_row(png_ptr, png_bytep_NULL);
+               png_push_have_row(png_ptr, NULL);
                png_read_push_finish_row(png_ptr);
             }
+
             break;
          }
+
+         default:
          case 6:
          {
             png_push_have_row(png_ptr, png_ptr->row_buf + 1);
             png_read_push_finish_row(png_ptr);
+
             if (png_ptr->pass != 6)
                break;
-            png_push_have_row(png_ptr, png_bytep_NULL);
+
+            png_push_have_row(png_ptr, NULL);
             png_read_push_finish_row(png_ptr);
          }
       }
@@ -1014,84 +1248,77 @@ png_push_process_row(png_structp png_ptr)
 void /* PRIVATE */
 png_read_push_finish_row(png_structp png_ptr)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
-   /* arrays to facilitate easy interlacing - use pass (0 - 6) as index */
-
-   /* start of interlace block */
-   const int FARDATA png_pass_start[] = {0, 4, 0, 2, 0, 1, 0};
+   /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */
 
-   /* offset to next interlace block */
-   const int FARDATA png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1};
+   /* Start of interlace block */
+   PNG_CONST int FARDATA png_pass_start[] = {0, 4, 0, 2, 0, 1, 0};
 
-   /* start of interlace block in the y direction */
-   const int FARDATA png_pass_ystart[] = {0, 0, 4, 0, 2, 0, 1};
+   /* Offset to next interlace block */
+   PNG_CONST int FARDATA png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1};
 
-   /* offset to next interlace block in the y direction */
-   const int FARDATA png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2};
+   /* Start of interlace block in the y direction */
+   PNG_CONST int FARDATA png_pass_ystart[] = {0, 0, 4, 0, 2, 0, 1};
 
-   /* Width of interlace block.  This is not currently used - if you need
-    * it, uncomment it here and in png.h
-   const int FARDATA png_pass_width[] = {8, 4, 4, 2, 2, 1, 1};
-   */
+   /* Offset to next interlace block in the y direction */
+   PNG_CONST int FARDATA png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2};
 
    /* Height of interlace block.  This is not currently used - if you need
     * it, uncomment it here and in png.h
-   const int FARDATA png_pass_height[] = {8, 8, 4, 4, 2, 2, 1};
+   PNG_CONST int FARDATA png_pass_height[] = {8, 8, 4, 4, 2, 2, 1};
    */
-#endif
 
    png_ptr->row_number++;
    if (png_ptr->row_number < png_ptr->num_rows)
       return;
 
+#ifdef PNG_READ_INTERLACING_SUPPORTED
    if (png_ptr->interlaced)
    {
       png_ptr->row_number = 0;
-      png_memset_check(png_ptr, png_ptr->prev_row, 0,
-         png_ptr->rowbytes + 1);
+      png_memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1);
+
       do
       {
          png_ptr->pass++;
          if ((png_ptr->pass == 1 && png_ptr->width < 5) ||
              (png_ptr->pass == 3 && png_ptr->width < 3) ||
              (png_ptr->pass == 5 && png_ptr->width < 2))
-           png_ptr->pass++;
+            png_ptr->pass++;
 
          if (png_ptr->pass > 7)
             png_ptr->pass--;
+
          if (png_ptr->pass >= 7)
             break;
 
          png_ptr->iwidth = (png_ptr->width +
-            png_pass_inc[png_ptr->pass] - 1 -
-            png_pass_start[png_ptr->pass]) /
-            png_pass_inc[png_ptr->pass];
-
-         png_ptr->irowbytes = PNG_ROWBYTES(png_ptr->pixel_depth,
-            png_ptr->iwidth) + 1;
+             png_pass_inc[png_ptr->pass] - 1 -
+             png_pass_start[png_ptr->pass]) /
+             png_pass_inc[png_ptr->pass];
 
          if (png_ptr->transformations & PNG_INTERLACE)
             break;
 
          png_ptr->num_rows = (png_ptr->height +
-            png_pass_yinc[png_ptr->pass] - 1 -
-            png_pass_ystart[png_ptr->pass]) /
-            png_pass_yinc[png_ptr->pass];
+             png_pass_yinc[png_ptr->pass] - 1 -
+             png_pass_ystart[png_ptr->pass]) /
+             png_pass_yinc[png_ptr->pass];
 
       } while (png_ptr->iwidth == 0 || png_ptr->num_rows == 0);
    }
+#endif /* PNG_READ_INTERLACING_SUPPORTED */
 }
 
-#if defined(PNG_READ_tEXt_SUPPORTED)
+#ifdef PNG_READ_tEXt_SUPPORTED
 void /* PRIVATE */
 png_push_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
-   length)
+    length)
 {
    if (!(png_ptr->mode & PNG_HAVE_IHDR) || (png_ptr->mode & PNG_HAVE_IEND))
       {
+         PNG_UNUSED(info_ptr) /* To quiet some compiler warnings */
          png_error(png_ptr, "Out of place tEXt");
-         /* to quiet some compiler warnings */
-         if(info_ptr == NULL) return;
+         /* NOT REACHED */
       }
 
 #ifdef PNG_MAX_MALLOC_64K
@@ -1106,7 +1333,7 @@ png_push_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
 #endif
 
    png_ptr->current_text = (png_charp)png_malloc(png_ptr,
-         (png_uint_32)(length+1));
+       (png_size_t)(length + 1));
    png_ptr->current_text[length] = '\0';
    png_ptr->current_text_ptr = png_ptr->current_text;
    png_ptr->current_text_size = (png_size_t)length;
@@ -1123,8 +1350,10 @@ png_push_read_tEXt(png_structp png_ptr, png_infop info_ptr)
 
       if (png_ptr->buffer_size < png_ptr->current_text_left)
          text_size = png_ptr->buffer_size;
+
       else
          text_size = png_ptr->current_text_left;
+
       png_crc_read(png_ptr, (png_bytep)png_ptr->current_text_ptr, text_size);
       png_ptr->current_text_left -= text_size;
       png_ptr->current_text_ptr += text_size;
@@ -1144,7 +1373,7 @@ png_push_read_tEXt(png_structp png_ptr, png_infop info_ptr)
 
       png_push_crc_finish(png_ptr);
 
-#if defined(PNG_MAX_MALLOC_64K)
+#ifdef PNG_MAX_MALLOC_64K
       if (png_ptr->skip_length)
          return;
 #endif
@@ -1152,19 +1381,17 @@ png_push_read_tEXt(png_structp png_ptr, png_infop info_ptr)
       key = png_ptr->current_text;
 
       for (text = key; *text; text++)
-         /* empty loop */ ;
+         /* Empty loop */ ;
 
-      if (text != key + png_ptr->current_text_size)
+      if (text < key + png_ptr->current_text_size)
          text++;
 
-      text_ptr = (png_textp)png_malloc(png_ptr,
-         (png_uint_32)png_sizeof(png_text));
+      text_ptr = (png_textp)png_malloc(png_ptr, png_sizeof(png_text));
       text_ptr->compression = PNG_TEXT_COMPRESSION_NONE;
       text_ptr->key = key;
-#ifdef PNG_iTXt_SUPPORTED
+      text_ptr->itxt_length = 0;
       text_ptr->lang = NULL;
       text_ptr->lang_key = NULL;
-#endif
       text_ptr->text = text;
 
       ret = png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
@@ -1174,22 +1401,22 @@ png_push_read_tEXt(png_structp png_ptr, png_infop info_ptr)
       png_ptr->current_text = NULL;
 
       if (ret)
-        png_warning(png_ptr, "Insufficient memory to store text chunk.");
+         png_warning(png_ptr, "Insufficient memory to store text chunk");
    }
 }
 #endif
 
-#if defined(PNG_READ_zTXt_SUPPORTED)
+#ifdef PNG_READ_zTXt_SUPPORTED
 void /* PRIVATE */
 png_push_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
    length)
 {
    if (!(png_ptr->mode & PNG_HAVE_IHDR) || (png_ptr->mode & PNG_HAVE_IEND))
-      {
-         png_error(png_ptr, "Out of place zTXt");
-         /* to quiet some compiler warnings */
-         if(info_ptr == NULL) return;
-      }
+   {
+      PNG_UNUSED(info_ptr) /* To quiet some compiler warnings */
+      png_error(png_ptr, "Out of place zTXt");
+      /* NOT REACHED */
+   }
 
 #ifdef PNG_MAX_MALLOC_64K
    /* We can't handle zTXt chunks > 64K, since we don't have enough space
@@ -1205,7 +1432,7 @@ png_push_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
 #endif
 
    png_ptr->current_text = (png_charp)png_malloc(png_ptr,
-       (png_uint_32)(length+1));
+       (png_size_t)(length + 1));
    png_ptr->current_text[length] = '\0';
    png_ptr->current_text_ptr = png_ptr->current_text;
    png_ptr->current_text_size = (png_size_t)length;
@@ -1222,8 +1449,10 @@ png_push_read_zTXt(png_structp png_ptr, png_infop info_ptr)
 
       if (png_ptr->buffer_size < (png_uint_32)png_ptr->current_text_left)
          text_size = png_ptr->buffer_size;
+
       else
          text_size = png_ptr->current_text_left;
+
       png_crc_read(png_ptr, (png_bytep)png_ptr->current_text_ptr, text_size);
       png_ptr->current_text_left -= text_size;
       png_ptr->current_text_ptr += text_size;
@@ -1247,10 +1476,10 @@ png_push_read_zTXt(png_structp png_ptr, png_infop info_ptr)
       key = png_ptr->current_text;
 
       for (text = key; *text; text++)
-         /* empty loop */ ;
+         /* Empty loop */ ;
 
       /* zTXt can't have zero text */
-      if (text == key + png_ptr->current_text_size)
+      if (text >= key + png_ptr->current_text_size)
       {
          png_ptr->current_text = NULL;
          png_free(png_ptr, key);
@@ -1259,7 +1488,7 @@ png_push_read_zTXt(png_structp png_ptr, png_infop info_ptr)
 
       text++;
 
-      if (*text != PNG_TEXT_COMPRESSION_zTXt) /* check compression byte */
+      if (*text != PNG_TEXT_COMPRESSION_zTXt) /* Check compression byte */
       {
          png_ptr->current_text = NULL;
          png_free(png_ptr, key);
@@ -1268,9 +1497,9 @@ png_push_read_zTXt(png_structp png_ptr, png_infop info_ptr)
 
       text++;
 
-      png_ptr->zstream.next_in = (png_bytep )text;
+      png_ptr->zstream.next_in = (png_bytep)text;
       png_ptr->zstream.avail_in = (uInt)(png_ptr->current_text_size -
-         (text - key));
+          (text - key));
       png_ptr->zstream.next_out = png_ptr->zbuf;
       png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
 
@@ -1291,35 +1520,45 @@ png_push_read_zTXt(png_structp png_ptr, png_infop info_ptr)
             png_free(png_ptr, text);
             return;
          }
+
          if (!(png_ptr->zstream.avail_out) || ret == Z_STREAM_END)
          {
             if (text == NULL)
             {
                text = (png_charp)png_malloc(png_ptr,
-                  (png_uint_32)(png_ptr->zbuf_size - png_ptr->zstream.avail_out
-                     + key_size + 1));
+                   (png_ptr->zbuf_size
+                   - png_ptr->zstream.avail_out + key_size + 1));
+
                png_memcpy(text + key_size, png_ptr->zbuf,
-                  png_ptr->zbuf_size - png_ptr->zstream.avail_out);
+                   png_ptr->zbuf_size - png_ptr->zstream.avail_out);
+
                png_memcpy(text, key, key_size);
+
                text_size = key_size + png_ptr->zbuf_size -
-                  png_ptr->zstream.avail_out;
+                   png_ptr->zstream.avail_out;
+
                *(text + text_size) = '\0';
             }
+
             else
             {
                png_charp tmp;
 
                tmp = text;
                text = (png_charp)png_malloc(png_ptr, text_size +
-                  (png_uint_32)(png_ptr->zbuf_size - png_ptr->zstream.avail_out
-                   + 1));
+                   (png_ptr->zbuf_size
+                   - png_ptr->zstream.avail_out + 1));
+
                png_memcpy(text, tmp, text_size);
                png_free(png_ptr, tmp);
+
                png_memcpy(text + text_size, png_ptr->zbuf,
-                  png_ptr->zbuf_size - png_ptr->zstream.avail_out);
+                   png_ptr->zbuf_size - png_ptr->zstream.avail_out);
+
                text_size += png_ptr->zbuf_size - png_ptr->zstream.avail_out;
                *(text + text_size) = '\0';
             }
+
             if (ret != Z_STREAM_END)
             {
                png_ptr->zstream.next_out = png_ptr->zbuf;
@@ -1352,13 +1591,12 @@ png_push_read_zTXt(png_structp png_ptr, png_infop info_ptr)
       text += key_size;
 
       text_ptr = (png_textp)png_malloc(png_ptr,
-          (png_uint_32)png_sizeof(png_text));
+          png_sizeof(png_text));
       text_ptr->compression = PNG_TEXT_COMPRESSION_zTXt;
       text_ptr->key = key;
-#ifdef PNG_iTXt_SUPPORTED
+      text_ptr->itxt_length = 0;
       text_ptr->lang = NULL;
       text_ptr->lang_key = NULL;
-#endif
       text_ptr->text = text;
 
       ret = png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
@@ -1367,22 +1605,22 @@ png_push_read_zTXt(png_structp png_ptr, png_infop info_ptr)
       png_free(png_ptr, text_ptr);
 
       if (ret)
-        png_warning(png_ptr, "Insufficient memory to store text chunk.");
+         png_warning(png_ptr, "Insufficient memory to store text chunk");
    }
 }
 #endif
 
-#if defined(PNG_READ_iTXt_SUPPORTED)
+#ifdef PNG_READ_iTXt_SUPPORTED
 void /* PRIVATE */
 png_push_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
-   length)
+    length)
 {
    if (!(png_ptr->mode & PNG_HAVE_IHDR) || (png_ptr->mode & PNG_HAVE_IEND))
-      {
-         png_error(png_ptr, "Out of place iTXt");
-         /* to quiet some compiler warnings */
-         if(info_ptr == NULL) return;
-      }
+   {
+      PNG_UNUSED(info_ptr) /* To quiet some compiler warnings */
+      png_error(png_ptr, "Out of place iTXt");
+      /* NOT REACHED */
+   }
 
 #ifdef PNG_MAX_MALLOC_64K
    png_ptr->skip_length = 0;  /* This may not be necessary */
@@ -1396,7 +1634,7 @@ png_push_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
 #endif
 
    png_ptr->current_text = (png_charp)png_malloc(png_ptr,
-         (png_uint_32)(length+1));
+       (png_size_t)(length + 1));
    png_ptr->current_text[length] = '\0';
    png_ptr->current_text_ptr = png_ptr->current_text;
    png_ptr->current_text_size = (png_size_t)length;
@@ -1414,12 +1652,15 @@ png_push_read_iTXt(png_structp png_ptr, png_infop info_ptr)
 
       if (png_ptr->buffer_size < png_ptr->current_text_left)
          text_size = png_ptr->buffer_size;
+
       else
          text_size = png_ptr->current_text_left;
+
       png_crc_read(png_ptr, (png_bytep)png_ptr->current_text_ptr, text_size);
       png_ptr->current_text_left -= text_size;
       png_ptr->current_text_ptr += text_size;
    }
+
    if (!(png_ptr->current_text_left))
    {
       png_textp text_ptr;
@@ -1438,7 +1679,7 @@ png_push_read_iTXt(png_structp png_ptr, png_infop info_ptr)
 
       png_push_crc_finish(png_ptr);
 
-#if defined(PNG_MAX_MALLOC_64K)
+#ifdef PNG_MAX_MALLOC_64K
       if (png_ptr->skip_length)
          return;
 #endif
@@ -1446,26 +1687,33 @@ png_push_read_iTXt(png_structp png_ptr, png_infop info_ptr)
       key = png_ptr->current_text;
 
       for (lang = key; *lang; lang++)
-         /* empty loop */ ;
+         /* Empty loop */ ;
 
-      if (lang != key + png_ptr->current_text_size)
+      if (lang < key + png_ptr->current_text_size - 3)
          lang++;
 
       comp_flag = *lang++;
-      lang++;     /* skip comp_type, always zero */
+      lang++;     /* Skip comp_type, always zero */
 
       for (lang_key = lang; *lang_key; lang_key++)
-         /* empty loop */ ;
-      lang_key++;        /* skip NUL separator */
+         /* Empty loop */ ;
 
-      for (text = lang_key; *text; text++)
-         /* empty loop */ ;
+      lang_key++;        /* Skip NUL separator */
 
-      if (text != key + png_ptr->current_text_size)
+      text=lang_key;
+
+      if (lang_key < key + png_ptr->current_text_size - 1)
+      {
+         for (; *text; text++)
+            /* Empty loop */ ;
+      }
+
+      if (text < key + png_ptr->current_text_size)
          text++;
 
       text_ptr = (png_textp)png_malloc(png_ptr,
-         (png_uint_32)png_sizeof(png_text));
+          png_sizeof(png_text));
+
       text_ptr->compression = comp_flag + 2;
       text_ptr->key = key;
       text_ptr->lang = lang;
@@ -1480,7 +1728,7 @@ png_push_read_iTXt(png_structp png_ptr, png_infop info_ptr)
 
       png_free(png_ptr, text_ptr);
       if (ret)
-        png_warning(png_ptr, "Insufficient memory to store iTXt chunk.");
+         png_warning(png_ptr, "Insufficient memory to store iTXt chunk");
    }
 }
 #endif
@@ -1491,69 +1739,83 @@ png_push_read_iTXt(png_structp png_ptr, png_infop info_ptr)
  */
 void /* PRIVATE */
 png_push_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32
-   length)
+    length)
 {
-   png_uint_32 skip=0;
-   png_check_chunk_name(png_ptr, png_ptr->chunk_name);
+   png_uint_32 skip = 0;
 
    if (!(png_ptr->chunk_name[0] & 0x20))
    {
-#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
-      if(png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
-           PNG_HANDLE_CHUNK_ALWAYS
-#if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
-           && png_ptr->read_user_chunk_fn == NULL
+#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
+      if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
+          PNG_HANDLE_CHUNK_ALWAYS
+#ifdef PNG_READ_USER_CHUNKS_SUPPORTED
+          && png_ptr->read_user_chunk_fn == NULL
 #endif
-         )
+          )
 #endif
          png_chunk_error(png_ptr, "unknown critical chunk");
 
-      /* to quiet compiler warnings about unused info_ptr */
-      if (info_ptr == NULL)
-         return;
+      PNG_UNUSED(info_ptr) /* To quiet some compiler warnings */
    }
 
-#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
+#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
    if (png_ptr->flags & PNG_FLAG_KEEP_UNKNOWN_CHUNKS)
    {
 #ifdef PNG_MAX_MALLOC_64K
-       if (length > (png_uint_32)65535L)
-       {
-           png_warning(png_ptr, "unknown chunk too large to fit in memory");
-           skip = length - (png_uint_32)65535L;
-           length = (png_uint_32)65535L;
-       }
+      if (length > (png_uint_32)65535L)
+      {
+         png_warning(png_ptr, "unknown chunk too large to fit in memory");
+         skip = length - (png_uint_32)65535L;
+         length = (png_uint_32)65535L;
+      }
 #endif
-       png_strcpy((png_charp)png_ptr->unknown_chunk.name,
-         (png_charp)png_ptr->chunk_name);
-       png_ptr->unknown_chunk.data = (png_bytep)png_malloc(png_ptr, length);
-       png_ptr->unknown_chunk.size = (png_size_t)length;
-       png_crc_read(png_ptr, (png_bytep)png_ptr->unknown_chunk.data, length);
-#if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
-       if(png_ptr->read_user_chunk_fn != NULL)
-       {
-          /* callback to user unknown chunk handler */
-          int ret;
-          ret = (*(png_ptr->read_user_chunk_fn))
-            (png_ptr, &png_ptr->unknown_chunk);
-          if (ret < 0)
-             png_chunk_error(png_ptr, "error in user chunk");
-          if (ret == 0)
-          {
-             if (!(png_ptr->chunk_name[0] & 0x20))
-                if(png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
-                     PNG_HANDLE_CHUNK_ALWAYS)
-                   png_chunk_error(png_ptr, "unknown critical chunk");
-                png_set_unknown_chunks(png_ptr, info_ptr,
-                   &png_ptr->unknown_chunk, 1);
-          }
-       }
-#else
-       png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1);
+      png_memcpy((png_charp)png_ptr->unknown_chunk.name,
+          (png_charp)png_ptr->chunk_name,
+          png_sizeof(png_ptr->unknown_chunk.name));
+      png_ptr->unknown_chunk.name[png_sizeof(png_ptr->unknown_chunk.name) - 1]
+          = '\0';
+
+      png_ptr->unknown_chunk.size = (png_size_t)length;
+
+      if (length == 0)
+         png_ptr->unknown_chunk.data = NULL;
+
+      else
+      {
+         png_ptr->unknown_chunk.data = (png_bytep)png_malloc(png_ptr,
+             (png_size_t)length);
+         png_crc_read(png_ptr, (png_bytep)png_ptr->unknown_chunk.data, length);
+      }
+
+#ifdef PNG_READ_USER_CHUNKS_SUPPORTED
+      if (png_ptr->read_user_chunk_fn != NULL)
+      {
+         /* Callback to user unknown chunk handler */
+         int ret;
+         ret = (*(png_ptr->read_user_chunk_fn))
+             (png_ptr, &png_ptr->unknown_chunk);
+
+         if (ret < 0)
+            png_chunk_error(png_ptr, "error in user chunk");
+
+         if (ret == 0)
+         {
+            if (!(png_ptr->chunk_name[0] & 0x20))
+               if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
+                   PNG_HANDLE_CHUNK_ALWAYS)
+                  png_chunk_error(png_ptr, "unknown critical chunk");
+            png_set_unknown_chunks(png_ptr, info_ptr,
+                &png_ptr->unknown_chunk, 1);
+         }
+      }
+
+      else
 #endif
-       png_free(png_ptr, png_ptr->unknown_chunk.data);
-       png_ptr->unknown_chunk.data = NULL;
+         png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1);
+      png_free(png_ptr, png_ptr->unknown_chunk.data);
+      png_ptr->unknown_chunk.data = NULL;
    }
+
    else
 #endif
       skip=length;
@@ -1583,24 +1845,27 @@ png_push_have_row(png_structp png_ptr, png_bytep row)
 }
 
 void PNGAPI
-png_progressive_combine_row (png_structp png_ptr,
-   png_bytep old_row, png_bytep new_row)
+png_progressive_combine_row (png_structp png_ptr, png_bytep old_row,
+    png_const_bytep new_row)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
-   const int FARDATA png_pass_dsp_mask[7] =
+   PNG_CONST int FARDATA png_pass_dsp_mask[7] =
       {0xff, 0x0f, 0xff, 0x33, 0xff, 0x55, 0xff};
-#endif
-   if(png_ptr == NULL) return;
+
+   if (png_ptr == NULL)
+      return;
+
    if (new_row != NULL)    /* new_row must == png_ptr->row_buf here. */
       png_combine_row(png_ptr, old_row, png_pass_dsp_mask[png_ptr->pass]);
 }
 
 void PNGAPI
 png_set_progressive_read_fn(png_structp png_ptr, png_voidp progressive_ptr,
-   png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn,
-   png_progressive_end_ptr end_fn)
+    png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn,
+    png_progressive_end_ptr end_fn)
 {
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->info_fn = info_fn;
    png_ptr->row_fn = row_fn;
    png_ptr->end_fn = end_fn;
@@ -1609,9 +1874,11 @@ png_set_progressive_read_fn(png_structp png_ptr, png_voidp progressive_ptr,
 }
 
 png_voidp PNGAPI
-png_get_progressive_ptr(png_structp png_ptr)
+png_get_progressive_ptr(png_const_structp png_ptr)
 {
-   if(png_ptr == NULL) return (NULL);
+   if (png_ptr == NULL)
+      return (NULL);
+
    return png_ptr->io_ptr;
 }
 #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngpriv.h b/jdk/src/share/native/sun/awt/libpng/pngpriv.h
new file mode 100644
index 0000000..99b2af5
--- /dev/null
+++ b/jdk/src/share/native/sun/awt/libpng/pngpriv.h
@@ -0,0 +1,1386 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* pngpriv.h - private declarations for use inside libpng
+ *
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * For conditions of distribution and use, see copyright notice in png.h
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
+ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
+ * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ */
+
+/* The symbols declared in this file (including the functions declared
+ * as PNG_EXTERN) are PRIVATE.  They are not part of the libpng public
+ * interface, and are not recommended for use by regular applications.
+ * Some of them may become public in the future; others may stay private,
+ * change in an incompatible way, or even disappear.
+ * Although the libpng users are not forbidden to include this header,
+ * they should be well aware of the issues that may arise from doing so.
+ */
+
+#ifndef PNGPRIV_H
+#define PNGPRIV_H
+
+/* Feature Test Macros.  The following are defined here to ensure that correctly
+ * implemented libraries reveal the APIs libpng needs to build and hide those
+ * that are not needed and potentially damaging to the compilation.
+ *
+ * Feature Test Macros must be defined before any system header is included (see
+ * POSIX 1003.1 2.8.2 "POSIX Symbols."
+ *
+ * These macros only have an effect if the operating system supports either
+ * POSIX 1003.1 or C99, or both.  On other operating systems (particularly
+ * Windows/Visual Studio) there is no effect; the OS specific tests below are
+ * still required (as of 2011-05-02.)
+ */
+#define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */
+
+/* This is required for the definition of abort(), used as a last ditch
+ * error handler when all else fails.
+ */
+#include <stdlib.h>
+
+#define PNGLIB_BUILD
+#ifdef PNG_USER_CONFIG
+#  include "pngusr.h"
+   /* These should have been defined in pngusr.h */
+#  ifndef PNG_USER_PRIVATEBUILD
+#    define PNG_USER_PRIVATEBUILD "Custom libpng build"
+#  endif
+#  ifndef PNG_USER_DLLFNAME_POSTFIX
+#    define PNG_USER_DLLFNAME_POSTFIX "Cb"
+#  endif
+#endif
+#include "png.h"
+#include "pnginfo.h"
+#include "pngstruct.h"
+
+/* This is used for 16 bit gamma tables - only the top level pointers are const,
+ * this could be changed:
+ */
+typedef PNG_CONST png_uint_16p FAR * png_const_uint_16pp;
+
+/* Added at libpng-1.2.9 */
+/* Moved to pngpriv.h at libpng-1.5.0 */
+
+/* config.h is created by and PNG_CONFIGURE_LIBPNG is set by the "configure"
+ * script.  We may need it here to get the correct configuration on things
+ * like limits.
+ */
+#ifdef PNG_CONFIGURE_LIBPNG
+#  ifdef HAVE_CONFIG_H
+#    include "config.h"
+#  endif
+#endif
+
+/* Moved to pngpriv.h at libpng-1.5.0 */
+/* NOTE: some of these may have been used in external applications as
+ * these definitions were exposed in pngconf.h prior to 1.5.
+ */
+
+/* If you are running on a machine where you cannot allocate more
+ * than 64K of memory at once, uncomment this.  While libpng will not
+ * normally need that much memory in a chunk (unless you load up a very
+ * large file), zlib needs to know how big of a chunk it can use, and
+ * libpng thus makes sure to check any memory allocation to verify it
+ * will fit into memory.
+ *
+ * zlib provides 'MAXSEG_64K' which, if defined, indicates the
+ * same limit and pngconf.h (already included) sets the limit
+ * if certain operating systems are detected.
+ */
+#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K)
+#  define PNG_MAX_MALLOC_64K
+#endif
+
+#ifndef PNG_UNUSED
+/* Unused formal parameter warnings are silenced using the following macro
+ * which is expected to have no bad effects on performance (optimizing
+ * compilers will probably remove it entirely).  Note that if you replace
+ * it with something other than whitespace, you must include the terminating
+ * semicolon.
+ */
+#  define PNG_UNUSED(param) (void)param;
+#endif
+
+/* Just a little check that someone hasn't tried to define something
+ * contradictory.
+ */
+#if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K)
+#  undef PNG_ZBUF_SIZE
+#  define PNG_ZBUF_SIZE 65536L
+#endif
+
+/* PNG_STATIC is used to mark internal file scope functions if they need to be
+ * accessed for implementation tests (see the code in tests/?*).
+ */
+#ifndef PNG_STATIC
+#   define PNG_STATIC static
+#endif
+
+/* If warnings or errors are turned off the code is disabled or redirected here.
+ * From 1.5.4 functions have been added to allow very limited formatting of
+ * error and warning messages - this code will also be disabled here.
+ */
+#ifdef PNG_WARNINGS_SUPPORTED
+#  define PNG_WARNING_PARAMETERS(p) png_warning_parameters p;
+#else
+#  define png_warning(s1,s2) ((void)(s1))
+#  define png_chunk_warning(s1,s2) ((void)(s1))
+#  define png_warning_parameter(p,number,string) ((void)0)
+#  define png_warning_parameter_unsigned(p,number,format,value) ((void)0)
+#  define png_warning_parameter_signed(p,number,format,value) ((void)0)
+#  define png_formatted_warning(pp,p,message) ((void)(pp))
+#  define PNG_WARNING_PARAMETERS(p)
+#endif
+#ifndef PNG_ERROR_TEXT_SUPPORTED
+#  define png_error(s1,s2) png_err(s1)
+#  define png_chunk_error(s1,s2) png_err(s1)
+#  define png_fixed_error(s1,s2) png_err(s1)
+#endif
+
+#ifndef PNG_EXTERN
+/* The functions exported by PNG_EXTERN are internal functions, which
+ * aren't usually used outside the library (as far as I know), so it is
+ * debatable if they should be exported at all.  In the future, when it
+ * is possible to have run-time registry of chunk-handling functions,
+ * some of these might be made available again.
+#  define PNG_EXTERN extern
+ */
+#  define PNG_EXTERN
+#endif
+
+/* Some fixed point APIs are still required even if not exported because
+ * they get used by the corresponding floating point APIs.  This magic
+ * deals with this:
+ */
+#ifdef PNG_FIXED_POINT_SUPPORTED
+#  define PNGFAPI PNGAPI
+#else
+#  define PNGFAPI /* PRIVATE */
+#endif
+
+/* Other defines specific to compilers can go here.  Try to keep
+ * them inside an appropriate ifdef/endif pair for portability.
+ */
+#if defined(PNG_FLOATING_POINT_SUPPORTED) ||\
+    defined(PNG_FLOATING_ARITHMETIC_SUPPORTED)
+   /* png.c requires the following ANSI-C constants if the conversion of
+    * floating point to ASCII is implemented therein:
+    *
+    *  DBL_DIG  Maximum number of decimal digits (can be set to any constant)
+    *  DBL_MIN  Smallest normalized fp number (can be set to an arbitrary value)
+    *  DBL_MAX  Maximum floating point number (can be set to an arbitrary value)
+    */
+#  include <float.h>
+
+#  if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \
+    defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC)
+     /* We need to check that <math.h> hasn't already been included earlier
+      * as it seems it doesn't agree with <fp.h>, yet we should really use
+      * <fp.h> if possible.
+      */
+#    if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__)
+#      include <fp.h>
+#    endif
+#  else
+#    include <math.h>
+#  endif
+#  if defined(_AMIGA) && defined(__SASC) && defined(_M68881)
+     /* Amiga SAS/C: We must include builtin FPU functions when compiling using
+      * MATH=68881
+      */
+#    include <m68881.h>
+#  endif
+#endif
+
+/* This provides the non-ANSI (far) memory allocation routines. */
+#if defined(__TURBOC__) && defined(__MSDOS__)
+#  include <mem.h>
+#  include <alloc.h>
+#endif
+
+#if defined(WIN32) || defined(_Windows) || defined(_WINDOWS) || \
+    defined(_WIN32) || defined(__WIN32__)
+#  include <windows.h>  /* defines _WINDOWS_ macro */
+#endif
+
+/* Moved here around 1.5.0beta36 from pngconf.h */
+/* Users may want to use these so they are not private.  Any library
+ * functions that are passed far data must be model-independent.
+ */
+
+/* Memory model/platform independent fns */
+#ifndef PNG_ABORT
+#  ifdef _WINDOWS_
+#    define PNG_ABORT() ExitProcess(0)
+#  else
+#    define PNG_ABORT() abort()
+#  endif
+#endif
+
+#ifdef USE_FAR_KEYWORD
+/* Use this to make far-to-near assignments */
+#  define CHECK   1
+#  define NOCHECK 0
+#  define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK))
+#  define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK))
+#  define png_strlen  _fstrlen
+#  define png_memcmp  _fmemcmp    /* SJT: added */
+#  define png_memcpy  _fmemcpy
+#  define png_memset  _fmemset
+#else
+#  ifdef _WINDOWS_  /* Favor Windows over C runtime fns */
+#    define CVT_PTR(ptr)         (ptr)
+#    define CVT_PTR_NOCHECK(ptr) (ptr)
+#    define png_strlen  lstrlenA
+#    define png_memcmp  memcmp
+#    define png_memcpy  CopyMemory
+#    define png_memset  memset
+#  else
+#    define CVT_PTR(ptr)         (ptr)
+#    define CVT_PTR_NOCHECK(ptr) (ptr)
+#    define png_strlen  strlen
+#    define png_memcmp  memcmp      /* SJT: added */
+#    define png_memcpy  memcpy
+#    define png_memset  memset
+#  endif
+#endif
+/* End of memory model/platform independent support */
+/* End of 1.5.0beta36 move from pngconf.h */
+
+/* CONSTANTS and UTILITY MACROS
+ * These are used internally by libpng and not exposed in the API
+ */
+
+/* Various modes of operation.  Note that after an init, mode is set to
+ * zero automatically when the structure is created.  Three of these
+ * are defined in png.h because they need to be visible to applications
+ * that call png_set_unknown_chunk().
+ */
+/* #define PNG_HAVE_IHDR            0x01 (defined in png.h) */
+/* #define PNG_HAVE_PLTE            0x02 (defined in png.h) */
+#define PNG_HAVE_IDAT               0x04
+/* #define PNG_AFTER_IDAT           0x08 (defined in png.h) */
+#define PNG_HAVE_IEND               0x10
+#define PNG_HAVE_gAMA               0x20
+#define PNG_HAVE_cHRM               0x40
+#define PNG_HAVE_sRGB               0x80
+#define PNG_HAVE_CHUNK_HEADER      0x100
+#define PNG_WROTE_tIME             0x200
+#define PNG_WROTE_INFO_BEFORE_PLTE 0x400
+#define PNG_BACKGROUND_IS_GRAY     0x800
+#define PNG_HAVE_PNG_SIGNATURE    0x1000
+#define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */
+
+/* Flags for the transformations the PNG library does on the image data */
+#define PNG_BGR                 0x0001
+#define PNG_INTERLACE           0x0002
+#define PNG_PACK                0x0004
+#define PNG_SHIFT               0x0008
+#define PNG_SWAP_BYTES          0x0010
+#define PNG_INVERT_MONO         0x0020
+#define PNG_QUANTIZE            0x0040
+#define PNG_COMPOSE             0x0080     /* Was PNG_BACKGROUND */
+#define PNG_BACKGROUND_EXPAND   0x0100
+#define PNG_EXPAND_16           0x0200     /* Added to libpng 1.5.2 */
+#define PNG_16_TO_8             0x0400     /* Becomes 'chop' in 1.5.4 */
+#define PNG_RGBA                0x0800
+#define PNG_EXPAND              0x1000
+#define PNG_GAMMA               0x2000
+#define PNG_GRAY_TO_RGB         0x4000
+#define PNG_FILLER              0x8000L
+#define PNG_PACKSWAP           0x10000L
+#define PNG_SWAP_ALPHA         0x20000L
+#define PNG_STRIP_ALPHA        0x40000L
+#define PNG_INVERT_ALPHA       0x80000L
+#define PNG_USER_TRANSFORM    0x100000L
+#define PNG_RGB_TO_GRAY_ERR   0x200000L
+#define PNG_RGB_TO_GRAY_WARN  0x400000L
+#define PNG_RGB_TO_GRAY       0x600000L  /* two bits, RGB_TO_GRAY_ERR|WARN */
+#define PNG_ENCODE_ALPHA      0x800000L  /* Added to libpng-1.5.4 */
+#define PNG_ADD_ALPHA         0x1000000L  /* Added to libpng-1.2.7 */
+#define PNG_EXPAND_tRNS       0x2000000L  /* Added to libpng-1.2.9 */
+#define PNG_SCALE_16_TO_8     0x4000000L  /* Added to libpng-1.5.4 */
+                       /*   0x8000000L  unused */
+                       /*  0x10000000L  unused */
+                       /*  0x20000000L  unused */
+                       /*  0x40000000L  unused */
+
+/* Flags for png_create_struct */
+#define PNG_STRUCT_PNG   0x0001
+#define PNG_STRUCT_INFO  0x0002
+
+/* Scaling factor for filter heuristic weighting calculations */
+#define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT))
+#define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT))
+
+/* Flags for the png_ptr->flags rather than declaring a byte for each one */
+#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY     0x0001
+#define PNG_FLAG_ZLIB_CUSTOM_LEVEL        0x0002
+#define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL    0x0004
+#define PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS  0x0008
+#define PNG_FLAG_ZLIB_CUSTOM_METHOD       0x0010
+#define PNG_FLAG_ZLIB_FINISHED            0x0020
+#define PNG_FLAG_ROW_INIT                 0x0040
+#define PNG_FLAG_FILLER_AFTER             0x0080
+#define PNG_FLAG_CRC_ANCILLARY_USE        0x0100
+#define PNG_FLAG_CRC_ANCILLARY_NOWARN     0x0200
+#define PNG_FLAG_CRC_CRITICAL_USE         0x0400
+#define PNG_FLAG_CRC_CRITICAL_IGNORE      0x0800
+#define PNG_FLAG_ASSUME_sRGB              0x1000  /* Added to libpng-1.5.4 */
+#define PNG_FLAG_OPTIMIZE_ALPHA           0x2000  /* Added to libpng-1.5.4 */
+#define PNG_FLAG_DETECT_UNINITIALIZED     0x4000  /* Added to libpng-1.5.4 */
+#define PNG_FLAG_KEEP_UNKNOWN_CHUNKS      0x8000L
+#define PNG_FLAG_KEEP_UNSAFE_CHUNKS       0x10000L
+#define PNG_FLAG_LIBRARY_MISMATCH         0x20000L
+#define PNG_FLAG_STRIP_ERROR_NUMBERS      0x40000L
+#define PNG_FLAG_STRIP_ERROR_TEXT         0x80000L
+#define PNG_FLAG_MALLOC_NULL_MEM_OK       0x100000L
+                                  /*      0x200000L  unused */
+                                  /*      0x400000L  unused */
+#define PNG_FLAG_BENIGN_ERRORS_WARN       0x800000L  /* Added to libpng-1.4.0 */
+#define PNG_FLAG_ZTXT_CUSTOM_STRATEGY    0x1000000L  /* 5 lines added */
+#define PNG_FLAG_ZTXT_CUSTOM_LEVEL       0x2000000L  /* to libpng-1.5.4 */
+#define PNG_FLAG_ZTXT_CUSTOM_MEM_LEVEL   0x4000000L
+#define PNG_FLAG_ZTXT_CUSTOM_WINDOW_BITS 0x8000000L
+#define PNG_FLAG_ZTXT_CUSTOM_METHOD      0x10000000L
+                                  /*     0x20000000L  unused */
+                                  /*     0x40000000L  unused */
+
+#define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \
+                                     PNG_FLAG_CRC_ANCILLARY_NOWARN)
+
+#define PNG_FLAG_CRC_CRITICAL_MASK  (PNG_FLAG_CRC_CRITICAL_USE | \
+                                     PNG_FLAG_CRC_CRITICAL_IGNORE)
+
+#define PNG_FLAG_CRC_MASK           (PNG_FLAG_CRC_ANCILLARY_MASK | \
+                                     PNG_FLAG_CRC_CRITICAL_MASK)
+
+/* zlib.h declares a magic type 'uInt' that limits the amount of data that zlib
+ * can handle at once.  This type need be no larger than 16 bits (so maximum of
+ * 65535), this define allows us to discover how big it is, but limited by the
+ * maximuum for png_size_t.  The value can be overriden in a library build
+ * (pngusr.h, or set it in CPPFLAGS) and it works to set it to a considerably
+ * lower value (e.g. 255 works).  A lower value may help memory usage (slightly)
+ * and may even improve performance on some systems (and degrade it on others.)
+ */
+#ifndef ZLIB_IO_MAX
+#  define ZLIB_IO_MAX ((uInt)-1)
+#endif
+
+/* Save typing and make code easier to understand */
+
+#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \
+   abs((int)((c1).green) - (int)((c2).green)) + \
+   abs((int)((c1).blue) - (int)((c2).blue)))
+
+/* Added to libpng-1.2.6 JB */
+#define PNG_ROWBYTES(pixel_bits, width) \
+    ((pixel_bits) >= 8 ? \
+    ((png_size_t)(width) * (((png_size_t)(pixel_bits)) >> 3)) : \
+    (( ((png_size_t)(width) * ((png_size_t)(pixel_bits))) + 7) >> 3) )
+
+/* PNG_OUT_OF_RANGE returns true if value is outside the range
+ * ideal-delta..ideal+delta.  Each argument is evaluated twice.
+ * "ideal" and "delta" should be constants, normally simple
+ * integers, "value" a variable. Added to libpng-1.2.6 JB
+ */
+#define PNG_OUT_OF_RANGE(value, ideal, delta) \
+   ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) )
+
+/* Conversions between fixed and floating point, only defined if
+ * required (to make sure the code doesn't accidentally use float
+ * when it is supposedly disabled.)
+ */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+/* The floating point conversion can't overflow, though it can and
+ * does lose accuracy relative to the original fixed point value.
+ * In practice this doesn't matter because png_fixed_point only
+ * stores numbers with very low precision.  The png_ptr and s
+ * arguments are unused by default but are there in case error
+ * checking becomes a requirement.
+ */
+#define png_float(png_ptr, fixed, s) (.00001 * (fixed))
+
+/* The fixed point conversion performs range checking and evaluates
+ * its argument multiple times, so must be used with care.  The
+ * range checking uses the PNG specification values for a signed
+ * 32 bit fixed point value except that the values are deliberately
+ * rounded-to-zero to an integral value - 21474 (21474.83 is roughly
+ * (2^31-1) * 100000). 's' is a string that describes the value being
+ * converted.
+ *
+ * NOTE: this macro will raise a png_error if the range check fails,
+ * therefore it is normally only appropriate to use this on values
+ * that come from API calls or other sources where an out of range
+ * error indicates a programming error, not a data error!
+ *
+ * NOTE: by default this is off - the macro is not used - because the
+ * function call saves a lot of code.
+ */
+#ifdef PNG_FIXED_POINT_MACRO_SUPPORTED
+#define png_fixed(png_ptr, fp, s) ((fp) <= 21474 && (fp) >= -21474 ?\
+    ((png_fixed_point)(100000 * (fp))) : (png_fixed_error(png_ptr, s),0))
+#else
+PNG_EXTERN png_fixed_point png_fixed PNGARG((png_structp png_ptr, double fp,
+   png_const_charp text));
+#endif
+#endif
+
+/* Constant strings for known chunk types.  If you need to add a chunk,
+ * define the name here, and add an invocation of the macro wherever it's
+ * needed.
+ */
+#define PNG_IHDR PNG_CONST png_byte png_IHDR[5] = { 73,  72,  68,  82, '\0'}
+#define PNG_IDAT PNG_CONST png_byte png_IDAT[5] = { 73,  68,  65,  84, '\0'}
+#define PNG_IEND PNG_CONST png_byte png_IEND[5] = { 73,  69,  78,  68, '\0'}
+#define PNG_PLTE PNG_CONST png_byte png_PLTE[5] = { 80,  76,  84,  69, '\0'}
+#define PNG_bKGD PNG_CONST png_byte png_bKGD[5] = { 98,  75,  71,  68, '\0'}
+#define PNG_cHRM PNG_CONST png_byte png_cHRM[5] = { 99,  72,  82,  77, '\0'}
+#define PNG_gAMA PNG_CONST png_byte png_gAMA[5] = {103,  65,  77,  65, '\0'}
+#define PNG_hIST PNG_CONST png_byte png_hIST[5] = {104,  73,  83,  84, '\0'}
+#define PNG_iCCP PNG_CONST png_byte png_iCCP[5] = {105,  67,  67,  80, '\0'}
+#define PNG_iTXt PNG_CONST png_byte png_iTXt[5] = {105,  84,  88, 116, '\0'}
+#define PNG_oFFs PNG_CONST png_byte png_oFFs[5] = {111,  70,  70, 115, '\0'}
+#define PNG_pCAL PNG_CONST png_byte png_pCAL[5] = {112,  67,  65,  76, '\0'}
+#define PNG_sCAL PNG_CONST png_byte png_sCAL[5] = {115,  67,  65,  76, '\0'}
+#define PNG_pHYs PNG_CONST png_byte png_pHYs[5] = {112,  72,  89, 115, '\0'}
+#define PNG_sBIT PNG_CONST png_byte png_sBIT[5] = {115,  66,  73,  84, '\0'}
+#define PNG_sPLT PNG_CONST png_byte png_sPLT[5] = {115,  80,  76,  84, '\0'}
+#define PNG_sRGB PNG_CONST png_byte png_sRGB[5] = {115,  82,  71,  66, '\0'}
+#define PNG_sTER PNG_CONST png_byte png_sTER[5] = {115,  84,  69,  82, '\0'}
+#define PNG_tEXt PNG_CONST png_byte png_tEXt[5] = {116,  69,  88, 116, '\0'}
+#define PNG_tIME PNG_CONST png_byte png_tIME[5] = {116,  73,  77,  69, '\0'}
+#define PNG_tRNS PNG_CONST png_byte png_tRNS[5] = {116,  82,  78,  83, '\0'}
+#define PNG_zTXt PNG_CONST png_byte png_zTXt[5] = {122,  84,  88, 116, '\0'}
+
+/* Gamma values (new at libpng-1.5.4): */
+#define PNG_GAMMA_MAC_OLD 151724  /* Assume '1.8' is really 2.2/1.45! */
+#define PNG_GAMMA_MAC_INVERSE 65909
+#define PNG_GAMMA_sRGB_INVERSE 45455
+
+
+/* Inhibit C++ name-mangling for libpng functions but not for system calls. */
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* These functions are used internally in the code.  They generally
+ * shouldn't be used unless you are writing code to add or replace some
+ * functionality in libpng.  More information about most functions can
+ * be found in the files where the functions are located.
+ */
+
+/* Check the user version string for compatibility, returns false if the version
+ * numbers aren't compatible.
+ */
+PNG_EXTERN int png_user_version_check(png_structp png_ptr,
+   png_const_charp user_png_ver);
+
+/* Allocate memory for an internal libpng struct */
+PNG_EXTERN PNG_FUNCTION(png_voidp,png_create_struct,PNGARG((int type)),
+   PNG_ALLOCATED);
+
+/* Free memory from internal libpng struct */
+PNG_EXTERN void png_destroy_struct PNGARG((png_voidp struct_ptr));
+
+PNG_EXTERN PNG_FUNCTION(png_voidp,png_create_struct_2,
+   PNGARG((int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr)),
+   PNG_ALLOCATED);
+PNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr,
+    png_free_ptr free_fn, png_voidp mem_ptr));
+
+/* Free any memory that info_ptr points to and reset struct. */
+PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr,
+    png_infop info_ptr));
+
+/* Function to allocate memory for zlib.  PNGAPI is disallowed. */
+PNG_EXTERN PNG_FUNCTION(voidpf,png_zalloc,PNGARG((voidpf png_ptr, uInt items,
+   uInt size)),PNG_ALLOCATED);
+
+/* Function to free memory for zlib.  PNGAPI is disallowed. */
+PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr));
+
+/* Next four functions are used internally as callbacks.  PNGCBAPI is required
+ * but not PNG_EXPORT.  PNGAPI added at libpng version 1.2.3, changed to
+ * PNGCBAPI at 1.5.0
+ */
+
+PNG_EXTERN void PNGCBAPI png_default_read_data PNGARG((png_structp png_ptr,
+    png_bytep data, png_size_t length));
+
+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
+PNG_EXTERN void PNGCBAPI png_push_fill_buffer PNGARG((png_structp png_ptr,
+    png_bytep buffer, png_size_t length));
+#endif
+
+PNG_EXTERN void PNGCBAPI png_default_write_data PNGARG((png_structp png_ptr,
+    png_bytep data, png_size_t length));
+
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
+#  ifdef PNG_STDIO_SUPPORTED
+PNG_EXTERN void PNGCBAPI png_default_flush PNGARG((png_structp png_ptr));
+#  endif
+#endif
+
+/* Reset the CRC variable */
+PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr));
+
+/* Write the "data" buffer to whatever output you are using */
+PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr,
+    png_const_bytep data, png_size_t length));
+
+/* Read and check the PNG file signature */
+PNG_EXTERN void png_read_sig PNGARG((png_structp png_ptr, png_infop info_ptr));
+
+/* Read the chunk header (length + type name) */
+PNG_EXTERN png_uint_32 png_read_chunk_header PNGARG((png_structp png_ptr));
+
+/* Read data from whatever input you are using into the "data" buffer */
+PNG_EXTERN void png_read_data PNGARG((png_structp png_ptr, png_bytep data,
+    png_size_t length));
+
+/* Read bytes into buf, and update png_ptr->crc */
+PNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf,
+    png_size_t length));
+
+/* Decompress data in a chunk that uses compression */
+#if defined(PNG_READ_COMPRESSED_TEXT_SUPPORTED)
+PNG_EXTERN void png_decompress_chunk PNGARG((png_structp png_ptr,
+    int comp_type, png_size_t chunklength, png_size_t prefix_length,
+    png_size_t *data_length));
+#endif
+
+/* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */
+PNG_EXTERN int png_crc_finish PNGARG((png_structp png_ptr, png_uint_32 skip));
+
+/* Read the CRC from the file and compare it to the libpng calculated CRC */
+PNG_EXTERN int png_crc_error PNGARG((png_structp png_ptr));
+
+/* Calculate the CRC over a section of data.  Note that we are only
+ * passing a maximum of 64K on systems that have this as a memory limit,
+ * since this is the maximum buffer size we can specify.
+ */
+PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr,
+    png_const_bytep ptr, png_size_t length));
+
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
+PNG_EXTERN void png_flush PNGARG((png_structp png_ptr));
+#endif
+
+/* Write various chunks */
+
+/* Write the IHDR chunk, and update the png_struct with the necessary
+ * information.
+ */
+PNG_EXTERN void png_write_IHDR PNGARG((png_structp png_ptr, png_uint_32 width,
+    png_uint_32 height,
+    int bit_depth, int color_type, int compression_method, int filter_method,
+    int interlace_method));
+
+PNG_EXTERN void png_write_PLTE PNGARG((png_structp png_ptr,
+    png_const_colorp palette, png_uint_32 num_pal));
+
+PNG_EXTERN void png_write_IDAT PNGARG((png_structp png_ptr, png_bytep data,
+    png_size_t length));
+
+PNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr));
+
+#ifdef PNG_WRITE_gAMA_SUPPORTED
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma));
+#  endif
+#  ifdef PNG_FIXED_POINT_SUPPORTED
+PNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr,
+    png_fixed_point file_gamma));
+#  endif
+#endif
+
+#ifdef PNG_WRITE_sBIT_SUPPORTED
+PNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr,
+    png_const_color_8p sbit, int color_type));
+#endif
+
+#ifdef PNG_WRITE_cHRM_SUPPORTED
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXTERN void png_write_cHRM PNGARG((png_structp png_ptr,
+    double white_x, double white_y,
+    double red_x, double red_y, double green_x, double green_y,
+    double blue_x, double blue_y));
+#  endif
+PNG_EXTERN void png_write_cHRM_fixed PNGARG((png_structp png_ptr,
+    png_fixed_point int_white_x, png_fixed_point int_white_y,
+    png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
+    int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
+    png_fixed_point int_blue_y));
+#endif
+
+#ifdef PNG_WRITE_sRGB_SUPPORTED
+PNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr,
+    int intent));
+#endif
+
+#ifdef PNG_WRITE_iCCP_SUPPORTED
+PNG_EXTERN void png_write_iCCP PNGARG((png_structp png_ptr,
+    png_const_charp name, int compression_type,
+    png_const_charp profile, int proflen));
+   /* Note to maintainer: profile should be png_bytep */
+#endif
+
+#ifdef PNG_WRITE_sPLT_SUPPORTED
+PNG_EXTERN void png_write_sPLT PNGARG((png_structp png_ptr,
+    png_const_sPLT_tp palette));
+#endif
+
+#ifdef PNG_WRITE_tRNS_SUPPORTED
+PNG_EXTERN void png_write_tRNS PNGARG((png_structp png_ptr,
+    png_const_bytep trans, png_const_color_16p values, int number,
+    int color_type));
+#endif
+
+#ifdef PNG_WRITE_bKGD_SUPPORTED
+PNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr,
+    png_const_color_16p values, int color_type));
+#endif
+
+#ifdef PNG_WRITE_hIST_SUPPORTED
+PNG_EXTERN void png_write_hIST PNGARG((png_structp png_ptr,
+    png_const_uint_16p hist, int num_hist));
+#endif
+
+/* Chunks that have keywords */
+#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \
+    defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED)
+PNG_EXTERN png_size_t png_check_keyword PNGARG((png_structp png_ptr,
+    png_const_charp key, png_charpp new_key));
+#endif
+
+#ifdef PNG_WRITE_tEXt_SUPPORTED
+PNG_EXTERN void png_write_tEXt PNGARG((png_structp png_ptr, png_const_charp key,
+    png_const_charp text, png_size_t text_len));
+#endif
+
+#ifdef PNG_WRITE_zTXt_SUPPORTED
+PNG_EXTERN void png_write_zTXt PNGARG((png_structp png_ptr, png_const_charp key,
+    png_const_charp text, png_size_t text_len, int compression));
+#endif
+
+#ifdef PNG_WRITE_iTXt_SUPPORTED
+PNG_EXTERN void png_write_iTXt PNGARG((png_structp png_ptr,
+    int compression, png_const_charp key, png_const_charp lang,
+    png_const_charp lang_key, png_const_charp text));
+#endif
+
+#ifdef PNG_TEXT_SUPPORTED  /* Added at version 1.0.14 and 1.2.4 */
+PNG_EXTERN int png_set_text_2 PNGARG((png_structp png_ptr,
+    png_infop info_ptr, png_const_textp text_ptr, int num_text));
+#endif
+
+#ifdef PNG_WRITE_oFFs_SUPPORTED
+PNG_EXTERN void png_write_oFFs PNGARG((png_structp png_ptr,
+    png_int_32 x_offset, png_int_32 y_offset, int unit_type));
+#endif
+
+#ifdef PNG_WRITE_pCAL_SUPPORTED
+PNG_EXTERN void png_write_pCAL PNGARG((png_structp png_ptr, png_charp purpose,
+    png_int_32 X0, png_int_32 X1, int type, int nparams,
+    png_const_charp units, png_charpp params));
+#endif
+
+#ifdef PNG_WRITE_pHYs_SUPPORTED
+PNG_EXTERN void png_write_pHYs PNGARG((png_structp png_ptr,
+    png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit,
+    int unit_type));
+#endif
+
+#ifdef PNG_WRITE_tIME_SUPPORTED
+PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr,
+    png_const_timep mod_time));
+#endif
+
+#ifdef PNG_WRITE_sCAL_SUPPORTED
+PNG_EXTERN void png_write_sCAL_s PNGARG((png_structp png_ptr,
+    int unit, png_const_charp width, png_const_charp height));
+#endif
+
+/* Called when finished processing a row of data */
+PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr));
+
+/* Internal use only.   Called before first row of data */
+PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr));
+
+/* Combine a row of data, dealing with alpha, etc. if requested */
+PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row,
+    int mask));
+
+#ifdef PNG_READ_INTERLACING_SUPPORTED
+/* Expand an interlaced row */
+/* OLD pre-1.0.9 interface:
+PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info,
+    png_bytep row, int pass, png_uint_32 transformations));
+ */
+PNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr));
+#endif
+
+/* GRR TO DO (2.0 or whenever):  simplify other internal calling interfaces */
+
+#ifdef PNG_WRITE_INTERLACING_SUPPORTED
+/* Grab pixels out of a row for an interlaced pass */
+PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info,
+    png_bytep row, int pass));
+#endif
+
+/* Unfilter a row */
+PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr,
+    png_row_infop row_info, png_bytep row, png_const_bytep prev_row,
+    int filter));
+
+/* Choose the best filter to use and filter the row data */
+PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr,
+    png_row_infop row_info));
+
+/* Finish a row while reading, dealing with interlacing passes, etc. */
+PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr));
+
+/* Initialize the row buffers, etc. */
+PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr));
+
+#ifdef PNG_READ_TRANSFORMS_SUPPORTED
+/* Optional call to update the users info structure */
+PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr,
+    png_infop info_ptr));
+#endif
+
+/* These are the functions that do the transformations */
+#ifdef PNG_READ_FILLER_SUPPORTED
+PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info,
+    png_bytep row, png_uint_32 filler, png_uint_32 flags));
+#endif
+
+#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED
+PNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED
+PNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
+PNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
+PNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+#if defined(PNG_WRITE_FILLER_SUPPORTED) || \
+    defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
+PNG_EXTERN void png_do_strip_channel PNGARG((png_row_infop row_info,
+    png_bytep row, int at_start));
+#endif
+
+#ifdef PNG_16BIT_SUPPORTED
+#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
+PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+#endif
+
+#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \
+    defined(PNG_WRITE_PACKSWAP_SUPPORTED)
+PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
+PNG_EXTERN int png_do_rgb_to_gray PNGARG((png_structp png_ptr,
+    png_row_infop row_info, png_bytep row));
+#endif
+
+#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
+PNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+#ifdef PNG_READ_PACK_SUPPORTED
+PNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+#ifdef PNG_READ_SHIFT_SUPPORTED
+PNG_EXTERN void png_do_unshift PNGARG((png_row_infop row_info,
+    png_bytep row, png_const_color_8p sig_bits));
+#endif
+
+#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)
+PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
+PNG_EXTERN void png_do_scale_16_to_8 PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
+PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+#ifdef PNG_READ_QUANTIZE_SUPPORTED
+PNG_EXTERN void png_do_quantize PNGARG((png_row_infop row_info,
+    png_bytep row, png_const_bytep palette_lookup,
+    png_const_bytep quantize_lookup));
+
+#  ifdef PNG_CORRECT_PALETTE_SUPPORTED
+PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr,
+    png_colorp palette, int num_palette));
+#  endif
+#endif
+
+#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
+PNG_EXTERN void png_do_bgr PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+#ifdef PNG_WRITE_PACK_SUPPORTED
+PNG_EXTERN void png_do_pack PNGARG((png_row_infop row_info,
+   png_bytep row, png_uint_32 bit_depth));
+#endif
+
+#ifdef PNG_WRITE_SHIFT_SUPPORTED
+PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info,
+    png_bytep row, png_const_color_8p bit_depth));
+#endif
+
+#if defined(PNG_READ_BACKGROUND_SUPPORTED) ||\
+    defined(PNG_READ_ALPHA_MODE_SUPPORTED)
+PNG_EXTERN void png_do_compose PNGARG((png_row_infop row_info,
+    png_bytep row, png_structp png_ptr));
+#endif
+
+#ifdef PNG_READ_GAMMA_SUPPORTED
+PNG_EXTERN void png_do_gamma PNGARG((png_row_infop row_info,
+    png_bytep row, png_structp png_ptr));
+#endif
+
+#ifdef PNG_READ_ALPHA_MODE_SUPPORTED
+PNG_EXTERN void png_do_encode_alpha PNGARG((png_row_infop row_info,
+   png_bytep row, png_structp png_ptr));
+#endif
+
+#ifdef PNG_READ_EXPAND_SUPPORTED
+PNG_EXTERN void png_do_expand_palette PNGARG((png_row_infop row_info,
+    png_bytep row, png_const_colorp palette, png_const_bytep trans,
+    int num_trans));
+PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info,
+    png_bytep row, png_const_color_16p trans_color));
+#endif
+
+#ifdef PNG_READ_EXPAND_16_SUPPORTED
+PNG_EXTERN void png_do_expand_16 PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+/* The following decodes the appropriate chunks, and does error correction,
+ * then calls the appropriate callback for the chunk if it is valid.
+ */
+
+/* Decode the IHDR chunk */
+PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+PNG_EXTERN void png_handle_IEND PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+
+#ifdef PNG_READ_bKGD_SUPPORTED
+PNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_cHRM_SUPPORTED
+PNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_gAMA_SUPPORTED
+PNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_hIST_SUPPORTED
+PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_iCCP_SUPPORTED
+PNG_EXTERN void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif /* PNG_READ_iCCP_SUPPORTED */
+
+#ifdef PNG_READ_iTXt_SUPPORTED
+PNG_EXTERN void png_handle_iTXt PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_oFFs_SUPPORTED
+PNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_pCAL_SUPPORTED
+PNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_pHYs_SUPPORTED
+PNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_sBIT_SUPPORTED
+PNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_sCAL_SUPPORTED
+PNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_sPLT_SUPPORTED
+PNG_EXTERN void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif /* PNG_READ_sPLT_SUPPORTED */
+
+#ifdef PNG_READ_sRGB_SUPPORTED
+PNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_tEXt_SUPPORTED
+PNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_tIME_SUPPORTED
+PNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_tRNS_SUPPORTED
+PNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+#ifdef PNG_READ_zTXt_SUPPORTED
+PNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr,
+    png_uint_32 length));
+#endif
+
+PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr,
+    png_infop info_ptr, png_uint_32 length));
+
+PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr,
+    png_const_bytep chunk_name));
+
+/* Handle the transformations for reading and writing */
+#ifdef PNG_READ_TRANSFORMS_SUPPORTED
+PNG_EXTERN void png_do_read_transformations PNGARG((png_structp png_ptr));
+#endif
+#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED
+PNG_EXTERN void png_do_write_transformations PNGARG((png_structp png_ptr));
+#endif
+
+#ifdef PNG_READ_TRANSFORMS_SUPPORTED
+PNG_EXTERN void png_init_read_transformations PNGARG((png_structp png_ptr));
+#endif
+
+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
+PNG_EXTERN void png_push_read_chunk PNGARG((png_structp png_ptr,
+    png_infop info_ptr));
+PNG_EXTERN void png_push_read_sig PNGARG((png_structp png_ptr,
+    png_infop info_ptr));
+PNG_EXTERN void png_push_check_crc PNGARG((png_structp png_ptr));
+PNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr,
+    png_uint_32 length));
+PNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr));
+PNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr));
+PNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr,
+    png_bytep buffer, png_size_t buffer_length));
+PNG_EXTERN void png_push_read_IDAT PNGARG((png_structp png_ptr));
+PNG_EXTERN void png_process_IDAT_data PNGARG((png_structp png_ptr,
+    png_bytep buffer, png_size_t buffer_length));
+PNG_EXTERN void png_push_process_row PNGARG((png_structp png_ptr));
+PNG_EXTERN void png_push_handle_unknown PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_uint_32 length));
+PNG_EXTERN void png_push_have_info PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+PNG_EXTERN void png_push_have_end PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+PNG_EXTERN void png_push_have_row PNGARG((png_structp png_ptr, png_bytep row));
+PNG_EXTERN void png_push_read_end PNGARG((png_structp png_ptr,
+    png_infop info_ptr));
+PNG_EXTERN void png_process_some_data PNGARG((png_structp png_ptr,
+    png_infop info_ptr));
+PNG_EXTERN void png_read_push_finish_row PNGARG((png_structp png_ptr));
+#  ifdef PNG_READ_tEXt_SUPPORTED
+PNG_EXTERN void png_push_handle_tEXt PNGARG((png_structp png_ptr,
+    png_infop info_ptr, png_uint_32 length));
+PNG_EXTERN void png_push_read_tEXt PNGARG((png_structp png_ptr,
+    png_infop info_ptr));
+#  endif
+#  ifdef PNG_READ_zTXt_SUPPORTED
+PNG_EXTERN void png_push_handle_zTXt PNGARG((png_structp png_ptr,
+    png_infop info_ptr, png_uint_32 length));
+PNG_EXTERN void png_push_read_zTXt PNGARG((png_structp png_ptr,
+    png_infop info_ptr));
+#  endif
+#  ifdef PNG_READ_iTXt_SUPPORTED
+PNG_EXTERN void png_push_handle_iTXt PNGARG((png_structp png_ptr,
+    png_infop info_ptr, png_uint_32 length));
+PNG_EXTERN void png_push_read_iTXt PNGARG((png_structp png_ptr,
+    png_infop info_ptr));
+#  endif
+
+#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
+
+#ifdef PNG_MNG_FEATURES_SUPPORTED
+PNG_EXTERN void png_do_read_intrapixel PNGARG((png_row_infop row_info,
+    png_bytep row));
+PNG_EXTERN void png_do_write_intrapixel PNGARG((png_row_infop row_info,
+    png_bytep row));
+#endif
+
+/* Added at libpng version 1.4.0 */
+#ifdef PNG_CHECK_cHRM_SUPPORTED
+PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr,
+    png_fixed_point int_white_x, png_fixed_point int_white_y,
+    png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
+    int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
+    png_fixed_point int_blue_y));
+#endif
+
+#ifdef PNG_CHECK_cHRM_SUPPORTED
+/* Added at libpng version 1.2.34 and 1.4.0 */
+/* Currently only used by png_check_cHRM_fixed */
+PNG_EXTERN void png_64bit_product PNGARG((long v1, long v2,
+    unsigned long *hi_product, unsigned long *lo_product));
+#endif
+
+/* Added at libpng version 1.4.0 */
+PNG_EXTERN void png_check_IHDR PNGARG((png_structp png_ptr,
+    png_uint_32 width, png_uint_32 height, int bit_depth,
+    int color_type, int interlace_type, int compression_type,
+    int filter_type));
+
+/* Free all memory used by the read (old method - NOT DLL EXPORTED) */
+PNG_EXTERN void png_read_destroy PNGARG((png_structp png_ptr,
+    png_infop info_ptr, png_infop end_info_ptr));
+
+/* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */
+PNG_EXTERN void png_write_destroy PNGARG((png_structp png_ptr));
+
+#ifdef USE_FAR_KEYWORD  /* memory model conversion function */
+PNG_EXTERN void *png_far_to_near PNGARG((png_structp png_ptr, png_voidp ptr,
+    int check));
+#endif /* USE_FAR_KEYWORD */
+
+#if defined(PNG_FLOATING_POINT_SUPPORTED) && defined(PNG_ERROR_TEXT_SUPPORTED)
+PNG_EXTERN PNG_FUNCTION(void, png_fixed_error, (png_structp png_ptr,
+   png_const_charp name),PNG_NORETURN);
+#endif
+
+/* Puts 'string' into 'buffer' at buffer[pos], taking care never to overwrite
+ * the end.  Always leaves the buffer nul terminated.  Never errors out (and
+ * there is no error code.)
+ */
+PNG_EXTERN size_t png_safecat(png_charp buffer, size_t bufsize, size_t pos,
+    png_const_charp string);
+
+/* Various internal functions to handle formatted warning messages, currently
+ * only implemented for warnings.
+ */
+#if defined(PNG_WARNINGS_SUPPORTED) || defined(PNG_TIME_RFC1123_SUPPORTED)
+/* Utility to dump an unsigned value into a buffer, given a start pointer and
+ * and end pointer (which should point just *beyond* the end of the buffer!)
+ * Returns the pointer to the start of the formatted string.  This utility only
+ * does unsigned values.
+ */
+PNG_EXTERN png_charp png_format_number(png_const_charp start, png_charp end,
+   int format, png_alloc_size_t number);
+
+/* Convenience macro that takes an array: */
+#define PNG_FORMAT_NUMBER(buffer,format,number) \
+   png_format_number(buffer, buffer + (sizeof buffer), format, number)
+
+/* Suggested size for a number buffer (enough for 64 bits and a sign!) */
+#define PNG_NUMBER_BUFFER_SIZE 24
+
+/* These are the integer formats currently supported, the name is formed from
+ * the standard printf(3) format string.
+ */
+#define PNG_NUMBER_FORMAT_u     1 /* chose unsigned API! */
+#define PNG_NUMBER_FORMAT_02u   2
+#define PNG_NUMBER_FORMAT_d     1 /* chose signed API! */
+#define PNG_NUMBER_FORMAT_02d   2
+#define PNG_NUMBER_FORMAT_x     3
+#define PNG_NUMBER_FORMAT_02x   4
+#define PNG_NUMBER_FORMAT_fixed 5 /* choose the signed API */
+#endif
+
+#ifdef PNG_WARNINGS_SUPPORTED
+/* New defines and members adding in libpng-1.5.4 */
+#  define PNG_WARNING_PARAMETER_SIZE 32
+#  define PNG_WARNING_PARAMETER_COUNT 8
+
+/* An l-value of this type has to be passed to the APIs below to cache the
+ * values of the parameters to a formatted warning message.
+ */
+typedef char png_warning_parameters[PNG_WARNING_PARAMETER_COUNT][
+   PNG_WARNING_PARAMETER_SIZE];
+
+PNG_EXTERN void png_warning_parameter(png_warning_parameters p, int number,
+    png_const_charp string);
+    /* Parameters are limited in size to PNG_WARNING_PARAMETER_SIZE characters,
+     * including the trailing '\0'.
+     */
+PNG_EXTERN void png_warning_parameter_unsigned(png_warning_parameters p,
+    int number, int format, png_alloc_size_t value);
+    /* Use png_alloc_size_t because it is an unsigned type as big as any we
+     * need to output.  Use the following for a signed value.
+     */
+PNG_EXTERN void png_warning_parameter_signed(png_warning_parameters p,
+    int number, int format, png_int_32 value);
+
+PNG_EXTERN void png_formatted_warning(png_structp png_ptr,
+    png_warning_parameters p, png_const_charp message);
+    /* 'message' follows the X/Open approach of using @1, @2 to insert
+     * parameters previously supplied using the above functions.  Errors in
+     * specifying the paramters will simple result in garbage substitutions.
+     */
+#endif
+
+/* ASCII to FP interfaces, currently only implemented if sCAL
+ * support is required.
+ */
+#if defined(PNG_READ_sCAL_SUPPORTED)
+/* MAX_DIGITS is actually the maximum number of characters in an sCAL
+ * width or height, derived from the precision (number of significant
+ * digits - a build time settable option) and assumpitions about the
+ * maximum ridiculous exponent.
+ */
+#define PNG_sCAL_MAX_DIGITS (PNG_sCAL_PRECISION+1/*.*/+1/*E*/+10/*exponent*/)
+
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXTERN void png_ascii_from_fp PNGARG((png_structp png_ptr, png_charp ascii,
+    png_size_t size, double fp, unsigned int precision));
+#endif /* FLOATING_POINT */
+
+#ifdef PNG_FIXED_POINT_SUPPORTED
+PNG_EXTERN void png_ascii_from_fixed PNGARG((png_structp png_ptr,
+    png_charp ascii, png_size_t size, png_fixed_point fp));
+#endif /* FIXED_POINT */
+#endif /* READ_sCAL */
+
+#if defined(PNG_sCAL_SUPPORTED) || defined(PNG_pCAL_SUPPORTED)
+/* An internal API to validate the format of a floating point number.
+ * The result is the index of the next character.  If the number is
+ * not valid it will be the index of a character in the supposed number.
+ *
+ * The format of a number is defined in the PNG extensions specification
+ * and this API is strictly conformant to that spec, not anyone elses!
+ *
+ * The format as a regular expression is:
+ *
+ * [+-]?[0-9]+.?([Ee][+-]?[0-9]+)?
+ *
+ * or:
+ *
+ * [+-]?.[0-9]+(.[0-9]+)?([Ee][+-]?[0-9]+)?
+ *
+ * The complexity is that either integer or fraction must be present and the
+ * fraction is permitted to have no digits only if the integer is present.
+ *
+ * NOTE: The dangling E problem.
+ *   There is a PNG valid floating point number in the following:
+ *
+ *       PNG floating point numb1.ers are not greedy.
+ *
+ *   Working this out requires *TWO* character lookahead (because of the
+ *   sign), the parser does not do this - it will fail at the 'r' - this
+ *   doesn't matter for PNG sCAL chunk values, but it requires more care
+ *   if the value were ever to be embedded in something more complex.  Use
+ *   ANSI-C strtod if you need the lookahead.
+ */
+/* State table for the parser. */
+#define PNG_FP_INTEGER    0  /* before or in integer */
+#define PNG_FP_FRACTION   1  /* before or in fraction */
+#define PNG_FP_EXPONENT   2  /* before or in exponent */
+#define PNG_FP_STATE      3  /* mask for the above */
+#define PNG_FP_SAW_SIGN   4  /* Saw +/- in current state */
+#define PNG_FP_SAW_DIGIT  8  /* Saw a digit in current state */
+#define PNG_FP_SAW_DOT   16  /* Saw a dot in current state */
+#define PNG_FP_SAW_E     32  /* Saw an E (or e) in current state */
+#define PNG_FP_SAW_ANY   60  /* Saw any of the above 4 */
+
+/* These three values don't affect the parser.  They are set but not used.
+ */
+#define PNG_FP_WAS_VALID 64  /* Preceding substring is a valid fp number */
+#define PNG_FP_NEGATIVE 128  /* A negative number, including "-0" */
+#define PNG_FP_NONZERO  256  /* A non-zero value */
+#define PNG_FP_STICKY   448  /* The above three flags */
+
+/* This is available for the caller to store in 'state' if required.  Do not
+ * call the parser after setting it (the parser sometimes clears it.)
+ */
+#define PNG_FP_INVALID  512  /* Available for callers as a distinct value */
+
+/* Result codes for the parser (boolean - true meants ok, false means
+ * not ok yet.)
+ */
+#define PNG_FP_MAYBE      0  /* The number may be valid in the future */
+#define PNG_FP_OK         1  /* The number is valid */
+
+/* Tests on the sticky non-zero and negative flags.  To pass these checks
+ * the state must also indicate that the whole number is valid - this is
+ * achieved by testing PNG_FP_SAW_DIGIT (see the implementation for why this
+ * is equivalent to PNG_FP_OK above.)
+ */
+#define PNG_FP_NZ_MASK (PNG_FP_SAW_DIGIT | PNG_FP_NEGATIVE | PNG_FP_NONZERO)
+   /* NZ_MASK: the string is valid and a non-zero negative value */
+#define PNG_FP_Z_MASK (PNG_FP_SAW_DIGIT | PNG_FP_NONZERO)
+   /* Z MASK: the string is valid and a non-zero value. */
+   /* PNG_FP_SAW_DIGIT: the string is valid. */
+#define PNG_FP_IS_ZERO(state) (((state) & PNG_FP_Z_MASK) == PNG_FP_SAW_DIGIT)
+#define PNG_FP_IS_POSITIVE(state) (((state) & PNG_FP_NZ_MASK) == PNG_FP_Z_MASK)
+#define PNG_FP_IS_NEGATIVE(state) (((state) & PNG_FP_NZ_MASK) == PNG_FP_NZ_MASK)
+
+/* The actual parser.  This can be called repeatedly, it updates
+ * the index into the string and the state variable (which must
+ * be initialzed to 0).  It returns a result code, as above.  There
+ * is no point calling the parser any more if it fails to advance to
+ * the end of the string - it is stuck on an invalid character (or
+ * terminated by '\0').
+ *
+ * Note that the pointer will consume an E or even an E+ then leave
+ * a 'maybe' state even though a preceding integer.fraction is valid.
+ * The PNG_FP_WAS_VALID flag indicates that a preceding substring was
+ * a valid number.  It's possible to recover from this by calling
+ * the parser again (from the start, with state 0) but with a string
+ * that omits the last character (i.e. set the size to the index of
+ * the problem character.)  This has not been tested within libpng.
+ */
+PNG_EXTERN int png_check_fp_number PNGARG((png_const_charp string,
+    png_size_t size, int *statep, png_size_tp whereami));
+
+/* This is the same but it checks a complete string and returns true
+ * only if it just contains a floating point number.  As of 1.5.4 this
+ * function also returns the state at the end of parsing the number if
+ * it was valid (otherwise it returns 0.)  This can be used for testing
+ * for negative or zero values using the sticky flag.
+ */
+PNG_EXTERN int png_check_fp_string PNGARG((png_const_charp string,
+    png_size_t size));
+#endif /* pCAL || sCAL */
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) ||\
+    defined(PNG_INCH_CONVERSIONS_SUPPORTED) || defined(PNG_READ_pHYs_SUPPORTED)
+/* Added at libpng version 1.5.0 */
+/* This is a utility to provide a*times/div (rounded) and indicate
+ * if there is an overflow.  The result is a boolean - false (0)
+ * for overflow, true (1) if no overflow, in which case *res
+ * holds the result.
+ */
+PNG_EXTERN int png_muldiv PNGARG((png_fixed_point_p res, png_fixed_point a,
+    png_int_32 multiplied_by, png_int_32 divided_by));
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_INCH_CONVERSIONS_SUPPORTED)
+/* Same deal, but issue a warning on overflow and return 0. */
+PNG_EXTERN png_fixed_point png_muldiv_warn PNGARG((png_structp png_ptr,
+    png_fixed_point a, png_int_32 multiplied_by, png_int_32 divided_by));
+#endif
+
+#ifdef PNG_READ_GAMMA_SUPPORTED
+/* Calculate a reciprocal - used for gamma values.  This returns
+ * 0 if the argument is 0 in order to maintain an undefined value,
+ * there are no warnings.
+ */
+PNG_EXTERN png_fixed_point png_reciprocal PNGARG((png_fixed_point a));
+
+/* The same but gives a reciprocal of the product of two fixed point
+ * values.  Accuracy is suitable for gamma calculations but this is
+ * not exact - use png_muldiv for that.
+ */
+PNG_EXTERN png_fixed_point png_reciprocal2 PNGARG((png_fixed_point a,
+    png_fixed_point b));
+#endif
+
+#ifdef PNG_READ_GAMMA_SUPPORTED
+/* Internal fixed point gamma correction.  These APIs are called as
+ * required to convert single values - they don't need to be fast,
+ * they are not used when processing image pixel values.
+ *
+ * While the input is an 'unsigned' value it must actually be the
+ * correct bit value - 0..255 or 0..65535 as required.
+ */
+PNG_EXTERN png_uint_16 png_gamma_correct PNGARG((png_structp png_ptr,
+    unsigned int value, png_fixed_point gamma_value));
+PNG_EXTERN int png_gamma_significant PNGARG((png_fixed_point gamma_value));
+PNG_EXTERN png_uint_16 png_gamma_16bit_correct PNGARG((unsigned int value,
+    png_fixed_point gamma_value));
+PNG_EXTERN png_byte png_gamma_8bit_correct PNGARG((unsigned int value,
+    png_fixed_point gamma_value));
+PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr,
+    int bit_depth));
+#endif
+
+/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
+
+
+#include "pngdebug.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PNGPRIV_H */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngread.c b/jdk/src/share/native/sun/awt/libpng/pngread.c
index c74b850..503acae 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngread.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngread.c
@@ -29,93 +29,97 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.15 January 5, 2007
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ *
  * This file contains routines that an application calls directly to
  * read a PNG file or stream.
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
 
-#if defined(PNG_READ_SUPPORTED)
+#ifdef PNG_READ_SUPPORTED
 
 /* Create a PNG structure for reading, and allocate any memory needed. */
-png_structp PNGAPI
-png_create_read_struct(png_const_charp user_png_ver, png_voidp error_ptr,
-   png_error_ptr error_fn, png_error_ptr warn_fn)
+PNG_FUNCTION(png_structp,PNGAPI
+png_create_read_struct,(png_const_charp user_png_ver, png_voidp error_ptr,
+    png_error_ptr error_fn, png_error_ptr warn_fn),PNG_ALLOCATED)
 {
 
 #ifdef PNG_USER_MEM_SUPPORTED
    return (png_create_read_struct_2(user_png_ver, error_ptr, error_fn,
-      warn_fn, png_voidp_NULL, png_malloc_ptr_NULL, png_free_ptr_NULL));
+       warn_fn, NULL, NULL, NULL));
 }
 
-/* Alternate create PNG structure for reading, and allocate any memory needed. */
-png_structp PNGAPI
-png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
-   png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
-   png_malloc_ptr malloc_fn, png_free_ptr free_fn)
+/* Alternate create PNG structure for reading, and allocate any memory
+ * needed.
+ */
+PNG_FUNCTION(png_structp,PNGAPI
+png_create_read_struct_2,(png_const_charp user_png_ver, png_voidp error_ptr,
+    png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
+    png_malloc_ptr malloc_fn, png_free_ptr free_fn),PNG_ALLOCATED)
 {
 #endif /* PNG_USER_MEM_SUPPORTED */
 
+#ifdef PNG_SETJMP_SUPPORTED
+   volatile
+#endif
    png_structp png_ptr;
+   volatile int png_cleanup_needed = 0;
 
 #ifdef PNG_SETJMP_SUPPORTED
 #ifdef USE_FAR_KEYWORD
-   jmp_buf jmpbuf;
+   jmp_buf tmp_jmpbuf;
 #endif
 #endif
 
-   int i;
+   png_debug(1, "in png_create_read_struct");
 
-   png_debug(1, "in png_create_read_struct\n");
 #ifdef PNG_USER_MEM_SUPPORTED
    png_ptr = (png_structp)png_create_struct_2(PNG_STRUCT_PNG,
-      (png_malloc_ptr)malloc_fn, (png_voidp)mem_ptr);
+       malloc_fn, mem_ptr);
 #else
    png_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG);
 #endif
    if (png_ptr == NULL)
       return (NULL);
 
-#if !defined(PNG_1_0_X)
-#ifdef PNG_MMX_CODE_SUPPORTED
-   png_init_mmx_flags(png_ptr);   /* 1.2.0 addition */
-#endif
-#endif /* PNG_1_0_X */
+   /* Added at libpng-1.2.6 */
+#ifdef PNG_USER_LIMITS_SUPPORTED
+   png_ptr->user_width_max = PNG_USER_WIDTH_MAX;
+   png_ptr->user_height_max = PNG_USER_HEIGHT_MAX;
 
-   /* added at libpng-1.2.6 */
-#ifdef PNG_SET_USER_LIMITS_SUPPORTED
-   png_ptr->user_width_max=PNG_USER_WIDTH_MAX;
-   png_ptr->user_height_max=PNG_USER_HEIGHT_MAX;
+#  ifdef PNG_USER_CHUNK_CACHE_MAX
+   /* Added at libpng-1.2.43 and 1.4.0 */
+   png_ptr->user_chunk_cache_max = PNG_USER_CHUNK_CACHE_MAX;
+#  endif
+
+#  ifdef PNG_SET_USER_CHUNK_MALLOC_MAX
+   /* Added at libpng-1.2.43 and 1.4.1 */
+   png_ptr->user_chunk_malloc_max = PNG_USER_CHUNK_MALLOC_MAX;
+#  endif
 #endif
 
 #ifdef PNG_SETJMP_SUPPORTED
+/* Applications that neglect to set up their own setjmp() and then
+   encounter a png_error() will longjmp here.  Since the jmpbuf is
+   then meaningless we abort instead of returning. */
 #ifdef USE_FAR_KEYWORD
-   if (setjmp(jmpbuf))
-#else
-   if (setjmp(png_ptr->jmpbuf))
-#endif
-   {
-      png_free(png_ptr, png_ptr->zbuf);
-      png_ptr->zbuf=NULL;
-#ifdef PNG_USER_MEM_SUPPORTED
-      png_destroy_struct_2((png_voidp)png_ptr,
-         (png_free_ptr)free_fn, (png_voidp)mem_ptr);
+   if (setjmp(tmp_jmpbuf))
 #else
-      png_destroy_struct((png_voidp)png_ptr);
+   if (setjmp(png_jmpbuf(png_ptr))) /* Sets longjmp to match setjmp */
 #endif
-      return (NULL);
-   }
+      PNG_ABORT();
 #ifdef USE_FAR_KEYWORD
-   png_memcpy(png_ptr->jmpbuf,jmpbuf,png_sizeof(jmp_buf));
-#endif
+   png_memcpy(png_jmpbuf(png_ptr), tmp_jmpbuf, png_sizeof(jmp_buf));
 #endif
+#endif /* PNG_SETJMP_SUPPORTED */
 
 #ifdef PNG_USER_MEM_SUPPORTED
    png_set_mem_fn(png_ptr, mem_ptr, malloc_fn, free_fn);
@@ -123,220 +127,76 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
 
    png_set_error_fn(png_ptr, error_ptr, error_fn, warn_fn);
 
-   i=0;
-   do
-   {
-     if(user_png_ver[i] != png_libpng_ver[i])
-        png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
-   } while (png_libpng_ver[i++]);
+   /* Call the general version checker (shared with read and write code): */
+   if (!png_user_version_check(png_ptr, user_png_ver))
+      png_cleanup_needed = 1;
 
-   if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH)
+   if (!png_cleanup_needed)
    {
-     /* Libpng 0.90 and later are binary incompatible with libpng 0.89, so
-      * we must recompile any applications that use any older library version.
-      * For versions after libpng 1.0, we will be compatible, so we need
-      * only check the first digit.
-      */
-     if (user_png_ver == NULL || user_png_ver[0] != png_libpng_ver[0] ||
-         (user_png_ver[0] == '1' && user_png_ver[2] != png_libpng_ver[2]) ||
-         (user_png_ver[0] == '0' && user_png_ver[2] < '9'))
-     {
-#if !defined(PNG_NO_STDIO) && !defined(_WIN32_WCE)
-        char msg[80];
-        if (user_png_ver)
-        {
-          sprintf(msg, "Application was compiled with png.h from libpng-%.20s",
-             user_png_ver);
-          png_warning(png_ptr, msg);
-        }
-        sprintf(msg, "Application  is  running with png.c from libpng-%.20s",
-           png_libpng_ver);
-        png_warning(png_ptr, msg);
-#endif
-#ifdef PNG_ERROR_NUMBERS_SUPPORTED
-        png_ptr->flags=0;
-#endif
-        png_error(png_ptr,
-           "Incompatible libpng version in application and library");
-     }
+   /* Initialize zbuf - compression buffer */
+   png_ptr->zbuf_size = PNG_ZBUF_SIZE;
+   png_ptr->zbuf = (png_bytep)png_malloc_warn(png_ptr, png_ptr->zbuf_size);
+
+   if (png_ptr->zbuf == NULL)
+      png_cleanup_needed = 1;
    }
 
-   /* initialize zbuf - compression buffer */
-   png_ptr->zbuf_size = PNG_ZBUF_SIZE;
-   png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
-     (png_uint_32)png_ptr->zbuf_size);
    png_ptr->zstream.zalloc = png_zalloc;
    png_ptr->zstream.zfree = png_zfree;
    png_ptr->zstream.opaque = (voidpf)png_ptr;
 
-   switch (inflateInit(&png_ptr->zstream))
+   if (!png_cleanup_needed)
    {
-     case Z_OK: /* Do nothing */ break;
-     case Z_MEM_ERROR:
-     case Z_STREAM_ERROR: png_error(png_ptr, "zlib memory error"); break;
-     case Z_VERSION_ERROR: png_error(png_ptr, "zlib version error"); break;
-     default: png_error(png_ptr, "Unknown zlib error");
-   }
-
-   png_ptr->zstream.next_out = png_ptr->zbuf;
-   png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
+      switch (inflateInit(&png_ptr->zstream))
+      {
+         case Z_OK:
+            break; /* Do nothing */
 
-   png_set_read_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL);
+         case Z_MEM_ERROR:
+            png_warning(png_ptr, "zlib memory error");
+            png_cleanup_needed = 1;
+            break;
 
-#ifdef PNG_SETJMP_SUPPORTED
-/* Applications that neglect to set up their own setjmp() and then encounter
-   a png_error() will longjmp here.  Since the jmpbuf is then meaningless we
-   abort instead of returning. */
-#ifdef USE_FAR_KEYWORD
-   if (setjmp(jmpbuf))
-      PNG_ABORT();
-   png_memcpy(png_ptr->jmpbuf,jmpbuf,png_sizeof(jmp_buf));
-#else
-   if (setjmp(png_ptr->jmpbuf))
-      PNG_ABORT();
-#endif
-#endif
-   return (png_ptr);
-}
+         case Z_STREAM_ERROR:
+            png_warning(png_ptr, "zlib stream error");
+            png_cleanup_needed = 1;
+            break;
 
-#if defined(PNG_1_0_X) || defined(PNG_1_2_X)
-/* Initialize PNG structure for reading, and allocate any memory needed.
-   This interface is deprecated in favour of the png_create_read_struct(),
-   and it will disappear as of libpng-1.3.0. */
-#undef png_read_init
-void PNGAPI
-png_read_init(png_structp png_ptr)
-{
-   /* We only come here via pre-1.0.7-compiled applications */
-   png_read_init_2(png_ptr, "1.0.6 or earlier", 0, 0);
-}
+         case Z_VERSION_ERROR:
+            png_warning(png_ptr, "zlib version error");
+            png_cleanup_needed = 1;
+            break;
 
-void PNGAPI
-png_read_init_2(png_structp png_ptr, png_const_charp user_png_ver,
-   png_size_t png_struct_size, png_size_t png_info_size)
-{
-   /* We only come here via pre-1.0.12-compiled applications */
-   if(png_ptr == NULL) return;
-#if !defined(PNG_NO_STDIO) && !defined(_WIN32_WCE)
-   if(png_sizeof(png_struct) > png_struct_size ||
-      png_sizeof(png_info) > png_info_size)
-   {
-      char msg[80];
-      png_ptr->warning_fn=NULL;
-      if (user_png_ver)
-      {
-        sprintf(msg, "Application was compiled with png.h from libpng-%.20s",
-           user_png_ver);
-        png_warning(png_ptr, msg);
+         default: png_warning(png_ptr, "Unknown zlib error");
+            png_cleanup_needed = 1;
       }
-      sprintf(msg, "Application  is  running with png.c from libpng-%.20s",
-         png_libpng_ver);
-      png_warning(png_ptr, msg);
    }
-#endif
-   if(png_sizeof(png_struct) > png_struct_size)
-     {
-       png_ptr->error_fn=NULL;
-#ifdef PNG_ERROR_NUMBERS_SUPPORTED
-       png_ptr->flags=0;
-#endif
-       png_error(png_ptr,
-       "The png struct allocated by the application for reading is too small.");
-     }
-   if(png_sizeof(png_info) > png_info_size)
-     {
-       png_ptr->error_fn=NULL;
-#ifdef PNG_ERROR_NUMBERS_SUPPORTED
-       png_ptr->flags=0;
-#endif
-       png_error(png_ptr,
-         "The info struct allocated by application for reading is too small.");
-     }
-   png_read_init_3(&png_ptr, user_png_ver, png_struct_size);
-}
-#endif /* PNG_1_0_X || PNG_1_2_X */
-
-void PNGAPI
-png_read_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver,
-   png_size_t png_struct_size)
-{
-#ifdef PNG_SETJMP_SUPPORTED
-   jmp_buf tmp_jmp;  /* to save current jump buffer */
-#endif
 
-   int i=0;
-
-   png_structp png_ptr=*ptr_ptr;
-
-   if(png_ptr == NULL) return;
-
-   do
+   if (png_cleanup_needed)
    {
-     if(user_png_ver[i] != png_libpng_ver[i])
-     {
-#ifdef PNG_LEGACY_SUPPORTED
-       png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
+      /* Clean up PNG structure and deallocate any memory. */
+      png_free(png_ptr, png_ptr->zbuf);
+      png_ptr->zbuf = NULL;
+#ifdef PNG_USER_MEM_SUPPORTED
+      png_destroy_struct_2((png_voidp)png_ptr,
+          (png_free_ptr)free_fn, (png_voidp)mem_ptr);
 #else
-       png_ptr->warning_fn=NULL;
-       png_warning(png_ptr,
-        "Application uses deprecated png_read_init() and should be recompiled.");
-       break;
-#endif
-     }
-   } while (png_libpng_ver[i++]);
-
-   png_debug(1, "in png_read_init_3\n");
-
-#ifdef PNG_SETJMP_SUPPORTED
-   /* save jump buffer and error functions */
-   png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof (jmp_buf));
-#endif
-
-   if(png_sizeof(png_struct) > png_struct_size)
-     {
-       png_destroy_struct(png_ptr);
-       *ptr_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG);
-       png_ptr = *ptr_ptr;
-     }
-
-   /* reset all variables to 0 */
-   png_memset(png_ptr, 0, png_sizeof (png_struct));
-
-#ifdef PNG_SETJMP_SUPPORTED
-   /* restore jump buffer */
-   png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof (jmp_buf));
-#endif
-
-   /* added at libpng-1.2.6 */
-#ifdef PNG_SET_USER_LIMITS_SUPPORTED
-   png_ptr->user_width_max=PNG_USER_WIDTH_MAX;
-   png_ptr->user_height_max=PNG_USER_HEIGHT_MAX;
+      png_destroy_struct((png_voidp)png_ptr);
 #endif
-
-   /* initialize zbuf - compression buffer */
-   png_ptr->zbuf_size = PNG_ZBUF_SIZE;
-   png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
-     (png_uint_32)png_ptr->zbuf_size);
-   png_ptr->zstream.zalloc = png_zalloc;
-   png_ptr->zstream.zfree = png_zfree;
-   png_ptr->zstream.opaque = (voidpf)png_ptr;
-
-   switch (inflateInit(&png_ptr->zstream))
-   {
-     case Z_OK: /* Do nothing */ break;
-     case Z_MEM_ERROR:
-     case Z_STREAM_ERROR: png_error(png_ptr, "zlib memory"); break;
-     case Z_VERSION_ERROR: png_error(png_ptr, "zlib version"); break;
-     default: png_error(png_ptr, "Unknown zlib error");
+      return (NULL);
    }
 
    png_ptr->zstream.next_out = png_ptr->zbuf;
    png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
 
-   png_set_read_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL);
+   png_set_read_fn(png_ptr, NULL, NULL);
+
+
+   return (png_ptr);
 }
 
-#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
+
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
 /* Read the information before the actual image data.  This has been
  * changed in v0.90 to allow reading a file that already has the magic
  * bytes read from the stream.  You can tell libpng how many bytes have
@@ -348,233 +208,244 @@ png_read_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver,
 void PNGAPI
 png_read_info(png_structp png_ptr, png_infop info_ptr)
 {
-   if(png_ptr == NULL) return;
-   png_debug(1, "in png_read_info\n");
-   /* If we haven't checked all of the PNG signature bytes, do so now. */
-   if (png_ptr->sig_bytes < 8)
-   {
-      png_size_t num_checked = png_ptr->sig_bytes,
-                 num_to_check = 8 - num_checked;
+   png_debug(1, "in png_read_info");
 
-      png_read_data(png_ptr, &(info_ptr->signature[num_checked]), num_to_check);
-      png_ptr->sig_bytes = 8;
+   if (png_ptr == NULL || info_ptr == NULL)
+      return;
 
-      if (png_sig_cmp(info_ptr->signature, num_checked, num_to_check))
-      {
-         if (num_checked < 4 &&
-             png_sig_cmp(info_ptr->signature, num_checked, num_to_check - 4))
-            png_error(png_ptr, "Not a PNG file");
-         else
-            png_error(png_ptr, "PNG file corrupted by ASCII conversion");
-      }
-      if (num_checked < 3)
-         png_ptr->mode |= PNG_HAVE_PNG_SIGNATURE;
-   }
+   /* Read and check the PNG file signature. */
+   png_read_sig(png_ptr, info_ptr);
 
-   for(;;)
+   for (;;)
    {
-#ifdef PNG_USE_LOCAL_ARRAYS
       PNG_IHDR;
       PNG_IDAT;
       PNG_IEND;
       PNG_PLTE;
-#if defined(PNG_READ_bKGD_SUPPORTED)
+#ifdef PNG_READ_bKGD_SUPPORTED
       PNG_bKGD;
 #endif
-#if defined(PNG_READ_cHRM_SUPPORTED)
+#ifdef PNG_READ_cHRM_SUPPORTED
       PNG_cHRM;
 #endif
-#if defined(PNG_READ_gAMA_SUPPORTED)
+#ifdef PNG_READ_gAMA_SUPPORTED
       PNG_gAMA;
 #endif
-#if defined(PNG_READ_hIST_SUPPORTED)
+#ifdef PNG_READ_hIST_SUPPORTED
       PNG_hIST;
 #endif
-#if defined(PNG_READ_iCCP_SUPPORTED)
+#ifdef PNG_READ_iCCP_SUPPORTED
       PNG_iCCP;
 #endif
-#if defined(PNG_READ_iTXt_SUPPORTED)
+#ifdef PNG_READ_iTXt_SUPPORTED
       PNG_iTXt;
 #endif
-#if defined(PNG_READ_oFFs_SUPPORTED)
+#ifdef PNG_READ_oFFs_SUPPORTED
       PNG_oFFs;
 #endif
-#if defined(PNG_READ_pCAL_SUPPORTED)
+#ifdef PNG_READ_pCAL_SUPPORTED
       PNG_pCAL;
 #endif
-#if defined(PNG_READ_pHYs_SUPPORTED)
+#ifdef PNG_READ_pHYs_SUPPORTED
       PNG_pHYs;
 #endif
-#if defined(PNG_READ_sBIT_SUPPORTED)
+#ifdef PNG_READ_sBIT_SUPPORTED
       PNG_sBIT;
 #endif
-#if defined(PNG_READ_sCAL_SUPPORTED)
+#ifdef PNG_READ_sCAL_SUPPORTED
       PNG_sCAL;
 #endif
-#if defined(PNG_READ_sPLT_SUPPORTED)
+#ifdef PNG_READ_sPLT_SUPPORTED
       PNG_sPLT;
 #endif
-#if defined(PNG_READ_sRGB_SUPPORTED)
+#ifdef PNG_READ_sRGB_SUPPORTED
       PNG_sRGB;
 #endif
-#if defined(PNG_READ_tEXt_SUPPORTED)
+#ifdef PNG_READ_tEXt_SUPPORTED
       PNG_tEXt;
 #endif
-#if defined(PNG_READ_tIME_SUPPORTED)
+#ifdef PNG_READ_tIME_SUPPORTED
       PNG_tIME;
 #endif
-#if defined(PNG_READ_tRNS_SUPPORTED)
+#ifdef PNG_READ_tRNS_SUPPORTED
       PNG_tRNS;
 #endif
-#if defined(PNG_READ_zTXt_SUPPORTED)
+#ifdef PNG_READ_zTXt_SUPPORTED
       PNG_zTXt;
 #endif
-#endif /* PNG_USE_LOCAL_ARRAYS */
-      png_byte chunk_length[4];
-      png_uint_32 length;
-
-      png_read_data(png_ptr, chunk_length, 4);
-      length = png_get_uint_31(png_ptr,chunk_length);
-
-      png_reset_crc(png_ptr);
-      png_crc_read(png_ptr, png_ptr->chunk_name, 4);
-
-      png_debug2(0, "Reading %s chunk, length=%lu.\n", png_ptr->chunk_name,
-         length);
+      png_uint_32 length = png_read_chunk_header(png_ptr);
+      PNG_CONST png_bytep chunk_name = png_ptr->chunk_name;
 
       /* This should be a binary subdivision search or a hash for
        * matching the chunk name rather than a linear search.
        */
-      if (!png_memcmp(png_ptr->chunk_name, (png_bytep)png_IDAT, 4))
-        if(png_ptr->mode & PNG_AFTER_IDAT)
-          png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT;
+      if (!png_memcmp(chunk_name, png_IDAT, 4))
+         if (png_ptr->mode & PNG_AFTER_IDAT)
+            png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT;
 
-      if (!png_memcmp(png_ptr->chunk_name, png_IHDR, 4))
+      if (!png_memcmp(chunk_name, png_IHDR, 4))
          png_handle_IHDR(png_ptr, info_ptr, length);
-      else if (!png_memcmp(png_ptr->chunk_name, png_IEND, 4))
+
+      else if (!png_memcmp(chunk_name, png_IEND, 4))
          png_handle_IEND(png_ptr, info_ptr, length);
+
 #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
-      else if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name))
+      else if (png_handle_as_unknown(png_ptr, chunk_name))
       {
-         if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
+         if (!png_memcmp(chunk_name, png_IDAT, 4))
             png_ptr->mode |= PNG_HAVE_IDAT;
+
          png_handle_unknown(png_ptr, info_ptr, length);
-         if (!png_memcmp(png_ptr->chunk_name, png_PLTE, 4))
+
+         if (!png_memcmp(chunk_name, png_PLTE, 4))
             png_ptr->mode |= PNG_HAVE_PLTE;
-         else if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
+
+         else if (!png_memcmp(chunk_name, png_IDAT, 4))
          {
             if (!(png_ptr->mode & PNG_HAVE_IHDR))
                png_error(png_ptr, "Missing IHDR before IDAT");
+
             else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE &&
-                     !(png_ptr->mode & PNG_HAVE_PLTE))
+                !(png_ptr->mode & PNG_HAVE_PLTE))
                png_error(png_ptr, "Missing PLTE before IDAT");
+
             break;
          }
       }
 #endif
-      else if (!png_memcmp(png_ptr->chunk_name, png_PLTE, 4))
+      else if (!png_memcmp(chunk_name, png_PLTE, 4))
          png_handle_PLTE(png_ptr, info_ptr, length);
-      else if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
+
+      else if (!png_memcmp(chunk_name, png_IDAT, 4))
       {
          if (!(png_ptr->mode & PNG_HAVE_IHDR))
             png_error(png_ptr, "Missing IHDR before IDAT");
+
          else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE &&
-                  !(png_ptr->mode & PNG_HAVE_PLTE))
+             !(png_ptr->mode & PNG_HAVE_PLTE))
             png_error(png_ptr, "Missing PLTE before IDAT");
 
          png_ptr->idat_size = length;
          png_ptr->mode |= PNG_HAVE_IDAT;
          break;
       }
-#if defined(PNG_READ_bKGD_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_bKGD, 4))
+
+#ifdef PNG_READ_bKGD_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_bKGD, 4))
          png_handle_bKGD(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_cHRM_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_cHRM, 4))
+
+#ifdef PNG_READ_cHRM_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_cHRM, 4))
          png_handle_cHRM(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_gAMA_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_gAMA, 4))
+
+#ifdef PNG_READ_gAMA_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_gAMA, 4))
          png_handle_gAMA(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_hIST_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_hIST, 4))
+
+#ifdef PNG_READ_hIST_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_hIST, 4))
          png_handle_hIST(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_oFFs_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_oFFs, 4))
+
+#ifdef PNG_READ_oFFs_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_oFFs, 4))
          png_handle_oFFs(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_pCAL_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_pCAL, 4))
+
+#ifdef PNG_READ_pCAL_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_pCAL, 4))
          png_handle_pCAL(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_sCAL_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_sCAL, 4))
+
+#ifdef PNG_READ_sCAL_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_sCAL, 4))
          png_handle_sCAL(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_pHYs_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_pHYs, 4))
+
+#ifdef PNG_READ_pHYs_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_pHYs, 4))
          png_handle_pHYs(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_sBIT_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_sBIT, 4))
+
+#ifdef PNG_READ_sBIT_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_sBIT, 4))
          png_handle_sBIT(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_sRGB_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_sRGB, 4))
+
+#ifdef PNG_READ_sRGB_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_sRGB, 4))
          png_handle_sRGB(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_iCCP_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_iCCP, 4))
+
+#ifdef PNG_READ_iCCP_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_iCCP, 4))
          png_handle_iCCP(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_sPLT_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_sPLT, 4))
+
+#ifdef PNG_READ_sPLT_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_sPLT, 4))
          png_handle_sPLT(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_tEXt_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_tEXt, 4))
+
+#ifdef PNG_READ_tEXt_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_tEXt, 4))
          png_handle_tEXt(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_tIME_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_tIME, 4))
+
+#ifdef PNG_READ_tIME_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_tIME, 4))
          png_handle_tIME(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_tRNS_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_tRNS, 4))
+
+#ifdef PNG_READ_tRNS_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_tRNS, 4))
          png_handle_tRNS(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_zTXt_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_zTXt, 4))
+
+#ifdef PNG_READ_zTXt_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_zTXt, 4))
          png_handle_zTXt(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_iTXt_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_iTXt, 4))
+
+#ifdef PNG_READ_iTXt_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_iTXt, 4))
          png_handle_iTXt(png_ptr, info_ptr, length);
 #endif
+
       else
          png_handle_unknown(png_ptr, info_ptr, length);
    }
 }
-#endif /* PNG_NO_SEQUENTIAL_READ_SUPPORTED */
+#endif /* PNG_SEQUENTIAL_READ_SUPPORTED */
 
-/* optional call to update the users info_ptr structure */
+/* Optional call to update the users info_ptr structure */
 void PNGAPI
 png_read_update_info(png_structp png_ptr, png_infop info_ptr)
 {
-   png_debug(1, "in png_read_update_info\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_read_update_info");
+
+   if (png_ptr == NULL)
+      return;
+
    if (!(png_ptr->flags & PNG_FLAG_ROW_INIT))
       png_read_start_row(png_ptr);
+
    else
       png_warning(png_ptr,
-      "Ignoring extra png_read_update_info() call; row buffer not reallocated");
+          "Ignoring extra png_read_update_info() call;"
+          " row buffer not reallocated");
+
+#ifdef PNG_READ_TRANSFORMS_SUPPORTED
    png_read_transform_info(png_ptr, info_ptr);
+#else
+   PNG_UNUSED(info_ptr)
+#endif
 }
 
-#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
 /* Initialize palette, background, etc, after transformations
  * are set, but before any reading takes place.  This allows
  * the user to obtain a gamma-corrected palette, for example.
@@ -583,63 +454,83 @@ png_read_update_info(png_structp png_ptr, png_infop info_ptr)
 void PNGAPI
 png_start_read_image(png_structp png_ptr)
 {
-   png_debug(1, "in png_start_read_image\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_start_read_image");
+
+   if (png_ptr == NULL)
+      return;
+
    if (!(png_ptr->flags & PNG_FLAG_ROW_INIT))
       png_read_start_row(png_ptr);
+   else
+      png_warning(png_ptr,
+          "Ignoring extra png_start_read_image() call;"
+          " row buffer not reallocated");
 }
-#endif /* PNG_NO_SEQUENTIAL_READ_SUPPORTED */
+#endif /* PNG_SEQUENTIAL_READ_SUPPORTED */
 
-#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
 void PNGAPI
 png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_IDAT;
-   const int png_pass_dsp_mask[7] = {0xff, 0x0f, 0xff, 0x33, 0xff, 0x55, 0xff};
-   const int png_pass_mask[7] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff};
+#ifdef PNG_READ_INTERLACING_SUPPORTED
+   PNG_CONST int png_pass_dsp_mask[7] = {0xff, 0x0f, 0xff, 0x33, 0xff, 0x55,
+       0xff};
+   PNG_CONST int png_pass_mask[7] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff};
 #endif
    int ret;
-   if(png_ptr == NULL) return;
-   png_debug2(1, "in png_read_row (row %lu, pass %d)\n",
-      png_ptr->row_number, png_ptr->pass);
+
+   if (png_ptr == NULL)
+      return;
+
+   png_debug2(1, "in png_read_row (row %lu, pass %d)",
+       (unsigned long)png_ptr->row_number, png_ptr->pass);
+
    if (!(png_ptr->flags & PNG_FLAG_ROW_INIT))
       png_read_start_row(png_ptr);
+
    if (png_ptr->row_number == 0 && png_ptr->pass == 0)
    {
-   /* check for transforms that have been set but were defined out */
+   /* Check for transforms that have been set but were defined out */
 #if defined(PNG_WRITE_INVERT_SUPPORTED) && !defined(PNG_READ_INVERT_SUPPORTED)
    if (png_ptr->transformations & PNG_INVERT_MONO)
-      png_warning(png_ptr, "PNG_READ_INVERT_SUPPORTED is not defined.");
+      png_warning(png_ptr, "PNG_READ_INVERT_SUPPORTED is not defined");
 #endif
+
 #if defined(PNG_WRITE_FILLER_SUPPORTED) && !defined(PNG_READ_FILLER_SUPPORTED)
    if (png_ptr->transformations & PNG_FILLER)
-      png_warning(png_ptr, "PNG_READ_FILLER_SUPPORTED is not defined.");
+      png_warning(png_ptr, "PNG_READ_FILLER_SUPPORTED is not defined");
 #endif
-#if defined(PNG_WRITE_PACKSWAP_SUPPORTED) && !defined(PNG_READ_PACKSWAP_SUPPORTED)
+
+#if defined(PNG_WRITE_PACKSWAP_SUPPORTED) && \
+    !defined(PNG_READ_PACKSWAP_SUPPORTED)
    if (png_ptr->transformations & PNG_PACKSWAP)
-      png_warning(png_ptr, "PNG_READ_PACKSWAP_SUPPORTED is not defined.");
+      png_warning(png_ptr, "PNG_READ_PACKSWAP_SUPPORTED is not defined");
 #endif
+
 #if defined(PNG_WRITE_PACK_SUPPORTED) && !defined(PNG_READ_PACK_SUPPORTED)
    if (png_ptr->transformations & PNG_PACK)
-      png_warning(png_ptr, "PNG_READ_PACK_SUPPORTED is not defined.");
+      png_warning(png_ptr, "PNG_READ_PACK_SUPPORTED is not defined");
 #endif
+
 #if defined(PNG_WRITE_SHIFT_SUPPORTED) && !defined(PNG_READ_SHIFT_SUPPORTED)
    if (png_ptr->transformations & PNG_SHIFT)
-      png_warning(png_ptr, "PNG_READ_SHIFT_SUPPORTED is not defined.");
+      png_warning(png_ptr, "PNG_READ_SHIFT_SUPPORTED is not defined");
 #endif
+
 #if defined(PNG_WRITE_BGR_SUPPORTED) && !defined(PNG_READ_BGR_SUPPORTED)
    if (png_ptr->transformations & PNG_BGR)
-      png_warning(png_ptr, "PNG_READ_BGR_SUPPORTED is not defined.");
+      png_warning(png_ptr, "PNG_READ_BGR_SUPPORTED is not defined");
 #endif
+
 #if defined(PNG_WRITE_SWAP_SUPPORTED) && !defined(PNG_READ_SWAP_SUPPORTED)
    if (png_ptr->transformations & PNG_SWAP_BYTES)
-      png_warning(png_ptr, "PNG_READ_SWAP_SUPPORTED is not defined.");
+      png_warning(png_ptr, "PNG_READ_SWAP_SUPPORTED is not defined");
 #endif
    }
 
-#if defined(PNG_READ_INTERLACING_SUPPORTED)
-   /* if interlaced and we do not need a new row, combine row and return */
+#ifdef PNG_READ_INTERLACING_SUPPORTED
+   /* If interlaced and we do not need a new row, combine row and return */
    if (png_ptr->interlaced && (png_ptr->transformations & PNG_INTERLACE))
    {
       switch (png_ptr->pass)
@@ -654,42 +545,50 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
                return;
             }
             break;
+
          case 1:
             if ((png_ptr->row_number & 0x07) || png_ptr->width < 5)
             {
                if (dsp_row != NULL)
                   png_combine_row(png_ptr, dsp_row,
-                     png_pass_dsp_mask[png_ptr->pass]);
+                      png_pass_dsp_mask[png_ptr->pass]);
+
                png_read_finish_row(png_ptr);
                return;
             }
             break;
+
          case 2:
             if ((png_ptr->row_number & 0x07) != 4)
             {
                if (dsp_row != NULL && (png_ptr->row_number & 4))
                   png_combine_row(png_ptr, dsp_row,
-                     png_pass_dsp_mask[png_ptr->pass]);
+                      png_pass_dsp_mask[png_ptr->pass]);
+
                png_read_finish_row(png_ptr);
                return;
             }
             break;
+
          case 3:
             if ((png_ptr->row_number & 3) || png_ptr->width < 3)
             {
                if (dsp_row != NULL)
                   png_combine_row(png_ptr, dsp_row,
-                     png_pass_dsp_mask[png_ptr->pass]);
+                      png_pass_dsp_mask[png_ptr->pass]);
+
                png_read_finish_row(png_ptr);
                return;
             }
             break;
+
          case 4:
             if ((png_ptr->row_number & 3) != 2)
             {
                if (dsp_row != NULL && (png_ptr->row_number & 2))
                   png_combine_row(png_ptr, dsp_row,
-                     png_pass_dsp_mask[png_ptr->pass]);
+                      png_pass_dsp_mask[png_ptr->pass]);
+
                png_read_finish_row(png_ptr);
                return;
             }
@@ -699,11 +598,14 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
             {
                if (dsp_row != NULL)
                   png_combine_row(png_ptr, dsp_row,
-                     png_pass_dsp_mask[png_ptr->pass]);
+                      png_pass_dsp_mask[png_ptr->pass]);
+
                png_read_finish_row(png_ptr);
                return;
             }
             break;
+
+         default:
          case 6:
             if (!(png_ptr->row_number & 1))
             {
@@ -719,22 +621,19 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
       png_error(png_ptr, "Invalid attempt to read row data");
 
    png_ptr->zstream.next_out = png_ptr->row_buf;
-   png_ptr->zstream.avail_out = (uInt)png_ptr->irowbytes;
+   png_ptr->zstream.avail_out =
+       (uInt)(PNG_ROWBYTES(png_ptr->pixel_depth,
+       png_ptr->iwidth) + 1);
+
    do
    {
       if (!(png_ptr->zstream.avail_in))
       {
          while (!png_ptr->idat_size)
          {
-            png_byte chunk_length[4];
-
             png_crc_finish(png_ptr, 0);
 
-            png_read_data(png_ptr, chunk_length, 4);
-            png_ptr->idat_size = png_get_uint_31(png_ptr,chunk_length);
-
-            png_reset_crc(png_ptr);
-            png_crc_read(png_ptr, png_ptr->chunk_name, 4);
+            png_ptr->idat_size = png_read_chunk_header(png_ptr);
             if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
                png_error(png_ptr, "Not enough image data");
          }
@@ -743,22 +642,25 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
          if (png_ptr->zbuf_size > png_ptr->idat_size)
             png_ptr->zstream.avail_in = (uInt)png_ptr->idat_size;
          png_crc_read(png_ptr, png_ptr->zbuf,
-            (png_size_t)png_ptr->zstream.avail_in);
+             (png_size_t)png_ptr->zstream.avail_in);
          png_ptr->idat_size -= png_ptr->zstream.avail_in;
       }
+
       ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH);
+
       if (ret == Z_STREAM_END)
       {
          if (png_ptr->zstream.avail_out || png_ptr->zstream.avail_in ||
             png_ptr->idat_size)
-            png_error(png_ptr, "Extra compressed data");
+            png_benign_error(png_ptr, "Extra compressed data");
          png_ptr->mode |= PNG_AFTER_IDAT;
          png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
          break;
       }
+
       if (ret != Z_OK)
          png_error(png_ptr, png_ptr->zstream.msg ? png_ptr->zstream.msg :
-                   "Decompression error");
+             "Decompression error");
 
    } while (png_ptr->zstream.avail_out);
 
@@ -770,17 +672,16 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
    png_ptr->row_info.rowbytes = PNG_ROWBYTES(png_ptr->row_info.pixel_depth,
        png_ptr->row_info.width);
 
-   if(png_ptr->row_buf[0])
+   if (png_ptr->row_buf[0])
    png_read_filter_row(png_ptr, &(png_ptr->row_info),
-      png_ptr->row_buf + 1, png_ptr->prev_row + 1,
-      (int)(png_ptr->row_buf[0]));
+       png_ptr->row_buf + 1, png_ptr->prev_row + 1,
+       (int)(png_ptr->row_buf[0]));
 
-   png_memcpy_check(png_ptr, png_ptr->prev_row, png_ptr->row_buf,
-      png_ptr->rowbytes + 1);
+   png_memcpy(png_ptr->prev_row, png_ptr->row_buf, png_ptr->rowbytes + 1);
 
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
-   if((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
-      (png_ptr->filter_type == PNG_INTRAPIXEL_DIFFERENCING))
+#ifdef PNG_MNG_FEATURES_SUPPORTED
+   if ((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
+       (png_ptr->filter_type == PNG_INTRAPIXEL_DIFFERENCING))
    {
       /* Intrapixel differencing */
       png_do_read_intrapixel(&(png_ptr->row_info), png_ptr->row_buf + 1);
@@ -788,33 +689,36 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
 #endif
 
 
-   if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA))
+#ifdef PNG_READ_TRANSFORMS_SUPPORTED
+   if (png_ptr->transformations)
       png_do_read_transformations(png_ptr);
+#endif
 
-#if defined(PNG_READ_INTERLACING_SUPPORTED)
-   /* blow up interlaced rows to full size */
+#ifdef PNG_READ_INTERLACING_SUPPORTED
+   /* Blow up interlaced rows to full size */
    if (png_ptr->interlaced &&
       (png_ptr->transformations & PNG_INTERLACE))
    {
       if (png_ptr->pass < 6)
-/*       old interface (pre-1.0.9):
-         png_do_read_interlace(&(png_ptr->row_info),
-            png_ptr->row_buf + 1, png_ptr->pass, png_ptr->transformations);
- */
+         /* Old interface (pre-1.0.9):
+          * png_do_read_interlace(&(png_ptr->row_info),
+          *    png_ptr->row_buf + 1, png_ptr->pass, png_ptr->transformations);
+          */
          png_do_read_interlace(png_ptr);
 
       if (dsp_row != NULL)
-         png_combine_row(png_ptr, dsp_row,
-            png_pass_dsp_mask[png_ptr->pass]);
+         png_combine_row(png_ptr, dsp_row, png_pass_dsp_mask[png_ptr->pass]);
+
       if (row != NULL)
-         png_combine_row(png_ptr, row,
-            png_pass_mask[png_ptr->pass]);
+         png_combine_row(png_ptr, row, png_pass_mask[png_ptr->pass]);
    }
+
    else
 #endif
    {
       if (row != NULL)
          png_combine_row(png_ptr, row, 0xff);
+
       if (dsp_row != NULL)
          png_combine_row(png_ptr, dsp_row, 0xff);
    }
@@ -823,9 +727,9 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
    if (png_ptr->read_row_fn != NULL)
       (*(png_ptr->read_row_fn))(png_ptr, png_ptr->row_number, png_ptr->pass);
 }
-#endif /* PNG_NO_SEQUENTIAL_READ_SUPPORTED */
+#endif /* PNG_SEQUENTIAL_READ_SUPPORTED */
 
-#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
 /* Read one or more rows of image data.  If the image is interlaced,
  * and png_set_interlace_handling() has been called, the rows need to
  * contain the contents of the rows from the previous pass.  If the
@@ -852,14 +756,17 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
 
 void PNGAPI
 png_read_rows(png_structp png_ptr, png_bytepp row,
-   png_bytepp display_row, png_uint_32 num_rows)
+    png_bytepp display_row, png_uint_32 num_rows)
 {
    png_uint_32 i;
    png_bytepp rp;
    png_bytepp dp;
 
-   png_debug(1, "in png_read_rows\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_read_rows");
+
+   if (png_ptr == NULL)
+      return;
+
    rp = row;
    dp = display_row;
    if (rp != NULL && dp != NULL)
@@ -870,24 +777,26 @@ png_read_rows(png_structp png_ptr, png_bytepp row,
 
          png_read_row(png_ptr, rptr, dptr);
       }
-   else if(rp != NULL)
+
+   else if (rp != NULL)
       for (i = 0; i < num_rows; i++)
       {
          png_bytep rptr = *rp;
-         png_read_row(png_ptr, rptr, png_bytep_NULL);
+         png_read_row(png_ptr, rptr, NULL);
          rp++;
       }
-   else if(dp != NULL)
+
+   else if (dp != NULL)
       for (i = 0; i < num_rows; i++)
       {
          png_bytep dptr = *dp;
-         png_read_row(png_ptr, png_bytep_NULL, dptr);
+         png_read_row(png_ptr, NULL, dptr);
          dp++;
       }
 }
-#endif /* PNG_NO_SEQUENTIAL_READ_SUPPORTED */
+#endif /* PNG_SEQUENTIAL_READ_SUPPORTED */
 
-#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
 /* Read the entire image.  If the image has an alpha channel or a tRNS
  * chunk, and you have called png_handle_alpha()[*], you will need to
  * initialize the image to the current image that PNG will be overlaying.
@@ -903,39 +812,64 @@ png_read_rows(png_structp png_ptr, png_bytepp row,
 void PNGAPI
 png_read_image(png_structp png_ptr, png_bytepp image)
 {
-   png_uint_32 i,image_height;
+   png_uint_32 i, image_height;
    int pass, j;
    png_bytepp rp;
 
-   png_debug(1, "in png_read_image\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_read_image");
+
+   if (png_ptr == NULL)
+      return;
 
 #ifdef PNG_READ_INTERLACING_SUPPORTED
-   pass = png_set_interlace_handling(png_ptr);
+   if (!(png_ptr->flags & PNG_FLAG_ROW_INIT))
+   {
+      pass = png_set_interlace_handling(png_ptr);
+      /* And make sure transforms are initialized. */
+      png_start_read_image(png_ptr);
+   }
+   else
+   {
+      if (png_ptr->interlaced && !(png_ptr->transformations & PNG_INTERLACE))
+      {
+         /* Caller called png_start_read_image or png_read_update_info without
+          * first turning on the PNG_INTERLACE transform.  We can fix this here,
+          * but the caller should do it!
+          */
+         png_warning(png_ptr, "Interlace handling should be turned on when "
+            "using png_read_image");
+         /* Make sure this is set correctly */
+         png_ptr->num_rows = png_ptr->height;
+      }
+
+      /* Obtain the pass number, which also turns on the PNG_INTERLACE flag in
+       * the above error case.
+       */
+      pass = png_set_interlace_handling(png_ptr);
+   }
 #else
    if (png_ptr->interlaced)
       png_error(png_ptr,
-        "Cannot read interlaced image -- interlace handler disabled.");
+          "Cannot read interlaced image -- interlace handler disabled");
+
    pass = 1;
 #endif
 
-
    image_height=png_ptr->height;
-   png_ptr->num_rows = image_height; /* Make sure this is set correctly */
 
    for (j = 0; j < pass; j++)
    {
       rp = image;
       for (i = 0; i < image_height; i++)
       {
-         png_read_row(png_ptr, *rp, png_bytep_NULL);
+         png_read_row(png_ptr, *rp, NULL);
          rp++;
       }
    }
 }
-#endif /* PNG_NO_SEQUENTIAL_READ_SUPPORTED */
+#endif /* PNG_SEQUENTIAL_READ_SUPPORTED */
 
-#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
 /* Read the end of the PNG file.  Will not read past the end of the
  * file, will verify the end is accurate, and will read any comments
  * or time information at the end of the file, if info is not NULL.
@@ -943,198 +877,220 @@ png_read_image(png_structp png_ptr, png_bytepp image)
 void PNGAPI
 png_read_end(png_structp png_ptr, png_infop info_ptr)
 {
-   png_byte chunk_length[4];
-   png_uint_32 length;
+   png_debug(1, "in png_read_end");
+
+   if (png_ptr == NULL)
+      return;
 
-   png_debug(1, "in png_read_end\n");
-   if(png_ptr == NULL) return;
    png_crc_finish(png_ptr, 0); /* Finish off CRC from last IDAT chunk */
 
    do
    {
-#ifdef PNG_USE_LOCAL_ARRAYS
       PNG_IHDR;
       PNG_IDAT;
       PNG_IEND;
       PNG_PLTE;
-#if defined(PNG_READ_bKGD_SUPPORTED)
+#ifdef PNG_READ_bKGD_SUPPORTED
       PNG_bKGD;
 #endif
-#if defined(PNG_READ_cHRM_SUPPORTED)
+#ifdef PNG_READ_cHRM_SUPPORTED
       PNG_cHRM;
 #endif
-#if defined(PNG_READ_gAMA_SUPPORTED)
+#ifdef PNG_READ_gAMA_SUPPORTED
       PNG_gAMA;
 #endif
-#if defined(PNG_READ_hIST_SUPPORTED)
+#ifdef PNG_READ_hIST_SUPPORTED
       PNG_hIST;
 #endif
-#if defined(PNG_READ_iCCP_SUPPORTED)
+#ifdef PNG_READ_iCCP_SUPPORTED
       PNG_iCCP;
 #endif
-#if defined(PNG_READ_iTXt_SUPPORTED)
+#ifdef PNG_READ_iTXt_SUPPORTED
       PNG_iTXt;
 #endif
-#if defined(PNG_READ_oFFs_SUPPORTED)
+#ifdef PNG_READ_oFFs_SUPPORTED
       PNG_oFFs;
 #endif
-#if defined(PNG_READ_pCAL_SUPPORTED)
+#ifdef PNG_READ_pCAL_SUPPORTED
       PNG_pCAL;
 #endif
-#if defined(PNG_READ_pHYs_SUPPORTED)
+#ifdef PNG_READ_pHYs_SUPPORTED
       PNG_pHYs;
 #endif
-#if defined(PNG_READ_sBIT_SUPPORTED)
+#ifdef PNG_READ_sBIT_SUPPORTED
       PNG_sBIT;
 #endif
-#if defined(PNG_READ_sCAL_SUPPORTED)
+#ifdef PNG_READ_sCAL_SUPPORTED
       PNG_sCAL;
 #endif
-#if defined(PNG_READ_sPLT_SUPPORTED)
+#ifdef PNG_READ_sPLT_SUPPORTED
       PNG_sPLT;
 #endif
-#if defined(PNG_READ_sRGB_SUPPORTED)
+#ifdef PNG_READ_sRGB_SUPPORTED
       PNG_sRGB;
 #endif
-#if defined(PNG_READ_tEXt_SUPPORTED)
+#ifdef PNG_READ_tEXt_SUPPORTED
       PNG_tEXt;
 #endif
-#if defined(PNG_READ_tIME_SUPPORTED)
+#ifdef PNG_READ_tIME_SUPPORTED
       PNG_tIME;
 #endif
-#if defined(PNG_READ_tRNS_SUPPORTED)
+#ifdef PNG_READ_tRNS_SUPPORTED
       PNG_tRNS;
 #endif
-#if defined(PNG_READ_zTXt_SUPPORTED)
+#ifdef PNG_READ_zTXt_SUPPORTED
       PNG_zTXt;
 #endif
-#endif /* PNG_USE_LOCAL_ARRAYS */
-
-      png_read_data(png_ptr, chunk_length, 4);
-      length = png_get_uint_31(png_ptr,chunk_length);
-
-      png_reset_crc(png_ptr);
-      png_crc_read(png_ptr, png_ptr->chunk_name, 4);
-
-      png_debug1(0, "Reading %s chunk.\n", png_ptr->chunk_name);
+      png_uint_32 length = png_read_chunk_header(png_ptr);
+      PNG_CONST png_bytep chunk_name = png_ptr->chunk_name;
 
-      if (!png_memcmp(png_ptr->chunk_name, png_IHDR, 4))
+      if (!png_memcmp(chunk_name, png_IHDR, 4))
          png_handle_IHDR(png_ptr, info_ptr, length);
-      else if (!png_memcmp(png_ptr->chunk_name, png_IEND, 4))
+
+      else if (!png_memcmp(chunk_name, png_IEND, 4))
          png_handle_IEND(png_ptr, info_ptr, length);
+
 #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
-      else if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name))
+      else if (png_handle_as_unknown(png_ptr, chunk_name))
       {
-         if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
+         if (!png_memcmp(chunk_name, png_IDAT, 4))
          {
             if ((length > 0) || (png_ptr->mode & PNG_HAVE_CHUNK_AFTER_IDAT))
-               png_error(png_ptr, "Too many IDAT's found");
+               png_benign_error(png_ptr, "Too many IDATs found");
          }
          png_handle_unknown(png_ptr, info_ptr, length);
-         if (!png_memcmp(png_ptr->chunk_name, png_PLTE, 4))
+         if (!png_memcmp(chunk_name, png_PLTE, 4))
             png_ptr->mode |= PNG_HAVE_PLTE;
       }
 #endif
-      else if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
+
+      else if (!png_memcmp(chunk_name, png_IDAT, 4))
       {
          /* Zero length IDATs are legal after the last IDAT has been
           * read, but not after other chunks have been read.
           */
          if ((length > 0) || (png_ptr->mode & PNG_HAVE_CHUNK_AFTER_IDAT))
-            png_error(png_ptr, "Too many IDAT's found");
+            png_benign_error(png_ptr, "Too many IDATs found");
+
          png_crc_finish(png_ptr, length);
       }
-      else if (!png_memcmp(png_ptr->chunk_name, png_PLTE, 4))
+      else if (!png_memcmp(chunk_name, png_PLTE, 4))
          png_handle_PLTE(png_ptr, info_ptr, length);
-#if defined(PNG_READ_bKGD_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_bKGD, 4))
+
+#ifdef PNG_READ_bKGD_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_bKGD, 4))
          png_handle_bKGD(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_cHRM_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_cHRM, 4))
+
+#ifdef PNG_READ_cHRM_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_cHRM, 4))
          png_handle_cHRM(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_gAMA_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_gAMA, 4))
+
+#ifdef PNG_READ_gAMA_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_gAMA, 4))
          png_handle_gAMA(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_hIST_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_hIST, 4))
+
+#ifdef PNG_READ_hIST_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_hIST, 4))
          png_handle_hIST(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_oFFs_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_oFFs, 4))
+
+#ifdef PNG_READ_oFFs_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_oFFs, 4))
          png_handle_oFFs(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_pCAL_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_pCAL, 4))
+
+#ifdef PNG_READ_pCAL_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_pCAL, 4))
          png_handle_pCAL(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_sCAL_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_sCAL, 4))
+
+#ifdef PNG_READ_sCAL_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_sCAL, 4))
          png_handle_sCAL(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_pHYs_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_pHYs, 4))
+
+#ifdef PNG_READ_pHYs_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_pHYs, 4))
          png_handle_pHYs(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_sBIT_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_sBIT, 4))
+
+#ifdef PNG_READ_sBIT_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_sBIT, 4))
          png_handle_sBIT(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_sRGB_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_sRGB, 4))
+
+#ifdef PNG_READ_sRGB_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_sRGB, 4))
          png_handle_sRGB(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_iCCP_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_iCCP, 4))
+
+#ifdef PNG_READ_iCCP_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_iCCP, 4))
          png_handle_iCCP(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_sPLT_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_sPLT, 4))
+
+#ifdef PNG_READ_sPLT_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_sPLT, 4))
          png_handle_sPLT(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_tEXt_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_tEXt, 4))
+
+#ifdef PNG_READ_tEXt_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_tEXt, 4))
          png_handle_tEXt(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_tIME_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_tIME, 4))
+
+#ifdef PNG_READ_tIME_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_tIME, 4))
          png_handle_tIME(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_tRNS_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_tRNS, 4))
+
+#ifdef PNG_READ_tRNS_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_tRNS, 4))
          png_handle_tRNS(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_zTXt_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_zTXt, 4))
+
+#ifdef PNG_READ_zTXt_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_zTXt, 4))
          png_handle_zTXt(png_ptr, info_ptr, length);
 #endif
-#if defined(PNG_READ_iTXt_SUPPORTED)
-      else if (!png_memcmp(png_ptr->chunk_name, png_iTXt, 4))
+
+#ifdef PNG_READ_iTXt_SUPPORTED
+      else if (!png_memcmp(chunk_name, png_iTXt, 4))
          png_handle_iTXt(png_ptr, info_ptr, length);
 #endif
+
       else
          png_handle_unknown(png_ptr, info_ptr, length);
    } while (!(png_ptr->mode & PNG_HAVE_IEND));
 }
-#endif /* PNG_NO_SEQUENTIAL_READ_SUPPORTED */
+#endif /* PNG_SEQUENTIAL_READ_SUPPORTED */
 
-/* free all memory used by the read */
+/* Free all memory used by the read */
 void PNGAPI
 png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr,
-   png_infopp end_info_ptr_ptr)
+    png_infopp end_info_ptr_ptr)
 {
    png_structp png_ptr = NULL;
    png_infop info_ptr = NULL, end_info_ptr = NULL;
 #ifdef PNG_USER_MEM_SUPPORTED
-   png_free_ptr free_fn;
-   png_voidp mem_ptr;
+   png_free_ptr free_fn = NULL;
+   png_voidp mem_ptr = NULL;
 #endif
 
-   png_debug(1, "in png_destroy_read_struct\n");
+   png_debug(1, "in png_destroy_read_struct");
+
    if (png_ptr_ptr != NULL)
       png_ptr = *png_ptr_ptr;
+   if (png_ptr == NULL)
+      return;
+
+#ifdef PNG_USER_MEM_SUPPORTED
+   free_fn = png_ptr->free_fn;
+   mem_ptr = png_ptr->mem_ptr;
+#endif
 
    if (info_ptr_ptr != NULL)
       info_ptr = *info_ptr_ptr;
@@ -1142,16 +1098,11 @@ png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr,
    if (end_info_ptr_ptr != NULL)
       end_info_ptr = *end_info_ptr_ptr;
 
-#ifdef PNG_USER_MEM_SUPPORTED
-   free_fn = png_ptr->free_fn;
-   mem_ptr = png_ptr->mem_ptr;
-#endif
-
    png_read_destroy(png_ptr, info_ptr, end_info_ptr);
 
    if (info_ptr != NULL)
    {
-#if defined(PNG_TEXT_SUPPORTED)
+#ifdef PNG_TEXT_SUPPORTED
       png_free_data(png_ptr, info_ptr, PNG_FREE_TEXT, -1);
 #endif
 
@@ -1166,12 +1117,12 @@ png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr,
 
    if (end_info_ptr != NULL)
    {
-#if defined(PNG_READ_TEXT_SUPPORTED)
+#ifdef PNG_READ_TEXT_SUPPORTED
       png_free_data(png_ptr, end_info_ptr, PNG_FREE_TEXT, -1);
 #endif
 #ifdef PNG_USER_MEM_SUPPORTED
       png_destroy_struct_2((png_voidp)end_info_ptr, (png_free_ptr)free_fn,
-         (png_voidp)mem_ptr);
+          (png_voidp)mem_ptr);
 #else
       png_destroy_struct((png_voidp)end_info_ptr);
 #endif
@@ -1190,21 +1141,25 @@ png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr,
    }
 }
 
-/* free all memory used by the read (old method) */
+/* Free all memory used by the read (old method) */
 void /* PRIVATE */
-png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr)
+png_read_destroy(png_structp png_ptr, png_infop info_ptr,
+    png_infop end_info_ptr)
 {
 #ifdef PNG_SETJMP_SUPPORTED
    jmp_buf tmp_jmp;
 #endif
    png_error_ptr error_fn;
+#ifdef PNG_WARNINGS_SUPPORTED
    png_error_ptr warning_fn;
+#endif
    png_voidp error_ptr;
 #ifdef PNG_USER_MEM_SUPPORTED
    png_free_ptr free_fn;
 #endif
 
-   png_debug(1, "in png_read_destroy\n");
+   png_debug(1, "in png_read_destroy");
+
    if (info_ptr != NULL)
       png_info_destroy(png_ptr, info_ptr);
 
@@ -1214,50 +1169,40 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr
    png_free(png_ptr, png_ptr->zbuf);
    png_free(png_ptr, png_ptr->big_row_buf);
    png_free(png_ptr, png_ptr->prev_row);
-#if defined(PNG_READ_DITHER_SUPPORTED)
+   png_free(png_ptr, png_ptr->chunkdata);
+
+#ifdef PNG_READ_QUANTIZE_SUPPORTED
    png_free(png_ptr, png_ptr->palette_lookup);
-   png_free(png_ptr, png_ptr->dither_index);
+   png_free(png_ptr, png_ptr->quantize_index);
 #endif
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+
+#ifdef PNG_READ_GAMMA_SUPPORTED
    png_free(png_ptr, png_ptr->gamma_table);
 #endif
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
+
+#ifdef PNG_READ_BACKGROUND_SUPPORTED
    png_free(png_ptr, png_ptr->gamma_from_1);
    png_free(png_ptr, png_ptr->gamma_to_1);
 #endif
-#ifdef PNG_FREE_ME_SUPPORTED
+
    if (png_ptr->free_me & PNG_FREE_PLTE)
       png_zfree(png_ptr, png_ptr->palette);
    png_ptr->free_me &= ~PNG_FREE_PLTE;
-#else
-   if (png_ptr->flags & PNG_FLAG_FREE_PLTE)
-      png_zfree(png_ptr, png_ptr->palette);
-   png_ptr->flags &= ~PNG_FLAG_FREE_PLTE;
-#endif
+
 #if defined(PNG_tRNS_SUPPORTED) || \
     defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
-#ifdef PNG_FREE_ME_SUPPORTED
    if (png_ptr->free_me & PNG_FREE_TRNS)
-      png_free(png_ptr, png_ptr->trans);
+      png_free(png_ptr, png_ptr->trans_alpha);
    png_ptr->free_me &= ~PNG_FREE_TRNS;
-#else
-   if (png_ptr->flags & PNG_FLAG_FREE_TRNS)
-      png_free(png_ptr, png_ptr->trans);
-   png_ptr->flags &= ~PNG_FLAG_FREE_TRNS;
 #endif
-#endif
-#if defined(PNG_READ_hIST_SUPPORTED)
-#ifdef PNG_FREE_ME_SUPPORTED
+
+#ifdef PNG_READ_hIST_SUPPORTED
    if (png_ptr->free_me & PNG_FREE_HIST)
       png_free(png_ptr, png_ptr->hist);
    png_ptr->free_me &= ~PNG_FREE_HIST;
-#else
-   if (png_ptr->flags & PNG_FLAG_FREE_HIST)
-      png_free(png_ptr, png_ptr->hist);
-   png_ptr->flags &= ~PNG_FLAG_FREE_HIST;
 #endif
-#endif
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+
+#ifdef PNG_READ_GAMMA_SUPPORTED
    if (png_ptr->gamma_16_table != NULL)
    {
       int i;
@@ -1268,7 +1213,8 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr
       }
    png_free(png_ptr, png_ptr->gamma_16_table);
    }
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
+
+#ifdef PNG_READ_BACKGROUND_SUPPORTED
    if (png_ptr->gamma_16_from_1 != NULL)
    {
       int i;
@@ -1291,11 +1237,9 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr
    }
 #endif
 #endif
-#if defined(PNG_TIME_RFC1123_SUPPORTED)
-   png_free(png_ptr, png_ptr->time_buffer);
-#endif
 
    inflateEnd(&png_ptr->zstream);
+
 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
    png_free(png_ptr, png_ptr->save_buffer);
 #endif
@@ -1310,27 +1254,31 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr
     * being used again.
     */
 #ifdef PNG_SETJMP_SUPPORTED
-   png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof (jmp_buf));
+   png_memcpy(tmp_jmp, png_ptr->longjmp_buffer, png_sizeof(jmp_buf));
 #endif
 
    error_fn = png_ptr->error_fn;
+#ifdef PNG_WARNINGS_SUPPORTED
    warning_fn = png_ptr->warning_fn;
+#endif
    error_ptr = png_ptr->error_ptr;
 #ifdef PNG_USER_MEM_SUPPORTED
    free_fn = png_ptr->free_fn;
 #endif
 
-   png_memset(png_ptr, 0, png_sizeof (png_struct));
+   png_memset(png_ptr, 0, png_sizeof(png_struct));
 
    png_ptr->error_fn = error_fn;
+#ifdef PNG_WARNINGS_SUPPORTED
    png_ptr->warning_fn = warning_fn;
+#endif
    png_ptr->error_ptr = error_ptr;
 #ifdef PNG_USER_MEM_SUPPORTED
    png_ptr->free_fn = free_fn;
 #endif
 
 #ifdef PNG_SETJMP_SUPPORTED
-   png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof (jmp_buf));
+   png_memcpy(png_ptr->longjmp_buffer, tmp_jmp, png_sizeof(jmp_buf));
 #endif
 
 }
@@ -1338,13 +1286,15 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr
 void PNGAPI
 png_set_read_status_fn(png_structp png_ptr, png_read_status_ptr read_row_fn)
 {
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->read_row_fn = read_row_fn;
 }
 
 
-#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
-#if defined(PNG_INFO_IMAGE_SUPPORTED)
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
+#ifdef PNG_INFO_IMAGE_SUPPORTED
 void PNGAPI
 png_read_png(png_structp png_ptr, png_infop info_ptr,
                            int transforms,
@@ -1352,36 +1302,45 @@ png_read_png(png_structp png_ptr, png_infop info_ptr,
 {
    int row;
 
-   if(png_ptr == NULL) return;
-#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED)
-   /* invert the alpha channel from opacity to transparency
-    */
-   if (transforms & PNG_TRANSFORM_INVERT_ALPHA)
-       png_set_invert_alpha(png_ptr);
-#endif
+   if (png_ptr == NULL || info_ptr == NULL)
+      return;
 
    /* png_read_info() gives us all of the information from the
     * PNG file before the first IDAT (image data chunk).
     */
    png_read_info(png_ptr, info_ptr);
    if (info_ptr->height > PNG_UINT_32_MAX/png_sizeof(png_bytep))
-      png_error(png_ptr,"Image is too high to process with png_read_png()");
+      png_error(png_ptr, "Image is too high to process with png_read_png()");
 
    /* -------------- image transformations start here ------------------- */
 
-#if defined(PNG_READ_16_TO_8_SUPPORTED)
-   /* tell libpng to strip 16 bit/color files down to 8 bits per color
+#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
+   /* Tell libpng to strip 16-bit/color files down to 8 bits per color.
+    */
+   if (transforms & PNG_TRANSFORM_SCALE_16)
+   {
+     /* Added at libpng-1.5.4. "strip_16" produces the same result that it
+      * did in earlier versions, while "scale_16" is now more accurate.
+      */
+      png_set_scale_16(png_ptr);
+   }
+#endif
+
+#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
+   /* If both SCALE and STRIP are required pngrtran will effectively cancel the
+    * latter by doing SCALE first.  This is ok and allows apps not to check for
+    * which is supported to get the right answer.
     */
    if (transforms & PNG_TRANSFORM_STRIP_16)
-       png_set_strip_16(png_ptr);
+      png_set_strip_16(png_ptr);
 #endif
 
-#if defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
+#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
    /* Strip alpha bytes from the input data without combining with
     * the background (not recommended).
     */
    if (transforms & PNG_TRANSFORM_STRIP_ALPHA)
-       png_set_strip_alpha(png_ptr);
+      png_set_strip_alpha(png_ptr);
 #endif
 
 #if defined(PNG_READ_PACK_SUPPORTED) && !defined(PNG_READ_EXPAND_SUPPORTED)
@@ -1389,41 +1348,41 @@ png_read_png(png_structp png_ptr, png_infop info_ptr,
     * byte into separate bytes (useful for paletted and grayscale images).
     */
    if (transforms & PNG_TRANSFORM_PACKING)
-       png_set_packing(png_ptr);
+      png_set_packing(png_ptr);
 #endif
 
-#if defined(PNG_READ_PACKSWAP_SUPPORTED)
+#ifdef PNG_READ_PACKSWAP_SUPPORTED
    /* Change the order of packed pixels to least significant bit first
     * (not useful if you are using png_set_packing).
     */
    if (transforms & PNG_TRANSFORM_PACKSWAP)
-       png_set_packswap(png_ptr);
+      png_set_packswap(png_ptr);
 #endif
 
-#if defined(PNG_READ_EXPAND_SUPPORTED)
+#ifdef PNG_READ_EXPAND_SUPPORTED
    /* Expand paletted colors into true RGB triplets
     * Expand grayscale images to full 8 bits from 1, 2, or 4 bits/pixel
     * Expand paletted or RGB images with transparency to full alpha
     * channels so the data will be available as RGBA quartets.
     */
    if (transforms & PNG_TRANSFORM_EXPAND)
-       if ((png_ptr->bit_depth < 8) ||
-           (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ||
-           (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)))
+      if ((png_ptr->bit_depth < 8) ||
+          (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ||
+          (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)))
          png_set_expand(png_ptr);
 #endif
 
-   /* We don't handle background color or gamma transformation or dithering.
+   /* We don't handle background color or gamma transformation or quantizing.
     */
 
-#if defined(PNG_READ_INVERT_SUPPORTED)
-   /* invert monochrome files to have 0 as white and 1 as black
+#ifdef PNG_READ_INVERT_SUPPORTED
+   /* Invert monochrome files to have 0 as white and 1 as black
     */
    if (transforms & PNG_TRANSFORM_INVERT_MONO)
-       png_set_invert_mono(png_ptr);
+      png_set_invert_mono(png_ptr);
 #endif
 
-#if defined(PNG_READ_SHIFT_SUPPORTED)
+#ifdef PNG_READ_SHIFT_SUPPORTED
    /* If you want to shift the pixel values from the range [0,255] or
     * [0,65535] to the original [0,7] or [0,31], or whatever range the
     * colors were originally in:
@@ -1438,29 +1397,51 @@ png_read_png(png_structp png_ptr, png_infop info_ptr,
    }
 #endif
 
-#if defined(PNG_READ_BGR_SUPPORTED)
-   /* flip the RGB pixels to BGR (or RGBA to BGRA)
-    */
+#ifdef PNG_READ_BGR_SUPPORTED
+   /* Flip the RGB pixels to BGR (or RGBA to BGRA) */
    if (transforms & PNG_TRANSFORM_BGR)
-       png_set_bgr(png_ptr);
+      png_set_bgr(png_ptr);
 #endif
 
-#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED)
-   /* swap the RGBA or GA data to ARGB or AG (or BGRA to ABGR)
-    */
+#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED
+   /* Swap the RGBA or GA data to ARGB or AG (or BGRA to ABGR) */
    if (transforms & PNG_TRANSFORM_SWAP_ALPHA)
-       png_set_swap_alpha(png_ptr);
+      png_set_swap_alpha(png_ptr);
 #endif
 
-#if defined(PNG_READ_SWAP_SUPPORTED)
-   /* swap bytes of 16 bit files to least significant byte first
-    */
+#ifdef PNG_READ_SWAP_SUPPORTED
+   /* Swap bytes of 16-bit files to least significant byte first */
    if (transforms & PNG_TRANSFORM_SWAP_ENDIAN)
-       png_set_swap(png_ptr);
+      png_set_swap(png_ptr);
+#endif
+
+/* Added at libpng-1.2.41 */
+#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
+   /* Invert the alpha channel from opacity to transparency */
+   if (transforms & PNG_TRANSFORM_INVERT_ALPHA)
+      png_set_invert_alpha(png_ptr);
+#endif
+
+/* Added at libpng-1.2.41 */
+#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
+   /* Expand grayscale image to RGB */
+   if (transforms & PNG_TRANSFORM_GRAY_TO_RGB)
+      png_set_gray_to_rgb(png_ptr);
+#endif
+
+/* Added at libpng-1.5.4 */
+#ifdef PNG_READ_EXPAND_16_SUPPORTED
+   if (transforms & PNG_TRANSFORM_EXPAND_16)
+      png_set_expand_16(png_ptr);
 #endif
 
    /* We don't handle adding filler bytes */
 
+   /* We use png_read_image and rely on that for interlace handling, but we also
+    * call png_read_update_info therefore must turn on interlace handling now:
+    */
+   (void)png_set_interlace_handling(png_ptr);
+
    /* Optional call to gamma correct and add the background to the palette
     * and update info structure.  REQUIRED if you are expecting libpng to
     * update the palette for you (i.e., you selected such a transform above).
@@ -1469,33 +1450,33 @@ png_read_png(png_structp png_ptr, png_infop info_ptr,
 
    /* -------------- image transformations end here ------------------- */
 
-#ifdef PNG_FREE_ME_SUPPORTED
    png_free_data(png_ptr, info_ptr, PNG_FREE_ROWS, 0);
-#endif
-   if(info_ptr->row_pointers == NULL)
+   if (info_ptr->row_pointers == NULL)
    {
+      png_uint_32 iptr;
+
       info_ptr->row_pointers = (png_bytepp)png_malloc(png_ptr,
-         info_ptr->height * png_sizeof(png_bytep));
-#ifdef PNG_FREE_ME_SUPPORTED
+          info_ptr->height * png_sizeof(png_bytep));
+      for (iptr=0; iptr<info_ptr->height; iptr++)
+         info_ptr->row_pointers[iptr] = NULL;
+
       info_ptr->free_me |= PNG_FREE_ROWS;
-#endif
+
       for (row = 0; row < (int)info_ptr->height; row++)
-      {
          info_ptr->row_pointers[row] = (png_bytep)png_malloc(png_ptr,
             png_get_rowbytes(png_ptr, info_ptr));
-      }
    }
 
    png_read_image(png_ptr, info_ptr->row_pointers);
    info_ptr->valid |= PNG_INFO_IDAT;
 
-   /* read rest of file, and get additional chunks in info_ptr - REQUIRED */
+   /* Read rest of file, and get additional chunks in info_ptr - REQUIRED */
    png_read_end(png_ptr, info_ptr);
 
-   if(transforms == 0 || params == NULL)
-      /* quiet compiler warnings */ return;
+   PNG_UNUSED(transforms)   /* Quiet compiler warnings */
+   PNG_UNUSED(params)
 
 }
 #endif /* PNG_INFO_IMAGE_SUPPORTED */
-#endif /* PNG_NO_SEQUENTIAL_READ_SUPPORTED */
+#endif /* PNG_SEQUENTIAL_READ_SUPPORTED */
 #endif /* PNG_READ_SUPPORTED */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngrio.c b/jdk/src/share/native/sun/awt/libpng/pngrio.c
index e3e4f39..f7529ea 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngrio.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngrio.c
@@ -29,12 +29,15 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.13 November 13, 2006
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2006 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.0 [January 6, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ *
  * This file provides a location for all input.  Users who need
  * special handling are expected to write a function that has the same
  * arguments as this and performs a similar function, but that possibly
@@ -43,54 +46,53 @@
  * libpng use it at run time with png_set_read_fn(...).
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
 
-#if defined(PNG_READ_SUPPORTED)
+#ifdef PNG_READ_SUPPORTED
 
 /* Read the data from whatever input you are using.  The default routine
-   reads from a file pointer.  Note that this routine sometimes gets called
-   with very small lengths, so you should implement some kind of simple
-   buffering if you are using unbuffered reads.  This should never be asked
-   to read more then 64K on a 16 bit machine. */
+ * reads from a file pointer.  Note that this routine sometimes gets called
+ * with very small lengths, so you should implement some kind of simple
+ * buffering if you are using unbuffered reads.  This should never be asked
+ * to read more then 64K on a 16 bit machine.
+ */
 void /* PRIVATE */
 png_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
 {
-   png_debug1(4,"reading %d bytes\n", (int)length);
+   png_debug1(4, "reading %d bytes", (int)length);
+
    if (png_ptr->read_data_fn != NULL)
       (*(png_ptr->read_data_fn))(png_ptr, data, length);
+
    else
       png_error(png_ptr, "Call to NULL read function");
 }
 
-#if !defined(PNG_NO_STDIO)
+#ifdef PNG_STDIO_SUPPORTED
 /* This is the function that does the actual reading of data.  If you are
-   not reading from a standard C stream, you should create a replacement
-   read_data function and use it at run time with png_set_read_fn(), rather
-   than changing the library. */
-#ifndef USE_FAR_KEYWORD
-void PNGAPI
+ * not reading from a standard C stream, you should create a replacement
+ * read_data function and use it at run time with png_set_read_fn(), rather
+ * than changing the library.
+ */
+#  ifndef USE_FAR_KEYWORD
+void PNGCBAPI
 png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
 {
    png_size_t check;
 
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL)
+      return;
+
    /* fread() returns 0 on error, so it is OK to store this in a png_size_t
     * instead of an int, which is what fread() actually returns.
     */
-#if defined(_WIN32_WCE)
-   if ( !ReadFile((HANDLE)(png_ptr->io_ptr), data, length, &check, NULL) )
-      check = 0;
-#else
-   check = (png_size_t)fread(data, (png_size_t)1, length,
-      (png_FILE_p)png_ptr->io_ptr);
-#endif
+   check = fread(data, 1, length, (png_FILE_p)png_ptr->io_ptr);
 
    if (check != length)
       png_error(png_ptr, "Read Error");
 }
-#else
-/* this is the model-independent version. Since the standard I/O library
+#  else
+/* This is the model-independent version. Since the standard I/O library
    can't handle far buffers in the medium and small models, we have to copy
    the data.
 */
@@ -98,80 +100,88 @@ png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
 #define NEAR_BUF_SIZE 1024
 #define MIN(a,b) (a <= b ? a : b)
 
-static void PNGAPI
+static void PNGCBAPI
 png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
 {
-   int check;
+   png_size_t check;
    png_byte *n_data;
    png_FILE_p io_ptr;
 
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL)
+      return;
+
    /* Check if data really is near. If so, use usual code. */
    n_data = (png_byte *)CVT_PTR_NOCHECK(data);
    io_ptr = (png_FILE_p)CVT_PTR(png_ptr->io_ptr);
+
    if ((png_bytep)n_data == data)
    {
-#if defined(_WIN32_WCE)
-      if ( !ReadFile((HANDLE)(png_ptr->io_ptr), data, length, &check, NULL) )
-         check = 0;
-#else
       check = fread(n_data, 1, length, io_ptr);
-#endif
    }
+
    else
    {
       png_byte buf[NEAR_BUF_SIZE];
       png_size_t read, remaining, err;
       check = 0;
       remaining = length;
+
       do
       {
          read = MIN(NEAR_BUF_SIZE, remaining);
-#if defined(_WIN32_WCE)
-         if ( !ReadFile((HANDLE)(io_ptr), buf, read, &err, NULL) )
-            err = 0;
-#else
-         err = fread(buf, (png_size_t)1, read, io_ptr);
-#endif
+         err = fread(buf, 1, read, io_ptr);
          png_memcpy(data, buf, read); /* copy far buffer to near buffer */
-         if(err != read)
+
+         if (err != read)
             break;
+
          else
             check += err;
+
          data += read;
          remaining -= read;
       }
       while (remaining != 0);
    }
+
    if ((png_uint_32)check != (png_uint_32)length)
       png_error(png_ptr, "read Error");
 }
-#endif
+#  endif
 #endif
 
 /* This function allows the application to supply a new input function
-   for libpng if standard C streams aren't being used.
-
-   This function takes as its arguments:
-   png_ptr      - pointer to a png input data structure
-   io_ptr       - pointer to user supplied structure containing info about
-                  the input functions.  May be NULL.
-   read_data_fn - pointer to a new input function that takes as its
-                  arguments a pointer to a png_struct, a pointer to
-                  a location where input data can be stored, and a 32-bit
-                  unsigned int that is the number of bytes to be read.
-                  To exit and output any fatal error messages the new write
-                  function should call png_error(png_ptr, "Error msg"). */
+ * for libpng if standard C streams aren't being used.
+ *
+ * This function takes as its arguments:
+ *
+ * png_ptr      - pointer to a png input data structure
+ *
+ * io_ptr       - pointer to user supplied structure containing info about
+ *                the input functions.  May be NULL.
+ *
+ * read_data_fn - pointer to a new input function that takes as its
+ *                arguments a pointer to a png_struct, a pointer to
+ *                a location where input data can be stored, and a 32-bit
+ *                unsigned int that is the number of bytes to be read.
+ *                To exit and output any fatal error messages the new write
+ *                function should call png_error(png_ptr, "Error msg").
+ *                May be NULL, in which case libpng's default function will
+ *                be used.
+ */
 void PNGAPI
 png_set_read_fn(png_structp png_ptr, png_voidp io_ptr,
    png_rw_ptr read_data_fn)
 {
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->io_ptr = io_ptr;
 
-#if !defined(PNG_NO_STDIO)
+#ifdef PNG_STDIO_SUPPORTED
    if (read_data_fn != NULL)
       png_ptr->read_data_fn = read_data_fn;
+
    else
       png_ptr->read_data_fn = png_default_read_data;
 #else
@@ -183,12 +193,11 @@ png_set_read_fn(png_structp png_ptr, png_voidp io_ptr,
    {
       png_ptr->write_data_fn = NULL;
       png_warning(png_ptr,
-         "It's an error to set both read_data_fn and write_data_fn in the ");
-      png_warning(png_ptr,
-         "same structure.  Resetting write_data_fn to NULL.");
+          "Can't set both read_data_fn and write_data_fn in the"
+          " same structure");
    }
 
-#if defined(PNG_WRITE_FLUSH_SUPPORTED)
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
    png_ptr->output_flush_fn = NULL;
 #endif
 }
diff --git a/jdk/src/share/native/sun/awt/libpng/pngrtran.c b/jdk/src/share/native/sun/awt/libpng/pngrtran.c
index e50ee48..e2a0416 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngrtran.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngrtran.c
@@ -29,70 +29,86 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.15 January 5, 2007
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ *
  * This file contains functions optionally called by an application
  * in order to tell libpng how to handle data when reading a PNG.
  * Transformations that are used in both reading and writing are
  * in pngtrans.c.
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
 
-#if defined(PNG_READ_SUPPORTED)
+#ifdef PNG_READ_SUPPORTED
 
 /* Set the action on getting a CRC error for an ancillary or critical chunk. */
 void PNGAPI
 png_set_crc_action(png_structp png_ptr, int crit_action, int ancil_action)
 {
-   png_debug(1, "in png_set_crc_action\n");
+   png_debug(1, "in png_set_crc_action");
+
+   if (png_ptr == NULL)
+      return;
+
    /* Tell libpng how we react to CRC errors in critical chunks */
-   if(png_ptr == NULL) return;
    switch (crit_action)
    {
-      case PNG_CRC_NO_CHANGE:                        /* leave setting as is */
+      case PNG_CRC_NO_CHANGE:                        /* Leave setting as is */
          break;
-      case PNG_CRC_WARN_USE:                               /* warn/use data */
+
+      case PNG_CRC_WARN_USE:                               /* Warn/use data */
          png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK;
          png_ptr->flags |= PNG_FLAG_CRC_CRITICAL_USE;
          break;
-      case PNG_CRC_QUIET_USE:                             /* quiet/use data */
+
+      case PNG_CRC_QUIET_USE:                             /* Quiet/use data */
          png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK;
          png_ptr->flags |= PNG_FLAG_CRC_CRITICAL_USE |
                            PNG_FLAG_CRC_CRITICAL_IGNORE;
          break;
-      case PNG_CRC_WARN_DISCARD:    /* not a valid action for critical data */
-         png_warning(png_ptr, "Can't discard critical data on CRC error.");
-      case PNG_CRC_ERROR_QUIT:                                /* error/quit */
+
+      case PNG_CRC_WARN_DISCARD:    /* Not a valid action for critical data */
+         png_warning(png_ptr,
+            "Can't discard critical data on CRC error");
+      case PNG_CRC_ERROR_QUIT:                                /* Error/quit */
+
       case PNG_CRC_DEFAULT:
       default:
          png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK;
          break;
    }
 
+   /* Tell libpng how we react to CRC errors in ancillary chunks */
    switch (ancil_action)
    {
-      case PNG_CRC_NO_CHANGE:                       /* leave setting as is */
+      case PNG_CRC_NO_CHANGE:                       /* Leave setting as is */
          break;
-      case PNG_CRC_WARN_USE:                              /* warn/use data */
+
+      case PNG_CRC_WARN_USE:                              /* Warn/use data */
          png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK;
          png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_USE;
          break;
-      case PNG_CRC_QUIET_USE:                            /* quiet/use data */
+
+      case PNG_CRC_QUIET_USE:                            /* Quiet/use data */
          png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK;
          png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_USE |
                            PNG_FLAG_CRC_ANCILLARY_NOWARN;
          break;
-      case PNG_CRC_ERROR_QUIT:                               /* error/quit */
+
+      case PNG_CRC_ERROR_QUIT:                               /* Error/quit */
          png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK;
          png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_NOWARN;
          break;
-      case PNG_CRC_WARN_DISCARD:                      /* warn/discard data */
+
+      case PNG_CRC_WARN_DISCARD:                      /* Warn/discard data */
+
       case PNG_CRC_DEFAULT:
       default:
          png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK;
@@ -100,59 +116,283 @@ png_set_crc_action(png_structp png_ptr, int crit_action, int ancil_action)
    }
 }
 
-#if defined(PNG_READ_BACKGROUND_SUPPORTED) && \
-    defined(PNG_FLOATING_POINT_SUPPORTED)
-/* handle alpha and tRNS via a background color */
-void PNGAPI
-png_set_background(png_structp png_ptr,
-   png_color_16p background_color, int background_gamma_code,
-   int need_expand, double background_gamma)
+#ifdef PNG_READ_BACKGROUND_SUPPORTED
+/* Handle alpha and tRNS via a background color */
+void PNGFAPI
+png_set_background_fixed(png_structp png_ptr,
+    png_const_color_16p background_color, int background_gamma_code,
+    int need_expand, png_fixed_point background_gamma)
 {
-   png_debug(1, "in png_set_background\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_background_fixed");
+
+   if (png_ptr == NULL)
+      return;
+
    if (background_gamma_code == PNG_BACKGROUND_GAMMA_UNKNOWN)
    {
       png_warning(png_ptr, "Application must supply a known background gamma");
       return;
    }
 
-   png_ptr->transformations |= PNG_BACKGROUND;
+   png_ptr->transformations |= PNG_COMPOSE | PNG_STRIP_ALPHA;
+   png_ptr->transformations &= ~PNG_ENCODE_ALPHA;
+   png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA;
+
    png_memcpy(&(png_ptr->background), background_color,
       png_sizeof(png_color_16));
-   png_ptr->background_gamma = (float)background_gamma;
+   png_ptr->background_gamma = background_gamma;
    png_ptr->background_gamma_type = (png_byte)(background_gamma_code);
-   png_ptr->transformations |= (need_expand ? PNG_BACKGROUND_EXPAND : 0);
+   if (need_expand)
+      png_ptr->transformations |= PNG_BACKGROUND_EXPAND;
+   else
+      png_ptr->transformations &= ~PNG_BACKGROUND_EXPAND;
+}
+
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
+void PNGAPI
+png_set_background(png_structp png_ptr,
+    png_const_color_16p background_color, int background_gamma_code,
+    int need_expand, double background_gamma)
+{
+   png_set_background_fixed(png_ptr, background_color, background_gamma_code,
+      need_expand, png_fixed(png_ptr, background_gamma, "png_set_background"));
+}
+#  endif  /* FLOATING_POINT */
+#endif /* READ_BACKGROUND */
+
+/* Scale 16-bit depth files to 8-bit depth.  If both of these are set then the
+ * one that pngrtran does first (scale) happens.  This is necessary to allow the
+ * TRANSFORM and API behavior to be somewhat consistent, and it's simpler.
+ */
+#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
+void PNGAPI
+png_set_scale_16(png_structp png_ptr)
+{
+   png_debug(1, "in png_set_scale_16");
+
+   if (png_ptr == NULL)
+      return;
+
+   png_ptr->transformations |= PNG_SCALE_16_TO_8;
 }
 #endif
 
-#if defined(PNG_READ_16_TO_8_SUPPORTED)
-/* strip 16 bit depth files to 8 bit depth */
+#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
+/* Chop 16-bit depth files to 8-bit depth */
 void PNGAPI
 png_set_strip_16(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_strip_16\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_strip_16");
+
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->transformations |= PNG_16_TO_8;
 }
 #endif
 
-#if defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
+#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
 void PNGAPI
 png_set_strip_alpha(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_strip_alpha\n");
-   if(png_ptr == NULL) return;
-   png_ptr->flags |= PNG_FLAG_STRIP_ALPHA;
+   png_debug(1, "in png_set_strip_alpha");
+
+   if (png_ptr == NULL)
+      return;
+
+   png_ptr->transformations |= PNG_STRIP_ALPHA;
+}
+#endif
+
+#if defined(PNG_READ_ALPHA_MODE_SUPPORTED) || defined(PNG_READ_GAMMA_SUPPORTED)
+static png_fixed_point
+translate_gamma_flags(png_structp png_ptr, png_fixed_point output_gamma,
+   int is_screen)
+{
+   /* Check for flag values.  The main reason for having the old Mac value as a
+    * flag is that it is pretty near impossible to work out what the correct
+    * value is from Apple documentation - a working Mac system is needed to
+    * discover the value!
+    */
+   if (output_gamma == PNG_DEFAULT_sRGB ||
+      output_gamma == PNG_FP_1 / PNG_DEFAULT_sRGB)
+   {
+      /* If there is no sRGB support this just sets the gamma to the standard
+       * sRGB value.  (This is a side effect of using this function!)
+       */
+#     ifdef PNG_READ_sRGB_SUPPORTED
+         png_ptr->flags |= PNG_FLAG_ASSUME_sRGB;
+#     endif
+      if (is_screen)
+         output_gamma = PNG_GAMMA_sRGB;
+      else
+         output_gamma = PNG_GAMMA_sRGB_INVERSE;
+   }
+
+   else if (output_gamma == PNG_GAMMA_MAC_18 ||
+      output_gamma == PNG_FP_1 / PNG_GAMMA_MAC_18)
+   {
+      if (is_screen)
+         output_gamma = PNG_GAMMA_MAC_OLD;
+      else
+         output_gamma = PNG_GAMMA_MAC_INVERSE;
+   }
+
+   return output_gamma;
+}
+
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
+static png_fixed_point
+convert_gamma_value(png_structp png_ptr, double output_gamma)
+{
+   /* The following silently ignores cases where fixed point (times 100,000)
+    * gamma values are passed to the floating point API.  This is safe and it
+    * means the fixed point constants work just fine with the floating point
+    * API.  The alternative would just lead to undetected errors and spurious
+    * bug reports.  Negative values fail inside the _fixed API unless they
+    * correspond to the flag values.
+    */
+   if (output_gamma > 0 && output_gamma < 128)
+      output_gamma *= PNG_FP_1;
+
+   /* This preserves -1 and -2 exactly: */
+   output_gamma = floor(output_gamma + .5);
+
+   if (output_gamma > PNG_FP_MAX || output_gamma < PNG_FP_MIN)
+      png_fixed_error(png_ptr, "gamma value");
+
+   return (png_fixed_point)output_gamma;
+}
+#  endif
+#endif /* READ_ALPHA_MODE || READ_GAMMA */
+
+#ifdef PNG_READ_ALPHA_MODE_SUPPORTED
+void PNGFAPI
+png_set_alpha_mode_fixed(png_structp png_ptr, int mode,
+   png_fixed_point output_gamma)
+{
+   int compose = 0;
+   png_fixed_point file_gamma;
+
+   png_debug(1, "in png_set_alpha_mode");
+
+   if (png_ptr == NULL)
+      return;
+
+   output_gamma = translate_gamma_flags(png_ptr, output_gamma, 1/*screen*/);
+
+   /* Validate the value to ensure it is in a reasonable range. The value
+    * is expected to be 1 or greater, but this range test allows for some
+    * viewing correction values.  The intent is to weed out users of this API
+    * who use the inverse of the gamma value accidentally!  Since some of these
+    * values are reasonable this may have to be changed.
+    */
+   if (output_gamma < 70000 || output_gamma > 300000)
+      png_error(png_ptr, "output gamma out of expected range");
+
+   /* The default file gamma is the inverse of the output gamma; the output
+    * gamma may be changed below so get the file value first:
+    */
+   file_gamma = png_reciprocal(output_gamma);
+
+   /* There are really 8 possibilities here, composed of any combination
+    * of:
+    *
+    *    premultiply the color channels
+    *    do not encode non-opaque pixels
+    *    encode the alpha as well as the color channels
+    *
+    * The differences disappear if the input/output ('screen') gamma is 1.0,
+    * because then the encoding is a no-op and there is only the choice of
+    * premultiplying the color channels or not.
+    *
+    * png_set_alpha_mode and png_set_background interact because both use
+    * png_compose to do the work.  Calling both is only useful when
+    * png_set_alpha_mode is used to set the default mode - PNG_ALPHA_PNG - along
+    * with a default gamma value.  Otherwise PNG_COMPOSE must not be set.
+    */
+   switch (mode)
+   {
+      case PNG_ALPHA_PNG:        /* default: png standard */
+         /* No compose, but it may be set by png_set_background! */
+         png_ptr->transformations &= ~PNG_ENCODE_ALPHA;
+         png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA;
+         break;
+
+      case PNG_ALPHA_ASSOCIATED: /* color channels premultiplied */
+         compose = 1;
+         png_ptr->transformations &= ~PNG_ENCODE_ALPHA;
+         png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA;
+         /* The output is linear: */
+         output_gamma = PNG_FP_1;
+         break;
+
+      case PNG_ALPHA_OPTIMIZED:  /* associated, non-opaque pixels linear */
+         compose = 1;
+         png_ptr->transformations &= ~PNG_ENCODE_ALPHA;
+         png_ptr->flags |= PNG_FLAG_OPTIMIZE_ALPHA;
+         /* output_gamma records the encoding of opaque pixels! */
+         break;
+
+      case PNG_ALPHA_BROKEN:     /* associated, non-linear, alpha encoded */
+         compose = 1;
+         png_ptr->transformations |= PNG_ENCODE_ALPHA;
+         png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA;
+         break;
+
+      default:
+         png_error(png_ptr, "invalid alpha mode");
+   }
+
+   /* Only set the default gamma if the file gamma has not been set (this has
+    * the side effect that the gamma in a second call to png_set_alpha_mode will
+    * be ignored.)
+    */
+   if (png_ptr->gamma == 0)
+      png_ptr->gamma = file_gamma;
+
+   /* But always set the output gamma: */
+   png_ptr->screen_gamma = output_gamma;
+
+   /* Finally, if pre-multiplying, set the background fields to achieve the
+    * desired result.
+    */
+   if (compose)
+   {
+      /* And obtain alpha pre-multiplication by composing on black: */
+      png_memset(&png_ptr->background, 0, sizeof png_ptr->background);
+      png_ptr->background_gamma = png_ptr->gamma; /* just in case */
+      png_ptr->background_gamma_type = PNG_BACKGROUND_GAMMA_FILE;
+      png_ptr->transformations &= ~PNG_BACKGROUND_EXPAND;
+
+      if (png_ptr->transformations & PNG_COMPOSE)
+         png_error(png_ptr,
+            "conflicting calls to set alpha mode and background");
+
+      png_ptr->transformations |= PNG_COMPOSE;
+   }
+
+   /* New API, make sure apps call the correct initializers: */
+   png_ptr->flags |= PNG_FLAG_DETECT_UNINITIALIZED;
+}
+
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
+void PNGAPI
+png_set_alpha_mode(png_structp png_ptr, int mode, double output_gamma)
+{
+   png_set_alpha_mode_fixed(png_ptr, mode, convert_gamma_value(png_ptr,
+      output_gamma));
 }
+#  endif
 #endif
 
-#if defined(PNG_READ_DITHER_SUPPORTED)
-/* Dither file to 8 bit.  Supply a palette, the current number
+#ifdef PNG_READ_QUANTIZE_SUPPORTED
+/* Dither file to 8-bit.  Supply a palette, the current number
  * of elements in the palette, the maximum number of elements
  * allowed, and a histogram if possible.  If the current number
  * of colors is greater then the maximum number, the palette will be
- * modified to fit in the maximum number.  "full_dither" indicates
- * whether we need a dithering cube set up for RGB images, or if we
+ * modified to fit in the maximum number.  "full_quantize" indicates
+ * whether we need a quantizing cube set up for RGB images, or if we
  * simply are reducing the number of colors in a paletted image.
  */
 
@@ -166,22 +406,25 @@ typedef png_dsort FAR *       png_dsortp;
 typedef png_dsort FAR * FAR * png_dsortpp;
 
 void PNGAPI
-png_set_dither(png_structp png_ptr, png_colorp palette,
-   int num_palette, int maximum_colors, png_uint_16p histogram,
-   int full_dither)
+png_set_quantize(png_structp png_ptr, png_colorp palette,
+    int num_palette, int maximum_colors, png_const_uint_16p histogram,
+    int full_quantize)
 {
-   png_debug(1, "in png_set_dither\n");
-   if(png_ptr == NULL) return;
-   png_ptr->transformations |= PNG_DITHER;
+   png_debug(1, "in png_set_quantize");
+
+   if (png_ptr == NULL)
+      return;
+
+   png_ptr->transformations |= PNG_QUANTIZE;
 
-   if (!full_dither)
+   if (!full_quantize)
    {
       int i;
 
-      png_ptr->dither_index = (png_bytep)png_malloc(png_ptr,
-         (png_uint_32)(num_palette * png_sizeof (png_byte)));
+      png_ptr->quantize_index = (png_bytep)png_malloc(png_ptr,
+          (png_uint_32)(num_palette * png_sizeof(png_byte)));
       for (i = 0; i < num_palette; i++)
-         png_ptr->dither_index[i] = (png_byte)i;
+         png_ptr->quantize_index[i] = (png_byte)i;
    }
 
    if (num_palette > maximum_colors)
@@ -189,61 +432,66 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
       if (histogram != NULL)
       {
          /* This is easy enough, just throw out the least used colors.
-            Perhaps not the best solution, but good enough. */
+          * Perhaps not the best solution, but good enough.
+          */
 
          int i;
 
-         /* initialize an array to sort colors */
-         png_ptr->dither_sort = (png_bytep)png_malloc(png_ptr,
-            (png_uint_32)(num_palette * png_sizeof (png_byte)));
+         /* Initialize an array to sort colors */
+         png_ptr->quantize_sort = (png_bytep)png_malloc(png_ptr,
+             (png_uint_32)(num_palette * png_sizeof(png_byte)));
 
-         /* initialize the dither_sort array */
+         /* Initialize the quantize_sort array */
          for (i = 0; i < num_palette; i++)
-            png_ptr->dither_sort[i] = (png_byte)i;
+            png_ptr->quantize_sort[i] = (png_byte)i;
 
          /* Find the least used palette entries by starting a
-            bubble sort, and running it until we have sorted
-            out enough colors.  Note that we don't care about
-            sorting all the colors, just finding which are
-            least used. */
+          * bubble sort, and running it until we have sorted
+          * out enough colors.  Note that we don't care about
+          * sorting all the colors, just finding which are
+          * least used.
+          */
 
          for (i = num_palette - 1; i >= maximum_colors; i--)
          {
-            int done; /* to stop early if the list is pre-sorted */
+            int done; /* To stop early if the list is pre-sorted */
             int j;
 
             done = 1;
             for (j = 0; j < i; j++)
             {
-               if (histogram[png_ptr->dither_sort[j]]
-                   < histogram[png_ptr->dither_sort[j + 1]])
+               if (histogram[png_ptr->quantize_sort[j]]
+                   < histogram[png_ptr->quantize_sort[j + 1]])
                {
                   png_byte t;
 
-                  t = png_ptr->dither_sort[j];
-                  png_ptr->dither_sort[j] = png_ptr->dither_sort[j + 1];
-                  png_ptr->dither_sort[j + 1] = t;
+                  t = png_ptr->quantize_sort[j];
+                  png_ptr->quantize_sort[j] = png_ptr->quantize_sort[j + 1];
+                  png_ptr->quantize_sort[j + 1] = t;
                   done = 0;
                }
             }
+
             if (done)
                break;
          }
 
-         /* swap the palette around, and set up a table, if necessary */
-         if (full_dither)
+         /* Swap the palette around, and set up a table, if necessary */
+         if (full_quantize)
          {
             int j = num_palette;
 
-            /* put all the useful colors within the max, but don't
-               move the others */
+            /* Put all the useful colors within the max, but don't
+             * move the others.
+             */
             for (i = 0; i < maximum_colors; i++)
             {
-               if ((int)png_ptr->dither_sort[i] >= maximum_colors)
+               if ((int)png_ptr->quantize_sort[i] >= maximum_colors)
                {
                   do
                      j--;
-                  while ((int)png_ptr->dither_sort[j] >= maximum_colors);
+                  while ((int)png_ptr->quantize_sort[j] >= maximum_colors);
+
                   palette[i] = palette[j];
                }
             }
@@ -252,37 +500,38 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
          {
             int j = num_palette;
 
-            /* move all the used colors inside the max limit, and
-               develop a translation table */
+            /* Move all the used colors inside the max limit, and
+             * develop a translation table.
+             */
             for (i = 0; i < maximum_colors; i++)
             {
-               /* only move the colors we need to */
-               if ((int)png_ptr->dither_sort[i] >= maximum_colors)
+               /* Only move the colors we need to */
+               if ((int)png_ptr->quantize_sort[i] >= maximum_colors)
                {
                   png_color tmp_color;
 
                   do
                      j--;
-                  while ((int)png_ptr->dither_sort[j] >= maximum_colors);
+                  while ((int)png_ptr->quantize_sort[j] >= maximum_colors);
 
                   tmp_color = palette[j];
                   palette[j] = palette[i];
                   palette[i] = tmp_color;
-                  /* indicate where the color went */
-                  png_ptr->dither_index[j] = (png_byte)i;
-                  png_ptr->dither_index[i] = (png_byte)j;
+                  /* Indicate where the color went */
+                  png_ptr->quantize_index[j] = (png_byte)i;
+                  png_ptr->quantize_index[i] = (png_byte)j;
                }
             }
 
-            /* find closest color for those colors we are not using */
+            /* Find closest color for those colors we are not using */
             for (i = 0; i < num_palette; i++)
             {
-               if ((int)png_ptr->dither_index[i] >= maximum_colors)
+               if ((int)png_ptr->quantize_index[i] >= maximum_colors)
                {
                   int min_d, k, min_k, d_index;
 
-                  /* find the closest color to one we threw out */
-                  d_index = png_ptr->dither_index[i];
+                  /* Find the closest color to one we threw out */
+                  d_index = png_ptr->quantize_index[i];
                   min_d = PNG_COLOR_DIST(palette[d_index], palette[0]);
                   for (k = 1, min_k = 0; k < maximum_colors; k++)
                   {
@@ -296,61 +545,58 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
                         min_k = k;
                      }
                   }
-                  /* point to closest color */
-                  png_ptr->dither_index[i] = (png_byte)min_k;
+                  /* Point to closest color */
+                  png_ptr->quantize_index[i] = (png_byte)min_k;
                }
             }
          }
-         png_free(png_ptr, png_ptr->dither_sort);
-         png_ptr->dither_sort=NULL;
+         png_free(png_ptr, png_ptr->quantize_sort);
+         png_ptr->quantize_sort = NULL;
       }
       else
       {
          /* This is much harder to do simply (and quickly).  Perhaps
-            we need to go through a median cut routine, but those
-            don't always behave themselves with only a few colors
-            as input.  So we will just find the closest two colors,
-            and throw out one of them (chosen somewhat randomly).
-            [We don't understand this at all, so if someone wants to
-             work on improving it, be our guest - AED, GRP]
-            */
+          * we need to go through a median cut routine, but those
+          * don't always behave themselves with only a few colors
+          * as input.  So we will just find the closest two colors,
+          * and throw out one of them (chosen somewhat randomly).
+          * [We don't understand this at all, so if someone wants to
+          *  work on improving it, be our guest - AED, GRP]
+          */
          int i;
          int max_d;
          int num_new_palette;
          png_dsortp t;
          png_dsortpp hash;
 
-         t=NULL;
+         t = NULL;
 
-         /* initialize palette index arrays */
+         /* Initialize palette index arrays */
          png_ptr->index_to_palette = (png_bytep)png_malloc(png_ptr,
-            (png_uint_32)(num_palette * png_sizeof (png_byte)));
+             (png_uint_32)(num_palette * png_sizeof(png_byte)));
          png_ptr->palette_to_index = (png_bytep)png_malloc(png_ptr,
-            (png_uint_32)(num_palette * png_sizeof (png_byte)));
+             (png_uint_32)(num_palette * png_sizeof(png_byte)));
 
-         /* initialize the sort array */
+         /* Initialize the sort array */
          for (i = 0; i < num_palette; i++)
          {
             png_ptr->index_to_palette[i] = (png_byte)i;
             png_ptr->palette_to_index[i] = (png_byte)i;
          }
 
-         hash = (png_dsortpp)png_malloc(png_ptr, (png_uint_32)(769 *
-            png_sizeof (png_dsortp)));
-         for (i = 0; i < 769; i++)
-            hash[i] = NULL;
-/*         png_memset(hash, 0, 769 * png_sizeof (png_dsortp)); */
+         hash = (png_dsortpp)png_calloc(png_ptr, (png_uint_32)(769 *
+             png_sizeof(png_dsortp)));
 
          num_new_palette = num_palette;
 
-         /* initial wild guess at how far apart the farthest pixel
-            pair we will be eliminating will be.  Larger
-            numbers mean more areas will be allocated, Smaller
-            numbers run the risk of not saving enough data, and
-            having to do this all over again.
-
-            I have not done extensive checking on this number.
-            */
+         /* Initial wild guess at how far apart the farthest pixel
+          * pair we will be eliminating will be.  Larger
+          * numbers mean more areas will be allocated, Smaller
+          * numbers run the risk of not saving enough data, and
+          * having to do this all over again.
+          *
+          * I have not done extensive checking on this number.
+          */
          max_d = 96;
 
          while (num_new_palette > maximum_colors)
@@ -370,8 +616,10 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
 
                      t = (png_dsortp)png_malloc_warn(png_ptr,
                          (png_uint_32)(png_sizeof(png_dsort)));
+
                      if (t == NULL)
                          break;
+
                      t->next = hash[d];
                      t->left = (png_byte)i;
                      t->right = (png_byte)j;
@@ -392,9 +640,9 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
                   for (p = hash[i]; p; p = p->next)
                   {
                      if ((int)png_ptr->index_to_palette[p->left]
-                        < num_new_palette &&
-                        (int)png_ptr->index_to_palette[p->right]
-                        < num_new_palette)
+                         < num_new_palette &&
+                         (int)png_ptr->index_to_palette[p->right]
+                         < num_new_palette)
                      {
                         int j, next_j;
 
@@ -411,31 +659,36 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
 
                         num_new_palette--;
                         palette[png_ptr->index_to_palette[j]]
-                          = palette[num_new_palette];
-                        if (!full_dither)
+                            = palette[num_new_palette];
+                        if (!full_quantize)
                         {
                            int k;
 
                            for (k = 0; k < num_palette; k++)
                            {
-                              if (png_ptr->dither_index[k] ==
-                                 png_ptr->index_to_palette[j])
-                                 png_ptr->dither_index[k] =
-                                    png_ptr->index_to_palette[next_j];
-                              if ((int)png_ptr->dither_index[k] ==
-                                 num_new_palette)
-                                 png_ptr->dither_index[k] =
-                                    png_ptr->index_to_palette[j];
+                              if (png_ptr->quantize_index[k] ==
+                                  png_ptr->index_to_palette[j])
+                                 png_ptr->quantize_index[k] =
+                                     png_ptr->index_to_palette[next_j];
+
+                              if ((int)png_ptr->quantize_index[k] ==
+                                  num_new_palette)
+                                 png_ptr->quantize_index[k] =
+                                     png_ptr->index_to_palette[j];
                            }
                         }
 
                         png_ptr->index_to_palette[png_ptr->palette_to_index
-                           [num_new_palette]] = png_ptr->index_to_palette[j];
+                            [num_new_palette]] = png_ptr->index_to_palette[j];
+
                         png_ptr->palette_to_index[png_ptr->index_to_palette[j]]
-                           = png_ptr->palette_to_index[num_new_palette];
+                            = png_ptr->palette_to_index[num_new_palette];
 
-                        png_ptr->index_to_palette[j] = (png_byte)num_new_palette;
-                        png_ptr->palette_to_index[num_new_palette] = (png_byte)j;
+                        png_ptr->index_to_palette[j] =
+                            (png_byte)num_new_palette;
+
+                        png_ptr->palette_to_index[num_new_palette] =
+                            (png_byte)j;
                      }
                      if (num_new_palette <= maximum_colors)
                         break;
@@ -464,8 +717,8 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
          png_free(png_ptr, hash);
          png_free(png_ptr, png_ptr->palette_to_index);
          png_free(png_ptr, png_ptr->index_to_palette);
-         png_ptr->palette_to_index=NULL;
-         png_ptr->index_to_palette=NULL;
+         png_ptr->palette_to_index = NULL;
+         png_ptr->index_to_palette = NULL;
       }
       num_palette = maximum_colors;
    }
@@ -475,40 +728,38 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
    }
    png_ptr->num_palette = (png_uint_16)num_palette;
 
-   if (full_dither)
+   if (full_quantize)
    {
       int i;
       png_bytep distance;
-      int total_bits = PNG_DITHER_RED_BITS + PNG_DITHER_GREEN_BITS +
-         PNG_DITHER_BLUE_BITS;
-      int num_red = (1 << PNG_DITHER_RED_BITS);
-      int num_green = (1 << PNG_DITHER_GREEN_BITS);
-      int num_blue = (1 << PNG_DITHER_BLUE_BITS);
+      int total_bits = PNG_QUANTIZE_RED_BITS + PNG_QUANTIZE_GREEN_BITS +
+          PNG_QUANTIZE_BLUE_BITS;
+      int num_red = (1 << PNG_QUANTIZE_RED_BITS);
+      int num_green = (1 << PNG_QUANTIZE_GREEN_BITS);
+      int num_blue = (1 << PNG_QUANTIZE_BLUE_BITS);
       png_size_t num_entries = ((png_size_t)1 << total_bits);
 
-      png_ptr->palette_lookup = (png_bytep )png_malloc(png_ptr,
-         (png_uint_32)(num_entries * png_sizeof (png_byte)));
-
-      png_memset(png_ptr->palette_lookup, 0, num_entries *
-         png_sizeof (png_byte));
+      png_ptr->palette_lookup = (png_bytep)png_calloc(png_ptr,
+          (png_uint_32)(num_entries * png_sizeof(png_byte)));
 
       distance = (png_bytep)png_malloc(png_ptr, (png_uint_32)(num_entries *
-         png_sizeof(png_byte)));
+          png_sizeof(png_byte)));
 
       png_memset(distance, 0xff, num_entries * png_sizeof(png_byte));
 
       for (i = 0; i < num_palette; i++)
       {
          int ir, ig, ib;
-         int r = (palette[i].red >> (8 - PNG_DITHER_RED_BITS));
-         int g = (palette[i].green >> (8 - PNG_DITHER_GREEN_BITS));
-         int b = (palette[i].blue >> (8 - PNG_DITHER_BLUE_BITS));
+         int r = (palette[i].red >> (8 - PNG_QUANTIZE_RED_BITS));
+         int g = (palette[i].green >> (8 - PNG_QUANTIZE_GREEN_BITS));
+         int b = (palette[i].blue >> (8 - PNG_QUANTIZE_BLUE_BITS));
 
          for (ir = 0; ir < num_red; ir++)
          {
             /* int dr = abs(ir - r); */
             int dr = ((ir > r) ? ir - r : r - ir);
-            int index_r = (ir << (PNG_DITHER_BLUE_BITS + PNG_DITHER_GREEN_BITS));
+            int index_r = (ir << (PNG_QUANTIZE_BLUE_BITS +
+                PNG_QUANTIZE_GREEN_BITS));
 
             for (ig = 0; ig < num_green; ig++)
             {
@@ -516,7 +767,7 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
                int dg = ((ig > g) ? ig - g : g - ig);
                int dt = dr + dg;
                int dm = ((dr > dg) ? dr : dg);
-               int index_g = index_r | (ig << PNG_DITHER_BLUE_BITS);
+               int index_g = index_r | (ig << PNG_QUANTIZE_BLUE_BITS);
 
                for (ib = 0; ib < num_blue; ib++)
                {
@@ -539,33 +790,59 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
       png_free(png_ptr, distance);
    }
 }
+#endif /* PNG_READ_QUANTIZE_SUPPORTED */
+
+#ifdef PNG_READ_GAMMA_SUPPORTED
+void PNGFAPI
+png_set_gamma_fixed(png_structp png_ptr, png_fixed_point scrn_gamma,
+   png_fixed_point file_gamma)
+{
+   png_debug(1, "in png_set_gamma_fixed");
+
+   if (png_ptr == NULL)
+      return;
+
+   /* New in libpng-1.5.4 - reserve particular negative values as flags. */
+   scrn_gamma = translate_gamma_flags(png_ptr, scrn_gamma, 1/*screen*/);
+   file_gamma = translate_gamma_flags(png_ptr, file_gamma, 0/*file*/);
+
+#if PNG_LIBPNG_VER >= 10600
+   /* Checking the gamma values for being >0 was added in 1.5.4 along with the
+    * premultiplied alpha support; this actually hides an undocumented feature
+    * of the previous implementation which allowed gamma processing to be
+    * disabled in background handling.  There is no evidence (so far) that this
+    * was being used; however, png_set_background itself accepted and must still
+    * accept '0' for the gamma value it takes, because it isn't always used.
+    *
+    * Since this is an API change (albeit a very minor one that removes an
+    * undocumented API feature) it will not be made until libpng-1.6.0.
+    */
+   if (file_gamma <= 0)
+      png_error(png_ptr, "invalid file gamma in png_set_gamma");
+
+   if (scrn_gamma <= 0)
+      png_error(png_ptr, "invalid screen gamma in png_set_gamma");
 #endif
 
-#if defined(PNG_READ_GAMMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED)
-/* Transform the image from the file_gamma to the screen_gamma.  We
- * only do transformations on images where the file_gamma and screen_gamma
- * are not close reciprocals, otherwise it slows things down slightly, and
- * also needlessly introduces small errors.
- *
- * We will turn off gamma transformation later if no semitransparent entries
- * are present in the tRNS array for palette images.  We can't do it here
- * because we don't necessarily have the tRNS chunk yet.
- */
+   /* Set the gamma values unconditionally - this overrides the value in the PNG
+    * file if a gAMA chunk was present.  png_set_alpha_mode provides a
+    * different, easier, way to default the file gamma.
+    */
+   png_ptr->gamma = file_gamma;
+   png_ptr->screen_gamma = scrn_gamma;
+}
+
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
 void PNGAPI
 png_set_gamma(png_structp png_ptr, double scrn_gamma, double file_gamma)
 {
-   png_debug(1, "in png_set_gamma\n");
-   if(png_ptr == NULL) return;
-   if ((fabs(scrn_gamma * file_gamma - 1.0) > PNG_GAMMA_THRESHOLD) ||
-       (png_ptr->color_type & PNG_COLOR_MASK_ALPHA) ||
-       (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE))
-     png_ptr->transformations |= PNG_GAMMA;
-   png_ptr->gamma = (float)file_gamma;
-   png_ptr->screen_gamma = (float)scrn_gamma;
+   png_set_gamma_fixed(png_ptr, convert_gamma_value(png_ptr, scrn_gamma),
+      convert_gamma_value(png_ptr, file_gamma));
 }
-#endif
+#  endif /* FLOATING_POINT_SUPPORTED */
+#endif /* READ_GAMMA */
 
-#if defined(PNG_READ_EXPAND_SUPPORTED)
+#ifdef PNG_READ_EXPAND_SUPPORTED
 /* Expand paletted images to RGB, expand grayscale images of
  * less than 8-bit depth to 8-bit depth, and expand tRNS chunks
  * to alpha channels.
@@ -573,9 +850,13 @@ png_set_gamma(png_structp png_ptr, double scrn_gamma, double file_gamma)
 void PNGAPI
 png_set_expand(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_expand\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_expand");
+
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS);
+   png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
 }
 
 /* GRR 19990627:  the following three functions currently are identical
@@ -591,305 +872,690 @@ png_set_expand(png_structp png_ptr)
  *  More to the point, these functions make it obvious what libpng will be
  *  doing, whereas "expand" can (and does) mean any number of things.
  *
- *  GRP 20060307: In libpng-1.4.0, png_set_gray_1_2_4_to_8() was modified
- *  to expand only the sample depth but not to expand the tRNS to alpha.
+ *  GRP 20060307: In libpng-1.2.9, png_set_gray_1_2_4_to_8() was modified
+ *  to expand only the sample depth but not to expand the tRNS to alpha
+ *  and its name was changed to png_set_expand_gray_1_2_4_to_8().
  */
 
 /* Expand paletted images to RGB. */
 void PNGAPI
 png_set_palette_to_rgb(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_palette_to_rgb\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_palette_to_rgb");
+
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS);
+   png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
 }
 
-#if !defined(PNG_1_0_X)
 /* Expand grayscale images of less than 8-bit depth to 8 bits. */
 void PNGAPI
 png_set_expand_gray_1_2_4_to_8(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_expand_gray_1_2_4_to_8\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_expand_gray_1_2_4_to_8");
+
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->transformations |= PNG_EXPAND;
+   png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
 }
-#endif
 
-#if defined(PNG_1_0_X) || defined(PNG_1_2_X)
-/* Expand grayscale images of less than 8-bit depth to 8 bits. */
-/* Deprecated as of libpng-1.2.9 */
-void PNGAPI
-png_set_gray_1_2_4_to_8(png_structp png_ptr)
-{
-   png_debug(1, "in png_set_gray_1_2_4_to_8\n");
-   if(png_ptr == NULL) return;
-   png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS);
-}
-#endif
 
 
 /* Expand tRNS chunks to alpha channels. */
 void PNGAPI
 png_set_tRNS_to_alpha(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_expand\n");
+   png_debug(1, "in png_set_tRNS_to_alpha");
+
    png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS);
+   png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
 }
 #endif /* defined(PNG_READ_EXPAND_SUPPORTED) */
 
-#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
+#ifdef PNG_READ_EXPAND_16_SUPPORTED
+/* Expand to 16-bit channels, expand the tRNS chunk too (because otherwise
+ * it may not work correctly.)
+ */
 void PNGAPI
-png_set_gray_to_rgb(png_structp png_ptr)
+png_set_expand_16(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_gray_to_rgb\n");
-   png_ptr->transformations |= PNG_GRAY_TO_RGB;
+   png_debug(1, "in png_set_expand_16");
+
+   if (png_ptr == NULL)
+      return;
+
+   png_ptr->transformations |= (PNG_EXPAND_16 | PNG_EXPAND | PNG_EXPAND_tRNS);
+   png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
+
+   /* New API, make sure apps call the correct initializers: */
+   png_ptr->flags |= PNG_FLAG_DETECT_UNINITIALIZED;
 }
 #endif
 
-#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
-#if defined(PNG_FLOATING_POINT_SUPPORTED)
-/* Convert a RGB image to a grayscale of the same width.  This allows us,
- * for example, to convert a 24 bpp RGB image into an 8 bpp grayscale image.
- */
-
+#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
 void PNGAPI
-png_set_rgb_to_gray(png_structp png_ptr, int error_action, double red,
-   double green)
+png_set_gray_to_rgb(png_structp png_ptr)
 {
-      int red_fixed = (int)((float)red*100000.0 + 0.5);
-      int green_fixed = (int)((float)green*100000.0 + 0.5);
-      if(png_ptr == NULL) return;
-      png_set_rgb_to_gray_fixed(png_ptr, error_action, red_fixed, green_fixed);
+   png_debug(1, "in png_set_gray_to_rgb");
+
+   if (png_ptr != NULL)
+   {
+      /* Because rgb must be 8 bits or more: */
+      png_set_expand_gray_1_2_4_to_8(png_ptr);
+      png_ptr->transformations |= PNG_GRAY_TO_RGB;
+      png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
+   }
 }
 #endif
 
-void PNGAPI
+#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
+void PNGFAPI
 png_set_rgb_to_gray_fixed(png_structp png_ptr, int error_action,
-   png_fixed_point red, png_fixed_point green)
+    png_fixed_point red, png_fixed_point green)
 {
-   png_debug(1, "in png_set_rgb_to_gray\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_rgb_to_gray");
+
+   if (png_ptr == NULL)
+      return;
+
    switch(error_action)
    {
-      case 1: png_ptr->transformations |= PNG_RGB_TO_GRAY;
-              break;
-      case 2: png_ptr->transformations |= PNG_RGB_TO_GRAY_WARN;
-              break;
-      case 3: png_ptr->transformations |= PNG_RGB_TO_GRAY_ERR;
+      case 1:
+         png_ptr->transformations |= PNG_RGB_TO_GRAY;
+         break;
+
+      case 2:
+         png_ptr->transformations |= PNG_RGB_TO_GRAY_WARN;
+         break;
+
+      case 3:
+         png_ptr->transformations |= PNG_RGB_TO_GRAY_ERR;
+         break;
+
+      default:
+         png_error(png_ptr, "invalid error action to rgb_to_gray");
+         break;
    }
    if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
-#if defined(PNG_READ_EXPAND_SUPPORTED)
+#ifdef PNG_READ_EXPAND_SUPPORTED
       png_ptr->transformations |= PNG_EXPAND;
 #else
    {
-      png_warning(png_ptr, "Cannot do RGB_TO_GRAY without EXPAND_SUPPORTED.");
+      png_warning(png_ptr,
+        "Cannot do RGB_TO_GRAY without EXPAND_SUPPORTED");
+
       png_ptr->transformations &= ~PNG_RGB_TO_GRAY;
    }
 #endif
    {
-      png_uint_16 red_int, green_int;
-      if(red < 0 || green < 0)
-      {
-         red_int   =  6968; /* .212671 * 32768 + .5 */
-         green_int = 23434; /* .715160 * 32768 + .5 */
-      }
-      else if(red + green < 100000L)
+      if (red >= 0 && green >= 0 && red + green <= PNG_FP_1)
       {
-        red_int = (png_uint_16)(((png_uint_32)red*32768L)/100000L);
-        green_int = (png_uint_16)(((png_uint_32)green*32768L)/100000L);
+         png_uint_16 red_int, green_int;
+
+         red_int = (png_uint_16)(((png_uint_32)red*32768L)/100000L);
+         green_int = (png_uint_16)(((png_uint_32)green*32768L)/100000L);
+
+         png_ptr->rgb_to_gray_red_coeff   = red_int;
+         png_ptr->rgb_to_gray_green_coeff = green_int;
+         png_ptr->rgb_to_gray_blue_coeff  =
+          (png_uint_16)(32768 - red_int - green_int);
       }
+
       else
       {
-         png_warning(png_ptr, "ignoring out of range rgb_to_gray coefficients");
-         red_int   =  6968;
-         green_int = 23434;
+         if (red >= 0 && green >= 0)
+            png_warning(png_ptr,
+               "ignoring out of range rgb_to_gray coefficients");
+
+         /* Use the defaults, from the cHRM chunk if set, else the built in Rec
+          * 709 values (which correspond to sRGB, so we don't have to worry
+          * about the sRGB chunk!)
+          */
+         if (png_ptr->rgb_to_gray_red_coeff == 0 &&
+            png_ptr->rgb_to_gray_green_coeff == 0 &&
+            png_ptr->rgb_to_gray_blue_coeff == 0)
+         {
+            png_ptr->rgb_to_gray_red_coeff   = 6968;  /* .212671 * 32768 + .5 */
+            png_ptr->rgb_to_gray_green_coeff = 23434; /* .715160 * 32768 + .5 */
+            png_ptr->rgb_to_gray_blue_coeff  = 2366;
+         }
       }
-      png_ptr->rgb_to_gray_red_coeff   = red_int;
-      png_ptr->rgb_to_gray_green_coeff = green_int;
-      png_ptr->rgb_to_gray_blue_coeff  = (png_uint_16)(32768-red_int-green_int);
    }
 }
+
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+/* Convert a RGB image to a grayscale of the same width.  This allows us,
+ * for example, to convert a 24 bpp RGB image into an 8 bpp grayscale image.
+ */
+
+void PNGAPI
+png_set_rgb_to_gray(png_structp png_ptr, int error_action, double red,
+   double green)
+{
+   if (png_ptr == NULL)
+      return;
+
+   png_set_rgb_to_gray_fixed(png_ptr, error_action,
+      png_fixed(png_ptr, red, "rgb to gray red coefficient"),
+      png_fixed(png_ptr, green, "rgb to gray green coefficient"));
+}
+#endif /* FLOATING POINT */
+
 #endif
 
 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
-    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
-    defined(PNG_LEGACY_SUPPORTED)
+    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
 void PNGAPI
 png_set_read_user_transform_fn(png_structp png_ptr, png_user_transform_ptr
-   read_user_transform_fn)
+    read_user_transform_fn)
 {
-   png_debug(1, "in png_set_read_user_transform_fn\n");
-   if(png_ptr == NULL) return;
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
+   png_debug(1, "in png_set_read_user_transform_fn");
+
+   if (png_ptr == NULL)
+      return;
+
+#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
    png_ptr->transformations |= PNG_USER_TRANSFORM;
    png_ptr->read_user_transform_fn = read_user_transform_fn;
 #endif
-#ifdef PNG_LEGACY_SUPPORTED
-   if(read_user_transform_fn)
-      png_warning(png_ptr,
-        "This version of libpng does not support user transforms");
+}
 #endif
+
+#ifdef PNG_READ_TRANSFORMS_SUPPORTED
+#ifdef PNG_READ_GAMMA_SUPPORTED
+/* In the case of gamma transformations only do transformations on images where
+ * the [file] gamma and screen_gamma are not close reciprocals, otherwise it
+ * slows things down slightly, and also needlessly introduces small errors.
+ */
+static int /* PRIVATE */
+png_gamma_threshold(png_fixed_point screen_gamma, png_fixed_point file_gamma)
+{
+   /* PNG_GAMMA_THRESHOLD is the threshold for performing gamma
+    * correction as a difference of the overall transform from 1.0
+    *
+    * We want to compare the threshold with s*f - 1, if we get
+    * overflow here it is because of wacky gamma values so we
+    * turn on processing anyway.
+    */
+   png_fixed_point gtest;
+   return !png_muldiv(&gtest, screen_gamma, file_gamma, PNG_FP_1) ||
+       png_gamma_significant(gtest);
 }
 #endif
 
 /* Initialize everything needed for the read.  This includes modifying
  * the palette.
  */
-void /* PRIVATE */
-png_init_read_transformations(png_structp png_ptr)
+
+/*For the moment 'png_init_palette_transformations' and
+ * 'png_init_rgb_transformations' only do some flag canceling optimizations.
+ * The intent is that these two routines should have palette or rgb operations
+ * extracted from 'png_init_read_transformations'.
+ */
+static void /* PRIVATE */
+png_init_palette_transformations(png_structp png_ptr)
 {
-   png_debug(1, "in png_init_read_transformations\n");
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if(png_ptr != NULL)
-#endif
-  {
-#if defined(PNG_READ_BACKGROUND_SUPPORTED) || defined(PNG_READ_SHIFT_SUPPORTED) \
- || defined(PNG_READ_GAMMA_SUPPORTED)
-   int color_type = png_ptr->color_type;
-#endif
+   /* Called to handle the (input) palette case.  In png_do_read_transformations
+    * the first step is to expand the palette if requested, so this code must
+    * take care to only make changes that are invariant with respect to the
+    * palette expansion, or only do them if there is no expansion.
+    *
+    * STRIP_ALPHA has already been handled in the caller (by setting num_trans
+    * to 0.)
+    */
+   int input_has_alpha = 0;
+   int input_has_transparency = 0;
+
+   if (png_ptr->num_trans > 0)
+   {
+      int i;
+
+      /* Ignore if all the entries are opaque (unlikely!) */
+      for (i=0; i<png_ptr->num_trans; ++i)
+         if (png_ptr->trans_alpha[i] == 255)
+            continue;
+         else if (png_ptr->trans_alpha[i] == 0)
+            input_has_transparency = 1;
+         else
+            input_has_alpha = 1;
+   }
+
+   /* If no alpha we can optimize. */
+   if (!input_has_alpha)
+   {
+      /* Any alpha means background and associative alpha processing is
+       * required, however if the alpha is 0 or 1 throughout OPTIIMIZE_ALPHA
+       * and ENCODE_ALPHA are irrelevant.
+       */
+      png_ptr->transformations &= ~PNG_ENCODE_ALPHA;
+      png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA;
+
+      if (!input_has_transparency)
+         png_ptr->transformations &= ~(PNG_COMPOSE | PNG_BACKGROUND_EXPAND);
+   }
 
 #if defined(PNG_READ_EXPAND_SUPPORTED) && defined(PNG_READ_BACKGROUND_SUPPORTED)
+   /* png_set_background handling - deals with the complexity of whether the
+    * background color is in the file format or the screen format in the case
+    * where an 'expand' will happen.
+    */
 
-#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
-   /* Detect gray background and attempt to enable optimization
-    * for gray --> RGB case */
-   /* Note:  if PNG_BACKGROUND_EXPAND is set and color_type is either RGB or
-    * RGB_ALPHA (in which case need_expand is superfluous anyway), the
-    * background color might actually be gray yet not be flagged as such.
-    * This is not a problem for the current code, which uses
-    * PNG_BACKGROUND_IS_GRAY only to decide when to do the
-    * png_do_gray_to_rgb() transformation.
+   /* The following code cannot be entered in the alpha pre-multiplication case
+    * because PNG_BACKGROUND_EXPAND is cancelled below.
     */
    if ((png_ptr->transformations & PNG_BACKGROUND_EXPAND) &&
-       !(color_type & PNG_COLOR_MASK_COLOR))
+       (png_ptr->transformations & PNG_EXPAND))
    {
-          png_ptr->mode |= PNG_BACKGROUND_IS_GRAY;
-   } else if ((png_ptr->transformations & PNG_BACKGROUND) &&
-              !(png_ptr->transformations & PNG_BACKGROUND_EXPAND) &&
-              (png_ptr->transformations & PNG_GRAY_TO_RGB) &&
-              png_ptr->background.red == png_ptr->background.green &&
-              png_ptr->background.red == png_ptr->background.blue)
+      {
+         png_ptr->background.red   =
+             png_ptr->palette[png_ptr->background.index].red;
+         png_ptr->background.green =
+             png_ptr->palette[png_ptr->background.index].green;
+         png_ptr->background.blue  =
+             png_ptr->palette[png_ptr->background.index].blue;
+
+#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
+        if (png_ptr->transformations & PNG_INVERT_ALPHA)
+        {
+           if (!(png_ptr->transformations & PNG_EXPAND_tRNS))
+           {
+              /* Invert the alpha channel (in tRNS) unless the pixels are
+               * going to be expanded, in which case leave it for later
+               */
+              int i, istop = png_ptr->num_trans;
+
+              for (i=0; i<istop; i++)
+                 png_ptr->trans_alpha[i] = (png_byte)(255 -
+                    png_ptr->trans_alpha[i]);
+           }
+        }
+#endif /* PNG_READ_INVERT_ALPHA_SUPPORTED */
+      }
+   } /* background expand and (therefore) no alpha association. */
+#endif /* PNG_READ_EXPAND_SUPPORTED && PNG_READ_BACKGROUND_SUPPORTED */
+}
+
+static void /* PRIVATE */
+png_init_rgb_transformations(png_structp png_ptr)
+{
+   /* Added to libpng-1.5.4: check the color type to determine whether there
+    * is any alpha or transparency in the image and simply cancel the
+    * background and alpha mode stuff if there isn't.
+    */
+   int input_has_alpha = (png_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0;
+   int input_has_transparency = png_ptr->num_trans > 0;
+
+   /* If no alpha we can optimize. */
+   if (!input_has_alpha)
    {
-          png_ptr->mode |= PNG_BACKGROUND_IS_GRAY;
-          png_ptr->background.gray = png_ptr->background.red;
+      /* Any alpha means background and associative alpha processing is
+       * required, however if the alpha is 0 or 1 throughout OPTIIMIZE_ALPHA
+       * and ENCODE_ALPHA are irrelevant.
+       */
+#     ifdef PNG_READ_ALPHA_MODE_SUPPORTED
+         png_ptr->transformations &= ~PNG_ENCODE_ALPHA;
+         png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA;
+#     endif
+
+      if (!input_has_transparency)
+         png_ptr->transformations &= ~(PNG_COMPOSE | PNG_BACKGROUND_EXPAND);
    }
-#endif
 
+#if defined(PNG_READ_EXPAND_SUPPORTED) && defined(PNG_READ_BACKGROUND_SUPPORTED)
+   /* png_set_background handling - deals with the complexity of whether the
+    * background color is in the file format or the screen format in the case
+    * where an 'expand' will happen.
+    */
+
+   /* The following code cannot be entered in the alpha pre-multiplication case
+    * because PNG_BACKGROUND_EXPAND is cancelled below.
+    */
    if ((png_ptr->transformations & PNG_BACKGROUND_EXPAND) &&
-       (png_ptr->transformations & PNG_EXPAND))
+       (png_ptr->transformations & PNG_EXPAND) &&
+       !(png_ptr->color_type & PNG_COLOR_MASK_COLOR))
+       /* i.e., GRAY or GRAY_ALPHA */
    {
-      if (!(color_type & PNG_COLOR_MASK_COLOR))  /* i.e., GRAY or GRAY_ALPHA */
       {
-         /* expand background and tRNS chunks */
+         /* Expand background and tRNS chunks */
          switch (png_ptr->bit_depth)
          {
             case 1:
                png_ptr->background.gray *= (png_uint_16)0xff;
                png_ptr->background.red = png_ptr->background.green
-                 =  png_ptr->background.blue = png_ptr->background.gray;
+                   =  png_ptr->background.blue = png_ptr->background.gray;
                if (!(png_ptr->transformations & PNG_EXPAND_tRNS))
                {
-                 png_ptr->trans_values.gray *= (png_uint_16)0xff;
-                 png_ptr->trans_values.red = png_ptr->trans_values.green
-                   = png_ptr->trans_values.blue = png_ptr->trans_values.gray;
+                 png_ptr->trans_color.gray *= (png_uint_16)0xff;
+                 png_ptr->trans_color.red = png_ptr->trans_color.green
+                     = png_ptr->trans_color.blue = png_ptr->trans_color.gray;
                }
                break;
+
             case 2:
                png_ptr->background.gray *= (png_uint_16)0x55;
                png_ptr->background.red = png_ptr->background.green
-                 = png_ptr->background.blue = png_ptr->background.gray;
+                   = png_ptr->background.blue = png_ptr->background.gray;
                if (!(png_ptr->transformations & PNG_EXPAND_tRNS))
                {
-                 png_ptr->trans_values.gray *= (png_uint_16)0x55;
-                 png_ptr->trans_values.red = png_ptr->trans_values.green
-                   = png_ptr->trans_values.blue = png_ptr->trans_values.gray;
+                  png_ptr->trans_color.gray *= (png_uint_16)0x55;
+                  png_ptr->trans_color.red = png_ptr->trans_color.green
+                      = png_ptr->trans_color.blue = png_ptr->trans_color.gray;
                }
                break;
+
             case 4:
                png_ptr->background.gray *= (png_uint_16)0x11;
                png_ptr->background.red = png_ptr->background.green
-                 = png_ptr->background.blue = png_ptr->background.gray;
+                   = png_ptr->background.blue = png_ptr->background.gray;
                if (!(png_ptr->transformations & PNG_EXPAND_tRNS))
                {
-                 png_ptr->trans_values.gray *= (png_uint_16)0x11;
-                 png_ptr->trans_values.red = png_ptr->trans_values.green
-                   = png_ptr->trans_values.blue = png_ptr->trans_values.gray;
+                  png_ptr->trans_color.gray *= (png_uint_16)0x11;
+                  png_ptr->trans_color.red = png_ptr->trans_color.green
+                      = png_ptr->trans_color.blue = png_ptr->trans_color.gray;
                }
                break;
+
+            default:
+
             case 8:
+
             case 16:
                png_ptr->background.red = png_ptr->background.green
-                 = png_ptr->background.blue = png_ptr->background.gray;
+                   = png_ptr->background.blue = png_ptr->background.gray;
                break;
          }
       }
-      else if (color_type == PNG_COLOR_TYPE_PALETTE)
+   } /* background expand and (therefore) no alpha association. */
+#endif /* PNG_READ_EXPAND_SUPPORTED && PNG_READ_BACKGROUND_SUPPORTED */
+}
+
+void /* PRIVATE */
+png_init_read_transformations(png_structp png_ptr)
+{
+   png_debug(1, "in png_init_read_transformations");
+
+   /* This internal function is called from png_read_start_row in pngrutil.c
+    * and it is called before the 'rowbytes' calculation is done, so the code
+    * in here can change or update the transformations flags.
+    *
+    * First do updates that do not depend on the details of the PNG image data
+    * being processed.
+    */
+
+#ifdef PNG_READ_GAMMA_SUPPORTED
+   /* Prior to 1.5.4 these tests were performed from png_set_gamma, 1.5.4 adds
+    * png_set_alpha_mode and this is another source for a default file gamma so
+    * the test needs to be performed later - here.  In addition prior to 1.5.4
+    * the tests were repeated for the PALETTE color type here - this is no
+    * longer necessary (and doesn't seem to have been necessary before.)
+    */
+   {
+      /* The following temporary indicates if overall gamma correction is
+       * required.
+       */
+      int gamma_correction = 0;
+
+      if (png_ptr->gamma != 0) /* has been set */
       {
-         png_ptr->background.red   =
-            png_ptr->palette[png_ptr->background.index].red;
-         png_ptr->background.green =
-            png_ptr->palette[png_ptr->background.index].green;
-         png_ptr->background.blue  =
-            png_ptr->palette[png_ptr->background.index].blue;
+         if (png_ptr->screen_gamma != 0) /* screen set too */
+            gamma_correction = png_gamma_threshold(png_ptr->gamma,
+               png_ptr->screen_gamma);
 
-#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED)
-        if (png_ptr->transformations & PNG_INVERT_ALPHA)
-        {
-#if defined(PNG_READ_EXPAND_SUPPORTED)
-           if (!(png_ptr->transformations & PNG_EXPAND_tRNS))
+         else
+            /* Assume the output matches the input; a long time default behavior
+             * of libpng, although the standard has nothing to say about this.
+             */
+            png_ptr->screen_gamma = png_reciprocal(png_ptr->gamma);
+      }
+
+      else if (png_ptr->screen_gamma != 0)
+         /* The converse - assume the file matches the screen, note that this
+          * perhaps undesireable default can (from 1.5.4) be changed by calling
+          * png_set_alpha_mode (even if the alpha handling mode isn't required
+          * or isn't changed from the default.)
+          */
+         png_ptr->gamma = png_reciprocal(png_ptr->screen_gamma);
+
+      else /* neither are set */
+         /* Just in case the following prevents any processing - file and screen
+          * are both assumed to be linear and there is no way to introduce a
+          * third gamma value other than png_set_background with 'UNIQUE', and,
+          * prior to 1.5.4
+          */
+         png_ptr->screen_gamma = png_ptr->gamma = PNG_FP_1;
+
+      /* Now turn the gamma transformation on or off as appropriate.  Notice
+       * that PNG_GAMMA just refers to the file->screen correction.  Alpha
+       * composition may independently cause gamma correction because it needs
+       * linear data (e.g. if the file has a gAMA chunk but the screen gamma
+       * hasn't been specified.)  In any case this flag may get turned off in
+       * the code immediately below if the transform can be handled outside the
+       * row loop.
+       */
+      if (gamma_correction)
+         png_ptr->transformations |= PNG_GAMMA;
+
+      else
+         png_ptr->transformations &= ~PNG_GAMMA;
+   }
 #endif
-           {
-           /* invert the alpha channel (in tRNS) unless the pixels are
-              going to be expanded, in which case leave it for later */
-              int i,istop;
-              istop=(int)png_ptr->num_trans;
-              for (i=0; i<istop; i++)
-                 png_ptr->trans[i] = (png_byte)(255 - png_ptr->trans[i]);
-           }
-        }
+
+   /* Certain transformations have the effect of preventing other
+    * transformations that happen afterward in png_do_read_transformations,
+    * resolve the interdependencies here.  From the code of
+    * png_do_read_transformations the order is:
+    *
+    *  1) PNG_EXPAND (including PNG_EXPAND_tRNS)
+    *  2) PNG_STRIP_ALPHA (if no compose)
+    *  3) PNG_RGB_TO_GRAY
+    *  4) PNG_GRAY_TO_RGB iff !PNG_BACKGROUND_IS_GRAY
+    *  5) PNG_COMPOSE
+    *  6) PNG_GAMMA
+    *  7) PNG_STRIP_ALPHA (if compose)
+    *  8) PNG_ENCODE_ALPHA
+    *  9) PNG_SCALE_16_TO_8
+    * 10) PNG_16_TO_8
+    * 11) PNG_QUANTIZE (converts to palette)
+    * 12) PNG_EXPAND_16
+    * 13) PNG_GRAY_TO_RGB iff PNG_BACKGROUND_IS_GRAY
+    * 14) PNG_INVERT_MONO
+    * 15) PNG_SHIFT
+    * 16) PNG_PACK
+    * 17) PNG_BGR
+    * 18) PNG_PACKSWAP
+    * 19) PNG_FILLER (includes PNG_ADD_ALPHA)
+    * 20) PNG_INVERT_ALPHA
+    * 21) PNG_SWAP_ALPHA
+    * 22) PNG_SWAP_BYTES
+    * 23) PNG_USER_TRANSFORM [must be last]
+    */
+#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
+   if ((png_ptr->transformations & PNG_STRIP_ALPHA) &&
+      !(png_ptr->transformations & PNG_COMPOSE))
+   {
+      /* Stripping the alpha channel happens immediately after the 'expand'
+       * transformations, before all other transformation, so it cancels out
+       * the alpha handling.  It has the side effect negating the effect of
+       * PNG_EXPAND_tRNS too:
+       */
+      png_ptr->transformations &= ~(PNG_BACKGROUND_EXPAND | PNG_ENCODE_ALPHA |
+         PNG_EXPAND_tRNS);
+      png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA;
+
+      /* Kill the tRNS chunk itself too.  Prior to 1.5.4 this did not happen
+       * so transparency information would remain just so long as it wasn't
+       * expanded.  This produces unexpected API changes if the set of things
+       * that do PNG_EXPAND_tRNS changes (perfectly possible given the
+       * documentation - which says ask for what you want, accept what you
+       * get.)  This makes the behavior consistent from 1.5.4:
+       */
+      png_ptr->num_trans = 0;
+   }
+#endif /* STRIP_ALPHA supported, no COMPOSE */
+
+#ifdef PNG_READ_ALPHA_MODE_SUPPORTED
+   /* If the screen gamma is about 1.0 then the OPTIMIZE_ALPHA and ENCODE_ALPHA
+    * settings will have no effect.
+    */
+   if (!png_gamma_significant(png_ptr->screen_gamma))
+   {
+      png_ptr->transformations &= ~PNG_ENCODE_ALPHA;
+      png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA;
+   }
 #endif
 
+#if defined(PNG_READ_EXPAND_SUPPORTED) && \
+   defined(PNG_READ_BACKGROUND_SUPPORTED) && \
+   defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
+   /* Detect gray background and attempt to enable optimization for
+    * gray --> RGB case.
+    *
+    * Note:  if PNG_BACKGROUND_EXPAND is set and color_type is either RGB or
+    * RGB_ALPHA (in which case need_expand is superfluous anyway), the
+    * background color might actually be gray yet not be flagged as such.
+    * This is not a problem for the current code, which uses
+    * PNG_BACKGROUND_IS_GRAY only to decide when to do the
+    * png_do_gray_to_rgb() transformation.
+    *
+    * TODO: this code needs to be revised to avoid the complexity and
+    * interdependencies.  The color type of the background should be recorded in
+    * png_set_background, along with the bit depth, then the code has a record
+    * of exactly what color space the background is currently in.
+    */
+   if (png_ptr->transformations & PNG_BACKGROUND_EXPAND)
+   {
+      /* PNG_BACKGROUND_EXPAND: the background is in the file color space, so if
+       * the file was greyscale the background value is gray.
+       */
+      if (!(png_ptr->color_type & PNG_COLOR_MASK_COLOR))
+         png_ptr->mode |= PNG_BACKGROUND_IS_GRAY;
+   }
+
+   else if (png_ptr->transformations & PNG_COMPOSE)
+   {
+      /* PNG_COMPOSE: png_set_background was called with need_expand false,
+       * so the color is in the color space of the output or png_set_alpha_mode
+       * was called and the color is black.  Ignore RGB_TO_GRAY because that
+       * happens before GRAY_TO_RGB.
+       */
+      if (png_ptr->transformations & PNG_GRAY_TO_RGB)
+      {
+         if (png_ptr->background.red == png_ptr->background.green &&
+             png_ptr->background.red == png_ptr->background.blue)
+         {
+            png_ptr->mode |= PNG_BACKGROUND_IS_GRAY;
+            png_ptr->background.gray = png_ptr->background.red;
+         }
       }
    }
-#endif
+#endif /* PNG_READ_GRAY_TO_RGB_SUPPORTED (etc) */
+
+   /* For indexed PNG data (PNG_COLOR_TYPE_PALETTE) many of the transformations
+    * can be performed directly on the palette, and some (such as rgb to gray)
+    * can be optimized inside the palette.  This is particularly true of the
+    * composite (background and alpha) stuff, which can be pretty much all done
+    * in the palette even if the result is expanded to RGB or gray afterward.
+    *
+    * NOTE: this is Not Yet Implemented, the code behaves as in 1.5.1 and
+    * earlier and the palette stuff is actually handled on the first row.  This
+    * leads to the reported bug that the palette returned by png_get_PLTE is not
+    * updated.
+    */
+   if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
+      png_init_palette_transformations(png_ptr);
 
-#if defined(PNG_READ_BACKGROUND_SUPPORTED) && defined(PNG_READ_GAMMA_SUPPORTED)
-   png_ptr->background_1 = png_ptr->background;
-#endif
-#if defined(PNG_READ_GAMMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED)
+   else
+      png_init_rgb_transformations(png_ptr);
 
-   if ((color_type == PNG_COLOR_TYPE_PALETTE && png_ptr->num_trans != 0)
-       && (fabs(png_ptr->screen_gamma * png_ptr->gamma - 1.0)
-         < PNG_GAMMA_THRESHOLD))
+#if defined(PNG_READ_BACKGROUND_SUPPORTED) && \
+   defined(PNG_READ_EXPAND_16_SUPPORTED)
+   if ((png_ptr->transformations & PNG_EXPAND_16) &&
+      (png_ptr->transformations & PNG_COMPOSE) &&
+      !(png_ptr->transformations & PNG_BACKGROUND_EXPAND) &&
+      png_ptr->bit_depth != 16)
    {
-    int i,k;
-    k=0;
-    for (i=0; i<png_ptr->num_trans; i++)
-    {
-      if (png_ptr->trans[i] != 0 && png_ptr->trans[i] != 0xff)
-        k=1; /* partial transparency is present */
-    }
-    if (k == 0)
-      png_ptr->transformations &= (~PNG_GAMMA);
+      /* TODO: fix this.  Because the expand_16 operation is after the compose
+       * handling the background color must be 8, not 16, bits deep, but the
+       * application will supply a 16-bit value so reduce it here.
+       *
+       * The PNG_BACKGROUND_EXPAND code above does not expand to 16 bits at
+       * present, so that case is ok (until do_expand_16 is moved.)
+       *
+       * NOTE: this discards the low 16 bits of the user supplied background
+       * color, but until expand_16 works properly there is no choice!
+       */
+#     define CHOP(x) (x)=((png_uint_16)(((png_uint_32)(x)*255+32895) >> 16))
+      CHOP(png_ptr->background.red);
+      CHOP(png_ptr->background.green);
+      CHOP(png_ptr->background.blue);
+      CHOP(png_ptr->background.gray);
+#     undef CHOP
    }
+#endif /* PNG_READ_BACKGROUND_SUPPORTED && PNG_READ_EXPAND_16_SUPPORTED */
+
+   /* NOTE: below 'PNG_READ_ALPHA_MODE_SUPPORTED' is presumed to also enable the
+    * background support (see the comments in scripts/pnglibconf.dfa), this
+    * allows pre-multiplication of the alpha channel to be implemented as
+    * compositing on black.  This is probably sub-optimal and has been done in
+    * 1.5.4 betas simply to enable external critique and testing (i.e. to
+    * implement the new API quickly, without lots of internal changes.)
+    */
 
-   if ((png_ptr->transformations & (PNG_GAMMA | PNG_RGB_TO_GRAY)) &&
-        png_ptr->gamma != 0.0)
+#ifdef PNG_READ_GAMMA_SUPPORTED
+#  ifdef PNG_READ_BACKGROUND_SUPPORTED
+      /* Includes ALPHA_MODE */
+      png_ptr->background_1 = png_ptr->background;
+#  endif
+
+   /* This needs to change - in the palette image case a whole set of tables are
+    * built when it would be quicker to just calculate the correct value for
+    * each palette entry directly.  Also, the test is too tricky - why check
+    * PNG_RGB_TO_GRAY if PNG_GAMMA is not set?  The answer seems to be that
+    * PNG_GAMMA is cancelled even if the gamma is known?  The test excludes the
+    * PNG_COMPOSE case, so apparently if there is no *overall* gamma correction
+    * the gamma tables will not be built even if composition is required on a
+    * gamma encoded value.
+    *
+    * In 1.5.4 this is addressed below by an additional check on the individual
+    * file gamma - if it is not 1.0 both RGB_TO_GRAY and COMPOSE need the
+    * tables.
+    */
+   if ((png_ptr->transformations & PNG_GAMMA)
+      || ((png_ptr->transformations & PNG_RGB_TO_GRAY)
+         && (png_gamma_significant(png_ptr->gamma) ||
+            png_gamma_significant(png_ptr->screen_gamma)))
+      || ((png_ptr->transformations & PNG_COMPOSE)
+         && (png_gamma_significant(png_ptr->gamma)
+            || png_gamma_significant(png_ptr->screen_gamma)
+#  ifdef PNG_READ_BACKGROUND_SUPPORTED
+            || (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_UNIQUE
+               && png_gamma_significant(png_ptr->background_gamma))
+#  endif
+      )) || ((png_ptr->transformations & PNG_ENCODE_ALPHA)
+         && png_gamma_significant(png_ptr->screen_gamma))
+      )
    {
-      png_build_gamma_table(png_ptr);
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
-      if (png_ptr->transformations & PNG_BACKGROUND)
+      png_build_gamma_table(png_ptr, png_ptr->bit_depth);
+
+#ifdef PNG_READ_BACKGROUND_SUPPORTED
+      if (png_ptr->transformations & PNG_COMPOSE)
       {
-         if (color_type == PNG_COLOR_TYPE_PALETTE)
+         if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
          {
-           /* could skip if no transparency and
-           */
+            /* We don't get to here unless there is a tRNS chunk with non-opaque
+             * entries - see the checking code at the start of this function.
+             */
             png_color back, back_1;
             png_colorp palette = png_ptr->palette;
             int num_palette = png_ptr->num_palette;
             int i;
             if (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_FILE)
             {
+
                back.red = png_ptr->gamma_table[png_ptr->background.red];
                back.green = png_ptr->gamma_table[png_ptr->background.green];
                back.blue = png_ptr->gamma_table[png_ptr->background.blue];
@@ -900,73 +1566,90 @@ png_init_read_transformations(png_structp png_ptr)
             }
             else
             {
-               double g, gs;
+               png_fixed_point g, gs;
 
                switch (png_ptr->background_gamma_type)
                {
                   case PNG_BACKGROUND_GAMMA_SCREEN:
                      g = (png_ptr->screen_gamma);
-                     gs = 1.0;
+                     gs = PNG_FP_1;
                      break;
+
                   case PNG_BACKGROUND_GAMMA_FILE:
-                     g = 1.0 / (png_ptr->gamma);
-                     gs = 1.0 / (png_ptr->gamma * png_ptr->screen_gamma);
+                     g = png_reciprocal(png_ptr->gamma);
+                     gs = png_reciprocal2(png_ptr->gamma,
+                        png_ptr->screen_gamma);
                      break;
+
                   case PNG_BACKGROUND_GAMMA_UNIQUE:
-                     g = 1.0 / (png_ptr->background_gamma);
-                     gs = 1.0 / (png_ptr->background_gamma *
-                                 png_ptr->screen_gamma);
+                     g = png_reciprocal(png_ptr->background_gamma);
+                     gs = png_reciprocal2(png_ptr->background_gamma,
+                        png_ptr->screen_gamma);
                      break;
                   default:
-                     g = 1.0;    /* back_1 */
-                     gs = 1.0;   /* back */
+                     g = PNG_FP_1;    /* back_1 */
+                     gs = PNG_FP_1;   /* back */
+                     break;
+               }
+
+               if (png_gamma_significant(gs))
+               {
+                  back.red = png_gamma_8bit_correct(png_ptr->background.red,
+                      gs);
+                  back.green = png_gamma_8bit_correct(png_ptr->background.green,
+                      gs);
+                  back.blue = png_gamma_8bit_correct(png_ptr->background.blue,
+                      gs);
                }
 
-               if ( fabs(gs - 1.0) < PNG_GAMMA_THRESHOLD)
+               else
                {
                   back.red   = (png_byte)png_ptr->background.red;
                   back.green = (png_byte)png_ptr->background.green;
                   back.blue  = (png_byte)png_ptr->background.blue;
                }
-               else
+
+               if (png_gamma_significant(g))
                {
-                  back.red = (png_byte)(pow(
-                     (double)png_ptr->background.red/255, gs) * 255.0 + .5);
-                  back.green = (png_byte)(pow(
-                     (double)png_ptr->background.green/255, gs) * 255.0 + .5);
-                  back.blue = (png_byte)(pow(
-                     (double)png_ptr->background.blue/255, gs) * 255.0 + .5);
+                  back_1.red = png_gamma_8bit_correct(png_ptr->background.red,
+                     g);
+                  back_1.green = png_gamma_8bit_correct(
+                     png_ptr->background.green, g);
+                  back_1.blue = png_gamma_8bit_correct(png_ptr->background.blue,
+                     g);
                }
 
-               back_1.red = (png_byte)(pow(
-                  (double)png_ptr->background.red/255, g) * 255.0 + .5);
-               back_1.green = (png_byte)(pow(
-                  (double)png_ptr->background.green/255, g) * 255.0 + .5);
-               back_1.blue = (png_byte)(pow(
-                  (double)png_ptr->background.blue/255, g) * 255.0 + .5);
+               else
+               {
+                  back_1.red   = (png_byte)png_ptr->background.red;
+                  back_1.green = (png_byte)png_ptr->background.green;
+                  back_1.blue  = (png_byte)png_ptr->background.blue;
+               }
             }
+
             for (i = 0; i < num_palette; i++)
             {
-               if (i < (int)png_ptr->num_trans && png_ptr->trans[i] != 0xff)
+               if (i < (int)png_ptr->num_trans &&
+                   png_ptr->trans_alpha[i] != 0xff)
                {
-                  if (png_ptr->trans[i] == 0)
+                  if (png_ptr->trans_alpha[i] == 0)
                   {
                      palette[i] = back;
                   }
-                  else /* if (png_ptr->trans[i] != 0xff) */
+                  else /* if (png_ptr->trans_alpha[i] != 0xff) */
                   {
                      png_byte v, w;
 
                      v = png_ptr->gamma_to_1[palette[i].red];
-                     png_composite(w, v, png_ptr->trans[i], back_1.red);
+                     png_composite(w, v, png_ptr->trans_alpha[i], back_1.red);
                      palette[i].red = png_ptr->gamma_from_1[w];
 
                      v = png_ptr->gamma_to_1[palette[i].green];
-                     png_composite(w, v, png_ptr->trans[i], back_1.green);
+                     png_composite(w, v, png_ptr->trans_alpha[i], back_1.green);
                      palette[i].green = png_ptr->gamma_from_1[w];
 
                      v = png_ptr->gamma_to_1[palette[i].blue];
-                     png_composite(w, v, png_ptr->trans[i], back_1.blue);
+                     png_composite(w, v, png_ptr->trans_alpha[i], back_1.blue);
                      palette[i].blue = png_ptr->gamma_from_1[w];
                   }
                }
@@ -977,90 +1660,118 @@ png_init_read_transformations(png_structp png_ptr)
                   palette[i].blue = png_ptr->gamma_table[palette[i].blue];
                }
             }
-         }
+
+            /* Prevent the transformations being done again.
+             *
+             * NOTE: this is highly dubious; it zaps the transformations in
+             * place.  This seems inconsistent with the general treatment of the
+             * transformations elsewhere.
+             */
+            png_ptr->transformations &= ~(PNG_COMPOSE | PNG_GAMMA);
+         } /* color_type == PNG_COLOR_TYPE_PALETTE */
+
          /* if (png_ptr->background_gamma_type!=PNG_BACKGROUND_GAMMA_UNKNOWN) */
-         else
-         /* color_type != PNG_COLOR_TYPE_PALETTE */
+         else /* color_type != PNG_COLOR_TYPE_PALETTE */
          {
-            double m = (double)(((png_uint_32)1 << png_ptr->bit_depth) - 1);
-            double g = 1.0;
-            double gs = 1.0;
+            png_fixed_point g = PNG_FP_1;
+            png_fixed_point gs = PNG_FP_1;
 
             switch (png_ptr->background_gamma_type)
             {
                case PNG_BACKGROUND_GAMMA_SCREEN:
-                  g = (png_ptr->screen_gamma);
-                  gs = 1.0;
+                  g = png_ptr->screen_gamma;
+                  /* gs = PNG_FP_1; */
                   break;
+
                case PNG_BACKGROUND_GAMMA_FILE:
-                  g = 1.0 / (png_ptr->gamma);
-                  gs = 1.0 / (png_ptr->gamma * png_ptr->screen_gamma);
+                  g = png_reciprocal(png_ptr->gamma);
+                  gs = png_reciprocal2(png_ptr->gamma, png_ptr->screen_gamma);
                   break;
+
                case PNG_BACKGROUND_GAMMA_UNIQUE:
-                  g = 1.0 / (png_ptr->background_gamma);
-                  gs = 1.0 / (png_ptr->background_gamma *
-                     png_ptr->screen_gamma);
+                  g = png_reciprocal(png_ptr->background_gamma);
+                  gs = png_reciprocal2(png_ptr->background_gamma,
+                      png_ptr->screen_gamma);
                   break;
+
+               default:
+                  png_error(png_ptr, "invalid background gamma type");
             }
 
-            png_ptr->background_1.gray = (png_uint_16)(pow(
-               (double)png_ptr->background.gray / m, g) * m + .5);
-            png_ptr->background.gray = (png_uint_16)(pow(
-               (double)png_ptr->background.gray / m, gs) * m + .5);
+            png_ptr->background_1.gray = png_gamma_correct(png_ptr,
+                png_ptr->background.gray, g);
+
+            png_ptr->background.gray = png_gamma_correct(png_ptr,
+                png_ptr->background.gray, gs);
 
             if ((png_ptr->background.red != png_ptr->background.green) ||
                 (png_ptr->background.red != png_ptr->background.blue) ||
                 (png_ptr->background.red != png_ptr->background.gray))
             {
                /* RGB or RGBA with color background */
-               png_ptr->background_1.red = (png_uint_16)(pow(
-                  (double)png_ptr->background.red / m, g) * m + .5);
-               png_ptr->background_1.green = (png_uint_16)(pow(
-                  (double)png_ptr->background.green / m, g) * m + .5);
-               png_ptr->background_1.blue = (png_uint_16)(pow(
-                  (double)png_ptr->background.blue / m, g) * m + .5);
-               png_ptr->background.red = (png_uint_16)(pow(
-                  (double)png_ptr->background.red / m, gs) * m + .5);
-               png_ptr->background.green = (png_uint_16)(pow(
-                  (double)png_ptr->background.green / m, gs) * m + .5);
-               png_ptr->background.blue = (png_uint_16)(pow(
-                  (double)png_ptr->background.blue / m, gs) * m + .5);
+               png_ptr->background_1.red = png_gamma_correct(png_ptr,
+                   png_ptr->background.red, g);
+
+               png_ptr->background_1.green = png_gamma_correct(png_ptr,
+                   png_ptr->background.green, g);
+
+               png_ptr->background_1.blue = png_gamma_correct(png_ptr,
+                   png_ptr->background.blue, g);
+
+               png_ptr->background.red = png_gamma_correct(png_ptr,
+                   png_ptr->background.red, gs);
+
+               png_ptr->background.green = png_gamma_correct(png_ptr,
+                   png_ptr->background.green, gs);
+
+               png_ptr->background.blue = png_gamma_correct(png_ptr,
+                   png_ptr->background.blue, gs);
             }
+
             else
             {
                /* GRAY, GRAY ALPHA, RGB, or RGBA with gray background */
                png_ptr->background_1.red = png_ptr->background_1.green
-                 = png_ptr->background_1.blue = png_ptr->background_1.gray;
+                   = png_ptr->background_1.blue = png_ptr->background_1.gray;
+
                png_ptr->background.red = png_ptr->background.green
-                 = png_ptr->background.blue = png_ptr->background.gray;
+                   = png_ptr->background.blue = png_ptr->background.gray;
             }
-         }
-      }
+         } /* color_type != PNG_COLOR_TYPE_PALETTE */
+      }/* png_ptr->transformations & PNG_BACKGROUND */
+
       else
-      /* transformation does not include PNG_BACKGROUND */
+      /* Transformation does not include PNG_BACKGROUND */
 #endif /* PNG_READ_BACKGROUND_SUPPORTED */
-      if (color_type == PNG_COLOR_TYPE_PALETTE)
+      if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
       {
          png_colorp palette = png_ptr->palette;
          int num_palette = png_ptr->num_palette;
          int i;
 
+         /*NOTE: there are other transformations that should probably be in here
+          * too.
+          */
          for (i = 0; i < num_palette; i++)
          {
             palette[i].red = png_ptr->gamma_table[palette[i].red];
             palette[i].green = png_ptr->gamma_table[palette[i].green];
             palette[i].blue = png_ptr->gamma_table[palette[i].blue];
          }
-      }
+
+         /* Done the gamma correction. */
+         png_ptr->transformations &= ~PNG_GAMMA;
+      } /* color_type == PALETTE && !PNG_BACKGROUND transformation */
    }
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
+#ifdef PNG_READ_BACKGROUND_SUPPORTED
    else
 #endif
-#endif /* PNG_READ_GAMMA_SUPPORTED && PNG_FLOATING_POINT_SUPPORTED */
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
-   /* No GAMMA transformation */
-   if ((png_ptr->transformations & PNG_BACKGROUND) &&
-       (color_type == PNG_COLOR_TYPE_PALETTE))
+#endif /* PNG_READ_GAMMA_SUPPORTED */
+
+#ifdef PNG_READ_BACKGROUND_SUPPORTED
+   /* No GAMMA transformation (see the hanging else 4 lines above) */
+   if ((png_ptr->transformations & PNG_COMPOSE) &&
+       (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE))
    {
       int i;
       int istop = (int)png_ptr->num_trans;
@@ -1073,27 +1784,32 @@ png_init_read_transformations(png_structp png_ptr)
 
       for (i = 0; i < istop; i++)
       {
-         if (png_ptr->trans[i] == 0)
+         if (png_ptr->trans_alpha[i] == 0)
          {
             palette[i] = back;
          }
-         else if (png_ptr->trans[i] != 0xff)
+
+         else if (png_ptr->trans_alpha[i] != 0xff)
          {
             /* The png_composite() macro is defined in png.h */
             png_composite(palette[i].red, palette[i].red,
-               png_ptr->trans[i], back.red);
+                png_ptr->trans_alpha[i], back.red);
+
             png_composite(palette[i].green, palette[i].green,
-               png_ptr->trans[i], back.green);
+                png_ptr->trans_alpha[i], back.green);
+
             png_composite(palette[i].blue, palette[i].blue,
-               png_ptr->trans[i], back.blue);
+                png_ptr->trans_alpha[i], back.blue);
          }
       }
+
+      png_ptr->transformations &= ~PNG_COMPOSE;
    }
 #endif /* PNG_READ_BACKGROUND_SUPPORTED */
 
-#if defined(PNG_READ_SHIFT_SUPPORTED)
+#ifdef PNG_READ_SHIFT_SUPPORTED
    if ((png_ptr->transformations & PNG_SHIFT) &&
-      (color_type == PNG_COLOR_TYPE_PALETTE))
+       (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE))
    {
       png_uint_16 i;
       png_uint_16 istop = png_ptr->num_palette;
@@ -1103,10 +1819,13 @@ png_init_read_transformations(png_structp png_ptr)
 
       if (sr < 0 || sr > 8)
          sr = 0;
+
       if (sg < 0 || sg > 8)
          sg = 0;
+
       if (sb < 0 || sb > 8)
          sb = 0;
+
       for (i = 0; i < istop; i++)
       {
          png_ptr->palette[i].red >>= sr;
@@ -1115,12 +1834,6 @@ png_init_read_transformations(png_structp png_ptr)
       }
    }
 #endif  /* PNG_READ_SHIFT_SUPPORTED */
- }
-#if !defined(PNG_READ_GAMMA_SUPPORTED) && !defined(PNG_READ_SHIFT_SUPPORTED) \
- && !defined(PNG_READ_BACKGROUND_SUPPORTED)
-   if(png_ptr)
-      return;
-#endif
 }
 
 /* Modify the info structure to reflect the transformations.  The
@@ -1130,16 +1843,23 @@ png_init_read_transformations(png_structp png_ptr)
 void /* PRIVATE */
 png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
 {
-   png_debug(1, "in png_read_transform_info\n");
-#if defined(PNG_READ_EXPAND_SUPPORTED)
+   png_debug(1, "in png_read_transform_info");
+
+#ifdef PNG_READ_EXPAND_SUPPORTED
    if (png_ptr->transformations & PNG_EXPAND)
    {
       if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
       {
-         if (png_ptr->num_trans && (png_ptr->transformations & PNG_EXPAND_tRNS))
+         /* This check must match what actually happens in
+          * png_do_expand_palette; if it ever checks the tRNS chunk to see if
+          * it is all opaque we must do the same (at present it does not.)
+          */
+         if (png_ptr->num_trans > 0)
             info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA;
+
          else
             info_ptr->color_type = PNG_COLOR_TYPE_RGB;
+
          info_ptr->bit_depth = 8;
          info_ptr->num_trans = 0;
       }
@@ -1148,118 +1868,167 @@ png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
          if (png_ptr->num_trans)
          {
             if (png_ptr->transformations & PNG_EXPAND_tRNS)
-              info_ptr->color_type |= PNG_COLOR_MASK_ALPHA;
-            else
-              info_ptr->color_type |= PNG_COLOR_MASK_COLOR;
+               info_ptr->color_type |= PNG_COLOR_MASK_ALPHA;
          }
          if (info_ptr->bit_depth < 8)
             info_ptr->bit_depth = 8;
+
          info_ptr->num_trans = 0;
       }
    }
 #endif
 
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
-   if (png_ptr->transformations & PNG_BACKGROUND)
-   {
-      info_ptr->color_type &= ~PNG_COLOR_MASK_ALPHA;
-      info_ptr->num_trans = 0;
+#if defined(PNG_READ_BACKGROUND_SUPPORTED) ||\
+   defined(PNG_READ_ALPHA_MODE_SUPPORTED)
+   /* The following is almost certainly wrong unless the background value is in
+    * the screen space!
+    */
+   if (png_ptr->transformations & PNG_COMPOSE)
       info_ptr->background = png_ptr->background;
-   }
 #endif
 
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-   if (png_ptr->transformations & PNG_GAMMA)
-   {
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-      info_ptr->gamma = png_ptr->gamma;
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
-      info_ptr->int_gamma = png_ptr->int_gamma;
-#endif
-   }
+#ifdef PNG_READ_GAMMA_SUPPORTED
+   /* The following used to be conditional on PNG_GAMMA (prior to 1.5.4),
+    * however it seems that the code in png_init_read_transformations, which has
+    * been called before this from png_read_update_info->png_read_start_row
+    * sometimes does the gamma transform and cancels the flag.
+    */
+   info_ptr->gamma = png_ptr->gamma;
 #endif
 
-#if defined(PNG_READ_16_TO_8_SUPPORTED)
-   if ((png_ptr->transformations & PNG_16_TO_8) && (info_ptr->bit_depth == 16))
-      info_ptr->bit_depth = 8;
-#endif
+   if (info_ptr->bit_depth == 16)
+   {
+#  ifdef PNG_READ_16BIT_SUPPORTED
+#     ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
+         if (png_ptr->transformations & PNG_SCALE_16_TO_8)
+            info_ptr->bit_depth = 8;
+#     endif
+
+#     ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
+         if (png_ptr->transformations & PNG_16_TO_8)
+            info_ptr->bit_depth = 8;
+#     endif
 
-#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
+#  else
+      /* No 16 bit support: force chopping 16-bit input down to 8, in this case
+       * the app program can chose if both APIs are available by setting the
+       * correct scaling to use.
+       */
+#     ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
+         /* For compatibility with previous versions use the strip method by
+          * default.  This code works because if PNG_SCALE_16_TO_8 is already
+          * set the code below will do that in preference to the chop.
+          */
+         png_ptr->transformations |= PNG_16_TO_8;
+         info_ptr->bit_depth = 8;
+#     else
+
+#        if PNG_READ_SCALE_16_TO_8_SUPPORTED
+            png_ptr->transformations |= PNG_SCALE_16_TO_8;
+            info_ptr->bit_depth = 8;
+#        else
+
+            CONFIGURATION ERROR: you must enable at least one 16 to 8 method
+#        endif
+#    endif
+#endif /* !READ_16BIT_SUPPORTED */
+   }
+
+#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
    if (png_ptr->transformations & PNG_GRAY_TO_RGB)
       info_ptr->color_type |= PNG_COLOR_MASK_COLOR;
 #endif
 
-#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
+#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
    if (png_ptr->transformations & PNG_RGB_TO_GRAY)
       info_ptr->color_type &= ~PNG_COLOR_MASK_COLOR;
 #endif
 
-#if defined(PNG_READ_DITHER_SUPPORTED)
-   if (png_ptr->transformations & PNG_DITHER)
+#ifdef PNG_READ_QUANTIZE_SUPPORTED
+   if (png_ptr->transformations & PNG_QUANTIZE)
    {
       if (((info_ptr->color_type == PNG_COLOR_TYPE_RGB) ||
-         (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)) &&
-         png_ptr->palette_lookup && info_ptr->bit_depth == 8)
+          (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)) &&
+          png_ptr->palette_lookup && info_ptr->bit_depth == 8)
       {
          info_ptr->color_type = PNG_COLOR_TYPE_PALETTE;
       }
    }
 #endif
 
-#if defined(PNG_READ_PACK_SUPPORTED)
+#ifdef PNG_READ_EXPAND_16_SUPPORTED
+   if (png_ptr->transformations & PNG_EXPAND_16 && info_ptr->bit_depth == 8 &&
+      info_ptr->color_type != PNG_COLOR_TYPE_PALETTE)
+   {
+      info_ptr->bit_depth = 16;
+   }
+#endif
+
+#ifdef PNG_READ_PACK_SUPPORTED
    if ((png_ptr->transformations & PNG_PACK) && (info_ptr->bit_depth < 8))
       info_ptr->bit_depth = 8;
 #endif
 
    if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
       info_ptr->channels = 1;
+
    else if (info_ptr->color_type & PNG_COLOR_MASK_COLOR)
       info_ptr->channels = 3;
+
    else
       info_ptr->channels = 1;
 
-#if defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
-   if (png_ptr->flags & PNG_FLAG_STRIP_ALPHA)
+#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
+   if (png_ptr->transformations & PNG_STRIP_ALPHA)
+   {
       info_ptr->color_type &= ~PNG_COLOR_MASK_ALPHA;
+      info_ptr->num_trans = 0;
+   }
 #endif
 
    if (info_ptr->color_type & PNG_COLOR_MASK_ALPHA)
       info_ptr->channels++;
 
-#if defined(PNG_READ_FILLER_SUPPORTED)
+#ifdef PNG_READ_FILLER_SUPPORTED
    /* STRIP_ALPHA and FILLER allowed:  MASK_ALPHA bit stripped above */
    if ((png_ptr->transformations & PNG_FILLER) &&
        ((info_ptr->color_type == PNG_COLOR_TYPE_RGB) ||
        (info_ptr->color_type == PNG_COLOR_TYPE_GRAY)))
    {
       info_ptr->channels++;
-      /* if adding a true alpha channel not just filler */
-#if !defined(PNG_1_0_X)
+      /* If adding a true alpha channel not just filler */
       if (png_ptr->transformations & PNG_ADD_ALPHA)
-        info_ptr->color_type |= PNG_COLOR_MASK_ALPHA;
-#endif
+         info_ptr->color_type |= PNG_COLOR_MASK_ALPHA;
    }
 #endif
 
 #if defined(PNG_USER_TRANSFORM_PTR_SUPPORTED) && \
 defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
-   if(png_ptr->transformations & PNG_USER_TRANSFORM)
-     {
-       if(info_ptr->bit_depth < png_ptr->user_transform_depth)
+   if (png_ptr->transformations & PNG_USER_TRANSFORM)
+   {
+      if (info_ptr->bit_depth < png_ptr->user_transform_depth)
          info_ptr->bit_depth = png_ptr->user_transform_depth;
-       if(info_ptr->channels < png_ptr->user_transform_channels)
+
+      if (info_ptr->channels < png_ptr->user_transform_channels)
          info_ptr->channels = png_ptr->user_transform_channels;
-     }
+   }
 #endif
 
    info_ptr->pixel_depth = (png_byte)(info_ptr->channels *
-      info_ptr->bit_depth);
+       info_ptr->bit_depth);
+
+   info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, info_ptr->width);
 
-   info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth,info_ptr->width);
+   /* Adding in 1.5.4: cache the above value in png_struct so that we can later
+    * check in png_rowbytes that the user buffer won't get overwritten.  Note
+    * that the field is not always set - if png_read_update_info isn't called
+    * the application has to either not do any transforms or get the calculation
+    * right itself.
+    */
+   png_ptr->info_rowbytes = info_ptr->rowbytes;
 
-#if !defined(PNG_READ_EXPAND_SUPPORTED)
-   if(png_ptr)
+#ifndef PNG_READ_EXPAND_SUPPORTED
+   if (png_ptr)
       return;
 #endif
 }
@@ -1271,230 +2040,280 @@ defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
 void /* PRIVATE */
 png_do_read_transformations(png_structp png_ptr)
 {
-   png_debug(1, "in png_do_read_transformations\n");
-#if !defined(PNG_USELESS_TESTS_SUPPORTED)
+   png_debug(1, "in png_do_read_transformations");
+
    if (png_ptr->row_buf == NULL)
    {
-#if !defined(PNG_NO_STDIO) && !defined(_WIN32_WCE)
-      char msg[50];
-
-      sprintf(msg, "NULL row buffer for row %ld, pass %d", png_ptr->row_number,
-         png_ptr->pass);
-      png_error(png_ptr, msg);
-#else
+      /* Prior to 1.5.4 this output row/pass where the NULL pointer is, but this
+       * error is incredibly rare and incredibly easy to debug without this
+       * information.
+       */
       png_error(png_ptr, "NULL row buffer");
-#endif
    }
-#endif
 
-#if defined(PNG_READ_EXPAND_SUPPORTED)
+   /* The following is debugging; prior to 1.5.4 the code was never compiled in;
+    * in 1.5.4 PNG_FLAG_DETECT_UNINITIALIZED was added and the macro
+    * PNG_WARN_UNINITIALIZED_ROW removed.  In 1.5 the new flag is set only for
+    * selected new APIs to ensure that there is no API change.
+    */
+   if ((png_ptr->flags & PNG_FLAG_DETECT_UNINITIALIZED) != 0 &&
+      !(png_ptr->flags & PNG_FLAG_ROW_INIT))
+   {
+      /* Application has failed to call either png_read_start_image() or
+       * png_read_update_info() after setting transforms that expand pixels.
+       * This check added to libpng-1.2.19 (but not enabled until 1.5.4).
+       */
+      png_error(png_ptr, "Uninitialized row");
+   }
+
+#ifdef PNG_READ_EXPAND_SUPPORTED
    if (png_ptr->transformations & PNG_EXPAND)
    {
       if (png_ptr->row_info.color_type == PNG_COLOR_TYPE_PALETTE)
       {
          png_do_expand_palette(&(png_ptr->row_info), png_ptr->row_buf + 1,
-            png_ptr->palette, png_ptr->trans, png_ptr->num_trans);
+             png_ptr->palette, png_ptr->trans_alpha, png_ptr->num_trans);
       }
+
       else
       {
-         if (png_ptr->num_trans && (png_ptr->transformations & PNG_EXPAND_tRNS))
+         if (png_ptr->num_trans &&
+             (png_ptr->transformations & PNG_EXPAND_tRNS))
             png_do_expand(&(png_ptr->row_info), png_ptr->row_buf + 1,
-               &(png_ptr->trans_values));
+                &(png_ptr->trans_color));
+
          else
             png_do_expand(&(png_ptr->row_info), png_ptr->row_buf + 1,
-               NULL);
+                NULL);
       }
    }
 #endif
 
-#if defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
-   if (png_ptr->flags & PNG_FLAG_STRIP_ALPHA)
-      png_do_strip_filler(&(png_ptr->row_info), png_ptr->row_buf + 1,
-         PNG_FLAG_FILLER_AFTER | (png_ptr->flags & PNG_FLAG_STRIP_ALPHA));
+#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
+   if ((png_ptr->transformations & PNG_STRIP_ALPHA) &&
+      !(png_ptr->transformations & PNG_COMPOSE) &&
+      (png_ptr->row_info.color_type == PNG_COLOR_TYPE_RGB_ALPHA ||
+      png_ptr->row_info.color_type == PNG_COLOR_TYPE_GRAY_ALPHA))
+      png_do_strip_channel(&(png_ptr->row_info), png_ptr->row_buf + 1,
+         0 /* at_start == false, because SWAP_ALPHA happens later */);
 #endif
 
-#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
+#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
    if (png_ptr->transformations & PNG_RGB_TO_GRAY)
    {
       int rgb_error =
-         png_do_rgb_to_gray(png_ptr, &(png_ptr->row_info), png_ptr->row_buf + 1);
-      if(rgb_error)
+          png_do_rgb_to_gray(png_ptr, &(png_ptr->row_info),
+              png_ptr->row_buf + 1);
+
+      if (rgb_error)
       {
          png_ptr->rgb_to_gray_status=1;
-         if(png_ptr->transformations & PNG_RGB_TO_GRAY_WARN)
+         if ((png_ptr->transformations & PNG_RGB_TO_GRAY) ==
+             PNG_RGB_TO_GRAY_WARN)
             png_warning(png_ptr, "png_do_rgb_to_gray found nongray pixel");
-         if(png_ptr->transformations & PNG_RGB_TO_GRAY_ERR)
+
+         if ((png_ptr->transformations & PNG_RGB_TO_GRAY) ==
+             PNG_RGB_TO_GRAY_ERR)
             png_error(png_ptr, "png_do_rgb_to_gray found nongray pixel");
       }
    }
 #endif
 
-/*
-From Andreas Dilger e-mail to png-implement, 26 March 1998:
-
-  In most cases, the "simple transparency" should be done prior to doing
-  gray-to-RGB, or you will have to test 3x as many bytes to check if a
-  pixel is transparent.  You would also need to make sure that the
-  transparency information is upgraded to RGB.
-
-  To summarize, the current flow is:
-  - Gray + simple transparency -> compare 1 or 2 gray bytes and composite
-                                  with background "in place" if transparent,
-                                  convert to RGB if necessary
-  - Gray + alpha -> composite with gray background and remove alpha bytes,
-                                  convert to RGB if necessary
-
-  To support RGB backgrounds for gray images we need:
-  - Gray + simple transparency -> convert to RGB + simple transparency, compare
-                                  3 or 6 bytes and composite with background
-                                  "in place" if transparent (3x compare/pixel
-                                  compared to doing composite with gray bkgrnd)
-  - Gray + alpha -> convert to RGB + alpha, composite with background and
-                                  remove alpha bytes (3x float operations/pixel
-                                  compared with composite on gray background)
-
-  Greg's change will do this.  The reason it wasn't done before is for
-  performance, as this increases the per-pixel operations.  If we would check
-  in advance if the background was gray or RGB, and position the gray-to-RGB
-  transform appropriately, then it would save a lot of work/time.
+/* From Andreas Dilger e-mail to png-implement, 26 March 1998:
+ *
+ *   In most cases, the "simple transparency" should be done prior to doing
+ *   gray-to-RGB, or you will have to test 3x as many bytes to check if a
+ *   pixel is transparent.  You would also need to make sure that the
+ *   transparency information is upgraded to RGB.
+ *
+ *   To summarize, the current flow is:
+ *   - Gray + simple transparency -> compare 1 or 2 gray bytes and composite
+ *                                   with background "in place" if transparent,
+ *                                   convert to RGB if necessary
+ *   - Gray + alpha -> composite with gray background and remove alpha bytes,
+ *                                   convert to RGB if necessary
+ *
+ *   To support RGB backgrounds for gray images we need:
+ *   - Gray + simple transparency -> convert to RGB + simple transparency,
+ *                                   compare 3 or 6 bytes and composite with
+ *                                   background "in place" if transparent
+ *                                   (3x compare/pixel compared to doing
+ *                                   composite with gray bkgrnd)
+ *   - Gray + alpha -> convert to RGB + alpha, composite with background and
+ *                                   remove alpha bytes (3x float
+ *                                   operations/pixel compared with composite
+ *                                   on gray background)
+ *
+ *  Greg's change will do this.  The reason it wasn't done before is for
+ *  performance, as this increases the per-pixel operations.  If we would check
+ *  in advance if the background was gray or RGB, and position the gray-to-RGB
+ *  transform appropriately, then it would save a lot of work/time.
  */
 
-#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
-   /* if gray -> RGB, do so now only if background is non-gray; else do later
-    * for performance reasons */
+#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
+   /* If gray -> RGB, do so now only if background is non-gray; else do later
+    * for performance reasons
+    */
    if ((png_ptr->transformations & PNG_GRAY_TO_RGB) &&
        !(png_ptr->mode & PNG_BACKGROUND_IS_GRAY))
       png_do_gray_to_rgb(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
 
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
-   if ((png_ptr->transformations & PNG_BACKGROUND) &&
-      ((png_ptr->num_trans != 0 ) ||
-      (png_ptr->color_type & PNG_COLOR_MASK_ALPHA)))
-      png_do_background(&(png_ptr->row_info), png_ptr->row_buf + 1,
-         &(png_ptr->trans_values), &(png_ptr->background)
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-         , &(png_ptr->background_1),
-         png_ptr->gamma_table, png_ptr->gamma_from_1,
-         png_ptr->gamma_to_1, png_ptr->gamma_16_table,
-         png_ptr->gamma_16_from_1, png_ptr->gamma_16_to_1,
-         png_ptr->gamma_shift
-#endif
-);
+#if (defined PNG_READ_BACKGROUND_SUPPORTED) ||\
+   (defined PNG_READ_ALPHA_MODE_SUPPORTED)
+   if (png_ptr->transformations & PNG_COMPOSE)
+      png_do_compose(&(png_ptr->row_info), png_ptr->row_buf + 1, png_ptr);
 #endif
 
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+#ifdef PNG_READ_GAMMA_SUPPORTED
    if ((png_ptr->transformations & PNG_GAMMA) &&
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
-      !((png_ptr->transformations & PNG_BACKGROUND) &&
-      ((png_ptr->num_trans != 0) ||
-      (png_ptr->color_type & PNG_COLOR_MASK_ALPHA))) &&
+#if (defined PNG_READ_BACKGROUND_SUPPORTED) ||\
+   (defined PNG_READ_ALPHA_MODE_SUPPORTED)
+       !((png_ptr->transformations & PNG_COMPOSE) &&
+       ((png_ptr->num_trans != 0) ||
+       (png_ptr->color_type & PNG_COLOR_MASK_ALPHA))) &&
+#endif
+       (png_ptr->color_type != PNG_COLOR_TYPE_PALETTE))
+      png_do_gamma(&(png_ptr->row_info), png_ptr->row_buf + 1, png_ptr);
+#endif
+
+#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
+   if ((png_ptr->transformations & PNG_STRIP_ALPHA) &&
+      (png_ptr->transformations & PNG_COMPOSE) &&
+      (png_ptr->row_info.color_type == PNG_COLOR_TYPE_RGB_ALPHA ||
+      png_ptr->row_info.color_type == PNG_COLOR_TYPE_GRAY_ALPHA))
+      png_do_strip_channel(&(png_ptr->row_info), png_ptr->row_buf + 1,
+         0 /* at_start == false, because SWAP_ALPHA happens later */);
 #endif
-      (png_ptr->color_type != PNG_COLOR_TYPE_PALETTE))
-      png_do_gamma(&(png_ptr->row_info), png_ptr->row_buf + 1,
-         png_ptr->gamma_table, png_ptr->gamma_16_table,
-         png_ptr->gamma_shift);
+
+#ifdef PNG_READ_ALPHA_MODE_SUPPORTED
+   if ((png_ptr->transformations & PNG_ENCODE_ALPHA) &&
+      (png_ptr->row_info.color_type & PNG_COLOR_MASK_ALPHA))
+      png_do_encode_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1, png_ptr);
+#endif
+
+#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
+   if (png_ptr->transformations & PNG_SCALE_16_TO_8)
+      png_do_scale_16_to_8(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
 
-#if defined(PNG_READ_16_TO_8_SUPPORTED)
+#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
+   /* There is no harm in doing both of these because only one has any effect,
+    * by putting the 'scale' option first if the app asks for scale (either by
+    * calling the API or in a TRANSFORM flag) this is what happens.
+    */
    if (png_ptr->transformations & PNG_16_TO_8)
       png_do_chop(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
 
-#if defined(PNG_READ_DITHER_SUPPORTED)
-   if (png_ptr->transformations & PNG_DITHER)
+#ifdef PNG_READ_QUANTIZE_SUPPORTED
+   if (png_ptr->transformations & PNG_QUANTIZE)
    {
-      png_do_dither((png_row_infop)&(png_ptr->row_info), png_ptr->row_buf + 1,
-         png_ptr->palette_lookup, png_ptr->dither_index);
-      if(png_ptr->row_info.rowbytes == (png_uint_32)0)
-         png_error(png_ptr, "png_do_dither returned rowbytes=0");
+      png_do_quantize(&(png_ptr->row_info), png_ptr->row_buf + 1,
+          png_ptr->palette_lookup, png_ptr->quantize_index);
+
+      if (png_ptr->row_info.rowbytes == 0)
+         png_error(png_ptr, "png_do_quantize returned rowbytes=0");
    }
+#endif /* PNG_READ_QUANTIZE_SUPPORTED */
+
+#ifdef PNG_READ_EXPAND_16_SUPPORTED
+   /* Do the expansion now, after all the arithmetic has been done.  Notice
+    * that previous transformations can handle the PNG_EXPAND_16 flag if this
+    * is efficient (particularly true in the case of gamma correction, where
+    * better accuracy results faster!)
+    */
+   if (png_ptr->transformations & PNG_EXPAND_16)
+      png_do_expand_16(&png_ptr->row_info, png_ptr->row_buf + 1);
+#endif
+
+#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
+   /*NOTE: moved here in 1.5.4 (from much later in this list.) */
+   if ((png_ptr->transformations & PNG_GRAY_TO_RGB) &&
+       (png_ptr->mode & PNG_BACKGROUND_IS_GRAY))
+      png_do_gray_to_rgb(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
 
-#if defined(PNG_READ_INVERT_SUPPORTED)
+#ifdef PNG_READ_INVERT_SUPPORTED
    if (png_ptr->transformations & PNG_INVERT_MONO)
       png_do_invert(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
 
-#if defined(PNG_READ_SHIFT_SUPPORTED)
+#ifdef PNG_READ_SHIFT_SUPPORTED
    if (png_ptr->transformations & PNG_SHIFT)
       png_do_unshift(&(png_ptr->row_info), png_ptr->row_buf + 1,
-         &(png_ptr->shift));
+          &(png_ptr->shift));
 #endif
 
-#if defined(PNG_READ_PACK_SUPPORTED)
+#ifdef PNG_READ_PACK_SUPPORTED
    if (png_ptr->transformations & PNG_PACK)
       png_do_unpack(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
 
-#if defined(PNG_READ_BGR_SUPPORTED)
+#ifdef PNG_READ_BGR_SUPPORTED
    if (png_ptr->transformations & PNG_BGR)
       png_do_bgr(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
 
-#if defined(PNG_READ_PACKSWAP_SUPPORTED)
+#ifdef PNG_READ_PACKSWAP_SUPPORTED
    if (png_ptr->transformations & PNG_PACKSWAP)
       png_do_packswap(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
 
-#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
-   /* if gray -> RGB, do so now only if we did not do so above */
-   if ((png_ptr->transformations & PNG_GRAY_TO_RGB) &&
-       (png_ptr->mode & PNG_BACKGROUND_IS_GRAY))
-      png_do_gray_to_rgb(&(png_ptr->row_info), png_ptr->row_buf + 1);
-#endif
-
-#if defined(PNG_READ_FILLER_SUPPORTED)
+#ifdef PNG_READ_FILLER_SUPPORTED
    if (png_ptr->transformations & PNG_FILLER)
       png_do_read_filler(&(png_ptr->row_info), png_ptr->row_buf + 1,
-         (png_uint_32)png_ptr->filler, png_ptr->flags);
+          (png_uint_32)png_ptr->filler, png_ptr->flags);
 #endif
 
-#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED)
+#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
    if (png_ptr->transformations & PNG_INVERT_ALPHA)
       png_do_read_invert_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
 
-#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED)
+#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED
    if (png_ptr->transformations & PNG_SWAP_ALPHA)
       png_do_read_swap_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
 
-#if defined(PNG_READ_SWAP_SUPPORTED)
+#ifdef PNG_READ_16BIT_SUPPORTED
+#ifdef PNG_READ_SWAP_SUPPORTED
    if (png_ptr->transformations & PNG_SWAP_BYTES)
       png_do_swap(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
+#endif
 
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
+#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
    if (png_ptr->transformations & PNG_USER_TRANSFORM)
     {
-      if(png_ptr->read_user_transform_fn != NULL)
-        (*(png_ptr->read_user_transform_fn)) /* user read transform function */
-          (png_ptr,                    /* png_ptr */
-           &(png_ptr->row_info),       /* row_info:     */
-             /*  png_uint_32 width;          width of row */
-             /*  png_uint_32 rowbytes;       number of bytes in row */
-             /*  png_byte color_type;        color type of pixels */
-             /*  png_byte bit_depth;         bit depth of samples */
-             /*  png_byte channels;          number of channels (1-4) */
-             /*  png_byte pixel_depth;       bits per pixel (depth*channels) */
-           png_ptr->row_buf + 1);      /* start of pixel data for row */
-#if defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
-      if(png_ptr->user_transform_depth)
+      if (png_ptr->read_user_transform_fn != NULL)
+         (*(png_ptr->read_user_transform_fn)) /* User read transform function */
+             (png_ptr,                    /* png_ptr */
+             &(png_ptr->row_info),     /* row_info: */
+                /*  png_uint_32 width;       width of row */
+                /*  png_size_t rowbytes;     number of bytes in row */
+                /*  png_byte color_type;     color type of pixels */
+                /*  png_byte bit_depth;      bit depth of samples */
+                /*  png_byte channels;       number of channels (1-4) */
+                /*  png_byte pixel_depth;    bits per pixel (depth*channels) */
+             png_ptr->row_buf + 1);    /* start of pixel data for row */
+#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED
+      if (png_ptr->user_transform_depth)
          png_ptr->row_info.bit_depth = png_ptr->user_transform_depth;
-      if(png_ptr->user_transform_channels)
+
+      if (png_ptr->user_transform_channels)
          png_ptr->row_info.channels = png_ptr->user_transform_channels;
 #endif
       png_ptr->row_info.pixel_depth = (png_byte)(png_ptr->row_info.bit_depth *
-         png_ptr->row_info.channels);
+          png_ptr->row_info.channels);
+
       png_ptr->row_info.rowbytes = PNG_ROWBYTES(png_ptr->row_info.pixel_depth,
-         png_ptr->row_info.width);
+          png_ptr->row_info.width);
    }
 #endif
-
 }
 
-#if defined(PNG_READ_PACK_SUPPORTED)
+#ifdef PNG_READ_PACK_SUPPORTED
 /* Unpack pixels of 1, 2, or 4 bits per pixel into 1 byte per pixel,
  * without changing the actual values.  Thus, if you had a row with
  * a bit depth of 1, you would end up with bytes that only contained
@@ -1504,12 +2323,9 @@ From Andreas Dilger e-mail to png-implement, 26 March 1998:
 void /* PRIVATE */
 png_do_unpack(png_row_infop row_info, png_bytep row)
 {
-   png_debug(1, "in png_do_unpack\n");
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if (row != NULL && row_info != NULL && row_info->bit_depth < 8)
-#else
+   png_debug(1, "in png_do_unpack");
+
    if (row_info->bit_depth < 8)
-#endif
    {
       png_uint_32 i;
       png_uint_32 row_width=row_info->width;
@@ -1524,11 +2340,13 @@ png_do_unpack(png_row_infop row_info, png_bytep row)
             for (i = 0; i < row_width; i++)
             {
                *dp = (png_byte)((*sp >> shift) & 0x01);
+
                if (shift == 7)
                {
                   shift = 0;
                   sp--;
                }
+
                else
                   shift++;
 
@@ -1536,6 +2354,7 @@ png_do_unpack(png_row_infop row_info, png_bytep row)
             }
             break;
          }
+
          case 2:
          {
 
@@ -1545,11 +2364,13 @@ png_do_unpack(png_row_infop row_info, png_bytep row)
             for (i = 0; i < row_width; i++)
             {
                *dp = (png_byte)((*sp >> shift) & 0x03);
+
                if (shift == 6)
                {
                   shift = 0;
                   sp--;
                }
+
                else
                   shift += 2;
 
@@ -1557,6 +2378,7 @@ png_do_unpack(png_row_infop row_info, png_bytep row)
             }
             break;
          }
+
          case 4:
          {
             png_bytep sp = row + (png_size_t)((row_width - 1) >> 1);
@@ -1565,11 +2387,13 @@ png_do_unpack(png_row_infop row_info, png_bytep row)
             for (i = 0; i < row_width; i++)
             {
                *dp = (png_byte)((*sp >> shift) & 0x0f);
+
                if (shift == 4)
                {
                   shift = 0;
                   sp--;
                }
+
                else
                   shift = 4;
 
@@ -1577,6 +2401,9 @@ png_do_unpack(png_row_infop row_info, png_bytep row)
             }
             break;
          }
+
+         default:
+            break;
       }
       row_info->bit_depth = 8;
       row_info->pixel_depth = (png_byte)(8 * row_info->channels);
@@ -1585,20 +2412,19 @@ png_do_unpack(png_row_infop row_info, png_bytep row)
 }
 #endif
 
-#if defined(PNG_READ_SHIFT_SUPPORTED)
+#ifdef PNG_READ_SHIFT_SUPPORTED
 /* Reverse the effects of png_do_shift.  This routine merely shifts the
  * pixels back to their significant bits values.  Thus, if you have
  * a row of bit depth 8, but only 5 are significant, this will shift
  * the values back to 0 through 31.
  */
 void /* PRIVATE */
-png_do_unshift(png_row_infop row_info, png_bytep row, png_color_8p sig_bits)
+png_do_unshift(png_row_infop row_info, png_bytep row,
+    png_const_color_8p sig_bits)
 {
-   png_debug(1, "in png_do_unshift\n");
+   png_debug(1, "in png_do_unshift");
+
    if (
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL && row_info != NULL && sig_bits != NULL &&
-#endif
        row_info->color_type != PNG_COLOR_TYPE_PALETTE)
    {
       int shift[4];
@@ -1613,10 +2439,12 @@ png_do_unshift(png_row_infop row_info, png_bytep row, png_color_8p sig_bits)
          shift[channels++] = row_info->bit_depth - sig_bits->green;
          shift[channels++] = row_info->bit_depth - sig_bits->blue;
       }
+
       else
       {
          shift[channels++] = row_info->bit_depth - sig_bits->gray;
       }
+
       if (row_info->color_type & PNG_COLOR_MASK_ALPHA)
       {
          shift[channels++] = row_info->bit_depth - sig_bits->alpha;
@@ -1626,6 +2454,7 @@ png_do_unshift(png_row_infop row_info, png_bytep row, png_color_8p sig_bits)
       {
          if (shift[c] <= 0)
             shift[c] = 0;
+
          else
             value = 1;
       }
@@ -1635,11 +2464,14 @@ png_do_unshift(png_row_infop row_info, png_bytep row, png_color_8p sig_bits)
 
       switch (row_info->bit_depth)
       {
+         default:
+            break;
+
          case 2:
          {
             png_bytep bp;
-            png_uint_32 i;
-            png_uint_32 istop = row_info->rowbytes;
+            png_size_t i;
+            png_size_t istop = row_info->rowbytes;
 
             for (bp = row, i = 0; i < istop; i++)
             {
@@ -1648,13 +2480,14 @@ png_do_unshift(png_row_infop row_info, png_bytep row, png_color_8p sig_bits)
             }
             break;
          }
+
          case 4:
          {
             png_bytep bp = row;
-            png_uint_32 i;
-            png_uint_32 istop = row_info->rowbytes;
+            png_size_t i;
+            png_size_t istop = row_info->rowbytes;
             png_byte mask = (png_byte)((((int)0xf0 >> shift[0]) & (int)0xf0) |
-               (png_byte)((int)0xf >> shift[0]));
+                (png_byte)((int)0xf >> shift[0]));
 
             for (i = 0; i < istop; i++)
             {
@@ -1663,6 +2496,7 @@ png_do_unshift(png_row_infop row_info, png_bytep row, png_color_8p sig_bits)
             }
             break;
          }
+
          case 8:
          {
             png_bytep bp = row;
@@ -1675,6 +2509,8 @@ png_do_unshift(png_row_infop row_info, png_bytep row, png_color_8p sig_bits)
             }
             break;
          }
+
+#ifdef PNG_READ_16BIT_SUPPORTED
          case 16:
          {
             png_bytep bp = row;
@@ -1690,59 +2526,92 @@ png_do_unshift(png_row_infop row_info, png_bytep row, png_color_8p sig_bits)
             }
             break;
          }
+#endif
       }
    }
 }
 #endif
 
-#if defined(PNG_READ_16_TO_8_SUPPORTED)
-/* chop rows of bit depth 16 down to 8 */
+#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
+/* Scale rows of bit depth 16 down to 8 accurately */
 void /* PRIVATE */
-png_do_chop(png_row_infop row_info, png_bytep row)
+png_do_scale_16_to_8(png_row_infop row_info, png_bytep row)
 {
-   png_debug(1, "in png_do_chop\n");
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if (row != NULL && row_info != NULL && row_info->bit_depth == 16)
-#else
+   png_debug(1, "in png_do_scale_16_to_8");
+
    if (row_info->bit_depth == 16)
-#endif
    {
-      png_bytep sp = row;
-      png_bytep dp = row;
-      png_uint_32 i;
-      png_uint_32 istop = row_info->width * row_info->channels;
+      png_bytep sp = row; /* source */
+      png_bytep dp = row; /* destinaton */
+      png_bytep ep = sp + row_info->rowbytes; /* end+1 */
 
-      for (i = 0; i<istop; i++, sp += 2, dp++)
+      while (sp < ep)
       {
-#if defined(PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED)
-      /* This does a more accurate scaling of the 16-bit color
-       * value, rather than a simple low-byte truncation.
-       *
-       * What the ideal calculation should be:
-       *   *dp = (((((png_uint_32)(*sp) << 8) |
-       *          (png_uint_32)(*(sp + 1))) * 255 + 127) / (png_uint_32)65535L;
-       *
-       * GRR: no, I think this is what it really should be:
-       *   *dp = (((((png_uint_32)(*sp) << 8) |
-       *           (png_uint_32)(*(sp + 1))) + 128L) / (png_uint_32)257L;
-       *
-       * GRR: here's the exact calculation with shifts:
-       *   temp = (((png_uint_32)(*sp) << 8) | (png_uint_32)(*(sp + 1))) + 128L;
-       *   *dp = (temp - (temp >> 8)) >> 8;
-       *
-       * Approximate calculation with shift/add instead of multiply/divide:
-       *   *dp = ((((png_uint_32)(*sp) << 8) |
-       *          (png_uint_32)((int)(*(sp + 1)) - *sp)) + 128) >> 8;
-       *
-       * What we actually do to avoid extra shifting and conversion:
-       */
+         /* The input is an array of 16 bit components, these must be scaled to
+          * 8 bits each.  For a 16 bit value V the required value (from the PNG
+          * specification) is:
+          *
+          *    (V * 255) / 65535
+          *
+          * This reduces to round(V / 257), or floor((V + 128.5)/257)
+          *
+          * Represent V as the two byte value vhi.vlo.  Make a guess that the
+          * result is the top byte of V, vhi, then the correction to this value
+          * is:
+          *
+          *    error = floor(((V-vhi.vhi) + 128.5) / 257)
+          *          = floor(((vlo-vhi) + 128.5) / 257)
+          *
+          * This can be approximated using integer arithmetic (and a signed
+          * shift):
+          *
+          *    error = (vlo-vhi+128) >> 8;
+          *
+          * The approximate differs from the exact answer only when (vlo-vhi) is
+          * 128; it then gives a correction of +1 when the exact correction is
+          * 0.  This gives 128 errors.  The exact answer (correct for all 16 bit
+          * input values) is:
+          *
+          *    error = (vlo-vhi+128)*65535 >> 24;
+          *
+          * An alternative arithmetic calculation which also gives no errors is:
+          *
+          *    (V * 255 + 32895) >> 16
+          */
+
+         png_int_32 tmp = *sp++; /* must be signed! */
+         tmp += (((int)*sp++ - tmp + 128) * 65535) >> 24;
+         *dp++ = (png_byte)tmp;
+      }
 
-         *dp = *sp + ((((int)(*(sp + 1)) - *sp) > 128) ? 1 : 0);
-#else
-       /* Simply discard the low order byte */
-         *dp = *sp;
+      row_info->bit_depth = 8;
+      row_info->pixel_depth = (png_byte)(8 * row_info->channels);
+      row_info->rowbytes = row_info->width * row_info->channels;
+   }
+}
 #endif
+
+#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
+void /* PRIVATE */
+/* Simply discard the low byte.  This was the default behavior prior
+ * to libpng-1.5.4.
+ */
+png_do_chop(png_row_infop row_info, png_bytep row)
+{
+   png_debug(1, "in png_do_chop");
+
+   if (row_info->bit_depth == 16)
+   {
+      png_bytep sp = row; /* source */
+      png_bytep dp = row; /* destinaton */
+      png_bytep ep = sp + row_info->rowbytes; /* end+1 */
+
+      while (sp < ep)
+      {
+         *dp++ = *sp;
+         sp += 2; /* skip low byte */
       }
+
       row_info->bit_depth = 8;
       row_info->pixel_depth = (png_byte)(8 * row_info->channels);
       row_info->rowbytes = row_info->width * row_info->channels;
@@ -1750,14 +2619,12 @@ png_do_chop(png_row_infop row_info, png_bytep row)
 }
 #endif
 
-#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED)
+#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED
 void /* PRIVATE */
 png_do_read_swap_alpha(png_row_infop row_info, png_bytep row)
 {
-   png_debug(1, "in png_do_read_swap_alpha\n");
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if (row != NULL && row_info != NULL)
-#endif
+   png_debug(1, "in png_do_read_swap_alpha");
+
    {
       png_uint_32 row_width = row_info->width;
       if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
@@ -1779,6 +2646,8 @@ png_do_read_swap_alpha(png_row_infop row_info, png_bytep row)
                *(--dp) = save;
             }
          }
+
+#ifdef PNG_READ_16BIT_SUPPORTED
          /* This converts from RRGGBBAA to AARRGGBB */
          else
          {
@@ -1801,7 +2670,9 @@ png_do_read_swap_alpha(png_row_infop row_info, png_bytep row)
                *(--dp) = save[1];
             }
          }
+#endif
       }
+
       else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
       {
          /* This converts from GA to AG */
@@ -1819,6 +2690,8 @@ png_do_read_swap_alpha(png_row_infop row_info, png_bytep row)
                *(--dp) = save;
             }
          }
+
+#ifdef PNG_READ_16BIT_SUPPORTED
          /* This converts from GGAA to AAGG */
          else
          {
@@ -1837,133 +2710,137 @@ png_do_read_swap_alpha(png_row_infop row_info, png_bytep row)
                *(--dp) = save[1];
             }
          }
+#endif
       }
    }
 }
 #endif
 
-#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED)
+#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
 void /* PRIVATE */
 png_do_read_invert_alpha(png_row_infop row_info, png_bytep row)
 {
-   png_debug(1, "in png_do_read_invert_alpha\n");
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if (row != NULL && row_info != NULL)
-#endif
+   png_uint_32 row_width;
+   png_debug(1, "in png_do_read_invert_alpha");
+
+   row_width = row_info->width;
+   if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
    {
-      png_uint_32 row_width = row_info->width;
-      if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
+      if (row_info->bit_depth == 8)
       {
          /* This inverts the alpha channel in RGBA */
-         if (row_info->bit_depth == 8)
-         {
-            png_bytep sp = row + row_info->rowbytes;
-            png_bytep dp = sp;
-            png_uint_32 i;
+         png_bytep sp = row + row_info->rowbytes;
+         png_bytep dp = sp;
+         png_uint_32 i;
 
-            for (i = 0; i < row_width; i++)
-            {
-               *(--dp) = (png_byte)(255 - *(--sp));
+         for (i = 0; i < row_width; i++)
+         {
+            *(--dp) = (png_byte)(255 - *(--sp));
 
-/*             This does nothing:
-               *(--dp) = *(--sp);
-               *(--dp) = *(--sp);
-               *(--dp) = *(--sp);
-               We can replace it with:
+/*          This does nothing:
+            *(--dp) = *(--sp);
+            *(--dp) = *(--sp);
+            *(--dp) = *(--sp);
+            We can replace it with:
 */
-               sp-=3;
-               dp=sp;
-            }
+            sp-=3;
+            dp=sp;
          }
-         /* This inverts the alpha channel in RRGGBBAA */
-         else
-         {
-            png_bytep sp = row + row_info->rowbytes;
-            png_bytep dp = sp;
-            png_uint_32 i;
+      }
 
-            for (i = 0; i < row_width; i++)
-            {
-               *(--dp) = (png_byte)(255 - *(--sp));
-               *(--dp) = (png_byte)(255 - *(--sp));
+#ifdef PNG_READ_16BIT_SUPPORTED
+      /* This inverts the alpha channel in RRGGBBAA */
+      else
+      {
+         png_bytep sp = row + row_info->rowbytes;
+         png_bytep dp = sp;
+         png_uint_32 i;
 
-/*             This does nothing:
-               *(--dp) = *(--sp);
-               *(--dp) = *(--sp);
-               *(--dp) = *(--sp);
-               *(--dp) = *(--sp);
-               *(--dp) = *(--sp);
-               *(--dp) = *(--sp);
-               We can replace it with:
+         for (i = 0; i < row_width; i++)
+         {
+            *(--dp) = (png_byte)(255 - *(--sp));
+            *(--dp) = (png_byte)(255 - *(--sp));
+
+/*          This does nothing:
+            *(--dp) = *(--sp);
+            *(--dp) = *(--sp);
+            *(--dp) = *(--sp);
+            *(--dp) = *(--sp);
+            *(--dp) = *(--sp);
+            *(--dp) = *(--sp);
+            We can replace it with:
 */
-               sp-=6;
-               dp=sp;
-            }
+            sp-=6;
+            dp=sp;
          }
       }
-      else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+#endif
+   }
+   else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+   {
+      if (row_info->bit_depth == 8)
       {
          /* This inverts the alpha channel in GA */
-         if (row_info->bit_depth == 8)
-         {
-            png_bytep sp = row + row_info->rowbytes;
-            png_bytep dp = sp;
-            png_uint_32 i;
+         png_bytep sp = row + row_info->rowbytes;
+         png_bytep dp = sp;
+         png_uint_32 i;
 
-            for (i = 0; i < row_width; i++)
-            {
-               *(--dp) = (png_byte)(255 - *(--sp));
-               *(--dp) = *(--sp);
-            }
+         for (i = 0; i < row_width; i++)
+         {
+            *(--dp) = (png_byte)(255 - *(--sp));
+            *(--dp) = *(--sp);
          }
+      }
+
+#ifdef PNG_READ_16BIT_SUPPORTED
+      else
+      {
          /* This inverts the alpha channel in GGAA */
-         else
-         {
-            png_bytep sp  = row + row_info->rowbytes;
-            png_bytep dp = sp;
-            png_uint_32 i;
+         png_bytep sp  = row + row_info->rowbytes;
+         png_bytep dp = sp;
+         png_uint_32 i;
 
-            for (i = 0; i < row_width; i++)
-            {
-               *(--dp) = (png_byte)(255 - *(--sp));
-               *(--dp) = (png_byte)(255 - *(--sp));
+         for (i = 0; i < row_width; i++)
+         {
+            *(--dp) = (png_byte)(255 - *(--sp));
+            *(--dp) = (png_byte)(255 - *(--sp));
 /*
-               *(--dp) = *(--sp);
-               *(--dp) = *(--sp);
+            *(--dp) = *(--sp);
+            *(--dp) = *(--sp);
 */
-               sp-=2;
-               dp=sp;
-            }
+            sp-=2;
+            dp=sp;
          }
       }
+#endif
    }
 }
 #endif
 
-#if defined(PNG_READ_FILLER_SUPPORTED)
+#ifdef PNG_READ_FILLER_SUPPORTED
 /* Add filler channel if we have RGB color */
 void /* PRIVATE */
 png_do_read_filler(png_row_infop row_info, png_bytep row,
-   png_uint_32 filler, png_uint_32 flags)
+    png_uint_32 filler, png_uint_32 flags)
 {
    png_uint_32 i;
    png_uint_32 row_width = row_info->width;
 
+#ifdef PNG_READ_16BIT_SUPPORTED
    png_byte hi_filler = (png_byte)((filler>>8) & 0xff);
+#endif
    png_byte lo_filler = (png_byte)(filler & 0xff);
 
-   png_debug(1, "in png_do_read_filler\n");
+   png_debug(1, "in png_do_read_filler");
+
    if (
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL  && row_info != NULL &&
-#endif
        row_info->color_type == PNG_COLOR_TYPE_GRAY)
    {
-      if(row_info->bit_depth == 8)
+      if (row_info->bit_depth == 8)
       {
-         /* This changes the data from G to GX */
          if (flags & PNG_FLAG_FILLER_AFTER)
          {
+            /* This changes the data from G to GX */
             png_bytep sp = row + (png_size_t)row_width;
             png_bytep dp =  sp + (png_size_t)row_width;
             for (i = 1; i < row_width; i++)
@@ -1976,9 +2853,10 @@ png_do_read_filler(png_row_infop row_info, png_bytep row,
             row_info->pixel_depth = 16;
             row_info->rowbytes = row_width * 2;
          }
-      /* This changes the data from G to XG */
+
          else
          {
+            /* This changes the data from G to XG */
             png_bytep sp = row + (png_size_t)row_width;
             png_bytep dp = sp  + (png_size_t)row_width;
             for (i = 0; i < row_width; i++)
@@ -1991,11 +2869,13 @@ png_do_read_filler(png_row_infop row_info, png_bytep row,
             row_info->rowbytes = row_width * 2;
          }
       }
-      else if(row_info->bit_depth == 16)
+
+#ifdef PNG_READ_16BIT_SUPPORTED
+      else if (row_info->bit_depth == 16)
       {
-         /* This changes the data from GG to GGXX */
          if (flags & PNG_FLAG_FILLER_AFTER)
          {
+            /* This changes the data from GG to GGXX */
             png_bytep sp = row + (png_size_t)row_width * 2;
             png_bytep dp = sp  + (png_size_t)row_width * 2;
             for (i = 1; i < row_width; i++)
@@ -2011,9 +2891,10 @@ png_do_read_filler(png_row_infop row_info, png_bytep row,
             row_info->pixel_depth = 32;
             row_info->rowbytes = row_width * 4;
          }
-         /* This changes the data from GG to XXGG */
+
          else
          {
+            /* This changes the data from GG to XXGG */
             png_bytep sp = row + (png_size_t)row_width * 2;
             png_bytep dp = sp  + (png_size_t)row_width * 2;
             for (i = 0; i < row_width; i++)
@@ -2028,14 +2909,15 @@ png_do_read_filler(png_row_infop row_info, png_bytep row,
             row_info->rowbytes = row_width * 4;
          }
       }
+#endif
    } /* COLOR_TYPE == GRAY */
    else if (row_info->color_type == PNG_COLOR_TYPE_RGB)
    {
-      if(row_info->bit_depth == 8)
+      if (row_info->bit_depth == 8)
       {
-         /* This changes the data from RGB to RGBX */
          if (flags & PNG_FLAG_FILLER_AFTER)
          {
+            /* This changes the data from RGB to RGBX */
             png_bytep sp = row + (png_size_t)row_width * 3;
             png_bytep dp = sp  + (png_size_t)row_width;
             for (i = 1; i < row_width; i++)
@@ -2050,9 +2932,10 @@ png_do_read_filler(png_row_infop row_info, png_bytep row,
             row_info->pixel_depth = 32;
             row_info->rowbytes = row_width * 4;
          }
-      /* This changes the data from RGB to XRGB */
+
          else
          {
+            /* This changes the data from RGB to XRGB */
             png_bytep sp = row + (png_size_t)row_width * 3;
             png_bytep dp = sp + (png_size_t)row_width;
             for (i = 0; i < row_width; i++)
@@ -2067,11 +2950,13 @@ png_do_read_filler(png_row_infop row_info, png_bytep row,
             row_info->rowbytes = row_width * 4;
          }
       }
-      else if(row_info->bit_depth == 16)
+
+#ifdef PNG_READ_16BIT_SUPPORTED
+      else if (row_info->bit_depth == 16)
       {
-         /* This changes the data from RRGGBB to RRGGBBXX */
          if (flags & PNG_FLAG_FILLER_AFTER)
          {
+            /* This changes the data from RRGGBB to RRGGBBXX */
             png_bytep sp = row + (png_size_t)row_width * 6;
             png_bytep dp = sp  + (png_size_t)row_width * 2;
             for (i = 1; i < row_width; i++)
@@ -2091,9 +2976,10 @@ png_do_read_filler(png_row_infop row_info, png_bytep row,
             row_info->pixel_depth = 64;
             row_info->rowbytes = row_width * 8;
          }
-         /* This changes the data from RRGGBB to XXRRGGBB */
+
          else
          {
+            /* This changes the data from RRGGBB to XXRRGGBB */
             png_bytep sp = row + (png_size_t)row_width * 6;
             png_bytep dp = sp  + (png_size_t)row_width * 2;
             for (i = 0; i < row_width; i++)
@@ -2107,34 +2993,35 @@ png_do_read_filler(png_row_infop row_info, png_bytep row,
                *(--dp) = hi_filler;
                *(--dp) = lo_filler;
             }
+
             row_info->channels = 4;
             row_info->pixel_depth = 64;
             row_info->rowbytes = row_width * 8;
          }
       }
+#endif
    } /* COLOR_TYPE == RGB */
 }
 #endif
 
-#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
-/* expand grayscale files to RGB, with or without alpha */
+#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
+/* Expand grayscale files to RGB, with or without alpha */
 void /* PRIVATE */
 png_do_gray_to_rgb(png_row_infop row_info, png_bytep row)
 {
    png_uint_32 i;
    png_uint_32 row_width = row_info->width;
 
-   png_debug(1, "in png_do_gray_to_rgb\n");
+   png_debug(1, "in png_do_gray_to_rgb");
+
    if (row_info->bit_depth >= 8 &&
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL && row_info != NULL &&
-#endif
-      !(row_info->color_type & PNG_COLOR_MASK_COLOR))
+       !(row_info->color_type & PNG_COLOR_MASK_COLOR))
    {
       if (row_info->color_type == PNG_COLOR_TYPE_GRAY)
       {
          if (row_info->bit_depth == 8)
          {
+            /* This changes G to RGB */
             png_bytep sp = row + (png_size_t)row_width - 1;
             png_bytep dp = sp  + (png_size_t)row_width * 2;
             for (i = 0; i < row_width; i++)
@@ -2144,8 +3031,10 @@ png_do_gray_to_rgb(png_row_infop row_info, png_bytep row)
                *(dp--) = *(sp--);
             }
          }
+
          else
          {
+            /* This changes GG to RRGGBB */
             png_bytep sp = row + (png_size_t)row_width * 2 - 1;
             png_bytep dp = sp  + (png_size_t)row_width * 4;
             for (i = 0; i < row_width; i++)
@@ -2159,10 +3048,12 @@ png_do_gray_to_rgb(png_row_infop row_info, png_bytep row)
             }
          }
       }
+
       else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
       {
          if (row_info->bit_depth == 8)
          {
+            /* This changes GA to RGBA */
             png_bytep sp = row + (png_size_t)row_width * 2 - 1;
             png_bytep dp = sp  + (png_size_t)row_width * 2;
             for (i = 0; i < row_width; i++)
@@ -2173,8 +3064,10 @@ png_do_gray_to_rgb(png_row_infop row_info, png_bytep row)
                *(dp--) = *(sp--);
             }
          }
+
          else
          {
+            /* This changes GGAA to RRGGBBAA */
             png_bytep sp = row + (png_size_t)row_width * 4 - 1;
             png_bytep dp = sp  + (png_size_t)row_width * 4;
             for (i = 0; i < row_width; i++)
@@ -2193,17 +3086,19 @@ png_do_gray_to_rgb(png_row_infop row_info, png_bytep row)
       row_info->channels += (png_byte)2;
       row_info->color_type |= PNG_COLOR_MASK_COLOR;
       row_info->pixel_depth = (png_byte)(row_info->channels *
-         row_info->bit_depth);
-      row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth,row_width);
+          row_info->bit_depth);
+      row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width);
    }
 }
 #endif
 
-#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
-/* reduce RGB files to grayscale, with or without alpha
+#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
+/* Reduce RGB files to grayscale, with or without alpha
  * using the equation given in Poynton's ColorFAQ at
- * <http://www.inforamp.net/~poynton/>
- * Copyright (c) 1998-01-04 Charles Poynton poynton at inforamp.net
+ * <http://www.inforamp.net/~poynton/>  (THIS LINK IS DEAD June 2008)
+ * New link:
+ * <http://www.poynton.com/notes/colour_and_gamma/>
+ * Charles Poynton poynton at poynton.com
  *
  *     Y = 0.212671 * R + 0.715160 * G + 0.072169 * B
  *
@@ -2228,12 +3123,10 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
    png_uint_32 row_width = row_info->width;
    int rgb_error = 0;
 
-   png_debug(1, "in png_do_rgb_to_gray\n");
-   if (
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL && row_info != NULL &&
-#endif
-      (row_info->color_type & PNG_COLOR_MASK_COLOR))
+   png_debug(1, "in png_do_rgb_to_gray");
+
+   if (!(row_info->color_type & PNG_COLOR_MASK_PALETTE) &&
+       (row_info->color_type & PNG_COLOR_MASK_COLOR))
    {
       png_uint_32 rc = png_ptr->rgb_to_gray_red_coeff;
       png_uint_32 gc = png_ptr->rgb_to_gray_green_coeff;
@@ -2254,14 +3147,16 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
                   png_byte red   = png_ptr->gamma_to_1[*(sp++)];
                   png_byte green = png_ptr->gamma_to_1[*(sp++)];
                   png_byte blue  = png_ptr->gamma_to_1[*(sp++)];
-                  if(red != green || red != blue)
+
+                  if (red != green || red != blue)
                   {
                      rgb_error |= 1;
                      *(dp++) = png_ptr->gamma_from_1[
-                       (rc*red+gc*green+bc*blue)>>15];
+                         (rc*red + gc*green + bc*blue)>>15];
                   }
+
                   else
-                     *(dp++) = *(sp-1);
+                     *(dp++) = *(sp - 1);
                }
             }
             else
@@ -2274,13 +3169,15 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
                   png_byte red   = *(sp++);
                   png_byte green = *(sp++);
                   png_byte blue  = *(sp++);
-                  if(red != green || red != blue)
+
+                  if (red != green || red != blue)
                   {
                      rgb_error |= 1;
-                     *(dp++) = (png_byte)((rc*red+gc*green+bc*blue)>>15);
+                     *(dp++) = (png_byte)((rc*red + gc*green + bc*blue)>>15);
                   }
+
                   else
-                     *(dp++) = *(sp-1);
+                     *(dp++) = *(sp - 1);
                }
             }
          }
@@ -2297,22 +3194,24 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
                {
                   png_uint_16 red, green, blue, w;
 
-                  red   = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2;
-                  green = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2;
-                  blue  = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2;
+                  red   = (png_uint_16)(((*(sp))<<8) | *(sp + 1)); sp += 2;
+                  green = (png_uint_16)(((*(sp))<<8) | *(sp + 1)); sp += 2;
+                  blue  = (png_uint_16)(((*(sp))<<8) | *(sp + 1)); sp += 2;
 
-                  if(red == green && red == blue)
+                  if (red == green && red == blue)
                      w = red;
+
                   else
                   {
-                     png_uint_16 red_1   = png_ptr->gamma_16_to_1[(red&0xff) >>
-                                  png_ptr->gamma_shift][red>>8];
-                     png_uint_16 green_1 = png_ptr->gamma_16_to_1[(green&0xff) >>
-                                  png_ptr->gamma_shift][green>>8];
-                     png_uint_16 blue_1  = png_ptr->gamma_16_to_1[(blue&0xff) >>
-                                  png_ptr->gamma_shift][blue>>8];
+                     png_uint_16 red_1   = png_ptr->gamma_16_to_1[(red&0xff)
+                         >> png_ptr->gamma_shift][red>>8];
+                     png_uint_16 green_1 =
+                         png_ptr->gamma_16_to_1[(green&0xff) >>
+                         png_ptr->gamma_shift][green>>8];
+                     png_uint_16 blue_1  = png_ptr->gamma_16_to_1[(blue&0xff)
+                         >> png_ptr->gamma_shift][blue>>8];
                      png_uint_16 gray16  = (png_uint_16)((rc*red_1 + gc*green_1
-                                  + bc*blue_1)>>15);
+                         + bc*blue_1)>>15);
                      w = png_ptr->gamma_16_from_1[(gray16&0xff) >>
                          png_ptr->gamma_shift][gray16 >> 8];
                      rgb_error |= 1;
@@ -2331,12 +3230,13 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
                {
                   png_uint_16 red, green, blue, gray16;
 
-                  red   = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2;
-                  green = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2;
-                  blue  = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2;
+                  red   = (png_uint_16)(((*(sp))<<8) | *(sp + 1)); sp += 2;
+                  green = (png_uint_16)(((*(sp))<<8) | *(sp + 1)); sp += 2;
+                  blue  = (png_uint_16)(((*(sp))<<8) | *(sp + 1)); sp += 2;
 
-                  if(red != green || red != blue)
+                  if (red != green || red != blue)
                      rgb_error |= 1;
+
                   gray16  = (png_uint_16)((rc*red + gc*green + bc*blue)>>15);
                   *(dp++) = (png_byte)((gray16>>8) & 0xff);
                   *(dp++) = (png_byte)(gray16 & 0xff);
@@ -2358,10 +3258,13 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
                   png_byte red   = png_ptr->gamma_to_1[*(sp++)];
                   png_byte green = png_ptr->gamma_to_1[*(sp++)];
                   png_byte blue  = png_ptr->gamma_to_1[*(sp++)];
-                  if(red != green || red != blue)
+
+                  if (red != green || red != blue)
                      rgb_error |= 1;
+
                   *(dp++) =  png_ptr->gamma_from_1
-                             [(rc*red + gc*green + bc*blue)>>15];
+                      [(rc*red + gc*green + bc*blue)>>15];
+
                   *(dp++) = *(sp++);  /* alpha */
                }
             }
@@ -2375,8 +3278,9 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
                   png_byte red   = *(sp++);
                   png_byte green = *(sp++);
                   png_byte blue  = *(sp++);
-                  if(red != green || red != blue)
+                  if (red != green || red != blue)
                      rgb_error |= 1;
+
                   *(dp++) =  (png_byte)((rc*red + gc*green + bc*blue)>>15);
                   *(dp++) = *(sp++);  /* alpha */
                }
@@ -2394,24 +3298,31 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
                {
                   png_uint_16 red, green, blue, w;
 
-                  red   = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2;
-                  green = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2;
-                  blue  = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2;
+                  red   = (png_uint_16)(((*(sp))<<8) | *(sp + 1)); sp += 2;
+                  green = (png_uint_16)(((*(sp))<<8) | *(sp + 1)); sp += 2;
+                  blue  = (png_uint_16)(((*(sp))<<8) | *(sp + 1)); sp += 2;
 
-                  if(red == green && red == blue)
+                  if (red == green && red == blue)
                      w = red;
+
                   else
                   {
                      png_uint_16 red_1   = png_ptr->gamma_16_to_1[(red&0xff) >>
-                                  png_ptr->gamma_shift][red>>8];
-                     png_uint_16 green_1 = png_ptr->gamma_16_to_1[(green&0xff) >>
-                                  png_ptr->gamma_shift][green>>8];
+                         png_ptr->gamma_shift][red>>8];
+
+                     png_uint_16 green_1 =
+                         png_ptr->gamma_16_to_1[(green&0xff) >>
+                         png_ptr->gamma_shift][green>>8];
+
                      png_uint_16 blue_1  = png_ptr->gamma_16_to_1[(blue&0xff) >>
-                                  png_ptr->gamma_shift][blue>>8];
+                         png_ptr->gamma_shift][blue>>8];
+
                      png_uint_16 gray16  = (png_uint_16)((rc * red_1
-                                  + gc * green_1 + bc * blue_1)>>15);
+                         + gc * green_1 + bc * blue_1)>>15);
+
                      w = png_ptr->gamma_16_from_1[(gray16&0xff) >>
                          png_ptr->gamma_shift][gray16 >> 8];
+
                      rgb_error |= 1;
                   }
 
@@ -2429,11 +3340,13 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
                for (i = 0; i < row_width; i++)
                {
                   png_uint_16 red, green, blue, gray16;
-                  red   = (png_uint_16)((*(sp)<<8) | *(sp+1)); sp+=2;
-                  green = (png_uint_16)((*(sp)<<8) | *(sp+1)); sp+=2;
-                  blue  = (png_uint_16)((*(sp)<<8) | *(sp+1)); sp+=2;
-                  if(red != green || red != blue)
+                  red   = (png_uint_16)((*(sp)<<8) | *(sp + 1)); sp += 2;
+                  green = (png_uint_16)((*(sp)<<8) | *(sp + 1)); sp += 2;
+                  blue  = (png_uint_16)((*(sp)<<8) | *(sp + 1)); sp += 2;
+
+                  if (red != green || red != blue)
                      rgb_error |= 1;
+
                   gray16  = (png_uint_16)((rc*red + gc*green + bc*blue)>>15);
                   *(dp++) = (png_byte)((gray16>>8) & 0xff);
                   *(dp++) = (png_byte)(gray16 & 0xff);
@@ -2443,20 +3356,23 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
             }
          }
       }
-   row_info->channels -= (png_byte)2;
-      row_info->color_type &= ~PNG_COLOR_MASK_COLOR;
+      row_info->channels -= 2;
+      row_info->color_type = (png_byte)(row_info->color_type &
+          ~PNG_COLOR_MASK_COLOR);
       row_info->pixel_depth = (png_byte)(row_info->channels *
-         row_info->bit_depth);
-      row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth,row_width);
+          row_info->bit_depth);
+      row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width);
    }
    return rgb_error;
 }
 #endif
+#endif /* PNG_READ_TRANSFORMS_SUPPORTED */
 
+#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED
 /* Build a grayscale palette.  Palette is assumed to be 1 << bit_depth
  * large of png_color.  This lets grayscale images be treated as
  * paletted.  Most useful for gamma correction and simplification
- * of code.
+ * of code.  This API is not used internally.
  */
 void PNGAPI
 png_build_grayscale_palette(int bit_depth, png_colorp palette)
@@ -2466,7 +3382,8 @@ png_build_grayscale_palette(int bit_depth, png_colorp palette)
    int i;
    int v;
 
-   png_debug(1, "in png_do_build_grayscale_palette\n");
+   png_debug(1, "in png_do_build_grayscale_palette");
+
    if (palette == NULL)
       return;
 
@@ -2476,18 +3393,22 @@ png_build_grayscale_palette(int bit_depth, png_colorp palette)
          num_palette = 2;
          color_inc = 0xff;
          break;
+
       case 2:
          num_palette = 4;
          color_inc = 0x55;
          break;
+
       case 4:
          num_palette = 16;
          color_inc = 0x11;
          break;
+
       case 8:
          num_palette = 256;
          color_inc = 1;
          break;
+
       default:
          num_palette = 0;
          color_inc = 0;
@@ -2501,217 +3422,36 @@ png_build_grayscale_palette(int bit_depth, png_colorp palette)
       palette[i].blue = (png_byte)v;
    }
 }
-
-/* This function is currently unused.  Do we really need it? */
-#if defined(PNG_READ_DITHER_SUPPORTED) && defined(PNG_CORRECT_PALETTE_SUPPORTED)
-void /* PRIVATE */
-png_correct_palette(png_structp png_ptr, png_colorp palette,
-   int num_palette)
-{
-   png_debug(1, "in png_correct_palette\n");
-#if defined(PNG_READ_BACKGROUND_SUPPORTED) && \
-    defined(PNG_READ_GAMMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED)
-   if (png_ptr->transformations & (PNG_GAMMA | PNG_BACKGROUND))
-   {
-      png_color back, back_1;
-
-      if (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_FILE)
-      {
-         back.red = png_ptr->gamma_table[png_ptr->background.red];
-         back.green = png_ptr->gamma_table[png_ptr->background.green];
-         back.blue = png_ptr->gamma_table[png_ptr->background.blue];
-
-         back_1.red = png_ptr->gamma_to_1[png_ptr->background.red];
-         back_1.green = png_ptr->gamma_to_1[png_ptr->background.green];
-         back_1.blue = png_ptr->gamma_to_1[png_ptr->background.blue];
-      }
-      else
-      {
-         double g;
-
-         g = 1.0 / (png_ptr->background_gamma * png_ptr->screen_gamma);
-
-         if (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_SCREEN ||
-             fabs(g - 1.0) < PNG_GAMMA_THRESHOLD)
-         {
-            back.red = png_ptr->background.red;
-            back.green = png_ptr->background.green;
-            back.blue = png_ptr->background.blue;
-         }
-         else
-         {
-            back.red =
-               (png_byte)(pow((double)png_ptr->background.red/255, g) *
-                255.0 + 0.5);
-            back.green =
-               (png_byte)(pow((double)png_ptr->background.green/255, g) *
-                255.0 + 0.5);
-            back.blue =
-               (png_byte)(pow((double)png_ptr->background.blue/255, g) *
-                255.0 + 0.5);
-         }
-
-         g = 1.0 / png_ptr->background_gamma;
-
-         back_1.red =
-            (png_byte)(pow((double)png_ptr->background.red/255, g) *
-             255.0 + 0.5);
-         back_1.green =
-            (png_byte)(pow((double)png_ptr->background.green/255, g) *
-             255.0 + 0.5);
-         back_1.blue =
-            (png_byte)(pow((double)png_ptr->background.blue/255, g) *
-             255.0 + 0.5);
-      }
-
-      if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
-      {
-         png_uint_32 i;
-
-         for (i = 0; i < (png_uint_32)num_palette; i++)
-         {
-            if (i < png_ptr->num_trans && png_ptr->trans[i] == 0)
-            {
-               palette[i] = back;
-            }
-            else if (i < png_ptr->num_trans && png_ptr->trans[i] != 0xff)
-            {
-               png_byte v, w;
-
-               v = png_ptr->gamma_to_1[png_ptr->palette[i].red];
-               png_composite(w, v, png_ptr->trans[i], back_1.red);
-               palette[i].red = png_ptr->gamma_from_1[w];
-
-               v = png_ptr->gamma_to_1[png_ptr->palette[i].green];
-               png_composite(w, v, png_ptr->trans[i], back_1.green);
-               palette[i].green = png_ptr->gamma_from_1[w];
-
-               v = png_ptr->gamma_to_1[png_ptr->palette[i].blue];
-               png_composite(w, v, png_ptr->trans[i], back_1.blue);
-               palette[i].blue = png_ptr->gamma_from_1[w];
-            }
-            else
-            {
-               palette[i].red = png_ptr->gamma_table[palette[i].red];
-               palette[i].green = png_ptr->gamma_table[palette[i].green];
-               palette[i].blue = png_ptr->gamma_table[palette[i].blue];
-            }
-         }
-      }
-      else
-      {
-         int i;
-
-         for (i = 0; i < num_palette; i++)
-         {
-            if (palette[i].red == (png_byte)png_ptr->trans_values.gray)
-            {
-               palette[i] = back;
-            }
-            else
-            {
-               palette[i].red = png_ptr->gamma_table[palette[i].red];
-               palette[i].green = png_ptr->gamma_table[palette[i].green];
-               palette[i].blue = png_ptr->gamma_table[palette[i].blue];
-            }
-         }
-      }
-   }
-   else
-#endif
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-   if (png_ptr->transformations & PNG_GAMMA)
-   {
-      int i;
-
-      for (i = 0; i < num_palette; i++)
-      {
-         palette[i].red = png_ptr->gamma_table[palette[i].red];
-         palette[i].green = png_ptr->gamma_table[palette[i].green];
-         palette[i].blue = png_ptr->gamma_table[palette[i].blue];
-      }
-   }
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
-   else
 #endif
-#endif
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
-   if (png_ptr->transformations & PNG_BACKGROUND)
-   {
-      if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
-      {
-         png_color back;
 
-         back.red   = (png_byte)png_ptr->background.red;
-         back.green = (png_byte)png_ptr->background.green;
-         back.blue  = (png_byte)png_ptr->background.blue;
 
-         for (i = 0; i < (int)png_ptr->num_trans; i++)
-         {
-            if (png_ptr->trans[i] == 0)
-            {
-               palette[i].red = back.red;
-               palette[i].green = back.green;
-               palette[i].blue = back.blue;
-            }
-            else if (png_ptr->trans[i] != 0xff)
-            {
-               png_composite(palette[i].red, png_ptr->palette[i].red,
-                  png_ptr->trans[i], back.red);
-               png_composite(palette[i].green, png_ptr->palette[i].green,
-                  png_ptr->trans[i], back.green);
-               png_composite(palette[i].blue, png_ptr->palette[i].blue,
-                  png_ptr->trans[i], back.blue);
-            }
-         }
-      }
-      else /* assume grayscale palette (what else could it be?) */
-      {
-         int i;
-
-         for (i = 0; i < num_palette; i++)
-         {
-            if (i == (png_byte)png_ptr->trans_values.gray)
-            {
-               palette[i].red = (png_byte)png_ptr->background.red;
-               palette[i].green = (png_byte)png_ptr->background.green;
-               palette[i].blue = (png_byte)png_ptr->background.blue;
-            }
-         }
-      }
-   }
-#endif
-}
-#endif
-
-#if defined(PNG_READ_BACKGROUND_SUPPORTED)
+#ifdef PNG_READ_TRANSFORMS_SUPPORTED
+#ifdef PNG_READ_BACKGROUND_SUPPORTED
 /* Replace any alpha or transparency with the supplied background color.
  * "background" is already in the screen gamma, while "background_1" is
  * at a gamma of 1.0.  Paletted files have already been taken care of.
  */
 void /* PRIVATE */
-png_do_background(png_row_infop row_info, png_bytep row,
-   png_color_16p trans_values, png_color_16p background
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-   , png_color_16p background_1,
-   png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1,
-   png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1,
-   png_uint_16pp gamma_16_to_1, int gamma_shift
-#endif
-   )
+png_do_compose(png_row_infop row_info, png_bytep row, png_structp png_ptr)
 {
-   png_bytep sp, dp;
+#ifdef PNG_READ_GAMMA_SUPPORTED
+   png_const_bytep gamma_table = png_ptr->gamma_table;
+   png_const_bytep gamma_from_1 = png_ptr->gamma_from_1;
+   png_const_bytep gamma_to_1 = png_ptr->gamma_to_1;
+   png_const_uint_16pp gamma_16 = png_ptr->gamma_16_table;
+   png_const_uint_16pp gamma_16_from_1 = png_ptr->gamma_16_from_1;
+   png_const_uint_16pp gamma_16_to_1 = png_ptr->gamma_16_to_1;
+   int gamma_shift = png_ptr->gamma_shift;
+#endif
+
+   png_bytep sp;
    png_uint_32 i;
-   png_uint_32 row_width=row_info->width;
+   png_uint_32 row_width = row_info->width;
+   int optimize = (png_ptr->flags & PNG_FLAG_OPTIMIZE_ALPHA) != 0;
    int shift;
 
-   png_debug(1, "in png_do_background\n");
-   if (background != NULL &&
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL && row_info != NULL &&
-#endif
-      (!(row_info->color_type & PNG_COLOR_MASK_ALPHA) ||
-      (row_info->color_type != PNG_COLOR_TYPE_PALETTE && trans_values)))
+   png_debug(1, "in png_do_compose");
+
    {
       switch (row_info->color_type)
       {
@@ -2726,24 +3466,27 @@ png_do_background(png_row_infop row_info, png_bytep row,
                   for (i = 0; i < row_width; i++)
                   {
                      if ((png_uint_16)((*sp >> shift) & 0x01)
-                        == trans_values->gray)
+                        == png_ptr->trans_color.gray)
                      {
                         *sp &= (png_byte)((0x7f7f >> (7 - shift)) & 0xff);
-                        *sp |= (png_byte)(background->gray << shift);
+                        *sp |= (png_byte)(png_ptr->background.gray << shift);
                      }
+
                      if (!shift)
                      {
                         shift = 7;
                         sp++;
                      }
+
                      else
                         shift--;
                   }
                   break;
                }
+
                case 2:
                {
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+#ifdef PNG_READ_GAMMA_SUPPORTED
                   if (gamma_table != NULL)
                   {
                      sp = row;
@@ -2751,11 +3494,12 @@ png_do_background(png_row_infop row_info, png_bytep row,
                      for (i = 0; i < row_width; i++)
                      {
                         if ((png_uint_16)((*sp >> shift) & 0x03)
-                            == trans_values->gray)
+                            == png_ptr->trans_color.gray)
                         {
                            *sp &= (png_byte)((0x3f3f >> (6 - shift)) & 0xff);
-                           *sp |= (png_byte)(background->gray << shift);
+                           *sp |= (png_byte)(png_ptr->background.gray << shift);
                         }
+
                         else
                         {
                            png_byte p = (png_byte)((*sp >> shift) & 0x03);
@@ -2764,15 +3508,18 @@ png_do_background(png_row_infop row_info, png_bytep row,
                            *sp &= (png_byte)((0x3f3f >> (6 - shift)) & 0xff);
                            *sp |= (png_byte)(g << shift);
                         }
+
                         if (!shift)
                         {
                            shift = 6;
                            sp++;
                         }
+
                         else
                            shift -= 2;
                      }
                   }
+
                   else
 #endif
                   {
@@ -2781,25 +3528,28 @@ png_do_background(png_row_infop row_info, png_bytep row,
                      for (i = 0; i < row_width; i++)
                      {
                         if ((png_uint_16)((*sp >> shift) & 0x03)
-                            == trans_values->gray)
+                            == png_ptr->trans_color.gray)
                         {
                            *sp &= (png_byte)((0x3f3f >> (6 - shift)) & 0xff);
-                           *sp |= (png_byte)(background->gray << shift);
+                           *sp |= (png_byte)(png_ptr->background.gray << shift);
                         }
+
                         if (!shift)
                         {
                            shift = 6;
                            sp++;
                         }
+
                         else
                            shift -= 2;
                      }
                   }
                   break;
                }
+
                case 4:
                {
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+#ifdef PNG_READ_GAMMA_SUPPORTED
                   if (gamma_table != NULL)
                   {
                      sp = row;
@@ -2807,28 +3557,32 @@ png_do_background(png_row_infop row_info, png_bytep row,
                      for (i = 0; i < row_width; i++)
                      {
                         if ((png_uint_16)((*sp >> shift) & 0x0f)
-                            == trans_values->gray)
+                            == png_ptr->trans_color.gray)
                         {
                            *sp &= (png_byte)((0xf0f >> (4 - shift)) & 0xff);
-                           *sp |= (png_byte)(background->gray << shift);
+                           *sp |= (png_byte)(png_ptr->background.gray << shift);
                         }
+
                         else
                         {
                            png_byte p = (png_byte)((*sp >> shift) & 0x0f);
                            png_byte g = (png_byte)((gamma_table[p |
-                             (p << 4)] >> 4) & 0x0f);
+                               (p << 4)] >> 4) & 0x0f);
                            *sp &= (png_byte)((0xf0f >> (4 - shift)) & 0xff);
                            *sp |= (png_byte)(g << shift);
                         }
+
                         if (!shift)
                         {
                            shift = 4;
                            sp++;
                         }
+
                         else
                            shift -= 4;
                      }
                   }
+
                   else
 #endif
                   {
@@ -2837,38 +3591,38 @@ png_do_background(png_row_infop row_info, png_bytep row,
                      for (i = 0; i < row_width; i++)
                      {
                         if ((png_uint_16)((*sp >> shift) & 0x0f)
-                            == trans_values->gray)
+                            == png_ptr->trans_color.gray)
                         {
                            *sp &= (png_byte)((0xf0f >> (4 - shift)) & 0xff);
-                           *sp |= (png_byte)(background->gray << shift);
+                           *sp |= (png_byte)(png_ptr->background.gray << shift);
                         }
+
                         if (!shift)
                         {
                            shift = 4;
                            sp++;
                         }
+
                         else
                            shift -= 4;
                      }
                   }
                   break;
                }
+
                case 8:
                {
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+#ifdef PNG_READ_GAMMA_SUPPORTED
                   if (gamma_table != NULL)
                   {
                      sp = row;
                      for (i = 0; i < row_width; i++, sp++)
                      {
-                        if (*sp == trans_values->gray)
-                        {
-                           *sp = (png_byte)background->gray;
-                        }
+                        if (*sp == png_ptr->trans_color.gray)
+                           *sp = (png_byte)png_ptr->background.gray;
+
                         else
-                        {
                            *sp = gamma_table[*sp];
-                        }
                      }
                   }
                   else
@@ -2877,17 +3631,16 @@ png_do_background(png_row_infop row_info, png_bytep row,
                      sp = row;
                      for (i = 0; i < row_width; i++, sp++)
                      {
-                        if (*sp == trans_values->gray)
-                        {
-                           *sp = (png_byte)background->gray;
-                        }
+                        if (*sp == png_ptr->trans_color.gray)
+                           *sp = (png_byte)png_ptr->background.gray;
                      }
                   }
                   break;
                }
+
                case 16:
                {
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+#ifdef PNG_READ_GAMMA_SUPPORTED
                   if (gamma_16 != NULL)
                   {
                      sp = row;
@@ -2896,12 +3649,14 @@ png_do_background(png_row_infop row_info, png_bytep row,
                         png_uint_16 v;
 
                         v = (png_uint_16)(((*sp) << 8) + *(sp + 1));
-                        if (v == trans_values->gray)
+
+                        if (v == png_ptr->trans_color.gray)
                         {
-                           /* background is already in screen gamma */
-                           *sp = (png_byte)((background->gray >> 8) & 0xff);
-                           *(sp + 1) = (png_byte)(background->gray & 0xff);
+                           /* Background is already in screen gamma */
+                           *sp = (png_byte)((png_ptr->background.gray >> 8) & 0xff);
+                           *(sp + 1) = (png_byte)(png_ptr->background.gray & 0xff);
                         }
+
                         else
                         {
                            v = gamma_16[*(sp + 1) >> gamma_shift][*sp];
@@ -2919,36 +3674,42 @@ png_do_background(png_row_infop row_info, png_bytep row,
                         png_uint_16 v;
 
                         v = (png_uint_16)(((*sp) << 8) + *(sp + 1));
-                        if (v == trans_values->gray)
+
+                        if (v == png_ptr->trans_color.gray)
                         {
-                           *sp = (png_byte)((background->gray >> 8) & 0xff);
-                           *(sp + 1) = (png_byte)(background->gray & 0xff);
+                           *sp = (png_byte)((png_ptr->background.gray >> 8) & 0xff);
+                           *(sp + 1) = (png_byte)(png_ptr->background.gray & 0xff);
                         }
                      }
                   }
                   break;
                }
+
+               default:
+                  break;
             }
             break;
          }
+
          case PNG_COLOR_TYPE_RGB:
          {
             if (row_info->bit_depth == 8)
             {
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+#ifdef PNG_READ_GAMMA_SUPPORTED
                if (gamma_table != NULL)
                {
                   sp = row;
                   for (i = 0; i < row_width; i++, sp += 3)
                   {
-                     if (*sp == trans_values->red &&
-                        *(sp + 1) == trans_values->green &&
-                        *(sp + 2) == trans_values->blue)
+                     if (*sp == png_ptr->trans_color.red &&
+                         *(sp + 1) == png_ptr->trans_color.green &&
+                         *(sp + 2) == png_ptr->trans_color.blue)
                      {
-                        *sp = (png_byte)background->red;
-                        *(sp + 1) = (png_byte)background->green;
-                        *(sp + 2) = (png_byte)background->blue;
+                        *sp = (png_byte)png_ptr->background.red;
+                        *(sp + 1) = (png_byte)png_ptr->background.green;
+                        *(sp + 2) = (png_byte)png_ptr->background.blue;
                      }
+
                      else
                      {
                         *sp = gamma_table[*sp];
@@ -2963,108 +3724,125 @@ png_do_background(png_row_infop row_info, png_bytep row,
                   sp = row;
                   for (i = 0; i < row_width; i++, sp += 3)
                   {
-                     if (*sp == trans_values->red &&
-                        *(sp + 1) == trans_values->green &&
-                        *(sp + 2) == trans_values->blue)
+                     if (*sp == png_ptr->trans_color.red &&
+                         *(sp + 1) == png_ptr->trans_color.green &&
+                         *(sp + 2) == png_ptr->trans_color.blue)
                      {
-                        *sp = (png_byte)background->red;
-                        *(sp + 1) = (png_byte)background->green;
-                        *(sp + 2) = (png_byte)background->blue;
+                        *sp = (png_byte)png_ptr->background.red;
+                        *(sp + 1) = (png_byte)png_ptr->background.green;
+                        *(sp + 2) = (png_byte)png_ptr->background.blue;
                      }
                   }
                }
             }
             else /* if (row_info->bit_depth == 16) */
             {
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+#ifdef PNG_READ_GAMMA_SUPPORTED
                if (gamma_16 != NULL)
                {
                   sp = row;
                   for (i = 0; i < row_width; i++, sp += 6)
                   {
                      png_uint_16 r = (png_uint_16)(((*sp) << 8) + *(sp + 1));
-                     png_uint_16 g = (png_uint_16)(((*(sp+2)) << 8) + *(sp+3));
-                     png_uint_16 b = (png_uint_16)(((*(sp+4)) << 8) + *(sp+5));
-                     if (r == trans_values->red && g == trans_values->green &&
-                        b == trans_values->blue)
+
+                     png_uint_16 g = (png_uint_16)(((*(sp + 2)) << 8)
+                         + *(sp + 3));
+
+                     png_uint_16 b = (png_uint_16)(((*(sp + 4)) << 8)
+                         + *(sp + 5));
+
+                     if (r == png_ptr->trans_color.red &&
+                         g == png_ptr->trans_color.green &&
+                         b == png_ptr->trans_color.blue)
                      {
-                        /* background is already in screen gamma */
-                        *sp = (png_byte)((background->red >> 8) & 0xff);
-                        *(sp + 1) = (png_byte)(background->red & 0xff);
-                        *(sp + 2) = (png_byte)((background->green >> 8) & 0xff);
-                        *(sp + 3) = (png_byte)(background->green & 0xff);
-                        *(sp + 4) = (png_byte)((background->blue >> 8) & 0xff);
-                        *(sp + 5) = (png_byte)(background->blue & 0xff);
+                        /* Background is already in screen gamma */
+                        *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff);
+                        *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff);
+                        *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) & 0xff);
+                        *(sp + 3) = (png_byte)(png_ptr->background.green & 0xff);
+                        *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) & 0xff);
+                        *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff);
                      }
+
                      else
                      {
                         png_uint_16 v = gamma_16[*(sp + 1) >> gamma_shift][*sp];
                         *sp = (png_byte)((v >> 8) & 0xff);
                         *(sp + 1) = (png_byte)(v & 0xff);
+
                         v = gamma_16[*(sp + 3) >> gamma_shift][*(sp + 2)];
                         *(sp + 2) = (png_byte)((v >> 8) & 0xff);
                         *(sp + 3) = (png_byte)(v & 0xff);
+
                         v = gamma_16[*(sp + 5) >> gamma_shift][*(sp + 4)];
                         *(sp + 4) = (png_byte)((v >> 8) & 0xff);
                         *(sp + 5) = (png_byte)(v & 0xff);
                      }
                   }
                }
+
                else
 #endif
                {
                   sp = row;
                   for (i = 0; i < row_width; i++, sp += 6)
                   {
-                     png_uint_16 r = (png_uint_16)(((*sp) << 8) + *(sp+1));
-                     png_uint_16 g = (png_uint_16)(((*(sp+2)) << 8) + *(sp+3));
-                     png_uint_16 b = (png_uint_16)(((*(sp+4)) << 8) + *(sp+5));
+                     png_uint_16 r = (png_uint_16)(((*sp) << 8) + *(sp + 1));
+
+                     png_uint_16 g = (png_uint_16)(((*(sp + 2)) << 8)
+                         + *(sp + 3));
+
+                     png_uint_16 b = (png_uint_16)(((*(sp + 4)) << 8)
+                         + *(sp + 5));
 
-                     if (r == trans_values->red && g == trans_values->green &&
-                        b == trans_values->blue)
+                     if (r == png_ptr->trans_color.red &&
+                         g == png_ptr->trans_color.green &&
+                         b == png_ptr->trans_color.blue)
                      {
-                        *sp = (png_byte)((background->red >> 8) & 0xff);
-                        *(sp + 1) = (png_byte)(background->red & 0xff);
-                        *(sp + 2) = (png_byte)((background->green >> 8) & 0xff);
-                        *(sp + 3) = (png_byte)(background->green & 0xff);
-                        *(sp + 4) = (png_byte)((background->blue >> 8) & 0xff);
-                        *(sp + 5) = (png_byte)(background->blue & 0xff);
+                        *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff);
+                        *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff);
+                        *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) & 0xff);
+                        *(sp + 3) = (png_byte)(png_ptr->background.green & 0xff);
+                        *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) & 0xff);
+                        *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff);
                      }
                   }
                }
             }
             break;
          }
+
          case PNG_COLOR_TYPE_GRAY_ALPHA:
          {
             if (row_info->bit_depth == 8)
             {
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+#ifdef PNG_READ_GAMMA_SUPPORTED
                if (gamma_to_1 != NULL && gamma_from_1 != NULL &&
                    gamma_table != NULL)
                {
                   sp = row;
-                  dp = row;
-                  for (i = 0; i < row_width; i++, sp += 2, dp++)
+                  for (i = 0; i < row_width; i++, sp += 2)
                   {
                      png_uint_16 a = *(sp + 1);
 
                      if (a == 0xff)
-                     {
-                        *dp = gamma_table[*sp];
-                     }
+                        *sp = gamma_table[*sp];
+
                      else if (a == 0)
                      {
-                        /* background is already in screen gamma */
-                        *dp = (png_byte)background->gray;
+                        /* Background is already in screen gamma */
+                        *sp = (png_byte)png_ptr->background.gray;
                      }
+
                      else
                      {
                         png_byte v, w;
 
                         v = gamma_to_1[*sp];
-                        png_composite(w, v, a, background_1->gray);
-                        *dp = gamma_from_1[w];
+                        png_composite(w, v, a, png_ptr->background_1.gray);
+                        if (!optimize)
+                           w = gamma_from_1[w];
+                        *sp = w;
                      }
                   }
                }
@@ -3072,151 +3850,137 @@ png_do_background(png_row_infop row_info, png_bytep row,
 #endif
                {
                   sp = row;
-                  dp = row;
-                  for (i = 0; i < row_width; i++, sp += 2, dp++)
+                  for (i = 0; i < row_width; i++, sp += 2)
                   {
                      png_byte a = *(sp + 1);
 
-                     if (a == 0xff)
-                     {
-                        *dp = *sp;
-                     }
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-                     else if (a == 0)
-                     {
-                        *dp = (png_byte)background->gray;
-                     }
-                     else
-                     {
-                        png_composite(*dp, *sp, a, background_1->gray);
-                     }
-#else
-                     *dp = (png_byte)background->gray;
-#endif
+                     if (a == 0)
+                        *sp = (png_byte)png_ptr->background.gray;
+
+                     else if (a < 0xff)
+                        png_composite(*sp, *sp, a, png_ptr->background_1.gray);
                   }
                }
             }
             else /* if (png_ptr->bit_depth == 16) */
             {
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+#ifdef PNG_READ_GAMMA_SUPPORTED
                if (gamma_16 != NULL && gamma_16_from_1 != NULL &&
                    gamma_16_to_1 != NULL)
                {
                   sp = row;
-                  dp = row;
-                  for (i = 0; i < row_width; i++, sp += 4, dp += 2)
+                  for (i = 0; i < row_width; i++, sp += 4)
                   {
-                     png_uint_16 a = (png_uint_16)(((*(sp+2)) << 8) + *(sp+3));
+                     png_uint_16 a = (png_uint_16)(((*(sp + 2)) << 8)
+                         + *(sp + 3));
 
                      if (a == (png_uint_16)0xffff)
                      {
                         png_uint_16 v;
 
                         v = gamma_16[*(sp + 1) >> gamma_shift][*sp];
-                        *dp = (png_byte)((v >> 8) & 0xff);
-                        *(dp + 1) = (png_byte)(v & 0xff);
+                        *sp = (png_byte)((v >> 8) & 0xff);
+                        *(sp + 1) = (png_byte)(v & 0xff);
                      }
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-                     else if (a == 0)
-#else
-                     else
-#endif
+
+                     else if (a == 0)
                      {
-                        /* background is already in screen gamma */
-                        *dp = (png_byte)((background->gray >> 8) & 0xff);
-                        *(dp + 1) = (png_byte)(background->gray & 0xff);
+                        /* Background is already in screen gamma */
+                        *sp = (png_byte)((png_ptr->background.gray >> 8) & 0xff);
+                        *(sp + 1) = (png_byte)(png_ptr->background.gray & 0xff);
                      }
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+
                      else
                      {
                         png_uint_16 g, v, w;
 
                         g = gamma_16_to_1[*(sp + 1) >> gamma_shift][*sp];
-                        png_composite_16(v, g, a, background_1->gray);
-                        w = gamma_16_from_1[(v&0xff) >> gamma_shift][v >> 8];
-                        *dp = (png_byte)((w >> 8) & 0xff);
-                        *(dp + 1) = (png_byte)(w & 0xff);
+                        png_composite_16(v, g, a, png_ptr->background_1.gray);
+                        if (optimize)
+                           w = v;
+                        else
+                           w = gamma_16_from_1[(v&0xff) >> gamma_shift][v >> 8];
+                        *sp = (png_byte)((w >> 8) & 0xff);
+                        *(sp + 1) = (png_byte)(w & 0xff);
                      }
-#endif
                   }
                }
                else
 #endif
                {
                   sp = row;
-                  dp = row;
-                  for (i = 0; i < row_width; i++, sp += 4, dp += 2)
+                  for (i = 0; i < row_width; i++, sp += 4)
                   {
-                     png_uint_16 a = (png_uint_16)(((*(sp+2)) << 8) + *(sp+3));
-                     if (a == (png_uint_16)0xffff)
-                     {
-                        png_memcpy(dp, sp, 2);
-                     }
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-                     else if (a == 0)
-#else
-                     else
-#endif
+                     png_uint_16 a = (png_uint_16)(((*(sp + 2)) << 8)
+                         + *(sp + 3));
+
+                     if (a == 0)
                      {
-                        *dp = (png_byte)((background->gray >> 8) & 0xff);
-                        *(dp + 1) = (png_byte)(background->gray & 0xff);
+                        *sp = (png_byte)((png_ptr->background.gray >> 8) & 0xff);
+                        *(sp + 1) = (png_byte)(png_ptr->background.gray & 0xff);
                      }
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-                     else
+
+                     else if (a < 0xffff)
                      {
                         png_uint_16 g, v;
 
                         g = (png_uint_16)(((*sp) << 8) + *(sp + 1));
-                        png_composite_16(v, g, a, background_1->gray);
-                        *dp = (png_byte)((v >> 8) & 0xff);
-                        *(dp + 1) = (png_byte)(v & 0xff);
+                        png_composite_16(v, g, a, png_ptr->background_1.gray);
+                        *sp = (png_byte)((v >> 8) & 0xff);
+                        *(sp + 1) = (png_byte)(v & 0xff);
                      }
-#endif
                   }
                }
             }
             break;
          }
+
          case PNG_COLOR_TYPE_RGB_ALPHA:
          {
             if (row_info->bit_depth == 8)
             {
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+#ifdef PNG_READ_GAMMA_SUPPORTED
                if (gamma_to_1 != NULL && gamma_from_1 != NULL &&
                    gamma_table != NULL)
                {
                   sp = row;
-                  dp = row;
-                  for (i = 0; i < row_width; i++, sp += 4, dp += 3)
+                  for (i = 0; i < row_width; i++, sp += 4)
                   {
                      png_byte a = *(sp + 3);
 
                      if (a == 0xff)
                      {
-                        *dp = gamma_table[*sp];
-                        *(dp + 1) = gamma_table[*(sp + 1)];
-                        *(dp + 2) = gamma_table[*(sp + 2)];
+                        *sp = gamma_table[*sp];
+                        *(sp + 1) = gamma_table[*(sp + 1)];
+                        *(sp + 2) = gamma_table[*(sp + 2)];
                      }
+
                      else if (a == 0)
                      {
-                        /* background is already in screen gamma */
-                        *dp = (png_byte)background->red;
-                        *(dp + 1) = (png_byte)background->green;
-                        *(dp + 2) = (png_byte)background->blue;
+                        /* Background is already in screen gamma */
+                        *sp = (png_byte)png_ptr->background.red;
+                        *(sp + 1) = (png_byte)png_ptr->background.green;
+                        *(sp + 2) = (png_byte)png_ptr->background.blue;
                      }
+
                      else
                      {
                         png_byte v, w;
 
                         v = gamma_to_1[*sp];
-                        png_composite(w, v, a, background_1->red);
-                        *dp = gamma_from_1[w];
+                        png_composite(w, v, a, png_ptr->background_1.red);
+                        if (!optimize) w = gamma_from_1[w];
+                        *sp = w;
+
                         v = gamma_to_1[*(sp + 1)];
-                        png_composite(w, v, a, background_1->green);
-                        *(dp + 1) = gamma_from_1[w];
+                        png_composite(w, v, a, png_ptr->background_1.green);
+                        if (!optimize) w = gamma_from_1[w];
+                        *(sp + 1) = w;
+
                         v = gamma_to_1[*(sp + 2)];
-                        png_composite(w, v, a, background_1->blue);
-                        *(dp + 2) = gamma_from_1[w];
+                        png_composite(w, v, a, png_ptr->background_1.blue);
+                        if (!optimize) w = gamma_from_1[w];
+                        *(sp + 2) = w;
                      }
                   }
                }
@@ -3224,115 +3988,120 @@ png_do_background(png_row_infop row_info, png_bytep row,
 #endif
                {
                   sp = row;
-                  dp = row;
-                  for (i = 0; i < row_width; i++, sp += 4, dp += 3)
+                  for (i = 0; i < row_width; i++, sp += 4)
                   {
                      png_byte a = *(sp + 3);
 
-                     if (a == 0xff)
-                     {
-                        *dp = *sp;
-                        *(dp + 1) = *(sp + 1);
-                        *(dp + 2) = *(sp + 2);
-                     }
-                     else if (a == 0)
+                     if (a == 0)
                      {
-                        *dp = (png_byte)background->red;
-                        *(dp + 1) = (png_byte)background->green;
-                        *(dp + 2) = (png_byte)background->blue;
+                        *sp = (png_byte)png_ptr->background.red;
+                        *(sp + 1) = (png_byte)png_ptr->background.green;
+                        *(sp + 2) = (png_byte)png_ptr->background.blue;
                      }
-                     else
+
+                     else if (a < 0xff)
                      {
-                        png_composite(*dp, *sp, a, background->red);
-                        png_composite(*(dp + 1), *(sp + 1), a,
-                           background->green);
-                        png_composite(*(dp + 2), *(sp + 2), a,
-                           background->blue);
+                        png_composite(*sp, *sp, a, png_ptr->background.red);
+
+                        png_composite(*(sp + 1), *(sp + 1), a,
+                            png_ptr->background.green);
+
+                        png_composite(*(sp + 2), *(sp + 2), a,
+                            png_ptr->background.blue);
                      }
                   }
                }
             }
             else /* if (row_info->bit_depth == 16) */
             {
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+#ifdef PNG_READ_GAMMA_SUPPORTED
                if (gamma_16 != NULL && gamma_16_from_1 != NULL &&
                    gamma_16_to_1 != NULL)
                {
                   sp = row;
-                  dp = row;
-                  for (i = 0; i < row_width; i++, sp += 8, dp += 6)
+                  for (i = 0; i < row_width; i++, sp += 8)
                   {
                      png_uint_16 a = (png_uint_16)(((png_uint_16)(*(sp + 6))
                          << 8) + (png_uint_16)(*(sp + 7)));
+
                      if (a == (png_uint_16)0xffff)
                      {
                         png_uint_16 v;
 
                         v = gamma_16[*(sp + 1) >> gamma_shift][*sp];
-                        *dp = (png_byte)((v >> 8) & 0xff);
-                        *(dp + 1) = (png_byte)(v & 0xff);
+                        *sp = (png_byte)((v >> 8) & 0xff);
+                        *(sp + 1) = (png_byte)(v & 0xff);
+
                         v = gamma_16[*(sp + 3) >> gamma_shift][*(sp + 2)];
-                        *(dp + 2) = (png_byte)((v >> 8) & 0xff);
-                        *(dp + 3) = (png_byte)(v & 0xff);
+                        *(sp + 2) = (png_byte)((v >> 8) & 0xff);
+                        *(sp + 3) = (png_byte)(v & 0xff);
+
                         v = gamma_16[*(sp + 5) >> gamma_shift][*(sp + 4)];
-                        *(dp + 4) = (png_byte)((v >> 8) & 0xff);
-                        *(dp + 5) = (png_byte)(v & 0xff);
+                        *(sp + 4) = (png_byte)((v >> 8) & 0xff);
+                        *(sp + 5) = (png_byte)(v & 0xff);
                      }
+
                      else if (a == 0)
                      {
-                        /* background is already in screen gamma */
-                        *dp = (png_byte)((background->red >> 8) & 0xff);
-                        *(dp + 1) = (png_byte)(background->red & 0xff);
-                        *(dp + 2) = (png_byte)((background->green >> 8) & 0xff);
-                        *(dp + 3) = (png_byte)(background->green & 0xff);
-                        *(dp + 4) = (png_byte)((background->blue >> 8) & 0xff);
-                        *(dp + 5) = (png_byte)(background->blue & 0xff);
+                        /* Background is already in screen gamma */
+                        *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff);
+                        *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff);
+                        *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) & 0xff);
+                        *(sp + 3) = (png_byte)(png_ptr->background.green & 0xff);
+                        *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) & 0xff);
+                        *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff);
                      }
+
                      else
                      {
-                        png_uint_16 v, w, x;
+                        png_uint_16 v, w;
 
                         v = gamma_16_to_1[*(sp + 1) >> gamma_shift][*sp];
-                        png_composite_16(w, v, a, background_1->red);
-                        x = gamma_16_from_1[((w&0xff) >> gamma_shift)][w >> 8];
-                        *dp = (png_byte)((x >> 8) & 0xff);
-                        *(dp + 1) = (png_byte)(x & 0xff);
+                        png_composite_16(w, v, a, png_ptr->background_1.red);
+                        if (!optimize)
+                           w = gamma_16_from_1[((w&0xff) >> gamma_shift)][w >> 8];
+                        *sp = (png_byte)((w >> 8) & 0xff);
+                        *(sp + 1) = (png_byte)(w & 0xff);
+
                         v = gamma_16_to_1[*(sp + 3) >> gamma_shift][*(sp + 2)];
-                        png_composite_16(w, v, a, background_1->green);
-                        x = gamma_16_from_1[((w&0xff) >> gamma_shift)][w >> 8];
-                        *(dp + 2) = (png_byte)((x >> 8) & 0xff);
-                        *(dp + 3) = (png_byte)(x & 0xff);
+                        png_composite_16(w, v, a, png_ptr->background_1.green);
+                        if (!optimize)
+                           w = gamma_16_from_1[((w&0xff) >> gamma_shift)][w >> 8];
+
+                        *(sp + 2) = (png_byte)((w >> 8) & 0xff);
+                        *(sp + 3) = (png_byte)(w & 0xff);
+
                         v = gamma_16_to_1[*(sp + 5) >> gamma_shift][*(sp + 4)];
-                        png_composite_16(w, v, a, background_1->blue);
-                        x = gamma_16_from_1[(w & 0xff) >> gamma_shift][w >> 8];
-                        *(dp + 4) = (png_byte)((x >> 8) & 0xff);
-                        *(dp + 5) = (png_byte)(x & 0xff);
+                        png_composite_16(w, v, a, png_ptr->background_1.blue);
+                        if (!optimize)
+                           w = gamma_16_from_1[((w&0xff) >> gamma_shift)][w >> 8];
+
+                        *(sp + 4) = (png_byte)((w >> 8) & 0xff);
+                        *(sp + 5) = (png_byte)(w & 0xff);
                      }
                   }
                }
+
                else
 #endif
                {
                   sp = row;
-                  dp = row;
-                  for (i = 0; i < row_width; i++, sp += 8, dp += 6)
+                  for (i = 0; i < row_width; i++, sp += 8)
                   {
                      png_uint_16 a = (png_uint_16)(((png_uint_16)(*(sp + 6))
-                        << 8) + (png_uint_16)(*(sp + 7)));
-                     if (a == (png_uint_16)0xffff)
-                     {
-                        png_memcpy(dp, sp, 6);
-                     }
-                     else if (a == 0)
+                         << 8) + (png_uint_16)(*(sp + 7)));
+
+                     if (a == 0)
                      {
-                        *dp = (png_byte)((background->red >> 8) & 0xff);
-                        *(dp + 1) = (png_byte)(background->red & 0xff);
-                        *(dp + 2) = (png_byte)((background->green >> 8) & 0xff);
-                        *(dp + 3) = (png_byte)(background->green & 0xff);
-                        *(dp + 4) = (png_byte)((background->blue >> 8) & 0xff);
-                        *(dp + 5) = (png_byte)(background->blue & 0xff);
+                        *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff);
+                        *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff);
+                        *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) & 0xff);
+                        *(sp + 3) = (png_byte)(png_ptr->background.green & 0xff);
+                        *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) & 0xff);
+                        *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff);
                      }
-                     else
+
+                     else if (a < 0xffff)
                      {
                         png_uint_16 v;
 
@@ -3342,36 +4111,32 @@ png_do_background(png_row_infop row_info, png_bytep row,
                         png_uint_16 b = (png_uint_16)(((*(sp + 4)) << 8)
                             + *(sp + 5));
 
-                        png_composite_16(v, r, a, background->red);
-                        *dp = (png_byte)((v >> 8) & 0xff);
-                        *(dp + 1) = (png_byte)(v & 0xff);
-                        png_composite_16(v, g, a, background->green);
-                        *(dp + 2) = (png_byte)((v >> 8) & 0xff);
-                        *(dp + 3) = (png_byte)(v & 0xff);
-                        png_composite_16(v, b, a, background->blue);
-                        *(dp + 4) = (png_byte)((v >> 8) & 0xff);
-                        *(dp + 5) = (png_byte)(v & 0xff);
+                        png_composite_16(v, r, a, png_ptr->background.red);
+                        *sp = (png_byte)((v >> 8) & 0xff);
+                        *(sp + 1) = (png_byte)(v & 0xff);
+
+                        png_composite_16(v, g, a, png_ptr->background.green);
+                        *(sp + 2) = (png_byte)((v >> 8) & 0xff);
+                        *(sp + 3) = (png_byte)(v & 0xff);
+
+                        png_composite_16(v, b, a, png_ptr->background.blue);
+                        *(sp + 4) = (png_byte)((v >> 8) & 0xff);
+                        *(sp + 5) = (png_byte)(v & 0xff);
                      }
                   }
                }
             }
             break;
          }
-      }
 
-      if (row_info->color_type & PNG_COLOR_MASK_ALPHA)
-      {
-         row_info->color_type &= ~PNG_COLOR_MASK_ALPHA;
-         row_info->channels--;
-         row_info->pixel_depth = (png_byte)(row_info->channels *
-            row_info->bit_depth);
-         row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth,row_width);
+         default:
+            break;
       }
    }
 }
 #endif
 
-#if defined(PNG_READ_GAMMA_SUPPORTED)
+#ifdef PNG_READ_GAMMA_SUPPORTED
 /* Gamma correct the image, avoiding the alpha channel.  Make sure
  * you do this after you deal with the transparency issue on grayscale
  * or RGB images. If your bit depth is 8, use gamma_table, if it
@@ -3379,21 +4144,20 @@ png_do_background(png_row_infop row_info, png_bytep row,
  * build_gamma_table().
  */
 void /* PRIVATE */
-png_do_gamma(png_row_infop row_info, png_bytep row,
-   png_bytep gamma_table, png_uint_16pp gamma_16_table,
-   int gamma_shift)
+png_do_gamma(png_row_infop row_info, png_bytep row, png_structp png_ptr)
 {
+   png_const_bytep gamma_table = png_ptr->gamma_table;
+   png_const_uint_16pp gamma_16_table = png_ptr->gamma_16_table;
+   int gamma_shift = png_ptr->gamma_shift;
+
    png_bytep sp;
    png_uint_32 i;
    png_uint_32 row_width=row_info->width;
 
-   png_debug(1, "in png_do_gamma\n");
-   if (
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL && row_info != NULL &&
-#endif
-       ((row_info->bit_depth <= 8 && gamma_table != NULL) ||
-        (row_info->bit_depth == 16 && gamma_16_table != NULL)))
+   png_debug(1, "in png_do_gamma");
+
+   if (((row_info->bit_depth <= 8 && gamma_table != NULL) ||
+       (row_info->bit_depth == 16 && gamma_16_table != NULL)))
    {
       switch (row_info->color_type)
       {
@@ -3412,6 +4176,7 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
                   sp++;
                }
             }
+
             else /* if (row_info->bit_depth == 16) */
             {
                sp = row;
@@ -3423,10 +4188,12 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
                   *sp = (png_byte)((v >> 8) & 0xff);
                   *(sp + 1) = (png_byte)(v & 0xff);
                   sp += 2;
+
                   v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp];
                   *sp = (png_byte)((v >> 8) & 0xff);
                   *(sp + 1) = (png_byte)(v & 0xff);
                   sp += 2;
+
                   v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp];
                   *sp = (png_byte)((v >> 8) & 0xff);
                   *(sp + 1) = (png_byte)(v & 0xff);
@@ -3435,6 +4202,7 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
             }
             break;
          }
+
          case PNG_COLOR_TYPE_RGB_ALPHA:
          {
             if (row_info->bit_depth == 8)
@@ -3444,13 +4212,17 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
                {
                   *sp = gamma_table[*sp];
                   sp++;
+
                   *sp = gamma_table[*sp];
                   sp++;
+
                   *sp = gamma_table[*sp];
                   sp++;
+
                   sp++;
                }
             }
+
             else /* if (row_info->bit_depth == 16) */
             {
                sp = row;
@@ -3460,10 +4232,12 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
                   *sp = (png_byte)((v >> 8) & 0xff);
                   *(sp + 1) = (png_byte)(v & 0xff);
                   sp += 2;
+
                   v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp];
                   *sp = (png_byte)((v >> 8) & 0xff);
                   *(sp + 1) = (png_byte)(v & 0xff);
                   sp += 2;
+
                   v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp];
                   *sp = (png_byte)((v >> 8) & 0xff);
                   *(sp + 1) = (png_byte)(v & 0xff);
@@ -3472,6 +4246,7 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
             }
             break;
          }
+
          case PNG_COLOR_TYPE_GRAY_ALPHA:
          {
             if (row_info->bit_depth == 8)
@@ -3483,6 +4258,7 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
                   sp += 2;
                }
             }
+
             else /* if (row_info->bit_depth == 16) */
             {
                sp = row;
@@ -3496,6 +4272,7 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
             }
             break;
          }
+
          case PNG_COLOR_TYPE_GRAY:
          {
             if (row_info->bit_depth == 2)
@@ -3509,13 +4286,14 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
                   int d = *sp & 0x03;
 
                   *sp = (png_byte)(
-                        ((((int)gamma_table[a|(a>>2)|(a>>4)|(a>>6)])   ) & 0xc0)|
-                        ((((int)gamma_table[(b<<2)|b|(b>>2)|(b>>4)])>>2) & 0x30)|
-                        ((((int)gamma_table[(c<<4)|(c<<2)|c|(c>>2)])>>4) & 0x0c)|
-                        ((((int)gamma_table[(d<<6)|(d<<4)|(d<<2)|d])>>6) ));
+                      ((((int)gamma_table[a|(a>>2)|(a>>4)|(a>>6)])   ) & 0xc0)|
+                      ((((int)gamma_table[(b<<2)|b|(b>>2)|(b>>4)])>>2) & 0x30)|
+                      ((((int)gamma_table[(c<<4)|(c<<2)|c|(c>>2)])>>4) & 0x0c)|
+                      ((((int)gamma_table[(d<<6)|(d<<4)|(d<<2)|d])>>6) ));
                   sp++;
                }
             }
+
             if (row_info->bit_depth == 4)
             {
                sp = row;
@@ -3525,10 +4303,11 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
                   int lsb = *sp & 0x0f;
 
                   *sp = (png_byte)((((int)gamma_table[msb | (msb >> 4)]) & 0xf0)
-                          | (((int)gamma_table[(lsb << 4) | lsb]) >> 4));
+                      | (((int)gamma_table[(lsb << 4) | lsb]) >> 4));
                   sp++;
                }
             }
+
             else if (row_info->bit_depth == 8)
             {
                sp = row;
@@ -3538,6 +4317,7 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
                   sp++;
                }
             }
+
             else if (row_info->bit_depth == 16)
             {
                sp = row;
@@ -3551,30 +4331,97 @@ png_do_gamma(png_row_infop row_info, png_bytep row,
             }
             break;
          }
+
+         default:
+            break;
+      }
+   }
+}
+#endif
+
+#ifdef PNG_READ_ALPHA_MODE_SUPPORTED
+/* Encode the alpha channel to the output gamma (the input channel is always
+ * linear.)  Called only with color types that have an alpha channel.  Needs the
+ * from_1 tables.
+ */
+void /* PRIVATE */
+png_do_encode_alpha(png_row_infop row_info, png_bytep row, png_structp png_ptr)
+{
+   png_uint_32 row_width = row_info->width;
+
+   png_debug(1, "in png_do_encode_alpha");
+
+   if (row_info->color_type & PNG_COLOR_MASK_ALPHA)
+   {
+      if (row_info->bit_depth == 8)
+      {
+         PNG_CONST png_bytep table = png_ptr->gamma_from_1;
+
+         if (table != NULL)
+         {
+            PNG_CONST int step =
+               (row_info->color_type & PNG_COLOR_MASK_COLOR) ? 4 : 2;
+
+            /* The alpha channel is the last component: */
+            row += step - 1;
+
+            for (; row_width > 0; --row_width, row += step)
+               *row = table[*row];
+
+            return;
+         }
+      }
+
+      else if (row_info->bit_depth == 16)
+      {
+         PNG_CONST png_uint_16pp table = png_ptr->gamma_16_from_1;
+         PNG_CONST int gamma_shift = png_ptr->gamma_shift;
+
+         if (table != NULL)
+         {
+            PNG_CONST int step =
+               (row_info->color_type & PNG_COLOR_MASK_COLOR) ? 8 : 4;
+
+            /* The alpha channel is the last component: */
+            row += step - 2;
+
+            for (; row_width > 0; --row_width, row += step)
+            {
+               png_uint_16 v;
+
+               v = table[*(row + 1) >> gamma_shift][*row];
+               *row = (png_byte)((v >> 8) & 0xff);
+               *(row + 1) = (png_byte)(v & 0xff);
+            }
+
+            return;
+         }
       }
    }
+
+   /* Only get to here if called with a weird row_info; no harm has been done,
+    * so just issue a warning.
+    */
+   png_warning(png_ptr, "png_do_encode_alpha: unexpected call");
 }
 #endif
 
-#if defined(PNG_READ_EXPAND_SUPPORTED)
+#ifdef PNG_READ_EXPAND_SUPPORTED
 /* Expands a palette row to an RGB or RGBA row depending
  * upon whether you supply trans and num_trans.
  */
 void /* PRIVATE */
 png_do_expand_palette(png_row_infop row_info, png_bytep row,
-   png_colorp palette, png_bytep trans, int num_trans)
+   png_const_colorp palette, png_const_bytep trans_alpha, int num_trans)
 {
    int shift, value;
    png_bytep sp, dp;
    png_uint_32 i;
    png_uint_32 row_width=row_info->width;
 
-   png_debug(1, "in png_do_expand_palette\n");
-   if (
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL && row_info != NULL &&
-#endif
-       row_info->color_type == PNG_COLOR_TYPE_PALETTE)
+   png_debug(1, "in png_do_expand_palette");
+
+   if (row_info->color_type == PNG_COLOR_TYPE_PALETTE)
    {
       if (row_info->bit_depth < 8)
       {
@@ -3589,13 +4436,16 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row,
                {
                   if ((*sp >> shift) & 0x01)
                      *dp = 1;
+
                   else
                      *dp = 0;
+
                   if (shift == 7)
                   {
                      shift = 0;
                      sp--;
                   }
+
                   else
                      shift++;
 
@@ -3603,6 +4453,7 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row,
                }
                break;
             }
+
             case 2:
             {
                sp = row + (png_size_t)((row_width - 1) >> 2);
@@ -3617,6 +4468,7 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row,
                      shift = 0;
                      sp--;
                   }
+
                   else
                      shift += 2;
 
@@ -3624,6 +4476,7 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row,
                }
                break;
             }
+
             case 4:
             {
                sp = row + (png_size_t)((row_width - 1) >> 1);
@@ -3638,6 +4491,7 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row,
                      shift = 0;
                      sp--;
                   }
+
                   else
                      shift += 4;
 
@@ -3645,16 +4499,19 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row,
                }
                break;
             }
+
+            default:
+               break;
          }
          row_info->bit_depth = 8;
          row_info->pixel_depth = 8;
          row_info->rowbytes = row_width;
       }
-      switch (row_info->bit_depth)
+
+      if (row_info->bit_depth == 8)
       {
-         case 8:
          {
-            if (trans != NULL)
+            if (num_trans > 0)
             {
                sp = row + (png_size_t)row_width - 1;
                dp = row + (png_size_t)(row_width << 2) - 1;
@@ -3663,8 +4520,10 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row,
                {
                   if ((int)(*sp) >= num_trans)
                      *dp-- = 0xff;
+
                   else
-                     *dp-- = trans[*sp];
+                     *dp-- = trans_alpha[*sp];
+
                   *dp-- = palette[*sp].blue;
                   *dp-- = palette[*sp].green;
                   *dp-- = palette[*sp].red;
@@ -3676,6 +4535,7 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row,
                row_info->color_type = 6;
                row_info->channels = 4;
             }
+
             else
             {
                sp = row + (png_size_t)row_width - 1;
@@ -3688,13 +4548,13 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row,
                   *dp-- = palette[*sp].red;
                   sp--;
                }
+
                row_info->bit_depth = 8;
                row_info->pixel_depth = 24;
                row_info->rowbytes = row_width * 3;
                row_info->color_type = 2;
                row_info->channels = 3;
             }
-            break;
          }
       }
    }
@@ -3705,21 +4565,19 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row,
  */
 void /* PRIVATE */
 png_do_expand(png_row_infop row_info, png_bytep row,
-   png_color_16p trans_value)
+    png_const_color_16p trans_color)
 {
    int shift, value;
    png_bytep sp, dp;
    png_uint_32 i;
    png_uint_32 row_width=row_info->width;
 
-   png_debug(1, "in png_do_expand\n");
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if (row != NULL && row_info != NULL)
-#endif
+   png_debug(1, "in png_do_expand");
+
    {
       if (row_info->color_type == PNG_COLOR_TYPE_GRAY)
       {
-         png_uint_16 gray = (png_uint_16)(trans_value ? trans_value->gray : 0);
+         png_uint_16 gray = (png_uint_16)(trans_color ? trans_color->gray : 0);
 
          if (row_info->bit_depth < 8)
          {
@@ -3727,7 +4585,7 @@ png_do_expand(png_row_infop row_info, png_bytep row,
             {
                case 1:
                {
-                  gray = (png_uint_16)(gray*0xff);
+                  gray = (png_uint_16)((gray & 0x01) * 0xff);
                   sp = row + (png_size_t)((row_width - 1) >> 3);
                   dp = row + (png_size_t)row_width - 1;
                   shift = 7 - (int)((row_width + 7) & 0x07);
@@ -3735,13 +4593,16 @@ png_do_expand(png_row_infop row_info, png_bytep row,
                   {
                      if ((*sp >> shift) & 0x01)
                         *dp = 0xff;
+
                      else
                         *dp = 0;
+
                      if (shift == 7)
                      {
                         shift = 0;
                         sp--;
                      }
+
                      else
                         shift++;
 
@@ -3749,9 +4610,10 @@ png_do_expand(png_row_infop row_info, png_bytep row,
                   }
                   break;
                }
+
                case 2:
                {
-                  gray = (png_uint_16)(gray*0x55);
+                  gray = (png_uint_16)((gray & 0x03) * 0x55);
                   sp = row + (png_size_t)((row_width - 1) >> 2);
                   dp = row + (png_size_t)row_width - 1;
                   shift = (int)((3 - ((row_width + 3) & 0x03)) << 1);
@@ -3765,6 +4627,7 @@ png_do_expand(png_row_infop row_info, png_bytep row,
                         shift = 0;
                         sp--;
                      }
+
                      else
                         shift += 2;
 
@@ -3772,9 +4635,10 @@ png_do_expand(png_row_infop row_info, png_bytep row,
                   }
                   break;
                }
+
                case 4:
                {
-                  gray = (png_uint_16)(gray*0x11);
+                  gray = (png_uint_16)((gray & 0x0f) * 0x11);
                   sp = row + (png_size_t)((row_width - 1) >> 1);
                   dp = row + (png_size_t)row_width - 1;
                   shift = (int)((1 - ((row_width + 1) & 0x01)) << 2);
@@ -3787,6 +4651,7 @@ png_do_expand(png_row_infop row_info, png_bytep row,
                         shift = 0;
                         sp--;
                      }
+
                      else
                         shift = 4;
 
@@ -3794,48 +4659,61 @@ png_do_expand(png_row_infop row_info, png_bytep row,
                   }
                   break;
                }
+
+               default:
+                  break;
             }
+
             row_info->bit_depth = 8;
             row_info->pixel_depth = 8;
             row_info->rowbytes = row_width;
          }
 
-         if (trans_value != NULL)
+         if (trans_color != NULL)
          {
             if (row_info->bit_depth == 8)
             {
+               gray = gray & 0xff;
                sp = row + (png_size_t)row_width - 1;
                dp = row + (png_size_t)(row_width << 1) - 1;
+
                for (i = 0; i < row_width; i++)
                {
                   if (*sp == gray)
                      *dp-- = 0;
+
                   else
                      *dp-- = 0xff;
+
                   *dp-- = *sp--;
                }
             }
+
             else if (row_info->bit_depth == 16)
             {
+               png_byte gray_high = (png_byte)((gray >> 8) & 0xff);
+               png_byte gray_low = (png_byte)(gray & 0xff);
                sp = row + row_info->rowbytes - 1;
                dp = row + (row_info->rowbytes << 1) - 1;
                for (i = 0; i < row_width; i++)
                {
-                  if (((png_uint_16)*(sp) |
-                     ((png_uint_16)*(sp - 1) << 8)) == gray)
+                  if (*(sp - 1) == gray_high && *(sp) == gray_low)
                   {
                      *dp-- = 0;
                      *dp-- = 0;
                   }
+
                   else
                   {
                      *dp-- = 0xff;
                      *dp-- = 0xff;
                   }
+
                   *dp-- = *sp--;
                   *dp-- = *sp--;
                }
             }
+
             row_info->color_type = PNG_COLOR_TYPE_GRAY_ALPHA;
             row_info->channels = 2;
             row_info->pixel_depth = (png_byte)(row_info->bit_depth << 1);
@@ -3843,20 +4721,23 @@ png_do_expand(png_row_infop row_info, png_bytep row,
                row_width);
          }
       }
-      else if (row_info->color_type == PNG_COLOR_TYPE_RGB && trans_value)
+      else if (row_info->color_type == PNG_COLOR_TYPE_RGB && trans_color)
       {
          if (row_info->bit_depth == 8)
          {
+            png_byte red = (png_byte)(trans_color->red & 0xff);
+            png_byte green = (png_byte)(trans_color->green & 0xff);
+            png_byte blue = (png_byte)(trans_color->blue & 0xff);
             sp = row + (png_size_t)row_info->rowbytes - 1;
             dp = row + (png_size_t)(row_width << 2) - 1;
             for (i = 0; i < row_width; i++)
             {
-               if (*(sp - 2) == trans_value->red &&
-                  *(sp - 1) == trans_value->green &&
-                  *(sp - 0) == trans_value->blue)
+               if (*(sp - 2) == red && *(sp - 1) == green && *(sp) == blue)
                   *dp-- = 0;
+
                else
                   *dp-- = 0xff;
+
                *dp-- = *sp--;
                *dp-- = *sp--;
                *dp-- = *sp--;
@@ -3864,25 +4745,33 @@ png_do_expand(png_row_infop row_info, png_bytep row,
          }
          else if (row_info->bit_depth == 16)
          {
+            png_byte red_high = (png_byte)((trans_color->red >> 8) & 0xff);
+            png_byte green_high = (png_byte)((trans_color->green >> 8) & 0xff);
+            png_byte blue_high = (png_byte)((trans_color->blue >> 8) & 0xff);
+            png_byte red_low = (png_byte)(trans_color->red & 0xff);
+            png_byte green_low = (png_byte)(trans_color->green & 0xff);
+            png_byte blue_low = (png_byte)(trans_color->blue & 0xff);
             sp = row + row_info->rowbytes - 1;
             dp = row + (png_size_t)(row_width << 3) - 1;
             for (i = 0; i < row_width; i++)
             {
-               if ((((png_uint_16)*(sp - 4) |
-                  ((png_uint_16)*(sp - 5) << 8)) == trans_value->red) &&
-                  (((png_uint_16)*(sp - 2) |
-                  ((png_uint_16)*(sp - 3) << 8)) == trans_value->green) &&
-                  (((png_uint_16)*(sp - 0) |
-                  ((png_uint_16)*(sp - 1) << 8)) == trans_value->blue))
+               if (*(sp - 5) == red_high &&
+                   *(sp - 4) == red_low &&
+                   *(sp - 3) == green_high &&
+                   *(sp - 2) == green_low &&
+                   *(sp - 1) == blue_high &&
+                   *(sp    ) == blue_low)
                {
                   *dp-- = 0;
                   *dp-- = 0;
                }
+
                else
                {
                   *dp-- = 0xff;
                   *dp-- = 0xff;
                }
+
                *dp-- = *sp--;
                *dp-- = *sp--;
                *dp-- = *sp--;
@@ -3894,28 +4783,57 @@ png_do_expand(png_row_infop row_info, png_bytep row,
          row_info->color_type = PNG_COLOR_TYPE_RGB_ALPHA;
          row_info->channels = 4;
          row_info->pixel_depth = (png_byte)(row_info->bit_depth << 2);
-         row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth,row_width);
+         row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width);
       }
    }
 }
 #endif
 
-#if defined(PNG_READ_DITHER_SUPPORTED)
+#ifdef PNG_READ_EXPAND_16_SUPPORTED
+/* If the bit depth is 8 and the colour type is not a palette type expand the
+ * whole row to 16 bits.  Has no effect otherwise.
+ */
+void /* PRIVATE */
+png_do_expand_16(png_row_infop row_info, png_bytep row)
+{
+   if (row_info->bit_depth == 8 &&
+      row_info->color_type != PNG_COLOR_TYPE_PALETTE)
+   {
+      /* The row have a sequence of bytes containing [0..255] and we need
+       * to turn it into another row containing [0..65535], to do this we
+       * calculate:
+       *
+       *  (input / 255) * 65535
+       *
+       *  Which happens to be exactly input * 257 and this can be achieved
+       *  simply by byte replication in place (copying backwards).
+       */
+      png_byte *sp = row + row_info->rowbytes; /* source, last byte + 1 */
+      png_byte *dp = sp + row_info->rowbytes;  /* destination, end + 1 */
+      while (dp > sp)
+         dp[-2] = dp[-1] = *--sp, dp -= 2;
+
+      row_info->rowbytes *= 2;
+      row_info->bit_depth = 16;
+      row_info->pixel_depth = (png_byte)(row_info->channels * 16);
+   }
+}
+#endif
+
+#ifdef PNG_READ_QUANTIZE_SUPPORTED
 void /* PRIVATE */
-png_do_dither(png_row_infop row_info, png_bytep row,
-    png_bytep palette_lookup, png_bytep dither_lookup)
+png_do_quantize(png_row_infop row_info, png_bytep row,
+    png_const_bytep palette_lookup, png_const_bytep quantize_lookup)
 {
    png_bytep sp, dp;
    png_uint_32 i;
    png_uint_32 row_width=row_info->width;
 
-   png_debug(1, "in png_do_dither\n");
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if (row != NULL && row_info != NULL)
-#endif
+   png_debug(1, "in png_do_quantize");
+
+   if (row_info->bit_depth == 8)
    {
-      if (row_info->color_type == PNG_COLOR_TYPE_RGB &&
-         palette_lookup && row_info->bit_depth == 8)
+      if (row_info->color_type == PNG_COLOR_TYPE_RGB && palette_lookup)
       {
          int r, g, b, p;
          sp = row;
@@ -3926,31 +4844,33 @@ png_do_dither(png_row_infop row_info, png_bytep row,
             g = *sp++;
             b = *sp++;
 
-            /* this looks real messy, but the compiler will reduce
-               it down to a reasonable formula.  For example, with
-               5 bits per color, we get:
-               p = (((r >> 3) & 0x1f) << 10) |
-                  (((g >> 3) & 0x1f) << 5) |
-                  ((b >> 3) & 0x1f);
-               */
-            p = (((r >> (8 - PNG_DITHER_RED_BITS)) &
-               ((1 << PNG_DITHER_RED_BITS) - 1)) <<
-               (PNG_DITHER_GREEN_BITS + PNG_DITHER_BLUE_BITS)) |
-               (((g >> (8 - PNG_DITHER_GREEN_BITS)) &
-               ((1 << PNG_DITHER_GREEN_BITS) - 1)) <<
-               (PNG_DITHER_BLUE_BITS)) |
-               ((b >> (8 - PNG_DITHER_BLUE_BITS)) &
-               ((1 << PNG_DITHER_BLUE_BITS) - 1));
+            /* This looks real messy, but the compiler will reduce
+             * it down to a reasonable formula.  For example, with
+             * 5 bits per color, we get:
+             * p = (((r >> 3) & 0x1f) << 10) |
+             *    (((g >> 3) & 0x1f) << 5) |
+             *    ((b >> 3) & 0x1f);
+             */
+            p = (((r >> (8 - PNG_QUANTIZE_RED_BITS)) &
+                ((1 << PNG_QUANTIZE_RED_BITS) - 1)) <<
+                (PNG_QUANTIZE_GREEN_BITS + PNG_QUANTIZE_BLUE_BITS)) |
+                (((g >> (8 - PNG_QUANTIZE_GREEN_BITS)) &
+                ((1 << PNG_QUANTIZE_GREEN_BITS) - 1)) <<
+                (PNG_QUANTIZE_BLUE_BITS)) |
+                ((b >> (8 - PNG_QUANTIZE_BLUE_BITS)) &
+                ((1 << PNG_QUANTIZE_BLUE_BITS) - 1));
 
             *dp++ = palette_lookup[p];
          }
+
          row_info->color_type = PNG_COLOR_TYPE_PALETTE;
          row_info->channels = 1;
          row_info->pixel_depth = row_info->bit_depth;
-         row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth,row_width);
+         row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width);
       }
+
       else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA &&
-         palette_lookup != NULL && row_info->bit_depth == 8)
+         palette_lookup != NULL)
       {
          int r, g, b, p;
          sp = row;
@@ -3962,270 +4882,52 @@ png_do_dither(png_row_infop row_info, png_bytep row,
             b = *sp++;
             sp++;
 
-            p = (((r >> (8 - PNG_DITHER_RED_BITS)) &
-               ((1 << PNG_DITHER_RED_BITS) - 1)) <<
-               (PNG_DITHER_GREEN_BITS + PNG_DITHER_BLUE_BITS)) |
-               (((g >> (8 - PNG_DITHER_GREEN_BITS)) &
-               ((1 << PNG_DITHER_GREEN_BITS) - 1)) <<
-               (PNG_DITHER_BLUE_BITS)) |
-               ((b >> (8 - PNG_DITHER_BLUE_BITS)) &
-               ((1 << PNG_DITHER_BLUE_BITS) - 1));
+            p = (((r >> (8 - PNG_QUANTIZE_RED_BITS)) &
+                ((1 << PNG_QUANTIZE_RED_BITS) - 1)) <<
+                (PNG_QUANTIZE_GREEN_BITS + PNG_QUANTIZE_BLUE_BITS)) |
+                (((g >> (8 - PNG_QUANTIZE_GREEN_BITS)) &
+                ((1 << PNG_QUANTIZE_GREEN_BITS) - 1)) <<
+                (PNG_QUANTIZE_BLUE_BITS)) |
+                ((b >> (8 - PNG_QUANTIZE_BLUE_BITS)) &
+                ((1 << PNG_QUANTIZE_BLUE_BITS) - 1));
 
             *dp++ = palette_lookup[p];
          }
+
          row_info->color_type = PNG_COLOR_TYPE_PALETTE;
          row_info->channels = 1;
          row_info->pixel_depth = row_info->bit_depth;
-         row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth,row_width);
+         row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width);
       }
+
       else if (row_info->color_type == PNG_COLOR_TYPE_PALETTE &&
-         dither_lookup && row_info->bit_depth == 8)
+         quantize_lookup)
       {
          sp = row;
+
          for (i = 0; i < row_width; i++, sp++)
          {
-            *sp = dither_lookup[*sp];
+            *sp = quantize_lookup[*sp];
          }
       }
    }
 }
-#endif
-
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-#if defined(PNG_READ_GAMMA_SUPPORTED)
-static PNG_CONST int png_gamma_shift[] =
-   {0x10, 0x21, 0x42, 0x84, 0x110, 0x248, 0x550, 0xff0, 0x00};
-
-/* We build the 8- or 16-bit gamma tables here.  Note that for 16-bit
- * tables, we don't make a full table if we are reducing to 8-bit in
- * the future.  Note also how the gamma_16 tables are segmented so that
- * we don't need to allocate > 64K chunks for a full 16-bit table.
- */
-void /* PRIVATE */
-png_build_gamma_table(png_structp png_ptr)
-{
-  png_debug(1, "in png_build_gamma_table\n");
-
-  if (png_ptr->bit_depth <= 8)
-  {
-     int i;
-     double g;
-
-     if (png_ptr->screen_gamma > .000001)
-        g = 1.0 / (png_ptr->gamma * png_ptr->screen_gamma);
-     else
-        g = 1.0;
-
-     png_ptr->gamma_table = (png_bytep)png_malloc(png_ptr,
-        (png_uint_32)256);
-
-     for (i = 0; i < 256; i++)
-     {
-        png_ptr->gamma_table[i] = (png_byte)(pow((double)i / 255.0,
-           g) * 255.0 + .5);
-     }
-
-#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \
-   defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
-     if (png_ptr->transformations & ((PNG_BACKGROUND) | PNG_RGB_TO_GRAY))
-     {
-
-        g = 1.0 / (png_ptr->gamma);
-
-        png_ptr->gamma_to_1 = (png_bytep)png_malloc(png_ptr,
-           (png_uint_32)256);
-
-        for (i = 0; i < 256; i++)
-        {
-           png_ptr->gamma_to_1[i] = (png_byte)(pow((double)i / 255.0,
-              g) * 255.0 + .5);
-        }
-
-
-        png_ptr->gamma_from_1 = (png_bytep)png_malloc(png_ptr,
-           (png_uint_32)256);
-
-        if(png_ptr->screen_gamma > 0.000001)
-           g = 1.0 / png_ptr->screen_gamma;
-        else
-           g = png_ptr->gamma;   /* probably doing rgb_to_gray */
-
-        for (i = 0; i < 256; i++)
-        {
-           png_ptr->gamma_from_1[i] = (png_byte)(pow((double)i / 255.0,
-              g) * 255.0 + .5);
-
-        }
-     }
-#endif /* PNG_READ_BACKGROUND_SUPPORTED || PNG_RGB_TO_GRAY_SUPPORTED */
-  }
-  else
-  {
-     double g;
-     int i, j, shift, num;
-     int sig_bit;
-     png_uint_32 ig;
-
-     if (png_ptr->color_type & PNG_COLOR_MASK_COLOR)
-     {
-        sig_bit = (int)png_ptr->sig_bit.red;
-        if ((int)png_ptr->sig_bit.green > sig_bit)
-           sig_bit = png_ptr->sig_bit.green;
-        if ((int)png_ptr->sig_bit.blue > sig_bit)
-           sig_bit = png_ptr->sig_bit.blue;
-     }
-     else
-     {
-        sig_bit = (int)png_ptr->sig_bit.gray;
-     }
-
-     if (sig_bit > 0)
-        shift = 16 - sig_bit;
-     else
-        shift = 0;
-
-     if (png_ptr->transformations & PNG_16_TO_8)
-     {
-        if (shift < (16 - PNG_MAX_GAMMA_8))
-           shift = (16 - PNG_MAX_GAMMA_8);
-     }
-
-     if (shift > 8)
-        shift = 8;
-     if (shift < 0)
-        shift = 0;
-
-     png_ptr->gamma_shift = (png_byte)shift;
-
-     num = (1 << (8 - shift));
-
-     if (png_ptr->screen_gamma > .000001)
-        g = 1.0 / (png_ptr->gamma * png_ptr->screen_gamma);
-     else
-        g = 1.0;
-
-     png_ptr->gamma_16_table = (png_uint_16pp)png_malloc(png_ptr,
-        (png_uint_32)(num * png_sizeof (png_uint_16p)));
-
-     if (png_ptr->transformations & (PNG_16_TO_8 | PNG_BACKGROUND))
-     {
-        double fin, fout;
-        png_uint_32 last, max;
-
-        for (i = 0; i < num; i++)
-        {
-           png_ptr->gamma_16_table[i] = (png_uint_16p)png_malloc(png_ptr,
-              (png_uint_32)(256 * png_sizeof (png_uint_16)));
-        }
-
-        g = 1.0 / g;
-        last = 0;
-        for (i = 0; i < 256; i++)
-        {
-           fout = ((double)i + 0.5) / 256.0;
-           fin = pow(fout, g);
-           max = (png_uint_32)(fin * (double)((png_uint_32)num << 8));
-           while (last <= max)
-           {
-              png_ptr->gamma_16_table[(int)(last & (0xff >> shift))]
-                 [(int)(last >> (8 - shift))] = (png_uint_16)(
-                 (png_uint_16)i | ((png_uint_16)i << 8));
-              last++;
-           }
-        }
-        while (last < ((png_uint_32)num << 8))
-        {
-           png_ptr->gamma_16_table[(int)(last & (0xff >> shift))]
-              [(int)(last >> (8 - shift))] = (png_uint_16)65535L;
-           last++;
-        }
-     }
-     else
-     {
-        for (i = 0; i < num; i++)
-        {
-           png_ptr->gamma_16_table[i] = (png_uint_16p)png_malloc(png_ptr,
-              (png_uint_32)(256 * png_sizeof (png_uint_16)));
-
-           ig = (((png_uint_32)i * (png_uint_32)png_gamma_shift[shift]) >> 4);
-           for (j = 0; j < 256; j++)
-           {
-              png_ptr->gamma_16_table[i][j] =
-                 (png_uint_16)(pow((double)(ig + ((png_uint_32)j << 8)) /
-                    65535.0, g) * 65535.0 + .5);
-           }
-        }
-     }
-
-#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \
-   defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
-     if (png_ptr->transformations & (PNG_BACKGROUND | PNG_RGB_TO_GRAY))
-     {
-
-        g = 1.0 / (png_ptr->gamma);
-
-        png_ptr->gamma_16_to_1 = (png_uint_16pp)png_malloc(png_ptr,
-           (png_uint_32)(num * png_sizeof (png_uint_16p )));
-
-        for (i = 0; i < num; i++)
-        {
-           png_ptr->gamma_16_to_1[i] = (png_uint_16p)png_malloc(png_ptr,
-              (png_uint_32)(256 * png_sizeof (png_uint_16)));
-
-           ig = (((png_uint_32)i *
-              (png_uint_32)png_gamma_shift[shift]) >> 4);
-           for (j = 0; j < 256; j++)
-           {
-              png_ptr->gamma_16_to_1[i][j] =
-                 (png_uint_16)(pow((double)(ig + ((png_uint_32)j << 8)) /
-                    65535.0, g) * 65535.0 + .5);
-           }
-        }
-
-        if(png_ptr->screen_gamma > 0.000001)
-           g = 1.0 / png_ptr->screen_gamma;
-        else
-           g = png_ptr->gamma;   /* probably doing rgb_to_gray */
-
-        png_ptr->gamma_16_from_1 = (png_uint_16pp)png_malloc(png_ptr,
-           (png_uint_32)(num * png_sizeof (png_uint_16p)));
+#endif /* PNG_READ_QUANTIZE_SUPPORTED */
+#endif /* PNG_READ_TRANSFORMS_SUPPORTED */
 
-        for (i = 0; i < num; i++)
-        {
-           png_ptr->gamma_16_from_1[i] = (png_uint_16p)png_malloc(png_ptr,
-              (png_uint_32)(256 * png_sizeof (png_uint_16)));
-
-           ig = (((png_uint_32)i *
-              (png_uint_32)png_gamma_shift[shift]) >> 4);
-           for (j = 0; j < 256; j++)
-           {
-              png_ptr->gamma_16_from_1[i][j] =
-                 (png_uint_16)(pow((double)(ig + ((png_uint_32)j << 8)) /
-                    65535.0, g) * 65535.0 + .5);
-           }
-        }
-     }
-#endif /* PNG_READ_BACKGROUND_SUPPORTED || PNG_RGB_TO_GRAY_SUPPORTED */
-  }
-}
-#endif
-/* To do: install integer version of png_build_gamma_table here */
-#endif
-
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
-/* undoes intrapixel differencing  */
+#ifdef PNG_MNG_FEATURES_SUPPORTED
+/* Undoes intrapixel differencing  */
 void /* PRIVATE */
 png_do_read_intrapixel(png_row_infop row_info, png_bytep row)
 {
-   png_debug(1, "in png_do_read_intrapixel\n");
+   png_debug(1, "in png_do_read_intrapixel");
+
    if (
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL && row_info != NULL &&
-#endif
        (row_info->color_type & PNG_COLOR_MASK_COLOR))
    {
       int bytes_per_pixel;
       png_uint_32 row_width = row_info->width;
+
       if (row_info->bit_depth == 8)
       {
          png_bytep rp;
@@ -4233,15 +4935,17 @@ png_do_read_intrapixel(png_row_infop row_info, png_bytep row)
 
          if (row_info->color_type == PNG_COLOR_TYPE_RGB)
             bytes_per_pixel = 3;
+
          else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
             bytes_per_pixel = 4;
+
          else
             return;
 
          for (i = 0, rp = row; i < row_width; i++, rp += bytes_per_pixel)
          {
-            *(rp) = (png_byte)((256 + *rp + *(rp+1))&0xff);
-            *(rp+2) = (png_byte)((256 + *(rp+2) + *(rp+1))&0xff);
+            *(rp) = (png_byte)((256 + *rp + *(rp + 1)) & 0xff);
+            *(rp+2) = (png_byte)((256 + *(rp + 2) + *(rp + 1)) & 0xff);
          }
       }
       else if (row_info->bit_depth == 16)
@@ -4251,22 +4955,24 @@ png_do_read_intrapixel(png_row_infop row_info, png_bytep row)
 
          if (row_info->color_type == PNG_COLOR_TYPE_RGB)
             bytes_per_pixel = 6;
+
          else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
             bytes_per_pixel = 8;
+
          else
             return;
 
          for (i = 0, rp = row; i < row_width; i++, rp += bytes_per_pixel)
          {
-            png_uint_32 s0   = (*(rp  ) << 8) | *(rp+1);
-            png_uint_32 s1   = (*(rp+2) << 8) | *(rp+3);
-            png_uint_32 s2   = (*(rp+4) << 8) | *(rp+5);
-            png_uint_32 red  = (png_uint_32)((s0+s1+65536L) & 0xffffL);
-            png_uint_32 blue = (png_uint_32)((s2+s1+65536L) & 0xffffL);
-            *(rp  ) = (png_byte)((red >> 8) & 0xff);
-            *(rp+1) = (png_byte)(red & 0xff);
-            *(rp+4) = (png_byte)((blue >> 8) & 0xff);
-            *(rp+5) = (png_byte)(blue & 0xff);
+            png_uint_32 s0   = (*(rp    ) << 8) | *(rp + 1);
+            png_uint_32 s1   = (*(rp + 2) << 8) | *(rp + 3);
+            png_uint_32 s2   = (*(rp + 4) << 8) | *(rp + 5);
+            png_uint_32 red  = (png_uint_32)((s0 + s1 + 65536L) & 0xffffL);
+            png_uint_32 blue = (png_uint_32)((s2 + s1 + 65536L) & 0xffffL);
+            *(rp    ) = (png_byte)((red >> 8) & 0xff);
+            *(rp + 1) = (png_byte)(red & 0xff);
+            *(rp + 4) = (png_byte)((blue >> 8) & 0xff);
+            *(rp + 5) = (png_byte)(blue & 0xff);
          }
       }
    }
diff --git a/jdk/src/share/native/sun/awt/libpng/pngrutil.c b/jdk/src/share/native/sun/awt/libpng/pngrutil.c
index 428f947..327bc88 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngrutil.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngrutil.c
@@ -29,106 +29,205 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.17 May 15, 2007
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ *
  * This file contains routines that are only called from within
  * libpng itself during the course of reading an image.
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
+
+#ifdef PNG_READ_SUPPORTED
 
-#if defined(PNG_READ_SUPPORTED)
+#define png_strtod(p,a,b) strtod(a,b)
 
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-#  if defined(_WIN32_WCE)
-/* strtod() function is not supported on WindowsCE */
-__inline double png_strtod(png_structp png_ptr, const char *nptr, char **endptr)
+png_uint_32 PNGAPI
+png_get_uint_31(png_structp png_ptr, png_const_bytep buf)
 {
-   double result = 0;
-   int len;
-   wchar_t *str, *end;
+   png_uint_32 uval = png_get_uint_32(buf);
 
-   len = MultiByteToWideChar(CP_ACP, 0, nptr, -1, NULL, 0);
-   str = (wchar_t *)png_malloc(png_ptr, len * sizeof(wchar_t));
-   if ( NULL != str )
-   {
-      MultiByteToWideChar(CP_ACP, 0, nptr, -1, str, len);
-      result = wcstod(str, &end);
-      len = WideCharToMultiByte(CP_ACP, 0, end, -1, NULL, 0, NULL, NULL);
-      *endptr = (char *)nptr + (png_strlen(nptr) - len + 1);
-      png_free(str);
-   }
-   return result;
+   if (uval > PNG_UINT_31_MAX)
+      png_error(png_ptr, "PNG unsigned integer out of range");
+
+   return (uval);
 }
-#  else
-#    define png_strtod(p,a,b) strtod(a,b)
-#  endif
-#endif
 
-png_uint_32 PNGAPI
-png_get_uint_31(png_structp png_ptr, png_bytep buf)
+#if defined(PNG_READ_gAMA_SUPPORTED) || defined(PNG_READ_cHRM_SUPPORTED)
+/* The following is a variation on the above for use with the fixed
+ * point values used for gAMA and cHRM.  Instead of png_error it
+ * issues a warning and returns (-1) - an invalid value because both
+ * gAMA and cHRM use *unsigned* integers for fixed point values.
+ */
+#define PNG_FIXED_ERROR (-1)
+
+static png_fixed_point /* PRIVATE */
+png_get_fixed_point(png_structp png_ptr, png_const_bytep buf)
 {
-   png_uint_32 i = png_get_uint_32(buf);
-   if (i > PNG_UINT_31_MAX)
-     png_error(png_ptr, "PNG unsigned integer out of range.");
-   return (i);
+   png_uint_32 uval = png_get_uint_32(buf);
+
+   if (uval <= PNG_UINT_31_MAX)
+      return (png_fixed_point)uval; /* known to be in range */
+
+   /* The caller can turn off the warning by passing NULL. */
+   if (png_ptr != NULL)
+      png_warning(png_ptr, "PNG fixed point integer out of range");
+
+   return PNG_FIXED_ERROR;
 }
-#ifndef PNG_READ_BIG_ENDIAN_SUPPORTED
+#endif
+
+#ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED
+/* NOTE: the read macros will obscure these definitions, so that if
+ * PNG_USE_READ_MACROS is set the library will not use them internally,
+ * but the APIs will still be available externally.
+ *
+ * The parentheses around "PNGAPI function_name" in the following three
+ * functions are necessary because they allow the macros to co-exist with
+ * these (unused but exported) functions.
+ */
+
 /* Grab an unsigned 32-bit integer from a buffer in big-endian format. */
-png_uint_32 PNGAPI
-png_get_uint_32(png_bytep buf)
+png_uint_32 (PNGAPI
+png_get_uint_32)(png_const_bytep buf)
 {
-   png_uint_32 i = ((png_uint_32)(*buf) << 24) +
-      ((png_uint_32)(*(buf + 1)) << 16) +
-      ((png_uint_32)(*(buf + 2)) << 8) +
-      (png_uint_32)(*(buf + 3));
+   png_uint_32 uval =
+       ((png_uint_32)(*(buf    )) << 24) +
+       ((png_uint_32)(*(buf + 1)) << 16) +
+       ((png_uint_32)(*(buf + 2)) <<  8) +
+       ((png_uint_32)(*(buf + 3))      ) ;
 
-   return (i);
+   return uval;
 }
 
 /* Grab a signed 32-bit integer from a buffer in big-endian format.  The
- * data is stored in the PNG file in two's complement format, and it is
- * assumed that the machine format for signed integers is the same. */
-png_int_32 PNGAPI
-png_get_int_32(png_bytep buf)
+ * data is stored in the PNG file in two's complement format and there
+ * is no guarantee that a 'png_int_32' is exactly 32 bits, therefore
+ * the following code does a two's complement to native conversion.
+ */
+png_int_32 (PNGAPI
+png_get_int_32)(png_const_bytep buf)
 {
-   png_int_32 i = ((png_int_32)(*buf) << 24) +
-      ((png_int_32)(*(buf + 1)) << 16) +
-      ((png_int_32)(*(buf + 2)) << 8) +
-      (png_int_32)(*(buf + 3));
+   png_uint_32 uval = png_get_uint_32(buf);
+   if ((uval & 0x80000000L) == 0) /* non-negative */
+      return uval;
 
-   return (i);
+   uval = (uval ^ 0xffffffffL) + 1;  /* 2's complement: -x = ~x+1 */
+   return -(png_int_32)uval;
 }
 
 /* Grab an unsigned 16-bit integer from a buffer in big-endian format. */
-png_uint_16 PNGAPI
-png_get_uint_16(png_bytep buf)
+png_uint_16 (PNGAPI
+png_get_uint_16)(png_const_bytep buf)
 {
-   png_uint_16 i = (png_uint_16)(((png_uint_16)(*buf) << 8) +
-      (png_uint_16)(*(buf + 1)));
+   /* ANSI-C requires an int value to accomodate at least 16 bits so this
+    * works and allows the compiler not to worry about possible narrowing
+    * on 32 bit systems.  (Pre-ANSI systems did not make integers smaller
+    * than 16 bits either.)
+    */
+   unsigned int val =
+       ((unsigned int)(*buf) << 8) +
+       ((unsigned int)(*(buf + 1)));
+
+   return (png_uint_16)val;
+}
+
+#endif /* PNG_READ_INT_FUNCTIONS_SUPPORTED */
+
+/* Read and check the PNG file signature */
+void /* PRIVATE */
+png_read_sig(png_structp png_ptr, png_infop info_ptr)
+{
+   png_size_t num_checked, num_to_check;
 
-   return (i);
+   /* Exit if the user application does not expect a signature. */
+   if (png_ptr->sig_bytes >= 8)
+      return;
+
+   num_checked = png_ptr->sig_bytes;
+   num_to_check = 8 - num_checked;
+
+#ifdef PNG_IO_STATE_SUPPORTED
+   png_ptr->io_state = PNG_IO_READING | PNG_IO_SIGNATURE;
+#endif
+
+   /* The signature must be serialized in a single I/O call. */
+   png_read_data(png_ptr, &(info_ptr->signature[num_checked]), num_to_check);
+   png_ptr->sig_bytes = 8;
+
+   if (png_sig_cmp(info_ptr->signature, num_checked, num_to_check))
+   {
+      if (num_checked < 4 &&
+          png_sig_cmp(info_ptr->signature, num_checked, num_to_check - 4))
+         png_error(png_ptr, "Not a PNG file");
+      else
+         png_error(png_ptr, "PNG file corrupted by ASCII conversion");
+   }
+   if (num_checked < 3)
+      png_ptr->mode |= PNG_HAVE_PNG_SIGNATURE;
+}
+
+/* Read the chunk header (length + type name).
+ * Put the type name into png_ptr->chunk_name, and return the length.
+ */
+png_uint_32 /* PRIVATE */
+png_read_chunk_header(png_structp png_ptr)
+{
+   png_byte buf[8];
+   png_uint_32 length;
+
+#ifdef PNG_IO_STATE_SUPPORTED
+   png_ptr->io_state = PNG_IO_READING | PNG_IO_CHUNK_HDR;
+#endif
+
+   /* Read the length and the chunk name.
+    * This must be performed in a single I/O call.
+    */
+   png_read_data(png_ptr, buf, 8);
+   length = png_get_uint_31(png_ptr, buf);
+
+   /* Put the chunk name into png_ptr->chunk_name. */
+   png_memcpy(png_ptr->chunk_name, buf + 4, 4);
+
+   png_debug2(0, "Reading %s chunk, length = %u",
+       png_ptr->chunk_name, length);
+
+   /* Reset the crc and run it over the chunk name. */
+   png_reset_crc(png_ptr);
+   png_calculate_crc(png_ptr, png_ptr->chunk_name, 4);
+
+   /* Check to see if chunk name is valid. */
+   png_check_chunk_name(png_ptr, png_ptr->chunk_name);
+
+#ifdef PNG_IO_STATE_SUPPORTED
+   png_ptr->io_state = PNG_IO_READING | PNG_IO_CHUNK_DATA;
+#endif
+
+   return length;
 }
-#endif /* PNG_READ_BIG_ENDIAN_SUPPORTED */
 
 /* Read data, and (optionally) run it through the CRC. */
 void /* PRIVATE */
 png_crc_read(png_structp png_ptr, png_bytep buf, png_size_t length)
 {
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL)
+      return;
+
    png_read_data(png_ptr, buf, length);
    png_calculate_crc(png_ptr, buf, length);
 }
 
 /* Optionally skip data and then check the CRC.  Depending on whether we
-   are reading a ancillary or critical chunk, and how the program has set
-   things up, we may calculate the CRC on the data and print a message.
-   Returns '1' if there was a CRC error, '0' otherwise. */
+ * are reading a ancillary or critical chunk, and how the program has set
+ * things up, we may calculate the CRC on the data and print a message.
+ * Returns '1' if there was a CRC error, '0' otherwise.
+ */
 int /* PRIVATE */
 png_crc_finish(png_structp png_ptr, png_uint_32 skip)
 {
@@ -139,6 +238,7 @@ png_crc_finish(png_structp png_ptr, png_uint_32 skip)
    {
       png_crc_read(png_ptr, png_ptr->zbuf, png_ptr->zbuf_size);
    }
+
    if (i)
    {
       png_crc_read(png_ptr, png_ptr->zbuf, i);
@@ -147,16 +247,19 @@ png_crc_finish(png_structp png_ptr, png_uint_32 skip)
    if (png_crc_error(png_ptr))
    {
       if (((png_ptr->chunk_name[0] & 0x20) &&                /* Ancillary */
-           !(png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_NOWARN)) ||
+          !(png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_NOWARN)) ||
           (!(png_ptr->chunk_name[0] & 0x20) &&             /* Critical  */
           (png_ptr->flags & PNG_FLAG_CRC_CRITICAL_USE)))
       {
          png_chunk_warning(png_ptr, "CRC error");
       }
+
       else
       {
-         png_chunk_error(png_ptr, "CRC error");
+         png_chunk_benign_error(png_ptr, "CRC error");
+         return (0);
       }
+
       return (1);
    }
 
@@ -164,7 +267,8 @@ png_crc_finish(png_structp png_ptr, png_uint_32 skip)
 }
 
 /* Compare the CRC stored in the PNG file with that calculated by libpng from
-   the data it has read thus far. */
+ * the data it has read thus far.
+ */
 int /* PRIVATE */
 png_crc_error(png_structp png_ptr)
 {
@@ -178,12 +282,18 @@ png_crc_error(png_structp png_ptr)
           (PNG_FLAG_CRC_ANCILLARY_USE | PNG_FLAG_CRC_ANCILLARY_NOWARN))
          need_crc = 0;
    }
+
    else                                                    /* critical */
    {
       if (png_ptr->flags & PNG_FLAG_CRC_CRITICAL_IGNORE)
          need_crc = 0;
    }
 
+#ifdef PNG_IO_STATE_SUPPORTED
+   png_ptr->io_state = PNG_IO_READING | PNG_IO_CHUNK_CRC;
+#endif
+
+   /* The chunk CRC must be serialized in a single I/O call. */
    png_read_data(png_ptr, crc_bytes, 4);
 
    if (need_crc)
@@ -191,12 +301,135 @@ png_crc_error(png_structp png_ptr)
       crc = png_get_uint_32(crc_bytes);
       return ((int)(crc != png_ptr->crc));
    }
+
    else
       return (0);
 }
 
-#if defined(PNG_READ_zTXt_SUPPORTED) || defined(PNG_READ_iTXt_SUPPORTED) || \
-    defined(PNG_READ_iCCP_SUPPORTED)
+#ifdef PNG_READ_COMPRESSED_TEXT_SUPPORTED
+static png_size_t
+png_inflate(png_structp png_ptr, png_bytep data, png_size_t size,
+    png_bytep output, png_size_t output_size)
+{
+   png_size_t count = 0;
+
+   /* zlib can't necessarily handle more than 65535 bytes at once (i.e. it can't
+    * even necessarily handle 65536 bytes) because the type uInt is "16 bits or
+    * more".  Consequently it is necessary to chunk the input to zlib.  This
+    * code uses ZLIB_IO_MAX, from pngpriv.h, as the maximum (the maximum value
+    * that can be stored in a uInt.)  It is possible to set ZLIB_IO_MAX to a
+    * lower value in pngpriv.h and this may sometimes have a performance
+    * advantage, because it forces access of the input data to be separated from
+    * at least some of the use by some period of time.
+    */
+   png_ptr->zstream.next_in = data;
+   /* avail_in is set below from 'size' */
+   png_ptr->zstream.avail_in = 0;
+
+   while (1)
+   {
+      int ret, avail;
+
+      /* The setting of 'avail_in' used to be outside the loop, by setting it
+       * inside it is possible to chunk the input to zlib and simply rely on
+       * zlib to advance the 'next_in' pointer.  This allows arbitrary amounts o
+       * data to be passed through zlib at the unavoidable cost of requiring a
+       * window save (memcpy of up to 32768 output bytes) every ZLIB_IO_MAX
+       * input bytes.
+       */
+      if (png_ptr->zstream.avail_in == 0 && size > 0)
+      {
+         if (size <= ZLIB_IO_MAX)
+         {
+            /* The value is less than ZLIB_IO_MAX so the cast is safe: */
+            png_ptr->zstream.avail_in = (uInt)size;
+            size = 0;
+         }
+
+         else
+         {
+            png_ptr->zstream.avail_in = ZLIB_IO_MAX;
+            size -= ZLIB_IO_MAX;
+         }
+      }
+
+      /* Reset the output buffer each time round - we empty it
+       * after every inflate call.
+       */
+      png_ptr->zstream.next_out = png_ptr->zbuf;
+      png_ptr->zstream.avail_out = png_ptr->zbuf_size;
+
+      ret = inflate(&png_ptr->zstream, Z_NO_FLUSH);
+      avail = png_ptr->zbuf_size - png_ptr->zstream.avail_out;
+
+      /* First copy/count any new output - but only if we didn't
+       * get an error code.
+       */
+      if ((ret == Z_OK || ret == Z_STREAM_END) && avail > 0)
+      {
+         png_size_t space = avail; /* > 0, see above */
+
+         if (output != 0 && output_size > count)
+         {
+            png_size_t copy = output_size - count;
+
+            if (space < copy)
+               copy = space;
+
+            png_memcpy(output + count, png_ptr->zbuf, copy);
+         }
+         count += space;
+      }
+
+      if (ret == Z_OK)
+         continue;
+
+      /* Termination conditions - always reset the zstream, it
+       * must be left in inflateInit state.
+       */
+      png_ptr->zstream.avail_in = 0;
+      inflateReset(&png_ptr->zstream);
+
+      if (ret == Z_STREAM_END)
+         return count; /* NOTE: may be zero. */
+
+      /* Now handle the error codes - the API always returns 0
+       * and the error message is dumped into the uncompressed
+       * buffer if available.
+       */
+#     ifdef PNG_WARNINGS_SUPPORTED
+      {
+         png_const_charp msg;
+
+         if (png_ptr->zstream.msg != 0)
+            msg = png_ptr->zstream.msg;
+
+         else switch (ret)
+         {
+            case Z_BUF_ERROR:
+               msg = "Buffer error in compressed datastream";
+               break;
+
+            case Z_DATA_ERROR:
+               msg = "Data error in compressed datastream";
+               break;
+
+            default:
+               msg = "Incomplete compressed datastream";
+               break;
+         }
+
+         png_chunk_warning(png_ptr, msg);
+      }
+#     endif
+
+      /* 0 means an error - notice that this code simply ignores
+       * zero length compressed chunks as a result.
+       */
+      return 0;
+   }
+}
+
 /*
  * Decompress trailing data in a chunk.  The assumption is that chunkdata
  * points at an allocated area holding the contents of a chunk with a
@@ -204,166 +437,119 @@ png_crc_error(png_structp png_ptr)
  * holding the original prefix part and an uncompressed version of the
  * trailing part (the malloc area passed in is freed).
  */
-png_charp /* PRIVATE */
+void /* PRIVATE */
 png_decompress_chunk(png_structp png_ptr, int comp_type,
-                              png_charp chunkdata, png_size_t chunklength,
-                              png_size_t prefix_size, png_size_t *newlength)
+    png_size_t chunklength,
+    png_size_t prefix_size, png_size_t *newlength)
 {
-   static PNG_CONST char msg[] = "Error decoding compressed text";
-   png_charp text;
-   png_size_t text_size;
+   /* The caller should guarantee this */
+   if (prefix_size > chunklength)
+   {
+      /* The recovery is to delete the chunk. */
+      png_warning(png_ptr, "invalid chunklength");
+      prefix_size = 0; /* To delete everything */
+   }
 
-   if (comp_type == PNG_COMPRESSION_TYPE_BASE)
+   else if (comp_type == PNG_COMPRESSION_TYPE_BASE)
    {
-      int ret = Z_OK;
-      png_ptr->zstream.next_in = (png_bytep)(chunkdata + prefix_size);
-      png_ptr->zstream.avail_in = (uInt)(chunklength - prefix_size);
-      png_ptr->zstream.next_out = png_ptr->zbuf;
-      png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
+      png_size_t expanded_size = png_inflate(png_ptr,
+          (png_bytep)(png_ptr->chunkdata + prefix_size),
+          chunklength - prefix_size,
+          0,            /* output */
+          0);           /* output size */
 
-      text_size = 0;
-      text = NULL;
+      /* Now check the limits on this chunk - if the limit fails the
+       * compressed data will be removed, the prefix will remain.
+       */
+#ifdef PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
+      if (png_ptr->user_chunk_malloc_max &&
+          (prefix_size + expanded_size >= png_ptr->user_chunk_malloc_max - 1))
+#else
+#  ifdef PNG_USER_CHUNK_MALLOC_MAX
+      if ((PNG_USER_CHUNK_MALLOC_MAX > 0) &&
+          prefix_size + expanded_size >= PNG_USER_CHUNK_MALLOC_MAX - 1)
+#  endif
+#endif
+         png_warning(png_ptr, "Exceeded size limit while expanding chunk");
 
-      while (png_ptr->zstream.avail_in)
+      /* If the size is zero either there was an error and a message
+       * has already been output (warning) or the size really is zero
+       * and we have nothing to do - the code will exit through the
+       * error case below.
+       */
+#if defined(PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED) || \
+    defined(PNG_USER_CHUNK_MALLOC_MAX)
+      else if (expanded_size > 0)
+#else
+      if (expanded_size > 0)
+#endif
       {
-         ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH);
-         if (ret != Z_OK && ret != Z_STREAM_END)
-         {
-            if (png_ptr->zstream.msg != NULL)
-               png_warning(png_ptr, png_ptr->zstream.msg);
-            else
-               png_warning(png_ptr, msg);
-            inflateReset(&png_ptr->zstream);
-            png_ptr->zstream.avail_in = 0;
-
-            if (text ==  NULL)
-            {
-               text_size = prefix_size + png_sizeof(msg) + 1;
-               text = (png_charp)png_malloc_warn(png_ptr, text_size);
-               if (text ==  NULL)
-                 {
-                    png_free(png_ptr,chunkdata);
-                    png_error(png_ptr,"Not enough memory to decompress chunk");
-                 }
-               png_memcpy(text, chunkdata, prefix_size);
-            }
+         /* Success (maybe) - really uncompress the chunk. */
+         png_size_t new_size = 0;
+         png_charp text = png_malloc_warn(png_ptr,
+             prefix_size + expanded_size + 1);
 
-            text[text_size - 1] = 0x00;
-
-            /* Copy what we can of the error message into the text chunk */
-            text_size = (png_size_t)(chunklength - (text - chunkdata) - 1);
-            text_size = png_sizeof(msg) > text_size ? text_size :
-               png_sizeof(msg);
-            png_memcpy(text + prefix_size, msg, text_size + 1);
-            break;
-         }
-         if (!png_ptr->zstream.avail_out || ret == Z_STREAM_END)
+         if (text != NULL)
          {
-            if (text == NULL)
+            png_memcpy(text, png_ptr->chunkdata, prefix_size);
+            new_size = png_inflate(png_ptr,
+                (png_bytep)(png_ptr->chunkdata + prefix_size),
+                chunklength - prefix_size,
+                (png_bytep)(text + prefix_size), expanded_size);
+            text[prefix_size + expanded_size] = 0; /* just in case */
+
+            if (new_size == expanded_size)
             {
-               text_size = prefix_size +
-                   png_ptr->zbuf_size - png_ptr->zstream.avail_out;
-               text = (png_charp)png_malloc_warn(png_ptr, text_size + 1);
-               if (text ==  NULL)
-                 {
-                    png_free(png_ptr,chunkdata);
-                    png_error(png_ptr,"Not enough memory to decompress chunk.");
-                 }
-               png_memcpy(text + prefix_size, png_ptr->zbuf,
-                    text_size - prefix_size);
-               png_memcpy(text, chunkdata, prefix_size);
-               *(text + text_size) = 0x00;
+               png_free(png_ptr, png_ptr->chunkdata);
+               png_ptr->chunkdata = text;
+               *newlength = prefix_size + expanded_size;
+               return; /* The success return! */
             }
-            else
-            {
-               png_charp tmp;
 
-               tmp = text;
-               text = (png_charp)png_malloc_warn(png_ptr,
-                  (png_uint_32)(text_size +
-                  png_ptr->zbuf_size - png_ptr->zstream.avail_out + 1));
-               if (text == NULL)
-               {
-                  png_free(png_ptr, tmp);
-                  png_free(png_ptr, chunkdata);
-                  png_error(png_ptr,"Not enough memory to decompress chunk..");
-               }
-               png_memcpy(text, tmp, text_size);
-               png_free(png_ptr, tmp);
-               png_memcpy(text + text_size, png_ptr->zbuf,
-                  (png_ptr->zbuf_size - png_ptr->zstream.avail_out));
-               text_size += png_ptr->zbuf_size - png_ptr->zstream.avail_out;
-               *(text + text_size) = 0x00;
-            }
-            if (ret == Z_STREAM_END)
-               break;
-            else
-            {
-               png_ptr->zstream.next_out = png_ptr->zbuf;
-               png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
-            }
+            png_warning(png_ptr, "png_inflate logic error");
+            png_free(png_ptr, text);
          }
-      }
-      if (ret != Z_STREAM_END)
-      {
-#if !defined(PNG_NO_STDIO) && !defined(_WIN32_WCE)
-         char umsg[52];
-
-         if (ret == Z_BUF_ERROR)
-            sprintf(umsg,"Buffer error in compressed datastream in %s chunk",
-                png_ptr->chunk_name);
-         else if (ret == Z_DATA_ERROR)
-            sprintf(umsg,"Data error in compressed datastream in %s chunk",
-                png_ptr->chunk_name);
+
          else
-            sprintf(umsg,"Incomplete compressed datastream in %s chunk",
-                png_ptr->chunk_name);
-         png_warning(png_ptr, umsg);
-#else
-         png_warning(png_ptr,
-            "Incomplete compressed datastream in chunk other than IDAT");
-#endif
-         text_size=prefix_size;
-         if (text ==  NULL)
-         {
-            text = (png_charp)png_malloc_warn(png_ptr, text_size+1);
-            if (text == NULL)
-              {
-                png_free(png_ptr, chunkdata);
-                png_error(png_ptr,"Not enough memory for text.");
-              }
-            png_memcpy(text, chunkdata, prefix_size);
-         }
-         *(text + text_size) = 0x00;
+            png_warning(png_ptr, "Not enough memory to decompress chunk");
       }
+   }
 
-      inflateReset(&png_ptr->zstream);
-      png_ptr->zstream.avail_in = 0;
+   else /* if (comp_type != PNG_COMPRESSION_TYPE_BASE) */
+   {
+      PNG_WARNING_PARAMETERS(p)
+      png_warning_parameter_signed(p, 1, PNG_NUMBER_FORMAT_d, comp_type);
+      png_formatted_warning(png_ptr, p, "Unknown zTXt compression type @1");
 
-      png_free(png_ptr, chunkdata);
-      chunkdata = text;
-      *newlength=text_size;
+      /* The recovery is to simply drop the data. */
    }
-   else /* if (comp_type != PNG_COMPRESSION_TYPE_BASE) */
+
+   /* Generic error return - leave the prefix, delete the compressed
+    * data, reallocate the chunkdata to remove the potentially large
+    * amount of compressed data.
+    */
    {
-#if !defined(PNG_NO_STDIO) && !defined(_WIN32_WCE)
-      char umsg[50];
+      png_charp text = png_malloc_warn(png_ptr, prefix_size + 1);
 
-      sprintf(umsg, "Unknown zTXt compression type %d", comp_type);
-      png_warning(png_ptr, umsg);
-#else
-      png_warning(png_ptr, "Unknown zTXt compression type");
-#endif
+      if (text != NULL)
+      {
+         if (prefix_size > 0)
+            png_memcpy(text, png_ptr->chunkdata, prefix_size);
+
+         png_free(png_ptr, png_ptr->chunkdata);
+         png_ptr->chunkdata = text;
 
-      *(chunkdata + prefix_size) = 0x00;
-      *newlength=prefix_size;
+         /* This is an extra zero in the 'uncompressed' part. */
+         *(png_ptr->chunkdata + prefix_size) = 0x00;
+      }
+      /* Ignore a malloc error here - it is safe. */
    }
 
-   return chunkdata;
+   *newlength = prefix_size;
 }
-#endif
+#endif /* PNG_READ_COMPRESSED_TEXT_SUPPORTED */
 
-/* read and check the IDHR chunk */
+/* Read and check the IDHR chunk */
 void /* PRIVATE */
 png_handle_IHDR(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
@@ -372,12 +558,12 @@ png_handle_IHDR(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    int bit_depth, color_type, compression_type, filter_type;
    int interlace_type;
 
-   png_debug(1, "in png_handle_IHDR\n");
+   png_debug(1, "in png_handle_IHDR");
 
    if (png_ptr->mode & PNG_HAVE_IHDR)
       png_error(png_ptr, "Out of place IHDR");
 
-   /* check the length */
+   /* Check the length */
    if (length != 13)
       png_error(png_ptr, "Invalid IHDR chunk");
 
@@ -394,66 +580,72 @@ png_handle_IHDR(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    filter_type = buf[11];
    interlace_type = buf[12];
 
-   /* set internal variables */
+   /* Set internal variables */
    png_ptr->width = width;
    png_ptr->height = height;
    png_ptr->bit_depth = (png_byte)bit_depth;
    png_ptr->interlaced = (png_byte)interlace_type;
    png_ptr->color_type = (png_byte)color_type;
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
+#ifdef PNG_MNG_FEATURES_SUPPORTED
    png_ptr->filter_type = (png_byte)filter_type;
 #endif
    png_ptr->compression_type = (png_byte)compression_type;
 
-   /* find number of channels */
+   /* Find number of channels */
    switch (png_ptr->color_type)
    {
+      default: /* invalid, png_set_IHDR calls png_error */
       case PNG_COLOR_TYPE_GRAY:
       case PNG_COLOR_TYPE_PALETTE:
          png_ptr->channels = 1;
          break;
+
       case PNG_COLOR_TYPE_RGB:
          png_ptr->channels = 3;
          break;
+
       case PNG_COLOR_TYPE_GRAY_ALPHA:
          png_ptr->channels = 2;
          break;
+
       case PNG_COLOR_TYPE_RGB_ALPHA:
          png_ptr->channels = 4;
          break;
    }
 
-   /* set up other useful info */
+   /* Set up other useful info */
    png_ptr->pixel_depth = (png_byte)(png_ptr->bit_depth *
    png_ptr->channels);
-   png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth,png_ptr->width);
-   png_debug1(3,"bit_depth = %d\n", png_ptr->bit_depth);
-   png_debug1(3,"channels = %d\n", png_ptr->channels);
-   png_debug1(3,"rowbytes = %lu\n", png_ptr->rowbytes);
+   png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth, png_ptr->width);
+   png_debug1(3, "bit_depth = %d", png_ptr->bit_depth);
+   png_debug1(3, "channels = %d", png_ptr->channels);
+   png_debug1(3, "rowbytes = %lu", (unsigned long)png_ptr->rowbytes);
    png_set_IHDR(png_ptr, info_ptr, width, height, bit_depth,
-      color_type, interlace_type, compression_type, filter_type);
+       color_type, interlace_type, compression_type, filter_type);
 }
 
-/* read and check the palette */
+/* Read and check the palette */
 void /* PRIVATE */
 png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
    png_color palette[PNG_MAX_PALETTE_LENGTH];
    int num, i;
-#ifndef PNG_NO_POINTER_INDEXING
+#ifdef PNG_POINTER_INDEXING_SUPPORTED
    png_colorp pal_ptr;
 #endif
 
-   png_debug(1, "in png_handle_PLTE\n");
+   png_debug(1, "in png_handle_PLTE");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before PLTE");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid PLTE after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (png_ptr->mode & PNG_HAVE_PLTE)
       png_error(png_ptr, "Duplicate PLTE chunk");
 
@@ -462,11 +654,12 @@ png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    if (!(png_ptr->color_type&PNG_COLOR_MASK_COLOR))
    {
       png_warning(png_ptr,
-        "Ignoring PLTE chunk in grayscale PNG");
+          "Ignoring PLTE chunk in grayscale PNG");
       png_crc_finish(png_ptr, length);
       return;
    }
-#if !defined(PNG_READ_OPT_PLTE_SUPPORTED)
+
+#ifndef PNG_READ_OPT_PLTE_SUPPORTED
    if (png_ptr->color_type != PNG_COLOR_TYPE_PALETTE)
    {
       png_crc_finish(png_ptr, length);
@@ -482,6 +675,7 @@ png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
          png_crc_finish(png_ptr, length);
          return;
       }
+
       else
       {
          png_error(png_ptr, "Invalid palette chunk");
@@ -490,7 +684,7 @@ png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 
    num = (int)length / 3;
 
-#ifndef PNG_NO_POINTER_INDEXING
+#ifdef PNG_POINTER_INDEXING_SUPPORTED
    for (i = 0, pal_ptr = palette; i < num; i++, pal_ptr++)
    {
       png_byte buf[3];
@@ -506,42 +700,47 @@ png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
       png_byte buf[3];
 
       png_crc_read(png_ptr, buf, 3);
-      /* don't depend upon png_color being any order */
+      /* Don't depend upon png_color being any order */
       palette[i].red = buf[0];
       palette[i].green = buf[1];
       palette[i].blue = buf[2];
    }
 #endif
 
-   /* If we actually NEED the PLTE chunk (ie for a paletted image), we do
-      whatever the normal CRC configuration tells us.  However, if we
-      have an RGB image, the PLTE can be considered ancillary, so
-      we will act as though it is. */
-#if !defined(PNG_READ_OPT_PLTE_SUPPORTED)
+   /* If we actually need the PLTE chunk (ie for a paletted image), we do
+    * whatever the normal CRC configuration tells us.  However, if we
+    * have an RGB image, the PLTE can be considered ancillary, so
+    * we will act as though it is.
+    */
+#ifndef PNG_READ_OPT_PLTE_SUPPORTED
    if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
 #endif
    {
       png_crc_finish(png_ptr, 0);
    }
-#if !defined(PNG_READ_OPT_PLTE_SUPPORTED)
+
+#ifndef PNG_READ_OPT_PLTE_SUPPORTED
    else if (png_crc_error(png_ptr))  /* Only if we have a CRC error */
    {
       /* If we don't want to use the data from an ancillary chunk,
-         we have two options: an error abort, or a warning and we
-         ignore the data in this chunk (which should be OK, since
-         it's considered ancillary for a RGB or RGBA image). */
+       * we have two options: an error abort, or a warning and we
+       * ignore the data in this chunk (which should be OK, since
+       * it's considered ancillary for a RGB or RGBA image).
+       */
       if (!(png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_USE))
       {
          if (png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_NOWARN)
          {
-            png_chunk_error(png_ptr, "CRC error");
+            png_chunk_benign_error(png_ptr, "CRC error");
          }
+
          else
          {
             png_chunk_warning(png_ptr, "CRC error");
             return;
          }
       }
+
       /* Otherwise, we (optionally) emit a warning and use the chunk. */
       else if (!(png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_NOWARN))
       {
@@ -552,7 +751,7 @@ png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 
    png_set_PLTE(png_ptr, info_ptr, palette, num);
 
-#if defined(PNG_READ_tRNS_SUPPORTED)
+#ifdef PNG_READ_tRNS_SUPPORTED
    if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
    {
       if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_tRNS))
@@ -562,6 +761,7 @@ png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
             png_warning(png_ptr, "Truncating incorrect tRNS chunk length");
             png_ptr->num_trans = (png_uint_16)num;
          }
+
          if (info_ptr->num_trans > (png_uint_16)num)
          {
             png_warning(png_ptr, "Truncating incorrect info tRNS chunk length");
@@ -576,7 +776,7 @@ png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 void /* PRIVATE */
 png_handle_IEND(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
-   png_debug(1, "in png_handle_IEND\n");
+   png_debug(1, "in png_handle_IEND");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR) || !(png_ptr->mode & PNG_HAVE_IDAT))
    {
@@ -589,41 +789,40 @@ png_handle_IEND(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    {
       png_warning(png_ptr, "Incorrect IEND chunk length");
    }
+
    png_crc_finish(png_ptr, length);
 
-   if (&info_ptr == NULL) /* quiet compiler warnings about unused info_ptr */
-      return;
+   PNG_UNUSED(info_ptr) /* Quiet compiler warnings about unused info_ptr */
 }
 
-#if defined(PNG_READ_gAMA_SUPPORTED)
+#ifdef PNG_READ_gAMA_SUPPORTED
 void /* PRIVATE */
 png_handle_gAMA(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
    png_fixed_point igamma;
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   float file_gamma;
-#endif
    png_byte buf[4];
 
-   png_debug(1, "in png_handle_gAMA\n");
+   png_debug(1, "in png_handle_gAMA");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before gAMA");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid gAMA after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (png_ptr->mode & PNG_HAVE_PLTE)
       /* Should be an error, but we can cope with it */
       png_warning(png_ptr, "Out of place gAMA chunk");
 
    if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_gAMA)
-#if defined(PNG_READ_sRGB_SUPPORTED)
-      && !(info_ptr->valid & PNG_INFO_sRGB)
+#ifdef PNG_READ_sRGB_SUPPORTED
+       && !(info_ptr->valid & PNG_INFO_sRGB)
 #endif
-      )
+       )
    {
       png_warning(png_ptr, "Duplicate gAMA chunk");
       png_crc_finish(png_ptr, length);
@@ -638,68 +837,71 @@ png_handle_gAMA(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    }
 
    png_crc_read(png_ptr, buf, 4);
+
    if (png_crc_finish(png_ptr, 0))
       return;
 
-   igamma = (png_fixed_point)png_get_uint_32(buf);
-   /* check for zero gamma */
-   if (igamma == 0)
-      {
-         png_warning(png_ptr,
-           "Ignoring gAMA chunk with gamma=0");
-         return;
-      }
+   igamma = png_get_fixed_point(NULL, buf);
+
+   /* Check for zero gamma or an error. */
+   if (igamma <= 0)
+   {
+      png_warning(png_ptr,
+          "Ignoring gAMA chunk with out of range gamma");
+
+      return;
+   }
 
-#if defined(PNG_READ_sRGB_SUPPORTED)
+#  ifdef PNG_READ_sRGB_SUPPORTED
    if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_sRGB))
+   {
       if (PNG_OUT_OF_RANGE(igamma, 45500L, 500))
       {
-         png_warning(png_ptr,
-           "Ignoring incorrect gAMA value when sRGB is also present");
-#ifndef PNG_NO_CONSOLE_IO
-         fprintf(stderr, "gamma = (%d/100000)\n", (int)igamma);
-#endif
+         PNG_WARNING_PARAMETERS(p)
+         png_warning_parameter_signed(p, 1, PNG_NUMBER_FORMAT_fixed, igamma);
+         png_formatted_warning(png_ptr, p,
+             "Ignoring incorrect gAMA value @1 when sRGB is also present");
          return;
       }
-#endif /* PNG_READ_sRGB_SUPPORTED */
+   }
+#  endif /* PNG_READ_sRGB_SUPPORTED */
 
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   file_gamma = (float)igamma / (float)100000.0;
 #  ifdef PNG_READ_GAMMA_SUPPORTED
-     png_ptr->gamma = file_gamma;
+   /* Gamma correction on read is supported. */
+   png_ptr->gamma = igamma;
 #  endif
-     png_set_gAMA(png_ptr, info_ptr, file_gamma);
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
+   /* And set the 'info' structure members. */
    png_set_gAMA_fixed(png_ptr, info_ptr, igamma);
-#endif
 }
 #endif
 
-#if defined(PNG_READ_sBIT_SUPPORTED)
+#ifdef PNG_READ_sBIT_SUPPORTED
 void /* PRIVATE */
 png_handle_sBIT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
    png_size_t truelen;
    png_byte buf[4];
 
-   png_debug(1, "in png_handle_sBIT\n");
+   png_debug(1, "in png_handle_sBIT");
 
    buf[0] = buf[1] = buf[2] = buf[3] = 0;
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before sBIT");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid sBIT after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (png_ptr->mode & PNG_HAVE_PLTE)
    {
       /* Should be an error, but we can cope with it */
       png_warning(png_ptr, "Out of place sBIT chunk");
    }
+
    if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_sBIT))
    {
       png_warning(png_ptr, "Duplicate sBIT chunk");
@@ -709,6 +911,7 @@ png_handle_sBIT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 
    if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
       truelen = 3;
+
    else
       truelen = (png_size_t)png_ptr->channels;
 
@@ -720,6 +923,7 @@ png_handle_sBIT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    }
 
    png_crc_read(png_ptr, buf, truelen);
+
    if (png_crc_finish(png_ptr, 0))
       return;
 
@@ -730,6 +934,7 @@ png_handle_sBIT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
       png_ptr->sig_bit.blue = buf[2];
       png_ptr->sig_bit.alpha = buf[3];
    }
+
    else
    {
       png_ptr->sig_bit.gray = buf[0];
@@ -738,41 +943,39 @@ png_handle_sBIT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
       png_ptr->sig_bit.blue = buf[0];
       png_ptr->sig_bit.alpha = buf[1];
    }
+
    png_set_sBIT(png_ptr, info_ptr, &(png_ptr->sig_bit));
 }
 #endif
 
-#if defined(PNG_READ_cHRM_SUPPORTED)
+#ifdef PNG_READ_cHRM_SUPPORTED
 void /* PRIVATE */
 png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
-   png_byte buf[4];
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   float white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y;
-#endif
-   png_fixed_point int_x_white, int_y_white, int_x_red, int_y_red, int_x_green,
-      int_y_green, int_x_blue, int_y_blue;
+   png_byte buf[32];
+   png_fixed_point x_white, y_white, x_red, y_red, x_green, y_green, x_blue,
+      y_blue;
 
-   png_uint_32 uint_x, uint_y;
-
-   png_debug(1, "in png_handle_cHRM\n");
+   png_debug(1, "in png_handle_cHRM");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before cHRM");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid cHRM after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (png_ptr->mode & PNG_HAVE_PLTE)
       /* Should be an error, but we can cope with it */
       png_warning(png_ptr, "Missing PLTE before cHRM");
 
    if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_cHRM)
-#if defined(PNG_READ_sRGB_SUPPORTED)
-      && !(info_ptr->valid & PNG_INFO_sRGB)
-#endif
+#  ifdef PNG_READ_sRGB_SUPPORTED
+       && !(info_ptr->valid & PNG_INFO_sRGB)
+#  endif
       )
    {
       png_warning(png_ptr, "Duplicate cHRM chunk");
@@ -787,142 +990,115 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
       return;
    }
 
-   png_crc_read(png_ptr, buf, 4);
-   uint_x = png_get_uint_32(buf);
-
-   png_crc_read(png_ptr, buf, 4);
-   uint_y = png_get_uint_32(buf);
+   png_crc_read(png_ptr, buf, 32);
 
-   if (uint_x > 80000L || uint_y > 80000L ||
-      uint_x + uint_y > 100000L)
-   {
-      png_warning(png_ptr, "Invalid cHRM white point");
-      png_crc_finish(png_ptr, 24);
+   if (png_crc_finish(png_ptr, 0))
       return;
-   }
-   int_x_white = (png_fixed_point)uint_x;
-   int_y_white = (png_fixed_point)uint_y;
 
-   png_crc_read(png_ptr, buf, 4);
-   uint_x = png_get_uint_32(buf);
+   x_white = png_get_fixed_point(NULL, buf);
+   y_white = png_get_fixed_point(NULL, buf + 4);
+   x_red   = png_get_fixed_point(NULL, buf + 8);
+   y_red   = png_get_fixed_point(NULL, buf + 12);
+   x_green = png_get_fixed_point(NULL, buf + 16);
+   y_green = png_get_fixed_point(NULL, buf + 20);
+   x_blue  = png_get_fixed_point(NULL, buf + 24);
+   y_blue  = png_get_fixed_point(NULL, buf + 28);
 
-   png_crc_read(png_ptr, buf, 4);
-   uint_y = png_get_uint_32(buf);
-
-   if (uint_x + uint_y > 100000L)
+   if (x_white == PNG_FIXED_ERROR ||
+       y_white == PNG_FIXED_ERROR ||
+       x_red   == PNG_FIXED_ERROR ||
+       y_red   == PNG_FIXED_ERROR ||
+       x_green == PNG_FIXED_ERROR ||
+       y_green == PNG_FIXED_ERROR ||
+       x_blue  == PNG_FIXED_ERROR ||
+       y_blue  == PNG_FIXED_ERROR)
    {
-      png_warning(png_ptr, "Invalid cHRM red point");
-      png_crc_finish(png_ptr, 16);
+      png_warning(png_ptr, "Ignoring cHRM chunk with negative chromaticities");
       return;
    }
-   int_x_red = (png_fixed_point)uint_x;
-   int_y_red = (png_fixed_point)uint_y;
-
-   png_crc_read(png_ptr, buf, 4);
-   uint_x = png_get_uint_32(buf);
 
-   png_crc_read(png_ptr, buf, 4);
-   uint_y = png_get_uint_32(buf);
-
-   if (uint_x + uint_y > 100000L)
+#ifdef PNG_READ_sRGB_SUPPORTED
+   if ((info_ptr != NULL) && (info_ptr->valid & PNG_INFO_sRGB))
    {
-      png_warning(png_ptr, "Invalid cHRM green point");
-      png_crc_finish(png_ptr, 8);
+      if (PNG_OUT_OF_RANGE(x_white, 31270,  1000) ||
+          PNG_OUT_OF_RANGE(y_white, 32900,  1000) ||
+          PNG_OUT_OF_RANGE(x_red,   64000L, 1000) ||
+          PNG_OUT_OF_RANGE(y_red,   33000,  1000) ||
+          PNG_OUT_OF_RANGE(x_green, 30000,  1000) ||
+          PNG_OUT_OF_RANGE(y_green, 60000L, 1000) ||
+          PNG_OUT_OF_RANGE(x_blue,  15000,  1000) ||
+          PNG_OUT_OF_RANGE(y_blue,   6000,  1000))
+      {
+         PNG_WARNING_PARAMETERS(p)
+
+         png_warning_parameter_signed(p, 1, PNG_NUMBER_FORMAT_fixed, x_white);
+         png_warning_parameter_signed(p, 2, PNG_NUMBER_FORMAT_fixed, y_white);
+         png_warning_parameter_signed(p, 3, PNG_NUMBER_FORMAT_fixed, x_red);
+         png_warning_parameter_signed(p, 4, PNG_NUMBER_FORMAT_fixed, y_red);
+         png_warning_parameter_signed(p, 5, PNG_NUMBER_FORMAT_fixed, x_green);
+         png_warning_parameter_signed(p, 6, PNG_NUMBER_FORMAT_fixed, y_green);
+         png_warning_parameter_signed(p, 7, PNG_NUMBER_FORMAT_fixed, x_blue);
+         png_warning_parameter_signed(p, 8, PNG_NUMBER_FORMAT_fixed, y_blue);
+
+         png_formatted_warning(png_ptr, p,
+             "Ignoring incorrect cHRM white(@1, at 2) r(@3, at 4)g(@5, at 6)b(@7, at 8) "
+             "when sRGB is also present");
+      }
       return;
    }
-   int_x_green = (png_fixed_point)uint_x;
-   int_y_green = (png_fixed_point)uint_y;
-
-   png_crc_read(png_ptr, buf, 4);
-   uint_x = png_get_uint_32(buf);
-
-   png_crc_read(png_ptr, buf, 4);
-   uint_y = png_get_uint_32(buf);
+#endif /* PNG_READ_sRGB_SUPPORTED */
 
-   if (uint_x + uint_y > 100000L)
+#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
+   /* Store the _white values as default coefficients for the rgb to gray
+    * operation if it is supported.
+    */
+   if ((png_ptr->transformations & PNG_RGB_TO_GRAY) == 0)
    {
-      png_warning(png_ptr, "Invalid cHRM blue point");
-      png_crc_finish(png_ptr, 0);
-      return;
-   }
-   int_x_blue = (png_fixed_point)uint_x;
-   int_y_blue = (png_fixed_point)uint_y;
-
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   white_x = (float)int_x_white / (float)100000.0;
-   white_y = (float)int_y_white / (float)100000.0;
-   red_x   = (float)int_x_red   / (float)100000.0;
-   red_y   = (float)int_y_red   / (float)100000.0;
-   green_x = (float)int_x_green / (float)100000.0;
-   green_y = (float)int_y_green / (float)100000.0;
-   blue_x  = (float)int_x_blue  / (float)100000.0;
-   blue_y  = (float)int_y_blue  / (float)100000.0;
-#endif
-
-#if defined(PNG_READ_sRGB_SUPPORTED)
-   if ((info_ptr != NULL) && (info_ptr->valid & PNG_INFO_sRGB))
+      /* png_set_background has not been called, the coefficients must be in
+       * range for the following to work without overflow.
+       */
+      if (y_red <= (1<<17) && y_green <= (1<<17) && y_blue <= (1<<17))
       {
-      if (PNG_OUT_OF_RANGE(int_x_white, 31270,  1000) ||
-          PNG_OUT_OF_RANGE(int_y_white, 32900,  1000) ||
-          PNG_OUT_OF_RANGE(int_x_red,   64000L, 1000) ||
-          PNG_OUT_OF_RANGE(int_y_red,   33000,  1000) ||
-          PNG_OUT_OF_RANGE(int_x_green, 30000,  1000) ||
-          PNG_OUT_OF_RANGE(int_y_green, 60000L, 1000) ||
-          PNG_OUT_OF_RANGE(int_x_blue,  15000,  1000) ||
-          PNG_OUT_OF_RANGE(int_y_blue,   6000,  1000))
-         {
-            png_warning(png_ptr,
-              "Ignoring incorrect cHRM value when sRGB is also present");
-#ifndef PNG_NO_CONSOLE_IO
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-            fprintf(stderr,"wx=%f, wy=%f, rx=%f, ry=%f\n",
-               white_x, white_y, red_x, red_y);
-            fprintf(stderr,"gx=%f, gy=%f, bx=%f, by=%f\n",
-               green_x, green_y, blue_x, blue_y);
-#else
-            fprintf(stderr,"wx=%ld, wy=%ld, rx=%ld, ry=%ld\n",
-               int_x_white, int_y_white, int_x_red, int_y_red);
-            fprintf(stderr,"gx=%ld, gy=%ld, bx=%ld, by=%ld\n",
-               int_x_green, int_y_green, int_x_blue, int_y_blue);
-#endif
-#endif /* PNG_NO_CONSOLE_IO */
-         }
-         png_crc_finish(png_ptr, 0);
-         return;
+         /* The y values are chromaticities: Y/X+Y+Z, the weights for the gray
+          * transformation are simply the normalized Y values for red, green and
+          * blue scaled by 32768.
+          */
+         png_uint_32 w = y_red + y_green + y_blue;
+
+         png_ptr->rgb_to_gray_red_coeff   = (png_uint_16)(((png_uint_32)y_red *
+            32768)/w);
+         png_ptr->rgb_to_gray_green_coeff = (png_uint_16)(((png_uint_32)y_green
+            * 32768)/w);
+         png_ptr->rgb_to_gray_blue_coeff  = (png_uint_16)(((png_uint_32)y_blue *
+            32768)/w);
       }
-#endif /* PNG_READ_sRGB_SUPPORTED */
-
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   png_set_cHRM(png_ptr, info_ptr,
-      white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y);
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   png_set_cHRM_fixed(png_ptr, info_ptr,
-      int_x_white, int_y_white, int_x_red, int_y_red, int_x_green,
-      int_y_green, int_x_blue, int_y_blue);
+   }
 #endif
-   if (png_crc_finish(png_ptr, 0))
-      return;
+
+   png_set_cHRM_fixed(png_ptr, info_ptr, x_white, y_white, x_red, y_red,
+      x_green, y_green, x_blue, y_blue);
 }
 #endif
 
-#if defined(PNG_READ_sRGB_SUPPORTED)
+#ifdef PNG_READ_sRGB_SUPPORTED
 void /* PRIVATE */
 png_handle_sRGB(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
    int intent;
    png_byte buf[1];
 
-   png_debug(1, "in png_handle_sRGB\n");
+   png_debug(1, "in png_handle_sRGB");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before sRGB");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid sRGB after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (png_ptr->mode & PNG_HAVE_PLTE)
       /* Should be an error, but we can cope with it */
       png_warning(png_ptr, "Out of place sRGB chunk");
@@ -942,11 +1118,13 @@ png_handle_sRGB(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    }
 
    png_crc_read(png_ptr, buf, 1);
+
    if (png_crc_finish(png_ptr, 0))
       return;
 
    intent = buf[0];
-   /* check for bad intent */
+
+   /* Check for bad intent */
    if (intent >= PNG_sRGB_INTENT_LAST)
    {
       png_warning(png_ptr, "Unknown sRGB intent");
@@ -956,76 +1134,64 @@ png_handle_sRGB(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 #if defined(PNG_READ_gAMA_SUPPORTED) && defined(PNG_READ_GAMMA_SUPPORTED)
    if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_gAMA))
    {
-   png_fixed_point igamma;
-#ifdef PNG_FIXED_POINT_SUPPORTED
-      igamma=info_ptr->int_gamma;
-#else
-#  ifdef PNG_FLOATING_POINT_SUPPORTED
-      igamma=(png_fixed_point)(info_ptr->gamma * 100000.);
-#  endif
-#endif
-      if (PNG_OUT_OF_RANGE(igamma, 45500L, 500))
+      if (PNG_OUT_OF_RANGE(info_ptr->gamma, 45500L, 500))
       {
-         png_warning(png_ptr,
-           "Ignoring incorrect gAMA value when sRGB is also present");
-#ifndef PNG_NO_CONSOLE_IO
-#  ifdef PNG_FIXED_POINT_SUPPORTED
-         fprintf(stderr,"incorrect gamma=(%d/100000)\n",(int)png_ptr->int_gamma);
-#  else
-#    ifdef PNG_FLOATING_POINT_SUPPORTED
-         fprintf(stderr,"incorrect gamma=%f\n",png_ptr->gamma);
-#    endif
-#  endif
-#endif
+         PNG_WARNING_PARAMETERS(p)
+
+         png_warning_parameter_signed(p, 1, PNG_NUMBER_FORMAT_fixed,
+            info_ptr->gamma);
+
+         png_formatted_warning(png_ptr, p,
+             "Ignoring incorrect gAMA value @1 when sRGB is also present");
       }
    }
 #endif /* PNG_READ_gAMA_SUPPORTED */
 
 #ifdef PNG_READ_cHRM_SUPPORTED
-#ifdef PNG_FIXED_POINT_SUPPORTED
    if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_cHRM))
-      if (PNG_OUT_OF_RANGE(info_ptr->int_x_white, 31270,  1000) ||
-          PNG_OUT_OF_RANGE(info_ptr->int_y_white, 32900,  1000) ||
-          PNG_OUT_OF_RANGE(info_ptr->int_x_red,   64000L, 1000) ||
-          PNG_OUT_OF_RANGE(info_ptr->int_y_red,   33000,  1000) ||
-          PNG_OUT_OF_RANGE(info_ptr->int_x_green, 30000,  1000) ||
-          PNG_OUT_OF_RANGE(info_ptr->int_y_green, 60000L, 1000) ||
-          PNG_OUT_OF_RANGE(info_ptr->int_x_blue,  15000,  1000) ||
-          PNG_OUT_OF_RANGE(info_ptr->int_y_blue,   6000,  1000))
-         {
-            png_warning(png_ptr,
-              "Ignoring incorrect cHRM value when sRGB is also present");
-         }
-#endif /* PNG_FIXED_POINT_SUPPORTED */
+      if (PNG_OUT_OF_RANGE(info_ptr->x_white, 31270,  1000) ||
+          PNG_OUT_OF_RANGE(info_ptr->y_white, 32900,  1000) ||
+          PNG_OUT_OF_RANGE(info_ptr->x_red,   64000L, 1000) ||
+          PNG_OUT_OF_RANGE(info_ptr->y_red,   33000,  1000) ||
+          PNG_OUT_OF_RANGE(info_ptr->x_green, 30000,  1000) ||
+          PNG_OUT_OF_RANGE(info_ptr->y_green, 60000L, 1000) ||
+          PNG_OUT_OF_RANGE(info_ptr->x_blue,  15000,  1000) ||
+          PNG_OUT_OF_RANGE(info_ptr->y_blue,   6000,  1000))
+      {
+         png_warning(png_ptr,
+             "Ignoring incorrect cHRM value when sRGB is also present");
+      }
 #endif /* PNG_READ_cHRM_SUPPORTED */
 
    png_set_sRGB_gAMA_and_cHRM(png_ptr, info_ptr, intent);
 }
 #endif /* PNG_READ_sRGB_SUPPORTED */
 
-#if defined(PNG_READ_iCCP_SUPPORTED)
+#ifdef PNG_READ_iCCP_SUPPORTED
 void /* PRIVATE */
 png_handle_iCCP(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 /* Note: this does not properly handle chunks that are > 64K under DOS */
 {
-   png_charp chunkdata;
    png_byte compression_type;
    png_bytep pC;
    png_charp profile;
    png_uint_32 skip = 0;
-   png_uint_32 profile_size, profile_length;
+   png_uint_32 profile_size;
+   png_alloc_size_t profile_length;
    png_size_t slength, prefix_length, data_length;
 
-   png_debug(1, "in png_handle_iCCP\n");
+   png_debug(1, "in png_handle_iCCP");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before iCCP");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid iCCP after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (png_ptr->mode & PNG_HAVE_PLTE)
       /* Should be an error, but we can cope with it */
       png_warning(png_ptr, "Out of place iCCP chunk");
@@ -1046,96 +1212,135 @@ png_handle_iCCP(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    }
 #endif
 
-   chunkdata = (png_charp)png_malloc(png_ptr, length + 1);
+   png_free(png_ptr, png_ptr->chunkdata);
+   png_ptr->chunkdata = (png_charp)png_malloc(png_ptr, length + 1);
    slength = (png_size_t)length;
-   png_crc_read(png_ptr, (png_bytep)chunkdata, slength);
+   png_crc_read(png_ptr, (png_bytep)png_ptr->chunkdata, slength);
 
    if (png_crc_finish(png_ptr, skip))
    {
-      png_free(png_ptr, chunkdata);
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       return;
    }
 
-   chunkdata[slength] = 0x00;
+   png_ptr->chunkdata[slength] = 0x00;
 
-   for (profile = chunkdata; *profile; profile++)
-      /* empty loop to find end of name */ ;
+   for (profile = png_ptr->chunkdata; *profile; profile++)
+      /* Empty loop to find end of name */ ;
 
    ++profile;
 
-   /* there should be at least one zero (the compression type byte)
-      following the separator, and we should be on it  */
-   if ( profile >= chunkdata + slength)
+   /* There should be at least one zero (the compression type byte)
+    * following the separator, and we should be on it
+    */
+   if (profile >= png_ptr->chunkdata + slength - 1)
    {
-      png_free(png_ptr, chunkdata);
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       png_warning(png_ptr, "Malformed iCCP chunk");
       return;
    }
 
-   /* compression_type should always be zero */
+   /* Compression_type should always be zero */
    compression_type = *profile++;
+
    if (compression_type)
    {
       png_warning(png_ptr, "Ignoring nonzero compression type in iCCP chunk");
-      compression_type=0x00;  /* Reset it to zero (libpng-1.0.6 through 1.0.8
+      compression_type = 0x00;  /* Reset it to zero (libpng-1.0.6 through 1.0.8
                                  wrote nonzero) */
    }
 
-   prefix_length = profile - chunkdata;
-   chunkdata = png_decompress_chunk(png_ptr, compression_type, chunkdata,
-                                    slength, prefix_length, &data_length);
+   prefix_length = profile - png_ptr->chunkdata;
+   png_decompress_chunk(png_ptr, compression_type,
+       slength, prefix_length, &data_length);
 
    profile_length = data_length - prefix_length;
 
-   if ( prefix_length > data_length || profile_length < 4)
+   if (prefix_length > data_length || profile_length < 4)
    {
-      png_free(png_ptr, chunkdata);
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       png_warning(png_ptr, "Profile size field missing from iCCP chunk");
       return;
    }
 
    /* Check the profile_size recorded in the first 32 bits of the ICC profile */
-   pC = (png_bytep)(chunkdata+prefix_length);
-   profile_size = ((*(pC  ))<<24) |
-                  ((*(pC+1))<<16) |
-                  ((*(pC+2))<< 8) |
-                  ((*(pC+3))    );
-
-   if(profile_size < profile_length)
+   pC = (png_bytep)(png_ptr->chunkdata + prefix_length);
+   profile_size = ((*(pC    )) << 24) |
+                  ((*(pC + 1)) << 16) |
+                  ((*(pC + 2)) <<  8) |
+                  ((*(pC + 3))      );
+
+   /* NOTE: the following guarantees that 'profile_length' fits into 32 bits,
+    * because profile_size is a 32 bit value.
+    */
+   if (profile_size < profile_length)
       profile_length = profile_size;
 
-   if(profile_size > profile_length)
+   /* And the following guarantees that profile_size == profile_length. */
+   if (profile_size > profile_length)
    {
-      png_free(png_ptr, chunkdata);
-      png_warning(png_ptr, "Ignoring truncated iCCP profile.");
+      PNG_WARNING_PARAMETERS(p)
+
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
+
+      png_warning_parameter_unsigned(p, 1, PNG_NUMBER_FORMAT_u, profile_size);
+      png_warning_parameter_unsigned(p, 2, PNG_NUMBER_FORMAT_u, profile_length);
+      png_formatted_warning(png_ptr, p,
+         "Ignoring iCCP chunk with declared size = @1 and actual length = @2");
       return;
    }
 
-   png_set_iCCP(png_ptr, info_ptr, chunkdata, compression_type,
-                chunkdata + prefix_length, profile_length);
-   png_free(png_ptr, chunkdata);
+   png_set_iCCP(png_ptr, info_ptr, png_ptr->chunkdata,
+       compression_type, (png_bytep)png_ptr->chunkdata + prefix_length,
+       profile_size);
+   png_free(png_ptr, png_ptr->chunkdata);
+   png_ptr->chunkdata = NULL;
 }
 #endif /* PNG_READ_iCCP_SUPPORTED */
 
-#if defined(PNG_READ_sPLT_SUPPORTED)
+#ifdef PNG_READ_sPLT_SUPPORTED
 void /* PRIVATE */
 png_handle_sPLT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 /* Note: this does not properly handle chunks that are > 64K under DOS */
 {
-   png_bytep chunkdata;
    png_bytep entry_start;
    png_sPLT_t new_palette;
-#ifdef PNG_NO_POINTER_INDEXING
    png_sPLT_entryp pp;
-#endif
-   int data_length, entry_size, i;
+   png_uint_32 data_length;
+   int entry_size, i;
    png_uint_32 skip = 0;
    png_size_t slength;
+   png_uint_32 dl;
+   png_size_t max_dl;
+
+   png_debug(1, "in png_handle_sPLT");
+
+#ifdef PNG_USER_LIMITS_SUPPORTED
+
+   if (png_ptr->user_chunk_cache_max != 0)
+   {
+      if (png_ptr->user_chunk_cache_max == 1)
+      {
+         png_crc_finish(png_ptr, length);
+         return;
+      }
 
-   png_debug(1, "in png_handle_sPLT\n");
+      if (--png_ptr->user_chunk_cache_max == 1)
+      {
+         png_warning(png_ptr, "No space in chunk cache for sPLT");
+         png_crc_finish(png_ptr, length);
+         return;
+      }
+   }
+#endif
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before sPLT");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid sPLT after IDAT");
@@ -1152,127 +1357,156 @@ png_handle_sPLT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    }
 #endif
 
-   chunkdata = (png_bytep)png_malloc(png_ptr, length + 1);
+   png_free(png_ptr, png_ptr->chunkdata);
+   png_ptr->chunkdata = (png_charp)png_malloc(png_ptr, length + 1);
+
+   /* WARNING: this may break if size_t is less than 32 bits; it is assumed
+    * that the PNG_MAX_MALLOC_64K test is enabled in this case, but this is a
+    * potential breakage point if the types in pngconf.h aren't exactly right.
+    */
    slength = (png_size_t)length;
-   png_crc_read(png_ptr, (png_bytep)chunkdata, slength);
+   png_crc_read(png_ptr, (png_bytep)png_ptr->chunkdata, slength);
 
    if (png_crc_finish(png_ptr, skip))
    {
-      png_free(png_ptr, chunkdata);
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       return;
    }
 
-   chunkdata[slength] = 0x00;
+   png_ptr->chunkdata[slength] = 0x00;
+
+   for (entry_start = (png_bytep)png_ptr->chunkdata; *entry_start;
+       entry_start++)
+      /* Empty loop to find end of name */ ;
 
-   for (entry_start = chunkdata; *entry_start; entry_start++)
-      /* empty loop to find end of name */ ;
    ++entry_start;
 
-   /* a sample depth should follow the separator, and we should be on it  */
-   if (entry_start > chunkdata + slength)
+   /* A sample depth should follow the separator, and we should be on it  */
+   if (entry_start > (png_bytep)png_ptr->chunkdata + slength - 2)
    {
-      png_free(png_ptr, chunkdata);
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       png_warning(png_ptr, "malformed sPLT chunk");
       return;
    }
 
    new_palette.depth = *entry_start++;
    entry_size = (new_palette.depth == 8 ? 6 : 10);
-   data_length = (slength - (entry_start - chunkdata));
-
-   /* integrity-check the data length */
+   /* This must fit in a png_uint_32 because it is derived from the original
+    * chunk data length (and use 'length', not 'slength' here for clarity -
+    * they are guaranteed to be the same, see the tests above.)
+    */
+   data_length = length - (png_uint_32)(entry_start -
+      (png_bytep)png_ptr->chunkdata);
+
+   /* Integrity-check the data length */
    if (data_length % entry_size)
    {
-      png_free(png_ptr, chunkdata);
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       png_warning(png_ptr, "sPLT chunk has bad length");
       return;
    }
 
-   new_palette.nentries = (png_int_32) ( data_length / entry_size);
-   if ((png_uint_32) new_palette.nentries > (png_uint_32) (PNG_SIZE_MAX /
-       png_sizeof(png_sPLT_entry)))
+   dl = (png_int_32)(data_length / entry_size);
+   max_dl = PNG_SIZE_MAX / png_sizeof(png_sPLT_entry);
+
+   if (dl > max_dl)
    {
        png_warning(png_ptr, "sPLT chunk too long");
        return;
    }
+
+   new_palette.nentries = (png_int_32)(data_length / entry_size);
+
    new_palette.entries = (png_sPLT_entryp)png_malloc_warn(
        png_ptr, new_palette.nentries * png_sizeof(png_sPLT_entry));
+
    if (new_palette.entries == NULL)
    {
        png_warning(png_ptr, "sPLT chunk requires too much memory");
        return;
    }
 
-#ifndef PNG_NO_POINTER_INDEXING
+#ifdef PNG_POINTER_INDEXING_SUPPORTED
    for (i = 0; i < new_palette.nentries; i++)
    {
-      png_sPLT_entryp pp = new_palette.entries + i;
+      pp = new_palette.entries + i;
 
       if (new_palette.depth == 8)
       {
-          pp->red = *entry_start++;
-          pp->green = *entry_start++;
-          pp->blue = *entry_start++;
-          pp->alpha = *entry_start++;
+         pp->red = *entry_start++;
+         pp->green = *entry_start++;
+         pp->blue = *entry_start++;
+         pp->alpha = *entry_start++;
       }
+
       else
       {
-          pp->red   = png_get_uint_16(entry_start); entry_start += 2;
-          pp->green = png_get_uint_16(entry_start); entry_start += 2;
-          pp->blue  = png_get_uint_16(entry_start); entry_start += 2;
-          pp->alpha = png_get_uint_16(entry_start); entry_start += 2;
+         pp->red   = png_get_uint_16(entry_start); entry_start += 2;
+         pp->green = png_get_uint_16(entry_start); entry_start += 2;
+         pp->blue  = png_get_uint_16(entry_start); entry_start += 2;
+         pp->alpha = png_get_uint_16(entry_start); entry_start += 2;
       }
+
       pp->frequency = png_get_uint_16(entry_start); entry_start += 2;
    }
 #else
    pp = new_palette.entries;
+
    for (i = 0; i < new_palette.nentries; i++)
    {
 
       if (new_palette.depth == 8)
       {
-          pp[i].red   = *entry_start++;
-          pp[i].green = *entry_start++;
-          pp[i].blue  = *entry_start++;
-          pp[i].alpha = *entry_start++;
+         pp[i].red   = *entry_start++;
+         pp[i].green = *entry_start++;
+         pp[i].blue  = *entry_start++;
+         pp[i].alpha = *entry_start++;
       }
+
       else
       {
-          pp[i].red   = png_get_uint_16(entry_start); entry_start += 2;
-          pp[i].green = png_get_uint_16(entry_start); entry_start += 2;
-          pp[i].blue  = png_get_uint_16(entry_start); entry_start += 2;
-          pp[i].alpha = png_get_uint_16(entry_start); entry_start += 2;
+         pp[i].red   = png_get_uint_16(entry_start); entry_start += 2;
+         pp[i].green = png_get_uint_16(entry_start); entry_start += 2;
+         pp[i].blue  = png_get_uint_16(entry_start); entry_start += 2;
+         pp[i].alpha = png_get_uint_16(entry_start); entry_start += 2;
       }
-      pp->frequency = png_get_uint_16(entry_start); entry_start += 2;
+
+      pp[i].frequency = png_get_uint_16(entry_start); entry_start += 2;
    }
 #endif
 
-   /* discard all chunk data except the name and stash that */
-   new_palette.name = (png_charp)chunkdata;
+   /* Discard all chunk data except the name and stash that */
+   new_palette.name = png_ptr->chunkdata;
 
    png_set_sPLT(png_ptr, info_ptr, &new_palette, 1);
 
-   png_free(png_ptr, chunkdata);
+   png_free(png_ptr, png_ptr->chunkdata);
+   png_ptr->chunkdata = NULL;
    png_free(png_ptr, new_palette.entries);
 }
 #endif /* PNG_READ_sPLT_SUPPORTED */
 
-#if defined(PNG_READ_tRNS_SUPPORTED)
+#ifdef PNG_READ_tRNS_SUPPORTED
 void /* PRIVATE */
 png_handle_tRNS(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
    png_byte readbuf[PNG_MAX_PALETTE_LENGTH];
 
-   png_debug(1, "in png_handle_tRNS\n");
+   png_debug(1, "in png_handle_tRNS");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before tRNS");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid tRNS after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_tRNS))
    {
       png_warning(png_ptr, "Duplicate tRNS chunk");
@@ -1293,8 +1527,9 @@ png_handle_tRNS(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 
       png_crc_read(png_ptr, buf, 2);
       png_ptr->num_trans = 1;
-      png_ptr->trans_values.gray = png_get_uint_16(buf);
+      png_ptr->trans_color.gray = png_get_uint_16(buf);
    }
+
    else if (png_ptr->color_type == PNG_COLOR_TYPE_RGB)
    {
       png_byte buf[6];
@@ -1305,12 +1540,14 @@ png_handle_tRNS(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
          png_crc_finish(png_ptr, length);
          return;
       }
+
       png_crc_read(png_ptr, buf, (png_size_t)length);
       png_ptr->num_trans = 1;
-      png_ptr->trans_values.red = png_get_uint_16(buf);
-      png_ptr->trans_values.green = png_get_uint_16(buf + 2);
-      png_ptr->trans_values.blue = png_get_uint_16(buf + 4);
+      png_ptr->trans_color.red = png_get_uint_16(buf);
+      png_ptr->trans_color.green = png_get_uint_16(buf + 2);
+      png_ptr->trans_color.blue = png_get_uint_16(buf + 4);
    }
+
    else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
    {
       if (!(png_ptr->mode & PNG_HAVE_PLTE))
@@ -1318,6 +1555,7 @@ png_handle_tRNS(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
          /* Should be an error, but we can cope with it. */
          png_warning(png_ptr, "Missing PLTE before tRNS");
       }
+
       if (length > (png_uint_32)png_ptr->num_palette ||
           length > PNG_MAX_PALETTE_LENGTH)
       {
@@ -1325,15 +1563,18 @@ png_handle_tRNS(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
          png_crc_finish(png_ptr, length);
          return;
       }
+
       if (length == 0)
       {
          png_warning(png_ptr, "Zero length tRNS chunk");
          png_crc_finish(png_ptr, length);
          return;
       }
+
       png_crc_read(png_ptr, readbuf, (png_size_t)length);
       png_ptr->num_trans = (png_uint_16)length;
    }
+
    else
    {
       png_warning(png_ptr, "tRNS chunk not allowed with alpha channel");
@@ -1348,34 +1589,38 @@ png_handle_tRNS(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    }
 
    png_set_tRNS(png_ptr, info_ptr, readbuf, png_ptr->num_trans,
-      &(png_ptr->trans_values));
+       &(png_ptr->trans_color));
 }
 #endif
 
-#if defined(PNG_READ_bKGD_SUPPORTED)
+#ifdef PNG_READ_bKGD_SUPPORTED
 void /* PRIVATE */
 png_handle_bKGD(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
    png_size_t truelen;
    png_byte buf[6];
+   png_color_16 background;
 
-   png_debug(1, "in png_handle_bKGD\n");
+   png_debug(1, "in png_handle_bKGD");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before bKGD");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid bKGD after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE &&
-            !(png_ptr->mode & PNG_HAVE_PLTE))
+       !(png_ptr->mode & PNG_HAVE_PLTE))
    {
       png_warning(png_ptr, "Missing PLTE before bKGD");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_bKGD))
    {
       png_warning(png_ptr, "Duplicate bKGD chunk");
@@ -1385,8 +1630,10 @@ png_handle_bKGD(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 
    if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
       truelen = 1;
+
    else if (png_ptr->color_type & PNG_COLOR_MASK_COLOR)
       truelen = 6;
+
    else
       truelen = 2;
 
@@ -1398,72 +1645,86 @@ png_handle_bKGD(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    }
 
    png_crc_read(png_ptr, buf, truelen);
+
    if (png_crc_finish(png_ptr, 0))
       return;
 
    /* We convert the index value into RGB components so that we can allow
     * arbitrary RGB values for background when we have transparency, and
     * so it is easy to determine the RGB values of the background color
-    * from the info_ptr struct. */
+    * from the info_ptr struct.
+    */
    if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
    {
-      png_ptr->background.index = buf[0];
-      if(info_ptr->num_palette)
+      background.index = buf[0];
+
+      if (info_ptr && info_ptr->num_palette)
       {
-          if(buf[0] > info_ptr->num_palette)
-          {
-             png_warning(png_ptr, "Incorrect bKGD chunk index value");
-             return;
-          }
-          png_ptr->background.red =
-             (png_uint_16)png_ptr->palette[buf[0]].red;
-          png_ptr->background.green =
-             (png_uint_16)png_ptr->palette[buf[0]].green;
-          png_ptr->background.blue =
-             (png_uint_16)png_ptr->palette[buf[0]].blue;
+         if (buf[0] >= info_ptr->num_palette)
+         {
+            png_warning(png_ptr, "Incorrect bKGD chunk index value");
+            return;
+         }
+
+         background.red = (png_uint_16)png_ptr->palette[buf[0]].red;
+         background.green = (png_uint_16)png_ptr->palette[buf[0]].green;
+         background.blue = (png_uint_16)png_ptr->palette[buf[0]].blue;
       }
+
+      else
+         background.red = background.green = background.blue = 0;
+
+      background.gray = 0;
    }
+
    else if (!(png_ptr->color_type & PNG_COLOR_MASK_COLOR)) /* GRAY */
    {
-      png_ptr->background.red =
-      png_ptr->background.green =
-      png_ptr->background.blue =
-      png_ptr->background.gray = png_get_uint_16(buf);
+      background.index = 0;
+      background.red =
+      background.green =
+      background.blue =
+      background.gray = png_get_uint_16(buf);
    }
+
    else
    {
-      png_ptr->background.red = png_get_uint_16(buf);
-      png_ptr->background.green = png_get_uint_16(buf + 2);
-      png_ptr->background.blue = png_get_uint_16(buf + 4);
+      background.index = 0;
+      background.red = png_get_uint_16(buf);
+      background.green = png_get_uint_16(buf + 2);
+      background.blue = png_get_uint_16(buf + 4);
+      background.gray = 0;
    }
 
-   png_set_bKGD(png_ptr, info_ptr, &(png_ptr->background));
+   png_set_bKGD(png_ptr, info_ptr, &background);
 }
 #endif
 
-#if defined(PNG_READ_hIST_SUPPORTED)
+#ifdef PNG_READ_hIST_SUPPORTED
 void /* PRIVATE */
 png_handle_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
    unsigned int num, i;
    png_uint_16 readbuf[PNG_MAX_PALETTE_LENGTH];
 
-   png_debug(1, "in png_handle_hIST\n");
+   png_debug(1, "in png_handle_hIST");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before hIST");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid hIST after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (!(png_ptr->mode & PNG_HAVE_PLTE))
    {
       png_warning(png_ptr, "Missing PLTE before hIST");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_hIST))
    {
       png_warning(png_ptr, "Duplicate hIST chunk");
@@ -1472,8 +1733,9 @@ png_handle_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    }
 
    num = length / 2 ;
-   if (num != (unsigned int) png_ptr->num_palette || num >
-      (unsigned int) PNG_MAX_PALETTE_LENGTH)
+
+   if (num != (unsigned int)png_ptr->num_palette || num >
+       (unsigned int)PNG_MAX_PALETTE_LENGTH)
    {
       png_warning(png_ptr, "Incorrect hIST chunk length");
       png_crc_finish(png_ptr, length);
@@ -1495,7 +1757,7 @@ png_handle_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 }
 #endif
 
-#if defined(PNG_READ_pHYs_SUPPORTED)
+#ifdef PNG_READ_pHYs_SUPPORTED
 void /* PRIVATE */
 png_handle_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
@@ -1503,16 +1765,18 @@ png_handle_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    png_uint_32 res_x, res_y;
    int unit_type;
 
-   png_debug(1, "in png_handle_pHYs\n");
+   png_debug(1, "in png_handle_pHYs");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before pHYs");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid pHYs after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs))
    {
       png_warning(png_ptr, "Duplicate pHYs chunk");
@@ -1528,6 +1792,7 @@ png_handle_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    }
 
    png_crc_read(png_ptr, buf, 9);
+
    if (png_crc_finish(png_ptr, 0))
       return;
 
@@ -1538,7 +1803,7 @@ png_handle_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 }
 #endif
 
-#if defined(PNG_READ_oFFs_SUPPORTED)
+#ifdef PNG_READ_oFFs_SUPPORTED
 void /* PRIVATE */
 png_handle_oFFs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
@@ -1546,16 +1811,18 @@ png_handle_oFFs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    png_int_32 offset_x, offset_y;
    int unit_type;
 
-   png_debug(1, "in png_handle_oFFs\n");
+   png_debug(1, "in png_handle_oFFs");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before oFFs");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid oFFs after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs))
    {
       png_warning(png_ptr, "Duplicate oFFs chunk");
@@ -1571,6 +1838,7 @@ png_handle_oFFs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    }
 
    png_crc_read(png_ptr, buf, 9);
+
    if (png_crc_finish(png_ptr, 0))
       return;
 
@@ -1581,12 +1849,11 @@ png_handle_oFFs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 }
 #endif
 
-#if defined(PNG_READ_pCAL_SUPPORTED)
-/* read the pCAL chunk (described in the PNG Extensions document) */
+#ifdef PNG_READ_pCAL_SUPPORTED
+/* Read the pCAL chunk (described in the PNG Extensions document) */
 void /* PRIVATE */
 png_handle_pCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
-   png_charp purpose;
    png_int_32 X0, X1;
    png_byte type, nparams;
    png_charp buf, units, endptr;
@@ -1594,16 +1861,18 @@ png_handle_pCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    png_size_t slength;
    int i;
 
-   png_debug(1, "in png_handle_pCAL\n");
+   png_debug(1, "in png_handle_pCAL");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before pCAL");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid pCAL after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_pCAL))
    {
       png_warning(png_ptr, "Duplicate pCAL chunk");
@@ -1611,59 +1880,68 @@ png_handle_pCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
       return;
    }
 
-   png_debug1(2, "Allocating and reading pCAL chunk data (%lu bytes)\n",
-      length + 1);
-   purpose = (png_charp)png_malloc_warn(png_ptr, length + 1);
-   if (purpose == NULL)
-     {
-       png_warning(png_ptr, "No memory for pCAL purpose.");
-       return;
-     }
+   png_debug1(2, "Allocating and reading pCAL chunk data (%u bytes)",
+       length + 1);
+   png_free(png_ptr, png_ptr->chunkdata);
+   png_ptr->chunkdata = (png_charp)png_malloc_warn(png_ptr, length + 1);
+
+   if (png_ptr->chunkdata == NULL)
+   {
+      png_warning(png_ptr, "No memory for pCAL purpose");
+      return;
+   }
+
    slength = (png_size_t)length;
-   png_crc_read(png_ptr, (png_bytep)purpose, slength);
+   png_crc_read(png_ptr, (png_bytep)png_ptr->chunkdata, slength);
 
    if (png_crc_finish(png_ptr, 0))
    {
-      png_free(png_ptr, purpose);
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       return;
    }
 
-   purpose[slength] = 0x00; /* null terminate the last string */
+   png_ptr->chunkdata[slength] = 0x00; /* Null terminate the last string */
 
-   png_debug(3, "Finding end of pCAL purpose string\n");
-   for (buf = purpose; *buf; buf++)
-      /* empty loop */ ;
+   png_debug(3, "Finding end of pCAL purpose string");
+   for (buf = png_ptr->chunkdata; *buf; buf++)
+      /* Empty loop */ ;
 
-   endptr = purpose + slength;
+   endptr = png_ptr->chunkdata + slength;
 
    /* We need to have at least 12 bytes after the purpose string
-      in order to get the parameter information. */
+    * in order to get the parameter information.
+    */
    if (endptr <= buf + 12)
    {
       png_warning(png_ptr, "Invalid pCAL data");
-      png_free(png_ptr, purpose);
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       return;
    }
 
-   png_debug(3, "Reading pCAL X0, X1, type, nparams, and units\n");
+   png_debug(3, "Reading pCAL X0, X1, type, nparams, and units");
    X0 = png_get_int_32((png_bytep)buf+1);
    X1 = png_get_int_32((png_bytep)buf+5);
    type = buf[9];
    nparams = buf[10];
    units = buf + 11;
 
-   png_debug(3, "Checking pCAL equation type and number of parameters\n");
+   png_debug(3, "Checking pCAL equation type and number of parameters");
    /* Check that we have the right number of parameters for known
-      equation types. */
+    * equation types.
+    */
    if ((type == PNG_EQUATION_LINEAR && nparams != 2) ||
        (type == PNG_EQUATION_BASE_E && nparams != 3) ||
        (type == PNG_EQUATION_ARBITRARY && nparams != 3) ||
        (type == PNG_EQUATION_HYPERBOLIC && nparams != 4))
    {
       png_warning(png_ptr, "Invalid pCAL parameters for equation type");
-      png_free(png_ptr, purpose);
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       return;
    }
+
    else if (type >= PNG_EQUATION_LAST)
    {
       png_warning(png_ptr, "Unrecognized equation type for pCAL chunk");
@@ -1672,69 +1950,69 @@ png_handle_pCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    for (buf = units; *buf; buf++)
       /* Empty loop to move past the units string. */ ;
 
-   png_debug(3, "Allocating pCAL parameters array\n");
-   params = (png_charpp)png_malloc_warn(png_ptr, (png_uint_32)(nparams
-      *png_sizeof(png_charp))) ;
+   png_debug(3, "Allocating pCAL parameters array");
+
+   params = (png_charpp)png_malloc_warn(png_ptr,
+       (png_size_t)(nparams * png_sizeof(png_charp)));
+
    if (params == NULL)
-     {
-       png_free(png_ptr, purpose);
-       png_warning(png_ptr, "No memory for pCAL params.");
-       return;
-     }
+   {
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
+      png_warning(png_ptr, "No memory for pCAL params");
+      return;
+   }
 
    /* Get pointers to the start of each parameter string. */
    for (i = 0; i < (int)nparams; i++)
    {
       buf++; /* Skip the null string terminator from previous parameter. */
 
-      png_debug1(3, "Reading pCAL parameter %d\n", i);
-      for (params[i] = buf; *buf != 0x00 && buf <= endptr; buf++)
+      png_debug1(3, "Reading pCAL parameter %d", i);
+
+      for (params[i] = buf; buf <= endptr && *buf != 0x00; buf++)
          /* Empty loop to move past each parameter string */ ;
 
       /* Make sure we haven't run out of data yet */
       if (buf > endptr)
       {
          png_warning(png_ptr, "Invalid pCAL data");
-         png_free(png_ptr, purpose);
+         png_free(png_ptr, png_ptr->chunkdata);
+         png_ptr->chunkdata = NULL;
          png_free(png_ptr, params);
          return;
       }
    }
 
-   png_set_pCAL(png_ptr, info_ptr, purpose, X0, X1, type, nparams,
+   png_set_pCAL(png_ptr, info_ptr, png_ptr->chunkdata, X0, X1, type, nparams,
       units, params);
 
-   png_free(png_ptr, purpose);
+   png_free(png_ptr, png_ptr->chunkdata);
+   png_ptr->chunkdata = NULL;
    png_free(png_ptr, params);
 }
 #endif
 
-#if defined(PNG_READ_sCAL_SUPPORTED)
-/* read the sCAL chunk */
+#ifdef PNG_READ_sCAL_SUPPORTED
+/* Read the sCAL chunk */
 void /* PRIVATE */
 png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
-   png_charp buffer, ep;
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   double width, height;
-   png_charp vp;
-#else
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   png_charp swidth, sheight;
-#endif
-#endif
-   png_size_t slength;
+   png_size_t slength, i;
+   int state;
 
-   png_debug(1, "in png_handle_sCAL\n");
+   png_debug(1, "in png_handle_sCAL");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before sCAL");
+
    else if (png_ptr->mode & PNG_HAVE_IDAT)
    {
       png_warning(png_ptr, "Invalid sCAL after IDAT");
       png_crc_finish(png_ptr, length);
       return;
    }
+
    else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_sCAL))
    {
       png_warning(png_ptr, "Duplicate sCAL chunk");
@@ -1742,112 +2020,96 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
       return;
    }
 
-   png_debug1(2, "Allocating and reading sCAL chunk data (%lu bytes)\n",
-      length + 1);
-   buffer = (png_charp)png_malloc_warn(png_ptr, length + 1);
-   if (buffer == NULL)
-     {
-       png_warning(png_ptr, "Out of memory while processing sCAL chunk");
-       return;
-     }
-   slength = (png_size_t)length;
-   png_crc_read(png_ptr, (png_bytep)buffer, slength);
-
-   if (png_crc_finish(png_ptr, 0))
+   /* Need unit type, width, \0, height: minimum 4 bytes */
+   else if (length < 4)
    {
-      png_free(png_ptr, buffer);
+      png_warning(png_ptr, "sCAL chunk too short");
+      png_crc_finish(png_ptr, length);
       return;
    }
 
-   buffer[slength] = 0x00; /* null terminate the last string */
+   png_debug1(2, "Allocating and reading sCAL chunk data (%u bytes)",
+      length + 1);
 
-   ep = buffer + 1;        /* skip unit byte */
+   png_ptr->chunkdata = (png_charp)png_malloc_warn(png_ptr, length + 1);
 
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   width = png_strtod(png_ptr, ep, &vp);
-   if (*vp)
+   if (png_ptr->chunkdata == NULL)
    {
-       png_warning(png_ptr, "malformed width string in sCAL chunk");
-       return;
+      png_warning(png_ptr, "Out of memory while processing sCAL chunk");
+      png_crc_finish(png_ptr, length);
+      return;
    }
-#else
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   swidth = (png_charp)png_malloc_warn(png_ptr, png_strlen(ep) + 1);
-   if (swidth == NULL)
-     {
-       png_warning(png_ptr, "Out of memory while processing sCAL chunk width");
-       return;
-     }
-   png_memcpy(swidth, ep, (png_size_t)png_strlen(ep));
-#endif
-#endif
 
-   for (ep = buffer; *ep; ep++)
-      /* empty loop */ ;
-   ep++;
+   slength = (png_size_t)length;
+   png_crc_read(png_ptr, (png_bytep)png_ptr->chunkdata, slength);
+   png_ptr->chunkdata[slength] = 0x00; /* Null terminate the last string */
 
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   height = png_strtod(png_ptr, ep, &vp);
-   if (*vp)
+   if (png_crc_finish(png_ptr, 0))
    {
-       png_warning(png_ptr, "malformed height string in sCAL chunk");
-       return;
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
+      return;
    }
-#else
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   sheight = (png_charp)png_malloc_warn(png_ptr, png_strlen(ep) + 1);
-   if (swidth == NULL)
-     {
-       png_warning(png_ptr, "Out of memory while processing sCAL chunk height");
-       return;
-     }
-   png_memcpy(sheight, ep, (png_size_t)png_strlen(ep));
-#endif
-#endif
 
-   if (buffer + slength < ep
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-      || width <= 0. || height <= 0.
-#endif
-      )
+   /* Validate the unit. */
+   if (png_ptr->chunkdata[0] != 1 && png_ptr->chunkdata[0] != 2)
    {
-      png_warning(png_ptr, "Invalid sCAL data");
-      png_free(png_ptr, buffer);
-#if defined(PNG_FIXED_POINT_SUPPORTED) && !defined(PNG_FLOATING_POINT_SUPPORTED)
-      png_free(png_ptr, swidth);
-      png_free(png_ptr, sheight);
-#endif
+      png_warning(png_ptr, "Invalid sCAL ignored: invalid unit");
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       return;
    }
 
+   /* Validate the ASCII numbers, need two ASCII numbers separated by
+    * a '\0' and they need to fit exactly in the chunk data.
+    */
+   i = 1;
+   state = 0;
 
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   png_set_sCAL(png_ptr, info_ptr, buffer[0], width, height);
-#else
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   png_set_sCAL_s(png_ptr, info_ptr, buffer[0], swidth, sheight);
-#endif
-#endif
+   if (!png_check_fp_number(png_ptr->chunkdata, slength, &state, &i) ||
+       i >= slength || png_ptr->chunkdata[i++] != 0)
+      png_warning(png_ptr, "Invalid sCAL chunk ignored: bad width format");
 
-   png_free(png_ptr, buffer);
-#if defined(PNG_FIXED_POINT_SUPPORTED) && !defined(PNG_FLOATING_POINT_SUPPORTED)
-   png_free(png_ptr, swidth);
-   png_free(png_ptr, sheight);
-#endif
+   else if (!PNG_FP_IS_POSITIVE(state))
+      png_warning(png_ptr, "Invalid sCAL chunk ignored: non-positive width");
+
+   else
+   {
+      png_size_t heighti = i;
+
+      state = 0;
+      if (!png_check_fp_number(png_ptr->chunkdata, slength, &state, &i) ||
+          i != slength)
+         png_warning(png_ptr, "Invalid sCAL chunk ignored: bad height format");
+
+      else if (!PNG_FP_IS_POSITIVE(state))
+         png_warning(png_ptr,
+            "Invalid sCAL chunk ignored: non-positive height");
+
+      else
+         /* This is the (only) success case. */
+         png_set_sCAL_s(png_ptr, info_ptr, png_ptr->chunkdata[0],
+            png_ptr->chunkdata+1, png_ptr->chunkdata+heighti);
+   }
+
+   /* Clean up - just free the temporarily allocated buffer. */
+   png_free(png_ptr, png_ptr->chunkdata);
+   png_ptr->chunkdata = NULL;
 }
 #endif
 
-#if defined(PNG_READ_tIME_SUPPORTED)
+#ifdef PNG_READ_tIME_SUPPORTED
 void /* PRIVATE */
 png_handle_tIME(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
    png_byte buf[7];
    png_time mod_time;
 
-   png_debug(1, "in png_handle_tIME\n");
+   png_debug(1, "in png_handle_tIME");
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Out of place tIME chunk");
+
    else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_tIME))
    {
       png_warning(png_ptr, "Duplicate tIME chunk");
@@ -1866,6 +2128,7 @@ png_handle_tIME(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    }
 
    png_crc_read(png_ptr, buf, 7);
+
    if (png_crc_finish(png_ptr, 0))
       return;
 
@@ -1880,7 +2143,7 @@ png_handle_tIME(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 }
 #endif
 
-#if defined(PNG_READ_tEXt_SUPPORTED)
+#ifdef PNG_READ_tEXt_SUPPORTED
 /* Note: this does not properly handle chunks that are > 64K under DOS */
 void /* PRIVATE */
 png_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
@@ -1892,7 +2155,25 @@ png_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    png_size_t slength;
    int ret;
 
-   png_debug(1, "in png_handle_tEXt\n");
+   png_debug(1, "in png_handle_tEXt");
+
+#ifdef PNG_USER_LIMITS_SUPPORTED
+   if (png_ptr->user_chunk_cache_max != 0)
+   {
+      if (png_ptr->user_chunk_cache_max == 1)
+      {
+         png_crc_finish(png_ptr, length);
+         return;
+      }
+
+      if (--png_ptr->user_chunk_cache_max == 1)
+      {
+         png_warning(png_ptr, "No space in chunk cache for tEXt");
+         png_crc_finish(png_ptr, length);
+         return;
+      }
+   }
+#endif
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before tEXt");
@@ -1909,69 +2190,97 @@ png_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
    }
 #endif
 
-   key = (png_charp)png_malloc_warn(png_ptr, length + 1);
-   if (key == NULL)
+   png_free(png_ptr, png_ptr->chunkdata);
+
+   png_ptr->chunkdata = (png_charp)png_malloc_warn(png_ptr, length + 1);
+
+   if (png_ptr->chunkdata == NULL)
    {
-     png_warning(png_ptr, "No memory to process text chunk.");
+     png_warning(png_ptr, "No memory to process text chunk");
      return;
    }
+
    slength = (png_size_t)length;
-   png_crc_read(png_ptr, (png_bytep)key, slength);
+   png_crc_read(png_ptr, (png_bytep)png_ptr->chunkdata, slength);
 
    if (png_crc_finish(png_ptr, skip))
    {
-      png_free(png_ptr, key);
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       return;
    }
 
+   key = png_ptr->chunkdata;
+
    key[slength] = 0x00;
 
    for (text = key; *text; text++)
-      /* empty loop to find end of key */ ;
+      /* Empty loop to find end of key */ ;
 
    if (text != key + slength)
       text++;
 
    text_ptr = (png_textp)png_malloc_warn(png_ptr,
-      (png_uint_32)png_sizeof(png_text));
+       png_sizeof(png_text));
+
    if (text_ptr == NULL)
    {
-     png_warning(png_ptr, "Not enough memory to process text chunk.");
-     png_free(png_ptr, key);
-     return;
+      png_warning(png_ptr, "Not enough memory to process text chunk");
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
+      return;
    }
+
    text_ptr->compression = PNG_TEXT_COMPRESSION_NONE;
    text_ptr->key = key;
-#ifdef PNG_iTXt_SUPPORTED
    text_ptr->lang = NULL;
    text_ptr->lang_key = NULL;
    text_ptr->itxt_length = 0;
-#endif
    text_ptr->text = text;
    text_ptr->text_length = png_strlen(text);
 
-   ret=png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
+   ret = png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
 
-   png_free(png_ptr, key);
+   png_free(png_ptr, png_ptr->chunkdata);
+   png_ptr->chunkdata = NULL;
    png_free(png_ptr, text_ptr);
+
    if (ret)
-     png_warning(png_ptr, "Insufficient memory to process text chunk.");
+      png_warning(png_ptr, "Insufficient memory to process text chunk");
 }
 #endif
 
-#if defined(PNG_READ_zTXt_SUPPORTED)
-/* note: this does not correctly handle chunks that are > 64K under DOS */
+#ifdef PNG_READ_zTXt_SUPPORTED
+/* Note: this does not correctly handle chunks that are > 64K under DOS */
 void /* PRIVATE */
 png_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
    png_textp text_ptr;
-   png_charp chunkdata;
    png_charp text;
    int comp_type;
    int ret;
    png_size_t slength, prefix_len, data_len;
 
-   png_debug(1, "in png_handle_zTXt\n");
+   png_debug(1, "in png_handle_zTXt");
+
+#ifdef PNG_USER_LIMITS_SUPPORTED
+   if (png_ptr->user_chunk_cache_max != 0)
+   {
+      if (png_ptr->user_chunk_cache_max == 1)
+      {
+         png_crc_finish(png_ptr, length);
+         return;
+      }
+
+      if (--png_ptr->user_chunk_cache_max == 1)
+      {
+         png_warning(png_ptr, "No space in chunk cache for zTXt");
+         png_crc_finish(png_ptr, length);
+         return;
+      }
+   }
+#endif
+
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before zTXt");
 
@@ -1980,96 +2289,128 @@ png_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 
 #ifdef PNG_MAX_MALLOC_64K
    /* We will no doubt have problems with chunks even half this size, but
-      there is no hard and fast rule to tell us where to stop. */
+    * there is no hard and fast rule to tell us where to stop.
+    */
    if (length > (png_uint_32)65535L)
    {
-     png_warning(png_ptr,"zTXt chunk too large to fit in memory");
-     png_crc_finish(png_ptr, length);
-     return;
+      png_warning(png_ptr, "zTXt chunk too large to fit in memory");
+      png_crc_finish(png_ptr, length);
+      return;
    }
 #endif
 
-   chunkdata = (png_charp)png_malloc_warn(png_ptr, length + 1);
-   if (chunkdata == NULL)
+   png_free(png_ptr, png_ptr->chunkdata);
+   png_ptr->chunkdata = (png_charp)png_malloc_warn(png_ptr, length + 1);
+
+   if (png_ptr->chunkdata == NULL)
    {
-     png_warning(png_ptr,"Out of memory processing zTXt chunk.");
-     return;
+      png_warning(png_ptr, "Out of memory processing zTXt chunk");
+      return;
    }
+
    slength = (png_size_t)length;
-   png_crc_read(png_ptr, (png_bytep)chunkdata, slength);
+   png_crc_read(png_ptr, (png_bytep)png_ptr->chunkdata, slength);
+
    if (png_crc_finish(png_ptr, 0))
    {
-      png_free(png_ptr, chunkdata);
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       return;
    }
 
-   chunkdata[slength] = 0x00;
+   png_ptr->chunkdata[slength] = 0x00;
 
-   for (text = chunkdata; *text; text++)
-      /* empty loop */ ;
+   for (text = png_ptr->chunkdata; *text; text++)
+      /* Empty loop */ ;
 
    /* zTXt must have some text after the chunkdataword */
-   if (text == chunkdata + slength)
+   if (text >= png_ptr->chunkdata + slength - 2)
    {
-      comp_type = PNG_TEXT_COMPRESSION_NONE;
-      png_warning(png_ptr, "Zero length zTXt chunk");
+      png_warning(png_ptr, "Truncated zTXt chunk");
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
+      return;
    }
+
    else
    {
        comp_type = *(++text);
+
        if (comp_type != PNG_TEXT_COMPRESSION_zTXt)
        {
           png_warning(png_ptr, "Unknown compression type in zTXt chunk");
           comp_type = PNG_TEXT_COMPRESSION_zTXt;
        }
-       text++;        /* skip the compression_method byte */
+
+       text++;        /* Skip the compression_method byte */
    }
-   prefix_len = text - chunkdata;
 
-   chunkdata = (png_charp)png_decompress_chunk(png_ptr, comp_type, chunkdata,
-                                    (png_size_t)length, prefix_len, &data_len);
+   prefix_len = text - png_ptr->chunkdata;
+
+   png_decompress_chunk(png_ptr, comp_type,
+       (png_size_t)length, prefix_len, &data_len);
 
    text_ptr = (png_textp)png_malloc_warn(png_ptr,
-     (png_uint_32)png_sizeof(png_text));
+       png_sizeof(png_text));
+
    if (text_ptr == NULL)
    {
-     png_warning(png_ptr,"Not enough memory to process zTXt chunk.");
-     png_free(png_ptr, chunkdata);
-     return;
+      png_warning(png_ptr, "Not enough memory to process zTXt chunk");
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
+      return;
    }
+
    text_ptr->compression = comp_type;
-   text_ptr->key = chunkdata;
-#ifdef PNG_iTXt_SUPPORTED
+   text_ptr->key = png_ptr->chunkdata;
    text_ptr->lang = NULL;
    text_ptr->lang_key = NULL;
    text_ptr->itxt_length = 0;
-#endif
-   text_ptr->text = chunkdata + prefix_len;
+   text_ptr->text = png_ptr->chunkdata + prefix_len;
    text_ptr->text_length = data_len;
 
-   ret=png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
+   ret = png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
 
    png_free(png_ptr, text_ptr);
-   png_free(png_ptr, chunkdata);
+   png_free(png_ptr, png_ptr->chunkdata);
+   png_ptr->chunkdata = NULL;
+
    if (ret)
-     png_error(png_ptr, "Insufficient memory to store zTXt chunk.");
+      png_error(png_ptr, "Insufficient memory to store zTXt chunk");
 }
 #endif
 
-#if defined(PNG_READ_iTXt_SUPPORTED)
-/* note: this does not correctly handle chunks that are > 64K under DOS */
+#ifdef PNG_READ_iTXt_SUPPORTED
+/* Note: this does not correctly handle chunks that are > 64K under DOS */
 void /* PRIVATE */
 png_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
    png_textp text_ptr;
-   png_charp chunkdata;
    png_charp key, lang, text, lang_key;
    int comp_flag;
    int comp_type = 0;
    int ret;
    png_size_t slength, prefix_len, data_len;
 
-   png_debug(1, "in png_handle_iTXt\n");
+   png_debug(1, "in png_handle_iTXt");
+
+#ifdef PNG_USER_LIMITS_SUPPORTED
+   if (png_ptr->user_chunk_cache_max != 0)
+   {
+      if (png_ptr->user_chunk_cache_max == 1)
+      {
+         png_crc_finish(png_ptr, length);
+         return;
+      }
+
+      if (--png_ptr->user_chunk_cache_max == 1)
+      {
+         png_warning(png_ptr, "No space in chunk cache for iTXt");
+         png_crc_finish(png_ptr, length);
+         return;
+      }
+   }
+#endif
 
    if (!(png_ptr->mode & PNG_HAVE_IHDR))
       png_error(png_ptr, "Missing IHDR before iTXt");
@@ -2079,193 +2420,274 @@ png_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 
 #ifdef PNG_MAX_MALLOC_64K
    /* We will no doubt have problems with chunks even half this size, but
-      there is no hard and fast rule to tell us where to stop. */
+    * there is no hard and fast rule to tell us where to stop.
+    */
    if (length > (png_uint_32)65535L)
    {
-     png_warning(png_ptr,"iTXt chunk too large to fit in memory");
-     png_crc_finish(png_ptr, length);
-     return;
+      png_warning(png_ptr, "iTXt chunk too large to fit in memory");
+      png_crc_finish(png_ptr, length);
+      return;
    }
 #endif
 
-   chunkdata = (png_charp)png_malloc_warn(png_ptr, length + 1);
-   if (chunkdata == NULL)
+   png_free(png_ptr, png_ptr->chunkdata);
+   png_ptr->chunkdata = (png_charp)png_malloc_warn(png_ptr, length + 1);
+
+   if (png_ptr->chunkdata == NULL)
    {
-     png_warning(png_ptr, "No memory to process iTXt chunk.");
-     return;
+      png_warning(png_ptr, "No memory to process iTXt chunk");
+      return;
    }
+
    slength = (png_size_t)length;
-   png_crc_read(png_ptr, (png_bytep)chunkdata, slength);
+   png_crc_read(png_ptr, (png_bytep)png_ptr->chunkdata, slength);
+
    if (png_crc_finish(png_ptr, 0))
    {
-      png_free(png_ptr, chunkdata);
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
       return;
    }
 
-   chunkdata[slength] = 0x00;
+   png_ptr->chunkdata[slength] = 0x00;
 
-   for (lang = chunkdata; *lang; lang++)
-      /* empty loop */ ;
-   lang++;        /* skip NUL separator */
+   for (lang = png_ptr->chunkdata; *lang; lang++)
+      /* Empty loop */ ;
+
+   lang++;        /* Skip NUL separator */
 
    /* iTXt must have a language tag (possibly empty), two compression bytes,
-      translated keyword (possibly empty), and possibly some text after the
-      keyword */
+    * translated keyword (possibly empty), and possibly some text after the
+    * keyword
+    */
 
-   if (lang >= chunkdata + slength)
+   if (lang >= png_ptr->chunkdata + slength - 3)
    {
-      comp_flag = PNG_TEXT_COMPRESSION_NONE;
-      png_warning(png_ptr, "Zero length iTXt chunk");
+      png_warning(png_ptr, "Truncated iTXt chunk");
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
+      return;
    }
+
    else
    {
-       comp_flag = *lang++;
-       comp_type = *lang++;
+      comp_flag = *lang++;
+      comp_type = *lang++;
    }
 
    for (lang_key = lang; *lang_key; lang_key++)
-      /* empty loop */ ;
-   lang_key++;        /* skip NUL separator */
+      /* Empty loop */ ;
+
+   lang_key++;        /* Skip NUL separator */
+
+   if (lang_key >= png_ptr->chunkdata + slength)
+   {
+      png_warning(png_ptr, "Truncated iTXt chunk");
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
+      return;
+   }
 
    for (text = lang_key; *text; text++)
-      /* empty loop */ ;
-   text++;        /* skip NUL separator */
+      /* Empty loop */ ;
 
-   prefix_len = text - chunkdata;
+   text++;        /* Skip NUL separator */
+
+   if (text >= png_ptr->chunkdata + slength)
+   {
+      png_warning(png_ptr, "Malformed iTXt chunk");
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
+      return;
+   }
+
+   prefix_len = text - png_ptr->chunkdata;
+
+   key=png_ptr->chunkdata;
 
-   key=chunkdata;
    if (comp_flag)
-       chunkdata = png_decompress_chunk(png_ptr, comp_type, chunkdata,
+      png_decompress_chunk(png_ptr, comp_type,
           (size_t)length, prefix_len, &data_len);
+
    else
-       data_len=png_strlen(chunkdata + prefix_len);
+      data_len = png_strlen(png_ptr->chunkdata + prefix_len);
+
    text_ptr = (png_textp)png_malloc_warn(png_ptr,
-      (png_uint_32)png_sizeof(png_text));
+       png_sizeof(png_text));
+
    if (text_ptr == NULL)
    {
-     png_warning(png_ptr,"Not enough memory to process iTXt chunk.");
-     png_free(png_ptr, chunkdata);
-     return;
+      png_warning(png_ptr, "Not enough memory to process iTXt chunk");
+      png_free(png_ptr, png_ptr->chunkdata);
+      png_ptr->chunkdata = NULL;
+      return;
    }
+
    text_ptr->compression = (int)comp_flag + 1;
-   text_ptr->lang_key = chunkdata+(lang_key-key);
-   text_ptr->lang = chunkdata+(lang-key);
+   text_ptr->lang_key = png_ptr->chunkdata + (lang_key - key);
+   text_ptr->lang = png_ptr->chunkdata + (lang - key);
    text_ptr->itxt_length = data_len;
    text_ptr->text_length = 0;
-   text_ptr->key = chunkdata;
-   text_ptr->text = chunkdata + prefix_len;
+   text_ptr->key = png_ptr->chunkdata;
+   text_ptr->text = png_ptr->chunkdata + prefix_len;
 
-   ret=png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
+   ret = png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
 
    png_free(png_ptr, text_ptr);
-   png_free(png_ptr, chunkdata);
+   png_free(png_ptr, png_ptr->chunkdata);
+   png_ptr->chunkdata = NULL;
+
    if (ret)
-     png_error(png_ptr, "Insufficient memory to store iTXt chunk.");
+      png_error(png_ptr, "Insufficient memory to store iTXt chunk");
 }
 #endif
 
 /* This function is called when we haven't found a handler for a
-   chunk.  If there isn't a problem with the chunk itself (ie bad
-   chunk name, CRC, or a critical chunk), the chunk is silently ignored
-   -- unless the PNG_FLAG_UNKNOWN_CHUNKS_SUPPORTED flag is on in which
-   case it will be saved away to be written out later. */
+ * chunk.  If there isn't a problem with the chunk itself (ie bad
+ * chunk name, CRC, or a critical chunk), the chunk is silently ignored
+ * -- unless the PNG_FLAG_UNKNOWN_CHUNKS_SUPPORTED flag is on in which
+ * case it will be saved away to be written out later.
+ */
 void /* PRIVATE */
 png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
 {
    png_uint_32 skip = 0;
 
-   png_debug(1, "in png_handle_unknown\n");
+   png_debug(1, "in png_handle_unknown");
+
+#ifdef PNG_USER_LIMITS_SUPPORTED
+   if (png_ptr->user_chunk_cache_max != 0)
+   {
+      if (png_ptr->user_chunk_cache_max == 1)
+      {
+         png_crc_finish(png_ptr, length);
+         return;
+      }
+
+      if (--png_ptr->user_chunk_cache_max == 1)
+      {
+         png_warning(png_ptr, "No space in chunk cache for unknown chunk");
+         png_crc_finish(png_ptr, length);
+         return;
+      }
+   }
+#endif
 
    if (png_ptr->mode & PNG_HAVE_IDAT)
    {
-#ifdef PNG_USE_LOCAL_ARRAYS
       PNG_IDAT;
-#endif
-      if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4))  /* not an IDAT */
+
+      if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4))  /* Not an IDAT */
          png_ptr->mode |= PNG_AFTER_IDAT;
    }
 
-   png_check_chunk_name(png_ptr, png_ptr->chunk_name);
-
    if (!(png_ptr->chunk_name[0] & 0x20))
    {
-#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
-      if(png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
-           PNG_HANDLE_CHUNK_ALWAYS
-#if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
-           && png_ptr->read_user_chunk_fn == NULL
+#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+      if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
+          PNG_HANDLE_CHUNK_ALWAYS
+#ifdef PNG_READ_USER_CHUNKS_SUPPORTED
+          && png_ptr->read_user_chunk_fn == NULL
 #endif
-        )
+          )
 #endif
-          png_chunk_error(png_ptr, "unknown critical chunk");
+         png_chunk_error(png_ptr, "unknown critical chunk");
    }
 
-#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
-   if ((png_ptr->flags & PNG_FLAG_KEEP_UNKNOWN_CHUNKS) ||
-       (png_ptr->read_user_chunk_fn != NULL))
+#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
+   if ((png_ptr->flags & PNG_FLAG_KEEP_UNKNOWN_CHUNKS)
+#ifdef PNG_READ_USER_CHUNKS_SUPPORTED
+       || (png_ptr->read_user_chunk_fn != NULL)
+#endif
+       )
    {
 #ifdef PNG_MAX_MALLOC_64K
-       if (length > (png_uint_32)65535L)
-       {
-           png_warning(png_ptr, "unknown chunk too large to fit in memory");
-           skip = length - (png_uint_32)65535L;
-           length = (png_uint_32)65535L;
-       }
+      if (length > (png_uint_32)65535L)
+      {
+         png_warning(png_ptr, "unknown chunk too large to fit in memory");
+         skip = length - (png_uint_32)65535L;
+         length = (png_uint_32)65535L;
+      }
 #endif
-       png_strcpy((png_charp)png_ptr->unknown_chunk.name,
-         (png_charp)png_ptr->chunk_name);
-       png_ptr->unknown_chunk.data = (png_bytep)png_malloc(png_ptr, length);
-       png_ptr->unknown_chunk.size = (png_size_t)length;
-       png_crc_read(png_ptr, (png_bytep)png_ptr->unknown_chunk.data, length);
-#if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
-       if(png_ptr->read_user_chunk_fn != NULL)
-       {
-          /* callback to user unknown chunk handler */
-          int ret;
-          ret = (*(png_ptr->read_user_chunk_fn))
-            (png_ptr, &png_ptr->unknown_chunk);
-          if (ret < 0)
-             png_chunk_error(png_ptr, "error in user chunk");
-          if (ret == 0)
-          {
-             if (!(png_ptr->chunk_name[0] & 0x20))
-                if(png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
-                     PNG_HANDLE_CHUNK_ALWAYS)
-                   png_chunk_error(png_ptr, "unknown critical chunk");
-             png_set_unknown_chunks(png_ptr, info_ptr,
-               &png_ptr->unknown_chunk, 1);
-          }
-       }
-#else
-       png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1);
+
+      png_memcpy((png_charp)png_ptr->unknown_chunk.name,
+          (png_charp)png_ptr->chunk_name,
+          png_sizeof(png_ptr->unknown_chunk.name));
+
+      png_ptr->unknown_chunk.name[png_sizeof(png_ptr->unknown_chunk.name)-1]
+          = '\0';
+
+      png_ptr->unknown_chunk.size = (png_size_t)length;
+
+      if (length == 0)
+         png_ptr->unknown_chunk.data = NULL;
+
+      else
+      {
+         png_ptr->unknown_chunk.data = (png_bytep)png_malloc(png_ptr, length);
+         png_crc_read(png_ptr, (png_bytep)png_ptr->unknown_chunk.data, length);
+      }
+
+#ifdef PNG_READ_USER_CHUNKS_SUPPORTED
+      if (png_ptr->read_user_chunk_fn != NULL)
+      {
+         /* Callback to user unknown chunk handler */
+         int ret;
+
+         ret = (*(png_ptr->read_user_chunk_fn))
+             (png_ptr, &png_ptr->unknown_chunk);
+
+         if (ret < 0)
+            png_chunk_error(png_ptr, "error in user chunk");
+
+         if (ret == 0)
+         {
+            if (!(png_ptr->chunk_name[0] & 0x20))
+            {
+#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+               if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
+                   PNG_HANDLE_CHUNK_ALWAYS)
+#endif
+                  png_chunk_error(png_ptr, "unknown critical chunk");
+            }
+
+            png_set_unknown_chunks(png_ptr, info_ptr,
+                &png_ptr->unknown_chunk, 1);
+         }
+      }
+
+      else
 #endif
-       png_free(png_ptr, png_ptr->unknown_chunk.data);
-       png_ptr->unknown_chunk.data = NULL;
+         png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1);
+
+      png_free(png_ptr, png_ptr->unknown_chunk.data);
+      png_ptr->unknown_chunk.data = NULL;
    }
+
    else
 #endif
       skip = length;
 
    png_crc_finish(png_ptr, skip);
 
-#if !defined(PNG_READ_USER_CHUNKS_SUPPORTED)
-   if (&info_ptr == NULL) /* quiet compiler warnings about unused info_ptr */
-      return;
+#ifndef PNG_READ_USER_CHUNKS_SUPPORTED
+   PNG_UNUSED(info_ptr) /* Quiet compiler warnings about unused info_ptr */
 #endif
 }
 
 /* This function is called to verify that a chunk name is valid.
-   This function can't have the "critical chunk check" incorporated
-   into it, since in the future we will need to be able to call user
-   functions to handle unknown critical chunks after we check that
-   the chunk name itself is valid. */
+ * This function can't have the "critical chunk check" incorporated
+ * into it, since in the future we will need to be able to call user
+ * functions to handle unknown critical chunks after we check that
+ * the chunk name itself is valid.
+ */
 
 #define isnonalpha(c) ((c) < 65 || (c) > 122 || ((c) > 90 && (c) < 97))
 
 void /* PRIVATE */
-png_check_chunk_name(png_structp png_ptr, png_bytep chunk_name)
+png_check_chunk_name(png_structp png_ptr, png_const_bytep chunk_name)
 {
-   png_debug(1, "in png_check_chunk_name\n");
+   png_debug(1, "in png_check_chunk_name");
    if (isnonalpha(chunk_name[0]) || isnonalpha(chunk_name[1]) ||
        isnonalpha(chunk_name[2]) || isnonalpha(chunk_name[3]))
    {
@@ -2274,25 +2696,36 @@ png_check_chunk_name(png_structp png_ptr, png_bytep chunk_name)
 }
 
 /* Combines the row recently read in with the existing pixels in the
-   row.  This routine takes care of alpha and transparency if requested.
-   This routine also handles the two methods of progressive display
-   of interlaced images, depending on the mask value.
-   The mask value describes which pixels are to be combined with
-   the row.  The pattern always repeats every 8 pixels, so just 8
-   bits are needed.  A one indicates the pixel is to be combined,
-   a zero indicates the pixel is to be skipped.  This is in addition
-   to any alpha or transparency value associated with the pixel.  If
-   you want all pixels to be combined, pass 0xff (255) in mask.  */
-#ifndef PNG_HAVE_MMX_COMBINE_ROW
+ * row.  This routine takes care of alpha and transparency if requested.
+ * This routine also handles the two methods of progressive display
+ * of interlaced images, depending on the mask value.
+ * The mask value describes which pixels are to be combined with
+ * the row.  The pattern always repeats every 8 pixels, so just 8
+ * bits are needed.  A one indicates the pixel is to be combined,
+ * a zero indicates the pixel is to be skipped.  This is in addition
+ * to any alpha or transparency value associated with the pixel.  If
+ * you want all pixels to be combined, pass 0xff (255) in mask.
+ */
+
 void /* PRIVATE */
 png_combine_row(png_structp png_ptr, png_bytep row, int mask)
 {
-   png_debug(1,"in png_combine_row\n");
+   png_debug(1, "in png_combine_row");
+
+   /* Added in 1.5.4: the row_info should match the information returned by any
+    * call to png_read_update_info at this point.  Do not continue if we got
+    * this wrong.
+    */
+   if (png_ptr->info_rowbytes != 0 && png_ptr->info_rowbytes !=
+          PNG_ROWBYTES(png_ptr->row_info.pixel_depth, png_ptr->width))
+      png_error(png_ptr, "internal row size calculation error");
+
    if (mask == 0xff)
    {
       png_memcpy(row, png_ptr->row_buf + 1,
-         PNG_ROWBYTES(png_ptr->row_info.pixel_depth, png_ptr->width));
+          PNG_ROWBYTES(png_ptr->row_info.pixel_depth, png_ptr->width));
    }
+
    else
    {
       switch (png_ptr->row_info.pixel_depth)
@@ -2307,13 +2740,14 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
             png_uint_32 i;
             png_uint_32 row_width = png_ptr->width;
 
-#if defined(PNG_READ_PACKSWAP_SUPPORTED)
+#ifdef PNG_READ_PACKSWAP_SUPPORTED
             if (png_ptr->transformations & PNG_PACKSWAP)
             {
                 s_start = 0;
                 s_end = 7;
                 s_inc = 1;
             }
+
             else
 #endif
             {
@@ -2341,16 +2775,19 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
                   sp++;
                   dp++;
                }
+
                else
                   shift += s_inc;
 
                if (m == 1)
                   m = 0x80;
+
                else
                   m >>= 1;
             }
             break;
          }
+
          case 2:
          {
             png_bytep sp = png_ptr->row_buf + 1;
@@ -2362,13 +2799,14 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
             png_uint_32 row_width = png_ptr->width;
             int value;
 
-#if defined(PNG_READ_PACKSWAP_SUPPORTED)
+#ifdef PNG_READ_PACKSWAP_SUPPORTED
             if (png_ptr->transformations & PNG_PACKSWAP)
             {
                s_start = 0;
                s_end = 6;
                s_inc = 2;
             }
+
             else
 #endif
             {
@@ -2394,15 +2832,19 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
                   sp++;
                   dp++;
                }
+
                else
                   shift += s_inc;
+
                if (m == 1)
                   m = 0x80;
+
                else
                   m >>= 1;
             }
             break;
          }
+
          case 4:
          {
             png_bytep sp = png_ptr->row_buf + 1;
@@ -2414,13 +2856,14 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
             png_uint_32 row_width = png_ptr->width;
             int value;
 
-#if defined(PNG_READ_PACKSWAP_SUPPORTED)
+#ifdef PNG_READ_PACKSWAP_SUPPORTED
             if (png_ptr->transformations & PNG_PACKSWAP)
             {
                s_start = 0;
                s_end = 4;
                s_inc = 4;
             }
+
             else
 #endif
             {
@@ -2445,15 +2888,19 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
                   sp++;
                   dp++;
                }
+
                else
                   shift += s_inc;
+
                if (m == 1)
                   m = 0x80;
+
                else
                   m >>= 1;
             }
             break;
          }
+
          default:
          {
             png_bytep sp = png_ptr->row_buf + 1;
@@ -2463,7 +2910,6 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
             png_uint_32 row_width = png_ptr->width;
             png_byte m = 0x80;
 
-
             for (i = 0; i < row_width; i++)
             {
                if (m & mask)
@@ -2476,6 +2922,7 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
 
                if (m == 1)
                   m = 0x80;
+
                else
                   m >>= 1;
             }
@@ -2484,14 +2931,8 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
       }
    }
 }
-#endif /* !PNG_HAVE_MMX_COMBINE_ROW */
 
 #ifdef PNG_READ_INTERLACING_SUPPORTED
-#ifndef PNG_HAVE_MMX_READ_INTERLACE   /* else in pngvcrd.c, pnggccrd.c */
-/* OLD pre-1.0.9 interface:
-void png_do_read_interlace(png_row_infop row_info, png_bytep row, int pass,
-   png_uint_32 transformations)
- */
 void /* PRIVATE */
 png_do_read_interlace(png_structp png_ptr)
 {
@@ -2499,13 +2940,11 @@ png_do_read_interlace(png_structp png_ptr)
    png_bytep row = png_ptr->row_buf + 1;
    int pass = png_ptr->pass;
    png_uint_32 transformations = png_ptr->transformations;
-#ifdef PNG_USE_LOCAL_ARRAYS
-   /* arrays to facilitate easy interlacing - use pass (0 - 6) as index */
-   /* offset to next interlace block */
-   const int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1};
-#endif
+   /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */
+   /* Offset to next interlace block */
+   PNG_CONST int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1};
 
-   png_debug(1,"in png_do_read_interlace (stock C version)\n");
+   png_debug(1, "in png_do_read_interlace");
    if (row != NULL && row_info != NULL)
    {
       png_uint_32 final_width;
@@ -2525,7 +2964,7 @@ png_do_read_interlace(png_structp png_ptr)
             png_uint_32 i;
             int j;
 
-#if defined(PNG_READ_PACKSWAP_SUPPORTED)
+#ifdef PNG_READ_PACKSWAP_SUPPORTED
             if (transformations & PNG_PACKSWAP)
             {
                 sshift = (int)((row_info->width + 7) & 0x07);
@@ -2534,6 +2973,7 @@ png_do_read_interlace(png_structp png_ptr)
                 s_end = 0;
                 s_inc = -1;
             }
+
             else
 #endif
             {
@@ -2551,24 +2991,29 @@ png_do_read_interlace(png_structp png_ptr)
                {
                   *dp &= (png_byte)((0x7f7f >> (7 - dshift)) & 0xff);
                   *dp |= (png_byte)(v << dshift);
+
                   if (dshift == s_end)
                   {
                      dshift = s_start;
                      dp--;
                   }
+
                   else
                      dshift += s_inc;
                }
+
                if (sshift == s_end)
                {
                   sshift = s_start;
                   sp--;
                }
+
                else
                   sshift += s_inc;
             }
             break;
          }
+
          case 2:
          {
             png_bytep sp = row + (png_uint_32)((row_info->width - 1) >> 2);
@@ -2578,7 +3023,7 @@ png_do_read_interlace(png_structp png_ptr)
             int jstop = png_pass_inc[pass];
             png_uint_32 i;
 
-#if defined(PNG_READ_PACKSWAP_SUPPORTED)
+#ifdef PNG_READ_PACKSWAP_SUPPORTED
             if (transformations & PNG_PACKSWAP)
             {
                sshift = (int)(((row_info->width + 3) & 0x03) << 1);
@@ -2587,6 +3032,7 @@ png_do_read_interlace(png_structp png_ptr)
                s_end = 0;
                s_inc = -2;
             }
+
             else
 #endif
             {
@@ -2607,24 +3053,29 @@ png_do_read_interlace(png_structp png_ptr)
                {
                   *dp &= (png_byte)((0x3f3f >> (6 - dshift)) & 0xff);
                   *dp |= (png_byte)(v << dshift);
+
                   if (dshift == s_end)
                   {
                      dshift = s_start;
                      dp--;
                   }
+
                   else
                      dshift += s_inc;
                }
+
                if (sshift == s_end)
                {
                   sshift = s_start;
                   sp--;
                }
+
                else
                   sshift += s_inc;
             }
             break;
          }
+
          case 4:
          {
             png_bytep sp = row + (png_size_t)((row_info->width - 1) >> 1);
@@ -2634,7 +3085,7 @@ png_do_read_interlace(png_structp png_ptr)
             png_uint_32 i;
             int jstop = png_pass_inc[pass];
 
-#if defined(PNG_READ_PACKSWAP_SUPPORTED)
+#ifdef PNG_READ_PACKSWAP_SUPPORTED
             if (transformations & PNG_PACKSWAP)
             {
                sshift = (int)(((row_info->width + 1) & 0x01) << 2);
@@ -2643,6 +3094,7 @@ png_do_read_interlace(png_structp png_ptr)
                s_end = 0;
                s_inc = -4;
             }
+
             else
 #endif
             {
@@ -2662,19 +3114,23 @@ png_do_read_interlace(png_structp png_ptr)
                {
                   *dp &= (png_byte)((0xf0f >> (4 - dshift)) & 0xff);
                   *dp |= (png_byte)(v << dshift);
+
                   if (dshift == s_end)
                   {
                      dshift = s_start;
                      dp--;
                   }
+
                   else
                      dshift += s_inc;
                }
+
                if (sshift == s_end)
                {
                   sshift = s_start;
                   sp--;
                }
+
                else
                   sshift += s_inc;
             }
@@ -2683,7 +3139,10 @@ png_do_read_interlace(png_structp png_ptr)
          default:
          {
             png_size_t pixel_bytes = (row_info->pixel_depth >> 3);
-            png_bytep sp = row + (png_size_t)(row_info->width - 1) * pixel_bytes;
+
+            png_bytep sp = row + (png_size_t)(row_info->width - 1)
+                * pixel_bytes;
+
             png_bytep dp = row + (png_size_t)(final_width - 1) * pixel_bytes;
 
             int jstop = png_pass_inc[pass];
@@ -2695,43 +3154,43 @@ png_do_read_interlace(png_structp png_ptr)
                int j;
 
                png_memcpy(v, sp, pixel_bytes);
+
                for (j = 0; j < jstop; j++)
                {
                   png_memcpy(dp, v, pixel_bytes);
                   dp -= pixel_bytes;
                }
+
                sp -= pixel_bytes;
             }
             break;
          }
       }
       row_info->width = final_width;
-      row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth,final_width);
+      row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, final_width);
    }
-#if !defined(PNG_READ_PACKSWAP_SUPPORTED)
-   if (&transformations == NULL) /* silence compiler warning */
-      return;
+#ifndef PNG_READ_PACKSWAP_SUPPORTED
+   PNG_UNUSED(transformations)  /* Silence compiler warning */
 #endif
 }
-#endif /* !PNG_HAVE_MMX_READ_INTERLACE */
 #endif /* PNG_READ_INTERLACING_SUPPORTED */
 
-#ifndef PNG_HAVE_MMX_READ_FILTER_ROW
 void /* PRIVATE */
 png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep row,
-   png_bytep prev_row, int filter)
+    png_const_bytep prev_row, int filter)
 {
-   png_debug(1, "in png_read_filter_row\n");
-   png_debug2(2,"row = %lu, filter = %d\n", png_ptr->row_number, filter);
+   png_debug(1, "in png_read_filter_row");
+   png_debug2(2, "row = %u, filter = %d", png_ptr->row_number, filter);
    switch (filter)
    {
       case PNG_FILTER_VALUE_NONE:
          break;
+
       case PNG_FILTER_VALUE_SUB:
       {
-         png_uint_32 i;
-         png_uint_32 istop = row_info->rowbytes;
-         png_uint_32 bpp = (row_info->pixel_depth + 7) >> 3;
+         png_size_t i;
+         png_size_t istop = row_info->rowbytes;
+         unsigned int bpp = (row_info->pixel_depth + 7) >> 3;
          png_bytep rp = row + bpp;
          png_bytep lp = row;
 
@@ -2744,10 +3203,10 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep row,
       }
       case PNG_FILTER_VALUE_UP:
       {
-         png_uint_32 i;
-         png_uint_32 istop = row_info->rowbytes;
+         png_size_t i;
+         png_size_t istop = row_info->rowbytes;
          png_bytep rp = row;
-         png_bytep pp = prev_row;
+         png_const_bytep pp = prev_row;
 
          for (i = 0; i < istop; i++)
          {
@@ -2758,37 +3217,39 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep row,
       }
       case PNG_FILTER_VALUE_AVG:
       {
-         png_uint_32 i;
+         png_size_t i;
          png_bytep rp = row;
-         png_bytep pp = prev_row;
+         png_const_bytep pp = prev_row;
          png_bytep lp = row;
-         png_uint_32 bpp = (row_info->pixel_depth + 7) >> 3;
-         png_uint_32 istop = row_info->rowbytes - bpp;
+         unsigned int bpp = (row_info->pixel_depth + 7) >> 3;
+         png_size_t istop = row_info->rowbytes - bpp;
 
          for (i = 0; i < bpp; i++)
          {
             *rp = (png_byte)(((int)(*rp) +
-               ((int)(*pp++) / 2 )) & 0xff);
+                ((int)(*pp++) / 2 )) & 0xff);
+
             rp++;
          }
 
          for (i = 0; i < istop; i++)
          {
             *rp = (png_byte)(((int)(*rp) +
-               (int)(*pp++ + *lp++) / 2 ) & 0xff);
+                (int)(*pp++ + *lp++) / 2 ) & 0xff);
+
             rp++;
          }
          break;
       }
       case PNG_FILTER_VALUE_PAETH:
       {
-         png_uint_32 i;
+         png_size_t i;
          png_bytep rp = row;
-         png_bytep pp = prev_row;
+         png_const_bytep pp = prev_row;
          png_bytep lp = row;
-         png_bytep cp = prev_row;
-         png_uint_32 bpp = (row_info->pixel_depth + 7) >> 3;
-         png_uint_32 istop=row_info->rowbytes - bpp;
+         png_const_bytep cp = prev_row;
+         unsigned int bpp = (row_info->pixel_depth + 7) >> 3;
+         png_size_t istop=row_info->rowbytes - bpp;
 
          for (i = 0; i < bpp; i++)
          {
@@ -2796,7 +3257,7 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep row,
             rp++;
          }
 
-         for (i = 0; i < istop; i++)   /* use leftover rp,pp */
+         for (i = 0; i < istop; i++)   /* Use leftover rp,pp */
          {
             int a, b, c, pa, pb, pc, p;
 
@@ -2820,13 +3281,15 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep row,
             /*
                if (pa <= pb && pa <= pc)
                   p = a;
+
                else if (pb <= pc)
                   p = b;
+
                else
                   p = c;
              */
 
-            p = (pa <= pb && pa <=pc) ? a : (pb <= pc) ? b : c;
+            p = (pa <= pb && pa <= pc) ? a : (pb <= pc) ? b : c;
 
             *rp = (png_byte)(((int)(*rp) + p) & 0xff);
             rp++;
@@ -2834,123 +3297,125 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep row,
          break;
       }
       default:
-         png_warning(png_ptr, "Ignoring bad adaptive filter type");
-         *row=0;
+         png_error(png_ptr, "Ignoring bad adaptive filter type");
+         /*NOT REACHED */
          break;
    }
 }
-#endif /* !PNG_HAVE_MMX_READ_FILTER_ROW */
 
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
 void /* PRIVATE */
 png_read_finish_row(png_structp png_ptr)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
-   /* arrays to facilitate easy interlacing - use pass (0 - 6) as index */
+#ifdef PNG_READ_INTERLACING_SUPPORTED
+   /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */
 
-   /* start of interlace block */
-   const int png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0};
+   /* Start of interlace block */
+   PNG_CONST int png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0};
 
-   /* offset to next interlace block */
-   const int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1};
+   /* Offset to next interlace block */
+   PNG_CONST int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1};
 
-   /* start of interlace block in the y direction */
-   const int png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1};
+   /* Start of interlace block in the y direction */
+   PNG_CONST int png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1};
 
-   /* offset to next interlace block in the y direction */
-   const int png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2};
-#endif
+   /* Offset to next interlace block in the y direction */
+   PNG_CONST int png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2};
+#endif /* PNG_READ_INTERLACING_SUPPORTED */
 
-   png_debug(1, "in png_read_finish_row\n");
+   png_debug(1, "in png_read_finish_row");
    png_ptr->row_number++;
    if (png_ptr->row_number < png_ptr->num_rows)
       return;
 
+#ifdef PNG_READ_INTERLACING_SUPPORTED
    if (png_ptr->interlaced)
    {
       png_ptr->row_number = 0;
-      png_memset_check(png_ptr, png_ptr->prev_row, 0, png_ptr->rowbytes + 1);
+
+      png_memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1);
+
       do
       {
          png_ptr->pass++;
+
          if (png_ptr->pass >= 7)
             break;
+
          png_ptr->iwidth = (png_ptr->width +
             png_pass_inc[png_ptr->pass] - 1 -
             png_pass_start[png_ptr->pass]) /
             png_pass_inc[png_ptr->pass];
 
-         png_ptr->irowbytes = PNG_ROWBYTES(png_ptr->pixel_depth,
-            png_ptr->iwidth) + 1;
-
          if (!(png_ptr->transformations & PNG_INTERLACE))
          {
             png_ptr->num_rows = (png_ptr->height +
-               png_pass_yinc[png_ptr->pass] - 1 -
-               png_pass_ystart[png_ptr->pass]) /
-               png_pass_yinc[png_ptr->pass];
-            if (!(png_ptr->num_rows))
-               continue;
+                png_pass_yinc[png_ptr->pass] - 1 -
+                png_pass_ystart[png_ptr->pass]) /
+                png_pass_yinc[png_ptr->pass];
          }
+
          else  /* if (png_ptr->transformations & PNG_INTERLACE) */
-            break;
-      } while (png_ptr->iwidth == 0);
+            break; /* libpng deinterlacing sees every row */
+
+      } while (png_ptr->num_rows == 0 || png_ptr->iwidth == 0);
 
       if (png_ptr->pass < 7)
          return;
    }
+#endif /* PNG_READ_INTERLACING_SUPPORTED */
 
    if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
    {
-#ifdef PNG_USE_LOCAL_ARRAYS
       PNG_IDAT;
-#endif
       char extra;
       int ret;
 
       png_ptr->zstream.next_out = (Byte *)&extra;
       png_ptr->zstream.avail_out = (uInt)1;
-      for(;;)
+
+      for (;;)
       {
          if (!(png_ptr->zstream.avail_in))
          {
             while (!png_ptr->idat_size)
             {
-               png_byte chunk_length[4];
-
                png_crc_finish(png_ptr, 0);
-
-               png_read_data(png_ptr, chunk_length, 4);
-               png_ptr->idat_size = png_get_uint_31(png_ptr, chunk_length);
-               png_reset_crc(png_ptr);
-               png_crc_read(png_ptr, png_ptr->chunk_name, 4);
-               if (png_memcmp(png_ptr->chunk_name, (png_bytep)png_IDAT, 4))
+               png_ptr->idat_size = png_read_chunk_header(png_ptr);
+               if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
                   png_error(png_ptr, "Not enough image data");
-
             }
+
             png_ptr->zstream.avail_in = (uInt)png_ptr->zbuf_size;
             png_ptr->zstream.next_in = png_ptr->zbuf;
+
             if (png_ptr->zbuf_size > png_ptr->idat_size)
                png_ptr->zstream.avail_in = (uInt)png_ptr->idat_size;
+
             png_crc_read(png_ptr, png_ptr->zbuf, png_ptr->zstream.avail_in);
             png_ptr->idat_size -= png_ptr->zstream.avail_in;
          }
+
          ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH);
+
          if (ret == Z_STREAM_END)
          {
             if (!(png_ptr->zstream.avail_out) || png_ptr->zstream.avail_in ||
-               png_ptr->idat_size)
+                png_ptr->idat_size)
                png_warning(png_ptr, "Extra compressed data");
+
             png_ptr->mode |= PNG_AFTER_IDAT;
             png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
             break;
          }
+
          if (ret != Z_OK)
             png_error(png_ptr, png_ptr->zstream.msg ? png_ptr->zstream.msg :
-                      "Decompression Error");
+                "Decompression Error");
 
          if (!(png_ptr->zstream.avail_out))
          {
-            png_warning(png_ptr, "Extra compressed data.");
+            png_warning(png_ptr, "Extra compressed data");
             png_ptr->mode |= PNG_AFTER_IDAT;
             png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
             break;
@@ -2967,81 +3432,86 @@ png_read_finish_row(png_structp png_ptr)
 
    png_ptr->mode |= PNG_AFTER_IDAT;
 }
+#endif /* PNG_SEQUENTIAL_READ_SUPPORTED */
 
 void /* PRIVATE */
 png_read_start_row(png_structp png_ptr)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
-   /* arrays to facilitate easy interlacing - use pass (0 - 6) as index */
+#ifdef PNG_READ_INTERLACING_SUPPORTED
+   /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */
 
-   /* start of interlace block */
-   const int png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0};
+   /* Start of interlace block */
+   PNG_CONST int png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0};
 
-   /* offset to next interlace block */
-   const int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1};
+   /* Offset to next interlace block */
+   PNG_CONST int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1};
 
-   /* start of interlace block in the y direction */
-   const int png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1};
+   /* Start of interlace block in the y direction */
+   PNG_CONST int png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1};
 
-   /* offset to next interlace block in the y direction */
-   const int png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2};
+   /* Offset to next interlace block in the y direction */
+   PNG_CONST int png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2};
 #endif
 
    int max_pixel_depth;
-   png_uint_32 row_bytes;
+   png_size_t row_bytes;
 
-   png_debug(1, "in png_read_start_row\n");
+   png_debug(1, "in png_read_start_row");
    png_ptr->zstream.avail_in = 0;
+#ifdef PNG_READ_TRANSFORMS_SUPPORTED
    png_init_read_transformations(png_ptr);
+#endif
+#ifdef PNG_READ_INTERLACING_SUPPORTED
    if (png_ptr->interlaced)
    {
       if (!(png_ptr->transformations & PNG_INTERLACE))
          png_ptr->num_rows = (png_ptr->height + png_pass_yinc[0] - 1 -
-            png_pass_ystart[0]) / png_pass_yinc[0];
+             png_pass_ystart[0]) / png_pass_yinc[0];
+
       else
          png_ptr->num_rows = png_ptr->height;
 
       png_ptr->iwidth = (png_ptr->width +
-         png_pass_inc[png_ptr->pass] - 1 -
-         png_pass_start[png_ptr->pass]) /
-         png_pass_inc[png_ptr->pass];
-
-         row_bytes = PNG_ROWBYTES(png_ptr->pixel_depth,png_ptr->iwidth) + 1;
-
-         png_ptr->irowbytes = (png_size_t)row_bytes;
-         if((png_uint_32)png_ptr->irowbytes != row_bytes)
-            png_error(png_ptr, "Rowbytes overflow in png_read_start_row");
+          png_pass_inc[png_ptr->pass] - 1 -
+          png_pass_start[png_ptr->pass]) /
+          png_pass_inc[png_ptr->pass];
    }
+
    else
+#endif /* PNG_READ_INTERLACING_SUPPORTED */
    {
       png_ptr->num_rows = png_ptr->height;
       png_ptr->iwidth = png_ptr->width;
-      png_ptr->irowbytes = png_ptr->rowbytes + 1;
    }
+
    max_pixel_depth = png_ptr->pixel_depth;
 
-#if defined(PNG_READ_PACK_SUPPORTED)
+#ifdef PNG_READ_PACK_SUPPORTED
    if ((png_ptr->transformations & PNG_PACK) && png_ptr->bit_depth < 8)
       max_pixel_depth = 8;
 #endif
 
-#if defined(PNG_READ_EXPAND_SUPPORTED)
+#ifdef PNG_READ_EXPAND_SUPPORTED
    if (png_ptr->transformations & PNG_EXPAND)
    {
       if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
       {
          if (png_ptr->num_trans)
             max_pixel_depth = 32;
+
          else
             max_pixel_depth = 24;
       }
+
       else if (png_ptr->color_type == PNG_COLOR_TYPE_GRAY)
       {
          if (max_pixel_depth < 8)
             max_pixel_depth = 8;
+
          if (png_ptr->num_trans)
             max_pixel_depth *= 2;
       }
+
       else if (png_ptr->color_type == PNG_COLOR_TYPE_RGB)
       {
          if (png_ptr->num_trans)
@@ -3053,56 +3523,83 @@ png_read_start_row(png_structp png_ptr)
    }
 #endif
 
-#if defined(PNG_READ_FILLER_SUPPORTED)
+#ifdef PNG_READ_EXPAND_16_SUPPORTED
+   if (png_ptr->transformations & PNG_EXPAND_16)
+   {
+#     ifdef PNG_READ_EXPAND_SUPPORTED
+         /* In fact it is an error if it isn't supported, but checking is
+          * the safe way.
+          */
+         if (png_ptr->transformations & PNG_EXPAND)
+         {
+            if (png_ptr->bit_depth < 16)
+               max_pixel_depth *= 2;
+         }
+         else
+#     endif
+         png_ptr->transformations &= ~PNG_EXPAND_16;
+   }
+#endif
+
+#ifdef PNG_READ_FILLER_SUPPORTED
    if (png_ptr->transformations & (PNG_FILLER))
    {
       if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
          max_pixel_depth = 32;
+
       else if (png_ptr->color_type == PNG_COLOR_TYPE_GRAY)
       {
          if (max_pixel_depth <= 8)
             max_pixel_depth = 16;
+
          else
             max_pixel_depth = 32;
       }
+
       else if (png_ptr->color_type == PNG_COLOR_TYPE_RGB)
       {
          if (max_pixel_depth <= 32)
             max_pixel_depth = 32;
+
          else
             max_pixel_depth = 64;
       }
    }
 #endif
 
-#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
+#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
    if (png_ptr->transformations & PNG_GRAY_TO_RGB)
    {
       if (
-#if defined(PNG_READ_EXPAND_SUPPORTED)
-        (png_ptr->num_trans && (png_ptr->transformations & PNG_EXPAND)) ||
+#ifdef PNG_READ_EXPAND_SUPPORTED
+          (png_ptr->num_trans && (png_ptr->transformations & PNG_EXPAND)) ||
 #endif
-#if defined(PNG_READ_FILLER_SUPPORTED)
-        (png_ptr->transformations & (PNG_FILLER)) ||
+#ifdef PNG_READ_FILLER_SUPPORTED
+          (png_ptr->transformations & (PNG_FILLER)) ||
 #endif
-        png_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+          png_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
       {
          if (max_pixel_depth <= 16)
             max_pixel_depth = 32;
+
          else
             max_pixel_depth = 64;
       }
+
       else
       {
          if (max_pixel_depth <= 8)
-           {
-             if (png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
+         {
+            if (png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
                max_pixel_depth = 32;
-             else
+
+            else
                max_pixel_depth = 24;
-           }
+         }
+
          else if (png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
             max_pixel_depth = 64;
+
          else
             max_pixel_depth = 48;
       }
@@ -3111,49 +3608,86 @@ png_read_start_row(png_structp png_ptr)
 
 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) && \
 defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
-   if(png_ptr->transformations & PNG_USER_TRANSFORM)
-     {
-       int user_pixel_depth=png_ptr->user_transform_depth*
+   if (png_ptr->transformations & PNG_USER_TRANSFORM)
+   {
+      int user_pixel_depth = png_ptr->user_transform_depth*
          png_ptr->user_transform_channels;
-       if(user_pixel_depth > max_pixel_depth)
+
+      if (user_pixel_depth > max_pixel_depth)
          max_pixel_depth=user_pixel_depth;
-     }
+   }
 #endif
 
-   /* align the width on the next larger 8 pixels.  Mainly used
-      for interlacing */
+   /* Align the width on the next larger 8 pixels.  Mainly used
+    * for interlacing
+    */
    row_bytes = ((png_ptr->width + 7) & ~((png_uint_32)7));
-   /* calculate the maximum bytes needed, adding a byte and a pixel
-      for safety's sake */
-   row_bytes = PNG_ROWBYTES(max_pixel_depth,row_bytes) +
-      1 + ((max_pixel_depth + 7) >> 3);
+   /* Calculate the maximum bytes needed, adding a byte and a pixel
+    * for safety's sake
+    */
+   row_bytes = PNG_ROWBYTES(max_pixel_depth, row_bytes) +
+       1 + ((max_pixel_depth + 7) >> 3);
+
 #ifdef PNG_MAX_MALLOC_64K
    if (row_bytes > (png_uint_32)65536L)
       png_error(png_ptr, "This image requires a row greater than 64KB");
 #endif
-   png_ptr->big_row_buf = (png_bytep)png_malloc(png_ptr, row_bytes+64);
-   png_ptr->row_buf = png_ptr->big_row_buf+32;
-#if defined(PNG_DEBUG) && defined(PNG_USE_PNGGCCRD)
-   png_ptr->row_buf_size = row_bytes;
+
+   if (row_bytes + 48 > png_ptr->old_big_row_buf_size)
+   {
+     png_free(png_ptr, png_ptr->big_row_buf);
+
+     if (png_ptr->interlaced)
+        png_ptr->big_row_buf = (png_bytep)png_calloc(png_ptr,
+            row_bytes + 48);
+
+     else
+        png_ptr->big_row_buf = (png_bytep)png_malloc(png_ptr,
+            row_bytes + 48);
+
+     png_ptr->old_big_row_buf_size = row_bytes + 48;
+
+#ifdef PNG_ALIGNED_MEMORY_SUPPORTED
+     /* Use 16-byte aligned memory for row_buf with at least 16 bytes
+      * of padding before and after row_buf.
+      */
+     png_ptr->row_buf = png_ptr->big_row_buf + 32 -
+         (((png_alloc_size_t)png_ptr->big_row_buf + 15) & 0x0F);
+
+     png_ptr->old_big_row_buf_size = row_bytes + 48;
+#else
+     /* Use 32 bytes of padding before and 16 bytes after row_buf. */
+     png_ptr->row_buf = png_ptr->big_row_buf + 32;
 #endif
+     png_ptr->old_big_row_buf_size = row_bytes + 48;
+   }
 
 #ifdef PNG_MAX_MALLOC_64K
-   if ((png_uint_32)png_ptr->rowbytes + 1 > (png_uint_32)65536L)
+   if (png_ptr->rowbytes > 65535)
       png_error(png_ptr, "This image requires a row greater than 64KB");
+
 #endif
-   if ((png_uint_32)png_ptr->rowbytes > (png_uint_32)(PNG_SIZE_MAX - 1))
-      png_error(png_ptr, "Row has too many bytes to allocate in memory.");
-   png_ptr->prev_row = (png_bytep)png_malloc(png_ptr, (png_uint_32)(
-      png_ptr->rowbytes + 1));
+   if (png_ptr->rowbytes > (PNG_SIZE_MAX - 1))
+      png_error(png_ptr, "Row has too many bytes to allocate in memory");
+
+   if (png_ptr->rowbytes + 1 > png_ptr->old_prev_row_size)
+   {
+      png_free(png_ptr, png_ptr->prev_row);
+
+      png_ptr->prev_row = (png_bytep)png_malloc(png_ptr, png_ptr->rowbytes + 1);
+
+      png_ptr->old_prev_row_size = png_ptr->rowbytes + 1;
+   }
 
-   png_memset_check(png_ptr, png_ptr->prev_row, 0, png_ptr->rowbytes + 1);
+   png_memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1);
 
-   png_debug1(3, "width = %lu,\n", png_ptr->width);
-   png_debug1(3, "height = %lu,\n", png_ptr->height);
-   png_debug1(3, "iwidth = %lu,\n", png_ptr->iwidth);
-   png_debug1(3, "num_rows = %lu\n", png_ptr->num_rows);
-   png_debug1(3, "rowbytes = %lu,\n", png_ptr->rowbytes);
-   png_debug1(3, "irowbytes = %lu,\n", png_ptr->irowbytes);
+   png_debug1(3, "width = %u,", png_ptr->width);
+   png_debug1(3, "height = %u,", png_ptr->height);
+   png_debug1(3, "iwidth = %u,", png_ptr->iwidth);
+   png_debug1(3, "num_rows = %u,", png_ptr->num_rows);
+   png_debug1(3, "rowbytes = %lu,", (unsigned long)png_ptr->rowbytes);
+   png_debug1(3, "irowbytes = %lu",
+       (unsigned long)PNG_ROWBYTES(png_ptr->pixel_depth, png_ptr->iwidth) + 1);
 
    png_ptr->flags |= PNG_FLAG_ROW_INIT;
 }
diff --git a/jdk/src/share/native/sun/awt/libpng/pngset.c b/jdk/src/share/native/sun/awt/libpng/pngset.c
index edeffd5..e4f675c 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngset.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngset.c
@@ -29,28 +29,32 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.17 May 15, 2007
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ *
  * The functions here are used during reads to store data from the file
  * into the info struct, and during writes to store application data
  * into the info struct for writing into the file.  This abstracts the
  * info struct and allows us to change the structure in the future.
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
 
 #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
 
-#if defined(PNG_bKGD_SUPPORTED)
+#ifdef PNG_bKGD_SUPPORTED
 void PNGAPI
-png_set_bKGD(png_structp png_ptr, png_infop info_ptr, png_color_16p background)
+png_set_bKGD(png_structp png_ptr, png_infop info_ptr,
+    png_const_color_16p background)
 {
-   png_debug1(1, "in %s storage function\n", "bKGD");
+   png_debug1(1, "in %s storage function", "bKGD");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
@@ -59,345 +63,192 @@ png_set_bKGD(png_structp png_ptr, png_infop info_ptr, png_color_16p background)
 }
 #endif
 
-#if defined(PNG_cHRM_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-void PNGAPI
-png_set_cHRM(png_structp png_ptr, png_infop info_ptr,
-   double white_x, double white_y, double red_x, double red_y,
-   double green_x, double green_y, double blue_x, double blue_y)
-{
-   png_debug1(1, "in %s storage function\n", "cHRM");
-   if (png_ptr == NULL || info_ptr == NULL)
-      return;
-
-   if (white_x < 0.0 || white_y < 0.0 ||
-         red_x < 0.0 ||   red_y < 0.0 ||
-       green_x < 0.0 || green_y < 0.0 ||
-        blue_x < 0.0 ||  blue_y < 0.0)
-   {
-      png_warning(png_ptr,
-        "Ignoring attempt to set negative chromaticity value");
-      return;
-   }
-   if (white_x > 21474.83 || white_y > 21474.83 ||
-         red_x > 21474.83 ||   red_y > 21474.83 ||
-       green_x > 21474.83 || green_y > 21474.83 ||
-        blue_x > 21474.83 ||  blue_y > 21474.83)
-   {
-      png_warning(png_ptr,
-        "Ignoring attempt to set chromaticity value exceeding 21474.83");
-      return;
-   }
-
-   info_ptr->x_white = (float)white_x;
-   info_ptr->y_white = (float)white_y;
-   info_ptr->x_red   = (float)red_x;
-   info_ptr->y_red   = (float)red_y;
-   info_ptr->x_green = (float)green_x;
-   info_ptr->y_green = (float)green_y;
-   info_ptr->x_blue  = (float)blue_x;
-   info_ptr->y_blue  = (float)blue_y;
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   info_ptr->int_x_white = (png_fixed_point)(white_x*100000.+0.5);
-   info_ptr->int_y_white = (png_fixed_point)(white_y*100000.+0.5);
-   info_ptr->int_x_red   = (png_fixed_point)(  red_x*100000.+0.5);
-   info_ptr->int_y_red   = (png_fixed_point)(  red_y*100000.+0.5);
-   info_ptr->int_x_green = (png_fixed_point)(green_x*100000.+0.5);
-   info_ptr->int_y_green = (png_fixed_point)(green_y*100000.+0.5);
-   info_ptr->int_x_blue  = (png_fixed_point)( blue_x*100000.+0.5);
-   info_ptr->int_y_blue  = (png_fixed_point)( blue_y*100000.+0.5);
-#endif
-   info_ptr->valid |= PNG_INFO_cHRM;
-}
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
-void PNGAPI
+#ifdef PNG_cHRM_SUPPORTED
+void PNGFAPI
 png_set_cHRM_fixed(png_structp png_ptr, png_infop info_ptr,
-   png_fixed_point white_x, png_fixed_point white_y, png_fixed_point red_x,
-   png_fixed_point red_y, png_fixed_point green_x, png_fixed_point green_y,
-   png_fixed_point blue_x, png_fixed_point blue_y)
+    png_fixed_point white_x, png_fixed_point white_y, png_fixed_point red_x,
+    png_fixed_point red_y, png_fixed_point green_x, png_fixed_point green_y,
+    png_fixed_point blue_x, png_fixed_point blue_y)
 {
-   png_debug1(1, "in %s storage function\n", "cHRM");
+   png_debug1(1, "in %s storage function", "cHRM fixed");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
-   if (white_x < 0 || white_y < 0 ||
-         red_x < 0 ||   red_y < 0 ||
-       green_x < 0 || green_y < 0 ||
-        blue_x < 0 ||  blue_y < 0)
+#  ifdef PNG_CHECK_cHRM_SUPPORTED
+   if (png_check_cHRM_fixed(png_ptr,
+       white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y))
+#  endif
    {
-      png_warning(png_ptr,
-        "Ignoring attempt to set negative chromaticity value");
-      return;
+      info_ptr->x_white = white_x;
+      info_ptr->y_white = white_y;
+      info_ptr->x_red   = red_x;
+      info_ptr->y_red   = red_y;
+      info_ptr->x_green = green_x;
+      info_ptr->y_green = green_y;
+      info_ptr->x_blue  = blue_x;
+      info_ptr->y_blue  = blue_y;
+      info_ptr->valid |= PNG_INFO_cHRM;
    }
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   if (white_x > (double) PNG_UINT_31_MAX ||
-       white_y > (double) PNG_UINT_31_MAX ||
-         red_x > (double) PNG_UINT_31_MAX ||
-         red_y > (double) PNG_UINT_31_MAX ||
-       green_x > (double) PNG_UINT_31_MAX ||
-       green_y > (double) PNG_UINT_31_MAX ||
-        blue_x > (double) PNG_UINT_31_MAX ||
-        blue_y > (double) PNG_UINT_31_MAX)
-#else
-   if (white_x > (png_fixed_point) PNG_UINT_31_MAX/100000L ||
-       white_y > (png_fixed_point) PNG_UINT_31_MAX/100000L ||
-         red_x > (png_fixed_point) PNG_UINT_31_MAX/100000L ||
-         red_y > (png_fixed_point) PNG_UINT_31_MAX/100000L ||
-       green_x > (png_fixed_point) PNG_UINT_31_MAX/100000L ||
-       green_y > (png_fixed_point) PNG_UINT_31_MAX/100000L ||
-        blue_x > (png_fixed_point) PNG_UINT_31_MAX/100000L ||
-        blue_y > (png_fixed_point) PNG_UINT_31_MAX/100000L)
-#endif
-   {
-      png_warning(png_ptr,
-        "Ignoring attempt to set chromaticity value exceeding 21474.83");
-      return;
-   }
-   info_ptr->int_x_white = white_x;
-   info_ptr->int_y_white = white_y;
-   info_ptr->int_x_red   = red_x;
-   info_ptr->int_y_red   = red_y;
-   info_ptr->int_x_green = green_x;
-   info_ptr->int_y_green = green_y;
-   info_ptr->int_x_blue  = blue_x;
-   info_ptr->int_y_blue  = blue_y;
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   info_ptr->x_white = (float)(white_x/100000.);
-   info_ptr->y_white = (float)(white_y/100000.);
-   info_ptr->x_red   = (float)(  red_x/100000.);
-   info_ptr->y_red   = (float)(  red_y/100000.);
-   info_ptr->x_green = (float)(green_x/100000.);
-   info_ptr->y_green = (float)(green_y/100000.);
-   info_ptr->x_blue  = (float)( blue_x/100000.);
-   info_ptr->y_blue  = (float)( blue_y/100000.);
-#endif
-   info_ptr->valid |= PNG_INFO_cHRM;
 }
-#endif
-#endif
 
-#if defined(PNG_gAMA_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
 void PNGAPI
-png_set_gAMA(png_structp png_ptr, png_infop info_ptr, double file_gamma)
+png_set_cHRM(png_structp png_ptr, png_infop info_ptr,
+    double white_x, double white_y, double red_x, double red_y,
+    double green_x, double green_y, double blue_x, double blue_y)
 {
-   double gamma;
-   png_debug1(1, "in %s storage function\n", "gAMA");
-   if (png_ptr == NULL || info_ptr == NULL)
-      return;
-
-   /* Check for overflow */
-   if (file_gamma > 21474.83)
-   {
-      png_warning(png_ptr, "Limiting gamma to 21474.83");
-      gamma=21474.83;
-   }
-   else
-      gamma=file_gamma;
-   info_ptr->gamma = (float)gamma;
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   info_ptr->int_gamma = (int)(gamma*100000.+.5);
-#endif
-   info_ptr->valid |= PNG_INFO_gAMA;
-   if(gamma == 0.0)
-      png_warning(png_ptr, "Setting gamma=0");
+   png_set_cHRM_fixed(png_ptr, info_ptr,
+      png_fixed(png_ptr, white_x, "cHRM White X"),
+      png_fixed(png_ptr, white_y, "cHRM White Y"),
+      png_fixed(png_ptr, red_x, "cHRM Red X"),
+      png_fixed(png_ptr, red_y, "cHRM Red Y"),
+      png_fixed(png_ptr, green_x, "cHRM Green X"),
+      png_fixed(png_ptr, green_y, "cHRM Green Y"),
+      png_fixed(png_ptr, blue_x, "cHRM Blue X"),
+      png_fixed(png_ptr, blue_y, "cHRM Blue Y"));
 }
-#endif
-void PNGAPI
+#  endif /* PNG_FLOATING_POINT_SUPPORTED */
+
+#endif /* PNG_cHRM_SUPPORTED */
+
+#ifdef PNG_gAMA_SUPPORTED
+void PNGFAPI
 png_set_gAMA_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point
-   int_gamma)
+    file_gamma)
 {
-   png_fixed_point gamma;
+   png_debug1(1, "in %s storage function", "gAMA");
 
-   png_debug1(1, "in %s storage function\n", "gAMA");
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
-   if (int_gamma > (png_fixed_point) PNG_UINT_31_MAX)
-   {
-     png_warning(png_ptr, "Limiting gamma to 21474.83");
-     gamma=PNG_UINT_31_MAX;
-   }
+   /* Changed in libpng-1.5.4 to limit the values to ensure overflow can't
+    * occur.  Since the fixed point representation is assymetrical it is
+    * possible for 1/gamma to overflow the limit of 21474 and this means the
+    * gamma value must be at least 5/100000 and hence at most 20000.0.  For
+    * safety the limits here are a little narrower.  The values are 0.00016 to
+    * 6250.0, which are truely ridiculous gammma values (and will produce
+    * displays that are all black or all white.)
+    */
+   if (file_gamma < 16 || file_gamma > 625000000)
+      png_warning(png_ptr, "Out of range gamma value ignored");
+
    else
    {
-     if (int_gamma < 0)
-     {
-       png_warning(png_ptr, "Setting negative gamma to zero");
-       gamma=0;
-     }
-     else
-       gamma=int_gamma;
+      info_ptr->gamma = file_gamma;
+      info_ptr->valid |= PNG_INFO_gAMA;
    }
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   info_ptr->gamma = (float)(gamma/100000.);
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   info_ptr->int_gamma = gamma;
-#endif
-   info_ptr->valid |= PNG_INFO_gAMA;
-   if(gamma == 0)
-      png_warning(png_ptr, "Setting gamma=0");
 }
+
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
+void PNGAPI
+png_set_gAMA(png_structp png_ptr, png_infop info_ptr, double file_gamma)
+{
+   png_set_gAMA_fixed(png_ptr, info_ptr, png_fixed(png_ptr, file_gamma,
+       "png_set_gAMA"));
+}
+#  endif
 #endif
 
-#if defined(PNG_hIST_SUPPORTED)
+#ifdef PNG_hIST_SUPPORTED
 void PNGAPI
-png_set_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p hist)
+png_set_hIST(png_structp png_ptr, png_infop info_ptr, png_const_uint_16p hist)
 {
    int i;
 
-   png_debug1(1, "in %s storage function\n", "hIST");
+   png_debug1(1, "in %s storage function", "hIST");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
-   if (info_ptr->num_palette <= 0 || info_ptr->num_palette
+
+   if (info_ptr->num_palette == 0 || info_ptr->num_palette
        > PNG_MAX_PALETTE_LENGTH)
    {
-       png_warning(png_ptr,
-          "Invalid palette size, hIST allocation skipped.");
-       return;
+      png_warning(png_ptr,
+          "Invalid palette size, hIST allocation skipped");
+
+      return;
    }
 
-#ifdef PNG_FREE_ME_SUPPORTED
    png_free_data(png_ptr, info_ptr, PNG_FREE_HIST, 0);
-#endif
-   /* Changed from info->num_palette to PNG_MAX_PALETTE_LENGTH in version
-      1.2.1 */
+
+   /* Changed from info->num_palette to PNG_MAX_PALETTE_LENGTH in
+    * version 1.2.1
+    */
    png_ptr->hist = (png_uint_16p)png_malloc_warn(png_ptr,
-      (png_uint_32)(PNG_MAX_PALETTE_LENGTH * png_sizeof (png_uint_16)));
+       PNG_MAX_PALETTE_LENGTH * png_sizeof(png_uint_16));
+
    if (png_ptr->hist == NULL)
-     {
-       png_warning(png_ptr, "Insufficient memory for hIST chunk data.");
-       return;
-     }
+   {
+      png_warning(png_ptr, "Insufficient memory for hIST chunk data");
+      return;
+   }
 
    for (i = 0; i < info_ptr->num_palette; i++)
-       png_ptr->hist[i] = hist[i];
+      png_ptr->hist[i] = hist[i];
+
    info_ptr->hist = png_ptr->hist;
    info_ptr->valid |= PNG_INFO_hIST;
-
-#ifdef PNG_FREE_ME_SUPPORTED
    info_ptr->free_me |= PNG_FREE_HIST;
-#else
-   png_ptr->flags |= PNG_FLAG_FREE_HIST;
-#endif
 }
 #endif
 
 void PNGAPI
 png_set_IHDR(png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 width, png_uint_32 height, int bit_depth,
-   int color_type, int interlace_type, int compression_type,
-   int filter_type)
+    png_uint_32 width, png_uint_32 height, int bit_depth,
+    int color_type, int interlace_type, int compression_type,
+    int filter_type)
 {
-   png_debug1(1, "in %s storage function\n", "IHDR");
+   png_debug1(1, "in %s storage function", "IHDR");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
-   /* check for width and height valid values */
-   if (width == 0 || height == 0)
-      png_error(png_ptr, "Image width or height is zero in IHDR");
-#ifdef PNG_SET_USER_LIMITS_SUPPORTED
-   if (width > png_ptr->user_width_max || height > png_ptr->user_height_max)
-      png_error(png_ptr, "image size exceeds user limits in IHDR");
-#else
-   if (width > PNG_USER_WIDTH_MAX || height > PNG_USER_HEIGHT_MAX)
-      png_error(png_ptr, "image size exceeds user limits in IHDR");
-#endif
-   if (width > PNG_UINT_31_MAX || height > PNG_UINT_31_MAX)
-      png_error(png_ptr, "Invalid image size in IHDR");
-   if ( width > (PNG_UINT_32_MAX
-                 >> 3)      /* 8-byte RGBA pixels */
-                 - 64       /* bigrowbuf hack */
-                 - 1        /* filter byte */
-                 - 7*8      /* rounding of width to multiple of 8 pixels */
-                 - 8)       /* extra max_pixel_depth pad */
-      png_warning(png_ptr, "Width is too large for libpng to process pixels");
-
-   /* check other values */
-   if (bit_depth != 1 && bit_depth != 2 && bit_depth != 4 &&
-      bit_depth != 8 && bit_depth != 16)
-      png_error(png_ptr, "Invalid bit depth in IHDR");
-
-   if (color_type < 0 || color_type == 1 ||
-      color_type == 5 || color_type > 6)
-      png_error(png_ptr, "Invalid color type in IHDR");
-
-   if (((color_type == PNG_COLOR_TYPE_PALETTE) && bit_depth > 8) ||
-       ((color_type == PNG_COLOR_TYPE_RGB ||
-         color_type == PNG_COLOR_TYPE_GRAY_ALPHA ||
-         color_type == PNG_COLOR_TYPE_RGB_ALPHA) && bit_depth < 8))
-      png_error(png_ptr, "Invalid color type/bit depth combination in IHDR");
-
-   if (interlace_type >= PNG_INTERLACE_LAST)
-      png_error(png_ptr, "Unknown interlace method in IHDR");
-
-   if (compression_type != PNG_COMPRESSION_TYPE_BASE)
-      png_error(png_ptr, "Unknown compression method in IHDR");
-
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
-   /* Accept filter_method 64 (intrapixel differencing) only if
-    * 1. Libpng was compiled with PNG_MNG_FEATURES_SUPPORTED and
-    * 2. Libpng did not read a PNG signature (this filter_method is only
-    *    used in PNG datastreams that are embedded in MNG datastreams) and
-    * 3. The application called png_permit_mng_features with a mask that
-    *    included PNG_FLAG_MNG_FILTER_64 and
-    * 4. The filter_method is 64 and
-    * 5. The color_type is RGB or RGBA
-    */
-   if((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE)&&png_ptr->mng_features_permitted)
-      png_warning(png_ptr,"MNG features are not allowed in a PNG datastream");
-   if(filter_type != PNG_FILTER_TYPE_BASE)
-   {
-     if(!((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
-        (filter_type == PNG_INTRAPIXEL_DIFFERENCING) &&
-        ((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE) == 0) &&
-        (color_type == PNG_COLOR_TYPE_RGB ||
-         color_type == PNG_COLOR_TYPE_RGB_ALPHA)))
-        png_error(png_ptr, "Unknown filter method in IHDR");
-     if(png_ptr->mode&PNG_HAVE_PNG_SIGNATURE)
-        png_warning(png_ptr, "Invalid filter method in IHDR");
-   }
-#else
-   if(filter_type != PNG_FILTER_TYPE_BASE)
-      png_error(png_ptr, "Unknown filter method in IHDR");
-#endif
-
    info_ptr->width = width;
    info_ptr->height = height;
    info_ptr->bit_depth = (png_byte)bit_depth;
-   info_ptr->color_type =(png_byte) color_type;
+   info_ptr->color_type = (png_byte)color_type;
    info_ptr->compression_type = (png_byte)compression_type;
    info_ptr->filter_type = (png_byte)filter_type;
    info_ptr->interlace_type = (png_byte)interlace_type;
+
+   png_check_IHDR (png_ptr, info_ptr->width, info_ptr->height,
+       info_ptr->bit_depth, info_ptr->color_type, info_ptr->interlace_type,
+       info_ptr->compression_type, info_ptr->filter_type);
+
    if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
       info_ptr->channels = 1;
+
    else if (info_ptr->color_type & PNG_COLOR_MASK_COLOR)
       info_ptr->channels = 3;
+
    else
       info_ptr->channels = 1;
+
    if (info_ptr->color_type & PNG_COLOR_MASK_ALPHA)
       info_ptr->channels++;
+
    info_ptr->pixel_depth = (png_byte)(info_ptr->channels * info_ptr->bit_depth);
 
-   /* check for potential overflow */
-   if ( width > (PNG_UINT_32_MAX
-                 >> 3)      /* 8-byte RGBA pixels */
-                 - 64       /* bigrowbuf hack */
-                 - 1        /* filter byte */
-                 - 7*8      /* rounding of width to multiple of 8 pixels */
-                 - 8)       /* extra max_pixel_depth pad */
-      info_ptr->rowbytes = (png_size_t)0;
+   /* Check for potential overflow */
+   if (width >
+       (PNG_UINT_32_MAX >> 3)      /* 8-byte RRGGBBAA pixels */
+       - 48       /* bigrowbuf hack */
+       - 1        /* filter byte */
+       - 7*8      /* rounding of width to multiple of 8 pixels */
+       - 8)       /* extra max_pixel_depth pad */
+      info_ptr->rowbytes = 0;
    else
-      info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth,width);
+      info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, width);
 }
 
-#if defined(PNG_oFFs_SUPPORTED)
+#ifdef PNG_oFFs_SUPPORTED
 void PNGAPI
 png_set_oFFs(png_structp png_ptr, png_infop info_ptr,
-   png_int_32 offset_x, png_int_32 offset_y, int unit_type)
+    png_int_32 offset_x, png_int_32 offset_y, int unit_type)
 {
-   png_debug1(1, "in %s storage function\n", "oFFs");
+   png_debug1(1, "in %s storage function", "oFFs");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
@@ -408,139 +259,227 @@ png_set_oFFs(png_structp png_ptr, png_infop info_ptr,
 }
 #endif
 
-#if defined(PNG_pCAL_SUPPORTED)
+#ifdef PNG_pCAL_SUPPORTED
 void PNGAPI
 png_set_pCAL(png_structp png_ptr, png_infop info_ptr,
-   png_charp purpose, png_int_32 X0, png_int_32 X1, int type, int nparams,
-   png_charp units, png_charpp params)
+    png_const_charp purpose, png_int_32 X0, png_int_32 X1, int type,
+    int nparams, png_const_charp units, png_charpp params)
 {
-   png_uint_32 length;
+   png_size_t length;
    int i;
 
-   png_debug1(1, "in %s storage function\n", "pCAL");
+   png_debug1(1, "in %s storage function", "pCAL");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
    length = png_strlen(purpose) + 1;
-   png_debug1(3, "allocating purpose for info (%lu bytes)\n", length);
+   png_debug1(3, "allocating purpose for info (%lu bytes)",
+       (unsigned long)length);
+
+   /* TODO: validate format of calibration name and unit name */
+
+   /* Check that the type matches the specification. */
+   if (type < 0 || type > 3)
+      png_error(png_ptr, "Invalid pCAL equation type");
+
+   /* Validate params[nparams] */
+   for (i=0; i<nparams; ++i)
+      if (!png_check_fp_string(params[i], png_strlen(params[i])))
+         png_error(png_ptr, "Invalid format for pCAL parameter");
+
    info_ptr->pcal_purpose = (png_charp)png_malloc_warn(png_ptr, length);
+
    if (info_ptr->pcal_purpose == NULL)
-     {
-       png_warning(png_ptr, "Insufficient memory for pCAL purpose.");
-       return;
-     }
-   png_memcpy(info_ptr->pcal_purpose, purpose, (png_size_t)length);
+   {
+      png_warning(png_ptr, "Insufficient memory for pCAL purpose");
+      return;
+   }
+
+   png_memcpy(info_ptr->pcal_purpose, purpose, length);
 
-   png_debug(3, "storing X0, X1, type, and nparams in info\n");
+   png_debug(3, "storing X0, X1, type, and nparams in info");
    info_ptr->pcal_X0 = X0;
    info_ptr->pcal_X1 = X1;
    info_ptr->pcal_type = (png_byte)type;
    info_ptr->pcal_nparams = (png_byte)nparams;
 
    length = png_strlen(units) + 1;
-   png_debug1(3, "allocating units for info (%lu bytes)\n", length);
+   png_debug1(3, "allocating units for info (%lu bytes)",
+     (unsigned long)length);
+
    info_ptr->pcal_units = (png_charp)png_malloc_warn(png_ptr, length);
+
    if (info_ptr->pcal_units == NULL)
-     {
-       png_warning(png_ptr, "Insufficient memory for pCAL units.");
-       return;
-     }
-   png_memcpy(info_ptr->pcal_units, units, (png_size_t)length);
+   {
+      png_warning(png_ptr, "Insufficient memory for pCAL units");
+      return;
+   }
+
+   png_memcpy(info_ptr->pcal_units, units, length);
 
    info_ptr->pcal_params = (png_charpp)png_malloc_warn(png_ptr,
-      (png_uint_32)((nparams + 1) * png_sizeof(png_charp)));
+       (png_size_t)((nparams + 1) * png_sizeof(png_charp)));
+
    if (info_ptr->pcal_params == NULL)
-     {
-       png_warning(png_ptr, "Insufficient memory for pCAL params.");
-       return;
-     }
+   {
+      png_warning(png_ptr, "Insufficient memory for pCAL params");
+      return;
+   }
 
-   info_ptr->pcal_params[nparams] = NULL;
+   png_memset(info_ptr->pcal_params, 0, (nparams + 1) * png_sizeof(png_charp));
 
    for (i = 0; i < nparams; i++)
    {
       length = png_strlen(params[i]) + 1;
-      png_debug2(3, "allocating parameter %d for info (%lu bytes)\n", i, length);
+      png_debug2(3, "allocating parameter %d for info (%lu bytes)", i,
+          (unsigned long)length);
+
       info_ptr->pcal_params[i] = (png_charp)png_malloc_warn(png_ptr, length);
+
       if (info_ptr->pcal_params[i] == NULL)
-        {
-          png_warning(png_ptr, "Insufficient memory for pCAL parameter.");
-          return;
-        }
-      png_memcpy(info_ptr->pcal_params[i], params[i], (png_size_t)length);
+      {
+         png_warning(png_ptr, "Insufficient memory for pCAL parameter");
+         return;
+      }
+
+      png_memcpy(info_ptr->pcal_params[i], params[i], length);
    }
 
    info_ptr->valid |= PNG_INFO_pCAL;
-#ifdef PNG_FREE_ME_SUPPORTED
    info_ptr->free_me |= PNG_FREE_PCAL;
-#endif
 }
 #endif
 
-#if defined(PNG_READ_sCAL_SUPPORTED) || defined(PNG_WRITE_sCAL_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
+#ifdef PNG_sCAL_SUPPORTED
 void PNGAPI
-png_set_sCAL(png_structp png_ptr, png_infop info_ptr,
-             int unit, double width, double height)
+png_set_sCAL_s(png_structp png_ptr, png_infop info_ptr,
+    int unit, png_const_charp swidth, png_const_charp sheight)
 {
-   png_debug1(1, "in %s storage function\n", "sCAL");
+   png_size_t lengthw = 0, lengthh = 0;
+
+   png_debug1(1, "in %s storage function", "sCAL");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
-   info_ptr->scal_unit = (png_byte)unit;
-   info_ptr->scal_pixel_width = width;
-   info_ptr->scal_pixel_height = height;
+   /* Double check the unit (should never get here with an invalid
+    * unit unless this is an API call.)
+    */
+   if (unit != 1 && unit != 2)
+      png_error(png_ptr, "Invalid sCAL unit");
 
-   info_ptr->valid |= PNG_INFO_sCAL;
-}
-#else
-#ifdef PNG_FIXED_POINT_SUPPORTED
-void PNGAPI
-png_set_sCAL_s(png_structp png_ptr, png_infop info_ptr,
-             int unit, png_charp swidth, png_charp sheight)
-{
-   png_uint_32 length;
+   if (swidth == NULL || (lengthw = png_strlen(swidth)) == 0 ||
+       swidth[0] == 45 /* '-' */ || !png_check_fp_string(swidth, lengthw))
+      png_error(png_ptr, "Invalid sCAL width");
 
-   png_debug1(1, "in %s storage function\n", "sCAL");
-   if (png_ptr == NULL || info_ptr == NULL)
-      return;
+   if (sheight == NULL || (lengthh = png_strlen(sheight)) == 0 ||
+       sheight[0] == 45 /* '-' */ || !png_check_fp_string(sheight, lengthh))
+      png_error(png_ptr, "Invalid sCAL height");
 
    info_ptr->scal_unit = (png_byte)unit;
 
-   length = png_strlen(swidth) + 1;
-   png_debug1(3, "allocating unit for info (%d bytes)\n", length);
-   info_ptr->scal_s_width = (png_charp)png_malloc_warn(png_ptr, length);
+   ++lengthw;
+
+   png_debug1(3, "allocating unit for info (%u bytes)", (unsigned int)lengthw);
+
+   info_ptr->scal_s_width = (png_charp)png_malloc_warn(png_ptr, lengthw);
+
    if (info_ptr->scal_s_width == NULL)
    {
-      png_warning(png_ptr, "Memory allocation failed while processing sCAL.");
+      png_warning(png_ptr, "Memory allocation failed while processing sCAL");
+      return;
    }
-   png_memcpy(info_ptr->scal_s_width, swidth, (png_size_t)length);
 
-   length = png_strlen(sheight) + 1;
-   png_debug1(3, "allocating unit for info (%d bytes)\n", length);
-   info_ptr->scal_s_height = (png_charp)png_malloc_warn(png_ptr, length);
+   png_memcpy(info_ptr->scal_s_width, swidth, lengthw);
+
+   ++lengthh;
+
+   png_debug1(3, "allocating unit for info (%u bytes)", (unsigned int)lengthh);
+
+   info_ptr->scal_s_height = (png_charp)png_malloc_warn(png_ptr, lengthh);
+
    if (info_ptr->scal_s_height == NULL)
    {
       png_free (png_ptr, info_ptr->scal_s_width);
-      png_warning(png_ptr, "Memory allocation failed while processing sCAL.");
+      info_ptr->scal_s_width = NULL;
+
+      png_warning(png_ptr, "Memory allocation failed while processing sCAL");
+      return;
    }
-   png_memcpy(info_ptr->scal_s_height, sheight, (png_size_t)length);
+
+   png_memcpy(info_ptr->scal_s_height, sheight, lengthh);
 
    info_ptr->valid |= PNG_INFO_sCAL;
-#ifdef PNG_FREE_ME_SUPPORTED
    info_ptr->free_me |= PNG_FREE_SCAL;
-#endif
 }
-#endif
-#endif
+
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
+void PNGAPI
+png_set_sCAL(png_structp png_ptr, png_infop info_ptr, int unit, double width,
+    double height)
+{
+   png_debug1(1, "in %s storage function", "sCAL");
+
+   /* Check the arguments. */
+   if (width <= 0)
+      png_warning(png_ptr, "Invalid sCAL width ignored");
+
+   else if (height <= 0)
+      png_warning(png_ptr, "Invalid sCAL height ignored");
+
+   else
+   {
+      /* Convert 'width' and 'height' to ASCII. */
+      char swidth[PNG_sCAL_MAX_DIGITS+1];
+      char sheight[PNG_sCAL_MAX_DIGITS+1];
+
+      png_ascii_from_fp(png_ptr, swidth, sizeof swidth, width,
+         PNG_sCAL_PRECISION);
+      png_ascii_from_fp(png_ptr, sheight, sizeof sheight, height,
+         PNG_sCAL_PRECISION);
+
+      png_set_sCAL_s(png_ptr, info_ptr, unit, swidth, sheight);
+   }
+}
+#  endif
+
+#  ifdef PNG_FIXED_POINT_SUPPORTED
+void PNGAPI
+png_set_sCAL_fixed(png_structp png_ptr, png_infop info_ptr, int unit,
+    png_fixed_point width, png_fixed_point height)
+{
+   png_debug1(1, "in %s storage function", "sCAL");
+
+   /* Check the arguments. */
+   if (width <= 0)
+      png_warning(png_ptr, "Invalid sCAL width ignored");
+
+   else if (height <= 0)
+      png_warning(png_ptr, "Invalid sCAL height ignored");
+
+   else
+   {
+      /* Convert 'width' and 'height' to ASCII. */
+      char swidth[PNG_sCAL_MAX_DIGITS+1];
+      char sheight[PNG_sCAL_MAX_DIGITS+1];
+
+      png_ascii_from_fixed(png_ptr, swidth, sizeof swidth, width);
+      png_ascii_from_fixed(png_ptr, sheight, sizeof sheight, height);
+
+      png_set_sCAL_s(png_ptr, info_ptr, unit, swidth, sheight);
+   }
+}
+#  endif
 #endif
 
-#if defined(PNG_pHYs_SUPPORTED)
+#ifdef PNG_pHYs_SUPPORTED
 void PNGAPI
 png_set_pHYs(png_structp png_ptr, png_infop info_ptr,
-   png_uint_32 res_x, png_uint_32 res_y, int unit_type)
+    png_uint_32 res_x, png_uint_32 res_y, int unit_type)
 {
-   png_debug1(1, "in %s storage function\n", "pHYs");
+   png_debug1(1, "in %s storage function", "pHYs");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
@@ -553,177 +492,139 @@ png_set_pHYs(png_structp png_ptr, png_infop info_ptr,
 
 void PNGAPI
 png_set_PLTE(png_structp png_ptr, png_infop info_ptr,
-   png_colorp palette, int num_palette)
+    png_const_colorp palette, int num_palette)
 {
 
-   png_debug1(1, "in %s storage function\n", "PLTE");
+   png_debug1(1, "in %s storage function", "PLTE");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
    if (num_palette < 0 || num_palette > PNG_MAX_PALETTE_LENGTH)
-     {
-       if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
+   {
+      if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
          png_error(png_ptr, "Invalid palette length");
-       else
-       {
+
+      else
+      {
          png_warning(png_ptr, "Invalid palette length");
          return;
-       }
-     }
+      }
+   }
 
-   /*
-    * It may not actually be necessary to set png_ptr->palette here;
+   /* It may not actually be necessary to set png_ptr->palette here;
     * we do it for backward compatibility with the way the png_handle_tRNS
     * function used to do the allocation.
     */
-#ifdef PNG_FREE_ME_SUPPORTED
    png_free_data(png_ptr, info_ptr, PNG_FREE_PLTE, 0);
-#endif
 
    /* Changed in libpng-1.2.1 to allocate PNG_MAX_PALETTE_LENGTH instead
-      of num_palette entries,
-      in case of an invalid PNG file that has too-large sample values. */
-   png_ptr->palette = (png_colorp)png_malloc(png_ptr,
-      PNG_MAX_PALETTE_LENGTH * png_sizeof(png_color));
-   png_memset(png_ptr->palette, 0, PNG_MAX_PALETTE_LENGTH *
-      png_sizeof(png_color));
-   png_memcpy(png_ptr->palette, palette, num_palette * png_sizeof (png_color));
+    * of num_palette entries, in case of an invalid PNG file that has
+    * too-large sample values.
+    */
+   png_ptr->palette = (png_colorp)png_calloc(png_ptr,
+       PNG_MAX_PALETTE_LENGTH * png_sizeof(png_color));
+
+   png_memcpy(png_ptr->palette, palette, num_palette * png_sizeof(png_color));
    info_ptr->palette = png_ptr->palette;
    info_ptr->num_palette = png_ptr->num_palette = (png_uint_16)num_palette;
 
-#ifdef PNG_FREE_ME_SUPPORTED
    info_ptr->free_me |= PNG_FREE_PLTE;
-#else
-   png_ptr->flags |= PNG_FLAG_FREE_PLTE;
-#endif
 
    info_ptr->valid |= PNG_INFO_PLTE;
 }
 
-#if defined(PNG_sBIT_SUPPORTED)
+#ifdef PNG_sBIT_SUPPORTED
 void PNGAPI
 png_set_sBIT(png_structp png_ptr, png_infop info_ptr,
-   png_color_8p sig_bit)
+    png_const_color_8p sig_bit)
 {
-   png_debug1(1, "in %s storage function\n", "sBIT");
+   png_debug1(1, "in %s storage function", "sBIT");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
-   png_memcpy(&(info_ptr->sig_bit), sig_bit, png_sizeof (png_color_8));
+   png_memcpy(&(info_ptr->sig_bit), sig_bit, png_sizeof(png_color_8));
    info_ptr->valid |= PNG_INFO_sBIT;
 }
 #endif
 
-#if defined(PNG_sRGB_SUPPORTED)
+#ifdef PNG_sRGB_SUPPORTED
 void PNGAPI
-png_set_sRGB(png_structp png_ptr, png_infop info_ptr, int intent)
+png_set_sRGB(png_structp png_ptr, png_infop info_ptr, int srgb_intent)
 {
-   png_debug1(1, "in %s storage function\n", "sRGB");
+   png_debug1(1, "in %s storage function", "sRGB");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
-   info_ptr->srgb_intent = (png_byte)intent;
+   info_ptr->srgb_intent = (png_byte)srgb_intent;
    info_ptr->valid |= PNG_INFO_sRGB;
 }
 
 void PNGAPI
 png_set_sRGB_gAMA_and_cHRM(png_structp png_ptr, png_infop info_ptr,
-   int intent)
+    int srgb_intent)
 {
-#if defined(PNG_gAMA_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   float file_gamma;
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   png_fixed_point int_file_gamma;
-#endif
-#endif
-#if defined(PNG_cHRM_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   float white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y;
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   png_fixed_point int_white_x, int_white_y, int_red_x, int_red_y, int_green_x,
-      int_green_y, int_blue_x, int_blue_y;
-#endif
-#endif
-   png_debug1(1, "in %s storage function\n", "sRGB_gAMA_and_cHRM");
+   png_debug1(1, "in %s storage function", "sRGB_gAMA_and_cHRM");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
-   png_set_sRGB(png_ptr, info_ptr, intent);
-
-#if defined(PNG_gAMA_SUPPORTED)
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   file_gamma = (float).45455;
-   png_set_gAMA(png_ptr, info_ptr, file_gamma);
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   int_file_gamma = 45455L;
-   png_set_gAMA_fixed(png_ptr, info_ptr, int_file_gamma);
-#endif
-#endif
+   png_set_sRGB(png_ptr, info_ptr, srgb_intent);
 
-#if defined(PNG_cHRM_SUPPORTED)
-#ifdef PNG_FIXED_POINT_SUPPORTED
-   int_white_x = 31270L;
-   int_white_y = 32900L;
-   int_red_x   = 64000L;
-   int_red_y   = 33000L;
-   int_green_x = 30000L;
-   int_green_y = 60000L;
-   int_blue_x  = 15000L;
-   int_blue_y  =  6000L;
+#  ifdef PNG_gAMA_SUPPORTED
+   png_set_gAMA_fixed(png_ptr, info_ptr, PNG_GAMMA_sRGB_INVERSE);
+#  endif
 
+#  ifdef PNG_cHRM_SUPPORTED
    png_set_cHRM_fixed(png_ptr, info_ptr,
-      int_white_x, int_white_y, int_red_x, int_red_y, int_green_x, int_green_y,
-      int_blue_x, int_blue_y);
-#endif
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-   white_x = (float).3127;
-   white_y = (float).3290;
-   red_x   = (float).64;
-   red_y   = (float).33;
-   green_x = (float).30;
-   green_y = (float).60;
-   blue_x  = (float).15;
-   blue_y  = (float).06;
-
-   png_set_cHRM(png_ptr, info_ptr,
-      white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y);
-#endif
-#endif
+      /* color      x       y */
+      /* white */ 31270L, 32900L,
+      /* red   */ 64000L, 33000L,
+      /* green */ 30000L, 60000L,
+      /* blue  */ 15000L,  6000L
+   );
+#  endif /* cHRM */
 }
-#endif
+#endif /* sRGB */
 
 
-#if defined(PNG_iCCP_SUPPORTED)
+#ifdef PNG_iCCP_SUPPORTED
 void PNGAPI
 png_set_iCCP(png_structp png_ptr, png_infop info_ptr,
-             png_charp name, int compression_type,
-             png_charp profile, png_uint_32 proflen)
+    png_const_charp name, int compression_type,
+    png_const_bytep profile, png_uint_32 proflen)
 {
    png_charp new_iccp_name;
-   png_charp new_iccp_profile;
+   png_bytep new_iccp_profile;
+   png_uint_32 length;
+
+   png_debug1(1, "in %s storage function", "iCCP");
 
-   png_debug1(1, "in %s storage function\n", "iCCP");
    if (png_ptr == NULL || info_ptr == NULL || name == NULL || profile == NULL)
       return;
 
-   new_iccp_name = (png_charp)png_malloc_warn(png_ptr, png_strlen(name)+1);
+   length = png_strlen(name)+1;
+   new_iccp_name = (png_charp)png_malloc_warn(png_ptr, length);
+
    if (new_iccp_name == NULL)
    {
-      png_warning(png_ptr, "Insufficient memory to process iCCP chunk.");
+        png_warning(png_ptr, "Insufficient memory to process iCCP chunk");
       return;
    }
-   png_strcpy(new_iccp_name, name);
-   new_iccp_profile = (png_charp)png_malloc_warn(png_ptr, proflen);
+
+   png_memcpy(new_iccp_name, name, length);
+   new_iccp_profile = (png_bytep)png_malloc_warn(png_ptr, proflen);
+
    if (new_iccp_profile == NULL)
    {
       png_free (png_ptr, new_iccp_name);
-      png_warning(png_ptr, "Insufficient memory to process iCCP profile.");
+      png_warning(png_ptr,
+          "Insufficient memory to process iCCP profile");
       return;
    }
+
    png_memcpy(new_iccp_profile, profile, (png_size_t)proflen);
 
    png_free_data(png_ptr, info_ptr, PNG_FREE_ICCP, 0);
@@ -732,34 +633,35 @@ png_set_iCCP(png_structp png_ptr, png_infop info_ptr,
    info_ptr->iccp_name = new_iccp_name;
    info_ptr->iccp_profile = new_iccp_profile;
    /* Compression is always zero but is here so the API and info structure
-    * does not have to change if we introduce multiple compression types */
+    * does not have to change if we introduce multiple compression types
+    */
    info_ptr->iccp_compression = (png_byte)compression_type;
-#ifdef PNG_FREE_ME_SUPPORTED
    info_ptr->free_me |= PNG_FREE_ICCP;
-#endif
    info_ptr->valid |= PNG_INFO_iCCP;
 }
 #endif
 
-#if defined(PNG_TEXT_SUPPORTED)
+#ifdef PNG_TEXT_SUPPORTED
 void PNGAPI
-png_set_text(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr,
-   int num_text)
+png_set_text(png_structp png_ptr, png_infop info_ptr, png_const_textp text_ptr,
+    int num_text)
 {
    int ret;
-   ret=png_set_text_2(png_ptr, info_ptr, text_ptr, num_text);
+   ret = png_set_text_2(png_ptr, info_ptr, text_ptr, num_text);
+
    if (ret)
-     png_error(png_ptr, "Insufficient memory to store text");
+      png_error(png_ptr, "Insufficient memory to store text");
 }
 
 int /* PRIVATE */
-png_set_text_2(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr,
-   int num_text)
+png_set_text_2(png_structp png_ptr, png_infop info_ptr,
+    png_const_textp text_ptr, int num_text)
 {
    int i;
 
-   png_debug1(1, "in %s storage function\n", (png_ptr->chunk_name[0] == '\0' ?
-      "text" : (png_const_charp)png_ptr->chunk_name));
+   png_debug1(1, "in %s storage function", ((png_ptr == NULL ||
+       png_ptr->chunk_name[0] == '\0') ?
+       "text" : (png_const_charp)png_ptr->chunk_name));
 
    if (png_ptr == NULL || info_ptr == NULL || num_text == 0)
       return(0);
@@ -778,77 +680,93 @@ png_set_text_2(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr,
          info_ptr->max_text = info_ptr->num_text + num_text + 8;
          old_text = info_ptr->text;
          info_ptr->text = (png_textp)png_malloc_warn(png_ptr,
-            (png_uint_32)(info_ptr->max_text * png_sizeof (png_text)));
+            (png_size_t)(info_ptr->max_text * png_sizeof(png_text)));
+
          if (info_ptr->text == NULL)
-           {
-             png_free(png_ptr, old_text);
-             return(1);
-           }
+         {
+            png_free(png_ptr, old_text);
+            return(1);
+         }
+
          png_memcpy(info_ptr->text, old_text, (png_size_t)(old_max *
-            png_sizeof(png_text)));
+             png_sizeof(png_text)));
          png_free(png_ptr, old_text);
       }
+
       else
       {
          info_ptr->max_text = num_text + 8;
          info_ptr->num_text = 0;
          info_ptr->text = (png_textp)png_malloc_warn(png_ptr,
-            (png_uint_32)(info_ptr->max_text * png_sizeof (png_text)));
+             (png_size_t)(info_ptr->max_text * png_sizeof(png_text)));
          if (info_ptr->text == NULL)
-           return(1);
-#ifdef PNG_FREE_ME_SUPPORTED
+            return(1);
          info_ptr->free_me |= PNG_FREE_TEXT;
-#endif
       }
-      png_debug1(3, "allocated %d entries for info_ptr->text\n",
-         info_ptr->max_text);
+
+      png_debug1(3, "allocated %d entries for info_ptr->text",
+          info_ptr->max_text);
    }
    for (i = 0; i < num_text; i++)
    {
-      png_size_t text_length,key_len;
-      png_size_t lang_len,lang_key_len;
+      png_size_t text_length, key_len;
+      png_size_t lang_len, lang_key_len;
       png_textp textp = &(info_ptr->text[info_ptr->num_text]);
 
       if (text_ptr[i].key == NULL)
           continue;
 
+      if (text_ptr[i].compression < PNG_TEXT_COMPRESSION_NONE ||
+          text_ptr[i].compression >= PNG_TEXT_COMPRESSION_LAST)
+      {
+         png_warning(png_ptr, "text compression mode is out of range");
+         continue;
+      }
+
       key_len = png_strlen(text_ptr[i].key);
 
-      if(text_ptr[i].compression <= 0)
+      if (text_ptr[i].compression <= 0)
       {
-        lang_len = 0;
-        lang_key_len = 0;
+         lang_len = 0;
+         lang_key_len = 0;
       }
+
       else
-#ifdef PNG_iTXt_SUPPORTED
+#  ifdef PNG_iTXt_SUPPORTED
       {
-        /* set iTXt data */
-        if (text_ptr[i].lang != NULL)
-          lang_len = png_strlen(text_ptr[i].lang);
-        else
-          lang_len = 0;
-        if (text_ptr[i].lang_key != NULL)
-          lang_key_len = png_strlen(text_ptr[i].lang_key);
-        else
-          lang_key_len = 0;
+         /* Set iTXt data */
+
+         if (text_ptr[i].lang != NULL)
+            lang_len = png_strlen(text_ptr[i].lang);
+
+         else
+            lang_len = 0;
+
+         if (text_ptr[i].lang_key != NULL)
+            lang_key_len = png_strlen(text_ptr[i].lang_key);
+
+         else
+            lang_key_len = 0;
       }
-#else
+#  else /* PNG_iTXt_SUPPORTED */
       {
-        png_warning(png_ptr, "iTXt chunk not supported.");
-        continue;
+         png_warning(png_ptr, "iTXt chunk not supported");
+         continue;
       }
-#endif
+#  endif
 
       if (text_ptr[i].text == NULL || text_ptr[i].text[0] == '\0')
       {
          text_length = 0;
-#ifdef PNG_iTXt_SUPPORTED
-         if(text_ptr[i].compression > 0)
+#  ifdef PNG_iTXt_SUPPORTED
+         if (text_ptr[i].compression > 0)
             textp->compression = PNG_ITXT_COMPRESSION_NONE;
+
          else
-#endif
+#  endif
             textp->compression = PNG_TEXT_COMPRESSION_NONE;
       }
+
       else
       {
          text_length = png_strlen(text_ptr[i].text);
@@ -856,444 +774,481 @@ png_set_text_2(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr,
       }
 
       textp->key = (png_charp)png_malloc_warn(png_ptr,
-         (png_uint_32)(key_len + text_length + lang_len + lang_key_len + 4));
+          (png_size_t)
+          (key_len + text_length + lang_len + lang_key_len + 4));
+
       if (textp->key == NULL)
-        return(1);
-      png_debug2(2, "Allocated %lu bytes at %x in png_set_text\n",
-         (png_uint_32)(key_len + lang_len + lang_key_len + text_length + 4),
-         (int)textp->key);
-
-      png_memcpy(textp->key, text_ptr[i].key,
-         (png_size_t)(key_len));
-      *(textp->key+key_len) = '\0';
-#ifdef PNG_iTXt_SUPPORTED
+         return(1);
+
+      png_debug2(2, "Allocated %lu bytes at %p in png_set_text",
+          (unsigned long)(png_uint_32)
+          (key_len + lang_len + lang_key_len + text_length + 4),
+          textp->key);
+
+      png_memcpy(textp->key, text_ptr[i].key,(png_size_t)(key_len));
+      *(textp->key + key_len) = '\0';
+
       if (text_ptr[i].compression > 0)
       {
-         textp->lang=textp->key + key_len + 1;
+         textp->lang = textp->key + key_len + 1;
          png_memcpy(textp->lang, text_ptr[i].lang, lang_len);
-         *(textp->lang+lang_len) = '\0';
-         textp->lang_key=textp->lang + lang_len + 1;
+         *(textp->lang + lang_len) = '\0';
+         textp->lang_key = textp->lang + lang_len + 1;
          png_memcpy(textp->lang_key, text_ptr[i].lang_key, lang_key_len);
-         *(textp->lang_key+lang_key_len) = '\0';
-         textp->text=textp->lang_key + lang_key_len + 1;
+         *(textp->lang_key + lang_key_len) = '\0';
+         textp->text = textp->lang_key + lang_key_len + 1;
       }
+
       else
-#endif
       {
-#ifdef PNG_iTXt_SUPPORTED
          textp->lang=NULL;
          textp->lang_key=NULL;
-#endif
-         textp->text=textp->key + key_len + 1;
+         textp->text = textp->key + key_len + 1;
       }
-      if(text_length)
+
+      if (text_length)
          png_memcpy(textp->text, text_ptr[i].text,
-            (png_size_t)(text_length));
-      *(textp->text+text_length) = '\0';
+             (png_size_t)(text_length));
 
-#ifdef PNG_iTXt_SUPPORTED
-      if(textp->compression > 0)
+      *(textp->text + text_length) = '\0';
+
+#  ifdef PNG_iTXt_SUPPORTED
+      if (textp->compression > 0)
       {
          textp->text_length = 0;
          textp->itxt_length = text_length;
       }
+
       else
-#endif
+#  endif
       {
          textp->text_length = text_length;
-#ifdef PNG_iTXt_SUPPORTED
          textp->itxt_length = 0;
-#endif
       }
-#if 0 /* appears to be redundant; */
-      info_ptr->text[info_ptr->num_text]= *textp;
-#endif
+
       info_ptr->num_text++;
-      png_debug1(3, "transferred text chunk %d\n", info_ptr->num_text);
+      png_debug1(3, "transferred text chunk %d", info_ptr->num_text);
    }
    return(0);
 }
 #endif
 
-#if defined(PNG_tIME_SUPPORTED)
+#ifdef PNG_tIME_SUPPORTED
 void PNGAPI
-png_set_tIME(png_structp png_ptr, png_infop info_ptr, png_timep mod_time)
+png_set_tIME(png_structp png_ptr, png_infop info_ptr, png_const_timep mod_time)
 {
-   png_debug1(1, "in %s storage function\n", "tIME");
+   png_debug1(1, "in %s storage function", "tIME");
+
    if (png_ptr == NULL || info_ptr == NULL ||
        (png_ptr->mode & PNG_WROTE_tIME))
       return;
 
-   png_memcpy(&(info_ptr->mod_time), mod_time, png_sizeof (png_time));
+   png_memcpy(&(info_ptr->mod_time), mod_time, png_sizeof(png_time));
    info_ptr->valid |= PNG_INFO_tIME;
 }
 #endif
 
-#if defined(PNG_tRNS_SUPPORTED)
+#ifdef PNG_tRNS_SUPPORTED
 void PNGAPI
 png_set_tRNS(png_structp png_ptr, png_infop info_ptr,
-   png_bytep trans, int num_trans, png_color_16p trans_values)
+    png_const_bytep trans_alpha, int num_trans, png_const_color_16p trans_color)
 {
-   png_debug1(1, "in %s storage function\n", "tRNS");
+   png_debug1(1, "in %s storage function", "tRNS");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
-   if (trans != NULL)
+   if (trans_alpha != NULL)
    {
-       /*
-        * It may not actually be necessary to set png_ptr->trans here;
+       /* It may not actually be necessary to set png_ptr->trans_alpha here;
         * we do it for backward compatibility with the way the png_handle_tRNS
         * function used to do the allocation.
         */
-#ifdef PNG_FREE_ME_SUPPORTED
+
        png_free_data(png_ptr, info_ptr, PNG_FREE_TRNS, 0);
-#endif
+
        /* Changed from num_trans to PNG_MAX_PALETTE_LENGTH in version 1.2.1 */
-       png_ptr->trans = info_ptr->trans = (png_bytep)png_malloc(png_ptr,
-           (png_uint_32)PNG_MAX_PALETTE_LENGTH);
-       if (num_trans <= PNG_MAX_PALETTE_LENGTH)
-         png_memcpy(info_ptr->trans, trans, (png_size_t)num_trans);
-#ifdef PNG_FREE_ME_SUPPORTED
-       info_ptr->free_me |= PNG_FREE_TRNS;
-#else
-       png_ptr->flags |= PNG_FLAG_FREE_TRNS;
-#endif
+       png_ptr->trans_alpha = info_ptr->trans_alpha =
+           (png_bytep)png_malloc(png_ptr, (png_size_t)PNG_MAX_PALETTE_LENGTH);
+
+       if (num_trans > 0 && num_trans <= PNG_MAX_PALETTE_LENGTH)
+          png_memcpy(info_ptr->trans_alpha, trans_alpha, (png_size_t)num_trans);
    }
 
-   if (trans_values != NULL)
+   if (trans_color != NULL)
    {
-      png_memcpy(&(info_ptr->trans_values), trans_values,
+      int sample_max = (1 << info_ptr->bit_depth);
+
+      if ((info_ptr->color_type == PNG_COLOR_TYPE_GRAY &&
+          (int)trans_color->gray > sample_max) ||
+          (info_ptr->color_type == PNG_COLOR_TYPE_RGB &&
+          ((int)trans_color->red > sample_max ||
+          (int)trans_color->green > sample_max ||
+          (int)trans_color->blue > sample_max)))
+         png_warning(png_ptr,
+            "tRNS chunk has out-of-range samples for bit_depth");
+
+      png_memcpy(&(info_ptr->trans_color), trans_color,
          png_sizeof(png_color_16));
+
       if (num_trans == 0)
-        num_trans = 1;
+         num_trans = 1;
    }
+
    info_ptr->num_trans = (png_uint_16)num_trans;
-   info_ptr->valid |= PNG_INFO_tRNS;
+
+   if (num_trans != 0)
+   {
+      info_ptr->valid |= PNG_INFO_tRNS;
+      info_ptr->free_me |= PNG_FREE_TRNS;
+   }
 }
 #endif
 
-#if defined(PNG_sPLT_SUPPORTED)
+#ifdef PNG_sPLT_SUPPORTED
 void PNGAPI
 png_set_sPLT(png_structp png_ptr,
-             png_infop info_ptr, png_sPLT_tp entries, int nentries)
+    png_infop info_ptr, png_const_sPLT_tp entries, int nentries)
+/*
+ *  entries        - array of png_sPLT_t structures
+ *                   to be added to the list of palettes
+ *                   in the info structure.
+ *
+ *  nentries       - number of palette structures to be
+ *                   added.
+ */
 {
-    png_sPLT_tp np;
-    int i;
+   png_sPLT_tp np;
+   int i;
 
-    if (png_ptr == NULL || info_ptr == NULL)
-       return;
+   if (png_ptr == NULL || info_ptr == NULL)
+      return;
 
-    np = (png_sPLT_tp)png_malloc_warn(png_ptr,
-        (info_ptr->splt_palettes_num + nentries) * png_sizeof(png_sPLT_t));
-    if (np == NULL)
-    {
-      png_warning(png_ptr, "No memory for sPLT palettes.");
+   np = (png_sPLT_tp)png_malloc_warn(png_ptr,
+       (info_ptr->splt_palettes_num + nentries) *
+       (png_size_t)png_sizeof(png_sPLT_t));
+
+   if (np == NULL)
+   {
+      png_warning(png_ptr, "No memory for sPLT palettes");
       return;
-    }
+   }
 
-    png_memcpy(np, info_ptr->splt_palettes,
-           info_ptr->splt_palettes_num * png_sizeof(png_sPLT_t));
-    png_free(png_ptr, info_ptr->splt_palettes);
-    info_ptr->splt_palettes=NULL;
+   png_memcpy(np, info_ptr->splt_palettes,
+       info_ptr->splt_palettes_num * png_sizeof(png_sPLT_t));
 
-    for (i = 0; i < nentries; i++)
-    {
-        png_sPLT_tp to = np + info_ptr->splt_palettes_num + i;
-        png_sPLT_tp from = entries + i;
-
-        to->name = (png_charp)png_malloc(png_ptr,
-            png_strlen(from->name) + 1);
-        /* TODO: use png_malloc_warn */
-        png_strcpy(to->name, from->name);
-        to->entries = (png_sPLT_entryp)png_malloc(png_ptr,
-            from->nentries * png_sizeof(png_sPLT_entry));
-        /* TODO: use png_malloc_warn */
-        png_memcpy(to->entries, from->entries,
-            from->nentries * png_sizeof(png_sPLT_entry));
-        to->nentries = from->nentries;
-        to->depth = from->depth;
-    }
+   png_free(png_ptr, info_ptr->splt_palettes);
+   info_ptr->splt_palettes=NULL;
 
-    info_ptr->splt_palettes = np;
-    info_ptr->splt_palettes_num += nentries;
-    info_ptr->valid |= PNG_INFO_sPLT;
-#ifdef PNG_FREE_ME_SUPPORTED
-    info_ptr->free_me |= PNG_FREE_SPLT;
-#endif
+   for (i = 0; i < nentries; i++)
+   {
+      png_sPLT_tp to = np + info_ptr->splt_palettes_num + i;
+      png_const_sPLT_tp from = entries + i;
+      png_uint_32 length;
+
+      length = png_strlen(from->name) + 1;
+      to->name = (png_charp)png_malloc_warn(png_ptr, (png_size_t)length);
+
+      if (to->name == NULL)
+      {
+         png_warning(png_ptr,
+             "Out of memory while processing sPLT chunk");
+         continue;
+      }
+
+      png_memcpy(to->name, from->name, length);
+      to->entries = (png_sPLT_entryp)png_malloc_warn(png_ptr,
+          (png_size_t)(from->nentries * png_sizeof(png_sPLT_entry)));
+
+      if (to->entries == NULL)
+      {
+         png_warning(png_ptr,
+             "Out of memory while processing sPLT chunk");
+         png_free(png_ptr, to->name);
+         to->name = NULL;
+         continue;
+      }
+
+      png_memcpy(to->entries, from->entries,
+          from->nentries * png_sizeof(png_sPLT_entry));
+
+      to->nentries = from->nentries;
+      to->depth = from->depth;
+   }
+
+   info_ptr->splt_palettes = np;
+   info_ptr->splt_palettes_num += nentries;
+   info_ptr->valid |= PNG_INFO_sPLT;
+   info_ptr->free_me |= PNG_FREE_SPLT;
 }
 #endif /* PNG_sPLT_SUPPORTED */
 
-#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
+#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
 void PNGAPI
 png_set_unknown_chunks(png_structp png_ptr,
-   png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns)
+   png_infop info_ptr, png_const_unknown_chunkp unknowns, int num_unknowns)
 {
-    png_unknown_chunkp np;
-    int i;
+   png_unknown_chunkp np;
+   int i;
+
+   if (png_ptr == NULL || info_ptr == NULL || num_unknowns == 0)
+      return;
 
-    if (png_ptr == NULL || info_ptr == NULL || num_unknowns == 0)
-        return;
+   np = (png_unknown_chunkp)png_malloc_warn(png_ptr,
+       (png_size_t)(info_ptr->unknown_chunks_num + num_unknowns) *
+       png_sizeof(png_unknown_chunk));
 
-    np = (png_unknown_chunkp)png_malloc_warn(png_ptr,
-        (info_ptr->unknown_chunks_num + num_unknowns) *
-        png_sizeof(png_unknown_chunk));
-    if (np == NULL)
-    {
-       png_warning(png_ptr, "Out of memory while processing unknown chunk.");
-       return;
-    }
+   if (np == NULL)
+   {
+      png_warning(png_ptr,
+          "Out of memory while processing unknown chunk");
+      return;
+   }
 
-    png_memcpy(np, info_ptr->unknown_chunks,
-           info_ptr->unknown_chunks_num * png_sizeof(png_unknown_chunk));
-    png_free(png_ptr, info_ptr->unknown_chunks);
-    info_ptr->unknown_chunks=NULL;
+   png_memcpy(np, info_ptr->unknown_chunks,
+       (png_size_t)info_ptr->unknown_chunks_num *
+       png_sizeof(png_unknown_chunk));
 
-    for (i = 0; i < num_unknowns; i++)
-    {
-        png_unknown_chunkp to = np + info_ptr->unknown_chunks_num + i;
-        png_unknown_chunkp from = unknowns + i;
-
-        png_strncpy((png_charp)to->name, (png_charp)from->name, 5);
-        to->data = (png_bytep)png_malloc_warn(png_ptr, from->size);
-        if (to->data == NULL)
-        {
-           png_warning(png_ptr, "Out of memory processing unknown chunk.");
-        }
-        else
-        {
-           png_memcpy(to->data, from->data, from->size);
-           to->size = from->size;
-
-           /* note our location in the read or write sequence */
-           to->location = (png_byte)(png_ptr->mode & 0xff);
-        }
-    }
+   png_free(png_ptr, info_ptr->unknown_chunks);
+   info_ptr->unknown_chunks = NULL;
 
-    info_ptr->unknown_chunks = np;
-    info_ptr->unknown_chunks_num += num_unknowns;
-#ifdef PNG_FREE_ME_SUPPORTED
-    info_ptr->free_me |= PNG_FREE_UNKN;
-#endif
+   for (i = 0; i < num_unknowns; i++)
+   {
+      png_unknown_chunkp to = np + info_ptr->unknown_chunks_num + i;
+      png_const_unknown_chunkp from = unknowns + i;
+
+      png_memcpy(to->name, from->name, png_sizeof(from->name));
+      to->name[png_sizeof(to->name)-1] = '\0';
+      to->size = from->size;
+
+      /* Note our location in the read or write sequence */
+      to->location = (png_byte)(png_ptr->mode & 0xff);
+
+      if (from->size == 0)
+         to->data=NULL;
+
+      else
+      {
+         to->data = (png_bytep)png_malloc_warn(png_ptr,
+             (png_size_t)from->size);
+
+         if (to->data == NULL)
+         {
+            png_warning(png_ptr,
+                "Out of memory while processing unknown chunk");
+            to->size = 0;
+         }
+
+         else
+            png_memcpy(to->data, from->data, from->size);
+      }
+   }
+
+   info_ptr->unknown_chunks = np;
+   info_ptr->unknown_chunks_num += num_unknowns;
+   info_ptr->free_me |= PNG_FREE_UNKN;
 }
+
 void PNGAPI
 png_set_unknown_chunk_location(png_structp png_ptr, png_infop info_ptr,
-   int chunk, int location)
+    int chunk, int location)
 {
-   if(png_ptr != NULL && info_ptr != NULL && chunk >= 0 && chunk <
-         (int)info_ptr->unknown_chunks_num)
+   if (png_ptr != NULL && info_ptr != NULL && chunk >= 0 && chunk <
+       info_ptr->unknown_chunks_num)
       info_ptr->unknown_chunks[chunk].location = (png_byte)location;
 }
 #endif
 
-#if defined(PNG_1_0_X) || defined(PNG_1_2_X)
-#if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \
-    defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)
-void PNGAPI
-png_permit_empty_plte (png_structp png_ptr, int empty_plte_permitted)
-{
-   /* This function is deprecated in favor of png_permit_mng_features()
-      and will be removed from libpng-1.3.0 */
-   png_debug(1, "in png_permit_empty_plte, DEPRECATED.\n");
-   if (png_ptr == NULL)
-      return;
-   png_ptr->mng_features_permitted = (png_byte)
-     ((png_ptr->mng_features_permitted & (~(PNG_FLAG_MNG_EMPTY_PLTE))) |
-     ((empty_plte_permitted & PNG_FLAG_MNG_EMPTY_PLTE)));
-}
-#endif
-#endif
 
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
+#ifdef PNG_MNG_FEATURES_SUPPORTED
 png_uint_32 PNGAPI
 png_permit_mng_features (png_structp png_ptr, png_uint_32 mng_features)
 {
-   png_debug(1, "in png_permit_mng_features\n");
+   png_debug(1, "in png_permit_mng_features");
+
    if (png_ptr == NULL)
       return (png_uint_32)0;
+
    png_ptr->mng_features_permitted =
-     (png_byte)(mng_features & PNG_ALL_MNG_FEATURES);
+       (png_byte)(mng_features & PNG_ALL_MNG_FEATURES);
+
    return (png_uint_32)png_ptr->mng_features_permitted;
 }
 #endif
 
-#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
+#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
 void PNGAPI
-png_set_keep_unknown_chunks(png_structp png_ptr, int keep, png_bytep
-   chunk_list, int num_chunks)
+png_set_keep_unknown_chunks(png_structp png_ptr, int keep, png_const_bytep
+    chunk_list, int num_chunks)
 {
-    png_bytep new_list, p;
-    int i, old_num_chunks;
-    if (png_ptr == NULL)
-       return;
-    if (num_chunks == 0)
-    {
-      if(keep == PNG_HANDLE_CHUNK_ALWAYS || keep == PNG_HANDLE_CHUNK_IF_SAFE)
-        png_ptr->flags |= PNG_FLAG_KEEP_UNKNOWN_CHUNKS;
+   png_bytep new_list, p;
+   int i, old_num_chunks;
+   if (png_ptr == NULL)
+      return;
+
+   if (num_chunks == 0)
+   {
+      if (keep == PNG_HANDLE_CHUNK_ALWAYS || keep == PNG_HANDLE_CHUNK_IF_SAFE)
+         png_ptr->flags |= PNG_FLAG_KEEP_UNKNOWN_CHUNKS;
+
       else
-        png_ptr->flags &= ~PNG_FLAG_KEEP_UNKNOWN_CHUNKS;
+         png_ptr->flags &= ~PNG_FLAG_KEEP_UNKNOWN_CHUNKS;
+
+      if (keep == PNG_HANDLE_CHUNK_ALWAYS)
+         png_ptr->flags |= PNG_FLAG_KEEP_UNSAFE_CHUNKS;
 
-      if(keep == PNG_HANDLE_CHUNK_ALWAYS)
-        png_ptr->flags |= PNG_FLAG_KEEP_UNSAFE_CHUNKS;
       else
-        png_ptr->flags &= ~PNG_FLAG_KEEP_UNSAFE_CHUNKS;
+         png_ptr->flags &= ~PNG_FLAG_KEEP_UNSAFE_CHUNKS;
+
       return;
-    }
-    if (chunk_list == NULL)
+   }
+
+   if (chunk_list == NULL)
       return;
-    old_num_chunks=png_ptr->num_chunk_list;
-    new_list=(png_bytep)png_malloc(png_ptr,
-       (png_uint_32)(5*(num_chunks+old_num_chunks)));
-    if(png_ptr->chunk_list != NULL)
-    {
-       png_memcpy(new_list, png_ptr->chunk_list,
+
+   old_num_chunks = png_ptr->num_chunk_list;
+   new_list=(png_bytep)png_malloc(png_ptr,
+       (png_size_t)(5*(num_chunks + old_num_chunks)));
+
+   if (png_ptr->chunk_list != NULL)
+   {
+      png_memcpy(new_list, png_ptr->chunk_list,
           (png_size_t)(5*old_num_chunks));
-       png_free(png_ptr, png_ptr->chunk_list);
-       png_ptr->chunk_list=NULL;
-    }
-    png_memcpy(new_list+5*old_num_chunks, chunk_list,
+      png_free(png_ptr, png_ptr->chunk_list);
+      png_ptr->chunk_list=NULL;
+   }
+
+   png_memcpy(new_list + 5*old_num_chunks, chunk_list,
        (png_size_t)(5*num_chunks));
-    for (p=new_list+5*old_num_chunks+4, i=0; i<num_chunks; i++, p+=5)
-       *p=(png_byte)keep;
-    png_ptr->num_chunk_list=old_num_chunks+num_chunks;
-    png_ptr->chunk_list=new_list;
-#ifdef PNG_FREE_ME_SUPPORTED
-    png_ptr->free_me |= PNG_FREE_LIST;
-#endif
+
+   for (p = new_list + 5*old_num_chunks + 4, i = 0; i<num_chunks; i++, p += 5)
+      *p=(png_byte)keep;
+
+   png_ptr->num_chunk_list = old_num_chunks + num_chunks;
+   png_ptr->chunk_list = new_list;
+   png_ptr->free_me |= PNG_FREE_LIST;
 }
 #endif
 
-#if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
+#ifdef PNG_READ_USER_CHUNKS_SUPPORTED
 void PNGAPI
 png_set_read_user_chunk_fn(png_structp png_ptr, png_voidp user_chunk_ptr,
-   png_user_chunk_ptr read_user_chunk_fn)
+    png_user_chunk_ptr read_user_chunk_fn)
 {
-   png_debug(1, "in png_set_read_user_chunk_fn\n");
+   png_debug(1, "in png_set_read_user_chunk_fn");
+
    if (png_ptr == NULL)
       return;
+
    png_ptr->read_user_chunk_fn = read_user_chunk_fn;
    png_ptr->user_chunk_ptr = user_chunk_ptr;
 }
 #endif
 
-#if defined(PNG_INFO_IMAGE_SUPPORTED)
+#ifdef PNG_INFO_IMAGE_SUPPORTED
 void PNGAPI
 png_set_rows(png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers)
 {
-   png_debug1(1, "in %s storage function\n", "rows");
+   png_debug1(1, "in %s storage function", "rows");
 
    if (png_ptr == NULL || info_ptr == NULL)
       return;
 
-   if(info_ptr->row_pointers && (info_ptr->row_pointers != row_pointers))
+   if (info_ptr->row_pointers && (info_ptr->row_pointers != row_pointers))
       png_free_data(png_ptr, info_ptr, PNG_FREE_ROWS, 0);
+
    info_ptr->row_pointers = row_pointers;
-   if(row_pointers)
+
+   if (row_pointers)
       info_ptr->valid |= PNG_INFO_IDAT;
 }
 #endif
 
-#ifdef PNG_WRITE_SUPPORTED
 void PNGAPI
-png_set_compression_buffer_size(png_structp png_ptr, png_uint_32 size)
+png_set_compression_buffer_size(png_structp png_ptr, png_size_t size)
 {
     if (png_ptr == NULL)
        return;
-    if(png_ptr->zbuf)
-       png_free(png_ptr, png_ptr->zbuf);
-    png_ptr->zbuf_size = (png_size_t)size;
+
+    png_free(png_ptr, png_ptr->zbuf);
+
+    if (size > ZLIB_IO_MAX)
+    {
+       png_warning(png_ptr, "Attempt to set buffer size beyond max ignored");
+       png_ptr->zbuf_size = ZLIB_IO_MAX;
+       size = ZLIB_IO_MAX; /* must fit */
+    }
+
+    else
+       png_ptr->zbuf_size = (uInt)size;
+
     png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, size);
+
+    /* The following ensures a relatively safe failure if this gets called while
+     * the buffer is actually in use.
+     */
     png_ptr->zstream.next_out = png_ptr->zbuf;
-    png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
+    png_ptr->zstream.avail_out = 0;
+    png_ptr->zstream.avail_in = 0;
 }
-#endif
 
 void PNGAPI
 png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask)
 {
    if (png_ptr && info_ptr)
-      info_ptr->valid &= ~(mask);
+      info_ptr->valid &= ~mask;
 }
 
 
-#ifndef PNG_1_0_X
-#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
-/* this function was added to libpng 1.2.0 and should always exist by default */
+
+#ifdef PNG_SET_USER_LIMITS_SUPPORTED
+/* This function was added to libpng 1.2.6 */
 void PNGAPI
-png_set_asm_flags (png_structp png_ptr, png_uint_32 asm_flags)
+png_set_user_limits (png_structp png_ptr, png_uint_32 user_width_max,
+    png_uint_32 user_height_max)
 {
-#ifdef PNG_MMX_CODE_SUPPORTED
-    png_uint_32 settable_asm_flags;
-    png_uint_32 settable_mmx_flags;
-#endif
-    if (png_ptr == NULL)
-       return;
-#ifdef PNG_MMX_CODE_SUPPORTED
-
-    settable_mmx_flags =
-#ifdef PNG_HAVE_MMX_COMBINE_ROW
-                         PNG_ASM_FLAG_MMX_READ_COMBINE_ROW  |
-#endif
-#ifdef PNG_HAVE_MMX_READ_INTERLACE
-                         PNG_ASM_FLAG_MMX_READ_INTERLACE    |
-#endif
-#ifdef PNG_HAVE_MMX_READ_FILTER_ROW
-                         PNG_ASM_FLAG_MMX_READ_FILTER_SUB   |
-                         PNG_ASM_FLAG_MMX_READ_FILTER_UP    |
-                         PNG_ASM_FLAG_MMX_READ_FILTER_AVG   |
-                         PNG_ASM_FLAG_MMX_READ_FILTER_PAETH |
-#endif
-                         0;
-
-    /* could be some non-MMX ones in the future, but not currently: */
-    settable_asm_flags = settable_mmx_flags;
-
-    if (!(png_ptr->asm_flags & PNG_ASM_FLAG_MMX_SUPPORT_COMPILED) ||
-        !(png_ptr->asm_flags & PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU))
-    {
-        /* clear all MMX flags if MMX isn't supported */
-        settable_asm_flags &= ~settable_mmx_flags;
-        png_ptr->asm_flags &= ~settable_mmx_flags;
-    }
-
-    /* we're replacing the settable bits with those passed in by the user,
-     * so first zero them out of the master copy, then bitwise-OR in the
-     * allowed subset that was requested */
+   /* Images with dimensions larger than these limits will be
+    * rejected by png_set_IHDR().  To accept any PNG datastream
+    * regardless of dimensions, set both limits to 0x7ffffffL.
+    */
+   if (png_ptr == NULL)
+      return;
 
-    png_ptr->asm_flags &= ~settable_asm_flags;               /* zero them */
-    png_ptr->asm_flags |= (asm_flags & settable_asm_flags);  /* set them */
-#endif /* ?PNG_MMX_CODE_SUPPORTED */
+   png_ptr->user_width_max = user_width_max;
+   png_ptr->user_height_max = user_height_max;
 }
 
-/* this function was added to libpng 1.2.0 */
+/* This function was added to libpng 1.4.0 */
 void PNGAPI
-png_set_mmx_thresholds (png_structp png_ptr,
-                        png_byte mmx_bitdepth_threshold,
-                        png_uint_32 mmx_rowbytes_threshold)
+png_set_chunk_cache_max (png_structp png_ptr,
+   png_uint_32 user_chunk_cache_max)
 {
-    if (png_ptr == NULL)
-       return;
-#ifdef PNG_MMX_CODE_SUPPORTED
-    png_ptr->mmx_bitdepth_threshold = mmx_bitdepth_threshold;
-    png_ptr->mmx_rowbytes_threshold = mmx_rowbytes_threshold;
-#endif /* ?PNG_MMX_CODE_SUPPORTED */
+    if (png_ptr)
+       png_ptr->user_chunk_cache_max = user_chunk_cache_max;
 }
-#endif /* ?PNG_ASSEMBLER_CODE_SUPPORTED */
 
-#ifdef PNG_SET_USER_LIMITS_SUPPORTED
-/* this function was added to libpng 1.2.6 */
+/* This function was added to libpng 1.4.1 */
 void PNGAPI
-png_set_user_limits (png_structp png_ptr, png_uint_32 user_width_max,
-    png_uint_32 user_height_max)
+png_set_chunk_malloc_max (png_structp png_ptr,
+    png_alloc_size_t user_chunk_malloc_max)
 {
-    /* Images with dimensions larger than these limits will be
-     * rejected by png_set_IHDR().  To accept any PNG datastream
-     * regardless of dimensions, set both limits to 0x7ffffffL.
-     */
-    if(png_ptr == NULL) return;
-    png_ptr->user_width_max = user_width_max;
-    png_ptr->user_height_max = user_height_max;
+   if (png_ptr)
+      png_ptr->user_chunk_malloc_max = user_chunk_malloc_max;
 }
 #endif /* ?PNG_SET_USER_LIMITS_SUPPORTED */
 
-#endif /* ?PNG_1_0_X */
+
+#ifdef PNG_BENIGN_ERRORS_SUPPORTED
+void PNGAPI
+png_set_benign_errors(png_structp png_ptr, int allowed)
+{
+   png_debug(1, "in png_set_benign_errors");
+
+   if (allowed)
+      png_ptr->flags |= PNG_FLAG_BENIGN_ERRORS_WARN;
+
+   else
+      png_ptr->flags &= ~PNG_FLAG_BENIGN_ERRORS_WARN;
+}
+#endif /* PNG_BENIGN_ERRORS_SUPPORTED */
 #endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngstruct.h b/jdk/src/share/native/sun/awt/libpng/pngstruct.h
new file mode 100644
index 0000000..6a587e3
--- /dev/null
+++ b/jdk/src/share/native/sun/awt/libpng/pngstruct.h
@@ -0,0 +1,365 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* pngstruct.h - header file for PNG reference library
+ *
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
+ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
+ * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ */
+
+/* The structure that holds the information to read and write PNG files.
+ * The only people who need to care about what is inside of this are the
+ * people who will be modifying the library for their own special needs.
+ * It should NOT be accessed directly by an application.
+ */
+
+#ifndef PNGSTRUCT_H
+#define PNGSTRUCT_H
+/* zlib.h defines the structure z_stream, an instance of which is included
+ * in this structure and is required for decompressing the LZ compressed
+ * data in PNG files.
+ */
+#include "zlib.h"
+
+struct png_struct_def
+{
+#ifdef PNG_SETJMP_SUPPORTED
+   jmp_buf longjmp_buffer;    /* used in png_error */
+   png_longjmp_ptr longjmp_fn;/* setjmp non-local goto function. */
+#endif
+   png_error_ptr error_fn;    /* function for printing errors and aborting */
+#ifdef PNG_WARNINGS_SUPPORTED
+   png_error_ptr warning_fn;  /* function for printing warnings */
+#endif
+   png_voidp error_ptr;       /* user supplied struct for error functions */
+   png_rw_ptr write_data_fn;  /* function for writing output data */
+   png_rw_ptr read_data_fn;   /* function for reading input data */
+   png_voidp io_ptr;          /* ptr to application struct for I/O functions */
+
+#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
+   png_user_transform_ptr read_user_transform_fn; /* user read transform */
+#endif
+
+#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
+   png_user_transform_ptr write_user_transform_fn; /* user write transform */
+#endif
+
+/* These were added in libpng-1.0.2 */
+#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED
+#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
+    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+   png_voidp user_transform_ptr; /* user supplied struct for user transform */
+   png_byte user_transform_depth;    /* bit depth of user transformed pixels */
+   png_byte user_transform_channels; /* channels in user transformed pixels */
+#endif
+#endif
+
+   png_uint_32 mode;          /* tells us where we are in the PNG file */
+   png_uint_32 flags;         /* flags indicating various things to libpng */
+   png_uint_32 transformations; /* which transformations to perform */
+
+   z_stream zstream;          /* pointer to decompression structure (below) */
+   png_bytep zbuf;            /* buffer for zlib */
+   uInt zbuf_size;            /* size of zbuf (typically 65536) */
+#ifdef PNG_WRITE_SUPPORTED
+
+/* Added in 1.5.4: state to keep track of whether the zstream has been
+ * initialized and if so whether it is for IDAT or some other chunk.
+ */
+#define PNG_ZLIB_UNINITIALIZED 0
+#define PNG_ZLIB_FOR_IDAT      1
+#define PNG_ZLIB_FOR_TEXT      2 /* anything other than IDAT */
+#define PNG_ZLIB_USE_MASK      3 /* bottom two bits */
+#define PNG_ZLIB_IN_USE        4 /* a flag value */
+
+   png_uint_32 zlib_state;       /* State of zlib initialization */
+/* End of material added at libpng 1.5.4 */
+
+   int zlib_level;            /* holds zlib compression level */
+   int zlib_method;           /* holds zlib compression method */
+   int zlib_window_bits;      /* holds zlib compression window bits */
+   int zlib_mem_level;        /* holds zlib compression memory level */
+   int zlib_strategy;         /* holds zlib compression strategy */
+#endif
+/* Added at libpng 1.5.4 */
+#if defined(PNG_WRITE_COMPRESSED_TEXT_SUPPORTED) || \
+    defined(PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED)
+   int zlib_text_level;            /* holds zlib compression level */
+   int zlib_text_method;           /* holds zlib compression method */
+   int zlib_text_window_bits;      /* holds zlib compression window bits */
+   int zlib_text_mem_level;        /* holds zlib compression memory level */
+   int zlib_text_strategy;         /* holds zlib compression strategy */
+#endif
+/* End of material added at libpng 1.5.4 */
+
+   png_uint_32 width;         /* width of image in pixels */
+   png_uint_32 height;        /* height of image in pixels */
+   png_uint_32 num_rows;      /* number of rows in current pass */
+   png_uint_32 usr_width;     /* width of row at start of write */
+   png_size_t rowbytes;       /* size of row in bytes */
+   png_uint_32 iwidth;        /* width of current interlaced row in pixels */
+   png_uint_32 row_number;    /* current row in interlace pass */
+   png_bytep prev_row;        /* buffer to save previous (unfiltered) row */
+   png_bytep row_buf;         /* buffer to save current (unfiltered) row */
+   png_bytep sub_row;         /* buffer to save "sub" row when filtering */
+   png_bytep up_row;          /* buffer to save "up" row when filtering */
+   png_bytep avg_row;         /* buffer to save "avg" row when filtering */
+   png_bytep paeth_row;       /* buffer to save "Paeth" row when filtering */
+   png_row_info row_info;     /* used for transformation routines */
+   png_size_t info_rowbytes;  /* Added in 1.5.4: cache of updated row bytes */
+
+   png_uint_32 idat_size;     /* current IDAT size for read */
+   png_uint_32 crc;           /* current chunk CRC value */
+   png_colorp palette;        /* palette from the input file */
+   png_uint_16 num_palette;   /* number of color entries in palette */
+   png_uint_16 num_trans;     /* number of transparency values */
+   png_byte chunk_name[5];    /* null-terminated name of current chunk */
+   png_byte compression;      /* file compression type (always 0) */
+   png_byte filter;           /* file filter type (always 0) */
+   png_byte interlaced;       /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */
+   png_byte pass;             /* current interlace pass (0 - 6) */
+   png_byte do_filter;        /* row filter flags (see PNG_FILTER_ below ) */
+   png_byte color_type;       /* color type of file */
+   png_byte bit_depth;        /* bit depth of file */
+   png_byte usr_bit_depth;    /* bit depth of users row */
+   png_byte pixel_depth;      /* number of bits per pixel */
+   png_byte channels;         /* number of channels in file */
+   png_byte usr_channels;     /* channels at start of write */
+   png_byte sig_bytes;        /* magic bytes read/written from start of file */
+
+#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
+   png_uint_16 filler;           /* filler bytes for pixel expansion */
+#endif
+
+#if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) ||\
+   defined(PNG_READ_ALPHA_MODE_SUPPORTED)
+   png_byte background_gamma_type;
+   png_fixed_point background_gamma;
+   png_color_16 background;   /* background color in screen gamma space */
+#ifdef PNG_READ_GAMMA_SUPPORTED
+   png_color_16 background_1; /* background normalized to gamma 1.0 */
+#endif
+#endif /* PNG_bKGD_SUPPORTED */
+
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
+   png_flush_ptr output_flush_fn; /* Function for flushing output */
+   png_uint_32 flush_dist;    /* how many rows apart to flush, 0 - no flush */
+   png_uint_32 flush_rows;    /* number of rows written since last flush */
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
+   int gamma_shift;      /* number of "insignificant" bits in 16-bit gamma */
+   png_fixed_point gamma;        /* file gamma value */
+   png_fixed_point screen_gamma; /* screen gamma value (display_exponent) */
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
+   png_bytep gamma_table;     /* gamma table for 8-bit depth files */
+   png_bytep gamma_from_1;    /* converts from 1.0 to screen */
+   png_bytep gamma_to_1;      /* converts from file to 1.0 */
+   png_uint_16pp gamma_16_table; /* gamma table for 16-bit depth files */
+   png_uint_16pp gamma_16_from_1; /* converts from 1.0 to screen */
+   png_uint_16pp gamma_16_to_1; /* converts from file to 1.0 */
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED)
+   png_color_8 sig_bit;       /* significant bits in each available channel */
+#endif
+
+#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED)
+   png_color_8 shift;         /* shift for significant bit tranformation */
+#endif
+
+#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \
+ || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
+   png_bytep trans_alpha;           /* alpha values for paletted files */
+   png_color_16 trans_color;  /* transparent color for non-paletted files */
+#endif
+
+   png_read_status_ptr read_row_fn;   /* called after each row is decoded */
+   png_write_status_ptr write_row_fn; /* called after each row is encoded */
+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
+   png_progressive_info_ptr info_fn; /* called after header data fully read */
+   png_progressive_row_ptr row_fn;   /* called after a prog. row is decoded */
+   png_progressive_end_ptr end_fn;   /* called after image is complete */
+   png_bytep save_buffer_ptr;        /* current location in save_buffer */
+   png_bytep save_buffer;            /* buffer for previously read data */
+   png_bytep current_buffer_ptr;     /* current location in current_buffer */
+   png_bytep current_buffer;         /* buffer for recently used data */
+   png_uint_32 push_length;          /* size of current input chunk */
+   png_uint_32 skip_length;          /* bytes to skip in input data */
+   png_size_t save_buffer_size;      /* amount of data now in save_buffer */
+   png_size_t save_buffer_max;       /* total size of save_buffer */
+   png_size_t buffer_size;           /* total amount of available input data */
+   png_size_t current_buffer_size;   /* amount of data now in current_buffer */
+   int process_mode;                 /* what push library is currently doing */
+   int cur_palette;                  /* current push library palette index */
+
+#  ifdef PNG_TEXT_SUPPORTED
+     png_size_t current_text_size;   /* current size of text input data */
+     png_size_t current_text_left;   /* how much text left to read in input */
+     png_charp current_text;         /* current text chunk buffer */
+     png_charp current_text_ptr;     /* current location in current_text */
+#  endif /* PNG_PROGRESSIVE_READ_SUPPORTED && PNG_TEXT_SUPPORTED */
+
+#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
+
+#if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__)
+/* For the Borland special 64K segment handler */
+   png_bytepp offset_table_ptr;
+   png_bytep offset_table;
+   png_uint_16 offset_table_number;
+   png_uint_16 offset_table_count;
+   png_uint_16 offset_table_count_free;
+#endif
+
+#ifdef PNG_READ_QUANTIZE_SUPPORTED
+   png_bytep palette_lookup; /* lookup table for quantizing */
+   png_bytep quantize_index; /* index translation for palette files */
+#endif
+
+#if defined(PNG_READ_QUANTIZE_SUPPORTED) || defined(PNG_hIST_SUPPORTED)
+   png_uint_16p hist;                /* histogram */
+#endif
+
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
+   png_byte heuristic_method;        /* heuristic for row filter selection */
+   png_byte num_prev_filters;        /* number of weights for previous rows */
+   png_bytep prev_filters;           /* filter type(s) of previous row(s) */
+   png_uint_16p filter_weights;      /* weight(s) for previous line(s) */
+   png_uint_16p inv_filter_weights;  /* 1/weight(s) for previous line(s) */
+   png_uint_16p filter_costs;        /* relative filter calculation cost */
+   png_uint_16p inv_filter_costs;    /* 1/relative filter calculation cost */
+#endif
+
+#ifdef PNG_TIME_RFC1123_SUPPORTED
+   char time_buffer[29]; /* String to hold RFC 1123 time text */
+#endif
+
+/* New members added in libpng-1.0.6 */
+
+   png_uint_32 free_me;    /* flags items libpng is responsible for freeing */
+
+#ifdef PNG_USER_CHUNKS_SUPPORTED
+   png_voidp user_chunk_ptr;
+   png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */
+#endif
+
+#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+   int num_chunk_list;
+   png_bytep chunk_list;
+#endif
+
+/* New members added in libpng-1.0.3 */
+#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
+   png_byte rgb_to_gray_status;
+   /* These were changed from png_byte in libpng-1.0.6 */
+   png_uint_16 rgb_to_gray_red_coeff;
+   png_uint_16 rgb_to_gray_green_coeff;
+   png_uint_16 rgb_to_gray_blue_coeff;
+#endif
+
+/* New member added in libpng-1.0.4 (renamed in 1.0.9) */
+#if defined(PNG_MNG_FEATURES_SUPPORTED) || \
+    defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \
+    defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)
+/* Changed from png_byte to png_uint_32 at version 1.2.0 */
+   png_uint_32 mng_features_permitted;
+#endif
+
+/* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */
+#ifdef PNG_MNG_FEATURES_SUPPORTED
+   png_byte filter_type;
+#endif
+
+/* New members added in libpng-1.2.0 */
+
+/* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
+#ifdef PNG_USER_MEM_SUPPORTED
+   png_voidp mem_ptr;             /* user supplied struct for mem functions */
+   png_malloc_ptr malloc_fn;      /* function for allocating memory */
+   png_free_ptr free_fn;          /* function for freeing memory */
+#endif
+
+/* New member added in libpng-1.0.13 and 1.2.0 */
+   png_bytep big_row_buf;         /* buffer to save current (unfiltered) row */
+
+#ifdef PNG_READ_QUANTIZE_SUPPORTED
+/* The following three members were added at version 1.0.14 and 1.2.4 */
+   png_bytep quantize_sort;          /* working sort array */
+   png_bytep index_to_palette;       /* where the original index currently is
+                                        in the palette */
+   png_bytep palette_to_index;       /* which original index points to this
+                                         palette color */
+#endif
+
+/* New members added in libpng-1.0.16 and 1.2.6 */
+   png_byte compression_type;
+
+#ifdef PNG_USER_LIMITS_SUPPORTED
+   png_uint_32 user_width_max;
+   png_uint_32 user_height_max;
+
+   /* Added in libpng-1.4.0: Total number of sPLT, text, and unknown
+    * chunks that can be stored (0 means unlimited).
+    */
+   png_uint_32 user_chunk_cache_max;
+
+   /* Total memory that a zTXt, sPLT, iTXt, iCCP, or unknown chunk
+    * can occupy when decompressed.  0 means unlimited.
+    */
+   png_alloc_size_t user_chunk_malloc_max;
+#endif
+
+/* New member added in libpng-1.0.25 and 1.2.17 */
+#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
+   /* Storage for unknown chunk that the library doesn't recognize. */
+   png_unknown_chunk unknown_chunk;
+#endif
+
+/* New members added in libpng-1.2.26 */
+  png_size_t old_big_row_buf_size;
+  png_size_t old_prev_row_size;
+
+/* New member added in libpng-1.2.30 */
+  png_charp chunkdata;  /* buffer for reading chunk data */
+
+#ifdef PNG_IO_STATE_SUPPORTED
+/* New member added in libpng-1.4.0 */
+   png_uint_32 io_state;
+#endif
+};
+#endif /* PNGSTRUCT_H */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngtest.c b/jdk/src/share/native/sun/awt/libpng/pngtest.c
index dc49329..227181f 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngtest.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngtest.c
@@ -29,12 +29,15 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.6 - August 15, 2004
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2004 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ *
  * This program reads in a PNG image, writes it out again, and then
  * compares the two files.  If the files are identical, this shows that
  * the basic chunk handling, filtering, and (de)compression code is working
@@ -56,51 +59,58 @@
  * of files at once by typing "pngtest -m file1.png file2.png ..."
  */
 
-#include "png.h"
+#define _POSIX_SOURCE 1
 
-#if defined(_WIN32_WCE)
-#  if _WIN32_WCE < 211
-     __error__ (f|w)printf functions are not supported on old WindowsCE.;
-#  endif
-#  include <windows.h>
-#  include <stdlib.h>
-#  define READFILE(file, data, length, check) \
-     if (ReadFile(file, data, length, &check,NULL)) check = 0
-#  define WRITEFILE(file, data, length, check)) \
-     if (WriteFile(file, data, length, &check, NULL)) check = 0
-#  define FCLOSE(file) CloseHandle(file)
-#else
+#include "zlib.h"
+#include "png.h"
+/* Copied from pngpriv.h but only used in error messages below. */
+#ifndef PNG_ZBUF_SIZE
+#  define PNG_ZBUF_SIZE 8192
+#endif
 #  include <stdio.h>
 #  include <stdlib.h>
-#  define READFILE(file, data, length, check) \
-     check=(png_size_t)fread(data,(png_size_t)1,length,file)
-#  define WRITEFILE(file, data, length, check) \
-     check=(png_size_t)fwrite(data,(png_size_t)1, length, file)
+#  include <string.h>
 #  define FCLOSE(file) fclose(file)
-#endif
 
-#if defined(PNG_NO_STDIO)
-#  if defined(_WIN32_WCE)
-     typedef HANDLE                png_FILE_p;
-#  else
-     typedef FILE                * png_FILE_p;
-#  endif
+#ifndef PNG_STDIO_SUPPORTED
+typedef FILE                * png_FILE_p;
 #endif
 
-/* Makes pngtest verbose so we can find problems (needs to be before png.h) */
+/* Makes pngtest verbose so we can find problems. */
 #ifndef PNG_DEBUG
 #  define PNG_DEBUG 0
 #endif
 
+#if PNG_DEBUG > 1
+#  define pngtest_debug(m)        ((void)fprintf(stderr, m "\n"))
+#  define pngtest_debug1(m,p1)    ((void)fprintf(stderr, m "\n", p1))
+#  define pngtest_debug2(m,p1,p2) ((void)fprintf(stderr, m "\n", p1, p2))
+#else
+#  define pngtest_debug(m)        ((void)0)
+#  define pngtest_debug1(m,p1)    ((void)0)
+#  define pngtest_debug2(m,p1,p2) ((void)0)
+#endif
+
 #if !PNG_DEBUG
-#  define SINGLE_ROWBUF_ALLOC  /* makes buffer overruns easier to nail */
+#  define SINGLE_ROWBUF_ALLOC  /* Makes buffer overruns easier to nail */
 #endif
 
+/* The code uses memcmp and memcpy on large objects (typically row pointers) so
+ * it is necessary to do soemthing special on certain architectures, note that
+ * the actual support for this was effectively removed in 1.4, so only the
+ * memory remains in this program:
+ */
+#define CVT_PTR(ptr)         (ptr)
+#define CVT_PTR_NOCHECK(ptr) (ptr)
+#define png_memcmp  memcmp
+#define png_memcpy  memcpy
+#define png_memset  memset
+
 /* Turn on CPU timing
 #define PNGTEST_TIMING
 */
 
-#ifdef PNG_NO_FLOATING_POINT_SUPPORTED
+#ifndef PNG_FLOATING_POINT_SUPPORTED
 #undef PNGTEST_TIMING
 #endif
 
@@ -109,9 +119,10 @@ static float t_start, t_stop, t_decode, t_encode, t_misc;
 #include <time.h>
 #endif
 
-#if defined(PNG_TIME_RFC1123_SUPPORTED)
-static int tIME_chunk_present=0;
-static char tIME_string[30] = "no tIME chunk present in file";
+#ifdef PNG_TIME_RFC1123_SUPPORTED
+#define PNG_tIME_STRING_LENGTH 29
+static int tIME_chunk_present = 0;
+static char tIME_string[PNG_tIME_STRING_LENGTH] = "tIME chunk is not present";
 #endif
 
 static int verbose = 0;
@@ -122,110 +133,91 @@ int test_one_file PNGARG((PNG_CONST char *inname, PNG_CONST char *outname));
 #include <mem.h>
 #endif
 
-/* defined so I can write to a file on gui/windowing platforms */
+/* Defined so I can write to a file on gui/windowing platforms */
 /*  #define STDERR stderr  */
-#define STDERR stdout   /* for DOS */
-
-/* example of using row callbacks to make a simple progress meter */
-static int status_pass=1;
-static int status_dots_requested=0;
-static int status_dots=1;
-
-/* In case a system header (e.g., on AIX) defined jmpbuf */
-#ifdef jmpbuf
-#  undef jmpbuf
-#endif
+#define STDERR stdout   /* For DOS */
 
 /* Define png_jmpbuf() in case we are using a pre-1.0.6 version of libpng */
 #ifndef png_jmpbuf
 #  define png_jmpbuf(png_ptr) png_ptr->jmpbuf
 #endif
 
-void
-#ifdef PNG_1_0_X
-PNGAPI
-#endif
+/* Example of using row callbacks to make a simple progress meter */
+static int status_pass = 1;
+static int status_dots_requested = 0;
+static int status_dots = 1;
+
+void PNGCBAPI
 read_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass);
-void
-#ifdef PNG_1_0_X
-PNGAPI
-#endif
+void PNGCBAPI
 read_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass)
 {
-    if(png_ptr == NULL || row_number > PNG_UINT_31_MAX) return;
-    if(status_pass != pass)
-    {
-       fprintf(stdout,"\n Pass %d: ",pass);
-       status_pass = pass;
-       status_dots = 31;
-    }
-    status_dots--;
-    if(status_dots == 0)
-    {
-       fprintf(stdout, "\n         ");
-       status_dots=30;
-    }
-    fprintf(stdout, "r");
+   if (png_ptr == NULL || row_number > PNG_UINT_31_MAX)
+      return;
+
+   if (status_pass != pass)
+   {
+      fprintf(stdout, "\n Pass %d: ", pass);
+      status_pass = pass;
+      status_dots = 31;
+   }
+
+   status_dots--;
+
+   if (status_dots == 0)
+   {
+      fprintf(stdout, "\n         ");
+      status_dots=30;
+   }
+
+   fprintf(stdout, "r");
 }
 
-void
-#ifdef PNG_1_0_X
-PNGAPI
-#endif
+void PNGCBAPI
 write_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass);
-void
-#ifdef PNG_1_0_X
-PNGAPI
-#endif
+void PNGCBAPI
 write_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass)
 {
-    if(png_ptr == NULL || row_number > PNG_UINT_31_MAX || pass > 7) return;
-    fprintf(stdout, "w");
+   if (png_ptr == NULL || row_number > PNG_UINT_31_MAX || pass > 7)
+      return;
+
+   fprintf(stdout, "w");
 }
 
 
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
+#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
 /* Example of using user transform callback (we don't transform anything,
-   but merely examine the row filters.  We set this to 256 rather than
-   5 in case illegal filter values are present.) */
+ * but merely examine the row filters.  We set this to 256 rather than
+ * 5 in case illegal filter values are present.)
+ */
 static png_uint_32 filters_used[256];
-void
-#ifdef PNG_1_0_X
-PNGAPI
-#endif
+void PNGCBAPI
 count_filters(png_structp png_ptr, png_row_infop row_info, png_bytep data);
-void
-#ifdef PNG_1_0_X
-PNGAPI
-#endif
+void PNGCBAPI
 count_filters(png_structp png_ptr, png_row_infop row_info, png_bytep data)
 {
-    if(png_ptr != NULL && row_info != NULL)
-      ++filters_used[*(data-1)];
+   if (png_ptr != NULL && row_info != NULL)
+      ++filters_used[*(data - 1)];
 }
 #endif
 
-#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
-/* example of using user transform callback (we don't transform anything,
-   but merely count the zero samples) */
+#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
+/* Example of using user transform callback (we don't transform anything,
+ * but merely count the zero samples)
+ */
 
 static png_uint_32 zero_samples;
 
-void
-#ifdef PNG_1_0_X
-PNGAPI
-#endif
+void PNGCBAPI
 count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data);
-void
-#ifdef PNG_1_0_X
-PNGAPI
-#endif
+void PNGCBAPI
 count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data)
 {
    png_bytep dp = data;
-   if(png_ptr == NULL)return;
+   if (png_ptr == NULL)
+      return;
 
-   /* contents of row_info:
+   /* Contents of row_info:
     *  png_uint_32 width      width of row
     *  png_uint_32 rowbytes   number of bytes in row
     *  png_byte color_type    color type of pixels
@@ -234,74 +226,91 @@ count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data)
     *  png_byte pixel_depth   bits per pixel (depth*channels)
     */
 
+    /* Counts the number of zero samples (or zero pixels if color_type is 3 */
 
-    /* counts the number of zero samples (or zero pixels if color_type is 3 */
-
-    if(row_info->color_type == 0 || row_info->color_type == 3)
+    if (row_info->color_type == 0 || row_info->color_type == 3)
     {
-       int pos=0;
+       int pos = 0;
        png_uint_32 n, nstop;
-       for (n=0, nstop=row_info->width; n<nstop; n++)
+
+       for (n = 0, nstop=row_info->width; n<nstop; n++)
        {
-          if(row_info->bit_depth == 1)
+          if (row_info->bit_depth == 1)
           {
-             if(((*dp << pos++ ) & 0x80) == 0) zero_samples++;
-             if(pos == 8)
+             if (((*dp << pos++ ) & 0x80) == 0)
+                zero_samples++;
+
+             if (pos == 8)
              {
                 pos = 0;
                 dp++;
              }
           }
-          if(row_info->bit_depth == 2)
+
+          if (row_info->bit_depth == 2)
           {
-             if(((*dp << (pos+=2)) & 0xc0) == 0) zero_samples++;
-             if(pos == 8)
+             if (((*dp << (pos+=2)) & 0xc0) == 0)
+                zero_samples++;
+
+             if (pos == 8)
              {
                 pos = 0;
                 dp++;
              }
           }
-          if(row_info->bit_depth == 4)
+
+          if (row_info->bit_depth == 4)
           {
-             if(((*dp << (pos+=4)) & 0xf0) == 0) zero_samples++;
-             if(pos == 8)
+             if (((*dp << (pos+=4)) & 0xf0) == 0)
+                zero_samples++;
+
+             if (pos == 8)
              {
                 pos = 0;
                 dp++;
              }
           }
-          if(row_info->bit_depth == 8)
-             if(*dp++ == 0) zero_samples++;
-          if(row_info->bit_depth == 16)
+
+          if (row_info->bit_depth == 8)
+             if (*dp++ == 0)
+                zero_samples++;
+
+          if (row_info->bit_depth == 16)
           {
-             if((*dp | *(dp+1)) == 0) zero_samples++;
+             if ((*dp | *(dp+1)) == 0)
+                zero_samples++;
              dp+=2;
           }
        }
     }
-    else /* other color types */
+    else /* Other color types */
     {
        png_uint_32 n, nstop;
        int channel;
        int color_channels = row_info->channels;
-       if(row_info->color_type > 3)color_channels--;
+       if (row_info->color_type > 3)color_channels--;
 
-       for (n=0, nstop=row_info->width; n<nstop; n++)
+       for (n = 0, nstop=row_info->width; n<nstop; n++)
        {
           for (channel = 0; channel < color_channels; channel++)
           {
-             if(row_info->bit_depth == 8)
-                if(*dp++ == 0) zero_samples++;
-             if(row_info->bit_depth == 16)
+             if (row_info->bit_depth == 8)
+                if (*dp++ == 0)
+                   zero_samples++;
+
+             if (row_info->bit_depth == 16)
              {
-                if((*dp | *(dp+1)) == 0) zero_samples++;
+                if ((*dp | *(dp+1)) == 0)
+                   zero_samples++;
+
                 dp+=2;
              }
           }
-          if(row_info->color_type > 3)
+          if (row_info->color_type > 3)
           {
              dp++;
-             if(row_info->bit_depth == 16)dp++;
+             if (row_info->bit_depth == 16)
+                dp++;
           }
        }
     }
@@ -310,33 +319,85 @@ count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data)
 
 static int wrote_question = 0;
 
-#if defined(PNG_NO_STDIO)
+#ifndef PNG_STDIO_SUPPORTED
 /* START of code to validate stdio-free compilation */
-/* These copies of the default read/write functions come from pngrio.c and */
-/* pngwio.c.  They allow "don't include stdio" testing of the library. */
-/* This is the function that does the actual reading of data.  If you are
-   not reading from a standard C stream, you should create a replacement
-   read_data function and use it at run time with png_set_read_fn(), rather
-   than changing the library. */
+/* These copies of the default read/write functions come from pngrio.c and
+ * pngwio.c.  They allow "don't include stdio" testing of the library.
+ * This is the function that does the actual reading of data.  If you are
+ * not reading from a standard C stream, you should create a replacement
+ * read_data function and use it at run time with png_set_read_fn(), rather
+ * than changing the library.
+ */
+
+#ifdef PNG_IO_STATE_SUPPORTED
+void
+pngtest_check_io_state(png_structp png_ptr, png_size_t data_length,
+   png_uint_32 io_op);
+void
+pngtest_check_io_state(png_structp png_ptr, png_size_t data_length,
+   png_uint_32 io_op)
+{
+   png_uint_32 io_state = png_get_io_state(png_ptr);
+   int err = 0;
+
+   /* Check if the current operation (reading / writing) is as expected. */
+   if ((io_state & PNG_IO_MASK_OP) != io_op)
+      png_error(png_ptr, "Incorrect operation in I/O state");
+
+   /* Check if the buffer size specific to the current location
+    * (file signature / header / data / crc) is as expected.
+    */
+   switch (io_state & PNG_IO_MASK_LOC)
+   {
+   case PNG_IO_SIGNATURE:
+      if (data_length > 8)
+         err = 1;
+      break;
+   case PNG_IO_CHUNK_HDR:
+      if (data_length != 8)
+         err = 1;
+      break;
+   case PNG_IO_CHUNK_DATA:
+      break;  /* no restrictions here */
+   case PNG_IO_CHUNK_CRC:
+      if (data_length != 4)
+         err = 1;
+      break;
+   default:
+      err = 1;  /* uninitialized */
+   }
+   if (err)
+      png_error(png_ptr, "Bad I/O state or buffer size");
+}
+#endif
 
 #ifndef USE_FAR_KEYWORD
-static void
+static void PNGCBAPI
 pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
 {
-   png_size_t check;
+   png_size_t check = 0;
+   png_voidp io_ptr;
 
    /* fread() returns 0 on error, so it is OK to store this in a png_size_t
     * instead of an int, which is what fread() actually returns.
     */
-   READFILE((png_FILE_p)png_ptr->io_ptr, data, length, check);
+   io_ptr = png_get_io_ptr(png_ptr);
+   if (io_ptr != NULL)
+   {
+      check = fread(data, 1, length, (png_FILE_p)io_ptr);
+   }
 
    if (check != length)
    {
-      png_error(png_ptr, "Read Error!");
+      png_error(png_ptr, "Read Error");
    }
+
+#ifdef PNG_IO_STATE_SUPPORTED
+   pngtest_check_io_state(png_ptr, length, PNG_IO_READING);
+#endif
 }
 #else
-/* this is the model-independent version. Since the standard I/O library
+/* This is the model-independent version. Since the standard I/O library
    can't handle far buffers in the medium and small models, we have to copy
    the data.
 */
@@ -344,19 +405,19 @@ pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
 #define NEAR_BUF_SIZE 1024
 #define MIN(a,b) (a <= b ? a : b)
 
-static void
+static void PNGCBAPI
 pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
 {
-   int check;
+   png_size_t check;
    png_byte *n_data;
    png_FILE_p io_ptr;
 
    /* Check if data really is near. If so, use usual code. */
    n_data = (png_byte *)CVT_PTR_NOCHECK(data);
-   io_ptr = (png_FILE_p)CVT_PTR(png_ptr->io_ptr);
+   io_ptr = (png_FILE_p)CVT_PTR(png_get_io_ptr(png_ptr));
    if ((png_bytep)n_data == data)
    {
-      READFILE(io_ptr, n_data, length, check);
+      check = fread(n_data, 1, length, io_ptr);
    }
    else
    {
@@ -364,12 +425,13 @@ pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
       png_size_t read, remaining, err;
       check = 0;
       remaining = length;
+
       do
       {
          read = MIN(NEAR_BUF_SIZE, remaining);
-         READFILE(io_ptr, buf, 1, err);
-         png_memcpy(data, buf, read); /* copy far buffer to near buffer */
-         if(err != read)
+         err = fread(buf, 1, 1, io_ptr);
+         png_memcpy(data, buf, read); /* Copy far buffer to near buffer */
+         if (err != read)
             break;
          else
             check += err;
@@ -378,44 +440,49 @@ pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
       }
       while (remaining != 0);
    }
+
    if (check != length)
-   {
-      png_error(png_ptr, "read Error");
-   }
+      png_error(png_ptr, "Read Error");
+
+#ifdef PNG_IO_STATE_SUPPORTED
+   pngtest_check_io_state(png_ptr, length, PNG_IO_READING);
+#endif
 }
 #endif /* USE_FAR_KEYWORD */
 
-#if defined(PNG_WRITE_FLUSH_SUPPORTED)
-static void
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
+static void PNGCBAPI
 pngtest_flush(png_structp png_ptr)
 {
-#if !defined(_WIN32_WCE)
-   png_FILE_p io_ptr;
-   io_ptr = (png_FILE_p)CVT_PTR((png_ptr->io_ptr));
-   if (io_ptr != NULL)
-      fflush(io_ptr);
-#endif
+   /* Do nothing; fflush() is said to be just a waste of energy. */
+   PNG_UNUSED(png_ptr)   /* Stifle compiler warning */
 }
 #endif
 
 /* This is the function that does the actual writing of data.  If you are
-   not writing to a standard C stream, you should create a replacement
-   write_data function and use it at run time with png_set_write_fn(), rather
-   than changing the library. */
+ * not writing to a standard C stream, you should create a replacement
+ * write_data function and use it at run time with png_set_write_fn(), rather
+ * than changing the library.
+ */
 #ifndef USE_FAR_KEYWORD
-static void
+static void PNGCBAPI
 pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
 {
-   png_uint_32 check;
+   png_size_t check;
+
+   check = fwrite(data, 1, length, (png_FILE_p)png_get_io_ptr(png_ptr));
 
-   WRITEFILE((png_FILE_p)png_ptr->io_ptr,  data, length, check);
    if (check != length)
    {
       png_error(png_ptr, "Write Error");
    }
+
+#ifdef PNG_IO_STATE_SUPPORTED
+   pngtest_check_io_state(png_ptr, length, PNG_IO_WRITING);
+#endif
 }
 #else
-/* this is the model-independent version. Since the standard I/O library
+/* This is the model-independent version. Since the standard I/O library
    can't handle far buffers in the medium and small models, we have to copy
    the data.
 */
@@ -423,31 +490,34 @@ pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
 #define NEAR_BUF_SIZE 1024
 #define MIN(a,b) (a <= b ? a : b)
 
-static void
+static void PNGCBAPI
 pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
 {
-   png_uint_32 check;
+   png_size_t check;
    png_byte *near_data;  /* Needs to be "png_byte *" instead of "png_bytep" */
    png_FILE_p io_ptr;
 
    /* Check if data really is near. If so, use usual code. */
    near_data = (png_byte *)CVT_PTR_NOCHECK(data);
-   io_ptr = (png_FILE_p)CVT_PTR(png_ptr->io_ptr);
+   io_ptr = (png_FILE_p)CVT_PTR(png_get_io_ptr(png_ptr));
+
    if ((png_bytep)near_data == data)
    {
-      WRITEFILE(io_ptr, near_data, length, check);
+      check = fwrite(near_data, 1, length, io_ptr);
    }
+
    else
    {
       png_byte buf[NEAR_BUF_SIZE];
       png_size_t written, remaining, err;
       check = 0;
       remaining = length;
+
       do
       {
          written = MIN(NEAR_BUF_SIZE, remaining);
-         png_memcpy(buf, data, written); /* copy far buffer to near buffer */
-         WRITEFILE(io_ptr, buf, written, err);
+         png_memcpy(buf, data, written); /* Copy far buffer to near buffer */
+         err = fwrite(buf, 1, written, io_ptr);
          if (err != written)
             break;
          else
@@ -457,12 +527,16 @@ pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
       }
       while (remaining != 0);
    }
+
    if (check != length)
    {
       png_error(png_ptr, "Write Error");
    }
-}
 
+#ifdef PNG_IO_STATE_SUPPORTED
+   pngtest_check_io_state(png_ptr, length, PNG_IO_WRITING);
+#endif
+}
 #endif /* USE_FAR_KEYWORD */
 
 /* This function is called when there is a warning, but the library thinks
@@ -470,13 +544,18 @@ pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
  * here if you don't want to.  In the default configuration, png_ptr is
  * not used, but it is passed in case it may be useful.
  */
-static void
+static void PNGCBAPI
 pngtest_warning(png_structp png_ptr, png_const_charp message)
 {
    PNG_CONST char *name = "UNKNOWN (ERROR!)";
-   if (png_ptr != NULL && png_ptr->error_ptr != NULL)
-      name = png_ptr->error_ptr;
-   fprintf(STDERR, "%s: libpng warning: %s\n", name, message);
+   char *test;
+   test = png_get_error_ptr(png_ptr);
+
+   if (test == NULL)
+     fprintf(STDERR, "%s: libpng warning: %s\n", name, message);
+
+   else
+     fprintf(STDERR, "%s: libpng warning: %s\n", test, message);
 }
 
 /* This is the default error handling function.  Note that replacements for
@@ -484,30 +563,32 @@ pngtest_warning(png_structp png_ptr, png_const_charp message)
  * function is used by default, or if the program supplies NULL for the
  * error function pointer in png_set_error_fn().
  */
-static void
+static void PNGCBAPI
 pngtest_error(png_structp png_ptr, png_const_charp message)
 {
    pngtest_warning(png_ptr, message);
    /* We can return because png_error calls the default handler, which is
-    * actually OK in this case. */
+    * actually OK in this case.
+    */
 }
-#endif /* PNG_NO_STDIO */
+#endif /* !PNG_STDIO_SUPPORTED */
 /* END of code to validate stdio-free compilation */
 
 /* START of code to validate memory allocation and deallocation */
 #if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG
 
 /* Allocate memory.  For reasonable files, size should never exceed
-   64K.  However, zlib may allocate more then 64K if you don't tell
-   it not to.  See zconf.h and png.h for more information.  zlib does
-   need to allocate exactly 64K, so whatever you call here must
-   have the ability to do that.
-
-   This piece of code can be compiled to validate max 64K allocations
-   by setting MAXSEG_64K in zlib zconf.h *or* PNG_MAX_MALLOC_64K. */
+ * 64K.  However, zlib may allocate more then 64K if you don't tell
+ * it not to.  See zconf.h and png.h for more information.  zlib does
+ * need to allocate exactly 64K, so whatever you call here must
+ * have the ability to do that.
+ *
+ * This piece of code can be compiled to validate max 64K allocations
+ * by setting MAXSEG_64K in zlib zconf.h *or* PNG_MAX_MALLOC_64K.
+ */
 typedef struct memory_information
 {
-   png_uint_32               size;
+   png_alloc_size_t          size;
    png_voidp                 pointer;
    struct memory_information FAR *next;
 } memory_information;
@@ -519,15 +600,17 @@ static int maximum_allocation = 0;
 static int total_allocation = 0;
 static int num_allocations = 0;
 
-png_voidp png_debug_malloc PNGARG((png_structp png_ptr, png_uint_32 size));
-void png_debug_free PNGARG((png_structp png_ptr, png_voidp ptr));
+png_voidp PNGCBAPI png_debug_malloc PNGARG((png_structp png_ptr,
+    png_alloc_size_t size));
+void PNGCBAPI png_debug_free PNGARG((png_structp png_ptr, png_voidp ptr));
 
 png_voidp
-png_debug_malloc(png_structp png_ptr, png_uint_32 size)
+PNGCBAPI png_debug_malloc(png_structp png_ptr, png_alloc_size_t size)
 {
 
    /* png_malloc has already tested for NULL; png_create_struct calls
-      png_debug_malloc directly, with png_ptr == NULL which is OK */
+    * png_debug_malloc directly, with png_ptr == NULL which is OK
+    */
 
    if (size == 0)
       return (NULL);
@@ -539,41 +622,49 @@ png_debug_malloc(png_structp png_ptr, png_uint_32 size)
       memory_infop pinfo;
       png_set_mem_fn(png_ptr, NULL, NULL, NULL);
       pinfo = (memory_infop)png_malloc(png_ptr,
-         (png_uint_32)png_sizeof (*pinfo));
+         png_sizeof(*pinfo));
       pinfo->size = size;
       current_allocation += size;
       total_allocation += size;
       num_allocations ++;
+
       if (current_allocation > maximum_allocation)
          maximum_allocation = current_allocation;
-      pinfo->pointer = (png_voidp)png_malloc(png_ptr, size);
+
+      pinfo->pointer = png_malloc(png_ptr, size);
       /* Restore malloc_fn and free_fn */
-      png_set_mem_fn(png_ptr, png_voidp_NULL, (png_malloc_ptr)png_debug_malloc,
-         (png_free_ptr)png_debug_free);
+
+      png_set_mem_fn(png_ptr,
+          NULL, png_debug_malloc, png_debug_free);
+
       if (size != 0 && pinfo->pointer == NULL)
       {
          current_allocation -= size;
          total_allocation -= size;
          png_error(png_ptr,
-           "out of memory in pngtest->png_debug_malloc.");
+           "out of memory in pngtest->png_debug_malloc");
       }
+
       pinfo->next = pinformation;
       pinformation = pinfo;
       /* Make sure the caller isn't assuming zeroed memory. */
       png_memset(pinfo->pointer, 0xdd, pinfo->size);
-      if(verbose)
-         printf("png_malloc %lu bytes at %x\n",(unsigned long)size,
-          pinfo->pointer);
+
+      if (verbose)
+         printf("png_malloc %lu bytes at %p\n", (unsigned long)size,
+            pinfo->pointer);
+
       return (png_voidp)(pinfo->pointer);
    }
 }
 
 /* Free a pointer.  It is removed from the list at the same time. */
-void
+void PNGCBAPI
 png_debug_free(png_structp png_ptr, png_voidp ptr)
 {
    if (png_ptr == NULL)
       fprintf(STDERR, "NULL pointer to png_debug_free.\n");
+
    if (ptr == 0)
    {
 #if 0 /* This happens all the time. */
@@ -585,9 +676,11 @@ png_debug_free(png_structp png_ptr, png_voidp ptr)
    /* Unlink the element from the list. */
    {
       memory_infop FAR *ppinfo = &pinformation;
+
       for (;;)
       {
          memory_infop pinfo = *ppinfo;
+
          if (pinfo->pointer == ptr)
          {
             *ppinfo = pinfo->next;
@@ -598,27 +691,100 @@ png_debug_free(png_structp png_ptr, png_voidp ptr)
                the memory that is to be freed. */
             png_memset(ptr, 0x55, pinfo->size);
             png_free_default(png_ptr, pinfo);
-            pinfo=NULL;
+            pinfo = NULL;
             break;
          }
+
          if (pinfo->next == NULL)
          {
             fprintf(STDERR, "Pointer %x not found\n", (unsigned int)ptr);
             break;
          }
+
          ppinfo = &pinfo->next;
       }
    }
 
    /* Finally free the data. */
-   if(verbose)
-      printf("Freeing %x\n",ptr);
+   if (verbose)
+      printf("Freeing %p\n", ptr);
+
    png_free_default(png_ptr, ptr);
-   ptr=NULL;
+   ptr = NULL;
 }
 #endif /* PNG_USER_MEM_SUPPORTED && PNG_DEBUG */
 /* END of code to test memory allocation/deallocation */
 
+
+/* Demonstration of user chunk support of the sTER and vpAg chunks */
+#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
+
+/* (sTER is a public chunk not yet known by libpng.  vpAg is a private
+chunk used in ImageMagick to store "virtual page" size).  */
+
+static png_uint_32 user_chunk_data[4];
+
+    /* 0: sTER mode + 1
+     * 1: vpAg width
+     * 2: vpAg height
+     * 3: vpAg units
+     */
+
+static int PNGCBAPI read_user_chunk_callback(png_struct *png_ptr,
+   png_unknown_chunkp chunk)
+{
+   png_uint_32
+     *my_user_chunk_data;
+
+   /* Return one of the following:
+    *    return (-n);  chunk had an error
+    *    return (0);  did not recognize
+    *    return (n);  success
+    *
+    * The unknown chunk structure contains the chunk data:
+    * png_byte name[5];
+    * png_byte *data;
+    * png_size_t size;
+    *
+    * Note that libpng has already taken care of the CRC handling.
+    */
+
+   if (chunk->name[0] == 115 && chunk->name[1] ==  84 &&     /* s  T */
+       chunk->name[2] ==  69 && chunk->name[3] ==  82)       /* E  R */
+      {
+         /* Found sTER chunk */
+         if (chunk->size != 1)
+            return (-1); /* Error return */
+
+         if (chunk->data[0] != 0 && chunk->data[0] != 1)
+            return (-1);  /* Invalid mode */
+
+         my_user_chunk_data=(png_uint_32 *) png_get_user_chunk_ptr(png_ptr);
+         my_user_chunk_data[0]=chunk->data[0]+1;
+         return (1);
+      }
+
+   if (chunk->name[0] != 118 || chunk->name[1] != 112 ||    /* v  p */
+       chunk->name[2] !=  65 || chunk->name[3] != 103)      /* A  g */
+      return (0); /* Did not recognize */
+
+   /* Found ImageMagick vpAg chunk */
+
+   if (chunk->size != 9)
+      return (-1); /* Error return */
+
+   my_user_chunk_data=(png_uint_32 *) png_get_user_chunk_ptr(png_ptr);
+
+   my_user_chunk_data[1]=png_get_uint_31(png_ptr, chunk->data);
+   my_user_chunk_data[2]=png_get_uint_31(png_ptr, chunk->data + 4);
+   my_user_chunk_data[3]=(png_uint_32)chunk->data[8];
+
+   return (1);
+
+}
+#endif
+/* END of code to demonstrate user chunk support */
+
 /* Test one file */
 int
 test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
@@ -643,68 +809,65 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
    int bit_depth, color_type;
 #ifdef PNG_SETJMP_SUPPORTED
 #ifdef USE_FAR_KEYWORD
-   jmp_buf jmpbuf;
+   jmp_buf tmp_jmpbuf;
 #endif
 #endif
 
-#if defined(_WIN32_WCE)
-   TCHAR path[MAX_PATH];
-#endif
    char inbuf[256], outbuf[256];
 
    row_buf = NULL;
 
-#if defined(_WIN32_WCE)
-   MultiByteToWideChar(CP_ACP, 0, inname, -1, path, MAX_PATH);
-   if ((fpin = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE)
-#else
    if ((fpin = fopen(inname, "rb")) == NULL)
-#endif
    {
       fprintf(STDERR, "Could not find input file %s\n", inname);
       return (1);
    }
 
-#if defined(_WIN32_WCE)
-   MultiByteToWideChar(CP_ACP, 0, outname, -1, path, MAX_PATH);
-   if ((fpout = CreateFile(path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL)) == INVALID_HANDLE_VALUE)
-#else
    if ((fpout = fopen(outname, "wb")) == NULL)
-#endif
    {
       fprintf(STDERR, "Could not open output file %s\n", outname);
       FCLOSE(fpin);
       return (1);
    }
 
-   png_debug(0, "Allocating read and write structures\n");
+   pngtest_debug("Allocating read and write structures");
 #if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG
-   read_ptr = png_create_read_struct_2(PNG_LIBPNG_VER_STRING, png_voidp_NULL,
-      png_error_ptr_NULL, png_error_ptr_NULL, png_voidp_NULL,
-      (png_malloc_ptr)png_debug_malloc, (png_free_ptr)png_debug_free);
+   read_ptr =
+      png_create_read_struct_2(PNG_LIBPNG_VER_STRING, NULL,
+      NULL, NULL, NULL, png_debug_malloc, png_debug_free);
 #else
-   read_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, png_voidp_NULL,
-      png_error_ptr_NULL, png_error_ptr_NULL);
+   read_ptr =
+      png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
 #endif
-#if defined(PNG_NO_STDIO)
+#ifndef PNG_STDIO_SUPPORTED
    png_set_error_fn(read_ptr, (png_voidp)inname, pngtest_error,
        pngtest_warning);
 #endif
+
+#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
+   user_chunk_data[0] = 0;
+   user_chunk_data[1] = 0;
+   user_chunk_data[2] = 0;
+   user_chunk_data[3] = 0;
+   png_set_read_user_chunk_fn(read_ptr, user_chunk_data,
+     read_user_chunk_callback);
+
+#endif
 #ifdef PNG_WRITE_SUPPORTED
 #if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG
-   write_ptr = png_create_write_struct_2(PNG_LIBPNG_VER_STRING, png_voidp_NULL,
-      png_error_ptr_NULL, png_error_ptr_NULL, png_voidp_NULL,
-      (png_malloc_ptr)png_debug_malloc, (png_free_ptr)png_debug_free);
+   write_ptr =
+      png_create_write_struct_2(PNG_LIBPNG_VER_STRING, NULL,
+      NULL, NULL, NULL, png_debug_malloc, png_debug_free);
 #else
-   write_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, png_voidp_NULL,
-      png_error_ptr_NULL, png_error_ptr_NULL);
+   write_ptr =
+      png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
 #endif
-#if defined(PNG_NO_STDIO)
+#ifndef PNG_STDIO_SUPPORTED
    png_set_error_fn(write_ptr, (png_voidp)inname, pngtest_error,
        pngtest_warning);
 #endif
 #endif
-   png_debug(0, "Allocating read_info, write_info and end_info structures\n");
+   pngtest_debug("Allocating read_info, write_info and end_info structures");
    read_info_ptr = png_create_info_struct(read_ptr);
    end_info_ptr = png_create_info_struct(read_ptr);
 #ifdef PNG_WRITE_SUPPORTED
@@ -713,16 +876,16 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
 #endif
 
 #ifdef PNG_SETJMP_SUPPORTED
-   png_debug(0, "Setting jmpbuf for read struct\n");
+   pngtest_debug("Setting jmpbuf for read struct");
 #ifdef USE_FAR_KEYWORD
-   if (setjmp(jmpbuf))
+   if (setjmp(tmp_jmpbuf))
 #else
    if (setjmp(png_jmpbuf(read_ptr)))
 #endif
    {
       fprintf(STDERR, "%s -> %s: libpng read error\n", inname, outname);
-      if (row_buf)
-         png_free(read_ptr, row_buf);
+      png_free(read_ptr, row_buf);
+      row_buf = NULL;
       png_destroy_read_struct(&read_ptr, &read_info_ptr, &end_info_ptr);
 #ifdef PNG_WRITE_SUPPORTED
       png_destroy_info_struct(write_ptr, &write_end_info_ptr);
@@ -733,13 +896,14 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
       return (1);
    }
 #ifdef USE_FAR_KEYWORD
-   png_memcpy(png_jmpbuf(read_ptr),jmpbuf,png_sizeof(jmp_buf));
+   png_memcpy(png_jmpbuf(read_ptr), tmp_jmpbuf, png_sizeof(jmp_buf));
 #endif
 
 #ifdef PNG_WRITE_SUPPORTED
-   png_debug(0, "Setting jmpbuf for write struct\n");
+   pngtest_debug("Setting jmpbuf for write struct");
 #ifdef USE_FAR_KEYWORD
-   if (setjmp(jmpbuf))
+
+   if (setjmp(tmp_jmpbuf))
 #else
    if (setjmp(png_jmpbuf(write_ptr)))
 #endif
@@ -754,14 +918,15 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
       FCLOSE(fpout);
       return (1);
    }
+
 #ifdef USE_FAR_KEYWORD
-   png_memcpy(png_jmpbuf(write_ptr),jmpbuf,png_sizeof(jmp_buf));
+   png_memcpy(png_jmpbuf(write_ptr), tmp_jmpbuf, png_sizeof(jmp_buf));
 #endif
 #endif
 #endif
 
-   png_debug(0, "Initializing input and output streams\n");
-#if !defined(PNG_NO_STDIO)
+   pngtest_debug("Initializing input and output streams");
+#ifdef PNG_STDIO_SUPPORTED
    png_init_io(read_ptr, fpin);
 #  ifdef PNG_WRITE_SUPPORTED
    png_init_io(write_ptr, fpout);
@@ -770,60 +935,72 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
    png_set_read_fn(read_ptr, (png_voidp)fpin, pngtest_read_data);
 #  ifdef PNG_WRITE_SUPPORTED
    png_set_write_fn(write_ptr, (png_voidp)fpout,  pngtest_write_data,
-#    if defined(PNG_WRITE_FLUSH_SUPPORTED)
+#    ifdef PNG_WRITE_FLUSH_SUPPORTED
       pngtest_flush);
 #    else
       NULL);
 #    endif
 #  endif
 #endif
-   if(status_dots_requested == 1)
+
+#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED
+   /* Normally one would use Z_DEFAULT_STRATEGY for text compression.
+    * This is here just to make pngtest replicate the results from libpng
+    * versions prior to 1.5.4, and to test this new API.
+    */
+   png_set_text_compression_strategy(write_ptr, Z_FILTERED);
+#endif
+
+   if (status_dots_requested == 1)
    {
 #ifdef PNG_WRITE_SUPPORTED
       png_set_write_status_fn(write_ptr, write_row_callback);
 #endif
       png_set_read_status_fn(read_ptr, read_row_callback);
    }
+
    else
    {
 #ifdef PNG_WRITE_SUPPORTED
-      png_set_write_status_fn(write_ptr, png_write_status_ptr_NULL);
+      png_set_write_status_fn(write_ptr, NULL);
 #endif
-      png_set_read_status_fn(read_ptr, png_read_status_ptr_NULL);
+      png_set_read_status_fn(read_ptr, NULL);
    }
 
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
+#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
    {
-     int i;
-     for(i=0; i<256; i++)
-        filters_used[i]=0;
-     png_set_read_user_transform_fn(read_ptr, count_filters);
+      int i;
+
+      for (i = 0; i<256; i++)
+         filters_used[i] = 0;
+
+      png_set_read_user_transform_fn(read_ptr, count_filters);
    }
 #endif
-#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
-   zero_samples=0;
+#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
+   zero_samples = 0;
    png_set_write_user_transform_fn(write_ptr, count_zero_samples);
 #endif
 
-#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
+#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
 #  ifndef PNG_HANDLE_CHUNK_ALWAYS
 #    define PNG_HANDLE_CHUNK_ALWAYS       3
 #  endif
    png_set_keep_unknown_chunks(read_ptr, PNG_HANDLE_CHUNK_ALWAYS,
-      png_bytep_NULL, 0);
+      NULL, 0);
 #endif
-#if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)
+#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
 #  ifndef PNG_HANDLE_CHUNK_IF_SAFE
 #    define PNG_HANDLE_CHUNK_IF_SAFE      2
 #  endif
    png_set_keep_unknown_chunks(write_ptr, PNG_HANDLE_CHUNK_IF_SAFE,
-      png_bytep_NULL, 0);
+      NULL, 0);
 #endif
 
-   png_debug(0, "Reading info struct\n");
+   pngtest_debug("Reading info struct");
    png_read_info(read_ptr, read_info_ptr);
 
-   png_debug(0, "Transferring info struct\n");
+   pngtest_debug("Transferring info struct");
    {
       int interlace_type, compression_type, filter_type;
 
@@ -831,42 +1008,42 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
           &color_type, &interlace_type, &compression_type, &filter_type))
       {
          png_set_IHDR(write_ptr, write_info_ptr, width, height, bit_depth,
-#if defined(PNG_WRITE_INTERLACING_SUPPORTED)
+#ifdef PNG_WRITE_INTERLACING_SUPPORTED
             color_type, interlace_type, compression_type, filter_type);
 #else
             color_type, PNG_INTERLACE_NONE, compression_type, filter_type);
 #endif
       }
    }
-#if defined(PNG_FIXED_POINT_SUPPORTED)
-#if defined(PNG_cHRM_SUPPORTED)
+#ifdef PNG_FIXED_POINT_SUPPORTED
+#ifdef PNG_cHRM_SUPPORTED
    {
       png_fixed_point white_x, white_y, red_x, red_y, green_x, green_y, blue_x,
          blue_y;
-      if (png_get_cHRM_fixed(read_ptr, read_info_ptr, &white_x, &white_y, &red_x,
-         &red_y, &green_x, &green_y, &blue_x, &blue_y))
+
+      if (png_get_cHRM_fixed(read_ptr, read_info_ptr, &white_x, &white_y,
+         &red_x, &red_y, &green_x, &green_y, &blue_x, &blue_y))
       {
          png_set_cHRM_fixed(write_ptr, write_info_ptr, white_x, white_y, red_x,
             red_y, green_x, green_y, blue_x, blue_y);
       }
    }
 #endif
-#if defined(PNG_gAMA_SUPPORTED)
+#ifdef PNG_gAMA_SUPPORTED
    {
       png_fixed_point gamma;
 
       if (png_get_gAMA_fixed(read_ptr, read_info_ptr, &gamma))
-      {
          png_set_gAMA_fixed(write_ptr, write_info_ptr, gamma);
-      }
    }
 #endif
 #else /* Use floating point versions */
-#if defined(PNG_FLOATING_POINT_SUPPORTED)
-#if defined(PNG_cHRM_SUPPORTED)
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+#ifdef PNG_cHRM_SUPPORTED
    {
       double white_x, white_y, red_x, red_y, green_x, green_y, blue_x,
          blue_y;
+
       if (png_get_cHRM(read_ptr, read_info_ptr, &white_x, &white_y, &red_x,
          &red_y, &green_x, &green_y, &blue_x, &blue_y))
       {
@@ -875,22 +1052,20 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
       }
    }
 #endif
-#if defined(PNG_gAMA_SUPPORTED)
+#ifdef PNG_gAMA_SUPPORTED
    {
       double gamma;
 
       if (png_get_gAMA(read_ptr, read_info_ptr, &gamma))
-      {
          png_set_gAMA(write_ptr, write_info_ptr, gamma);
-      }
    }
 #endif
-#endif /* floating point */
-#endif /* fixed point */
-#if defined(PNG_iCCP_SUPPORTED)
+#endif /* Floating point */
+#endif /* Fixed point */
+#ifdef PNG_iCCP_SUPPORTED
    {
       png_charp name;
-      png_charp profile;
+      png_bytep profile;
       png_uint_32 proflen;
       int compression_type;
 
@@ -902,14 +1077,12 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
       }
    }
 #endif
-#if defined(PNG_sRGB_SUPPORTED)
+#ifdef PNG_sRGB_SUPPORTED
    {
       int intent;
 
       if (png_get_sRGB(read_ptr, read_info_ptr, &intent))
-      {
          png_set_sRGB(write_ptr, write_info_ptr, intent);
-      }
    }
 #endif
    {
@@ -917,11 +1090,9 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
       int num_palette;
 
       if (png_get_PLTE(read_ptr, read_info_ptr, &palette, &num_palette))
-      {
          png_set_PLTE(write_ptr, write_info_ptr, palette, num_palette);
-      }
    }
-#if defined(PNG_bKGD_SUPPORTED)
+#ifdef PNG_bKGD_SUPPORTED
    {
       png_color_16p background;
 
@@ -931,28 +1102,27 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
       }
    }
 #endif
-#if defined(PNG_hIST_SUPPORTED)
+#ifdef PNG_hIST_SUPPORTED
    {
       png_uint_16p hist;
 
       if (png_get_hIST(read_ptr, read_info_ptr, &hist))
-      {
          png_set_hIST(write_ptr, write_info_ptr, hist);
-      }
    }
 #endif
-#if defined(PNG_oFFs_SUPPORTED)
+#ifdef PNG_oFFs_SUPPORTED
    {
       png_int_32 offset_x, offset_y;
       int unit_type;
 
-      if (png_get_oFFs(read_ptr, read_info_ptr,&offset_x,&offset_y,&unit_type))
+      if (png_get_oFFs(read_ptr, read_info_ptr, &offset_x, &offset_y,
+          &unit_type))
       {
          png_set_oFFs(write_ptr, write_info_ptr, offset_x, offset_y, unit_type);
       }
    }
 #endif
-#if defined(PNG_pCAL_SUPPORTED)
+#ifdef PNG_pCAL_SUPPORTED
    {
       png_charp purpose, units;
       png_charpp params;
@@ -967,28 +1137,24 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
       }
    }
 #endif
-#if defined(PNG_pHYs_SUPPORTED)
+#ifdef PNG_pHYs_SUPPORTED
    {
       png_uint_32 res_x, res_y;
       int unit_type;
 
       if (png_get_pHYs(read_ptr, read_info_ptr, &res_x, &res_y, &unit_type))
-      {
          png_set_pHYs(write_ptr, write_info_ptr, res_x, res_y, unit_type);
-      }
    }
 #endif
-#if defined(PNG_sBIT_SUPPORTED)
+#ifdef PNG_sBIT_SUPPORTED
    {
       png_color_8p sig_bit;
 
       if (png_get_sBIT(read_ptr, read_info_ptr, &sig_bit))
-      {
          png_set_sBIT(write_ptr, write_info_ptr, sig_bit);
-      }
    }
 #endif
-#if defined(PNG_sCAL_SUPPORTED)
+#ifdef PNG_sCAL_SUPPORTED
 #ifdef PNG_FLOATING_POINT_SUPPORTED
    {
       int unit;
@@ -1009,69 +1175,85 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
       if (png_get_sCAL_s(read_ptr, read_info_ptr, &unit, &scal_width,
           &scal_height))
       {
-         png_set_sCAL_s(write_ptr, write_info_ptr, unit, scal_width, scal_height);
+         png_set_sCAL_s(write_ptr, write_info_ptr, unit, scal_width,
+             scal_height);
       }
    }
 #endif
 #endif
 #endif
-#if defined(PNG_TEXT_SUPPORTED)
+#ifdef PNG_TEXT_SUPPORTED
    {
       png_textp text_ptr;
       int num_text;
 
       if (png_get_text(read_ptr, read_info_ptr, &text_ptr, &num_text) > 0)
       {
-         png_debug1(0, "Handling %d iTXt/tEXt/zTXt chunks\n", num_text);
+         pngtest_debug1("Handling %d iTXt/tEXt/zTXt chunks", num_text);
          png_set_text(write_ptr, write_info_ptr, text_ptr, num_text);
       }
    }
 #endif
-#if defined(PNG_tIME_SUPPORTED)
+#ifdef PNG_tIME_SUPPORTED
    {
       png_timep mod_time;
 
       if (png_get_tIME(read_ptr, read_info_ptr, &mod_time))
       {
          png_set_tIME(write_ptr, write_info_ptr, mod_time);
-#if defined(PNG_TIME_RFC1123_SUPPORTED)
-         /* we have to use png_strcpy instead of "=" because the string
-            pointed to by png_convert_to_rfc1123() gets free'ed before
-            we use it */
-         png_strcpy(tIME_string,png_convert_to_rfc1123(read_ptr, mod_time));
+#ifdef PNG_TIME_RFC1123_SUPPORTED
+         /* We have to use png_memcpy instead of "=" because the string
+          * pointed to by png_convert_to_rfc1123() gets free'ed before
+          * we use it.
+          */
+         png_memcpy(tIME_string,
+                    png_convert_to_rfc1123(read_ptr, mod_time),
+                    png_sizeof(tIME_string));
+
+         tIME_string[png_sizeof(tIME_string) - 1] = '\0';
          tIME_chunk_present++;
 #endif /* PNG_TIME_RFC1123_SUPPORTED */
       }
    }
 #endif
-#if defined(PNG_tRNS_SUPPORTED)
+#ifdef PNG_tRNS_SUPPORTED
    {
-      png_bytep trans;
+      png_bytep trans_alpha;
       int num_trans;
-      png_color_16p trans_values;
+      png_color_16p trans_color;
 
-      if (png_get_tRNS(read_ptr, read_info_ptr, &trans, &num_trans,
-         &trans_values))
+      if (png_get_tRNS(read_ptr, read_info_ptr, &trans_alpha, &num_trans,
+         &trans_color))
       {
-         png_set_tRNS(write_ptr, write_info_ptr, trans, num_trans,
-            trans_values);
+         int sample_max = (1 << bit_depth);
+         /* libpng doesn't reject a tRNS chunk with out-of-range samples */
+         if (!((color_type == PNG_COLOR_TYPE_GRAY &&
+             (int)trans_color->gray > sample_max) ||
+             (color_type == PNG_COLOR_TYPE_RGB &&
+             ((int)trans_color->red > sample_max ||
+             (int)trans_color->green > sample_max ||
+             (int)trans_color->blue > sample_max))))
+            png_set_tRNS(write_ptr, write_info_ptr, trans_alpha, num_trans,
+               trans_color);
       }
    }
 #endif
-#if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)
+#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
    {
       png_unknown_chunkp unknowns;
-      int num_unknowns = (int)png_get_unknown_chunks(read_ptr, read_info_ptr,
+      int num_unknowns = png_get_unknown_chunks(read_ptr, read_info_ptr,
          &unknowns);
+
       if (num_unknowns)
       {
-         png_size_t i;
+         int i;
          png_set_unknown_chunks(write_ptr, write_info_ptr, unknowns,
            num_unknowns);
-         /* copy the locations from the read_info_ptr.  The automatically
-            generated locations in write_info_ptr are wrong because we
-            haven't written anything yet */
-         for (i = 0; i < (png_size_t)num_unknowns; i++)
+         /* Copy the locations from the read_info_ptr.  The automatically
+          * generated locations in write_info_ptr are wrong because we
+          * haven't written anything yet.
+          */
+         for (i = 0; i < num_unknowns; i++)
            png_set_unknown_chunk_location(write_ptr, write_info_ptr, i,
              unknowns[i].location);
       }
@@ -1079,21 +1261,59 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
 #endif
 
 #ifdef PNG_WRITE_SUPPORTED
-   png_debug(0, "\nWriting info struct\n");
+   pngtest_debug("Writing info struct");
 
 /* If we wanted, we could write info in two steps:
-   png_write_info_before_PLTE(write_ptr, write_info_ptr);
+ * png_write_info_before_PLTE(write_ptr, write_info_ptr);
  */
    png_write_info(write_ptr, write_info_ptr);
+
+#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
+   if (user_chunk_data[0] != 0)
+   {
+      png_byte png_sTER[5] = {115,  84,  69,  82, '\0'};
+
+      unsigned char
+        ster_chunk_data[1];
+
+      if (verbose)
+         fprintf(STDERR, "\n stereo mode = %lu\n",
+           (unsigned long)(user_chunk_data[0] - 1));
+
+      ster_chunk_data[0]=(unsigned char)(user_chunk_data[0] - 1);
+      png_write_chunk(write_ptr, png_sTER, ster_chunk_data, 1);
+   }
+
+   if (user_chunk_data[1] != 0 || user_chunk_data[2] != 0)
+   {
+      png_byte png_vpAg[5] = {118, 112,  65, 103, '\0'};
+
+      unsigned char
+        vpag_chunk_data[9];
+
+      if (verbose)
+         fprintf(STDERR, " vpAg = %lu x %lu, units = %lu\n",
+           (unsigned long)user_chunk_data[1],
+           (unsigned long)user_chunk_data[2],
+           (unsigned long)user_chunk_data[3]);
+
+      png_save_uint_32(vpag_chunk_data, user_chunk_data[1]);
+      png_save_uint_32(vpag_chunk_data + 4, user_chunk_data[2]);
+      vpag_chunk_data[8] = (unsigned char)(user_chunk_data[3] & 0xff);
+      png_write_chunk(write_ptr, png_vpAg, vpag_chunk_data, 9);
+   }
+
+#endif
 #endif
 
 #ifdef SINGLE_ROWBUF_ALLOC
-   png_debug(0, "\nAllocating row buffer...");
+   pngtest_debug("Allocating row buffer...");
    row_buf = (png_bytep)png_malloc(read_ptr,
       png_get_rowbytes(read_ptr, read_info_ptr));
-   png_debug1(0, "0x%08lx\n\n", (unsigned long)row_buf);
+
+   pngtest_debug1("\t0x%08lx", (unsigned long)row_buf);
 #endif /* SINGLE_ROWBUF_ALLOC */
-   png_debug(0, "Writing row data\n");
+   pngtest_debug("Writing row data");
 
 #if defined(PNG_READ_INTERLACING_SUPPORTED) || \
   defined(PNG_WRITE_INTERLACING_SUPPORTED)
@@ -1102,7 +1322,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
    png_set_interlace_handling(write_ptr);
 #  endif
 #else
-   num_pass=1;
+   num_pass = 1;
 #endif
 
 #ifdef PNGTEST_TIMING
@@ -1112,17 +1332,19 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
 #endif
    for (pass = 0; pass < num_pass; pass++)
    {
-      png_debug1(0, "Writing row data for pass %d\n",pass);
+      pngtest_debug1("Writing row data for pass %d", pass);
       for (y = 0; y < height; y++)
       {
 #ifndef SINGLE_ROWBUF_ALLOC
-         png_debug2(0, "\nAllocating row buffer (pass %d, y = %ld)...", pass,y);
+         pngtest_debug2("Allocating row buffer (pass %d, y = %u)...", pass, y);
          row_buf = (png_bytep)png_malloc(read_ptr,
             png_get_rowbytes(read_ptr, read_info_ptr));
-         png_debug2(0, "0x%08lx (%ld bytes)\n", (unsigned long)row_buf,
+
+         pngtest_debug2("\t0x%08lx (%u bytes)", (unsigned long)row_buf,
             png_get_rowbytes(read_ptr, read_info_ptr));
+
 #endif /* !SINGLE_ROWBUF_ALLOC */
-         png_read_rows(read_ptr, (png_bytepp)&row_buf, png_bytepp_NULL, 1);
+         png_read_rows(read_ptr, (png_bytepp)&row_buf, NULL, 1);
 
 #ifdef PNG_WRITE_SUPPORTED
 #ifdef PNGTEST_TIMING
@@ -1139,66 +1361,72 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
 #endif /* PNG_WRITE_SUPPORTED */
 
 #ifndef SINGLE_ROWBUF_ALLOC
-         png_debug2(0, "Freeing row buffer (pass %d, y = %ld)\n\n", pass, y);
+         pngtest_debug2("Freeing row buffer (pass %d, y = %u)", pass, y);
          png_free(read_ptr, row_buf);
+         row_buf = NULL;
 #endif /* !SINGLE_ROWBUF_ALLOC */
       }
    }
 
-#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
+#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
    png_free_data(read_ptr, read_info_ptr, PNG_FREE_UNKN, -1);
 #endif
-#if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)
+#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
    png_free_data(write_ptr, write_info_ptr, PNG_FREE_UNKN, -1);
 #endif
 
-   png_debug(0, "Reading and writing end_info data\n");
+   pngtest_debug("Reading and writing end_info data");
 
    png_read_end(read_ptr, end_info_ptr);
-#if defined(PNG_TEXT_SUPPORTED)
+#ifdef PNG_TEXT_SUPPORTED
    {
       png_textp text_ptr;
       int num_text;
 
       if (png_get_text(read_ptr, end_info_ptr, &text_ptr, &num_text) > 0)
       {
-         png_debug1(0, "Handling %d iTXt/tEXt/zTXt chunks\n", num_text);
+         pngtest_debug1("Handling %d iTXt/tEXt/zTXt chunks", num_text);
          png_set_text(write_ptr, write_end_info_ptr, text_ptr, num_text);
       }
    }
 #endif
-#if defined(PNG_tIME_SUPPORTED)
+#ifdef PNG_tIME_SUPPORTED
    {
       png_timep mod_time;
 
       if (png_get_tIME(read_ptr, end_info_ptr, &mod_time))
       {
          png_set_tIME(write_ptr, write_end_info_ptr, mod_time);
-#if defined(PNG_TIME_RFC1123_SUPPORTED)
-         /* we have to use png_strcpy instead of "=" because the string
+#ifdef PNG_TIME_RFC1123_SUPPORTED
+         /* We have to use png_memcpy instead of "=" because the string
             pointed to by png_convert_to_rfc1123() gets free'ed before
             we use it */
-         png_strcpy(tIME_string,png_convert_to_rfc1123(read_ptr, mod_time));
+         png_memcpy(tIME_string,
+                    png_convert_to_rfc1123(read_ptr, mod_time),
+                    png_sizeof(tIME_string));
+
+         tIME_string[png_sizeof(tIME_string) - 1] = '\0';
          tIME_chunk_present++;
 #endif /* PNG_TIME_RFC1123_SUPPORTED */
       }
    }
 #endif
-#if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)
+#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
    {
       png_unknown_chunkp unknowns;
-      int num_unknowns;
-      num_unknowns = (int)png_get_unknown_chunks(read_ptr, end_info_ptr,
+      int num_unknowns = png_get_unknown_chunks(read_ptr, end_info_ptr,
          &unknowns);
+
       if (num_unknowns)
       {
-         png_size_t i;
+         int i;
          png_set_unknown_chunks(write_ptr, write_end_info_ptr, unknowns,
            num_unknowns);
-         /* copy the locations from the read_info_ptr.  The automatically
-            generated locations in write_end_info_ptr are wrong because we
-            haven't written the end_info yet */
-         for (i = 0; i < (png_size_t)num_unknowns; i++)
+         /* Copy the locations from the read_info_ptr.  The automatically
+          * generated locations in write_end_info_ptr are wrong because we
+          * haven't written the end_info yet.
+          */
+         for (i = 0; i < num_unknowns; i++)
            png_set_unknown_chunk_location(write_ptr, write_end_info_ptr, i,
              unknowns[i].location);
       }
@@ -1209,82 +1437,74 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
 #endif
 
 #ifdef PNG_EASY_ACCESS_SUPPORTED
-   if(verbose)
+   if (verbose)
    {
       png_uint_32 iwidth, iheight;
       iwidth = png_get_image_width(write_ptr, write_info_ptr);
       iheight = png_get_image_height(write_ptr, write_info_ptr);
-      fprintf(STDERR, "Image width = %lu, height = %lu\n",
+      fprintf(STDERR, "\n Image width = %lu, height = %lu\n",
          (unsigned long)iwidth, (unsigned long)iheight);
    }
 #endif
 
-   png_debug(0, "Destroying data structs\n");
+   pngtest_debug("Destroying data structs");
 #ifdef SINGLE_ROWBUF_ALLOC
-   png_debug(1, "destroying row_buf for read_ptr\n");
+   pngtest_debug("destroying row_buf for read_ptr");
    png_free(read_ptr, row_buf);
-   row_buf=NULL;
+   row_buf = NULL;
 #endif /* SINGLE_ROWBUF_ALLOC */
-   png_debug(1, "destroying read_ptr, read_info_ptr, end_info_ptr\n");
+   pngtest_debug("destroying read_ptr, read_info_ptr, end_info_ptr");
    png_destroy_read_struct(&read_ptr, &read_info_ptr, &end_info_ptr);
 #ifdef PNG_WRITE_SUPPORTED
-   png_debug(1, "destroying write_end_info_ptr\n");
+   pngtest_debug("destroying write_end_info_ptr");
    png_destroy_info_struct(write_ptr, &write_end_info_ptr);
-   png_debug(1, "destroying write_ptr, write_info_ptr\n");
+   pngtest_debug("destroying write_ptr, write_info_ptr");
    png_destroy_write_struct(&write_ptr, &write_info_ptr);
 #endif
-   png_debug(0, "Destruction complete.\n");
+   pngtest_debug("Destruction complete.");
 
    FCLOSE(fpin);
    FCLOSE(fpout);
 
-   png_debug(0, "Opening files for comparison\n");
-#if defined(_WIN32_WCE)
-   MultiByteToWideChar(CP_ACP, 0, inname, -1, path, MAX_PATH);
-   if ((fpin = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE)
-#else
+   pngtest_debug("Opening files for comparison");
    if ((fpin = fopen(inname, "rb")) == NULL)
-#endif
    {
       fprintf(STDERR, "Could not find file %s\n", inname);
       return (1);
    }
 
-#if defined(_WIN32_WCE)
-   MultiByteToWideChar(CP_ACP, 0, outname, -1, path, MAX_PATH);
-   if ((fpout = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE)
-#else
    if ((fpout = fopen(outname, "rb")) == NULL)
-#endif
    {
       fprintf(STDERR, "Could not find file %s\n", outname);
       FCLOSE(fpin);
       return (1);
    }
 
-   for(;;)
+   for (;;)
    {
       png_size_t num_in, num_out;
 
-      READFILE(fpin, inbuf, 1, num_in);
-      READFILE(fpout, outbuf, 1, num_out);
+         num_in = fread(inbuf, 1, 1, fpin);
+         num_out = fread(outbuf, 1, 1, fpout);
 
       if (num_in != num_out)
       {
          fprintf(STDERR, "\nFiles %s and %s are of a different size\n",
                  inname, outname);
-         if(wrote_question == 0)
+
+         if (wrote_question == 0)
          {
             fprintf(STDERR,
          "   Was %s written with the same maximum IDAT chunk size (%d bytes),",
-              inname,PNG_ZBUF_SIZE);
+              inname, PNG_ZBUF_SIZE);
             fprintf(STDERR,
               "\n   filtering heuristic (libpng default), compression");
             fprintf(STDERR,
               " level (zlib default),\n   and zlib version (%s)?\n\n",
               ZLIB_VERSION);
-            wrote_question=1;
+            wrote_question = 1;
          }
+
          FCLOSE(fpin);
          FCLOSE(fpout);
          return (0);
@@ -1296,18 +1516,20 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
       if (png_memcmp(inbuf, outbuf, num_in))
       {
          fprintf(STDERR, "\nFiles %s and %s are different\n", inname, outname);
-         if(wrote_question == 0)
+
+         if (wrote_question == 0)
          {
             fprintf(STDERR,
          "   Was %s written with the same maximum IDAT chunk size (%d bytes),",
-                 inname,PNG_ZBUF_SIZE);
+                 inname, PNG_ZBUF_SIZE);
             fprintf(STDERR,
               "\n   filtering heuristic (libpng default), compression");
             fprintf(STDERR,
               " level (zlib default),\n   and zlib version (%s)?\n\n",
               ZLIB_VERSION);
-            wrote_question=1;
+            wrote_question = 1;
          }
+
          FCLOSE(fpin);
          FCLOSE(fpout);
          return (0);
@@ -1320,7 +1542,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
    return (0);
 }
 
-/* input and output filenames */
+/* Input and output filenames */
 #ifdef RISCOS
 static PNG_CONST char *inname = "pngtest/png";
 static PNG_CONST char *outname = "pngout/png";
@@ -1335,23 +1557,23 @@ main(int argc, char *argv[])
    int multiple = 0;
    int ierror = 0;
 
-   fprintf(STDERR, "Testing libpng version %s\n", PNG_LIBPNG_VER_STRING);
+   fprintf(STDERR, "\n Testing libpng version %s\n", PNG_LIBPNG_VER_STRING);
    fprintf(STDERR, "   with zlib   version %s\n", ZLIB_VERSION);
-   fprintf(STDERR,"%s",png_get_copyright(NULL));
+   fprintf(STDERR, "%s", png_get_copyright(NULL));
    /* Show the version of libpng used in building the library */
-   fprintf(STDERR," library (%lu):%s",
+   fprintf(STDERR, " library (%lu):%s",
       (unsigned long)png_access_version_number(),
       png_get_header_version(NULL));
+
    /* Show the version of libpng used in building the application */
-   fprintf(STDERR," pngtest (%lu):%s", (unsigned long)PNG_LIBPNG_VER,
+   fprintf(STDERR, " pngtest (%lu):%s", (unsigned long)PNG_LIBPNG_VER,
       PNG_HEADER_VERSION_STRING);
-   fprintf(STDERR," png_sizeof(png_struct)=%ld, png_sizeof(png_info)=%ld\n",
-                    (long)png_sizeof(png_struct), (long)png_sizeof(png_info));
 
    /* Do some consistency checking on the memory allocation settings, I'm
-      not sure this matters, but it is nice to know, the first of these
-      tests should be impossible because of the way the macros are set
-      in pngconf.h */
+    * not sure this matters, but it is nice to know, the first of these
+    * tests should be impossible because of the way the macros are set
+    * in pngconf.h
+    */
 #if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K)
       fprintf(STDERR, " NOTE: Zlib compiled for max 64k, libpng not\n");
 #endif
@@ -1376,6 +1598,7 @@ main(int argc, char *argv[])
          multiple = 1;
          status_dots_requested = 0;
       }
+
       else if (strcmp(argv[1], "-mv") == 0 ||
                strcmp(argv[1], "-vm") == 0 )
       {
@@ -1383,12 +1606,14 @@ main(int argc, char *argv[])
          verbose = 1;
          status_dots_requested = 1;
       }
+
       else if (strcmp(argv[1], "-v") == 0)
       {
          verbose = 1;
          status_dots_requested = 1;
          inname = argv[2];
       }
+
       else
       {
          inname = argv[1];
@@ -1396,10 +1621,10 @@ main(int argc, char *argv[])
       }
    }
 
-   if (!multiple && argc == 3+verbose)
-     outname = argv[2+verbose];
+   if (!multiple && argc == 3 + verbose)
+     outname = argv[2 + verbose];
 
-   if ((!multiple && argc > 3+verbose) || (multiple && argc < 2))
+   if ((!multiple && argc > 3 + verbose) || (multiple && argc < 2))
    {
      fprintf(STDERR,
        "usage: %s [infile.png] [outfile.png]\n\t%s -m {infile.png}\n",
@@ -1419,32 +1644,34 @@ main(int argc, char *argv[])
 #endif
       for (i=2; i<argc; ++i)
       {
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
-         int k;
-#endif
          int kerror;
-         fprintf(STDERR, "Testing %s:",argv[i]);
+         fprintf(STDERR, "\n Testing %s:", argv[i]);
          kerror = test_one_file(argv[i], outname);
          if (kerror == 0)
          {
-#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
+            int k;
+#endif
+#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
             fprintf(STDERR, "\n PASS (%lu zero samples)\n",
                (unsigned long)zero_samples);
 #else
             fprintf(STDERR, " PASS\n");
 #endif
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
-            for (k=0; k<256; k++)
-               if(filters_used[k])
+#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
+            for (k = 0; k<256; k++)
+               if (filters_used[k])
                   fprintf(STDERR, " Filter %d was used %lu times\n",
-                     k,(unsigned long)filters_used[k]);
+                     k, (unsigned long)filters_used[k]);
 #endif
-#if defined(PNG_TIME_RFC1123_SUPPORTED)
-         if(tIME_chunk_present != 0)
-            fprintf(STDERR, " tIME = %s\n",tIME_string);
+#ifdef PNG_TIME_RFC1123_SUPPORTED
+         if (tIME_chunk_present != 0)
+            fprintf(STDERR, " tIME = %s\n", tIME_string);
+
          tIME_chunk_present = 0;
 #endif /* PNG_TIME_RFC1123_SUPPORTED */
          }
+
          else
          {
             fprintf(STDERR, " FAIL\n");
@@ -1453,17 +1680,20 @@ main(int argc, char *argv[])
 #if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG
          if (allocation_now != current_allocation)
             fprintf(STDERR, "MEMORY ERROR: %d bytes lost\n",
-               current_allocation-allocation_now);
+               current_allocation - allocation_now);
+
          if (current_allocation != 0)
          {
             memory_infop pinfo = pinformation;
 
             fprintf(STDERR, "MEMORY ERROR: %d bytes still allocated\n",
                current_allocation);
+
             while (pinfo != NULL)
             {
-               fprintf(STDERR, " %lu bytes at %x\n", (unsigned long)pinfo->size,
-                 (unsigned int) pinfo->pointer);
+               fprintf(STDERR, " %lu bytes at %x\n",
+                 (unsigned long)pinfo->size,
+                 (unsigned int)pinfo->pointer);
                pinfo = pinfo->next;
             }
          }
@@ -1480,65 +1710,76 @@ main(int argc, char *argv[])
             num_allocations);
 #endif
    }
+
    else
    {
       int i;
-      for (i=0; i<3; ++i)
+      for (i = 0; i<3; ++i)
       {
          int kerror;
 #if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG
          int allocation_now = current_allocation;
 #endif
-         if (i == 1) status_dots_requested = 1;
-         else if(verbose == 0)status_dots_requested = 0;
+         if (i == 1)
+            status_dots_requested = 1;
+
+         else if (verbose == 0)
+            status_dots_requested = 0;
+
          if (i == 0 || verbose == 1 || ierror != 0)
-            fprintf(STDERR, "Testing %s:",inname);
+            fprintf(STDERR, "\n Testing %s:", inname);
+
          kerror = test_one_file(inname, outname);
-         if(kerror == 0)
+
+         if (kerror == 0)
          {
-            if(verbose == 1 || i == 2)
+            if (verbose == 1 || i == 2)
             {
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
+#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
                 int k;
 #endif
-#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
                 fprintf(STDERR, "\n PASS (%lu zero samples)\n",
                    (unsigned long)zero_samples);
 #else
                 fprintf(STDERR, " PASS\n");
 #endif
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
-                for (k=0; k<256; k++)
-                   if(filters_used[k])
+#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
+                for (k = 0; k<256; k++)
+                   if (filters_used[k])
                       fprintf(STDERR, " Filter %d was used %lu times\n",
-                         k,(unsigned long)filters_used[k]);
+                         k, (unsigned long)filters_used[k]);
 #endif
-#if defined(PNG_TIME_RFC1123_SUPPORTED)
-             if(tIME_chunk_present != 0)
-                fprintf(STDERR, " tIME = %s\n",tIME_string);
+#ifdef PNG_TIME_RFC1123_SUPPORTED
+             if (tIME_chunk_present != 0)
+                fprintf(STDERR, " tIME = %s\n", tIME_string);
 #endif /* PNG_TIME_RFC1123_SUPPORTED */
             }
          }
+
          else
          {
-            if(verbose == 0 && i != 2)
-               fprintf(STDERR, "Testing %s:",inname);
+            if (verbose == 0 && i != 2)
+               fprintf(STDERR, "\n Testing %s:", inname);
+
             fprintf(STDERR, " FAIL\n");
             ierror += kerror;
          }
 #if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG
          if (allocation_now != current_allocation)
              fprintf(STDERR, "MEMORY ERROR: %d bytes lost\n",
-               current_allocation-allocation_now);
+               current_allocation - allocation_now);
+
          if (current_allocation != 0)
          {
              memory_infop pinfo = pinformation;
 
              fprintf(STDERR, "MEMORY ERROR: %d bytes still allocated\n",
                 current_allocation);
+
              while (pinfo != NULL)
              {
-                fprintf(STDERR," %lu bytes at %x\n",
+                fprintf(STDERR, " %lu bytes at %x\n",
                    (unsigned long)pinfo->size, (unsigned int)pinfo->pointer);
                 pinfo = pinfo->next;
              }
@@ -1561,22 +1802,24 @@ main(int argc, char *argv[])
    t_stop = (float)clock();
    t_misc += (t_stop - t_start);
    t_start = t_stop;
-   fprintf(STDERR," CPU time used = %.3f seconds",
+   fprintf(STDERR, " CPU time used = %.3f seconds",
       (t_misc+t_decode+t_encode)/(float)CLOCKS_PER_SEC);
-   fprintf(STDERR," (decoding %.3f,\n",
+   fprintf(STDERR, " (decoding %.3f,\n",
       t_decode/(float)CLOCKS_PER_SEC);
-   fprintf(STDERR,"        encoding %.3f ,",
+   fprintf(STDERR, "        encoding %.3f ,",
       t_encode/(float)CLOCKS_PER_SEC);
-   fprintf(STDERR," other %.3f seconds)\n\n",
+   fprintf(STDERR, " other %.3f seconds)\n\n",
       t_misc/(float)CLOCKS_PER_SEC);
 #endif
 
    if (ierror == 0)
-      fprintf(STDERR, "libpng passes test\n");
+      fprintf(STDERR, " libpng passes test\n");
+
    else
-      fprintf(STDERR, "libpng FAILS test\n");
+      fprintf(STDERR, " libpng FAILS test\n");
+
    return (int)(ierror != 0);
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_18 your_png_h_is_not_version_1_2_18;
+typedef png_libpng_version_1_5_4 Your_png_h_is_not_version_1_5_4;
diff --git a/jdk/src/share/native/sun/awt/libpng/pngtrans.c b/jdk/src/share/native/sun/awt/libpng/pngtrans.c
index 913ceb8..b59fc69 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngtrans.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngtrans.c
@@ -20,8 +20,6 @@
  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  * or visit www.oracle.com if you need additional information or have any
  * questions.
- *
- * THIS FILE WAS MODIFIED BY SUN MICROSYSTEMS, INC.
  */
 
 /* pngtrans.c - transforms the data in a row (used by both readers and writers)
@@ -31,47 +29,59 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.13 November 13, 2006
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2006 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
 
 #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
+
 #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
-/* turn on BGR-to-RGB mapping */
+/* Turn on BGR-to-RGB mapping */
 void PNGAPI
 png_set_bgr(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_bgr\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_bgr");
+
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->transformations |= PNG_BGR;
 }
 #endif
 
 #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
-/* turn on 16 bit byte swapping */
+/* Turn on 16 bit byte swapping */
 void PNGAPI
 png_set_swap(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_swap\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_swap");
+
+   if (png_ptr == NULL)
+      return;
+
    if (png_ptr->bit_depth == 16)
       png_ptr->transformations |= PNG_SWAP_BYTES;
 }
 #endif
 
 #if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED)
-/* turn on pixel packing */
+/* Turn on pixel packing */
 void PNGAPI
 png_set_packing(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_packing\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_packing");
+
+   if (png_ptr == NULL)
+      return;
+
    if (png_ptr->bit_depth < 8)
    {
       png_ptr->transformations |= PNG_PACK;
@@ -81,12 +91,15 @@ png_set_packing(png_structp png_ptr)
 #endif
 
 #if defined(PNG_READ_PACKSWAP_SUPPORTED)||defined(PNG_WRITE_PACKSWAP_SUPPORTED)
-/* turn on packed pixel swapping */
+/* Turn on packed pixel swapping */
 void PNGAPI
 png_set_packswap(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_packswap\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_packswap");
+
+   if (png_ptr == NULL)
+      return;
+
    if (png_ptr->bit_depth < 8)
       png_ptr->transformations |= PNG_PACKSWAP;
 }
@@ -94,10 +107,13 @@ png_set_packswap(png_structp png_ptr)
 
 #if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED)
 void PNGAPI
-png_set_shift(png_structp png_ptr, png_color_8p true_bits)
+png_set_shift(png_structp png_ptr, png_const_color_8p true_bits)
 {
-   png_debug(1, "in png_set_shift\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_shift");
+
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->transformations |= PNG_SHIFT;
    png_ptr->shift = *true_bits;
 }
@@ -108,7 +124,8 @@ png_set_shift(png_structp png_ptr, png_color_8p true_bits)
 int PNGAPI
 png_set_interlace_handling(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_interlace handling\n");
+   png_debug(1, "in png_set_interlace handling");
+
    if (png_ptr && png_ptr->interlaced)
    {
       png_ptr->transformations |= PNG_INTERLACE;
@@ -128,12 +145,17 @@ png_set_interlace_handling(png_structp png_ptr)
 void PNGAPI
 png_set_filler(png_structp png_ptr, png_uint_32 filler, int filler_loc)
 {
-   png_debug(1, "in png_set_filler\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_filler");
+
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->transformations |= PNG_FILLER;
-   png_ptr->filler = (png_byte)filler;
+   png_ptr->filler = (png_uint_16)filler;
+
    if (filler_loc == PNG_FILLER_AFTER)
       png_ptr->flags |= PNG_FLAG_FILLER_AFTER;
+
    else
       png_ptr->flags &= ~PNG_FLAG_FILLER_AFTER;
 
@@ -148,7 +170,7 @@ png_set_filler(png_structp png_ptr, png_uint_32 filler, int filler_loc)
    }
 
    /* Also I added this in libpng-1.0.2a (what happens when we expand
-    * a less-than-8-bit grayscale to GA? */
+    * a less-than-8-bit grayscale to GA?) */
 
    if (png_ptr->color_type == PNG_COLOR_TYPE_GRAY && png_ptr->bit_depth >= 8)
    {
@@ -156,17 +178,18 @@ png_set_filler(png_structp png_ptr, png_uint_32 filler, int filler_loc)
    }
 }
 
-#if !defined(PNG_1_0_X)
 /* Added to libpng-1.2.7 */
 void PNGAPI
 png_set_add_alpha(png_structp png_ptr, png_uint_32 filler, int filler_loc)
 {
-   png_debug(1, "in png_set_add_alpha\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_add_alpha");
+
+   if (png_ptr == NULL)
+      return;
+
    png_set_filler(png_ptr, filler, filler_loc);
    png_ptr->transformations |= PNG_ADD_ALPHA;
 }
-#endif
 
 #endif
 
@@ -175,8 +198,11 @@ png_set_add_alpha(png_structp png_ptr, png_uint_32 filler, int filler_loc)
 void PNGAPI
 png_set_swap_alpha(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_swap_alpha\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_swap_alpha");
+
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->transformations |= PNG_SWAP_ALPHA;
 }
 #endif
@@ -186,8 +212,11 @@ png_set_swap_alpha(png_structp png_ptr)
 void PNGAPI
 png_set_invert_alpha(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_invert_alpha\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_invert_alpha");
+
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->transformations |= PNG_INVERT_ALPHA;
 }
 #endif
@@ -196,28 +225,28 @@ png_set_invert_alpha(png_structp png_ptr)
 void PNGAPI
 png_set_invert_mono(png_structp png_ptr)
 {
-   png_debug(1, "in png_set_invert_mono\n");
-   if(png_ptr == NULL) return;
+   png_debug(1, "in png_set_invert_mono");
+
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->transformations |= PNG_INVERT_MONO;
 }
 
-/* invert monochrome grayscale data */
+/* Invert monochrome grayscale data */
 void /* PRIVATE */
 png_do_invert(png_row_infop row_info, png_bytep row)
 {
-   png_debug(1, "in png_do_invert\n");
+   png_debug(1, "in png_do_invert");
+
   /* This test removed from libpng version 1.0.13 and 1.2.0:
    *   if (row_info->bit_depth == 1 &&
    */
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if (row == NULL || row_info == NULL)
-     return;
-#endif
    if (row_info->color_type == PNG_COLOR_TYPE_GRAY)
    {
       png_bytep rp = row;
-      png_uint_32 i;
-      png_uint_32 istop = row_info->rowbytes;
+      png_size_t i;
+      png_size_t istop = row_info->rowbytes;
 
       for (i = 0; i < istop; i++)
       {
@@ -225,47 +254,49 @@ png_do_invert(png_row_infop row_info, png_bytep row)
          rp++;
       }
    }
+
    else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA &&
       row_info->bit_depth == 8)
    {
       png_bytep rp = row;
-      png_uint_32 i;
-      png_uint_32 istop = row_info->rowbytes;
+      png_size_t i;
+      png_size_t istop = row_info->rowbytes;
 
-      for (i = 0; i < istop; i+=2)
+      for (i = 0; i < istop; i += 2)
       {
          *rp = (png_byte)(~(*rp));
-         rp+=2;
+         rp += 2;
       }
    }
+
+#ifdef PNG_16BIT_SUPPORTED
    else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA &&
       row_info->bit_depth == 16)
    {
       png_bytep rp = row;
-      png_uint_32 i;
-      png_uint_32 istop = row_info->rowbytes;
+      png_size_t i;
+      png_size_t istop = row_info->rowbytes;
 
-      for (i = 0; i < istop; i+=4)
+      for (i = 0; i < istop; i += 4)
       {
          *rp = (png_byte)(~(*rp));
-         *(rp+1) = (png_byte)(~(*(rp+1)));
-         rp+=4;
+         *(rp + 1) = (png_byte)(~(*(rp + 1)));
+         rp += 4;
       }
    }
+#endif
 }
 #endif
 
+#ifdef PNG_16BIT_SUPPORTED
 #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
-/* swaps byte order on 16 bit depth images */
+/* Swaps byte order on 16 bit depth images */
 void /* PRIVATE */
 png_do_swap(png_row_infop row_info, png_bytep row)
 {
-   png_debug(1, "in png_do_swap\n");
-   if (
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL && row_info != NULL &&
-#endif
-       row_info->bit_depth == 16)
+   png_debug(1, "in png_do_swap");
+
+   if (row_info->bit_depth == 16)
    {
       png_bytep rp = row;
       png_uint_32 i;
@@ -280,6 +311,7 @@ png_do_swap(png_row_infop row_info, png_bytep row)
    }
 }
 #endif
+#endif
 
 #if defined(PNG_READ_PACKSWAP_SUPPORTED)||defined(PNG_WRITE_PACKSWAP_SUPPORTED)
 static PNG_CONST png_byte onebppswaptable[256] = {
@@ -387,27 +419,28 @@ static PNG_CONST png_byte fourbppswaptable[256] = {
    0x8F, 0x9F, 0xAF, 0xBF, 0xCF, 0xDF, 0xEF, 0xFF
 };
 
-/* swaps pixel packing order within bytes */
+/* Swaps pixel packing order within bytes */
 void /* PRIVATE */
 png_do_packswap(png_row_infop row_info, png_bytep row)
 {
-   png_debug(1, "in png_do_packswap\n");
-   if (
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL && row_info != NULL &&
-#endif
-       row_info->bit_depth < 8)
+   png_debug(1, "in png_do_packswap");
+
+   if (row_info->bit_depth < 8)
    {
-      png_bytep rp, end, table;
+      png_bytep rp;
+      png_const_bytep end, table;
 
       end = row + row_info->rowbytes;
 
       if (row_info->bit_depth == 1)
-         table = (png_bytep)onebppswaptable;
+         table = onebppswaptable;
+
       else if (row_info->bit_depth == 2)
-         table = (png_bytep)twobppswaptable;
+         table = twobppswaptable;
+
       else if (row_info->bit_depth == 4)
-         table = (png_bytep)fourbppswaptable;
+         table = fourbppswaptable;
+
       else
          return;
 
@@ -419,174 +452,130 @@ png_do_packswap(png_row_infop row_info, png_bytep row)
 
 #if defined(PNG_WRITE_FILLER_SUPPORTED) || \
     defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
-/* remove filler or alpha byte(s) */
+/* Remove a channel - this used to be 'png_do_strip_filler' but it used a
+ * somewhat weird combination of flags to determine what to do.  All the calls
+ * to png_do_strip_filler are changed in 1.5.2 to call this instead with the
+ * correct arguments.
+ *
+ * The routine isn't general - the channel must be the channel at the start or
+ * end (not in the middle) of each pixel.
+ */
 void /* PRIVATE */
-png_do_strip_filler(png_row_infop row_info, png_bytep row, png_uint_32 flags)
+png_do_strip_channel(png_row_infop row_info, png_bytep row, int at_start)
 {
-   png_debug(1, "in png_do_strip_filler\n");
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if (row != NULL && row_info != NULL)
-#endif
+   png_bytep sp = row; /* source pointer */
+   png_bytep dp = row; /* destination pointer */
+   png_bytep ep = row + row_info->rowbytes; /* One beyond end of row */
+
+   /* At the start sp will point to the first byte to copy and dp to where
+    * it is copied to.  ep always points just beyond the end of the row, so
+    * the loop simply copies (channels-1) channels until sp reaches ep.
+    *
+    * at_start:        0 -- convert AG, XG, ARGB, XRGB, AAGG, XXGG, etc.
+    *            nonzero -- convert GA, GX, RGBA, RGBX, GGAA, RRGGBBXX, etc.
+    */
+
+   /* GA, GX, XG cases */
+   if (row_info->channels == 2)
    {
-      png_bytep sp=row;
-      png_bytep dp=row;
-      png_uint_32 row_width=row_info->width;
-      png_uint_32 i;
+      if (row_info->bit_depth == 8)
+      {
+         if (at_start) /* Skip initial filler */
+            ++sp;
+         else          /* Skip initial channel and, for sp, the filler */
+            sp += 2, ++dp;
+
+         /* For a 1 pixel wide image there is nothing to do */
+         while (sp < ep)
+            *dp++ = *sp, sp += 2;
+
+         row_info->pixel_depth = 8;
+      }
 
-      if ((row_info->color_type == PNG_COLOR_TYPE_RGB ||
-         (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA &&
-         (flags & PNG_FLAG_STRIP_ALPHA))) &&
-         row_info->channels == 4)
+      else if (row_info->bit_depth == 16)
       {
-         if (row_info->bit_depth == 8)
-         {
-            /* This converts from RGBX or RGBA to RGB */
-            if (flags & PNG_FLAG_FILLER_AFTER)
-            {
-               dp+=3; sp+=4;
-               for (i = 1; i < row_width; i++)
-               {
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  sp++;
-               }
-            }
-            /* This converts from XRGB or ARGB to RGB */
-            else
-            {
-               for (i = 0; i < row_width; i++)
-               {
-                  sp++;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-               }
-            }
-            row_info->pixel_depth = 24;
-            row_info->rowbytes = row_width * 3;
-         }
-         else /* if (row_info->bit_depth == 16) */
-         {
-            if (flags & PNG_FLAG_FILLER_AFTER)
-            {
-               /* This converts from RRGGBBXX or RRGGBBAA to RRGGBB */
-               sp += 8; dp += 6;
-               for (i = 1; i < row_width; i++)
-               {
-                  /* This could be (although png_memcpy is probably slower):
-                  png_memcpy(dp, sp, 6);
-                  sp += 8;
-                  dp += 6;
-                  */
-
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  sp += 2;
-               }
-            }
-            else
-            {
-               /* This converts from XXRRGGBB or AARRGGBB to RRGGBB */
-               for (i = 0; i < row_width; i++)
-               {
-                  /* This could be (although png_memcpy is probably slower):
-                  png_memcpy(dp, sp, 6);
-                  sp += 8;
-                  dp += 6;
-                  */
-
-                  sp+=2;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-               }
-            }
-            row_info->pixel_depth = 48;
-            row_info->rowbytes = row_width * 6;
-         }
-         row_info->channels = 3;
+         if (at_start) /* Skip initial filler */
+            sp += 2;
+         else          /* Skip initial channel and, for sp, the filler */
+            sp += 4, dp += 2;
+
+         while (sp < ep)
+            *dp++ = *sp++, *dp++ = *sp, sp += 3;
+
+         row_info->pixel_depth = 16;
       }
-      else if ((row_info->color_type == PNG_COLOR_TYPE_GRAY ||
-         (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA &&
-         (flags & PNG_FLAG_STRIP_ALPHA))) &&
-          row_info->channels == 2)
+
+      else
+         return; /* bad bit depth */
+
+      row_info->channels = 1;
+
+      /* Finally fix the color type if it records an alpha channel */
+      if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+         row_info->color_type = PNG_COLOR_TYPE_GRAY;
+   }
+
+   /* RGBA, RGBX, XRGB cases */
+   else if (row_info->channels == 4)
+   {
+      if (row_info->bit_depth == 8)
       {
-         if (row_info->bit_depth == 8)
-         {
-            /* This converts from GX or GA to G */
-            if (flags & PNG_FLAG_FILLER_AFTER)
-            {
-               for (i = 0; i < row_width; i++)
-               {
-                  *dp++ = *sp++;
-                  sp++;
-               }
-            }
-            /* This converts from XG or AG to G */
-            else
-            {
-               for (i = 0; i < row_width; i++)
-               {
-                  sp++;
-                  *dp++ = *sp++;
-               }
-            }
-            row_info->pixel_depth = 8;
-            row_info->rowbytes = row_width;
-         }
-         else /* if (row_info->bit_depth == 16) */
+         if (at_start) /* Skip initial filler */
+            ++sp;
+         else          /* Skip initial channels and, for sp, the filler */
+            sp += 4, dp += 3;
+
+         /* Note that the loop adds 3 to dp and 4 to sp each time. */
+         while (sp < ep)
+            *dp++ = *sp++, *dp++ = *sp++, *dp++ = *sp, sp += 2;
+
+         row_info->pixel_depth = 24;
+      }
+
+      else if (row_info->bit_depth == 16)
+      {
+         if (at_start) /* Skip initial filler */
+            sp += 2;
+         else          /* Skip initial channels and, for sp, the filler */
+            sp += 8, dp += 6;
+
+         while (sp < ep)
          {
-            if (flags & PNG_FLAG_FILLER_AFTER)
-            {
-               /* This converts from GGXX or GGAA to GG */
-               sp += 4; dp += 2;
-               for (i = 1; i < row_width; i++)
-               {
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-                  sp += 2;
-               }
-            }
-            else
-            {
-               /* This converts from XXGG or AAGG to GG */
-               for (i = 0; i < row_width; i++)
-               {
-                  sp += 2;
-                  *dp++ = *sp++;
-                  *dp++ = *sp++;
-               }
-            }
-            row_info->pixel_depth = 16;
-            row_info->rowbytes = row_width * 2;
+            /* Copy 6 bytes, skip 2 */
+            *dp++ = *sp++, *dp++ = *sp++;
+            *dp++ = *sp++, *dp++ = *sp++;
+            *dp++ = *sp++, *dp++ = *sp, sp += 3;
          }
-         row_info->channels = 1;
+
+         row_info->pixel_depth = 48;
       }
-      if (flags & PNG_FLAG_STRIP_ALPHA)
-        row_info->color_type &= ~PNG_COLOR_MASK_ALPHA;
+
+      else
+         return; /* bad bit depth */
+
+      row_info->channels = 3;
+
+      /* Finally fix the color type if it records an alpha channel */
+      if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
+         row_info->color_type = PNG_COLOR_TYPE_RGB;
    }
+
+   else
+      return; /* The filler channel has gone already */
+
+   /* Fix the rowbytes value. */
+   row_info->rowbytes = dp-row;
 }
 #endif
 
 #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
-/* swaps red and blue bytes within a pixel */
+/* Swaps red and blue bytes within a pixel */
 void /* PRIVATE */
 png_do_bgr(png_row_infop row_info, png_bytep row)
 {
-   png_debug(1, "in png_do_bgr\n");
-   if (
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL && row_info != NULL &&
-#endif
-       (row_info->color_type & PNG_COLOR_MASK_COLOR))
+   png_debug(1, "in png_do_bgr");
+
+   if ((row_info->color_type & PNG_COLOR_MASK_COLOR))
    {
       png_uint_32 row_width = row_info->width;
       if (row_info->bit_depth == 8)
@@ -603,6 +592,7 @@ png_do_bgr(png_row_infop row_info, png_bytep row)
                *(rp + 2) = save;
             }
          }
+
          else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
          {
             png_bytep rp;
@@ -616,6 +606,8 @@ png_do_bgr(png_row_infop row_info, png_bytep row)
             }
          }
       }
+
+#ifdef PNG_16BIT_SUPPORTED
       else if (row_info->bit_depth == 16)
       {
          if (row_info->color_type == PNG_COLOR_TYPE_RGB)
@@ -633,6 +625,7 @@ png_do_bgr(png_row_infop row_info, png_bytep row)
                *(rp + 5) = save;
             }
          }
+
          else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
          {
             png_bytep rp;
@@ -649,28 +642,25 @@ png_do_bgr(png_row_infop row_info, png_bytep row)
             }
          }
       }
+#endif
    }
 }
 #endif /* PNG_READ_BGR_SUPPORTED or PNG_WRITE_BGR_SUPPORTED */
 
 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
-    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
-    defined(PNG_LEGACY_SUPPORTED)
+    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED
 void PNGAPI
 png_set_user_transform_info(png_structp png_ptr, png_voidp
    user_transform_ptr, int user_transform_depth, int user_transform_channels)
 {
-   png_debug(1, "in png_set_user_transform_info\n");
-   if(png_ptr == NULL) return;
-#if defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
+   png_debug(1, "in png_set_user_transform_info");
+
+   if (png_ptr == NULL)
+      return;
    png_ptr->user_transform_ptr = user_transform_ptr;
    png_ptr->user_transform_depth = (png_byte)user_transform_depth;
    png_ptr->user_transform_channels = (png_byte)user_transform_channels;
-#else
-   if(user_transform_ptr || user_transform_depth || user_transform_channels)
-      png_warning(png_ptr,
-        "This version of libpng does not support user transform info");
-#endif
 }
 #endif
 
@@ -679,14 +669,38 @@ png_set_user_transform_info(png_structp png_ptr, png_voidp
  * associated with this pointer before png_write_destroy and png_read_destroy
  * are called.
  */
+#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED
 png_voidp PNGAPI
-png_get_user_transform_ptr(png_structp png_ptr)
+png_get_user_transform_ptr(png_const_structp png_ptr)
 {
-#if defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
-   if (png_ptr == NULL) return (NULL);
+   if (png_ptr == NULL)
+      return (NULL);
+
    return ((png_voidp)png_ptr->user_transform_ptr);
-#else
-   return (NULL);
+}
 #endif
+
+#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED
+png_uint_32 PNGAPI
+png_get_current_row_number(png_const_structp png_ptr)
+{
+   /* See the comments in png.h - this is the sub-image row when reading and
+    * interlaced image.
+    */
+   if (png_ptr != NULL)
+      return png_ptr->row_number;
+
+   return PNG_UINT_32_MAX; /* help the app not to fail silently */
+}
+
+png_byte PNGAPI
+png_get_current_pass_number(png_const_structp png_ptr)
+{
+   if (png_ptr != NULL)
+      return png_ptr->pass;
+   return 8; /* invalid */
 }
+#endif /* PNG_USER_TRANSFORM_INFO_SUPPORTED */
+#endif /* PNG_READ_USER_TRANSFORM_SUPPORTED ||
+          PNG_WRITE_USER_TRANSFORM_SUPPORTED */
 #endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngwio.c b/jdk/src/share/native/sun/awt/libpng/pngwio.c
index f215e64..2f94f8c 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngwio.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngwio.c
@@ -29,12 +29,15 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.13 November 13, 2006
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2002 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.0 [January 6, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
  *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ *
  * This file provides a location for all output.  Users who need
  * special handling are expected to write functions that have the same
  * arguments as these and perform similar functions, but that possibly
@@ -43,100 +46,101 @@
  * them at run time with png_set_write_fn(...).
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
+
 #ifdef PNG_WRITE_SUPPORTED
 
 /* Write the data to whatever output you are using.  The default routine
-   writes to a file pointer.  Note that this routine sometimes gets called
-   with very small lengths, so you should implement some kind of simple
-   buffering if you are using unbuffered writes.  This should never be asked
-   to write more than 64K on a 16 bit machine.  */
+ * writes to a file pointer.  Note that this routine sometimes gets called
+ * with very small lengths, so you should implement some kind of simple
+ * buffering if you are using unbuffered writes.  This should never be asked
+ * to write more than 64K on a 16 bit machine.
+ */
 
 void /* PRIVATE */
-png_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
+png_write_data(png_structp png_ptr, png_const_bytep data, png_size_t length)
 {
+   /* NOTE: write_data_fn must not change the buffer! */
    if (png_ptr->write_data_fn != NULL )
-      (*(png_ptr->write_data_fn))(png_ptr, data, length);
+      (*(png_ptr->write_data_fn))(png_ptr, (png_bytep)data, length);
+
    else
       png_error(png_ptr, "Call to NULL write function");
 }
 
-#if !defined(PNG_NO_STDIO)
+#ifdef PNG_STDIO_SUPPORTED
 /* This is the function that does the actual writing of data.  If you are
-   not writing to a standard C stream, you should create a replacement
-   write_data function and use it at run time with png_set_write_fn(), rather
-   than changing the library. */
+ * not writing to a standard C stream, you should create a replacement
+ * write_data function and use it at run time with png_set_write_fn(), rather
+ * than changing the library.
+ */
 #ifndef USE_FAR_KEYWORD
-void PNGAPI
+void PNGCBAPI
 png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
 {
-   png_uint_32 check;
+   png_size_t check;
+
+   if (png_ptr == NULL)
+      return;
 
-   if(png_ptr == NULL) return;
-#if defined(_WIN32_WCE)
-   if ( !WriteFile((HANDLE)(png_ptr->io_ptr), data, length, &check, NULL) )
-      check = 0;
-#else
    check = fwrite(data, 1, length, (png_FILE_p)(png_ptr->io_ptr));
-#endif
+
    if (check != length)
       png_error(png_ptr, "Write Error");
 }
 #else
-/* this is the model-independent version. Since the standard I/O library
-   can't handle far buffers in the medium and small models, we have to copy
-   the data.
-*/
+/* This is the model-independent version. Since the standard I/O library
+ * can't handle far buffers in the medium and small models, we have to copy
+ * the data.
+ */
 
 #define NEAR_BUF_SIZE 1024
 #define MIN(a,b) (a <= b ? a : b)
 
-void PNGAPI
+void PNGCBAPI
 png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
 {
    png_uint_32 check;
    png_byte *near_data;  /* Needs to be "png_byte *" instead of "png_bytep" */
    png_FILE_p io_ptr;
 
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL)
+      return;
+
    /* Check if data really is near. If so, use usual code. */
    near_data = (png_byte *)CVT_PTR_NOCHECK(data);
    io_ptr = (png_FILE_p)CVT_PTR(png_ptr->io_ptr);
+
    if ((png_bytep)near_data == data)
    {
-#if defined(_WIN32_WCE)
-      if ( !WriteFile(io_ptr, near_data, length, &check, NULL) )
-         check = 0;
-#else
       check = fwrite(near_data, 1, length, io_ptr);
-#endif
    }
+
    else
    {
       png_byte buf[NEAR_BUF_SIZE];
       png_size_t written, remaining, err;
       check = 0;
       remaining = length;
+
       do
       {
          written = MIN(NEAR_BUF_SIZE, remaining);
-         png_memcpy(buf, data, written); /* copy far buffer to near buffer */
-#if defined(_WIN32_WCE)
-         if ( !WriteFile(io_ptr, buf, written, &err, NULL) )
-            err = 0;
-#else
+         png_memcpy(buf, data, written); /* Copy far buffer to near buffer */
          err = fwrite(buf, 1, written, io_ptr);
-#endif
+
          if (err != written)
             break;
+
          else
             check += err;
+
          data += written;
          remaining -= written;
       }
       while (remaining != 0);
    }
+
    if (check != length)
       png_error(png_ptr, "Write Error");
 }
@@ -145,9 +149,10 @@ png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
 #endif
 
 /* This function is called to output any data pending writing (normally
-   to disk).  After png_flush is called, there should be no data pending
-   writing in any buffers. */
-#if defined(PNG_WRITE_FLUSH_SUPPORTED)
+ * to disk).  After png_flush is called, there should be no data pending
+ * writing in any buffers.
+ */
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
 void /* PRIVATE */
 png_flush(png_structp png_ptr)
 {
@@ -155,108 +160,123 @@ png_flush(png_structp png_ptr)
       (*(png_ptr->output_flush_fn))(png_ptr);
 }
 
-#if !defined(PNG_NO_STDIO)
-void PNGAPI
+#  ifdef PNG_STDIO_SUPPORTED
+void PNGCBAPI
 png_default_flush(png_structp png_ptr)
 {
-#if !defined(_WIN32_WCE)
    png_FILE_p io_ptr;
-#endif
-   if(png_ptr == NULL) return;
-#if !defined(_WIN32_WCE)
+
+   if (png_ptr == NULL)
+      return;
+
    io_ptr = (png_FILE_p)CVT_PTR((png_ptr->io_ptr));
-   if (io_ptr != NULL)
-      fflush(io_ptr);
-#endif
+   fflush(io_ptr);
 }
-#endif
+#  endif
 #endif
 
 /* This function allows the application to supply new output functions for
-   libpng if standard C streams aren't being used.
-
-   This function takes as its arguments:
-   png_ptr       - pointer to a png output data structure
-   io_ptr        - pointer to user supplied structure containing info about
-                   the output functions.  May be NULL.
-   write_data_fn - pointer to a new output function that takes as its
-                   arguments a pointer to a png_struct, a pointer to
-                   data to be written, and a 32-bit unsigned int that is
-                   the number of bytes to be written.  The new write
-                   function should call png_error(png_ptr, "Error msg")
-                   to exit and output any fatal error messages.
-   flush_data_fn - pointer to a new flush function that takes as its
-                   arguments a pointer to a png_struct.  After a call to
-                   the flush function, there should be no data in any buffers
-                   or pending transmission.  If the output method doesn't do
-                   any buffering of ouput, a function prototype must still be
-                   supplied although it doesn't have to do anything.  If
-                   PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile
-                   time, output_flush_fn will be ignored, although it must be
-                   supplied for compatibility. */
+ * libpng if standard C streams aren't being used.
+ *
+ * This function takes as its arguments:
+ * png_ptr       - pointer to a png output data structure
+ * io_ptr        - pointer to user supplied structure containing info about
+ *                 the output functions.  May be NULL.
+ * write_data_fn - pointer to a new output function that takes as its
+ *                 arguments a pointer to a png_struct, a pointer to
+ *                 data to be written, and a 32-bit unsigned int that is
+ *                 the number of bytes to be written.  The new write
+ *                 function should call png_error(png_ptr, "Error msg")
+ *                 to exit and output any fatal error messages.  May be
+ *                 NULL, in which case libpng's default function will
+ *                 be used.
+ * flush_data_fn - pointer to a new flush function that takes as its
+ *                 arguments a pointer to a png_struct.  After a call to
+ *                 the flush function, there should be no data in any buffers
+ *                 or pending transmission.  If the output method doesn't do
+ *                 any buffering of output, a function prototype must still be
+ *                 supplied although it doesn't have to do anything.  If
+ *                 PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile
+ *                 time, output_flush_fn will be ignored, although it must be
+ *                 supplied for compatibility.  May be NULL, in which case
+ *                 libpng's default function will be used, if
+ *                 PNG_WRITE_FLUSH_SUPPORTED is defined.  This is not
+ *                 a good idea if io_ptr does not point to a standard
+ *                 *FILE structure.
+ */
 void PNGAPI
 png_set_write_fn(png_structp png_ptr, png_voidp io_ptr,
-   png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)
+    png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)
 {
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL)
+      return;
+
    png_ptr->io_ptr = io_ptr;
 
-#if !defined(PNG_NO_STDIO)
+#ifdef PNG_STDIO_SUPPORTED
    if (write_data_fn != NULL)
       png_ptr->write_data_fn = write_data_fn;
+
    else
       png_ptr->write_data_fn = png_default_write_data;
 #else
    png_ptr->write_data_fn = write_data_fn;
 #endif
 
-#if defined(PNG_WRITE_FLUSH_SUPPORTED)
-#if !defined(PNG_NO_STDIO)
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
+#  ifdef PNG_STDIO_SUPPORTED
+
    if (output_flush_fn != NULL)
       png_ptr->output_flush_fn = output_flush_fn;
+
    else
       png_ptr->output_flush_fn = png_default_flush;
-#else
+
+#  else
    png_ptr->output_flush_fn = output_flush_fn;
-#endif
+#  endif
 #endif /* PNG_WRITE_FLUSH_SUPPORTED */
 
    /* It is an error to read while writing a png file */
    if (png_ptr->read_data_fn != NULL)
    {
       png_ptr->read_data_fn = NULL;
+
       png_warning(png_ptr,
-         "Attempted to set both read_data_fn and write_data_fn in");
-      png_warning(png_ptr,
-         "the same structure.  Resetting read_data_fn to NULL.");
+          "Can't set both read_data_fn and write_data_fn in the"
+          " same structure");
    }
 }
 
-#if defined(USE_FAR_KEYWORD)
-#if defined(_MSC_VER)
-void *png_far_to_near(png_structp png_ptr,png_voidp ptr, int check)
+#ifdef USE_FAR_KEYWORD
+#  ifdef _MSC_VER
+void *png_far_to_near(png_structp png_ptr, png_voidp ptr, int check)
 {
    void *near_ptr;
    void FAR *far_ptr;
    FP_OFF(near_ptr) = FP_OFF(ptr);
    far_ptr = (void FAR *)near_ptr;
-   if(check != 0)
-      if(FP_SEG(ptr) != FP_SEG(far_ptr))
-         png_error(png_ptr,"segment lost in conversion");
+
+   if (check != 0)
+      if (FP_SEG(ptr) != FP_SEG(far_ptr))
+         png_error(png_ptr, "segment lost in conversion");
+
    return(near_ptr);
 }
 #  else
-void *png_far_to_near(png_structp png_ptr,png_voidp ptr, int check)
+void *png_far_to_near(png_structp png_ptr, png_voidp ptr, int check)
 {
    void *near_ptr;
    void FAR *far_ptr;
    near_ptr = (void FAR *)ptr;
    far_ptr = (void FAR *)near_ptr;
-   if(check != 0)
-      if(far_ptr != ptr)
-         png_error(png_ptr,"segment lost in conversion");
+
+   if (check != 0)
+      if (far_ptr != ptr)
+         png_error(png_ptr, "segment lost in conversion");
+
    return(near_ptr);
 }
-#   endif
-#   endif
+#  endif
+#endif
 #endif /* PNG_WRITE_SUPPORTED */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngwrite.c b/jdk/src/share/native/sun/awt/libpng/pngwrite.c
index 970e4dc..bdc1467 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngwrite.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngwrite.c
@@ -29,16 +29,18 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.15 January 5, 2007
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
  */
 
-/* get internal access to png.h */
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
+
 #ifdef PNG_WRITE_SUPPORTED
 
 /* Writes all the PNG information.  This is the suggested way to use the
@@ -53,96 +55,91 @@
 void PNGAPI
 png_write_info_before_PLTE(png_structp png_ptr, png_infop info_ptr)
 {
-   png_debug(1, "in png_write_info_before_PLTE\n");
+   png_debug(1, "in png_write_info_before_PLTE");
+
    if (png_ptr == NULL || info_ptr == NULL)
       return;
+
    if (!(png_ptr->mode & PNG_WROTE_INFO_BEFORE_PLTE))
    {
-   png_write_sig(png_ptr); /* write PNG signature */
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
-   if((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE)&&(png_ptr->mng_features_permitted))
+   /* Write PNG signature */
+   png_write_sig(png_ptr);
+
+#ifdef PNG_MNG_FEATURES_SUPPORTED
+   if ((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE) && \
+       (png_ptr->mng_features_permitted))
    {
-      png_warning(png_ptr,"MNG features are not allowed in a PNG datastream");
-      png_ptr->mng_features_permitted=0;
+      png_warning(png_ptr, "MNG features are not allowed in a PNG datastream");
+      png_ptr->mng_features_permitted = 0;
    }
 #endif
-   /* write IHDR information. */
+
+   /* Write IHDR information. */
    png_write_IHDR(png_ptr, info_ptr->width, info_ptr->height,
-      info_ptr->bit_depth, info_ptr->color_type, info_ptr->compression_type,
-      info_ptr->filter_type,
-#if defined(PNG_WRITE_INTERLACING_SUPPORTED)
-      info_ptr->interlace_type);
+       info_ptr->bit_depth, info_ptr->color_type, info_ptr->compression_type,
+       info_ptr->filter_type,
+#ifdef PNG_WRITE_INTERLACING_SUPPORTED
+       info_ptr->interlace_type);
 #else
-      0);
+       0);
 #endif
-   /* the rest of these check to see if the valid field has the appropriate
-      flag set, and if it does, writes the chunk. */
-#if defined(PNG_WRITE_gAMA_SUPPORTED)
+   /* The rest of these check to see if the valid field has the appropriate
+    * flag set, and if it does, writes the chunk.
+    */
+#ifdef PNG_WRITE_gAMA_SUPPORTED
    if (info_ptr->valid & PNG_INFO_gAMA)
-   {
-#  ifdef PNG_FLOATING_POINT_SUPPORTED
-      png_write_gAMA(png_ptr, info_ptr->gamma);
-#else
-#ifdef PNG_FIXED_POINT_SUPPORTED
-      png_write_gAMA_fixed(png_ptr, info_ptr->int_gamma);
-#  endif
-#endif
-   }
+      png_write_gAMA_fixed(png_ptr, info_ptr->gamma);
 #endif
-#if defined(PNG_WRITE_sRGB_SUPPORTED)
+#ifdef PNG_WRITE_sRGB_SUPPORTED
    if (info_ptr->valid & PNG_INFO_sRGB)
       png_write_sRGB(png_ptr, (int)info_ptr->srgb_intent);
 #endif
-#if defined(PNG_WRITE_iCCP_SUPPORTED)
+
+#ifdef PNG_WRITE_iCCP_SUPPORTED
    if (info_ptr->valid & PNG_INFO_iCCP)
       png_write_iCCP(png_ptr, info_ptr->iccp_name, PNG_COMPRESSION_TYPE_BASE,
-                     info_ptr->iccp_profile, (int)info_ptr->iccp_proflen);
+          (png_charp)info_ptr->iccp_profile, (int)info_ptr->iccp_proflen);
 #endif
-#if defined(PNG_WRITE_sBIT_SUPPORTED)
+#ifdef PNG_WRITE_sBIT_SUPPORTED
    if (info_ptr->valid & PNG_INFO_sBIT)
       png_write_sBIT(png_ptr, &(info_ptr->sig_bit), info_ptr->color_type);
 #endif
-#if defined(PNG_WRITE_cHRM_SUPPORTED)
+#ifdef PNG_WRITE_cHRM_SUPPORTED
    if (info_ptr->valid & PNG_INFO_cHRM)
-   {
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-      png_write_cHRM(png_ptr,
-         info_ptr->x_white, info_ptr->y_white,
-         info_ptr->x_red, info_ptr->y_red,
-         info_ptr->x_green, info_ptr->y_green,
-         info_ptr->x_blue, info_ptr->y_blue);
-#else
-#  ifdef PNG_FIXED_POINT_SUPPORTED
       png_write_cHRM_fixed(png_ptr,
-         info_ptr->int_x_white, info_ptr->int_y_white,
-         info_ptr->int_x_red, info_ptr->int_y_red,
-         info_ptr->int_x_green, info_ptr->int_y_green,
-         info_ptr->int_x_blue, info_ptr->int_y_blue);
-#  endif
+          info_ptr->x_white, info_ptr->y_white,
+          info_ptr->x_red, info_ptr->y_red,
+          info_ptr->x_green, info_ptr->y_green,
+          info_ptr->x_blue, info_ptr->y_blue);
 #endif
-   }
-#endif
-#if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)
+
+#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
    if (info_ptr->unknown_chunks_num)
    {
-       png_unknown_chunk *up;
+      png_unknown_chunk *up;
 
-       png_debug(5, "writing extra chunks\n");
+      png_debug(5, "writing extra chunks");
+
+      for (up = info_ptr->unknown_chunks;
+           up < info_ptr->unknown_chunks + info_ptr->unknown_chunks_num;
+           up++)
+      {
+         int keep = png_handle_as_unknown(png_ptr, up->name);
 
-       for (up = info_ptr->unknown_chunks;
-            up < info_ptr->unknown_chunks + info_ptr->unknown_chunks_num;
-            up++)
-       {
-         int keep=png_handle_as_unknown(png_ptr, up->name);
          if (keep != PNG_HANDLE_CHUNK_NEVER &&
-            up->location && !(up->location & PNG_HAVE_PLTE) &&
-            !(up->location & PNG_HAVE_IDAT) &&
-            ((up->name[3] & 0x20) || keep == PNG_HANDLE_CHUNK_ALWAYS ||
-            (png_ptr->flags & PNG_FLAG_KEEP_UNSAFE_CHUNKS)))
+             up->location &&
+             !(up->location & PNG_HAVE_PLTE) &&
+             !(up->location & PNG_HAVE_IDAT) &&
+             !(up->location & PNG_AFTER_IDAT) &&
+             ((up->name[3] & 0x20) || keep == PNG_HANDLE_CHUNK_ALWAYS ||
+             (png_ptr->flags & PNG_FLAG_KEEP_UNSAFE_CHUNKS)))
          {
+            if (up->size == 0)
+               png_warning(png_ptr, "Writing zero-length unknown chunk");
+
             png_write_chunk(png_ptr, up->name, up->data, up->size);
          }
-       }
+      }
    }
 #endif
       png_ptr->mode |= PNG_WROTE_INFO_BEFORE_PLTE;
@@ -156,7 +153,7 @@ png_write_info(png_structp png_ptr, png_infop info_ptr)
    int i;
 #endif
 
-   png_debug(1, "in png_write_info\n");
+   png_debug(1, "in png_write_info");
 
    if (png_ptr == NULL || info_ptr == NULL)
       return;
@@ -165,151 +162,157 @@ png_write_info(png_structp png_ptr, png_infop info_ptr)
 
    if (info_ptr->valid & PNG_INFO_PLTE)
       png_write_PLTE(png_ptr, info_ptr->palette,
-         (png_uint_32)info_ptr->num_palette);
+          (png_uint_32)info_ptr->num_palette);
+
    else if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
       png_error(png_ptr, "Valid palette required for paletted images");
 
-#if defined(PNG_WRITE_tRNS_SUPPORTED)
+#ifdef PNG_WRITE_tRNS_SUPPORTED
    if (info_ptr->valid & PNG_INFO_tRNS)
+   {
+#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
+      /* Invert the alpha channel (in tRNS) */
+      if ((png_ptr->transformations & PNG_INVERT_ALPHA) &&
+          info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
       {
-#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
-         /* invert the alpha channel (in tRNS) */
-         if ((png_ptr->transformations & PNG_INVERT_ALPHA) &&
-            info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
-         {
-            int j;
-            for (j=0; j<(int)info_ptr->num_trans; j++)
-               info_ptr->trans[j] = (png_byte)(255 - info_ptr->trans[j]);
-         }
-#endif
-      png_write_tRNS(png_ptr, info_ptr->trans, &(info_ptr->trans_values),
-         info_ptr->num_trans, info_ptr->color_type);
+         int j;
+         for (j = 0; j<(int)info_ptr->num_trans; j++)
+            info_ptr->trans_alpha[j] =
+               (png_byte)(255 - info_ptr->trans_alpha[j]);
       }
 #endif
-#if defined(PNG_WRITE_bKGD_SUPPORTED)
+      png_write_tRNS(png_ptr, info_ptr->trans_alpha, &(info_ptr->trans_color),
+          info_ptr->num_trans, info_ptr->color_type);
+   }
+#endif
+#ifdef PNG_WRITE_bKGD_SUPPORTED
    if (info_ptr->valid & PNG_INFO_bKGD)
       png_write_bKGD(png_ptr, &(info_ptr->background), info_ptr->color_type);
 #endif
-#if defined(PNG_WRITE_hIST_SUPPORTED)
+
+#ifdef PNG_WRITE_hIST_SUPPORTED
    if (info_ptr->valid & PNG_INFO_hIST)
       png_write_hIST(png_ptr, info_ptr->hist, info_ptr->num_palette);
 #endif
-#if defined(PNG_WRITE_oFFs_SUPPORTED)
+
+#ifdef PNG_WRITE_oFFs_SUPPORTED
    if (info_ptr->valid & PNG_INFO_oFFs)
       png_write_oFFs(png_ptr, info_ptr->x_offset, info_ptr->y_offset,
-         info_ptr->offset_unit_type);
+          info_ptr->offset_unit_type);
 #endif
-#if defined(PNG_WRITE_pCAL_SUPPORTED)
+
+#ifdef PNG_WRITE_pCAL_SUPPORTED
    if (info_ptr->valid & PNG_INFO_pCAL)
       png_write_pCAL(png_ptr, info_ptr->pcal_purpose, info_ptr->pcal_X0,
-         info_ptr->pcal_X1, info_ptr->pcal_type, info_ptr->pcal_nparams,
-         info_ptr->pcal_units, info_ptr->pcal_params);
+          info_ptr->pcal_X1, info_ptr->pcal_type, info_ptr->pcal_nparams,
+          info_ptr->pcal_units, info_ptr->pcal_params);
 #endif
-#if defined(PNG_WRITE_sCAL_SUPPORTED)
+
+#ifdef PNG_WRITE_sCAL_SUPPORTED
    if (info_ptr->valid & PNG_INFO_sCAL)
-#if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO)
-      png_write_sCAL(png_ptr, (int)info_ptr->scal_unit,
-          info_ptr->scal_pixel_width, info_ptr->scal_pixel_height);
-#else
-#ifdef PNG_FIXED_POINT_SUPPORTED
       png_write_sCAL_s(png_ptr, (int)info_ptr->scal_unit,
           info_ptr->scal_s_width, info_ptr->scal_s_height);
-#else
-      png_warning(png_ptr,
-          "png_write_sCAL not supported; sCAL chunk not written.");
-#endif
-#endif
-#endif
-#if defined(PNG_WRITE_pHYs_SUPPORTED)
+#endif /* sCAL */
+
+#ifdef PNG_WRITE_pHYs_SUPPORTED
    if (info_ptr->valid & PNG_INFO_pHYs)
       png_write_pHYs(png_ptr, info_ptr->x_pixels_per_unit,
-         info_ptr->y_pixels_per_unit, info_ptr->phys_unit_type);
-#endif
-#if defined(PNG_WRITE_tIME_SUPPORTED)
+          info_ptr->y_pixels_per_unit, info_ptr->phys_unit_type);
+#endif /* pHYs */
+
+#ifdef PNG_WRITE_tIME_SUPPORTED
    if (info_ptr->valid & PNG_INFO_tIME)
    {
       png_write_tIME(png_ptr, &(info_ptr->mod_time));
       png_ptr->mode |= PNG_WROTE_tIME;
    }
-#endif
-#if defined(PNG_WRITE_sPLT_SUPPORTED)
+#endif /* tIME */
+
+#ifdef PNG_WRITE_sPLT_SUPPORTED
    if (info_ptr->valid & PNG_INFO_sPLT)
-     for (i = 0; i < (int)info_ptr->splt_palettes_num; i++)
-       png_write_sPLT(png_ptr, info_ptr->splt_palettes + i);
-#endif
-#if defined(PNG_WRITE_TEXT_SUPPORTED)
+      for (i = 0; i < (int)info_ptr->splt_palettes_num; i++)
+         png_write_sPLT(png_ptr, info_ptr->splt_palettes + i);
+#endif /* sPLT */
+
+#ifdef PNG_WRITE_TEXT_SUPPORTED
    /* Check to see if we need to write text chunks */
    for (i = 0; i < info_ptr->num_text; i++)
    {
-      png_debug2(2, "Writing header text chunk %d, type %d\n", i,
-         info_ptr->text[i].compression);
-      /* an internationalized chunk? */
+      png_debug2(2, "Writing header text chunk %d, type %d", i,
+          info_ptr->text[i].compression);
+      /* An internationalized chunk? */
       if (info_ptr->text[i].compression > 0)
       {
-#if defined(PNG_WRITE_iTXt_SUPPORTED)
-          /* write international chunk */
-          png_write_iTXt(png_ptr,
-                         info_ptr->text[i].compression,
-                         info_ptr->text[i].key,
-                         info_ptr->text[i].lang,
-                         info_ptr->text[i].lang_key,
-                         info_ptr->text[i].text);
+#ifdef PNG_WRITE_iTXt_SUPPORTED
+         /* Write international chunk */
+         png_write_iTXt(png_ptr,
+             info_ptr->text[i].compression,
+             info_ptr->text[i].key,
+             info_ptr->text[i].lang,
+             info_ptr->text[i].lang_key,
+             info_ptr->text[i].text);
 #else
           png_warning(png_ptr, "Unable to write international text");
 #endif
           /* Mark this chunk as written */
           info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;
       }
+
       /* If we want a compressed text chunk */
       else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_zTXt)
       {
-#if defined(PNG_WRITE_zTXt_SUPPORTED)
-         /* write compressed chunk */
+#ifdef PNG_WRITE_zTXt_SUPPORTED
+         /* Write compressed chunk */
          png_write_zTXt(png_ptr, info_ptr->text[i].key,
-            info_ptr->text[i].text, 0,
-            info_ptr->text[i].compression);
+             info_ptr->text[i].text, 0,
+             info_ptr->text[i].compression);
 #else
          png_warning(png_ptr, "Unable to write compressed text");
 #endif
          /* Mark this chunk as written */
          info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR;
       }
+
       else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE)
       {
-#if defined(PNG_WRITE_tEXt_SUPPORTED)
-         /* write uncompressed chunk */
+#ifdef PNG_WRITE_tEXt_SUPPORTED
+         /* Write uncompressed chunk */
          png_write_tEXt(png_ptr, info_ptr->text[i].key,
-                         info_ptr->text[i].text,
-                         0);
+             info_ptr->text[i].text,
+             0);
+         /* Mark this chunk as written */
+         info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;
 #else
+         /* Can't get here */
          png_warning(png_ptr, "Unable to write uncompressed text");
 #endif
-         /* Mark this chunk as written */
-         info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;
       }
    }
-#endif
-#if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)
+#endif /* tEXt */
+
+#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
    if (info_ptr->unknown_chunks_num)
    {
-       png_unknown_chunk *up;
+      png_unknown_chunk *up;
 
-       png_debug(5, "writing extra chunks\n");
+      png_debug(5, "writing extra chunks");
 
-       for (up = info_ptr->unknown_chunks;
-            up < info_ptr->unknown_chunks + info_ptr->unknown_chunks_num;
-            up++)
-       {
-         int keep=png_handle_as_unknown(png_ptr, up->name);
+      for (up = info_ptr->unknown_chunks;
+           up < info_ptr->unknown_chunks + info_ptr->unknown_chunks_num;
+           up++)
+      {
+         int keep = png_handle_as_unknown(png_ptr, up->name);
          if (keep != PNG_HANDLE_CHUNK_NEVER &&
-            up->location && (up->location & PNG_HAVE_PLTE) &&
-            !(up->location & PNG_HAVE_IDAT) &&
-            ((up->name[3] & 0x20) || keep == PNG_HANDLE_CHUNK_ALWAYS ||
-            (png_ptr->flags & PNG_FLAG_KEEP_UNSAFE_CHUNKS)))
+             up->location &&
+             (up->location & PNG_HAVE_PLTE) &&
+             !(up->location & PNG_HAVE_IDAT) &&
+             !(up->location & PNG_AFTER_IDAT) &&
+             ((up->name[3] & 0x20) || keep == PNG_HANDLE_CHUNK_ALWAYS ||
+             (png_ptr->flags & PNG_FLAG_KEEP_UNSAFE_CHUNKS)))
          {
             png_write_chunk(png_ptr, up->name, up->data, up->size);
          }
-       }
+      }
    }
 #endif
 }
@@ -322,66 +325,71 @@ png_write_info(png_structp png_ptr, png_infop info_ptr)
 void PNGAPI
 png_write_end(png_structp png_ptr, png_infop info_ptr)
 {
-   png_debug(1, "in png_write_end\n");
+   png_debug(1, "in png_write_end");
+
    if (png_ptr == NULL)
       return;
+
    if (!(png_ptr->mode & PNG_HAVE_IDAT))
       png_error(png_ptr, "No IDATs written into file");
 
-   /* see if user wants us to write information chunks */
+   /* See if user wants us to write information chunks */
    if (info_ptr != NULL)
    {
-#if defined(PNG_WRITE_TEXT_SUPPORTED)
+#ifdef PNG_WRITE_TEXT_SUPPORTED
       int i; /* local index variable */
 #endif
-#if defined(PNG_WRITE_tIME_SUPPORTED)
-      /* check to see if user has supplied a time chunk */
+#ifdef PNG_WRITE_tIME_SUPPORTED
+      /* Check to see if user has supplied a time chunk */
       if ((info_ptr->valid & PNG_INFO_tIME) &&
-         !(png_ptr->mode & PNG_WROTE_tIME))
+          !(png_ptr->mode & PNG_WROTE_tIME))
          png_write_tIME(png_ptr, &(info_ptr->mod_time));
+
 #endif
-#if defined(PNG_WRITE_TEXT_SUPPORTED)
-      /* loop through comment chunks */
+#ifdef PNG_WRITE_TEXT_SUPPORTED
+      /* Loop through comment chunks */
       for (i = 0; i < info_ptr->num_text; i++)
       {
-         png_debug2(2, "Writing trailer text chunk %d, type %d\n", i,
+         png_debug2(2, "Writing trailer text chunk %d, type %d", i,
             info_ptr->text[i].compression);
-         /* an internationalized chunk? */
+         /* An internationalized chunk? */
          if (info_ptr->text[i].compression > 0)
          {
-#if defined(PNG_WRITE_iTXt_SUPPORTED)
-             /* write international chunk */
-             png_write_iTXt(png_ptr,
-                         info_ptr->text[i].compression,
-                         info_ptr->text[i].key,
-                         info_ptr->text[i].lang,
-                         info_ptr->text[i].lang_key,
-                         info_ptr->text[i].text);
+#ifdef PNG_WRITE_iTXt_SUPPORTED
+            /* Write international chunk */
+            png_write_iTXt(png_ptr,
+                info_ptr->text[i].compression,
+                info_ptr->text[i].key,
+                info_ptr->text[i].lang,
+                info_ptr->text[i].lang_key,
+                info_ptr->text[i].text);
 #else
-             png_warning(png_ptr, "Unable to write international text");
+            png_warning(png_ptr, "Unable to write international text");
 #endif
-             /* Mark this chunk as written */
-             info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;
+            /* Mark this chunk as written */
+            info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;
          }
+
          else if (info_ptr->text[i].compression >= PNG_TEXT_COMPRESSION_zTXt)
          {
-#if defined(PNG_WRITE_zTXt_SUPPORTED)
-            /* write compressed chunk */
+#ifdef PNG_WRITE_zTXt_SUPPORTED
+            /* Write compressed chunk */
             png_write_zTXt(png_ptr, info_ptr->text[i].key,
-               info_ptr->text[i].text, 0,
-               info_ptr->text[i].compression);
+                info_ptr->text[i].text, 0,
+                info_ptr->text[i].compression);
 #else
             png_warning(png_ptr, "Unable to write compressed text");
 #endif
             /* Mark this chunk as written */
             info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR;
          }
+
          else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE)
          {
-#if defined(PNG_WRITE_tEXt_SUPPORTED)
-            /* write uncompressed chunk */
+#ifdef PNG_WRITE_tEXt_SUPPORTED
+            /* Write uncompressed chunk */
             png_write_tEXt(png_ptr, info_ptr->text[i].key,
-               info_ptr->text[i].text, 0);
+                info_ptr->text[i].text, 0);
 #else
             png_warning(png_ptr, "Unable to write uncompressed text");
 #endif
@@ -391,48 +399,56 @@ png_write_end(png_structp png_ptr, png_infop info_ptr)
          }
       }
 #endif
-#if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)
+#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
    if (info_ptr->unknown_chunks_num)
    {
-       png_unknown_chunk *up;
+      png_unknown_chunk *up;
 
-       png_debug(5, "writing extra chunks\n");
+      png_debug(5, "writing extra chunks");
 
-       for (up = info_ptr->unknown_chunks;
-            up < info_ptr->unknown_chunks + info_ptr->unknown_chunks_num;
-            up++)
-       {
-         int keep=png_handle_as_unknown(png_ptr, up->name);
+      for (up = info_ptr->unknown_chunks;
+           up < info_ptr->unknown_chunks + info_ptr->unknown_chunks_num;
+           up++)
+      {
+         int keep = png_handle_as_unknown(png_ptr, up->name);
          if (keep != PNG_HANDLE_CHUNK_NEVER &&
-            up->location && (up->location & PNG_AFTER_IDAT) &&
-            ((up->name[3] & 0x20) || keep == PNG_HANDLE_CHUNK_ALWAYS ||
-            (png_ptr->flags & PNG_FLAG_KEEP_UNSAFE_CHUNKS)))
+             up->location &&
+             (up->location & PNG_AFTER_IDAT) &&
+             ((up->name[3] & 0x20) || keep == PNG_HANDLE_CHUNK_ALWAYS ||
+             (png_ptr->flags & PNG_FLAG_KEEP_UNSAFE_CHUNKS)))
          {
             png_write_chunk(png_ptr, up->name, up->data, up->size);
          }
-       }
+      }
    }
 #endif
    }
 
    png_ptr->mode |= PNG_AFTER_IDAT;
 
-   /* write end of PNG file */
+   /* Write end of PNG file */
    png_write_IEND(png_ptr);
-#if 0
-/* This flush, added in libpng-1.0.8,  causes some applications to crash
-   because they do not set png_ptr->output_flush_fn */
+   /* This flush, added in libpng-1.0.8, removed from libpng-1.0.9beta03,
+    * and restored again in libpng-1.2.30, may cause some applications that
+    * do not set png_ptr->output_flush_fn to crash.  If your application
+    * experiences a problem, please try building libpng with
+    * PNG_WRITE_FLUSH_AFTER_IEND_SUPPORTED defined, and report the event to
+    * png-mng-implement at lists.sf.net .
+    */
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
+#  ifdef PNG_WRITE_FLUSH_AFTER_IEND_SUPPORTED
    png_flush(png_ptr);
+#  endif
 #endif
 }
 
-#if defined(PNG_WRITE_tIME_SUPPORTED)
-#if !defined(_WIN32_WCE)
-/* "time.h" functions are not supported on WindowsCE */
+#ifdef PNG_CONVERT_tIME_SUPPORTED
+/* "tm" structure is not supported on WindowsCE */
 void PNGAPI
-png_convert_from_struct_tm(png_timep ptime, struct tm FAR * ttime)
+png_convert_from_struct_tm(png_timep ptime, PNG_CONST struct tm FAR * ttime)
 {
-   png_debug(1, "in png_convert_from_struct_tm\n");
+   png_debug(1, "in png_convert_from_struct_tm");
+
    ptime->year = (png_uint_16)(1900 + ttime->tm_year);
    ptime->month = (png_byte)(ttime->tm_mon + 1);
    ptime->day = (png_byte)ttime->tm_mday;
@@ -446,76 +462,73 @@ png_convert_from_time_t(png_timep ptime, time_t ttime)
 {
    struct tm *tbuf;
 
-   png_debug(1, "in png_convert_from_time_t\n");
+   png_debug(1, "in png_convert_from_time_t");
+
    tbuf = gmtime(&ttime);
    png_convert_from_struct_tm(ptime, tbuf);
 }
 #endif
-#endif
 
 /* Initialize png_ptr structure, and allocate any memory needed */
-png_structp PNGAPI
-png_create_write_struct(png_const_charp user_png_ver, png_voidp error_ptr,
-   png_error_ptr error_fn, png_error_ptr warn_fn)
+PNG_FUNCTION(png_structp,PNGAPI
+png_create_write_struct,(png_const_charp user_png_ver, png_voidp error_ptr,
+    png_error_ptr error_fn, png_error_ptr warn_fn),PNG_ALLOCATED)
 {
 #ifdef PNG_USER_MEM_SUPPORTED
    return (png_create_write_struct_2(user_png_ver, error_ptr, error_fn,
-      warn_fn, png_voidp_NULL, png_malloc_ptr_NULL, png_free_ptr_NULL));
+       warn_fn, NULL, NULL, NULL));
 }
 
 /* Alternate initialize png_ptr structure, and allocate any memory needed */
-png_structp PNGAPI
-png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
-   png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
-   png_malloc_ptr malloc_fn, png_free_ptr free_fn)
+static void png_reset_filter_heuristics(png_structp png_ptr); /* forward decl */
+
+PNG_FUNCTION(png_structp,PNGAPI
+png_create_write_struct_2,(png_const_charp user_png_ver, png_voidp error_ptr,
+    png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
+    png_malloc_ptr malloc_fn, png_free_ptr free_fn),PNG_ALLOCATED)
 {
 #endif /* PNG_USER_MEM_SUPPORTED */
+   volatile int png_cleanup_needed = 0;
+#ifdef PNG_SETJMP_SUPPORTED
+   volatile
+#endif
    png_structp png_ptr;
 #ifdef PNG_SETJMP_SUPPORTED
 #ifdef USE_FAR_KEYWORD
-   jmp_buf jmpbuf;
+   jmp_buf tmp_jmpbuf;
 #endif
 #endif
-   int i;
-   png_debug(1, "in png_create_write_struct\n");
+
+   png_debug(1, "in png_create_write_struct");
+
 #ifdef PNG_USER_MEM_SUPPORTED
    png_ptr = (png_structp)png_create_struct_2(PNG_STRUCT_PNG,
-      (png_malloc_ptr)malloc_fn, (png_voidp)mem_ptr);
+       (png_malloc_ptr)malloc_fn, (png_voidp)mem_ptr);
 #else
    png_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG);
 #endif /* PNG_USER_MEM_SUPPORTED */
    if (png_ptr == NULL)
       return (NULL);
 
-#if !defined(PNG_1_0_X)
-#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
-#ifdef PNG_MMX_CODE_SUPPORTED
-   png_init_mmx_flags(png_ptr);   /* 1.2.0 addition */
-#endif
-#endif
-#endif /* PNG_1_0_X */
-
-   /* added at libpng-1.2.6 */
+   /* Added at libpng-1.2.6 */
 #ifdef PNG_SET_USER_LIMITS_SUPPORTED
-   png_ptr->user_width_max=PNG_USER_WIDTH_MAX;
-   png_ptr->user_height_max=PNG_USER_HEIGHT_MAX;
+   png_ptr->user_width_max = PNG_USER_WIDTH_MAX;
+   png_ptr->user_height_max = PNG_USER_HEIGHT_MAX;
 #endif
 
 #ifdef PNG_SETJMP_SUPPORTED
+/* Applications that neglect to set up their own setjmp() and then
+   encounter a png_error() will longjmp here.  Since the jmpbuf is
+   then meaningless we abort instead of returning. */
 #ifdef USE_FAR_KEYWORD
-   if (setjmp(jmpbuf))
+   if (setjmp(tmp_jmpbuf))
 #else
-   if (setjmp(png_ptr->jmpbuf))
+   if (setjmp(png_jmpbuf(png_ptr))) /* sets longjmp to match setjmp */
 #endif
-   {
-      png_free(png_ptr, png_ptr->zbuf);
-      png_ptr->zbuf=NULL;
-      png_destroy_struct(png_ptr);
-      return (NULL);
-   }
 #ifdef USE_FAR_KEYWORD
-   png_memcpy(png_ptr->jmpbuf,jmpbuf,png_sizeof(jmp_buf));
+   png_memcpy(png_jmpbuf(png_ptr), tmp_jmpbuf, png_sizeof(jmp_buf));
 #endif
+      PNG_ABORT();
 #endif
 
 #ifdef PNG_USER_MEM_SUPPORTED
@@ -523,209 +536,44 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
 #endif /* PNG_USER_MEM_SUPPORTED */
    png_set_error_fn(png_ptr, error_ptr, error_fn, warn_fn);
 
-   i=0;
-   do
-   {
-     if(user_png_ver[i] != png_libpng_ver[i])
-        png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
-   } while (png_libpng_ver[i++]);
+   if (!png_user_version_check(png_ptr, user_png_ver))
+      png_cleanup_needed = 1;
 
-   if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH)
-   {
-     /* Libpng 0.90 and later are binary incompatible with libpng 0.89, so
-      * we must recompile any applications that use any older library version.
-      * For versions after libpng 1.0, we will be compatible, so we need
-      * only check the first digit.
-      */
-     if (user_png_ver == NULL || user_png_ver[0] != png_libpng_ver[0] ||
-         (user_png_ver[0] == '1' && user_png_ver[2] != png_libpng_ver[2]) ||
-         (user_png_ver[0] == '0' && user_png_ver[2] < '9'))
-     {
-#if !defined(PNG_NO_STDIO) && !defined(_WIN32_WCE)
-        char msg[80];
-        if (user_png_ver)
-        {
-          sprintf(msg, "Application was compiled with png.h from libpng-%.20s",
-             user_png_ver);
-          png_warning(png_ptr, msg);
-        }
-        sprintf(msg, "Application  is  running with png.c from libpng-%.20s",
-           png_libpng_ver);
-        png_warning(png_ptr, msg);
-#endif
-#ifdef PNG_ERROR_NUMBERS_SUPPORTED
-        png_ptr->flags=0;
-#endif
-        png_error(png_ptr,
-           "Incompatible libpng version in application and library");
-     }
-   }
-
-   /* initialize zbuf - compression buffer */
+   /* Initialize zbuf - compression buffer */
    png_ptr->zbuf_size = PNG_ZBUF_SIZE;
-   png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
-      (png_uint_32)png_ptr->zbuf_size);
-
-   png_set_write_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL,
-      png_flush_ptr_NULL);
-
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
-   png_set_filter_heuristics(png_ptr, PNG_FILTER_HEURISTIC_DEFAULT,
-      1, png_doublep_NULL, png_doublep_NULL);
-#endif
 
-#ifdef PNG_SETJMP_SUPPORTED
-/* Applications that neglect to set up their own setjmp() and then encounter
-   a png_error() will longjmp here.  Since the jmpbuf is then meaningless we
-   abort instead of returning. */
-#ifdef USE_FAR_KEYWORD
-   if (setjmp(jmpbuf))
-      PNG_ABORT();
-   png_memcpy(png_ptr->jmpbuf,jmpbuf,png_sizeof(jmp_buf));
-#else
-   if (setjmp(png_ptr->jmpbuf))
-      PNG_ABORT();
-#endif
-#endif
-   return (png_ptr);
-}
-
-/* Initialize png_ptr structure, and allocate any memory needed */
-#if defined(PNG_1_0_X) || defined(PNG_1_2_X)
-/* Deprecated. */
-#undef png_write_init
-void PNGAPI
-png_write_init(png_structp png_ptr)
-{
-   /* We only come here via pre-1.0.7-compiled applications */
-   png_write_init_2(png_ptr, "1.0.6 or earlier", 0, 0);
-}
-
-void PNGAPI
-png_write_init_2(png_structp png_ptr, png_const_charp user_png_ver,
-   png_size_t png_struct_size, png_size_t png_info_size)
-{
-   /* We only come here via pre-1.0.12-compiled applications */
-   if(png_ptr == NULL) return;
-#if !defined(PNG_NO_STDIO) && !defined(_WIN32_WCE)
-   if(png_sizeof(png_struct) > png_struct_size ||
-      png_sizeof(png_info) > png_info_size)
+   if (!png_cleanup_needed)
    {
-      char msg[80];
-      png_ptr->warning_fn=NULL;
-      if (user_png_ver)
-      {
-        sprintf(msg, "Application was compiled with png.h from libpng-%.20s",
-           user_png_ver);
-        png_warning(png_ptr, msg);
-      }
-      sprintf(msg, "Application  is  running with png.c from libpng-%.20s",
-         png_libpng_ver);
-      png_warning(png_ptr, msg);
+      png_ptr->zbuf = (png_bytep)png_malloc_warn(png_ptr,
+          png_ptr->zbuf_size);
+      if (png_ptr->zbuf == NULL)
+         png_cleanup_needed = 1;
    }
-#endif
-   if(png_sizeof(png_struct) > png_struct_size)
-     {
-       png_ptr->error_fn=NULL;
-#ifdef PNG_ERROR_NUMBERS_SUPPORTED
-       png_ptr->flags=0;
-#endif
-       png_error(png_ptr,
-       "The png struct allocated by the application for writing is too small.");
-     }
-   if(png_sizeof(png_info) > png_info_size)
-     {
-       png_ptr->error_fn=NULL;
-#ifdef PNG_ERROR_NUMBERS_SUPPORTED
-       png_ptr->flags=0;
-#endif
-       png_error(png_ptr,
-       "The info struct allocated by the application for writing is too small.");
-     }
-   png_write_init_3(&png_ptr, user_png_ver, png_struct_size);
-}
-#endif /* PNG_1_0_X || PNG_1_2_X */
 
-
-void PNGAPI
-png_write_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver,
-   png_size_t png_struct_size)
-{
-   png_structp png_ptr=*ptr_ptr;
-#ifdef PNG_SETJMP_SUPPORTED
-   jmp_buf tmp_jmp; /* to save current jump buffer */
-#endif
-
-   int i = 0;
-
-   if (png_ptr == NULL)
-      return;
-
-   do
+   if (png_cleanup_needed)
    {
-     if (user_png_ver[i] != png_libpng_ver[i])
-     {
-#ifdef PNG_LEGACY_SUPPORTED
-       png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
+       /* Clean up PNG structure and deallocate any memory. */
+       png_free(png_ptr, png_ptr->zbuf);
+       png_ptr->zbuf = NULL;
+#ifdef PNG_USER_MEM_SUPPORTED
+       png_destroy_struct_2((png_voidp)png_ptr,
+           (png_free_ptr)free_fn, (png_voidp)mem_ptr);
 #else
-       png_ptr->warning_fn=NULL;
-       png_warning(png_ptr,
-     "Application uses deprecated png_write_init() and should be recompiled.");
-       break;
-#endif
-     }
-   } while (png_libpng_ver[i++]);
-
-   png_debug(1, "in png_write_init_3\n");
-
-#ifdef PNG_SETJMP_SUPPORTED
-   /* save jump buffer and error functions */
-   png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof (jmp_buf));
-#endif
-
-   if (png_sizeof(png_struct) > png_struct_size)
-     {
-       png_destroy_struct(png_ptr);
-       png_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG);
-       *ptr_ptr = png_ptr;
-     }
-
-   /* reset all variables to 0 */
-   png_memset(png_ptr, 0, png_sizeof (png_struct));
-
-   /* added at libpng-1.2.6 */
-#ifdef PNG_SET_USER_LIMITS_SUPPORTED
-   png_ptr->user_width_max=PNG_USER_WIDTH_MAX;
-   png_ptr->user_height_max=PNG_USER_HEIGHT_MAX;
+       png_destroy_struct((png_voidp)png_ptr);
 #endif
+       return (NULL);
+   }
 
-#if !defined(PNG_1_0_X)
-#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
-#ifdef PNG_MMX_CODE_SUPPORTED
-   png_init_mmx_flags(png_ptr);   /* 1.2.0 addition */
-#endif
-#endif
-#endif /* PNG_1_0_X */
+   png_set_write_fn(png_ptr, NULL, NULL, NULL);
 
-#ifdef PNG_SETJMP_SUPPORTED
-   /* restore jump buffer */
-   png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof (jmp_buf));
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
+   png_reset_filter_heuristics(png_ptr);
 #endif
 
-   png_set_write_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL,
-      png_flush_ptr_NULL);
-
-   /* initialize zbuf - compression buffer */
-   png_ptr->zbuf_size = PNG_ZBUF_SIZE;
-   png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
-      (png_uint_32)png_ptr->zbuf_size);
-
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
-   png_set_filter_heuristics(png_ptr, PNG_FILTER_HEURISTIC_DEFAULT,
-      1, png_doublep_NULL, png_doublep_NULL);
-#endif
+   return (png_ptr);
 }
 
+
 /* Write a few rows of image data.  If the image is interlaced,
  * either you will have to write the 7 sub images, or, if you
  * have called png_set_interlace_handling(), you will have to
@@ -733,17 +581,17 @@ png_write_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver,
  */
 void PNGAPI
 png_write_rows(png_structp png_ptr, png_bytepp row,
-   png_uint_32 num_rows)
+    png_uint_32 num_rows)
 {
    png_uint_32 i; /* row counter */
    png_bytepp rp; /* row pointer */
 
-   png_debug(1, "in png_write_rows\n");
+   png_debug(1, "in png_write_rows");
 
    if (png_ptr == NULL)
       return;
 
-   /* loop through the rows */
+   /* Loop through the rows */
    for (i = 0, rp = row; i < num_rows; i++, rp++)
    {
       png_write_row(png_ptr, *rp);
@@ -763,18 +611,20 @@ png_write_image(png_structp png_ptr, png_bytepp image)
    if (png_ptr == NULL)
       return;
 
-   png_debug(1, "in png_write_image\n");
-#if defined(PNG_WRITE_INTERLACING_SUPPORTED)
-   /* intialize interlace handling.  If image is not interlaced,
-      this will set pass to 1 */
+   png_debug(1, "in png_write_image");
+
+#ifdef PNG_WRITE_INTERLACING_SUPPORTED
+   /* Initialize interlace handling.  If image is not interlaced,
+    * this will set pass to 1
+    */
    num_pass = png_set_interlace_handling(png_ptr);
 #else
    num_pass = 1;
 #endif
-   /* loop through passes */
+   /* Loop through passes */
    for (pass = 0; pass < num_pass; pass++)
    {
-      /* loop through image */
+      /* Loop through image */
       for (i = 0, rp = image; i < png_ptr->height; i++, rp++)
       {
          png_write_row(png_ptr, *rp);
@@ -782,58 +632,66 @@ png_write_image(png_structp png_ptr, png_bytepp image)
    }
 }
 
-/* called by user to write a row of image data */
+/* Called by user to write a row of image data */
 void PNGAPI
-png_write_row(png_structp png_ptr, png_bytep row)
+png_write_row(png_structp png_ptr, png_const_bytep row)
 {
    if (png_ptr == NULL)
       return;
-   png_debug2(1, "in png_write_row (row %ld, pass %d)\n",
+
+   png_debug2(1, "in png_write_row (row %u, pass %d)",
       png_ptr->row_number, png_ptr->pass);
 
-   /* initialize transformations and other stuff if first time */
+   /* Initialize transformations and other stuff if first time */
    if (png_ptr->row_number == 0 && png_ptr->pass == 0)
    {
-   /* make sure we wrote the header info */
-   if (!(png_ptr->mode & PNG_WROTE_INFO_BEFORE_PLTE))
-      png_error(png_ptr,
-         "png_write_info was never called before png_write_row.");
+      /* Make sure we wrote the header info */
+      if (!(png_ptr->mode & PNG_WROTE_INFO_BEFORE_PLTE))
+         png_error(png_ptr,
+             "png_write_info was never called before png_write_row");
 
-   /* check for transforms that have been set but were defined out */
+      /* Check for transforms that have been set but were defined out */
 #if !defined(PNG_WRITE_INVERT_SUPPORTED) && defined(PNG_READ_INVERT_SUPPORTED)
-   if (png_ptr->transformations & PNG_INVERT_MONO)
-      png_warning(png_ptr, "PNG_WRITE_INVERT_SUPPORTED is not defined.");
+      if (png_ptr->transformations & PNG_INVERT_MONO)
+         png_warning(png_ptr, "PNG_WRITE_INVERT_SUPPORTED is not defined");
 #endif
+
 #if !defined(PNG_WRITE_FILLER_SUPPORTED) && defined(PNG_READ_FILLER_SUPPORTED)
-   if (png_ptr->transformations & PNG_FILLER)
-      png_warning(png_ptr, "PNG_WRITE_FILLER_SUPPORTED is not defined.");
+      if (png_ptr->transformations & PNG_FILLER)
+         png_warning(png_ptr, "PNG_WRITE_FILLER_SUPPORTED is not defined");
 #endif
-#if !defined(PNG_WRITE_PACKSWAP_SUPPORTED) && defined(PNG_READ_PACKSWAP_SUPPORTED)
-   if (png_ptr->transformations & PNG_PACKSWAP)
-      png_warning(png_ptr, "PNG_WRITE_PACKSWAP_SUPPORTED is not defined.");
+#if !defined(PNG_WRITE_PACKSWAP_SUPPORTED) && \
+    defined(PNG_READ_PACKSWAP_SUPPORTED)
+      if (png_ptr->transformations & PNG_PACKSWAP)
+         png_warning(png_ptr,
+             "PNG_WRITE_PACKSWAP_SUPPORTED is not defined");
 #endif
+
 #if !defined(PNG_WRITE_PACK_SUPPORTED) && defined(PNG_READ_PACK_SUPPORTED)
-   if (png_ptr->transformations & PNG_PACK)
-      png_warning(png_ptr, "PNG_WRITE_PACK_SUPPORTED is not defined.");
+      if (png_ptr->transformations & PNG_PACK)
+         png_warning(png_ptr, "PNG_WRITE_PACK_SUPPORTED is not defined");
 #endif
+
 #if !defined(PNG_WRITE_SHIFT_SUPPORTED) && defined(PNG_READ_SHIFT_SUPPORTED)
-   if (png_ptr->transformations & PNG_SHIFT)
-      png_warning(png_ptr, "PNG_WRITE_SHIFT_SUPPORTED is not defined.");
+      if (png_ptr->transformations & PNG_SHIFT)
+         png_warning(png_ptr, "PNG_WRITE_SHIFT_SUPPORTED is not defined");
 #endif
+
 #if !defined(PNG_WRITE_BGR_SUPPORTED) && defined(PNG_READ_BGR_SUPPORTED)
-   if (png_ptr->transformations & PNG_BGR)
-      png_warning(png_ptr, "PNG_WRITE_BGR_SUPPORTED is not defined.");
+      if (png_ptr->transformations & PNG_BGR)
+         png_warning(png_ptr, "PNG_WRITE_BGR_SUPPORTED is not defined");
 #endif
+
 #if !defined(PNG_WRITE_SWAP_SUPPORTED) && defined(PNG_READ_SWAP_SUPPORTED)
-   if (png_ptr->transformations & PNG_SWAP_BYTES)
-      png_warning(png_ptr, "PNG_WRITE_SWAP_SUPPORTED is not defined.");
+      if (png_ptr->transformations & PNG_SWAP_BYTES)
+         png_warning(png_ptr, "PNG_WRITE_SWAP_SUPPORTED is not defined");
 #endif
 
       png_write_start_row(png_ptr);
    }
 
-#if defined(PNG_WRITE_INTERLACING_SUPPORTED)
-   /* if interlaced and not interested in row, return */
+#ifdef PNG_WRITE_INTERLACING_SUPPORTED
+   /* If interlaced and not interested in row, return */
    if (png_ptr->interlaced && (png_ptr->transformations & PNG_INTERLACE))
    {
       switch (png_ptr->pass)
@@ -845,6 +703,7 @@ png_write_row(png_structp png_ptr, png_bytep row)
                return;
             }
             break;
+
          case 1:
             if ((png_ptr->row_number & 0x07) || png_ptr->width < 5)
             {
@@ -852,6 +711,7 @@ png_write_row(png_structp png_ptr, png_bytep row)
                return;
             }
             break;
+
          case 2:
             if ((png_ptr->row_number & 0x07) != 4)
             {
@@ -859,6 +719,7 @@ png_write_row(png_structp png_ptr, png_bytep row)
                return;
             }
             break;
+
          case 3:
             if ((png_ptr->row_number & 0x03) || png_ptr->width < 3)
             {
@@ -866,6 +727,7 @@ png_write_row(png_structp png_ptr, png_bytep row)
                return;
             }
             break;
+
          case 4:
             if ((png_ptr->row_number & 0x03) != 2)
             {
@@ -873,6 +735,7 @@ png_write_row(png_structp png_ptr, png_bytep row)
                return;
             }
             break;
+
          case 5:
             if ((png_ptr->row_number & 0x01) || png_ptr->width < 2)
             {
@@ -880,6 +743,7 @@ png_write_row(png_structp png_ptr, png_bytep row)
                return;
             }
             break;
+
          case 6:
             if (!(png_ptr->row_number & 0x01))
             {
@@ -887,11 +751,14 @@ png_write_row(png_structp png_ptr, png_bytep row)
                return;
             }
             break;
+
+         default: /* error: ignore it */
+            break;
       }
    }
 #endif
 
-   /* set up row info for transformations */
+   /* Set up row info for transformations */
    png_ptr->row_info.color_type = png_ptr->color_type;
    png_ptr->row_info.width = png_ptr->usr_width;
    png_ptr->row_info.channels = png_ptr->usr_channels;
@@ -902,25 +769,25 @@ png_write_row(png_structp png_ptr, png_bytep row)
    png_ptr->row_info.rowbytes = PNG_ROWBYTES(png_ptr->row_info.pixel_depth,
       png_ptr->row_info.width);
 
-   png_debug1(3, "row_info->color_type = %d\n", png_ptr->row_info.color_type);
-   png_debug1(3, "row_info->width = %lu\n", png_ptr->row_info.width);
-   png_debug1(3, "row_info->channels = %d\n", png_ptr->row_info.channels);
-   png_debug1(3, "row_info->bit_depth = %d\n", png_ptr->row_info.bit_depth);
-   png_debug1(3, "row_info->pixel_depth = %d\n", png_ptr->row_info.pixel_depth);
-   png_debug1(3, "row_info->rowbytes = %lu\n", png_ptr->row_info.rowbytes);
+   png_debug1(3, "row_info->color_type = %d", png_ptr->row_info.color_type);
+   png_debug1(3, "row_info->width = %u", png_ptr->row_info.width);
+   png_debug1(3, "row_info->channels = %d", png_ptr->row_info.channels);
+   png_debug1(3, "row_info->bit_depth = %d", png_ptr->row_info.bit_depth);
+   png_debug1(3, "row_info->pixel_depth = %d", png_ptr->row_info.pixel_depth);
+   png_debug1(3, "row_info->rowbytes = %lu",
+       (unsigned long)png_ptr->row_info.rowbytes);
 
    /* Copy user's row into buffer, leaving room for filter byte. */
-   png_memcpy_check(png_ptr, png_ptr->row_buf + 1, row,
-      png_ptr->row_info.rowbytes);
+   png_memcpy(png_ptr->row_buf + 1, row, png_ptr->row_info.rowbytes);
 
-#if defined(PNG_WRITE_INTERLACING_SUPPORTED)
-   /* handle interlacing */
+#ifdef PNG_WRITE_INTERLACING_SUPPORTED
+   /* Handle interlacing */
    if (png_ptr->interlaced && png_ptr->pass < 6 &&
-      (png_ptr->transformations & PNG_INTERLACE))
+       (png_ptr->transformations & PNG_INTERLACE))
    {
       png_do_write_interlace(&(png_ptr->row_info),
-         png_ptr->row_buf + 1, png_ptr->pass);
-      /* this should always get caught above, but still ... */
+          png_ptr->row_buf + 1, png_ptr->pass);
+      /* This should always get caught above, but still ... */
       if (!(png_ptr->row_info.width))
       {
          png_write_finish_row(png_ptr);
@@ -929,11 +796,13 @@ png_write_row(png_structp png_ptr, png_bytep row)
    }
 #endif
 
-   /* handle other transformations */
+#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED
+   /* Handle other transformations */
    if (png_ptr->transformations)
       png_do_write_transformations(png_ptr);
+#endif
 
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
+#ifdef PNG_MNG_FEATURES_SUPPORTED
    /* Write filter_method 64 (intrapixel differencing) only if
     * 1. Libpng was compiled with PNG_MNG_FEATURES_SUPPORTED and
     * 2. Libpng did not write a PNG signature (this filter_method is only
@@ -943,8 +812,8 @@ png_write_row(png_structp png_ptr, png_bytep row)
     * 4. The filter_method is 64 and
     * 5. The color_type is RGB or RGBA
     */
-   if((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
-      (png_ptr->filter_type == PNG_INTRAPIXEL_DIFFERENCING))
+   if ((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
+       (png_ptr->filter_type == PNG_INTRAPIXEL_DIFFERENCING))
    {
       /* Intrapixel differencing */
       png_do_write_intrapixel(&(png_ptr->row_info), png_ptr->row_buf + 1);
@@ -958,73 +827,73 @@ png_write_row(png_structp png_ptr, png_bytep row)
       (*(png_ptr->write_row_fn))(png_ptr, png_ptr->row_number, png_ptr->pass);
 }
 
-#if defined(PNG_WRITE_FLUSH_SUPPORTED)
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
 /* Set the automatic flush interval or 0 to turn flushing off */
 void PNGAPI
 png_set_flush(png_structp png_ptr, int nrows)
 {
-   png_debug(1, "in png_set_flush\n");
+   png_debug(1, "in png_set_flush");
+
    if (png_ptr == NULL)
       return;
+
    png_ptr->flush_dist = (nrows < 0 ? 0 : nrows);
 }
 
-/* flush the current output buffers now */
+/* Flush the current output buffers now */
 void PNGAPI
 png_write_flush(png_structp png_ptr)
 {
    int wrote_IDAT;
 
-   png_debug(1, "in png_write_flush\n");
+   png_debug(1, "in png_write_flush");
+
    if (png_ptr == NULL)
       return;
+
    /* We have already written out all of the data */
    if (png_ptr->row_number >= png_ptr->num_rows)
-     return;
+      return;
 
    do
    {
       int ret;
 
-      /* compress the data */
+      /* Compress the data */
       ret = deflate(&png_ptr->zstream, Z_SYNC_FLUSH);
       wrote_IDAT = 0;
 
-      /* check for compression errors */
+      /* Check for compression errors */
       if (ret != Z_OK)
       {
          if (png_ptr->zstream.msg != NULL)
             png_error(png_ptr, png_ptr->zstream.msg);
+
          else
             png_error(png_ptr, "zlib error");
       }
 
       if (!(png_ptr->zstream.avail_out))
       {
-         /* write the IDAT and reset the zlib output buffer */
-         png_write_IDAT(png_ptr, png_ptr->zbuf,
-                        png_ptr->zbuf_size);
-         png_ptr->zstream.next_out = png_ptr->zbuf;
-         png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
+         /* Write the IDAT and reset the zlib output buffer */
+         png_write_IDAT(png_ptr, png_ptr->zbuf, png_ptr->zbuf_size);
          wrote_IDAT = 1;
       }
-   } while(wrote_IDAT == 1);
+   } while (wrote_IDAT == 1);
 
    /* If there is any data left to be output, write it into a new IDAT */
    if (png_ptr->zbuf_size != png_ptr->zstream.avail_out)
    {
-      /* write the IDAT and reset the zlib output buffer */
+      /* Write the IDAT and reset the zlib output buffer */
       png_write_IDAT(png_ptr, png_ptr->zbuf,
-                     png_ptr->zbuf_size - png_ptr->zstream.avail_out);
-      png_ptr->zstream.next_out = png_ptr->zbuf;
-      png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
+          png_ptr->zbuf_size - png_ptr->zstream.avail_out);
    }
    png_ptr->flush_rows = 0;
    png_flush(png_ptr);
 }
 #endif /* PNG_WRITE_FLUSH_SUPPORTED */
 
-/* free all memory used by the write */
+/* Free all memory used by the write */
 void PNGAPI
 png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)
 {
@@ -1035,7 +904,8 @@ png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)
    png_voidp mem_ptr = NULL;
 #endif
 
-   png_debug(1, "in png_destroy_write_struct\n");
+   png_debug(1, "in png_destroy_write_struct");
+
    if (png_ptr_ptr != NULL)
    {
       png_ptr = *png_ptr_ptr;
@@ -1045,25 +915,35 @@ png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)
 #endif
    }
 
+#ifdef PNG_USER_MEM_SUPPORTED
+   if (png_ptr != NULL)
+   {
+      free_fn = png_ptr->free_fn;
+      mem_ptr = png_ptr->mem_ptr;
+   }
+#endif
+
    if (info_ptr_ptr != NULL)
       info_ptr = *info_ptr_ptr;
 
    if (info_ptr != NULL)
    {
-      png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
-
-#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
-      if (png_ptr->num_chunk_list)
+      if (png_ptr != NULL)
       {
-         png_free(png_ptr, png_ptr->chunk_list);
-         png_ptr->chunk_list=NULL;
-         png_ptr->num_chunk_list=0;
-      }
+         png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
+
+#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+         if (png_ptr->num_chunk_list)
+         {
+            png_free(png_ptr, png_ptr->chunk_list);
+            png_ptr->num_chunk_list = 0;
+         }
 #endif
+      }
 
 #ifdef PNG_USER_MEM_SUPPORTED
       png_destroy_struct_2((png_voidp)info_ptr, (png_free_ptr)free_fn,
-         (png_voidp)mem_ptr);
+          (png_voidp)mem_ptr);
 #else
       png_destroy_struct((png_voidp)info_ptr);
 #endif
@@ -1075,7 +955,7 @@ png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)
       png_write_destroy(png_ptr);
 #ifdef PNG_USER_MEM_SUPPORTED
       png_destroy_struct_2((png_voidp)png_ptr, (png_free_ptr)free_fn,
-         (png_voidp)mem_ptr);
+          (png_voidp)mem_ptr);
 #else
       png_destroy_struct((png_voidp)png_ptr);
 #endif
@@ -1089,63 +969,68 @@ void /* PRIVATE */
 png_write_destroy(png_structp png_ptr)
 {
 #ifdef PNG_SETJMP_SUPPORTED
-   jmp_buf tmp_jmp; /* save jump buffer */
+   jmp_buf tmp_jmp; /* Save jump buffer */
 #endif
    png_error_ptr error_fn;
+#ifdef PNG_WARNINGS_SUPPORTED
    png_error_ptr warning_fn;
+#endif
    png_voidp error_ptr;
 #ifdef PNG_USER_MEM_SUPPORTED
    png_free_ptr free_fn;
 #endif
 
-   png_debug(1, "in png_write_destroy\n");
-   /* free any memory zlib uses */
-   deflateEnd(&png_ptr->zstream);
+   png_debug(1, "in png_write_destroy");
 
-   /* free our memory.  png_free checks NULL for us. */
+   /* Free any memory zlib uses */
+   if (png_ptr->zlib_state != PNG_ZLIB_UNINITIALIZED)
+      deflateEnd(&png_ptr->zstream);
+
+   /* Free our memory.  png_free checks NULL for us. */
    png_free(png_ptr, png_ptr->zbuf);
    png_free(png_ptr, png_ptr->row_buf);
+#ifdef PNG_WRITE_FILTER_SUPPORTED
    png_free(png_ptr, png_ptr->prev_row);
    png_free(png_ptr, png_ptr->sub_row);
    png_free(png_ptr, png_ptr->up_row);
    png_free(png_ptr, png_ptr->avg_row);
    png_free(png_ptr, png_ptr->paeth_row);
-
-#if defined(PNG_TIME_RFC1123_SUPPORTED)
-   png_free(png_ptr, png_ptr->time_buffer);
 #endif
 
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
-   png_free(png_ptr, png_ptr->prev_filters);
-   png_free(png_ptr, png_ptr->filter_weights);
-   png_free(png_ptr, png_ptr->inv_filter_weights);
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
+   /* Use this to save a little code space, it doesn't free the filter_costs */
+   png_reset_filter_heuristics(png_ptr);
    png_free(png_ptr, png_ptr->filter_costs);
    png_free(png_ptr, png_ptr->inv_filter_costs);
 #endif
 
 #ifdef PNG_SETJMP_SUPPORTED
-   /* reset structure */
-   png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof (jmp_buf));
+   /* Reset structure */
+   png_memcpy(tmp_jmp, png_ptr->longjmp_buffer, png_sizeof(jmp_buf));
 #endif
 
    error_fn = png_ptr->error_fn;
+#ifdef PNG_WARNINGS_SUPPORTED
    warning_fn = png_ptr->warning_fn;
+#endif
    error_ptr = png_ptr->error_ptr;
 #ifdef PNG_USER_MEM_SUPPORTED
    free_fn = png_ptr->free_fn;
 #endif
 
-   png_memset(png_ptr, 0, png_sizeof (png_struct));
+   png_memset(png_ptr, 0, png_sizeof(png_struct));
 
    png_ptr->error_fn = error_fn;
+#ifdef PNG_WARNINGS_SUPPORTED
    png_ptr->warning_fn = warning_fn;
+#endif
    png_ptr->error_ptr = error_ptr;
 #ifdef PNG_USER_MEM_SUPPORTED
    png_ptr->free_fn = free_fn;
 #endif
 
 #ifdef PNG_SETJMP_SUPPORTED
-   png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof (jmp_buf));
+   png_memcpy(png_ptr->longjmp_buffer, tmp_jmp, png_sizeof(jmp_buf));
 #endif
 }
 
@@ -1153,27 +1038,48 @@ png_write_destroy(png_structp png_ptr)
 void PNGAPI
 png_set_filter(png_structp png_ptr, int method, int filters)
 {
-   png_debug(1, "in png_set_filter\n");
+   png_debug(1, "in png_set_filter");
+
    if (png_ptr == NULL)
       return;
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
-   if((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
-      (method == PNG_INTRAPIXEL_DIFFERENCING))
-         method = PNG_FILTER_TYPE_BASE;
+
+#ifdef PNG_MNG_FEATURES_SUPPORTED
+   if ((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
+       (method == PNG_INTRAPIXEL_DIFFERENCING))
+      method = PNG_FILTER_TYPE_BASE;
+
 #endif
    if (method == PNG_FILTER_TYPE_BASE)
    {
       switch (filters & (PNG_ALL_FILTERS | 0x07))
       {
+#ifdef PNG_WRITE_FILTER_SUPPORTED
          case 5:
          case 6:
          case 7: png_warning(png_ptr, "Unknown row filter for method 0");
-         case PNG_FILTER_VALUE_NONE:  png_ptr->do_filter=PNG_FILTER_NONE; break;
-         case PNG_FILTER_VALUE_SUB:   png_ptr->do_filter=PNG_FILTER_SUB;  break;
-         case PNG_FILTER_VALUE_UP:    png_ptr->do_filter=PNG_FILTER_UP;   break;
-         case PNG_FILTER_VALUE_AVG:   png_ptr->do_filter=PNG_FILTER_AVG;  break;
-         case PNG_FILTER_VALUE_PAETH: png_ptr->do_filter=PNG_FILTER_PAETH;break;
-         default: png_ptr->do_filter = (png_byte)filters; break;
+#endif /* PNG_WRITE_FILTER_SUPPORTED */
+         case PNG_FILTER_VALUE_NONE:
+            png_ptr->do_filter = PNG_FILTER_NONE; break;
+
+#ifdef PNG_WRITE_FILTER_SUPPORTED
+         case PNG_FILTER_VALUE_SUB:
+            png_ptr->do_filter = PNG_FILTER_SUB; break;
+
+         case PNG_FILTER_VALUE_UP:
+            png_ptr->do_filter = PNG_FILTER_UP; break;
+
+         case PNG_FILTER_VALUE_AVG:
+            png_ptr->do_filter = PNG_FILTER_AVG; break;
+
+         case PNG_FILTER_VALUE_PAETH:
+            png_ptr->do_filter = PNG_FILTER_PAETH; break;
+
+         default:
+            png_ptr->do_filter = (png_byte)filters; break;
+#else
+         default:
+            png_warning(png_ptr, "Unknown row filter for method 0");
+#endif /* PNG_WRITE_FILTER_SUPPORTED */
       }
 
       /* If we have allocated the row_buf, this means we have already started
@@ -1187,10 +1093,11 @@ png_set_filter(png_structp png_ptr, int method, int filters)
        */
       if (png_ptr->row_buf != NULL)
       {
+#ifdef PNG_WRITE_FILTER_SUPPORTED
          if ((png_ptr->do_filter & PNG_FILTER_SUB) && png_ptr->sub_row == NULL)
          {
             png_ptr->sub_row = (png_bytep)png_malloc(png_ptr,
-              (png_ptr->rowbytes + 1));
+                (png_ptr->rowbytes + 1));
             png_ptr->sub_row[0] = PNG_FILTER_VALUE_SUB;
          }
 
@@ -1199,12 +1106,14 @@ png_set_filter(png_structp png_ptr, int method, int filters)
             if (png_ptr->prev_row == NULL)
             {
                png_warning(png_ptr, "Can't add Up filter after starting");
-               png_ptr->do_filter &= ~PNG_FILTER_UP;
+               png_ptr->do_filter = (png_byte)(png_ptr->do_filter &
+                   ~PNG_FILTER_UP);
             }
+
             else
             {
                png_ptr->up_row = (png_bytep)png_malloc(png_ptr,
-                  (png_ptr->rowbytes + 1));
+                   (png_ptr->rowbytes + 1));
                png_ptr->up_row[0] = PNG_FILTER_VALUE_UP;
             }
          }
@@ -1214,12 +1123,14 @@ png_set_filter(png_structp png_ptr, int method, int filters)
             if (png_ptr->prev_row == NULL)
             {
                png_warning(png_ptr, "Can't add Average filter after starting");
-               png_ptr->do_filter &= ~PNG_FILTER_AVG;
+               png_ptr->do_filter = (png_byte)(png_ptr->do_filter &
+                   ~PNG_FILTER_AVG);
             }
+
             else
             {
                png_ptr->avg_row = (png_bytep)png_malloc(png_ptr,
-                  (png_ptr->rowbytes + 1));
+                   (png_ptr->rowbytes + 1));
                png_ptr->avg_row[0] = PNG_FILTER_VALUE_AVG;
             }
          }
@@ -1232,15 +1143,17 @@ png_set_filter(png_structp png_ptr, int method, int filters)
                png_warning(png_ptr, "Can't add Paeth filter after starting");
                png_ptr->do_filter &= (png_byte)(~PNG_FILTER_PAETH);
             }
+
             else
             {
                png_ptr->paeth_row = (png_bytep)png_malloc(png_ptr,
-                  (png_ptr->rowbytes + 1));
+                   (png_ptr->rowbytes + 1));
                png_ptr->paeth_row[0] = PNG_FILTER_VALUE_PAETH;
             }
          }
 
          if (png_ptr->do_filter == PNG_NO_FILTERS)
+#endif /* PNG_WRITE_FILTER_SUPPORTED */
             png_ptr->do_filter = PNG_FILTER_NONE;
       }
    }
@@ -1255,131 +1168,253 @@ png_set_filter(png_structp png_ptr, int method, int filters)
  * filtered data going to zlib more consistent, hopefully resulting in
  * better compression.
  */
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)      /* GRR 970116 */
-void PNGAPI
-png_set_filter_heuristics(png_structp png_ptr, int heuristic_method,
-   int num_weights, png_doublep filter_weights,
-   png_doublep filter_costs)
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED      /* GRR 970116 */
+/* Convenience reset API. */
+static void
+png_reset_filter_heuristics(png_structp png_ptr)
 {
-   int i;
-
-   png_debug(1, "in png_set_filter_heuristics\n");
-   if (png_ptr == NULL)
-      return;
-   if (heuristic_method >= PNG_FILTER_HEURISTIC_LAST)
+   /* Clear out any old values in the 'weights' - this must be done because if
+    * the app calls set_filter_heuristics multiple times with different
+    * 'num_weights' values we would otherwise potentially have wrong sized
+    * arrays.
+    */
+   png_ptr->num_prev_filters = 0;
+   png_ptr->heuristic_method = PNG_FILTER_HEURISTIC_UNWEIGHTED;
+   if (png_ptr->prev_filters != NULL)
    {
-      png_warning(png_ptr, "Unknown filter heuristic method");
-      return;
+      png_bytep old = png_ptr->prev_filters;
+      png_ptr->prev_filters = NULL;
+      png_free(png_ptr, old);
    }
-
-   if (heuristic_method == PNG_FILTER_HEURISTIC_DEFAULT)
+   if (png_ptr->filter_weights != NULL)
    {
-      heuristic_method = PNG_FILTER_HEURISTIC_UNWEIGHTED;
+      png_uint_16p old = png_ptr->filter_weights;
+      png_ptr->filter_weights = NULL;
+      png_free(png_ptr, old);
    }
 
-   if (num_weights < 0 || filter_weights == NULL ||
-      heuristic_method == PNG_FILTER_HEURISTIC_UNWEIGHTED)
+   if (png_ptr->inv_filter_weights != NULL)
    {
-      num_weights = 0;
+      png_uint_16p old = png_ptr->inv_filter_weights;
+      png_ptr->inv_filter_weights = NULL;
+      png_free(png_ptr, old);
    }
 
-   png_ptr->num_prev_filters = (png_byte)num_weights;
-   png_ptr->heuristic_method = (png_byte)heuristic_method;
+   /* Leave the filter_costs - this array is fixed size. */
+}
+
+static int
+png_init_filter_heuristics(png_structp png_ptr, int heuristic_method,
+   int num_weights)
+{
+   if (png_ptr == NULL)
+      return 0;
+
+   /* Clear out the arrays */
+   png_reset_filter_heuristics(png_ptr);
 
-   if (num_weights > 0)
+   /* Check arguments; the 'reset' function makes the correct settings for the
+    * unweighted case, but we must handle the weight case by initializing the
+    * arrays for the caller.
+    */
+   if (heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED)
    {
-      if (png_ptr->prev_filters == NULL)
+      int i;
+
+      if (num_weights > 0)
       {
          png_ptr->prev_filters = (png_bytep)png_malloc(png_ptr,
-            (png_uint_32)(png_sizeof(png_byte) * num_weights));
+             (png_uint_32)(png_sizeof(png_byte) * num_weights));
 
          /* To make sure that the weighting starts out fairly */
          for (i = 0; i < num_weights; i++)
          {
             png_ptr->prev_filters[i] = 255;
          }
-      }
 
-      if (png_ptr->filter_weights == NULL)
-      {
          png_ptr->filter_weights = (png_uint_16p)png_malloc(png_ptr,
-            (png_uint_32)(png_sizeof(png_uint_16) * num_weights));
+             (png_uint_32)(png_sizeof(png_uint_16) * num_weights));
 
          png_ptr->inv_filter_weights = (png_uint_16p)png_malloc(png_ptr,
-            (png_uint_32)(png_sizeof(png_uint_16) * num_weights));
+             (png_uint_32)(png_sizeof(png_uint_16) * num_weights));
+
          for (i = 0; i < num_weights; i++)
          {
             png_ptr->inv_filter_weights[i] =
             png_ptr->filter_weights[i] = PNG_WEIGHT_FACTOR;
          }
+
+         /* Safe to set this now */
+         png_ptr->num_prev_filters = (png_byte)num_weights;
+      }
+
+      /* If, in the future, there are other filter methods, this would
+       * need to be based on png_ptr->filter.
+       */
+      if (png_ptr->filter_costs == NULL)
+      {
+         png_ptr->filter_costs = (png_uint_16p)png_malloc(png_ptr,
+             (png_uint_32)(png_sizeof(png_uint_16) * PNG_FILTER_VALUE_LAST));
+
+         png_ptr->inv_filter_costs = (png_uint_16p)png_malloc(png_ptr,
+             (png_uint_32)(png_sizeof(png_uint_16) * PNG_FILTER_VALUE_LAST));
+      }
+
+      for (i = 0; i < PNG_FILTER_VALUE_LAST; i++)
+      {
+         png_ptr->inv_filter_costs[i] =
+         png_ptr->filter_costs[i] = PNG_COST_FACTOR;
       }
 
+      /* All the arrays are inited, safe to set this: */
+      png_ptr->heuristic_method = PNG_FILTER_HEURISTIC_WEIGHTED;
+
+      /* Return the 'ok' code. */
+      return 1;
+   }
+   else if (heuristic_method == PNG_FILTER_HEURISTIC_DEFAULT ||
+      heuristic_method == PNG_FILTER_HEURISTIC_UNWEIGHTED)
+   {
+      return 1;
+   }
+   else
+   {
+      png_warning(png_ptr, "Unknown filter heuristic method");
+      return 0;
+   }
+}
+
+/* Provide floating and fixed point APIs */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+void PNGAPI
+png_set_filter_heuristics(png_structp png_ptr, int heuristic_method,
+    int num_weights, png_const_doublep filter_weights,
+    png_const_doublep filter_costs)
+{
+   png_debug(1, "in png_set_filter_heuristics");
+
+   /* The internal API allocates all the arrays and ensures that the elements of
+    * those arrays are set to the default value.
+    */
+   if (!png_init_filter_heuristics(png_ptr, heuristic_method, num_weights))
+      return;
+
+   /* If using the weighted method copy in the weights. */
+   if (heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED)
+   {
+      int i;
       for (i = 0; i < num_weights; i++)
       {
-         if (filter_weights[i] < 0.0)
+         if (filter_weights[i] <= 0.0)
          {
             png_ptr->inv_filter_weights[i] =
             png_ptr->filter_weights[i] = PNG_WEIGHT_FACTOR;
          }
+
          else
          {
             png_ptr->inv_filter_weights[i] =
-               (png_uint_16)((double)PNG_WEIGHT_FACTOR*filter_weights[i]+0.5);
+                (png_uint_16)(PNG_WEIGHT_FACTOR*filter_weights[i]+.5);
+
             png_ptr->filter_weights[i] =
-               (png_uint_16)((double)PNG_WEIGHT_FACTOR/filter_weights[i]+0.5);
+                (png_uint_16)(PNG_WEIGHT_FACTOR/filter_weights[i]+.5);
          }
       }
-   }
 
-   /* If, in the future, there are other filter methods, this would
-    * need to be based on png_ptr->filter.
-    */
-   if (png_ptr->filter_costs == NULL)
-   {
-      png_ptr->filter_costs = (png_uint_16p)png_malloc(png_ptr,
-         (png_uint_32)(png_sizeof(png_uint_16) * PNG_FILTER_VALUE_LAST));
-
-      png_ptr->inv_filter_costs = (png_uint_16p)png_malloc(png_ptr,
-         (png_uint_32)(png_sizeof(png_uint_16) * PNG_FILTER_VALUE_LAST));
-
-      for (i = 0; i < PNG_FILTER_VALUE_LAST; i++)
+      /* Here is where we set the relative costs of the different filters.  We
+       * should take the desired compression level into account when setting
+       * the costs, so that Paeth, for instance, has a high relative cost at low
+       * compression levels, while it has a lower relative cost at higher
+       * compression settings.  The filter types are in order of increasing
+       * relative cost, so it would be possible to do this with an algorithm.
+       */
+      for (i = 0; i < PNG_FILTER_VALUE_LAST; i++) if (filter_costs[i] >= 1.0)
       {
          png_ptr->inv_filter_costs[i] =
-         png_ptr->filter_costs[i] = PNG_COST_FACTOR;
+             (png_uint_16)(PNG_COST_FACTOR / filter_costs[i] + .5);
+
+         png_ptr->filter_costs[i] =
+             (png_uint_16)(PNG_COST_FACTOR * filter_costs[i] + .5);
       }
    }
+}
+#endif /* FLOATING_POINT */
 
-   /* Here is where we set the relative costs of the different filters.  We
-    * should take the desired compression level into account when setting
-    * the costs, so that Paeth, for instance, has a high relative cost at low
-    * compression levels, while it has a lower relative cost at higher
-    * compression settings.  The filter types are in order of increasing
-    * relative cost, so it would be possible to do this with an algorithm.
+#ifdef PNG_FIXED_POINT_SUPPORTED
+void PNGAPI
+png_set_filter_heuristics_fixed(png_structp png_ptr, int heuristic_method,
+    int num_weights, png_const_fixed_point_p filter_weights,
+    png_const_fixed_point_p filter_costs)
+{
+   png_debug(1, "in png_set_filter_heuristics_fixed");
+
+   /* The internal API allocates all the arrays and ensures that the elements of
+    * those arrays are set to the default value.
     */
-   for (i = 0; i < PNG_FILTER_VALUE_LAST; i++)
+   if (!png_init_filter_heuristics(png_ptr, heuristic_method, num_weights))
+      return;
+
+   /* If using the weighted method copy in the weights. */
+   if (heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED)
    {
-      if (filter_costs == NULL || filter_costs[i] < 0.0)
+      int i;
+      for (i = 0; i < num_weights; i++)
       {
-         png_ptr->inv_filter_costs[i] =
-         png_ptr->filter_costs[i] = PNG_COST_FACTOR;
+         if (filter_weights[i] <= 0)
+         {
+            png_ptr->inv_filter_weights[i] =
+            png_ptr->filter_weights[i] = PNG_WEIGHT_FACTOR;
+         }
+
+         else
+         {
+            png_ptr->inv_filter_weights[i] = (png_uint_16)
+               ((PNG_WEIGHT_FACTOR*filter_weights[i]+PNG_FP_HALF)/PNG_FP_1);
+
+            png_ptr->filter_weights[i] = (png_uint_16)((PNG_WEIGHT_FACTOR*
+               PNG_FP_1+(filter_weights[i]/2))/filter_weights[i]);
+         }
       }
-      else if (filter_costs[i] >= 1.0)
+
+      /* Here is where we set the relative costs of the different filters.  We
+       * should take the desired compression level into account when setting
+       * the costs, so that Paeth, for instance, has a high relative cost at low
+       * compression levels, while it has a lower relative cost at higher
+       * compression settings.  The filter types are in order of increasing
+       * relative cost, so it would be possible to do this with an algorithm.
+       */
+      for (i = 0; i < PNG_FILTER_VALUE_LAST; i++)
+         if (filter_costs[i] >= PNG_FP_1)
       {
-         png_ptr->inv_filter_costs[i] =
-            (png_uint_16)((double)PNG_COST_FACTOR / filter_costs[i] + 0.5);
-         png_ptr->filter_costs[i] =
-            (png_uint_16)((double)PNG_COST_FACTOR * filter_costs[i] + 0.5);
+         png_uint_32 tmp;
+
+         /* Use a 32 bit unsigned temporary here because otherwise the
+          * intermediate value will be a 32 bit *signed* integer (ANSI rules)
+          * and this will get the wrong answer on division.
+          */
+         tmp = PNG_COST_FACTOR*PNG_FP_1 + (filter_costs[i]/2);
+         tmp /= filter_costs[i];
+
+         png_ptr->inv_filter_costs[i] = (png_uint_16)tmp;
+
+         tmp = PNG_COST_FACTOR * filter_costs[i] + PNG_FP_HALF;
+         tmp /= PNG_FP_1;
+
+         png_ptr->filter_costs[i] = (png_uint_16)tmp;
       }
    }
 }
+#endif /* FIXED_POINT */
 #endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */
 
 void PNGAPI
 png_set_compression_level(png_structp png_ptr, int level)
 {
-   png_debug(1, "in png_set_compression_level\n");
+   png_debug(1, "in png_set_compression_level");
+
    if (png_ptr == NULL)
       return;
+
    png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_LEVEL;
    png_ptr->zlib_level = level;
 }
@@ -1387,9 +1422,11 @@ png_set_compression_level(png_structp png_ptr, int level)
 void PNGAPI
 png_set_compression_mem_level(png_structp png_ptr, int mem_level)
 {
-   png_debug(1, "in png_set_compression_mem_level\n");
+   png_debug(1, "in png_set_compression_mem_level");
+
    if (png_ptr == NULL)
       return;
+
    png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL;
    png_ptr->zlib_mem_level = mem_level;
 }
@@ -1397,29 +1434,38 @@ png_set_compression_mem_level(png_structp png_ptr, int mem_level)
 void PNGAPI
 png_set_compression_strategy(png_structp png_ptr, int strategy)
 {
-   png_debug(1, "in png_set_compression_strategy\n");
+   png_debug(1, "in png_set_compression_strategy");
+
    if (png_ptr == NULL)
       return;
+
    png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_STRATEGY;
    png_ptr->zlib_strategy = strategy;
 }
 
+/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a
+ * smaller value of window_bits if it can do so safely.
+ */
 void PNGAPI
 png_set_compression_window_bits(png_structp png_ptr, int window_bits)
 {
    if (png_ptr == NULL)
       return;
+
    if (window_bits > 15)
       png_warning(png_ptr, "Only compression windows <= 32k supported by PNG");
+
    else if (window_bits < 8)
       png_warning(png_ptr, "Only compression windows >= 256 supported by PNG");
+
 #ifndef WBITS_8_OK
-   /* avoid libpng bug with 256-byte windows */
+   /* Avoid libpng bug with 256-byte windows */
    if (window_bits == 8)
-     {
-       png_warning(png_ptr, "Compression window is being reset to 512");
-       window_bits=9;
-     }
+      {
+        png_warning(png_ptr, "Compression window is being reset to 512");
+        window_bits = 9;
+      }
+
 #endif
    png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS;
    png_ptr->zlib_window_bits = window_bits;
@@ -1428,119 +1474,210 @@ png_set_compression_window_bits(png_structp png_ptr, int window_bits)
 void PNGAPI
 png_set_compression_method(png_structp png_ptr, int method)
 {
-   png_debug(1, "in png_set_compression_method\n");
+   png_debug(1, "in png_set_compression_method");
+
    if (png_ptr == NULL)
       return;
+
    if (method != 8)
       png_warning(png_ptr, "Only compression method 8 is supported by PNG");
+
    png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_METHOD;
    png_ptr->zlib_method = method;
 }
 
+/* The following were added to libpng-1.5.4 */
+#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED
+void PNGAPI
+png_set_text_compression_level(png_structp png_ptr, int level)
+{
+   png_debug(1, "in png_set_text_compression_level");
+
+   if (png_ptr == NULL)
+      return;
+
+   png_ptr->flags |= PNG_FLAG_ZTXT_CUSTOM_LEVEL;
+   png_ptr->zlib_text_level = level;
+}
+
+void PNGAPI
+png_set_text_compression_mem_level(png_structp png_ptr, int mem_level)
+{
+   png_debug(1, "in png_set_text_compression_mem_level");
+
+   if (png_ptr == NULL)
+      return;
+
+   png_ptr->flags |= PNG_FLAG_ZTXT_CUSTOM_MEM_LEVEL;
+   png_ptr->zlib_text_mem_level = mem_level;
+}
+
+void PNGAPI
+png_set_text_compression_strategy(png_structp png_ptr, int strategy)
+{
+   png_debug(1, "in png_set_text_compression_strategy");
+
+   if (png_ptr == NULL)
+      return;
+
+   png_ptr->flags |= PNG_FLAG_ZTXT_CUSTOM_STRATEGY;
+   png_ptr->zlib_text_strategy = strategy;
+}
+
+/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a
+ * smaller value of window_bits if it can do so safely.
+ */
+void PNGAPI
+png_set_text_compression_window_bits(png_structp png_ptr, int window_bits)
+{
+   if (png_ptr == NULL)
+      return;
+
+   if (window_bits > 15)
+      png_warning(png_ptr, "Only compression windows <= 32k supported by PNG");
+
+   else if (window_bits < 8)
+      png_warning(png_ptr, "Only compression windows >= 256 supported by PNG");
+
+#ifndef WBITS_8_OK
+   /* Avoid libpng bug with 256-byte windows */
+   if (window_bits == 8)
+      {
+        png_warning(png_ptr, "Text compression window is being reset to 512");
+        window_bits = 9;
+      }
+
+#endif
+   png_ptr->flags |= PNG_FLAG_ZTXT_CUSTOM_WINDOW_BITS;
+   png_ptr->zlib_text_window_bits = window_bits;
+}
+
+void PNGAPI
+png_set_text_compression_method(png_structp png_ptr, int method)
+{
+   png_debug(1, "in png_set_text_compression_method");
+
+   if (png_ptr == NULL)
+      return;
+
+   if (method != 8)
+      png_warning(png_ptr, "Only compression method 8 is supported by PNG");
+
+   png_ptr->flags |= PNG_FLAG_ZTXT_CUSTOM_METHOD;
+   png_ptr->zlib_text_method = method;
+}
+#endif /* PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
+/* end of API added to libpng-1.5.4 */
+
 void PNGAPI
 png_set_write_status_fn(png_structp png_ptr, png_write_status_ptr write_row_fn)
 {
    if (png_ptr == NULL)
       return;
+
    png_ptr->write_row_fn = write_row_fn;
 }
 
-#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
 void PNGAPI
 png_set_write_user_transform_fn(png_structp png_ptr, png_user_transform_ptr
-   write_user_transform_fn)
+    write_user_transform_fn)
 {
-   png_debug(1, "in png_set_write_user_transform_fn\n");
+   png_debug(1, "in png_set_write_user_transform_fn");
+
    if (png_ptr == NULL)
       return;
+
    png_ptr->transformations |= PNG_USER_TRANSFORM;
    png_ptr->write_user_transform_fn = write_user_transform_fn;
 }
 #endif
 
 
-#if defined(PNG_INFO_IMAGE_SUPPORTED)
+#ifdef PNG_INFO_IMAGE_SUPPORTED
 void PNGAPI
 png_write_png(png_structp png_ptr, png_infop info_ptr,
-              int transforms, voidp params)
+    int transforms, voidp params)
 {
    if (png_ptr == NULL || info_ptr == NULL)
       return;
-#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
-   /* invert the alpha channel from opacity to transparency */
-   if (transforms & PNG_TRANSFORM_INVERT_ALPHA)
-       png_set_invert_alpha(png_ptr);
-#endif
 
    /* Write the file header information. */
    png_write_info(png_ptr, info_ptr);
 
    /* ------ these transformations don't touch the info structure ------- */
 
-#if defined(PNG_WRITE_INVERT_SUPPORTED)
-   /* invert monochrome pixels */
+#ifdef PNG_WRITE_INVERT_SUPPORTED
+   /* Invert monochrome pixels */
    if (transforms & PNG_TRANSFORM_INVERT_MONO)
-       png_set_invert_mono(png_ptr);
+      png_set_invert_mono(png_ptr);
 #endif
 
-#if defined(PNG_WRITE_SHIFT_SUPPORTED)
+#ifdef PNG_WRITE_SHIFT_SUPPORTED
    /* Shift the pixels up to a legal bit depth and fill in
     * as appropriate to correctly scale the image.
     */
    if ((transforms & PNG_TRANSFORM_SHIFT)
-               && (info_ptr->valid & PNG_INFO_sBIT))
-       png_set_shift(png_ptr, &info_ptr->sig_bit);
+       && (info_ptr->valid & PNG_INFO_sBIT))
+      png_set_shift(png_ptr, &info_ptr->sig_bit);
 #endif
 
-#if defined(PNG_WRITE_PACK_SUPPORTED)
-   /* pack pixels into bytes */
+#ifdef PNG_WRITE_PACK_SUPPORTED
+   /* Pack pixels into bytes */
    if (transforms & PNG_TRANSFORM_PACKING)
        png_set_packing(png_ptr);
 #endif
 
-#if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
-   /* swap location of alpha bytes from ARGB to RGBA */
+#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED
+   /* Swap location of alpha bytes from ARGB to RGBA */
    if (transforms & PNG_TRANSFORM_SWAP_ALPHA)
-       png_set_swap_alpha(png_ptr);
+      png_set_swap_alpha(png_ptr);
 #endif
 
-#if defined(PNG_WRITE_FILLER_SUPPORTED)
-   /* Get rid of filler (OR ALPHA) bytes, pack XRGB/RGBX/ARGB/RGBA into
-    * RGB (4 channels -> 3 channels). The second parameter is not used.
-    */
-   if (transforms & PNG_TRANSFORM_STRIP_FILLER)
-       png_set_filler(png_ptr, 0, PNG_FILLER_BEFORE);
+#ifdef PNG_WRITE_FILLER_SUPPORTED
+   /* Pack XRGB/RGBX/ARGB/RGBA into RGB (4 channels -> 3 channels) */
+   if (transforms & PNG_TRANSFORM_STRIP_FILLER_AFTER)
+      png_set_filler(png_ptr, 0, PNG_FILLER_AFTER);
+
+   else if (transforms & PNG_TRANSFORM_STRIP_FILLER_BEFORE)
+      png_set_filler(png_ptr, 0, PNG_FILLER_BEFORE);
 #endif
 
-#if defined(PNG_WRITE_BGR_SUPPORTED)
-   /* flip BGR pixels to RGB */
+#ifdef PNG_WRITE_BGR_SUPPORTED
+   /* Flip BGR pixels to RGB */
    if (transforms & PNG_TRANSFORM_BGR)
-       png_set_bgr(png_ptr);
+      png_set_bgr(png_ptr);
 #endif
 
-#if defined(PNG_WRITE_SWAP_SUPPORTED)
-   /* swap bytes of 16-bit files to most significant byte first */
+#ifdef PNG_WRITE_SWAP_SUPPORTED
+   /* Swap bytes of 16-bit files to most significant byte first */
    if (transforms & PNG_TRANSFORM_SWAP_ENDIAN)
-       png_set_swap(png_ptr);
+      png_set_swap(png_ptr);
 #endif
 
-#if defined(PNG_WRITE_PACKSWAP_SUPPORTED)
-   /* swap bits of 1, 2, 4 bit packed pixel formats */
+#ifdef PNG_WRITE_PACKSWAP_SUPPORTED
+   /* Swap bits of 1, 2, 4 bit packed pixel formats */
    if (transforms & PNG_TRANSFORM_PACKSWAP)
-       png_set_packswap(png_ptr);
+      png_set_packswap(png_ptr);
+#endif
+
+#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
+   /* Invert the alpha channel from opacity to transparency */
+   if (transforms & PNG_TRANSFORM_INVERT_ALPHA)
+      png_set_invert_alpha(png_ptr);
 #endif
 
    /* ----------------------- end of transformations ------------------- */
 
-   /* write the bits */
+   /* Write the bits */
    if (info_ptr->valid & PNG_INFO_IDAT)
        png_write_image(png_ptr, info_ptr->row_pointers);
 
    /* It is REQUIRED to call this to finish writing the rest of the file */
    png_write_end(png_ptr, info_ptr);
 
-   if(transforms == 0 || params == NULL)
-      /* quiet compiler warnings */ return;
+   PNG_UNUSED(transforms)   /* Quiet compiler warnings */
+   PNG_UNUSED(params)
 }
 #endif
 #endif /* PNG_WRITE_SUPPORTED */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngwtran.c b/jdk/src/share/native/sun/awt/libpng/pngwtran.c
index 54109ad..579057d 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngwtran.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngwtran.c
@@ -29,84 +29,98 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.9 April 14, 2006
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2006 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
+
 #ifdef PNG_WRITE_SUPPORTED
 
+#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED
 /* Transform the data according to the user's wishes.  The order of
  * transformations is significant.
  */
 void /* PRIVATE */
 png_do_write_transformations(png_structp png_ptr)
 {
-   png_debug(1, "in png_do_write_transformations\n");
+   png_debug(1, "in png_do_write_transformations");
 
    if (png_ptr == NULL)
       return;
 
-#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
    if (png_ptr->transformations & PNG_USER_TRANSFORM)
-      if(png_ptr->write_user_transform_fn != NULL)
-        (*(png_ptr->write_user_transform_fn)) /* user write transform function */
-          (png_ptr,                    /* png_ptr */
-           &(png_ptr->row_info),       /* row_info:     */
-             /*  png_uint_32 width;          width of row */
-             /*  png_uint_32 rowbytes;       number of bytes in row */
-             /*  png_byte color_type;        color type of pixels */
-             /*  png_byte bit_depth;         bit depth of samples */
-             /*  png_byte channels;          number of channels (1-4) */
-             /*  png_byte pixel_depth;       bits per pixel (depth*channels) */
-           png_ptr->row_buf + 1);      /* start of pixel data for row */
+      if (png_ptr->write_user_transform_fn != NULL)
+         (*(png_ptr->write_user_transform_fn)) /* User write transform
+                                                 function */
+             (png_ptr,                    /* png_ptr */
+             &(png_ptr->row_info),           /* row_info: */
+                /*  png_uint_32 width;       width of row */
+                /*  png_size_t rowbytes;     number of bytes in row */
+                /*  png_byte color_type;     color type of pixels */
+                /*  png_byte bit_depth;      bit depth of samples */
+                /*  png_byte channels;       number of channels (1-4) */
+                /*  png_byte pixel_depth;    bits per pixel (depth*channels) */
+             png_ptr->row_buf + 1);      /* start of pixel data for row */
 #endif
-#if defined(PNG_WRITE_FILLER_SUPPORTED)
+
+#ifdef PNG_WRITE_FILLER_SUPPORTED
    if (png_ptr->transformations & PNG_FILLER)
-      png_do_strip_filler(&(png_ptr->row_info), png_ptr->row_buf + 1,
-         png_ptr->flags);
+      png_do_strip_channel(&(png_ptr->row_info), png_ptr->row_buf + 1,
+         !(png_ptr->flags & PNG_FLAG_FILLER_AFTER));
 #endif
-#if defined(PNG_WRITE_PACKSWAP_SUPPORTED)
+
+#ifdef PNG_WRITE_PACKSWAP_SUPPORTED
    if (png_ptr->transformations & PNG_PACKSWAP)
       png_do_packswap(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
-#if defined(PNG_WRITE_PACK_SUPPORTED)
+
+#ifdef PNG_WRITE_PACK_SUPPORTED
    if (png_ptr->transformations & PNG_PACK)
       png_do_pack(&(png_ptr->row_info), png_ptr->row_buf + 1,
-         (png_uint_32)png_ptr->bit_depth);
+          (png_uint_32)png_ptr->bit_depth);
 #endif
-#if defined(PNG_WRITE_SWAP_SUPPORTED)
+
+#ifdef PNG_WRITE_SWAP_SUPPORTED
    if (png_ptr->transformations & PNG_SWAP_BYTES)
       png_do_swap(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
-#if defined(PNG_WRITE_SHIFT_SUPPORTED)
+
+#ifdef PNG_WRITE_SHIFT_SUPPORTED
    if (png_ptr->transformations & PNG_SHIFT)
       png_do_shift(&(png_ptr->row_info), png_ptr->row_buf + 1,
-         &(png_ptr->shift));
+          &(png_ptr->shift));
 #endif
-#if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
+
+#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED
    if (png_ptr->transformations & PNG_SWAP_ALPHA)
       png_do_write_swap_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
-#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
+
+#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
    if (png_ptr->transformations & PNG_INVERT_ALPHA)
       png_do_write_invert_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
-#if defined(PNG_WRITE_BGR_SUPPORTED)
+
+#ifdef PNG_WRITE_BGR_SUPPORTED
    if (png_ptr->transformations & PNG_BGR)
       png_do_bgr(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
-#if defined(PNG_WRITE_INVERT_SUPPORTED)
+
+#ifdef PNG_WRITE_INVERT_SUPPORTED
    if (png_ptr->transformations & PNG_INVERT_MONO)
       png_do_invert(&(png_ptr->row_info), png_ptr->row_buf + 1);
 #endif
 }
 
-#if defined(PNG_WRITE_PACK_SUPPORTED)
+#ifdef PNG_WRITE_PACK_SUPPORTED
 /* Pack pixels into bytes.  Pass the true bit depth in bit_depth.  The
  * row_info bit depth should be 8 (one pixel per byte).  The channels
  * should be 1 (this only happens on grayscale and paletted images).
@@ -114,11 +128,9 @@ png_do_write_transformations(png_structp png_ptr)
 void /* PRIVATE */
 png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth)
 {
-   png_debug(1, "in png_do_pack\n");
+   png_debug(1, "in png_do_pack");
+
    if (row_info->bit_depth == 8 &&
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL && row_info != NULL &&
-#endif
       row_info->channels == 1)
    {
       switch ((int)bit_depth)
@@ -139,9 +151,12 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth)
             {
                if (*sp != 0)
                   v |= mask;
+
                sp++;
+
                if (mask > 1)
                   mask >>= 1;
+
                else
                {
                   mask = 0x80;
@@ -150,10 +165,13 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth)
                   v = 0;
                }
             }
+
             if (mask != 0x80)
                *dp = (png_byte)v;
+
             break;
          }
+
          case 2:
          {
             png_bytep sp, dp;
@@ -165,12 +183,14 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth)
             dp = row;
             shift = 6;
             v = 0;
+
             for (i = 0; i < row_width; i++)
             {
                png_byte value;
 
                value = (png_byte)(*sp & 0x03);
                v |= (value << shift);
+
                if (shift == 0)
                {
                   shift = 6;
@@ -178,14 +198,19 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth)
                   dp++;
                   v = 0;
                }
+
                else
                   shift -= 2;
+
                sp++;
             }
+
             if (shift != 6)
                *dp = (png_byte)v;
+
             break;
          }
+
          case 4:
          {
             png_bytep sp, dp;
@@ -197,6 +222,7 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth)
             dp = row;
             shift = 4;
             v = 0;
+
             for (i = 0; i < row_width; i++)
             {
                png_byte value;
@@ -211,25 +237,32 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth)
                   dp++;
                   v = 0;
                }
+
                else
                   shift -= 4;
 
                sp++;
             }
+
             if (shift != 4)
                *dp = (png_byte)v;
+
             break;
          }
+
+         default:
+            break;
       }
+
       row_info->bit_depth = (png_byte)bit_depth;
       row_info->pixel_depth = (png_byte)(bit_depth * row_info->channels);
       row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth,
-         row_info->width);
+          row_info->width);
    }
 }
 #endif
 
-#if defined(PNG_WRITE_SHIFT_SUPPORTED)
+#ifdef PNG_WRITE_SHIFT_SUPPORTED
 /* Shift pixel values to take advantage of whole range.  Pass the
  * true number of bits in bit_depth.  The row should be packed
  * according to row_info->bit_depth.  Thus, if you had a row of
@@ -238,15 +271,12 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth)
  * data to 0 to 15.
  */
 void /* PRIVATE */
-png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth)
+png_do_shift(png_row_infop row_info, png_bytep row,
+    png_const_color_8p bit_depth)
 {
-   png_debug(1, "in png_do_shift\n");
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if (row != NULL && row_info != NULL &&
-#else
-   if (
-#endif
-      row_info->color_type != PNG_COLOR_TYPE_PALETTE)
+   png_debug(1, "in png_do_shift");
+
+   if (row_info->color_type != PNG_COLOR_TYPE_PALETTE)
    {
       int shift_start[4], shift_dec[4];
       int channels = 0;
@@ -256,19 +286,23 @@ png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth)
          shift_start[channels] = row_info->bit_depth - bit_depth->red;
          shift_dec[channels] = bit_depth->red;
          channels++;
+
          shift_start[channels] = row_info->bit_depth - bit_depth->green;
          shift_dec[channels] = bit_depth->green;
          channels++;
+
          shift_start[channels] = row_info->bit_depth - bit_depth->blue;
          shift_dec[channels] = bit_depth->blue;
          channels++;
       }
+
       else
       {
          shift_start[channels] = row_info->bit_depth - bit_depth->gray;
          shift_dec[channels] = bit_depth->gray;
          channels++;
       }
+
       if (row_info->color_type & PNG_COLOR_MASK_ALPHA)
       {
          shift_start[channels] = row_info->bit_depth - bit_depth->alpha;
@@ -276,18 +310,20 @@ png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth)
          channels++;
       }
 
-      /* with low row depths, could only be grayscale, so one channel */
+      /* With low row depths, could only be grayscale, so one channel */
       if (row_info->bit_depth < 8)
       {
          png_bytep bp = row;
-         png_uint_32 i;
+         png_size_t i;
          png_byte mask;
-         png_uint_32 row_bytes = row_info->rowbytes;
+         png_size_t row_bytes = row_info->rowbytes;
 
          if (bit_depth->gray == 1 && row_info->bit_depth == 2)
             mask = 0x55;
+
          else if (row_info->bit_depth == 4 && bit_depth->gray == 3)
             mask = 0x11;
+
          else
             mask = 0xff;
 
@@ -298,15 +334,18 @@ png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth)
 
             v = *bp;
             *bp = 0;
+
             for (j = shift_start[0]; j > -shift_dec[0]; j -= shift_dec[0])
             {
                if (j > 0)
                   *bp |= (png_byte)((v << j) & 0xff);
+
                else
                   *bp |= (png_byte)((v >> (-j)) & mask);
             }
          }
       }
+
       else if (row_info->bit_depth == 8)
       {
          png_bytep bp = row;
@@ -322,15 +361,18 @@ png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth)
 
             v = *bp;
             *bp = 0;
+
             for (j = shift_start[c]; j > -shift_dec[c]; j -= shift_dec[c])
             {
                if (j > 0)
                   *bp |= (png_byte)((v << j) & 0xff);
+
                else
                   *bp |= (png_byte)((v >> (-j)) & 0xff);
             }
          }
       }
+
       else
       {
          png_bytep bp;
@@ -345,10 +387,12 @@ png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth)
 
             v = (png_uint_16)(((png_uint_16)(*bp) << 8) + *(bp + 1));
             value = 0;
+
             for (j = shift_start[c]; j > -shift_dec[c]; j -= shift_dec[c])
             {
                if (j > 0)
                   value |= (png_uint_16)((v << j) & (png_uint_16)0xffff);
+
                else
                   value |= (png_uint_16)((v >> (-j)) & (png_uint_16)0xffff);
             }
@@ -360,23 +404,22 @@ png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth)
 }
 #endif
 
-#if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
+#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED
 void /* PRIVATE */
 png_do_write_swap_alpha(png_row_infop row_info, png_bytep row)
 {
-   png_debug(1, "in png_do_write_swap_alpha\n");
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if (row != NULL && row_info != NULL)
-#endif
+   png_debug(1, "in png_do_write_swap_alpha");
+
    {
       if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
       {
-         /* This converts from ARGB to RGBA */
          if (row_info->bit_depth == 8)
          {
+            /* This converts from ARGB to RGBA */
             png_bytep sp, dp;
             png_uint_32 i;
             png_uint_32 row_width = row_info->width;
+
             for (i = 0, sp = dp = row; i < row_width; i++)
             {
                png_byte save = *(sp++);
@@ -386,9 +429,11 @@ png_do_write_swap_alpha(png_row_infop row_info, png_bytep row)
                *(dp++) = save;
             }
          }
-         /* This converts from AARRGGBB to RRGGBBAA */
+
+#ifdef PNG_WRITE_16BIT_SUPPORTED
          else
          {
+            /* This converts from AARRGGBB to RRGGBBAA */
             png_bytep sp, dp;
             png_uint_32 i;
             png_uint_32 row_width = row_info->width;
@@ -408,12 +453,14 @@ png_do_write_swap_alpha(png_row_infop row_info, png_bytep row)
                *(dp++) = save[1];
             }
          }
+#endif /* PNG_WRITE_16BIT_SUPPORTED */
       }
+
       else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
       {
-         /* This converts from AG to GA */
          if (row_info->bit_depth == 8)
          {
+            /* This converts from AG to GA */
             png_bytep sp, dp;
             png_uint_32 i;
             png_uint_32 row_width = row_info->width;
@@ -425,9 +472,11 @@ png_do_write_swap_alpha(png_row_infop row_info, png_bytep row)
                *(dp++) = save;
             }
          }
-         /* This converts from AAGG to GGAA */
+
+#ifdef PNG_WRITE_16BIT_SUPPORTED
          else
          {
+            /* This converts from AAGG to GGAA */
             png_bytep sp, dp;
             png_uint_32 i;
             png_uint_32 row_width = row_info->width;
@@ -443,31 +492,31 @@ png_do_write_swap_alpha(png_row_infop row_info, png_bytep row)
                *(dp++) = save[1];
             }
          }
+#endif /* PNG_WRITE_16BIT_SUPPORTED */
       }
    }
 }
 #endif
 
-#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
+#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
 void /* PRIVATE */
 png_do_write_invert_alpha(png_row_infop row_info, png_bytep row)
 {
-   png_debug(1, "in png_do_write_invert_alpha\n");
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if (row != NULL && row_info != NULL)
-#endif
+   png_debug(1, "in png_do_write_invert_alpha");
+
    {
       if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
       {
-         /* This inverts the alpha channel in RGBA */
          if (row_info->bit_depth == 8)
          {
+            /* This inverts the alpha channel in RGBA */
             png_bytep sp, dp;
             png_uint_32 i;
             png_uint_32 row_width = row_info->width;
+
             for (i = 0, sp = dp = row; i < row_width; i++)
             {
-               /* does nothing
+               /* Does nothing
                *(dp++) = *(sp++);
                *(dp++) = *(sp++);
                *(dp++) = *(sp++);
@@ -476,16 +525,18 @@ png_do_write_invert_alpha(png_row_infop row_info, png_bytep row)
                *(dp++) = (png_byte)(255 - *(sp++));
             }
          }
-         /* This inverts the alpha channel in RRGGBBAA */
+
+#ifdef PNG_WRITE_16BIT_SUPPORTED
          else
          {
+            /* This inverts the alpha channel in RRGGBBAA */
             png_bytep sp, dp;
             png_uint_32 i;
             png_uint_32 row_width = row_info->width;
 
             for (i = 0, sp = dp = row; i < row_width; i++)
             {
-               /* does nothing
+               /* Does nothing
                *(dp++) = *(sp++);
                *(dp++) = *(sp++);
                *(dp++) = *(sp++);
@@ -498,12 +549,14 @@ png_do_write_invert_alpha(png_row_infop row_info, png_bytep row)
                *(dp++) = (png_byte)(255 - *(sp++));
             }
          }
+#endif /* PNG_WRITE_16BIT_SUPPORTED */
       }
+
       else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
       {
-         /* This inverts the alpha channel in GA */
          if (row_info->bit_depth == 8)
          {
+            /* This inverts the alpha channel in GA */
             png_bytep sp, dp;
             png_uint_32 i;
             png_uint_32 row_width = row_info->width;
@@ -514,16 +567,18 @@ png_do_write_invert_alpha(png_row_infop row_info, png_bytep row)
                *(dp++) = (png_byte)(255 - *(sp++));
             }
          }
-         /* This inverts the alpha channel in GGAA */
+
+#ifdef PNG_WRITE_16BIT_SUPPORTED
          else
          {
+            /* This inverts the alpha channel in GGAA */
             png_bytep sp, dp;
             png_uint_32 i;
             png_uint_32 row_width = row_info->width;
 
             for (i = 0, sp = dp = row; i < row_width; i++)
             {
-               /* does nothing
+               /* Does nothing
                *(dp++) = *(sp++);
                *(dp++) = *(sp++);
                */
@@ -532,22 +587,21 @@ png_do_write_invert_alpha(png_row_infop row_info, png_bytep row)
                *(dp++) = (png_byte)(255 - *(sp++));
             }
          }
+#endif /* PNG_WRITE_16BIT_SUPPORTED */
       }
    }
 }
 #endif
+#endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */
 
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
-/* undoes intrapixel differencing  */
+#ifdef PNG_MNG_FEATURES_SUPPORTED
+/* Undoes intrapixel differencing  */
 void /* PRIVATE */
 png_do_write_intrapixel(png_row_infop row_info, png_bytep row)
 {
-   png_debug(1, "in png_do_write_intrapixel\n");
-   if (
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-       row != NULL && row_info != NULL &&
-#endif
-       (row_info->color_type & PNG_COLOR_MASK_COLOR))
+   png_debug(1, "in png_do_write_intrapixel");
+
+   if ((row_info->color_type & PNG_COLOR_MASK_COLOR))
    {
       int bytes_per_pixel;
       png_uint_32 row_width = row_info->width;
@@ -558,17 +612,21 @@ png_do_write_intrapixel(png_row_infop row_info, png_bytep row)
 
          if (row_info->color_type == PNG_COLOR_TYPE_RGB)
             bytes_per_pixel = 3;
+
          else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
             bytes_per_pixel = 4;
+
          else
             return;
 
          for (i = 0, rp = row; i < row_width; i++, rp += bytes_per_pixel)
          {
-            *(rp)   = (png_byte)((*rp     - *(rp+1))&0xff);
-            *(rp+2) = (png_byte)((*(rp+2) - *(rp+1))&0xff);
+            *(rp)     = (png_byte)((*rp       - *(rp + 1)) & 0xff);
+            *(rp + 2) = (png_byte)((*(rp + 2) - *(rp + 1)) & 0xff);
          }
       }
+
+#ifdef PNG_WRITE_16BIT_SUPPORTED
       else if (row_info->bit_depth == 16)
       {
          png_bytep rp;
@@ -576,24 +634,27 @@ png_do_write_intrapixel(png_row_infop row_info, png_bytep row)
 
          if (row_info->color_type == PNG_COLOR_TYPE_RGB)
             bytes_per_pixel = 6;
+
          else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
             bytes_per_pixel = 8;
+
          else
             return;
 
          for (i = 0, rp = row; i < row_width; i++, rp += bytes_per_pixel)
          {
-            png_uint_32 s0   = (*(rp  ) << 8) | *(rp+1);
-            png_uint_32 s1   = (*(rp+2) << 8) | *(rp+3);
-            png_uint_32 s2   = (*(rp+4) << 8) | *(rp+5);
-            png_uint_32 red  = (png_uint_32)((s0-s1) & 0xffffL);
-            png_uint_32 blue = (png_uint_32)((s2-s1) & 0xffffL);
-            *(rp  ) = (png_byte)((red >> 8) & 0xff);
-            *(rp+1) = (png_byte)(red & 0xff);
-            *(rp+4) = (png_byte)((blue >> 8) & 0xff);
-            *(rp+5) = (png_byte)(blue & 0xff);
+            png_uint_32 s0   = (*(rp    ) << 8) | *(rp + 1);
+            png_uint_32 s1   = (*(rp + 2) << 8) | *(rp + 3);
+            png_uint_32 s2   = (*(rp + 4) << 8) | *(rp + 5);
+            png_uint_32 red  = (png_uint_32)((s0 - s1) & 0xffffL);
+            png_uint_32 blue = (png_uint_32)((s2 - s1) & 0xffffL);
+            *(rp    ) = (png_byte)((red >> 8) & 0xff);
+            *(rp + 1) = (png_byte)(red & 0xff);
+            *(rp + 4) = (png_byte)((blue >> 8) & 0xff);
+            *(rp + 5) = (png_byte)(blue & 0xff);
          }
       }
+#endif /* PNG_WRITE_16BIT_SUPPORTED */
    }
 }
 #endif /* PNG_MNG_FEATURES_SUPPORTED */
diff --git a/jdk/src/share/native/sun/awt/libpng/pngwutil.c b/jdk/src/share/native/sun/awt/libpng/pngwutil.c
index c262dc8..9163467 100644
--- a/jdk/src/share/native/sun/awt/libpng/pngwutil.c
+++ b/jdk/src/share/native/sun/awt/libpng/pngwutil.c
@@ -29,17 +29,21 @@
  * However, the following notice accompanied the original version of this
  * file and, per its terms, should not be removed:
  *
- * Last changed in libpng 1.2.15 January 5, 2007
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Last changed in libpng 1.5.4 [July 7, 2011]
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
  */
 
-#define PNG_INTERNAL
-#include "png.h"
+#include "pngpriv.h"
+
 #ifdef PNG_WRITE_SUPPORTED
 
+#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED
 /* Place a 32-bit number into a buffer in PNG byte order.  We work
  * with unsigned numbers for convenience, although one supported
  * ancillary chunk uses signed (two's complement) numbers.
@@ -53,9 +57,12 @@ png_save_uint_32(png_bytep buf, png_uint_32 i)
    buf[3] = (png_byte)(i & 0xff);
 }
 
+#ifdef PNG_SAVE_INT_32_SUPPORTED
 /* The png_save_int_32 function assumes integers are stored in two's
  * complement format.  If this isn't the case, then this routine needs to
- * be modified to write data in two's complement format.
+ * be modified to write data in two's complement format.  Note that,
+ * the following works correctly even if png_int_32 has more than 32 bits
+ * (compare the more complex code required on read for sign extention.)
  */
 void PNGAPI
 png_save_int_32(png_bytep buf, png_int_32 i)
@@ -65,6 +72,7 @@ png_save_int_32(png_bytep buf, png_int_32 i)
    buf[2] = (png_byte)((i >> 8) & 0xff);
    buf[3] = (png_byte)(i & 0xff);
 }
+#endif
 
 /* Place a 16-bit number into a buffer in PNG byte order.
  * The parameter is declared unsigned int, not png_uint_16,
@@ -76,6 +84,31 @@ png_save_uint_16(png_bytep buf, unsigned int i)
    buf[0] = (png_byte)((i >> 8) & 0xff);
    buf[1] = (png_byte)(i & 0xff);
 }
+#endif
+
+/* Simple function to write the signature.  If we have already written
+ * the magic bytes of the signature, or more likely, the PNG stream is
+ * being embedded into another stream and doesn't need its own signature,
+ * we should call png_set_sig_bytes() to tell libpng how many of the
+ * bytes have already been written.
+ */
+void PNGAPI
+png_write_sig(png_structp png_ptr)
+{
+   png_byte png_signature[8] = {137, 80, 78, 71, 13, 10, 26, 10};
+
+#ifdef PNG_IO_STATE_SUPPORTED
+   /* Inform the I/O callback that the signature is being written */
+   png_ptr->io_state = PNG_IO_WRITING | PNG_IO_SIGNATURE;
+#endif
+
+   /* Write the rest of the 8 byte signature */
+   png_write_data(png_ptr, &png_signature[png_ptr->sig_bytes],
+      (png_size_t)(8 - png_ptr->sig_bytes));
+
+   if (png_ptr->sig_bytes < 3)
+      png_ptr->mode |= PNG_HAVE_PNG_SIGNATURE;
+}
 
 /* Write a PNG chunk all at once.  The type is an array of ASCII characters
  * representing the chunk name.  The array must be at least 4 bytes in
@@ -87,12 +120,14 @@ png_save_uint_16(png_bytep buf, unsigned int i)
  * functions instead.
  */
 void PNGAPI
-png_write_chunk(png_structp png_ptr, png_bytep chunk_name,
-   png_bytep data, png_size_t length)
+png_write_chunk(png_structp png_ptr, png_const_bytep chunk_name,
+   png_const_bytep data, png_size_t length)
 {
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL)
+      return;
+
    png_write_chunk_start(png_ptr, chunk_name, (png_uint_32)length);
-   png_write_chunk_data(png_ptr, data, length);
+   png_write_chunk_data(png_ptr, data, (png_size_t)length);
    png_write_chunk_end(png_ptr);
 }
 
@@ -101,22 +136,43 @@ png_write_chunk(png_structp png_ptr, png_bytep chunk_name,
  * passing in png_write_chunk_data().
  */
 void PNGAPI
-png_write_chunk_start(png_structp png_ptr, png_bytep chunk_name,
-   png_uint_32 length)
+png_write_chunk_start(png_structp png_ptr, png_const_bytep chunk_name,
+    png_uint_32 length)
 {
-   png_byte buf[4];
-   png_debug2(0, "Writing %s chunk (%lu bytes)\n", chunk_name, length);
-   if(png_ptr == NULL) return;
+   png_byte buf[8];
+
+   png_debug2(0, "Writing %s chunk, length = %lu", chunk_name,
+      (unsigned long)length);
+
+   if (png_ptr == NULL)
+      return;
 
-   /* write the length */
+#ifdef PNG_IO_STATE_SUPPORTED
+   /* Inform the I/O callback that the chunk header is being written.
+    * PNG_IO_CHUNK_HDR requires a single I/O call.
+    */
+   png_ptr->io_state = PNG_IO_WRITING | PNG_IO_CHUNK_HDR;
+#endif
+
+   /* Write the length and the chunk name */
    png_save_uint_32(buf, length);
-   png_write_data(png_ptr, buf, (png_size_t)4);
+   png_memcpy(buf + 4, chunk_name, 4);
+   png_write_data(png_ptr, buf, (png_size_t)8);
+
+   /* Put the chunk name into png_ptr->chunk_name */
+   png_memcpy(png_ptr->chunk_name, chunk_name, 4);
 
-   /* write the chunk name */
-   png_write_data(png_ptr, chunk_name, (png_size_t)4);
-   /* reset the crc and run it over the chunk name */
+   /* Reset the crc and run it over the chunk name */
    png_reset_crc(png_ptr);
-   png_calculate_crc(png_ptr, chunk_name, (png_size_t)4);
+
+   png_calculate_crc(png_ptr, chunk_name, 4);
+
+#ifdef PNG_IO_STATE_SUPPORTED
+   /* Inform the I/O callback that chunk data will (possibly) be written.
+    * PNG_IO_CHUNK_DATA does NOT require a specific number of I/O calls.
+    */
+   png_ptr->io_state = PNG_IO_WRITING | PNG_IO_CHUNK_DATA;
+#endif
 }
 
 /* Write the data of a PNG chunk started with png_write_chunk_start().
@@ -125,14 +181,21 @@ png_write_chunk_start(png_structp png_ptr, png_bytep chunk_name,
  * given to png_write_chunk_start().
  */
 void PNGAPI
-png_write_chunk_data(png_structp png_ptr, png_bytep data, png_size_t length)
+png_write_chunk_data(png_structp png_ptr, png_const_bytep data,
+    png_size_t length)
 {
-   /* write the data, and run the CRC over it */
-   if(png_ptr == NULL) return;
+   /* Write the data, and run the CRC over it */
+   if (png_ptr == NULL)
+      return;
+
    if (data != NULL && length > 0)
    {
-      png_calculate_crc(png_ptr, data, length);
       png_write_data(png_ptr, data, length);
+
+      /* Update the CRC after writing the data,
+       * in case that the user I/O routine alters it.
+       */
+      png_calculate_crc(png_ptr, data, length);
    }
 }
 
@@ -142,34 +205,165 @@ png_write_chunk_end(png_structp png_ptr)
 {
    png_byte buf[4];
 
-   if(png_ptr == NULL) return;
+   if (png_ptr == NULL) return;
 
-   /* write the crc */
+#ifdef PNG_IO_STATE_SUPPORTED
+   /* Inform the I/O callback that the chunk CRC is being written.
+    * PNG_IO_CHUNK_CRC requires a single I/O function call.
+    */
+   png_ptr->io_state = PNG_IO_WRITING | PNG_IO_CHUNK_CRC;
+#endif
+
+   /* Write the crc in a single operation */
    png_save_uint_32(buf, png_ptr->crc);
 
    png_write_data(png_ptr, buf, (png_size_t)4);
 }
 
-/* Simple function to write the signature.  If we have already written
- * the magic bytes of the signature, or more likely, the PNG stream is
- * being embedded into another stream and doesn't need its own signature,
- * we should call png_set_sig_bytes() to tell libpng how many of the
- * bytes have already been written.
+/* Initialize the compressor for the appropriate type of compression. */
+static void
+png_zlib_claim(png_structp png_ptr, png_uint_32 state)
+{
+   if (!(png_ptr->zlib_state & PNG_ZLIB_IN_USE))
+   {
+      /* If already initialized for 'state' do not re-init. */
+      if (png_ptr->zlib_state != state)
+      {
+         int ret = Z_OK;
+         png_const_charp who = "-";
+
+         /* If actually initialized for another state do a deflateEnd. */
+         if (png_ptr->zlib_state != PNG_ZLIB_UNINITIALIZED)
+         {
+            ret = deflateEnd(&png_ptr->zstream);
+            who = "end";
+            png_ptr->zlib_state = PNG_ZLIB_UNINITIALIZED;
+         }
+
+         /* zlib itself detects an incomplete state on deflateEnd */
+         if (ret == Z_OK) switch (state)
+         {
+#           ifdef PNG_WRITE_COMPRESSED_TEXT_SUPPORTED
+               case PNG_ZLIB_FOR_TEXT:
+                  ret = deflateInit2(&png_ptr->zstream,
+                     png_ptr->zlib_text_level, png_ptr->zlib_text_method,
+                     png_ptr->zlib_text_window_bits,
+                     png_ptr->zlib_text_mem_level, png_ptr->zlib_text_strategy);
+                  who = "text";
+                  break;
+#           endif
+
+            case PNG_ZLIB_FOR_IDAT:
+               ret = deflateInit2(&png_ptr->zstream, png_ptr->zlib_level,
+                   png_ptr->zlib_method, png_ptr->zlib_window_bits,
+                   png_ptr->zlib_mem_level, png_ptr->zlib_strategy);
+               who = "IDAT";
+               break;
+
+            default:
+               png_error(png_ptr, "invalid zlib state");
+         }
+
+         if (ret == Z_OK)
+            png_ptr->zlib_state = state;
+
+         else /* an error in deflateEnd or deflateInit2 */
+         {
+            size_t pos = 0;
+            char msg[64];
+
+            pos = png_safecat(msg, sizeof msg, pos,
+               "zlib failed to initialize compressor (");
+            pos = png_safecat(msg, sizeof msg, pos, who);
+
+            switch (ret)
+            {
+               case Z_VERSION_ERROR:
+                  pos = png_safecat(msg, sizeof msg, pos, ") version error");
+                  break;
+
+               case Z_STREAM_ERROR:
+                  pos = png_safecat(msg, sizeof msg, pos, ") stream error");
+                  break;
+
+               case Z_MEM_ERROR:
+                  pos = png_safecat(msg, sizeof msg, pos, ") memory error");
+                  break;
+
+               default:
+                  pos = png_safecat(msg, sizeof msg, pos, ") unknown error");
+                  break;
+            }
+
+            png_error(png_ptr, msg);
+         }
+      }
+
+      /* Here on success, claim the zstream: */
+      png_ptr->zlib_state |= PNG_ZLIB_IN_USE;
+   }
+
+   else
+      png_error(png_ptr, "zstream already in use (internal error)");
+}
+
+/* The opposite: release the stream.  It is also reset, this API will warn on
+ * error but will not fail.
  */
-void /* PRIVATE */
-png_write_sig(png_structp png_ptr)
+static void
+png_zlib_release(png_structp png_ptr)
 {
-   png_byte png_signature[8] = {137, 80, 78, 71, 13, 10, 26, 10};
-   /* write the rest of the 8 byte signature */
-   png_write_data(png_ptr, &png_signature[png_ptr->sig_bytes],
-      (png_size_t)8 - png_ptr->sig_bytes);
-   if(png_ptr->sig_bytes < 3)
-      png_ptr->mode |= PNG_HAVE_PNG_SIGNATURE;
+   if (png_ptr->zlib_state & PNG_ZLIB_IN_USE)
+   {
+      int ret = deflateReset(&png_ptr->zstream);
+
+      png_ptr->zlib_state &= ~PNG_ZLIB_IN_USE;
+
+      if (ret != Z_OK)
+      {
+         png_const_charp err;
+         PNG_WARNING_PARAMETERS(p)
+
+         switch (ret)
+         {
+            case Z_VERSION_ERROR:
+               err = "version";
+               break;
+
+            case Z_STREAM_ERROR:
+               err = "stream";
+               break;
+
+            case Z_MEM_ERROR:
+               err = "memory";
+               break;
+
+            default:
+               err = "unknown";
+               break;
+         }
+
+         png_warning_parameter_signed(p, 1, PNG_NUMBER_FORMAT_d, ret);
+         png_warning_parameter(p, 2, err);
+
+         if (png_ptr->zstream.msg)
+            err = png_ptr->zstream.msg;
+         else
+            err = "[no zlib message]";
+
+         png_warning_parameter(p, 3, err);
+
+         png_formatted_warning(png_ptr, p,
+            "zlib failed to reset compressor: @1(@2): @3");
+      }
+   }
+
+   else
+      png_warning(png_ptr, "zstream not in use (internal error)");
 }
 
-#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_iCCP_SUPPORTED)
-/*
- * This pair of functions encapsulates the operation of (a) compressing a
+#ifdef PNG_WRITE_COMPRESSED_TEXT_SUPPORTED
+/* This pair of functions encapsulates the operation of (a) compressing a
  * text string, and (b) issuing it later as a series of chunk data writes.
  * The compression_state structure is shared context for these functions
  * set up by the caller in order to make the whole mess thread-safe.
@@ -177,18 +371,18 @@ png_write_sig(png_structp png_ptr)
 
 typedef struct
 {
-    char *input;   /* the uncompressed input data */
-    int input_len;   /* its length */
-    int num_output_ptr; /* number of output pointers used */
-    int max_output_ptr; /* size of output_ptr */
-    png_charpp output_ptr; /* array of pointers to output */
+   png_const_bytep input;   /* The uncompressed input data */
+   png_size_t input_len;    /* Its length */
+   int num_output_ptr;      /* Number of output pointers used */
+   int max_output_ptr;      /* Size of output_ptr */
+   png_bytep *output_ptr;   /* Array of pointers to output */
 } compression_state;
 
-/* compress given text into storage in the png_ptr structure */
+/* Compress given text into storage in the png_ptr structure */
 static int /* PRIVATE */
 png_text_compress(png_structp png_ptr,
-        png_charp text, png_size_t text_len, int compression,
-        compression_state *comp)
+    png_const_charp text, png_size_t text_len, int compression,
+    compression_state *comp)
 {
    int ret;
 
@@ -196,25 +390,22 @@ png_text_compress(png_structp png_ptr,
    comp->max_output_ptr = 0;
    comp->output_ptr = NULL;
    comp->input = NULL;
-   comp->input_len = 0;
+   comp->input_len = text_len;
 
-   /* we may just want to pass the text right through */
+   /* We may just want to pass the text right through */
    if (compression == PNG_TEXT_COMPRESSION_NONE)
    {
-       comp->input = text;
-       comp->input_len = text_len;
-       return((int)text_len);
+      comp->input = (png_const_bytep)text;
+      return((int)text_len);
    }
 
    if (compression >= PNG_TEXT_COMPRESSION_LAST)
    {
-#if !defined(PNG_NO_STDIO) && !defined(_WIN32_WCE)
-      char msg[50];
-      sprintf(msg, "Unknown compression type %d", compression);
-      png_warning(png_ptr, msg);
-#else
-      png_warning(png_ptr, "Unknown compression type");
-#endif
+      PNG_WARNING_PARAMETERS(p)
+
+      png_warning_parameter_signed(p, 1, PNG_NUMBER_FORMAT_d,
+         compression);
+      png_formatted_warning(png_ptr, p, "Unknown compression type @1");
    }
 
    /* We can't write the chunk until we find out how much data we have,
@@ -231,30 +422,37 @@ png_text_compress(png_structp png_ptr,
     * data, or if the input string is incredibly large (although this
     * wouldn't cause a failure, just a slowdown due to swapping).
     */
+   png_zlib_claim(png_ptr, PNG_ZLIB_FOR_TEXT);
 
-   /* set up the compression buffers */
+   /* Set up the compression buffers */
+   /* TODO: the following cast hides a potential overflow problem. */
    png_ptr->zstream.avail_in = (uInt)text_len;
+
+   /* NOTE: assume zlib doesn't overwrite the input */
    png_ptr->zstream.next_in = (Bytef *)text;
-   png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
-   png_ptr->zstream.next_out = (Bytef *)png_ptr->zbuf;
+   png_ptr->zstream.avail_out = png_ptr->zbuf_size;
+   png_ptr->zstream.next_out = png_ptr->zbuf;
 
-   /* this is the same compression loop as in png_write_row() */
+   /* This is the same compression loop as in png_write_row() */
    do
    {
-      /* compress the data */
+      /* Compress the data */
       ret = deflate(&png_ptr->zstream, Z_NO_FLUSH);
+
       if (ret != Z_OK)
       {
-         /* error */
+         /* Error */
          if (png_ptr->zstream.msg != NULL)
             png_error(png_ptr, png_ptr->zstream.msg);
+
          else
             png_error(png_ptr, "zlib error");
       }
-      /* check to see if we need more room */
+
+      /* Check to see if we need more room */
       if (!(png_ptr->zstream.avail_out))
       {
-         /* make sure the output array has room */
+         /* Make sure the output array has room */
          if (comp->num_output_ptr >= comp->max_output_ptr)
          {
             int old_max;
@@ -263,48 +461,54 @@ png_text_compress(png_structp png_ptr,
             comp->max_output_ptr = comp->num_output_ptr + 4;
             if (comp->output_ptr != NULL)
             {
-               png_charpp old_ptr;
+               png_bytepp old_ptr;
 
                old_ptr = comp->output_ptr;
-               comp->output_ptr = (png_charpp)png_malloc(png_ptr,
-                  (png_uint_32)(comp->max_output_ptr *
-                  png_sizeof (png_charpp)));
+
+               comp->output_ptr = (png_bytepp)png_malloc(png_ptr,
+                   (png_alloc_size_t)
+                   (comp->max_output_ptr * png_sizeof(png_charpp)));
+
                png_memcpy(comp->output_ptr, old_ptr, old_max
-                  * png_sizeof (png_charp));
+                   * png_sizeof(png_charp));
+
                png_free(png_ptr, old_ptr);
             }
             else
-               comp->output_ptr = (png_charpp)png_malloc(png_ptr,
-                  (png_uint_32)(comp->max_output_ptr *
-                  png_sizeof (png_charp)));
+               comp->output_ptr = (png_bytepp)png_malloc(png_ptr,
+                   (png_alloc_size_t)
+                   (comp->max_output_ptr * png_sizeof(png_charp)));
          }
 
-         /* save the data */
-         comp->output_ptr[comp->num_output_ptr] = (png_charp)png_malloc(png_ptr,
-            (png_uint_32)png_ptr->zbuf_size);
+         /* Save the data */
+         comp->output_ptr[comp->num_output_ptr] =
+             (png_bytep)png_malloc(png_ptr,
+             (png_alloc_size_t)png_ptr->zbuf_size);
+
          png_memcpy(comp->output_ptr[comp->num_output_ptr], png_ptr->zbuf,
-            png_ptr->zbuf_size);
+             png_ptr->zbuf_size);
+
          comp->num_output_ptr++;
 
          /* and reset the buffer */
          png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
          png_ptr->zstream.next_out = png_ptr->zbuf;
       }
-   /* continue until we don't have any more to compress */
+   /* Continue until we don't have any more to compress */
    } while (png_ptr->zstream.avail_in);
 
-   /* finish the compression */
+   /* Finish the compression */
    do
    {
-      /* tell zlib we are finished */
+      /* Tell zlib we are finished */
       ret = deflate(&png_ptr->zstream, Z_FINISH);
 
       if (ret == Z_OK)
       {
-         /* check to see if we need more room */
+         /* Check to see if we need more room */
          if (!(png_ptr->zstream.avail_out))
          {
-            /* check to make sure our output array has room */
+            /* Check to make sure our output array has room */
             if (comp->num_output_ptr >= comp->max_output_ptr)
             {
                int old_max;
@@ -313,28 +517,35 @@ png_text_compress(png_structp png_ptr,
                comp->max_output_ptr = comp->num_output_ptr + 4;
                if (comp->output_ptr != NULL)
                {
-                  png_charpp old_ptr;
+                  png_bytepp old_ptr;
 
                   old_ptr = comp->output_ptr;
+
                   /* This could be optimized to realloc() */
-                  comp->output_ptr = (png_charpp)png_malloc(png_ptr,
-                     (png_uint_32)(comp->max_output_ptr *
-                     png_sizeof (png_charpp)));
+                  comp->output_ptr = (png_bytepp)png_malloc(png_ptr,
+                      (png_alloc_size_t)(comp->max_output_ptr *
+                      png_sizeof(png_charp)));
+
                   png_memcpy(comp->output_ptr, old_ptr,
-                     old_max * png_sizeof (png_charp));
+                      old_max * png_sizeof(png_charp));
+
                   png_free(png_ptr, old_ptr);
                }
+
                else
-                  comp->output_ptr = (png_charpp)png_malloc(png_ptr,
-                     (png_uint_32)(comp->max_output_ptr *
-                     png_sizeof (png_charp)));
+                  comp->output_ptr = (png_bytepp)png_malloc(png_ptr,
+                      (png_alloc_size_t)(comp->max_output_ptr *
+                      png_sizeof(png_charp)));
             }
 
-            /* save off the data */
+            /* Save the data */
             comp->output_ptr[comp->num_output_ptr] =
-               (png_charp)png_malloc(png_ptr, (png_uint_32)png_ptr->zbuf_size);
+                (png_bytep)png_malloc(png_ptr,
+                (png_alloc_size_t)png_ptr->zbuf_size);
+
             png_memcpy(comp->output_ptr[comp->num_output_ptr], png_ptr->zbuf,
-               png_ptr->zbuf_size);
+                png_ptr->zbuf_size);
+
             comp->num_output_ptr++;
 
             /* and reset the buffer pointers */
@@ -344,57 +555,121 @@ png_text_compress(png_structp png_ptr,
       }
       else if (ret != Z_STREAM_END)
       {
-         /* we got an error */
+         /* We got an error */
          if (png_ptr->zstream.msg != NULL)
             png_error(png_ptr, png_ptr->zstream.msg);
+
          else
             png_error(png_ptr, "zlib error");
       }
    } while (ret != Z_STREAM_END);
 
-   /* text length is number of buffers plus last buffer */
+   /* Text length is number of buffers plus last buffer */
    text_len = png_ptr->zbuf_size * comp->num_output_ptr;
+
    if (png_ptr->zstream.avail_out < png_ptr->zbuf_size)
       text_len += png_ptr->zbuf_size - (png_size_t)png_ptr->zstream.avail_out;
 
    return((int)text_len);
 }
 
-/* ship the compressed text out via chunk writes */
+/* Ship the compressed text out via chunk writes */
 static void /* PRIVATE */
 png_write_compressed_data_out(png_structp png_ptr, compression_state *comp)
 {
    int i;
 
-   /* handle the no-compression case */
+   /* Handle the no-compression case */
    if (comp->input)
    {
-       png_write_chunk_data(png_ptr, (png_bytep)comp->input,
-                            (png_size_t)comp->input_len);
-       return;
+      png_write_chunk_data(png_ptr, comp->input, comp->input_len);
+
+      return;
+   }
+
+#ifdef PNG_WRITE_OPTIMIZE_CMF_SUPPORTED
+   if (comp->input_len >= 2 && comp->input_len < 16384)
+   {
+      unsigned int z_cmf;  /* zlib compression method and flags */
+
+      /* Optimize the CMF field in the zlib stream.  This hack of the zlib
+       * stream is compliant to the stream specification.
+       */
+
+      if (comp->num_output_ptr)
+        z_cmf = comp->output_ptr[0][0];
+      else
+        z_cmf = png_ptr->zbuf[0];
+
+      if ((z_cmf & 0x0f) == 8 && (z_cmf & 0xf0) <= 0x70)
+      {
+         unsigned int z_cinfo;
+         unsigned int half_z_window_size;
+         png_size_t uncompressed_text_size = comp->input_len;
+
+         z_cinfo = z_cmf >> 4;
+         half_z_window_size = 1 << (z_cinfo + 7);
+
+         while (uncompressed_text_size <= half_z_window_size &&
+             half_z_window_size >= 256)
+         {
+            z_cinfo--;
+            half_z_window_size >>= 1;
+         }
+
+         z_cmf = (z_cmf & 0x0f) | (z_cinfo << 4);
+
+         if (comp->num_output_ptr)
+         {
+
+           if (comp->output_ptr[0][0] != z_cmf)
+           {
+              int tmp;
+
+              comp->output_ptr[0][0] = (png_byte)z_cmf;
+              tmp = comp->output_ptr[0][1] & 0xe0;
+              tmp += 0x1f - ((z_cmf << 8) + tmp) % 0x1f;
+              comp->output_ptr[0][1] = (png_byte)tmp;
+           }
+         }
+         else
+         {
+            int tmp;
+
+            png_ptr->zbuf[0] = (png_byte)z_cmf;
+            tmp = png_ptr->zbuf[1] & 0xe0;
+            tmp += 0x1f - ((z_cmf << 8) + tmp) % 0x1f;
+            png_ptr->zbuf[1] = (png_byte)tmp;
+         }
+      }
+
+      else
+         png_error(png_ptr,
+             "Invalid zlib compression method or flags in non-IDAT chunk");
    }
+#endif /* PNG_WRITE_OPTIMIZE_CMF_SUPPORTED */
 
-   /* write saved output buffers, if any */
+   /* Write saved output buffers, if any */
    for (i = 0; i < comp->num_output_ptr; i++)
    {
-      png_write_chunk_data(png_ptr,(png_bytep)comp->output_ptr[i],
-         png_ptr->zbuf_size);
+      png_write_chunk_data(png_ptr, comp->output_ptr[i],
+          (png_size_t)png_ptr->zbuf_size);
+
       png_free(png_ptr, comp->output_ptr[i]);
-      comp->output_ptr[i]=NULL;
    }
+
    if (comp->max_output_ptr != 0)
       png_free(png_ptr, comp->output_ptr);
-      comp->output_ptr=NULL;
-   /* write anything left in zbuf */
+
+   /* Write anything left in zbuf */
    if (png_ptr->zstream.avail_out < (png_uint_32)png_ptr->zbuf_size)
       png_write_chunk_data(png_ptr, png_ptr->zbuf,
-         png_ptr->zbuf_size - png_ptr->zstream.avail_out);
+          (png_size_t)(png_ptr->zbuf_size - png_ptr->zstream.avail_out));
 
-   /* reset zlib for another zTXt/iTXt or image data */
-   deflateReset(&png_ptr->zstream);
-   png_ptr->zstream.data_type = Z_BINARY;
+   /* Reset zlib for another zTXt/iTXt or image data */
+   png_zlib_release(png_ptr);
 }
-#endif
+#endif /* PNG_WRITE_COMPRESSED_TEXT_SUPPORTED */
 
 /* Write the IHDR chunk, and update the png_struct with the necessary
  * information.  Note that the rest of this code depends upon this
@@ -402,15 +677,15 @@ png_write_compressed_data_out(png_structp png_ptr, compression_state *comp)
  */
 void /* PRIVATE */
 png_write_IHDR(png_structp png_ptr, png_uint_32 width, png_uint_32 height,
-   int bit_depth, int color_type, int compression_type, int filter_type,
-   int interlace_type)
+    int bit_depth, int color_type, int compression_type, int filter_type,
+    int interlace_type)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_IHDR;
-#endif
-   png_byte buf[13]; /* buffer to store the IHDR info */
 
-   png_debug(1, "in png_write_IHDR\n");
+   png_byte buf[13]; /* Buffer to store the IHDR info */
+
+   png_debug(1, "in png_write_IHDR");
+
    /* Check that we have valid input data from the application info */
    switch (color_type)
    {
@@ -421,35 +696,61 @@ png_write_IHDR(png_structp png_ptr, png_uint_32 width, png_uint_32 height,
             case 2:
             case 4:
             case 8:
-            case 16: png_ptr->channels = 1; break;
-            default: png_error(png_ptr,"Invalid bit depth for grayscale image");
+#ifdef PNG_WRITE_16BIT_SUPPORTED
+            case 16:
+#endif
+               png_ptr->channels = 1; break;
+
+            default:
+               png_error(png_ptr,
+                   "Invalid bit depth for grayscale image");
          }
          break;
+
       case PNG_COLOR_TYPE_RGB:
+#ifdef PNG_WRITE_16BIT_SUPPORTED
          if (bit_depth != 8 && bit_depth != 16)
+#else
+         if (bit_depth != 8)
+#endif
             png_error(png_ptr, "Invalid bit depth for RGB image");
+
          png_ptr->channels = 3;
          break;
+
       case PNG_COLOR_TYPE_PALETTE:
          switch (bit_depth)
          {
             case 1:
             case 2:
             case 4:
-            case 8: png_ptr->channels = 1; break;
-            default: png_error(png_ptr, "Invalid bit depth for paletted image");
+            case 8:
+               png_ptr->channels = 1;
+               break;
+
+            default:
+               png_error(png_ptr, "Invalid bit depth for paletted image");
          }
          break;
+
       case PNG_COLOR_TYPE_GRAY_ALPHA:
          if (bit_depth != 8 && bit_depth != 16)
             png_error(png_ptr, "Invalid bit depth for grayscale+alpha image");
+
          png_ptr->channels = 2;
          break;
+
       case PNG_COLOR_TYPE_RGB_ALPHA:
+#ifdef PNG_WRITE_16BIT_SUPPORTED
          if (bit_depth != 8 && bit_depth != 16)
+#else
+         if (bit_depth != 8)
+#endif
             png_error(png_ptr, "Invalid bit depth for RGBA image");
+
          png_ptr->channels = 4;
          break;
+
       default:
          png_error(png_ptr, "Invalid image color type specified");
    }
@@ -470,14 +771,14 @@ png_write_IHDR(png_structp png_ptr, png_uint_32 width, png_uint_32 height,
     * 5. The color_type is RGB or RGBA
     */
    if (
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
-      !((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
-      ((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE) == 0) &&
-      (color_type == PNG_COLOR_TYPE_RGB ||
-       color_type == PNG_COLOR_TYPE_RGB_ALPHA) &&
-      (filter_type == PNG_INTRAPIXEL_DIFFERENCING)) &&
+#ifdef PNG_MNG_FEATURES_SUPPORTED
+       !((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
+       ((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE) == 0) &&
+       (color_type == PNG_COLOR_TYPE_RGB ||
+        color_type == PNG_COLOR_TYPE_RGB_ALPHA) &&
+       (filter_type == PNG_INTRAPIXEL_DIFFERENCING)) &&
 #endif
-      filter_type != PNG_FILTER_TYPE_BASE)
+       filter_type != PNG_FILTER_TYPE_BASE)
    {
       png_warning(png_ptr, "Invalid filter type specified");
       filter_type = PNG_FILTER_TYPE_BASE;
@@ -485,7 +786,7 @@ png_write_IHDR(png_structp png_ptr, png_uint_32 width, png_uint_32 height,
 
 #ifdef PNG_WRITE_INTERLACING_SUPPORTED
    if (interlace_type != PNG_INTERLACE_NONE &&
-      interlace_type != PNG_INTERLACE_ADAM7)
+       interlace_type != PNG_INTERLACE_ADAM7)
    {
       png_warning(png_ptr, "Invalid interlace type specified");
       interlace_type = PNG_INTERLACE_ADAM7;
@@ -494,11 +795,11 @@ png_write_IHDR(png_structp png_ptr, png_uint_32 width, png_uint_32 height,
    interlace_type=PNG_INTERLACE_NONE;
 #endif
 
-   /* save off the relevent information */
+   /* Save the relevent information */
    png_ptr->bit_depth = (png_byte)bit_depth;
    png_ptr->color_type = (png_byte)color_type;
    png_ptr->interlaced = (png_byte)interlace_type;
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
+#ifdef PNG_MNG_FEATURES_SUPPORTED
    png_ptr->filter_type = (png_byte)filter_type;
 #endif
    png_ptr->compression_type = (png_byte)compression_type;
@@ -507,12 +808,12 @@ png_write_IHDR(png_structp png_ptr, png_uint_32 width, png_uint_32 height,
 
    png_ptr->pixel_depth = (png_byte)(bit_depth * png_ptr->channels);
    png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth, width);
-   /* set the usr info, so any transformations can modify it */
+   /* Set the usr info, so any transformations can modify it */
    png_ptr->usr_width = png_ptr->width;
    png_ptr->usr_bit_depth = png_ptr->bit_depth;
    png_ptr->usr_channels = png_ptr->channels;
 
-   /* pack the header information into the buffer */
+   /* Pack the header information into the buffer */
    png_save_uint_32(buf, width);
    png_save_uint_32(buf + 4, height);
    buf[8] = (png_byte)bit_depth;
@@ -521,93 +822,123 @@ png_write_IHDR(png_structp png_ptr, png_uint_32 width, png_uint_32 height,
    buf[11] = (png_byte)filter_type;
    buf[12] = (png_byte)interlace_type;
 
-   /* write the chunk */
-   png_write_chunk(png_ptr, (png_bytep)png_IHDR, buf, (png_size_t)13);
+   /* Write the chunk */
+   png_write_chunk(png_ptr, png_IHDR, buf, (png_size_t)13);
 
-   /* initialize zlib with PNG info */
+   /* Initialize zlib with PNG info */
    png_ptr->zstream.zalloc = png_zalloc;
    png_ptr->zstream.zfree = png_zfree;
    png_ptr->zstream.opaque = (voidpf)png_ptr;
+
    if (!(png_ptr->do_filter))
    {
       if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE ||
-         png_ptr->bit_depth < 8)
+          png_ptr->bit_depth < 8)
          png_ptr->do_filter = PNG_FILTER_NONE;
+
       else
          png_ptr->do_filter = PNG_ALL_FILTERS;
    }
+
    if (!(png_ptr->flags & PNG_FLAG_ZLIB_CUSTOM_STRATEGY))
    {
       if (png_ptr->do_filter != PNG_FILTER_NONE)
          png_ptr->zlib_strategy = Z_FILTERED;
+
       else
          png_ptr->zlib_strategy = Z_DEFAULT_STRATEGY;
    }
+
    if (!(png_ptr->flags & PNG_FLAG_ZLIB_CUSTOM_LEVEL))
       png_ptr->zlib_level = Z_DEFAULT_COMPRESSION;
+
    if (!(png_ptr->flags & PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL))
       png_ptr->zlib_mem_level = 8;
+
    if (!(png_ptr->flags & PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS))
       png_ptr->zlib_window_bits = 15;
+
    if (!(png_ptr->flags & PNG_FLAG_ZLIB_CUSTOM_METHOD))
       png_ptr->zlib_method = 8;
-   if (deflateInit2(&png_ptr->zstream, png_ptr->zlib_level,
-      png_ptr->zlib_method, png_ptr->zlib_window_bits,
-      png_ptr->zlib_mem_level, png_ptr->zlib_strategy) != Z_OK)
-       png_error(png_ptr, "zlib failed to initialize compressor");
-   png_ptr->zstream.next_out = png_ptr->zbuf;
-   png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
-   /* libpng is not interested in zstream.data_type */
-   /* set it to a predefined value, to avoid its evaluation inside zlib */
-   png_ptr->zstream.data_type = Z_BINARY;
 
-   png_ptr->mode = PNG_HAVE_IHDR;
+#ifdef PNG_WRITE_COMPRESSED_TEXT_SUPPORTED
+#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED
+   if (!(png_ptr->flags & PNG_FLAG_ZTXT_CUSTOM_STRATEGY))
+      png_ptr->zlib_text_strategy = Z_DEFAULT_STRATEGY;
+
+   if (!(png_ptr->flags & PNG_FLAG_ZTXT_CUSTOM_LEVEL))
+      png_ptr->zlib_text_level = png_ptr->zlib_level;
+
+   if (!(png_ptr->flags & PNG_FLAG_ZTXT_CUSTOM_MEM_LEVEL))
+      png_ptr->zlib_text_mem_level = png_ptr->zlib_mem_level;
+
+   if (!(png_ptr->flags & PNG_FLAG_ZTXT_CUSTOM_WINDOW_BITS))
+      png_ptr->zlib_text_window_bits = png_ptr->zlib_window_bits;
+
+   if (!(png_ptr->flags & PNG_FLAG_ZTXT_CUSTOM_METHOD))
+      png_ptr->zlib_text_method = png_ptr->zlib_method;
+#else
+   png_ptr->zlib_text_strategy = Z_DEFAULT_STRATEGY;
+   png_ptr->zlib_text_level = png_ptr->zlib_level;
+   png_ptr->zlib_text_mem_level = png_ptr->zlib_mem_level;
+   png_ptr->zlib_text_window_bits = png_ptr->zlib_window_bits;
+   png_ptr->zlib_text_method = png_ptr->zlib_method;
+#endif /* PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
+#endif /* PNG_WRITE_COMPRESSED_TEXT_SUPPORTED */
+
+   /* Record that the compressor has not yet been initialized. */
+   png_ptr->zlib_state = PNG_ZLIB_UNINITIALIZED;
+
+   png_ptr->mode = PNG_HAVE_IHDR; /* not READY_FOR_ZTXT */
 }
 
-/* write the palette.  We are careful not to trust png_color to be in the
+/* Write the palette.  We are careful not to trust png_color to be in the
  * correct order for PNG, so people can redefine it to any convenient
  * structure.
  */
 void /* PRIVATE */
-png_write_PLTE(png_structp png_ptr, png_colorp palette, png_uint_32 num_pal)
+png_write_PLTE(png_structp png_ptr, png_const_colorp palette,
+    png_uint_32 num_pal)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_PLTE;
-#endif
    png_uint_32 i;
-   png_colorp pal_ptr;
+   png_const_colorp pal_ptr;
    png_byte buf[3];
 
-   png_debug(1, "in png_write_PLTE\n");
+   png_debug(1, "in png_write_PLTE");
+
    if ((
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
-        !(png_ptr->mng_features_permitted & PNG_FLAG_MNG_EMPTY_PLTE) &&
+#ifdef PNG_MNG_FEATURES_SUPPORTED
+       !(png_ptr->mng_features_permitted & PNG_FLAG_MNG_EMPTY_PLTE) &&
 #endif
-        num_pal == 0) || num_pal > 256)
+       num_pal == 0) || num_pal > 256)
    {
-     if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
-     {
-        png_error(png_ptr, "Invalid number of colors in palette");
-     }
-     else
-     {
-        png_warning(png_ptr, "Invalid number of colors in palette");
-        return;
-     }
+      if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
+      {
+         png_error(png_ptr, "Invalid number of colors in palette");
+      }
+
+      else
+      {
+         png_warning(png_ptr, "Invalid number of colors in palette");
+         return;
+      }
    }
 
    if (!(png_ptr->color_type&PNG_COLOR_MASK_COLOR))
    {
       png_warning(png_ptr,
-        "Ignoring request to write a PLTE chunk in grayscale PNG");
+          "Ignoring request to write a PLTE chunk in grayscale PNG");
+
       return;
    }
 
    png_ptr->num_palette = (png_uint_16)num_pal;
-   png_debug1(3, "num_palette = %d\n", png_ptr->num_palette);
+   png_debug1(3, "num_palette = %d", png_ptr->num_palette);
+
+   png_write_chunk_start(png_ptr, png_PLTE, (png_uint_32)(num_pal * 3));
+#ifdef PNG_POINTER_INDEXING_SUPPORTED
 
-   png_write_chunk_start(png_ptr, (png_bytep)png_PLTE, num_pal * 3);
-#ifndef PNG_NO_POINTER_INDEXING
    for (i = 0, pal_ptr = palette; i < num_pal; i++, pal_ptr++)
    {
       buf[0] = pal_ptr->red;
@@ -615,9 +946,13 @@ png_write_PLTE(png_structp png_ptr, png_colorp palette, png_uint_32 num_pal)
       buf[2] = pal_ptr->blue;
       png_write_chunk_data(png_ptr, buf, (png_size_t)3);
    }
+
 #else
-   /* This is a little slower but some buggy compilers need to do this instead */
+   /* This is a little slower but some buggy compilers need to do this
+    * instead
+    */
    pal_ptr=palette;
+
    for (i = 0; i < num_pal; i++)
    {
       buf[0] = pal_ptr[i].red;
@@ -625,146 +960,159 @@ png_write_PLTE(png_structp png_ptr, png_colorp palette, png_uint_32 num_pal)
       buf[2] = pal_ptr[i].blue;
       png_write_chunk_data(png_ptr, buf, (png_size_t)3);
    }
+
 #endif
    png_write_chunk_end(png_ptr);
    png_ptr->mode |= PNG_HAVE_PLTE;
 }
 
-/* write an IDAT chunk */
+/* Write an IDAT chunk */
 void /* PRIVATE */
 png_write_IDAT(png_structp png_ptr, png_bytep data, png_size_t length)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_IDAT;
-#endif
-   png_debug(1, "in png_write_IDAT\n");
 
-   /* Optimize the CMF field in the zlib stream. */
-   /* This hack of the zlib stream is compliant to the stream specification. */
+   png_debug(1, "in png_write_IDAT");
+
+#ifdef PNG_WRITE_OPTIMIZE_CMF_SUPPORTED
    if (!(png_ptr->mode & PNG_HAVE_IDAT) &&
        png_ptr->compression_type == PNG_COMPRESSION_TYPE_BASE)
    {
+      /* Optimize the CMF field in the zlib stream.  This hack of the zlib
+       * stream is compliant to the stream specification.
+       */
       unsigned int z_cmf = data[0];  /* zlib compression method and flags */
+
       if ((z_cmf & 0x0f) == 8 && (z_cmf & 0xf0) <= 0x70)
       {
-         /* Avoid memory underflows and multiplication overflows. */
-         /* The conditions below are practically always satisfied;
-            however, they still must be checked. */
+         /* Avoid memory underflows and multiplication overflows.
+          *
+          * The conditions below are practically always satisfied;
+          * however, they still must be checked.
+          */
          if (length >= 2 &&
              png_ptr->height < 16384 && png_ptr->width < 16384)
          {
+            /* Compute the maximum possible length of the datastream */
+
+            /* Number of pixels, plus for each row a filter byte
+             * and possibly a padding byte, so increase the maximum
+             * size to account for these.
+             */
+            unsigned int z_cinfo;
+            unsigned int half_z_window_size;
             png_uint_32 uncompressed_idat_size = png_ptr->height *
-               ((png_ptr->width *
-               png_ptr->channels * png_ptr->bit_depth + 15) >> 3);
-            unsigned int z_cinfo = z_cmf >> 4;
-            unsigned int half_z_window_size = 1 << (z_cinfo + 7);
+                ((png_ptr->width *
+                png_ptr->channels * png_ptr->bit_depth + 15) >> 3);
+
+            /* If it's interlaced, each block of 8 rows is sent as up to
+             * 14 rows, i.e., 6 additional rows, each with a filter byte
+             * and possibly a padding byte
+             */
+            if (png_ptr->interlaced)
+               uncompressed_idat_size += ((png_ptr->height + 7)/8) *
+                   (png_ptr->bit_depth < 8 ? 12 : 6);
+
+            z_cinfo = z_cmf >> 4;
+            half_z_window_size = 1 << (z_cinfo + 7);
+
             while (uncompressed_idat_size <= half_z_window_size &&
-                   half_z_window_size >= 256)
+                half_z_window_size >= 256)
             {
                z_cinfo--;
                half_z_window_size >>= 1;
             }
+
             z_cmf = (z_cmf & 0x0f) | (z_cinfo << 4);
-            if (data[0] != (png_byte)z_cmf)
+
+            if (data[0] != z_cmf)
             {
+               int tmp;
                data[0] = (png_byte)z_cmf;
-               data[1] &= 0xe0;
-               data[1] += (png_byte)(0x1f - ((z_cmf << 8) + data[1]) % 0x1f);
+               tmp = data[1] & 0xe0;
+               tmp += 0x1f - ((z_cmf << 8) + tmp) % 0x1f;
+               data[1] = (png_byte)tmp;
             }
          }
       }
+
       else
          png_error(png_ptr,
-            "Invalid zlib compression method or flags in IDAT");
+             "Invalid zlib compression method or flags in IDAT");
    }
+#endif /* PNG_WRITE_OPTIMIZE_CMF_SUPPORTED */
 
-   png_write_chunk(png_ptr, (png_bytep)png_IDAT, data, length);
+   png_write_chunk(png_ptr, png_IDAT, data, length);
    png_ptr->mode |= PNG_HAVE_IDAT;
+
+   /* Prior to 1.5.4 this code was replicated in every caller (except at the
+    * end, where it isn't technically necessary).  Since this function has
+    * flushed the data we can safely reset the zlib output buffer here.
+    */
+   png_ptr->zstream.next_out = png_ptr->zbuf;
+   png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
 }
 
-/* write an IEND chunk */
+/* Write an IEND chunk */
 void /* PRIVATE */
 png_write_IEND(png_structp png_ptr)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_IEND;
-#endif
-   png_debug(1, "in png_write_IEND\n");
-   png_write_chunk(png_ptr, (png_bytep)png_IEND, png_bytep_NULL,
-     (png_size_t)0);
-   png_ptr->mode |= PNG_HAVE_IEND;
-}
 
-#if defined(PNG_WRITE_gAMA_SUPPORTED)
-/* write a gAMA chunk */
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-void /* PRIVATE */
-png_write_gAMA(png_structp png_ptr, double file_gamma)
-{
-#ifdef PNG_USE_LOCAL_ARRAYS
-   PNG_gAMA;
-#endif
-   png_uint_32 igamma;
-   png_byte buf[4];
+   png_debug(1, "in png_write_IEND");
 
-   png_debug(1, "in png_write_gAMA\n");
-   /* file_gamma is saved in 1/100,000ths */
-   igamma = (png_uint_32)(file_gamma * 100000.0 + 0.5);
-   png_save_uint_32(buf, igamma);
-   png_write_chunk(png_ptr, (png_bytep)png_gAMA, buf, (png_size_t)4);
+   png_write_chunk(png_ptr, png_IEND, NULL, (png_size_t)0);
+   png_ptr->mode |= PNG_HAVE_IEND;
 }
-#endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
+
+#ifdef PNG_WRITE_gAMA_SUPPORTED
+/* Write a gAMA chunk */
 void /* PRIVATE */
 png_write_gAMA_fixed(png_structp png_ptr, png_fixed_point file_gamma)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_gAMA;
-#endif
    png_byte buf[4];
 
-   png_debug(1, "in png_write_gAMA\n");
+   png_debug(1, "in png_write_gAMA");
+
    /* file_gamma is saved in 1/100,000ths */
    png_save_uint_32(buf, (png_uint_32)file_gamma);
-   png_write_chunk(png_ptr, (png_bytep)png_gAMA, buf, (png_size_t)4);
+   png_write_chunk(png_ptr, png_gAMA, buf, (png_size_t)4);
 }
 #endif
-#endif
 
-#if defined(PNG_WRITE_sRGB_SUPPORTED)
-/* write a sRGB chunk */
+#ifdef PNG_WRITE_sRGB_SUPPORTED
+/* Write a sRGB chunk */
 void /* PRIVATE */
 png_write_sRGB(png_structp png_ptr, int srgb_intent)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_sRGB;
-#endif
    png_byte buf[1];
 
-   png_debug(1, "in png_write_sRGB\n");
-   if(srgb_intent >= PNG_sRGB_INTENT_LAST)
-         png_warning(png_ptr,
-            "Invalid sRGB rendering intent specified");
+   png_debug(1, "in png_write_sRGB");
+
+   if (srgb_intent >= PNG_sRGB_INTENT_LAST)
+      png_warning(png_ptr,
+          "Invalid sRGB rendering intent specified");
+
    buf[0]=(png_byte)srgb_intent;
-   png_write_chunk(png_ptr, (png_bytep)png_sRGB, buf, (png_size_t)1);
+   png_write_chunk(png_ptr, png_sRGB, buf, (png_size_t)1);
 }
 #endif
 
-#if defined(PNG_WRITE_iCCP_SUPPORTED)
-/* write an iCCP chunk */
+#ifdef PNG_WRITE_iCCP_SUPPORTED
+/* Write an iCCP chunk */
 void /* PRIVATE */
-png_write_iCCP(png_structp png_ptr, png_charp name, int compression_type,
-   png_charp profile, int profile_len)
+png_write_iCCP(png_structp png_ptr, png_const_charp name, int compression_type,
+    png_const_charp profile, int profile_len)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_iCCP;
-#endif
    png_size_t name_len;
    png_charp new_name;
    compression_state comp;
    int embedded_profile_len = 0;
 
-   png_debug(1, "in png_write_iCCP\n");
+   png_debug(1, "in png_write_iCCP");
 
    comp.num_output_ptr = 0;
    comp.max_output_ptr = 0;
@@ -772,12 +1120,8 @@ png_write_iCCP(png_structp png_ptr, png_charp name, int compression_type,
    comp.input = NULL;
    comp.input_len = 0;
 
-   if (name == NULL || (name_len = png_check_keyword(png_ptr, name,
-      &new_name)) == 0)
-   {
-      png_warning(png_ptr, "Empty keyword in iCCP chunk");
+   if ((name_len = png_check_keyword(png_ptr, name, &new_name)) == 0)
       return;
-   }
 
    if (compression_type != PNG_COMPRESSION_TYPE_BASE)
       png_warning(png_ptr, "Unknown compression type in iCCP chunk");
@@ -787,118 +1131,138 @@ png_write_iCCP(png_structp png_ptr, png_charp name, int compression_type,
 
    if (profile_len > 3)
       embedded_profile_len =
-          ((*( (png_bytep)profile  ))<<24) |
-          ((*( (png_bytep)profile+1))<<16) |
-          ((*( (png_bytep)profile+2))<< 8) |
-          ((*( (png_bytep)profile+3))    );
+          ((*( (png_const_bytep)profile    ))<<24) |
+          ((*( (png_const_bytep)profile + 1))<<16) |
+          ((*( (png_const_bytep)profile + 2))<< 8) |
+          ((*( (png_const_bytep)profile + 3))    );
+
+   if (embedded_profile_len < 0)
+   {
+      png_warning(png_ptr,
+          "Embedded profile length in iCCP chunk is negative");
+
+      png_free(png_ptr, new_name);
+      return;
+   }
 
    if (profile_len < embedded_profile_len)
-     {
-        png_warning(png_ptr,
+   {
+      png_warning(png_ptr,
           "Embedded profile length too large in iCCP chunk");
-        return;
-     }
+
+      png_free(png_ptr, new_name);
+      return;
+   }
 
    if (profile_len > embedded_profile_len)
-     {
-        png_warning(png_ptr,
+   {
+      png_warning(png_ptr,
           "Truncating profile to actual length in iCCP chunk");
-        profile_len = embedded_profile_len;
-     }
+
+      profile_len = embedded_profile_len;
+   }
 
    if (profile_len)
-       profile_len = png_text_compress(png_ptr, profile, (png_size_t)profile_len,
-          PNG_COMPRESSION_TYPE_BASE, &comp);
+      profile_len = png_text_compress(png_ptr, profile,
+          (png_size_t)profile_len, PNG_COMPRESSION_TYPE_BASE, &comp);
+
+   /* Make sure we include the NULL after the name and the compression type */
+   png_write_chunk_start(png_ptr, png_iCCP,
+       (png_uint_32)(name_len + profile_len + 2));
+
+   new_name[name_len + 1] = 0x00;
 
-   /* make sure we include the NULL after the name and the compression type */
-   png_write_chunk_start(png_ptr, (png_bytep)png_iCCP,
-          (png_uint_32)name_len+profile_len+2);
-   new_name[name_len+1]=0x00;
-   png_write_chunk_data(png_ptr, (png_bytep)new_name, name_len + 2);
+   png_write_chunk_data(png_ptr, (png_bytep)new_name,
+       (png_size_t)(name_len + 2));
 
    if (profile_len)
+   {
+      comp.input_len = profile_len;
       png_write_compressed_data_out(png_ptr, &comp);
+   }
 
    png_write_chunk_end(png_ptr);
    png_free(png_ptr, new_name);
 }
 #endif
 
-#if defined(PNG_WRITE_sPLT_SUPPORTED)
-/* write a sPLT chunk */
+#ifdef PNG_WRITE_sPLT_SUPPORTED
+/* Write a sPLT chunk */
 void /* PRIVATE */
-png_write_sPLT(png_structp png_ptr, png_sPLT_tp spalette)
+png_write_sPLT(png_structp png_ptr, png_const_sPLT_tp spalette)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_sPLT;
-#endif
    png_size_t name_len;
    png_charp new_name;
    png_byte entrybuf[10];
-   int entry_size = (spalette->depth == 8 ? 6 : 10);
-   int palette_size = entry_size * spalette->nentries;
+   png_size_t entry_size = (spalette->depth == 8 ? 6 : 10);
+   png_size_t palette_size = entry_size * spalette->nentries;
    png_sPLT_entryp ep;
-#ifdef PNG_NO_POINTER_INDEXING
+#ifndef PNG_POINTER_INDEXING_SUPPORTED
    int i;
 #endif
 
-   png_debug(1, "in png_write_sPLT\n");
-   if (spalette->name == NULL || (name_len = png_check_keyword(png_ptr,
-      spalette->name, &new_name))==0)
-   {
-      png_warning(png_ptr, "Empty keyword in sPLT chunk");
+   png_debug(1, "in png_write_sPLT");
+
+   if ((name_len = png_check_keyword(png_ptr,spalette->name, &new_name))==0)
       return;
-   }
 
-   /* make sure we include the NULL after the name */
-   png_write_chunk_start(png_ptr, (png_bytep)png_sPLT,
-          (png_uint_32)(name_len + 2 + palette_size));
-   png_write_chunk_data(png_ptr, (png_bytep)new_name, name_len + 1);
-   png_write_chunk_data(png_ptr, (png_bytep)&spalette->depth, 1);
-
-   /* loop through each palette entry, writing appropriately */
-#ifndef PNG_NO_POINTER_INDEXING
-   for (ep = spalette->entries; ep<spalette->entries+spalette->nentries; ep++)
-   {
-       if (spalette->depth == 8)
-       {
-           entrybuf[0] = (png_byte)ep->red;
-           entrybuf[1] = (png_byte)ep->green;
-           entrybuf[2] = (png_byte)ep->blue;
-           entrybuf[3] = (png_byte)ep->alpha;
-           png_save_uint_16(entrybuf + 4, ep->frequency);
-       }
-       else
-       {
-           png_save_uint_16(entrybuf + 0, ep->red);
-           png_save_uint_16(entrybuf + 2, ep->green);
-           png_save_uint_16(entrybuf + 4, ep->blue);
-           png_save_uint_16(entrybuf + 6, ep->alpha);
-           png_save_uint_16(entrybuf + 8, ep->frequency);
-       }
-       png_write_chunk_data(png_ptr, entrybuf, (png_size_t)entry_size);
+   /* Make sure we include the NULL after the name */
+   png_write_chunk_start(png_ptr, png_sPLT,
+       (png_uint_32)(name_len + 2 + palette_size));
+
+   png_write_chunk_data(png_ptr, (png_bytep)new_name,
+       (png_size_t)(name_len + 1));
+
+   png_write_chunk_data(png_ptr, &spalette->depth, (png_size_t)1);
+
+   /* Loop through each palette entry, writing appropriately */
+#ifdef PNG_POINTER_INDEXING_SUPPORTED
+   for (ep = spalette->entries; ep<spalette->entries + spalette->nentries; ep++)
+   {
+      if (spalette->depth == 8)
+      {
+         entrybuf[0] = (png_byte)ep->red;
+         entrybuf[1] = (png_byte)ep->green;
+         entrybuf[2] = (png_byte)ep->blue;
+         entrybuf[3] = (png_byte)ep->alpha;
+         png_save_uint_16(entrybuf + 4, ep->frequency);
+      }
+
+      else
+      {
+         png_save_uint_16(entrybuf + 0, ep->red);
+         png_save_uint_16(entrybuf + 2, ep->green);
+         png_save_uint_16(entrybuf + 4, ep->blue);
+         png_save_uint_16(entrybuf + 6, ep->alpha);
+         png_save_uint_16(entrybuf + 8, ep->frequency);
+      }
+
+      png_write_chunk_data(png_ptr, entrybuf, (png_size_t)entry_size);
    }
 #else
    ep=spalette->entries;
-   for (i=0; i>spalette->nentries; i++)
-   {
-       if (spalette->depth == 8)
-       {
-           entrybuf[0] = (png_byte)ep[i].red;
-           entrybuf[1] = (png_byte)ep[i].green;
-           entrybuf[2] = (png_byte)ep[i].blue;
-           entrybuf[3] = (png_byte)ep[i].alpha;
-           png_save_uint_16(entrybuf + 4, ep[i].frequency);
-       }
-       else
-       {
-           png_save_uint_16(entrybuf + 0, ep[i].red);
-           png_save_uint_16(entrybuf + 2, ep[i].green);
-           png_save_uint_16(entrybuf + 4, ep[i].blue);
-           png_save_uint_16(entrybuf + 6, ep[i].alpha);
-           png_save_uint_16(entrybuf + 8, ep[i].frequency);
-       }
-       png_write_chunk_data(png_ptr, entrybuf, entry_size);
+   for (i = 0; i>spalette->nentries; i++)
+   {
+      if (spalette->depth == 8)
+      {
+         entrybuf[0] = (png_byte)ep[i].red;
+         entrybuf[1] = (png_byte)ep[i].green;
+         entrybuf[2] = (png_byte)ep[i].blue;
+         entrybuf[3] = (png_byte)ep[i].alpha;
+         png_save_uint_16(entrybuf + 4, ep[i].frequency);
+      }
+
+      else
+      {
+         png_save_uint_16(entrybuf + 0, ep[i].red);
+         png_save_uint_16(entrybuf + 2, ep[i].green);
+         png_save_uint_16(entrybuf + 4, ep[i].blue);
+         png_save_uint_16(entrybuf + 6, ep[i].alpha);
+         png_save_uint_16(entrybuf + 8, ep[i].frequency);
+      }
+
+      png_write_chunk_data(png_ptr, entrybuf, (png_size_t)entry_size);
    }
 #endif
 
@@ -907,25 +1271,25 @@ png_write_sPLT(png_structp png_ptr, png_sPLT_tp spalette)
 }
 #endif
 
-#if defined(PNG_WRITE_sBIT_SUPPORTED)
-/* write the sBIT chunk */
+#ifdef PNG_WRITE_sBIT_SUPPORTED
+/* Write the sBIT chunk */
 void /* PRIVATE */
-png_write_sBIT(png_structp png_ptr, png_color_8p sbit, int color_type)
+png_write_sBIT(png_structp png_ptr, png_const_color_8p sbit, int color_type)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_sBIT;
-#endif
    png_byte buf[4];
    png_size_t size;
 
-   png_debug(1, "in png_write_sBIT\n");
-   /* make sure we don't depend upon the order of PNG_COLOR_8 */
+   png_debug(1, "in png_write_sBIT");
+
+   /* Make sure we don't depend upon the order of PNG_COLOR_8 */
    if (color_type & PNG_COLOR_MASK_COLOR)
    {
       png_byte maxbits;
 
       maxbits = (png_byte)(color_type==PNG_COLOR_TYPE_PALETTE ? 8 :
-                png_ptr->usr_bit_depth);
+          png_ptr->usr_bit_depth);
+
       if (sbit->red == 0 || sbit->red > maxbits ||
           sbit->green == 0 || sbit->green > maxbits ||
           sbit->blue == 0 || sbit->blue > maxbits)
@@ -933,11 +1297,13 @@ png_write_sBIT(png_structp png_ptr, png_color_8p sbit, int color_type)
          png_warning(png_ptr, "Invalid sBIT depth specified");
          return;
       }
+
       buf[0] = sbit->red;
       buf[1] = sbit->green;
       buf[2] = sbit->blue;
       size = 3;
    }
+
    else
    {
       if (sbit->gray == 0 || sbit->gray > png_ptr->usr_bit_depth)
@@ -945,189 +1311,120 @@ png_write_sBIT(png_structp png_ptr, png_color_8p sbit, int color_type)
          png_warning(png_ptr, "Invalid sBIT depth specified");
          return;
       }
+
       buf[0] = sbit->gray;
       size = 1;
    }
 
-   if (color_type & PNG_COLOR_MASK_ALPHA)
-   {
-      if (sbit->alpha == 0 || sbit->alpha > png_ptr->usr_bit_depth)
-      {
-         png_warning(png_ptr, "Invalid sBIT depth specified");
-         return;
-      }
-      buf[size++] = sbit->alpha;
-   }
-
-   png_write_chunk(png_ptr, (png_bytep)png_sBIT, buf, size);
-}
-#endif
-
-#if defined(PNG_WRITE_cHRM_SUPPORTED)
-/* write the cHRM chunk */
-#ifdef PNG_FLOATING_POINT_SUPPORTED
-void /* PRIVATE */
-png_write_cHRM(png_structp png_ptr, double white_x, double white_y,
-   double red_x, double red_y, double green_x, double green_y,
-   double blue_x, double blue_y)
-{
-#ifdef PNG_USE_LOCAL_ARRAYS
-   PNG_cHRM;
-#endif
-   png_byte buf[32];
-   png_uint_32 itemp;
-
-   png_debug(1, "in png_write_cHRM\n");
-   /* each value is saved in 1/100,000ths */
-   if (white_x < 0 || white_x > 0.8 || white_y < 0 || white_y > 0.8 ||
-       white_x + white_y > 1.0)
-   {
-      png_warning(png_ptr, "Invalid cHRM white point specified");
-#if !defined(PNG_NO_CONSOLE_IO)
-      fprintf(stderr,"white_x=%f, white_y=%f\n",white_x, white_y);
-#endif
-      return;
-   }
-   itemp = (png_uint_32)(white_x * 100000.0 + 0.5);
-   png_save_uint_32(buf, itemp);
-   itemp = (png_uint_32)(white_y * 100000.0 + 0.5);
-   png_save_uint_32(buf + 4, itemp);
-
-   if (red_x < 0 ||  red_y < 0 || red_x + red_y > 1.0)
-   {
-      png_warning(png_ptr, "Invalid cHRM red point specified");
-      return;
-   }
-   itemp = (png_uint_32)(red_x * 100000.0 + 0.5);
-   png_save_uint_32(buf + 8, itemp);
-   itemp = (png_uint_32)(red_y * 100000.0 + 0.5);
-   png_save_uint_32(buf + 12, itemp);
-
-   if (green_x < 0 || green_y < 0 || green_x + green_y > 1.0)
-   {
-      png_warning(png_ptr, "Invalid cHRM green point specified");
-      return;
-   }
-   itemp = (png_uint_32)(green_x * 100000.0 + 0.5);
-   png_save_uint_32(buf + 16, itemp);
-   itemp = (png_uint_32)(green_y * 100000.0 + 0.5);
-   png_save_uint_32(buf + 20, itemp);
-
-   if (blue_x < 0 || blue_y < 0 || blue_x + blue_y > 1.0)
+   if (color_type & PNG_COLOR_MASK_ALPHA)
    {
-      png_warning(png_ptr, "Invalid cHRM blue point specified");
-      return;
+      if (sbit->alpha == 0 || sbit->alpha > png_ptr->usr_bit_depth)
+      {
+         png_warning(png_ptr, "Invalid sBIT depth specified");
+         return;
+      }
+
+      buf[size++] = sbit->alpha;
    }
-   itemp = (png_uint_32)(blue_x * 100000.0 + 0.5);
-   png_save_uint_32(buf + 24, itemp);
-   itemp = (png_uint_32)(blue_y * 100000.0 + 0.5);
-   png_save_uint_32(buf + 28, itemp);
 
-   png_write_chunk(png_ptr, (png_bytep)png_cHRM, buf, (png_size_t)32);
+   png_write_chunk(png_ptr, png_sBIT, buf, size);
 }
 #endif
-#ifdef PNG_FIXED_POINT_SUPPORTED
+
+#ifdef PNG_WRITE_cHRM_SUPPORTED
+/* Write the cHRM chunk */
 void /* PRIVATE */
 png_write_cHRM_fixed(png_structp png_ptr, png_fixed_point white_x,
-   png_fixed_point white_y, png_fixed_point red_x, png_fixed_point red_y,
-   png_fixed_point green_x, png_fixed_point green_y, png_fixed_point blue_x,
-   png_fixed_point blue_y)
+    png_fixed_point white_y, png_fixed_point red_x, png_fixed_point red_y,
+    png_fixed_point green_x, png_fixed_point green_y, png_fixed_point blue_x,
+    png_fixed_point blue_y)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_cHRM;
-#endif
    png_byte buf[32];
 
-   png_debug(1, "in png_write_cHRM\n");
-   /* each value is saved in 1/100,000ths */
-   if (white_x > 80000L || white_y > 80000L || white_x + white_y > 100000L)
-   {
-      png_warning(png_ptr, "Invalid fixed cHRM white point specified");
-#if !defined(PNG_NO_CONSOLE_IO)
-      fprintf(stderr,"white_x=%ld, white_y=%ld\n",white_x, white_y);
-#endif
-      return;
-   }
-   png_save_uint_32(buf, (png_uint_32)white_x);
-   png_save_uint_32(buf + 4, (png_uint_32)white_y);
+   png_debug(1, "in png_write_cHRM");
 
-   if (red_x + red_y > 100000L)
+   /* Each value is saved in 1/100,000ths */
+#ifdef PNG_CHECK_cHRM_SUPPORTED
+   if (png_check_cHRM_fixed(png_ptr, white_x, white_y, red_x, red_y,
+       green_x, green_y, blue_x, blue_y))
+#endif
    {
-      png_warning(png_ptr, "Invalid cHRM fixed red point specified");
-      return;
-   }
-   png_save_uint_32(buf + 8, (png_uint_32)red_x);
-   png_save_uint_32(buf + 12, (png_uint_32)red_y);
+      png_save_uint_32(buf, (png_uint_32)white_x);
+      png_save_uint_32(buf + 4, (png_uint_32)white_y);
 
-   if (green_x + green_y > 100000L)
-   {
-      png_warning(png_ptr, "Invalid fixed cHRM green point specified");
-      return;
-   }
-   png_save_uint_32(buf + 16, (png_uint_32)green_x);
-   png_save_uint_32(buf + 20, (png_uint_32)green_y);
+      png_save_uint_32(buf + 8, (png_uint_32)red_x);
+      png_save_uint_32(buf + 12, (png_uint_32)red_y);
 
-   if (blue_x + blue_y > 100000L)
-   {
-      png_warning(png_ptr, "Invalid fixed cHRM blue point specified");
-      return;
-   }
-   png_save_uint_32(buf + 24, (png_uint_32)blue_x);
-   png_save_uint_32(buf + 28, (png_uint_32)blue_y);
+      png_save_uint_32(buf + 16, (png_uint_32)green_x);
+      png_save_uint_32(buf + 20, (png_uint_32)green_y);
 
-   png_write_chunk(png_ptr, (png_bytep)png_cHRM, buf, (png_size_t)32);
+      png_save_uint_32(buf + 24, (png_uint_32)blue_x);
+      png_save_uint_32(buf + 28, (png_uint_32)blue_y);
+
+      png_write_chunk(png_ptr, png_cHRM, buf, (png_size_t)32);
+   }
 }
 #endif
-#endif
 
-#if defined(PNG_WRITE_tRNS_SUPPORTED)
-/* write the tRNS chunk */
+#ifdef PNG_WRITE_tRNS_SUPPORTED
+/* Write the tRNS chunk */
 void /* PRIVATE */
-png_write_tRNS(png_structp png_ptr, png_bytep trans, png_color_16p tran,
-   int num_trans, int color_type)
+png_write_tRNS(png_structp png_ptr, png_const_bytep trans_alpha,
+    png_const_color_16p tran, int num_trans, int color_type)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_tRNS;
-#endif
    png_byte buf[6];
 
-   png_debug(1, "in png_write_tRNS\n");
+   png_debug(1, "in png_write_tRNS");
+
    if (color_type == PNG_COLOR_TYPE_PALETTE)
    {
       if (num_trans <= 0 || num_trans > (int)png_ptr->num_palette)
       {
-         png_warning(png_ptr,"Invalid number of transparent colors specified");
+         png_warning(png_ptr, "Invalid number of transparent colors specified");
          return;
       }
-      /* write the chunk out as it is */
-      png_write_chunk(png_ptr, (png_bytep)png_tRNS, trans, (png_size_t)num_trans);
+
+      /* Write the chunk out as it is */
+      png_write_chunk(png_ptr, png_tRNS, trans_alpha, (png_size_t)num_trans);
    }
+
    else if (color_type == PNG_COLOR_TYPE_GRAY)
    {
-      /* one 16 bit value */
-      if(tran->gray >= (1 << png_ptr->bit_depth))
+      /* One 16 bit value */
+      if (tran->gray >= (1 << png_ptr->bit_depth))
       {
          png_warning(png_ptr,
-           "Ignoring attempt to write tRNS chunk out-of-range for bit_depth");
+             "Ignoring attempt to write tRNS chunk out-of-range for bit_depth");
+
          return;
       }
+
       png_save_uint_16(buf, tran->gray);
-      png_write_chunk(png_ptr, (png_bytep)png_tRNS, buf, (png_size_t)2);
+      png_write_chunk(png_ptr, png_tRNS, buf, (png_size_t)2);
    }
+
    else if (color_type == PNG_COLOR_TYPE_RGB)
    {
-      /* three 16 bit values */
+      /* Three 16 bit values */
       png_save_uint_16(buf, tran->red);
       png_save_uint_16(buf + 2, tran->green);
       png_save_uint_16(buf + 4, tran->blue);
-      if(png_ptr->bit_depth == 8 && (buf[0] | buf[2] | buf[4]))
-         {
-            png_warning(png_ptr,
-              "Ignoring attempt to write 16-bit tRNS chunk when bit_depth is 8");
-            return;
-         }
-      png_write_chunk(png_ptr, (png_bytep)png_tRNS, buf, (png_size_t)6);
+#ifdef PNG_WRITE_16BIT_SUPPORTED
+      if (png_ptr->bit_depth == 8 && (buf[0] | buf[2] | buf[4]))
+#else
+      if (buf[0] | buf[2] | buf[4])
+#endif
+      {
+         png_warning(png_ptr,
+           "Ignoring attempt to write 16-bit tRNS chunk when bit_depth is 8");
+         return;
+      }
+
+      png_write_chunk(png_ptr, png_tRNS, buf, (png_size_t)6);
    }
+
    else
    {
       png_warning(png_ptr, "Can't write tRNS with an alpha channel");
@@ -1135,85 +1432,97 @@ png_write_tRNS(png_structp png_ptr, png_bytep trans, png_color_16p tran,
 }
 #endif
 
-#if defined(PNG_WRITE_bKGD_SUPPORTED)
-/* write the background chunk */
+#ifdef PNG_WRITE_bKGD_SUPPORTED
+/* Write the background chunk */
 void /* PRIVATE */
-png_write_bKGD(png_structp png_ptr, png_color_16p back, int color_type)
+png_write_bKGD(png_structp png_ptr, png_const_color_16p back, int color_type)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_bKGD;
-#endif
    png_byte buf[6];
 
-   png_debug(1, "in png_write_bKGD\n");
+   png_debug(1, "in png_write_bKGD");
+
    if (color_type == PNG_COLOR_TYPE_PALETTE)
    {
       if (
-#if defined(PNG_MNG_FEATURES_SUPPORTED)
+#ifdef PNG_MNG_FEATURES_SUPPORTED
           (png_ptr->num_palette ||
           (!(png_ptr->mng_features_permitted & PNG_FLAG_MNG_EMPTY_PLTE))) &&
 #endif
-         back->index > png_ptr->num_palette)
+         back->index >= png_ptr->num_palette)
       {
          png_warning(png_ptr, "Invalid background palette index");
          return;
       }
+
       buf[0] = back->index;
-      png_write_chunk(png_ptr, (png_bytep)png_bKGD, buf, (png_size_t)1);
+      png_write_chunk(png_ptr, png_bKGD, buf, (png_size_t)1);
    }
+
    else if (color_type & PNG_COLOR_MASK_COLOR)
    {
       png_save_uint_16(buf, back->red);
       png_save_uint_16(buf + 2, back->green);
       png_save_uint_16(buf + 4, back->blue);
-      if(png_ptr->bit_depth == 8 && (buf[0] | buf[2] | buf[4]))
-         {
-            png_warning(png_ptr,
-              "Ignoring attempt to write 16-bit bKGD chunk when bit_depth is 8");
-            return;
-         }
-      png_write_chunk(png_ptr, (png_bytep)png_bKGD, buf, (png_size_t)6);
+#ifdef PNG_WRITE_16BIT_SUPPORTED
+      if (png_ptr->bit_depth == 8 && (buf[0] | buf[2] | buf[4]))
+#else
+      if (buf[0] | buf[2] | buf[4])
+#endif
+      {
+         png_warning(png_ptr,
+             "Ignoring attempt to write 16-bit bKGD chunk when bit_depth is 8");
+
+         return;
+      }
+
+      png_write_chunk(png_ptr, png_bKGD, buf, (png_size_t)6);
    }
+
    else
    {
-      if(back->gray >= (1 << png_ptr->bit_depth))
+      if (back->gray >= (1 << png_ptr->bit_depth))
       {
          png_warning(png_ptr,
-           "Ignoring attempt to write bKGD chunk out-of-range for bit_depth");
+             "Ignoring attempt to write bKGD chunk out-of-range for bit_depth");
+
          return;
       }
+
       png_save_uint_16(buf, back->gray);
-      png_write_chunk(png_ptr, (png_bytep)png_bKGD, buf, (png_size_t)2);
+      png_write_chunk(png_ptr, png_bKGD, buf, (png_size_t)2);
    }
 }
 #endif
 
-#if defined(PNG_WRITE_hIST_SUPPORTED)
-/* write the histogram */
+#ifdef PNG_WRITE_hIST_SUPPORTED
+/* Write the histogram */
 void /* PRIVATE */
-png_write_hIST(png_structp png_ptr, png_uint_16p hist, int num_hist)
+png_write_hIST(png_structp png_ptr, png_const_uint_16p hist, int num_hist)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_hIST;
-#endif
    int i;
    png_byte buf[3];
 
-   png_debug(1, "in png_write_hIST\n");
+   png_debug(1, "in png_write_hIST");
+
    if (num_hist > (int)png_ptr->num_palette)
    {
-      png_debug2(3, "num_hist = %d, num_palette = %d\n", num_hist,
-         png_ptr->num_palette);
+      png_debug2(3, "num_hist = %d, num_palette = %d", num_hist,
+          png_ptr->num_palette);
+
       png_warning(png_ptr, "Invalid number of histogram entries specified");
       return;
    }
 
-   png_write_chunk_start(png_ptr, (png_bytep)png_hIST, (png_uint_32)(num_hist * 2));
+   png_write_chunk_start(png_ptr, png_hIST, (png_uint_32)(num_hist * 2));
+
    for (i = 0; i < num_hist; i++)
    {
       png_save_uint_16(buf, hist[i]);
       png_write_chunk_data(png_ptr, buf, (png_size_t)2);
    }
+
    png_write_chunk_end(png_ptr);
 }
 #endif
@@ -1231,14 +1540,16 @@ png_write_hIST(png_structp png_ptr, png_uint_16p hist, int num_hist)
  * static keywords without having to have duplicate copies of the strings.
  */
 png_size_t /* PRIVATE */
-png_check_keyword(png_structp png_ptr, png_charp key, png_charpp new_key)
+png_check_keyword(png_structp png_ptr, png_const_charp key, png_charpp new_key)
 {
    png_size_t key_len;
+   png_const_charp ikp;
    png_charp kp, dp;
    int kflag;
    int kwarn=0;
 
-   png_debug(1, "in png_check_keyword\n");
+   png_debug(1, "in png_check_keyword");
+
    *new_key = NULL;
 
    if (key == NULL || (key_len = png_strlen(key)) == 0)
@@ -1247,9 +1558,10 @@ png_check_keyword(png_structp png_ptr, png_charp key, png_charpp new_key)
       return ((png_size_t)0);
    }
 
-   png_debug1(2, "Keyword to be checked is '%s'\n", key);
+   png_debug1(2, "Keyword to be checked is '%s'", key);
 
    *new_key = (png_charp)png_malloc_warn(png_ptr, (png_uint_32)(key_len + 2));
+
    if (*new_key == NULL)
    {
       png_warning(png_ptr, "Out of memory while procesing keyword");
@@ -1257,23 +1569,22 @@ png_check_keyword(png_structp png_ptr, png_charp key, png_charpp new_key)
    }
 
    /* Replace non-printing characters with a blank and print a warning */
-   for (kp = key, dp = *new_key; *kp != '\0'; kp++, dp++)
+   for (ikp = key, dp = *new_key; *ikp != '\0'; ikp++, dp++)
    {
-      if (*kp < 0x20 || (*kp > 0x7E && (png_byte)*kp < 0xA1))
+      if ((png_byte)*ikp < 0x20 ||
+         ((png_byte)*ikp > 0x7E && (png_byte)*ikp < 0xA1))
       {
-#if !defined(PNG_NO_STDIO) && !defined(_WIN32_WCE)
-         char msg[40];
+         PNG_WARNING_PARAMETERS(p)
 
-         sprintf(msg, "invalid keyword character 0x%02X", *kp);
-         png_warning(png_ptr, msg);
-#else
-         png_warning(png_ptr, "invalid character in keyword");
-#endif
+         png_warning_parameter_unsigned(p, 1, PNG_NUMBER_FORMAT_02x,
+            (png_byte)*ikp);
+         png_formatted_warning(png_ptr, p, "invalid keyword character 0x at 1");
          *dp = ' ';
       }
+
       else
       {
-         *dp = *kp;
+         *dp = *ikp;
       }
    }
    *dp = '\0';
@@ -1286,8 +1597,8 @@ png_check_keyword(png_structp png_ptr, png_charp key, png_charpp new_key)
 
       while (*kp == ' ')
       {
-        *(kp--) = '\0';
-        key_len--;
+         *(kp--) = '\0';
+         key_len--;
       }
    }
 
@@ -1299,12 +1610,12 @@ png_check_keyword(png_structp png_ptr, png_charp key, png_charpp new_key)
 
       while (*kp == ' ')
       {
-        kp++;
-        key_len--;
+         kp++;
+         key_len--;
       }
    }
 
-   png_debug1(2, "Checking for multiple internal spaces in '%s'\n", kp);
+   png_debug1(2, "Checking for multiple internal spaces in '%s'", kp);
 
    /* Remove multiple internal spaces. */
    for (kflag = 0, dp = *new_key; *kp != '\0'; kp++)
@@ -1314,11 +1625,13 @@ png_check_keyword(png_structp png_ptr, png_charp key, png_charpp new_key)
          *(dp++) = *kp;
          kflag = 1;
       }
+
       else if (*kp == ' ')
       {
          key_len--;
-         kwarn=1;
+         kwarn = 1;
       }
+
       else
       {
          *(dp++) = *kp;
@@ -1326,20 +1639,19 @@ png_check_keyword(png_structp png_ptr, png_charp key, png_charpp new_key)
       }
    }
    *dp = '\0';
-   if(kwarn)
+   if (kwarn)
       png_warning(png_ptr, "extra interior spaces removed from keyword");
 
    if (key_len == 0)
    {
       png_free(png_ptr, *new_key);
-      *new_key=NULL;
       png_warning(png_ptr, "Zero length keyword");
    }
 
    if (key_len > 79)
    {
       png_warning(png_ptr, "keyword length must be 1 - 79 characters");
-      new_key[79] = '\0';
+      (*new_key)[79] = '\0';
       key_len = 79;
    }
 
@@ -1347,62 +1659,61 @@ png_check_keyword(png_structp png_ptr, png_charp key, png_charpp new_key)
 }
 #endif
 
-#if defined(PNG_WRITE_tEXt_SUPPORTED)
-/* write a tEXt chunk */
+#ifdef PNG_WRITE_tEXt_SUPPORTED
+/* Write a tEXt chunk */
 void /* PRIVATE */
-png_write_tEXt(png_structp png_ptr, png_charp key, png_charp text,
-   png_size_t text_len)
+png_write_tEXt(png_structp png_ptr, png_const_charp key, png_const_charp text,
+    png_size_t text_len)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_tEXt;
-#endif
    png_size_t key_len;
    png_charp new_key;
 
-   png_debug(1, "in png_write_tEXt\n");
-   if (key == NULL || (key_len = png_check_keyword(png_ptr, key, &new_key))==0)
-   {
-      png_warning(png_ptr, "Empty keyword in tEXt chunk");
+   png_debug(1, "in png_write_tEXt");
+
+   if ((key_len = png_check_keyword(png_ptr, key, &new_key))==0)
       return;
-   }
 
    if (text == NULL || *text == '\0')
       text_len = 0;
+
    else
       text_len = png_strlen(text);
 
-   /* make sure we include the 0 after the key */
-   png_write_chunk_start(png_ptr, (png_bytep)png_tEXt, (png_uint_32)key_len+text_len+1);
+   /* Make sure we include the 0 after the key */
+   png_write_chunk_start(png_ptr, png_tEXt,
+       (png_uint_32)(key_len + text_len + 1));
    /*
     * We leave it to the application to meet PNG-1.0 requirements on the
     * contents of the text.  PNG-1.0 through PNG-1.2 discourage the use of
     * any non-Latin-1 characters except for NEWLINE.  ISO PNG will forbid them.
     * The NUL character is forbidden by PNG-1.0 through PNG-1.2 and ISO PNG.
     */
-   png_write_chunk_data(png_ptr, (png_bytep)new_key, key_len + 1);
+   png_write_chunk_data(png_ptr, (png_bytep)new_key,
+       (png_size_t)(key_len + 1));
+
    if (text_len)
-      png_write_chunk_data(png_ptr, (png_bytep)text, text_len);
+      png_write_chunk_data(png_ptr, (png_const_bytep)text,
+          (png_size_t)text_len);
 
    png_write_chunk_end(png_ptr);
    png_free(png_ptr, new_key);
 }
 #endif
 
-#if defined(PNG_WRITE_zTXt_SUPPORTED)
-/* write a compressed text chunk */
+#ifdef PNG_WRITE_zTXt_SUPPORTED
+/* Write a compressed text chunk */
 void /* PRIVATE */
-png_write_zTXt(png_structp png_ptr, png_charp key, png_charp text,
-   png_size_t text_len, int compression)
+png_write_zTXt(png_structp png_ptr, png_const_charp key, png_const_charp text,
+    png_size_t text_len, int compression)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_zTXt;
-#endif
    png_size_t key_len;
-   char buf[1];
+   png_byte buf;
    png_charp new_key;
    compression_state comp;
 
-   png_debug(1, "in png_write_zTXt\n");
+   png_debug(1, "in png_write_zTXt");
 
    comp.num_output_ptr = 0;
    comp.max_output_ptr = 0;
@@ -1410,9 +1721,9 @@ png_write_zTXt(png_structp png_ptr, png_charp key, png_charp text,
    comp.input = NULL;
    comp.input_len = 0;
 
-   if (key == NULL || (key_len = png_check_keyword(png_ptr, key, &new_key))==0)
+   if ((key_len = png_check_keyword(png_ptr, key, &new_key)) == 0)
    {
-      png_warning(png_ptr, "Empty keyword in zTXt chunk");
+      png_free(png_ptr, new_key);
       return;
    }
 
@@ -1425,55 +1736,58 @@ png_write_zTXt(png_structp png_ptr, png_charp key, png_charp text,
 
    text_len = png_strlen(text);
 
-   png_free(png_ptr, new_key);
-
-   /* compute the compressed data; do it now for the length */
+   /* Compute the compressed data; do it now for the length */
    text_len = png_text_compress(png_ptr, text, text_len, compression,
        &comp);
 
-   /* write start of chunk */
-   png_write_chunk_start(png_ptr, (png_bytep)png_zTXt, (png_uint_32)
-      (key_len+text_len+2));
-   /* write key */
-   png_write_chunk_data(png_ptr, (png_bytep)key, key_len + 1);
-   buf[0] = (png_byte)compression;
-   /* write compression */
-   png_write_chunk_data(png_ptr, (png_bytep)buf, (png_size_t)1);
-   /* write the compressed data */
+   /* Write start of chunk */
+   png_write_chunk_start(png_ptr, png_zTXt,
+       (png_uint_32)(key_len+text_len + 2));
+
+   /* Write key */
+   png_write_chunk_data(png_ptr, (png_bytep)new_key,
+       (png_size_t)(key_len + 1));
+
+   png_free(png_ptr, new_key);
+
+   buf = (png_byte)compression;
+
+   /* Write compression */
+   png_write_chunk_data(png_ptr, &buf, (png_size_t)1);
+
+   /* Write the compressed data */
+   comp.input_len = text_len;
    png_write_compressed_data_out(png_ptr, &comp);
 
-   /* close the chunk */
+   /* Close the chunk */
    png_write_chunk_end(png_ptr);
 }
 #endif
 
-#if defined(PNG_WRITE_iTXt_SUPPORTED)
-/* write an iTXt chunk */
+#ifdef PNG_WRITE_iTXt_SUPPORTED
+/* Write an iTXt chunk */
 void /* PRIVATE */
-png_write_iTXt(png_structp png_ptr, int compression, png_charp key,
-    png_charp lang, png_charp lang_key, png_charp text)
+png_write_iTXt(png_structp png_ptr, int compression, png_const_charp key,
+    png_const_charp lang, png_const_charp lang_key, png_const_charp text)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_iTXt;
-#endif
    png_size_t lang_len, key_len, lang_key_len, text_len;
-   png_charp new_lang, new_key;
+   png_charp new_lang;
+   png_charp new_key = NULL;
    png_byte cbuf[2];
    compression_state comp;
 
-   png_debug(1, "in png_write_iTXt\n");
+   png_debug(1, "in png_write_iTXt");
 
    comp.num_output_ptr = 0;
    comp.max_output_ptr = 0;
    comp.output_ptr = NULL;
    comp.input = NULL;
 
-   if (key == NULL || (key_len = png_check_keyword(png_ptr, key, &new_key))==0)
-   {
-      png_warning(png_ptr, "Empty keyword in iTXt chunk");
+   if ((key_len = png_check_keyword(png_ptr, key, &new_key)) == 0)
       return;
-   }
-   if (lang == NULL || (lang_len = png_check_keyword(png_ptr, lang, &new_lang))==0)
+
+   if ((lang_len = png_check_keyword(png_ptr, lang, &new_lang)) == 0)
    {
       png_warning(png_ptr, "Empty language field in iTXt chunk");
       new_lang = NULL;
@@ -1481,73 +1795,80 @@ png_write_iTXt(png_structp png_ptr, int compression, png_charp key,
    }
 
    if (lang_key == NULL)
-     lang_key_len = 0;
+      lang_key_len = 0;
+
    else
-     lang_key_len = png_strlen(lang_key);
+      lang_key_len = png_strlen(lang_key);
 
    if (text == NULL)
       text_len = 0;
+
    else
-     text_len = png_strlen(text);
+      text_len = png_strlen(text);
 
-   /* compute the compressed data; do it now for the length */
-   text_len = png_text_compress(png_ptr, text, text_len, compression-2,
-      &comp);
+   /* Compute the compressed data; do it now for the length */
+   text_len = png_text_compress(png_ptr, text, text_len, compression - 2,
+       &comp);
 
 
-   /* make sure we include the compression flag, the compression byte,
-    * and the NULs after the key, lang, and lang_key parts */
+   /* Make sure we include the compression flag, the compression byte,
+    * and the NULs after the key, lang, and lang_key parts
+    */
 
-   png_write_chunk_start(png_ptr, (png_bytep)png_iTXt,
-          (png_uint_32)(
+   png_write_chunk_start(png_ptr, png_iTXt, (png_uint_32)(
         5 /* comp byte, comp flag, terminators for key, lang and lang_key */
         + key_len
         + lang_len
         + lang_key_len
         + text_len));
 
-   /*
-    * We leave it to the application to meet PNG-1.0 requirements on the
+   /* We leave it to the application to meet PNG-1.0 requirements on the
     * contents of the text.  PNG-1.0 through PNG-1.2 discourage the use of
     * any non-Latin-1 characters except for NEWLINE.  ISO PNG will forbid them.
     * The NUL character is forbidden by PNG-1.0 through PNG-1.2 and ISO PNG.
     */
-   png_write_chunk_data(png_ptr, (png_bytep)new_key, key_len + 1);
+   png_write_chunk_data(png_ptr, (png_bytep)new_key, (png_size_t)(key_len + 1));
 
-   /* set the compression flag */
-   if (compression == PNG_ITXT_COMPRESSION_NONE || \
+   /* Set the compression flag */
+   if (compression == PNG_ITXT_COMPRESSION_NONE ||
        compression == PNG_TEXT_COMPRESSION_NONE)
-       cbuf[0] = 0;
+      cbuf[0] = 0;
+
    else /* compression == PNG_ITXT_COMPRESSION_zTXt */
-       cbuf[0] = 1;
-   /* set the compression method */
+      cbuf[0] = 1;
+
+   /* Set the compression method */
    cbuf[1] = 0;
-   png_write_chunk_data(png_ptr, cbuf, 2);
+
+   png_write_chunk_data(png_ptr, cbuf, (png_size_t)2);
 
    cbuf[0] = 0;
-   png_write_chunk_data(png_ptr, (new_lang ? (png_bytep)new_lang : cbuf), lang_len + 1);
-   png_write_chunk_data(png_ptr, (lang_key ? (png_bytep)lang_key : cbuf), lang_key_len + 1);
+   png_write_chunk_data(png_ptr, (new_lang ? (png_const_bytep)new_lang : cbuf),
+       (png_size_t)(lang_len + 1));
+
+   png_write_chunk_data(png_ptr, (lang_key ? (png_const_bytep)lang_key : cbuf),
+       (png_size_t)(lang_key_len + 1));
+
    png_write_compressed_data_out(png_ptr, &comp);
 
    png_write_chunk_end(png_ptr);
+
    png_free(png_ptr, new_key);
-   if (new_lang)
-     png_free(png_ptr, new_lang);
+   png_free(png_ptr, new_lang);
 }
 #endif
 
-#if defined(PNG_WRITE_oFFs_SUPPORTED)
-/* write the oFFs chunk */
+#ifdef PNG_WRITE_oFFs_SUPPORTED
+/* Write the oFFs chunk */
 void /* PRIVATE */
 png_write_oFFs(png_structp png_ptr, png_int_32 x_offset, png_int_32 y_offset,
-   int unit_type)
+    int unit_type)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_oFFs;
-#endif
    png_byte buf[9];
 
-   png_debug(1, "in png_write_oFFs\n");
+   png_debug(1, "in png_write_oFFs");
+
    if (unit_type >= PNG_OFFSET_LAST)
       png_warning(png_ptr, "Unrecognized unit type for oFFs chunk");
 
@@ -1555,63 +1876,65 @@ png_write_oFFs(png_structp png_ptr, png_int_32 x_offset, png_int_32 y_offset,
    png_save_int_32(buf + 4, y_offset);
    buf[8] = (png_byte)unit_type;
 
-   png_write_chunk(png_ptr, (png_bytep)png_oFFs, buf, (png_size_t)9);
+   png_write_chunk(png_ptr, png_oFFs, buf, (png_size_t)9);
 }
 #endif
-
-#if defined(PNG_WRITE_pCAL_SUPPORTED)
-/* write the pCAL chunk (described in the PNG extensions document) */
+#ifdef PNG_WRITE_pCAL_SUPPORTED
+/* Write the pCAL chunk (described in the PNG extensions document) */
 void /* PRIVATE */
 png_write_pCAL(png_structp png_ptr, png_charp purpose, png_int_32 X0,
-   png_int_32 X1, int type, int nparams, png_charp units, png_charpp params)
+    png_int_32 X1, int type, int nparams, png_const_charp units,
+    png_charpp params)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_pCAL;
-#endif
    png_size_t purpose_len, units_len, total_len;
    png_uint_32p params_len;
    png_byte buf[10];
    png_charp new_purpose;
    int i;
 
-   png_debug1(1, "in png_write_pCAL (%d parameters)\n", nparams);
+   png_debug1(1, "in png_write_pCAL (%d parameters)", nparams);
+
    if (type >= PNG_EQUATION_LAST)
       png_warning(png_ptr, "Unrecognized equation type for pCAL chunk");
 
    purpose_len = png_check_keyword(png_ptr, purpose, &new_purpose) + 1;
-   png_debug1(3, "pCAL purpose length = %d\n", (int)purpose_len);
+   png_debug1(3, "pCAL purpose length = %d", (int)purpose_len);
    units_len = png_strlen(units) + (nparams == 0 ? 0 : 1);
-   png_debug1(3, "pCAL units length = %d\n", (int)units_len);
+   png_debug1(3, "pCAL units length = %d", (int)units_len);
    total_len = purpose_len + units_len + 10;
 
-   params_len = (png_uint_32p)png_malloc(png_ptr, (png_uint_32)(nparams
-      *png_sizeof(png_uint_32)));
+   params_len = (png_uint_32p)png_malloc(png_ptr,
+       (png_alloc_size_t)(nparams * png_sizeof(png_uint_32)));
 
    /* Find the length of each parameter, making sure we don't count the
-      null terminator for the last parameter. */
+    * null terminator for the last parameter.
+    */
    for (i = 0; i < nparams; i++)
    {
       params_len[i] = png_strlen(params[i]) + (i == nparams - 1 ? 0 : 1);
-      png_debug2(3, "pCAL parameter %d length = %lu\n", i, params_len[i]);
+      png_debug2(3, "pCAL parameter %d length = %lu", i,
+          (unsigned long)params_len[i]);
       total_len += (png_size_t)params_len[i];
    }
 
-   png_debug1(3, "pCAL total length = %d\n", (int)total_len);
-   png_write_chunk_start(png_ptr, (png_bytep)png_pCAL, (png_uint_32)total_len);
-   png_write_chunk_data(png_ptr, (png_bytep)new_purpose, purpose_len);
+   png_debug1(3, "pCAL total length = %d", (int)total_len);
+   png_write_chunk_start(png_ptr, png_pCAL, (png_uint_32)total_len);
+   png_write_chunk_data(png_ptr, (png_const_bytep)new_purpose,
+       (png_size_t)purpose_len);
    png_save_int_32(buf, X0);
    png_save_int_32(buf + 4, X1);
    buf[8] = (png_byte)type;
    buf[9] = (png_byte)nparams;
    png_write_chunk_data(png_ptr, buf, (png_size_t)10);
-   png_write_chunk_data(png_ptr, (png_bytep)units, (png_size_t)units_len);
+   png_write_chunk_data(png_ptr, (png_const_bytep)units, (png_size_t)units_len);
 
    png_free(png_ptr, new_purpose);
 
    for (i = 0; i < nparams; i++)
    {
-      png_write_chunk_data(png_ptr, (png_bytep)params[i],
-         (png_size_t)params_len[i]);
+      png_write_chunk_data(png_ptr, (png_const_bytep)params[i],
+          (png_size_t)params_len[i]);
    }
 
    png_free(png_ptr, params_len);
@@ -1619,63 +1942,22 @@ png_write_pCAL(png_structp png_ptr, png_charp purpose, png_int_32 X0,
 }
 #endif
 
-#if defined(PNG_WRITE_sCAL_SUPPORTED)
-/* write the sCAL chunk */
-#if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO)
-void /* PRIVATE */
-png_write_sCAL(png_structp png_ptr, int unit, double width, double height)
-{
-#ifdef PNG_USE_LOCAL_ARRAYS
-   PNG_sCAL;
-#endif
-   char buf[64];
-   png_size_t total_len;
-
-   png_debug(1, "in png_write_sCAL\n");
-
-   buf[0] = (char)unit;
-#if defined(_WIN32_WCE)
-/* sprintf() function is not supported on WindowsCE */
-   {
-      wchar_t wc_buf[32];
-      size_t wc_len;
-      swprintf(wc_buf, TEXT("%12.12e"), width);
-      wc_len = wcslen(wc_buf);
-      WideCharToMultiByte(CP_ACP, 0, wc_buf, -1, buf + 1, wc_len, NULL, NULL);
-      total_len = wc_len + 2;
-      swprintf(wc_buf, TEXT("%12.12e"), height);
-      wc_len = wcslen(wc_buf);
-      WideCharToMultiByte(CP_ACP, 0, wc_buf, -1, buf + total_len, wc_len,
-         NULL, NULL);
-      total_len += wc_len;
-   }
-#else
-   sprintf(buf + 1, "%12.12e", width);
-   total_len = 1 + png_strlen(buf + 1) + 1;
-   sprintf(buf + total_len, "%12.12e", height);
-   total_len += png_strlen(buf + total_len);
-#endif
-
-   png_debug1(3, "sCAL total length = %u\n", (unsigned int)total_len);
-   png_write_chunk(png_ptr, (png_bytep)png_sCAL, (png_bytep)buf, total_len);
-}
-#else
-#ifdef PNG_FIXED_POINT_SUPPORTED
+#ifdef PNG_WRITE_sCAL_SUPPORTED
+/* Write the sCAL chunk */
 void /* PRIVATE */
-png_write_sCAL_s(png_structp png_ptr, int unit, png_charp width,
-   png_charp height)
+png_write_sCAL_s(png_structp png_ptr, int unit, png_const_charp width,
+    png_const_charp height)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_sCAL;
-#endif
    png_byte buf[64];
    png_size_t wlen, hlen, total_len;
 
-   png_debug(1, "in png_write_sCAL_s\n");
+   png_debug(1, "in png_write_sCAL_s");
 
    wlen = png_strlen(width);
    hlen = png_strlen(height);
    total_len = wlen + hlen + 2;
+
    if (total_len > 64)
    {
       png_warning(png_ptr, "Can't write sCAL (buffer too small)");
@@ -1683,29 +1965,26 @@ png_write_sCAL_s(png_structp png_ptr, int unit, png_charp width,
    }
 
    buf[0] = (png_byte)unit;
-   png_memcpy(buf + 1, width, wlen + 1);      /* append the '\0' here */
-   png_memcpy(buf + wlen + 2, height, hlen);  /* do NOT append the '\0' here */
+   png_memcpy(buf + 1, width, wlen + 1);      /* Append the '\0' here */
+   png_memcpy(buf + wlen + 2, height, hlen);  /* Do NOT append the '\0' here */
 
-   png_debug1(3, "sCAL total length = %u\n", (unsigned int)total_len);
-   png_write_chunk(png_ptr, (png_bytep)png_sCAL, buf, total_len);
+   png_debug1(3, "sCAL total length = %u", (unsigned int)total_len);
+   png_write_chunk(png_ptr, png_sCAL, buf, total_len);
 }
 #endif
-#endif
-#endif
 
-#if defined(PNG_WRITE_pHYs_SUPPORTED)
-/* write the pHYs chunk */
+#ifdef PNG_WRITE_pHYs_SUPPORTED
+/* Write the pHYs chunk */
 void /* PRIVATE */
 png_write_pHYs(png_structp png_ptr, png_uint_32 x_pixels_per_unit,
-   png_uint_32 y_pixels_per_unit,
-   int unit_type)
+    png_uint_32 y_pixels_per_unit,
+    int unit_type)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_pHYs;
-#endif
    png_byte buf[9];
 
-   png_debug(1, "in png_write_pHYs\n");
+   png_debug(1, "in png_write_pHYs");
+
    if (unit_type >= PNG_RESOLUTION_LAST)
       png_warning(png_ptr, "Unrecognized unit type for pHYs chunk");
 
@@ -1713,23 +1992,22 @@ png_write_pHYs(png_structp png_ptr, png_uint_32 x_pixels_per_unit,
    png_save_uint_32(buf + 4, y_pixels_per_unit);
    buf[8] = (png_byte)unit_type;
 
-   png_write_chunk(png_ptr, (png_bytep)png_pHYs, buf, (png_size_t)9);
+   png_write_chunk(png_ptr, png_pHYs, buf, (png_size_t)9);
 }
 #endif
 
-#if defined(PNG_WRITE_tIME_SUPPORTED)
+#ifdef PNG_WRITE_tIME_SUPPORTED
 /* Write the tIME chunk.  Use either png_convert_from_struct_tm()
  * or png_convert_from_time_t(), or fill in the structure yourself.
  */
 void /* PRIVATE */
-png_write_tIME(png_structp png_ptr, png_timep mod_time)
+png_write_tIME(png_structp png_ptr, png_const_timep mod_time)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
    PNG_tIME;
-#endif
    png_byte buf[7];
 
-   png_debug(1, "in png_write_tIME\n");
+   png_debug(1, "in png_write_tIME");
+
    if (mod_time->month  > 12 || mod_time->month  < 1 ||
        mod_time->day    > 31 || mod_time->day    < 1 ||
        mod_time->hour   > 23 || mod_time->second > 60)
@@ -1745,100 +2023,113 @@ png_write_tIME(png_structp png_ptr, png_timep mod_time)
    buf[5] = mod_time->minute;
    buf[6] = mod_time->second;
 
-   png_write_chunk(png_ptr, (png_bytep)png_tIME, buf, (png_size_t)7);
+   png_write_chunk(png_ptr, png_tIME, buf, (png_size_t)7);
 }
 #endif
 
-/* initializes the row writing capability of libpng */
+/* Initializes the row writing capability of libpng */
 void /* PRIVATE */
 png_write_start_row(png_structp png_ptr)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
-   /* arrays to facilitate easy interlacing - use pass (0 - 6) as index */
+#ifdef PNG_WRITE_INTERLACING_SUPPORTED
+   /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */
 
-   /* start of interlace block */
+   /* Start of interlace block */
    int png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0};
 
-   /* offset to next interlace block */
+   /* Offset to next interlace block */
    int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1};
 
-   /* start of interlace block in the y direction */
+   /* Start of interlace block in the y direction */
    int png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1};
 
-   /* offset to next interlace block in the y direction */
+   /* Offset to next interlace block in the y direction */
    int png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2};
 #endif
 
    png_size_t buf_size;
 
-   png_debug(1, "in png_write_start_row\n");
+   png_debug(1, "in png_write_start_row");
+
    buf_size = (png_size_t)(PNG_ROWBYTES(
-      png_ptr->usr_channels*png_ptr->usr_bit_depth,png_ptr->width)+1);
+       png_ptr->usr_channels*png_ptr->usr_bit_depth, png_ptr->width) + 1);
+
+   /* Set up row buffer */
+   png_ptr->row_buf = (png_bytep)png_malloc(png_ptr,
+       (png_alloc_size_t)buf_size);
 
-   /* set up row buffer */
-   png_ptr->row_buf = (png_bytep)png_malloc(png_ptr, (png_uint_32)buf_size);
    png_ptr->row_buf[0] = PNG_FILTER_VALUE_NONE;
 
-   /* set up filtering buffer, if using this filter */
+#ifdef PNG_WRITE_FILTER_SUPPORTED
+   /* Set up filtering buffer, if using this filter */
    if (png_ptr->do_filter & PNG_FILTER_SUB)
    {
-      png_ptr->sub_row = (png_bytep)png_malloc(png_ptr,
-         (png_ptr->rowbytes + 1));
+      png_ptr->sub_row = (png_bytep)png_malloc(png_ptr, png_ptr->rowbytes + 1);
+
       png_ptr->sub_row[0] = PNG_FILTER_VALUE_SUB;
    }
 
    /* We only need to keep the previous row if we are using one of these. */
    if (png_ptr->do_filter & (PNG_FILTER_AVG | PNG_FILTER_UP | PNG_FILTER_PAETH))
    {
-     /* set up previous row buffer */
-      png_ptr->prev_row = (png_bytep)png_malloc(png_ptr, (png_uint_32)buf_size);
-      png_memset(png_ptr->prev_row, 0, buf_size);
+      /* Set up previous row buffer */
+      png_ptr->prev_row = (png_bytep)png_calloc(png_ptr,
+          (png_alloc_size_t)buf_size);
 
       if (png_ptr->do_filter & PNG_FILTER_UP)
       {
-         png_ptr->up_row = (png_bytep )png_malloc(png_ptr,
-            (png_ptr->rowbytes + 1));
+         png_ptr->up_row = (png_bytep)png_malloc(png_ptr,
+            png_ptr->rowbytes + 1);
+
          png_ptr->up_row[0] = PNG_FILTER_VALUE_UP;
       }
 
       if (png_ptr->do_filter & PNG_FILTER_AVG)
       {
          png_ptr->avg_row = (png_bytep)png_malloc(png_ptr,
-            (png_ptr->rowbytes + 1));
+             png_ptr->rowbytes + 1);
+
          png_ptr->avg_row[0] = PNG_FILTER_VALUE_AVG;
       }
 
       if (png_ptr->do_filter & PNG_FILTER_PAETH)
       {
-         png_ptr->paeth_row = (png_bytep )png_malloc(png_ptr,
-            (png_ptr->rowbytes + 1));
+         png_ptr->paeth_row = (png_bytep)png_malloc(png_ptr,
+             png_ptr->rowbytes + 1);
+
          png_ptr->paeth_row[0] = PNG_FILTER_VALUE_PAETH;
       }
    }
+#endif /* PNG_WRITE_FILTER_SUPPORTED */
 
 #ifdef PNG_WRITE_INTERLACING_SUPPORTED
-   /* if interlaced, we need to set up width and height of pass */
+   /* If interlaced, we need to set up width and height of pass */
    if (png_ptr->interlaced)
    {
       if (!(png_ptr->transformations & PNG_INTERLACE))
       {
          png_ptr->num_rows = (png_ptr->height + png_pass_yinc[0] - 1 -
-            png_pass_ystart[0]) / png_pass_yinc[0];
+             png_pass_ystart[0]) / png_pass_yinc[0];
+
          png_ptr->usr_width = (png_ptr->width + png_pass_inc[0] - 1 -
-            png_pass_start[0]) / png_pass_inc[0];
+             png_pass_start[0]) / png_pass_inc[0];
       }
+
       else
       {
          png_ptr->num_rows = png_ptr->height;
          png_ptr->usr_width = png_ptr->width;
       }
    }
+
    else
 #endif
    {
       png_ptr->num_rows = png_ptr->height;
       png_ptr->usr_width = png_ptr->width;
    }
+
+   png_zlib_claim(png_ptr, PNG_ZLIB_FOR_IDAT);
    png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
    png_ptr->zstream.next_out = png_ptr->zbuf;
 }
@@ -1847,34 +2138,35 @@ png_write_start_row(png_structp png_ptr)
 void /* PRIVATE */
 png_write_finish_row(png_structp png_ptr)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
-   /* arrays to facilitate easy interlacing - use pass (0 - 6) as index */
+#ifdef PNG_WRITE_INTERLACING_SUPPORTED
+   /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */
 
-   /* start of interlace block */
+   /* Start of interlace block */
    int png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0};
 
-   /* offset to next interlace block */
+   /* Offset to next interlace block */
    int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1};
 
-   /* start of interlace block in the y direction */
+   /* Start of interlace block in the y direction */
    int png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1};
 
-   /* offset to next interlace block in the y direction */
+   /* Offset to next interlace block in the y direction */
    int png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2};
 #endif
 
    int ret;
 
-   png_debug(1, "in png_write_finish_row\n");
-   /* next row */
+   png_debug(1, "in png_write_finish_row");
+
+   /* Next row */
    png_ptr->row_number++;
 
-   /* see if we are done */
+   /* See if we are done */
    if (png_ptr->row_number < png_ptr->num_rows)
       return;
 
 #ifdef PNG_WRITE_INTERLACING_SUPPORTED
-   /* if interlaced, go to next pass */
+   /* If interlaced, go to next pass */
    if (png_ptr->interlaced)
    {
       png_ptr->row_number = 0;
@@ -1882,50 +2174,58 @@ png_write_finish_row(png_structp png_ptr)
       {
          png_ptr->pass++;
       }
+
       else
       {
-         /* loop until we find a non-zero width or height pass */
+         /* Loop until we find a non-zero width or height pass */
          do
          {
             png_ptr->pass++;
+
             if (png_ptr->pass >= 7)
                break;
+
             png_ptr->usr_width = (png_ptr->width +
-               png_pass_inc[png_ptr->pass] - 1 -
-               png_pass_start[png_ptr->pass]) /
-               png_pass_inc[png_ptr->pass];
+                png_pass_inc[png_ptr->pass] - 1 -
+                png_pass_start[png_ptr->pass]) /
+                png_pass_inc[png_ptr->pass];
+
             png_ptr->num_rows = (png_ptr->height +
-               png_pass_yinc[png_ptr->pass] - 1 -
-               png_pass_ystart[png_ptr->pass]) /
-               png_pass_yinc[png_ptr->pass];
+                png_pass_yinc[png_ptr->pass] - 1 -
+                png_pass_ystart[png_ptr->pass]) /
+                png_pass_yinc[png_ptr->pass];
+
             if (png_ptr->transformations & PNG_INTERLACE)
                break;
+
          } while (png_ptr->usr_width == 0 || png_ptr->num_rows == 0);
 
       }
 
-      /* reset the row above the image for the next pass */
+      /* Reset the row above the image for the next pass */
       if (png_ptr->pass < 7)
       {
          if (png_ptr->prev_row != NULL)
             png_memset(png_ptr->prev_row, 0,
-               (png_size_t)(PNG_ROWBYTES(png_ptr->usr_channels*
-               png_ptr->usr_bit_depth,png_ptr->width))+1);
+                (png_size_t)(PNG_ROWBYTES(png_ptr->usr_channels*
+                png_ptr->usr_bit_depth, png_ptr->width)) + 1);
+
          return;
       }
    }
 #endif
 
-   /* if we get here, we've just written the last row, so we need
+   /* If we get here, we've just written the last row, so we need
       to flush the compressor */
    do
    {
-      /* tell the compressor we are done */
+      /* Tell the compressor we are done */
       ret = deflate(&png_ptr->zstream, Z_FINISH);
-      /* check for an error */
+
+      /* Check for an error */
       if (ret == Z_OK)
       {
-         /* check to see if we need more room */
+         /* Check to see if we need more room */
          if (!(png_ptr->zstream.avail_out))
          {
             png_write_IDAT(png_ptr, png_ptr->zbuf, png_ptr->zbuf_size);
@@ -1933,27 +2233,29 @@ png_write_finish_row(png_structp png_ptr)
             png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
          }
       }
+
       else if (ret != Z_STREAM_END)
       {
          if (png_ptr->zstream.msg != NULL)
             png_error(png_ptr, png_ptr->zstream.msg);
+
          else
             png_error(png_ptr, "zlib error");
       }
    } while (ret != Z_STREAM_END);
 
-   /* write any extra space */
+   /* Write any extra space */
    if (png_ptr->zstream.avail_out < png_ptr->zbuf_size)
    {
       png_write_IDAT(png_ptr, png_ptr->zbuf, png_ptr->zbuf_size -
-         png_ptr->zstream.avail_out);
+          png_ptr->zstream.avail_out);
    }
 
-   deflateReset(&png_ptr->zstream);
+   png_zlib_release(png_ptr);
    png_ptr->zstream.data_type = Z_BINARY;
 }
 
-#if defined(PNG_WRITE_INTERLACING_SUPPORTED)
+#ifdef PNG_WRITE_INTERLACING_SUPPORTED
 /* Pick out the correct pixels for the interlace pass.
  * The basic idea here is to go through the row with a source
  * pointer and a destination pointer (sp and dp), and copy the
@@ -1964,25 +2266,20 @@ png_write_finish_row(png_structp png_ptr)
 void /* PRIVATE */
 png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass)
 {
-#ifdef PNG_USE_LOCAL_ARRAYS
-   /* arrays to facilitate easy interlacing - use pass (0 - 6) as index */
+   /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */
 
-   /* start of interlace block */
+   /* Start of interlace block */
    int png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0};
 
-   /* offset to next interlace block */
+   /* Offset to next interlace block */
    int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1};
-#endif
 
-   png_debug(1, "in png_do_write_interlace\n");
-   /* we don't have to do anything on the last pass (6) */
-#if defined(PNG_USELESS_TESTS_SUPPORTED)
-   if (row != NULL && row_info != NULL && pass < 6)
-#else
+   png_debug(1, "in png_do_write_interlace");
+
+   /* We don't have to do anything on the last pass (6) */
    if (pass < 6)
-#endif
    {
-      /* each pixel depth is handled separately */
+      /* Each pixel depth is handled separately */
       switch (row_info->pixel_depth)
       {
          case 1:
@@ -1998,6 +2295,7 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass)
             dp = row;
             d = 0;
             shift = 7;
+
             for (i = png_pass_start[pass]; i < row_width;
                i += png_pass_inc[pass])
             {
@@ -2011,14 +2309,17 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass)
                   *dp++ = (png_byte)d;
                   d = 0;
                }
+
                else
                   shift--;
 
             }
             if (shift != 7)
                *dp = (png_byte)d;
+
             break;
          }
+
          case 2:
          {
             png_bytep sp;
@@ -2032,6 +2333,7 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass)
             dp = row;
             shift = 6;
             d = 0;
+
             for (i = png_pass_start[pass]; i < row_width;
                i += png_pass_inc[pass])
             {
@@ -2045,13 +2347,16 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass)
                   *dp++ = (png_byte)d;
                   d = 0;
                }
+
                else
                   shift -= 2;
             }
             if (shift != 6)
-                   *dp = (png_byte)d;
+               *dp = (png_byte)d;
+
             break;
          }
+
          case 4:
          {
             png_bytep sp;
@@ -2066,7 +2371,7 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass)
             shift = 4;
             d = 0;
             for (i = png_pass_start[pass]; i < row_width;
-               i += png_pass_inc[pass])
+                i += png_pass_inc[pass])
             {
                sp = row + (png_size_t)(i >> 1);
                value = (*sp >> ((1 - (int)(i & 0x01)) << 2)) & 0x0f;
@@ -2078,13 +2383,16 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass)
                   *dp++ = (png_byte)d;
                   d = 0;
                }
+
                else
                   shift -= 4;
             }
             if (shift != 4)
                *dp = (png_byte)d;
+
             break;
          }
+
          default:
          {
             png_bytep sp;
@@ -2093,33 +2401,37 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass)
             png_uint_32 row_width = row_info->width;
             png_size_t pixel_bytes;
 
-            /* start at the beginning */
+            /* Start at the beginning */
             dp = row;
-            /* find out how many bytes each pixel takes up */
+
+            /* Find out how many bytes each pixel takes up */
             pixel_bytes = (row_info->pixel_depth >> 3);
-            /* loop through the row, only looking at the pixels that
-               matter */
+
+            /* Loop through the row, only looking at the pixels that matter */
             for (i = png_pass_start[pass]; i < row_width;
                i += png_pass_inc[pass])
             {
-               /* find out where the original pixel is */
+               /* Find out where the original pixel is */
                sp = row + (png_size_t)i * pixel_bytes;
-               /* move the pixel */
+
+               /* Move the pixel */
                if (dp != sp)
                   png_memcpy(dp, sp, pixel_bytes);
-               /* next pixel */
+
+               /* Next pixel */
                dp += pixel_bytes;
             }
             break;
          }
       }
-      /* set new row width */
+      /* Set new row width */
       row_info->width = (row_info->width +
-         png_pass_inc[pass] - 1 -
-         png_pass_start[pass]) /
-         png_pass_inc[pass];
-         row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth,
-            row_info->width);
+          png_pass_inc[pass] - 1 -
+          png_pass_start[pass]) /
+          png_pass_inc[pass];
+
+      row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth,
+          row_info->width);
    }
 }
 #endif
@@ -2128,6 +2440,8 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass)
  * been specified by the application, and then writes the row out with the
  * chosen filter.
  */
+static void png_write_filtered_row(png_structp png_ptr, png_bytep filtered_row);
+
 #define PNG_MAXSUM (((png_uint_32)(-1)) >> 1)
 #define PNG_HISHIFT 10
 #define PNG_LOMASK ((png_uint_32)0xffffL)
@@ -2135,20 +2449,34 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass)
 void /* PRIVATE */
 png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
 {
-   png_bytep prev_row, best_row, row_buf;
+   png_bytep best_row;
+#ifdef PNG_WRITE_FILTER_SUPPORTED
+   png_bytep prev_row, row_buf;
    png_uint_32 mins, bpp;
    png_byte filter_to_do = png_ptr->do_filter;
-   png_uint_32 row_bytes = row_info->rowbytes;
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
+   png_size_t row_bytes = row_info->rowbytes;
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
    int num_p_filters = (int)png_ptr->num_prev_filters;
 #endif
 
-   png_debug(1, "in png_write_find_filter\n");
-   /* find out how many bytes offset each pixel is */
+   png_debug(1, "in png_write_find_filter");
+
+#ifndef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
+  if (png_ptr->row_number == 0 && filter_to_do == PNG_ALL_FILTERS)
+  {
+     /* These will never be selected so we need not test them. */
+     filter_to_do &= ~(PNG_FILTER_UP | PNG_FILTER_PAETH);
+  }
+#endif
+
+   /* Find out how many bytes offset each pixel is */
    bpp = (row_info->pixel_depth + 7) >> 3;
 
    prev_row = png_ptr->prev_row;
-   best_row = row_buf = png_ptr->row_buf;
+#endif
+   best_row = png_ptr->row_buf;
+#ifdef PNG_WRITE_FILTER_SUPPORTED
+   row_buf = best_row;
    mins = PNG_MAXSUM;
 
    /* The prediction method we use is to find which method provides the
@@ -2163,11 +2491,14 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
     * computationally expensive).
     *
     * GRR 980525:  consider also
+    *
     *   (1) minimum sum of absolute differences from running average (i.e.,
     *       keep running sum of non-absolute differences & count of bytes)
     *       [track dispersion, too?  restart average if dispersion too large?]
+    *
     *  (1b) minimum sum of absolute differences from sliding average, probably
     *       with window size <= deflate window (usually 32K)
+    *
     *   (2) minimum sum of squared differences from zero or running average
     *       (i.e., ~ root-mean-square approach)
     */
@@ -2176,12 +2507,11 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
    /* We don't need to test the 'no filter' case if this is the only filter
     * that has been chosen, as it doesn't actually do anything to the data.
     */
-   if ((filter_to_do & PNG_FILTER_NONE) &&
-       filter_to_do != PNG_FILTER_NONE)
+   if ((filter_to_do & PNG_FILTER_NONE) && filter_to_do != PNG_FILTER_NONE)
    {
       png_bytep rp;
       png_uint_32 sum = 0;
-      png_uint_32 i;
+      png_size_t i;
       int v;
 
       for (i = 0, rp = row_buf + 1; i < row_bytes; i++, rp++)
@@ -2190,7 +2520,7 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
          sum += (v < 128) ? v : 256 - v;
       }
 
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
       if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED)
       {
          png_uint_32 sumhi, sumlo;
@@ -2204,9 +2534,10 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_NONE)
             {
                sumlo = (sumlo * png_ptr->filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
+
                sumhi = (sumhi * png_ptr->filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
             }
          }
 
@@ -2215,12 +2546,14 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
           * it has the minimum possible computational cost - none).
           */
          sumlo = (sumlo * png_ptr->filter_costs[PNG_FILTER_VALUE_NONE]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
+
          sumhi = (sumhi * png_ptr->filter_costs[PNG_FILTER_VALUE_NONE]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
 
          if (sumhi > PNG_HIMASK)
             sum = PNG_MAXSUM;
+
          else
             sum = (sumhi << PNG_HISHIFT) + sumlo;
       }
@@ -2228,22 +2561,25 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
       mins = sum;
    }
 
-   /* sub filter */
+   /* Sub filter */
    if (filter_to_do == PNG_FILTER_SUB)
-   /* it's the only filter so no testing is needed */
+   /* It's the only filter so no testing is needed */
    {
       png_bytep rp, lp, dp;
-      png_uint_32 i;
+      png_size_t i;
+
       for (i = 0, rp = row_buf + 1, dp = png_ptr->sub_row + 1; i < bpp;
            i++, rp++, dp++)
       {
          *dp = *rp;
       }
+
       for (lp = row_buf + 1; i < row_bytes;
          i++, rp++, lp++, dp++)
       {
          *dp = (png_byte)(((int)*rp - (int)*lp) & 0xff);
       }
+
       best_row = png_ptr->sub_row;
    }
 
@@ -2251,10 +2587,10 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
    {
       png_bytep rp, dp, lp;
       png_uint_32 sum = 0, lmins = mins;
-      png_uint_32 i;
+      png_size_t i;
       int v;
 
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
       /* We temporarily increase the "minimum sum" by the factor we
        * would reduce the sum of this filter, so that we can do the
        * early exit comparison without scaling the sum each time.
@@ -2271,19 +2607,22 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_SUB)
             {
                lmlo = (lmlo * png_ptr->inv_filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
+
                lmhi = (lmhi * png_ptr->inv_filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
             }
          }
 
          lmlo = (lmlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_SUB]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
+
          lmhi = (lmhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_SUB]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
 
          if (lmhi > PNG_HIMASK)
             lmins = PNG_MAXSUM;
+
          else
             lmins = (lmhi << PNG_HISHIFT) + lmlo;
       }
@@ -2296,6 +2635,7 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
 
          sum += (v < 128) ? v : 256 - v;
       }
+
       for (lp = row_buf + 1; i < row_bytes;
          i++, rp++, lp++, dp++)
       {
@@ -2307,7 +2647,7 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             break;
       }
 
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
       if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED)
       {
          int j;
@@ -2320,19 +2660,22 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_SUB)
             {
                sumlo = (sumlo * png_ptr->inv_filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
+
                sumhi = (sumhi * png_ptr->inv_filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
             }
          }
 
          sumlo = (sumlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_SUB]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
+
          sumhi = (sumhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_SUB]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
 
          if (sumhi > PNG_HIMASK)
             sum = PNG_MAXSUM;
+
          else
             sum = (sumhi << PNG_HISHIFT) + sumlo;
       }
@@ -2345,18 +2688,19 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
       }
    }
 
-   /* up filter */
+   /* Up filter */
    if (filter_to_do == PNG_FILTER_UP)
    {
       png_bytep rp, dp, pp;
-      png_uint_32 i;
+      png_size_t i;
 
       for (i = 0, rp = row_buf + 1, dp = png_ptr->up_row + 1,
-           pp = prev_row + 1; i < row_bytes;
-           i++, rp++, pp++, dp++)
+          pp = prev_row + 1; i < row_bytes;
+          i++, rp++, pp++, dp++)
       {
          *dp = (png_byte)(((int)*rp - (int)*pp) & 0xff);
       }
+
       best_row = png_ptr->up_row;
    }
 
@@ -2364,11 +2708,11 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
    {
       png_bytep rp, dp, pp;
       png_uint_32 sum = 0, lmins = mins;
-      png_uint_32 i;
+      png_size_t i;
       int v;
 
 
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
       if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED)
       {
          int j;
@@ -2381,26 +2725,29 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_UP)
             {
                lmlo = (lmlo * png_ptr->inv_filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
+
                lmhi = (lmhi * png_ptr->inv_filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
             }
          }
 
          lmlo = (lmlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_UP]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
+
          lmhi = (lmhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_UP]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
 
          if (lmhi > PNG_HIMASK)
             lmins = PNG_MAXSUM;
+
          else
             lmins = (lmhi << PNG_HISHIFT) + lmlo;
       }
 #endif
 
       for (i = 0, rp = row_buf + 1, dp = png_ptr->up_row + 1,
-           pp = prev_row + 1; i < row_bytes; i++)
+          pp = prev_row + 1; i < row_bytes; i++)
       {
          v = *dp++ = (png_byte)(((int)*rp++ - (int)*pp++) & 0xff);
 
@@ -2410,7 +2757,7 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             break;
       }
 
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
       if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED)
       {
          int j;
@@ -2423,19 +2770,22 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_UP)
             {
                sumlo = (sumlo * png_ptr->filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
+
                sumhi = (sumhi * png_ptr->filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
             }
          }
 
          sumlo = (sumlo * png_ptr->filter_costs[PNG_FILTER_VALUE_UP]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
+
          sumhi = (sumhi * png_ptr->filter_costs[PNG_FILTER_VALUE_UP]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
 
          if (sumhi > PNG_HIMASK)
             sum = PNG_MAXSUM;
+
          else
             sum = (sumhi << PNG_HISHIFT) + sumlo;
       }
@@ -2448,16 +2798,18 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
       }
    }
 
-   /* avg filter */
+   /* Avg filter */
    if (filter_to_do == PNG_FILTER_AVG)
    {
       png_bytep rp, dp, pp, lp;
       png_uint_32 i;
+
       for (i = 0, rp = row_buf + 1, dp = png_ptr->avg_row + 1,
            pp = prev_row + 1; i < bpp; i++)
       {
          *dp++ = (png_byte)(((int)*rp++ - ((int)*pp++ / 2)) & 0xff);
       }
+
       for (lp = row_buf + 1; i < row_bytes; i++)
       {
          *dp++ = (png_byte)(((int)*rp++ - (((int)*pp++ + (int)*lp++) / 2))
@@ -2470,10 +2822,10 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
    {
       png_bytep rp, dp, pp, lp;
       png_uint_32 sum = 0, lmins = mins;
-      png_uint_32 i;
+      png_size_t i;
       int v;
 
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
       if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED)
       {
          int j;
@@ -2486,19 +2838,22 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_AVG)
             {
                lmlo = (lmlo * png_ptr->inv_filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
+
                lmhi = (lmhi * png_ptr->inv_filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
             }
          }
 
          lmlo = (lmlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_AVG]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
+
          lmhi = (lmhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_AVG]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
 
          if (lmhi > PNG_HIMASK)
             lmins = PNG_MAXSUM;
+
          else
             lmins = (lmhi << PNG_HISHIFT) + lmlo;
       }
@@ -2511,10 +2866,11 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
 
          sum += (v < 128) ? v : 256 - v;
       }
+
       for (lp = row_buf + 1; i < row_bytes; i++)
       {
          v = *dp++ =
-          (png_byte)(((int)*rp++ - (((int)*pp++ + (int)*lp++) / 2)) & 0xff);
+             (png_byte)(((int)*rp++ - (((int)*pp++ + (int)*lp++) / 2)) & 0xff);
 
          sum += (v < 128) ? v : 256 - v;
 
@@ -2522,7 +2878,7 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             break;
       }
 
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
       if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED)
       {
          int j;
@@ -2535,19 +2891,22 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_NONE)
             {
                sumlo = (sumlo * png_ptr->filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
+
                sumhi = (sumhi * png_ptr->filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
             }
          }
 
          sumlo = (sumlo * png_ptr->filter_costs[PNG_FILTER_VALUE_AVG]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
+
          sumhi = (sumhi * png_ptr->filter_costs[PNG_FILTER_VALUE_AVG]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
 
          if (sumhi > PNG_HIMASK)
             sum = PNG_MAXSUM;
+
          else
             sum = (sumhi << PNG_HISHIFT) + sumlo;
       }
@@ -2564,9 +2923,10 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
    if (filter_to_do == PNG_FILTER_PAETH)
    {
       png_bytep rp, dp, pp, cp, lp;
-      png_uint_32 i;
+      png_size_t i;
+
       for (i = 0, rp = row_buf + 1, dp = png_ptr->paeth_row + 1,
-           pp = prev_row + 1; i < bpp; i++)
+          pp = prev_row + 1; i < bpp; i++)
       {
          *dp++ = (png_byte)(((int)*rp++ - (int)*pp++) & 0xff);
       }
@@ -2603,10 +2963,10 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
    {
       png_bytep rp, dp, pp, cp, lp;
       png_uint_32 sum = 0, lmins = mins;
-      png_uint_32 i;
+      png_size_t i;
       int v;
 
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
       if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED)
       {
          int j;
@@ -2619,26 +2979,29 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_PAETH)
             {
                lmlo = (lmlo * png_ptr->inv_filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
+
                lmhi = (lmhi * png_ptr->inv_filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
             }
          }
 
          lmlo = (lmlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_PAETH]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
+
          lmhi = (lmhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_PAETH]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
 
          if (lmhi > PNG_HIMASK)
             lmins = PNG_MAXSUM;
+
          else
             lmins = (lmhi << PNG_HISHIFT) + lmlo;
       }
 #endif
 
       for (i = 0, rp = row_buf + 1, dp = png_ptr->paeth_row + 1,
-           pp = prev_row + 1; i < bpp; i++)
+          pp = prev_row + 1; i < bpp; i++)
       {
          v = *dp++ = (png_byte)(((int)*rp++ - (int)*pp++) & 0xff);
 
@@ -2671,10 +3034,13 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
          pa = abs(p - a);
          pb = abs(p - b);
          pc = abs(p - c);
+
          if (pa <= pb && pa <= pc)
             p = a;
+
          else if (pb <= pc)
             p = b;
+
          else
             p = c;
 #endif /* PNG_SLOW_PAETH */
@@ -2687,7 +3053,7 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             break;
       }
 
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
       if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED)
       {
          int j;
@@ -2700,19 +3066,22 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
             if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_PAETH)
             {
                sumlo = (sumlo * png_ptr->filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
+
                sumhi = (sumhi * png_ptr->filter_weights[j]) >>
-                  PNG_WEIGHT_SHIFT;
+                   PNG_WEIGHT_SHIFT;
             }
          }
 
          sumlo = (sumlo * png_ptr->filter_costs[PNG_FILTER_VALUE_PAETH]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
+
          sumhi = (sumhi * png_ptr->filter_costs[PNG_FILTER_VALUE_PAETH]) >>
-            PNG_COST_SHIFT;
+             PNG_COST_SHIFT;
 
          if (sumhi > PNG_HIMASK)
             sum = PNG_MAXSUM;
+
          else
             sum = (sumhi << PNG_HISHIFT) + sumlo;
       }
@@ -2723,64 +3092,96 @@ png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
          best_row = png_ptr->paeth_row;
       }
    }
-
+#endif /* PNG_WRITE_FILTER_SUPPORTED */
    /* Do the actual writing of the filtered row data from the chosen filter. */
 
    png_write_filtered_row(png_ptr, best_row);
 
-#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
+#ifdef PNG_WRITE_FILTER_SUPPORTED
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
    /* Save the type of filter we picked this time for future calculations */
    if (png_ptr->num_prev_filters > 0)
    {
       int j;
+
       for (j = 1; j < num_p_filters; j++)
       {
          png_ptr->prev_filters[j] = png_ptr->prev_filters[j - 1];
       }
+
       png_ptr->prev_filters[j] = best_row[0];
    }
 #endif
+#endif /* PNG_WRITE_FILTER_SUPPORTED */
 }
 
 
 /* Do the actual writing of a previously filtered row. */
-void /* PRIVATE */
+static void
 png_write_filtered_row(png_structp png_ptr, png_bytep filtered_row)
 {
-   png_debug(1, "in png_write_filtered_row\n");
-   png_debug1(2, "filter = %d\n", filtered_row[0]);
-   /* set up the zlib input buffer */
+   png_size_t avail;
+
+   png_debug(1, "in png_write_filtered_row");
+
+   png_debug1(2, "filter = %d", filtered_row[0]);
+   /* Set up the zlib input buffer */
 
    png_ptr->zstream.next_in = filtered_row;
-   png_ptr->zstream.avail_in = (uInt)png_ptr->row_info.rowbytes + 1;
-   /* repeat until we have compressed all the data */
+   png_ptr->zstream.avail_in = 0;
+   avail = png_ptr->row_info.rowbytes + 1;
+   /* Repeat until we have compressed all the data */
    do
    {
-      int ret; /* return of zlib */
+      int ret; /* Return of zlib */
+
+      /* Record the number of bytes available - zlib supports at least 65535
+       * bytes at one step, depending on the size of the zlib type 'uInt', the
+       * maximum size zlib can write at once is ZLIB_IO_MAX (from pngpriv.h).
+       * Use this because on 16 bit systems 'rowbytes' can be up to 65536 (i.e.
+       * one more than 16 bits) and, in this case 'rowbytes+1' can overflow a
+       * uInt.  ZLIB_IO_MAX can be safely reduced to cause zlib to be called
+       * with smaller chunks of data.
+       */
+      if (png_ptr->zstream.avail_in == 0)
+      {
+         if (avail > ZLIB_IO_MAX)
+         {
+            png_ptr->zstream.avail_in  = ZLIB_IO_MAX;
+            avail -= ZLIB_IO_MAX;
+         }
+
+         else
+         {
+            /* So this will fit in the available uInt space: */
+            png_ptr->zstream.avail_in = (uInt)avail;
+            avail = 0;
+         }
+      }
 
-      /* compress the data */
+      /* Compress the data */
       ret = deflate(&png_ptr->zstream, Z_NO_FLUSH);
-      /* check for compression errors */
+
+      /* Check for compression errors */
       if (ret != Z_OK)
       {
          if (png_ptr->zstream.msg != NULL)
             png_error(png_ptr, png_ptr->zstream.msg);
+
          else
             png_error(png_ptr, "zlib error");
       }
 
-      /* see if it is time to write another IDAT */
+      /* See if it is time to write another IDAT */
       if (!(png_ptr->zstream.avail_out))
       {
-         /* write the IDAT and reset the zlib output buffer */
+         /* Write the IDAT and reset the zlib output buffer */
          png_write_IDAT(png_ptr, png_ptr->zbuf, png_ptr->zbuf_size);
-         png_ptr->zstream.next_out = png_ptr->zbuf;
-         png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
       }
-   /* repeat until all data has been compressed */
-   } while (png_ptr->zstream.avail_in);
+   /* Repeat until all data has been compressed */
+   } while (avail > 0 || png_ptr->zstream.avail_in > 0);
 
-   /* swap the current and previous rows */
+   /* Swap the current and previous rows */
    if (png_ptr->prev_row != NULL)
    {
       png_bytep tptr;
@@ -2790,10 +3191,10 @@ png_write_filtered_row(png_structp png_ptr, png_bytep filtered_row)
       png_ptr->row_buf = tptr;
    }
 
-   /* finish row - updates counters and flushes zlib if last row */
+   /* Finish row - updates counters and flushes zlib if last row */
    png_write_finish_row(png_ptr);
 
-#if defined(PNG_WRITE_FLUSH_SUPPORTED)
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
    png_ptr->flush_rows++;
 
    if (png_ptr->flush_dist > 0 &&
diff --git a/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c b/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
index 156fcdf..b470f64 100644
--- a/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
+++ b/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
@@ -36,7 +36,7 @@ my_png_read_stream(png_structp png_ptr, png_bytep data, png_size_t length)
 {
     png_uint_32 check;
 
-    SplashStream * stream = (SplashStream*)png_ptr->io_ptr;
+    SplashStream * stream = (SplashStream*)png_get_io_ptr(png_ptr);
     check = stream->read(stream, data, length);
     if (check != length)
         png_error(png_ptr, "Read Error");
@@ -71,12 +71,11 @@ SplashDecodePng(Splash * splash, png_rw_ptr read_func, void *io_ptr)
         goto done;
     }
 
-    if (setjmp(png_ptr->jmpbuf)) {
+    if (setjmp(png_jmpbuf(png_ptr))) {
         goto done;
     }
 
-    png_ptr->io_ptr = io_ptr;
-    png_ptr->read_data_fn = read_func;
+    png_set_read_fn(png_ptr, io_ptr, read_func);
 
     png_set_sig_bytes(png_ptr, SIG_BYTES);      /* we already read the 8 signature bytes */
 
diff --git a/jdk/src/share/sample/README b/jdk/src/share/sample/README
new file mode 100644
index 0000000..ae56b64
--- /dev/null
+++ b/jdk/src/share/sample/README
@@ -0,0 +1,6 @@
+The source code provided with samples and demos for the JDK is meant
+to illustrate the usage of a given feature or technique and has been
+deliberately simplified. Additional steps required for a
+production-quality application, such as security checks, input
+validation, and proper error handling, might not be present in the
+sample code.
diff --git a/jdk/src/share/sample/forkjoin/mergesort/MergeDemo.java b/jdk/src/share/sample/forkjoin/mergesort/MergeDemo.java
index f7daf05..528f383 100644
--- a/jdk/src/share/sample/forkjoin/mergesort/MergeDemo.java
+++ b/jdk/src/share/sample/forkjoin/mergesort/MergeDemo.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.util.Arrays;
 import java.util.Random;
 
diff --git a/jdk/src/share/sample/forkjoin/mergesort/MergeSort.java b/jdk/src/share/sample/forkjoin/mergesort/MergeSort.java
index b9cf0f5..0ae48dc 100644
--- a/jdk/src/share/sample/forkjoin/mergesort/MergeSort.java
+++ b/jdk/src/share/sample/forkjoin/mergesort/MergeSort.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.util.Arrays;
 import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.ForkJoinTask;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScanner.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScanner.java
index 1c761e1..0187dc5 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScanner.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScanner.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import static com.sun.jmx.examples.scandir.ScanManager.getNextSeqNumber;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScannerMXBean.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScannerMXBean.java
index ecb4cfc..5da41d1 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScannerMXBean.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScannerMXBean.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import com.sun.jmx.examples.scandir.ScanManagerMXBean.ScanState;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManager.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManager.java
index 46aaaaa..364543f 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManager.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManager.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import static com.sun.jmx.examples.scandir.ScanManager.getNextSeqNumber;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManagerMXBean.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManagerMXBean.java
index 379e412..49ac5d6 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManagerMXBean.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManagerMXBean.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import com.sun.jmx.examples.scandir.config.ResultRecord;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirAgent.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirAgent.java
index bf620d6..6957e5d 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirAgent.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirAgent.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import com.sun.jmx.examples.scandir.ScanManagerMXBean.ScanState;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirClient.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirClient.java
index b6e7f8f..57f948f 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirClient.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirClient.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import java.net.InetAddress;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfig.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfig.java
index 2a71689..2e63a53 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfig.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfig.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import static com.sun.jmx.examples.scandir.ScanManager.getNextSeqNumber;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfigMXBean.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfigMXBean.java
index 2714cee..d207add 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfigMXBean.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfigMXBean.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import com.sun.jmx.examples.scandir.config.DirectoryScannerConfig;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManager.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManager.java
index 52c7cc1..90cedeb 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManager.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManager.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import static com.sun.jmx.examples.scandir.ScanManagerMXBean.ScanState.*;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManagerMXBean.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManagerMXBean.java
index 3eac061..fa9b03b 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManagerMXBean.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManagerMXBean.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import java.io.IOException;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/DirectoryScannerConfig.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/DirectoryScannerConfig.java
index ec71766..e186046 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/DirectoryScannerConfig.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/DirectoryScannerConfig.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir.config;
 
 import java.io.File;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/FileMatch.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/FileMatch.java
index ae75835..133ad64 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/FileMatch.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/FileMatch.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir.config;
 
 import java.io.File;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultLogConfig.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultLogConfig.java
index a621eec..8277f47 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultLogConfig.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultLogConfig.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir.config;
 
 import java.util.Arrays;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultRecord.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultRecord.java
index b1d9067..c230928 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultRecord.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultRecord.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir.config;
 
 import java.util.Date;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ScanManagerConfig.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ScanManagerConfig.java
index 5da3f97..dbae7a8 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ScanManagerConfig.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ScanManagerConfig.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir.config;
 
 import java.util.Arrays;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/XmlConfigUtils.java b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/XmlConfigUtils.java
index 75e4f74..e450eaa 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/XmlConfigUtils.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/XmlConfigUtils.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir.config;
 
 import java.io.ByteArrayInputStream;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/DirectoryScannerTest.java b/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/DirectoryScannerTest.java
index b38a2d6..247b1d4 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/DirectoryScannerTest.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/DirectoryScannerTest.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import com.sun.jmx.examples.scandir.config.DirectoryScannerConfig;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanDirConfigTest.java b/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanDirConfigTest.java
index 36cda48..f9cac94 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanDirConfigTest.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanDirConfigTest.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import com.sun.jmx.examples.scandir.config.XmlConfigUtils;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanManagerTest.java b/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanManagerTest.java
index 9c700f3..7c4e031 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanManagerTest.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanManagerTest.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import java.util.concurrent.LinkedBlockingQueue;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/TestUtils.java b/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/TestUtils.java
index 1916cc9..de9b99d 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/TestUtils.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/TestUtils.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir;
 
 import java.lang.reflect.InvocationHandler;
diff --git a/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/config/XmlConfigUtilsTest.java b/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/config/XmlConfigUtilsTest.java
index c63dca1..7b15d68 100644
--- a/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/config/XmlConfigUtilsTest.java
+++ b/jdk/src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/config/XmlConfigUtilsTest.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.jmx.examples.scandir.config;
 
 import junit.framework.*;
diff --git a/jdk/src/share/sample/nio/chatserver/ChatServer.java b/jdk/src/share/sample/nio/chatserver/ChatServer.java
index 072999b..f807aa1 100644
--- a/jdk/src/share/sample/nio/chatserver/ChatServer.java
+++ b/jdk/src/share/sample/nio/chatserver/ChatServer.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.net.SocketAddress;
diff --git a/jdk/src/share/sample/nio/chatserver/Client.java b/jdk/src/share/sample/nio/chatserver/Client.java
index d89516a..31ee034 100644
--- a/jdk/src/share/sample/nio/chatserver/Client.java
+++ b/jdk/src/share/sample/nio/chatserver/Client.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.channels.AsynchronousSocketChannel;
diff --git a/jdk/src/share/sample/nio/chatserver/ClientReader.java b/jdk/src/share/sample/nio/chatserver/ClientReader.java
index 5308805..ee84b08 100644
--- a/jdk/src/share/sample/nio/chatserver/ClientReader.java
+++ b/jdk/src/share/sample/nio/chatserver/ClientReader.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.ByteBuffer;
 import java.nio.channels.CompletionHandler;
 
diff --git a/jdk/src/share/sample/nio/chatserver/DataReader.java b/jdk/src/share/sample/nio/chatserver/DataReader.java
index 574c69d..8858c9f 100644
--- a/jdk/src/share/sample/nio/chatserver/DataReader.java
+++ b/jdk/src/share/sample/nio/chatserver/DataReader.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.ByteBuffer;
 
 public interface DataReader {
diff --git a/jdk/src/share/sample/nio/chatserver/MessageReader.java b/jdk/src/share/sample/nio/chatserver/MessageReader.java
index 46fde6f..81c370b 100644
--- a/jdk/src/share/sample/nio/chatserver/MessageReader.java
+++ b/jdk/src/share/sample/nio/chatserver/MessageReader.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.ByteBuffer;
 
 /**
diff --git a/jdk/src/share/sample/nio/chatserver/NameReader.java b/jdk/src/share/sample/nio/chatserver/NameReader.java
index d0484d0..341d4da 100644
--- a/jdk/src/share/sample/nio/chatserver/NameReader.java
+++ b/jdk/src/share/sample/nio/chatserver/NameReader.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.ByteBuffer;
 
 /**
diff --git a/jdk/src/share/sample/nio/file/AclEdit.java b/jdk/src/share/sample/nio/file/AclEdit.java
index 02b6ae7..90af865 100644
--- a/jdk/src/share/sample/nio/file/AclEdit.java
+++ b/jdk/src/share/sample/nio/file/AclEdit.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.file.*;
 import java.nio.file.attribute.*;
 import java.io.IOException;
diff --git a/jdk/src/share/sample/nio/file/Chmod.java b/jdk/src/share/sample/nio/file/Chmod.java
index 321f455..05c16b9 100644
--- a/jdk/src/share/sample/nio/file/Chmod.java
+++ b/jdk/src/share/sample/nio/file/Chmod.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.file.*;
 import java.nio.file.attribute.*;
 import static java.nio.file.attribute.PosixFilePermission.*;
diff --git a/jdk/src/share/sample/nio/file/Copy.java b/jdk/src/share/sample/nio/file/Copy.java
index 7cb6841..0d61ef3 100644
--- a/jdk/src/share/sample/nio/file/Copy.java
+++ b/jdk/src/share/sample/nio/file/Copy.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.file.*;
 import static java.nio.file.StandardCopyOption.*;
 import java.nio.file.attribute.*;
diff --git a/jdk/src/share/sample/nio/file/DiskUsage.java b/jdk/src/share/sample/nio/file/DiskUsage.java
index 8d6bbb6..7d30bdf 100644
--- a/jdk/src/share/sample/nio/file/DiskUsage.java
+++ b/jdk/src/share/sample/nio/file/DiskUsage.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.file.*;
 import java.nio.file.attribute.*;
 import java.io.IOException;
diff --git a/jdk/src/share/sample/nio/file/FileType.java b/jdk/src/share/sample/nio/file/FileType.java
index dc754b5..d001d60 100644
--- a/jdk/src/share/sample/nio/file/FileType.java
+++ b/jdk/src/share/sample/nio/file/FileType.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.file.*;
 import java.io.IOException;
 
diff --git a/jdk/src/share/sample/nio/file/WatchDir.java b/jdk/src/share/sample/nio/file/WatchDir.java
index 49e278e..4c73820 100644
--- a/jdk/src/share/sample/nio/file/WatchDir.java
+++ b/jdk/src/share/sample/nio/file/WatchDir.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.file.*;
 import static java.nio.file.StandardWatchEventKinds.*;
 import static java.nio.file.LinkOption.*;
diff --git a/jdk/src/share/sample/nio/file/Xdd.java b/jdk/src/share/sample/nio/file/Xdd.java
index f07802f..c0c7f87 100644
--- a/jdk/src/share/sample/nio/file/Xdd.java
+++ b/jdk/src/share/sample/nio/file/Xdd.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
 import java.nio.file.*;
diff --git a/jdk/src/share/sample/nio/multicast/MulticastAddress.java b/jdk/src/share/sample/nio/multicast/MulticastAddress.java
index df0619d..400eb32 100644
--- a/jdk/src/share/sample/nio/multicast/MulticastAddress.java
+++ b/jdk/src/share/sample/nio/multicast/MulticastAddress.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.net.InetAddress;
 import java.net.NetworkInterface;
 import java.net.UnknownHostException;
diff --git a/jdk/src/share/sample/nio/multicast/Reader.java b/jdk/src/share/sample/nio/multicast/Reader.java
index 59190f5..5780d73 100644
--- a/jdk/src/share/sample/nio/multicast/Reader.java
+++ b/jdk/src/share/sample/nio/multicast/Reader.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.channels.*;
 import java.nio.charset.*;
 import java.nio.ByteBuffer;
diff --git a/jdk/src/share/sample/nio/multicast/Sender.java b/jdk/src/share/sample/nio/multicast/Sender.java
index d22d334..6bc76af 100644
--- a/jdk/src/share/sample/nio/multicast/Sender.java
+++ b/jdk/src/share/sample/nio/multicast/Sender.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.channels.*;
 import java.nio.charset.Charset;
 import java.net.*;
diff --git a/jdk/src/share/sample/nio/server/AcceptHandler.java b/jdk/src/share/sample/nio/server/AcceptHandler.java
index f24e7d3..2efd309 100644
--- a/jdk/src/share/sample/nio/server/AcceptHandler.java
+++ b/jdk/src/share/sample/nio/server/AcceptHandler.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.channels.*;
 import javax.net.ssl.*;
diff --git a/jdk/src/share/sample/nio/server/Acceptor.java b/jdk/src/share/sample/nio/server/Acceptor.java
index a9fb52b..502e632 100644
--- a/jdk/src/share/sample/nio/server/Acceptor.java
+++ b/jdk/src/share/sample/nio/server/Acceptor.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.channels.*;
 import javax.net.ssl.*;
diff --git a/jdk/src/share/sample/nio/server/B1.java b/jdk/src/share/sample/nio/server/B1.java
index e858e4e..71011db 100644
--- a/jdk/src/share/sample/nio/server/B1.java
+++ b/jdk/src/share/sample/nio/server/B1.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.channels.*;
 
 /**
diff --git a/jdk/src/share/sample/nio/server/BN.java b/jdk/src/share/sample/nio/server/BN.java
index 57c2b7a..8a268c5 100644
--- a/jdk/src/share/sample/nio/server/BN.java
+++ b/jdk/src/share/sample/nio/server/BN.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.channels.*;
 
diff --git a/jdk/src/share/sample/nio/server/BP.java b/jdk/src/share/sample/nio/server/BP.java
index a0d8e9e..5029cdd 100644
--- a/jdk/src/share/sample/nio/server/BP.java
+++ b/jdk/src/share/sample/nio/server/BP.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.channels.*;
 import java.util.concurrent.*;
 
diff --git a/jdk/src/share/sample/nio/server/ChannelIO.java b/jdk/src/share/sample/nio/server/ChannelIO.java
index 244a506..80fe9ef 100644
--- a/jdk/src/share/sample/nio/server/ChannelIO.java
+++ b/jdk/src/share/sample/nio/server/ChannelIO.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.*;
 import java.nio.channels.*;
diff --git a/jdk/src/share/sample/nio/server/ChannelIOSecure.java b/jdk/src/share/sample/nio/server/ChannelIOSecure.java
index 7cc05cb..3ec6c93 100644
--- a/jdk/src/share/sample/nio/server/ChannelIOSecure.java
+++ b/jdk/src/share/sample/nio/server/ChannelIOSecure.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.*;
 import java.nio.channels.*;
diff --git a/jdk/src/share/sample/nio/server/Content.java b/jdk/src/share/sample/nio/server/Content.java
index 7eebc90..4a6938a 100644
--- a/jdk/src/share/sample/nio/server/Content.java
+++ b/jdk/src/share/sample/nio/server/Content.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /**
  * An Sendable interface extension that adds additional
  * methods for additional information, such as Files
diff --git a/jdk/src/share/sample/nio/server/Dispatcher.java b/jdk/src/share/sample/nio/server/Dispatcher.java
index 6607904..d82cc55 100644
--- a/jdk/src/share/sample/nio/server/Dispatcher.java
+++ b/jdk/src/share/sample/nio/server/Dispatcher.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.channels.*;
 
diff --git a/jdk/src/share/sample/nio/server/Dispatcher1.java b/jdk/src/share/sample/nio/server/Dispatcher1.java
index 78e9389..16d80aa 100644
--- a/jdk/src/share/sample/nio/server/Dispatcher1.java
+++ b/jdk/src/share/sample/nio/server/Dispatcher1.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.channels.*;
 import java.util.*;
diff --git a/jdk/src/share/sample/nio/server/DispatcherN.java b/jdk/src/share/sample/nio/server/DispatcherN.java
index 51355d6..1b0d406 100644
--- a/jdk/src/share/sample/nio/server/DispatcherN.java
+++ b/jdk/src/share/sample/nio/server/DispatcherN.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.channels.*;
 import java.util.*;
diff --git a/jdk/src/share/sample/nio/server/FileContent.java b/jdk/src/share/sample/nio/server/FileContent.java
index 36b7c6c..675b00a 100644
--- a/jdk/src/share/sample/nio/server/FileContent.java
+++ b/jdk/src/share/sample/nio/server/FileContent.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.net.*;
 import java.nio.channels.*;
diff --git a/jdk/src/share/sample/nio/server/Handler.java b/jdk/src/share/sample/nio/server/Handler.java
index 5705fad..29e0b18 100644
--- a/jdk/src/share/sample/nio/server/Handler.java
+++ b/jdk/src/share/sample/nio/server/Handler.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.channels.*;
 
diff --git a/jdk/src/share/sample/nio/server/MalformedRequestException.java b/jdk/src/share/sample/nio/server/MalformedRequestException.java
index 089805a..bc785ed 100644
--- a/jdk/src/share/sample/nio/server/MalformedRequestException.java
+++ b/jdk/src/share/sample/nio/server/MalformedRequestException.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /**
  * Exception class used when a request can't be properly parsed.
  *
diff --git a/jdk/src/share/sample/nio/server/N1.java b/jdk/src/share/sample/nio/server/N1.java
index 6aa03fe..761ec6e 100644
--- a/jdk/src/share/sample/nio/server/N1.java
+++ b/jdk/src/share/sample/nio/server/N1.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.nio.channels.*;
 
 /**
diff --git a/jdk/src/share/sample/nio/server/N2.java b/jdk/src/share/sample/nio/server/N2.java
index 49a4abd..aff22cc 100644
--- a/jdk/src/share/sample/nio/server/N2.java
+++ b/jdk/src/share/sample/nio/server/N2.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /**
  * A non-blocking/dual-threaded which performs accept()s in one thread,
  * and services requests in a second.  Both threads use select().
diff --git a/jdk/src/share/sample/nio/server/Reply.java b/jdk/src/share/sample/nio/server/Reply.java
index ff3da89..c2d7f3b 100644
--- a/jdk/src/share/sample/nio/server/Reply.java
+++ b/jdk/src/share/sample/nio/server/Reply.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.*;
 import java.nio.charset.*;
diff --git a/jdk/src/share/sample/nio/server/Request.java b/jdk/src/share/sample/nio/server/Request.java
index 3b227fe..7767d1a 100644
--- a/jdk/src/share/sample/nio/server/Request.java
+++ b/jdk/src/share/sample/nio/server/Request.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.net.*;
 import java.nio.*;
 import java.nio.charset.*;
diff --git a/jdk/src/share/sample/nio/server/RequestHandler.java b/jdk/src/share/sample/nio/server/RequestHandler.java
index 7b7ca78..59953c7 100644
--- a/jdk/src/share/sample/nio/server/RequestHandler.java
+++ b/jdk/src/share/sample/nio/server/RequestHandler.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.*;
 import java.nio.channels.*;
diff --git a/jdk/src/share/sample/nio/server/RequestServicer.java b/jdk/src/share/sample/nio/server/RequestServicer.java
index 9f9e099..149e3de 100644
--- a/jdk/src/share/sample/nio/server/RequestServicer.java
+++ b/jdk/src/share/sample/nio/server/RequestServicer.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.*;
 
diff --git a/jdk/src/share/sample/nio/server/Sendable.java b/jdk/src/share/sample/nio/server/Sendable.java
index 57219b0..b12dacf 100644
--- a/jdk/src/share/sample/nio/server/Sendable.java
+++ b/jdk/src/share/sample/nio/server/Sendable.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 
 /**
diff --git a/jdk/src/share/sample/nio/server/Server.java b/jdk/src/share/sample/nio/server/Server.java
index f18fcc8..40d31ca 100644
--- a/jdk/src/share/sample/nio/server/Server.java
+++ b/jdk/src/share/sample/nio/server/Server.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.net.*;
 import java.nio.channels.*;
diff --git a/jdk/src/share/sample/nio/server/StringContent.java b/jdk/src/share/sample/nio/server/StringContent.java
index a66b864..4fb5088 100644
--- a/jdk/src/share/sample/nio/server/StringContent.java
+++ b/jdk/src/share/sample/nio/server/StringContent.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.nio.*;
 import java.nio.charset.*;
diff --git a/jdk/src/share/sample/nio/server/URLDumper.java b/jdk/src/share/sample/nio/server/URLDumper.java
index 481fe61..b2864c7 100644
--- a/jdk/src/share/sample/nio/server/URLDumper.java
+++ b/jdk/src/share/sample/nio/server/URLDumper.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.net.*;
 
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/com/sun/sample/scriptpad/Main.java b/jdk/src/share/sample/scripting/scriptpad/src/com/sun/sample/scriptpad/Main.java
index 5bb9376..d5c154c 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/com/sun/sample/scriptpad/Main.java
+++ b/jdk/src/share/sample/scripting/scriptpad/src/com/sun/sample/scriptpad/Main.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 package com.sun.sample.scriptpad;
 
 import javax.script.*;
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/resources/Main.js b/jdk/src/share/sample/scripting/scriptpad/src/resources/Main.js
index 3674853..5c057a4 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/resources/Main.js
+++ b/jdk/src/share/sample/scripting/scriptpad/src/resources/Main.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This script can be loaded in jrunscript to start scriptpad.
  *
  *    jrunscript -f Main.js -f -
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/resources/conc.js b/jdk/src/share/sample/scripting/scriptpad/src/resources/conc.js
index 92df812..d9a2412 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/resources/conc.js
+++ b/jdk/src/share/sample/scripting/scriptpad/src/resources/conc.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * Concurrency utilities for JavaScript. These are based on
  * java.lang and java.util.concurrent API. The following functions 
  * provide a simpler API for scripts. Instead of directly using java.lang
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/resources/gui.js b/jdk/src/share/sample/scripting/scriptpad/src/resources/gui.js
index 13e1020..cdf6949 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/resources/gui.js
+++ b/jdk/src/share/sample/scripting/scriptpad/src/resources/gui.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * Few user interface utilities. 
  */
 
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/resources/mm.js b/jdk/src/share/sample/scripting/scriptpad/src/resources/mm.js
index 1558aff..7d7cfe4 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/resources/mm.js
+++ b/jdk/src/share/sample/scripting/scriptpad/src/resources/mm.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This is a collection of utilities for Monitoring
  * and management API. 
  *
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/resources/scriptpad.js b/jdk/src/share/sample/scripting/scriptpad/src/resources/scriptpad.js
index 28c8ed5..cdc9657 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/resources/scriptpad.js
+++ b/jdk/src/share/sample/scripting/scriptpad/src/resources/scriptpad.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This script creates a simple Notepad-like interface, which 
  * serves as a simple script editor, runner.
  *
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/scripts/browse.js b/jdk/src/share/sample/scripting/scriptpad/src/scripts/browse.js
index cd03f90..3bbc457 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/scripts/browse.js
+++ b/jdk/src/share/sample/scripting/scriptpad/src/scripts/browse.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This function uses new Swing Desktop API in JDK 6.
  * To use this with scriptpad, open this in scriptpad
  * and use "Tools->Run Script" menu.
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/scripts/insertfile.js b/jdk/src/share/sample/scripting/scriptpad/src/scripts/insertfile.js
index 68d8602..c57519a 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/scripts/insertfile.js
+++ b/jdk/src/share/sample/scripting/scriptpad/src/scripts/insertfile.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This script adds "Insert File" mode menu item to "Tools" menu.
  * When selected, this menu shows a file dialog box and inserts
  * contents of the selected file into current document (at the
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/scripts/linewrap.js b/jdk/src/share/sample/scripting/scriptpad/src/scripts/linewrap.js
index 66c4c74..fcdbe8d 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/scripts/linewrap.js
+++ b/jdk/src/share/sample/scripting/scriptpad/src/scripts/linewrap.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This script adds "Line Wrap" mode menu item to "Tools" menu.
  * When selected, this menu toggles the current word wrap mode
  * of the editor.
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/scripts/mail.js b/jdk/src/share/sample/scripting/scriptpad/src/scripts/mail.js
index 2a5db2a..9f6cc54 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/scripts/mail.js
+++ b/jdk/src/share/sample/scripting/scriptpad/src/scripts/mail.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This function uses new Swing Desktop API in JDK 6.
  * To use this with scriptpad, open this in scriptpad
  * and use "Tools->Run Script" menu.
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/scripts/memmonitor.js b/jdk/src/share/sample/scripting/scriptpad/src/scripts/memmonitor.js
index 641314b..d1c286b 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/scripts/memmonitor.js
+++ b/jdk/src/share/sample/scripting/scriptpad/src/scripts/memmonitor.js
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 // this checker function runs asynchronously
 function memoryChecker(memoryBean, threshold, interval) {
     while (true) {
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/scripts/memory.js b/jdk/src/share/sample/scripting/scriptpad/src/scripts/memory.js
index 9bd1989..4bd1301 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/scripts/memory.js
+++ b/jdk/src/share/sample/scripting/scriptpad/src/scripts/memory.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This script serves as a simple "monitored application".
  * Start this script using memory.bat or memory.sh in the
  * current directory.
diff --git a/jdk/src/share/sample/scripting/scriptpad/src/scripts/textcolor.js b/jdk/src/share/sample/scripting/scriptpad/src/scripts/textcolor.js
index ae61327..ff12ba7 100644
--- a/jdk/src/share/sample/scripting/scriptpad/src/scripts/textcolor.js
+++ b/jdk/src/share/sample/scripting/scriptpad/src/scripts/textcolor.js
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  * This script adds "Selected Text Color" menu item to "Tools" menu.
  * When selected, this menu changes the "selected text" color.
  */
diff --git a/jdk/src/share/sample/vm/clr-jvm/invoked.java b/jdk/src/share/sample/vm/clr-jvm/invoked.java
index 7470715..ec619c6 100644
--- a/jdk/src/share/sample/vm/clr-jvm/invoked.java
+++ b/jdk/src/share/sample/vm/clr-jvm/invoked.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 public class invoked {
     public static void main(String args[]) {
 
diff --git a/jdk/src/share/sample/vm/clr-jvm/jinvoker.cpp b/jdk/src/share/sample/vm/clr-jvm/jinvoker.cpp
index d4a333f..5504b93 100644
--- a/jdk/src/share/sample/vm/clr-jvm/jinvoker.cpp
+++ b/jdk/src/share/sample/vm/clr-jvm/jinvoker.cpp
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include <memory.h>
 #include <stdlib.h>
 #include "jinvokerExp.h"
diff --git a/jdk/src/share/sample/vm/clr-jvm/jinvokerExp.h b/jdk/src/share/sample/vm/clr-jvm/jinvokerExp.h
index 7cd878d..7edf4da 100644
--- a/jdk/src/share/sample/vm/clr-jvm/jinvokerExp.h
+++ b/jdk/src/share/sample/vm/clr-jvm/jinvokerExp.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include <windows.h>
 #include <jni.h>
 
diff --git a/jdk/src/share/sample/vm/jvm-clr/invoker.cpp b/jdk/src/share/sample/vm/jvm-clr/invoker.cpp
index 633c579..66a4daf 100644
--- a/jdk/src/share/sample/vm/jvm-clr/invoker.cpp
+++ b/jdk/src/share/sample/vm/jvm-clr/invoker.cpp
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #define _WIN32_WINNT 0x0400
 #include "windows.h"
 #include "Oleauto.h"
diff --git a/jdk/src/share/sample/vm/jvm-clr/invoker.h b/jdk/src/share/sample/vm/jvm-clr/invoker.h
index 7005df2..768e810 100644
--- a/jdk/src/share/sample/vm/jvm-clr/invoker.h
+++ b/jdk/src/share/sample/vm/jvm-clr/invoker.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 /* DO NOT EDIT THIS FILE - it is machine generated */
 #include <jni.h>
 /* Header for class invoker */
diff --git a/jdk/src/share/sample/vm/jvm-clr/invoker.java b/jdk/src/share/sample/vm/jvm-clr/invoker.java
index a1c8309..4d8154d 100644
--- a/jdk/src/share/sample/vm/jvm-clr/invoker.java
+++ b/jdk/src/share/sample/vm/jvm-clr/invoker.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 public class invoker {
 
     static {
diff --git a/jdk/src/share/sample/vm/jvm-clr/invokerExp.h b/jdk/src/share/sample/vm/jvm-clr/invokerExp.h
index cea8c94..3565d1d 100644
--- a/jdk/src/share/sample/vm/jvm-clr/invokerExp.h
+++ b/jdk/src/share/sample/vm/jvm-clr/invokerExp.h
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #ifndef _invoker_h
 #define _invoker_h
 
diff --git a/jdk/src/solaris/classes/java/net/DefaultDatagramSocketImplFactory.java b/jdk/src/solaris/classes/java/net/DefaultDatagramSocketImplFactory.java
index 6c6bdbf..ad62c58 100644
--- a/jdk/src/solaris/classes/java/net/DefaultDatagramSocketImplFactory.java
+++ b/jdk/src/solaris/classes/java/net/DefaultDatagramSocketImplFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007,2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,7 +35,7 @@ import java.security.AccessController;
  */
 
 class DefaultDatagramSocketImplFactory {
-    static Class prefixImplClass = null;
+    static Class<?> prefixImplClass = null;
 
     static {
         String prefix = null;
diff --git a/jdk/src/solaris/classes/java/net/PlainDatagramSocketImpl.java b/jdk/src/solaris/classes/java/net/PlainDatagramSocketImpl.java
index cd00b0b..20bc6fb 100644
--- a/jdk/src/solaris/classes/java/net/PlainDatagramSocketImpl.java
+++ b/jdk/src/solaris/classes/java/net/PlainDatagramSocketImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007,2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -54,8 +54,10 @@ class PlainDatagramSocketImpl extends AbstractPlainDatagramSocketImpl
 
     protected native int getTimeToLive() throws IOException;
 
+    @Deprecated
     protected native void setTTL(byte ttl) throws IOException;
 
+    @Deprecated
     protected native byte getTTL() throws IOException;
 
     protected native void join(InetAddress inetaddr, NetworkInterface netIf)
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java b/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java
index 68cf512..56d7a14 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java
@@ -157,7 +157,7 @@ abstract public class XBaseMenuWindow extends XWindow {
             try {
                 return super.clone();
             } catch (CloneNotSupportedException ex) {
-                throw new InternalError();
+                throw new InternalError(ex);
             }
         }
 
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java
index 6f36f7a..c79fdc3 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java
@@ -131,7 +131,7 @@ public class XMenuItemPeer implements MenuItemPeer {
             try {
                 return super.clone();
             } catch (CloneNotSupportedException ex) {
-                throw new InternalError();
+                throw new InternalError(ex);
             }
         }
 
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java
index 641d821..9f29d73 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java
@@ -1532,6 +1532,10 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
     }
 
     public synchronized void addPropertyChangeListener(String name, PropertyChangeListener pcl) {
+        if (name == null) {
+            // See JavaDoc for the Toolkit.addPropertyChangeListener() method
+            return;
+        }
         initXSettingsIfNeeded(name);
         super.addPropertyChangeListener(name, pcl);
     }
diff --git a/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java b/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
index a4aae24..ffb920b 100644
--- a/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
+++ b/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
@@ -95,11 +95,11 @@ public class X11GraphicsEnvironment
                     }
 
                     // Now check for XRender system property
-                    boolean xRenderRequested = false;
+                    boolean xRenderRequested = true;
                     String xProp = System.getProperty("sun.java2d.xrender");
                         if (xProp != null) {
-                        if (xProp.equals("true") || xProp.equals("t")) {
-                            xRenderRequested = true;
+                        if (xProp.equals("false") || xProp.equals("f")) {
+                            xRenderRequested = false;
                         } else if (xProp.equals("True") || xProp.equals("T")) {
                             xRenderRequested = true;
                             xRenderVerbose = true;
diff --git a/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java b/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java
index 3695b5d..66430d4 100644
--- a/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java
+++ b/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -149,7 +149,7 @@ public class ResolverConfigurationImpl
         sl = java.security.AccessController.doPrivileged(
                  new java.security.PrivilegedAction<LinkedList<String>>() {
                     public LinkedList<String> run() {
-                        LinkedList ll;
+                        LinkedList<String> ll;
 
                         // first try search keyword (max 6 domains)
                         ll = resolvconf("search", 6, 1);
@@ -173,7 +173,7 @@ public class ResolverConfigurationImpl
 
         String localDomain = localDomain0();
         if (localDomain != null && localDomain.length() > 0) {
-            sl = new LinkedList();
+            sl = new LinkedList<String>();
             sl.add(localDomain);
             return sl;
         }
@@ -198,7 +198,7 @@ public class ResolverConfigurationImpl
         }
 
         // no local domain so try fallback (RPC) domain or
-        // hostname
+        // hostName
 
         sl = new LinkedList<>();
         String domain = fallbackDomain0();
@@ -216,22 +216,26 @@ public class ResolverConfigurationImpl
         opts = new OptionsImpl();
     }
 
+    @SuppressWarnings("unchecked")
     public List<String> searchlist() {
         synchronized (lock) {
             loadConfig();
 
             // List is mutable so return a shallow copy
-            return (List)searchlist.clone();
+            return (List<String>)searchlist.clone();
         }
     }
 
+    @SuppressWarnings("unchecked")
     public List<String> nameservers() {
         synchronized (lock) {
             loadConfig();
 
             // List is mutable so return a shallow copy
-            return (List)nameservers.clone();
-         }
+
+          return (List<String>)nameservers.clone();
+
+        }
     }
 
     public Options options() {
diff --git a/jdk/src/solaris/classes/sun/nio/ch/InheritedChannel.java b/jdk/src/solaris/classes/sun/nio/ch/InheritedChannel.java
index 4c88a8d..ae7212a 100644
--- a/jdk/src/solaris/classes/sun/nio/ch/InheritedChannel.java
+++ b/jdk/src/solaris/classes/sun/nio/ch/InheritedChannel.java
@@ -64,7 +64,7 @@ class InheritedChannel {
             dup2(devnull, 2);
         } catch (IOException ioe) {
             // this shouldn't happen
-            throw new InternalError();
+            throw new InternalError(ioe);
         }
     }
 
@@ -166,8 +166,8 @@ class InheritedChannel {
         // is implemented.
 
         Class paramTypes[] = { int.class };
-        Constructor ctr = Reflect.lookupConstructor("java.io.FileDescriptor",
-                                                    paramTypes);
+        Constructor<?> ctr = Reflect.lookupConstructor("java.io.FileDescriptor",
+                                                       paramTypes);
         Object args[] = { new Integer(fdVal) };
         FileDescriptor fd = (FileDescriptor)Reflect.invoke(ctr, args);
 
diff --git a/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java b/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java
index ec5535e..6b71a65 100644
--- a/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java
+++ b/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java
@@ -58,7 +58,10 @@ class LinuxWatchService
         try {
             ifd = inotifyInit();
         } catch (UnixException x) {
-            throw new IOException(x.errorString());
+            String msg = (x.errno() == EMFILE) ?
+                "User limit of inotify instances reached or too many open files" :
+                x.errorString();
+            throw new IOException(msg);
         }
 
         // configure inotify to be non-blocking
diff --git a/jdk/src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java b/jdk/src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java
index e2279be..632089e 100644
--- a/jdk/src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java
+++ b/jdk/src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java
@@ -304,7 +304,7 @@ public class LinuxVirtualMachine extends HotSpotVirtualMachine {
             try {
                 b = s.getBytes("UTF-8");
             } catch (java.io.UnsupportedEncodingException x) {
-                throw new InternalError();
+                throw new InternalError(x);
             }
             LinuxVirtualMachine.write(fd, b, 0, b.length);
         }
diff --git a/jdk/src/solaris/demo/jni/Poller/Client.java b/jdk/src/solaris/demo/jni/Poller/Client.java
index f2e69be..759ae62 100644
--- a/jdk/src/solaris/demo/jni/Poller/Client.java
+++ b/jdk/src/solaris/demo/jni/Poller/Client.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import  java.util.*;
 import  java.net.*;
 import  java.io.*;
diff --git a/jdk/src/solaris/demo/jni/Poller/LinkedQueue.java b/jdk/src/solaris/demo/jni/Poller/LinkedQueue.java
index 46d1586..fcebf47 100644
--- a/jdk/src/solaris/demo/jni/Poller/LinkedQueue.java
+++ b/jdk/src/solaris/demo/jni/Poller/LinkedQueue.java
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
   File: SLQ.java
   Originally: LinkedQueue.java
 
diff --git a/jdk/src/solaris/demo/jni/Poller/Poller.c b/jdk/src/solaris/demo/jni/Poller/Poller.c
index aa96db0..39a6ce4 100644
--- a/jdk/src/solaris/demo/jni/Poller/Poller.c
+++ b/jdk/src/solaris/demo/jni/Poller/Poller.c
@@ -30,6 +30,15 @@
  */
 
 /*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/*
  **********************************************************************
  * Poller.c :
  * JNI code for use with Poller.java, principally to take advantage
diff --git a/jdk/src/solaris/demo/jni/Poller/Poller.java b/jdk/src/solaris/demo/jni/Poller/Poller.java
index 71de5de..8b8d6af 100644
--- a/jdk/src/solaris/demo/jni/Poller/Poller.java
+++ b/jdk/src/solaris/demo/jni/Poller/Poller.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.lang.reflect.*;
 import java.io.*;
 import java.net.*;
diff --git a/jdk/src/solaris/demo/jni/Poller/PollingServer.java b/jdk/src/solaris/demo/jni/Poller/PollingServer.java
index 82f7f49..095f3cc 100644
--- a/jdk/src/solaris/demo/jni/Poller/PollingServer.java
+++ b/jdk/src/solaris/demo/jni/Poller/PollingServer.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.net.*;
 import java.lang.Byte;
diff --git a/jdk/src/solaris/demo/jni/Poller/SimpleServer.java b/jdk/src/solaris/demo/jni/Poller/SimpleServer.java
index 5b59565..4658a2f 100644
--- a/jdk/src/solaris/demo/jni/Poller/SimpleServer.java
+++ b/jdk/src/solaris/demo/jni/Poller/SimpleServer.java
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 import java.io.*;
 import java.net.*;
 import java.lang.Byte;
diff --git a/jdk/src/solaris/demo/jvmti/hprof/hprof_md.c b/jdk/src/solaris/demo/jvmti/hprof/hprof_md.c
index 5a1b67c..d3b8484 100644
--- a/jdk/src/solaris/demo/jvmti/hprof/hprof_md.c
+++ b/jdk/src/solaris/demo/jvmti/hprof/hprof_md.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
diff --git a/jdk/src/solaris/lib/content-types.properties b/jdk/src/solaris/lib/content-types.properties
index 2126b01..559de96 100644
--- a/jdk/src/solaris/lib/content-types.properties
+++ b/jdk/src/solaris/lib/content-types.properties
@@ -225,6 +225,10 @@ image/png: \
 	icon=png;\
 	action=browser
 
+image/bmp: \
+	description=Bitmap Image;\
+	file_extensions=.bmp;
+
 text/html: \
 	description=HTML Document;\
 	file_extensions=.htm,.html;\
diff --git a/jdk/src/solaris/native/java/net/NetworkInterface.c b/jdk/src/solaris/native/java/net/NetworkInterface.c
index 0f987ff..e4f8965 100644
--- a/jdk/src/solaris/native/java/net/NetworkInterface.c
+++ b/jdk/src/solaris/native/java/net/NetworkInterface.c
@@ -139,8 +139,12 @@ static int     getMTU(JNIEnv *env, int sock, const char *ifname);
 #ifdef __solaris__
 static netif *enumIPvXInterfaces(JNIEnv *env, int sock, netif *ifs, int family);
 static int    getMacFromDevice(JNIEnv *env, const char* ifname, unsigned char* retbuf);
+
+#ifndef SIOCGLIFHWADDR
+#define SIOCGLIFHWADDR  _IOWR('i', 192, struct lifreq)
 #endif
 
+#endif
 
 /******************* Java entry points *****************************/
 
@@ -1567,6 +1571,20 @@ static int getMacAddress(JNIEnv *env, int sock, const char *ifname,  const struc
     struct sockaddr_in* sin;
     struct sockaddr_in ipAddr;
     int len, i;
+    struct lifreq lif;
+
+    /* First, try the new (S11) SIOCGLIFHWADDR ioctl(). If that fails
+     * try the old way.
+     */
+    memset(&lif, 0, sizeof(lif));
+    strlcpy(lif.lifr_name, ifname, sizeof(lif.lifr_name));
+
+    if (ioctl(sock, SIOCGLIFHWADDR, &lif) != -1) {
+        struct sockaddr_dl *sp;
+        sp = (struct sockaddr_dl *)&lif.lifr_addr;
+        memcpy(buf, &sp->sdl_data[0], sp->sdl_alen);
+        return sp->sdl_alen;
+    }
 
    /**
     * On Solaris we have to use DLPI, but it will only work if we have
@@ -1576,34 +1594,29 @@ static int getMacAddress(JNIEnv *env, int sock, const char *ifname,  const struc
     if ((len = getMacFromDevice(env, ifname, buf))  == 0) {
         /*DLPI failed - trying to do arp lookup*/
 
-       if (addr == NULL) {
-          /**
-           * No IPv4 address for that interface, so can't do an ARP lookup.
-           */
-           return -1;
-      }
+        if (addr == NULL) {
+            /**
+             * No IPv4 address for that interface, so can't do an ARP lookup.
+             */
+             return -1;
+         }
 
-      len = 6; //???
-
-      sin = (struct sockaddr_in *) &arpreq.arp_pa;
-      memset((char *) &arpreq, 0, sizeof(struct arpreq));
-      ipAddr.sin_port = 0;
-      ipAddr.sin_family = AF_INET;
-      memcpy(&ipAddr.sin_addr, addr, sizeof(struct in_addr));
-      memcpy(&arpreq.arp_pa, &ipAddr, sizeof(struct sockaddr_in));
-      arpreq.arp_flags= ATF_PUBL;
-
-      if (ioctl(sock, SIOCGARP, &arpreq) < 0) {
-          if (errno != ENXIO) {
-              // "No such device or address" means no hardware address, so it's
-              // normal don't throw an exception
-              NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", "IOCTL failed");
-              return -1;
-          }
-     }
+         len = 6; //???
 
-     memcpy(buf, &arpreq.arp_ha.sa_data[0], len );
-  }
+         sin = (struct sockaddr_in *) &arpreq.arp_pa;
+         memset((char *) &arpreq, 0, sizeof(struct arpreq));
+         ipAddr.sin_port = 0;
+         ipAddr.sin_family = AF_INET;
+         memcpy(&ipAddr.sin_addr, addr, sizeof(struct in_addr));
+         memcpy(&arpreq.arp_pa, &ipAddr, sizeof(struct sockaddr_in));
+         arpreq.arp_flags= ATF_PUBL;
+
+         if (ioctl(sock, SIOCGARP, &arpreq) < 0) {
+             return -1;
+         }
+
+         memcpy(buf, &arpreq.arp_ha.sa_data[0], len );
+    }
 
     /*
      * All bytes to 0 means no hardware address.
diff --git a/jdk/src/solaris/native/sun/awt/fontpath.c b/jdk/src/solaris/native/sun/awt/fontpath.c
index 98d6f14..db6f8fa 100644
--- a/jdk/src/solaris/native/sun/awt/fontpath.c
+++ b/jdk/src/solaris/native/sun/awt/fontpath.c
@@ -1191,8 +1191,16 @@ Java_sun_font_FontConfigManager_getFontConfig
 
             fontformat = NULL;
             (*FcPatternGetString)(fontPattern, FC_FONTFORMAT, 0, &fontformat);
-            if (fontformat != NULL && strcmp((char*)fontformat, "TrueType")
-                != 0) {
+            /* We only want TrueType fonts but some Linuxes still depend
+             * on Type 1 fonts for some Locale support, so we'll allow
+             * them there.
+             */
+            if (fontformat != NULL
+                && (strcmp((char*)fontformat, "TrueType") != 0)
+#ifdef __linux__
+                && (strcmp((char*)fontformat, "Type 1") != 0)
+#endif
+             ) {
                 continue;
             }
             result = (*FcPatternGetCharSet)(fontPattern,
diff --git a/jdk/src/solaris/native/sun/nio/fs/genUnixConstants.c b/jdk/src/solaris/native/sun/nio/fs/genUnixConstants.c
index f826706..ea48d4d 100644
--- a/jdk/src/solaris/native/sun/nio/fs/genUnixConstants.c
+++ b/jdk/src/solaris/native/sun/nio/fs/genUnixConstants.c
@@ -108,6 +108,7 @@ int main(int argc, const char* argv[]) {
     DEF(EROFS);
     DEF(ENODATA);
     DEF(ERANGE);
+    DEF(EMFILE);
 
     // flags used with openat/unlinkat/etc.
 #if defined(AT_SYMLINK_NOFOLLOW) && defined(AT_REMOVEDIR)
diff --git a/jdk/src/windows/classes/java/net/DefaultDatagramSocketImplFactory.java b/jdk/src/windows/classes/java/net/DefaultDatagramSocketImplFactory.java
index c8605c8..43ce6f2 100644
--- a/jdk/src/windows/classes/java/net/DefaultDatagramSocketImplFactory.java
+++ b/jdk/src/windows/classes/java/net/DefaultDatagramSocketImplFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,7 +45,7 @@ import java.security.PrivilegedAction;
 
 class DefaultDatagramSocketImplFactory
 {
-    static Class prefixImplClass = null;
+    static Class<?> prefixImplClass = null;
 
     /* the windows version. */
     private static float version;
diff --git a/jdk/src/windows/classes/java/net/DualStackPlainDatagramSocketImpl.java b/jdk/src/windows/classes/java/net/DualStackPlainDatagramSocketImpl.java
index 7533dea..57a12a8 100644
--- a/jdk/src/windows/classes/java/net/DualStackPlainDatagramSocketImpl.java
+++ b/jdk/src/windows/classes/java/net/DualStackPlainDatagramSocketImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007,2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 package java.net;
 
 import java.io.IOException;
-import java.io.FileDescriptor;
 import sun.misc.SharedSecrets;
 import sun.misc.JavaIOFileDescriptorAccess;
 
@@ -215,11 +214,12 @@ class DualStackPlainDatagramSocketImpl extends AbstractPlainDatagramSocketImpl
         throw new IOException("Method not implemented!");
     }
 
-
+    @Deprecated
     protected void setTTL(byte ttl) throws IOException {
         throw new IOException("Method not implemented!");
     }
 
+    @Deprecated
     protected byte getTTL() throws IOException {
         throw new IOException("Method not implemented!");
     }
diff --git a/jdk/src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java b/jdk/src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java
index d8e4ec5..ebd5e52 100644
--- a/jdk/src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java
+++ b/jdk/src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java
@@ -68,7 +68,12 @@ class TwoStacksPlainDatagramSocketImpl extends AbstractPlainDatagramSocketImpl
 
     protected synchronized void create() throws SocketException {
         fd1 = new FileDescriptor();
-        super.create();
+        try {
+            super.create();
+        } catch (IOException e) {
+            fd1 = null;
+            throw e;
+        }
     }
 
     protected synchronized void bind(int lport, InetAddress laddr)
@@ -133,8 +138,10 @@ class TwoStacksPlainDatagramSocketImpl extends AbstractPlainDatagramSocketImpl
 
     protected native int getTimeToLive() throws IOException;
 
+    @Deprecated
     protected native void setTTL(byte ttl) throws IOException;
 
+    @Deprecated
     protected native byte getTTL() throws IOException;
 
     protected native void join(InetAddress inetaddr, NetworkInterface netIf)
diff --git a/jdk/src/windows/classes/sun/awt/windows/WToolkit.java b/jdk/src/windows/classes/sun/awt/windows/WToolkit.java
index 57f889e..26b234f 100644
--- a/jdk/src/windows/classes/sun/awt/windows/WToolkit.java
+++ b/jdk/src/windows/classes/sun/awt/windows/WToolkit.java
@@ -879,6 +879,10 @@ public class WToolkit extends SunToolkit implements Runnable {
     }
 
     public synchronized void addPropertyChangeListener(String name, PropertyChangeListener pcl) {
+        if (name == null) {
+            // See JavaDoc for the Toolkit.addPropertyChangeListener() method
+            return;
+        }
         if ( WDesktopProperties.isWindowsProperty(name)
              || name.startsWith(awtPrefix)
              || name.startsWith(dndPrefix))
diff --git a/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java b/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java
index 7970885..eb7405d 100644
--- a/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java
+++ b/jdk/src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java
@@ -57,8 +57,8 @@ public class ResolverConfigurationImpl
     private static String os_nameservers;
 
     // Cached lists
-    private static LinkedList searchlist;
-    private static LinkedList nameservers;
+    private static LinkedList<String> searchlist;
+    private static LinkedList<String> nameservers;
 
     // Parse string that consists of token delimited by space or commas
     // and return LinkedHashMap
@@ -111,21 +111,23 @@ public class ResolverConfigurationImpl
         opts = new OptionsImpl();
     }
 
+    @SuppressWarnings("unchecked") // clone()
     public List<String> searchlist() {
         synchronized (lock) {
             loadConfig();
 
             // List is mutable so return a shallow copy
-            return (List)searchlist.clone();
+            return (List<String>)searchlist.clone();
         }
     }
 
+    @SuppressWarnings("unchecked") // clone()
     public List<String> nameservers() {
         synchronized (lock) {
             loadConfig();
 
             // List is mutable so return a shallow copy
-            return (List)nameservers.clone();
+            return (List<String>)nameservers.clone();
          }
     }
 
diff --git a/jdk/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java b/jdk/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java
index c04bef8..80bd9d1 100644
--- a/jdk/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java
+++ b/jdk/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -148,7 +148,7 @@ class JarFileFactory implements URLJarFile.URLJarFileCloseController {
 
     private Permission getPermission(JarFile jarFile) {
         try {
-            URLConnection uc = (URLConnection)getConnection(jarFile);
+            URLConnection uc = getConnection(jarFile);
             if (uc != null)
                 return uc.getPermission();
         } catch (IOException ioe) {
diff --git a/jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java b/jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java
index 126342a..b85271e 100644
--- a/jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java
+++ b/jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java
@@ -55,9 +55,7 @@ public class WindowsAsynchronousFileChannelImpl
             try {
                 return new Iocp(null, ThreadPool.createDefault()).start();
             } catch (IOException ioe) {
-                InternalError e = new InternalError();
-                e.initCause(ioe);
-                throw e;
+                throw new InternalError(ioe);
             }
         }
     }
diff --git a/jdk/src/windows/classes/sun/security/mscapi/KeyStore.java b/jdk/src/windows/classes/sun/security/mscapi/KeyStore.java
index 55ac616..05db5db 100644
--- a/jdk/src/windows/classes/sun/security/mscapi/KeyStore.java
+++ b/jdk/src/windows/classes/sun/security/mscapi/KeyStore.java
@@ -29,7 +29,6 @@ import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.math.BigInteger;
 import java.security.AccessController;
 import java.security.InvalidKeyException;
 import java.security.KeyStoreSpi;
@@ -40,7 +39,6 @@ import java.security.SecurityPermission;
 import java.security.cert.X509Certificate;
 import java.security.cert.Certificate;
 import java.security.cert.CertificateException;
-import java.security.cert.CertificateEncodingException;
 import java.security.cert.CertificateFactory;
 import java.security.interfaces.RSAPrivateCrtKey;
 import java.util.ArrayList;
@@ -564,20 +562,20 @@ abstract class KeyStore extends KeyStoreSpi {
      *
      * @return enumeration of the alias names
      */
-    public Enumeration engineAliases() {
+    public Enumeration<String> engineAliases() {
 
-        final Iterator iter = entries.iterator();
+        final Iterator<KeyEntry> iter = entries.iterator();
 
-        return new Enumeration()
+        return new Enumeration<String>()
         {
             public boolean hasMoreElements()
             {
                 return iter.hasNext();
             }
 
-            public Object nextElement()
+            public String nextElement()
             {
-                KeyEntry entry = (KeyEntry) iter.next();
+                KeyEntry entry = iter.next();
                 return entry.getAlias();
             }
         };
@@ -591,10 +589,10 @@ abstract class KeyStore extends KeyStoreSpi {
      * @return true if the alias exists, false otherwise
      */
     public boolean engineContainsAlias(String alias) {
-        for (Enumeration enumerator = engineAliases();
+        for (Enumeration<String> enumerator = engineAliases();
             enumerator.hasMoreElements();)
         {
-            String a = (String) enumerator.nextElement();
+            String a = enumerator.nextElement();
 
             if (a.equals(alias))
                 return true;
@@ -774,7 +772,8 @@ abstract class KeyStore extends KeyStoreSpi {
      * certificates and stores the result into a key entry.
      */
     private void generateCertificateChain(String alias,
-        Collection certCollection, Collection<KeyEntry> entries)
+        Collection<? extends Certificate> certCollection,
+        Collection<KeyEntry> entries)
     {
         try
         {
@@ -782,7 +781,8 @@ abstract class KeyStore extends KeyStoreSpi {
                 new X509Certificate[certCollection.size()];
 
             int i = 0;
-            for (Iterator iter=certCollection.iterator(); iter.hasNext(); i++)
+            for (Iterator<? extends Certificate> iter =
+                    certCollection.iterator(); iter.hasNext(); i++)
             {
                 certChain[i] = (X509Certificate) iter.next();
             }
@@ -805,7 +805,8 @@ abstract class KeyStore extends KeyStoreSpi {
      */
     private void generateRSAKeyAndCertificateChain(String alias,
         long hCryptProv, long hCryptKey, int keyLength,
-        Collection certCollection, Collection<KeyEntry> entries)
+        Collection<? extends Certificate> certCollection,
+        Collection<KeyEntry> entries)
     {
         try
         {
@@ -813,7 +814,8 @@ abstract class KeyStore extends KeyStoreSpi {
                 new X509Certificate[certCollection.size()];
 
             int i = 0;
-            for (Iterator iter=certCollection.iterator(); iter.hasNext(); i++)
+            for (Iterator<? extends Certificate> iter =
+                    certCollection.iterator(); iter.hasNext(); i++)
             {
                 certChain[i] = (X509Certificate) iter.next();
             }
@@ -837,8 +839,8 @@ abstract class KeyStore extends KeyStoreSpi {
      * @param data Byte data.
      * @param certCollection Collection of certificates.
      */
-    private void generateCertificate(byte[] data, Collection certCollection)
-    {
+    private void generateCertificate(byte[] data,
+        Collection<Certificate> certCollection) {
         try
         {
             ByteArrayInputStream bis = new ByteArrayInputStream(data);
@@ -849,7 +851,8 @@ abstract class KeyStore extends KeyStoreSpi {
             }
 
             // Generate certificate
-            Collection c = certificateFactory.generateCertificates(bis);
+            Collection<? extends Certificate> c =
+                    certificateFactory.generateCertificates(bis);
             certCollection.addAll(c);
         }
         catch (CertificateException e)
diff --git a/jdk/src/windows/classes/sun/security/mscapi/PRNG.java b/jdk/src/windows/classes/sun/security/mscapi/PRNG.java
index 94c9f26..d559e8a 100644
--- a/jdk/src/windows/classes/sun/security/mscapi/PRNG.java
+++ b/jdk/src/windows/classes/sun/security/mscapi/PRNG.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,8 +37,7 @@ import java.security.SecureRandomSpi;
 public final class PRNG extends SecureRandomSpi
     implements java.io.Serializable {
 
-    // TODO - generate the serialVersionUID
-    //private static final long serialVersionUID = XXX;
+    private static final long serialVersionUID = 4129268715132691532L;
 
     /*
      * The CryptGenRandom function fills a buffer with cryptographically random
diff --git a/jdk/src/windows/classes/sun/security/mscapi/RSAPrivateKey.java b/jdk/src/windows/classes/sun/security/mscapi/RSAPrivateKey.java
index d041be8..bc530f5 100644
--- a/jdk/src/windows/classes/sun/security/mscapi/RSAPrivateKey.java
+++ b/jdk/src/windows/classes/sun/security/mscapi/RSAPrivateKey.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,8 @@ import java.security.PrivateKey;
  */
 class RSAPrivateKey extends Key implements PrivateKey
 {
+    private static final long serialVersionUID = 8113152807912338063L;
+
     /**
      * Construct an RSAPrivateKey object.
      */
diff --git a/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java b/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java
index 68148b0..a62d783 100644
--- a/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java
+++ b/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java
@@ -26,11 +26,9 @@
 package sun.security.mscapi;
 
 import java.math.BigInteger;
-import java.security.InvalidKeyException;
 import java.security.KeyException;
 import java.security.KeyRep;
 import java.security.ProviderException;
-import java.security.PublicKey;
 
 import sun.security.rsa.RSAPublicKeyImpl;
 
@@ -41,6 +39,8 @@ import sun.security.rsa.RSAPublicKeyImpl;
  */
 class RSAPublicKey extends Key implements java.security.interfaces.RSAPublicKey
 {
+    private static final long serialVersionUID = -2289561342425825391L;
+
     private byte[] publicKeyBlob = null;
     private byte[] encoding = null;
     private BigInteger modulus = null;
diff --git a/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java b/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java
index f9419f9..3154173 100644
--- a/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java
+++ b/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java
@@ -30,14 +30,10 @@ import java.security.PublicKey;
 import java.security.PrivateKey;
 import java.security.InvalidKeyException;
 import java.security.InvalidParameterException;
-import java.security.InvalidAlgorithmParameterException;
 import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
 import java.security.ProviderException;
 import java.security.MessageDigest;
-import java.security.SecureRandom;
-import java.security.Signature;
-import java.security.SignatureSpi;
 import java.security.SignatureException;
 import java.math.BigInteger;
 
@@ -474,6 +470,7 @@ abstract class RSASignature extends java.security.SignatureSpi
      * #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
      * engineSetParameter}.
      */
+    @Deprecated
     protected void engineSetParameter(String param, Object value)
         throws InvalidParameterException
     {
@@ -503,6 +500,7 @@ abstract class RSASignature extends java.security.SignatureSpi
      *
      * @deprecated
      */
+    @Deprecated
     protected Object engineGetParameter(String param)
         throws InvalidParameterException
     {
diff --git a/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java b/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java
index db8b317..f7df7ce 100644
--- a/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java
+++ b/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java
@@ -28,7 +28,6 @@ package sun.security.mscapi;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.security.Provider;
-import java.security.ProviderException;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -62,8 +61,9 @@ public final class SunMSCAPI extends Provider {
         // if there is no security manager installed, put directly into
         // the provider. Otherwise, create a temporary map and use a
         // doPrivileged() call at the end to transfer the contents
-        final Map map = (System.getSecurityManager() == null)
-                        ? (Map)this : new HashMap();
+        final Map<Object, Object> map =
+                (System.getSecurityManager() == null)
+                ? this : new HashMap<Object, Object>();
 
         /*
          * Secure random
diff --git a/jdk/src/windows/demo/jvmti/hprof/hprof_md.c b/jdk/src/windows/demo/jvmti/hprof/hprof_md.c
index 073a946..2f3ba24 100644
--- a/jdk/src/windows/demo/jvmti/hprof/hprof_md.c
+++ b/jdk/src/windows/demo/jvmti/hprof/hprof_md.c
@@ -29,6 +29,15 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
 // To ensure winsock2.h is used, it has to be included ahead of
 // windows.h, which includes winsock.h by default.
 #include <winsock2.h>
diff --git a/jdk/src/windows/lib/content-types.properties b/jdk/src/windows/lib/content-types.properties
index 1cbfcbd..8949352 100644
--- a/jdk/src/windows/lib/content-types.properties
+++ b/jdk/src/windows/lib/content-types.properties
@@ -222,6 +222,10 @@ image/png: \
 	icon=png;\
 	action=browser
 
+image/bmp: \
+	description=Bitmap Image;\
+	file_extensions=.bmp;
+
 text/html: \
 	description=HTML Document;\
 	file_extensions=.htm,.html;\
diff --git a/jdk/src/windows/native/com/sun/security/auth/module/nt.c b/jdk/src/windows/native/com/sun/security/auth/module/nt.c
index 5a57f97..64ef356 100644
--- a/jdk/src/windows/native/com/sun/security/auth/module/nt.c
+++ b/jdk/src/windows/native/com/sun/security/auth/module/nt.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,6 +43,19 @@ BOOL getImpersonationToken(PHANDLE impersonationToken);
 BOOL getTextualSid(PSID pSid, LPTSTR TextualSid, LPDWORD lpdwBufferLen);
 void DisplayErrorText(DWORD dwLastError);
 
+JNIEXPORT jlong JNICALL
+Java_com_sun_security_auth_module_NTSystem_getImpersonationToken0
+        (JNIEnv *env, jobject obj) {
+    HANDLE impersonationToken = 0;      // impersonation token
+    if (debug) {
+        printf("getting impersonation token\n");
+    }
+    if (getImpersonationToken(&impersonationToken) == FALSE) {
+        return 0;
+    }
+    return (jlong)impersonationToken;
+}
+
 JNIEXPORT void JNICALL
 Java_com_sun_security_auth_module_NTSystem_getCurrent
     (JNIEnv *env, jobject obj, jboolean debugNative) {
@@ -59,7 +72,6 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
     DWORD numGroups = 0;                // num groups
     LPTSTR *groups = NULL;              // groups array
     long pIndex = -1;                   // index of primaryGroup in groups array
-    HANDLE impersonationToken = 0;      // impersonation token
 
     jfieldID fid;
     jstring jstr;
@@ -100,13 +112,6 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
         return;
     }
 
-    if (debug) {
-        printf("getting impersonation token\n");
-    }
-    if (getImpersonationToken(&impersonationToken) == FALSE) {
-        return;
-    }
-
     // then set values into NTSystem
 
     fid = (*env)->GetFieldID(env, cls, "userName", "Ljava/lang/String;");
@@ -233,18 +238,6 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
         (*env)->SetObjectField(env, obj, fid, jgroups);
     }
 
-    fid = (*env)->GetFieldID(env, cls, "impersonationToken", "J");
-    if (fid == 0) {
-        jclass newExcCls =
-            (*env)->FindClass(env, "java/lang/IllegalArgumentException");
-        if (newExcCls == 0) {
-            systemError = TRUE;
-            goto out;
-        }
-        (*env)->ThrowNew(env, newExcCls, "invalid field: impersonationToken");
-    }
-    (*env)->SetLongField(env, obj, fid, (jlong)impersonationToken);
-
 out:
     if (userName != NULL) {
         HeapFree(GetProcessHeap(), 0, userName);
@@ -269,6 +262,7 @@ out:
         }
         HeapFree(GetProcessHeap(), 0, groups);
     }
+    CloseHandle(tokenHandle);
 
     if (systemError && debug) {
         printf("  [getCurrent] System Error: ");
@@ -592,6 +586,7 @@ BOOL getImpersonationToken(PHANDLE impersonationToken) {
         }
         return FALSE;
     }
+    CloseHandle(dupToken);
 
     if (debug) {
         printf("  [getImpersonationToken] token = %d\n", *impersonationToken);
@@ -802,6 +797,8 @@ void main(int argc, char *argv[]) {
         }
         HeapFree(GetProcessHeap(), 0, groups);
     }
+    CloseHandle(impersonationToken);
+    CloseHandle(tokenHandle);
 }
 */
 
diff --git a/jdk/src/windows/native/java/lang/java_props_md.c b/jdk/src/windows/native/java/lang/java_props_md.c
index c66efba..e27d1ea 100644
--- a/jdk/src/windows/native/java/lang/java_props_md.c
+++ b/jdk/src/windows/native/java/lang/java_props_md.c
@@ -563,6 +563,18 @@ GetJavaProperties(JNIEnv* env)
         {
             char * display_encoding;
 
+            // Windows UI Language selection list only cares "language"
+            // information of the UI Language. For example, the list
+            // just lists "English" but it actually means "en_US", and
+            // the user cannot select "en_GB" (if exists) in the list.
+            // So, this hack is to use the user LCID region information
+            // for the UI Language, if the "language" portion of those
+            // two locales are the same.
+            if (PRIMARYLANGID(LANGIDFROMLCID(userDefaultLCID)) ==
+                PRIMARYLANGID(LANGIDFROMLCID(userDefaultUILang))) {
+                userDefaultUILang = userDefaultLCID;
+            }
+
             SetupI18nProps(userDefaultUILang,
                            &sprops.language,
                            &sprops.script,
diff --git a/jdk/src/windows/native/java/net/NetworkInterface.c b/jdk/src/windows/native/java/net/NetworkInterface.c
index fa5dfc1..d6b0488 100644
--- a/jdk/src/windows/native/java/net/NetworkInterface.c
+++ b/jdk/src/windows/native/java/net/NetworkInterface.c
@@ -504,8 +504,7 @@ jobject createNetworkInterface
      */
     if (netaddrCount < 0) {
         netaddrCount = enumAddresses_win(env, ifs, &netaddrP);
-        if ((*env)->ExceptionOccurred(env)) {
-            free_netaddr(netaddrP);
+        if (netaddrCount == -1) {
             return NULL;
         }
     }
diff --git a/jdk/src/windows/native/java/net/NetworkInterface_winXP.c b/jdk/src/windows/native/java/net/NetworkInterface_winXP.c
index ecfab49..9b624cd 100644
--- a/jdk/src/windows/native/java/net/NetworkInterface_winXP.c
+++ b/jdk/src/windows/native/java/net/NetworkInterface_winXP.c
@@ -194,8 +194,7 @@ int getAllInterfacesAndAddresses (JNIEnv *env, netif **netifPP)
     while (curr != NULL) {
         netaddr *netaddrP;
         ret = enumAddresses_win(env, curr, &netaddrP);
-        if ((*env)->ExceptionOccurred(env)) {
-            free_netaddr(netaddrP);
+        if (ret == -1) {
             return -1;
         }
         curr->addrs = netaddrP;
@@ -449,8 +448,7 @@ static jobject createNetworkInterfaceXP(JNIEnv *env, netif *ifs)
      */
     if (netaddrCount < 0) {
         netaddrCount = enumAddresses_win(env, ifs, &netaddrP);
-        if ((*env)->ExceptionOccurred(env)) {
-            free_netaddr(netaddrP);
+        if (netaddrCount == -1) {
             return NULL;
         }
     }
diff --git a/jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c b/jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c
index 9c1ffee..4071b3f 100644
--- a/jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c
+++ b/jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c
@@ -576,6 +576,7 @@ Java_java_net_TwoStacksPlainSocketImpl_socketAccept(JNIEnv *env, jobject this,
 {
     /* fields on this */
     jint port;
+    jint scope;
     jint timeout = (*env)->GetIntField(env, this, psi_timeoutID);
     jobject fdObj = (*env)->GetObjectField(env, this, psi_fdID);
     jobject fd1Obj = (*env)->GetObjectField(env, this, psi_fd1ID);
@@ -755,7 +756,11 @@ Java_java_net_TwoStacksPlainSocketImpl_socketAccept(JNIEnv *env, jobject this,
         addr = (*env)->GetObjectField (env, socketAddressObj, ia6_ipaddressID);
         (*env)->SetByteArrayRegion (env, addr, 0, 16, (const char *)&him.him6.sin6_addr);
         (*env)->SetIntField(env, socketAddressObj, ia_familyID, IPv6);
-        (*env)->SetIntField(env, socketAddressObj, ia6_scopeidID, him.him6.sin6_scope_id);
+        scope = him.him6.sin6_scope_id;
+        (*env)->SetIntField(env, socketAddressObj, ia6_scopeidID, scope);
+        if(scope>0) {
+            (*env)->SetBooleanField(env, socketAddressObj, ia6_scopeidsetID, JNI_TRUE);
+        }
     }
     /* fields common to AF_INET and AF_INET6 */
 
diff --git a/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp b/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp
index a29a1ba..abd6e12 100644
--- a/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp
+++ b/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp
@@ -153,6 +153,11 @@ FileDialogHookProc(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)
             break;
         }
         case WM_DESTROY: {
+            HIMC hIMC = ::ImmGetContext(hdlg);
+            if (hIMC != NULL) {
+                ::ImmNotifyIME(hIMC, NI_COMPOSITIONSTR, CPS_CANCEL, 0);
+            }
+
             WNDPROC lpfnWndProc = (WNDPROC)(::GetProp(parent, NativeDialogWndProcProp));
             ComCtl32Util::GetInstance().UnsubclassHWND(parent,
                                                        FileDialogWndProc,
diff --git a/jdk/test/Makefile b/jdk/test/Makefile
index 7431d49..e685455 100644
--- a/jdk/test/Makefile
+++ b/jdk/test/Makefile
@@ -353,7 +353,7 @@ clean:
 
 # Expect JT_HOME to be set for jtreg tests. (home for jtreg)
 ifndef JT_HOME
-  JT_HOME = $(SLASH_JAVA)/re/jtreg/4.0/promoted/latest/binaries/jtreg
+  JT_HOME = $(SLASH_JAVA)/re/jtreg/4.1/promoted/latest/binaries/jtreg
   ifdef JPRT_JTREG_HOME
     JT_HOME = $(JPRT_JTREG_HOME)
   endif
@@ -364,19 +364,23 @@ ifndef TESTDIRS
   TESTDIRS = demo
 endif
 
-# Samevm settings (default is false)
-ifndef USE_JTREG_SAMEVM
-  USE_JTREG_SAMEVM=false
+# Agentvm settings (default is false)
+ifndef USE_JTREG_AGENTVM
+  USE_JTREG_AGENTVM=false
 endif
-# With samevm, you cannot use -javaoptions?
-ifeq ($(USE_JTREG_SAMEVM),true)
-  JTREG_SAMEVM_OPTION = -samevm
-  EXTRA_JTREG_OPTIONS += $(JTREG_SAMEVM_OPTION) $(JAVA_ARGS) $(JAVA_ARGS:%=-vmoption:%)
+# With agentvm, you cannot use -javaoptions?
+ifeq ($(USE_JTREG_AGENTVM),true)
+  JTREG_AGENTVM_OPTION = -agentvm
+  EXTRA_JTREG_OPTIONS += $(JTREG_AGENTVM_OPTION) $(JAVA_ARGS) $(JAVA_ARGS:%=-vmoption:%)
   JTREG_TEST_OPTIONS = $(JAVA_VM_ARGS:%=-vmoption:%)
 else
   JTREG_TEST_OPTIONS = $(JAVA_ARGS:%=-javaoptions:%) $(JAVA_VM_ARGS:%=-vmoption:%)
 endif
 
+ifdef CONCURRENCY
+  EXTRA_JTREG_OPTIONS += -concurrency:$(CONCURRENCY)
+endif
+
 # exclude modules test when testing legacy image
 ifeq ($(MODULE_BUILD),false)
   JTREG_TEST_OPTIONS += -k:\!modules
@@ -423,14 +427,14 @@ endif
 define TestDirs
 $(foreach i,$1,$(wildcard ${i})) $(foreach i,$1,$(wildcard closed/${i}))
 endef
-# Running batches of tests with or without samevm
-define RunSamevmBatch
-$(ECHO) "Running tests in samevm mode: $?"
-$(MAKE) TEST_DEPENDENCIES="$?" TESTDIRS="$?" USE_JTREG_SAMEVM=true  UNIQUE_DIR=$@ jtreg_tests
+# Running batches of tests with or without agentvm
+define RunAgentvmBatch
+$(ECHO) "Running tests in agentvm mode: $?"
+$(MAKE) TEST_DEPENDENCIES="$?" TESTDIRS="$?" USE_JTREG_AGENTVM=true  UNIQUE_DIR=$@ jtreg_tests
 endef
 define RunOthervmBatch
 $(ECHO) "Running tests in othervm mode: $?"
-$(MAKE) TEST_DEPENDENCIES="$?" TESTDIRS="$?" USE_JTREG_SAMEVM=false UNIQUE_DIR=$@ jtreg_tests
+$(MAKE) TEST_DEPENDENCIES="$?" TESTDIRS="$?" USE_JTREG_AGENTVM=false UNIQUE_DIR=$@ jtreg_tests
 endef
 define SummaryInfo
 $(ECHO) "########################################################"
@@ -444,21 +448,22 @@ endef
 JDK_ALL_TARGETS =
 
 # Stable othervm testruns (minus items from PROBLEM_LIST)
-#   Using samevm has problems, and doesn't help performance as much as others.
+#   Using agentvm has problems, and doesn't help performance as much as others.
 JDK_ALL_TARGETS += jdk_awt
-jdk_awt: $(call TestDirs, com/sun/awt java/awt sun/awt)
+jdk_awt: $(call TestDirs, com/sun/awt java/awt sun/awt \
+         javax/imageio javax/print sun/pisces)
 	$(call RunOthervmBatch)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_beans1
 jdk_beans1: $(call TestDirs, \
             java/beans/beancontext java/beans/PropertyChangeSupport \
             java/beans/Introspector java/beans/Performance \
             java/beans/VetoableChangeSupport java/beans/Statement)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
 # Stable othervm testruns (minus items from PROBLEM_LIST)
-#   Using samevm has serious problems with these tests
+#   Using agentvm has serious problems with these tests
 JDK_ALL_TARGETS += jdk_beans2
 jdk_beans2: $(call TestDirs, \
             java/beans/Beans java/beans/EventHandler java/beans/XMLDecoder \
@@ -466,7 +471,7 @@ jdk_beans2: $(call TestDirs, \
 	$(call RunOthervmBatch)
 
 # Stable othervm testruns (minus items from PROBLEM_LIST)
-#   Using samevm has serious problems with these tests
+#   Using agentvm has serious problems with these tests
 JDK_ALL_TARGETS += jdk_beans3
 jdk_beans3: $(call TestDirs, java/beans/XMLEncoder)
 	$(call RunOthervmBatch)
@@ -475,24 +480,24 @@ jdk_beans3: $(call TestDirs, java/beans/XMLEncoder)
 jdk_beans: jdk_beans1 jdk_beans2 jdk_beans3
 	@$(SummaryInfo)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_io
 jdk_io: $(call TestDirs, java/io)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_lang
 jdk_lang: $(call TestDirs, java/lang)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
 # Stable othervm testruns (minus items from PROBLEM_LIST)
-#   Using samevm has serious problems with these tests
+#   Using agentvm has serious problems with these tests
 JDK_ALL_TARGETS += jdk_management1
 jdk_management1: $(call TestDirs, javax/management)
 	$(call RunOthervmBatch)
 
 # Stable othervm testruns (minus items from PROBLEM_LIST)
-#   Using samevm has serious problems with these tests
+#   Using agentvm has serious problems with these tests
 JDK_ALL_TARGETS += jdk_management2
 jdk_management2: $(call TestDirs, com/sun/jmx com/sun/management sun/management)
 	$(call RunOthervmBatch)
@@ -501,111 +506,114 @@ jdk_management2: $(call TestDirs, com/sun/jmx com/sun/management sun/management)
 jdk_management: jdk_management1 jdk_management2
 	@$(SummaryInfo)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_math
 jdk_math: $(call TestDirs, java/math)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_misc
 jdk_misc: $(call TestDirs, \
-          demo javax/imageio javax/naming javax/print javax/script \
-          javax/smartcardio javax/sound com/sun/java com/sun/jndi \
-	  com/sun/org com/sun/xml sun/misc sun/pisces)
-	$(call RunSamevmBatch)
+          demo/jvmti demo/zipfs javax/naming javax/script \
+          javax/smartcardio com/sun/jndi com/sun/xml sun/misc)
+	$(call RunAgentvmBatch)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_net
 jdk_net: $(call TestDirs, com/sun/net java/net sun/net)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_nio1
 jdk_nio1: $(call TestDirs, java/nio/file)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_nio2
 jdk_nio2: $(call TestDirs, java/nio/Buffer java/nio/ByteOrder \
           java/nio/channels java/nio/MappedByteBuffer)
 	$(call SharedLibraryPermissions,java/nio/channels)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_nio3
 jdk_nio3: $(call TestDirs, sun/nio)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
 # All nio tests
 jdk_nio: jdk_nio1 jdk_nio2 jdk_nio3
 	@$(SummaryInfo)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 jdk_sctp: $(call TestDirs, com/sun/nio/sctp)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
 # Stable othervm testruns (minus items from PROBLEM_LIST)
-#   Using samevm has serious problems with these tests
+#   Using agentvm has serious problems with these tests
 JDK_ALL_TARGETS += jdk_rmi
 jdk_rmi: $(call TestDirs, java/rmi javax/rmi sun/rmi)
 	$(call RunOthervmBatch)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_security1
 jdk_security1: $(call TestDirs, java/security)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
-# Stable othervm testruns (minus items from PROBLEM_LIST)
-#   Using samevm has serious problems with these tests
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_security2
-jdk_security2: $(call TestDirs, javax/crypto com/sun/crypto)
-	$(call RunSamevmBatch)
+jdk_security2: $(call TestDirs, javax/crypto javax/xml/crypto com/sun/crypto)
+	$(call RunAgentvmBatch)
 
-# Stable othervm testruns (minus items from PROBLEM_LIST)
-#   Using samevm has serious problems with these tests
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_security3
-jdk_security3: $(call TestDirs, com/sun/security lib/security \
-               javax/security sun/security)
+jdk_security3: $(call TestDirs, com/sun/security lib/security javax/security \
+        sun/security com/sun/org/apache/xml/internal/security)
 	$(call SharedLibraryPermissions,sun/security)
-	$(call RunOthervmBatch)
+	$(call RunAgentvmBatch)
 
 # All security tests
 jdk_security: jdk_security1 jdk_security2 jdk_security3
 	@$(SummaryInfo)
 
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
+JDK_ALL_TARGETS += jdk_sound
+jdk_sound: $(call TestDirs, javax/sound)
+	$(call RunAgentvmBatch)
+
 # Stable othervm testruns (minus items from PROBLEM_LIST)
-#   Using samevm has problems, and doesn't help performance as much as others.
+#   Using agentvm has problems, and doesn't help performance as much as others.
 JDK_ALL_TARGETS += jdk_swing
-jdk_swing: $(call TestDirs, javax/swing sun/java2d)
+jdk_swing: $(call TestDirs, javax/swing sun/java2d \
+           demo/jfc com/sun/java/swing)
 	$(call RunOthervmBatch)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_text
 jdk_text: $(call TestDirs, java/text sun/text)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_tools1
 jdk_tools1: $(call TestDirs, com/sun/jdi)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
 # Stable othervm testruns (minus items from PROBLEM_LIST)
-#   Using samevm has serious problems with these tests
+#   Using agentvm has serious problems with these tests
 JDK_ALL_TARGETS += jdk_tools2
 jdk_tools2: $(call TestDirs, \
             com/sun/tools sun/jvmstat sun/tools tools vm \
             com/sun/servicetag com/sun/tracing)
 	$(call SharedLibraryPermissions,tools/launcher)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
 # All tools tests
 jdk_tools: jdk_tools1 jdk_tools2
 	@$(SummaryInfo)
 
-# Stable samevm testruns (minus items from PROBLEM_LIST)
+# Stable agentvm testruns (minus items from PROBLEM_LIST)
 JDK_ALL_TARGETS += jdk_util
 jdk_util: $(call TestDirs, java/util sun/util)
-	$(call RunSamevmBatch)
+	$(call RunAgentvmBatch)
 
 # jdk_jigsaw is included in jprt.properties but we only want to
 # run them when testing the jdk-module-image. 
@@ -639,7 +647,7 @@ PHONY_LIST += $(JDK_ALL_TARGETS)
 
 # Default JTREG to run (win32 script works for everybody)
 JTREG = $(JT_HOME)/win32/bin/jtreg
-# Add any extra options (samevm etc.)
+# Add any extra options (agentvm etc.)
 JTREG_BASIC_OPTIONS += $(EXTRA_JTREG_OPTIONS)
 # Only run automatic tests
 JTREG_BASIC_OPTIONS += -a
@@ -842,17 +850,17 @@ endif
 # The jtjck.jar utility to use to run the tests
 JTJCK_JAR = $(JCK_HOME)/lib/jtjck.jar
 JTJCK_JAVA_ARGS =  -XX:MaxPermSize=256m -Xmx512m
-JTJCK_OPTIONS = -headless -v 
+JTJCK_OPTIONS = -headless -v
 
 # Default tests to run
 ifndef JCK_COMPILER_TESTS
-  JCK_COMPILER_TESTS = 
+  JCK_COMPILER_TESTS =
 endif
 ifndef JCK_RUNTIME_TESTS
-  JCK_RUNTIME_TESTS  = 
+  JCK_RUNTIME_TESTS  =
 endif
 ifndef JCK_DEVTOOLS_TESTS
-  JCK_DEVTOOLS_TESTS = 
+  JCK_DEVTOOLS_TESTS =
 endif
 
 # Generic rule used to run jck tests
@@ -878,14 +886,14 @@ jck7compiler:
                 _generic_jck_tests
 
 # JCK7 runtime tests
-jck7runtime: 
+jck7runtime:
 	$(MAKE) UNIQUE_DIR=$@ \
 	        JCK_HOME=$(JCK7RUNTIME_HOME) \
 	        TESTDIRS="$(JCK_RUNTIME_TESTS)" \
                 _generic_jck_tests
 
 # JCK7 devtools tests
-jck7devtools: 
+jck7devtools:
 	$(MAKE) UNIQUE_DIR=$@ \
 	        JCK_HOME=$(JCK7DEVTOOLS_HOME) \
                 TESTDIRS="$(JCK_DEVTOOLS_TESTS)" \
diff --git a/jdk/test/ModulesProblemList.txt b/jdk/test/ModulesProblemList.txt
index e7fda1a..d1a52e2 100644
--- a/jdk/test/ModulesProblemList.txt
+++ b/jdk/test/ModulesProblemList.txt
@@ -156,6 +156,10 @@ sun/security/krb5/auto/W83.java                         windows-all
 sun/security/krb5/tools/ktarg.sh                        windows-all
 sun/security/krb5/tools/ktcheck.sh                      windows-all
 
+# JarVerifer throws JarException: Class is on the bootclasspath
+# SecurityException: JCE cannot authenticate the provider SunPKCS11-Solaris
+java/security/Signature/NONEwithRSA.java                generic-all
+java/security/KeyRep/Serial.java                        generic-all
 
 ############################################################################
 
diff --git a/jdk/test/ProblemList.txt b/jdk/test/ProblemList.txt
index 2b9eaa9..c2fd9fc 100644
--- a/jdk/test/ProblemList.txt
+++ b/jdk/test/ProblemList.txt
@@ -43,11 +43,11 @@
 #
 # List items  are testnames followed by labels, all MUST BE commented
 #   as to why they are here and use a label:
-#     generic-all	Problems on all platforms
-#     generic-ARCH	Where ARCH is one of: sparc, sparcv9, x64, i586, etc.
-#     OSNAME-all	Where OSNAME is one of: solaris, linux, windows
-#     OSNAME-ARCH	Specific on to one OSNAME and ARCH, e.g. solaris-x64
-#     OSNAME-REV	Specific on to one OSNAME and REV, e.g. solaris-5.8
+#     generic-all       Problems on all platforms
+#     generic-ARCH      Where ARCH is one of: sparc, sparcv9, x64, i586, etc.
+#     OSNAME-all        Where OSNAME is one of: solaris, linux, windows
+#     OSNAME-ARCH       Specific on to one OSNAME and ARCH, e.g. solaris-x64
+#     OSNAME-REV        Specific on to one OSNAME and REV, e.g. solaris-5.8
 #
 # More than one label is allowed but must be on the same line.
 #
@@ -123,38 +123,38 @@
 java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java generic-all
 
 # Causes hang in samevm mode??? Solaris 11 i586
-java/awt/FullScreen/SetFSWindow/FSFrame.java			generic-all
+java/awt/FullScreen/SetFSWindow/FSFrame.java                    generic-all
 
 # Fails on solaris 11 i586, -client, in othervm mode not sure why
-java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java	generic-all
+java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java     generic-all
 java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java generic-all
-java/awt/FontClass/FontAccess.java				generic-all
-java/awt/Mixing/HWDisappear.java				generic-all
-java/awt/Mixing/MixingInHwPanel.java				generic-all
-java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.html	generic-all
+java/awt/FontClass/FontAccess.java                              generic-all
+java/awt/Mixing/HWDisappear.java                                generic-all
+java/awt/Mixing/MixingInHwPanel.java                            generic-all
+java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.html       generic-all
 java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java generic-all
-java/awt/Toolkit/SecurityTest/SecurityTest2.java		generic-all
-java/awt/image/mlib/MlibOpsTest.java				generic-all
+java/awt/Toolkit/SecurityTest/SecurityTest2.java                generic-all
+java/awt/image/mlib/MlibOpsTest.java                            generic-all
 
 # Fails on windows, othervm mode, various errors
-java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java	generic-all
-java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java	generic-all
-java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java	generic-all
-java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java	generic-all
-java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html			generic-all
-java/awt/font/Threads/FontThread.java				generic-all
-java/awt/print/PrinterJob/PrtException.java			generic-all
+java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java        generic-all
+java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java   generic-all
+java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java        generic-all
+java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java      generic-all
+java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html                 generic-all
+java/awt/font/Threads/FontThread.java                           generic-all
+java/awt/print/PrinterJob/PrtException.java                     generic-all
 
 # Fails with windows X64, othervm, -server
-com/sun/awt/Translucency/WindowOpacity.java			generic-all
-java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java		generic-all
-java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html	generic-all
+com/sun/awt/Translucency/WindowOpacity.java                     generic-all
+java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java             generic-all
+java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html generic-all
 java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html generic-all
 java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java generic-all
-java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java	generic-all
-java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java	generic-all
-java/awt/Mixing/MixingOnShrinkingHWButton.java			generic-all
-java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java	generic-all
+java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java   generic-all
+java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java    generic-all
+java/awt/Mixing/MixingOnShrinkingHWButton.java                  generic-all
+java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java      generic-all
 
 ############################################################################
 
@@ -166,30 +166,30 @@ java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java	generic-all
 #  So a large batch of beans tests are currently run with othervm mode.
 
 # Filed 6986807
-java/beans/Introspector/TestTypeResolver.java   		generic-all
+java/beans/Introspector/TestTypeResolver.java                   generic-all
 
 # Filed 6986813
-java/beans/Introspector/memory/Test4508780.java			generic-all
+java/beans/Introspector/memory/Test4508780.java                 generic-all
 
 # Linux, some kind of problems with X11 display
-java/beans/PropertyChangeSupport/Test4682386.java		generic-all
-java/beans/PropertyChangeSupport/TestSynchronization.java	generic-all
-java/beans/Statement/Test4653179.java				generic-all
+java/beans/PropertyChangeSupport/Test4682386.java               generic-all
+java/beans/PropertyChangeSupport/TestSynchronization.java       generic-all
+java/beans/Statement/Test4653179.java                           generic-all
 
 # Runs REALLY slow on Solaris sparc for some reason, both -client and -server
-java/beans/XMLEncoder/Test4625418.java				solaris-sparc
+java/beans/XMLEncoder/Test4625418.java                          solaris-sparc
 
 # Problems with samevm and setting security manager (speculation partially)
-java/beans/Introspector/4168475/Test4168475.java		generic-all
-java/beans/Introspector/4520754/Test4520754.java		generic-all
-java/beans/Introspector/6380849/TestBeanInfo.java		generic-all
-java/beans/Introspector/Test4144543.java			generic-all
+java/beans/Introspector/4168475/Test4168475.java                generic-all
+java/beans/Introspector/4520754/Test4520754.java                generic-all
+java/beans/Introspector/6380849/TestBeanInfo.java               generic-all
+java/beans/Introspector/Test4144543.java                        generic-all
 
 # Failed to call method solaris-sparc???
-java/beans/EventHandler/Test6788531.java		 	generic-all
+java/beans/EventHandler/Test6788531.java                        generic-all
 
 # Jar or class not found???
-java/beans/XMLEncoder/6329581/Test6329581.java		 	generic-all
+java/beans/XMLEncoder/6329581/Test6329581.java                  generic-all
 
 ############################################################################
 
@@ -198,18 +198,27 @@ java/beans/XMLEncoder/6329581/Test6329581.java		 	generic-all
 # requires junit
 java/lang/invoke/InvokeDynamicPrintArgs.java                    generic-all
 
+# 7079093
+java/lang/instrument/ManifestTest.sh                            windows-all
+
 ############################################################################
 
 # jdk_management
 
+# 6944188
+java/lang/management/ThreadMXBean/ThreadStateTest.java          generic-all
+
+# 7067973
+java/lang/management/MemoryMXBean/CollectionUsageThreshold.java generic-all
+
 # Failing, bug was filed: 6959636
-javax/management/loading/LibraryLoader/LibraryLoaderTest.java	generic-all
+javax/management/loading/LibraryLoader/LibraryLoaderTest.java   generic-all
 
 # Access denied messages on windows/mks, filed 6954450
-sun/management/jmxremote/bootstrap/RmiSslNoKeyStoreTest.sh	windows-all
+sun/management/jmxremote/bootstrap/RmiSslNoKeyStoreTest.sh      windows-all
 
 # Fails on linux: KO: StringMonitor notification missed or not emitted
-javax/management/monitor/NonComparableAttributeValueTest.java	generic-all
+javax/management/monitor/NonComparableAttributeValueTest.java   generic-all
 
 # Port conflict? Fails with communication error
 sun/management/jmxremote/bootstrap/PasswordFilePermissionTest.sh generic-all
@@ -220,10 +229,10 @@ sun/management/jmxremote/bootstrap/PasswordFilePermissionTest.sh generic-all
 javax/management/remote/mandatory/connection/ReconnectTest.java generic-all
 
 # Solaris 10 sparc, NPE from org.omg.stub.javax.management.remote.rmi._RMIConnectionImpl_Tie._invoke
-javax/management/remote/mandatory/threads/ExecutorTest.java 	generic-all
+javax/management/remote/mandatory/threads/ExecutorTest.java     generic-all
 
 # Linux 32bit Fedora 9, IllegalStateException
-javax/management/monitor/RuntimeExceptionTest.java		generic-all
+javax/management/monitor/RuntimeExceptionTest.java              generic-all
 
 # Problems with rmi connection, othervm
 javax/management/remote/mandatory/subjectDelegation/SubjectDelegation2Test.java generic-all
@@ -232,16 +241,16 @@ javax/management/remote/mandatory/subjectDelegation/SubjectDelegation2Test.java
 sun/management/jmxremote/bootstrap/SSLConfigFilePermissionTest.sh generic-all
 
 # Fails with port already in use
-sun/management/jmxremote/bootstrap/RmiRegistrySslTest.sh	generic-all
+sun/management/jmxremote/bootstrap/RmiRegistrySslTest.sh        generic-all
 
 # Windows, connection can't last that long
-javax/management/eventService/LeaseTest.java			generic-all
+javax/management/eventService/LeaseTest.java                    generic-all
 
 # Linux othervm, X64, java.lang.Exception: Failed: ratio=102.4027795593753
-javax/management/remote/mandatory/notif/ListenerScaleTest.java	generic-all
+javax/management/remote/mandatory/notif/ListenerScaleTest.java  generic-all
 
 # Windows run seems to have triggered a hotspot gc error (see 6801625)
-com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.sh		generic-all
+com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.sh          generic-all
 
 # rmi problem? othervm, java.lang.reflect.UndeclaredThrowableException
 javax/management/remote/mandatory/subjectDelegation/SubjectDelegation3Test.java generic-all
@@ -250,30 +259,30 @@ javax/management/remote/mandatory/subjectDelegation/SubjectDelegation3Test.java
 javax/management/remote/mandatory/notif/NotificationBufferDeadlockTest.java generic-all
 
 # Times out on solaris sparc, with othervm
-javax/management/eventService/AddRemoveListenerTest.java	generic-all
+javax/management/eventService/AddRemoveListenerTest.java        generic-all
 
 # Linux i586 and x64 -server, timed out waiting for threads to expire? othervm
-javax/management/eventService/EventClientThreadTest.java	generic-all
+javax/management/eventService/EventClientThreadTest.java        generic-all
 
 # Linux i586 -server, Expected to receive 20, but got 21, othervm
 #   Fails on Linux X64 -server 20!=21
-javax/management/eventService/FetchingTest.java			generic-all
+javax/management/eventService/FetchingTest.java                 generic-all
 
 # NPE on windows 2000 i586 -client and -server
-javax/management/eventService/CustomForwarderTest.java	 	windows-all
+javax/management/eventService/CustomForwarderTest.java          windows-all
 
 # Windows i586 failure, callback did not complete
-javax/management/eventService/LeaseManagerDeadlockTest.java 	windows-all
+javax/management/eventService/LeaseManagerDeadlockTest.java     windows-all
 
 # Port already in use
-sun/management/jmxremote/bootstrap/LocalManagementTest.sh 	generic-all
+sun/management/jmxremote/bootstrap/LocalManagementTest.sh       generic-all
 
 # Failed to initialize connector (also overflowing jtreg io buffers)
-sun/management/jmxremote/bootstrap/RmiBootstrapTest.sh	 	generic-all
-sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh 	generic-all
+sun/management/jmxremote/bootstrap/RmiBootstrapTest.sh          generic-all
+sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh       generic-all
 
 # Windows X64, java.lang.IllegalStateException
-javax/management/monitor/AttributeArbitraryDataTypeTest.java	generic-all
+javax/management/monitor/AttributeArbitraryDataTypeTest.java    generic-all
 
 ############################################################################
 
@@ -284,83 +293,89 @@ javax/management/monitor/AttributeArbitraryDataTypeTest.java	generic-all
 # jdk_misc
 
 # Need to be marked othervm, or changed to be samevm safe
-com/sun/jndi/rmi/registry/RegistryContext/UnbindIdempotent.java	generic-all
+com/sun/jndi/rmi/registry/RegistryContext/UnbindIdempotent.java generic-all
 
 # Need to be marked othervm, or changed to be samevm safe
 com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java generic-all
 
 # Solaris sparc and others, exception in initializer
-javax/imageio/CachePremissionsTest/CachePermissionsTest.java 	generic-all
+javax/imageio/CachePremissionsTest/CachePermissionsTest.java    generic-all
 
 # Leaves file rgba_* open, fails with windows samevm
-javax/imageio/plugins/png/PngOutputTypeTest.java		generic-all
+javax/imageio/plugins/png/PngOutputTypeTest.java                generic-all
 
 # Suspect test.png file is left open, windows samevm problems
-javax/imageio/plugins/png/ITXtTest.java				generic-all
+javax/imageio/plugins/png/ITXtTest.java                         generic-all
 
 # Solaris sparc and others, failed to compile testcase
-javax/imageio/metadata/DOML3Node.java			 	generic-all
+javax/imageio/metadata/DOML3Node.java                           generic-all
 
 # One of these tests is leaving file IMGP1001.JPG open, windows samevm
-javax/imageio/plugins/jpeg/ConcurrentReadingTest.java		generic-all
-javax/imageio/plugins/jpeg/ReadingInterruptionTest.java		generic-all
+javax/imageio/plugins/jpeg/ConcurrentReadingTest.java           generic-all
+javax/imageio/plugins/jpeg/ReadingInterruptionTest.java         generic-all
 
 # One of these files is missing a close on writer_* files, windows samevm
-javax/imageio/plugins/jpeg/ConcurrentWritingTest.java		generic-all
-javax/imageio/plugins/jpeg/WritingInterruptionTest.java		generic-all
+javax/imageio/plugins/jpeg/ConcurrentWritingTest.java           generic-all
+javax/imageio/plugins/jpeg/WritingInterruptionTest.java         generic-all
 
 # Leaving file test.jpg open, windows samevm
-javax/imageio/plugins/jpeg/ReadAsGrayTest.java			generic-all
+javax/imageio/plugins/jpeg/ReadAsGrayTest.java                  generic-all
 
 # Missing close on file wbmp*, windows samevm
-javax/imageio/plugins/wbmp/CanDecodeTest.java			generic-all
+javax/imageio/plugins/wbmp/CanDecodeTest.java                   generic-all
 
 # Failures on OpenSolaris, cannot read input files? samevm issues?
-javax/imageio/metadata/BooleanAttributes.java			generic-all
-javax/imageio/plugins/bmp/BMPSubsamplingTest.java		generic-all
-javax/imageio/plugins/bmp/TopDownTest.java			generic-all
-javax/imageio/plugins/gif/EncodeSubImageTest.java		generic-all
-javax/imageio/plugins/gif/GifTransparencyTest.java		generic-all
-javax/imageio/plugins/png/GrayPngTest.java			generic-all
-javax/imageio/plugins/png/ItxtUtf8Test.java			generic-all
-javax/imageio/plugins/png/MergeStdCommentTest.java		generic-all
-javax/imageio/plugins/png/ShortHistogramTest.java		generic-all
-javax/imageio/plugins/shared/BitDepth.java			generic-all
+javax/imageio/metadata/BooleanAttributes.java                   generic-all
+javax/imageio/plugins/bmp/BMPSubsamplingTest.java               generic-all
+javax/imageio/plugins/bmp/TopDownTest.java                      generic-all
+javax/imageio/plugins/gif/EncodeSubImageTest.java               generic-all
+javax/imageio/plugins/gif/GifTransparencyTest.java              generic-all
+javax/imageio/plugins/png/GrayPngTest.java                      generic-all
+javax/imageio/plugins/png/ItxtUtf8Test.java                     generic-all
+javax/imageio/plugins/png/MergeStdCommentTest.java              generic-all
+javax/imageio/plugins/png/ShortHistogramTest.java               generic-all
+javax/imageio/plugins/shared/BitDepth.java                      generic-all
 
 # Exclude all javax/print tests, even if they passed, they may need samevm work
 
 # Times out on solaris-sparc, sparcv9, x64 -server, some on i586 -client
-javax/print/attribute/autosense/PrintAutoSenseData.java 	generic-all
-javax/print/attribute/Chroma.java			 	generic-all
-javax/print/attribute/CollateAttr.java			 	generic-all
-javax/print/attribute/PSCopiesFlavorTest.java		 	generic-all
-javax/print/LookupServices.java 			 	generic-all
-javax/print/TestRaceCond.java				 	generic-all
+javax/print/attribute/autosense/PrintAutoSenseData.java         generic-all
+javax/print/attribute/Chroma.java                               generic-all
+javax/print/attribute/CollateAttr.java                          generic-all
+javax/print/attribute/PSCopiesFlavorTest.java                   generic-all
+javax/print/LookupServices.java                                 generic-all
+javax/print/TestRaceCond.java                                   generic-all
 
 # These tests really require a printer (might all be windows only tests?)
-javax/print/CheckDupFlavor.java					generic-all
-javax/print/PrintSE/PrintSE.sh					generic-all
-javax/print/attribute/ChromaticityValues.java			generic-all
-javax/print/attribute/GetCopiesSupported.java			generic-all
-javax/print/attribute/SidesPageRangesTest.java			generic-all
-javax/print/attribute/SupportedPrintableAreas.java		generic-all
+javax/print/CheckDupFlavor.java                                 generic-all
+javax/print/PrintSE/PrintSE.sh                                  generic-all
+javax/print/attribute/ChromaticityValues.java                   generic-all
+javax/print/attribute/GetCopiesSupported.java                   generic-all
+javax/print/attribute/SidesPageRangesTest.java                  generic-all
+javax/print/attribute/SupportedPrintableAreas.java              generic-all
 javax/print/attribute/AttributeTest.java                        generic-all
 
 # Only print test left, excluding just because all print tests have been
-javax/print/attribute/MediaMappingsTest.java 			generic-all
+javax/print/attribute/MediaMappingsTest.java                    generic-all
 
 # Filed 7058852
-javax/sound/sampled/FileWriter/AlawEncoderSync.java		generic-all
+javax/sound/sampled/FileWriter/AlawEncoderSync.java             generic-all
 
 ############################################################################
 
 # jdk_net
 
 # Filed 7052625
-com/sun/net/httpserver/bugs/6725892/Test.java			generic-all
+com/sun/net/httpserver/bugs/6725892/Test.java                   generic-all
 
 # Filed 7036666
-com/sun/net/httpserver/Test9a.java				generic-all
+com/sun/net/httpserver/Test9a.java                              generic-all
+
+# 7079145 java/net/ipv6tests/UdpTest.java hang at IPv6 only data exchange
+java/net/ipv6tests/UdpTest.java                                 linux-all
+
+# 7081476
+java/net/InetSocketAddress/B6469803.java                        generic-all
 
 ############################################################################
 
@@ -369,6 +384,12 @@ com/sun/net/httpserver/Test9a.java				generic-all
 # 6962637
 java/io/File/MaxPathLength.java                                 windows-all
 
+# 6671616
+java/io/File/BlockIsDirectory.java                              solaris-all
+
+# 7076644
+java/io/File/Basic.java                                         windows-all
+
 ############################################################################
 
 # jdk_nio
@@ -376,12 +397,15 @@ java/io/File/MaxPathLength.java                                 windows-all
 # 6963118
 java/nio/channels/Selector/Wakeup.java                          windows-all
 
+# 7076700
+java/nio/channels/SocketChannel/AdaptSocket.java                generic-all
+
 ############################################################################
 
 # jdk_rmi
 
 # Port already in use, fails on sparc, othervm
-java/rmi/reliability/benchmark/runRmiBench.sh			generic-all
+java/rmi/reliability/benchmark/runRmiBench.sh                   generic-all
 
 # Already in use port issues? othervm solaris
 java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java generic-all
@@ -391,21 +415,21 @@ java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java         generic-
 java/rmi/transport/dgcDeadLock/TestImpl_Stub.java                       generic-all
 
 # Address already in use, othervm mode, solaris
-java/rmi/activation/Activatable/elucidateNoSuchMethod/ElucidateNoSuchMethod.java	generic-all
-java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot.java	generic-all
+java/rmi/activation/Activatable/elucidateNoSuchMethod/ElucidateNoSuchMethod.java        generic-all
+java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot.java  generic-all
 
 # Registry already running on port, solaris
-java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java	generic-all
+java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java      generic-all
 
 # Fails on Linux 32 and 64bit -server?, impl not garbage collected???
-java/rmi/transport/pinLastArguments/PinLastArguments.java	generic-all
+java/rmi/transport/pinLastArguments/PinLastArguments.java       generic-all
 
 # Times out on solaris sparc
-java/rmi/server/RemoteServer/AddrInUse.java			generic-all
+java/rmi/server/RemoteServer/AddrInUse.java                     generic-all
 
 # Connection error on Windows i586 -server
 #  Also connection errors in othervm on Solaris 10 sparc, same port???
-sun/rmi/transport/tcp/DeadCachedConnection.java 	 	generic-all
+sun/rmi/transport/tcp/DeadCachedConnection.java                 generic-all
 
 # Connection errors in othervm on Solaris 10 sparc, same port???
 java/rmi/activation/Activatable/checkActivateRef/CheckActivateRef.java generic-all
@@ -450,74 +474,21 @@ java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak.java generic-all
 
 # jdk_security
 
-# Filed 6986868
-sun/security/tools/jarsigner/crl.sh				generic-all
-
-# Filed 6951285, not sure how often this fails, last was Linux 64bit Fedora 9
-sun/security/krb5/auto/MaxRetries.java				generic-all
-
-# Filed 6950930, fails on windows 32bit c1 and windows 64bit
-sun/security/krb5/auto/IgnoreChannelBinding.java		windows-all
-
-# Filed 6950931, failing on all windows systems
-sun/security/tools/jarsigner/crl.sh				windows-all
+# Failing on Solaris i586, 3/9/2010, not a -samevm issue (jdk_security3)
+sun/security/pkcs11/Secmod/AddPrivateKey.java                   solaris-i586
+sun/security/pkcs11/ec/ReadCertificates.java                    solaris-i586
+sun/security/pkcs11/ec/ReadPKCS12.java                          solaris-i586
+sun/security/pkcs11/ec/TestCurves.java                          solaris-i586
+sun/security/pkcs11/ec/TestECDSA.java                           solaris-i586
+#sun/security/pkcs11/ec/TestECGenSpec.java                      solaris-i586
+#sun/security/pkcs11/ec/TestKeyFactory.java                     solaris-i586
+sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java            solaris-i586
 
-# Filed 6950929, only seemed to fail on solaris sparcv9 (-d64)
-#   Failed on Linux -server 32bit too, making generic
-sun/security/krb5/auto/BadKdc4.java				generic-all
+# Directly references PKCS11 class
+sun/security/pkcs11/Provider/Absolute.java                      windows-x64
 
-# Failing on Solaris i586, 3/9/2010, not a -samevm issue (jdk_security3)
-sun/security/pkcs11/Secmod/AddPrivateKey.java			solaris-i586
-sun/security/pkcs11/ec/ReadCertificates.java			solaris-i586
-sun/security/pkcs11/ec/ReadPKCS12.java				solaris-i586
-sun/security/pkcs11/ec/TestCurves.java				solaris-i586
-sun/security/pkcs11/ec/TestECDSA.java				solaris-i586
-sun/security/pkcs11/ec/TestECGenSpec.java			solaris-i586
-sun/security/pkcs11/ec/TestKeyFactory.java			solaris-i586
-
-# Failing on Solaris X64 (-d64 -server) with:
-#  GSSException: Failure unspecified at GSS-API level
-#    (Mechanism level: Specified version of key is not available (44))
-sun/security/krb5/auto/BasicKrb5Test.java			generic-all
-
-# Solaris X86 failures, readjar.jks: No such file or directory
-sun/security/tools/keytool/readjar.sh				generic-all
-
-# Fails with -ea -esa, but only on Solaris sparc? Suspect it is timing out
-sun/security/tools/keytool/standard.sh				generic-all
-
-# Fails on Solaris 10 X64, address already in use
-sun/security/krb5/auto/HttpNegotiateServer.java			generic-all
-
-# Fails on almost all platforms
-#   java.lang.UnsupportedClassVersionError: SerialTest :
-#      Unsupported major.minor version 51.0
-#    at java.lang.ClassLoader.defineClass1(Native Method)
-sun/security/util/Oid/S11N.sh					generic-all
-
-# Fails on Fedora 9 32bit
-#  GSSException: Failure unspecified at GSS-API level (Mechanism level:
-#    Invalid argument (400) - Cannot find key of appropriate type to decrypt
-#    AP REP - DES CBC mode with MD5)
-#  at sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:778)
-sun/security/krb5/auto/NonMutualSpnego.java			generic-all
-
-# Fails on Solaris 10 sparc, GSSException: Failure unspecified at GSS-API level
-#   Also fails on Windows 2000 similar way
-sun/security/krb5/auto/ok-as-delegate.sh			generic-all
-
-# Fails on Windows 2000, GSSException: Failure unspecified at GSS-API level
-#    (Mechanism level: Request is a replay (34))
-sun/security/krb5/auto/ok-as-delegate-xrealm.sh			generic-all
-
-# Fails on Windows 2000, ExceptionInInitializerError
-sun/security/mscapi/AccessKeyStore.sh				generic-all
-
-# Fails on Solaris 10, KrbException: Additional pre-authentication required (25)
-sun/security/krb5/auto/basic.sh					generic-all
-
-# Fails on Fedora 9 64bit, PKCS11Exception: CKR_DEVICE_ERROR
-sun/security/pkcs11/KeyAgreement/TestDH.java			generic-all
+# Fails on Fedora 9/Ubuntu 10.04 64bit, PKCS11Exception: CKR_DEVICE_ERROR
+sun/security/pkcs11/KeyAgreement/TestDH.java                    generic-all
 
 # Run too slow on Solaris 10 sparc
 sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/SSLSocketTimeoutNulls.java solaris-sparc
@@ -525,127 +496,105 @@ sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientTimeout.java s
 sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ServerTimeout.java solaris-sparc
 sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java solaris-sparc
 sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh solaris-sparc
-sun/security/tools/keytool/AltProviderPath.sh 			solaris-sparc
 
 # Solaris 10 sparc, passed/failed confusion? java.security.ProviderException: update() failed
 sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java generic-all
 
-# Seem really slow on Solaris sparc, being excluded just for timing reasons
-sun/security/tools/jarsigner/AlgOptions.sh			solaris-sparc
-sun/security/tools/jarsigner/nameclash.sh			solaris-sparc
-sun/security/krb5/auto/basic.sh					solaris-sparc
-sun/security/provider/PolicyFile/getinstance/getinstance.sh	solaris-sparc
-sun/security/tools/jarsigner/samename.sh			solaris-sparc
-
 # Othervm, sparc, NoRouteToHostException: Cannot assign requested address
 sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java generic-all
 
 # Times out on windows X64, othervm mode
 #    Solaris sparc and sparcv9 -server, timeout
-sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java	generic-all
-
-# Failed on solaris 10 sparc, othervm mode,  "js.jks: No such file or directory"
-#  Also, cannot verify signature on solaris i586 -server
-sun/security/tools/jarsigner/concise_jarsigner.sh		generic-all
+sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java generic-all
 
 # Various failures on Linux Fedora 9 X64, othervm mode
-lib/security/cacerts/VerifyCACerts.java				generic-all
 sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/TestAllSuites.java generic-all
-sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java	generic-all
-sun/security/tools/jarsigner/oldsig.sh				generic-all
+sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java     generic-all
 
 # Various failures on Linux Fedora 9 X64, othervm mode
-sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java	generic-all
-
-# Solaris sparcv9: Failed to parse input emptysubject.jks: No such file or directory
-sun/security/tools/keytool/emptysubject.sh			generic-all
+sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java       generic-all
 
-# Fails on OpenSolaris, missing classes, slow on Solaris sparc
-sun/security/ec/TestEC.java					generic-all
+# 7079203 sun/security/tools/keytool/printssl.sh fails on solaris with timeout
+sun/security/tools/keytool/printssl.sh                          solaris-all
 
-# Problems with windows x64
-sun/security/mscapi/IsSunMSCAPIAvailable.sh		 	windows-x64
-sun/security/mscapi/RSAEncryptDecrypt.sh		 	windows-x64
+# 7054637
+sun/security/tools/jarsigner/ec.sh                             solaris-all
 
-# Exception in test solaris-sparc -client -server, no windows
-sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java	        solaris-all
+# 7081817
+sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java    generic-all
 
-# Solaris sparc client, fails to compile?
-sun/security/pkcs11/KeyStore/SecretKeysBasic.sh 	 	solaris-all
-
-# Fails on OpenSolaris java.net.BindException: Address already in use
-sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java		generic-all
-
-# Timeout on solaris-sparcv9 or ArrayIndexOutOfBoundsException?
-sun/security/rsa/TestKeyPairGeneratorLength.java	 	solaris-all
-sun/security/rsa/TestSignatures.java			 	solaris-all
-
-# Do not seem to run on windows machines? dll missing?
-sun/security/tools/jarsigner/emptymanifest.sh		 	windows-all
-
-# Files does not exist or no encoding? solaris-sparcv9
-sun/security/tools/keytool/importreadall.sh		 	solaris-all
-sun/security/tools/keytool/selfissued.sh		 	solaris-all
+# 7041639, Solaris DSA keypair generation bug (Note: jdk_util also affected)
+java/security/KeyPairGenerator/SolarisShortDSA.java             solaris-all
+sun/security/tools/jarsigner/onlymanifest.sh                    solaris-all
+sun/security/tools/jarsigner/ts.sh                              solaris-all
+sun/security/tools/keytool/emptysubject.sh                      solaris-all
+sun/security/tools/keytool/importreadall.sh                     solaris-all
+sun/security/tools/keytool/readjar.sh                           solaris-all
+sun/security/tools/keytool/selfissued.sh                        solaris-all
+sun/security/tools/keytool/standard.sh                          solaris-all
 
 ############################################################################
 
 # jdk_swing (not using samevm)
 
 # Fails on solaris 11 i586, with othervm
-javax/swing/JFileChooser/6570445/bug6570445.java		generic-all
-javax/swing/JFileChooser/6738668/bug6738668.java		generic-all
-javax/swing/JPopupMenu/6675802/bug6675802.java			generic-all
-javax/swing/system/6799345/TestShutdown.java			generic-all
+javax/swing/JFileChooser/6570445/bug6570445.java                generic-all
+javax/swing/JFileChooser/6738668/bug6738668.java                generic-all
+javax/swing/JPopupMenu/6675802/bug6675802.java                  generic-all
+javax/swing/system/6799345/TestShutdown.java                    generic-all
 
 ############################################################################
 
 # jdk_text
 
 # Linux x64 occasional errors, no details
-java/text/Bidi/Bug6665028.java				 	linux-x64
+java/text/Bidi/Bug6665028.java                                  linux-x64
 
 ############################################################################
 
 # jdk_tools
 
 # Filed 6952105
-com/sun/jdi/SuspendThreadTest.java				generic-all
+com/sun/jdi/SuspendThreadTest.java                              generic-all
 
 # Filed 6653793
-com/sun/jdi/RedefineCrossEvent.java				generic-all
+com/sun/jdi/RedefineCrossEvent.java                             generic-all
 
 # Filed 6987312
-com/sun/jdi/DoubleAgentTest.java				generic-all
+com/sun/jdi/DoubleAgentTest.java                                generic-all
 
 # Filed 7020857
-com/sun/jdi/FieldWatchpoints.java				generic-all
+com/sun/jdi/FieldWatchpoints.java                               generic-all
 
 # Filed 6402201
-com/sun/jdi/ProcessAttachTest.sh				generic-all
+com/sun/jdi/ProcessAttachTest.sh                                generic-all
 
 # Filed 6986875
-sun/tools/jps/jps-Vvml.sh					generic-all
+sun/tools/jps/jps-Vvml.sh                                       generic-all
 
 # Filed 6979016
-sun/tools/jconsole/ResourceCheckTest.sh				generic-all
+sun/tools/jconsole/ResourceCheckTest.sh                         generic-all
 
 ############################################################################
 
 # jdk_util
 
 # Filed 7027061
-java/util/Locale/Bug6989440.java				windows-all
+java/util/Locale/Bug6989440.java                                windows-all
 
 # Filed 6933803
-java/util/concurrent/ThreadPoolExecutor/CoreThreadTimeOut.java	generic-all
+java/util/concurrent/ThreadPoolExecutor/CoreThreadTimeOut.java  generic-all
 
 # Filed 7022325
 # Fails with assertion error on windows
 #   11 separate stacktraces created... file reuse problem?
-java/util/zip/ZipFile/ReadLongZipFileName.java			generic-all
+java/util/zip/ZipFile/ReadLongZipFileName.java                  generic-all
 
 # Filed 6772009
 java/util/concurrent/locks/ReentrantLock/CancelledLockLoops.java generic-all
 
+# 7041639, Solaris DSA keypair generation bug
+java/util/TimeZone/TimeZoneDatePermissionCheck.sh               solaris-all
+
 ############################################################################
 
diff --git a/jdk/test/com/sun/jdi/sde/MangleStepTest.java b/jdk/test/com/sun/jdi/sde/MangleStepTest.java
index ca10e27..c421c52 100644
--- a/jdk/test/com/sun/jdi/sde/MangleStepTest.java
+++ b/jdk/test/com/sun/jdi/sde/MangleStepTest.java
@@ -10,11 +10,11 @@
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter InstallSDE
  *  @run compile MangleStepTest.java
  *  @run compile -g  onion/pickle/Mangle.java
- *  @run main MangleStepTest unset
- *  @run main MangleStepTest Java
- *  @run main MangleStepTest XYZ
- *  @run main MangleStepTest Rats
- *  @run main MangleStepTest bogus
+ *  @run main/othervm MangleStepTest unset
+ *  @run main/othervm MangleStepTest Java
+ *  @run main/othervm MangleStepTest XYZ
+ *  @run main/othervm MangleStepTest Rats
+ *  @run main/othervm MangleStepTest bogus
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
diff --git a/jdk/test/com/sun/security/auth/login/ConfigFile/IllegalURL.java b/jdk/test/com/sun/security/auth/login/ConfigFile/IllegalURL.java
index f091548..5e7fb6e 100644
--- a/jdk/test/com/sun/security/auth/login/ConfigFile/IllegalURL.java
+++ b/jdk/test/com/sun/security/auth/login/ConfigFile/IllegalURL.java
@@ -43,8 +43,9 @@ public class IllegalURL {
     static void use(String f) throws Exception {
         System.out.println("Testing " + f  + "...");
         System.setProperty("java.security.auth.login.config", f);
-        try {
-            new FileInputStream(new URL(f).getFile().replace('/', File.separatorChar));
+        try (FileInputStream fis =
+                new FileInputStream(new URL(f).getFile().replace('/', File.separatorChar))) {
+            // do nothing
         } catch (Exception e) {
             System.out.println("Even old implementation does not support it. Ignored.");
             return;
diff --git a/jdk/test/com/sun/security/sasl/ntlm/Conformance.java b/jdk/test/com/sun/security/sasl/ntlm/Conformance.java
new file mode 100644
index 0000000..4c1301e
--- /dev/null
+++ b/jdk/test/com/sun/security/sasl/ntlm/Conformance.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7043847 7043860 7043882 7043938 7043959
+ * @summary NTML impl of SaslServer conformance errors
+ */
+import java.io.IOException;
+import javax.security.sasl.*;
+import java.util.*;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+public class Conformance {
+
+    public static void main(String[] args) throws Exception {
+        try {
+            Sasl.createSaslClient(new String[] {"NTLM"}, "abc", "ldap",
+                    "server", new HashMap<String, Object>(), null);
+        } catch (SaslException se) {
+            System.out.println(se);
+        }
+        try {
+            Sasl.createSaslServer("NTLM", "ldap",
+                    "server", new HashMap<String, Object>(), null);
+        } catch (SaslException se) {
+            System.out.println(se);
+        }
+        try {
+            Sasl.createSaslClient(new String[] {"NTLM"}, "abc", "ldap",
+                    "server", null, new CallbackHandler() {
+                        @Override
+                        public void handle(Callback[] callbacks) throws
+                                IOException, UnsupportedCallbackException {  }
+                    });
+        } catch (SaslException se) {
+            System.out.println(se);
+        }
+        try {
+            SaslServer saslServer =
+                    Sasl.createSaslServer("NTLM", "ldap", "abc", null, new CallbackHandler() {
+                        @Override
+                        public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {  }
+                    });
+            System.err.println("saslServer = " + saslServer);
+            System.err.println("saslServer.isComplete() = " + saslServer.isComplete());
+            // IllegalStateException is expected here
+            saslServer.getNegotiatedProperty("prop");
+            System.err.println("No IllegalStateException");
+        } catch (IllegalStateException se) {
+            System.out.println(se);
+        }
+        try {
+            SaslServer saslServer =
+                    Sasl.createSaslServer("NTLM", "ldap", "abc", null, new CallbackHandler() {
+                        @Override
+                        public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {  }
+                    });
+            System.err.println("saslServer = " + saslServer);
+            System.err.println("saslServer.isComplete() = " + saslServer.isComplete());
+            // IllegalStateException is expected here
+            saslServer.getAuthorizationID();
+            System.err.println("No IllegalStateException");
+        } catch (IllegalStateException se) {
+            System.out.println(se);
+        }
+        try {
+            SaslServer saslServer =
+                    Sasl.createSaslServer("NTLM", "ldap", "abc", null, new CallbackHandler() {
+                        @Override
+                        public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {  }
+                    });
+            System.err.println("saslServer = " + saslServer);
+            System.err.println("saslServer.isComplete() = " + saslServer.isComplete());
+            // IllegalStateException is expected here
+            saslServer.wrap(new byte[0], 0, 0);
+            System.err.println("No IllegalStateException");
+        } catch (IllegalStateException se) {
+            System.out.println(se);
+        }
+    }
+}
diff --git a/jdk/test/com/sun/servicetag/JavaServiceTagTest.java b/jdk/test/com/sun/servicetag/JavaServiceTagTest.java
index 0ebe0d5..6122b14 100644
--- a/jdk/test/com/sun/servicetag/JavaServiceTagTest.java
+++ b/jdk/test/com/sun/servicetag/JavaServiceTagTest.java
@@ -25,7 +25,7 @@
 
 /*
  * @test
- * @bug     6622366
+ * @bug     6622366 7078024
  * @summary Basic Test for ServiceTag.getJavaServiceTag()
  *          Disable creating the service tag in the system registry.
  *          Verify the existence of registration.xml file and the
@@ -86,23 +86,42 @@ public class JavaServiceTagTest {
         }
     }
 
+    /**
+     * Tests if the running platform is a JDK.
+     */
+    static boolean isJDK() {
+        // Determine the JRE path by checking the existence of
+        // <HOME>/jre/lib and <HOME>/lib.
+        String javaHome = System.getProperty("java.home");
+        String jrepath = javaHome + File.separator + "jre";
+        File f = new File(jrepath, "lib");
+        if (!f.exists()) {
+            // java.home usually points to the JRE path
+            jrepath = javaHome;
+        }
+
+        return jrepath.endsWith(File.separator + "jre");
+    }
+
     private static void checkServiceTag(ServiceTag st) throws IOException {
-        Properties props = loadSwordfishEntries();
-        if (st.getProductURN().
-                equals(props.getProperty("servicetag.jdk.urn"))) {
-            if (!st.getProductName().
-                    equals(props.getProperty("servicetag.jdk.name"))) {
+        Properties props = loadServiceTagProps();
+        // jdk 8 and later, JDK and JRE have the same product URN.
+        String jdkUrn = props.getProperty("servicetag.jdk.urn");
+        String jreUrn = props.getProperty("servicetag.jre.urn");
+        boolean isJdk = isJDK();
+
+        if (isJdk) {
+            if (!st.getProductURN().equals(jdkUrn) ||
+                    !st.getProductName().equals(
+                         props.getProperty("servicetag.jdk.name"))) {
                 throw new RuntimeException("Product URN and name don't match.");
             }
-        } else if (st.getProductURN().
-                equals(props.getProperty("servicetag.jre.urn"))) {
-            if (!st.getProductName().
-                    equals(props.getProperty("servicetag.jre.name"))) {
+        } else {
+            if (!st.getProductURN().equals(jreUrn) ||
+                    !st.getProductName().equals(
+                        props.getProperty("servicetag.jre.name"))) {
                 throw new RuntimeException("Product URN and name don't match.");
             }
-        } else {
-            throw new RuntimeException("Unexpected product_urn: " +
-                st.getProductURN());
         }
         if (!st.getProductVersion().
                 equals(System.getProperty("java.version"))) {
@@ -160,18 +179,13 @@ public class JavaServiceTagTest {
         }
     }
 
-    private static Properties loadSwordfishEntries()
+    private static Properties loadServiceTagProps()
            throws IOException {
-        int version = sun.misc.Version.jdkMinorVersion();
-        String filename = "/com/sun/servicetag/resources/javase_" +
-                version + "_swordfish.properties";
-        InputStream in = Installer.class.getClass().getResourceAsStream(filename);
-        Properties props = new Properties();
-        try {
+        String filename = "/com/sun/servicetag/resources/javase_servicetag.properties";
+        try (InputStream in = Installer.class.getClass().getResourceAsStream(filename)) {
+            Properties props = new Properties();
             props.load(in);
-        } finally {
-            in.close();
+            return props;
         }
-        return props;
     }
 }
diff --git a/jdk/test/com/sun/servicetag/JavaServiceTagTest1.java b/jdk/test/com/sun/servicetag/JavaServiceTagTest1.java
index 64e8b31..ffe3744 100644
--- a/jdk/test/com/sun/servicetag/JavaServiceTagTest1.java
+++ b/jdk/test/com/sun/servicetag/JavaServiceTagTest1.java
@@ -25,7 +25,7 @@
 
 /*
  * @test
- * @bug     6622366
+ * @bug     6622366 7078024
  * @summary Basic Test for ServiceTag.getJavaServiceTag(String)
  *          to verify that the registration.xml and servicetag files
  *          are both created correctly.
@@ -157,25 +157,45 @@ public class JavaServiceTagTest1 {
         return svctag;
     }
 
+    /**
+     * Tests if the running platform is a JDK.
+     */
+    static boolean isJDK() {
+        // Determine the JRE path by checking the existence of
+        // <HOME>/jre/lib and <HOME>/lib.
+        String javaHome = System.getProperty("java.home");
+        String jrepath = javaHome + File.separator + "jre";
+        File f = new File(jrepath, "lib");
+        if (!f.exists()) {
+            // java.home usually points to the JRE path
+            jrepath = javaHome;
+        }
+
+        return jrepath.endsWith(File.separator + "jre");
+    }
+
     private static void checkServiceTag(ServiceTag st, String source)
             throws IOException {
-        Properties props = loadSwordfishEntries();
-        if (st.getProductURN().
-                equals(props.getProperty("servicetag.jdk.urn"))) {
-            if (!st.getProductName().
-                    equals(props.getProperty("servicetag.jdk.name"))) {
+        Properties props = loadServiceTagProps();
+        // jdk 8 and later, JDK and JRE have the same product URN.
+        String jdkUrn = props.getProperty("servicetag.jdk.urn");
+        String jreUrn = props.getProperty("servicetag.jre.urn");
+        boolean isJdk = isJDK();
+
+        if (isJdk) {
+            if (!st.getProductURN().equals(jdkUrn) ||
+                    !st.getProductName().equals(
+                         props.getProperty("servicetag.jdk.name"))) {
                 throw new RuntimeException("Product URN and name don't match.");
             }
-        } else if (st.getProductURN().
-                equals(props.getProperty("servicetag.jre.urn"))) {
-            if (!st.getProductName().
-                    equals(props.getProperty("servicetag.jre.name"))) {
+        } else {
+            if (!st.getProductURN().equals(jreUrn) ||
+                    !st.getProductName().equals(
+                        props.getProperty("servicetag.jre.name"))) {
                 throw new RuntimeException("Product URN and name don't match.");
             }
-        } else {
-            throw new RuntimeException("Unexpected product_urn: " +
-                st.getProductURN());
         }
+
         if (!st.getProductVersion().
                 equals(System.getProperty("java.version"))) {
             throw new RuntimeException("Unexpected product_version: " +
@@ -233,18 +253,13 @@ public class JavaServiceTagTest1 {
         }
     }
 
-    private static Properties loadSwordfishEntries()
+    private static Properties loadServiceTagProps()
            throws IOException {
-        int version = sun.misc.Version.jdkMinorVersion();
-        String filename = "/com/sun/servicetag/resources/javase_" +
-                version + "_swordfish.properties";
-        InputStream in = Installer.class.getClass().getResourceAsStream(filename);
-        Properties props = new Properties();
-        try {
+        String filename = "/com/sun/servicetag/resources/javase_servicetag.properties";
+        try (InputStream in = Installer.class.getClass().getResourceAsStream(filename)) {
+            Properties props = new Properties();
             props.load(in);
-        } finally {
-            in.close();
+            return props;
         }
-        return props;
     }
 }
diff --git a/jdk/test/java/io/IOException/LastErrorString.java b/jdk/test/java/io/IOException/LastErrorString.java
index 403c810..3d6d9ed 100644
--- a/jdk/test/java/io/IOException/LastErrorString.java
+++ b/jdk/test/java/io/IOException/LastErrorString.java
@@ -23,6 +23,7 @@
 
 /* @test
    @bug 4167937
+   @ignore Test truncates system files when run as root, see 7042603
    @summary Test code paths that use the JVM_LastErrorString procedure
  */
 
diff --git a/jdk/test/java/io/etc/FailingFlushAndClose.java b/jdk/test/java/io/etc/FailingFlushAndClose.java
new file mode 100644
index 0000000..3a07d54
--- /dev/null
+++ b/jdk/test/java/io/etc/FailingFlushAndClose.java
@@ -0,0 +1,268 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.io.*;
+
+/**
+ * @test
+ * @bug 7015589
+ * @summary Test that buffering streams are considered closed even when the
+ *    close or flush from the underlying stream fails.
+ */
+
+public class FailingFlushAndClose {
+
+    static int failed;
+
+    static void fail(String msg) {
+        System.err.println("FAIL: " + msg);
+        failed++;
+    }
+
+    static void failWithIOE(String msg) throws IOException {
+        fail(msg);
+        throw new IOException(msg);
+    }
+
+    static class FailingCloseInputStream extends InputStream {
+        boolean closed;
+        @Override
+        public int read()throws IOException {
+            if (closed)
+                failWithIOE("input stream is closed");
+            return 1;
+        }
+        @Override
+        public void close() throws IOException {
+            if (!closed) {
+                closed = true;
+                throw new IOException("close failed");
+            }
+        }
+    }
+
+    static class FailingCloseOutputStream extends OutputStream {
+        boolean closed;
+        @Override
+        public void write(int b) throws IOException {
+            if (closed)
+                failWithIOE("output stream is closed");
+        }
+        @Override
+        public void flush() throws IOException {
+            if (closed)
+                failWithIOE("output stream is closed");
+        }
+        @Override
+        public void close() throws IOException {
+            if (!closed) {
+                closed = true;
+                throw new IOException("close failed");
+            }
+        }
+    }
+
+    static class FailingFlushOutputStream extends OutputStream {
+        boolean closed;
+        @Override
+        public void write(int b) throws IOException {
+            if (closed)
+                failWithIOE("output stream is closed");
+        }
+        @Override
+        public void flush() throws IOException {
+            if (closed) {
+                failWithIOE("output stream is closed");
+            } else {
+                throw new IOException("flush failed");
+            }
+        }
+        @Override
+        public void close() throws IOException {
+            closed = true;
+        }
+    }
+
+    static class FailingCloseReader extends Reader {
+        boolean closed;
+        @Override
+        public int read(char[] cbuf, int off, int len) throws IOException {
+            if (closed)
+                failWithIOE("reader is closed");
+            return 1;
+        }
+        @Override
+        public void close() throws IOException {
+            if (!closed) {
+                closed = true;
+                throw new IOException("close failed");
+            }
+        }
+    }
+
+    static class FailingCloseWriter extends Writer {
+        boolean closed;
+        @Override
+        public void write(char[] cbuf, int off, int len) throws IOException {
+            if (closed)
+                failWithIOE("writer is closed");
+        }
+        @Override
+        public void flush() throws IOException {
+            if (closed)
+                failWithIOE("writer is closed");
+        }
+        @Override
+        public void close() throws IOException {
+            if (!closed) {
+                closed = true;
+                throw new IOException("close failed");
+            }
+        }
+    }
+
+    static class FailingFlushWriter extends Writer {
+        boolean closed;
+        @Override
+        public void write(char[] cbuf, int off, int len) throws IOException {
+            if (closed)
+                failWithIOE("writer is closed");
+        }
+        @Override
+        public void flush() throws IOException {
+            if (closed) {
+                failWithIOE("writer is closed");
+            } else {
+                throw new IOException("flush failed");
+            }
+        }
+        @Override
+        public void close() throws IOException {
+            if (!closed) {
+                closed = true;
+                throw new IOException("close failed");
+            }
+        }
+    }
+
+    static void testFailingClose(InputStream in) throws IOException {
+        System.out.println(in.getClass());
+        in.read(new byte[100]);
+        try {
+            in.close();
+            fail("close did not fail");
+        } catch (IOException expected) { }
+        try {
+            in.read(new byte[100]);
+            fail("read did not fail");
+        } catch (IOException expected) { }
+    }
+
+    static void testFailingClose(OutputStream out) throws IOException {
+        System.out.println(out.getClass());
+        out.write(1);
+        try {
+            out.close();
+            fail("close did not fail");
+        } catch (IOException expected) { }
+        try {
+            out.write(1);
+            if (!(out instanceof BufferedOutputStream))
+                fail("write did not fail");
+        } catch (IOException expected) { }
+    }
+
+    static void testFailingFlush(OutputStream out) throws IOException {
+        System.out.println(out.getClass());
+        out.write(1);
+        try {
+            out.flush();
+            fail("flush did not fail");
+        } catch (IOException expected) { }
+        if (out instanceof BufferedOutputStream) {
+            out.write(1);
+            try {
+                out.close();
+                fail("close did not fail");
+            } catch (IOException expected) { }
+        }
+    }
+
+    static void testFailingClose(Reader r) throws IOException {
+        System.out.println(r.getClass());
+        r.read(new char[100]);
+        try {
+            r.close();
+            fail("close did not fail");
+        } catch (IOException expected) { }
+        try {
+            r.read(new char[100]);
+            fail("read did not fail");
+        } catch (IOException expected) { }
+    }
+
+    static void testFailingClose(Writer w) throws IOException {
+        System.out.println(w.getClass());
+        w.write("message");
+        try {
+            w.close();
+            fail("close did not fail");
+        } catch (IOException expected) { }
+        try {
+            w.write("another message");
+            fail("write did not fail");
+        } catch (IOException expected) { }
+    }
+
+    static void testFailingFlush(Writer w) throws IOException {
+        System.out.println(w.getClass());
+        w.write("message");
+        try {
+            w.flush();
+            fail("flush did not fail");
+        } catch (IOException expected) { }
+        if (w instanceof BufferedWriter) {
+            // assume this message will be buffered
+            w.write("another message");
+            try {
+                w.close();
+                fail("close did not fail");
+            } catch (IOException expected) { }
+        }
+    }
+
+    public static void main(String[] args) throws IOException {
+
+        testFailingClose(new BufferedInputStream(new FailingCloseInputStream()));
+        testFailingClose(new BufferedOutputStream(new FailingCloseOutputStream()));
+
+        testFailingClose(new BufferedReader(new FailingCloseReader()));
+        testFailingClose(new BufferedWriter(new FailingCloseWriter()));
+
+        testFailingFlush(new BufferedOutputStream(new FailingFlushOutputStream()));
+        testFailingFlush(new BufferedWriter(new FailingFlushWriter()));
+
+        if (failed > 0)
+            throw new RuntimeException(failed + " test(s) failed - see log for details");
+    }
+}
diff --git a/jdk/test/java/io/etc/FileDescriptorSharing.java b/jdk/test/java/io/etc/FileDescriptorSharing.java
new file mode 100644
index 0000000..d46f61a
--- /dev/null
+++ b/jdk/test/java/io/etc/FileDescriptorSharing.java
@@ -0,0 +1,336 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6322678 7082769
+ * @summary FileInputStream/FileOutputStream/RandomAccessFile allow file descriptor
+ *          to be closed while still in use.
+ * @run main/othervm FileDescriptorSharing
+ */
+
+import java.io.*;
+import java.nio.channels.FileChannel;
+import java.nio.channels.FileLock;
+import java.util.concurrent.CountDownLatch;
+
+public class FileDescriptorSharing {
+
+    final static int numFiles = 10;
+    volatile static boolean fail;
+
+    public static void main(String[] args) throws Exception {
+        TestFinalizer();
+        TestMultipleFD();
+        TestIsValid();
+        MultiThreadedFD();
+    }
+
+    /**
+     * We shouldn't discard a file descriptor until all streams have
+     * finished with it
+     */
+    private static void TestFinalizer() throws Exception {
+        FileDescriptor fd = null;
+        File tempFile = new File("TestFinalizer1.txt");
+        tempFile.deleteOnExit();
+        try (Writer writer = new FileWriter(tempFile)) {
+            for (int i=0; i<5; i++) {
+                writer.write("test file content test file content");
+            }
+        }
+
+        FileInputStream fis1 = new FileInputStream(tempFile);
+        fd = fis1.getFD();
+        // Create a new FIS based on the existing FD (so the two FIS's share the same native fd)
+        try (FileInputStream fis2 = new FileInputStream(fd)) {
+            // allow fis1 to be gc'ed
+            fis1 = null;
+            int ret = 0;
+            while(ret >= 0) {
+                // encourage gc
+                System.gc();
+                // read from fis2 - when fis1 is gc'ed and finalizer is run, read will fail
+                System.out.print(".");
+                ret = fis2.read();
+            }
+        }
+
+        // variation of above. Use RandomAccessFile to obtain a filedescriptor
+        File testFinalizerFile = new File("TestFinalizer");
+        RandomAccessFile raf = new RandomAccessFile(testFinalizerFile, "rw");
+        raf.writeBytes("test file content test file content");
+        raf.seek(0L);
+        fd = raf.getFD();
+        try (FileInputStream fis3 = new FileInputStream(fd)) {
+            // allow raf to be gc'ed
+            raf = null;
+            int ret = 0;
+            while (ret >= 0) {
+                // encourage gc
+                System.gc();
+                /*
+                 * read from fis3 - when raf is gc'ed and finalizer is run,
+                 * fd should still be valid.
+                 */
+                System.out.print(".");
+                ret = fis3.read();
+            }
+            if(!fd.valid()) {
+                throw new RuntimeException("TestFinalizer() : FileDescriptor should be valid");
+            }
+        } finally {
+            testFinalizerFile.delete();
+        }
+    }
+
+    /**
+     * Exercise FileDispatcher close()/preClose()
+     */
+    private static void TestMultipleFD() throws Exception {
+        RandomAccessFile raf = null;
+        FileOutputStream fos = null;
+        FileInputStream fis = null;
+        FileChannel fc = null;
+        FileLock fileLock = null;
+
+        File test1 = new File("test1");
+        try {
+            raf = new RandomAccessFile(test1, "rw");
+            fos = new FileOutputStream(raf.getFD());
+            fis = new FileInputStream(raf.getFD());
+            fc = raf.getChannel();
+            fileLock = fc.lock();
+            raf.setLength(0L);
+            fos.flush();
+            fos.write("TEST".getBytes());
+        } finally {
+            if (fileLock != null) fileLock.release();
+            if (fis != null) fis.close();
+            if (fos != null) fos.close();
+            if (raf != null) raf.close();
+            test1.delete();
+        }
+
+        /*
+         * Close out in different order to ensure FD is not
+         * closed out too early
+         */
+        File test2 = new File("test2");
+        try {
+            raf = new RandomAccessFile(test2, "rw");
+            fos = new FileOutputStream(raf.getFD());
+            fis = new FileInputStream(raf.getFD());
+            fc = raf.getChannel();
+            fileLock = fc.lock();
+            raf.setLength(0L);
+            fos.flush();
+            fos.write("TEST".getBytes());
+        } finally {
+            if (fileLock != null) fileLock.release();
+            if (raf != null) raf.close();
+            if (fos != null) fos.close();
+            if (fis != null) fis.close();
+            test2.delete();
+        }
+
+        // one more time, fos first this time
+        File test3 = new File("test3");
+        try {
+            raf = new RandomAccessFile(test3, "rw");
+            fos = new FileOutputStream(raf.getFD());
+            fis = new FileInputStream(raf.getFD());
+            fc = raf.getChannel();
+            fileLock = fc.lock();
+            raf.setLength(0L);
+            fos.flush();
+            fos.write("TEST".getBytes());
+        } finally {
+            if (fileLock != null) fileLock.release();
+            if (fos != null) fos.close();
+            if (raf != null) raf.close();
+            if (fis != null) fis.close();
+            test3.delete();
+        }
+    }
+
+    /**
+     * Similar to TestMultipleFD() but this time we
+     * just get and use FileDescriptor.valid() for testing.
+     */
+    private static void TestIsValid() throws Exception {
+        FileDescriptor fd = null;
+        RandomAccessFile raf = null;
+        FileOutputStream fos = null;
+        FileInputStream fis = null;
+        FileChannel fc = null;
+
+        File test1 = new File("test1");
+        try {
+            raf = new RandomAccessFile(test1, "rw");
+            fd = raf.getFD();
+            fos = new FileOutputStream(fd);
+            fis = new FileInputStream(fd);
+        } finally {
+            try {
+                if (fis != null) fis.close();
+                if (fos != null) fos.close();
+                if (!fd.valid()) {
+                    throw new RuntimeException("FileDescriptor should be valid");
+                }
+                if (raf != null) raf.close();
+                if (fd.valid()) {
+                    throw new RuntimeException("close() called and FileDescriptor still valid");
+                }
+            } finally {
+                if (raf != null) raf.close();
+                test1.delete();
+            }
+        }
+
+        /*
+         * Close out in different order to ensure FD is not
+         * closed out too early
+         */
+        File test2 = new File("test2");
+        try {
+            raf = new RandomAccessFile(test2, "rw");
+            fd = raf.getFD();
+            fos = new FileOutputStream(fd);
+            fis = new FileInputStream(fd);
+        } finally {
+            try {
+                if (raf != null) raf.close();
+                if (fos != null) fos.close();
+                if (!fd.valid()) {
+                    throw new RuntimeException("FileDescriptor should be valid");
+                }
+                if (fis != null) fis.close();
+                if (fd.valid()) {
+                    throw new RuntimeException("close() called and FileDescriptor still valid");
+                }
+            } finally {
+                test2.delete();
+            }
+        }
+
+        // one more time, fos first this time
+        File test3 = new File("test3");
+        try {
+            raf = new RandomAccessFile(test3, "rw");
+            fd = raf.getFD();
+            fos = new FileOutputStream(fd);
+            fis = new FileInputStream(fd);
+        } finally {
+            try {
+                if (fos != null) fos.close();
+                if (raf != null) raf.close();
+                if (!fd.valid()) {
+                    throw new RuntimeException("FileDescriptor should be valid");
+                }
+                if (fis != null) fis.close();
+                if (fd.valid()) {
+                    throw new RuntimeException("close() called and FileDescriptor still valid");
+                }
+            } finally {
+                test3.delete();
+            }
+        }
+    }
+
+    /**
+     * Test concurrent access to the same fd.useCount field
+     */
+    private static void MultiThreadedFD() throws Exception {
+        RandomAccessFile raf = null;
+        FileDescriptor fd = null;
+        int numThreads = 2;
+        CountDownLatch done = new CountDownLatch(numThreads);
+        OpenClose[] fileOpenClose = new OpenClose[numThreads];
+        File MultipleThreadedFD = new File("MultipleThreadedFD");
+        try {
+            raf = new RandomAccessFile(MultipleThreadedFD, "rw");
+            fd = raf.getFD();
+            for(int count=0;count<numThreads;count++) {
+                fileOpenClose[count] = new OpenClose(fd, done);
+                fileOpenClose[count].start();
+            }
+            done.await();
+        } finally {
+            try {
+                if(raf != null) raf.close();
+                // fd should now no longer be valid
+                if(fd.valid()) {
+                    throw new RuntimeException("FileDescriptor should not be valid");
+                }
+                // OpenClose thread tests failed
+                if(fail) {
+                    throw new RuntimeException("OpenClose thread tests failed.");
+                }
+            } finally {
+                MultipleThreadedFD.delete();
+            }
+        }
+    }
+
+    /**
+     * A thread which will open and close a number of FileInputStreams and
+     * FileOutputStreams referencing the same native file descriptor.
+     */
+    private static class OpenClose extends Thread {
+        private FileDescriptor fd = null;
+        private CountDownLatch done;
+        FileInputStream[] fisArray = new FileInputStream[numFiles];
+        FileOutputStream[] fosArray = new FileOutputStream[numFiles];
+
+        OpenClose(FileDescriptor filedescriptor, CountDownLatch done) {
+            this.fd = filedescriptor;
+            this.done = done;
+        }
+
+        public void run() {
+             try {
+                 for(int i=0;i<numFiles;i++) {
+                     fisArray[i] = new FileInputStream(fd);
+                     fosArray[i] = new FileOutputStream(fd);
+                 }
+
+                 // Now close out
+                 for(int i=0;i<numFiles;i++) {
+                     if(fisArray[i] != null) fisArray[i].close();
+                     if(fosArray[i] != null) fosArray[i].close();
+                 }
+
+             } catch(IOException ioe) {
+                 System.out.println("OpenClose encountered IO issue :" + ioe);
+                 fail = true;
+             } finally {
+                 if (!fd.valid()) { // fd should still be valid given RAF reference
+                     System.out.println("OpenClose: FileDescriptor should be valid");
+                     fail = true;
+                 }
+                 done.countDown();
+             }
+         }
+    }
+}
diff --git a/jdk/test/java/lang/Double/ParseHexFloatingPoint.java b/jdk/test/java/lang/Double/ParseHexFloatingPoint.java
index 99fc676..57c3d69 100644
--- a/jdk/test/java/lang/Double/ParseHexFloatingPoint.java
+++ b/jdk/test/java/lang/Double/ParseHexFloatingPoint.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,6 @@
 
 
 import java.util.regex.*;
-import sun.misc.FpUtils;
 import sun.misc.DoubleConsts;
 
 public class ParseHexFloatingPoint {
@@ -227,7 +226,7 @@ public class ParseHexFloatingPoint {
             new PairSD("0x1.000000000000001p-1075",     Double.MIN_VALUE),
 
             // More subnormal rounding tests
-            new PairSD("0x0.fffffffffffff7fffffp-1022", FpUtils.nextDown(DoubleConsts.MIN_NORMAL)),
+            new PairSD("0x0.fffffffffffff7fffffp-1022", Math.nextDown(DoubleConsts.MIN_NORMAL)),
             new PairSD("0x0.fffffffffffff8p-1022",      DoubleConsts.MIN_NORMAL),
             new PairSD("0x0.fffffffffffff800000001p-1022",DoubleConsts.MIN_NORMAL),
             new PairSD("0x0.fffffffffffff80000000000000001p-1022",DoubleConsts.MIN_NORMAL),
@@ -242,10 +241,10 @@ public class ParseHexFloatingPoint {
             new PairSD("0x1.fffffffffffff8p1023",       infinityD),
             new PairSD("0x1.fffffffffffff8000001p1023", infinityD),
 
-            new PairSD("0x1.ffffffffffffep1023",        FpUtils.nextDown(Double.MAX_VALUE)),
-            new PairSD("0x1.ffffffffffffe0000p1023",    FpUtils.nextDown(Double.MAX_VALUE)),
-            new PairSD("0x1.ffffffffffffe8p1023",       FpUtils.nextDown(Double.MAX_VALUE)),
-            new PairSD("0x1.ffffffffffffe7p1023",       FpUtils.nextDown(Double.MAX_VALUE)),
+            new PairSD("0x1.ffffffffffffep1023",        Math.nextDown(Double.MAX_VALUE)),
+            new PairSD("0x1.ffffffffffffe0000p1023",    Math.nextDown(Double.MAX_VALUE)),
+            new PairSD("0x1.ffffffffffffe8p1023",       Math.nextDown(Double.MAX_VALUE)),
+            new PairSD("0x1.ffffffffffffe7p1023",       Math.nextDown(Double.MAX_VALUE)),
             new PairSD("0x1.ffffffffffffeffffffp1023",  Double.MAX_VALUE),
             new PairSD("0x1.ffffffffffffe8000001p1023", Double.MAX_VALUE),
         };
@@ -284,8 +283,8 @@ public class ParseHexFloatingPoint {
         };
 
         double [] answers = {
-            FpUtils.nextDown(FpUtils.nextDown(2.0)),
-            FpUtils.nextDown(2.0),
+            Math.nextDown(Math.nextDown(2.0)),
+            Math.nextDown(2.0),
             2.0
         };
 
diff --git a/jdk/test/java/lang/Double/ToHexString.java b/jdk/test/java/lang/Double/ToHexString.java
index fcea456..c9fb07e 100644
--- a/jdk/test/java/lang/Double/ToHexString.java
+++ b/jdk/test/java/lang/Double/ToHexString.java
@@ -29,7 +29,6 @@
  */
 
 import java.util.regex.*;
-import sun.misc.FpUtils;
 import sun.misc.DoubleConsts;
 
 public class ToHexString {
diff --git a/jdk/test/java/lang/Math/CeilAndFloorTests.java b/jdk/test/java/lang/Math/CeilAndFloorTests.java
index 7d7e2fd..b828b7a 100644
--- a/jdk/test/java/lang/Math/CeilAndFloorTests.java
+++ b/jdk/test/java/lang/Math/CeilAndFloorTests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@
  * @summary Check for correct implementation of Math.ceil and Math.floor
  */
 
-import sun.misc.FpUtils;
 import sun.misc.DoubleConsts;
 
 public class CeilAndFloorTests {
@@ -69,7 +68,7 @@ public class CeilAndFloorTests {
 
         for(int i = Double.MIN_EXPONENT; i <= Double.MAX_EXPONENT; i++) {
             double powerOfTwo   = Math.scalb(1.0, i);
-            double neighborDown = FpUtils.nextDown(powerOfTwo);
+            double neighborDown = Math.nextDown(powerOfTwo);
             double neighborUp   = Math.nextUp(powerOfTwo);
 
             if (i < 0) {
@@ -114,7 +113,7 @@ public class CeilAndFloorTests {
 
         for(int i = -(0x10000); i <= 0x10000; i++) {
             double d = (double) i;
-            double neighborDown = FpUtils.nextDown(d);
+            double neighborDown = Math.nextDown(d);
             double neighborUp   = Math.nextUp(d);
 
             failures += testCeilCase( d, d);
@@ -140,8 +139,8 @@ public class CeilAndFloorTests {
         double [][] testCases = {
             { Double.MIN_VALUE,                           1.0},
             {-Double.MIN_VALUE,                          -0.0},
-            { FpUtils.nextDown(DoubleConsts.MIN_NORMAL),  1.0},
-            {-FpUtils.nextDown(DoubleConsts.MIN_NORMAL), -0.0},
+            { Math.nextDown(DoubleConsts.MIN_NORMAL),     1.0},
+            {-Math.nextDown(DoubleConsts.MIN_NORMAL),    -0.0},
             { DoubleConsts.MIN_NORMAL,                    1.0},
             {-DoubleConsts.MIN_NORMAL,                   -0.0},
 
@@ -157,8 +156,8 @@ public class CeilAndFloorTests {
             { 2.5,                                        3.0},
             {-2.5,                                       -2.0},
 
-            { FpUtils.nextDown(1.0),                      1.0},
-            { FpUtils.nextDown(-1.0),                    -1.0},
+            { Math.nextDown(1.0),                         1.0},
+            { Math.nextDown(-1.0),                       -1.0},
 
             { Math.nextUp(1.0),                           2.0},
             { Math.nextUp(-1.0),                         -0.0},
@@ -166,17 +165,17 @@ public class CeilAndFloorTests {
             { 0x1.0p51,                                 0x1.0p51},
             {-0x1.0p51,                                -0x1.0p51},
 
-            { FpUtils.nextDown(0x1.0p51),               0x1.0p51},
+            { Math.nextDown(0x1.0p51),                  0x1.0p51},
             {-Math.nextUp(0x1.0p51),                   -0x1.0p51},
 
             { Math.nextUp(0x1.0p51),                    0x1.0p51+1},
-            {-FpUtils.nextDown(0x1.0p51),              -0x1.0p51+1},
+            {-Math.nextDown(0x1.0p51),                 -0x1.0p51+1},
 
-            { FpUtils.nextDown(0x1.0p52),               0x1.0p52},
+            { Math.nextDown(0x1.0p52),                  0x1.0p52},
             {-Math.nextUp(0x1.0p52),                   -0x1.0p52-1.0},
 
             { Math.nextUp(0x1.0p52),                    0x1.0p52+1.0},
-            {-FpUtils.nextDown(0x1.0p52),              -0x1.0p52+1.0},
+            {-Math.nextDown(0x1.0p52),                 -0x1.0p52+1.0},
         };
 
         for(double[] testCase : testCases) {
diff --git a/jdk/test/java/lang/Math/CubeRootTests.java b/jdk/test/java/lang/Math/CubeRootTests.java
index 6b70da3..9b180d1 100644
--- a/jdk/test/java/lang/Math/CubeRootTests.java
+++ b/jdk/test/java/lang/Math/CubeRootTests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,6 @@
  * @author Joseph D. Darcy
  */
 
-import sun.misc.FpUtils;
 import sun.misc.DoubleConsts;
 
 public class CubeRootTests {
@@ -95,14 +94,14 @@ public class CubeRootTests {
 
         // Test cbrt(2^(3n)) = 2^n.
         for(int i = 18; i <= DoubleConsts.MAX_EXPONENT/3; i++) {
-            failures += testCubeRootCase(FpUtils.scalb(1.0, 3*i),
-                                         FpUtils.scalb(1.0, i) );
+            failures += testCubeRootCase(Math.scalb(1.0, 3*i),
+                                         Math.scalb(1.0, i) );
         }
 
         // Test cbrt(2^(-3n)) = 2^-n.
-        for(int i = -1; i >= FpUtils.ilogb(Double.MIN_VALUE)/3; i--) {
-            failures += testCubeRootCase(FpUtils.scalb(1.0, 3*i),
-                                         FpUtils.scalb(1.0, i) );
+        for(int i = -1; i >= DoubleConsts.MIN_SUB_EXPONENT/3; i--) {
+            failures += testCubeRootCase(Math.scalb(1.0, 3*i),
+                                         Math.scalb(1.0, i) );
         }
 
         // Test random perfect cubes.  Create double values with
@@ -110,10 +109,10 @@ public class CubeRootTests {
         // significant bits in the significand set; 17*3 = 51, which
         // is less than the number of bits in a double's significand.
         long exponentBits1 =
-            Double.doubleToLongBits(FpUtils.scalb(1.0, 55)) &
+            Double.doubleToLongBits(Math.scalb(1.0, 55)) &
             DoubleConsts.EXP_BIT_MASK;
         long exponentBits2=
-            Double.doubleToLongBits(FpUtils.scalb(1.0, -55)) &
+            Double.doubleToLongBits(Math.scalb(1.0, -55)) &
             DoubleConsts.EXP_BIT_MASK;
         for(int i = 0; i < 100; i++) {
             // Take 16 bits since the 17th bit is implicit in the
@@ -177,16 +176,16 @@ public class CubeRootTests {
 
             err = d - StrictMath.pow(y1, 3);
             if (err != 0.0) {
-                if(FpUtils.isNaN(err)) {
+                if(Double.isNaN(err)) {
                     failures++;
                     System.err.println("Encountered unexpected NaN value: d = " + d +
                                        "\tcbrt(d) = " + y1);
                 } else {
                     if (err < 0.0) {
-                        err_adjacent = StrictMath.pow(FpUtils.nextUp(y1), 3) - d;
+                        err_adjacent = StrictMath.pow(Math.nextUp(y1), 3) - d;
                     }
                     else  { // (err > 0.0)
-                        err_adjacent = StrictMath.pow(FpUtils.nextAfter(y1,0.0), 3) - d;
+                        err_adjacent = StrictMath.pow(Math.nextAfter(y1,0.0), 3) - d;
                     }
 
                     if (Math.abs(err) > Math.abs(err_adjacent)) {
@@ -200,16 +199,16 @@ public class CubeRootTests {
 
             err = d - StrictMath.pow(y2, 3);
             if (err != 0.0) {
-                if(FpUtils.isNaN(err)) {
+                if(Double.isNaN(err)) {
                     failures++;
                     System.err.println("Encountered unexpected NaN value: d = " + d +
                                        "\tcbrt(d) = " + y2);
                 } else {
                     if (err < 0.0) {
-                        err_adjacent = StrictMath.pow(FpUtils.nextUp(y2), 3) - d;
+                        err_adjacent = StrictMath.pow(Math.nextUp(y2), 3) - d;
                     }
                     else  { // (err > 0.0)
-                        err_adjacent = StrictMath.pow(FpUtils.nextAfter(y2,0.0), 3) - d;
+                        err_adjacent = StrictMath.pow(Math.nextAfter(y2,0.0), 3) - d;
                     }
 
                     if (Math.abs(err) > Math.abs(err_adjacent)) {
@@ -242,13 +241,13 @@ public class CubeRootTests {
 
             // Test near cbrt(2^(3n)) = 2^n.
             for(int i = 18; i <= DoubleConsts.MAX_EXPONENT/3; i++) {
-                double pc = FpUtils.scalb(1.0, 3*i);
+                double pc = Math.scalb(1.0, 3*i);
 
                 pcNeighbors[2] = pc;
-                pcNeighbors[1] = FpUtils.nextDown(pc);
-                pcNeighbors[0] = FpUtils.nextDown(pcNeighbors[1]);
-                pcNeighbors[3] = FpUtils.nextUp(pc);
-                pcNeighbors[4] = FpUtils.nextUp(pcNeighbors[3]);
+                pcNeighbors[1] = Math.nextDown(pc);
+                pcNeighbors[0] = Math.nextDown(pcNeighbors[1]);
+                pcNeighbors[3] = Math.nextUp(pc);
+                pcNeighbors[4] = Math.nextUp(pcNeighbors[3]);
 
                 for(int j = 0; j < pcNeighbors.length; j++) {
                     pcNeighborsCbrt[j] =           Math.cbrt(pcNeighbors[j]);
@@ -280,14 +279,14 @@ public class CubeRootTests {
             }
 
             // Test near cbrt(2^(-3n)) = 2^-n.
-            for(int i = -1; i >= FpUtils.ilogb(Double.MIN_VALUE)/3; i--) {
-                double pc = FpUtils.scalb(1.0, 3*i);
+            for(int i = -1; i >= DoubleConsts.MIN_SUB_EXPONENT/3; i--) {
+                double pc = Math.scalb(1.0, 3*i);
 
                 pcNeighbors[2] = pc;
-                pcNeighbors[1] = FpUtils.nextDown(pc);
-                pcNeighbors[0] = FpUtils.nextDown(pcNeighbors[1]);
-                pcNeighbors[3] = FpUtils.nextUp(pc);
-                pcNeighbors[4] = FpUtils.nextUp(pcNeighbors[3]);
+                pcNeighbors[1] = Math.nextDown(pc);
+                pcNeighbors[0] = Math.nextDown(pcNeighbors[1]);
+                pcNeighbors[3] = Math.nextUp(pc);
+                pcNeighbors[4] = Math.nextUp(pcNeighbors[3]);
 
                 for(int j = 0; j < pcNeighbors.length; j++) {
                     pcNeighborsCbrt[j] =           Math.cbrt(pcNeighbors[j]);
diff --git a/jdk/test/java/lang/Math/Expm1Tests.java b/jdk/test/java/lang/Math/Expm1Tests.java
index 49fb968..b10934e 100644
--- a/jdk/test/java/lang/Math/Expm1Tests.java
+++ b/jdk/test/java/lang/Math/Expm1Tests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@
  */
 
 import sun.misc.DoubleConsts;
-import sun.misc.FpUtils;
 
 /*
  * The Taylor expansion of expxm1(x) = exp(x) -1 is
@@ -82,7 +81,7 @@ public class Expm1Tests {
 
         // For |x| < 2^-54 expm1(x) ~= x
         for(int i = DoubleConsts.MIN_SUB_EXPONENT; i <= -54; i++) {
-            double d = FpUtils.scalb(2, i);
+            double d = Math.scalb(2, i);
             failures += testExpm1Case(d, d);
             failures += testExpm1Case(-d, -d);
         }
@@ -101,7 +100,7 @@ public class Expm1Tests {
 
         // For x > 710, expm1(x) should be infinity
         for(int i = 10; i <= DoubleConsts.MAX_EXPONENT; i++) {
-            double d = FpUtils.scalb(2, i);
+            double d = Math.scalb(2, i);
             failures += testExpm1Case(d, infinityD);
         }
 
@@ -118,7 +117,7 @@ public class Expm1Tests {
         }
 
         for(int i = 7; i <= DoubleConsts.MAX_EXPONENT; i++) {
-            double d = -FpUtils.scalb(2, i);
+            double d = -Math.scalb(2, i);
             failures += testExpm1CaseWithUlpDiff(d, -1.0, 1, reachedLimit);
         }
 
@@ -143,10 +142,10 @@ public class Expm1Tests {
                 double pc = StrictMath.log(2)*i;
 
                 pcNeighbors[2] = pc;
-                pcNeighbors[1] = FpUtils.nextDown(pc);
-                pcNeighbors[0] = FpUtils.nextDown(pcNeighbors[1]);
-                pcNeighbors[3] = FpUtils.nextUp(pc);
-                pcNeighbors[4] = FpUtils.nextUp(pcNeighbors[3]);
+                pcNeighbors[1] = Math.nextDown(pc);
+                pcNeighbors[0] = Math.nextDown(pcNeighbors[1]);
+                pcNeighbors[3] = Math.nextUp(pc);
+                pcNeighbors[4] = Math.nextUp(pcNeighbors[3]);
 
                 for(int j = 0; j < pcNeighbors.length; j++) {
                     pcNeighborsExpm1[j]       =       Math.expm1(pcNeighbors[j]);
diff --git a/jdk/test/java/lang/Math/HyperbolicTests.java b/jdk/test/java/lang/Math/HyperbolicTests.java
index db12157..0899df8 100644
--- a/jdk/test/java/lang/Math/HyperbolicTests.java
+++ b/jdk/test/java/lang/Math/HyperbolicTests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@
  */
 
 import sun.misc.DoubleConsts;
-import sun.misc.FpUtils;
 
 public class HyperbolicTests {
     private HyperbolicTests(){}
@@ -266,7 +265,7 @@ public class HyperbolicTests {
         // double significand.
 
         for(int i = DoubleConsts.MIN_SUB_EXPONENT; i < -27; i++) {
-            double d = FpUtils.scalb(2.0, i);
+            double d = Math.scalb(2.0, i);
 
             // Result and expected are the same.
             failures += testSinhCaseWithUlpDiff(d, d, 2.5);
@@ -280,7 +279,7 @@ public class HyperbolicTests {
         long trans22 = Double.doubleToLongBits(22.0);
         // (approximately) largest value such that exp shouldn't
         // overflow
-        long transExpOvfl = Double.doubleToLongBits(FpUtils.nextDown(709.7827128933841));
+        long transExpOvfl = Double.doubleToLongBits(Math.nextDown(709.7827128933841));
 
         for(long i = trans22;
             i < transExpOvfl;
@@ -344,7 +343,7 @@ public class HyperbolicTests {
         // sinh(x) overflows for values greater than 710; in
         // particular, it overflows for all 2^i, i > 10.
         for(int i = 10; i <= DoubleConsts.MAX_EXPONENT; i++) {
-            double d = FpUtils.scalb(2.0, i);
+            double d = Math.scalb(2.0, i);
 
             // Result and expected are the same.
             failures += testSinhCaseWithUlpDiff(d,
@@ -625,7 +624,7 @@ public class HyperbolicTests {
         // rounded.
 
         for(int i = DoubleConsts.MIN_SUB_EXPONENT; i < -27; i++) {
-            double d = FpUtils.scalb(2.0, i);
+            double d = Math.scalb(2.0, i);
 
             // Result and expected are the same.
             failures += testCoshCaseWithUlpDiff(d, 1.0, 2.5);
@@ -639,7 +638,7 @@ public class HyperbolicTests {
         long trans22 = Double.doubleToLongBits(22.0);
         // (approximately) largest value such that exp shouldn't
         // overflow
-        long transExpOvfl = Double.doubleToLongBits(FpUtils.nextDown(709.7827128933841));
+        long transExpOvfl = Double.doubleToLongBits(Math.nextDown(709.7827128933841));
 
         for(long i = trans22;
             i < transExpOvfl;
@@ -703,7 +702,7 @@ public class HyperbolicTests {
         // cosh(x) overflows for values greater than 710; in
         // particular, it overflows for all 2^i, i > 10.
         for(int i = 10; i <= DoubleConsts.MAX_EXPONENT; i++) {
-            double d = FpUtils.scalb(2.0, i);
+            double d = Math.scalb(2.0, i);
 
             // Result and expected are the same.
             failures += testCoshCaseWithUlpDiff(d,
@@ -984,7 +983,7 @@ public class HyperbolicTests {
         // double significand.
 
         for(int i = DoubleConsts.MIN_SUB_EXPONENT; i < -27; i++) {
-            double d = FpUtils.scalb(2.0, i);
+            double d = Math.scalb(2.0, i);
 
             // Result and expected are the same.
             failures += testTanhCaseWithUlpDiff(d, d, 2.5);
@@ -998,7 +997,7 @@ public class HyperbolicTests {
         }
 
         for(int i = 5; i <= DoubleConsts.MAX_EXPONENT; i++) {
-            double d = FpUtils.scalb(2.0, i);
+            double d = Math.scalb(2.0, i);
 
             failures += testTanhCaseWithUlpDiff(d, 1.0, 2.5);
         }
diff --git a/jdk/test/java/lang/Math/HypotTests.java b/jdk/test/java/lang/Math/HypotTests.java
index e124220..d48a6f9 100644
--- a/jdk/test/java/lang/Math/HypotTests.java
+++ b/jdk/test/java/lang/Math/HypotTests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -90,7 +90,7 @@ public class HypotTests {
         for(int i = DoubleConsts.MIN_SUB_EXPONENT;
             i <= DoubleConsts.MAX_EXPONENT;
             i++) {
-            double input = FpUtils.scalb(2, i);
+            double input = Math.scalb(2, i);
             failures += testHypotCase(input, 0.0, input);
         }
 
@@ -126,7 +126,7 @@ public class HypotTests {
         for(int i = 0; i < 1000; i++) {
             double d = rand.nextDouble();
             // Scale d to have an exponent equal to MAX_EXPONENT -15
-            d = FpUtils.scalb(d, DoubleConsts.MAX_EXPONENT
+            d = Math.scalb(d, DoubleConsts.MAX_EXPONENT
                                  -15 - FpUtils.ilogb(d));
             for(int j = 0; j <= 13; j += 1) {
                 failures += testHypotCase(3*d, 4*d, 5*d, 2.5);
@@ -153,13 +153,13 @@ public class HypotTests {
 
 
             for(int i = -18; i <= 18; i++) {
-                double pc = FpUtils.scalb(1.0, i);
+                double pc = Math.scalb(1.0, i);
 
                 pcNeighbors[2] = pc;
-                pcNeighbors[1] = FpUtils.nextDown(pc);
-                pcNeighbors[0] = FpUtils.nextDown(pcNeighbors[1]);
-                pcNeighbors[3] = FpUtils.nextUp(pc);
-                pcNeighbors[4] = FpUtils.nextUp(pcNeighbors[3]);
+                pcNeighbors[1] = Math.nextDown(pc);
+                pcNeighbors[0] = Math.nextDown(pcNeighbors[1]);
+                pcNeighbors[3] = Math.nextUp(pc);
+                pcNeighbors[4] = Math.nextUp(pcNeighbors[3]);
 
                 for(int j = 0; j < pcNeighbors.length; j++) {
                     pcNeighborsHypot[j]       =       Math.hypot(2.0, pcNeighbors[j]);
diff --git a/jdk/test/java/lang/Math/IeeeRecommendedTests.java b/jdk/test/java/lang/Math/IeeeRecommendedTests.java
index 6b4199e..f776bbf 100644
--- a/jdk/test/java/lang/Math/IeeeRecommendedTests.java
+++ b/jdk/test/java/lang/Math/IeeeRecommendedTests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -177,7 +177,7 @@ public class IeeeRecommendedTests {
             }
 
             if (i > FloatConsts.MIN_EXPONENT) {
-                float po2minus = FpUtils.nextAfter(po2,
+                float po2minus = Math.nextAfter(po2,
                                                  Float.NEGATIVE_INFINITY);
                 failures += testGetExponentCase(po2minus, i-1);
             }
@@ -205,7 +205,7 @@ public class IeeeRecommendedTests {
             // Test largest value in next smaller binade
             if (i >= 3) {// (i == 1) would test 0.0;
                          // (i == 2) would just retest MIN_VALUE
-                testGetExponentCase(FpUtils.nextAfter(top, 0.0f),
+                testGetExponentCase(Math.nextAfter(top, 0.0f),
                                     FloatConsts.MIN_EXPONENT - 1);
 
                 if( i >= 10) {
@@ -284,7 +284,7 @@ public class IeeeRecommendedTests {
             }
 
             if (i > DoubleConsts.MIN_EXPONENT) {
-                double po2minus = FpUtils.nextAfter(po2,
+                double po2minus = Math.nextAfter(po2,
                                                     Double.NEGATIVE_INFINITY);
                 failures += testGetExponentCase(po2minus, i-1);
             }
@@ -312,7 +312,7 @@ public class IeeeRecommendedTests {
             // Test largest value in next smaller binade
             if (i >= 3) {// (i == 1) would test 0.0;
                          // (i == 2) would just retest MIN_VALUE
-                testGetExponentCase(FpUtils.nextAfter(top, 0.0),
+                testGetExponentCase(Math.nextAfter(top, 0.0),
                                     DoubleConsts.MIN_EXPONENT - 1);
 
                 if( i >= 10) {
@@ -623,8 +623,11 @@ public class IeeeRecommendedTests {
         };
 
         for(int i = 0; i < testCases.length; i++) {
-            failures+=Tests.test("FpUtils.nextDown(float)",
-                                 testCases[i][0], FpUtils.nextDown(testCases[i][0]), testCases[i][1]);
+            failures+=Tests.test("Math.nextDown(float)",
+                                 testCases[i][0], Math.nextDown(testCases[i][0]), testCases[i][1]);
+
+            failures+=Tests.test("StrictMath.nextDown(float)",
+                                 testCases[i][0], StrictMath.nextDown(testCases[i][0]), testCases[i][1]);
         }
 
         return failures;
@@ -659,8 +662,11 @@ public class IeeeRecommendedTests {
         };
 
         for(int i = 0; i < testCases.length; i++) {
-            failures+=Tests.test("FpUtils.nextDown(double)",
-                                 testCases[i][0], FpUtils.nextDown(testCases[i][0]), testCases[i][1]);
+            failures+=Tests.test("Math.nextDown(double)",
+                                 testCases[i][0], Math.nextDown(testCases[i][0]), testCases[i][1]);
+
+            failures+=Tests.test("StrictMath.nextDown(double)",
+                                 testCases[i][0], StrictMath.nextDown(testCases[i][0]), testCases[i][1]);
         }
 
         return failures;
@@ -706,8 +712,8 @@ public class IeeeRecommendedTests {
                                  FpUtils.isNaN(testCases[i]), (i ==0));
 
             // isFinite
-            failures+=Tests.test("FpUtils.isFinite(float)", testCases[i],
-                                 FpUtils.isFinite(testCases[i]), (i >= 3));
+            failures+=Tests.test("Float.isFinite(float)", testCases[i],
+                                 Float.isFinite(testCases[i]), (i >= 3));
 
             // isInfinite
             failures+=Tests.test("FpUtils.isInfinite(float)", testCases[i],
@@ -756,8 +762,8 @@ public class IeeeRecommendedTests {
                                  FpUtils.isNaN(testCases[i]), (i ==0));
 
             // isFinite
-            failures+=Tests.test("FpUtils.isFinite(double)", testCases[i],
-                                 FpUtils.isFinite(testCases[i]), (i >= 3));
+            failures+=Tests.test("Double.isFinite(double)", testCases[i],
+                                 Double.isFinite(testCases[i]), (i >= 3));
 
             // isInfinite
             failures+=Tests.test("FpUtils.isInfinite(double)", testCases[i],
@@ -1061,7 +1067,7 @@ public class IeeeRecommendedTests {
                     float value = someTestCases[i];
                     failures+=testScalbCase(value,
                                             scaleFactor,
-                                            FpUtils.copySign( (scaleFactor>0?infinityF:0.0f), value) );
+                                            Math.copySign( (scaleFactor>0?infinityF:0.0f), value) );
                 }
             }
         }
@@ -1095,7 +1101,7 @@ public class IeeeRecommendedTests {
                 failures+=testScalbCase(value,
                                         scaleFactor,
                                         (FpUtils.ilogb(value) +j > FloatConsts.MAX_EXPONENT ) ?
-                                        FpUtils.copySign(infinityF, value) : // overflow
+                                        Math.copySign(infinityF, value) : // overflow
                                         // calculate right answer
                                         twoToTheMaxExp*(twoToTheMaxExp*(scale*value)) );
                 scale*=2.0f;
@@ -1268,7 +1274,7 @@ public class IeeeRecommendedTests {
                     double value = someTestCases[i];
                     failures+=testScalbCase(value,
                                             scaleFactor,
-                                            FpUtils.copySign( (scaleFactor>0?infinityD:0.0), value) );
+                                            Math.copySign( (scaleFactor>0?infinityD:0.0), value) );
                 }
             }
         }
@@ -1302,7 +1308,7 @@ public class IeeeRecommendedTests {
                 failures+=testScalbCase(value,
                                         scaleFactor,
                                         (FpUtils.ilogb(value) +j > DoubleConsts.MAX_EXPONENT ) ?
-                                        FpUtils.copySign(infinityD, value) : // overflow
+                                        Math.copySign(infinityD, value) : // overflow
                                         // calculate right answer
                                         twoToTheMaxExp*(twoToTheMaxExp*(scale*value)) );
                 scale*=2.0;
@@ -1423,7 +1429,7 @@ public class IeeeRecommendedTests {
 
             // Create power of two
             float po2 = powerOfTwoF(i);
-            expected = FpUtils.scalb(1.0f, i - (FloatConsts.SIGNIFICAND_WIDTH-1));
+            expected = Math.scalb(1.0f, i - (FloatConsts.SIGNIFICAND_WIDTH-1));
 
             failures += testUlpCase(po2, expected);
 
@@ -1443,7 +1449,7 @@ public class IeeeRecommendedTests {
             }
 
             if (i > FloatConsts.MIN_EXPONENT) {
-                float po2minus = FpUtils.nextAfter(po2,
+                float po2minus = Math.nextAfter(po2,
                                                    Float.NEGATIVE_INFINITY);
                 failures += testUlpCase(po2minus, expected/2.0f);
             }
@@ -1470,7 +1476,7 @@ public class IeeeRecommendedTests {
             // Test largest value in next smaller binade
             if (i >= 3) {// (i == 1) would test 0.0;
                          // (i == 2) would just retest MIN_VALUE
-                testUlpCase(FpUtils.nextAfter(top, 0.0f),
+                testUlpCase(Math.nextAfter(top, 0.0f),
                             Float.MIN_VALUE);
 
                 if( i >= 10) {
@@ -1528,7 +1534,7 @@ public class IeeeRecommendedTests {
 
             // Create power of two
             double po2 = powerOfTwoD(i);
-            expected = FpUtils.scalb(1.0, i - (DoubleConsts.SIGNIFICAND_WIDTH-1));
+            expected = Math.scalb(1.0, i - (DoubleConsts.SIGNIFICAND_WIDTH-1));
 
             failures += testUlpCase(po2, expected);
 
@@ -1548,7 +1554,7 @@ public class IeeeRecommendedTests {
             }
 
             if (i > DoubleConsts.MIN_EXPONENT) {
-                double po2minus = FpUtils.nextAfter(po2,
+                double po2minus = Math.nextAfter(po2,
                                                     Double.NEGATIVE_INFINITY);
                 failures += testUlpCase(po2minus, expected/2.0f);
             }
@@ -1575,7 +1581,7 @@ public class IeeeRecommendedTests {
             // Test largest value in next smaller binade
             if (i >= 3) {// (i == 1) would test 0.0;
                          // (i == 2) would just retest MIN_VALUE
-                testUlpCase(FpUtils.nextAfter(top, 0.0f),
+                testUlpCase(Math.nextAfter(top, 0.0f),
                             Double.MIN_VALUE);
 
                 if( i >= 10) {
diff --git a/jdk/test/java/lang/Math/Log10Tests.java b/jdk/test/java/lang/Math/Log10Tests.java
index 60d9ec6..a9f169a 100644
--- a/jdk/test/java/lang/Math/Log10Tests.java
+++ b/jdk/test/java/lang/Math/Log10Tests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,6 @@
  * @author Joseph D. Darcy
  */
 
-import sun.misc.FpUtils;
 import sun.misc.DoubleConsts;
 
 public class Log10Tests {
@@ -98,13 +97,13 @@ public class Log10Tests {
         // within a few ulps of log(x)/log(10)
         for(int i = 0; i < 10000; i++) {
             double input = Double.longBitsToDouble(rand.nextLong());
-            if(! FpUtils.isFinite(input))
+            if(! Double.isFinite(input))
                 continue; // avoid testing NaN and infinite values
             else {
                 input = Math.abs(input);
 
                 double expected = StrictMath.log(input)/LN_10;
-                if( ! FpUtils.isFinite(expected))
+                if( ! Double.isFinite(expected))
                     continue; // if log(input) overflowed, try again
                 else {
                     double result;
@@ -153,16 +152,16 @@ public class Log10Tests {
             for(int i = 0; i < half; i++) {
                 if (i == 0) {
                     input[half] = 1.0;
-                    up   = FpUtils.nextUp(1.0);
-                    down = FpUtils.nextDown(1.0);
+                    up   = Math.nextUp(1.0);
+                    down = Math.nextDown(1.0);
                 } else {
                     input[half + i] = up;
                     input[half - i] = down;
-                    up   = FpUtils.nextUp(up);
-                    down = FpUtils.nextDown(down);
+                    up   = Math.nextUp(up);
+                    down = Math.nextDown(down);
                 }
             }
-            input[0] = FpUtils.nextDown(input[1]);
+            input[0] = Math.nextDown(input[1]);
 
             for(int i = 0; i < neighbors.length; i++) {
                 neighbors[i] =          Math.log10(input[i]);
diff --git a/jdk/test/java/lang/Math/Log1pTests.java b/jdk/test/java/lang/Math/Log1pTests.java
index 1666d7b..f15a92b 100644
--- a/jdk/test/java/lang/Math/Log1pTests.java
+++ b/jdk/test/java/lang/Math/Log1pTests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -88,14 +88,14 @@ public class Log1pTests {
 
         // For |x| < 2^-54 log1p(x) ~= x
         for(int i = DoubleConsts.MIN_SUB_EXPONENT; i <= -54; i++) {
-            double d = FpUtils.scalb(2, i);
+            double d = Math.scalb(2, i);
             failures += testLog1pCase(d, d);
             failures += testLog1pCase(-d, -d);
         }
 
         // For x > 2^53 log1p(x) ~= log(x)
         for(int i = 53; i <= DoubleConsts.MAX_EXPONENT; i++) {
-            double d = FpUtils.scalb(2, i);
+            double d = Math.scalb(2, i);
             failures += testLog1pCaseWithUlpDiff(d, StrictMath.log(d), 2.001);
         }
 
@@ -105,7 +105,7 @@ public class Log1pTests {
         for(int i = 0; i < 1000; i++) {
             double d = rand.nextDouble();
 
-            d = FpUtils.scalb(d, -53 - FpUtils.ilogb(d));
+            d = Math.scalb(d, -53 - FpUtils.ilogb(d));
 
             for(int j = -53; j <= 52; j++) {
                 failures += testLog1pCaseWithUlpDiff(d, hp15cLogp(d), 5);
@@ -135,10 +135,10 @@ public class Log1pTests {
                 double pc = StrictMath.pow(Math.E, i) - 1;
 
                 pcNeighbors[2] = pc;
-                pcNeighbors[1] = FpUtils.nextDown(pc);
-                pcNeighbors[0] = FpUtils.nextDown(pcNeighbors[1]);
-                pcNeighbors[3] = FpUtils.nextUp(pc);
-                pcNeighbors[4] = FpUtils.nextUp(pcNeighbors[3]);
+                pcNeighbors[1] = Math.nextDown(pc);
+                pcNeighbors[0] = Math.nextDown(pcNeighbors[1]);
+                pcNeighbors[3] = Math.nextUp(pc);
+                pcNeighbors[4] = Math.nextUp(pcNeighbors[3]);
 
                 for(int j = 0; j < pcNeighbors.length; j++) {
                     pcNeighborsLog1p[j]       =       Math.log1p(pcNeighbors[j]);
@@ -202,5 +202,4 @@ public class Log1pTests {
             throw new RuntimeException();
         }
     }
-
 }
diff --git a/jdk/test/java/lang/Math/Rint.java b/jdk/test/java/lang/Math/Rint.java
index 49a8edd..c362c4f 100644
--- a/jdk/test/java/lang/Math/Rint.java
+++ b/jdk/test/java/lang/Math/Rint.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,10 +25,8 @@
  * @test
  * @bug 4101566 4831589
  * @summary Check for correct implementation of Math.rint(double)
- *
  */
 
-import sun.misc.FpUtils;
 import sun.misc.DoubleConsts;
 
 public class Rint {
@@ -48,28 +46,28 @@ public class Rint {
 
     public static void main(String args[]) {
         int failures = 0;
-        double twoToThe52 = FpUtils.scalb(1.0, 52); // 2^52
+        double twoToThe52 = Math.scalb(1.0, 52); // 2^52
 
         double [][] testCases = {
             {0.0,                               0.0},
             {Double.MIN_VALUE,                  0.0},
-            {FpUtils.nextDown(DoubleConsts.MIN_NORMAL), 0.0},
+            {Math.nextDown(DoubleConsts.MIN_NORMAL), 0.0},
             {DoubleConsts.MIN_NORMAL,           0.0},
 
             {0.2,                               0.0},
 
-            {FpUtils.nextDown(0.5),             0.0},
-            {                 0.5,              0.0},
-            {  FpUtils.nextUp(0.5),             1.0},
+            {Math.nextDown(0.5),             0.0},
+            {              0.5,              0.0},
+            {  Math.nextUp(0.5),             1.0},
 
             {0.7,                               1.0},
-            {FpUtils.nextDown(1.0),             1.0},
-            {                 1.0,              1.0},
-            {  FpUtils.nextUp(1.0),             1.0},
+            {Math.nextDown(1.0),             1.0},
+            {              1.0,              1.0},
+            {  Math.nextUp(1.0),             1.0},
 
-            {FpUtils.nextDown(1.5),             1.0},
-            {                 1.5,              2.0},
-            {  FpUtils.nextUp(1.5),             2.0},
+            {Math.nextDown(1.5),             1.0},
+            {              1.5,              2.0},
+            {  Math.nextUp(1.5),             2.0},
 
             {4.2,                               4.0},
             {4.5,                               4.0},
@@ -81,19 +79,19 @@ public class Rint {
 
             {150000.75,                         150001.0},
             {300000.5,                          300000.0},
-            {FpUtils.nextUp(300000.5),          300001.0},
-            {FpUtils.nextDown(300000.75),       300001.0},
+            {Math.nextUp(300000.5),          300001.0},
+            {Math.nextDown(300000.75),       300001.0},
             {300000.75,                         300001.0},
-            {FpUtils.nextUp(300000.75),         300001.0},
+            {Math.nextUp(300000.75),         300001.0},
             {300000.99,                         300001.0},
             {262144.75,                         262145.0}, //(2^18 ) + 0.75
             {499998.75,                         499999.0},
             {524287.75,                         524288.0}, //(2^19 -1) + 0.75
             {524288.75,                         524289.0},
 
-            {FpUtils.nextDown(twoToThe52),      twoToThe52},
+            {Math.nextDown(twoToThe52),      twoToThe52},
             {twoToThe52,                        twoToThe52},
-            {FpUtils.nextUp(twoToThe52),        FpUtils.nextUp(twoToThe52)},
+            {Math.nextUp(twoToThe52),        Math.nextUp(twoToThe52)},
 
             {Double.MAX_VALUE,          Double.MAX_VALUE},
             {Double.POSITIVE_INFINITY,  Double.POSITIVE_INFINITY},
@@ -118,5 +116,4 @@ public class Rint {
             throw new RuntimeException();
         }
     }
-
 }
diff --git a/jdk/test/java/lang/Math/Tests.java b/jdk/test/java/lang/Math/Tests.java
index 7ca05d5..6b39c8a 100644
--- a/jdk/test/java/lang/Math/Tests.java
+++ b/jdk/test/java/lang/Math/Tests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,20 +35,30 @@ import sun.misc.FpUtils;
 public class Tests {
     private Tests(){}; // do not instantiate
 
-    private static String toHexString(float f) {
+    public static String toHexString(float f) {
         if (!Float.isNaN(f))
             return Float.toHexString(f);
         else
             return "NaN(0x" + Integer.toHexString(Float.floatToRawIntBits(f)) + ")";
     }
 
-    private static String toHexString(double d) {
+    public static String toHexString(double d) {
         if (!Double.isNaN(d))
             return Double.toHexString(d);
         else
             return "NaN(0x" + Long.toHexString(Double.doubleToRawLongBits(d)) + ")";
     }
 
+    /**
+     * Return the floating-point value next larger in magnitude.
+     */
+    public static double nextOut(double d) {
+        if (d > 0.0)
+            return Math.nextUp(d);
+        else
+            return -Math.nextUp(-d);
+    }
+
     public static int test(String testName, float input,
                            boolean result, boolean expected) {
         if (expected != result) {
@@ -338,4 +348,24 @@ public class Tests {
         else
             return 0;
     }
+
+    // For a successful test, the result must be within the upper and
+    // lower bounds.
+    public static int testBounds(String testName, double input, double result,
+                                 double bound1, double bound2) {
+        if ((result >= bound1 && result <= bound2) ||
+            (result <= bound1 && result >= bound2))
+            return 0;
+        else {
+            double lowerBound = Math.min(bound1, bound2);
+            double upperBound = Math.max(bound1, bound2);
+            System.err.println("Failure for " + testName + ":\n" +
+                               "\tFor input " + input    + "\t(" + toHexString(input) + ")\n" +
+                               "\tgot       " + result   + "\t(" + toHexString(result) + ");\n" +
+                               "\toutside of range\n" +
+                               "\t[" + lowerBound    + "\t(" + toHexString(lowerBound) + "), " +
+                               upperBound    + "\t(" + toHexString(upperBound) + ")]");
+            return 1;
+        }
+    }
 }
diff --git a/jdk/test/java/lang/Math/WorstCaseTests.java b/jdk/test/java/lang/Math/WorstCaseTests.java
new file mode 100644
index 0000000..be98d97
--- /dev/null
+++ b/jdk/test/java/lang/Math/WorstCaseTests.java
@@ -0,0 +1,435 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4900206
+ * @summary Test worst case behavior of exp, log, sin, cos, etc.
+ * @build Tests
+ * @build WorstCaseTests
+ * @run main WorstCaseTests
+ * @run main/othervm -Xcomp WorstCaseTests
+ * @author Joseph D. Darcy
+ */
+
+/**
+ * Use "Table Maker's Dilemma" results from Jean-Michel Muller and
+ * Vincent Lefèvre, to test the math library.  See
+ * http://perso.ens-lyon.fr/jean-michel.muller/TMD.html for original
+ * test vectors from 2000 and see
+ * http://perso.ens-lyon.fr/jean-michel.muller/TMDworstcases.pdf with
+ * additional test vectors from 2003.  The latter link also contains
+ * some information about the methodology used to produce the test
+ * vectors.
+ *
+ * Most of the Java math library methods tested here have a 1-ulp
+ * error bound from their specifications.  This implies the returned
+ * value must be one of the two representable floating-point numbers
+ * bracketing the exact result.  The expected value in the test
+ * vectors below is the truncation of the exact value.  Therefore, the
+ * computed result must either be that value or the value next larger
+ * in magnitude.  The hyperbolic transcendental functions sinh and cosh
+ * have a larger 2.5 ulp error bound in their specification, but the
+ * JDK implementation complies with a 1 ulp bound on the worst-case
+ * values.  Therefore, no addition leeway is afforded when testing
+ * sinh and cosh.
+ */
+public class WorstCaseTests {
+    private WorstCaseTests() {throw new AssertionError("No instances for you.");}
+
+    public static void main(String... args) {
+        int failures = 0;
+
+        failures += testWorstExp();
+        failures += testWorstLog();
+        failures += testWorstSin();
+        failures += testWorstAsin();
+        failures += testWorstCos();
+        failures += testWorstAcos();
+        failures += testWorstTan();
+        failures += testWorstAtan();
+        failures += testWorstPow2();
+        failures += testWorstSinh();
+        failures += testWorstCosh();
+
+        if (failures > 0) {
+            System.err.printf("Testing worst cases incurred %d failures.%n", failures);
+            throw new RuntimeException();
+        }
+    }
+
+    private static int testWorstExp() {
+        int failures = 0;
+        double [][] testCases = {
+            {-0x1.E8BDBFCD9144Ep3,      0x1.F3E558CF4DE54p-23},
+            {-0x1.71E0B869B5E79p2,      0x1.951C6DC5D24E2p-9},
+            {-0x1.02393D5976769p1,      0x1.1064B2C103DDAp-3},
+            {-0x1.2A9CAD9998262p0,      0x1.3EF1E9B3A81C7p-2},
+            {-0x1.CC37EF7DE7501p0,      0x1.534D4DE870713p-3},
+            {-0x1.22E24FA3D5CF9p-1,     0x1.2217147B85EA9p-1},
+            {-0x1.DC2B5DF1F7D3Dp-1,     0x1.9403FD0EE51C8p-2},
+            {-0x1.290EA09E36479p-3,     0x1.BADED30CBF1C3p-1},
+            {-0x1.A2FEFEFD580DFp-13,    0x1.FFE5D0BB7EABFp-1},
+            {-0x1.ED318EFB627EAp-27,    0x1.FFFFFF84B39C4p-1},
+            {-0x1.4BD46601AE1EFp-31,    0x1.FFFFFFFAD0AE6p-1},
+            {-0x1.1000000000242p-42,    0x1.FFFFFFFFFF780p-1},
+            {-0x1.2000000000288p-42,    0x1.FFFFFFFFFF700p-1},
+            {-0x1.8000000000012p-48,    0x1.FFFFFFFFFFFD0p-1},
+            {-0x1.0000000000001p-51,    0x1.FFFFFFFFFFFFCp-1},
+
+            {+0x1.FFFFFFFFFFFFFp-53,    0x1.0000000000000p0},
+            {+0x1.FFFFFFFFFFFE0p-48,    0x1.000000000001Fp0},
+            {+0x1.7FFE7FFEE0024p-32,    0x1.000000017FFE8p0},
+            {+0x1.80017FFEDFFDCp-32,    0x1.0000000180017p0},
+            {+0x1.9E9CBBFD6080Bp-31,    0x1.000000033D397p0},
+            {+0x1.D7A7D893609E5p-26,    0x1.00000075E9F64p0},
+            {+0x1.BA07D73250DE7p-14,    0x1.0006E83736F8Cp0},
+            {+0x1.D77FD13D27FFFp-11,    0x1.003AF6C37C1D3p0},
+            {+0x1.6A4D1AF9CC989p-8,     0x1.016B4DF3299D7p0},
+            {+0x1.ACCFBE46B4EF0p-1,     0x2.4F85C9783DCE0p0},
+            {+0x1.ACA7AE8DA5A7Bp0,      0x5.55F52B35F955Ap0},
+            {+0x1.D6336A88077AAp0,      0x6.46A37FD503FDCp0},
+            {+0x2.85DC78FB8928Cp0,      0xC.76F2496CB038Fp0},
+            {+0x1.76E7E5D7B6EACp3,      0x1.DE7CD6751029Ap16},
+            {+0x1.A8EAD058BC6B8p3,      0x1.1D71965F516ADp19},
+            {+0x1.1D5C2DAEBE367p4,      0x1.A8C02E974C314p25},
+            {+0x1.C44CE0D716A1Ap4,      0x1.B890CA8637AE1p40},
+        };
+
+        for(double[] testCase: testCases) {
+            failures += testExpCase(testCase[0], testCase[1]);
+        }
+
+        return failures;
+    }
+
+    private static int testExpCase(double input, double expected) {
+        int failures = 0;
+        double out = Tests.nextOut(expected);
+        failures += Tests.testBounds("Math.exp",       input, Math.exp(input),       expected, out);
+        failures += Tests.testBounds("StrictMath.exp", input, StrictMath.exp(input), expected, out);
+        return failures;
+    }
+
+    private static int testWorstLog() {
+        int failures = 0;
+        double [][] testCases = {
+            {+0x1.0000000000001p0,      +0x1.FFFFFFFFFFFFFp-53},
+            {+0x2.0012ECB039C9Cp0,      +0x1.62F71C4656B60p-1},
+            {+0x6.46A37FD503FDCp0,      +0x1.D6336A88077A9p+0},
+            {+0x7.78DFECC7F57Fp0,       +0x2.02DD059DB46Bp+0},
+            {+0x9.588CCF24BB9C8p0,      +0x2.3C24DEBB2BE7p+0},
+            {+0xA.AF87550D97E4p0,       +0x2.5E706595A7ABEp+0},
+            {+0xC.76F2496CB039p0,       +0x2.85DC78FB8928Cp+0},
+            {+0x11.1867637CBD03p0,      +0x2.D6BBEFC79A842p+0},
+            {+0x13.D9D7D597A9DDp0,      +0x2.FCFE12AE07DDCp+0},
+            {+0x17.F3825778AAAFp0,      +0x3.2D0F907F5E00Cp+0},
+            {+0x1AC.50B409C8AEEp0,      +0x6.0F52F37AECFCCp+0},
+            {+0x1.DE7CD6751029Ap16,     +0x1.76E7E5D7B6EABp+3},
+        };
+
+        for(double[] testCase: testCases) {
+            failures += testLogCase(testCase[0], testCase[1]);
+        }
+
+        return failures;
+    }
+
+    private static int testLogCase(double input, double expected) {
+        int failures = 0;
+        double out = Tests.nextOut(expected);
+        failures += Tests.testBounds("Math.log",       input, Math.log(input),       expected, out);
+        failures += Tests.testBounds("StrictMath.log", input, StrictMath.log(input), expected, out);
+        return failures;
+    }
+
+    private static int testWorstSin() {
+        int failures = 0;
+        double [][] testCases = {
+            {+0x1.E0000000001C2p-20,    +0x1.DFFFFFFFFF02Ep-20},
+            {+0x1.598BAE9E632F6p-7,     +0x1.598A0AEA48996p-7},
+
+            {+0x1.9283586503FEp-5,      +0x1.9259E3708BD39p-5},
+            {+0x1.D7BDCD778049Fp-5,     +0x1.D77B117F230D5p-5},
+            {+0x1.A202B3FB84788p-4,     +0x1.A1490C8C06BA6p-4},
+            {+0x1.D037CB27EE6DFp-3,     +0x1.CC40C3805229Ap-3},
+            {+0x1.D5064E6FE82C5p-3,     +0x1.D0EF799001BA9p-3},
+            {+0x1.FE767739D0F6Dp-2,     +0x1.E9950730C4695p-2},
+            {+0x1.D98C4C612718Dp-1,     +0x1.98DCD09337792p-1},
+            {+0x1.921FB54442D18p-0,     +0x1.FFFFFFFFFFFFFp-1},
+
+            {+0x1.6756745770A51p+1,     +0x1.4FF350E412821p-2},
+        };
+
+        for(double[] testCase: testCases) {
+            failures += testSinCase(testCase[0], testCase[1]);
+        }
+
+        return failures;
+    }
+
+    private static int testSinCase(double input, double expected) {
+        int failures = 0;
+        double out = Tests.nextOut(expected);
+        failures += Tests.testBounds("Math.sin",       input, Math.sin(input),       expected, out);
+        failures += Tests.testBounds("StrictMath.sin", input, StrictMath.sin(input), expected, out);
+        return failures;
+    }
+
+    private static int testWorstAsin() {
+        int failures = 0;
+        double [][] testCases = {
+            {+0x1.DFFFFFFFFF02Ep-20,    +0x1.E0000000001C1p-20},
+            {+0x1.DFFFFFFFFC0B8p-19,    +0x1.E000000000707p-19},
+
+            {+0x1.9259E3708BD3Ap-5,     +0x1.9283586503FEp-5},
+            {+0x1.D77B117F230D6p-5,     +0x1.D7BDCD778049Fp-5},
+            {+0x1.A1490C8C06BA7p-4,     +0x1.A202B3FB84788p-4},
+            {+0x1.9697CB602C582p-3,     +0x1.994FFB5DAF0F9p-3},
+            {+0x1.D0EF799001BA9p-3,     +0x1.D5064E6FE82C4p-3},
+            {+0x1.E9950730C4696p-2,     +0x1.FE767739D0F6Dp-2},
+            {+0x1.1ED06D50F7E88p-1,     +0x1.30706F699466Dp-1},
+            {+0x1.D5B05A89D3E77p-1,     +0x1.29517AB4C132Ap+0},
+            {+0x1.E264357EA0E29p-1,     +0x1.3AA301F6EBB1Dp+0},
+        };
+
+        for(double[] testCase: testCases) {
+            failures += testAsinCase(testCase[0], testCase[1]);
+        }
+
+        return failures;
+    }
+
+    private static int testAsinCase(double input, double expected) {
+        int failures = 0;
+        double out = Tests.nextOut(expected);
+        failures += Tests.testBounds("Math.asin",       input, Math.asin(input),       expected, out);
+        failures += Tests.testBounds("StrictMath.asin", input, StrictMath.asin(input), expected, out);
+        return failures;
+    }
+
+    private static int testWorstCos() {
+        int failures = 0;
+        double [][] testCases = {
+            {+0x1.8000000000009p-23,    +0x0.FFFFFFFFFFFB8p+0},
+            {+0x1.8000000000024p-22,    +0x0.FFFFFFFFFFEE0p+0},
+            {+0x1.2000000000F30p-18,    +0x0.FFFFFFFFF5E00p+0},
+            {+0x1.06B505550E6B2p-9,     +0x0.FFFFDE4D1FDFFp+0},
+            {+0x1.97CCD3D2C438Fp-6,     +0x0.FFEBB35D43854p+0},
+
+            {+0x1.549EC0C0C5AFAp-5,     +0x1.FF8EB6A91ECB0p-1},
+            {+0x1.16E534EE36580p-4,     +0x1.FED0476FC75C9p-1},
+            {+0x1.EFEEF61D39AC2p-3,     +0x1.F10FC61E2C78Ep-1},
+            {+0x1.FEB1F7920E248p-2,     +0x1.C1A27AE836F12p-1},
+            {+0x1.7CB7648526F99p-1,     +0x1.78DAF01036D0Cp-1},
+            {+0x1.C65A170474549p-1,     +0x1.434A3645BE208p-1},
+            {+0x1.6B8A6273D7C21p+0,     +0x1.337FC5B072C52p-3},
+        };
+
+        for(double[] testCase: testCases) {
+            failures += testCosCase(testCase[0], testCase[1]);
+        }
+
+        return failures;
+    }
+
+    private static int testCosCase(double input, double expected) {
+        int failures = 0;
+        double out = Tests.nextOut(expected);
+        failures += Tests.testBounds("Math.cos",       input, Math.cos(input),       expected, out);
+        failures += Tests.testBounds("StrictMath.cos", input, StrictMath.cos(input), expected, out);
+        return failures;
+    }
+
+    private static int testWorstAcos() {
+        int failures = 0;
+        double [][] testCases = {
+            {+0x1.FD737BE914578p-11,    +0x1.91E006D41D8D8p+0},
+            {+0x1.4182199998587p-1,     +0x1.C8A538AE83D1Fp-1},
+            {+0x1.E45A1C93651ECp-1,     +0x1.520DC553F6B23p-2},
+            {+0x1.F10FC61E2C78Fp-1,     +0x1.EFEEF61D39AC1p-3},
+        };
+
+        for(double[] testCase: testCases) {
+            failures += testAcosCase(testCase[0], testCase[1]);
+        }
+
+        return failures;
+    }
+
+    private static int testAcosCase(double input, double expected) {
+        int failures = 0;
+        double out = Tests.nextOut(expected);
+        failures += Tests.testBounds("Math.acos",       input, Math.acos(input),       expected, out);
+        failures += Tests.testBounds("StrictMath.acos", input, StrictMath.acos(input), expected, out);
+        return failures;
+    }
+
+    private static int testWorstTan() {
+        int failures = 0;
+        double [][] testCases = {
+            {+0x1.DFFFFFFFFFF1Fp-22,    +0x1.E000000000151p-22},
+            {+0x1.67FFFFFFFA114p-18,    +0x1.6800000008E61p-18},
+
+            {+0x1.50486B2F87014p-5,     +0x1.5078CEBFF9C72p-5},
+            {+0x1.52C39EF070CADp-4,     +0x1.5389E6DF41978p-4},
+            {+0x1.A33F32AC5CEB5p-3,     +0x1.A933FE176B375p-3},
+            {+0x1.D696BFA988DB9p-2,     +0x1.FAC71CD34EEA6p-2},
+            {+0x1.46AC372243536p-1,     +0x1.7BA49F739829Ep-1},
+            {+0x0.A3561B9121A9Bp+0,     +0x0.BDD24FB9CC14Fp+0},
+        };
+
+        for(double[] testCase: testCases) {
+            failures += testTanCase(testCase[0], testCase[1]);
+        }
+
+        return failures;
+    }
+
+    private static int testTanCase(double input, double expected) {
+        int failures = 0;
+        double out = Tests.nextOut(expected);
+        failures += Tests.testBounds("Math.tan",       input, Math.tan(input),       expected, out);
+        failures += Tests.testBounds("StrictMath.tan", input, StrictMath.tan(input), expected, out);
+        return failures;
+    }
+
+    private static int testWorstAtan() {
+        int failures = 0;
+        double [][] testCases = {
+            {+0x1.E000000000546p-21,     +0x1.DFFFFFFFFFC7Cp-21},
+            {+0x1.22E8D75E2BC7Fp-11,     +0x1.22E8D5694AD2Bp-11},
+
+            {+0x1.0FC9F1FABE658p-5,     +0x1.0FB06EDE9973Ap-5},
+            {+0x1.1BBE9C255698Dp-5,     +0x1.1BA1951DB1D6Dp-5},
+            {+0x1.8DDD25AB90CA1p-5,     +0x1.8D8D2D4BD6FA2p-5},
+            {+0x1.5389E6DF41979p-4,     +0x1.52C39EF070CADp-4},
+            {+0x1.A933FE176B375p-3,     +0x1.A33F32AC5CEB4p-3},
+            {+0x1.0F6E5D9960397p-2,     +0x1.09544B71AD4A6p-2},
+            {+0x1.7BA49F739829Fp-1,     +0x1.46AC372243536p-1},
+
+            {+0x0.BDD24FB9CC14F8p+0,    +0x0.A3561B9121A9Bp+0},
+        };
+
+        for(double[] testCase: testCases) {
+            failures += testAtanCase(testCase[0], testCase[1]);
+        }
+
+        return failures;
+    }
+
+    private static int testAtanCase(double input, double expected) {
+        int failures = 0;
+        double out = Tests.nextOut(expected);
+        failures += Tests.testBounds("Math.atan",       input, Math.atan(input),       expected, out);
+        failures += Tests.testBounds("StrictMath.atan", input, StrictMath.atan(input), expected, out);
+        return failures;
+    }
+
+    private static int testWorstPow2() {
+        int failures = 0;
+        double [][] testCases = {
+            {+0x1.16A76EC41B516p-1,     +0x1.7550685A42C63p+0},
+            {+0x1.3E34FA6AB969Ep-1,     +0x1.89D948A94FE16p+0},
+            {+0x1.4A63FF1D53F53p-1,     +0x1.90661DA12D528p+0},
+            {+0x1.B32A6C92D1185p-1,     +0x1.CD6B37EDECEAFp+0},
+
+            {+0x1.25DD9EEDAC79Ap+0,     +0x1.1BA39FF28E3E9p+1},
+        };
+
+        for(double[] testCase: testCases) {
+            failures += testPow2Case(testCase[0], testCase[1]);
+        }
+
+        return failures;
+    }
+
+    private static int testPow2Case(double input, double expected) {
+        int failures = 0;
+        double out = Tests.nextOut(expected);
+        failures += Tests.testBounds("Math.pow2",       input, Math.pow(2, input),       expected, out);
+        failures += Tests.testBounds("StrictMath.pow2", input, StrictMath.pow(2, input), expected, out);
+        return failures;
+    }
+
+    // 2.5 ulp error bound in the specification; the implementation
+    // does better on the tested values.
+    private static int testWorstSinh() {
+        int failures = 0;
+        double [][] testCases = {
+            {+0x1.DFFFFFFFFFE3Ep-20,     +0x1.E000000000FD1p-20},
+            {+0x1.DFFFFFFFFE3E0p-18,     +0x1.E00000000FD1Fp-18},
+            {+0x1.135E31FDD05D3p-5,      +0x1.136B78B25CC57p-5},
+            {+0x1.0DC68D5E8F959p-3,      +0x1.0E8E73DC4FEE3p-3},
+            {+0x1.616CC75D49226p-2,      +0x1.687BD068C1C1Ep-2},
+            {+0x1.3FFC12B81CBC2p+0,      +0x1.9A0FF413A1AF2p+0},
+            {+0x2.FE008C44BACA2p+0,      +0x9.F08A43ED03AEp+0},
+            {+0x1.C089FCF166171p+4,      +0x1.5C452E0E37569p+39},
+            {+0x1.E07E71BFCF06Fp+5,      +0x1.91EC4412C344Fp+85},
+            {+0x1.54CD1FEA7663Ap+7,      +0x1.C90810D354618p+244},
+            {+0x1.D6479EBA7C971p+8,      +0x1.62A88613629B5p+677},
+        };
+
+        for(double[] testCase: testCases) {
+            failures += testSinhCase(testCase[0], testCase[1]);
+        }
+
+        return failures;
+    }
+
+    private static int testSinhCase(double input, double expected) {
+        int failures = 0;
+        double out = Tests.nextOut(expected);
+        failures += Tests.testBounds("Math.sinh",       input, Math.sinh(input),       expected, out);
+        failures += Tests.testBounds("StrictMath.sinh", input, StrictMath.sinh(input), expected, out);
+        return failures;
+    }
+
+    // 2.5 ulp error bound in the specification; the implementation
+    // does better on the tested values.
+    private static int testWorstCosh() {
+        int failures = 0;
+        double [][] testCases = {
+            {+0x1.17D8A9F206217p-6,     +0x1.00098F5F09BE3p+0},
+            {+0x1.BF0305E2C6C37p-3,     +0x1.061F4C39E16F2p+0},
+            {+0x1.03923F2B47C07p-1,     +0x1.219C1989E3372p+0},
+            {+0x1.A6031CD5F93BAp-1,     +0x1.5BFF041B260FDp+0},
+            {+0x1.104B648F113A1p+0,     +0x1.9EFDCA62B7009p+0},
+            {+0x1.EA5F2F2E4B0C5p+1,     +0x17.10DB0CD0FED5p+0},
+        };
+
+        for(double[] testCase: testCases) {
+            failures += testCoshCase(testCase[0], testCase[1]);
+        }
+
+        return failures;
+    }
+
+    private static int testCoshCase(double input, double expected) {
+        int failures = 0;
+        double out = Tests.nextOut(expected);
+        failures += Tests.testBounds("Math.cosh",       input, Math.cosh(input),       expected, out);
+        failures += Tests.testBounds("StrictMath.cosh", input, StrictMath.cosh(input), expected, out);
+        return failures;
+    }
+}
diff --git a/jdk/test/java/lang/ProcessBuilder/Basic.java b/jdk/test/java/lang/ProcessBuilder/Basic.java
index 6777354..a9ba3b3 100644
--- a/jdk/test/java/lang/ProcessBuilder/Basic.java
+++ b/jdk/test/java/lang/ProcessBuilder/Basic.java
@@ -1803,7 +1803,7 @@ public class Basic {
 
             p.getInputStream().close();
             p.getErrorStream().close();
-            p.getOutputStream().close();
+            try { p.getOutputStream().close(); } catch (IOException flushFailed) { }
 
             InputStream[] streams = { p.getInputStream(), p.getErrorStream() };
             for (final InputStream in : streams) {
diff --git a/jdk/test/java/lang/invoke/InvokeGenericTest.java b/jdk/test/java/lang/invoke/InvokeGenericTest.java
index fecd2f0..87393b4 100644
--- a/jdk/test/java/lang/invoke/InvokeGenericTest.java
+++ b/jdk/test/java/lang/invoke/InvokeGenericTest.java
@@ -25,7 +25,7 @@
 
 /* @test
  * @summary unit tests for java.lang.invoke.MethodHandle.invoke
- * @compile -target 7 InvokeGenericTest.java
+ * @compile InvokeGenericTest.java
  * @run junit/othervm test.java.lang.invoke.InvokeGenericTest
  */
 
diff --git a/jdk/test/java/lang/management/ManagementFactory/GetObjectName.java b/jdk/test/java/lang/management/ManagementFactory/GetObjectName.java
new file mode 100644
index 0000000..8333989
--- /dev/null
+++ b/jdk/test/java/lang/management/ManagementFactory/GetObjectName.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 7068328
+ * @summary Test if getObjectName handles properly when called by
+ *          multiple threads simultaneously. Run in othervm mode to
+ *          make sure the object name is not initialized to begin with.
+ * @run main/othervm GetObjectName
+ */
+
+import java.lang.management.BufferPoolMXBean;
+import java.lang.management.ManagementFactory;
+import java.lang.management.PlatformLoggingMXBean;
+import java.lang.management.PlatformManagedObject;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
+
+public class GetObjectName {
+    private static boolean failed = false;
+    public static void main(String[] args) throws Exception {
+        int tasks = 10000;
+        ExecutorService executor = Executors.newFixedThreadPool(10);
+        submitTasks(executor, tasks);
+        executor.shutdown();
+        executor.awaitTermination(10, TimeUnit.SECONDS);
+        if (!failed) {
+            System.out.println("Test passed.");
+        }
+    }
+
+    static void submitTasks(ExecutorService executor, int count) {
+        for (int i=0; i < count && !failed; i++) {
+            executor.execute(new Runnable() {
+                @Override
+                public void run() {
+                    List<PlatformManagedObject> mbeans = new ArrayList<>();
+                    mbeans.add(ManagementFactory.getPlatformMXBean(PlatformLoggingMXBean.class));
+                    mbeans.addAll(ManagementFactory.getPlatformMXBeans(BufferPoolMXBean.class));
+                    for (PlatformManagedObject pmo : mbeans) {
+                        // Name should not be null
+                        if (pmo.getObjectName() == null) {
+                            failed = true;
+                            throw new RuntimeException("TEST FAILED: getObjectName() returns null");
+                        }
+                    }
+                }
+            });
+        }
+    }
+}
diff --git a/jdk/test/java/lang/reflect/Generics/Probe.java b/jdk/test/java/lang/reflect/Generics/Probe.java
index 2d9aa01..15babb6 100644
--- a/jdk/test/java/lang/reflect/Generics/Probe.java
+++ b/jdk/test/java/lang/reflect/Generics/Probe.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 5003916 6704655 6873951
+ * @bug 5003916 6704655 6873951 6476261
  * @summary Testing parsing of signatures attributes of nested classes
  * @author Joseph D. Darcy
  */
@@ -38,12 +38,12 @@ import static java.util.Arrays.*;
           "java.util.concurrent.ConcurrentHashMap$KeyIterator",
           "java.util.concurrent.ConcurrentHashMap$ValueIterator",
           "java.util.AbstractList$ListItr",
-//          "java.util.EnumMap$EntryIterator",
-//          "java.util.EnumMap$KeyIterator",
-//          "java.util.EnumMap$ValueIterator",
-//          "java.util.IdentityHashMap$EntryIterator",
-//          "java.util.IdentityHashMap$KeyIterator",
-//          "java.util.IdentityHashMap$ValueIterator",
+          "java.util.EnumMap$EntryIterator",
+          "java.util.EnumMap$KeyIterator",
+          "java.util.EnumMap$ValueIterator",
+          "java.util.IdentityHashMap$EntryIterator",
+          "java.util.IdentityHashMap$KeyIterator",
+          "java.util.IdentityHashMap$ValueIterator",
           "java.util.WeakHashMap$EntryIterator",
           "java.util.WeakHashMap$KeyIterator",
           "java.util.WeakHashMap$ValueIterator",
@@ -52,12 +52,12 @@ import static java.util.Arrays.*;
           "java.util.HashMap$ValueIterator",
           "java.util.LinkedHashMap$EntryIterator",
           "java.util.LinkedHashMap$KeyIterator",
-          "java.util.LinkedHashMap$ValueIterator"})
+          "java.util.LinkedHashMap$ValueIterator",
+          "javax.swing.JComboBox$AccessibleJComboBox"})
 public class Probe {
     public static void main (String... args) throws Throwable {
         Classes classesAnnotation = (Probe.class).getAnnotation(Classes.class);
-        List<String> names =
-            new ArrayList<String>(asList(classesAnnotation.value()));
+        List<String> names = new ArrayList<>(asList(classesAnnotation.value()));
 
         int errs = 0;
         for(String name: names) {
diff --git a/jdk/test/java/lang/reflect/Generics/SignatureTest.java b/jdk/test/java/lang/reflect/Generics/SignatureTest.java
new file mode 100644
index 0000000..993f748
--- /dev/null
+++ b/jdk/test/java/lang/reflect/Generics/SignatureTest.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6476261
+ * @summary More testing of parsing of signatures attributes of nested classes
+ */
+
+import java.lang.reflect.*;
+
+public class SignatureTest<T> {
+   class Inner1 {
+      class Inner11 {
+      }
+   }
+
+   public void f(SignatureTest<String>.Inner1.Inner11 x) {}
+   public void g(SignatureTest<String>.Inner1 x) {}
+
+   public static void main(String[] args) throws Exception {
+      Class clazz = SignatureTest.class;
+      for (Method m : clazz.getDeclaredMethods()) {
+          System.out.println();
+          System.out.println(m.toString());
+          System.out.println(m.toGenericString());
+          System.out.println(m.getGenericParameterTypes());
+      }
+   }
+}
diff --git a/jdk/test/java/lang/reflect/Generics/TestBadSignatures.java b/jdk/test/java/lang/reflect/Generics/TestBadSignatures.java
new file mode 100644
index 0000000..6d38024
--- /dev/null
+++ b/jdk/test/java/lang/reflect/Generics/TestBadSignatures.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6832374 7052898
+ * @summary Test bad signatures get a GenericSignatureFormatError thrown.
+ * @author Joseph D. Darcy
+ */
+
+import java.lang.reflect.*;
+import sun.reflect.generics.parser.SignatureParser;
+
+public class TestBadSignatures {
+    public static void main(String[] args) {
+        String[] badSignatures = {
+            // Missing ":" after first type bound
+            "<T:Lfoo/tools/nsc/symtab/Names;Lfoo/tools/nsc/symtab/Symbols;",
+
+            // Arrays improperly indicated for exception information
+            "<E:Ljava/lang/Exception;>(TE;[Ljava/lang/RuntimeException;)V^[TE;",
+        };
+
+        for(String badSig : badSignatures) {
+            try {
+                SignatureParser.make().parseMethodSig(badSig);
+                throw new RuntimeException("Expected GenericSignatureFormatError for " +
+                                           badSig);
+            } catch(GenericSignatureFormatError gsfe) {
+                System.out.println(gsfe.toString()); // Expected
+            }
+        }
+    }
+}
diff --git a/jdk/test/java/lang/reflect/TypeVariable/TestAnnotatedElement.java b/jdk/test/java/lang/reflect/TypeVariable/TestAnnotatedElement.java
new file mode 100644
index 0000000..94f8d45
--- /dev/null
+++ b/jdk/test/java/lang/reflect/TypeVariable/TestAnnotatedElement.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7086192
+ * @summary Verify functionality of AnnotatedElement methods on type variables
+ * @author Joseph D. Darcy
+ */
+
+import java.lang.reflect.*;
+import java.lang.annotation.*;
+
+public class TestAnnotatedElement<A> {
+    // Type variable on a method
+    private static <B> B m(B b) {return null;}
+
+    // Type variable on a construtor
+    private <C> TestAnnotatedElement(){super();}
+
+    public static void main(String... argv) throws ReflectiveOperationException {
+        int errors = 0;
+
+        Class<?> clazz = TestAnnotatedElement.class;
+        errors += testTypeVariable(clazz.getTypeParameters());
+        errors += testTypeVariable(clazz.getDeclaredConstructor().getTypeParameters());
+        errors += testTypeVariable(clazz.getDeclaredMethod("m", Object.class).getTypeParameters());
+
+        if (errors > 0)
+            throw new RuntimeException(errors + " failures");
+    }
+
+
+    private static int testTypeVariable(TypeVariable<?>[] typeVars) {
+        int errors = 0;
+        if (typeVars.length == 0)
+            return ++errors;
+
+        for(TypeVariable<?> typeVar : typeVars) {
+            try {
+                typeVar.getAnnotation(null);
+                errors++;
+            } catch(NullPointerException npe) {
+                ; // Expected
+            }
+
+            if (typeVar.getAnnotation(SuppressWarnings.class) != null)
+                errors++;
+
+            try {
+                typeVar.isAnnotationPresent(null);
+                errors++;
+            } catch(NullPointerException npe) {
+                ; // Expected
+            }
+
+            if (typeVar.isAnnotationPresent(SuppressWarnings.class))
+                errors++;
+
+            if(typeVar.getAnnotations().length != 0)
+                errors++;
+
+            if(typeVar.getDeclaredAnnotations().length != 0)
+                errors++;
+        }
+        return errors;
+    }
+}
diff --git a/jdk/test/java/math/BigDecimal/DivideMcTests.java b/jdk/test/java/math/BigDecimal/DivideMcTests.java
index 3bf1da8..13c7fc0 100644
--- a/jdk/test/java/math/BigDecimal/DivideMcTests.java
+++ b/jdk/test/java/math/BigDecimal/DivideMcTests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
diff --git a/jdk/test/java/math/BigDecimal/FloatDoubleValueTests.java b/jdk/test/java/math/BigDecimal/FloatDoubleValueTests.java
index ade80fe..f8f3f9a 100644
--- a/jdk/test/java/math/BigDecimal/FloatDoubleValueTests.java
+++ b/jdk/test/java/math/BigDecimal/FloatDoubleValueTests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6274390
+ * @bug 6274390 7082971
  * @summary Verify {float, double}Value methods work with condensed representation
  * @run main FloatDoubleValueTests
  * @run main/othervm -XX:+AggressiveOpts FloatDoubleValueTests
@@ -79,6 +79,7 @@ public class FloatDoubleValueTests {
     // and double.
     static void testFloatDoubleValue() {
         long longValues[] = {
+            Long.MIN_VALUE, // -2^63
             0,
             1,
             2,
diff --git a/jdk/test/java/math/BigDecimal/RangeTests.java b/jdk/test/java/math/BigDecimal/RangeTests.java
index cef3ef5..bcbf702 100644
--- a/jdk/test/java/math/BigDecimal/RangeTests.java
+++ b/jdk/test/java/math/BigDecimal/RangeTests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
diff --git a/jdk/test/java/math/BigDecimal/StrippingZerosTest.java b/jdk/test/java/math/BigDecimal/StrippingZerosTest.java
index 30885e6..c76d0ca 100644
--- a/jdk/test/java/math/BigDecimal/StrippingZerosTest.java
+++ b/jdk/test/java/math/BigDecimal/StrippingZerosTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
diff --git a/jdk/test/java/math/BigDecimal/ToPlainStringTests.java b/jdk/test/java/math/BigDecimal/ToPlainStringTests.java
index df3bc6a..bc42b0c 100644
--- a/jdk/test/java/math/BigDecimal/ToPlainStringTests.java
+++ b/jdk/test/java/math/BigDecimal/ToPlainStringTests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
diff --git a/jdk/test/java/math/BigInteger/TestValueExact.java b/jdk/test/java/math/BigInteger/TestValueExact.java
new file mode 100644
index 0000000..63ee158
--- /dev/null
+++ b/jdk/test/java/math/BigInteger/TestValueExact.java
@@ -0,0 +1,194 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6371401
+ * @summary Tests of fooValueExact methods
+ * @author Joseph D. Darcy
+ */
+import java.math.BigInteger;
+
+public class TestValueExact {
+    public static void main(String... args) {
+        int errors = 0;
+
+        errors += testLongValueExact();
+        errors += testIntValueExact();
+        errors += testShortValueExact();
+        errors += testByteValueExact();
+
+        if (errors > 0)
+            throw new RuntimeException();
+    }
+
+    private static int testLongValueExact() {
+        int errors = 0;
+        BigInteger[] inRange = {
+            BigInteger.valueOf(Long.MIN_VALUE),
+            BigInteger.ZERO,
+            BigInteger.valueOf(Long.MAX_VALUE)
+        };
+
+        BigInteger[] outOfRange = {
+            BigInteger.valueOf(Long.MIN_VALUE).subtract(BigInteger.ONE),
+            BigInteger.valueOf(Long.MAX_VALUE).add(BigInteger.ONE)
+        };
+
+        for (BigInteger bi : inRange) {
+            if (bi.longValueExact() != bi.longValue()) {
+                System.err.println("Mismatching int conversion for " + bi);
+                errors++;
+            }
+        }
+
+        for (BigInteger bi : outOfRange) {
+            try {
+                long value = bi.longValueExact();
+                System.err.println("Failed to get expected exception on " +
+                                   bi + " got " + value);
+                errors++;
+            } catch(ArithmeticException ae) {
+                ; // Expected
+            }
+        }
+        return errors;
+    }
+
+    private static int testIntValueExact() {
+        int errors = 0;
+        BigInteger[] inRange = {
+            BigInteger.valueOf(Integer.MIN_VALUE),
+            BigInteger.ZERO,
+            BigInteger.ONE,
+            BigInteger.TEN,
+            BigInteger.valueOf(Integer.MAX_VALUE)
+        };
+
+        BigInteger[] outOfRange = {
+            BigInteger.valueOf((long)Integer.MIN_VALUE - 1),
+            BigInteger.valueOf((long)Integer.MAX_VALUE + 1)
+        };
+
+        for (BigInteger bi : inRange) {
+            if (bi.intValueExact() != bi.intValue()) {
+                System.err.println("Mismatching int conversion for " + bi);
+                errors++;
+            }
+        }
+
+        for (BigInteger bi : outOfRange) {
+            try {
+                int value = bi.intValueExact();
+                System.err.println("Failed to get expected exception on " +
+                                   bi + " got " + value);
+                errors++;
+            } catch(ArithmeticException ae) {
+                ; // Expected
+            }
+        }
+        return errors;
+    }
+
+    private static int testShortValueExact() {
+        int errors = 0;
+        BigInteger[] inRange = {
+            BigInteger.valueOf(Short.MIN_VALUE),
+            BigInteger.ZERO,
+            BigInteger.ONE,
+            BigInteger.TEN,
+            BigInteger.valueOf(Short.MAX_VALUE)
+        };
+
+        BigInteger[] outOfRange = {
+            BigInteger.valueOf((long)Integer.MIN_VALUE - 1),
+            BigInteger.valueOf((long)Integer.MIN_VALUE),
+            BigInteger.valueOf(   (int)Short.MIN_VALUE - 1),
+            BigInteger.valueOf(   (int)Short.MAX_VALUE + 1),
+            BigInteger.valueOf((long)Integer.MAX_VALUE),
+            BigInteger.valueOf((long)Integer.MAX_VALUE + 1)
+        };
+
+        for (BigInteger bi : inRange) {
+            if (bi.shortValueExact() != bi.shortValue()) {
+                System.err.println("Mismatching short  conversion for " + bi);
+                errors++;
+            }
+        }
+
+        for (BigInteger bi : outOfRange) {
+            try {
+                int value = bi.shortValueExact();
+                System.err.println("Failed to get expected exception on " +
+                                   bi + " got " + value);
+                errors++;
+            } catch(ArithmeticException ae) {
+                ; // Expected
+            }
+        }
+        return errors;
+    }
+
+    private static int testByteValueExact() {
+        int errors = 0;
+        BigInteger[] inRange = {
+            BigInteger.valueOf(Byte.MIN_VALUE),
+            BigInteger.valueOf(0),
+            BigInteger.ONE,
+            BigInteger.TEN,
+            BigInteger.valueOf(Byte.MAX_VALUE)
+        };
+
+        BigInteger[] outOfRange = {
+            BigInteger.valueOf((long)Integer.MIN_VALUE - 1),
+            BigInteger.valueOf((long)Integer.MIN_VALUE),
+            BigInteger.valueOf(   (int)Short.MIN_VALUE - 1),
+            BigInteger.valueOf(   (int)Short.MIN_VALUE),
+            BigInteger.valueOf(    (int)Byte.MIN_VALUE - 1),
+            BigInteger.valueOf(    (int)Byte.MAX_VALUE + 1),
+            BigInteger.valueOf(   (int)Short.MAX_VALUE + 1),
+            BigInteger.valueOf(   (int)Short.MAX_VALUE),
+            BigInteger.valueOf((long)Integer.MAX_VALUE),
+            BigInteger.valueOf((long)Integer.MAX_VALUE + 1)
+        };
+
+        for (BigInteger bi : inRange) {
+            if (bi.byteValueExact() != bi.byteValue()) {
+                System.err.println("Mismatching byte conversion for " + bi);
+                errors++;
+            }
+        }
+
+        for (BigInteger bi : outOfRange) {
+            try {
+                int value = bi.byteValueExact();
+                System.err.println("Failed to get expected exception on " +
+                                   bi + " got " + value);
+                errors++;
+            } catch(ArithmeticException ae) {
+                ; // Expected
+            }
+        }
+        return errors;
+    }
+}
diff --git a/jdk/test/java/net/CookieHandler/TestHttpCookie.java b/jdk/test/java/net/CookieHandler/TestHttpCookie.java
index 7d16753..cf93df9 100644
--- a/jdk/test/java/net/CookieHandler/TestHttpCookie.java
+++ b/jdk/test/java/net/CookieHandler/TestHttpCookie.java
@@ -362,12 +362,13 @@ public class TestHttpCookie {
         eq(c1, c2, false);
 
         header("Test domainMatches()");
-        dm(".foo.com",  "y.x.foo.com",      false);
-        dm(".foo.com",  "x.foo.com",        true);
-        dm(".com",      "whatever.com",     false);
-        dm(".com.",     "whatever.com",     false);
-        dm(".ajax.com", "ajax.com",         true);
-        dm(".local",    "example.local",    true);
+        dm(".foo.com",      "y.x.foo.com",      false);
+        dm(".foo.com",      "x.foo.com",        true);
+        dm(".com",          "whatever.com",     false);
+        dm(".com.",         "whatever.com",     false);
+        dm(".ajax.com",     "ajax.com",         true);
+        dm(".local",        "example.local",    true);
+        dm("example.local", "example",          true);
 
         // bug 6277808
         testCount++;
diff --git a/jdk/test/java/net/NetworkInterface/NetParamsTest.java b/jdk/test/java/net/NetworkInterface/NetParamsTest.java
index 7eff733..dd6d172 100644
--- a/jdk/test/java/net/NetworkInterface/NetParamsTest.java
+++ b/jdk/test/java/net/NetworkInterface/NetParamsTest.java
@@ -45,7 +45,9 @@ public class NetParamsTest {
         System.out.println("\tPoint to Point: " + netif.isPointToPoint());
         System.out.println("\tVirtual: " + netif.isVirtual());
         if (netif.isVirtual()) {
-            System.out.println("\tParent Interface: " + netif.getParent().getName());
+            NetworkInterface parent = netif.getParent();
+            String parentName = parent == null ? "null" : parent.getName();
+            System.out.println("\tParent Interface: " + parentName);
         }
         System.out.println("\tMulticast: " + netif.supportsMulticast());
 
diff --git a/jdk/test/java/net/Socket/ShutdownInput.java b/jdk/test/java/net/Socket/ShutdownInput.java
new file mode 100644
index 0000000..6754b4e
--- /dev/null
+++ b/jdk/test/java/net/Socket/ShutdownInput.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7014860
+ * @summary Socket.getInputStream().available() not clear for
+ *          case that connection is shutdown for reading
+ */
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.nio.channels.ServerSocketChannel;
+import java.nio.channels.SocketChannel;
+
+public class ShutdownInput {
+    static boolean failed = false;
+
+    public static void main(String args[]) throws Exception {
+        InetAddress iaddr = InetAddress.getLocalHost();
+
+        try ( ServerSocket ss = new ServerSocket(0);
+              Socket s1 = new Socket(iaddr, ss.getLocalPort());
+              Socket s2 = ss.accept() ) {
+
+            test(s1, s2, "Testing NET");
+        }
+
+        // check the NIO socket adapter
+        try (ServerSocketChannel sc = ServerSocketChannel.open().bind(null);
+             SocketChannel s1 = SocketChannel.open(
+                     new InetSocketAddress(iaddr, sc.socket().getLocalPort()));
+             SocketChannel s2 = sc.accept() ) {
+
+            test(s1.socket(), s2.socket(), "Testing NIO");
+        }
+
+        if (failed) {
+            throw new RuntimeException("Failed: check output");
+        }
+    }
+
+    public static void test(Socket s1, Socket s2, String mesg) throws Exception {
+        OutputStream os = s1.getOutputStream();
+        os.write("This is a message".getBytes("US-ASCII"));
+
+        InputStream in = s2.getInputStream();
+        s2.shutdownInput();
+
+        if (in.available() != 0) {
+            failed = true;
+            System.out.println(mesg + ":" + s2 + " in.available() should be 0, " +
+                               "but returns "+ in.available());
+        }
+
+        byte[] ba = new byte[2];
+        if (in.read() != -1 ||
+            in.read(ba) != -1 ||
+            in.read(ba, 0, ba.length) != -1) {
+
+            failed = true;
+            System.out.append(mesg + ":" + s2 + " in.read() should be -1");
+        }
+    }
+}
diff --git a/jdk/test/java/net/URI/Test.java b/jdk/test/java/net/URI/Test.java
index fb0fa33..b24bedf 100644
--- a/jdk/test/java/net/URI/Test.java
+++ b/jdk/test/java/net/URI/Test.java
@@ -23,7 +23,7 @@
 
 /* @test
  * @summary Unit test for java.net.URI
- * @bug 4464135 4505046 4503239 4438319 4991359 4866303 7023363
+ * @bug 4464135 4505046 4503239 4438319 4991359 4866303 7023363 7041800
  * @author Mark Reinhold
  */
 
@@ -1428,6 +1428,8 @@ public class Test {
         gt(s, new URI("http://jag:CafeBabe@java.sun.com:94/b/c/d?q#f"));
         lt(s, new URI("http://jag:cafebabe@java.sun.com:94/b/c/d?r#f"));
         lt(s, new URI("http://jag:cafebabe@java.sun.com:94/b/c/d?q#g"));
+        eq(new URI("http://host/a%00bcd"), new URI("http://host/a%00bcd"));
+        ne(new URI("http://host/a%00bcd"), new URI("http://host/aZ00bcd"));
 
         lt("p", "s:p");
         lt("s:p", "T:p");
diff --git a/jdk/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java b/jdk/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java
index f22b350..7833a4b 100644
--- a/jdk/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java
+++ b/jdk/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java
@@ -57,11 +57,22 @@ class NetworkConfiguration {
         return ip6Interfaces.get(nif);
     }
 
+    // IPv6 not supported for Windows XP/Server 2003
+    static boolean isIPv6Supported() {
+        if (System.getProperty("os.name").startsWith("Windows")) {
+            String ver = System.getProperty("os.version");
+            int major = Integer.parseInt(ver.split("\\.")[0]);
+            return (major >= 6);
+        }
+        return true;
+    }
+
     static NetworkConfiguration probe() throws IOException {
         Map<NetworkInterface,List<InetAddress>> ip4Interfaces =
             new HashMap<NetworkInterface,List<InetAddress>>();
         Map<NetworkInterface,List<InetAddress>> ip6Interfaces =
             new HashMap<NetworkInterface,List<InetAddress>>();
+        boolean isIPv6Supported = isIPv6Supported();
 
         // find the interfaces that support IPv4 and IPv6
         List<NetworkInterface> nifs = Collections
@@ -81,7 +92,7 @@ class NetworkConfiguration {
                         }
                         list.add(addr);
                         ip4Interfaces.put(nif, list);
-                    } else if (addr instanceof Inet6Address) {
+                    } else if (isIPv6Supported && (addr instanceof Inet6Address)) {
                         List<InetAddress> list = ip6Interfaces.get(nif);
                         if (list == null) {
                             list = new LinkedList<InetAddress>();
diff --git a/jdk/test/java/nio/channels/DatagramChannel/SelectWhenRefused.java b/jdk/test/java/nio/channels/DatagramChannel/SelectWhenRefused.java
index 6d444d5..426a98e 100644
--- a/jdk/test/java/nio/channels/DatagramChannel/SelectWhenRefused.java
+++ b/jdk/test/java/nio/channels/DatagramChannel/SelectWhenRefused.java
@@ -22,7 +22,7 @@
  */
 
 /* @test
- * @bug 6935563
+ * @bug 6935563 7044870
  * @summary Test that Selector does not select an unconnected DatagramChannel when
  *    ICMP port unreachable received
  */
@@ -35,14 +35,15 @@ import java.io.IOException;
 public class SelectWhenRefused {
 
     public static void main(String[] args) throws IOException {
-        DatagramChannel dc = DatagramChannel.open().bind(new InetSocketAddress(0));
-        int port = dc.socket().getLocalPort();
-        dc.close();
+        DatagramChannel dc1 = DatagramChannel.open().bind(new InetSocketAddress(0));
+        int port = dc1.socket().getLocalPort();
 
         // datagram sent to this address should be refused
         SocketAddress refuser = new InetSocketAddress(InetAddress.getLocalHost(), port);
 
-        dc = DatagramChannel.open().bind(new InetSocketAddress(0));
+        DatagramChannel dc = DatagramChannel.open().bind(new InetSocketAddress(0));
+        dc1.close();
+
         Selector sel = Selector.open();
         try {
             dc.configureBlocking(false);
@@ -52,6 +53,10 @@ public class SelectWhenRefused {
             sendDatagram(dc, refuser);
             int n = sel.select(2000);
             if (n > 0) {
+                sel.selectedKeys().clear();
+                // BindException will be thrown if another service is using
+                // our expected refuser port, cannot run just exit.
+                DatagramChannel.open().bind(refuser).close();
                 throw new RuntimeException("Unexpected wakeup");
             }
 
@@ -80,6 +85,8 @@ public class SelectWhenRefused {
                 throw new RuntimeException("Unexpected wakeup after disconnect");
             }
 
+        } catch(BindException e) {
+            // Do nothing, some other test has used this port
         } finally {
             sel.close();
             dc.close();
diff --git a/jdk/test/java/security/KeyPairGenerator/SolarisShortDSA.java b/jdk/test/java/security/KeyPairGenerator/SolarisShortDSA.java
new file mode 100644
index 0000000..69ed492
--- /dev/null
+++ b/jdk/test/java/security/KeyPairGenerator/SolarisShortDSA.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7081411
+ * @summary DSA keypair generation affected by Solaris bug
+ */
+
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.Signature;
+import sun.security.provider.DSAPrivateKey;
+
+public class SolarisShortDSA {
+    static byte[] data = new byte[0];
+    public static void main(String args[]) throws Exception {
+        for (int i=0; i<10000; i++) {
+            KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA");
+            KeyPair kp = kpg.generateKeyPair();
+            DSAPrivateKey dpk = (DSAPrivateKey)kp.getPrivate();
+            int len = dpk.getX().bitLength();
+            if (len <= 152) {
+                if (!use(kp)) {
+                    String os = System.getProperty("os.name");
+                    // Solaris bug, update the following line once it's fixed
+                    if (os.equals("SunOS")) {
+                        throw new IllegalStateException(
+                                "Don't panic. This is a Solaris bug");
+                    } else {
+                        throw new RuntimeException("Real test failure");
+                    }
+                }
+                break;
+            }
+        }
+    }
+
+    static boolean use(KeyPair kp) throws Exception {
+        Signature sig = Signature.getInstance("SHA1withDSA");
+        sig.initSign(kp.getPrivate());
+        sig.update(data);
+        byte[] signed = sig.sign();
+        Signature sig2 = Signature.getInstance("SHA1withDSA");
+        sig2.initVerify(kp.getPublic());
+        sig2.update(data);
+        return sig2.verify(signed);
+   }
+}
diff --git a/jdk/test/java/security/testlibrary/Providers.java b/jdk/test/java/security/testlibrary/Providers.java
new file mode 100644
index 0000000..b3e9f3e
--- /dev/null
+++ b/jdk/test/java/security/testlibrary/Providers.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.security.Provider;
+import java.security.Security;
+
+public class Providers {
+    public static void setAt(Provider p, int pos) throws Exception {
+        if (Security.getProvider(p.getName()) != null) {
+            Security.removeProvider(p.getName());
+        }
+        if (Security.insertProviderAt(p, pos) == -1) {
+            throw new Exception("cannot setAt");
+        }
+    }
+}
diff --git a/jdk/test/java/util/Currency/ValidateISO4217.java b/jdk/test/java/util/Currency/ValidateISO4217.java
index cfbe28b..3f50780 100644
--- a/jdk/test/java/util/Currency/ValidateISO4217.java
+++ b/jdk/test/java/util/Currency/ValidateISO4217.java
@@ -22,7 +22,7 @@
  */
 /*
  * @test
- * @bug 4691089 4819436 4942982 5104960 6544471 6627549
+ * @bug 4691089 4819436 4942982 5104960 6544471 6627549 7066203
  * @summary Validate ISO 4217 data for Currency class.
  */
 
@@ -92,7 +92,7 @@ public class ValidateISO4217 {
 
     /* Codes that are obsolete, do not have related country */
     static final String otherCodes =
-        "ADP-AFA-ATS-AYM-BEF-BGL-BOV-BYB-CLF-CYP-DEM-ESP-FIM-FRF-GRD-GWP-IEP-ITL-LUF-MGF-MTL-MXV-NLG-PTE-RUR-SDD-SIT-SRG-TPE-TRL-VEF-USN-USS-XAG-XAU-XBA-XBB-XBC-XBD-XDR-XFO-XFU-XPD-XPT-XTS-XXX-YUM-ZWN";
+        "ADP-AFA-ATS-AYM-BEF-BGL-BOV-BYB-CLF-CUC-CYP-DEM-EEK-ESP-FIM-FRF-GRD-GWP-IEP-ITL-LUF-MGF-MTL-MXV-NLG-PTE-RUR-SDD-SIT-SKK-SRG-TMM-TPE-TRL-VEF-USN-USS-XAG-XAU-XBA-XBB-XBC-XBD-XDR-XFO-XFU-XPD-XPT-XSU-XTS-XUA-XXX-YUM-ZWD-ZWN-ZWR";
 
     static boolean err = false;
 
diff --git a/jdk/test/java/util/Currency/tablea1.txt b/jdk/test/java/util/Currency/tablea1.txt
index 6968435..898af09 100644
--- a/jdk/test/java/util/Currency/tablea1.txt
+++ b/jdk/test/java/util/Currency/tablea1.txt
@@ -1,12 +1,12 @@
 #
 #
-# Based on BSi's ISO4217 data - "TABLE A1.doc" + amendments up until MA140.doc
-#   (As of 24 September  2007)
+# Based on BSi's ISO4217 data - "TABLE A1.doc" + amendments up until MA151.doc
+#   (As of 7 April 2011)
 #
 
 # Version
 FILEVERSION=1
-DATAVERSION=140
+DATAVERSION=151
 
 # ISO 4217 currency data
 AF	AFN	971	2
@@ -33,6 +33,7 @@ BE	EUR	978	2
 BZ	BZD	84	2
 BJ	XOF	952	0
 BM	BMD	60	2
+BQ	USD	840	2
 #BT	INR	356	2
 BT	BTN	64	2
 BO	BOB	68	2
@@ -68,6 +69,7 @@ CR	CRC	188	2
 CI	XOF	952	0
 HR	HRK	191	2
 CU	CUP	192	2
+CW	ANG	532	2
 CY	EUR	978	2
 CZ	CZK	203	2
 DK	DKK	208	2
@@ -80,7 +82,7 @@ SV	SVC	222	2
 #SV	USD	840	2
 GQ	XAF	950	0
 ER	ERN	232	2
-EE	EEK	233	2
+EE	EUR	978	2
 ET	ETB	230	2
 FK	FKP	238	2
 FO	DKK	208	2
@@ -218,7 +220,7 @@ CS	CSD	891	2
 SC	SCR	690	2
 SL	SLL	694	2
 SG	SGD	702	2
-SK	SKK	703	2
+SK	EUR	978	2
 # MA 131
 #SI	SIT	705	2
 SI	EUR	978	2
@@ -230,6 +232,7 @@ LK	LKR	144	2
 SD	SDG	938	2
 SR	SRD	968	2
 SJ	NOK	578	2
+SX	ANG	532	2
 SZ	SZL	748	2
 SE	SEK	752	2
 CH	CHF	756	2
@@ -249,7 +252,7 @@ TN	TND	788	3
 # MA 128
 #TR	TRL	792	0
 TR	TRY	949	2
-TM	TMM	795	2
+TM	TMT	934	2
 TC	USD	840	2
 TV	AUD	36	2
 UG	UGX	800	2
@@ -271,7 +274,7 @@ WF	XPF	953	0
 EH	MAD	504	2
 YE	YER	886	2
 ZM	ZMK	894	2
-ZW	ZWD	716	2
+ZW	ZWL	932	2
 #XAU	XAU	959
 #XBA	XBA	955
 #XBB	XBB	956
diff --git a/jdk/test/java/util/Formatter/Basic-X.java.template b/jdk/test/java/util/Formatter/Basic-X.java.template
index 20c63b2..55b2409 100644
--- a/jdk/test/java/util/Formatter/Basic-X.java.template
+++ b/jdk/test/java/util/Formatter/Basic-X.java.template
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,6 @@ import java.math.BigInteger;
 import java.text.DateFormatSymbols;
 import java.util.*;
 #if[double]
-import sun.misc.FpUtils;
 import sun.misc.DoubleConsts;
 #end[double]
 
@@ -1301,9 +1300,9 @@ public class Basic$Type$ extends Basic {
         test("%.11a", "0x1.00000000000p-1022", DoubleConsts.MIN_NORMAL);
         test("%.1a", "0x1.0p-1022", DoubleConsts.MIN_NORMAL);
         test("%.11a", "0x1.00000000000p-1022",
-             FpUtils.nextDown(DoubleConsts.MIN_NORMAL));
+             Math.nextDown(DoubleConsts.MIN_NORMAL));
         test("%.1a", "0x1.0p-1022",
-             FpUtils.nextDown(DoubleConsts.MIN_NORMAL));
+             Math.nextDown(DoubleConsts.MIN_NORMAL));
         test("%.11a", "0x1.ffffffffffep-1023",
              Double.parseDouble("0x0.fffffffffffp-1022"));
         test("%.1a", "0x1.0p-1022",
diff --git a/jdk/test/java/util/Formatter/BasicBigDecimal.java b/jdk/test/java/util/Formatter/BasicBigDecimal.java
index 5a0510a..afc446a 100644
--- a/jdk/test/java/util/Formatter/BasicBigDecimal.java
+++ b/jdk/test/java/util/Formatter/BasicBigDecimal.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicBigInteger.java b/jdk/test/java/util/Formatter/BasicBigInteger.java
index f3b763f..af3cac5 100644
--- a/jdk/test/java/util/Formatter/BasicBigInteger.java
+++ b/jdk/test/java/util/Formatter/BasicBigInteger.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicBoolean.java b/jdk/test/java/util/Formatter/BasicBoolean.java
index 76e8ee1..192a219 100644
--- a/jdk/test/java/util/Formatter/BasicBoolean.java
+++ b/jdk/test/java/util/Formatter/BasicBoolean.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicBooleanObject.java b/jdk/test/java/util/Formatter/BasicBooleanObject.java
index bc9faab..830fe72 100644
--- a/jdk/test/java/util/Formatter/BasicBooleanObject.java
+++ b/jdk/test/java/util/Formatter/BasicBooleanObject.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicByte.java b/jdk/test/java/util/Formatter/BasicByte.java
index 73606af..4887e94 100644
--- a/jdk/test/java/util/Formatter/BasicByte.java
+++ b/jdk/test/java/util/Formatter/BasicByte.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicByteObject.java b/jdk/test/java/util/Formatter/BasicByteObject.java
index 80b2f32..9a6dd23 100644
--- a/jdk/test/java/util/Formatter/BasicByteObject.java
+++ b/jdk/test/java/util/Formatter/BasicByteObject.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicChar.java b/jdk/test/java/util/Formatter/BasicChar.java
index 88b6587..8fe4bd5 100644
--- a/jdk/test/java/util/Formatter/BasicChar.java
+++ b/jdk/test/java/util/Formatter/BasicChar.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicCharObject.java b/jdk/test/java/util/Formatter/BasicCharObject.java
index d22fb7d..744103e 100644
--- a/jdk/test/java/util/Formatter/BasicCharObject.java
+++ b/jdk/test/java/util/Formatter/BasicCharObject.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicDateTime.java b/jdk/test/java/util/Formatter/BasicDateTime.java
index dadbf9a..131d723 100644
--- a/jdk/test/java/util/Formatter/BasicDateTime.java
+++ b/jdk/test/java/util/Formatter/BasicDateTime.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 import static java.util.SimpleTimeZone.*;
diff --git a/jdk/test/java/util/Formatter/BasicDouble.java b/jdk/test/java/util/Formatter/BasicDouble.java
index d61bf42..d33eb4d 100644
--- a/jdk/test/java/util/Formatter/BasicDouble.java
+++ b/jdk/test/java/util/Formatter/BasicDouble.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,6 @@ import java.math.BigInteger;
 import java.text.DateFormatSymbols;
 import java.util.*;
 
-import sun.misc.FpUtils;
 import sun.misc.DoubleConsts;
 
 
@@ -1301,9 +1300,9 @@ public class BasicDouble extends Basic {
         test("%.11a", "0x1.00000000000p-1022", DoubleConsts.MIN_NORMAL);
         test("%.1a", "0x1.0p-1022", DoubleConsts.MIN_NORMAL);
         test("%.11a", "0x1.00000000000p-1022",
-             FpUtils.nextDown(DoubleConsts.MIN_NORMAL));
+             Math.nextDown(DoubleConsts.MIN_NORMAL));
         test("%.1a", "0x1.0p-1022",
-             FpUtils.nextDown(DoubleConsts.MIN_NORMAL));
+             Math.nextDown(DoubleConsts.MIN_NORMAL));
         test("%.11a", "0x1.ffffffffffep-1023",
              Double.parseDouble("0x0.fffffffffffp-1022"));
         test("%.1a", "0x1.0p-1022",
diff --git a/jdk/test/java/util/Formatter/BasicDoubleObject.java b/jdk/test/java/util/Formatter/BasicDoubleObject.java
index d0c0db1..63cec1a 100644
--- a/jdk/test/java/util/Formatter/BasicDoubleObject.java
+++ b/jdk/test/java/util/Formatter/BasicDoubleObject.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicFloat.java b/jdk/test/java/util/Formatter/BasicFloat.java
index e70da65..d4e3d74 100644
--- a/jdk/test/java/util/Formatter/BasicFloat.java
+++ b/jdk/test/java/util/Formatter/BasicFloat.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicFloatObject.java b/jdk/test/java/util/Formatter/BasicFloatObject.java
index d68626a..e0deba7 100644
--- a/jdk/test/java/util/Formatter/BasicFloatObject.java
+++ b/jdk/test/java/util/Formatter/BasicFloatObject.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicInt.java b/jdk/test/java/util/Formatter/BasicInt.java
index ac1542f..cc71a40 100644
--- a/jdk/test/java/util/Formatter/BasicInt.java
+++ b/jdk/test/java/util/Formatter/BasicInt.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicIntObject.java b/jdk/test/java/util/Formatter/BasicIntObject.java
index 092d890..08b6bd5 100644
--- a/jdk/test/java/util/Formatter/BasicIntObject.java
+++ b/jdk/test/java/util/Formatter/BasicIntObject.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicLong.java b/jdk/test/java/util/Formatter/BasicLong.java
index 1983432..b26d6b0 100644
--- a/jdk/test/java/util/Formatter/BasicLong.java
+++ b/jdk/test/java/util/Formatter/BasicLong.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicLongObject.java b/jdk/test/java/util/Formatter/BasicLongObject.java
index 9daaa1d..847b66c 100644
--- a/jdk/test/java/util/Formatter/BasicLongObject.java
+++ b/jdk/test/java/util/Formatter/BasicLongObject.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicShort.java b/jdk/test/java/util/Formatter/BasicShort.java
index 0095bac..f2b61b1 100644
--- a/jdk/test/java/util/Formatter/BasicShort.java
+++ b/jdk/test/java/util/Formatter/BasicShort.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Formatter/BasicShortObject.java b/jdk/test/java/util/Formatter/BasicShortObject.java
index 8452b44..1ed1263 100644
--- a/jdk/test/java/util/Formatter/BasicShortObject.java
+++ b/jdk/test/java/util/Formatter/BasicShortObject.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@ import java.util.*;
 
 
 
-
 import static java.util.Calendar.*;
 
 
diff --git a/jdk/test/java/util/Locale/LocaleCategory.java b/jdk/test/java/util/Locale/LocaleCategory.java
index 39f942e..95cf309 100644
--- a/jdk/test/java/util/Locale/LocaleCategory.java
+++ b/jdk/test/java/util/Locale/LocaleCategory.java
@@ -56,6 +56,7 @@ public class LocaleCategory {
                                   Locale.getDefault().getVariant())).build();
             checkDefault();
             testGetSetDefault();
+            testBug7079486();
         } finally {
             // restore the reserved locale
             Locale.setDefault(reservedLocale);
@@ -82,5 +83,24 @@ public class LocaleCategory {
             throw new RuntimeException("setDefault() should set all default locales for all categories");
         }
     }
+
+    static void testBug7079486() {
+        Locale zh_Hans_CN = Locale.forLanguageTag("zh-Hans-CN");
+
+        // make sure JRE has zh_Hans_CN localized string
+        if (zh_Hans_CN.getDisplayScript(Locale.US).equals(zh_Hans_CN.getDisplayScript(zh_Hans_CN))) {
+            return;
+        }
+
+        Locale.setDefault(Locale.US);
+        String en_script = zh_Hans_CN.getDisplayScript();
+
+        Locale.setDefault(Locale.Category.DISPLAY, zh_Hans_CN);
+        String zh_script = zh_Hans_CN.getDisplayScript();
+
+        if (en_script.equals(zh_script)) {
+            throw new RuntimeException("Locale.getDisplayScript() (no args) does not honor default DISPLAY locale");
+        }
+    }
 }
 
diff --git a/jdk/test/java/util/Locale/LocaleCategory.sh b/jdk/test/java/util/Locale/LocaleCategory.sh
index bbe32ff..ecc6e94 100644
--- a/jdk/test/java/util/Locale/LocaleCategory.sh
+++ b/jdk/test/java/util/Locale/LocaleCategory.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 #
 # @test
-# @bug 4700857 6997928
+# @bug 4700857 6997928 7079486
 # @summary tests for Locale.getDefault(Locale.Category) and 
 #    Locale.setDefault(Locale.Category, Locale)
 # @build LocaleCategory
diff --git a/jdk/test/java/util/Locale/LocaleTest.java b/jdk/test/java/util/Locale/LocaleTest.java
index 88a0165..4d269ee 100644
--- a/jdk/test/java/util/Locale/LocaleTest.java
+++ b/jdk/test/java/util/Locale/LocaleTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
  * @bug 4052404 4052440 4084688 4092475 4101316 4105828 4107014 4107953 4110613
  * 4118587 4118595 4122371 4126371 4126880 4135316 4135752 4139504 4139940 4143951
  * 4147315 4147317 4147552 4335196 4778440 4940539 5010672 6475525 6544471 6627549
- * 6786276
+ * 6786276 7066203
  * @summary test Locales
  */
 /*
@@ -400,7 +400,7 @@ public class LocaleTest extends LocaleTestFmwk {
     }
 
     /**
-     * @bug 4106155 4118587
+     * @bug 4106155 4118587 7066203
      */
     public void TestGetLangsAndCountries() {
         // It didn't seem right to just do an exhaustive test of everything here, so I check
@@ -440,8 +440,8 @@ public class LocaleTest extends LocaleTestFmwk {
         String[] spotCheck2 = { "US", "CA", "GB", "FR", "DE", "IT", "JP", "KR", "CN", "TW", "TH" };
 
 
-        if (test.length != 246)
-            errln("Expected getISOCountries to return 246 countries; it returned " + test.length);
+        if (test.length != 249)
+            errln("Expected getISOCountries to return 249 countries; it returned " + test.length);
         else {
             for (int i = 0; i < spotCheck2.length; i++) {
                 int j;
diff --git a/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java b/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java
new file mode 100644
index 0000000..fefb467
--- /dev/null
+++ b/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7091003
+ * @summary ScheduledExecutorService never executes Runnable
+ *          with corePoolSize of zero
+ * @author Chris Hegarty
+ */
+
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Verify that tasks can be run even with a core pool size of 0.
+ */
+public class ZeroCorePoolSize {
+
+    volatile boolean taskRun;
+
+    void test(String[] args) throws Throwable {
+
+        ScheduledThreadPoolExecutor pool = new ScheduledThreadPoolExecutor(0);
+        Runnable task = new Runnable() {
+            public void run() {
+                taskRun = true;
+            }
+        };
+        check(pool.getCorePoolSize() == 0);
+
+        pool.schedule(task, 1, TimeUnit.SECONDS);
+
+        pool.shutdown();
+        check(pool.awaitTermination(20L, TimeUnit.SECONDS));
+        check(pool.getCorePoolSize() == 0);
+        check(taskRun);
+    }
+
+    //--------------------- Infrastructure ---------------------------
+    volatile int passed = 0, failed = 0;
+    void pass() {passed++;}
+    void fail() {failed++; Thread.dumpStack();}
+    void fail(String msg) {System.err.println(msg); fail();}
+    void unexpected(Throwable t) {failed++; t.printStackTrace();}
+    void check(boolean cond) {if (cond) pass(); else fail();}
+    void equal(Object x, Object y) {
+        if (x == null ? y == null : x.equals(y)) pass();
+        else fail(x + " not equal to " + y);}
+    public static void main(String[] args) throws Throwable {
+        new ZeroCorePoolSize().instanceMain(args);}
+    void instanceMain(String[] args) throws Throwable {
+        try {test(args);} catch (Throwable t) {unexpected(t);}
+        System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed);
+        if (failed > 0) throw new AssertionError("Some tests failed");}
+    abstract class F {abstract void f() throws Throwable;}
+    void THROWS(Class<? extends Throwable> k, F... fs) {
+        for (F f : fs)
+            try {f.f(); fail("Expected " + k.getName() + " not thrown");}
+            catch (Throwable t) {
+                if (k.isAssignableFrom(t.getClass())) pass();
+                else unexpected(t);}}
+}
diff --git a/jdk/test/java/util/logging/ParentLoggersTest.java b/jdk/test/java/util/logging/ParentLoggersTest.java
index 1caacb3..3dc4bfc 100644
--- a/jdk/test/java/util/logging/ParentLoggersTest.java
+++ b/jdk/test/java/util/logging/ParentLoggersTest.java
@@ -6,7 +6,7 @@
  * @author  ss45998
  *
  * @build ParentLoggersTest
- * @run main ParentLoggersTest
+ * @run main/othervm ParentLoggersTest
  */
 
 /*
diff --git a/jdk/test/java/util/zip/LargeZip.java b/jdk/test/java/util/zip/LargeZip.java
index 7d34fd1..81262e9 100644
--- a/jdk/test/java/util/zip/LargeZip.java
+++ b/jdk/test/java/util/zip/LargeZip.java
@@ -25,173 +25,242 @@
 
 import java.io.*;
 import java.nio.*;
+import java.nio.file.*;
+import java.nio.file.attribute.*;
+import java.nio.file.spi.*;
 import java.util.*;
 import java.util.zip.*;
 
+import static java.nio.file.StandardCopyOption.*;
+
 public class LargeZip {
-    // If true, don't delete large ZIP file created for test.
-    static final boolean debug = System.getProperty("debug") != null;
-
-    //static final int DATA_LEN = 1024 * 1024;
-    static final int DATA_LEN = 80 * 1024;
-    static final int DATA_SIZE = 8;
-
-    static long fileSize = 6L * 1024L * 1024L * 1024L; // 6GB
-
-    static boolean userFile = false;
-
-    static byte[] data;
-    static File largeFile;
-    static String lastEntryName;
-
-    /* args can be empty, in which case check a 3 GB file which is created for
-     * this test (and then deleted).  Or it can be a number, in which case
-     * that designates the size of the file that's created for this test (and
-     * then deleted).  Or it can be the name of a file to use for the test, in
-     * which case it is *not* deleted.  Note that in this last case, the data
-     * comparison might fail.
-     */
-    static void realMain (String[] args) throws Throwable {
-        if (args.length > 0) {
-            try {
-                fileSize = Long.parseLong(args[0]);
-                System.out.println("Testing with file of size " + fileSize);
-            } catch (NumberFormatException ex) {
-                largeFile = new File(args[0]);
-                if (!largeFile.exists()) {
-                    throw new Exception("Specified file " + args[0] + " does not exist");
-                }
-                userFile = true;
-                System.out.println("Testing with user-provided file " + largeFile);
-            }
-        }
-        File testDir = null;
-        if (largeFile == null) {
-            testDir = new File(System.getProperty("test.scratch", "."),
-                                    "LargeZip");
-            if (testDir.exists()) {
-                if (!testDir.delete()) {
-                    throw new Exception("Cannot delete already-existing test directory");
-                }
-            }
-            check(!testDir.exists() && testDir.mkdirs());
-            largeFile = new File(testDir, "largezip.zip");
-            createLargeZip();
-        }
-
-        readLargeZip1();
-        readLargeZip2();
-
-        if (!userFile && !debug) {
-            check(largeFile.delete());
-            check(testDir.delete());
-        }
-    }
-
-    static void createLargeZip() throws Throwable {
-        int iterations = DATA_LEN / DATA_SIZE;
-        ByteBuffer bb = ByteBuffer.allocate(DATA_SIZE);
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        for (int i = 0; i < iterations; i++) {
-            bb.putDouble(0, Math.random());
-            baos.write(bb.array(), 0, DATA_SIZE);
-        }
-        data = baos.toByteArray();
-
-        try (FileOutputStream fos = new FileOutputStream(largeFile);
-             BufferedOutputStream bos = new BufferedOutputStream(fos);
-             ZipOutputStream zos = new ZipOutputStream(bos))
-        {
-            long length = 0;
-            while (length < fileSize) {
-                ZipEntry ze = new ZipEntry("entry-" + length);
-                lastEntryName = ze.getName();
-                zos.putNextEntry(ze);
-                zos.write(data, 0, data.length);
-                zos.closeEntry();
-                length = largeFile.length();
-            }
-            System.out.println("Last entry written is " + lastEntryName);
-        }
-    }
-
-    static void readLargeZip1() throws Throwable {
-        ZipFile zipFile = new ZipFile(largeFile);
-        ZipEntry entry = null;
-        String entryName = null;
-        int count = 0;
-        Enumeration<? extends ZipEntry> entries = zipFile.entries();
-        while (entries.hasMoreElements()) {
-            entry = entries.nextElement();
-            entryName = entry.getName();
-            count++;
-        }
-        System.out.println("Number of entries read: " + count);
-        System.out.println("Last entry read is " + entryName);
-        check(!entry.isDirectory());
-        if (check(entryName.equals(lastEntryName))) {
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            InputStream is = zipFile.getInputStream(entry);
-            byte buf[] = new byte[4096];
-            int len;
-            while ((len = is.read(buf)) >= 0) {
-                baos.write(buf, 0, len);
-            }
-            baos.close();
-            is.close();
-            check(Arrays.equals(data, baos.toByteArray()));
-        }
-    }
-
-
-    static void readLargeZip2() throws Throwable {
-        try (FileInputStream fis = new FileInputStream(largeFile);
-             BufferedInputStream bis = new BufferedInputStream(fis);
-             ZipInputStream zis = new ZipInputStream(bis))
-        {
-            ZipEntry entry = null;
-            String entryName = null;
-            int count = 0;
-            while ((entry = zis.getNextEntry()) != null) {
-                entryName = entry.getName();
-                if (entryName.equals(lastEntryName)) {
-                    break;
-                }
-                count++;
-            }
-            System.out.println("Number of entries read: " + count);
-            System.out.println("Last entry read is " + entryName);
-            check(!entry.isDirectory());
-
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
-            byte buf[] = new byte[4096];
-            int len;
-            while ((len = zis.read(buf)) >= 0) {
-                baos.write(buf, 0, len);
-            }
-            baos.close();
-            check(Arrays.equals(data, baos.toByteArray()));
-            check(zis.getNextEntry() == null);
-        }
-    }
-
-
-    //--------------------- Infrastructure ---------------------------
-    static volatile int passed = 0, failed = 0;
-    static void pass() {passed++;}
-    static void pass(String msg) {System.out.println(msg); passed++;}
-    static void fail() {failed++; Thread.dumpStack();}
-    static void fail(String msg) {System.out.println(msg); fail();}
-    static void unexpected(Throwable t) {failed++; t.printStackTrace();}
-    static void unexpected(Throwable t, String msg) {
-        System.out.println(msg); failed++; t.printStackTrace();}
-    static boolean check(boolean cond) {if (cond) pass(); else fail(); return cond;}
-    static void equal(Object x, Object y) {
-        if (x == null ? y == null : x.equals(y)) pass();
-        else fail(x + " not equal to " + y);}
-    public static void main(String[] args) throws Throwable {
-        try {realMain(args);} catch (Throwable t) {unexpected(t);}
-        System.out.println("\nPassed = " + passed + " failed = " + failed);
-        if (failed > 0) throw new AssertionError("Some tests failed");}
+     // If true, don't delete large ZIP file created for test.
+     static final boolean debug = System.getProperty("debug") != null;
+
+     //static final int DATA_LEN = 1024 * 1024;
+     static final int DATA_LEN = 80 * 1024;
+     static final int DATA_SIZE = 8;
+
+     static long fileSize = 6L * 1024L * 1024L * 1024L; // 6GB
+
+     static boolean userFile = false;
+     static byte[] data;
+     static File largeFile;
+     static String lastEntryName;
+
+     /* args can be empty, in which case check a 3 GB file which is created for
+      * this test (and then deleted).  Or it can be a number, in which case
+      * that designates the size of the file that's created for this test (and
+      * then deleted).  Or it can be the name of a file to use for the test, in
+      * which case it is *not* deleted.  Note that in this last case, the data
+      * comparison might fail.
+      */
+     static void realMain (String[] args) throws Throwable {
+         if (args.length > 0) {
+             try {
+                 fileSize = Long.parseLong(args[0]);
+                 System.out.println("Testing with file of size " + fileSize);
+             } catch (NumberFormatException ex) {
+                 largeFile = new File(args[0]);
+                 if (!largeFile.exists()) {
+                     throw new Exception("Specified file " + args[0] + " does not exist");
+                 }
+                 userFile = true;
+                 System.out.println("Testing with user-provided file " + largeFile);
+             }
+         }
+         File testDir = null;
+         if (largeFile == null) {
+             testDir = new File(System.getProperty("test.scratch", "."),
+                                     "LargeZip");
+             if (testDir.exists()) {
+                 if (!testDir.delete()) {
+                     throw new Exception("Cannot delete already-existing test directory");
+                 }
+             }
+             check(!testDir.exists() && testDir.mkdirs());
+             largeFile = new File(testDir, "largezip.zip");
+             createLargeZip();
+         } else {
+             if (args.length > 1)
+                 updateLargeZip(args[1]); // add new entry with zfs
+         }
+         readLargeZip1();
+         readLargeZip2();
+
+         if (!userFile && !debug) {
+             check(largeFile.delete());
+             check(testDir.delete());
+         }
+     }
+
+     static void createLargeZip() throws Throwable {
+         int iterations = DATA_LEN / DATA_SIZE;
+         ByteBuffer bb = ByteBuffer.allocate(DATA_SIZE);
+         ByteArrayOutputStream baos = new ByteArrayOutputStream();
+         for (int i = 0; i < iterations; i++) {
+             bb.putDouble(0, Math.random());
+             baos.write(bb.array(), 0, DATA_SIZE);
+         }
+         data = baos.toByteArray();
+
+         try (FileOutputStream fos = new FileOutputStream(largeFile);
+              BufferedOutputStream bos = new BufferedOutputStream(fos);
+              ZipOutputStream zos = new ZipOutputStream(bos))
+         {
+             long length = 0;
+             while (length < fileSize) {
+                 ZipEntry ze = new ZipEntry("entry-" + length);
+                 lastEntryName = ze.getName();
+                 zos.putNextEntry(ze);
+                 zos.write(data, 0, data.length);
+                 zos.closeEntry();
+                 length = largeFile.length();
+             }
+             System.out.println("Last entry written is " + lastEntryName);
+         }
+     }
+
+     private static byte buf[] = new byte[4096];
+
+     static void checkEntry(ZipEntry e, InputStream is) throws Throwable {
+         long N = 0;
+         int n = 0;
+         while ((n = is.read(buf)) >= 0) {
+            N += n;
+         }
+         check(N == e.getSize());
+     }
+
+     static void readLargeZip1() throws Throwable {
+          ZipFile zipFile = new ZipFile(largeFile);
+          ZipEntry entry = null;
+          String entryName = null;
+          int count = 0;
+          System.out.println("ZipFile:");
+          Enumeration<? extends ZipEntry> entries = zipFile.entries();
+          while (entries.hasMoreElements()) {
+               entry = entries.nextElement();
+               entryName = entry.getName();
+               System.out.println("    checking " + entryName);
+               if (!entry.isDirectory()) {
+                    try (InputStream zeis = zipFile.getInputStream(entry)) {
+                        checkEntry(entry, zeis);
+                    }
+               }
+               count++;
+          }
+          System.out.println("Number of entries read: " + count);
+          check(!entry.isDirectory());
+          if (userFile || check(entryName.equals(lastEntryName))) {
+               ByteArrayOutputStream baos = new ByteArrayOutputStream();
+               InputStream is = zipFile.getInputStream(entry);
+               int len;
+               while ((len = is.read(buf)) >= 0) {
+                    baos.write(buf, 0, len);
+               }
+               baos.close();
+               is.close();
+               if (!userFile)
+                   check(Arrays.equals(data, baos.toByteArray()));
+          }
+     }
+
+     static void readLargeZip2() throws Throwable {
+         System.out.println("ZipInputStream:");
+         try (FileInputStream fis = new FileInputStream(largeFile);
+              BufferedInputStream bis = new BufferedInputStream(fis);
+              ZipInputStream zis = new ZipInputStream(bis))
+         {
+             ZipEntry entry = null;
+             String entryName = null;
+             int count = 0;
+             while ((entry = zis.getNextEntry()) != null) {
+                  entryName = entry.getName();
+
+                  System.out.println("    checking " + entryName +
+                                     ", method=" + entry.getMethod());
+                  if (entryName.equals(lastEntryName)) {
+                       break;
+                  }
+                  if (!entry.isDirectory()) {
+                       checkEntry(entry, zis);
+                  }
+                  count++;
+             }
+             System.out.println("Number of entries read: " + count);
+             System.out.println("Last entry read is " + entryName);
+             if (!userFile) {
+                  check(!entry.isDirectory());
+                  ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                  byte buf[] = new byte[4096];
+                  int len;
+                  while ((len = zis.read(buf)) >= 0) {
+                       baos.write(buf, 0, len);
+                  }
+                  baos.close();
+                  check(Arrays.equals(data, baos.toByteArray()));
+                  check(zis.getNextEntry() == null);
+             }
+         }
+     }
+
+     private static void updateFile(FileSystem fs, Path src) throws IOException {
+          Path dst = fs.getPath(src.toString());
+          Path parent = dst.getParent();
+          if (parent != null && Files.notExists(parent))
+               Files.createDirectories(parent);
+          Files.copy(src, dst, REPLACE_EXISTING);
+     }
+
+     private static FileSystemProvider getZipFSProvider() {
+         for (FileSystemProvider provider : FileSystemProvider.installedProviders()) {
+              if ("jar".equalsIgnoreCase(provider.getScheme()))
+                   return provider;
+         }
+         return null;
+     }
+
+     static void updateLargeZip(String pName) throws Throwable {
+         FileSystemProvider provider = getZipFSProvider();
+         if (provider == null) {
+             System.err.println("ZIP filesystem provider is not installed");
+             System.exit(1);
+         }
+         Map<String, Object> env = env = new HashMap<>();
+         try (FileSystem fs = provider.newFileSystem(largeFile.toPath(), env)) {
+             Path path = FileSystems.getDefault().getPath(pName);
+             Files.walkFileTree(
+                 path,
+                 new SimpleFileVisitor<Path>() {
+                     @Override
+                     public FileVisitResult visitFile(Path file,
+                                                      BasicFileAttributes attrs)
+                         throws IOException
+                     {
+                         updateFile(fs, file);
+                         return FileVisitResult.CONTINUE;
+                     }
+             });
+         }
+     }
+
+
+     //--------------------- Infrastructure ---------------------------
+     static volatile int passed = 0, failed = 0;
+     static void pass() {passed++;}
+     static void pass(String msg) {System.out.println(msg); passed++;}
+     static void fail() {failed++; Thread.dumpStack();}
+     static void fail(String msg) {System.out.println(msg); fail();}
+     static void unexpected(Throwable t) {failed++; t.printStackTrace();}
+     static void unexpected(Throwable t, String msg) {
+         System.out.println(msg); failed++; t.printStackTrace();}
+     static boolean check(boolean cond) {if (cond) pass(); else fail(); return cond;}
+     static void equal(Object x, Object y) {
+          if (x == null ? y == null : x.equals(y)) pass();
+          else fail(x + " not equal to " + y);}
+     public static void main(String[] args) throws Throwable {
+          try {realMain(args);} catch (Throwable t) {unexpected(t);}
+          System.out.println("\nPassed = " + passed + " failed = " + failed);
+          if (failed > 0) throw new AssertionError("Some tests failed");}
 }
diff --git a/jdk/test/javax/naming/ldap/LdapName/CompareToEqualsTests.java b/jdk/test/javax/naming/ldap/LdapName/CompareToEqualsTests.java
index 7c9146d..af6c9fc 100644
--- a/jdk/test/javax/naming/ldap/LdapName/CompareToEqualsTests.java
+++ b/jdk/test/javax/naming/ldap/LdapName/CompareToEqualsTests.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,12 +23,14 @@
 
 /*
  * @test
- * @bug 4635618
+ * @bug 4635618 7059542
  * @summary Support for manipulating LDAP Names
+ *          JNDI name operations should be locale independent
  */
 
 import javax.naming.ldap.*;
 import java.util.ArrayList;
+import java.util.Locale;
 import java.util.List;
 import javax.naming.InvalidNameException;
 
@@ -39,52 +41,61 @@ public class CompareToEqualsTests {
 
     public static void main(String args[])
                 throws Exception {
-
-        /**
-         * Test cases:
-         * 1) Same RDNs.
-         * 2) same RDN sequence with an AVA ordered differently.
-         * 3) RDN sequences of a differing AVA.
-         * 4) RDN sequence of different length.
-         * 5) RDN sequence of different Case.
-         * 6) Matching binary return values.
-         * 7) Binary values that don't match.
-         */
-        String names1[] = new String [] {
+         Locale reservedLocale = Locale.getDefault();
+         try {
+            /**
+             * Test cases:
+             * 1) Same RDNs.
+             * 2) same RDN sequence with an AVA ordered differently.
+             * 3) RDN sequences of a differing AVA.
+             * 4) RDN sequence of different length.
+             * 5) RDN sequence of different Case.
+             * 6) Matching binary return values.
+             * 7) Binary values that don't match.
+             */
+            String names1[] = new String [] {
                 "ou=Sales+cn=Bob", "ou=Sales+cn=Bob", "ou=Sales+cn=Bob",
                 "ou=Sales+cn=Scott+c=US", "cn=config"};
 
-        String names2[] = new String [] {
+            String names2[] = new String [] {
                 "ou=Sales+cn=Bob", "cn=Bob+ou=Sales", "ou=Sales+cn=Scott",
                 "ou=Sales+cn=Scott", "Cn=COnFIG"};
 
-        int expectedResults[] = {0, 0, -1, -1, 0};
+            int expectedResults[] = {0, 0, -1, -1, 0};
 
+            for (Locale locale : Locale.getAvailableLocales()) {
+                // reset the default locale
+                Locale.setDefault(locale);
 
-        for (int i = 0; i < names1.length; i++) {
-            checkResults(new LdapName(names1[i]),
+                for (int i = 0; i < names1.length; i++) {
+                    checkResults(new LdapName(names1[i]),
                         new LdapName(names2[i]), expectedResults[i]);
+                }
+
+                byte[] value = "abcxyz".getBytes();
+                Rdn rdn1 = new Rdn("binary", value);
+                ArrayList rdns1 = new ArrayList();
+                rdns1.add(rdn1);
+                LdapName l1 = new LdapName(rdns1);
+
+                Rdn rdn2 = new Rdn("binary", value);
+                ArrayList rdns2 = new ArrayList();
+                rdns2.add(rdn2);
+                LdapName l2 = new LdapName(rdns2);
+                checkResults(l1, l2, 0);
+
+                l2 = new LdapName("binary=#61626378797A");
+                checkResults(l1, l2, 0);
+
+                l2 = new LdapName("binary=#61626378797B");
+                checkResults(l1, l2, -1);
+
+                System.out.println("Tests passed");
+            }
+        } finally {
+            // restore the reserved locale
+            Locale.setDefault(reservedLocale);
         }
-
-        byte[] value = "abcxyz".getBytes();
-        Rdn rdn1 = new Rdn("binary", value);
-        ArrayList rdns1 = new ArrayList();
-        rdns1.add(rdn1);
-        LdapName l1 = new LdapName(rdns1);
-
-        Rdn rdn2 = new Rdn("binary", value);
-        ArrayList rdns2 = new ArrayList();
-        rdns2.add(rdn2);
-        LdapName l2 = new LdapName(rdns2);
-        checkResults(l1, l2, 0);
-
-        l2 = new LdapName("binary=#61626378797A");
-        checkResults(l1, l2, 0);
-
-        l2 = new LdapName("binary=#61626378797B");
-        checkResults(l1, l2, -1);
-
-        System.out.println("Tests passed");
     }
 
 
diff --git a/jdk/test/javax/security/auth/Subject/Synch.java b/jdk/test/javax/security/auth/Subject/Synch.java
index 417606b..9acc218 100644
--- a/jdk/test/javax/security/auth/Subject/Synch.java
+++ b/jdk/test/javax/security/auth/Subject/Synch.java
@@ -35,15 +35,15 @@ import javax.security.auth.Subject;
 import javax.security.auth.x500.X500Principal;
 
 public class Synch {
+    static volatile boolean finished = false;
     public static void main(String[] args) {
         Subject subject = new Subject();
         final Set principals = subject.getPrincipals();
         principals.add(new X500Principal("CN=Alice"));
         new Thread() {
-            { setDaemon(true); }
             public void run() {
                 Principal last = new X500Principal("CN=Bob");
-                for (int i = 0; true; i++) {
+                for (int i = 0; !finished; i++) {
                     Principal next = new X500Principal("CN=Bob" + i);
                     principals.add(next);
                     principals.remove(last);
@@ -70,5 +70,6 @@ public class Synch {
                     }
                 });
         }
+        finished = true;
     }
 }
diff --git a/jdk/test/javax/security/auth/Subject/Synch2.java b/jdk/test/javax/security/auth/Subject/Synch2.java
index b3da63a..c88fbee 100644
--- a/jdk/test/javax/security/auth/Subject/Synch2.java
+++ b/jdk/test/javax/security/auth/Subject/Synch2.java
@@ -35,6 +35,7 @@ import javax.security.auth.Subject;
 import javax.security.auth.x500.X500Principal;
 
 public class Synch2 {
+    static volatile boolean finished = false;
     public static void main(String[] args) {
         System.setSecurityManager(new SecurityManager());
         Subject subject = new Subject();
@@ -44,12 +45,11 @@ public class Synch2 {
         credentials.add("Dummy credential");
         new Thread() {
             {
-                setDaemon(true);
                 start();
             }
             public void run() {
                 X500Principal p = new X500Principal("CN=Bob");
-                while (true) {
+                while (!finished) {
                     principals.add(p);
                     principals.remove(p);
                 }
@@ -62,5 +62,6 @@ public class Synch2 {
                 }
             }
         }
+        finished = true;
     }
 }
diff --git a/jdk/test/javax/security/auth/Subject/Synch3.java b/jdk/test/javax/security/auth/Subject/Synch3.java
index 5feecd0..e058702 100644
--- a/jdk/test/javax/security/auth/Subject/Synch3.java
+++ b/jdk/test/javax/security/auth/Subject/Synch3.java
@@ -33,18 +33,18 @@ import javax.security.auth.Subject;
 import javax.security.auth.x500.X500Principal;
 
 public class Synch3 {
+    static volatile boolean finished = false;
     public static void main(String[] args) {
         Subject subject = new Subject();
         final Set principals = subject.getPrincipals();
         principals.add(new X500Principal("CN=Alice"));
         new Thread() {
             {
-                setDaemon(true);
                 start();
             }
             public void run() {
                 X500Principal p = new X500Principal("CN=Bob");
-                while (true) {
+                while (!finished) {
                     principals.add(p);
                     principals.remove(p);
                 }
@@ -53,5 +53,6 @@ public class Synch3 {
         for (int i = 0; i < 1000; i++) {
             subject.getPrincipals(X500Principal.class);
         }
+        finished = true;
     }
 }
diff --git a/jdk/test/javax/security/auth/login/LoginContext/ResetConfigModule.java b/jdk/test/javax/security/auth/login/LoginContext/ResetConfigModule.java
index cb1af29..b0f372f 100644
--- a/jdk/test/javax/security/auth/login/LoginContext/ResetConfigModule.java
+++ b/jdk/test/javax/security/auth/login/LoginContext/ResetConfigModule.java
@@ -25,7 +25,6 @@
  * @test
  * @bug 4633622
  * @summary  bug in LoginContext when Configuration is subclassed
- *
  * @build ResetConfigModule ResetModule
  * @run main ResetConfigModule
  */
@@ -40,32 +39,42 @@ public class ResetConfigModule {
 
     public static void main(String[] args) throws Exception {
 
-        Configuration.setConfiguration(new MyConfig());
+        Configuration previousConf = Configuration.getConfiguration();
+        ClassLoader previousCL = Thread.currentThread().getContextClassLoader();
 
-        LoginContext lc = new LoginContext("test");
         try {
-            lc.login();
-            throw new SecurityException("test 1 failed");
-        } catch (LoginException le) {
-            if (le.getCause() != null &&
-                le.getCause() instanceof SecurityException) {
-                System.out.println("good so far");
-            } else {
-                throw le;
+            Thread.currentThread().setContextClassLoader(
+                    ResetConfigModule.class.getClassLoader());
+            Configuration.setConfiguration(new MyConfig());
+
+            LoginContext lc = new LoginContext("test");
+            try {
+                lc.login();
+                throw new SecurityException("test 1 failed");
+            } catch (LoginException le) {
+                if (le.getCause() != null &&
+                    le.getCause() instanceof SecurityException) {
+                    System.out.println("good so far");
+                } else {
+                    throw le;
+                }
             }
-        }
 
-        LoginContext lc2 = new LoginContext("test2");
-        try {
-            lc2.login();
-            throw new SecurityException("test 2 failed");
-        } catch (LoginException le) {
-            if (le.getCause() != null &&
-                le.getCause()  instanceof SecurityException) {
-                System.out.println("test succeeded");
-            } else {
-                throw le;
+            LoginContext lc2 = new LoginContext("test2");
+            try {
+                lc2.login();
+                throw new SecurityException("test 2 failed");
+            } catch (LoginException le) {
+                if (le.getCause() != null &&
+                    le.getCause()  instanceof SecurityException) {
+                    System.out.println("test succeeded");
+                } else {
+                    throw le;
+                }
             }
+        } finally {
+            Configuration.setConfiguration(previousConf);
+            Thread.currentThread().setContextClassLoader(previousCL);
         }
     }
 }
diff --git a/jdk/test/javax/security/auth/x500/X500Principal/Parse.java b/jdk/test/javax/security/auth/x500/X500Principal/Parse.java
new file mode 100644
index 0000000..b4138f4
--- /dev/null
+++ b/jdk/test/javax/security/auth/x500/X500Principal/Parse.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7024771
+ * @summary various X500Principal DN parsing tests
+ */
+
+import javax.security.auth.x500.X500Principal;
+
+public class Parse {
+
+    private static TestCase[] testCases = {
+        new TestCase("CN=prefix\\<>suffix", false)
+    };
+
+    public static void main(String args[]) throws Exception {
+        for (int i = 0; i < testCases.length; i++) {
+            testCases[i].run();
+        }
+        System.out.println("Test completed ok.");
+    }
+}
+
+class TestCase {
+
+     private String name;
+     private boolean expectedResult;
+
+     TestCase(String name, boolean expectedResult) {
+         this.name = name;
+         this.expectedResult = expectedResult;
+     }
+
+     void run() throws Exception {
+         Exception f = null;
+         try {
+             System.out.println("Parsing: \"" + name + "\"");
+             new X500Principal(name);
+             if (expectedResult == false) {
+                 f = new Exception("Successfully parsed invalid name");
+             }
+         } catch (IllegalArgumentException e) {
+             if (expectedResult == true) {
+                 throw e;
+             }
+         }
+         if (f != null) {
+             throw f;
+         }
+     }
+}
diff --git a/jdk/test/javax/sql/rowset/serial/SerialBlob/SetBinaryStream.java b/jdk/test/javax/sql/rowset/serial/SerialBlob/SetBinaryStream.java
new file mode 100644
index 0000000..a2d7ea2
--- /dev/null
+++ b/jdk/test/javax/sql/rowset/serial/SerialBlob/SetBinaryStream.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+import javax.sql.rowset.serial.SerialBlob;
+import javax.sql.rowset.serial.SerialException;
+
+/**
+ * @test
+ * @bug 7077451
+ * @summary tests if the correct exception is thrown when calling method setBinaryStream() on SerialBlob
+ */
+public class SetBinaryStream {
+
+    public static void main(String[] args) throws Exception {
+        SerialBlob blob = new SerialBlob(new byte[0]);
+        try {
+            blob.setBinaryStream(0);
+        } catch (SerialException e) {
+            System.out.println("Test PASSED");
+        }
+    }
+
+}
diff --git a/jdk/test/javax/sql/rowset/serial/SerialClob/SetAsciiStream.java b/jdk/test/javax/sql/rowset/serial/SerialClob/SetAsciiStream.java
new file mode 100644
index 0000000..10deaf5
--- /dev/null
+++ b/jdk/test/javax/sql/rowset/serial/SerialClob/SetAsciiStream.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+import javax.sql.rowset.serial.SerialClob;
+import javax.sql.rowset.serial.SerialException;
+
+/**
+ * @test
+ * @bug 7077451
+ * @summary tests if the correct exception is thrown when calling method setAsciiStream() on SerialClob
+ */
+public class SetAsciiStream {
+
+    public static void main(String[] args) throws Exception {
+        SerialClob clob = new SerialClob(new char[0]);
+        try {
+            clob.setAsciiStream(0);
+        } catch (SerialException e) {
+             System.out.println("Test PASSED");
+        }
+    }
+
+}
diff --git a/jdk/test/javax/sql/rowset/serial/SerialClob/SetCharacterStream.java b/jdk/test/javax/sql/rowset/serial/SerialClob/SetCharacterStream.java
new file mode 100644
index 0000000..be861e4
--- /dev/null
+++ b/jdk/test/javax/sql/rowset/serial/SerialClob/SetCharacterStream.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+import javax.sql.rowset.serial.SerialClob;
+import javax.sql.rowset.serial.SerialException;
+
+/**
+ * @test
+ * @bug 7077451
+ * @summary tests if the correct exception is thrown when calling method setCharacterStream() on SerialClob
+ */
+public class SetCharacterStream {
+
+    public static void main(String[] args) throws Exception {
+        SerialClob clob = new SerialClob(new char[0]);
+        try {
+            clob.setCharacterStream(0);
+        } catch (SerialException e) {
+             System.out.println("Test PASSED");
+        }
+    }
+
+}
diff --git a/jdk/test/javax/swing/JPopupMenu/6694823/bug6694823.java b/jdk/test/javax/swing/JPopupMenu/6694823/bug6694823.java
index 171113c..e8d24d0 100644
--- a/jdk/test/javax/swing/JPopupMenu/6694823/bug6694823.java
+++ b/jdk/test/javax/swing/JPopupMenu/6694823/bug6694823.java
@@ -69,7 +69,12 @@ public class bug6694823 {
 
         toolkit.realSync();
         System.out.println("Test passed!");
-        frame.dispose();
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
+                frame.dispose();
+            }
+        });
     }
 
     private static void createGui() {
@@ -88,30 +93,44 @@ public class bug6694823 {
         frame.setSize(200, 200);
     }
 
-    private static void showPopup(final boolean shouldBeShifted) {
-        SwingUtilities.invokeLater(new Runnable() {
+    private static void showPopup(final boolean shouldBeShifted) throws Exception {
+        SwingUtilities.invokeAndWait(new Runnable() {
             public void run() {
                 // Place frame just above the task bar
                 Dimension screenSize = toolkit.getScreenSize();
                 frame.setLocation(screenSize.width / 2,
                         screenSize.height - frame.getHeight() - screenInsets.bottom);
                 frame.setVisible(true);
+            }
+        });
+
+        // Ensure frame is visible
+        toolkit.realSync();
 
+        final Point point = new Point();
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
                 // Place popup over the task bar
-                Point frameLoc = frame.getLocationOnScreen();
-                int x = 0;
-                int y = frame.getHeight()
-                        - popup.getPreferredSize().height + screenInsets.bottom;
-                popup.show(frame, x, y);
+                point.x = 0;
+                point.y = frame.getHeight() - popup.getPreferredSize().height + screenInsets.bottom;
+                popup.show(frame, point.x, point.y);
+            }
+        });
 
+        // Ensure popup is visible
+        toolkit.realSync();
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
+                Point frameLoc = frame.getLocationOnScreen();
                 if (shouldBeShifted) {
                     if (popup.getLocationOnScreen()
-                            .equals(new Point(frameLoc.x, frameLoc.y + y))) {
+                            .equals(new Point(frameLoc.x, frameLoc.y + point.y))) {
                         throw new RuntimeException("Popup is not shifted");
                     }
                 } else {
                     if (!popup.getLocationOnScreen()
-                            .equals(new Point(frameLoc.x, frameLoc.y + y))) {
+                            .equals(new Point(frameLoc.x, frameLoc.y + point.y))) {
                         throw new RuntimeException("Popup is unexpectedly shifted");
                     }
                 }
diff --git a/jdk/test/javax/swing/SwingUtilities/7088744/bug7088744.java b/jdk/test/javax/swing/SwingUtilities/7088744/bug7088744.java
new file mode 100644
index 0000000..9d2962c
--- /dev/null
+++ b/jdk/test/javax/swing/SwingUtilities/7088744/bug7088744.java
@@ -0,0 +1,221 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+   @bug 7088744
+   @summary SwingUtilities.isMiddleMouseButton does not work with ALT/Meta keys
+   @author Pavel Porvatov
+*/
+
+import sun.awt.SunToolkit;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+
+public class bug7088744 {
+    private static volatile JLabel label;
+
+    private static volatile Point point;
+
+    private static final int MOUSE_CLICKED = 1;
+    private static final int MOUSE_PRESSED = 2;
+    private static final int MOUSE_RELEASED = 3;
+
+    // Pair with (EventType, Mouse Button)
+    private static final int[][] BUTTON_EVENTS_SEQUENCE = {
+            {MOUSE_PRESSED, 1},
+            {MOUSE_PRESSED, 2},
+            {MOUSE_PRESSED, 3},
+            {MOUSE_RELEASED, 1},
+            {MOUSE_CLICKED, 1},
+            {MOUSE_RELEASED, 2},
+            {MOUSE_CLICKED, 2},
+            {MOUSE_RELEASED, 3},
+            {MOUSE_CLICKED, 3}
+    };
+
+    private static int eventCount;
+
+    public static void main(String[] args) throws Exception {
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
+                Component source = new JLabel();
+
+                MouseEvent mouseEventNoButtons = new MouseEvent(source, 0, System.currentTimeMillis(),
+                        Event.ALT_MASK | Event.META_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.META_DOWN_MASK,
+                        0, 0, 0, false, MouseEvent.NOBUTTON);
+
+                // isLeftMouseButton
+                if (SwingUtilities.isLeftMouseButton(mouseEventNoButtons)) {
+                    throw new RuntimeException("SwingUtilities.isLeftMouseButton fails 1");
+                }
+
+                if (!SwingUtilities.isLeftMouseButton(new MouseEvent(source, 0, System.currentTimeMillis(),
+                        InputEvent.BUTTON1_MASK, 0, 0, 1, false, MouseEvent.BUTTON1))) {
+                    throw new RuntimeException("SwingUtilities.isLeftMouseButton fails 2");
+                }
+
+                if (!SwingUtilities.isLeftMouseButton(new MouseEvent(source, 0, System.currentTimeMillis(),
+                        InputEvent.BUTTON1_DOWN_MASK, 0, 0, 1, false, MouseEvent.BUTTON1))) {
+                    throw new RuntimeException("SwingUtilities.isLeftMouseButton fails 3");
+                }
+
+                // isMiddleMouseButton
+                if (SwingUtilities.isMiddleMouseButton(mouseEventNoButtons)) {
+                    throw new RuntimeException("SwingUtilities.isMiddleMouseButton fails 1");
+                }
+
+                if (!SwingUtilities.isMiddleMouseButton(new MouseEvent(source, 0, System.currentTimeMillis(),
+                        InputEvent.BUTTON2_MASK, 0, 0, 1, false, MouseEvent.BUTTON2))) {
+                    throw new RuntimeException("SwingUtilities.isMiddleMouseButton fails 2");
+                }
+
+                if (!SwingUtilities.isMiddleMouseButton(new MouseEvent(source, 0, System.currentTimeMillis(),
+                        InputEvent.BUTTON2_DOWN_MASK, 0, 0, 1, false, MouseEvent.BUTTON2))) {
+                    throw new RuntimeException("SwingUtilities.isMiddleMouseButton fails 3");
+                }
+
+                // isRightMouseButton
+                if (SwingUtilities.isRightMouseButton(mouseEventNoButtons)) {
+                    throw new RuntimeException("SwingUtilities.isRightMouseButton fails 1");
+                }
+
+                if (!SwingUtilities.isRightMouseButton(new MouseEvent(source, 0, System.currentTimeMillis(),
+                        InputEvent.BUTTON3_MASK, 0, 0, 1, false, MouseEvent.BUTTON3))) {
+                    throw new RuntimeException("SwingUtilities.isRightMouseButton fails 2");
+                }
+
+                if (!SwingUtilities.isRightMouseButton(new MouseEvent(source, 0, System.currentTimeMillis(),
+                        InputEvent.BUTTON3_DOWN_MASK, 0, 0, 1, false, MouseEvent.BUTTON3))) {
+                    throw new RuntimeException("SwingUtilities.isRightMouseButton fails 3");
+                }
+            }
+        });
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
+                JFrame frame = new JFrame();
+
+                label = new JLabel("A label");
+
+                label.addMouseListener(new MouseAdapter() {
+                    public void mouseClicked(MouseEvent e) {
+                        processEvent(MOUSE_CLICKED, e);
+                    }
+
+                    public void mousePressed(MouseEvent e) {
+                        processEvent(MOUSE_PRESSED, e);
+                    }
+
+                    public void mouseReleased(MouseEvent e) {
+                        processEvent(MOUSE_RELEASED, e);
+                    }
+                });
+                frame.add(label);
+                frame.setSize(200, 100);
+                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+                frame.setVisible(true);
+            }
+        });
+
+        SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
+
+        toolkit.realSync();
+
+        // On Linux platforms realSync doesn't guaranties setSize completion
+        Thread.sleep(1000);
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
+                point = label.getLocationOnScreen();
+            }
+        });
+
+        Robot robot = new Robot();
+
+        robot.setAutoDelay(100);
+        robot.mouseMove(point.x, point.y);
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mousePress(InputEvent.BUTTON2_MASK);
+        robot.mousePress(InputEvent.BUTTON3_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON2_MASK);
+        robot.mouseRelease(InputEvent.BUTTON3_MASK);
+
+        toolkit.realSync();
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
+                if (eventCount != BUTTON_EVENTS_SEQUENCE.length) {
+                    throw new RuntimeException("Not all events received");
+                }
+
+            }
+        });
+
+        System.out.println("Test passed");
+    }
+
+    private static void processEvent(int eventType, MouseEvent e) {
+        if (eventCount >= BUTTON_EVENTS_SEQUENCE.length) {
+            throw new RuntimeException("Unexpected event " + e);
+        }
+
+        int[] arr = BUTTON_EVENTS_SEQUENCE[eventCount];
+
+        if (arr[0] != eventType) {
+            throw new RuntimeException("Unexpected eventType " + eventType + "on step " + eventCount);
+        }
+
+        boolean result;
+
+        switch (arr[1]) {
+            case 1:
+                result = SwingUtilities.isLeftMouseButton(e);
+
+                break;
+
+            case 2:
+                result = SwingUtilities.isMiddleMouseButton(e);
+
+                break;
+
+            case 3:
+                result = SwingUtilities.isRightMouseButton(e);
+
+                break;
+
+            default:
+                throw new RuntimeException("Incorrect arr[1] on step " + eventCount);
+        }
+
+        if (!result) {
+            throw new RuntimeException("Test failed on step " + eventCount);
+        }
+
+        eventCount++;
+    }
+}
diff --git a/jdk/test/javax/swing/text/html/TableView/7030332/bug7030332.html b/jdk/test/javax/swing/text/html/TableView/7030332/bug7030332.html
new file mode 100644
index 0000000..9a62f79
--- /dev/null
+++ b/jdk/test/javax/swing/text/html/TableView/7030332/bug7030332.html
@@ -0,0 +1,12 @@
+<html>
+<body>
+<applet  code="bug7030332.class" width=600 height=400></applet>
+
+Compare Golden Images with rendered JEditorPane.
+They should looks simalar in each line. Pay attention to:
+
+1. Border width around tables
+2. Border width around cells
+
+</body>
+</html>
diff --git a/jdk/test/javax/swing/text/html/TableView/7030332/bug7030332.java b/jdk/test/javax/swing/text/html/TableView/7030332/bug7030332.java
new file mode 100644
index 0000000..7038edb
--- /dev/null
+++ b/jdk/test/javax/swing/text/html/TableView/7030332/bug7030332.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+   @bug 7030332
+   @summary Default borders in tables looks incorrect JEditorPane
+   @author Pavel Porvatov
+ * @run applet/manual=yesno bug7030332.html
+*/
+
+import javax.swing.*;
+import java.awt.*;
+import java.net.URL;
+
+public class bug7030332 extends JApplet {
+    public static final String[] HTML_SAMPLES = new String[]{
+            "<table border><tr><th>Column1</th><th>Column2</th></tr></table>",
+            "<table border=\"\"><tr><th>Column1</th><th>Column2</th></tr></table>",
+            "<table border=\"1\"><tr><th>Column1</th><th>Column2</th></tr></table>",
+            "<table border=\"2\"><tr><th>Column1</th><th>Column2</th></tr></table>",
+    };
+
+    public static void main(String[] args) throws Exception {
+        SwingUtilities.invokeLater(new Runnable() {
+            public void run() {
+                JFrame frame = new JFrame();
+
+                frame.setContentPane(createContentPane());
+                frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+                frame.setSize(600, 400);
+                frame.setLocationRelativeTo(null);
+
+                frame.setVisible(true);
+
+            }
+        });
+    }
+
+    public void init() {
+        try {
+            SwingUtilities.invokeAndWait(new Runnable() {
+                public void run() {
+                    setContentPane(createContentPane());
+                }
+            });
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    private static Container createContentPane() {
+        JPanel result = new JPanel(new GridLayout(HTML_SAMPLES.length + 1, 3, 10, 10));
+
+        result.add(new JLabel("Html code"));
+        result.add(new JLabel("Golden image"));
+        result.add(new JLabel("JEditorPane"));
+
+        for (int i = 0; i < HTML_SAMPLES.length; i++) {
+            String htmlSample = HTML_SAMPLES[i];
+
+            JTextArea textArea = new JTextArea(htmlSample);
+
+            textArea.setLineWrap(true);
+
+            result.add(textArea);
+
+            String imageName = "sample" + i + ".png";
+            URL resource = bug7030332.class.getResource(imageName);
+
+            result.add(resource == null ? new JLabel(imageName + " not found") :
+                    new JLabel(new ImageIcon(resource), SwingConstants.LEFT));
+
+            result.add(new JEditorPane("text/html", htmlSample));
+        }
+
+        return result;
+    }
+}
diff --git a/jdk/test/javax/swing/text/html/TableView/7030332/sample0.png b/jdk/test/javax/swing/text/html/TableView/7030332/sample0.png
new file mode 100644
index 0000000..e18c9bb
Binary files /dev/null and b/jdk/test/javax/swing/text/html/TableView/7030332/sample0.png differ
diff --git a/jdk/test/javax/swing/text/html/TableView/7030332/sample1.png b/jdk/test/javax/swing/text/html/TableView/7030332/sample1.png
new file mode 100644
index 0000000..e18c9bb
Binary files /dev/null and b/jdk/test/javax/swing/text/html/TableView/7030332/sample1.png differ
diff --git a/jdk/test/javax/swing/text/html/TableView/7030332/sample2.png b/jdk/test/javax/swing/text/html/TableView/7030332/sample2.png
new file mode 100644
index 0000000..e18c9bb
Binary files /dev/null and b/jdk/test/javax/swing/text/html/TableView/7030332/sample2.png differ
diff --git a/jdk/test/javax/swing/text/html/TableView/7030332/sample3.png b/jdk/test/javax/swing/text/html/TableView/7030332/sample3.png
new file mode 100644
index 0000000..7f87605
Binary files /dev/null and b/jdk/test/javax/swing/text/html/TableView/7030332/sample3.png differ
diff --git a/jdk/test/javax/swing/text/html/TableView/7030332/sample4.png b/jdk/test/javax/swing/text/html/TableView/7030332/sample4.png
new file mode 100644
index 0000000..7f87605
Binary files /dev/null and b/jdk/test/javax/swing/text/html/TableView/7030332/sample4.png differ
diff --git a/jdk/test/javax/xml/crypto/dsig/SecurityManager/XMLDSigWithSecMgr.java b/jdk/test/javax/xml/crypto/dsig/SecurityManager/XMLDSigWithSecMgr.java
index c72fbaf..bcbf96e 100644
--- a/jdk/test/javax/xml/crypto/dsig/SecurityManager/XMLDSigWithSecMgr.java
+++ b/jdk/test/javax/xml/crypto/dsig/SecurityManager/XMLDSigWithSecMgr.java
@@ -26,6 +26,7 @@
  * @bug 6436919 6460930
  * @summary check that XML Signatures can be generated and validated with
  *  SecurityManager enabled and default policy
+ * @run main/othervm XMLDSigWithSecMgr
  * @author Sean Mullan
  */
 import java.io.*;
diff --git a/jdk/test/lib/security/java.policy/Ext_AllPolicy.sh b/jdk/test/lib/security/java.policy/Ext_AllPolicy.sh
index 5349866..c10d383 100644
--- a/jdk/test/lib/security/java.policy/Ext_AllPolicy.sh
+++ b/jdk/test/lib/security/java.policy/Ext_AllPolicy.sh
@@ -54,19 +54,16 @@ case "$OS" in
     NULL=/dev/null
     PS=":"
     FS="/"
-    TMP=/tmp
     ;;
   CYGWIN* )
     NULL=/dev/null
     PS=";"
     FS="/"
-    TMP=/tmp
     ;;
   Windows_95 | Windows_98 | Windows_NT )
     NULL=NUL
     PS=";"
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized system!"
diff --git a/jdk/test/sun/jvmstat/perfdata/PrologSanity/PrologSizeSanityCheck.java b/jdk/test/sun/jvmstat/perfdata/PrologSanity/PrologSizeSanityCheck.java
index 21df23a..617ac22 100644
--- a/jdk/test/sun/jvmstat/perfdata/PrologSanity/PrologSizeSanityCheck.java
+++ b/jdk/test/sun/jvmstat/perfdata/PrologSanity/PrologSizeSanityCheck.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 4990825
+ * @run main/othervm -XX:+UsePerfData  PrologSizeSanityCheck
  * @summary prolog size and overflow sanity checks
  */
 
diff --git a/jdk/test/sun/misc/JarIndex/metaInfFilenames/Basic.java b/jdk/test/sun/misc/JarIndex/metaInfFilenames/Basic.java
index 27b1f3f..ace09c2 100644
--- a/jdk/test/sun/misc/JarIndex/metaInfFilenames/Basic.java
+++ b/jdk/test/sun/misc/JarIndex/metaInfFilenames/Basic.java
@@ -155,7 +155,7 @@ public class Basic {
     static void compile(String... args) {
         debug("Running: javac " + Arrays.toString(args));
         com.sun.tools.javac.main.Main compiler = new com.sun.tools.javac.main.Main("javac");
-        if (compiler.compile(args) != 0) {
+        if (compiler.compile(args) != com.sun.tools.javac.main.Main.Result.OK) {
              throw new RuntimeException("javac failed: args=" + Arrays.toString(args));
         }
     }
diff --git a/jdk/test/sun/net/www/protocol/file/DirPermissionDenied.sh b/jdk/test/sun/net/www/protocol/file/DirPermissionDenied.sh
index 67930b0..91eaa6c 100644
--- a/jdk/test/sun/net/www/protocol/file/DirPermissionDenied.sh
+++ b/jdk/test/sun/net/www/protocol/file/DirPermissionDenied.sh
@@ -37,5 +37,9 @@ chmod 333 ${TESTDIR}
 
 $TESTJAVA/bin/java -classpath $TESTCLASSES DirPermissionDenied ${TESTDIR}
 result=$?
+
+# Add back read access for user, otherwise not removable on some systems
+chmod u+r ${TESTDIR}
+
 rm -rf ${TESTDIR}
 exit $result
diff --git a/jdk/test/sun/nio/cs/TestCp834_SBCS.java b/jdk/test/sun/nio/cs/TestCp834_SBCS.java
index 9ca5e26..25e6469 100644
--- a/jdk/test/sun/nio/cs/TestCp834_SBCS.java
+++ b/jdk/test/sun/nio/cs/TestCp834_SBCS.java
@@ -26,7 +26,6 @@
    @summary Check all Cp933 SBCS characters are not supported in Cp834
  */
 
-import sun.io.*;
 import java.io.*;
 import java.nio.*;
 import java.nio.charset.*;
@@ -36,8 +35,6 @@ public class TestCp834_SBCS {
         // The correctness of 1:1 mapping is Coverted by CoderTest.java
         // and TestConv.java, we only need to verify that SBCS characters
         // are not supported by this charset.
-        CharToByteConverter cb834 = CharToByteConverter.getConverter("Cp834");
-        ByteToCharConverter bc834 = ByteToCharConverter.getConverter("Cp834");
         CharsetEncoder enc834 = Charset.forName("Cp834")
                                        .newEncoder()
                                        .onUnmappableCharacter(CodingErrorAction.REPLACE)
@@ -73,27 +70,6 @@ public class TestCp834_SBCS {
                     ByteBuffer bb = enc834.encode(CharBuffer.wrap(ca));
                     if (bb.get() != (byte)0xfe || bb.get() != (byte)0xfe)
                         throw new Exception("SBCS is supported in IBM834 encoder");
-
-                    boolean isMalformed = false;
-                    int ret = 0;
-                    bc834.reset();
-                    try {
-                        ret = bc834.convert(ba, 0, 1, ca, 0, 1);
-                    } catch (sun.io.MalformedInputException x) { isMalformed = true; }
-                    if (!isMalformed && ret != 0 && ca[0] != '\ufffd') {
-                        // three scenarios (1)malformed (2)held as an incomplete
-                        // input or (3)return replacement all mean "no sbcs"
-                        throw new Exception("SBCS is supported in Cp834 b2c");
-                    }
-
-                    if (cb834.canConvert(c))
-                        throw new Exception("SBCS can be converted in Cp834 c2b ");
-
-                    ca[0] = c;
-                    if (cb834.convert(ca, 0, 1, ba2, 0, 2) != 2 ||
-                        ba2[0] != (byte)0xfe || ba2[1] != (byte)0xfe) {
-                        throw new Exception("SBCS is supported in Cp834 c2b");
-                    }
                 }
             }
         }
diff --git a/jdk/test/sun/security/ec/TestEC.java b/jdk/test/sun/security/ec/TestEC.java
index 3c4a895..c23980d 100644
--- a/jdk/test/sun/security/ec/TestEC.java
+++ b/jdk/test/sun/security/ec/TestEC.java
@@ -28,11 +28,13 @@
  * @library ../pkcs11
  * @library ../pkcs11/ec
  * @library ../pkcs11/sslecc
+ * @library ../../../java/security/testlibrary
  * @compile -XDignore.symbol.file TestEC.java
  * @run main TestEC
  */
 
 import java.security.Provider;
+import java.security.Security;
 
 /*
  * Leverage the collection of EC tests used by PKCS11
@@ -51,6 +53,15 @@ import java.security.Provider;
 public class TestEC {
 
     public static void main(String[] args) throws Exception {
+        ProvidersSnapshot snapshot = ProvidersSnapshot.create();
+        try {
+            main0(args);
+        } finally {
+            snapshot.restore();
+        }
+    }
+
+    public static void main0(String[] args) throws Exception {
         Provider p = new sun.security.ec.SunEC();
         System.out.println("Running tests with " + p.getName() +
             " provider...\n");
@@ -67,6 +78,11 @@ public class TestEC {
         new TestECGenSpec().main(p);
         new ReadPKCS12().main(p);
         new ReadCertificates().main(p);
+
+        // ClientJSSEServerJSSE fails on Solaris 11 when both SunEC and
+        // SunPKCS11-Solaris providers are enabled.
+        // Workaround:
+        // Security.removeProvider("SunPKCS11-Solaris");
         new ClientJSSEServerJSSE().main(p);
 
         long stop = System.currentTimeMillis();
diff --git a/jdk/test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java b/jdk/test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java
index 998f50d..2dcedc4 100644
--- a/jdk/test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java
+++ b/jdk/test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java
@@ -36,7 +36,7 @@ public class NoSpnegoAsDefMech {
     public static void main(String[] argv) throws Exception {
         System.setProperty("sun.security.jgss.mechanism", GSSUtil.GSS_SPNEGO_MECH_OID.toString());
         try {
-            GSSManager.getInstance().createName("service at host", GSSName.NT_HOSTBASED_SERVICE, new Oid("1.3.6.1.5.5.2"));
+            GSSManager.getInstance().createName("service at localhost", GSSName.NT_HOSTBASED_SERVICE, new Oid("1.3.6.1.5.5.2"));
         } catch (GSSException e) {
             // This is OK, for example, krb5.conf is missing or other problems
         }
diff --git a/jdk/test/sun/security/krb5/Krb5NameEquals.java b/jdk/test/sun/security/krb5/Krb5NameEquals.java
index b572a9e..765621d 100644
--- a/jdk/test/sun/security/krb5/Krb5NameEquals.java
+++ b/jdk/test/sun/security/krb5/Krb5NameEquals.java
@@ -31,8 +31,8 @@ import org.ietf.jgss.*;
 
 public class Krb5NameEquals {
 
-    private static String NAME_STR1 = "service at host";
-    private static String NAME_STR2 = "service at host2";
+    private static String NAME_STR1 = "service at localhost";
+    private static String NAME_STR2 = "service2 at localhost";
     private static final Oid MECH;
 
     static {
@@ -57,7 +57,7 @@ public class Krb5NameEquals {
         GSSName name3 = mgr.createName(NAME_STR1,
             GSSName.NT_HOSTBASED_SERVICE, MECH);
 
-        if (!name1.equals(name3) || !name1.equals(name3) ||
+        if (!name1.equals(name1) || !name1.equals(name3) ||
             !name1.equals((Object) name1) ||
             !name1.equals((Object) name3)) {
             System.out.println("Error: should be the same name");
diff --git a/jdk/test/sun/security/krb5/auto/DupEtypes.java b/jdk/test/sun/security/krb5/auto/DupEtypes.java
new file mode 100644
index 0000000..92da74b
--- /dev/null
+++ b/jdk/test/sun/security/krb5/auto/DupEtypes.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7067974
+ * @summary multiple ETYPE-INFO-ENTRY with same etype and different salt
+ * @compile -XDignore.symbol.file DupEtypes.java
+ * @run main/othervm DupEtypes 1
+ * @run main/othervm DupEtypes 2
+ * @run main/othervm/fail DupEtypes 3
+ * @run main/othervm DupEtypes 4
+ * @run main/othervm DupEtypes 5
+ */
+
+import sun.security.jgss.GSSUtil;
+
+public class DupEtypes {
+
+    public static void main(String[] args) throws Exception {
+
+        OneKDC kdc = new OneKDC(null);
+        kdc.writeJAASConf();
+
+        // Different test cases, read KDC.processAsReq for details
+        kdc.setOption(KDC.Option.DUP_ETYPE, Integer.parseInt(args[0]));
+
+        Context c, s;
+        c = Context.fromJAAS("client");
+        s = Context.fromJAAS("server");
+
+        c.startAsClient(OneKDC.SERVER, GSSUtil.GSS_KRB5_MECH_OID);
+        s.startAsServer(GSSUtil.GSS_KRB5_MECH_OID);
+
+        Context.handshake(c, s);
+
+        Context.transmit("i say high --", c, s);
+        Context.transmit("   you say low", s, c);
+
+        s.dispose();
+        c.dispose();
+    }
+}
diff --git a/jdk/test/sun/security/krb5/auto/KDC.java b/jdk/test/sun/security/krb5/auto/KDC.java
index e4b4a9d..9d924f6 100644
--- a/jdk/test/sun/security/krb5/auto/KDC.java
+++ b/jdk/test/sun/security/krb5/auto/KDC.java
@@ -174,6 +174,10 @@ public class KDC {
          * Set all name-type to a value in response
          */
         RESP_NT,
+        /**
+         * Multiple ETYPE-INFO-ENTRY with same etype but different salt
+         */
+        DUP_ETYPE,
     };
 
     static {
@@ -881,48 +885,104 @@ public class KDC {
             bFlags[Krb5.TKT_OPTS_INITIAL] = true;
 
             // Creating PA-DATA
-            int[] epas = eTypes;
-            if (options.containsKey(KDC.Option.RC4_FIRST_PREAUTH)) {
-                for (int i=1; i<epas.length; i++) {
-                    if (epas[i] == EncryptedData.ETYPE_ARCFOUR_HMAC) {
-                        epas[i] = epas[0];
-                        epas[0] = EncryptedData.ETYPE_ARCFOUR_HMAC;
+            DerValue[] pas2 = null, pas = null;
+            if (options.containsKey(KDC.Option.DUP_ETYPE)) {
+                int n = (Integer)options.get(KDC.Option.DUP_ETYPE);
+                switch (n) {
+                    case 1:     // customer's case in 7067974
+                        pas2 = new DerValue[] {
+                            new DerValue(new ETypeInfo2(1, null, null).asn1Encode()),
+                            new DerValue(new ETypeInfo2(1, "", null).asn1Encode()),
+                            new DerValue(new ETypeInfo2(1, OneKDC.REALM, new byte[]{1}).asn1Encode()),
+                        };
+                        pas = new DerValue[] {
+                            new DerValue(new ETypeInfo(1, null).asn1Encode()),
+                            new DerValue(new ETypeInfo(1, "").asn1Encode()),
+                            new DerValue(new ETypeInfo(1, OneKDC.REALM).asn1Encode()),
+                        };
+                        break;
+                    case 2:     // we still reject non-null s2kparams and prefer E2 over E
+                        pas2 = new DerValue[] {
+                            new DerValue(new ETypeInfo2(1, OneKDC.REALM, new byte[]{1}).asn1Encode()),
+                            new DerValue(new ETypeInfo2(1, null, null).asn1Encode()),
+                            new DerValue(new ETypeInfo2(1, "", null).asn1Encode()),
+                        };
+                        pas = new DerValue[] {
+                            new DerValue(new ETypeInfo(1, OneKDC.REALM).asn1Encode()),
+                            new DerValue(new ETypeInfo(1, null).asn1Encode()),
+                            new DerValue(new ETypeInfo(1, "").asn1Encode()),
+                        };
+                        break;
+                    case 3:     // but only E is wrong
+                        pas = new DerValue[] {
+                            new DerValue(new ETypeInfo(1, OneKDC.REALM).asn1Encode()),
+                            new DerValue(new ETypeInfo(1, null).asn1Encode()),
+                            new DerValue(new ETypeInfo(1, "").asn1Encode()),
+                        };
+                        break;
+                    case 4:     // we also ignore rc4-hmac
+                        pas = new DerValue[] {
+                            new DerValue(new ETypeInfo(23, "ANYTHING").asn1Encode()),
+                            new DerValue(new ETypeInfo(1, null).asn1Encode()),
+                            new DerValue(new ETypeInfo(1, "").asn1Encode()),
+                        };
+                        break;
+                    case 5:     // "" should be wrong, but we accept it now
+                                // See s.s.k.internal.PAData$SaltAndParams
+                        pas = new DerValue[] {
+                            new DerValue(new ETypeInfo(1, "").asn1Encode()),
+                            new DerValue(new ETypeInfo(1, null).asn1Encode()),
+                        };
                         break;
-                    }
-                };
-            } else if (options.containsKey(KDC.Option.ONLY_ONE_PREAUTH)) {
-                epas = new int[] { eTypes[0] };
-            }
-
-            DerValue[] pas = new DerValue[epas.length];
-            for (int i=0; i<epas.length; i++) {
-                pas[i] = new DerValue(new ETypeInfo2(
-                        epas[i],
-                        epas[i] == EncryptedData.ETYPE_ARCFOUR_HMAC ?
-                            null : getSalt(body.cname),
-                        null).asn1Encode());
-            }
-            DerOutputStream eid = new DerOutputStream();
-            eid.putSequence(pas);
-
-            outPAs.add(new PAData(Krb5.PA_ETYPE_INFO2, eid.toByteArray()));
-
-            boolean allOld = true;
-            for (int i: eTypes) {
-                if (i == EncryptedData.ETYPE_AES128_CTS_HMAC_SHA1_96 ||
-                        i == EncryptedData.ETYPE_AES256_CTS_HMAC_SHA1_96) {
-                    allOld = false;
-                    break;
                 }
-            }
-            if (allOld) {
+            } else {
+                int[] epas = eTypes;
+                if (options.containsKey(KDC.Option.RC4_FIRST_PREAUTH)) {
+                    for (int i=1; i<epas.length; i++) {
+                        if (epas[i] == EncryptedData.ETYPE_ARCFOUR_HMAC) {
+                            epas[i] = epas[0];
+                            epas[0] = EncryptedData.ETYPE_ARCFOUR_HMAC;
+                            break;
+                        }
+                    };
+                } else if (options.containsKey(KDC.Option.ONLY_ONE_PREAUTH)) {
+                    epas = new int[] { eTypes[0] };
+                }
+                pas2 = new DerValue[epas.length];
                 for (int i=0; i<epas.length; i++) {
-                    pas[i] = new DerValue(new ETypeInfo(
+                    pas2[i] = new DerValue(new ETypeInfo2(
                             epas[i],
                             epas[i] == EncryptedData.ETYPE_ARCFOUR_HMAC ?
-                                null : getSalt(body.cname)
-                            ).asn1Encode());
+                                null : getSalt(body.cname),
+                            null).asn1Encode());
+                }
+                boolean allOld = true;
+                for (int i: eTypes) {
+                    if (i == EncryptedData.ETYPE_AES128_CTS_HMAC_SHA1_96 ||
+                            i == EncryptedData.ETYPE_AES256_CTS_HMAC_SHA1_96) {
+                        allOld = false;
+                        break;
+                    }
                 }
+                if (allOld) {
+                    pas = new DerValue[epas.length];
+                    for (int i=0; i<epas.length; i++) {
+                        pas[i] = new DerValue(new ETypeInfo(
+                                epas[i],
+                                epas[i] == EncryptedData.ETYPE_ARCFOUR_HMAC ?
+                                    null : getSalt(body.cname)
+                                ).asn1Encode());
+                    }
+                }
+            }
+
+            DerOutputStream eid;
+            if (pas2 != null) {
+                eid = new DerOutputStream();
+                eid.putSequence(pas2);
+                outPAs.add(new PAData(Krb5.PA_ETYPE_INFO2, eid.toByteArray()));
+            }
+            if (pas != null) {
                 eid = new DerOutputStream();
                 eid.putSequence(pas);
                 outPAs.add(new PAData(Krb5.PA_ETYPE_INFO, eid.toByteArray()));
diff --git a/jdk/test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh b/jdk/test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh
index 8f452f9..917e90e 100644
--- a/jdk/test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh
+++ b/jdk/test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh
@@ -25,6 +25,8 @@
 # @bug 6599979
 # @summary Ensure that re-assigning the alias works
 #
+# @library ..
+# @build SecretKeysBasic
 # @run shell SecretKeysBasic.sh
 #
 # To run by hand:
@@ -43,10 +45,9 @@ fi
 if [ "${TESTCLASSES}" = "" ] ; then
     TESTCLASSES=`pwd`
 fi
-
-# if running by hand on windows, change this to appropriate value
 if [ "${TESTJAVA}" = "" ] ; then
-    TESTJAVA="/net/shimmer/export/valeriep/jdk7/build/solaris-sparc"
+    JAVAC_CMD=`which javac`
+    TESTJAVA=`dirname $JAVAC_CMD`/..
 fi
 echo TESTSRC=${TESTSRC}
 echo TESTCLASSES=${TESTCLASSES}
@@ -63,19 +64,41 @@ case "$OS" in
   SunOS )
     FS="/"
     PS=":"
-    SCCS="${FS}usr${FS}ccs${FS}bin${FS}sccs"
-    CP="${FS}bin${FS}cp -f"
-    RM="${FS}bin${FS}rm -rf"
-    MKDIR="${FS}bin${FS}mkdir -p"
-    CHMOD="${FS}bin${FS}chmod"
+    OS_VERSION=`uname -r`
+    case "${OS_VERSION}" in
+      5.1* )
+        SOFTTOKEN_DIR=${TESTCLASSES}
+        export SOFTTOKEN_DIR
+        TOKENS="nss solaris"
+        ;;
+      * )
+        # SunPKCS11-Solaris Test only runs on Solaris 5.10 and later
+        TOKENS="nss"
+        ;;
+    esac
+    ;;
+  Windows_* )
+    FS="\\"
+    PS=";"
+    TOKENS="nss"
+    ;;
+  CYGWIN* )
+    FS="/"
+    PS=";"
+    TOKENS="nss"
     ;;
   * )
-    echo "Unsupported System ${OS} - Test only runs on Solaris"
-    exit 0;
+    FS="/"
+    PS=":"
+    TOKENS="nss"
     ;;
 esac
 
-TOKENS="nss solaris"
+CP="cp -f"
+RM="rm -rf"
+MKDIR="mkdir -p"
+CHMOD="chmod"
+
 STATUS=0
 for token in ${TOKENS}
 do
@@ -91,18 +114,6 @@ then
     USED_FILE_LIST="${TESTCLASSES}${FS}cert8.db ${TESTCLASSES}${FS}key3.db"
 elif [ ${token} = "solaris" ]
 then
-    OS_VERSION=`uname -r`
-    case "${OS_VERSION}" in
-      5.1* )
-        SOFTTOKEN_DIR=${TESTCLASSES}
-        export SOFTTOKEN_DIR
-        ;;
-      * )
-        echo "Unsupported Version ${OS_VERSION} - Test only runs on Solaris"
-        exit 0;
-        ;;
-    esac
-
     # copy keystore into write-able location
     if [ -d ${TESTCLASSES}${FS}pkcs11_softtoken ]
     then
@@ -127,12 +138,6 @@ then
     USED_FILE_LIST="${TESTCLASSES}${FS}pkcs11_softtoken"
 fi
 
-cd ${TESTCLASSES}
-${TESTJAVA}${FS}bin${FS}javac \
-        -classpath ${TESTCLASSES} \
-        -d ${TESTCLASSES} \
-        ${TESTSRC}${FS}SecretKeysBasic.java
-
 # run test
 cd ${TESTSRC}
 ${TESTJAVA}${FS}bin${FS}java \
diff --git a/jdk/test/sun/security/pkcs11/PKCS11Test.java b/jdk/test/sun/security/pkcs11/PKCS11Test.java
index 820435c..fc0eae0 100644
--- a/jdk/test/sun/security/pkcs11/PKCS11Test.java
+++ b/jdk/test/sun/security/pkcs11/PKCS11Test.java
@@ -72,10 +72,33 @@ public abstract class PKCS11Test {
     }
 
     public static void main(PKCS11Test test) throws Exception {
-        System.out.println("Beginning test run " + test.getClass().getName() + "...");
-        testDefault(test);
-        testNSS(test);
-        testDeimos(test);
+        Provider[] oldProviders = Security.getProviders();
+        try {
+            System.out.println("Beginning test run " + test.getClass().getName() + "...");
+            testDefault(test);
+            testNSS(test);
+            testDeimos(test);
+        } finally {
+            Provider[] newProviders = Security.getProviders();
+            // Do not restore providers if nothing changed. This is especailly
+            // useful for ./Provider/Login.sh, where a SecurityManager exists.
+            if (oldProviders.length == newProviders.length) {
+                boolean found = false;
+                for (int i = 0; i<oldProviders.length; i++) {
+                    if (oldProviders[i] != newProviders[i]) {
+                        found = true;
+                        break;
+                    }
+                }
+                if (!found) return;
+            }
+            for (Provider p: newProviders) {
+                Security.removeProvider(p.getName());
+            }
+            for (Provider p: oldProviders) {
+                Security.addProvider(p);
+            }
+        }
     }
 
     public static void testDeimos(PKCS11Test test) throws Exception {
@@ -153,21 +176,21 @@ public abstract class PKCS11Test {
         return libdir;
     }
 
-    static boolean loadNSPR(String libdir) throws Exception {
-        // load NSS softoken dependencies in advance to avoid resolver issues
+    protected static void safeReload(String lib) throws Exception {
         try {
-            System.load(libdir + System.mapLibraryName(NSPR_PREFIX + "nspr4"));
+            System.load(lib);
         } catch (UnsatisfiedLinkError e) {
-            // GLIBC problem on older linux-amd64 machines
-            if (libdir.contains("linux-amd64")) {
-                System.out.println(e);
-                System.out.println("NSS does not work on this platform, skipping.");
-                return false;
+            if (e.getMessage().contains("already loaded")) {
+                return;
             }
-            throw e;
         }
-        System.load(libdir + System.mapLibraryName(NSPR_PREFIX + "plc4"));
-        System.load(libdir + System.mapLibraryName(NSPR_PREFIX + "plds4"));
+    }
+
+    static boolean loadNSPR(String libdir) throws Exception {
+        // load NSS softoken dependencies in advance to avoid resolver issues
+        safeReload(libdir + System.mapLibraryName(NSPR_PREFIX + "nspr4"));
+        safeReload(libdir + System.mapLibraryName(NSPR_PREFIX + "plc4"));
+        safeReload(libdir + System.mapLibraryName(NSPR_PREFIX + "plds4"));
         return true;
     }
 
diff --git a/jdk/test/sun/security/pkcs11/Secmod/AddPrivateKey.java b/jdk/test/sun/security/pkcs11/Secmod/AddPrivateKey.java
index 3171dc1..a192d52 100644
--- a/jdk/test/sun/security/pkcs11/Secmod/AddPrivateKey.java
+++ b/jdk/test/sun/security/pkcs11/Secmod/AddPrivateKey.java
@@ -27,6 +27,7 @@
  * @summary Test that the PKCS#11 KeyStore handles RSA, DSA, and EC keys
  * @author Andreas Sterbenz
  * @library ..
+ * @run main/othervm AddPrivateKey
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/pkcs11/Secmod/AddTrustedCert.java b/jdk/test/sun/security/pkcs11/Secmod/AddTrustedCert.java
index 363ca04..2b43c3b 100644
--- a/jdk/test/sun/security/pkcs11/Secmod/AddTrustedCert.java
+++ b/jdk/test/sun/security/pkcs11/Secmod/AddTrustedCert.java
@@ -27,6 +27,7 @@
  * @summary make sure we can add a trusted cert to the NSS KeyStore module
  * @author Andreas Sterbenz
  * @library ..
+ * @run main/othervm AddTrustedCert
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/pkcs11/Secmod/Crypto.java b/jdk/test/sun/security/pkcs11/Secmod/Crypto.java
index acc0647..97085c3 100644
--- a/jdk/test/sun/security/pkcs11/Secmod/Crypto.java
+++ b/jdk/test/sun/security/pkcs11/Secmod/Crypto.java
@@ -27,6 +27,7 @@
  * @summary verify that NSS no-db mode works correctly
  * @author Andreas Sterbenz
  * @library ..
+ * @run main/othervm Crypto
  */
 
 import java.util.*;
diff --git a/jdk/test/sun/security/pkcs11/Secmod/GetPrivateKey.java b/jdk/test/sun/security/pkcs11/Secmod/GetPrivateKey.java
index 9cdf93a..ec130ac 100644
--- a/jdk/test/sun/security/pkcs11/Secmod/GetPrivateKey.java
+++ b/jdk/test/sun/security/pkcs11/Secmod/GetPrivateKey.java
@@ -27,6 +27,7 @@
  * @summary make sure we can access the NSS softtoken KeyStore and use a private key
  * @author Andreas Sterbenz
  * @library ..
+ * @run main/othervm GetPrivateKey
  */
 
 import java.util.*;
diff --git a/jdk/test/sun/security/pkcs11/Secmod/JksSetPrivateKey.java b/jdk/test/sun/security/pkcs11/Secmod/JksSetPrivateKey.java
index 8efdc16..d302aad 100644
--- a/jdk/test/sun/security/pkcs11/Secmod/JksSetPrivateKey.java
+++ b/jdk/test/sun/security/pkcs11/Secmod/JksSetPrivateKey.java
@@ -27,6 +27,7 @@
  * @summary store a NSS PKCS11 PrivateKeyEntry to JKS KeyStore throws confusing NPE
  * @author Wang Weijun
  * @library ..
+ * @run main/othervm JksSetPrivateKey
  */
 
 import java.util.*;
diff --git a/jdk/test/sun/security/pkcs11/Secmod/TrustAnchors.java b/jdk/test/sun/security/pkcs11/Secmod/TrustAnchors.java
index 4b0c80e..3d15b3f 100644
--- a/jdk/test/sun/security/pkcs11/Secmod/TrustAnchors.java
+++ b/jdk/test/sun/security/pkcs11/Secmod/TrustAnchors.java
@@ -27,6 +27,7 @@
  * @summary make sure we can access the NSS trust anchor module
  * @author Andreas Sterbenz
  * @library ..
+ * @run main/othervm TrustAnchors
  */
 
 import java.util.*;
diff --git a/jdk/test/sun/security/pkcs11/SecmodTest.java b/jdk/test/sun/security/pkcs11/SecmodTest.java
index 5f48e29..76f68da 100644
--- a/jdk/test/sun/security/pkcs11/SecmodTest.java
+++ b/jdk/test/sun/security/pkcs11/SecmodTest.java
@@ -44,8 +44,8 @@ public class SecmodTest extends PKCS11Test {
         if (loadNSPR(LIBPATH) == false) {
             return false;
         }
-        System.load(LIBPATH + System.mapLibraryName("softokn3"));
-        System.load(LIBPATH + System.mapLibraryName("nssckbi"));
+        safeReload(LIBPATH + System.mapLibraryName("softokn3"));
+        safeReload(LIBPATH + System.mapLibraryName("nssckbi"));
 
         DBDIR = System.getProperty("test.classes", ".") + SEP + "tmpdb";
         System.setProperty("pkcs11test.nss.db", DBDIR);
diff --git a/jdk/test/sun/security/pkcs11/ec/ReadCertificates.java b/jdk/test/sun/security/pkcs11/ec/ReadCertificates.java
index 87109b2..2aa38a9 100644
--- a/jdk/test/sun/security/pkcs11/ec/ReadCertificates.java
+++ b/jdk/test/sun/security/pkcs11/ec/ReadCertificates.java
@@ -28,6 +28,7 @@
  *   and verify their signatures
  * @author Andreas Sterbenz
  * @library ..
+ * @library ../../../../java/security/testlibrary
  */
 
 import java.io.*;
@@ -62,7 +63,7 @@ public class ReadCertificates extends PKCS11Test {
             System.out.println("Provider does not support ECDSA, skipping...");
             return;
         }
-        Security.insertProviderAt(p, 1);
+        Providers.setAt(p, 1);
 
         random = new SecureRandom();
         factory = CertificateFactory.getInstance("X.509");
diff --git a/jdk/test/sun/security/pkcs11/ec/ReadPKCS12.java b/jdk/test/sun/security/pkcs11/ec/ReadPKCS12.java
index f172e45..979783e 100644
--- a/jdk/test/sun/security/pkcs11/ec/ReadPKCS12.java
+++ b/jdk/test/sun/security/pkcs11/ec/ReadPKCS12.java
@@ -27,6 +27,7 @@
  * @summary Verify that we can parse ECPrivateKeys from PKCS#12 and use them
  * @author Andreas Sterbenz
  * @library ..
+ * @library ../../../../java/security/testlibrary
  */
 
 import java.io.*;
@@ -52,7 +53,7 @@ public class ReadPKCS12 extends PKCS11Test {
             System.out.println("Provider does not support ECDSA, skipping...");
             return;
         }
-        Security.insertProviderAt(p, 1);
+        Providers.setAt(p, 1);
 
         CertificateFactory factory = CertificateFactory.getInstance("X.509");
         try {
diff --git a/jdk/test/sun/security/pkcs11/ec/TestECDH.java b/jdk/test/sun/security/pkcs11/ec/TestECDH.java
index e48b01a..3182cff 100644
--- a/jdk/test/sun/security/pkcs11/ec/TestECDH.java
+++ b/jdk/test/sun/security/pkcs11/ec/TestECDH.java
@@ -27,6 +27,7 @@
  * @summary Basic known answer test for ECDH
  * @author Andreas Sterbenz
  * @library ..
+ * @library ../../../../java/security/testlibrary
  */
 
 import java.io.*;
@@ -59,7 +60,7 @@ public class TestECDH extends PKCS11Test {
             System.out.println("Provider does not support ECDH, skipping");
             return;
         }
-        Security.insertProviderAt(p, 1);
+        Providers.setAt(p, 1);
 
         if (false) {
             KeyPairGenerator kpg = KeyPairGenerator.getInstance("EC", p);
diff --git a/jdk/test/sun/security/pkcs11/ec/TestECDSA.java b/jdk/test/sun/security/pkcs11/ec/TestECDSA.java
index a08fa4e..0514d1d 100644
--- a/jdk/test/sun/security/pkcs11/ec/TestECDSA.java
+++ b/jdk/test/sun/security/pkcs11/ec/TestECDSA.java
@@ -27,6 +27,7 @@
  * @summary basic test of SHA1withECDSA and NONEwithECDSA signing/verifying
  * @author Andreas Sterbenz
  * @library ..
+ * @library ../../../../java/security/testlibrary
  */
 
 import java.io.*;
@@ -115,7 +116,7 @@ public class TestECDSA extends PKCS11Test {
             System.out.println("ECDSA not supported, skipping");
             return;
         }
-        Security.insertProviderAt(provider, 1);
+        Providers.setAt(provider, 1);
 
         if (false) {
             KeyPairGenerator kpg = KeyPairGenerator.getInstance("EC", provider);
diff --git a/jdk/test/sun/security/pkcs11/fips/CipherTest.java b/jdk/test/sun/security/pkcs11/fips/CipherTest.java
index 8dad4a7..0d9f8b3 100644
--- a/jdk/test/sun/security/pkcs11/fips/CipherTest.java
+++ b/jdk/test/sun/security/pkcs11/fips/CipherTest.java
@@ -394,47 +394,52 @@ public class CipherTest {
 
     public static void main(PeerFactory peerFactory, KeyStore keyStore,
             String[] args) throws Exception {
-
-        long time = System.currentTimeMillis();
-        String relPath;
-        if ((args != null) && (args.length > 0) && args[0].equals("sh")) {
-            relPath = pathToStoresSH;
-        } else {
-            relPath = pathToStores;
+        SSLContext reservedSSLContext = SSLContext.getDefault();
+        try {
+            long time = System.currentTimeMillis();
+            String relPath;
+            if ((args != null) && (args.length > 0) && args[0].equals("sh")) {
+                relPath = pathToStoresSH;
+            } else {
+                relPath = pathToStores;
+            }
+            PATH = new File(System.getProperty("test.src", "."), relPath);
+            CipherTest.peerFactory = peerFactory;
+            System.out.print(
+                "Initializing test '" + peerFactory.getName() + "'...");
+//          secureRandom = new SecureRandom();
+//          secureRandom.nextInt();
+//          trustStore = readKeyStore(trustStoreFile);
+            CipherTest.keyStore = keyStore;
+//          keyStore = readKeyStore(keyStoreFile);
+            KeyManagerFactory keyFactory =
+                KeyManagerFactory.getInstance(
+                    KeyManagerFactory.getDefaultAlgorithm());
+            keyFactory.init(keyStore, "test12".toCharArray());
+            keyManager = (X509ExtendedKeyManager)keyFactory.getKeyManagers()[0];
+
+            TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
+            tmf.init(keyStore);
+            trustManager = (X509TrustManager)tmf.getTrustManagers()[0];
+
+//          trustManager = new AlwaysTrustManager();
+            SSLContext context = SSLContext.getInstance("TLS");
+            context.init(new KeyManager[] {keyManager},
+                    new TrustManager[] {trustManager}, null);
+            SSLContext.setDefault(context);
+
+            CipherTest cipherTest = new CipherTest(peerFactory);
+            Thread serverThread = new Thread(peerFactory.newServer(cipherTest),
+                "Server");
+            serverThread.setDaemon(true);
+            serverThread.start();
+            System.out.println("Done");
+            cipherTest.run();
+            time = System.currentTimeMillis() - time;
+            System.out.println("Done. (" + time + " ms)");
+        } finally {
+            SSLContext.setDefault(reservedSSLContext);
         }
-        PATH = new File(System.getProperty("test.src", "."), relPath);
-        CipherTest.peerFactory = peerFactory;
-        System.out.print(
-            "Initializing test '" + peerFactory.getName() + "'...");
-//      secureRandom = new SecureRandom();
-//      secureRandom.nextInt();
-//      trustStore = readKeyStore(trustStoreFile);
-        CipherTest.keyStore = keyStore;
-//      keyStore = readKeyStore(keyStoreFile);
-        KeyManagerFactory keyFactory =
-            KeyManagerFactory.getInstance(
-                KeyManagerFactory.getDefaultAlgorithm());
-        keyFactory.init(keyStore, "test12".toCharArray());
-        keyManager = (X509ExtendedKeyManager)keyFactory.getKeyManagers()[0];
-
-        TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
-        tmf.init(keyStore);
-        trustManager = (X509TrustManager)tmf.getTrustManagers()[0];
-
-//      trustManager = new AlwaysTrustManager();
-        SSLContext context = SSLContext.getInstance("TLS");
-        context.init(new KeyManager[] {keyManager}, new TrustManager[] {trustManager}, null);
-        SSLContext.setDefault(context);
-
-        CipherTest cipherTest = new CipherTest(peerFactory);
-        Thread serverThread = new Thread(peerFactory.newServer(cipherTest),
-            "Server");
-        serverThread.setDaemon(true);
-        serverThread.start();
-        System.out.println("Done");
-        cipherTest.run();
-        time = System.currentTimeMillis() - time;
-        System.out.println("Done. (" + time + " ms)");
     }
 
     static abstract class PeerFactory {
diff --git a/jdk/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java b/jdk/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java
index e32febe..4cf931d 100644
--- a/jdk/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java
+++ b/jdk/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java
@@ -26,6 +26,7 @@
  * @bug 6313675 6323647
  * @summary Verify that all ciphersuites work in FIPS mode
  * @library ..
+ * @run main/othervm ClientJSSEServerJSSE
  * @ignore JSSE supported cipher suites are changed with CR 6916074,
  *     need to update this test case in JDK 7 soon
  * @author Andreas Sterbenz
diff --git a/jdk/test/sun/security/pkcs11/fips/TrustManagerTest.java b/jdk/test/sun/security/pkcs11/fips/TrustManagerTest.java
index b476afc..81fba23 100644
--- a/jdk/test/sun/security/pkcs11/fips/TrustManagerTest.java
+++ b/jdk/test/sun/security/pkcs11/fips/TrustManagerTest.java
@@ -27,6 +27,7 @@
  * @summary Verify that the SunJSSE trustmanager works correctly in FIPS mode
  * @author Andreas Sterbenz
  * @library ..
+ * @run main/othervm TrustManagerTest
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/pkcs11/rsa/TestCACerts.java b/jdk/test/sun/security/pkcs11/rsa/TestCACerts.java
index 02ec40c..188b94c 100644
--- a/jdk/test/sun/security/pkcs11/rsa/TestCACerts.java
+++ b/jdk/test/sun/security/pkcs11/rsa/TestCACerts.java
@@ -48,32 +48,35 @@ public class TestCACerts extends PKCS11Test {
     public void main(Provider p) throws Exception {
         long start = System.currentTimeMillis();
         Security.addProvider(p);
-        String PROVIDER = p.getName();
-        String javaHome = System.getProperty("java.home");
-        String caCerts = javaHome + SEP + "lib" + SEP + "security" + SEP + "cacerts";
-        InputStream in = new FileInputStream(caCerts);
-        KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
-        ks.load(in, null);
-        in.close();
-        for (Enumeration e = ks.aliases(); e.hasMoreElements(); ) {
-            String alias = (String)e.nextElement();
-            if (ks.isCertificateEntry(alias)) {
-                System.out.println("* Testing " + alias + "...");
-                X509Certificate cert = (X509Certificate)ks.getCertificate(alias);
-                PublicKey key = cert.getPublicKey();
-                String alg = key.getAlgorithm();
-                if (alg.equals("RSA")) {
-                    System.out.println("Signature algorithm: " + cert.getSigAlgName());
-                    cert.verify(key, PROVIDER);
+        try {
+            String PROVIDER = p.getName();
+            String javaHome = System.getProperty("java.home");
+            String caCerts = javaHome + SEP + "lib" + SEP + "security" + SEP + "cacerts";
+            InputStream in = new FileInputStream(caCerts);
+            KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
+            ks.load(in, null);
+            in.close();
+            for (Enumeration e = ks.aliases(); e.hasMoreElements(); ) {
+                String alias = (String)e.nextElement();
+                if (ks.isCertificateEntry(alias)) {
+                    System.out.println("* Testing " + alias + "...");
+                    X509Certificate cert = (X509Certificate)ks.getCertificate(alias);
+                    PublicKey key = cert.getPublicKey();
+                    String alg = key.getAlgorithm();
+                    if (alg.equals("RSA")) {
+                        System.out.println("Signature algorithm: " + cert.getSigAlgName());
+                        cert.verify(key, PROVIDER);
+                    } else {
+                        System.out.println("Skipping cert with key: " + alg);
+                    }
                 } else {
-                    System.out.println("Skipping cert with key: " + alg);
+                    System.out.println("Skipping alias " + alias);
                 }
-            } else {
-                System.out.println("Skipping alias " + alias);
             }
+            long stop = System.currentTimeMillis();
+            System.out.println("All tests passed (" + (stop - start) + " ms).");
+        } finally {
+            Security.removeProvider(p.getName());
         }
-        long stop = System.currentTimeMillis();
-        System.out.println("All tests passed (" + (stop - start) + " ms).");
     }
-
 }
diff --git a/jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java b/jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java
index 0f2c360..c940d56 100644
--- a/jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java
+++ b/jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java
@@ -27,6 +27,7 @@
  * @summary Verify that all ciphersuites work (incl. ECC using NSS crypto)
  * @author Andreas Sterbenz
  * @library ..
+ * @library ../../../../java/security/testlibrary
  */
 
 import java.security.*;
@@ -45,7 +46,7 @@ public class ClientJSSEServerJSSE extends PKCS11Test {
             System.out.println("Provider does not support EC, skipping");
             return;
         }
-        Security.insertProviderAt(p, 1);
+        Providers.setAt(p, 1);
         CipherTest.main(new JSSEFactory(), cmdArgs);
         Security.removeProvider(p.getName());
     }
diff --git a/jdk/test/sun/security/pkcs12/PKCS12SameKeyId.java b/jdk/test/sun/security/pkcs12/PKCS12SameKeyId.java
index a7d5f51..0d06d73 100644
--- a/jdk/test/sun/security/pkcs12/PKCS12SameKeyId.java
+++ b/jdk/test/sun/security/pkcs12/PKCS12SameKeyId.java
@@ -86,7 +86,9 @@ public class PKCS12SameKeyId {
 
         // Reads from JKS keystore and pre-calculate
         KeyStore ks = KeyStore.getInstance("jks");
-        ks.load(new FileInputStream(JKSFILE), PASSWORD);
+        try (FileInputStream fis = new FileInputStream(JKSFILE)) {
+            ks.load(fis, PASSWORD);
+        }
         for (int i=0; i<SIZE; i++) {
             aliases[i] = "p" + i;
             byte[] enckey = cipher.doFinal(
@@ -103,11 +105,15 @@ public class PKCS12SameKeyId {
         for (int i=0; i<SIZE; i++) {
             p12.setKeyEntry(aliases[i], keys[i], certChains[i]);
         }
-        p12.store(new FileOutputStream(P12FILE), PASSWORD);
+        try (FileOutputStream fos = new FileOutputStream(P12FILE)) {
+            p12.store(fos, PASSWORD);
+        }
 
         // Check private keys still match certs
         p12 = KeyStore.getInstance("pkcs12");
-        p12.load(new FileInputStream(P12FILE), PASSWORD);
+        try (FileInputStream fis = new FileInputStream(P12FILE)) {
+            p12.load(fis, PASSWORD);
+        }
         for (int i=0; i<SIZE; i++) {
             String a = "p" + i;
             X509Certificate x = (X509Certificate)p12.getCertificate(a);
diff --git a/jdk/test/sun/security/provider/PolicyFile/Comparator.java b/jdk/test/sun/security/provider/PolicyFile/Comparator.java
index 1220aa6..41d8938 100644
--- a/jdk/test/sun/security/provider/PolicyFile/Comparator.java
+++ b/jdk/test/sun/security/provider/PolicyFile/Comparator.java
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 5037004
+ * @run main/othervm Comparator
  * @summary Frivolous ClassCastExceptions thrown by SubjectCodeSource.implies
  *
  * Note:  if you want to see the java.security.debug output,
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ProviderTest.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ProviderTest.java
index 5246049..e0530ed 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ProviderTest.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ProviderTest.java
@@ -40,28 +40,32 @@ public class ProviderTest {
         TrustManagerFactory tmf;
         KeyManagerFactory kmf;
 
-        Security.addProvider(new MyProvider());
-
-        System.out.println("getting a javax SSLContext");
-        sslc = SSLContext.getInstance("javax");
-        sslc.init(null, null, null);
-        System.out.println("\ngetting a com SSLContext");
-        sslc = SSLContext.getInstance("com");
-        sslc.init(null, null, null);
-
-        System.out.println("\ngetting a javax TrustManagerFactory");
-        tmf = TrustManagerFactory.getInstance("javax");
-        tmf.init((KeyStore) null);
-        System.out.println("\ngetting a com TrustManagerFactory");
-        tmf = TrustManagerFactory.getInstance("com");
-        tmf.init((KeyStore) null);
-
-        System.out.println("\ngetting a javax KeyManagerFactory");
-        kmf = KeyManagerFactory.getInstance("javax");
-        kmf.init((KeyStore) null, null);
-        System.out.println("\ngetting a com KeyManagerFactory");
-        kmf = KeyManagerFactory.getInstance("com");
-        kmf.init((KeyStore) null, null);
+        Provider extraProvider = new MyProvider();
+        Security.addProvider(extraProvider);
+        try {
+            System.out.println("getting a javax SSLContext");
+            sslc = SSLContext.getInstance("javax");
+            sslc.init(null, null, null);
+            System.out.println("\ngetting a com SSLContext");
+            sslc = SSLContext.getInstance("com");
+            sslc.init(null, null, null);
+
+            System.out.println("\ngetting a javax TrustManagerFactory");
+            tmf = TrustManagerFactory.getInstance("javax");
+            tmf.init((KeyStore) null);
+            System.out.println("\ngetting a com TrustManagerFactory");
+            tmf = TrustManagerFactory.getInstance("com");
+            tmf.init((KeyStore) null);
+
+            System.out.println("\ngetting a javax KeyManagerFactory");
+            kmf = KeyManagerFactory.getInstance("javax");
+            kmf.init((KeyStore) null, null);
+            System.out.println("\ngetting a com KeyManagerFactory");
+            kmf = KeyManagerFactory.getInstance("com");
+            kmf.init((KeyStore) null, null);
+        } finally {
+            Security.removeProvider(extraProvider.getName());
+        }
     }
 }
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadBlocksClose.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadBlocksClose.java
index 38b4c84..2888591 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadBlocksClose.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadBlocksClose.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4814140
  * @summary AppInputStream: read can block a close
+ * @run main/othervm ReadBlocksClose
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadHandshake.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadHandshake.java
index 7f44e8a..ae726bf 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadHandshake.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadHandshake.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4514971
  * @summary Verify applications do not read handshake data after failure
+ * @run main/othervm ReadHandshake
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadZeroBytes.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadZeroBytes.java
index f08d7b4..625e459 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadZeroBytes.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadZeroBytes.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 6697270
  * @summary Inputstream dosent behave correct
+ * @run main/othervm ReadZeroBytes
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/RemoveMarkReset.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/RemoveMarkReset.java
index a402890..cdc8658 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/RemoveMarkReset.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/RemoveMarkReset.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4413664
  * @summary remove mark/reset functionality from AppInputStream
+ * @run main/othervm RemoveMarkReset
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppOutputStream/NoExceptionOnClose.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppOutputStream/NoExceptionOnClose.java
index c4793b8..8d2a9d2 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppOutputStream/NoExceptionOnClose.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppOutputStream/NoExceptionOnClose.java
@@ -25,6 +25,10 @@
  * @test 1.3 01/03/08
  * @bug 4378397
  * @summary  JSSE socket output stream doesn't throw after socket is closed
+ * @run main/othervm NoExceptionOnClose
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Jaya Hangal
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/CipherSuiteOrder.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/CipherSuiteOrder.java
index 0a221fe..9f01c47 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/CipherSuiteOrder.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/CipherSuiteOrder.java
@@ -26,6 +26,10 @@
  * @bug 4330535
  * @summary  Client should follow suite order in
  *           SSLSocket.setEnabledCipherSuites()
+ * @run main/othervm CipherSuiteOrder
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Jaya Hangal
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java
index 306ff18..0ead094 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 6690018
  * @summary RSAClientKeyExchange NullPointerException
+ * @run main/othervm RSAExport
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 /*
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/main.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/main.java
index 5cd66b2..9a18be3 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/main.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/main.java
@@ -1,7 +1,10 @@
 /*
  * @test
  * @build TestThread Traffic Handler ServerHandler ServerThread ClientThread
- * @run main/timeout=140 main
+ * @run main/othervm/timeout=140 main
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @summary Make sure that different configurations of SSL sockets work
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/HandshakeOutStream/NullCerts.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/HandshakeOutStream/NullCerts.java
index 4cc63bc..0ffc0fa 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/HandshakeOutStream/NullCerts.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/HandshakeOutStream/NullCerts.java
@@ -24,7 +24,12 @@
 /*
  * @test
  * @bug 4453053
- * @summary If a server shuts down correctly during handshaking, the client doesn't see it.
+ * @summary If a server shuts down correctly during handshaking, the client
+ *     doesn't see it.
+ * @run main/othervm NullCerts
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/ClientHelloRead.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/ClientHelloRead.java
index 169474f..f123a3c 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/ClientHelloRead.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/ClientHelloRead.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,10 @@
  * @test
  * @bug 4432868
  * @summary A client-hello message may not always be read correctly
+ * @run main/othervm ClientHelloRead
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
@@ -154,23 +158,29 @@ public class ClientHelloRead {
          * we want to avoid URLspoofCheck failures in cases where the cert
          * DN name does not match the hostname in the URL.
          */
-        HttpsURLConnection.setDefaultHostnameVerifier(
-                                      new NameVerifier());
-        URL url = new URL("https://" + "localhost:" + serverPort
-                                + "/index.html");
-        BufferedReader in = null;
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
         try {
-            in = new BufferedReader(new InputStreamReader(
-                               url.openStream()));
-            String inputLine;
-            System.out.print("Client recieved from the server: ");
-            while ((inputLine = in.readLine()) != null)
-                System.out.println(inputLine);
-            in.close();
-        } catch (SSLException e) {
-            if (in != null)
+            HttpsURLConnection.setDefaultHostnameVerifier(
+                                          new NameVerifier());
+            URL url = new URL("https://" + "localhost:" + serverPort
+                                    + "/index.html");
+            BufferedReader in = null;
+            try {
+                in = new BufferedReader(new InputStreamReader(
+                                   url.openStream()));
+                String inputLine;
+                System.out.print("Client recieved from the server: ");
+                while ((inputLine = in.readLine()) != null)
+                    System.out.println(inputLine);
                 in.close();
-            throw e;
+            } catch (SSLException e) {
+                if (in != null)
+                    in.close();
+                throw e;
+            }
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/SSLSocketTimeoutNulls.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/SSLSocketTimeoutNulls.java
index b881c38..0a674a4 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/SSLSocketTimeoutNulls.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/SSLSocketTimeoutNulls.java
@@ -27,7 +27,10 @@
  * @summary Setting timeouts on SSLSockets immediately return null
  *      after timeout occurs.  This bug was fixed as part of 4393337,
  *      but this is another bug we want to check regressions against.
- * @run main/timeout=140 SSLSocketTimeoutNulls
+ * @run main/othervm/timeout=140 SSLSocketTimeoutNulls
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ProtocolVersion/HttpsProtocols.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ProtocolVersion/HttpsProtocols.java
index c220c12..bcdc16d 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ProtocolVersion/HttpsProtocols.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ProtocolVersion/HttpsProtocols.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -147,12 +147,18 @@ public class HttpsProtocols implements HostnameVerifier {
             Thread.sleep(50);
         }
 
-        HttpsURLConnection.setDefaultHostnameVerifier(this);
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
+        try {
+            HttpsURLConnection.setDefaultHostnameVerifier(this);
 
-        URL url = new URL("https://localhost:" + serverPort + "/");
-        HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
+            URL url = new URL("https://localhost:" + serverPort + "/");
+            HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
 
-        System.out.println("response is " + urlc.getResponseCode());
+            System.out.println("response is " + urlc.getResponseCode());
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
+        }
     }
 
     public boolean verify(String hostname, SSLSession session) {
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadKSProvider.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadKSProvider.java
index ce9d70c..49b7841 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadKSProvider.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadKSProvider.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4919147
  * @summary Support for token-based KeyStores
+ * @run main/othervm BadKSProvider
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadTSProvider.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadTSProvider.java
index 2ae2ad1..20a8b99 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadTSProvider.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadTSProvider.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4919147
  * @summary Support for token-based KeyStores
+ * @run main/othervm BadTSProvider
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/GoodProvider.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/GoodProvider.java
index 6473037..64c55c7 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/GoodProvider.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/GoodProvider.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4919147
  * @summary Support for token-based KeyStores
+ * @run main/othervm GoodProvider
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/RehandshakeFinished.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/RehandshakeFinished.java
index 5ca0653..60e4acd 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/RehandshakeFinished.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/RehandshakeFinished.java
@@ -26,6 +26,10 @@
  * @bug 6207322
  * @summary SSLEngine is returning a premature FINISHED message when doing
  * an abbreviated handshake.
+ * @run main/othervm RehandshakeFinished
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * This test may need some updating if the messages change order.
  * Currently I'm expecting that there is a simple renegotiation, with
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/SSLEngineDeadlock.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/SSLEngineDeadlock.java
index 0e5e240..6914a5c 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/SSLEngineDeadlock.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/SSLEngineDeadlock.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 6492872
  * @summary Deadlock in SSLEngine
+ * @run main/othervm SSLEngineDeadlock
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * @author Brad R. Wetmore
  */
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSessionImpl/HashCodeMissing.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSessionImpl/HashCodeMissing.java
index 60b5ea8..f10edfb 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSessionImpl/HashCodeMissing.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSessionImpl/HashCodeMissing.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4910892
  * @summary 4518403 was not properly fixed.   hashcode should be hashCode.
+ * @run main/othervm HashCodeMissing
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java
index 93542c3..de582a9 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java
@@ -26,6 +26,10 @@
  * @bug 6447412
  * @summary Issue with socket.close() for ssl sockets when poweroff on
  *          other system
+ * @run main/othervm AsyncSSLSocketClose
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import javax.net.ssl.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientModeClientAuth.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientModeClientAuth.java
index 11185af..adf86a0 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientModeClientAuth.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientModeClientAuth.java
@@ -24,8 +24,11 @@
 /*
  * @test
  * @bug 4390659
- * @run main/othervm -Djavax.net.debug=all ClientModeClientAuth
  * @summary setNeedClientAuth() isn't working after a handshaker is established
+ * @run main/othervm ClientModeClientAuth
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientTimeout.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientTimeout.java
index 652bbf9..a01789e 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientTimeout.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientTimeout.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4836493
  * @summary Socket timeouts for SSLSockets causes data corruption.
+ * @run main/othervm ClientTimeout
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CloseSocketException.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CloseSocketException.java
index 8a70002..2958269 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CloseSocketException.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CloseSocketException.java
@@ -26,6 +26,10 @@
  * @bug 4969799
  * @summary javax.net.ssl.SSLSocket.SSLSocket(InetAddress,int) shouldn't
  *              throw exception
+ * @run main/othervm CloseSocketException
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * This is making sure that starting a new handshake throws the right
  * exception.  There is a similar test for SSLEngine.
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java
index 6954f84..b0764a5 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4403428
  * @summary Invalidating JSSE session on server causes SSLProtocolException
+ * @run main/othervm InvalidateServerSessionRenegotiate
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NewSocketMethods.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NewSocketMethods.java
index 2340ef0..66fdda5 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NewSocketMethods.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NewSocketMethods.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4429176
  * @summary need to sync up SSL sockets with merlin java.net changes
+ * @run main/othervm NewSocketMethods
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NonAutoClose.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NonAutoClose.java
index 272db32..dedac49 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NonAutoClose.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NonAutoClose.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4404399
  * @summary When a layered SSL socket is closed, it should wait for close_notify
+ * @run main/othervm NonAutoClose
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReuseAddr.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReuseAddr.java
index 8008180..6383036 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReuseAddr.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReuseAddr.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4482446
  * @summary java.net.SocketTimeoutException on 98, NT, 2000 for JSSE
+ * @run main/othervm ReuseAddr
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReverseNameLookup.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReverseNameLookup.java
index 6e9047c..f8f570b 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReverseNameLookup.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReverseNameLookup.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4748292
  * @summary Prevent/Disable reverse name lookups with JSSE SSL sockets
+ * @run main/othervm ReverseNameLookup
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions.java
index a1df6c0..dcbf0aa 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions.java
@@ -26,6 +26,10 @@
  * @bug 4361124 4325806
  * @summary SSLServerSocket isn't throwing exceptions when negotiations are
  *      failing & java.net.SocketException: occures in Auth and clientmode
+ * @run main/othervm SSLSocketImplThrowsWrongExceptions
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ServerTimeout.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ServerTimeout.java
index cecf720..aa116cf 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ServerTimeout.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ServerTimeout.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4836493
  * @summary Socket timeouts for SSLSockets causes data corruption.
+ * @run main/othervm ServerTimeout
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SetClientMode.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SetClientMode.java
index ff5bce1..8d3da6c 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SetClientMode.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SetClientMode.java
@@ -26,6 +26,10 @@
  * @bug 6223624
  * @summary SSLSocket.setUseClientMode() fails to throw expected
  *        IllegalArgumentException
+ * @run main/othervm SetClientMode
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 /*
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/UnconnectedSocketWrongExceptions.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/UnconnectedSocketWrongExceptions.java
index 4c26b24..672e4b6 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/UnconnectedSocketWrongExceptions.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/UnconnectedSocketWrongExceptions.java
@@ -25,6 +25,11 @@
  * @test
  * @bug 4480441
  * @summary startHandshake giving wrong message when unconnected.
+ * @run main/othervm UnconnectedSocketWrongExceptions
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
+ *
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java
index bf78b18..6390a40 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java
@@ -25,7 +25,10 @@
  * @test
  * @bug 4392475
  * @summary Calling setWantClientAuth(true) disables anonymous suites
- * @run main/timeout=180 AnonCipherWithWantClientAuth
+ * @run main/othervm/timeout=180 AnonCipherWithWantClientAuth
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHost.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHost.java
index c28f6c6..bc6b4e8 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHost.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHost.java
@@ -22,10 +22,13 @@
  */
 
 /**
- *@test
- *@bug 4302026
- *@run main GetPeerHost
- *@summary make sure the server side doesn't do DNS lookup.
+ * @test
+ * @bug 4302026
+ * @run main/othervm GetPeerHost
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
+ * @summary make sure the server side doesn't do DNS lookup.
  */
 import javax.net.*;
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SocketCreation/SocketCreation.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SocketCreation/SocketCreation.java
index bf7b94d..e79495e 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SocketCreation/SocketCreation.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SocketCreation/SocketCreation.java
@@ -27,7 +27,10 @@
  * @summary This test tries all the different ways in which an SSL
  * connection can be established to exercise different SSLSocketImpl
  * constructors.
- * @run main/timeout=300 SocketCreation
+ * @run main/othervm/timeout=300 SocketCreation
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/ClientServer.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/ClientServer.java
index 1c2eb6b..8b72433 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/ClientServer.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/ClientServer.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4717766
  * @summary 1.0.3 JsseX509TrustManager erroneously calls isClientTrusted()
+ * @run main/othervm ClientServer
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @ignore JSSE supports algorithm constraints with CR 6916074,
  *     need to update this test case in JDK 7 soon
  * @author Brad Wetmore
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/PKIXExtendedTM.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/PKIXExtendedTM.java
index d29ef31..0ff498d 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/PKIXExtendedTM.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/PKIXExtendedTM.java
@@ -26,6 +26,10 @@
  * @test
  * @bug 6916074
  * @summary Add support for TLS 1.2
+ * @run main/othervm PKIXExtendedTM
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.net.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SelfIssuedCert.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SelfIssuedCert.java
index 202237d..6605d60 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SelfIssuedCert.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SelfIssuedCert.java
@@ -27,6 +27,9 @@
  * @summary support self-issued certificate
  * @run main/othervm SelfIssuedCert PKIX
  * @run main/othervm SelfIssuedCert SunX509
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Xuelei Fan
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java
index 19eb41a..b7a3613 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java
@@ -24,8 +24,11 @@
 /*
  * @test
  * @bug 6916074
- * @run main/othervm -Djavax.net.debug=all SunX509ExtendedTM
  * @summary Add support for TLS 1.2
+ * @run main/othervm SunX509ExtendedTM
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.net.*;
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/X509ExtendedTMEnabled.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/X509ExtendedTMEnabled.java
index 5796abe..6a8659c 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/X509ExtendedTMEnabled.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/X509ExtendedTMEnabled.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 6916074
  * @summary Add support for TLS 1.2
+ * @run main/othervm X509ExtendedTMEnabled
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * Ensure that the SunJSSE provider enables the X509ExtendedTrustManager.
  */
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/ProviderInit.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/ProviderInit.java
index 5840dc2..23d57f8 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/ProviderInit.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/ProviderInit.java
@@ -26,6 +26,10 @@
  * @bug 4522550
  * @summary SSLContext TrustMananagerFactory and KeyManagerFactory
  *              should throw if not init
+ * @run main/othervm ProviderInit
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Jaya Hangal
  */
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ProxyAuthTest.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ProxyAuthTest.java
index 13033fe..a4ef930 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ProxyAuthTest.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ProxyAuthTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,11 @@
  * @test
  * @bug 4323990 4413069
  * @summary HttpsURLConnection doesn't send Proxy-Authorization on CONNECT
- * Incorrect checking of proxy server response
+ *     Incorrect checking of proxy server response
+ * @run main/othervm ProxyAuthTest
+ *
+ *     No way to reserve and restore java.lang.Authenticator, need to run this
+ *     test in othervm mode.
  */
 
 import java.io.*;
@@ -77,8 +81,7 @@ public class ProxyAuthTest {
     /*
      * Main method to create the server and the client
      */
-    public static void main(String args[]) throws Exception
-    {
+    public static void main(String args[]) throws Exception {
         String keyFilename =
             System.getProperty("test.src", "./") + "/" + pathToStores +
                 "/" + keyStoreFile;
@@ -110,10 +113,9 @@ public class ProxyAuthTest {
         try {
             doClientSide();
         } catch (Exception e) {
-            System.out.println("Client side failed: " +
-                                e.getMessage());
+            System.out.println("Client side failed: " + e.getMessage());
             throw e;
-          }
+        }
     }
 
     private static ServerSocketFactory getServerSocketFactory
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ServerIdentityTest.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ServerIdentityTest.java
index 999591a..b025171 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ServerIdentityTest.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ServerIdentityTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,11 @@
  * @bug 4328195
  * @summary Need to include the alternate subject DN for certs,
  *          https should check for this
+ * @run main/othervm ServerIdentityTest
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
+ *
  * @author Yingxian Wang
  */
 
@@ -136,39 +141,45 @@ public class ServerIdentityTest {
     volatile Exception clientException = null;
 
     public static void main(String[] args) throws Exception {
-        for (int i = 0; i < keyStoreFiles.length; i++) {
-            String keyFilename =
-                System.getProperty("test.src", ".") + "/" + pathToStores +
-                "/" + keyStoreFiles[i];
-            String trustFilename =
-                System.getProperty("test.src", ".") + "/" + pathToStores +
-                "/" + trustStoreFiles[i];
+        SSLSocketFactory reservedSFactory =
+                HttpsURLConnection.getDefaultSSLSocketFactory();
+        try {
+            for (int i = 0; i < keyStoreFiles.length; i++) {
+                String keyFilename =
+                    System.getProperty("test.src", ".") + "/" + pathToStores +
+                    "/" + keyStoreFiles[i];
+                String trustFilename =
+                    System.getProperty("test.src", ".") + "/" + pathToStores +
+                    "/" + trustStoreFiles[i];
 
-            System.setProperty("javax.net.ssl.keyStore", keyFilename);
-            System.setProperty("javax.net.ssl.keyStorePassword", passwd);
-            System.setProperty("javax.net.ssl.trustStore", trustFilename);
-            System.setProperty("javax.net.ssl.trustStorePassword", passwd);
+                System.setProperty("javax.net.ssl.keyStore", keyFilename);
+                System.setProperty("javax.net.ssl.keyStorePassword", passwd);
+                System.setProperty("javax.net.ssl.trustStore", trustFilename);
+                System.setProperty("javax.net.ssl.trustStorePassword", passwd);
 
-            if (debug)
-                System.setProperty("javax.net.debug", "all");
-            SSLContext context = SSLContext.getInstance("SSL");
+                if (debug)
+                    System.setProperty("javax.net.debug", "all");
+                SSLContext context = SSLContext.getInstance("SSL");
 
-            KeyManager[] kms = new KeyManager[1];
-            KeyStore ks = KeyStore.getInstance("JKS");
-            FileInputStream fis = new FileInputStream(keyFilename);
-            ks.load(fis, passwd.toCharArray());
-            fis.close();
-            KeyManager km = new MyKeyManager(ks, passwd.toCharArray());
-            kms[0] = km;
-            context.init(kms, null, null);
-            HttpsURLConnection.setDefaultSSLSocketFactory(
-                 context.getSocketFactory());
+                KeyManager[] kms = new KeyManager[1];
+                KeyStore ks = KeyStore.getInstance("JKS");
+                FileInputStream fis = new FileInputStream(keyFilename);
+                ks.load(fis, passwd.toCharArray());
+                fis.close();
+                KeyManager km = new MyKeyManager(ks, passwd.toCharArray());
+                kms[0] = km;
+                context.init(kms, null, null);
+                HttpsURLConnection.setDefaultSSLSocketFactory(
+                     context.getSocketFactory());
 
-            /*
-             * Start the tests.
-             */
-            System.out.println("Testing " + keyFilename);
-            new ServerIdentityTest(context, keyStoreFiles[i]);
+                /*
+                 * Start the tests.
+                 */
+                System.out.println("Testing " + keyFilename);
+                new ServerIdentityTest(context, keyStoreFiles[i]);
+            }
+        } finally {
+            HttpsURLConnection.setDefaultSSLSocketFactory(reservedSFactory);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/CriticalSubjectAltName.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/CriticalSubjectAltName.java
index bb16d19..e11b3f0 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/CriticalSubjectAltName.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/CriticalSubjectAltName.java
@@ -26,6 +26,11 @@
  * @bug 6668231
  * @summary Presence of a critical subjectAltName causes JSSE's SunX509 to
  *          fail trusted checks
+ * @run main/othervm CriticalSubjectAltName
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
+ *
  * @author Xuelei Fan
  *
  * This test depends on binary keystore, crisubn.jks and trusted.jks. Because
diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/GetResponseCode.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/GetResponseCode.java
index d50efae..5eb8ba1 100644
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/GetResponseCode.java
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/GetResponseCode.java
@@ -25,6 +25,11 @@
  * @test
  * @bug 4482187
  * @summary HttpsClient tests are failing for build 71
+ * @run main/othervm GetResponseCode
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
+ *
  * @author Yingxian Wang
  */
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/Fix5070632.java b/jdk/test/sun/security/ssl/javax/net/ssl/Fix5070632.java
index a3044af..0aa4aa5 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/Fix5070632.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/Fix5070632.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,10 @@
  * @test
  * @bug 5070632
  * @summary Default SSLSockeFactory override createSocket() now
+ * @run main/othervm Fix5070632
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Weijun Wang
  */
 
@@ -35,8 +39,13 @@ import java.security.*;
 
 public class Fix5070632 {
     public static void main(String[] args) throws Exception {
+        // reserve the security properties
+        String reservedSFacProvider =
+            Security.getProperty("ssl.SocketFactory.provider");
+
         // use a non-existing provider so that the DefaultSSLSocketFactory
         // will be used, and then test against it.
+
         Security.setProperty("ssl.SocketFactory.provider", "foo.NonExistant");
         SSLSocketFactory fac = (SSLSocketFactory)SSLSocketFactory.getDefault();
         try {
@@ -46,8 +55,16 @@ public class Fix5070632 {
             System.out.println("Throw SocketException");
             se.printStackTrace();
             return;
+        } finally {
+            // restore the security properties
+            if (reservedSFacProvider == null) {
+                reservedSFacProvider = "";
+            }
+            Security.setProperty("ssl.SocketFactory.provider",
+                                                reservedSFacProvider);
         }
-        throw new Exception("should throw SocketException");
+
         // if not caught, or other exception caught, then it's error
+        throw new Exception("should throw SocketException");
     }
 }
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ComURLNulls.java b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ComURLNulls.java
index 3220f64..497bb58 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ComURLNulls.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ComURLNulls.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,10 @@
  * @summary Need to revisit the javadocs for JSSE, especially the
  *      promoted classes, and HttpsURLConnection.getCipherSuite throws
  *      NullPointerException
+ * @run main/othervm ComURLNulls
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
@@ -34,6 +38,7 @@ import java.net.*;
 import java.io.*;
 import javax.net.ssl.*;
 import com.sun.net.ssl.HttpsURLConnection;
+import com.sun.net.ssl.HostnameVerifier;
 
 /*
  * Tests that the com null argument changes made it in ok.
@@ -42,59 +47,64 @@ import com.sun.net.ssl.HttpsURLConnection;
 public class ComURLNulls {
 
     public static void main(String[] args) throws Exception {
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
+        try {
+            System.setProperty("java.protocol.handler.pkgs",
+                                    "com.sun.net.ssl.internal.www.protocol");
+            /**
+             * This test does not establish any connection to the specified
+             * URL, hence a dummy URL is used.
+             */
+            URL foobar = new URL("https://example.com/");
 
-        System.setProperty("java.protocol.handler.pkgs",
-                                "com.sun.net.ssl.internal.www.protocol");
-        /**
-         * This test does not establish any connection to the specified
-         * URL, hence a dummy URL is used.
-         */
-        URL foobar = new URL("https://example.com/");
+            HttpsURLConnection urlc =
+                (HttpsURLConnection) foobar.openConnection();
 
-        HttpsURLConnection urlc =
-            (HttpsURLConnection) foobar.openConnection();
+            try {
+                urlc.getCipherSuite();
+            } catch (IllegalStateException e) {
+                System.out.print("Caught proper exception: ");
+                System.out.println(e.getMessage());
+            }
 
-        try {
-            urlc.getCipherSuite();
-        } catch (IllegalStateException e) {
-            System.out.print("Caught proper exception: ");
-            System.out.println(e.getMessage());
-        }
-
-        try {
-            urlc.getServerCertificateChain();
-        } catch (IllegalStateException e) {
-            System.out.print("Caught proper exception: ");
-            System.out.println(e.getMessage());
-        }
+            try {
+                urlc.getServerCertificateChain();
+            } catch (IllegalStateException e) {
+                System.out.print("Caught proper exception: ");
+                System.out.println(e.getMessage());
+            }
 
-        try {
-            urlc.setDefaultHostnameVerifier(null);
-        } catch (IllegalArgumentException e) {
-            System.out.print("Caught proper exception: ");
-            System.out.println(e.getMessage());
-        }
+            try {
+                urlc.setDefaultHostnameVerifier(null);
+            } catch (IllegalArgumentException e) {
+                System.out.print("Caught proper exception: ");
+                System.out.println(e.getMessage());
+            }
 
-        try {
-            urlc.setHostnameVerifier(null);
-        } catch (IllegalArgumentException e) {
-            System.out.print("Caught proper exception: ");
-            System.out.println(e.getMessage());
-        }
+            try {
+                urlc.setHostnameVerifier(null);
+            } catch (IllegalArgumentException e) {
+                System.out.print("Caught proper exception: ");
+                System.out.println(e.getMessage());
+            }
 
-        try {
-            urlc.setDefaultSSLSocketFactory(null);
-        } catch (IllegalArgumentException e) {
-            System.out.print("Caught proper exception: ");
-            System.out.println(e.getMessage());
-        }
+            try {
+                urlc.setDefaultSSLSocketFactory(null);
+            } catch (IllegalArgumentException e) {
+                System.out.print("Caught proper exception: ");
+                System.out.println(e.getMessage());
+            }
 
-        try {
-            urlc.setSSLSocketFactory(null);
-        } catch (IllegalArgumentException e) {
-            System.out.print("Caught proper exception");
-            System.out.println(e.getMessage());
+            try {
+                urlc.setSSLSocketFactory(null);
+            } catch (IllegalArgumentException e) {
+                System.out.print("Caught proper exception");
+                System.out.println(e.getMessage());
+            }
+            System.out.println("TESTS PASSED");
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
         }
-        System.out.println("TESTS PASSED");
     }
 }
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ImplicitHandshake.java b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ImplicitHandshake.java
index deaf3a9..8de05f1 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ImplicitHandshake.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ImplicitHandshake.java
@@ -26,6 +26,10 @@
  * @bug 4387882
  * @summary Need to revisit the javadocs for JSSE, especially the
  *      promoted classes.
+ * @run main/othervm ImplicitHandshake
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/JavaxURLNulls.java b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/JavaxURLNulls.java
index 7c32ff9..4e609d9 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/JavaxURLNulls.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/JavaxURLNulls.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,63 +42,69 @@ public class JavaxURLNulls {
 
     public static void main(String[] args) throws Exception {
 
-        /**
-         * This test does not establish any connection to the specified
-         * URL, hence a dummy URL is used.
-         */
-        URL foobar = new URL("https://example.com/");
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
+        try {
+            /**
+             * This test does not establish any connection to the specified
+             * URL, hence a dummy URL is used.
+             */
+            URL foobar = new URL("https://example.com/");
 
-        HttpsURLConnection urlc =
-            (HttpsURLConnection) foobar.openConnection();
+            HttpsURLConnection urlc =
+                (HttpsURLConnection) foobar.openConnection();
 
-        try {
-            urlc.getCipherSuite();
-        } catch (IllegalStateException e) {
-            System.out.print("Caught proper exception: ");
-            System.out.println(e.getMessage());
-        }
+            try {
+                urlc.getCipherSuite();
+            } catch (IllegalStateException e) {
+                System.out.print("Caught proper exception: ");
+                System.out.println(e.getMessage());
+            }
 
-        try {
-            urlc.getLocalCertificates();
-        } catch (IllegalStateException e) {
-            System.out.print("Caught proper exception: ");
-            System.out.println(e.getMessage());
-        }
+            try {
+                urlc.getLocalCertificates();
+            } catch (IllegalStateException e) {
+                System.out.print("Caught proper exception: ");
+                System.out.println(e.getMessage());
+            }
 
-        try {
-            urlc.getServerCertificates();
-        } catch (IllegalStateException e) {
-            System.out.print("Caught proper exception: ");
-            System.out.println(e.getMessage());
-        }
+            try {
+                urlc.getServerCertificates();
+            } catch (IllegalStateException e) {
+                System.out.print("Caught proper exception: ");
+                System.out.println(e.getMessage());
+            }
 
-        try {
-            urlc.setDefaultHostnameVerifier(null);
-        } catch (IllegalArgumentException e) {
-            System.out.print("Caught proper exception: ");
-            System.out.println(e.getMessage());
-        }
+            try {
+                urlc.setDefaultHostnameVerifier(null);
+            } catch (IllegalArgumentException e) {
+                System.out.print("Caught proper exception: ");
+                System.out.println(e.getMessage());
+            }
 
-        try {
-            urlc.setHostnameVerifier(null);
-        } catch (IllegalArgumentException e) {
-            System.out.print("Caught proper exception: ");
-            System.out.println(e.getMessage());
-        }
+            try {
+                urlc.setHostnameVerifier(null);
+            } catch (IllegalArgumentException e) {
+                System.out.print("Caught proper exception: ");
+                System.out.println(e.getMessage());
+            }
 
-        try {
-            urlc.setDefaultSSLSocketFactory(null);
-        } catch (IllegalArgumentException e) {
-            System.out.print("Caught proper exception: ");
-            System.out.println(e.getMessage());
-        }
+            try {
+                urlc.setDefaultSSLSocketFactory(null);
+            } catch (IllegalArgumentException e) {
+                System.out.print("Caught proper exception: ");
+                System.out.println(e.getMessage());
+            }
 
-        try {
-            urlc.setSSLSocketFactory(null);
-        } catch (IllegalArgumentException e) {
-            System.out.print("Caught proper exception: ");
-            System.out.println(e.getMessage());
+            try {
+                urlc.setSSLSocketFactory(null);
+            } catch (IllegalArgumentException e) {
+                System.out.print("Caught proper exception: ");
+                System.out.println(e.getMessage());
+            }
+            System.out.println("TESTS PASSED");
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
         }
-        System.out.println("TESTS PASSED");
     }
 }
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSessionNulls.java b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSessionNulls.java
index 59a6005..4bb6cb0 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSessionNulls.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSessionNulls.java
@@ -26,6 +26,10 @@
  * @bug 4387882
  * @summary Need to revisit the javadocs for JSSE, especially the
  *      promoted classes.
+ * @run main/othervm SSLSessionNulls
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSocketInherit.java b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSocketInherit.java
index 0b622ea..27fd5c0 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSocketInherit.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSocketInherit.java
@@ -27,6 +27,10 @@
  * @summary Need to revisit the javadocs for JSSE, especially the
  *      promoted classes.  This test checks to see if the settings
  *      on the server sockets get propagated to the sockets.
+ * @run main/othervm SSLSocketInherit
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/CheckMyTrustedKeystore.java b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/CheckMyTrustedKeystore.java
index 925be00..4ba4ea1 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/CheckMyTrustedKeystore.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/CheckMyTrustedKeystore.java
@@ -26,6 +26,10 @@
  * @bug 4329114
  * @summary Need better way of reflecting the reason when a chain is
  *      rejected as untrusted.
+ * @run main/othervm CheckMyTrustedKeystore
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @ignore JSSE supports algorithm constraints with CR 6916074,
  *     need to update this test case in JDK 7 soon
  * This is a serious hack job!
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/HttpsURLConnectionLocalCertificateChain.java b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/HttpsURLConnectionLocalCertificateChain.java
index e3548ee..1a05bc0 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/HttpsURLConnectionLocalCertificateChain.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/HttpsURLConnectionLocalCertificateChain.java
@@ -30,6 +30,10 @@
  *      Fixed 4354003: Need API to get client certificate chain
  *      Fixed 4387961: HostnameVerifier needs to pass various hostnames
  *      Fixed 4395266: HttpsURLConnection should be made protected
+ * @run main/othervm HttpsURLConnectionLocalCertificateChain
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java
index 8bf2f02..9e71fe7 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java
@@ -26,6 +26,10 @@
  * @bug 4280338
  * @summary "Unsupported SSL message version" SSLProtocolException
  *      w/SSL_RSA_WITH_NULL_MD5
+ * @run main/othervm JSSERenegotiate
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * @author Ram Marti
  * @author Brad Wetmore
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/KeyManagerTrustManager.java b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/KeyManagerTrustManager.java
index 2226a0a..fb6ad53 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/KeyManagerTrustManager.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/KeyManagerTrustManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,10 @@
  * 4396290: Need a way to pass algorithm specific parameters to TM's and KM's
  * 4395286: The property for setting the default
  *      KeyManagerFactory/TrustManagerFactory algorithms needs real name
+ * @run main/othervm KeyManagerTrustManager
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
@@ -77,17 +81,40 @@ public class KeyManagerTrustManager implements X509KeyManager {
         String kmfAlg = null;
         String tmfAlg = null;
 
-        Security.setProperty("ssl.KeyManagerFactory.algorithm", "hello");
-        Security.setProperty("ssl.TrustManagerFactory.algorithm", "goodbye");
+        // reserve the security properties
+        String reservedKMFacAlg =
+            Security.getProperty("ssl.KeyManagerFactory.algorithm");
+        String reservedTMFacAlg =
+            Security.getProperty("ssl.TrustManagerFactory.algorithm");
 
-        kmfAlg = KeyManagerFactory.getDefaultAlgorithm();
-        tmfAlg = TrustManagerFactory.getDefaultAlgorithm();
+        try {
+            Security.setProperty("ssl.KeyManagerFactory.algorithm", "hello");
+            Security.setProperty("ssl.TrustManagerFactory.algorithm",
+                                                                "goodbye");
 
-        if (!kmfAlg.equals("hello")) {
-            throw new Exception("ssl.KeyManagerFactory.algorithm not set");
-        }
-        if (!tmfAlg.equals("goodbye")) {
-            throw new Exception("ssl.TrustManagerFactory.algorithm not set");
+            kmfAlg = KeyManagerFactory.getDefaultAlgorithm();
+            tmfAlg = TrustManagerFactory.getDefaultAlgorithm();
+
+            if (!kmfAlg.equals("hello")) {
+                throw new Exception("ssl.KeyManagerFactory.algorithm not set");
+            }
+            if (!tmfAlg.equals("goodbye")) {
+                throw new Exception(
+                        "ssl.TrustManagerFactory.algorithm not set");
+            }
+        } finally {
+            // restore the security properties
+            if (reservedKMFacAlg == null) {
+                reservedKMFacAlg = "";
+            }
+
+            if (reservedTMFacAlg == null) {
+                reservedTMFacAlg = "";
+            }
+            Security.setProperty("ssl.KeyManagerFactory.algorithm",
+                                                            reservedKMFacAlg);
+            Security.setProperty("ssl.TrustManagerFactory.algorithm",
+                                                            reservedTMFacAlg);
         }
     }
 }
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLCtxAccessToSessCtx.java b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLCtxAccessToSessCtx.java
index 8ec01a9..5247412 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLCtxAccessToSessCtx.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLCtxAccessToSessCtx.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4473210
  * @summary SSLSessionContext should be accessible from SSLContext
+ * @run main/othervm SSLCtxAccessToSessCtx
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/AcceptLargeFragments.java b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/AcceptLargeFragments.java
index 468ca82..8252d54 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/AcceptLargeFragments.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/AcceptLargeFragments.java
@@ -26,6 +26,10 @@
  * @bug 6388456
  * @summary Need adjustable TLS max record size for interoperability
  *      with non-compliant stacks
+ * @run main/othervm AcceptLargeFragments
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * Check the system property "jsse.SSLEngine.acceptLargeFragments"
  *
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ExtendedKeySocket.java b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ExtendedKeySocket.java
index d255d28..171dcd7 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ExtendedKeySocket.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ExtendedKeySocket.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4981697
  * @summary Rework the X509KeyManager to avoid incompatibility issues
+ * @run main/othervm ExtendedKeySocket
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad R. Wetmore
  */
 
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargePacket.java b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargePacket.java
index 4699958..9740b67 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargePacket.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargePacket.java
@@ -27,6 +27,10 @@
  * @bug 6388456
  * @summary Need adjustable TLS max record size for interoperability
  *      with non-compliant
+ * @run main/othervm LargePacket
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * @author Xuelei Fan
  */
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java
index 44a3437..916e72b 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 4495742
  * @summary Demonstrate SSLEngine switch from no client auth to client auth.
+ * @run main/othervm NoAuthClientAuth
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * @author Brad R. Wetmore
  */
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java
index 64b2f6d..64f602e 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java
@@ -25,6 +25,10 @@
  * @test
  * @bug   4366807
  * @summary Need new APIs to get/set session timeout and session cache size.
+ * @run main/othervm SessionCacheSizeTests
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java
index fc918a7..495e012 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java
@@ -25,6 +25,10 @@
  * @test
  * @bug   4366807
  * @summary Need new APIs to get/set session timeout and session cache size.
+ * @run main/othervm SessionTimeOutTests
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
@@ -207,7 +211,7 @@ public class SessionTimeOutTests {
                 timeout = sessCtx.getSessionTimeout();
                 System.out.println("timeout is changed to: " + timeout);
                 System.out.println();
-            }
+           }
         }
 
         // check the ids returned by the enumerator
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/testEnabledProtocols.java b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/testEnabledProtocols.java
index e7a5b23..06fe82d 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/testEnabledProtocols.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/testEnabledProtocols.java
@@ -30,6 +30,10 @@
  *                  session
  *          4701722 protocol mismatch exceptions should be consistent between
  *                  SSLv3 and TLSv1
+ * @run main/othervm testEnabledProtocols
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Ram Marti
  */
 
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/SSLServerSocket/DefaultSSLServSocketFac.java b/jdk/test/sun/security/ssl/javax/net/ssl/SSLServerSocket/DefaultSSLServSocketFac.java
index 755cf67..cacee7f 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/SSLServerSocket/DefaultSSLServSocketFac.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/SSLServerSocket/DefaultSSLServSocketFac.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,10 @@
  * @test
  * @bug 6449579
  * @summary DefaultSSLServerSocketFactory does not override createServerSocket()
+ * @run main/othervm DefaultSSLServSocketFac
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 import java.security.Security;
 import javax.net.ServerSocketFactory;
@@ -33,6 +37,10 @@ import javax.net.ssl.SSLServerSocketFactory;
 
 public class DefaultSSLServSocketFac {
     public static void main(String[] args) throws Exception {
+        // reserve the security properties
+        String reservedSSFacProvider =
+            Security.getProperty("ssl.ServerSocketFactory.provider");
+
         try {
             Security.setProperty("ssl.ServerSocketFactory.provider", "oops");
             ServerSocketFactory ssocketFactory =
@@ -44,6 +52,13 @@ public class DefaultSSLServSocketFac {
                 throw e;
             }
             // get the expected exception
+        } finally {
+            // restore the security properties
+            if (reservedSSFacProvider == null) {
+                reservedSSFacProvider = "";
+            }
+            Security.setProperty("ssl.ServerSocketFactory.provider",
+                                                    reservedSSFacProvider);
         }
     }
 }
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java
index 5afb004..01134a0 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java
@@ -27,7 +27,10 @@
  * @test
  * @bug 4873188
  * @summary Support TLS 1.1
- * @run main/othervm -Djavax.net.debug=all EmptyCertificateAuthorities
+ * @run main/othervm EmptyCertificateAuthorities
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * @author Xuelei Fan
  */
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableBlockCipher.java b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableBlockCipher.java
index e3e30c6..c58a6e7 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableBlockCipher.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableBlockCipher.java
@@ -27,7 +27,10 @@
  * @test
  * @bug 4873188
  * @summary Support TLS 1.1
- * @run main/othervm -Djavax.net.debug=all ExportableBlockCipher
+ * @run main/othervm ExportableBlockCipher
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * @author Xuelei Fan
  */
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableStreamCipher.java b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableStreamCipher.java
index 11d91fa..c8b19bd 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableStreamCipher.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/ExportableStreamCipher.java
@@ -27,7 +27,10 @@
  * @test
  * @bug 4873188
  * @summary Support TLS 1.1
- * @run main/othervm -Djavax.net.debug=all ExportableStreamCipher
+ * @run main/othervm ExportableStreamCipher
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * @author Xuelei Fan
  */
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericBlockCipher.java b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericBlockCipher.java
index b56d3f1..32e1fdb 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericBlockCipher.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericBlockCipher.java
@@ -27,7 +27,10 @@
  * @test
  * @bug 4873188
  * @summary Support TLS 1.1
- * @run main/othervm -Djavax.net.debug=all GenericBlockCipher
+ * @run main/othervm GenericBlockCipher
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * @author Xuelei Fan
  */
diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericStreamCipher.java b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericStreamCipher.java
index f402ee1..7ec0c49 100644
--- a/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericStreamCipher.java
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericStreamCipher.java
@@ -27,7 +27,10 @@
  * @test
  * @bug 4873188
  * @summary Support TLS 1.1
- * @run main/othervm -Djavax.net.debug=all GenericStreamCipher
+ * @run main/othervm GenericStreamCipher
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * @author Xuelei Fan
  */
diff --git a/jdk/test/sun/security/ssl/sanity/pluggability/CheckSSLContextExport.java b/jdk/test/sun/security/ssl/sanity/pluggability/CheckSSLContextExport.java
index f5292c9..3527c06 100644
--- a/jdk/test/sun/security/ssl/sanity/pluggability/CheckSSLContextExport.java
+++ b/jdk/test/sun/security/ssl/sanity/pluggability/CheckSSLContextExport.java
@@ -64,8 +64,8 @@ public class CheckSSLContextExport extends Provider {
             default:
                 throw new Exception("Internal Test Error!");
             }
-            System.out.println("Testing with " + (standardCiphers ? "standard" : "custom") +
-                               " cipher suites");
+            System.out.println("Testing with " +
+                (standardCiphers ? "standard" : "custom") + " cipher suites");
             for (int j = 0; j < 4; j++) {
                 String clsName = null;
                 try {
@@ -107,11 +107,16 @@ public class CheckSSLContextExport extends Provider {
 
     public static void main(String[] argv) throws Exception {
         String protocols[] = { "SSL", "TLS" };
-        Security.insertProviderAt(new CheckSSLContextExport(protocols), 1);
-        for (int i = 0; i < protocols.length; i++) {
-            System.out.println("Testing " + protocols[i] + "'s SSLContext");
-            test(protocols[i]);
+        Provider extraProvider = new CheckSSLContextExport(protocols);
+        Security.insertProviderAt(extraProvider, 1);
+        try {
+            for (int i = 0; i < protocols.length; i++) {
+                System.out.println("Testing " + protocols[i] + "'s SSLContext");
+                test(protocols[i]);
+            }
+            System.out.println("Test Passed");
+        } finally {
+            Security.removeProvider(extraProvider.getName());
         }
-        System.out.println("Test Passed");
     }
 }
diff --git a/jdk/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport1.java b/jdk/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport1.java
index 89ed727..0db7c57 100644
--- a/jdk/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport1.java
+++ b/jdk/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport1.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,10 @@
  * @bug 4635454 6208022
  * @summary Check pluggability of SSLSocketFactory and
  * SSLServerSocketFactory classes.
+ * @run main/othervm CheckSockFacExport1
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.util.*;
@@ -37,36 +41,57 @@ import javax.net.ssl.*;
 public class CheckSockFacExport1 {
 
     public static void main(String argv[]) throws Exception {
-        Security.setProperty("ssl.SocketFactory.provider",
-                             "MySSLSocketFacImpl");
-        MySSLSocketFacImpl.useCustomCipherSuites();
-        Security.setProperty("ssl.ServerSocketFactory.provider",
-            "MySSLServerSocketFacImpl");
-        MySSLServerSocketFacImpl.useCustomCipherSuites();
+        // reserve the security properties
+        String reservedSFacAlg =
+            Security.getProperty("ssl.SocketFactory.provider");
+        String reservedSSFacAlg =
+            Security.getProperty("ssl.ServerSocketFactory.provider");
+
+        try {
+            Security.setProperty("ssl.SocketFactory.provider",
+                                 "MySSLSocketFacImpl");
+            MySSLSocketFacImpl.useCustomCipherSuites();
+            Security.setProperty("ssl.ServerSocketFactory.provider",
+                "MySSLServerSocketFacImpl");
+            MySSLServerSocketFacImpl.useCustomCipherSuites();
 
-        String[] supportedCS = null;
-        for (int i = 0; i < 2; i++) {
-            switch (i) {
-            case 0:
-                System.out.println("Testing SSLSocketFactory:");
-                SSLSocketFactory sf = (SSLSocketFactory)
-                    SSLSocketFactory.getDefault();
-                supportedCS = sf.getSupportedCipherSuites();
-                break;
-            case 1:
-                System.out.println("Testing SSLServerSocketFactory:");
-                SSLServerSocketFactory ssf = (SSLServerSocketFactory)
-                    SSLServerSocketFactory.getDefault();
-                supportedCS = ssf.getSupportedCipherSuites();
-                break;
-            default:
-                throw new Exception("Internal Test Error");
+            String[] supportedCS = null;
+            for (int i = 0; i < 2; i++) {
+                switch (i) {
+                case 0:
+                    System.out.println("Testing SSLSocketFactory:");
+                    SSLSocketFactory sf = (SSLSocketFactory)
+                        SSLSocketFactory.getDefault();
+                    supportedCS = sf.getSupportedCipherSuites();
+                    break;
+                case 1:
+                    System.out.println("Testing SSLServerSocketFactory:");
+                    SSLServerSocketFactory ssf = (SSLServerSocketFactory)
+                        SSLServerSocketFactory.getDefault();
+                    supportedCS = ssf.getSupportedCipherSuites();
+                    break;
+                default:
+                    throw new Exception("Internal Test Error");
+                }
+                System.out.println(Arrays.asList(supportedCS));
+                if (supportedCS.length == 0) {
+                    throw new Exception("supported ciphersuites are empty");
+                }
             }
-            System.out.println(Arrays.asList(supportedCS));
-            if (supportedCS.length == 0) {
-                throw new Exception("supported ciphersuites are empty");
+            System.out.println("Test Passed");
+        } finally {
+            // restore the security properties
+            if (reservedSFacAlg == null) {
+                reservedSFacAlg = "";
+            }
+
+            if (reservedSSFacAlg == null) {
+                reservedSSFacAlg = "";
             }
+            Security.setProperty("ssl.SocketFactory.provider",
+                                                            reservedSFacAlg);
+            Security.setProperty("ssl.ServerSocketFactory.provider",
+                                                            reservedSSFacAlg);
         }
-        System.out.println("Test Passed");
     }
 }
diff --git a/jdk/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport2.java b/jdk/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport2.java
index d8c21e1..379478c 100644
--- a/jdk/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport2.java
+++ b/jdk/test/sun/security/ssl/sanity/pluggability/CheckSockFacExport2.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,11 @@
  * @test
  * @bug 4635454
  * @summary Check pluggability of SSLSocketFactory and
- * SSLServerSocketFactory classes.
+ *     SSLServerSocketFactory classes.
+ * @run main/othervm CheckSockFacExport2
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 import java.security.*;
 import java.net.*;
@@ -34,38 +38,59 @@ import javax.net.ssl.*;
 public class CheckSockFacExport2 {
 
     public static void main(String argv[]) throws Exception {
-        Security.setProperty("ssl.SocketFactory.provider",
-            "MySSLSocketFacImpl");
-        MySSLSocketFacImpl.useStandardCipherSuites();
-        Security.setProperty("ssl.ServerSocketFactory.provider",
-            "MySSLServerSocketFacImpl");
-        MySSLServerSocketFacImpl.useStandardCipherSuites();
+        // reserve the security properties
+        String reservedSFacAlg =
+            Security.getProperty("ssl.SocketFactory.provider");
+        String reservedSSFacAlg =
+            Security.getProperty("ssl.ServerSocketFactory.provider");
+
+        try {
+            Security.setProperty("ssl.SocketFactory.provider",
+                "MySSLSocketFacImpl");
+            MySSLSocketFacImpl.useStandardCipherSuites();
+            Security.setProperty("ssl.ServerSocketFactory.provider",
+                "MySSLServerSocketFacImpl");
+            MySSLServerSocketFacImpl.useStandardCipherSuites();
 
-        boolean result = false;
-        for (int i = 0; i < 2; i++) {
-            switch (i) {
-            case 0:
-                System.out.println("Testing SSLSocketFactory:");
-                SSLSocketFactory sf = (SSLSocketFactory)
-                    SSLSocketFactory.getDefault();
-                result = (sf instanceof MySSLSocketFacImpl);
-                break;
+            boolean result = false;
+            for (int i = 0; i < 2; i++) {
+                switch (i) {
+                case 0:
+                    System.out.println("Testing SSLSocketFactory:");
+                    SSLSocketFactory sf = (SSLSocketFactory)
+                        SSLSocketFactory.getDefault();
+                    result = (sf instanceof MySSLSocketFacImpl);
+                    break;
 
-            case 1:
-                System.out.println("Testing SSLServerSocketFactory:");
-                SSLServerSocketFactory ssf = (SSLServerSocketFactory)
-                    SSLServerSocketFactory.getDefault();
-                result = (ssf instanceof MySSLServerSocketFacImpl);
-                break;
-            default:
-                throw new Exception("Internal Test Error");
+                case 1:
+                    System.out.println("Testing SSLServerSocketFactory:");
+                    SSLServerSocketFactory ssf = (SSLServerSocketFactory)
+                        SSLServerSocketFactory.getDefault();
+                    result = (ssf instanceof MySSLServerSocketFacImpl);
+                    break;
+                default:
+                    throw new Exception("Internal Test Error");
+                }
+                if (result) {
+                    System.out.println("...accepted valid SFs");
+                } else {
+                    throw new Exception("...wrong SF is used");
+                }
             }
-            if (result) {
-                System.out.println("...accepted valid SFs");
-            } else {
-                throw new Exception("...wrong SF is used");
+            System.out.println("Test Passed");
+        } finally {
+            // restore the security properties
+            if (reservedSFacAlg == null) {
+                reservedSFacAlg = "";
+            }
+
+            if (reservedSSFacAlg == null) {
+                reservedSSFacAlg = "";
             }
+            Security.setProperty("ssl.SocketFactory.provider",
+                                                            reservedSFacAlg);
+            Security.setProperty("ssl.ServerSocketFactory.provider",
+                                                            reservedSSFacAlg);
         }
-        System.out.println("Test Passed");
     }
 }
diff --git a/jdk/test/sun/security/ssl/sun/net/www/http/ChunkedOutputStream/Test.java b/jdk/test/sun/security/ssl/sun/net/www/http/ChunkedOutputStream/Test.java
index a093dba..9a6af1a 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/http/ChunkedOutputStream/Test.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/http/ChunkedOutputStream/Test.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,9 @@
  * @bug 5026745
  * @library ../../httpstest/
  * @run main/othervm Test
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @summary Cannot flush output stream when writing to an HttpUrlConnection
  */
 
@@ -283,31 +286,37 @@ public class Test implements HttpCallback {
             System.getProperty("test.src", "./") + "/" + pathToStores +
                 "/" + trustStoreFile;
 
-        System.setProperty("javax.net.ssl.keyStore", keyFilename);
-        System.setProperty("javax.net.ssl.keyStorePassword", passwd);
-        System.setProperty("javax.net.ssl.trustStore", trustFilename);
-        System.setProperty("javax.net.ssl.trustStorePassword", passwd);
-        HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier());
-
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
         try {
-            server = new HttpServer (new Test(), 1, 10, 0);
-            System.out.println ("Server started: listening on port: " + server.getLocalPort());
-            // the test server doesn't support keep-alive yet
-            // test1("http://localhost:"+server.getLocalPort()+"/d0");
-            test1("https://localhost:"+server.getLocalPort()+"/d01");
-            test3("https://localhost:"+server.getLocalPort()+"/d3");
-            test4("https://localhost:"+server.getLocalPort()+"/d4");
-            test5("https://localhost:"+server.getLocalPort()+"/d5");
-            test6("https://localhost:"+server.getLocalPort()+"/d6");
-            test7("https://localhost:"+server.getLocalPort()+"/d7");
-            test8("https://localhost:"+server.getLocalPort()+"/d8");
-        } catch (Exception e) {
-            if (server != null) {
-                server.terminate();
+            System.setProperty("javax.net.ssl.keyStore", keyFilename);
+            System.setProperty("javax.net.ssl.keyStorePassword", passwd);
+            System.setProperty("javax.net.ssl.trustStore", trustFilename);
+            System.setProperty("javax.net.ssl.trustStorePassword", passwd);
+            HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier());
+
+            try {
+                server = new HttpServer (new Test(), 1, 10, 0);
+                System.out.println ("Server started: listening on port: " + server.getLocalPort());
+                // the test server doesn't support keep-alive yet
+                // test1("http://localhost:"+server.getLocalPort()+"/d0");
+                test1("https://localhost:"+server.getLocalPort()+"/d01");
+                test3("https://localhost:"+server.getLocalPort()+"/d3");
+                test4("https://localhost:"+server.getLocalPort()+"/d4");
+                test5("https://localhost:"+server.getLocalPort()+"/d5");
+                test6("https://localhost:"+server.getLocalPort()+"/d6");
+                test7("https://localhost:"+server.getLocalPort()+"/d7");
+                test8("https://localhost:"+server.getLocalPort()+"/d8");
+            } catch (Exception e) {
+                if (server != null) {
+                    server.terminate();
+                }
+                throw e;
             }
-            throw e;
+            server.terminate();
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
         }
-        server.terminate();
     }
 
     static class NameVerifier implements HostnameVerifier {
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java
index e2168cd..37b6341 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,9 +26,12 @@
  * @bug 6216082
  * @library ../../../httpstest/
  * @build HttpCallback HttpServer ClosedChannelList HttpTransaction TunnelProxy
- * @run main/othervm B6216082
  * @summary  Redirect problem with HttpsURLConnection using a proxy
-*/
+ * @run main/othervm B6216082
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
+ */
 
 import java.io.*;
 import java.net.*;
@@ -46,20 +49,27 @@ public class B6216082 {
     static InetAddress firstNonLoAddress = null;
 
     public static void main(String[] args) throws Exception {
-        // XXX workaround for CNFE
-        Class.forName("java.nio.channels.ClosedByInterruptException");
-        setupEnv();
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
+        try {
+            // XXX workaround for CNFE
+            Class.forName("java.nio.channels.ClosedByInterruptException");
+            setupEnv();
 
-        startHttpServer();
+            startHttpServer();
 
-        // https.proxyPort can only be set after the TunnelProxy has been
-        // created as it will use an ephemeral port.
-        System.setProperty( "https.proxyPort", (new Integer(proxy.getLocalPort())).toString() );
+            // https.proxyPort can only be set after the TunnelProxy has been
+            // created as it will use an ephemeral port.
+            System.setProperty("https.proxyPort",
+                        (new Integer(proxy.getLocalPort())).toString() );
 
-        makeHttpCall();
+            makeHttpCall();
 
-        if (httpTrans.hasBadRequest) {
-            throw new RuntimeException("Test failed : bad http request");
+            if (httpTrans.hasBadRequest) {
+                throw new RuntimeException("Test failed : bad http request");
+            }
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CloseKeepAliveCached.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CloseKeepAliveCached.java
index 48193b5..c025c6e 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CloseKeepAliveCached.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CloseKeepAliveCached.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,10 @@
  * @bug 6618387
  * @summary SSL client sessions do not close cleanly. A TCP reset occurs
  *      instead of a close_notify alert.
- * @run main/othervm -Djavax.net.debug=ssl CloseKeepAliveCached
+ * @run main/othervm CloseKeepAliveCached
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  *
  * @ignore
  *    After run the test manually, at the end of the debug output,
@@ -140,13 +143,15 @@ public class CloseKeepAliveCached {
      * to avoid infinite hangs.
      */
     void doClientSide() throws Exception {
-
         /*
          * Wait for server to get started.
          */
         while (!serverReady) {
             Thread.sleep(50);
         }
+
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
         try {
             HttpsURLConnection http = null;
 
@@ -180,6 +185,8 @@ public class CloseKeepAliveCached {
             if (sslServerSocket != null)
                 sslServerSocket.close();
             throw ioex;
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CookieHandlerTest.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CookieHandlerTest.java
index 6663720..2e7d3fb 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CookieHandlerTest.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CookieHandlerTest.java
@@ -22,8 +22,12 @@
  */
 
 /* @test
- * @summary Unit test for java.net.CookieHandler
  * @bug 4696506 4942650
+ * @summary Unit test for java.net.CookieHandler
+ * @run main/othervm CookieHandlerTest
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Yingxian Wang
  */
 
@@ -182,26 +186,34 @@ public class CookieHandlerTest {
             System.getProperty("test.src", "./") + "/" + pathToStores +
                 "/" + trustStoreFile;
 
-        System.setProperty("javax.net.ssl.keyStore", keyFilename);
-        System.setProperty("javax.net.ssl.keyStorePassword", passwd);
-        System.setProperty("javax.net.ssl.trustStore", trustFilename);
-        System.setProperty("javax.net.ssl.trustStorePassword", passwd);
-
-        if (debug)
-            System.setProperty("javax.net.debug", "all");
-
-        /*
-         * Start the tests.
-         */
-        cookies = new HashMap<String, String>();
-        cookies.put("Cookie",
-              "$Version=\"1\"; Customer=\"WILE_E_COYOTE\"; $Path=\"/acme\"");
-        cookies.put("Set-Cookie2",
-          "$Version=\"1\"; Part_Number=\"Riding_Rocket_0023\"; " +
-          "$Path=\"/acme/ammo\"; Part_Number=\"Rocket_Launcher_0001\"; "+
-          "$Path=\"/acme\"");
-        CookieHandler.setDefault(new MyCookieHandler());
-        new CookieHandlerTest();
+        CookieHandler reservedCookieHandler = CookieHandler.getDefault();
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
+        try {
+            System.setProperty("javax.net.ssl.keyStore", keyFilename);
+            System.setProperty("javax.net.ssl.keyStorePassword", passwd);
+            System.setProperty("javax.net.ssl.trustStore", trustFilename);
+            System.setProperty("javax.net.ssl.trustStorePassword", passwd);
+
+            if (debug)
+                System.setProperty("javax.net.debug", "all");
+
+            /*
+             * Start the tests.
+             */
+            cookies = new HashMap<String, String>();
+            cookies.put("Cookie",
+                "$Version=\"1\"; Customer=\"WILE_E_COYOTE\"; $Path=\"/acme\"");
+            cookies.put("Set-Cookie2",
+              "$Version=\"1\"; Part_Number=\"Riding_Rocket_0023\"; " +
+              "$Path=\"/acme/ammo\"; Part_Number=\"Rocket_Launcher_0001\"; "+
+              "$Path=\"/acme\"");
+            CookieHandler.setDefault(new MyCookieHandler());
+            new CookieHandlerTest();
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
+            CookieHandler.setDefault(reservedCookieHandler);
+        }
     }
 
     Thread clientThread = null;
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java
index 68104f3..68647c5 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java
@@ -22,8 +22,12 @@
  */
 
 /* @test
- * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
  * @bug 6766775
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @run main/othervm DNSIdentities
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Xuelei Fan
  */
 
@@ -691,34 +695,39 @@ public class DNSIdentities {
      * to avoid infinite hangs.
      */
     void doClientSide() throws Exception {
-        SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
-            clientModulus, clientPrivateExponent, passphrase);
+        SSLContext reservedSSLContext = SSLContext.getDefault();
+        try {
+            SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+                clientModulus, clientPrivateExponent, passphrase);
 
-        SSLContext.setDefault(context);
+            SSLContext.setDefault(context);
 
-        /*
-         * Wait for server to get started.
-         */
-        while (!serverReady) {
-            Thread.sleep(50);
-        }
+            /*
+             * Wait for server to get started.
+             */
+            while (!serverReady) {
+                Thread.sleep(50);
+            }
 
-        HttpsURLConnection http = null;
+            HttpsURLConnection http = null;
 
-        /* establish http connection to server */
-        URL url = new URL("https://localhost:" + serverPort+"/");
-        System.out.println("url is "+url.toString());
+            /* establish http connection to server */
+            URL url = new URL("https://localhost:" + serverPort+"/");
+            System.out.println("url is "+url.toString());
 
-        try {
-            http = (HttpsURLConnection)url.openConnection();
+            try {
+                http = (HttpsURLConnection)url.openConnection();
 
-            int respCode = http.getResponseCode();
-            System.out.println("respCode = "+respCode);
-        } finally {
-            if (http != null) {
-                http.disconnect();
+                int respCode = http.getResponseCode();
+                System.out.println("respCode = "+respCode);
+            } finally {
+                if (http != null) {
+                    http.disconnect();
+                }
+                closeReady = true;
             }
-            closeReady = true;
+        } finally {
+            SSLContext.setDefault(reservedSSLContext);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java
index 39e7c13..051e1be 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java
@@ -24,7 +24,12 @@
 /**
  * @test
  * @bug 6771432
- * @summary createSocket() - smpatch fails using 1.6.0_10 because of "Unconnected sockets not implemented"
+ * @summary createSocket() - smpatch fails using 1.6.0_10 because of
+ *     "Unconnected sockets not implemented"
+ * @run main/othervm HttpsCreateSockTest
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import javax.net.SocketFactory;
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java
index a7ac995..8d265f1 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,10 @@
  * @bug 4423074
  * @summary Need to rebase all the duplicated classes from Merlin.
  *          This test will check out http POST
+ * @run main/othervm HttpsPost
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
@@ -140,34 +144,38 @@ public class HttpsPost {
      * to avoid infinite hangs.
      */
     void doClientSide() throws Exception {
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
+        try {
+            /*
+             * Wait for server to get started.
+             */
+            while (!serverReady) {
+                Thread.sleep(50);
+            }
 
-        /*
-         * Wait for server to get started.
-         */
-        while (!serverReady) {
-            Thread.sleep(50);
-        }
-
-        // Send HTTP POST request to server
-        URL url = new URL("https://localhost:"+serverPort);
+            // Send HTTP POST request to server
+            URL url = new URL("https://localhost:"+serverPort);
 
-        HttpsURLConnection.setDefaultHostnameVerifier(
-                                      new NameVerifier());
-        HttpsURLConnection http = (HttpsURLConnection)url.openConnection();
-        http.setDoOutput(true);
+            HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier());
+            HttpsURLConnection http = (HttpsURLConnection)url.openConnection();
+            http.setDoOutput(true);
 
-        http.setRequestMethod("POST");
-        PrintStream ps = new PrintStream(http.getOutputStream());
-        try {
-            ps.println(postMsg);
-            ps.flush();
-            if (http.getResponseCode() != 200) {
-                throw new RuntimeException("test Failed");
+            http.setRequestMethod("POST");
+            PrintStream ps = new PrintStream(http.getOutputStream());
+            try {
+                ps.println(postMsg);
+                ps.flush();
+                if (http.getResponseCode() != 200) {
+                    throw new RuntimeException("test Failed");
+                }
+            } finally {
+                ps.close();
+                http.disconnect();
+                closeReady = true;
             }
         } finally {
-            ps.close();
-            http.disconnect();
-            closeReady = true;
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsProxyStackOverflow.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsProxyStackOverflow.java
index cc518c2..dc50bc9 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsProxyStackOverflow.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsProxyStackOverflow.java
@@ -25,6 +25,9 @@
  * @test
  * @bug 6670868
  * @summary StackOverFlow with bad authenticated Proxy tunnels
+ * @run main/othervm HttpsProxyStackOverflow
+ *
+ * No way to reserve default Authenticator, need to run in othervm mode.
  */
 
 import java.io.IOException;
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java
index 41ad61f..a32e775 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java
@@ -26,6 +26,9 @@
  * @bug 6614957
  * @summary HttpsURLConnection not using the set SSLSocketFactory for creating all its Sockets
  * @run main/othervm HttpsSocketFacTest
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import javax.net.SocketFactory;
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java
index eac7383..88a261f 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -22,8 +22,12 @@
  */
 
 /* @test
- * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
  * @bug 6766775
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @run main/othervm IPAddressDNSIdentities
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Xuelei Fan
  */
 
@@ -691,43 +695,48 @@ public class IPAddressDNSIdentities {
      * to avoid infinite hangs.
      */
     void doClientSide() throws Exception {
-        SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
-            clientModulus, clientPrivateExponent, passphrase);
-
-        SSLContext.setDefault(context);
-
-        /*
-         * Wait for server to get started.
-         */
-        while (!serverReady) {
-            Thread.sleep(50);
-        }
+        SSLContext reservedSSLContext = SSLContext.getDefault();
+        try {
+            SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+                clientModulus, clientPrivateExponent, passphrase);
 
-        HttpsURLConnection http = null;
+            SSLContext.setDefault(context);
 
-        /* establish http connection to server */
-        URL url = new URL("https://127.0.0.1:" + serverPort+"/");
-        System.out.println("url is "+url.toString());
+            /*
+             * Wait for server to get started.
+             */
+            while (!serverReady) {
+                Thread.sleep(50);
+            }
 
-        try {
-            http = (HttpsURLConnection)url.openConnection();
-
-            int respCode = http.getResponseCode();
-            System.out.println("respCode = " + respCode);
-
-            throw new Exception("Unexpectly found subject alternative name " +
-                                "matching IP address");
-        } catch (SSLHandshakeException sslhe) {
-            // no subject alternative names matching IP address 127.0.0.1 found
-            // that's the expected exception, ignore it.
-        } catch (IOException ioe) {
-            // HttpsClient may throw IOE during checking URL spoofing,
-            // that's the expected exception, ignore it.
-        } finally {
-            if (http != null) {
-                http.disconnect();
+            HttpsURLConnection http = null;
+
+            /* establish http connection to server */
+            URL url = new URL("https://127.0.0.1:" + serverPort+"/");
+            System.out.println("url is "+url.toString());
+
+            try {
+                http = (HttpsURLConnection)url.openConnection();
+
+                int respCode = http.getResponseCode();
+                System.out.println("respCode = " + respCode);
+
+                throw new Exception("Unexpectly found " +
+                        "subject alternative name matching IP address");
+            } catch (SSLHandshakeException sslhe) {
+                // no subject alternative names matching IP address 127.0.0.1
+                // found that's the expected exception, ignore it.
+            } catch (IOException ioe) {
+                // HttpsClient may throw IOE during checking URL spoofing,
+                // that's the expected exception, ignore it.
+            } finally {
+                if (http != null) {
+                    http.disconnect();
+                }
+                closeReady = true;
             }
-            closeReady = true;
+        } finally {
+            SSLContext.setDefault(reservedSSLContext);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java
index 1695233..2fc92a2 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,6 +24,10 @@
 /* @test
  * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
  * @bug 6766775
+ * @run main/othervm IPAddressIPIdentities
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Xuelei Fan
  */
 
@@ -692,34 +696,39 @@ public class IPAddressIPIdentities {
      * to avoid infinite hangs.
      */
     void doClientSide() throws Exception {
-        SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
-            clientModulus, clientPrivateExponent, passphrase);
+        SSLContext reservedSSLContext = SSLContext.getDefault();
+        try {
+            SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+                clientModulus, clientPrivateExponent, passphrase);
 
-        SSLContext.setDefault(context);
+            SSLContext.setDefault(context);
 
-        /*
-         * Wait for server to get started.
-         */
-        while (!serverReady) {
-            Thread.sleep(50);
-        }
+            /*
+             * Wait for server to get started.
+             */
+            while (!serverReady) {
+                Thread.sleep(50);
+            }
 
-        HttpsURLConnection http = null;
+            HttpsURLConnection http = null;
 
-        /* establish http connection to server */
-        URL url = new URL("https://127.0.0.1:" + serverPort+"/");
-        System.out.println("url is "+url.toString());
+            /* establish http connection to server */
+            URL url = new URL("https://127.0.0.1:" + serverPort+"/");
+            System.out.println("url is "+url.toString());
 
-        try {
-            http = (HttpsURLConnection)url.openConnection();
+            try {
+                http = (HttpsURLConnection)url.openConnection();
 
-            int respCode = http.getResponseCode();
-            System.out.println("respCode = "+respCode);
-        } finally {
-            if (http != null) {
-                http.disconnect();
+                int respCode = http.getResponseCode();
+                System.out.println("respCode = "+respCode);
+            } finally {
+                if (http != null) {
+                    http.disconnect();
+                }
+                closeReady = true;
             }
-            closeReady = true;
+        } finally {
+            SSLContext.setDefault(reservedSSLContext);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java
index 632fa15..1d93e9c 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,6 +24,10 @@
 /* @test
  * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
  * @bug 6766775
+ * @run main/othervm IPIdentities
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Xuelei Fan
  */
 
@@ -692,34 +696,38 @@ public class IPIdentities {
      * to avoid infinite hangs.
      */
     void doClientSide() throws Exception {
-        SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
-            clientModulus, clientPrivateExponent, passphrase);
-
-        SSLContext.setDefault(context);
-
-        /*
-         * Wait for server to get started.
-         */
-        while (!serverReady) {
-            Thread.sleep(50);
-        }
+        SSLContext reservedSSLContext = SSLContext.getDefault();
+        try {
+            SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+                clientModulus, clientPrivateExponent, passphrase);
+            SSLContext.setDefault(context);
+
+            /*
+             * Wait for server to get started.
+             */
+            while (!serverReady) {
+                Thread.sleep(50);
+            }
 
-        HttpsURLConnection http = null;
+            HttpsURLConnection http = null;
 
-        /* establish http connection to server */
-        URL url = new URL("https://localhost:" + serverPort+"/");
-        System.out.println("url is "+url.toString());
+            /* establish http connection to server */
+            URL url = new URL("https://localhost:" + serverPort+"/");
+            System.out.println("url is "+url.toString());
 
-        try {
-            http = (HttpsURLConnection)url.openConnection();
+            try {
+                http = (HttpsURLConnection)url.openConnection();
 
-            int respCode = http.getResponseCode();
-            System.out.println("respCode = "+respCode);
-        } finally {
-            if (http != null) {
-                http.disconnect();
+                int respCode = http.getResponseCode();
+                System.out.println("respCode = "+respCode);
+            } finally {
+                if (http != null) {
+                    http.disconnect();
+                }
+                closeReady = true;
             }
-            closeReady = true;
+        } finally {
+            SSLContext.setDefault(reservedSSLContext);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java
index 4992805..e7396d5 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -22,8 +22,12 @@
  */
 
 /* @test
- * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
  * @bug 6766775
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @run main/othervm Identities
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Xuelei Fan
  */
 
@@ -691,34 +695,39 @@ public class Identities {
      * to avoid infinite hangs.
      */
     void doClientSide() throws Exception {
-        SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
-            clientModulus, clientPrivateExponent, passphrase);
+        SSLContext reservedSSLContext = SSLContext.getDefault();
+        try {
+            SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+                clientModulus, clientPrivateExponent, passphrase);
 
-        SSLContext.setDefault(context);
+            SSLContext.setDefault(context);
 
-        /*
-         * Wait for server to get started.
-         */
-        while (!serverReady) {
-            Thread.sleep(50);
-        }
+            /*
+             * Wait for server to get started.
+             */
+            while (!serverReady) {
+                Thread.sleep(50);
+            }
 
-        HttpsURLConnection http = null;
+            HttpsURLConnection http = null;
 
-        /* establish http connection to server */
-        URL url = new URL("https://localhost:" + serverPort+"/");
-        System.out.println("url is "+url.toString());
+            /* establish http connection to server */
+            URL url = new URL("https://localhost:" + serverPort+"/");
+            System.out.println("url is "+url.toString());
 
-        try {
-            http = (HttpsURLConnection)url.openConnection();
+            try {
+                http = (HttpsURLConnection)url.openConnection();
 
-            int respCode = http.getResponseCode();
-            System.out.println("respCode = "+respCode);
-        } finally {
-            if (http != null) {
-                http.disconnect();
+                int respCode = http.getResponseCode();
+                System.out.println("respCode = "+respCode);
+            } finally {
+                if (http != null) {
+                    http.disconnect();
+                }
+                closeReady = true;
             }
-            closeReady = true;
+        } finally {
+            SSLContext.setDefault(reservedSSLContext);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.java
index 35031ca..a521db2 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -147,44 +147,50 @@ public class PostThruProxy {
     static String postMsg = "Testing HTTP post on a https server";
 
     static void doClientSide(String hostname) throws Exception {
-        /*
-         * setup up a proxy
-         */
-        setupProxy();
-
-        /*
-         * we want to avoid URLspoofCheck failures in cases where the cert
-         * DN name does not match the hostname in the URL.
-         */
-        HttpsURLConnection.setDefaultHostnameVerifier(
-                                      new NameVerifier());
-        URL url = new URL("https://" + hostname+ ":" + serverPort);
-
-        HttpsURLConnection https = (HttpsURLConnection)url.openConnection();
-        https.setDoOutput(true);
-        https.setRequestMethod("POST");
-        PrintStream ps = null;
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
         try {
-           ps = new PrintStream(https.getOutputStream());
-           ps.println(postMsg);
-           ps.flush();
-           if (https.getResponseCode() != 200) {
-                throw new RuntimeException("test Failed");
-           }
-           ps.close();
-
-           // clear the pipe
-           BufferedReader in = new BufferedReader(
-                                new InputStreamReader(
-                                https.getInputStream()));
-           String inputLine;
-           while ((inputLine = in.readLine()) != null)
-                System.out.println("Client received: " + inputLine);
-           in.close();
-        } catch (SSLException e) {
-            if (ps != null)
-                ps.close();
-            throw e;
+            /*
+             * setup up a proxy
+             */
+            setupProxy();
+
+            /*
+             * we want to avoid URLspoofCheck failures in cases where the cert
+             * DN name does not match the hostname in the URL.
+             */
+            HttpsURLConnection.setDefaultHostnameVerifier(
+                                          new NameVerifier());
+            URL url = new URL("https://" + hostname+ ":" + serverPort);
+
+            HttpsURLConnection https = (HttpsURLConnection)url.openConnection();
+            https.setDoOutput(true);
+            https.setRequestMethod("POST");
+            PrintStream ps = null;
+            try {
+               ps = new PrintStream(https.getOutputStream());
+               ps.println(postMsg);
+               ps.flush();
+               if (https.getResponseCode() != 200) {
+                    throw new RuntimeException("test Failed");
+               }
+               ps.close();
+
+               // clear the pipe
+               BufferedReader in = new BufferedReader(
+                                    new InputStreamReader(
+                                    https.getInputStream()));
+               String inputLine;
+               while ((inputLine = in.readLine()) != null)
+                    System.out.println("Client received: " + inputLine);
+               in.close();
+            } catch (SSLException e) {
+                if (ps != null)
+                    ps.close();
+                throw e;
+            }
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java
index 413ca42..cfaaeb4 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,13 @@
 /*
  * @test
  * @bug 4811482 4700777 4905410
- * @summary sun.net.client.defaultConnectTimeout should work with HttpsURLConnection; HTTP client: Connect and read timeouts; Https needs to support new tiger features that went into http
+ * @summary sun.net.client.defaultConnectTimeout should work with
+ *     HttpsURLConnection; HTTP client: Connect and read timeouts;
+ *     Https needs to support new tiger features that went into http
+ * @run main/othervm ReadTimeout
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
@@ -143,44 +149,48 @@ public class ReadTimeout {
      * to avoid infinite hangs.
      */
     void doClientSide() throws Exception {
-
-        /*
-         * Wait for server to get started.
-         */
-        while (!serverReady) {
-            Thread.sleep(50);
-        }
-        HttpsURLConnection http = null;
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
         try {
-            URL url = new URL("https://localhost:"+serverPort);
-
-            // set read timeout through system property
-            System.setProperty("sun.net.client.defaultReadTimeout", "2000");
-            HttpsURLConnection.setDefaultHostnameVerifier(
-                                      new NameVerifier());
-            http = (HttpsURLConnection)url.openConnection();
-
-            InputStream is = http.getInputStream ();
-        } catch (SocketTimeoutException stex) {
-            done();
-            http.disconnect();
-        }
+            /*
+             * Wait for server to get started.
+             */
+            while (!serverReady) {
+                Thread.sleep(50);
+            }
+            HttpsURLConnection http = null;
+            try {
+                URL url = new URL("https://localhost:"+serverPort);
+
+                // set read timeout through system property
+                System.setProperty("sun.net.client.defaultReadTimeout", "2000");
+                HttpsURLConnection.setDefaultHostnameVerifier(
+                                          new NameVerifier());
+                http = (HttpsURLConnection)url.openConnection();
+
+                InputStream is = http.getInputStream ();
+            } catch (SocketTimeoutException stex) {
+                done();
+                http.disconnect();
+            }
 
-        try {
-            URL url = new URL("https://localhost:"+serverPort);
-
-            HttpsURLConnection.setDefaultHostnameVerifier(
-                                      new NameVerifier());
-            http = (HttpsURLConnection)url.openConnection();
-            // set read timeout through API
-            http.setReadTimeout(2000);
-
-            InputStream is = http.getInputStream ();
-        } catch (SocketTimeoutException stex) {
-            done();
-            http.disconnect();
-        }
+            try {
+                URL url = new URL("https://localhost:"+serverPort);
+
+                HttpsURLConnection.setDefaultHostnameVerifier(
+                                          new NameVerifier());
+                http = (HttpsURLConnection)url.openConnection();
+                // set read timeout through API
+                http.setReadTimeout(2000);
 
+                InputStream is = http.getInputStream ();
+            } catch (SocketTimeoutException stex) {
+                done();
+                http.disconnect();
+            }
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
+        }
     }
 
     static class NameVerifier implements HostnameVerifier {
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java
index f2764ab..276f96c 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,10 @@
  * @bug 4423074
  * @summary Need to rebase all the duplicated classes from Merlin.
  *          This test will check out http POST
+ * @run main/othervm Redirect
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
@@ -139,28 +143,33 @@ public class Redirect {
      * to avoid infinite hangs.
      */
     void doClientSide() throws Exception {
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
+        try {
+            /*
+             * Wait for server to get started.
+             */
+            while (!serverReady) {
+                Thread.sleep(50);
+            }
 
-        /*
-         * Wait for server to get started.
-         */
-        while (!serverReady) {
-            Thread.sleep(50);
-        }
-
-        // Send HTTP POST request to server
-        URL url = new URL("https://localhost:"+serverPort);
+            // Send HTTP POST request to server
+            URL url = new URL("https://localhost:"+serverPort);
 
-        HttpsURLConnection.setDefaultHostnameVerifier(
-                                      new NameVerifier());
-        HttpsURLConnection http = (HttpsURLConnection)url.openConnection();
-        try {
-            System.out.println("response header: "+http.getHeaderField(0));
-            if (http.getResponseCode() != 200) {
-                throw new RuntimeException("test Failed");
+            HttpsURLConnection.setDefaultHostnameVerifier(
+                                          new NameVerifier());
+            HttpsURLConnection http = (HttpsURLConnection)url.openConnection();
+            try {
+                System.out.println("response header: "+http.getHeaderField(0));
+                if (http.getResponseCode() != 200) {
+                    throw new RuntimeException("test Failed");
+                }
+            } finally {
+                http.disconnect();
+                closeReady = true;
             }
         } finally {
-            http.disconnect();
-            closeReady = true;
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/RetryHttps.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/RetryHttps.java
index af7b908..c665af0 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/RetryHttps.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/RetryHttps.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -22,8 +22,12 @@
  */
 
 /* @test
- * @summary Https can not retry request
  * @bug 4799427
+ * @summary Https can not retry request
+ * @run main/othervm RetryHttps
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Yingxian Wang
  */
 
@@ -129,36 +133,41 @@ public class RetryHttps {
      * to avoid infinite hangs.
      */
     void doClientSide() throws Exception {
-
-        /*
-         * Wait for server to get started.
-         */
-        while (!serverReady) {
-            Thread.sleep(50);
-        }
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
         try {
-        HttpsURLConnection http = null;
-        /* establish http connection to server */
-        URL url = new URL("https://localhost:" + serverPort+"/file1");
-        System.out.println("url is "+url.toString());
-        HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier());
-        http = (HttpsURLConnection)url.openConnection();
-        int respCode = http.getResponseCode();
-        int cl = http.getContentLength();
-        InputStream is = http.getInputStream ();
-        int count = 0;
-        while (is.read() != -1 && count++ < cl);
-        System.out.println("respCode1 = "+respCode);
-        Thread.sleep(2000);
-        url = new URL("https://localhost:" + serverPort+"/file2");
-        http = (HttpsURLConnection)url.openConnection();
-        respCode = http.getResponseCode();
-        System.out.println("respCode2 = "+respCode);
-
-        } catch (IOException ioex) {
-            if (sslServerSocket != null)
-                sslServerSocket.close();
-            throw ioex;
+            /*
+             * Wait for server to get started.
+             */
+            while (!serverReady) {
+                Thread.sleep(50);
+            }
+            try {
+                HttpsURLConnection http = null;
+                /* establish http connection to server */
+                URL url = new URL("https://localhost:" + serverPort+"/file1");
+                System.out.println("url is "+url.toString());
+                HttpsURLConnection.setDefaultHostnameVerifier(
+                                                        new NameVerifier());
+                http = (HttpsURLConnection)url.openConnection();
+                int respCode = http.getResponseCode();
+                int cl = http.getContentLength();
+                InputStream is = http.getInputStream ();
+                int count = 0;
+                while (is.read() != -1 && count++ < cl);
+                System.out.println("respCode1 = "+respCode);
+                Thread.sleep(2000);
+                url = new URL("https://localhost:" + serverPort+"/file2");
+                http = (HttpsURLConnection)url.openConnection();
+                respCode = http.getResponseCode();
+                System.out.println("respCode2 = "+respCode);
+            } catch (IOException ioex) {
+                if (sslServerSocket != null)
+                    sslServerSocket.close();
+                throw ioex;
+            }
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
         }
     }
 
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java
index 1a2fc3e..4149bd4 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,10 @@
  * @test
  * @bug 4474255
  * @summary Can no longer obtain a com.sun.net.ssl.HttpsURLConnection
+ * @run main/othervm ComHTTPSConnection
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
@@ -198,44 +202,50 @@ public class ComHTTPSConnection {
             Thread.sleep(50);
         }
 
-        System.setProperty("java.protocol.handler.pkgs",
-            "com.sun.net.ssl.internal.www.protocol");
-        HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier());
-
-        URL url = new URL("https://" + "localhost:" + serverPort +
-                                "/etc/hosts");
-        URLConnection urlc = url.openConnection();
-
-        if (!(urlc instanceof com.sun.net.ssl.HttpsURLConnection)) {
-            throw new Exception(
-                "URLConnection ! instanceof " +
-                "com.sun.net.ssl.HttpsURLConnection");
-        }
-
-        BufferedReader in = null;
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
         try {
-            in = new BufferedReader(new InputStreamReader(
-                               urlc.getInputStream()));
-            String inputLine;
-            System.out.print("Client reading... ");
-            while ((inputLine = in.readLine()) != null)
-                System.out.println(inputLine);
-
-            System.out.println("Cipher Suite: " +
-                ((HttpsURLConnection)urlc).getCipherSuite());
-            X509Certificate[] certs =
-                ((HttpsURLConnection)urlc).getServerCertificateChain();
-            for (int i = 0; i < certs.length; i++) {
-                System.out.println(certs[0]);
+            System.setProperty("java.protocol.handler.pkgs",
+                "com.sun.net.ssl.internal.www.protocol");
+            HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier());
+
+            URL url = new URL("https://" + "localhost:" + serverPort +
+                                    "/etc/hosts");
+            URLConnection urlc = url.openConnection();
+
+            if (!(urlc instanceof com.sun.net.ssl.HttpsURLConnection)) {
+                throw new Exception(
+                    "URLConnection ! instanceof " +
+                    "com.sun.net.ssl.HttpsURLConnection");
             }
 
-            in.close();
-        } catch (SSLException e) {
-            if (in != null)
+            BufferedReader in = null;
+            try {
+                in = new BufferedReader(new InputStreamReader(
+                                   urlc.getInputStream()));
+                String inputLine;
+                System.out.print("Client reading... ");
+                while ((inputLine = in.readLine()) != null)
+                    System.out.println(inputLine);
+
+                System.out.println("Cipher Suite: " +
+                    ((HttpsURLConnection)urlc).getCipherSuite());
+                X509Certificate[] certs =
+                    ((HttpsURLConnection)urlc).getServerCertificateChain();
+                for (int i = 0; i < certs.length; i++) {
+                    System.out.println(certs[0]);
+                }
+
                 in.close();
-            throw e;
+            } catch (SSLException e) {
+                if (in != null)
+                    in.close();
+                throw e;
+            }
+            System.out.println("Client reports:  SUCCESS");
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
         }
-        System.out.println("Client reports:  SUCCESS");
     }
 
     static class NameVerifier implements HostnameVerifier {
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java
index 2122bd2..f0d7bac 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java
@@ -28,6 +28,10 @@
  * @bug 4484246
  * @summary When an application enables anonymous SSL cipher suite,
  *        Hostname verification is not required
+ * @run main/othervm ComHostnameVerifier
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHTTPSConnection.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHTTPSConnection.java
index a547943..06b0162 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHTTPSConnection.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHTTPSConnection.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,10 @@
  * @test
  * @bug 4474255
  * @summary Can no longer obtain a com.sun.net.ssl.HttpsURLConnection
+ * @run main/othervm JavaxHTTPSConnection
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
@@ -189,47 +193,53 @@ public class JavaxHTTPSConnection {
      * to avoid infinite hangs.
      */
     void doClientSide() throws Exception {
-        /*
-         * Wait for server to get started.
-         */
-        while (!serverReady) {
-            Thread.sleep(50);
-        }
+        HostnameVerifier reservedHV =
+            HttpsURLConnection.getDefaultHostnameVerifier();
+        try {
+            /*
+             * Wait for server to get started.
+             */
+            while (!serverReady) {
+                Thread.sleep(50);
+            }
 
-        HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier());
-        URL url = new URL("https://" + "localhost:" + serverPort +
-                                "/etc/hosts");
-        URLConnection urlc = url.openConnection();
+            HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier());
+            URL url = new URL("https://" + "localhost:" + serverPort +
+                                    "/etc/hosts");
+            URLConnection urlc = url.openConnection();
 
-        if (!(urlc instanceof javax.net.ssl.HttpsURLConnection)) {
-            throw new Exception(
-                "URLConnection ! instanceof javax.net.ssl.HttpsURLConnection");
-        }
-
-        BufferedReader in = null;
-        try {
-            in = new BufferedReader(new InputStreamReader(
-                               urlc.getInputStream()));
-            String inputLine;
-            System.out.print("Client reading... ");
-            while ((inputLine = in.readLine()) != null)
-                System.out.println(inputLine);
-
-            System.out.println("Cipher Suite: " +
-                ((HttpsURLConnection)urlc).getCipherSuite());
-            Certificate[] certs =
-                ((HttpsURLConnection)urlc).getServerCertificates();
-            for (int i = 0; i < certs.length; i++) {
-                System.out.println(certs[0]);
+            if (!(urlc instanceof javax.net.ssl.HttpsURLConnection)) {
+                throw new Exception("URLConnection ! instanceof " +
+                                    "javax.net.ssl.HttpsURLConnection");
             }
 
-            in.close();
-        } catch (SSLException e) {
-            if (in != null)
+            BufferedReader in = null;
+            try {
+                in = new BufferedReader(new InputStreamReader(
+                                   urlc.getInputStream()));
+                String inputLine;
+                System.out.print("Client reading... ");
+                while ((inputLine = in.readLine()) != null)
+                    System.out.println(inputLine);
+
+                System.out.println("Cipher Suite: " +
+                    ((HttpsURLConnection)urlc).getCipherSuite());
+                Certificate[] certs =
+                    ((HttpsURLConnection)urlc).getServerCertificates();
+                for (int i = 0; i < certs.length; i++) {
+                    System.out.println(certs[0]);
+                }
+
                 in.close();
-            throw e;
+            } catch (SSLException e) {
+                if (in != null)
+                    in.close();
+                throw e;
+            }
+            System.out.println("Client reports:  SUCCESS");
+        } finally {
+            HttpsURLConnection.setDefaultHostnameVerifier(reservedHV);
         }
-        System.out.println("Client reports:  SUCCESS");
     }
 
     static class NameVerifier implements HostnameVerifier {
diff --git a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java
index 343bfbe..ac9b804 100644
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java
@@ -28,6 +28,10 @@
  * @bug 4484246
  * @summary When an application enables anonymous SSL cipher suite,
  *        Hostname verification is not required
+ * @run main/othervm JavaxHostnameVerifier
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 import java.io.*;
diff --git a/jdk/test/sun/security/ssl/templates/SSLEngineTemplate.java b/jdk/test/sun/security/ssl/templates/SSLEngineTemplate.java
index 57ced15..e5056c9 100644
--- a/jdk/test/sun/security/ssl/templates/SSLEngineTemplate.java
+++ b/jdk/test/sun/security/ssl/templates/SSLEngineTemplate.java
@@ -25,7 +25,10 @@
  * @test
  * @bug 1234567
  * @summary SSLEngine has not yet caused Solaris kernel to panic
+ * @run main/othervm SSLEngineTemplate
  *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  */
 
 /**
diff --git a/jdk/test/sun/security/ssl/templates/SSLSocketTemplate.java b/jdk/test/sun/security/ssl/templates/SSLSocketTemplate.java
index 743c991..244b804 100644
--- a/jdk/test/sun/security/ssl/templates/SSLSocketTemplate.java
+++ b/jdk/test/sun/security/ssl/templates/SSLSocketTemplate.java
@@ -25,6 +25,10 @@
  * @test
  * @bug 1234567
  * @summary Use this template to help speed your client/server tests.
+ * @run main/othervm SSLSocketTemplate
+ *
+ *     SunJSSE does not support dynamic system properties, no way to re-use
+ *     system properties in samevm/agentvm mode.
  * @author Brad Wetmore
  */
 
diff --git a/jdk/test/sun/security/tools/jarsigner/AlgOptions.sh b/jdk/test/sun/security/tools/jarsigner/AlgOptions.sh
index 61f88ac..ade1777 100644
--- a/jdk/test/sun/security/tools/jarsigner/AlgOptions.sh
+++ b/jdk/test/sun/security/tools/jarsigner/AlgOptions.sh
@@ -51,21 +51,18 @@ case "$OS" in
     PS=":"
     FS="/"
     CP="${FS}bin${FS}cp -f"
-    TMP=/tmp
     ;;
   CYGWIN* )
     NULL=/dev/null
     PS=";"
     FS="/"
     CP="cp -f"
-    TMP=/tmp
     ;;
   Windows_* )
     NULL=NUL
     PS=";"
     FS="\\"
     CP="cp -f"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized operating system!"
diff --git a/jdk/test/sun/security/tools/jarsigner/PercentSign.sh b/jdk/test/sun/security/tools/jarsigner/PercentSign.sh
index 1c2f8e6..550801a 100644
--- a/jdk/test/sun/security/tools/jarsigner/PercentSign.sh
+++ b/jdk/test/sun/security/tools/jarsigner/PercentSign.sh
@@ -51,21 +51,18 @@ case "$OS" in
     PS=":"
     FS="/"
     CP="${FS}bin${FS}cp -f"
-    TMP=/tmp
     ;;
   CYGWIN* )
     NULL=/dev/null
     PS=";"
     FS="/"
     CP="cp -f"
-    TMP=/tmp
     ;;
   Windows_* )
     NULL=NUL
     PS=";"
     FS="\\"
     CP="cp -f"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized operating system!"
diff --git a/jdk/test/sun/security/tools/jarsigner/concise_jarsigner.sh b/jdk/test/sun/security/tools/jarsigner/concise_jarsigner.sh
index 5edce57..298a0a7 100644
--- a/jdk/test/sun/security/tools/jarsigner/concise_jarsigner.sh
+++ b/jdk/test/sun/security/tools/jarsigner/concise_jarsigner.sh
@@ -44,7 +44,10 @@ case "$OS" in
     ;;
 esac
 
-KT="$TESTJAVA${FS}bin${FS}keytool -storepass changeit -keypass changeit -keystore js.jks"
+# Choose 512-bit RSA to make sure it runs fine and fast on all platforms. In fact,
+# every keyalg/keysize combination is OK for this test.
+
+KT="$TESTJAVA${FS}bin${FS}keytool -storepass changeit -keypass changeit -keystore js.jks -keyalg rsa -keysize 512"
 JAR=$TESTJAVA${FS}bin${FS}jar
 JARSIGNER=$TESTJAVA${FS}bin${FS}jarsigner
 JAVAC=$TESTJAVA${FS}bin${FS}javac
diff --git a/jdk/test/sun/security/tools/jarsigner/diffend.sh b/jdk/test/sun/security/tools/jarsigner/diffend.sh
index 75c9c88..26a228e 100644
--- a/jdk/test/sun/security/tools/jarsigner/diffend.sh
+++ b/jdk/test/sun/security/tools/jarsigner/diffend.sh
@@ -46,21 +46,18 @@ case "$OS" in
     PS=":"
     FS="/"
     CP="${FS}bin${FS}cp -f"
-    TMP=/tmp
     ;;
   CYGWIN* )
     NULL=/dev/null
     PS=";"
     FS="/"
     CP="cp -f"
-    TMP=/tmp
     ;;
   Windows_* )
     NULL=NUL
     PS=";"
     FS="\\"
     CP="cp -f"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized operating system!"
diff --git a/jdk/test/sun/security/tools/jarsigner/oldsig.sh b/jdk/test/sun/security/tools/jarsigner/oldsig.sh
index bbdf541..6bab6c9 100644
--- a/jdk/test/sun/security/tools/jarsigner/oldsig.sh
+++ b/jdk/test/sun/security/tools/jarsigner/oldsig.sh
@@ -47,21 +47,18 @@ case "$OS" in
     PS=":"
     FS="/"
     CP="${FS}bin${FS}cp -f"
-    TMP=/tmp
     ;;
   CYGWIN* )
     NULL=/dev/null
     PS=";"
     FS="/"
     CP="cp -f"
-    TMP=/tmp
     ;;
   Windows_* )
     NULL=NUL
     PS=";"
     FS="\\"
     CP="cp -f"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized operating system!"
diff --git a/jdk/test/sun/security/tools/keytool/AltProviderPath.sh b/jdk/test/sun/security/tools/keytool/AltProviderPath.sh
index 9786cff..f18c3fa 100644
--- a/jdk/test/sun/security/tools/keytool/AltProviderPath.sh
+++ b/jdk/test/sun/security/tools/keytool/AltProviderPath.sh
@@ -50,19 +50,16 @@ case "$OS" in
     NULL=/dev/null
     PS=":"
     FS="/"
-    TMP=/tmp
     ;;
   CYGWIN* )
     NULL=/dev/null
     PS=";"
     FS="/"
-    TMP=/tmp
     ;;
   Windows_* )
     NULL=NUL
     PS=";"
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized operating system!"
diff --git a/jdk/test/sun/security/tools/keytool/SecretKeyKS.sh b/jdk/test/sun/security/tools/keytool/SecretKeyKS.sh
index 5f0d9e8..fc752ba 100644
--- a/jdk/test/sun/security/tools/keytool/SecretKeyKS.sh
+++ b/jdk/test/sun/security/tools/keytool/SecretKeyKS.sh
@@ -49,19 +49,16 @@ case "$OS" in
     NULL=/dev/null
     PS=":"
     FS="/"
-    TMP=/tmp
     ;;
   CYGWIN* )
     NULL=/dev/null
     PS=";"
     FS="/"
-    TMP=/tmp
     ;;
   Windows_* )
     NULL=NUL
     PS=";"
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized operating system!"
diff --git a/jdk/test/sun/security/tools/keytool/StandardAlgName.sh b/jdk/test/sun/security/tools/keytool/StandardAlgName.sh
index 86574e3..bea5f9a 100644
--- a/jdk/test/sun/security/tools/keytool/StandardAlgName.sh
+++ b/jdk/test/sun/security/tools/keytool/StandardAlgName.sh
@@ -50,19 +50,16 @@ case "$OS" in
     NULL=/dev/null
     PS=":"
     FS="/"
-    TMP=/tmp
     ;;
   CYGWIN* )
     NULL=/dev/null
     PS=";"
     FS="/"
-    TMP=/tmp
     ;;
   Windows_* )
     NULL=NUL
     PS=";"
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized operating system!"
diff --git a/jdk/test/sun/security/tools/keytool/StartDateTest.java b/jdk/test/sun/security/tools/keytool/StartDateTest.java
index d68561e..bb64480 100644
--- a/jdk/test/sun/security/tools/keytool/StartDateTest.java
+++ b/jdk/test/sun/security/tools/keytool/StartDateTest.java
@@ -132,7 +132,9 @@ public class StartDateTest {
 
     static Date getIssueDate() throws Exception {
         KeyStore ks = KeyStore.getInstance("jks");
-        ks.load(new FileInputStream("jks"), "changeit".toCharArray());
+        try (FileInputStream fis = new FileInputStream("jks")) {
+            ks.load(fis, "changeit".toCharArray());
+        }
         X509Certificate cert = (X509Certificate)ks.getCertificate("me");
         return cert.getNotBefore();
     }
diff --git a/jdk/test/sun/security/tools/keytool/i18n.sh b/jdk/test/sun/security/tools/keytool/i18n.sh
index 46d0c47..7561087 100644
--- a/jdk/test/sun/security/tools/keytool/i18n.sh
+++ b/jdk/test/sun/security/tools/keytool/i18n.sh
@@ -50,19 +50,16 @@ case "$OS" in
     NULL=/dev/null
     PS=":"
     FS="/"
-    TMP=/tmp
     ;;
   CYGWIN* )
     NULL=/dev/null
     PS=";"
     FS="/"
-    TMP=/tmp
     ;;
   Windows* )
     NULL=NUL
     PS=";"
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized system!"
diff --git a/jdk/test/sun/security/tools/keytool/resource.sh b/jdk/test/sun/security/tools/keytool/resource.sh
index 05ba97c..55de062 100644
--- a/jdk/test/sun/security/tools/keytool/resource.sh
+++ b/jdk/test/sun/security/tools/keytool/resource.sh
@@ -46,17 +46,14 @@ case "$OS" in
   SunOS | Linux )
     NULL=/dev/null
     FS="/"
-    TMP=/tmp
     ;;
   CYGWIN* )
     NULL=/dev/null
     FS="/"
-    TMP=/tmp
     ;;
   Windows_* )
     NULL=NUL
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized operating system!"
@@ -65,13 +62,11 @@ case "$OS" in
 esac
 
 # the test code
-${TESTJAVA}${FS}bin${FS}keytool > ${TMP}${FS}temp_file_40875602475 2> ${NULL}
-grep MissingResourceException ${TMP}${FS}temp_file_40875602475
+${TESTJAVA}${FS}bin${FS}keytool > temp_file_40875602475 2> ${NULL}
+grep MissingResourceException temp_file_40875602475
 
 if [ $? -eq 0 ]; then 
-    rm ${TMP}${FS}temp_file_40875602475
     exit 1
 fi
 
-rm ${TMP}${FS}temp_file_40875602475
 exit 0
diff --git a/jdk/test/sun/security/tools/keytool/trystore.sh b/jdk/test/sun/security/tools/keytool/trystore.sh
new file mode 100644
index 0000000..ffe4ebe
--- /dev/null
+++ b/jdk/test/sun/security/tools/keytool/trystore.sh
@@ -0,0 +1,65 @@
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# @test
+# @bug 7047200
+# @summary keytool can try save to a byte array before overwrite the file
+
+if [ "${TESTJAVA}" = "" ] ; then
+  JAVAC_CMD=`which javac`
+  TESTJAVA=`dirname $JAVAC_CMD`/..
+fi
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+  Windows_* )
+    FS="\\"
+    ;;
+  * )
+    FS="/"
+    ;;
+esac
+
+rm trystore.jks 2> /dev/null
+
+KEYTOOL="${TESTJAVA}${FS}bin${FS}keytool -storetype jks -keystore trystore.jks"
+$KEYTOOL -genkeypair -alias a -dname CN=A -storepass changeit -keypass changeit
+$KEYTOOL -genkeypair -alias b -dname CN=B -storepass changeit -keypass changeit
+
+# We use -protected for JKS keystore. This is illegal so the command should
+# fail. Then we can check if the keystore is damaged.
+
+$KEYTOOL -genkeypair -protected -alias b -delete -debug
+
+if [ $? = 0 ]; then
+    echo "What? -protected works for JKS?"
+    exit 1
+fi
+
+$KEYTOOL -list -storepass changeit
+
+if [ $? != 0 ]; then
+    echo "Keystore file damaged"
+    exit 2
+fi
diff --git a/jdk/test/sun/security/tools/policytool/Alias.sh b/jdk/test/sun/security/tools/policytool/Alias.sh
index 10f40ba..cbc0a68 100644
--- a/jdk/test/sun/security/tools/policytool/Alias.sh
+++ b/jdk/test/sun/security/tools/policytool/Alias.sh
@@ -51,13 +51,11 @@ case "$OS" in
     NULL=/dev/null
     PS=":"
     FS="/"
-    TMP=/tmp
     ;;
   Windows* )
     NULL=NUL
     PS=";"
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized system!"
diff --git a/jdk/test/sun/security/tools/policytool/ChangeUI.sh b/jdk/test/sun/security/tools/policytool/ChangeUI.sh
index 9b5e292..ce1eb0e 100644
--- a/jdk/test/sun/security/tools/policytool/ChangeUI.sh
+++ b/jdk/test/sun/security/tools/policytool/ChangeUI.sh
@@ -50,13 +50,11 @@ case "$OS" in
     NULL=/dev/null
     PS=":"
     FS="/"
-    TMP=/tmp
     ;;
   Windows* )
     NULL=NUL
     PS=";"
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized system!"
diff --git a/jdk/test/sun/security/tools/policytool/OpenPolicy.sh b/jdk/test/sun/security/tools/policytool/OpenPolicy.sh
index e8c9fe7..7a3016d 100644
--- a/jdk/test/sun/security/tools/policytool/OpenPolicy.sh
+++ b/jdk/test/sun/security/tools/policytool/OpenPolicy.sh
@@ -50,13 +50,11 @@ case "$OS" in
     NULL=/dev/null
     PS=":"
     FS="/"
-    TMP=/tmp
     ;;
   Windows* )
     NULL=NUL
     PS=";"
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized system!"
diff --git a/jdk/test/sun/security/tools/policytool/SaveAs.sh b/jdk/test/sun/security/tools/policytool/SaveAs.sh
index c06be08..3271571 100644
--- a/jdk/test/sun/security/tools/policytool/SaveAs.sh
+++ b/jdk/test/sun/security/tools/policytool/SaveAs.sh
@@ -51,13 +51,11 @@ case "$OS" in
     NULL=/dev/null
     PS=":"
     FS="/"
-    TMP=/tmp
     ;;
   Windows* )
     NULL=NUL
     PS=";"
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized system!"
diff --git a/jdk/test/sun/security/tools/policytool/UpdatePermissions.sh b/jdk/test/sun/security/tools/policytool/UpdatePermissions.sh
index 32d94ba..4e2f229 100644
--- a/jdk/test/sun/security/tools/policytool/UpdatePermissions.sh
+++ b/jdk/test/sun/security/tools/policytool/UpdatePermissions.sh
@@ -50,13 +50,11 @@ case "$OS" in
     NULL=/dev/null
     PS=":"
     FS="/"
-    TMP=/tmp
     ;;
   Windows* )
     NULL=NUL
     PS=";"
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized system!"
diff --git a/jdk/test/sun/security/tools/policytool/UsePolicy.sh b/jdk/test/sun/security/tools/policytool/UsePolicy.sh
index 74dec2e..4b94670 100644
--- a/jdk/test/sun/security/tools/policytool/UsePolicy.sh
+++ b/jdk/test/sun/security/tools/policytool/UsePolicy.sh
@@ -50,13 +50,11 @@ case "$OS" in
     NULL=/dev/null
     PS=":"
     FS="/"
-    TMP=/tmp
     ;;
   Windows* )
     NULL=NUL
     PS=";"
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized system!"
diff --git a/jdk/test/sun/security/tools/policytool/i18n.sh b/jdk/test/sun/security/tools/policytool/i18n.sh
index 1584239..7b5570f 100644
--- a/jdk/test/sun/security/tools/policytool/i18n.sh
+++ b/jdk/test/sun/security/tools/policytool/i18n.sh
@@ -50,13 +50,11 @@ case "$OS" in
     NULL=/dev/null
     PS=":"
     FS="/"
-    TMP=/tmp
     ;;
   Windows* )
     NULL=NUL
     PS=";"
     FS="\\"
-    TMP="c:/temp"
     ;;
   * )
     echo "Unrecognized system!"
diff --git a/jdk/test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java b/jdk/test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java
index 747d090..b1ce9b7 100644
--- a/jdk/test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java
+++ b/jdk/test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java
@@ -24,9 +24,12 @@
 /*
  * @test
  * @bug 4162868
+ * @run main/othervm ExtensibleAlgorithmId
  * @summary Algorithm Name-to-OID mapping needs to be made extensible.
  */
 
+// Run in othervm, coz AlgorithmId.oidTable is only initialized once
+
 import java.security.*;
 import sun.security.x509.AlgorithmId;
 
diff --git a/jdk/test/sun/text/resources/LocaleData b/jdk/test/sun/text/resources/LocaleData
index a3d7088..0096007 100644
--- a/jdk/test/sun/text/resources/LocaleData
+++ b/jdk/test/sun/text/resources/LocaleData
@@ -6953,3 +6953,56 @@ CurrencyNames/de/mxv=Mexican Unidad de Inversion (UDI)
 CurrencyNames/de/svc=El Salvador Colon
 
 CurrencyNames/it/bob=Boliviano
+
+# bug 7066203
+CurrencyNames//CUC=CUC
+CurrencyNames//TMT=TMT
+CurrencyNames//XSU=XSU
+CurrencyNames//XUA=XUA
+CurrencyNames//ZWL=ZWL
+CurrencyNames//ZWR=ZWR
+CurrencyNames//cuc=Cuban Convertible Peso
+CurrencyNames//tmt=Turkmenistani Manat
+CurrencyNames//zwl=Zimbabwean Dollar (2009)
+CurrencyNames//zwr=Zimbabwean Dollar (2008)
+
+CurrencyNames/de/cuc=Kubanischer Peso (konvertibel)
+CurrencyNames/de/tmt=Neuer Turkmenistan-Manat
+CurrencyNames/de/zwl=Simbabwe-Dollar (2009)
+
+CurrencyNames/es/cuc=peso cubano convertible
+CurrencyNames/es/tmt=nuevo manat turcomano
+CurrencyNames/es/zwl=d\u00f3lar zimbabuense
+
+CurrencyNames/es_CU/CUP=CU$
+CurrencyNames/es_CU/CUC=CUC$
+
+CurrencyNames/et_EE/eek=Eesti kroon
+CurrencyNames/et_EE/EUR=\u20ac
+CurrencyNames/et_EE/eur=euro
+
+CurrencyNames/fr/cuc=peso cubain convertible
+CurrencyNames/fr/tmt=nouveau manat turkm\u00e8ne
+
+CurrencyNames/ja/cuc=\u30ad\u30e5\u30fc\u30d0 \u514c\u63db\u30da\u30bd
+CurrencyNames/ja/tmt=\u30c8\u30eb\u30af\u30e1\u30cb\u30b9\u30bf\u30f3 \u65b0\u30de\u30ca\u30c8
+CurrencyNames/ja/zwl=\u30b8\u30f3\u30d0\u30d6\u30a8 \u30c9\u30eb (2009)
+
+CurrencyNames/ko/cuc=\ucfe0\ubc14 \ud0dc\ud658 \ud398\uc18c
+
+CurrencyNames/pt/bob=Boliviano
+CurrencyNames/pt/cuc=Peso cubano convers\u00edvel
+CurrencyNames/pt/tmt=Novo Manat do Turcomenist\u00e3o
+CurrencyNames/pt/zwl=D\u00f3lar do Zimb\u00e1bue (2009)
+CurrencyNames/pt/zwr=D\u00f3lar do Zimb\u00e1bue (2008)
+
+CurrencyNames/sk_SK/skk=Slovensk\u00e1 koruna
+CurrencyNames/sk_SK/EUR=\u20ac
+
+CurrencyNames/zh_CN/cuc=\u53e4\u5df4\u53ef\u5151\u6362\u6bd4\u7d22
+CurrencyNames/zh_CN/tmt=\u571f\u5e93\u66fc\u65af\u5766\u65b0\u9a6c\u7eb3\u7279
+CurrencyNames/zh_CN/zwl=\u6d25\u5df4\u5e03\u97e6\u5143 (2009)
+
+CurrencyNames/zh_TW/cuc=\u53e4\u5df4\u53ef\u8f49\u63db\u62ab\u7d22
+CurrencyNames/zh_TW/tmt=\u571f\u5eab\u66fc\u65b0\u99ac\u7d0d\u7279
+CurrencyNames/zh_TW/zwl=\u8f9b\u5df4\u5a01\u5143 (2009)
diff --git a/jdk/test/sun/text/resources/LocaleDataTest.java b/jdk/test/sun/text/resources/LocaleDataTest.java
index 6503794..6ec4236 100644
--- a/jdk/test/sun/text/resources/LocaleDataTest.java
+++ b/jdk/test/sun/text/resources/LocaleDataTest.java
@@ -33,7 +33,7 @@
  *      6379214 6485516 6486607 4225362 4494727 6533691 6531591 6531593 6570259
  *      6509039 6609737 6610748 6645271 6507067 6873931 6450945 6645268 6646611
  *      6645405 6650730 6910489 6573250 6870908 6585666 6716626 6914413 6916787
- *      6919624 6998391 7019267 7020960 7025837 7020583 7036905
+ *      6919624 6998391 7019267 7020960 7025837 7020583 7036905 7066203
  * @summary Verify locale data
  *
  */
diff --git a/jdk/test/sun/tools/common/ApplicationSetup.sh b/jdk/test/sun/tools/common/ApplicationSetup.sh
index a04989f..237a9bf 100644
--- a/jdk/test/sun/tools/common/ApplicationSetup.sh
+++ b/jdk/test/sun/tools/common/ApplicationSetup.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 #
-# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@ startApplication()
 {
   appOutput="${TESTCLASSES}/Application.out"
 
-  ${JAVA} -classpath "${TESTCLASSES}" "$@" > "$appOutput" 2>&1 &
+  ${JAVA} -XX:+UsePerfData -classpath "${TESTCLASSES}" "$@" > "$appOutput" 2>&1 &
   appJavaPid="$!"
   appOtherPid=
   appPidList="$appJavaPid"
@@ -131,7 +131,7 @@ startApplication()
 #
 stopApplication()
 {
-  $JAVA -classpath "${TESTCLASSES}" ShutdownSimpleApplication $1
+  $JAVA -XX:+UsePerfData -classpath "${TESTCLASSES}" ShutdownSimpleApplication $1
 }
 
 
diff --git a/jdk/test/sun/tools/jinfo/Basic.sh b/jdk/test/sun/tools/jinfo/Basic.sh
index 57f40af..9d5cb46 100644
--- a/jdk/test/sun/tools/jinfo/Basic.sh
+++ b/jdk/test/sun/tools/jinfo/Basic.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 #
-# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -46,39 +46,39 @@ failed=0
 
 if [ $isWindows = false ]; then
     # -sysprops option
-    ${JINFO} -sysprops $appJavaPid
+    ${JINFO} -J-XX:+UsePerfData -sysprops $appJavaPid
     if [ $? != 0 ]; then failed=1; fi
 
     # -flags option
-    ${JINFO} -flags $appJavaPid
+    ${JINFO} -J-XX:+UsePerfData -flags $appJavaPid
     if [ $? != 0 ]; then failed=1; fi
 
     # no option
-    ${JINFO} $appJavaPid
+    ${JINFO} -J-XX:+UsePerfData $appJavaPid
     if [ $? != 0 ]; then failed=1; fi
 
 fi
 
 
 # -flag option
-${JINFO} -flag +PrintGC $appJavaPid
+${JINFO} -J-XX:+UsePerfData -flag +PrintGC $appJavaPid
 if [ $? != 0 ]; then failed=1; fi 
 
-${JINFO} -flag -PrintGC $appJavaPid
+${JINFO} -J-XX:+UsePerfData -flag -PrintGC $appJavaPid
 if [ $? != 0 ]; then failed=1; fi
 
-${JINFO} -flag PrintGC $appJavaPid
+${JINFO} -J-XX:+UsePerfData -flag PrintGC $appJavaPid
 if [ $? != 0 ]; then failed=1; fi
 
 if $isSolaris; then
 
-    ${JINFO} -flag +ExtendedDTraceProbes $appJavaPid
+    ${JINFO} -J-XX:+UsePerfData -flag +ExtendedDTraceProbes $appJavaPid
     if [ $? != 0 ]; then failed=1; fi
 
-    ${JINFO} -flag -ExtendedDTraceProbes $appJavaPid
+    ${JINFO} -J-XX:+UsePerfData -flag -ExtendedDTraceProbes $appJavaPid
     if [ $? != 0 ]; then failed=1; fi
 
-    ${JINFO} -flag ExtendedDTraceProbes $appJavaPid
+    ${JINFO} -J-XX:+UsePerfData -flag ExtendedDTraceProbes $appJavaPid
     if [ $? != 0 ]; then failed=1; fi
 
 fi
diff --git a/jdk/test/sun/tools/jmap/Basic.sh b/jdk/test/sun/tools/jmap/Basic.sh
index f1c0b34..d34640c 100644
--- a/jdk/test/sun/tools/jmap/Basic.sh
+++ b/jdk/test/sun/tools/jmap/Basic.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 #
-# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -45,15 +45,15 @@ set +e
 failed=0
 
 # -histo[:live] option
-${JMAP} -histo $appJavaPid
+${JMAP} -J-XX:+UsePerfData -histo $appJavaPid
 if [ $? != 0 ]; then failed=1; fi
 
-${JMAP} -histo:live $appJavaPid
+${JMAP} -J-XX:+UsePerfData -histo:live $appJavaPid
 if [ $? != 0 ]; then failed=1; fi
 
 # -dump option
 DUMPFILE="java_pid${appJavaPid}.hprof"
-${JMAP} -dump:format=b,file=${DUMPFILE} $appJavaPid
+${JMAP} -J-XX:+UsePerfData -dump:format=b,file=${DUMPFILE} $appJavaPid
 if [ $? != 0 ]; then failed=1; fi
 
 # check that heap dump is parsable
@@ -64,7 +64,7 @@ if [ $? != 0 ]; then failed=1; fi
 rm ${DUMPFILE}
 
 # -dump:live option
-${JMAP} -dump:live,format=b,file=${DUMPFILE} $appJavaPid
+${JMAP} -J-XX:+UsePerfData -dump:live,format=b,file=${DUMPFILE} $appJavaPid
 if [ $? != 0 ]; then failed=1; fi
 
 # check that heap dump is parsable
diff --git a/jdk/test/sun/tools/jps/jps-Defaults.sh b/jdk/test/sun/tools/jps/jps-Defaults.sh
index 4e25845..a8cd1ad 100644
--- a/jdk/test/sun/tools/jps/jps-Defaults.sh
+++ b/jdk/test/sun/tools/jps/jps-Defaults.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JPS="${TESTJAVA}/bin/jps"
 
-${JPS} 2>&1 | awk -f ${TESTSRC}/jps_Output1.awk
+${JPS} -J-XX:+UsePerfData 2>&1 | awk -f ${TESTSRC}/jps_Output1.awk
diff --git a/jdk/test/sun/tools/jps/jps-V_2.sh b/jdk/test/sun/tools/jps/jps-V_2.sh
index 77e9132..fe0cc40 100644
--- a/jdk/test/sun/tools/jps/jps-V_2.sh
+++ b/jdk/test/sun/tools/jps/jps-V_2.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011,Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JPS="${TESTJAVA}/bin/jps"
 
-${JPS} -J-XX:Flags=${TESTSRC}/vmflags -V | awk -f ${TESTSRC}/jps-V_Output2.awk
+${JPS} -J-XX:+UsePerfData -J-XX:Flags=${TESTSRC}/vmflags -V | awk -f ${TESTSRC}/jps-V_Output2.awk
diff --git a/jdk/test/sun/tools/jps/jps-Vm_2.sh b/jdk/test/sun/tools/jps/jps-Vm_2.sh
index 2269078..ba9fa0f 100644
--- a/jdk/test/sun/tools/jps/jps-Vm_2.sh
+++ b/jdk/test/sun/tools/jps/jps-Vm_2.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JPS="${TESTJAVA}/bin/jps"
 
-${JPS} -J-XX:Flags=${TESTSRC}/vmflags -Vm | awk -f ${TESTSRC}/jps-Vm_Output2.awk
+${JPS} -J-XX:+UsePerfData -J-XX:Flags=${TESTSRC}/vmflags -Vm | awk -f ${TESTSRC}/jps-Vm_Output2.awk
diff --git a/jdk/test/sun/tools/jps/jps-Vvm.sh b/jdk/test/sun/tools/jps/jps-Vvm.sh
index 072362e..d60896a 100644
--- a/jdk/test/sun/tools/jps/jps-Vvm.sh
+++ b/jdk/test/sun/tools/jps/jps-Vvm.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JPS="${TESTJAVA}/bin/jps"
 
-${JPS} -J-XX:Flags=${TESTSRC}/vmflags -Vvm | awk -f ${TESTSRC}/jps-Vvm_Output1.awk
+${JPS} -J-XX:+UsePerfData -J-XX:Flags=${TESTSRC}/vmflags -Vvm | awk -f ${TESTSRC}/jps-Vvm_Output1.awk
diff --git a/jdk/test/sun/tools/jps/jps-Vvml.sh b/jdk/test/sun/tools/jps/jps-Vvml.sh
index d9d761e..f8d5fa3d 100644
--- a/jdk/test/sun/tools/jps/jps-Vvml.sh
+++ b/jdk/test/sun/tools/jps/jps-Vvml.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JPS="${TESTJAVA}/bin/jps"
 
-${JPS} -J-XX:Flags=${TESTSRC}/vmflags -Vvml | awk -f ${TESTSRC}/jps-Vvml_Output1.awk
+${JPS} -J-XX:+UsePerfData -J-XX:Flags=${TESTSRC}/vmflags -Vvml | awk -f ${TESTSRC}/jps-Vvml_Output1.awk
diff --git a/jdk/test/sun/tools/jps/jps-Vvml_2.sh b/jdk/test/sun/tools/jps/jps-Vvml_2.sh
index 08fa41d..c6f55ed 100644
--- a/jdk/test/sun/tools/jps/jps-Vvml_2.sh
+++ b/jdk/test/sun/tools/jps/jps-Vvml_2.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,10 @@ JAVA="${TESTJAVA}/bin/java"
 # any args to Sleeper.main() or any jvm flags or options, as we
 # need to inspect jps output for the no args condition.
 #
+# Note: this test can not pass on a VM with UsePerfData disabled by default,
+# and we can not set -XX:+UsePerfData as that invalidates the test premise of
+# there being no jvm flags
+
 ${JAVA} -cp ${TESTCLASSES} Sleeper &
 SLEEPER_PID=$!
 
diff --git a/jdk/test/sun/tools/jps/jps-help.sh b/jdk/test/sun/tools/jps/jps-help.sh
index 4cec370..c6c1cbd 100644
--- a/jdk/test/sun/tools/jps/jps-help.sh
+++ b/jdk/test/sun/tools/jps/jps-help.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,7 +33,7 @@ setup
 JPS="${TESTJAVA}/bin/jps"
 
 rm -f jps.out 2>/dev/null
-${JPS} -? > jps.out 2>&1
+${JPS} -J-XX:+UsePerfData -? > jps.out 2>&1
 
 diff -w jps.out ${TESTSRC}/usage.out
 if [ $? != 0 ]
@@ -44,7 +44,7 @@ then
 fi
 
 rm -f jps.out 2>/dev/null
-${JPS} -help > jps.out 2>&1
+${JPS} -J-XX:+UsePerfData -help > jps.out 2>&1
 
 diff -w jps.out ${TESTSRC}/usage.out
 if [ $? != 0 ]
diff --git a/jdk/test/sun/tools/jps/jps-l_1.sh b/jdk/test/sun/tools/jps/jps-l_1.sh
index 5973a56..4cb65ea 100644
--- a/jdk/test/sun/tools/jps/jps-l_1.sh
+++ b/jdk/test/sun/tools/jps/jps-l_1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JPS="${TESTJAVA}/bin/jps"
 
-${JPS} -l 2>&1 | awk -f ${TESTSRC}/jps-l_Output1.awk
+${JPS} -J-XX:+UsePerfData -l 2>&1 | awk -f ${TESTSRC}/jps-l_Output1.awk
diff --git a/jdk/test/sun/tools/jps/jps-l_2.sh b/jdk/test/sun/tools/jps/jps-l_2.sh
index 46b562c..95784db 100644
--- a/jdk/test/sun/tools/jps/jps-l_2.sh
+++ b/jdk/test/sun/tools/jps/jps-l_2.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JPS="${TESTJAVA}/bin/jps"
 
-${JPS} -l | awk -f ${TESTSRC}/jps-l_Output2.awk
+${JPS} -J-XX:+UsePerfData -l | awk -f ${TESTSRC}/jps-l_Output2.awk
diff --git a/jdk/test/sun/tools/jps/jps-lm.sh b/jdk/test/sun/tools/jps/jps-lm.sh
index d6ca941..4a45512 100644
--- a/jdk/test/sun/tools/jps/jps-lm.sh
+++ b/jdk/test/sun/tools/jps/jps-lm.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JPS="${TESTJAVA}/bin/jps"
 
-${JPS} -lm | awk -f ${TESTSRC}/jps-lm_Output1.awk
+${JPS} -J-XX:+UsePerfData -lm | awk -f ${TESTSRC}/jps-lm_Output1.awk
diff --git a/jdk/test/sun/tools/jps/jps-m.sh b/jdk/test/sun/tools/jps/jps-m.sh
index 27ea9e8..f900b9f 100644
--- a/jdk/test/sun/tools/jps/jps-m.sh
+++ b/jdk/test/sun/tools/jps/jps-m.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JPS="${TESTJAVA}/bin/jps"
 
-${JPS} -m | awk -f ${TESTSRC}/jps-m_Output1.awk
+${JPS} -J-XX:+UsePerfData -m | awk -f ${TESTSRC}/jps-m_Output1.awk
diff --git a/jdk/test/sun/tools/jps/jps-m_2.sh b/jdk/test/sun/tools/jps/jps-m_2.sh
index cbea387..203ded8 100644
--- a/jdk/test/sun/tools/jps/jps-m_2.sh
+++ b/jdk/test/sun/tools/jps/jps-m_2.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -46,10 +46,10 @@ JAVA="${TESTJAVA}/bin/java"
 # any args to Sleeper.main(), as we need to inspect jps output
 # for the no args condition.
 #
-${JAVA} -cp ${TESTCLASSES} Sleeper &
+${JAVA} -XX:+UsePerfData -cp ${TESTCLASSES} Sleeper &
 SLEEPER_PID=$!
 
-${JPS} -m | awk -f ${TESTSRC}/jps-m_Output2.awk
+${JPS} -J-XX:+UsePerfData -m | awk -f ${TESTSRC}/jps-m_Output2.awk
 RC=$?
 
 cleanup
diff --git a/jdk/test/sun/tools/jps/jps-q.sh b/jdk/test/sun/tools/jps/jps-q.sh
index 7d2cc31..cd6a4ac 100644
--- a/jdk/test/sun/tools/jps/jps-q.sh
+++ b/jdk/test/sun/tools/jps/jps-q.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JPS="${TESTJAVA}/bin/jps"
 
-${JPS} -q | awk -f ${TESTSRC}/jps-q_Output1.awk
+${JPS} -J-XX:+UsePerfData -q | awk -f ${TESTSRC}/jps-q_Output1.awk
diff --git a/jdk/test/sun/tools/jps/jps-v_1.sh b/jdk/test/sun/tools/jps/jps-v_1.sh
index 9a8ebdd..21d0852 100644
--- a/jdk/test/sun/tools/jps/jps-v_1.sh
+++ b/jdk/test/sun/tools/jps/jps-v_1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JPS="${TESTJAVA}/bin/jps"
 
-${JPS} -J-XX:+UseParallelGC -v | awk -f ${TESTSRC}/jps-v_Output1.awk
+${JPS} -J-XX:+UsePerfData -J-XX:+UseParallelGC -v | awk -f ${TESTSRC}/jps-v_Output1.awk
diff --git a/jdk/test/sun/tools/jps/jps-vm_1.sh b/jdk/test/sun/tools/jps/jps-vm_1.sh
index 48550ed..80bb62e 100644
--- a/jdk/test/sun/tools/jps/jps-vm_1.sh
+++ b/jdk/test/sun/tools/jps/jps-vm_1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JPS="${TESTJAVA}/bin/jps"
 
-${JPS} -J-XX:+UseParallelGC -vm | awk -f ${TESTSRC}/jps-vm_Output1.awk
+${JPS} -J-XX:+UsePerfData -J-XX:+UseParallelGC -vm | awk -f ${TESTSRC}/jps-vm_Output1.awk
diff --git a/jdk/test/sun/tools/jstack/Basic.sh b/jdk/test/sun/tools/jstack/Basic.sh
index 1a2b8eb..273af97 100644
--- a/jdk/test/sun/tools/jstack/Basic.sh
+++ b/jdk/test/sun/tools/jstack/Basic.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 #
-# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -45,11 +45,11 @@ set +e
 failed=0
 
 # normal
-$JSTACK $appJavaPid 2>&1
+$JSTACK -J-XX:+UsePerfData $appJavaPid 2>&1
 if [ $? != 0 ]; then failed=1; fi
 
 # long
-$JSTACK -l $appJavaPid 2>&1
+$JSTACK -J-XX:+UsePerfData -l $appJavaPid 2>&1
 if [ $? != 0 ]; then failed=1; fi
 
 set -e
diff --git a/jdk/test/sun/tools/jstat/jstatClassOutput1.sh b/jdk/test/sun/tools/jstat/jstatClassOutput1.sh
index c76e3c7..798a6f7 100644
--- a/jdk/test/sun/tools/jstat/jstatClassOutput1.sh
+++ b/jdk/test/sun/tools/jstat/jstatClassOutput1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -class 0 2>&1 | awk -f ${TESTSRC}/classOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -class 0 2>&1 | awk -f ${TESTSRC}/classOutput1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatClassloadOutput1.sh b/jdk/test/sun/tools/jstat/jstatClassloadOutput1.sh
index 42e5bf1..78f483c 100644
--- a/jdk/test/sun/tools/jstat/jstatClassloadOutput1.sh
+++ b/jdk/test/sun/tools/jstat/jstatClassloadOutput1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -classload -J-Djstat.showUnsupported=true 0 2>&1 | awk -f ${TESTSRC}/classloadOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -classload -J-Djstat.showUnsupported=true 0 2>&1 | awk -f ${TESTSRC}/classloadOutput1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatCompilerOutput1.sh b/jdk/test/sun/tools/jstat/jstatCompilerOutput1.sh
index 5bf2a27..61cf3a6 100644
--- a/jdk/test/sun/tools/jstat/jstatCompilerOutput1.sh
+++ b/jdk/test/sun/tools/jstat/jstatCompilerOutput1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -compiler 0 2>&1 | awk -f ${TESTSRC}/compilerOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -compiler 0 2>&1 | awk -f ${TESTSRC}/compilerOutput1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatFileURITest1.sh b/jdk/test/sun/tools/jstat/jstatFileURITest1.sh
index a73ff0b..3687adb 100644
--- a/jdk/test/sun/tools/jstat/jstatFileURITest1.sh
+++ b/jdk/test/sun/tools/jstat/jstatFileURITest1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -40,12 +40,12 @@ Windows*)
     # characters into forward slash characters in an effort to convert
     # TESTSRC into a canonical form useable as URI path.
     cp ${TESTSRC}/hsperfdata_3433 .
-    ${JSTAT} -gcutil file:/`pwd`/hsperfdata_3433 2>&1 | awk -f ${TESTSRC}/fileURITest1.awk
+    ${JSTAT} -J-XX:+UsePerfData -gcutil file:/`pwd`/hsperfdata_3433 2>&1 | awk -f ${TESTSRC}/fileURITest1.awk
     RC=$?
     rm -f hsperfdata_3433 2>&1 > /dev/null
     ;;
 *)
-    ${JSTAT} -gcutil file:${TESTSRC}/hsperfdata_3433 2>&1 | awk -f ${TESTSRC}/fileURITest1.awk
+    ${JSTAT} -J-XX:+UsePerfData -gcutil file:${TESTSRC}/hsperfdata_3433 2>&1 | awk -f ${TESTSRC}/fileURITest1.awk
     RC=$?
     ;;
 esac
diff --git a/jdk/test/sun/tools/jstat/jstatGcCapacityOutput1.sh b/jdk/test/sun/tools/jstat/jstatGcCapacityOutput1.sh
index 44fe152..bc8b10a 100644
--- a/jdk/test/sun/tools/jstat/jstatGcCapacityOutput1.sh
+++ b/jdk/test/sun/tools/jstat/jstatGcCapacityOutput1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -gccapacity 0 2>&1 | awk -f ${TESTSRC}/gcCapacityOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -gccapacity 0 2>&1 | awk -f ${TESTSRC}/gcCapacityOutput1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatGcCauseOutput1.sh b/jdk/test/sun/tools/jstat/jstatGcCauseOutput1.sh
index b366a01..e0c0211 100644
--- a/jdk/test/sun/tools/jstat/jstatGcCauseOutput1.sh
+++ b/jdk/test/sun/tools/jstat/jstatGcCauseOutput1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -37,4 +37,4 @@ JSTAT="${TESTJAVA}/bin/jstat"
 # class machine, ergonomics will automatically use UseParallelGC.
 # The UseParallelGC collector does not currently update the gc cause counters.
 
-${JSTAT} -J-XX:+UseSerialGC -gccause 0 2>&1 | awk -f ${TESTSRC}/gcCauseOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-XX:+UseSerialGC -gccause 0 2>&1 | awk -f ${TESTSRC}/gcCauseOutput1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatGcNewCapacityOutput1.sh b/jdk/test/sun/tools/jstat/jstatGcNewCapacityOutput1.sh
index e123ded..59ffd97 100644
--- a/jdk/test/sun/tools/jstat/jstatGcNewCapacityOutput1.sh
+++ b/jdk/test/sun/tools/jstat/jstatGcNewCapacityOutput1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -gcnewcapacity 0 2>&1 | awk -f ${TESTSRC}/gcNewCapacityOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -gcnewcapacity 0 2>&1 | awk -f ${TESTSRC}/gcNewCapacityOutput1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatGcNewOutput1.sh b/jdk/test/sun/tools/jstat/jstatGcNewOutput1.sh
index 8481649..50aef07 100644
--- a/jdk/test/sun/tools/jstat/jstatGcNewOutput1.sh
+++ b/jdk/test/sun/tools/jstat/jstatGcNewOutput1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -gcnew 0 2>&1 | awk -f ${TESTSRC}/gcNewOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -gcnew 0 2>&1 | awk -f ${TESTSRC}/gcNewOutput1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatGcOldCapacityOutput1.sh b/jdk/test/sun/tools/jstat/jstatGcOldCapacityOutput1.sh
index 76ac773..b77737b 100644
--- a/jdk/test/sun/tools/jstat/jstatGcOldCapacityOutput1.sh
+++ b/jdk/test/sun/tools/jstat/jstatGcOldCapacityOutput1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -gcoldcapacity 0 2>&1 | awk -f ${TESTSRC}/gcOldCapacityOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -gcoldcapacity 0 2>&1 | awk -f ${TESTSRC}/gcOldCapacityOutput1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatGcOldOutput1.sh b/jdk/test/sun/tools/jstat/jstatGcOldOutput1.sh
index 96ddf30..68019be 100644
--- a/jdk/test/sun/tools/jstat/jstatGcOldOutput1.sh
+++ b/jdk/test/sun/tools/jstat/jstatGcOldOutput1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -gcold 0 2>&1 | awk -f ${TESTSRC}/gcOldOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -gcold 0 2>&1 | awk -f ${TESTSRC}/gcOldOutput1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatGcOutput1.sh b/jdk/test/sun/tools/jstat/jstatGcOutput1.sh
index 55b0757..7b338bc 100644
--- a/jdk/test/sun/tools/jstat/jstatGcOutput1.sh
+++ b/jdk/test/sun/tools/jstat/jstatGcOutput1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -gc 0 2>&1 | awk -f ${TESTSRC}/gcOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -gc 0 2>&1 | awk -f ${TESTSRC}/gcOutput1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatGcPermCapacityOutput1.sh b/jdk/test/sun/tools/jstat/jstatGcPermCapacityOutput1.sh
index 68f820b..3f4f55a 100644
--- a/jdk/test/sun/tools/jstat/jstatGcPermCapacityOutput1.sh
+++ b/jdk/test/sun/tools/jstat/jstatGcPermCapacityOutput1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -gcpermcapacity 0 2>&1 | awk -f ${TESTSRC}/gcPermCapacityOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -gcpermcapacity 0 2>&1 | awk -f ${TESTSRC}/gcPermCapacityOutput1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatHelp.sh b/jdk/test/sun/tools/jstat/jstatHelp.sh
index e0c4290..3dac1ae 100644
--- a/jdk/test/sun/tools/jstat/jstatHelp.sh
+++ b/jdk/test/sun/tools/jstat/jstatHelp.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,7 +33,7 @@ setup
 JSTAT="${TESTJAVA}/bin/jstat"
 
 rm -f jstat.out 2>/dev/null
-${JSTAT} -? > jstat.out 2>&1
+${JSTAT} -J-XX:+UsePerfData -? > jstat.out 2>&1
 
 diff -w jstat.out ${TESTSRC}/usage.out
 if [ $? != 0 ]
@@ -43,7 +43,7 @@ then
 fi
 
 rm -f jstat.out 2>/dev/null
-${JSTAT} -help > jstat.out 2>&1
+${JSTAT} -J-XX:+UsePerfData -help > jstat.out 2>&1
 
 diff -w jstat.out ${TESTSRC}/usage.out
 if [ $? != 0 ]
diff --git a/jdk/test/sun/tools/jstat/jstatLineCounts1.sh b/jdk/test/sun/tools/jstat/jstatLineCounts1.sh
index e20e7fc..59c4d5d 100644
--- a/jdk/test/sun/tools/jstat/jstatLineCounts1.sh
+++ b/jdk/test/sun/tools/jstat/jstatLineCounts1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -gcutil 0 250 5 2>&1 | awk -f ${TESTSRC}/lineCounts1.awk
+${JSTAT} -J-XX:+UsePerfData -gcutil 0 250 5 2>&1 | awk -f ${TESTSRC}/lineCounts1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatLineCounts2.sh b/jdk/test/sun/tools/jstat/jstatLineCounts2.sh
index 92ff214..0c8b043 100644
--- a/jdk/test/sun/tools/jstat/jstatLineCounts2.sh
+++ b/jdk/test/sun/tools/jstat/jstatLineCounts2.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -gcutil 0 2>&1 | awk -f ${TESTSRC}/lineCounts2.awk
+${JSTAT} -J-XX:+UsePerfData -gcutil 0 2>&1 | awk -f ${TESTSRC}/lineCounts2.awk
diff --git a/jdk/test/sun/tools/jstat/jstatLineCounts3.sh b/jdk/test/sun/tools/jstat/jstatLineCounts3.sh
index 206ce36..b31139c 100644
--- a/jdk/test/sun/tools/jstat/jstatLineCounts3.sh
+++ b/jdk/test/sun/tools/jstat/jstatLineCounts3.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -gcutil -h 10 0 250 10 2>&1 | awk -f ${TESTSRC}/lineCounts3.awk
+${JSTAT} -J-XX:+UsePerfData -gcutil -h 10 0 250 10 2>&1 | awk -f ${TESTSRC}/lineCounts3.awk
diff --git a/jdk/test/sun/tools/jstat/jstatLineCounts4.sh b/jdk/test/sun/tools/jstat/jstatLineCounts4.sh
index 494fcf5..772ccaa 100644
--- a/jdk/test/sun/tools/jstat/jstatLineCounts4.sh
+++ b/jdk/test/sun/tools/jstat/jstatLineCounts4.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -gcutil -h 10 0 250 11 2>&1 | awk -f ${TESTSRC}/lineCounts4.awk
+${JSTAT} -J-XX:+UsePerfData -gcutil -h 10 0 250 11 2>&1 | awk -f ${TESTSRC}/lineCounts4.awk
diff --git a/jdk/test/sun/tools/jstat/jstatOptions1.sh b/jdk/test/sun/tools/jstat/jstatOptions1.sh
index 1baa023..c318998 100644
--- a/jdk/test/sun/tools/jstat/jstatOptions1.sh
+++ b/jdk/test/sun/tools/jstat/jstatOptions1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,8 @@ setup
 JSTAT="${TESTJAVA}/bin/jstat"
 
 rm -f jstat.out1 jstat.out2 2>/dev/null
-${JSTAT} -options > jstat.out1 2>&1
-${JSTAT} -options -J-Djstat.showUnsupported=true > jstat.out2 2>&1
+${JSTAT} -J-XX:+UsePerfData -options > jstat.out1 2>&1
+${JSTAT} -J-XX:+UsePerfData -options -J-Djstat.showUnsupported=true > jstat.out2 2>&1
 
 diff -w jstat.out1 ${TESTSRC}/options1.out
 diff -w jstat.out2 ${TESTSRC}/options2.out
diff --git a/jdk/test/sun/tools/jstat/jstatPrintCompilationOutput1.sh b/jdk/test/sun/tools/jstat/jstatPrintCompilationOutput1.sh
index 38e813a..2b763f6 100644
--- a/jdk/test/sun/tools/jstat/jstatPrintCompilationOutput1.sh
+++ b/jdk/test/sun/tools/jstat/jstatPrintCompilationOutput1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -35,4 +35,4 @@ JSTAT="${TESTJAVA}/bin/jstat"
 
 # run with -Xcomp as jstat may complete too quickly to assure
 # that compilation occurs.
-${JSTAT} -J-Xcomp -printcompilation 0 2>&1 | awk -f ${TESTSRC}/printCompilationOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Xcomp -printcompilation 0 2>&1 | awk -f ${TESTSRC}/printCompilationOutput1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatSnap1.sh b/jdk/test/sun/tools/jstat/jstatSnap1.sh
index c03f552..c35abd4 100644
--- a/jdk/test/sun/tools/jstat/jstatSnap1.sh
+++ b/jdk/test/sun/tools/jstat/jstatSnap1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -snap 0 2>&1 | awk -f ${TESTSRC}/snap1.awk
+${JSTAT} -J-XX:+UsePerfData -snap 0 2>&1 | awk -f ${TESTSRC}/snap1.awk
diff --git a/jdk/test/sun/tools/jstat/jstatSnap2.sh b/jdk/test/sun/tools/jstat/jstatSnap2.sh
index 8ce4d89..960bb2d 100644
--- a/jdk/test/sun/tools/jstat/jstatSnap2.sh
+++ b/jdk/test/sun/tools/jstat/jstatSnap2.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -J-Djstat.showUnsupported=true -snap 0 2>&1 | awk -f ${TESTSRC}/snap2.awk
+${JSTAT} -J-XX:+UsePerfData -J-Djstat.showUnsupported=true -snap 0 2>&1 | awk -f ${TESTSRC}/snap2.awk
diff --git a/jdk/test/sun/tools/jstat/jstatTimeStamp1.sh b/jdk/test/sun/tools/jstat/jstatTimeStamp1.sh
index 0443316..fce4113 100644
--- a/jdk/test/sun/tools/jstat/jstatTimeStamp1.sh
+++ b/jdk/test/sun/tools/jstat/jstatTimeStamp1.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -33,4 +33,4 @@ verify_os
 
 JSTAT="${TESTJAVA}/bin/jstat"
 
-${JSTAT} -gcutil -t 0 2>&1 | awk -f ${TESTSRC}/timeStamp1.awk
+${JSTAT} -J-XX:+UsePerfData -gcutil -t 0 2>&1 | awk -f ${TESTSRC}/timeStamp1.awk
diff --git a/jdk/test/sun/tools/jstatd/jstatdDefaults.sh b/jdk/test/sun/tools/jstatd/jstatdDefaults.sh
index f6ddb83..61d56e3 100644
--- a/jdk/test/sun/tools/jstatd/jstatdDefaults.sh
+++ b/jdk/test/sun/tools/jstatd/jstatdDefaults.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -45,13 +45,13 @@ HOSTNAME=`uname -n`
 
 JSTATD_OUT="jstatd_$$.out"
 
-${JSTATD} -J-Djava.security.policy=${TESTSRC}/all.policy 2>&1 > ${JSTATD_OUT} &
+${JSTATD} -J-XX:+UsePerfData -J-Djava.security.policy=${TESTSRC}/all.policy 2>&1 > ${JSTATD_OUT} &
 JSTATD_PID=$!
 
 echo "jstatd started as pid ${JSTATD_PID}"
 sleep 3
 
-${JPS} ${HOSTNAME} 2>&1 | awk -f ${TESTSRC}/jpsOutput1.awk
+${JPS} -J-XX:+UsePerfData ${HOSTNAME} 2>&1 | awk -f ${TESTSRC}/jpsOutput1.awk
 
 if [ $? -ne 0 ]
 then
@@ -60,7 +60,7 @@ then
     exit 1
 fi
 
-${JSTAT} -gcutil ${JSTATD_PID}@${HOSTNAME} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_PID}@${HOSTNAME} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
 RC=$?
 
 if [ ${RC} -ne 0 ]
diff --git a/jdk/test/sun/tools/jstatd/jstatdExternalRegistry.sh b/jdk/test/sun/tools/jstatd/jstatdExternalRegistry.sh
index ba960c2..8e7d220 100644
--- a/jdk/test/sun/tools/jstatd/jstatdExternalRegistry.sh
+++ b/jdk/test/sun/tools/jstatd/jstatdExternalRegistry.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -53,19 +53,19 @@ fi
 RMIREGISTRY_OUT="rmiregistry_$$.out"
 JSTATD_OUT="jstatd_$$.out"
 
-${RMIREGISTRY} ${PORT} > ${RMIREGISTRY_OUT} 2>&1 &
+${RMIREGISTRY} -J-XX:+UsePerfData ${PORT} > ${RMIREGISTRY_OUT} 2>&1 &
 RMIREGISTRY_PID=$!
 
 echo "rmiregistry started on port ${PORT} as pid ${RMIREGISTRY_PID}"
 sleep 3
 
-${JSTATD} -J-Djava.security.policy=${TESTSRC}/all.policy -p ${PORT} > ${JSTATD_OUT} 2>&1 &
+${JSTATD} -J-XX:+UsePerfData -J-Djava.security.policy=${TESTSRC}/all.policy -p ${PORT} > ${JSTATD_OUT} 2>&1 &
 JSTATD_PID=$!
 
 echo "jstatd started as pid ${JSTATD_PID}"
 sleep 3
 
-${JPS} ${HOSTNAME}:${PORT} 2>&1 | awk -f ${TESTSRC}/jpsOutput1.awk
+${JPS} -J-XX:+UsePerfData ${HOSTNAME}:${PORT} 2>&1 | awk -f ${TESTSRC}/jpsOutput1.awk
 
 if [ $? -ne 0 ]
 then
@@ -73,7 +73,7 @@ then
     exit 1
 fi
 
-${JSTAT} -gcutil ${JSTATD_PID}@${HOSTNAME}:${PORT} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_PID}@${HOSTNAME}:${PORT} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
 RC=$?
 
 if [ ${RC} -ne 0 ]
diff --git a/jdk/test/sun/tools/jstatd/jstatdPort.sh b/jdk/test/sun/tools/jstatd/jstatdPort.sh
index a5021c9..42c9349 100644
--- a/jdk/test/sun/tools/jstatd/jstatdPort.sh
+++ b/jdk/test/sun/tools/jstatd/jstatdPort.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -50,13 +50,13 @@ fi
 
 JSTATD_OUT="jstatd_$$.out"
 
-${JSTATD} -J-Djava.security.policy=${TESTSRC}/all.policy -p ${PORT} 2>&1 > ${JSTATD_OUT} &
+${JSTATD} -J-XX:+UsePerfData -J-Djava.security.policy=${TESTSRC}/all.policy -p ${PORT} 2>&1 > ${JSTATD_OUT} &
 JSTATD_PID=$!
 
 echo "jstatd started as pid ${JSTATD_PID} on port ${PORT}"
 sleep 3
 
-${JPS} ${HOSTNAME}:${PORT} 2>&1 | awk -f ${TESTSRC}/jpsOutput1.awk
+${JPS} -J-XX:+UsePerfData ${HOSTNAME}:${PORT} 2>&1 | tee jps.out | awk -f ${TESTSRC}/jpsOutput1.awk
 
 if [ $? -ne 0 ]
 then
@@ -65,7 +65,7 @@ then
     exit 1
 fi
 
-${JSTAT} -gcutil ${JSTATD_PID}@${HOSTNAME}:${PORT} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_PID}@${HOSTNAME}:${PORT} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
 RC=$?
 
 if [ ${RC} -ne 0 ]
diff --git a/jdk/test/sun/tools/jstatd/jstatdServerName.sh b/jdk/test/sun/tools/jstatd/jstatdServerName.sh
index 61730a5..108826f 100644
--- a/jdk/test/sun/tools/jstatd/jstatdServerName.sh
+++ b/jdk/test/sun/tools/jstatd/jstatdServerName.sh
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -54,20 +54,20 @@ SERVERNAME="SecondJstatdServer"
 JSTATD_1_OUT="jstatd_$$_1.out"
 JSTATD_2_OUT="jstatd_$$_2.out"
 
-${JSTATD} -J-Djava.security.policy=${TESTSRC}/all.policy -p ${PORT_1} 2>&1 > ${JSTATD_1_OUT} &
+${JSTATD} -J-XX:+UsePerfData -J-Djava.security.policy=${TESTSRC}/all.policy -p ${PORT_1} 2>&1 > ${JSTATD_1_OUT} &
 JSTATD_1_PID=$!
 
 echo "first jstatd started as pid ${JSTATD_1_PID} on port ${PORT_1} with default server name"
 sleep 3
 
-${JSTATD} -J-Djava.security.policy=${TESTSRC}/all.policy -p ${PORT_2} -n ${SERVERNAME} 2>&1 > ${JSTATD_2_OUT} &
+${JSTATD} -J-XX:+UsePerfData -J-Djava.security.policy=${TESTSRC}/all.policy -p ${PORT_2} -n ${SERVERNAME} 2>&1 > ${JSTATD_2_OUT} &
 JSTATD_2_PID=$!
 
 echo "second jstatd started as pid ${JSTATD_2_PID} on port ${PORT_2} with name ${SERVERNAME}"
 sleep 3
 
-echo "running: ${JPS} ${HOSTNAME}:${PORT_1}"
-${JPS} ${HOSTNAME}:${PORT_1} 2>&1 | awk -f ${TESTSRC}/jpsOutput1.awk
+echo "running: ${JPS} -J-XX:+UsePerfData ${HOSTNAME}:${PORT_1}"
+${JPS} -J-XX:+UsePerfData ${HOSTNAME}:${PORT_1} 2>&1 | awk -f ${TESTSRC}/jpsOutput1.awk
 
 if [ $? -ne 0 ]
 then
@@ -76,8 +76,8 @@ then
     exit 1
 fi
 
-echo "running: ${JPS} ${HOSTNAME}:${PORT_2}/${SERVERNAME}"
-${JPS} ${HOSTNAME}:${PORT_2}/${SERVERNAME} 2>&1 | awk -f ${TESTSRC}/jpsOutput1.awk
+echo "running: ${JPS} -J-XX:+UsePerfData ${HOSTNAME}:${PORT_2}/${SERVERNAME}"
+${JPS} -J-XX:+UsePerfData ${HOSTNAME}:${PORT_2}/${SERVERNAME} 2>&1 | awk -f ${TESTSRC}/jpsOutput1.awk
 
 if [ $? -ne 0 ]
 then
@@ -86,8 +86,8 @@ then
     exit 1
 fi
 
-echo "running: ${JSTAT} -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_1} 250 5"
-${JSTAT} -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_1} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
+echo "running: ${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_1} 250 5"
+${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_1} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
 RC=$?
 
 if [ ${RC} -ne 0 ]
@@ -95,8 +95,8 @@ then
     echo "jstat output differs from expected output"
 fi
 
-echo "running: ${JSTAT} -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_2}/${SERVERNAME} 250 5"
-${JSTAT} -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_2}/${SERVERNAME} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
+echo "running: ${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_2}/${SERVERNAME} 250 5"
+${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_2}/${SERVERNAME} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
 RC=$?
 
 if [ ${RC} -ne 0 ]
diff --git a/langtools/.hg/cache/branchheads b/langtools/.hg/cache/branchheads
index 280bc70..8a5ea67 100644
--- a/langtools/.hg/cache/branchheads
+++ b/langtools/.hg/cache/branchheads
@@ -1,2 +1,2 @@
-fc9662917fdc168bc67c89aac5f03e00ba9673c4 1075
-fc9662917fdc168bc67c89aac5f03e00ba9673c4 default
+9d81e6a48f1bc1fcbf777e191d402078d46e46dd 1167
+9d81e6a48f1bc1fcbf777e191d402078d46e46dd default
diff --git a/langtools/.hg/dirstate b/langtools/.hg/dirstate
index 06631af..cbf2265 100644
Binary files a/langtools/.hg/dirstate and b/langtools/.hg/dirstate differ
diff --git a/langtools/.hg/store/00changelog.d b/langtools/.hg/store/00changelog.d
index 552630c..2e457f2 100644
Binary files a/langtools/.hg/store/00changelog.d and b/langtools/.hg/store/00changelog.d differ
diff --git a/langtools/.hg/store/00changelog.i b/langtools/.hg/store/00changelog.i
index 0ddf6f7..cabb8c5 100644
Binary files a/langtools/.hg/store/00changelog.i and b/langtools/.hg/store/00changelog.i differ
diff --git a/langtools/.hg/store/00manifest.d b/langtools/.hg/store/00manifest.d
index 36c10aa..081b92b 100644
Binary files a/langtools/.hg/store/00manifest.d and b/langtools/.hg/store/00manifest.d differ
diff --git a/langtools/.hg/store/00manifest.i b/langtools/.hg/store/00manifest.i
index beeff42..9efc035 100644
Binary files a/langtools/.hg/store/00manifest.i and b/langtools/.hg/store/00manifest.i differ
diff --git a/langtools/.hg/store/data/make/jprt.properties.i b/langtools/.hg/store/data/make/jprt.properties.i
index 7ac0a62..962d56f 100644
Binary files a/langtools/.hg/store/data/make/jprt.properties.i and b/langtools/.hg/store/data/make/jprt.properties.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/_main.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/_main.java.i
index 79f80b3..58ff034 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/_main.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/_main.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/api/_client_code_wrapper.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/api/_client_code_wrapper.java.i
index 4f7769f..c388257 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/api/_client_code_wrapper.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/api/_client_code_wrapper.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/api/_javac_task_impl.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/api/_javac_task_impl.java.i
index f933247..5f82843 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/api/_javac_task_impl.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/api/_javac_task_impl.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/api/_javac_trees.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/api/_javac_trees.java.i
index a89d076..0524bbc 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/api/_javac_trees.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/api/_javac_trees.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_kinds.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_kinds.java.i
index d641289..297534b 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_kinds.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_kinds.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_printer.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_printer.java.i
index a08a707..bf6f139 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_printer.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_printer.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_symbol.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_symbol.java.i
index 9d3ba3d..70da616 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_symbol.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_symbol.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_types.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_types.java.i
index d34b77d..1a5bd2f 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_types.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/code/_types.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_attr.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_attr.java.i
index cc87d1b..331268a 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_attr.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_attr.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_check.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_check.java.i
index bed8b51..237aa42 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_check.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_check.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_infer.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_infer.java.i
index d1f0fab..2f05372 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_infer.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_infer.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_lower.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_lower.java.i
index a83a373..63a0fff 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_lower.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_lower.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_resolve.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_resolve.java.i
index 01c133c..2e2bb34 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_resolve.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/comp/_resolve.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/file/_regular_file_object.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/file/_regular_file_object.java.i
index 412a240..4584263 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/file/_regular_file_object.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/file/_regular_file_object.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/jvm/_class_writer.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/jvm/_class_writer.java.i
index 929be54..501bb68 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/jvm/_class_writer.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/jvm/_class_writer.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/jvm/_gen.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/jvm/_gen.java.i
index 30a12db..0473c0c 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/jvm/_gen.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/jvm/_gen.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/main/_java_compiler.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/main/_java_compiler.java.i
index 5d553e8..080ea77 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/main/_java_compiler.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/main/_java_compiler.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/main/_main.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/main/_main.java.i
index a24ba6c..31d8258 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/main/_main.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/main/_main.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/nio/_path_file_object.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/nio/_path_file_object.java.i
index ff4d4a4..dc2a1f1 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/nio/_path_file_object.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/nio/_path_file_object.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/parser/_javac_parser.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/parser/_javac_parser.java.i
index 1c3930c..04f45c6 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/parser/_javac_parser.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/parser/_javac_parser.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/parser/_scanner.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/parser/_scanner.java.i
index 59b594c..6d7c5b0 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/parser/_scanner.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/parser/_scanner.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_javac_filer.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_javac_filer.java.i
index dd4a0c4..9e7f6d8 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_javac_filer.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_javac_filer.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_javac_processing_environment.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_javac_processing_environment.java.i
index 1bf21e1..a5daca4 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_javac_processing_environment.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_javac_processing_environment.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_javac_round_environment.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_javac_round_environment.java.i
index 4a10778..5586907 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_javac_round_environment.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_javac_round_environment.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_printing_processor.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_printing_processor.java.i
index 80d1d64..8a05710 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_printing_processor.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/processing/_printing_processor.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/resources/compiler.properties.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/resources/compiler.properties.i
index e7179a8..2875d80 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/resources/compiler.properties.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/resources/compiler.properties.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/tree/_j_c_tree.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/tree/_j_c_tree.java.i
index 5a1a993..2dc4846 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/tree/_j_c_tree.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/tree/_j_c_tree.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/util/_abstract_log.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/util/_abstract_log.java.i
index be367d3..c7f6583 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/util/_abstract_log.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/util/_abstract_log.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/util/_base_file_manager.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/util/_base_file_manager.java.i
index 4837e7a..d7d72e3 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/util/_base_file_manager.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/util/_base_file_manager.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/util/_rich_diagnostic_formatter.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/util/_rich_diagnostic_formatter.java.i
index cc044d6..5dc5cb3 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/util/_rich_diagnostic_formatter.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javac/util/_rich_diagnostic_formatter.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_annotation_type_doc_impl.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_annotation_type_doc_impl.java.i
index fee5a2a..2ec0fad 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_annotation_type_doc_impl.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_annotation_type_doc_impl.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_annotation_type_element_doc_impl.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_annotation_type_element_doc_impl.java.i
index 0654458..493d5c0 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_annotation_type_element_doc_impl.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_annotation_type_element_doc_impl.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_class_doc_impl.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_class_doc_impl.java.i
index 23208dd..dd50029 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_class_doc_impl.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_class_doc_impl.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_comment.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_comment.java.i
index aec5cf8..2fae6b6 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_comment.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_comment.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_doc_env.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_doc_env.java.i
index 2bbd7f8..f8d5fa39 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_doc_env.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_doc_env.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_doc_impl.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_doc_impl.java.i
index 6fa6241..465a736 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_doc_impl.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_doc_impl.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_class_reader.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_class_reader.java.i
index 6445ad6..4d4ec75 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_class_reader.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_class_reader.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_enter.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_enter.java.i
index c93c282..9ff1f99 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_enter.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_enter.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_member_enter.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_member_enter.java.i
index 84dc198..e8b45dd 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_member_enter.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_member_enter.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_tool.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_tool.java.i
index bc7ad1f..3cb38c7 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_tool.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_javadoc_tool.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_package_doc_impl.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_package_doc_impl.java.i
index d4a64d1..54a5a1b 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_package_doc_impl.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_package_doc_impl.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_param_tag_impl.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_param_tag_impl.java.i
index 81af98d..8fd8bd7 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_param_tag_impl.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_param_tag_impl.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_serial_field_tag_impl.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_serial_field_tag_impl.java.i
index 57e8c83..a30e82e 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_serial_field_tag_impl.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_serial_field_tag_impl.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_throws_tag_impl.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_throws_tag_impl.java.i
index 103280f..b427591 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_throws_tag_impl.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javadoc/_throws_tag_impl.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javah/_javah_task.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javah/_javah_task.java.i
index 1152e4f..002634d 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javah/_javah_task.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javah/_javah_task.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javah/_l_l_n_i.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javah/_l_l_n_i.java.i
index 8cb3170..47ccd25 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javah/_l_l_n_i.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javah/_l_l_n_i.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javah/_type_signature.java.i b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javah/_type_signature.java.i
index 4570ee4..333f3a1 100644
Binary files a/langtools/.hg/store/data/src/share/classes/com/sun/tools/javah/_type_signature.java.i and b/langtools/.hg/store/data/src/share/classes/com/sun/tools/javah/_type_signature.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_annotation_value_visitor6.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_annotation_value_visitor6.java.i
index 65d99f9..7a04667 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_annotation_value_visitor6.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_annotation_value_visitor6.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_annotation_value_visitor7.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_annotation_value_visitor7.java.i
index 0f23dc3..a78a858 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_annotation_value_visitor7.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_annotation_value_visitor7.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_annotation_value_visitor8.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_annotation_value_visitor8.java.i
new file mode 100644
index 0000000..a438441
Binary files /dev/null and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_annotation_value_visitor8.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_element_visitor6.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_element_visitor6.java.i
index 5233c81..92550fa 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_element_visitor6.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_element_visitor6.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_element_visitor7.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_element_visitor7.java.i
index 9cd6b76..5afe8d0 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_element_visitor7.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_element_visitor7.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_element_visitor8.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_element_visitor8.java.i
new file mode 100644
index 0000000..433d97f
Binary files /dev/null and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_element_visitor8.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_type_visitor6.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_type_visitor6.java.i
index 43ef118..e8c1729 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_type_visitor6.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_type_visitor6.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_type_visitor7.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_type_visitor7.java.i
index 260482c..32a3986 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_type_visitor7.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_type_visitor7.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_type_visitor8.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_type_visitor8.java.i
new file mode 100644
index 0000000..85bf30f
Binary files /dev/null and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_abstract_type_visitor8.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_kind_visitor6.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_kind_visitor6.java.i
index 7e3ac2b..f3ad942 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_kind_visitor6.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_kind_visitor6.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_kind_visitor7.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_kind_visitor7.java.i
index 4d1a432..fccc2eb 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_kind_visitor7.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_kind_visitor7.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_kind_visitor8.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_kind_visitor8.java.i
new file mode 100644
index 0000000..83a8f27
Binary files /dev/null and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_kind_visitor8.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_scanner6.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_scanner6.java.i
index 89212df..4424446 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_scanner6.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_scanner6.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_scanner7.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_scanner7.java.i
index eb05719..e02f3a3 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_scanner7.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_scanner7.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_scanner8.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_scanner8.java.i
new file mode 100644
index 0000000..fb369a7
Binary files /dev/null and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_element_scanner8.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_annotation_value_visitor6.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_annotation_value_visitor6.java.i
index fc54c73..356cfb7 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_annotation_value_visitor6.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_annotation_value_visitor6.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_annotation_value_visitor7.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_annotation_value_visitor7.java.i
index 8ea105d..9c07221 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_annotation_value_visitor7.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_annotation_value_visitor7.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_annotation_value_visitor8.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_annotation_value_visitor8.java.i
new file mode 100644
index 0000000..749c32c
Binary files /dev/null and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_annotation_value_visitor8.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_element_visitor6.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_element_visitor6.java.i
index a2b90c0..0c615ae 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_element_visitor6.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_element_visitor6.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_element_visitor7.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_element_visitor7.java.i
index 9daf048..4d89c8a 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_element_visitor7.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_element_visitor7.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_element_visitor8.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_element_visitor8.java.i
new file mode 100644
index 0000000..6c4424e
Binary files /dev/null and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_element_visitor8.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_type_visitor6.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_type_visitor6.java.i
index fdbfe8d..ddc89c6 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_type_visitor6.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_type_visitor6.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_type_visitor7.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_type_visitor7.java.i
index 229e988..9ea67ca 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_type_visitor7.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_type_visitor7.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_type_visitor8.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_type_visitor8.java.i
new file mode 100644
index 0000000..9954e97
Binary files /dev/null and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_simple_type_visitor8.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_type_kind_visitor6.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_type_kind_visitor6.java.i
index da27c23..ab4a040 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_type_kind_visitor6.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_type_kind_visitor6.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_type_kind_visitor7.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_type_kind_visitor7.java.i
index 6059cec..dca9fe6 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_type_kind_visitor7.java.i and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_type_kind_visitor7.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_type_kind_visitor8.java.i b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_type_kind_visitor8.java.i
new file mode 100644
index 0000000..0ef11c9
Binary files /dev/null and b/langtools/.hg/store/data/src/share/classes/javax/lang/model/util/_type_kind_visitor8.java.i differ
diff --git a/langtools/.hg/store/data/src/share/classes/javax/tools/_java_compiler.java.i b/langtools/.hg/store/data/src/share/classes/javax/tools/_java_compiler.java.i
index 114a7d6..e5c675a 100644
Binary files a/langtools/.hg/store/data/src/share/classes/javax/tools/_java_compiler.java.i and b/langtools/.hg/store/data/src/share/classes/javax/tools/_java_compiler.java.i differ
diff --git a/langtools/.hg/store/data/src/share/sample/javac/processing/src/_check_names_processor.java.i b/langtools/.hg/store/data/src/share/sample/javac/processing/src/_check_names_processor.java.i
index 38d31b6..08de65c 100644
Binary files a/langtools/.hg/store/data/src/share/sample/javac/processing/src/_check_names_processor.java.i and b/langtools/.hg/store/data/src/share/sample/javac/processing/src/_check_names_processor.java.i differ
diff --git a/langtools/.hg/store/data/test/com/sun/javadoc/_t6735320/_serial_field_test.java.i b/langtools/.hg/store/data/test/com/sun/javadoc/_t6735320/_serial_field_test.java.i
new file mode 100644
index 0000000..c46d814
Binary files /dev/null and b/langtools/.hg/store/data/test/com/sun/javadoc/_t6735320/_serial_field_test.java.i differ
diff --git a/langtools/.hg/store/data/test/com/sun/javadoc/_t6735320/_t6735320.java.i b/langtools/.hg/store/data/test/com/sun/javadoc/_t6735320/_t6735320.java.i
new file mode 100644
index 0000000..2d6b2a1
Binary files /dev/null and b/langtools/.hg/store/data/test/com/sun/javadoc/_t6735320/_t6735320.java.i differ
diff --git a/langtools/.hg/store/data/test/com/sun/javadoc/lib/_javadoc_tester.java.i b/langtools/.hg/store/data/test/com/sun/javadoc/lib/_javadoc_tester.java.i
index f9432a3..a72c764 100644
Binary files a/langtools/.hg/store/data/test/com/sun/javadoc/lib/_javadoc_tester.java.i and b/langtools/.hg/store/data/test/com/sun/javadoc/lib/_javadoc_tester.java.i differ
diff --git a/langtools/.hg/store/data/test/com/sun/javadoc/test_link_taglet/_test_link_taglet.java.i b/langtools/.hg/store/data/test/com/sun/javadoc/test_link_taglet/_test_link_taglet.java.i
index 7329c81..33946da 100644
Binary files a/langtools/.hg/store/data/test/com/sun/javadoc/test_link_taglet/_test_link_taglet.java.i and b/langtools/.hg/store/data/test/com/sun/javadoc/test_link_taglet/_test_link_taglet.java.i differ
diff --git a/langtools/.hg/store/data/test/com/sun/javadoc/test_link_taglet/pkg/_c.java.i b/langtools/.hg/store/data/test/com/sun/javadoc/test_link_taglet/pkg/_c.java.i
index e305304..887005b 100644
Binary files a/langtools/.hg/store/data/test/com/sun/javadoc/test_link_taglet/pkg/_c.java.i and b/langtools/.hg/store/data/test/com/sun/javadoc/test_link_taglet/pkg/_c.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/6402516/_check_local_elements.java.i b/langtools/.hg/store/data/test/tools/javac/6402516/_check_local_elements.java.i
index 5187e59..8c45b1d 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/6402516/_check_local_elements.java.i and b/langtools/.hg/store/data/test/tools/javac/6402516/_check_local_elements.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/7003595/_t7003595.java.i b/langtools/.hg/store/data/test/tools/javac/7003595/_t7003595.java.i
new file mode 100644
index 0000000..a78a042
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/7003595/_t7003595.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/7003595/_t7003595b.java.i b/langtools/.hg/store/data/test/tools/javac/7003595/_t7003595b.java.i
new file mode 100644
index 0000000..9c0a00c
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/7003595/_t7003595b.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/7079713/_test_circular_classfile.java.i b/langtools/.hg/store/data/test/tools/javac/7079713/_test_circular_classfile.java.i
new file mode 100644
index 0000000..f4a0f98
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/7079713/_test_circular_classfile.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/7085024/_t7085024.java.i b/langtools/.hg/store/data/test/tools/javac/7085024/_t7085024.java.i
new file mode 100644
index 0000000..54ff985
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/7085024/_t7085024.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/7085024/_t7085024.out.i b/langtools/.hg/store/data/test/tools/javac/7085024/_t7085024.out.i
new file mode 100644
index 0000000..fd12ba9
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/7085024/_t7085024.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/7086595/_t7086595.java.i b/langtools/.hg/store/data/test/tools/javac/7086595/_t7086595.java.i
new file mode 100644
index 0000000..c8860ba
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/7086595/_t7086595.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/7086595/_t7086595.out.i b/langtools/.hg/store/data/test/tools/javac/7086595/_t7086595.out.i
new file mode 100644
index 0000000..8f318ba
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/7086595/_t7086595.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_diagnostics/6860795/_t6860795.out.i b/langtools/.hg/store/data/test/tools/javac/_diagnostics/6860795/_t6860795.out.i
index 5dfcbdc..08bdee1 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_diagnostics/6860795/_t6860795.out.i and b/langtools/.hg/store/data/test/tools/javac/_diagnostics/6860795/_t6860795.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_diagnostics/6862608/_t6862608a.out.i b/langtools/.hg/store/data/test/tools/javac/_diagnostics/6862608/_t6862608a.out.i
index f933fb3..7ab6040 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_diagnostics/6862608/_t6862608a.out.i and b/langtools/.hg/store/data/test/tools/javac/_diagnostics/6862608/_t6862608a.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_local_classes__2.out.i b/langtools/.hg/store/data/test/tools/javac/_local_classes__2.out.i
index 360abfd..8ed1c71 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_local_classes__2.out.i and b/langtools/.hg/store/data/test/tools/javac/_local_classes__2.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_nested_inner_class_names.out.i b/langtools/.hg/store/data/test/tools/javac/_nested_inner_class_names.out.i
index 01514b6..e9243e7 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_nested_inner_class_names.out.i and b/langtools/.hg/store/data/test/tools/javac/_nested_inner_class_names.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_strings_in_switch/_string_switches.java.i b/langtools/.hg/store/data/test/tools/javac/_strings_in_switch/_string_switches.java.i
index 9831144..6c4c984 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_strings_in_switch/_string_switches.java.i and b/langtools/.hg/store/data/test/tools/javac/_strings_in_switch/_string_switches.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_t6358166.java.i b/langtools/.hg/store/data/test/tools/javac/_t6358166.java.i
index 3337c03..c4b98e0 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_t6358166.java.i and b/langtools/.hg/store/data/test/tools/javac/_t6358166.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_t6358168.java.i b/langtools/.hg/store/data/test/tools/javac/_t6358168.java.i
index e3e6b91..4bd336e 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_t6358168.java.i and b/langtools/.hg/store/data/test/tools/javac/_t6358168.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_bad_twr.out.i b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_bad_twr.out.i
index 3c98ae0..70107fa 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_bad_twr.out.i and b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_bad_twr.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_duplicate_resource_decl.out.i b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_duplicate_resource_decl.out.i
index 833a56e..6193ae4 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_duplicate_resource_decl.out.i and b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_duplicate_resource_decl.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_resource_interface.out.i b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_resource_interface.out.i
index 3f0f31f..cf1c76e 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_resource_interface.out.i and b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_resource_interface.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_twr_flow.out.i b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_twr_flow.out.i
index 6955bc8..a72b507 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_twr_flow.out.i and b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_twr_flow.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_twr_lint.out.i b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_twr_lint.out.i
index 0b236ad..6405937 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_twr_lint.out.i and b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_twr_lint.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_twr_on_non_resource.out.i b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_twr_on_non_resource.out.i
index 0b1c7ff..dcf5af0 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_twr_on_non_resource.out.i and b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_twr_on_non_resource.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_unused_resources_test.java.i b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_unused_resources_test.java.i
index f5c4a18..bf549dc 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_unused_resources_test.java.i and b/langtools/.hg/store/data/test/tools/javac/_try_with_resources/_unused_resources_test.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/annotations/_t7043371.java.i b/langtools/.hg/store/data/test/tools/javac/annotations/_t7043371.java.i
new file mode 100644
index 0000000..aa89b22
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/annotations/_t7043371.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/annotations/_t7073477.java.i b/langtools/.hg/store/data/test/tools/javac/annotations/_t7073477.java.i
new file mode 100644
index 0000000..d977e90
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/annotations/_t7073477.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/api/7086261/_t7086261.java.i b/langtools/.hg/store/data/test/tools/javac/api/7086261/_t7086261.java.i
new file mode 100644
index 0000000..7d33edd
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/api/7086261/_t7086261.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/api/_test_get_scope.java.i b/langtools/.hg/store/data/test/tools/javac/api/_test_get_scope.java.i
new file mode 100644
index 0000000..b62a41a
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/api/_test_get_scope.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/api/_test_operators.java.i b/langtools/.hg/store/data/test/tools/javac/api/_test_operators.java.i
index 10978bf..462b05a 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/api/_test_operators.java.i and b/langtools/.hg/store/data/test/tools/javac/api/_test_operators.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/diags/_arg_type_compiler_factory.java.i b/langtools/.hg/store/data/test/tools/javac/diags/_arg_type_compiler_factory.java.i
index 3933f33..8b04490 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/diags/_arg_type_compiler_factory.java.i and b/langtools/.hg/store/data/test/tools/javac/diags/_arg_type_compiler_factory.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/diags/_example.java.i b/langtools/.hg/store/data/test/tools/javac/diags/_example.java.i
index 2ef7f12..525e29a 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/diags/_example.java.i and b/langtools/.hg/store/data/test/tools/javac/diags/_example.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/diags/examples.not-yet.txt.i b/langtools/.hg/store/data/test/tools/javac/diags/examples.not-yet.txt.i
index 905e88f..b8ba64f 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/diags/examples.not-yet.txt.i and b/langtools/.hg/store/data/test/tools/javac/diags/examples.not-yet.txt.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/diags/examples/_already_defined_clinit.java.i b/langtools/.hg/store/data/test/tools/javac/diags/examples/_already_defined_clinit.java.i
new file mode 100644
index 0000000..b7c9a72
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/diags/examples/_already_defined_clinit.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/diags/examples/_cannot_create_array_with_diamond.java.i b/langtools/.hg/store/data/test/tools/javac/diags/examples/_cannot_create_array_with_diamond.java.i
new file mode 100644
index 0000000..e2dff09
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/diags/examples/_cannot_create_array_with_diamond.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/diags/examples/_empty_char_literal.java.i b/langtools/.hg/store/data/test/tools/javac/diags/examples/_empty_char_literal.java.i
index e127a1d..e67d1ec 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/diags/examples/_empty_char_literal.java.i and b/langtools/.hg/store/data/test/tools/javac/diags/examples/_empty_char_literal.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/diags/examples/_incompatible_upper_bounds.java.i b/langtools/.hg/store/data/test/tools/javac/diags/examples/_incompatible_upper_bounds.java.i
new file mode 100644
index 0000000..c8f552b
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/diags/examples/_incompatible_upper_bounds.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/diags/examples/_kindname_instance_init.java.i b/langtools/.hg/store/data/test/tools/javac/diags/examples/_kindname_instance_init.java.i
new file mode 100644
index 0000000..bb1d144
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/diags/examples/_kindname_instance_init.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/diags/examples/_kindname_static_init.java.i b/langtools/.hg/store/data/test/tools/javac/diags/examples/_kindname_static_init.java.i
new file mode 100644
index 0000000..9bde31a
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/diags/examples/_kindname_static_init.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/enum/6350057/_t6350057.java.i b/langtools/.hg/store/data/test/tools/javac/enum/6350057/_t6350057.java.i
index a4deb5b..5743326 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/enum/6350057/_t6350057.java.i and b/langtools/.hg/store/data/test/tools/javac/enum/6350057/_t6350057.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/enum/6424358/_t6424358.java.i b/langtools/.hg/store/data/test/tools/javac/enum/6424358/_t6424358.java.i
index e1fa3c5..7eafc4e 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/enum/6424358/_t6424358.java.i and b/langtools/.hg/store/data/test/tools/javac/enum/6424358/_t6424358.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/failover/_fail_over15.out.i b/langtools/.hg/store/data/test/tools/javac/failover/_fail_over15.out.i
index 0cdfe85..d10fda7 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/failover/_fail_over15.out.i and b/langtools/.hg/store/data/test/tools/javac/failover/_fail_over15.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/file/_t7068437.java.i b/langtools/.hg/store/data/test/tools/javac/file/_t7068437.java.i
new file mode 100644
index 0000000..22a091d
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/file/_t7068437.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/file/_t7068451.java.i b/langtools/.hg/store/data/test/tools/javac/file/_t7068451.java.i
new file mode 100644
index 0000000..608951f
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/file/_t7068451.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/6910550/_t6910550d.out.i b/langtools/.hg/store/data/test/tools/javac/generics/6910550/_t6910550d.out.i
index 3f4a148..5846f39 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/generics/6910550/_t6910550d.out.i and b/langtools/.hg/store/data/test/tools/javac/generics/6910550/_t6910550d.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/diamond/7046778/_diamond_and_inner_class_test.java.i b/langtools/.hg/store/data/test/tools/javac/generics/diamond/7046778/_diamond_and_inner_class_test.java.i
new file mode 100644
index 0000000..b7e2232
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/diamond/7046778/_diamond_and_inner_class_test.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/diamond/7057297/_t7057297.java.i b/langtools/.hg/store/data/test/tools/javac/generics/diamond/7057297/_t7057297.java.i
new file mode 100644
index 0000000..988eef5
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/diamond/7057297/_t7057297.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/diamond/7057297/_t7057297.out.i b/langtools/.hg/store/data/test/tools/javac/generics/diamond/7057297/_t7057297.out.i
new file mode 100644
index 0000000..0856e77
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/diamond/7057297/_t7057297.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/diamond/neg/_neg09.out.i b/langtools/.hg/store/data/test/tools/javac/generics/diamond/neg/_neg09.out.i
index 09953d9..7396fa4 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/generics/diamond/neg/_neg09.out.i and b/langtools/.hg/store/data/test/tools/javac/generics/diamond/neg/_neg09.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/inference/6638712/_t6638712a.out.i b/langtools/.hg/store/data/test/tools/javac/generics/inference/6638712/_t6638712a.out.i
index 0b864a1..2d83bc9 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/generics/inference/6638712/_t6638712a.out.i and b/langtools/.hg/store/data/test/tools/javac/generics/inference/6638712/_t6638712a.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/inference/7086586/_t7086586.java.i b/langtools/.hg/store/data/test/tools/javac/generics/inference/7086586/_t7086586.java.i
new file mode 100644
index 0000000..fcdbab8
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/inference/7086586/_t7086586.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/inference/7086586/_t7086586.out.i b/langtools/.hg/store/data/test/tools/javac/generics/inference/7086586/_t7086586.out.i
new file mode 100644
index 0000000..96626f8
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/inference/7086586/_t7086586.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/inference/7086586/_t7086586b.java.i b/langtools/.hg/store/data/test/tools/javac/generics/inference/7086586/_t7086586b.java.i
new file mode 100644
index 0000000..ed1d6b3
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/inference/7086586/_t7086586b.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/inference/7086601/_t7086601a.java.i b/langtools/.hg/store/data/test/tools/javac/generics/inference/7086601/_t7086601a.java.i
new file mode 100644
index 0000000..2c49be1
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/inference/7086601/_t7086601a.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/inference/7086601/_t7086601a.out.i b/langtools/.hg/store/data/test/tools/javac/generics/inference/7086601/_t7086601a.out.i
new file mode 100644
index 0000000..db9a772
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/inference/7086601/_t7086601a.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/inference/7086601/_t7086601b.java.i b/langtools/.hg/store/data/test/tools/javac/generics/inference/7086601/_t7086601b.java.i
new file mode 100644
index 0000000..12929ed
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/inference/7086601/_t7086601b.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/raw_override/7062745/_generic_override_test.java.i b/langtools/.hg/store/data/test/tools/javac/generics/raw_override/7062745/_generic_override_test.java.i
new file mode 100644
index 0000000..949523f
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/raw_override/7062745/_generic_override_test.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/raw_override/7062745/_t7062745neg.java.i b/langtools/.hg/store/data/test/tools/javac/generics/raw_override/7062745/_t7062745neg.java.i
new file mode 100644
index 0000000..8966640
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/raw_override/7062745/_t7062745neg.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/raw_override/7062745/_t7062745neg.out.i b/langtools/.hg/store/data/test/tools/javac/generics/raw_override/7062745/_t7062745neg.out.i
new file mode 100644
index 0000000..015902a
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/raw_override/7062745/_t7062745neg.out.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/generics/raw_override/7062745/_t7062745pos.java.i b/langtools/.hg/store/data/test/tools/javac/generics/raw_override/7062745/_t7062745pos.java.i
new file mode 100644
index 0000000..52dfc49
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/generics/raw_override/7062745/_t7062745pos.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/jvm/_t7024096.java.i b/langtools/.hg/store/data/test/tools/javac/jvm/_t7024096.java.i
new file mode 100644
index 0000000..ac9ecaf
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/jvm/_t7024096.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/lib/_compile_fail.java.i b/langtools/.hg/store/data/test/tools/javac/lib/_compile_fail.java.i
new file mode 100644
index 0000000..7ac41ba
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/lib/_compile_fail.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/lib/_javac_testing_abstract_processor.java.i b/langtools/.hg/store/data/test/tools/javac/lib/_javac_testing_abstract_processor.java.i
index 563d096..c2a7868 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/lib/_javac_testing_abstract_processor.java.i and b/langtools/.hg/store/data/test/tools/javac/lib/_javac_testing_abstract_processor.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/multicatch/model/_model_checker.java.i b/langtools/.hg/store/data/test/tools/javac/multicatch/model/_model_checker.java.i
index 9174bbc..c40eeae 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/multicatch/model/_model_checker.java.i and b/langtools/.hg/store/data/test/tools/javac/multicatch/model/_model_checker.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/parser/_string_folding_test.java.i b/langtools/.hg/store/data/test/tools/javac/parser/_string_folding_test.java.i
new file mode 100644
index 0000000..741ae6f
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/parser/_string_folding_test.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/parser/netbeans/_javac_parser_test.java.i b/langtools/.hg/store/data/test/tools/javac/parser/netbeans/_javac_parser_test.java.i
new file mode 100644
index 0000000..8f44035
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/parser/netbeans/_javac_parser_test.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/processing/errors/_test_option_syntax_errors.java.i b/langtools/.hg/store/data/test/tools/javac/processing/errors/_test_option_syntax_errors.java.i
index f7c4b08..25011ff 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/processing/errors/_test_option_syntax_errors.java.i and b/langtools/.hg/store/data/test/tools/javac/processing/errors/_test_option_syntax_errors.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/processing/errors/_test_return_code.java.i b/langtools/.hg/store/data/test/tools/javac/processing/errors/_test_return_code.java.i
index 8eb4348..4f0aa1d 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/processing/errors/_test_return_code.java.i and b/langtools/.hg/store/data/test/tools/javac/processing/errors/_test_return_code.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/processing/errors/_test_suppression.java.i b/langtools/.hg/store/data/test/tools/javac/processing/errors/_test_suppression.java.i
index ba8676b..b7e8464 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/processing/errors/_test_suppression.java.i and b/langtools/.hg/store/data/test/tools/javac/processing/errors/_test_suppression.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/processing/loader/test_close/_test_close.java.i b/langtools/.hg/store/data/test/tools/javac/processing/loader/test_close/_test_close.java.i
new file mode 100644
index 0000000..83edf52
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/processing/loader/test_close/_test_close.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/processing/loader/test_close/_test_close2.java.i b/langtools/.hg/store/data/test/tools/javac/processing/loader/test_close/_test_close2.java.i
new file mode 100644
index 0000000..a6e3ddf
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/processing/loader/test_close/_test_close2.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/processing/model/6194785/_t6194785.java.i b/langtools/.hg/store/data/test/tools/javac/processing/model/6194785/_t6194785.java.i
index 1637919..ad51477 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/processing/model/6194785/_t6194785.java.i and b/langtools/.hg/store/data/test/tools/javac/processing/model/6194785/_t6194785.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/processing/model/_test_symtab_items.java.i b/langtools/.hg/store/data/test/tools/javac/processing/model/_test_symtab_items.java.i
index 4e51deb..2e5f942 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/processing/model/_test_symtab_items.java.i and b/langtools/.hg/store/data/test/tools/javac/processing/model/_test_symtab_items.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/processing/model/element/_test_missing_element/_test_missing_element.java.i b/langtools/.hg/store/data/test/tools/javac/processing/model/element/_test_missing_element/_test_missing_element.java.i
index c22cb5e..2e7f616 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/processing/model/element/_test_missing_element/_test_missing_element.java.i and b/langtools/.hg/store/data/test/tools/javac/processing/model/element/_test_missing_element/_test_missing_element.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/processing/model/element/_test_resource_variable.java.i b/langtools/.hg/store/data/test/tools/javac/processing/model/element/_test_resource_variable.java.i
index 76d6570..5d2e609 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/processing/model/element/_test_resource_variable.java.i and b/langtools/.hg/store/data/test/tools/javac/processing/model/element/_test_resource_variable.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/processing/model/type/_no_types.java.i b/langtools/.hg/store/data/test/tools/javac/processing/model/type/_no_types.java.i
index 20d074b..beb5782 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/processing/model/type/_no_types.java.i and b/langtools/.hg/store/data/test/tools/javac/processing/model/type/_no_types.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/processing/model/type/_test_union_type.java.i b/langtools/.hg/store/data/test/tools/javac/processing/model/type/_test_union_type.java.i
index 72926f9..7385b71 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/processing/model/type/_test_union_type.java.i and b/langtools/.hg/store/data/test/tools/javac/processing/model/type/_test_union_type.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/processing/model/util/deprecation/_test_deprecation.java.i b/langtools/.hg/store/data/test/tools/javac/processing/model/util/deprecation/_test_deprecation.java.i
index ce49911..e742a9d 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/processing/model/util/deprecation/_test_deprecation.java.i and b/langtools/.hg/store/data/test/tools/javac/processing/model/util/deprecation/_test_deprecation.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/tree/_test_to_string.java.i b/langtools/.hg/store/data/test/tools/javac/tree/_test_to_string.java.i
new file mode 100644
index 0000000..944a2a1
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javac/tree/_test_to_string.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/util/context/_t7021650.java.i b/langtools/.hg/store/data/test/tools/javac/util/context/_t7021650.java.i
index 9afe91a..37e6943 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/util/context/_t7021650.java.i and b/langtools/.hg/store/data/test/tools/javac/util/context/_t7021650.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javac/warnings/_serial.java.i b/langtools/.hg/store/data/test/tools/javac/warnings/_serial.java.i
index 098cbc8..9ef7065 100644
Binary files a/langtools/.hg/store/data/test/tools/javac/warnings/_serial.java.i and b/langtools/.hg/store/data/test/tools/javac/warnings/_serial.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javadoc/parser/7091528/_t7091528.java.i b/langtools/.hg/store/data/test/tools/javadoc/parser/7091528/_t7091528.java.i
new file mode 100644
index 0000000..4ba7a79
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javadoc/parser/7091528/_t7091528.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javadoc/parser/7091528/p/_c1.java.i b/langtools/.hg/store/data/test/tools/javadoc/parser/7091528/p/_c1.java.i
new file mode 100644
index 0000000..47fc772
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javadoc/parser/7091528/p/_c1.java.i differ
diff --git a/langtools/.hg/store/data/test/tools/javadoc/parser/7091528/p/q/_c2.java.i b/langtools/.hg/store/data/test/tools/javadoc/parser/7091528/p/q/_c2.java.i
new file mode 100644
index 0000000..a326555
Binary files /dev/null and b/langtools/.hg/store/data/test/tools/javadoc/parser/7091528/p/q/_c2.java.i differ
diff --git a/langtools/.hg/store/data/~2ehgtags.i b/langtools/.hg/store/data/~2ehgtags.i
index 6d11752..641f44c 100644
Binary files a/langtools/.hg/store/data/~2ehgtags.i and b/langtools/.hg/store/data/~2ehgtags.i differ
diff --git a/langtools/.hg/store/fncache b/langtools/.hg/store/fncache
index 8d36bdd..2a6c23e 100644
--- a/langtools/.hg/store/fncache
+++ b/langtools/.hg/store/fncache
@@ -7,9 +7,8 @@ data/test/tools/javac/generics/diamond/7030150/GenericConstructorAndDiamondTest.
 data/src/share/classes/javax/lang/model/type/ReferenceType.java.i
 data/src/share/classes/com/sun/tools/javac/code/TargetType.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/util/SourcePositionImpl.java.i
-data/test/tools/javah/TestHelpOpts.java.i
 data/test/tools/javac/diags/examples/UnreachableCatch.java.i
-data/test/tools/javah/4942232/Test.java.i
+data/test/tools/javac/generics/6245699/T6245699a.java.i
 data/test/tools/javac/generics/diamond/7002837/T7002837.java.i
 data/test/tools/javac/multicatch/model/Model01.java.i
 data/test/com/sun/javadoc/AccessFrameTitle/AccessFrameTitle.java.i
@@ -19,45 +18,48 @@ data/test/tools/javac/cast/6548436/T6548436b.java.i
 data/test/tools/javadoc/6958836/errs/Errors.java.i
 data/test/tools/javac/diags/examples/ErrSyntheticNameConflict.java.i
 data/test/tools/javac/InterfaceFieldParsing_1.java.i
+data/test/com/sun/javadoc/testTypeParams/pkg/ParamTest2.java.i
 data/test/tools/javac/T5024091/T5024091.java.i
 data/test/com/sun/javadoc/testUseOption/UsedInC.java.i
 data/src/share/opensource/javac/src/bin/javac.sh.i
 data/make/test/lib/apt.sh.i
+data/test/com/sun/javadoc/T6735320/SerialFieldTest.java.i
 data/test/tools/javac/typeAnnotations/newlocations/ClassExtends.java.i
 data/test/tools/javac/T6247324.out.i
+data/test/tools/javac/generics/7007615/acc1/AccessibilityCheck01.java.i
 data/test/tools/javap/typeAnnotations/Visibility.java.i
 data/src/share/classes/com/sun/mirror/declaration/EnumDeclaration.java.i
 data/test/tools/apt/mirror/declaration/GetAnno.java.i
 data/test/tools/javac/generics/typeargs/ThisArg.java.i
 data/src/share/classes/com/sun/mirror/util/SimpleTypeVisitor.java.i
-data/test/tools/javac/generics/UnsoundInference.java.i
-data/test/tools/javac/generics/T4695348.java.i
+data/src/share/classes/com/sun/tools/javac/code/Symtab.java.i
 data/test/tools/javac/DefiniteAssignment/DUTry.java.i
+data/src/share/classes/com/sun/mirror/type/VoidType.java.i
 data/test/tools/javac/generics/7007615/acc2/p2/E.java.i
 data/test/tools/javac/Diagnostics/7010608/Test.java.i
 data/test/tools/javac/diags/examples/LocalEnum.java.i
 data/src/share/classes/com/sun/tools/javah/Util.java.i
 data/test/tools/javac/4846262/Test.out.i
-data/test/tools/javac/multicatch/Neg02.java.i
+data/test/tools/javac/processing/model/element/TestMissingElement2/Generator.java.i
 data/test/tools/javac/danglingDep/DepX.java.i
 data/test/tools/javac/api/6598108/T6598108.java.i
+data/src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java.i
+data/test/com/sun/javadoc/testIndex/pkg/Coin.java.i
 data/test/tools/javac/cast/6295056/T6295056.java.i
 data/test/com/sun/javadoc/testDocRootInlineTag/TestDocRootTag.java.i
 data/test/tools/javac/generics/6372782/AdditiveClosure.java.i
 data/src/share/classes/com/sun/javadoc/DocErrorReporter.java.i
 data/test/tools/javac/diags/examples/WarnProcMessager/processors/AnnoProc.java.i
-data/test/tools/javac/api/T6345974.java.i
-data/test/tools/javac/7023703/T7023703pos.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ParamTest2.java.i
-data/test/tools/javac/diags/examples/UncheckedClash.java.i
+data/test/tools/javac/synthesize/Integer.java.i
+data/test/com/sun/javadoc/testDocFileDir/pkg/doc-files/subdir-excluded2/testfile.txt.i
 data/test/tools/javac/api/ToolProvider/ToolProviderTest1.java.i
 data/make/netbeans/langtools/nbproject/standard-ide-actions.ent.i
 data/make/tools/Jigsaw/JmodTask.java.i
-data/test/tools/javac/NonStaticFieldExpr1.java.i
-data/test/tools/javac/generics/typevars/T7040883.java.i
+data/test/tools/javac/6400872/C.java.i
+data/test/tools/javac/NullStaticQualifier.java.i
 data/test/tools/javac/enum/LocalEnum.java.i
 data/test/tools/javac/HexThree.java.i
-data/test/tools/javac/varargs/warning/Warn2.java.i
 data/src/share/classes/com/sun/tools/javac/code/TypeTags.java.i
 data/test/tools/javac/api/T6419926.java.i
 data/src/share/classes/com/sun/tools/javac/parser/ParserFactory.java.i
@@ -66,28 +68,24 @@ data/test/tools/javac/api/TestGetTree.java.i
 data/src/share/classes/com/sun/tools/javac/util/Abort.java.i
 data/test/tools/javac/T6663588.java.i
 data/test/tools/javac/api/6431257/package-info.java.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java.i
 data/test/tools/javac/api/guide/TestMe.java.i
 data/test/tools/javac/api/guide/Test.java.i
 data/src/share/classes/com/sun/tools/javadoc/SourcePositionImpl.java.i
-data/test/tools/javac/warnings/Deprecation.java.i
-data/test/tools/javac/processing/errors/TestParseErrors/TestParseErrors.out.i
+data/test/tools/javac/treeannotests/TA.java.i
+data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_10.java.i
 data/src/share/classes/com/sun/tools/javac/util/Bits.java.i
 data/src/share/classes/javax/tools/DiagnosticListener.java.i
-data/test/tools/javadoc/badSuper/BadSuper.java.i
 data/test/tools/javac/T6294589.java.i
 data/test/tools/javac/generics/inference/6278587/T6278587Neg.java.i
 data/test/tools/javac/mandatoryWarnings/unchecked/Test4c.out.i
 data/test/com/sun/javadoc/testNestedInlineTag/testtaglets/GreenTaglet.java.i
 data/test/tools/javap/NotPackagePrivateInterface.java.i
-data/test/tools/javac/protectedAccess/ProtectedMemberAccess4.java.i
-data/test/tools/javac/diags/examples/LongSVUID.java.i
-data/test/tools/javac/processing/warnings/UseImplicit/warn.out.i
+data/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C4.java.i
 data/test/tools/javac/processing/model/util/elements/TestGetPackageOf.java.i
-data/test/tools/javac/NonAmbiguousField/two/Child.java.i
+data/test/tools/javac/diags/examples/DuplicateCaseLabel.java.i
 data/test/com/sun/javadoc/testHtmlStrongTag/TestHtmlStrongTag.java.i
-data/test/tools/javac/boxing/NoBoxingBool.java.i
 data/test/tools/javac/processing/werror/WErrorGen.java.i
-data/test/tools/javac/generics/T4784219.java.i
 data/test/tools/javac/Paths/Util.sh.i
 data/src/share/classes/com/sun/tools/javac/util/UnsharedNameTable.java.i
 data/test/tools/javac/generics/7007615/acc2/p1/D.java.i
@@ -95,170 +93,169 @@ data/test/tools/javac/policy/test1/bytodo.ABD.out.i
 data/make/tools/GenStubs/GenStubs.java.i
 data/test/tools/javac/OverrideChecks/T4720359b.java.i
 data/src/share/classes/com/sun/tools/classfile/OpCodes.java.i
-data/test/tools/javac/InconsistentInheritedSignature.java.i
+data/test/tools/javac/mandatoryWarnings/deprecated/Test3b.out.i
 data/test/tools/javac/generics/inference/6611449/T6611449.out.i
 data/make/jprt.config.i
 data/src/share/classes/javax/lang/model/overview.html.i
+data/src/share/classes/com/sun/source/tree/MemberSelectTree.java.i
 data/test/tools/javac/generics/6227936/Orig.java.i
 data/test/tools/javac/api/T6407011.java.i
 data/test/com/sun/javadoc/testDupParamWarn/pkg/Foo.java.i
-data/test/tools/apt/Compile/goldenWarn.txt.i
+data/test/tools/javac/typeAnnotations/failures/IndexArray.java.i
 data/test/tools/javac/diags/examples/KindnameClass.java.i
-data/test/tools/javac/generics/typevars/6182630/T6182630e.java.i
+data/test/tools/javac/typeAnnotations/failures/common/receiver/MissingAnnotationValue.java.i
 data/test/tools/javac/diags/examples/WarnProcMessager/WarnProcMessager.java.i
-data/test/tools/javac/generics/T6657499.java.i
-data/test/tools/javac/policy/test2/byfile.BA.out.i
+data/test/tools/javac/6917288/GraphicalInstallerTest.java.i
 data/test/tools/javac/generics/inference/6650759/T6650759a.java.i
 data/test/tools/javac/importContext/anonPackage/bar/Baz.java.i
-data/test/tools/javac/scope/6225935/StaticImportAccess.java.i
-data/test/tools/javac/annotations/neg/Cycle2.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/MethodWriter.java.i
 data/test/tools/javac/diags/examples/PkgClashWithClass/p/q/C.java.i
-data/test/tools/javac/StringsInSwitch/RepeatedStringCaseLabels2.java.i
+data/test/tools/javac/6464451/ManyExitsInTry.java.i
 data/test/tools/javac/api/T6265137.java.i
 data/src/share/classes/com/sun/tools/javadoc/ParameterizedTypeImpl.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/TaggedMethodFinder.java.i
 data/test/com/sun/javadoc/testDocFileDir/pkg/doc-files/subdir-used1/testfile.txt.i
-data/test/com/sun/javadoc/testUnnamedPackage/package.html.i
+data/test/com/sun/javadoc/testOverridenMethods/pkg2/SubClass.java.i
 data/test/tools/javac/ConstBoolAppend.java.i
-data/test/tools/javac/typeAnnotations/failures/LintCast.out.i
+data/test/tools/javac/diags/examples/UnclosedCharLiteral.java.i
 data/test/tools/javac/capture/Capture4.java.i
-data/test/tools/javac/T6224167.out.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletOutput.java.i
 data/test/tools/javac/T6227617.out.i
 data/src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java.i
 data/src/share/classes/com/sun/javadoc/ConstructorDoc.java.i
-data/test/tools/javac/mandatoryWarnings/deprecated/Test3b.out.i
 data/test/tools/javac/typeAnnotations/failures/common/rest/MissingAnnotationValue.out.i
 data/test/com/sun/javadoc/testHtmlTableTags/pkg1/package-info.java.i
 data/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java.i
 data/src/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java.i
-data/test/tools/javac/generics/6956758/T6956758neg.java.i
+data/test/tools/javac/options/T6986895.java.i
 data/test/tools/apt/Compile/golden.txt.i
-data/test/tools/javac/ClassToTypeParm.java.i
+data/test/tools/javac/diags/examples/OverrideStatic.java.i
 data/src/share/classes/com/sun/source/tree/IfTree.java.i
 data/test/tools/javadoc/annotations/shortcuts/pkg1/A.java.i
-data/test/tools/javac/ImportUnnamed/Dummy.java.i
+data/test/tools/javac/T6366196.java.i
+data/test/tools/javac/T6759996.java.i
 data/test/tools/javac/processing/model/element/TestMissingElement2/TestMissingGenericInterface1.java.i
-data/test/tools/javac/depOverrides/doccomment/Test2Q.out.i
+data/test/tools/javac/generics/6985719/T6985719e.java.i
 data/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleParameterAnnotations_attribute.java.i
 data/test/tools/javac/annotations/pos/Dep.java.i
 data/src/share/classes/com/sun/tools/javac/util/DiagnosticSource.java.i
 data/test/com/sun/javadoc/testHtmlTag/pkg1/C1.java.i
 data/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java.i
 data/test/tools/javac/T5090006/compiler.sh.i
-data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_3.java.i
+data/test/tools/javac/6257443/T6257443.java.i
 data/test/tools/javac/T6370653.java.i
 data/test/com/sun/javadoc/testCRLineSeparator/pkg/MyClass.java.i
 data/test/tools/javac/failover/FailOver09.out.i
 data/test/tools/javac/diags/examples/IncompatibleTypes1.java.i
 data/test/com/sun/javadoc/testPackageDeprecation/FooDepr.java.i
-data/test/tools/javap/T6716452.java.i
-data/test/tools/javac/generics/wildcards/pos/BoundsCollision.java.i
 data/test/tools/javac/innerClassFile/y/R2.java.i
 data/test/tools/javac/generics/T5011073.java.i
 data/test/com/sun/javadoc/testHtmlTableTags/pkg2/C4.java.i
-data/test/tools/javac/protectedAccess/ProtectedMemberAccess5/z1/Z1.java.i
 data/test/tools/javac/generics/6711619/T6711619a.out.i
 data/test/tools/javac/diags/examples/UncheckedAssignToVar.java.i
 data/test/tools/javac/diags/examples/CantRefBeforeConstr.java.i
 data/test/tools/javac/typeAnnotations/failures/common/typeparams/MissingAnnotationValue.out.i
 data/test/tools/javac/api/T6265137a.java.i
 data/test/tools/javac/generics/6294779/T6294779c.java.i
-data/test/tools/javac/processing/T6439826.java.i
+data/src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java.i
 data/test/tools/javac/api/evalexpr/MemoryFileManager.java.i
-data/test/tools/javadoc/XWerror.java.i
+data/test/tools/javac/diags/examples/Error.java.i
+data/test/tools/javah/6572945/TestClass1.java.i
 data/test/tools/javac/6863465/T6863465d.out.i
 data/test/tools/javadoc/annotations/annotateMethodsFields/pkg1/E.java.i
 data/test/tools/javac/BadOptimization/Switch1.java.i
 data/test/tools/javac/T6180021/AbstractSub.java.i
 data/test/tools/javac/SuperNew.java.i
-data/test/tools/javac/meth/MakeNegTests.sh.i
-data/test/tools/javac/varargs/5088429/T5088429Neg02.out.i
+data/src/share/classes/javax/tools/FileObject.java.i
+data/test/tools/javac/multicatch/Neg06.out.i
 data/test/com/sun/javadoc/testNestedGenerics/TestNestedGenerics.java.i
 data/src/share/classes/com/sun/tools/javac/main/RecognizedOptions.java.i
-data/test/tools/javac/typeAnnotations/newlocations/ClassParameters.java.i
 data/test/tools/javac/quid/T6999438.java.i
 data/test/tools/javac/4980495/static/p1/A1.java.i
 data/test/tools/javac/modules/ModulePathTest02.java.i
 data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes8.java.i
-data/test/tools/javac/generics/diamond/7030687/T7030687.out.i
+data/src/share/classes/javax/lang/model/element/Element.java.i
 data/test/tools/javac/protectedAccess/ProtectedMemberAccess2.out.i
-data/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateAnnotationValue.out.i
 data/test/tools/javac/T6410706.java.i
 data/src/share/classes/com/sun/tools/javadoc/DocEnv.java.i
-data/test/tools/javac/tree/T6963934.java.i
-data/test/tools/javac/T6214885.java.i
+data/test/tools/javac/generics/inference/7086586/T7086586b.java.i
+data/test/tools/javac/failover/FailOver14.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationTypeElementDeclarationImpl.java.i
+data/test/tools/javac/T6394563.warn.out.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeOptionalMemberWriter.java.i
-data/test/tools/javac/depDocComment/SuppressDeprecation.java.i
 data/test/com/sun/javadoc/testDocFileDir/TestDocFileDir.java.i
 data/test/tools/javac/generics/wildcards/6886247/T6886247_2.java.i
-data/test/com/sun/javadoc/testCmndLineClass/pkg1/C2.java.i
+data/test/tools/javac/cast/6795580/T6795580.out.i
 data/src/share/classes/com/sun/tools/javadoc/Comment.java.i
 data/src/share/classes/com/sun/tools/javah/resources/SunOS_sparc.properties.i
 data/src/share/classes/com/sun/tools/javac/api/JavacScope.java.i
 data/test/tools/javac/generics/typevars/6182630/T6182630c.java.i
-data/test/tools/javac/diags/examples/AnonymousClass.java.i
 data/src/share/classes/com/sun/source/tree/StatementTree.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstantsSummaryBuilder.java.i
-data/test/tools/javac/TryWithResources/TwrFlow.out.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/package.html.i
+data/src/share/classes/com/sun/tools/javah/TypeSignature.java.i
+data/test/tools/javac/quid/QuotedIdent_BAD62.java.i
 data/test/tools/javadoc/generics/supertypes/Main.java.i
-data/test/tools/javac/generics/inference/5003431/T5003431.java.i
+data/test/tools/javadoc/annotations/defaults/expected.out.i
 data/test/tools/javac/diags/examples/ProcCantFindClass/ProcCantFindClass.java.i
 data/test/tools/javac/Diagnostics/6862608/T6862608b.out.i
-data/test/tools/javac/generics/6985719/T6985719g.java.i
-data/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateTypeAnnotation.java.i
+data/test/tools/javap/T4884240.java.i
 data/test/tools/javac/TryWithResources/ResourceOutsideTry.out.i
 data/test/tools/javac/generics/6372782/State.java.i
 data/test/com/sun/javadoc/testOverridenMethods/TestOverridenMethodDocCopy.java.i
 data/test/tools/javac/generics/T4784207a.java.i
 data/test/tools/javac/DefiniteAssignment/DUAssert.java.i
-data/test/tools/javac/types/CastTest.java.i
+data/test/tools/javac/diags/examples/TryWithoutCatchOrFinallyOrResource.java.i
 data/test/tools/javac/generics/6723444/T6723444.java.i
 data/test/tools/javac/SynchronizedClass.sh.i
 data/test/tools/apt/Options/Marker.java.i
 data/test/tools/javac/enum/forwardRef/TestEnum6.java.i
 data/test/tools/javac/generics/typevars/5060485/Pos.java.i
 data/test/tools/javac/typeAnnotations/failures/common/typeparams/InvalidLocation.out.i
-data/test/tools/javac/api/6421756/T6421756.java.i
 data/src/share/classes/javax/lang/model/util/TypeKindVisitor6.java.i
-data/src/share/classes/com/sun/tools/javac/code/Types.java.i
+data/test/tools/javac/CyclicInheritance.java.i
+data/src/share/classes/com/sun/javadoc/Doc.java.i
 data/test/tools/javac/api/6437349/T6437349.java.i
 data/test/tools/javac/ClassCycle/ClassCycle3a.java.i
 data/test/tools/javac/MissingInclude.java.i
-data/test/tools/javac/multicatch/Neg01eff_final.java.i
+data/test/tools/javac/annotations/neg/Z11.java.i
 data/test/tools/javac/generics/inference/6650759/T6650759f.java.i
 data/src/share/classes/sun/tools/javap/TrapData.java.i
 data/test/tools/javac/generics/typevars/6569404/T6569404b.out.i
 data/test/tools/javac/generics/wildcards/pos/CastTest.java.i
 data/test/tools/javac/InnerTruth.java.i
-data/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateTypeAnnotation.out.i
 data/test/tools/javac/api/6440528/package-info.java.i
 data/test/com/sun/javadoc/testLinkOption/java/lang/StringBuilderChild.java.i
-data/test/tools/javac/generics/inference/6638712/T6638712d.out.i
+data/src/share/classes/com/sun/tools/classfile/Descriptor.java.i
+data/test/tools/javadoc/6958836/Test.java.i
 data/test/tools/javac/generics/6476118/T6476118a.out.i
-data/test/tools/javac/FlatnameClash2.java.i
+data/src/share/classes/com/sun/tools/javadoc/ProgramElementDocImpl.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java.i
 data/src/share/classes/com/sun/mirror/type/EnumType.java.i
 data/test/tools/javac/generics/Casting4.java.i
+data/test/tools/apt/mirror/type/EnumTyp.java.i
 data/test/tools/javac/enum/ExplicitlyAbstractEnum1.java.i
 data/src/share/classes/com/sun/mirror/declaration/AnnotationValue.java.i
 data/test/tools/javac/Diagnostics/6862608/T6862608a.java.i
+data/src/share/classes/com/sun/tools/javac/model/FilteredMemberList.java.i
 data/test/tools/javac/generics/InheritanceConflict3.java.i
 data/test/tools/javac/unicode/Unmappable.java.i
-data/test/tools/javac/typeAnnotations/failures/Scopes.java.i
+data/test/com/sun/javadoc/AccessAsciiArt/p1/C.java.i
 data/test/tools/javac/T5003235/T5003235a.out.i
+data/test/com/sun/javadoc/testThrowsTag/pkg/T1.java.i
 data/test/tools/javac/ConstantValues/test_ff1.java.i
 data/test/tools/javac/T5003235/T5003235b.java.i
+data/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleAnnotations_attribute.java.i
 data/test/tools/javac/generics/wildcards/neg/CastWarn8.java.i
 data/test/tools/javac/T6326754.out.i
 data/test/tools/javac/enum/6384542/T6384542a_5.out.i
 data/test/tools/javac/ClassLit.java.i
 data/test/com/sun/javadoc/testThrowsInheritence/I.java.i
 data/test/tools/javac/OverrideChecks/T4720359a.java.i
-data/test/tools/javac/generics/wildcards/neg/CastWarn3.java.i
+data/test/com/sun/javadoc/testHtmlTableTags/pkg1/C1.java.i
+data/test/tools/javac/generics/T6557954.java.i
 data/test/tools/javac/enum/enumSwitch/EnumSwitch.java.i
 data/test/tools/javac/ClassFileModifiers/ClassModifiers.java.i
+data/test/tools/javac/7085024/T7085024.java.i
 data/test/tools/javac/generics/inference/T7015715.java.i
 data/test/tools/javadoc/generics/wildcards/expected.out.i
 data/test/com/sun/javadoc/testSerializedForm/TestSerializedForm.java.i
@@ -266,16 +263,16 @@ data/test/tools/javac/diags/examples/AlreadyDefined.java.i
 data/test/tools/javac/abstract/T4717181b.java.i
 data/src/share/classes/com/sun/tools/apt/resources/apt_ja.properties.i
 data/test/tools/javac/annotations/default/A.java.i
-data/test/tools/javac/generics/wildcards/6320612/T6320612.java.i
-data/src/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java.i
+data/test/tools/javac/typeAnnotations/failures/common/rest/DuplicateTypeAnnotation.java.i
 data/test/tools/apt/mirror/declaration/pkg1/package-info.java.i
 data/test/tools/javac/6521805/T6521805c.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/WriterFactoryImpl.java.i
 data/src/share/classes/com/sun/source/tree/VariableTree.java.i
 data/src/share/classes/com/sun/tools/javac/processing/JavacMessager.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/Taglet.java.i
 data/test/tools/javac/Ambig3.java.i
 data/src/share/classes/javax/lang/model/element/ModuleElement.java.i
-data/test/tools/javac/generics/wildcards/AssignmentSameType1.java.i
+data/test/tools/javac/HexFloatLiterals.java.i
 data/test/tools/javac/multicatch/7030606/T7030606.java.i
 data/test/tools/javac/nested/5009484/X.java.i
 data/test/tools/javac/generics/6487370/T6487370.java.i
@@ -283,84 +280,76 @@ data/test/tools/javac/generics/syntax/6318240/Bar.java.i
 data/test/tools/javac/tree/TreeKindTest.java.i
 data/test/tools/javac/annotations/6550655/T6550655.java.i
 data/src/share/classes/com/sun/tools/classfile/InnerClasses_attribute.java.i
+data/test/tools/javac/api/6418694/T6418694.java.i
 data/test/tools/javac/protectedAccess/p/SuperClass.java.i
 data/test/com/sun/javadoc/AccessSkipNav/AccessSkipNav.java.i
 data/src/share/classes/com/sun/tools/javac/comp/Resolve.java.i
-data/test/tools/javac/generics/7007615/acc2/p1/C.java.i
 data/test/tools/javac/processing/werror/WErrorLast.java.i
 data/test/tools/javac/processing/warnings/UseImplicit/C1.java.i
-data/test/tools/javac/unicode/SupplementaryJavaID6.sh.i
+data/test/tools/javah/T6893943.java.i
 data/src/share/classes/javax/lang/model/element/PackageElement.java.i
 data/test/tools/javac/processing/environment/TestSourceVersion.java.i
 data/test/tools/apt/Compile/src/AndAhTwoClass.java.i
-data/test/tools/javac/diags/examples/MulticatchMustBeFinal.java.i
 data/test/com/sun/javadoc/_template/Template.java.i
 data/src/share/classes/com/sun/source/tree/BreakTree.java.i
-data/test/tools/javac/generics/inference/6638712/T6638712b.out.i
+data/src/share/classes/com/sun/mirror/type/AnnotationType.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ValueTaglet.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationMirrorImpl.java.i
 data/test/tools/javac/generics/RefEqual.java.i
 data/src/share/classes/com/sun/source/tree/BinaryTree.java.i
 data/src/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java.i
-data/test/tools/javac/DefiniteAssignment/T4725725.java.i
+data/test/com/sun/javadoc/testRecurseSubPackages/pkg1/C1.java.i
 data/test/tools/javac/generics/UncheckedConstructor.java.i
 data/src/share/classes/com/sun/tools/javac/jigsaw/JigsawModuleResolver.java.i
 data/test/tools/javac/mandatoryWarnings/deprecated/Q.java.i
 data/test/tools/javac/6840059/T6840059.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java.i
 data/test/tools/javac/generics/diamond/neg/Neg02.out.i
-data/test/tools/javac/generics/InstanceOf2.java.i
-data/test/tools/javac/staticQualifiedNew/StaticQualifiedNew.java.i
-data/test/tools/javadoc/dupOk/sp1/p/A.java.i
-data/test/tools/javadoc/6964914/TestUserDoclet.java.i
-data/test/tools/javac/failover/FailOver08.java.i
-data/test/tools/javac/generics/inference/6356673/T6365166.java.i
+data/test/tools/javac/processing/warnings/UseImplicit/TestProcUseImplicitWarning.java.i
+data/test/tools/javac/varargs/6199075/T6199075.java.i
+data/src/share/classes/sun/tools/javap/AttrData.java.i
+data/test/tools/javac/cast/6795580/T6795580.java.i
+data/test/tools/javac/diags/examples/ExceptAlreadyCaught.java.i
 data/test/tools/javac/6734819/T6734819b.out.i
-data/test/tools/javac/nio/compileTest/HelloPathWorld.java.i
-data/test/tools/javac/typeAnnotations/failures/common/rest/DuplicateTypeAnnotation.java.i
 data/test/tools/javac/BadOptimization/Switch2.java.i
-data/test/tools/javac/ProtectedInnerClass/p1/ProtectedInnerClass1.java.i
+data/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo2.java.i
 data/test/tools/javac/policy/C.java.i
-data/test/tools/javac/processing/warnings/gold_unsp_warn.out.i
 data/test/tools/javac/diags/examples/SunApiPluralAdditional/SunApiPluralAdditional.java.i
-data/test/tools/javac/synthesize/Integer.java.i
-data/test/tools/javac/mandatoryWarnings/unchecked/Test2.out.i
-data/test/tools/javac/cast/6467183/T6467183b.java.i
+data/test/tools/javac/typeAnnotations/failures/common/innertypeparams/MissingAnnotationValue.out.i
+data/test/tools/javac/diags/examples/InexactVarargsCall.java.i
 data/test/tools/javac/mixedTarget/CompatibleAbstracts3.java.i
-data/test/tools/javac/generics/7007615/T7007615.java.i
-data/test/tools/javac/generics/wildcards/neg/CastFail19.java.i
-data/test/tools/javac/processing/model/type/TestTypeKind.java.i
+data/test/tools/javac/scope/6225935/Estatico4.java.i
 data/test/tools/javac/diags/examples/InapplicableSymbols.java.i
+data/test/tools/javac/annotations/neg/NoAnnotationMethods.java.i
 data/test/tools/javac/diags/examples/KindnameConstructor.java.i
-data/test/tools/javac/typeAnnotations/failures/target/IncompleteArray.java.i
+data/test/tools/javac/mandatoryWarnings/unchecked/B.java.i
 data/test/tools/javac/enum/T5081785.java.i
+data/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java.i
 data/src/share/classes/com/sun/tools/javac/processing/ServiceProxy.java.i
 data/test/tools/javac/generics/wildcards/T5097548.java.i
 data/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/package-info.java.i
-data/test/tools/javac/generics/typevars/5060485/Compatibility02.java.i
 data/test/tools/javac/BadOptimization/DeadCode5.java.i
-data/test/tools/javac/generics/6192945/MethodNeg.java.i
+data/test/tools/javac/multicatch/Neg02eff_final.out.i
 data/test/tools/javac/6341866/A.java.i
 data/src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java.i
-data/test/tools/javac/modules/ModulePermitsAttributeTest01.java.i
 data/test/tools/javac/diags/examples/EnumLabelUnqualified.java.i
 data/test/tools/javac/generics/7007615/acc2/AccessibilityCheck02.out.i
 data/test/tools/javac/T5048776a.out.i
 data/test/tools/javac/generics/TyparamLit.java.i
-data/test/tools/javac/depOverrides/doccomment/Test1B.out.i
+data/test/tools/javac/generics/inference/6650759/T6650759j.java.i
 data/src/share/classes/javax/lang/model/UnknownEntityException.java.i
 data/src/share/classes/com/sun/source/tree/ModuleExportTree.java.i
-data/test/tools/javac/diags/examples/WhereCaptured1.java.i
+data/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateAnnotationValue.out.i
 data/test/tools/javac/typeAnnotations/attribution/Scopes.java.i
-data/test/tools/javac/generics/T6481655.java.i
-data/test/tools/javac/InnerClassesAttribute/Outside.java.back.i
-data/test/tools/apt/Compile/WarnAPF.java.i
+data/test/tools/javac/foreach/StaticBlock.java.i
+data/test/tools/javac/api/T6357331.java.i
 data/src/share/classes/com/sun/tools/javac/jvm/Items.java.i
-data/test/tools/javac/cast/6932571/T6932571b.java.i
-data/test/tools/javac/diags/examples/IllegalChar.java.i
-data/test/tools/javac/6491592/T6491592.out.i
+data/test/tools/javac/6402516/Checker.java.i
+data/test/tools/javac/ClassLiterals/LiteralInterfaceImpl.java.i
+data/test/tools/javac/generics/inference/6302954/T6476073.java.i
+data/test/tools/javac/modules/ModuleRequiresAttributeTest01.java.i
 data/test/tools/javac/generics/diamond/neg/Neg10.out.i
-data/test/tools/javac/processing/messager/6362067/T6362067.java.i
+data/src/share/classes/com/sun/mirror/type/TypeMirror.java.i
 data/test/tools/javac/annotations/pos/Members.java.i
 data/test/tools/javac/generics/6910550/T6910550a.java.i
 data/src/share/classes/javax/lang/model/type/TypeKind.java.i
@@ -370,25 +359,27 @@ data/test/tools/javac/6402516/CheckIsAccessible.java.i
 data/test/com/sun/javadoc/MetaTag/p1/C1.java.i
 data/test/tools/javac/generics/T6751514.java.i
 data/src/share/classes/com/sun/tools/javac/file/BaseFileObject.java.i
+data/test/tools/javac/api/6437999/Utf8.java.i
+data/test/tools/apt/mirror/declaration/pkg1/AnInterface.java.i
 data/src/share/classes/com/sun/source/tree/Tree.java.i
 data/test/tools/javac/QualifiedAccess/pack1/P1.java.i
 data/test/tools/javac/generics/typevars/6569404/T6569404c.java.i
 data/test/com/sun/javadoc/testCRLineSeparator/TestCRLineSeparator.java.i
+data/test/com/sun/javadoc/testHtmlTag/pkg2/C2.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java.i
 data/src/share/classes/com/sun/tools/javap/LocalVariableTableWriter.java.i
-data/test/tools/javac/policy/test1/B.java.i
-data/test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/C4.java.i
-data/test/tools/javac/generics/rare/Rare2.java.i
+data/test/tools/javap/typeAnnotations/NewArray.java.i
+data/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateTypeAnnotation.java.i
 data/test/tools/javac/AccessMethods/ConstructorAccess.java.i
 data/test/tools/javac/ForwardReference/T6676362b.java.i
 data/test/tools/apt/Discovery/servicesPhantomTouch.i
-data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_11.java.i
-data/test/tools/javac/completion/C.out.i
-data/test/tools/javac/processing/6430209/test0.java.i
+data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes6.java.i
+data/test/tools/javac/generics/typevars/6486430/T6486430a.java.i
+data/test/tools/javac/cast/6558559/T6558559b.java.i
 data/test/tools/javac/inheritedAccess/P1/pub.java.i
 data/test/tools/javac/T6361619.java.i
 data/test/tools/javac/generics/diamond/pos/Pos07.java.i
-data/test/tools/javac/InnerMethSig.java.i
+data/test/tools/javac/generics/6192945/MethodNeg.java.i
 data/test/tools/javac/diags/examples/ResourceClosed.java.i
 data/test/tools/apt/Basics/MethodAnnotations.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/type/DeclaredTypeImpl.java.i
@@ -399,56 +390,60 @@ data/test/tools/javac/implicitThis/WhichImplicitThis4.java.i
 data/test/tools/apt/Misc/servicesMisc.i
 data/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java.i
 data/make/netbeans/doclets/README.i
+data/src/share/classes/com/sun/tools/apt/main/Main.java.i
 data/src/share/classes/com/sun/tools/javah/JavahTask.java.i
+data/test/tools/javac/7003595/T7003595b.java.i
 data/test/tools/javac/api/T6437138.java.i
 data/test/tools/javac/ConditionalArgTypes_1.java.i
 data/test/tools/javac/boxing/NoBoxingByte.java.i
 data/test/tools/javac/NonStaticFieldExpr2.sh.i
-data/test/tools/javac/generics/Casting5.java.i
 data/src/share/classes/com/sun/tools/javap/Options.java.i
-data/test/tools/javac/miranda/6964669/pkg/B.java.i
-data/test/tools/javac/multicatch/Neg04eff_final.java.i
+data/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor8.java.i
 data/src/share/classes/com/sun/source/tree/AnnotatedTypeTree.java.i
 data/test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/C3.java.i
-data/test/tools/javac/ConstCharAppend.java.i
+data/test/tools/javac/boxing/NoBoxingFloat.java.i
+data/test/tools/javac/generics/6956758/T6956758pos.java.i
+data/test/tools/javac/AnonInnerException_2.java.i
 data/test/tools/apt/Basics/p1/p2/C1.java.i
 data/test/tools/javac/SynthName2.java.i
 data/test/tools/javac/annotations/neg/Constant.java.i
 data/test/com/sun/javadoc/testAbsLinkPath/pkg2/C2.java.i
 data/test/tools/javac/annotations/neg/Syntax1.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/InheritDocTaglet.java.i
-data/test/com/sun/javadoc/testNestedInlineTag/TestNestedInlineTag.java.i
+data/test/tools/javac/LabelHiding_1.java.i
 data/src/share/classes/com/sun/tools/javac/code/Kinds.java.i
 data/src/share/classes/com/sun/source/tree/Scope.java.i
 data/test/tools/javac/6330997/T6330997.java.i
-data/test/tools/javadoc/enum/docComments/pkg1/Operation.java.i
 data/test/tools/javac/ClassLiterals/LiteralInterface_3.java.i
-data/test/tools/javac/enum/NoFinal4.java.i
+data/test/tools/javac/util/list/TList.java.i
 data/test/com/sun/javadoc/testParamTaglet/pkg/Parent.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletWriter.java.i
 data/test/tools/javac/rawDiags/Note.java.i
-data/test/tools/javadoc/generics/genericSuper/expected.out.i
+data/test/tools/javac/generics/diamond/neg/Neg02.java.i
 data/test/com/sun/javadoc/testBadSourceFile/C1.java.i
-data/test/tools/javac/diags/examples/UncheckedMethodInvocation.java.i
+data/test/tools/javac/treepostests/TreePosTest.java.i
+data/test/com/sun/javadoc/testAnnotationTypes/pkg/AnnotationType.java.i
 data/test/tools/javac/diags/examples/ProcPackageDoesNotExist/ProcPackageDoesNotExist.java.i
-data/test/tools/javac/T5090006/T5090006.java.i
+data/test/tools/javac/diags/examples/EmptyIf.java.i
 data/test/tools/javac/InheritedPrivateImpl.java.i
 data/src/share/classes/javax/annotation/processing/FilerException.java.i
-data/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateTypeAnnotation.out.i
-data/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateTypeAnnotation.out.i
+data/test/tools/javac/fatalErrors/NoJavaLang.sh.i
+data/test/tools/javac/typeAnnotations/failures/common/parambounds/InvalidLocation.out.i
 data/test/tools/javac/InterfaceMemberClassModifiers.java.i
 data/test/tools/javac/api/6557752/T6557752.java.i
-data/test/tools/apt/lib/Ignore.java.i
+data/test/tools/javac/generics/inference/7086601/T7086601a.java.i
 data/test/tools/javac/generics/inference/6650759/T6650759h.java.i
-data/test/tools/javac/processing/model/type/MirroredTypeEx/OverEager.java.i
+data/src/share/classes/com/sun/source/tree/DoWhileLoopTree.java.i
+data/src/share/classes/javax/annotation/processing/SupportedOptions.java.i
 data/test/tools/javac/generics/GenericMerge.java.i
 data/test/tools/javac/typeAnnotations/failures/common/wildcards/InvalidLocation.java.i
 data/test/tools/javac/util/filemanager/TestName.java.i
+data/test/tools/apt/mirror/type/AnnoTyp.java.i
 data/test/tools/javac/depOverrides/doccomment/R.java.i
-data/test/tools/javac/limits/StringLength.java.i
+data/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateAnnotationValue.out.i
 data/test/com/sun/javadoc/testJavascript/TestJavascript.java.i
 data/test/tools/javac/diags/examples/ImportRequiresCanonical/p/Base.java.i
-data/test/tools/javac/LocalClasses_1.java.i
+data/test/tools/javac/policy/test1/D.java.i
 data/test/tools/javac/depOverrides/doccomment/B3.java.i
 data/test/tools/javac/scope/6225935/T6381787.java.i
 data/src/share/classes/com/sun/tools/apt/util/Bark.java.i
@@ -461,79 +456,71 @@ data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java.i
 data/test/tools/javac/generics/inference/6240565/T6240565.java.i
 data/src/share/classes/com/sun/tools/javac/jvm/CRTFlags.java.i
 data/test/tools/javac/DefiniteAssignment/DefAssignAfterThis_2.java.i
-data/test/tools/javac/UseEnum.java.i
+data/test/tools/javac/diags/examples/IllegalNonAsciiDigit.java.i
 data/test/tools/javac/processing/errors/TestFatalityOfParseErrors.java.i
 data/test/tools/javac/api/6431435/A.java.i
 data/test/tools/javac/diags/examples/OperatorCantBeApplied1.java.i
-data/test/tools/javac/diags/examples/PrintRounds/processors/AnnoProc.java.i
 data/test/tools/javac/annotations/neg/Z15.java.i
 data/src/share/classes/com/sun/tools/javac/api/JavacTool.java.i
-data/test/tools/javac/diags/examples/DeprecatedPluralAdditional/DeprecatedPlural.java.i
-data/test/tools/javac/4917091/Test256a.java.i
-data/test/tools/javac/MissingInclude.sh.i
+data/test/com/sun/javadoc/testGroupOption/pkg2/C.java.i
+data/test/tools/javac/depOverrides/annotation/I.java.i
 data/test/tools/apt/Misc/misc.sh.i
-data/test/tools/javac/generics/wildcards/BoundBug.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationMaker.java.i
 data/test/tools/javac/depOverrides/doccomment/I.java.i
 data/test/tools/javac/ExtDirs/ExtDirs.sh.i
-data/test/tools/javac/links/T.java.i
-data/test/tools/javac/generics/diamond/7030150/Pos02.java.i
+data/test/tools/javac/generics/wildcards/pos/InstanceOf.java.i
+data/src/share/classes/com/sun/tools/javadoc/AnnotationValueImpl.java.i
 data/src/share/classes/com/sun/tools/javah/JavahFileManager.java.i
-data/test/tools/javah/compareTest/CompareTest.java.i
 data/test/tools/javac/annotations/neg/Z16.java.i
 data/test/tools/javac/processing/options/testPrintProcessorInfo/Test.out.i
 data/src/share/classes/com/sun/javadoc/MemberDoc.java.i
+data/test/tools/javac/failover/FailOver12.java.i
 data/src/share/classes/com/sun/tools/javac/util/FatalError.java.i
-data/src/share/classes/com/sun/tools/javap/Context.java.i
-data/test/tools/javac/innerClassFile/x/C.java.i
+data/test/tools/javac/diags/examples/DiamondNotSupported.java.i
+data/test/tools/javac/OverrideChecks/T4720356b.java.i
 data/src/share/classes/javax/tools/OptionChecker.java.i
 data/test/tools/javac/diags/examples/UnclosedComment.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationProxyMaker.java.i
 data/test/tools/javac/ParseConditional.java.i
-data/test/tools/javac/multicatch/model/ModelChecker.java.i
 data/test/com/sun/javadoc/testHtmlTableTags/pkg2/C3.java.i
-data/test/com/sun/javadoc/testNavagation/pkg/E.java.i
+data/test/tools/javac/UseEnum.java.i
 data/test/tools/javac/diags/examples/ReportAccess.java.i
-data/test/tools/javac/NonStaticFinalVar.java.i
+data/test/tools/javac/typeAnnotations/failures/common/rest/MissingAnnotationValue.java.i
+data/test/tools/javac/jvm/T7024096.java.i
 data/test/com/sun/javadoc/testMemberInheritence/diamond/X.java.i
 data/test/tools/javac/capture/Capture3.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeOptionalMemberBuilder.java.i
-data/test/tools/javac/generics/6207386/T6207386.java.i
 data/test/tools/javac/cast/6219964/T6219964.java.i
-data/test/tools/javac/generics/typevars/5060485/Compatibility.java.i
 data/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateAnnotationValue.java.i
 data/test/tools/javac/StringsInSwitch/StringSwitches.java.i
 data/test/tools/javac/ObjectMethodRefFromInterface.java.i
 data/src/share/classes/com/sun/tools/javac/resources/legacy.properties.i
 data/test/com/sun/javadoc/AccessAsciiArt/p1/subpkg/SSC.java.i
 data/test/tools/javac/cast/6211853/T6211853.java.i
-data/test/tools/javac/diags/examples/DuplicateCaseLabel.java.i
 data/test/tools/javac/generics/wildcards/neg/Capture.java.i
-data/test/tools/apt/Basics/StaticMethodAnnotations.java.i
+data/test/tools/javac/generics/7007615/T7007615.java.i
 data/test/tools/javac/typeAnnotations/newlocations/MethodTypeParameters.java.i
-data/test/tools/javac/diags/examples/InitializerMustComplete.java.i
-data/test/tools/javadoc/annotations/annotatePackage/pkg1/A.java.i
+data/test/tools/javac/diags/examples/ArrayAndVarargs.java.i
 data/test/tools/javac/generics/7034511/T7034511b.out.i
 data/test/tools/javac/mandatoryWarnings/deprecated/Test5b.out.i
 data/test/tools/javac/generics/compat/OverrideBridge1.java.i
-data/test/tools/apt/mirror/declaration/EnumDecl.java.i
+data/test/tools/javac/generics/Multibound1.java.i
+data/test/tools/javac/7079713/TestCircularClassfile.java.i
 data/test/tools/javac/diags/examples/OverrideUncheckedThrown.java.i
 data/src/share/classes/com/sun/tools/classfile/ModuleMemberTable_attribute.java.i
 data/test/tools/javac/processing/errors/TestReturnCode.java.i
-data/test/tools/javac/cast/6558559/T6558559a.java.i
 data/test/tools/javac/TryWithResources/TwrSuppression.java.i
-data/test/tools/javac/diags/examples/ProcessorCantInstantiate/processors/AnnoProc.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java.i
 data/test/tools/javac/generics/typevars/5061359/Base.java.i
-data/test/tools/javac/processing/warnings/gold_sv_warn_0_2.out.i
 data/test/tools/javac/CyclicInheritance6/p1/A.java.i
-data/test/tools/javac/DuplicateClass2.java.i
-data/test/tools/javac/synthesize/Cloneable.java.i
+data/test/com/sun/javadoc/testHrefInDocComment/pkg/I1.java.i
 data/test/tools/javac/generics/6245699/T6245699c.java.i
 data/test/tools/javac/varargs/7042566/T7042566.java.i
-data/src/share/classes/com/sun/tools/apt/mirror/declaration/MemberDeclarationImpl.java.i
-data/test/tools/javac/protectedAccess/ProtectedMemberAccess4.out.i
-data/test/tools/javac/synthesize/Long.java.i
-data/test/tools/javac/policy/test1/A.java.i
-data/test/tools/javac/diags/examples/NoJavaLang.java.i
+data/test/tools/javac/7023703/T7023703pos.java.i
+data/test/tools/javac/diags/examples/WarnForwardRef.java.i
+data/test/tools/javap/classfile/6888367/T6888367.java.i
+data/test/tools/javac/generics/6985719/T6985719b.java.i
+data/test/tools/javac/generics/6531075/T6531075.java.i
 data/test/com/sun/javadoc/testBadSourceFile/C2.java.i
 data/test/tools/javac/diags/examples/ElseWithoutIf.java.i
 data/src/share/classes/com/sun/tools/javadoc/TypeVariableImpl.java.i
@@ -543,25 +530,26 @@ data/test/tools/javac/generics/diamond/neg/Neg05.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/LinkInfoImpl.java.i
 data/test/tools/javac/diags/examples/BadSourceFileHeader/sourcepath/p/A.java.i
 data/src/share/classes/com/sun/mirror/type/ClassType.java.i
-data/test/tools/javac/processing/filer/TestValidRelativeNames.java.i
-data/test/tools/javac/depOverrides/annotation/B3.java.i
+data/test/com/sun/javadoc/testHref/pkg/C3.java.i
 data/src/share/classes/com/sun/mirror/util/TypeVisitor.java.i
 data/test/tools/javap/stackmap/T6271292.out.i
 data/test/tools/javac/TryWithResources/ResourceOutsideTry.java.i
 data/test/com/sun/javadoc/testMemberInheritence/pkg/SubClass.java.i
 data/src/share/classes/com/sun/tools/javac/file/ZipFileIndexEntry.java.i
 data/test/com/sun/javadoc/testTitleInHref/pkg/Interface.java.i
-data/test/tools/javac/implicitThis/6541876/T6541876b.java.i
+data/test/tools/apt/mirror/declaration/PackageDecl.java.i
+data/test/tools/javac/mandatoryWarnings/deprecated/Test4c.out.i
 data/src/share/classes/javax/lang/model/element/ElementKind.java.i
 data/src/share/classes/com/sun/mirror/apt/AnnotationProcessorFactory.java.i
 data/test/tools/javac/depOverrides/doccomment/P.java.i
 data/test/tools/apt/mirror/util/Overrides.java.i
 data/test/tools/javac/generics/CyclicInheritance5.java.i
-data/test/tools/javac/typeAnnotations/failures/common/parambounds/MissingAnnotationValue.out.i
+data/src/share/classes/com/sun/tools/classfile/ConstantValue_attribute.java.i
 data/test/tools/javac/diags/examples/CyclicInheritance.java.i
 data/test/tools/javac/6402516/TestLocalElements.java.i
 data/test/tools/javac/depOverrides/annotation/A.java.i
 data/test/tools/javac/typeAnnotations/failures/AnnotationVersion.java.i
+data/test/tools/apt/mirror/declaration/ConstructorDecl.java.i
 data/test/tools/javac/Diagnostics/6722234/T6722234a.java.i
 data/test/tools/javac/api/T6877206.java.i
 data/test/tools/javac/generics/T6391995.java.i
@@ -569,52 +557,50 @@ data/test/tools/javac/mixedTarget/CompatibleAbstracts5.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java.i
 data/make/netbeans/common/standard-ide-actions-no-javadoc.ent.i
 data/test/tools/javac/cast/6932571/T6932571a.java.i
-data/test/tools/javac/protectedInner/pkg1/Base.java.i
 data/test/tools/javac/generics/rawSeparate/Hashtable.java.i
 data/src/share/classes/com/sun/source/util/TreeScanner.java.i
 data/test/tools/javac/typeAnnotations/failures/common/typeArgs/MissingAnnotationValue.java.i
 data/src/share/classes/com/sun/tools/classfile/Dependencies.java.i
 data/test/tools/javac/api/6400303/T6400303.java.i
 data/test/tools/javac/miranda/4711056/T3.java.i
+data/test/tools/javac/InitializerCompletion_3.java.i
 data/test/tools/apt/mirror/declaration/pkg1/AnAnnoType.java.i
 data/test/tools/javac/FaultySignature.java.i
 data/test/com/sun/javadoc/ValidHtml/p1/C.java.i
-data/test/tools/javac/annotations/neg/Cycle3.java.i
+data/test/tools/javac/InconsistentInheritedSignature.java.i
 data/src/share/classes/com/sun/source/tree/TryTree.java.i
 data/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateTypeAnnotation.java.i
-data/test/tools/javac/generics/wildcards/neg/CastWarn11.java.i
-data/test/tools/javac/typeAnnotations/failures/IncompleteVararg.out.i
+data/src/share/classes/com/sun/source/tree/LabeledStatementTree.java.i
+data/test/tools/javac/warnings/6747671/T6747671.java.i
 data/make/tools/CompileProperties/CompilePropertiesTask.java.i
 data/src/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java.i
 data/test/tools/apt/mirror/declaration/InterfaceDecl.java.i
-data/test/tools/javac/diags/examples/RawClassUse.java.i
-data/src/share/classes/com/sun/tools/javap/TypeAnnotationWriter.java.i
+data/test/tools/javadoc/annotations/annotateParams/pkg1/A.java.i
+data/src/share/classes/com/sun/source/tree/ImportTree.java.i
+data/test/com/sun/javadoc/AccessSummary/AccessSummary.java.i
 data/test/tools/javac/enum/forwardRef/T6425594.java.i
 data/test/tools/javac/DefiniteAssignment/DALoop1.java.i
 data/test/tools/javac/staticImport/Shadow.java.i
 data/test/tools/javac/CompoundBox.java.i
-data/test/tools/javap/typeAnnotations/Presence.java.i
 data/test/tools/apt/Discovery/servicesTweedle.i
+data/test/tools/javac/diags/examples/KindnameInstanceInit.java.i
 data/test/tools/javac/generics/6192945/Neg2.java.i
-data/test/tools/javac/miranda/6964669/pkg/C.java.i
+data/test/com/sun/javadoc/testDupParamWarn/pkg/Bar.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java.i
-data/test/tools/javac/TryWithResources/T7022711.java.i
-data/test/tools/javac/missingSuperRecovery/impl.class.i
-data/test/tools/javac/generics/compat/CovariantCompat1.java.i
+data/test/com/sun/javadoc/testModifier/Interface.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/util/TypesImpl.java.i
 data/src/share/classes/javax/lang/model/util/Types.java.i
 data/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateAnnotationValue.out.i
-data/test/tools/javac/api/Sibling.java.i
+data/test/tools/javac/T5048776.java.i
 data/src/share/classes/com/sun/tools/javac/code/Scope.java.i
 data/src/share/classes/com/sun/tools/javap/Main.java.i
 data/src/share/classes/com/sun/tools/javac/jvm/ByteCodes.java.i
 data/src/share/classes/com/sun/source/tree/SynchronizedTree.java.i
-data/test/tools/javac/generics/rawOverride/T6846972.java.i
 data/test/tools/javac/diags/examples/TryResourceThrowsInterruptedExc.java.i
-data/test/tools/javac/processing/environment/round/BuriedAnnotations.java.i
+data/test/tools/apt/Compile/servicesRound1.i
 data/test/tools/javac/diags/examples/EnumCantBeInstantiated.java.i
-data/test/tools/javac/typeAnnotations/failures/IndexArray.java.i
 data/test/tools/javac/diags/examples/NeitherConditionalSubtype.java.i
-data/test/tools/javac/DefiniteAssignment/DUSwitch.java.i
+data/test/tools/javac/generics/GenericAnonCtor.java.i
 data/test/tools/apt/Basics/ParameterAnnotations.java.i
 data/src/share/classes/com/sun/tools/classfile/ClassFile.java.i
 data/test/tools/javac/generics/inference/6638712/T6638712b.java.i
@@ -625,6 +611,7 @@ data/test/tools/javac/generics/inference/6938454/T6938454b.java.i
 data/test/tools/javac/6902720/Test.java.i
 data/test/tools/javac/diags/examples/InnerClassCantHaveStatic.java.i
 data/test/tools/javac/mandatoryWarnings/deprecated/Test4b.out.i
+data/test/tools/javac/CyclicInheritance.out.i
 data/test/tools/javac/diags/examples/EnumAsIdentifier2.java.i
 data/test/com/sun/javadoc/testSupplementary/TestSupplementary.java.i
 data/src/share/classes/com/sun/tools/javac/jvm/Pool.java.i
@@ -632,35 +619,34 @@ data/src/share/classes/javax/tools/StandardJavaFileManager.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java.i
 data/test/tools/javac/6400872/T6400872.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/VarArgs.java.i
-data/test/tools/javac/failover/FailOver11.java.i
+data/test/tools/javac/StringsInSwitch/RepeatedStringCaseLabels1.java.i
 data/test/tools/javac/DefiniteAssignment/T4718134.java.i
 data/make/test/bootstrap/javac.sh.i
 data/src/share/classes/com/sun/source/util/package-info.java.i
 data/test/tools/javac/diags/examples/CantReturnValueForVoid.java.i
-data/test/tools/javap/typeAnnotations/ArrayClassLiterals.java.i
+data/test/tools/javac/annotations/neg/Z1.java.i
 data/test/tools/javac/generics/6359951/T6359951.out.i
 data/test/tools/javac/varargs/6313164/T6313164.out.i
 data/src/share/bin/launcher.sh-template.i
 data/test/tools/javac/DefiniteAssignment/7003744/T7003744b.java.i
-data/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateAnnotationValue.out.i
+data/test/com/sun/javadoc/testValueTag/TestValueTag.java.i
 data/src/share/classes/com/sun/tools/javac/parser/JavacParser.java.i
 data/test/tools/javac/diags/examples/UnmatchedProcessorOptions/UnmatchedProcessorOptions.java.i
 data/test/com/sun/javadoc/JavascriptWinTitle/package-list.i
 data/test/tools/javac/6734819/T6734819a.java.i
+data/test/tools/javac/generics/syntax/6318240/BarNeg2a.java.i
 data/src/share/classes/com/sun/tools/classfile/EnclosingMethod_attribute.java.i
 data/test/tools/javac/6342411/a/Pub.java.i
+data/test/com/sun/javadoc/testMemberInheritence/diamond/Z.java.i
 data/test/tools/apt/Discovery/Dee.java.i
-data/test/tools/javac/generics/inference/6838943/T6838943.java.i
-data/test/tools/javac/modules/ModuleProvidesAttributeTest01.java.i
-data/test/tools/javac/annotations/neg/MemberOver.java.i
+data/src/share/classes/com/sun/tools/javac/comp/AttrContext.java.i
+data/test/tools/javac/enum/enumSwitch/Color2.java.i
 data/test/tools/javac/danglingDep/Test1.out.i
-data/test/com/sun/javadoc/testBackSlashInLink/C.java.i
+data/src/share/classes/com/sun/tools/javac/util/BasicDiagnosticFormatter.java.i
 data/test/tools/javap/T6305779.java.i
-data/test/tools/javac/enum/Enum2.java.i
-data/test/com/sun/javadoc/testIndex/pkg/Interface.java.i
-data/test/tools/javac/api/T6430241.java.i
+data/test/tools/javadoc/parser/7091528/T7091528.java.i
+data/test/tools/javac/generics/diamond/7030150/Pos02.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/package.html.i
-data/test/tools/javac/warnings/Deprecation.noLint.out.i
 data/test/tools/javac/TryWithResources/TwrLint.out.i
 data/test/tools/javac/ClassLiterals/InitializeTarget.java.i
 data/src/share/classes/com/sun/tools/javac/main/Main.java.i
@@ -668,79 +654,74 @@ data/src/share/classes/com/sun/mirror/apt/Filer.java.i
 data/src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/Wildcards.java.i
 data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_16.java.i
-data/test/tools/javah/6572945/gold/jni.file.3.i
+data/test/tools/javac/T7042623.java.i
 data/test/com/sun/javadoc/testRelativeLinks/pkg/C.java.i
 data/test/tools/javac/enum/FauxSpecialEnum1.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeBuilder.java.i
-data/test/tools/javac/generics/typevars/6182630/T6182630d.java.i
-data/test/tools/javac/processing/model/util/elements/doccomments/a/First.java.i
 data/test/tools/javah/6572945/gold/jni.file.2.i
-data/test/tools/javac/protectedInner/mypackage/Superclass.java.i
-data/test/tools/javac/ClassPathTest/ClassPathTest2.java.i
+data/test/tools/javac/fatalErrors/NoJavaLang.out.i
+data/src/share/classes/com/sun/source/util/AbstractTypeProcessor.java.i
 data/test/tools/javap/T4501661.java.i
 data/test/com/sun/javadoc/testPackagePage/TestPackagePage.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/InheritableTaglet.java.i
-data/test/tools/javac/modules/ModuleAttributeTest01.java.i
 data/test/tools/javac/ExtDirs/ext3/pkg1.jar.i
-data/test/com/sun/javadoc/testTaglets/TestTaglets.java.i
+data/src/share/classes/com/sun/tools/javadoc/SerializedForm.java.i
 data/test/tools/javac/diags/examples/VarMightAlreadyBeAssigned.java.i
 data/test/tools/javac/T6557865.java.i
 data/test/com/sun/javadoc/testTagInheritence/firstSentence/B.java.i
 data/test/tools/javac/depOverrides/annotation/Test2.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/NestedClassWriter.java.i
+data/test/tools/javac/generics/6294779/T6294779a.java.i
 data/test/tools/javac/6440583/T6440583.java.i
 data/test/tools/javac/InnerClassesAttribute/Outside.class.i
 data/test/tools/javac/typeAnnotations/failures/AnnotationVersion.out.i
 data/src/share/classes/com/sun/tools/javah/MainDoclet.java.i
 data/test/tools/javac/cast/6467183/T6467183a.out.i
 data/test/tools/javac/generics/T4695415.java.i
-data/test/tools/javac/generics/inference/6650759/T6650759e.java.i
 data/test/tools/javac/generics/inference/6638712/T6638712e.java.i
-data/test/tools/javac/diags/examples/ProcessorNotFound.java.i
-data/test/tools/javac/QualifiedThisAndSuper_1.java.i
+data/src/share/classes/com/sun/tools/javac/api/Messages.java.i
+data/test/tools/apt/Compile/ErrorAPF.java.i
 data/src/share/classes/javax/annotation/processing/Messager.java.i
 data/test/tools/javac/LocalClasses_2.sh.i
 data/test/tools/javac/staticImport/ImportInherit.java.i
 data/test/tools/javap/T4880672.java.i
 data/test/com/sun/javadoc/testHtmlStrongTag/pkg2/C2.java.i
 data/test/tools/javac/CascadedInnerNewInstance.java.i
-data/test/tools/javac/diags/examples/ProcFileCreateLastRound/ProcFileCreateLastRound.java.i
+data/test/tools/javac/generics/FinalBridge.java.i
 data/test/tools/javac/CyclicInheritance4.java.i
 data/test/tools/javac/QualifiedAccess/QualifiedAccess_3.java.i
 data/test/tools/javac/failover/FailOver01.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/Content.java.i
 data/test/tools/javac/generics/6711619/T6711619a.java.i
-data/test/tools/javac/generics/diamond/neg/Neg10.java.i
+data/test/tools/javac/generics/inference/6356673/T6365166.java.i
 data/test/tools/javac/enum/DA1.java.i
-data/test/tools/javac/diags/examples/MethodDoesNotOverride.java.i
+data/test/tools/apt/Compile/HelloWorld.java.i
 data/make/netbeans/apt/README.i
 data/make/test/HelloWorld.apt.gold.txt.i
 data/test/tools/javac/diags/examples/VarargsPlural/VarargsFilename.java.i
-data/test/tools/javac/scope/6225935/Estatico4.java.i
 data/test/com/sun/javadoc/testUseOption/pkg1/UsedClass.java.i
 data/src/share/classes/javax/lang/model/type/PrimitiveType.java.i
-data/test/tools/javac/typeAnnotations/failures/common/receiver/MissingAnnotationValue.out.i
-data/test/tools/javac/classreader/T7031108.java.i
-data/src/share/classes/com/sun/tools/javac/nio/PathFileManager.java.i
+data/test/tools/javac/T6356217/T6356217.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java.i
 data/src/share/classes/com/sun/tools/classfile/CharacterRangeTable_attribute.java.i
 data/test/tools/apt/Basics/goldenAggregate.txt.i
 data/test/tools/javac/processing/model/element/TestAnonClassNames.java.i
 data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_13.java.i
 data/src/share/classes/com/sun/source/tree/CatchTree.java.i
 data/make/test/bootstrap/javadoc.sh.i
-data/test/tools/javac/mandatoryWarnings/deprecated/Test.java.i
-data/test/tools/javac/meth/XlintWarn.java.i
+data/src/share/classes/com/sun/source/util/TaskListener.java.i
+data/test/tools/javac/generics/GenLit1.java.i
+data/test/tools/javac/diags/examples/CannotCreateArrayWithDiamond.java.i
+data/test/com/sun/javadoc/testHtmlTableTags/pkg2/package-info.java.i
 data/test/tools/javac/varargs/Varargs1.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexFrameWriter.java.i
 data/src/share/classes/com/sun/tools/javah/resources/Linux_sparc.properties.i
 data/test/tools/javac/T6435291/T.class.i
 data/test/tools/javac/diags/examples/UncheckedFilename.java.i
-data/test/tools/javac/packone/Mediator.java.i
-data/test/tools/javadoc/dupOk/sp2/p/B.java.i
+data/src/share/classes/com/sun/tools/javac/util/Context.java.i
 data/test/tools/javac/processing/filer/foo/bar/package-info.java.i
 data/test/tools/javac/api/TestResolveIdent.java.i
 data/test/tools/javac/T6247324.java.i
-data/test/tools/javac/LabelHiding_1.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkOutput.java.i
 data/test/tools/javac/diags/examples/DiamondRedundantArgs1.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/SplitIndexWriter.java.i
@@ -748,12 +729,12 @@ data/test/tools/javac/annotations/neg/Z4.java.i
 data/test/tools/javac/StoreClass.java.i
 data/test/tools/javac/cast/6358534/T6358534.java.i
 data/test/tools/javac/T6458749.java.i
-data/test/tools/javac/diags/examples/SunApiPluralAdditional/SunApiPlural.java.i
-data/test/tools/javac/warnings/DivZero.noLint.out.i
-data/test/tools/javac/diags/examples/ImproperTypeInnerRawParam.java.i
+data/test/tools/javac/T6406771.java.i
+data/test/tools/javac/DefiniteAssignment/DUBeforeDefined2.java.i
 data/test/tools/javadoc/generics/wildcards/Main.java.i
 data/test/tools/javac/cast/6507317/T6507317.java.i
 data/test/tools/javac/annotations/pos/Primitives.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/background.gif.i
 data/test/tools/javac/ImportUnnamed/foo/A.java.i
 data/test/tools/javac/api/TestResolveError.java.i
 data/test/tools/javac/ArrayCloneCodeGen.java.i
@@ -762,31 +743,30 @@ data/test/tools/javac/processing/6994946/SyntaxErrorTest.java.i
 data/src/share/classes/com/sun/tools/javac/parser/DocCommentScanner.java.i
 data/test/tools/javac/synthesize/Void.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PackageSummaryBuilder.java.i
-data/test/tools/javac/p1/BS.java.i
+data/test/tools/javac/generics/wildcards/UnboundArray.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/PackageListWriter.java.i
 data/test/tools/javac/abstract/T3.java.i
+data/test/tools/javac/generics/diamond/neg/Neg01.out.i
 data/test/com/sun/javadoc/testSourceTab/SingleTab/C.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/markup/RawHtml.java.i
-data/test/tools/javac/ClassLiterals/InnerClassLiterals.java.i
+data/test/tools/javac/generics/Nonlinear.java.i
 data/test/com/sun/javadoc/testDocFileDir/pkg/doc-files/subdir-excluded1/testfile.txt.i
 data/test/tools/apt/Basics/apt.sh.i
 data/src/share/classes/com/sun/tools/javac/util/Filter.java.i
 data/test/tools/javac/miranda/T4666866.out.i
 data/test/tools/javac/nested/5009484/Y.java.i
 data/test/tools/javac/diags/examples/ExceptNeverThrown.java.i
-data/test/tools/javac/InnerNamedConstant_2.out.i
+data/test/tools/javac/BadAnnotation.java.i
 data/test/tools/javac/unicode/UnicodeCommentDelimiter.java.i
 data/test/tools/apt/Compile/servicesStaticApf.i
 data/test/tools/javadoc/generics/tparamCycle/Main.java.i
 data/test/tools/javac/diags/examples/InvalidHexNumber.java.i
 data/test/tools/javac/6521805/T6521805a_1.out.i
-data/test/tools/javac/typeAnnotations/failures/target/Constructor.out.i
-data/test/tools/javac/T6654037.java.i
+data/test/tools/javadoc/annotations/elementTypes/expected.out.i
+data/test/tools/javac/AccessMethods/UplevelPrivateConstants.java.i
 data/test/tools/javac/diags/examples/ImportRequiresCanonical/ImportRequiresCanonical.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkInfo.java.i
 data/test/tools/javac/ExtendsAccess/p/ExtendsAccess.java.i
-data/test/tools/javap/typeAnnotations/ClassLiterals.java.i
-data/test/tools/javadoc/annotations/annotatePackage/Main.java.i
 data/test/tools/javac/IllegallyOptimizedException.java.i
 data/test/tools/apt/Discovery/Empty.java.i
 data/test/tools/javac/diags/examples/WarnSyntheticNameConflict.java.i
@@ -798,115 +778,113 @@ data/test/tools/javac/generics/CyclicInheritance3.java.i
 data/test/tools/javac/apt.sh.i
 data/test/com/sun/javadoc/testEmptyClass/src/Empty.java.i
 data/src/share/classes/javax/lang/model/element/Name.java.i
-data/test/tools/javac/generics/inference/6369605/T6369605b.java.i
 data/test/tools/javac/cast/6467183/T6467183a.java.i
 data/src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties.i
-data/test/tools/javac/generics/LoadOrder.java.i
-data/src/share/classes/com/sun/mirror/declaration/ExecutableDeclaration.java.i
+data/test/tools/javac/multicatch/Pos06.java.i
+data/test/tools/javac/generics/MissingCast.java.i
+data/test/tools/javac/NonAmbiguousField/two/Child.java.i
 data/src/share/classes/com/sun/tools/javah/LLNI.java.i
 data/test/tools/javac/DefiniteAssignment/T4718142.java.i
 data/test/tools/javac/6342411/a/Base.java.i
 data/test/tools/javac/meth/InvokeDynTrans.out.i
-data/test/tools/javac/diags/examples/UnclosedCharLiteral.java.i
-data/test/tools/javac/diags/examples/OverrideStatic.java.i
+data/test/tools/javac/typeAnnotations/failures/LintCast.out.i
+data/test/tools/javac/ClassToTypeParm.java.i
 data/test/tools/javac/miranda/4686148/AbstractTest.java.i
 data/test/tools/javac/ImportCycle/foo/Middle.java.i
 data/src/share/classes/com/sun/tools/classfile/StackMap_attribute.java.i
 data/test/com/sun/javadoc/testSourceTab/TestSourceTab.java.i
 data/test/tools/javadoc/annotations/shortcuts/pkg1/Marker.java.i
-data/test/tools/javac/generics/wildcards/AssignmentSameType4.java.i
 data/test/tools/javac/diags/examples/IllegalComboModifiers.java.i
-data/src/share/classes/javax/tools/FileObject.java.i
+data/test/tools/javac/meth/MakeNegTests.sh.i
 data/test/tools/javac/OverrideChecks/6199153/T6199153.out.i
-data/test/tools/javac/SynthName1.java.i
 data/test/com/sun/javadoc/testCmndLineClass/pkg1/C1.java.i
-data/test/tools/javac/SuperMeth.java.i
+data/test/tools/javac/SuperNew2.java.i
+data/test/tools/javac/api/6421756/T6421756.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/ExecutableDeclarationImpl.java.i
 data/test/tools/javac/InterfaceInInner.out.i
+data/make/netbeans/apt/nbproject/project.xml.i
 data/test/tools/javac/ForwardReference/ForwardReference_4.java.i
 data/test/tools/javac/diags/examples/NotWithinBounds.java.i
-data/test/tools/javac/T6759996.java.i
 data/test/tools/javac/enum/T6675483.java.i
 data/make/build.properties.i
 data/test/tools/javac/DefiniteAssignment/T4720379.java.i
 data/test/tools/javac/ExprQualifiedType.java.i
 data/test/tools/javac/generics/syntax/6318240/Foo.java.i
-data/test/tools/javac/T6873849.java.i
-data/test/tools/javac/scope/7017664/ImplementationCacheTest.java.i
+data/test/tools/javac/6410653/T6410653.java.i
 data/test/tools/javac/diags/examples/VarargsNonReifiableType.java.i
-data/test/tools/apt/Compile/servicesRound2.i
 data/src/share/classes/com/sun/tools/apt/mirror/type/VoidTypeImpl.java.i
 data/test/tools/javac/NonStaticFieldExpr3.sh.i
 data/src/share/classes/com/sun/tools/javac/comp/AttrContextEnv.java.i
+data/test/tools/javac/file/T7068451.java.i
 data/test/com/sun/javadoc/testRelativeLinks/TestRelativeLinks.java.i
-data/test/tools/javac/cast/6932571/T6932571neg.java.i
+data/test/tools/javac/DefiniteAssignment/DefAssignAfterIf_2.java.i
+data/src/share/classes/javax/lang/model/util/SimpleElementVisitor8.java.i
 data/test/tools/javac/4880220/T4880220.empty.out.i
-data/test/tools/javac/processing/6350124/Marker.java.i
-data/test/tools/javac/cast/5034609/T5034609.java.i
+data/test/tools/javac/typeAnnotations/failures/target/IncompleteArray.java.i
+data/test/com/sun/javadoc/testJavascript/pkg/C.java.i
 data/test/tools/javac/Parens2.java.i
-data/test/tools/javac/StandaloneQualifiedSuper.java.i
+data/test/tools/javac/cast/6932571/T6932571b.java.i
 data/src/share/classes/com/sun/source/tree/ArrayAccessTree.java.i
 data/test/tools/apt/Basics/annot/AnnotSimple.java.i
-data/test/tools/javac/implicitThis/6541876/T6541876a.java.i
+data/test/tools/javac/typeAnnotations/failures/common/rest/DuplicateAnnotationValue.java.i
 data/test/tools/javac/OverrideChecks/6400189/T6400189b.out.i
-data/test/tools/javac/options/T6986895.java.i
+data/test/tools/javac/policy/test1/B.java.i
 data/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateAnnotationValue.out.i
 data/test/tools/javac/generics/rawSeparate/CharScanner.java.i
 data/test/tools/javac/diags/examples/OverrideMeth.java.i
 data/src/share/classes/com/sun/tools/javac/jigsaw/JigsawLibraryLocation.java.i
 data/test/tools/javac/ExtDirs/ExtDirTest_2.java.i
-data/src/share/classes/com/sun/mirror/type/PrimitiveType.java.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/package.html.i
 data/src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java.i
 data/test/com/sun/javadoc/testConstantValuesPage/TestConstantValuesPage.java.i
-data/test/tools/javac/quid/MakeNegTests.sh.i
 data/test/com/sun/javadoc/testPrivateClasses/pkg/PrivateInterface.java.i
 data/test/tools/javac/api/6406133/T6406133.java.i
 data/test/tools/javac/generics/Covar2.java.i
-data/test/tools/javac/typeAnnotations/failures/common/parambounds/InvalidLocation.out.i
-data/test/tools/javac/generics/ErasureClashCrash.java.i
-data/test/tools/javac/generics/inference/4941882/T4941882.java.i
+data/test/tools/javac/unit/T6198196.java.i
+data/src/share/classes/com/sun/tools/classfile/package.html.i
 data/test/tools/javac/6835430/T6835430.java.i
 data/test/com/sun/javadoc/testNestedInlineTag/testtaglets/BoldTaglet.java.i
 data/src/share/opensource/javac/nbproject/project.xml.i
-data/test/com/sun/javadoc/testGroupOption/pkg2/C.java.i
+data/test/tools/javac/diags/examples/DeprecatedPluralAdditional/DeprecatedPlural.java.i
 data/test/tools/javap/T6587786.java.i
+data/test/tools/javac/diags/examples/ProcUseImplicit/processors/AnnoProc.java.i
 data/make/test/lib/src.sh.i
 data/src/share/classes/com/sun/tools/javac/code/DeferredLintHandler.java.i
 data/test/tools/apt/Scanners/servicesScanner.i
-data/test/tools/javac/multicatch/Pos06.java.i
+data/test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java.i
 data/test/com/sun/javadoc/PackagesHeader/p1/C1.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/MethodDeclarationImpl.java.i
 data/test/com/sun/javadoc/AuthorDD/p1/C1.java.i
-data/test/tools/javac/generics/wildcards/neg/CastFail6.java.i
+data/test/com/sun/javadoc/testHiddenMembers/pkg/SubClass.java.i
+data/test/tools/javac/generics/wildcards/T5097548b.java.i
+data/test/tools/javac/generics/rawOverride/7062745/GenericOverrideTest.java.i
 data/test/tools/javac/diags/examples/ProcIllegalFileName/ProcIllegalFileName.java.i
 data/test/tools/javac/generics/inference/6356673/Test.java.i
 data/test/tools/javac/diags/examples/NotEnclClass.java.i
-data/test/tools/javac/varargs/warning/Warn5.java.i
+data/test/tools/javac/api/TestJavacTask.java.i
+data/test/com/sun/javadoc/testThrowsInheritence/C.java.i
 data/test/tools/javac/generics/6182950/T6182950c.java.i
 data/test/tools/javac/depOverrides/annotation/R.java.i
-data/test/tools/javac/generics/wildcards/ContraArg.java.i
 data/test/tools/javac/generics/6910550/T6910550c.out.i
 data/test/tools/javac/api/TestContainTypes.java.i
 data/test/tools/javac/expression/ObjectAppend.java.i
-data/test/com/sun/javadoc/AccessSummary/AccessSummary.java.i
-data/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateTypeAnnotation.out.i
-data/src/share/classes/com/sun/tools/apt/mirror/util/TypesImpl.java.i
-data/test/tools/javap/classfile/deps/GetDeps.java.i
+data/src/share/classes/com/sun/tools/javap/TypeAnnotationWriter.java.i
+data/test/tools/javac/generics/compat/CovariantCompat1.java.i
+data/src/share/classes/com/sun/tools/javac/code/Lint.java.i
 data/src/share/classes/com/sun/source/tree/ExpressionStatementTree.java.i
 data/test/tools/javac/6902720/E1.java.i
 data/test/tools/javac/diags/examples/IllegalForwardRef.java.i
 data/test/tools/javac/6547131/p/Outer$I.jasm.i
-data/test/tools/javadoc/FlagsTooEarly.java.i
 data/test/com/sun/javadoc/testPackagePage/com/pkg/package.html.i
 data/test/tools/javac/diags/examples/CantResolveLocationArgsParams.java.i
-data/test/tools/javac/T4093617/T4093617.java.i
+data/test/tools/javac/OuterParameter_1.java.i
 data/test/tools/javac/diags/examples/NotDefAccessClassIntfCantAccess/p/C.java.i
 data/test/tools/javac/depOverrides/doccomment/Test2R.out.i
 data/test/tools/javac/T6534287.java.i
 data/src/share/opensource/javac/Makefile.i
 data/test/tools/javac/multicatch/7005371/SubTest.java.i
-data/test/tools/javap/T6866657.java.i
 data/test/tools/javac/api/6731573/T6731573.java.i
+data/test/tools/apt/Compile/WrappedStaticApf.java.i
 data/test/com/sun/javadoc/testBadPackageFileInJar/TestBadPackageFileInJar.java.i
 data/test/tools/javac/6668794/badSource/Test.out.i
 data/test/tools/javac/IllDefinedOrderOfInit.java.i
@@ -914,11 +892,10 @@ data/test/tools/javac/Paths/6638501/JarFromManifestFailure.java.i
 data/test/tools/javac/diags/examples/ProcCantFindClass/processors/AnnoProc.java.i
 data/test/tools/javac/generics/typevars/4856983/T4856983a.java.i
 data/test/tools/javac/processing/filer/TestFilerConstraints.java.i
-data/test/tools/javac/varargs/5088429/T5088429Neg02.java.i
 data/test/tools/javac/generics/diamond/6996914/T6996914b.java.i
 data/test/tools/javac/generics/BridgeOrder.java.i
 data/test/tools/javac/CloneableProblem.java.i
-data/test/tools/javac/api/TestGetElement.java.i
+data/test/tools/javac/multicatch/Pos10.java.i
 data/test/tools/javac/mandatoryWarnings/deprecated/Test4d.out.i
 data/test/tools/apt/mirror/declaration/AnnoVal.java.i
 data/test/tools/javac/diags/examples/InaccessibleVarargsType/p1/B.java.i
@@ -926,19 +903,17 @@ data/test/tools/javac/diags/examples/TypesIncompatible.java.i
 data/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java.i
 data/test/tools/apt/Basics/Milk.java.i
 data/test/tools/javac/failover/FailOver09.java.i
-data/test/tools/javac/protectedAccess/ProtectedMemberAccess1.java.i
+data/test/com/sun/javadoc/testThrowsTag/pkg/T3.java.i
 data/test/tools/javac/jvm/6397652/com/test/Test.java.i
-data/test/tools/javac/meth/InvokeMHTrans.java.i
 data/test/com/sun/javadoc/testClassTree/TestClassTree.java.i
-data/test/tools/javac/policy/test2/Test.java.i
+data/src/share/opensource/javac/doc/javac_lifecycle/contents.html.i
 data/src/share/classes/com/sun/tools/apt/comp/BootstrapAPF.java.i
 data/test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java.i
 data/test/com/sun/javadoc/testTopOption/pkg/Cl.java.i
 data/src/share/classes/com/sun/source/tree/ModulePermitsTree.java.i
-data/test/tools/javac/generics/parametricException/J.java.i
 data/test/tools/javac/generics/5086027/T5086027pos.java.i
 data/test/tools/javac/T5048776b.out.i
-data/src/share/classes/com/sun/tools/javac/code/Type.java.i
+data/test/tools/javac/protectedAccess/ProtectedMemberAccess1.java.i
 data/test/tools/javah/6257087/foo_bar.h.i
 data/test/tools/javac/T6404756.java.i
 data/src/share/classes/com/sun/mirror/apt/RoundCompleteEvent.java.i
@@ -948,7 +923,6 @@ data/test/tools/javac/QualifiedAccess/QualifiedAccess_1.java.i
 data/src/share/classes/com/sun/tools/javadoc/DocImpl.java.i
 data/test/tools/javac/varargs/5088429/T5088429Pos01.java.i
 data/test/com/sun/javadoc/testDocRootInlineTag/TestDocRootInlineTag.java.i
-data/test/tools/javac/mixedTarget/ExtendCovariant2.java.i
 data/test/tools/javac/diags/examples/UnclosedStringLiteral.java.i
 data/test/tools/javac/diags/examples/PackageInfoAlreadySeen/p/package-info.java.i
 data/test/tools/javac/diags/examples/IllegalEscapeChar.java.i
@@ -956,89 +930,85 @@ data/test/com/sun/javadoc/testAbsLinkPath/TestAbsLinkPath.java.i
 data/test/tools/javac/enum/FauxEnum1.java.i
 data/test/tools/javac/DefiniteAssignment/DUSwitch2.java.i
 data/src/share/classes/com/sun/source/tree/ReturnTree.java.i
-data/test/tools/javadoc/sourceOnly/p/NonSource.class.i
+data/test/tools/javac/diags/examples/SuperNotAllowedInEnum.java.i
 data/src/share/classes/com/sun/tools/javac/comp/TransTypes.java.i
 data/src/share/classes/javax/tools/ForwardingJavaFileManager.java.i
+data/test/tools/javadoc/generics/genericClass/Main.java.i
 data/test/tools/javac/6199662/Tree.java.i
-data/test/tools/javadoc/generics/genericInterface/pkg1/A.java.i
+data/test/tools/javac/generics/odersky/Test2.java.i
 data/test/tools/javac/api/6415780/T6415780.java.i
-data/test/tools/javac/generics/inference/4942040/T4942040.java.i
 data/test/tools/javac/generics/Casting.java.i
 data/test/com/sun/javadoc/testInterface/pkg/Child.java.i
+data/test/com/sun/javadoc/testUseOption/pkg2/C3.java.i
+data/test/tools/javac/T6942649.java.i
 data/test/tools/javac/unicode/TripleQuote.java.i
-data/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java.i
 data/test/tools/javac/javazip/Test.sh.i
 data/test/tools/javac/processing/model/element/TestResourceElement.java.i
-data/test/tools/javac/unit/T6198196.java.i
 data/test/tools/javac/Diagnostics/6722234/T6722234d_2.out.i
-data/test/tools/javac/generics/FinalBridge.java.i
+data/test/tools/javac/InstanceInitException_1.java.i
 data/test/tools/javac/diags/examples/RefAmbiguous.java.i
 data/test/tools/javac/BadOptimization/DeadCode3.java.i
-data/test/tools/javac/stackmap/UninitThis.java.i
 data/test/tools/javac/api/6410643/T6410643.java.i
-data/test/tools/javac/6668794/badClass/B.java.i
-data/test/tools/javac/generics/inference/6650759/T6650759l.java.i
-data/test/tools/javac/multicatch/Neg02.out.i
+data/test/tools/javac/6402516/CheckLocalElements.java.i
+data/test/tools/javac/mandatoryWarnings/deprecated/Test.java.i
+data/test/tools/javac/file/T7068437.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlAttr.java.i
 data/test/tools/javac/diags/examples/VarargsArgumentMismatch.java.i
-data/test/tools/javac/varargs/5088429/T5088429Neg01.java.i
+data/test/tools/javac/diags/examples/DiamondRedundantArgs.java.i
 data/test/tools/javac/diags/examples/FinallyWithoutTry.java.i
+data/test/tools/javac/processing/model/type/MirroredTypeEx/Plurality.java.i
 data/test/com/sun/javadoc/testClassTree/pkg/Coin.java.i
 data/make/netbeans/doclets/build.xml.i
 data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_7.java.i
-data/test/tools/javac/tree/AbstractTreeScannerTest.java.i
 data/test/tools/javac/diags/examples/NotLoopLabel.java.i
 data/test/tools/javah/SubClassConsts.out.i
 data/test/tools/javac/4917091/Test256b.out.i
 data/test/tools/javac/processing/model/element/TestNames.java.i
 data/test/tools/javac/typeAnnotations/newlocations/TypeCasts.java.i
-data/test/tools/javac/staticImport/StaticImport2.java.i
-data/test/tools/javac/processing/model/element/TestMissingElement2/TestMissingGenericClass1.java.i
-data/test/tools/javadoc/annotations/defaults/pkg1/B.java.i
+data/test/com/sun/javadoc/testLinkOption/testNewLineInLink/C.java.i
+data/src/share/classes/javax/lang/model/util/ElementKindVisitor8.java.i
 data/test/tools/javac/6400872/A.java.i
-data/test/tools/javac/policy/test1/Test1a.java.i
 data/test/tools/javac/diags/examples/CantInheritDiffArg.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/package.html.i
-data/test/tools/javadoc/6964914/Error.java.i
-data/test/tools/javac/varargs/6199075/T6199075.java.i
-data/test/tools/javac/ExceptionalFinally2.java.i
+data/test/tools/javac/Diagnostics/6722234/T6722234b_2.out.i
 data/test/tools/apt/Discovery/servicesTouch.i
 data/test/tools/javac/enum/FauxEnum2.java.i
 data/test/tools/javac/falseCycle/FalseCycle.java.i
-data/test/tools/javac/implicitThis/WhichImplicitThis11.java.i
+data/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateAnnotationValue.out.i
 data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_12.java.i
 data/test/tools/javac/generics/typevars/6968793/T6968793.out.i
 data/test/tools/javac/lib/JavacTestingAbstractProcessor.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml.i
+data/test/tools/javac/processing/T6920317.java.i
 data/src/share/classes/com/sun/javadoc/SourcePosition.java.i
-data/test/tools/apt/lib/Tester.java.i
-data/src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java.i
+data/test/tools/javac/generics/wildcards/BoundBug.java.i
 data/src/share/classes/com/sun/tools/javac/api/WrappingJavaFileManager.java.i
 data/test/tools/javac/generics/wildcards/neg/CastFail3.java.i
-data/src/share/classes/javax/annotation/processing/RoundEnvironment.java.i
+data/test/com/sun/javadoc/constantValues/TestConstantValues.java.i
 data/test/tools/javac/depOverrides/doccomment/Test1A.out.i
 data/test/tools/javac/annotations/6881115/T6881115.out.i
 data/test/tools/javac/Diagnostics/6862608/T6862608b.java.i
 data/test/tools/javac/processing/model/util/elements/Foo.java.i
-data/test/tools/javac/Diagnostics/6862608/T6862608a.out.i
+data/test/tools/javac/UnreachableVar.java.i
 data/test/tools/javac/cast/7005671/T7005671.out.i
 data/test/tools/javac/generics/wildcards/pos/AmbiguousCast2.java.i
 data/test/tools/javac/boxing/NoBoxingDouble.java.i
-data/test/tools/javac/diags/examples/SunApiFilename.java.i
+data/ASSEMBLY_EXCEPTION.i
 data/test/tools/javac/miranda/6964669/T6964669.java.i
-data/test/tools/javac/multicatch/Neg02eff_final.java.i
+data/test/tools/apt/Compile/HelloAnnotation.java.i
 data/test/tools/apt/Basics/foo/bar/Baz.java.i
+data/src/share/classes/com/sun/tools/javah/resources/Linux_ppc.properties.i
 data/test/com/sun/javadoc/testDocRootLink/pkg1/C1.java.i
 data/test/tools/apt/Basics/ClassAnnotations.java.i
 data/test/com/sun/javadoc/testThrowsTag/pkg/T6.java.i
 data/test/tools/javac/PrivateLocalConstructor.java.i
 data/test/tools/javac/6491592/T6491592.java.i
 data/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestAnnotationType.java.i
-data/test/tools/javac/generics/6213818/T6213818.java.i
+data/test/tools/javac/TryWithResources/T7022711.out.i
 data/test/tools/javac/diags/examples/Location.java.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java.i
+data/test/tools/apt/Discovery/PhantomUpdate.java.i
 data/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateAnnotationValue.java.i
-data/test/tools/javac/multicatch/Neg01.out.i
-data/test/tools/javac/generics/rawOverride/6557199/T6557199.java.i
+data/test/tools/javac/file/zip/Utils.java.i
 data/src/share/opensource/javac/build.properties.i
 data/src/share/classes/javax/lang/model/util/ModuleResolver.java.i
 data/test/tools/javac/diags/examples/WarnSelfRef.java.i
@@ -1048,12 +1018,12 @@ data/test/tools/javac/DefiniteAssignment/T4721998.java.i
 data/test/com/sun/javadoc/testThrowsInheritence/TestThrowsTagInheritence.java.i
 data/test/tools/javac/diags/examples/ErrProcMessager/ErrProcMessager.java.i
 data/test/tools/javac/InterfaceMemberClassModifiers.out.i
-data/test/com/sun/javadoc/testHrefInDocComment/pkg/I2.java.i
+data/test/tools/javac/FinalInitializer_2.java.i
 data/test/tools/javac/Object2.java.i
 data/src/share/classes/com/sun/tools/javac/util/Name.java.i
-data/test/tools/javac/policy/test1/byfile.ACD.out.i
+data/test/com/sun/javadoc/testPackagePage/pkg2/C.java.i
 data/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor6.java.i
-data/test/tools/apt/mirror/declaration/MethodDecl.java.i
+data/test/tools/javac/diags/examples/OverrideIncompatibleReturn.java.i
 data/test/tools/javac/diags/examples/OverrideVarargsMissing.java.i
 data/test/tools/javac/typeAnnotations/failures/common/innertypeparams/InvalidLocation.out.i
 data/test/tools/javac/annotations/6365854/test2.out.i
@@ -1061,12 +1031,9 @@ data/test/tools/javac/6717241/T6717241b.java.i
 data/test/tools/javac/TryWithResources/TwrOnNonResource.java.i
 data/test/tools/javac/DefiniteAssignment/DABlock.java.i
 data/test/com/sun/javadoc/AccessSkipNav/p2/C2.java.i
-data/test/tools/javac/generics/inference/T6835428.java.i
 data/src/share/classes/com/sun/tools/javac/file/SymbolArchive.java.i
 data/test/tools/javac/AnonClsInIntf.java.i
-data/test/tools/javac/synthesize/Number.java.i
 data/test/tools/javac/typeAnnotations/newlocations/Receivers.java.i
-data/test/tools/javac/processing/6350124/T6350124.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlConstants.java.i
 data/src/share/classes/com/sun/source/tree/LineMap.java.i
 data/test/tools/javac/importContext/namedPackage/foo/Foo.java.i
@@ -1078,14 +1045,15 @@ data/test/tools/javac/ImportCycle/foo/Bottom2.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/LinkOutputImpl.java.i
 data/test/tools/javac/processing/TestWarnErrorCount.java.i
 data/test/tools/javac/generics/wildcards/neg/CastFail7.java.i
+data/test/com/sun/javadoc/DocRootSlash/p2/C2.java.i
 data/test/tools/javac/6758789/T6758789a.java.i
 data/src/share/classes/javax/lang/model/util/SimpleElementVisitor6.java.i
+data/test/com/sun/javadoc/testUseOption/pkg2/package.html.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocFinder.java.i
 data/test/tools/javac/failover/FailOver13.java.i
 data/src/share/classes/com/sun/tools/javac/util/Debug.java.i
 data/src/share/classes/com/sun/tools/javac/jvm/CRTable.java.i
 data/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateAnnotationValue.java.i
-data/test/tools/javac/unicode/FirstChar.java.i
 data/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateAnnotationValue.java.i
 data/test/tools/javac/generics/typevars/5061359/T5061359a.java.i
 data/test/tools/javac/unit/util/list/AbstractList.java.i
@@ -1093,37 +1061,36 @@ data/test/tools/javac/6863465/T6863465a.out.i
 data/test/tools/javac/processing/errors/TestOptionSyntaxErrors.java.i
 data/test/com/sun/javadoc/testTitleInHref/pkg/Class.java.i
 data/test/tools/javac/6979683/TestCast6979683_BAD38.java.errlog.i
-data/test/tools/javadoc/6958836/Test.java.i
+data/test/tools/javac/diags/examples/DefaultAllowedInIntfAnnotationMember.java.i
 data/test/tools/javac/diags/examples/CountWarn.java.i
 data/test/tools/javac/generics/wildcards/neg/CastFail12.java.i
-data/test/tools/javac/generics/inference/6273455/T6273455.java.i
 data/test/tools/javac/generics/6910550/T6910550e.java.i
 data/test/com/sun/javadoc/testNotifications/pkg/C.java.i
-data/test/tools/javac/RawCrash.java.i
+data/test/tools/javac/limits/StringLength.java.i
 data/src/share/classes/com/sun/tools/javac/parser/Scanner.java.i
 data/test/tools/javac/diags/examples/AnonClassImplInterfaceNoQualForNew.java.i
 data/test/tools/javac/7024568/T7024568.java.i
+data/test/tools/javac/Diagnostics/6799605/T6799605.out.i
 data/test/tools/javac/depOverrides/annotation/Test1B.out.i
 data/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java.i
 data/src/share/classes/com/sun/source/tree/ForLoopTree.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/Foo.java.i
 data/test/tools/javac/generics/wildcards/pos/Capture.java.i
 data/test/tools/javadoc/generics/genericInnerAndOuter/expected.out.i
-data/src/share/classes/javax/lang/model/type/TypeVariable.java.i
+data/test/tools/javac/diags/examples/UnsupportedBinaryLiteral.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/EnumConstantWriter.java.i
-data/src/share/classes/com/sun/tools/javac/file/CloseableURLClassLoader.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstantsSummaryWriter.java.i
 data/test/com/sun/javadoc/testUseOption/pkg1/C8.java.i
-data/test/tools/javac/diags/examples/OverrideIncompatibleReturn.java.i
 data/test/tools/javac/diags/examples/UncheckedCall.java.i
 data/test/tools/javac/generics/wildcards/neg/CastFail20.java.i
 data/test/tools/javac/enum/EnumSwitch2.java.i
-data/src/share/classes/javax/lang/model/util/ElementFilter.java.i
+data/test/tools/javac/scope/7046348/EagerInterfaceCompletionTest.java.i
 data/test/tools/javac/enum/6350057/T6350057.java.i
 data/src/share/classes/com/sun/mirror/util/DeclarationVisitors.java.i
-data/test/tools/javac/failover/FailOver14.java.i
+data/test/tools/javac/multicatch/Neg07.out.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/Foo3.java.i
 data/test/com/sun/javadoc/testHref/pkg/C2.java.i
-data/test/tools/javac/modules/ModuleAccessTest01.java.i
+data/test/tools/javac/5017953/T5017953.out.i
 data/test/tools/javac/enum/Enum3.java.i
 data/test/com/sun/javadoc/testUseOption/pkg1/C4.java.i
 data/test/tools/javac/SynchronizedClass.out.i
@@ -1134,48 +1101,49 @@ data/test/tools/javac/generics/5086027/T5086027.java.i
 data/test/com/sun/javadoc/AccessAsciiArt/AccessAsciiArt.java.i
 data/test/tools/javac/mixedTarget/CompatibleAbstracts1.java.i
 data/src/share/classes/javax/annotation/processing/SupportedSourceVersion.java.i
-data/test/com/sun/javadoc/testParamTaglet/pkg/C.java.i
+data/make/test/contents.gold.txt.i
 data/src/share/classes/com/sun/tools/classfile/StackMapTable_attribute.java.i
 data/test/tools/javadoc/varArgs/expected.out.i
+data/test/tools/javac/generics/T4661029.java.i
 data/test/tools/javac/T6403466.out.i
-data/test/tools/javap/T4075403.java.i
 data/test/tools/javac/processing/model/element/TestMissingElement/TestMissingElement.java.i
-data/test/tools/javac/annotations/pos/AnnotationMethods.java.i
+data/test/tools/javac/processing/model/util/BinaryName.java.i
 data/test/com/sun/javadoc/testRelativeLinks/pkg/package.html.i
 data/src/share/classes/com/sun/tools/javac/api/DiagnosticFormatter.java.i
 data/test/tools/javac/diags/examples/InaccessibleVarargsType/InaccessibleVarargsType.java.i
 data/src/share/classes/com/sun/mirror/apt/Messager.java.i
-data/test/tools/javadoc/annotations/elementTypes/pkg1/B.java.i
-data/test/tools/javap/6937244/T6937244A.java.i
+data/test/tools/javac/6734819/T6734819a.out.i
+data/test/tools/javac/generics/LoadOrder.java.i
 data/test/tools/javac/generics/wildcards/AssignmentSameType8.java.i
 data/test/tools/javac/implicitThis/WhichImplicitThis6.java.i
-data/test/tools/javac/cast/6795580/T6795580.out.i
-data/test/tools/javac/generics/WrongNew.java.i
+data/test/tools/javac/annotations/neg/MixedSource.java.i
+data/test/tools/javac/generics/rare/Rare3.java.i
+data/test/tools/javac/generics/rawOverride/7062745/T7062745neg.out.i
 data/test/tools/javac/5045412/out.i
+data/test/tools/javac/scope/6225935/Bar.java.i
 data/test/com/sun/javadoc/testHeadings/TestHeadings.java.i
 data/test/tools/javac/ExtendArray.out.i
-data/test/tools/javac/generics/Crash02.java.i
+data/test/tools/javac/enum/6384542/T6384542a.java.i
 data/test/com/sun/javadoc/testRecurseSubPackages/pkg1/C2.java.i
 data/test/tools/javac/annotations/neg/WrongValue.java.i
 data/test/tools/javac/4880220/T4880220.java.i
 data/test/tools/javac/diags/examples/UnsafeUseOfVarargsParam.java.i
 data/test/com/sun/javadoc/5093723/DocumentedClass.java.i
 data/test/tools/javac/ExtDirs/ExtDirTest_3.java.i
+data/test/tools/javac/api/7086261/T7086261.java.i
 data/test/tools/javac/annotations/pos/Z1.java.i
+data/test/tools/javac/enum/NoFinal.java.i
 data/test/com/sun/javadoc/testTagHolderMethod/TestTagHolderMethod.java.i
 data/test/tools/javac/enum/6350057/TestEnum.java.i
 data/test/tools/javac/implicitThis/WhichImplicitThis9.java.i
 data/make/tools/SelectTool/SelectToolTask.java.i
 data/make/netbeans/javap/README.i
-data/test/tools/javac/javazip/bad/B.java.i
-data/test/tools/javac/generics/wildcards/neg/CastWarn6.java.i
-data/test/tools/javac/varargs/6313164/T6313164.java.i
+data/test/tools/javac/warnings/DepAnn.java.i
+data/test/tools/javac/diags/examples/FinalParamCantBeAssigned.java.i
 data/test/tools/javac/unicode/UnicodeNewline.java.i
 data/src/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties.i
-data/test/tools/javac/generics/Nonlinear.java.i
 data/test/tools/javadoc/6942366/T6942366.java.i
-data/test/tools/javac/UplevelFromAnonInSuperCall.java.i
-data/test/tools/javac/processing/6359313/Foo.java.i
+data/src/share/classes/com/sun/tools/javac/jvm/UninitializedType.java.i
 data/test/tools/javac/lint/NoWarn2.out.i
 data/test/tools/javac/generics/wildcards/neg/CastFail16.java.i
 data/test/tools/javac/treeannotests/Test.java.i
@@ -1186,95 +1154,95 @@ data/test/tools/javac/generics/wildcards/neg/CastFail15.java.i
 data/test/tools/javac/policy/bytodo.ABD.out.i
 data/test/tools/javac/diags/CheckResourceKeys.java.i
 data/test/com/sun/javadoc/testThrowsTag/pkg/T4.java.i
+data/test/tools/javac/implicitThis/NewBeforeOuterConstructed.java.i
 data/src/share/classes/javax/lang/model/util/Elements.java.i
 data/test/tools/javac/generics/inference/6215213/T6215213.java.i
-data/src/share/classes/com/sun/tools/classfile/ModulePermits_attribute.java.i
+data/test/tools/javac/mandatoryWarnings/unchecked/Test2.out.i
 data/test/com/sun/javadoc/testWarnings/pkg/X.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/TypeParameterDeclarationImpl.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/AnnotationTypeUsage.java.i
-data/test/tools/javac/quid/QuotedIdent_BAD62.java.i
-data/test/tools/javac/limits/ArrayDims5.java.i
-data/test/tools/javac/AnonymousNull.java.i
+data/test/tools/javac/generics/wildcards/neg/AmbiguousCast.java.i
 data/src/share/classes/javax/lang/model/type/ExecutableType.java.i
 data/test/tools/javac/typeAnnotations/failures/common/arrays/MissingAnnotationValue.out.i
 data/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java.i
-data/test/tools/javac/ImportPackagePrivateInner/Dummy.java.i
+data/make/test/HelloWorld.javap.gold.txt.i
 data/test/tools/javac/DefiniteAssignment/DefAssignAfterThis_1.java.i
+data/src/share/classes/com/sun/tools/classfile/CompilationID_attribute.java.i
 data/src/share/classes/com/sun/source/tree/ClassTree.java.i
 data/test/tools/javac/generics/typeargs/Basic.java.i
-data/test/tools/javac/generics/6372782/PlanarVector.java.i
-data/test/tools/javac/6304921/TestLog.java.i
+data/test/tools/javac/warnings/Unchecked.java.i
 data/test/tools/javac/annotations/neg/Dep.java.i
-data/test/tools/javac/ClassFileModifiers/MemberModifiers.out.i
+data/test/tools/javac/ProtectedInnerClass/ProtectedInnerClass.sh.i
+data/test/tools/javac/NestedDuplicateLabels.java.i
 data/test/tools/javap/T6622260.java.i
-data/test/tools/javadoc/6964914/Test.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/FieldBuilder.java.i
-data/test/tools/javac/diags/examples/MissingSVUID.java.i
 data/test/tools/javac/annotations/pos/AnnoteElideBraces.java.i
 data/make/test/HelloWorld.gold.h.i
 data/test/tools/javac/generics/6359951/T6359951.java.i
 data/src/share/classes/com/sun/tools/apt/main/CommandLine.java.i
 data/test/tools/javac/generics/typevars/6569404/T6569404b.java.i
-data/test/tools/javac/modules/ModuleVersionQueryTest01.java.i
+data/test/com/sun/javadoc/testOverridenMethods/pkg1/BaseClass.java.i
 data/src/share/classes/com/sun/mirror/util/SourcePosition.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/ConstructorDeclarationImpl.java.i
+data/test/tools/javac/generics/6985719/T6985719h.out.i
 data/test/tools/javac/generics/rawOverride/6557199/T6557199.out.i
 data/src/share/classes/com/sun/source/tree/package-info.java.i
 data/test/tools/javac/varargs/6313164/p1/B.java.i
-data/test/tools/javadoc/generics/genericClass/expected.out.i
+data/test/tools/javac/proprietary/WarnMethod.java.i
+data/test/tools/javac/diags/examples/DirPathElementNotFound.java.i
 data/test/tools/javac/StringsInSwitch/NonConstantLabel.out.i
 data/test/tools/javac/Diagnostics/6864382/T6864382.out.i
 data/test/tools/javac/protectedAccess/pkg/SuperClass.java.i
-data/test/tools/javac/cast/6286112/T6286112.java.i
+data/test/tools/javac/enum/NoFinal4.java.i
 data/test/com/sun/javadoc/testNonFrameWarning/pkg/C.java.i
-data/test/tools/javac/6948381/npe/A.java.i
+data/test/com/sun/javadoc/testDocRootInlineTag/pkg/C.java.i
 data/src/share/classes/com/sun/tools/classfile/Signature_attribute.java.i
 data/make/Makefile.i
 data/test/tools/javac/assert/DU2.java.i
 data/test/tools/javac/4917091/Test255.java.i
-data/test/tools/javac/mixedTarget/ExtendCovariant1.java.i
+data/test/tools/javac/generics/6182950/T6182950b.out.i
 data/src/share/classes/com/sun/tools/javac/comp/Env.java.i
 data/test/tools/javac/Parens1.java.i
 data/test/tools/javac/importChecks/ImportIsFullyQualified.java.i
-data/test/tools/javac/cast/7005095/T7005095neg.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/util/DeclarationsImpl.java.i
 data/test/tools/javac/api/6411333/T6411333.java.i
 data/test/tools/javac/6304921/T6304921.java.i
 data/test/tools/javac/TryWithResources/TwrIntersection02.java.i
 data/test/tools/javac/diags/examples/IllegalSelfRef.java.i
 data/test/com/sun/javadoc/AccessFrameTitle/p1/C1.java.i
 data/test/com/sun/javadoc/ValidHtml/p2/C2.java.i
-data/test/tools/javac/modules/ModuleRequiresAttributeTest01.java.i
+data/test/tools/javac/processing/6634138/ExerciseDependency.java.i
 data/test/tools/javac/typeAnnotations/failures/common/rest/InvalidLocation.out.i
-data/test/com/sun/javadoc/testLinkTaglet/pkg/C.java.i
+data/test/tools/javac/nio/compileTest/HelloPathWorld.java.i
 data/src/share/classes/sun/tools/javap/ClassData.java.i
 data/.hgtags.i
 data/test/tools/javac/NameCollision.java.i
-data/test/tools/javac/multicatch/Neg05.java.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/AbstractPackageIndexWriter.java.i
 data/make/netbeans/doclets/nbproject/project.xml.i
 data/test/tools/javac/diags/examples/CantApplyDiamond.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ImplementedMethods.java.i
 data/test/tools/javap/PublicInterfaceTest.sh.i
 data/test/tools/javac/diags/examples/IllegalUnicodeEscape.java.i
 data/test/tools/javac/DefiniteAssignment/T4717165.java.i
-data/test/tools/javap/T6474890.java.i
 data/test/tools/javac/failover/FailOver07.java.i
 data/src/share/classes/com/sun/source/tree/ExpressionTree.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/SuperInterface.java.i
-data/src/share/classes/com/sun/tools/apt/resources/apt.properties.i
+data/test/com/sun/javadoc/ValidHtml/overview.html.i
 data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_4.java.i
 data/test/tools/javac/diags/examples/VarargsPluralAdditional/VarargsPluralAdditional.java.i
 data/src/share/classes/com/sun/tools/javah/Main.java.i
 data/test/tools/javac/diags/examples/ReturnOutsideMethod.java.i
+data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/TypeParameterSuperClass.java.i
 data/src/share/classes/javax/tools/JavaFileManager.java.i
-data/test/tools/javac/ClassPathTest/pkg/ClassPathTestAux3.java.i
+data/test/tools/javac/api/Sibling.java.i
 data/test/com/sun/javadoc/AccessAsciiArt/p1/I.java.i
 data/src/share/classes/com/sun/tools/javap/InternalError.java.i
-data/test/tools/javac/annotations/6214965/T6214965.out.i
+data/src/share/classes/com/sun/mirror/util/Declarations.java.i
 data/make/netbeans/langtools/nbproject/standard-context-menu-items.ent.i
 data/test/tools/javac/depDocComment/DeprecatedDocComment.sh.i
 data/src/share/classes/com/sun/source/tree/ThrowTree.java.i
 data/test/com/sun/javadoc/AccessSummary/p2/C2.java.i
-data/test/com/sun/javadoc/testThrowsInheritence/Foo.java.i
+data/test/tools/javah/compareTest/CompareTest.java.i
 data/test/tools/javac/diags/examples/DoesntExist.java.i
 data/src/share/classes/javax/lang/model/type/TypeVisitor.java.i
 data/test/com/sun/javadoc/testAnnotationTypes/TestAnnotationTypes.java.i
@@ -1283,11 +1251,12 @@ data/src/share/classes/com/sun/tools/javac/util/List.java.i
 data/test/tools/javac/ExtDirs/ext1/pkg1.jar.i
 data/src/share/classes/com/sun/tools/javap/SourceWriter.java.i
 data/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestEnum.java.i
+data/test/tools/javac/annotations/T7043371.java.i
 data/src/share/classes/javax/lang/model/util/ElementScanner7.java.i
 data/test/tools/javac/T6241723.out.i
 data/test/tools/javac/NonStaticFieldExpr1.sh.i
 data/src/share/classes/com/sun/javadoc/TypeVariable.java.i
-data/test/tools/javac/T6977800.java.i
+data/test/tools/javac/capture/Capture2.java.i
 data/test/tools/javac/QualifiedConstant.java.i
 data/test/tools/javac/TryWithResources/T7032633.java.i
 data/test/tools/javac/cast/6714835/T6714835.out.i
@@ -1295,40 +1264,43 @@ data/test/tools/javac/processing/6499119/package-info.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java.i
 data/.jcheck/conf.i
 data/test/tools/javac/diags/examples/AlreadyDefinedStaticImport/p/E1.java.i
+data/test/tools/javac/Diagnostics/6860795/T6860795.out.i
+data/test/tools/javac/6464451/DeepNestedFinally.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocletAbortException.java.i
-data/test/tools/javac/modules/ModuleResolverTest05.java.i
-data/test/tools/javac/CyclicInheritance.java.i
-data/test/tools/javac/lint/NoWarn1.out.i
+data/src/share/classes/com/sun/tools/javac/code/Types.java.i
+data/test/tools/javac/ClassLiterals/p1/SuperClass.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DirectoryManager.java.i
 data/src/share/classes/com/sun/tools/classfile/ModuleExportTable_attribute.java.i
+data/test/tools/javac/SuperNew3.java.i
 data/test/tools/javac/cast/6548436/T6548436c.java.i
-data/test/tools/javac/processing/T6920317.java.i
-data/test/tools/javadoc/InlineTagsWithBraces.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml.i
 data/test/tools/javac/enum/EnumSwitch3.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java.i
 data/test/tools/javac/depOverrides/annotation/empty.i
 data/test/tools/javac/innerClassFile/x/B.java.i
-data/test/tools/javac/generics/5009937/T5009937.out.i
 data/test/tools/javac/ClassCycle/ClassCycle1a.java.i
 data/test/tools/javac/staticImport/Ambig1.java.i
+data/test/tools/javac/DeepStringConcat.java.i
 data/test/com/sun/javadoc/testCmndLineClass/TestCmndLineClass.java.i
 data/test/tools/javac/OverridePosition.java.i
+data/test/tools/javac/GoodCovar.java.i
 data/test/tools/javac/6394683/B.java.i
+data/test/tools/javac/T6855236.java.i
 data/test/tools/javac/processing/environment/round/C1.java.i
 data/test/tools/javac/generics/diamond/neg/Neg08.java.i
 data/test/tools/javac/ExtendsAccess/ExtendsAccess.java.i
-data/src/share/opensource/javac/doc/document.css.i
+data/test/tools/javac/generics/typevars/5060485/Compatibility02.java.i
 data/test/tools/javac/T6180021/Sub.java.i
 data/test/tools/javac/Diagnostics/6722234/T6722234a_2.out.i
-data/test/tools/javac/diags/examples/SunApiFilenameAdditional.java.i
 data/test/tools/javac/api/TestJavacTask_Multiple.java.i
+data/test/tools/javac/diags/examples/CountWarnPlural.java.i
 data/test/tools/apt/verifyVariables.sh.i
-data/test/tools/javac/ForwardReference/UseBeforeDeclaration.java.i
 data/test/tools/javac/SuperNew4.java.i
 data/test/tools/javac/generics/diamond/neg/Neg07.out.i
 data/test/tools/javac/ThrowsIntersection_1.java.i
 data/test/tools/javac/StringConversion2.java.i
 data/test/tools/javac/ImplicitToString.java.i
-data/test/tools/javac/processing/model/element/TypeParamBounds.java.i
+data/test/tools/javac/generics/rawOverride/7062745/T7062745pos.java.i
 data/test/com/sun/javadoc/testUseOption/pkg1/C6.java.i
 data/test/com/sun/javadoc/testClassCrossReferences/C.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/ParameterDeclarationImpl.java.i
@@ -1341,77 +1313,76 @@ data/test/tools/javac/overload/T4494762.java.i
 data/test/com/sun/javadoc/testHtmlComments/C.java.i
 data/test/tools/javac/diags/examples/ProcUnclosedTypeFiles/ProcUnclosedTypeFiles.java.i
 data/src/share/classes/com/sun/mirror/declaration/Modifier.java.i
-data/test/tools/javac/miranda/6964669/pkg/A.java.i
-data/test/tools/javac/literals/BadBinaryLiterals.7.out.i
+data/src/share/classes/com/sun/tools/javac/code/Attribute.java.i
+data/src/share/classes/com/sun/mirror/declaration/ExecutableDeclaration.java.i
 data/test/tools/javac/InitializerCompletion_4.java.i
-data/test/tools/javac/generics/genericAbstract/B.java.i
 data/test/tools/javac/api/T6397104.java.i
+data/src/share/classes/com/sun/tools/javah/resources/SunOS_sparcv9.properties.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java.i
-data/src/share/classes/com/sun/tools/classfile/RuntimeAnnotations_attribute.java.i
+data/test/tools/apt/Compile/servicesRound2.i
+data/src/share/classes/com/sun/tools/javah/resources/l10n_zh_CN.properties.i
 data/test/tools/javac/Closure6.java.i
 data/test/tools/javac/enum/ExplicitlyFinalEnum1.java.i
 data/test/tools/javac/diags/examples/NoteProcMessager/processors/AnnoProc.java.i
 data/test/tools/javac/abstract/T1.java.i
-data/test/tools/javadoc/completionFailure/pkg/A.java.i
 data/src/share/classes/javax/tools/Tool.java.i
 data/src/share/classes/com/sun/tools/javac/main/OptionName.java.i
 data/test/tools/javac/T6224167.java.i
 data/test/tools/javac/diags/examples/UncheckedPluralAdditional/UncheckedFilename2.java.i
-data/test/tools/javac/generics/diamond/neg/Neg06.out.i
+data/src/share/classes/javax/tools/SimpleJavaFileObject.java.i
 data/test/tools/javac/warnings/6885255/T6885255.java.i
-data/test/tools/javac/UnreachableVar.java.i
+data/test/tools/javac/Diagnostics/6862608/T6862608a.out.i
 data/test/tools/javac/diags/examples/RecursiveConstrInvocation.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java.i
-data/test/tools/javac/diags/examples/DiamondNotSupported.java.i
-data/test/tools/javac/processing/model/util/deprecation/TestDeprecation.java.i
+data/test/tools/javac/6394683/A.java.i
+data/test/tools/javac/generics/rawOverride/7062745/T7062745neg.java.i
+data/src/share/classes/com/sun/tools/javac/resources/compiler.properties.i
 data/test/tools/javap/T6271787.java.i
 data/src/share/classes/com/sun/tools/javadoc/SerialFieldTagImpl.java.i
 data/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C5.java.i
-data/test/tools/javac/generics/inference/6569789/T6569789.java.i
+data/test/tools/javac/missingSuperRecovery/MissingSuperRecovery.out.i
 data/test/tools/javac/BreakAcrossClass.java.i
 data/src/share/classes/com/sun/tools/javac/tree/TreeCopier.java.i
 data/test/tools/javac/cast/5064736/T5064736.java.i
-data/test/tools/javac/generics/diamond/T6939780.java.i
+data/test/tools/javac/limits/NumArgs4.java.i
 data/test/tools/apt/mirror/type/ArrayTyp.java.i
 data/test/com/sun/javadoc/testSuperclassInSerialForm/pkg/SuperClass.java.i
 data/test/com/sun/javadoc/testDocRootInlineTag/package-list.i
 data/test/tools/javac/generics/6985719/T6985719h.java.i
 data/src/share/classes/com/sun/javadoc/WildcardType.java.i
-data/test/tools/javac/processing/model/element/TestMissingElement2/Generator.java.i
+data/test/tools/javac/varargs/6313164/p1/C.java.i
 data/test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/pkg3/C5.java.i
 data/test/com/sun/javadoc/testWarnBadParamNames/TestWarnBadParamNames.java.i
-data/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateAnnotationValue.out.i
 data/make/tools/CompileProperties/CompileProperties.java.i
 data/test/tools/javac/generics/inference/6718364/T6718364.java.i
 data/test/tools/javac/diags/examples/DuplicateAnnotation.java.i
-data/test/tools/javac/generics/wildcards/AssignmentSameType3.java.i
+data/test/tools/javac/enum/6384542/T6384542.out.i
 data/test/tools/javac/generics/inference/5049523/T5049523.java.i
 data/test/tools/javac/DeadInnerClass.java.i
 data/test/tools/javac/ClassPathTest/foo/pkg/ClassPathTestAux1.java.i
 data/test/com/sun/javadoc/testTagInheritence/pkg/TestInterfaceForAbstractClass.java.i
-data/test/tools/javac/6394683/T6394683.java.i
+data/test/tools/javac/generics/inference/6638712/T6638712d.out.i
 data/test/tools/javac/typeAnnotations/failures/StaticFields.out.i
-data/test/tools/javac/Paths/6638501/HelloLib/test/HelloImpl.java.i
+data/test/tools/javac/generics/6985719/T6985719g.java.i
 data/test/tools/javac/T6956462/T6956462.java.i
 data/test/tools/javac/typeAnnotations/failures/common/parambounds/InvalidLocation.java.i
 data/test/tools/javadoc/generics/tparamTagOnType/Main.java.i
-data/test/tools/javadoc/generics/genericInnerAndOuter/pkg1/X.java.i
 data/test/tools/javac/typeAnnotations/failures/VoidGenericMethod.java.i
 data/test/tools/javac/6304921/T6304921.out.i
 data/test/tools/javac/6521805/T6521805e.out.i
 data/test/tools/javac/TryWithResources/ImplicitFinal.out.i
-data/test/tools/javap/T6715767.java.i
 data/test/tools/javac/api/6400303/Test1.java.i
-data/test/tools/javac/protectedAccess/ProtectedMemberAccess5/Main.java.i
+data/test/tools/apt/Basics/Lacuna.java.i
 data/test/tools/javac/6521805/T6521805b.java.i
+data/test/tools/javac/generics/inference/6468384/T6468384.java.i
 data/test/com/sun/javadoc/testPrivateClasses/pkg2/C.java.i
 data/src/share/classes/com/sun/tools/javac/util/CloseableURLClassLoader.java.i
-data/test/tools/javac/generics/Conditional.java.i
+data/test/tools/javac/synthesize/Number.java.i
 data/src/share/classes/javax/lang/model/type/DisjunctiveType.java.i
-data/src/share/classes/com/sun/mirror/declaration/package-info.java.i
+data/src/share/classes/javax/lang/model/element/AnnotationMirror.java.i
 data/test/tools/javac/generics/typeargs/Newarg1.java.i
 data/test/tools/javac/diags/examples/StaticImportOnlyClassesAndInterfaces/StaticImportOnlyClassesAndInterfaces.java.i
-data/test/tools/javac/unicode/UnicodeNewline.out.i
+data/test/tools/javac/SwitchFence.java.i
 data/test/tools/javac/synthesize/Boolean.java.i
 data/src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java.i
 data/test/tools/javac/NameClash/b/One.java.i
@@ -1419,10 +1390,9 @@ data/test/tools/javac/T6403466.byfile.out.i
 data/test/com/sun/javadoc/testNavagation/pkg/C.java.i
 data/test/tools/javac/quid/QuotedIdent2.java.i
 data/test/tools/javac/staticImport/StaticImport.java.i
-data/test/tools/javac/FloatingPointChanges/Test.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java.i
 data/test/tools/javac/tree/SourceTreeScannerTest.java.i
-data/test/tools/javac/diags/examples/EnumAsIdentifier.java.i
+data/test/tools/javac/annotations/6365854/TestCore.java.i
 data/test/tools/javac/warnings/Unchecked.lintUnchecked.out.i
 data/make/test/README.i
 data/test/com/sun/javadoc/testUseOption/TestUseOption.java.i
@@ -1433,83 +1403,82 @@ data/test/tools/javac/AnonymousType.java.i
 data/test/com/sun/javadoc/testGroupOption/pkg3/C.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BaseInlineTaglet.java.i
 data/test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java.i
-data/test/tools/javap/4870651/Test.java.i
+data/src/share/classes/com/sun/javadoc/SeeTag.java.i
 data/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C2.java.i
-data/test/tools/javap/typeAnnotations/NewArray.java.i
 data/src/share/classes/com/sun/tools/javadoc/resources/javadoc.properties.i
-data/test/tools/javac/enum/T5081785b.java.i
+data/test/tools/javac/generics/Varargs2.java.i
+data/test/tools/javac/6996626/Main.java.i
 data/test/tools/javac/generics/wildcards/AssignmentSameType2.java.i
 data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_1.java.i
 data/test/tools/javac/processing/model/util/elements/doccomments/z/Last.java.i
+data/test/tools/javadoc/parser/7091528/p/q/C2.java.i
 data/src/share/classes/com/sun/tools/javap/resources/version.properties-template.i
 data/test/tools/javac/generics/inference/6650759/T6650759i.java.i
-data/test/tools/javac/api/T6392782.java.i
+data/test/tools/javac/generics/abstract/T4717181c.java.i
 data/test/tools/javac/generics/wildcards/6437894/T6437894.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/package.html.i
 data/test/tools/javac/typeAnnotations/failures/common/newarray/MissingAnnotationValue.java.i
-data/test/tools/javac/typeAnnotations/6967002/T6967002.out.i
-data/test/tools/javac/api/T6358786.java.i
 data/test/tools/javac/AnonymousProtect/P1/pubExposePriv.java.i
 data/test/tools/javac/generics/Crash01.java.i
 data/src/share/classes/com/sun/tools/javadoc/Messager.java.i
 data/test/tools/javac/diags/examples/Verbose.java.i
 data/test/tools/javac/diags/examples/MalformedSupported/MalformedSupported.java.i
-data/test/tools/javac/diags/examples/AnnoNotValidForType.java.i
-data/test/tools/javac/6627362/T6627362.java.i
+data/test/tools/javac/OverrideChecks/6738538/T6738538b.java.i
+data/test/tools/javac/generics/rawOverride/T6846972.java.i
 data/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateTypeAnnotation.java.i
 data/test/tools/javac/enum/6384542/T6384542a_1_4.out.i
 data/test/com/sun/javadoc/AccessH1/p2/C2.java.i
-data/test/tools/javac/annotations/neg/Z13.java.i
-data/test/tools/javac/enum/EnumProtectedConstructor.java.i
-data/test/tools/javac/abstract/U2.java.i
-data/test/tools/javac/cast/6665356/T6665356.java.i
-data/test/tools/javac/synthesize/Double.java.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/StylesheetWriter.java.i
+data/test/tools/javac/generics/inference/6273455/T6273455.java.i
+data/test/tools/javac/InnerNamedConstant_2.java.i
+data/test/tools/javac/varargs/Warn1.java.i
 data/test/tools/javac/generics/diamond/7030150/Neg03.java.i
 data/test/tools/javac/generics/inference/5073060/T5073060a.java.i
 data/src/share/classes/com/sun/tools/javadoc/WildcardTypeImpl.java.i
 data/test/com/sun/javadoc/PackagesHeader/p2/C2.java.i
 data/src/share/classes/com/sun/source/tree/IdentifierTree.java.i
 data/test/tools/javac/enum/forwardRef/TestEnum3.java.i
-data/test/tools/javadoc/generics/tparamTagOnMethod/expected.out.i
+data/test/tools/javac/diags/examples/StringSwitchNotSupported.java.i
+data/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C3.java.i
 data/test/tools/javac/enum/forwardRef/TestEnum2.java.i
 data/test/tools/javac/treeannotests/TestProcessor.java.i
 data/test/tools/javac/depOverrides/doccomment/Test3.java.i
 data/test/tools/javac/annotations/6881115/T6881115.java.i
 data/test/com/sun/javadoc/testTagInheritence/firstSentence2/A.java.i
-data/test/tools/javadoc/BooleanConst.java.i
-data/test/tools/javap/typeAnnotations/T6855990.java.i
+data/test/tools/javac/generics/odersky/BadTest3.java.i
 data/test/com/sun/javadoc/PackagesHeader/PackagesHeader.java.i
-data/test/tools/javac/T6567414.java.i
+data/test/tools/javac/diags/examples/AnnoNotApplicable.java.i
 data/test/tools/javac/enum/EnumPrivateConstructor.java.i
 data/src/share/classes/com/sun/source/tree/ArrayTypeTree.java.i
+data/test/tools/apt/Misc/Marked.java.i
 data/test/tools/javac/6857948/T6857948.out.i
 data/test/tools/javac/limits/NumArgs2.java.i
 data/test/com/sun/javadoc/testIndex/NoPackage.java.i
 data/test/tools/apt/mirror/declaration/AnnoMirror.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/FieldWriter.java.i
 data/test/tools/javac/diags/examples/InvalidAnnoMemberType.java.i
-data/test/tools/javac/diags/examples/CantResolveArgsParams.java.i
 data/test/tools/javac/scope/6225935/T6225935.java.i
 data/test/tools/javac/quid/QuotedIdent_BAD63.java.i
 data/test/tools/javac/InvalidIntfCast.java.i
 data/test/tools/javac/4980495/static/p2/A2.java.i
 data/make/netbeans/javah/README.i
-data/test/tools/javac/generics/typeargs/Metharg2.java.i
-data/test/tools/javac/importChecks/ImportOfOwnClass.java.i
+data/test/tools/javadoc/generics/genericMethod/pkg1/A.java.i
 data/test/tools/javac/enum/SynthValues.java.i
+data/test/tools/javac/depOverrides/annotation/Q.java.i
 data/src/share/classes/com/sun/tools/javac/api/Formattable.java.i
 data/src/share/classes/com/sun/javadoc/LanguageVersion.java.i
-data/test/tools/javac/typeAnnotations/failures/common/innertypeparams/MissingAnnotationValue.out.i
-data/test/tools/javac/generics/wildcards/6330931/T6330931.java.i
+data/src/share/classes/com/sun/tools/javac/util/JavacMessages.java.i
 data/src/share/classes/com/sun/tools/javac/util/JavacFileManager.java.i
 data/src/share/classes/com/sun/tools/classfile/ClassReader.java.i
 data/test/tools/javadoc/generics/genericSuper/Main.java.i
+data/test/tools/javac/diags/examples/AssertAsIdentifier.java.i
 data/test/com/sun/javadoc/testHtmlTableTags/pkg2/C2.java.i
 data/test/tools/javac/enum/forwardRef/TestEnum4.java.i
-data/test/tools/javac/processing/options/Xprint.java.i
+data/test/com/sun/javadoc/testBreakIterator/pkg/BreakIteratorTest.java.i
 data/test/tools/javac/failover/FailOver03.java.i
 data/src/share/classes/com/sun/source/tree/CaseTree.java.i
 data/test/tools/javac/boxing/T6348760.java.i
-data/test/com/sun/javadoc/testValueTag/pkg1/Class2.java.i
+data/test/tools/javac/generics/5009937/T5009937.out.i
 data/test/tools/javac/synthesize/Short.java.i
 data/test/tools/javac/TryWithResources/ImplicitFinal.java.i
 data/test/tools/javac/foreach/ListOfListTest.java.i
@@ -1520,13 +1489,14 @@ data/test/tools/javac/generics/diamond/neg/Neg01.java.i
 data/test/tools/javac/typeAnnotations/failures/target/NotTypeParameter.out.i
 data/test/tools/javac/InterfaceOverrideCheck.java.i
 data/make/netbeans/common/standard-context-menu-items-no-javadoc.ent.i
-data/test/tools/javac/annotations/pos/RightTarget.java.i
+data/test/tools/javac/generics/typevars/6182630/T6182630b.java.i
 data/test/tools/javac/api/T6483788.java.i
 data/test/com/sun/javadoc/testTitleInHref/package-list.i
 data/test/tools/javac/StringsInSwitch/BadlyTypedLabel1.java.i
+data/test/tools/javac/NestedInnerClassNames.java.i
 data/src/share/classes/com/sun/tools/javadoc/DocLocale.java.i
 data/test/tools/javac/6330920/T6330920.out.i
-data/test/com/sun/javadoc/testModifier/TestModifier.java.i
+data/src/share/classes/javax/lang/model/util/ElementScanner6.java.i
 data/test/tools/javac/generics/typeargs/Superarg1.java.i
 data/test/tools/javac/links/links.sh.i
 data/test/tools/javac/enum/FauxEnum3.java.i
@@ -1536,159 +1506,166 @@ data/src/share/classes/com/sun/tools/javah/JNI.java.i
 data/test/tools/javac/6402516/A.java.i
 data/test/tools/javac/generics/rare/Rare4.java.i
 data/test/tools/javac/proprietary/WarnVariable.java.i
-data/test/tools/javadoc/sourceOnly/Test.java.i
-data/test/tools/javac/generics/wildcards/AssignmentSameType7.java.i
-data/test/tools/javac/BoundClassError.java.i
-data/src/share/classes/com/sun/tools/javadoc/AbstractTypeImpl.java.i
+data/test/tools/javac/positions/T6253161a.out.i
+data/test/tools/apt/mirror/declaration/MethodDecl.java.i
+data/test/tools/javac/diags/examples/SunApiFilenameAdditional.java.i
 data/test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/pkg3/C6.java.i
 data/src/share/classes/com/sun/mirror/type/MirroredTypesException.java.i
 data/test/tools/javap/T6824493.java.i
-data/test/tools/javadoc/generics/tparamCycle/pkg1/LikeEnum.java.i
+data/test/tools/javac/api/T6501502.java.i
+data/test/tools/javac/generics/inference/7086601/T7086601a.out.i
 data/test/com/sun/javadoc/testCmndLineClass/pkg2/package.html.i
 data/test/tools/javac/enum/NoFinal5.java.i
 data/test/tools/javac/boxing/T5082929.java.i
 data/test/tools/javac/diags/examples/ProcessorCantInstantiate/ProcessorCantInstantiate.java.i
-data/test/tools/javac/implicitThis/NewBeforeOuterConstructed3.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/WriterFactory.java.i
 data/test/com/sun/javadoc/testMemberSummary/pkg/PublicChild.java.i
 data/test/tools/javac/generics/inference/5073060/NegHelper.java.i
 data/test/tools/javac/boxing/BoxingCaching.java.i
 data/make/netbeans/javadoc/nbproject/project.xml.i
 data/src/share/classes/com/sun/tools/javah/InternalError.java.i
-data/test/tools/javac/diags/examples/NoInterfaceExpected.java.i
+data/test/tools/javac/diags/examples/UnreportedExceptionDefaultConstructor.java.i
 data/test/com/sun/javadoc/testHref/pkg/C1.java.i
 data/test/tools/javac/diags/examples/DoesNotOverride.java.i
 data/test/tools/javac/processing/model/type/MirroredTypeEx/NpeTest.java.i
 data/test/tools/javac/Diagnostics/6769027/tester.properties.i
 data/make/netbeans/javap/nbproject/project.xml.i
-data/test/tools/javac/processing/filer/TestLastRound.out.i
+data/src/share/classes/com/sun/tools/classfile/Signature.java.i
 data/test/tools/javac/generics/typevars/5061359/T5061359.java.i
+data/test/tools/javac/accessVirtualInner/a/A.java.i
 data/src/share/classes/com/sun/javadoc/Doclet.java.i
 data/test/tools/javac/conditional/Conditional.java.i
 data/test/tools/javac/varargs/6730476/T6730476a.java.i
 data/test/tools/javac/T4848619/T4848619b.java.i
 data/test/tools/javac/importscope/B.java.i
 data/test/tools/javac/AccessMethods/AccessMethodsLHS.java.i
+data/test/tools/javah/MissingParamClassTest.sh.i
 data/test/tools/javah/6572945/TestClass3.java.i
 data/test/tools/javac/cast/6557182/T6557182.out.i
 data/test/tools/javac/annotations/pos/OverrideOK.java.i
-data/test/tools/javac/TestPkgInfo.java.i
-data/test/tools/javac/multicatch/Neg07.out.i
-data/test/tools/javac/diags/examples/InheritFromFinal.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/declaration/EnumDeclarationImpl.java.i
+data/test/tools/javah/TestHelpOpts.java.i
+data/src/share/classes/com/sun/javadoc/ProgramElementDoc.java.i
+data/test/tools/javac/processing/options/testCommandLineClasses/Test.java.i
 data/test/tools/javac/generics/6372782/AbstractPlanarVector.java.i
-data/src/share/classes/com/sun/tools/javac/util/ForwardingDiagnosticFormatter.java.i
-data/test/tools/javac/generics/Varargs2.java.i
+data/test/tools/javac/scope/6225935/StaticImportAccess.java.i
+data/test/tools/javac/processing/6350124/T6350124.java.i
 data/test/tools/javac/protectedInner/pkg2/Sub.java.i
-data/test/tools/javac/NullStaticQualifier.java.i
+data/test/tools/javac/generics/typevars/T7040883.java.i
 data/test/tools/javac/T6882235.java.i
 data/test/tools/javac/api/6423003/T6423003.java.i
-data/test/tools/javac/javazip/good/B.java.i
+data/make/netbeans/compiler/README.i
 data/test/tools/apt/Basics/print.sh.i
-data/test/tools/javac/5017953/T5017953.out.i
-data/test/tools/javadoc/BreakIteratorWarning.java.i
+data/test/tools/javac/diags/examples/LongSVUID.java.i
+data/test/com/sun/javadoc/testUseOption/pkg1/package.html.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java.i
 data/test/tools/javac/generics/rawOverride/Warn2.java.i
 data/src/share/classes/com/sun/source/tree/UnaryTree.java.i
-data/test/com/sun/javadoc/testOverridenMethods/pkg2/SubClass.java.i
+data/test/com/sun/javadoc/testUnnamedPackage/package.html.i
 data/test/tools/javac/generics/classreader/HMember.java.i
 data/test/tools/javac/ClassCycle/ClassCycle3b.java.i
-data/test/tools/javac/positions/T6402077.java.i
+data/test/tools/javac/failover/FailOver15.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java.i
 data/test/tools/javac/generics/typevars/6182630/T6182630a.java.i
 data/src/share/classes/com/sun/mirror/apt/package.html.i
-data/test/tools/javac/protectedAccess/ProtectedMemberAccess3.java.i
+data/test/tools/javadoc/XWerror.java.i
 data/test/tools/javac/api/6440528/T6440528.java.i
 data/test/tools/javac/6889255/T6889255.java.i
-data/test/tools/javac/multicatch/Neg06.out.i
-data/src/share/classes/javax/lang/model/element/Element.java.i
-data/test/com/sun/javadoc/testTypeParams/pkg/ClassUseTest3.java.i
+data/test/tools/javac/varargs/5088429/T5088429Neg02.out.i
+data/test/tools/javac/generics/diamond/7030687/T7030687.out.i
+data/test/tools/javac/T6214885.java.i
 data/test/tools/javac/policy/test1/bytodo.ACD.out.i
-data/test/tools/javac/generics/Multibound1.java.i
 data/test/tools/javac/annotations/neg/Z3.java.i
 data/test/tools/apt/Discovery/servicesBadTouch.i
 data/test/tools/javac/T6405099.java.i
 data/src/share/classes/javax/lang/model/element/Modifier.java.i
 data/test/tools/javac/diags/examples/ContinueOutsideLoop.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties.i
-data/test/com/sun/javadoc/testHtmlTag/pkg2/C2.java.i
-data/test/tools/javac/synthesize/Float.java.i
-data/test/tools/javac/annotations/neg/Dup.java.i
+data/test/tools/javac/typeAnnotations/failures/target/Constructor.out.i
+data/test/tools/javac/typeAnnotations/failures/Scopes.java.i
+data/test/tools/javac/T7040104.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/declaration/PackageDeclarationImpl.java.i
+data/test/tools/javac/T4994049/DeprecatedYES.java.i
+data/test/tools/javac/CyclicInheritance.sh.i
+data/test/tools/apt/Scanners/scanner.sh.i
 data/test/com/sun/javadoc/testDocRootLink/pkg2/C2.java.i
-data/test/tools/javac/HexFloatLiterals.java.i
+data/test/tools/javac/generics/wildcards/AssignmentSameType1.java.i
 data/test/tools/javac/generics/diamond/7030150/Neg01.out.i
+data/test/tools/javac/6547131/T.java.i
 data/test/tools/javadoc/completionFailure/CompletionFailure.java.i
-data/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo2.java.i
+data/test/tools/javac/ProtectedInnerClass/p1/ProtectedInnerClass1.java.i
 data/test/tools/javac/mandatoryWarnings/unchecked/A.java.i
-data/test/tools/javac/warnings/T6763518.java.i
-data/test/tools/javac/foreach/T6500701.java.i
+data/test/tools/javac/diags/examples/TryResourceNotSupported.java.i
+data/src/share/classes/com/sun/tools/classfile/Type.java.i
 data/test/tools/javac/varargs/6569633/T6569633.out.i
 data/test/tools/apt/mirror/declaration/pkg1/pkg2/AnInterface.java.i
 data/test/tools/apt/mirror/declaration/pkg1/AnEnum.java.i
-data/test/tools/javac/generics/6372782/Scalar.java.i
 data/test/tools/javadoc/T6968833.java.i
-data/src/share/classes/com/sun/mirror/type/TypeMirror.java.i
+data/test/tools/javac/processing/messager/6362067/T6362067.java.i
 data/test/tools/javac/diags/examples/DiamondInvalidArgs.java.i
-data/test/tools/javac/generics/wildcards/6437894/T6437894.out.i
 data/test/tools/javac/4917091/Test256b.java.i
 data/test/tools/javac/generics/7020657/T7020657neg.java.i
-data/test/tools/javac/cast/6558559/T6558559b.java.i
-data/test/tools/javadoc/annotations/defaults/Main.java.i
+data/test/tools/javac/completion/C.out.i
+data/test/tools/javac/T7042623.out.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/SourceToHTMLConverter.java.i
-data/test/tools/javac/diags/examples/NonStaticCantBeRef.java.i
+data/src/share/classes/javax/lang/model/element/TypeElement.java.i
 data/test/tools/javac/processing/model/util/deprecation/ExpectedDeprecation.java.i
 data/test/tools/javac/depOverrides/doccomment/B.java.i
 data/test/tools/javac/NullQualifiedSuper2.java.i
-data/test/tools/javac/overload/T5090220.java.i
+data/src/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java.i
 data/test/tools/javac/6627362/x/Object.java.i
 data/test/tools/apt/Basics/Misc.java.i
 data/test/com/sun/javadoc/testThrowsTag/pkg/T7.java.i
+data/src/share/classes/javax/lang/model/type/WildcardType.java.i
 data/test/tools/javac/diags/examples/UndeterminedType1.java.i
-data/test/com/sun/javadoc/testHtmlTag/TestHtmlTag.java.i
+data/test/tools/javac/MissingInclude.sh.i
 data/test/tools/javac/6948381/T6948381.java.i
-data/test/tools/javac/OverrideChecks/T4720356b.java.i
+data/test/tools/javac/innerClassFile/x/C.java.i
 data/test/tools/javac/failover/FailOver03.out.i
-data/make/test/lib/javac.sh.i
-data/test/tools/javac/diags/examples/ArrayAndVarargs.java.i
+data/test/tools/javac/links/T.java.i
+data/test/tools/javac/diags/examples/InitializerMustComplete.java.i
 data/test/com/sun/javadoc/testIndex/pkg/C.java.i
 data/test/tools/javac/modules/ModuleModeTests/DerbyTest.java.i
-data/src/share/classes/com/sun/mirror/apt/package-info.java.i
-data/test/tools/javac/generics/inference/6943278/T6943278.java.i
+data/test/tools/javadoc/generics/genericInterface/pkg1/A.java.i
 data/src/share/classes/com/sun/tools/javac/file/Old199.java.i
-data/test/com/sun/javadoc/testHref/pkg/C3.java.i
+data/test/tools/javac/depOverrides/annotation/B3.java.i
 data/test/tools/javac/versions/check.sh.i
 data/test/tools/javac/Digits.out.i
-data/test/tools/javac/typeAnnotations/failures/common/arrays/MissingAnnotationValue.java.i
+data/test/tools/javac/generics/6711619/T6711619b.java.i
 data/src/share/classes/com/sun/mirror/type/InterfaceType.java.i
 data/test/tools/javac/typeAnnotations/failures/common/newarray/InvalidLocation.out.i
 data/test/tools/javac/T6306967.java.i
 data/test/tools/javac/api/6412656/T6412656.java.i
-data/test/tools/javac/QualifiedNew.out.i
-data/test/tools/javac/generics/inference/5042462/T5042462.java.i
-data/test/tools/javac/missingSuperRecovery/MissingSuperRecovery.out.i
-data/test/tools/javac/T6403466.java.i
+data/test/tools/javac/OverrideChecks/6400189/T6400189c.java.i
+data/test/tools/javac/missingSuperRecovery/impl.class.i
+data/test/tools/javac/enum/EnumSwitch1.java.i
 data/test/tools/javac/generics/ReverseOrder.java.i
-data/test/tools/javac/cast/6569057/T6569057.java.i
+data/test/tools/javac/accessVirtualInner/c/C.java.i
+data/test/tools/javac/TryWithResources/PlainTry.java.i
+data/test/tools/javac/diags/examples/RawClassUse.java.i
 data/test/tools/javac/QualifiedAccess/QualifiedAccess_2.out.i
+data/src/share/classes/com/sun/tools/javadoc/ModifierFilter.java.i
 data/test/tools/javac/T4994049/T4994049.java.i
-data/src/share/classes/com/sun/tools/javac/comp/AttrContext.java.i
-data/src/share/classes/com/sun/tools/javac/util/BasicDiagnosticFormatter.java.i
+data/test/tools/javac/generics/inference/6838943/T6838943.java.i
+data/test/com/sun/javadoc/testBackSlashInLink/C.java.i
 data/src/share/classes/com/sun/javadoc/Tag.java.i
-data/test/tools/javac/generics/diamond/6996914/T6996914a.java.i
-data/test/tools/javac/unit/util/list/FromArray.java.i
+data/test/tools/javac/protectedAccess/ProtectedMemberAccess5/z1/Z1.java.i
+data/test/tools/javac/generics/6946618/T6946618c.out.i
 data/test/tools/javac/NameClash/a/One.java.i
 data/test/tools/javac/diags/examples/IllegalQualNotIcls.java.i
 data/test/tools/javac/quid/QuotedIdent_BAD61.java.i
-data/src/share/classes/com/sun/tools/javadoc/SerializedForm.java.i
+data/test/com/sun/javadoc/testTaglets/TestTaglets.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/FrameOutputWriter.java.i
-data/src/share/classes/com/sun/tools/javac/api/Messages.java.i
+data/test/tools/javac/diags/examples/ProcessorNotFound.java.i
 data/test/tools/javac/6402516/TestIsAccessible.java.i
 data/test/tools/javac/generics/inference/6611449/T6611449.java.i
 data/test/tools/javac/LocalClasses_2.java.i
 data/test/tools/javac/failover/FailOver02.out.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java.i
+data/src/share/classes/com/sun/tools/javac/nio/PathFileManager.java.i
 data/test/tools/javac/6521805/T6521805d.out.i
 data/test/tools/javac/processing/errors/TestParseErrors/ParseErrors.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/AbstractDoclet.java.i
 data/test/tools/javac/TryWithResources/TwrOnNonResource.out.i
-data/test/tools/javac/DefiniteAssignment/DUBeforeDefined2.java.i
+data/test/tools/javac/diags/examples/ImproperTypeInnerRawParam.java.i
 data/test/tools/javac/FinalIntConcatenation.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/markup/Comment.java.i
 data/src/share/classes/com/sun/source/tree/ErroneousTree.java.i
@@ -1700,227 +1677,221 @@ data/test/tools/javac/generics/inference/6943278/T6943278.out.i
 data/test/tools/javac/processing/6511613/DummyProcessor.java.i
 data/test/com/sun/javadoc/AuthorDD/AuthorDD.java.i
 data/test/tools/javac/generics/rare/Rare9.java.i
-data/test/tools/javac/options/T7022337.java.i
 data/test/com/sun/javadoc/testTagInheritence/pkg/TestSuperSuperClass.java.i
-data/test/tools/javac/6410653/T6410653.java.i
+data/test/tools/javac/T6873849.java.i
+data/test/tools/javac/6734819/T6734819c.out.i
 data/test/tools/javac/generics/Covar4.java.i
 data/test/tools/javac/diags/README.examples.txt.i
-data/test/tools/javac/generics/diamond/7030687/ParserTest.java.i
+data/test/tools/javac/completion/C.java.i
 data/test/tools/javac/generics/Covar3.java.i
-data/test/tools/javac/diags/examples/OverrideWeakerAccess.java.i
-data/src/share/classes/com/sun/tools/classfile/package.html.i
+data/test/tools/javac/FloatingPointChanges/BadConstructorModifiers.java.i
+data/test/tools/javac/generics/ErasureClashCrash.java.i
 data/test/tools/javac/4241573/T4241573.java.i
 data/test/tools/apt/Basics/Indirect.java.i
 data/test/com/sun/javadoc/testInterface/TestInterface.java.i
 data/make/netbeans/README.i
 data/src/share/classes/com/sun/javadoc/FieldDoc.java.i
-data/test/tools/javac/OuterParameter_1.java.i
+data/test/tools/javac/T4093617/T4093617.java.i
+data/src/share/classes/sun/tools/javap/FieldData.java.i
 data/test/tools/javac/overload/T6776289.java.i
 data/test/tools/javac/mixedTarget/CompatibleAbstracts4.java.i
 data/test/tools/javac/diags/examples/UncheckedPlural/UncheckedFilename.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java.i
-data/test/tools/apt/mirror/util/TypeCreation.java.i
+data/src/share/classes/com/sun/tools/javac/comp/Lower.java.i
 data/src/share/classes/com/sun/tools/javac/comp/Flow.java.i
-data/test/tools/javac/typeAnnotations/failures/common/receiver/InvalidLocation.java.i
+data/test/tools/javac/enum/TrailingComma.java.i
 data/test/tools/javac/generics/typevars/6680106/T6680106.out.i
 data/make/jprt.properties.i
-data/test/tools/javac/abstract/U3.java.i
-data/test/tools/javac/generics/wildcards/neg/CastWarn13.java.i
+data/test/tools/javap/4870651/T4870651.java.i
 data/test/tools/javac/generics/diamond/pos/Pos04.java.i
 data/test/tools/javac/6400872/B.java.i
 data/test/tools/javac/generics/ExtendedRaw3.java.i
 data/test/tools/javadoc/badSuper/p/B.java.i
-data/test/com/sun/javadoc/testLinkOption/testNewLineInLink/C.java.i
+data/test/tools/javac/processing/model/element/TestMissingElement2/TestMissingGenericClass1.java.i
 data/src/share/classes/com/sun/source/tree/UnionTypeTree.java.i
 data/test/tools/javah/6572945/gold/jni.file.1.i
-data/test/tools/javac/api/6431257/T6431257.java.i
-data/src/share/classes/com/sun/tools/apt/mirror/type/PrimitiveTypeImpl.java.i
+data/test/tools/javac/implicitThis/WhichImplicitThis11.java.i
+data/test/tools/apt/lib/Tester.java.i
 data/test/tools/javac/modules/ModuleResolverTest01.java.i
-data/test/tools/javac/diags/examples/TypeVarMayNotBeFollowedByOtherBounds.java.i
-data/test/tools/javac/TryWithResources/T7022711.out.i
-data/test/tools/javac/DefiniteAssignment/DUParam2.java.i
-data/test/tools/javac/T6595666.java.i
+data/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestClass.java.i
+data/test/tools/javac/generics/6213818/T6213818.java.i
+data/test/tools/javac/QualifiedNew.out.i
+data/test/tools/javac/enum/forwardRef/T6425594.out.i
 data/test/tools/javac/limits/ArrayDims3.java.i
-data/test/com/sun/javadoc/testPackagePage/pkg2/C.java.i
+data/test/tools/javac/policy/test1/byfile.ACD.out.i
 data/test/tools/javac/generics/wildcards/neg/CastWarn10.java.i
 data/test/tools/javac/diags/examples/PrematureEOF.java.i
 data/test/com/sun/javadoc/AccessH1/p1/C.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java.i
 data/test/tools/javac/QualifiedAccess/QualifiedAccess_2.sh.i
-data/test/tools/javac/generics/wildcards/6762569/T6762569a.java.i
+data/test/tools/javac/generics/wildcards/neg/CastFail9.java.i
 data/src/share/classes/sun/tools/javap/Tables.java.i
-data/test/tools/javac/diags/examples/ProcUseImplicit/processors/AnnoProc.java.i
+data/test/tools/javah/4942232/Test.java.i
 data/test/tools/javac/generics/inference/6650759/T6650759k.java.i
 data/test/tools/javac/typeAnnotations/failures/target/IncompleteArray.out.i
 data/test/tools/javac/TryWithResources/TwrLint.java.i
 data/test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java.i
 data/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateAnnotationValue.java.i
 data/test/com/sun/javadoc/testDocFileDir/pkg/doc-files/testfile.txt.i
-data/test/tools/javac/processing/warnings/UseImplicit/TestProcUseImplicitWarning.java.i
 data/test/com/sun/javadoc/testPackageDeprecation/pkg1/ClassUseTest1.java.i
-data/test/tools/javac/generics/forwardSeparateBound/ForwardSeparateBound2.java.i
-data/src/share/classes/com/sun/tools/classfile/Method.java.i
 data/test/tools/javac/typeAnnotations/failures/common/innertypeparams/MissingAnnotationValue.java.i
 data/test/tools/javac/6403424/B.java.i
-data/test/tools/javap/pathsep.sh.i
-data/test/tools/javac/enum/6384542/T6384542a.java.i
-data/test/tools/javac/processing/filer/TestLastRound.java.i
+data/src/share/classes/com/sun/tools/javac/parser/Keywords.java.i
+data/test/tools/javac/generics/Crash02.java.i
 data/test/tools/javac/literals/T6891079.java.i
 data/test/tools/javac/diags/examples/InvalidInferredTypes.java.i
-data/test/tools/javac/diags/examples/FinalParamCantBeAssigned.java.i
-data/src/share/classes/com/sun/tools/javac/jvm/UninitializedType.java.i
+data/test/tools/javac/varargs/6313164/T6313164.java.i
+data/test/tools/javac/UplevelFromAnonInSuperCall.java.i
 data/test/tools/javac/BoolArray.java.i
 data/test/tools/javac/processing/options/XprintDocComments.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg1/B.java.i
-data/test/tools/javac/generics/wildcards/neg/AmbiguousCast.java.i
-data/make/test/HelloWorld.javap.gold.txt.i
-data/test/tools/javac/T6458823/MyProcessor.java.i
+data/test/tools/javac/limits/ArrayDims5.java.i
+data/test/tools/javac/ImportPackagePrivateInner/Dummy.java.i
+data/test/tools/javac/generics/6372782/PlanarVector.java.i
 data/test/tools/javac/generics/RawClient.java.i
-data/test/tools/javac/boxing/Boxing2.java.i
-data/test/com/sun/javadoc/testOverridenMethods/pkg1/BaseClass.java.i
+data/test/tools/javac/diags/examples/MissingSVUID.java.i
+data/test/tools/javac/modules/ModuleVersionQueryTest01.java.i
 data/test/tools/javac/4980495/static/Test.out.i
 data/src/share/classes/sun/tools/javap/Constants.java.i
-data/test/tools/javac/generics/6182950/T6182950b.out.i
-data/test/tools/javac/diags/ArgTypeCompilerFactory.java.i
+data/test/tools/javac/mixedTarget/ExtendCovariant1.java.i
 data/test/tools/javac/modules/ModuleModeTests/HelloAWTTest.java.i
 data/make/test/bootstrap/javah.sh.i
 data/test/tools/javac/types/BoxingConversionTest.java.i
 data/test/com/sun/javadoc/testPrivateClasses/pkg/PublicChild.java.i
 data/test/com/sun/javadoc/testConstructorIndent/C.java.i
-data/test/com/sun/javadoc/ValidHtml/overview.html.i
+data/test/tools/javac/diags/examples/UncheckedMethodInvocation.java.i
 data/test/tools/javac/diags/examples/CountError.java.i
-data/src/share/classes/com/sun/mirror/util/Declarations.java.i
+data/test/tools/javac/6835430/A.java.i
+data/test/tools/javac/annotations/6214965/T6214965.out.i
 data/test/tools/javac/policy/test1/C.java.i
 data/test/tools/javac/diags/examples/DuplicateAnnotationMemberValue.java.i
-data/test/tools/javac/failover/FailOver06.java.i
+data/test/tools/javac/generics/compat/CovariantCompat2.java.i
+data/test/tools/javac/NestedFinallyReturn.java.i
 data/test/tools/javac/cast/5043020/T5043020.java.i
 data/src/share/classes/com/sun/source/util/Trees.java.i
 data/test/tools/javac/policy/test1/Test1b.java.i
 data/test/tools/javac/6302184/T6302184.out.i
 data/test/tools/javac/diags/examples/IllegalUnderscore.java.i
 data/src/share/classes/com/sun/tools/javac/file/Paths.java.i
+data/src/share/classes/com/sun/tools/classfile/Attributes.java.i
 data/test/tools/javac/6979683/TestCast6979683_BAD34.java.i
-data/test/tools/javac/overload/T4743490.java.i
 data/src/share/classes/com/sun/tools/apt/resources/apt_zh_CN.properties.i
 data/test/tools/javac/api/ToolProvider/HelloWorldTest.java.i
 data/test/tools/javac/T6397044.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/BuilderFactory.java.i
-data/src/share/classes/javax/tools/SimpleJavaFileObject.java.i
+data/test/tools/javac/generics/diamond/neg/Neg06.out.i
 data/test/tools/javac/processing/options/TestImplicitNone.java.i
 data/test/tools/javac/miranda/T4711325.java.i
+data/test/tools/javac/javazip/A.java.i
 data/test/tools/javac/TryWithResources/BadTwr.java.i
 data/test/tools/javac/T6265400.java.i
-data/src/share/classes/com/sun/javadoc/ClassDoc.java.i
-data/test/tools/javac/generics/6332204/T6346876.java.i
+data/test/com/sun/javadoc/testLinkOption/TestLinkOption.java.i
+data/test/tools/javac/stackmap/UninitThis.java.i
 data/test/tools/javac/policy/byfile.ABD.out.i
 data/test/tools/javac/enum/NoFinal3.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkFactory.java.i
+data/test/tools/javac/generics/Conditional.java.i
 data/test/tools/javac/diags/examples/WhereIntersection.java.i
 data/test/tools/javac/multicatch/Pos07.java.i
 data/test/tools/javac/enum/FauxSpecialEnum2.java.i
 data/src/share/classes/sun/tools/javap/JavapEnvironment.java.i
 data/src/share/classes/javax/lang/model/package-info.java.i
-data/src/share/classes/com/sun/javadoc/SeeTag.java.i
-data/test/tools/javac/generics/inference/6365166/NewTest.java.i
+data/test/tools/javap/4870651/Test.java.i
+data/test/tools/javac/api/6431257/T6431257.java.i
 data/test/tools/javac/Diagnostics/6860795/T6860795.java.i
-data/test/tools/javac/processing/model/element/TestMissingElement/InvalidSource.java.i
-data/src/share/classes/com/sun/mirror/declaration/MethodDeclaration.java.i
-data/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C3.java.i
-data/test/tools/javac/T4994049/DeprecatedNOT.java.i
-data/test/tools/javac/generics/odersky/BadTest3.java.i
+data/test/tools/javac/abstract/U2.java.i
+data/test/tools/javadoc/generics/tparamTagOnMethod/expected.out.i
+data/test/tools/javadoc/annotations/defaults/pkg1/B.java.i
+data/test/tools/javap/typeAnnotations/T6855990.java.i
 data/test/tools/javac/Object1.java.i
 data/test/tools/apt/Scanners/Counter.java.i
 data/test/tools/javac/T6397286.java.i
 data/test/tools/javac/diags/examples/InferArgsLengthMismatch.java.i
 data/test/tools/javac/6558548/T6558548.java.i
-data/test/tools/javac/failover/FailOver05.java.i
-data/test/tools/javac/packone/Secret.java.i
-data/test/tools/javac/enum/T6509042.java.i
+data/test/tools/javac/DepParam.java.i
+data/test/tools/javac/annotations/neg/Recovery1.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/CommentedMethodFinder.java.i
 data/test/tools/javac/synthesize/Character.java.i
 data/test/tools/javac/typeAnnotations/newlocations/Fields.java.i
 data/src/share/classes/javax/lang/model/element/NestingKind.java.i
-data/test/tools/javac/generics/UncheckedArray.java.i
 data/test/tools/javac/T4994049/T4994049.out.i
-data/test/tools/javac/positions/T6253161a.out.i
-data/test/tools/javac/6979683/TestCast6979683_BAD34.java.errlog.i
+data/test/com/sun/javadoc/testThrowsTag/pkg/C.java.i
+data/test/tools/javadoc/sourceOnly/Test.java.i
+data/test/com/sun/javadoc/testSimpleTagExclude/DummyClass.java.i
 data/test/tools/javac/T6472751.java.i
 data/test/tools/javac/generics/InnerInterface1.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/WriterFactory.java.i
-data/test/tools/javac/6394683/A.java.i
+data/test/tools/javac/implicitThis/NewBeforeOuterConstructed3.java.i
+data/test/tools/javac/diags/examples/NoInterfaceExpected.java.i
 data/test/tools/javac/enum/EnumInit.java.i
 data/src/share/classes/com/sun/tools/classfile/ClassWriter.java.i
 data/test/com/sun/javadoc/VersionNumber/VersionNumber.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/AptEnv.java.i
-data/test/com/sun/javadoc/testLinkToSerialForm/pkg/C.java.i
-data/test/tools/javac/generics/6946618/T6946618b.out.i
+data/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java.i
+data/src/share/classes/com/sun/mirror/apt/package-info.java.i
 data/test/tools/javac/generics/odersky/Test3.java.i
 data/test/tools/javac/warnings/6747671/T6747671.out.i
 data/test/tools/javac/boxing/NoBoxingShort.java.i
-data/test/tools/javac/diags/examples/IntfAnnotationMemberClash.java.i
+data/test/tools/javac/6840059/T6840059.out.i
 data/test/com/sun/javadoc/testTagInheritence/pkg/TestInterface.java.i
 data/test/com/sun/javadoc/lib/JavadocTester.java.i
-data/test/tools/javac/enum/Def.java.i
-data/test/tools/javac/processing/6512707/T6512707.java.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/markup/DocType.java.i
+data/test/com/sun/javadoc/testThrowsHead/C.java.i
+data/test/tools/javac/policy/test1/simple.ABD.out.i
 data/test/tools/apt/mirror/declaration/AnnoTypeDecl.java.i
 data/test/tools/javac/generics/inference/6278587/T6278587.java.i
 data/test/tools/javac/NonStaticFieldExpr2.java.i
-data/test/tools/apt/mirror/declaration/ClassDecl.java.i
-data/test/tools/javac/generics/6946618/T6946618c.out.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/PackageSummaryWriter.java.i
+data/test/tools/javac/unit/util/list/FromArray.java.i
+data/src/share/classes/com/sun/tools/javadoc/Start.java.i
 data/test/tools/javac/generics/6476118/T6476118b.java.i
+data/test/tools/javac/generics/diamond/7046778/DiamondAndInnerClassTest.java.i
 data/test/tools/javac/generics/typeargs/Newarg2.java.i
 data/test/tools/javac/diags/examples/ImproperTypeParamMissing.java.i
-data/test/tools/javap/T6715753.java.i
 data/test/tools/javac/inheritedAccess/P1/priv.java.i
 data/test/tools/javac/ClassPathTest/ClassPathTest3.java.i
-data/src/share/classes/sun/tools/javap/FieldData.java.i
+data/test/tools/javac/TryWithResources/T7022711.java.i
 data/src/share/classes/com/sun/mirror/declaration/ParameterDeclaration.java.i
-data/test/tools/javac/processing/model/element/TestPackageElement.java.i
 data/test/com/sun/javadoc/testLinkOption/TestBadLinkOption.java.i
-data/test/tools/javac/abstract/T2.java.i
 data/test/tools/javac/generics/rawOverride/Warn1.java.i
 data/src/share/classes/com/sun/tools/javac/util/DiagnosticFormatter.java.i
 data/test/tools/javac/multicatch/Pos03.java.i
 data/test/tools/javac/ClassLiterals/InitializeOuter.java.i
-data/test/tools/javac/multicatch/7030606/DisjunctiveTypeWellFormednessTest.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties.i
-data/test/tools/javac/limits/CodeSize.java.i
-data/test/tools/javac/synthesize/Byte.java.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java.i
+data/src/share/classes/com/sun/tools/javac/comp/Modules.java.i
+data/test/tools/javac/generics/forwardSeparateBound/ForwardSeparateBound2.java.i
 data/test/tools/javadoc/generics/supertypes/expected.out.i
 data/test/tools/javac/diags/examples/DuplicateDefaultLabel.java.i
 data/test/tools/javac/diags/examples/StringConstRequired.java.i
-data/test/tools/javac/diags/examples/UnsupportedBinaryLiteral.java.i
-data/test/com/sun/javadoc/testLinkOption/TestLinkOption.java.i
+data/test/tools/javac/generics/6292765/T6292765.java.i
+data/src/share/classes/com/sun/javadoc/ClassDoc.java.i
 data/src/share/classes/com/sun/tools/classfile/ClassTranslator.java.i
-data/test/tools/javac/6979683/TestCast6979683_GOOD.java.i
-data/test/tools/javac/generics/6711619/T6711619b.out.i
-data/test/tools/javac/DepParam.java.i
-data/test/com/sun/javadoc/testSimpleTagExclude/DummyClass.java.i
-data/test/tools/javac/policy/test2/A.java.i
-data/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java.i
-data/test/tools/javac/diags/examples/UnsupportedEncoding.java.i
+data/test/tools/javac/enum/T5081785b.java.i
+data/test/tools/javac/generics/inference/6365166/NewTest.java.i
+data/test/tools/javac/packone/Secret.java.i
+data/test/tools/javac/6979683/TestCast6979683_BAD34.java.errlog.i
+data/test/tools/javac/tree/T6963934.java.i
+data/test/com/sun/javadoc/testLinkToSerialForm/pkg/C.java.i
 data/src/share/classes/com/sun/mirror/declaration/TypeDeclaration.java.i
 data/test/tools/javac/generics/inference/5073060/GenericsAndPackages.java.i
-data/src/share/classes/com/sun/tools/javadoc/Start.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/PackageSummaryWriter.java.i
 data/test/tools/javac/links/b/B.java.i
 data/test/tools/javac/diags/examples/EnumNoFinalize.java.i
 data/test/tools/javac/generics/SilentUnchecked.java.i
 data/test/tools/javac/diags/examples/MissingDeprecatedAnnotation.java.i
+data/test/tools/javac/meth/InvokeMHTrans.java.i
 data/src/share/classes/com/sun/tools/javadoc/AnnotationTypeElementDocImpl.java.i
 data/test/com/sun/javadoc/testMemberInheritence/diamond/B.java.i
 data/test/tools/javac/generics/inference/5081782/Neg.java.i
 data/test/tools/javac/EOI.java.i
-data/test/tools/javac/processing/environment/round/SurfaceAnnotations.java.i
+data/test/tools/javac/generics/rare/Rare8.java.i
 data/test/tools/javac/capture/T6594284.java.i
-data/test/tools/javac/limits/NumArgs4.java.i
+data/test/tools/javac/7003595/T7003595.java.i
 data/test/tools/javadoc/generics/throwsGeneric/Main.java.i
 data/test/tools/javadoc/outputRedirect/p/OutputRedirect.java.i
 data/test/tools/javac/binaryCompat/T2.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstructorWriter.java.i
-data/test/tools/javac/TryWithResources/TwrInference.java.i
+data/test/tools/javac/warnings/DivZero.noLint.out.i
 data/test/tools/apt/Basics/golden.txt.i
+data/test/tools/apt/Compile/ClassDeclApf2.java.i
+data/test/tools/javac/diags/examples/ImproperSVUID.java.i
 data/src/share/classes/com/sun/tools/javadoc/DocletInvoker.java.i
 data/test/tools/javac/generics/diamond/neg/Neg11.java.i
 data/test/tools/javac/6863465/T6863465b.java.i
@@ -1931,27 +1902,26 @@ data/test/tools/javac/diags/examples/ForeachNotSupported.java.i
 data/test/tools/javac/T6340549.java.i
 data/test/tools/javac/danglingDep/Test1.java.i
 data/src/share/classes/com/sun/tools/javac/resources/javac_ja.properties.i
-data/src/share/classes/javax/annotation/processing/SupportedAnnotationTypes.java.i
+data/test/tools/javac/generics/wildcards/AssignmentSameType3.java.i
 data/src/share/classes/com/sun/tools/javac/api/JavacTrees.java.i
 data/test/tools/javac/typeAnnotations/failures/common/arrayclass/MissingAnnotationValue.out.i
-data/test/tools/javac/processing/werror/WError1.java.i
 data/test/tools/javac/generics/6294779/T6294779b.java.i
 data/src/share/classes/com/sun/tools/classfile/Code_attribute.java.i
 data/test/tools/javac/6440583/A.java.i
 data/test/tools/javac/processing/warnings/UseImplicit/err.out.i
 data/test/TEST.ROOT.i
-data/test/tools/javac/enum/NestedEnum.java.i
+data/test/tools/javac/failover/FailOver05.java.i
 data/make/netbeans/compiler/build.xml.i
 data/test/tools/javac/annotations/pos/OverrideCheck.java.i
 data/src/share/classes/javax/tools/JavaCompiler.java.i
 data/test/tools/javac/T6234077.java.i
 data/test/tools/javac/diags/examples/PrintRounds/PrintRounds.java.i
 data/test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java.i
+data/src/share/classes/com/sun/tools/javac/util/Options.java.i
+data/test/tools/javac/processing/6348499/A.java.i
 data/test/tools/javah/6572945/T6572945.java.i
-data/src/share/classes/com/sun/tools/javah/resources/l10n_zh_CN.properties.i
-data/test/tools/javac/warnings/6594914/T6594914b.java.i
+data/test/tools/javac/6304921/TestLog.java.i
 data/test/tools/javac/enum/UserValue.java.i
-data/test/tools/javac/DefiniteAssignment/ThrowBeforeTryFinally.java.i
 data/test/tools/javac/diags/examples/VarargsPluralAdditional/VarargsFilename.java.i
 data/test/tools/javac/generics/typevars/6569404/T6569404a.java.i
 data/src/share/classes/com/sun/javadoc/package.html.i
@@ -1959,19 +1929,19 @@ data/test/tools/javac/generics/inference/6938454/T6938454a.java.i
 data/test/tools/javac/CastInterface2Array.java.i
 data/test/tools/javac/NewGeneric.java.i
 data/test/tools/javac/diags/examples/DiamondInvalidArg.java.i
-data/test/tools/javac/generics/wildcards/6437894/A.java.i
+data/test/tools/javac/api/6411310/T6411310.java.i
 data/test/tools/javac/proprietary/WarnStaticImport.java.i
 data/test/tools/javadoc/annotations/elementTypes/pkg1/A.java.i
 data/test/tools/javac/annotations/default/Eerr.java.i
 data/src/share/classes/javax/lang/model/util/ElementKindVisitor7.java.i
-data/test/tools/javac/warnings/6594914/DeprecatedClass.java.i
-data/src/share/classes/javax/tools/ForwardingJavaFileObject.java.i
+data/test/tools/javac/T6407066.java.i
+data/test/tools/javac/generics/typevars/6182630/T6182630e.java.i
 data/src/share/classes/com/sun/javadoc/PackageDoc.java.i
 data/test/com/sun/javadoc/AccessAsciiArt/p1/SC.java.i
 data/test/tools/javac/failover/FailOver01.out.i
 data/test/tools/javac/diags/examples/CantDeref.java.i
 data/test/tools/javac/diags/examples/UnnamedPackage.java.i
-data/test/tools/javac/processing/warnings/gold_0.out.i
+data/make/netbeans/langtools/nbproject/project.xml.i
 data/test/tools/apt/Basics/Aggregate.java.i
 data/test/tools/javadoc/annotations/elementTypes/Main.java.i
 data/test/tools/javac/generics/6332204/T6332204.java.i
@@ -1983,112 +1953,103 @@ data/test/tools/javac/generics/7015430/T7015430.java.i
 data/test/tools/javac/6521805/T6521805d.java.i
 data/test/tools/javac/typeAnnotations/classfile/DeadCode.java.i
 data/test/com/sun/javadoc/testThrowsTag/pkg/P.java.i
+data/src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java.i
 data/test/tools/javap/T6622216.java.i
 data/test/tools/javac/synthesize/Object.java.i
 data/test/com/sun/javadoc/testUseOption/pkg1/C1.java.i
 data/test/tools/javac/diags/examples/DivZero.java.i
 data/test/tools/javac/crossPackageImpl/CrossPackageImplB.java.i
-data/test/tools/javac/processing/model/util/OverridesSpecEx.java.i
-data/test/tools/javap/T4777949.java.i
 data/src/share/classes/com/sun/source/tree/PackageTree.java.i
-data/test/tools/javac/jvm/6397652/T6397652.java.i
 data/src/share/classes/com/sun/mirror/type/DeclaredType.java.i
 data/src/share/classes/com/sun/tools/javac/comp/Check.java.i
-data/test/tools/javac/diags/examples/HasBeenDeprecated.java.i
-data/test/tools/javac/T5003235/T5003235b.out.i
+data/test/tools/javac/generics/wildcards/pos/ParamCast.java.i
 data/test/tools/javac/generics/T4739399.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/inherit.gif.i
-data/test/tools/javac/generics/typevars/5060485/Neg2.java.i
 data/test/com/sun/javadoc/testOverridenMethods/TestMultiInheritence.java.i
 data/test/tools/javac/NameCollision2.java.i
 data/src/share/classes/com/sun/tools/javah/resources/l10n.properties.i
-data/test/tools/javac/generics/InstanceOf3.java.i
 data/test/tools/javac/T6394563.note.out.i
 data/test/com/sun/javadoc/testMemberSummary/TestMemberSummary.java.i
 data/test/tools/javac/4880220/T4880220.warn.out.i
-data/test/tools/javac/diags/examples/InexactVarargsCall.java.i
 data/test/tools/javac/diags/examples/VarargsFilename.java.i
 data/test/tools/javadoc/T4994049/T4994049.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java.i
+data/test/com/sun/javadoc/testSuperclassInSerialForm/pkg/SubClass.java.i
 data/test/tools/javac/generics/6372782/T6372782.java.i
-data/test/tools/javac/processing/filer/foo/Foo.java.i
 data/test/tools/javac/typeAnnotations/failures/Scopes.out.i
-data/test/tools/javac/generics/inference/4972073/T4972073a.java.i
 data/test/tools/apt/Compile/src/Round1Class.java.i
 data/test/tools/javac/enum/EnumSwitch4.java.i
 data/test/tools/javac/jvm/6397652/com/test/Test$Test.java.i
+data/src/share/classes/com/sun/mirror/apt/RoundCompleteListener.java.i
 data/test/com/sun/javadoc/WindowTitles/p2/C2.java.i
 data/test/tools/javac/typeAnnotations/newlocations/BasicTest.java.i
+data/test/tools/javac/diags/examples/OperatorCantBeApplied.java.i
 data/test/tools/javac/cast/6256789/T6256789.java.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java.i
 data/src/share/classes/com/sun/mirror/declaration/package.html.i
 data/src/share/classes/com/sun/tools/javac/zip/ZipFileIndex.java.i
 data/test/tools/javac/Digits.java.i
 data/src/share/classes/com/sun/tools/javac/util/Old199.java.i
+data/src/share/classes/com/sun/tools/classfile/Module_attribute.java.i
 data/test/tools/javac/varargs/5088429/T5088429Pos02.java.i
 data/test/tools/javac/T4906100.java.i
 data/src/share/classes/com/sun/tools/classfile/AccessFlags.java.i
 data/test/tools/javac/diags/examples/ThrowsNotAllowedInAnno.java.i
 data/test/tools/javac/limits/FinallyNesting.java.i
-data/test/tools/javac/Closure3.java.i
-data/test/tools/apt/Basics/StaticFieldAnnotations.java.i
-data/test/tools/javadoc/generics/tparamTagOnMethod/pkg1/A.java.i
+data/test/tools/javac/AnonymousNull.java.i
 data/test/tools/javac/stackmap/T4955930.java.i
 data/test/com/sun/javadoc/testRecurseSubPackages/TestRecurseSubPackages.java.i
-data/test/tools/javac/unicode/SupplementaryJavaID1.java.i
 data/test/tools/javac/6403424/A.java.i
 data/test/tools/javac/generics/6910550/T6910550d.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/TagletOutputImpl.java.i
-data/test/tools/javac/sourcePath2/SourcePath2.java.i
 data/test/tools/javac/diags/examples/ProcTypeRecreate/ProcTypeRecreate.java.i
 data/test/tools/javac/annotations/neg/Z2.java.i
 data/test/tools/javac/typeAnnotations/failures/OldArray.java.i
 data/test/tools/javac/generics/ArrayTypearg.java.i
 data/src/share/classes/javax/lang/model/util/ElementKindVisitor6.java.i
-data/test/tools/javac/diags/examples/ProcessorWrongType/processors/AnnoProc.java.i
+data/test/tools/javac/BadOptimization/DeadCode1.java.i
 data/test/tools/javac/staticImport/6695838/T6695838.java.i
-data/test/tools/javac/abstract/T4717181a.java.i
+data/test/tools/javac/diags/examples/SunApiPluralAdditional/SunApiPlural.java.i
 data/test/com/sun/javadoc/DocRootSlash/p1/C1.java.i
 data/test/tools/javac/generics/7020657/T7020657neg.out.i
 data/test/tools/javac/expression/NullAppend.java.i
 data/src/share/classes/com/sun/source/tree/DisjointTypeTree.java.i
 data/make/netbeans/compiler/nbproject/project.xml.i
-data/src/share/classes/javax/lang/model/element/ExecutableElement.java.i
+data/test/tools/javac/multicatch/model/ModelChecker.java.i
 data/test/tools/javac/AnonStaticMember_3.java.i
-data/test/tools/javac/generics/typevars/6968793/T6968793.java.i
 data/test/com/sun/javadoc/testPackageDeprecation/pkg/A.java.i
+data/test/tools/javac/QualifiedThisAndSuper_1.java.i
 data/test/tools/javac/generics/syntax/6318240/BarNeg2.java.i
-data/test/tools/javac/annotations/neg/Z5.java.i
+data/src/share/classes/javax/annotation/processing/SupportedAnnotationTypes.java.i
 data/test/com/sun/javadoc/WindowTitles/p1/C1.java.i
+data/test/tools/javac/diags/examples/UncheckedPluralAdditional/UncheckedFilename1.java.i
 data/src/share/classes/com/sun/source/util/TreePathScanner.java.i
-data/test/tools/javac/diags/examples/ForeachNotApplicable.java.i
-data/test/tools/javac/processing/model/util/elements/TestGetConstantExpression.java.i
+data/test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java.i
+data/test/tools/javac/diags/examples/IdentifierExpected.java.i
 data/test/tools/javac/diags/examples/CatchWithoutTry.java.i
 data/test/tools/javac/limits/NumArgs3.java.i
 data/test/tools/javac/diags/examples/KindnameVariable.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties.i
 data/test/tools/javac/annotations/neg/WrongTarget.java.i
-data/test/tools/javac/ignored.jtx.i
 data/test/tools/javac/generics/wildcards/neg/CastFail13.java.i
-data/src/share/classes/com/sun/tools/apt/mirror/declaration/PackageDeclarationImpl.java.i
-data/test/tools/javac/T5003235/T5003235c.out.i
+data/test/tools/javadoc/completionFailure/pkg/A.java.i
+data/test/tools/javac/QualifiedAccess/QualifiedAccess_1.out.i
 data/test/tools/javac/generics/6985719/T6985719g.out.i
-data/test/tools/javac/warnings/6747671/T6747671.java.i
-data/test/tools/javac/typeAnnotations/newlocations/Wildcards.java.i
 data/test/tools/javac/generics/6372782/PlainPlanarVector.java.i
 data/src/share/classes/com/sun/tools/javadoc/JavadocEnter.java.i
 data/test/tools/javac/4980495/static/Test.java.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java.i
 data/test/tools/javac/6717241/T6717241a.java.i
-data/test/tools/javac/TryWithResources/BadTwrSyntax.out.i
+data/test/tools/javac/modules/ModuleModeTests/HelloWorldTest.java.i
 data/test/tools/javac/ClassPathTest/ClassPathTest1.java.i
-data/test/tools/apt/mirror/type/PrimitiveTyp.java.i
-data/test/com/sun/javadoc/testDocErrorReporter/TestDocErrorReporter.java.i
-data/test/tools/javac/multicatch/Neg04eff_final.out.i
+data/test/tools/javac/generics/wildcards/6762569/T6762569a.java.i
+data/test/tools/javac/policy/test1/Test1a.java.i
 data/test/tools/javac/diags/examples/RepeatedModifier.java.i
+data/test/tools/javac/NestedInnerClassNames.sh.i
+data/test/tools/javac/processing/model/TestSourceVersion.java.i
 data/test/tools/apt/Basics/MySimple.java.i
-data/test/tools/javac/generics/typevars/5060485/Compatibility.out.i
-data/test/tools/javac/generics/inference/5081782/Pos.java.i
 data/test/com/sun/javadoc/testMemberInheritence/diamond/A.java.i
-data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignCond.java.i
+data/test/tools/javadoc/annotations/annotatePackage/pkg1/A.java.i
 data/src/share/classes/com/sun/tools/javac/resources/version.properties-template.i
 data/test/tools/javac/processing/model/TestSymtabItems.java.i
 data/test/tools/javac/generics/inference/6315770/T6315770.java.i
@@ -2097,178 +2058,182 @@ data/src/share/classes/com/sun/tools/classfile/RuntimeVisibleTypeAnnotations_att
 data/src/share/classes/com/sun/tools/javap/ClassWriter.java.i
 data/test/tools/javac/generics/7034019/T7034019c.out.i
 data/test/tools/javac/InitializerCompletion_1.java.i
+data/test/tools/javac/QualifiedAccess/QualifiedAccess_2.java.i
 data/test/tools/javac/boxing/T6816548.java.i
-data/test/com/sun/javadoc/testUnnamedPackage/TestUnnamedPackage.java.i
-data/test/tools/javac/diags/examples/UnclosedBytecodeIdent.java.i
+data/test/tools/javac/generics/InstanceOf3.java.i
+data/test/tools/javac/generics/diamond/7030150/Neg03.out.i
 data/test/tools/javac/QualifiedThisAndSuper_3.java.i
 data/test/tools/javac/diags/examples/AbstractCantBeAccessed.java.i
-data/test/tools/javac/Diagnostics/6722234/T6722234b_2.out.i
+data/test/tools/javac/typeAnnotations/newlocations/Wildcards.java.i
 data/test/com/sun/javadoc/testTypeParams/pkg/C.java.i
 data/test/tools/javac/6402516/TestMethod.java.i
-data/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateAnnotationValue.out.i
+data/src/share/opensource/javac/doc/document.css.i
+data/test/tools/javadoc/6942366/Test.java.i
 data/test/tools/javadoc/nestedClass/NestedClass.java.i
 data/test/tools/apt/Misc/Marker.java.i
 data/test/tools/javac/4980495/std/Test.java.i
 data/test/tools/javac/diags/examples/CannotCreateArrayWithTypeArgs.java.i
-data/test/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java.i
+data/test/tools/javac/diags/examples/EnumAnnoValueMustBeEnumConst.java.i
 data/src/share/opensource/javac/doc/javac_lifecycle/style.css.i
 data/test/tools/javac/diags/examples/AnonClassImplInterfaceNoTypeArgs.java.i
 data/test/tools/javac/diags/examples/InvalidMethodDecl.java.i
 data/test/tools/javac/ExtendArray.java.i
 data/test/tools/javac/generics/T4695847.java.i
-data/test/tools/javadoc/annotations/missing/Main.java.i
-data/test/tools/javah/ReadOldClass.sh.i
-data/src/share/classes/com/sun/mirror/declaration/ConstructorDeclaration.java.i
+data/test/tools/javac/generics/6245699/T6245699.java.i
+data/test/tools/javac/failover/FailOver06.java.i
 data/src/share/classes/com/sun/tools/javac/Main.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/package.html.i
-data/test/tools/javac/multicatch/Pos02.java.i
 data/test/tools/javac/T6214885b.out.i
 data/test/com/sun/javadoc/testThrowsTag/pkg/T8.java.i
-data/src/share/classes/com/sun/tools/classfile/Attributes.java.i
+data/test/tools/javac/FloatingPointChanges/Test.java.i
 data/src/share/classes/com/sun/tools/classfile/Opcode.java.i
 data/src/share/classes/com/sun/source/tree/ModuleIdTree.java.i
 data/src/share/classes/com/sun/tools/classfile/Field.java.i
-data/test/tools/javac/generics/6294779/T6294779a.java.i
+data/test/tools/javac/generics/typevars/5060485/Neg2.java.i
 data/src/share/classes/com/sun/source/tree/ModuleRequiresTree.java.i
-data/test/tools/javac/Increment.java.i
+data/test/tools/javac/6302184/T6302184.sh.i
 data/test/tools/javac/innerClassFile/Driver.java.i
 data/test/tools/javac/ClassCycle/ClassCycle2b.java.i
-data/make/test/lib/src.gold.txt.i
+data/test/tools/javac/warnings/6594914/DeprecatedClass.java.i
 data/test/tools/javac/T6985181.java.i
 data/test/tools/javac/annotations/6214965/CompilerAnnotationTest2.java.i
-data/test/tools/javac/diags/examples/ProcUseImplicit/ProcUseImplicit.java.i
+data/test/com/sun/javadoc/JavascriptWinTitle/p1/C.java.i
 data/test/tools/javac/generics/wildcards/AssignmentSameType5.java.i
 data/test/tools/javac/api/T6431879.java.i
 data/src/share/classes/com/sun/source/util/TreePath.java.i
 data/test/tools/javac/generics/parametricException/K.java.i
+data/test/tools/javac/diags/examples/AnnosWithoutProcessors/AnnosWithoutProcessors.java.i
 data/test/tools/javac/ReturnAfterIfThenElse.java.i
-data/test/tools/javac/ForwardReference/ForwardReference_5.java.i
-data/test/tools/javac/T6394563.empty.out.i
+data/test/tools/javac/generics/6207386/Test.java.i
 data/src/share/classes/com/sun/tools/javah/Gen.java.i
-data/test/tools/javac/T6358024.java.i
 data/test/tools/javac/OverrideChecks/6738538/T6738538a.java.i
-data/test/tools/javac/generics/compat/OverrideBridge2.java.i
+data/test/tools/javadoc/sourceOption/p/A.java.i
 data/test/tools/javac/generics/diamond/pos/Pos03.java.i
 data/test/tools/javac/generics/6476118/T6476118a.java.i
 data/test/tools/javac/generics/ExtendedRaw4.java.i
-data/test/tools/javac/VerifyDA.java.i
-data/test/tools/javac/generics/6476118/T6476118b.out.i
+data/test/tools/javap/T4777949.java.i
+data/test/tools/javac/generics/6910550/T6910550b.out.i
 data/test/tools/javac/6508981/p/A.java.i
 data/test/tools/javac/6627362/x/E.java.i
 data/test/tools/javah/6257087/foo.sh.i
 data/test/com/sun/javadoc/testHtmlStrongTag/pkg1/C1.java.i
-data/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateAnnotationValue.out.i
 data/test/tools/javac/api/T6306137.java.i
 data/test/tools/javac/generics/7034511/T7034511b.java.i
 data/test/tools/javac/generics/diamond/7030687/T7030687.java.i
-data/test/tools/javac/annotations/pos/Z3.java.i
+data/test/tools/javac/generics/wildcards/6320612/T6320612.java.i
 data/test/tools/javac/6717241/T6717241a.out.i
-data/src/share/classes/com/sun/tools/apt/mirror/type/EnumTypeImpl.java.i
+data/test/tools/javac/boxing/NoBoxingBool.java.i
 data/src/share/classes/com/sun/tools/javac/file/FSInfo.java.i
 data/test/tools/javac/implicitThis/WhichImplicitThis7.java.i
 data/test/tools/javac/miranda/4686811/p2/B.java.i
-data/src/share/classes/com/sun/tools/classfile/Exceptions_attribute.java.i
+data/test/tools/javac/modules/ModuleResolverTest05.java.i
+data/test/tools/javac/lib/CompileFail.java.i
+data/test/tools/javac/StringAppendAccessMethodOnLHS.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/type/ArrayTypeImpl.java.i
-data/test/tools/javac/api/T6357331.java.i
 data/src/share/opensource/javac/doc/javac_lifecycle/Context.html.i
-data/test/tools/javac/typeAnnotations/newlocations/Throws.java.i
+data/test/tools/javac/Paths/6638501/test/SayHello.java.i
 data/test/tools/javac/TryWithResources/TwrFlow.java.i
-data/src/share/classes/javax/lang/model/element/package-info.java.i
+data/test/tools/javac/api/T6392782.java.i
 data/test/tools/apt/Compile/src/AhOneClass.java.i
 data/src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java.i
-data/test/tools/javac/generics/rare/Rare3.java.i
+data/test/tools/javac/annotations/pos/TrailingComma.java.i
 data/test/com/sun/javadoc/testBaseClass/Bar.java.i
-data/make/netbeans/compiler/README.i
+data/test/tools/javac/implicitThis/6541876/T6541876a.java.i
+data/test/tools/javac/literals/BadBinaryLiterals.java.i
 data/src/share/classes/com/sun/tools/javadoc/ExecutableMemberDocImpl.java.i
 data/test/tools/javac/generics/inference/5044646/p2/A2.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/ClassWriter.java.i
 data/test/tools/javac/positions/T6264029.java.i
 data/test/tools/javac/annotations/neg/WrongTarget2.java.i
-data/test/tools/javac/generics/Casting2.java.i
+data/test/tools/javac/generics/SuperTypeargs.java.i
 data/test/com/sun/javadoc/testEmptyClass/TestEmptyClass.java.i
 data/test/tools/javac/generics/wildcards/neg/CastFail8.java.i
 data/test/com/sun/javadoc/testTagHolderMethod/pkg/C.java.i
 data/test/tools/javac/6979683/TestCast6979683_BAD36.java.errlog.i
-data/src/share/classes/com/sun/source/tree/WildcardTree.java.i
+data/test/tools/javac/processing/warnings/gold_unsp_warn.out.i
+data/test/tools/javac/generics/inference/5021635/T5021635.java.i
 data/test/tools/javac/warnings/Deprecation.lintDeprecation.out.i
-data/test/tools/javac/ClassFileModifiers/MemberModifiers.java.i
+data/test/tools/javac/enum/AbstractEmptyEnum.java.i
+data/src/share/classes/com/sun/tools/javap/JavapFileManager.java.i
 data/test/tools/javac/generics/GetClass.java.i
 data/test/tools/javac/QualifiedAccess/QualifiedAccess_3.sh.i
 data/src/share/classes/com/sun/javadoc/Parameter.java.i
 data/test/tools/javac/T6241723.java.i
-data/test/tools/javac/T6326754.java.i
 data/test/tools/apt/Discovery/PhantomTouch.java.i
-data/test/tools/javac/DefiniteAssignment/UncaughtException.java.i
+data/test/tools/javac/abstract/U3.java.i
 data/src/share/classes/com/sun/tools/classfile/ModuleProvides_attribute.java.i
 data/test/tools/javac/proprietary/WarnWildcard.java.i
 data/test/tools/javac/diags/examples/Location1.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/package.html.i
+data/test/com/sun/javadoc/testLinkOption/pkg/C.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Extern.java.i
-data/test/tools/javac/boxing/Boxing4.java.i
+data/test/tools/javadoc/annotations/annotateMethodsFields/Main.java.i
+data/src/share/classes/javax/lang/model/util/AbstractElementVisitor7.java.i
 data/test/tools/javac/generics/diamond/pos/Pos06.java.i
 data/test/com/sun/javadoc/testStylesheet/TestStylesheet.java.i
-data/test/tools/javac/generics/inference/6302954/T6476073.java.i
 data/test/tools/javac/generics/ExtendedRaw1.java.i
-data/src/share/classes/com/sun/tools/javap/resources/javap.properties.i
+data/test/tools/javac/processing/loader/testClose/TestClose2.java.i
+data/test/tools/javac/generics/inference/6650759/T6650759l.java.i
 data/test/tools/javac/InterfaceObjectIncompatibility.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/apt/FilerImpl.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ParamTest.java.i
 data/src/share/classes/com/sun/tools/javac/parser/EndPosParser.java.i
 data/test/tools/javac/T6379327.java.i
-data/test/tools/javac/generics/6372782/Element.java.i
-data/test/com/sun/javadoc/testSimpleTag/C.java.i
+data/test/tools/javac/6491592/T6491592.out.i
 data/test/com/sun/javadoc/MetaTag/MetaTag.java.i
 data/src/share/classes/com/sun/tools/apt/comp/Apt.java.i
 data/test/tools/apt/Basics/annot/AnnotMarker.java.i
-data/test/tools/apt/Basics/GenClass.java.i
-data/test/tools/javac/multicatch/Pos10.java.i
+data/test/tools/javac/literals/BadBinaryLiterals.7.out.i
+data/test/tools/javadoc/enum/enumType/pkg1/QuotablePerson.java.i
 data/test/tools/javac/4846262/Test.java.i
-data/test/com/sun/javadoc/testDocRootLink/TestDocRootLink.java.i
+data/test/tools/javac/modules/ModuleAttributeTest01.java.i
 data/test/com/sun/javadoc/AccessSummary/p1/C1.java.i
 data/src/share/classes/com/sun/mirror/util/Types.java.i
 data/src/share/classes/javax/lang/model/type/ArrayType.java.i
 data/test/tools/javac/enum/OkFinal.java.i
-data/test/tools/javac/generics/6182950/T6182950b.java.i
+data/test/tools/javac/NonStaticFieldExpr4d.java.i
 data/test/tools/javac/diags/examples/ProcTypeRecreate/processors/AnnoProc.java.i
 data/test/tools/javac/processing/model/testgetallmembers/Main.java.i
 data/test/tools/javac/diags/examples/MissingMethodBody.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LegacyTaglet.java.i
 data/test/tools/javac/ConditionalWithVoid.java.i
-data/test/tools/javac/generics/6531090/T6531090b.java.i
+data/test/tools/javac/generics/wildcards/neg/CastFail19.java.i
 data/test/com/sun/javadoc/testInterface/pkg/Parent.java.i
 data/test/tools/javac/generics/6372782/VariableForm.java.i
-data/test/tools/javac/generics/typevars/6199146/T6199146.java.i
-data/test/tools/javac/EmptyBreak.java.i
+data/test/tools/javac/unicode/FirstChar.java.i
+data/test/tools/javadoc/generics/genericSuper/expected.out.i
 data/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateTypeAnnotation.java.i
-data/src/share/classes/com/sun/source/tree/NewClassTree.java.i
+data/test/tools/javac/ImportCycle/foo/Top2.java.i
 data/src/share/classes/com/sun/mirror/declaration/AnnotationTypeElementDeclaration.java.i
-data/test/tools/apt/mirror/declaration/FieldDecl.java.i
+data/test/tools/javadoc/sourceOnly/p/NonSource.class.i
 data/test/tools/javac/processing/6994946/SemanticErrorTest.1.out.i
 data/test/tools/javac/proprietary/Test.java.i
 data/test/tools/javac/typeAnnotations/failures/IncompleteArray.java.i
-data/test/tools/javac/mandatoryWarnings/deprecated/Test1.out.i
 data/test/com/sun/javadoc/testOverridenMethods/pkg3/I0.java.i
 data/test/tools/javac/missingClass/B.java.i
 data/test/tools/javac/lint/NoWarn.java.i
 data/test/tools/javac/typeAnnotations/failures/common/wildcards/InvalidLocation.out.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletManager.java.i
 data/test/com/sun/javadoc/testHref/pkg/C4.java.i
-data/src/share/classes/com/sun/tools/doclets/Taglet.java.i
+data/test/tools/javac/InnerClassesAttribute/Outside.java.back.i
 data/test/tools/javac/protectedInner/AnonInnerClass.java.i
 data/test/tools/javac/generics/inference/6359106/T6359106.java.i
 data/test/tools/apt/Compile/Round2Apf.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg1/A.java.i
+data/test/tools/javac/abstract/T4717181a.java.i
 data/src/share/classes/com/sun/tools/classfile/RuntimeTypeAnnotations_attribute.java.i
 data/test/tools/javac/incompatibleNoninherited/B.java.i
 data/src/share/classes/com/sun/mirror/declaration/PackageDeclaration.java.i
 data/test/tools/javac/generics/wildcards/neg/CastFail21.java.i
 data/test/tools/javac/processing/model/util/deprecation/Dep1.java.i
-data/test/tools/javac/incompatibleNoninherited/A.java.i
+data/test/tools/javac/lint/Unchecked.java.i
 data/test/tools/javac/diags/examples/GenericsNotSupported.java.i
 data/test/tools/javadoc/generics/genericMethod/expected.out.i
-data/test/com/sun/javadoc/testPrivateClasses/pkg/PrivateParent.java.i
+data/src/share/classes/sun/tools/javap/InnerClassData.java.i
 data/test/tools/javac/NonAmbiguousField/one/Parent2.java.i
-data/src/share/classes/com/sun/javadoc/AnnotationTypeElementDoc.java.i
+data/src/share/classes/javax/tools/ForwardingJavaFileObject.java.i
+data/src/share/classes/com/sun/tools/javac/jvm/Target.java.i
+data/test/tools/javac/annotations/neg/MemberOver.java.i
 data/test/tools/javac/generics/inference/6650759/T6650759m.out.i
 data/test/tools/javac/typeAnnotations/failures/target/VoidMethod.out.i
 data/test/tools/javac/binaryCompat/T3.java.i
@@ -2282,40 +2247,36 @@ data/test/tools/javac/failover/FailOver04.out.i
 data/test/tools/javac/diags/examples/ProcIncompatibleSourceVersion/processors/AnnoProc.java.i
 data/src/share/classes/com/sun/tools/classfile/AttributeException.java.i
 data/test/tools/javac/diags/examples/NotDefPublicCantAccess/p/C.java.i
-data/test/tools/javac/generics/5009937/T5009937.java.i
+data/test/tools/javac/annotations/neg/Z12.java.i
 data/test/com/sun/javadoc/testHeadings/pkg1/C1.java.i
 data/test/com/sun/javadoc/testNestedGenerics/pkg/NestedGenerics.java.i
-data/test/tools/javac/generics/InnerInterface2.java.i
+data/test/com/sun/javadoc/testMemberInheritence/diamond/C.java.i
 data/test/tools/javac/generics/7022054/T7022054neg2.out.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/ClassDeclarationImpl.java.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java.i
-data/test/com/sun/javadoc/DocRootSlash/p2/package.html.i
+data/src/share/classes/com/sun/mirror/type/PrimitiveType.java.i
+data/test/tools/javac/generics/6372782/Element.java.i
 data/test/tools/javac/processing/6430209/T6430209.java.i
-data/test/tools/javadoc/generics/tparamTagOnMethod/Main.java.i
-data/test/tools/javac/generics/7020657/T7020657pos.java.i
-data/test/tools/javac/api/TestOperators.java.i
+data/test/tools/javac/generics/wildcards/AssignmentSameType4.java.i
+data/test/tools/javac/miranda/4686811/p1/C.java.i
 data/test/tools/javac/processing/environment/round/AnnotatedElementInfo.java.i
 data/test/tools/javac/api/6431435/p/B.java.i
 data/test/tools/javac/6917288/GraphicalInstaller.java.i
 data/test/tools/javac/annotations/pos/ClassB.java.i
 data/test/tools/javac/T6993301.java.i
 data/src/share/classes/com/sun/tools/classfile/ConstantPoolException.java.i
-data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes7.java.i
-data/test/tools/javac/warnings/DepAnn.java.i
 data/make/netbeans/common/standard-ide-actions.ent.i
 data/test/com/sun/javadoc/testLinkOption/TestNewLineInLink.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/markup/package.html.i
 data/test/tools/javac/BadOptimization/DeadCode4.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java.i
-data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes2.java.i
-data/test/tools/javac/generics/classreader/HMethod.java.i
+data/src/share/classes/com/sun/tools/doclets/standard/Standard.java.i
 data/test/tools/javac/generics/syntax/6318240/BarNeg1a.java.i
-data/src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationImpl.java.i
+data/test/com/sun/javadoc/testTaglets/Parent.java.i
+data/test/tools/javadoc/generics/tparamTagOnMethod/Main.java.i
 data/test/tools/javac/TryWithResources/DuplicateResource.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties.i
 data/test/tools/javac/diags/examples/RepeatedAnnotationTarget.java.i
 data/test/com/sun/javadoc/testDocFileDir/pkg/doc-files/subdir-used2/testfile.txt.i
-data/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateAnnotationValue.out.i
 data/src/share/classes/com/sun/javadoc/ParamTag.java.i
 data/src/share/opensource/javac/doc/javac_lifecycle/Enter.html.i
 data/test/tools/javac/generics/diamond/neg/Neg06.java.i
@@ -2330,16 +2291,15 @@ data/src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.
 data/test/tools/javac/multicatch/model/Member.java.i
 data/src/share/classes/com/sun/tools/javap/LocalVariableTypeTableWriter.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java.i
-data/test/tools/javac/generics/7034019/T7034019b.java.i
 data/test/com/sun/javadoc/testOverridenMethods/pkg1/SubClass.java.i
 data/test/tools/javac/foreach/SpecIterable.java.i
 data/src/share/classes/com/sun/tools/javah/resources/l10n_ja.properties.i
 data/test/tools/javac/generics/6985719/T6985719d.java.i
 data/test/com/sun/javadoc/5093723/UndocumentedClass.java.i
-data/test/com/sun/javadoc/testMemberInheritence/pkg/BaseClass.java.i
-data/test/tools/javac/processing/model/TestExceptions.java.i
+data/test/com/sun/javadoc/testHtmlTableTags/pkg1/I1.java.i
+data/test/tools/javac/6668794/badSource/p/A.java.i
 data/test/tools/apt/mirror/declaration/ParameterDecl.java.i
-data/src/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java.i
+data/src/share/classes/com/sun/tools/javac/code/Type.java.i
 data/test/com/sun/javadoc/testHiddenMembers/TestHiddenMembers.java.i
 data/test/tools/javac/enum/T5081785a.java.i
 data/test/com/sun/javadoc/testWarnings/TestWarnings.java.i
@@ -2349,26 +2309,26 @@ data/test/tools/javac/SynchronizedClass.java.i
 data/test/tools/javac/generics/classreader/HMethodImpl.java.i
 data/test/tools/javac/generics/6372782/Ring.java.i
 data/test/tools/javac/generics/PrimitiveVariant.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/tab.gif.i
 data/src/share/classes/com/sun/source/tree/DisjunctiveTypeTree.java.i
 data/test/tools/javac/diags/examples/UnsupportedFpLit.java.i
-data/test/tools/javadoc/completionFailure/pkg/B.java.i
+data/src/share/classes/com/sun/source/util/SourcePositions.java.i
 data/test/tools/javac/FlatnameClash.java.i
-data/test/tools/javac/diags/examples/TypeParameterOnPolymorphicSignature.java.i
-data/test/tools/javac/typeAnnotations/failures/common/arrayclass/InvalidLocation.out.i
+data/test/tools/javac/StringsInSwitch/OneCaseSwitches.java.i
 data/test/tools/javac/generics/inference/6650759/T6650759m.java.i
 data/test/tools/javac/ClassLiterals/p1/C.java.i
-data/test/tools/javac/AnonymousProtect/AnonymousProtect.java.i
+data/test/tools/javac/generics/CatchTyparam.java.i
 data/test/tools/javac/api/6422215/T6422215.java.i
 data/src/share/classes/com/sun/tools/classfile/SourceID_attribute.java.i
-data/test/tools/javac/generics/odersky/BadTest2.java.i
+data/test/tools/javac/processing/filer/foo/Foo.java.i
 data/test/tools/javac/enum/DA2.java.i
-data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_9.java.i
-data/test/tools/apt/mirror/declaration/pkg1/AnInterface.java.i
+data/test/tools/javac/processing/filer/TestLastRound.java.i
+data/test/tools/javac/incompatibleNoninherited/A.java.i
+data/test/tools/javac/annotations/6365854/T6365854.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java.i
 data/src/share/classes/com/sun/source/tree/TypeCastTree.java.i
 data/test/com/sun/javadoc/testEnclosingClass/TestEnclosingClass.java.i
-data/test/tools/javac/processing/errors/TestSuppression.java.i
-data/test/tools/javac/depOverrides/annotation/I.java.i
+data/test/tools/javac/importChecks/ImportOfOwnClass.java.i
 data/test/com/sun/javadoc/AccessAsciiArt/p1/SI.java.i
 data/test/tools/javac/diags/examples/CantAssignToFinal.java.i
 data/test/tools/javac/generics/diamond/neg/Neg09.java.i
@@ -2384,19 +2344,18 @@ data/test/tools/javac/diags/examples/DeprecatedPluralAdditional/DeprecatedPlural
 data/test/tools/javac/ImportCycle/Dummy.java.i
 data/test/tools/javac/api/6437999/T6437999.java.i
 data/test/tools/javac/generics/diamond/7030150/Neg02.java.i
-data/test/tools/javac/ClassLiterals/LiteralInterface_1.java.i
 data/test/tools/javac/T6882235.out.i
 data/test/com/sun/javadoc/WindowTitles/WindowTitles.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/SerializedFormWriterImpl.java.i
 data/test/tools/javac/generics/6356636/T6356636.java.i
 data/test/tools/javac/DefiniteAssignment/T4721062b.java.i
-data/test/tools/javac/annotations/neg/NoClone.java.i
+data/test/tools/javac/StringConversion.java.i
 data/test/tools/javadoc/badSuper/p/A.java.i
-data/test/tools/javac/constDebug/ConstDebug.sh.i
 data/test/com/sun/javadoc/testHeadings/pkg2/C2.java.i
-data/test/tools/javac/generics/diamond/T6951833.java.i
+data/src/share/classes/com/sun/source/tree/EmptyStatementTree.java.i
+data/test/tools/javac/ImportCycle/foo/Middle2.java.i
 data/src/share/classes/com/sun/source/util/TaskEvent.java.i
-data/test/tools/javac/unicode/UnicodeAtEOL.java.i
+data/test/tools/javac/boxing/T6614974.java.i
 data/src/share/classes/com/sun/tools/javac/util/SharedNameTable.java.i
 data/test/tools/javac/generics/InheritanceConflict.java.i
 data/test/Makefile.i
@@ -2406,333 +2365,337 @@ data/test/tools/javac/policy/test1/byfile.ABD.out.i
 data/test/tools/javac/policy/bytodo.ACD.out.i
 data/test/tools/javac/diags/examples/InferredDoNotConformToBounds.java.i
 data/test/tools/javac/typeAnnotations/failures/common/arrays/InvalidLocation.out.i
-data/test/tools/javac/generics/GenericAnonCtor.java.i
+data/test/tools/javac/processing/warnings/UseImplicit/warn.out.i
 data/test/tools/javac/cast/7005095/T7005095pos.java.i
-data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/TypeParameterSuperClass.java.i
+data/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java.i
 data/test/tools/javac/QualifiedOuterThis.java.i
-data/test/tools/javac/api/6452876/T6452876.java.i
-data/test/com/sun/javadoc/testLegacyTaglet/TestLegacyTaglet.java.i
-data/test/tools/javac/6917288/GraphicalInstallerTest.java.i
+data/test/tools/javac/generics/Casting5.java.i
+data/test/tools/apt/Compile/goldenWarn.txt.i
+data/test/tools/javadoc/6964914/Test.java.i
 data/test/tools/javac/sourcePath2/p/SourcePath2A.java.i
 data/src/share/classes/com/sun/mirror/type/ArrayType.java.i
 data/test/tools/javac/policy/test1/simple.ACD.out.i
-data/test/tools/javac/generics/diamond/neg/Neg12.java.i
-data/test/tools/javac/generics/MultipleInheritance.java.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java.i
+data/test/tools/javac/cast/6665356/T6665356.out.i
+data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes7.java.i
 data/test/tools/javac/BadBreak.java.i
 data/test/tools/javac/diags/examples/VarargsImplement.java.i
 data/test/tools/apt/Basics/NullAPF.java.i
 data/test/tools/javadoc/6227454/Test.java.i
-data/test/tools/javac/generics/wildcards/pos/ParamCast.java.i
-data/src/share/classes/com/sun/tools/classfile/LineNumberTable_attribute.java.i
-data/src/share/classes/com/sun/tools/javah/TypeSignature.java.i
+data/test/com/sun/javadoc/testCmndLineClass/pkg1/C2.java.i
+data/test/tools/javac/TryWithResources/TwrFlow.out.i
 data/test/tools/javac/generics/wildcards/neg/CastWarn5.java.i
 data/src/share/classes/com/sun/tools/javac/util/Paths.java.i
 data/test/tools/apt/Compile/ClassDeclApf.java.i
 data/test/tools/javadoc/6176978/T6176978.java.i
-data/src/share/classes/com/sun/tools/javadoc/ProgramElementDocImpl.java.i
+data/test/tools/javac/FlatnameClash2.java.i
 data/test/com/sun/javadoc/testTopOption/overview.html.i
 data/src/share/classes/com/sun/tools/javap/JavapTask.java.i
 data/src/share/classes/com/sun/source/tree/ParenthesizedTree.java.i
 data/test/tools/javac/enum/ExplicitlyAbstractEnum2.java.i
-data/src/share/classes/com/sun/tools/javac/code/BoundKind.java.i
-data/test/tools/javac/file/T7018098.java.i
-data/test/tools/javac/diags/examples/IntfAnnotationsCantHaveTypeParams.java.i
-data/test/tools/javac/protectedInner/Outerclass.java.i
+data/src/share/classes/com/sun/tools/classfile/ModulePermits_attribute.java.i
+data/test/tools/javac/InnerMethSig.java.i
+data/test/tools/javac/ClassPathTest/bar/pkg/ClassPathTestAux2.java.i
+data/src/share/classes/com/sun/tools/javac/model/JavacSourcePosition.java.i
+data/test/tools/javac/processing/model/element/TestPackageElement.java.i
+data/test/tools/javac/unicode/SupplementaryJavaID6.sh.i
 data/test/tools/javac/generics/6985719/T6985719f.java.i
-data/src/share/classes/sun/tools/javap/AttrData.java.i
+data/test/tools/javadoc/6964914/TestUserDoclet.java.i
 data/test/tools/javac/ExtDirs/ExtDirTest_1.java.i
 data/test/tools/javac/generics/6985719/T6985719c.java.i
-data/test/tools/javac/annotations/neg/NoAnnotationMethods.java.i
-data/test/tools/javac/generics/odersky/Test2.java.i
-data/test/tools/javac/foreach/StaticBlock.java.i
+data/test/tools/javac/generics/diamond/neg/Neg12.java.i
+data/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateAnnotationValue.out.i
+data/test/tools/javac/types/PrimitiveConversionTest.java.i
+data/test/tools/javac/generics/T6481655.java.i
 data/test/tools/javac/NoNoClassDefFoundErrorError.java.i
-data/test/tools/javac/diags/examples/AnnoValueMustBeClassLiteral.java.i
-data/test/tools/javac/multicatch/7030606/T7030606.out.i
+data/test/tools/javac/diags/examples/IllegalChar.java.i
+data/test/tools/javac/processing/model/element/TestMissingElement/InvalidSource.java.i
 data/test/tools/javac/generics/typevars/5060485/Neg1.java.i
 data/test/tools/javac/unicode/SupplementaryJavaID5.java.i
 data/test/tools/javac/6342411/T6342411.java.i
 data/test/tools/javac/NonStaticFieldExpr2.out.i
-data/test/tools/javah/6572945/gold/jni.dir.1/TestClass1_Inner2.h.i
-data/test/tools/javac/AnonInnerException_2.java.i
-data/test/tools/javac/generics/typevars/6182630/T6182630f.java.i
-data/test/com/sun/javadoc/testAnnotationTypes/pkg/AnnotationType.java.i
-data/test/tools/javac/fatalErrors/NoJavaLang.sh.i
-data/test/tools/javadoc/generics/genericClass/pkg1/A.java.i
+data/test/tools/apt/mirror/declaration/FieldDecl.java.i
+data/test/tools/javac/generics/6192945/MethodNeg.out.i
+data/test/tools/javac/ConstCharAppend.java.i
+data/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ClassUseTest2.java.i
+data/test/tools/javac/T6326754.java.i
+data/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateTypeAnnotation.out.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ParamTaglet.java.i
 data/test/tools/javac/api/6400303/Test2.java.i
 data/test/tools/javac/OverrideChecks/6400189/T6400189a.out.i
 data/test/com/sun/javadoc/AccessSkipNav/p1/C1.java.i
-data/test/tools/javac/warnings/Unchecked.lintAll.out.i
+data/test/tools/javadoc/parser/7091528/p/C1.java.i
 data/test/tools/javac/lint/FallThrough.java.i
 data/test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/packageToExclude/DummyClass.java.i
 data/test/tools/javac/depOverrides/annotation/Test2Q.out.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractMemberBuilder.java.i
+data/src/share/classes/com/sun/tools/javap/ConstantWriter.java.i
 data/test/tools/javac/generics/diamond/7030150/Neg02.out.i
 data/test/tools/javac/generics/inference/4972073/T4972073.java.i
-data/test/tools/javac/api/6471599/Main.java.i
-data/test/com/sun/javadoc/testHrefInDocComment/pkg/I1.java.i
+data/test/tools/javac/diags/examples/ProcessorCantInstantiate/processors/AnnoProc.java.i
+data/test/tools/javac/DuplicateClass2.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/TypeParameterSubClass.java.i
-data/test/tools/javac/generics/6985719/T6985719b.java.i
+data/test/tools/javac/policy/test1/A.java.i
 data/test/tools/javac/mandatoryWarnings/unchecked/Test4.out.i
 data/test/tools/javac/enum/EnumImplicitPrivateConstructor.java.i
+data/test/tools/javac/generics/odersky/BadTest2.java.i
 data/test/tools/javac/CyclicInheritance6/Main.java.i
-data/test/tools/javac/generics/bridge1/E.java.i
-data/test/tools/javac/generics/diamond/pos/Pos01.java.i
+data/test/tools/javac/generics/wildcards/neg/Readonly.java.i
+data/test/tools/javadoc/6964914/Error.java.i
 data/test/tools/apt/Options/options.sh.i
 data/test/tools/apt/Basics/annot/AnnotShangri_la.java.i
-data/src/share/classes/com/sun/source/tree/LabeledStatementTree.java.i
-data/test/tools/javac/diags/examples/ConstantSVUID.java.i
+data/test/tools/javac/generics/wildcards/neg/CastWarn11.java.i
+data/test/tools/javac/generics/GenericOverride.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/AbstractExecutableMemberWriter.java.i
-data/test/tools/javac/generics/diamond/7030150/Neg03.out.i
 data/test/tools/javac/diags/examples/MissingReturnValue.java.i
+data/test/tools/javac/generics/6985719/T6985719d.out.i
+data/test/tools/javac/6341866/Anno.java.i
 data/test/tools/javac/generics/T4711694.java.i
 data/test/tools/javac/diags/examples/VarMightNotHaveBeenInitialized.java.i
-data/test/tools/javac/StringsInSwitch/RepeatedStringCaseLabels1.java.i
+data/test/tools/javac/failover/FailOver11.java.i
 data/test/tools/javac/protectedAccess/ProtectedAccess_1.java.i
-data/test/tools/javap/T4876942.java.i
-data/test/tools/javac/diags/examples/VarargsOverride.java.i
-data/src/share/classes/com/sun/tools/javah/Mangle.java.i
-data/test/tools/javac/warnings/Unchecked.java.i
-data/test/tools/javac/diags/examples/UncheckedPlural/UncheckedPlural.java.i
+data/test/tools/javac/DefiniteAssignment/T4704365.java.i
+data/test/tools/javac/generics/wildcards/neg/CastFail6.java.i
+data/test/com/sun/javadoc/testIndex/pkg/Interface.java.i
 data/test/tools/javac/generics/UncheckedCovariance.java.i
+data/src/share/classes/com/sun/tools/javac/parser/Parser.java.i
 data/test/tools/javac/processing/model/util/directSupersOfErr/DirectSupersOfErr.java.i
 data/test/tools/javah/ParamClassTest.java.i
+data/test/tools/javac/diags/examples/NoInterfaceHere.java.i
 data/test/tools/javac/7023703/T7023703neg.java.i
-data/test/com/sun/javadoc/testAbsLinkPath/pkg1/C1.java.i
+data/test/tools/javac/StringsInSwitch/RepeatedStringCaseLabels2.java.i
 data/src/share/classes/javax/annotation/processing/package-info.java.i
-data/src/share/classes/com/sun/tools/apt/mirror/type/TypeMaker.java.i
-data/test/tools/javac/T6356217/T6356217.java.i
+data/test/tools/javac/packone/Mediator.java.i
+data/test/tools/javac/classreader/T7031108.java.i
 data/test/tools/javac/generics/odersky/Test4.java.i
-data/src/share/classes/com/sun/tools/javac/util/Context.java.i
-data/test/tools/javac/typeAnnotations/failures/OldArray.out.i
+data/test/tools/javadoc/dupOk/sp2/p/B.java.i
 data/src/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties.i
 data/test/tools/javac/generics/wildcards/6762569/T6762569b.java.i
 data/test/tools/javap/T4501660.java.i
 data/test/tools/javac/DefiniteAssignment/DASwitch.java.i
 data/test/tools/javadoc/annotations/annotatePackage/pkg1/package-info.java.i
-data/test/tools/javac/ProtectedInnerClass/ProtectedInnerClass.sh.i
+data/test/tools/javac/warnings/6885255/T6885255.out.i
 data/test/tools/javac/ClassModifiers/InterfaceAndInnerClsCtor.java.i
-data/test/tools/javac/BadAnnotation.java.i
-data/test/tools/javadoc/sourceOption/SourceOption.java.i
+data/test/tools/javac/InnerNamedConstant_2.out.i
+data/test/tools/javac/generics/wildcards/6651719/T6651719a.java.i
 data/test/tools/javac/lint/Deprecation.java.i
 data/test/tools/javac/types/TypeHarness.java.i
 data/test/tools/javac/modules/ModuleResolverTest02.java.i
 data/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java.i
-data/test/tools/javadoc/6942366/Test.java.i
+data/test/tools/javac/diags/examples/VarargsOverride.java.i
 data/test/com/sun/javadoc/testSerialVersionUID/TestSerialVersionUID.java.i
 data/test/tools/javac/depDocComment/DeprecatedDocComment.java.i
 data/test/com/sun/javadoc/testTitleInHref/pkg/Links.java.i
 data/test/tools/javac/varargs/T6746184.java.i
-data/test/tools/javac/DefiniteAssignment/DefAssignAfterIf_2.java.i
-data/test/com/sun/javadoc/testJavascript/pkg/C.java.i
+data/test/tools/javac/cast/6932571/T6932571neg.java.i
+data/test/tools/javac/cast/5034609/T5034609.java.i
 data/test/tools/javac/Closure2.java.i
-data/test/tools/javac/varargs/7043922/T7043922.java.i
-data/test/tools/apt/Scanners/Scanner.java.i
+data/test/tools/javac/7085024/T7085024.out.i
+data/test/tools/javac/limits/ArrayDims1.java.i
 data/test/tools/javac/api/6421111/T6421111.java.i
+data/test/tools/javac/7086595/T7086595.java.i
 data/test/tools/javac/miranda/4686811/p1/A.java.i
-data/src/share/classes/com/sun/tools/javac/code/Lint.java.i
-data/test/tools/javac/T6855236.java.i
+data/src/share/classes/javax/tools/overview.html.i
+data/test/tools/javap/classfile/deps/GetDeps.java.i
+data/test/tools/javac/generics/wildcards/neg/CastWarn6.java.i
 data/test/tools/javac/foreach/SuperfluousAbstract.java.i
 data/test/tools/javac/diags/MessageFile.java.i
 data/test/tools/javac/typeAnnotations/TypeParameterTarget.java.i
 data/test/tools/javac/6863465/TestCircularClassfile.java.i
 data/test/tools/javac/JsrRet.java.i
-data/test/tools/javac/generics/6372782/AbstractVector.java.i
+data/test/com/sun/javadoc/testDocErrorReporter/TestDocErrorReporter.java.i
 data/test/tools/javac/processing/model/element/TestMissingElement2/TestMissingGenericClass2.java.i
-data/test/tools/javac/diags/examples/TypeReqRef.java.i
 data/test/com/sun/javadoc/testUseOption/pkg1/C5.java.i
 data/test/tools/javac/6558548/T6558548_6.out.i
-data/test/tools/javac/multicatch/Neg04.java.i
+data/src/share/classes/com/sun/tools/javac/main/JavacOption.java.i
 data/test/tools/javac/6330997/T2.java.i
 data/test/tools/javac/T6900037.java.i
-data/test/com/sun/javadoc/constantValues/TestConstantValues2.java.i
-data/test/tools/javac/policy/test2/bytodo.AB.out.i
+data/test/com/sun/javadoc/testTagInheritence/pkg/TestAbstractClass.java.i
+data/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java.i
 data/src/share/classes/com/sun/source/tree/ModuleClassTree.java.i
-data/test/tools/javac/TryInInstanceInit.java.i
+data/test/tools/javac/FinalInitializer.java.i
+data/test/tools/apt/Compile/Rounds.java.i
 data/src/share/classes/com/sun/tools/classfile/Instruction.java.i
-data/test/tools/javac/generics/GenericOverride.java.i
 data/test/tools/javac/cast/BoxedArray.java.i
-data/test/tools/apt/Compile/HelloAnnotation.java.i
+data/test/tools/javac/multicatch/Neg02eff_final.java.i
 data/test/tools/javac/StringsInSwitch/NonConstantLabel.java.i
-data/test/tools/javac/file/zip/Utils.java.i
+data/test/tools/javac/generics/rawOverride/6557199/T6557199.java.i
 data/test/tools/javac/generics/inference/4972073/T4972073b.java.i
 data/test/tools/javac/HiddenAbstractMethod/one/Parent.java.i
 data/test/tools/javac/ForwardReference/ForwardReference_2.java.i
-data/src/share/classes/com/sun/tools/javac/util/PropagatedException.java.i
+data/test/tools/javac/warnings/Deprecation.noLint.out.i
 data/src/share/classes/com/sun/mirror/declaration/EnumConstantDeclaration.java.i
 data/src/share/classes/com/sun/tools/javadoc/JavadocTool.java.i
 data/test/tools/javac/generics/7007615/T7007615.out.i
+data/test/com/sun/javadoc/testInlineLinkLabel/pkg/C1.java.i
 data/test/com/sun/javadoc/testThrowsTag/pkg/T2.java.i
 data/test/tools/javac/cast/6270087/T6270087neg.out.i
 data/test/tools/javac/depOverrides/doccomment/B2.java.i
-data/test/tools/javac/annotations/pos/ClassA.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstantsSummaryWriter.java.i
-data/test/tools/javac/protectedInner/InnerClass.java.i
+data/test/tools/javac/staticImport/StaticImport2.java.i
+data/src/share/classes/com/sun/tools/javac/file/CloseableURLClassLoader.java.i
 data/test/tools/javac/StaticBlockScope.java.i
 data/test/tools/javac/generics/wildcards/6651719/T6651719b.java.i
-data/test/tools/javac/generics/SuperTypeargs.java.i
+data/test/tools/javac/processing/model/TestExceptions.java.i
 data/test/com/sun/javadoc/testBackSlashInLink/TestBackSlashInLink.java.i
+data/test/tools/javac/LabeledDeclaration.java.i
 data/test/tools/javac/typeAnnotations/newlocations/MethodReturnType.java.i
 data/test/tools/javac/processing/filer/TestInvalidRelativeNames.java.i
 data/test/tools/javac/diags/examples/ConstExprRequired.java.i
-data/src/share/classes/com/sun/javadoc/RootDoc.java.i
-data/test/tools/javac/T6227617.java.i
-data/test/tools/javac/limits/ArrayDims1.java.i
+data/test/tools/javac/javazip/bad/B.java.i
+data/test/tools/javac/processing/6359313/Foo.java.i
 data/test/tools/javac/T6231847.java.i
 data/test/tools/javac/6521805/T6521805a.java.i
+data/test/tools/javac/DefiniteAssignment/DUParam2.java.i
 data/src/share/classes/com/sun/tools/javac/file/ZipFileIndexCache.java.i
 data/test/tools/javac/OverrideChecks/T6326485.java.i
 data/test/tools/javac/Source5.java.i
 data/src/share/classes/com/sun/tools/javac/jvm/Gen.java.i
-data/test/tools/javac/InitializerCompletion_2.java.i
+data/test/com/sun/javadoc/testNestedInlineTag/TestNestedInlineTag.java.i
 data/test/tools/javac/mandatoryWarnings/deprecated/Test2.out.i
+data/test/tools/javac/TryWithResources/UnusedResourcesTest.java.i
 data/test/tools/javac/foreach/Foreach.java.i
-data/test/tools/javac/generics/wildcards/neg/CastWarn2.java.i
+data/test/tools/javac/NonAmbiguousField/two/Child2.java.i
 data/test/tools/javac/generics/7022054/T7022054pos2.java.i
 data/test/tools/javac/T6458823/T6458823.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/TypeParameters.java.i
 data/test/tools/apt/Basics/annot/annot2/AnnotMarker2.java.i
-data/test/tools/javac/limits/PoolSize1.java.i
 data/test/tools/javac/T5105890.java.i
-data/src/share/classes/com/sun/tools/apt/main/AptJavaCompiler.java.i
+data/test/com/sun/javadoc/testHrefInDocComment/pkg/I2.java.i
 data/test/tools/javac/generics/6956758/T6956758neg.out.i
-data/test/tools/javac/SuperNew3.java.i
+data/test/tools/javac/processing/6430209/test0.java.i
 data/test/tools/javac/generics/T6869075.java.i
 data/test/tools/javac/diags/examples/ResourceNotReferenced.java.i
 data/test/tools/javadoc/6964914/TestStdDoclet.java.i
 data/test/tools/javac/diags/examples/ProcOnlyNoProcs.java.i
 data/test/tools/javap/typeAnnotations/PresenceInner.java.i
 data/src/share/classes/javax/lang/model/SourceVersion.java.i
-data/test/tools/javac/T6725036.java.i
+data/test/tools/javac/miranda/6964669/pkg/A.java.i
 data/test/tools/javac/processing/model/util/elements/doccomments/TestDocComments.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/IndexBuilder.java.i
-data/test/tools/javac/enum/NoFinal.java.i
+data/test/tools/javac/generics/diamond/T6939780.java.i
 data/test/tools/javac/processing/model/util/TypesBadArg.java.i
 data/test/tools/javac/ClassLiterals/LiteralInterface_2.java.i
 data/test/tools/javac/depOverrides/annotation/Test1.java.i
-data/test/tools/javac/typeAnnotations/failures/target/NotTypeUse.java.i
-data/test/tools/apt/Basics/Lacuna.java.i
+data/test/tools/javac/processing/model/element/TestMissingElement2/TestMissingClass.java.i
+data/test/tools/javah/VersionTest.java.i
+data/test/tools/javac/protectedAccess/ProtectedMemberAccess5/Main.java.i
 data/test/tools/javac/typeAnnotations/MultipleTargets.java.i
 data/test/tools/javac/generics/odersky/BadTest4.java.i
-data/test/tools/javac/SwitchFence.java.i
-data/test/tools/javac/treepostests/TreePosTest.java.i
+data/test/tools/javac/unicode/UnicodeNewline.out.i
 data/test/tools/javac/generics/inference/6315770/T6315770.out.i
-data/test/tools/javac/util/list/TList.java.i
-data/test/tools/javac/6734819/T6734819b.java.i
+data/src/share/classes/com/sun/tools/classfile/ModuleClass_attribute.java.i
 data/test/tools/javac/diags/examples/PossibleLossPrecision.java.i
 data/test/tools/javac/processing/6430209/b6341534.java.i
-data/test/tools/javac/6979683/TestCast6979683_BAD39.java.i
+data/test/tools/javac/cast/6286112/T6286112.java.i
 data/test/tools/javac/QualifiedAccess/QualifiedAccess_1.sh.i
 data/test/tools/javac/generics/6910550/T6910550d.out.i
-data/test/tools/javap/T6622232.java.i
 data/test/tools/javac/modules/ModuleModeTests/TestRunner.java.i
-data/test/tools/javac/annotations/TestAnnotationPackageInfo.java.i
+data/test/tools/javac/boxing/NoBoxingInt.java.i
 data/src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java.i
 data/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor6.java.i
 data/test/tools/javac/TryWithResources/TwrNullTests.java.i
+data/test/tools/javac/generics/inference/7086586/T7086586.java.i
 data/test/tools/javac/generics/6985719/T6985719a.java.i
 data/src/share/classes/com/sun/tools/javap/InstructionDetailWriter.java.i
-data/test/tools/javac/4980495/std/p2/A2.java.i
-data/test/tools/apt/mirror/type/AnnoTyp.java.i
+data/test/tools/javac/generics/genericAbstract/B.java.i
+data/test/tools/apt/Basics/StaticFieldAnnotations.java.i
 data/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateAnnotationValue.java.i
-data/test/tools/javac/diags/examples/UncheckedGenericArrayCreation.java.i
+data/test/tools/javac/generics/6372782/PlanarVectorVariable.java.i
+data/test/tools/javac/generics/bridge1/D.java.i
 data/test/tools/javac/generics/odersky/Cell.java.i
-data/test/tools/javac/T6230128.out.i
 data/test/tools/javac/literals/BadUnderscoreLiterals.7.out.i
-data/src/share/classes/com/sun/tools/apt/mirror/declaration/EnumDeclarationImpl.java.i
+data/test/tools/javac/TestPkgInfo.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/apt/MessagerImpl.java.i
 data/test/tools/javac/diags/examples/UncheckedAssign.java.i
-data/test/com/sun/javadoc/testUseOption/pkg1/package.html.i
+data/test/tools/javadoc/BreakIteratorWarning.java.i
 data/test/tools/apt/Basics/TestGetPackageApf.java.i
 data/test/tools/javadoc/sourceOnly/p/SourceOnly.java.i
 data/test/tools/javac/api/TestClientCodeWrapper.java.i
 data/test/tools/javac/diags/examples/OverrideVarargsExtra.java.i
 data/test/tools/javac/FloatingPointChanges/BadConstructorModifiers.sh.i
 data/test/tools/javac/InstanceInitException_2.java.i
-data/test/tools/javac/T4994049/DeprecatedYES.java.i
+data/test/tools/javac/annotations/neg/Dup.java.i
 data/test/tools/javac/versions/CheckClassFileVersion.java.i
-data/test/tools/javac/diags/examples/TryResourceNotSupported.java.i
-data/test/tools/apt/Compile/ClassDeclApf2.java.i
-data/src/share/classes/javax/lang/model/element/TypeElement.java.i
-data/src/share/classes/com/sun/mirror/type/TypeVariable.java.i
+data/test/tools/javac/warnings/T6763518.java.i
+data/test/tools/javac/generics/6956758/T6956758neg.java.i
+data/test/tools/javac/diags/examples/NonStaticCantBeRef.java.i
+data/test/tools/javac/overload/T5090220.java.i
 data/test/tools/javac/processing/model/util/directSupersOfErr/C1.java.i
-data/test/com/sun/javadoc/testDupParamWarn/TestDupParamWarn.java.i
-data/test/tools/javac/T4906100.out.i
+data/test/tools/javac/processing/filer/TestLastRound.out.i
+data/test/com/sun/javadoc/testHref/package-list.i
 data/src/share/classes/com/sun/source/tree/SwitchTree.java.i
-data/test/tools/javac/generics/typevars/6182630/T6182630b.java.i
 data/test/tools/javac/diags/examples/DeprecatedPlural/DeprecatedFilename.java.i
-data/test/tools/javac/DefiniteAssignment/DefAssignAfterIf_1.java.i
+data/test/tools/javac/T6403466.java.i
 data/src/share/classes/com/sun/tools/javac/Server.java.i
-data/test/tools/javac/mandatoryWarnings/deprecated/Test5.out.i
-data/test/tools/javah/VersionTest.java.i
-data/make/netbeans/langtools/nbproject/project.xml.i
-data/test/tools/javac/annotations/6214965/CompilerAnnotationTest2bad.java.i
+data/test/tools/javac/4917091/Test256a.java.i
+data/test/tools/javac/diags/examples/UncheckedPlural/UncheckedPlural.java.i
 data/test/tools/javac/typeAnnotations/failures/target/Constructor.java.i
-data/test/tools/javac/diags/examples/EmptyIf.java.i
-data/test/tools/javac/completion/C.java.i
+data/test/tools/javac/generics/diamond/7030687/ParserTest.java.i
 data/test/tools/javac/Null2DArray.java.i
 data/test/tools/javac/6199662/TreeScanner.java.i
-data/src/share/classes/com/sun/tools/javac/comp/Lower.java.i
+data/test/tools/apt/mirror/util/TypeCreation.java.i
 data/test/tools/javac/meth/InvokeDynTrans.java.i
 data/test/tools/javac/binaryCompat/T1.java.i
 data/test/tools/javac/innerClassFile/y/R3.java.i
-data/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestClass.java.i
-data/test/com/sun/javadoc/testInlineLinkLabel/pkg/package.html.i
+data/test/tools/javac/diags/examples/TypeVarMayNotBeFollowedByOtherBounds.java.i
+data/test/tools/javac/varargs/warning/Warn2.java.i
 data/src/share/classes/com/sun/mirror/type/WildcardType.java.i
+data/test/tools/javac/InterfaceOverrideFinal.java.i
 data/test/com/sun/javadoc/testClassTree/pkg/ParentClass.java.i
 data/test/tools/javac/failover/FailOver10.out.i
 data/test/tools/javac/generics/typevars/5060485/Compatibility02.out.i
-data/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleAnnotations_attribute.java.i
+data/test/tools/javac/boxing/Boxing2.java.i
 data/test/tools/javac/diags/examples/IllegalBytecodeIdentChar.java.i
+data/src/share/classes/com/sun/javadoc/AnnotationTypeElementDoc.java.i
 data/test/tools/javac/typeAnnotations/failures/common/rest/DuplicateTypeAnnotation.out.i
-data/test/tools/javac/generics/typevars/4856983/T4856983b.java.i
-data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_2.java.i
+data/src/share/classes/javax/lang/model/type/ErrorType.java.i
 data/src/share/classes/javax/lang/model/element/UnknownAnnotationValueException.java.i
+data/src/share/classes/com/sun/tools/apt/main/AptJavaCompiler.java.i
 data/test/tools/javac/depOverrides/annotation/B2.java.i
-data/test/com/sun/javadoc/testThrowsTag/pkg/C.java.i
-data/test/tools/javac/varargs/T7013865.java.i
+data/test/tools/javac/InitializerCompletion_2.java.i
 data/test/tools/javac/typeAnnotations/failures/common/wildcards/MissingAnnotationValue.out.i
 data/src/share/classes/com/sun/source/util/JavacTask.java.i
 data/test/tools/javac/ThrowNull.java.i
+data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes9.java.i
 data/test/tools/javac/ProtectedInnerClass/p2/ProtectedInnerClass3.java.i
 data/test/tools/javac/6403424/T6403424.java.i
-data/test/tools/javac/ClassPathTest/bar/pkg/ClassPathTestAux2.java.i
+data/test/tools/javac/InterfaceObjectInheritance.java.i
+data/test/tools/javac/processing/model/element/TypeParamBounds.java.i
+data/test/tools/javac/diags/examples/GenericThrowable.java.i
 data/test/tools/javac/T6668802.java.i
 data/test/tools/javap/T6868539.java.i
 data/test/tools/javac/generics/6268476/T6268476.java.i
 data/test/tools/javac/processing/6511613/clss41701.java.i
-data/test/tools/javah/SubClassConsts.win.i
+data/test/tools/javadoc/outputRedirect/Test.java.i
 data/src/share/classes/com/sun/tools/javac/file/CacheFSInfo.java.i
 data/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateTypeAnnotation.out.i
-data/src/share/classes/sun/tools/javap/MethodData.java.i
+data/test/tools/javac/RawCrash.java.i
 data/test/tools/javac/generics/6946618/T6946618b.java.i
-data/src/share/classes/javax/annotation/processing/Completions.java.i
-data/test/tools/javac/diags/examples/ProcessorWrongType/ProcessorWrongType.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DeprecatedTaglet.java.i
 data/test/tools/javac/generics/wildcards/neg/ParamCast.java.i
 data/src/share/classes/com/sun/tools/javac/util/ListBuffer.java.i
-data/test/tools/javap/T4884240.java.i
+data/src/share/classes/sun/tools/javap/JavapPrinter.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/EnumConstantDeclarationImpl.java.i
 data/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateAnnotationValue.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BaseTaglet.java.i
 data/test/tools/javac/processing/6378728/T6378728.java.i
-data/test/com/sun/javadoc/testCmndLineClass/pkg2/C3.java.i
+data/test/tools/javac/Enum1.java.i
 data/test/tools/javac/limits/PoolSize2.java.i
 data/test/tools/javac/failover/CheckAttributedTree.java.i
 data/test/tools/javac/nested/4903103/T4903103.java.i
-data/test/tools/javac/diags/examples/OperatorCantBeApplied.java.i
-data/test/tools/javac/stackmap/T4955930.sh.i
-data/test/tools/javac/5045412/Foo.java.i
-data/test/tools/javadoc/dupOk/DupOk.java.i
+data/test/tools/javac/generics/6946618/T6946618b.out.i
+data/test/tools/javadoc/annotations/shortcuts/expected.out.i
+data/test/tools/javac/generics/wildcards/AssignmentSameType7.java.i
 data/test/tools/javac/cast/6548436/T6548436a.java.i
 data/test/tools/javac/typeAnnotations/failures/common/typeArgs/InvalidLocation.java.i
-data/test/tools/javac/diags/examples/MulticatchNotSupported.java.i
+data/test/tools/apt/Basics/TestGetTypeDeclarationApf.java.i
 data/test/tools/javac/miranda/T4279316a.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java.i
-data/test/tools/javac/T6411379.java.i
+data/test/tools/javac/quid/MakeNegTests.sh.i
 data/test/com/sun/javadoc/testPackagePage/com/pkg/C.java.i
-data/test/tools/javac/diags/examples/EnumAnnoValueMustBeEnumConst.java.i
+data/test/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java.i
 data/test/tools/javac/OverrideChecks/6199153/T6199153.java.i
-data/test/tools/javac/processing/6413690/src/Super.java.i
+data/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateTypeAnnotation.java.i
+data/test/com/sun/javadoc/testSimpleTag/C.java.i
 data/test/tools/javac/assert/DU1.java.i
 data/test/com/sun/javadoc/testPackageDeprecation/TestPackageDeprecation.java.i
 data/test/tools/javac/processing/6365040/ProcBar.java.i
@@ -2743,107 +2706,119 @@ data/test/tools/javac/T6245591.out.i
 data/test/tools/javac/generics/rare/Rare11.java.i
 data/test/tools/javac/falseCycle/FalseCycleBase.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java.i
-data/test/tools/javac/generics/7022054/T7022054neg1.java.i
+data/test/tools/javac/generics/Casting2.java.i
+data/test/tools/apt/Options/OptionChecker.java.i
 data/src/share/classes/javax/lang/model/type/TypeMirror.java.i
-data/test/tools/javac/diags/examples/CountErrorPlural.java.i
+data/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateTypeAnnotation.out.i
 data/src/share/classes/com/sun/tools/javah/NativeHeaderTool.java.i
-data/test/com/sun/javadoc/testNoPackagesFile/TestNoPackagesFile.java.i
+data/test/com/sun/javadoc/testLinkTaglet/pkg/C.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/DeprecatedListWriter.java.i
 data/test/tools/javac/diags/examples/TypeFoundRequired.java.i
+data/test/tools/javac/6330920/T6330920.java.i
 data/test/tools/javac/mandatoryWarnings/deprecated/Test3.out.i
 data/test/tools/javac/PackageClassAmbiguity/util.java.i
 data/test/tools/javac/depOverrides/annotation/P.java.i
-data/test/tools/javac/generics/7034019/T7034019c.java.i
-data/src/share/classes/sun/tools/javap/InnerClassData.java.i
+data/src/share/classes/javax/lang/model/element/ExecutableElement.java.i
+data/test/com/sun/javadoc/testPrivateClasses/pkg/PrivateParent.java.i
 data/src/share/classes/com/sun/tools/classfile/ModuleExport_attribute.java.i
-data/test/tools/javac/diags/examples/VarargsPluralAdditional/VarargsPlural.java.i
+data/test/tools/javac/annotations/neg/Z9.java.i
 data/test/tools/javac/api/T6258271.java.i
-data/test/tools/javac/sourcePath/SourcePath.java.i
-data/test/com/sun/javadoc/testMemberInheritence/diamond/C.java.i
-data/test/tools/javap/classfile/T6887895.java.i
+data/test/tools/javac/diags/Example.java.i
+data/test/tools/javac/generics/InnerInterface2.java.i
+data/src/share/classes/com/sun/tools/javac/util/ByteBuffer.java.i
+data/test/tools/javac/annotations/neg/NoObjectMethods.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/EnumConstantBuilder.java.i
-data/test/tools/javac/SerialWarn.java.i
+data/test/tools/javac/api/6471599/Main.java.i
+data/test/tools/javac/generics/7034019/T7034019b.java.i
 data/test/com/sun/javadoc/testBreakIterator/TestBreakIterator.java.i
 data/test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java.i
-data/test/tools/javac/StringsInSwitch/OneCaseSwitches.java.i
+data/test/tools/javac/CyclicInheritance2.java.i
+data/test/tools/javac/crossPackageImpl/CrossPackageImplA.java.i
+data/test/tools/javac/diags/examples/TypeParameterOnPolymorphicSignature.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java.i
-data/test/tools/javac/policy/test1/D.java.i
+data/make/test/TEST.ROOT.i
 data/test/tools/javac/generics/RelaxedArrays.java.i
-data/test/tools/javac/StringConversion.java.i
-data/src/share/classes/com/sun/source/tree/EmptyStatementTree.java.i
-data/src/share/classes/com/sun/tools/javac/util/Assert.java.i
+data/test/tools/javac/annotations/neg/NoClone.java.i
+data/test/tools/javac/generics/diamond/T6951833.java.i
+data/test/tools/javadoc/dupOk/sp1/p/A.java.i
 data/test/tools/javac/generics/InstanceOf1.java.i
 data/test/tools/javac/6979683/TestCast6979683_BAD35.java.errlog.i
 data/test/tools/javac/diags/examples/AttrMustBeConstant.java.i
 data/test/tools/javac/varargs/6569633/T6569633.java.i
-data/test/tools/javac/cast/6665356/T6665356.out.i
+data/test/tools/javac/generics/MultipleInheritance.java.i
 data/test/tools/javac/typeAnnotations/newlocations/TypeParameters.java.i
 data/src/share/classes/com/sun/tools/javap/overview.html.i
 data/test/tools/javac/varargs/Warn2.java.i
 data/test/tools/javac/annotations/pos/Enum1.java.i
 data/test/tools/javac/diags/examples/DiamondAndAnonClass.java.i
-data/test/tools/javac/generics/inference/5070671/T5070671.java.i
+data/test/tools/javadoc/badSuper/BadSuper.java.i
+data/test/tools/javac/capture/Martin.java.i
 data/test/tools/javadoc/generics/tparamTagOnType/pkg1/A.java.i
 data/test/tools/javadoc/dupOk/sp2/p/A.java.i
+data/src/share/classes/com/sun/tools/classfile/DefaultAttribute.java.i
 data/test/tools/javac/UnterminatedLineComment.java.i
 data/src/share/classes/com/sun/tools/javac/jvm/ClassFile.java.i
-data/src/share/classes/com/sun/mirror/declaration/Declaration.java.i
+data/test/tools/javac/annotations/neg/Z5.java.i
+data/test/tools/javac/cast/6558559/T6558559a.java.i
 data/test/tools/javac/diags/examples/GenericArrayCreation.java.i
-data/test/tools/javac/Paths/6638501/test1/SayHelloToo.java.i
+data/test/com/sun/javadoc/testLegacyTaglet/TestLegacyTaglet.java.i
 data/test/tools/javac/tree/ClassTreeTest.java.i
 data/src/share/classes/sun/tools/javap/CPX.java.i
-data/src/share/classes/com/sun/tools/javap/AnnotationWriter.java.i
-data/test/tools/javac/processing/6994946/SyntaxErrorTest.out.i
-data/test/tools/javadoc/generics/genericMethod/pkg1/A.java.i
+data/test/tools/javac/generics/typevars/5060485/Compatibility.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SeeTaglet.java.i
 data/test/tools/javac/capture/Capture1.java.i
+data/make/test/lib/javadoc.sh.i
 data/test/tools/javac/StringsInSwitch/BadlyTypedLabel2.out.i
 data/test/tools/javac/diags/examples/IllegalEnumStaticRef.java.i
-data/src/share/classes/com/sun/tools/javac/main/JavacOption.java.i
+data/test/tools/javac/multicatch/Neg04.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeWriter.java.i
-data/make/test/lib/classes.sh.i
+data/test/tools/javac/failover/FailOver15.out.i
+data/test/tools/javac/T6358024.java.i
 data/test/com/sun/javadoc/testMemberSummary/pkg/PrivateParent.java.i
 data/test/tools/javac/positions/T6253161.java.i
 data/test/tools/javac/diags/examples/InconvertibleTypes.java.i
-data/test/tools/javadoc/imports/MissingImport.java.i
-data/test/tools/javac/NonAmbiguousField/two/Child2.java.i
+data/test/tools/javac/generics/wildcards/neg/CastWarn2.java.i
 data/test/tools/javac/unicode/SupplementaryJavaID6.java.i
 data/test/tools/javac/processing/model/6194785/T6194785a.java.i
 data/test/com/sun/javadoc/testNonFrameWarning/TestNonFrameWarning.java.i
-data/src/share/classes/com/sun/source/tree/LiteralTree.java.i
-data/test/tools/javac/unicode/SupplementaryJavaID3.java.i
-data/test/tools/apt/mirror/declaration/pkg1/pkg2/package.html.i
-data/test/tools/javac/generics/6292765/T6292765.java.i
+data/test/tools/javac/T6725036.java.i
+data/test/tools/javac/annotations/neg/DupTarget.java.i
+data/src/share/classes/com/sun/tools/classfile/ModuleRequires_attribute.java.i
+data/test/tools/javac/mixedTarget/ExtendCovariant2.java.i
+data/test/tools/javac/generics/7034019/T7034019d.out.i
 data/test/tools/javac/failover/FailOver02.java.i
 data/test/tools/javac/4980495/std/p1/A1.java.i
 data/test/tools/javac/annotations/neg/OverrideNo.java.i
 data/test/tools/javac/diags/examples/OverrideDoesntThrow.java.i
+data/src/share/classes/com/sun/javadoc/ThrowsTag.java.i
 data/test/tools/javac/ExtendsAccess/ExtendsAccess.sh.i
-data/test/tools/javac/boxing/NoBoxingFloat.java.i
+data/test/tools/javac/processing/model/util/elements/doccomments/a/First.java.i
 data/test/tools/javac/diags/examples/ProcUseProcOrImplicit/ProcUseProcOrImplicit.java.i
 data/test/tools/javac/DuplicateImport.java.i
-data/test/tools/javadoc/outputRedirect/Test.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DeprecatedTaglet.java.i
+data/test/tools/javah/SubClassConsts.win.i
+data/src/share/classes/javax/annotation/processing/Completions.java.i
 data/test/tools/javac/multicatch/Pos08eff_final.java.i
 data/test/tools/javac/generics/wildcards/neg/CastWarn4.java.i
-data/test/tools/apt/Basics/TestGetTypeDeclarationApf.java.i
+data/test/tools/javac/diags/examples/MulticatchNotSupported.java.i
 data/test/tools/javac/generics/PrimitiveClass.java.i
 data/test/tools/javadoc/annotations/annotateParams/expected.out.i
-data/test/tools/javac/annotations/neg/Z9.java.i
+data/test/tools/javac/diags/examples/VarargsPluralAdditional/VarargsPlural.java.i
 data/test/tools/javac/importContext/namedPackage/Dummy.java.i
 data/test/tools/javac/DefiniteAssignment/DefAssignAfterTry3.java.i
-data/test/tools/javac/diags/examples/AbstractCantBeInstantiated.java.i
-data/test/tools/javac/diags/examples/DirPathElementNotFound.java.i
-data/src/share/classes/com/sun/tools/javah/resources/version.properties-template.i
+data/test/tools/javac/generics/7007615/acc2/p1/C.java.i
+data/test/tools/javac/generics/inference/5070671/T5070671.java.i
+data/test/tools/javac/processing/6413690/src/Super.java.i
 data/test/tools/javac/multicatch/7005371/T7005371.java.i
 data/test/tools/javac/processing/6359313/T6359313.java.i
 data/test/tools/javac/generics/ParametricException.java.i
 data/test/tools/javac/scope/StarImportTest.java.i
-data/test/tools/javac/inheritedAccess/MethodReferenceQualification_1.java.i
+data/test/tools/javac/generics/inference/6650759/T6650759b.java.i
+data/test/tools/javac/processing/6634138/Dummy.java.i
 data/test/tools/javac/6199662/TreeInfo.java.i
-data/test/com/sun/javadoc/testIndex/pkg/AnnotationType.java.i
+data/test/tools/javac/api/T6345974.java.i
 data/test/tools/javac/danglingDep/NoDepX.java.i
 data/src/share/classes/com/sun/tools/javac/model/JavacElements.java.i
-data/test/tools/javac/diags/examples/IllegalNonAsciiDigit.java.i
+data/test/tools/javadoc/varArgs/Main.java.i
 data/test/tools/javac/generics/7022054/T7022054pos1.java.i
 data/src/share/classes/javax/lang/model/type/DeclaredType.java.i
 data/test/tools/javac/DefiniteAssignment/T4718142a.java.i
@@ -2853,29 +2828,31 @@ data/src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties.i
 data/src/share/classes/javax/annotation/processing/Processor.java.i
 data/test/tools/javac/diags/examples/ProcPackageDoesNotExist/processors/AnnoProc.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/AnnotationType.java.i
-data/test/com/sun/javadoc/testUseOption/pkg2/package.html.i
-data/test/tools/javac/warnings/FallThrough.lintAll.out.i
+data/test/tools/javac/cast/6467183/T6467183b.java.i
+data/test/com/sun/javadoc/testDeprecatedDocs/pkg/DeprecatedClassByAnnotation.java.i
 data/test/com/sun/javadoc/testTagInheritence/firstSentence2/C.java.i
 data/test/tools/javac/generics/6192945/Neg.java.i
 data/src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java.i
 data/test/tools/javac/annotations/6359949/T6359949.java.i
-data/src/share/classes/javax/tools/package-info.java.i
+data/test/tools/javac/scope/7017664/ImplementationCacheTest.java.i
 data/test/tools/javac/diags/examples/SunApiPluralAdditional/SunApiFilename.java.i
 data/test/tools/javac/varargs/5088429/T5088429Neg01.out.i
-data/src/share/classes/com/sun/tools/javac/util/LayoutCharacters.java.i
+data/test/tools/javac/generics/6332204/T6346876.java.i
 data/test/tools/apt/lib/TestProcessorFactory.java.i
-data/test/tools/javac/mandatoryWarnings/deprecated/P.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MethodFinder.java.i
 data/src/share/classes/com/sun/tools/classfile/ConstantPool.java.i
 data/test/tools/javac/CaptureInSubtype.java.i
-data/test/tools/javac/T6956638.java.i
+data/test/tools/javap/T6866657.java.i
 data/test/tools/apt/Basics/annot/annot2/AnnotSimple2.java.i
 data/src/share/classes/com/sun/tools/apt/comp/UsageMessageNeededException.java.i
 data/test/tools/javac/6457284/T6457284.java.i
-data/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateTypeAnnotation.java.i
+data/test/tools/javac/typeAnnotations/newlocations/Throws.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ClassUseTest1.java.i
-data/test/tools/javac/UncaughtOverflow.java.i
+data/test/tools/javac/danglingDep/RefX.java.i
 data/test/tools/javac/failover/FailOver11.out.i
-data/src/share/classes/com/sun/javadoc/Doc.java.i
+data/test/tools/javac/annotations/pos/Z3.java.i
+data/test/tools/javac/implicitThis/6541876/T6541876b.java.i
+data/test/tools/javac/miranda/T4528315.java.i
 data/test/tools/javac/constDebug/ConstDebug.java.i
 data/test/tools/javac/diags/examples/PackageAnnos.java.i
 data/test/com/sun/javadoc/testNoPackagesFile/C.java.i
@@ -2886,20 +2863,19 @@ data/test/com/sun/javadoc/testRelativeLinks/pkg2/Foo.java.i
 data/src/share/sample/javac/processing/src/CheckNamesProcessor.java.i
 data/test/tools/javac/TryWithResources/WeirdTwr.java.i
 data/test/tools/javac/generics/6192945/Method.java.i
-data/test/tools/javac/annotations/6365854/TestCore.java.i
+data/test/tools/javac/ClassPathTest/pkg/ClassPathTestAux3.java.i
 data/test/tools/javac/meth/InvokeMHTrans.out.i
 data/test/tools/javac/varargs/Anon.java.i
 data/test/com/sun/javadoc/testPackageDeprecation/pkg1/package-info.java.i
 data/test/tools/javac/annotations/neg/ObjectMembers.java.i
 data/test/tools/javac/ClassCycle/ClassCycle1b.java.i
 data/test/com/sun/javadoc/testGroupOption/TestGroupOption.java.i
-data/test/tools/apt/Compile/Dummy1.java.i
+data/test/tools/javac/T6230128.out.i
 data/test/tools/javac/diags/examples/EnumTypesNotExtensible.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocletConstants.java.i
 data/src/share/classes/com/sun/mirror/apt/AnnotationProcessorEnvironment.java.i
 data/src/share/classes/javax/lang/model/type/NullType.java.i
 data/test/tools/javac/diags/examples.not-yet.txt.i
-data/test/tools/javah/4942232/ParamClassTest.java.i
 data/test/tools/javac/implicitThis/WhichImplicitThis10.java.i
 data/test/tools/javac/generics/6946618/T6946618a.out.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationValueImpl.java.i
@@ -2911,25 +2887,26 @@ data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassUseMappe
 data/test/tools/javac/T6180021/Super.java.i
 data/test/tools/javac/api/6406133/Erroneous.java.i
 data/test/tools/javac/TryWithResources/TwrTests.java.i
-data/test/tools/javac/modules/ModuleModeTests/HelloWorldTest.java.i
+data/test/tools/javac/innerClassFile/y/Main.java.i
 data/src/share/classes/com/sun/tools/javadoc/AnnotationDescImpl.java.i
 data/test/tools/javac/6979683/TestCast6979683_BAD39.java.errlog.i
 data/test/tools/javac/processing/filer/TestPackageInfo.java.i
 data/test/tools/javac/generics/7034019/T7034019d.java.i
 data/test/tools/javac/T6587674.java.i
 data/test/tools/javac/staticImport/6665223/pkg/B.java.i
-data/test/tools/javac/generics/inference/6638712/T6638712a.out.i
+data/test/tools/apt/mirror/type/PrimitiveTyp.java.i
 data/test/tools/javac/QualifiedThisAndSuper_2.java.i
 data/test/tools/javac/6589361/T6589361.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MessageRetriever.java.i
+data/test/tools/javac/multicatch/Neg04eff_final.java.i
 data/test/tools/javac/diags/examples/UnreportedException.java.i
-data/test/tools/javac/generics/diamond/neg/Neg03.out.i
+data/test/com/sun/javadoc/testThrowsInheritence/Foo.java.i
 data/src/share/classes/com/sun/mirror/util/DeclarationVisitor.java.i
+data/src/share/classes/javax/tools/package-info.java.i
 data/src/share/classes/com/sun/source/tree/AssertTree.java.i
 data/test/tools/javac/api/6852595/T6852595.java.i
 data/test/tools/javac/ExtendsAccess/ExtendsAccess.out.i
-data/test/tools/javac/ImportCycle/foo/Bottom.java.i
 data/test/com/sun/javadoc/testLegacyTaglet/C.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/type/TypeVariableImpl.java.i
 data/test/tools/javac/importscope/A.java.i
 data/test/tools/javac/typeAnnotations/failures/target/VoidMethod.java.i
 data/test/tools/javac/generics/ArrayClone.java.i
@@ -2938,20 +2915,20 @@ data/test/tools/javac/overload/T4723909.java.i
 data/test/tools/javac/modules/ModuleClassAttributeTest01.java.i
 data/src/share/classes/com/sun/tools/apt/comp/PrintAP.java.i
 data/test/tools/javac/TryWithResources/DuplicateResourceDecl.java.i
-data/test/tools/javac/generics/wildcards/7034495/T7034495.java.i
+data/src/share/classes/sun/tools/javap/RuntimeConstants.java.i
 data/test/tools/javac/diags/examples/UnreportedExceptionImplicitClose.java.i
 data/test/tools/javac/limits/NumArgs1.java.i
 data/test/tools/javac/generics/diamond/neg/Neg04.java.i
 data/src/share/classes/com/sun/tools/doclets/package.html.i
-data/test/tools/javadoc/annotations/badVals/pkg1/A.java.i
 data/test/tools/javac/generics/BridgeRestype.java.i
 data/src/share/classes/com/sun/tools/javac/util/Pair.java.i
 data/test/tools/javac/NonStaticFieldExpr3.java.i
 data/src/share/classes/com/sun/tools/javah/JavahTool.java.i
 data/test/tools/javah/6572945/TestClass2.java.i
-data/test/tools/javac/6402516/CheckMethod.java.i
+data/test/tools/javac/StandaloneQualifiedSuper.java.i
+data/src/share/classes/com/sun/tools/javac/util/LayoutCharacters.java.i
 data/test/tools/javac/Paths/MineField.sh.i
-data/test/tools/javac/TryWithResources/ResourceInterface.out.i
+data/test/tools/javac/limits/PoolSize1.java.i
 data/src/share/classes/javax/tools/StandardLocation.java.i
 data/test/tools/javac/Diagnostics/6769027/T6769027.java.i
 data/src/share/classes/com/sun/mirror/declaration/InterfaceDeclaration.java.i
@@ -2965,191 +2942,186 @@ data/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.j
 data/test/com/sun/javadoc/testTagMisuse/TestTagMisuse.java.i
 data/test/com/sun/javadoc/testTypeParams/TestTypeParameters.java.i
 data/test/tools/javac/generics/inference/6638712/T6638712e.out.i
-data/test/tools/javac/T6435291/T6435291.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/XMLNode.java.i
 data/test/com/sun/javadoc/testEncoding/TestEncoding.java.i
-data/src/share/classes/com/sun/tools/classfile/LocalVariableTypeTable_attribute.java.i
+data/test/tools/javac/generics/WrongNew.java.i
 data/test/tools/javac/BadHexConstant.java.i
 data/test/tools/javac/QualifiedAccess/QualifiedAccess_4.java.i
 data/test/tools/javac/modules/ModuleModifierTest01.java.i
-data/test/tools/javac/AnonStaticMember_2.java.i
-data/test/tools/javac/diags/examples/AssertAsIdentifier2.java.i
+data/src/share/classes/com/sun/tools/javap/Context.java.i
+data/test/tools/javac/javazip/good/B.java.i
 data/test/com/sun/javadoc/_template/TemplateComplete.java.i
-data/test/tools/javac/6402516/CheckClass.java.i
+data/test/com/sun/javadoc/testLinkToSerialForm/TestLinkToSerialForm.java.i
+data/test/tools/javac/T6956638.java.i
 data/src/share/classes/com/sun/tools/javac/code/Printer.java.i
 data/test/tools/javadoc/6942366/p/Base.java.i
-data/test/tools/javah/ConstMacroTest.sh.i
 data/test/tools/javap/4111861/T4111861.java.i
 data/test/tools/javac/diags/examples/NoSuperclass.java.i
 data/test/tools/javac/multicatch/Pos09.java.i
-data/test/tools/javac/diags/examples/ProcIncompatibleSourceVersion/ProcIncompatibleSourceVersion.java.i
+data/test/tools/javac/typeAnnotations/failures/common/arrayclass/InvalidLocation.out.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java.i
 data/test/tools/javac/api/lib/ToolTester.java.i
 data/test/com/sun/javadoc/testNavagation/TestNavagation.java.i
-data/test/tools/javac/missingClass/A.java.i
+data/test/tools/javac/api/6440333/T6440333.java.i
 data/test/com/sun/javadoc/testTaglets/Child.java.i
 data/test/tools/javac/processing/model/util/filter/TestIterables.java.i
 data/src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java.i
-data/test/tools/javac/processing/6634138/Dummy.java.i
+data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignCond.java.i
+data/test/tools/javac/generics/diamond/7057297/T7057297.java.i
 data/src/share/classes/javax/tools/ExtendedLocation.java.i
 data/src/share/classes/com/sun/source/tree/ContinueTree.java.i
+data/test/tools/javac/Diagnostics/6722234/T6722234b.java.i
 data/test/com/sun/javadoc/testLinkOption/testNewLineInLink/package.html.i
 data/test/tools/javadoc/6176978/X.java.i
 data/src/share/classes/javax/annotation/processing/ProcessingEnvironment.java.i
 data/test/tools/apt/lib/TestProcessor.java.i
-data/test/tools/javah/MissingParamClassTest.sh.i
+data/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateTypeAnnotation.java.i
 data/test/com/sun/javadoc/testLegacyTaglet/ToDoTaglet.java.i
 data/test/com/sun/javadoc/testUseOption/pkg1/C2.java.i
 data/test/tools/javac/rawDiags/Error.out.i
 data/src/share/classes/com/sun/tools/javac/Launcher.java.i
 data/test/tools/javadoc/enum/enumType/expected.out.i
 data/test/com/sun/javadoc/testPackageDeprecation/C2.java.i
-data/test/com/sun/javadoc/testSubTitle/pkg/C.java.i
+data/test/tools/javac/4980495/std/p2/A2.java.i
+data/test/tools/javac/InnerClassesAttribute/Outside$1$Inside.class.i
+data/test/tools/javac/cast/forum/T654170.java.i
+data/test/tools/javac/cast/7005095/T7005095neg.java.i
 data/test/com/sun/javadoc/testSerialVersionUID/C.java.i
-data/test/tools/javac/CyclicScoping/CyclicScoping_1.java.i
+data/test/tools/javadoc/generics/tparamTagOnMethod/pkg1/A.java.i
 data/make/test/lib/javap.sh.i
-data/test/tools/javac/danglingDep/RefX.java.i
+data/test/tools/javac/api/TestJavacTask_ParseAttrGen.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/package-info.java.i
 data/test/tools/javac/diags/examples/NoExplicitAnnoProcRequested.java.i
-data/test/tools/javac/capture/Capture2.java.i
+data/test/tools/javac/multicatch/Neg01.out.i
 data/src/share/classes/com/sun/tools/javap/BasicWriter.java.i
-data/test/com/sun/javadoc/testLinkOption/pkg2/C2.java.i
-data/test/tools/javac/T6266772.java.i
+data/test/tools/javac/generics/typevars/4856983/T4856983b.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MessageRetriever.java.i
 data/test/tools/javac/TryWithResources/TwrIntersection.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ReturnTaglet.java.i
-data/test/tools/javac/processing/model/element/TestResourceVariable.java.i
-data/test/tools/javac/mandatoryWarnings/deprecated/B.java.i
-data/test/tools/javac/generics/6192945/Neg3.java.i
-data/test/tools/javac/generics/6910550/T6910550b.out.i
-data/test/tools/javac/VersionOpt.java.i
+data/src/share/classes/javax/lang/model/util/ElementFilter.java.i
+data/test/tools/javac/generics/diamond/neg/Neg11.out.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties.i
 data/src/share/classes/javax/annotation/processing/Filer.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MetaKeywords.java.i
-data/test/tools/javac/6668794/badClass/Test.java.i
+data/test/tools/javac/5045412/Foo.java.i
+data/test/tools/javac/T6394563.empty.out.i
 data/test/tools/javac/file/zip/T6836682.java.i
-data/test/tools/javac/cast/6270087/T6270087.java.i
-data/test/com/sun/javadoc/testThrowsInheritence/Iface.java.i
-data/test/tools/javac/generics/7022054/T7022054neg1.out.i
-data/test/com/sun/javadoc/testBadSourceFile/TestBadSourceFile.java.i
-data/test/tools/javac/rawDiags/Note.out.i
+data/test/com/sun/javadoc/testNavagation/pkg/E.java.i
+data/test/com/sun/javadoc/testUnnamedPackage/TestUnnamedPackage.java.i
+data/test/tools/apt/Compile/Round1Apf.java.i
 data/test/com/sun/javadoc/testThrowsHead/TestThrowsHead.java.i
+data/test/tools/javac/generics/GetClass2.java.i
 data/test/tools/javac/generics/wildcards/7034495/T7034495.out.i
 data/test/com/sun/javadoc/testTaglets/C.java.i
-data/test/tools/javac/diags/examples/DeprecatedPluralAdditional/DeprecatedFilename.java.i
 data/test/tools/javac/5045412/Bar.java.i
 data/test/tools/javac/policy/test3/Test.java.i
 data/test/tools/javac/diags/examples/RedundantCast.java.i
 data/src/share/classes/com/sun/tools/javac/file/ZipArchive.java.i
 data/test/tools/javac/literals/BinaryLiterals.java.i
-data/src/share/classes/com/sun/tools/javac/code/Attribute.java.i
+data/test/tools/javac/diags/examples/UnclosedBytecodeIdent.java.i
 data/test/tools/javac/depOverrides/doccomment/Test1B2.out.i
 data/test/tools/javac/danglingDep/NoDepX.out.i
-data/test/tools/javac/typeAnnotations/failures/common/rest/MissingAnnotationValue.java.i
 data/src/share/classes/com/sun/mirror/type/package-info.java.i
 data/test/tools/javac/generics/6969184/T6969184.out.i
 data/test/tools/javac/staticImport/6665223/pkg/A.java.i
 data/test/tools/javah/6572945/gold/jni.dir.1/TestClass2.h.i
-data/test/tools/javac/6464451/BigFinally.java.i
+data/test/tools/javac/generics/6372782/Scalar.java.i
 data/test/com/sun/javadoc/testReturnTag/TestReturnTag.java.i
-data/test/tools/javac/generics/7007615/acc1/p1/D.java.i
 data/test/tools/javac/AnonymousProtect/P1/pub.java.i
 data/test/tools/javac/diags/examples/InaccessibleVarargsType/p1/A.java.i
 data/test/tools/javac/generics/6910550/T6910550a.out.i
 data/test/tools/javac/diags/examples/TrustMeOnNonVarargsMeth.java.i
+data/test/tools/javac/parser/netbeans/JavacParserTest.java.i
 data/test/tools/javadoc/annotations/shortcuts/pkg1/Array.java.i
 data/src/share/classes/com/sun/tools/javac/jigsaw/JavacCatalog.java.i
 data/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java.i
-data/test/tools/javadoc/annotations/shortcuts/expected.out.i
+data/test/tools/javah/SuperClassConsts.java.i
 data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes5.java.i
 data/test/tools/javac/InterfaceAssert.java.i
 data/src/share/classes/javax/lang/model/util/AbstractElementVisitor6.java.i
 data/test/tools/javac/annotations/neg/Recovery.java.i
-data/test/tools/javadoc/sourceOption/p/A.java.i
-data/test/tools/javac/processing/warnings/TestSourceVersionWarnings.java.i
 data/test/tools/javadoc/subpackageIgnore/SubpackageIgnore.java.i
 data/src/share/classes/com/sun/tools/classfile/RuntimeVisibleParameterAnnotations_attribute.java.i
-data/test/tools/javac/generics/forwardSeparateBound/ForwardSeparateBound1.java.i
+data/test/com/sun/javadoc/testExternalOverridenMethod/pkg/XReader.java.i
 data/test/tools/javac/generics/wildcards/6437894/B.java.i
 data/test/tools/javac/processing/6359313/package-info.java.i
 data/test/tools/javac/generics/6985719/T6985719b.out.i
 data/src/share/classes/com/sun/mirror/util/package.html.i
-data/test/tools/javac/6979683/TestCast6979683_BAD38.java.i
-data/test/tools/javac/processing/6350124/Marked.java.i
+data/test/tools/javadoc/annotations/annotatePackage/pkg2/B.java.i
 data/test/tools/javac/Diagnostics/6722234/T6722234a_1.out.i
 data/test/tools/javac/ConditionalInline.java.i
 data/test/tools/javac/6863465/T6863465c.java.i
-data/test/tools/javac/typeAnnotations/newlocations/LocalVariables.java.i
+data/test/tools/javac/T4994049/DeprecatedNOT.java.i
+data/src/share/classes/javax/lang/model/element/TypeParameterElement.java.i
 data/test/tools/javac/generics/7034511/T7034511a.out.i
 data/test/tools/javac/TryWithResources/DuplicateResourceDecl.out.i
 data/test/tools/javac/multicatch/Pos05.java.i
 data/test/tools/javac/rawDiags/Error.java.i
 data/test/tools/javac/sourcePath/SourcePathA.java.i
 data/test/tools/javac/VoidArray.java.i
-data/test/tools/javac/depOverrides/annotation/Test1B2.out.i
+data/test/tools/javac/NameClash/One.java.i
 data/test/tools/javac/warnings/FallThrough.noLint.out.i
-data/test/tools/javac/generics/Casting3.java.i
-data/test/tools/javac/warnings/6885255/T6885255.out.i
 data/test/com/sun/javadoc/testSimpleTag/TestSimpleTag.java.i
-data/test/tools/javac/multicatch/Pos08.java.i
+data/test/tools/javac/annotations/neg/Package.java.i
 data/test/com/sun/javadoc/testBaseClass/baz/Foo.java.i
 data/test/tools/javac/generics/rare/Rare6.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/titlebar_end.gif.i
 data/test/com/sun/javadoc/testMemberInheritence/inheritDist/C.java.i
-data/test/tools/javac/typeAnnotations/failures/common/arrayclass/InvalidLocation.java.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java.i
+data/test/tools/javac/annotations/neg/Cycle3.java.i
 data/test/tools/javac/ExtraneousEquals.java.i
-data/test/tools/javac/processing/6994946/SemanticErrorTest.java.i
+data/src/share/classes/com/sun/tools/javac/code/Flags.java.i
 data/test/com/sun/javadoc/testHref/TestHref.java.i
 data/test/com/sun/javadoc/testInlineLinkLabel/TestInlineLinkLabel.java.i
-data/test/tools/javac/generics/typeargs/Superarg2.java.i
-data/test/tools/javah/SubClassConsts.java.i
-data/test/tools/javac/Enum1.java.i
+data/test/tools/javac/typeAnnotations/failures/common/receiver/MissingAnnotationValue.out.i
 data/test/tools/javac/DefiniteAssignment/T4720751.java.i
-data/test/tools/apt/mirror/declaration/PackageDecl.java.i
+data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_9.java.i
 data/test/tools/javac/diags/examples/IllegalStartOfExpr.java.i
-data/test/tools/javac/failover/FailOver14.out.i
+data/test/tools/javac/generics/inference/6369605/T6369605b.java.i
 data/test/tools/javac/generics/inference/6359106/Orig.java.i
 data/test/tools/javac/generics/typevars/5060485/T5060485.java.i
 data/test/tools/javac/typeAnnotations/failures/IndexArray.out.i
-data/test/tools/javadoc/LangVers.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/type/InterfaceTypeImpl.java.i
 data/test/tools/javap/T4975569.java.i
-data/test/tools/javac/T6214885a.out.i
+data/src/share/classes/com/sun/tools/classfile/LineNumberTable_attribute.java.i
 data/test/tools/javac/ConstantValues/ConstValInit.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstructorBuilder.java.i
 data/src/share/classes/com/sun/tools/javac/util/Warner.java.i
 data/src/share/classes/com/sun/mirror/declaration/ClassDeclaration.java.i
 data/test/tools/javac/miranda/4711056/T4.java.i
-data/test/tools/javac/EmptyDocComments.java.i
-data/test/tools/javac/multicatch/Pos01.java.i
-data/test/tools/javac/cast/forum/T654170.java.i
-data/test/tools/javac/6979683/TestCast6979683_BAD37.java.i
+data/test/tools/javadoc/annotations/annotateParams/Main.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkFactory.java.i
+data/test/tools/apt/Basics/StaticMethodAnnotations.java.i
+data/make/build.xml.i
 data/src/share/classes/javax/lang/model/element/AnnotationValueVisitor.java.i
-data/test/tools/javac/generics/typevars/6182630/T6182630.java.i
+data/test/tools/javadoc/generics/genericSuper/pkg1/A.java.i
 data/test/tools/javac/failover/FailOver06.out.i
 data/test/tools/javac/depOverrides/annotation/Test2R.out.i
 data/test/tools/javac/diags/examples/DeprecatedFilenameAdditional.java.i
-data/test/tools/javac/generics/T5094318.java.i
+data/test/tools/javac/limits/CodeSize.java.i
 data/test/tools/javac/T6395974.java.i
-data/test/tools/javac/cast/6557182/T6557182.java.i
+data/test/tools/javac/AnonymousProtect/P1/priv.java.i
 data/src/share/classes/com/sun/mirror/apt/AnnotationProcessor.java.i
 data/test/tools/javac/rawDiags/Warning.out.i
 data/test/tools/javac/6547131/p/Outer.class.i
 data/src/share/classes/com/sun/tools/javadoc/SeeTagImpl.java.i
 data/test/tools/javac/T4848619/T4848619a.java.i
-data/test/com/sun/javadoc/testMemberInheritence/pkg/BaseInterface.java.i
+data/test/tools/javac/generics/wildcards/pos/BoundsCollision.java.i
 data/test/tools/javac/implicitThis/WhichImplicitThis1.java.i
 data/src/share/classes/com/sun/tools/javap/CodeWriter.java.i
 data/test/tools/javac/completion/example/B.class.i
+data/test/tools/apt/Compile/Dummy1.java.i
 data/test/tools/javac/T6230128.java.i
-data/test/tools/javac/diags/examples/UncheckedCast.java.i
-data/test/tools/javac/miranda/T4279316b.java.i
-data/test/tools/javac/6521805/T6521805a_2.out.i
+data/test/tools/javac/api/TestDocComments.java.i
+data/test/tools/javap/T4876942.java.i
 data/test/tools/javac/processing/filer/TestGetResource2.java.i
 data/test/tools/javac/diags/examples/TypeNoParams.java.i
-data/test/tools/javac/typeAnnotations/newlocations/ClassLiterals.java.i
+data/test/com/sun/javadoc/testSummaryHeading/TestSummaryHeading.java.i
 data/test/tools/javac/warnings/Finally.java.i
 data/test/tools/javac/diags/examples/InterfaceExpected.java.i
 data/test/tools/javac/diags/examples/NameClashSameErasure.java.i
 data/test/tools/apt/lib/Test.java.i
 data/test/tools/javac/treeannotests/DA.java.i
 data/test/tools/javac/diags/examples/StaticNotQualifiedByType.java.i
-data/test/tools/javac/diags/examples/Expected2.java.i
+data/test/tools/javac/Paths/Class-Path2.sh.i
+data/src/share/classes/com/sun/mirror/declaration/ConstructorDeclaration.java.i
 data/test/tools/javac/generics/7022054/T7022054neg2.java.i
 data/test/tools/javac/T5092545.java.i
 data/test/tools/javac/diags/examples/AbstractMethodCantHaveBody.java.i
@@ -3159,6 +3131,7 @@ data/test/tools/javac/foreach/GenericIterator.java.i
 data/test/tools/javac/6996626/pack1/Symbol.java.i
 data/.hgignore.i
 data/test/tools/javac/varargs/6806876/T6806876.java.i
+data/test/com/sun/javadoc/testAbsLinkPath/pkg1/C1.java.i
 data/test/tools/javac/diags/examples/ConcreteInheritanceConflict.java.i
 data/test/com/sun/javadoc/testOverridenMethods/pkg3/I4.java.i
 data/test/tools/javac/generics/T4684378.java.i
@@ -3168,119 +3141,113 @@ data/test/tools/javac/tree/TreePosRoundsTest.java.i
 data/test/tools/javac/diags/examples/ProcUnclosedTypeFiles/processors/AnnoProc.java.i
 data/test/com/sun/javadoc/testInterface/pkg/Interface.java.i
 data/test/tools/javac/code/ArrayClone.java.i
-data/test/tools/javac/PrivateUplevelConstant.java.i
-data/test/tools/javac/processing/6365040/ProcFoo.java.i
+data/test/tools/javac/diags/examples/ProcessorWrongType/ProcessorWrongType.java.i
+data/test/tools/javac/varargs/warning/Warn4.java.i
 data/src/share/classes/com/sun/source/tree/ModuleTree.java.i
-data/test/tools/javac/diags/examples/NotDefAccessClassIntfCantAccess/NotDefAccessClassIntfCantAccess.java.i
-data/test/tools/javac/6400872/C.java.i
+data/test/tools/javac/diags/examples/UncheckedClash.java.i
+data/test/tools/javac/NonStaticFieldExpr1.java.i
 data/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java.i
 data/test/tools/javac/diags/examples/StaticImportNotSupported.java.i
 data/test/com/sun/javadoc/testEncoding/EncodeTest.java.i
 data/test/tools/javac/cast/6302214/T6302214a.java.i
-data/src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java.i
+data/test/tools/javac/api/TestGetElement.java.i
 data/test/tools/javac/quid/QuotedIdent.java.i
-data/test/tools/javac/ClassCycle/ClassCycle2a.java.i
+data/test/tools/javac/generics/T4784219.java.i
 data/test/tools/javac/multicatch/Neg03.java.i
-data/test/tools/javac/enum/T6724345.java.i
-data/test/tools/javadoc/enum/docComments/Main.java.i
 data/test/tools/javac/processing/6350124/HelloWorldAP.java.i
 data/test/tools/apt/mirror/type/InterfaceTyp.java.i
 data/test/tools/javac/generics/6476118/T6476118d.java.i
 data/test/tools/javac/TryWithResources/PlainTry6.out.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeRequiredMemberWriter.java.i
+data/test/tools/javac/capture/Capture5.java.i
 data/src/share/classes/com/sun/tools/javac/tree/JCTree.java.i
 data/test/tools/javac/boxing/BoxedForeach.java.i
 data/test/tools/javac/util/context/T7021650.java.i
-data/src/share/classes/javax/lang/model/type/MirroredTypeException.java.i
-data/test/tools/javac/6257443/T6257443.java.i
+data/test/tools/javac/ImportUnnamed/Dummy.java.i
+data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_3.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/apt/RoundCompleteEventImpl.java.i
 data/test/tools/javadoc/6958836/warns/Warnings.java.i
-data/src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java.i
+data/test/tools/javac/processing/T6439826.java.i
 data/make/netbeans/langtools/build.xml.i
+data/src/share/classes/com/sun/mirror/util/DeclarationFilter.java.i
 data/test/tools/apt/Compile/compile.sh.i
 data/src/share/classes/com/sun/javadoc/Type.java.i
-data/test/tools/javac/accessVirtualInner/a/A.java.i
+data/test/tools/javac/generics/inference/5003431/T5003431.java.i
 data/test/tools/javac/typeAnnotations/failures/common/parambounds/MissingAnnotationValue.java.i
-data/test/tools/javac/diags/examples/LocalVarNeedsFinal.java.i
 data/src/share/classes/com/sun/tools/javac/code/Source.java.i
-data/test/tools/javac/annotations/neg/Z11.java.i
-data/test/tools/javac/api/6422327/T6422327.other.i
-data/test/tools/javah/6572945/TestClass1.java.i
+data/test/com/sun/javadoc/testBadPackageFileInJar/badPackageFileInJar.jar.i
+data/test/tools/javac/multicatch/Neg01eff_final.java.i
+data/test/com/sun/javadoc/testDupParamWarn/TestDupParamWarn.java.i
 data/test/tools/javac/types/CastObjectToPrimitiveTest.java.i
 data/test/tools/javac/UncaughtOverflow2.java.i
 data/test/tools/javac/QualifiedAccess/QualifiedAccess_3.out.i
 data/test/tools/javac/generics/rawOverride/T6178365.java.i
 data/test/tools/javac/policy/test3/A.java.i
-data/test/com/sun/javadoc/testHtmlTableTags/pkg1/C1.java.i
+data/test/tools/javac/generics/wildcards/neg/CastWarn3.java.i
 data/test/tools/javac/IllegalAnnotation.java.i
 data/src/share/classes/com/sun/tools/javac/util/BaseFileManager.java.i
 data/test/tools/javap/ListTest.java.i
 data/src/share/classes/com/sun/javadoc/AnnotationTypeDoc.java.i
+data/src/share/classes/javax/lang/model/util/ElementScanner8.java.i
 data/test/tools/javac/diags/examples/WhereCaptured.java.i
 data/test/tools/javac/ObjectIncompatibleInterface.java.i
 data/test/tools/javac/api/6420409/T6420409.java.i
-data/test/tools/javac/processing/6430209/test1.java.i
+data/src/share/classes/com/sun/tools/javah/resources/version.properties-template.i
 data/test/tools/javac/versionOpt.sh.i
-data/test/tools/javac/api/TestJavacTask_ParseAttrGen.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/FieldWriter.java.i
-data/test/com/sun/javadoc/testRecurseSubPackages/pkg1/C1.java.i
-data/test/tools/javac/generics/GetClass2.java.i
-data/test/tools/javac/OverrideChecks/T4721069.java.i
-data/test/com/sun/javadoc/testHiddenMembers/pkg/BaseClass.java.i
+data/test/tools/javac/diags/examples/MulticatchMustBeFinal.java.i
+data/test/tools/javac/generics/wildcards/6437894/T6437894.out.i
+data/test/tools/javac/DefiniteAssignment/T4725725.java.i
+data/test/tools/javac/generics/InstanceOf2.java.i
+data/test/tools/javac/staticQualifiedNew/StaticQualifiedNew.java.i
+data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_11.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/apt/AnnotationProcessorEnvironmentImpl.java.i
-data/test/tools/javac/mandatoryWarnings/unchecked/B.java.i
+data/make/test/lib/src.gold.txt.i
 data/LICENSE.i
 data/test/com/sun/javadoc/testTagInheritence/TestTagInheritence.java.i
 data/test/tools/javac/processing/filer/TestGetResource.java.i
-data/test/tools/javac/diags/examples/ImproperSVUID.java.i
+data/test/tools/javac/diags/examples/WhereCaptured1.java.i
 data/test/com/sun/javadoc/constantValues/TestConstantValuesDriver.java.i
+data/test/tools/javadoc/lib/Tester.java.i
 data/test/com/sun/javadoc/testStylesheet/pkg/A.java.i
 data/test/tools/javac/AccessMethods/LateAddition.java.i
+data/test/tools/javac/T6705935.java.i
+data/test/tools/javac/InnerNamedConstant_1.java.i
 data/test/tools/javac/diags/examples/TypeReqClassArray.java.i
-data/src/share/classes/com/sun/tools/classfile/Descriptor.java.i
-data/test/tools/javac/generics/7034019/T7034019d.out.i
-data/test/tools/javac/varargs/6806876/T6806876.out.i
+data/test/tools/javac/protectedInner/Outerclass.java.i
 data/test/tools/javac/boxing/NoBoxingChar.java.i
-data/test/tools/javac/DefiniteAssignment/T4721062a.java.i
 data/test/tools/javac/T6304128.java.i
-data/test/tools/javac/generics/inference/6650759/T6650759j.java.i
+data/test/com/sun/javadoc/testThrowsTag/pkg/T5.java.i
 data/test/tools/javac/multicatch/Neg06.java.i
 data/test/tools/javac/failover/FailOver04.java.i
-data/src/share/classes/com/sun/source/tree/DoWhileLoopTree.java.i
+data/test/tools/javac/processing/model/type/MirroredTypeEx/OverEager.java.i
 data/test/tools/javap/T6879371.java.i
-data/test/tools/apt/Compile/Rounds.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/declaration/MemberDeclarationImpl.java.i
 data/test/tools/javac/mandatoryWarnings/unchecked/Test4d.out.i
-data/test/tools/javac/diags/examples/CantImplement.java.i
-data/test/tools/javac/generics/wildcards/pos/InstanceOf.java.i
-data/test/tools/javac/failover/FailOver12.java.i
+data/test/tools/javac/miranda/T4279316b.java.i
+data/test/tools/javac/varargs/T7013865.java.i
+data/test/tools/javac/generics/7007615/acc1/p1/D.java.i
 data/test/tools/javac/6567415/T6567415.java.i
-data/test/tools/javac/ClassLiterals/p1/SuperClass.java.i
-data/test/tools/javac/generics/Varargs.java.i
-data/test/tools/javap/classfile/6888367/T6888367.java.i
+data/test/tools/javac/NonStaticFinalVar.java.i
+data/test/tools/javac/processing/model/element/TestResourceVariable.java.i
 data/test/tools/javac/TryWithResources/ResourceInterface.java.i
-data/src/share/classes/com/sun/tools/apt/main/Main.java.i
+data/test/tools/apt/mirror/declaration/EnumDecl.java.i
 data/test/tools/javac/policy/Test.java.i
 data/test/tools/javac/generics/diamond/neg/Neg09.out.i
-data/test/tools/javac/multicatch/Neg07.java.i
+data/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateTypeAnnotation.out.i
 data/test/com/sun/javadoc/testExternalOverridenMethod/package-list.i
 data/test/tools/javac/generics/6985719/T6985719e.out.i
 data/test/com/sun/javadoc/testDocRootLink/pkg1/package.html.i
-data/test/tools/javac/6668794/badSource/p/A.java.i
-data/test/tools/javac/6521805/p/Sub.java.i
+data/test/tools/javac/generics/rare/Rare2.java.i
 data/test/tools/javac/typeAnnotations/failures/target/NotTypeParameter.java.i
-data/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateTypeAnnotation.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/type/WildcardTypeImpl.java.i
 data/test/tools/javac/failover/FailOver13.out.i
 data/test/tools/javac/tree/MakeLiteralTest.java.i
 data/test/tools/javac/Parens3.java.i
-data/test/tools/javac/6734819/T6734819a.out.i
-data/test/tools/javac/diags/examples/EnclClassRequired.java.i
+data/test/tools/javac/diags/examples/ProcessorWrongType/processors/AnnoProc.java.i
 data/test/tools/javac/diags/examples/IntfAnnotationsCantHaveParams.java.i
-data/test/tools/javac/generics/6531075/T6531075.java.i
 data/src/share/classes/com/sun/mirror/type/MirroredTypeException.java.i
-data/test/com/sun/javadoc/testDupParamWarn/pkg/Bar.java.i
+data/test/tools/javac/miranda/6964669/pkg/C.java.i
 data/test/tools/javac/AnonymousProtect/P2/usePub.java.i
-data/test/tools/apt/Compile/servicesRound1.i
+data/test/tools/javac/processing/environment/round/BuriedAnnotations.java.i
 data/test/tools/javac/generics/inference/5044646/p1/C.java.i
 data/test/com/sun/javadoc/testNestedInlineTag/testtaglets/UnderlineTaglet.java.i
 data/test/com/sun/javadoc/testBaseClass/TestBaseClass.java.i
@@ -3288,72 +3255,74 @@ data/test/tools/javac/T6231847.out.i
 data/test/tools/javac/generics/diamond/pos/Pos02.java.i
 data/test/tools/javac/NoClass.java.i
 data/test/tools/javadoc/generics/genericInnerAndOuter/Main.java.i
-data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/Coin.java.i
+data/test/tools/javac/enum/Enum2.java.i
 data/test/tools/javac/boxing/T6369051.java.i
 data/test/tools/javac/unicode/UnicodeUnicode.java.i
-data/src/share/classes/com/sun/source/util/AbstractTypeProcessor.java.i
-data/test/tools/javac/diags/examples/CountWarnPlural.java.i
+data/test/tools/javac/ClassPathTest/ClassPathTest2.java.i
+data/test/com/sun/javadoc/testTypeParams/pkg/ClassUseTest3.java.i
 data/test/tools/javac/innerClassFile/Driver.sh.i
 data/test/tools/javac/TryWithResources/TwrMultiCatch.java.i
-data/test/tools/apt/Compile/ErrorAPF.java.i
+data/test/com/sun/javadoc/testIndex/pkg/AnnotationType.java.i
 data/test/tools/javac/T6999210.java.i
 data/test/tools/javac/T6232928/package-info.java.i
-data/test/tools/apt/Compile/HelloWorld.java.i
-data/test/tools/javac/generics/6677785/T6677785.out.i
+data/test/tools/javac/diags/examples/MethodDoesNotOverride.java.i
+data/test/com/sun/javadoc/testCmndLineClass/pkg2/C4.java.i
 data/test/tools/javac/TryWithResources/TwrIntersection02.out.i
 data/test/tools/javac/T6423583.java.i
 data/test/tools/javac/generics/6413682/T6413682.java.i
-data/test/com/sun/javadoc/testHtmlTableTags/pkg2/package-info.java.i
-data/test/tools/javac/AnonymousProtect/P1/priv.java.i
-data/test/tools/javac/diags/examples/Orphaned.java.i
-data/test/tools/javac/warnings/Deprecation.lintAll.out.i
-data/test/tools/javac/generics/wildcards/UnboundArray.java.i
-data/src/share/classes/com/sun/tools/classfile/ModuleRequires_attribute.java.i
+data/test/tools/javac/meth/XlintWarn.java.i
+data/test/tools/javac/cast/6557182/T6557182.java.i
+data/test/tools/javac/multicatch/Pos02.java.i
+data/test/com/sun/javadoc/testThrowsInheritence/Iface.java.i
+data/test/tools/javac/p1/BS.java.i
+data/test/tools/javac/ClassLiterals/InnerClassLiterals.java.i
 data/test/com/sun/javadoc/testHelpOption/TestHelpOption.java.i
 data/test/tools/javac/NonAmbiguousField/Test.i
 data/src/share/classes/com/sun/tools/classfile/RuntimeParameterAnnotations_attribute.java.i
 data/src/share/classes/javax/lang/model/type/NoType.java.i
 data/test/tools/javac/TryWithResources/ArmLint.out.i
 data/test/tools/javac/generics/6218229/T6218229.java.i
-data/src/share/classes/com/sun/tools/javac/code/Symtab.java.i
+data/test/tools/javac/diags/examples/PrintRounds/processors/AnnoProc.java.i
 data/test/tools/javac/api/TestTrees.java.i
-data/test/tools/apt/Options/OptionChecker.java.i
+data/test/tools/javac/SuperMeth.java.i
 data/test/com/sun/javadoc/testHtmlDocument/testMarkup.html.i
 data/test/tools/javac/OverrideChecks/T6399361.java.i
-data/test/tools/javac/Paths/6638501/WsCompileExample.java.i
+data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes2.java.i
 data/test/tools/javadoc/T4994049/FileWithTabs.java.i
-data/test/tools/javac/generics/6946618/T6946618c.java.i
+data/test/tools/javac/ExceptionalFinally.java.i
 data/test/tools/javac/enum/forwardRef/TestEnum5.java.i
 data/test/tools/javac/processing/model/element/TestElement.java.i
+data/test/tools/javac/6520152/T.java.i
 data/test/tools/javac/p1/AS.java.i
 data/test/tools/javac/6863465/T6863465c.out.i
+data/make/test/HelloWorld.javadoc.gold.txt.i
 data/test/tools/javac/generics/T4784207b.java.i
 data/test/tools/javac/annotations/pos/Z2.java.i
-data/test/tools/javac/api/TestJavacTask.java.i
-data/test/com/sun/javadoc/testIndex/pkg/Coin.java.i
-data/test/com/sun/javadoc/AccessFrameTitle/p2/C2.java.i
-data/test/tools/javadoc/annotations/annotateParams/pkg1/C.java.i
+data/test/tools/javac/varargs/warning/Warn5.java.i
+data/test/tools/javac/ClassLiterals/LiteralInterface_1.java.i
+data/test/tools/apt/lib/Ignore.java.i
+data/src/share/classes/com/sun/javadoc/ExecutableMemberDoc.java.i
 data/test/tools/javac/mandatoryWarnings/unchecked/Test.java.i
 data/test/tools/javac/api/TestJavacTaskScanner.java.i
-data/test/tools/javac/generics/GenLit1.java.i
+data/test/tools/javac/generics/diamond/neg/Neg03.out.i
 data/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateAnnotationValue.out.i
-data/test/tools/javac/generics/MissingCast.java.i
-data/src/share/classes/com/sun/javadoc/ThrowsTag.java.i
+data/test/tools/javac/generics/parametricException/J.java.i
+data/test/tools/javac/synthesize/Byte.java.i
 data/src/share/classes/javax/tools/ForwardingFileObject.java.i
 data/test/com/sun/javadoc/AccessH1/AccessH1.java.i
 data/test/tools/javac/diags/examples/AnnotationMissingValues1.java.i
-data/test/com/sun/javadoc/testUseOption/pkg2/C3.java.i
-data/test/tools/javac/generics/wildcards/neg/Readonly.java.i
+data/test/tools/apt/Discovery/Touch.java.i
+data/test/tools/javac/cast/6270087/T6270087.java.i
+data/test/tools/javac/staticImport/6695838/a/FooInterface.java.i
 data/test/tools/javac/CyclicInheritance6/p1/B.java.i
 data/test/com/sun/javadoc/testWarnings/pkg/package.html.i
 data/test/tools/javac/diags/examples/EmptyCharLiteral.java.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java.i
-data/test/tools/javac/diags/examples/VarargsFilenameAdditional.java.i
-data/test/com/sun/javadoc/testThrowsInheritence/C.java.i
-data/test/tools/javac/processing/environment/HelloWorld.java.i
-data/ASSEMBLY_EXCEPTION.i
+data/test/tools/javac/ExceptionalFinally2.java.i
+data/test/tools/javac/ClassPathTest/ClassPathTest.sh.i
+data/src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java.i
+data/test/tools/javac/diags/examples/SunApiFilename.java.i
 data/test/tools/javac/6521805/T6521805e.java.i
-data/test/tools/javadoc/annotations/annotateMethodsFields/Main.java.i
+data/test/tools/javac/api/TestGetScope.java.i
 data/src/share/classes/sun/tools/javap/StackMapTableData.java.i
 data/test/tools/javac/DefiniteAssignment/7003744/T7003744a.java.i
 data/test/tools/javac/Paths/wcMineField.sh.i
@@ -3364,40 +3333,43 @@ data/test/tools/javac/depOverrides/annotation/Test1A.out.i
 data/src/share/opensource/javac/doc/javac_lifecycle/index.html.i
 data/test/tools/javac/generics/7034511/T7034511a.java.i
 data/test/tools/javac/generics/7015430/T7015430.out.i
-data/test/tools/javac/api/evalexpr/CompileFromString.java.i
+data/test/tools/javac/generics/inference/7086601/T7086601b.java.i
 data/test/tools/javac/warnings/6594914/T6594914a.java.i
 data/test/com/sun/javadoc/testTaglets/taglets/Foo.java.i
 data/test/tools/javac/generics/odersky/List.java.i
-data/test/tools/javac/processing/6365040/T6365040.java.i
 data/test/tools/javac/diags/examples/PrintProcessorInfo/processors/AnnoProc.java.i
-data/test/tools/javac/typeAnnotations/newlocations/BasicTest.out.i
+data/test/tools/javac/ConstantValues/test_ff2.java.i
 data/test/tools/javac/DefiniteAssignment/T4721076.java.i
 data/test/tools/javac/varargs/VarargsOverride.java.i
+data/test/tools/javac/diags/examples/DeprecatedPlural/DeprecatedClass.java.i
 data/test/tools/javac/warnings/6594914/T6594914a.out.i
 data/src/share/classes/com/sun/tools/classfile/LocalVariableTable_attribute.java.i
+data/test/tools/javac/VerifyDA.java.i
 data/test/tools/javadoc/subpackageIgnore/pkg1/not-subpkg/SomeJavaFile.java.i
-data/test/tools/javac/mandatoryWarnings/deprecated/Test4c.out.i
+data/test/tools/javac/warnings/Deprecation.lintAll.out.i
 data/test/com/sun/javadoc/testMemberInheritence/inheritDist/A.java.i
 data/test/tools/javac/diags/examples/AnnosWithoutProcessors/processors/AnnoProc.java.i
-data/test/tools/javac/proprietary/WarnMethod.java.i
-data/test/tools/javac/T6413876.java.i
+data/test/tools/javac/6979683/TestCast6979683_GOOD.java.i
+data/test/tools/javadoc/generics/genericClass/expected.out.i
+data/test/tools/javadoc/LangVers.java.i
 data/test/tools/javac/AnonInnerException_3.java.i
-data/test/tools/javac/StringsInSwitch/RSCL1.out.i
+data/src/share/classes/com/sun/tools/classfile/RuntimeAnnotations_attribute.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/TypeDeclarationImpl.java.i
 data/test/tools/javac/generics/6356636/a/Bar.java.i
-data/test/tools/javac/ExtDirs/ext2/pkg2.jar.i
-data/test/tools/javac/generics/6910550/T6910550e.out.i
+data/test/tools/javac/diags/examples/Orphaned.java.i
+data/src/share/classes/com/sun/tools/javap/AnnotationWriter.java.i
 data/test/tools/javac/depOverrides/doccomment/Test2.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ThrowsTaglet.java.i
+data/test/com/sun/javadoc/testInlineLinkLabel/pkg/package.html.i
 data/test/tools/javac/typeAnnotations/failures/LintCast.java.i
 data/src/share/classes/com/sun/mirror/type/package.html.i
 data/test/tools/javac/annotations/6214965/CompilerAnnotationTest.java.i
-data/test/tools/javac/6520152/T.java.i
+data/test/tools/javac/T6977800.java.i
+data/test/tools/javac/generics/typeargs/Superarg2.java.i
 data/test/tools/javac/processing/werror/WErrorGen.out.i
 data/test/tools/javac/ImportPackagePrivateInner/foo/Accessee.java.i
 data/test/tools/apt/Options/servicesOptions.i
-data/test/tools/javap/T7004698.java.i
 data/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateTypeAnnotation.out.i
+data/test/tools/javac/T6900149.java.i
 data/src/share/classes/com/sun/source/tree/AssignmentTree.java.i
 data/test/tools/javac/T6458823/TestClass.java.i
 data/test/tools/javac/fatalErrors/NoJavaLang.java.i
@@ -3407,443 +3379,461 @@ data/test/tools/javac/modules/ModuleVersionTest01.java.i
 data/test/tools/javap/typeAnnotations/ArrayClassLiterals2.java.i
 data/test/tools/javac/diags/examples/ArrayDimMissing.java.i
 data/src/share/opensource/javac/doc/javac_lifecycle/JavaCompiler.html.i
-data/test/tools/javac/depOverrides/annotation/Q.java.i
+data/test/tools/javac/generics/inference/6569789/T6569789.java.i
 data/test/tools/javac/diags/examples/EmptyBytecodeIdent.java.i
 data/test/tools/javac/processing/model/6341534/dir/Foo.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/FieldDeclarationImpl.java.i
 data/test/tools/javac/T6665791.java.i
 data/test/tools/javac/diags/examples/CantResolve.java.i
 data/test/tools/javac/diags/examples/MissingReturnStatement.java.i
-data/src/share/classes/javax/lang/model/element/AnnotationMirror.java.i
+data/src/share/classes/com/sun/mirror/declaration/package-info.java.i
 data/test/tools/javac/diags/examples/ExplicitParamsDoNotConformToBounds.java.i
 data/test/tools/javac/generics/6985719/T6985719f.out.i
+data/test/tools/javac/DuplicateClass.java.i
 data/test/tools/javac/generics/6192945/Neg.out.i
 data/test/tools/javac/QualifiedOuterThis2.java.i
-data/test/tools/javac/generics/abstract/T4717181c.java.i
+data/test/tools/javac/processing/6350124/Marked.java.i
 data/test/tools/javac/generics/diamond/neg/Neg07.java.i
 data/test/tools/javac/diags/examples/CantResolveArgs.java.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/StylesheetWriter.java.i
-data/test/tools/javac/InnerNamedConstant_2.java.i
+data/test/tools/javac/annotations/neg/Z13.java.i
+data/test/tools/javac/cast/6665356/T6665356.java.i
 data/test/tools/javac/generics/rare/Rare1.java.i
 data/test/tools/javac/processing/model/element/TestMissingElement2/TestMissingInterface.java.i
 data/src/share/classes/com/sun/tools/apt/Main.java.i
-data/test/tools/javac/boxing/NoBoxingInt.java.i
-data/test/tools/javac/diags/examples/ClassPublicInFile.java.i
-data/src/share/classes/com/sun/tools/javac/util/JavacMessages.java.i
-data/test/tools/javac/annotations/pos/Parameter.java.i
+data/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestException.java.i
+data/test/tools/javac/diags/examples/CantResolveArgsParams.java.i
+data/test/tools/javac/generics/typeargs/Metharg2.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/type/EnumTypeImpl.java.i
+data/test/tools/javac/cast/6569057/T6569057.java.i
 data/test/tools/javac/generics/inference/5080917/T5080917.java.i
 data/test/tools/apt/Compile/Round4Apf.java.i
-data/test/com/sun/javadoc/testTagInheritence/firstSentence/A.java.i
-data/src/share/classes/javax/lang/model/util/ElementScanner6.java.i
+data/test/tools/javac/annotations/pos/RightTarget.java.i
+data/test/com/sun/javadoc/testModifier/TestModifier.java.i
 data/test/tools/javac/api/TestJavacTask_Lock.java.i
-data/src/share/classes/com/sun/tools/javac/resources/compiler.properties.i
+data/test/tools/javac/BoundClassError.java.i
 data/test/tools/javac/generics/inference/5044646/p1/B.java.i
+data/test/com/sun/javadoc/testLinkOption/package-list.i
 data/test/tools/apt/Discovery/discovery.sh.i
-data/test/tools/javac/T5048776.java.i
+data/test/tools/javac/generics/5009937/T5009937.java.i
 data/test/tools/javac/6668794/badClass/A.java.i
 data/test/tools/javac/miranda/4711056/T2.java.i
+data/test/tools/javac/protectedAccess/ProtectedMemberAccess3.out.i
 data/test/tools/apt/Basics/com.sun.mirror.apt.AnnotationProcessorFactory.i
 data/test/tools/javadoc/annotations/annotatePackage/pkg1/package.html.i
 data/test/com/sun/javadoc/testOverridenMethods/pkg3/I1.java.i
-data/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java.i
+data/test/tools/javac/generics/T6657499.java.i
 data/test/tools/javac/generics/OverrideBridge.java.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java.i
-data/test/tools/javac/T6554097.out.i
+data/test/tools/javac/protectedAccess/ProtectedMemberAccess3.java.i
+data/test/tools/javac/mandatoryWarnings/deprecated/Test1.out.i
 data/test/tools/javac/6547131/p/Outer.jasm.i
 data/test/com/sun/javadoc/5093723/T5093723.java.i
 data/test/tools/javac/overrridecrash/B.java.i
+data/test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/C4.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/TextTag.java.i
 data/src/share/classes/com/sun/tools/javac/tree/Pretty.java.i
-data/test/com/sun/javadoc/testTypeParams/pkg/ParamTest2.java.i
-data/src/share/classes/com/sun/tools/javac/services/javax.tools.JavaCompilerTool.i
+data/test/tools/javac/generics/wildcards/ContraArg.java.i
+data/test/tools/javac/ForwardReference/ForwardReference_5.java.i
 data/test/tools/javac/failover/FailOver07.out.i
 data/test/tools/javac/processing/options/testCommandLineClasses/p/NestedExamples.java.i
 data/test/tools/javac/5017953/T5017953.java.i
-data/test/tools/javac/generics/diamond/neg/Neg11.out.i
 data/test/tools/javac/jvm/6397652/com/test/Test$Test$Test.java.i
-data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes6.java.i
+data/test/tools/javac/diags/examples/SourceNoBootclasspath.java.i
+data/test/tools/javac/generics/wildcards/neg/CastWarn14.java.i
 data/test/tools/javac/ConditionalClass.java.i
 data/test/com/sun/javadoc/testBadPackageFileInJar/pkg/C.java.i
-data/test/tools/javac/typeAnnotations/failures/common/newarray/InvalidLocation.java.i
-data/test/tools/javac/LabeledDeclaration.java.i
-data/test/tools/javac/generics/6413682/TestPos.java.i
+data/src/share/classes/com/sun/tools/classfile/Exceptions_attribute.java.i
+data/test/tools/javac/cast/7005671/T7005671.java.i
 data/test/tools/javac/conditional/6500343/T6500343b.java.i
 data/test/tools/javac/mandatoryWarnings/unchecked/Test3.out.i
 data/test/com/sun/javadoc/testSourceTab/DoubleTab/C.java.i
-data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes3.java.i
+data/test/tools/javac/assert/Position.java.i
 data/test/tools/javac/warnings/DivZero.java.i
 data/test/tools/javac/generics/6192945/Neg2.out.i
-data/test/tools/javac/Paths/Class-Path2.sh.i
-data/test/tools/javadoc/annotations/defaults/pkg1/A.java.i
+data/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateAnnotationValue.out.i
+data/src/share/classes/com/sun/tools/classfile/DescriptorException.java.i
+data/src/share/classes/javax/lang/model/type/MirroredTypeException.java.i
 data/test/tools/javac/boxing/Boxing1.java.i
-data/test/tools/javac/6402516/Checker.java.i
+data/test/tools/javac/InterfaceOverrideObject.java.i
+data/test/tools/javac/FloatingPointChanges/BadConstructorModifiers.out.i
+data/test/tools/javac/generics/inference/4942040/T4942040.java.i
 data/test/com/sun/javadoc/ValidHtml/ValidHtml.java.i
-data/test/tools/javac/annotations/neg/Recovery1.java.i
+data/test/tools/javac/enum/T6509042.java.i
 data/test/tools/javac/quid/T6999438.out.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationTypeDeclarationImpl.java.i
+data/make/test/lib/javac.sh.i
 data/test/tools/javac/HiddenAbstractMethod/two/Child.java.i
-data/test/tools/javac/6840059/T6840059.out.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/markup/DocType.java.i
-data/test/tools/javac/policy/test1/simple.ABD.out.i
-data/make/netbeans/javah/nbproject/project.xml.i
+data/test/tools/javac/diags/examples/IntfAnnotationMemberClash.java.i
+data/test/tools/javac/6402516/CheckMethod.java.i
+data/test/tools/javac/processing/6512707/T6512707.java.i
+data/test/tools/javac/enum/Def.java.i
 data/test/tools/javac/unicode/SupplementaryJavaID4.java.i
-data/test/tools/javac/generics/rare/Rare10.java.i
 data/test/tools/apt/Options/Marked.java.i
-data/src/share/classes/com/sun/tools/javac/comp/Modules.java.i
-data/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestError.java.i
+data/test/tools/javac/typeAnnotations/newlocations/ClassParameters.java.i
+data/test/tools/javac/diags/examples/UnsupportedEncoding.java.i
 data/test/tools/javac/processing/environment/round/InheritedAnnotation.java.i
-data/test/com/sun/javadoc/testMemberInheritence/diamond/Z.java.i
+data/test/tools/javac/TryWithResources/ResourceInterface.out.i
 data/test/tools/javac/diags/examples/TypeAnnotationsNotSupported.java.i
-data/test/tools/javac/generics/rare/Rare8.java.i
+data/test/tools/javac/processing/environment/round/SurfaceAnnotations.java.i
 data/src/share/classes/com/sun/tools/javadoc/TagImpl.java.i
-data/test/tools/javac/DuplicateClass.java.i
+data/src/share/classes/javax/lang/model/element/package-info.java.i
 data/test/tools/javac/miranda/T4279316d.java.i
-data/test/tools/javac/diags/examples/DiamondNonGeneric.java.i
+data/test/tools/javac/enum/NestedEnum.java.i
+data/test/tools/javac/4980495/std/Test.out.i
 data/src/share/classes/com/sun/tools/javac/processing/AnnotationProcessingError.java.i
 data/test/tools/javac/enum/EnumPublicConstructor.java.i
-data/test/tools/javac/generics/rare/6665356/T6665356.java.i
+data/test/tools/javac/overload/T4743490.java.i
+data/test/tools/javac/generics/diamond/7057297/T7057297.out.i
 data/test/tools/apt/mirror/type/TypeVar.java.i
 data/test/tools/javac/miranda/4686811/Tryit.java.i
-data/test/tools/javac/FinallyWarn.java.i
+data/test/tools/javac/processing/warnings/gold_0.out.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java.i
 data/test/tools/javac/6390045/T6390045a.java.i
+data/test/tools/javac/annotations/pos/package-info.java.i
 data/test/tools/javac/mandatoryWarnings/deprecated/A.java.i
-data/src/share/classes/javax/tools/DiagnosticCollector.java.i
-data/src/share/classes/javax/lang/model/element/UnknownElementException.java.i
-data/test/tools/javac/generics/rawSeparate/RetroLexer.java.i
+data/test/tools/javac/policy/test2/byfile.BA.out.i
+data/test/tools/javap/pathsep.sh.i
+data/src/share/classes/javax/lang/model/type/package-info.java.i
 data/test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java.i
 data/test/com/sun/javadoc/testNavagation/pkg/I.java.i
-data/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateTypeAnnotation.java.i
-data/test/tools/javac/annotations/neg/Z1.java.i
+data/test/tools/javac/generics/UncheckedArray.java.i
 data/test/tools/javac/varargs/BadSyntax2.java.i
-data/test/tools/javac/diags/examples/IdentifierExpected.java.i
+data/test/tools/javac/processing/model/util/elements/TestGetConstantExpression.java.i
 data/test/tools/javac/6402516/TestClass.java.i
-data/test/tools/javac/QualifiedAccess/QualifiedAccess_1.out.i
-data/test/tools/javac/SuperNew2.java.i
-data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes4.java.i
+data/test/tools/javac/T5003235/T5003235c.out.i
+data/test/tools/javac/TryWithResources/BadTwrSyntax.out.i
+data/test/tools/javac/multicatch/Neg04eff_final.out.i
 data/test/tools/javac/diags/examples/NotDefPublicCantAccess/NotDefPublicCantAccess.java.i
-data/test/tools/javac/generics/7007615/acc1/AccessibilityCheck01.java.i
+data/test/tools/javac/generics/inference/5081782/Pos.java.i
+data/test/tools/javac/AccessMethods/ChainedAssignment.java.i
 data/make/test/lib/javah.sh.i
 data/test/tools/javac/Paths/Diagnostics.sh.i
-data/test/tools/javac/generics/6245699/T6245699.java.i
+data/test/tools/javah/ReadOldClass.sh.i
 data/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java.i
-data/src/share/classes/com/sun/mirror/util/DeclarationFilter.java.i
-data/test/tools/javac/6302184/T6302184.sh.i
+data/test/tools/javac/warnings/6594914/T6594914b.java.i
+data/test/tools/javac/Increment.java.i
 data/test/tools/javac/api/T6838467.java.i
-data/test/com/sun/javadoc/JavascriptWinTitle/p1/C.java.i
+data/test/tools/javac/diags/examples/ProcUseImplicit/ProcUseImplicit.java.i
 data/test/tools/javac/diags/FileManager.java.i
 data/test/com/sun/javadoc/testOverridenMethods/pkg3/I3.java.i
-data/test/tools/javac/TryWithResources/ResourceTypeVar.java.i
+data/test/tools/javac/T6881645.java.i
 data/test/tools/javac/diags/examples/InvalidBinaryNumber.java.i
 data/test/tools/javac/6863465/T6863465a.java.i
+data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes4.java.i
 data/test/tools/javac/generics/6356636/a/AbstractFoo.java.i
 data/test/tools/javac/generics/typevars/4856983/T4856983.java.i
-data/test/com/sun/javadoc/testTagInheritence/pkg/TestAbstractClass.java.i
-data/src/share/classes/com/sun/tools/javap/JavapFileManager.java.i
+data/src/share/classes/com/sun/source/tree/WildcardTree.java.i
+data/test/tools/javac/ClassFileModifiers/MemberModifiers.java.i
 data/test/tools/javah/compareTest/README.i
 data/test/tools/javah/6572945/gold/jni.dir.1/TestClass1_Inner1.h.i
 data/test/tools/javac/StringsInSwitch/RSCL2.out.i
+data/src/share/classes/com/sun/source/tree/WhileLoopTree.java.i
 data/src/share/classes/com/sun/tools/javadoc/PrimitiveType.java.i
-data/test/tools/javac/varargs/6313164/p1/C.java.i
+data/src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java.i
 data/test/tools/javac/failover/FailOver12.out.i
 data/test/tools/javac/generics/GenLit2.java.i
-data/test/tools/javac/processing/Xprint.java.i
+data/test/tools/javac/processing/warnings/gold_sv_warn_0_2.out.i
 data/test/tools/javac/miranda/4686148/Test.java.i
+data/test/tools/javac/processing/werror/WErrorLast.out.i
 data/src/share/classes/javax/lang/model/element/QualifiedNameable.java.i
-data/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateTypeAnnotation.out.i
+data/test/tools/javac/generics/CastCrash.java.i
 data/src/share/classes/com/sun/tools/javac/code/Symbol.java.i
 data/test/tools/javac/TryWithResources/InterruptedExceptionTest.java.i
 data/test/tools/javac/T6567414.out.i
-data/test/com/sun/javadoc/testTitleInHref/TestTitleInHref.java.i
-data/test/tools/apt/Misc/Marked.java.i
+data/test/tools/javac/api/TestOperators.java.i
+data/test/tools/javac/generics/6677785/T6677785.java.i
+data/test/tools/javac/ForwardReference/UseBeforeDeclaration.java.i
 data/test/tools/javac/diags/examples/MalformedFpLit.java.i
 data/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C1.java.i
-data/test/tools/javac/T6435291/T.jcod.i
+data/test/tools/javac/boxing/Boxing4.java.i
 data/test/tools/javac/generics/6910550/T6910550c.java.i
 data/test/tools/javadoc/6964914/JavadocWarning.java.i
-data/src/share/classes/com/sun/source/util/SourcePositions.java.i
-data/test/tools/javac/generics/CatchTyparam.java.i
+data/test/tools/javadoc/completionFailure/pkg/B.java.i
+data/test/tools/javac/processing/Xprint.java.i
 data/test/tools/javac/processing/environment/round/Part2.java.i
-data/test/tools/javac/policy/simple.ABD.out.i
-data/test/tools/javadoc/annotations/missing/somepackage/MissingAnnotationClass.java.i
+data/test/tools/javac/diags/examples/KindnameStaticInit.java.i
+data/test/tools/javac/FinalThisReference.java.i
+data/test/com/sun/javadoc/testMemberSummary/pkg2/A.java.i
 data/test/tools/javac/literals/UnderscoreLiterals.java.i
-data/src/share/classes/com/sun/tools/classfile/Signature.java.i
+data/test/tools/javac/generics/typevars/6968793/T6968793.java.i
 data/test/tools/javac/Closure1.java.i
-data/test/tools/javac/generics/GenericThrowable.java.i
 data/test/com/sun/javadoc/testHtmlComments/TestHtmlComments.java.i
 data/src/share/classes/javax/lang/model/element/AnnotationValue.java.i
-data/test/tools/javac/annotations/neg/AnnComma.java.i
+data/test/tools/javac/policy/simple.ABD.out.i
 data/src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java.i
 data/test/tools/javac/generics/inference/6638712/T6638712c.java.i
-data/test/tools/javac/cast/6270087/T6270087neg.java.i
-data/test/tools/javac/Parens4.java.i
-data/test/tools/javac/generics/6192945/MethodNeg.out.i
-data/test/com/sun/javadoc/testValueTag/pkg1/Class1.java.i
+data/test/tools/javac/generics/6476118/T6476118b.out.i
+data/test/tools/javac/multicatch/7030606/T7030606.out.i
+data/test/tools/javah/6572945/gold/jni.dir.1/TestClass1_Inner2.h.i
+data/test/tools/javac/generics/T4695348.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java.i
 data/test/tools/javap/T6729471.java.i
 data/test/tools/javac/generics/6495506/T6495506.java.i
 data/test/tools/javac/implicitThis/WhichImplicitThis2.java.i
 data/test/tools/javac/staticImport/6665223/T6665223.java.i
-data/test/tools/javac/generics/diamond/neg/Neg01.out.i
+data/test/tools/javac/AnonStaticMember_2.java.i
 data/test/tools/javac/diags/examples/SunApiPlural/SunApiPlural.java.i
-data/test/tools/javac/NestedFinallyReturn.java.i
-data/test/tools/apt/Basics/foo/bar/Quux.java.i
+data/make/netbeans/javah/build.xml.i
+data/test/tools/javac/diags/examples/AssertAsIdentifier2.java.i
+data/test/tools/javac/generics/UnsoundInference.java.i
 data/test/tools/javac/diags/examples/UnreachableCatch1.java.i
-data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/AnnotationTypeUndocumented.java.i
-data/test/tools/javac/T7040104.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeRequiredMemberWriter.java.i
+data/test/tools/javac/diags/examples/TypeReqRef.java.i
 data/test/tools/javac/danglingDep/DepX.out.i
-data/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java.i
-data/test/tools/javac/FinalInitializer.java.i
+data/test/com/sun/javadoc/constantValues/TestConstantValues2.java.i
+data/test/tools/javac/TryInInstanceInit.java.i
 data/test/tools/javac/diags/examples/ProcFileReopening/ProcFileReopening.java.i
 data/test/tools/javac/types/GenericTypeWellFormednessTest.java.i
 data/test/tools/javac/generics/6182950/T6182950a.out.i
 data/test/tools/apt/Basics/MyMarker.java.i
 data/test/tools/javac/importChecks/InvalidImportsNoClasses.java.i
-data/test/tools/javadoc/annotations/annotateParams/pkg1/A.java.i
-data/test/tools/javac/generics/diamond/neg/Neg04.out.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/MemberSummaryWriter.java.i
 data/test/tools/javac/varargs/warning/Warn3.java.i
 data/test/tools/javac/generics/wildcards/neg/Unbounded.java.i
-data/test/tools/javac/processing/6348499/A.java.i
-data/test/tools/javac/processing/model/element/TestMissingElement2/TestMissingClass.java.i
+data/test/tools/javac/varargs/6806876/T6806876.out.i
+data/test/tools/javac/6402516/CheckClass.java.i
 data/test/tools/javac/limits/ArrayDims4.java.i
 data/test/tools/javac/generics/inference/6650759/T6650759d.java.i
 data/test/com/sun/javadoc/testClassTree/pkg/ChildClass.java.i
 data/test/tools/javac/cast/6302214/T6302214.java.i
 data/test/tools/javac/multicatch/Neg03.out.i
-data/test/tools/javac/api/6431435/T6431435.java.i
-data/test/com/sun/javadoc/testSummaryHeading/TestSummaryHeading.java.i
-data/test/tools/javac/4980495/std/Test.out.i
+data/test/tools/javac/mandatoryWarnings/deprecated/Test5.out.i
+data/test/tools/javac/annotations/6214965/CompilerAnnotationTest2bad.java.i
+data/test/tools/javadoc/generics/genericClass/pkg1/A.java.i
 data/test/tools/javac/processing/werror/WError1.out.i
-data/test/tools/javac/processing/model/element/TestTypeParameter.java.i
+data/test/tools/javac/api/T6400207.java.i
 data/test/tools/javac/annotations/6365854/test1.out.i
 data/test/tools/javac/generics/rawOverride/Fail1.java.i
 data/test/tools/javac/6902720/E2.java.i
-data/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java.i
+data/test/com/sun/javadoc/testCmndLineClass/pkg2/C3.java.i
 data/test/tools/javac/generics/diamond/neg/Neg08.out.i
 data/test/tools/javac/diags/examples/MightBeAssignedInLoop.java.i
 data/test/tools/javac/Diagnostics/6722234/T6722234c.out.i
+data/make/test/lib/classes.sh.i
+data/test/tools/javac/OverrideChecks/6400189/T6400189d.java.i
 data/test/com/sun/javadoc/testIndex/TestIndex.java.i
-data/test/tools/apt/Discovery/PhantomUpdate.java.i
+data/test/tools/javac/generics/7022054/T7022054neg1.java.i
 data/test/tools/javac/generics/MissingBridge.java.i
-data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes9.java.i
+data/test/tools/javac/6394683/T6394683.java.i
 data/test/tools/javac/Diagnostics/6722234/T6722234b_1.out.i
-data/src/share/classes/com/sun/tools/javac/util/ByteBuffer.java.i
-data/test/tools/javac/6835430/A.java.i
-data/test/tools/javac/CyclicInheritance2.java.i
-data/test/tools/javac/diags/examples/AnnoNotApplicable.java.i
-data/test/tools/javac/processing/6348193/T6348193.java.i
-data/src/share/classes/com/sun/tools/classfile/DefaultAttribute.java.i
-data/test/tools/javac/generics/diamond/7030150/Pos01.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SeeTaglet.java.i
+data/test/tools/javap/classfile/T6887895.java.i
+data/test/tools/javac/SerialWarn.java.i
+data/test/tools/javac/processing/environment/HelloWorld.java.i
+data/test/tools/javac/diags/examples/MulticatchTypesMustBeDisjoint.java.i
+data/test/tools/javac/DefiniteAssignment/UncaughtException.java.i
+data/test/tools/javac/processing/6994946/SyntaxErrorTest.out.i
 data/src/share/opensource/javac/README-template.html.i
 data/test/tools/javac/annotations/default/B.java.i
-data/test/tools/javac/api/T6395981.java.i
 data/src/share/classes/com/sun/tools/javadoc/JavadocTodo.java.i
-data/test/tools/javac/generics/6372782/PlainForm.java.i
 data/test/tools/javac/staticImport/6695838/a/Foo.java.i
-data/test/tools/javac/6863465/T6863465b.out.i
+data/test/tools/javac/Paths/6638501/HelloLib/test/HelloImpl.java.i
 data/test/tools/javac/EnclosingAccessCheck.java.i
 data/test/tools/javac/generics/rare/6665356/T6665356.out.i
 data/test/tools/javac/diags/examples/ResourceMayNotBeAssigned.java.i
 data/test/tools/javac/diags/examples/KindnameMethod.java.i
-data/src/share/classes/javax/lang/model/type/UnionType.java.i
-data/test/com/sun/javadoc/testDocFileDir/pkg/doc-files/subdir-excluded2/testfile.txt.i
-data/test/tools/javac/miranda/T4528315.java.i
-data/src/share/classes/com/sun/tools/apt/mirror/declaration/InterfaceDeclarationImpl.java.i
-data/test/tools/javac/AnonInnerException_1.java.i
-data/test/tools/javac/varargs/warning/Warn4.java.i
+data/test/tools/javac/OverrideChecks/T4721069.java.i
+data/test/tools/javac/multicatch/7030606/DisjunctiveTypeWellFormednessTest.java.i
+data/test/tools/javac/diags/examples/ProcIncompatibleSourceVersion/ProcIncompatibleSourceVersion.java.i
+data/test/tools/javac/protectedInner/pkg1/Base.java.i
+data/test/tools/javac/T6227617.java.i
+data/test/tools/javac/generics/T4711570.java.i
 data/test/tools/javac/LocalClasses_2.out.i
 data/test/tools/javac/generics/typevars/5060485/Method.java.i
 data/test/tools/javac/generics/InterfaceCast1.java.i
-data/test/tools/javac/enum/T5081785c.java.i
 data/test/tools/javac/diags/examples/SunProprietary.java.i
 data/test/tools/javac/diags/examples/LabelInUse.java.i
 data/test/tools/javac/generics/wildcards/AssignmentSameType6.java.i
-data/test/tools/javac/api/T6412669.java.i
 data/test/tools/javac/generics/typevars/6804733/T6804733.out.i
-data/src/share/classes/sun/tools/javap/RuntimeConstants.java.i
+data/test/tools/javac/generics/wildcards/7034495/T7034495.java.i
 data/test/tools/javac/typeAnnotations/failures/StaticMethods.out.i
 data/test/tools/javac/generics/bridge1/A.java.i
 data/src/share/classes/javax/lang/model/type/MirroredTypesException.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/XMLNode.java.i
+data/test/tools/javac/T6435291/T6435291.java.i
 data/src/share/classes/com/sun/tools/classfile/Synthetic_attribute.java.i
 data/test/tools/javac/OverridePosition.out.i
-data/test/tools/javac/api/6440333/T6440333.java.i
-data/test/tools/javac/tree/TreeScannerTest.java.i
-data/test/tools/javac/QualifiedNew.java.i
-data/test/tools/javac/Closure5.java.i
+data/test/tools/javac/T6351767.java.i
+data/test/tools/javac/generics/inference/T6835428.java.i
+data/test/tools/javac/diags/examples/DiamondAndExplicitParams.java.i
+data/test/tools/javac/T6266772.java.i
+data/test/tools/javac/mandatoryWarnings/deprecated/B.java.i
 data/test/tools/javac/generics/6723444/T6723444.out.i
-data/test/tools/javac/InstanceInitException_1.java.i
+data/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java.i
 data/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateAnnotationValue.java.i
-data/test/tools/javac/processing/model/util/BinaryName.java.i
-data/test/tools/javac/Diagnostics/6799605/T6799605.out.i
+data/src/share/classes/com/sun/mirror/declaration/Declaration.java.i
 data/src/share/classes/com/sun/tools/javac/jvm/Code.java.i
-data/test/com/sun/javadoc/testExternalOverridenMethod/pkg/XReader.java.i
+data/test/tools/javac/processing/6413690/TestMe.java.i
+data/test/tools/javac/generics/forwardSeparateBound/ForwardSeparateBound1.java.i
 data/test/tools/javac/newlines/Newlines.sh.i
-data/test/tools/javac/NameClash/One.java.i
-data/test/tools/javac/annotations/neg/Package.java.i
+data/test/tools/javac/depOverrides/annotation/Test1B2.out.i
+data/test/tools/javac/multicatch/Pos08.java.i
+data/test/tools/javac/generics/inference/7086586/T7086586.out.i
 data/test/tools/javac/generics/T4711572.java.i
-data/src/share/classes/com/sun/tools/javac/code/Flags.java.i
+data/test/tools/javac/processing/6994946/SemanticErrorTest.java.i
 data/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties.i
-data/test/tools/javac/TryWithResources/UnusedResourcesTest.java.i
+data/test/tools/javac/generics/compat/OverrideBridge2.java.i
 data/test/tools/javac/generics/6729401/T6729401.java.i
-data/test/tools/javac/generics/T4661029.java.i
-data/test/tools/javac/generics/T6557954.java.i
-data/make/build.xml.i
-data/test/tools/javac/OverrideChecks/6400189/T6400189c.java.i
+data/test/tools/javac/generics/diamond/pos/Pos01.java.i
+data/src/share/classes/com/sun/tools/javap/resources/javap.properties.i
+data/test/tools/javac/T6794959.java.i
+data/test/tools/javac/6979683/TestCast6979683_BAD37.java.i
+data/test/tools/javac/ClassCycle/ClassCycle2a.java.i
 data/test/tools/javac/T6625520.java.i
-data/test/tools/javac/diags/examples/PackageInfoAlreadySeen/package-info.java.i
+data/test/tools/javac/jvm/6397652/T6397652.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Group.java.i
 data/test/com/sun/javadoc/testWarnBadParamNames/C.java.i
-data/test/tools/javac/multicatch/model/UnionTypeInfo.java.i
+data/test/tools/javac/generics/BridgeClash.java.i
 data/src/share/classes/com/sun/tools/javac/util/ClientCodeException.java.i
-data/test/tools/javac/generics/T4738171.java.i
-data/test/tools/javac/6464451/DeepNestedFinally.java.i
+data/src/share/classes/javax/lang/model/util/AbstractElementVisitor8.java.i
+data/test/tools/javac/diags/examples/UncheckedGenericArrayCreation.java.i
 data/test/tools/javac/6558548/T6558548_latest.out.i
 data/test/tools/javac/5005368.java.i
 data/test/com/sun/javadoc/testCmndLineClass/C5.java.i
 data/test/tools/javac/unicode/SupplementaryJavaID2.java.i
 data/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C1.java.i
-data/test/tools/javac/depOverrides/doccomment/Test1.java.i
-data/test/tools/javac/typeAnnotations/failures/common/rest/DuplicateAnnotationValue.java.i
+data/test/tools/javac/generics/inference/4941882/T4941882.java.i
 data/test/tools/javac/ThrowsIntersection_4.java.i
-data/test/tools/javac/types/PrimitiveConversionTest.java.i
-data/test/tools/javadoc/annotations/annotateParams/Main.java.i
-data/test/tools/javac/javazip/A.java.i
+data/test/tools/javadoc/FlagsTooEarly.java.i
+data/test/tools/javac/typeAnnotations/6967002/T6967002.out.i
 data/src/share/classes/com/sun/tools/apt/mirror/type/ClassTypeImpl.java.i
-data/test/tools/javac/cast/6932571/T6932571neg.out.i
-data/src/share/opensource/javac/doc/javac_lifecycle/contents.html.i
-data/test/tools/javac/processing/6634138/ExerciseDependency.java.i
+data/test/tools/javadoc/annotations/annotatePackage/Main.java.i
+data/test/tools/javac/Paths/6638501/test1/SayHelloToo.java.i
 data/test/tools/javac/typeAnnotations/failures/common/receiver/InvalidLocation.out.i
-data/test/tools/javac/T5003235/T5003235c.java.i
+data/test/tools/javac/diags/examples/EnclClassRequired.java.i
 data/test/tools/javac/annotations/default/Derr.java.i
 data/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C2.java.i
-data/test/com/sun/javadoc/testCmndLineClass/pkg2/C4.java.i
+data/test/tools/javac/generics/6677785/T6677785.out.i
 data/test/tools/javac/warnings/Serial.java.i
-data/test/tools/javac/T6972327.java.i
+data/test/tools/javac/SuperclassConstructorException.java.i
 data/test/tools/javac/StringsInSwitch/BadlyTypedLabel1.out.i
-data/src/share/classes/com/sun/javadoc/ExecutableMemberDoc.java.i
+data/test/tools/javadoc/annotations/annotateParams/pkg1/C.java.i
 data/test/tools/javac/typeAnnotations/TypeUseTarget.java.i
+data/src/share/classes/com/sun/tools/javac/parser/Token.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MethodBuilder.java.i
 data/test/tools/javac/generics/diamond/neg/Neg03.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets.properties.i
 data/test/tools/javac/OverrideChecks/InconsistentReturn.java.i
-data/test/tools/javac/annotations/6365854/T6365854.java.i
+data/test/tools/javac/api/evalexpr/CompileFromString.java.i
 data/test/tools/javac/diags/examples/CantResolveLocation.java.i
-data/test/tools/javac/ConstantValues/test_ff2.java.i
+data/test/tools/javac/typeAnnotations/newlocations/BasicTest.out.i
 data/test/tools/javac/literals/BadBinaryLiterals.6.out.i
-data/test/tools/javac/typeAnnotations/failures/common/receiver/MissingAnnotationValue.java.i
-data/test/tools/javac/enum/AbstractEmptyEnum.java.i
-data/test/com/sun/javadoc/testValueTag/pkg2/package.html.i
+data/test/tools/javac/generics/Casting3.java.i
+data/test/tools/javah/SubClassConsts.java.i
 data/test/tools/javac/SuperMethodResolve.java.i
-data/test/com/sun/javadoc/testDeprecatedDocs/pkg/DeprecatedClassByAnnotation.java.i
+data/test/tools/javah/6572945/gold/jni.file.3.i
 data/test/tools/javac/OverrideChecks/InterfaceOverride.java.i
 data/test/tools/javac/generics/inference/6995200/T6995200.java.i
 data/test/tools/javac/generics/inference/6369605/T6369605a.java.i
-data/src/share/classes/com/sun/tools/apt/mirror/type/InterfaceTypeImpl.java.i
+data/test/tools/javac/annotations/pos/Parameter.java.i
 data/test/tools/javac/tree/TestAnnotatedAnonClass.java.i
 data/test/com/sun/javadoc/testClassCrossReferences/package-list.i
-data/src/share/classes/com/sun/tools/javac/util/Constants.java.i
+data/src/share/classes/com/sun/tools/classfile/Method.java.i
 data/test/tools/javac/diags/examples/EnumNoSubclassing.java.i
 data/make/netbeans/common/standard-context-menu-items.ent.i
 data/test/tools/javac/varargs/6313164/p1/A.java.i
-data/test/tools/javac/typeAnnotations/failures/common/innertypeparams/InvalidLocation.java.i
-data/test/tools/javac/cast/7005671/T7005671.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/Taglet.java.i
+data/test/tools/javac/typeAnnotations/failures/common/newarray/InvalidLocation.java.i
+data/test/tools/javac/generics/6413682/TestPos.java.i
+data/test/tools/javac/T5003235/T5003235b.out.i
+data/test/tools/apt/Basics/foo/bar/Quux.java.i
 data/test/tools/javac/processing/6994946/SemanticErrorTest.2.out.i
 data/test/tools/javac/enum/Enum1.java.i
-data/test/tools/javac/diags/examples/ErrorReadingFile.java.i
-data/src/share/classes/com/sun/tools/javac/parser/Token.java.i
+data/test/tools/javac/generics/rare/Rare10.java.i
+data/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestError.java.i
 data/test/tools/javac/processing/messager/MessagerBasics.java.i
-data/test/tools/javac/processing/completion/TestCompletions.java.i
-data/src/share/classes/javax/lang/model/type/package-info.java.i
+data/test/tools/javac/diags/examples/AbstractCantBeInstantiated.java.i
+data/test/tools/javac/generics/rawSeparate/RetroLexer.java.i
+data/test/com/sun/javadoc/testSubTitle/pkg/C.java.i
 data/test/com/sun/javadoc/testTagInheritence/pkg/TestSuperSuperInterface.java.i
-data/test/tools/javac/T6881645.java.i
+data/test/tools/javac/api/T6395981.java.i
 data/test/tools/javac/generics/6476118/T6476118c.java.i
 data/test/tools/javah/T5070898.java.i
 data/test/tools/javac/missingSuperRecovery/MissingSuperRecovery.java.i
 data/test/tools/javac/T6245591.java.i
-data/test/tools/javac/generics/6677785/T6677785.java.i
-data/src/share/classes/com/sun/tools/javac/util/Messages.java.i
+data/test/tools/javac/generics/typevars/6182630/T6182630.java.i
+data/src/share/classes/javax/tools/DiagnosticCollector.java.i
+data/test/tools/apt/Basics/GenClass.java.i
 data/test/tools/javac/diags/examples/MalformedSupported/processors/AnnoProc.java.i
-data/test/tools/javac/importChecks/ImportCanonical1.java.i
+data/test/tools/javadoc/annotations/missing/somepackage/MissingAnnotationClass.java.i
 data/test/com/sun/javadoc/constantValues/A.java.i
-data/test/tools/apt/mirror/declaration/ConstructorDecl.java.i
+data/test/tools/javac/generics/typevars/5060485/Compatibility.out.i
 data/src/share/classes/com/sun/source/tree/ModifiersTree.java.i
 data/test/tools/javac/AnonStaticMember_1.java.i
 data/test/com/sun/javadoc/testNotifications/TestNotifications.java.i
 data/test/tools/javac/InnerNamedConstant_2.sh.i
-data/test/tools/javac/api/T6400207.java.i
-data/test/tools/javac/diags/examples/MulticatchTypesMustBeDisjoint.java.i
+data/test/tools/javac/processing/model/element/TestTypeParameter.java.i
+data/make/netbeans/apt/build.xml.i
+data/test/tools/javac/processing/6348193/T6348193.java.i
 data/test/tools/javac/HiddenAbstractMethod/Test.i
-data/test/tools/javac/varargs/6730476/T6730476b.java.i
-data/test/com/sun/javadoc/testSuperclassInSerialForm/pkg/SubClass.java.i
-data/test/tools/javadoc/varArgs/Main.java.i
+data/src/share/classes/javax/lang/model/type/UnionType.java.i
 data/test/tools/javac/generics/inference/6638712/T6638712a.java.i
 data/src/share/classes/com/sun/tools/javadoc/Main.java.i
 data/test/tools/javac/InnerClassesAttribute/Test.java.i
-data/test/tools/javac/6390045/T6390045b.java.i
+data/test/tools/javac/Closure5.java.i
 data/test/tools/javadoc/annotations/badVals/Main.java.i
-data/test/tools/javac/capture/Capture5.java.i
+data/test/tools/javac/generics/typevars/6804733/T6804733.java.i
+data/test/com/sun/javadoc/testDocRootLink/TestDocRootLink.java.i
 data/test/tools/javac/generics/inference/6650759/T6650759g.java.i
-data/test/com/sun/javadoc/testThrowsTag/pkg/T5.java.i
-data/test/tools/javac/SuperclassConstructorException.java.i
+data/test/tools/javac/api/T6358786.java.i
+data/test/tools/javac/T6972327.java.i
 data/test/tools/javac/generics/typevars/T6880344.java.i
-data/test/tools/javadoc/enum/enumType/pkg1/QuotablePerson.java.i
-data/test/tools/javac/InnerNamedConstant_1.java.i
+data/test/tools/javac/generics/7020657/T7020657pos.java.i
+data/test/tools/javac/typeAnnotations/failures/common/arrays/MissingAnnotationValue.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/SingleIndexWriter.java.i
-data/test/tools/javac/cast/6714835/T6714835.java.i
+data/test/tools/javac/diags/examples/ErrorReadingFile.java.i
 data/test/tools/javac/QualifiedNewScope.java.i
-data/test/tools/javac/PackageClassAmbiguity/Bad.java.i
+data/src/share/classes/com/sun/tools/javac/comp/Annotate.java.i
+data/test/tools/javac/enum/EnumProtectedConstructor.java.i
 data/test/tools/javap/classfile/deps/T6907575.java.i
-data/test/tools/javac/api/6733837/T6733837.java.i
+data/test/tools/javac/diags/examples/NotDefAccessClassIntfCantAccess/NotDefAccessClassIntfCantAccess.java.i
 data/test/tools/javac/diags/examples/ProcSuspiciousClassName/processors/AnnoProc.java.i
 data/test/tools/javac/policy/simple.ACD.out.i
-data/test/tools/javac/generics/6372782/PlanarVectorVariable.java.i
+data/test/tools/javac/CyclicScoping/CyclicScoping_1.java.i
 data/test/tools/javac/TryWithResources/BadTwr.out.i
 data/test/tools/javac/typeAnnotations/failures/common/newarray/MissingAnnotationValue.out.i
 data/test/tools/javac/meth/TestCP.java.i
-data/test/tools/javac/typeAnnotations/failures/common/typeArgs/MissingAnnotationValue.out.i
+data/test/tools/javac/api/6452876/T6452876.java.i
 data/test/tools/javac/diags/examples/NameClashSameErasureNoOverride1.java.i
 data/test/tools/javac/DefiniteAssignment/DUParam1.java.i
-data/src/share/classes/com/sun/tools/javac/util/Log.java.i
+data/test/tools/javac/AnonymousProtect/AnonymousProtect.java.i
 data/test/tools/javac/synthesize/Main.java.i
+data/test/tools/javac/generics/7034019/T7034019c.java.i
 data/test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java.i
 data/test/tools/javac/6547131/p/Outer$I.class.i
 data/test/tools/javac/BadCovar.java.i
-data/test/tools/javac/positions/T6253161a.java.i
+data/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateTypeAnnotation.out.i
 data/test/tools/javac/typeAnnotations/newlocations/Expressions.java.i
 data/test/tools/javac/scope/6225935/T6214959.java.i
 data/test/tools/javac/T6558476.java.i
 data/test/tools/javac/annotations/neg/ArrayLit.java.i
 data/test/tools/javac/generics/7034019/T7034019a.java.i
-data/test/tools/javac/diags/examples/IntfMethodCantHaveBody.java.i
+data/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateTypeAnnotation.out.i
+data/test/tools/javac/processing/model/6341534/dir/package-info.java.i
 data/test/tools/javac/DefiniteAssignment/ConstantInfiniteWhile.java.i
 data/test/tools/javac/generics/classreader/HArrayMethod.java.i
 data/test/tools/javac/enum/ExplicitlyFinalEnum2.java.i
 data/test/tools/javac/InnerMemberRegression.java.i
 data/test/tools/javac/depDocComment/SuppressDeprecation.out.i
 data/test/tools/javac/diags/examples/AnonClassImplInterfaceNoArgs.java.i
-data/test/tools/javac/T6394563.warn.out.i
-data/test/tools/javac/T6942649.java.i
+data/test/tools/javac/multicatch/Neg02.out.i
+data/test/tools/javac/UncaughtOverflow.java.i
 data/test/tools/javac/depOverrides/annotation/Test3.out.i
 data/test/tools/javac/T6358168.java.i
-data/test/tools/javac/diags/examples/AnnotationsNotSupported.java.i
-data/src/share/classes/com/sun/tools/javac/jvm/Target.java.i
+data/test/com/sun/javadoc/testModifier/ModifierAbstract.java.i
+data/test/tools/javac/typeAnnotations/newlocations/ClassLiterals.java.i
 data/src/share/classes/com/sun/source/tree/TypeParameterTree.java.i
-data/test/tools/javap/stackmap/T6271292.sh.i
-data/test/tools/javac/diags/examples/IntfAnnotationCantHaveTypeParams.java.i
+data/test/tools/javac/typeAnnotations/failures/common/typeArgs/MissingAnnotationValue.out.i
+data/test/com/sun/javadoc/testNoPackagesFile/TestNoPackagesFile.java.i
 data/test/tools/javap/classfile/deps/T6907575.out.i
 data/src/share/classes/com/sun/source/tree/NewArrayTree.java.i
 data/test/com/sun/javadoc/testTopOption/TestTopOption.java.i
 data/test/tools/javac/tree/T6993305.java.i
-data/test/tools/javac/cast/6302956/T6302956.java.i
+data/test/tools/javac/Paths/6638501/WsCompileExample.java.i
 data/src/share/classes/javax/tools/Diagnostic.java.i
-data/test/tools/javac/cast/6548436/T6548436d.java.i
-data/test/tools/javac/typeAnnotations/failures/IncompleteArray.out.i
+data/test/com/sun/javadoc/testLinkOption/pkg2/C2.java.i
+data/test/tools/javadoc/dupOk/DupOk.java.i
 data/test/tools/javac/diags/examples/IncomparableTypes.java.i
 data/test/tools/apt/Compile/StaticApf.java.i
 data/test/tools/javac/generics/wildcards/6886247/T6886247_1.java.i
 data/test/tools/javac/DefiniteAssignment/DefAssignAfterTry2.java.i
-data/test/tools/apt/Compile/goldenFactory.txt.i
+data/test/tools/javac/diags/examples/ClassPublicInFile.java.i
 data/src/share/classes/javax/tools/JavaFileObject.java.i
 data/test/tools/javac/varargs/6993978/T6993978neg.java.i
 data/test/tools/javac/OverrideChecks/T4720356a.java.i
@@ -3851,34 +3841,34 @@ data/test/tools/javac/TryWithResources/ArmLint.java.i
 data/src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java.i
 data/test/tools/javac/generics/diamond/pos/Pos05.java.i
 data/test/tools/javac/6330997/T1.java.i
-data/test/tools/javac/diags/examples/Note.java.i
+data/test/tools/javac/importChecks/ImportCanonical1.java.i
 data/test/tools/javac/processing/warnings/gold_sv_warn_2_3.out.i
 data/test/tools/javac/diags/examples/ImportRequiresCanonical/p/ExtendsBase.java.i
-data/test/tools/javac/generics/ExtendedRaw2.java.i
+data/test/tools/javac/generics/6531090/T6531090b.java.i
 data/test/com/sun/javadoc/testLinkTaglet/checkPkg/B.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java.i
-data/src/share/classes/com/sun/tools/javac/comp/ConstFold.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ReturnTaglet.java.i
 data/test/tools/javac/conditional/6500343/T6500343a.java.i
 data/test/tools/javac/nio/compileTest/CompileTest.java.i
 data/test/tools/javac/generics/wildcards/neg/CastWarn7.java.i
-data/src/share/classes/com/sun/mirror/type/VoidType.java.i
-data/test/tools/javac/diags/examples/GenericThrowable.java.i
+data/src/share/classes/com/sun/tools/javac/util/Log.java.i
+data/test/tools/javac/policy/test2/Test.java.i
 data/test/tools/javac/generics/6182950/T6182950a.java.i
-data/test/tools/javac/generics/6495506/A.java.i
 data/test/tools/javac/abstract/U1.java.i
 data/test/tools/javac/T5003235/T5003235a.java.i
-data/src/share/classes/javax/lang/model/element/Parameterizable.java.i
-data/test/tools/javac/diags/CheckExamples.java.i
-data/test/tools/apt/Compile/WrappedStaticApf.java.i
+data/test/tools/javac/generics/typevars/6199146/T6199146.java.i
+data/test/tools/javac/multicatch/Neg07.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/type/TypeMaker.java.i
 data/test/tools/javac/util/T6597678.java.i
-data/test/tools/javac/InterfaceOverrideObject.java.i
+data/test/tools/javac/EmptyBreak.java.i
 data/test/tools/javac/varargs/warning/Warn1.java.i
-data/src/share/classes/com/sun/tools/javadoc/ParamTagImpl.java.i
-data/test/tools/javac/diags/examples/UncheckedFilenameAdditional.java.i
+data/test/tools/javac/generics/classreader/HMethod.java.i
+data/test/tools/javac/NestedInnerClassNames.out.i
 data/test/tools/javac/diags/examples/NameClashSameErasureNoHide.java.i
-data/test/tools/javac/ImportCycle/foo/Top2.java.i
+data/test/tools/javac/api/6422327/T6422327.other.i
 data/test/tools/javac/T6554097.java.i
 data/test/tools/javac/file/zip/T6865530.java.i
+data/src/share/classes/javax/lang/model/util/package-info.java.i
 data/test/tools/javac/implicitThis/WhichImplicitThis3.java.i
 data/test/tools/javac/T6407257.java.i
 data/test/tools/javac/warnings/FallThrough.lintFallThrough.out.i
@@ -3889,368 +3879,395 @@ data/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateTypeAnno
 data/make/test/lib/classes.gold.txt.i
 data/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo.java.i
 data/test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java.i
-data/test/tools/javac/expression/NullAppend2.java.i
+data/test/tools/javac/typeAnnotations/failures/common/rest/DuplicateAnnotationValue.out.i
 data/test/tools/javac/tree/JavacTreeScannerTest.java.i
 data/src/share/classes/com/sun/tools/classfile/SourceFile_attribute.java.i
 data/src/share/classes/com/sun/mirror/declaration/AnnotationTypeDeclaration.java.i
 data/test/tools/javac/diags/examples/IllegalInitializer.java.i
 data/test/tools/javac/generics/diamond/T6939780.out.i
-data/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java.i
-data/test/tools/javac/diags/examples/DotClassExpected.java.i
+data/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateAnnotationValue.out.i
+data/test/tools/javac/VersionOpt.java.i
 data/test/com/sun/javadoc/DocRootSlash/p1/package.html.i
 data/test/tools/javac/diags/examples/UndefinedLabel.java.i
 data/src/share/classes/com/sun/source/tree/AnnotationTree.java.i
 data/test/tools/javac/generics/6531090/T6531090a.java.i
 data/src/share/classes/com/sun/tools/classfile/Deprecated_attribute.java.i
-data/src/share/classes/javax/tools/ModuleFileManager.java.i
+data/test/tools/javac/diags/examples/HasBeenDeprecated.java.i
 data/test/tools/javac/cast/4916620/T4916620.java.i
 data/src/share/classes/sun/tools/javap/LocVarData.java.i
+data/test/tools/javac/diags/examples/DuplicateClass.java.i
 data/test/req.flg.i
 data/test/tools/javac/generics/inference/6718364/T6718364.out.i
-data/test/tools/javac/6996626/Main.java.i
+data/test/tools/javac/generics/6910550/T6910550e.out.i
 data/test/tools/javac/diags/examples/ProcIllegalFileName/processors/AnnoProc.java.i
-data/test/tools/javac/generics/compat/OverrideBridge3.java.i
+data/test/tools/javac/diags/examples/MulticatchCantBeAssigned.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/markup/StringContent.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java.i
-data/test/com/sun/javadoc/testDocRootLink/pkg2/package.html.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MetaKeywords.java.i
 data/make/README.i
 data/test/tools/javadoc/6964914/JavacWarning.java.i
-data/test/tools/javac/7023703/T7023703neg.out.i
+data/test/tools/javac/6668794/badClass/Test.java.i
 data/test/tools/javac/foreach/IntersectIterator.java.i
-data/src/share/classes/sun/tools/javap/CPX2.java.i
+data/test/tools/javac/depOverrides/doccomment/Test2Q.out.i
 data/src/share/classes/com/sun/tools/apt/mirror/type/TypeMirrorImpl.java.i
 data/test/tools/javac/modules/ModuleAnnotsTest01.java.i
-data/src/share/classes/com/sun/source/util/TaskListener.java.i
-data/src/share/classes/com/sun/tools/javac/util/AbstractLog.java.i
+data/test/tools/javac/T6458823/MyProcessor.java.i
+data/test/tools/javac/generics/6372782/PlainForm.java.i
 data/test/com/sun/javadoc/testUnnamedPackage/BadSource.java.i
 data/test/com/sun/javadoc/testUnnamedPackage/C.java.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/AbstractPackageIndexWriter.java.i
+data/src/share/classes/javax/lang/model/type/TypeVariable.java.i
 data/test/tools/javac/limits/LongName.java.i
 data/test/tools/javac/diags/examples/ErrProcMessager/processors/AnnoProc.java.i
-data/test/tools/javac/NestedInnerClassNames.sh.i
-data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_6.java.i
-data/test/tools/javac/generics/6956758/T6956758pos.java.i
+data/test/tools/javac/synthesize/Double.java.i
+data/test/tools/javap/6937244/T6937244A.java.i
+data/test/tools/javac/diags/examples/IntfMethodCantHaveBody.java.i
 data/test/tools/javac/warnings/DivZero.lint.out.i
+data/src/share/classes/com/sun/tools/javac/util/PropagatedException.java.i
 data/src/share/classes/com/sun/tools/javah/resources/win32_x86.properties.i
+data/src/share/classes/com/sun/tools/javac/util/Constants.java.i
+data/test/tools/javac/literals/T6891079.out.i
 data/src/share/classes/com/sun/tools/apt/mirror/apt/RoundStateImpl.java.i
-data/THIRD_PARTY_README.i
+data/test/tools/javac/6979683/TestCast6979683_BAD38.java.i
 data/test/tools/javac/T6341023.java.i
 data/src/share/classes/com/sun/mirror/util/SimpleDeclarationVisitor.java.i
 data/test/tools/javah/T6994608.java.i
 data/test/tools/javac/QualifiedAccess/pack1/P2.java.i
 data/test/tools/javac/T6238612.java.i
 data/test/tools/javac/4917091/Test256a.out.i
-data/src/share/classes/com/sun/tools/javac/zip/ZipFileIndexEntry.java.i
+data/test/tools/javadoc/InlineTagsWithBraces.java.i
 data/src/share/classes/com/sun/tools/javadoc/MethodDocImpl.java.i
 data/test/tools/javac/scope/6225935/a/Named.java.i
 data/test/tools/javac/Paths/Class-Path.sh.i
-data/test/tools/javac/NonStaticFieldExpr3.out.i
+data/test/tools/javac/processing/errors/TestSuppression.java.i
 data/test/com/sun/javadoc/testMemberInheritence/inheritDist/B.java.i
-data/test/tools/javac/diags/examples/UnsupportedExoticID.java.i
+data/src/share/opensource/javac/doc/javac_lifecycle/ToDo.html.i
+data/test/tools/javac/diags/examples/ProcFileCreateLastRound/ProcFileCreateLastRound.java.i
 data/test/tools/javac/generics/bridge1/C.java.i
-data/test/tools/javac/literals/BadUnderscoreLiterals.6.out.i
 data/test/tools/javac/generics/6372782/Vector.java.i
-data/test/com/sun/javadoc/VersionNumber/p1/C.java.i
-data/test/tools/javac/T6900149.java.i
+data/test/tools/javac/options/T7022337.java.i
+data/test/tools/javac/varargs/7043922/T7043922.java.i
 data/test/tools/javac/diags/examples/UnmatchedProcessorOptions/processors/AnnoProc.java.i
 data/test/tools/apt/Scanners/MemberOrderApf.java.i
-data/test/tools/javac/Capture.java.i
-data/test/tools/javac/processing/model/element/TestMissingElement2/TestMissingGenericInterface2.java.i
-data/src/share/classes/com/sun/mirror/declaration/AnnotationMirror.java.i
-data/src/share/classes/com/sun/source/tree/InstanceOfTree.java.i
+data/src/share/classes/com/sun/tools/doclets/Taglet.java.i
+data/test/tools/javap/T6622232.java.i
+data/test/tools/javac/diags/examples/AnnotationsNotSupported.java.i
+data/test/tools/javac/generics/wildcards/AssignmentDifferentTypes3.java.i
 data/test/tools/javac/generics/inference/6650759/T6650759c.java.i
 data/test/tools/javac/processing/warnings/HelloWorld.java.i
 data/test/tools/javac/diags/examples/UncheckedImplement.java.i
 data/test/tools/javac/diags/examples/NoArgs.java.i
-data/test/tools/javac/generics/wildcards/neg/CastWarn12.java.i
+data/test/tools/javac/synthesize/Float.java.i
 data/src/share/classes/com/sun/tools/javadoc/ThrowsTagImpl.java.i
 data/test/com/sun/javadoc/testLinkTaglet/checkPkg/A.java.i
-data/test/tools/javac/typeAnnotations/newlocations/Parameters.java.i
 data/test/tools/javac/6734819/T6734819c.java.i
 data/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java.i
-data/test/tools/javac/diags/examples/PkgClashWithClass/p/q.java.i
-data/test/tools/javac/diags/examples/UncheckedPluralAdditional/UncheckedFilename1.java.i
+data/test/tools/javac/AnonInnerException_1.java.i
+data/test/com/sun/javadoc/testHiddenMembers/pkg/BaseClass.java.i
 data/src/share/classes/javax/lang/model/element/VariableElement.java.i
 data/test/tools/javac/generics/wildcards/neg/CastFail1.java.i
-data/test/tools/javac/Diagnostics/6722234/T6722234b.java.i
+data/test/tools/javap/T6715753.java.i
 data/test/tools/javac/scope/HashCollisionTest.java.i
 data/test/tools/javac/6717241/T6717241b.out.i
 data/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateTypeAnnotation.java.i
-data/test/tools/javac/Diagnostics/6860795/T6860795.out.i
+data/test/tools/javac/multicatch/Neg02.java.i
 data/src/share/classes/com/sun/mirror/apt/AnnotationProcessorListener.java.i
 data/test/tools/javac/multicatch/Neg05.out.i
-data/test/tools/javac/miranda/4686148/ConcreteTest.java.i
+data/test/tools/javac/synthesize/Long.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocument.java.i
+data/test/tools/javac/TryWithResources/PlainTry.out.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/LayoutParser.java.i
-data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_10.java.i
+data/test/tools/javac/warnings/Deprecation.java.i
+data/test/tools/javac/cast/6270087/T6270087neg.java.i
 data/test/tools/javac/generics/diamond/neg/Neg12.out.i
 data/test/tools/javac/scope/6225935/a/Private.java.i
-data/test/tools/javac/typeAnnotations/InnerClass.java.i
 data/src/share/classes/com/sun/tools/javac/util/Position.java.i
 data/test/tools/javac/diags/examples/UnsupportedUnderscoreLiteral.java.i
-data/test/tools/javac/diags/examples/NameClashSameErasureNoOverride.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletOutput.java.i
+data/src/share/classes/com/sun/tools/javac/main/CommandLine.java.i
+data/test/tools/javac/T6224167.out.i
 data/test/tools/javac/processing/warnings/gold_sv_none.out.i
 data/test/tools/javac/typeAnnotations/failures/target/NotTypeUse.out.i
 data/test/tools/javac/Verify.java.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java.i
+data/test/tools/javac/positions/T6402077.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/HelpWriter.java.i
 data/test/tools/javac/ProtectedInnerClass/p2/ProtectedInnerClass2.java.i
 data/src/share/classes/javax/lang/model/type/UnknownTypeException.java.i
 data/test/com/sun/javadoc/testCmndLineClass/pkg1/package.html.i
 data/test/tools/javac/generics/6245699/T6245699b.java.i
+data/test/tools/javac/diags/examples/FloatNumberTooSmall.java.i
 data/test/tools/javac/generics/typevars/6680106/T6680106.java.i
-data/test/tools/javac/Paths/6638501/test/SayHello.java.i
-data/test/tools/javac/T6705935.java.i
+data/test/tools/javac/diags/examples/DiamondNonGeneric.java.i
+data/test/tools/javac/depDocComment/SuppressDeprecation.java.i
+data/test/tools/javac/diags/examples/AnonymousClass.java.i
 data/test/com/sun/javadoc/testTagInheritence/pkg/TestTagInheritence.java.i
-data/test/tools/javac/diags/examples/TryWithoutCatchOrFinallyOrResource.java.i
+data/test/tools/javac/types/CastTest.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties.i
 data/test/tools/javac/processing/model/util/filter/Foo1.java.i
-data/test/tools/javac/DeepStringConcat.java.i
-data/src/share/classes/com/sun/tools/javac/model/FilteredMemberList.java.i
+data/test/tools/javac/DefiniteAssignment/T4721062a.java.i
+data/test/tools/javac/StringsInSwitch/RSCL1.out.i
 data/test/tools/javac/accessVirtualInner/b/B.java.i
+data/test/tools/javap/stackmap/T6271292.sh.i
 data/test/tools/javac/4846262/Test.sh.i
+data/test/tools/javac/cast/6548436/T6548436d.java.i
+data/test/tools/javac/diags/examples/IntfAnnotationCantHaveTypeParams.java.i
 data/test/tools/javac/diags/examples/VarargsClash.java.i
-data/test/tools/javadoc/generics/genericClass/Main.java.i
-data/test/tools/javac/diags/examples/VarargsAndOldArraySyntax.java.i
+data/test/tools/javap/typeAnnotations/Presence.java.i
 data/test/tools/javac/generics/diamond/7030150/Neg01.java.i
+data/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C3.java.i
 data/test/tools/javac/types/CastObjectToPrimitiveTest.out.i
-data/src/share/classes/com/sun/mirror/type/AnnotationType.java.i
-data/src/share/classes/com/sun/tools/javadoc/AnnotationValueImpl.java.i
-data/test/tools/javac/diags/examples/ExceptAlreadyCaught.java.i
-data/test/tools/javac/lint/Unchecked.java.i
+data/test/tools/javac/generics/inference/6638712/T6638712b.out.i
+data/test/tools/javac/generics/inference/6943278/T6943278.java.i
+data/test/tools/javac/failover/FailOver08.java.i
 data/test/tools/javac/varargs/6993978/T6993978neg.out.i
-data/test/tools/javac/generics/6985719/T6985719d.out.i
+data/test/tools/javac/processing/model/type/TestTypeKind.java.i
 data/test/tools/javadoc/nestedClass/NestedClassB.java.i
 data/test/tools/javac/typeAnnotations/failures/StaticFields.java.i
 data/test/tools/javac/processing/6634138/T6634138.java.i
 data/test/tools/javac/T4093617/T4093617.out.i
 data/test/tools/javac/enum/6384542/T6384542.java.i
 data/test/tools/javac/diags/examples/EnumsMustBeStatic.java.i
-data/src/share/classes/com/sun/tools/javac/util/Options.java.i
+data/test/tools/apt/Compile/WarnAPF.java.i
 data/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java.i
-data/test/tools/javac/scope/6225935/Bar.java.i
-data/src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationMaker.java.i
-data/test/tools/javac/api/6437999/Utf8.java.i
+data/test/tools/javac/generics/6372782/AbstractVector.java.i
+data/test/tools/javadoc/enum/docComments/Main.java.i
+data/test/tools/apt/mirror/declaration/ClassDecl.java.i
+data/test/tools/javac/api/6733837/T6733837.java.i
 data/make/Makefile-classic.i
 data/test/tools/apt/Misc/Misc.java.i
 data/src/share/classes/com/sun/tools/javap/StackMapWriter.java.i
 data/test/tools/javac/cast/6586091/T6586091.java.i
-data/test/tools/javac/generics/wildcards/neg/CastFail9.java.i
+data/test/tools/javac/processing/6430209/test1.java.i
 data/test/tools/javac/ForwardReference/T6676362a.java.i
-data/test/tools/javac/BadOptimization/DeadCode1.java.i
+data/test/tools/javac/processing/6365040/T6365040.java.i
 data/test/tools/javac/OverrideChecks/InterfaceImplements.java.i
 data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_8.java.i
 data/test/tools/javac/diags/examples/TrustMeOnReifiableVarargsParam.java.i
 data/test/tools/javac/SwitchScope.java.i
-data/test/tools/javac/generics/diamond/neg/Neg02.java.i
-data/test/tools/javac/AbstractOverride.java.i
+data/test/tools/javac/cast/6302956/T6302956.java.i
+data/test/tools/javac/T5090006/T5090006.java.i
 data/test/tools/javac/enum/forwardRef/TestEnum1.java.i
-data/test/tools/javac/DefiniteAssignment/DUBeforeDefined1.java.i
-data/test/tools/javac/FinalInitializer_2.java.i
+data/test/tools/javac/PrivateUplevelConstant.java.i
+data/test/tools/javac/parser/StringFoldingTest.java.i
+data/test/tools/javac/LocalClasses_1.java.i
+data/test/tools/javac/diags/examples/IncompatibleUpperBounds.java.i
+data/test/tools/javac/typeAnnotations/failures/common/arrayclass/InvalidLocation.java.i
 data/test/tools/javac/annotations/pos/Z4.java.i
-data/src/share/classes/sun/tools/javap/JavapPrinter.java.i
+data/test/tools/javac/expression/NullAppend2.java.i
 data/test/tools/javadoc/generics/throwsGeneric/pkg1/A.java.i
 data/test/tools/javac/generics/inference/4954546/T4954546.java.i
 data/test/tools/javac/TryWithResources/ExplicitFinal.java.i
 data/test/tools/javac/6668794/badSource/Test.java.i
-data/test/tools/javac/T6351767.java.i
-data/test/tools/javac/T6231246/T6231246.java.i
+data/test/tools/javac/tree/AbstractTreeScannerTest.java.i
 data/test/tools/javac/ConstantValues/ConstValInlining.java.i
-data/test/com/sun/javadoc/JavascriptWinTitle/p2/C2.java.i
-data/test/tools/javac/diags/examples/WarnForwardRef.java.i
-data/src/share/classes/com/sun/tools/apt/mirror/type/AnnotationTypeImpl.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java.i
-data/test/tools/javac/generics/6985719/T6985719e.java.i
+data/test/tools/javap/typeAnnotations/ArrayClassLiterals.java.i
+data/test/tools/javac/protectedAccess/ProtectedMemberAccess4.out.i
+data/test/tools/javac/diags/examples/NoJavaLang.java.i
+data/test/tools/javac/6464451/BigFinally.java.i
 data/test/tools/javap/6937244/T6937244.java.i
-data/src/share/classes/com/sun/tools/classfile/ConstantValue_attribute.java.i
+data/test/tools/javac/typeAnnotations/failures/common/parambounds/MissingAnnotationValue.out.i
 data/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateAnnotationValue.java.i
+data/test/tools/javac/T5003235/T5003235c.java.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java.i
 data/test/tools/javac/annotations/neg/Z14.java.i
-data/test/tools/javac/assert/Position.java.i
-data/test/com/sun/javadoc/testModifier/Interface.java.i
-data/make/netbeans/javah/build.xml.i
+data/test/tools/javac/generics/T4738171.java.i
+data/test/tools/javac/generics/diamond/7030150/Pos01.java.i
+data/test/tools/javac/DefiniteAssignment/DUSwitch.java.i
 data/test/tools/javac/EmptySwitch.java.i
-data/test/tools/javac/NestedInnerClassNames.java.i
+data/test/tools/javadoc/annotations/defaults/pkg1/A.java.i
 data/test/tools/javac/implicitThis/WhichImplicitThis5.java.i
-data/test/tools/javac/CyclicInheritance.sh.i
+data/test/tools/javac/processing/6350124/Marker.java.i
 data/src/share/classes/com/sun/tools/javadoc/TypeMaker.java.i
 data/test/tools/javac/depDocComment/DeprecatedDocComment2.java.i
 data/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java.i
 data/test/tools/javac/generics/6985719/T6985719a.out.i
-data/test/tools/javac/annotations/pos/package-info.java.i
+data/test/tools/javac/api/T6430241.java.i
 data/test/tools/javac/DefiniteAssignment/T4717164.java.i
-data/test/com/sun/javadoc/testLinkOption/pkg/C.java.i
-data/test/tools/javac/fatalErrors/NoJavaLang.out.i
-data/test/tools/javap/4870651/T4870651.java.i
+data/test/tools/javac/annotations/neg/Cycle2.java.i
+data/test/tools/javac/protectedInner/mypackage/Superclass.java.i
+data/test/tools/javac/typeAnnotations/failures/common/innertypeparams/InvalidLocation.java.i
 data/test/tools/javac/mandatoryWarnings/deprecated/Test4.out.i
-data/make/netbeans/common/shared.xml.i
+data/test/tools/javac/generics/inference/6650759/T6650759e.java.i
 data/test/tools/javac/generics/wildcards/neg/CastWarn9.java.i
+data/test/tools/apt/Compile/goldenFactory.txt.i
+data/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor8.java.i
 data/test/tools/javac/failover/FailOver10.java.i
 data/test/tools/javac/api/6468404/T6468404.java.i
-data/src/share/classes/com/sun/tools/classfile/CompilationID_attribute.java.i
+data/test/tools/javac/T6231246/T6231246.java.i
 data/test/tools/javac/OverrideChecks/ThrowsConflict.java.i
-data/test/tools/javac/varargs/Warn1.java.i
+data/src/share/opensource/javac/build.xml.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SimpleTaglet.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/declaration/InterfaceDeclarationImpl.java.i
 data/src/share/classes/com/sun/mirror/type/ReferenceType.java.i
 data/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java.i
 data/test/tools/javac/depDocComment/DeprecatedDocComment.out.i
-data/test/tools/javac/AccessMethods/UplevelPrivateConstants.java.i
+data/test/tools/javac/T6654037.java.i
 data/test/tools/javac/tree/TreePosTest.java.i
 data/test/tools/javap/4111861/A.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java.i
-data/test/tools/javac/api/ToolProvider/ToolProviderTest2.java.i
+data/test/tools/javac/processing/model/element/TestMissingElement2/TestMissingGenericInterface2.java.i
+data/test/tools/javac/diags/examples/ConstantSVUID.java.i
 data/test/tools/apt/Basics/FreshnessApf.java.i
 data/test/tools/javadoc/generics/wildcards/pkg1/A.java.i
-data/test/tools/javah/SuperClassConsts.java.i
-data/test/tools/javac/overrridecrash/A.java.i
+data/test/tools/javac/7086595/T7086595.out.i
+data/test/com/sun/javadoc/testSubTitle/pkg/package.html.i
 data/test/tools/javac/diags/examples/ProcSuspiciousClassName/ProcSuspiciousClassName.java.i
 data/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java.i
 data/test/tools/javac/generics/6372782/AdditionDefined.java.i
 data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignConstantBoolean.java.i
 data/test/tools/javap/T6980017.java.i
 data/test/tools/javac/generics/wildcards/pos/UncheckedCast1.java.i
-data/test/com/sun/javadoc/testHiddenMembers/pkg/SubClass.java.i
+data/test/tools/javac/enum/T5081785c.java.i
 data/test/tools/javac/tree/T6923080.java.i
 data/test/tools/javac/ShiftExpressionTest.java.i
 data/test/tools/javap/TestSuperclass.java.i
+data/test/tools/javac/diags/examples/Note.java.i
 data/test/tools/javac/generics/inference/5044646/T5044646.java.i
-data/test/tools/javac/unicode/NonasciiDigit.java.i
-data/test/tools/javadoc/lib/Tester.java.i
-data/test/tools/javac/processing/model/6341534/dir/package-info.java.i
+data/test/tools/javac/api/ToolProvider/ToolProviderTest2.java.i
+data/test/tools/javac/varargs/5088429/T5088429Neg02.java.i
 data/test/tools/javac/processing/model/6194785/T6194785.java.i
-data/test/tools/javac/6521805/p/Outer.java.i
+data/test/tools/javac/annotations/pos/ClassA.java.i
 data/test/tools/javac/BadOptimization/DeadCode2.java.i
 data/test/tools/javac/api/TestTreePath.java.i
-data/test/tools/javac/generics/6711619/T6711619b.java.i
+data/test/tools/javac/TryWithResources/TwrInference.java.i
 data/test/tools/apt/mirror/type/WildcardTyp.java.i
 data/test/tools/javac/VarDeclarationWithAssignment.java.i
-data/test/tools/javac/diags/examples/SuperNotAllowedInEnum.java.i
+data/test/tools/javac/generics/ExtendedRaw2.java.i
 data/src/share/classes/sun/tools/javap/StackMapData.java.i
 data/test/tools/javadoc/generics/genericInterface/expected.out.i
 data/test/tools/javadoc/annotations/annotatePackage/expected.out.i
-data/test/tools/javac/6402516/CheckLocalElements.java.i
-data/test/tools/javac/diags/examples/DiamondRedundantArgs.java.i
-data/test/com/sun/javadoc/constantValues/TestConstantValues.java.i
+data/test/tools/javac/6668794/badClass/B.java.i
+data/test/tools/javac/varargs/5088429/T5088429Neg01.java.i
+data/src/share/classes/javax/annotation/processing/RoundEnvironment.java.i
 data/test/tools/javac/generics/NameOrder.java.i
-data/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestException.java.i
+data/src/share/classes/com/sun/tools/javac/comp/ConstFold.java.i
 data/test/tools/javac/diags/examples/VarargsPlural/VarargsPlural.java.i
 data/test/tools/javac/diags/examples/ProcUseProcOrImplicit/sourcepath/p/SomeClass.java.i
 data/test/tools/javac/generics/T6660289.java.i
 data/test/tools/javac/processing/environment/round/Foo.java.i
 data/test/tools/javac/diags/examples/EnumsNotSupported.java.i
-data/test/tools/javac/diags/examples/DefaultAllowedInIntfAnnotationMember.java.i
+data/test/tools/javac/typeAnnotations/newlocations/MethodTypeArgs.java.i
+data/test/tools/javac/PackageClassAmbiguity/Bad.java.i
 data/test/tools/javac/meth/InvokeMH_BAD68.java.i
 data/test/com/sun/javadoc/MetaTag/p2/C2.java.i
 data/test/tools/javac/diags/examples/RepeatedInterface.java.i
-data/test/tools/apt/Scanners/scanner.sh.i
+data/test/com/sun/javadoc/testValueTag/pkg2/package.html.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/AbstractTreeWriter.java.i
-data/test/tools/javac/InterfaceObjectInheritance.java.i
+data/test/tools/javac/modules/ModuleAccessTest01.java.i
 data/test/tools/apt/Basics/p1/p2.java.i
-data/test/tools/javac/diags/examples/FloatNumberTooSmall.java.i
-data/make/test/contents.gold.txt.i
-data/make/test/TEST.ROOT.i
+data/test/tools/javac/ExtDirs/ext2/pkg2.jar.i
+data/test/com/sun/javadoc/testParamTaglet/pkg/C.java.i
+data/test/tools/javac/annotations/pos/AnnotationMethods.java.i
 data/test/tools/apt/mirror/declaration/ConstExpr.java.i
 data/test/tools/javac/6758789/T6758789a.out.i
 data/test/tools/javac/processing/messager/6362067/T6362067.out.i
+data/test/com/sun/javadoc/testValueTag/pkg1/CustomTagUsage.java.i
 data/test/tools/apt/Basics/MisMatch.java.i
-data/src/share/classes/com/sun/tools/javac/comp/Annotate.java.i
-data/test/tools/javac/generics/wildcards/neg/CastFail4.java.i
-data/test/tools/javac/CyclicInheritance6/p1/C.java.i
-data/test/tools/javac/GoodCovar.java.i
+data/test/tools/javap/T4075403.java.i
+data/test/tools/javac/generics/wildcards/neg/CastFail4.java.i
+data/test/tools/javac/generics/Varargs.java.i
 data/test/tools/javac/protectedAccess/ProtectedAccess_3.java.i
-data/make/netbeans/apt/nbproject/project.xml.i
-data/test/tools/javac/processing/werror/WErrorLast.out.i
-data/test/tools/javac/generics/T4711570.java.i
+data/test/tools/javac/ClassFileModifiers/MemberModifiers.out.i
+data/test/com/sun/javadoc/AccessFrameTitle/p2/C2.java.i
+data/test/tools/javac/generics/diamond/6996914/T6996914a.java.i
 data/test/tools/apt/Basics/NestedClassAnnotations.java.i
 data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_15.java.i
-data/test/com/sun/javadoc/testDocRootInlineTag/pkg/C.java.i
-data/test/tools/javac/processing/model/type/MirroredTypeEx/Plurality.java.i
+data/test/tools/javac/6948381/npe/A.java.i
+data/test/tools/javac/typeAnnotations/newlocations/Parameters.java.i
 data/test/tools/javac/processing/model/util/filter/ExpectedElementCounts.java.i
-data/src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java.i
 data/test/tools/javac/generics/6192945/Neg3.out.i
-data/src/share/classes/com/sun/tools/doclets/standard/Standard.java.i
-data/test/tools/javac/typeAnnotations/failures/common/typeparams/MissingAnnotationValue.java.i
+data/src/share/classes/com/sun/tools/apt/resources/apt.properties.i
 data/test/tools/javac/generics/wildcards/neg/CastFail17.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DirectoryManager.java.i
+data/THIRD_PARTY_README.i
 data/test/tools/javac/api/6608214/T6608214.java.i
 data/test/com/sun/javadoc/testTypeParams/pkg/Parent.java.i
+data/test/tools/javac/T6411379.java.i
 data/src/share/classes/com/sun/tools/javap/AttributeWriter.java.i
-data/test/tools/javadoc/generics/tparamTagOnType/expected.out.i
+data/test/com/sun/javadoc/DocRootSlash/p2/package.html.i
 data/test/tools/javap/T6715251.java.i
-data/test/tools/javac/annotations/pos/TrailingComma.java.i
+data/test/tools/javadoc/imports/MissingImport.java.i
 data/test/tools/javac/diags/examples/InvalidInstanceof.java.i
-data/test/tools/javac/6341866/Anno.java.i
-data/test/tools/apt/mirror/declaration/AnnoTypeElemDecl.java.i
+data/test/tools/apt/mirror/declaration/pkg1/pkg2/package.html.i
+data/test/tools/javac/mandatoryWarnings/unchecked/Test1.out.i
+data/src/share/classes/javax/lang/model/element/Parameterizable.java.i
 data/src/share/classes/com/sun/tools/javac/parser/Lexer.java.i
+data/src/share/classes/com/sun/tools/javac/util/Assert.java.i
 data/src/share/classes/javax/annotation/processing/AbstractProcessor.java.i
 data/test/tools/javac/6341866/T6341866.java.i
-data/src/share/classes/com/sun/tools/javah/resources/SunOS_sparcv9.properties.i
+data/test/tools/javac/DefiniteAssignment/ThrowBeforeTryFinally.java.i
+data/test/tools/javac/diags/CheckExamples.java.i
 data/test/tools/javac/generics/6372782/Value.java.i
 data/test/jprt.config.i
-data/test/tools/javac/miranda/4686811/p1/C.java.i
 data/src/share/classes/com/sun/javadoc/AnnotationDesc.java.i
-data/test/tools/javac/diags/examples/StringSwitchNotSupported.java.i
+data/test/tools/javac/generics/6495506/A.java.i
 data/test/tools/javac/generics/wildcards/neg/CastFail10.java.i
 data/test/tools/javac/scope/7017664/CompoundScopeTest.java.i
 data/test/tools/javac/annotations/pos/Local.java.i
-data/test/tools/javac/ImportCycle/foo/Middle2.java.i
+data/test/tools/javac/diags/examples/VarargsAndOldArraySyntax.java.i
 data/test/tools/javac/diags/examples/InterfaceNotAllowed.java.i
 data/test/com/sun/javadoc/DocRootSlash/DocRootSlash.java.i
 data/test/tools/javac/diags/examples/DeprecatedPluralAdditional/DeprecatedClass.java.i
 data/test/tools/javac/unit/util/convert/EnclosingCandidates.java.i
 data/src/share/classes/com/sun/tools/javac/comp/Infer.java.i
-data/test/tools/javac/OverrideChecks/6738538/T6738538b.java.i
+data/test/tools/javac/diags/examples/AnnoNotValidForType.java.i
 data/test/tools/javac/meth/InvokeMH.java.i
-data/test/tools/javac/diags/examples/DuplicateClass.java.i
+data/test/tools/javac/processing/warnings/TestSourceVersionWarnings.java.i
 data/test/tools/javac/synthesize/Test.java.i
 data/test/tools/javac/diags/examples/WarningAndWerror.java.i
 data/test/tools/javac/enum/AbstractEnum1.java.i
 data/test/tools/javac/protectedAccess/ProtectedMemberAccess2.java.i
-data/src/share/classes/com/sun/tools/javap/package.html.i
+data/test/tools/javac/diags/examples/DeprecatedPluralAdditional/DeprecatedFilename.java.i
 data/test/tools/javadoc/annotations/shortcuts/pkg1/Value.java.i
-data/test/tools/javac/generics/syntax/6318240/BarNeg2a.java.i
+data/test/tools/javac/unicode/NonasciiDigit.java.i
 data/test/tools/javac/synthesize/Serializable.java.i
-data/test/com/sun/javadoc/testBreakIterator/pkg/BreakIteratorTest.java.i
+data/test/tools/javac/processing/options/Xprint.java.i
 data/test/tools/javac/T6394563.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/Foo2.java.i
+data/src/share/classes/sun/tools/javap/MethodData.java.i
 data/src/share/classes/com/sun/tools/javac/resources/javac.properties.i
+data/src/share/classes/com/sun/tools/javadoc/ParamTagImpl.java.i
 data/test/tools/javac/generics/TyparamStaticScope2.java.i
-data/test/tools/javac/api/T6501502.java.i
+data/test/tools/javadoc/generics/tparamCycle/pkg1/LikeEnum.java.i
+data/test/tools/javac/generics/6969184/T6969184.java.i
+data/test/tools/javac/NullQualifiedNew.java.i
 data/test/tools/javac/diags/examples/NativeMethodCantHaveBody.java.i
 data/test/tools/javac/generics/syntax/6318240/BarNeg1.java.i
 data/test/tools/javac/staticImport/PrivateStaticImport.java.i
+data/test/tools/javac/annotations/neg/AnnComma.java.i
 data/test/tools/javac/enum/T5075242.java.i
-data/src/share/classes/com/sun/javadoc/ProgramElementDoc.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ParamTaglet.java.i
+data/test/tools/javac/diags/examples/InheritFromFinal.java.i
+data/src/share/classes/com/sun/tools/javac/util/ForwardingDiagnosticFormatter.java.i
 data/test/tools/javac/annotations/neg/Scope.java.i
 data/test/tools/javac/ClassLiterals/evalinit/java/lang/Integer.java.i
+data/src/share/classes/com/sun/javadoc/RootDoc.java.i
 data/test/com/sun/javadoc/JavascriptWinTitle/overview.html.i
 data/test/tools/javac/4880220/T4880220.error.out.i
 data/test/tools/javac/T6358166.java.i
-data/src/share/classes/com/sun/tools/classfile/Type.java.i
-data/test/tools/javadoc/MethodLinks.java.i
-data/test/tools/javac/crossPackageImpl/CrossPackageImplA.java.i
+data/test/tools/javac/foreach/T6500701.java.i
+data/test/tools/javac/depOverrides/doccomment/Test1.java.i
+data/test/tools/javadoc/annotations/defaults/Main.java.i
+data/test/tools/javac/synthesize/Cloneable.java.i
+data/test/tools/javadoc/NoStar.java.i
 data/test/tools/javac/api/6420464/T6420464.java.i
 data/src/share/classes/com/sun/source/tree/TreeVisitor.java.i
-data/test/tools/apt/Compile/Round1Apf.java.i
-data/src/share/classes/com/sun/tools/javadoc/ModifierFilter.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/titlebar.gif.i
+data/test/tools/javac/annotations/T7073477.java.i
+data/test/tools/javac/generics/6946618/T6946618c.java.i
+data/test/tools/javac/multicatch/model/UnionTypeInfo.java.i
 data/test/tools/javac/DefiniteAssignment/DefAssignNestedArg.java.i
 data/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java.i
-data/test/tools/javac/processing/6499119/ClassProcessor.java.i
+data/test/com/sun/javadoc/testHtmlTag/TestHtmlTag.java.i
 data/test/tools/javac/InterfaceInInner.java.i
-data/test/tools/javac/FloatingPointChanges/BadConstructorModifiers.java.i
+data/test/tools/javac/diags/examples/OverrideWeakerAccess.java.i
 data/src/share/classes/com/sun/javadoc/MethodDoc.java.i
 data/src/share/classes/com/sun/tools/javac/parser/ScannerFactory.java.i
-data/test/tools/javac/enum/TrailingComma.java.i
-data/src/share/classes/javax/lang/model/util/package-info.java.i
+data/test/tools/javac/typeAnnotations/failures/common/receiver/InvalidLocation.java.i
+data/test/tools/javac/generics/wildcards/neg/CastWarn13.java.i
 data/test/tools/javac/implicitThis/NewBeforeOuterConstructed2.java.i
-data/src/share/classes/com/sun/tools/javah/resources/Linux_ppc.properties.i
+data/src/share/classes/com/sun/tools/apt/mirror/type/PrimitiveTypeImpl.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BaseExecutableMemberTaglet.java.i
 data/test/com/sun/javadoc/testValueTag/pkg2/Class3.java.i
 data/test/tools/javac/failover/FailOver08.out.i
-data/test/tools/javac/annotations/pos/NType.java.i
-data/test/tools/javah/MissingParamClassException.java.i
-data/test/tools/javac/NestedDuplicateLabels.java.i
+data/test/tools/javac/miranda/4686148/ConcreteTest.java.i
+data/test/tools/javac/T6435291/T.jcod.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java.i
 data/src/share/classes/com/sun/tools/javac/nio/PathFileObject.java.i
 data/src/share/classes/com/sun/javadoc/AnnotationValue.java.i
@@ -4259,114 +4276,129 @@ data/test/tools/javac/generics/inference/6302954/T6456971.java.i
 data/make/netbeans/javap/build.xml.i
 data/test/tools/javac/diags/examples/CallMustBeFirst.java.i
 data/test/tools/javac/annotations/neg/Cycle1.java.i
-data/src/share/classes/com/sun/tools/javap/ConstantWriter.java.i
+data/test/tools/javac/ignored.jtx.i
 data/test/tools/javac/NonStaticFieldExpr1.out.i
 data/test/tools/javac/assert/Attach.java.i
 data/test/tools/javac/generics/inference/6838943/T6838943.out.i
 data/test/com/sun/javadoc/testHrefInDocComment/TestHrefInDocComment.java.i
-data/test/tools/javac/generics/wildcards/T5097548b.java.i
+data/src/share/classes/com/sun/source/tree/LiteralTree.java.i
+data/test/tools/javac/annotations/pos/NType.java.i
+data/test/tools/javac/typeAnnotations/failures/IncompleteVararg.out.i
 data/test/tools/javac/options/T6900037.out.i
+data/test/tools/javac/DefiniteAssignment/DUBeforeDefined1.java.i
 data/test/tools/javac/diags/examples/DeprecatedPlural/DeprecatedPlural.java.i
 data/test/tools/javac/ImportCycle/foo/Top.java.i
 data/test/tools/javac/foreach/T6682380.java.i
-data/test/tools/javac/enum/enumSwitch/Color2.java.i
+data/test/tools/javac/generics/6711619/T6711619b.out.i
 data/test/tools/javac/processing/model/util/NoSupers.java.i
+data/test/tools/javac/cast/6714835/T6714835.java.i
+data/test/com/sun/javadoc/T6735320/T6735320.java.i
 data/test/tools/javac/miranda/T4279316c.java.i
-data/test/tools/apt/mirror/type/EnumTyp.java.i
-data/test/tools/javac/meth/InvokeDyn.java.i
+data/test/tools/javadoc/BooleanConst.java.i
+data/src/share/classes/com/sun/tools/javap/Messages.java.i
 data/test/tools/javac/generics/inference/6638712/T6638712c.out.i
-data/test/tools/javac/staticImport/6695838/a/FooInterface.java.i
 data/test/tools/javac/generics/inference/5044646/p1/A1.java.i
-data/test/tools/javac/api/6411310/T6411310.java.i
+data/test/tools/javac/generics/wildcards/6437894/A.java.i
 data/test/tools/javac/T6956462/TestClass.java.i
 data/src/share/classes/com/sun/tools/classfile/RuntimeVisibleAnnotations_attribute.java.i
-data/test/tools/javac/InitializerCompletion_3.java.i
+data/test/tools/javac/generics/typevars/6182630/T6182630d.java.i
+data/test/tools/javac/Parens4.java.i
 data/test/tools/javap/typeAnnotations/JSR175Annotations.java.i
 data/test/tools/javac/6948381/npe/B.java.i
-data/test/tools/javac/CyclicInheritance.out.i
+data/test/tools/javac/typeAnnotations/failures/IncompleteArray.out.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DeprecatedAPIListBuilder.java.i
-data/test/tools/javac/treeannotests/TA.java.i
+data/test/tools/javac/6979683/TestCast6979683_BAD39.java.i
 data/test/tools/javac/diags/examples/AlreadyDefinedStaticImport/AlreadDefinedStaticImport.java.i
 data/test/com/sun/javadoc/testSummaryHeading/C.java.i
+data/test/tools/javac/FinallyWarn.java.i
 data/test/tools/javac/generics/typevars/5061359/T5061359b.java.i
 data/test/tools/javac/generics/wildcards/neg/CastFail14.java.i
 data/test/tools/javac/positions/T6404194.java.i
 data/test/tools/javac/typeAnnotations/failures/common/rest/InvalidLocation.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java.i
-data/test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java.i
-data/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C4.java.i
+data/test/tools/javac/diags/examples/ForeachNotApplicable.java.i
+data/test/tools/javac/protectedAccess/ProtectedMemberAccess4.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassDocCatalog.java.i
 data/test/tools/javac/processing/model/6341534/T6341534.java.i
-data/src/share/classes/com/sun/tools/classfile/DescriptorException.java.i
+data/test/tools/javac/diags/examples/PackageInfoAlreadySeen/package-info.java.i
 data/test/tools/javac/typeAnnotations/failures/IncompleteVararg.java.i
 data/test/tools/javac/processing/errors/TestErrorCount.java.i
-data/src/share/classes/com/sun/source/tree/ImportTree.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationImpl.java.i
+data/test/tools/javac/diags/examples/CountErrorPlural.java.i
 data/test/tools/javac/AccessMethods/BitwiseAssignment.java.i
-data/test/com/sun/javadoc/testThrowsHead/C.java.i
-data/test/tools/javac/api/6418694/T6418694.java.i
+data/test/tools/javac/generics/diamond/neg/Neg10.java.i
+data/test/tools/javadoc/generics/genericInnerAndOuter/pkg1/X.java.i
+data/test/tools/javac/OverrideChecks/StaticOverride.java.i
 data/test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java.i
 data/src/share/classes/com/sun/tools/javac/nio/JavacPathFileManager.java.i
 data/test/tools/javah/compareTest/FindNativeFiles.java.i
 data/src/share/classes/com/sun/javadoc/SerialFieldTag.java.i
-data/test/tools/javac/TryWithResources/PlainTry.java.i
-data/test/tools/javac/T5090006/broken.jar.i
+data/test/tools/javac/depOverrides/doccomment/Test1B.out.i
+data/test/tools/javac/generics/GenericThrowable.java.i
 data/src/share/classes/com/sun/tools/classfile/AnnotationDefault_attribute.java.i
 data/test/tools/javac/typeAnnotations/failures/common/wildcards/MissingAnnotationValue.java.i
-data/test/tools/javac/diags/examples/UnreportedExceptionDefaultConstructor.java.i
 data/src/share/classes/com/sun/source/tree/MethodTree.java.i
+data/make/test/contents.sh.i
 data/test/tools/javac/diags/MessageInfo.java.i
+data/test/tools/javac/6863465/T6863465b.out.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/LinkFactoryImpl.java.i
-data/test/tools/javac/NonStaticFieldExpr4d.java.i
+data/test/tools/javac/diags/examples/AlreadyDefinedClinit.java.i
+data/test/tools/javac/generics/6182950/T6182950b.java.i
 data/test/tools/javac/limits/ArrayDims2.java.i
 data/test/tools/javac/6917288/T6917288.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets.properties.i
-data/test/com/sun/javadoc/testSuperclassInSerialForm/TestSuperClassInSerialForm.java.i
-data/test/tools/javac/ProtectedInnerClass/ProtectedInnerClass_2.java.i
-data/test/tools/javac/typeAnnotations/failures/common/rest/DuplicateAnnotationValue.out.i
-data/test/tools/javac/cast/6795580/T6795580.java.i
+data/src/share/classes/com/sun/source/tree/NewClassTree.java.i
+data/test/tools/javah/MissingParamClassException.java.i
+data/test/tools/javac/annotations/TestAnnotationPackageInfo.java.i
+data/test/tools/javac/QualifiedNew.java.i
 data/test/tools/javac/ArrayCast.java.i
-data/test/tools/javac/annotations/neg/Z12.java.i
+data/test/tools/javap/T7004698.java.i
+data/src/share/classes/com/sun/mirror/type/TypeVariable.java.i
+data/test/tools/javac/6627362/T6627362.java.i
 data/src/share/classes/sun/tools/javap/Main.java.i
 data/test/com/sun/javadoc/testTopOption/pkg/AnnotationType.java.i
 data/test/tools/javac/EarlyAssertWrapper.java.i
-data/test/tools/javac/generics/compat/CovariantCompat2.java.i
+data/test/tools/javac/diags/examples/IntfAnnotationsCantHaveTypeParams.java.i
+data/test/tools/javac/ProtectedInnerClass/ProtectedInnerClass_2.java.i
 data/test/tools/javac/importChecks/ImportCanonical2.java.i
-data/test/tools/javac/diags/examples/UncheckedPluralAdditional/UncheckedPluralAdditional.java.i
+data/test/tools/javac/ClassLiterals/evalinit/ClassLiteralEvalInit.java.i
 data/test/tools/javac/typeAnnotations/newlocations/ConstructorTypeArgs.java.i
 data/test/tools/javac/miranda/T4666866.java.i
 data/test/tools/javac/generics/6985719/T6985719c.out.i
 data/test/tools/javac/generics/compat/VisibleBridge.java.i
+data/src/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java.i
 data/test/tools/javadoc/generics/genericInnerAndOuter/pkg1/O.java.i
 data/test/tools/javac/processing/6413690/T6413690.java.i
 data/test/tools/javac/processing/6512707/TestAnnotation.java.i
-data/test/tools/javac/boxing/T6614974.java.i
+data/test/tools/javac/unicode/UnicodeAtEOL.java.i
 data/test/tools/javac/SuperField.java.i
-data/src/share/classes/com/sun/source/tree/MemberSelectTree.java.i
+data/test/tools/javac/protectedInner/InnerClass.java.i
 data/test/tools/javac/diags/examples/TrustMeOnVirtualMethod.java.i
 data/test/tools/javac/depOverrides/doccomment/A.java.i
-data/test/com/sun/javadoc/testSubTitle/TestSubTitle.java.i
+data/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css.i
 data/test/tools/javac/generics/typevars/6486430/T6486430.java.i
-data/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java.i
-data/src/share/classes/com/sun/tools/javac/model/JavacSourcePosition.java.i
+data/test/tools/javac/cast/6932571/T6932571neg.out.i
+data/test/tools/javac/generics/wildcards/6330931/T6330931.java.i
+data/test/tools/javac/diags/examples/DotClassExpected.java.i
 data/test/tools/javac/annotations/6214965/T6214965.java.i
 data/src/share/classes/com/sun/tools/classfile/Attribute.java.i
 data/test/tools/javac/generics/rawOverride/AttributeSet.java.i
-data/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ClassUseTest2.java.i
+data/test/tools/javac/generics/typevars/6182630/T6182630f.java.i
 data/test/tools/javac/ConditionalArgTypes_2.java.i
 data/test/tools/javac/scope/6225935/a/Star.java.i
 data/test/tools/javac/T6900037.out.i
-data/test/tools/javadoc/NoStar.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java.i
 data/test/tools/javac/6257443/package-info.java.i
-data/test/tools/javac/processing/6512707/TestEnum.java.i
+data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/MultiTypeParameters.java.i
+data/test/tools/javac/varargs/6730476/T6730476b.java.i
 data/test/tools/javac/diags/examples/EnumConstRequired.java.i
-data/test/tools/javac/diags/examples/NoInterfaceHere.java.i
-data/test/tools/javac/accessVirtualInner/c/C.java.i
-data/test/tools/javac/generics/wildcards/6651719/T6651719a.java.i
+data/test/tools/javac/T6554097.out.i
+data/test/tools/javac/constDebug/ConstDebug.sh.i
+data/test/tools/javadoc/sourceOption/SourceOption.java.i
 data/test/tools/javac/unicode/SubChar.java.i
 data/test/tools/javac/rawDiags/Warning.java.i
 data/src/share/classes/com/sun/mirror/util/DeclarationScanner.java.i
-data/test/tools/javac/QualifiedAccess/QualifiedAccess_2.java.i
+data/test/com/sun/javadoc/testValueTag/pkg1/Class2.java.i
 data/make/tools/Jigsaw/FpkgTask.java.i
 data/test/tools/javac/policy/A.java.i
 data/test/tools/javac/processing/6994946/TestProcessor.java.i
@@ -4376,104 +4408,112 @@ data/test/tools/javac/6758789/T6758789b.out.i
 data/test/tools/javac/processing/6414633/A.java.i
 data/test/tools/javac/generics/ParenVerify.java.i
 data/test/tools/javap/ExtPath.java.i
-data/test/tools/javac/TryWithResources/PlainTry.out.i
+data/test/com/sun/javadoc/testDocRootLink/pkg2/package.html.i
+data/src/share/classes/com/sun/tools/javap/package.html.i
 data/test/tools/javac/annotations/6365854/evolve/TestAnnotation.java.i
 data/test/com/sun/javadoc/testLeadingSpaces/LeadingSpaces.java.i
 data/test/com/sun/javadoc/testHtmlDocument/testLink.html.i
-data/src/share/classes/com/sun/tools/classfile/ModuleClass_attribute.java.i
-data/test/tools/javac/diags/examples/SourceNoBootclasspath.java.i
+data/test/tools/javac/6734819/T6734819b.java.i
+data/test/tools/apt/mirror/declaration/AnnoTypeElemDecl.java.i
 data/test/tools/javac/generics/7007615/acc1/p2/E.java.i
-data/test/tools/javac/T6366196.java.i
-data/test/tools/javac/generics/bridge1/D.java.i
+data/src/share/classes/javax/tools/ModuleFileManager.java.i
+data/test/tools/javac/generics/inference/6638712/T6638712a.out.i
 data/test/tools/javac/7024568/T7024568.out.i
 data/test/tools/javac/diags/examples/ProcUseImplicit/sourcepath/p/SomeClass.java.i
-data/test/com/sun/javadoc/testHref/package-list.i
-data/src/share/classes/com/sun/mirror/apt/RoundCompleteListener.java.i
+data/test/tools/javac/T4906100.out.i
+data/test/tools/javac/DefiniteAssignment/DefAssignAfterIf_1.java.i
 data/test/tools/javac/processing/options/testPrintProcessorInfo/Test.java.i
-data/src/share/classes/javax/lang/model/type/ErrorType.java.i
-data/test/tools/javac/InnerClassesAttribute/Outside$1$Inside.class.i
+data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_2.java.i
+data/test/tools/javac/SynthName1.java.i
 data/test/tools/javadoc/generics/supertypes/pkg1/B.java.i
 data/test/tools/javac/typeAnnotations/failures/StaticMethods.java.i
 data/test/tools/javac/diags/examples/AnnotationMustBeNameValue.java.i
-data/make/test/HelloWorld.javadoc.gold.txt.i
-data/test/tools/javac/scope/6225935/Baz.java.i
+data/test/com/sun/javadoc/testSuperclassInSerialForm/TestSuperClassInSerialForm.java.i
+data/test/tools/javac/enum/T6724345.java.i
+data/test/com/sun/javadoc/dupThrowsTags/TestDupThrowsTags.java.i
+data/test/tools/javadoc/generics/tparamTagOnType/expected.out.i
 data/test/tools/javac/unicode/NonasciiDigit2.java.i
 data/src/share/classes/com/sun/javadoc/ParameterizedType.java.i
 data/test/tools/javac/T5024091/T5024091.out.i
 data/test/tools/javac/generics/inference/6638712/T6638712d.java.i
 data/test/tools/javac/processing/errors/TestParseErrors/TestParseErrors.java.i
-data/test/tools/javadoc/enum/enumType/Main.java.i
 data/test/tools/javac/diags/examples/WhereTypeVar.java.i
 data/test/tools/javac/diags/examples/ProcFileReopening/processors/AnnoProc.java.i
-data/test/tools/javac/diags/Example.java.i
+data/test/tools/javac/sourcePath/SourcePath.java.i
 data/test/tools/apt/Compile/servicesRound4.i
-data/test/tools/javac/processing/errors/Foo.java.i
-data/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C3.java.i
+data/test/tools/javac/CyclicInheritance6/p1/C.java.i
 data/test/tools/javac/generics/wildcards/T6450290.java.i
-data/src/share/classes/javax/tools/overview.html.i
+data/test/tools/javac/processing/errors/TestParseErrors/TestParseErrors.out.i
 data/test/tools/javac/diags/RunExamples.java.i
-data/test/tools/javac/enum/6384542/T6384542.out.i
-data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/MultiTypeParameters.java.i
+data/test/tools/javac/T6413876.java.i
+data/test/tools/javac/generics/6207386/T6207386.java.i
 data/test/tools/javadoc/annotations/shortcuts/Main.java.i
-data/test/tools/javac/annotations/neg/DupTarget.java.i
-data/test/tools/javac/boxing/NoBoxingLong.java.i
-data/test/tools/javac/generics/CastCrash.java.i
+data/test/tools/javac/unicode/SupplementaryJavaID3.java.i
+data/test/tools/javac/generics/inference/5042462/T5042462.java.i
 data/src/share/classes/com/sun/mirror/apt/RoundState.java.i
 data/test/tools/javac/innerClassFile/y/R1.java.i
-data/test/tools/javac/literals/BadBinaryLiterals.java.i
-data/test/tools/javac/generics/inference/6650759/T6650759b.java.i
+data/test/tools/javac/T6214885a.out.i
+data/test/tools/javac/inheritedAccess/MethodReferenceQualification_1.java.i
 data/test/tools/javac/diags/examples/ClashesWith.java.i
-data/src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java.i
+data/test/tools/javac/6521805/p/Sub.java.i
 data/test/tools/javac/AnonStaticMember_2.out.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MethodFinder.java.i
+data/src/share/classes/javax/lang/model/util/SimpleTypeVisitor8.java.i
+data/test/tools/javac/mandatoryWarnings/deprecated/P.java.i
 data/test/tools/javac/accessVirtualInner/Main.java.i
-data/test/tools/javac/ExtDirs/ext3/pkg2.jar.i
+data/src/share/classes/com/sun/mirror/declaration/MethodDeclaration.java.i
+data/test/tools/javac/generics/6192945/Neg3.java.i
 data/test/com/sun/javadoc/testTypeParams/pkg/Foo4.java.i
+data/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java.i
 data/test/tools/javac/policy/test2/byfile.AB.out.i
 data/test/tools/javac/annotations/6359949/T6359949a.java.i
-data/test/tools/javac/innerClassFile/y/Main.java.i
+data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ThrowsTaglet.java.i
+data/test/tools/javap/T6474890.java.i
 data/test/tools/javac/positions/T6264029.out.i
-data/test/tools/javac/Diagnostics/6722234/T6722234d.java.i
+data/test/tools/javac/diags/examples/LocalVarNeedsFinal.java.i
 data/test/tools/javac/generics/wildcards/neg/CastFail11.java.i
-data/test/tools/javac/ClassLiterals/LiteralInterfaceImpl.java.i
-data/test/tools/javac/generics/6476118/T6476118c.out.i
-data/test/tools/javac/generics/inference/6468384/T6468384.java.i
+data/src/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java.i
+data/test/tools/javac/rawDiags/Note.out.i
 data/test/tools/javac/options/T6900037.java.i
 data/test/tools/javac/processing/warnings/UseImplicit/p/C2.java.i
 data/test/tools/javac/generics/rare/Rare5.java.i
 data/test/tools/javac/ThrowsIntersection_3.java.i
-data/src/share/classes/com/sun/tools/javac/parser/Keywords.java.i
-data/test/tools/javac/OverrideChecks/StaticOverride.java.i
-data/test/tools/javac/diags/examples/Error.java.i
+data/src/share/classes/com/sun/tools/classfile/LocalVariableTypeTable_attribute.java.i
+data/src/share/classes/com/sun/tools/apt/mirror/type/AnnotationTypeImpl.java.i
+data/test/tools/javadoc/enum/enumType/Main.java.i
 data/test/tools/apt/mirror/type/ClassTyp.java.i
-data/test/tools/javac/diags/examples/FloatNumberTooLarge.java.i
+data/test/tools/javac/diags/examples/PkgClashWithClass/p/q.java.i
 data/test/tools/javac/T6873845.java.i
+data/test/tools/javac/failover/FailOver14.out.i
 data/test/tools/javac/generics/inference/6302954/X.java.i
 data/test/tools/javac/staticQualifiedNew/p2/X.java.i
 data/test/tools/apt/mirror/declaration/pkg1/AClass.java.i
-data/test/tools/javadoc/annotations/annotatePackage/pkg2/package.html.i
+data/test/tools/javac/generics/6372782/MultiplicationDefined.java.i
 data/test/tools/javac/diags/examples/PathElementNotFound.java.i
 data/test/com/sun/javadoc/DocRootSlash/overview.html.i
 data/test/tools/javac/api/6422327/T6422327.java.i
-data/test/tools/javac/NullQualifiedNew.java.i
+data/test/tools/javac/generics/7022054/T7022054neg1.out.i
 data/test/tools/javac/generics/wildcards/neg/CastFail5.java.i
+data/test/tools/javac/7023703/T7023703neg.out.i
 data/test/tools/javac/diags/examples/CyclicAnnoElement.java.i
 data/src/share/classes/com/sun/tools/apt/comp/AnnotationProcessingError.java.i
 data/test/tools/javac/multicatch/Pos04.java.i
-data/src/share/classes/javax/lang/model/element/TypeParameterElement.java.i
+data/test/tools/javac/typeAnnotations/newlocations/LocalVariables.java.i
 data/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java.i
-data/test/com/sun/javadoc/testNavagation/pkg/A.java.i
-data/test/tools/javac/generics/typevars/6486430/T6486430a.java.i
+data/src/share/classes/sun/tools/javap/CPX2.java.i
+data/test/tools/javac/multicatch/Pos01.java.i
 data/test/tools/javac/NonStaticFieldExpr4c.java.i
-data/test/tools/javac/6547131/T.java.i
+data/test/tools/javac/EmptyDocComments.java.i
+data/test/tools/apt/Scanners/TestEnum.java.i
 data/test/tools/javac/diags/examples/ResourceNotApplicableToType.java.i
 data/test/tools/javac/annotations/6365854/TestAnnotation.java.i
-data/test/tools/javac/api/TestDocComments.java.i
+data/test/tools/javac/diags/examples/UncheckedCast.java.i
 data/src/share/classes/com/sun/tools/classfile/Annotation.java.i
-data/test/tools/javah/T6893943.java.i
-data/test/tools/javac/6330920/T6330920.java.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java.i
-data/test/com/sun/javadoc/testBadPackageFileInJar/badPackageFileInJar.jar.i
+data/test/tools/javac/processing/6365040/ProcFoo.java.i
+data/test/com/sun/javadoc/testValueTag/pkg1/Class1.java.i
+data/test/tools/javac/generics/inference/5073060/T5073060.java.i
+data/test/tools/javac/modules/ModuleProvidesAttributeTest01.java.i
+data/src/share/classes/com/sun/tools/javac/util/AbstractLog.java.i
+data/test/tools/javac/processing/loader/testClose/TestClose.java.i
 data/test/tools/javap/T4459541.java.i
 data/src/share/classes/com/sun/tools/doclets/formats/html/AllClassesFrameWriter.java.i
 data/test/tools/javac/NameCollision.sh.i
@@ -4483,34 +4523,37 @@ data/test/tools/javac/processing/filer/foo/bar/FuBar.java.i
 data/test/tools/javac/TryWithResources/BadTwrSyntax.java.i
 data/test/com/sun/javadoc/testGroupOption/pkg1/C.java.i
 data/test/tools/javac/scope/6225935/Test.java.i
-data/src/share/classes/javax/annotation/processing/SupportedOptions.java.i
+data/test/tools/javac/T6595666.java.i
 data/test/tools/javac/annotations/neg/Z8.java.i
-data/test/tools/javadoc/generics/genericSuper/pkg1/A.java.i
 data/test/tools/javac/DeclarationStatementInline.java.i
 data/test/tools/javac/generics/SelfImplement.java.i
 data/test/tools/javac/AccessMethods/InternalHandshake.java.i
 data/test/tools/javac/multicatch/T6978574.java.i
 data/test/tools/javac/InconsistentStack.java.i
-data/test/com/sun/javadoc/DocRootSlash/p2/C2.java.i
-data/test/tools/javac/ExceptionalFinally.java.i
+data/src/share/classes/com/sun/tools/javac/services/javax.tools.JavaCompilerTool.i
+data/test/tools/javap/T6716452.java.i
+data/test/tools/javac/diags/ArgTypeCompilerFactory.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/SourceToHTMLConverter.java.i
 data/test/tools/javap/T4880663.java.i
 data/src/share/classes/com/sun/mirror/apt/AnnotationProcessors.java.i
-data/test/tools/apt/Discovery/Touch.java.i
-data/test/tools/javac/ClassPathTest/ClassPathTest.sh.i
+data/test/tools/javac/Diagnostics/6722234/T6722234d.java.i
+data/test/tools/javac/diags/examples/VarargsFilenameAdditional.java.i
 data/test/tools/javac/depOverrides/annotation/Test3.java.i
-data/test/tools/javac/generics/6207386/Test.java.i
+data/test/tools/javac/processing/completion/TestCompletions.java.i
+data/test/tools/javac/StrictAbstract.java.i
 data/test/tools/javac/generics/rare/Rare7.java.i
-data/test/tools/javac/diags/examples/DeprecatedPlural/DeprecatedClass.java.i
+data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_6.java.i
 data/test/tools/javac/diags/examples/CantResolveLocationArgs.java.i
 data/src/share/classes/com/sun/source/tree/BlockTree.java.i
-data/src/share/classes/com/sun/source/tree/MethodInvocationTree.java.i
-data/test/tools/javac/generics/6985719/T6985719h.out.i
+data/test/tools/javac/stackmap/T4955930.sh.i
+data/test/tools/javac/unicode/SupplementaryJavaID1.java.i
 data/test/tools/javac/diags/examples/Expected3.java.i
-data/test/tools/javac/6464451/ManyExitsInTry.java.i
+data/test/tools/javac/multicatch/Neg05.java.i
 data/test/tools/javac/enum/ValueOf.java.i
-data/test/com/sun/javadoc/testThrowsTag/pkg/T3.java.i
-data/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateTypeAnnotation.java.i
+data/test/tools/javac/ImportCycle/foo/Bottom.java.i
+data/test/tools/javac/processing/model/element/TestAnonSourceNames.java.i
+data/test/tools/javac/api/6411310/Test.java.i
+data/test/tools/javac/diags/examples/IllegalLineEndInCharLit.java.i
 data/test/tools/javac/multicatch/model/Check.java.i
 data/src/share/classes/com/sun/tools/apt/mirror/declaration/Constants.java.i
 data/test/tools/javac/processing/environment/round/Part1.java.i
@@ -4518,217 +4561,236 @@ data/test/tools/javadoc/generics/throwsGeneric/expected.out.i
 data/src/share/classes/com/sun/tools/classfile/Dependency.java.i
 data/test/tools/javac/generics/TyparamStaticScope.java.i
 data/test/tools/javac/diags/examples/ArrayRequired.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java.i
+data/test/tools/javac/abstract/T2.java.i
 data/test/tools/javac/diags/examples/VoidNotAllowed.java.i
 data/test/tools/javac/processing/environment/round/TestContext.java.i
 data/src/share/classes/com/sun/tools/javac/comp/Attr.java.i
 data/test/tools/javac/api/T6358955.java.i
 data/src/share/classes/com/sun/mirror/util/SourceOrderDeclScanner.java.i
-data/src/share/classes/com/sun/source/tree/WhileLoopTree.java.i
+data/test/tools/javac/generics/6476118/T6476118c.out.i
 data/test/tools/javac/scope/6225935/a/Ambiguous.java.i
-data/src/share/classes/com/sun/tools/classfile/Module_attribute.java.i
-data/test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java.i
+data/test/tools/javac/policy/test2/bytodo.AB.out.i
+data/test/com/sun/javadoc/testTitleInHref/TestTitleInHref.java.i
 data/test/tools/javac/QualifiedThisExactMatch.java.i
 data/test/tools/javac/generics/wildcards/T6732484.java.i
-data/test/com/sun/javadoc/testMemberSummary/pkg2/A.java.i
+data/test/tools/javac/boxing/NoBoxingLong.java.i
 data/test/tools/javac/depOverrides/annotation/B.java.i
-data/test/tools/javac/diags/examples/AnnotationMissingValue.java.i
 data/src/share/classes/com/sun/mirror/overview.html.i
+data/src/share/classes/com/sun/source/tree/MethodInvocationTree.java.i
 data/test/tools/javac/DefiniteAssignment/DefAssignAfterTry1.java.i
-data/test/tools/javac/DefiniteAssignment/T4718708.java.i
+data/src/share/classes/com/sun/tools/javah/Mangle.java.i
 data/src/share/classes/com/sun/tools/javac/util/Convert.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/MemberSummaryWriter.java.i
-data/src/share/classes/javax/lang/model/type/WildcardType.java.i
-data/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java.i
-data/test/com/sun/javadoc/testLinkToSerialForm/TestLinkToSerialForm.java.i
+data/test/tools/javac/generics/diamond/neg/Neg04.out.i
+data/test/tools/javac/ExtDirs/ext3/pkg2.jar.i
+data/test/tools/javac/generics/5066774/T5066774.java.i
+data/test/com/sun/javadoc/testModifier/Test.java.i
+data/test/tools/javac/api/6431435/T6431435.java.i
+data/src/share/classes/com/sun/tools/javadoc/AbstractTypeImpl.java.i
 data/test/tools/javac/positions/T6253161.out.i
 data/test/tools/javac/diags/HTMLWriter.java.i
-data/test/tools/javac/multicatch/Neg02eff_final.out.i
-data/test/tools/javac/diags/examples/AlreadyDefinedStaticImport/p/E2.java.i
+data/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java.i
 data/test/tools/javac/code/ArrayClone.sh.i
+data/src/share/classes/javax/lang/model/util/TypeKindVisitor8.java.i
 data/test/tools/javadoc/annotations/annotateMethodsFields/pkg1/B.java.i
 data/test/tools/javac/diags/examples/ClassCantWrite.java.i
 data/test/tools/javac/generics/wildcards/pos/RvalConversion.java.i
 data/test/tools/javac/processing/model/type/TestUnionType.java.i
-data/test/com/sun/javadoc/testModifier/ModifierAbstract.java.i
+data/test/tools/javac/api/T6412669.java.i
 data/test/tools/javac/processing/errors/TestErrorCount.out.i
 data/src/share/classes/com/sun/mirror/declaration/MemberDeclaration.java.i
-data/test/tools/javac/diags/examples/DiamondAndExplicitParams.java.i
-data/test/tools/javac/processing/6413690/TestMe.java.i
+data/test/tools/javac/tree/TreeScannerTest.java.i
+data/test/tools/javac/AbstractOverride.java.i
 data/test/tools/javac/T6232928.java.i
 data/test/tools/javac/diags/examples/QualifiedNewStaticClass.java.i
-data/test/tools/javac/T6406771.java.i
-data/test/tools/javac/generics/5066774/T5066774.java.i
-data/test/tools/javac/generics/6372782/MultiplicationDefined.java.i
+data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/AnnotationTypeUndocumented.java.i
+data/test/tools/javac/generics/bridge1/E.java.i
+data/make/netbeans/common/shared.xml.i
+data/test/tools/javac/miranda/6964669/pkg/B.java.i
+data/test/tools/javac/DefiniteAssignment/T4718708.java.i
 data/test/tools/apt/Compile/servicesRound3.i
 data/test/tools/javac/diags/examples/ProcUseProcOrImplicit/processors/AnnoProc.java.i
 data/test/tools/javac/generics/wildcards/6886247/T6886247_2.out.i
 data/src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java.i
-data/src/share/classes/com/sun/tools/javac/comp/Todo.java.i
+data/test/com/sun/javadoc/testMemberInheritence/pkg/BaseClass.java.i
 data/test/tools/javac/generics/6910550/T6910550b.java.i
-data/test/tools/javac/OverrideChecks/6400189/T6400189d.java.i
+data/test/com/sun/javadoc/testMemberInheritence/pkg/BaseInterface.java.i
 data/test/tools/javac/generics/T4757416.java.i
 data/test/tools/javac/generics/odersky/Test.java.i
-data/src/share/opensource/javac/build.xml.i
+data/src/share/classes/com/sun/tools/javac/util/Messages.java.i
 data/test/tools/javah/compareTest/CompareTest.sh.i
 data/test/tools/javac/generics/6372782/AbstractElement.java.i
 data/test/tools/javac/diags/examples/ModifierNotAllowed.java.i
+data/test/tools/javac/processing/6499119/ClassProcessor.java.i
 data/test/tools/javac/FoldConditional.java.i
-data/test/tools/javac/annotations/neg/MixedSource.java.i
+data/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateTypeAnnotation.java.i
 data/test/tools/javac/generics/inference/5073060/Neg.java.i
 data/test/tools/javac/unicode/FirstChar2.java.i
 data/README.i
 data/test/bootclasspath-exclude.jtx.i
-data/make/netbeans/apt/build.xml.i
+data/test/tools/javac/positions/T6253161a.java.i
 data/test/tools/javac/diags/examples/UnreachableStatement.java.i
 data/test/tools/javac/treeannotests/AnnoTreeTests.java.i
-data/test/tools/javac/StringAppendAccessMethodOnLHS.java.i
+data/test/tools/javac/processing/werror/WError1.java.i
 data/test/tools/javac/modules/ModuleResolverTest03.java.i
 data/test/tools/javac/multicatch/Neg01eff_final.out.i
 data/src/share/classes/com/sun/tools/javac/comp/Enter.java.i
-data/test/tools/javadoc/annotations/annotatePackage/pkg2/B.java.i
+data/test/tools/javadoc/MethodLinks.java.i
 data/src/share/opensource/javac/doc/javac_lifecycle/packages.html.i
-data/test/tools/javac/NestedInnerClassNames.out.i
+data/test/tools/javac/diags/examples/UncheckedFilenameAdditional.java.i
 data/test/tools/javac/processing/warnings/gold_sv_warn_5_6.out.i
 data/test/tools/javac/diags/examples/BreakOutsideSwitchLoop.java.i
-data/test/tools/javac/api/T6400205.java.i
 data/test/tools/javac/6508981/TestInferBinaryName.java.i
-data/test/tools/javac/diags/examples/MulticatchCantBeAssigned.java.i
+data/test/tools/javac/generics/compat/OverrideBridge3.java.i
 data/src/share/opensource/javac/doc/javac_lifecycle/Main.html.i
 data/test/tools/javac/6979683/TestCast6979683_BAD36.java.i
-data/src/share/classes/com/sun/tools/apt/mirror/util/DeclarationsImpl.java.i
+data/test/tools/javac/generics/rare/6665356/T6665356.java.i
 data/test/tools/javac/annotations/neg/Z10.java.i
-data/test/tools/javac/literals/T6891079.out.i
+data/src/share/classes/com/sun/tools/javac/zip/ZipFileIndexEntry.java.i
 data/test/tools/javac/diags/examples/TryWithoutCatchOrFinally.java.i
 data/src/share/classes/com/sun/tools/javac/file/RelativePath.java.i
-data/src/share/opensource/javac/doc/javac_lifecycle/ToDo.html.i
+data/test/tools/javac/diags/examples/UnsupportedExoticID.java.i
 data/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java.i
 data/test/tools/javac/generics/T6507024.java.i
-data/test/tools/javac/protectedAccess/ProtectedMemberAccess3.out.i
+data/test/tools/javac/6521805/T6521805a_2.out.i
+data/test/tools/javac/file/T7018098.java.i
 data/test/tools/javac/OverrideChecks/Private.java.i
-data/test/tools/javac/processing/options/testCommandLineClasses/Test.java.i
-data/src/share/classes/com/sun/tools/javac/main/CommandLine.java.i
+data/test/tools/javac/typeAnnotations/InnerClass.java.i
+data/test/tools/javac/diags/examples/NameClashSameErasureNoOverride.java.i
 data/test/tools/apt/Compile/Round3Apf.java.i
 data/test/tools/javac/generics/6207386/T6207386.out.i
 data/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java.i
 data/test/tools/javac/generics/6192945/T6192945.java.i
 data/test/com/sun/javadoc/testBaseClass/BaseClass.java.i
-data/test/tools/javac/FinalThisReference.java.i
+data/test/tools/javac/T6567414.java.i
 data/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java.i
 data/test/tools/javac/typeAnnotations/failures/common/arrays/InvalidLocation.java.i
-data/test/tools/javac/generics/diamond/neg/Neg05.out.i
+data/test/tools/javac/policy/test2/A.java.i
 data/test/com/sun/javadoc/testInlineLinkLabel/pkg/C2.java.i
 data/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_14.java.i
-data/test/tools/javac/diags/examples/AssertAsIdentifier.java.i
-data/test/com/sun/javadoc/testHtmlTableTags/pkg1/I1.java.i
+data/test/tools/javac/processing/model/util/deprecation/TestDeprecation.java.i
+data/test/com/sun/javadoc/JavascriptWinTitle/p2/C2.java.i
+data/test/tools/javac/NonStaticFieldExpr3.out.i
 data/test/tools/apt/Scanners/VisitOrder.java.i
 data/test/tools/javac/annotations/default/C.java.i
 data/test/com/sun/javadoc/testTagInheritence/firstSentence2/B.java.i
 data/test/tools/javac/diags/examples/BadSourceFileHeader/BadSourceFileHeader.java.i
 data/src/share/classes/com/sun/mirror/declaration/TypeParameterDeclaration.java.i
-data/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationTypeElementDeclarationImpl.java.i
-data/test/tools/javac/enum/forwardRef/T6425594.out.i
+data/test/tools/javac/missingClass/A.java.i
+data/src/share/classes/com/sun/tools/javac/code/BoundKind.java.i
 data/test/com/sun/javadoc/testLegacyTaglet/UnderlineTaglet.java.i
-data/test/tools/javac/capture/Martin.java.i
+data/test/tools/javac/processing/filer/TestValidRelativeNames.java.i
 data/test/tools/javac/inheritAccess/PvtMbrsNotInherit1.java.i
 data/test/tools/javac/typeAnnotations/failures/common/typeArgs/InvalidLocation.out.i
-data/test/com/sun/javadoc/testSubTitle/pkg/package.html.i
+data/test/tools/javac/overrridecrash/A.java.i
 data/src/share/classes/com/sun/tools/javadoc/ParameterImpl.java.i
-data/test/com/sun/javadoc/testInlineLinkLabel/pkg/C1.java.i
+data/test/tools/javadoc/annotations/badVals/pkg1/A.java.i
 data/test/tools/javac/depOverrides/doccomment/empty.i
-data/test/tools/javac/generics/inference/5073060/T5073060.java.i
-data/test/tools/javac/mandatoryWarnings/unchecked/Test1.out.i
+data/test/tools/javac/literals/BadUnderscoreLiterals.6.out.i
+data/src/share/classes/javax/lang/model/element/UnknownElementException.java.i
 data/test/tools/javac/generics/6946618/T6946618a.java.i
 data/test/tools/javac/processing/model/util/elements/VacuousEnum.java.i
-data/test/tools/javac/annotations/neg/NoObjectMethods.java.i
-data/test/com/sun/javadoc/testTaglets/Parent.java.i
-data/test/tools/javac/typeAnnotations/newlocations/MethodTypeArgs.java.i
+data/test/tools/javac/warnings/Unchecked.lintAll.out.i
+data/test/tools/javac/generics/inference/4972073/T4972073a.java.i
+data/test/tools/javadoc/annotations/elementTypes/pkg1/B.java.i
 data/test/tools/javac/diags/examples/TryResourceTrailingSemi.java.i
 data/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ClassUseTest3.java.i
 data/test/tools/javah/6572945/gold/jni.dir.1/TestClass1.h.i
-data/test/tools/javac/FloatingPointChanges/BadConstructorModifiers.out.i
-data/test/com/sun/javadoc/AccessAsciiArt/p1/C.java.i
-data/make/test/lib/javadoc.sh.i
+data/test/tools/javac/typeAnnotations/failures/common/typeparams/MissingAnnotationValue.java.i
+data/test/tools/javah/4942232/ParamClassTest.java.i
+data/test/tools/apt/Scanners/Scanner.java.i
 data/test/tools/javac/diags/examples/OverrideUncheckedReturn.java.i
 data/test/tools/javac/diags/examples/DeprecatedFilename.java.i
 data/test/tools/javadoc/T6551367.java.i
+data/test/com/sun/javadoc/testTagInheritence/firstSentence/A.java.i
 data/test/tools/javap/T6863746.java.i
 data/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleTypeAnnotations_attribute.java.i
 data/test/tools/javac/staticImport/ImportPrivate.java.i
-data/test/tools/javac/generics/6969184/T6969184.java.i
+data/test/com/sun/javadoc/VersionNumber/p1/C.java.i
+data/test/tools/javac/tree/TestToString.java.i
+data/test/com/sun/javadoc/testNewLanguageFeatures/pkg/Coin.java.i
 data/test/tools/javac/warnings/Unchecked.noLint.out.i
-data/src/share/classes/com/sun/tools/javac/parser/Parser.java.i
+data/test/tools/javac/lint/NoWarn1.out.i
 data/test/tools/javac/cast/5065215/T5065215.java.i
-data/test/tools/javac/generics/wildcards/neg/CastWarn14.java.i
+data/test/tools/javac/processing/model/util/OverridesSpecEx.java.i
 data/test/tools/javadoc/varArgs/pkg1/A.java.i
 data/test/tools/javac/multicatch/Neg04.out.i
-data/test/tools/javac/generics/typevars/6804733/T6804733.java.i
-data/test/tools/javac/diags/examples/IllegalLineEndInCharLit.java.i
+data/test/tools/javac/typeAnnotations/failures/target/NotTypeUse.java.i
+data/test/tools/javac/6390045/T6390045b.java.i
 data/test/tools/javac/typeAnnotations/failures/common/typeparams/InvalidLocation.java.i
 data/test/tools/javac/mixedTarget/CompatibleAbstracts2.java.i
 data/src/share/classes/com/sun/tools/javac/model/JavacTypes.java.i
-data/src/share/classes/com/sun/tools/javap/Messages.java.i
+data/test/tools/javac/meth/InvokeDyn.java.i
 data/test/tools/javac/generics/inference/6222762/T6222762.java.i
-data/test/tools/javac/InterfaceOverrideFinal.java.i
+data/test/tools/javac/diags/examples/Expected2.java.i
 data/test/tools/javac/CyclicScoping/CyclicScoping_2.java.i
+data/test/tools/javac/diags/examples/FloatNumberTooLarge.java.i
 data/test/tools/javac/policy/B.java.i
 data/test/tools/javac/generics/PermuteBound.java.i
 data/test/tools/javac/EarlyAssert.java.i
-data/test/tools/javac/implicitThis/NewBeforeOuterConstructed.java.i
+data/test/tools/javac/typeAnnotations/failures/OldArray.out.i
 data/test/tools/javac/literals/BadUnderscoreLiterals.java.i
-data/test/tools/javadoc/annotations/defaults/expected.out.i
-data/test/com/sun/javadoc/testValueTag/TestValueTag.java.i
-data/test/tools/javac/ClassLiterals/evalinit/ClassLiteralEvalInit.java.i
+data/make/netbeans/javah/nbproject/project.xml.i
+data/test/tools/javac/diags/examples/AnnotationMissingValue.java.i
+data/test/tools/javac/Capture.java.i
+data/test/tools/javac/diags/examples/UncheckedPluralAdditional/UncheckedPluralAdditional.java.i
 data/test/tools/apt/Scanners/Order.java.i
-data/test/tools/javac/T6407066.java.i
+data/test/tools/javac/processing/errors/Foo.java.i
 data/test/tools/javadoc/imports/I.java.i
 data/test/tools/javac/policy/D.java.i
-data/test/tools/javac/generics/inference/5021635/T5021635.java.i
+data/test/com/sun/javadoc/testBadSourceFile/TestBadSourceFile.java.i
+data/test/tools/javac/processing/6512707/TestEnum.java.i
 data/test/tools/javac/6400383/T6400383.java.i
-data/test/com/sun/javadoc/testValueTag/pkg1/CustomTagUsage.java.i
-data/src/share/classes/javax/lang/model/util/AbstractElementVisitor7.java.i
+data/test/tools/javac/Closure3.java.i
+data/src/share/classes/com/sun/mirror/declaration/AnnotationMirror.java.i
 data/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/SourcePath.java.i
-data/test/com/sun/javadoc/dupThrowsTags/TestDupThrowsTags.java.i
-data/test/tools/javac/AccessMethods/ChainedAssignment.java.i
+data/test/tools/javac/generics/diamond/neg/Neg05.out.i
+data/src/share/classes/com/sun/source/tree/InstanceOfTree.java.i
+data/test/tools/javac/scope/6225935/Baz.java.i
+data/test/tools/javac/api/T6400205.java.i
+data/test/tools/javac/T5090006/broken.jar.i
+data/test/com/sun/javadoc/testSubTitle/TestSubTitle.java.i
+data/src/share/classes/com/sun/tools/javac/comp/Todo.java.i
 data/test/tools/javac/enum/DA3.java.i
-data/make/test/contents.sh.i
+data/test/tools/javap/typeAnnotations/ClassLiterals.java.i
 data/test/tools/javac/processing/model/type/NoTypes.java.i
 data/test/tools/javac/Closure4.java.i
-data/test/tools/javac/enum/EnumSwitch1.java.i
+data/test/tools/javadoc/annotations/annotatePackage/pkg2/package.html.i
 data/test/tools/javac/6979683/TestCast6979683_BAD37.java.errlog.i
-data/src/share/classes/com/sun/tools/apt/mirror/type/TypeVariableImpl.java.i
+data/test/tools/javac/diags/examples/EnumAsIdentifier.java.i
 data/test/tools/javac/warnings/6594914/T6594914b.out.i
+data/test/tools/javac/diags/examples/CantImplement.java.i
 data/test/tools/javac/importContext/anonPackage/Foo.java.i
-data/test/tools/javac/StrictAbstract.java.i
-data/test/tools/javac/api/6411310/Test.java.i
+data/test/tools/javac/generics/wildcards/neg/CastWarn12.java.i
+data/test/tools/javac/modules/ModulePermitsAttributeTest01.java.i
+data/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateTypeAnnotation.java.i
 data/test/tools/javac/Paths/SameJVM.java.i
-data/test/tools/apt/Scanners/TestEnum.java.i
+data/test/tools/javadoc/annotations/missing/Main.java.i
 data/test/tools/javac/importContext/namedPackage/bar/Baz.java.i
 data/test/tools/javac/proprietary/WarnImport.java.i
 data/src/share/classes/com/sun/tools/javadoc/FieldDocImpl.java.i
-data/test/com/sun/javadoc/testModifier/Test.java.i
-data/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java.i
-data/test/tools/javac/T6794959.java.i
-data/test/tools/javac/diags/examples/AnnosWithoutProcessors/AnnosWithoutProcessors.java.i
+data/src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java.i
+data/test/tools/javac/diags/examples/AlreadyDefinedStaticImport/p/E2.java.i
+data/test/tools/javac/warnings/FallThrough.lintAll.out.i
+data/test/tools/javadoc/enum/docComments/pkg1/Operation.java.i
 data/test/tools/javac/OverrideChecks/6400189/T6400189a.java.i
 data/test/tools/javac/multicatch/Neg01.java.i
 data/test/tools/javac/6857948/T6857948.java.i
 data/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateTypeAnnotation.out.i
 data/test/tools/javac/typeAnnotations/6967002/T6967002.java.i
-data/test/tools/javadoc/annotations/elementTypes/expected.out.i
+data/test/tools/javac/diags/examples/AnnoValueMustBeClassLiteral.java.i
 data/test/com/sun/javadoc/testDocFileDir/pkg/C.java.i
-data/test/tools/javac/processing/model/element/TestAnonSourceNames.java.i
-data/test/tools/javac/generics/BridgeClash.java.i
-data/test/tools/javac/scope/6392998/T6392998.java.i
+data/test/tools/javac/6521805/p/Outer.java.i
+data/test/com/sun/javadoc/testNavagation/pkg/A.java.i
+data/test/tools/javac/meth/InvokeMH_BAD72.java.i
 data/test/tools/javac/enum/NoFinal2.java.i
 data/test/tools/javac/diags/examples/IntNumberTooLarge.java.i
-data/test/tools/javac/generics/6245699/T6245699a.java.i
-data/test/tools/javac/DefiniteAssignment/T4704365.java.i
+data/test/tools/javah/ConstMacroTest.sh.i
+data/test/tools/javac/TryWithResources/ResourceTypeVar.java.i
 data/test/tools/javac/protectedAccess/ProtectedMemberAccess5/z2/Z2.java.i
-data/test/com/sun/javadoc/testLinkOption/package-list.i
+data/test/tools/javac/sourcePath2/SourcePath2.java.i
 data/test/tools/javadoc/generics/genericInterface/Main.java.i
 data/test/tools/javac/cast/7005095/T7005095neg.out.i
-data/test/com/sun/javadoc/testThrowsTag/pkg/T1.java.i
+data/test/tools/javac/generics/T5094318.java.i
 data/test/tools/javah/6257087/foo.java.i
 data/test/tools/javac/diags/examples/CantExtendIntfAnno.java.i
 data/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java.i
@@ -4736,18 +4798,8 @@ data/test/tools/javac/6520152/T6520152.java.i
 data/test/tools/javac/EmptyArray.java.i
 data/test/tools/javac/diags/examples/AlreadyDefinedImport.java.i
 data/test/tools/javadoc/annotations/annotateMethodsFields/pkg1/A.java.i
-data/test/tools/javac/meth/InvokeMH_BAD72.java.i
+data/test/tools/javac/scope/6392998/T6392998.java.i
 data/test/tools/javac/generics/wildcards/neg/CastFail2.java.i
 data/test/tools/javac/IllegalAnnotation.out.i
-data/test/tools/javac/6734819/T6734819c.out.i
+data/test/tools/javap/T6715767.java.i
 data/test/tools/javac/diags/examples/WrongNumberTypeArgs.java.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/background.gif.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/tab.gif.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/titlebar.gif.i
-data/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/titlebar_end.gif.i
-data/test/tools/javac/T7042623.java.i
-data/test/tools/javac/T7042623.out.i
-data/test/tools/javac/failover/FailOver15.java.i
-data/test/tools/javac/failover/FailOver15.out.i
-data/test/tools/javac/processing/model/TestSourceVersion.java.i
-data/test/tools/javac/scope/7046348/EagerInterfaceCompletionTest.java.i
diff --git a/langtools/.hg/store/undo b/langtools/.hg/store/undo
index e8c5582..3241ed8 100644
Binary files a/langtools/.hg/store/undo and b/langtools/.hg/store/undo differ
diff --git a/jdk/.hg/undo.bookmarks b/langtools/.hg/undo.bookmarks
similarity index 100%
copy from jdk/.hg/undo.bookmarks
copy to langtools/.hg/undo.bookmarks
diff --git a/langtools/.hg/undo.desc b/langtools/.hg/undo.desc
index ce7ee1e..58f0c15 100644
--- a/langtools/.hg/undo.desc
+++ b/langtools/.hg/undo.desc
@@ -1,3 +1,3 @@
-1114
+1115
 pull
 http://hg.openjdk.java.net/jigsaw/jigsaw/langtools
diff --git a/langtools/.hg/undo.dirstate b/langtools/.hg/undo.dirstate
index 24e346c..06631af 100644
Binary files a/langtools/.hg/undo.dirstate and b/langtools/.hg/undo.dirstate differ
diff --git a/langtools/.hgtags b/langtools/.hgtags
index 202e0f2..6f1a202 100644
--- a/langtools/.hgtags
+++ b/langtools/.hgtags
@@ -128,3 +128,11 @@ a15c9b058ae007d4ccb7e35ce44e4dfa977f090b jdk7-b137
 c455e2ae5c93014ae3fc475aba4509b5f70465f7 jdk7-b145
 9425dd4f53d5bfcd992d9aecea0eb7d8b2d4f62b jdk7-b146
 58bc532d63418ac3c9b42460d89cdaf595c6f3e1 jdk7-b147
+e9f118c2bd3c4690d8d2e6b108b5bad7e226634c jdk8-b01
+b3c059de2a61fc122c99d555cdd8b85f112393c1 jdk8-b02
+f497fac86cf9ada4801ecaf49eb0d2307a2b61c8 jdk8-b03
+5df63fd8fa64741e829281ee6febe9954932841b jdk8-b04
+5304c2a17d4b001e365a8f0163082dc375f1abab jdk8-b05
+d2422276f9dabc848b7a079025719826d2f9a30f jdk8-b06
+116980ecec5cc7d52736f09cf332321e0773265f jdk8-b07
+e8acc2d6c32f0c8321e642e1a86672a2e196a056 jdk8-b08
diff --git a/langtools/make/jprt.properties b/langtools/make/jprt.properties
index c95c9d0..cb67b3c 100644
--- a/langtools/make/jprt.properties
+++ b/langtools/make/jprt.properties
@@ -25,12 +25,23 @@
 
 # Properties for jprt
 
-# Use whatever release that the submitted job requests
-jprt.tools.default.release=${jprt.submit.release}
+# The release to build
+jprt.tools.default.release=jdk8
 
 # The different build flavors we want, we override here so we just get these 2
 jprt.build.flavors=product,fastdebug
 
+# Standard list of jprt build targets for this source tree
+jprt.build.targets= 						\
+    solaris_sparc_5.10-{product|fastdebug}, 			\
+    solaris_sparcv9_5.10-{product|fastdebug}, 			\
+    solaris_i586_5.10-{product|fastdebug}, 			\
+    solaris_x64_5.10-{product|fastdebug}, 			\
+    linux_i586_2.6-{product|fastdebug}, 			\
+    linux_x64_2.6-{product|fastdebug}, 				\
+    windows_i586_5.1-{product|fastdebug}, 			\
+    windows_x64_5.2-{product|fastdebug}
+
 # Directories to be excluded from the source bundles
 jprt.bundle.exclude.src.dirs=build dist webrev
 
diff --git a/langtools/src/share/classes/com/sun/tools/javac/Main.java b/langtools/src/share/classes/com/sun/tools/javac/Main.java
index e569c1b..88eadb6 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/Main.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/Main.java
@@ -73,7 +73,7 @@ public class Main {
     public static int compile(String[] args) {
         com.sun.tools.javac.main.Main compiler =
             new com.sun.tools.javac.main.Main("javac");
-        return compiler.compile(args);
+        return compiler.compile(args).exitCode;
     }
 
 
@@ -91,6 +91,6 @@ public class Main {
     public static int compile(String[] args, PrintWriter out) {
         com.sun.tools.javac.main.Main compiler =
             new com.sun.tools.javac.main.Main("javac", out);
-        return compiler.compile(args);
+        return compiler.compile(args).exitCode;
     }
 }
diff --git a/langtools/src/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java b/langtools/src/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java
index 88a279c..462dac5 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java
@@ -37,6 +37,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
@@ -51,6 +52,7 @@ import com.sun.source.util.TaskEvent;
 import com.sun.source.util.TaskListener;
 import com.sun.tools.javac.util.ClientCodeException;
 import com.sun.tools.javac.util.Context;
+import com.sun.tools.javac.util.JCDiagnostic;
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -146,7 +148,7 @@ public class ClientCodeWrapper {
             return fo;
     }
 
-    <T> DiagnosticListener<T> wrap(DiagnosticListener<T> dl) {
+    <T /*super JavaFileOject*/> DiagnosticListener<T> wrap(DiagnosticListener<T> dl) {
         if (isTrusted(dl))
             return dl;
         return new WrappedDiagnosticListener<T>(dl);
@@ -158,6 +160,16 @@ public class ClientCodeWrapper {
         return new WrappedTaskListener(tl);
     }
 
+    @SuppressWarnings("unchecked")
+    private <T> Diagnostic<T> unwrap(final Diagnostic<T> diagnostic) {
+        if (diagnostic instanceof JCDiagnostic) {
+            JCDiagnostic d = (JCDiagnostic) diagnostic;
+            return (Diagnostic<T>) new DiagnosticSourceUnwrapper(d);
+        } else {
+            return diagnostic;
+        }
+    }
+
     protected boolean isTrusted(Object o) {
         Class<?> c = o.getClass();
         Boolean trusted = trustedClasses.get(c);
@@ -534,7 +546,7 @@ public class ClientCodeWrapper {
         }
     }
 
-    protected class WrappedDiagnosticListener<T> implements DiagnosticListener<T> {
+    protected class WrappedDiagnosticListener<T /*super JavaFileObject*/> implements DiagnosticListener<T> {
         protected DiagnosticListener<T> clientDiagnosticListener;
         WrappedDiagnosticListener(DiagnosticListener<T> clientDiagnosticListener) {
             clientDiagnosticListener.getClass(); // null check
@@ -544,7 +556,7 @@ public class ClientCodeWrapper {
         @Override
         public void report(Diagnostic<? extends T> diagnostic) {
             try {
-                clientDiagnosticListener.report(diagnostic);
+                clientDiagnosticListener.report(unwrap(diagnostic));
             } catch (ClientCodeException e) {
                 throw e;
             } catch (RuntimeException e) {
@@ -555,6 +567,54 @@ public class ClientCodeWrapper {
         }
     }
 
+    public class DiagnosticSourceUnwrapper implements Diagnostic<JavaFileObject> {
+        public final JCDiagnostic d;
+
+        DiagnosticSourceUnwrapper(JCDiagnostic d) {
+            this.d = d;
+        }
+
+        public Diagnostic.Kind getKind() {
+            return d.getKind();
+        }
+
+        public JavaFileObject getSource() {
+            return unwrap(d.getSource());
+        }
+
+        public long getPosition() {
+            return d.getPosition();
+        }
+
+        public long getStartPosition() {
+            return d.getStartPosition();
+        }
+
+        public long getEndPosition() {
+            return d.getEndPosition();
+        }
+
+        public long getLineNumber() {
+            return d.getLineNumber();
+        }
+
+        public long getColumnNumber() {
+            return d.getColumnNumber();
+        }
+
+        public String getCode() {
+            return d.getCode();
+        }
+
+        public String getMessage(Locale locale) {
+            return d.getMessage(locale);
+        }
+
+        public String toString() {
+            return d.toString();
+        }
+    }
+
     protected class WrappedTaskListener implements TaskListener {
         protected TaskListener clientTaskListener;
         WrappedTaskListener(TaskListener clientTaskListener) {
diff --git a/langtools/src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java b/langtools/src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java
index 4a61f5a..1b1e331 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java
@@ -78,7 +78,7 @@ public class JavacTaskImpl extends JavacTask {
     private AtomicBoolean used = new AtomicBoolean();
     private Iterable<? extends Processor> processors;
 
-    private Integer result = null;
+    private Main.Result result = null;
 
     JavacTaskImpl(Main compilerMain,
                 String[] args,
@@ -131,7 +131,7 @@ public class JavacTaskImpl extends JavacTask {
             compilerMain.setAPIMode(true);
             result = compilerMain.compile(args, context, fileObjects, processors);
             cleanup();
-            return result == 0;
+            return result.isOK();
         } else {
             throw new IllegalStateException("multiple calls to method 'call'");
         }
@@ -158,10 +158,10 @@ public class JavacTaskImpl extends JavacTask {
         } else {
             initContext();
             compilerMain.setOptions(Options.instance(context));
-            compilerMain.filenames = new ListBuffer<File>();
-            List<File> filenames = compilerMain.processArgs(CommandLine.parse(args));
+            compilerMain.filenames = new LinkedHashSet<File>();
+            Collection<File> filenames = compilerMain.processArgs(CommandLine.parse(args));
             if (!filenames.isEmpty())
-                throw new IllegalArgumentException("Malformed arguments " + filenames.toString(" "));
+                throw new IllegalArgumentException("Malformed arguments " + toString(filenames, " "));
             compiler = JavaCompiler.instance(context);
             compiler.keepComments = true;
             compiler.genEndPos = true;
@@ -177,6 +177,17 @@ public class JavacTaskImpl extends JavacTask {
         }
     }
 
+    <T> String toString(Iterable<T> items, String sep) {
+        String currSep = "";
+        StringBuilder sb = new StringBuilder();
+        for (T item: items) {
+            sb.append(currSep);
+            sb.append(item.toString());
+            currSep = sep;
+        }
+        return sb.toString();
+    }
+
     private void initContext() {
         context.put(JavacTaskImpl.class, this);
         if (context.get(TaskListener.class) != null)
@@ -263,6 +274,9 @@ public class JavacTaskImpl extends JavacTask {
     public Iterable<? extends TypeElement> enter(Iterable<? extends CompilationUnitTree> trees)
         throws IOException
     {
+        if (trees == null && notYetEntered != null && notYetEntered.isEmpty())
+            return List.nil();
+
         prepareCompiler();
 
         ListBuffer<JCCompilationUnit> roots = null;
diff --git a/langtools/src/share/classes/com/sun/tools/javac/api/JavacTrees.java b/langtools/src/share/classes/com/sun/tools/javac/api/JavacTrees.java
index b684d29..7bd384b 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/api/JavacTrees.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/api/JavacTrees.java
@@ -65,6 +65,7 @@ import com.sun.tools.javac.tree.JCTree;
 import com.sun.tools.javac.tree.TreeCopier;
 import com.sun.tools.javac.tree.TreeInfo;
 import com.sun.tools.javac.tree.TreeMaker;
+import com.sun.tools.javac.util.Assert;
 import com.sun.tools.javac.util.Context;
 import com.sun.tools.javac.util.JCDiagnostic;
 import com.sun.tools.javac.util.List;
@@ -263,9 +264,10 @@ public class JavacTrees extends Trees {
         if (!(path.getLeaf() instanceof JCTree))  // implicit null-check
             throw new IllegalArgumentException();
 
-        // if we're being invoked via from a JSR199 client, we need to make sure
-        // all the classes have been entered; if we're being invoked from JSR269,
-        // then the classes will already have been entered.
+        // if we're being invoked from a Tree API client via parse/enter/analyze,
+        // we need to make sure all the classes have been entered;
+        // if we're being invoked from JSR 199 or JSR 269, then the classes
+        // will already have been entered.
         if (javacTaskImpl != null) {
             try {
                 javacTaskImpl.enter(null);
@@ -313,10 +315,19 @@ public class JavacTrees extends Trees {
                     break;
                 case BLOCK: {
 //                    System.err.println("BLOCK: ");
-                    if (method != null)
-                        env = memberEnter.getMethodEnv(method, env);
-                    JCTree body = copier.copy((JCTree)tree, (JCTree) path.getLeaf());
-                    env = attribStatToTree(body, env, copier.leafCopy);
+                    if (method != null) {
+                        try {
+                            Assert.check(method.body == tree);
+                            method.body = copier.copy((JCBlock)tree, (JCTree) path.getLeaf());
+                            env = memberEnter.getMethodEnv(method, env);
+                            env = attribStatToTree(method.body, env, copier.leafCopy);
+                        } finally {
+                            method.body = (JCBlock) tree;
+                        }
+                    } else {
+                        JCBlock body = copier.copy((JCBlock)tree, (JCTree) path.getLeaf());
+                        env = attribStatToTree(body, env, copier.leafCopy);
+                    }
                     return env;
                 }
                 default:
@@ -329,7 +340,7 @@ public class JavacTrees extends Trees {
                     }
             }
         }
-        return field != null ? memberEnter.getInitEnv(field, env) : env;
+        return (field != null) ? memberEnter.getInitEnv(field, env) : env;
     }
 
     private Env<AttrContext> attribStatToTree(JCTree stat, Env<AttrContext>env, JCTree tree) {
diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Kinds.java b/langtools/src/share/classes/com/sun/tools/javac/code/Kinds.java
index a4dd28e..760235c 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Kinds.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Kinds.java
@@ -107,6 +107,8 @@ public class Kinds {
         VAL("kindname.value"),
         METHOD("kindname.method"),
         CLASS("kindname.class"),
+        STATIC_INIT("kindname.static.init"),
+        INSTANCE_INIT("kindname.instance.init"),
         PACKAGE("kindname.package"),
         MODULE("kindname.module");
 
@@ -175,9 +177,11 @@ public class Kinds {
             return KindName.CONSTRUCTOR;
 
         case METHOD:
+            return KindName.METHOD;
         case STATIC_INIT:
+            return KindName.STATIC_INIT;
         case INSTANCE_INIT:
-            return KindName.METHOD;
+            return KindName.INSTANCE_INIT;
 
         default:
             if (sym.kind == VAL)
diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Printer.java b/langtools/src/share/classes/com/sun/tools/javac/code/Printer.java
index d63c899..b20f84c 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Printer.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Printer.java
@@ -316,7 +316,7 @@ public abstract class Printer implements Type.Visitor<String, Locale>, Symbol.Vi
 
     @Override
     public String visitMethodSymbol(MethodSymbol s, Locale locale) {
-        if ((s.flags() & BLOCK) != 0) {
+        if (s.isStaticOrInstanceInit()) {
             return s.owner.name.toString();
         } else {
             String ms = (s.name == s.name.table.names.init)
diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java b/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java
index 6d4662a..ec34c65 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java
@@ -153,7 +153,8 @@ public abstract class Symbol implements Element {
      * the default package; otherwise, the owner symbol is returned
      */
     public Symbol location() {
-        if (owner.name == null || (owner.name.isEmpty() && owner.kind != PCK && owner.kind != TYP)) {
+        if (owner.name == null || (owner.name.isEmpty() &&
+                (owner.flags() & BLOCK) == 0 && owner.kind != PCK && owner.kind != TYP)) {
             return null;
         }
         return owner;
@@ -851,6 +852,11 @@ public abstract class Symbol implements Element {
          */
         public JavaFileObject classfile;
 
+        /** the list of translated local classes (used for generating
+         * InnerClasses attribute)
+         */
+        public List<ClassSymbol> trans_local;
+
         /** the constant pool of the class
          */
         public Pool pool;
@@ -1425,10 +1431,17 @@ public abstract class Symbol implements Element {
                 return ElementKind.CONSTRUCTOR;
             else if (name == name.table.names.clinit)
                 return ElementKind.STATIC_INIT;
+            else if ((flags() & BLOCK) != 0)
+                return isStatic() ? ElementKind.STATIC_INIT : ElementKind.INSTANCE_INIT;
             else
                 return ElementKind.METHOD;
         }
 
+        public boolean isStaticOrInstanceInit() {
+            return getKind() == ElementKind.STATIC_INIT ||
+                    getKind() == ElementKind.INSTANCE_INIT;
+        }
+
         public Attribute getDefaultValue() {
             return defaultValue;
         }
diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java
index a382384..cca3bcd 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java
@@ -269,10 +269,12 @@ public class Types {
 
     // <editor-fold defaultstate="collapsed" desc="isConvertible">
     /**
-     * Is t a subtype of or convertiable via boxing/unboxing
-     * convertions to s?
+     * Is t a subtype of or convertible via boxing/unboxing
+     * conversion to s?
      */
     public boolean isConvertible(Type t, Type s, Warner warn) {
+        if (t.tag == ERROR)
+            return true;
         boolean tPrimitive = t.isPrimitive();
         boolean sPrimitive = s.isPrimitive();
         if (tPrimitive == sPrimitive) {
@@ -506,8 +508,13 @@ public class Types {
             @Override
             public Boolean visitUndetVar(UndetVar t, Type s) {
                 //todo: test against origin needed? or replace with substitution?
-                if (t == s || t.qtype == s || s.tag == ERROR || s.tag == UNKNOWN)
+                if (t == s || t.qtype == s || s.tag == ERROR || s.tag == UNKNOWN) {
                     return true;
+                } else if (s.tag == BOT) {
+                    //if 's' is 'null' there's no instantiated type U for which
+                    //U <: s (but 'null' itself, which is not a valid type)
+                    return false;
+                }
 
                 if (t.inst != null)
                     return isSubtypeNoCapture(t.inst, s); // TODO: ", warn"?
@@ -2117,6 +2124,8 @@ public class Types {
             }
         }
 
+        List<TypeSymbol> seenTypes = List.nil();
+
         /** members closure visitor methods **/
 
         public CompoundScope visitType(Type t, Boolean skipInterface) {
@@ -2125,21 +2134,33 @@ public class Types {
 
         @Override
         public CompoundScope visitClassType(ClassType t, Boolean skipInterface) {
-            ClassSymbol csym = (ClassSymbol)t.tsym;
-            Entry e = _map.get(csym);
-            if (e == null || !e.matches(skipInterface)) {
-                CompoundScope membersClosure = new CompoundScope(csym);
-                if (!skipInterface) {
-                    for (Type i : interfaces(t)) {
-                        membersClosure.addSubScope(visit(i, skipInterface));
+            if (seenTypes.contains(t.tsym)) {
+                //this is possible when an interface is implemented in multiple
+                //superclasses, or when a classs hierarchy is circular - in such
+                //cases we don't need to recurse (empty scope is returned)
+                return new CompoundScope(t.tsym);
+            }
+            try {
+                seenTypes = seenTypes.prepend(t.tsym);
+                ClassSymbol csym = (ClassSymbol)t.tsym;
+                Entry e = _map.get(csym);
+                if (e == null || !e.matches(skipInterface)) {
+                    CompoundScope membersClosure = new CompoundScope(csym);
+                    if (!skipInterface) {
+                        for (Type i : interfaces(t)) {
+                            membersClosure.addSubScope(visit(i, skipInterface));
+                        }
                     }
+                    membersClosure.addSubScope(visit(supertype(t), skipInterface));
+                    membersClosure.addSubScope(csym.members());
+                    e = new Entry(skipInterface, membersClosure);
+                    _map.put(csym, e);
                 }
-                membersClosure.addSubScope(visit(supertype(t), skipInterface));
-                membersClosure.addSubScope(csym.members());
-                e = new Entry(skipInterface, membersClosure);
-                _map.put(csym, e);
+                return e.compoundScope;
+            }
+            finally {
+                seenTypes = seenTypes.tail;
             }
-            return e.compoundScope;
         }
 
         @Override
diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java
index 78b77f4..f459f49 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java
@@ -594,7 +594,15 @@ public class Attr extends JCTree.Visitor {
             lintEnv = lintEnv.next;
 
         // Having found the enclosing lint value, we can initialize the lint value for this class
-        env.info.lint = lintEnv.info.lint.augment(env.info.enclVar.attributes_field, env.info.enclVar.flags());
+        // ... but ...
+        // There's a problem with evaluating annotations in the right order, such that
+        // env.info.enclVar.attributes_field might not yet have been evaluated, and so might be
+        // null. In that case, calling augment will throw an NPE. To avoid this, for now we
+        // revert to the jdk 6 behavior and ignore the (unevaluated) attributes.
+        if (env.info.enclVar.attributes_field == null)
+            env.info.lint = lintEnv.info.lint;
+        else
+            env.info.lint = lintEnv.info.lint.augment(env.info.enclVar.attributes_field, env.info.enclVar.flags());
 
         Lint prevLint = chk.setLint(env.info.lint);
         JavaFileObject prevSource = log.useSource(env.toplevel.sourcefile);
@@ -1842,7 +1850,7 @@ public class Attr extends JCTree.Visitor {
         try {
             constructor = rs.resolveDiamond(tree.pos(),
                     localEnv,
-                    clazztype.tsym.type,
+                    clazztype,
                     argtypes,
                     typeargtypes);
         } finally {
@@ -2877,8 +2885,10 @@ public class Attr extends JCTree.Visitor {
 
         if (clazztype.tag == CLASS) {
             List<Type> formals = clazztype.tsym.type.getTypeArguments();
+            if (actuals.isEmpty()) //diamond
+                actuals = formals;
 
-            if (actuals.length() == formals.length() || actuals.length() == 0) {
+            if (actuals.length() == formals.length()) {
                 List<Type> a = actuals;
                 List<Type> f = formals;
                 while (a.nonEmpty()) {
diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java
index 2f3aa9a..63c6979 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java
@@ -307,7 +307,16 @@ public class Check {
      */
     void duplicateError(DiagnosticPosition pos, Symbol sym) {
         if (!sym.type.isErroneous()) {
-            log.error(pos, "already.defined", sym, sym.location());
+            Symbol location = sym.location();
+            if (location.kind == MTH &&
+                    ((MethodSymbol)location).isStaticOrInstanceInit()) {
+                log.error(pos, "already.defined.in.clinit", kindName(sym), sym,
+                        kindName(sym.location()), kindName(sym.location().enclClass()),
+                        sym.location().enclClass());
+            } else {
+                log.error(pos, "already.defined", kindName(sym), sym,
+                        kindName(sym.location()), sym.location());
+            }
         }
     }
 
diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java
index 2938f99..3c9ed3a 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java
@@ -269,21 +269,18 @@ public class Infer {
             // VGJ: sort of inlined maximizeInst() below.  Adding
             // bounds can cause lobounds that are above hibounds.
             List<Type> hibounds = Type.filter(that.hibounds, errorFilter);
-            if (hibounds.isEmpty())
-                return;
             Type hb = null;
-            if (hibounds.tail.isEmpty())
+            if (hibounds.isEmpty())
+                hb = syms.objectType;
+            else if (hibounds.tail.isEmpty())
                 hb = hibounds.head;
-            else for (List<Type> bs = hibounds;
-                      bs.nonEmpty() && hb == null;
-                      bs = bs.tail) {
-                if (isSubClass(bs.head, hibounds))
-                    hb = types.fromUnknownFun.apply(bs.head);
-            }
+            else
+                hb = types.glb(hibounds);
             if (hb == null ||
-                !types.isSubtypeUnchecked(hb, hibounds, warn) ||
-                !types.isSubtypeUnchecked(that.inst, hb, warn))
-                throw ambiguousNoInstanceException;
+                hb.isErroneous())
+                throw ambiguousNoInstanceException
+                        .setMessage("incompatible.upper.bounds",
+                                    that.qtype, hibounds);
         }
     }
 
diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java
index 51b9780..3430a62 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java
@@ -2284,6 +2284,14 @@ public class Lower extends TreeTranslator {
         tree.extending = translate(tree.extending);
         tree.implementing = translate(tree.implementing);
 
+        if (currentClass.isLocal()) {
+            ClassSymbol encl = currentClass.owner.enclClass();
+            if (encl.trans_local == null) {
+                encl.trans_local = List.nil();
+            }
+            encl.trans_local = encl.trans_local.prepend(currentClass);
+        }
+
         // Recursively translate members, taking into account that new members
         // might be created during the translation and prepended to the member
         // list `tree.defs'.
@@ -3463,6 +3471,7 @@ public class Lower extends TreeTranslator {
                 JCExpression expression = oneCase.getExpression();
 
                 if (expression != null) { // expression for a "default" case is null
+                    expression = TreeInfo.skipParens(expression);
                     String labelExpr = (String) expression.type.constValue();
                     Integer mapping = caseLabelToPosition.put(labelExpr, casePosition);
                     Assert.checkNull(mapping);
@@ -3568,8 +3577,8 @@ public class Lower extends TreeTranslator {
                 if (isDefault)
                     caseExpr = null;
                 else {
-                    caseExpr = make.Literal(caseLabelToPosition.get((String)oneCase.
-                                                                    getExpression().
+                    caseExpr = make.Literal(caseLabelToPosition.get((String)TreeInfo.skipParens(oneCase.
+                                                                                                getExpression()).
                                                                     type.constValue()));
                 }
 
diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java
index 511a183..27fa7d9 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java
@@ -782,16 +782,13 @@ public class Resolve {
                                        m2.erasure(types).getParameterTypes()))
                     return ambiguityError(m1, m2);
                 // both abstract, neither overridden; merge throws clause and result type
-                Symbol mostSpecific;
-                if (types.returnTypeSubstitutable(mt1, mt2))
-                    mostSpecific = m1;
-                else if (types.returnTypeSubstitutable(mt2, mt1))
-                    mostSpecific = m2;
-                else {
+                Type mst = mostSpecificReturnType(mt1, mt2);
+                if (mst == null) {
                     // Theoretically, this can't happen, but it is possible
                     // due to error recovery or mixing incompatible class files
                     return ambiguityError(m1, m2);
                 }
+                Symbol mostSpecific = mst == mt1 ? m1 : m2;
                 List<Type> allThrown = chk.intersect(mt1.getThrownTypes(), mt2.getThrownTypes());
                 Type newSig = types.createMethodTypeWithThrown(mostSpecific.type, allThrown);
                 MethodSymbol result = new MethodSymbol(
@@ -874,6 +871,28 @@ public class Resolve {
         }
     }
     //where
+    Type mostSpecificReturnType(Type mt1, Type mt2) {
+        Type rt1 = mt1.getReturnType();
+        Type rt2 = mt2.getReturnType();
+
+        if (mt1.tag == FORALL && mt2.tag == FORALL) {
+            //if both are generic methods, adjust return type ahead of subtyping check
+            rt1 = types.subst(rt1, mt1.getTypeArguments(), mt2.getTypeArguments());
+        }
+        //first use subtyping, then return type substitutability
+        if (types.isSubtype(rt1, rt2)) {
+            return mt1;
+        } else if (types.isSubtype(rt2, rt1)) {
+            return mt2;
+        } else if (types.returnTypeSubstitutable(mt1, mt2)) {
+            return mt1;
+        } else if (types.returnTypeSubstitutable(mt2, mt1)) {
+            return mt2;
+        } else {
+            return null;
+        }
+    }
+    //where
     Symbol ambiguityError(Symbol m1, Symbol m2) {
         if (((m1.flags() | m2.flags()) & CLASH) != 0) {
             return (m1.flags() & CLASH) == 0 ? m1 : m2;
diff --git a/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java b/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java
index 5f4e8c9..2ec78c7 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -99,6 +99,7 @@ class RegularFileObject extends BaseFileObject {
 
     @Override
     public OutputStream openOutputStream() throws IOException {
+        fileManager.flushCache(this);
         ensureParentDirectoriesExist();
         return new FileOutputStream(file);
     }
@@ -129,6 +130,7 @@ class RegularFileObject extends BaseFileObject {
 
     @Override
     public Writer openWriter() throws IOException {
+        fileManager.flushCache(this);
         ensureParentDirectoriesExist();
         return new OutputStreamWriter(new FileOutputStream(file), fileManager.getEncodingName());
     }
diff --git a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
index 6e18cc2..6f103fa 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
@@ -957,11 +957,11 @@ public class ClassWriter extends ClassFile {
         }
         if (c.type.tag != CLASS) return; // arrays
         if (pool != null && // pool might be null if called from xClassName
-            c.owner.kind != PCK &&
+            c.owner.enclClass() != null &&
             c.owner.kind != MDL &&
             (innerClasses == null || !innerClasses.contains(c))) {
 //          log.errWriter.println("enter inner " + c);//DEBUG
-            if (c.owner.kind == TYP) enterInner((ClassSymbol)c.owner);
+            enterInner(c.owner.enclClass());
             pool.put(c);
             pool.put(c.name);
             if (innerClasses == null) {
@@ -1616,6 +1616,13 @@ public class ClassWriter extends ClassFile {
             default : Assert.error();
             }
         }
+
+        if (c.trans_local != null) {
+            for (ClassSymbol local : c.trans_local) {
+                enterInner(local);
+            }
+        }
+
         databuf.appendChar(fieldsCount);
         writeFields(c.members().elems);
         databuf.appendChar(methodsCount);
diff --git a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java
index bbde8d9..618700e 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java
@@ -1689,6 +1689,8 @@ public class Gen extends JCTree.Visitor {
         // outer instance of a super(...) call appears as first parameter).
         genArgs(tree.args,
                 TreeInfo.symbol(tree.meth).externalType(types).getParameterTypes());
+        code.statBegin(tree.pos);
+        code.markStatBegin();
         result = m.invoke();
     }
 
diff --git a/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java b/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java
index d7f8e26..24ea957 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java
@@ -488,6 +488,10 @@ public class JavaCompiler implements ClassReader.SourceCompleter {
      */
     public Todo todo;
 
+    /** A list of items to be closed when the compilation is complete.
+     */
+    public List<Closeable> closeables = List.nil();
+
     /** Ordered list of compiler phases for each compilation unit. */
     public enum CompileState {
         PARSE(1),
@@ -1588,6 +1592,19 @@ public class JavaCompiler implements ClassReader.SourceCompleter {
             if (names != null && disposeNames)
                 names.dispose();
             names = null;
+
+            for (Closeable c: closeables) {
+                try {
+                    c.close();
+                } catch (IOException e) {
+                    // When javac uses JDK 7 as a baseline, this code would be
+                    // better written to set any/all exceptions from all the
+                    // Closeables as suppressed exceptions on the FatalError
+                    // that is thrown.
+                    JCDiagnostic msg = diagFactory.fragment("fatal.err.cant.close");
+                    throw new FatalError(msg, e);
+                }
+            }
         }
     }
 
@@ -1622,6 +1639,8 @@ public class JavaCompiler implements ClassReader.SourceCompleter {
         keepComments = prev.keepComments;
         start_msec = prev.start_msec;
         hasBeenUsed = true;
+        closeables = prev.closeables;
+        prev.closeables = List.nil();
     }
 
     public static void enableLogging() {
diff --git a/langtools/src/share/classes/com/sun/tools/javac/main/Main.java b/langtools/src/share/classes/com/sun/tools/javac/main/Main.java
index 74efe68..7762813 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/main/Main.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/Main.java
@@ -31,7 +31,10 @@ import java.io.PrintWriter;
 import java.net.URL;
 import java.security.DigestInputStream;
 import java.security.MessageDigest;
+import java.util.Collection;
+import java.util.LinkedHashSet;
 import java.util.MissingResourceException;
+import java.util.Set;
 import javax.tools.JavaFileManager;
 import javax.tools.JavaFileObject;
 import javax.annotation.processing.Processor;
@@ -73,12 +76,23 @@ public class Main {
 
     /** Result codes.
      */
-    static final int
-        EXIT_OK = 0,        // Compilation completed with no errors.
-        EXIT_ERROR = 1,     // Completed but reported errors.
-        EXIT_CMDERR = 2,    // Bad command-line arguments
-        EXIT_SYSERR = 3,    // System error or resource exhaustion.
-        EXIT_ABNORMAL = 4;  // Compiler terminated abnormally
+    public enum Result {
+        OK(0),        // Compilation completed with no errors.
+        ERROR(1),     // Completed but reported errors.
+        CMDERR(2),    // Bad command-line arguments
+        SYSERR(3),    // System error or resource exhaustion.
+        ABNORMAL(4);  // Compiler terminated abnormally
+
+        Result(int exitCode) {
+            this.exitCode = exitCode;
+        }
+
+        public boolean isOK() {
+            return (exitCode == 0);
+        }
+
+        public final int exitCode;
+    }
 
     private Option[] recognizedOptions = RecognizedOptions.getJavaCompilerOptions(new OptionHelper() {
 
@@ -107,8 +121,7 @@ public class Main {
         }
 
         public void addFile(File f) {
-            if (!filenames.contains(f))
-                filenames.append(f);
+            filenames.add(f);
         }
 
         public void addClassName(String s) {
@@ -136,7 +149,7 @@ public class Main {
 
     /** The list of source files to process
      */
-    public ListBuffer<File> filenames = null; // XXX sb protected
+    public Set<File> filenames = null; // XXX sb protected
 
     /** List of class files names passed on the command line
      */
@@ -202,7 +215,7 @@ public class Main {
      *  in `options' table and return all source filenames.
      *  @param flags    The array of command line arguments.
      */
-    public List<File> processArgs(String[] flags) { // XXX sb protected
+    public Collection<File> processArgs(String[] flags) { // XXX sb protected
         int ac = 0;
         while (ac < flags.length) {
             String flag = flags[ac];
@@ -325,7 +338,7 @@ public class Main {
             showClass(showClass);
         }
 
-        return filenames.toList();
+        return filenames;
     }
     // where
         private boolean checkDirectory(OptionName optName) {
@@ -347,10 +360,10 @@ public class Main {
     /** Programmatic interface for main function.
      * @param args    The command line parameters.
      */
-    public int compile(String[] args) {
+    public Result compile(String[] args) {
         Context context = new Context();
         JavacFileManager.preRegister(context); // can't create it until Log has been set up
-        int result = compile(args, context);
+        Result result = compile(args, context);
         if (fileManager instanceof JavacFileManager) {
             // A fresh context was created above, so jfm must be a JavacFileManager
             ((JavacFileManager)fileManager).close();
@@ -358,14 +371,14 @@ public class Main {
         return result;
     }
 
-    public int compile(String[] args, Context context) {
+    public Result compile(String[] args, Context context) {
         return compile(args, context, List.<JavaFileObject>nil(), null);
     }
 
     /** Programmatic interface for main function.
      * @param args    The command line parameters.
      */
-    public int compile(String[] args,
+    public Result compile(String[] args,
                        Context context,
                        List<JavaFileObject> fileObjects,
                        Iterable<? extends Processor> processors)
@@ -373,7 +386,7 @@ public class Main {
         if (options == null)
             options = Options.instance(context); // creates a new one
 
-        filenames = new ListBuffer<File>();
+        filenames = new LinkedHashSet<File>();
         classnames = new ListBuffer<String>();
         JavaCompiler comp = null;
         /*
@@ -384,34 +397,34 @@ public class Main {
         try {
             if (args.length == 0 && fileObjects.isEmpty()) {
                 help();
-                return EXIT_CMDERR;
+                return Result.CMDERR;
             }
 
-            List<File> files;
+            Collection<File> files;
             try {
                 files = processArgs(CommandLine.parse(args));
                 if (files == null) {
                     // null signals an error in options, abort
-                    return EXIT_CMDERR;
+                    return Result.CMDERR;
                 } else if (files.isEmpty() && fileObjects.isEmpty() && classnames.isEmpty()) {
                     // it is allowed to compile nothing if just asking for help or version info
                     if (options.isSet(HELP)
                         || options.isSet(X)
                         || options.isSet(VERSION)
                         || options.isSet(FULLVERSION))
-                        return EXIT_OK;
+                        return Result.OK;
                     if (JavaCompiler.explicitAnnotationProcessingRequested(options)) {
                         error("err.no.source.files.classes");
                     } else {
                         error("err.no.source.files");
                     }
-                    return EXIT_CMDERR;
+                    return Result.CMDERR;
                 }
             } catch (java.io.FileNotFoundException e) {
                 Log.printLines(out, ownName + ": " +
                                getLocalizedString("err.file.not.found",
                                                   e.getMessage()));
-                return EXIT_SYSERR;
+                return Result.SYSERR;
             }
 
             boolean forceStdOut = options.isSet("stdout");
@@ -431,7 +444,7 @@ public class Main {
             fileManager = context.get(JavaFileManager.class);
 
             comp = JavaCompiler.instance(context);
-            if (comp == null) return EXIT_SYSERR;
+            if (comp == null) return Result.SYSERR;
 
             Log log = Log.instance(context);
 
@@ -452,32 +465,32 @@ public class Main {
             if (log.expectDiagKeys != null) {
                 if (log.expectDiagKeys.isEmpty()) {
                     Log.printLines(log.noticeWriter, "all expected diagnostics found");
-                    return EXIT_OK;
+                    return Result.OK;
                 } else {
                     Log.printLines(log.noticeWriter, "expected diagnostic keys not found: " + log.expectDiagKeys);
-                    return EXIT_ERROR;
+                    return Result.ERROR;
                 }
             }
 
             if (comp.errorCount() != 0)
-                return EXIT_ERROR;
+                return Result.ERROR;
         } catch (IOException ex) {
             ioMessage(ex);
-            return EXIT_SYSERR;
+            return Result.SYSERR;
         } catch (OutOfMemoryError ex) {
             resourceMessage(ex);
-            return EXIT_SYSERR;
+            return Result.SYSERR;
         } catch (StackOverflowError ex) {
             resourceMessage(ex);
-            return EXIT_SYSERR;
+            return Result.SYSERR;
         } catch (FatalError ex) {
             feMessage(ex);
-            return EXIT_SYSERR;
+            return Result.SYSERR;
         } catch (AnnotationProcessingError ex) {
             if (apiMode)
                 throw new RuntimeException(ex.getCause());
             apMessage(ex);
-            return EXIT_SYSERR;
+            return Result.SYSERR;
         } catch (ClientCodeException ex) {
             // as specified by javax.tools.JavaCompiler#getTask
             // and javax.tools.JavaCompiler.CompilationTask#call
@@ -491,7 +504,7 @@ public class Main {
             if (comp == null || comp.errorCount() == 0 ||
                 options == null || options.isSet("dev"))
                 bugMessage(ex);
-            return EXIT_ABNORMAL;
+            return Result.ABNORMAL;
         } finally {
             if (comp != null) {
                 try {
@@ -503,7 +516,7 @@ public class Main {
             filenames = null;
             options = null;
         }
-        return EXIT_OK;
+        return Result.OK;
     }
 
     /** Print a message reporting an internal error.
diff --git a/langtools/src/share/classes/com/sun/tools/javac/nio/PathFileObject.java b/langtools/src/share/classes/com/sun/tools/javac/nio/PathFileObject.java
index 48db1bf..a46e639 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/nio/PathFileObject.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/nio/PathFileObject.java
@@ -205,6 +205,7 @@ abstract class PathFileObject implements JavaFileObject {
 
     @Override
     public OutputStream openOutputStream() throws IOException {
+        fileManager.flushCache(this);
         ensureParentDirectoriesExist();
         return Files.newOutputStream(path);
     }
@@ -241,6 +242,7 @@ abstract class PathFileObject implements JavaFileObject {
 
     @Override
     public Writer openWriter() throws IOException {
+        fileManager.flushCache(this);
         ensureParentDirectoriesExist();
         return new OutputStreamWriter(Files.newOutputStream(path), fileManager.getEncodingName());
     }
diff --git a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java
index 389f5ad..31abace 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java
@@ -27,15 +27,15 @@ package com.sun.tools.javac.parser;
 
 import java.util.*;
 
-import com.sun.tools.javac.tree.*;
 import com.sun.tools.javac.code.*;
+import com.sun.tools.javac.tree.*;
+import com.sun.tools.javac.tree.JCTree.*;
 import com.sun.tools.javac.util.*;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag;
+import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
 import com.sun.tools.javac.util.List;
-import static com.sun.tools.javac.util.ListBuffer.lb;
-
-import com.sun.tools.javac.tree.JCTree.*;
 
+import static com.sun.tools.javac.util.ListBuffer.lb;
 import static com.sun.tools.javac.parser.Token.*;
 
 /** The parser maps a token sequence into an abstract syntax
@@ -57,7 +57,7 @@ public class JavacParser implements Parser {
 
     /** The scanner used for lexical analysis.
      */
-    private Lexer S;
+    protected Lexer S;
 
     /** The factory to be used for abstract syntax tree construction.
      */
@@ -99,11 +99,11 @@ public class JavacParser implements Parser {
         this.allowTWR = source.allowTryWithResources();
         this.allowDiamond = source.allowDiamond();
         this.allowMulticatch = source.allowMulticatch();
+        this.allowStringFolding = fac.options.getBoolean("allowStringFolding", true);
         this.allowModules = source.allowModules();
         this.allowImportsBeforePackage = source.allowImportsBeforePackage();
         this.keepDocComments = keepDocComments;
-        if (keepDocComments)
-            docComments = new HashMap<JCTree,String>();
+        docComments = keepDocComments ? new HashMap<JCTree,String>() : null;
         this.keepLineMap = keepLineMap;
         this.errorTree = F.Erroneous();
     }
@@ -148,6 +148,10 @@ public class JavacParser implements Parser {
      */
     boolean allowTWR;
 
+    /** Switch: should we fold strings?
+     */
+    boolean allowStringFolding;
+
     /** Switch: should we recognize modules?
      */
     boolean allowModules;
@@ -260,26 +264,44 @@ public class JavacParser implements Parser {
     }
 
     private JCErroneous syntaxError(int pos, String key, Token... args) {
-        return syntaxError(pos, null, key, args);
+        return syntaxError(pos, List.<JCTree>nil(), key, args);
     }
 
     private JCErroneous syntaxError(int pos, List<JCTree> errs, String key, Token... args) {
         setErrorEndPos(pos);
-        reportSyntaxError(pos, key, (Object[])args);
-        return toP(F.at(pos).Erroneous(errs));
+        JCErroneous err = F.at(pos).Erroneous(errs);
+        reportSyntaxError(err, key, (Object[])args);
+        if (errs != null) {
+            JCTree last = errs.last();
+            if (last != null)
+                storeEnd(last, pos);
+        }
+        return toP(err);
     }
 
     private int errorPos = Position.NOPOS;
+
     /**
-     * Report a syntax error at given position using the given
-     * argument unless one was already reported at the same position.
+     * Report a syntax using the given the position parameter and arguments,
+     * unless one was already reported at the same position.
      */
     private void reportSyntaxError(int pos, String key, Object... args) {
+        JCDiagnostic.DiagnosticPosition diag = new JCDiagnostic.SimpleDiagnosticPosition(pos);
+        reportSyntaxError(diag, key, args);
+    }
+
+    /**
+     * Report a syntax error using the given DiagnosticPosition object and
+     * arguments, unless one was already reported at the same position.
+     */
+    private void reportSyntaxError(JCDiagnostic.DiagnosticPosition diagPos, String key, Object... args) {
+        int pos = diagPos.getPreferredPosition();
         if (pos > S.errPos() || pos == Position.NOPOS) {
-            if (S.token() == EOF)
-                error(pos, "premature.eof");
-            else
-                error(pos, key, args);
+            if (S.token() == EOF) {
+                error(diagPos, "premature.eof");
+            } else {
+                error(diagPos, key, args);
+            }
         }
         S.errPos(pos);
         if (S.pos() == errorPos)
@@ -317,7 +339,7 @@ public class JavacParser implements Parser {
     /** Report an illegal start of expression/type error at given position.
      */
     JCExpression illegal(int pos) {
-        setErrorEndPos(S.pos());
+        setErrorEndPos(pos);
         if ((mode & EXPR) != 0)
             return syntaxError(pos, "illegal.start.of.expr");
         else
@@ -346,7 +368,7 @@ public class JavacParser implements Parser {
      *  indexed by the tree nodes they refer to.
      *  defined only if option flag keepDocComment is set.
      */
-    Map<JCTree, String> docComments;
+    private final Map<JCTree, String> docComments;
 
     /** Make an entry into docComments hashtable,
      *  provided flag keepDocComments is set and given doc comment is non-null.
@@ -468,6 +490,10 @@ public class JavacParser implements Parser {
         return t;
     }
 
+    JCExpression literal(Name prefix) {
+        return literal(prefix, S.pos());
+    }
+
     /**
      * Qualident = Ident { DOT Ident }
      * (used when we've had to lookahead at the first identifier)
@@ -494,8 +520,7 @@ public class JavacParser implements Parser {
      *   | FALSE
      *   | NULL
      */
-    JCExpression literal(Name prefix) {
-        int pos = S.pos();
+    JCExpression literal(Name prefix, int pos) {
         JCExpression t = errorTree;
         switch (S.token()) {
         case INTLITERAL:
@@ -781,6 +806,8 @@ public class JavacParser implements Parser {
          *  by a single literal representing the concatenated string.
          */
         protected StringBuffer foldStrings(JCTree tree) {
+            if (!allowStringFolding)
+                return null;
             List<String> buf = List.nil();
             while (true) {
                 if (tree.getTag() == JCTree.LITERAL) {
@@ -887,7 +914,7 @@ public class JavacParser implements Parser {
                     (S.token() == INTLITERAL || S.token() == LONGLITERAL) &&
                     S.radix() == 10) {
                     mode = EXPR;
-                    t = literal(names.hyphen);
+                    t = literal(names.hyphen, pos);
                 } else {
                     t = term3();
                     return F.at(pos).Unary(unoptag(token), t);
@@ -1285,15 +1312,17 @@ public class JavacParser implements Parser {
                 case GTGT:
                     S.token(GT);
                     break;
+                case GT:
+                    S.nextToken();
+                    break;
                 default:
-                    accept(GT);
+                    args.append(syntaxError(S.pos(), "expected", GT));
                     break;
                 }
                 return args.toList();
             }
         } else {
-            syntaxError(S.pos(), "expected", LT);
-            return List.nil();
+            return List.<JCExpression>of(syntaxError(S.pos(), "expected", LT));
         }
     }
 
@@ -1318,12 +1347,12 @@ public class JavacParser implements Parser {
             return F.at(pos).Wildcard(t, bound);
         } else if (S.token() == IDENTIFIER) {
             //error recovery
-            reportSyntaxError(S.prevEndPos(), "expected3",
-                    GT, EXTENDS, SUPER);
             TypeBoundKind t = F.at(Position.NOPOS).TypeBoundKind(BoundKind.UNBOUND);
             JCExpression wc = toP(F.at(pos).Wildcard(t, null));
             JCIdent id = toP(F.at(S.pos()).Ident(ident()));
-            return F.at(pos).Erroneous(List.<JCTree>of(wc, id));
+            JCErroneous err = F.at(pos).Erroneous(List.<JCTree>of(wc, id));
+            reportSyntaxError(err, "expected3", GT, EXTENDS, SUPER);
+            return err;
         } else {
             TypeBoundKind t = toP(F.at(pos).TypeBoundKind(BoundKind.UNBOUND));
             return toP(F.at(pos).Wildcard(t, null));
@@ -1399,20 +1428,23 @@ public class JavacParser implements Parser {
         int oldmode = mode;
         mode = TYPE;
         boolean diamondFound = false;
+        int lastTypeargsPos = -1;
         if (S.token() == LT) {
             checkGenerics();
+            lastTypeargsPos = S.pos();
             t = typeArguments(t, true);
             diamondFound = (mode & DIAMOND) != 0;
         }
         while (S.token() == DOT) {
             if (diamondFound) {
                 //cannot select after a diamond
-                illegal(S.pos());
+                illegal();
             }
             int pos = S.pos();
             S.nextToken();
             t = toP(F.at(pos).Select(t, ident()));
             if (S.token() == LT) {
+                lastTypeargsPos = S.pos();
                 checkGenerics();
                 t = typeArguments(t, true);
                 diamondFound = (mode & DIAMOND) != 0;
@@ -1421,7 +1453,11 @@ public class JavacParser implements Parser {
         mode = oldmode;
         if (S.token() == LBRACKET) {
             JCExpression e = arrayCreatorRest(newpos, t);
-            if (typeArgs != null) {
+            if (diamondFound) {
+                reportSyntaxError(lastTypeargsPos, "cannot.create.array.with.diamond");
+                return toP(F.at(newpos).Erroneous(List.of(e)));
+            }
+            else if (typeArgs != null) {
                 int pos = newpos;
                 if (!typeArgs.isEmpty() && typeArgs.head.pos != Position.NOPOS) {
                     // note: this should always happen but we should
@@ -1430,15 +1466,16 @@ public class JavacParser implements Parser {
                     pos = typeArgs.head.pos;
                 }
                 setErrorEndPos(S.prevEndPos());
-                reportSyntaxError(pos, "cannot.create.array.with.type.arguments");
-                return toP(F.at(newpos).Erroneous(typeArgs.prepend(e)));
+                JCErroneous err = F.at(pos).Erroneous(typeArgs.prepend(e));
+                reportSyntaxError(err, "cannot.create.array.with.type.arguments");
+                return toP(err);
             }
             return e;
         } else if (S.token() == LPAREN) {
             return classCreatorRest(newpos, null, typeArgs, t);
         } else {
-            reportSyntaxError(S.pos(), "expected2",
-                               LPAREN, LBRACKET);
+            setErrorEndPos(S.pos());
+            reportSyntaxError(S.pos(), "expected2", LPAREN, LBRACKET);
             t = toP(F.at(newpos).NewClass(null, typeArgs, t, List.<JCExpression>nil(), null));
             return toP(F.at(newpos).Erroneous(List.<JCTree>of(t)));
         }
@@ -1468,7 +1505,8 @@ public class JavacParser implements Parser {
             if (S.token() == LBRACE) {
                 return arrayInitializer(newpos, elemtype);
             } else {
-                return syntaxError(S.pos(), "array.dimension.missing");
+                JCExpression t = toP(F.at(newpos).NewArray(elemtype, List.<JCExpression>nil(), null));
+                return syntaxError(S.pos(), List.<JCTree>of(t), "array.dimension.missing");
             }
         } else {
             ListBuffer<JCExpression> dims = new ListBuffer<JCExpression>();
@@ -1854,7 +1892,7 @@ public class JavacParser implements Parser {
 
     /** CatchClause     = CATCH "(" FormalParameter ")" Block
      */
-    JCCatch catchClause() {
+    protected JCCatch catchClause() {
         int pos = S.pos();
         accept(CATCH);
         accept(LPAREN);
@@ -1992,7 +2030,7 @@ public class JavacParser implements Parser {
     }
 
     @SuppressWarnings("fallthrough")
-    JCModifiers modifiersOpt(ModuleModifierKind mmk, JCModifiers partial, Name constrName) {
+    protected JCModifiers modifiersOpt(ModuleModifierKind mmk, JCModifiers partial, Name constrName) {
         long flags;
         ListBuffer<JCAnnotation> annotations = new ListBuffer<JCAnnotation>();
         int pos;
@@ -2025,6 +2063,7 @@ public class JavacParser implements Parser {
             case SYNCHRONIZED: flag = Flags.SYNCHRONIZED; break;
             case STRICTFP    : flag = Flags.STRICTFP; break;
             case MONKEYS_AT  : flag = Flags.ANNOTATION; break;
+            case ERROR       : flag = 0; S.nextToken(); break;
             case IDENTIFIER:
                 if (S.name() != names.module)
                     break loop;
@@ -2273,9 +2312,12 @@ public class JavacParser implements Parser {
 
     /** Resource = VariableModifiersOpt Type VariableDeclaratorId = Expression
      */
-    JCTree resource() {
-        return variableDeclaratorRest(S.pos(), optFinal(Flags.FINAL),
-                                      parseType(), ident(), true, null);
+    protected JCTree resource() {
+        JCModifiers optFinal = optFinal(Flags.FINAL);
+        JCExpression type = parseType();
+        int pos = S.pos();
+        Name ident = ident();
+        return variableDeclaratorRest(pos, optFinal, type, ident, true, null);
     }
 
     /** CompilationUnit =
@@ -2823,7 +2865,7 @@ public class JavacParser implements Parser {
      *    | ModifiersOpt Type Ident
      *      ( ConstantDeclaratorsRest | InterfaceMethodDeclaratorRest ";" )
      */
-    List<JCTree> classOrInterfaceBodyDeclaration(Name className, Token encl) {
+    protected List<JCTree> classOrInterfaceBodyDeclaration(Name className, Token encl) {
         if (S.token() == SEMI) {
             S.nextToken();
             return List.<JCTree>of(F.at(Position.NOPOS).Block(0, List.<JCStatement>nil()));
@@ -3026,7 +3068,7 @@ public class JavacParser implements Parser {
     /** FormalParameter = { FINAL | '@' Annotation } Type VariableDeclaratorId
      *  LastFormalParameter = { FINAL | '@' Annotation } Type '...' Ident | FormalParameter
      */
-    JCVariableDecl formalParameter() {
+    protected JCVariableDecl formalParameter() {
         JCModifiers mods = optFinal(Flags.PARAMETER);
         JCExpression type = parseType();
         if (S.token() == ELLIPSIS) {
@@ -3044,6 +3086,10 @@ public class JavacParser implements Parser {
         log.error(DiagnosticFlag.SYNTAX, pos, key, args);
     }
 
+    void error(DiagnosticPosition pos, String key, Object ... args) {
+        log.error(DiagnosticFlag.SYNTAX, pos, key, args);
+    }
+
     void warning(int pos, String key, Object ... args) {
         log.warning(pos, key, args);
     }
@@ -3063,8 +3109,9 @@ public class JavacParser implements Parser {
         case JCTree.ERRONEOUS:
             return t;
         default:
-            error(t.pos, "not.stmt");
-            return F.at(t.pos).Erroneous(List.<JCTree>of(t));
+            JCExpression ret = F.at(t.pos).Erroneous(List.<JCTree>of(t));
+            error(ret, "not.stmt");
+            return ret;
         }
     }
 
diff --git a/langtools/src/share/classes/com/sun/tools/javac/parser/Scanner.java b/langtools/src/share/classes/com/sun/tools/javac/parser/Scanner.java
index d17aabe..5325ec7 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/Scanner.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/Scanner.java
@@ -1090,8 +1090,16 @@ public class Scanner implements Lexer {
     }
 
     /** Sets the current token.
+     * This method is primarily used to update the token stream when the
+     * parser is handling the end of nested type arguments such as
+     * {@code List<List<String>>} and needs to disambiguate between
+     * repeated use of ">" and relation operators such as ">>" and ">>>". Noting
+     * that this does not handle arbitrary tokens containing Unicode escape
+     * sequences.
      */
     public void token(Token token) {
+        pos += this.token.name.length() - token.name.length();
+        prevEndPos = pos;
         this.token = token;
     }
 
diff --git a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java
index 1f712e2..d023361 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -455,9 +455,24 @@ public class JavacFiler implements Filer, Closeable {
         // TODO: Only support reading resources in selected output
         // locations?  Only allow reading of non-source, non-class
         // files from the supported input locations?
-        FileObject fileObject = fileManager.getFileForInput(location,
+
+        // In the following, getFileForInput is the "obvious" method
+        // to use, but it does not have the "obvious" semantics for
+        // SOURCE_OUTPUT and CLASS_OUTPUT. Conversely, getFileForOutput
+        // does not have the correct semantics for any "path" location
+        // with more than one component. So, for now, we use a hybrid
+        // invocation.
+        FileObject fileObject;
+        if (location.isOutputLocation()) {
+            fileObject = fileManager.getFileForOutput(location,
+                    pkg.toString(),
+                    relativeName.toString(),
+                    null);
+        } else {
+            fileObject = fileManager.getFileForInput(location,
                     pkg.toString(),
                     relativeName.toString());
+        }
         if (fileObject == null) {
             String name = (pkg.length() == 0)
                     ? relativeName.toString() : (pkg + "/" + relativeName);
diff --git a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java
index a0d4a04..540d38a 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java
@@ -225,6 +225,11 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
                     ? fileManager.getClassLoader(ANNOTATION_PROCESSOR_PATH)
                     : fileManager.getClassLoader(CLASS_PATH);
 
+                if (processorClassLoader != null && processorClassLoader instanceof Closeable) {
+                    JavaCompiler compiler = JavaCompiler.instance(context);
+                    compiler.closeables = compiler.closeables.prepend((Closeable) processorClassLoader);
+                }
+
                 /*
                  * If the "-processor" option is used, search the appropriate
                  * path for the named class.  Otherwise, use a service
@@ -720,7 +725,7 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
      * Leave class public for external testing purposes.
      */
     public static class ComputeAnnotationSet extends
-        ElementScanner7<Set<TypeElement>, Set<TypeElement>> {
+        ElementScanner8<Set<TypeElement>, Set<TypeElement>> {
         final Elements elements;
 
         public ComputeAnnotationSet(Elements elements) {
@@ -1211,14 +1216,6 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea
         if (discoveredProcs != null) // Make calling close idempotent
             discoveredProcs.close();
         discoveredProcs = null;
-        if (processorClassLoader != null && processorClassLoader instanceof Closeable) {
-            try {
-                ((Closeable) processorClassLoader).close();
-            } catch (IOException e) {
-                JCDiagnostic msg = diags.fragment("fatal.err.cant.close.loader");
-                throw new FatalError(msg, e);
-            }
-        }
     }
 
     private List<ClassSymbol> getTopLevelClasses(List<? extends JCCompilationUnit> units) {
diff --git a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java
index 1131c67..18779a2 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -125,7 +125,7 @@ public class JavacRoundEnvironment implements RoundEnvironment {
         else
             throw new AssertionError("Bad implementation type for " + tm);
 
-        ElementScanner7<Set<Element>, DeclaredType> scanner =
+        ElementScanner8<Set<Element>, DeclaredType> scanner =
             new AnnotationSetScanner(result, typeUtil);
 
         for (Element element : rootElements)
@@ -136,7 +136,7 @@ public class JavacRoundEnvironment implements RoundEnvironment {
 
     // Could be written as a local class inside getElementsAnnotatedWith
     private class AnnotationSetScanner extends
-        ElementScanner7<Set<Element>, DeclaredType> {
+        ElementScanner8<Set<Element>, DeclaredType> {
         // Insertion-order preserving set
         Set<Element> annotatedElements = new LinkedHashSet<Element>();
         Types typeUtil;
diff --git a/langtools/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java b/langtools/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java
index 798c998..4a85f79 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java
@@ -82,7 +82,7 @@ public class PrintingProcessor extends AbstractProcessor {
      * Used for the -Xprint option and called by Elements.printElements
      */
     public static class PrintingElementVisitor
-        extends SimpleElementVisitor7<PrintingElementVisitor, Boolean> {
+        extends SimpleElementVisitor8<PrintingElementVisitor, Boolean> {
         int indentation; // Indentation level;
         final PrintWriter writer;
         final Elements elementUtils;
diff --git a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties
index c36450b..5bff872 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties
+++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties
@@ -68,9 +68,13 @@ compiler.err.abstract.meth.cant.have.body=\
 compiler.err.already.annotated=\
     {0} {1} has already been annotated
 
-# 0: symbol, 1: symbol
+# 0: symbol kind, 1: symbol, 2: symbol kind, 3: symbol
 compiler.err.already.defined=\
-    {0} is already defined in {1}
+    {0} {1} is already defined in {2} {3}
+
+# 0: symbol kind, 1: symbol, 2: symbol kind, 3: symbol kind, 4: symbol
+compiler.err.already.defined.in.clinit=\
+    {0} {1} is already defined in {2} of {3} {4}
 
 # 0: string
 compiler.err.already.defined.single.import=\
@@ -462,6 +466,9 @@ compiler.err.local.enum=\
 compiler.err.cannot.create.array.with.type.arguments=\
     cannot create array with type arguments
 
+compiler.err.cannot.create.array.with.diamond=\
+    cannot create array with ''<>''
+
 #
 # limits.  We don't give the limits in the diagnostic because we expect
 # them to change, yet we want to use the same diagnostic.  These are all
@@ -909,8 +916,8 @@ compiler.misc.fatal.err.cant.locate.field=\
 compiler.misc.fatal.err.cant.locate.ctor=\
     Fatal Error: Unable to find constructor for {0}
 
-compiler.misc.fatal.err.cant.close.loader=\
-    Fatal Error: Cannot close class loader for annotation processors
+compiler.misc.fatal.err.cant.close=\
+    Fatal Error: Cannot close compiler resources
 
 #####
 
@@ -1622,6 +1629,10 @@ compiler.misc.no.unique.maximal.instance.exists=\
 compiler.misc.no.unique.minimal.instance.exists=\
     no unique minimal instance exists for type variable {0} with lower bounds {1}
 
+# 0: type, 1: list of type
+compiler.misc.incompatible.upper.bounds=\
+    inference variable {0} has incompatible upper bounds {1}
+
 # 0: list of type, 1: type, 2: type
 compiler.misc.infer.no.conforming.instance.exists=\
     no instance(s) of type variable(s) {0} exist so that {1} conforms to {2}
@@ -1777,6 +1788,12 @@ compiler.misc.kindname.class=\
 compiler.misc.kindname.package=\
     package
 
+compiler.misc.kindname.static.init=\
+    static initializer
+
+compiler.misc.kindname.instance.init=\
+    instance initializer
+
 compiler.misc.kindname.module=\
     module
 
diff --git a/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java b/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java
index bf10a9b..023f5fa 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java
@@ -446,7 +446,6 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
         public PackageSymbol packge;
         public ImportScope namedImportScope;
         public StarImportScope starImportScope;
-        public long flags;
         public Position.LineMap lineMap = null;
         public Map<JCTree, String> docComments = null;
         public Map<JCTree, Integer> endPositions = null;
@@ -1186,6 +1185,21 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
         public int getTag() {
             return EXEC;
         }
+
+        /** Convert a expression-statement tree to a pretty-printed string. */
+        @Override
+        public String toString() {
+            StringWriter s = new StringWriter();
+            try {
+                new Pretty(s, false).printStat(this);
+            }
+            catch (IOException e) {
+                // should never happen, because StringWriter is defined
+                // never to throw any IOExceptions
+                throw new AssertionError(e);
+            }
+            return s.toString();
+        }
     }
 
     /**
diff --git a/langtools/src/share/classes/com/sun/tools/javac/util/AbstractLog.java b/langtools/src/share/classes/com/sun/tools/javac/util/AbstractLog.java
index d112376..ca25a5b 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/util/AbstractLog.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/AbstractLog.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -96,6 +96,19 @@ public abstract class AbstractLog {
 
     /** Report an error, unless another error was already reported at same
      *  source position.
+     *  @param flag   A flag to set on the diagnostic
+     *  @param pos    The source position at which to report the error.
+     *  @param key    The key for the localized error message.
+     *  @param args   Fields of the error message.
+     */
+    public void error(DiagnosticFlag flag, DiagnosticPosition pos, String key, Object ... args) {
+        JCDiagnostic d = diags.error(source, pos, key, args);
+        d.setFlag(flag);
+        report(d);
+    }
+
+    /** Report an error, unless another error was already reported at same
+     *  source position.
      *  @param pos    The source position at which to report the error.
      *  @param key    The key for the localized error message.
      *  @param args   Fields of the error message.
diff --git a/langtools/src/share/classes/com/sun/tools/javac/util/BaseFileManager.java b/langtools/src/share/classes/com/sun/tools/javac/util/BaseFileManager.java
index 7a8f74d..c9d7d8b 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/util/BaseFileManager.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/BaseFileManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -322,16 +322,46 @@ public abstract class BaseFileManager {
 
     // <editor-fold defaultstate="collapsed" desc="Content cache">
     public CharBuffer getCachedContent(JavaFileObject file) {
-        SoftReference<CharBuffer> r = contentCache.get(file);
-        return (r == null ? null : r.get());
+        ContentCacheEntry e = contentCache.get(file);
+        if (e == null)
+            return null;
+
+        if (!e.isValid(file)) {
+            contentCache.remove(file);
+            return null;
+        }
+
+        return e.getValue();
     }
 
     public void cache(JavaFileObject file, CharBuffer cb) {
-        contentCache.put(file, new SoftReference<CharBuffer>(cb));
+        contentCache.put(file, new ContentCacheEntry(file, cb));
     }
 
-    protected final Map<JavaFileObject, SoftReference<CharBuffer>> contentCache
-            = new HashMap<JavaFileObject, SoftReference<CharBuffer>>();
+    public void flushCache(JavaFileObject file) {
+        contentCache.remove(file);
+    }
+
+    protected final Map<JavaFileObject, ContentCacheEntry> contentCache
+            = new HashMap<JavaFileObject, ContentCacheEntry>();
+
+    protected static class ContentCacheEntry {
+        final long timestamp;
+        final SoftReference<CharBuffer> ref;
+
+        ContentCacheEntry(JavaFileObject file, CharBuffer cb) {
+            this.timestamp = file.getLastModified();
+            this.ref = new SoftReference<CharBuffer>(cb);
+        }
+
+        boolean isValid(JavaFileObject file) {
+            return timestamp == file.getLastModified();
+        }
+
+        CharBuffer getValue() {
+            return ref.get();
+        }
+    }
     // </editor-fold>
 
     public static Kind getKind(String name) {
diff --git a/langtools/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java b/langtools/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java
index 44badbf..24861c2 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java
@@ -412,7 +412,7 @@ public class RichDiagnosticFormatter extends
         @Override
         public String visitMethodSymbol(MethodSymbol s, Locale locale) {
             String ownerName = visit(s.owner, locale);
-            if ((s.flags() & BLOCK) != 0) {
+            if (s.isStaticOrInstanceInit()) {
                return ownerName;
             } else {
                 String ms = (s.name == s.name.table.names.init)
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java b/langtools/src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java
index 1cd83c1..3c2efa3 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -46,11 +46,11 @@ import com.sun.tools.javac.util.Position;
 public class AnnotationTypeDocImpl
         extends ClassDocImpl implements AnnotationTypeDoc {
 
-    AnnotationTypeDocImpl(DocEnv env, ClassSymbol sym) {
+    public AnnotationTypeDocImpl(DocEnv env, ClassSymbol sym) {
         this(env, sym, null, null, null);
     }
 
-    AnnotationTypeDocImpl(DocEnv env, ClassSymbol sym,
+    public AnnotationTypeDocImpl(DocEnv env, ClassSymbol sym,
                           String doc, JCClassDecl tree, Position.LineMap lineMap) {
         super(env, sym, doc, tree, lineMap);
     }
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/AnnotationTypeElementDocImpl.java b/langtools/src/share/classes/com/sun/tools/javadoc/AnnotationTypeElementDocImpl.java
index bc742cd..e5632dc 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/AnnotationTypeElementDocImpl.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/AnnotationTypeElementDocImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,11 +45,11 @@ import com.sun.tools.javac.util.Position;
 public class AnnotationTypeElementDocImpl
         extends MethodDocImpl implements AnnotationTypeElementDoc {
 
-    AnnotationTypeElementDocImpl(DocEnv env, MethodSymbol sym) {
+    public AnnotationTypeElementDocImpl(DocEnv env, MethodSymbol sym) {
         super(env, sym);
     }
 
-    AnnotationTypeElementDocImpl(DocEnv env, MethodSymbol sym,
+    public AnnotationTypeElementDocImpl(DocEnv env, MethodSymbol sym,
                                  String doc, JCMethodDecl tree, Position.LineMap lineMap) {
         super(env, sym, doc, tree, lineMap);
     }
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java b/langtools/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java
index fdd1b8b..592d0be 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java
@@ -744,17 +744,16 @@ public class ClassDocImpl extends ProgramElementDocImpl implements ClassDoc {
         // search inner classes
         //### Add private entry point to avoid creating array?
         //### Replicate code in innerClasses here to avoid consing?
-        ClassDoc innerClasses[] = innerClasses();
-        for (int i = 0; i < innerClasses.length; i++) {
-            if (innerClasses[i].name().equals(className) ||
-                //### This is from original javadoc but it looks suspicious to me...
-                //### I believe it is attempting to compensate for the confused
-                //### convention of including the nested class qualifiers in the
-                //### 'name' of the inner class, rather than the true simple name.
-                innerClasses[i].name().endsWith(className)) {
-                return innerClasses[i];
+        for (ClassDoc icd : innerClasses()) {
+            if (icd.name().equals(className) ||
+                    //### This is from original javadoc but it looks suspicious to me...
+                    //### I believe it is attempting to compensate for the confused
+                    //### convention of including the nested class qualifiers in the
+                    //### 'name' of the inner class, rather than the true simple name.
+                    icd.name().endsWith("." + className)) {
+                return icd;
             } else {
-                ClassDoc innercd = ((ClassDocImpl) innerClasses[i]).searchClass(className);
+                ClassDoc innercd = ((ClassDocImpl) icd).searchClass(className);
                 if (innercd != null) {
                     return innercd;
                 }
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/Comment.java b/langtools/src/share/classes/com/sun/tools/javadoc/Comment.java
index 5091a2d..648f55e 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/Comment.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/Comment.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,10 +25,7 @@
 
 package com.sun.tools.javadoc;
 
-import java.util.Locale;
-
 import com.sun.javadoc.*;
-
 import com.sun.tools.javac.util.ListBuffer;
 
 /**
@@ -115,7 +112,7 @@ class Comment {
                                 state = TAG_NAME;
                             }
                             break;
-                    };
+                    }
                     if (ch == '\n') {
                         newLine = true;
                     } else if (!isWhite) {
@@ -134,7 +131,7 @@ class Comment {
                     case IN_TEXT:
                         parseCommentComponent(tagName, textStart, lastNonWhite+1);
                         break;
-                };
+                }
             }
 
             /**
@@ -396,16 +393,15 @@ class Comment {
      * else
      *    return -1.
      */
-    private static int inlineTagFound(DocImpl holder,  String inlinetext, int start) {
+    private static int inlineTagFound(DocImpl holder, String inlinetext, int start) {
         DocEnv docenv = holder.env;
-        int linkstart;
-        if (start == inlinetext.length() ||
-              (linkstart = inlinetext.indexOf("{@", start)) == -1) {
+        int linkstart = inlinetext.indexOf("{@", start);
+        if (start == inlinetext.length() || linkstart == -1) {
             return -1;
-        } else if(inlinetext.indexOf('}', start) == -1) {
+        } else if (inlinetext.indexOf('}', linkstart) == -1) {
             //Missing '}'.
             docenv.warning(holder, "tag.Improper_Use_Of_Link_Tag",
-                          inlinetext.substring(linkstart, inlinetext.length()));
+                    inlinetext.substring(linkstart, inlinetext.length()));
             return -1;
         } else {
             return linkstart;
@@ -425,6 +421,7 @@ class Comment {
     /**
      * Return text for this Doc comment.
      */
+    @Override
     public String toString() {
         return text;
     }
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java b/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
index 739e66f..5887c50 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -84,7 +84,7 @@ public class DocEnv {
     final Symbol externalizableSym;
 
     /** Access filter (public, protected, ...).  */
-    ModifierFilter showAccess;
+    protected ModifierFilter showAccess;
 
     /** True if we are using a sentence BreakIterator. */
     boolean breakiterator;
@@ -102,7 +102,7 @@ public class DocEnv {
     boolean docClasses = false;
 
     /** Does the doclet only expect pre-1.5 doclet API? */
-    boolean legacyDoclet = true;
+    protected boolean legacyDoclet = true;
 
     /**
      * Set this to true if you would like to not emit any errors, warnings and
@@ -115,7 +115,7 @@ public class DocEnv {
      *
      * @param context      Context for this javadoc instance.
      */
-    private DocEnv(Context context) {
+    protected DocEnv(Context context) {
         context.put(docEnvKey, this);
 
         messager = Messager.instance0(context);
@@ -517,7 +517,7 @@ public class DocEnv {
         messager.exit();
     }
 
-    private Map<PackageSymbol, PackageDocImpl> packageMap =
+    protected Map<PackageSymbol, PackageDocImpl> packageMap =
             new HashMap<PackageSymbol, PackageDocImpl>();
     /**
      * Return the PackageDoc of this package symbol.
@@ -545,12 +545,12 @@ public class DocEnv {
     }
 
 
-    private Map<ClassSymbol, ClassDocImpl> classMap =
+    protected Map<ClassSymbol, ClassDocImpl> classMap =
             new HashMap<ClassSymbol, ClassDocImpl>();
     /**
      * Return the ClassDoc (or a subtype) of this class symbol.
      */
-    ClassDocImpl getClassDoc(ClassSymbol clazz) {
+    public ClassDocImpl getClassDoc(ClassSymbol clazz) {
         ClassDocImpl result = classMap.get(clazz);
         if (result != null) return result;
         if (isAnnotationType(clazz)) {
@@ -565,7 +565,7 @@ public class DocEnv {
     /**
      * Create the ClassDoc (or a subtype) for a class symbol.
      */
-    void makeClassDoc(ClassSymbol clazz, String docComment, JCClassDecl tree, Position.LineMap lineMap) {
+    protected void makeClassDoc(ClassSymbol clazz, String docComment, JCClassDecl tree, Position.LineMap lineMap) {
         ClassDocImpl result = classMap.get(clazz);
         if (result != null) {
             if (docComment != null) result.setRawCommentText(docComment);
@@ -580,20 +580,20 @@ public class DocEnv {
         classMap.put(clazz, result);
     }
 
-    private static boolean isAnnotationType(ClassSymbol clazz) {
+    protected static boolean isAnnotationType(ClassSymbol clazz) {
         return ClassDocImpl.isAnnotationType(clazz);
     }
 
-    private static boolean isAnnotationType(JCClassDecl tree) {
+    protected static boolean isAnnotationType(JCClassDecl tree) {
         return (tree.mods.flags & Flags.ANNOTATION) != 0;
     }
 
-    private Map<VarSymbol, FieldDocImpl> fieldMap =
+    protected Map<VarSymbol, FieldDocImpl> fieldMap =
             new HashMap<VarSymbol, FieldDocImpl>();
     /**
      * Return the FieldDoc of this var symbol.
      */
-    FieldDocImpl getFieldDoc(VarSymbol var) {
+    public FieldDocImpl getFieldDoc(VarSymbol var) {
         FieldDocImpl result = fieldMap.get(var);
         if (result != null) return result;
         result = new FieldDocImpl(this, var);
@@ -603,7 +603,7 @@ public class DocEnv {
     /**
      * Create a FieldDoc for a var symbol.
      */
-    void makeFieldDoc(VarSymbol var, String docComment, JCVariableDecl tree, Position.LineMap lineMap) {
+    protected void makeFieldDoc(VarSymbol var, String docComment, JCVariableDecl tree, Position.LineMap lineMap) {
         FieldDocImpl result = fieldMap.get(var);
         if (result != null) {
             if (docComment != null) result.setRawCommentText(docComment);
@@ -614,13 +614,13 @@ public class DocEnv {
         }
     }
 
-    private Map<MethodSymbol, ExecutableMemberDocImpl> methodMap =
+    protected Map<MethodSymbol, ExecutableMemberDocImpl> methodMap =
             new HashMap<MethodSymbol, ExecutableMemberDocImpl>();
     /**
      * Create a MethodDoc for this MethodSymbol.
      * Should be called only on symbols representing methods.
      */
-    void makeMethodDoc(MethodSymbol meth, String docComment,
+    protected void makeMethodDoc(MethodSymbol meth, String docComment,
                        JCMethodDecl tree, Position.LineMap lineMap) {
         MethodDocImpl result = (MethodDocImpl)methodMap.get(meth);
         if (result != null) {
@@ -649,7 +649,7 @@ public class DocEnv {
      * Create the ConstructorDoc for a MethodSymbol.
      * Should be called only on symbols representing constructors.
      */
-    void makeConstructorDoc(MethodSymbol meth, String docComment,
+    protected void makeConstructorDoc(MethodSymbol meth, String docComment,
                             JCMethodDecl tree, Position.LineMap lineMap) {
         ConstructorDocImpl result = (ConstructorDocImpl)methodMap.get(meth);
         if (result != null) {
@@ -678,7 +678,7 @@ public class DocEnv {
      * Create the AnnotationTypeElementDoc for a MethodSymbol.
      * Should be called only on symbols representing annotation type elements.
      */
-    void makeAnnotationTypeElementDoc(MethodSymbol meth,
+    protected void makeAnnotationTypeElementDoc(MethodSymbol meth,
                                       String docComment, JCMethodDecl tree, Position.LineMap lineMap) {
         AnnotationTypeElementDocImpl result =
             (AnnotationTypeElementDocImpl)methodMap.get(meth);
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/DocImpl.java b/langtools/src/share/classes/com/sun/tools/javadoc/DocImpl.java
index 008ccb5..25b480a 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/DocImpl.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/DocImpl.java
@@ -92,7 +92,7 @@ public abstract class DocImpl implements Doc, Comparable<Object> {
      * So subclasses have the option to do lazy initialization of
      * "documentation" string.
      */
-    String documentation() {
+    protected String documentation() {
         if (documentation == null) documentation = "";
         return documentation;
     }
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java b/langtools/src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java
index 9366a24..67fa61d 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java
@@ -35,7 +35,7 @@ import com.sun.tools.javac.util.Context;
 /** Javadoc uses an extended class reader that records package.html entries
  *  @author Neal Gafter
  */
-class JavadocClassReader extends ClassReader {
+public class JavadocClassReader extends ClassReader {
 
     public static JavadocClassReader instance0(Context context) {
         ClassReader instance = context.get(classReaderKey);
@@ -59,7 +59,7 @@ class JavadocClassReader extends ClassReader {
     private EnumSet<JavaFileObject.Kind> noSource = EnumSet.of(JavaFileObject.Kind.CLASS,
                                                                JavaFileObject.Kind.HTML);
 
-    private JavadocClassReader(Context context) {
+    public JavadocClassReader(Context context) {
         super(context, true);
         docenv = DocEnv.instance(context);
         preferSource = true;
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/JavadocEnter.java b/langtools/src/share/classes/com/sun/tools/javadoc/JavadocEnter.java
index 59dd95a..bb9f72d 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/JavadocEnter.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/JavadocEnter.java
@@ -31,7 +31,6 @@ import com.sun.tools.javac.util.List;
 import com.sun.tools.javac.code.Kinds;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.comp.Enter;
-import com.sun.tools.javac.tree.JCTree;
 import com.sun.tools.javac.tree.JCTree.*;
 import javax.tools.JavaFileObject;
 
@@ -65,6 +64,7 @@ public class JavadocEnter extends Enter {
     final Messager messager;
     final DocEnv docenv;
 
+    @Override
     public void main(List<JCCompilationUnit> trees) {
         // count all Enter errors as warnings.
         int nerrors = messager.nerrors;
@@ -73,6 +73,7 @@ public class JavadocEnter extends Enter {
         messager.nerrors = nerrors;
     }
 
+    @Override
     public void visitTopLevel(JCCompilationUnit tree) {
         super.visitTopLevel(tree);
         if (tree.sourcefile.isNameCompatible("package-info", JavaFileObject.Kind.SOURCE)) {
@@ -81,10 +82,11 @@ public class JavadocEnter extends Enter {
         }
     }
 
+    @Override
     public void visitClassDef(JCClassDecl tree) {
         super.visitClassDef(tree);
-        if (tree.sym != null && tree.sym.kind == Kinds.TYP) {
-            if (tree.sym == null) return;
+        if (tree.sym == null) return;
+        if (tree.sym.kind == Kinds.TYP || tree.sym.kind == Kinds.ERR) {
             String comment = env.toplevel.docComments.get(tree);
             ClassSymbol c = tree.sym;
             docenv.makeClassDoc(c, comment, tree, env.toplevel.lineMap);
@@ -92,6 +94,7 @@ public class JavadocEnter extends Enter {
     }
 
     /** Don't complain about a duplicate class. */
+    @Override
     protected void duplicateClass(DiagnosticPosition pos, ClassSymbol c) {}
 
 }
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java b/langtools/src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java
index 3a4a0ea..fa9c858 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java
@@ -38,7 +38,7 @@ import com.sun.tools.javac.tree.JCTree.*;
  *  done by javac.
  *  @author Neal Gafter
  */
-class JavadocMemberEnter extends MemberEnter {
+public class JavadocMemberEnter extends MemberEnter {
     public static JavadocMemberEnter instance0(Context context) {
         MemberEnter instance = context.get(memberEnterKey);
         if (instance == null)
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java b/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java
index cac7f99..1209686 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -257,24 +257,15 @@ public class JavadocTool extends com.sun.tools.javac.main.JavaCompiler {
         for (String p: excludedPackages)
             includedPackages.put(p, false);
 
-        if (docenv.fileManager.hasLocation(StandardLocation.SOURCE_PATH)) {
-            searchSubPackages(subPackages,
-                    includedPackages,
-                    packages, packageFiles,
-                    StandardLocation.SOURCE_PATH,
-                    EnumSet.of(JavaFileObject.Kind.SOURCE));
-            searchSubPackages(subPackages,
-                    includedPackages,
-                    packages, packageFiles,
-                    StandardLocation.CLASS_PATH,
-                    EnumSet.of(JavaFileObject.Kind.CLASS));
-        } else {
-            searchSubPackages(subPackages,
-                    includedPackages,
-                    packages, packageFiles,
-                    StandardLocation.CLASS_PATH,
-                    EnumSet.of(JavaFileObject.Kind.SOURCE, JavaFileObject.Kind.CLASS));
-        }
+        StandardLocation path = docenv.fileManager.hasLocation(StandardLocation.SOURCE_PATH)
+                ? StandardLocation.SOURCE_PATH : StandardLocation.CLASS_PATH;
+
+        searchSubPackages(subPackages,
+                includedPackages,
+                packages, packageFiles,
+                path,
+                EnumSet.of(JavaFileObject.Kind.SOURCE));
+
         return packageFiles;
     }
 
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java b/langtools/src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java
index 88ac921..4c7e472 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -96,7 +96,7 @@ public class PackageDocImpl extends DocImpl implements PackageDoc {
     /**
      * Do lazy initialization of "documentation" string.
      */
-    String documentation() {
+    protected String documentation() {
         if (documentation != null)
             return documentation;
         if (docPath != null) {
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/ParamTagImpl.java b/langtools/src/share/classes/com/sun/tools/javadoc/ParamTagImpl.java
index 5430c21..60809bb 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/ParamTagImpl.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/ParamTagImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -44,6 +44,11 @@ class ParamTagImpl extends TagImpl implements ParamTag {
     private final String parameterComment;
     private final boolean isTypeParameter;
 
+    /**
+     * Cached inline tags.
+     */
+    private Tag[] inlineTags;
+
     ParamTagImpl(DocImpl holder, String name, String text) {
         super(holder, name, text);
         String[] sa = divideAtWhite();
@@ -71,6 +76,7 @@ class ParamTagImpl extends TagImpl implements ParamTag {
     /**
      * Return the kind of this tag.
      */
+    @Override
     public String kind() {
         return "@param";
     }
@@ -85,6 +91,7 @@ class ParamTagImpl extends TagImpl implements ParamTag {
     /**
      * convert this object to a string.
      */
+    @Override
     public String toString() {
         return name + ":" + text;
     }
@@ -97,7 +104,11 @@ class ParamTagImpl extends TagImpl implements ParamTag {
      * @see TagImpl#inlineTagImpls()
      * @see ThrowsTagImpl#inlineTagImpls()
      */
+    @Override
     public Tag[] inlineTags() {
-        return Comment.getInlineTags(holder, parameterComment);
+        if (inlineTags == null) {
+            inlineTags = Comment.getInlineTags(holder, parameterComment);
+        }
+        return inlineTags;
     }
 }
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/SerialFieldTagImpl.java b/langtools/src/share/classes/com/sun/tools/javadoc/SerialFieldTagImpl.java
index bf9eb4e..c429ba7 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/SerialFieldTagImpl.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/SerialFieldTagImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -80,6 +80,9 @@ class SerialFieldTagImpl
      */
     private void parseSerialFieldString() {
         int len = text.length();
+        if (len == 0) {
+            return;
+        }
 
         // if no white space found
         /* Skip white space. */
diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/ThrowsTagImpl.java b/langtools/src/share/classes/com/sun/tools/javadoc/ThrowsTagImpl.java
index 4c65086..f63ffec 100644
--- a/langtools/src/share/classes/com/sun/tools/javadoc/ThrowsTagImpl.java
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/ThrowsTagImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,6 +43,11 @@ class ThrowsTagImpl extends TagImpl implements ThrowsTag {
     private final String exceptionName;
     private final String exceptionComment;
 
+    /**
+     * Cached inline tags.
+     */
+    private Tag[] inlineTags;
+
     ThrowsTagImpl(DocImpl holder, String name, String text) {
         super(holder, name, text);
         String[] sa = divideAtWhite();
@@ -93,6 +98,7 @@ class ThrowsTagImpl extends TagImpl implements ThrowsTag {
      * Return the kind of this tag.  Always "@throws" for instances
      * of ThrowsTagImpl.
      */
+    @Override
     public String kind() {
         return "@throws";
     }
@@ -105,7 +111,11 @@ class ThrowsTagImpl extends TagImpl implements ThrowsTag {
      * @see TagImpl#inlineTagImpls()
      * @see ParamTagImpl#inlineTagImpls()
      */
+    @Override
     public Tag[] inlineTags() {
-        return Comment.getInlineTags(holder, exceptionComment());
+        if (inlineTags == null) {
+            inlineTags = Comment.getInlineTags(holder, exceptionComment());
+        }
+        return inlineTags;
     }
 }
diff --git a/langtools/src/share/classes/com/sun/tools/javah/JavahTask.java b/langtools/src/share/classes/com/sun/tools/javah/JavahTask.java
index ebd1444..2fd98b0 100644
--- a/langtools/src/share/classes/com/sun/tools/javah/JavahTask.java
+++ b/langtools/src/share/classes/com/sun/tools/javah/JavahTask.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -60,7 +60,7 @@ import javax.lang.model.type.DeclaredType;
 import javax.lang.model.type.TypeMirror;
 import javax.lang.model.type.TypeVisitor;
 import javax.lang.model.util.ElementFilter;
-import javax.lang.model.util.SimpleTypeVisitor7;
+import javax.lang.model.util.SimpleTypeVisitor8;
 import javax.lang.model.util.Types;
 
 import javax.tools.Diagnostic;
@@ -753,7 +753,7 @@ public class JavahTask implements NativeHeaderTool.NativeHeaderTask {
         }
 
         private TypeVisitor<Void,Types> checkMethodParametersVisitor =
-                new SimpleTypeVisitor7<Void,Types>() {
+                new SimpleTypeVisitor8<Void,Types>() {
             @Override
             public Void visitArray(ArrayType t, Types types) {
                 visit(t.getComponentType(), types);
diff --git a/langtools/src/share/classes/com/sun/tools/javah/LLNI.java b/langtools/src/share/classes/com/sun/tools/javah/LLNI.java
index b011fba..ab67f8c 100644
--- a/langtools/src/share/classes/com/sun/tools/javah/LLNI.java
+++ b/langtools/src/share/classes/com/sun/tools/javah/LLNI.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,7 +45,7 @@ import javax.lang.model.type.TypeKind;
 import javax.lang.model.type.TypeMirror;
 import javax.lang.model.type.TypeVisitor;
 import javax.lang.model.util.ElementFilter;
-import javax.lang.model.util.SimpleTypeVisitor7;
+import javax.lang.model.util.SimpleTypeVisitor8;
 
 /*
  * <p><b>This is NOT part of any supported API.
@@ -628,7 +628,7 @@ public class LLNI extends Gen {
     }
 
     protected final boolean isLongOrDouble(TypeMirror t) {
-        TypeVisitor<Boolean,Void> v = new SimpleTypeVisitor7<Boolean,Void>() {
+        TypeVisitor<Boolean,Void> v = new SimpleTypeVisitor8<Boolean,Void>() {
             public Boolean defaultAction(TypeMirror t, Void p){
                 return false;
             }
diff --git a/langtools/src/share/classes/com/sun/tools/javah/TypeSignature.java b/langtools/src/share/classes/com/sun/tools/javah/TypeSignature.java
index 0c0c542..ecd0636 100644
--- a/langtools/src/share/classes/com/sun/tools/javah/TypeSignature.java
+++ b/langtools/src/share/classes/com/sun/tools/javah/TypeSignature.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,7 @@ import javax.lang.model.type.TypeMirror;
 import javax.lang.model.type.TypeVariable;
 import javax.lang.model.type.TypeVisitor;
 import javax.lang.model.util.Elements;
-import javax.lang.model.util.SimpleTypeVisitor7;
+import javax.lang.model.util.SimpleTypeVisitor8;
 
 /**
  * Returns internal type signature.
@@ -245,7 +245,7 @@ public class TypeSignature {
 
 
     String qualifiedTypeName(TypeMirror type) {
-        TypeVisitor<Name, Void> v = new SimpleTypeVisitor7<Name, Void>() {
+        TypeVisitor<Name, Void> v = new SimpleTypeVisitor8<Name, Void>() {
             @Override
             public Name visitArray(ArrayType t, Void p) {
                 return t.getComponentType().accept(this, p);
diff --git a/langtools/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor6.java b/langtools/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor6.java
index 0ed30ef..e36a00f 100644
--- a/langtools/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor6.java
+++ b/langtools/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor6.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -64,6 +64,7 @@ import javax.annotation.processing.SupportedSourceVersion;
  * @author Peter von der Ahé
  *
  * @see AbstractAnnotationValueVisitor7
+ * @see AbstractAnnotationValueVisitor8
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
diff --git a/langtools/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java b/langtools/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java
index f728c1a..4a5ac1c 100644
--- a/langtools/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java
+++ b/langtools/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -59,6 +59,7 @@ import javax.annotation.processing.SupportedSourceVersion;
  * @param <P> the type of the additional parameter to this visitor's methods.
  *
  * @see AbstractAnnotationValueVisitor6
+ * @see AbstractAnnotationValueVisitor8
  * @since 1.7
  */
 @SupportedSourceVersion(RELEASE_7)
diff --git a/langtools/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor8.java b/langtools/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor8.java
new file mode 100644
index 0000000..2129464
--- /dev/null
+++ b/langtools/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor8.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javax.lang.model.util;
+
+import java.util.List;
+import javax.lang.model.element.*;
+
+import javax.lang.model.type.TypeMirror;
+import static javax.lang.model.SourceVersion.*;
+import javax.lang.model.SourceVersion;
+import javax.annotation.processing.SupportedSourceVersion;
+
+/**
+ * A skeletal visitor for annotation values with default behavior
+ * appropriate for the {@link SourceVersion#RELEASE_8 RELEASE_8}
+ * source version.
+ *
+ * <p> <b>WARNING:</b> The {@code AnnotationValueVisitor} interface
+ * implemented by this class may have methods added to it in the
+ * future to accommodate new, currently unknown, language structures
+ * added to future versions of the Java™ programming language.
+ * Therefore, methods whose names begin with {@code "visit"} may be
+ * added to this class in the future; to avoid incompatibilities,
+ * classes which extend this class should not declare any instance
+ * methods with names beginning with {@code "visit"}.
+ *
+ * <p>When such a new visit method is added, the default
+ * implementation in this class will be to call the {@link
+ * #visitUnknown visitUnknown} method.  A new abstract annotation
+ * value visitor class will also be introduced to correspond to the
+ * new language level; this visitor will have different default
+ * behavior for the visit method in question.  When the new visitor is
+ * introduced, all or portions of this visitor may be deprecated.
+ *
+ * @param <R> the return type of this visitor's methods
+ * @param <P> the type of the additional parameter to this visitor's methods.
+ *
+ * @see AbstractAnnotationValueVisitor6
+ * @see AbstractAnnotationValueVisitor7
+ * @since 1.8
+ */
+ at SupportedSourceVersion(RELEASE_8)
+public abstract class AbstractAnnotationValueVisitor8<R, P> extends AbstractAnnotationValueVisitor7<R, P> {
+
+    /**
+     * Constructor for concrete subclasses to call.
+     */
+    protected AbstractAnnotationValueVisitor8() {
+        super();
+    }
+}
diff --git a/langtools/src/share/classes/javax/lang/model/util/AbstractElementVisitor6.java b/langtools/src/share/classes/javax/lang/model/util/AbstractElementVisitor6.java
index 7c1d687..0e4a343 100644
--- a/langtools/src/share/classes/javax/lang/model/util/AbstractElementVisitor6.java
+++ b/langtools/src/share/classes/javax/lang/model/util/AbstractElementVisitor6.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,6 +67,7 @@ import javax.lang.model.SourceVersion;
  * @author Peter von der Ahé
  *
  * @see AbstractElementVisitor7
+ * @see AbstractElementVisitor8
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
diff --git a/langtools/src/share/classes/javax/lang/model/util/AbstractElementVisitor7.java b/langtools/src/share/classes/javax/lang/model/util/AbstractElementVisitor7.java
index badcb58..94546db 100644
--- a/langtools/src/share/classes/javax/lang/model/util/AbstractElementVisitor7.java
+++ b/langtools/src/share/classes/javax/lang/model/util/AbstractElementVisitor7.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -62,6 +62,7 @@ import javax.lang.model.SourceVersion;
  *            additional parameter.
  *
  * @see AbstractElementVisitor6
+ * @see AbstractElementVisitor8
  * @since 1.7
  */
 @SupportedSourceVersion(RELEASE_7)
diff --git a/langtools/src/share/classes/javax/lang/model/util/AbstractElementVisitor8.java b/langtools/src/share/classes/javax/lang/model/util/AbstractElementVisitor8.java
new file mode 100644
index 0000000..9cf104d
--- /dev/null
+++ b/langtools/src/share/classes/javax/lang/model/util/AbstractElementVisitor8.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javax.lang.model.util;
+
+import javax.lang.model.element.*;
+import javax.annotation.processing.SupportedSourceVersion;
+import javax.lang.model.element.*;
+import static javax.lang.model.element.ElementKind.*;
+import static javax.lang.model.SourceVersion.*;
+import javax.lang.model.SourceVersion;
+
+
+/**
+ * A skeletal visitor of program elements with default behavior
+ * appropriate for the {@link SourceVersion#RELEASE_8 RELEASE_8}
+ * source version.
+ *
+ * <p> <b>WARNING:</b> The {@code ElementVisitor} interface
+ * implemented by this class may have methods added to it in the
+ * future to accommodate new, currently unknown, language structures
+ * added to future versions of the Java™ programming language.
+ * Therefore, methods whose names begin with {@code "visit"} may be
+ * added to this class in the future; to avoid incompatibilities,
+ * classes which extend this class should not declare any instance
+ * methods with names beginning with {@code "visit"}.
+ *
+ * <p>When such a new visit method is added, the default
+ * implementation in this class will be to call the {@link
+ * #visitUnknown visitUnknown} method.  A new abstract element visitor
+ * class will also be introduced to correspond to the new language
+ * level; this visitor will have different default behavior for the
+ * visit method in question.  When the new visitor is introduced, all
+ * or portions of this visitor may be deprecated.
+ *
+ * @param <R> the return type of this visitor's methods.  Use {@link
+ *            Void} for visitors that do not need to return results.
+ * @param <P> the type of the additional parameter to this visitor's
+ *            methods.  Use {@code Void} for visitors that do not need an
+ *            additional parameter.
+ *
+ * @see AbstractElementVisitor6
+ * @see AbstractElementVisitor7
+ * @since 1.8
+ */
+ at SupportedSourceVersion(RELEASE_8)
+public abstract class AbstractElementVisitor8<R, P> extends AbstractElementVisitor7<R, P> {
+    /**
+     * Constructor for concrete subclasses to call.
+     */
+    protected AbstractElementVisitor8(){
+        super();
+    }
+}
diff --git a/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java b/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java
index 33793c4..bff7e69 100644
--- a/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java
+++ b/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java
@@ -60,6 +60,7 @@ import javax.lang.model.type.*;
  * @author Peter von der Ahé
  *
  * @see AbstractTypeVisitor7
+ * @see AbstractTypeVisitor8
  * @since 1.6
  */
 public abstract class AbstractTypeVisitor6<R, P> implements TypeVisitor<R, P> {
diff --git a/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java b/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java
index a0988e9..7deefe9 100644
--- a/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java
+++ b/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java
@@ -56,6 +56,7 @@ import javax.lang.model.type.*;
  *            additional parameter.
  *
  * @see AbstractTypeVisitor6
+ * @see AbstractTypeVisitor8
  * @since 1.7
  */
 public abstract class AbstractTypeVisitor7<R, P> extends AbstractTypeVisitor6<R, P> {
diff --git a/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java b/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java
new file mode 100644
index 0000000..40a7eea
--- /dev/null
+++ b/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javax.lang.model.util;
+
+import javax.lang.model.type.*;
+
+/**
+ * A skeletal visitor of types with default behavior appropriate for
+ * the {@link javax.lang.model.SourceVersion#RELEASE_8 RELEASE_8}
+ * source version.
+ *
+ * <p> <b>WARNING:</b> The {@code TypeVisitor} interface implemented
+ * by this class may have methods added to it in the future to
+ * accommodate new, currently unknown, language structures added to
+ * future versions of the Java™ programming language.
+ * Therefore, methods whose names begin with {@code "visit"} may be
+ * added to this class in the future; to avoid incompatibilities,
+ * classes which extend this class should not declare any instance
+ * methods with names beginning with {@code "visit"}.
+ *
+ * <p>When such a new visit method is added, the default
+ * implementation in this class will be to call the {@link
+ * #visitUnknown visitUnknown} method.  A new abstract type visitor
+ * class will also be introduced to correspond to the new language
+ * level; this visitor will have different default behavior for the
+ * visit method in question.  When the new visitor is introduced, all
+ * or portions of this visitor may be deprecated.
+ *
+ * @param <R> the return type of this visitor's methods.  Use {@link
+ *            Void} for visitors that do not need to return results.
+ * @param <P> the type of the additional parameter to this visitor's
+ *            methods.  Use {@code Void} for visitors that do not need an
+ *            additional parameter.
+ *
+ * @see AbstractTypeVisitor6
+ * @see AbstractTypeVisitor7
+ * @since 1.8
+ */
+public abstract class AbstractTypeVisitor8<R, P> extends AbstractTypeVisitor7<R, P> {
+    /**
+     * Constructor for concrete subclasses to call.
+     */
+    protected AbstractTypeVisitor8() {
+        super();
+    }
+}
diff --git a/langtools/src/share/classes/javax/lang/model/util/ElementKindVisitor6.java b/langtools/src/share/classes/javax/lang/model/util/ElementKindVisitor6.java
index 93d8073..f1ad3fe 100644
--- a/langtools/src/share/classes/javax/lang/model/util/ElementKindVisitor6.java
+++ b/langtools/src/share/classes/javax/lang/model/util/ElementKindVisitor6.java
@@ -78,6 +78,7 @@ import javax.lang.model.SourceVersion;
  * @author Peter von der Ahé
  *
  * @see ElementKindVisitor7
+ * @see ElementKindVisitor8
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
diff --git a/langtools/src/share/classes/javax/lang/model/util/ElementKindVisitor7.java b/langtools/src/share/classes/javax/lang/model/util/ElementKindVisitor7.java
index 7e8974f..ace1515 100644
--- a/langtools/src/share/classes/javax/lang/model/util/ElementKindVisitor7.java
+++ b/langtools/src/share/classes/javax/lang/model/util/ElementKindVisitor7.java
@@ -73,6 +73,7 @@ import javax.lang.model.SourceVersion;
  *            additional parameter.
  *
  * @see ElementKindVisitor6
+ * @see ElementKindVisitor8
  * @since 1.7
  */
 @SupportedSourceVersion(RELEASE_7)
diff --git a/langtools/src/share/classes/javax/lang/model/util/ElementKindVisitor8.java b/langtools/src/share/classes/javax/lang/model/util/ElementKindVisitor8.java
new file mode 100644
index 0000000..5781875
--- /dev/null
+++ b/langtools/src/share/classes/javax/lang/model/util/ElementKindVisitor8.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javax.lang.model.util;
+
+import javax.lang.model.element.*;
+import static javax.lang.model.element.ElementKind.*;
+import javax.annotation.processing.SupportedSourceVersion;
+import static javax.lang.model.SourceVersion.*;
+import javax.lang.model.SourceVersion;
+
+/**
+ * A visitor of program elements based on their {@linkplain
+ * ElementKind kind} with default behavior appropriate for the {@link
+ * SourceVersion#RELEASE_8 RELEASE_8} source version.  For {@linkplain
+ * Element elements} <tt><i>XYZ</i></tt> that may have more than one
+ * kind, the <tt>visit<i>XYZ</i></tt> methods in this class delegate
+ * to the <tt>visit<i>XYZKind</i></tt> method corresponding to the
+ * first argument's kind.  The <tt>visit<i>XYZKind</i></tt> methods
+ * call {@link #defaultAction defaultAction}, passing their arguments
+ * to {@code defaultAction}'s corresponding parameters.
+ *
+ * <p> Methods in this class may be overridden subject to their
+ * general contract.  Note that annotating methods in concrete
+ * subclasses with {@link java.lang.Override @Override} will help
+ * ensure that methods are overridden as intended.
+ *
+ * <p> <b>WARNING:</b> The {@code ElementVisitor} interface
+ * implemented by this class may have methods added to it or the
+ * {@code ElementKind} {@code enum} used in this case may have
+ * constants added to it in the future to accommodate new, currently
+ * unknown, language structures added to future versions of the
+ * Java™ programming language.  Therefore, methods whose names
+ * begin with {@code "visit"} may be added to this class in the
+ * future; to avoid incompatibilities, classes which extend this class
+ * should not declare any instance methods with names beginning with
+ * {@code "visit"}.
+ *
+ * <p>When such a new visit method is added, the default
+ * implementation in this class will be to call the {@link
+ * #visitUnknown visitUnknown} method.  A new abstract element kind
+ * visitor class will also be introduced to correspond to the new
+ * language level; this visitor will have different default behavior
+ * for the visit method in question.  When the new visitor is
+ * introduced, all or portions of this visitor may be deprecated.
+ *
+ * @param <R> the return type of this visitor's methods.  Use {@link
+ *            Void} for visitors that do not need to return results.
+ * @param <P> the type of the additional parameter to this visitor's
+ *            methods.  Use {@code Void} for visitors that do not need an
+ *            additional parameter.
+ *
+ * @see ElementKindVisitor6
+ * @see ElementKindVisitor7
+ * @since 1.8
+ */
+ at SupportedSourceVersion(RELEASE_8)
+public class ElementKindVisitor8<R, P> extends ElementKindVisitor7<R, P> {
+    /**
+     * Constructor for concrete subclasses; uses {@code null} for the
+     * default value.
+     */
+    protected ElementKindVisitor8() {
+        super(null);
+    }
+
+    /**
+     * Constructor for concrete subclasses; uses the argument for the
+     * default value.
+     *
+     * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+     */
+    protected ElementKindVisitor8(R defaultValue) {
+        super(defaultValue);
+    }
+}
diff --git a/langtools/src/share/classes/javax/lang/model/util/ElementScanner6.java b/langtools/src/share/classes/javax/lang/model/util/ElementScanner6.java
index 1438fdf..711154f 100644
--- a/langtools/src/share/classes/javax/lang/model/util/ElementScanner6.java
+++ b/langtools/src/share/classes/javax/lang/model/util/ElementScanner6.java
@@ -90,6 +90,7 @@ import static javax.lang.model.SourceVersion.*;
  * @author Peter von der Ahé
  *
  * @see ElementScanner7
+ * @see ElementScanner8
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
diff --git a/langtools/src/share/classes/javax/lang/model/util/ElementScanner7.java b/langtools/src/share/classes/javax/lang/model/util/ElementScanner7.java
index e525e86..119b3d7 100644
--- a/langtools/src/share/classes/javax/lang/model/util/ElementScanner7.java
+++ b/langtools/src/share/classes/javax/lang/model/util/ElementScanner7.java
@@ -86,6 +86,7 @@ import static javax.lang.model.SourceVersion.*;
  *            additional parameter.
  *
  * @see ElementScanner6
+ * @see ElementScanner8
  * @since 1.7
  */
 @SupportedSourceVersion(RELEASE_7)
diff --git a/langtools/src/share/classes/javax/lang/model/util/ElementScanner8.java b/langtools/src/share/classes/javax/lang/model/util/ElementScanner8.java
new file mode 100644
index 0000000..daea232
--- /dev/null
+++ b/langtools/src/share/classes/javax/lang/model/util/ElementScanner8.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javax.lang.model.util;
+
+import javax.lang.model.element.*;
+import javax.annotation.processing.SupportedSourceVersion;
+import static javax.lang.model.element.ElementKind.*;
+import javax.lang.model.SourceVersion;
+import static javax.lang.model.SourceVersion.*;
+
+
+/**
+ * A scanning visitor of program elements with default behavior
+ * appropriate for the {@link SourceVersion#RELEASE_8 RELEASE_8}
+ * source version.  The <tt>visit<i>XYZ</i></tt> methods in this
+ * class scan their component elements by calling {@code scan} on
+ * their {@linkplain Element#getEnclosedElements enclosed elements},
+ * {@linkplain ExecutableElement#getParameters parameters}, etc., as
+ * indicated in the individual method specifications.  A subclass can
+ * control the order elements are visited by overriding the
+ * <tt>visit<i>XYZ</i></tt> methods.  Note that clients of a scanner
+ * may get the desired behavior be invoking {@code v.scan(e, p)} rather
+ * than {@code v.visit(e, p)} on the root objects of interest.
+ *
+ * <p>When a subclass overrides a <tt>visit<i>XYZ</i></tt> method, the
+ * new method can cause the enclosed elements to be scanned in the
+ * default way by calling <tt>super.visit<i>XYZ</i></tt>.  In this
+ * fashion, the concrete visitor can control the ordering of traversal
+ * over the component elements with respect to the additional
+ * processing; for example, consistently calling
+ * <tt>super.visit<i>XYZ</i></tt> at the start of the overridden
+ * methods will yield a preorder traversal, etc.  If the component
+ * elements should be traversed in some other order, instead of
+ * calling <tt>super.visit<i>XYZ</i></tt>, an overriding visit method
+ * should call {@code scan} with the elements in the desired order.
+ *
+ * <p> Methods in this class may be overridden subject to their
+ * general contract.  Note that annotating methods in concrete
+ * subclasses with {@link java.lang.Override @Override} will help
+ * ensure that methods are overridden as intended.
+ *
+ * <p> <b>WARNING:</b> The {@code ElementVisitor} interface
+ * implemented by this class may have methods added to it in the
+ * future to accommodate new, currently unknown, language structures
+ * added to future versions of the Java™ programming language.
+ * Therefore, methods whose names begin with {@code "visit"} may be
+ * added to this class in the future; to avoid incompatibilities,
+ * classes which extend this class should not declare any instance
+ * methods with names beginning with {@code "visit"}.
+ *
+ * <p>When such a new visit method is added, the default
+ * implementation in this class will be to call the {@link
+ * #visitUnknown visitUnknown} method.  A new element scanner visitor
+ * class will also be introduced to correspond to the new language
+ * level; this visitor will have different default behavior for the
+ * visit method in question.  When the new visitor is introduced, all
+ * or portions of this visitor may be deprecated.
+ *
+ * @param <R> the return type of this visitor's methods.  Use {@link
+ *            Void} for visitors that do not need to return results.
+ * @param <P> the type of the additional parameter to this visitor's
+ *            methods.  Use {@code Void} for visitors that do not need an
+ *            additional parameter.
+ *
+ * @see ElementScanner6
+ * @see ElementScanner7
+ * @since 1.8
+ */
+ at SupportedSourceVersion(RELEASE_8)
+public class ElementScanner8<R, P> extends ElementScanner7<R, P> {
+    /**
+     * Constructor for concrete subclasses; uses {@code null} for the
+     * default value.
+     */
+    protected ElementScanner8(){
+        super(null);
+    }
+
+    /**
+     * Constructor for concrete subclasses; uses the argument for the
+     * default value.
+     */
+    protected ElementScanner8(R defaultValue){
+        super(defaultValue);
+    }
+}
diff --git a/langtools/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor6.java b/langtools/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor6.java
index f5f9d43..b299572 100644
--- a/langtools/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor6.java
+++ b/langtools/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor6.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -71,6 +71,7 @@ import javax.annotation.processing.SupportedSourceVersion;
  * @author Peter von der Ahé
  *
  * @see SimpleAnnotationValueVisitor7
+ * @see SimpleAnnotationValueVisitor8
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
diff --git a/langtools/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java b/langtools/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java
index 0e3f449..eb39284 100644
--- a/langtools/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java
+++ b/langtools/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java
@@ -66,6 +66,7 @@ import javax.annotation.processing.SupportedSourceVersion;
  * @param <P> the type of the additional parameter to this visitor's methods.
  *
  * @see SimpleAnnotationValueVisitor6
+ * @see SimpleAnnotationValueVisitor8
  * @since 1.7
  */
 @SupportedSourceVersion(RELEASE_7)
diff --git a/langtools/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor8.java b/langtools/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor8.java
new file mode 100644
index 0000000..a69f0fe
--- /dev/null
+++ b/langtools/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor8.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javax.lang.model.util;
+
+import java.util.List;
+import javax.lang.model.element.*;
+
+import javax.lang.model.type.TypeMirror;
+import static javax.lang.model.SourceVersion.*;
+import javax.lang.model.SourceVersion;
+import javax.annotation.processing.SupportedSourceVersion;
+
+/**
+ * A simple visitor for annotation values with default behavior
+ * appropriate for the {@link SourceVersion#RELEASE_8 RELEASE_8}
+ * source version.  Visit methods call {@link #defaultAction
+ * defaultAction} passing their arguments to {@code defaultAction}'s
+ * corresponding parameters.
+ *
+ * <p> Methods in this class may be overridden subject to their
+ * general contract.  Note that annotating methods in concrete
+ * subclasses with {@link java.lang.Override @Override} will help
+ * ensure that methods are overridden as intended.
+ *
+ * <p> <b>WARNING:</b> The {@code AnnotationValueVisitor} interface
+ * implemented by this class may have methods added to it in the
+ * future to accommodate new, currently unknown, language structures
+ * added to future versions of the Java™ programming language.
+ * Therefore, methods whose names begin with {@code "visit"} may be
+ * added to this class in the future; to avoid incompatibilities,
+ * classes which extend this class should not declare any instance
+ * methods with names beginning with {@code "visit"}.
+ *
+ * <p>When such a new visit method is added, the default
+ * implementation in this class will be to call the {@link
+ * #visitUnknown visitUnknown} method.  A new simple annotation
+ * value visitor class will also be introduced to correspond to the
+ * new language level; this visitor will have different default
+ * behavior for the visit method in question.  When the new visitor is
+ * introduced, all or portions of this visitor may be deprecated.
+ *
+ * @param <R> the return type of this visitor's methods
+ * @param <P> the type of the additional parameter to this visitor's methods.
+ *
+ * @see SimpleAnnotationValueVisitor6
+ * @see SimpleAnnotationValueVisitor7
+ * @since 1.8
+ */
+ at SupportedSourceVersion(RELEASE_8)
+public class SimpleAnnotationValueVisitor8<R, P> extends SimpleAnnotationValueVisitor7<R, P> {
+    /**
+     * Constructor for concrete subclasses; uses {@code null} for the
+     * default value.
+     */
+    protected SimpleAnnotationValueVisitor8() {
+        super(null);
+    }
+
+    /**
+     * Constructor for concrete subclasses; uses the argument for the
+     * default value.
+     *
+     * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+     */
+    protected SimpleAnnotationValueVisitor8(R defaultValue) {
+        super(defaultValue);
+    }
+}
diff --git a/langtools/src/share/classes/javax/lang/model/util/SimpleElementVisitor6.java b/langtools/src/share/classes/javax/lang/model/util/SimpleElementVisitor6.java
index f43fa2d..2e92d8f 100644
--- a/langtools/src/share/classes/javax/lang/model/util/SimpleElementVisitor6.java
+++ b/langtools/src/share/classes/javax/lang/model/util/SimpleElementVisitor6.java
@@ -76,6 +76,7 @@ import static javax.lang.model.SourceVersion.*;
  * @author Peter von der Ahé
  *
  * @see SimpleElementVisitor7
+ * @see SimpleElementVisitor8
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
diff --git a/langtools/src/share/classes/javax/lang/model/util/SimpleElementVisitor7.java b/langtools/src/share/classes/javax/lang/model/util/SimpleElementVisitor7.java
index a02d2a1..ec7e92a 100644
--- a/langtools/src/share/classes/javax/lang/model/util/SimpleElementVisitor7.java
+++ b/langtools/src/share/classes/javax/lang/model/util/SimpleElementVisitor7.java
@@ -69,6 +69,7 @@ import static javax.lang.model.SourceVersion.*;
  *              for visitors that do not need an additional parameter.
  *
  * @see SimpleElementVisitor6
+ * @see SimpleElementVisitor8
  * @since 1.7
  */
 @SupportedSourceVersion(RELEASE_7)
diff --git a/langtools/src/share/classes/javax/lang/model/util/SimpleElementVisitor8.java b/langtools/src/share/classes/javax/lang/model/util/SimpleElementVisitor8.java
new file mode 100644
index 0000000..db83a38
--- /dev/null
+++ b/langtools/src/share/classes/javax/lang/model/util/SimpleElementVisitor8.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javax.lang.model.util;
+
+import javax.lang.model.element.*;
+import javax.annotation.processing.SupportedSourceVersion;
+import static javax.lang.model.element.ElementKind.*;
+import javax.lang.model.SourceVersion;
+import static javax.lang.model.SourceVersion.*;
+
+/**
+ * A simple visitor of program elements with default behavior
+ * appropriate for the {@link SourceVersion#RELEASE_8 RELEASE_8}
+ * source version.
+ *
+ * Visit methods corresponding to {@code RELEASE_7} and earlier
+ * language constructs call {@link #defaultAction defaultAction},
+ * passing their arguments to {@code defaultAction}'s corresponding
+ * parameters.
+ *
+ * <p> Methods in this class may be overridden subject to their
+ * general contract.  Note that annotating methods in concrete
+ * subclasses with {@link java.lang.Override @Override} will help
+ * ensure that methods are overridden as intended.
+ *
+ * <p> <b>WARNING:</b> The {@code ElementVisitor} interface
+ * implemented by this class may have methods added to it in the
+ * future to accommodate new, currently unknown, language structures
+ * added to future versions of the Java™ programming language.
+ * Therefore, methods whose names begin with {@code "visit"} may be
+ * added to this class in the future; to avoid incompatibilities,
+ * classes which extend this class should not declare any instance
+ * methods with names beginning with {@code "visit"}.
+ *
+ * <p>When such a new visit method is added, the default
+ * implementation in this class will be to call the {@link
+ * #visitUnknown visitUnknown} method.  A new simple element visitor
+ * class will also be introduced to correspond to the new language
+ * level; this visitor will have different default behavior for the
+ * visit method in question.  When the new visitor is introduced, all
+ * or portions of this visitor may be deprecated.
+ *
+ * @param <R> the return type of this visitor's methods.  Use {@code Void}
+ *             for visitors that do not need to return results.
+ * @param <P> the type of the additional parameter to this visitor's methods.  Use {@code Void}
+ *              for visitors that do not need an additional parameter.
+ *
+ * @see SimpleElementVisitor6
+ * @see SimpleElementVisitor7
+ * @since 1.8
+ */
+ at SupportedSourceVersion(RELEASE_8)
+public class SimpleElementVisitor8<R, P> extends SimpleElementVisitor7<R, P> {
+    /**
+     * Constructor for concrete subclasses; uses {@code null} for the
+     * default value.
+     */
+    protected SimpleElementVisitor8(){
+        super(null);
+    }
+
+    /**
+     * Constructor for concrete subclasses; uses the argument for the
+     * default value.
+     *
+     * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+     */
+    protected SimpleElementVisitor8(R defaultValue){
+        super(defaultValue);
+    }
+}
diff --git a/langtools/src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java b/langtools/src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java
index c68688b..7fadd6d 100644
--- a/langtools/src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java
+++ b/langtools/src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java
@@ -75,6 +75,7 @@ import static javax.lang.model.SourceVersion.*;
  * @author Peter von der Ahé
  *
  * @see SimpleTypeVisitor7
+ * @see SimpleTypeVisitor8
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
diff --git a/langtools/src/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java b/langtools/src/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java
index 2cc37ac..dfb1f5d 100644
--- a/langtools/src/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java
+++ b/langtools/src/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java
@@ -68,6 +68,7 @@ import static javax.lang.model.SourceVersion.*;
  *            additional parameter.
  *
  * @see SimpleTypeVisitor6
+ * @see SimpleTypeVisitor8
  * @since 1.7
  */
 @SupportedSourceVersion(RELEASE_7)
diff --git a/langtools/src/share/classes/javax/lang/model/util/SimpleTypeVisitor8.java b/langtools/src/share/classes/javax/lang/model/util/SimpleTypeVisitor8.java
new file mode 100644
index 0000000..6988999
--- /dev/null
+++ b/langtools/src/share/classes/javax/lang/model/util/SimpleTypeVisitor8.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javax.lang.model.util;
+
+import javax.lang.model.type.*;
+import javax.annotation.processing.SupportedSourceVersion;
+import javax.lang.model.SourceVersion;
+import static javax.lang.model.SourceVersion.*;
+
+/**
+ * A simple visitor of types with default behavior appropriate for the
+ * {@link SourceVersion#RELEASE_7 RELEASE_7} source version.
+ *
+ * Visit methods corresponding to {@code RELEASE_8} and earlier
+ * language constructs call {@link #defaultAction defaultAction},
+ * passing their arguments to {@code defaultAction}'s corresponding
+ * parameters.
+ *
+ * <p> Methods in this class may be overridden subject to their
+ * general contract.  Note that annotating methods in concrete
+ * subclasses with {@link java.lang.Override @Override} will help
+ * ensure that methods are overridden as intended.
+ *
+ * <p> <b>WARNING:</b> The {@code TypeVisitor} interface implemented
+ * by this class may have methods added to it in the future to
+ * accommodate new, currently unknown, language structures added to
+ * future versions of the Java™ programming language.
+ * Therefore, methods whose names begin with {@code "visit"} may be
+ * added to this class in the future; to avoid incompatibilities,
+ * classes which extend this class should not declare any instance
+ * methods with names beginning with {@code "visit"}.
+ *
+ * <p>When such a new visit method is added, the default
+ * implementation in this class will be to call the {@link
+ * #visitUnknown visitUnknown} method.  A new simple type visitor
+ * class will also be introduced to correspond to the new language
+ * level; this visitor will have different default behavior for the
+ * visit method in question.  When the new visitor is introduced, all
+ * or portions of this visitor may be deprecated.
+ *
+ * @param <R> the return type of this visitor's methods.  Use {@link
+ *            Void} for visitors that do not need to return results.
+ * @param <P> the type of the additional parameter to this visitor's
+ *            methods.  Use {@code Void} for visitors that do not need an
+ *            additional parameter.
+ *
+ * @see SimpleTypeVisitor6
+ * @see SimpleTypeVisitor7
+ * @since 1.8
+ */
+ at SupportedSourceVersion(RELEASE_8)
+public class SimpleTypeVisitor8<R, P> extends SimpleTypeVisitor7<R, P> {
+    /**
+     * Constructor for concrete subclasses; uses {@code null} for the
+     * default value.
+     */
+    protected SimpleTypeVisitor8(){
+        super(null);
+    }
+
+    /**
+     * Constructor for concrete subclasses; uses the argument for the
+     * default value.
+     *
+     * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+     */
+    protected SimpleTypeVisitor8(R defaultValue){
+        super(defaultValue);
+    }
+}
diff --git a/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor6.java b/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor6.java
index bc0e5ca..7adc993 100644
--- a/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor6.java
+++ b/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor6.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -76,6 +76,7 @@ import javax.lang.model.SourceVersion;
  * @author Peter von der Ahé
  *
  * @see TypeKindVisitor7
+ * @see TypeKindVisitor8
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
diff --git a/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java b/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java
index 3fe0654..701b525 100644
--- a/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java
+++ b/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java
@@ -71,6 +71,7 @@ import javax.lang.model.SourceVersion;
  *            additional parameter.
  *
  * @see TypeKindVisitor6
+ * @see TypeKindVisitor8
  * @since 1.7
  */
 @SupportedSourceVersion(RELEASE_7)
diff --git a/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor8.java b/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor8.java
new file mode 100644
index 0000000..26ac9c1
--- /dev/null
+++ b/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor8.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javax.lang.model.util;
+
+import javax.lang.model.type.*;
+import javax.annotation.processing.SupportedSourceVersion;
+import static javax.lang.model.element.ElementKind.*;
+import static javax.lang.model.SourceVersion.*;
+import javax.lang.model.SourceVersion;
+
+/**
+ * A visitor of types based on their {@linkplain TypeKind kind} with
+ * default behavior appropriate for the {@link SourceVersion#RELEASE_8
+ * RELEASE_8} source version.  For {@linkplain
+ * TypeMirror types} <tt><i>XYZ</i></tt> that may have more than one
+ * kind, the <tt>visit<i>XYZ</i></tt> methods in this class delegate
+ * to the <tt>visit<i>XYZKind</i></tt> method corresponding to the
+ * first argument's kind.  The <tt>visit<i>XYZKind</i></tt> methods
+ * call {@link #defaultAction defaultAction}, passing their arguments
+ * to {@code defaultAction}'s corresponding parameters.
+ *
+ * <p> Methods in this class may be overridden subject to their
+ * general contract.  Note that annotating methods in concrete
+ * subclasses with {@link java.lang.Override @Override} will help
+ * ensure that methods are overridden as intended.
+ *
+ * <p> <b>WARNING:</b> The {@code TypeVisitor} interface implemented
+ * by this class may have methods added to it in the future to
+ * accommodate new, currently unknown, language structures added to
+ * future versions of the Java™ programming language.
+ * Therefore, methods whose names begin with {@code "visit"} may be
+ * added to this class in the future; to avoid incompatibilities,
+ * classes which extend this class should not declare any instance
+ * methods with names beginning with {@code "visit"}.
+ *
+ * <p>When such a new visit method is added, the default
+ * implementation in this class will be to call the {@link
+ * #visitUnknown visitUnknown} method.  A new type kind visitor class
+ * will also be introduced to correspond to the new language level;
+ * this visitor will have different default behavior for the visit
+ * method in question.  When the new visitor is introduced, all or
+ * portions of this visitor may be deprecated.
+ *
+ * @param <R> the return type of this visitor's methods.  Use {@link
+ *            Void} for visitors that do not need to return results.
+ * @param <P> the type of the additional parameter to this visitor's
+ *            methods.  Use {@code Void} for visitors that do not need an
+ *            additional parameter.
+ *
+ * @see TypeKindVisitor6
+ * @see TypeKindVisitor7
+ * @since 1.8
+ */
+ at SupportedSourceVersion(RELEASE_8)
+public class TypeKindVisitor8<R, P> extends TypeKindVisitor7<R, P> {
+    /**
+     * Constructor for concrete subclasses to call; uses {@code null}
+     * for the default value.
+     */
+    protected TypeKindVisitor8() {
+        super(null);
+    }
+
+    /**
+     * Constructor for concrete subclasses to call; uses the argument
+     * for the default value.
+     *
+     * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+     */
+    protected TypeKindVisitor8(R defaultValue) {
+        super(defaultValue);
+    }
+}
diff --git a/langtools/src/share/classes/javax/tools/JavaCompiler.java b/langtools/src/share/classes/javax/tools/JavaCompiler.java
index 8d0dcf9..126719b 100644
--- a/langtools/src/share/classes/javax/tools/JavaCompiler.java
+++ b/langtools/src/share/classes/javax/tools/JavaCompiler.java
@@ -26,10 +26,8 @@
 package javax.tools;
 
 import java.io.File;
-import java.io.InputStream;
 import java.io.Writer;
 import java.nio.charset.Charset;
-import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.Callable;
 import javax.annotation.processing.Processor;
diff --git a/langtools/src/share/sample/javac/processing/src/CheckNamesProcessor.java b/langtools/src/share/sample/javac/processing/src/CheckNamesProcessor.java
index dc224f0..8f9ee06 100644
--- a/langtools/src/share/sample/javac/processing/src/CheckNamesProcessor.java
+++ b/langtools/src/share/sample/javac/processing/src/CheckNamesProcessor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -138,7 +138,7 @@ public class CheckNamesProcessor extends AbstractProcessor {
     public SourceVersion getSupportedSourceVersion() {
         /*
          * Return latest source version instead of a fixed version
-         * like RELEASE_7.  To return a fixed version, this class
+         * like RELEASE_8.  To return a fixed version, this class
          * could be annotated with a SupportedSourceVersion
          * annotation.
          *
@@ -192,7 +192,7 @@ public class CheckNamesProcessor extends AbstractProcessor {
         /**
          * Visitor to implement name checks.
          */
-        private class NameCheckScanner extends ElementScanner7<Void, Void> {
+        private class NameCheckScanner extends ElementScanner8<Void, Void> {
             // The visitor could be enhanced to return true/false if
             // there were warnings reported or a count of the number
             // of warnings.  This could be facilitated by using
diff --git a/langtools/test/com/sun/javadoc/T6735320/SerialFieldTest.java b/langtools/test/com/sun/javadoc/T6735320/SerialFieldTest.java
new file mode 100644
index 0000000..c20849f
--- /dev/null
+++ b/langtools/test/com/sun/javadoc/T6735320/SerialFieldTest.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+import java.io.ObjectStreamField;
+import java.io.Serializable;
+
+public class SerialFieldTest implements Serializable {
+    /**
+     * @serialField
+     */
+    private static final ObjectStreamField[] serialPersistentFields = {
+        new ObjectStreamField("i", int.class),
+    };
+}
diff --git a/langtools/test/com/sun/javadoc/T6735320/T6735320.java b/langtools/test/com/sun/javadoc/T6735320/T6735320.java
new file mode 100644
index 0000000..9646557
--- /dev/null
+++ b/langtools/test/com/sun/javadoc/T6735320/T6735320.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6735320
+ * @summary javadoc throws exception if serialField value is missing
+ * @library  ../lib/
+ * @build    JavadocTester T6735320
+ * @run main T6735320
+ */
+public class T6735320 extends JavadocTester {
+
+    private static final String BUG_ID = "6735320";
+    private static final String[] ARGS = new String[]{
+        "-d", BUG_ID + ".out",
+        SRC_DIR + FS + "SerialFieldTest.java"
+    };
+
+    public String getBugId() {
+        return BUG_ID;
+    }
+
+    public String getBugName() {
+        return getClass().getName();
+    }
+
+    public static void main(String... args) {
+        T6735320 tester = new T6735320();
+        if (tester.runJavadoc(ARGS) != 0) {
+            throw new AssertionError("non-zero return code from javadoc");
+        }
+        if (tester.getErrorOutput().contains("StringIndexOutOfBoundsException")) {
+            throw new AssertionError("javadoc threw StringIndexOutOfBoundsException");
+        }
+    }
+}
diff --git a/langtools/test/com/sun/javadoc/lib/JavadocTester.java b/langtools/test/com/sun/javadoc/lib/JavadocTester.java
index 7daadbd..23b8c80 100644
--- a/langtools/test/com/sun/javadoc/lib/JavadocTester.java
+++ b/langtools/test/com/sun/javadoc/lib/JavadocTester.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -197,8 +197,13 @@ public abstract class JavadocTester {
         initOutputBuffers();
 
         ByteArrayOutputStream stdout = new ByteArrayOutputStream();
-        PrintStream prev = System.out;
+        PrintStream prevOut = System.out;
         System.setOut(new PrintStream(stdout));
+
+        ByteArrayOutputStream stderr = new ByteArrayOutputStream();
+        PrintStream prevErr = System.err;
+        System.setErr(new PrintStream(stderr));
+
         int returnCode = com.sun.tools.javadoc.Main.execute(
                 getBugName(),
                 new PrintWriter(errors, true),
@@ -207,8 +212,11 @@ public abstract class JavadocTester {
                 docletClass,
                 getClass().getClassLoader(),
                 args);
-        System.setOut(prev);
+        System.setOut(prevOut);
         standardOut = new StringBuffer(stdout.toString());
+        System.setErr(prevErr);
+        errors.write(NL + stderr.toString());
+
         printJavadocOutput();
         return returnCode;
     }
diff --git a/langtools/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java b/langtools/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java
index cb89e5a..74e81a8 100644
--- a/langtools/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java
+++ b/langtools/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,9 +23,9 @@
 
 /*
  * @test
- * @bug      4732864 6280605
+ * @bug      4732864 6280605 7064544
  * @summary  Make sure that you can link from one member to another using
- *           non-qualified name.
+ *           non-qualified name, furthermore, ensure the right one is linked.
  * @author   jamieh
  * @library  ../lib/
  * @build    JavadocTester
@@ -36,7 +36,7 @@
 public class TestLinkTaglet extends JavadocTester {
 
     //Test information.
-    private static final String BUG_ID = "4732864-6280605";
+    private static final String BUG_ID = "4732864-6280605-7064544";
 
     //Javadoc arguments.
     private static final String[] ARGS = new String[] {
diff --git a/langtools/test/com/sun/javadoc/testLinkTaglet/pkg/C.java b/langtools/test/com/sun/javadoc/testLinkTaglet/pkg/C.java
index ece9843..3e79cd7 100644
--- a/langtools/test/com/sun/javadoc/testLinkTaglet/pkg/C.java
+++ b/langtools/test/com/sun/javadoc/testLinkTaglet/pkg/C.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,6 +34,11 @@ package pkg;
 public class C {
 
     public InnerC MEMBER = new InnerC();
+    /**
+     *  A red herring inner class to confuse the matching, thus to
+     *  ensure the right one is linked.
+     */
+    public class RedHerringInnerC {}
 
     /**
      * Link to member in outer class: {@link #MEMBER} <br/>
diff --git a/langtools/test/tools/javac/6402516/CheckLocalElements.java b/langtools/test/tools/javac/6402516/CheckLocalElements.java
index 0b80876..1693873 100644
--- a/langtools/test/tools/javac/6402516/CheckLocalElements.java
+++ b/langtools/test/tools/javac/6402516/CheckLocalElements.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,7 +95,7 @@ public class CheckLocalElements extends Checker {
         return encl == null ? "" : encl.accept(qualNameVisitor, null);
     }
 
-    private ElementVisitor<String,Void> qualNameVisitor = new SimpleElementVisitor7<String,Void>() {
+    private ElementVisitor<String,Void> qualNameVisitor = new SimpleElementVisitor8<String,Void>() {
         protected String defaultAction(Element e, Void ignore) {
             return "";
         }
diff --git a/langtools/test/tools/javac/7003595/T7003595.java b/langtools/test/tools/javac/7003595/T7003595.java
new file mode 100644
index 0000000..6d86b78
--- /dev/null
+++ b/langtools/test/tools/javac/7003595/T7003595.java
@@ -0,0 +1,233 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7003595
+ * @summary IncompatibleClassChangeError with unreferenced local class with subclass
+ */
+
+import com.sun.source.util.JavacTask;
+import com.sun.tools.classfile.Attribute;
+import com.sun.tools.classfile.ClassFile;
+import com.sun.tools.classfile.InnerClasses_attribute;
+import com.sun.tools.classfile.ConstantPool.*;
+import com.sun.tools.javac.api.JavacTool;
+
+import java.io.File;
+import java.net.URI;
+import java.util.Arrays;
+import java.util.ArrayList;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.ToolProvider;
+
+
+public class T7003595 {
+
+    /** global decls ***/
+
+    // Create a single file manager and reuse it for each compile to save time.
+    static StandardJavaFileManager fm = JavacTool.create().getStandardFileManager(null, null, null);
+
+    //statistics
+    static int checkCount = 0;
+
+    enum ClassKind {
+        NESTED("static class #N { #B }", "$", true),
+        INNER("class #N { #B }", "$", false),
+        LOCAL_REF("void test() { class #N { #B }; new #N(); }", "$1", false),
+        LOCAL_NOREF("void test() { class #N { #B }; }", "$1", false),
+        ANON("void test() { new Object() { #B }; }", "$1", false),
+        NONE("", "", false);
+
+        String memberInnerStr;
+        String sep;
+        boolean staticAllowed;
+
+        private ClassKind(String memberInnerStr, String sep, boolean staticAllowed) {
+            this.memberInnerStr = memberInnerStr;
+            this.sep = sep;
+            this.staticAllowed = staticAllowed;
+        }
+
+        String getSource(String className, String outerName, String nested) {
+            return memberInnerStr.replaceAll("#O", outerName).
+                    replaceAll("#N", className).replaceAll("#B", nested);
+        }
+
+        static String getClassfileName(String[] names, ClassKind[] outerKinds, int pos) {
+            System.out.println(" pos = " + pos + " kind = " + outerKinds[pos] + " sep = " + outerKinds[pos].sep);
+            String name = outerKinds[pos] != ANON ?
+                    names[pos] : "";
+            if (pos == 0) {
+                return "Test" + outerKinds[pos].sep + name;
+            } else {
+                String outerStr = getClassfileName(names, outerKinds, pos - 1);
+                return outerStr + outerKinds[pos].sep + name;
+            }
+        }
+
+        boolean isAllowed(ClassKind nestedKind) {
+            return nestedKind != NESTED ||
+                    staticAllowed;
+        }
+    }
+
+    enum LocalInnerClass {
+        LOCAL_REF("class L {}; new L();", "Test$1L"),
+        LOCAL_NOREF("class L {};", "Test$1L"),
+        ANON("new Object() {};", "Test$1"),
+        NONE("", "");
+
+        String localInnerStr;
+        String canonicalInnerStr;
+
+        private LocalInnerClass(String localInnerStr, String canonicalInnerStr) {
+            this.localInnerStr = localInnerStr;
+            this.canonicalInnerStr = canonicalInnerStr;
+        }
+    }
+
+    public static void main(String... args) throws Exception {
+        for (ClassKind ck1 : ClassKind.values()) {
+            String cname1 = "C1";
+            for (ClassKind ck2 : ClassKind.values()) {
+                if (!ck1.isAllowed(ck2)) continue;
+                String cname2 = "C2";
+                for (ClassKind ck3 : ClassKind.values()) {
+                    if (!ck2.isAllowed(ck3)) continue;
+                    String cname3 = "C3";
+                    new T7003595(new ClassKind[] {ck1, ck2, ck3}, new String[] { cname1, cname2, cname3 }).compileAndCheck();
+                }
+            }
+        }
+
+        System.out.println("Total checks made: " + checkCount);
+    }
+
+    /** instance decls **/
+
+    ClassKind[] cks;
+    String[] cnames;
+
+    T7003595(ClassKind[] cks, String[] cnames) {
+        this.cks = cks;
+        this.cnames = cnames;
+    }
+
+    void compileAndCheck() throws Exception {
+        final JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
+        JavaSource source = new JavaSource();
+        JavacTask ct = (JavacTask)tool.getTask(null, fm, null,
+                null, null, Arrays.asList(source));
+        ct.call();
+        verifyBytecode(source);
+    }
+
+    void verifyBytecode(JavaSource source) {
+        for (int i = 0; i < 3 ; i ++) {
+            if (cks[i] == ClassKind.NONE) break;
+            checkCount++;
+            String filename = cks[i].getClassfileName(cnames, cks, i);
+            File compiledTest = new File(filename + ".class");
+            try {
+                ClassFile cf = ClassFile.read(compiledTest);
+                if (cf == null) {
+                    throw new Error("Classfile not found: " + filename);
+                }
+
+                InnerClasses_attribute innerClasses = (InnerClasses_attribute)cf.getAttribute(Attribute.InnerClasses);
+
+                ArrayList<String> foundInnerSig = new ArrayList<>();
+                if (innerClasses != null) {
+                    for (InnerClasses_attribute.Info info : innerClasses.classes) {
+                        String foundSig = info.getInnerClassInfo(cf.constant_pool).getName();
+                        foundInnerSig.add(foundSig);
+                    }
+                }
+
+                ArrayList<String> expectedInnerSig = new ArrayList<>();
+                //add inner class (if any)
+                if (i < 2 && cks[i + 1] != ClassKind.NONE) {
+                    expectedInnerSig.add(cks[i + 1].getClassfileName(cnames, cks, i + 1));
+                }
+                //add inner classes
+                for (int j = 0 ; j != i + 1 && j < 3; j++) {
+                    expectedInnerSig.add(cks[j].getClassfileName(cnames, cks, j));
+                }
+
+                if (expectedInnerSig.size() != foundInnerSig.size()) {
+                    throw new Error("InnerClasses attribute for " + cnames[i] + " has wrong size\n" +
+                                    "expected " + expectedInnerSig.size() + "\n" +
+                                    "found " + innerClasses.number_of_classes + "\n" +
+                                    source);
+                }
+
+                for (String foundSig : foundInnerSig) {
+                    if (!expectedInnerSig.contains(foundSig)) {
+                        throw new Error("InnerClasses attribute for " + cnames[i] + " has unexpected signature: " +
+                                foundSig + "\n" + source + "\n" + expectedInnerSig);
+                    }
+                }
+
+                for (String expectedSig : expectedInnerSig) {
+                    if (!foundInnerSig.contains(expectedSig)) {
+                        throw new Error("InnerClasses attribute for " + cnames[i] + " does not contain expected signature: " +
+                                    expectedSig + "\n" + source);
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                throw new Error("error reading " + compiledTest +": " + e);
+            }
+        }
+    }
+
+    class JavaSource extends SimpleJavaFileObject {
+
+        static final String source_template = "class Test { #C }";
+
+        String source;
+
+        public JavaSource() {
+            super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
+            String c3 = cks[2].getSource(cnames[2], cnames[1], "");
+            String c2 = cks[1].getSource(cnames[1], cnames[0], c3);
+            String c1 = cks[0].getSource(cnames[0], "Test", c2);
+            source = source_template.replace("#C", c1);
+        }
+
+        @Override
+        public String toString() {
+            return source;
+        }
+
+        @Override
+        public CharSequence getCharContent(boolean ignoreEncodingErrors) {
+            return source;
+        }
+    }
+}
diff --git a/langtools/test/tools/javac/7003595/T7003595b.java b/langtools/test/tools/javac/7003595/T7003595b.java
new file mode 100644
index 0000000..0e0eb2e
--- /dev/null
+++ b/langtools/test/tools/javac/7003595/T7003595b.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7003595
+ * @summary IncompatibleClassChangeError with unreferenced local class with subclass
+ */
+
+public class T7003595b {
+    public static void main(String... args) throws Exception {
+        class A {}
+        class B extends A {}
+        B.class.getSuperclass().getDeclaringClass();
+    }
+}
diff --git a/langtools/test/tools/javac/7079713/TestCircularClassfile.java b/langtools/test/tools/javac/7079713/TestCircularClassfile.java
new file mode 100644
index 0000000..bfa62b4
--- /dev/null
+++ b/langtools/test/tools/javac/7079713/TestCircularClassfile.java
@@ -0,0 +1,168 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7079713
+ * @summary javac hangs when compiling a class that references a cyclically inherited class
+ * @run main TestCircularClassfile
+ */
+
+import java.io.*;
+import java.net.URI;
+import java.util.Arrays;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.StandardLocation;
+import javax.tools.ToolProvider;
+
+import com.sun.source.util.JavacTask;
+
+public class TestCircularClassfile {
+
+    enum SourceKind {
+        A_EXTENDS_B("class B {} class A extends B { void m() {} }"),
+        B_EXTENDS_A("class A { void m() {} } class B extends A {}");
+
+        String sourceStr;
+
+        private SourceKind(String sourceStr) {
+            this.sourceStr = sourceStr;
+        }
+
+        SimpleJavaFileObject getSource() {
+            return new SimpleJavaFileObject(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE) {
+                @Override
+                public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {
+                    return sourceStr;
+                }
+            };
+        }
+    }
+
+    enum TestKind {
+        REPLACE_A("A.class"),
+        REPLACE_B("B.class");
+
+        String targetClass;
+
+        private TestKind(String targetClass) {
+            this.targetClass = targetClass;
+        }
+    }
+
+    enum ClientKind {
+        METHOD_CALL1("A a = null; a.m();"),
+        METHOD_CALL2("B b = null; b.m();"),
+        CONSTR_CALL1("new A();"),
+        CONSTR_CALL2("new B();"),
+        ASSIGN1("A a = null; B b = a;"),
+        ASSIGN2("B b = null; A a = b;");
+
+        String mainMethod;
+
+        private ClientKind(String mainMethod) {
+            this.mainMethod = mainMethod;
+        }
+
+        SimpleJavaFileObject getSource() {
+            return new SimpleJavaFileObject(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE) {
+                @Override
+                public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {
+                    return "class Test { public static void main(String[] args) { #M } }"
+                            .replace("#M", mainMethod);
+                }
+            };
+        }
+    }
+
+    public static void main(String... args) throws Exception {
+        JavaCompiler comp = ToolProvider.getSystemJavaCompiler();
+        StandardJavaFileManager fm = comp.getStandardFileManager(null, null, null);
+        int count = 0;
+        for (SourceKind sk1 : SourceKind.values()) {
+            for (SourceKind sk2 : SourceKind.values()) {
+                for (TestKind tk : TestKind.values()) {
+                    for (ClientKind ck : ClientKind.values()) {
+                        new TestCircularClassfile("sub_"+count++, sk1, sk2, tk, ck).check(comp, fm);
+                    }
+                }
+            }
+        }
+    }
+
+    static String workDir = System.getProperty("user.dir");
+
+    String destPath;
+    SourceKind sk1;
+    SourceKind sk2;
+    TestKind tk;
+    ClientKind ck;
+
+    TestCircularClassfile(String destPath, SourceKind sk1, SourceKind sk2, TestKind tk, ClientKind ck) {
+        this.destPath = destPath;
+        this.sk1 = sk1;
+        this.sk2 = sk2;
+        this.tk = tk;
+        this.ck = ck;
+    }
+
+    void check(JavaCompiler comp, StandardJavaFileManager fm) throws Exception {
+        //step 1: compile first source code in the test subfolder
+        File destDir = new File(workDir, destPath); destDir.mkdir();
+        //output dir must be set explicitly as we are sharing the fm (see bug 7026941)
+        fm.setLocation(javax.tools.StandardLocation.CLASS_OUTPUT, Arrays.asList(destDir));
+        JavacTask ct = (JavacTask)comp.getTask(null, fm, null,
+                null, null, Arrays.asList(sk1.getSource()));
+        ct.generate();
+
+        //step 2: compile second source code in a temp folder
+        File tmpDir = new File(destDir, "tmp"); tmpDir.mkdir();
+        //output dir must be set explicitly as we are sharing the fm (see bug 7026941)
+        fm.setLocation(javax.tools.StandardLocation.CLASS_OUTPUT, Arrays.asList(tmpDir));
+        ct = (JavacTask)comp.getTask(null, fm, null,
+                null, null, Arrays.asList(sk2.getSource()));
+        ct.generate();
+
+        //step 3: move a classfile from the temp folder to the test subfolder
+        File fileToMove = new File(tmpDir, tk.targetClass);
+        File target = new File(destDir, tk.targetClass);
+        target.delete();
+        boolean success = fileToMove.renameTo(target);
+
+        if (!success) {
+            throw new AssertionError("error when moving file " + tk.targetClass);
+        }
+
+        //step 4: compile the client class against the classes in the test subfolder
+        //input/output dir must be set explicitly as we are sharing the fm (see bug 7026941)
+        fm.setLocation(StandardLocation.CLASS_OUTPUT, Arrays.asList(destDir));
+        fm.setLocation(StandardLocation.CLASS_PATH, Arrays.asList(destDir));
+        ct = (JavacTask)comp.getTask(null, fm, null,
+                null, null, Arrays.asList(ck.getSource()));
+
+        ct.generate();
+    }
+}
diff --git a/langtools/test/tools/javac/7085024/T7085024.java b/langtools/test/tools/javac/7085024/T7085024.java
new file mode 100644
index 0000000..8ab0b0b
--- /dev/null
+++ b/langtools/test/tools/javac/7085024/T7085024.java
@@ -0,0 +1,12 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 7085024
+ * @summary internal error; cannot instantiate Foo
+ * @compile/fail/ref=T7085024.out -XDrawDiagnostics T7085024.java
+ */
+
+class T7085024 {
+    T7085024 (boolean ret) { } //internal error goes away if constructor accepts a reference type
+
+    T7085024 f = new T7085024((NonExistentClass) null );
+}
diff --git a/langtools/test/tools/javac/7085024/T7085024.out b/langtools/test/tools/javac/7085024/T7085024.out
new file mode 100644
index 0000000..cad1037
--- /dev/null
+++ b/langtools/test/tools/javac/7085024/T7085024.out
@@ -0,0 +1,2 @@
+T7085024.java:11:32: compiler.err.cant.resolve.location: kindname.class, NonExistentClass, , , (compiler.misc.location: kindname.class, T7085024, null)
+1 error
diff --git a/langtools/test/tools/javac/7086595/T7086595.java b/langtools/test/tools/javac/7086595/T7086595.java
new file mode 100644
index 0000000..83ab4f9
--- /dev/null
+++ b/langtools/test/tools/javac/7086595/T7086595.java
@@ -0,0 +1,32 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 7086595
+ * @summary Error message bug: name of initializer is 'null'
+ * @compile/fail/ref=T7086595.out -XDrawDiagnostics T7086595.java
+ */
+
+class T7086595 {
+
+    String s = "x";
+    String s = nonExistent;
+
+    int foo() {
+        String s = "x";
+        String s = nonExistent;
+    }
+
+    static int bar() {
+        String s = "x";
+        String s = nonExistent;
+    }
+
+    {
+        String s = "x";
+        String s = nonExistent;
+    }
+
+    static {
+        String s = "x";
+        String s = nonExistent;
+    }
+}
diff --git a/langtools/test/tools/javac/7086595/T7086595.out b/langtools/test/tools/javac/7086595/T7086595.out
new file mode 100644
index 0000000..9e53aea
--- /dev/null
+++ b/langtools/test/tools/javac/7086595/T7086595.out
@@ -0,0 +1,11 @@
+T7086595.java:11:12: compiler.err.already.defined: kindname.variable, s, kindname.class, T7086595
+T7086595.java:11:16: compiler.err.cant.resolve.location: kindname.variable, nonExistent, , , (compiler.misc.location: kindname.class, T7086595, null)
+T7086595.java:15:16: compiler.err.already.defined: kindname.variable, s, kindname.method, foo()
+T7086595.java:15:20: compiler.err.cant.resolve.location: kindname.variable, nonExistent, , , (compiler.misc.location: kindname.class, T7086595, null)
+T7086595.java:20:16: compiler.err.already.defined: kindname.variable, s, kindname.method, bar()
+T7086595.java:20:20: compiler.err.cant.resolve.location: kindname.variable, nonExistent, , , (compiler.misc.location: kindname.class, T7086595, null)
+T7086595.java:25:16: compiler.err.already.defined.in.clinit: kindname.variable, s, kindname.instance.init, kindname.class, T7086595
+T7086595.java:25:20: compiler.err.cant.resolve.location: kindname.variable, nonExistent, , , (compiler.misc.location: kindname.class, T7086595, null)
+T7086595.java:30:16: compiler.err.already.defined.in.clinit: kindname.variable, s, kindname.static.init, kindname.class, T7086595
+T7086595.java:30:20: compiler.err.cant.resolve.location: kindname.variable, nonExistent, , , (compiler.misc.location: kindname.class, T7086595, null)
+10 errors
diff --git a/langtools/test/tools/javac/Diagnostics/6860795/T6860795.out b/langtools/test/tools/javac/Diagnostics/6860795/T6860795.out
index c0ba0f1..cc50d8f 100644
--- a/langtools/test/tools/javac/Diagnostics/6860795/T6860795.out
+++ b/langtools/test/tools/javac/Diagnostics/6860795/T6860795.out
@@ -1,2 +1,2 @@
-T6860795.java:10:27: compiler.err.already.defined: x, foo
+T6860795.java:10:27: compiler.err.already.defined: kindname.variable, x, kindname.method, foo
 1 error
diff --git a/langtools/test/tools/javac/Diagnostics/6862608/T6862608a.out b/langtools/test/tools/javac/Diagnostics/6862608/T6862608a.out
index b9f8525..146bd51 100644
--- a/langtools/test/tools/javac/Diagnostics/6862608/T6862608a.out
+++ b/langtools/test/tools/javac/Diagnostics/6862608/T6862608a.out
@@ -1,3 +1,3 @@
-T6862608a.java:19:41: compiler.err.prob.found.req: (compiler.misc.incompatible.types.1: (compiler.misc.infer.no.conforming.instance.exists: T, java.util.Comparator<T>, java.util.Comparator<java.lang.String>)), <T>java.util.Comparator<T>, java.util.Comparator<java.lang.String>
+T6862608a.java:19:33: compiler.err.cant.apply.symbol.1: kindname.method, compound, java.lang.Iterable<? extends java.util.Comparator<? super T>>, java.util.List<java.util.Comparator<?>>, kindname.class, T6862608a, (compiler.misc.infer.no.conforming.assignment.exists: T, java.util.List<java.util.Comparator<?>>, java.lang.Iterable<? extends java.util.Comparator<? super T>>)
 - compiler.misc.where.description.typevar: T,{(compiler.misc.where.typevar: T, java.lang.Object, kindname.method, <T>compound(java.lang.Iterable<? extends java.util.Comparator<? super T>>))}
 1 error
diff --git a/langtools/test/tools/javac/LocalClasses_2.out b/langtools/test/tools/javac/LocalClasses_2.out
index 5391308..1ef0527 100644
--- a/langtools/test/tools/javac/LocalClasses_2.out
+++ b/langtools/test/tools/javac/LocalClasses_2.out
@@ -1,2 +1,2 @@
-LocalClasses_2.java:15:13: compiler.err.already.defined: Local, foo()
+LocalClasses_2.java:15:13: compiler.err.already.defined: kindname.class, Local, kindname.method, foo()
 1 error
diff --git a/langtools/test/tools/javac/NestedInnerClassNames.out b/langtools/test/tools/javac/NestedInnerClassNames.out
index b4f171b..2038a29 100644
--- a/langtools/test/tools/javac/NestedInnerClassNames.out
+++ b/langtools/test/tools/javac/NestedInnerClassNames.out
@@ -1,18 +1,18 @@
-NestedInnerClassNames.java:16:5: compiler.err.already.defined: NestedInnerClassNames, compiler.misc.unnamed.package
-NestedInnerClassNames.java:23:9: compiler.err.already.defined: NestedInnerClassNames.foo, NestedInnerClassNames
-NestedInnerClassNames.java:34:9: compiler.err.already.defined: NestedInnerClassNames, compiler.misc.unnamed.package
-NestedInnerClassNames.java:45:9: compiler.err.already.defined: NestedInnerClassNames.baz, NestedInnerClassNames
-NestedInnerClassNames.java:46:13: compiler.err.already.defined: NestedInnerClassNames.baz.baz, NestedInnerClassNames.baz
-NestedInnerClassNames.java:59:9: compiler.err.already.defined: NestedInnerClassNames.foo$bar, NestedInnerClassNames
-NestedInnerClassNames.java:76:13: compiler.err.already.defined: NestedInnerClassNames.$bar, NestedInnerClassNames
-NestedInnerClassNames.java:90:13: compiler.err.already.defined: NestedInnerClassNames.bar$bar.bar, NestedInnerClassNames.bar$bar
+NestedInnerClassNames.java:16:5: compiler.err.already.defined: kindname.class, NestedInnerClassNames, kindname.package, compiler.misc.unnamed.package
+NestedInnerClassNames.java:23:9: compiler.err.already.defined: kindname.class, NestedInnerClassNames.foo, kindname.class, NestedInnerClassNames
+NestedInnerClassNames.java:34:9: compiler.err.already.defined: kindname.class, NestedInnerClassNames, kindname.package, compiler.misc.unnamed.package
+NestedInnerClassNames.java:45:9: compiler.err.already.defined: kindname.class, NestedInnerClassNames.baz, kindname.class, NestedInnerClassNames
+NestedInnerClassNames.java:46:13: compiler.err.already.defined: kindname.class, NestedInnerClassNames.baz.baz, kindname.class, NestedInnerClassNames.baz
+NestedInnerClassNames.java:59:9: compiler.err.already.defined: kindname.class, NestedInnerClassNames.foo$bar, kindname.class, NestedInnerClassNames
+NestedInnerClassNames.java:76:13: compiler.err.already.defined: kindname.class, NestedInnerClassNames.$bar, kindname.class, NestedInnerClassNames
+NestedInnerClassNames.java:90:13: compiler.err.already.defined: kindname.class, NestedInnerClassNames.bar$bar.bar, kindname.class, NestedInnerClassNames.bar$bar
 NestedInnerClassNames.java:109:5: compiler.err.duplicate.class: NestedInnerClassNames.foo.foo
-NestedInnerClassNames.java:19:9: compiler.err.already.defined: NestedInnerClassNames, compiler.misc.unnamed.package
-NestedInnerClassNames.java:28:13: compiler.err.already.defined: foo, m2()
-NestedInnerClassNames.java:40:13: compiler.err.already.defined: NestedInnerClassNames, compiler.misc.unnamed.package
-NestedInnerClassNames.java:52:13: compiler.err.already.defined: baz, m4()
-NestedInnerClassNames.java:53:17: compiler.err.already.defined: baz.baz, baz
-NestedInnerClassNames.java:67:13: compiler.err.already.defined: foo$bar, m5()
-NestedInnerClassNames.java:83:17: compiler.err.already.defined: $bar, m6()
-NestedInnerClassNames.java:97:17: compiler.err.already.defined: bar$bar.bar, bar$bar
+NestedInnerClassNames.java:19:9: compiler.err.already.defined: kindname.class, NestedInnerClassNames, kindname.package, compiler.misc.unnamed.package
+NestedInnerClassNames.java:28:13: compiler.err.already.defined: kindname.class, foo, kindname.method, m2()
+NestedInnerClassNames.java:40:13: compiler.err.already.defined: kindname.class, NestedInnerClassNames, kindname.package, compiler.misc.unnamed.package
+NestedInnerClassNames.java:52:13: compiler.err.already.defined: kindname.class, baz, kindname.method, m4()
+NestedInnerClassNames.java:53:17: compiler.err.already.defined: kindname.class, baz.baz, kindname.class, baz
+NestedInnerClassNames.java:67:13: compiler.err.already.defined: kindname.class, foo$bar, kindname.method, m5()
+NestedInnerClassNames.java:83:17: compiler.err.already.defined: kindname.class, $bar, kindname.method, m6()
+NestedInnerClassNames.java:97:17: compiler.err.already.defined: kindname.class, bar$bar.bar, kindname.class, bar$bar
 17 errors
diff --git a/langtools/test/tools/javac/StringsInSwitch/StringSwitches.java b/langtools/test/tools/javac/StringsInSwitch/StringSwitches.java
index 5467cc1..56b4f93 100644
--- a/langtools/test/tools/javac/StringsInSwitch/StringSwitches.java
+++ b/langtools/test/tools/javac/StringsInSwitch/StringSwitches.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6827009
+ * @bug 6827009 7071246
  * @summary Positive tests for strings in switch.
  * @author  Joseph D. Darcy
  */
@@ -36,6 +36,7 @@ public class StringSwitches {
         failures += testPileup();
         failures += testSwitchingTwoWays();
         failures += testNamedBreak();
+        failures += testExtraParens();
 
         if (failures > 0) {
             throw new RuntimeException();
@@ -260,4 +261,19 @@ public class StringSwitches {
         result |= (1<<5);
         return result;
     }
+
+    private static int testExtraParens() {
+        int failures = 1;
+        String s = "first";
+
+        switch(s) {
+        case (("first")):
+            failures = 0;
+            break;
+        case ("second"):
+            throw new RuntimeException("Should not be reached.");
+        }
+
+        return failures;
+    }
 }
diff --git a/langtools/test/tools/javac/T6358166.java b/langtools/test/tools/javac/T6358166.java
index 083e9bf..fe887c6 100644
--- a/langtools/test/tools/javac/T6358166.java
+++ b/langtools/test/tools/javac/T6358166.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -61,7 +61,7 @@ public class T6358166 extends AbstractProcessor {
 
         Main compilerMain = new Main("javac", new PrintWriter(System.err, true));
         compilerMain.setOptions(Options.instance(context));
-        compilerMain.filenames = new ListBuffer<File>();
+        compilerMain.filenames = new LinkedHashSet<File>();
         compilerMain.processArgs(args);
 
         JavaCompiler c = JavaCompiler.instance(context);
diff --git a/langtools/test/tools/javac/T6358168.java b/langtools/test/tools/javac/T6358168.java
index 99a59a8..fe7fec2 100644
--- a/langtools/test/tools/javac/T6358168.java
+++ b/langtools/test/tools/javac/T6358168.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -72,7 +72,7 @@ public class T6358168 extends AbstractProcessor {
 
         Main compilerMain = new Main("javac", new PrintWriter(System.err, true));
         compilerMain.setOptions(Options.instance(context));
-        compilerMain.filenames = new ListBuffer<File>();
+        compilerMain.filenames = new LinkedHashSet<File>();
         compilerMain.processArgs(new String[] { "-d", "." });
 
         JavaCompiler compiler = JavaCompiler.instance(context);
@@ -91,7 +91,7 @@ public class T6358168 extends AbstractProcessor {
 
         Main compilerMain = new Main("javac", new PrintWriter(System.err, true));
         compilerMain.setOptions(Options.instance(context));
-        compilerMain.filenames = new ListBuffer<File>();
+        compilerMain.filenames = new LinkedHashSet<File>();
         compilerMain.processArgs(new String[] {
                                      "-XprintRounds",
                                      "-processorpath", testClasses,
diff --git a/langtools/test/tools/javac/TryWithResources/BadTwr.out b/langtools/test/tools/javac/TryWithResources/BadTwr.out
index 3ed7313..6b0b3a9 100644
--- a/langtools/test/tools/javac/TryWithResources/BadTwr.out
+++ b/langtools/test/tools/javac/TryWithResources/BadTwr.out
@@ -1,5 +1,5 @@
-BadTwr.java:13:39: compiler.err.already.defined: r1, main(java.lang.String...)
-BadTwr.java:18:13: compiler.err.already.defined: args, main(java.lang.String...)
+BadTwr.java:13:46: compiler.err.already.defined: kindname.variable, r1, kindname.method, main(java.lang.String...)
+BadTwr.java:18:20: compiler.err.already.defined: kindname.variable, args, kindname.method, main(java.lang.String...)
 BadTwr.java:21:13: compiler.err.cant.assign.val.to.final.var: thatsIt
-BadTwr.java:26:17: compiler.err.already.defined: name, main(java.lang.String...)
+BadTwr.java:26:24: compiler.err.already.defined: kindname.variable, name, kindname.method, main(java.lang.String...)
 4 errors
diff --git a/langtools/test/tools/javac/TryWithResources/DuplicateResourceDecl.out b/langtools/test/tools/javac/TryWithResources/DuplicateResourceDecl.out
index 463b10b..c6406eb 100644
--- a/langtools/test/tools/javac/TryWithResources/DuplicateResourceDecl.out
+++ b/langtools/test/tools/javac/TryWithResources/DuplicateResourceDecl.out
@@ -1,2 +1,2 @@
-DuplicateResourceDecl.java:12:45: compiler.err.already.defined: c, main(java.lang.String[])
+DuplicateResourceDecl.java:12:56: compiler.err.already.defined: kindname.variable, c, kindname.method, main(java.lang.String[])
 1 error
diff --git a/langtools/test/tools/javac/TryWithResources/ResourceInterface.out b/langtools/test/tools/javac/TryWithResources/ResourceInterface.out
index 4cb21d9..6a968f0 100644
--- a/langtools/test/tools/javac/TryWithResources/ResourceInterface.out
+++ b/langtools/test/tools/javac/TryWithResources/ResourceInterface.out
@@ -1,2 +1,2 @@
-ResourceInterface.java:38:13: compiler.err.unreported.exception.implicit.close: ResourceInterface.E1, r2
+ResourceInterface.java:38:23: compiler.err.unreported.exception.implicit.close: ResourceInterface.E1, r2
 1 error
diff --git a/langtools/test/tools/javac/TryWithResources/TwrFlow.out b/langtools/test/tools/javac/TryWithResources/TwrFlow.out
index f6740ae..23db651 100644
--- a/langtools/test/tools/javac/TryWithResources/TwrFlow.out
+++ b/langtools/test/tools/javac/TryWithResources/TwrFlow.out
@@ -1,3 +1,3 @@
 TwrFlow.java:14:11: compiler.err.except.never.thrown.in.try: java.io.IOException
-TwrFlow.java:12:13: compiler.err.unreported.exception.implicit.close: CustomCloseException, twrFlow
+TwrFlow.java:12:21: compiler.err.unreported.exception.implicit.close: CustomCloseException, twrFlow
 2 errors
diff --git a/langtools/test/tools/javac/TryWithResources/TwrLint.out b/langtools/test/tools/javac/TryWithResources/TwrLint.out
index 9b3f618..6adfc51 100644
--- a/langtools/test/tools/javac/TryWithResources/TwrLint.out
+++ b/langtools/test/tools/javac/TryWithResources/TwrLint.out
@@ -1,3 +1,3 @@
 TwrLint.java:14:15: compiler.warn.try.explicit.close.call
-TwrLint.java:13:13: compiler.warn.try.resource.not.referenced: r3
+TwrLint.java:13:21: compiler.warn.try.resource.not.referenced: r3
 2 warnings
diff --git a/langtools/test/tools/javac/TryWithResources/TwrOnNonResource.out b/langtools/test/tools/javac/TryWithResources/TwrOnNonResource.out
index 37c67ab..c8fe1c5 100644
--- a/langtools/test/tools/javac/TryWithResources/TwrOnNonResource.out
+++ b/langtools/test/tools/javac/TryWithResources/TwrOnNonResource.out
@@ -1,4 +1,4 @@
-TwrOnNonResource.java:12:13: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable
-TwrOnNonResource.java:15:13: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable
-TwrOnNonResource.java:18:13: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable
+TwrOnNonResource.java:12:30: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable
+TwrOnNonResource.java:15:30: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable
+TwrOnNonResource.java:18:30: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type), TwrOnNonResource, java.lang.AutoCloseable
 3 errors
diff --git a/langtools/test/tools/javac/TryWithResources/UnusedResourcesTest.java b/langtools/test/tools/javac/TryWithResources/UnusedResourcesTest.java
index 48ae911..70d44e4 100644
--- a/langtools/test/tools/javac/TryWithResources/UnusedResourcesTest.java
+++ b/langtools/test/tools/javac/TryWithResources/UnusedResourcesTest.java
@@ -28,6 +28,7 @@
  */
 
 import com.sun.source.util.JavacTask;
+import com.sun.tools.javac.api.ClientCodeWrapper;
 import com.sun.tools.javac.api.JavacTool;
 import com.sun.tools.javac.util.JCDiagnostic;
 import java.net.URI;
@@ -236,7 +237,7 @@ public class UnusedResourcesTest {
         public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
             if (diagnostic.getKind() == Diagnostic.Kind.WARNING &&
                     diagnostic.getCode().contains("try.resource.not.referenced")) {
-                String varName = ((JCDiagnostic)diagnostic).getArgs()[0].toString();
+                String varName = unwrap(diagnostic).getArgs()[0].toString();
                 if (varName.equals(TwrStmt.TWR1.resourceName)) {
                     unused_r1 = true;
                 } else if (varName.equals(TwrStmt.TWR2.resourceName)) {
@@ -246,5 +247,13 @@ public class UnusedResourcesTest {
                 }
             }
         }
+
+        private JCDiagnostic unwrap(Diagnostic<? extends JavaFileObject> diagnostic) {
+            if (diagnostic instanceof JCDiagnostic)
+                return (JCDiagnostic) diagnostic;
+            if (diagnostic instanceof ClientCodeWrapper.DiagnosticSourceUnwrapper)
+                return ((ClientCodeWrapper.DiagnosticSourceUnwrapper)diagnostic).d;
+            throw new IllegalArgumentException();
+        }
     }
 }
diff --git a/langtools/test/tools/javac/annotations/T7043371.java b/langtools/test/tools/javac/annotations/T7043371.java
new file mode 100644
index 0000000..c75a02b
--- /dev/null
+++ b/langtools/test/tools/javac/annotations/T7043371.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7043371
+ * @summary javac7 fails with NPE during compilation
+ * @compile T7043371.java
+ */
+
+ at interface Anno {
+    String value();
+}
+
+class B {
+    @Anno(value=A.a)
+    public static final int b = 0;
+}
+
+class A {
+    @Deprecated
+    public static final String a = "a";
+}
diff --git a/langtools/test/tools/javac/annotations/T7073477.java b/langtools/test/tools/javac/annotations/T7073477.java
new file mode 100644
index 0000000..a790e1f
--- /dev/null
+++ b/langtools/test/tools/javac/annotations/T7073477.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7073477
+ * @summary NPE in com.sun.tools.javac.code.Symbol$VarSymbol.getConstValue
+ * @compile T7073477.java
+ */
+
+ at SuppressWarnings(T7073477A.S)
+class T7073477 {
+}
+
+class T7073477A {
+  @SuppressWarnings("")
+  static final String S = "";
+}
+
diff --git a/langtools/test/tools/javac/api/7086261/T7086261.java b/langtools/test/tools/javac/api/7086261/T7086261.java
new file mode 100644
index 0000000..ab302bf
--- /dev/null
+++ b/langtools/test/tools/javac/api/7086261/T7086261.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 20011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7086261
+ * @summary javac doesn't report error as expected, it only reports ClientCodeWrapper$DiagnosticSourceUnwrapper
+ */
+
+import javax.tools.*;
+
+import com.sun.tools.javac.api.ClientCodeWrapper.DiagnosticSourceUnwrapper;
+import com.sun.tools.javac.util.JCDiagnostic;
+
+import java.net.URI;
+import java.util.Arrays;
+
+import static javax.tools.StandardLocation.*;
+import static javax.tools.JavaFileObject.Kind.*;
+
+
+public class T7086261 {
+
+    static class ErroneousSource extends SimpleJavaFileObject {
+        public ErroneousSource() {
+            super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
+        }
+        public CharSequence getCharContent(boolean ignoreEncodingErrors) {
+            return "class Test { NonexistentClass c = null; }";
+        }
+    }
+
+    static class DiagnosticChecker implements DiagnosticListener<javax.tools.JavaFileObject> {
+        public void report(Diagnostic message) {
+            if (!(message instanceof DiagnosticSourceUnwrapper)) {
+                throw new AssertionError("Wrapped diagnostic expected!");
+            }
+            String actual = message.toString();
+            JCDiagnostic jd = (JCDiagnostic)((DiagnosticSourceUnwrapper)message).d;
+            String expected = jd.toString();
+            if (!actual.equals(expected)) {
+                throw new AssertionError("expected = " + expected + "\nfound = " + actual);
+            }
+        }
+    };
+
+    void test() throws Throwable {
+        JavaCompiler javac = ToolProvider.getSystemJavaCompiler();
+        JavaFileManager jfm = javac.getStandardFileManager(null, null, null);
+        JavaCompiler.CompilationTask task =
+                javac.getTask(null, jfm, new DiagnosticChecker(), null, null, Arrays.asList(new ErroneousSource()));
+        task.call();
+    }
+
+    public static void main(String[] args) throws Throwable {
+        new T7086261().test();
+    }
+}
diff --git a/langtools/test/tools/javac/api/TestGetScope.java b/langtools/test/tools/javac/api/TestGetScope.java
new file mode 100644
index 0000000..40cf8c9
--- /dev/null
+++ b/langtools/test/tools/javac/api/TestGetScope.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7090249
+ * @summary IllegalStateException from Trees.getScope when called from JSR 199
+ */
+
+import com.sun.source.tree.IdentifierTree;
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import javax.annotation.processing.AbstractProcessor;
+import javax.annotation.processing.RoundEnvironment;
+import javax.lang.model.element.Element;
+import javax.lang.model.element.TypeElement;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.ToolProvider;
+
+import com.sun.source.util.JavacTask;
+import com.sun.source.util.TreePath;
+import com.sun.source.util.TreePathScanner;
+import com.sun.source.util.Trees;
+import javax.annotation.processing.SupportedAnnotationTypes;
+import javax.lang.model.SourceVersion;
+
+ at SupportedAnnotationTypes("*")
+public class TestGetScope extends AbstractProcessor {
+    public static void main(String... args) {
+        new TestGetScope().run();
+    }
+
+    public void run() {
+        File srcDir = new File(System.getProperty("test.src"));
+        File thisFile = new File(srcDir, getClass().getName() + ".java");
+
+        JavaCompiler c = ToolProvider.getSystemJavaCompiler();
+        StandardJavaFileManager fm = c.getStandardFileManager(null, null, null);
+
+        List<String> opts = Arrays.asList("-proc:only", "-doe");
+        Iterable<? extends JavaFileObject> files = fm.getJavaFileObjects(thisFile);
+        JavacTask t = (JavacTask) c.getTask(null, fm, null, opts, null, files);
+        t.setProcessors(Collections.singleton(this));
+        boolean ok = t.call();
+        if (!ok)
+            throw new Error("compilation failed");
+    }
+
+    @Override
+    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
+        Trees trees = Trees.instance(processingEnv);
+        if (round++ == 0) {
+            for (Element e: roundEnv.getRootElements()) {
+                TreePath p = trees.getPath(e);
+                new Scanner().scan(p, trees);
+            }
+        }
+        return false;
+    }
+
+    @Override
+    public SourceVersion getSupportedSourceVersion() {
+        return SourceVersion.latest();
+    }
+
+    int round;
+
+    static class Scanner extends TreePathScanner<Void,Trees> {
+        @Override
+        public Void visitIdentifier(IdentifierTree t, Trees trees) {
+            System.err.println("visitIdentifier: " + t);
+            trees.getScope(getCurrentPath());
+            return null;
+        }
+    }
+}
diff --git a/langtools/test/tools/javac/api/TestOperators.java b/langtools/test/tools/javac/api/TestOperators.java
index a963d05..d2069bf 100644
--- a/langtools/test/tools/javac/api/TestOperators.java
+++ b/langtools/test/tools/javac/api/TestOperators.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,8 @@
  * @bug     6338064 6346249 6340951 6392177
  * @summary Tree API: can't determine kind of operator
  * @author  Peter von der Ah\u00e9
- * @compile TestOperators.java
+ * @library ../lib
+ * @build JavacTestingAbstractProcessor TestOperators
  * @compile -processor TestOperators -proc:only TestOperators.java
  */
 
@@ -46,7 +47,7 @@ import static com.sun.source.tree.Tree.Kind.*;
 }
 
 @SupportedAnnotationTypes("TestMe")
-public class TestOperators extends AbstractProcessor {
+public class TestOperators extends JavacTestingAbstractProcessor {
 
     @TestMe(POSTFIX_INCREMENT)
     public int test_POSTFIX_INCREMENT(int i) {
@@ -299,7 +300,7 @@ public class TestOperators extends AbstractProcessor {
         final Trees trees = Trees.instance(processingEnv);
         final Messager log = processingEnv.getMessager();
         final Elements elements = processingEnv.getElementUtils();
-        class Scan extends ElementScanner7<Void,Void> {
+        class Scan extends ElementScanner<Void,Void> {
             @Override
             public Void visitExecutable(ExecutableElement e, Void p) {
                 Object debug = e; // info for exception handler
@@ -343,5 +344,4 @@ public class TestOperators extends AbstractProcessor {
         }
         return true;
     }
-
 }
diff --git a/langtools/test/tools/javac/diags/ArgTypeCompilerFactory.java b/langtools/test/tools/javac/diags/ArgTypeCompilerFactory.java
index 7945465..0c8c215 100644
--- a/langtools/test/tools/javac/diags/ArgTypeCompilerFactory.java
+++ b/langtools/test/tools/javac/diags/ArgTypeCompilerFactory.java
@@ -146,9 +146,9 @@ class ArgTypeCompilerFactory implements Example.Compiler.Factory {
             JavacFileManager.preRegister(c); // can't create it until Log has been set up
             ArgTypeJavaCompiler.preRegister(c);
             ArgTypeMessages.preRegister(c);
-            int result = main.compile(args.toArray(new String[args.size()]), c);
+            Main.Result result = main.compile(args.toArray(new String[args.size()]), c);
 
-            return (result == 0);
+            return result.isOK();
         }
     }
 
@@ -172,10 +172,10 @@ class ArgTypeCompilerFactory implements Example.Compiler.Factory {
             JavacFileManager.preRegister(c); // can't create it until Log has been set up
             ArgTypeJavaCompiler.preRegister(c);
             ArgTypeMessages.preRegister(c);
-            com.sun.tools.javac.main.Main m = new com.sun.tools.javac.main.Main("javac", out);
-            int rc = m.compile(args.toArray(new String[args.size()]), c);
+            Main m = new Main("javac", out);
+            Main.Result result = m.compile(args.toArray(new String[args.size()]), c);
 
-            return (rc == 0);
+            return result.isOK();
         }
 
     }
diff --git a/langtools/test/tools/javac/diags/Example.java b/langtools/test/tools/javac/diags/Example.java
index 27cb62c..45f9ef8 100644
--- a/langtools/test/tools/javac/diags/Example.java
+++ b/langtools/test/tools/javac/diags/Example.java
@@ -21,10 +21,12 @@
  * questions.
  */
 
-import com.sun.tools.javac.file.JavacFileManager;
 import java.io.*;
+import java.net.URL;
+import java.net.URLClassLoader;
 import java.util.*;
 import java.util.regex.*;
+import javax.annotation.processing.Processor;
 import javax.tools.Diagnostic;
 import javax.tools.DiagnosticCollector;
 import javax.tools.JavaCompiler;
@@ -37,12 +39,12 @@ import javax.tools.ToolProvider;
 // import com.sun.tools.javac.Main
 // import com.sun.tools.javac.main.Main
 
+import com.sun.tools.javac.api.ClientCodeWrapper;
+import com.sun.tools.javac.file.JavacFileManager;
+import com.sun.tools.javac.main.Main;
 import com.sun.tools.javac.util.Context;
 import com.sun.tools.javac.util.JavacMessages;
 import com.sun.tools.javac.util.JCDiagnostic;
-import java.net.URL;
-import java.net.URLClassLoader;
-import javax.annotation.processing.Processor;
 
 /**
  * Class to handle example code designed to illustrate javac diagnostic messages.
@@ -397,7 +399,7 @@ class Example implements Comparable<Example> {
 
             if (keys != null) {
                 for (Diagnostic<? extends JavaFileObject> d: dc.getDiagnostics()) {
-                    scanForKeys((JCDiagnostic) d, keys);
+                    scanForKeys(unwrap(d), keys);
                 }
             }
 
@@ -418,6 +420,14 @@ class Example implements Comparable<Example> {
             for (JCDiagnostic sd: d.getSubdiagnostics())
                 scanForKeys(sd, keys);
         }
+
+        private JCDiagnostic unwrap(Diagnostic<? extends JavaFileObject> diagnostic) {
+            if (diagnostic instanceof JCDiagnostic)
+                return (JCDiagnostic) diagnostic;
+            if (diagnostic instanceof ClientCodeWrapper.DiagnosticSourceUnwrapper)
+                return ((ClientCodeWrapper.DiagnosticSourceUnwrapper)diagnostic).d;
+            throw new IllegalArgumentException();
+        }
     }
 
     /**
@@ -506,14 +516,14 @@ class Example implements Comparable<Example> {
             Context c = new Context();
             JavacFileManager.preRegister(c); // can't create it until Log has been set up
             MessageTracker.preRegister(c, keys);
-            com.sun.tools.javac.main.Main m = new com.sun.tools.javac.main.Main("javac", pw);
-            int rc = m.compile(args.toArray(new String[args.size()]), c);
+            Main m = new Main("javac", pw);
+            Main.Result rc = m.compile(args.toArray(new String[args.size()]), c);
 
             if (keys != null) {
                 pw.close();
             }
 
-            return (rc == 0);
+            return rc.isOK();
         }
 
         static class MessageTracker extends JavacMessages {
diff --git a/langtools/test/tools/javac/diags/examples.not-yet.txt b/langtools/test/tools/javac/diags/examples.not-yet.txt
index 2d2f5c8..0a17db4 100644
--- a/langtools/test/tools/javac/diags/examples.not-yet.txt
+++ b/langtools/test/tools/javac/diags/examples.not-yet.txt
@@ -60,7 +60,7 @@ compiler.misc.class.file.wrong.class
 compiler.misc.fatal.err.cant.locate.ctor                # Resolve, from Lower
 compiler.misc.fatal.err.cant.locate.field               # Resolve, from Lower
 compiler.misc.fatal.err.cant.locate.meth                # Resolve, from Lower
-compiler.misc.fatal.err.cant.close.loader               # JavacProcessingEnvironment
+compiler.misc.fatal.err.cant.close	                # JavaCompiler
 compiler.misc.file.does.not.contain.package
 compiler.misc.illegal.start.of.class.file
 compiler.misc.kindname.annotation
diff --git a/langtools/test/tools/javac/diags/examples/AlreadyDefinedClinit.java b/langtools/test/tools/javac/diags/examples/AlreadyDefinedClinit.java
new file mode 100644
index 0000000..caa32c7
--- /dev/null
+++ b/langtools/test/tools/javac/diags/examples/AlreadyDefinedClinit.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+// key: compiler.err.already.defined.in.clinit
+
+class AlreadyDefinedClinit {
+    static {
+        int i;
+        int i;
+    }
+}
diff --git a/langtools/test/tools/javac/diags/examples/CannotCreateArrayWithDiamond.java b/langtools/test/tools/javac/diags/examples/CannotCreateArrayWithDiamond.java
new file mode 100644
index 0000000..520fdfc
--- /dev/null
+++ b/langtools/test/tools/javac/diags/examples/CannotCreateArrayWithDiamond.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+// key: compiler.err.cannot.create.array.with.diamond
+
+class CannotCreateArrayWithDiamond {
+    Object[] array = new Object<>[3];
+}
diff --git a/langtools/test/tools/javac/diags/examples/EmptyCharLiteral.java b/langtools/test/tools/javac/diags/examples/EmptyCharLiteral.java
index 62b21a2..28c4091 100644
--- a/langtools/test/tools/javac/diags/examples/EmptyCharLiteral.java
+++ b/langtools/test/tools/javac/diags/examples/EmptyCharLiteral.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,6 @@
 
 // key: compiler.err.empty.char.lit
 // key: compiler.err.unclosed.char.lit
-// key: compiler.err.expected
 // key: compiler.err.premature.eof
 
 class X {
diff --git a/langtools/test/tools/javac/diags/examples/IncompatibleUpperBounds.java b/langtools/test/tools/javac/diags/examples/IncompatibleUpperBounds.java
new file mode 100644
index 0000000..bc15256
--- /dev/null
+++ b/langtools/test/tools/javac/diags/examples/IncompatibleUpperBounds.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+//key: compiler.err.cant.apply.symbols
+//key: compiler.misc.inapplicable.method
+//key: compiler.misc.arg.length.mismatch
+//key: compiler.misc.incompatible.upper.bounds
+
+import java.util.List;
+
+class IncompatibleUpperBounds {
+    <S> void m(List<? super S> s1, List<? super S> s2) { }
+    void m(Object o) {}
+
+    void test(List<Integer> li, List<String> ls) {
+        m(li, ls);
+    }
+}
diff --git a/langtools/test/tools/javac/diags/examples/KindnameInstanceInit.java b/langtools/test/tools/javac/diags/examples/KindnameInstanceInit.java
new file mode 100644
index 0000000..f03c5a8
--- /dev/null
+++ b/langtools/test/tools/javac/diags/examples/KindnameInstanceInit.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+// key: compiler.err.already.defined.in.clinit
+// key: compiler.misc.kindname.instance.init
+// key: compiler.misc.kindname.class
+// key: compiler.misc.kindname.variable
+// key: compiler.misc.count.error
+// key: compiler.err.error
+// run: backdoor
+
+class KindnameInstanceInit {
+    {
+        int i;
+        int i;
+    }
+}
diff --git a/langtools/test/tools/javac/diags/examples/KindnameStaticInit.java b/langtools/test/tools/javac/diags/examples/KindnameStaticInit.java
new file mode 100644
index 0000000..047a370
--- /dev/null
+++ b/langtools/test/tools/javac/diags/examples/KindnameStaticInit.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+// key: compiler.err.already.defined.in.clinit
+// key: compiler.misc.kindname.static.init
+// key: compiler.misc.kindname.class
+// key: compiler.misc.kindname.variable
+// key: compiler.misc.count.error
+// key: compiler.err.error
+// run: backdoor
+
+class KindnameStaticInit {
+    static {
+        int i;
+        int i;
+    }
+}
diff --git a/langtools/test/tools/javac/enum/6350057/T6350057.java b/langtools/test/tools/javac/enum/6350057/T6350057.java
index f4c47a1..7cd5229 100644
--- a/langtools/test/tools/javac/enum/6350057/T6350057.java
+++ b/langtools/test/tools/javac/enum/6350057/T6350057.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,10 +23,11 @@
 
 /*
  * @test
- * @bug 6350057
+ * @bug 6350057 7025809
  * @summary Test that parameters on implicit enum methods have the right kind
  * @author  Joseph D. Darcy
- * @compile T6350057.java
+ * @library ../../lib
+ * @build   JavacTestingAbstractProcessor T6350057
  * @compile -processor T6350057 -proc:only TestEnum.java
  */
 
@@ -38,9 +39,8 @@ import javax.lang.model.element.*;
 import javax.lang.model.util.*;
 import static javax.tools.Diagnostic.Kind.*;
 
- at SupportedAnnotationTypes("*")
-public class T6350057 extends AbstractProcessor {
-    static class LocalVarAllergy extends ElementKindVisitor6<Boolean, Void> {
+public class T6350057 extends JavacTestingAbstractProcessor {
+    static class LocalVarAllergy extends ElementKindVisitor<Boolean, Void> {
         @Override
         public Boolean visitTypeAsEnum(TypeElement e, Void v) {
             System.out.println("visitTypeAsEnum: " + e.getSimpleName().toString());
diff --git a/langtools/test/tools/javac/enum/6424358/T6424358.java b/langtools/test/tools/javac/enum/6424358/T6424358.java
index 0ab0d8d..c0f0081 100644
--- a/langtools/test/tools/javac/enum/6424358/T6424358.java
+++ b/langtools/test/tools/javac/enum/6424358/T6424358.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,10 +23,11 @@
 
 /*
  * @test
- * @bug     6424358
+ * @bug     6424358 7025809
  * @summary Synthesized static enum method values() is final
  * @author  Peter von der Ah\u00e9
- * @compile T6424358.java
+ * @library ../../lib
+ * @build   JavacTestingAbstractProcessor T6424358
  * @compile -processor T6424358 -proc:only T6424358.java
  */
 
@@ -39,8 +40,7 @@ import static javax.tools.Diagnostic.Kind.*;
 
 @interface TestMe {}
 
- at SupportedAnnotationTypes("*")
-public class T6424358 extends AbstractProcessor {
+public class T6424358 extends JavacTestingAbstractProcessor {
     @TestMe enum Test { FOO; }
 
     public boolean process(Set<? extends TypeElement> annotations,
@@ -48,7 +48,7 @@ public class T6424358 extends AbstractProcessor {
         final Messager log = processingEnv.getMessager();
         final Elements elements = processingEnv.getElementUtils();
         final TypeElement testMe = elements.getTypeElement("TestMe");
-        class Scan extends ElementScanner7<Void,Void> {
+        class Scan extends ElementScanner<Void,Void> {
             @Override
             public Void visitExecutable(ExecutableElement e, Void p) {
                 System.err.println("Looking at " + e);
@@ -65,9 +65,4 @@ public class T6424358 extends AbstractProcessor {
             scan.scan(e);
         return true;
     }
-
-    @Override
-    public SourceVersion getSupportedSourceVersion() {
-        return SourceVersion.latest();
-    }
 }
diff --git a/langtools/test/tools/javac/failover/FailOver15.out b/langtools/test/tools/javac/failover/FailOver15.out
index bb6831c..c9b7a6e 100644
--- a/langtools/test/tools/javac/failover/FailOver15.out
+++ b/langtools/test/tools/javac/failover/FailOver15.out
@@ -1,4 +1,3 @@
 FailOver15.java:17:10: compiler.err.expected: ';'
 FailOver15.java:11:13: compiler.err.cant.resolve.location: kindname.class, UnknownClass, , , (compiler.misc.location: kindname.class, Test, null)
 2 errors
-
diff --git a/langtools/test/tools/javac/file/T7068437.java b/langtools/test/tools/javac/file/T7068437.java
new file mode 100644
index 0000000..86ae51f
--- /dev/null
+++ b/langtools/test/tools/javac/file/T7068437.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7068437
+ * @summary Filer.getResource(SOURCE_OUTPUT, ...) no longer works in JDK 7 w/o -s
+ */
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Set;
+import javax.annotation.processing.AbstractProcessor;
+import javax.annotation.processing.Filer;
+import javax.annotation.processing.Messager;
+import javax.annotation.processing.RoundEnvironment;
+import javax.annotation.processing.SupportedAnnotationTypes;
+import javax.annotation.processing.SupportedOptions;
+import javax.annotation.processing.SupportedSourceVersion;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.TypeElement;
+import javax.tools.Diagnostic.Kind;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaCompiler.CompilationTask;
+import javax.tools.StandardLocation;
+import javax.tools.ToolProvider;
+
+public class T7068437 {
+    public static void main(String[] args) throws Exception {
+        new T7068437().run();
+    }
+
+    void run() throws Exception {
+        JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
+        System.err.println("using " + compiler.getClass()
+                + " from " + compiler.getClass().getProtectionDomain().getCodeSource());
+
+        CompilationTask task = compiler.getTask(null, null, null,
+                Collections.singleton("-proc:only"),
+                Collections.singleton("java.lang.Object"),
+                null);
+        task.setProcessors(Collections.singleton(new Proc()));
+        check("compilation", task.call());
+
+        task = compiler.getTask(null, null, null,
+                Arrays.asList("-proc:only", "-AexpectFile"),
+                Collections.singleton("java.lang.Object"),
+                null);
+        task.setProcessors(Collections.singleton(new Proc()));
+        check("compilation", task.call());
+    }
+
+    void check(String msg, boolean ok) {
+        System.err.println(msg + ": " + (ok ? "ok" : "failed"));
+        if (!ok)
+            throw new AssertionError(msg);
+    }
+
+    @SupportedAnnotationTypes("*")
+    @SupportedOptions("expectFile")
+    private static class Proc extends AbstractProcessor {
+        int count;
+
+        @Override
+        public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
+            if (roundEnv.processingOver() || count++ > 0) {
+                return false;
+            }
+
+            Filer filer = processingEnv.getFiler();
+            Messager messager = processingEnv.getMessager();
+            Map<String, String> options = processingEnv.getOptions();
+                System.err.println(options);
+            boolean expectFile = options.containsKey("expectFile");
+
+            System.err.println("running Proc: expectFile=" + expectFile);
+
+            boolean found;
+            try {
+                messager.printMessage(Kind.NOTE, "found previous content of length " +
+                        filer.getResource(StandardLocation.SOURCE_OUTPUT, "p", "C.java").getCharContent(false).length());
+                found = true;
+            } catch (FileNotFoundException x) {
+                messager.printMessage(Kind.NOTE, "not previously there");
+                found = false;
+            } catch (IOException x) {
+                messager.printMessage(Kind.ERROR, "while reading: " + x);
+                found = false;
+            }
+
+            if (expectFile && !found) {
+                messager.printMessage(Kind.ERROR, "expected file but file not found");
+            }
+
+            try {
+                Writer w = filer.createSourceFile("p.C").openWriter();
+                w.write("/* hello! */ package p; class C {}");
+                w.close();
+                messager.printMessage(Kind.NOTE, "wrote new content");
+            } catch (IOException x) {
+                messager.printMessage(Kind.ERROR, "while writing: " + x);
+            }
+
+            return true;
+        }
+
+        @Override
+        public SourceVersion getSupportedSourceVersion() {
+            return SourceVersion.latest();
+        }
+    }
+}
diff --git a/langtools/test/tools/javac/file/T7068451.java b/langtools/test/tools/javac/file/T7068451.java
new file mode 100644
index 0000000..ab0d903
--- /dev/null
+++ b/langtools/test/tools/javac/file/T7068451.java
@@ -0,0 +1,168 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7068451
+ * @summary Regression: javac compiles fixed sources against previous,
+ *              not current, version of generated sources
+ */
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import javax.annotation.processing.AbstractProcessor;
+import javax.annotation.processing.Filer;
+import javax.annotation.processing.Messager;
+import javax.annotation.processing.RoundEnvironment;
+import javax.annotation.processing.SupportedAnnotationTypes;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.TypeElement;
+import javax.tools.Diagnostic.Kind;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaCompiler.CompilationTask;
+import javax.tools.StandardLocation;
+import javax.tools.ToolProvider;
+
+public class T7068451 {
+    public static void main(String[] args) throws Exception {
+        new T7068451().run();
+    }
+
+    void run() throws Exception {
+        JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
+        System.err.println("using " + compiler.getClass() + " from " + compiler.getClass().getProtectionDomain().getCodeSource());
+
+        File tmp = new File("tmp");
+        tmp.mkdir();
+        for (File f: tmp.listFiles())
+            f.delete();
+
+        File input = writeFile(tmp, "X.java", "package p; class X { { p.C.first(); } }");
+
+        List<String> opts = Arrays.asList(
+                "-s", tmp.getPath(),
+                "-d", tmp.getPath(),
+                "-XprintRounds");
+
+        System.err.println();
+        System.err.println("FIRST compilation");
+        System.err.println();
+
+        CompilationTask task = compiler.getTask(null, null, null, opts, null,
+                compiler.getStandardFileManager(null, null, null).getJavaFileObjects(input));
+        task.setProcessors(Collections.singleton(new Proc("first")));
+        check("compilation", task.call());
+
+        writeFile(tmp, "X.java", "package p; class X { { p.C.second(); } }");
+
+        //Thread.sleep(2000);
+
+        System.err.println();
+        System.err.println("SECOND compilation");
+        System.err.println();
+
+        task = compiler.getTask(null, null, null, opts, null,
+                compiler.getStandardFileManager(null, null, null).getJavaFileObjects(input));
+        task.setProcessors(Collections.singleton(new Proc("second")));
+        check("compilation", task.call());
+
+        //Thread.sleep(2000);
+
+        System.err.println();
+        System.err.println("SECOND compilation, REPEATED");
+        System.err.println();
+
+        task = compiler.getTask(null, null, null, opts, null,
+                compiler.getStandardFileManager(null, null, null).getJavaFileObjects(input));
+        task.setProcessors(Collections.singleton(new Proc("second")));
+        check("compilation", task.call());
+    }
+
+    void check(String msg, boolean ok) {
+        System.err.println(msg + ": " + (ok ? "ok" : "failed"));
+        if (!ok)
+            throw new AssertionError(msg);
+    }
+
+    static File writeFile(File base, String path, String body) throws IOException {
+        File f = new File(base, path);
+        FileWriter out = new FileWriter(f);
+        out.write(body);
+        out.close();
+        System.err.println("wrote " + path + ": " + body);
+        return f;
+    }
+
+    @SupportedAnnotationTypes("*")
+    private static class Proc extends AbstractProcessor {
+        final String m;
+        Proc(String m) {
+            this.m = m;
+        }
+
+        int count;
+        @Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
+            if (roundEnv.processingOver() || count++ > 0) {
+                return false;
+            }
+
+            Filer filer = processingEnv.getFiler();
+            Messager messager = processingEnv.getMessager();
+
+            System.err.println("running Proc");
+            try {
+                int len = filer.getResource(StandardLocation.SOURCE_OUTPUT, "p", "C.java").getCharContent(false).length();
+                messager.printMessage(Kind.NOTE, "C.java: found previous content of length " + len);
+            } catch (FileNotFoundException x) {
+                messager.printMessage(Kind.NOTE, "C.java: not previously there");
+            } catch (IOException x) {
+                messager.printMessage(Kind.ERROR, "while reading: " + x);
+            }
+
+            try {
+                String body = "package p; public class C { public static void " + m + "() {} }";
+                Writer w = filer.createSourceFile("p.C").openWriter();
+                w.write(body);
+                w.close();
+                messager.printMessage(Kind.NOTE, "C.java: wrote new content: " + body);
+            } catch (IOException x) {
+                messager.printMessage(Kind.ERROR, "while writing: " + x);
+            }
+
+            return true;
+        }
+
+        @Override
+        public SourceVersion getSupportedSourceVersion() {
+            return SourceVersion.latest();
+        }
+    }
+}
+
diff --git a/langtools/test/tools/javac/generics/6910550/T6910550d.out b/langtools/test/tools/javac/generics/6910550/T6910550d.out
index 676a967..c884fe4 100644
--- a/langtools/test/tools/javac/generics/6910550/T6910550d.out
+++ b/langtools/test/tools/javac/generics/6910550/T6910550d.out
@@ -1,2 +1,2 @@
-T6910550d.java:12:14: compiler.err.already.defined: <X>m(X), T6910550d
+T6910550d.java:12:14: compiler.err.already.defined: kindname.method, <X>m(X), kindname.class, T6910550d
 1 error
diff --git a/langtools/test/tools/javac/generics/diamond/7046778/DiamondAndInnerClassTest.java b/langtools/test/tools/javac/generics/diamond/7046778/DiamondAndInnerClassTest.java
new file mode 100644
index 0000000..3aab739
--- /dev/null
+++ b/langtools/test/tools/javac/generics/diamond/7046778/DiamondAndInnerClassTest.java
@@ -0,0 +1,336 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7046778
+ * @summary Project Coin: problem with diamond and member inner classes
+ */
+
+import com.sun.source.util.JavacTask;
+import java.net.URI;
+import java.util.Arrays;
+import javax.tools.Diagnostic;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.ToolProvider;
+
+public class DiamondAndInnerClassTest {
+
+    static int checkCount = 0;
+
+    enum TypeArgumentKind {
+        NONE(""),
+        STRING("<String>"),
+        INTEGER("<Integer>"),
+        DIAMOND("<>");
+
+        String typeargStr;
+
+        private TypeArgumentKind(String typeargStr) {
+            this.typeargStr = typeargStr;
+        }
+
+        boolean compatible(TypeArgumentKind that) {
+            switch (this) {
+                case NONE: return true;
+                case STRING: return that != INTEGER;
+                case INTEGER: return that != STRING;
+                default: throw new AssertionError("Unexpected decl kind: " + this);
+            }
+        }
+
+        boolean compatible(ArgumentKind that) {
+            switch (this) {
+                case NONE: return true;
+                case STRING: return that == ArgumentKind.STRING;
+                case INTEGER: return that == ArgumentKind.INTEGER;
+                default: throw new AssertionError("Unexpected decl kind: " + this);
+            }
+        }
+    }
+
+    enum ArgumentKind {
+        OBJECT("(Object)null"),
+        STRING("(String)null"),
+        INTEGER("(Integer)null");
+
+        String argStr;
+
+        private ArgumentKind(String argStr) {
+            this.argStr = argStr;
+        }
+    }
+
+    enum TypeQualifierArity {
+        ONE(1, "A1#TA1"),
+        TWO(2, "A1#TA1.A2#TA2"),
+        THREE(3, "A1#TA1.A2#TA2.A3#TA3");
+
+        int n;
+        String qualifierStr;
+
+        private TypeQualifierArity(int n, String qualifierStr) {
+            this.n = n;
+            this.qualifierStr = qualifierStr;
+        }
+
+        String getType(TypeArgumentKind... typeArgumentKinds) {
+            String res = qualifierStr;
+            for (int i = 1 ; i <= typeArgumentKinds.length ; i++) {
+                res = res.replace("#TA" + i, typeArgumentKinds[i-1].typeargStr);
+            }
+            return res;
+        }
+
+        boolean matches(InnerClassDeclArity innerClassDeclArity) {
+            return n ==innerClassDeclArity.n;
+        }
+    }
+
+    enum InnerClassDeclArity {
+        ONE(1, "class A1<X> { A1(X x1) { } #B }"),
+        TWO(2, "class A1<X1> { class A2<X2> { A2(X1 x1, X2 x2) { }  #B } }"),
+        THREE(3, "class A1<X1> { class A2<X2> { class A3<X3> { A3(X1 x1, X2 x2, X3 x3) { } #B } } }");
+
+        int n;
+        String classDeclStr;
+
+        private InnerClassDeclArity(int n, String classDeclStr) {
+            this.n = n;
+            this.classDeclStr = classDeclStr;
+        }
+    }
+
+    enum ArgumentListArity {
+        ONE(1, "(#A1)"),
+        TWO(2, "(#A1,#A2)"),
+        THREE(3, "(#A1,#A2,#A3)");
+
+        int n;
+        String argListStr;
+
+        private ArgumentListArity(int n, String argListStr) {
+            this.n = n;
+            this.argListStr = argListStr;
+        }
+
+        String getArgs(ArgumentKind... argumentKinds) {
+            String res = argListStr;
+            for (int i = 1 ; i <= argumentKinds.length ; i++) {
+                res = res.replace("#A" + i, argumentKinds[i-1].argStr);
+            }
+            return res;
+        }
+
+        boolean matches(InnerClassDeclArity innerClassDeclArity) {
+            return n ==innerClassDeclArity.n;
+        }
+    }
+
+    public static void main(String... args) throws Exception {
+
+        //create default shared JavaCompiler - reused across multiple compilations
+        JavaCompiler comp = ToolProvider.getSystemJavaCompiler();
+        StandardJavaFileManager fm = comp.getStandardFileManager(null, null, null);
+
+        for (InnerClassDeclArity innerClassDeclArity : InnerClassDeclArity.values()) {
+            for (TypeQualifierArity declType : TypeQualifierArity.values()) {
+                if (!declType.matches(innerClassDeclArity)) continue;
+                for (TypeQualifierArity newClassType : TypeQualifierArity.values()) {
+                    if (!newClassType.matches(innerClassDeclArity)) continue;
+                    for (ArgumentListArity argList : ArgumentListArity.values()) {
+                        if (!argList.matches(innerClassDeclArity)) continue;
+                        for (TypeArgumentKind taDecl1 : TypeArgumentKind.values()) {
+                            boolean isDeclRaw = taDecl1 == TypeArgumentKind.NONE;
+                            //no diamond on decl site
+                            if (taDecl1 == TypeArgumentKind.DIAMOND) continue;
+                            for (TypeArgumentKind taSite1 : TypeArgumentKind.values()) {
+                                boolean isSiteRaw = taSite1 == TypeArgumentKind.NONE;
+                                //diamond only allowed on the last type qualifier
+                                if (taSite1 == TypeArgumentKind.DIAMOND &&
+                                        innerClassDeclArity != InnerClassDeclArity.ONE) continue;
+                                for (ArgumentKind arg1 : ArgumentKind.values()) {
+                                    if (innerClassDeclArity == innerClassDeclArity.ONE) {
+                                        new DiamondAndInnerClassTest(innerClassDeclArity, declType, newClassType,
+                                                argList, new TypeArgumentKind[] {taDecl1},
+                                                new TypeArgumentKind[] {taSite1}, new ArgumentKind[] {arg1}).run(comp, fm);
+                                        continue;
+                                    }
+                                    for (TypeArgumentKind taDecl2 : TypeArgumentKind.values()) {
+                                        //no rare types
+                                        if (isDeclRaw != (taDecl2 == TypeArgumentKind.NONE)) continue;
+                                        //no diamond on decl site
+                                        if (taDecl2 == TypeArgumentKind.DIAMOND) continue;
+                                        for (TypeArgumentKind taSite2 : TypeArgumentKind.values()) {
+                                            //no rare types
+                                            if (isSiteRaw != (taSite2 == TypeArgumentKind.NONE)) continue;
+                                            //diamond only allowed on the last type qualifier
+                                            if (taSite2 == TypeArgumentKind.DIAMOND &&
+                                                    innerClassDeclArity != InnerClassDeclArity.TWO) continue;
+                                            for (ArgumentKind arg2 : ArgumentKind.values()) {
+                                                if (innerClassDeclArity == innerClassDeclArity.TWO) {
+                                                    new DiamondAndInnerClassTest(innerClassDeclArity, declType, newClassType,
+                                                            argList, new TypeArgumentKind[] {taDecl1, taDecl2},
+                                                            new TypeArgumentKind[] {taSite1, taSite2},
+                                                            new ArgumentKind[] {arg1, arg2}).run(comp, fm);
+                                                    continue;
+                                                }
+                                                for (TypeArgumentKind taDecl3 : TypeArgumentKind.values()) {
+                                                    //no rare types
+                                                    if (isDeclRaw != (taDecl3 == TypeArgumentKind.NONE)) continue;
+                                                    //no diamond on decl site
+                                                    if (taDecl3 == TypeArgumentKind.DIAMOND) continue;
+                                                    for (TypeArgumentKind taSite3 : TypeArgumentKind.values()) {
+                                                        //no rare types
+                                                        if (isSiteRaw != (taSite3 == TypeArgumentKind.NONE)) continue;
+                                                        //diamond only allowed on the last type qualifier
+                                                        if (taSite3 == TypeArgumentKind.DIAMOND &&
+                                                                innerClassDeclArity != InnerClassDeclArity.THREE) continue;
+                                                        for (ArgumentKind arg3 : ArgumentKind.values()) {
+                                                            if (innerClassDeclArity == innerClassDeclArity.THREE) {
+                                                                new DiamondAndInnerClassTest(innerClassDeclArity, declType, newClassType,
+                                                                        argList, new TypeArgumentKind[] {taDecl1, taDecl2, taDecl3},
+                                                                        new TypeArgumentKind[] {taSite1, taSite2, taSite3},
+                                                                        new ArgumentKind[] {arg1, arg2, arg3}).run(comp, fm);
+                                                                continue;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        System.out.println("Total check executed: " + checkCount);
+    }
+
+    InnerClassDeclArity innerClassDeclArity;
+    TypeQualifierArity declType;
+    TypeQualifierArity siteType;
+    ArgumentListArity argList;
+    TypeArgumentKind[] declTypeArgumentKinds;
+    TypeArgumentKind[] siteTypeArgumentKinds;
+    ArgumentKind[] argumentKinds;
+    JavaSource source;
+    DiagnosticChecker diagChecker;
+
+    DiamondAndInnerClassTest(InnerClassDeclArity innerClassDeclArity,
+            TypeQualifierArity declType, TypeQualifierArity siteType, ArgumentListArity argList,
+            TypeArgumentKind[] declTypeArgumentKinds, TypeArgumentKind[] siteTypeArgumentKinds,
+            ArgumentKind[] argumentKinds) {
+        this.innerClassDeclArity = innerClassDeclArity;
+        this.declType = declType;
+        this.siteType = siteType;
+        this.argList = argList;
+        this.declTypeArgumentKinds = declTypeArgumentKinds;
+        this.siteTypeArgumentKinds = siteTypeArgumentKinds;
+        this.argumentKinds = argumentKinds;
+        this.source = new JavaSource();
+        this.diagChecker = new DiagnosticChecker();
+    }
+
+    class JavaSource extends SimpleJavaFileObject {
+
+        String bodyTemplate = "#D res = new #S#AL;";
+
+        String source;
+
+        public JavaSource() {
+            super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
+            source = innerClassDeclArity.classDeclStr.replace("#B", bodyTemplate)
+                             .replace("#D", declType.getType(declTypeArgumentKinds))
+                             .replace("#S", siteType.getType(siteTypeArgumentKinds))
+                             .replace("#AL", argList.getArgs(argumentKinds));
+        }
+
+        @Override
+        public CharSequence getCharContent(boolean ignoreEncodingErrors) {
+            return source;
+        }
+    }
+
+    void run(JavaCompiler tool, StandardJavaFileManager fm) throws Exception {
+        JavacTask ct = (JavacTask)tool.getTask(null, fm, diagChecker,
+                null, null, Arrays.asList(source));
+        try {
+            ct.analyze();
+        } catch (Throwable ex) {
+            throw new AssertionError("Error thron when compiling the following code:\n" + source.getCharContent(true));
+        }
+        check();
+    }
+
+    void check() {
+        checkCount++;
+
+        boolean errorExpected = false;
+
+        TypeArgumentKind[] expectedArgKinds = new TypeArgumentKind[innerClassDeclArity.n];
+
+        for (int i = 0 ; i < innerClassDeclArity.n ; i++) {
+            if (!declTypeArgumentKinds[i].compatible(siteTypeArgumentKinds[i])) {
+                errorExpected = true;
+                break;
+            }
+            expectedArgKinds[i] = siteTypeArgumentKinds[i] == TypeArgumentKind.DIAMOND ?
+                declTypeArgumentKinds[i] : siteTypeArgumentKinds[i];
+        }
+
+        if (!errorExpected) {
+            for (int i = 0 ; i < innerClassDeclArity.n ; i++) {
+                //System.out.println("check " + expectedArgKinds[i] + " against " + argumentKinds[i]);
+                if (!expectedArgKinds[i].compatible(argumentKinds[i])) {
+                    errorExpected = true;
+                    break;
+                }
+            }
+        }
+
+        if (errorExpected != diagChecker.errorFound) {
+            throw new Error("invalid diagnostics for source:\n" +
+                source.getCharContent(true) +
+                "\nFound error: " + diagChecker.errorFound +
+                "\nExpected error: " + errorExpected);
+        }
+    }
+
+    static class DiagnosticChecker implements javax.tools.DiagnosticListener<JavaFileObject> {
+
+        boolean errorFound;
+
+        public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
+            if (diagnostic.getKind() == Diagnostic.Kind.ERROR) {
+                errorFound = true;
+            }
+        }
+    }
+}
diff --git a/langtools/test/tools/javac/generics/diamond/7057297/T7057297.java b/langtools/test/tools/javac/generics/diamond/7057297/T7057297.java
new file mode 100644
index 0000000..cd8978f
--- /dev/null
+++ b/langtools/test/tools/javac/generics/diamond/7057297/T7057297.java
@@ -0,0 +1,29 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 7057297
+ *
+ * @summary Project Coin: diamond erroneously accepts in array initializer expressions
+ * @compile/fail/ref=T7057297.out T7057297.java -XDrawDiagnostics
+ *
+ */
+
+class T7205797<X> {
+
+    class Inner<Y> {}
+
+    T7205797<String>[] o1 = new T7205797<>[1]; //error
+    T7205797<String>[] o2 = new T7205797<>[1][1]; //error
+    T7205797<String>[] o3 = new T7205797<>[1][1][1]; //error
+
+    T7205797<String>[] o4 = new T7205797<>[] { }; //error
+    T7205797<String>[] o5 = new T7205797<>[][] { }; //error
+    T7205797<String>[] o6 = new T7205797<>[][][] { }; //error
+
+    T7205797<String>.Inner<String>[] o1 = new T7205797<String>.Inner<>[1]; //error
+    T7205797<String>.Inner<String>[] o2 = new T7205797<String>.Inner<>[1][1]; //error
+    T7205797<String>.Inner<String>[] o3 = new T7205797<String>.Inner<>[1][1][1]; //error
+
+    T7205797<String>.Inner<String>[] o4 = new T7205797<String>.Inner<>[] { }; //error
+    T7205797<String>.Inner<String>[] o5 = new T7205797<String>.Inner<>[][] { }; //error
+    T7205797<String>.Inner<String>[] o6 = new T7205797<String>.Inner<>[][][] { }; //error
+}
diff --git a/langtools/test/tools/javac/generics/diamond/7057297/T7057297.out b/langtools/test/tools/javac/generics/diamond/7057297/T7057297.out
new file mode 100644
index 0000000..12fc2b0
--- /dev/null
+++ b/langtools/test/tools/javac/generics/diamond/7057297/T7057297.out
@@ -0,0 +1,13 @@
+T7057297.java:14:41: compiler.err.cannot.create.array.with.diamond
+T7057297.java:15:41: compiler.err.cannot.create.array.with.diamond
+T7057297.java:16:41: compiler.err.cannot.create.array.with.diamond
+T7057297.java:18:41: compiler.err.cannot.create.array.with.diamond
+T7057297.java:19:41: compiler.err.cannot.create.array.with.diamond
+T7057297.java:20:41: compiler.err.cannot.create.array.with.diamond
+T7057297.java:22:69: compiler.err.cannot.create.array.with.diamond
+T7057297.java:23:69: compiler.err.cannot.create.array.with.diamond
+T7057297.java:24:69: compiler.err.cannot.create.array.with.diamond
+T7057297.java:26:69: compiler.err.cannot.create.array.with.diamond
+T7057297.java:27:69: compiler.err.cannot.create.array.with.diamond
+T7057297.java:28:69: compiler.err.cannot.create.array.with.diamond
+12 errors
diff --git a/langtools/test/tools/javac/generics/diamond/neg/Neg09.out b/langtools/test/tools/javac/generics/diamond/neg/Neg09.out
index 109409d..5893555 100644
--- a/langtools/test/tools/javac/generics/diamond/neg/Neg09.out
+++ b/langtools/test/tools/javac/generics/diamond/neg/Neg09.out
@@ -1,5 +1,5 @@
-Neg09.java:17:34: compiler.err.cant.apply.diamond.1: Neg09.Member, (compiler.misc.diamond.and.anon.class: Neg09.Member)
-Neg09.java:18:34: compiler.err.cant.apply.diamond.1: Neg09.Nested, (compiler.misc.diamond.and.anon.class: Neg09.Nested)
-Neg09.java:22:39: compiler.err.cant.apply.diamond.1: Neg09.Member, (compiler.misc.diamond.and.anon.class: Neg09.Member)
-Neg09.java:23:40: compiler.err.cant.apply.diamond.1: Neg09.Nested, (compiler.misc.diamond.and.anon.class: Neg09.Nested)
+Neg09.java:17:34: compiler.err.cant.apply.diamond.1: Neg09.Member<X>, (compiler.misc.diamond.and.anon.class: Neg09.Member<X>)
+Neg09.java:18:34: compiler.err.cant.apply.diamond.1: Neg09.Nested<X>, (compiler.misc.diamond.and.anon.class: Neg09.Nested<X>)
+Neg09.java:22:39: compiler.err.cant.apply.diamond.1: Neg09.Member<X>, (compiler.misc.diamond.and.anon.class: Neg09.Member<X>)
+Neg09.java:23:40: compiler.err.cant.apply.diamond.1: Neg09.Nested<X>, (compiler.misc.diamond.and.anon.class: Neg09.Nested<X>)
 4 errors
diff --git a/langtools/test/tools/javac/generics/inference/6638712/T6638712a.out b/langtools/test/tools/javac/generics/inference/6638712/T6638712a.out
index c65e749..04db221 100644
--- a/langtools/test/tools/javac/generics/inference/6638712/T6638712a.out
+++ b/langtools/test/tools/javac/generics/inference/6638712/T6638712a.out
@@ -1,2 +1,2 @@
-T6638712a.java:16:41: compiler.err.prob.found.req: (compiler.misc.incompatible.types.1: (compiler.misc.infer.no.conforming.instance.exists: T, java.util.Comparator<T>, java.util.Comparator<java.lang.String>)), <T>java.util.Comparator<T>, java.util.Comparator<java.lang.String>
+T6638712a.java:16:33: compiler.err.cant.apply.symbol.1: kindname.method, compound, java.lang.Iterable<? extends java.util.Comparator<? super T>>, java.util.List<java.util.Comparator<?>>, kindname.class, T6638712a, (compiler.misc.infer.no.conforming.assignment.exists: T, java.util.List<java.util.Comparator<?>>, java.lang.Iterable<? extends java.util.Comparator<? super T>>)
 1 error
diff --git a/langtools/test/tools/javac/generics/inference/7086586/T7086586.java b/langtools/test/tools/javac/generics/inference/7086586/T7086586.java
new file mode 100644
index 0000000..1045e5b
--- /dev/null
+++ b/langtools/test/tools/javac/generics/inference/7086586/T7086586.java
@@ -0,0 +1,19 @@
+/**
+ * @test /nodynamiccopyright/
+ * @bug 7086586
+ * @summary Inference producing null type argument
+ * @compile/fail/ref=T7086586.out -XDrawDiagnostics T7086586.java
+ */
+import java.util.List;
+
+class T7086586 {
+
+    <T> List<T> m(List<? super T> dummy) { return null; }
+
+    void test(List<?> l) {
+        String s = m(l).get(0);
+        Number n = m(l).get(0);
+        Exception e = m(l).get(0);
+        m(l).nonExistentMethod();
+    }
+}
diff --git a/langtools/test/tools/javac/generics/inference/7086586/T7086586.out b/langtools/test/tools/javac/generics/inference/7086586/T7086586.out
new file mode 100644
index 0000000..b6284a0
--- /dev/null
+++ b/langtools/test/tools/javac/generics/inference/7086586/T7086586.out
@@ -0,0 +1,5 @@
+T7086586.java:14:20: compiler.err.cant.apply.symbol.1: kindname.method, m, java.util.List<? super T>, java.util.List<compiler.misc.type.captureof: 1, ?>, kindname.class, T7086586, (compiler.misc.infer.no.conforming.assignment.exists: T, java.util.List<compiler.misc.type.captureof: 1, ?>, java.util.List<? super T>)
+T7086586.java:15:20: compiler.err.cant.apply.symbol.1: kindname.method, m, java.util.List<? super T>, java.util.List<compiler.misc.type.captureof: 1, ?>, kindname.class, T7086586, (compiler.misc.infer.no.conforming.assignment.exists: T, java.util.List<compiler.misc.type.captureof: 1, ?>, java.util.List<? super T>)
+T7086586.java:16:23: compiler.err.cant.apply.symbol.1: kindname.method, m, java.util.List<? super T>, java.util.List<compiler.misc.type.captureof: 1, ?>, kindname.class, T7086586, (compiler.misc.infer.no.conforming.assignment.exists: T, java.util.List<compiler.misc.type.captureof: 1, ?>, java.util.List<? super T>)
+T7086586.java:17:9: compiler.err.cant.apply.symbol.1: kindname.method, m, java.util.List<? super T>, java.util.List<compiler.misc.type.captureof: 1, ?>, kindname.class, T7086586, (compiler.misc.infer.no.conforming.assignment.exists: T, java.util.List<compiler.misc.type.captureof: 1, ?>, java.util.List<? super T>)
+4 errors
diff --git a/langtools/test/tools/javac/generics/inference/7086586/T7086586b.java b/langtools/test/tools/javac/generics/inference/7086586/T7086586b.java
new file mode 100644
index 0000000..75dca61
--- /dev/null
+++ b/langtools/test/tools/javac/generics/inference/7086586/T7086586b.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7086586
+ *
+ * @summary Inference producing null type argument
+ */
+import java.util.List;
+
+public class T7086586b {
+
+    int assertionCount = 0;
+
+    void assertTrue(boolean cond) {
+        if (!cond) {
+            throw new AssertionError();
+        }
+        assertionCount++;
+    }
+
+    <T> void m(List<? super T> dummy) { assertTrue(false); }
+    <T> void m(Object dummy) { assertTrue(true); }
+
+    void test(List<?> l) {
+        m(l);
+        assertTrue(assertionCount == 1);
+    }
+
+    public static void main(String[] args) {
+        new T7086586b().test(null);
+    }
+}
diff --git a/langtools/test/tools/javac/generics/inference/7086601/T7086601a.java b/langtools/test/tools/javac/generics/inference/7086601/T7086601a.java
new file mode 100644
index 0000000..5243d82
--- /dev/null
+++ b/langtools/test/tools/javac/generics/inference/7086601/T7086601a.java
@@ -0,0 +1,34 @@
+/**
+ * @test /nodynamiccopyright/
+ * @bug 7086601
+ * @summary Error message bug: cause for method mismatch is 'null'
+ * @compile/fail/ref=T7086601a.out -XDrawDiagnostics T7086601a.java
+ */
+
+class T7086601 {
+    static <S> void m1(Iterable<? super S> s1, Iterable<? super S> s2) { }
+    static void m1(Object o) {}
+
+    static <S> void m2(Iterable<? super S> s1, Iterable<? super S> s2, Iterable<? super S> s3) { }
+    static void m2(Object o) {}
+
+    @SafeVarargs
+    static <S> void m3(Iterable<? super S>... ss) { }
+    static void m3(Object o) {}
+
+    static void test1(Iterable<String> is, Iterable<Integer> ii) {
+        m1(is, ii);
+    }
+
+    static void test2(Iterable<String> is, Iterable<Integer> ii, Iterable<Double> id) {
+        m2(is, ii, id);
+    }
+
+    static void test3(Iterable<String> is, Iterable<Integer> ii) {
+        m3(is, ii);
+    }
+
+    static void test4(Iterable<String> is, Iterable<Integer> ii, Iterable<Double> id) {
+        m3(is, ii, id);
+    }
+}
diff --git a/langtools/test/tools/javac/generics/inference/7086601/T7086601a.out b/langtools/test/tools/javac/generics/inference/7086601/T7086601a.out
new file mode 100644
index 0000000..8b2cdb2
--- /dev/null
+++ b/langtools/test/tools/javac/generics/inference/7086601/T7086601a.out
@@ -0,0 +1,5 @@
+T7086601a.java:20:9: compiler.err.cant.apply.symbols: kindname.method, m1, java.lang.Iterable<java.lang.String>,java.lang.Iterable<java.lang.Integer>,{(compiler.misc.inapplicable.method: kindname.method, T7086601, m1(java.lang.Object), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T7086601, <S>m1(java.lang.Iterable<? super S>,java.lang.Iterable<? super S>), (compiler.misc.incompatible.upper.bounds: S, java.lang.Integer,java.lang.String))}
+T7086601a.java:24:9: compiler.err.cant.apply.symbols: kindname.method, m2, java.lang.Iterable<java.lang.String>,java.lang.Iterable<java.lang.Integer>,java.lang.Iterable<java.lang.Double>,{(compiler.misc.inapplicable.method: kindname.method, T7086601, m2(java.lang.Object), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T7086601, <S>m2(java.lang.Iterable<? super S>,java.lang.Iterable<? super S>,java.lang.Iterable<? super S>), (compiler.misc.incompatible.upper.bounds: S, java.lang.Double,java.lang.Integer,java.lang.String))}
+T7086601a.java:28:9: compiler.err.cant.apply.symbols: kindname.method, m3, java.lang.Iterable<java.lang.String>,java.lang.Iterable<java.lang.Integer>,{(compiler.misc.inapplicable.method: kindname.method, T7086601, m3(java.lang.Object), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T7086601, <S>m3(java.lang.Iterable<? super S>...), (compiler.misc.incompatible.upper.bounds: S, java.lang.Integer,java.lang.String))}
+T7086601a.java:32:9: compiler.err.cant.apply.symbols: kindname.method, m3, java.lang.Iterable<java.lang.String>,java.lang.Iterable<java.lang.Integer>,java.lang.Iterable<java.lang.Double>,{(compiler.misc.inapplicable.method: kindname.method, T7086601, m3(java.lang.Object), (compiler.misc.arg.length.mismatch)),(compiler.misc.inapplicable.method: kindname.method, T7086601, <S>m3(java.lang.Iterable<? super S>...), (compiler.misc.incompatible.upper.bounds: S, java.lang.Double,java.lang.Integer,java.lang.String))}
+4 errors
diff --git a/langtools/test/tools/javac/generics/inference/7086601/T7086601b.java b/langtools/test/tools/javac/generics/inference/7086601/T7086601b.java
new file mode 100644
index 0000000..0eceb7f
--- /dev/null
+++ b/langtools/test/tools/javac/generics/inference/7086601/T7086601b.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7086601
+ * @summary Error message bug: cause for method mismatch is 'null'
+ */
+
+import com.sun.source.util.JavacTask;
+import java.net.URI;
+import java.util.Arrays;
+import java.util.ArrayList;
+import javax.tools.Diagnostic;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.ToolProvider;
+
+
+public class T7086601b {
+
+    static int checkCount = 0;
+
+    enum TypeKind {
+        STRING("String", false),
+        INTEGER("Integer", false),
+        NUMBER("Number", false),
+        SERIALIZABLE("java.io.Serializable", true),
+        CLONEABLE("Cloneable", true),
+        X("X", false),
+        Y("Y", false),
+        Z("Z", false);
+
+        String typeStr;
+        boolean isInterface;
+
+        private TypeKind(String typeStr, boolean isInterface) {
+            this.typeStr = typeStr;
+            this.isInterface = isInterface;
+        }
+
+        boolean isSubtypeof(TypeKind other) {
+            return (this == INTEGER && other == NUMBER ||
+                    this == Z && other == Y ||
+                    this == other);
+        }
+    }
+
+    enum MethodCallKind {
+        ARITY_ONE("m(a1);", 1),
+        ARITY_TWO("m(a1, a2);", 2),
+        ARITY_THREE("m(a1, a2, a3);", 3);
+
+        String invokeString;
+        int arity;
+
+        private MethodCallKind(String invokeString, int arity) {
+            this.invokeString = invokeString;
+            this.arity = arity;
+        }
+    }
+
+    public static void main(String... args) throws Exception {
+
+        //create default shared JavaCompiler - reused across multiple compilations
+        JavaCompiler comp = ToolProvider.getSystemJavaCompiler();
+        StandardJavaFileManager fm = comp.getStandardFileManager(null, null, null);
+
+        for (TypeKind a1 : TypeKind.values()) {
+            for (TypeKind a2 : TypeKind.values()) {
+                for (TypeKind a3 : TypeKind.values()) {
+                    for (MethodCallKind mck : MethodCallKind.values()) {
+                        new T7086601b(a1, a2, a3, mck).run(comp, fm);
+                    }
+                }
+            }
+        }
+        System.out.println("Total check executed: " + checkCount);
+    }
+
+    TypeKind a1;
+    TypeKind a2;
+    TypeKind a3;
+    MethodCallKind mck;
+    JavaSource source;
+    DiagnosticChecker diagChecker;
+
+    T7086601b(TypeKind a1, TypeKind a2, TypeKind a3, MethodCallKind mck) {
+        this.a1 = a1;
+        this.a2 = a2;
+        this.a3 = a3;
+        this.mck = mck;
+        this.source = new JavaSource();
+        this.diagChecker = new DiagnosticChecker();
+    }
+
+    class JavaSource extends SimpleJavaFileObject {
+
+        final String bodyTemplate = "import java.util.List;\n"+
+                              "class Test {\n" +
+                              "   <Z> void m(List<? super Z> l1) { }\n" +
+                              "   <Z> void m(List<? super Z> l1, List<? super Z> l2) { }\n" +
+                              "   <Z> void m(List<? super Z> l1, List<? super Z> l2, List<? super Z> l3) { }\n" +
+                              "   <X,Y,Z extends Y> void test(List<#A1> a1, List<#A2> a2, List<#A3> a3) { #MC } }";
+
+        String source;
+
+        public JavaSource() {
+            super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
+            source = bodyTemplate.replace("#A1", a1.typeStr)
+                             .replace("#A2", a2.typeStr).replace("#A3", a3.typeStr)
+                             .replace("#MC", mck.invokeString);
+        }
+
+        @Override
+        public CharSequence getCharContent(boolean ignoreEncodingErrors) {
+            return source;
+        }
+    }
+
+    void run(JavaCompiler tool, StandardJavaFileManager fm) throws Exception {
+        JavacTask ct = (JavacTask)tool.getTask(null, fm, diagChecker,
+                null, null, Arrays.asList(source));
+        try {
+            ct.analyze();
+        } catch (Throwable ex) {
+            throw new AssertionError("Error thron when compiling the following code:\n" + source.getCharContent(true));
+        }
+        check();
+    }
+
+    void check() {
+        checkCount++;
+
+        boolean errorExpected = false;
+
+        if (mck.arity > 1) {
+            TypeKind[] argtypes = { a1, a2, a3 };
+            ArrayList<TypeKind> classes = new ArrayList<>();
+            for (int i = 0 ; i < mck.arity ; i ++ ) {
+                if (!argtypes[i].isInterface) {
+                    classes.add(argtypes[i]);
+                }
+            }
+            boolean glb_exists = true;
+            for (TypeKind arg_i : classes) {
+                glb_exists = true;
+                for (TypeKind arg_j : classes) {
+                    if (!arg_i.isSubtypeof(arg_j)) {
+                        glb_exists = false;
+                        break;
+                    }
+                }
+                if (glb_exists) break;
+            }
+            errorExpected = !glb_exists;
+        }
+
+        if (errorExpected != diagChecker.errorFound) {
+            throw new Error("invalid diagnostics for source:\n" +
+                source.getCharContent(true) +
+                "\nFound error: " + diagChecker.errorFound +
+                "\nExpected error: " + errorExpected);
+        }
+    }
+
+    static class DiagnosticChecker implements javax.tools.DiagnosticListener<JavaFileObject> {
+
+        boolean errorFound;
+
+        public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
+            if (diagnostic.getKind() == Diagnostic.Kind.ERROR) {
+                errorFound = true;
+            }
+        }
+    }
+}
diff --git a/langtools/test/tools/javac/generics/rawOverride/7062745/GenericOverrideTest.java b/langtools/test/tools/javac/generics/rawOverride/7062745/GenericOverrideTest.java
new file mode 100644
index 0000000..ae1a1cd
--- /dev/null
+++ b/langtools/test/tools/javac/generics/rawOverride/7062745/GenericOverrideTest.java
@@ -0,0 +1,286 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7062745
+ * @summary  Regression: difference in overload resolution when two methods are maximally specific
+ */
+
+import com.sun.source.util.JavacTask;
+import java.net.URI;
+import java.util.Arrays;
+import javax.tools.Diagnostic;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.ToolProvider;
+
+public class GenericOverrideTest {
+
+    static int checkCount = 0;
+
+    enum SignatureKind {
+        NON_GENERIC(""),
+        GENERIC("<X>");
+
+        String paramStr;
+
+        private SignatureKind(String paramStr) {
+            this.paramStr = paramStr;
+        }
+    }
+
+    enum ReturnTypeKind {
+        LIST("List"),
+        ARRAYLIST("ArrayList");
+
+        String retStr;
+
+        private ReturnTypeKind(String retStr) {
+            this.retStr = retStr;
+        }
+
+        boolean moreSpecificThan(ReturnTypeKind that) {
+            switch (this) {
+                case LIST:
+                    return that == this;
+                case ARRAYLIST:
+                    return that == LIST || that == ARRAYLIST;
+                default: throw new AssertionError("Unexpected ret kind: " + this);
+            }
+        }
+    }
+
+    enum TypeArgumentKind {
+        NONE(""),
+        UNBOUND("<?>"),
+        INTEGER("<Number>"),
+        NUMBER("<Integer>"),
+        TYPEVAR("<X>");
+
+        String typeargStr;
+
+        private TypeArgumentKind(String typeargStr) {
+            this.typeargStr = typeargStr;
+        }
+
+        boolean compatibleWith(SignatureKind sig) {
+            switch (this) {
+                case TYPEVAR: return sig != SignatureKind.NON_GENERIC;
+                default: return true;
+            }
+        }
+
+        boolean moreSpecificThan(TypeArgumentKind that, boolean strict) {
+            switch (this) {
+                case NONE:
+                    return that == this || !strict;
+                case UNBOUND:
+                    return that == this || that == NONE;
+                case INTEGER:
+                case NUMBER:
+                case TYPEVAR:
+                    return that == this || that == NONE || that == UNBOUND;
+                default: throw new AssertionError("Unexpected typearg kind: " + this);
+            }
+        }
+
+        boolean assignableTo(TypeArgumentKind that, SignatureKind sig) {
+            switch (this) {
+                case NONE:
+                    //this case needs to workaround to javac's impl of 15.12.2.8 being too strict
+                    //ideally should be just 'return true' (see 7067746)
+                    return sig == SignatureKind.NON_GENERIC || that == NONE;
+                case UNBOUND:
+                    return that == this || that == NONE;
+                case INTEGER:
+                case NUMBER:
+                    return that == this || that == NONE || that == UNBOUND;
+                case TYPEVAR:
+                    return true;
+                default: throw new AssertionError("Unexpected typearg kind: " + this);
+            }
+        }
+    }
+
+    public static void main(String... args) throws Exception {
+
+        //create default shared JavaCompiler - reused across multiple compilations
+        JavaCompiler comp = ToolProvider.getSystemJavaCompiler();
+        StandardJavaFileManager fm = comp.getStandardFileManager(null, null, null);
+
+        for (SignatureKind sig1 : SignatureKind.values()) {
+            for (ReturnTypeKind rt1 : ReturnTypeKind.values()) {
+                for (TypeArgumentKind ta1 : TypeArgumentKind.values()) {
+                    if (!ta1.compatibleWith(sig1)) continue;
+                    for (SignatureKind sig2 : SignatureKind.values()) {
+                        for (ReturnTypeKind rt2 : ReturnTypeKind.values()) {
+                            for (TypeArgumentKind ta2 : TypeArgumentKind.values()) {
+                                if (!ta2.compatibleWith(sig2)) continue;
+                                for (ReturnTypeKind rt3 : ReturnTypeKind.values()) {
+                                    for (TypeArgumentKind ta3 : TypeArgumentKind.values()) {
+                                        if (!ta3.compatibleWith(SignatureKind.NON_GENERIC)) continue;
+                                        new GenericOverrideTest(sig1, rt1, ta1, sig2, rt2, ta2, rt3, ta3).run(comp, fm);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        System.out.println("Total check executed: " + checkCount);
+    }
+
+    SignatureKind sig1, sig2;
+    ReturnTypeKind rt1, rt2, rt3;
+    TypeArgumentKind ta1, ta2, ta3;
+    JavaSource source;
+    DiagnosticChecker diagChecker;
+
+    GenericOverrideTest(SignatureKind sig1, ReturnTypeKind rt1, TypeArgumentKind ta1,
+            SignatureKind sig2, ReturnTypeKind rt2, TypeArgumentKind ta2, ReturnTypeKind rt3, TypeArgumentKind ta3) {
+        this.sig1 = sig1;
+        this.sig2 = sig2;
+        this.rt1 = rt1;
+        this.rt2 = rt2;
+        this.rt3 = rt3;
+        this.ta1 = ta1;
+        this.ta2 = ta2;
+        this.ta3 = ta3;
+        this.source = new JavaSource();
+        this.diagChecker = new DiagnosticChecker();
+    }
+
+    class JavaSource extends SimpleJavaFileObject {
+
+        String template = "import java.util.*;\n" +
+                          "interface A { #S1 #R1#TA1 m(); }\n" +
+                          "interface B { #S2 #R2#TA2 m(); }\n" +
+                          "interface AB extends A, B {}\n" +
+                          "class Test {\n" +
+                          "  void test(AB ab) { #R3#TA3 n = ab.m(); }\n" +
+                          "}";
+
+        String source;
+
+        public JavaSource() {
+            super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
+            source = template.replace("#S1", sig1.paramStr).
+                    replace("#S2", sig2.paramStr).
+                    replace("#R1", rt1.retStr).
+                    replace("#R2", rt2.retStr).
+                    replace("#R3", rt3.retStr).
+                    replace("#TA1", ta1.typeargStr).
+                    replace("#TA2", ta2.typeargStr).
+                    replace("#TA3", ta3.typeargStr);
+        }
+
+        @Override
+        public CharSequence getCharContent(boolean ignoreEncodingErrors) {
+            return source;
+        }
+    }
+
+    void run(JavaCompiler tool, StandardJavaFileManager fm) throws Exception {
+        JavacTask ct = (JavacTask)tool.getTask(null, fm, diagChecker,
+                null, null, Arrays.asList(source));
+        try {
+            ct.analyze();
+        } catch (Throwable ex) {
+            throw new AssertionError("Error thron when compiling the following code:\n" + source.getCharContent(true));
+        }
+        check();
+    }
+
+    void check() {
+        checkCount++;
+
+        boolean errorExpected = false;
+        int mostSpecific = 0;
+
+        //first check that either |R1| <: |R2| or |R2| <: |R1|
+        if (rt1 != rt2) {
+            if (!rt1.moreSpecificThan(rt2) &&
+                    !rt2.moreSpecificThan(rt1)) {
+                errorExpected = true;
+            } else {
+                mostSpecific = rt1.moreSpecificThan(rt2) ? 1 : 2;
+            }
+        }
+
+        //check that either TA1 <= TA2 or TA2 <= TA1 (unless most specific return found above is raw)
+        if (!errorExpected) {
+            if (ta1 != ta2) {
+                boolean useStrictCheck = ta1.moreSpecificThan(ta2, true) || ta2.moreSpecificThan(ta1, true);
+                if (!ta1.moreSpecificThan(ta2, useStrictCheck) &&
+                        !ta2.moreSpecificThan(ta1, useStrictCheck)) {
+                    errorExpected = true;
+                } else {
+                    int mostSpecific2 = ta1.moreSpecificThan(ta2, useStrictCheck) ? 1 : 2;
+                    if (mostSpecific != 0 && mostSpecific2 != mostSpecific) {
+                        errorExpected = mostSpecific == 1 ? ta1 != TypeArgumentKind.NONE : ta2 != TypeArgumentKind.NONE;
+                    } else {
+                        mostSpecific = mostSpecific2;
+                    }
+                }
+            } else if (mostSpecific == 0) {
+                //when no signature is better than the other, an arbitrary choice
+                //must be made - javac always picks the second signature
+                mostSpecific = 2;
+            }
+        }
+
+        //finally, check that most specific return type is compatible with expected type
+        if (!errorExpected) {
+            ReturnTypeKind msrt = mostSpecific == 1 ? rt1 : rt2;
+            TypeArgumentKind msta = mostSpecific == 1 ? ta1 : ta2;
+            SignatureKind mssig = mostSpecific == 1 ? sig1 : sig2;
+
+            if (!msrt.moreSpecificThan(rt3) ||
+                    !msta.assignableTo(ta3, mssig)) {
+                errorExpected = true;
+            }
+        }
+
+        if (errorExpected != diagChecker.errorFound) {
+            throw new Error("invalid diagnostics for source:\n" +
+                source.getCharContent(true) +
+                "\nFound error: " + diagChecker.errorFound +
+                "\nExpected error: " + errorExpected);
+        }
+    }
+
+    static class DiagnosticChecker implements javax.tools.DiagnosticListener<JavaFileObject> {
+
+        boolean errorFound;
+
+        public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
+            if (diagnostic.getKind() == Diagnostic.Kind.ERROR) {
+                errorFound = true;
+            }
+        }
+    }
+}
diff --git a/langtools/test/tools/javac/generics/rawOverride/7062745/T7062745neg.java b/langtools/test/tools/javac/generics/rawOverride/7062745/T7062745neg.java
new file mode 100644
index 0000000..8fe631d
--- /dev/null
+++ b/langtools/test/tools/javac/generics/rawOverride/7062745/T7062745neg.java
@@ -0,0 +1,18 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug     7062745
+ * @summary  Regression: difference in overload resolution when two methods are maximally specific
+ * @compile/fail/ref=T7062745neg.out -XDrawDiagnostics T7062745neg.java
+ */
+
+import java.util.*;
+
+class T7062745neg {
+    interface A { List<Number> getList(); }
+    interface B { ArrayList getList(); }
+    interface AB extends A, B {}
+
+    void test(AB ab) {
+        Number n = ab.getList().get(1);
+    }
+}
diff --git a/langtools/test/tools/javac/generics/rawOverride/7062745/T7062745neg.out b/langtools/test/tools/javac/generics/rawOverride/7062745/T7062745neg.out
new file mode 100644
index 0000000..620ccfe
--- /dev/null
+++ b/langtools/test/tools/javac/generics/rawOverride/7062745/T7062745neg.out
@@ -0,0 +1,2 @@
+T7062745neg.java:16:36: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.lang.Object, java.lang.Number
+1 error
diff --git a/langtools/test/tools/javac/generics/rawOverride/7062745/T7062745pos.java b/langtools/test/tools/javac/generics/rawOverride/7062745/T7062745pos.java
new file mode 100644
index 0000000..a45b6ee
--- /dev/null
+++ b/langtools/test/tools/javac/generics/rawOverride/7062745/T7062745pos.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7062745
+ * @summary  Regression: difference in overload resolution when two methods are maximally specific
+ *
+ * @compile T7062745pos.java
+ */
+
+import java.util.*;
+
+class T7062745pos {
+    interface A { List<Number> getList(); }
+    interface B { List getList(); }
+    interface AB extends A, B {}
+
+    void test(AB ab) {
+        Number n = ab.getList().get(1);
+    }
+}
diff --git a/langtools/test/tools/javac/jvm/T7024096.java b/langtools/test/tools/javac/jvm/T7024096.java
new file mode 100644
index 0000000..04af2d5
--- /dev/null
+++ b/langtools/test/tools/javac/jvm/T7024096.java
@@ -0,0 +1,31 @@
+/*
+ * @test  /nodynamiccopyright/
+ * @bug 7024096
+ * @summary Stack trace has invalid line numbers
+ * @author Bruce Chapman
+ * @compile T7024096.java
+ * @run main T7024096
+ */
+
+public class T7024096 {
+    private static final int START = 14; // starting line number for the test
+    public static void main(String[] args) {
+        T7024096 m = new T7024096();
+        m.nest(START);
+        m.nest(START + 1, m.nest(START + 1), m.nest(START + 1),
+            m.nest(START + 2),
+            m.nest(START + 3, m.nest(START + 3)));
+    }
+
+    public T7024096 nest(int expectedline, T7024096... args) {
+        Exception e = new Exception("expected line#: " + expectedline);
+        int myline = e.getStackTrace()[1].getLineNumber();
+        if( myline != expectedline) {
+            throw new RuntimeException("Incorrect line number " +
+                    "expected: " + expectedline +
+                    ", got: " + myline, e);
+        }
+        System.out.format("Got expected line number %d correct %n", myline);
+        return null;
+    }
+}
diff --git a/langtools/test/tools/javac/lib/CompileFail.java b/langtools/test/tools/javac/lib/CompileFail.java
new file mode 100644
index 0000000..328c271
--- /dev/null
+++ b/langtools/test/tools/javac/lib/CompileFail.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.io.*;
+import java.util.*;
+import com.sun.tools.javac.main.Main;
+
+/*
+ * Utility class to emulate jtreg @compile/fail, but also checking the specific
+ * exit code, given as the first arg.
+ */
+public class CompileFail {
+    public static void main(String... args) {
+        if (args.length < 2)
+            throw new IllegalArgumentException("insufficient args");
+        int expected_rc = getReturnCode(args[0]);
+
+        List<String> javacArgs = new ArrayList<>();
+        javacArgs.addAll(Arrays.asList(
+            "-bootclasspath", System.getProperty("sun.boot.class.path"),
+            "-d", "."
+        ));
+
+        File testSrc = new File(System.getProperty("test.src"));
+        for (int i = 1; i < args.length; i++) { // skip first arg
+            String arg = args[i];
+            if (arg.endsWith(".java"))
+                javacArgs.add(new File(testSrc, arg).getPath());
+            else
+                javacArgs.add(arg);
+        }
+
+        int rc = com.sun.tools.javac.Main.compile(
+            javacArgs.toArray(new String[javacArgs.size()]));
+
+        if (rc != expected_rc)
+            throw new Error("unexpected exit code: " + rc
+                        + ", expected: " + expected_rc);
+    }
+
+    static int getReturnCode(String name) {
+        return Main.Result.valueOf(name).exitCode;
+    }
+
+}
diff --git a/langtools/test/tools/javac/lib/JavacTestingAbstractProcessor.java b/langtools/test/tools/javac/lib/JavacTestingAbstractProcessor.java
index 4960cac..67e824c 100644
--- a/langtools/test/tools/javac/lib/JavacTestingAbstractProcessor.java
+++ b/langtools/test/tools/javac/lib/JavacTestingAbstractProcessor.java
@@ -25,6 +25,7 @@ import java.util.*;
 import javax.annotation.processing.*;
 import javax.lang.model.SourceVersion;
 import javax.lang.model.util.*;
+import static javax.lang.model.SourceVersion.*;
 
 /**
  * An abstract annotation processor tailored to javac regression testing.
@@ -95,4 +96,164 @@ public abstract class JavacTestingAbstractProcessor extends AbstractProcessor {
         messager  = processingEnv.getMessager();
         options   = processingEnv.getOptions();
     }
+
+    /*
+     * The set of visitors below will directly extend the most recent
+     * corresponding platform visitor type.
+     */
+
+    @SupportedSourceVersion(RELEASE_8)
+    public static abstract class AbstractAnnotationValueVisitor<R, P> extends AbstractAnnotationValueVisitor8<R, P> {
+
+        /**
+         * Constructor for concrete subclasses to call.
+         */
+        protected AbstractAnnotationValueVisitor() {
+            super();
+        }
+    }
+
+    @SupportedSourceVersion(RELEASE_8)
+    public static abstract class AbstractElementVisitor<R, P> extends AbstractElementVisitor8<R, P> {
+        /**
+         * Constructor for concrete subclasses to call.
+         */
+        protected AbstractElementVisitor(){
+            super();
+        }
+    }
+
+    @SupportedSourceVersion(RELEASE_8)
+    public static abstract class AbstractTypeVisitor<R, P> extends AbstractTypeVisitor8<R, P> {
+        /**
+         * Constructor for concrete subclasses to call.
+         */
+        protected AbstractTypeVisitor() {
+            super();
+        }
+    }
+
+    @SupportedSourceVersion(RELEASE_8)
+    public static class ElementKindVisitor<R, P> extends ElementKindVisitor8<R, P> {
+        /**
+         * Constructor for concrete subclasses; uses {@code null} for the
+         * default value.
+         */
+        protected ElementKindVisitor() {
+            super(null);
+        }
+
+        /**
+         * Constructor for concrete subclasses; uses the argument for the
+         * default value.
+         *
+         * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+         */
+        protected ElementKindVisitor(R defaultValue) {
+            super(defaultValue);
+        }
+    }
+
+    @SupportedSourceVersion(RELEASE_8)
+    public static class ElementScanner<R, P> extends ElementScanner8<R, P> {
+        /**
+         * Constructor for concrete subclasses; uses {@code null} for the
+         * default value.
+         */
+        protected ElementScanner(){
+            super(null);
+        }
+
+        /**
+         * Constructor for concrete subclasses; uses the argument for the
+         * default value.
+         */
+        protected ElementScanner(R defaultValue){
+            super(defaultValue);
+        }
+    }
+
+    @SupportedSourceVersion(RELEASE_8)
+    public static class SimpleAnnotationValueVisitor<R, P> extends SimpleAnnotationValueVisitor8<R, P> {
+        /**
+         * Constructor for concrete subclasses; uses {@code null} for the
+         * default value.
+         */
+        protected SimpleAnnotationValueVisitor() {
+            super(null);
+        }
+
+        /**
+         * Constructor for concrete subclasses; uses the argument for the
+         * default value.
+         *
+         * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+         */
+        protected SimpleAnnotationValueVisitor(R defaultValue) {
+            super(defaultValue);
+        }
+    }
+
+    @SupportedSourceVersion(RELEASE_8)
+    public static class SimpleElementVisitor<R, P> extends SimpleElementVisitor8<R, P> {
+        /**
+         * Constructor for concrete subclasses; uses {@code null} for the
+         * default value.
+         */
+        protected SimpleElementVisitor(){
+            super(null);
+        }
+
+        /**
+         * Constructor for concrete subclasses; uses the argument for the
+         * default value.
+         *
+         * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+         */
+        protected SimpleElementVisitor(R defaultValue){
+            super(defaultValue);
+        }
+    }
+
+    @SupportedSourceVersion(RELEASE_8)
+    public static class SimpleTypeVisitor<R, P> extends SimpleTypeVisitor8<R, P> {
+        /**
+         * Constructor for concrete subclasses; uses {@code null} for the
+         * default value.
+         */
+        protected SimpleTypeVisitor(){
+            super(null);
+        }
+
+        /**
+         * Constructor for concrete subclasses; uses the argument for the
+         * default value.
+         *
+         * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+         */
+        protected SimpleTypeVisitor(R defaultValue){
+            super(defaultValue);
+        }
+    }
+
+    @SupportedSourceVersion(RELEASE_8)
+    public static class TypeKindVisitor<R, P> extends TypeKindVisitor8<R, P> {
+        /**
+         * Constructor for concrete subclasses to call; uses {@code null}
+         * for the default value.
+         */
+        protected TypeKindVisitor() {
+            super(null);
+        }
+
+        /**
+         * Constructor for concrete subclasses to call; uses the argument
+         * for the default value.
+         *
+         * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+         */
+        protected TypeKindVisitor(R defaultValue) {
+            super(defaultValue);
+        }
+    }
 }
diff --git a/langtools/test/tools/javac/multicatch/model/ModelChecker.java b/langtools/test/tools/javac/multicatch/model/ModelChecker.java
index 96c45e0..daaebf6 100644
--- a/langtools/test/tools/javac/multicatch/model/ModelChecker.java
+++ b/langtools/test/tools/javac/multicatch/model/ModelChecker.java
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6993963
+ * @bug 6993963 7025809
  * @summary Project Coin: Use precise exception analysis for effectively final catch parameters
  * @library ../../lib
  * @build JavacTestingAbstractProcessor ModelChecker
@@ -107,7 +107,7 @@ public class ModelChecker extends JavacTestingAbstractProcessor {
             ; // Expected
         }
 
-        UnionType unionType = new SimpleTypeVisitor7<UnionType, Void>(){
+        UnionType unionType = new SimpleTypeVisitor<UnionType, Void>(){
             @Override
             protected UnionType defaultAction(TypeMirror e, Void p) {return null;}
 
diff --git a/langtools/test/tools/javac/parser/StringFoldingTest.java b/langtools/test/tools/javac/parser/StringFoldingTest.java
new file mode 100644
index 0000000..32a59d7
--- /dev/null
+++ b/langtools/test/tools/javac/parser/StringFoldingTest.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7068902
+ * @summary verify that string folding can be enabled or disabled
+ */
+
+import com.sun.source.tree.CompilationUnitTree;
+import com.sun.source.util.JavacTask;
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.ToolProvider;
+
+public class StringFoldingTest {
+    final JavaCompiler tool;
+    final JavaSource source;
+
+    public StringFoldingTest() {
+        tool = ToolProvider.getSystemJavaCompiler();
+        source = new JavaSource();
+    }
+
+    static class JavaSource extends SimpleJavaFileObject {
+
+        final static String source =
+                "class C {String X=\"F\" + \"O\" + \"L\" + \"D\" + \"E\" + \"D\";}";
+
+        JavaSource() {
+            super(URI.create("myfo:/C.java"), JavaFileObject.Kind.SOURCE);
+        }
+
+        @Override
+        public CharSequence getCharContent(boolean ignoreEncodingErrors) {
+            return source;
+        }
+    }
+
+    public static void main(String... args) throws IOException {
+        StringFoldingTest t = new StringFoldingTest();
+        t.run(false);
+        t.run(true);
+    }
+
+    void run(boolean disableStringFolding) throws IOException {
+        List<String> argsList = new ArrayList<String>();
+        if (disableStringFolding) {
+            argsList.add("-XDallowStringFolding=false");
+        }
+        JavacTask ct = (JavacTask)tool.getTask(null, null, null,
+                argsList,
+                null,
+                Arrays.asList(source));
+        Iterable<? extends CompilationUnitTree> trees = ct.parse();
+        String text = trees.toString();
+        System.out.println(text);
+
+        if (disableStringFolding) {
+            if (text.contains("FOLDED")) {
+                throw new AssertionError("Expected string folding");
+            }
+        } else {
+            if (!text.contains("FOLDED")) {
+                throw new AssertionError("Expected no string folding");
+            }
+        }
+    }
+}
diff --git a/langtools/test/tools/javac/parser/netbeans/JavacParserTest.java b/langtools/test/tools/javac/parser/netbeans/JavacParserTest.java
new file mode 100644
index 0000000..79ce213
--- /dev/null
+++ b/langtools/test/tools/javac/parser/netbeans/JavacParserTest.java
@@ -0,0 +1,716 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7073631
+ * @summary tests error and diagnostics positions
+ * @author  jan.lahoda at oracle.com
+ */
+
+import com.sun.source.tree.BinaryTree;
+import com.sun.source.tree.BlockTree;
+import com.sun.source.tree.ClassTree;
+import com.sun.source.tree.CompilationUnitTree;
+import com.sun.source.tree.ExpressionStatementTree;
+import com.sun.source.tree.ExpressionTree;
+import com.sun.source.tree.MethodInvocationTree;
+import com.sun.source.tree.MethodTree;
+import com.sun.source.tree.ModifiersTree;
+import com.sun.source.tree.StatementTree;
+import com.sun.source.tree.Tree;
+import com.sun.source.tree.Tree.Kind;
+import com.sun.source.tree.VariableTree;
+import com.sun.source.tree.WhileLoopTree;
+import com.sun.source.util.SourcePositions;
+import com.sun.source.util.TreeScanner;
+import com.sun.source.util.Trees;
+import com.sun.tools.javac.api.JavacTaskImpl;
+import com.sun.tools.javac.tree.JCTree;
+import java.io.IOException;
+import java.net.URI;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+import javax.tools.Diagnostic;
+import javax.tools.DiagnosticCollector;
+import javax.tools.DiagnosticListener;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.ToolProvider;
+
+public class JavacParserTest extends TestCase {
+    final JavaCompiler tool;
+    public JavacParserTest(String testName) {
+        tool = ToolProvider.getSystemJavaCompiler();
+        System.out.println("java.home=" + System.getProperty("java.home"));
+    }
+
+    static class MyFileObject extends SimpleJavaFileObject {
+
+        private String text;
+
+        public MyFileObject(String text) {
+            super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
+            this.text = text;
+        }
+
+        @Override
+        public CharSequence getCharContent(boolean ignoreEncodingErrors) {
+            return text;
+        }
+    }
+
+    public void testPositionForSuperConstructorCalls() throws IOException {
+        assert tool != null;
+
+        String code = "package test; public class Test {public Test() {super();}}";
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+        CompilationUnitTree cut = ct.parse().iterator().next();
+        SourcePositions pos = Trees.instance(ct).getSourcePositions();
+
+        MethodTree method =
+                (MethodTree) ((ClassTree) cut.getTypeDecls().get(0)).getMembers().get(0);
+        ExpressionStatementTree es =
+                (ExpressionStatementTree) method.getBody().getStatements().get(0);
+
+        assertEquals("testPositionForSuperConstructorCalls",
+                72 - 24, pos.getStartPosition(cut, es));
+        assertEquals("testPositionForSuperConstructorCalls",
+                80 - 24, pos.getEndPosition(cut, es));
+
+        MethodInvocationTree mit = (MethodInvocationTree) es.getExpression();
+
+        assertEquals("testPositionForSuperConstructorCalls",
+                72 - 24, pos.getStartPosition(cut, mit));
+        assertEquals("testPositionForSuperConstructorCalls",
+                79 - 24, pos.getEndPosition(cut, mit));
+
+        assertEquals("testPositionForSuperConstructorCalls",
+                72 - 24, pos.getStartPosition(cut, mit.getMethodSelect()));
+        assertEquals("testPositionForSuperConstructorCalls",
+                77 - 24, pos.getEndPosition(cut, mit.getMethodSelect()));
+
+    }
+
+    public void testPositionForEnumModifiers() throws IOException {
+
+        String code = "package test; public enum Test {A;}";
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+        CompilationUnitTree cut = ct.parse().iterator().next();
+        SourcePositions pos = Trees.instance(ct).getSourcePositions();
+
+        ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
+        ModifiersTree mt = clazz.getModifiers();
+
+        assertEquals("testPositionForEnumModifiers",
+                38 - 24, pos.getStartPosition(cut, mt));
+        assertEquals("testPositionForEnumModifiers",
+                44 - 24, pos.getEndPosition(cut, mt));
+    }
+
+    public void testNewClassWithEnclosing() throws IOException {
+
+
+        String code = "package test; class Test { " +
+                "class d {} private void method() { " +
+                "Object o = Test.this.new d(); } }";
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+        CompilationUnitTree cut = ct.parse().iterator().next();
+        SourcePositions pos = Trees.instance(ct).getSourcePositions();
+
+        ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
+        ExpressionTree est =
+                ((VariableTree) ((MethodTree) clazz.getMembers().get(1)).getBody().getStatements().get(0)).getInitializer();
+
+        assertEquals("testNewClassWithEnclosing",
+                97 - 24, pos.getStartPosition(cut, est));
+        assertEquals("testNewClassWithEnclosing",
+                114 - 24, pos.getEndPosition(cut, est));
+    }
+
+    public void testPreferredPositionForBinaryOp() throws IOException {
+
+        String code = "package test; public class Test {" +
+                "private void test() {" +
+                "Object o = null; boolean b = o != null && o instanceof String;" +
+                "} private Test() {}}";
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+        CompilationUnitTree cut = ct.parse().iterator().next();
+
+        ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
+        MethodTree method = (MethodTree) clazz.getMembers().get(0);
+        VariableTree condSt = (VariableTree) method.getBody().getStatements().get(1);
+        BinaryTree cond = (BinaryTree) condSt.getInitializer();
+
+        JCTree condJC = (JCTree) cond;
+
+        assertEquals("testNewClassWithEnclosing",
+                117 - 24, condJC.pos);
+    }
+
+    public void testPositionBrokenSource126732a() throws IOException {
+        String[] commands = new String[]{
+            "return Runnable()",
+            "do { } while (true)",
+            "throw UnsupportedOperationException()",
+            "assert true",
+            "1 + 1",};
+
+        for (String command : commands) {
+
+            String code = "package test;\n"
+                    + "public class Test {\n"
+                    + "    public static void test() {\n"
+                    + "        " + command + " {\n"
+                    + "                new Runnable() {\n"
+                    + "        };\n"
+                    + "    }\n"
+                    + "}";
+            JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null,
+                    null, null, Arrays.asList(new MyFileObject(code)));
+            CompilationUnitTree cut = ct.parse().iterator().next();
+
+            ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
+            MethodTree method = (MethodTree) clazz.getMembers().get(0);
+            List<? extends StatementTree> statements =
+                    method.getBody().getStatements();
+
+            StatementTree ret = statements.get(0);
+            StatementTree block = statements.get(1);
+
+            Trees t = Trees.instance(ct);
+            int len = code.indexOf(command + " {") + (command + " ").length();
+            assertEquals(command, len,
+                    t.getSourcePositions().getEndPosition(cut, ret));
+            assertEquals(command, len,
+                    t.getSourcePositions().getStartPosition(cut, block));
+        }
+    }
+
+    public void testPositionBrokenSource126732b() throws IOException {
+        String[] commands = new String[]{
+            "break",
+            "break A",
+            "continue ",
+            "continue A",};
+
+        for (String command : commands) {
+
+            String code = "package test;\n"
+                    + "public class Test {\n"
+                    + "    public static void test() {\n"
+                    + "        while (true) {\n"
+                    + "            " + command + " {\n"
+                    + "                new Runnable() {\n"
+                    + "        };\n"
+                    + "        }\n"
+                    + "    }\n"
+                    + "}";
+
+            JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null,
+                    null, null, Arrays.asList(new MyFileObject(code)));
+            CompilationUnitTree cut = ct.parse().iterator().next();
+
+            ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
+            MethodTree method = (MethodTree) clazz.getMembers().get(0);
+            List<? extends StatementTree> statements =
+                    ((BlockTree) ((WhileLoopTree) method.getBody().getStatements().get(0)).getStatement()).getStatements();
+
+            StatementTree ret = statements.get(0);
+            StatementTree block = statements.get(1);
+
+            Trees t = Trees.instance(ct);
+            int len = code.indexOf(command + " {") + (command + " ").length();
+            assertEquals(command, len,
+                    t.getSourcePositions().getEndPosition(cut, ret));
+            assertEquals(command, len,
+                    t.getSourcePositions().getStartPosition(cut, block));
+        }
+    }
+
+    public void testErrorRecoveryForEnhancedForLoop142381() throws IOException {
+
+        String code = "package test; class Test { " +
+                "private void method() { " +
+                "java.util.Set<String> s = null; for (a : s) {} } }";
+
+        final List<Diagnostic<? extends JavaFileObject>> errors =
+                new LinkedList<Diagnostic<? extends JavaFileObject>>();
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null,
+                new DiagnosticListener<JavaFileObject>() {
+            public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
+                errors.add(diagnostic);
+            }
+        }, null, null, Arrays.asList(new MyFileObject(code)));
+
+        CompilationUnitTree cut = ct.parse().iterator().next();
+
+        ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
+        StatementTree forStatement =
+                ((MethodTree) clazz.getMembers().get(0)).getBody().getStatements().get(1);
+
+        assertEquals("testErrorRecoveryForEnhancedForLoop142381",
+                Kind.ENHANCED_FOR_LOOP, forStatement.getKind());
+        assertFalse("testErrorRecoveryForEnhancedForLoop142381", errors.isEmpty());
+    }
+
+    public void testPositionAnnotationNoPackage187551() throws IOException {
+
+        String code = "\n at interface Test {}";
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+
+        CompilationUnitTree cut = ct.parse().iterator().next();
+        ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
+        Trees t = Trees.instance(ct);
+
+        assertEquals("testPositionAnnotationNoPackage187551",
+                1, t.getSourcePositions().getStartPosition(cut, clazz));
+    }
+
+    public void testPositionsSane() throws IOException {
+        performPositionsSanityTest("package test; class Test { " +
+                "private void method() { " +
+                "java.util.List<? extends java.util.List<? extends String>> l; " +
+                "} }");
+        performPositionsSanityTest("package test; class Test { " +
+                "private void method() { " +
+                "java.util.List<? super java.util.List<? super String>> l; " +
+                "} }");
+        performPositionsSanityTest("package test; class Test { " +
+                "private void method() { " +
+                "java.util.List<? super java.util.List<?>> l; } }");
+    }
+
+    private void performPositionsSanityTest(String code) throws IOException {
+
+        final List<Diagnostic<? extends JavaFileObject>> errors =
+                new LinkedList<Diagnostic<? extends JavaFileObject>>();
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null,
+                new DiagnosticListener<JavaFileObject>() {
+
+            public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
+                errors.add(diagnostic);
+            }
+        }, null, null, Arrays.asList(new MyFileObject(code)));
+
+        final CompilationUnitTree cut = ct.parse().iterator().next();
+        final Trees trees = Trees.instance(ct);
+
+        new TreeScanner<Void, Void>() {
+
+            private long parentStart = 0;
+            private long parentEnd = Integer.MAX_VALUE;
+
+            @Override
+            public Void scan(Tree node, Void p) {
+                if (node == null) {
+                    return null;
+                }
+
+                long start = trees.getSourcePositions().getStartPosition(cut, node);
+
+                if (start == (-1)) {
+                    return null; //synthetic tree
+                }
+                assertTrue(node.toString() + ":" + start + "/" + parentStart,
+                        parentStart <= start);
+
+                long prevParentStart = parentStart;
+
+                parentStart = start;
+
+                long end = trees.getSourcePositions().getEndPosition(cut, node);
+
+                assertTrue(node.toString() + ":" + end + "/" + parentEnd,
+                        end <= parentEnd);
+
+                long prevParentEnd = parentEnd;
+
+                parentEnd = end;
+
+                super.scan(node, p);
+
+                parentStart = prevParentStart;
+                parentEnd = prevParentEnd;
+
+                return null;
+            }
+
+            private void assertTrue(String message, boolean b) {
+                if (!b) fail(message);
+            }
+        }.scan(cut, null);
+    }
+
+    public void testCorrectWilcardPositions() throws IOException {
+        performWildcardPositionsTest("package test; import java.util.List; " +
+                "class Test { private void method() { List<? extends List<? extends String>> l; } }",
+
+                Arrays.asList("List<? extends List<? extends String>> l;",
+                "List<? extends List<? extends String>>",
+                "List",
+                "? extends List<? extends String>",
+                "List<? extends String>",
+                "List",
+                "? extends String",
+                "String"));
+        performWildcardPositionsTest("package test; import java.util.List; " +
+                "class Test { private void method() { List<? super List<? super String>> l; } }",
+
+                Arrays.asList("List<? super List<? super String>> l;",
+                "List<? super List<? super String>>",
+                "List",
+                "? super List<? super String>",
+                "List<? super String>",
+                "List",
+                "? super String",
+                "String"));
+        performWildcardPositionsTest("package test; import java.util.List; " +
+                "class Test { private void method() { List<? super List<?>> l; } }",
+
+                Arrays.asList("List<? super List<?>> l;",
+                "List<? super List<?>>",
+                "List",
+                "? super List<?>",
+                "List<?>",
+                "List",
+                "?"));
+        performWildcardPositionsTest("package test; import java.util.List; " +
+                "class Test { private void method() { " +
+                "List<? extends List<? extends List<? extends String>>> l; } }",
+
+                Arrays.asList("List<? extends List<? extends List<? extends String>>> l;",
+                "List<? extends List<? extends List<? extends String>>>",
+                "List",
+                "? extends List<? extends List<? extends String>>",
+                "List<? extends List<? extends String>>",
+                "List",
+                "? extends List<? extends String>",
+                "List<? extends String>",
+                "List",
+                "? extends String",
+                "String"));
+        performWildcardPositionsTest("package test; import java.util.List; " +
+                "class Test { private void method() { " +
+                "List<? extends List<? extends List<? extends String   >>> l; } }",
+                Arrays.asList("List<? extends List<? extends List<? extends String   >>> l;",
+                "List<? extends List<? extends List<? extends String   >>>",
+                "List",
+                "? extends List<? extends List<? extends String   >>",
+                "List<? extends List<? extends String   >>",
+                "List",
+                "? extends List<? extends String   >",
+                "List<? extends String   >",
+                "List",
+                "? extends String",
+                "String"));
+    }
+
+    public void performWildcardPositionsTest(final String code,
+            List<String> golden) throws IOException {
+
+        final List<Diagnostic<? extends JavaFileObject>> errors =
+                new LinkedList<Diagnostic<? extends JavaFileObject>>();
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null,
+                new DiagnosticListener<JavaFileObject>() {
+                    public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
+                        errors.add(diagnostic);
+                    }
+                }, null, null, Arrays.asList(new MyFileObject(code)));
+
+        final CompilationUnitTree cut = ct.parse().iterator().next();
+        final List<String> content = new LinkedList<String>();
+        final Trees trees = Trees.instance(ct);
+
+        new TreeScanner<Void, Void>() {
+            @Override
+            public Void scan(Tree node, Void p) {
+                if (node == null) {
+                    return null;
+                }
+                long start = trees.getSourcePositions().getStartPosition(cut, node);
+
+                if (start == (-1)) {
+                    return null; //synthetic tree
+                }
+                long end = trees.getSourcePositions().getEndPosition(cut, node);
+                String s = code.substring((int) start, (int) end);
+                content.add(s);
+
+                return super.scan(node, p);
+            }
+        }.scan(((MethodTree) ((ClassTree) cut.getTypeDecls().get(0)).getMembers().get(0)).getBody().getStatements().get(0), null);
+
+        assertEquals("performWildcardPositionsTest",golden.toString(),
+                content.toString());
+    }
+
+    public void testStartPositionForMethodWithoutModifiers() throws IOException {
+
+        String code = "package t; class Test { <T> void t() {} }";
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+        CompilationUnitTree cut = ct.parse().iterator().next();
+        ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
+        MethodTree mt = (MethodTree) clazz.getMembers().get(0);
+        Trees t = Trees.instance(ct);
+        int start = (int) t.getSourcePositions().getStartPosition(cut, mt);
+        int end = (int) t.getSourcePositions().getEndPosition(cut, mt);
+
+        assertEquals("testStartPositionForMethodWithoutModifiers",
+                "<T> void t() {}", code.substring(start, end));
+    }
+
+    public void testStartPositionEnumConstantInit() throws IOException {
+
+        String code = "package t; enum Test { AAA; }";
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+        CompilationUnitTree cut = ct.parse().iterator().next();
+        ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
+        VariableTree enumAAA = (VariableTree) clazz.getMembers().get(0);
+        Trees t = Trees.instance(ct);
+        int start = (int) t.getSourcePositions().getStartPosition(cut,
+                enumAAA.getInitializer());
+
+        assertEquals("testStartPositionEnumConstantInit", -1, start);
+    }
+
+    public void testVariableInIfThen1() throws IOException {
+
+        String code = "package t; class Test { " +
+                "private static void t(String name) { " +
+                "if (name != null) String nn = name.trim(); } }";
+
+        DiagnosticCollector<JavaFileObject> coll =
+                new DiagnosticCollector<JavaFileObject>();
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, coll, null,
+                null, Arrays.asList(new MyFileObject(code)));
+
+        ct.parse();
+
+        List<String> codes = new LinkedList<String>();
+
+        for (Diagnostic<? extends JavaFileObject> d : coll.getDiagnostics()) {
+            codes.add(d.getCode());
+        }
+
+        assertEquals("testVariableInIfThen1",
+                Arrays.<String>asList("compiler.err.variable.not.allowed"),
+                codes);
+    }
+
+    public void testVariableInIfThen2() throws IOException {
+
+        String code = "package t; class Test { " +
+                "private static void t(String name) { " +
+                "if (name != null) class X {} } }";
+        DiagnosticCollector<JavaFileObject> coll =
+                new DiagnosticCollector<JavaFileObject>();
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, coll, null,
+                null, Arrays.asList(new MyFileObject(code)));
+
+        ct.parse();
+
+        List<String> codes = new LinkedList<String>();
+
+        for (Diagnostic<? extends JavaFileObject> d : coll.getDiagnostics()) {
+            codes.add(d.getCode());
+        }
+
+        assertEquals("testVariableInIfThen2",
+                Arrays.<String>asList("compiler.err.class.not.allowed"), codes);
+    }
+
+    public void testVariableInIfThen3() throws IOException {
+
+        String code = "package t; class Test { "+
+                "private static void t(String name) { " +
+                "if (name != null) abstract } }";
+        DiagnosticCollector<JavaFileObject> coll =
+                new DiagnosticCollector<JavaFileObject>();
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, coll, null,
+                null, Arrays.asList(new MyFileObject(code)));
+
+        ct.parse();
+
+        List<String> codes = new LinkedList<String>();
+
+        for (Diagnostic<? extends JavaFileObject> d : coll.getDiagnostics()) {
+            codes.add(d.getCode());
+        }
+
+        assertEquals("testVariableInIfThen3",
+                Arrays.<String>asList("compiler.err.illegal.start.of.expr"),
+                codes);
+    }
+
+    //see javac bug #6882235, NB bug #98234:
+    public void testMissingExponent() throws IOException {
+
+        String code = "\nclass Test { { System.err.println(0e); } }";
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+
+        assertNotNull(ct.parse().iterator().next());
+    }
+
+    public void testTryResourcePos() throws IOException {
+
+        final String code = "package t; class Test { " +
+                "{ try (java.io.InputStream in = null) { } } }";
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+        CompilationUnitTree cut = ct.parse().iterator().next();
+
+        new TreeScanner<Void, Void>() {
+            @Override
+            public Void visitVariable(VariableTree node, Void p) {
+                if ("in".contentEquals(node.getName())) {
+                    JCTree.JCVariableDecl var = (JCTree.JCVariableDecl) node;
+                    System.out.println(node.getName() + "," + var.pos);
+                    assertEquals("testTryResourcePos", "in = null) { } } }",
+                            code.substring(var.pos));
+                }
+                return super.visitVariable(node, p);
+            }
+        }.scan(cut, null);
+    }
+
+    public void testVarPos() throws IOException {
+
+        final String code = "package t; class Test { " +
+                "{ java.io.InputStream in = null; } }";
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+        CompilationUnitTree cut = ct.parse().iterator().next();
+
+        new TreeScanner<Void, Void>() {
+
+            @Override
+            public Void visitVariable(VariableTree node, Void p) {
+                if ("in".contentEquals(node.getName())) {
+                    JCTree.JCVariableDecl var = (JCTree.JCVariableDecl) node;
+                    assertEquals("testVarPos","in = null; } }",
+                            code.substring(var.pos));
+                }
+                return super.visitVariable(node, p);
+            }
+        }.scan(cut, null);
+    }
+
+    void testsNotWorking() throws IOException {
+
+        // Fails with nb-javac, needs further investigation
+        testPositionBrokenSource126732a();
+        testPositionBrokenSource126732b();
+
+        // Fails, these tests yet to be addressed
+        testVariableInIfThen1();
+        testVariableInIfThen2();
+        testPositionForEnumModifiers();
+        testStartPositionEnumConstantInit();
+    }
+    void testPositions() throws IOException {
+        testPositionsSane();
+        testCorrectWilcardPositions();
+        testPositionAnnotationNoPackage187551();
+        testPositionForSuperConstructorCalls();
+        testPreferredPositionForBinaryOp();
+        testStartPositionForMethodWithoutModifiers();
+        testVarPos();
+        testVariableInIfThen3();
+        testTryResourcePos();
+    }
+
+    public static void main(String... args) throws IOException {
+        JavacParserTest jpt = new JavacParserTest("JavacParserTest");
+        jpt.testPositions();
+        System.out.println("PASS");
+    }
+}
+
+abstract class TestCase {
+
+    void assertEquals(String message, int i, int pos) {
+        if (i != pos) {
+            fail(message);
+        }
+    }
+
+    void assertFalse(String message, boolean empty) {
+        throw new UnsupportedOperationException("Not yet implemented");
+    }
+
+    void assertEquals(String message, int i, long l) {
+        if (i != l) {
+            fail(message + ":" + i + ":" + l);
+        }
+    }
+
+    void assertEquals(String message, Object o1, Object o2) {
+        System.out.println(o1);
+        System.out.println(o2);
+        if (o1 != null && o2 != null && !o1.equals(o2)) {
+            fail(message);
+        }
+        if (o1 == null && o2 != null) {
+            fail(message);
+        }
+    }
+
+    void assertNotNull(Object o) {
+        if (o == null) {
+            fail();
+        }
+    }
+
+    void fail() {
+        fail("test failed");
+    }
+
+    void fail(String message) {
+        throw new RuntimeException(message);
+    }
+}
diff --git a/langtools/test/tools/javac/processing/errors/TestOptionSyntaxErrors.java b/langtools/test/tools/javac/processing/errors/TestOptionSyntaxErrors.java
index 4f2ad1b..53c9db3 100644
--- a/langtools/test/tools/javac/processing/errors/TestOptionSyntaxErrors.java
+++ b/langtools/test/tools/javac/processing/errors/TestOptionSyntaxErrors.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,14 +27,14 @@
  * @summary Test that annotation processor options with illegal syntax are rejected
  * @author  Joseph D. Darcy
  * @library ../../lib
- * @build JavacTestingAbstractProcessor
+ * @build JavacTestingAbstractProcessor CompileFail
  * @compile TestOptionSyntaxErrors.java
- * @compile/fail -A TestOptionSyntaxErrors.java
- * @compile/fail -A8adOption TestOptionSyntaxErrors.java
- * @compile/fail -A8adOption=1worseOption TestOptionSyntaxErrors.java
- * @compile/fail -processor TestOptionSyntaxErrors -proc:only -A TestOptionSyntaxErrors.java
- * @compile/fail -processor TestOptionSyntaxErrors -proc:only -A8adOption TestOptionSyntaxErrors.java
- * @compile/fail -processor TestOptionSyntaxErrors -proc:only -A8adOption=1worseOption TestOptionSyntaxErrors.java
+ * @run main CompileFail CMDERR -A TestOptionSyntaxErrors.java
+ * @run main CompileFail CMDERR -A8adOption TestOptionSyntaxErrors.java
+ * @run main CompileFail CMDERR -A8adOption=1worseOption TestOptionSyntaxErrors.java
+ * @run main CompileFail CMDERR -processor TestOptionSyntaxErrors -proc:only -A TestOptionSyntaxErrors.java
+ * @run main CompileFail CMDERR -processor TestOptionSyntaxErrors -proc:only -A8adOption TestOptionSyntaxErrors.java
+ * @run main CompileFail CMDERR -processor TestOptionSyntaxErrors -proc:only -A8adOption=1worseOption TestOptionSyntaxErrors.java
  */
 
 import java.util.Set;
diff --git a/langtools/test/tools/javac/processing/errors/TestReturnCode.java b/langtools/test/tools/javac/processing/errors/TestReturnCode.java
index 22c9aae..bcc84b2 100644
--- a/langtools/test/tools/javac/processing/errors/TestReturnCode.java
+++ b/langtools/test/tools/javac/processing/errors/TestReturnCode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,25 +27,25 @@
  * @summary Test that an erroneous return code results from raising an error.
  * @author  Joseph D. Darcy
  * @library ../../lib
- * @build JavacTestingAbstractProcessor
+ * @build JavacTestingAbstractProcessor CompileFail
  * @compile TestReturnCode.java
  *
- * @compile      -processor TestReturnCode -proc:only                                                                   Foo.java
- * @compile/fail -processor TestReturnCode -proc:only                                                    -AErrorOnFirst Foo.java
- * @compile/fail -processor TestReturnCode -proc:only                                      -AErrorOnLast                Foo.java
- * @compile/fail -processor TestReturnCode -proc:only                                      -AErrorOnLast -AErrorOnFirst Foo.java
- * @compile/fail -processor TestReturnCode -proc:only                   -AExceptionOnFirst                              Foo.java
- * @compile/fail -processor TestReturnCode -proc:only                   -AExceptionOnFirst               -AErrorOnFirst Foo.java
- * @compile/fail -processor TestReturnCode -proc:only                   -AExceptionOnFirst -AErrorOnLast                Foo.java
- * @compile/fail -processor TestReturnCode -proc:only                   -AExceptionOnFirst -AErrorOnLast -AErrorOnFirst Foo.java
- * @compile/fail -processor TestReturnCode -proc:only -AExceptionOnLast                                                 Foo.java
- * @compile/fail -processor TestReturnCode -proc:only -AExceptionOnLast                                  -AErrorOnFirst Foo.java
- * @compile/fail -processor TestReturnCode -proc:only -AExceptionOnLast                    -AErrorOnLast                Foo.java
- * @compile/fail -processor TestReturnCode -proc:only -AExceptionOnLast                    -AErrorOnLast -AErrorOnFirst Foo.java
- * @compile/fail -processor TestReturnCode -proc:only -AExceptionOnLast -AExceptionOnFirst                              Foo.java
- * @compile/fail -processor TestReturnCode -proc:only -AExceptionOnLast -AExceptionOnFirst               -AErrorOnFirst Foo.java
- * @compile/fail -processor TestReturnCode -proc:only -AExceptionOnLast -AExceptionOnFirst -AErrorOnLast                Foo.java
- * @compile/fail -processor TestReturnCode -proc:only -AExceptionOnLast -AExceptionOnFirst -AErrorOnLast -AErrorOnFirst Foo.java
+ * @compile                     -processor TestReturnCode -proc:only                                                                   Foo.java
+ * @run main CompileFail ERROR  -processor TestReturnCode -proc:only                                                    -AErrorOnFirst Foo.java
+ * @run main CompileFail ERROR  -processor TestReturnCode -proc:only                                      -AErrorOnLast                Foo.java
+ * @run main CompileFail ERROR  -processor TestReturnCode -proc:only                                      -AErrorOnLast -AErrorOnFirst Foo.java
+ * @run main CompileFail SYSERR -processor TestReturnCode -proc:only                   -AExceptionOnFirst                              Foo.java
+ * @run main CompileFail SYSERR -processor TestReturnCode -proc:only                   -AExceptionOnFirst               -AErrorOnFirst Foo.java
+ * @run main CompileFail SYSERR -processor TestReturnCode -proc:only                   -AExceptionOnFirst -AErrorOnLast                Foo.java
+ * @run main CompileFail SYSERR -processor TestReturnCode -proc:only                   -AExceptionOnFirst -AErrorOnLast -AErrorOnFirst Foo.java
+ * @run main CompileFail SYSERR -processor TestReturnCode -proc:only -AExceptionOnLast                                                 Foo.java
+ * @run main CompileFail SYSERR -processor TestReturnCode -proc:only -AExceptionOnLast                                  -AErrorOnFirst Foo.java
+ * @run main CompileFail SYSERR -processor TestReturnCode -proc:only -AExceptionOnLast                    -AErrorOnLast                Foo.java
+ * @run main CompileFail SYSERR -processor TestReturnCode -proc:only -AExceptionOnLast                    -AErrorOnLast -AErrorOnFirst Foo.java
+ * @run main CompileFail SYSERR -processor TestReturnCode -proc:only -AExceptionOnLast -AExceptionOnFirst                              Foo.java
+ * @run main CompileFail SYSERR -processor TestReturnCode -proc:only -AExceptionOnLast -AExceptionOnFirst               -AErrorOnFirst Foo.java
+ * @run main CompileFail SYSERR -processor TestReturnCode -proc:only -AExceptionOnLast -AExceptionOnFirst -AErrorOnLast                Foo.java
+ * @run main CompileFail SYSERR -processor TestReturnCode -proc:only -AExceptionOnLast -AExceptionOnFirst -AErrorOnLast -AErrorOnFirst Foo.java
  */
 
 import java.util.Set;
diff --git a/langtools/test/tools/javac/processing/errors/TestSuppression.java b/langtools/test/tools/javac/processing/errors/TestSuppression.java
index c793d2d..b6c06f0 100644
--- a/langtools/test/tools/javac/processing/errors/TestSuppression.java
+++ b/langtools/test/tools/javac/processing/errors/TestSuppression.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,7 @@ import javax.lang.model.element.TypeElement;
 import javax.tools.*;
 
 import com.sun.source.util.JavacTask;
+import com.sun.tools.javac.api.ClientCodeWrapper;
 import com.sun.tools.javac.api.JavacTool;
 import com.sun.tools.javac.util.JCDiagnostic;
 
@@ -171,7 +172,7 @@ public class TestSuppression {
 
         public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
             System.err.println((++total) + ": "
-                    + "resolveError:" + isResolveError((JCDiagnostic) diagnostic) + "\n"
+                    + "resolveError:" + isResolveError(unwrap(diagnostic)) + "\n"
                     + diagnostic);
             Diagnostic.Kind dk = diagnostic.getKind();
             Integer c = counts.get(dk);
@@ -181,6 +182,14 @@ public class TestSuppression {
         private static boolean isResolveError(JCDiagnostic d) {
             return d.isFlagSet(RESOLVE_ERROR);
         }
+
+        private JCDiagnostic unwrap(Diagnostic<? extends JavaFileObject> diagnostic) {
+            if (diagnostic instanceof JCDiagnostic)
+                return (JCDiagnostic) diagnostic;
+            if (diagnostic instanceof ClientCodeWrapper.DiagnosticSourceUnwrapper)
+                return ((ClientCodeWrapper.DiagnosticSourceUnwrapper)diagnostic).d;
+            throw new IllegalArgumentException();
+        }
     }
 
     @SupportedAnnotationTypes("*")
diff --git a/langtools/test/tools/javac/processing/loader/testClose/TestClose.java b/langtools/test/tools/javac/processing/loader/testClose/TestClose.java
new file mode 100644
index 0000000..ac29896
--- /dev/null
+++ b/langtools/test/tools/javac/processing/loader/testClose/TestClose.java
@@ -0,0 +1,229 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7092965
+ * @summary javac should not close processorClassLoader before end of compilation
+ */
+
+import com.sun.source.util.JavacTask;
+import com.sun.source.util.TaskEvent;
+import com.sun.source.util.TaskListener;
+import com.sun.tools.javac.api.ClientCodeWrapper.Trusted;
+import com.sun.tools.javac.api.JavacTool;
+import com.sun.tools.javac.processing.JavacProcessingEnvironment;
+import com.sun.tools.javac.util.Context;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.lang.reflect.Field;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import javax.annotation.processing.ProcessingEnvironment;
+import javax.tools.JavaFileObject;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.StandardLocation;
+import javax.tools.ToolProvider;
+
+/*
+ * The test compiles an annotation processor and a helper class into a
+ * custom classes directory.
+ *
+ * It then uses them while compiling a dummy file, with the custom classes
+ * directory on the processor path, thus guaranteeing that references to
+ * these class are satisfied by the processor class loader.
+ *
+ * The annotation processor uses the javac TaskListener to run code
+ * after annotation processing has completed, to verify that the classloader
+ * is not closed until the end of the compilation.
+ */
+
+ at Trusted // avoids use of ClientCodeWrapper
+public class TestClose implements TaskListener {
+    public static final String annoProc =
+        "import java.util.*;\n" +
+        "import javax.annotation.processing.*;\n" +
+        "import javax.lang.model.*;\n" +
+        "import javax.lang.model.element.*;\n" +
+        "import com.sun.source.util.*;\n" +
+        "import com.sun.tools.javac.processing.*;\n" +
+        "import com.sun.tools.javac.util.*;\n" +
+        "@SupportedAnnotationTypes(\"*\")\n" +
+        "public class AnnoProc extends AbstractProcessor {\n" +
+        "    @Override\n" +
+        "    public SourceVersion getSupportedSourceVersion() {\n" +
+        "        return SourceVersion.latest();\n" +
+        "    }\n" +
+        "    @Override\n" +
+        "    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {\n" +
+        "        System.out.println(\"in AnnoProc.process\");\n" +
+        "        final ClassLoader cl = getClass().getClassLoader();\n" +
+        "        if (roundEnv.processingOver()) {\n" +
+        "            TestClose.add(processingEnv, new Runnable() {\n" +
+        "                public void run() {\n" +
+        "                    System.out.println(getClass().getName() + \": run()\");\n" +
+        "                    try {\n" +
+        "                    cl.loadClass(\"Callback\")\n" +
+        "                        .asSubclass(Runnable.class)\n" +
+        "                        .newInstance()\n" +
+        "                        .run();\n" +
+        "                    } catch (ReflectiveOperationException e) {\n" +
+        "                        throw new Error(e);\n" +
+        "                    }\n" +
+        "                }\n" +
+        "            });\n" +
+        "        }\n" +
+        "        return true;\n" +
+        "    }\n" +
+        "}\n";
+
+    public static final String callback =
+        "public class Callback implements Runnable {\n" +
+        "    public void run() {\n" +
+        "        System.out.println(getClass().getName() + \": run()\");\n" +
+        "    }\n" +
+        "}";
+
+    public static void main(String... args) throws Exception {
+        new TestClose().run();
+    }
+
+    void run() throws IOException {
+        JavacTool tool = (JavacTool) ToolProvider.getSystemJavaCompiler();
+        StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null);
+
+        File classes = new File("classes");
+        classes.mkdirs();
+        File extraClasses = new File("extraClasses");
+        extraClasses.mkdirs();
+
+        System.out.println("compiling classes to extraClasses");
+        {   // setup class in extraClasses
+            fm.setLocation(StandardLocation.CLASS_OUTPUT,
+                    Collections.singleton(extraClasses));
+            List<? extends JavaFileObject> files = Arrays.asList(
+                    new MemFile("AnnoProc.java", annoProc),
+                    new MemFile("Callback.java", callback));
+            JavacTask task = tool.getTask(null, fm, null, null, null, files);
+            check(task.call());
+        }
+
+        System.out.println("compiling dummy to classes with anno processor");
+        {   // use that class in a TaskListener after processing has completed
+            PrintStream prev = System.out;
+            String out;
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            try (PrintStream ps = new PrintStream(baos)) {
+                System.setOut(ps);
+                File testClasses = new File(System.getProperty("test.classes"));
+                fm.setLocation(StandardLocation.CLASS_OUTPUT,
+                        Collections.singleton(classes));
+                fm.setLocation(StandardLocation.ANNOTATION_PROCESSOR_PATH,
+                        Arrays.asList(extraClasses, testClasses));
+                List<? extends JavaFileObject> files = Arrays.asList(
+                        new MemFile("my://dummy", "class Dummy { }"));
+                List<String> options = Arrays.asList("-processor", "AnnoProc");
+                JavacTask task = tool.getTask(null, fm, null, options, null, files);
+                task.setTaskListener(this);
+                check(task.call());
+            } finally {
+                System.setOut(prev);
+                out = baos.toString();
+                if (!out.isEmpty())
+                    System.out.println(out);
+            }
+            check(out.contains("AnnoProc$1: run()"));
+            check(out.contains("Callback: run()"));
+        }
+    }
+
+    @Override
+    public void started(TaskEvent e) {
+        System.out.println("Started: " + e);
+    }
+
+    @Override
+    public void finished(TaskEvent e) {
+        System.out.println("Finished: " + e);
+        if (e.getKind() == TaskEvent.Kind.ANALYZE) {
+            for (Runnable r: runnables) {
+                System.out.println("running " + r);
+                r.run();
+            }
+        }
+    }
+
+    void check(boolean b) {
+        if (!b)
+            throw new AssertionError();
+    }
+
+
+    public static void add(ProcessingEnvironment env, Runnable r) {
+        try {
+            Context c = ((JavacProcessingEnvironment) env).getContext();
+            Object o = c.get(TaskListener.class);
+            // The TaskListener is an instanceof TestClose, but when using the
+            // default class loaders. the taskListener uses a different
+            // instance of Class<TestClose> than the anno processor.
+            // If you try to evaluate
+            //      TestClose tc = (TestClose) (o).
+            // you get the following somewhat confusing error:
+            //   java.lang.ClassCastException: TestClose cannot be cast to TestClose
+            // The workaround is to access the fields of TestClose with reflection.
+            Field f = o.getClass().getField("runnables");
+            @SuppressWarnings("unchecked")
+            List<Runnable> runnables = (List<Runnable>) f.get(o);
+            runnables.add(r);
+        } catch (Throwable t) {
+            System.err.println(t);
+        }
+    }
+
+    public List<Runnable> runnables = new ArrayList<>();
+
+    class MemFile extends SimpleJavaFileObject {
+        public final String text;
+
+        MemFile(String name, String text) {
+            super(URI.create(name), JavaFileObject.Kind.SOURCE);
+            this.text = text;
+        }
+
+        @Override
+        public String getName() {
+            return uri.toString();
+        }
+
+        @Override
+        public String getCharContent(boolean ignoreEncodingErrors) {
+            return text;
+        }
+    }
+}
diff --git a/langtools/test/tools/javac/processing/loader/testClose/TestClose2.java b/langtools/test/tools/javac/processing/loader/testClose/TestClose2.java
new file mode 100644
index 0000000..0aee809
--- /dev/null
+++ b/langtools/test/tools/javac/processing/loader/testClose/TestClose2.java
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7092965
+ * @summary javac should not close processorClassLoader before end of compilation
+ */
+
+import com.sun.source.util.JavacTask;
+import com.sun.source.util.TaskEvent;
+import com.sun.source.util.TaskListener;
+import com.sun.tools.javac.api.JavacTool;
+import com.sun.tools.javac.file.JavacFileManager;
+import com.sun.tools.javac.util.Context;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import javax.annotation.processing.AbstractProcessor;
+import javax.annotation.processing.Messager;
+import javax.annotation.processing.RoundEnvironment;
+import javax.annotation.processing.SupportedAnnotationTypes;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.TypeElement;
+import javax.tools.Diagnostic;
+import javax.tools.JavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.StandardLocation;
+import javax.tools.ToolProvider;
+
+ at SupportedAnnotationTypes("*")
+public class TestClose2 extends AbstractProcessor implements TaskListener {
+
+    public static void main(String... args) throws Exception {
+        new TestClose2().run();
+    }
+
+    void run() throws IOException {
+        File testSrc = new File(System.getProperty("test.src"));
+        File testClasses = new File(System.getProperty("test.classes"));
+
+        JavacTool tool = (JavacTool) ToolProvider.getSystemJavaCompiler();
+        final ClassLoader cl = getClass().getClassLoader();
+        Context c = new Context();
+        StandardJavaFileManager fm = new JavacFileManager(c, true, null) {
+            @Override
+            protected ClassLoader getClassLoader(URL[] urls) {
+                return new URLClassLoader(urls, cl) {
+                    @Override
+                    public void close() throws IOException {
+                        System.err.println(getClass().getName() + " closing");
+                        TestClose2.this.closedCount++;
+                        TestClose2.this.closedIsLast = true;
+                        super.close();
+                    }
+                };
+            }
+        };
+
+        fm.setLocation(StandardLocation.CLASS_OUTPUT,
+                Collections.singleton(new File(".")));
+        fm.setLocation(StandardLocation.ANNOTATION_PROCESSOR_PATH,
+                Collections.singleton(testClasses));
+        Iterable<? extends JavaFileObject> files =
+                fm.getJavaFileObjects(new File(testSrc, TestClose2.class.getName() + ".java"));
+        List<String> options = Arrays.asList(
+                "-processor", TestClose2.class.getName());
+
+        JavacTask task = tool.getTask(null, fm, null, options, null, files);
+        task.setTaskListener(this);
+
+        if (!task.call())
+            throw new Error("compilation failed");
+
+        if (closedCount == 0)
+            throw new Error("no closing message");
+        else if (closedCount > 1)
+            throw new Error(closedCount + " closed messages");
+
+        if (!closedIsLast)
+            throw new Error("closing message not last");
+    }
+
+    // AbstractProcessor methods
+
+    @Override
+    public SourceVersion getSupportedSourceVersion() {
+        return SourceVersion.latest();
+    }
+
+    @Override
+    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
+        Messager messager = processingEnv.getMessager();
+        messager.printMessage(Diagnostic.Kind.NOTE, "processing");
+        return true;
+    }
+
+    // TaskListener methods
+
+    @Override
+    public void started(TaskEvent e) {
+        System.err.println("Started: " + e);
+        closedIsLast = false;
+    }
+
+    @Override
+    public void finished(TaskEvent e) {
+        System.err.println("Finished: " + e);
+        closedIsLast = false;
+    }
+
+    //
+
+    int closedCount = 0;
+    boolean closedIsLast = false;
+}
diff --git a/langtools/test/tools/javac/processing/model/6194785/T6194785.java b/langtools/test/tools/javac/processing/model/6194785/T6194785.java
index 11abd61..f25bef2 100644
--- a/langtools/test/tools/javac/processing/model/6194785/T6194785.java
+++ b/langtools/test/tools/javac/processing/model/6194785/T6194785.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,7 +21,7 @@
  * questions.
  */
 
-/**
+/*
  * @test
  * @bug     6194785
  * @summary ParameterDeclaration.getSimpleName does not return actual name from class files
@@ -40,9 +40,8 @@ import static javax.tools.Diagnostic.Kind.*;
 
 public class T6194785 extends JavacTestingAbstractProcessor {
     public boolean process(Set<? extends TypeElement> annotations,
-                           RoundEnvironment roundEnvironment)
-    {
-        class Scan extends ElementScanner7<Void,Void> {
+                           RoundEnvironment roundEnvironment) {
+        class Scan extends ElementScanner<Void,Void> {
             @Override
             public Void visitExecutable(ExecutableElement e, Void ignored) {
                 for (VariableElement p : e.getParameters())
diff --git a/langtools/test/tools/javac/processing/model/TestSymtabItems.java b/langtools/test/tools/javac/processing/model/TestSymtabItems.java
index b16826e..661dac4 100644
--- a/langtools/test/tools/javac/processing/model/TestSymtabItems.java
+++ b/langtools/test/tools/javac/processing/model/TestSymtabItems.java
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 7021183
+ * @bug 7021183 7025809
  * @summary 269: assertion failure getting enclosing element of an undefined name
  */
 
@@ -37,9 +37,7 @@ import javax.lang.model.element.UnknownElementException;
 import javax.lang.model.element.VariableElement;
 import javax.lang.model.type.TypeMirror;
 import javax.lang.model.type.UnknownTypeException;
-import javax.lang.model.util.ElementScanner7;
-import javax.lang.model.util.SimpleTypeVisitor7;
-import javax.lang.model.util.Types;
+import javax.lang.model.util.*;
 
 import com.sun.tools.javac.code.Symbol.ClassSymbol;
 import com.sun.tools.javac.code.Symtab;
@@ -112,7 +110,7 @@ public class TestSymtabItems {
 
     int errors;
 
-    class ElemPrinter extends ElementScanner7<Void, Void> {
+    class ElemPrinter extends ElementScanner8<Void, Void> {
         @Override
         public Void visitPackage(PackageElement e, Void p) {
             show("package", e);
diff --git a/langtools/test/tools/javac/processing/model/element/TestMissingElement/TestMissingElement.java b/langtools/test/tools/javac/processing/model/element/TestMissingElement/TestMissingElement.java
index ec1fe05..35ef240 100644
--- a/langtools/test/tools/javac/processing/model/element/TestMissingElement/TestMissingElement.java
+++ b/langtools/test/tools/javac/processing/model/element/TestMissingElement/TestMissingElement.java
@@ -24,7 +24,7 @@
 
 /*
  * @test
- * @bug 6639645 7026414
+ * @bug 6639645 7026414 7025809
  * @summary Modeling type implementing missing interfaces
  * @library ../../../../lib
  * @build JavacTestingAbstractProcessor TestMissingElement
@@ -104,7 +104,7 @@ public class TestMissingElement extends JavacTestingAbstractProcessor {
     private String asString(TypeMirror t) {
         if (t == null)
             return "[typ:null]";
-        return t.accept(new SimpleTypeVisitor7<String, Void>() {
+        return t.accept(new SimpleTypeVisitor<String, Void>() {
             @Override
             public String defaultAction(TypeMirror t, Void ignore) {
                 return "[typ:" + t.toString() + "]";
@@ -135,7 +135,7 @@ public class TestMissingElement extends JavacTestingAbstractProcessor {
     private String asString(Element e) {
         if (e == null)
             return "[elt:null]";
-        return e.accept(new SimpleElementVisitor7<String, Void>() {
+        return e.accept(new SimpleElementVisitor<String, Void>() {
             @Override
             public String defaultAction(Element e, Void ignore) {
                 return "[elt:" + e.getKind() + " " + e.toString() + "]";
diff --git a/langtools/test/tools/javac/processing/model/element/TestResourceVariable.java b/langtools/test/tools/javac/processing/model/element/TestResourceVariable.java
index bd2c942..b262685 100644
--- a/langtools/test/tools/javac/processing/model/element/TestResourceVariable.java
+++ b/langtools/test/tools/javac/processing/model/element/TestResourceVariable.java
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug  6911256 6964740 6967842 6961571
+ * @bug  6911256 6964740 6967842 6961571 7025809
  * @summary Test that the resource variable kind is appropriately set
  * @author  Joseph D. Darcy
  * @library ../../../lib
@@ -44,8 +44,8 @@ import static javax.tools.Diagnostic.Kind.*;
 
 /**
  * Using the tree API, retrieve element representations of the
- * resource of an ARM block and verify their kind tags are set
- * appropriately.
+ * resource of a try-with-resources statement and verify their kind
+ * tags are set appropriately.
  */
 public class TestResourceVariable extends JavacTestingAbstractProcessor implements AutoCloseable {
     int resourceVariableCount = 0;
@@ -82,7 +82,7 @@ public class TestResourceVariable extends JavacTestingAbstractProcessor implemen
 
     /**
      * Verify that a resource variable modeled as an element behaves
-     * as expected under 6 and 7 specific visitors.
+     * as expected under 6 and latest specific visitors.
      */
     private static void testResourceVariable(Element element) {
         ElementVisitor visitor6 = new ElementKindVisitor6<Void, Void>() {};
@@ -94,7 +94,8 @@ public class TestResourceVariable extends JavacTestingAbstractProcessor implemen
             ; // Expected.
         }
 
-        ElementKindVisitor7 visitor7 = new ElementKindVisitor7<Object, Void>() {
+        ElementKindVisitor visitorLatest =
+            new ElementKindVisitor<Object, Void>() {
             @Override
             public Object visitVariableAsResourceVariable(VariableElement e,
                                                           Void p) {
@@ -102,7 +103,7 @@ public class TestResourceVariable extends JavacTestingAbstractProcessor implemen
             }
         };
 
-        if (visitor7.visit(element) == null) {
+        if (visitorLatest.visit(element) == null) {
             throw new RuntimeException("Null result of resource variable visitation.");
         }
     }
diff --git a/langtools/test/tools/javac/processing/model/type/NoTypes.java b/langtools/test/tools/javac/processing/model/type/NoTypes.java
index d67dae1..c4ef6a0 100644
--- a/langtools/test/tools/javac/processing/model/type/NoTypes.java
+++ b/langtools/test/tools/javac/processing/model/type/NoTypes.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug     6418666 6423973 6453386
+ * @bug     6418666 6423973 6453386 7025809
  * @summary Test the NoTypes: VOID, PACKAGE, NONE
  * @author  Scott Seligman
  * @library ../../../lib
@@ -75,7 +75,7 @@ public class NoTypes extends JavacTestingAbstractProcessor {
         verifyKind(NONE, types.getNoType(NONE));
 
         // The return type of a constructor or void method is VOID.
-        class Scanner extends ElementScanner7<Void, Void> {
+        class Scanner extends ElementScanner<Void, Void> {
             @Override
             public Void visitExecutable(ExecutableElement e, Void p) {
                 verifyKind(VOID, e.getReturnType());
@@ -89,11 +89,11 @@ public class NoTypes extends JavacTestingAbstractProcessor {
     }
 
     /**
-     * Verify that a NoType instance is of a particular kind,
-     * and that TypeKindVisitor7 properly dispatches on it.
+     * Verify that a NoType instance is of a particular kind, and that
+     * the latest TypeKindVisitor properly dispatches on it.
      */
     private void verifyKind(TypeKind kind, TypeMirror type) {
-        class Vis extends TypeKindVisitor7<TypeKind, Void> {
+        class Vis extends TypeKindVisitor<TypeKind, Void> {
             @Override
             public TypeKind visitNoTypeAsVoid(NoType t, Void p) {
                 return VOID;
@@ -111,9 +111,7 @@ public class NoTypes extends JavacTestingAbstractProcessor {
             throw new AssertionError();
     }
 
-
     // Fodder for the tests
-
     interface I {
     }
 
diff --git a/langtools/test/tools/javac/processing/model/type/TestUnionType.java b/langtools/test/tools/javac/processing/model/type/TestUnionType.java
index 0126057..05bf9d2 100644
--- a/langtools/test/tools/javac/processing/model/type/TestUnionType.java
+++ b/langtools/test/tools/javac/processing/model/type/TestUnionType.java
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug     7029150
+ * @bug     7029150 7025809
  * @summary Test support for union types
  * @library ../../../lib
  */
@@ -39,7 +39,6 @@ import javax.tools.*;
 import com.sun.source.tree.*;
 import com.sun.source.util.*;
 
-
 public class TestUnionType extends JavacTestingAbstractProcessor {
     enum TestKind {
         SingleType("E1", "E1",
@@ -194,7 +193,7 @@ public class TestUnionType extends JavacTestingAbstractProcessor {
         }
     }
 
-    class TypePrinter extends SimpleTypeVisitor7<String, Void> {
+    class TypePrinter extends SimpleTypeVisitor<String, Void> {
         @Override
         protected String defaultAction(TypeMirror tm, Void ignore) {
             return String.valueOf(tm.getKind());
diff --git a/langtools/test/tools/javac/processing/model/util/deprecation/TestDeprecation.java b/langtools/test/tools/javac/processing/model/util/deprecation/TestDeprecation.java
index f409759..fb40610 100644
--- a/langtools/test/tools/javac/processing/model/util/deprecation/TestDeprecation.java
+++ b/langtools/test/tools/javac/processing/model/util/deprecation/TestDeprecation.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -68,7 +68,7 @@ public class TestDeprecation extends JavacTestingAbstractProcessor {
         return true;
     }
 
-    private class DeprecationChecker extends ElementScanner7<Boolean,Void> {
+    private class DeprecationChecker extends ElementScanner<Boolean,Void> {
         private Elements elementUtils;
         private boolean failure;
         DeprecationChecker() {
diff --git a/langtools/test/tools/javac/tree/TestToString.java b/langtools/test/tools/javac/tree/TestToString.java
new file mode 100644
index 0000000..d5644bc
--- /dev/null
+++ b/langtools/test/tools/javac/tree/TestToString.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 7080267
+ * @summary Call to toString() from an ExpressionStatementTree doesn't take in
+ *      consideration the ";" at the end
+ */
+
+import com.sun.source.tree.BlockTree;
+import com.sun.source.tree.CompilationUnitTree;
+import com.sun.source.tree.StatementTree;
+import com.sun.source.tree.Tree;
+import java.io.IOException;
+import java.net.URI;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import javax.tools.JavaFileObject;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.StandardJavaFileManager;
+
+import com.sun.source.util.JavacTask;
+import com.sun.source.util.TreeScanner;
+import com.sun.tools.javac.api.JavacTool;
+
+public class TestToString {
+    String[] statements = {
+        "i = i + 1;",
+        "i++;",
+        "m();",
+        ";",
+        "if (i == 0) return;",
+        "while (i > 0) i--;",
+        "{ }",
+        "{ i++; }",
+        "class C { }"
+    };
+
+    public static void main(String... args) throws Exception {
+        new TestToString().run();
+    }
+
+    void run() throws Exception {
+        for (String s: statements) {
+            test(s);
+        }
+
+        if (errors > 0)
+            throw new Exception(errors + " errors found");
+    }
+
+    void test(String stmt) throws IOException {
+        System.err.println("Test: " + stmt);
+        List<String> options = Collections.<String>emptyList();
+        List<? extends JavaFileObject> files = Arrays.asList(new JavaSource(stmt));
+        JavacTask t = tool.getTask(null, fm, null, options, null, files);
+        checkEqual(scan(t.parse()), stmt);
+    }
+
+    String scan(Iterable<? extends CompilationUnitTree> trees) {
+        class Scanner extends TreeScanner<Void,StringBuilder> {
+            String scan(Iterable<? extends Tree> trees) {
+                StringBuilder sb = new StringBuilder();
+                scan(trees, sb);
+                return sb.toString();
+            }
+            @Override
+            public Void scan(Tree tree, StringBuilder sb) {
+                if (print && tree instanceof StatementTree) {
+                    sb.append(PREFIX);
+                    sb.append(tree);
+                    sb.append(SUFFIX);
+                    return null;
+                } else {
+                    return super.scan(tree, sb);
+                }
+            }
+            @Override
+            public Void visitBlock(BlockTree tree, StringBuilder sb) {
+                print = true;
+                try {
+                    return super.visitBlock(tree, sb);
+                } finally {
+                    print = false;
+                }
+            }
+            boolean print = false;
+        }
+        return new Scanner().scan(trees);
+    }
+
+    void checkEqual(String found, String expect) {
+        boolean match = (found == null) ? (expect == null) :
+            expect.equals(found
+                .replaceAll("^\\Q" + PREFIX + "\\E\\s*", "")
+                .replaceAll("\\s*\\Q" + SUFFIX + "\\E$", "")
+                .replaceAll("\\s+", " "));
+
+        if (!match)
+            error("Mismatch: expected: " + expect + " found: " + found);
+    }
+
+
+
+    void error(String msg) {
+        System.err.println("Error: " + msg);
+        errors++;
+    }
+
+    static final String PREFIX = "#<";
+    static final String SUFFIX = "#>";
+
+    JavacTool tool = JavacTool.create();
+    StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null);
+    int errors = 0;
+
+    static class JavaSource extends SimpleJavaFileObject {
+
+        String source =
+                "class Test {\n" +
+                "    int i;\n" +
+                "    void m() {\n" +
+                "        #S\n" +
+                "    }\n" +
+                "}";
+
+        public JavaSource(String stmt) {
+            super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
+            source = source.replace("#S", stmt);
+        }
+
+        @Override
+        public CharSequence getCharContent(boolean ignoreEncodingErrors) {
+            return source;
+        }
+    }
+}
diff --git a/langtools/test/tools/javac/util/context/T7021650.java b/langtools/test/tools/javac/util/context/T7021650.java
index 3a57eb5..404d1ea 100644
--- a/langtools/test/tools/javac/util/context/T7021650.java
+++ b/langtools/test/tools/javac/util/context/T7021650.java
@@ -101,13 +101,13 @@ public class T7021650 extends JavacTestingAbstractProcessor {
         StringWriter sw = new StringWriter();
         PrintWriter pw = new PrintWriter(sw);
         Main m = new Main("javac", pw);
-        int rc = m.compile(args, context);
+        Main.Result res = m.compile(args, context);
         pw.close();
         String out = sw.toString();
         if (!out.isEmpty())
             System.err.println(out);
-        if (rc != 0)
-            throw new Exception("compilation failed unexpectedly: rc=" + rc);
+        if (!res.isOK())
+            throw new Exception("compilation failed unexpectedly: result=" + res);
     }
 
     void checkEqual(String label, int found, int expect) throws Exception {
diff --git a/langtools/test/tools/javac/warnings/Serial.java b/langtools/test/tools/javac/warnings/Serial.java
index 513bf98..3d5cc46 100644
--- a/langtools/test/tools/javac/warnings/Serial.java
+++ b/langtools/test/tools/javac/warnings/Serial.java
@@ -29,7 +29,6 @@
  * @compile -Xlint:all Serial.java
  * @compile -Werror Serial.java
  * @compile/fail -Werror -Xlint:serial Serial.java
- * @compile/fail -Werror -Xlint:all,-path T4994049/ Serial.java
  */
 
 import java.io.Serializable;
diff --git a/langtools/test/tools/javadoc/parser/7091528/T7091528.java b/langtools/test/tools/javadoc/parser/7091528/T7091528.java
new file mode 100644
index 0000000..4e06a3b
--- /dev/null
+++ b/langtools/test/tools/javadoc/parser/7091528/T7091528.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug     7091528
+ * @summary javadoc attempts to parse .class files
+ * @compile p/C1.java p/q/C2.java
+ * @run main T7091528
+ */
+
+import java.io.File;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+public class T7091528 {
+    public static void main(String... args) {
+        new T7091528().run();
+    }
+
+    void run() {
+        File testSrc = new File(System.getProperty("test.src"));
+        File testClasses = new File(System.getProperty("test.classes"));
+        String[] args = {
+            "-d", ".",
+            "-sourcepath", testClasses + File.pathSeparator + testSrc,
+            "-subpackages",
+            "p"
+        };
+
+        StringWriter sw = new StringWriter();
+        PrintWriter pw = new PrintWriter(sw);
+        String doclet = com.sun.tools.doclets.standard.Standard.class.getName();
+        int rc = com.sun.tools.javadoc.Main.execute("javadoc", pw, pw, pw, doclet, args);
+        pw.close();
+
+        String out = sw.toString();
+        if (!out.isEmpty()) {
+            System.err.println(out);
+        }
+
+        if (rc != 0)
+            System.err.println("javadoc failed: exit code = " + rc);
+
+        if (out.matches("(?s).*p/[^ ]+\\.class.*"))
+            throw new Error("reading .class files");
+
+        if (!new File("index.html").exists())
+            throw new Error("index.html not found");
+    }
+}
diff --git a/langtools/test/tools/javadoc/parser/7091528/p/C1.java b/langtools/test/tools/javadoc/parser/7091528/p/C1.java
new file mode 100644
index 0000000..7d8ad26
--- /dev/null
+++ b/langtools/test/tools/javadoc/parser/7091528/p/C1.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package p1;
+
+/** This is class C1. */
+public class C1 { }
+
diff --git a/langtools/test/tools/javadoc/parser/7091528/p/q/C2.java b/langtools/test/tools/javadoc/parser/7091528/p/q/C2.java
new file mode 100644
index 0000000..91b8d96
--- /dev/null
+++ b/langtools/test/tools/javadoc/parser/7091528/p/q/C2.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package p.q;
+
+/** This is class p.q.C2. */
+public class C2 { }
+
diff --git a/make/jdk-rules.gmk b/make/jdk-rules.gmk
index a9c3913..96205fc 100644
--- a/make/jdk-rules.gmk
+++ b/make/jdk-rules.gmk
@@ -37,13 +37,6 @@ ifdef DEV_ONLY
   endif
 endif
 
-MODULES_TARGET = modules
-ifdef DEV_ONLY
-  ifdef NO_MODULES
-    MODULES_TARGET =
-  endif
-endif
-
 # GENERATE_DOCS determines if we ask for the docs target
 DOCS_TARGET = docs
 ifeq ($(GENERATE_DOCS),false)
@@ -51,11 +44,7 @@ ifeq ($(GENERATE_DOCS),false)
 endif
   
 JDK_BUILD_TARGETS = sanity all $(DOCS_TARGET)
-ifdef BUILD_MODULES
-  JDK_BUILD_TARGETS += $(MODULES_TARGET)
-else
-  JDK_BUILD_TARGETS += $(IMAGES_TARGET)
-endif
+JDK_BUILD_TARGETS += $(IMAGES_TARGET)
 
 JDK_CLOBBER_TARGETS = clobber
 
@@ -79,14 +68,15 @@ ifeq ($(BUILD_HOTSPOT), true)
   JDK_BUILD_ARGUMENTS += ALT_HOTSPOT_IMPORT_PATH=$(HOTSPOT_DIR)/import
 endif
 
-ifdef BUILD_MODULES
+ifndef BUILD_MODULES
+  JDK_BUILD_ARGUMENTS += BUILD_MODULES=all
+else
   JDK_BUILD_ARGUMENTS += BUILD_MODULES="$(BUILD_MODULES)"
 endif
 
 JDK_BUILD_ARGUMENTS += \
         BUILD_HOTSPOT=$(BUILD_HOTSPOT)
 
-
 $(JDK_JAVA_EXE):: jdk-build
 
 jdk: jdk-build
diff --git a/make/jprt.gmk b/make/jprt.gmk
index 6faf5dc..c68244e 100644
--- a/make/jprt.gmk
+++ b/make/jprt.gmk
@@ -44,7 +44,7 @@ ifdef HAVE_JPRT_SAVE_BUNDLES
 	( $(CD) $(OUTPUTDIR)/bundles && \
 	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_INSTALL_BUNDLE) . )
 endif
-ifdef BUILD_MODULES
+ifndef BUILD_LEGACY
 	( $(CD) $(OUTPUTDIR) && \
 	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_MODULES_BUNDLE) jre-base-image jigsaw-pkgs)
 endif
@@ -57,7 +57,7 @@ ifdef HAVE_JPRT_SAVE_BUNDLES
 	( $(CD) $(OUTPUTDIR)-fastdebug/bundles && \
 	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_INSTALL_BUNDLE) . )
 endif
-ifdef BUILD_MODULES
+ifndef BUILD_LEGACY
 	( $(CD) $(OUTPUTDIR)-fastdebug && \
 	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_MODULES_BUNDLE) jre-base-image jigsaw-pkgs)
 endif
@@ -69,7 +69,7 @@ ifdef HAVE_JPRT_SAVE_BUNDLES
 	( $(CD) $(OUTPUTDIR)-debug/bundles && \
 	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_INSTALL_BUNDLE) . )
 endif
-ifdef BUILD_MODULES
+ifndef BUILD_LEGACY
 	( $(CD) $(OUTPUTDIR)-debug && \
 	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_MODULES_BUNDLE) jre-base-image jigsaw-pkgs)
 endif
diff --git a/make/jprt.properties b/make/jprt.properties
index 843ba24..ca3221e 100644
--- a/make/jprt.properties
+++ b/make/jprt.properties
@@ -304,6 +304,15 @@ jprt.make.rule.all.test.targets=    				\
     windows_i586_5.1-product-c1-jdk_security3, 			\
     windows_x64_5.2-product-c2-jdk_security3, 			\
     								\
+    solaris_sparc_5.10-product-c1-jdk_sound, 			\
+    solaris_sparcv9_5.10-product-c2-jdk_sound, 			\
+    solaris_i586_5.10-product-c1-jdk_sound, 			\
+    solaris_x64_5.10-product-c2-jdk_sound, 			\
+    linux_i586_2.6-product-{c1|c2}-jdk_sound, 			\
+    linux_x64_2.6-product-c2-jdk_sound, 			\
+    windows_i586_5.1-product-c1-jdk_sound, 			\
+    windows_x64_5.2-product-c2-jdk_sound, 			\
+    								\
     solaris_sparc_5.10-product-c1-jdk_swing, 			\
     solaris_sparcv9_5.10-product-c2-jdk_swing, 			\
     solaris_i586_5.10-product-c1-jdk_swing, 			\

-- 
jigsaw packaging



More information about the pkg-java-commits mailing list